<?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>177298</bug_id>
          
          <creation_ts>2017-09-21 04:41:02 -0700</creation_ts>
          <short_desc>[WebVR] Add OpenVR to the tree and to the build</short_desc>
          <delta_ts>2018-01-30 02:13:02 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>182047</dependson>
    
    <dependson>182284</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1351168</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-21 04:41:02 -0700</bug_when>
    <thetext>[WebVR] Add OpenVR to the tree and to the build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351169</commentid>
    <comment_count>1</comment_count>
      <attachid>321420</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-21 04:52:35 -0700</bug_when>
    <thetext>Created attachment 321420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351658</commentid>
    <comment_count>2</comment_count>
      <attachid>321548</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-22 08:12:29 -0700</bug_when>
    <thetext>Created attachment 321548
Patch

Fixed Mac build issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351671</commentid>
    <comment_count>3</comment_count>
      <attachid>321554</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-22 09:14:28 -0700</bug_when>
    <thetext>Created attachment 321554
Patch

Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352158</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-25 02:24:17 -0700</bug_when>
    <thetext>So the only missing thing is to avoid building OpenVR for iOS. I might need some help here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352190</commentid>
    <comment_count>5</comment_count>
      <attachid>321682</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-25 07:57:58 -0700</bug_when>
    <thetext>Created attachment 321682
Patch

Temptative fix for iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352235</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-25 10:09:38 -0700</bug_when>
    <thetext>Is there an advantage to having OpenVR in the tree over having it be a dependency?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352334</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 12:35:17 -0700</bug_when>
    <thetext>Adding more bundled dependencies would be unacceptable for WebKitGTK+ and WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352335</commentid>
    <comment_count>8</comment_count>
      <attachid>321682</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 12:38:48 -0700</bug_when>
    <thetext>Comment on attachment 321682
Patch

If Valve isn&apos;t shipping a usable library, then you can fork this on GitHub or someplace else and we can depend on that.

I don&apos;t want to allow any new dependencies in ThirdParty. ANGLE is bad enough, now we have brotli (unacceptable) and woff2 (also unacceptable) and libwebrtc (if a fork is really necessary, that could still be done in an external repo)... where does it stop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352617</commentid>
    <comment_count>9</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-26 02:06:44 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Is there an advantage to having OpenVR in the tree over having it be a
&gt; dependency?

Nobody is shipping the library AFAIK, it&apos;s just a repo on github.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352618</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-26 02:07:10 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; Adding more bundled dependencies would be unacceptable for WebKitGTK+ and
&gt; WPE.

Those are strong words that require further explanations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352619</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-26 02:19:41 -0700</bug_when>
    <thetext>I agree that adding more things to third party is never desirable, but every case is different and sometimes there&apos;s no other choice. If valve doesn&apos;t make releases of OpenVR, and all we have is a github repo, how are our users ever going to use the feature that depend on OpenVR? We could add the github repo to our jhbuild for testing purposes, but that wouldn&apos;t work for other ports. And again, if distros are not shipping the library, users will never get the feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352649</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 08:04:46 -0700</bug_when>
    <thetext>I don&apos;t agree, there is always an alternative to bundling inside ThirdParty. If upstream does not produce usable releases *and* cannot be convinced to do so, then we can fork the library and maintain it elsewhere, outside the WebKit repo. That&apos;s not a desirable result, but it at least ensures there will be one system package for Linux distros, so that WebKit doesn&apos;t have its own separate copy of the library.

In this case, there are many OpenVR releases in the github repo, so releases aren&apos;t the problem. I don&apos;t know if Valve releases a usable Linux library or not, though. If it&apos;s not usable, *and* we fail to convince upstream to fix that, then we will indeed have to fork it, but that doesn&apos;t need to be done inside WebKit.

&quot;And again, if distros are not shipping the library, users will never get the feature.&quot; I don&apos;t agree here either. We can get whatever library we want into Debian and Fedora, as long as it&apos;s free software, and other distros will follow. But I bet we won&apos;t even need to; probably someone else will package it for us as soon as WebKit needs it.

I think the only reason to bundle inside ThirdParty is if we need to make large WebKit-specific changes that would not possibly be useful to any other library.

(In reply to Sergio Villar Senin from comment #10)
&gt; Those are strong words that require further explanations.

Come on, bundling dependencies is how we wind up with a Google-quality product. This is WebKit, we don&apos;t sink to that level. This is not how quality software development works on Linux.

With the exception of ANGLE, we&apos;ve avoided bundling for years and years. We&apos;ve regressed only recently by allowing third-party deps for fonts. We should never have done so, as that was totally nonessential. Even with xdg-mime, we should probably have pushed our changes to the upstream repo rather than copying it into ThirdParty; now we&apos;ve got a weird result where glib and WebKit have separate versions of xdg-mime with different bugs, and the upstream version is just broken. That&apos;s bad for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352656</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-26 08:20:29 -0700</bug_when>
    <thetext>Are you volunteering to fork the project and maintain it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352662</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 08:28:38 -0700</bug_when>
    <thetext>Nope, but that should be a requirement if the upstream releases are not usable for us. A big &quot;if&quot; as I see there are binary .so files inside the repo (quality engineering, no doubt). I suspect all we need to do is write a FindOpenVR.cmake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352663</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 08:31:55 -0700</bug_when>
    <thetext>The README says it just has to be built with -DBUILD_SHARED=1. I bet it would be no problem to use it as an external dependency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352672</commentid>
    <comment_count>16</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-26 08:58:44 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)

&gt; In this case, there are many OpenVR releases in the github repo, so releases
&gt; aren&apos;t the problem. I don&apos;t know if Valve releases a usable Linux library or
&gt; not, though. If it&apos;s not usable, *and* we fail to convince upstream to fix
&gt; that, then we will indeed have to fork it, but that doesn&apos;t need to be done
&gt; inside WebKit.
&gt; 
&gt; &quot;And again, if distros are not shipping the library, users will never get
&gt; the feature.&quot; I don&apos;t agree here either. We can get whatever library we want
&gt; into Debian and Fedora, as long as it&apos;s free software, and other distros
&gt; will follow. But I bet we won&apos;t even need to; probably someone else will
&gt; package it for us as soon as WebKit needs it.

In the hypothetical case that you get the library inside Debian and Fedora (I haven&apos;t inspected in detail the licensing terms or any other requirement to get it inside those projects) you still need to get it shipped in MacOS. How are you going to deal with that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352694</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 09:48:30 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #16)
&gt; In the hypothetical case that you get the library inside Debian and Fedora
&gt; (I haven&apos;t inspected in detail the licensing terms or any other requirement
&gt; to get it inside those projects) 

If there would be any such licensing problem, then we surely would not want that problem to apply to WebKit by importing that code.

&gt; you still need to get it shipped in MacOS.
&gt; How are you going to deal with that?

That&apos;s up to Apple to decide. If they want to depend on it, they&apos;ll figure it out. They might even import it under Source/ThirdParty for use on Macs only. It&apos;s not any problem for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352705</commentid>
    <comment_count>18</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-26 10:03:40 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #17)
&gt; (In reply to Sergio Villar Senin from comment #16)
&gt; &gt; In the hypothetical case that you get the library inside Debian and Fedora
&gt; &gt; (I haven&apos;t inspected in detail the licensing terms or any other requirement
&gt; &gt; to get it inside those projects) 
&gt; 
&gt; If there would be any such licensing problem, then we surely would not want
&gt; that problem to apply to WebKit by importing that code.
&gt; 
&gt; &gt; you still need to get it shipped in MacOS.
&gt; &gt; How are you going to deal with that?
&gt; 
&gt; That&apos;s up to Apple to decide. If they want to depend on it, they&apos;ll figure
&gt; it out. They might even import it under Source/ThirdParty for use on Macs
&gt; only. It&apos;s not any problem for us.

Michael we should think about the project as a whole, not just in terms of ports. Apple is fine with us using OpenVR to implement at least a first version of the spec, so it is not &quot;their&quot; problem but ours as well. This is not just a possibility, it&apos;s how things are at the moment. So if you have a better proposal then just tell us, we&apos;re all ears. So far the ThirdParty possibility is the only one over the table. I agree is far from ideal, but it&apos;s the only one that allows us to go on implementing the spec while we don&apos;t have packages for all the architectures we care of. Also we can remove it later at any moment as we don&apos;t plan to make changes on the library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352724</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 10:28:18 -0700</bug_when>
    <thetext>I have many better proposals. You don&apos;t need to wait for distro packages to start developing OpenVR support. Distro packages will appear after WebKit depends on it. Surely you can install it manually in the meantime. That&apos;s what I would do until you have layout tests that you want running on the bots. Alternatively, you can make a Debian package for yourself: it&apos;s not that hard. Contributing it  upstream is even better. Using our jhbuild environment to build the package, as we do for openwebrtc, is another option. That&apos;s what you should do if you want the feature enabled in developer mode and running on the bots. Or, if we absolutely have to fork the library (and I don&apos;t think we do), we can do without adding it to the WebKit source tree.

So there are many options for developing this feature that don&apos;t require bundling OpenVR. It&apos;s common that we add a new external dependency to WebKit. This is not a big deal. But bundling dependencies is a big deal: that&apos;s just not acceptable for WebKit, not unless there are truly exceptional circumstances and we need to make big WebKit-specific changes to the dependency. I&apos;m sorry that by accepting the woff and brotli and xdg-mime dependencies we perhaps created the impression that this might be acceptable for future dependencies; it was a mistake to accept those in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352727</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 10:32:13 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #19)
&gt; Using our jhbuild environment to build the package, as we do for openwebrtc, is another option. That&apos;s what you should do if you want the feature enabled in
&gt; developer mode and running on the bots.

That&apos;s my favorite option for now. You&apos;ll need to add it to jhbuild eventually if you want the feature to be enabled by default in developer mode anyway, since we won&apos;t be able to rely on the package existing in distros for a while. Might as well get it working now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352761</commentid>
    <comment_count>21</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-26 11:16:48 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #20)
&gt; (In reply to Michael Catanzaro from comment #19)
&gt; &gt; Using our jhbuild environment to build the package, as we do for openwebrtc, is another option. That&apos;s what you should do if you want the feature enabled in
&gt; &gt; developer mode and running on the bots.
&gt; 
&gt; That&apos;s my favorite option for now. You&apos;ll need to add it to jhbuild
&gt; eventually if you want the feature to be enabled by default in developer
&gt; mode anyway, since we won&apos;t be able to rely on the package existing in
&gt; distros for a while. Might as well get it working now.

Not sure if I&apos;m not explaining myself properly or if you don&apos;t want to address the actual issue. I know I can do all that stuff to *develop* the feature *on Linux*. However there are 2 problems. The first one is that nobody is shipping it ATM. I know it isn&apos;t impossible to add the packages to Linux distros, but the truth is that so far nobody has done that. Anyway seems something that can be eventually fixed. (I am not doing it as I don&apos;t have neither the time nor the interest to create and maintain the packages).

Now the second issue. Mac does also need to use the library, jhbuild or $distro packaging won&apos;t fix anything for the Mac port. Again, so far I haven&apos;t seen any realistic alternative to support that use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352772</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-26 11:40:34 -0700</bug_when>
    <thetext>OK.

The first issue is indeed not a problem. Just add OpenVR to the JHBuild environment. Packaging will sort itself out later on. It&apos;s way easier to create a new package than to unbundle something from an existing package.

Regarding the second issue: I don&apos;t know how dependencies are handled on Mac, so I don&apos;t know what the correct approach is. Are you planning to get the feature working on Mac? If so, perhaps adding OpenVR to Source/ThirdParty is a valid option for Mac. But GTK/WPE should not use it at all. They should use a FindOpenVR.cmake and there should be no problems building with OpenVR support if the first step in the build process is rm -rf Source/ThirdParty/OpenVR. I sincerely believe it&apos;s important for WebKit that we strictly enforce this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353046</commentid>
    <comment_count>23</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-27 01:41:22 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #22)
&gt; OK.
&gt; 
&gt; The first issue is indeed not a problem. Just add OpenVR to the JHBuild
&gt; environment. Packaging will sort itself out later on. It&apos;s way easier to
&gt; create a new package than to unbundle something from an existing package.
&gt; 
&gt; Regarding the second issue: I don&apos;t know how dependencies are handled on
&gt; Mac, so I don&apos;t know what the correct approach is. Are you planning to get
&gt; the feature working on Mac? If so, perhaps adding OpenVR to
&gt; Source/ThirdParty is a valid option for Mac. But GTK/WPE should not use it
&gt; at all. They should use a FindOpenVR.cmake and there should be no problems
&gt; building with OpenVR support if the first step in the build process is rm
&gt; -rf Source/ThirdParty/OpenVR. I sincerely believe it&apos;s important for WebKit
&gt; that we strictly enforce this.

Yes, as I said many times, the implementation is meant to be valid for Linux(GTK/WPE) and Mac platforms. All of them are going to use the same API (OpenVR) which will handle the platform differences for us.

Honestly it does not make much sense to me to have OpenVR in the tree for Mac and then build it as external dependency for GTK/WPE. It&apos;ll just add maintenance burden. Note that once there is a solution for Mac we can switch to jhbuild quite easily.

Alex what do you think about this? Would it be possible to get a package of OpenVR for Mac or some other way to use it as an external dependency instead of in-tree ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353055</commentid>
    <comment_count>24</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-09-27 02:11:02 -0700</bug_when>
    <thetext>This feature is in the earliest stages of development. It&apos;s possible changes will have to be made to OpenVR itself.

I&apos;d rather see the library more tightly coupled into the project for this initial phase, applying necessary fixes as required.

Once the feature matures and we actually get to ship it in whichever port, we can see what the most appropriate solution would be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390501</commentid>
    <comment_count>25</comment_count>
      <attachid>331621</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-18 07:58:34 -0800</bug_when>
    <thetext>Created attachment 331621
Patch

Hopefully fixing all the builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390509</commentid>
    <comment_count>26</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-18 08:24:06 -0800</bug_when>
    <thetext>OK I&apos;m giving up on fixing the iOS build. I&apos;ll enable it only for WPE/Gtk and open a new bug to fix the build for Mac only. This struggle with build systems is effectively blocking further developments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390517</commentid>
    <comment_count>27</comment_count>
      <attachid>331627</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-18 08:48:58 -0800</bug_when>
    <thetext>Created attachment 331627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392012</commentid>
    <comment_count>28</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-23 02:09:17 -0800</bug_when>
    <thetext>Ping reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392016</commentid>
    <comment_count>29</comment_count>
      <attachid>331627</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-23 03:02:32 -0800</bug_when>
    <thetext>Comment on attachment 331627
Patch

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

&gt; Source/WTF/wtf/Platform.h:1302
&gt; +#if PLATFORM(GTK) || PLATFORM(WPE)
&gt; +#define USE_OPENVR 1
&gt; +#endif

You don&apos;t need the define here, it should be provided through SET_AND_EXPOSE_TO_BUILD() commands in CMake files.

&gt; ChangeLog:21
&gt; +2018-01-18  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
&gt; +
&gt; +        [WebVR] Add OpenVR to the tree and to the build
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=177298
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Source/CMakeLists.txt:
&gt; +        * Source/cmake/OptionsGTK.cmake: Enable USE_OPENVR.
&gt; +        * Source/cmake/OptionsWPE.cmake: Ditto.
&gt; +
&gt; +2017-09-22  Sergio Villar Senin  &lt;svillar@igalia.com&gt;
&gt; +
&gt; +        [WebVR] Add OpenVR to the tree and to the build
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=177298
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Source/CMakeLists.txt:
&gt; +        * WebKit.xcworkspace/contents.xcworkspacedata:
&gt; +

Double entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392536</commentid>
    <comment_count>30</comment_count>
      <attachid>332154</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-24 06:59:42 -0800</bug_when>
    <thetext>Created attachment 332154
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392540</commentid>
    <comment_count>31</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-24 07:05:34 -0800</bug_when>
    <thetext>Committed r227518: &lt;https://trac.webkit.org/changeset/227518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392542</commentid>
    <comment_count>32</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-24 07:07:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/36823398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392564</commentid>
    <comment_count>33</comment_count>
      <attachid>331627</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-24 07:46:36 -0800</bug_when>
    <thetext>Comment on attachment 331627
Patch

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

I have a couple comments on the CMake changes and on the new GTK/WPE API. Sorry I didn&apos;t review it before it landed.

First, this is feature is now enabled by default in releases, but it&apos;s surely intended to be experimental and disabled in releases. We also had an agreement that OpenVR source code should not be included in the tarball at all, at least for the time being, to encourage proper distro packaging of OpenVR. So Source/ThirdParty/openvr ought to be added as an excluded directory in Tools/gtk/manifest.txt.in. (IMO it&apos;s up to you and Zan whether or not to exclude it from Tools/wpe/manifest.txt.in.) Then the build system needs a couple changes to cope with this... I&apos;ll comment on those inline.

Also, the patch that landed added new public GTK/WPE WebKitSettings API, though I don&apos;t see it here. They are missing Since: 2.20 tags, which should be added if we keep the new APIs. But I actually don&apos;t want to add a public runtime setting until the build flag is ready to be enabled by default. For years, we&apos;ve had useless WebKitSettings APIs to enable MSE and WebRTC that actually do nothing in releases because those are disabled at build time. The MSE API will work for the first time in 2.20, but the WebRTC API still does nothing to this day. I&apos;d much rather we avoid making this mistake again, so I&apos;d request that you completely remove the new public API. We don&apos;t need it; instead, let&apos;s just make sure WebVR is enabled by default in developer builds. Look into WebPreferences.yaml and find the WebVREnabled setting there, and change the defaultValue from false to DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. Then move the setting to the bottom of the file and add &quot;category: experimental&quot;, and finally add &quot;condition: PLATFORM(GTK) || PLATFORM(WPE)&quot; so that it doesn&apos;t suddenly appear in Safari&apos;s experimental features list. Then we&apos;ll have WebVR enabled for developers without the need to add new API that won&apos;t work in releases.

&gt; Source/cmake/OptionsGTK.cmake:343
&gt; +SET_AND_EXPOSE_TO_BUILD(USE_OPENVR TRUE)

This isn&apos;t OK because it&apos;s enabled unconditionally and will break tarball builds once you add the excludes to the tarball manifests. We need to add a new build option. If it was going to be an ENABLE-style option, I would say to add it in WebKitFeatures.cmake, but we don&apos;t add USE- options there (except for USE_SYSTEM_MALLOC) so instead it will have to be added as GTK- and WPE-specific options instead. For GTK, that should be done in OptionsGTK.cmake under the &quot;Private options specific to the GTK+ port&quot; comment header. We want it enabled by default for developer builds (including our buildbots), but not for release builds. That should look something like this:

WEBKIT_OPTION_DEFINE(USE_REDIRECTED_XCOMPOSITE_WINDOW &quot;Whether to use a Redirected XComposite Window for accelerated compositing in X11.&quot; PRIVATE ON)
WEBKIT_OPTION_DEFINE(USE_OPENVR &quot;Whether to enable WebVR.&quot; PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})

Then the SET_AND_EXPOSE_TO_BUILD line should be removed.

&gt; Source/cmake/OptionsWPE.cmake:108
&gt; +SET_AND_EXPOSE_TO_BUILD(USE_OPENVR TRUE)

Then for WPE, if you decide to include OpenVR in the tarballs, I would defer to you and Zan on whether the option should be PUBLIC or PRIVATE, since while we don&apos;t want to expose experimental features in GTK, we already do have one exposed in WPE. But if it&apos;s not included in the tarballs, it should definitely be PRIVATE. Regardless, the default value should depend on ${ENABLE_EXPERIMENTAL_FEATURES}, the option should be declared in a new group with a new comment &quot;Options specific to the WPE port&quot; to indicate that it&apos;s not overriding an option that&apos;s already declared in WebKitFeatures.cmake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392572</commentid>
    <comment_count>34</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-24 08:03:03 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #33)
&gt; and add &quot;category: experimental&quot;, and finally add &quot;condition:
&gt; PLATFORM(GTK) || PLATFORM(WPE)&quot; so that it doesn&apos;t suddenly appear in
&gt; Safari&apos;s experimental features list.

(Unless someone from Apple is working on this, in which case we should probably not add any condition: to the setting.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393017</commentid>
    <comment_count>35</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-01-25 06:26:33 -0800</bug_when>
    <thetext>I agree with Michael, FWIW. Let&apos;s revert the new API additions, please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393023</commentid>
    <comment_count>36</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-25 06:53:28 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #33)
&gt; Comment on attachment 331627 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=331627&amp;action=review
&gt; 
&gt; I have a couple comments on the CMake changes and on the new GTK/WPE API.
&gt; Sorry I didn&apos;t review it before it landed.

A bit unfortunate to get this review once I manage to land it after 4 months... Anyway some of your comments are worth the burden.


&gt; First, this is feature is now enabled by default in releases, but it&apos;s
&gt; surely intended to be experimental and disabled in releases. We also had an
&gt; agreement that OpenVR source code should not be included in the tarball at
&gt; all, at least for the time being, to encourage proper distro packaging of
&gt; OpenVR. So Source/ThirdParty/openvr ought to be added as an excluded
&gt; directory in Tools/gtk/manifest.txt.in. (IMO it&apos;s up to you and Zan whether
&gt; or not to exclude it from Tools/wpe/manifest.txt.in.) Then the build system
&gt; needs a couple changes to cope with this... I&apos;ll comment on those inline.

Right, I forgot to remove it from the tarball. I guess you don&apos;t mind if I do it in a separate patch.
 
&gt; Also, the patch that landed added new public GTK/WPE WebKitSettings API,
&gt; though I don&apos;t see it here. They are missing Since: 2.20 tags, which should
&gt; be added if we keep the new APIs. But I actually don&apos;t want to add a public
&gt; runtime setting until the build flag is ready to be enabled by default. For
&gt; years, we&apos;ve had useless WebKitSettings APIs to enable MSE and WebRTC that
&gt; actually do nothing in releases because those are disabled at build time.
&gt; The MSE API will work for the first time in 2.20, but the WebRTC API still
&gt; does nothing to this day. I&apos;d much rather we avoid making this mistake
&gt; again, so I&apos;d request that you completely remove the new public API. We
&gt; don&apos;t need it; instead, let&apos;s just make sure WebVR is enabled by default in
&gt; developer builds. Look into WebPreferences.yaml and find the WebVREnabled
&gt; setting there, and change the defaultValue from false to
&gt; DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. Then move the setting to the bottom
&gt; of the file and add &quot;category: experimental&quot;, and finally add &quot;condition:
&gt; PLATFORM(GTK) || PLATFORM(WPE)&quot; so that it doesn&apos;t suddenly appear in
&gt; Safari&apos;s experimental features list. Then we&apos;ll have WebVR enabled for
&gt; developers without the need to add new API that won&apos;t work in releases.

So the new API was not meant to be included in this patch, it was just some local changes I had for future patches. I&apos;ll revert that addition.

&gt; &gt; Source/cmake/OptionsGTK.cmake:343
&gt; &gt; +SET_AND_EXPOSE_TO_BUILD(USE_OPENVR TRUE)
&gt; 
&gt; This isn&apos;t OK because it&apos;s enabled unconditionally and will break tarball
&gt; builds once you add the excludes to the tarball manifests. We need to add a
&gt; new build option. If it was going to be an ENABLE-style option, I would say
&gt; to add it in WebKitFeatures.cmake, but we don&apos;t add USE- options there
&gt; (except for USE_SYSTEM_MALLOC) so instead it will have to be added as GTK-
&gt; and WPE-specific options instead. For GTK, that should be done in
&gt; OptionsGTK.cmake under the &quot;Private options specific to the GTK+ port&quot;
&gt; comment header. We want it enabled by default for developer builds
&gt; (including our buildbots), but not for release builds. That should look
&gt; something like this:
&gt; 
&gt; WEBKIT_OPTION_DEFINE(USE_REDIRECTED_XCOMPOSITE_WINDOW &quot;Whether to use a
&gt; Redirected XComposite Window for accelerated compositing in X11.&quot; PRIVATE ON)
&gt; WEBKIT_OPTION_DEFINE(USE_OPENVR &quot;Whether to enable WebVR.&quot; PRIVATE
&gt; ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; 
&gt; Then the SET_AND_EXPOSE_TO_BUILD line should be removed.
&gt; 
&gt; &gt; Source/cmake/OptionsWPE.cmake:108
&gt; &gt; +SET_AND_EXPOSE_TO_BUILD(USE_OPENVR TRUE)
&gt; 
&gt; Then for WPE, if you decide to include OpenVR in the tarballs, I would defer
&gt; to you and Zan on whether the option should be PUBLIC or PRIVATE, since
&gt; while we don&apos;t want to expose experimental features in GTK, we already do
&gt; have one exposed in WPE. But if it&apos;s not included in the tarballs, it should
&gt; definitely be PRIVATE. Regardless, the default value should depend on
&gt; ${ENABLE_EXPERIMENTAL_FEATURES}, the option should be declared in a new
&gt; group with a new comment &quot;Options specific to the WPE port&quot; to indicate that
&gt; it&apos;s not overriding an option that&apos;s already declared in
&gt; WebKitFeatures.cmake.

I don&apos;t agree with having private build options for WPE and GTK. I want it to be available for all the architectures. Even though I am not including the mac build system changes I want Mac developers to quickly catch up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393090</commentid>
    <comment_count>37</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-25 09:52:55 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #36)
&gt; I don&apos;t agree with having private build options for WPE and GTK. I want it
&gt; to be available for all the architectures. Even though I am not including
&gt; the mac build system changes I want Mac developers to quickly catch up.

OK, then can you name the option ENABLE_WEBVR instead? ENABLE_ options may go into WebKitFeatures.cmake to be shared across ports. So then you can add it there. You&apos;ll still want to make the same changes to OptionsGTK.cmake and OptionsWPE.cmake to override the default values, but the options would just be sorted differently (with the other private options that are shared with other WebKit ports).

(If you want to keep USE_OPENVR for use in the code, then you can have ENABLE_WEBVR as the cross-platform option defined in WebKitFeatures.h, and then turn on USE_OPENVR dependent on the value of ENABLE_WEBVR, either in Options*.cmake using SET_AND_EXPOSE_TO_BUILD or in Platform.h.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393091</commentid>
    <comment_count>38</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-25 09:54:11 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #37)
&gt; OK, then can you name the option ENABLE_WEBVR instead? ENABLE_ options may
&gt; go into WebKitFeatures.cmake to be shared across ports. So then you can add
&gt; it there. You&apos;ll still want to make the same changes to OptionsGTK.cmake and
&gt; OptionsWPE.cmake to override the default values, but the options would just
&gt; be sorted differently (with the other private options that are shared with
&gt; other WebKit ports).
&gt; 
&gt; (If you want to keep USE_OPENVR for use in the code, then you can have
&gt; ENABLE_WEBVR as the cross-platform option defined in WebKitFeatures.h, and
&gt; then turn on USE_OPENVR dependent on the value of ENABLE_WEBVR, either in
&gt; Options*.cmake using SET_AND_EXPOSE_TO_BUILD or in Platform.h.)

BTW it would be best to file a new bug report for this and get the patch reviewed, since the requested change is a bit complicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393468</commentid>
    <comment_count>39</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2018-01-26 00:40:08 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #37)
&gt; (In reply to Sergio Villar Senin from comment #36)
&gt; &gt; I don&apos;t agree with having private build options for WPE and GTK. I want it
&gt; &gt; to be available for all the architectures. Even though I am not including
&gt; &gt; the mac build system changes I want Mac developers to quickly catch up.
&gt; 
&gt; OK, then can you name the option ENABLE_WEBVR instead? ENABLE_ options may
&gt; go into WebKitFeatures.cmake to be shared across ports. So then you can add
&gt; it there. You&apos;ll still want to make the same changes to OptionsGTK.cmake and
&gt; OptionsWPE.cmake to override the default values, but the options would just
&gt; be sorted differently (with the other private options that are shared with
&gt; other WebKit ports).

I didn&apos;t want to use ENABLE_ on purpose. WebVR will be implemented using the OpenVR backend at first, but does not depend at all on OpenVR. I am not very familiar with the latest changes in build machinery, but if it is not really possible to define a system-wide USE_OPENVR then I&apos;d prefer to do it case by case as you suggested in the beginning.

&gt; (If you want to keep USE_OPENVR for use in the code, then you can have
&gt; ENABLE_WEBVR as the cross-platform option defined in WebKitFeatures.h, and
&gt; then turn on USE_OPENVR dependent on the value of ENABLE_WEBVR, either in
&gt; Options*.cmake using SET_AND_EXPOSE_TO_BUILD or in Platform.h.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393513</commentid>
    <comment_count>40</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-26 05:25:02 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #39)
&gt; I didn&apos;t want to use ENABLE_ on purpose. WebVR will be implemented using the
&gt; OpenVR backend at first, but does not depend at all on OpenVR. I am not very
&gt; familiar with the latest changes in build machinery, but if it is not really
&gt; possible to define a system-wide USE_OPENVR then I&apos;d prefer to do it case by
&gt; case as you suggested in the beginning.

It&apos;s possible, but it&apos;s not the style we use for options. Options shared between ports use ENABLE_ because ports can choose to implement them using different technologies (e.g. ENABLE_WEB_RTC vs. USE_OPENWEBRTC). If you look in WebKitFeatures.cmake you&apos;ll see the only USE_ option there is USE_SYSTEM_MALLOC. So best to not change that now.

I don&apos;t think it&apos;s a big deal to expose ENABLE_WEBRTC as the public feature, and use that to set USE_OPENVR, but it&apos;s up to you what you prefer.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321420</attachid>
            <date>2017-09-21 04:52:35 -0700</date>
            <delta_ts>2017-09-22 08:12:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20170921135218.patch</filename>
            <type>text/plain</type>
            <size>1267956</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggZWQ1ZmE1ODcz
NGYxYTA3Y2EyY2U3M2FjZGM3NWNlMjY0YzI4YTdjYi4uMjhmMGY5ZDY5YmUxMTQ4MDFhOWYzYTZk
YzAzNDQ2YjlkNzM4YzBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MSBAQAorMjAx
Ny0wOS0yMSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRl
ZC4KKyAgICAgICAgKiBvcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICogb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL1JFQURNRTog
QWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAq
IG9wZW52ci9zcmMvanNvbi9qc29uLmg6IEFkZGVkLgorICAgICAgICAoc3RkOjpzd2FwKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL2pzb25jcHAuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpzb246OmNv
ZGVQb2ludFRvVVRGOCk6CisgICAgICAgIChKc29uOjppc0NvbnRyb2xDaGFyYWN0ZXIpOgorICAg
ICAgICAoSnNvbjo6dWludFRvU3RyaW5nKToKKyAgICAgICAgKEpzb246OmZpeE51bWVyaWNMb2Nh
bGUpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OkZlYXR1cmVzKToKKyAgICAgICAgKEpzb246
OkZlYXR1cmVzOjphbGwpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OnN0cmljdE1vZGUpOgor
ICAgICAgICAoSnNvbjo6Y29udGFpbnNOZXdMaW5lKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6
UmVhZGVyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpyZWFkVmFsdWUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpza2lwQ29tbWVudFRv
a2Vucyk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRUb2tlbik6CisgICAgICAgIChKc29u
OjpSZWFkZXI6OnNraXBTcGFjZXMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjptYXRjaCk6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRDb21tZW50KToKKyAgICAgICAgKEpzb246Om5vcm1h
bGl6ZUVPTCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAo
SnNvbjo6UmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6
OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkTnVtYmVy
KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpS
ZWFkZXI6OnJlYWRPYmplY3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQXJyYXkpOgor
ICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpkZWNvZGVEb3VibGUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVTdHJpbmcp
OgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAg
ICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAg
KEpzb246OlJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWNvdmVy
RnJvbUVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvblNu
aXBwZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVz
c2FnZXMgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9y
cyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChK
c29uOjpSZWFkZXI6Omdvb2QgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyRmVhdHVyZXM6OmFs
bCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Ok91clJlYWRlcik6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZFZhbHVl
KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
Ojpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6bWF0Y2gpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFk
ZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29t
bWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRTdHJp
bmdTaW5nbGVRdW90ZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRPYmplY3QpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQXJyYXkpOgorICAgICAgICAoSnNvbjo6T3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVE
b3VibGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWNv
dmVyRnJvbUVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNv
dmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Omdvb2QgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6T3VyQ2hhclJlYWRlcjo6T3VyQ2hhclJlYWRlcik6CisgICAgICAg
IChKc29uOjpPdXJDaGFyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVy
QnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVp
bGRlcjo6bmV3Q2hhclJlYWRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFJlYWRl
cktleXMpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKToKKyAgICAg
ICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKToKKyAgICAgICAgKEpzb246
OkNoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAgIChKc29uOjpwYXJzZUZy
b21TdHJlYW0pOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I+Pik6CisgICAgICAgIChKc29uOjpW
YWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmRlcmVmIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjppbmNyZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmRl
Y3JlbWVudCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3Rh
bmNlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KToKKyAgICAgICAg
KEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjprZXkgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpt
ZW1iZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChKc29uOjpJblJhbmdlKToKKyAgICAgICAg
KEpzb246OmludGVnZXJUb0RvdWJsZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVTdHJpbmdW
YWx1ZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpkZWNvZGVQcmVmaXhlZFN0cmluZyk6CisgICAgICAgIChKc29uOjpyZWxl
YXNlU3RyaW5nVmFsdWUpOgorICAgICAgICAoSnNvbjo6RXhjZXB0aW9uOjpFeGNlcHRpb24pOgor
ICAgICAgICAoSnNvbjo6dGhyb3cpOgorICAgICAgICAoSnNvbjo6UnVudGltZUVycm9yOjpSdW50
aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6TG9naWNFcnJvcjo6TG9naWNFcnJvcik6CisgICAg
ICAgIChKc29uOjp0aHJvd1J1bnRpbWVFcnJvcik6CisgICAgICAgIChKc29uOjp0aHJvd0xvZ2lj
RXJyb3IpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbyk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbyk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pT
dHJpbmc6On5DWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
OjpDWlN0cmluZzo6aW5kZXggY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5n
OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6bGVuZ3RoIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OlZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVl
Ojp+VmFsdWUpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6c3dhcFBheWxvYWQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnN3YXApOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OnR5cGUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmNvbXBhcmUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPCBjb25zdCk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3I+IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjphc0NTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldFN0cmluZyBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNTdHJpbmcgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmFzQ29uc3RTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc1VJbnQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmFzSW50NjQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RJbnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdFVJbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OmFzRG91YmxlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0Jvb2wgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzQ29udmVydGlibGVUbyBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6ZW1wdHkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6Y2xlYXIpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnJlc2l6ZSk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aW5pdEJhc2ljKToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpn
ZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzVmFsaWRJbmRleCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6ZmluZCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
YXBwZW5kKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OnJlbW92ZUluZGV4KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc01lbWJl
ciBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6SXNJbnRlZ3JhbCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdWxs
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0Jvb2wgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1VJbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzSW50NjQgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0lu
dGVncmFsIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0RvdWJsZSBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdW1lcmljIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjppc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNBcnJheSBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNPYmplY3QgY29uc3QpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnNldENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Omhhc0NvbW1lbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldENvbW1lbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OnNldE9mZnNldFN0YXJ0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpz
ZXRPZmZzZXRMaW1pdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldExpbWl0IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjp0b1N0eWxlZFN0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpW
YWx1ZTo6YmVnaW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6YmVnaW4pOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCk6
CisgICAgICAgIChKc29uOjpQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCk6CisgICAgICAgIChK
c29uOjpQYXRoOjpQYXRoKToKKyAgICAgICAgKEpzb246OlBhdGg6Om1ha2VQYXRoKToKKyAgICAg
ICAgKEpzb246OlBhdGg6OmFkZFBhdGhJbkFyZyk6CisgICAgICAgIChKc29uOjpQYXRoOjppbnZh
bGlkUGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjpyZXNvbHZlIGNvbnN0KToKKyAgICAgICAg
KEpzb246OlBhdGg6Om1ha2UgY29uc3QpOgorICAgICAgICAoSnNvbjo6Y29udGFpbnNDb250cm9s
Q2hhcmFjdGVyKToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENoYXJhY3RlcjApOgor
ICAgICAgICAoSnNvbjo6dmFsdWVUb1N0cmluZyk6CisgICAgICAgIChKc29uOjp2YWx1ZVRvUXVv
dGVkU3RyaW5nKToKKyAgICAgICAgKEpzb246OnN0cm5wYnJrKToKKyAgICAgICAgKEpzb246OnZh
bHVlVG9RdW90ZWRTdHJpbmdOKToKKyAgICAgICAgKEpzb246OldyaXRlcjo6fldyaXRlcik6Cisg
ICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpGYXN0V3JpdGVyKToKKyAgICAgICAgKEpzb246OkZh
c3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KToKKyAgICAgICAgKEpzb246OkZhc3RX
cml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKToKKyAgICAgICAgKEpzb246OkZhc3RXcml0ZXI6
Om9taXRFbmRpbmdMaW5lRmVlZCk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZSk6
CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRl
cjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVZhbHVlKToKKyAg
ICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpz
b246OlN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjpwdXNoVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUlu
ZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudCk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHls
ZWRXcml0ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVD
b21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OlN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6
CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAg
ICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp1
bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFt
V3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OkJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNv
bjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAg
IChKc29uOjpTdHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHJl
YW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyOjpG
YWN0b3J5Ojp+RmFjdG9yeSk6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpT
dHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxk
ZXI6Om5ld1N0cmVhbVdyaXRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFdyaXRl
cktleXMpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUgY29u
c3QpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6Cisg
ICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAg
IChKc29uOjp3cml0ZVN0cmluZyk6CisgICAgICAgIChKc29uOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBvcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgICh2
cjo6VlJfR2V0SW5pdFRva2VuKToKKyAgICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwyKToKKyAg
ICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duSW50
ZXJuYWwpOgorICAgICAgICAodnI6OlZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCk6CisgICAgICAg
ICh2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSk6CisgICAgICAgICh2cjo6VlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQpOgorICAgICAgICAodnI6OlZSX0lzSG1kUHJlc2VudCk6CisgICAgICAg
ICh2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKToKKyAgICAgICAgKHZyOjpWUl9SdW50aW1lUGF0
aCk6CisgICAgICAgICh2cjo6VlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCk6CisgICAgICAgICh2
cjo6VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbik6CisgICAgICAgICh2cjo6
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5UmVj
dXJzaXZlKToKKyAgICAgICAgKEJDcmVhdGVEaXJlY3RvcnkpOgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKToKKyAgICAgICAgKFNldEVudmlyb25tZW50VmFyaWFibGUpOgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IEFkZGVk
LgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHA6IEFk
ZGVkLgorICAgICAgICAoR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKEdl
dElERm9yVlJJbml0RXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJy
b3JzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0
b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgp
OgorICAgICAgICAoUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKFBhdGhfU2V0
V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRmlsZW5hbWUpOgorICAgICAg
ICAoUGF0aF9TdHJpcERpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRXh0ZW5zaW9uKToK
KyAgICAgICAgKFBhdGhfR2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFBhdGhfSXNBYnNvbHV0ZSk6
CisgICAgICAgIChQYXRoX01ha2VBYnNvbHV0ZSk6CisgICAgICAgIChQYXRoX0ZpeFNsYXNoZXMp
OgorICAgICAgICAoUGF0aF9HZXRTbGFzaCk6CisgICAgICAgIChQYXRoX0pvaW4pOgorICAgICAg
ICAoUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKToKKyAgICAgICAgKFBhdGhfQ29tcGFjdCk6Cisg
ICAgICAgIChQYXRoX0dldFRoaXNNb2R1bGVQYXRoKToKKyAgICAgICAgKFBhdGhfSXNEaXJlY3Rv
cnkpOgorICAgICAgICAoUGF0aF9Jc0FwcEJ1bmRsZSk6CisgICAgICAgIChQYXRoX0V4aXN0cyk6
CisgICAgICAgIChQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAg
IChQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAgIChQYXRo
X1JlYWRCaW5hcnlGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVCaW5hcnlGaWxlKToKKyAgICAg
ICAgKFBhdGhfUmVhZFRleHRGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRG
aWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKToKKyAgICAg
ICAgKFBhdGhfRmlsZVBhdGhUb1VybCk6CisgICAgICAgIChQYXRoX1VybFRvRmlsZVBhdGgpOgor
ICAgICAgICAoR2V0VXNlckRvY3VtZW50c1BhdGgpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU2hhcmVk
TGliX0xvYWQpOgorICAgICAgICAoU2hhcmVkTGliX0dldEZ1bmN0aW9uKToKKyAgICAgICAgKFNo
YXJlZExpYl9VbmxvYWQpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGli
dG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3Ry
dG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChTdHJpbmdIYXNQcmVmaXgpOgorICAg
ICAgICAoU3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAgIChTdHJpbmdIYXNT
dWZmaXgpOgorICAgICAgICAoU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAg
IChVVEYxNnRvOCk6CisgICAgICAgIChVVEY4dG8xNik6CisgICAgICAgIChzdHJjcHlfc2FmZSk6
CisgICAgICAgIChTdHJpbmdUb1VwcGVyKToKKyAgICAgICAgKFN0cmluZ1RvTG93ZXIpOgorICAg
ICAgICAoUmV0dXJuU3RkU3RyaW5nKToKKyAgICAgICAgKEJ1ZmZlclRvU3RkU3RyaW5nKToKKyAg
ICAgICAgKFVpbnQ2NFRvU3RyaW5nKToKKyAgICAgICAgKFN0cmluZ1RvVWludDY0KToKKyAgICAg
ICAgKGNJbnRUb0hleERpZ2l0KToKKyAgICAgICAgKGlIZXhDaGFyVG9JbnQpOgorICAgICAgICAo
Vl9VUkxFbmNvZGVJbnRlcm5hbCk6CisgICAgICAgIChWX1VSTERlY29kZUludGVybmFsKToKKyAg
ICAgICAgKFZfVVJMRW5jb2RlKToKKyAgICAgICAgKFZfVVJMRGVjb2RlKToKKyAgICAgICAgKFZf
U3RyaXBFeHRlbnNpb24pOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmg6IEFkZGVkLgorICAgICAgICAoc3RyaWNtcCk6CisgICAgICAgIChzdHJuaWNtcCk6
CisgICAgICAgICh3Y3NuY3B5X3MpOgorICAgICAgICAoc3RybmNweV9zKToKKyAgICAgICAgKHN0
cnRvdWxsKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1
YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0QXBwU2V0dGluZ3NQYXRoKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMpOgorICAgICAg
ICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCk6CisgICAgICAg
IChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKToKKyAg
ICAgICAgKFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKToKKyAgICAgICAgKFN0cmluZ0xpc3RUb0pz
b24pOgorICAgICAgICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5nKToKKyAg
ICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUgY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGggY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQ
YXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBhdGhS
ZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9u
L3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBBZGRlZC4KKwogMjAxNy0wOC0wOCAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBQcm9w
ZXJseSB0ZXN0IGlmIGNvbXBpbGVyIHN1cHBvcnRzIGNvbXBpbGVyIGZsYWdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTRkZTA1NmM1NzA1MzFhMjg1YmY0Y2VmZGNhNzY5Y2IxZmYzNDI1ZS4uNjRmMDYyZmZiMzk1
ZTA0ZWIzOTVmNGJjMWUyNTIxYjc1MjYzY2E2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE3LTA5LTIxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtXZWJWUl0gQWRkIE9wZW5WUiB0byB0aGUgdHJlZSBhbmQgdG8gdGhlIGJ1aWxk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcyOTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBi
dWlsZCBkZXBlbmRlbmNpZXMgd2l0aCB0aGUgT3BlblZSIGxpYnJhcnkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTctMDktMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW1dlYlZSXSBBZGQgSURMcyBhbmQgc3R1YnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzMWZjZDg5
ZmMwYjA3Y2I1NmE4Y2YzODNmYjc3ZTI0YzIwYjVjY2M5Li44ZDkxZTZmYjZiYTI2NTc3MzI2MGQ4
NmM5ZjBlY2MwMDRiODAxNmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0NNYWtlTGlzdHMudHh0CkBAIC0yMiw2ICsyMiwxMCBAQCBpZiAoVVNFX1dPRkYy
KQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS93b2ZmMikKIGVuZGlmICgpCiAKK2lm
IChVU0VfT1BFTlZSKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS9vcGVudnIpCitl
bmRpZiAoKQorCiBpZiAoVVNFX1hER01JTUUpCiAgICAgYWRkX3N1YmRpcmVjdG9yeShUaGlyZFBh
cnR5L3hkZ21pbWUpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0NNYWtlTGlzdHMu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQxM2E3ZjkwY2Y4NGMyMWRhODRkMGJhNWZjMjhmMTRkNjhkYTJjZmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvQ01ha2VMaXN0cy50
eHQKQEAgLTAsMCArMSw1OCBAQAorIyBTZXQgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiBv
ZiBDTWFrZSBmb3IgdGhpcyBwcm9qZWN0LgorY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9O
IDIuOCkKKworIyBTZXR1cCBzb21lIG9wdGlvbnMuCitvcHRpb24oQlVJTERfU0hBUkVEICJCdWls
ZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikKK29wdGlvbihVU0VfTElCQ1hY
ICJVc2VzIGxpYmMrKyBpbnN0ZWFkIG9mIGxpYnN0ZGMrKyIgT04pCitvcHRpb24oVVNFX0NVU1RP
TV9MSUJDWFggIlVzZXMgYSBjdXN0b20gbGliYysrIiBPRkYpCisKK2FkZF9kZWZpbml0aW9ucygg
LURWUl9BUElfUFVCTElDICkKKworIyBDaGVjayBpZiAzMiBvciA2NCBiaXQgc3lzdGVtLgorc2V0
KFNJWkVPRl9WT0lEUCAke0NNQUtFX1NJWkVPRl9WT0lEX1B9KQoraWYoQ01BS0VfU0laRU9GX1ZP
SURfUCBFUVVBTCA4KQorICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjY0IikKK2Vsc2UoKQorICBzZXQo
UFJPQ0VTU09SX0FSQ0ggIjMyIikKK2VuZGlmKCkKKworIyBHZXQgcGxhdGZvcm0uCitpZihXSU4z
MikKKyAgICAgICBzZXQoUExBVEZPUk1fTkFNRSAid2luIikKK2Vsc2VpZihVTklYIEFORCBOT1Qg
QVBQTEUpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qTGludXgiKQorICAgIHNl
dChQTEFURk9STV9OQU1FICJsaW51eCIpCisgICAgYWRkX2RlZmluaXRpb25zKC1ETElOVVggLURQ
T1NJWCkKKyAgICBpZihQUk9DRVNTT1JfQVJDSCBNQVRDSEVTICI2NCIpCisgICAgICAgIGFkZF9k
ZWZpbml0aW9ucygtRExJTlVYNjQpCisgICAgZW5kaWYoKQorICBlbmRpZigpCitlbHNlaWYoQVBQ
TEUpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qRGFyd2luLioiIE9SIENNQUtF
X1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qTWFjT1MuKiIpCisgICAgc2V0KFBMQVRGT1JNX05BTUUg
Im9zeCIpCisgICAgYWRkX2RlZmluaXRpb25zKC1ET1NYIC1EUE9TSVgpCisgIGVuZGlmKCkKK2Vu
ZGlmKCkKKworIyBFbmFibGUgc29tZSBwcm9wZXJ0aWVzLgoraWYoQ01BS0VfQ09NUElMRVJfSVNf
R05VQ0MgT1IgQ01BS0VfQ19DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFuZyIpCisgICAgICAgIyBF
bmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGljaCBzaG91bGRuJ3QgYmUgdmlzaWJsZQor
ICAgICAgIHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkPWMrKzEx
IC1mUElDIC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorCisgICAgICAgIyBTZXQgY3VzdG9tIGxpYmMr
KyB1c2FnZSBoZXJlCisgICAgICAgaWYoQ01BS0VfQ19DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFu
ZyIgQU5EIFVTRV9MSUJDWFgpCisgICAgICAgICAgICAgIGlmKFVTRV9DVVNUT01fTElCQ1hYKQor
ICAgICAgICAgICAgICAgICAgICAgaWYoQlVJTERfU0hBUkVEKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9M
SU5LRVJfRkxBR1N9IC1zdGRsaWI9bGliYysrIikKKyAgICAgICAgICAgICAgICAgICAgIGVuZGlm
KCkKKyAgICAgICAgICAgICAgICAgICAgIHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hY
X0ZMQUdTfSAtbm9zdGRpbmMrKyIpCisgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX2RpcmVj
dG9yaWVzKCAke0xJQkNYWF9JTkNMVURFfSAke0xJQkNYWF9BQklfSU5DTFVERX0pCisgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgY3VzdG9tIGxpYmMrKyIpCisgICAg
ICAgICAgICAgIGVsc2UoKQorICAgICAgICAgICAgICAgICAgICAgc2V0KENNQUtFX0NYWF9GTEFH
UyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGRsaWI9bGliYysrIikKKyAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2UoU1RBVFVTICJVc2luZyBsaWJjKysiKQorICAgICAgICAgICAgICBlbmRpZigp
CisgICAgICAgZW5kaWYoKQorZW5kaWYoKQorCithZGRfc3ViZGlyZWN0b3J5KHNyYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9MSUNFTlNFIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU4MzMzN2Q3ZmNiNzI2ZDE0Y2MxMGY3ZGQy
ZmRhNjc5OWQ4YTEzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9MSUNFTlNFCkBAIC0wLDAgKzEsMjcgQEAKK0NvcHlyaWdodCAoYykgMjAxNSwgVmFsdmUgQ29y
cG9yYXRpb24KK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24s
CithcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6CisKKzEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcworbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKzIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKK3RoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yCitvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorCiszLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5v
ciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKK3Nw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RAorQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKK1dBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKK0RJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCitBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyhJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKK0xPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyhJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCitT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUubWQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NzZkNjIyZjZhZDNk
NDE4NjRjZTM2ZTVkMmRiOTRiZDFiMGJjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTMgQEAKK09wZW5WUiBTREsKKy0t
LQorCitPcGVuVlIgaXMgYW4gQVBJIGFuZCBydW50aW1lIHRoYXQgYWxsb3dzIGFjY2VzcyB0byBW
UiBoYXJkd2FyZSBmcm9tIG11bHRpcGxlIAordmVuZG9ycyB3aXRob3V0IHJlcXVpcmluZyB0aGF0
IGFwcGxpY2F0aW9ucyBoYXZlIHNwZWNpZmljIGtub3dsZWRnZSBvZiB0aGUgCitoYXJkd2FyZSB0
aGV5IGFyZSB0YXJnZXRpbmcuIFRoaXMgcmVwb3NpdG9yeSBpcyBhbiBTREsgdGhhdCBjb250YWlu
cyB0aGUgQVBJIAorYW5kIHNhbXBsZXMuIFRoZSBydW50aW1lIGlzIHVuZGVyIFN0ZWFtVlIgaW4g
VG9vbHMgb24gU3RlYW0uIAorCisjIyMgRG9jdW1lbnRhdGlvbgorCitEb2N1bWVudGF0aW9uIGZv
ciB0aGUgQVBJIGlzIGF2YWlsYWJsZSBvbiB0aGUgW0dpdGh1YiBXaWtpXShodHRwczovL2dpdGh1
Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIvd2lraS9BUEktRG9jdW1lbnRhdGlvbikKKworTW9y
ZSBpbmZvcm1hdGlvbiBvbiBPcGVuVlIgYW5kIFN0ZWFtVlIgY2FuIGJlIGZvdW5kIG9uIGh0dHA6
Ly9zdGVhbXZyLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURN
RS53ZWJraXQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLndlYmtpdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZmVlNGMxZGM0ODk1N2Q4YzExNjIwODNhYjQ5M2U2YzE1ZDA4ZWQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKQEAgLTAsMCAr
MSwyMiBAQAorVGhpcyBpcyB0aGUgT3BlblZSIGxpYnJhcnkgZnJvbQoraHR0cHM6Ly9naXRodWIu
Y29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyCisKK1Vwc3RyZWFtIGNvZGUgY2FuIGJlIHZpZXdlZCBh
dAorIGh0dHBzOi8vZ2l0aHViLmNvbS9WYWx2ZVNvZnR3YXJlL29wZW52ci90cmVlL21hc3Rlci8K
KworYW5kIGNsb25lZCBieQorIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0
d2FyZS9vcGVudnIuZ2l0CisKK0N1cnJlbnQgdmVyc2lvbjogW2NvbW1pdCBlYmRlYTE1MmY4YWFj
NzdlOWE2ZGIyOTY4MmI4MWQ3NjIxNTlkZjdlXQorCit3aGljaCBjb3JyZXNwb25kcyB0byAxLjAu
MTAgcmVsZWFzZS4KKworV2ViS2l0IGNoYW5nZXM6CisqIHBhdGNoZXMvY21ha2UtYnVpbGQucGF0
Y2g6IHNjcmlwdCB1c2VkIHRvIGFsbG93IG9wZW52ciBDTWFrZSBidWlsZCB0byBiZQoraW50ZWdy
YXRlZCBpbnRvIFdlYktpdCBidWlsZAorKiBSZW1vdmVkIGJpbi8gZGlyZWN0b3J5LiBOb3QgbmVl
ZGVkIGFzIGl0IGluY2x1ZGVzIHByZWNvbXBpbGVkIGxpYnJhcmllcworKiBSZW1vdmVkIGxpYi8g
ZGlyZWN0b3J5LiBOb3QgbmVlZGVkIGFzIGl0IGluY2x1ZGVzIHByZWNvbXBpbGVkIGxpYnJhcmll
cworKiBSZW1vdmVkIGNvbnRyb2xsZXJfY2FsbG91dHMvIGRpcmVjdG9yeS4gVW5uZWVkZWQgZG9j
cworKiBSZW1vdmVkIHNhbXBsZXMvIGRpcmVjdG9yeS4KKyogQWRkZWQgb3BlbnZyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ouIE1hbnVhbGx5IGdlbmVyYXRlZCBmb3IgWGNvZGUgYnVpbGQuCisq
IFJlcGxhY2VkIHRhYnMgYnkgd2hpdGVzcGFjZXMgdG8gbWFrZSBjaGVjay13ZWJraXQtc3R5bGUg
aGFwcHkuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI2YjBhYzAxNzVhNmUz
NGI1MzkwMmY0ZjVmNGEyMjg5YzE5NzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKQEAgLTAsMCArMSw5IEBACitzZXQo
Q01BS0VfU1lTVEVNX05BTUUgTGludXgpCisKK3NldChDTUFLRV9DX0NPTVBJTEVSIGNsYW5nKQor
c2V0KENNQUtFX0NYWF9DT01QSUxFUiBjbGFuZysrKQorCitzZXQoQ01BS0VfRklORF9ST09UX1BB
VEhfTU9ERV9QUk9HUkFNIE5FVkVSKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfTElC
UkFSWSBPTkxZKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfSU5DTFVERSBPTkxZKQor
c2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUEFDS0FHRSBPTkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzZlNDlhNmFjNTMxMDgw
YzVmNDMwM2U1YzE1Y2Y5M2UxMWZhMmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKQEAgLTAsMCArMSwzNzc3IEBACisjcHJhZ21h
IG9uY2UKKworLy8gb3BlbnZyLmgKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3Jh
dGlvbiA9PT09PT09PT09PT0vLworLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5v
dCBtb2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5LgorCisjaWZuZGVmIF9PUEVOVlJfQVBJCisjZGVm
aW5lIF9PUEVOVlJfQVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisKKy8vIHZydHlwZXMu
aAorI2lmbmRlZiBfSU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lOQ0xVREVfVlJUWVBFU19I
CisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyB2dWxrYW4uaAor
c3RydWN0IFZrRGV2aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UOworc3RydWN0IFZr
SW5zdGFuY2VfVDsKK3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25z
IHRvIGF2b2lkIHJlcXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEyUmVzb3VyY2U7CitzdHJ1
Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sKKyNwcmFnbWEgcGFjaygg
cHVzaCwgOCApCisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBl
ZGVmIGludDMyX3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7CisKKy8vIHJp
Z2h0LWhhbmRlZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUgcmlnaHQKKy8v
IC16IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycwor
c3RydWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOworfTsKKworc3Ry
dWN0IEhtZE1hdHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsKKworc3RydWN0
IEhtZFZlY3RvcjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVj
dG9yNF90Cit7CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzZF90
Cit7CisgICAgICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7Cisg
ICAgICAgZmxvYXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAg
ICBkb3VibGUgdywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAg
ZmxvYXQgciwgZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBIbWRW
ZWN0b3IzX3QgdkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90Cit7CisgICAg
ICAgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmln
aHQ7Cit9OworCisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9y
IGVhY2ggY29sb3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBp
biB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4g
VGhlIDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0cnVjdCBEaXN0
b3J0aW9uQ29vcmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOworICAgICAgIGZs
b2F0IHJmR3JlZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKworZW51bSBFVlJF
eWUKK3sKKyAgICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0gMQorfTsKKwor
ZW51bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8g
SGFuZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAx
LCAgLy8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRl
ciBidWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAgIFRleHR1cmVU
eXBlX1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1
cmVEYXRhX3Qgc3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8g
SGFuZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2VSZWYKKyAg
ICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRv
IGEgRDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JTcGFjZQor
eworICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBm
b3IgOC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlz
IG1pcnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgorICAg
ICAgIENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRp
c3BsYXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChh
LmsuYS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9
IDIsICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxp
bmVhciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRo
bS4KK307CisKK3N0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNl
ZSBFVGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlwZSBlVHlw
ZTsKKyAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRsZSB0byBh
IHNoYXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hh
cmVkUmVzb3VyY2UpLgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cisj
ZGVmaW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRl
eHR1cmVIYW5kbGVfdCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFRyYWNr
aW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAg
ICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAorICAg
ICAgIFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCisK
KyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAwLAorICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAg
ICAgICAgICAgPSAyMDEsCit9OworCit0eXBlZGVmIHVpbnQzMl90IERyaXZlcklkX3Q7CitzdGF0
aWMgY29uc3QgdWludDMyX3Qga19uRHJpdmVyTm9uZSA9IDB4RkZGRkZGRkY7CisKK3N0YXRpYyBj
b25zdCB1aW50MzJfdCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAzMjc2ODsKKwor
LyoqIFVzZWQgdG8gcGFzcyBkZXZpY2UgSURzIHRvIEFQSSBjYWxscyAqLwordHlwZWRlZiB1aW50
MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJh
Y2tlZERldmljZUluZGV4X0htZCA9IDA7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heFRy
YWNrZWREZXZpY2VDb3VudCA9IDE2Oworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2Vk
RGV2aWNlSW5kZXhPdGhlciA9IDB4RkZGRkZGRkU7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191
blRyYWNrZWREZXZpY2VJbmRleEludmFsaWQgPSAweEZGRkZGRkZGOworCisvKiogRGVzY3JpYmVz
IHdoYXQga2luZCBvZiBvYmplY3QgaXMgYmVpbmcgdHJhY2tlZCBhdCBhIGdpdmVuIElEICovCitl
bnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSW52
YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBJRCB3YXMgbm90IHZh
bGlkLgorICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAxLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gSGVhZC1Nb3VudGVkIERpc3BsYXlzCisgICAgICAgVHJhY2tl
ZERldmljZUNsYXNzX0NvbnRyb2xsZXIgPSAyLCAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNr
ZWQgY29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfR2VuZXJpY1RyYWNrZXIg
PSAzLCAgICAgICAgICAgICAgLy8gR2VuZXJpYyB0cmFja2Vycywgc2ltaWxhciB0byBjb250cm9s
bGVycworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsICAg
ICAgIC8vIENhbWVyYSBhbmQgYmFzZSBzdGF0aW9ucyB0aGF0IHNlcnZlIGFzIHRyYWNraW5nIHJl
ZmVyZW5jZSBwb2ludHMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfRGlzcGxheVJlZGlyZWN0
ID0gNSwgICAgICAgICAgICAgIC8vIEFjY2Vzc29yaWVzIHRoYXQgYXJlbid0IG5lY2Vzc2FyaWx5
IHRyYWNrZWQgdGhlbXNlbHZlcywgYnV0IG1heSByZWRpcmVjdCB2aWRlbyBvdXRwdXQgZnJvbSBv
dGhlciB0cmFja2VkIGRldmljZXMKK307CisKKworLyoqIERlc2NyaWJlcyB3aGF0IHNwZWNpZmlj
IHJvbGUgYXNzb2NpYXRlZCB3aXRoIGEgdHJhY2tlZCBkZXZpY2UgKi8KK2VudW0gRVRyYWNrZWRD
b250cm9sbGVyUm9sZQoreworICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkID0g
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWQgdmFsdWUgZm9y
IGNvbnRyb2xsZXIgdHlwZQorICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCA9
IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGRldmljZSBh
c3NvY2lhdGVkIHdpdGggdGhlIGxlZnQgaGFuZAorICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9s
ZV9SaWdodEhhbmQgPSAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGRl
dmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJpZ2h0IGhhbmQKK307CisKKworLyoqIGRlc2NyaWJl
cyBhIHNpbmdsZSBwb3NlIGZvciBhIHRyYWNrZWQgb2JqZWN0ICovCitzdHJ1Y3QgVHJhY2tlZERl
dmljZVBvc2VfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFj
a2luZzsKKyAgICAgICBIbWRWZWN0b3IzX3QgdlZlbG9jaXR5OyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB2ZWxvY2l0eSBpbiB0cmFja2VyIHNwYWNlIGluIG0vcworICAgICAgIEhtZFZl
Y3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OyAgICAgICAgICAgICAgLy8gYW5ndWxhciB2ZWxvY2l0
eSBpbiByYWRpYW5zL3MgKD8pCisgICAgICAgRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3Vs
dDsKKyAgICAgICBib29sIGJQb3NlSXNWYWxpZDsKKworICAgICAgIC8vIFRoaXMgaW5kaWNhdGVz
IHRoYXQgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVkIGZvciB0aGlzIHNwb3QgaW4gdGhlIHBv
c2UgYXJyYXkuCisgICAgICAgLy8gSXQgY291bGQgZ28gZnJvbSB0cnVlIHRvIGZhbHNlIGlmIHRo
ZSB1c2VyIHVucGx1Z3MgdGhlIGRldmljZS4KKyAgICAgICBib29sIGJEZXZpY2VJc0Nvbm5lY3Rl
ZDsKK307CisKKy8qKiBJZGVudGlmaWVzIHdoaWNoIHN0eWxlIG9mIHRyYWNraW5nIG9yaWdpbiB0
aGUgYXBwbGljYXRpb24gd2FudHMgdG8gdXNlCisqIGZvciB0aGUgcG9zZXMgaXQgaXMgcmVxdWVz
dGluZyAqLworZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIFRyYWNraW5n
VW5pdmVyc2VTZWF0ZWQgPSAwLCAgICAgICAgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJl
bGF0aXZlIHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlCisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVN0
YW5kaW5nID0gMSwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJlbGF0aXZlIHRvIHRoZSBz
YWZlIGJvdW5kcyBjb25maWd1cmVkIGJ5IHRoZSB1c2VyCisgICAgICAgVHJhY2tpbmdVbml2ZXJz
ZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCBpbiB0
aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZGVmaW5lZCBieSB0aGUgZHJpdmVyLiAgSXQgaGFzIFkgdXAg
YW5kIGlzIHVuaWZpZWQgZm9yIGRldmljZXMgb2YgdGhlIHNhbWUgZHJpdmVyLiBZb3UgdXN1YWxs
eSBkb24ndCB3YW50IHRoaXMgb25lLgorfTsKKworLy8gUmVmZXJzIHRvIGEgc2luZ2xlIGNvbnRh
aW5lciBvZiBwcm9wZXJ0aWVzCit0eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190OworCitzdGF0aWMgY29u
c3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVy
ID0gMDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW52YWxpZFByb3BlcnR5
VGFnID0gMDsKKworLy8gVXNlIHRoZXNlIHRhZ3MgdG8gc2V0L2dldCBjb21tb24gdHlwZXMgYXMg
c3RydWN0IHByb3BlcnRpZXMKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuRmxv
YXRQcm9wZXJ0eVRhZyA9IDE7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bklu
dDMyUHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5V
aW50NjRQcm9wZXJ0eVRhZyA9IDM7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191
bkJvb2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191
blN0cmluZ1Byb3BlcnR5VGFnID0gNTsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190
IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlU
eXBlVGFnX3Qga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7CitzdGF0aWMg
Y29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOwor
CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRh
ZyA9IDMwOworCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5WUkludGVy
bmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190
IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOworCisKKy8qKiBFYWNoIGVu
dHJ5IGluIHRoaXMgZW51bSByZXByZXNlbnRzIGEgcHJvcGVydHkgdGhhdCBjYW4gYmUgcmV0cmll
dmVkIGFib3V0IGEKKyogdHJhY2tlZCBkZXZpY2UuIE1hbnkgZmllbGRzIGFyZSBvbmx5IHZhbGlk
IGZvciBvbmUgRVRyYWNrZWREZXZpY2VDbGFzcy4gKi8KK2VudW0gRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eQoreworICAgICAgIFByb3BfSW52YWxpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgLy8gZ2VuZXJhbCBwcm9w
ZXJ0aWVzIHRoYXQgYXBwbHkgdG8gYWxsIGRldmljZSBjbGFzc2VzCisgICAgICAgUHJvcF9UcmFj
a2luZ1N5c3RlbU5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwK
KyAgICAgICBQcm9wX01vZGVsTnVtYmVyX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTAwMSwKKyAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMiwKKyAgICAgICBQcm9wX1Jl
bmRlck1vZGVsTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTAwMywKKyAgICAgICBQcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVmYWN0dXJlck5hbWVfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwNSwKKyAgICAgICBQcm9wX1RyYWNr
aW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTAwNiwKKyAg
ICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTAwNywKKyAgICAgICBQcm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0
cmluZyAgICAgICA9IDEwMDgsCisgICAgICAgUHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9T
dHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDEwMDksCisgICAgICAgUHJvcF9EZXZpY2VJc1dp
cmVsZXNzX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMCwKKyAg
ICAgICBQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxv
YXQgICAgICAgICAgICAgICAgICAgICA9IDEwMTIsIC8vIDAgaXMgZW1wdHksIDEgaXMgZnVsbAor
ICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAg
PSAxMDEzLAorICAgICAgIFByb3BfRmlybXdhcmVfVXBkYXRlQXZhaWxhYmxlX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVf
Qm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTUsCisgICAgICAgUHJvcF9GaXJt
d2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nICAgICAgICAgICAgICA9IDEwMTYsCisgICAgICAg
UHJvcF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMTcsCisgICAgICAgUHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMTgsCisgICAgICAgUHJvcF9GUEdBVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTksCisgICAg
ICAgUHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAyMCwKKyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMSwKKyAgICAgICBQcm9wX0RvbmdsZVZl
cnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjIsCisg
ICAgICAgUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDIzLAorICAgICAgIFByb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVtV2l0aEht
ZF9Cb29sICAgICAgID0gMTAyNCwKKyAgICAgICBQcm9wX0NvbnRhaW5zUHJveGltaXR5U2Vuc29y
X0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDEwMjUsCisgICAgICAgUHJvcF9EZXZpY2VQcm92
aWRlc0JhdHRlcnlTdGF0dXNfQm9vbCAgICAgICAgICAgICAgPSAxMDI2LAorICAgICAgIFByb3Bf
RGV2aWNlQ2FuUG93ZXJPZmZfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDI3LAorICAgICAgIFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nICAg
ICAgICAgICAgICA9IDEwMjgsCisgICAgICAgUHJvcF9EZXZpY2VDbGFzc19JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyOSwKKyAgICAgICBQcm9wX0hh
c0NhbWVyYV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nICAgICAgICAgICAg
ICAgICAgID0gMTAzMSwKKyAgICAgICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRf
Qm9vbCAgICAgID0gMTAzMiwKKyAgICAgICBQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJl
ZF9Cb29sICAgICAgICAgICAgICA9IDEwMzMsCisgICAgICAgUHJvcF9QYXJlbnREcml2ZXJfVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzQsCisgICAgICAgUHJv
cF9SZXNvdXJjZVJvb3RfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMzUsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2Vk
RGV2aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJv
bVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCisgICAgICAgUHJvcF9E
aXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9V
aW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKKyAgICAgICBQcm9wX1By
ZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA1
LCAKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3Bs
YXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOCwK
KyAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRW
ZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAxMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAgICAgICAg
ID0gMjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAgICAgICAg
ICAgID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9J
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAorICAgICAgIFBy
b3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAgICAgPSAy
MDE2LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCisgICAgICAgUHJvcF9E
aXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDE5LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisgICAgICAgUHJvcF9MZW5z
Q2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAy
MiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9h
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAorICAgICAgIFByb3Bf
TGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZp
cm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCisgICAgICAgUHJv
cF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAyOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgICAgICAg
ICAgICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0
ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3BfQXVkaW9GaXJtd2FyZVZl
cnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAorICAgICAgIFByb3BfQ2Ft
ZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIwMzMsCisg
ICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9
IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNf
RmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFs
bG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3LAorICAg
ICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFn
ZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MSwK
KyAgICAgICBQcm9wX1NlY29uZHNGcm9tUGhvdG9uc1RvVmJsYW5rX0Zsb2F0ICAgICAgICAgICAg
ICA9IDIwNDIsCisgICAgICAgUHJvcF9Ecml2ZXJEaXJlY3RNb2RlU2VuZHNWc3luY0V2ZW50c19C
b29sICAgICAgID0gMjA0MywKKyAgICAgICBQcm9wX0Rpc3BsYXlEZWJ1Z01vZGVfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ0LAorICAgICAgIFByb3BfR3JhcGhp
Y3NBZGFwdGVyTHVpZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ1LAor
ICAgICAgIFByb3BfRHJpdmVyUHJvdmlkZWRDaGFwZXJvbmVQYXRoX1N0cmluZyAgICAgICAgICAg
ICAgPSAyMDQ4LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJh
Y2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRf
U3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKKyAgICAgICBQcm9wX1N1
cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMSwK
KyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJv
bGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0
eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0LCAvLyBSZXR1cm4g
dmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMz
VHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAw
NSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAg
ICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJB
eGlzVHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVRyYWNr
ZWRDb250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUg
dG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisgICAgICAgUHJvcF9GaWVs
ZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAwLAorICAg
ICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICA9IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURlZ3Jl
ZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2lu
Z1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0LAorICAgICAgIFBy
b3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNSwK
KyAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVz
ZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAgICAgICBQcm9wX0ljb25Q
YXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDUwMDAsIC8vIERFUFJFQ0FURUQuIFZhbHVlIG5vdCByZWZlcmVuY2VkLiBOb3cgZXhwZWN0ZWQg
dG8gYmUgcGFydCBvZiBpY29uIHBhdGggcHJvcGVydGllcy4KKyAgICAgICBQcm9wX05hbWVkSWNv
blBhdGhEZXZpY2VPZmZfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMSwg
Ly8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9y
IEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhl
cnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdfU3RyaW5nICAgICAg
ICAgICAgICA9IDUwMDIsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9y
IHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFu
ZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNo
aW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxl
bmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBm
b3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBh
dGhEZXZpY2VSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDQsIC8vIHtkcml2
ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9y
IGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAg
ICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlBbGVydF9TdHJpbmcgICAgICAgICAgICAg
ID0gNTAwNSwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGlj
IGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMy
IGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJp
bmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDYsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmls
ZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDcsIC8vIHtk
cml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYg
Zm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisg
ICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nICAgICAgICAgICAg
ICAgICAgICAgPSA1MDA4LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2Vk
IGJ5IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAgICAgIFByb3Bf
RGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNTEwMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1bmlxdWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAgICAgUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDYwMDEsCisgICAgICAgUHJvcF9IYXNEaXNwbGF5Q29tcG9uZW50X0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA2MDAyLAorICAgICAgIFByb3BfSGFzQ29udHJvbGxlckNvbXBv
bmVudF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MDAzLAorICAgICAgIFByb3BfSGFzQ2Ft
ZXJhQ29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDA0LAorICAg
ICAgIFByb3BfSGFzRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICA9
IDYwMDUsCisgICAgICAgUHJvcF9IYXNWaXJ0dWFsRGlzcGxheUNvbXBvbmVudF9Cb29sICAgICAg
ICAgICAgICA9IDYwMDYsCisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBw
cml2YXRlIGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9wX1Zl
bmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwK
KyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAg
ICAgID0gMTA5OTksCit9OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBs
b25nZXIgdGhhbiB0aGlzIGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQ
cm9wZXJ0eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBlcnJv
cnMgdGhhdCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9u
Z0RhdGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFja2Vk
UHJvcF9Xcm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgIFRy
YWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywK
KyAgICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5v
dCBldmVyKS4KKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2
ZXIgICAgICAgICAgICAgID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVk
QnlEZXZpY2UgICAgICAgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhp
bXVtTGVuZ3RoICAgICAgID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNu
J3Qga25vd24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KKyAg
ICAgICBUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAx
MCwKKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAg
ICAgPSAxMSwKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hh
dCBwYXJ0IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyogZnJh
bWUgYnVmZmVyLiAqLworc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQg
dU1pbiwgdk1pbjsKKyAgICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworLyoqIEFsbG93cyBz
cGVjaWZ5aW5nIHBvc2UgdXNlZCB0byByZW5kZXIgcHJvdmlkZWQgc2NlbmUgdGV4dHVyZSAoaWYg
ZGlmZmVyZW50IGZyb20gdmFsdWUgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzKS4gKi8KK3N0cnVj
dCBWUlRleHR1cmVXaXRoUG9zZV90IDogcHVibGljIFRleHR1cmVfdAoreworICAgICAgIEhtZE1h
dHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsgLy8gQWN0dWFsIHBvc2UgdXNlZCB0
byByZW5kZXIgc2NlbmUgdGV4dHVyZXMuCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlv
biB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUgY29tcG9zaXRv
ciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAg
IC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVmdCBhbmQgcmln
aHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQu
CisgICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAgLy8gQXBwIHN1Ym1pdHMg
ZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9ydGlvbiBhbHJl
YWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFwcGVhcgorICAg
ICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0
aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSByZXR1cm5lZCBi
eQorICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkgdG8gYXBwbHkg
dGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJlZm9yZSBjYWxs
aW5nIFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVk
ID0gMHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFzc2VkIGluIGlz
IGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5HTCkgdGhlbiBz
ZXQgdGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4MDIsCisKKyAg
ICAgICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgwNCwKKworICAg
ICAgIC8vIFNldCB0byBpbmRpY2F0ZSB0aGF0IHBUZXh0dXJlIGlzIGEgcG9pbnRlciB0byBhIFZS
VGV4dHVyZVdpdGhQb3NlX3QuCisgICAgICAgU3VibWl0X1RleHR1cmVXaXRoUG9zZSA9IDB4MDgs
Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxrYW4gdGV4dHVyZXMgdG8g
SVZSQ29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3BlblZSX1NodXRkb3du
IGJlZm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVjdCBWUlZ1bGthblRl
eHR1cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsgLy8gVmtJbWFnZQorICAg
ICAgIFZrRGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNpY2FsRGV2aWNlX1QgKm1f
cFBoeXNpY2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9wSW5zdGFuY2U7CisgICAg
ICAgVmtRdWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUlu
ZGV4OworICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQsIG1fbkZvcm1hdCwgbV9u
U2FtcGxlQ291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBEM0QxMiB0
ZXh0dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVu
VlJfU2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0
IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291cmNlICptX3BSZXNvdXJj
ZTsKKyAgICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRRdWV1ZTsKKyAgICAgICB1
aW50MzJfdCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2YgdGhlIG92ZXJhbGwgc3lz
dGVtIG9yIHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQoreworICAgICAgIFZSU3Rh
dGVfVW5kZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAwLAorICAgICAgIFZSU3Rh
dGVfU2VhcmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGluZ19BbGVydCA9IDIsCisg
ICAgICAgVlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQs
CisgICAgICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJTdGF0ZV9TdGFuZGJ5ID0g
NiwKKyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9OworCisvKiogVGhlIHR5
cGVzIG9mIGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdoYXQgdGhlIHBhcmFtZXRl
cnMgbWVhbiBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJFdmVudFR5cGUKK3sKKyAg
ICAgICBWUkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0
aXZhdGVkICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VE
ZWFjdGl2YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRh
dGVkICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2Vy
SW50ZXJhY3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERl
dmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAgICAgIFZSRXZlbnRfSXBk
Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAg
VlJFdmVudF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAg
ICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCisg
ICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAgICAgPSAxMDgsCisgICAg
ICAgVlJFdmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAgICAgICAgPSAxMDksCisg
ICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gMTEwLAor
ICAgICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTExLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NEaXNjb25uZWN0ICAgICAgICAgICAgICAg
ICAgICAgPSAxMTIsCisgICAgICAgVlJFdmVudF9XaXJlbGVzc1JlY29ubmVjdCAgICAgICAgICAg
ICAgICAgICAgID0gMTEzLAorCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAg
ICAgIFZSRXZlbnRfQnV0dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MSwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRhdGEgaXMgY29udHJvbGxl
cgorICAgICAgIFZSRXZlbnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMywgLy8gZGF0YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBWUkV2ZW50X01vdXNlTW92
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAsIC8vIGRhdGEgaXMgbW91
c2UKKyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDMwMSwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25V
cCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0YSBpcyBtb3VzZQorICAg
ICAgIFZSRXZlbnRfRm9jdXNFbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAzMDMsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRm9jdXNMZWF2ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRhdGEgaXMgb3ZlcmxheQor
ICAgICAgIFZSRXZlbnRfU2Nyb2xsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDUsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0YSBpcyBtb3VzZQorICAg
ICAgIFZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gMzA3
LCAvLyBkYXRhIGlzIG92ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAgICAgVlJFdmVudF9JbnB1
dEZvY3VzQ2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMCwgLy8gZGF0YSBpcyBwcm9j
ZXNzIERFUFJFQ0FURUQKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCAgICAgICAg
ICAgICAgICAgICAgID0gNDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAorICAgICAg
IFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDIs
IC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCAgICAg
ICAgICAgICAgICAgICAgID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50
X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDQwNCwgLy8gZGF0YSBpcyBw
cm9jZXNzIC0gVGhlIEFwcCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2VuZSBjaGFuZ2VkICh1c3Vh
bGx5IHRvIG9yIGZyb20gdGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3Vz
Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBO
ZXcgYXBwIGdvdCBhY2Nlc3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAgICBWUkV2ZW50X0lucHV0
Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA0MDYsIC8vIGRhdGEgaXMgcHJvY2Vz
cworICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0
ZWQgPSA0MDcsIC8vIGRhdGEgaXMgcHJvY2VzcworCisgICAgICAgVlJFdmVudF9IaWRlUmVuZGVy
TW9kZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFw
cGxpY2F0aW9uIHRvIHJlcXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMgdGVtcG9yYXJpbHkKKyAg
ICAgICBWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9IDQxMSwg
Ly8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCByZXN0b3JpbmcgcmVu
ZGVyIG1vZGVsIHZpc2liaWxpdHkKKworICAgICAgIFZSRXZlbnRfT3ZlcmxheVNob3duICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTAwLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUhpZGRl
biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMSwKKyAgICAgICBWUkV2ZW50X0Rhc2hi
b2FyZEFjdGl2YXRlZCAgICAgICAgICAgICAgICAgICAgID0gNTAyLAorICAgICAgIFZSRXZlbnRf
RGFzaGJvYXJkRGVhY3RpdmF0ZWQgICAgICAgICAgICAgID0gNTAzLAorICAgICAgIFZSRXZlbnRf
RGFzaGJvYXJkVGh1bWJTZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQsIC8vIFNlbnQgdG8gdGhl
IG92ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkUmVxdWVzdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDUsIC8vIFNlbnQgdG8gdGhlIG92
ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfUmVzZXREYXNo
Ym9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDYsIC8vIFNlbmQgdG8gdGhlIG92
ZXJsYXkgbWFuYWdlcgorICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3QgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBkYXNoYm9hcmQgdG8gcmVu
ZGVyIGEgdG9hc3QgLSBkYXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQKKyAgICAgICBWUkV2ZW50
X0ltYWdlTG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwOCwgLy8g
U2VudCB0byBvdmVybGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5RnJvbUZp
bGUgY2FsbCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8ga2V5Ym9hcmQgcmVuZGVy
ZXIgaW4gdGhlIGRhc2hib2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBWUkV2ZW50X0hpZGVLZXli
b2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxMCwgLy8gU2VudCB0byBrZXlib2Fy
ZCByZW5kZXJlciBpbiB0aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAgICAgICBWUkV2ZW50X092
ZXJsYXlHYW1lcGFkRm9jdXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNlbnQgdG8gYW4gb3Zlcmxh
eSB3aGVuIElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gaXQKKyAgICAg
ICBWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAgICAgICA9IDUxMiwgLy8g
U2VuZCB0byBhbiBvdmVybGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQgZm9jdXMgYW5kIElWUk92
ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRoaW5nIGVsc2UKKyAgICAg
ICBWUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBWUkV2
ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwKKyAgICAgICBWUkV2ZW50
X0Rhc2hib2FyZEd1aWRlQnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1LAorICAgICAgIFZSRXZl
bnRfU2NyZWVuc2hvdFRyaWdnZXJlZCAgICAgICAgICAgICAgICAgICAgID0gNTE2LCAvLyBTY3Jl
ZW5zaG90IGJ1dHRvbiBjb21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJkIHNob3VsZCByZXF1ZXN0
IGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJsYXlzIHdoZW4gYSBTZXRP
dmVybGF5UmF3IG9yIFNldE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBsb2FkCisgICAgICAgVlJF
dmVudF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAgPSA1MTgsCisKKyAgICAg
ICAvLyBTY3JlZW5zaG90IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkgdnJjbGllbnQgYXBwbGlj
YXRpb24gdG8gY29tcG9zaXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRf
U2NyZWVuc2hvdFRha2VuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMSwg
Ly8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5z
aG90IGhhcyBiZWVuIHRha2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhl
IGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRvIGJlIHRha2VuCisgICAg
ICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAgICAgICAgICAgID0gNTIz
LCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVk
IHNjcmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dy
ZXNzVG9EYXNoYm9hcmQgICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUg
ZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVkCisKKyAg
ICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkICAgICAgID0gNTI1LAor
CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA2MDAsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Jl
Z2luSW50ZXJhY3Rpb24gICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25f
RGVzdHJveWVkICAgICAgICAgICAgICAgICAgICAgPSA2MDMsCisKKyAgICAgICBWUkV2ZW50X1F1
aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDAs
IC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMSwgLy8gZGF0YSBpcyBwcm9jZXNz
CisgICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAgICAgICAgICAgICAgICAg
ICAgPSA3MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xl
ZGdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMywgLy8gZGF0YSBpcyBwcm9jZXNz
CisgICAgICAgVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNzA0LCAvLyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQgdGhhdCBTdGVhbVZSIHNo
dXQgZG93bgorCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCAgICAgICAg
ICAgICAgICAgICAgID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXND
aGFuZ2VkICAgICAgICAgICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBE
YXRhSGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MDIsCisgICAgICAgVlJFdmVudF9DaGFwZXJv
bmVTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODAzLAorICAgICAgIFZSRXZlbnRfU2VhdGVk
WmVyb1Bvc2VSZXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgwNCwKKworICAgICAg
IFZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDgyMCwKKwor
ICAgICAgIFZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkICAgICAgICAgICAgICA9
IDg1MCwKKyAgICAgICBWUkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAg
ICAgID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQg
ICAgICAgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2Vk
ICAgICAgID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFu
Z2VkICAgICAgID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2Vk
ICAgICAgICAgICAgICA9IDg1NSwKKyAgICAgICBWUkV2ZW50X0VuYWJsZUhvbWVBcHBTZXR0aW5n
c0hhdmVDaGFuZ2VkID0gODU2LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9NQ0lt
YWdlVXBkYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorCisg
ICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9
IDExMDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAg
ICAgICAgICAgPSAxMTAxLAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5Ym9h
cmRDaGFySW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAgIFZS
RXZlbnRfS2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEy
MDIsIC8vIFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAgICAg
ICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMw
MCwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAg
ICAgID0gMTMwMSwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0
YXJ0ZWQgICAgICAgPSAxMzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9BcHBs
aWNhdGlvbk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCisg
ICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9
IDEzMDUsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzQ29ubmVjdGVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEzMDYsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzRGlzY29ubmVj
dGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDcsCisKKyAgICAgICBW
UkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAgICAgID0gMTQwMCwK
KyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuICAgICAgICAgICAg
ICA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3du
ICAgICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9u
ZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1l
cmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFf
UmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9F
ZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNl
VGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJmb3Jt
YW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAgICAgICBWUkV2ZW50X01l
c3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1MCwKKyAgICAgICBW
UkV2ZW50X01lc3NhZ2VPdmVybGF5Q2xvc2VSZXF1ZXN0ZWQgICAgICAgPSAxNjUxLAorICAgICAg
IAorICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHByaXZhdGUgZXZlbnRzIGlu
IHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNl
cnZlZF9TdGFydCAgICAgICA9IDEwMDAwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNf
UmVzZXJ2ZWRfRW5kICAgICAgICAgICAgICA9IDE5OTk5LAorfTsKKworCisvKiogTGV2ZWwgb2Yg
SG1kIGFjdGl2aXR5ICovCisvLyBVc2VySW50ZXJhY3Rpb25fVGltZW91dCBtZWFucyB0aGUgZGV2
aWNlIGlzIGluIHRoZSBwcm9jZXNzIG9mIHRpbWluZyBvdXQuCisvLyBJblVzZSA9ICgga19FRGV2
aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gfHwga19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCApCisvLyBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2Vy
SW50ZXJhY3Rpb25TdGFydGVkIGZpcmVzIHdoZW4gdGhlIGRldmljZXMgdHJhbnNpdGlvbnMgZnJv
bSBTdGFuZGJ5IC0+IFVzZXJJbnRlcmFjdGlvbiBvciBJZGxlIC0+IFVzZXJJbnRlcmFjdGlvbi4K
Ky8vIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIGZpcmVzIHdoZW4g
dGhlIGRldmljZXMgdHJhbnNpdGlvbnMgZnJvbSBVc2VySW50ZXJhY3Rpb25fVGltZW91dCAtPiBJ
ZGxlCitlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7ICAgICAgIAorICAgICAgIGtfRURldmlj
ZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgIGtfRURldmljZUFjdGl2
aXR5TGV2ZWxfSWRsZSA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDEwIHNlY29uZHMKKyAgICAgICBrX0VEZXZp
Y2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEFjdGl2aXR5IChtb3ZlbWVudCBvciBwcm94IHNlbnNvcikgaXMgaGFwcGVuaW5n
IG5vdyAgICAgICAKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlv
bl9UaW1lb3V0ID0gMiwgICAgICAgICAgICAgIC8vIE5vIGFjdGl2aXR5IGZvciB0aGUgbGFzdCAw
LjUgc2Vjb25kcworICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSA9IDMsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWRsZSBmb3IgYXQgbGVh
c3QgNSBzZWNvbmRzIChjb25maWd1cmFibGUgaW4gU2V0dGluZ3MgLT4gUG93ZXIgTWFuYWdlbWVu
dCkKK307CisKKworLyoqIFZSIGNvbnRyb2xsZXIgYnV0dG9uIGFuZCBheGlzIElEcyAqLworZW51
bSBFVlJCdXR0b25JZAoreworICAgICAgIGtfRUJ1dHRvbl9TeXN0ZW0gICAgICAgICAgICAgICAg
ICAgICA9IDAsCisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSAgICAgICA9IDEsCisg
ICAgICAga19FQnV0dG9uX0dyaXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAg
ICAgIGtfRUJ1dHRvbl9EUGFkX0xlZnQgICAgICAgICAgICAgICAgICAgICA9IDMsCisgICAgICAg
a19FQnV0dG9uX0RQYWRfVXAgICAgICAgICAgICAgICAgICAgICA9IDQsCisgICAgICAga19FQnV0
dG9uX0RQYWRfUmlnaHQgICAgICAgICAgICAgID0gNSwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9E
b3duICAgICAgICAgICAgICAgICAgICAgPSA2LAorICAgICAgIGtfRUJ1dHRvbl9BICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcsCisgICAgICAgCisgICAgICAga19FQnV0dG9u
X1Byb3hpbWl0eVNlbnNvciAgID0gMzEsCisKKyAgICAgICBrX0VCdXR0b25fQXhpczAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzMiwKKyAgICAgICBrX0VCdXR0b25fQXhpczEgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzMywKKyAgICAgICBrX0VCdXR0b25fQXhpczIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzNCwKKyAgICAgICBrX0VCdXR0b25fQXhpczMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzNSwKKyAgICAgICBrX0VCdXR0b25fQXhpczQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzNiwKKworICAgICAgIC8vIGFsaWFzZXMgZm9yIHdlbGwg
a25vd24gY29udHJvbGxlcnMKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCAgICAg
ICA9IGtfRUJ1dHRvbl9BeGlzMCwKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9UcmlnZ2VyICAg
ICAgID0ga19FQnV0dG9uX0F4aXMxLAorCisgICAgICAga19FQnV0dG9uX0Rhc2hib2FyZF9CYWNr
ICAgICAgID0ga19FQnV0dG9uX0dyaXAsCisKKyAgICAgICBrX0VCdXR0b25fTWF4ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNjQKK307CisKK2lubGluZSB1aW50NjRfdCBCdXR0b25NYXNr
RnJvbUlkKCBFVlJCdXR0b25JZCBpZCApIHsgcmV0dXJuIDF1bGwgPDwgaWQ7IH0KKworLyoqIHVz
ZWQgZm9yIGNvbnRyb2xsZXIgYnV0dG9uIGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfQ29udHJv
bGxlcl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJCdXR0b25JZCBlbnVtCit9
OworCisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkgc3Bh
Y2UgKi8KK2VudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBWUk1vdXNlQnV0dG9uX0xlZnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAxLAorICAgICAgIFZSTW91
c2VCdXR0b25fUmlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAy
LAorICAgICAgIFZSTW91c2VCdXR0b25fTWlkZGxlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMHgwMDA0LAorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBp
biBvdmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7CisgICAgICAgZmxv
YXQgeCwgeTsgLy8gY28tb3JkcyBhcmUgaW4gR0wgc3BhY2UsIGJvdHRvbSBsZWZ0IG9mIHRoZSB0
ZXh0dXJlIGlzIDAsMAorICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSTW91c2VCdXR0b24g
ZW51bQorfTsKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSB3aGVlbCBzY3JvbGwgaW4g
b3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QKK3sKKyAgICAgICBmbG9h
dCB4ZGVsdGEsIHlkZWx0YTsgLy8gbW92ZW1lbnQgaW4gZnJhY3Rpb24gb2YgdGhlIHBhZCB0cmF2
ZXJzZWQgc2luY2UgbGFzdCBkZWx0YSwgMS4wIGZvciBhIGZ1bGwgc3dpcGUKKyAgICAgICB1aW50
MzJfdCByZXBlYXRDb3VudDsKK307CisKKy8qKiB3aGVuIGluIG1vdXNlIGlucHV0IG1vZGUgeW91
IGNhbiByZWNlaXZlIGRhdGEgZnJvbSB0aGUgdG91Y2hwYWQsIHRoZXNlIGV2ZW50cyBhcmUgb25s
eSBzZW50IGlmIHRoZSB1c2VycyBmaW5nZXIKKyAgIGlzIG9uIHRoZSB0b3VjaHBhZCAob3IganVz
dCByZWxlYXNlZCBmcm9tIGl0KSAKKyoqLworc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QK
K3sKKyAgICAgICAvLyB0cnVlIGlmIHRoZSB1c2VycyBmaW5nZXIgaXMgZGV0ZWN0ZWQgb24gdGhl
IHRvdWNoIHBhZAorICAgICAgIGJvb2wgYkZpbmdlckRvd247CisKKyAgICAgICAvLyBIb3cgbG9u
ZyB0aGUgZmluZ2VyIGhhcyBiZWVuIGRvd24gaW4gc2Vjb25kcworICAgICAgIGZsb2F0IGZsU2Vj
b25kc0ZpbmdlckRvd247CisKKyAgICAgICAvLyBUaGVzZSB2YWx1ZXMgaW5kaWNhdGUgdGhlIHN0
YXJ0aW5nIGZpbmdlciBwb3NpdGlvbiAoc28geW91IGNhbiBkbyBzb21lIGJhc2ljIHN3aXBlIHN0
dWZmKQorICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKKyAgICAgICBmbG9hdCBmVmFsdWVZRmly
c3Q7CisKKyAgICAgICAvLyBUaGlzIGlzIHRoZSByYXcgc2FtcGxlZCBjb29yZGluYXRlIHdpdGhv
dXQgZGVhZHpvbmluZworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgZmxvYXQgZlZh
bHVlWVJhdzsKK307CisKKy8qKiBub3RpZmljYXRpb24gcmVsYXRlZCBldmVudHMuIERldGFpbHMg
d2lsbCBzdGlsbCBjaGFuZ2UgYXQgdGhpcyBwb2ludCAqLworc3RydWN0IFZSRXZlbnRfTm90aWZp
Y2F0aW9uX3QKK3sKKyAgICAgICB1aW50NjRfdCB1bFVzZXJWYWx1ZTsKKyAgICAgICB1aW50MzJf
dCBub3RpZmljYXRpb25JZDsKK307CisKKy8qKiBVc2VkIGZvciBldmVudHMgYWJvdXQgcHJvY2Vz
c2VzICovCitzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7
CisgICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJvb2wgYkZvcmNlZDsKK307CisKKwor
LyoqIFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAqLworc3RydWN0IFZSRXZl
bnRfT3ZlcmxheV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKK307CisKKwor
LyoqIFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAqLworc3RydWN0IFZSRXZl
bnRfU3RhdHVzX3QKK3sKKyAgICAgICB1aW50MzJfdCBzdGF0dXNTdGF0ZTsgLy8gRVZSU3RhdGUg
ZW51bQorfTsKKworLyoqIFVzZWQgZm9yIGtleWJvYXJkIGV2ZW50cyAqKi8KK3N0cnVjdCBWUkV2
ZW50X0tleWJvYXJkX3QKK3sKKyAgICAgICBjaGFyIGNOZXdJbnB1dFs4XTsgICAgICAgLy8gVXAg
dG8gMTEgYnl0ZXMgb2YgbmV3IGlucHV0CisgICAgICAgdWludDY0X3QgdVVzZXJWYWx1ZTsgICAg
ICAgLy8gUG9zc2libGUgZmxhZ3MgYWJvdXQgdGhlIG5ldyBpbnB1dAorfTsKKworc3RydWN0IFZS
RXZlbnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9OworCitzdHJ1Y3QgVlJF
dmVudF9DaGFwZXJvbmVfdAoreworICAgICAgIHVpbnQ2NF90IG1fblByZXZpb3VzVW5pdmVyc2U7
CisgICAgICAgdWludDY0X3QgbV9uQ3VycmVudFVuaXZlcnNlOworfTsKKworLyoqIE5vdCBhY3R1
YWxseSB1c2VkIGZvciBhbnkgZXZlbnRzICovCitzdHJ1Y3QgVlJFdmVudF9SZXNlcnZlZF90Cit7
CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMTsK
K307CisKK3N0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMy
X3QgbV9uRmlkZWxpdHlMZXZlbDsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3Nl
UmVzZXRfdAoreworICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfTsKKworc3RydWN0
IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3QgaGFuZGxlOworICAgICAg
IHVpbnQzMl90IHR5cGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3Nf
dAoreworICAgICAgIGZsb2F0IHByb2dyZXNzOworfTsKKworc3RydWN0IFZSRXZlbnRfQXBwbGlj
YXRpb25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50MzJfdCB1
bkFyZ3NIYW5kbGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90
Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBuVmlz
dWFsTW9kZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAg
ICB1aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsgLy8gdnI6OlZSTWVzc2FnZU92
ZXJsYXlSZXNwb25zZSBlbnVtCit9OworCitzdHJ1Y3QgVlJFdmVudF9Qcm9wZXJ0eV90Cit7Cisg
ICAgICAgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBjb250YWluZXI7CisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworfTsKKworLyoqIE5PVEUhISEgSWYgeW91IGNoYW5nZSB0
aGlzIHlvdSBNVVNUIG1hbnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSAqLwordHlw
ZWRlZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRfdCByZXNlcnZlZDsKKyAgICAg
ICBWUkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAgICAgIFZSRXZlbnRfTW91c2Vf
dCBtb3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9sbDsKKyAgICAgICBWUkV2ZW50
X1Byb2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX3Qgbm90aWZp
Y2F0aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJsYXk7CisgICAgICAgVlJFdmVu
dF9TdGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXlib2FyZF90IGtleWJvYXJkOwor
ICAgICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lX3QgY2hh
cGVyb25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0
OworICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFZS
RXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Qb3NlUmVzZXQ7CisgICAgICAg
VlJFdmVudF9TY3JlZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNo
b3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0
aW9uTGF1bmNoX3QgYXBwbGljYXRpb25MYXVuY2g7CisgICAgICAgVlJFdmVudF9FZGl0aW5nQ2Ft
ZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgVlJFdmVudF9NZXNzYWdlT3Zlcmxh
eV90IG1lc3NhZ2VPdmVybGF5OworICAgICAgIFZSRXZlbnRfUHJvcGVydHlfdCBwcm9wZXJ0eTsK
K30gVlJFdmVudF9EYXRhX3Q7CisKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVk
KF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1p
cy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNw
cmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0
aGUgc2VydmVyIHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLworc3RydWN0IFZSRXZlbnRf
dAoreworICAgICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KKyAg
ICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7CisgICAgICAgZmxv
YXQgZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5k
IG9mIHRoZSBzdHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAgICAgICBWUkV2ZW50X0Rh
dGFfdCBkYXRhOworfTsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQ
TEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworLyoqIFRoZSBtZXNoIHRvIGRy
YXcgaW50byB0aGUgc3RlbmNpbCAob3IgZGVwdGgpIGJ1ZmZlciB0byBwZXJmb3JtIAorKiBlYXJs
eSBzdGVuY2lsIChvciBkZXB0aCkga2lsbHMgb2YgcGl4ZWxzIHRoYXQgd2lsbCBuZXZlciBhcHBl
YXIgb24gdGhlIEhNRC4KKyogVGhpcyBtZXNoIGRyYXdzIG9uIGFsbCB0aGUgcGl4ZWxzIHRoYXQg
d2lsbCBiZSBoaWRkZW4gYWZ0ZXIgZGlzdG9ydGlvbi4gCisqCisqIElmIHRoZSBITUQgZG9lcyBu
b3QgcHJvdmlkZSBhIHZpc2libGUgYXJlYSBtZXNoIHBWZXJ0ZXhEYXRhIHdpbGwgYmUKKyogTlVM
TCBhbmQgdW5UcmlhbmdsZUNvdW50IHdpbGwgYmUgMC4gKi8KK3N0cnVjdCBIaWRkZW5BcmVhTWVz
aF90Cit7CisgICAgICAgY29uc3QgSG1kVmVjdG9yMl90ICpwVmVydGV4RGF0YTsKKyAgICAgICB1
aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Cit9OworCisKK2VudW0gRUhpZGRlbkFyZWFNZXNoVHlw
ZQoreworICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0gMCwKKyAgICAgICBrX2VI
aWRkZW5BcmVhTWVzaF9JbnZlcnNlID0gMSwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9MaW5l
TG9vcCA9IDIsCisKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9NYXggPSAzLAorfTsKKworCisv
KiogSWRlbnRpZmllcyB3aGF0IGtpbmQgb2YgYXhpcyBpcyBvbiB0aGUgY29udHJvbGxlciBhdCBp
bmRleCBuLiBSZWFkIHRoaXMgdHlwZSAKKyogd2l0aCBwVlJTeXN0ZW0tPkdldCggbkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCwgUHJvcF9BeGlzMFR5cGVfSW50MzIgKyBuICk7CisqLworZW51bSBFVlJD
b250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19Ob25lID0gMCwK
KyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAgICAga19lQ29udHJv
bGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIg
PSAzLCAvLyBBbmFsb2cgdHJpZ2dlciBkYXRhIGlzIGluIHRoZSBYIGF4aXMKK307CisKKworLyoq
IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IG9uZSBheGlzIG9uIHRoZSBjb250cm9sbGVyICov
CitzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgZmxvYXQgeDsgLy8gUmFuZ2Vz
IGZyb20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFkcy4gUmFuZ2VzIGZy
b20gMC4wIHRvIDEuMCBmb3IgdHJpZ2dlcnMgd2VyZSAwIGlzIGZ1bGx5IHJlbGVhc2VkLgorICAg
ICAgIGZsb2F0IHk7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlja3MgYW5k
IHRyYWNrIHBhZHMuIElzIGFsd2F5cyAwLjAgZm9yIHRyaWdnZXJzLgorfTsKKworCisvKiogdGhl
IG51bWJlciBvZiBheGVzIGluIHRoZSBjb250cm9sbGVyIHN0YXRlICovCitzdGF0aWMgY29uc3Qg
dWludDMyX3Qga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCA9IDU7CisKKworI2lmIGRlZmlu
ZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3
YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3Ig
CisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKwor
LyoqIEhvbGRzIGFsbCB0aGUgc3RhdGUgb2YgYSBjb250cm9sbGVyIGF0IG9uZSBtb21lbnQgaW4g
dGltZS4gKi8KK3N0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90Cit7CisgICAgICAgLy8gSWYg
cGFja2V0IG51bSBtYXRjaGVzIHRoYXQgb24geW91ciBwcmlvciBjYWxsLCB0aGVuIHRoZSBjb250
cm9sbGVyIHN0YXRlIGhhc24ndCBiZWVuIGNoYW5nZWQgc2luY2UgCisgICAgICAgLy8geW91ciBs
YXN0IGNhbGwgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyBpdAorICAgICAgIHVpbnQz
Ml90IHVuUGFja2V0TnVtOworCisgICAgICAgLy8gYml0IGZsYWdzIGZvciBlYWNoIG9mIHRoZSBi
dXR0b25zLiBVc2UgQnV0dG9uTWFza0Zyb21JZCB0byB0dXJuIGFuIElEIGludG8gYSBtYXNrCisg
ICAgICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9u
VG91Y2hlZDsKKworICAgICAgIC8vIEF4aXMgZGF0YSBmb3IgdGhlIGNvbnRyb2xsZXIncyBhbmFs
b2cgaW5wdXRzCisgICAgICAgVlJDb250cm9sbGVyQXhpc190IHJBeGlzWyBrX3VuQ29udHJvbGxl
clN0YXRlQXhpc0NvdW50IF07Cit9OworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVk
KF9fQVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworCit0eXBlZGVmIFZS
Q29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKKworCisvKiogZGV0ZXJt
aW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHZhcmlvdXMg
ZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91
dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAor
ICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9OworCisKKworLyoq
IENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgQ09M
TElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAgQ09MTElTSU9OX0JPVU5E
U19TVFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQs
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisgICAgICAgQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8g
Y3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3NpdG9yICovCitz
dHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXpl
OyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisgICAgICAgYm9vbCBjdXJ2
ZWQsIGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFscGhhOworICAg
ICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOworICAgICAgIGZsb2F0
IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBIbWRNYXRyaXg0NF90IHRy
YW5zZm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZSIG92ZXJsYXkg
Ki8KK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCBW
Uk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworCisvKiogRXJy
b3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLworZW51bSBFVlJPdmVybGF5
RXJyb3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5rbm93
bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAgIFZST3ZlcmxheUVycm9y
X0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAorICAgICAgIFZST3Zlcmxh
eUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAgICAg
IFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAgICA9IDEzLCAv
LyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBu
dW1iZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0
eVR5cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9u
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAgIFZST3ZlcmxheUVycm9y
X05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCisgICAgICAgVlJP
dmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAgICAgICAgICAg
ICA9IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlICAgICAg
ICAgICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIgICAg
ICAgICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVycm9yX1RodW1ibmFpbENh
bnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3ZlcmxheUVycm9yX0FycmF5VG9v
U21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZST3ZlcmxheUVycm9yX1Jl
cXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKKyAgICAgICBWUk92
ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAgPSAyNSwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAgICAgICAgPSAy
NiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVz
ICAgICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSAgICAg
ICAgICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1ZXMgdG8gcGFzcyBpbiB0
byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdpbGwgCisqIGRy
YXcgYSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAgVlJB
cHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVyIGtpbmQgb2Yg
YXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRyaWVzIAorICAg
ICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAgLy8gQXBwbGlj
YXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zlcmxh
eSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0cyB3aXRoIG92
ZXJsYXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAgICAgLy8gQXBw
bGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFscmVhZHkgcnVu
bmluZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBpZiBldmVyeXRo
aW5nIGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwgICAgICAg
ICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVycy4gVGhlIGFw
cGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIChs
aWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFyZHdhcmUuCisg
ICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNlcnZlZCBmb3Ig
dnJtb25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwvLyBSZXNl
cnZlZCBmb3IgU3RlYW0KKyAgICAgICBWUkFwcGxpY2F0aW9uX0Jvb3RzdHJhcHBlciA9IDcsIC8v
IFN0YXJ0IHVwIFN0ZWFtVlIKKworICAgICAgIFZSQXBwbGljYXRpb25fTWF4Cit9OworCisKKy8q
KiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmlybXdhcmVFcnJvcgorewor
ICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUkZpcm13YXJlRXJyb3Jf
U3VjY2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAorfTsKKworCisv
KiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0gRVZSTm90aWZpY2F0aW9u
RXJyb3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAgIFZSTm90
aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9
OworCisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCisKKy8vIFBsZWFz
ZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9wZXIudmFs
dmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhlbHAKK2Vu
dW0gRVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9IDAsCisg
ICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAgICAgICAgICAgICAgICAg
PSAxMDEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kICAgICAg
ICAgICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91
bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTA0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlk
SW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgICAgICAgICAgICAgID0gMTA3
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlh
bGl6ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9
IDExMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xv
Z1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMiwKKyAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlICAgICAgICAgICAg
ICA9IDExMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUmV0
cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTUs
IC8vIFVzZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZyc2VydmVyCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTYsIC8vIFRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIHNob3VsZCBzaWxlbnRseSBl
eGl0LiBUaGUgdXNlciBjYW5jZWxlZCBhcHAgc3RhcnR1cAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfQW5vdGhlckFwcExhdW5jaGluZyAgICAgICAgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDExOCwgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE5LAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfVG9vTWFueU9iamVjdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTIwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAg
ICAgICAgICAgICA9IDEyMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdp
dGhDb21wb3NpdG9yICAgICAgICAgICAgICA9IDEyMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgICAgICAgICAgICAgID0gMTIzLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9u
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjUsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkICAgICAgICAgICAgICAgPSAxMjYsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEyNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBG
YWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDEyOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgICAgICAgPSAxMjksIAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSAgICAgICAgICAgICAgICAgICAgID0g
MTMwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMg
ICAgICAgICAgICAgID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNh
YmxlZEluU2V0dGluZ3MgICAgICAgICAgICAgID0gMTMyLAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfVlJEYXNoYm9hcmROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTMzLAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgICAgICAgICA9
IDEzNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZvdW5kICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEzNSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZS
SG9tZVN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDEzNiwKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X1JlYm9vdGluZ0J1c3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTM3LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVVcGRhdGVCdXN5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTM4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
RmlybXdhcmVSZWNvdmVyeUJ1c3kgICAgICAgICAgICAgICAgICAgICA9IDEzOSwKKworCisgICAg
ICAgVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAwLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDEsCisgICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAyLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZl
cl9SdW50aW1lT3V0T2ZEYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0LAorICAg
ICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxp
YnJhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA2LAorICAgICAgIFZSSW5pdEVy
cm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgICAgICAgICAgICAgICAgICAgICA9IDIwNywK
KyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kICAgICAgICAgICAg
ICAgICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJ
bnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
aXNwbGF5Tm90Rm91bmRBZnRlckZpeCA9IDIxMCwgLy8gbm90IG5lZWRlZDogaGVyZSBmb3IgaGlz
dG9yaWMgcmVhc29ucworICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9m
Qm91bmRzICAgICAgICAgICAgICA9IDIxMSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1k
RGlzcGxheU1pcnJvcmVkICAgICAgICAgICAgICAgICAgICAgPSAyMTIsCisKKyAgICAgICBWUklu
aXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDMwMCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzMDEsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX1NoYXJl
ZFN0YXRlSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAyLAorICAgICAgIFZSSW5p
dEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAz
LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzA0LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDUsCisg
ICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkICAgICAgICAgICAg
ICAgICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlk
Q29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFp
bGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAgVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNDAwLAor
ICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkICAgICAg
ID0gNDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1Vw
ZGF0ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJ
bml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3Np
dG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKyAgICAgICBWUkluaXRFcnJv
cl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRlRGV2aWNlICAgICAgICAgICAgICA9IDQwNSwKKwor
ICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVz
UnVudGltZSAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTEwMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb1JlcXVlc3RDb25maWdTdGFydCAgICAgICA9IDExMDIsCisgICAgICAgVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9Db25maWdUb29CaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNCwK
KyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFs
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA1LAorICAgICAgIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTA2LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uICAgICAgICA9IDExMDcsCisgICAgICAgVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCAgICAg
ICA9IDExMDgsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5h
YmxlVG9HZXRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAgICBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCAgICAgICAgICAg
ICAgPSAxMTEwLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vz
ZXJEYXRhQWRkcmVzc1JhbmdlICAgICAgICAgICAgICA9IDExMTEsCisgICAgICAgVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDExMTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAgID0gMTExMywKKworICAg
ICAgIFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAor
fTsKKworZW51bSBFVlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIFZSU2NyZWVuc2hvdFR5cGVf
Tm9uZSA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwgLy8gbGVmdCBleWUg
b25seQorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBWUlNjcmVl
bnNob3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9y
YW1hID0gNCwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNQorfTsK
KworZW51bSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBWUlNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAgICBWUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lc19WUiA9IDEsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cgoreworICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAg
ICAgID0gMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgICAg
ICAgICAgICA9IDEwMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxl
ICAgICAgICAgICAgICA9IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfT3V0T2ZIYW5kbGVzICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSVBDRmFpbHVyZSAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSAgPSAxMDUsCisgICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSAgICAgICAgPSAxMDYs
CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWlsdXJlICAgICAg
PSAxMDcsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlICAg
ICAgICAgPSAxMDgsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVy
ZUlkICAgICAgICAgPSAxMDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNo
YXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFp
bGVkVG9HZXRHTFRleHR1cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJy
b3JfU2hhcmVkVGV4dHVyZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMsCisgICAgICAgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAgPSAxMTQsCisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSAgICAgPSAxMTUsCit9
OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwgICAgICAgICAgICAgICAgICAgICAvLyBUaGlz
IGlzIHRoZSBjYW1lcmEgdmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMsIHN0aWxsIGRpc3RvcnRl
ZC4KKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQsICAgICAgICAg
ICAgICAgICAgICAgLy8gSW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBpbnNjcmliZWQgcmVjdGFu
Z2xlIHJlZ2lvbiB3aXRob3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBzaXplIGlzIHN1YmplY3Qg
dG8gY2hhbmdlcyBzaG9ydGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhp
bXVtVW5kaXN0b3J0ZWQsICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11bSB1bmRpc3RvcnRlZCB3
aXRoIGludmFsaWQgcmVnaW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9uZW50IGlkZW50aWZpZXMg
dmFsaWQgcmVnaW9ucy4KKyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTCit9OworCit0eXBl
ZGVmIHVpbnQ2NF90IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZpbmUgSU5WQUxJRF9UUkFD
S0VEX0NBTUVSQV9IQU5ETEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90KTApCisK
K3N0cnVjdCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7
CisgICAgICAgdWludDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhl
bDsKKworICAgICAgIHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisgICAgICAgVHJhY2tlZERl
dmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsKKworLy8gU2NyZWVuc2hv
dCB0eXBlcwordHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7CisKK3N0YXRpYyBj
b25zdCB1aW50MzJfdCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworCisjcHJhZ21h
IHBhY2soIHBvcCApCisKKy8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9ydCBmcm9tIHRoZSBWUiBB
UEkgZGxsCisjaWYgZGVmaW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVm
aW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisjZWxz
ZQorI2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxpbXBvcnQg
KQorI2VuZGlmCisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoQ09NUElMRVJf
R0NDKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZp
bmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVm
YXVsdCIpKSkKKyNlbHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIAorI2VuZGlm
CisKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIKKyNlbmRpZgorCisKKyNp
ZiBkZWZpbmVkKCBfV0lOMzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBfX2NkZWNsCisjZWxzZQor
I2RlZmluZSBWUl9DQUxMVFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB2cgorCisjZW5k
aWYgLy8gX0lOQ0xVREVfVlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0aW9uLmgKKyNpZmRlZiBB
UElfR0VOCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0cmlidXRlX18oKGFubm90
YXRlKCBBVFRSICkpKQorI2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikKKyNlbmRp
ZgorCisjZGVmaW5lIFZSX01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5HX0FUVFIoICJkZXNjOiIg
I0RFU0MgIjsiICkKKyNkZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NMQU5HX0FUVFIoICJpZ25v
cmUiICkKKyNkZWZpbmUgVlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RydWN0
OiA7IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmlu
ZzogOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVSLEZVTkNUSU9OLFBBUkFN
UykgVlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5URVIgIiwiICNGVU5DVElP
TiAiLCIgI1BBUkFNUyAiOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ09VTlQoQ09VTlRFUikg
VlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5l
IFZSX0FSUkFZX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICND
T1VOVEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09VTlRFUiwgREVTQykgVlJf
Q0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNjOiIgI0RFU0MgKQorI2Rl
ZmluZSBWUl9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImJ1ZmZlcl9jb3Vu
dDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJfQ09VTlQoQ09VTlRFUikg
VlJfQ0xBTkdfQVRUUiggIm91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmlu
ZSBWUl9PVVRfU1RSSU5HX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5n
X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKworLy8gaXZyc3lzdGVtLmgKK25hbWVzcGFjZSB2cgor
eworCitjbGFzcyBJVlJTeXN0ZW0KK3sKK3B1YmxpYzoKKworCisgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gRGlzcGxheSBNZXRob2RzCisg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAv
KiogU3VnZ2VzdGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVuZGVyIHRhcmdldCB0aGF0
IHRoZSBkaXN0b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldFJl
Y29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpw
bkhlaWdodCApID0gMDsKKworICAgICAgIC8qKiBUaGUgcHJvamVjdGlvbiBtYXRyaXggZm9yIHRo
ZSBzcGVjaWZpZWQgZXllICovCisgICAgICAgdmlydHVhbCBIbWRNYXRyaXg0NF90IEdldFByb2pl
Y3Rpb25NYXRyaXgoIEVWUkV5ZSBlRXllLCBmbG9hdCBmTmVhclosIGZsb2F0IGZGYXJaICkgPSAw
OworCisgICAgICAgLyoqIFRoZSBjb21wb25lbnRzIG5lY2Vzc2FyeSB0byBidWlsZCB5b3VyIG93
biBwcm9qZWN0aW9uIG1hdHJpeCBpbiBjYXNlIHlvdXIKKyAgICAgICAqIGFwcGxpY2F0aW9uIGlz
IGRvaW5nIHNvbWV0aGluZyBmYW5jeSBsaWtlIGluZmluaXRlIFogKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0
ICpwZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKworICAgICAg
IC8qKiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIGRpc3RvcnRpb24gZnVuY3Rpb24gZm9yIHRoZSBz
cGVjaWZpZWQgZXllIGFuZCBpbnB1dCBVVnMuIFVWcyBnbyBmcm9tIDAsMCBpbiAKKyAgICAgICAq
IHRoZSB1cHBlciBsZWZ0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQgYW5kIDEsMSBpbiB0aGUgbG93
ZXIgcmlnaHQgb2YgdGhhdCBleWUncyB2aWV3cG9ydC4KKyAgICAgICAqIFJldHVybnMgdHJ1ZSBm
b3Igc3VjY2Vzcy4gT3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLCBhbmQgZGlzdG9ydGlvbiBjb29y
ZGluYXRlcyBhcmUgbm90IHN1aXRhYmxlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDb21wdXRl
RGlzdG9ydGlvbiggRVZSRXllIGVFeWUsIGZsb2F0IGZVLCBmbG9hdCBmViwgRGlzdG9ydGlvbkNv
b3JkaW5hdGVzX3QgKnBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMgKSA9IDA7CisKKyAgICAgICAvKiog
UmV0dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gZXllIHNwYWNlIHRvIHRoZSBoZWFkIHNwYWNlLiBF
eWUgc3BhY2UgaXMgdGhlIHBlci1leWUgZmxhdm9yIG9mIGhlYWQKKyAgICAgICAqIHNwYWNlIHRo
YXQgcHJvdmlkZXMgc3RlcmVvIGRpc3Bhcml0eS4gSW5zdGVhZCBvZiBNb2RlbCAqIFZpZXcgKiBQ
cm9qZWN0aW9uIHRoZSBzZXF1ZW5jZSBpcyBNb2RlbCAqIFZpZXcgKiBFeWVeLTEgKiBQcm9qZWN0
aW9uLiAKKyAgICAgICAqIE5vcm1hbGx5IFZpZXcgYW5kIEV5ZV4tMSB3aWxsIGJlIG11bHRpcGxp
ZWQgdG9nZXRoZXIgYW5kIHRyZWF0ZWQgYXMgVmlldyBpbiB5b3VyIGFwcGxpY2F0aW9uLiAKKyAg
ICAgICAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRFeWVUb0hlYWRUcmFuc2Zv
cm0oIEVWUkV5ZSBlRXllICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBv
ZiBlbGFwc2VkIHNlY29uZHMgc2luY2UgdGhlIGxhc3QgcmVjb3JkZWQgdnN5bmMgZXZlbnQuIFRo
aXMgCisgICAgICAgKiAgICAgICB3aWxsIGNvbWUgZnJvbSBhIHZzeW5jIHRpbWVyIGV2ZW50IGlu
IHRoZSB0aW1lciBpZiBwb3NzaWJsZSBvciBmcm9tIHRoZSBhcHBsaWNhdGlvbi1yZXBvcnRlZAor
ICAgICAgICogICB0aW1lIGlmIHRoYXQgaXMgbm90IGF2YWlsYWJsZS4gSWYgbm8gdnN5bmMgdGlt
ZXMgYXJlIGF2YWlsYWJsZSB0aGUgZnVuY3Rpb24gd2lsbCAKKyAgICAgICAqICAgcmV0dXJuIHpl
cm8gZm9yIHZzeW5jIHRpbWUgYW5kIGZyYW1lIGNvdW50ZXIgYW5kIHJldHVybiBmYWxzZSBmcm9t
IHRoZSBtZXRob2QuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFRpbWVTaW5jZUxhc3RWc3lu
YyggZmxvYXQgKnBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRfdCAqcHVsRnJhbWVDb3Vu
dGVyICkgPSAwOworCisgICAgICAgLyoqIFtEM0Q5IE9ubHldCisgICAgICAgKiBSZXR1cm5zIHRo
ZSBhZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBDcmVhdGVEZXZp
Y2UgdG8gc2V0IHVwIEQzRDkgaW4gc3VjaAorICAgICAgICogYSB3YXkgdGhhdCBpdCBjYW4gZ28g
ZnVsbCBzY3JlZW4gZXhjbHVzaXZlIG9uIHRoZSBITUQuIFJldHVybnMgLTEgaWYgdGhlcmUgd2Fz
IGFuIGVycm9yLgorICAgICAgICovCisgICAgICAgdmlydHVhbCBpbnQzMl90IEdldEQzRDlBZGFw
dGVySW5kZXgoKSA9IDA7CisKKyAgICAgICAvKiogW0QzRDEwLzExIE9ubHldCisgICAgICAgKiBS
ZXR1cm5zIHRoZSBhZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBF
bnVtQWRhcHRlcnMgdG8gY3JlYXRlIHRoZSBkZXZpY2UgCisgICAgICAgKiBhbmQgc3dhcCBjaGFp
biBpbiBEWDEwIGFuZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhlIGluZGV4IHdpbGwgYmUg
c2V0IHRvIC0xLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldERYR0lPdXRwdXRJ
bmZvKCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCApID0gMDsKKyAgICAgICAKKyAgICAgICAvKioK
KyAgICAgICAgKiBSZXR1cm5zIHBsYXRmb3JtLSBhbmQgdGV4dHVyZS10eXBlIHNwZWNpZmljIGFk
YXB0ZXIgaWRlbnRpZmljYXRpb24gc28gdGhhdCBhcHBsaWNhdGlvbnMgYW5kIHRoZQorICAgICAg
ICAqIGNvbXBvc2l0b3IgYXJlIGNyZWF0aW5nIHRleHR1cmVzIGFuZCBzd2FwIGNoYWlucyBvbiB0
aGUgc2FtZSBHUFUuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgZGV2aWNlCisgICAgICAgICogd2ls
bCBiZSBzZXQgdG8gMC4KKyAgICAgICAgKiBwSW5zdGFuY2UgaXMgYW4gb3B0aW9uYWwgcGFyYW1l
dGVyIHRoYXQgaXMgcmVxdWlyZWQgb25seSB3aGVuIHRleHR1cmVUeXBlIGlzIFRleHR1cmVUeXBl
X1Z1bGthbi4KKyAgICAgICAgKiBbRDNEMTAvMTEvMTIgT25seSAoRDNEOSBOb3QgU3VwcG9ydGVk
KV0KKyAgICAgICAgKiAgUmV0dXJucyB0aGUgYWRhcHRlciBMVUlEIHRoYXQgaWRlbnRpZmllcyB0
aGUgR1BVIGF0dGFjaGVkIHRvIHRoZSBITUQuIFRoZSB1c2VyIHNob3VsZAorICAgICAgICAqICBl
bnVtZXJhdGUgYWxsIGFkYXB0ZXJzIHVzaW5nIElEWEdJRmFjdG9yeTo6RW51bUFkYXB0ZXJzIGFu
ZCBJRFhHSUFkYXB0ZXI6OkdldERlc2MgdG8gZmluZAorICAgICAgICAqICB0aGUgYWRhcHRlciB3
aXRoIHRoZSBtYXRjaGluZyBMVUlELCBvciB1c2UgSURYR0lGYWN0b3J5NDo6RW51bUFkYXB0ZXJC
eUx1aWQuCisgICAgICAgICogIFRoZSBkaXNjb3ZlcmVkIElEWEdJQWRhcHRlciBzaG91bGQgYmUg
dXNlZCB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbi4KKyAgICAgICAgKiBbVnVs
a2FuIE9ubHldCisgICAgICAgICogIFJldHVybnMgdGhlIFZrUGh5c2ljYWxEZXZpY2UgdGhhdCBz
aG91bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAgICogIHBJbnN0YW5jZSBt
dXN0IGJlIHRoZSBpbnN0YW5jZSB0aGUgYXBwbGljYXRpb24gd2lsbCB1c2UgdG8gcXVlcnkgZm9y
IHRoZSBWa1BoeXNpY2FsRGV2aWNlLiAgVGhlIGFwcGxpY2F0aW9uCisgICAgICAgICogIG11c3Qg
Y3JlYXRlIHRoZSBWa0luc3RhbmNlIHdpdGggZXh0ZW5zaW9ucyByZXR1cm5lZCBieSBJVlJDb21w
b3NpdG9yOjpHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBlbmFibGVkLgorICAg
ICAgICAqIFttYWNPUyBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIGFuIGlkPE1UTERldmljZT4g
dGhhdCBzaG91bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAgICovCisgICAg
ICAgdmlydHVhbCB2b2lkIEdldE91dHB1dERldmljZSggdWludDY0X3QgKnBuRGV2aWNlLCBFVGV4
dHVyZVR5cGUgdGV4dHVyZVR5cGUsIFZrSW5zdGFuY2VfVCAqcEluc3RhbmNlID0gbnVsbHB0ciAp
ID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIERpc3BsYXkgTW9kZSBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVXNlIHRvIGRldGVybWluZSBpZiB0
aGUgaGVhZHNldCBkaXNwbGF5IGlzIHBhcnQgb2YgdGhlIGRlc2t0b3AgKGkuZS4gZXh0ZW5kZWQp
IG9yIGhpZGRlbiAoaS5lLiBkaXJlY3QgbW9kZSkuICovCisgICAgICAgdmlydHVhbCBib29sIElz
RGlzcGxheU9uRGVza3RvcCgpID0gMDsKKworICAgICAgIC8qKiBTZXQgdGhlIGRpc3BsYXkgdmlz
aWJpbGl0eSAodHJ1ZSA9IGV4dGVuZGVkLCBmYWxzZSA9IGRpcmVjdCBtb2RlKS4gIFJldHVybiB2
YWx1ZSBvZiB0cnVlIGluZGljYXRlcyB0aGF0IHRoZSBjaGFuZ2Ugd2FzIHN1Y2Nlc3NmdWwuICov
CisgICAgICAgdmlydHVhbCBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5KCBib29sIGJJc1Zpc2li
bGVPbkRlc2t0b3AgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAvLyBUcmFja2luZyBNZXRob2RzCisgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVGhlIHBvc2UgdGhh
dCB0aGUgdHJhY2tlciB0aGlua3MgdGhhdCB0aGUgSE1EIHdpbGwgYmUgaW4gYXQgdGhlIHNwZWNp
ZmllZCBudW1iZXIgb2Ygc2Vjb25kcyBpbnRvIHRoZSAKKyAgICAgICAqIGZ1dHVyZS4gUGFzcyAw
IHRvIGdldCB0aGUgc3RhdGUgYXQgdGhlIGluc3RhbnQgdGhlIG1ldGhvZCBpcyBjYWxsZWQuIE1v
c3Qgb2YgdGhlIHRpbWUgdGhlIGFwcGxpY2F0aW9uIHNob3VsZAorICAgICAgICogY2FsY3VsYXRl
IHRoZSB0aW1lIHVudGlsIHRoZSBwaG90b25zIHdpbGwgYmUgZW1pdHRlZCBmcm9tIHRoZSBkaXNw
bGF5IGFuZCBwYXNzIHRoYXQgdGltZSBpbnRvIHRoZSBtZXRob2QuCisgICAgICAgKgorICAgICAg
ICogVGhpcyBpcyByb3VnaGx5IGFuYWxvZ291cyB0byB0aGUgaW52ZXJzZSBvZiB0aGUgdmlldyBt
YXRyaXggaW4gbW9zdCBhcHBsaWNhdGlvbnMsIHRob3VnaCAKKyAgICAgICAqIG1hbnkgZ2FtZXMg
d2lsbCBuZWVkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCByb3RhdGlvbiBvciB0cmFuc2xhdGlvbiBv
biB0b3Agb2YgdGhlIHJvdGF0aW9uCisgICAgICAgKiBhbmQgdHJhbnNsYXRpb24gcHJvdmlkZWQg
YnkgdGhlIGhlYWQgcG9zZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZGV2aWNlcyB3aGVyZSBi
UG9zZUlzVmFsaWQgaXMgdHJ1ZSB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSB0aGUgcG9zZSB0byBw
b3NpdGlvbiB0aGUgZGV2aWNlCisgICAgICAgKiBpbiBxdWVzdGlvbi4gVGhlIHByb3ZpZGVkIGFy
cmF5IGNhbiBiZSBhbnkgc2l6ZSB1cCB0byBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50LiAKKyAg
ICAgICAqCisgICAgICAgKiBTZWF0ZWQgZXhwZXJpZW5jZXMgc2hvdWxkIGNhbGwgdGhpcyBtZXRo
b2Qgd2l0aCBUcmFja2luZ1VuaXZlcnNlU2VhdGVkIGFuZCByZWNlaXZlIHBvc2VzIHJlbGF0aXZl
CisgICAgICAgKiB0byB0aGUgc2VhdGVkIHplcm8gcG9zZS4gU3RhbmRpbmcgZXhwZXJpZW5jZXMg
c2hvdWxkIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgCisg
ICAgICAgKiBhbmQgcmVjZWl2ZSBwb3NlcyByZWxhdGl2ZSB0byB0aGUgQ2hhcGVyb25lIFBsYXkg
QXJlYS4gVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCBzaG91bGQgCisgICAgICAg
KiBwcm9iYWJseSBub3QgYmUgdXNlZCB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uIGlzIHRoZSBDaGFw
ZXJvbmUgY2FsaWJyYXRpb24gdG9vbCBpdHNlbGYsIGJ1dCB3aWxsIHByb3ZpZGUKKyAgICAgICAq
IHBvc2VzIHJlbGF0aXZlIHRvIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb29yZGluYXRlIHN5c3Rl
bSBpbiB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldERldmlj
ZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
IGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgVlJfQVJSQVlfQ09VTlQo
dW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFj
a2VkRGV2aWNlUG9zZUFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3Vu
dCApID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSB6ZXJvIHBvc2UgZm9yIHRoZSBzZWF0ZWQg
dHJhY2tlciBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgeWF3
IG9mIHRoZSBITUQuIEFmdGVyIAorICAgICAgICogUmVzZXRTZWF0ZWRaZXJvUG9zZSBhbGwgR2V0
RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBjYWxscyB0aGF0IHBhc3MgVHJhY2tpbmdVbml2
ZXJzZVNlYXRlZCBhcyB0aGUgb3JpZ2luIAorICAgICAgICogd2lsbCBiZSByZWxhdGl2ZSB0byB0
aGlzIG5ldyB6ZXJvIHBvc2UuIFRoZSBuZXcgemVybyBjb29yZGluYXRlIHN5c3RlbSB3aWxsIG5v
dCBjaGFuZ2UgdGhlIGZhY3QgdGhhdCB0aGUgWSBheGlzIAorICAgICAgICogaXMgdXAgaW4gdGhl
IHJlYWwgd29ybGQsIHNvIHRoZSBuZXh0IHBvc2UgcmV0dXJuZWQgZnJvbSBHZXREZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmdQb3NlIGFmdGVyIGEgY2FsbCB0byAKKyAgICAgICAqIFJlc2V0U2VhdGVk
WmVyb1Bvc2UgbWF5IG5vdCBiZSBleGFjdGx5IGFuIGlkZW50aXR5IG1hdHJpeC4KKyAgICAgICAq
CisgICAgICAgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0aGUgdXNlcidzIHByZXZp
b3VzbHkgc2F2ZWQgc2VhdGVkIHplcm8gcG9zZSBhbmQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFz
IHRoZSByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gCisgICAgICAgKiBVc2VycyBhcmUgYWxzbyBh
YmxlIHRvIHNldCB0aGVpciBzZWF0ZWQgemVybyBwb3NlIHZpYSB0aGUgT3BlblZSIERhc2hib2Fy
ZC4KKyAgICAgICAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVzZXRTZWF0ZWRaZXJvUG9zZSgp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gZnJvbSB0aGUgc2VhdGVk
IHplcm8gcG9zZSB0byB0aGUgc3RhbmRpbmcgYWJzb2x1dGUgdHJhY2tpbmcgc3lzdGVtLiBUaGlz
IGFsbG93cyAKKyAgICAgICAqIGFwcGxpY2F0aW9ucyB0byByZXByZXNlbnQgdGhlIHNlYXRlZCBv
cmlnaW4gdG8gdXNlZCBvciB0cmFuc2Zvcm0gb2JqZWN0IHBvc2l0aW9ucyBmcm9tIG9uZSBjb29y
ZGluYXRlCisgICAgICAgKiBzeXN0ZW0gdG8gdGhlIG90aGVyLiAKKyAgICAgICAqCisgICAgICAg
KiBUaGUgc2VhdGVkIG9yaWdpbiBtYXkgb3IgbWF5IG5vdCBiZSBpbnNpZGUgdGhlIFBsYXkgQXJl
YSBvciBDb2xsaXNpb24gQm91bmRzIHJldHVybmVkIGJ5IElWUkNoYXBlcm9uZS4gSXRzIHBvc2l0
aW9uIAorICAgICAgICogZGVwZW5kcyBvbiB3aGF0IHRoZSB1c2VyIGhhcyBzZXQgZnJvbSB0aGUg
RGFzaGJvYXJkIHNldHRpbmdzIGFuZCBwcmV2aW91cyBjYWxscyB0byBSZXNldFNlYXRlZFplcm9Q
b3NlLiAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRTZWF0ZWRaZXJvUG9zZVRv
U3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5z
IHRoZSB0cmFuc2Zvcm0gZnJvbSB0aGUgdHJhY2tpbmcgb3JpZ2luIHRvIHRoZSBzdGFuZGluZyBh
YnNvbHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzCisgICAgICAgKiBhcHBsaWNhdGlv
bnMgdG8gY29udmVydCBmcm9tIHJhdyB0cmFja2luZyBzcGFjZSB0byB0aGUgY2FsaWJyYXRlZCBz
dGFuZGluZyBjb29yZGluYXRlIHN5c3RlbS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0
X3QgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKSA9IDA7CisK
KyAgICAgICAvKiogR2V0IGEgc29ydGVkIGFycmF5IG9mIGRldmljZSBpbmRpY2VzIG9mIGEgZ2l2
ZW4gY2xhc3Mgb2YgdHJhY2tlZCBkZXZpY2VzIChlLmcuIGNvbnRyb2xsZXJzKS4gIERldmljZXMg
YXJlIHNvcnRlZCByaWdodCB0byBsZWZ0CisgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgc3BlY2lm
aWVkIHRyYWNrZWQgZGV2aWNlIChkZWZhdWx0OiBobWQgLS0gcGFzcyBpbiAtMSBmb3IgYWJzb2x1
dGUgdHJhY2tpbmcgc3BhY2UpLiAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRldmljZXMKKyAgICAg
ICAqIGluIHRoZSBsaXN0LCBvciB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgbmVlZGVkIGlmIG5vdCBs
YXJnZSBlbm91Z2guICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRTb3J0ZWRUcmFja2Vk
RGV2aWNlSW5kaWNlc09mQ2xhc3MoIEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VD
bGFzcywgVlJfQVJSQVlfQ09VTlQodW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50KSB2cjo6
VHJhY2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJf
dCB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCB1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXggPSBrX3VuVHJhY2tlZERldmljZUluZGV4
X0htZCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsZXZlbCBvZiBhY3Rpdml0eSBv
biB0aGUgZGV2aWNlLiAqLworICAgICAgIHZpcnR1YWwgRURldmljZUFjdGl2aXR5TGV2ZWwgR2V0
VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRl
dmljZUlkICkgPSAwOworCisgICAgICAgLyoqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gYXBwbHkg
dGhlIHNwZWNpZmllZCB0cmFuc2Zvcm0gdG8gdGhlIHNwZWNpZmllZCBwb3NlLgorICAgICAgICog
ICBUaGlzIHByb3Blcmx5IHRyYW5zZm9ybXMgYWxsIHBvc2UgY29tcG9uZW50cywgaW5jbHVkaW5n
IHZlbG9jaXR5IGFuZCBhbmd1bGFyIHZlbG9jaXR5CisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgQXBwbHlUcmFuc2Zvcm0oIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBPdXRwdXRQb3NlLCBj
b25zdCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UsIGNvbnN0IEhtZE1h
dHJpeDM0X3QgKnBUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgZGV2
aWNlIGluZGV4IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvbGUsIGZvciBleGFtcGxlIHRo
ZSBsZWZ0IGhhbmQgb3IgdGhlIHJpZ2h0IGhhbmQuICovCisgICAgICAgdmlydHVhbCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUo
IHZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSApID0gMDsKKworICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBjb250cm9sbGVyIHR5cGUgYXNzb2NpYXRlZCB3aXRoIGEgZGV2aWNl
IGluZGV4LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVUcmFja2VkQ29udHJvbGxlclJvbGUgR2V0
Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gUHJvcGVydHkgbWV0aG9kcworICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIGRldmljZSBjbGFzcyBvZiBhIHRyYWNrZWQgZGV2aWNlLiBJZiB0aGVyZSBoYXMgbm90
IGJlZW4gYSBkZXZpY2UgY29ubmVjdGVkIGluIHRoaXMgc2xvdAorICAgICAgICogc2luY2UgdGhl
IGFwcGxpY2F0aW9uIHN0YXJ0ZWQgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBUcmFja2VkRGV2
aWNlX0ludmFsaWQuIEZvciBwcmV2aW91cyBkZXRlY3RlZAorICAgICAgICogZGV2aWNlcyB0aGUg
ZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHByZXZpb3VzbHkgb2JzZXJ2ZWQgZGV2aWNlIGNsYXNz
LiAKKyAgICAgICAqCisgICAgICAgKiBUbyBkZXRlcm1pbmUgd2hpY2ggZGV2aWNlcyBleGlzdCBv
biB0aGUgc3lzdGVtLCBqdXN0IGxvb3AgZnJvbSAwIHRvIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291
bnQgYW5kIGNoZWNrCisgICAgICAgKiB0aGUgZGV2aWNlIGNsYXNzLiBFdmVyeSBkZXZpY2Ugd2l0
aCBzb21ldGhpbmcgb3RoZXIgdGhhbiBUcmFja2VkRGV2aWNlX0ludmFsaWQgaXMgYXNzb2NpYXRl
ZCB3aXRoIGFuIAorICAgICAgICogYWN0dWFsIHRyYWNrZWQgZGV2aWNlLiAqLworICAgICAgIHZp
cnR1YWwgRVRyYWNrZWREZXZpY2VDbGFzcyBHZXRUcmFja2VkRGV2aWNlQ2xhc3MoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgaW4gdGhpcyBzbG90LiAqLwor
ICAgICAgIHZpcnR1YWwgYm9vbCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQoIHZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
YSBib29sIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUg
cHJvcGVydHkgaXMgbm90IGEgYm9vbCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gZmFs
c2UuICovCisgICAgICAgdmlydHVhbCBib29sIEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHko
IHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIGZsb2F0IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4
IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgZmxvYXQgdHlwZSB0aGlzIGZ1
bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpw
RXJyb3IgPSAwTCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIGludCBwcm9wZXJ0eS4g
SWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBh
IGludCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAgICB2aXJ0dWFs
IGludDMyX3QgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyBhIHVpbnQ2NCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3Ig
dGhlIHByb3BlcnR5IGlzIG5vdCBhIHVpbnQ2NCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1
cm4gMC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCAp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgbWF0cml4IHByb3BlcnR5LiBJZiB0aGUgZGV2
aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgbWF0cml4IHR5
cGUsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaWRlbnRpdHkuICovCisgICAgICAgdmlydHVh
bCBIbWRNYXRyaXgzNF90IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAg
LyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90
IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9u
IHdpbGwgCisgICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0
aCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGlu
Y2x1ZGluZyB0aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMg
Zml0IGluIGJ1ZmZlcnMgb2Yga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAq
LworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVu
QnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKwor
ICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgc3Bl
Y2lmaWVkIHByb3BlcnR5IGVycm9yLiBUaGUgc3RyaW5nIHdpbGwgYmUgdGhlIG5hbWUgCisgICAg
ICAgKiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxsIHZhbGlkIGVycm9yIGNvZGVzICov
CisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oIEVU
cmFja2VkUHJvcGVydHlFcnJvciBlcnJvciApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEV2ZW50IG1ldGhvZHMKKyAgICAg
ICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBS
ZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRo
ZSBxdWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVudHMKKyAgICAgICAq
IHRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6
ZSBpbiBieXRlcyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLworICAgICAgIHZpcnR1YWwgYm9v
bCBQb2xsTmV4dEV2ZW50KCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQg
KSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0
aCB0aGUgbmV4dCBldmVudCBvbiB0aGUgcXVldWUgaWYgdGhlcmUgaXMgb25lLiBJZiB0aGVyZSBh
cmUgbm8gZXZlbnRzCisgICAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiBGaWxscyBp
biB0aGUgcG9zZSBvZiB0aGUgYXNzb2NpYXRlZCB0cmFja2VkIGRldmljZSBpbiB0aGUgcHJvdmlk
ZWQgcG9zZSBzdHJ1Y3QuIAorICAgICAgICogVGhpcyBwb3NlIHdpbGwgYWx3YXlzIGJlIG9sZGVy
IHRoYW4gdGhlIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIHRv
IHJlbmRlciB0aGUgZGV2aWNlLiAKKyAgICAgICB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNp
emUgaW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgUG9sbE5leHRFdmVudFdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2lu
LCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQsIHZyOjpUcmFja2VkRGV2
aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UgKSA9IDA7CisKKyAgICAgICAvKiogcmV0dXJu
cyB0aGUgbmFtZSBvZiBhbiBFVlJFdmVudCBlbnVtIHZhbHVlICovCisgICAgICAgdmlydHVhbCBj
b25zdCBjaGFyICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oIEVWUkV2ZW50VHlwZSBlVHlwZSAp
ID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIFJlbmRlcmluZyBoZWxwZXIgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJldHVybnMgdGhlIGhpZGRl
biBhcmVhIG1lc2ggZm9yIHRoZSBjdXJyZW50IEhNRC4gVGhlIHBpeGVscyBjb3ZlcmVkIGJ5IHRo
aXMgbWVzaCB3aWxsIG5ldmVyIGJlIHNlZW4gYnkgdGhlIHVzZXIgYWZ0ZXIgdGhlIGxlbnMgZGlz
dG9ydGlvbiBpcworICAgICAgICogYXBwbGllZCBiYXNlZCBvbiB2aXNpYmlsaXR5IHRvIHRoZSBw
YW5lbHMuIElmIHRoaXMgSE1EIGRvZXMgbm90IGhhdmUgYSBoaWRkZW4gYXJlYSBtZXNoLCB0aGUg
dmVydGV4IGRhdGEgYW5kIGNvdW50IHdpbGwgYmUgTlVMTCBhbmQgMCByZXNwZWN0aXZlbHkuCisg
ICAgICAgKiBUaGlzIG1lc2ggaXMgbWVhbnQgdG8gYmUgcmVuZGVyZWQgaW50byB0aGUgc3RlbmNp
bCBidWZmZXIgKG9yIGludG8gdGhlIGRlcHRoIGJ1ZmZlciBzZXR0aW5nIG5lYXJ6KSBiZWZvcmUg
cmVuZGVyaW5nIGVhY2ggZXllJ3Mgdmlldy4gCisgICAgICAgKiBUaGlzIHdpbGwgaW1wcm92ZSBw
ZXJmb3JtYW5jZSBieSBsZXR0aW5nIHRoZSBHUFUgZWFybHktcmVqZWN0IHBpeGVscyB0aGUgdXNl
ciB3aWxsIG5ldmVyIHNlZSBiZWZvcmUgcnVubmluZyB0aGUgcGl4ZWwgc2hhZGVyLgorICAgICAg
ICogTk9URTogUmVuZGVyIHRoaXMgbWVzaCB3aXRoIGJhY2tmYWNlIGN1bGxpbmcgZGlzYWJsZWQg
c2luY2UgdGhlIHdpbmRpbmcgb3JkZXIgb2YgdGhlIHZlcnRpY2VzIGNhbiBiZSBkaWZmZXJlbnQg
cGVyLUhNRCBvciBwZXItZXllLgorICAgICAgICogU2V0dGluZyB0aGUgYkludmVyc2UgYXJndW1l
bnQgdG8gdHJ1ZSB3aWxsIHByb2R1Y2UgdGhlIHZpc2libGUgYXJlYSBtZXNoIHRoYXQgaXMgY29t
bW9ubHkgdXNlZCBpbiBwbGFjZSBvZiBmdWxsLXNjcmVlbiBxdWFkcy4gVGhlIHZpc2libGUgYXJl
YSBtZXNoIGNvdmVycyBhbGwgb2YgdGhlIHBpeGVscyB0aGUgaGlkZGVuIGFyZWEgbWVzaCBkb2Vz
IG5vdCBjb3Zlci4KKyAgICAgICAqIFNldHRpbmcgdGhlIGJMaW5lTG9vcCBhcmd1bWVudCB3aWxs
IHJldHVybiBhIGxpbmUgbG9vcCBvZiB2ZXJ0aWNlcyBpbiBIaWRkZW5BcmVhTWVzaF90LT5wVmVy
dGV4RGF0YSB3aXRoIEhpZGRlbkFyZWFNZXNoX3QtPnVuVHJpYW5nbGVDb3VudCBzZXQgdG8gdGhl
IG51bWJlciBvZiB2ZXJ0aWNlcy4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgSGlkZGVuQXJl
YU1lc2hfdCBHZXRIaWRkZW5BcmVhTWVzaCggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5
cGUgdHlwZSA9IGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkICkgPSAwOworCisgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gQ29udHJvbGxl
ciBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKyAgICAgICAvKiogRmlsbHMgdGhlIHN1cHBsaWVkIHN0cnVjdCB3aXRoIHRoZSBjdXJyZW50
IHN0YXRlIG9mIHRoZSBjb250cm9sbGVyLiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBjb250cm9sbGVy
IGluZGV4CisgICAgICAgKiBpcyBpbnZhbGlkLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRD
b250cm9sbGVyU3RhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZp
Y2VJbmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKnBDb250cm9sbGVyU3RhdGUsIHVpbnQz
Ml90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBmaWxscyB0aGUg
c3VwcGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRyb2xsZXIg
YW5kIHRoZSBwcm92aWRlZCBwb3NlIHdpdGggdGhlIHBvc2Ugb2YgCisgICAgICAgKiB0aGUgY29u
dHJvbGxlciB3aGVuIHRoZSBjb250cm9sbGVyIHN0YXRlIHdhcyB1cGRhdGVkIG1vc3QgcmVjZW50
bHkuIFVzZSB0aGlzIGZvcm0gaWYgeW91IG5lZWQgYSBwcmVjaXNlIGNvbnRyb2xsZXIKKyAgICAg
ICAqIHBvc2UgYXMgaW5wdXQgdG8geW91ciBhcHBsaWNhdGlvbiB3aGVuIHRoZSB1c2VyIHByZXNz
ZXMgb3IgcmVsZWFzZXMgYSBidXR0b24uICovCisgICAgICAgdmlydHVhbCBib29sIEdldENvbnRy
b2xsZXJTdGF0ZVdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCB2cjo6
VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHZyOjpWUkNvbnRy
b2xsZXJTdGF0ZV90ICpwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJTdGF0
ZVNpemUsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZSApID0gMDsKKwor
ICAgICAgIC8qKiBUcmlnZ2VyIGEgc2luZ2xlIGhhcHRpYyBwdWxzZSBvbiBhIGNvbnRyb2xsZXIu
IEFmdGVyIHRoaXMgY2FsbCB0aGUgYXBwbGljYXRpb24gbWF5IG5vdCB0cmlnZ2VyIGFub3RoZXIg
aGFwdGljIHB1bHNlIG9uIHRoaXMgY29udHJvbGxlcgorICAgICAgICogYW5kIGF4aXMgY29tYmlu
YXRpb24gZm9yIDVtcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNl
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQz
Ml90IHVuQXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9TZWMgKSA9IDA7CisK
KyAgICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBFVlJCdXR0b25JZCBlbnVtIHZhbHVl
ICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRCdXR0b25JZE5hbWVGcm9tRW51bSgg
RVZSQnV0dG9uSWQgZUJ1dHRvbklkICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgdGhlIG5h
bWUgb2YgYW4gRVZSQ29udHJvbGxlckF4aXNUeXBlIGVudW0gdmFsdWUgKi8KKyAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSggRVZSQ29u
dHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSApID0gMDsKKworICAgICAgIC8qKiBUZWxscyBPcGVu
VlIgdGhhdCB0aGlzIHByb2Nlc3Mgd2FudHMgZXhjbHVzaXZlIGFjY2VzcyB0byBjb250cm9sbGVy
IGJ1dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBldmVudHMuIE90aGVyIGFwcHMgd2lsbCBiZSBub3Rp
ZmllZCB0aGF0IAorICAgICAgICogdGhleSBoYXZlIGxvc3QgaW5wdXQgZm9jdXMgd2l0aCBhIFZS
RXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkIGV2ZW50LiBSZXR1cm5zIGZhbHNlIGlmIGlucHV0IGZv
Y3VzIGNvdWxkIG5vdCBiZSBjYXB0dXJlZCBmb3IKKyAgICAgICAqIHNvbWUgcmVhc29uLiAqLwor
ICAgICAgIHZpcnR1YWwgYm9vbCBDYXB0dXJlSW5wdXRGb2N1cygpID0gMDsKKworICAgICAgIC8q
KiBUZWxscyBPcGVuVlIgdGhhdCB0aGlzIHByb2Nlc3Mgbm8gbG9uZ2VyIHdhbnRzIGV4Y2x1c2l2
ZSBhY2Nlc3MgdG8gYnV0dG9uIHN0YXRlcyBhbmQgYnV0dG9uIGV2ZW50cy4gT3RoZXIgYXBwcyB3
aWxsIGJlIG5vdGlmaWVkIAorICAgICAgICogdGhhdCBpbnB1dCBmb2N1cyBoYXMgYmVlbiByZWxl
YXNlZCB3aXRoIGEgVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgZXZlbnQuICovCisgICAgICAg
dmlydHVhbCB2b2lkIFJlbGVhc2VJbnB1dEZvY3VzKCkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdHJ1ZSBpZiBpbnB1dCBmb2N1cyBpcyBjYXB0dXJlZCBieSBhbm90aGVyIHByb2Nlc3MuICov
CisgICAgICAgdmlydHVhbCBib29sIElzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2Vz
cygpID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgIC8vIERlYnVnIE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBTZW5kcyBhIHJlcXVlc3QgdG8gdGhlIGRy
aXZlciBmb3IgdGhlIHNwZWNpZmllZCBkZXZpY2UgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlLiBU
aGUgbWF4aW11bSByZXNwb25zZSBzaXplIGlzIDMyaywKKyAgICAgICAqIGJ1dCB0aGlzIG1ldGhv
ZCBjYW4gYmUgY2FsbGVkIHdpdGggYSBzbWFsbGVyIGJ1ZmZlci4gSWYgdGhlIHJlc3BvbnNlIGV4
Y2VlZHMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciwgaXQgaXMgdHJ1bmNhdGVkLiAKKyAgICAgICAq
IFRoZSBzaXplIG9mIHRoZSByZXNwb25zZSBpbmNsdWRpbmcgaXRzIHRlcm1pbmF0aW5nIG51bGwg
aXMgcmV0dXJuZWQuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBEcml2ZXJEZWJ1Z1JlcXVl
c3QoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjb25zdCBjaGFyICpw
Y2hSZXF1ZXN0LCBjaGFyICpwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMyX3QgdW5SZXNwb25zZUJ1
ZmZlclNpemUgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAvLyBGaXJtd2FyZSBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgICAgLyoqIFBlcmZvcm1z
IHRoZSBhY3R1YWwgZmlybXdhcmUgdXBkYXRlIGlmIGFwcGxpY2FibGUuIAorICAgICAgICAqIFRo
ZSBmb2xsb3dpbmcgZXZlbnRzIHdpbGwgYmUgc2VudCwgaWYgVlJGaXJtd2FyZUVycm9yX05vbmUg
d2FzIHJldHVybmVkOiBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCwgVlJFdmVudF9GaXJt
d2FyZVVwZGF0ZUZpbmlzaGVkIAorICAgICAgICAqIFVzZSB0aGUgcHJvcGVydGllcyBQcm9wX0Zp
cm13YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sLCBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9C
b29sLCBhbmQgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nCisgICAgICAgICog
dG8gZmlndXJlIG91ciB3aGV0aGVyIGEgZmlybXdhcmUgdXBkYXRlIGlzIGF2YWlsYWJsZSwgYW5k
IHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdHMgYSBtYW51YWwgdXBkYXRlIAorICAgICAgICAqIFBy
b3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyBzaG91bGQgcG9pbnQgdG8gYW4gVVJM
IGRlc2NyaWJpbmcgdGhlIG1hbnVhbCB1cGRhdGUgcHJvY2VzcyAqLworICAgICAgIHZpcnR1YWwg
dnI6OkVWUkZpcm13YXJlRXJyb3IgUGVyZm9ybUZpcm13YXJlVXBkYXRlKCB2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEFwcGxpY2F0aW9uIGxpZmUgY3lj
bGUgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgICAgLyoqIENhbGwgdGhpcyB0byBhY2tub3dsZWRnZSB0byB0aGUgc3lzdGVtIHRo
YXQgVlJFdmVudF9RdWl0IGhhcyBiZWVuIHJlY2VpdmVkIGFuZCB0aGF0IHRoZSBwcm9jZXNzIGlz
IGV4aXRpbmcuCisgICAgICAgKiBUaGlzIGV4dGVuZHMgdGhlIHRpbWVvdXQgdW50aWwgdGhlIHBy
b2Nlc3MgaXMga2lsbGVkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRf
RXhpdGluZygpID0gMDsKKworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8gdGVsbCB0aGUgc3lzdGVt
IHRoYXQgdGhlIHVzZXIgaXMgYmVpbmcgcHJvbXB0ZWQgdG8gc2F2ZSBkYXRhLiBUaGlzCisgICAg
ICAgKiBoYWx0cyB0aGUgdGltZW91dCBhbmQgZGlzbWlzc2VzIHRoZSBkYXNoYm9hcmQgKGlmIGl0
IHdhcyB1cCkuIEFwcGxpY2F0aW9ucyBzaG91bGQgYmUgc3VyZSB0byBhY3R1YWxseSAKKyAgICAg
ICAqIHByb21wdCB0aGUgdXNlciB0byBzYXZlIGFuZCB0aGVuIGV4aXQgYWZ0ZXJ3YXJkLCBvdGhl
cndpc2UgdGhlIHVzZXIgd2lsbCBiZSBsZWZ0IGluIGEgY29uZnVzaW5nIHN0YXRlLiAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCgpID0gMDsKKworfTsK
Kworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTeXN0ZW1fVmVyc2lvbiA9ICJJVlJTeXN0
ZW1fMDE3IjsKKworfQorCisKKy8vIGl2cmFwcGxpY2F0aW9ucy5oCituYW1lc3BhY2UgdnIKK3sK
KworICAgICAgIC8qKiBVc2VkIGZvciBhbGwgZXJyb3JzIHJlcG9ydGVkIGJ5IHRoZSBJVlJBcHBs
aWNhdGlvbnMgaW50ZXJmYWNlICovCisgICAgICAgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCisg
ICAgICAgeworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSA9IDAsCisKKyAg
ICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAs
ICAgICAgIC8vIE9ubHkgb25lIGFwcGxpY2F0aW9uIGNhbiB1c2UgYW55IGdpdmVuIGtleQorICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCA9IDEwMSwgICAgICAgICAg
ICAgICAgICAgICAvLyB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGEgbWFu
aWZlc3QKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vQXBwbGljYXRpb24gPSAx
MDIsICAgICAgICAgICAgICAgICAgICAgLy8gTm8gYXBwbGljYXRpb24gaXMgcnVubmluZworICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAorICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0aW9uID0gMTA0LCAgICAg
ICAvLyB0aGUgYXBwbGljYXRpb24gY291bGQgbm90IGJlIGZvdW5kCisgICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25FcnJvcl9JUENGYWlsZWQgPSAxMDUsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEFuIElQQyBmYWlsdXJlIGNhdXNlZCB0aGUgcmVxdWVzdCB0byBmYWlsCisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nID0gMTA2
LCAKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRNYW5pZmVzdCA9IDEw
NywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRBcHBsaWNhdGlvbiA9
IDEwOCwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCA9IDEw
OSwgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHJvY2VzcyBkaWRuJ3Qgc3RhcnQKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nID0g
MTEwLCAvLyB0aGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIHRoZSBzYW1lIGFwcGxpY2F0
aW9uCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNzID0g
MTExLCAgICAgICAgICAgICAgLy8gVGhlIHN5c3RlbSB3YXMgYWxyZWFkeSBzdGFydGluZyBhIGRp
ZmZlcmVudCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfT2xk
QXBwbGljYXRpb25RdWl0dGluZyA9IDExMiwgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25F
cnJvcl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlv
bkVycm9yX0lzVGVtcGxhdGUgPSAxMTQsIC8vIGVycm9yIHdoZW4geW91IHRyeSB0byBjYWxsIExh
dW5jaEFwcGxpY2F0aW9uKCkgb24gYSB0ZW1wbGF0ZSB0eXBlIGFwcCAodXNlIExhdW5jaFRlbXBs
YXRlQXBwbGljYXRpb24pCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9TdGVhbVZS
SXNFeGl0aW5nID0gMTE1LAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9CdWZm
ZXJUb29TbWFsbCA9IDIwMCwgICAgICAgICAgICAgIC8vIFRoZSBwcm92aWRlZCBidWZmZXIgd2Fz
IHRvbyBzbWFsbCB0byBmaXQgdGhlIHJlcXVlc3RlZCBkYXRhCisgICAgICAgICAgICAgIFZSQXBw
bGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIwMSwgICAgICAgICAgICAgIC8vIFRoZSBy
ZXF1ZXN0ZWQgcHJvcGVydHkgd2FzIG5vdCBzZXQKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlv
bkVycm9yX1Vua25vd25Qcm9wZXJ0eSA9IDIwMiwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlv
bkVycm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCisgICAgICAgfTsKKworICAgICAgIC8qKiBU
aGUgbWF4aW11bSBsZW5ndGggb2YgYW4gYXBwbGljYXRpb24ga2V5ICovCisgICAgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCA9IDEyODsKKworICAg
ICAgIC8qKiB0aGVzZSBhcmUgdGhlIHByb3BlcnRpZXMgYXZhaWxhYmxlIG9uIGFwcGxpY2F0aW9u
cy4gKi8KKyAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDAsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5
X0xhdW5jaFR5cGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICAgICAg
ICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3RvcnlfU3RyaW5nICAgICAgID0g
MTIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmlu
ZyAgICAgICAgICAgICAgICAgICAgID0gMTMsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9Bcmd1bWVudHNfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxNCwKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxNSwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlf
RGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDUwLAorICAgICAgICAgICAgICBWUkFw
cGxpY2F0aW9uUHJvcGVydHlfTmV3c1VSTF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUx
LAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSW1hZ2VQYXRoX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgID0gNTIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Tb3VyY2VfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTMsCisKKyAg
ICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29s
ICAgICAgID0gNjAsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBs
YXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYxLAorICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gNjIs
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0ludGVybmFsX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICA9IDYzLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVy
dHlfV2FudHNDb21wb3NpdG9yUGF1c2VJblN0YW5kYnlfQm9vbCA9IDY0LAorCisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9VaW50NjQgICAgICAgICAg
ICAgID0gNzAsCisgICAgICAgfTsKKworICAgICAgIC8qKiBUaGVzZSBhcmUgc3RhdGVzIHRoZSBz
Y2VuZSBhcHBsaWNhdGlvbiBzdGFydHVwIHByb2Nlc3Mgd2lsbCBnbyB0aHJvdWdoLiAqLworICAg
ICAgIGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUKKyAgICAgICB7CisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAwLAorCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCA9IDEx
LAorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25f
TmV3QXBwTGF1bmNoZWQgPSAyMCwKKyAgICAgICB9OworCisgICAgICAgc3RydWN0IEFwcE92ZXJy
aWRlS2V5c190CisgICAgICAgeworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwY2hLZXk7Cisg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaFZhbHVlOworICAgICAgIH07CisKKyAgICAgICAv
KiogQ3VycmVudGx5IHJlY29nbml6ZWQgbWltZSB0eXBlcyAqLworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTWltZVR5cGVfSG9tZUFwcCAgICAgICAgICAgICAgPSAidnIv
aG9tZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9NaW1lVHlwZV9H
YW1lVGhlYXRlciAgICAgICA9ICJ2ci9nYW1lX3RoZWF0ZXIiOworCisgICAgICAgY2xhc3MgSVZS
QXBwbGljYXRpb25zCisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0aW9uIG1hbmFnZW1lbnQgIC0tLS0tLS0tLS0tLS0t
LSAvLworCisgICAgICAgICAgICAgIC8qKiBBZGRzIGFuIGFwcGxpY2F0aW9uIG1hbmlmZXN0IHRv
IHRoZSBsaXN0IHRvIGxvYWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgYXBw
bGljYXRpb25zLiAKKyAgICAgICAgICAgICAgKiBUZW1wb3JhcnkgbWFuaWZlc3RzIGFyZSBub3Qg
YXV0b21hdGljYWxseSBsb2FkZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNh
dGlvbkVycm9yIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxpY2F0
aW9uTWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5ID0gZmFsc2UgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFJlbW92ZXMgYW4gYXBwbGljYXRpb24gbWFuaWZlc3QgZnJvbSB0aGUg
bGlzdCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIGFwcGxpY2F0
aW9ucy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92
ZUFwcGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxpY2F0aW9uTWFuaWZlc3RG
dWxsUGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIGFuIGFw
cGxpY2F0aW9uIGlzIGluc3RhbGxlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNB
cHBsaWNhdGlvbkluc3RhbGxlZCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXBwbGljYXRpb25zIGF2YWlsYWJs
ZSBpbiB0aGUgbGlzdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxp
Y2F0aW9uQ291bnQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtleSBv
ZiB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uLiBUaGUgaW5kZXggaXMgYXQgbGVhc3QgMCBhbmQg
aXMgbGVzcyB0aGFuIHRoZSByZXR1cm4gCisgICAgICAgICAgICAgICogdmFsdWUgb2YgR2V0QXBw
bGljYXRpb25Db3VudCgpLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBrX3VuTWF4QXBw
bGljYXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8gCisgICAgICAgICAgICAgICogZml0IHRoZSBr
ZXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBHZXRBcHBs
aWNhdGlvbktleUJ5SW5kZXgoIHVpbnQzMl90IHVuQXBwbGljYXRpb25JbmRleCwgVlJfT1VUX1NU
UklORygpIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4g
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtleSBvZiB0aGUgYXBwbGlj
YXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgUHJvY2VzcyBJZC4gVGhlIGJ1ZmZlciBzaG91bGQgYmUg
YXQgbGVhc3QgCisgICAgICAgICAgICAgICoga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoIGlu
IG9yZGVyIHRvIGZpdCB0aGUga2V5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCggdWludDMyX3QgdW5Qcm9j
ZXNzSWQsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4g
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIExhdW5jaGVzIHRoZSBhcHBsaWNhdGlvbi4gVGhl
IGV4aXN0aW5nIHNjZW5lIGFwcGxpY2F0aW9uIHdpbGwgZXhpdCBhbmQgdGhlbiB0aGUgbmV3IGFw
cGxpY2F0aW9uIHdpbGwgc3RhcnQuCisgICAgICAgICAgICAgICogVGhpcyBjYWxsIGlzIG5vdCB2
YWxpZCBmb3IgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oIGNvbnN0IGNo
YXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgYW4gaW5z
dGFuY2Ugb2YgYW4gYXBwbGljYXRpb24gb2YgdHlwZSB0ZW1wbGF0ZSwgd2l0aCBpdHMgYXBwIGtl
eSBiZWluZyBwY2hOZXdBcHBLZXkgKHdoaWNoIG11c3QgYmUgdW5pcXVlKSBhbmQgb3B0aW9uYWxs
eSBvdmVycmlkZSBzZWN0aW9ucworICAgICAgICAgICAgICAqIGZyb20gdGhlIG1hbmlmZXN0IGZp
bGUgdmlhIEFwcE92ZXJyaWRlS2V5c190CisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKCBj
b25zdCBjaGFyICpwY2hUZW1wbGF0ZUFwcEtleSwgY29uc3QgY2hhciAqcGNoTmV3QXBwS2V5LCBW
Ul9BUlJBWV9DT1VOVCggdW5LZXlzICkgY29uc3QgQXBwT3ZlcnJpZGVLZXlzX3QgKnBLZXlzLCB1
aW50MzJfdCB1bktleXMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIGxhdW5jaGVzIHRoZSBh
cHBsaWNhdGlvbiBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWltZSB0eXBlIGFuZCBw
YXNzZXMgaXQgdGhlIG9wdGlvbiBhcmdzLCB0eXBpY2FsbHkgdGhlIGZpbGVuYW1lIG9yIG9iamVj
dCBuYW1lIG9mIHRoZSBpdGVtIGJlaW5nIGxhdW5jaGVkICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgdnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUo
IGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjb25zdCBjaGFyICpwY2hBcmdzICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyB0aGUgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRp
b24gaWYgaXQgaXMgbm90IGFscmVhZHkgcnVubmluZy4gVGhpcyBjYWxsIGlzIG9ubHkgdmFsaWQg
Zm9yIAorICAgICAgICAgICAgICAqIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9ucy4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaERhc2hib2Fy
ZE92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAv
KiogQ2FuY2VsIGEgcGVuZGluZyBsYXVuY2ggZm9yIGFuIGFwcGxpY2F0aW9uICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCggY29uc3QgY2hhciAq
cGNoQXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBJZGVudGlmaWVzIGEgcnVubmlu
ZyBhcHBsaWNhdGlvbi4gT3BlblZSIGNhbid0IGFsd2F5cyB0ZWxsIHdoaWNoIHByb2Nlc3Mgc3Rh
cnRlZCBpbiByZXNwb25zZQorICAgICAgICAgICAgICAqIHRvIGEgVVJMLiBUaGlzIGZ1bmN0aW9u
IGFsbG93cyBhIFVSTCBoYW5kbGVyIChvciB0aGUgcHJvY2VzcyBpdHNlbGYpIHRvIGlkZW50aWZ5
IHRoZSBhcHAga2V5IAorICAgICAgICAgICAgICAqIGZvciB0aGUgbm93IHJ1bm5pbmcgYXBwbGlj
YXRpb24uIFBhc3NpbmcgYSBwcm9jZXNzIElEIG9mIDAgaWRlbnRpZmllcyB0aGUgY2FsbGluZyBw
cm9jZXNzLiAKKyAgICAgICAgICAgICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBvbmUgdGhh
dCdzIGtub3duIHRvIHRoZSBzeXN0ZW0gdmlhIGEgY2FsbCB0byBBZGRBcHBsaWNhdGlvbk1hbmlm
ZXN0LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgSWRlbnRp
ZnlBcHBsaWNhdGlvbiggdWludDMyX3QgdW5Qcm9jZXNzSWQsIGNvbnN0IGNoYXIgKnBjaEFwcEtl
eSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBmb3Ig
YW4gYXBwbGljYXRpb24uIFJldHVybiAwIGlmIHRoZSBhcHBsaWNhdGlvbiB3YXMgbm90IGZvdW5k
IG9yIGlzIG5vdCBydW5uaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdl
dEFwcGxpY2F0aW9uUHJvY2Vzc0lkKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFwcGxpY2F0aW9ucyBlcnJv
ciAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEFwcGxpY2F0aW9uc0Vy
cm9yTmFtZUZyb21FbnVtKCBFVlJBcHBsaWNhdGlvbkVycm9yIGVycm9yICkgPSAwOworCisgICAg
ICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLSAgQXBwbGljYXRpb24gcHJvcGVydGllcyAgLS0t
LS0tLS0tLS0tLS0tIC8vCisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB2YWx1ZSBmb3Ig
YW4gYXBwbGljYXRpb24gcHJvcGVydHkuIFRoZSByZXF1aXJlZCBidWZmZXIgc2l6ZSB0byBmaXQg
dGhpcyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaEFwcEtl
eSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIFZSX09VVF9TVFJJTkcoKSBjaGFy
ICpwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1aW50MzJfdCB1blByb3BlcnR5VmFsdWVCdWZmZXJM
ZW4sIEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIGEgYm9vbCB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24gcHJv
cGVydHkuIFJldHVybnMgZmFsc2UgaW4gYWxsIGVycm9yIGNhc2VzLiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2woIGNvbnN0IGNoYXIgKnBj
aEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9u
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1
cm5zIGEgdWludDY0IHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9wZXJ0eS4gUmV0dXJucyAw
IGluIGFsbCBlcnJvciBjYXNlcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50NjRfdCBH
ZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KCBjb25zdCBjaGFyICpwY2hBcHBLZXksIEVWUkFw
cGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9y
ID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgYXBwbGljYXRp
b24gYXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBhcHBsaWNhdGlvbnMg
d2hpY2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92
ZXJsYXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9y
IFNldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBib29sIGJB
dXRvTGF1bmNoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBhcHBsaWNhdGlv
biBhdXRvLWxhdW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFwcGxpY2F0aW9ucyB3
aGljaCByZXR1cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3Zl
cmxheV9Cb29sLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25B
dXRvTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEFkZHMgdGhpcyBtaW1lLXR5cGUgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlw
ZXMgZm9yIHRoaXMgYXBwbGljYXRpb24qLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUoIGNvbnN0IGNoYXIg
KnBjaEFwcEtleSwgY29uc3QgY2hhciAqcGNoTWltZVR5cGUgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIHJldHVybiB0aGUgYXBwIGtleSB0aGF0IHdpbGwgb3BlbiB0aGlzIG1pbWUgdHlwZSAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWlt
ZVR5cGUoIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVp
bnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQg
dGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlwZXMgZm9yIHRoaXMgYXBwbGljYXRpb24sIGNv
bW1hLWRlbGltaXRlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRp
b25TdXBwb3J0ZWRNaW1lVHlwZXMoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgY2hhciAqcGNoTWlt
ZVR5cGVzQnVmZmVyLCB1aW50MzJfdCB1bk1pbWVUeXBlc0J1ZmZlciApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogR2V0IHRoZSBsaXN0IG9mIGFwcC1rZXlzIHRoYXQgc3VwcG9ydCB0aGlzIG1p
bWUgdHlwZSwgY29tbWEtZGVsaW1pdGVkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIG51bWJlciBvZiBi
eXRlcyB5b3UgbmVlZCB0byByZXR1cm4gdGhlIGZ1bGwgc3RyaW5nICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSggY29u
c3QgY2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciwg
dWludDMyX3QgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIEdldCB0aGUgYXJncyBsaXN0IGZyb20gYW4gYXBwIGxhdW5jaCB0aGF0IGhhZCB0aGUg
cHJvY2VzcyBhbHJlYWR5IHJ1bm5pbmcsIHlvdSBjYWxsIHRoaXMgd2hlbiB5b3UgZ2V0IGEgVlJF
dmVudF9BcHBsaWNhdGlvbk1pbWVUeXBlTG9hZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKCB1aW50MzJfdCB1bkhhbmRsZSwg
Y2hhciAqcGNoQXJncywgdWludDMyX3QgdW5BcmdzICkgPSAwOworCisgICAgICAgICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLSAgVHJhbnNpdGlvbiBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLSAvLwor
CisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBhcHAga2V5IGZvciB0aGUgYXBwbGljYXRp
b24gdGhhdCBpcyBzdGFydGluZyB1cCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiggY2hhciAqcGNoQXBwS2V5QnVmZmVy
LCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0aGUgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBzdGF0ZSAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIEdldFRyYW5zaXRpb25TdGF0
ZSgpID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyBlcnJvcnMgdGhhdCB3b3VsZCBw
cmV2ZW50IHRoZSBzcGVjaWZpZWQgYXBwbGljYXRpb24gZnJvbSBsYXVuY2hpbmcgaW1tZWRpYXRl
bHkuIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICAgICAgICAgICogY2F1c2UgdGhl
IGN1cnJlbnQgc2NlbmUgYXBwbGljYXRpb24gdG8gcXVpdCwgc28gb25seSBjYWxsIGl0IHdoZW4g
eW91IGFyZSBhY3R1YWxseSBhYm91dCB0byBsYXVuY2ggc29tZXRoaW5nIGVsc2UuCisgICAgICAg
ICAgICAgICogV2hhdCB0aGUgY2FsbGVyIHNob3VsZCBkbyBhYm91dCB0aGVzZSBmYWlsdXJlcyBk
ZXBlbmRzIG9uIHRoZSBmYWlsdXJlOgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVy
cm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmcgLSBBbiBleGlzdGluZyBhcHBsaWNhdGlvbiBoYXMg
YmVlbiB0b2xkIHRvIHF1aXQuIFdhaXQgZm9yIGEgVlJFdmVudF9Qcm9jZXNzUXVpdAorICAgICAg
ICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
bmQgdHJ5IGFnYWluLgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxp
Y2F0aW9uQWxyZWFkeVN0YXJ0aW5nIC0gVGhpcyBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5IHN0YXJ0
aW5nLiBUaGlzIGlzIGEgcGVybWFuZW50IGZhaWx1cmUuCisgICAgICAgICAgICAgICogICBWUkFw
cGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyAgICAgICAgICAgICAtIEEgZGlmZmVyZW50
IGFwcGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMgaXMgYSBwZXJtYW5lbnQgZmFp
bHVyZS4KKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob25lICAgICAgICAg
ICAgICAgICAgIC0gR28gYWhlYWQgYW5kIGxhdW5jaC4gRXZlcnl0aGluZyBpcyBjbGVhci4KKyAg
ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9y
IFBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrKCBjb25zdCBjaGFyICpwY2hBcHBLZXkg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFwcGxp
Y2F0aW9uIHRyYW5zaXRpb24gc3RhdGUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBj
aGFyICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oIEVWUkFwcGxp
Y2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIG91dGdvaW5nIHNjZW5lIGFwcCBoYXMgcmVxdWVzdGVkIGEgc2F2
ZSBwcm9tcHQgYmVmb3JlIGV4aXRpbmcgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElz
UXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFN0YXJ0
cyBhIHN1YnByb2Nlc3Mgd2l0aGluIHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uLiBUaGlzCisgICAg
ICAgICAgICAgICogc3VwcHJlc3NlcyBhbGwgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBVSSBhbmQg
YXV0b21hdGljYWxseSBpZGVudGlmaWVzIHRoZSBuZXcgZXhlY3V0YWJsZSAKKyAgICAgICAgICAg
ICAgKiBhcyBwYXJ0IG9mIHRoZSBzYW1lIGFwcGxpY2F0aW9uLiBPbiBzdWNjZXNzIHRoZSBjYWxs
aW5nIHByb2Nlc3Mgc2hvdWxkIGV4aXQgaW1tZWRpYXRlbHkuIAorICAgICAgICAgICAgICAqIElm
IHdvcmtpbmcgZGlyZWN0b3J5IGlzIE5VTEwgb3IgIiIgdGhlIGRpcmVjdG9yeSBwb3J0aW9uIG9m
IHRoZSBiaW5hcnkgcGF0aCB3aWxsIGJlIAorICAgICAgICAgICAgICAqIHRoZSB3b3JraW5nIGRp
cmVjdG9yeS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExh
dW5jaEludGVybmFsUHJvY2VzcyggY29uc3QgY2hhciAqcGNoQmluYXJ5UGF0aCwgY29uc3QgY2hh
ciAqcGNoQXJndW1lbnRzLCBjb25zdCBjaGFyICpwY2hXb3JraW5nRGlyZWN0b3J5ICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNjZW5lIHByb2Nlc3MgSUQg
YWNjb3JkaW5nIHRvIHRoZSBhcHBsaWNhdGlvbiBzeXN0ZW0uIEEgc2NlbmUgcHJvY2VzcyB3aWxs
IGdldCBzY2VuZQorICAgICAgICAgICAgICAqIGZvY3VzIG9uY2UgaXQgc3RhcnRzIHJlbmRlcmlu
ZywgYnV0IGl0IHdpbGwgYXBwZWFyIGhlcmUgb25jZSBpdCBjYWxscyBWUl9Jbml0IHdpdGggdGhl
IFNjZW5lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICogdHlwZS4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCB1aW50MzJfdCBHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKSA9IDA7CisgICAg
ICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQXBwbGljYXRpb25z
X1ZlcnNpb24gPSAiSVZSQXBwbGljYXRpb25zXzAwNiI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisK
Ky8vIGl2cnNldHRpbmdzLmgKK25hbWVzcGFjZSB2cgoreworICAgICAgIGVudW0gRVZSU2V0dGlu
Z3NFcnJvcgorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX05vbmUgPSAw
LAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkID0gMSwKKyAgICAgICAg
ICAgICAgVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFpbGVkID0gMiwKKyAgICAgICAgICAgICAgVlJT
ZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQgPSAzLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJy
b3JfSnNvblBhcnNlRmFpbGVkID0gNCwKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX1Vu
c2V0U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsIC8vIFRoaXMgd2lsbCBiZSByZXR1cm5lZCBpZiB0
aGUgc2V0dGluZyBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgZmls
ZSBhbmQgaGFzIG5vdCBiZWVuIHNldAorICAgICAgIH07CisKKyAgICAgICAvLyBUaGUgbWF4aW11
bSBsZW5ndGggb2YgYSBzZXR0aW5ncyBrZXkKKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
a191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworCisgICAgICAgY2xhc3MgSVZSU2V0dGlu
Z3MKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oIEVWUlNldHRpbmdzRXJyb3IgZUVy
cm9yICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBmaWxlIHN5bmMg
b2NjdXJyZWQgKGZvcmNlIG9yIHNldHRpbmdzIGRpcnR5KQorICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgU3luYyggYm9vbCBiRm9yY2UgPSBmYWxzZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEJvb2wo
IGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBib29s
IGJWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwg
Y29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVlLCBFVlJTZXR0aW5nc0Vy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IFNldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5n
c0tleSwgZmxvYXQgZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIg
KSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRTdHJpbmcoIGNvbnN0IGNoYXIg
KnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBjb25zdCBjaGFyICpwY2hW
YWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLy8gVXNlcnMgb2YgdGhlIHN5c3RlbSBuZWVkIHRvIHByb3ZpZGUgYSBwcm9wZXIg
ZGVmYXVsdCBpbiBkZWZhdWx0LnZyc2V0dGluZ3MgaW4gdGhlIHJlc291cmNlcy9zZXR0aW5ncy8g
ZGlyZWN0b3J5CisgICAgICAgICAgICAgIC8vIG9mIGVpdGhlciB0aGUgcnVudGltZSBvciB0aGUg
ZHJpdmVyX3h4eCBkaXJlY3RvcnkuIE90aGVyd2lzZSB0aGUgZGVmYXVsdCB3aWxsIGJlIGZhbHNl
LCAwLCAwLjAgb3IgIiIKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEJvb2woIGNvbnN0
IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5n
c0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBp
bnQzMl90IEdldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hT
ZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RmxvYXQoIGNvbnN0IGNoYXIgKnBjaFNlY3Rp
b24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9y
ID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFN0cmluZygg
Y29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIFZSX09V
VF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxlbiwgRVZSU2V0dGlu
Z3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVh
bCB2b2lkIFJlbW92ZVNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIEVWUlNldHRpbmdz
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgUmVtb3ZlS2V5SW5TZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9
IDA7CisgICAgICAgfTsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGlu
Z3NfMDAyIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBzdGVh
bXZyIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
U2VjdGlvbiA9ICJzdGVhbXZyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUhtZCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJp
bmcgPSAiZm9yY2VkRHJpdmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9
ICJkaXNwbGF5RGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1Byb2Nlc3NQaXBlIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVn
WF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJkaXNwbGF5RGVidWdZIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2VuZFN5c3Rl
bUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMy
ID0gImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tncm91bmQiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kVXNlRG9t
ZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24iOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJh
SGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9h
dCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENvbG9yIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9T
dHJpbmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2
ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9k
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVj
dE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRfSW50MzIg
PSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2Fy
ZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVl
cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Jhc2VT
dGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9OZXZlcktp
bGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdXBlcnNhbXBsZVNjYWxlX0Zsb2F0ID0g
InN1cGVyc2FtcGxlU2NhbGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJv
amVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVw
cm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wg
PSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJy
b3JWaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
U2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcg
PSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JG
cm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRv
ckZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2Fy
ZEZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3Zlcmxh
eUFwcHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VU
aW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJy
ZXRhaWxEZW1vIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfSXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93U3VwZXJzYW1wbGVGaWx0ZXJpbmdfQm9vbCA9
ICJhbGxvd1N1cGVyc2FtcGxlRmlsdGVyaW5nIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlTGludXhWdWxrYW5Bc3luY19Cb29sID0gImVuYWJs
ZUxpbnV4VnVsa2FuQXN5bmMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIGxpZ2h0aG91c2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29s
ID0gImRpc2FibGVpbXUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
TGlnaHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24i
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNh
bWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRp
b25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsK
KworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2
ZXJfbnVsbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1Nl
cmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVy
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9J
bnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRf
SW50MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAi
cmVuZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051
bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9Q
aG90b25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAi
dXNlcmludGVyZmFjZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9V
c2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3Ai
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9N
aW5pbWl6ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJz
Y3JlZW5zaG90cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2Vy
SW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAg
ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlv
biA9ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKwor
ICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0g
ImtleWJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJv
YXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVY
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxl
WSA9ICJTY2FsZVkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5
Ym9hcmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0TGVmdFgiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZ
ID0gIk9mZnNldFkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5
Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gcGVyZiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlz
dGljQWN0aXZlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZf
Tm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5n
U3RvcmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5n
c09uRXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rl
c3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9QZXJmX0xpbnV4R1BVUHJvZmlsaW5nX0Jvb2wgPSAibGludXhHUFVQcm9m
aWxpbmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNvbGxp
c2lvbiBib3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9
ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNp
b25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNp
b25Cb3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3Vu
ZHNQbGF5U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9D
b2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVE
aXN0YW5jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRz
X0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdh
bW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50
MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAgICAgLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVu
YWJsZUNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1l
cmFfRW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2Fy
ZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxl
Q2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9u
Qm91bmRzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9F
bmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVyYUZvclJvb21WaWV3IjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xv
ckdhbW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIg
PSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5k
c0NvbG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzU3Ry
ZW5ndGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisgICAgICAgLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcg
PSAib25QbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJv
ckRldmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcg
PSAib2ZmUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fVklWRUhETUlHYWlu
ID0gInZpdmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gcG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZP
bkV4aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVy
bk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxl
cnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVv
dXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNz
ID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9QYXVzZUNvbXBvc2l0b3JPblN0YW5kYnlfQm9vbCA9
ICJwYXVzZUNvbXBvc2l0b3JPblN0YW5kYnkiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgICAgIC8vIGRhc2hib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9C
b29sID0gImVuYWJsZURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFyY2FkZU1vZGUiOworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG1vZGVsIHNraW4ga2V5cworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfbW9kZWxza2luX1NlY3Rpb24gPSAi
bW9kZWxza2lucyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8g
ZHJpdmVyIGtleXMgLSBUaGVzZSBjb3VsZCBiZSBjaGVja2VkIGluIGFueSBkcml2ZXJfPG5hbWU+
IHNlY3Rpb24KKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0RyaXZlcl9F
bmFibGVfQm9vbCA9ICJlbmFibGUiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisvLyBpdnJjaGFw
ZXJvbmUuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKK2Vu
dW0gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZQoreworICAgICAgIC8vIE9LIQorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0sgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYXBlcm9uZSBpcyBmdWxs
eSBjYWxpYnJhdGVkIGFuZCB3b3JraW5nIGNvcnJlY3RseQorCisgICAgICAgLy8gV2FybmluZ3MK
KyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcgPSAxMDAsCisgICAgICAg
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVk
ID0gMTAxLCAgICAgICAvLyBBIGJhc2Ugc3RhdGlvbiB0aGlua3MgdGhhdCBpdCBtaWdodCBoYXZl
IG1vdmVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0
aW9uUmVtb3ZlZCA9IDEwMiwgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgbGVzcyBi
YXNlIHN0YXRpb25zIHRoYW4gd2hlbiBjYWxpYnJhdGVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsICAgICAgICAgICAg
ICAvLyBTZWF0ZWQgYm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3VycmVu
dCB0cmFja2luZyBjZW50ZXIKKworICAgICAgIC8vIEVycm9ycworICAgICAgIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGVfRXJyb3IgPSAyMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgVW5pdmVyc2VJRCBpcyBpbnZhbGlkCisg
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlh
bGl6ZWQgPSAyMDEsICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaGFzbid0IGJlIGNh
bGlicmF0ZWQgZm9yIGF0IGxlYXN0IG9uZSBvZiB0aGUgYmFzZSBzdGF0aW9ucworICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwg
ICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaXMgY2FsaWJyYXRlZCwgYnV0
IGJhc2Ugc3RhdGlvbnMgZGlzYWdyZWUgb24gdGhlIHRyYWNraW5nIHNwYWNlCisgICAgICAgQ2hh
cGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFBsYXkgQXJlYSBoYXNuJ3QgYmVlbiBjYWxpYnJhdGVk
IGZvciB0aGUgY3VycmVudCB0cmFja2luZyBjZW50ZXIKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJh
dGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQgPSAyMDQsICAgICAgICAgICAg
ICAvLyBDb2xsaXNpb24gQm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3Vy
cmVudCB0cmFja2luZyBjZW50ZXIKK307CisKKworLyoqIEhJR0ggTEVWRUwgVFJBQ0tJTkcgU1BB
Q0UgQVNTVU1QVElPTlM6CisqIDAsMCwwIGlzIHRoZSBwcmVmZXJyZWQgc3RhbmRpbmcgYXJlYSBj
ZW50ZXIuCisqIDBZIGlzIHRoZSBmbG9vciBoZWlnaHQuCisqIC1aIGlzIHRoZSBwcmVmZXJyZWQg
Zm9yd2FyZCBmYWNpbmcgZGlyZWN0aW9uLiAqLworY2xhc3MgSVZSQ2hhcGVyb25lCit7CitwdWJs
aWM6CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIENoYXBlcm9uZSBjYWxp
YnJhdGlvbi4gVGhpcyBzdGF0ZSBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGR1cmluZyBhIHNlc3Np
b24gZHVlIHRvIHBoeXNpY2FsIGJhc2Ugc3RhdGlvbiBjaGFuZ2VzLiAqKi8KKyAgICAgICB2aXJ0
dWFsIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgR2V0Q2FsaWJyYXRpb25TdGF0ZSgpID0gMDsK
KworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB3aWR0aCBhbmQgZGVwdGggb2YgdGhlIFBsYXkgQXJl
YSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGluIFggYW5kIFouIAorICAgICAgICogVHJh
Y2tpbmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVh
LiAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFTaXplKCBmbG9hdCAqcFNpemVY
LCBmbG9hdCAqcFNpemVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIDQgY29ybmVy
IHBvc2l0aW9ucyBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcyku
CisgICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjb3VudGVyLWNsb2Nrd2lzZSBvcmRlci4KKyAgICAg
ICAqIFN0YW5kaW5nIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJl
YS4KKyAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCisgICAgICAgKiAyIHNpZGVzIGFyZSBwYXJh
bGxlbCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWiBheGlz
LgorICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAob24gdGhlIGZsb29yKS4g
KiovCisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVhUmVjdCggSG1kUXVhZF90ICpyZWN0
ICkgPSAwOworCisgICAgICAgLyoqIFJlbG9hZCBDaGFwZXJvbmUgZGF0YSBmcm9tIHRoZSAudnJj
aGFwIGZpbGUgb24gZGlzay4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsb2FkSW5mbyggdm9p
ZCApID0gMDsKKworICAgICAgIC8qKiBPcHRpb25hbGx5IGdpdmUgdGhlIGNoYXBlcm9uZSBzeXN0
ZW0gYSBoaXQgYWJvdXQgdGhlIGNvbG9yIGFuZCBicmlnaHRuZXNzIGluIHRoZSBzY2VuZSAqKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U2NlbmVDb2xvciggSG1kQ29sb3JfdCBjb2xvciApID0g
MDsKKworICAgICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgY2hhcGVyb25lIGJvdW5kcyBkcmF3IGNv
bG9yIGFuZCBicmlnaHRuZXNzICoqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXRCb3VuZHNDb2xv
ciggSG1kQ29sb3JfdCAqcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBm
bG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgSG1kQ29sb3JfdCAqcE91dHB1dENh
bWVyYUNvbG9yICkgPSAwOworCisgICAgICAgLyoqIERldGVybWluZSB3aGV0aGVyIHRoZSBib3Vu
ZHMgYXJlIHNob3dpbmcgcmlnaHQgbm93ICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBBcmVCb3Vu
ZHNWaXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIEZvcmNlIHRoZSBib3VuZHMgdG8gc2hvdywg
bW9zdGx5IGZvciB1dGlsaXRpZXMgKiovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlQm91bmRz
VmlzaWJsZSggYm9vbCBiRm9yY2UgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUkNoYXBlcm9uZV9WZXJzaW9uID0gIklWUkNoYXBlcm9uZV8wMDMiOworCisjcHJhZ21h
IHBhY2soIHBvcCApCisKK30KKworLy8gaXZyY2hhcGVyb25lc2V0dXAuaAorbmFtZXNwYWNlIHZy
Cit7CisKK2VudW0gRUNoYXBlcm9uZUNvbmZpZ0ZpbGUKK3sKKyAgICAgICBFQ2hhcGVyb25lQ29u
ZmlnRmlsZV9MaXZlID0gMSwgICAgICAgICAgICAgIC8vIFRoZSBsaXZlIGNoYXBlcm9uZSBjb25m
aWcsIHVzZWQgYnkgbW9zdCBhcHBsaWNhdGlvbnMgYW5kIGdhbWVzCisgICAgICAgRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGVfVGVtcCA9IDIsICAgICAgICAgICAgICAvLyBUaGUgdGVtcG9yYXJ5IGNoYXBl
cm9uZSBjb25maWcsIHVzZWQgdG8gbGl2ZS1wcmV2aWV3IGNvbGxpc2lvbiBib3VuZHMgaW4gcm9v
bSBzZXR1cAorfTsKKworZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hh
cGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAweDAwMDEsCit9OworCisvKiogTWFuYWdlcyB0aGUg
d29ya2luZyBjb3B5IG9mIHRoZSBjaGFwZXJvbmUgaW5mby4gQnkgZGVmYXVsdCB0aGlzIHdpbGwg
YmUgdGhlIHNhbWUgYXMgdGhlIAorKiBsaXZlIGNvcHkuIEFueSBjaGFuZ2VzIG1hZGUgd2l0aCB0
aGlzIGludGVyZmFjZSB3aWxsIHN0YXkgaW4gdGhlIHdvcmtpbmcgY29weSB1bnRpbCAKKyogQ29t
bWl0V29ya2luZ0NvcHkoKSBpcyBjYWxsZWQsIGF0IHdoaWNoIHBvaW50IHRoZSB3b3JraW5nIGNv
cHkgYW5kIHRoZSBsaXZlIGNvcHkgd2lsbCBiZSAKKyogdGhlIHNhbWUgYWdhaW4uICovCitjbGFz
cyBJVlJDaGFwZXJvbmVTZXR1cAoreworcHVibGljOgorCisgICAgICAgLyoqIFNhdmVzIHRoZSBj
dXJyZW50IHdvcmtpbmcgY29weSB0byBkaXNrICovCisgICAgICAgdmlydHVhbCBib29sIENvbW1p
dFdvcmtpbmdDb3B5KCBFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlICkgPSAwOworCisg
ICAgICAgLyoqIFJldmVydHMgdGhlIHdvcmtpbmcgY29weSB0byBtYXRjaCB0aGUgbGl2ZSBjaGFw
ZXJvbmUgY2FsaWJyYXRpb24uCisgICAgICAgKiBUbyBtb2RpZnkgZXhpc3RpbmcgZGF0YSB0aGlz
IE1VU1QgYmUgZG8gV0hJTEUgZ2V0dGluZyBhIG5vbi1lcnJvciBDaGFwZXJvbmVDYWxpYnJhdGlv
blN0YXR1cy4KKyAgICAgICAqIE9ubHkgYWZ0ZXIgdGhpcyBzaG91bGQgeW91IGRvIGdldHMgYW5k
IHNldHMgb24gdGhlIGV4aXN0aW5nIGRhdGEuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJldmVy
dFdvcmtpbmdDb3B5KCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHdpZHRoIGFuZCBk
ZXB0aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykgaW4gWCBh
bmQgWiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuCisgICAgICAgKiBUcmFja2luZyBzcGFjZSBjZW50
ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuICovCisgICAgICAgdmly
dHVhbCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0ICpwU2l6ZVgsIGZsb2F0ICpw
U2l6ZVogKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgNCBjb3JuZXIgcG9zaXRpb25z
IG9mIHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBmcm9tIHRoZSB3
b3JraW5nIGNvcHkuCisgICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjbG9ja3dpc2Ugb3JkZXIuCisg
ICAgICAgKiBUcmFja2luZyBzcGFjZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRo
ZSBQbGF5IEFyZWEuCisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgorICAgICAgICogMiBzaWRl
cyBhcmUgcGFyYWxsZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8g
dGhlIFogYXhpcy4KKyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3JuZXIgaXMgMFkgKG9uIHRo
ZSBmbG9vcikuICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFSZWN0
KCBIbWRRdWFkX3QgKnJlY3QgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVy
IG9mIFF1YWRzIGlmIHRoZSBidWZmZXIgcG9pbnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1
cm5zIFF1YWRzIAorICAgICAgICogaW50byB0aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lm
aWVkIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29y
a2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5RdWFkc0NvdW50
KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1YWRzQ291bnQgKSA9IDA7
CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIFF1YWRzIGlmIHRoZSBidWZmZXIg
cG9pbnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1cm5zIFF1YWRzIAorICAgICAgICogaW50
byB0aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lmaWVkLiAqLworICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1
YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVhZHNDb3Vu
dCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcmVmZXJyZWQgc2VhdGVkIHBvc2l0
aW9uIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29y
a2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3QgKnBtYXRT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIHN0YW5kaW5nIG9yaWdpbiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAg
dmlydHVhbCBib29sIEdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2Uo
IEhtZE1hdHJpeDM0X3QgKnBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9
IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgUGxheSBBcmVhIGluIHRoZSB3b3JraW5nIGNvcHku
ICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0IHNp
emVYLCBmbG9hdCBzaXplWiApID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSBDb2xsaXNpb24g
Qm91bmRzIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldFdv
cmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blF1YWRzQ291bnQpIEht
ZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQgKSA9IDA7CisKKyAg
ICAgICAvKiogU2V0cyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbiBpbiB0aGUgd29ya2lu
ZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4MzRfdCAqcE1hdFNlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgcHJlZmVycmVk
IHN0YW5kaW5nIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVh
bCB2b2lkIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIGNvbnN0
IEhtZE1hdHJpeDM0X3QgKnBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9
IDA7CisKKyAgICAgICAvKiogVGVhciBldmVyeXRoaW5nIGRvd24gYW5kIHJlbG9hZCBpdCBmcm9t
IHRoZSBmaWxlIG9uIGRpc2sgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsb2FkRnJvbURpc2so
IEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0
dXJucyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3Qg
KnBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgdmly
dHVhbCB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyggVlJfQVJSQVlfQ09V
TlQodW5UYWdDb3VudCkgdWludDhfdCAqcFRhZ3NCdWZmZXIsIHVpbnQzMl90IHVuVGFnQ291bnQg
KSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5m
byggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blRhZ0NvdW50KSB1aW50OF90ICpwVGFnc0J1ZmZlciwg
dWludDMyX3QgKnB1blRhZ0NvdW50ICkgPSAwOworCisgICAgICAgdmlydHVhbCBib29sIFNldFdv
cmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuUXVhZHNDb3VudCkgSG1k
UXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCApID0gMDsKKyAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NP
VU5UKHB1blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVu
UXVhZHNDb3VudCApID0gMDsKKworICAgICAgIHZpcnR1YWwgYm9vbCBFeHBvcnRMaXZlVG9CdWZm
ZXIoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCAqcG5CdWZmZXJMZW5n
dGggKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmco
IGNvbnN0IGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IG5JbXBvcnRGbGFncyApID0gMDsKK307CisK
K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiA9ICJJ
VlJDaGFwZXJvbmVTZXR1cF8wMDUiOworCisKK30KKworLy8gaXZyY29tcG9zaXRvci5oCituYW1l
c3BhY2UgdnIKK3sKKworI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKworLyoqIEVycm9ycyB0aGF0
IGNhbiBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3NpdG9yICovCitlbnVtIEVWUkNvbXBvc2l0b3JF
cnJvcgoreworICAgICAgIFZSQ29tcG9zaXRvckVycm9yX05vbmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfUmVx
dWVzdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVlJDb21w
b3NpdG9yRXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiAgICAgICAgICAgICAgPSAxMDAsCisgICAg
ICAgVlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgICAgICAgICAgICAgICAgICAgICA9
IDEwMSwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAg
ICAgICAgICAgID0gMTAyLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBs
aWNhdGlvbiAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfVGV4
dHVyZUlzT25Xcm9uZ0RldmljZSAgICAgICA9IDEwNCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJv
cl9UZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAgIFZSQ29tcG9zaXRv
ckVycm9yX1NoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAorICAgICAgIFZSQ29tcG9z
aXRvckVycm9yX0luZGV4T3V0T2ZSYW5nZSAgICAgICAgICAgICAgICAgICAgID0gMTA3LAorICAg
ICAgIFZSQ29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgICAgICAgICAgICAgICAgICAg
ICA9IDEwOCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkQm91bmRzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTA5LAorfTsKKworY29uc3QgdWludDMyX3QgVlJDb21wb3Np
dG9yX1JlcHJvamVjdGlvblJlYXNvbl9DcHUgPSAweDAxOworY29uc3QgdWludDMyX3QgVlJDb21w
b3NpdG9yX1JlcHJvamVjdGlvblJlYXNvbl9HcHUgPSAweDAyOworY29uc3QgdWludDMyX3QgVlJD
b21wb3NpdG9yX1JlcHJvamVjdGlvbkFzeW5jICAgICAgPSAweDA0OyAgICAgICAvLyBUaGlzIGZs
YWcgaW5kaWNhdGVzIHRoZSBhc3luYyByZXByb2plY3Rpb24gbW9kZSBpcyBhY3RpdmUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgZG9lcyBu
b3QgaW5kaWNhdGUgaWYgcmVwcm9qZWN0aW9uIGFjdHVhbGx5IGhhcHBlbmVkIG9yIG5vdC4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUg
UmVwcm9qZWN0aW9uUmVhc29uIGZsYWdzIGFib3ZlIHRvIGNoZWNrIGlmIHJlcHJvamVjdGlvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FzIGFj
dHVhbGx5IGFwcGxpZWQgKGkuZS4gc2NlbmUgdGV4dHVyZSB3YXMgcmV1c2VkKS4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bUZyYW1lUHJlc2Vu
dHMgPiAxIGFsc28gaW5kaWNhdGVzIHRoZSBzY2VuZSB0ZXh0dXJlIHdhcyByZXVzZWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWxzbyB0
aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgaXQgd2FzIHByZXNlbnRlZCBpbiB0b3RhbC4KKworLyoq
IFByb3ZpZGVzIGEgc2luZ2xlIGZyYW1lJ3MgdGltaW5nIGluZm9ybWF0aW9uIHRvIHRoZSBhcHAg
Ki8KK3N0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgdWludDMyX3QgbV9u
U2l6ZTsgLy8gU2V0IHRvIHNpemVvZiggQ29tcG9zaXRvcl9GcmFtZVRpbWluZyApCisgICAgICAg
dWludDMyX3QgbV9uRnJhbWVJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNl
bnRzOyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFtZSB3YXMgcHJlc2VudGVkCisgICAgICAg
dWludDMyX3QgbV9uTnVtTWlzUHJlc2VudGVkOyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFt
ZSB3YXMgcHJlc2VudGVkIG9uIGEgdnN5bmMgb3RoZXIgdGhhbiBpdCB3YXMgb3JpZ2luYWxseSBw
cmVkaWN0ZWQgdG8KKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzOyAvLyBudW1i
ZXIgb2YgYWRkaXRpb25hbCB0aW1lcyBwcmV2aW91cyBmcmFtZSB3YXMgc2Nhbm5lZCBvdXQKKyAg
ICAgICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFnczsKKworICAgICAgIC8qKiBBYnNvbHV0
ZSB0aW1lIHJlZmVyZW5jZSBmb3IgY29tcGFyaW5nIGZyYW1lcy4gIFRoaXMgYWxpZ25zIHdpdGgg
dGhlIHZzeW5jIHRoYXQgcnVubmluZyBzdGFydCBpcyByZWxhdGl2ZSB0by4gKi8KKyAgICAgICBk
b3VibGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisKKyAgICAgICAvKiogVGhlc2UgdGltZXMg
bWF5IGluY2x1ZGUgd29yayBmcm9tIG90aGVyIHByb2Nlc3NlcyBkdWUgdG8gT1Mgc2NoZWR1bGlu
Zy4KKyAgICAgICAqIFRoZSBmZXdlciBwYWNrZXRzIG9mIHdvcmsgdGhlc2UgYXJlIGJyb2tlbiB1
cCBpbnRvLCB0aGUgbGVzcyBsaWtlbHkgdGhpcyB3aWxsIGhhcHBlbi4KKyAgICAgICAqIEdQVSB3
b3JrIGNhbiBiZSBicm9rZW4gdXAgYnkgY2FsbGluZyBGbHVzaC4gIFRoaXMgY2FuIHNvbWV0aW1l
cyBiZSB1c2VmdWwgdG8gZ2V0IHRoZSBHUFUgc3RhcnRlZAorICAgICAgICogcHJvY2Vzc2luZyB0
aGF0IHdvcmsgZWFybGllciBpbiB0aGUgZnJhbWUuICovCisgICAgICAgZmxvYXQgbV9mbFByZVN1
Ym1pdEdwdU1zOyAvLyB0aW1lIHNwZW50IHJlbmRlcmluZyB0aGUgc2NlbmUgKGdwdSB3b3JrIHN1
Ym1pdHRlZCBiZXR3ZWVuIFdhaXRHZXRQb3NlcyBhbmQgc2Vjb25kIFN1Ym1pdCkKKyAgICAgICBm
bG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOyAvLyBhZGRpdGlvbmFsIHRpbWUgc3BlbnQgcmVuZGVy
aW5nIGJ5IGFwcGxpY2F0aW9uIChlLmcuIGNvbXBhbmlvbiB3aW5kb3cpCisgICAgICAgZmxvYXQg
bV9mbFRvdGFsUmVuZGVyR3B1TXM7IC8vIHRpbWUgYmV0d2VlbiB3b3JrIHN1Ym1pdHRlZCBpbW1l
ZGlhdGVseSBhZnRlciBwcmVzZW50IChpZGVhbGx5IHZzeW5jKSB1bnRpbCB0aGUgZW5kIG9mIGNv
bXBvc2l0b3Igc3VibWl0dGVkIHdvcmsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRl
ckdwdU1zOyAvLyB0aW1lIHNwZW5kIHBlcmZvcm1pbmcgZGlzdG9ydGlvbiBjb3JyZWN0aW9uLCBy
ZW5kZXJpbmcgY2hhcGVyb25lLCBvdmVybGF5cywgZXRjLgorICAgICAgIGZsb2F0IG1fZmxDb21w
b3NpdG9yUmVuZGVyQ3B1TXM7IC8vIHRpbWUgc3BlbnQgb24gY3B1IHN1Ym1pdHRpbmcgdGhlIGFi
b3ZlIHdvcmsgZm9yIHRoaXMgZnJhbWUKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVD
cHVNczsgLy8gdGltZSBzcGVudCB3YWl0aW5nIGZvciBydW5uaW5nIHN0YXJ0IChhcHBsaWNhdGlv
biBjb3VsZCBoYXZlIHVzZWQgdGhpcyBtdWNoIG1vcmUgdGltZSkKKworICAgICAgIC8qKiBNaXNj
ZWxsYW5lb3VzIG1lYXN1cmVkIGludGVydmFscy4gKi8KKyAgICAgICBmbG9hdCBtX2ZsQ2xpZW50
RnJhbWVJbnRlcnZhbE1zOyAvLyB0aW1lIGJldHdlZW4gY2FsbHMgdG8gV2FpdEdldFBvc2VzCisg
ICAgICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7IC8vIHRpbWUgYmxvY2tlZCBvbiBjYWxs
IHRvIHByZXNlbnQgKHVzdWFsbHkgMC4wLCBidXQgY2FuIGdvIGxvbmcpCisgICAgICAgZmxvYXQg
bV9mbFdhaXRGb3JQcmVzZW50Q3B1TXM7IC8vIHRpbWUgc3BlbnQgc3Bpbi13YWl0aW5nIGZvciBm
cmFtZSBpbmRleCB0byBjaGFuZ2UgKG5vdCBuZWFyLXplcm8gaW5kaWNhdGVzIHdhaXQgb2JqZWN0
IGZhaWx1cmUpCisgICAgICAgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7IC8vIHRpbWUgc3BlbnQg
aW4gSVZSQ29tcG9zaXRvcjo6U3VibWl0IChub3QgbmVhci16ZXJvIGluZGljYXRlcyBkcml2ZXIg
aXNzdWUpCisKKyAgICAgICAvKiogVGhlIGZvbGxvd2luZyBhcmUgYWxsIHJlbGF0aXZlIHRvIHRo
aXMgZnJhbWUncyBTeXN0ZW1UaW1lSW5TZWNvbmRzICovCisgICAgICAgZmxvYXQgbV9mbFdhaXRH
ZXRQb3Nlc0NhbGxlZE1zOworICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAg
ICAgZmxvYXQgbV9mbE5ld0ZyYW1lUmVhZHlNczsgLy8gc2Vjb25kIGNhbGwgdG8gSVZSQ29tcG9z
aXRvcjo6U3VibWl0CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1zOwor
ICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgZmxvYXQgbV9m
bENvbXBvc2l0b3JSZW5kZXJTdGFydE1zOworCisgICAgICAgdnI6OlRyYWNrZWREZXZpY2VQb3Nl
X3QgbV9IbWRQb3NlOyAvLyBwb3NlIHVzZWQgYnkgYXBwIHRvIHJlbmRlciB0aGlzIGZyYW1lCit9
OworCisvKiogQ3VtdWxhdGl2ZSBzdGF0cyBmb3IgY3VycmVudCBhcHBsaWNhdGlvbi4gIFRoZXNl
IGFyZSBub3QgY2xlYXJlZCB1bnRpbCBhIG5ldyBhcHAgY29ubmVjdHMsCisqIGJ1dCB0aGV5IGRv
IHN0b3AgYWNjdW11bGF0aW5nIG9uY2UgdGhlIGFzc29jaWF0ZWQgYXBwIGRpc2Nvbm5lY3RzLiAq
Lworc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMyX3Qg
bV9uUGlkOyAvLyBQcm9jZXNzIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGVzZSBzdGF0cyAobWF5IG5v
IGxvbmdlciBiZSBydW5uaW5nKS4KKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRz
OyAvLyB0b3RhbCBudW1iZXIgb2YgdGltZXMgd2UgY2FsbGVkIHByZXNlbnQgKGluY2x1ZGVzIHJl
cHJvamVjdGVkIGZyYW1lcykKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzOyAv
LyB0b3RhbCBudW1iZXIgb2YgdGltZXMgYW4gb2xkIGZyYW1lIHdhcyByZS1zY2FubmVkIG91dCAo
d2l0aG91dCByZXByb2plY3Rpb24pCisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRG
cmFtZXM7IC8vIHRvdGFsIG51bWJlciBvZiB0aW1lcyBhIGZyYW1lIHdhcyBzY2FubmVkIG91dCBh
IHNlY29uZCB0aW1lICh3aXRoIHJlcHJvamVjdGlvbikKKworICAgICAgIC8qKiBWYWx1ZXMgcmVj
b3JkZWQgYXQgc3RhcnR1cCBiZWZvcmUgYXBwbGljYXRpb24gaGFzIGZ1bGx5IGZhZGVkIGluIHRo
ZSBmaXJzdCB0aW1lLiAqLworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNPblN0
YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAg
ICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKworICAgICAg
IC8qKiBBcHBsaWNhdGlvbnMgbWF5IGV4cGxpY2l0bHkgZmFkZSB0byB0aGUgY29tcG9zaXRvci4g
IFRoaXMgaXMgdXN1YWxseSB0byBoYW5kbGUgbGV2ZWwgdHJhbnNpdGlvbnMsIGFuZCBsb2FkaW5n
IG9mdGVuIGNhdXNlcworICAgICAgICogc3lzdGVtIHdpZGUgaGl0Y2hlcy4gIFRoZSBmb2xsb3dp
bmcgc3RhdHMgYXJlIGNvbGxlY3RlZCBkdXJpbmcgdGhpcyBwZXJpb2QuICBEb2VzIG5vdCBpbmNs
dWRlIHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnR1cC4gKi8KKyAgICAgICB1aW50MzJfdCBt
X25OdW1Mb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5n
OworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHVp
bnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKworICAgICAgIC8qKiBJZiB3
ZSBkb24ndCBnZXQgYSBuZXcgZnJhbWUgZnJvbSB0aGUgYXBwIGluIGxlc3MgdGhhbiAyLjUgZnJh
bWVzLCB0aGVuIHdlIGFzc3VtZSB0aGUgYXBwIGhhcyBodW5nIGFuZCBzdGFydAorICAgICAgICog
ZmFkaW5nIGJhY2sgdG8gdGhlIGNvbXBvc2l0b3IuICBUaGUgZm9sbG93aW5nIHN0YXRzIGFyZSBh
IHJlc3VsdCBvZiB0aGlzLCBhbmQgYXJlIGEgc3Vic2V0IG9mIHRob3NlIHJlY29yZGVkIGFib3Zl
LgorICAgICAgICogRG9lcyBub3QgaW5jbHVkZSB2YWx1ZXMgcmVjb3JkZWQgZHVyaW5nIHN0YXJ0
IHVwIG9yIGxvYWRpbmcuICovCisgICAgICAgdWludDMyX3QgbV9uTnVtVGltZWRPdXQ7CisgICAg
ICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAgICAgIHVpbnQzMl90
IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXBy
b2plY3RlZEZyYW1lc1RpbWVkT3V0OworfTsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCisvKiog
QWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBpbnRlcmFjdCB3aXRoIHRoZSBjb21wb3NpdG9yICov
CitjbGFzcyBJVlJDb21wb3NpdG9yCit7CitwdWJsaWM6CisgICAgICAgLyoqIFNldHMgdHJhY2tp
bmcgc3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzICovCisgICAgICAgdmlydHVhbCB2b2lk
IFNldFRyYWNraW5nU3BhY2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4gKSA9IDA7
CisKKyAgICAgICAvKiogR2V0cyBjdXJyZW50IHRyYWNraW5nIHNwYWNlIHJldHVybmVkIGJ5IFdh
aXRHZXRQb3NlcyAqLworICAgICAgIHZpcnR1YWwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gR2V0
VHJhY2tpbmdTcGFjZSgpID0gMDsKKworICAgICAgIC8qKiBTY2VuZSBhcHBsaWNhdGlvbnMgc2hv
dWxkIGNhbGwgdGhpcyBmdW5jdGlvbiB0byBnZXQgcG9zZXMgdG8gcmVuZGVyIHdpdGggKGFuZCBv
cHRpb25hbGx5IHBvc2VzIHByZWRpY3RlZCBhbiBhZGRpdGlvbmFsIGZyYW1lIG91dCB0byB1c2Ug
Zm9yIGdhbWVwbGF5KS4KKyAgICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCAi
cnVubmluZyBzdGFydCIgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGZyYW1l
LCBhbmQgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgbGFzdCBtb21lbnQgYmVmb3JlIG5lZWRpbmcg
dG8KKyAgICAgICAqIHN0YXJ0IHJlbmRlcmluZy4KKyAgICAgICAqCisgICAgICAgKiBSZXR1cm4g
Y29kZXM6CisgICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNhdGlvbiAobWFrZSBzdXJl
IHRvIGNhbGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUpCisgICAgICAgKiAgICAg
ICAtIERvTm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFrZW4gZm9jdXMgLSB0aGlz
IHdpbGwgdGhyb3R0bGUgdGhlIGNhbGwgdG8gMTBoeiB0byByZWR1Y2UgdGhlIGltcGFjdCBvbiB0
aGF0IGFwcCkKKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFdh
aXRHZXRQb3NlcyggVlJfQVJSQVlfQ09VTlQodW5SZW5kZXJQb3NlQXJyYXlDb3VudCkgVHJhY2tl
ZERldmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJy
YXlDb3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQodW5HYW1lUG9zZUFycmF5Q291
bnQpIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQ
b3NlQXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBHZXQgdGhlIGxhc3Qgc2V0IG9mIHBv
c2VzIHJldHVybmVkIGJ5IFdhaXRHZXRQb3Nlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBv
c2l0b3JFcnJvciBHZXRMYXN0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKCB1blJlbmRlclBvc2VBcnJh
eUNvdW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3Qg
dW5SZW5kZXJQb3NlQXJyYXlDb3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQoIHVu
R2FtZVBvc2VBcnJheUNvdW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcEdhbWVQb3NlQXJyYXks
IHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIEludGVy
ZmFjZSBmb3IgYWNjZXNzaW5nIGxhc3Qgc2V0IG9mIHBvc2VzIHJldHVybmVkIGJ5IFdhaXRHZXRQ
b3NlcyBvbmUgYXQgYSB0aW1lLgorICAgICAgICogUmV0dXJucyBWUkNvbXBvc2l0b3JFcnJvcl9J
bmRleE91dE9mUmFuZ2UgaWYgdW5EZXZpY2VJbmRleCBub3QgbGVzcyB0aGFuIGtfdW5NYXhUcmFj
a2VkRGV2aWNlQ291bnQgb3RoZXJ3aXNlIFZSQ29tcG9zaXRvckVycm9yX05vbmUuCisgICAgICAg
KiBJdCBpcyBva2F5IHRvIHBhc3MgTlVMTCBmb3IgZWl0aGVyIHBvc2UgaWYgeW91IG9ubHkgd2Fu
dCBvbmUgb2YgdGhlIHZhbHVlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJv
ciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCggVHJhY2tlZERldmljZUluZGV4X3Qg
dW5EZXZpY2VJbmRleCwgVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1dFBvc2UsIFRyYWNrZWRE
ZXZpY2VQb3NlX3QgKnBPdXRwdXRHYW1lUG9zZSApID0gMDsKKworICAgICAgIC8qKiBVcGRhdGVk
IHNjZW5lIHRleHR1cmUgdG8gZGlzcGxheS4gSWYgcEJvdW5kcyBpcyBOVUxMIHRoZSBlbnRpcmUg
dGV4dHVyZSB3aWxsIGJlIHVzZWQuICBJZiBjYWxsZWQgZnJvbSBhbiBPcGVuR0wgYXBwLCBjb25z
aWRlciBhZGRpbmcgYSBnbEZsdXNoIGFmdGVyCisgICAgICAgKiBTdWJtaXR0aW5nIGJvdGggZnJh
bWVzIHRvIHNpZ25hbCB0aGUgZHJpdmVyIHRvIHN0YXJ0IHByb2Nlc3NpbmcsIG90aGVyd2lzZSBp
dCBtYXkgd2FpdCB1bnRpbCB0aGUgY29tbWFuZCBidWZmZXIgZmlsbHMgdXAsIGNhdXNpbmcgdGhl
IGFwcCB0byBtaXNzIGZyYW1lcy4KKyAgICAgICAqCisgICAgICAgKiBPcGVuR0wgZGlydHkgc3Rh
dGU6CisgICAgICAgKiAgICAgICBnbEJpbmRUZXh0dXJlCisgICAgICAgKgorICAgICAgICogUmV0
dXJuIGNvZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBwbGljYXRpb24gKG1ha2Ug
c3VyZSB0byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1NjZW5lKQorICAgICAgICog
ICAgICAgLSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFzIHRha2VuIGZvY3VzKQor
ICAgICAgICogICAgICAgLSBUZXh0dXJlSXNPbldyb25nRGV2aWNlIChhcHBsaWNhdGlvbiBkaWQg
bm90IHVzZSBwcm9wZXIgQWRhcHRlckluZGV4IC0gc2VlIElWUlN5c3RlbS5HZXREWEdJT3V0cHV0
SW5mbykKKyAgICAgICAqICAgICAgIC0gU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgKGFwcGxp
Y2F0aW9uIG5lZWRzIHRvIGNhbGwgQ3JlYXRlRFhHSUZhY3RvcnkxIG9yIGxhdGVyIGJlZm9yZSBj
cmVhdGluZyBEWCBkZXZpY2UpCisgICAgICAgKiAgICAgICAtIFRleHR1cmVVc2VzVW5zdXBwb3J0
ZWRGb3JtYXQgKHNjZW5lIHRleHR1cmVzIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIERYR0kgc2hh
cmluZyBydWxlcyAtIGUuZy4gdW5jb21wcmVzc2VkLCBubyBtaXBzLCBldGMuKQorICAgICAgICog
ICAgICAgLSBJbnZhbGlkVGV4dHVyZSAodXN1YWxseSBtZWFucyBiYWQgYXJndW1lbnRzIHBhc3Nl
ZCBpbikKKyAgICAgICAqICAgICAgIC0gQWxyZWFkeVN1Ym1pdHRlZCAoYXBwIGhhcyBzdWJtaXR0
ZWQgdHdvIGxlZnQgdGV4dHVyZXMgb3IgdHdvIHJpZ2h0IHRleHR1cmVzIGluIGEgc2luZ2xlIGZy
YW1lIC0gaS5lLiBiZWZvcmUgY2FsbGluZyBXYWl0R2V0UG9zZXMgYWdhaW4pCisgICAgICAgKi8K
KyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTdWJtaXQoIEVWUkV5ZSBlRXllLCBj
b25zdCBUZXh0dXJlX3QgKnBUZXh0dXJlLCBjb25zdCBWUlRleHR1cmVCb3VuZHNfdCogcEJvdW5k
cyA9IDAsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyA9IFN1Ym1pdF9EZWZhdWx0ICkgPSAw
OworCisgICAgICAgLyoqIENsZWFycyB0aGUgZnJhbWUgdGhhdCB3YXMgc2VudCB3aXRoIHRoZSBs
YXN0IGNhbGwgdG8gU3VibWl0LiBUaGlzIHdpbGwgY2F1c2UgdGhlIAorICAgICAgICogY29tcG9z
aXRvciB0byBzaG93IHRoZSBncmlkIHVudGlsIFN1Ym1pdCBpcyBjYWxsZWQgYWdhaW4uICovCisg
ICAgICAgdmlydHVhbCB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkgPSAwOworCisgICAg
ICAgLyoqIENhbGwgaW1tZWRpYXRlbHkgYWZ0ZXIgcHJlc2VudGluZyB5b3VyIGFwcCdzIHdpbmRv
dyAoaS5lLiBjb21wYW5pb24gd2luZG93KSB0byB1bmJsb2NrIHRoZSBjb21wb3NpdG9yLgorICAg
ICAgICogVGhpcyBpcyBhbiBvcHRpb25hbCBjYWxsLCB3aGljaCBvbmx5IG5lZWRzIHRvIGJlIHVz
ZWQgaWYgeW91IGNhbid0IGluc3RlYWQgY2FsbCBXYWl0R2V0UG9zZXMgaW1tZWRpYXRlbHkgYWZ0
ZXIgUHJlc2VudC4KKyAgICAgICAqIEZvciBleGFtcGxlLCBpZiB5b3VyIGVuZ2luZSdzIHJlbmRl
ciBhbmQgZ2FtZSBsb29wIGFyZSBub3Qgb24gc2VwYXJhdGUgdGhyZWFkcywgb3IgYmxvY2tpbmcg
dGhlIHJlbmRlciB0aHJlYWQgdW50aWwgM21zIGJlZm9yZSB0aGUgbmV4dCB2c3luYyB3b3VsZAor
ICAgICAgICogaW50cm9kdWNlIGEgZGVhZGxvY2sgb2Ygc29tZSBzb3J0LiAgVGhpcyBmdW5jdGlv
biB0ZWxscyB0aGUgY29tcG9zaXRvciB0aGF0IHlvdSBoYXZlIGZpbmlzaGVkIGFsbCByZW5kZXJp
bmcgYWZ0ZXIgaGF2aW5nIFN1Ym1pdHRlZCBidWZmZXJzIGZvciBib3RoCisgICAgICAgKiBleWVz
LCBhbmQgaXQgaXMgZnJlZSB0byBzdGFydCBpdHMgcmVuZGVyaW5nIHdvcmsuICBUaGlzIHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZCB5b3UgYXJlIHJlbmRlcmluZyBv
bi4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkgPSAwOworCisg
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aW1pbmcgZGF0YSBpcyBmaWxsZWQgaXQuICBTZXRz
IG9sZGVzdCB0aW1pbmcgaW5mbyBpZiBuRnJhbWVzQWdvIGlzIGxhcmdlciB0aGFuIHRoZSBzdG9y
ZWQgaGlzdG9yeS4KKyAgICAgICAqIEJlIHN1cmUgdG8gc2V0IHRpbWluZy5zaXplID0gc2l6ZW9m
KENvbXBvc2l0b3JfRnJhbWVUaW1pbmcpIG9uIHN0cnVjdCBwYXNzZWQgaW4gYmVmb3JlIGNhbGxp
bmcgdGhpcyBmdW5jdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RnJhbWVUaW1pbmco
IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90IHVuRnJhbWVzQWdvID0g
MCApID0gMDsKKworICAgICAgIC8qKiBJbnRlcmZhY2UgZm9yIGNvcHlpbmcgYSByYW5nZSBvZiB0
aW1pbmcgZGF0YS4gIEZyYW1lcyBhcmUgcmV0dXJuZWQgaW4gYXNjZW5kaW5nIG9yZGVyIChvbGRl
c3QgdG8gbmV3ZXN0KSB3aXRoIHRoZSBsYXN0IGJlaW5nIHRoZSBtb3N0IHJlY2VudCBmcmFtZS4K
KyAgICAgICAqIE9ubHkgdGhlIGZpcnN0IGVudHJ5J3MgbV9uU2l6ZSBuZWVkcyB0byBiZSBzZXQs
IGFzIHRoZSByZXN0IHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGF0LiAgUmV0dXJucyB0b3RhbCBu
dW1iZXIgb2YgZW50cmllcyBmaWxsZWQgb3V0LiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3Qg
R2V0RnJhbWVUaW1pbmdzKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICpwVGltaW5nLCB1aW50MzJf
dCBuRnJhbWVzICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHRpbWUgaW4gc2Vjb25k
cyBsZWZ0IGluIHRoZSBjdXJyZW50IChhcyBpZGVudGlmaWVkIGJ5IEZyYW1lVGltaW5nJ3MgZnJh
bWVJbmRleCkgZnJhbWUuCisgICAgICAgKiBEdWUgdG8gInJ1bm5pbmcgc3RhcnQiLCB0aGlzIHZh
bHVlIG1heSByb2xsIG92ZXIgdG8gdGhlIG5leHQgZnJhbWUgYmVmb3JlIGV2ZXIgcmVhY2hpbmcg
MC4wLiAqLworICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RnJhbWVUaW1lUmVtYWluaW5nKCkgPSAw
OworCisgICAgICAgLyoqIEZpbGxzIG91dCBzdGF0cyBhY2N1bXVsYXRlZCBmb3IgdGhlIGxhc3Qg
Y29ubmVjdGVkIGFwcGxpY2F0aW9uLiAgUGFzcyBpbiBzaXplb2YoIENvbXBvc2l0b3JfQ3VtdWxh
dGl2ZVN0YXRzICkgYXMgc2Vjb25kIHBhcmFtZXRlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQg
R2V0Q3VtdWxhdGl2ZVN0YXRzKCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqcFN0YXRzLCB1
aW50MzJfdCBuU3RhdHNTaXplSW5CeXRlcyApID0gMDsKKworICAgICAgIC8qKiBGYWRlcyB0aGUg
dmlldyBvbiB0aGUgSE1EIHRvIHRoZSBzcGVjaWZpZWQgY29sb3IuIFRoZSBmYWRlIHdpbGwgdGFr
ZSBmU2Vjb25kcywgYW5kIHRoZSBjb2xvciB2YWx1ZXMgYXJlIGJldHdlZW4KKyAgICAgICAqIDAu
MCBhbmQgMS4wLiBUaGlzIGNvbG9yIGlzIGZhZGVkIG9uIHRvcCBvZiB0aGUgc2NlbmUgYmFzZWQg
b24gdGhlIGFscGhhIHBhcmFtZXRlci4gUmVtb3ZpbmcgdGhlIGZhZGUgY29sb3IgaW5zdGFudGx5
IAorICAgICAgICogd291bGQgYmUgRmFkZVRvQ29sb3IoIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
ICkuICBWYWx1ZXMgYXJlIGluIHVuLXByZW11bHRpcGxpZWQgYWxwaGEgc3BhY2UuICovCisgICAg
ICAgdmlydHVhbCB2b2lkIEZhZGVUb0NvbG9yKCBmbG9hdCBmU2Vjb25kcywgZmxvYXQgZlJlZCwg
ZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBib29sIGJCYWNrZ3JvdW5k
ID0gZmFsc2UgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1cnJlbnQgZmFkZSBjb2xvciB2YWx1
ZS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZENvbG9yX3QgR2V0Q3VycmVudEZhZGVDb2xvciggYm9v
bCBiQmFja2dyb3VuZCA9IGZhbHNlICkgPSAwOworCisgICAgICAgLyoqIEZhZGluZyB0aGUgR3Jp
ZCBpbiBvciBvdXQgaW4gZlNlY29uZHMgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRmFkZUdyaWQo
IGZsb2F0IGZTZWNvbmRzLCBib29sIGJGYWRlSW4gKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1
cnJlbnQgYWxwaGEgdmFsdWUgb2YgZ3JpZC4gKi8KKyAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEN1
cnJlbnRHcmlkQWxwaGEoKSA9IDA7CisKKyAgICAgICAvKiogT3ZlcnJpZGUgdGhlIHNreWJveCB1
c2VkIGluIHRoZSBjb21wb3NpdG9yIChlLmcuIGZvciBkdXJpbmcgbGV2ZWwgbG9hZHMgd2hlbiB0
aGUgYXBwIGNhbid0IGZlZWQgc2NlbmUgaW1hZ2VzIGZhc3QgZW5vdWdoKQorICAgICAgICogT3Jk
ZXIgaXMgRnJvbnQsIEJhY2ssIExlZnQsIFJpZ2h0LCBUb3AsIEJvdHRvbS4gIElmIG9ubHkgYSBz
aW5nbGUgdGV4dHVyZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgaW4gbGF0LWxvbmcgZm9ybWF0
LgorICAgICAgICogSWYgdHdvIGFyZSBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgYSBsYXQtbG9uZyBz
dGVyZW8gcGFpci4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTZXRTa3li
b3hPdmVycmlkZSggVlJfQVJSQVlfQ09VTlQoIHVuVGV4dHVyZUNvdW50ICkgY29uc3QgVGV4dHVy
ZV90ICpwVGV4dHVyZXMsIHVpbnQzMl90IHVuVGV4dHVyZUNvdW50ICkgPSAwOworCisgICAgICAg
LyoqIFJlc2V0cyBjb21wb3NpdG9yIHNreWJveCBiYWNrIHRvIGRlZmF1bHRzLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBDbGVhclNreWJveE92ZXJyaWRlKCkgPSAwOworCisgICAgICAgLyoqIEJy
aW5ncyB0aGUgY29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGZyb250LiBUaGlzIGlzIHVzZWZ1bCBm
b3IgY292ZXJpbmcgYW55IG90aGVyIHdpbmRvdyB0aGF0IG1heSBiZSBvbiB0aGUgSE1ECisgICAg
ICAgKiBhbmQgaXMgb2JzY3VyaW5nIHRoZSBjb21wb3NpdG9yIHdpbmRvdy4gKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckJyaW5nVG9Gcm9udCgpID0gMDsKKworICAgICAgIC8qKiBQ
dXNoZXMgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBiYWNrLiBUaGlzIGlzIHVzZWZ1bCBm
b3IgYWxsb3dpbmcgb3RoZXIgYXBwbGljYXRpb25zIHRvIGRyYXcgZGlyZWN0bHkgdG8gdGhlIEhN
RC4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckdvVG9CYWNrKCkgPSAwOworCisg
ICAgICAgLyoqIFRlbGxzIHRoZSBjb21wb3NpdG9yIHByb2Nlc3MgdG8gY2xlYW4gdXAgYW5kIGV4
aXQuIFlvdSBkbyBub3QgbmVlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gYXQgc2h1dGRvd24uIFVu
ZGVyIG5vcm1hbCAKKyAgICAgICAqIGNpcmN1bXN0YW5jZXMgdGhlIGNvbXBvc2l0b3Igd2lsbCBt
YW5hZ2UgaXRzIG93biBsaWZlIGN5Y2xlIGJhc2VkIG9uIHdoYXQgYXBwbGljYXRpb25zIGFyZSBy
dW5uaW5nLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yUXVpdCgpID0gMDsKKyAg
ICAgICAKKyAgICAgICAvKiogUmV0dXJuIHdoZXRoZXIgdGhlIGNvbXBvc2l0b3IgaXMgZnVsbHNj
cmVlbiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc0Z1bGxzY3JlZW4oKSA9IDA7CisKKyAgICAg
ICAvKiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IGlzIGN1cnJl
bnRseSByZW5kZXJpbmcgdGhlIHNjZW5lICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRD
dXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUg
cHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IHJlbmRlcmVkIHRoZSBsYXN0IGZyYW1lIChv
ciAwIGlmIHRoZSBjb21wb3NpdG9yIGl0c2VsZiByZW5kZXJlZCB0aGUgZnJhbWUuKQorICAgICAg
ICogUmV0dXJucyAwIHdoZW4gZmFkaW5nIG91dCBmcm9tIGFuIGFwcCBhbmQgdGhlIGFwcCdzIHBy
b2Nlc3MgSWQgd2hlbiBmYWRpbmcgaW50byBhbiBhcHAuICovCisgICAgICAgdmlydHVhbCB1aW50
MzJfdCBHZXRMYXN0RnJhbWVSZW5kZXJlcigpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRy
dWUgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBoYXMgdGhlIHNjZW5lIGZvY3VzICovCisgICAgICAg
dmlydHVhbCBib29sIENhblJlbmRlclNjZW5lKCkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMg
YSB3aW5kb3cgb24gdGhlIHByaW1hcnkgbW9uaXRvciB0byBkaXNwbGF5IHdoYXQgaXMgYmVpbmcg
c2hvd24gaW4gdGhlIGhlYWRzZXQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNob3dNaXJyb3JX
aW5kb3coKSA9IDA7CisKKyAgICAgICAvKiogQ2xvc2VzIHRoZSBtaXJyb3Igd2luZG93LiAqLwor
ICAgICAgIHZpcnR1YWwgdm9pZCBIaWRlTWlycm9yV2luZG93KCkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgdHJ1ZSBpZiB0aGUgbWlycm9yIHdpbmRvdyBpcyBzaG93bi4gKi8KKyAgICAgICB2
aXJ0dWFsIGJvb2wgSXNNaXJyb3JXaW5kb3dWaXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIFdy
aXRlcyBhbGwgaW1hZ2VzIHRoYXQgdGhlIGNvbXBvc2l0b3Iga25vd3MgYWJvdXQgKGluY2x1ZGlu
ZyBvdmVybGF5cykgdG8gYSAnc2NyZWVuc2hvdHMnIGZvbGRlciBpbiB0aGUgU3RlYW1WUiBydW50
aW1lIHJvb3QuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JEdW1wSW1hZ2VzKCkg
PSAwOworCisgICAgICAgLyoqIExldCBhbiBhcHAga25vdyBpdCBzaG91bGQgYmUgcmVuZGVyaW5n
IHdpdGggbG93IHJlc291cmNlcy4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgU2hvdWxkQXBwUmVu
ZGVyV2l0aExvd1Jlc291cmNlcygpID0gMDsKKworICAgICAgIC8qKiBPdmVycmlkZSBpbnRlcmxl
YXZlZCByZXByb2plY3Rpb24gbG9naWMgdG8gZm9yY2Ugb24uICovCisgICAgICAgdmlydHVhbCB2
b2lkIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbiggYm9vbCBiT3ZlcnJpZGUgKSA9IDA7
CisKKyAgICAgICAvKiogRm9yY2UgcmVjb25uZWN0aW5nIHRvIHRoZSBjb21wb3NpdG9yIHByb2Nl
c3MuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlUmVjb25uZWN0UHJvY2VzcygpID0gMDsK
KworICAgICAgIC8qKiBUZW1wb3JhcmlseSBzdXNwZW5kcyByZW5kZXJpbmcgKHVzZWZ1bCBmb3Ig
ZmluZXIgY29udHJvbCBvdmVyIHNjZW5lIHRyYW5zaXRpb25zKS4gKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgU3VzcGVuZFJlbmRlcmluZyggYm9vbCBiU3VzcGVuZCApID0gMDsKKworICAgICAgIC8q
KiBPcGVucyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIHdpdGggdGhlIHVuZGlzdG9ydGVkIGNvbXBv
c2l0ZWQgaW1hZ2UgZm9yIGVhY2ggZXllLiAgVXNlIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEg
d2hlbiBmaW5pc2hlZAorICAgICAgICogaW5zdGVhZCBvZiBjYWxsaW5nIFJlbGVhc2Ugb24gdGhl
IHJlc291cmNlIGl0c2VsZi4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJDb21wb3NpdG9yRXJy
b3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKCB2cjo6RVZSRXllIGVFeWUsIHZvaWQgKnBEM0QxMURl
dmljZU9yUmVzb3VyY2UsIHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICkgPSAwOwor
ICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKCB2b2lkICpwRDNE
MTFTaGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7CisKKyAgICAgICAvKiogQWNjZXNzIHRvIG1pcnJv
ciB0ZXh0dXJlcyBmcm9tIE9wZW5HTC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJDb21wb3Np
dG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKCB2cjo6RVZSRXllIGVFeWUsIHZyOjpnbFVJbnRf
dCAqcGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKnBnbFNoYXJlZFRl
eHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIFJlbGVhc2VTaGFyZWRHTFRl
eHR1cmUoIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCwgdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRs
ZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgTG9j
a0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGds
U2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgVW5sb2NrR0xT
aGFyZWRUZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlICkgPSAwOworCisgICAgICAgLyoqIFtWdWxrYW4gT25seV0KKyAgICAg
ICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1i
ZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0
cmFpbGluZworICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBiZSBhIHNwYWNlIHNlcGFy
YXRlZCBsaXN0IG9mLXJlcXVpcmVkIGluc3RhbmNlIGV4dGVuc2lvbnMgdG8gZW5hYmxlIGluIFZr
Q3JlYXRlSW5zdGFuY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFZ1bGthbkluc3Rh
bmNlRXh0ZW5zaW9uc1JlcXVpcmVkKCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVp
bnQzMl90IHVuQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBbVnVsa2FuIG9ubHldCisg
ICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUg
bnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0
aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdpbGwgYmUgYSBzcGFjZSBz
ZXBhcmF0ZWQgbGlzdCBvZiByZXF1aXJlZCBkZXZpY2UgZXh0ZW5zaW9ucyB0byBlbmFibGUgaW4g
VmtDcmVhdGVEZXZpY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFZ1bGthbkRldmlj
ZUV4dGVuc2lvbnNSZXF1aXJlZCggVmtQaHlzaWNhbERldmljZV9UICpwUGh5c2ljYWxEZXZpY2Us
IFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkg
PSAwOworCisgICAgICAgLyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogVGhlcmUg
YXJlIHR3byBwdXJwb3NlcyBmb3IgU2V0RXhwbGljaXRUaW1pbmdNb2RlOgorICAgICAgICogICAg
ICAgMS4gVG8gZ2V0IGEgbW9yZSBhY2N1cmF0ZSBHUFUgdGltZXN0YW1wIGZvciB3aGVuIHRoZSBm
cmFtZSBiZWdpbnMgaW4gVnVsa2FuL0QzRDEyIGFwcGxpY2F0aW9ucy4KKyAgICAgICAqICAgICAg
IDIuIChPcHRpb25hbCkgVG8gYXZvaWQgaGF2aW5nIFdhaXRHZXRQb3NlcyBhY2Nlc3MgdGhlIFZ1
bGthbiBxdWV1ZSBzbyB0aGF0IHRoZSBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQgZnJvbQorICAgICAg
ICogICAgICAgYW5vdGhlciB0aHJlYWQgd2hpbGUgV2FpdEdldFBvc2VzIGlzIGV4ZWN1dGluZy4K
KyAgICAgICAqCisgICAgICAgKiBNb3JlIGFjY3VyYXRlIEdQVSB0aW1lc3RhbXAgZm9yIHRoZSBz
dGFydCBvZiB0aGUgZnJhbWUgaXMgYWNoaWV2ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGNhbGxpbmcK
KyAgICAgICAqIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSBpbW1lZGlhdGVseSBiZWZvcmUgaXRz
IGZpcnN0IHN1Ym1pc3Npb24gdG8gdGhlIFZ1bGthbi9EM0QxMiBxdWV1ZS4KKyAgICAgICAqIFRo
aXMgaXMgbW9yZSBhY2N1cmF0ZSBiZWNhdXNlIG5vcm1hbGx5IHRoaXMgR1BVIHRpbWVzdGFtcCBp
cyByZWNvcmRlZCBkdXJpbmcgV2FpdEdldFBvc2VzLiAgSW4gRDNEMTEsIAorICAgICAgICogV2Fp
dEdldFBvc2VzIHF1ZXVlcyBhIEdQVSB0aW1lc3RhbXAgd3JpdGUsIGJ1dCBpdCBkb2VzIG5vdCBh
Y3R1YWxseSBnZXQgc3VibWl0dGVkIHRvIHRoZSBHUFUgdW50aWwgdGhlIAorICAgICAgICogYXBw
bGljYXRpb24gZmx1c2hlcy4gIEJ5IHVzaW5nIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSwgdGhl
IHRpbWVzdGFtcCBpcyByZWNvcmRlZCBhdCB0aGUgc2FtZSBwbGFjZSBmb3IgCisgICAgICAgKiBW
dWxrYW4vRDNEMTIgYXMgaXQgaXMgZm9yIEQzRDExLCByZXN1bHRpbmcgaW4gYSBtb3JlIGFjY3Vy
YXRlIEdQVSB0aW1lIG1lYXN1cmVtZW50IGZvciB0aGUgZnJhbWUuCisgICAgICAgKgorICAgICAg
ICogQXZvaWRpbmcgV2FpdEdldFBvc2VzIGFjY2Vzc2luZyB0aGUgVnVsa2FuIHF1ZXVlIGNhbiBi
ZSBhY2hpZXZlZCB1c2luZyBTZXRFeHBsaWNpdFRpbWluZ01vZGUgYXMgd2VsbC4gIElmIHRoaXMg
aXMgZGVzaXJlZCwKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbiAqTVVTVCogY2FsbCBQb3N0UHJl
c2VudEhhbmRvZmYgaXRzZWxmIHByaW9yIHRvIFdhaXRHZXRQb3Nlcy4gIElmIFNldEV4cGxpY2l0
VGltaW5nTW9kZSBpcyB0cnVlIGFuZCB0aGUKKyAgICAgICAqIGFwcGxpY2F0aW9uIGNhbGxzIFBv
c3RQcmVzZW50SGFuZG9mZiwgdGhlbiBXYWl0R2V0UG9zZXMgaXMgZ3VhcmFudGVlZCBub3QgdG8g
YWNjZXNzIHRoZSBxdWV1ZS4gIE5vdGUgdGhhdCBQb3N0UHJlc2VudEhhbmRvZmYKKyAgICAgICAq
IGFuZCBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgd2lsbCBhY2Nlc3MgdGhlIHF1ZXVlLCBzbyBv
bmx5IFdhaXRHZXRQb3NlcyBiZWNvbWVzIHNhZmUgZm9yIGFjY2Vzc2luZyB0aGUgcXVldWUgZnJv
bSBhbm90aGVyCisgICAgICAgKiB0aHJlYWQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldEV4
cGxpY2l0VGltaW5nTW9kZSggYm9vbCBiRXhwbGljaXRUaW1pbmdNb2RlICkgPSAwOworCisgICAg
ICAgLyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogU3VibWl0IGV4cGxpY2l0IHRp
bWluZyBkYXRhLiAgV2hlbiBTZXRFeHBsaWNpdFRpbWluZ01vZGUgaXMgdHJ1ZSwgdGhpcyBtdXN0
IGJlIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbidz
IGZpcnN0IHZrUXVldWVTdWJtaXQgKFZ1bGthbikgb3IgSUQzRDEyQ29tbWFuZFF1ZXVlOjpFeGVj
dXRlQ29tbWFuZExpc3RzIChEM0QxMikgb2YgZWFjaCBmcmFtZS4KKyAgICAgICAqIFRoaXMgZnVu
Y3Rpb24gd2lsbCBpbnNlcnQgYSBHUFUgdGltZXN0YW1wIHdyaXRlIGp1c3QgYmVmb3JlIHRoZSBh
cHBsaWNhdGlvbiBzdGFydHMgaXRzIHJlbmRlcmluZy4gIFRoaXMgZnVuY3Rpb24KKyAgICAgICAq
IHdpbGwgcGVyZm9ybSBhIHZrUXVldWVTdWJtaXQgb24gVnVsa2FuIHNvIG11c3Qgbm90IGJlIGRv
bmUgc2ltdWx0YW5lb3VzbHkgd2l0aCBWa1F1ZXVlIG9wZXJhdGlvbnMgb24gYW5vdGhlciB0aHJl
YWQuCisgICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQgaWYg
U2V0RXhwbGljaXRUaW1pbmdNb2RlIGlzIG5vdCBlbmFibGVkLiAqLworICAgICAgIHZpcnR1YWwg
RVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSgpID0gMDsKK307CisK
K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNv
bXBvc2l0b3JfMDIxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cm5vdGlmaWNh
dGlvbnMuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKKy8v
IFVzZWQgZm9yIHBhc3NpbmcgZ3JhcGhpYyBkYXRhCitzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFw
X3QKK3sKKyAgICAgICBOb3RpZmljYXRpb25CaXRtYXBfdCgpCisgICAgICAgICAgICAgIDogbV9w
SW1hZ2VEYXRhKCBudWxscHRyICkKKyAgICAgICAgICAgICAgLCBtX25XaWR0aCggMCApCisgICAg
ICAgICAgICAgICwgbV9uSGVpZ2h0KCAwICkKKyAgICAgICAgICAgICAgLCBtX25CeXRlc1BlclBp
eGVsKCAwICkKKyAgICAgICB7CisgICAgICAgfTsKKworICAgICAgIHZvaWQgKm1fcEltYWdlRGF0
YTsKKyAgICAgICBpbnQzMl90IG1fbldpZHRoOworICAgICAgIGludDMyX3QgbV9uSGVpZ2h0Owor
ICAgICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsKK307CisKKworLyoqIEJlIGF3YXJlIHRo
YXQgdGhlIG5vdGlmaWNhdGlvbiB0eXBlIGlzIHVzZWQgYXMgJ3ByaW9yaXR5JyB0byBwaWNrIHRo
ZSBuZXh0IG5vdGlmaWNhdGlvbiAqLworZW51bSBFVlJOb3RpZmljYXRpb25UeXBlCit7CisgICAg
ICAgLyoqIFRyYW5zaWVudCBub3RpZmljYXRpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGhpZGRlbiBh
ZnRlciBhIHBlcmlvZCBvZiB0aW1lIHNldCBieSB0aGUgdXNlci4gCisgICAgICAgKiBUaGV5IGFy
ZSB1c2VkIGZvciB0aGluZ3MgbGlrZSBpbmZvcm1hdGlvbiBhbmQgY2hhdCBtZXNzYWdlcyB0aGF0
IGRvIG5vdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCisgICAgICAgRVZSTm90aWZpY2F0
aW9uVHlwZV9UcmFuc2llbnQgPSAwLAorCisgICAgICAgLyoqIFBlcnNpc3RlbnQgbm90aWZpY2F0
aW9ucyBhcmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhleSBhcmUgaGlkZGVuIGJ5IGNhbGxp
bmcgUmVtb3ZlTm90aWZpY2F0aW9uKCkuCisgICAgICAgKiBUaGV5IGFyZSB1c2VkIGZvciB0aGlu
Z3MgbGlrZSBwaG9uZSBjYWxscyBhbmQgYWxhcm1zIHRoYXQgcmVxdWlyZSB1c2VyIGludGVyYWN0
aW9uLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCA9IDEsCisKKyAg
ICAgICAvKiogU3lzdGVtIG5vdGlmaWNhdGlvbnMgYXJlIHNob3duIG5vIG1hdHRlciB3aGF0LiBJ
dCBpcyBleHBlY3RlZCwgdGhhdCB0aGUgdWxVc2VyVmFsdWUgaXMgdXNlZCBhcyBJRC4KKyAgICAg
ICAgKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc3lzdGVtIG5vdGlmaWNhdGlvbiBpbiB0aGUgcXVl
dWUgd2l0aCB0aGF0IElEIGl0IGlzIG5vdCBhY2NlcHRlZCBpbnRvIHRoZSBxdWV1ZQorICAgICAg
ICAqIHRvIHByZXZlbnQgc3BhbW1pbmcgd2l0aCBzeXN0ZW0gbm90aWZpY2F0aW9uICovCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIs
Cit9OworCitlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAgICAgLyoqIENyZWF0ZXMg
YSBub3RpZmljYXRpb24gd2l0aCBtaW5pbWFsIGV4dGVybmFsIHN0eWxpbmcuICovCisgICAgICAg
RVZSTm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisKKyAgICAgICAvKiogVXNlZCBmb3Igbm90
aWZpY2F0aW9ucyBhYm91dCBvdmVybGF5LWxldmVsIHN0YXR1cy4gSW4gU3RlYW0gdGhpcyBpcyB1
c2VkIGZvciBldmVudHMgbGlrZSBkb3dubG9hZHMgY29tcGxldGluZy4gKi8KKyAgICAgICBFVlJO
b3RpZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiA9IDEwMCwKKworICAgICAgIC8qKiBVc2VkIGZv
ciBub3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQgYXJlIHVua25vd24gb3Igbm90IGF2
YWlsYWJsZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBmcmllbmQgaW52aXRhdGlvbnMgYW5k
IG9mZmxpbmUgZnJpZW5kcy4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0
X0Rpc2FibGVkID0gMjAwLAorCisgICAgICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJv
dXQgY29udGFjdHMgdGhhdCBhcmUgYXZhaWxhYmxlIGJ1dCBpbmFjdGl2ZS4gSW4gU3RlYW0gdGhp
cyBpcyB1c2VkIGZvciBmcmllbmRzIHRoYXQgYXJlIG9ubGluZSBidXQgbm90IHBsYXlpbmcgYSBn
YW1lLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5hYmxlZCA9IDIw
MSwKKworICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRo
YXQgYXJlIGF2YWlsYWJsZSBhbmQgYWN0aXZlLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGZy
aWVuZHMgdGhhdCBhcmUgb25saW5lIGFuZCBjdXJyZW50bHkgcnVubmluZyBhIGdhbWUuICovCisg
ICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3RpdmUgPSAyMDIsCit9OworCitz
dGF0aWMgY29uc3QgdWludDMyX3Qga191bk5vdGlmaWNhdGlvblRleHRNYXhTaXplID0gMjU2Owor
Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7CisKKworCisjcHJhZ21hIHBhY2so
IHBvcCApCisKKy8qKiBBbGxvd3Mgbm90aWZpY2F0aW9uIHNvdXJjZXMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgVlIgc3lzdGVtCisgICAgICAgVGhpcyBjdXJyZW50IGludGVyZmFjZSBpcyBub3QgeWV0
IGltcGxlbWVudGVkLiBEbyBub3QgdXNlIHlldC4gKi8KK2NsYXNzIElWUk5vdGlmaWNhdGlvbnMK
K3sKK3B1YmxpYzoKKyAgICAgICAvKiogQ3JlYXRlIGEgbm90aWZpY2F0aW9uIGFuZCBlbnF1ZXVl
IGl0IHRvIGJlIHNob3duIHRvIHRoZSB1c2VyLgorICAgICAgICogQW4gb3ZlcmxheSBoYW5kbGUg
aXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgbm90aWZpY2F0aW9uLCBhcyBvdGhlcndpc2UgaXQgd291
bGQgYmUgaW1wb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGFjdCBvbiBpdC4KKyAgICAgICAqIFRvIGNy
ZWF0ZSBhIHR3by1saW5lIG5vdGlmaWNhdGlvbiwgdXNlIGEgbGluZSBicmVhayAoJ1xuJykgdG8g
c3BsaXQgdGhlIHRleHQgaW50byB0d28gbGluZXMuCisgICAgICAgKiBUaGUgcEltYWdlIGFyZ3Vt
ZW50IG1heSBiZSBOVUxMLCBpbiB3aGljaCBjYXNlIHRoZSBzcGVjaWZpZWQgb3ZlcmxheSdzIGlj
b24gd2lsbCBiZSB1c2VkIGluc3RlYWQuICovCisgICAgICAgdmlydHVhbCBFVlJOb3RpZmljYXRp
b25FcnJvciBDcmVhdGVOb3RpZmljYXRpb24oIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgdWludDY0X3QgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgY29u
c3QgY2hhciAqcGNoVGV4dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIGNvbnN0IE5vdGlm
aWNhdGlvbkJpdG1hcF90ICpwSW1hZ2UsIC8qIG91dCAqLyBWUk5vdGlmaWNhdGlvbklkICpwTm90
aWZpY2F0aW9uSWQgKSA9IDA7CisKKyAgICAgICAvKiogRGVzdHJveSBhIG5vdGlmaWNhdGlvbiwg
aGlkaW5nIGl0IGZpcnN0IGlmIGl0IGN1cnJlbnRseSBzaG93biB0byB0aGUgdXNlci4gKi8KKyAg
ICAgICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIFJlbW92ZU5vdGlmaWNhdGlvbiggVlJO
b3RpZmljYXRpb25JZCBub3RpZmljYXRpb25JZCApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9u
c18wMDIiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZyb3ZlcmxheS5oCituYW1l
c3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gb3Zlcmxh
eSBrZXkgaW4gYnl0ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4g
Ki8KKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3ZlcmxheU1heEtleUxlbmd0
aCA9IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gb3ZlcmxheSBu
YW1lIGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuICov
CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3Ro
ID0gMTI4OworCisgICAgICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvdmVybGF5cyB0aGF0
IGNhbiBleGlzdCBpbiB0aGUgc3lzdGVtIGF0IG9uZSB0aW1lLiAqLworICAgICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBrX3VuTWF4T3ZlcmxheUNvdW50ID0gNjQ7CisKKyAgICAgICAvKiogVGhl
IG1heGltdW0gbnVtYmVyIG9mIG92ZXJsYXkgaW50ZXJzZWN0aW9uIG1hc2sgcHJpbWl0aXZlcyBw
ZXIgb3ZlcmxheSAqLworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4T3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKworICAgICAgIC8qKiBUeXBl
cyBvZiBpbnB1dCBzdXBwb3J0ZWQgYnkgVlIgT3ZlcmxheXMgKi8KKyAgICAgICBlbnVtIFZST3Zl
cmxheUlucHV0TWV0aG9kCisgICAgICAgeworICAgICAgICAgICAgICBWUk92ZXJsYXlJbnB1dE1l
dGhvZF9Ob25lICAgICAgICAgICAgICA9IDAsIC8vIE5vIGlucHV0IGV2ZW50cyB3aWxsIGJlIGdl
bmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGlzIG92ZXJsYXkKKyAgICAgICAgICAgICAgVlJP
dmVybGF5SW5wdXRNZXRob2RfTW91c2UgICAgICAgICAgICAgID0gMSwgLy8gVHJhY2tlZCBjb250
cm9sbGVycyB3aWxsIGdldCBtb3VzZSBldmVudHMgYXV0b21hdGljYWxseQorICAgICAgIH07CisK
KyAgICAgICAvKiogQWxsb3dzIHRoZSBjYWxsZXIgdG8gZmlndXJlIG91dCB3aGljaCBvdmVybGF5
IHRyYW5zZm9ybSBnZXR0ZXIgdG8gY2FsbC4gKi8KKyAgICAgICBlbnVtIFZST3ZlcmxheVRyYW5z
Zm9ybVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9BYnNv
bHV0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICAgICAg
ICBWUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlICAgICAgID0gMSwKKyAg
ICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgICAgICAgICAgICAg
ICAgICAgICA9IDIsCisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29t
cG9uZW50ICAgICAgICAgICAgICAgPSAzLAorICAgICAgIH07CisKKyAgICAgICAvKiogT3Zlcmxh
eSBjb250cm9sIHNldHRpbmdzICovCisgICAgICAgZW51bSBWUk92ZXJsYXlGbGFncworICAgICAg
IHsKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSAgICAgICAgICAgICAgICAgICAg
ID0gMCwKKworICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIG9ubHkgdGFrZSBlZmZlY3Qg
d2hlbiByZW5kZXJlZCB1c2luZyB0aGUgaGlnaCBxdWFsaXR5IHJlbmRlciBwYXRoIChzZWUgU2V0
SGlnaFF1YWxpdHlPdmVybGF5KS4KKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfQ3VydmVk
ICAgICAgICAgICAgICA9IDEsCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1JHU1M0WCAg
ICAgICAgICAgICAgPSAyLAorCisgICAgICAgICAgICAgIC8vIFNldCB0aGlzIGZsYWcgb24gYSBk
YXNoYm9hcmQgb3ZlcmxheSB0byBwcmV2ZW50IGEgdGFiIGZyb20gc2hvd2luZyB1cCBmb3IgdGhh
dCBvdmVybGF5CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiID0g
MywKKworICAgICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIG9uIGEgZGFzaGJvYXJkIHRoYXQg
aXMgYWJsZSB0byBkZWFsIHdpdGggZ2FtZXBhZCBmb2N1cyBldmVudHMKKyAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAorCisgICAgICAgICAgICAg
IC8vIEluZGljYXRlcyB0aGF0IHRoZSBvdmVybGF5IHNob3VsZCBkaW0vYnJpZ2h0ZW4gdG8gc2hv
dyBnYW1lcGFkIGZvY3VzCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dHYW1lcGFk
Rm9jdXMgPSA1LAorCisgICAgICAgICAgICAgIC8vIFdoZW4gaW4gVlJPdmVybGF5SW5wdXRNZXRo
b2RfTW91c2UgeW91IGNhbiBvcHRpb25hbGx5IGVuYWJsZSBzZW5kaW5nIFZSU2Nyb2xsX3QgCisg
ICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyA9IDYsCisgICAg
ICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKworICAg
ICAgICAgICAgICAvLyBJZiBzZXQgdGhpcyB3aWxsIHJlbmRlciBhIHZlcnRpY2FsIHNjcm9sbCB3
aGVlbCBvbiB0aGUgcHJpbWFyeSBjb250cm9sbGVyLCAKKyAgICAgICAgICAgICAgLy8gIG9ubHkg
bmVlZGVkIGlmIG5vdCB1c2luZyBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3JvbGxFdmVudHMgYnV0
IHlvdSBzdGlsbCB3YW50IHRvIHJlcHJlc2VudCBhIHNjcm9sbCB3aGVlbAorICAgICAgICAgICAg
ICBWUk92ZXJsYXlGbGFnc19TaG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisKKyAgICAgICAg
ICAgICAgLy8gSWYgdGhpcyBpcyBzZXQgb3duZXJzaGlwIGFuZCByZW5kZXIgYWNjZXNzIHRvIHRo
ZSBvdmVybGF5IGFyZSB0cmFuc2ZlcnJlZCAKKyAgICAgICAgICAgICAgLy8gdG8gdGhlIG5ldyBz
Y2VuZSBwcm9jZXNzIG9uIGEgY2FsbCB0byBJVlJBcHBsaWNhdGlvbnM6OkxhdW5jaEludGVybmFs
UHJvY2VzcworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRv
SW50ZXJuYWxQcm9jZXNzID0gOSwKKworICAgICAgICAgICAgICAvLyBJZiBzZXQsIHJlbmRlcnMg
NTAlIG9mIHRoZSB0ZXh0dXJlIGluIGVhY2ggZXllLCBzaWRlIGJ5IHNpZGUKKyAgICAgICAgICAg
ICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLCAvLyBUZXh0dXJlIGlz
IGxlZnQvcmlnaHQKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9z
c2VkID0gMTEsIC8vIFRleHR1cmUgaXMgY3Jvc3NlZCBhbmQgcmlnaHQvbGVmdAorCisgICAgICAg
ICAgICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsIC8vIFRleHR1cmUgaXMgYSBwYW5v
cmFtYQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFtYSA9IDEzLCAv
LyBUZXh0dXJlIGlzIGEgc3RlcmVvIHBhbm9yYW1hCisKKyAgICAgICAgICAgICAgLy8gSWYgdGhp
cyBpcyBzZXQgb24gYW4gb3ZlcmxheSBvd25lZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24gdGhh
dCBvdmVybGF5CisgICAgICAgICAgICAgIC8vIHdpbGwgYmUgc29ydGVkIHdpdGggdGhlICJPdGhl
ciIgb3ZlcmxheXMgb24gdG9wIG9mIGFsbCBvdGhlciBzY2VuZSBvdmVybGF5cworICAgICAgICAg
ICAgICBWUk92ZXJsYXlGbGFnc19Tb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwKKworICAg
ICAgICAgICAgICAvLyBJZiBzZXQsIHRoZSBvdmVybGF5IHdpbGwgYmUgc2hvd24gaW4gdGhlIGRh
c2hib2FyZCwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgaGlkZGVuLgorICAgICAgICAgICAgICBWUk92
ZXJsYXlGbGFnc19WaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKKyAgICAgICB9OworCisgICAgICAg
ZW51bSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIFZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18wID0gMCwKKyAgICAgICAgICAgICAg
VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzEgPSAxLAorICAgICAgICAgICAg
ICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9IDIsCisgICAgICAgICAg
ICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zID0gMywKKyAgICAgICAg
ICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9
IDQsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9y
Q3JlYXRlQ2xpZW50T3ZlcmxheT0gNSwKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJl
c3BvbnNlX0FwcGxpY2F0aW9uUXVpdCA9IDYKKyAgICAgICB9OworCisgICAgICAgc3RydWN0IFZS
T3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190CisgICAgICAgeworICAgICAgICAgICAgICBIbWRW
ZWN0b3IzX3QgdlNvdXJjZTsKKyAgICAgICAgICAgICAgSG1kVmVjdG9yM190IHZEaXJlY3Rpb247
CisgICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW47CisgICAgICAg
fTsKKworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2UG9pbnQ7CisgICAgICAgICAgICAgIEht
ZFZlY3RvcjNfdCB2Tm9ybWFsOworICAgICAgICAgICAgICBIbWRWZWN0b3IyX3QgdlVWczsKKyAg
ICAgICAgICAgICAgZmxvYXQgZkRpc3RhbmNlOworICAgICAgIH07CisKKyAgICAgICAvLyBJbnB1
dCBtb2RlcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdhbWVwYWQgdGV4dCBlbnRyeQorICAgICAgIGVu
dW0gRUdhbWVwYWRUZXh0SW5wdXRNb2RlCisgICAgICAgeworICAgICAgICAgICAgICBrX0VHYW1l
cGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0
SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAorICAgICAgICAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0
TW9kZVN1Ym1pdCA9IDIsCisgICAgICAgfTsKKworICAgICAgIC8vIENvbnRyb2xzIG51bWJlciBv
ZiBhbGxvd2VkIGxpbmVzIGZvciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBhZCB0ZXh0IGVudHJ5Cisg
ICAgICAgZW51bSBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlCisgICAgICAgeworICAgICAgICAg
ICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICAg
ICAgICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyA9IDEKKyAgICAg
ICB9OworCisgICAgICAgLyoqIERpcmVjdGlvbnMgZm9yIGNoYW5naW5nIGZvY3VzIGJldHdlZW4g
b3ZlcmxheXMgd2l0aCB0aGUgZ2FtZXBhZCAqLworICAgICAgIGVudW0gRU92ZXJsYXlEaXJlY3Rp
b24KKyAgICAgICB7CisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fVXAgPSAwLAorICAg
ICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAgICAgICAgICAgICBPdmVy
bGF5RGlyZWN0aW9uX0xlZnQgPSAyLAorICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX1Jp
Z2h0ID0gMywKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25f
Q291bnQgPSA0LAorICAgICAgIH07CisKKyAgICAgICBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rp
b25NYXNrUHJpbWl0aXZlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAgICAgT3ZlcmxheUludGVy
c2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlLAorICAgICAgICAgICAgICBPdmVybGF5SW50
ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUsCisgICAgICAgfTsKKworICAgICAgIHN0cnVj
dCBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIGZs
b2F0IG1fZmxUb3BMZWZ0WDsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFRvcExlZnRZOworICAg
ICAgICAgICAgICBmbG9hdCBtX2ZsV2lkdGg7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxIZWln
aHQ7CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QK
KyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxDZW50ZXJYOworICAgICAgICAgICAg
ICBmbG9hdCBtX2ZsQ2VudGVyWTsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFJhZGl1czsKKyAg
ICAgICB9OworCisgICAgICAgLyoqIE5PVEUhISEgSWYgeW91IGNoYW5nZSB0aGlzIHlvdSBNVVNU
IG1hbnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSBhbmQgb3BlbnZyX2FwaV9mbGF0
LmgucHkgKi8KKyAgICAgICB0eXBlZGVmIHVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBJ
bnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAgICAgICAgIElu
dGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKKyAgICAgICB9IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCisgICAgICAgc3RydWN0IFZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAg
ICAgICAgICAgIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJp
bWl0aXZlOworICAgICAgIH07CisKKyAgICAgICBjbGFzcyBJVlJPdmVybGF5CisgICAgICAgewor
ICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3ZlcmxheSBtYW5hZ2Vt
ZW50IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIEZpbmRzIGFuIGV4aXN0aW5n
IG92ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgRmluZE92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXks
IFZST3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIENyZWF0ZXMgYSBuZXcgbmFtZWQgb3ZlcmxheS4gQWxsIG92ZXJsYXlzIHN0YXJ0IGhp
ZGRlbiBhbmQgd2l0aCBkZWZhdWx0IHNldHRpbmdzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5
LCBjb25zdCBjaGFyICpwY2hPdmVybGF5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwT3Zlcmxh
eUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogRGVzdHJveXMgdGhlIHNwZWNpZmll
ZCBvdmVybGF5LiBXaGVuIGFuIGFwcGxpY2F0aW9uIGNhbGxzIFZSX1NodXRkb3duIGFsbCBvdmVy
bGF5cyBjcmVhdGVkIGJ5IHRoYXQgYXBwIGFyZQorICAgICAgICAgICAgICAqIGF1dG9tYXRpY2Fs
bHkgZGVzdHJveWVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBE
ZXN0cm95T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IHdoaWNoIG92ZXJsYXkgdG8gdXNlIHRoZSBoaWdo
IHF1YWxpdHkgcmVuZGVyIHBhdGguICBUaGlzIG92ZXJsYXkgd2lsbCBiZSBjb21wb3NpdGVkIGlu
IGR1cmluZyB0aGUgZGlzdG9ydGlvbiBwYXNzIHdoaWNoCisgICAgICAgICAgICAgICogcmVzdWx0
cyBpbiBpdCBkcmF3aW5nIG9uIHRvcCBvZiBldmVyeXRoaW5nIGVsc2UsIGJ1dCBhbHNvIGF0IGEg
aGlnaGVyIHF1YWxpdHkgYXMgaXQgc2FtcGxlcyB0aGUgc291cmNlIHRleHR1cmUgZGlyZWN0bHkg
cmF0aGVyIHRoYW4KKyAgICAgICAgICAgICAgKiByYXN0ZXJpemluZyBpbnRvIGVhY2ggZXllJ3Mg
cmVuZGVyIHRleHR1cmUgZmlyc3QuICBCZWNhdXNlIGlmIHRoaXMsIG9ubHkgb25lIG9mIHRoZXNl
IGlzIHN1cHBvcnRlZCBhdCBhbnkgZ2l2ZW4gdGltZS4gIEl0IGlzIG1vc3QgdXNlZnVsCisgICAg
ICAgICAgICAgICogZm9yIG92ZXJsYXlzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIHRha2UgdXAgbW9z
dCBvZiB0aGUgdXNlcidzIHZpZXcgKGUuZy4gc3RyZWFtaW5nIHZpZGVvKS4KKyAgICAgICAgICAg
ICAgKiBUaGlzIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBtb3VzZSBpbnB1dCB0byB5b3VyIG92ZXJs
YXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFs
aXR5T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBvdmVybGF5IGhhbmRsZSBvZiB0aGUgY3VycmVu
dCBvdmVybGF5IGJlaW5nIHJlbmRlcmVkIHVzaW5nIHRoZSBzaW5nbGUgaGlnaCBxdWFsaXR5IG92
ZXJsYXkgcmVuZGVyIHBhdGguCisgICAgICAgICAgICAgICogT3RoZXJ3aXNlIGl0IHdpbGwgcmV0
dXJuIGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2
cjo6VlJPdmVybGF5SGFuZGxlX3QgR2V0SGlnaFF1YWxpdHlPdmVybGF5KCkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBGaWxscyB0aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIHN0cmluZyBr
ZXkgb2YgdGhlIG92ZXJsYXkuIFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRv
IHN0b3JlIHRoZSBrZXksIGluY2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGlu
ZyBudWxsIGNoYXJhY3Rlci4ga191blZST3ZlcmxheU1heEtleUxlbmd0aCB3aWxsIGJlIGVub3Vn
aCBieXRlcyB0byBmaXQgdGhlIHN0cmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50
MzJfdCBHZXRPdmVybGF5S2V5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZS
X09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJP
dmVybGF5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGaWxs
cyB0aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIGZyaWVuZGx5IG5hbWUgb2YgdGhlIG92ZXJs
YXkuIFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRvIHN0b3JlIHRoZSBrZXks
IGluY2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rl
ci4ga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggd2lsbCBiZSBlbm91Z2ggYnl0ZXMgdG8gZml0
IHRoZSBzdHJpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3Zlcmxh
eU5hbWUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAq
cEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHNldCB0aGUgbmFtZSB0byB1
c2UgZm9yIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5TmFtZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBj
b25zdCBjaGFyICpwY2hOYW1lICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBy
YXcgaW1hZ2UgZGF0YSBmcm9tIGFuIG92ZXJsYXkuIE92ZXJsYXkgaW1hZ2UgZGF0YSBpcyBhbHdh
eXMgcmV0dXJuZWQgYXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhlbC4gSWYgdGhlIGJ1ZmZl
ciBpcyBub3QgbGFyZ2UgZW5vdWdoLCB3aWR0aCBhbmQgaGVpZ2h0IAorICAgICAgICAgICAgICAq
IHdpbGwgYmUgc2V0IGFuZCBWUk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsIGlzIHJldHVybmVk
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1h
Z2VEYXRhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnB2QnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICpwdW5XaWR0aCwgdWludDMyX3QgKnB1
bkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogcmV0dXJucyBhIHN0cmluZyB0aGF0
IGNvcnJlc3BvbmRzIHdpdGggdGhlIHNwZWNpZmllZCBvdmVybGF5IGVycm9yLiBUaGUgc3RyaW5n
IHdpbGwgYmUgdGhlIG5hbWUgCisgICAgICAgICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFs
dWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSggRVZST3ZlcmxheUVycm9yIGVy
cm9yICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVybGF5IHJlbmRlcmluZyBt
ZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBwaWQgdGhhdCBpcyBh
bGxvd2VkIHRvIHJlbmRlciB0byB0aGlzIG92ZXJsYXkgKHRoZSBjcmVhdG9yIHBpZCBpcyBhbHdh
eXMgYWxsb3cgdG8gcmVuZGVyKSwKKyAgICAgICAgICAgICAgKiAgICAgICBieSBkZWZhdWx0IHRo
aXMgaXMgdGhlIHBpZCBvZiB0aGUgcHJvY2VzcyB0aGF0IG1hZGUgdGhlIG92ZXJsYXkgKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJlbmRlcmluZ1Bp
ZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blBJRCApID0g
MDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcGlkIHRoYXQgaXMgYWxsb3dlZCB0byBy
ZW5kZXIgdG8gdGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3Qg
R2V0T3ZlcmxheVJlbmRlcmluZ1BpZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IGZsYWcgc2V0dGluZyBmb3IgYSBn
aXZlbiBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3Zlcmxh
eUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogU2V0cyBmbGFnIHNldHRpbmcgZm9yIGEgZ2l2ZW4gb3ZlcmxheSAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5RmxhZyggVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wg
KnBiRW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY29sb3IgdGlu
dCBvZiB0aGUgb3ZlcmxheSBxdWFkLiBVc2UgMC4wIHRvIDEuMCBwZXIgY2hhbm5lbC4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUNvbG9yKCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwg
ZmxvYXQgZkJsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGNvbG9yIHRp
bnQgb2YgdGhlIG92ZXJsYXkgcXVhZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheUNvbG9yKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIGZsb2F0ICpwZlJlZCwgZmxvYXQgKnBmR3JlZW4sIGZsb2F0ICpwZkJsdWUgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFscGhhIG9mIHRoZSBvdmVybGF5IHF1YWQuIFVz
ZSAxLjAgZm9yIDEwMCBwZXJjZW50IG9wYWNpdHkgdG8gMC4wIGZvciAwIHBlcmNlbnQgb3BhY2l0
eS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUFs
cGhhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZBbHBoYSApID0g
MDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYWxwaGEgb2YgdGhlIG92ZXJsYXkgcXVh
ZC4gQnkgZGVmYXVsdCBvdmVybGF5cyBhcmUgcmVuZGVyaW5nIGF0IDEwMCBwZXJjZW50IGFscGhh
ICgxLjApLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVy
bGF5QWxwaGEoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmQWxw
aGEgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFzcGVjdCByYXRpbyBvZiB0
aGUgdGV4ZWxzIGluIHRoZSBvdmVybGF5LiAxLjAgbWVhbnMgdGhlIHRleGVscyBhcmUgc3F1YXJl
LiAyLjAgbWVhbnMgdGhlIHRleGVscworICAgICAgICAgICAgICAqIGFyZSB0d2ljZSBhcyB3aWRl
IGFzIHRoZXkgYXJlIHRhbGwuIERlZmF1bHRzIHRvIDEuMC4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleGVsQXNwZWN0KCBWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogR2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0ZXhlbHMgaW4gdGhlIG92
ZXJsYXkuIERlZmF1bHRzIHRvIDEuMCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgZmxvYXQgKnBmVGV4ZWxBc3BlY3QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFNldHMgdGhlIHJlbmRlcmluZyBzb3J0IG9yZGVyIGZvciB0aGUgb3ZlcmxheS4gT3ZlcmxheXMg
YXJlIHJlbmRlcmVkIHRoaXMgb3JkZXI6CisgICAgICAgICAgICAgICogICAgICBPdmVybGF5cyBv
d25lZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgKiAgICAgIE92ZXJs
YXlzIG93bmVkIGJ5IHNvbWUgb3RoZXIgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgKgorICAg
ICAgICAgICAgICAqICAgICAgIFdpdGhpbiBhIGNhdGVnb3J5IG92ZXJsYXlzIGFyZSByZW5kZXJl
ZCBsb3dlc3Qgc29ydCBvcmRlciB0byBoaWdoZXN0IHNvcnQgb3JkZXIuIE92ZXJsYXlzIHdpdGgg
dGhlIHNhbWUgCisgICAgICAgICAgICAgICogICAgICAgc29ydCBvcmRlciBhcmUgcmVuZGVyZWQg
YmFjayB0byBmcm9udCBiYXNlIG9uIGRpc3RhbmNlIGZyb20gdGhlIEhNRC4KKyAgICAgICAgICAg
ICAgKgorICAgICAgICAgICAgICAqICAgICAgIFNvcnQgb3JkZXIgZGVmYXVsdHMgdG8gMC4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVNvcnRPcmRl
ciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blNvcnRPcmRl
ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgc29ydCBvcmRlciBvZiB0aGUg
b3ZlcmxheS4gU2VlIFNldE92ZXJsYXlTb3J0T3JkZXIgZm9yIGhvdyB0aGlzIHdvcmtzLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5U29ydE9yZGVy
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpwdW5Tb3J0T3Jk
ZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBvdmVy
bGF5IHF1YWQgaW4gbWV0ZXJzLiBCeSBkZWZhdWx0IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBvbiBh
IHF1YWQgdGhhdCBpcyAxIG1ldGVyIGFjcm9zcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBTZXRPdmVybGF5V2lkdGhJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmV2lkdGhJbk1ldGVycyApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkgcXVhZCBpbiBtZXRlcnMu
IEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVhZCB0aGF0IGlzIDEgbWV0
ZXIgYWNyb3NzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92
ZXJsYXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZs
b2F0ICpwZldpZHRoSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEZvciBoaWdo
LXF1YWxpdHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIHNldHMgdGhlIGRpc3RhbmNlIHJhbmdlIGlu
IG1ldGVycyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxseSBjdXJ2ZQorICAg
ICAgICAgICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAgTWluIGlzIGRpc3Rh
bmNlIGlzIHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4gIE1heCBpcyB3aGVu
IGxlYXN0IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
U2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgZk1h
eERpc3RhbmNlSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEZvciBoaWdoLXF1
YWxpdHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIGdldHMgdGhlIGRpc3RhbmNlIHJhbmdlIGluIG1l
dGVycyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxseSBjdXJ2ZQorICAgICAg
ICAgICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAgTWluIGlzIGRpc3RhbmNl
IGlzIHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4gIE1heCBpcyB3aGVuIGxl
YXN0IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0
T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCAqcGZN
YXhEaXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBj
b2xvcnNwYWNlIHRoZSBvdmVybGF5IHRleHR1cmUncyBkYXRhIGlzIGluLiAgRGVmYXVsdHMgdG8g
J2F1dG8nLgorICAgICAgICAgICAgICAqIElmIHRoZSB0ZXh0dXJlIG5lZWRzIHRvIGJlIHJlc29s
dmVkLCB5b3Ugc2hvdWxkIGNhbGwgU2V0T3ZlcmxheVRleHR1cmUgd2l0aCB0aGUgYXBwcm9wcmlh
dGUgY29sb3JzcGFjZSBpbnN0ZWFkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UoIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBvdmVybGF5J3MgY3VycmVudCBjb2xvcnNwYWNlIHNl
dHRpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJs
YXlUZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBF
Q29sb3JTcGFjZSAqcGVUZXh0dXJlQ29sb3JTcGFjZSApID0gMDsKKworICAgICAgICAgICAgICAv
KiogU2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9yIHRoZSBvdmVybGF5LiBV
ViBNaW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXggaXMgdGhlIGxvd2VyIHJp
Z2h0IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
Y29uc3QgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJvdW5kcyApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9y
IHRoZSBvdmVybGF5LiBVViBNaW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXgg
aXMgdGhlIGxvd2VyIHJpZ2h0IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJvdW5kcyAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhp
bmQgdGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3Zl
cmxheVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBj
aGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBIbWRDb2xvcl90ICpwQ29sb3Is
IHZyOjpFVlJPdmVybGF5RXJyb3IgKnBFcnJvciApID0gMDsKKworICAgICAgICAgICAgICAvKiog
U2V0cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhpbmQgdGhpcyBvdmVybGF5IGFuZCB0aGUgdmVy
dGV4IGNvbG9yIHRvIHVzZSwgcGFzcyBudWxsIGZvciBwQ29sb3IgdG8gbWF0Y2ggdGhlIG92ZXJs
YXlzIHZlcnRleCBjb2xvci4gCisgICAgICAgICAgICAgICAgICAgICBUaGUgbW9kZWwgaXMgc2Nh
bGVkIGJ5IHRoZSBzYW1lIGFtb3VudCBhcyB0aGUgb3ZlcmxheSwgd2l0aCBhIGRlZmF1bHQgb2Yg
MW0uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVy
bGF5UmVuZGVyTW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNv
bnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsLCBjb25zdCBIbWRDb2xvcl90ICpwQ29sb3IgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSB0eXBlIG9mIHRoaXMg
b3ZlcmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVRyYW5zZm9ybVR5cGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJP
dmVybGF5VHJhbnNmb3JtVHlwZSAqcGVUcmFuc2Zvcm1UeXBlICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gYWJzb2x1dGUgdHJhY2tpbmcgb3JpZ2luLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5n
VW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0
VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyBhYnNvbHV0ZS4gUmV0dXJucyBhbiBlcnJv
ciBpZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICpw
ZVRyYWNraW5nT3JpZ2luLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJs
YXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9y
bSB0byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3JtIG9mIHRoZSBzcGVjaWZpZWQgdHJhY2tlZCBk
ZXZpY2UuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJs
YXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2VkRGV2aWNlLCBjb25zdCBI
bWRNYXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlmIGl0IGlzIHJlbGF0aXZl
IHRvIGEgdHJhY2tlZCBkZXZpY2UuIFJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHRyYW5zZm9ybSBp
cyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWRE
ZXZpY2UsIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3Jt
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gZHJhdyB0
aGUgb3ZlcmxheSBvbiBhIHJlbmRlcm1vZGVsIGNvbXBvbmVudCBtZXNoIGluc3RlYWQgb2YgYSBx
dWFkLiBUaGlzIHdpbGwgb25seSBkcmF3IHdoZW4gdGhlIHN5c3RlbSBpcworICAgICAgICAgICAg
ICAqIGRyYXdpbmcgdGhlIGRldmljZS4gT3ZlcmxheXMgd2l0aCB0aGlzIHRyYW5zZm9ybSB0eXBl
IGNhbm5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3Qg
dW5EZXZpY2VJbmRleCwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGluZm9ybWF0aW9uIHdoZW4gdGhlIG92
ZXJsYXkgaXMgcmVuZGVyaW5nIG9uIGEgY29tcG9uZW50LiAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5k
ZXhfdCAqcHVuRGV2aWNlSW5kZXgsIGNoYXIgKnBjaENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVu
Q29tcG9uZW50TmFtZVNpemUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRy
YW5zZm9ybSBpZiBpdCBpcyByZWxhdGl2ZSB0byBhbm90aGVyIG92ZXJsYXkuIFJldHVybnMgYW4g
ZXJyb3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtT3Zlcmxh
eVJlbGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUhh
bmRsZV90ICp1bE92ZXJsYXlIYW5kbGVQYXJlbnQsIEhtZE1hdHJpeDM0X3QgKnBtYXRQYXJlbnRP
dmVybGF5VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3Jt
IG9mIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gVGhpcyBvdmVybGF5cyB2aXNpYmlsaXR5IHdpbGwg
YWxzbyB0cmFjayB0aGUgcGFyZW50cyB2aXNpYmlsaXR5ICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtT3ZlcmxheVJlbGF0aXZl
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZVBhcmVudCwgY29uc3QgSG1kTWF0cml4MzRfdCAqcG1hdFBhcmVudE92ZXJs
YXlUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNob3dzIHRo
ZSBWUiBvdmVybGF5LiAgRm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJvYXJk
IE1hbmFnZXIgaXMgYWxsb3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIFNob3dPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEhpZGVzIHRoZSBWUiBvdmVybGF5
LiAgRm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJvYXJkIE1hbmFnZXIgaXMg
YWxsb3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIEhpZGVPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgb3ZlcmxheSBpcyB2
aXNpYmxlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNPdmVybGF5VmlzaWJsZSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBHZXQgdGhlIHRyYW5zZm9ybSBpbiAzZCBzcGFjZSBhc3NvY2lhdGVkIHdpdGggYSBzcGVj
aWZpYyAyZCBwb2ludCBpbiB0aGUgb3ZlcmxheSdzIGNvb3JkaW5hdGUgc3BhY2UgKHdoZXJlIDAs
MCBpcyB0aGUgbG93ZXIgbGVmdCkuIC1aIHBvaW50cyBvdXQgb2YgdGhlIG92ZXJsYXkgKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0VHJhbnNmb3JtRm9yT3Zlcmxh
eUNvb3JkaW5hdGVzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVz
SW5PdmVybGF5LCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhbnNmb3JtICkgPSAwOworCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgICAgICAgICAvLyBPdmVybGF5IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQg
ZXZlbnQgb24gdGhlIG92ZXJsYXkncyBldmVudCBxdWV1ZSwgaWYgdGhlcmUgaXMgb25lLiAKKyAg
ICAgICAgICAgICAgKiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzIHRoaXMgbWV0aG9kIHJldHVybnMg
ZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgVlJF
dmVudF90IHN0cnVjdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgUG9sbE5leHRPdmVy
bGF5RXZlbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJFdmVudF90ICpw
RXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSBjdXJyZW50IGlucHV0IHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIG92ZXJs
YXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJ
bnB1dE1ldGhvZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJ
bnB1dE1ldGhvZCAqcGVJbnB1dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0
cyB0aGUgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUlucHV0TWV0aG9kKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJ
bnB1dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgbW91c2Ugc2Nh
bGluZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVudHMuIFRoZSBhY3R1YWwgdGV4
dHVyZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMgaXMKKyAgICAgICAgICAgICAg
KiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxzLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2Fs
ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBIbWRWZWN0b3IyX3QgKnB2ZWNN
b3VzZVNjYWxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBtb3VzZSBzY2Fs
aW5nIGZhY3RvciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4gVGhlIGFjdHVhbCB0ZXh0
dXJlIG1heSBiZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcworICAgICAgICAgICAgICAq
IHR5cGljYWxseSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMgKG5vdCBp
biB3b3JsZCBzcGFjZSkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IGNvbnN0IEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIENvbXB1dGVzIHRoZSBvdmVybGF5LXNwYWNlIHBpeGVsIGNvb3JkaW5hdGVzIG9mIHdo
ZXJlIHRoZSByYXkgaW50ZXJzZWN0cyB0aGUgb3ZlcmxheSB3aXRoIHRoZQorICAgICAgICAgICAg
ICAqIHNwZWNpZmllZCBzZXR0aW5ncy4gUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBubyBpbnRl
cnNlY3Rpb24uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBDb21wdXRlT3ZlcmxheUlu
dGVyc2VjdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCAqcFBhcmFtcywgVlJPdmVybGF5SW50ZXJzZWN0aW9u
UmVzdWx0c190ICpwUmVzdWx0cyApID0gMDsKKworICAgICAgICAgICAgICAvKiogUHJvY2Vzc2Vz
IG1vdXNlIGlucHV0IGZyb20gdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIGFzIHRob3VnaCBpdCB3
ZXJlIGEgbW91c2UgcG9pbnRlZCBhdCBhIGNvbXBvc2l0b3Igb3ZlcmxheSB3aXRoIHRoZQorICAg
ICAgICAgICAgICAqIHNwZWNpZmllZCBzZXR0aW5ncy4gVGhlIGNvbnRyb2xsZXIgaXMgdHJlYXRl
ZCBsaWtlIGEgbGFzZXIgcG9pbnRlciBvbiB0aGUgLXogYXhpcy4gVGhlIHBvaW50IHdoZXJlIHRo
ZSBsYXNlciBwb2ludGVyIHdvdWxkCisgICAgICAgICAgICAgICogaW50ZXJzZWN0IHdpdGggdGhl
IG92ZXJsYXkgaXMgdGhlIG1vdXNlIHBvc2l0aW9uLCB0aGUgdHJpZ2dlciBpcyBsZWZ0IG1vdXNl
LCBhbmQgdGhlIHRyYWNrIHBhZCBpcyByaWdodCBtb3VzZS4gCisgICAgICAgICAgICAgICoKKyAg
ICAgICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY29udHJvbGxlciBpcyBwb2ludGVkIGF0
IHRoZSBvdmVybGF5IGFuZCBhbiBldmVudCB3YXMgZ2VuZXJhdGVkLiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2Uo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3Qg
dW5Db250cm9sbGVyRGV2aWNlSW5kZXggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgaXMgdGhlIGhvdmVyIHRhcmdldC4gQW4g
b3ZlcmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0IHdoZW4gaXQgaXMgdGhlIGxhc3Qgb3ZlcmxheSAi
bW91c2VkIG92ZXIiIAorICAgICAgICAgICAgICAqIGJ5IHRoZSB2aXJ0dWFsIG1vdXNlIHBvaW50
ZXIgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzSG92ZXJUYXJnZXRPdmVybGF5KCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIFJldHVybnMgdGhlIGN1cnJlbnQgR2FtZXBhZCBmb2N1cyBvdmVybGF5ICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgdnI6OlZST3ZlcmxheUhhbmRsZV90IEdldEdhbWVwYWRGb2N1c092ZXJs
YXkoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGN1cnJlbnQgR2FtZXBhZCBm
b2N1cyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dEdhbWVwYWRGb2N1c092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsTmV3Rm9jdXNPdmVybGF5
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIGFuIG92ZXJsYXkncyBuZWlnaGJvci4g
VGhpcyB3aWxsIGFsc28gc2V0IHRoZSBuZWlnaGJvciBvZiB0aGUgInRvIiBvdmVybGF5CisgICAg
ICAgICAgICAgICogdG8gcG9pbnQgYmFjayB0byB0aGUgImZyb20iIG92ZXJsYXkuIElmIGFuIG92
ZXJsYXkncyBuZWlnaGJvciBpcyBzZXQgdG8gaW52YWxpZCBib3RoCisgICAgICAgICAgICAgICog
ZW5kcyB3aWxsIGJlIGNsZWFyZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheU5laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90IHVsVG8gKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIENoYW5nZXMgdGhlIEdhbWVwYWQgZm9jdXMgZnJvbSBvbmUgb3Zl
cmxheSB0byBvbmUgb2YgaXRzIG5laWdoYm9ycy4gUmV0dXJucyBWUk92ZXJsYXlFcnJvcl9Ob05l
aWdoYm9yIGlmIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICogbmVpZ2hib3IgaW4gdGhhdCBk
aXJlY3Rpb24gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3Zl
cmxheUhhbmRsZV90IHVsRnJvbSApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3Zl
cmxheSB0ZXh0dXJlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFRleHR1cmUg
dG8gZHJhdyBmb3IgdGhlIG92ZXJsYXkuIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVk
IGJ5IHRoZSBvdmVybGF5J3MgY3JlYXRvciBvciByZW5kZXJlciBwcm9jZXNzIChzZWUgU2V0T3Zl
cmxheVJlbmRlcmluZ1BpZCkgLgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogT3Bl
bkdMIGRpcnR5IHN0YXRlOgorICAgICAgICAgICAgICAqICAgICAgIGdsQmluZFRleHR1cmUKKyAg
ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3Qg
VGV4dHVyZV90ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogVXNlIHRoaXMg
dG8gdGVsbCB0aGUgb3ZlcmxheSBzeXN0ZW0gdG8gcmVsZWFzZSB0aGUgdGV4dHVyZSBzZXQgZm9y
IHRoaXMgb3ZlcmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
Q2xlYXJPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb3ZpZGlu
ZyB0aGUgZGF0YSBhcyBhIHN0cmVhbSBvZiBieXRlcywgYnV0IHRoZXJlIGlzIGFuIHVwcGVyIGJv
dW5kIG9uIGRhdGEgCisgICAgICAgICAgICAgICogdGhhdCBjYW4gYmUgc2VudC4gVGhpcyBmdW5j
dGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkncyByZW5kZXJlciBwcm9jZXNz
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmF3
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnB2QnVmZmVyLCB1aW50
MzJfdCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdWludDMyX3QgdW5EZXB0aCApID0gMDsK
KworICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50ZXJmYWNlIGZvciBwcm92aWRpbmcgdGhl
IGltYWdlIHRocm91Z2ggYSBmaWxlbmFtZTogY2FuIGJlIHBuZyBvciBqcGcsIGFuZCBzaG91bGQg
bm90IGJlIGJpZ2dlciB0aGFuIDE5MjB4MTA4MC4KKyAgICAgICAgICAgICAgKiBUaGlzIGZ1bmN0
aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJlbmRlcmVyIHByb2Nlc3Mg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZyb21G
aWxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIgKnBjaEZp
bGVQYXRoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIG5hdGl2ZSB0ZXh0dXJl
IGhhbmRsZS9kZXZpY2UgZm9yIGFuIG92ZXJsYXkgeW91IGhhdmUgY3JlYXRlZC4KKyAgICAgICAg
ICAgICAgKiBPbiB3aW5kb3dzIHRoaXMgaGFuZGxlIHdpbGwgYmUgYSBJRDNEMTFTaGFkZXJSZXNv
dXJjZVZpZXcgd2l0aCBhIElEM0QxMVRleHR1cmUyRCBib3VuZC4KKyAgICAgICAgICAgICAgKgor
ICAgICAgICAgICAgICAqIFRoZSB0ZXh0dXJlIHdpbGwgYWx3YXlzIGJlIHNpemVkIHRvIG1hdGNo
IHRoZSBiYWNraW5nIHRleHR1cmUgeW91IHN1cHBsaWVkIGluIFNldE92ZXJsYXlUZXh0dXJlIGFi
b3ZlLgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogWW91IE1VU1QgY2FsbCBSZWxl
YXNlTmF0aXZlT3ZlcmxheUhhbmRsZSgpIHdpdGggcE5hdGl2ZVRleHR1cmVIYW5kbGUgb25jZSB5
b3UgYXJlIGRvbmUgd2l0aCB0aGlzIHRleHR1cmUuCisgICAgICAgICAgICAgICoKKyAgICAgICAg
ICAgICAgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSBpcyBhbiBPVVRQVVQsIGl0IHdpbGwgYmUgYSBw
b2ludGVyIHRvIGEgSUQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICouCisgICAgICAgICAgICAgICog
cE5hdGl2ZVRleHR1cmVSZWYgaXMgYW4gSU5QVVQgYW5kIHNob3VsZCBiZSBhIElEM0QxMVJlc291
cmNlICouIFRoZSBkZXZpY2UgdXNlZCBieSBwTmF0aXZlVGV4dHVyZVJlZiB3aWxsIGJlIHVzZWQg
dG8gYmluZCBwTmF0aXZlVGV4dHVyZUhhbmRsZS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmUoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqKnBOYXRpdmVUZXh0dXJlSGFuZGxlLCB2
b2lkICpwTmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKnBXaWR0aCwgdWludDMyX3QgKnBIZWln
aHQsIHVpbnQzMl90ICpwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUgKnBBUElUeXBlLCBFQ29s
b3JTcGFjZSAqcENvbG9yU3BhY2UsIFZSVGV4dHVyZUJvdW5kc190ICpwVGV4dHVyZUJvdW5kcyAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogUmVsZWFzZSB0aGUgcE5hdGl2ZVRleHR1cmVIYW5k
bGUgcHJvdmlkZWQgZnJvbSB0aGUgR2V0T3ZlcmxheVRleHR1cmUgY2FsbCwgdGhpcyBhbGxvd3Mg
dGhlIHN5c3RlbSB0byBmcmVlIHRoZSB1bmRlcmx5aW5nIEdQVSByZXNvdXJjZXMgZm9yIHRoaXMg
b2JqZWN0LAorICAgICAgICAgICAgICAqIHNvIG9ubHkgZG8gaXQgb25jZSB5b3Ugc3RvcCByZW5k
ZXJpbmcgdGhpcyB0ZXh0dXJlLgorICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSggVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwTmF0aXZlVGV4dHVyZUhhbmRsZSApID0g
MDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBzaXplIG9mIHRoZSBvdmVybGF5IHRleHR1
cmUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRl
eHR1cmVTaXplKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpw
V2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg
Ly8gRGFzaGJvYXJkIE92ZXJsYXkgTWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoq
IENyZWF0ZXMgYSBkYXNoYm9hcmQgb3ZlcmxheSBhbmQgcmV0dXJucyBpdHMgaGFuZGxlICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2FyZE92ZXJs
YXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlGcmll
bmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUsIFZST3ZlcmxheUhhbmRs
ZV90ICpwVGh1bWJuYWlsSGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5z
IHRydWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxlICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBJc0Rhc2hib2FyZFZpc2libGUoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHJl
dHVybnMgdHJ1ZSBpZiB0aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgYW5kIHRoZSBzcGVjaWZpZWQg
b3ZlcmxheSBpcyB0aGUgYWN0aXZlIHN5c3RlbSBPdmVybGF5ICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgYm9vbCBJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgZGFzaGJv
YXJkIG92ZXJsYXkgdG8gb25seSBhcHBlYXIgd2hlbiB0aGUgc3BlY2lmaWVkIHByb2Nlc3MgSUQg
aGFzIHNjZW5lIGZvY3VzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEdldHMgdGhlIHByb2Nlc3MgSUQgdGhhdCB0aGlzIGRhc2hib2FyZCBvdmVybGF5IHJlcXVp
cmVzIHRvIGhhdmUgc2NlbmUgZm9jdXMgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyggVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcHVuUHJvY2Vzc0lkICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBTaG93cyB0aGUgZGFzaGJvYXJkLiAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHZvaWQgU2hvd0Rhc2hib2FyZCggY29uc3QgY2hhciAqcGNoT3ZlcmxheVRvU2hvdyApID0g
MDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhY2tlZCBkZXZpY2UgdGhhdCBo
YXMgdGhlIGxhc2VyIHBvaW50ZXIgaW4gdGhlIGRhc2hib2FyZCAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNl
KCkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBLZXlib2FyZCBtZXRob2RzCisgICAg
ICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyoqIFNob3cgdGhlIHZpcnR1YWwga2V5
Ym9hcmQgdG8gYWNjZXB0IGlucHV0ICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBTaG93S2V5Ym9hcmQoIEVHYW1lcGFkVGV4dElucHV0TW9kZSBlSW5wdXRNb2RlLCBF
R2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBjb25zdCBjaGFyICpwY2hE
ZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjb25zdCBjaGFyICpwY2hFeGlzdGluZ1Rl
eHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlICkgPSAwOworCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZEZvck92ZXJs
YXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUdhbWVwYWRUZXh0SW5wdXRN
b2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUs
IGNvbnN0IGNoYXIgKnBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNvbnN0IGNo
YXIgKnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2Vy
VmFsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgdGV4dCB0aGF0IHdhcyBl
bnRlcmVkIGludG8gdGhlIHRleHQgaW5wdXQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0S2V5Ym9hcmRUZXh0KCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVGV4dCwgdWlu
dDMyX3QgY2NoVGV4dCApID0gMDsKKworICAgICAgICAgICAgICAvKiogSGlkZSB0aGUgdmlydHVh
bCBrZXlib2FyZCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEhpZGVLZXlib2FyZCgp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5Ym9h
cmQgaW4gd29ybGQgc3BhY2UgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRLZXli
b2FyZFRyYW5zZm9ybUFic29sdXRlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdP
cmlnaW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRU
cmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0aGUgcG9zaXRpb24gb2Yg
dGhlIGtleWJvYXJkIGluIG92ZXJsYXkgc3BhY2UgYnkgdGVsbGluZyBpdCB0byBhdm9pZCBhIHJl
Y3RhbmdsZSBpbiB0aGUgb3ZlcmxheS4gUmVjdGFuZ2xlIGNvb3JkcyBoYXZlICgwLDApIGluIHRo
ZSBib3R0b20gbGVmdCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEht
ZFJlY3QyX3QgYXZvaWRSZWN0ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVy
bGF5IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNldHMgYSBsaXN0
IG9mIHByaW1pdGl2ZXMgdG8gYmUgdXNlZCBmb3IgY29udHJvbGxlciByYXkgaW50ZXJzZWN0aW9u
CisgICAgICAgICAgICAgICogdHlwaWNhbGx5IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJ
IGluIHBpeGVscyAobm90IGluIHdvcmxkIHNwYWNlKS4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2soIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2
ZV90ICpwTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQz
Ml90IHVuUHJpbWl0aXZlU2l6ZSA9IHNpemVvZiggVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1By
aW1pdGl2ZV90ICkgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheUZsYWdzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQzMl90ICpwRmxhZ3MgKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE1lc3NhZ2Ug
Ym94IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNob3cgdGhlIG1lc3NhZ2Ug
b3ZlcmxheS4gVGhpcyB3aWxsIGJsb2NrIGFuZCByZXR1cm4geW91IGEgcmVzdWx0LiAqKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgU2hvd01lc3NhZ2VP
dmVybGF5KCBjb25zdCBjaGFyKiBwY2hUZXh0LCBjb25zdCBjaGFyKiBwY2hDYXB0aW9uLCBjb25z
dCBjaGFyKiBwY2hCdXR0b24wVGV4dCwgY29uc3QgY2hhciogcGNoQnV0dG9uMVRleHQgPSBudWxs
cHRyLCBjb25zdCBjaGFyKiBwY2hCdXR0b24yVGV4dCA9IG51bGxwdHIsIGNvbnN0IGNoYXIqIHBj
aEJ1dHRvbjNUZXh0ID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogSWYgdGhl
IGNhbGxpbmcgcHJvY2VzcyBvd25zIHRoZSBvdmVybGF5IGFuZCBpdCdzIG9wZW4sIHRoaXMgd2ls
bCBjbG9zZSBpdC4gKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDbG9zZU1lc3NhZ2VP
dmVybGF5KCkgPSAwOworICAgICAgIH07CisKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNiI7CisKK30gLy8gbmFtZXNw
YWNlIHZyCisKKy8vIGl2cnJlbmRlcm1vZGVscy5oCituYW1lc3BhY2UgdnIKK3sKKworc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1ID0g
ImdkYzIwMTUiOyAgIC8vIENhbm9uaWNhbCBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgZ2RjIDIw
MTUgd2lyZWQgY29udHJvbGxlciwgcHJvdmlkZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5
CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jh
c2UgPSAiYmFzZSI7ICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdpdGggYW4gdW5hbWJpZ3Vv
dXMgJ2Jhc2UnLgorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0Nv
bXBvbmVudF9UaXAgPSAidGlwIjsgICAgICAgICAgIC8vIEZvciBjb250cm9sbGVycyB3aXRoIGFu
IHVuYW1iaWd1b3VzICd0aXAnICh1c2VkIGZvciAnbGFzZXItcG9pbnRpbmcnKQorc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJo
YW5kZ3JpcCI7IC8vIE5ldXRyYWwsIGFtYmlkZXh0cm91cyBoYW5kLXBvc2Ugd2hlbiBob2xkaW5n
IGNvbnRyb2xsZXIuIE9uIHBsYW5lIGJldHdlZW4gbmV1dHJhbGx5IHBvc2VkIGluZGV4IGZpbmdl
ciBhbmQgdGh1bWIKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9D
b21wb25lbnRfU3RhdHVzID0gInN0YXR1cyI7ICAgICAgICAgICAgICAvLyAxOjEgYXNwZWN0IHJh
dGlvIHN0YXR1cyBhcmVhLCB3aXRoIGNhbm9uaWNhbCBbMCwxXSB1diBtYXBwaW5nCisKKyNwcmFn
bWEgcGFjayggcHVzaCwgOCApCisKKy8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUg
VlIgY29tcG9zaXRvciAqLworZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7CisgICAgICAgVlJS
ZW5kZXJNb2RlbEVycm9yX05vbmUgPSAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Mb2Fk
aW5nID0gMTAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RTdXBwb3J0ZWQgPSAyMDAs
CisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRBcmcgPSAzMDAsCisgICAgICAgVlJS
ZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBWUlJlbmRlck1vZGVs
RXJyb3JfTm9TaGFwZXMgPSAzMDIsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxl
U2hhcGVzID0gMzAzLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMg
PSAzMDQsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlVGV4dHVyZXMgPSAzMDUs
CisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMzA2LAorICAgICAg
IFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIFZSUmVu
ZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMgPSAzMDgsCisKKyAgICAgICBWUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZFRleHR1cmUgPSA0MDAsCit9OworCit0eXBlZGVmIHVpbnQzMl90
IFZSQ29tcG9uZW50UHJvcGVydGllczsKKworZW51bSBFVlJDb21wb25lbnRQcm9wZXJ0eQorewor
ICAgICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTdGF0aWMgPSAoMSA8PCAwKSwKKyAgICAgICBW
UkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9ICgxIDw8IDEpLAorICAgICAgIFZSQ29tcG9u
ZW50UHJvcGVydHlfSXNUb3VjaGVkID0gKDEgPDwgMiksCisgICAgICAgVlJDb21wb25lbnRQcm9w
ZXJ0eV9Jc1ByZXNzZWQgPSAoMSA8PCAzKSwKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lz
U2Nyb2xsZWQgPSAoMSA8PCA0KSwKK307CisKKy8qKiBEZXNjcmliZXMgc3RhdGUgaW5mb3JtYXRp
b24gYWJvdXQgYSByZW5kZXItbW9kZWwgY29tcG9uZW50LCBpbmNsdWRpbmcgdHJhbnNmb3JtcyBh
bmQgb3RoZXIgZHluYW1pYyBwcm9wZXJ0aWVzICovCitzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9u
ZW50U3RhdGVfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRS
ZW5kZXJNb2RlbDsgIC8vIFRyYW5zZm9ybSByZXF1aXJlZCB3aGVuIGRyYXdpbmcgdGhlIGNvbXBv
bmVudCByZW5kZXIgbW9kZWwKKyAgICAgICBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9u
ZW50TG9jYWw7ICAgICAgICAvLyBUcmFuc2Zvcm0gYXZhaWxhYmxlIGZvciBhdHRhY2hpbmcgdG8g
YSBsb2NhbCBjb21wb25lbnQgY29vcmRpbmF0ZSBzeXN0ZW0gKC1aIG91dCBmcm9tIHN1cmZhY2Ug
KQorICAgICAgIFZSQ29tcG9uZW50UHJvcGVydGllcyB1UHJvcGVydGllczsKK307CisKKy8qKiBB
IHNpbmdsZSB2ZXJ0ZXggaW4gYSByZW5kZXIgbW9kZWwgKi8KK3N0cnVjdCBSZW5kZXJNb2RlbF9W
ZXJ0ZXhfdAoreworICAgICAgIEhtZFZlY3RvcjNfdCB2UG9zaXRpb247ICAgICAgICAgICAgICAv
LyBwb3NpdGlvbiBpbiBtZXRlcnMgaW4gZGV2aWNlIHNwYWNlCisgICAgICAgSG1kVmVjdG9yM190
IHZOb3JtYWw7CisgICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07Cit9OworCisvKiogQSB0
ZXh0dXJlIG1hcCBmb3IgdXNlIG9uIGEgcmVuZGVyIG1vZGVsICovCisjaWYgZGVmaW5lZChfX2xp
bnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmln
aW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNv
bXBhdGliaWxpdHkuIAorI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3Qg
UmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90Cit7CisgICAgICAgdWludDE2X3QgdW5XaWR0aCwgdW5I
ZWlnaHQ7IC8vIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHRleHR1cmUgbWFwIGluIHBpeGVscwor
ICAgICAgIGNvbnN0IHVpbnQ4X3QgKnJ1YlRleHR1cmVNYXBEYXRhOyAgICAgICAvLyBNYXAgdGV4
dHVyZSBkYXRhLiBBbGwgdGV4dHVyZXMgYXJlIFJHQkEgd2l0aCA4IGJpdHMgcGVyIGNoYW5uZWwg
cGVyIHBpeGVsLiBEYXRhIHNpemUgaXMgd2lkdGggKiBoZWlnaHQgKiA0dWIKK307CisjaWYgZGVm
aW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyNwcmFnbWEgcGFjayggcG9w
ICkKKyNlbmRpZgorCisvKiogIFNlc3Npb24gdW5pcXVlIHRleHR1cmUgaWRlbnRpZmllci4gUmVu
ZGVybW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBzYW1lIHRleHR1cmUgd2lsbCBoYXZlIHRoZSBzYW1l
IGlkLgorSURzIDwwIGRlbm90ZSB0aGUgdGV4dHVyZSBpcyBub3QgcHJlc2VudCAqLworCit0eXBl
ZGVmIGludDMyX3QgVGV4dHVyZUlEX3Q7CisKK2NvbnN0IFRleHR1cmVJRF90IElOVkFMSURfVEVY
VFVSRV9JRCA9IC0xOworCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBM
RV9fKSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tl
ZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNvbXBhdGliaWxpdHkuIAorI3ByYWdtYSBw
YWNrKCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3QgUmVuZGVyTW9kZWxfdAoreworICAgICAg
IGNvbnN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICpyVmVydGV4RGF0YTsgICAgICAgLy8gVmVydGV4
IGRhdGEgZm9yIHRoZSBtZXNoCisgICAgICAgdWludDMyX3QgdW5WZXJ0ZXhDb3VudDsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdmVydGljZXMg
aW4gdGhlIHZlcnRleCBkYXRhCisgICAgICAgY29uc3QgdWludDE2X3QgKnJJbmRleERhdGE7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2VzIGludG8gdGhlIHZlcnRl
eCBkYXRhIGZvciBlYWNoIHRyaWFuZ2xlCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHRyaWFuZ2xl
cyBpbiB0aGUgbWVzaC4gSW5kZXggY291bnQgaXMgMyAqIFRyaWFuZ2xlQ291bnQKKyAgICAgICBU
ZXh0dXJlSURfdCBkaWZmdXNlVGV4dHVyZUlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBTZXNzaW9uIHVuaXF1ZSB0ZXh0dXJlIGlkZW50aWZpZXIuIFJlbmRlcm1vZGVscyB3aGljaCBz
aGFyZSB0aGUgc2FtZSB0ZXh0dXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSBpZC4gPDAgPT0gdGV4dHVy
ZSBub3QgcHJlc2VudAorfTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQ
UExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKworc3RydWN0IFJlbmRlck1v
ZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29sIGJTY3JvbGxXaGVlbFZp
c2libGU7IC8vIGlzIHRoaXMgY29udHJvbGxlciBjdXJyZW50bHkgc2V0IHRvIGJlIGluIGEgc2Ny
b2xsIHdoZWVsIG1vZGUKK307CisKKyNwcmFnbWEgcGFjayggcG9wICkKKworY2xhc3MgSVZSUmVu
ZGVyTW9kZWxzCit7CitwdWJsaWM6CisKKyAgICAgICAvKiogTG9hZHMgYW5kIHJldHVybnMgYSBy
ZW5kZXIgbW9kZWwgZm9yIHVzZSBpbiB0aGUgYXBwbGljYXRpb24uIHBjaFJlbmRlck1vZGVsTmFt
ZSBzaG91bGQgYmUgYSByZW5kZXIgbW9kZWwgbmFtZQorICAgICAgICogZnJvbSB0aGUgUHJvcF9S
ZW5kZXJNb2RlbE5hbWVfU3RyaW5nIHByb3BlcnR5IG9yIGFuIGFic29sdXRlIHBhdGggbmFtZSB0
byBhIHJlbmRlciBtb2RlbCBvbiBkaXNrLiAKKyAgICAgICAqCisgICAgICAgKiBUaGUgcmVzdWx0
aW5nIHJlbmRlciBtb2RlbCBpcyB2YWxpZCB1bnRpbCBWUl9TaHV0ZG93bigpIGlzIGNhbGxlZCBv
ciB1bnRpbCBGcmVlUmVuZGVyTW9kZWwoKSBpcyBjYWxsZWQuIFdoZW4gdGhlIAorICAgICAgICog
YXBwbGljYXRpb24gaXMgZmluaXNoZWQgd2l0aCB0aGUgcmVuZGVyIG1vZGVsIGl0IHNob3VsZCBj
YWxsIEZyZWVSZW5kZXJNb2RlbCgpIHRvIGZyZWUgdGhlIG1lbW9yeSBhc3NvY2lhdGVkCisgICAg
ICAgKiB3aXRoIHRoZSBtb2RlbC4KKyAgICAgICAqCisgICAgICAgKiBUaGUgbWV0aG9kIHJldHVy
bnMgVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgd2hpbGUgdGhlIHJlbmRlciBtb2RlbCBpcyBz
dGlsbCBiZWluZyBsb2FkZWQuCisgICAgICAgKiBUaGUgbWV0aG9kIHJldHVybnMgVlJSZW5kZXJN
b2RlbEVycm9yX05vbmUgb25jZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2Ugd2lsbCBy
ZXR1cm4gYW4gZXJyb3IuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExv
YWRSZW5kZXJNb2RlbF9Bc3luYyggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBSZW5k
ZXJNb2RlbF90ICoqcHBSZW5kZXJNb2RlbCApID0gMDsKKworICAgICAgIC8qKiBGcmVlcyBhIHBy
ZXZpb3VzbHkgcmV0dXJuZWQgcmVuZGVyIG1vZGVsCisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8g
Y2FsbCB0aGlzIG9uIGEgbnVsbCBwdHIuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVSZW5k
ZXJNb2RlbCggUmVuZGVyTW9kZWxfdCAqcFJlbmRlck1vZGVsICkgPSAwOworCisgICAgICAgLyoq
IExvYWRzIGFuZCByZXR1cm5zIGEgdGV4dHVyZSBmb3IgdXNlIGluIHRoZSBhcHBsaWNhdGlvbi4g
Ki8KKyAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFRleHR1cmVfQXN5bmMo
IFRleHR1cmVJRF90IHRleHR1cmVJZCwgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICoqcHBUZXh0
dXJlICkgPSAwOworCisgICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNseSByZXR1cm5lZCB0ZXh0
dXJlCisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG9uIGEgbnVsbCBwdHIuICov
CisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0dXJlKCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFw
X3QgKnBUZXh0dXJlICkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMgYSBEM0QxMSB0ZXh0dXJl
IGFuZCBsb2FkcyBkYXRhIGludG8gaXQuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2Rl
bEVycm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9p
ZCAqcEQzRDExRGV2aWNlLCB2b2lkICoqcHBEM0QxMVRleHR1cmUyRCApID0gMDsKKworICAgICAg
IC8qKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29weSB0aGUgYml0cyBpbnRvIGFuIGV4aXN0aW5nIHRl
eHR1cmUuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4
dHVyZUQzRDExX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQgKnBEc3RUZXh0dXJl
ICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGZyZWUgdGV4dHVyZXMgY3JlYXRlZCB3
aXRoIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMgaW5zdGVhZCBvZiBjYWxsaW5nIFJlbGVhc2Ugb24g
dGhlbS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmVEM0QxMSggdm9pZCAqcEQz
RDExVGV4dHVyZTJEICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGdldCB0aGUgbmFt
ZXMgb2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICBJbmRleCBkb2VzIG5vdCBjb3JyZWxhdGUg
dG8gYSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0CisgICAgICAgKiBpcyBvbmx5IHVzZWQgZm9y
IGl0ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgcmVuZGVyIG1vZGVscy4gIElmIHRoZSBpbmRl
eCBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4KKyAgICAgICAq
IE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciByZXF1aXJl
ZCBmb3IgdGhlIG5hbWUuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2Rl
bE5hbWUoIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwgVlJfT1VUX1NUUklORygpIGNoYXIg
KnBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2RlbE5hbWVMZW4gKSA9IDA7
CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSByZW5kZXIgbW9k
ZWxzLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxDb3VudCgpID0g
MDsKKworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBjb21wb25lbnRzIG9mIHRo
ZSBzcGVjaWZpZWQgcmVuZGVyIG1vZGVsLgorICAgICAgICogIENvbXBvbmVudHMgYXJlIHVzZWZ1
bCB3aGVuIGNsaWVudCBhcHBsaWNhdGlvbiB3aXNoIHRvIGRyYXcsIGxhYmVsLCBvciBvdGhlcndp
c2UgaW50ZXJhY3Qgd2l0aCBjb21wb25lbnRzIG9mIHRyYWNrZWQgb2JqZWN0cy4KKyAgICAgICAq
ICBFeGFtcGxlcyBjb250cm9sbGVyIGNvbXBvbmVudHM6CisgICAgICAgKiAgIHJlbmRlcmFibGUg
dGhpbmdzIHN1Y2ggYXMgdHJpZ2dlcnMsIGJ1dHRvbnMKKyAgICAgICAqICAgbm9uLXJlbmRlcmFi
bGUgdGhpbmdzIHdoaWNoIGluY2x1ZGUgY29vcmRpbmF0ZSBzeXN0ZW1zIHN1Y2ggYXMgJ3RpcCcs
ICdiYXNlJywgYSBuZXV0cmFsIGNvbnRyb2xsZXIgYWdub3N0aWMgaGFuZC1wb3NlCisgICAgICAg
KiAgIElmIGFsbCBjb250cm9sbGVyIGNvbXBvbmVudHMgYXJlIGVudW1lcmF0ZWQgYW5kIHJlbmRl
cmVkLCBpdCB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gZHJhd2luZyB0aGUgdHJhZGl0aW9uYWwgcmVu
ZGVyIG1vZGVsCisgICAgICAgKiAgIFJldHVybnMgMCBpZiBjb21wb25lbnRzIG5vdCBzdXBwb3J0
ZWQsID4wIG90aGVyd2lzZSAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50
Q291bnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSApID0gMDsKKworICAgICAgIC8q
KiBVc2UgdGhpcyB0byBnZXQgdGhlIG5hbWVzIG9mIGF2YWlsYWJsZSBjb21wb25lbnRzLiAgSW5k
ZXggZG9lcyBub3QgY29ycmVsYXRlIHRvIGEgdHJhY2tlZCBkZXZpY2UgaW5kZXgsIGJ1dAorICAg
ICAgICogaXMgb25seSB1c2VkIGZvciBpdGVyYXRpbmcgb3ZlciBhbGwgYXZhaWxhYmxlIGNvbXBv
bmVudHMuICBJZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwg
cmV0dXJuIDAuCisgICAgICAgKiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9m
IHRoZSBidWZmZXIgcmVxdWlyZWQgZm9yIHRoZSBuYW1lLiAqLworICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0Q29tcG9uZW50TmFtZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCB1
aW50MzJfdCB1bkNvbXBvbmVudEluZGV4LCBWUl9PVVRfU1RSSU5HKCApIGNoYXIgKnBjaENvbXBv
bmVudE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbiApID0gMDsKKworICAgICAgIC8q
KiBHZXQgdGhlIGJ1dHRvbiBtYXNrIGZvciBhbGwgYnV0dG9ucyBhc3NvY2lhdGVkIHdpdGggdGhp
cyBjb21wb25lbnQKKyAgICAgICAqICAgSWYgbm8gYnV0dG9ucyAob3IgYXhlcykgYXJlIGFzc29j
aWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVudCwgcmV0dXJuIDAKKyAgICAgICAqICAgTm90ZTogbXVs
dGlwbGUgY29tcG9uZW50cyBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIGJ1dHRvbi4g
RXg6IHR3byBncmlwIGJ1dHRvbnMgb24gYSBzaW5nbGUgY29udHJvbGxlci4KKyAgICAgICAqICAg
Tm90ZTogQSBzaW5nbGUgY29tcG9uZW50IG1heSBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUg
YnV0dG9ucy4gRXg6IEEgdHJhY2twYWQgd2hpY2ggYWxzbyBwcm92aWRlcyAiRC1wYWQiIGZ1bmN0
aW9uYWxpdHkgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldENvbXBvbmVudEJ1dHRvbk1h
c2soIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3QgY2hhciAqcGNoQ29tcG9u
ZW50TmFtZSApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBnZXQgdGhlIHJlbmRlciBt
b2RlbCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIHJlbmRlcm1vZGUvY29tcG9uZW50IGNvbWJpbmF0
aW9uLCB0byBiZSBwYXNzZWQgdG8gTG9hZFJlbmRlck1vZGVsLgorICAgICAgICogSWYgdGhlIGNv
bXBvbmVudCBuYW1lIGlzIG91dCBvZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAw
LgorICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdl
dENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1l
LCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lLCBWUl9PVVRfU1RSSU5HKCApIGNoYXIgKnBj
aENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRSZW5kZXJNb2Rl
bE5hbWVMZW4gKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8gcXVlcnkgaW5mb3JtYXRp
b24gYWJvdXQgdGhlIGNvbXBvbmVudCwgYXMgYSBmdW5jdGlvbiBvZiB0aGUgY29udHJvbGxlciBz
dGF0ZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZHluYW1pYyBjb250cm9sbGVyIGNvbXBvbmVu
dHMgKGV4OiB0cmlnZ2VyKSB2YWx1ZXMgd2lsbCByZWZsZWN0IGNvbXBvbmVudCBtb3Rpb25zCisg
ICAgICAgKiBGb3Igc3RhdGljIGNvbXBvbmVudHMgdGhpcyB3aWxsIHJldHVybiBhIGNvbnNpc3Rl
bnQgdmFsdWUgaW5kZXBlbmRlbnQgb2YgdGhlIFZSQ29udHJvbGxlclN0YXRlX3QKKyAgICAgICAq
CisgICAgICAgKiBJZiB0aGUgcGNoUmVuZGVyTW9kZWxOYW1lIG9yIHBjaENvbXBvbmVudE5hbWUg
aXMgaW52YWxpZCwgdGhpcyB3aWxsIHJldHVybiBmYWxzZSAoYW5kIHRyYW5zZm9ybXMgd2lsbCBi
ZSBzZXQgdG8gaWRlbnRpdHkpLgorICAgICAgICogT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZQorICAg
ICAgICogTm90ZTogRm9yIGR5bmFtaWMgb2JqZWN0cywgdmlzaWJpbGl0eSBtYXkgYmUgZHluYW1p
Yy4gKEkuZS4sIHRydWUvZmFsc2Ugd2lsbCBiZSByZXR1cm5lZCBiYXNlZCBvbiBjb250cm9sbGVy
IHN0YXRlIGFuZCBjb250cm9sbGVyIG1vZGUgc3RhdGUgKSAqLworICAgICAgIHZpcnR1YWwgYm9v
bCBHZXRDb21wb25lbnRTdGF0ZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25z
dCBjaGFyICpwY2hDb21wb25lbnROYW1lLCBjb25zdCB2cjo6VlJDb250cm9sbGVyU3RhdGVfdCAq
cENvbnRyb2xsZXJTdGF0ZSwgY29uc3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVf
dCAqcFN0YXRlLCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICpwQ29tcG9uZW50U3RhdGUg
KSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSByZW5kZXIgbW9kZWwgaGFz
IGEgY29tcG9uZW50IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lICovCisgICAgICAgdmlydHVhbCBi
b29sIFJlbmRlck1vZGVsSGFzQ29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5h
bWUsIGNvbnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0
dXJucyB0aGUgVVJMIG9mIHRoZSB0aHVtYm5haWwgaW1hZ2UgZm9yIHRoaXMgcmVuZGVybW9kZWwg
Ki8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKCBj
b25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hU
aHVtYm5haWxVUkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCB2cjo6RVZSUmVuZGVyTW9k
ZWxFcnJvciAqcGVFcnJvciApID0gMDsKKworICAgICAgIC8qKiBQcm92aWRlcyBhIHJlbmRlciBt
b2RlbCBwYXRoIHRoYXQgd2lsbCBsb2FkIHRoZSB1bnNraW5uZWQgbW9kZWwgaWYgdGhlIG1vZGVs
IG5hbWUgcHJvdmlkZWQgaGFzIGJlZW4gcmVwbGFjZSBieSB0aGUgdXNlci4gSWYgdGhlIG1vZGVs
CisgICAgICAgKiBoYXNuJ3QgYmVlbiByZXBsYWNlZCB0aGUgcGF0aCB2YWx1ZSB3aWxsIHN0aWxs
IGJlIGEgdmFsaWQgcGF0aCB0byBsb2FkIHRoZSBtb2RlbC4gUGFzcyB0aGlzIHRvIExvYWRSZW5k
ZXJNb2RlbF9Bc3luYywgZXRjLiB0byBsb2FkIHRoZQorICAgICAgICogbW9kZWwuICovCisgICAg
ICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCggY29uc3QgY2hh
ciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoT3JpZ2luYWxQ
YXRoLCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgdnI6OkVWUlJlbmRlck1vZGVsRXJyb3Ig
KnBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYSByZW5k
ZXIgbW9kZWwgZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFJlbmRlck1v
ZGVsRXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yICkgPSAw
OworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJSZW5kZXJNb2RlbHNfVmVyc2lv
biA9ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKworfQorCisKKy8vIGl2cmV4dGVuZGVkZGlzcGxh
eS5oCituYW1lc3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBOT1RFOiBVc2Ugb2YgdGhpcyBpbnRl
cmZhY2UgaXMgbm90IHJlY29tbWVuZGVkIGluIHByb2R1Y3Rpb24gYXBwbGljYXRpb25zLiBJdCB3
aWxsIG5vdCB3b3JrIGZvciBkaXNwbGF5cyB3aGljaCB1c2UKKyAgICAgICAqIGRpcmVjdC10by1k
aXNwbGF5IG1vZGUuIENyZWF0aW5nIG91ciBvd24gd2luZG93IGlzIGFsc28gaW5jb21wYXRpYmxl
IHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgYW5kIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB0aGUgY29t
cG9zaXRvciBpcyBydW5uaW5nLiAqLworICAgICAgIGNsYXNzIElWUkV4dGVuZGVkRGlzcGxheQor
ICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLyoqIFNpemUgYW5kIHBv
c2l0aW9uIHRoYXQgdGhlIHdpbmRvdyBuZWVkcyB0byBiZSBvbiB0aGUgVlIgZGlzcGxheS4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFdpbmRvd0JvdW5kcyggaW50MzJfdCAqcG5Y
LCBpbnQzMl90ICpwblksIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHZpZXdwb3J0IGluIHRoZSBmcmFtZSBi
dWZmZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9mIHRoZSBkaXN0b3J0aW9uIGludG8gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIEdldEV5ZU91dHB1dFZpZXdwb3J0KCBFVlJFeWUgZUV5ZSwg
dWludDMyX3QgKnBuWCwgdWludDMyX3QgKnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90
ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogW0QzRDEwLzExIE9ubHldCisg
ICAgICAgICAgICAgICogUmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCBhbmQgb3V0cHV0IGluZGV4
IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBFbnVtQWRhcHRlcnMgYW5kIEVudW1PdXRw
dXRzCisgICAgICAgICAgICAgICogdG8gY3JlYXRlIHRoZSBkZXZpY2UgYW5kIHN3YXAgY2hhaW4g
aW4gRFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJzIGJvdGggaW5kaWNlcyB3aWxsIGJl
IHNldCB0byAtMS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IEdldERYR0lPdXRwdXRJbmZvKCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCwgaW50MzJfdCAqcG5B
ZGFwdGVyT3V0cHV0SW5kZXggKSA9IDA7CisKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRl
ZERpc3BsYXlfMDAxIjsKKworfQorCisKKy8vIGl2cnRyYWNrZWRjYW1lcmEuaAorbmFtZXNwYWNl
IHZyCit7CisKK2NsYXNzIElWUlRyYWNrZWRDYW1lcmEKK3sKK3B1YmxpYzoKKyAgICAgICAvKiog
UmV0dXJucyBhIHN0cmluZyBmb3IgYW4gZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIgKkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9y
IGVDYW1lcmFFcnJvciApID0gMDsKKworICAgICAgIC8qKiBGb3IgY29udmVuaWVuY2UsIHNhbWUg
YXMgdHJhY2tlZCBwcm9wZXJ0eSByZXF1ZXN0IFByb3BfSGFzQ2FtZXJhX0Jvb2wgKi8KKyAgICAg
ICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJhKCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICpwSGFzQ2FtZXJhICkgPSAwOworCisg
ICAgICAgLyoqIEdldHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICovCisgICAgICAgdmlydHVh
bCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSggdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5
cGUgZUZyYW1lVHlwZSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCwgdWlu
dDMyX3QgKnBuRnJhbWVCdWZmZXJTaXplICkgPSAwOworCisgICAgICAgdmlydHVhbCB2cjo6RVZS
VHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3MoIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFt
ZVR5cGUsIHZyOjpIbWRWZWN0b3IyX3QgKnBGb2NhbExlbmd0aCwgdnI6OkhtZFZlY3RvcjJfdCAq
cENlbnRlciApID0gMDsKKworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJv
ciBHZXRDYW1lcmFQcm9qZWN0aW9uKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUlu
ZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpO
ZWFyLCBmbG9hdCBmbFpGYXIsIHZyOjpIbWRNYXRyaXg0NF90ICpwUHJvamVjdGlvbiApID0gMDsK
KworICAgICAgIC8qKiBBY3F1aXJpbmcgc3RyZWFtaW5nIHNlcnZpY2UgcGVybWl0cyB2aWRlbyBz
dHJlYW1pbmcgZm9yIHRoZSBjYWxsZXIuIFJlbGVhc2luZyBoaW50cyB0aGUgc3lzdGVtIHRoYXQg
dmlkZW8gc2VydmljZXMgZG8gbm90IG5lZWQgdG8gYmUgbWFpbnRhaW5lZCBmb3IgdGhpcyBjbGll
bnQuCisgICAgICAgKiBJZiB0aGUgY2FtZXJhIGhhcyBub3QgYWxyZWFkeSBiZWVuIGFjdGl2YXRl
ZCwgYSBvbmUgdGltZSBzcGluIHVwIG1heSBpbmN1ciBzb21lIGF1dG8gZXhwb3N1cmUgYXMgd2Vs
bCBhcyBpbml0aWFsIHN0cmVhbWluZyBmcmFtZSBkZWxheXMuCisgICAgICAgKiBUaGUgY2FtZXJh
IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgZ2xvYmFsIHJlc291cmNlIGFjY2Vzc2libGUgZm9yIHNo
YXJlZCBjb25zdW1wdGlvbiBidXQgbm90IGV4Y2x1c2l2ZSB0byBhbnkgY2FsbGVyLgorICAgICAg
ICogVGhlIGNhbWVyYSBtYXkgZ28gaW5hY3RpdmUgZHVlIHRvIGxhY2sgb2YgYWN0aXZlIGNvbnN1
bWVycyBvciBoZWFkc2V0IGlkbGVuZXNzLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBBY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICpwSGFu
ZGxlICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBSZWxl
YXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFj
a2VkQ2FtZXJhICkgPSAwOworCisgICAgICAgLyoqIENvcGllcyB0aGUgaW1hZ2UgZnJhbWUgaW50
byBhIGNhbGxlcidzIHByb3ZpZGVkIGJ1ZmZlci4gVGhlIGltYWdlIGRhdGEgaXMgY3VycmVudGx5
IHByb3ZpZGVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIgcGl4ZWwuCisgICAgICAgKiBBIGNh
bGxlciBjYW4gcHJvdmlkZSBudWxsIGZvciB0aGUgZnJhbWVidWZmZXIgb3IgZnJhbWVoZWFkZXIg
aWYgbm90IGRlc2lyZWQuIFJlcXVlc3RpbmcgdGhlIGZyYW1lIGhlYWRlciBmaXJzdCwgZm9sbG93
ZWQgYnkgdGhlIGZyYW1lIGJ1ZmZlciBhbGxvd3MKKyAgICAgICAqIHRoZSBjYWxsZXIgdG8gZGV0
ZXJtaW5lIGlmIHRoZSBmcmFtZSBhcyBhZHZhbmNlZCBwZXIgdGhlIGZyYW1lIGhlYWRlciBzZXF1
ZW5jZS4gCisgICAgICAgKiBJZiB0aGVyZSBpcyBubyBmcmFtZSBhdmFpbGFibGUgeWV0LCBkdWUg
dG8gaW5pdGlhbCBjYW1lcmEgc3BpbnVwIG9yIHJlLWFjdGl2YXRpb24sIHRoZSBlcnJvciB3aWxs
IGJlIFZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUuCisgICAgICAgKiBJZGVh
bGx5IGEgY2FsbGVyIHNob3VsZCBiZSBwb2xsaW5nIGF0IH4xNm1zIGludGVydmFscyAqLworICAg
ICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbUZyYW1l
QnVmZmVyKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpwRnJhbWVCdWZmZXIsIHVp
bnQzMl90IG5GcmFtZUJ1ZmZlclNpemUsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0gMDsKKworICAg
ICAgIC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1lLiAqLworICAgICAgIHZpcnR1YWwg
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKCB2cjo6
VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSBlRnJhbWVUeXBlLCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKnBUZXh0dXJlQm91bmRz
LCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOyAKKworICAgICAg
IC8qKiBBY2Nlc3MgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSBmb3IgdGhlIHNwZWNpZmllZCB0cmFj
a2VkIGNhbWVyYSBzdHJlYW0uCisgICAgICAgKiBUaGUgY2FtZXJhIGZyYW1lIHR5cGUgVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIGlzIG5vdCBzdXBwb3J0ZWQgZGlyZWN0bHkg
YXMgYSBzaGFyZWQgdGV4dHVyZS4gSXQgaXMgYW4gaW50ZXJpb3Igc3VicmVnaW9uIG9mIHRoZSBz
aGFyZWQgdGV4dHVyZSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVk
LgorICAgICAgICogSW5zdGVhZCwgdXNlIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUoKSB3aXRo
IFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCB0byBkZXRlcm1pbmUgdGhlIHBy
b3BlciBpbnRlcmlvciBzdWJyZWdpb24gYm91bmRzIGFsb25nIHdpdGggR2V0VmlkZW9TdHJlYW1U
ZXh0dXJlRDNEMTEoKSB3aXRoCisgICAgICAgKiBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4
aW11bVVuZGlzdG9ydGVkIHRvIHByb3ZpZGUgdGhlIHRleHR1cmUuIFRoZSBWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIHdpbGwgeWllbGQgYW4gaW1hZ2Ugd2hlcmUg
dGhlIGludmFsaWQgcmVnaW9ucyBhcmUgZGVjb2RlZAorICAgICAgICogYnkgdGhlIGFscGhhIGNo
YW5uZWwgaGF2aW5nIGEgemVybyBjb21wb25lbnQuIFRoZSB2YWxpZCByZWdpb25zIGFsbCBoYXZl
IGEgbm9uLXplcm8gYWxwaGEgY29tcG9uZW50LiBUaGUgc3VicmVnaW9uIGFzIGRlc2NyaWJlZCBi
eSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQgCisgICAgICAgKiBndWFyYW50
ZWVzIGEgcmVjdGFuZ2xlIHdoZXJlIGFsbCBwaXhlbHMgYXJlIHZhbGlkLiAqLworICAgICAgIHZp
cnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MSggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRyYWNr
ZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqcEQzRDExRGV2aWNlT3JSZXNvdXJj
ZSwgdm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIHZyOjpDYW1lcmFWaWRlb1N0cmVh
bUZyYW1lSGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSAp
ID0gMDsKKworICAgICAgIC8qKiBBY2Nlc3MgYSBzaGFyZWQgR0wgdGV4dHVyZSBmb3IgdGhlIHNw
ZWNpZmllZCB0cmFja2VkIGNhbWVyYSBzdHJlYW0gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0woIHZyOjpUcmFja2VkQ2Ft
ZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIHZyOjpnbFVJbnRfdCAqcGdsVGV4dHVyZUlkLCB2cjo6Q2FtZXJhVmlkZW9T
dHJlYW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNp
emUgKSA9IDA7CisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVh
c2VWaWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tl
ZENhbWVyYSwgdnI6OmdsVUludF90IGdsVGV4dHVyZUlkICkgPSAwOworfTsKKworc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24gPSAiSVZSVHJhY2tlZENh
bWVyYV8wMDMiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIGl2cnNjcmVlbnNob3RzLmgK
K25hbWVzcGFjZSB2cgoreworCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdpdGggdGhlIFZS
IGNvbXBvc2l0b3IgKi8KK2VudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgVlJTY3Jl
ZW5zaG90RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90RXJyb3JfUmVxdWVzdEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVy
cm9yX0luY29tcGF0aWJsZVZlcnNpb24gICAgICAgICAgICAgICAgICAgICA9IDEwMCwKKyAgICAg
ICBWUlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1Nt
YWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSU2NyZWVuc2hv
dEVycm9yX1NjcmVlbnNob3RBbHJlYWR5SW5Qcm9ncmVzcyAgICAgICA9IDEwOCwKK307CisKKy8q
KiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGdlbmVyYXRlIHNjcmVlbnNob3RzICovCitjbGFz
cyBJVlJTY3JlZW5zaG90cworeworcHVibGljOgorICAgICAgIC8qKiBSZXF1ZXN0IGEgc2NyZWVu
c2hvdCBvZiB0aGUgcmVxdWVzdGVkIHR5cGUuCisgICAgICAgICogIEEgcmVxdWVzdCBvZiB0aGUg
VlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gdHlwZSB3aWxsIGFsd2F5cworICAgICAgICAqICB3b3Jr
LiBPdGhlciB0eXBlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdW5kZXJseWluZyBhcHBsaWNhdGlvbgor
ICAgICAgICAqICBzdXBwb3J0LgorICAgICAgICAqICBUaGUgZmlyc3QgZmlsZSBuYW1lIGlzIGZv
ciB0aGUgcHJldmlldyBpbWFnZSBhbmQgc2hvdWxkIGJlIGEKKyAgICAgICAgKiAgcmVndWxhciBz
Y3JlZW5zaG90IChpZGVhbGx5IGZyb20gdGhlIGxlZnQgZXllKS4gVGhlIHNlY29uZAorICAgICAg
ICAqICBpcyB0aGUgVlIgc2NyZWVuc2hvdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQuIFRoZXkgc2hv
dWxkIGJlCisgICAgICAgICogIGluIHRoZSBzYW1lIGFzcGVjdCByYXRpby4gIEZvcm1hdHMgcGVy
IHR5cGU6CisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfTW9ubzogdGhlIFZSIGZpbGVuYW1l
IGlzIGlnbm9yZWQgKGNhbiBiZQorICAgICAgICAqICBudWxscHRyKSwgdGhpcyBpcyBhIG5vcm1h
bCBmbGF0IHNpbmdsZSBzaG90LgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbzog
IFRoZSBWUiBpbWFnZSBzaG91bGQgYmUgYQorICAgICAgICAqICBzaWRlLWJ5LXNpZGUgd2l0aCB0
aGUgbGVmdCBleWUgaW1hZ2Ugb24gdGhlIGxlZnQuCisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcDogVGhlIFZSIGltYWdlIHNob3VsZCBiZSBzaXggc3F1YXJlCisgICAgICAgICog
IGltYWdlcyBjb21wb3NpdGVkIGhvcml6b250YWxseS4KKyAgICAgICAgKiAgVlJTY3JlZW5zaG90
VHlwZV9TdGVyZW9QYW5vcmFtYTogYWJvdmUvYmVsb3cgd2l0aCBsZWZ0IGV5ZQorICAgICAgICAq
ICBwYW5vcmFtYSBiZWluZyB0aGUgYWJvdmUgaW1hZ2UuICBJbWFnZSBpcyB0eXBpY2FsbHkgc3F1
YXJlCisgICAgICAgICogIHdpdGggdGhlIHBhbm9yYW1hIGJlaW5nIDJ4IGhvcml6b250YWwuCisg
ICAgICAgICogIAorICAgICAgICAqICBOb3RlIHRoYXQgdGhlIFZSIGRhc2hib2FyZCB3aWxsIGNh
bGwgdGhpcyBmdW5jdGlvbiB3aGVuCisgICAgICAgICogIHRoZSB1c2VyIHByZXNzZXMgdGhlIHNj
cmVlbnNob3QgYmluZGluZyAoY3VycmVudGx5IFN5c3RlbQorICAgICAgICAqICBCdXR0b24gKyBU
cmlnZ2VyKS4gIElmIFN0ZWFtIGlzIHJ1bm5pbmcsIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAq
ICBmaWxlIG5hbWVzIHdpbGwgYmUgaW4gJVRFTVAlIGFuZCB3aWxsIGJlIGNvcGllZCBpbnRvCisg
ICAgICAgICogIFN0ZWFtJ3Mgc2NyZWVuc2hvdCBsaWJyYXJ5IGZvciB0aGUgcnVubmluZyBhcHBs
aWNhdGlvbgorICAgICAgICAqICBvbmNlIFN1Ym1pdFNjcmVlbnNob3QoKSBpcyBjYWxsZWQuCisg
ICAgICAgICogIElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGUgcGF0aHMgd2lsbCBiZSBpbiB0
aGUgdXNlcidzCisgICAgICAgICogIGRvY3VtZW50cyBmb2xkZXIgdW5kZXIgRG9jdW1lbnRzXFN0
ZWFtVlJcU2NyZWVuc2hvdHMuCisgICAgICAgICogIE90aGVyIFZSIGFwcGxpY2F0aW9ucyBjYW4g
Y2FsbCB0aGlzIHRvIGluaXRpYXRlIGEKKyAgICAgICAgKiAgc2NyZWVuc2hvdCBvdXRzaWRlIG9m
IHVzZXIgY29udHJvbC4KKyAgICAgICAgKiAgVGhlIGRlc3RpbmF0aW9uIGZpbGUgbmFtZXMgZG8g
bm90IG5lZWQgYW4gZXh0ZW5zaW9uLAorICAgICAgICAqICB3aWxsIGJlIHJlcGxhY2VkIHdpdGgg
dGhlIGNvcnJlY3Qgb25lIGZvciB0aGUgZm9ybWF0CisgICAgICAgICogIHdoaWNoIGlzIGN1cnJl
bnRseSAucG5nLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBSZXF1
ZXN0U2NyZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RIYW5k
bGUsIHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBjaGFyICpwY2hQcmV2aWV3Rmls
ZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFZSRmlsZW5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogQ2Fs
bGVkIGJ5IHRoZSBydW5uaW5nIFZSIGFwcGxpY2F0aW9uIHRvIGluZGljYXRlIHRoYXQgaXQKKyAg
ICAgICAgKiAgd2lzaGVzIHRvIGJlIGluIGNoYXJnZSBvZiBzY3JlZW5zaG90cy4gIElmIHRoZQor
ICAgICAgICAqICBhcHBsaWNhdGlvbiBkb2VzIG5vdCBjYWxsIHRoaXMsIHRoZSBDb21wb3NpdG9y
IHdpbGwgb25seQorICAgICAgICAqICBzdXBwb3J0IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvIHNj
cmVlbnNob3RzIHRoYXQgd2lsbCBiZQorICAgICAgICAqICBjYXB0dXJlZCB3aXRob3V0IG5vdGlm
aWNhdGlvbiB0byB0aGUgcnVubmluZyBhcHAuCisgICAgICAgICogIE9uY2UgaG9va2VkIHlvdXIg
YXBwbGljYXRpb24gd2lsbCByZWNlaXZlIGEKKyAgICAgICAgKiAgVlJFdmVudF9SZXF1ZXN0U2Ny
ZWVuc2hvdCBldmVudCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlCisgICAgICAgICogIGJ1dHRv
bnMgdG8gdGFrZSBhIHNjcmVlbnNob3QuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVu
c2hvdEVycm9yIEhvb2tTY3JlZW5zaG90KCBWUl9BUlJBWV9DT1VOVCggbnVtVHlwZXMgKSBjb25z
dCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgKnBTdXBwb3J0ZWRUeXBlcywgaW50IG51bVR5cGVzICkg
PSAwOworCisgICAgICAgLyoqIFdoZW4geW91ciBhcHBsaWNhdGlvbiByZWNlaXZlcyBhCisgICAg
ICAgICogIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgZXZlbnQsIGNhbGwgdGhlc2UgZnVuY3Rp
b25zIHRvIGdldAorICAgICAgICAqICB0aGUgZGV0YWlscyBvZiB0aGUgc2NyZWVuc2hvdCByZXF1
ZXN0LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RUeXBlIEdldFNjcmVlbnNo
b3RQcm9wZXJ0eVR5cGUoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwg
dnI6OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOworCisgICAgICAgLyoqIEdldCB0
aGUgZmlsZW5hbWUgZm9yIHRoZSBwcmV2aWV3IG9yIHZyIGltYWdlIChzZWUKKyAgICAgICAgKiAg
dnI6OkVTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMpLiAgVGhlIHJldHVybiB2YWx1ZSBpcwor
ICAgICAgICAqICB0aGUgc2l6ZSBvZiB0aGUgc3RyaW5nLiAgICovCisgICAgICAgIHZpcnR1YWwg
dWludDMyX3QgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoIHZyOjpTY3JlZW5zaG90SGFu
ZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
cyBmaWxlbmFtZVR5cGUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hGaWxlbmFtZSwgdWludDMy
X3QgY2NoRmlsZW5hbWUsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKnBFcnJvciApID0gMDsKKwor
ICAgICAgIC8qKiBDYWxsIHRoaXMgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHRha2luZyB0aGUgc2Ny
ZWVuIHNob3QKKyAgICAgICAgKiAgd2lsbCB0YWtlIG1vcmUgdGhhbiBhIGZldyBtcyBwcm9jZXNz
aW5nLiBUaGlzIHdpbGwgcmVzdWx0CisgICAgICAgICogIGluIGFuIG92ZXJsYXkgYmVpbmcgcHJl
c2VudGVkIHRoYXQgc2hvd3MgYSBjb21wbGV0aW9uCisgICAgICAgICogIGJhci4gKi8KKyAgICAg
ICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNz
KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIGZsb2F0IGZsUHJvZ3Jl
c3MgKSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgdGhlIGNvbXBvc2l0b3IgdG8gdGFrZSBhbiBp
bnRlcm5hbCBzY3JlZW5zaG90IG9mCisgICAgICAgICogIHR5cGUgVlJTY3JlZW5zaG90VHlwZV9T
dGVyZW8uIEl0IHdpbGwgdGFrZSB0aGUgY3VycmVudAorICAgICAgICAqICBzdWJtaXR0ZWQgc2Nl
bmUgdGV4dHVyZXMgb2YgdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gYW5kCisgICAgICAgICogIHdy
aXRlIHRoZW0gaW50byB0aGUgcHJldmlldyBpbWFnZSBhbmQgYSBzaWRlLWJ5LXNpZGUgZmlsZQor
ICAgICAgICAqICBmb3IgdGhlIFZSIGltYWdlLgorICAgICAgICAqICBUaGlzIGlzIHNpbWlsYXIg
dG8gcmVxdWVzdCBzY3JlZW5zaG90LCBidXQgZG9lc24ndCBldmVyCisgICAgICAgICogIHRhbGsg
dG8gdGhlIGFwcGxpY2F0aW9uLCBqdXN0IHRha2VzIHRoZSBzaG90IGFuZCBzdWJtaXRzLiAqLwor
ICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBUYWtlU3RlcmVvU2NyZWVuc2hv
dCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RIYW5kbGUsIGNvbnN0IGNo
YXIgKnBjaFByZXZpZXdGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoVlJGaWxlbmFtZSApID0gMDsK
KworICAgICAgIC8qKiBTdWJtaXQgdGhlIGNvbXBsZXRlZCBzY3JlZW5zaG90LiAgSWYgU3RlYW0g
aXMgcnVubmluZworICAgICAgICAqICB0aGlzIHdpbGwgY2FsbCBpbnRvIHRoZSBTdGVhbSBjbGll
bnQgYW5kIHVwbG9hZCB0aGUKKyAgICAgICAgKiAgc2NyZWVuc2hvdCB0byB0aGUgc2NyZWVuc2hv
dHMgc2VjdGlvbiBvZiB0aGUgbGlicmFyeSBmb3IKKyAgICAgICAgKiAgdGhlIHJ1bm5pbmcgYXBw
bGljYXRpb24uICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhpcworICAgICAgICAqICBmdW5j
dGlvbiB3aWxsIGRpc3BsYXkgYSBub3RpZmljYXRpb24gdG8gdGhlIHVzZXIgdGhhdCB0aGUKKyAg
ICAgICAgKiAgc2NyZWVuc2hvdCB3YXMgdGFrZW4uIFRoZSBwYXRocyBzaG91bGQgYmUgZnVsbCBw
YXRocyB3aXRoCisgICAgICAgICogIGV4dGVuc2lvbnMuCisgICAgICAgICogIEZpbGUgcGF0aHMg
c2hvdWxkIGJlIGFic29sdXRlIGluY2x1ZGluZyBleHRlbnNpb25zLgorICAgICAgICAqICBzY3Jl
ZW5zaG90SGFuZGxlIGNhbiBiZSBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgaWYgdGhpcwor
ICAgICAgICAqICB3YXMgYSBuZXcgc2hvdCB0YWtpbmcgYnkgdGhlIGFwcCB0byBiZSBzYXZlZCBh
bmQgbm90CisgICAgICAgICogIGluaXRpYXRlZCBieSBhIHVzZXIgKGFjaGlldmVtZW50IGVhcm5l
ZCBvciBzb21ldGhpbmcpICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9y
IFN1Ym1pdFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRs
ZSwgdnI6OkVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZVByZXZp
ZXdGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoU291cmNlVlJGaWxlbmFtZSApID0gMDsKK307CisK
K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiA9ICJJVlJT
Y3JlZW5zaG90c18wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZycmVzb3Vy
Y2VzLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJSZXNvdXJjZXMKK3sKK3B1YmxpYzoK
KworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
IC8vIFNoYXJlZCBSZXNvdXJjZSBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogTG9hZHMgdGhlIHNwZWNpZmllZCByZXNv
dXJjZSBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIgaWYgbGFyZ2UgZW5vdWdoLgorICAgICAgICog
UmV0dXJucyB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIHRvIGhvbGQg
dGhlIHNwZWNpZmllZCByZXNvdXJjZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IExvYWRT
aGFyZWRSZXNvdXJjZSggY29uc3QgY2hhciAqcGNoUmVzb3VyY2VOYW1lLCBjaGFyICpwY2hCdWZm
ZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAwOworCisgICAgICAgLyoqIFByb3ZpZGVzIHRo
ZSBmdWxsIHBhdGggdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZS4gUmVzb3VyY2UgbmFtZXMgY2Fu
IGluY2x1ZGUgbmFtZWQgZGlyZWN0b3JpZXMgZm9yCisgICAgICAgKiBkcml2ZXJzIGFuZCBvdGhl
ciB0aGluZ3MsIGFuZCB0aGlzIHJlc29sdmVzIGFsbCBvZiB0aG9zZSBhbmQgcmV0dXJucyB0aGUg
YWN0dWFsIHBoeXNpY2FsIHBhdGguIAorICAgICAgICogcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5
IGlzIHRoZSBzdWJkaXJlY3Rvcnkgb2YgcmVzb3VyY2VzIHRvIGxvb2sgaW4uICovCisgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRSZXNvdXJjZUZ1bGxQYXRoKCBjb25zdCBjaGFyICpwY2hSZXNv
dXJjZU5hbWUsIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgY2hhciAqcGNo
UGF0aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKSA9IDA7Cit9OworCitzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18wMDEi
OworCisKK30KKy8vIGl2cmRyaXZlcm1hbmFnZXIuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNz
IElWUkRyaXZlck1hbmFnZXIKK3sKK3B1YmxpYzoKKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdl
dERyaXZlckNvdW50KCkgY29uc3QgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGxlbmd0
aCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGlu
Y2x1ZGluZyB0aGUgdHJhaWxpbmcgbnVsbC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdl
dERyaXZlck5hbWUoIHZyOjpEcml2ZXJJZF90IG5Ecml2ZXIsIFZSX09VVF9TVFJJTkcoKSBjaGFy
ICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkgPSAwOworfTsKKworc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24gPSAiSVZSRHJpdmVyTWFu
YWdlcl8wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIEVuZAorCisjZW5kaWYgLy8g
X09QRU5WUl9BUEkKKworCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAvKiogRmluZHMgdGhlIGFj
dGl2ZSBpbnN0YWxsYXRpb24gb2YgdGhlIFZSIEFQSSBhbmQgaW5pdGlhbGl6ZXMgaXQuIFRoZSBw
cm92aWRlZCBwYXRoIG11c3QgYmUgYWJzb2x1dGUKKyAgICAgICAqIG9yIHJlbGF0aXZlIHRvIHRo
ZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBUaGVzZSBhcmUgdGhlIGxvY2FsIGluc3RhbGwg
dmVyc2lvbnMgb2YgdGhlIGVxdWl2YWxlbnQKKyAgICAgICAqIGZ1bmN0aW9ucyBpbiBzdGVhbXZy
LmggYW5kIHdpbGwgd29yayB3aXRob3V0IGEgbG9jYWwgU3RlYW0gaW5zdGFsbC4KKyAgICAgICAq
CisgICAgICAgKiBUaGlzIHBhdGggaXMgdG8gdGhlICJyb290IiBvZiB0aGUgVlIgQVBJIGluc3Rh
bGwuIFRoYXQncyB0aGUgZGlyZWN0b3J5IHdpdGgKKyAgICAgICAqIHRoZSAiZHJpdmVycyIgZGly
ZWN0b3J5IGFuZCBhIHBsYXRmb3JtIChpLmUuICJ3aW4zMiIpIGRpcmVjdG9yeSBpbiBpdCwgbm90
IHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgRExMIGl0c2VsZi4KKyAgICAgICAqCisgICAgICAgKiBw
U3RhcnR1cEluZm8gaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisgICAgICAgKi8KKyAgICAg
ICBpbmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIEVWUkFw
cGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cEluZm8g
PSBudWxscHRyICk7CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRl
cmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBh
ZnRlciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJfU2h1dGRvd24oKTsKKwor
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gSE1EIGF0dGFjaGVkLiBUaGlz
IGNoZWNrIGlzIGFzIGxpZ2h0d2VpZ2h0IGFzIHBvc3NpYmxlIGFuZAorICAgICAgICogY2FuIGJl
IGNhbGxlZCBvdXRzaWRlIG9mIFZSX0luaXQvVlJfU2h1dGRvd24uIEl0IHNob3VsZCBiZSB1c2Vk
IHdoZW4gYW4gYXBwbGljYXRpb24gd2FudHMKKyAgICAgICAqIHRvIGtub3cgaWYgaW5pdGlhbGl6
aW5nIFZSIGlzIGEgcG9zc2liaWxpdHkgYnV0IGlzbid0IHJlYWR5IHRvIHRha2UgdGhhdCBzdGVw
IHlldC4KKyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExUWVBFIFZS
X0lzSG1kUHJlc2VudCgpOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgT3BlblZS
IHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NB
TExUWVBFIFZSX0lzUnVudGltZUluc3RhbGxlZCgpOworCisgICAgICAgLyoqIFJldHVybnMgd2hl
cmUgdGhlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAgICAgICBWUl9JTlRFUkZB
Q0UgY29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJfUnVudGltZVBhdGgoKTsKKworICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlIGZvciBhbiBFVlJJbml0RXJyb3Iu
IFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBvdXRzaWRlIG9mIFZSX0luaXQoKS9WUl9TaHV0
ZG93bigpLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBW
Ul9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKKworICAgICAg
IC8qKiBSZXR1cm5zIGFuIEVuZ2xpc2ggc3RyaW5nIGZvciBhbiBFVlJJbml0RXJyb3IuIEFwcGxp
Y2F0aW9ucyBzaG91bGQgY2FsbCBWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sIGluc3RlYWQgYW5k
CisgICAgICAgKiB1c2UgdGhhdCBhcyBhIGtleSB0byBsb29rIHVwIHRoZWlyIG93biBsb2NhbGl6
ZWQgZXJyb3IgbWVzc2FnZS4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG91dHNpZGUgb2Yg
VlJfSW5pdCgpL1ZSX1NodXRkb3duKCkuICovCisgICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNo
YXIgKlZSX0NBTExUWVBFIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVW
UkluaXRFcnJvciBlcnJvciApOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGludGVyZmFjZSBv
ZiB0aGUgc3BlY2lmaWVkIHZlcnNpb24uIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIGFmdGVy
IFZSX0luaXQuIFRoZQorICAgICAgICogcG9pbnRlciByZXR1cm5lZCBpcyB2YWxpZCB1bnRpbCBW
Ul9TaHV0ZG93biBpcyBjYWxsZWQuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0Ugdm9p
ZCAqVlJfQ0FMTFRZUEUgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50
ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CisKKyAgICAgICAvKiogUmV0
dXJucyB3aGV0aGVyIHRoZSBpbnRlcmZhY2Ugb2YgdGhlIHNwZWNpZmllZCB2ZXJzaW9uIGV4aXN0
cy4KKyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExUWVBFIFZSX0lz
SW50ZXJmYWNlVmVyc2lvblZhbGlkKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uICk7
CisKKyAgICAgICAvKiogUmV0dXJucyBhIHRva2VuIHRoYXQgcmVwcmVzZW50cyB3aGV0aGVyIHRo
ZSBWUiBpbnRlcmZhY2UgaGFuZGxlcyBuZWVkIHRvIGJlIHJlbG9hZGVkICovCisgICAgICAgVlJf
SU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0dldEluaXRUb2tlbigpOworCisgICAg
ICAgLy8gVGhlc2UgdHlwZWRlZnMgYWxsb3cgb2xkIGVudW0gbmFtZXMgZnJvbSBTREsgMC45LjEx
IHRvIGJlIHVzZWQgaW4gYXBwbGljYXRpb25zLgorICAgICAgIC8vIFRoZXkgd2lsbCBnbyBhd2F5
IGluIHRoZSBmdXR1cmUuCisgICAgICAgdHlwZWRlZiBFVlJJbml0RXJyb3IgSG1kRXJyb3I7Cisg
ICAgICAgdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKKyAgICAgICB0eXBlZGVmIEVDb2xvclNwYWNl
IENvbG9yU3BhY2U7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdSZXN1bHQgSG1kVHJhY2tpbmdS
ZXN1bHQ7CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNzIFRyYWNrZWREZXZpY2VD
bGFzczsKKyAgICAgICB0eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5nVW5p
dmVyc2VPcmlnaW47CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZVByb3BlcnR5IFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eTsKKyAgICAgICB0eXBlZGVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBU
cmFja2VkUHJvcGVydHlFcnJvcjsKKyAgICAgICB0eXBlZGVmIEVWUlN1Ym1pdEZsYWdzIFZSU3Vi
bWl0RmxhZ3NfdDsKKyAgICAgICB0eXBlZGVmIEVWUlN0YXRlIFZSU3RhdGVfdDsKKyAgICAgICB0
eXBlZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3VuZHNTdHlsZV90OworICAg
ICAgIHR5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9yOworICAgICAgIHR5cGVk
ZWYgRVZSRmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJD
b21wb3NpdG9yRXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJTY3Jl
ZW5zaG90RXJyb3IgVlJTY3JlZW5zaG90c0Vycm9yOworCisgICAgICAgaW5saW5lIHVpbnQzMl90
ICZWUlRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRpYyB1aW50MzJfdCB0b2tl
bjsKKyAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOworICAgICAgIH0KKworICAgICAgIGNsYXNz
IENPcGVuVlJDb250ZXh0CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAg
Q09wZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKyAgICAgICAgICAgICAgdm9pZCBDbGVhcigp
OworCisgICAgICAgICAgICAgIGlubGluZSB2b2lkIENoZWNrQ2xlYXIoKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIFZSVG9rZW4oKSAhPSBWUl9HZXRJbml0VG9r
ZW4oKSApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUlRva2VuKCkgPSBWUl9H
ZXRJbml0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIElWUlN5c3RlbSAqVlJTeXN0ZW0oKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAoIG1fcFZSU3lzdGVtID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSAoIElWUlN5c3RlbSAqIClWUl9HZXRHZW5l
cmljSW50ZXJmYWNlKCBJVlJTeXN0ZW1fVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU3lzdGVtOworICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZSAqVlJDaGFwZXJvbmUoKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAg
ICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQ2hhcGVyb25lID09IG51bGxwdHIgKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJv
ciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSAo
IElWUkNoYXBlcm9uZSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDaGFwZXJvbmVfVmVy
c2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgSVZSQ2hhcGVyb25lU2V0dXAgKlZSQ2hhcGVyb25lU2V0dXAoKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAg
ICAgICBpZiAoIG1fcFZSQ2hhcGVyb25lU2V0dXAgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJv
cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gKCBJ
VlJDaGFwZXJvbmVTZXR1cCAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDaGFwZXJvbmVT
ZXR1cF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIElWUkNvbXBvc2l0b3IgKlZSQ29tcG9zaXRvcigpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAg
ICAgICAgICAgIGlmICggbV9wVlJDb21wb3NpdG9yID09IG51bGxwdHIgKQorICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDb21wb3NpdG9yID0gKCBJVlJD
b21wb3NpdG9yICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNvbXBvc2l0b3JfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIElWUk92ZXJsYXkgKlZST3ZlcmxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJP
dmVybGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9wVlJPdmVybGF5ID0gKCBJVlJPdmVybGF5ICogKVZSX0dldEdlbmVyaWNJbnRl
cmZhY2UoIElWUk92ZXJsYXlfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIElWUlJlc291cmNlcyAqVlJSZXNvdXJjZXMoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAoIG1fcFZSUmVzb3VyY2VzID09IG51bGxwdHIgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBl
RXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZXNvdXJjZXMgPSAoSVZS
UmVzb3VyY2VzICopVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUmVzb3VyY2VzX1ZlcnNpb24s
ICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBtX3BWUlJlc291cmNlczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IElWUlNjcmVlbnNob3RzICpWUlNjcmVlbnNob3RzKCkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBt
X3BWUlNjcmVlbnNob3RzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9ICggSVZSU2NyZWVuc2hvdHMgKiAp
VlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiwgJmVFcnJvciAp
OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1f
cFZSU2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJSZW5k
ZXJNb2RlbHMgKlZSUmVuZGVyTW9kZWxzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlJl
bmRlck1vZGVscyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gKCBJVlJSZW5kZXJNb2RlbHMgKiApVlJf
R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24sICZlRXJyb3IgKTsK
KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BW
UlJlbmRlck1vZGVsczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkV4dGVu
ZGVkRGlzcGxheSAqVlJFeHRlbmRlZERpc3BsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1f
cFZSRXh0ZW5kZWREaXNwbGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSAoIElWUkV4dGVuZGVk
RGlzcGxheSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJFeHRlbmRlZERpc3BsYXlfVmVy
c2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAoIG1fcFZSU2V0dGluZ3MgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKCBJVlJTZXR0aW5ncyAqIClWUl9H
ZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXR0
aW5nczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkFwcGxpY2F0aW9ucyAq
VlJBcHBsaWNhdGlvbnMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBD
aGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQXBwbGljYXRpb25z
ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJBcHBsaWNhdGlvbnMgPSAoIElWUkFwcGxpY2F0aW9ucyAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQXBwbGljYXRp
b25zOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSVHJhY2tlZENhbWVyYSAq
VlJUcmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
Q2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlRyYWNrZWRDYW1l
cmEgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3BWUlRyYWNrZWRDYW1lcmEgPSAoIElWUlRyYWNrZWRDYW1lcmEgKiApVlJfR2V0R2Vu
ZXJpY0ludGVyZmFjZSggSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uLCAmZUVycm9yICk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJUcmFj
a2VkQ2FtZXJhOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSRHJpdmVyTWFu
YWdlciAqVlJEcml2ZXJNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCAhbV9wVlJEcml2
ZXJNYW5hZ2VyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSRHJpdmVyTWFuYWdlciA9ICggSVZSRHJpdmVyTWFuYWdlciAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkRyaXZlck1h
bmFnZXI7CisgICAgICAgICAgICAgIH0KKworICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAg
IElWUlN5c3RlbSAgICAgICAgICAgICAgICAgICAgICptX3BWUlN5c3RlbTsKKyAgICAgICAgICAg
ICAgSVZSQ2hhcGVyb25lICAgICAgICAgICAgICAqbV9wVlJDaGFwZXJvbmU7CisgICAgICAgICAg
ICAgIElWUkNoYXBlcm9uZVNldHVwICAgICAgICptX3BWUkNoYXBlcm9uZVNldHVwOworICAgICAg
ICAgICAgICBJVlJDb21wb3NpdG9yICAgICAgICAgICAgICAqbV9wVlJDb21wb3NpdG9yOworICAg
ICAgICAgICAgICBJVlJPdmVybGF5ICAgICAgICAgICAgICAgICAgICAgKm1fcFZST3ZlcmxheTsK
KyAgICAgICAgICAgICAgSVZSUmVzb3VyY2VzICAgICAgICAgICAgICAqbV9wVlJSZXNvdXJjZXM7
CisgICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAgICAgICAgICAgICAgKm1fcFZSUmVuZGVy
TW9kZWxzOworICAgICAgICAgICAgICBJVlJFeHRlbmRlZERpc3BsYXkgICAgICAgKm1fcFZSRXh0
ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICBJVlJTZXR0aW5ncyAgICAgICAgICAgICAgICAg
ICAgICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJVlJBcHBsaWNhdGlvbnMgICAgICAg
ICAgICAgICptX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgSVZSVHJhY2tlZENhbWVy
YSAgICAgICAqbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICBJVlJTY3JlZW5zaG90
cyAgICAgICAgICAgICAgKm1fcFZSU2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIElWUkRyaXZl
ck1hbmFnZXIgICAgICAgKm1fcFZSRHJpdmVyTWFuYWdlcjsKKyAgICAgICB9OworCisgICAgICAg
aW5saW5lIENPcGVuVlJDb250ZXh0ICZPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHN0YXRpYyB2b2lkICpjdHhbIHNpemVvZiggQ09wZW5WUkNv
bnRleHQgKSAvIHNpemVvZiggdm9pZCAqICkgXTsKKyAgICAgICAgICAgICAgcmV0dXJuICooIENP
cGVuVlJDb250ZXh0ICogKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAg
ICAgIH0KKworICAgICAgIGlubGluZSBJVlJTeXN0ZW0gKlZSX0NBTExUWVBFIFZSU3lzdGVtKCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU3lzdGVtKCk7IH0KKyAg
ICAgICBpbmxpbmUgSVZSQ2hhcGVyb25lICpWUl9DQUxMVFlQRSBWUkNoYXBlcm9uZSgpIHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNoYXBlcm9uZSgpOyB9CisgICAg
ICAgaW5saW5lIElWUkNoYXBlcm9uZVNldHVwICpWUl9DQUxMVFlQRSBWUkNoYXBlcm9uZVNldHVw
KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ2hhcGVyb25lU2V0
dXAoKTsgfQorICAgICAgIGlubGluZSBJVlJDb21wb3NpdG9yICpWUl9DQUxMVFlQRSBWUkNvbXBv
c2l0b3IoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDb21wb3Np
dG9yKCk7IH0KKyAgICAgICBpbmxpbmUgSVZST3ZlcmxheSAqVlJfQ0FMTFRZUEUgVlJPdmVybGF5
KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZST3ZlcmxheSgpOyB9
CisgICAgICAgaW5saW5lIElWUlNjcmVlbnNob3RzICpWUl9DQUxMVFlQRSBWUlNjcmVlbnNob3Rz
KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU2NyZWVuc2hvdHMo
KTsgfQorICAgICAgIGlubGluZSBJVlJSZW5kZXJNb2RlbHMgKlZSX0NBTExUWVBFIFZSUmVuZGVy
TW9kZWxzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSUmVuZGVy
TW9kZWxzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQXBwbGljYXRpb25zICpWUl9DQUxMVFlQRSBW
UkFwcGxpY2F0aW9ucygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5W
UkFwcGxpY2F0aW9ucygpOyB9CisgICAgICAgaW5saW5lIElWUlNldHRpbmdzICpWUl9DQUxMVFlQ
RSBWUlNldHRpbmdzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZS
U2V0dGluZ3MoKTsgfQorICAgICAgIGlubGluZSBJVlJSZXNvdXJjZXMgKlZSX0NBTExUWVBFIFZS
UmVzb3VyY2VzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSUmVz
b3VyY2VzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSRXh0ZW5kZWREaXNwbGF5ICpWUl9DQUxMVFlQ
RSBWUkV4dGVuZGVkRGlzcGxheSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQoKS5WUkV4dGVuZGVkRGlzcGxheSgpOyB9CisgICAgICAgaW5saW5lIElWUlRyYWNrZWRDYW1l
cmEgKlZSX0NBTExUWVBFIFZSVHJhY2tlZENhbWVyYSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQoKS5WUlRyYWNrZWRDYW1lcmEoKTsgfQorICAgICAgIGlubGluZSBJVlJE
cml2ZXJNYW5hZ2VyICpWUl9DQUxMVFlQRSBWUkRyaXZlck1hbmFnZXIoKSB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJEcml2ZXJNYW5hZ2VyKCk7IH0KKworICAgICAg
IGlubGluZSB2b2lkIENPcGVuVlJDb250ZXh0OjpDbGVhcigpCisgICAgICAgeworICAgICAgICAg
ICAgICBtX3BWUlN5c3RlbSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25l
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGxwdHI7
CisgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICAg
IG1fcFZST3ZlcmxheSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxz
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSBudWxscHRy
OworICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
bV9wVlJBcHBsaWNhdGlvbnMgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlRyYWNrZWRD
YW1lcmEgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlJlc291cmNlcyA9IG51bGxwdHI7
CisgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxscHRyOworICAgICAgICAgICAg
ICBtX3BWUkRyaXZlck1hbmFnZXIgPSBudWxscHRyOworICAgICAgIH0KKyAgICAgICAKKyAgICAg
ICBWUl9JTlRFUkZBQ0UgdWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfSW5pdEludGVybmFsMiggRVZS
SW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwg
Y29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICk7CisgICAgICAgVlJfSU5URVJGQUNFIHZvaWQgVlJf
Q0FMTFRZUEUgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworCisgICAgICAgLyoqIEZpbmRzIHRoZSBh
Y3RpdmUgaW5zdGFsbGF0aW9uIG9mIHZyY2xpZW50LmRsbCBhbmQgaW5pdGlhbGl6ZXMgaXQgKi8K
KyAgICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3IgKnBlRXJyb3Is
IEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1
cEluZm8gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSVZSU3lzdGVtICpwVlJTeXN0ZW0gPSBu
dWxscHRyOworCisgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgIFZSVG9rZW4oKSA9IFZSX0luaXRJbnRlcm5hbDIoICZlRXJyb3IsIGVBcHBsaWNhdGlvblR5
cGUsIHBTdGFydHVwSW5mbyApOworICAgICAgICAgICAgICBDT3BlblZSQ29udGV4dCAmY3R4ID0g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpOworICAgICAgICAgICAgICBjdHguQ2xlYXIo
KTsKKworICAgICAgICAgICAgICBpZiAoIGVFcnJvciA9PSBWUkluaXRFcnJvcl9Ob25lICkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBWUl9Jc0ludGVyZmFjZVZl
cnNpb25WYWxpZCggSVZSU3lzdGVtX1ZlcnNpb24gKSApCisgICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFZSU3lzdGVtID0gVlJTeXN0ZW0oKTsKKyAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUl9TaHV0ZG93bklu
dGVybmFsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZUVycm9yID0gVlJJbml0RXJy
b3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgICAgICAg
ICAgICAgICAqcGVFcnJvciA9IGVFcnJvcjsKKyAgICAgICAgICAgICAgcmV0dXJuIHBWUlN5c3Rl
bTsKKyAgICAgICB9CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRl
cmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBh
ZnRlciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJfU2h1dGRvd24oKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworICAgICAgIH0KK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGku
Y3MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1YjExYjUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNz
CkBAIC0wLDAgKzEsNDc4NiBAQAorLy89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9y
YXRpb24sIEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09PQorLy8KKy8vIFB1cnBv
c2U6IFRoaXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmluZGluZ3MgZm9yIHRoZSBP
cGVuVlIgaW50ZXJmYWNlcworLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3Qg
ZWRpdCBpdC4KKy8vCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3VzaW5nIFN5c3RlbTsKK3Vz
aW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKK3VzaW5nIFZhbHZlLlZSOworCitu
YW1lc3BhY2UgVmFsdmUuVlIKK3sKKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXQorcHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgdWludCBwbldp
ZHRoLCByZWYgdWludCBwbkhlaWdodCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJn
ZXRTaXplIEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlvbk1hdHJpeChFVlJFeWUg
ZUV5ZSwgZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJvamVjdGlvbk1h
dHJpeCBHZXRQcm9qZWN0aW9uTWF0cml4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYgZmxvYXQgcGZMZWZ0LCBy
ZWYgZmxvYXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxvYXQgcGZCb3R0b20pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsIGZs
b2F0IGZVLCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9u
Q29vcmRpbmF0ZXMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENvbXB1dGVEaXN0b3J0aW9u
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRFeWVU
b0hlYWRUcmFuc2Zvcm0oRVZSRXllIGVFeWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5ZVRvSGVhZFRyYW5zZm9y
bSBHZXRFeWVUb0hlYWRUcmFuc2Zvcm07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGJvb2wgX0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0
VnN5bmMsIHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRpbWVTaW5jZUxh
c3RWc3luYyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEQzRDlBZGFwdGVy
SW5kZXggR2V0RDNEOUFkYXB0ZXJJbmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzRGlz
cGxheU9uRGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVz
a3RvcCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlzcGxheVZpc2liaWxpdHk7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERldmljZVRvQWJzb2x1
dGVUcmFja2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlBy
ZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBv
c2VfdFtdIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZVBvc2VB
cnJheUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldERl
dmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXNldFNlYXRlZFplcm9Q
b3NlIFJlc2V0U2VhdGVkWmVyb1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEhtZE1hdHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tp
bmdQb3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFj
a2luZ1Bvc2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFJhd1pl
cm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmF3WmVy
b1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3WmVyb1Bvc2VUb1N0YW5k
aW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHVpbnQgX0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmlj
ZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50W10gcHVuVHJhY2tlZERl
dmljZUluZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB1aW50
IHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U29ydGVkVHJhY2tl
ZERldmljZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFz
czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmljZUFjdGl2aXR5TGV2ZWwg
X0dldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2
ZWw7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0FwcGx5VHJhbnNmb3Jt
KHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBv
c2VfdCBwVHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90IHBUcmFuc2Zvcm0pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9s
ZShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VHJhY2tl
ZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29u
dHJvbGxlclJvbGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkQ29u
dHJvbGxlclJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQg
dW5EZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNl
SW5kZXggR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXg7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3MgX0dldFRyYWNrZWREZXZp
Y2VDbGFzcyh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VDbGFz
cyBHZXRUcmFja2VkRGV2aWNlQ2xhc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGJvb2wgX0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQ7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJvb2xUcmFja2VkRGV2aWNl
UHJvcGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3As
IHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCb29sVHJhY2tl
ZERldmljZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSh1aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVU
cmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZsb2F0VHJhY2tlZERldmlj
ZVByb3BlcnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQg
dW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVy
dHkgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRl
dmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkg
R2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1
aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE1hdHJpeDM0VHJhY2tlZERldmlj
ZVByb3BlcnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHko
dWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVBy
b3BlcnR5IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0gR2V0
UHJvcEVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9Qb2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9zZShFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVu
dCwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Q
b2xsTmV4dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3NlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJF
dmVudFR5cGUgZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bSBHZXRFdmVu
dFR5cGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhpZGRl
bkFyZWFNZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1l
c2hUeXBlIHR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdldEhpZGRlbkFyZWFNZXNo
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3Rh
dGUodWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29udHJvbGxlclN0YXRlX3Qg
cENvbnRyb2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dENvbnRyb2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBW
UkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3Rh
dGVTaXplLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9UcmlnZ2VySGFwdGljUHVs
c2UodWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4aXNJZCwgY2hhciB1c0R1
cmF0aW9uTWljcm9TZWMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxzZSBUcmlnZ2VySGFwdGlj
UHVsc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QnV0dG9u
SWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCdXR0b25J
ZE5hbWVGcm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0o
RVZSQ29udHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlckF4
aXNUeXBlTmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVyZUlucHV0Rm9jdXMoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1czsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9jdXMoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9S
ZWxlYXNlSW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzIElzSW5wdXRGb2N1
c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdWludCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBj
aFJlcXVlc3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1blJlc3BvbnNlQnVmZmVy
U2l6ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRlYnVnUmVxdWVzdDsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVFcnJvciBfUGVyZm9ybUZp
cm13YXJlVXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUZpcm13YXJl
VXBkYXRlIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9BY2tub3dsZWRn
ZVF1aXRfRXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9BY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdDsK
KworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3Ry
dWN0IElWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfR2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50IHBuWSwgcmVmIHVpbnQg
cG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdpbmRvd0JvdW5kcyBHZXRX
aW5kb3dCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEV5
ZU91dHB1dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgsIHJlZiB1aW50IHBuWSwg
cmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5ZU91dHB1
dFZpZXdwb3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LCBy
ZWYgaW50IHBuQWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREWEdJT3V0cHV0SW5mbyBH
ZXREWEdJT3V0cHV0SW5mbzsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldCitwdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKK3sKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJh
Y2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhRXJyb3JOYW1l
RnJvbUVudW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2FtZXJhKHVpbnQgbkRldmlj
ZUluZGV4LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IYXNDYW1lcmEgSGFzQ2FtZXJh
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3Ig
X0dldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCwg
cmVmIHVpbnQgcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUZyYW1lU2l6ZSBH
ZXRDYW1lcmFGcmFtZVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRy
YWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50IG5EZXZpY2VJbmRleCwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgSG1kVmVjdG9yMl90IHBG
b2NhbExlbmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFJ
bnRyaW5zaWNzIEdldENhbWVyYUludHJpbnNpY3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5E
ZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBm
bFpOZWFyLCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rpb247CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfQWNxdWlyZVZpZGVv
U3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVsb25nIHBIYW5kbGUpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWlyZVZpZGVvU3RyZWFtaW5n
U2VydmljZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVy
YUVycm9yIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25nIGhUcmFja2VkQ2FtZXJh
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJlbGVhc2VWaWRlb1N0cmVh
bWluZ1NlcnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9uZyBoVHJhY2tlZENhbWVy
YSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEZyYW1lQnVm
ZmVyLCB1aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVh
ZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFZp
ZGVvU3RyZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0
cmVhbVRleHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcywgcmVm
IHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFt
VGV4dHVyZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1
cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBl
RnJhbWVUeXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90
IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0
cmVhbVRleHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVh
bVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBDYW1lcmFWaWRlb1N0cmVh
bUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX1JlbGVh
c2VWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgdWludCBnbFRleHR1
cmVJZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMIFJlbGVhc2VWaWRlb1N0
cmVhbVRleHR1cmVHTDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldCitwdWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucworeworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGljYXRpb25NYW5pZmVzdChz
dHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRpb25NYW5pZmVzdDsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUmVtb3Zl
QXBwbGljYXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRo
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92ZUFwcGxpY2F0aW9uTWFu
aWZlc3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzQXBwbGljYXRp
b25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNBcHBsaWNhdGlvbkluc3Rh
bGxlZCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25D
b3VudCBHZXRBcHBsaWNhdGlvbkNvdW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgodWludCB1bkFw
cGxpY2F0aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVy
LCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5k
ZXggR2V0QXBwbGljYXRpb25LZXlCeUluZGV4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVp
bnQgdW5Qcm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZm
ZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQgR2V0QXBwbGljYXRp
b25LZXlCeVByb2Nlc3NJZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBw
bGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfTGF1bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaFRlbXBsYXRlQXBwbGlj
YXRpb24oc3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNoTmV3QXBwS2V5LCBbSW4s
IE91dF0gQXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktleXMpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xh
dW5jaFRlbXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbjsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBw
bGljYXRpb25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXJncyk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1bmNoQXBwbGljYXRpb25G
cm9tTWltZVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0
aW9uRXJyb3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRPdmVybGF5OworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChz
dHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCBDYW5jZWxB
cHBsaWNhdGlvbkxhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBw
bGljYXRpb25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLCBzdHJp
bmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9uIElkZW50aWZ5QXBwbGlj
YXRpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0
aW9uUHJvY2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJv
Y2Vzc0lkIEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxp
Y2F0aW9uRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21F
bnVtIEdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBw
Y2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQgdW5Qcm9wZXJ0eVZhbHVl
QnVmZmVyTGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRB
cHBsaWNhdGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmc7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uUHJvcGVy
dHlCb29sKHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5
LCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlv
blByb3BlcnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQoc3Ry
aW5nIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIHJlZiBFVlJB
cHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlV
aW50NjQgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
KHN0cmluZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEFwcGxpY2F0
aW9uQXV0b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNo
QXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggR2V0QXBwbGljYXRpb25B
dXRvTGF1bmNoOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlv
bkVycm9yIF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5
LCBzdHJpbmcgcGNoTWltZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShz
dHJpbmcgcGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlC
dWZmZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIEdldERl
ZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyhzdHJpbmcgcGNoQXBw
S2V5LCBzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWltZVR5cGVzQnVmZmVyKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBHZXRBcHBsaWNhdGlvblN1
cHBvcnRlZE1pbWVUeXBlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBf
R2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0
cmluZyBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBv
cnRCdWZmZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUgR2V0
QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModWludCB1bkhhbmRs
ZSwgc3RyaW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkxh
dW5jaEFyZ3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50czsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0U3RhcnRpbmdBcHBs
aWNhdGlvbihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5nQXBwbGljYXRpb247CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0
YXRlIF9HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFuc2l0aW9uU3RhdGUgR2V0
VHJhbnNpdGlvblN0YXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBs
aWNhdGlvbkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhzdHJpbmcgcGNo
QXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayBQZXJmb3Jt
QXBwbGljYXRpb25QcmVsYXVuY2hDaGVjazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgSW50UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZS
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9u
c1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3Rh
dGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lz
UXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVz
dGVkIElzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcg
cGNoQmluYXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5nIHBjaFdvcmtpbmdEaXJl
Y3RvcnkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVuY2hJbnRlcm5hbFByb2Nl
c3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2Vu
ZVByb2Nlc3NJZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCBHZXRDdXJyZW50
U2NlbmVQcm9jZXNzSWQ7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXQorcHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENhbGlicmF0aW9uU3RhdGUo
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlBcmVhU2l6ZShyZWYgZmxv
YXQgcFNpemVYLCByZWYgZmxvYXQgcFNpemVaKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVNpemUgR2V0
UGxheUFyZWFTaXplOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQ
bGF5QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVJlY3Qg
R2V0UGxheUFyZWFSZWN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9S
ZWxvYWRJbmZvKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZvOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEhtZENvbG9yX3QgY29sb3Ip
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1
dENvbG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5k
c0ZhZGVEaXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRCb3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0FyZUJvdW5kc1Zpc2li
bGUgQXJlQm91bmRzVmlzaWJsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfRm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Gb3JjZUJvdW5kc1Zp
c2libGUgRm9yY2VCb3VuZHNWaXNpYmxlOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lU2V0dXAKK3sKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtpbmdDb3B5KEVDaGFwZXJv
bmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbW1pdFdvcmtpbmdDb3B5IENvbW1p
dFdvcmtpbmdDb3B5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXZl
cnRXb3JraW5nQ29weSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5IFJldmVydFdvcmtpbmdD
b3B5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nUGxh
eUFyZWFTaXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6ZVopOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dFdvcmtpbmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1k
UXVhZF90IHJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QgR2V0V29ya2luZ1Bs
YXlBcmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29y
a2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZl
ciwgcmVmIHVpbnQgcHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJv
dW5kc0luZm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0
XSBIbWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZv
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdTdGFu
ZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFN0YW5k
aW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1N0YW5kaW5n
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRX
b3JraW5nUGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
V29ya2luZ1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXplOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhb
SW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJv
dW5kc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtp
bmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBNYXRT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29y
a2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBw
TWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5n
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1JlbG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1JlbG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShy
ZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0TGl2ZVNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0
ZVtdIHBUYWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xs
aXNpb25Cb3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm87CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3Vu
ZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCByZWYgdWludCBwdW5UYWdD
b3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIEdldExpdmVDb2xs
aXNpb25Cb3VuZHNUYWdzSW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1
YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1BoeXNpY2Fs
Qm91bmRzSW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKFtJbiwgT3V0
XSBIbWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbzsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhwb3J0TGl2ZVRvQnVmZmVy
KFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVpbnQgcG5CdWZmZXJMZW5n
dGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZlVG9CdWZmZXI7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZyb21CdWZmZXJUb1dvcmtp
bmcoc3RyaW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9JbXBvcnRGcm9t
QnVmZmVyVG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7CisKK30KKworW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJDb21wb3Np
dG9yCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRUcmFja2luZ1Nw
YWNlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFRyYWNraW5n
U3BhY2UgU2V0VHJhY2tpbmdTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2UoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRU
cmFja2luZ1NwYWNlIEdldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJbiwgT3V0XSBUcmFja2Vk
RGV2aWNlUG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJlbmRlclBvc2VBcnJheUNv
dW50LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1lUG9zZUFycmF5LCB1aW50
IHVuR2FtZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9zZXMgV2FpdEdldFBvc2Vz
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dl
dExhc3RQb3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJy
YXksIHVpbnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQ
b3NlX3RbXSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0TGFzdFBvc2VzIEdldExhc3RQb3NlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCh1aW50IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3Nl
LCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExh
c3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUlu
ZGV4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3Ig
X1N1Ym1pdChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSwgcmVmIFZSVGV4dHVy
ZUJvdW5kc190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U3VibWl0IFN1Ym1pdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQ2xl
YXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSBD
bGVhckxhc3RTdWJtaXR0ZWRGcmFtZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUG9zdFByZXNlbnRIYW5kb2ZmIFBv
c3RQcmVzZW50SGFuZG9mZjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBf
R2V0RnJhbWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCB1
bkZyYW1lc0Fnbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJhbWVUaW1pbmc7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1lVGltaW5ncyhyZWYgQ29t
cG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZy
YW1lVGltaW5ncyBHZXRGcmFtZVRpbWluZ3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGZsb2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWVS
ZW1haW5pbmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBvc2l0b3JfQ3VtdWxhdGl2
ZVN0YXRzIHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q3VtdWxh
dGl2ZVN0YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0
IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfRmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFkZUNvbG9yOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChmbG9hdCBmU2Vjb25kcywg
Ym9vbCBiRmFkZUluKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxwaGEoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRDdXJyZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5Ym94T3ZlcnJpZGUoW0lu
LCBPdXRdIFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1cmVDb3VudCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2V0U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVh
clNreWJveE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21w
b3NpdG9yQnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFjaygpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0Nv
bXBvc2l0b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvclF1
aXQgQ29tcG9zaXRvclF1aXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0lzRnVsbHNjcmVlbigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1bGxzY3JlZW47CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJv
Y2VzcygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcyBHZXRDdXJyZW50U2Nl
bmVGb2N1c1Byb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dExhc3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1lUmVuZGVyZXIgR2V0TGFz
dEZyYW1lUmVuZGVyZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0Nh
blJlbmRlclNjZW5lKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2FuUmVuZGVyU2NlbmU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dNaXJyb3JXaW5kb3coKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3coKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IaWRl
TWlycm9yV2luZG93IEhpZGVNaXJyb3JXaW5kb3c7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzTWlycm9yV2lu
ZG93VmlzaWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRv
ckR1bXBJbWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9TaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFwcFJlbmRlcldpdGhMb3dS
ZXNvdXJjZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlSW50
ZXJsZWF2ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRm9yY2VJbnRl
cmxlYXZlZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbjsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNz
KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVjb25uZWN0UHJvY2VzczsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3VzcGVuZFJlbmRlcmluZyhi
b29sIGJTdXNwZW5kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1c3BlbmRSZW5kZXJpbmc7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0
TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNv
dXJjZSwgcmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRN
aXJyb3JUZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBw
RDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VNaXJyb3JUZXh0dXJlRDNE
MTEgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUs
IHJlZiB1aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJlR0w7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUodWludCBn
bFRleHR1cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVsZWFz
ZVNoYXJlZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0
ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvY2tHTFNoYXJlZFRleHR1cmVGb3JB
Y2Nlc3MgTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBn
bFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFj
Y2VzcyBVbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBHZXRWdWxrYW5JbnN0YW5j
ZUV4dGVuc2lvbnNSZXF1aXJlZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWlu
dCBfR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0ciBwUGh5c2ljYWxEZXZp
Y2UsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXpl
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuRGV2
aWNlRXh0ZW5zaW9uc1JlcXVpcmVkOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQoreworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3ZlcmxheShzdHJpbmcgcGNoT3Zl
cmxheUtleSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9GaW5kT3ZlcmxheSBG
aW5kT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9DcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DcmVhdGVP
dmVybGF5IENyZWF0ZU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9EZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcg
dWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkgU2V0SGlnaFF1
YWxpdHlPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0
SGlnaFF1YWxpdHlPdmVybGF5KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxpdHlPdmVybGF5IEdldEhp
Z2hRdWFsaXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBf
R2V0T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1
aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBF
cnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJT
aXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheU5hbWUg
R2V0T3ZlcmxheU5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0
ciBwdkJ1ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1bldpZHRoLCByZWYgdWlu
dCBwdW5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEgR2V0T3ZlcmxheUltYWdl
RGF0YTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRPdmVybGF5
RXJyb3JOYW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVy
bGF5RXJyb3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlSZW5k
ZXJpbmdQaWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElEKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRP
dmVybGF5UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxP
dmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkIEdldE92ZXJsYXlS
ZW5kZXJpbmdQaWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFn
cyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGbGFnIFNl
dE92ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5Rmxh
Z3MgZU92ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlG
bGFnIEdldE92ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0
IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlDb2xv
ciBTZXRPdmVybGF5Q29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZs
b2F0IHBmUmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBmQmx1ZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5
SGFuZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBbHBoYSBTZXRPdmVybGF5
QWxwaGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
R2V0T3ZlcmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmQWxwaGEp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleGVsQXNwZWN0
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRP
dmVybGF5VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXhlbEFzcGVjdCh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNwZWN0KTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRPdmVybGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlTb3J0T3JkZXIo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5U29ydE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVNv
cnRPcmRlciBHZXRPdmVybGF5U29ydE9yZGVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlXaWR0
aEluTWV0ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
T3ZlcmxheVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnM7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUF1dG9DdXJ2
ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5E
aXN0YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRPdmVybGF5QXV0b0N1cnZl
RGlzdGFuY2VSYW5nZUluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBy
ZWYgZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QXV0b0N1
cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdl
SW5NZXRlcnM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRUNv
bG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VGV4dHVyZUNv
bG9yU3BhY2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFj
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNw
YWNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgR2V0T3ZlcmxheVRleHR1
cmVDb2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVm
IFZSVGV4dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheVRleHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmVCb3Vu
ZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlU
ZXh0dXJlQm91bmRzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyBHZXRPdmVybGF5
VGV4dHVyZUJvdW5kczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zlcmxh
eUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJl
ZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheVRyYW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybUFi
c29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJs
YXlUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRPdmVy
bGF5VHJhbnNmb3JtQWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJhY2tpbmdPcmlnaW4sIHJl
ZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNv
bHV0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9T
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgdWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2Vk
RGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRp
dmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIHJlZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFj
a2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3Jt
VHJhY2tlZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVs
YXRpdmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5
SGFuZGxlLCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBTZXRPdmVybGF5
VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmlj
ZUNvbXBvbmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1bkRldmljZUluZGV4
LCBzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVTaXplKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBHZXRPdmVybGF5
VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5KHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVybGF5
SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3ZlcmxheVZpc2libGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0VHJhbnNmb3Jt
Rm9yT3ZlcmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92
ZXJsYXksIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYW5z
Zm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0
ZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0T3Zlcmxh
eUV2ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQg
dW5jYlZSRXZlbnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50IFBvbGxOZXh0T3Zlcmxh
eUV2ZW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJs
YXlJbnB1dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW5wdXRNZXRo
b2QgR2V0T3ZlcmxheUlucHV0TWV0aG9kOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheUlucHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5TW91c2VTY2FsZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNjYWxlOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlNb3VzZVNj
YWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2Fs
ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3ZlcmxheU1vdXNlU2NhbGU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvblBh
cmFtc190IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgcFJlc3Vs
dHMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENvbXB1dGVPdmVybGF5SW50
ZXJzZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9IYW5kbGVD
b250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hhbmRsZUNvbnRyb2xsZXJP
dmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rp
b25Bc01vdXNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0hvdmVy
VGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzSG92ZXJUYXJn
ZXRPdmVybGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEdhbWVw
YWRGb2N1c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVs
b25nIHVsTmV3Rm9jdXNPdmVybGF5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5IFNl
dEdhbWVwYWRGb2N1c092ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJl
Y3Rpb24sIHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU5laWdo
Ym9yIFNldE92ZXJsYXlOZWlnaGJvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZST3ZlcmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVj
dGlvbiBlRGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX01vdmVHYW1lcGFkRm9jdXNU
b05laWdoYm9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eVRleHR1cmUgU2V0T3ZlcmxheVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJPdmVybGF5VGV4dHVyZTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVy
bGF5UmF3KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVmZmVyLCB1aW50IHVuV2lk
dGgsIHVpbnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJhdyBT
ZXRPdmVybGF5UmF3OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHN0cmluZyBw
Y2hGaWxlUGF0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNldE92ZXJsYXlGcm9tRmls
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRP
dmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJbnRQdHIgcE5hdGl2ZVRl
eHR1cmVIYW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVmIHVpbnQgcFdpZHRoLCBy
ZWYgdWludCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCByZWYgRVRleHR1cmVUeXBl
IHBBUElUeXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJlZiBWUlRleHR1cmVCb3Vu
ZHNfdCBwVGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmUgR2V0T3Zlcmxh
eVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQ
dHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFu
ZGxlIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6ZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVEYXNoYm9hcmRPdmVy
bGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwg
cmVmIHVsb25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRPdmVybGF5OworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9Jc0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxvbmcg
dWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkgSXNBY3Rp
dmVEYXNoYm9hcmRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVy
bGF5SGFuZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXREYXNoYm9hcmRPdmVybGF5
U2NlbmVQcm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3M7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0RGFzaGJvYXJkT3Zlcmxh
eVNjZW5lUHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blByb2Nlc3NJ
ZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBHZXREYXNoYm9hcmRP
dmVybGF5U2NlbmVQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9TaG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93RGFz
aGJvYXJkIFNob3dEYXNoYm9hcmQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVp
bnQgX0dldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcmltYXJ5RGFzaGJv
YXJkRGV2aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2Rl
LCBpbnQgZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlvbiwgdWludCB1bkNoYXJN
YXgsIHN0cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1bG9uZyB1
VXNlclZhbHVlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJvYXJkOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZEZvck92
ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5w
dXRNb2RlLCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNo
RXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRGb3JPdmVybGF5OworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXlib2FyZFRleHQoU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEtl
eWJvYXJkVGV4dCBHZXRLZXlib2FyZFRleHQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0hpZGVLZXlib2FyZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hpZGVLZXlib2FyZCBIaWRlS2V5Ym9h
cmQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkVHJh
bnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBy
ZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtleWJvYXJkVHJhbnNmb3Jt
QWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJv
YXJkUG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBh
dm9pZFJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IFNldEtleWJv
YXJkUG9zaXRpb25Gb3JPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1By
aW1pdGl2ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1blByaW1pdGl2ZVNpemUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92ZXJsYXlJbnRlcnNlY3Rp
b25NYXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBGbGFncyk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIF9TaG93TWVzc2FnZU92
ZXJsYXkoc3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBzdHJpbmcgcGNoQnV0dG9u
MFRleHQsIHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LCBzdHJp
bmcgcGNoQnV0dG9uM1RleHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3ZlcmxheSBTaG93TWVzc2Fn
ZU92ZXJsYXk7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQor
cHVibGljIHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9kZWwpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xv
YWRSZW5kZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJbnRQdHIgcFJlbmRlck1v
ZGVsKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1vZGVsOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZV9B
c3luYyhpbnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9hZFRl
eHR1cmVfQXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRl
eHR1cmUgRnJlZVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJl
bmRlck1vZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCwgSW50
UHRyIHBEM0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9M
b2FkVGV4dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5bmM7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRJbnRvVGV4dHVy
ZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4dHVyZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
TG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmM7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlRDNEMTEoSW50
UHRyIHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVEM0QxMSBGcmVlVGV4dHVy
ZUQzRDExOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJN
b2RlbE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRSZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50KCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
UmVuZGVyTW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJpbmcgcGNoUmVuZGVyTW9k
ZWxOYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21wb25lbnRDb3VudDsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50TmFtZShzdHJp
bmcgcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5kZXgsIFN5c3RlbS5UZXh0
LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVMZW4p
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFtZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5n
IHBjaFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dENvbXBvbmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFzazsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHN0
cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCBTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNv
bXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50UmVuZGVyTW9k
ZWxOYW1lIEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVs
TmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBD
b250cm9sbGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBT
dGF0ZSwgcmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0ZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5n
IHBjaFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Jl
bmRlck1vZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChz
dHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFRo
dW1ibmFpbFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJy
b3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwgR2V0UmVuZGVy
TW9kZWxUaHVtYm5haWxVUkw7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1aW50IHVuT3JpZ2luYWxQ
YXRoTGVuLCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRSZW5k
ZXJNb2RlbE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZy
b21FbnVtKEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVs
RXJyb3JOYW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bTsKKworfQor
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElW
Uk5vdGlmaWNhdGlvbnMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlm
aWNhdGlvbkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1
bG9uZyB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBzdHJpbmcgcGNoVGV4
dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBw
SW1hZ2UsIHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ3JlYXRlTm90aWZpY2F0
aW9uIENyZWF0ZU5vdGlmaWNhdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSTm90aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1aW50IG5vdGlmaWNhdGlv
bklkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90aWZpY2F0aW9uOworCit9
CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3Qg
SVZSU2V0dGluZ3MKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0
U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcik7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21F
bnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TeW5jKGJvb2wgYkZv
cmNlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TeW5jIFN5bmM7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJvb2woc3RyaW5nIHBjaFNl
Y3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIHJlZiBFVlJTZXR0aW5n
c0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmlu
ZyBwY2hTZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJv
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0SW50MzIgU2V0SW50MzI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGlu
Z3NLZXksIGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldEZsb2F0IFNldEZsb2F0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2
b2lkIF9TZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwg
c3RyaW5nIHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9T
ZXRTdHJpbmcgU2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29s
IF9HZXRCb29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJlZiBF
VlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEJvb2wgR2V0Qm9vbDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlv
biwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRJbnQzMiBHZXRJbnQzMjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgZmxvYXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NL
ZXksIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZsb2F0IEdldEZs
b2F0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRTdHJpbmcoc3Ry
aW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lzdGVtLlRleHQuU3RyaW5n
QnVpbGRlciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZSU2V0dGluZ3NFcnJvciBw
ZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLCByZWYg
RVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVTZWN0aW9uIFJlbW92ZVNl
Y3Rpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbW92ZUtleUlu
U2VjdGlvbihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJblNlY3Rpb24gUmVtb3Zl
S2V5SW5TZWN0aW9uOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0KK3B1YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQg
cE91dFNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIHN0cmluZyBwY2hQ
cmV2aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXF1ZXN0U2Ny
ZWVuc2hvdCBSZXF1ZXN0U2NyZWVuc2hvdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSU2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4sIE91dF0gRVZSU2NyZWVu
c2hvdFR5cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSG9va1Nj
cmVlbnNob3QgSG9va1NjcmVlbnNob3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlNjcmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVu
c2hvdEhhbmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNj
cmVlbnNob3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5h
bWUodWludCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMg
ZmlsZW5hbWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLCB1aW50
IGNjaEZpbGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJvcik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVXBk
YXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9n
cmVzcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVwZGF0ZVNjcmVlbnNob3RQ
cm9ncmVzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVy
cm9yIF9UYWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSwg
c3RyaW5nIHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmlsZW5hbWUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1Rha2VTdGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1Ym1pdFNjcmVlbnNob3Qo
dWludCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNo
U291cmNlUHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJGaWxlbmFtZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU3VibWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OworCit9CisKK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSUmVzb3VyY2VzCit7
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2FkU2hhcmVkUmVzb3VyY2Uo
c3RyaW5nIHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxl
bik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRSZXNvdXJjZTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJp
bmcgcGNoUmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBzdHJp
bmcgcGNoUGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVzb3VyY2VG
dWxsUGF0aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOworCit9CisKKworcHVibGljIGNsYXNzIENWUlN5
c3RlbQoreworICAgICAgIElWUlN5c3RlbSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUlN5
c3RlbShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUg
PSAoSVZSU3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElW
UlN5c3RlbSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRSZWNvbW1lbmRlZFJl
bmRlclRhcmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9
IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXpl
KHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRN
YXRyaXg0NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsZmxvYXQgZk5lYXJaLGZs
b2F0IGZGYXJaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4NDRfdCByZXN1bHQg
PSBGblRhYmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclosZkZhclopOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRQ
cm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQscmVmIGZsb2F0IHBmUmln
aHQscmVmIGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHBmTGVmdCA9IDA7CisgICAgICAgICAgICAgIHBmUmlnaHQgPSAwOworICAgICAgICAg
ICAgICBwZlRvcCA9IDA7CisgICAgICAgICAgICAgIHBmQm90dG9tID0gMDsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVmdCxyZWYgcGZSaWdodCxy
ZWYgcGZUb3AscmVmIHBmQm90dG9tKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQ29t
cHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQgZlYscmVmIERpc3RvcnRp
b25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCisgICAgICAgeworICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3RvcnRpb24oZUV5ZSxmVSxm
VixyZWYgcERpc3RvcnRpb25Db29yZGluYXRlcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRy
YW5zZm9ybShFVlJFeWUgZUV5ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0
X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oZUV5ZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFRp
bWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHVs
b25nIHB1bEZyYW1lQ291bnRlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHBmU2Vjb25kc1Np
bmNlTGFzdFZzeW5jID0gMDsKKyAgICAgICAgICAgICAgcHVsRnJhbWVDb3VudGVyID0gMDsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVTaW5jZUxhc3RWc3luYyhy
ZWYgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291bnRlcik7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0RDNE
OUFkYXB0ZXJJbmRleCgpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5U
YWJsZS5HZXREM0Q5QWRhcHRlckluZGV4KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQg
cG5BZGFwdGVySW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRleCA9
IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dEluZm8ocmVmIHBuQWRhcHRl
ckluZGV4KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9w
KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rpc3Bs
YXlPbkRlc2t0b3AoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9vbCBiSXNWaXNpYmxlT25E
ZXNrdG9wKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNl
dERpc3BsYXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREZXZpY2VUb0Fi
c29sdXRlVHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sZmxvYXQg
ZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWREZXZpY2VQb3NlX3QgW10g
cFRyYWNrZWREZXZpY2VQb3NlQXJyYXkpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LkdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixmUHJlZGljdGVkU2Vjb25k
c1RvUGhvdG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXksKHVpbnQpIHBUcmFja2Vk
RGV2aWNlUG9zZUFycmF5Lkxlbmd0aCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJl
c2V0U2VhdGVkWmVyb1Bvc2UoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZXNl
dFNlYXRlZFplcm9Qb3NlKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90
IEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRTZWF0
ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBH
ZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCisgICAgICAgewor
ICAgICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0UmF3WmVyb1Bv
c2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0U29ydGVkVHJhY2tlZERl
dmljZUluZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFz
cyx1aW50IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQgdW5SZWxhdGl2ZVRvVHJh
Y2tlZERldmljZUluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBG
blRhYmxlLkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhlVHJhY2tlZERldmlj
ZUNsYXNzLHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBwdW5UcmFja2VkRGV2aWNl
SW5kZXhBcnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVEZXZpY2VB
Y3Rpdml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJ
ZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIHJlc3VsdCA9
IEZuVGFibGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5EZXZpY2VJZCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEFw
cGx5VHJhbnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFj
a2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1kTWF0cml4MzRfdCBwVHJh
bnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5BcHBseVRyYW5zZm9ybShy
ZWYgcE91dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgcFRyYW5zZm9ybSk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRy
b2xsZXJSb2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VJbmRl
eEZvckNvbnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdl
dENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1bkRldmljZUlu
ZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKHVpbnQgdW5EZXZp
Y2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgcmVz
dWx0ID0gRm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZpY2VJbmRleCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElz
VHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVk
KHVuRGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5E
ZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVy
dHlFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVm
IHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNl
SW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBF
cnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBpbnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4
LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBF
cnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGludCByZXN1bHQgPSBGblRhYmxlLkdldElu
dDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVs
b25nIEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9y
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRVaW50
NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1k
TWF0cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNl
SW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQg
PSBGblRhYmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgs
cHJvcCxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQg
dW5EZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsU3lzdGVtLlRleHQuU3Ry
aW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHBj
aFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRQcm9wRXJyb3JOYW1lRnJv
bUVudW0oRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKGVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZlbnQocmVmIFZSRXZlbnRf
dCBwRXZlbnQsdWludCB1bmNiVlJFdmVudCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9v
bCBQb2xsTmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbixy
ZWYgVlJFdmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBUcmFja2VkRGV2aWNlUG9z
ZV90IHBUcmFja2VkRGV2aWNlUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdpbixyZWYgcEV2ZW50LHVu
Y2JWUkV2ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdldEV2ZW50VHlwZU5hbWVG
cm9tRW51bShFVlJFdmVudFR5cGUgZVR5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQ
dHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oZVR5cGUpOworICAg
ICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goRVZS
RXllIGVFeWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgSGlkZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhpZGRlbkFyZWFNZXNoKGVF
eWUsdHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhp
cyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJv
bGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9u
ZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5Db250cm9sbGVyRGV2aWNl
SW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWlu
dCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5FeHBsaWNpdCldCisgICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJTdGF0ZVVuaW9uCisgICAg
ICAgeworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1Ymxp
YyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJvbGxlclN0YXRlOworICAg
ICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBfR2V0Q29u
dHJvbGxlclN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50IHVuQ29udHJvbGxlckRl
dmljZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1
bkNvbnRyb2xsZXJTdGF0ZVNpemUpCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoKFN5c3Rl
bS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFj
T1NYKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1lbnQu
T1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVyU3RhdGVVbmlvbiB1Owor
ICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFj
a2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAg
ICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOworICAgICAgICAgICAgICAg
ICAgICAgdS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGU7
CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9s
bGVyU3RhdGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHN0YXRlX3BhY2tlZCwo
dWludClTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbC5TaXplT2YodHlwZW9m
KFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOworCisgICAgICAgICAgICAgICAgICAgICBz
dGF0ZV9wYWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBwYWNrZWRfcmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGUodW5Db250cm9sbGVy
RGV2aWNlSW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9sbGVyU3RhdGVTaXplKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisvLyBUaGlzIGlzIGEgdGVy
cmlibGUgaGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJDb250cm9sbGVyU3RhdGVf
dCB3YXMKKy8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhlIHdyb25nIHBhY2tpbmcg
Zm9yIExpbnV4IGFuZCBPU1guCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBl
T3JpZ2luLHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRl
X3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVm
IFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICBbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVy
U3RhdGVXaXRoUG9zZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQo
MCldCisgICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZVdp
dGhQb3NlIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKKyAgICAgICAgICAgICAgW0ZpZWxk
T2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQ
b3NlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNv
bnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNp
emUscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3Jt
ID09IFN5c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxh
dGZvcm1JRC5Vbml4KSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0
Q29udHJvbGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OworICAgICAgICAgICAgICAgICAgICAgVlJD
b250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0
YXRlX3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3Rh
dGVXaXRoUG9zZVBhY2tlZCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250
cm9sbGVyU3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7
CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9s
bGVyU3RhdGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUluZGV4LHJl
ZiBzdGF0ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNo
YWwuU2l6ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpLHJlZiBwVHJhY2tl
ZERldmljZVBvc2UpOworCisgICAgICAgICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNr
KHJlZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNr
ZWRfcmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2luLHVuQ29udHJvbGxlckRl
dmljZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSxyZWYg
cFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9s
bGVyRGV2aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRpb25NaWNyb1NlYykKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRpY1B1bHNlKHVuQ29udHJv
bGxlckRldmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1NlYyk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQg
ZUJ1dHRvbklkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFi
bGUuR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBzdHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZSBlQXhpc1R5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVz
dWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oZUF4aXNUeXBl
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYXB0dXJlSW5wdXRGb2N1
cygpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLlJlbGVhc2VJbnB1dEZvY3VzKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElz
SW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCisgICAgICAgeworICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQ
cm9jZXNzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5n
IHBjaFJlcXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQgdW5SZXNwb25zZUJ1ZmZl
clNpemUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuRHJp
dmVyRGVidWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxwY2hSZXNwb25zZUJ1ZmZl
cix1blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVw
ZGF0ZSh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJGaXJt
d2FyZUVycm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVuRGV2aWNl
SW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKKyAgICAgICB9
Cit9CisKKworcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIElWUkV4
dGVuZGVkRGlzcGxheSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkV4dGVuZGVkRGlzcGxh
eShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAo
SVZSRXh0ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlw
ZW9mKElWUkV4dGVuZGVkRGlzcGxheSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBH
ZXRXaW5kb3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVmIHVpbnQgcG5XaWR0aCxy
ZWYgdWludCBwbkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuWCA9IDA7CisgICAg
ICAgICAgICAgIHBuWSA9IDA7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAg
ICAgICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0V2luZG93Qm91bmRz
KHJlZiBwblgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSxyZWYgdWlu
dCBwblgscmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCisg
ICAgICAgeworICAgICAgICAgICAgICBwblggPSAwOworICAgICAgICAgICAgICBwblkgPSAwOwor
ICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOwor
ICAgICAgICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0KGVFeWUscmVmIHBuWCxy
ZWYgcG5ZLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgscmVmIGludCBw
bkFkYXB0ZXJPdXRwdXRJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuQWRhcHRlcklu
ZGV4ID0gMDsKKyAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5kZXggPSAwOworICAgICAg
ICAgICAgICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCxyZWYg
cG5BZGFwdGVyT3V0cHV0SW5kZXgpOworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZS
VHJhY2tlZENhbWVyYQoreworICAgICAgIElWUlRyYWNrZWRDYW1lcmEgRm5UYWJsZTsKKyAgICAg
ICBpbnRlcm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJhKU1hcnNoYWwuUHRyVG9T
dHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1lcmEpKTsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bShFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50
UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oZUNhbWVyYUVy
cm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3Vs
dCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2Ft
ZXJhKHVpbnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEpCisgICAgICAgeworICAg
ICAgICAgICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2aWNlSW5kZXgscmVmIHBI
YXNDYW1lcmEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5E
ZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQg
cG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1lQnVmZmVyU2l6ZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdo
dCA9IDA7CisgICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0gMDsKKyAgICAgICAgICAg
ICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRnJhbWVT
aXplKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCxyZWYg
cG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNp
Y3ModWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBl
LHJlZiBIbWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBG
b2NhbExlbmd0aCxyZWYgcENlbnRlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJv
amVjdGlvbih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFt
ZVR5cGUsZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1hdHJpeDQ0X3QgcFByb2pl
Y3Rpb24pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVz
dWx0ID0gRm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBl
LGZsWk5lYXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNx
dWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCxyZWYgdWxvbmcgcEhh
bmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBIYW5kbGUgPSAwOworICAgICAgICAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5BY3F1aXJlVmlkZW9TdHJl
YW1pbmdTZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJy
b3IgUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRDYW1lcmEpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1l
cmEsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRnJhbWVCdWZm
ZXIsdWludCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3Ry
ZWFtRnJhbWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxwRnJhbWVCdWZmZXIsbkZy
YW1lQnVmZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWludCBuRGV2aWNlSW5kZXgs
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBWUlRleHR1cmVCb3VuZHNf
dCBwVGV4dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAgICAgICAgIHBuSGVpZ2h0
ID0gMDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYg
cFRleHR1cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBEM0QxMURldmljZU9yUmVz
b3VyY2UscmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LHJlZiBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5
cGUscEQzRDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxy
ZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdl
dFZpZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJlSWQscmVmIENhbWVyYVZp
ZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBuRnJhbWVIZWFkZXJTaXpl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAg
ICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1U
ZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGdsVGV4dHVyZUlkLHJlZiBw
RnJhbWVIZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFz
ZVZpZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLHVpbnQgZ2xUZXh0dXJl
SWQpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZ2xU
ZXh0dXJlSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKwor
CitwdWJsaWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCit7CisgICAgICAgSVZSQXBwbGljYXRpb25z
IEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25zKEludFB0ciBwSW50ZXJm
YWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJBcHBsaWNhdGlvbnMp
TWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQXBwbGljYXRpb25z
KSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxp
Y2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCxib29s
IGJUZW1wb3JhcnkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
IHJlc3VsdCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1h
bmlmZXN0RnVsbFBhdGgsYlRlbXBvcmFyeSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFwcGxp
Y2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0
aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBib29sIElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FwcGxpY2F0aW9uSW5zdGFs
bGVkKHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQ291bnQoKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFw
cGxpY2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlv
bkluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5B
cHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVuQXBwbGljYXRp
b25JbmRleCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25F
cnJvciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsc3RyaW5n
IHBjaEFwcEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0
aW9uS2V5QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVm
ZmVyTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFw
cEtleSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJv
ciBMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSxzdHJp
bmcgcGNoTmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlzKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaFRl
bXBsYXRlQXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3QXBwS2V5LHBLZXlzLCh1
aW50KSBwS2V5cy5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZy
b21NaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFyZ3MpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNo
QXBwbGljYXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJncyk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlv
bkVycm9yIExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVu
Y2hEYXNoYm9hcmRPdmVybGF5KHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNo
KHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5KTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9u
RXJyb3IgSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBL
ZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9
IEZuVGFibGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxwY2hBcHBLZXkpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBH
ZXRBcHBsaWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHBj
aEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0oRVZSQXBwbGlj
YXRpb25FcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQg
PSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoc3RyaW5n
IHBjaEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1blByb3BlcnR5VmFsdWVC
dWZmZXJMZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb3BlcnR5U3Ry
aW5nKHBjaEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1ZmZlcix1blByb3BlcnR5
VmFsdWVCdWZmZXJMZW4scmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9v
bChzdHJpbmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBF
VlJBcHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wocGNoQXBwS2V5LGVQ
cm9wZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0
cmluZyBwY2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHkscmVmIEVWUkFw
cGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChwY2hBcHBLZXksZVBy
b3BlcnR5LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoKHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRBcHBsaWNh
dGlvbkF1dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25B
dXRvTGF1bmNoKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJB
cHBsaWNhdGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBw
Y2hBcHBLZXksc3RyaW5nIHBjaE1pbWVUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZS
QXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1bHRBcHBsaWNhdGlvbkZv
ck1pbWVUeXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldERlZmF1bHRBcHBsaWNhdGlv
bkZvck1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVp
bnQgdW5BcHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUocGNoTWltZVR5cGUs
cGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25TdXBw
b3J0ZWRNaW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVy
LHVpbnQgdW5NaW1lVHlwZXNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMocGNoQXBwS2V5
LHBjaE1pbWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9u
c1RoYXRTdXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcHBLZXlz
VGhhdFN1cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcikKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNU
aGF0U3VwcG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZl
cix1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJn
dW1lbnRzKHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1bkFyZ3MpCisgICAgICAg
eworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25MYXVu
Y2hBcmd1bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBH
ZXRTdGFydGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtl
eUJ1ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBjaEFwcEtleUJ1ZmZlcix1
bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0
aW9uU3RhdGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0
aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0
aW9uRXJyb3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtl
eSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhwY2hBcHBLZXkpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5n
IEdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShFVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25TdGF0ZSBzdGF0ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciBy
ZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51
bShzdGF0ZSk7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShy
ZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVx
dWVzdGVkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5J
c1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEludGVy
bmFsUHJvY2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNoQXJndW1lbnRzLHN0cmlu
ZyBwY2hXb3JraW5nRGlyZWN0b3J5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFsUHJvY2VzcyhwY2hCaW5h
cnlQYXRoLHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNj
ZW5lUHJvY2Vzc0lkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZQoreworICAg
ICAgIElWUkNoYXBlcm9uZSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZShJ
bnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
Q2hhcGVyb25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkNo
YXBlcm9uZSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYWxpYnJhdGlvblN0YXRl
KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBib29sIEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJlZiBmbG9hdCBwU2l6ZVop
CisgICAgICAgeworICAgICAgICAgICAgICBwU2l6ZVggPSAwOworICAgICAgICAgICAgICBwU2l6
ZVogPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFT
aXplKHJlZiBwU2l6ZVgscmVmIHBTaXplWik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhUmVjdChyZWYgSG1kUXVh
ZF90IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0UGxheUFyZWFSZWN0KHJlZiByZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgU2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXks
aW50IG5OdW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2Us
cmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9yQXJyYXksbk51bU91dHB1
dENvbG9ycyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYgcE91dHB1dENhbWVyYUNv
bG9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQXJlQm91bmRzVmlz
aWJsZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2UpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9yY2UpOworICAgICAgIH0K
K30KKworCitwdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKK3sKKyAgICAgICBJVlJDaGFw
ZXJvbmVTZXR1cCBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZVNldHVwKElu
dFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJD
aGFwZXJvbmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJ
VlJDaGFwZXJvbmVTZXR1cCkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDb21taXRX
b3JraW5nQ29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdvcmtpbmdDb3B5KGNvbmZp
Z0ZpbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCisgICAgICAgeworICAgICAgICAgICAgICBG
blRhYmxlLlJldmVydFdvcmtpbmdDb3B5KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IEdldFdvcmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVa
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsKKyAgICAgICAgICAgICAgcFNp
emVaID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQ
bGF5QXJlYVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVh
UmVjdChyZWYgSG1kUXVhZF90IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgcmVjdCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFdv
cmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0gMDsKKyAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZv
KG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5l
dyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFi
bGUuR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFk
c0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBw
UXVhZHNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQg
PSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lv
bkJvdW5kc0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7CisgICAgICAgICAgICAgIHBRdWFk
c0J1ZmZlcj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKKyAgICAgICAgICAgICAgcmVz
dWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVm
IHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3Jr
aW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFN0YW5k
aW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUo
ZmxvYXQgc2l6ZVgsZmxvYXQgc2l6ZVopCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LlNldFdvcmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1
YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFkc0J1ZmZlci5MZW5ndGgp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2lu
Z1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29ya2lu
Z1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJl
ZiBwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmln
RmlsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVsb2FkRnJvbURpc2soY29u
ZmlnRmlsZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldExpdmVTZWF0ZWRaZXJv
UG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQg
PSBGblRhYmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwbWF0
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNUYWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIs
KHVpbnQpIHBUYWdzQnVmZmVyLkxlbmd0aCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IEdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBbXSBwVGFnc0J1ZmZlcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQgPSAwOworICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZv
KG51bGwscmVmIHB1blRhZ0NvdW50KTsKKyAgICAgICAgICAgICAgcFRhZ3NCdWZmZXI9IG5ldyBi
eXRlW3B1blRhZ0NvdW50XTsKKyAgICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZl
Q29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1blRhZ0NvdW50KTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wg
U2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldFdvcmtpbmdQ
aHlzaWNhbEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3Ro
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IGJvb2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1
ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7Cisg
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlUGh5c2ljYWxCb3VuZHNJ
bmZvKG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9
IG5ldyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZu
VGFibGUuR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1YWRz
Q291bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgYm9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBw
QnVmZmVyLHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
cG5CdWZmZXJMZW5ndGggPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
RXhwb3J0TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSW1wb3J0
RnJvbUJ1ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5JbXBvcnRGbGFncykKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5JbXBvcnRGcm9tQnVm
ZmVyVG9Xb3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNvbXBvc2l0b3IKK3sK
KyAgICAgICBJVlJDb21wb3NpdG9yIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQ29tcG9z
aXRvcihJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUg
PSAoSVZSQ29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVv
ZihJVlJDb21wb3NpdG9yKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFRyYWNr
aW5nU3BhY2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2luKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcmVzdWx0ID0g
Rm5UYWJsZS5HZXRUcmFja2luZ1NwYWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2Vz
KFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxUcmFja2VkRGV2aWNlUG9z
ZV90IFtdIHBHYW1lUG9zZUFycmF5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9z
aXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBSZW5kZXJQb3NlQXJyYXks
KHVpbnQpIHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFycmF5LCh1aW50KSBwR2Ft
ZVBvc2VBcnJheS5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQb3NlcyhUcmFja2Vk
RGV2aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBw
R2FtZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBw
UmVuZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJy
YXkuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJ
bmRleCh1aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dFBv
c2UscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TGFzdFBv
c2VGb3JUcmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYgcE91dHB1dFBvc2UscmVm
IHBPdXRwdXRHYW1lUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KEVWUkV5ZSBlRXllLHJl
ZiBUZXh0dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsRVZSU3Vi
bWl0RmxhZ3MgblN1Ym1pdEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9z
aXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVmIHBUZXh0dXJlLHJlZiBw
Qm91bmRzLG5TdWJtaXRGbGFncyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGlt
aW5nIHBUaW1pbmcsdWludCB1bkZyYW1lc0FnbykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJv
b2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRpbWluZyx1bkZyYW1lc0Fn
byk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB1aW50IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5n
LHVpbnQgbkZyYW1lcykKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGcmFtZVRp
bWVSZW1haW5pbmcoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBD
b21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3RhdHNTaXplSW5CeXRlcykK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBw
U3RhdHMsblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBG
YWRlVG9Db2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBm
Qmx1ZSxmbG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3JlZW4sZkJsdWUsZkFscGhh
LGJCYWNrZ3JvdW5kKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhtZENvbG9yX3QgR2V0Q3Vy
cmVudEZhZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
SG1kQ29sb3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRlQ29sb3IoYkJhY2tncm91
bmQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRlSW4pCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJGYWRlSW4pOworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBoYSgpCisgICAgICAgewor
ICAgICAgICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRHcmlkQWxwaGEo
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUkNvbXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0dXJlX3QgW10gcFRleHR1
cmVzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50KSBwVGV4dHVyZXMuTGVu
Z3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCisgICAgICAgeworICAgICAgICAgICAgICBG
blRhYmxlLkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgQ29tcG9zaXRvckJyaW5nVG9Gcm9udCgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgQ29tcG9zaXRvckdvVG9CYWNrKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUu
Q29tcG9zaXRvckdvVG9CYWNrKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIENvbXBv
c2l0b3JRdWl0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9zaXRvclF1
aXQoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNGdWxsc2NyZWVuKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Z1bGxzY3JlZW4oKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVp
bnQgR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0TGFzdEZyYW1lUmVuZGVyZXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1
bHQgPSBGblRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhblJlbmRlclNjZW5lKCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYW5SZW5kZXJT
Y2VuZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBTaG93TWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZu
VGFibGUuU2hvd01pcnJvcldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBI
aWRlTWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuSGlkZU1p
cnJvcldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc01pcnJvcldpbmRv
d1Zpc2libGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LklzTWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMo
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNob3VsZEFw
cFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlv
bk9uKGJvb2wgYk92ZXJyaWRlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Gb3Jj
ZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVuZCk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKEVW
UkV5ZSBlRXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0Qx
MVNoYWRlclJlc291cmNlVmlldykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0
b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVEM0QxMShlRXllLHBEM0Qx
MURldmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZWxl
YXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCisg
ICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEo
cEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkNv
bXBvc2l0b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUscmVmIHVpbnQgcGds
VGV4dHVyZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVFeWUscmVmIHBnbFRleHR1
cmVJZCxwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSh1
aW50IGdsVGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVNoYXJlZEdMVGV4dHVy
ZShnbFRleHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBMb2NrR0xTaGFyZWRUZXh0
dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgVW5sb2NrR0xTaGFy
ZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAg
eworICAgICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2Vzcyhn
bFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRW
dWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVy
IHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWlu
dCByZXN1bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBj
aFZhbHVlLHVuQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJl
ZChJbnRQdHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFs
dWUsdWludCB1bkJ1ZmZlclNpemUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3Vs
dCA9IEZuVGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBQaHlzaWNhbERl
dmljZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZST3ZlcmxheQoreworICAgICAgIElW
Uk92ZXJsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJPdmVybGF5KEludFB0ciBwSW50
ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJPdmVybGF5KU1h
cnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUk92ZXJsYXkpKTsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5kT3ZlcmxheShzdHJpbmcg
cGNoT3ZlcmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAg
ICAgICAgICBwT3ZlcmxheUhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlLZXkscmVmIHBPdmVybGF5
SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5
LHN0cmluZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0gMDsKKyAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlT3ZlcmxheShwY2hPdmVy
bGF5S2V5LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5SGFuZGxlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5EZXN0cm95T3Zl
cmxheSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5T3Zlcmxh
eSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVy
bGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxPdmVybGF5
SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCisgICAgICAgeworICAgICAgICAg
ICAgICB1bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBH
ZXRPdmVybGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWls
ZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVycm9y
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJs
YXlLZXkodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVp
bnQgR2V0T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVWUk92ZXJsYXlFcnJvciBw
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
T3ZlcmxheU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVy
cm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSxJbnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVmIHVpbnQgcHVuV2lkdGgs
cmVmIHVpbnQgcHVuSGVpZ2h0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuV2lkdGggPSAw
OworICAgICAgICAgICAgICBwdW5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRhKHVsT3ZlcmxheUhhbmRs
ZSxwdkJ1ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBwdW5IZWlnaHQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5n
IEdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJyb3IgZXJyb3IpCisgICAg
ICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5RXJy
b3JOYW1lRnJvbUVudW0oZXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJU
b1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVu
UElEKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUsdW5QSUQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBH
ZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5UmVuZGVyaW5nUGlk
KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxP
dmVybGF5SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxib29sIGJFbmFibGVkKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxiRW5hYmxlZCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3Zlcmxh
eUZsYWdzIGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCisgICAgICAgeworICAgICAg
ICAgICAgICBwYkVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5
RmxhZyxyZWYgcGJFbmFibGVkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IodWxvbmcg
dWxPdmVybGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZsb2F0IGZCbHVlKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0
T3ZlcmxheUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixmQmx1ZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZS
ZWQscmVmIGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHBmUmVkID0gMDsKKyAgICAgICAgICAgICAgcGZHcmVlbiA9IDA7CisgICAgICAgICAg
ICAgIHBmQmx1ZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVmIHBmUmVkLHJlZiBwZkdy
ZWVuLHJlZiBwZkJsdWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsZmxvYXQgZkFscGhhKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRs
ZSxmQWxwaGEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIGZsb2F0IHBmQWxwaGEpCisgICAgICAgeworICAgICAgICAgICAgICBwZkFscGhh
ID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0
T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
U2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmVGV4ZWxB
c3BlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLGZUZXhlbEFzcGVj
dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhh
bmRsZSxyZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBm
VGV4ZWxBc3BlY3QgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLHJlZiBwZlRleGVs
QXNwZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSx1aW50IHVuU29ydE9yZGVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRPcmRlcih1bE92ZXJsYXlI
YW5kbGUsdW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIodWxv
bmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHB1blNvcnRPcmRlciA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHJl
ZiBwdW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlXaWR0
aEluTWV0ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBw
ZldpZHRoSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBwZldpZHRoSW5NZXRlcnMg
PSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRP
dmVybGF5V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmV2lkdGhJbk1ldGVycyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsZmxvYXQgZk1h
eERpc3RhbmNlSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0
ZXJzKHVsT3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxmTWF4RGlzdGFuY2VJbk1l
dGVycyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1l
dGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVy
cyxyZWYgZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcGZNaW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgcGZNYXhEaXN0YW5j
ZUluTWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlI
YW5kbGUscmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhEaXN0YW5jZUluTWV0ZXJz
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0
dXJlQ29sb3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxl
LHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4
dHVyZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxl
LHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
VGV4dHVyZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLHJlZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJs
YXlUcmFuc2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFuc2Zvcm1UeXBlKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4
MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJh
bnNmb3JtQWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRy
YWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5
VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2lu
Z09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1
bE92ZXJsYXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdp
blRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRy
YWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blRyYWNrZWRE
ZXZpY2UscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zv
cm0pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhh
bmRsZSx1blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNm
b3JtKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0
aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLHJlZiBI
bWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7CisgICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2Vk
RGV2aWNlUmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFja2VkRGV2aWNlLHJlZiBw
bWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxl
LHVpbnQgdW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlU
cmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSx1bkRldmljZUlu
ZGV4LHBjaENvbXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1U
cmFja2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5E
ZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZVNp
emUpCisgICAgICAgeworICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRleCA9IDA7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zv
cm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuRGV2aWNlSW5k
ZXgscGNoQ29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBT
aG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAg
ICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3ZlcmxheSh1bE92ZXJsYXlI
YW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkhpZGVPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzT3ZlcmxheVZpc2libGUodWxvbmcg
dWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBH
ZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxPdmVybGF5SGFuZGxlLEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRWZWN0b3IyX3QgY29vcmRp
bmF0ZXNJbk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5zZm9ybSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFRyYW5z
Zm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUsZVRyYWNraW5nT3JpZ2lu
LGNvb3JkaW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRPdmVy
bGF5RXZlbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQg
dW5jYlZSRXZlbnQpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuUG9sbE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJlZiBwRXZlbnQsdW5jYlZS
RXZlbnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRNZXRob2QpCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5SW5wdXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0TWV0aG9kKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3Zl
cmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnB1dE1ldGhvZCh1bE92
ZXJsYXlIYW5kbGUsZUlucHV0TWV0aG9kKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VT
Y2FsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2Fs
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2Nh
bGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSxyZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU1vdXNlU2Nh
bGUodWxPdmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENvbXB1dGVPdmVybGF5
SW50ZXJzZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5SW50ZXJzZWN0
aW9uUGFyYW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBS
ZXN1bHRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNv
bXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFBhcmFtcyxyZWYg
cFJlc3VsdHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5IYW5kbGVDb250cm9sbGVy
T3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUsdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNIb3ZlclRh
cmdldE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdldEdhbWVwYWRGb2N1c092ZXJsYXko
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRHYW1l
cGFkRm9jdXNPdmVybGF5KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1
bG9uZyB1bE5ld0ZvY3VzT3ZlcmxheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxOZXdGb2N1
c092ZXJsYXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVj
dGlvbiBlRGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU5laWdo
Ym9yKGVEaXJlY3Rpb24sdWxGcm9tLHVsVG8pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9j
dXNUb05laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sdWxvbmcgdWxGcm9tKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
TW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZyb20pOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVGV4dHVyZV90
IHBUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFuZGxlLHJlZiBwVGV4dHVy
ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5DbGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
U2V0T3ZlcmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQg
dW5XaWR0aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSYXcodWxPdmVy
bGF5SGFuZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0aCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxzdHJpbmcgcGNoRmls
ZVBhdGgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxlLHBjaEZpbGVQYXRoKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVm
IEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYscmVm
IHVpbnQgcFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCxyZWYg
RVRleHR1cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29sb3JTcGFjZSxyZWYgVlJU
ZXh0dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAgICAgICAgICAgICBw
V2lkdGggPSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgcE5h
dGl2ZUZvcm1hdCA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE5hdGl2ZVRleHR1
cmVIYW5kbGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYgcEhlaWdodCxyZWYgcE5h
dGl2ZUZvcm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJlZiBwVGV4dHVyZUJvdW5k
cyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VOYXRpdmVPdmVy
bGF5SGFuZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhhbmRsZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWlu
dCBwV2lkdGgscmVmIHVpbnQgcEhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBXaWR0
aCA9IDA7CisgICAgICAgICAgICAgIHBIZWlnaHQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVy
bGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZVNpemUodWxPdmVybGF5
SGFuZGxlLHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hi
b2FyZE92ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRs
eU5hbWUscmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1bWJuYWlsSGFuZGxlKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOworICAgICAgICAgICAgICBw
VGh1bWJuYWlsSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJs
YXlGcmllbmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJuYWlsSGFuZGxlKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wg
SXNEYXNoYm9hcmRWaXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVy
bGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxPdmVybGF5SGFuZGxl
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5l
UHJvY2Vzcyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50
IHB1blByb2Nlc3NJZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1blByb2Nlc3NJZCA9IDA7
CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldERhc2hi
b2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJlZiBwdW5Qcm9jZXNzSWQp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBTaG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJsYXlUb1Nob3cpOworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcmltYXJ5RGFz
aGJvYXJkRGV2aWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2Rl
LGludCBlTGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgs
c3RyaW5nIHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZh
bHVlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1vZGUscGNoRGVzY3JpcHRp
b24sdW5DaGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1vZGUsdVVzZXJWYWx1ZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsaW50IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmluZyBwY2hEZXNjcmlwdGlv
bix1aW50IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJvb2wgYlVzZU1pbmltYWxN
b2RlLHVsb25nIHVVc2VyVmFsdWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsT3ZlcmxheUhh
bmRsZSxlSW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxw
Y2hFeGlzdGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRLZXlib2Fy
ZFRleHQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVpbnQgY2NoVGV4dCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRLZXlib2FyZFRl
eHQocGNoVGV4dCxjY2hUZXh0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuSGlkZUtleWJvYXJkKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4g
ZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvS2V5
Ym9hcmRUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEtleWJv
YXJkVHJhbnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmln
aW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0
S2V5Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLEhtZFJlY3Qy
X3QgYXZvaWRSZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRSZWN0KTsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFz
ayh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVfdCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmltaXRpdmVzLHVpbnQgdW5Q
cmltaXRpdmVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2sodWxPdmVybGF5SGFuZGxl
LHJlZiBwTWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1blByaW1pdGl2ZVNpemUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVm
IHVpbnQgcEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcEZsYWdzID0gMDsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWdz
KHVsT3ZlcmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93
TWVzc2FnZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENhcHRpb24sc3RyaW5nIHBj
aEJ1dHRvbjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcgcGNoQnV0dG9uMlRleHQs
c3RyaW5nIHBjaEJ1dHRvbjNUZXh0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJNZXNzYWdl
T3ZlcmxheVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3NhZ2VPdmVybGF5KHBjaFRl
eHQscGNoQ2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4dCxwY2hCdXR0b24yVGV4
dCxwY2hCdXR0b24zVGV4dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBJVlJSZW5k
ZXJNb2RlbHMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZW5kZXJNb2RlbHMoSW50UHRy
IHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlJlbmRl
ck1vZGVscylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJSZW5k
ZXJNb2RlbHMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3Ig
TG9hZFJlbmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUscmVmIEludFB0
ciBwcFJlbmRlck1vZGVsKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxF
cnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3luYyhwY2hSZW5kZXJNb2Rl
bE5hbWUscmVmIHBwUmVuZGVyTW9kZWwpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5k
ZXJNb2RlbCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRnJlZVJlbmRlck1vZGVs
KHBSZW5kZXJNb2RlbCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVy
cm9yIExvYWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIEludFB0ciBwcFRleHR1cmUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIHJlc3VsdCA9IEZu
VGFibGUuTG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRleHR1cmUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVl
VGV4dHVyZShJbnRQdHIgcFRleHR1cmUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LkZyZWVUZXh0dXJlKHBUZXh0dXJlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJlbmRl
ck1vZGVsRXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBw
RDNEMTFEZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJl
RDNEMTFfQXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBEM0QxMVRleHR1cmUyRCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJSZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJl
SWQsSW50UHRyIHBEc3RUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVy
TW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKHRl
eHR1cmVJZCxwRHN0VGV4dHVyZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRl
eHR1cmUyRCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRnJlZVRleHR1cmVEM0Qx
MShwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRSZW5k
ZXJNb2RlbE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVsTmFtZUxlbikKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE5h
bWUodW5SZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1blJlbmRlck1vZGVsTmFt
ZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB1aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
dWludCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9u
ZW50Q291bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3VudChwY2hSZW5kZXJNb2Rl
bE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsdWlu
dCB1bkNvbXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50
TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZUxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJlbmRlck1vZGVsTmFtZSx1
bkNvbXBvbmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lTGVuKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25n
IEdldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcg
cGNoQ29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9
IEZuVGFibGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29t
cG9uZW50TmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVu
ZGVyTW9kZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1
aWxkZXIgcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRSZW5kZXJN
b2RlbE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21w
b25lbnROYW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudFJlbmRlck1v
ZGVsTmFtZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8g
VGhpcyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29u
dHJvbGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3
cm9uZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5nIHBjaFJlbmRlck1vZGVs
TmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNr
ZWQgcENvbnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVf
dCBwU3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRl
KTsKKyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0
cnVjdCBHZXRDb21wb25lbnRTdGF0ZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmll
bGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5kZXJNb2RlbHMuX0dldENv
bXBvbmVudFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zm
c2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVudFN0YXRlUGFja2VkIHBH
ZXRDb21wb25lbnRTdGF0ZVBhY2tlZDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0
Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9u
ZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHJlZiBSZW5k
ZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29t
cG9uZW50U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCisgICAgICAgeworICAgICAgICAgICAgICBp
ZiAoKFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRm
b3JtSUQuTWFjT1NYKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52
aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb21wb25lbnRTdGF0ZVVu
aW9uIHU7CisgICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBz
dGF0ZV9wYWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0gbnVsbDsKKyAgICAgICAg
ICAgICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJsZS5HZXRDb21wb25lbnRT
dGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jlc3VsdCA9IHUucEdldENv
bXBvbmVudFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJl
ZiBzdGF0ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKworICAgICAg
ICAgICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3Rh
dGUocGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVmIHBDb250cm9sbGVyU3Rh
dGUscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVuZGVyTW9kZWxIYXNDb21w
b25lbnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5SZW5kZXJNb2Rl
bEhhc0NvbXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdl
dFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1blRodW1ibmFpbFVSTExl
bixyZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHBjaFJl
bmRlck1vZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxVUkxMZW4scmVmIHBlRXJy
b3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdWludCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxO
YW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLHVpbnQgdW5Pcmln
aW5hbFBhdGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE9yaWdpbmFs
UGF0aChwY2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVuT3JpZ2luYWxQYXRoTGVu
LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJl
bmRlck1vZGVsRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVz
dWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAg
ICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25zCit7CisgICAgICAgSVZS
Tm90aWZpY2F0aW9ucyBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUk5vdGlmaWNhdGlvbnMo
SW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElW
Uk5vdGlmaWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2Yo
SVZSTm90aWZpY2F0aW9ucykpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0
aW9uRXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1bG9uZyB1
bFVzZXJWYWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5nIHBjaFRleHQsRVZSTm90
aWZpY2F0aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1hcF90IHBJbWFnZSxyZWYg
dWludCBwTm90aWZpY2F0aW9uSWQpCisgICAgICAgeworICAgICAgICAgICAgICBwTm90aWZpY2F0
aW9uSWQgPSAwOworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBG
blRhYmxlLkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUsdWxVc2VyVmFsdWUsdHlw
ZSxwY2hUZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRpb25JZCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJOb3RpZmlj
YXRpb25FcnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25JZCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUu
UmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUlNldHRpbmdzCit7Cisg
ICAgICAgSVZSU2V0dGluZ3MgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTZXR0aW5ncyhJ
bnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
U2V0dGluZ3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2V0
dGluZ3MpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRTZXR0aW5nc0Vycm9y
TmFtZUZyb21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51
bShlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2ko
cmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU3luYyhib29sIGJGb3JjZSxy
ZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9v
bCByZXN1bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0Qm9vbChz
dHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9vbCBiVmFsdWUscmVmIEVW
UlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUu
U2V0Qm9vbChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxyZWYgcGVFcnJvcik7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0
cmluZyBwY2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEludDMyKHBjaFNlY3Rpb24s
cGNoU2V0dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5
LGZsb2F0IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxm
bFZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0U3Ry
aW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxzdHJpbmcgcGNoVmFs
dWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUscmVm
IHBlRXJyb3IpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sKHN0cmluZyBw
Y2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVy
cm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJv
b2wocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzIoc3Ry
aW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9y
IHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRJbnQzMihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGZsb2F0IEdldEZs
b2F0KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgR2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxTeXN0
ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1ZUxlbixyZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRT
dHJpbmcocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1blZhbHVlTGVuLHJlZiBw
ZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVtb3ZlU2VjdGlvbihzdHJp
bmcgcGNoU2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rpb24scmVmIHBlRXJyb3Ip
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5n
IHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBl
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbW92ZUtleUluU2VjdGlv
bihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAgICAgICB9Cit9CisK
KworcHVibGljIGNsYXNzIENWUlNjcmVlbnNob3RzCit7CisgICAgICAgSVZSU2NyZWVuc2hvdHMg
Rm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJbnRQdHIgcEludGVyZmFj
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2NyZWVuc2hvdHMpTWFy
c2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2NyZWVuc2hvdHMpKTsK
KyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0U2NyZWVu
c2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBl
LHN0cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCisgICAgICAg
eworICAgICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7CisgICAgICAgICAgICAg
IEVWUlNjcmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVlc3RTY3JlZW5zaG90KHJl
ZiBwT3V0U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVu
YW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJTY3JlZW5zaG90VHlwZSBb
XSBwU3VwcG9ydGVkVHlwZXMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3VwcG9ydGVkVHlwZXMsKGlu
dCkgcFN1cHBvcnRlZFR5cGVzLkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90
UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZSU2NyZWVuc2hvdEVycm9y
IHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIHJlc3Vs
dCA9IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3JlZW5zaG90SGFuZGxlLHJl
ZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSh1aW50IHNjcmVlbnNo
b3RIYW5kbGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSxTeXN0
ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2NoRmlsZW5hbWUscmVmIEVW
UlNjcmVlbnNob3RFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJl
c3VsdCA9IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoc2NyZWVuc2hvdEhh
bmRsZSxmaWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUscmVmIHBFcnJvcik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJT
Y3JlZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhh
bmRsZSxmbG9hdCBmbFByb2dyZXNzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVu
c2hvdEVycm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHNjcmVl
bnNob3RIYW5kbGUsZmxQcm9ncmVzcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVl
bnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5nIHBjaFByZXZpZXdGaWxl
bmFtZSxzdHJpbmcgcGNoVlJGaWxlbmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBPdXRT
Y3JlZW5zaG90SGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJl
c3VsdCA9IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBPdXRTY3JlZW5zaG90SGFu
ZGxlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBT
dWJtaXRTY3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0
eXBlLHN0cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFNvdXJjZVZSRmls
ZW5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hTb3Vy
Y2VQcmV2aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZXNvdXJjZXMK
K3sKKyAgICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZXNv
dXJjZXMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
ID0gKElWUlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVv
ZihJVlJSZXNvdXJjZXMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgTG9hZFNoYXJl
ZFJlc291cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBjaEJ1ZmZlcix1aW50IHVu
QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxl
LkxvYWRTaGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVmZmVyLHVuQnVmZmVyTGVu
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHVpbnQgR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBw
Y2hSZXNvdXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZmZXIsdWludCB1bkJ1ZmZl
ckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRS
ZXNvdXJjZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJjZVR5cGVEaXJlY3Rvcnks
cGNoUGF0aEJ1ZmZlcix1bkJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBPcGVuVlJJbnRlcm9wCit7CisgICAgICAg
W0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSW5pdElu
dGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisg
ICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5p
dEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlKTsKKyAg
ICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9T
aHV0ZG93bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5D
ZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lkIFNodXRkb3duSW50ZXJu
YWwoKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2lu
dCA9ICJWUl9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50
aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNIbWRQcmVz
ZW50KCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9p
bnQgPSAiVlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5n
Q29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElz
UnVudGltZUluc3RhbGxlZCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9h
cGkiLCBFbnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9yIiwgQ2FsbGluZ0NvbnZl
bnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGlj
IGV4dGVybiBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKTsK
KyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJW
Ul9HZXRHZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVu
dGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0R2Vu
ZXJpY0ludGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQU3RyKV0gc3RyaW5n
IHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvcik7CisgICAgICAg
W0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNJbnRl
cmZhY2VWZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9u
LkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBw
Y2hJbnRlcmZhY2VWZXJzaW9uKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJf
YXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxsaW5nQ29udmVudGlvbiA9
IENhbGxpbmdDb252ZW50aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJu
IHVpbnQgR2V0SW5pdFRva2VuKCk7Cit9CisKKworcHVibGljIGVudW0gRVZSRXllCit7CisgICAg
ICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEsCit9CitwdWJsaWMgZW51bSBF
VGV4dHVyZVR5cGUKK3sKKyAgICAgICBEaXJlY3RYID0gMCwKKyAgICAgICBPcGVuR0wgPSAxLAor
ICAgICAgIFZ1bGthbiA9IDIsCisgICAgICAgSU9TdXJmYWNlID0gMywKKyAgICAgICBEaXJlY3RY
MTIgPSA0LAorfQorcHVibGljIGVudW0gRUNvbG9yU3BhY2UKK3sKKyAgICAgICBBdXRvID0gMCwK
KyAgICAgICBHYW1tYSA9IDEsCisgICAgICAgTGluZWFyID0gMiwKK30KK3B1YmxpYyBlbnVtIEVU
cmFja2luZ1Jlc3VsdAoreworICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIENhbGli
cmF0aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCisgICAgICAgQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9
IDEwMSwKKyAgICAgICBSdW5uaW5nX09LID0gMjAwLAorICAgICAgIFJ1bm5pbmdfT3V0T2ZSYW5n
ZSA9IDIwMSwKK30KK3B1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBJ
bnZhbGlkID0gMCwKKyAgICAgICBITUQgPSAxLAorICAgICAgIENvbnRyb2xsZXIgPSAyLAorICAg
ICAgIEdlbmVyaWNUcmFja2VyID0gMywKKyAgICAgICBUcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9
CitwdWJsaWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgSW52YWxpZCA9
IDAsCisgICAgICAgTGVmdEhhbmQgPSAxLAorICAgICAgIFJpZ2h0SGFuZCA9IDIsCit9CitwdWJs
aWMgZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIFRyYWNraW5nVW5pdmVy
c2VTZWF0ZWQgPSAwLAorICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAg
ICAgVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCit9CitwdWJsaWMgZW51
bSBFVHJhY2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9JbnZhbGlkID0gMCwKKyAg
ICAgICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAorICAgICAgIFByb3Bf
TW9kZWxOdW1iZXJfU3RyaW5nID0gMTAwMSwKKyAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJp
bmcgPSAxMDAyLAorICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCisg
ICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVm
YWN0dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVW
ZXJzaW9uX1N0cmluZyA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmlu
ZyA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJp
bmcgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0g
MTAwOSwKKyAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9IDEwMTAsCisgICAgICAg
UHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0
dGVyeVBlcmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAorICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRy
YW5zZm9ybV9NYXRyaXgzNCA9IDEwMTMsCisgICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFp
bGFibGVfQm9vbCA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9v
bCA9IDEwMTUsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0g
MTAxNiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0gMTAxNywKKyAgICAg
ICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAorICAgICAgIFByb3BfRlBHQVZl
cnNpb25fVWludDY0ID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAy
MCwKKyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAorICAgICAgIFByb3Bf
RG9uZ2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0
ZG93bl9Cb29sID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdp
dGhIbWRfQm9vbCA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9C
b29sID0gMTAyNSwKKyAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29s
ID0gMTAyNiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAorICAg
ICAgIFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKKyAgICAg
ICBQcm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBQcm9wX0hhc0NhbWVyYV9C
b29sID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKKyAg
ICAgICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCisgICAg
ICAgUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCisgICAgICAg
UHJvcF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKKyAgICAgICBQcm9wX1JlcG9ydHNUaW1l
U2luY2VWU3luY19Cb29sID0gMjAwMCwKKyAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bo
b3RvbnNfRmxvYXQgPSAyMDAxLAorICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9
IDIwMDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBQ
cm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCisgICAgICAgUHJvcF9QcmV2aW91
c1VuaXZlcnNlSWRfVWludDY0ID0gMjAwNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZl
cnNpb25fVWludDY0ID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3
LAorICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCisgICAgICAgUHJvcF9E
aXNwbGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVf
RmxvYXQgPSAyMDEwLAorICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEyLAorICAgICAgIFByb3Bf
RGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAgIFByb3BfRGlzcGxheUdD
QmxhY2tDbGFtcF9GbG9hdCA9IDIwMTQsCisgICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMy
ID0gMjAxNSwKKyAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIw
MTYsCisgICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAxNywKKyAgICAgICBQcm9w
X0Rpc3BsYXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNwbGF5R0NTY2Fs
ZV9GbG9hdCA9IDIwMTksCisgICAgICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIw
MjAsCisgICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAorICAgICAgIFBy
b3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJM
ZWZ0Vl9GbG9hdCA9IDIwMjMsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0g
MjAyNCwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAorICAgICAg
IFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKKyAgICAgICBQcm9w
X0NhbWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAorICAgICAgIFByb3BfQ2FtZXJh
RmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAgIFByb3BfRGlzcGxheUZQ
R0FWZXJzaW9uX1VpbnQ2NCA9IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0ID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25f
VWludDY0ID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9
IDIwMzIsCisgICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMs
CisgICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9h
dCA9IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3Jl
ZXNfRmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIw
MzYsCisgICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCisgICAg
ICAgUHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKKyAgICAgICBQcm9wX0Rp
c3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0lt
YWdlTnVtQ2hhbm5lbHNfSW50MzIgPSAyMDQwLAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VE
YXRhX0JpbmFyeSA9IDIwNDEsCisgICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29s
ID0gMjA0MiwKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKKyAg
ICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwKKyAgICAgICBQcm9wX0F4
aXMwVHlwZV9JbnQzMiA9IDMwMDIsCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAzMDAz
LAorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKKyAgICAgICBQcm9wX0F4aXMz
VHlwZV9JbnQzMiA9IDMwMDUsCisgICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAor
ICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKKyAgICAgICBQcm9w
X0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAgICAgIFByb3BfRmllbGRP
ZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdU
b3BEZWdyZWVzX0Zsb2F0ID0gNDAwMiwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVn
cmVlc19GbG9hdCA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVy
c19GbG9hdCA9IDQwMDQsCisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19G
bG9hdCA9IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAg
ICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAgIFByb3BfTmFtZWRJY29u
UGF0aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZVNlYXJjaGluZ19TdHJpbmcgPSA1MDAyLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCisgICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlTm90UmVhZHlfU3RyaW5nID0gNTAwNiwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VTdGFuZGJ5X1N0cmluZyA9IDUwMDcsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlQWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVh
X0JpbmFyeV9TdGFydCA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kID0gNTE1MCwKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAs
CisgICAgICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAorICAgICAgIFByb3BfVmVu
ZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKKyAgICAgICBQcm9wX1ZlbmRvclNw
ZWNpZmljX1Jlc2VydmVkX0VuZCA9IDEwOTk5LAorfQorcHVibGljIGVudW0gRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9IDAsCisgICAgICAgVHJh
Y2tlZFByb3BfV3JvbmdEYXRhVHlwZSA9IDEsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZp
Y2VDbGFzcyA9IDIsCisgICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAorICAg
ICAgIFRyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisgICAgICAgVHJhY2tlZFByb3Bf
SW52YWxpZERldmljZSA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2Vy
dmVyID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3
LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAg
ICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAorICAgICAgIFRyYWNrZWRQcm9w
X1Blcm1pc3Npb25EZW5pZWQgPSAxMCwKKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0
aW9uID0gMTEsCit9CitwdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAgIFN1Ym1p
dF9EZWZhdWx0ID0gMCwKKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGll
ZCA9IDEsCisgICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKKyAgICAgICBTdWJtaXRf
UmVzZXJ2ZWQgPSA0LAorfQorcHVibGljIGVudW0gRVZSU3RhdGUKK3sKKyAgICAgICBVbmRlZmlu
ZWQgPSAtMSwKKyAgICAgICBPZmYgPSAwLAorICAgICAgIFNlYXJjaGluZyA9IDEsCisgICAgICAg
U2VhcmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBSZWFkeSA9IDMsCisgICAgICAgUmVhZHlfQWxl
cnQgPSA0LAorICAgICAgIE5vdFJlYWR5ID0gNSwKKyAgICAgICBTdGFuZGJ5ID0gNiwKKyAgICAg
ICBSZWFkeV9BbGVydF9Mb3cgPSA3LAorfQorcHVibGljIGVudW0gRVZSRXZlbnRUeXBlCit7Cisg
ICAgICAgVlJFdmVudF9Ob25lID0gMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3Rp
dmF0ZWQgPSAxMDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgPSAx
MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAg
IFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAorICAgICAg
IFZSRXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1v
ZGUgPSAxMDYsCisgICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAorICAgICAg
IFZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAorICAgICAgIFZSRXZlbnRf
V2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgVlJFdmVudF9MZW5zRGlzdG9y
dGlvbkNoYW5nZWQgPSAxMTAsCisgICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEs
CisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKKyAgICAgICBWUkV2ZW50X0J1dHRv
blVucHJlc3MgPSAyMDEsCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKKyAgICAg
ICBWUkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAgVlJFdmVudF9Nb3VzZU1vdmUg
PSAzMDAsCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCisgICAgICAgVlJF
dmVudF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciA9IDMw
MywKKyAgICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCisgICAgICAgVlJFdmVudF9TY3Jv
bGwgPSAzMDUsCisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCisgICAgICAgVlJF
dmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1
c0NhcHR1cmVkID0gNDAwLAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAx
LAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisgICAgICAgVlJFdmVudF9T
Y2VuZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNo
YW5nZWQgPSA0MDQsCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKKyAg
ICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIFZSRXZlbnRfU2Nl
bmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCisgICAgICAgVlJF
dmVudF9IaWRlUmVuZGVyTW9kZWxzID0gNDEwLAorICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1v
ZGVscyA9IDQxMSwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKKyAgICAgICBW
UkV2ZW50X092ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3Rp
dmF0ZWQgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCA9IDUwMywK
KyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCisgICAgICAgVlJF
dmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgVlJFdmVudF9SZXNldERhc2hi
b2FyZCA9IDUwNiwKKyAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3LAorICAgICAgIFZS
RXZlbnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1
MDksCisgICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisgICAgICAgVlJFdmVudF9P
dmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdh
bWVwYWRGb2N1c0xvc3QgPSA1MTIsCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVy
ZUNoYW5nZWQgPSA1MTMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24g
PSA1MTQsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1LAorICAg
ICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKKyAgICAgICBWUkV2ZW50X0lt
YWdlRmFpbGVkID0gNTE3LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQg
PSA1MTgsCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKKyAgICAgICBW
UkV2ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RG
YWlsZWQgPSA1MjIsCisgICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQg
PSA1MjMsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUy
NCwKKyAgICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkID0gNTI1LAor
ICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAorICAgICAgIFZSRXZlbnRf
Tm90aWZpY2F0aW9uX0hpZGRlbiA9IDYwMSwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9C
ZWdpbkludGVyYWN0aW9uID0gNjAyLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ry
b3llZCA9IDYwMywKKyAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCisgICAgICAgVlJFdmVudF9Q
cm9jZXNzUXVpdCA9IDcwMSwKKyAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQg
PSA3MDIsCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAorICAgICAgIFZS
RXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9u
ZURhdGFIYXNDaGFuZ2VkID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VI
YXNDaGFuZ2VkID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFu
Z2VkID0gODAyLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9
IDgwMywKKyAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCisgICAgICAg
VlJFdmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCisgICAgICAgVlJFdmVudF9C
YWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAgVlJFdmVudF9DYW1lcmFT
ZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0
dGluZ0hhc0NoYW5nZWQgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hh
dmVDaGFuZ2VkID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVD
aGFuZ2VkID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0g
ODU1LAorICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAorICAgICAgIFZSRXZlbnRf
TUNJbWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFy
dGVkID0gMTEwMCwKKyAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAx
LAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAorICAgICAgIFZSRXZlbnRf
S2V5Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lID0g
MTIwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAw
LAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCisg
ICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwK
KyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAorICAgICAgIFZS
RXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAorICAgICAgIFZSRXZlbnRfQXBw
bGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorICAgICAgIFZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCisgICAgICAgVlJFdmVu
dF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCisgICAgICAgVlJFdmVudF9D
b21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKKyAgICAgICBWUkV2ZW50X0Nv
bXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBWUkV2ZW50X1Ry
YWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCisgICAgICAgVlJFdmVudF9UcmFj
a2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9SZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX0VkaXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF9FbmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9E
aXNhYmxlQ2FwdHVyZSA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlk
ZWxpdHlMZXZlbCA9IDE2MDIsCisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQg
PSAxNjUwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAx
MDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5
LAorfQorcHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKK3sKKyAgICAgICBrX0VEZXZp
Y2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxl
dmVsX0lkbGUgPSAwLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0
aW9uID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9U
aW1lb3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAor
fQorcHVibGljIGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtID0g
MCwKKyAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwKKyAgICAgICBrX0VCdXR0
b25fR3JpcCA9IDIsCisgICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCisgICAgICAga19F
QnV0dG9uX0RQYWRfVXAgPSA0LAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKKyAg
ICAgICBrX0VCdXR0b25fRFBhZF9Eb3duID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSA9IDcsCisg
ICAgICAga19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAgICAgIGtfRUJ1dHRvbl9B
eGlzMCA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAorICAgICAgIGtfRUJ1dHRv
bl9BeGlzMiA9IDM0LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1LAorICAgICAgIGtfRUJ1
dHRvbl9BeGlzNCA9IDM2LAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIs
CisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAorICAgICAgIGtfRUJ1dHRv
bl9EYXNoYm9hcmRfQmFjayA9IDIsCisgICAgICAga19FQnV0dG9uX01heCA9IDY0LAorfQorcHVi
bGljIGVudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBMZWZ0ID0gMSwKKyAgICAgICBSaWdo
dCA9IDIsCisgICAgICAgTWlkZGxlID0gNCwKK30KK3B1YmxpYyBlbnVtIEVIaWRkZW5BcmVhTWVz
aFR5cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAg
a19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hf
TGluZUxvb3AgPSAyLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCit9CitwdWJs
aWMgZW51bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVyQXhp
c19Ob25lID0gMCwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAg
ICAga19lQ29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xsZXJB
eGlzX1RyaWdnZXIgPSAzLAorfQorcHVibGljIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0
VHlwZQoreworICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCisgICAg
ICAgQ29udHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKK30KK3B1YmxpYyBlbnVtIEVD
b2xsaXNpb25Cb3VuZHNTdHlsZQoreworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVH
SU5ORVIgPSAwLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0g
MSwKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMgPSAyLAorICAgICAgIENP
TExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAgIENPTExJU0lPTl9CT1VO
RFNfU1RZTEVfTk9ORSA9IDQsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9
IDUsCit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwK
KyAgICAgICBVbmtub3duT3ZlcmxheSA9IDEwLAorICAgICAgIEludmFsaWRIYW5kbGUgPSAxMSwK
KyAgICAgICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCisgICAgICAgT3ZlcmxheUxpbWl0RXhjZWVk
ZWQgPSAxMywKKyAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCisgICAgICAgS2V5VG9v
TG9uZyA9IDE1LAorICAgICAgIE5hbWVUb29Mb25nID0gMTYsCisgICAgICAgS2V5SW5Vc2UgPSAx
NywKKyAgICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKKyAgICAgICBJbnZhbGlkVHJhY2tl
ZERldmljZSA9IDE5LAorICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMCwKKyAgICAgICBUaHVt
Ym5haWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKKyAgICAgICBBcnJheVRvb1NtYWxsID0gMjIsCisg
ICAgICAgUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEludmFsaWRUZXh0dXJlID0gMjQsCisg
ICAgICAgVW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAorICAgICAgIEtleWJvYXJkQWxyZWFkeUluVXNl
ID0gMjYsCisgICAgICAgTm9OZWlnaGJvciA9IDI3LAorICAgICAgIFRvb01hbnlNYXNrUHJpbWl0
aXZlcyA9IDI5LAorICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwKK30KK3B1YmxpYyBlbnVt
IEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLAor
ICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zl
cmxheSA9IDIsCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKKyAgICAgICBW
UkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LAorICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9y
ID0gNSwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAorICAgICAgIFZS
QXBwbGljYXRpb25fTWF4ID0gNywKK30KK3B1YmxpYyBlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sK
KyAgICAgICBOb25lID0gMCwKKyAgICAgICBTdWNjZXNzID0gMSwKKyAgICAgICBGYWlsID0gMiwK
K30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgT0sgPSAwLAor
ICAgICAgIEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBOb3RpZmljYXRpb25R
dWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCisgICAg
ICAgU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9CitwdWJsaWMgZW51
bSBFVlJJbml0RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBVbmtub3duID0gMSwK
KyAgICAgICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAorICAgICAgIEluaXRfSW5z
dGFsbGF0aW9uQ29ycnVwdCA9IDEwMSwKKyAgICAgICBJbml0X1ZSQ2xpZW50RExMTm90Rm91bmQg
PSAxMDIsCisgICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCisgICAgICAgSW5pdF9GYWN0
b3J5Tm90Rm91bmQgPSAxMDQsCisgICAgICAgSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwK
KyAgICAgICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAgICAgSW5pdF9Vc2VyQ29u
ZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBJbml0X0htZE5vdEZvdW5kID0gMTA4
LAorICAgICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCisgICAgICAgSW5pdF9QYXRoUmVn
aXN0cnlOb3RGb3VuZCA9IDExMCwKKyAgICAgICBJbml0X05vQ29uZmlnUGF0aCA9IDExMSwKKyAg
ICAgICBJbml0X05vTG9nUGF0aCA9IDExMiwKKyAgICAgICBJbml0X1BhdGhSZWdpc3RyeU5vdFdy
aXRhYmxlID0gMTEzLAorICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWlsZWQgPSAxMTQsCisgICAg
ICAgSW5pdF9SZXRyeSA9IDExNSwKKyAgICAgICBJbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDEx
NiwKKyAgICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCisgICAgICAgSW5pdF9T
ZXR0aW5nc0luaXRGYWlsZWQgPSAxMTgsCisgICAgICAgSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTks
CisgICAgICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKKyAgICAgICBJbml0X05vU2VydmVy
Rm9yQmFja2dyb3VuZEFwcCA9IDEyMSwKKyAgICAgICBJbml0X05vdFN1cHBvcnRlZFdpdGhDb21w
b3NpdG9yID0gMTIyLAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEy
MywKKyAgICAgICBJbml0X0ludGVybmFsID0gMTI0LAorICAgICAgIEluaXRfSG1kRHJpdmVySWRJ
c05vbmUgPSAxMjUsCisgICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2
LAorICAgICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCisgICAgICAgSW5pdF9WUk1v
bml0b3JTdGFydHVwRmFpbGVkID0gMTI4LAorICAgICAgIEluaXRfTG93UG93ZXJXYXRjaGRvZ05v
dFN1cHBvcnRlZCA9IDEyOSwKKyAgICAgICBJbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAx
MzAsCisgICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKKyAgICAg
ICBJbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAorICAgICAgIEluaXRfVlJE
YXNoYm9hcmROb3RGb3VuZCA9IDEzMywKKyAgICAgICBJbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZh
aWxlZCA9IDEzNCwKKyAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAorICAgICAgIERyaXZlcl9V
bmtub3duID0gMjAxLAorICAgICAgIERyaXZlcl9IbWRVbmtub3duID0gMjAyLAorICAgICAgIERy
aXZlcl9Ob3RMb2FkZWQgPSAyMDMsCisgICAgICAgRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAy
MDQsCisgICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIERyaXZlcl9Ob3RDYWxp
YnJhdGVkID0gMjA2LAorICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCisg
ICAgICAgRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAgICAgICBEcml2ZXJfVHJh
Y2tlZERldmljZUludGVyZmFjZVVua25vd24gPSAyMDksCisgICAgICAgRHJpdmVyX0htZERyaXZl
cklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9
IDIxMiwKKyAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKKyAgICAgICBJUENfQ29u
bmVjdEZhaWxlZCA9IDMwMSwKKyAgICAgICBJUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAy
LAorICAgICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywKKyAgICAgICBJUENfTXV0
ZXhJbml0RmFpbGVkID0gMzA0LAorICAgICAgIElQQ19GYWlsZWQgPSAzMDUsCisgICAgICAgSVBD
X0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAorICAgICAgIElQQ19Db21wb3NpdG9ySW52
YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBJUENfQ29ubmVjdEZhaWxlZEFmdGVy
TXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBDb21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwK
KyAgICAgICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKKyAgICAgICBD
b21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgQ29tcG9zaXRv
cl9PdmVybGF5SW5pdEZhaWxlZCA9IDQwMywKKyAgICAgICBDb21wb3NpdG9yX1NjcmVlbnNob3Rz
SW5pdEZhaWxlZCA9IDQwNCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RU
b09jdWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nh
bnRPcGVuRGV2aWNlID0gMTEwMSwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFi
bGVUb1JlcXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZv
dW5kX0NvbmZpZ1Rvb0JpZyA9IDExMDQsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
Q29uZmlnVG9vU21hbGwgPSAxMTA1LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vu
YWJsZVRvSW5pdFpMaWIgPSAxMTA2LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nh
bnRSZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKKyAgICAgICBWZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAorICAgICAgIFZl
bmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ID0gMTExMCwKKyAg
ICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEs
CisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCisg
ICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAx
MTEzLAorICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfQor
cHVibGljIGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAg
ICBNb25vID0gMSwKKyAgICAgICBTdGVyZW8gPSAyLAorICAgICAgIEN1YmVtYXAgPSAzLAorICAg
ICAgIE1vbm9QYW5vcmFtYSA9IDQsCisgICAgICAgU3RlcmVvUGFub3JhbWEgPSA1LAorfQorcHVi
bGljIGVudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgUHJldmll
dyA9IDAsCisgICAgICAgVlIgPSAxLAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUVy
cm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgT3BlcmF0aW9uRmFpbGVkID0gMTAwLAor
ICAgICAgIEludmFsaWRIYW5kbGUgPSAxMDEsCisgICAgICAgSW52YWxpZEZyYW1lSGVhZGVyVmVy
c2lvbiA9IDEwMiwKKyAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCisgICAgICAgSVBDRmFpbHVy
ZSA9IDEwNCwKKyAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAorICAgICAg
IFNoYXJlZE1lbW9yeUZhaWx1cmUgPSAxMDYsCisgICAgICAgRnJhbWVCdWZmZXJpbmdGYWlsdXJl
ID0gMTA3LAorICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKKyAgICAgICBJbnZhbGlk
R0xUZXh0dXJlSWQgPSAxMDksCisgICAgICAgSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAx
MTAsCisgICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKKyAgICAgICBTaGFyZWRU
ZXh0dXJlRmFpbHVyZSA9IDExMiwKKyAgICAgICBOb0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAg
ICAgIEludmFsaWRBcmd1bWVudCA9IDExNCwKKyAgICAgICBJbnZhbGlkRnJhbWVCdWZmZXJTaXpl
ID0gMTE1LAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQoreworICAg
ICAgIERpc3RvcnRlZCA9IDAsCisgICAgICAgVW5kaXN0b3J0ZWQgPSAxLAorICAgICAgIE1heGlt
dW1VbmRpc3RvcnRlZCA9IDIsCisgICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9
CitwdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisg
ICAgICAgQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKKyAgICAgICBOb01hbmlmZXN0ID0gMTAx
LAorICAgICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgSW52YWxpZEluZGV4ID0gMTAz
LAorICAgICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKKyAgICAgICBJUENGYWlsZWQgPSAx
MDUsCisgICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBJbnZh
bGlkTWFuaWZlc3QgPSAxMDcsCisgICAgICAgSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAorICAg
ICAgIExhdW5jaEZhaWxlZCA9IDEwOSwKKyAgICAgICBBcHBsaWNhdGlvbkFscmVhZHlTdGFydGlu
ZyA9IDExMCwKKyAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAorICAgICAgIE9sZEFwcGxp
Y2F0aW9uUXVpdHRpbmcgPSAxMTIsCisgICAgICAgVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisg
ICAgICAgSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDIwMCwKKyAg
ICAgICBQcm9wZXJ0eU5vdFNldCA9IDIwMSwKKyAgICAgICBVbmtub3duUHJvcGVydHkgPSAyMDIs
CisgICAgICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30KK3B1YmxpYyBlbnVtIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHkKK3sKKyAgICAgICBOYW1lX1N0cmluZyA9IDAsCisgICAgICAgTGF1bmNo
VHlwZV9TdHJpbmcgPSAxMSwKKyAgICAgICBXb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAor
ICAgICAgIEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCisgICAgICAgQXJndW1lbnRzX1N0cmluZyA9
IDE0LAorICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBEZXNjcmlwdGlvbl9TdHJpbmcg
PSA1MCwKKyAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAorICAgICAgIEltYWdlUGF0aF9TdHJp
bmcgPSA1MiwKKyAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCisgICAgICAgSXNEYXNoYm9hcmRP
dmVybGF5X0Jvb2wgPSA2MCwKKyAgICAgICBJc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAgICAgICBJ
c0luc3RhbmNlZF9Cb29sID0gNjIsCisgICAgICAgSXNJbnRlcm5hbF9Cb29sID0gNjMsCisgICAg
ICAgTGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9CitwdWJsaWMgZW51bSBFVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25TdGF0ZQoreworICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05v
bmUgPSAwLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0g
MTAsCisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1
bmNoID0gMTEsCisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQg
PSAyMCwKK30KK3B1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKK3sKKyAgICAg
ICBPSyA9IDEsCisgICAgICAgV2FybmluZyA9IDEwMCwKKyAgICAgICBXYXJuaW5nX0Jhc2VTdGF0
aW9uTWF5SGF2ZU1vdmVkID0gMTAxLAorICAgICAgIFdhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVk
ID0gMTAyLAorICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKKyAgICAg
ICBFcnJvciA9IDIwMCwKKyAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAy
MDEsCisgICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKKyAgICAgICBFcnJv
cl9QbGF5QXJlYUludmFsaWQgPSAyMDMsCisgICAgICAgRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52
YWxpZCA9IDIwNCwKK30KK3B1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7CisgICAg
ICAgTGl2ZSA9IDEsCisgICAgICAgVGVtcCA9IDIsCit9CitwdWJsaWMgZW51bSBFQ2hhcGVyb25l
SW1wb3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAor
fQorcHVibGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisg
ICAgICAgUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEw
MCwKKyAgICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKKyAgICAgICBJbnZhbGlkVGV4dHVyZSA9
IDEwMiwKKyAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMsCisgICAgICAgVGV4dHVy
ZUlzT25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9y
bWF0ID0gMTA1LAorICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAorICAg
ICAgIEluZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBBbHJlYWR5U3VibWl0dGVkID0gMTA4
LAorfQorcHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKK3sKKyAgICAgICBOb25lID0g
MCwKKyAgICAgICBNb3VzZSA9IDEsCit9CitwdWJsaWMgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1U
eXBlCit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKKyAgICAgICBW
Uk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKKyAgICAgICBWUk92
ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCisgICAgICAgVlJPdmVybGF5VHJhbnNm
b3JtX1RyYWNrZWRDb21wb25lbnQgPSAzLAorfQorcHVibGljIGVudW0gVlJPdmVybGF5RmxhZ3MK
K3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBDdXJ2ZWQgPSAxLAorICAgICAgIFJHU1M0WCA9
IDIsCisgICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAorICAgICAgIEFjY2VwdHNHYW1lcGFkRXZl
bnRzID0gNCwKKyAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKKyAgICAgICBTZW5kVlJTY3Jv
bGxFdmVudHMgPSA2LAorICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKyAgICAgICBT
aG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisgICAgICAgVHJhbnNmZXJPd25lcnNoaXBUb0lu
dGVybmFsUHJvY2VzcyA9IDksCisgICAgICAgU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAorICAg
ICAgIFNpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAorICAgICAgIFBhbm9yYW1hID0gMTIsCisgICAg
ICAgU3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBTb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMg
PSAxNCwKKyAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKK30KK3B1YmxpYyBlbnVtIFZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZQoreworICAgICAgIEJ1dHRvblByZXNzXzAgPSAwLAorICAg
ICAgIEJ1dHRvblByZXNzXzEgPSAxLAorICAgICAgIEJ1dHRvblByZXNzXzIgPSAyLAorICAgICAg
IEJ1dHRvblByZXNzXzMgPSAzLAorICAgICAgIENvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQs
CisgICAgICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAorICAgICAgIEFw
cGxpY2F0aW9uUXVpdCA9IDYsCit9CitwdWJsaWMgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUK
K3sKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAga19F
R2FtZXBhZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCisgICAgICAga19FR2FtZXBhZFRleHRJ
bnB1dE1vZGVTdWJtaXQgPSAyLAorfQorcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5l
TW9kZQoreworICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAw
LAorICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAor
fQorcHVibGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KK3sKKyAgICAgICBVcCA9IDAsCisgICAg
ICAgRG93biA9IDEsCisgICAgICAgTGVmdCA9IDIsCisgICAgICAgUmlnaHQgPSAzLAorICAgICAg
IENvdW50ID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZQoreworICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1Jl
Y3RhbmdsZSA9IDAsCisgICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2ly
Y2xlID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKK3sKKyAgICAgICBO
b25lID0gMCwKKyAgICAgICBMb2FkaW5nID0gMTAwLAorICAgICAgIE5vdFN1cHBvcnRlZCA9IDIw
MCwKKyAgICAgICBJbnZhbGlkQXJnID0gMzAwLAorICAgICAgIEludmFsaWRNb2RlbCA9IDMwMSwK
KyAgICAgICBOb1NoYXBlcyA9IDMwMiwKKyAgICAgICBNdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAg
ICAgICBUb29NYW55VmVydGljZXMgPSAzMDQsCisgICAgICAgTXVsdGlwbGVUZXh0dXJlcyA9IDMw
NSwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBOb3RFbm91Z2hOb3JtYWxz
ID0gMzA3LAorICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKKyAgICAgICBJbnZhbGlk
VGV4dHVyZSA9IDQwMCwKK30KK3B1YmxpYyBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Cit7Cisg
ICAgICAgSXNTdGF0aWMgPSAxLAorICAgICAgIElzVmlzaWJsZSA9IDIsCisgICAgICAgSXNUb3Vj
aGVkID0gNCwKKyAgICAgICBJc1ByZXNzZWQgPSA4LAorICAgICAgIElzU2Nyb2xsZWQgPSAxNiwK
K30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKK3sKKyAgICAgICBUcmFuc2llbnQg
PSAwLAorICAgICAgIFBlcnNpc3RlbnQgPSAxLAorICAgICAgIFRyYW5zaWVudF9TeXN0ZW1XaXRo
VXNlclZhbHVlID0gMiwKK30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7Cisg
ICAgICAgTm9uZSA9IDAsCisgICAgICAgQXBwbGljYXRpb24gPSAxMDAsCisgICAgICAgQ29udGFj
dF9EaXNhYmxlZCA9IDIwMCwKKyAgICAgICBDb250YWN0X0VuYWJsZWQgPSAyMDEsCisgICAgICAg
Q29udGFjdF9BY3RpdmUgPSAyMDIsCit9CitwdWJsaWMgZW51bSBFVlJTZXR0aW5nc0Vycm9yCit7
CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgSVBDRmFpbGVkID0gMSwKKyAgICAgICBXcml0ZUZh
aWxlZCA9IDIsCisgICAgICAgUmVhZEZhaWxlZCA9IDMsCisgICAgICAgSnNvblBhcnNlRmFpbGVk
ID0gNCwKKyAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfQorcHVibGljIGVu
dW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgUmVxdWVz
dEZhaWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBO
b3RGb3VuZCA9IDEwMSwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEwMiwKKyAgICAgICBTY3Jl
ZW5zaG90QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRhX3QKK3sKKyAgICAgICBb
RmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxl
cjsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X01vdXNlX3QgbW91c2U7
CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7
CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2Vz
czsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X05vdGlmaWNhdGlvbl90
IG5vdGlmaWNhdGlvbjsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X092
ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRf
U3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRf
SXBkX3QgaXBkOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ2hhcGVy
b25lX3QgY2hhcGVyb25lOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OworICAgICAgIFtGaWVsZE9mZnNldCgw
KV0gcHVibGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFtG
aWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRl
ZFplcm9Qb3NlUmVzZXQ7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9T
Y3JlZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBW
UkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBb
RmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGlj
YXRpb25MYXVuY2g7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9FZGl0
aW5nQ2FtZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XSBwdWJsaWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OworICAgICAg
IFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsgLy8g
VGhpcyBoYXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1ZworfQorCisKK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKK3sKKyAgICAgICBbRmllbGRPZmZzZXQoMCld
IHB1YmxpYyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAg
W0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xl
OworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1
Y3QgSG1kTWF0cml4MzRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFszXVs0
XQorICAgICAgIHB1YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTI7CisgICAg
ICAgcHVibGljIGZsb2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKKyAgICAgICBwdWJs
aWMgZmxvYXQgbTU7CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAgICAgIHB1YmxpYyBmbG9h
dCBtNzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVibGljIGZsb2F0IG05Owor
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZsb2F0IG0xMTsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRNYXRy
aXg0NF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0WzRdWzRdCisgICAgICAg
cHVibGljIGZsb2F0IG0xOworICAgICAgIHB1YmxpYyBmbG9hdCBtMjsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbTM7CisgICAgICAgcHVibGljIGZsb2F0IG00OworICAgICAgIHB1YmxpYyBmbG9hdCBt
NTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTY7CisgICAgICAgcHVibGljIGZsb2F0IG03OworICAg
ICAgIHB1YmxpYyBmbG9hdCBtODsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTk7CisgICAgICAgcHVi
bGljIGZsb2F0IG0xMDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTExOworICAgICAgIHB1YmxpYyBm
bG9hdCBtMTI7CisgICAgICAgcHVibGljIGZsb2F0IG0xMzsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bTE0OworICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190Cit7CisgICAgICAgcHVi
bGljIGZsb2F0IHYwOyAvL2Zsb2F0WzNdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworICAgICAg
IHB1YmxpYyBmbG9hdCB2MjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgdjA7
IC8vZmxvYXRbNF0KKyAgICAgICBwdWJsaWMgZmxvYXQgdjE7CisgICAgICAgcHVibGljIGZsb2F0
IHYyOworICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90Cit7CisgICAgICAgcHVi
bGljIGRvdWJsZSB2MDsgLy9kb3VibGVbM10KKyAgICAgICBwdWJsaWMgZG91YmxlIHYxOworICAg
ICAgIHB1YmxpYyBkb3VibGUgdjI7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgcHVibGljIGZsb2F0
IHYwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YXRlcm5pb25fdAor
eworICAgICAgIHB1YmxpYyBkb3VibGUgdzsKKyAgICAgICBwdWJsaWMgZG91YmxlIHg7CisgICAg
ICAgcHVibGljIGRvdWJsZSB5OworICAgICAgIHB1YmxpYyBkb3VibGUgejsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRDb2xvcl90Cit7
CisgICAgICAgcHVibGljIGZsb2F0IHI7CisgICAgICAgcHVibGljIGZsb2F0IGc7CisgICAgICAg
cHVibGljIGZsb2F0IGI7CisgICAgICAgcHVibGljIGZsb2F0IGE7Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAg
ICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVjdG9yM190WzRdCisgICAg
ICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7CisgICAgICAgcHVibGljIEhtZFZlY3Rv
cjNfdCB2Q29ybmVyczI7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczM7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1k
UmVjdDJfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRvcExlZnQ7CisgICAgICAg
cHVibGljIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QK
K3sKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGlj
IGZsb2F0IHJmUmVkMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjA7IC8vZmxvYXRbMl0K
KyAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7CisgICAgICAgcHVibGljIGZsb2F0IHJmQmx1
ZTA7IC8vZmxvYXRbMl0KKyAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVlMTsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBUZXh0dXJlX3QKK3sK
KyAgICAgICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIEVU
ZXh0dXJlVHlwZSBlVHlwZTsKKyAgICAgICBwdWJsaWMgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
VHJhY2tlZERldmljZVBvc2VfdAoreworICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1EZXZp
Y2VUb0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2VmVsb2Np
dHk7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OworICAgICAg
IHB1YmxpYyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wgYlBvc2VJc1ZhbGlkOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wg
YkRldmljZUlzQ29ubmVjdGVkOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgcHVibGljIGZs
b2F0IHVNaW47CisgICAgICAgcHVibGljIGZsb2F0IHZNaW47CisgICAgICAgcHVibGljIGZsb2F0
IHVNYXg7CisgICAgICAgcHVibGljIGZsb2F0IHZNYXg7Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Cit7
CisgICAgICAgcHVibGljIHVsb25nIG1fbkltYWdlOworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9w
RGV2aWNlOyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BQ
aHlzaWNhbERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCisgICAgICAgcHVi
bGljIEludFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCisgICAgICAg
cHVibGljIEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCisgICAgICAgcHVi
bGljIHVpbnQgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICBwdWJsaWMgdWludCBtX25XaWR0
aDsKKyAgICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7CisgICAgICAgcHVibGljIHVpbnQgbV9u
Rm9ybWF0OworICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50OworfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEQzRDEyVGV4dHVyZURh
dGFfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNE
MTJSZXNvdXJjZSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BDb21tYW5kUXVldWU7IC8vIHN0
cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHB1YmxpYyB1aW50IG1fbk5vZGVNYXNr
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IFZSRXZlbnRfQ29udHJvbGxlcl90Cit7CisgICAgICAgcHVibGljIHVpbnQgYnV0dG9uOworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfTW91c2VfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4OworICAgICAgIHB1YmxpYyBmbG9h
dCB5OworICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAg
ICAgcHVibGljIGZsb2F0IHhkZWx0YTsKKyAgICAgICBwdWJsaWMgZmxvYXQgeWRlbHRhOworICAg
ICAgIHB1YmxpYyB1aW50IHJlcGVhdENvdW50OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKK3sKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJG
aW5nZXJEb3duOworICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOworICAg
ICAgIHB1YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1
ZVlGaXJzdDsKKyAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgZlZhbHVlWVJhdzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Cit7CisgICAgICAgcHVibGlj
IHVsb25nIHVsVXNlclZhbHVlOworICAgICAgIHB1YmxpYyB1aW50IG5vdGlmaWNhdGlvbklkOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
RXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgcHVibGljIHVpbnQgcGlkOworICAgICAgIHB1Ymxp
YyB1aW50IG9sZFBpZDsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAg
ICAgIHB1YmxpYyBib29sIGJGb3JjZWQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAgICBwdWJs
aWMgdWxvbmcgb3ZlcmxheUhhbmRsZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Cit7CisgICAgICAgcHVibGlj
IHVpbnQgc3RhdHVzU3RhdGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgcHVibGljIGJ5
dGUgY05ld0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lucHV0MyxjTmV3SW5wdXQ0
LGNOZXdJbnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OworICAgICAgIHB1YmxpYyB1bG9uZyB1
VXNlclZhbHVlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJs
aWMgc3RydWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgaXBkTWV0ZXJz
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uUHJldmlvdXNV
bml2ZXJzZTsKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVuaXZlcnNlOworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
UmVzZXJ2ZWRfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDA7CisgICAgICAgcHVi
bGljIHVsb25nIHJlc2VydmVkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAg
cHVibGljIHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRf
dAoreworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGlj
IGJvb2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAg
cHVibGljIHVpbnQgaGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50IHR5cGU7Cit9CitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3Jl
ZW5zaG90UHJvZ3Jlc3NfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBwcm9ncmVzczsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50
X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICBwdWJsaWMgdWludCBwaWQ7CisgICAgICAg
cHVibGljIHVpbnQgdW5BcmdzSGFuZGxlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAor
eworICAgICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50
IG5WaXN1YWxNb2RlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAoreworICAgICAgIHB1YmxpYyB1
aW50IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOworfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAoreworICAg
ICAgIHB1YmxpYyB1bG9uZyBjb250YWluZXI7CisgICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNl
UHJvcGVydHkgcHJvcDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICBwdWJsaWMgdWludCBldmVudFR5cGU7
CisgICAgICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIHB1YmxpYyBm
bG9hdCBldmVudEFnZVNlY29uZHM7CisgICAgICAgcHVibGljIFZSRXZlbnRfRGF0YV90IGRhdGE7
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
SGlkZGVuQXJlYU1lc2hfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgcFZlcnRleERhdGE7IC8v
IGNvbnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRy
aWFuZ2xlQ291bnQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgcHVibGljIGZsb2F0IHg7
CisgICAgICAgcHVibGljIGZsb2F0IHk7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAoreworICAgICAgIHB1
YmxpYyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNz
ZWQ7CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICBwdWJsaWMg
VlJDb250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KKyAgICAg
ICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKKyAgICAgICBwdWJsaWMgVlJDb250
cm9sbGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJB
eGlzMzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKK30KKy8vIFRo
aXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGlu
dXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFj
ayA9IDQpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkCit7CisgICAg
ICAgcHVibGljIHVpbnQgdW5QYWNrZXROdW07CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9u
UHJlc3NlZDsKKyAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3VjaGVkOworICAgICAgIHB1
YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJvbGxlckF4aXNfdFs1XQor
ICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOworICAgICAgIHB1YmxpYyBW
UkNvbnRyb2xsZXJBeGlzX3QgckF4aXMyOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlz
X3QgckF4aXMzOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXM0OworICAg
ICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3RhdGVfdCB1bnBhY2tlZCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0TnVtID0gdGhpcy51blBh
Y2tldE51bTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25QcmVzc2VkID0gdGhpcy51
bEJ1dHRvblByZXNzZWQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uVG91Y2hlZCA9
IHRoaXMudWxCdXR0b25Ub3VjaGVkOworICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczAgPSB0
aGlzLnJBeGlzMDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMxID0gdGhpcy5yQXhpczE7
CisgICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4aXMyOworICAgICAgICAg
ICAgICB1bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKKyAgICAgICAgICAgICAgdW5wYWNr
ZWQuckF4aXM0ID0gdGhpcy5yQXhpczQ7CisgICAgICAgfQorfQorW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRp
bmdzCit7CisgICAgICAgcHVibGljIHVpbnQgc2l6ZTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGFudGlhbGlhczsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgc2NhbGU7CisgICAgICAgcHVibGljIGZsb2F0IGRpc3RhbmNlOwor
ICAgICAgIHB1YmxpYyBmbG9hdCBhbHBoYTsKKyAgICAgICBwdWJsaWMgZmxvYXQgdU9mZnNldDsK
KyAgICAgICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKKyAgICAgICBwdWJsaWMgZmxvYXQgdVNjYWxl
OworICAgICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7CisgICAgICAgcHVibGljIGZsb2F0IGdyaWRE
aXZzOworICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7CisgICAgICAgcHVibGljIGZsb2F0
IGdyaWRTY2FsZTsKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICBwdWJsaWMgdWludCBuV2lkdGg7CisgICAg
ICAgcHVibGljIHVpbnQgbkhlaWdodDsKKyAgICAgICBwdWJsaWMgdWludCBuQnl0ZXNQZXJQaXhl
bDsKKyAgICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBwdWJsaWMgVHJh
Y2tlZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEFwcE92ZXJyaWRlS2V5
c190Cit7CisgICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgorICAg
ICAgIHB1YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIgKgorfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfRnJh
bWVUaW1pbmcKK3sKKyAgICAgICBwdWJsaWMgdWludCBtX25TaXplOworICAgICAgIHB1YmxpYyB1
aW50IG1fbkZyYW1lSW5kZXg7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50
czsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7CisgICAgICAgcHVibGlj
IHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICBwdWJsaWMgdWludCBtX25SZXByb2pl
Y3Rpb25GbGFnczsKKyAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRz
OworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7CisgICAgICAgcHVibGlj
IGZsb2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3Rh
bFJlbmRlckdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdw
dU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOworICAg
ICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9m
bFByZXNlbnRDYWxsQ3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2Vu
dENwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsKKyAgICAgICBw
dWJsaWMgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOworICAgICAgIHB1YmxpYyBmbG9h
dCBtX2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3RnJhbWVS
ZWFkeU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7
CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAg
cHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKKyAgICAgICBwdWJsaWMg
VHJhY2tlZERldmljZVBvc2VfdCBtX0htZFBvc2U7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMK
K3sKKyAgICAgICBwdWJsaWMgdWludCBtX25QaWQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVt
RnJhbWVQcmVzZW50czsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzOwor
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOworICAgICAgIHB1Ymxp
YyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQg
bV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1S
ZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Mb2Fk
aW5nOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOworICAg
ICAgIHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHB1Ymxp
YyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICBwdWJsaWMgdWlu
dCBtX25OdW1UaW1lZE91dDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRz
VGltZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0
OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJP
dmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190
IHZTb3VyY2U7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAg
IHB1YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2Vj
dGlvblJlc3VsdHNfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvaW50OworICAg
ICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9y
Ml90IHZVVnM7CisgICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNr
UmVjdGFuZ2xlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRYOworICAgICAg
IHB1YmxpYyBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXaWR0
aDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xl
X3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7CisgICAgICAgcHVibGljIGZs
b2F0IG1fZmxDZW50ZXJZOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUmFkaXVzOworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKKyAgICAgICBw
dWJsaWMgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRp
dmU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1
Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAgIHB1YmxpYyBIbWRNYXRy
aXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7CisgICAgICAgcHVibGljIEht
ZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAgICAgICBwdWJsaWMgdWlu
dCB1UHJvcGVydGllczsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAoreworICAgICAgIHB1YmxpYyBIbWRW
ZWN0b3IzX3QgdlBvc2l0aW9uOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsK
KyAgICAgICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zsb2F0WzJdCisgICAgICAg
cHVibGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKK3sK
KyAgICAgICBwdWJsaWMgY2hhciB1bldpZHRoOworICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0
OworICAgICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4
X3QgKgorfQorLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJkcyBiaW5hcnkgY29tcGF0
aWJpbGl0eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7CisgICAgICAgcHVibGlj
IGNoYXIgdW5IZWlnaHQ7CisgICAgICAgcHVibGljIEludFB0ciBydWJUZXh0dXJlTWFwRGF0YTsg
Ly8gY29uc3QgdWludDhfdCAqCisgICAgICAgcHVibGljIHZvaWQgVW5wYWNrKHJlZiBSZW5kZXJN
b2RlbF9UZXh0dXJlTWFwX3QgdW5wYWNrZWQpCisgICAgICAgeworICAgICAgICAgICAgICB1bnBh
Y2tlZC51bldpZHRoID0gdGhpcy51bldpZHRoOworICAgICAgICAgICAgICB1bnBhY2tlZC51bkhl
aWdodCA9IHRoaXMudW5IZWlnaHQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnJ1YlRleHR1cmVN
YXBEYXRhID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKKyAgICAgICB9Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAor
eworICAgICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6
UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7
CisgICAgICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCisg
ICAgICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworICAgICAgIHB1YmxpYyBpbnQgZGlm
ZnVzZVRleHR1cmVJZDsKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmlu
YXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVs
X3RfUGFja2VkCit7CisgICAgICAgcHVibGljIEludFB0ciByVmVydGV4RGF0YTsgLy8gY29uc3Qg
c3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5W
ZXJ0ZXhDb3VudDsKKyAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERhdGE7IC8vIGNvbnN0IHVp
bnQxNl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7CisgICAgICAgcHVi
bGljIGludCBkaWZmdXNlVGV4dHVyZUlkOworICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYg
UmVuZGVyTW9kZWxfdCB1bnBhY2tlZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVucGFja2Vk
LnJWZXJ0ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQu
dW5WZXJ0ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKKyAgICAgICAgICAgICAgdW5wYWNr
ZWQuckluZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQu
dW5UcmlhbmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7CisgICAgICAgICAgICAgIHVu
cGFja2VkLmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0dXJlSWQ7CisgICAgICAg
fQorfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJTY3JvbGxXaGVlbFZpc2li
bGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1
Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcEltYWdl
RGF0YTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIGludCBtX25XaWR0aDsKKyAgICAgICBwdWJs
aWMgaW50IG1fbkhlaWdodDsKKyAgICAgICBwdWJsaWMgaW50IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ09w
ZW5WUkNvbnRleHQKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU3lzdGVtOyAvLyBjbGFz
cyB2cjo6SVZSU3lzdGVtICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25lOyAv
LyBjbGFzcyB2cjo6SVZSQ2hhcGVyb25lICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hh
cGVyb25lU2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCisgICAgICAgcHVi
bGljIEludFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoK
KyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xhc3MgdnI6OklWUk92ZXJs
YXkgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJ
VlJSZXNvdXJjZXMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZW5kZXJNb2RlbHM7IC8v
IGNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJF
eHRlbmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgorICAgICAg
IHB1YmxpYyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoK
KyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZS
QXBwbGljYXRpb25zICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSVHJhY2tlZENhbWVyYTsg
Ly8gY2xhc3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9w
VlJTY3JlZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKK30KKworcHVibGlj
IGNsYXNzIE9wZW5WUgoreworCisgICAgICAgcHVibGljIHN0YXRpYyB1aW50IEluaXRJbnRlcm5h
bChyZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRp
b25UeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSW5p
dEludGVybmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsKKyAgICAgICB9CisKKyAg
ICAgICBwdWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgpCisgICAgICAgeworICAg
ICAgICAgICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisK
KyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2VudCgpOworICAgICAgIH0K
KworICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNSdW50aW1lSW5zdGFsbGVk
KCk7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nRm9y
SG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0
dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3AuR2V0U3RyaW5nRm9ySG1k
RXJyb3IoZXJyb3IpKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIEludFB0ciBH
ZXRHZW5lcmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5p
dEVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50
ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBwZUVycm9y
KTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCisgICAgICAgeworICAgICAgICAg
ICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRl
cmZhY2VWZXJzaW9uKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIHVpbnQgR2V0
SW5pdFRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9w
LkdldEluaXRUb2tlbigpOworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtf
dW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25z
dCB1aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKKyAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7CisgICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKKyAgICAg
ICBwdWJsaWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5
NjcyOTU7CisgICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250
YWluZXIgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5JbnZhbGlkUHJvcGVydHlU
YWcgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0g
MTsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKKyAgICAg
ICBwdWJsaWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKKyAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OworICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CisgICAgICAgcHVibGlj
IGNvbnN0IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKKyAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7CisgICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworICAgICAgIHB1
YmxpYyBjb25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7
CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5k
ID0gMTAwMDA7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFByb3BlcnR5U3RyaW5n
U2l6ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Db250cm9sbGVyU3Rh
dGVBeGlzQ291bnQgPSA1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsT3ZlcmxheUhh
bmRsZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5TY3JlZW5zaG90
SGFuZGxlSW52YWxpZCA9IDA7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTeXN0ZW1f
VmVyc2lvbiA9ICJJVlJTeXN0ZW1fMDE1IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElW
UkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRy
YWNrZWRDYW1lcmFfMDAzIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4QXBwbGlj
YXRpb25LZXlMZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9N
aW1lVHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0
aW9uc18wMDYiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lX1ZlcnNp
b24gPSAiSVZSQ2hhcGVyb25lXzAwMyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJD
aGFwZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRv
cl8wMjAiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5n
dGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZST3ZlcmxheU1heE5hbWVM
ZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heE92ZXJsYXlDb3Vu
dCA9IDY0OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
SVZST3ZlcmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9C
YXNlID0gImJhc2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxl
cl9Db21wb25lbnRfVGlwID0gInRpcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3Rh
dHVzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRlck1vZGVsc19WZXJzaW9u
ID0gIklWUlJlbmRlck1vZGVsc18wMDUiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5O
b3RpZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IElWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7CisgICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5n
c18wMDIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZWN0aW9u
ID0gInN0ZWFtdnIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9S
ZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlf
U3RyaW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRl
YnVnUHJvY2Vzc1BpcGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9FbmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlz
cGxheURlYnVnWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rp
c3BsYXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJz
ZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBkIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dy
b3VuZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91
bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1l
cmFIZWlnaHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0g
ImJhY2tncm91bmREb21lUmFkaXVzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJl
YUNvbG9yIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd1N0
YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxl
RHJpdmVycyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVj
dE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRp
ZFBpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJk
WWF3T2Zmc2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVz
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Q
b3dlck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19C
b29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0
TXVsdGlwbGllciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Fs
bG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25f
Qm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJl
cHJvamVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Zv
cmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdf
SW50MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfU3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5
X1N0cmluZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRv
ckZyb21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9TdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJv
bUFwcExhdW5jaCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExh
dW5jaCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0T3Zl
cmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9h
cmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFibGVIb21l
QXBwID0gImVuYWJsZUhvbWVBcHAiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
U3RlYW1WUl9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21l
QXBwIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNr
Z3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9v
bCA9ICJyZXRhaWxEZW1vIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfSXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wg
PSAiZGlzYWJsZWltdSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhv
dXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVi
dWdfSW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5
YmFzZXN0YXRpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3Vz
ZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJp
bmcgPSAibW9kZWxOdW1iZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVs
bF9XaW5kb3dYX0ludDMyID0gIndpbmRvd1giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfTnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9
ICJ3aW5kb3dIZWlnaHQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9S
ZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlG
cmVxdWVuY3kiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFj
ZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5
c09uVG9wIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2Vf
TWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVu
c2hvdHMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9T
Y3JlZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1
cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxl
dGlvbnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2NhbGVY
ID0gIlNjYWxlWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9T
Y2FsZVkgPSAiU2NhbGVZIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJv
YXJkX09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJT
bW9vdGhpbmciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TZWN0aW9u
ID0gInBlcmZjaGVjayI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX0hl
dXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9
ICJ3YXJuT25seU9uY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9B
bGxvd1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRp
bWluZ3NPbkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9UZXN0
RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9
ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3Vu
ZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9D
b2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50
ZXJNYXJrZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3Rh
bmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAi
Q29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5k
c0NvbG9yR2FtbWFHIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lv
bkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFi
bGVDYW1lcmEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJs
ZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxp
c2lvbkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZp
ZXdfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91
bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJh
X0JvdW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9J
bnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRz
Q29sb3JHYW1tYUEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0Jv
dW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b25QbGF5YmFja0RldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRp
b19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcg
PSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2Ui
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNl
X1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfYXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJP
ZmZPbkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9m
ZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0
X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0
dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
UG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZS
T25CdXR0b25QcmVzcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9h
cmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29s
ID0gImFyY2FkZU1vZGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfbW9kZWxz
a2luX1NlY3Rpb24gPSAibW9kZWxza2lucyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291
cmNlc18wMDEiOworCisgICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7IGdldDsgc2V0OyB9CisK
KyAgICAgICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5UYWJsZToiOworCisgICAg
ICAgY2xhc3MgQ09wZW5WUkNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1YmxpYyBD
T3BlblZSQ29udGV4dCgpIHsgQ2xlYXIoKTsgfQorCisgICAgICAgICAgICAgIHB1YmxpYyB2b2lk
IENsZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0
ZW0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxsOwor
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGw7CisgICAgICAg
ICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOworICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJPdmVybGF5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVy
TW9kZWxzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5
ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxsOworICAgICAgICAgICAg
ICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBt
X3BWUlRyYWNrZWRDYW1lcmEgPSBudWxsOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgdm9pZCBDaGVja0NsZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgaWYgKFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCisgICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU3lzdGVtIFZS
U3lzdGVtKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVh
cigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVtID09IG51bGwpCisgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJv
ciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBw
SW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJl
Zml4K0lWUlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5p
dEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lz
dGVtID0gbmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJDaGFwZXJvbmUoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkKKyAgICAgICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5p
dEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2Ug
PSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hh
cGVyb25lX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3Iu
Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUg
PSBuZXcgQ1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNldHVwIFZSQ2hhcGVyb25l
U2V0dXAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFy
KCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxs
KQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRh
YmxlX1ByZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBl
RXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVyb25lU2V0dXAocEludGVy
ZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IHB1YmxpYyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUkNvbXBvc2l0b3IgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9w
LkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29tcG9zaXRvcl9WZXJzaW9u
LCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFj
ZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG5ldyBDVlJDb21w
b3NpdG9yKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
IGlmIChtX3BWUk92ZXJsYXkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9w
LkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3ZlcmxheV9WZXJzaW9uLCBy
ZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAh
PSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5ldyBDVlJPdmVybGF5KHBJ
bnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1
YmxpYyBDVlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAobV9wVlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRl
cm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSUmVuZGVyTW9kZWxzX1Zl
cnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50
ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBuZXcg
Q1ZSUmVuZGVyTW9kZWxzKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlzcGxheSBWUkV4dGVuZGVk
RGlzcGxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xl
YXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBu
dWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShG
blRhYmxlX1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8g
JiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJFeHRlbmRlZERpc3BsYXko
cEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7CisgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
IGlmIChtX3BWUlNldHRpbmdzID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJv
cC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNldHRpbmdzX1ZlcnNpb24s
IHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNl
ICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG5ldyBDVlJTZXR0aW5n
cyhwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgcHVibGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygpCisgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAg
ICAgIGlmIChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3Iu
Tm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5W
UkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJBcHBsaWNhdGlv
bnNfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25l
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFwcGxpY2F0aW9ucyA9
IG5ldyBDVlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVuc2hvdHMgVlJTY3JlZW5z
aG90cygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNob3RzID09IG51bGwpCisg
ICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVF
cnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVf
UHJlZml4K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9
PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wVlJTY3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50ZXJmYWNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVl
bnNob3RzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlRyYWNr
ZWRDYW1lcmEgVlJUcmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSVHJh
Y2tlZENhbWVyYSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2Vu
ZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sIHJl
ZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9
IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbmV3IENWUlRyYWNr
ZWRDYW1lcmEocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0ZW07CisgICAgICAgICAg
ICAgIHByaXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICBw
cml2YXRlIENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAg
ICAgIHByaXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAg
IHByaXZhdGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIHByaXZhdGUg
Q1ZSUmVuZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAgICBwcml2YXRl
IENWUkV4dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAg
cHJpdmF0ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBwcml2YXRl
IENWUkFwcGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJTY3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICBwcml2YXRl
IENWUlRyYWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgIH07CisKKyAgICAg
ICBwcml2YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29u
dGV4dCA9IG51bGw7CisgICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0IE9wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIGdldAorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfT3BlblZSSW50ZXJuYWxf
TW9kdWxlQ29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOworICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0OworICAgICAgICAgICAgICB9
CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0ZW0gU3lzdGVtIHsgZ2V0
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJTeXN0ZW0oKTsgfSB9Cisg
ICAgICAgcHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25lIHsgZ2V0IHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUoKTsgfSB9CisgICAgICAg
cHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVTZXR1cCB7IGdldCB7IHJl
dHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lU2V0dXAoKTsgfSB9
CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBvc2l0b3IgeyBnZXQgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBvc2l0b3IoKTsgfSB9Cisg
ICAgICAgcHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBnZXQgeyByZXR1cm4gT3Bl
blZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9CisgICAgICAgcHVibGlj
IHN0YXRpYyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsgfSB9CisgICAgICAgcHVi
bGljIHN0YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNwbGF5IHsgZ2V0IHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRlZERpc3BsYXkoKTsgfSB9
CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5ncyB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3MoKTsgfSB9CisgICAgICAg
cHVibGljIHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25zIHsgZ2V0IHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlvbnMoKTsgfSB9CisgICAg
ICAgcHVibGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90cyB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hvdHMoKTsgfSB9CisgICAg
ICAgcHVibGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRDYW1lcmEgeyBnZXQgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNrZWRDYW1lcmEoKTsgfSB9
CisKKyAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdnJjbGllbnQu
ZGxsIGFuZCBpbml0aWFsaXplcyBpdCAqLworICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVt
IEluaXQocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxp
Y2F0aW9uVHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0aW9uX1NjZW5lKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwg
ZUFwcGxpY2F0aW9uVHlwZSk7CisgICAgICAgICAgICAgIE9wZW5WUkludGVybmFsX01vZHVsZUNv
bnRleHQuQ2xlYXIoKTsKKworICAgICAgICAgICAgICBpZiAocGVFcnJvciAhPSBFVlJJbml0RXJy
b3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgICAg
ICAgIGJvb2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoSVZSU3lz
dGVtX1ZlcnNpb24pOworICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZhY2VWYWxpZCkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25JbnRlcm5hbCgpOworICAg
ICAgICAgICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5Jbml0X0ludGVyZmFjZU5v
dEZvdW5kOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsKKyAgICAgICB9CisKKyAg
ICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJv
bSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICov
CisgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIFNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisKK30KKworCisKK30KKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29u
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxNzFlYzM3ZDExM2QxYWNkNmU4Y2M0MjAxNGFjYzYwZjdhNDE4ZDYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmpz
b24KQEAgLTAsMCArMSwzNzg5IEBACit7InR5cGVkZWZzIjpbeyJ0eXBlZGVmIjogInZyOjpnbFNo
YXJlZFRleHR1cmVIYW5kbGVfdCIsInR5cGUiOiAidm9pZCAqIn0KKyx7InR5cGVkZWYiOiAidnI6
OmdsSW50X3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6Z2xVSW50X3Qi
LCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlNoYXJlZFRleHR1cmVIYW5k
bGVfdCIsInR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6
OlByb3BlcnR5VHlwZVRhZ190IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZy
OjpWUkV2ZW50X0RhdGFfdCIsInR5cGUiOiAidW5pb24gVlJFdmVudF9EYXRhX3QifQorLHsidHlw
ZWRlZiI6ICJ2cjo6VlJDb250cm9sbGVyU3RhdGVfdCIsInR5cGUiOiAic3RydWN0IHZyOjpWUkNv
bnRyb2xsZXJTdGF0ZTAwMV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkQ2FtZXJhSGFu
ZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlNjcmVlbnNob3RI
YW5kbGVfdCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZS
Q29tcG9uZW50UHJvcGVydGllcyIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2
cjo6VGV4dHVyZUlEX3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJO
b3RpZmljYXRpb25JZCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6SG1k
RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkluaXRFcnJvciJ9CisseyJ0eXBlZGVmIjogInZy
OjpIbWRfRXllIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJFeWUifQorLHsidHlwZWRlZiI6ICJ2cjo6
Q29sb3JTcGFjZSIsInR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifQorLHsidHlwZWRlZiI6
ICJ2cjo6SG1kVHJhY2tpbmdSZXN1bHQiLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1Jlc3Vs
dCJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkRGV2aWNlQ2xhc3MiLCJ0eXBlIjogImVudW0g
dnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tpbmdVbml2
ZXJzZU9yaWdpbiIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifQor
LHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZVByb3BlcnR5IiwidHlwZSI6ICJlbnVtIHZy
OjpFVHJhY2tlZERldmljZVByb3BlcnR5In0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWRQcm9w
ZXJ0eUVycm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IifQorLHsi
dHlwZWRlZiI6ICJ2cjo6VlJTdWJtaXRGbGFnc190IiwidHlwZSI6ICJlbnVtIHZyOjpFVlJTdWJt
aXRGbGFncyJ9CisseyJ0eXBlZGVmIjogInZyOjpWUlN0YXRlX3QiLCJ0eXBlIjogImVudW0gdnI6
OkVWUlN0YXRlIn0KKyx7InR5cGVkZWYiOiAidnI6OkNvbGxpc2lvbkJvdW5kc1N0eWxlX3QiLCJ0
eXBlIjogImVudW0gdnI6OkVDb2xsaXNpb25Cb3VuZHNTdHlsZSJ9CisseyJ0eXBlZGVmIjogInZy
OjpWUk92ZXJsYXlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZST3ZlcmxheUVycm9yIn0KKyx7
InR5cGVkZWYiOiAidnI6OlZSRmlybXdhcmVFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSRmly
bXdhcmVFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUkNvbXBvc2l0b3JFcnJvciIsInR5cGUi
OiAiZW51bSB2cjo6RVZSQ29tcG9zaXRvckVycm9yIn0KKyx7InR5cGVkZWYiOiAidnI6OlZSU2Ny
ZWVuc2hvdHNFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIn0KK10s
CisiZW51bXMiOlsKKyAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJFeWUiLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJFeWVfTGVmdCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5h
bWUiOiAiRXllX1JpZ2h0IiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjog
InZyOjpFVGV4dHVyZVR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUZXh0dXJl
VHlwZV9EaXJlY3RYIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlw
ZV9PcGVuR0wiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX1Z1
bGthbiIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfSU9TdXJm
YWNlIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9EaXJlY3RY
MTIiLCJ2YWx1ZSI6ICI0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDb2xvclNw
YWNlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiQ29sb3JTcGFjZV9BdXRvIiwidmFs
dWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0dhbW1hIiwidmFsdWUiOiAi
MSJ9CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0xpbmVhciIsInZhbHVlIjogIjIifQor
XX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNraW5nUmVzdWx0IiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfVW5pbml0aWFsaXplZCIsInZhbHVl
IjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Q
cm9ncmVzcyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2luZ1Jlc3Vs
dF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1l
IjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0siLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7
Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMjAx
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLCJ2
YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxpZCIs
InZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0hNRCIs
InZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0NvbnRy
b2xsZXIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFz
c19HZW5lcmljVHJhY2tlciIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQiLCJ2YWx1ZSI6
ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCIs
InZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX1Jp
Z2h0SGFuZCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFj
a2luZ1VuaXZlcnNlU2VhdGVkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFj
a2luZ1VuaXZlcnNlU3RhbmRpbmciLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRy
YWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyIn0KK119CissICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkiLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJQcm9wX0ludmFsaWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyIsInZhbHVlIjogIjEwMDAi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6ICIx
MDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyIsInZhbHVl
IjogIjEwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5n
IiwidmFsdWUiOiAiMTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1dpbGxEcmlmdEluWWF3
X0Jvb2wiLCJ2YWx1ZSI6ICIxMDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTWFudWZhY3R1
cmVyTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA1In0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
VHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAwNiJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAwNyJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0
cmluZyIsInZhbHVlIjogIjEwMDgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db25uZWN0ZWRX
aXJlbGVzc0RvbmdsZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA5In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sIiwidmFsdWUiOiAiMTAxMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCIsInZhbHVlIjogIjEwMTEifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCIsInZhbHVl
IjogIjEwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3Jt
X01hdHJpeDM0IiwidmFsdWUiOiAiMTAxMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13
YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sIiwidmFsdWUiOiAiMTAxNCJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sIiwidmFsdWUiOiAiMTAxNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmciLCJ2
YWx1ZSI6ICIxMDE2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFyZHdhcmVSZXZpc2lvbl9V
aW50NjQiLCJ2YWx1ZSI6ICIxMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMTgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9G
UEdBVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE5In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfVlJDVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIwIn0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjEifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjIifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wiLCJ2YWx1ZSI6ICIxMDIz
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVtV2l0aEht
ZF9Cb29sIiwidmFsdWUiOiAiMTAyNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NvbnRhaW5z
UHJveGltaXR5U2Vuc29yX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI1In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI2In0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQ2FuUG93ZXJPZmZfQm9vbCIsInZhbHVlIjog
IjEwMjcifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1Rhcmdl
dF9TdHJpbmciLCJ2YWx1ZSI6ICIxMDI4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNl
Q2xhc3NfSW50MzIiLCJ2YWx1ZSI6ICIxMDI5In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFz
Q2FtZXJhX0Jvb2wiLCJ2YWx1ZSI6ICIxMDMwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRHJp
dmVyVmVyc2lvbl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDMxIn0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sIiwidmFsdWUiOiAiMTAzMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJlZF9Cb29sIiwi
dmFsdWUiOiAiMTAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1BhcmVudERyaXZlcl9VaW50
NjQiLCJ2YWx1ZSI6ICIxMDM0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfUmVwb3J0c1RpbWVT
aW5jZVZTeW5jX0Jvb2wiLCJ2YWx1ZSI6ICIyMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
U2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCIsInZhbHVlIjogIjIwMDEifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0IiwidmFsdWUiOiAiMjAwMiJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQiLCJ2YWx1ZSI6ICIy
MDAzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0Iiwi
dmFsdWUiOiAiMjAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1ByZXZpb3VzVW5pdmVyc2VJ
ZF9VaW50NjQiLCJ2YWx1ZSI6ICIyMDA1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxh
eUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDA2In0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfSXNPbkRlc2t0b3BfQm9vbCIsInZhbHVlIjogIjIwMDcifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyIiwidmFsdWUiOiAiMjAwOCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCIsInZhbHVlIjogIjIwMDkifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCIsInZhbHVlIjogIjIw
MTAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9FZGlkVmVuZG9ySURfSW50MzIiLCJ2YWx1ZSI6
ICIyMDExIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmlu
ZyIsInZhbHVlIjogIjIwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJbWFn
ZVJpZ2h0X1N0cmluZyIsInZhbHVlIjogIjIwMTMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9E
aXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0IiwidmFsdWUiOiAiMjAxNCJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0VkaWRQcm9kdWN0SURfSW50MzIiLCJ2YWx1ZSI6ICIyMDE1In0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0IiwidmFsdWUiOiAi
MjAxNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIiLCJ2YWx1
ZSI6ICIyMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0
IiwidmFsdWUiOiAiMjAxOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1NjYWxl
X0Zsb2F0IiwidmFsdWUiOiAiMjAxOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlH
Q1ByZXNjYWxlX0Zsb2F0IiwidmFsdWUiOiAiMjAyMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyIsInZhbHVlIjogIjIwMjEifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDIyIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0IiwidmFsdWUiOiAiMjAyMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxvYXQiLCJ2YWx1ZSI6ICIy
MDI0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCIsInZh
bHVlIjogIjIwMjUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhN
ZXRlcnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2Ft
ZXJhRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMjcifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9DYW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjIw
MjgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0Iiwi
dmFsdWUiOiAiMjAyOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlCb290bG9hZGVy
VmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
RGlzcGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMxIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfQXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAz
MiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMy
IiwidmFsdWUiOiAiMjAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NjcmVlbnNob3RIb3Jp
em9udGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiMjAzNCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9h
dCIsInZhbHVlIjogIjIwMzUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5U3VwcHJl
c3NlZF9Cb29sIiwidmFsdWUiOiAiMjAzNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3Bs
YXlBbGxvd05pZ2h0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjAzNyJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIiLCJ2YWx1ZSI6ICIyMDM4In0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIiLCJ2YWx1ZSI6ICIy
MDM5In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19J
bnQzMiIsInZhbHVlIjogIjIwNDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJ
bWFnZURhdGFfQmluYXJ5IiwidmFsdWUiOiAiMjA0MSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wiLCJ2YWx1ZSI6ICIyMDQyIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmciLCJ2YWx1ZSI6ICIzMDAwIn0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfU3VwcG9ydGVkQnV0dG9uc19VaW50NjQiLCJ2YWx1ZSI6ICIz
MDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczBUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMxVHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMlR5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIzMDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczNUeXBlX0ludDMyIiwidmFsdWUi
OiAiMzAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXM0VHlwZV9JbnQzMiIsInZhbHVl
IjogIjMwMDYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50
MzIiLCJ2YWx1ZSI6ICIzMDA3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdM
ZWZ0RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9GaWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDEifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0
MDAyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zs
b2F0IiwidmFsdWUiOiAiNDAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1RyYWNraW5nUmFu
Z2VNaW5pbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNSJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX01vZGVMYWJlbF9TdHJpbmciLCJ2YWx1ZSI6ICI0MDA2
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSWNvblBhdGhOYW1lX1N0cmluZyIsInZhbHVlIjog
IjUwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0
cmluZyIsInZhbHVlIjogIjUwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyIsInZhbHVlIjogIjUwMDIifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nIiwidmFs
dWUiOiAiNTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VS
ZWFkeV9TdHJpbmciLCJ2YWx1ZSI6ICI1MDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFt
ZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nIiwidmFsdWUiOiAiNTAwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmciLCJ2
YWx1ZSI6ICI1MDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVN0YW5kYnlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmciLCJ2YWx1ZSI6ICI1MDA4In0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0IiwidmFs
dWUiOiAiNTEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0Jp
bmFyeV9FbmQiLCJ2YWx1ZSI6ICI1MTUwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckNv
bmZpZ1BhdGhfU3RyaW5nIiwidmFsdWUiOiAiNjAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X0luc3RhbGxQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDEifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCIsInZhbHVlIjogIjEwMDAwIn0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kIiwidmFsdWUi
OiAiMTA5OTkifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0
eUVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZFByb3BfU3VjY2Vz
cyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfV3JvbmdEYXRh
VHlwZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfV3JvbmdE
ZXZpY2VDbGFzcyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3Bf
QnVmZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQ
cm9wX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVHJh
Y2tlZFByb3BfSW52YWxpZERldmljZSIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAi
VHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyIiwidmFsdWUiOiAiNiJ9CisgICAgICAg
LHsibmFtZSI6ICJUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UiLCJ2YWx1ZSI6
ICI3In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVt
TGVuZ3RoIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Ob3RZ
ZXRBdmFpbGFibGUiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9w
X1Blcm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFj
a2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uIiwidmFsdWUiOiAiMTEifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSU3VibWl0RmxhZ3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFt
ZSI6ICJTdWJtaXRfRGVmYXVsdCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiU3Vi
bWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAs
eyJuYW1lIjogIlN1Ym1pdF9HbFJlbmRlckJ1ZmZlciIsInZhbHVlIjogIjIifQorICAgICAgICx7
Im5hbWUiOiAiU3VibWl0X1Jlc2VydmVkIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVu
dW1uYW1lIjogInZyOjpFVlJTdGF0ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZS
U3RhdGVfVW5kZWZpbmVkIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0
ZV9PZmYiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfU2VhcmNoaW5n
IiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZ19BbGVy
dCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeSIsInZhbHVl
IjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydCIsInZhbHVlIjog
IjQifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9Ob3RSZWFkeSIsInZhbHVlIjogIjUifQor
ICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TdGFuZGJ5IiwidmFsdWUiOiAiNiJ9CisgICAgICAg
LHsibmFtZSI6ICJWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyIsInZhbHVlIjogIjcifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXZlbnRUeXBlIiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiVlJFdmVudF9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQiLCJ2YWx1ZSI6ICIx
MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCIsInZh
bHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2Vy
SW50ZXJhY3Rpb25TdGFydGVkIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIiwidmFsdWUiOiAiMTA0In0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfSXBkQ2hhbmdlZCIsInZhbHVlIjogIjEwNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUiLCJ2YWx1ZSI6ICIxMDYi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlIiwidmFsdWUiOiAi
MTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2Vk
IiwidmFsdWUiOiAiMTA4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfV2F0Y2hkb2dXYWtl
VXBSZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICIxMDkifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9M
ZW5zRGlzdG9ydGlvbkNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9CdXR0b25QcmVzcyIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0J1dHRvblVucHJlc3MiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9CdXR0b25Ub3VjaCIsInZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0J1dHRvblVudG91Y2giLCJ2YWx1ZSI6ICIyMDMifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9Nb3VzZU1vdmUiLCJ2YWx1ZSI6ICIzMDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24iLCJ2YWx1ZSI6ICIzMDEifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9Nb3VzZUJ1dHRvblVwIiwidmFsdWUiOiAiMzAyIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfRm9jdXNFbnRlciIsInZhbHVlIjogIjMwMyJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ZvY3VzTGVhdmUiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9TY3JvbGwiLCJ2YWx1ZSI6ICIzMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9Ub3VjaFBhZE1vdmUiLCJ2YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9PdmVybGF5Rm9jdXNDaGFuZ2VkIiwidmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkIiwidmFsdWUiOiAiNDAwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkIiwidmFsdWUiOiAiNDAxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0xvc3QiLCJ2YWx1ZSI6ICI0MDIifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNDAzIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQiLCJ2YWx1
ZSI6ICI0MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCIs
InZhbHVlIjogIjQwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNDaGFu
Z2VkIiwidmFsdWUiOiAiNDA2In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBs
aWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQiLCJ2YWx1ZSI6ICI0MDcifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzIiwidmFsdWUiOiAiNDEwIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlTaG93biIsInZhbHVlIjogIjUwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlIaWRkZW4iLCJ2YWx1ZSI6ICI1MDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQiLCJ2YWx1ZSI6
ICI1MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCIs
InZhbHVlIjogIjUwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Rhc2hib2FyZFRodW1i
U2VsZWN0ZWQiLCJ2YWx1ZSI6ICI1MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNo
Ym9hcmRSZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICI1MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9SZXNldERhc2hib2FyZCIsInZhbHVlIjogIjUwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1JlbmRlclRvYXN0IiwidmFsdWUiOiAiNTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfSW1hZ2VMb2FkZWQiLCJ2YWx1ZSI6ICI1MDgifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9TaG93S2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MDkifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9IaWRlS2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNTExIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QiLCJ2YWx1ZSI6ICI1MTIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQiLCJ2
YWx1ZSI6ICI1MTMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1
dHRvbkRvd24iLCJ2YWx1ZSI6ICI1MTQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNo
Ym9hcmRHdWlkZUJ1dHRvblVwIiwidmFsdWUiOiAiNTE1In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCIsInZhbHVlIjogIjUxNiJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0ltYWdlRmFpbGVkIiwidmFsdWUiOiAiNTE3In0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQiLCJ2YWx1ZSI6ICI1MTgifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCIsInZhbHVlIjogIjUyMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RUYWtlbiIsInZhbHVlIjogIjUy
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQiLCJ2YWx1ZSI6
ICI1MjIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNo
Ym9hcmQiLCJ2YWx1ZSI6ICI1MjMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5z
aG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCIsInZhbHVlIjogIjUyNCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkIiwidmFsdWUiOiAiNTI1In0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duIiwidmFsdWUiOiAi
NjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiIsInZh
bHVlIjogIjYwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdp
bkludGVyYWN0aW9uIiwidmFsdWUiOiAiNjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
Tm90aWZpY2F0aW9uX0Rlc3Ryb3llZCIsInZhbHVlIjogIjYwMyJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1F1aXQiLCJ2YWx1ZSI6ICI3MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9Qcm9jZXNzUXVpdCIsInZhbHVlIjogIjcwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQiLCJ2YWx1ZSI6ICI3MDIifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkIiwidmFsdWUiOiAiNzAzIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCIsInZhbHVlIjogIjcwNCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAi
ODAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkIiwidmFsdWUiOiAiODAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25l
VGVtcERhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAyIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjgwMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQiLCJ2YWx1ZSI6ICI4MDQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2
YWx1ZSI6ICI4MjAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CYWNrZ3JvdW5kU2V0dGlu
Z0hhc0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9D
YW1lcmFTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODUxIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTIi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2Vk
IiwidmFsdWUiOiAiODUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRW52aXJvbm1lbnRT
ZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU0In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU1In0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfU3RhdHVzVXBkYXRlIiwidmFsdWUiOiAiOTAwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMDAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkIiwidmFsdWUiOiAiMTEw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQiLCJ2
YWx1ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQi
LCJ2YWx1ZSI6ICIxMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRDaGFy
SW5wdXQiLCJ2YWx1ZSI6ICIxMjAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9h
cmREb25lIiwidmFsdWUiOiAiMTIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxp
Y2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQiLCJ2YWx1ZSI6ICIxMzAwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCIsInZhbHVlIjogIjEzMDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBT
dGFydGVkIiwidmFsdWUiOiAiMTMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxp
Y2F0aW9uTGlzdFVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMzAzIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQiLCJ2YWx1ZSI6ICIxMzA0In0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxl
dGUiLCJ2YWx1ZSI6ICIxMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRv
cl9NaXJyb3JXaW5kb3dTaG93biIsInZhbHVlIjogIjE0MDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiIsInZhbHVlIjogIjE0MDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3du
IiwidmFsdWUiOiAiMTQxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3Jf
Q2hhcGVyb25lQm91bmRzSGlkZGVuIiwidmFsdWUiOiAiMTQxMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVh
bSIsInZhbHVlIjogIjE1MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1BhdXNlVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAyIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDMi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJmYWNl
IiwidmFsdWUiOiAiMTU1MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1BlcmZvcm1hbmNl
VGVzdF9FbmFibGVDYXB0dXJlIiwidmFsdWUiOiAiMTYwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCIs
InZhbHVlIjogIjE2MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9NZXNzYWdlT3Zlcmxh
eV9DbG9zZWQiLCJ2YWx1ZSI6ICIxNjUwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVmVu
ZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjogIjE5
OTk5In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVEZXZpY2VBY3Rpdml0eUxldmVs
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9V
bmtub3duIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZp
dHlMZXZlbF9JZGxlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5h
bWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCIsInZh
bHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFu
ZGJ5IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJCdXR0
b25JZCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUJ1dHRvbl9TeXN0ZW0iLCJ2
YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUi
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9HcmlwIiwidmFsdWUi
OiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9MZWZ0IiwidmFsdWUiOiAi
MyJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9VcCIsInZhbHVlIjogIjQifQor
ICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfUmlnaHQiLCJ2YWx1ZSI6ICI1In0KKyAg
ICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX0Rvd24iLCJ2YWx1ZSI6ICI2In0KKyAgICAg
ICAseyJuYW1lIjogImtfRUJ1dHRvbl9BIiwidmFsdWUiOiAiNyJ9CisgICAgICAgLHsibmFtZSI6
ICJrX0VCdXR0b25fUHJveGltaXR5U2Vuc29yIiwidmFsdWUiOiAiMzEifQorICAgICAgICx7Im5h
bWUiOiAia19FQnV0dG9uX0F4aXMwIiwidmFsdWUiOiAiMzIifQorICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX0F4aXMxIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0
dG9uX0F4aXMyIiwidmFsdWUiOiAiMzQifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4
aXMzIiwidmFsdWUiOiAiMzUifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXM0Iiwi
dmFsdWUiOiAiMzYifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hw
YWQiLCJ2YWx1ZSI6ICIzMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fU3RlYW1WUl9U
cmlnZ2VyIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0Rhc2hi
b2FyZF9CYWNrIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fTWF4
IiwidmFsdWUiOiAiNjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTW91c2VC
dXR0b24iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX0xlZnQi
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0b25fUmlnaHQiLCJ2
YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0b25fTWlkZGxlIiwidmFs
dWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFSGlkZGVuQXJlYU1lc2hU
eXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19lSGlkZGVuQXJlYU1lc2hfU3Rh
bmRhcmQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNo
X0ludmVyc2UiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfZUhpZGRlbkFyZWFN
ZXNoX0xpbmVMb29wIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5B
cmVhTWVzaF9NYXgiLCJ2YWx1ZSI6ICIzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6
OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtf
ZUNvbnRyb2xsZXJBeGlzX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtf
ZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6
ICJrX2VDb250cm9sbGVyQXhpc19Kb3lzdGljayIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAia19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciIsInZhbHVlIjogIjMifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZSIsInZhbHVl
cyI6IFsgCisgICAgICAgeyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyIs
InZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29udHJvbGxlckV2ZW50T3V0cHV0X1ZS
RXZlbnRzIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29s
bGlzaW9uQm91bmRzU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJDT0xMSVNJ
T05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSIsInZhbHVlIjogIjEifQorICAg
ICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTIiwidmFsdWUiOiAi
MiJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VEIiwi
dmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX05P
TkUiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZ
TEVfQ09VTlQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUVy
cm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X1Vua25vd25PdmVybGF5IiwidmFsdWUiOiAiMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfSW52YWxpZEhhbmRsZSIsInZhbHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAg
LHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCIsInZhbHVlIjog
IjEzIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5
cGUiLCJ2YWx1ZSI6ICIxNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9LZXlU
b29Mb25nIiwidmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3Jf
TmFtZVRvb0xvbmciLCJ2YWx1ZSI6ICIxNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9LZXlJblVzZSIsInZhbHVlIjogIjE3In0KKyAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSIsInZhbHVlIjogIjE4In0KKyAgICAgICAseyJuYW1l
IjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlIiwidmFsdWUiOiAiMTkifQor
ICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZFBhcmFtZXRlciIsInZhbHVl
IjogIjIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1RodW1ibmFpbENhbnRC
ZURlc3Ryb3llZCIsInZhbHVlIjogIjIxIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVy
cm9yX0FycmF5VG9vU21hbGwiLCJ2YWx1ZSI6ICIyMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92
ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMjMifQorICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIyNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlIiwidmFsdWUiOiAiMjUi
fQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2Ui
LCJ2YWx1ZSI6ICIyNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Ob05laWdo
Ym9yIiwidmFsdWUiOiAiMjcifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVG9v
TWFueU1hc2tQcmltaXRpdmVzIiwidmFsdWUiOiAiMjkifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSIsInZhbHVlIjogIjMwIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25fT3RoZXIiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25fU2NlbmUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25fT3ZlcmxheSIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1V0aWxpdHkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25fVlJNb25pdG9yIiwidmFsdWUiOiAiNSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2ciLCJ2YWx1ZSI6ICI2In0KKyAgICAg
ICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25fTWF4IiwidmFsdWUiOiAiNyJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJGaXJtd2FyZUVycm9yIiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9TdWNjZXNzIiwidmFsdWUiOiAiMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfRmFpbCIsInZhbHVlIjogIjIifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3IiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX09LIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25J
ZCIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9y
X05vdGlmaWNhdGlvblF1ZXVlRnVsbCIsInZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlIiwidmFsdWUiOiAiMTAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJW
YWx1ZUFscmVhZHlFeGlzdHMiLCJ2YWx1ZSI6ICIxMDMifQorXX0KKywgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RVZSSW5pdEVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfVW5rbm93biIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQiLCJ2YWx1ZSI6ICIxMDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5k
IiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfRmls
ZU5vdEZvdW5kIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0luaXRfRmFjdG9yeU5vdEZvdW5kIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDUifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlIiwidmFsdWUi
OiAiMTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0Rp
cmVjdG9yeUludmFsaWQiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfSW5pdF9IbWROb3RGb3VuZCIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQiLCJ2YWx1
ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1Bh
dGgiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9O
b0xvZ1BhdGgiLCJ2YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkIiwidmFsdWUiOiAiMTE0
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUmV0cnkiLCJ2YWx1ZSI6ICIx
MTUifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVz
ZXIiLCJ2YWx1ZSI6ICIxMTYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9B
bm90aGVyQXBwTGF1bmNoaW5nIiwidmFsdWUiOiAiMTE3In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkIiwidmFsdWUiOiAiMTE4In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duIiwidmFsdWUiOiAiMTE5
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMiLCJ2
YWx1ZSI6ICIxMjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZl
ckZvckJhY2tncm91bmRBcHAiLCJ2YWx1ZSI6ICIxMjEifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvciIsInZhbHVlIjogIjEyMiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0
eUFwcHMiLCJ2YWx1ZSI6ICIxMjMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5p
dF9JbnRlcm5hbCIsInZhbHVlIjogIjEyNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJv
cl9Jbml0X0htZERyaXZlcklkSXNOb25lIiwidmFsdWUiOiAiMTI1In0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCIsInZhbHVlIjog
IjEyNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZv
dW5kIiwidmFsdWUiOiAiMTI3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
VlJNb25pdG9yU3RhcnR1cEZhaWxlZCIsInZhbHVlIjogIjEyOCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6
ICIxMjkifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGlj
YXRpb25UeXBlIiwidmFsdWUiOiAiMTMwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMiLCJ2YWx1ZSI6ICIxMzEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyIs
InZhbHVlIjogIjEzMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZSRGFz
aGJvYXJkTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMzMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMzQifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCIsInZhbHVlIjogIjIwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biIsInZhbHVlIjog
IjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biIs
InZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90
TG9hZGVkIiwidmFsdWUiOiAiMjAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Ry
aXZlcl9SdW50aW1lT3V0T2ZEYXRlIiwidmFsdWUiOiAiMjA0In0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSIsInZhbHVlIjogIjIwNSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCIsInZhbHVlIjogIjIwNiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlk
IiwidmFsdWUiOiAiMjA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9I
bWREaXNwbGF5Tm90Rm91bmQiLCJ2YWx1ZSI6ICIyMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duIiwidmFsdWUiOiAi
MjA5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91
dE9mQm91bmRzIiwidmFsdWUiOiAiMjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQiLCJ2YWx1ZSI6ICIyMTIifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQiLCJ2YWx1ZSI6
ICIzMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5p
dEZhaWxlZCIsInZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
UENfQ29tcG9zaXRvckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCIsInZhbHVlIjogIjMwNCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfRmFpbGVkIiwidmFsdWUiOiAiMzA1In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCIs
InZhbHVlIjogIjMwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9z
aXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UiLCJ2YWx1ZSI6ICIzMDcifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMi
LCJ2YWx1ZSI6ICIzMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRv
cl9GYWlsZWQiLCJ2YWx1ZSI6ICI0MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
Q29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQiLCJ2YWx1ZSI6ICI0MDEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRl
IiwidmFsdWUiOiAiNDAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfT3ZlcmxheUluaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0MDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0
MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxl
VG9Db25uZWN0VG9PY3VsdXNSdW50aW1lIiwidmFsdWUiOiAiMTAwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSIs
InZhbHVlIjogIjExMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQiLCJ2YWx1ZSI6ICIxMTAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X05vU3RvcmVkQ29uZmlnIiwidmFsdWUiOiAiMTEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29CaWciLCJ2YWx1ZSI6ICIx
MTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZv
dW5kX0NvbmZpZ1Rvb1NtYWxsIiwidmFsdWUiOiAiMTEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliIiwidmFs
dWUiOiAiMTEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiIsInZhbHVlIjogIjExMDcifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9TZW5kVXNlckRhdGFTdGFydCIsInZhbHVlIjogIjExMDgifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0
YXJ0IiwidmFsdWUiOiAiMTEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCIsInZhbHVlIjogIjEx
MTAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UiLCJ2YWx1ZSI6ICIxMTExIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IiLCJ2
YWx1ZSI6ICIxMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrIiwidmFsdWUiOiAiMTExMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZv
dW5kIiwidmFsdWUiOiAiMjAwMCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJT
Y3JlZW5zaG90VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hv
dFR5cGVfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9Nb25vIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX1N0ZXJlbyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9DdWJlbWFwIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNo
b3RUeXBlX01vbm9QYW5vcmFtYSIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJT
Y3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSIsInZhbHVlIjogIjUifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJl
dmlldyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVy
dHlGaWxlbmFtZXNfVlIiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAi
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCIsInZhbHVlIjogIjEwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlIiwi
dmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0lu
dmFsaWRGcmFtZUhlYWRlclZlcnNpb24iLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUi
OiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzIiwidmFsdWUiOiAiMTAzIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUiLCJ2YWx1ZSI6
ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9y
dGVkRm9yVGhpc0RldmljZSIsInZhbHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRy
YWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlIiwidmFsdWUiOiAiMTA2In0KKyAg
ICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5nRmFpbHVy
ZSIsInZhbHVlIjogIjEwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJv
cl9TdHJlYW1TZXR1cEZhaWx1cmUiLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUiOiAi
VlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTA5In0K
KyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRTaGFyZWRUZXh0
dXJlSGFuZGxlIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENh
bWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVyZUZhaWx1cmUiLCJ2
YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9G
cmFtZUF2YWlsYWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7
Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSIsInZh
bHVlIjogIjExNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAi
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIiwidmFsdWUiOiAiMSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVk
IiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVT
IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNh
dGlvbkVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVy
cm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25F
cnJvcl9BcHBLZXlBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0IiwidmFsdWUiOiAiMTAxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uIiwidmFsdWUiOiAi
MTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXgi
LCJ2YWx1ZSI6ICIxMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vu
a25vd25BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMTA1In0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nIiwidmFsdWUi
OiAiMTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFu
aWZlc3QiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVy
cm9yX0ludmFsaWRBcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAg
ICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGlu
ZyIsInZhbHVlIjogIjExMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3Jf
TGF1bmNoSW5Qcm9ncmVzcyIsInZhbHVlIjogIjExMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25RdWl0dGluZyIsInZhbHVlIjogIjExMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVHJhbnNpdGlvbkFib3J0ZWQiLCJ2
YWx1ZSI6ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0lzVGVt
cGxhdGUiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVy
cm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
QXBwbGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93blByb3BlcnR5IiwidmFsdWUiOiAi
MjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkUGFyYW1l
dGVyIiwidmFsdWUiOiAiMjAzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFw
cGxpY2F0aW9uUHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hUeXBlX1N0cmluZyIsInZhbHVlIjogIjEx
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0
b3J5X1N0cmluZyIsInZhbHVlIjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Bcmd1bWVudHNfU3RyaW5nIiwidmFsdWUiOiAi
MTQifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmci
LCJ2YWx1ZSI6ICIxNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlf
RGVzY3JpcHRpb25fU3RyaW5nIiwidmFsdWUiOiAiNTAifQorICAgICAgICx7Im5hbWUiOiAiVlJB
cHBsaWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nIiwidmFsdWUiOiAiNTEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmciLCJ2YWx1
ZSI6ICI1MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNl
X1N0cmluZyIsInZhbHVlIjogIjUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbCIsInZhbHVlIjogIjYwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wiLCJ2YWx1ZSI6
ICI2MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnN0YW5j
ZWRfQm9vbCIsInZhbHVlIjogIjYyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9Jc0ludGVybmFsX0Jvb2wiLCJ2YWx1ZSI6ICI2MyJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0IiwidmFsdWUiOiAi
NzAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25UcmFuc2l0
aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJh
bnNpdGlvbl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0
aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCIsInZhbHVlIjogIjEwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCIs
InZhbHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9u
X05ld0FwcExhdW5jaGVkIiwidmFsdWUiOiAiMjAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJu
YW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0siLCJ2YWx1ZSI6ICIxIn0KKyAgICAg
ICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyIsInZhbHVlIjog
IjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5p
bmdfQmFzZVN0YXRpb25NYXlIYXZlTW92ZWQiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5h
bWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3Zl
ZCIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlv
blN0YXRlX1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCIsInZhbHVlIjogIjEwMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yIiwidmFsdWUiOiAi
MjAwIn0KKyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3Jf
QmFzZVN0YXRpb25VbmluaXRpYWxpemVkIiwidmFsdWUiOiAiMjAxIn0KKyAgICAgICAseyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCIs
InZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0
YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCIsInZhbHVlIjogIjIwMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFs
aWQiLCJ2YWx1ZSI6ICIyMDQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNoYXBl
cm9uZUNvbmZpZ0ZpbGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFQ2hhcGVyb25l
Q29uZmlnRmlsZV9MaXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJFQ2hhcGVy
b25lQ29uZmlnRmlsZV9UZW1wIiwidmFsdWUiOiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1l
IjogInZyOjpFQ2hhcGVyb25lSW1wb3J0RmxhZ3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFt
ZSI6ICJFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkiLCJ2YWx1ZSI6ICIxIn0KK119CissICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsInZhbHVlcyI6IFsgCisg
ICAgICAgeyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6
ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0luY29tcGF0aWJsZVZl
cnNpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJy
b3JfRG9Ob3RIYXZlRm9jdXMiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJD
b21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7
Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uIiwidmFsdWUi
OiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVJc09u
V3JvbmdEZXZpY2UiLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3Np
dG9yRXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCIsInZhbHVlIjogIjEwNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBv
cnRlZCIsInZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJv
cl9JbmRleE91dE9mUmFuZ2UiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJD
b21wb3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCIsInZhbHVlIjogIjEwOCJ9CitdfQorLCAg
ICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCIsInZhbHVlcyI6IFsg
CisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUiLCJ2YWx1ZSI6ICIw
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNlIiwidmFsdWUi
OiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlUcmFuc2Zvcm1U
eXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX0Fi
c29sdXRlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlUcmFuc2Zv
cm1fVHJhY2tlZERldmljZVJlbGF0aXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSIsInZhbHVlIjogIjIifQorICAgICAg
ICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQiLCJ2YWx1ZSI6
ICIzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OlZST3ZlcmxheUZsYWdzIiwidmFs
dWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfTm9uZSIsInZhbHVlIjog
IjAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQ3VydmVkIiwidmFsdWUiOiAi
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19SR1NTNFgiLCJ2YWx1ZSI6ICIy
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiIiwidmFs
dWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19BY2NlcHRzR2FtZXBh
ZEV2ZW50cyIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3Nf
U2hvd0dhbWVwYWRGb2N1cyIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzIiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBhZEV2ZW50cyIsInZhbHVlIjogIjcifQor
ICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwi
LCJ2YWx1ZSI6ICI4In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1RyYW5zZmVy
T3duZXJzaGlwVG9JbnRlcm5hbFByb2Nlc3MiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1l
IjogIlZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwiLCJ2YWx1ZSI6ICIxMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQiLCJ2YWx1
ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSIsInZh
bHVlIjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1N0ZXJlb1Bhbm9y
YW1hIiwidmFsdWUiOiAiMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU29y
dFdpdGhOb25TY2VuZU92ZXJsYXlzIiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkIiwidmFsdWUiOiAiMTUifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblBy
ZXNzXzAiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlS
ZXNwb25zZV9CdXR0b25QcmVzc18xIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiIsInZhbHVlIjogIjIifQorICAg
ICAgICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMiLCJ2
YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9D
b3VsZG50RmluZFN5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjog
IlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3JlYXRlQ2xpZW50T3Zlcmxh
eSIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlX0FwcGxpY2F0aW9uUXVpdCIsInZhbHVlIjogIjYifQorXX0KKywgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5h
bWUiOiAia19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwiLCJ2YWx1ZSI6ICIwIn0KKyAgICAg
ICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQiLCJ2YWx1ZSI6ICIx
In0KKyAgICAgICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0IiwidmFs
dWUiOiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFR2FtZXBhZFRleHRJbnB1
dExpbmVNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FR2FtZXBhZFRleHRJ
bnB1dExpbmVNb2RlU2luZ2xlTGluZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAi
a19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyIsInZhbHVlIjogIjEifQor
XX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24iLCJ2YWx1ZXMi
OiBbIAorICAgICAgIHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX1VwIiwidmFsdWUiOiAiMCJ9
CisgICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0Rvd24iLCJ2YWx1ZSI6ICIxIn0K
KyAgICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fTGVmdCIsInZhbHVlIjogIjIifQor
ICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9SaWdodCIsInZhbHVlIjogIjMifQor
ICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Db3VudCIsInZhbHVlIjogIjQifQor
XX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQ
cmltaXRpdmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiT3ZlcmxheUludGVy
c2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUiLCJ2YWx1ZSI6
ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3Ii
LCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9uZSIs
InZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRp
bmciLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9y
X05vdFN1cHBvcnRlZCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZEFyZyIsInZhbHVlIjogIjMwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsIiwidmFsdWUiOiAiMzAxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyIsInZhbHVlIjogIjMwMiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMiLCJ2
YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01h
bnlWZXJ0aWNlcyIsInZhbHVlIjogIjMwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1v
ZGVsRXJyb3JfTXVsdGlwbGVUZXh0dXJlcyIsInZhbHVlIjogIjMwNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzMDYifQor
ICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMiLCJ2
YWx1ZSI6ICIzMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVu
b3VnaFRleENvb3JkcyIsInZhbHVlIjogIjMwOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICI0MDAifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSQ29tcG9uZW50UHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAg
ICAgIHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGljIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSIsInZhbHVl
IjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1RvdWNoZWQi
LCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNQ
cmVzc2VkIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3Bl
cnR5X0lzU2Nyb2xsZWQiLCJ2YWx1ZSI6ICIxNiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjog
InZyOjpFVlJOb3RpZmljYXRpb25UeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAi
RVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCIsInZhbHVlIjogIjEifQorICAg
ICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVz
ZXJWYWx1ZSIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZS
Tm90aWZpY2F0aW9uU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFVlJOb3Rp
ZmljYXRpb25TdHlsZV9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJO
b3RpZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Rpc2FibGVkIiwidmFsdWUiOiAi
MjAwIn0KKyAgICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5h
YmxlZCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25T
dHlsZV9Db250YWN0X0FjdGl2ZSIsInZhbHVlIjogIjIwMiJ9CitdfQorLCAgICAgICB7ImVudW1u
YW1lIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAiVlJTZXR0aW5nc0Vycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9JUENGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1l
IjogIlZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCIsInZhbHVlIjogIjIifQorICAgICAgICx7
Im5hbWUiOiAiVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQiLCJ2YWx1ZSI6ICIzIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9Kc29uUGFyc2VGYWlsZWQiLCJ2YWx1ZSI6ICI0
In0KKyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0Rl
ZmF1bHQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlNj
cmVlbnNob3RFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hv
dEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hv
dEVycm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZS
U2NyZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2
YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfU2NyZWVu
c2hvdEFscmVhZHlJblByb2dyZXNzIiwidmFsdWUiOiAiMTA4In0KK119CitdLAorImNvbnN0cyI6
W3sKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSIs
ImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia191blRyYWNrZWREZXZpY2VJbmRleF9IbWQiLCJjb25zdHR5
cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia191bk1heFRyYWNrZWREZXZpY2VDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1
aW50MzJfdCIsICJjb25zdHZhbCI6ICIxNiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191
blRyYWNrZWREZXZpY2VJbmRleE90aGVyIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90Iiwg
ImNvbnN0dmFsIjogIjQyOTQ5NjcyOTQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5U
cmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90Iiwg
ImNvbnN0dmFsIjogIjQyOTQ5NjcyOTUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdWxJ
bnZhbGlkUHJvcGVydHlDb250YWluZXIiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuSW52YWxpZFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5G
bG9hdFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190Iiwg
ImNvbnN0dmFsIjogIjEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5JbnQzMlByb3Bl
cnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFs
IjogIjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5VaW50NjRQcm9wZXJ0eVRhZyIs
ImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIzIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuQm9vbFByb3BlcnR5VGFnIiwiY29uc3R0eXBl
IjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjQifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfdW5TdHJpbmdQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25z
dCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIyMCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJv
cGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjEifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfdW5IbWRWZWN0b3I0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlU
eXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBl
VGFnX3QiLCAiY29uc3R2YWwiOiAiMzAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5P
cGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0IiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjEwMDAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwMCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50
MzJfdCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191
bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIs
ICJjb25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VsT3ZlcmxheUhh
bmRsZUludmFsaWQiLCJjb25zdHR5cGUiOiAiY29uc3QgVlJPdmVybGF5SGFuZGxlX3QiLCAiY29u
c3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blNjcmVlbnNob3RIYW5k
bGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlN5c3RlbV9WZXJzaW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlN5c3RlbV8wMTUifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogIklWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkV4dGVuZGVkRGlzcGxh
eV8wMDEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlRyYWNrZWRDYW1lcmFfVmVyc2lv
biIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJUcmFj
a2VkQ2FtZXJhXzAwMyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heEFwcGxpY2F0
aW9uS2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjog
IjEyOCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfSG9tZUFwcCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ2ci9ob21lIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ2ci9nYW1lX3RoZWF0
ZXIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkFwcGxpY2F0aW9uc19WZXJzaW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkFwcGxpY2F0
aW9uc18wMDYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNoYXBlcm9uZV9WZXJzaW9u
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNoYXBl
cm9uZV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNoYXBlcm9uZVNldHVwX1Zl
cnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZS
Q2hhcGVyb25lU2V0dXBfMDA1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDb21wb3Np
dG9yX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiSVZSQ29tcG9zaXRvcl8wMjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5WUk92
ZXJsYXlNYXhLZXlMZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2
YWwiOiAiMTI4In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVybGF5TWF4TmFt
ZUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhPdmVybGF5Q291bnQiLCJjb25zdHR5
cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiNjQifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZXNDb3VudCIs
ImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMiJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAiSVZST3ZlcmxheV9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUk92ZXJsYXlfMDE0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1IiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImdkYzIwMTUifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFzZSJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInRpcCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiaGFuZGdyaXAifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGF0dXMifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlJlbmRlck1vZGVsc19WZXJzaW9uIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlJlbmRlck1vZGVsc18w
MDUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6
ZSIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIyNTYifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogIklWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJOb3RpZmljYXRpb25zXzAw
MiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heFNldHRpbmdzS2V5TGVuZ3RoIiwi
Y29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjEyOCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAiSVZSU2V0dGluZ3NfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTZXR0aW5nc18wMDIifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGVhbXZyIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlcXVpcmVIbWQifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZWREcml2ZXIifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmlu
ZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZWRI
bWQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVn
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlz
cGxheURlYnVnIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlYnVn
UHJvY2Vzc1BpcGVfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImRlYnVnUHJvY2Vzc1BpcGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZURpc3RvcnRpb24ifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RGVidWdYIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURl
YnVnWSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZW5kU3lzdGVt
QnV0dG9uVG9BbGxBcHBzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJsb2dsZXZlbCJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9JUERfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiaXBkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmQifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZFVzZURv
bWVQcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Jh
Y2tncm91bmRDYW1lcmFIZWlnaHRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZENhbWVyYUhlaWdodCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kRG9t
ZVJhZGl1cyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9HcmlkQ29s
b3JfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
ImdyaWRDb2xvciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9QbGF5
QXJlYUNvbG9yX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJwbGF5QXJlYUNvbG9yIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9T
dGVhbVZSX1Nob3dTdGFnZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogInNob3dTdGFnZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlk
X0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRp
cmVjdE1vZGVFZGlkVmlkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZS
X0RpcmVjdE1vZGVFZGlkUGlkX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImRpcmVjdE1vZGVFZGlkUGlkIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2luZ1NwZWFrZXJzIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3Jl
ZXNfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
c3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2VzdGF0aW9uUG93ZXJN
YW5hZ2VtZW50In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX05ldmVy
S2lsbFByb2Nlc3Nlc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogIm5ldmVyS2lsbFByb2Nlc3NlcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0IiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlclRhcmdldE11bHRpcGxpZXIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJv
amVjdGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImFsbG93QXN5bmNSZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9u
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9y
Y2VSZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJf
Rm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogImZvcmNlRmFkZU9uQmFkVHJhY2tpbmcifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGVmYXVsdE1pcnJvclZp
ZXcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZp
ZXdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJz
aG93TWlycm9yVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9N
aXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIm1pcnJvclZpZXdHZW9tZXRyeSJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0TW9uaXRvckZyb21BcHBM
YXVuY2gifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnRDb21w
b3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2gifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNo
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3Rh
cnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX1N0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhcnRPdmVybGF5QXBwc0Zyb21E
YXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRW5hYmxl
SG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJl
bmFibGVIb21lQXBwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nl
dEluaXRpYWxEZWZhdWx0SG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMy
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkN5Y2xlQmFj
a2dyb3VuZEltYWdlVGltZVNlYyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9SZXRhaWxEZW1vX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAicmV0YWlsRGVtbyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiaXBkT2Zmc2V0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9MaWdodGhvdXNlX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiZHJpdmVyX2xpZ2h0aG91c2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc2FibGVpbXUifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZWRpc2FtYmlndWF0aW9u
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0
aW9uRGVidWdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiZGlzYW1iaWd1YXRpb25kZWJ1ZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicHJpbWFyeWJhc2VzdGF0aW9uIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRiaGlzdG9yeSJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWN0aW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRyaXZlcl9udWxsIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmciLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2VyaWFsTnVtYmVyIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJtb2RlbE51bWJlciJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dYX0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRvd1gifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WV9JbnQzMiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dZIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRvd1dpZHRoIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dIZWlnaHQifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicmVuZGVyV2lkdGgi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMy
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlckhl
aWdodCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWNvbmRzRnJvbVZz
eW5jVG9QaG90b25zX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RnJlcXVlbmN5In0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24iLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNlcmludGVyZmFjZSJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNP
blRvcF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IlN0YXR1c0Fsd2F5c09uVG9wIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2Vy
SW50ZXJmYWNlX01pbmltaXplVG9UcmF5X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiTWluaW1pemVUb1RyYXkifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzY3JlZW5zaG90cyJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hv
dFR5cGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX05vdGlmaWNhdGlvbnNfU2Vj
dGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJub3Rp
ZmljYXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25z
X0RvTm90RGlzdHVyYl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogIkRvTm90RGlzdHVyYiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
S2V5Ym9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJrZXlib2FyZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9h
cmRfVHV0b3JpYWxDb21wbGV0aW9ucyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJUdXRvcmlhbENvbXBsZXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9LZXlib2FyZF9TY2FsZVgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiU2NhbGVYIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9LZXlib2FyZF9TY2FsZVkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiU2NhbGVZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2Fy
ZF9PZmZzZXRMZWZ0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJPZmZzZXRMZWZ0WCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9h
cmRfT2Zmc2V0UmlnaHRYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIk9mZnNldFJpZ2h0WCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5
Ym9hcmRfT2Zmc2V0WSIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJPZmZzZXRZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9T
bW9vdGhpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
U21vb3RoaW5nIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX1NlY3Rpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicGVyZmNoZWNr
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhldXJp
c3RpY0FjdGl2ZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9Ob3RpZnlJ
bkhNRF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
Indhcm5JbkhNRCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9Ob3RpZnlP
bmx5T25jZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIndhcm5Pbmx5T25jZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9B
bGxvd1RpbWluZ1N0b3JlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiYWxsb3dUaW1pbmdTdG9yZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNhdmVUaW1pbmdzT25FeGl0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0IiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZUZXN0RGF0YSJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY29sbGlzaW9uQm91bmRzIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9u
Qm91bmRzU3R5bGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJv
dW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2Vy
T25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJD
b2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24i
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlz
dGFuY2VfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1t
YVIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xv
ckdhbW1hR19JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMyIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2Ft
bWFCIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29s
b3JHYW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0NhbWVyYV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImNhbWVyYSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
Q2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JD
b2xsaXNpb25Cb3VuZHNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVy
YUZvclJvb21WaWV3In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91
bmRzQ29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1h
RyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2Ft
bWFCX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
ImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNT
dHJlbmd0aCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fU2VjdGlvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhdWRpbyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJp
bmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5
YmFja0RldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25SZWNv
cmREZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIm9uUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9h
dWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib2ZmUGxheWJh
Y2tEZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09mZlJlY29y
ZERldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAib2ZmUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9h
dWRpb19WSVZFSERNSUdhaW4iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAidml2ZUhETUlHYWluIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Q
b3dlcl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogInBvd2VyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9Qb3dlck9m
Zk9uRXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogInBvd2VyT2ZmT25FeGl0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dl
cl9UdXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAidHVybk9mZlNjcmVlbnNUaW1lb3V0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZD
b250cm9sbGVyc1RpbWVvdXQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1Bvd2Vy
X1JldHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0In0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJl
c3MiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXV0b0xh
dW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9EYXNoYm9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJkYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Rh
c2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXJjYWRlTW9kZSJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfbW9kZWxza2luX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxza2lucyJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZSJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAiSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJJVlJTY3JlZW5zaG90c18wMDEifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogIklWUlJlc291cmNlc19WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIklWUlJlc291cmNlc18wMDEifQorXSwKKyJzdHJ1Y3RzIjpbeyJz
dHJ1Y3QiOiAidnI6OkhtZE1hdHJpeDM0X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
bSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzNdWzRdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRN
YXRyaXg0NF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm0iLCAiZmllbGR0eXBlIjog
ImZsb2F0IFs0XVs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yM190IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFszXSJ9XX0KKyx7
InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yNF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjog
InYiLCAiZmllbGR0eXBlIjogImZsb2F0IFs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVj
dG9yM2RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJk
b3VibGUgWzNdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRWZWN0b3IyX3QiLCJmaWVsZHMiOiBb
Cit7ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQorLHsic3Ry
dWN0IjogInZyOjpIbWRRdWF0ZXJuaW9uX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
dyIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5
cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieSIsICJmaWVsZHR5cGUiOiAiZG91Ymxl
In0sCit7ICJmaWVsZG5hbWUiOiAieiIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn1dfQorLHsic3Ry
dWN0IjogInZyOjpIbWRDb2xvcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInIiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZyIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJiIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogImEiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZy
OjpIbWRRdWFkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidkNvcm5lcnMiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190IFs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6SG1kUmVjdDJfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2VG9wTGVmdCIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2
Qm90dG9tUmlnaHQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In1dfQor
LHsic3RydWN0IjogInZyOjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCIsImZpZWxkcyI6IFsKK3sg
ImZpZWxkbmFtZSI6ICJyZlJlZCIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn0sCit7ICJmaWVs
ZG5hbWUiOiAicmZHcmVlbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn0sCit7ICJmaWVsZG5h
bWUiOiAicmZCbHVlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbMl0ifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlRleHR1cmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUiLCAiZmll
bGR0eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogImVUeXBlIiwgImZpZWxkdHlwZSI6
ICJlbnVtIHZyOjpFVGV4dHVyZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJlQ29sb3JTcGFjZSIs
ICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifV19CisseyJzdHJ1Y3QiOiAidnI6
OlRyYWNrZWREZXZpY2VQb3NlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibURldmlj
ZVRvQWJzb2x1dGVUcmFja2luZyIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgz
NF90In0sCit7ICJmaWVsZG5hbWUiOiAidlZlbG9jaXR5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZBbmd1bGFyVmVsb2NpdHkiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAi
ZVRyYWNraW5nUmVzdWx0IiwgImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQi
fSwKK3sgImZpZWxkbmFtZSI6ICJiUG9zZUlzVmFsaWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0s
Cit7ICJmaWVsZG5hbWUiOiAiYkRldmljZUlzQ29ubmVjdGVkIiwgImZpZWxkdHlwZSI6ICJfQm9v
bCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJUZXh0dXJlQm91bmRzX3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAidU1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFt
ZSI6ICJ2TWluIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInVNYXgi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidk1heCIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVnVsa2FuVGV4dHVyZURhdGFfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25JbWFnZSIsICJmaWVsZHR5cGUiOiAidWlu
dDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BEZXZpY2UiLCAiZmllbGR0eXBlIjogInN0cnVj
dCBWa0RldmljZV9UICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BQaHlzaWNhbERldmljZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIn0sCit7ICJmaWVsZG5hbWUi
OiAibV9wSW5zdGFuY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBWa0luc3RhbmNlX1QgKiJ9LAor
eyAiZmllbGRuYW1lIjogIm1fcFF1ZXVlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtRdWV1ZV9U
ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX25RdWV1ZUZhbWlseUluZGV4IiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25Gb3JtYXQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uU2FtcGxlQ291bnQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpEM0QxMlRleHR1cmVEYXRhX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAibV9wUmVzb3VyY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBJ
RDNEMTJSZXNvdXJjZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wQ29tbWFuZFF1ZXVlIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoifSwKK3sgImZpZWxkbmFtZSI6
ICJtX25Ob2RlTWFzayIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlZSRXZlbnRfQ29udHJvbGxlcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJ1
dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZl
bnRfTW91c2VfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ4IiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7
ICJmaWVsZG5hbWUiOiAiYnV0dG9uIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JvbGxfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6
ICJ4ZGVsdGEiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAieWRlbHRh
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInJlcGVhdENvdW50Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Ub3Vj
aFBhZE1vdmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiRmluZ2VyRG93biIsICJm
aWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJmbFNlY29uZHNGaW5nZXJEb3du
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImZWYWx1ZVhGaXJzdCIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZRmlyc3QiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWFJhdyIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZUmF3IiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Ob3RpZmljYXRpb25fdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1bFVzZXJWYWx1ZSIsICJmaWVsZHR5cGUiOiAi
dWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb25JZCIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvY2Vzc190IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJvbGRQaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJm
aWVsZG5hbWUiOiAiYkZvcmNlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifV19CisseyJzdHJ1Y3Qi
OiAidnI6OlZSRXZlbnRfT3ZlcmxheV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm92
ZXJsYXlIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In1dfQorLHsic3RydWN0IjogInZy
OjpWUkV2ZW50X1N0YXR1c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInN0YXR1c1N0
YXRlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVu
dF9LZXlib2FyZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNOZXdJbnB1dCIsICJm
aWVsZHR5cGUiOiAiY2hhciBbOF0ifSwKK3sgImZpZWxkbmFtZSI6ICJ1VXNlclZhbHVlIiwgImZp
ZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9JcGRfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJpcGRNZXRlcnMiLCAiZmllbGR0eXBlIjogImZs
b2F0In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0NoYXBlcm9uZV90IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogIm1fblByZXZpb3VzVW5pdmVyc2UiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQ3VycmVudFVuaXZlcnNlIiwgImZpZWxkdHlw
ZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9SZXNlcnZlZF90Iiwi
ZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2VydmVkMCIsICJmaWVsZHR5cGUiOiAidWlu
dDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDEiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fbkZpZGVsaXR5TGV2ZWwiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVz
ZXRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiUmVzZXRCeVN5c3RlbU1lbnUiLCAi
ZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNo
b3RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAidHlwZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QiLCJm
aWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicHJvZ3Jlc3MiLCAiZmllbGR0eXBlIjogImZsb2F0
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogInVuQXJnc0hhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19
CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJvdmVybGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50
NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm5WaXN1YWxNb2RlIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogInVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Qcm9wZXJ0
eV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNvbnRhaW5lciIsICJmaWVsZHR5cGUi
OiAiUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCJ9LAoreyAiZmllbGRuYW1lIjogInByb3AiLCAi
ZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifV19CisseyJzdHJ1
Y3QiOiAidnI6Oihhbm9ueW1vdXMpIiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2Vy
dmVkIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCJ9LAoreyAi
ZmllbGRuYW1lIjogImNvbnRyb2xsZXIiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVu
dF9Db250cm9sbGVyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtb3VzZSIsICJmaWVsZHR5cGUiOiAi
c3RydWN0IHZyOjpWUkV2ZW50X01vdXNlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJzY3JvbGwiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JvbGxfdCJ9LAoreyAiZmllbGRuYW1l
IjogInByb2Nlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9jZXNzX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb24iLCAiZmllbGR0eXBlIjogInN0cnVjdCB2
cjo6VlJFdmVudF9Ob3RpZmljYXRpb25fdCJ9LAoreyAiZmllbGRuYW1lIjogIm92ZXJsYXkiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9PdmVybGF5X3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJzdGF0dXMiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TdGF0dXNfdCJ9
LAoreyAiZmllbGRuYW1lIjogImtleWJvYXJkIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZS
RXZlbnRfS2V5Ym9hcmRfdCJ9LAoreyAiZmllbGRuYW1lIjogImlwZCIsICJmaWVsZHR5cGUiOiAi
c3RydWN0IHZyOjpWUkV2ZW50X0lwZF90In0sCit7ICJmaWVsZG5hbWUiOiAiY2hhcGVyb25lIiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQ2hhcGVyb25lX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJwZXJmb3JtYW5jZVRlc3QiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVu
dF9QZXJmb3JtYW5jZVRlc3RfdCJ9LAoreyAiZmllbGRuYW1lIjogInRvdWNoUGFkTW92ZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1RvdWNoUGFkTW92ZV90In0sCit7ICJmaWVs
ZG5hbWUiOiAic2VhdGVkWmVyb1Bvc2VSZXNldCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCJ9LAoreyAiZmllbGRuYW1lIjogInNjcmVlbnNo
b3QiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JlZW5zaG90X3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJzY3JlZW5zaG90UHJvZ3Jlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2
cjo6VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCJ9LAoreyAiZmllbGRuYW1lIjogImFwcGxp
Y2F0aW9uTGF1bmNoIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQXBwbGljYXRp
b25MYXVuY2hfdCJ9LAoreyAiZmllbGRuYW1lIjogImNhbWVyYVN1cmZhY2UiLCAiZmllbGR0eXBl
IjogInN0cnVjdCB2cjo6VlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90In0sCit7ICJmaWVs
ZG5hbWUiOiAibWVzc2FnZU92ZXJsYXkiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVu
dF9NZXNzYWdlT3ZlcmxheV90In0sCit7ICJmaWVsZG5hbWUiOiAicHJvcGVydHkiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9wZXJ0eV90In1dfQorLHsic3RydWN0IjogInZy
OjpWUkV2ZW50X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiZXZlbnRUeXBlIiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInRyYWNrZWREZXZpY2VJbmRl
eCIsICJmaWVsZHR5cGUiOiAiVHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgImZpZWxkbmFtZSI6
ICJldmVudEFnZVNlY29uZHMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAiZGF0YSIsICJmaWVsZHR5cGUiOiAiVlJFdmVudF9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAi
dnI6OkhpZGRlbkFyZWFNZXNoX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicFZlcnRl
eERhdGEiLCAiZmllbGR0eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoifSwK
K3sgImZpZWxkbmFtZSI6ICJ1blRyaWFuZ2xlQ291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQorLHsic3RydWN0IjogInZyOjpWUkNvbnRyb2xsZXJBeGlzX3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9s
bGVyU3RhdGUwMDFfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1blBhY2tldE51bSIs
ICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ1bEJ1dHRvblByZXNz
ZWQiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAidWxCdXR0b25U
b3VjaGVkIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogInJBeGlz
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNfdCBbNV0ifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OkNvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzIiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogInNpemUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAiY3VydmVkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAoreyAiZmllbGRuYW1lIjog
ImFudGlhbGlhcyIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJzY2Fs
ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJkaXN0YW5jZSIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJhbHBoYSIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ1T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoreyAiZmllbGRuYW1lIjogInZPZmZzZXQiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7
ICJmaWVsZG5hbWUiOiAidVNjYWxlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRu
YW1lIjogInZTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJn
cmlkRGl2cyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJncmlkV2lk
dGgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZ3JpZFNjYWxlIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInRyYW5zZm9ybSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXg0NF90In1dfQorLHsic3RydWN0IjogInZyOjpD
YW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUi
OiAiZUZyYW1lVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSJ9LAoreyAiZmllbGRuYW1lIjogIm5XaWR0aCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogIm5CeXRlc1BlclBpeGVsIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm5GcmFtZVNlcXVlbmNlIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInN0YW5kaW5nVHJhY2tlZERldmljZVBvc2UiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KKyx7InN0cnVjdCI6
ICJ2cjo6QXBwT3ZlcnJpZGVLZXlzX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicGNo
S2V5IiwgImZpZWxkdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgImZpZWxkbmFtZSI6ICJwY2hW
YWx1ZSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn1dfQorLHsic3RydWN0IjogInZyOjpD
b21wb3NpdG9yX0ZyYW1lVGltaW5nIiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fblNp
emUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uRnJhbWVJ
bmRleCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1G
cmFtZVByZXNlbnRzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjog
Im1fbk51bU1pc1ByZXNlbnRlZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogIm1fblJlcHJvamVjdGlvbkZsYWdzIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzIiwgImZpZWxk
dHlwZSI6ICJkb3VibGUifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJlU3VibWl0R3B1TXMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFBvc3RTdWJtaXRHcHVN
cyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsVG90YWxSZW5k
ZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29t
cG9zaXRvclJlbmRlckdwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7
ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JJZGxlQ3B1TXMiLCAiZmllbGR0eXBlIjogImZs
b2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNcyIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJlc2VudENhbGxDcHVNcyIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2FpdEZvclByZXNl
bnRDcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsU3Vi
bWl0RnJhbWVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2Zs
V2FpdEdldFBvc2VzQ2FsbGVkTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5h
bWUiOiAibV9mbE5ld1Bvc2VzUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX2ZsTmV3RnJhbWVSZWFkeU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAor
eyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRNcyIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yUmVu
ZGVyU3RhcnRNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX0ht
ZFBvc2UiLCAiZmllbGR0eXBlIjogInZyOjpUcmFja2VkRGV2aWNlUG9zZV90In1dfQorLHsic3Ry
dWN0IjogInZyOjpDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyIsImZpZWxkcyI6IFsKK3sgImZp
ZWxkbmFtZSI6ICJtX25QaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAibV9uTnVtRnJhbWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzIiwgImZpZWxkdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHNPblN0
YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVt
RHJvcHBlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Mb2FkaW5nIiwgImZpZWxkdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHNMb2Fk
aW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bURy
b3BwZWRGcmFtZXNMb2FkaW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRu
YW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1UaW1lZE91dCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQi
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJvcHBl
ZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In1dfQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2U291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1
Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZEaXJlY3Rpb24iLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAiZU9y
aWdpbiIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifV19
CisseyJzdHJ1Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2UG9pbnQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAidk5vcm1hbCIsICJmaWVsZHR5cGUiOiAi
c3RydWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2VVZzIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAoreyAiZmllbGRuYW1lIjogImZEaXN0
YW5jZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OkludGVyc2Vj
dGlvbk1hc2tSZWN0YW5nbGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX2ZsVG9w
TGVmdFgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFRvcExl
ZnRZIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxXaWR0aCIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsSGVpZ2h0IiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SW50ZXJzZWN0aW9uTWFza0Np
cmNsZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fZmxDZW50ZXJYIiwgImZpZWxk
dHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDZW50ZXJZIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxSYWRpdXMiLCAiZmllbGR0eXBlIjog
ImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKK3sg
ImZpZWxkbmFtZSI6ICJtX1JlY3RhbmdsZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpJbnRl
cnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX0NpcmNsZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QifV19CisseyJz
dHJ1Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QcmltaXRpdmVUeXBlIiwgImZpZWxkdHlwZSI6ICJl
bnVtIHZyOjpFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX1ByaW1pdGl2ZSIsICJmaWVsZHR5cGUiOiAiVlJPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVs
X0NvbXBvbmVudFN0YXRlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5n
VG9Db21wb25lbnRSZW5kZXJNb2RlbCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRy
aXgzNF90In0sCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5nVG9Db21wb25lbnRMb2NhbCIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90In0sCit7ICJmaWVsZG5hbWUiOiAi
dVByb3BlcnRpZXMiLCAiZmllbGR0eXBlIjogIlZSQ29tcG9uZW50UHJvcGVydGllcyJ9XX0KKyx7
InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVs
ZG5hbWUiOiAidlBvc2l0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNf
dCJ9LAoreyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAicmZUZXh0dXJlQ29vcmQiLCAiZmllbGR0
eXBlIjogImZsb2F0IFsyXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVGV4dHVy
ZU1hcF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInVuV2lkdGgiLCAiZmllbGR0eXBl
IjogInVpbnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAidW5IZWlnaHQiLCAiZmllbGR0eXBlIjog
InVpbnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAicnViVGV4dHVyZU1hcERhdGEiLCAiZmllbGR0
eXBlIjogImNvbnN0IHVpbnQ4X3QgKiJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxf
dCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyVmVydGV4RGF0YSIsICJmaWVsZHR5cGUi
OiAiY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqIn0sCit7ICJmaWVsZG5h
bWUiOiAidW5WZXJ0ZXhDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJySW5kZXhEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCB1aW50MTZfdCAqIn0sCit7
ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogImRpZmZ1c2VUZXh0dXJlSWQiLCAiZmllbGR0eXBlIjogIlRleHR1
cmVJRF90In1dfQorLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9T
dGF0ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJTY3JvbGxXaGVlbFZpc2libGUi
LCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpOb3RpZmljYXRpb25C
aXRtYXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX3BJbWFnZURhdGEiLCAiZmll
bGR0eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwgImZpZWxkdHlw
ZSI6ICJpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uSGVpZ2h0IiwgImZpZWxkdHlwZSI6
ICJpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5
cGUiOiAiaW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q09wZW5WUkNvbnRleHQiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9wVlJTeXN0ZW0iLCAiZmllbGR0eXBlIjogImNsYXNz
IHZyOjpJVlJTeXN0ZW0gKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ2hhcGVyb25lIiwgImZp
ZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25lICoifSwKK3sgImZpZWxkbmFtZSI6ICJt
X3BWUkNoYXBlcm9uZVNldHVwIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25l
U2V0dXAgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ29tcG9zaXRvciIsICJmaWVsZHR5cGUi
OiAiY2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZST3Zl
cmxheSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUk92ZXJsYXkgKiJ9LAoreyAiZmllbGRu
YW1lIjogIm1fcFZSUmVzb3VyY2VzIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSUmVzb3Vy
Y2VzICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlJlbmRlck1vZGVscyIsICJmaWVsZHR5cGUi
OiAiY2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJF
eHRlbmRlZERpc3BsYXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3Bs
YXkgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2V0dGluZ3MiLCAiZmllbGR0eXBlIjogImNs
YXNzIHZyOjpJVlJTZXR0aW5ncyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJBcHBsaWNhdGlv
bnMiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJBcHBsaWNhdGlvbnMgKiJ9LAoreyAiZmll
bGRuYW1lIjogIm1fcFZSVHJhY2tlZENhbWVyYSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklW
UlRyYWNrZWRDYW1lcmEgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2NyZWVuc2hvdHMiLCAi
ZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqIn1dfQorXSwKKyJtZXRob2Rz
IjpbeworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0UHJvamVjdGlvbk1hdHJpeCIsCisgICAgICAgInJldHVybnR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRNYXRyaXg0NF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZk5lYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogImZGYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRQcm9qZWN0aW9uUmF3IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZMZWZ0IiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZSaWdodCIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmVG9wIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZCb3R0b20iICwicGFy
YW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0ZURpc3RvcnRp
b24iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJmVSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJmViIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwRGlzdG9ydGlvbkNvb3JkaW5hdGVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkRpc3RvcnRpb25Db29yZGluYXRlc190ICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
RXllVG9IZWFkVHJhbnNmb3JtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZE1hdHJpeDM0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0VGltZVNpbmNlTGFzdFZzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZlNlY29uZHNTaW5jZUxh
c3RWc3luYyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InB1bEZyYW1lQ291bnRlciIgLCJwYXJhbXR5cGUiOiAidWludDY0X3QgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXREM0Q5QWRhcHRlckluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJp
bnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldERYR0lPdXRwdXRJbmZvIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
bkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2Ru
YW1lIjogIklzRGlzcGxheU9uRGVza3RvcCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIK
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXREaXNwbGF5VmlzaWJpbGl0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
Ym9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYklzVmlz
aWJsZU9uRGVza3RvcCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3Jp
Z2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3ciICwicGFy
YW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYWNrZWREZXZpY2VQ
b3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQi
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlc2V0U2VhdGVkWmVyb1Bv
c2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2VhdGVkWmVy
b1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBl
IjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSYXdaZXJvUG9zZVRv
U3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRNYXRyaXgzNF90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNvcnRlZFRyYWNrZWREZXZpY2VJ
bmRpY2VzT2ZDbGFzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2VkRGV2aWNlQ2xhc3Mi
ICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHVuVHJhY2tlZERldmljZUluZGV4QXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5U
cmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2Vk
RGV2aWNlQWN0aXZpdHlMZXZlbCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVEZXZpY2VB
Y3Rpdml0eUxldmVsIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkRldmljZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiQXBwbHlUcmFuc2Zvcm0iLAorICAgICAgICJyZXR1cm50eXBl
IjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBP
dXRwdXRQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwVHJhbnNmb3JtIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6
OkhtZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNl
SW5kZXhGb3JDb250cm9sbGVyUm9sZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJS
b2xlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERl
dmljZUluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVy
Um9sZSIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZp
Y2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldFRyYWNrZWREZXZpY2VDbGFzcyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc1RyYWNrZWREZXZpY2VD
b25uZWN0ZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCb29s
VHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAs
InBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFj
a2VkUHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEZsb2F0VHJhY2tl
ZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9hdCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJh
bXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFBy
b3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRJbnQzMlRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRVaW50NjRUcmFja2VkRGV2aWNl
UHJvcGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQ2NF90IiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
cm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkUHJvcGVy
dHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE1hdHJpeDM0VHJhY2tlZERldmlj
ZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0
X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVBy
b3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3Ry
aW5nVHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJf
dCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJv
cGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjog
IiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVm
ZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJy
ZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5
c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9sbE5leHRFdmVudCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfdCAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0i
LAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnRXaXRoUG9zZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiZU9yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3Jp
Z2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1
Y3QgdnI6OlZSRXZlbnRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYWNr
ZWREZXZpY2VQb3NlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV2ZW50VHlwZSJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRIaWRkZW5BcmVhTWVzaCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAic3RydWN0IHZyOjpIaWRkZW5BcmVhTWVzaF90IiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXll
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVIaWRk
ZW5BcmVhTWVzaFR5cGUifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlclN0YXRl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENv
bnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlclN0YXRl
V2l0aFBvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJv
bGxlckRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29udHJvbGxlclN0YXRlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5D
b250cm9sbGVyU3RhdGVTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpUcmFja2VkRGV2aWNlUG9zZV90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiVHJpZ2dlckhh
cHRpY1B1bHNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5BeGlzSWQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidXNEdXJhdGlvbk1pY3JvU2VjIiAsInBhcmFtdHlwZSI6ICJ1bnNpZ25lZCBzaG9y
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCdXR0b25JZE5hbWVGcm9tRW51bSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlQnV0dG9uSWQiICwicGFyYW10eXBlIjogInZyOjpFVlJCdXR0
b25JZCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lz
dGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJv
bUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUF4aXNUeXBlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZSQ29udHJvbGxlckF4aXNUeXBlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkNhcHR1
cmVJbnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJl
bGVhc2VJbnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjog
IklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJEcml2ZXJEZWJ1Z1JlcXVlc3QiLAorICAgICAgICJyZXR1
cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXF1ZXN0IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNwb25zZUJ1ZmZl
ciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZXNw
b25zZUJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUkZpcm13YXJlRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lz
dGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1aXRfRXhpdGluZyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1aXRfVXNl
clByb21wdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSRXh0ZW5kZWREaXNwbGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRXaW5kb3dCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuWCIgLCJwYXJhbXR5cGUiOiAi
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJp
bnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10
eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RXll
T3V0cHV0Vmlld3BvcnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZy
OjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblkiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10
eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RFhH
SU91dHB1dEluZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuQWRhcHRlckluZGV4IiAsInBhcmFtdHlw
ZSI6ICJpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJPdXRwdXRJ
bmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
Y29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJlQ2FtZXJhRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3Ii
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRD
YW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhhc0NhbWVyYSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGFzQ2FtZXJh
IiAsInBhcmFtdHlwZSI6ICJib29sICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dENhbWVyYUZyYW1lU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuV2lkdGgi
ICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkhl
aWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBuRnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFJbnRyaW5zaWNzIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpU
cmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUi
ICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicEZvY2FsTGVuZ3RoIiAsInBhcmFtdHlwZSI6ICJ2cjo6SG1kVmVjdG9y
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ2VudGVyIiAsInBhcmFtdHlwZSI6ICJ2
cjo6SG1kVmVjdG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbWVy
YVByb2plY3Rpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJh
RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZp
Y2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFpOZWFyIiAsInBh
cmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsWkZhciIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUHJvamVjdGlvbiIgLCJw
YXJhbXR5cGUiOiAidnI6OkhtZE1hdHJpeDQ0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJhIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZENhbWVyYUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRW
aWRlb1N0cmVhbUZyYW1lQnVmZmVyIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5k
bGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cEZyYW1lQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJuRnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUiOiAidnI6OkNhbWVyYVZp
ZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1l
SGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwVGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAidnI6OlZSVGV4dHVyZUJv
dW5kc190ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10
eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVv
U3RyZWFtVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tl
ZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQz
RDExRGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJwYXJhbXR5cGUiOiAidm9p
ZCAqKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUi
OiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGdsVGV4dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2
cjo6Z2xVSW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJw
YXJhbXR5cGUiOiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNr
ZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbVRleHR1
cmVHTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1l
cmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVs
bFBhdGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImJUZW1wb3JhcnkiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIklzQXBwbGlj
YXRpb25JbnN0YWxsZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0
aW9uQ291bnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuQXBwbGljYXRpb25JbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtl
eUJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAi
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZmZXJMZW4iICwicGFy
YW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxhdW5jaEFw
cGxpY2F0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFRlbXBsYXRlQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hOZXdBcHBLZXkiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBLZXlzIiAsImFycmF5X2NvdW50
IjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpBcHBPdmVycmlkZUtl
eXNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5LZXlzIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
QXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBsaWNhdGlvbkZy
b21NaW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVU
eXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hBcmdzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJZGVudGlmeUFwcGxpY2F0aW9uIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Qcm9jZXNzSWQiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRp
b25Qcm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNh
dGlvbnNFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hh
ciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIg
LCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25Qcm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByb3BlcnR5VmFsdWVCdWZm
ZXIiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4iICwicGFyYW10eXBlIjogInVp
bnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlUHJv
cGVydHkiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0
aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvblBy
b3BlcnR5VWludDY0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlUHJvcGVydHkiICwi
cGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ig
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGlj
YXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJBdXRvTGF1bmNo
IiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFw
cGxpY2F0aW9uQXV0b0xhdW5jaCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RGVm
YXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWlt
ZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFy
YW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVy
TGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hNaW1lVHlwZXNCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGlj
YXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9y
dE1pbWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTWltZVR5cGUiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleXNUaGF0
U3VwcG9ydEJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNh
dGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1l
bnRzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5IYW5kbGUiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcmdzIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBw
bGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTdGFydGluZ0FwcGxpY2F0aW9u
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAs
InBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1
ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0VHJhbnNpdGlvblN0YXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUGVyZm9ybUFwcGxp
Y2F0aW9uUHJlbGF1bmNoQ2hlY2siLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBs
aWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0i
LAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAic3RhdGUiICwicGFyYW10eXBlIjogInZyOjpFVlJB
cHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkxhdW5jaEludGVybmFsUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaEJpbmFyeVBhdGgiICwicGFyYW10eXBlIjogImNvbnN0IGNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3VtZW50cyIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoV29ya2luZ0RpcmVj
dG9yeSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dWludDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FsaWJyYXRpb25TdGF0ZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0UGxheUFyZWFTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVgiICwicGFyYW10eXBlIjog
ImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVoiICwicGFyYW10eXBlIjog
ImZsb2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UGxheUFyZWFSZWN0IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJyZWN0IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbG9hZEluZm8iLAorICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9u
ZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0U2NlbmVDb2xvciIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiY29sb3IiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRCb3VuZHNDb2xvciIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1
dENvbG9yQXJyYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAibk51bU91dHB1dENvbG9ycyIgLCJwYXJhbXR5cGUiOiAiaW50
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2Ui
ICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dENh
bWVyYUNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJBcmVCb3VuZHNWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkZvcmNlQm91bmRzVmlzaWJsZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiYkZvcmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiQ29tbWl0V29ya2luZ0NvcHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUi
ICwicGFyYW10eXBlIjogInZyOjpFQ2hhcGVyb25lQ29uZmlnRmlsZSJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIlJldmVydFdvcmtpbmdDb3B5IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1
cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhU2l6ZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhUmVjdCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRz
Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8i
LAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAicHVu
UXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBl
cm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFNlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFw
ZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1N0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFN0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRy
aXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGxheUFy
ZWFTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJzaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVw
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHND
b3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVw
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFN0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRGcm9tRGlz
ayIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiY29uZmlnRmlsZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDaGFw
ZXJvbmVDb25maWdGaWxlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZVNl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdD
b2xsaXNpb25Cb3VuZHNUYWdzSW5mbyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRhZ3NCdWZmZXIiICwi
YXJyYXlfY291bnQiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9u
ZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFn
c0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6
ICJwdW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwiYXJyYXlfY291bnQiOiAidW5RdWFkc0NvdW50
IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8iLAorICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAicHVuUXVhZHNDb3Vu
dCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVw
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJFeHBvcnRMaXZlVG9CdWZmZXIiLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkJ1ZmZlckxlbmd0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkltcG9ydEZyb21CdWZm
ZXJUb1dvcmtpbmciLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBCdWZmZXIiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5JbXBvcnRGbGFncyIgLCJwYXJh
bXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFRyYWNraW5n
U3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tp
bmdTcGFjZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3Jp
Z2luIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJXYWl0R2V0UG9zZXMiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBSZW5kZXJQb3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5SZW5kZXJQ
b3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9z
ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlclBvc2VBcnJheUNvdW50IiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBHYW1lUG9z
ZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlw
ZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGFzdFBvc2VzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVu
ZGVyUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3Vu
dCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwR2Ft
ZVBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJh
bXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0
b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUlu
ZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAs
InBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwT3V0cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2
aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0cHV0R2FtZVBvc2UiICwi
cGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJTdWJtaXQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJD
b21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBCb3VuZHMiICwicGFyYW10eXBlIjogImNvbnN0
IHN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
Im5TdWJtaXRGbGFncyIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9zdFByZXNlbnRIYW5kb2ZmIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWluZyIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicFRpbWluZyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21w
b3NpdG9yX0ZyYW1lVGltaW5nICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkZyYW1lc0Fn
byIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dEZyYW1lVGltaW5ncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBl
IjogInN0cnVjdCB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAibkZyYW1lcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldEZyYW1lVGltZVJlbWFpbmluZyIsCisgICAgICAgInJldHVybnR5cGUi
OiAiZmxvYXQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3Ii
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEN1bXVsYXRpdmVTdGF0cyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicFN0YXRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfQ3VtdWxh
dGl2ZVN0YXRzICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuU3RhdHNTaXplSW5CeXRlcyIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZhZGVU
b0NvbG9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25kcyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmUmVkIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogImZHcmVlbiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJmQmx1ZSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEN1cnJlbnRGYWRlQ29sb3IiLAorICAgICAgICJyZXR1cm50
eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkZhZGVHcmlkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25k
cyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRmFkZUlu
IiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJy
ZW50R3JpZEFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9hdCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0U2t5Ym94T3ZlcnJpZGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21w
b3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBUZXh0dXJlcyIgLCJhcnJheV9jb3VudCI6ICJ1blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUi
OiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuVGV4dHVyZUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiQ2xlYXJTa3lib3hPdmVycmlkZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckJyaW5nVG9Gcm9udCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckdvVG9CYWNrIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3NpdG9yUXVpdCIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNGdWxsc2NyZWVu
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50
U2NlbmVGb2N1c1Byb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRMYXN0RnJhbWVSZW5kZXJlciIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dWludDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3Ii
LAorICAgICAgICJtZXRob2RuYW1lIjogIkNhblJlbmRlclNjZW5lIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3Np
dG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWlycm9yV2luZG93IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
b21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlTWlycm9yV2luZG93IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc01pcnJvcldpbmRvd1Zp
c2libGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBv
c2l0b3JEdW1wSW1hZ2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24i
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImJPdmVycmlkZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VSZWNvbm5lY3RQcm9jZXNzIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21w
b3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTdXNwZW5kUmVuZGVyaW5nIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJiU3VzcGVuZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0TWlycm9yVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicEQzRDExRGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9p
ZCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIg
LCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsZWFz
ZU1pcnJvclRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExU2hhZGVyUmVzb3Vy
Y2VWaWV3IiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldE1pcnJvclRleHR1cmVHTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBv
c2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVs
ZWFzZVNoYXJlZEdMVGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFy
YW10eXBlIjogInZyOjpnbFVJbnRfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImdsU2hhcmVk
VGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3Np
dG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNz
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
VW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJl
ZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25z
UmVxdWlyZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjog
IiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVm
ZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZCIsCisgICAgICAgInJldHVybnR5
cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBQaHlzaWNhbERldmljZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZp
Y2VfVCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6
ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1
ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJGaW5kT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zlcmxh
eUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVPdmVybGF5IiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5RnJpZW5kbHlOYW1lIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkRlc3Ryb3lPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0SGlnaFF1YWxpdHlPdmVybGF5IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGln
aFF1YWxpdHlPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlLZXkiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJh
bXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIg
LCJwYXJhbXR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRPdmVybGF5TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjog
InVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJs
YXlJbWFnZURhdGEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHZCdWZmZXIiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwdW5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1bkhlaWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVt
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZS
T3ZlcmxheUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5UmVuZGVyaW5n
UGlkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuUElEIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMy
X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5RmxhZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3ZlcmxheUZsYWciICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlGbGFncyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJFbmFibGVkIiAs
InBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5Rmxh
ZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJlT3ZlcmxheUZsYWciICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlGbGFncyJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBiRW5hYmxlZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5Q29sb3IiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zlcmxh
eUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZs
b2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5Q29sb3IiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZS
T3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZSZWQiICwicGFyYW10
eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZkdyZWVuIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZCbHVlIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5QWxwaGEi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
T3ZlcmxheUFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXhlbEFzcGVjdCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5
SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmVGV4ZWxBc3BlY3QiICwicGFyYW10
eXBlIjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4ZWxBc3Bl
Y3QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGZUZXhlbEFzcGVjdCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0T3ZlcmxheVNvcnRPcmRlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blNvcnRPcmRlciIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlTb3J0T3JkZXIiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVu
U29ydE9yZGVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJTZXRPdmVybGF5V2lkdGhJbk1ldGVycyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmV2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUi
OiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlXaWR0aEluTWV0ZXJz
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBmV2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmTWluRGlz
dGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZNaW5EaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGZNYXhEaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2Ui
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZVRleHR1cmVDb2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRleHR1cmVD
b2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zlcmxh
eUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlUZXh0dXJlQm91bmRz
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4
dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHlwZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRyYW5z
Zm9ybVR5cGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tp
bmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9y
bSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRyYWNraW5n
T3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9y
bSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5U
cmFja2VkRGV2aWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9y
bSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRp
dmUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicHVuVHJhY2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRvT3Zlcmxh
eVRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29t
cG9uZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5Db21wb25lbnROYW1lU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlNob3dPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU92ZXJsYXkiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc092ZXJsYXlWaXNp
YmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhbnNmb3Jt
Rm9yT3ZlcmxheUNvb3JkaW5hdGVzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zl
cmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY29vcmRp
bmF0ZXNJbk92ZXJsYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0
T3ZlcmxheUV2ZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBF
dmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlSW5wdXRNZXRob2QiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJTZXRPdmVybGF5SW5wdXRNZXRob2QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0TWV0aG9kIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92
ZXJsYXlNb3VzZVNjYWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInB2ZWNNb3VzZVNjYWxlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5TW91c2VT
Y2FsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRW
ZWN0b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0ZU92ZXJsYXlJbnRlcnNl
Y3Rpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFBhcmFtcyIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJh
bXNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFJlc3VsdHMiICwicGFyYW10eXBlIjog
InN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlckRldmlj
ZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIklzSG92ZXJUYXJnZXRPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90IgorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRHYW1lcGFk
Rm9jdXNPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE5ld0ZvY3Vz
T3ZlcmxheSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5TmVpZ2hib3IiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogImVEaXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlv
biJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZS
T3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxUbyIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJNb3Zl
R2FtZXBhZEZvY3VzVG9OZWlnaGJvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZURpcmVjdGlvbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxGcm9tIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUZXh0dXJl
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlRleHR1cmVfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJDbGVhck92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJhdyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdkJ1ZmZlciIg
LCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5XaWR0aCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkhlaWdo
dCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRl
cHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0
T3ZlcmxheUZyb21GaWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaEZpbGVQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBOYXRpdmVUZXh0dXJl
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cE5hdGl2ZVRleHR1cmVSZWYiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBXaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBIZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlRm9ybWF0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEFQSVR5cGUiICwicGFyYW10eXBlIjogInZyOjpF
VGV4dHVyZVR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBDb2xvclNwYWNlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBU
ZXh0dXJlQm91bmRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBO
YXRpdmVUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVEYXNoYm9hcmRPdmVy
bGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVy
bGF5RnJpZW5kbHlOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwTWFpbkhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGh1bWJuYWlsSGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiSXNEYXNoYm9hcmRWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zl
cmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vz
c0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5Qcm9jZXNzSWQiICwicGFyYW10eXBlIjog
InVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dEYXNoYm9hcmQiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE92ZXJsYXlUb1Nob3ciICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJpbWFyeURhc2hib2FyZERldmljZSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90IgorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTaG93S2V5Ym9hcmQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1v
ZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFk
VGV4dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlv
biIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dLZXlib2FyZEZvck92ZXJsYXkiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0
TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVMaW5lSW5wdXRNb2RlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVw
YWRUZXh0SW5wdXRMaW5lTW9kZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaERlc2NyaXB0
aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkNoYXJNYXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoRXhpc3RpbmdUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJiVXNlTWluaW1hbE1vZGUiICwicGFyYW10eXBlIjogImJvb2wi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1VXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50
NjRfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0S2V5Ym9hcmRUZXh0IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoVGV4dCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNjaFRleHQiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlS2V5Ym9hcmQiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1
dGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRy
YWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3Ry
dWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJv
YXJkUG9zaXRpb25Gb3JPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogImF2b2lkUmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRSZWN0Ml90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTWFza1By
aW1pdGl2ZXMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bk51bU1hc2tQcmlt
aXRpdmVzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuUHJpbWl0aXZlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE92ZXJsYXlGbGFncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRmxhZ3MiICwicGFyYW10eXBlIjogInVpbnQzMl90
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dNZXNzYWdlT3ZlcmxheSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ2FwdGlvbiIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9u
MFRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaEJ1dHRvbjFUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hCdXR0b24yVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uM1RleHQiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkUmVuZGVy
TW9kZWxfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5k
ZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVy
TW9kZWxfdCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGcmVlUmVuZGVyTW9kZWwi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBSZW5kZXJNb2RlbCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpSZW5kZXJNb2RlbF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFRleHR1
cmVfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQi
ICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2RlbF9UZXh0dXJl
TWFwX3QgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRleHR1cmUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBUZXh0dXJlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1v
ZGVsX1RleHR1cmVNYXBfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0
dXJlRDNEMTFfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2Rl
bEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0
dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBEM0QxMURldmljZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHBEM0QxMVRleHR1cmUyRCIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxz
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInRleHR1cmVJZCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRleHR1cmVJRF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicERzdFRleHR1cmUi
ICwicGFyYW10eXBlIjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGcmVl
VGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10
eXBlIjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2Rl
bE5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlck1vZGVsSW5kZXgiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxO
YW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbE5hbWVMZW4iICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5k
ZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFJlbmRlck1vZGVsQ291bnQiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbXBv
bmVudENvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
Q29tcG9uZW50TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5D
b21wb25lbnRJbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUi
OiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnROYW1lTGVuIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRD
b21wb25lbnRCdXR0b25NYXNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxO
YW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25l
bnRSZW5kZXJNb2RlbE5hbWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxl
biIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0Q29tcG9uZW50U3RhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
Q29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OlZS
Q29udHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBTdGF0ZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9T
dGF0ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29tcG9uZW50U3RhdGUiICwicGFy
YW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbmRlck1vZGVsSGFzQ29tcG9uZW50IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJN
b2RlbFRodW1ibmFpbFVSTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoVGh1bWJuYWlsVVJMIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UaHVtYm5haWxVUkxMZW4iICwicGFyYW10eXBl
IjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5
cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoT3JpZ2luYWxQYXRoIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJh
bXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5PcmlnaW5hbFBhdGhM
ZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSUmVuZGVy
TW9kZWxFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSTm90aWZpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlTm90aWZpY2F0
aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvblR5
cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzdHlsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUk5vdGlmaWNhdGlvblN0eWxlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEltYWdl
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTm90aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjog
InZyOjpWUk5vdGlmaWNhdGlvbklkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJl
bW92ZU5vdGlmaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNh
dGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJu
b3RpZmljYXRpb25JZCIgLCJwYXJhbXR5cGUiOiAidnI6OlZSTm90aWZpY2F0aW9uSWQifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdz
RXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNl
dHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTeW5jIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJi
Rm9yY2UiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGlu
Z3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJTZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
U2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogIm5WYWx1ZSIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdz
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
U2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImZsVmFsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdz
RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFN0cmluZyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9v
bCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFy
YW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXki
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBl
RXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
dHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RyaW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hT
ZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hTZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlw
ZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blZhbHVlTGVuIiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFy
YW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJSZW1vdmVTZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiUmVtb3ZlS2V5SW5TZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0
aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlcXVlc3RTY3JlZW5zaG90IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlw
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIb29rU2NyZWVuc2hvdCIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFN1cHBvcnRlZFR5cGVzIiAsImFy
cmF5X2NvdW50IjogIm51bVR5cGVzIiAsInBhcmFtdHlwZSI6ICJjb25zdCB2cjo6RVZSU2NyZWVu
c2hvdFR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm51bVR5cGVzIiAsInBhcmFtdHlw
ZSI6ICJpbnQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVy
dHlUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFR5cGUiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3Ig
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVu
c2hvdHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVu
YW1lIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAic2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZpbGVu
YW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
cyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEZpbGVuYW1lIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY2NoRmls
ZW5hbWUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFByb2dy
ZXNzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlRh
a2VTdGVyZW9TY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVu
c2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
T3V0U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJTdWJtaXRTY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2Ny
ZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNj
cmVlbnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU291cmNlUHJldmlld0Zp
bGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hTb3VyY2VWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291cmNlcyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFNoYXJlZFJlc291cmNlIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVz
b3VyY2VzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZXNvdXJjZUZ1bGxQYXRoIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNvdXJjZVR5cGVEaXJlY3Rvcnki
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aFBhdGhCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30K
K10KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfY2FwaS5oIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTEwZjk1MWRjNTYzOTNk
Y2FjOWJiODBlODM0MjBiYzRhOTE1M2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApAQCAtMCwwICsxLDE4NjkgQEAKKy8v
PT09PT09PSBDb3B5cmlnaHQgKGMpIFZhbHZlIENvcnBvcmF0aW9uLCBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiA9PT09PT09PT09PT09PT0KKy8vCisvLyBQdXJwb3NlOiBIZWFkZXIgZm9yIGZsYXR0ZWQg
U3RlYW1BUEkuIFVzZSB0aGlzIGZvciBiaW5kaW5nIHRvIG90aGVyIGxhbmd1YWdlcy4KKy8vIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCwgZG8gbm90IGVkaXQgaXQuCisvLworLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisjaWZuZGVmIF9fT1BFTlZSX0FQSV9GTEFUX0hfXworI2RlZmluZSBf
X09QRU5WUl9BUElfRkxBVF9IX18KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBf
X2NsYW5nX18gKQorI3ByYWdtYSBvbmNlCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCisj
ZGVmaW5lIEVYVEVSTl9DIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIEVYVEVSTl9DCisjZW5k
aWYKKworI2RlZmluZSBPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSBfX3N0ZGNhbGwKKworLy8gT1BF
TlZSIEFQSSBleHBvcnQgbWFjcm8KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSAmJiAhZGVmaW5lZCgg
X1gzNjAgKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX0VYUE9SVFMgKQorICAgICAg
ICNkZWZpbmUgU19BUEkgRVhURVJOX0MgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyAgICAgICAj
ZWxpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX05PRExMICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVY
VEVSTl9DCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5lIFNfQVBJIGV4dGVybiAiQyIgX19k
ZWNsc3BlYyggZGxsaW1wb3J0ICkgCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JU
UworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJf
QVBJX0VYUE9SVFMgKQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MgX19hdHRyaWJ1dGVf
XyAoKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5l
IFNfQVBJIEVYVEVSTl9DCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUworI2Vs
c2UgLy8gIVdJTjMyCisgICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9BUElfRVhQT1JUUyApCisg
ICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbHNlCisgICAgICAgI2RlZmlu
ZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9SVFMKKyNl
bmRpZgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZiBkZWZpbmVkKCBfX1dJTjMyICkKK3R5
cGVkZWYgY2hhciBib29sOworI2Vsc2UKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjZW5kaWYKKwor
dHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50
MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKKworCisvLyBPcGVuVlIgQ29uc3RhbnRzCisKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heERyaXZlckRlYnVnUmVzcG9uc2VTaXplID0gMzI3
Njg7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1k
ID0gMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFRyYWNrZWREZXZpY2VDb3Vu
dCA9IDE2Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERldmljZUluZGV4
T3RoZXIgPSA0Mjk0OTY3Mjk0Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tl
ZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQg
bG9uZyBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0gMDsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgaW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBp
bnQga191bkludDMyUHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBr
X3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
Qm9vbFByb3BlcnR5VGFnID0gNDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blN0cmlu
Z1Byb3BlcnR5VGFnID0gNTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZE1hdHJp
eDM0UHJvcGVydHlUYWcgPSAyMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZE1h
dHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkht
ZFZlY3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
SG1kVmVjdG9yNFByb3BlcnR5VGFnID0gMjM7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSA9IDMyNzY4Owor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0g
NTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZCA9
IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxp
ZCA9IDA7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlN5c3RlbV9WZXJzaW9uID0gIklWUlN5c3Rl
bV8wMTUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9
ICJJVlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSVHJhY2tl
ZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRDYW1lcmFfMDAzIjsKK3N0YXRpYyBjb25zdCB1
bnNpZ25lZCBpbnQga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4Oworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciA9ICJ2ci9nYW1lX3RoZWF0ZXIi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJBcHBs
aWNhdGlvbnNfMDA2IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hhcGVyb25lX1ZlcnNpb24g
PSAiSVZSQ2hhcGVyb25lXzAwMyI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUkNoYXBlcm9uZVNl
dHVwX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lU2V0dXBfMDA1IjsKK3N0YXRpYyBjb25zdCBjaGFy
ICogSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBvc2l0b3JfMDIwIjsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heEtleUxlbmd0aCA9IDEyODsKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7Citz
dGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0
aXZlc0NvdW50ID0gMzI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUk92ZXJsYXlfVmVyc2lvbiA9
ICJJVlJPdmVybGF5XzAxNCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJf
Q29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UgPSAiYmFzZSI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCA9ICJ0aXAiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyA9ICJz
dGF0dXMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiA9ICJJ
VlJSZW5kZXJNb2RlbHNfMDA1IjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk5vdGlm
aWNhdGlvblRleHRNYXhTaXplID0gMjU2Oworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJOb3RpZmlj
YXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18wMDIiOworc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuTWF4U2V0dGluZ3NLZXlMZW5ndGggPSAxMjg7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3NfMDAyIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0ZWFtdnIiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJp
bmcgPSAiZm9yY2VkRHJpdmVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9G
b3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1
Z1Byb2Nlc3NQaXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVE
aXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRp
c3BsYXlEZWJ1Z1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0
ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZl
bCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAi
YmFja2dyb3VuZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3Vu
ZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0
X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tncm91bmREb21l
UmFkaXVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3Ry
aW5nID0gImdyaWRDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUGxh
eUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFj
dGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0lu
dDMyID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3Rl
YW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlc19GbG9h
dCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2Vz
dGF0aW9uUG93ZXJNYW5hZ2VtZW50IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQg
PSAicmVuZGVyVGFyZ2V0TXVsdGlwbGllciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXByb2plY3Rp
b24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9u
X0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJvamVj
dGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRU
cmFja2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJy
b3JWaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TaG93TWlycm9yVmll
d19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3Rl
YW1WUl9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5j
aCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfU3RlYW1WUl9TdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21w
b3NpdG9yRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJf
U3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBw
TGF1bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlB
cHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBwID0gImVuYWJs
ZUhvbWVBcHAiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NldEluaXRpYWxE
ZWZhdWx0SG9tZUFwcCA9ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9
ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJyZXRhaWxEZW1vIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhv
dXNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jv
b2wgPSAiZGlzYWJsZWltdSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2Vf
VXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0g
ImRpc2FtYmlndWF0aW9uZGVidWciOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhv
dXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFzZXN0YXRpb24iOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sID0gImRiaGlz
dG9yeSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJf
bnVsbCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmlu
ZyA9ICJzZXJpYWxOdW1iZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX01vZGVs
TnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfTnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5k
ZXJXaWR0aCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0lu
dDMyID0gInJlbmRlckhlaWdodCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2Vj
b25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25z
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0
ID0gImRpc3BsYXlGcmVxdWVuY3kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50
ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNP
blRvcCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVU
b1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50ID0gInNj
cmVlbnNob3RUeXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTm90aWZpY2F0aW9uc19T
ZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ob3Rp
ZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFs
Q29tcGxldGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TY2FsZVgg
PSAiU2NhbGVYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0g
IlNjYWxlWSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRY
ID0gIk9mZnNldExlZnRYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfT2Zm
c2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tl
eWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0WSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tl
eWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9QZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
UGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5P
bmx5T25jZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9y
ZV9Cb29sID0gImFsbG93VGltaW5nU3RvcmUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Q
ZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNv
bGxpc2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19TdHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxp
c2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzQ2Vu
dGVyTWFya2VyT24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
UGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAi
Q29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9y
R2FtbWFSIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMyID0gIkNvbGxp
c2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlz
aW9uQm91bmRzX0NvbG9yR2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFB
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVu
YWJsZUNhbWVyYSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1l
cmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kc19C
b29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNh
bWVyYUZvclJvb21WaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVy
YUJvdW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0Jv
dW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNh
bWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJh
X0JvdW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tE
ZXZpY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PblJlY29yZERldmljZV9T
dHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRp
b19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNl
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3Ry
aW5nID0gIm9mZlBsYXliYWNrRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVk
aW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2ZUhETUlHYWluIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZP
bkV4aXQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVuc1Rp
bWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCA9ICJ0dXJuT2Zm
Q29udHJvbGxlcnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfUmV0
dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9u
UHJlc3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURh
c2hib2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2Rl
X0Jvb2wgPSAiYXJjYWRlTW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX21vZGVsc2tp
bl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ecml2
ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSU2NyZWVu
c2hvdHNfVmVyc2lvbiA9ICJJVlJTY3JlZW5zaG90c18wMDEiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAxIjsKKworLy8gT3BlblZS
IEVudW1zCisKK3R5cGVkZWYgZW51bSBFVlJFeWUKK3sKKyAgICAgICBFVlJFeWVfRXllX0xlZnQg
PSAwLAorICAgICAgIEVWUkV5ZV9FeWVfUmlnaHQgPSAxLAorfSBFVlJFeWU7CisKK3R5cGVkZWYg
ZW51bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfRGly
ZWN0WCA9IDAsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX09wZW5HTCA9IDEsCisg
ICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX1Z1bGthbiA9IDIsCisgICAgICAgRVRleHR1
cmVUeXBlX1RleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsCisgICAgICAgRVRleHR1cmVUeXBlX1Rl
eHR1cmVUeXBlX0RpcmVjdFgxMiA9IDQsCit9IEVUZXh0dXJlVHlwZTsKKwordHlwZWRlZiBlbnVt
IEVDb2xvclNwYWNlCit7CisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9BdXRvID0gMCwK
KyAgICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0dhbW1hID0gMSwKKyAgICAgICBFQ29sb3JT
cGFjZV9Db2xvclNwYWNlX0xpbmVhciA9IDIsCit9IEVDb2xvclNwYWNlOworCit0eXBlZGVmIGVu
dW0gRVRyYWNraW5nUmVzdWx0Cit7CisgICAgICAgRVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVz
dWx0X1VuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jl
c3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAgIEVUcmFja2luZ1Jlc3Vs
dF9UcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlID0gMTAxLAorICAgICAgIEVU
cmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LID0gMjAwLAorICAgICAgIEVU
cmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgPSAyMDEsCit9
IEVUcmFja2luZ1Jlc3VsdDsKKwordHlwZWRlZiBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sK
KyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0g
MCwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAx
LAorICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xs
ZXIgPSAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0dl
bmVyaWNUcmFja2VyID0gMywKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZp
Y2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9IEVUcmFja2VkRGV2aWNlQ2xhc3M7CisK
K3R5cGVkZWYgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgRVRyYWNrZWRD
b250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxpZCA9IDAsCisgICAgICAg
RVRyYWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQgPSAx
LAorICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX1Jp
Z2h0SGFuZCA9IDIsCit9IEVUcmFja2VkQ29udHJvbGxlclJvbGU7CisKK3R5cGVkZWYgZW51bSBF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
X1RyYWNraW5nVW5pdmVyc2VTZWF0ZWQgPSAwLAorICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3Jp
Z2luX1RyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAgICAgRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW5fVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCit9IEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luOworCit0eXBlZGVmIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eQoreworICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9JbnZhbGlkID0gMCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmlu
ZyA9IDEwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX01vZGVsTnVtYmVy
X1N0cmluZyA9IDEwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1Nlcmlh
bE51bWJlcl9TdHJpbmcgPSAxMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nID0gMTAwMywKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3Ry
aW5nID0gMTAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFyZHdhcmVS
ZXZpc2lvbl9TdHJpbmcgPSAxMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAxMDA4LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9TdHJpbmcg
PSAxMDA5LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VJc1dpcmVs
ZXNzX0Jvb2wgPSAxMDEwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZp
Y2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCA9IDEwMTIsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQgPSAx
MDEzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9VcGRhdGVB
dmFpbGFibGVfQm9vbCA9IDEwMTQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sID0gMTAxNSwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyA9IDEwMTYsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0
ID0gMTAxNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCA9IDEwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZQ
R0FWZXJzaW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCA9IDEwMjEsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0RvbmdsZVZlcnNpb25fVWludDY0ID0gMTAyMiwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sID0gMTAyMywK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lz
dGVtV2l0aEhtZF9Cb29sID0gMTAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCA9IDEwMjUsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0gMTAy
NiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlQ2FuUG93ZXJPZmZf
Qm9vbCA9IDEwMjcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJl
X1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyA9IDEwMjgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfSGFzQ2FtZXJhX0Jvb2wgPSAxMDMwLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyA9IDEwMzEsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRf
Qm9vbCA9IDEwMzIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZpdmVTeXN0
ZW1CdXR0b25GaXhSZXF1aXJlZF9Cb29sID0gMTAzMywKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sID0gMjAwMCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9u
c19GbG9hdCA9IDIwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3Bs
YXlGcmVxdWVuY3lfRmxvYXQgPSAyMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0ID0gMjAwNCwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfUHJldmlvdXNVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDUs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNp
b25fVWludDY0ID0gMjAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSXNP
bkRlc2t0b3BfQm9vbCA9IDIwMDcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlNQ1R5cGVfSW50MzIgPSAyMDA4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCA9IDIwMTAsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiA9IDIwMTEsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcg
PSAyMDEyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFn
ZVJpZ2h0X1N0cmluZyA9IDIwMTMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAxNSwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ID0gMjAx
NiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDVHlwZV9JbnQz
MiA9IDIwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ09m
ZnNldF9GbG9hdCA9IDIwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlHQ1NjYWxlX0Zsb2F0ID0gMjAxOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgPSAyMDIwLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgPSAyMDIyLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQg
PSAyMDIzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyUmln
aHRVX0Zsb2F0ID0gMjAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVu
c0NlbnRlclJpZ2h0Vl9GbG9hdCA9IDIwMjUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9IDIwMjYsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAy
MDI3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFGaXJtd2FyZURl
c2NyaXB0aW9uX1N0cmluZyA9IDIwMjgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0Rpc3BsYXlGUEdBVmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ID0gMjAzMCwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lv
bl9VaW50NjQgPSAyMDMxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BdWRp
b0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDMyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZp
ZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNSwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9
IDIwMzYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlBbGxvd05p
Z2h0TW9kZV9Cb29sID0gMjAzNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
RGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIwMzgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQz
MiA9IDIwNDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0lt
YWdlRGF0YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0MiwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgPSAzMDAwLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCA9IDMwMDEs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMwVHlwZV9JbnQzMiA9IDMw
MDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMxVHlwZV9JbnQzMiA9
IDMwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMyVHlwZV9JbnQz
MiA9IDMwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMzVHlwZV9J
bnQzMiA9IDMwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXM0VHlw
ZV9JbnQzMiA9IDMwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NvbnRy
b2xsZXJSb2xlSGludF9JbnQzMiA9IDMwMDcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCA9IDQw
MDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3VG9wRGVn
cmVlc19GbG9hdCA9IDQwMDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zp
ZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCA9IDQwMDMsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nUmFuZ2VNaW5pbXVtTWV0ZXJzX0Zsb2F0ID0gNDAwNCwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdSYW5nZU1heGltdW1N
ZXRlcnNfRmxvYXQgPSA0MDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9N
b2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfSWNvblBhdGhOYW1lX1N0cmluZyA9IDUwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nID0gNTAwMSwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19T
dHJpbmcgPSA1MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZElj
b25QYXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nID0gNTAwMywKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyA9IDUw
MDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VSZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgPSA1MDA2LAorICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU3RhbmRieV9T
dHJpbmcgPSA1MDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZElj
b25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ID0gNTEwMCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5
X0VuZCA9IDUxNTAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1VzZXJDb25m
aWdQYXRoX1N0cmluZyA9IDYwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0luc3RhbGxQYXRoX1N0cmluZyA9IDYwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDEw
OTk5LAorfSBFVHJhY2tlZERldmljZVByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yCit7CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9w
X1N1Y2Nlc3MgPSAwLAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9X
cm9uZ0RhdGFUeXBlID0gMSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFBy
b3BfV3JvbmdEZXZpY2VDbGFzcyA9IDIsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1Ry
YWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsID0gMywKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJy
b3JfVHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ID0gNCwKKyAgICAgICBFVHJhY2tlZFByb3Bl
cnR5RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZERldmljZSA9IDUsCisgICAgICAgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciA9IDYsCisgICAg
ICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1ZhbHVlTm90UHJvdmlkZWRCeURl
dmljZSA9IDcsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1N0cmlu
Z0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Jf
VHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5
RXJyb3JfVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCA9IDEwLAorICAgICAgIEVUcmFja2Vk
UHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uID0gMTEsCit9IEVUcmFj
a2VkUHJvcGVydHlFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlN1Ym1pdEZsYWdzCit7CisgICAg
ICAgRVZSU3VibWl0RmxhZ3NfU3VibWl0X0RlZmF1bHQgPSAwLAorICAgICAgIEVWUlN1Ym1pdEZs
YWdzX1N1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkID0gMSwKKyAgICAgICBFVlJT
dWJtaXRGbGFnc19TdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAyLAorICAgICAgIEVWUlN1Ym1pdEZs
YWdzX1N1Ym1pdF9SZXNlcnZlZCA9IDQsCit9IEVWUlN1Ym1pdEZsYWdzOworCit0eXBlZGVmIGVu
dW0gRVZSU3RhdGUKK3sKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1VuZGVmaW5lZCA9IC0xLAor
ICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfT2ZmID0gMCwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRl
X1NlYXJjaGluZyA9IDEsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQg
PSAyLAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfUmVhZHkgPSAzLAorICAgICAgIEVWUlN0YXRl
X1ZSU3RhdGVfUmVhZHlfQWxlcnQgPSA0LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfTm90UmVh
ZHkgPSA1LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfU3RhbmRieSA9IDYsCisgICAgICAgRVZS
U3RhdGVfVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3LAorfSBFVlJTdGF0ZTsKKwordHlwZWRl
ZiBlbnVtIEVWUkV2ZW50VHlwZQoreworICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vbmUg
PSAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQg
PSAxMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZh
dGVkID0gMTAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRh
dGVkID0gMTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVc2Vy
SW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Ry
YWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCA9IDEwNCwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9JcGRDaGFuZ2VkID0gMTA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X0VudGVyU3RhbmRieU1vZGUgPSAxMDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTGVh
dmVTdGFuZGJ5TW9kZSA9IDEwNywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2Vk
RGV2aWNlUm9sZUNoYW5nZWQgPSAxMDgsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfV2F0
Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
TGVuc0Rpc3RvcnRpb25DaGFuZ2VkID0gMTEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1Byb3BlcnR5Q2hhbmdlZCA9IDExMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0
b25QcmVzcyA9IDIwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25VbnByZXNz
ID0gMjAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblRvdWNoID0gMjAyLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfTW91c2VNb3ZlID0gMzAwLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X01vdXNlQnV0dG9uRG93biA9IDMwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Zv
Y3VzRW50ZXIgPSAzMDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRm9jdXNMZWF2ZSA9
IDMwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JvbGwgPSAzMDUsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfVG91Y2hQYWRNb3ZlID0gMzA2LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgPSAzMDcsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkID0gNDAwLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCA9IDQwMSwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9TY2VuZUZvY3VzTG9zdCA9IDQwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9TY2VuZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nj
ZW5lQXBwbGljYXRpb25DaGFuZ2VkID0gNDA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1NjZW5lRm9jdXNDaGFuZ2VkID0gNDA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0lu
cHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjZW5l
QXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgPSA0MTAsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9IDQxMSwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9PdmVybGF5U2hvd24gPSA1MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
T3ZlcmxheUhpZGRlbiA9IDUwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmRBY3RpdmF0ZWQgPSA1MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJk
RGVhY3RpdmF0ZWQgPSA1MDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJk
VGh1bWJTZWxlY3RlZCA9IDUwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9h
cmRSZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVzZXREYXNo
Ym9hcmQgPSA1MDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVuZGVyVG9hc3QgPSA1
MDcsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2hvd0tleWJvYXJkID0gNTA5LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0hpZGVLZXlib2FyZCA9IDUxMCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ID0gNTEyLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1MTQsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCA9IDUxNSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VHJpZ2dlcmVkID0gNTE2LAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdlRmFpbGVkID0gNTE3LAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkID0gNTE4LAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90ID0gNTIwLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkID0gNTIyLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCA9IDUyMywKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCA9
IDUyNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gPSA2
MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiA9IDYw
MSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFj
dGlvbiA9IDYwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fRGVz
dHJveWVkID0gNjAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXQgPSA3MDAsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJvY2Vzc1F1aXQgPSA3MDEsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21wdCA9IDcwMiwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lRGF0YUhhc0NoYW5nZWQgPSA4MDAsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2VkID0gODAxLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCA9IDgw
MiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVTZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVz
ZXQgPSA4MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVD
aGFuZ2VkID0gODIwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0JhY2tncm91bmRTZXR0
aW5nSGFzQ2hhbmdlZCA9IDg1MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DYW1lcmFT
ZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Jl
cHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTMsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU0LAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TdGF0dXNVcGRhdGUgPSA5MDAsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCA9IDExMDAsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCA9IDExMDEsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ID0gMTIwMSwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9LZXlib2FyZERvbmUgPSAxMjAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgPSAxMzAxLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0
ZWQgPSAxMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVw
ZGF0ZWQgPSAxMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uTWlt
ZVR5cGVMb2FkID0gMTMwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlv
blRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gPSAxNDAx
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRz
U2hvd24gPSAxNDEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfQ2hh
cGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9U
cmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtID0gMTUwMSwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAy
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9T
dHJlYW0gPSAxNTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFf
RWRpdGluZ1N1cmZhY2UgPSAxNTUwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1BlcmZv
cm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgPSAxNjAxLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9GaWRlbGl0eUxldmVsID0gMTYwMiwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAxNjUwLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0
ID0gMTAwMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfRW5kID0gMTk5OTksCit9IEVWUkV2ZW50VHlwZTsKKwordHlwZWRlZiBlbnVtIEVEZXZp
Y2VBY3Rpdml0eUxldmVsCit7CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxf
a19FRGV2aWNlQWN0aXZpdHlMZXZlbF9JZGxlID0gMCwKKyAgICAgICBFRGV2aWNlQWN0aXZpdHlM
ZXZlbF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsCisgICAgICAg
RURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rp
b25fVGltZW91dCA9IDIsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywKK30gRURldmljZUFjdGl2aXR5TGV2ZWw7CisKK3R5cGVk
ZWYgZW51bSBFVlJCdXR0b25JZAoreworICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TeXN0
ZW0gPSAwLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgPSAx
LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9HcmlwID0gMiwKKyAgICAgICBFVlJCdXR0
b25JZF9rX0VCdXR0b25fRFBhZF9MZWZ0ID0gMywKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0
b25fRFBhZF9VcCA9IDQsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfUmlnaHQg
PSA1LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0Rvd24gPSA2LAorICAgICAg
IEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BID0gNywKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0
b25fUHJveGltaXR5U2Vuc29yID0gMzEsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4
aXMwID0gMzIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMxID0gMzMsCisgICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMyID0gMzQsCisgICAgICAgRVZSQnV0dG9uSWRf
a19FQnV0dG9uX0F4aXMzID0gMzUsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXM0
ID0gMzYsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgPSAz
MiwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9UcmlnZ2VyID0gMzMsCisg
ICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0Rhc2hib2FyZF9CYWNrID0gMiwKKyAgICAgICBF
VlJCdXR0b25JZF9rX0VCdXR0b25fTWF4ID0gNjQsCit9IEVWUkJ1dHRvbklkOworCit0eXBlZGVm
IGVudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0
dG9uX0xlZnQgPSAxLAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25fUmlnaHQg
PSAyLAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25fTWlkZGxlID0gNCwKK30g
RVZSTW91c2VCdXR0b247CisKK3R5cGVkZWYgZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7Cisg
ICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAs
CisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9JbnZlcnNlID0g
MSwKKyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29w
ID0gMiwKKyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX01heCA9
IDMsCit9IEVIaWRkZW5BcmVhTWVzaFR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJDb250cm9sbGVy
QXhpc1R5cGUKK3sKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxlckF4
aXNfTm9uZSA9IDAsCisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRyb2xsZXJB
eGlzX1RyYWNrUGFkID0gMSwKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJv
bGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VD
b250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywKK30gRVZSQ29udHJvbGxlckF4aXNUeXBlOworCit0
eXBlZGVmIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQoreworICAgICAgIEVWUkNv
bnRyb2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0g
MCwKKyAgICAgICBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0NvbnRyb2xsZXJFdmVudE91
dHB1dF9WUkV2ZW50cyA9IDEsCit9IEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGU7CisKK3R5
cGVkZWYgZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAgICBFQ29sbGlzaW9uQm91
bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgRUNv
bGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0g
MSwKKyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9T
UVVBUkVTID0gMiwKKyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5E
U19TVFlMRV9BRFZBTkNFRCA9IDMsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJ
U0lPTl9CT1VORFNfU1RZTEVfTk9ORSA9IDQsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxl
X0NPTExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQgPSA1LAorfSBFQ29sbGlzaW9uQm91bmRzU3R5
bGU7CisKK3R5cGVkZWYgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBFVlJPdmVybGF5
RXJyb3JfVlJPdmVybGF5RXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZS
T3ZlcmxheUVycm9yX1Vua25vd25PdmVybGF5ID0gMTAsCisgICAgICAgRVZST3ZlcmxheUVycm9y
X1ZST3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUgPSAxMSwKKyAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfUGVybWlzc2lvbkRlbmllZCA9IDEyLAorICAgICAgIEVWUk92ZXJs
YXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCA9IDEzLAorICAgICAg
IEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQs
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleVRvb0xvbmcgPSAxNSwK
KyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTmFtZVRvb0xvbmcgPSAxNiwK
KyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgPSAxNywKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlID0g
MTgsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2Vk
RGV2aWNlID0gMTksCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFs
aWRQYXJhbWV0ZXIgPSAyMCwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3Jf
VGh1bWJuYWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZS
T3ZlcmxheUVycm9yX0FycmF5VG9vU21hbGwgPSAyMiwKKyAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDI0LAorICAgICAgIEVWUk92ZXJsYXlF
cnJvcl9WUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlID0gMjUsCisgICAgICAgRVZST3Zl
cmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlID0gMjYsCisgICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgPSAyNywKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVzID0g
MjksCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRp
dmUgPSAzMCwKK30gRVZST3ZlcmxheUVycm9yOworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRp
b25UeXBlCit7CisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fT3RoZXIg
PSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1NjZW5lID0gMSwK
KyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9PdmVybGF5ID0gMiwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LAorICAgICAg
IEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAorICAg
ICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX01heCA9IDcsCit9IEVWUkFwcGxp
Y2F0aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAgICAgICBF
VlJGaXJtd2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJGaXJt
d2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0gMSwKKyAgICAgICBFVlJGaXJtd2Fy
ZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK30gRVZSRmlybXdhcmVFcnJvcjsKKwor
dHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgRVZSTm90aWZpY2F0
aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgRVZSTm90aWZpY2F0
aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAs
CisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9Ob3RpZmlj
YXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3Rp
ZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBFVlJOb3Rp
ZmljYXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJl
YWR5RXhpc3RzID0gMTAzLAorfSBFVlJOb3RpZmljYXRpb25FcnJvcjsKKwordHlwZWRlZiBlbnVt
IEVWUkluaXRFcnJvcgoreworICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ob25lID0g
MCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAxMDAs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVw
dCA9IDEwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERM
TE5vdEZvdW5kID0gMTAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0Zp
bGVOb3RGb3VuZCA9IDEwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9G
YWN0b3J5Tm90Rm91bmQgPSAxMDQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfSW50ZXJmYWNlTm90Rm91bmQgPSAxMDUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0luaXRfSW52YWxpZEludGVyZmFjZSA9IDEwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCA9IDEwOCwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCA9IDEwOSwKKyAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCA9IDEx
MCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggPSAx
MTEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoID0gMTEy
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdy
aXRhYmxlID0gMTEzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0FwcElu
Zm9Jbml0RmFpbGVkID0gMTE0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X1JldHJ5ID0gMTE1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luaXRD
YW5jZWxlZEJ5VXNlciA9IDExNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9Bbm90aGVyQXBwTGF1bmNoaW5nID0gMTE3LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCA9IDExOCwKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwID0gMTIxLAorICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3Np
dG9yID0gMTIyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdEF2YWls
YWJsZVRvVXRpbGl0eUFwcHMgPSAxMjMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0luaXRfSW50ZXJuYWwgPSAxMjQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfSG1kRHJpdmVySWRJc05vbmUgPSAxMjUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCA9IDEyNiwKKyAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCA9IDEyNywKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkID0gMTI4
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dO
b3RTdXBwb3J0ZWQgPSAxMjksCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
SW52YWxpZEFwcGxpY2F0aW9uVHlwZSA9IDEzMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEz
MiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZv
dW5kID0gMTMzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkU3RhcnR1cEZhaWxlZCA9IDEzNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
RHJpdmVyX0ZhaWxlZCA9IDIwMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX1Vua25vd24gPSAyMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZl
cl9IbWRVbmtub3duID0gMjAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2
ZXJfTm90TG9hZGVkID0gMjAzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2
ZXJfUnVudGltZU91dE9mRGF0ZSA9IDIwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfRHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCA9IDIwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCA9IDIwNywKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtu
b3duID0gMjA5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJp
dmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
RHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgPSAzMDAsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkID0gMzAxLAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQgPSAzMDMsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgPSAzMDQs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19GYWlsZWQgPSAzMDUsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCA9
IDMwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZh
bGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9JUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgPSA0MDAsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVk
ID0gNDAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13
YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkID0gNDA0LAorICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5l
Y3RUb09jdWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSA9IDExMDEsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
UmVxdWVzdENvbmZpZ1N0YXJ0ID0gMTEwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdU
b29CaWcgPSAxMTA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCA9IDExMDUsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgPSAx
MTA2LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRh
U3RhcnQgPSAxMTA4LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dl
dFVzZXJEYXRhTmV4dCA9IDExMTAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlID0gMTExMSwKKyAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRh
dGFFcnJvciA9IDExMTIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrID0gMTExMywKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9
IDIwMDAsCit9IEVWUkluaXRFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RUeXBl
Cit7CisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwK
KyAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLAorICAg
ICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAg
ICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAg
IEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1hID0gNCwKKyAg
ICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0g
NSwKK30gRVZSU2NyZWVuc2hvdFR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJTY3JlZW5zaG90UHJv
cGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNf
VlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAsCisgICAgICAgRVZSU2Ny
ZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZS
ID0gMSwKK30gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzOworCit0eXBlZGVmIGVudW0g
RVZSVHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZS
VHJhY2tlZENhbWVyYUVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgPSAxMDAsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgPSAx
MDEsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0lu
dmFsaWRGcmFtZUhlYWRlclZlcnNpb24gPSAxMDIsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyA9IDEwMywKKyAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSVBDRmFpbHVyZSA9IDEwNCwK
KyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3Vw
cG9ydGVkRm9yVGhpc0RldmljZSA9IDEwNSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSA9IDEwNiwKKyAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdG
YWlsdXJlID0gMTA3LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1l
cmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgPSAxMDgsCisgICAgICAgRVZSVHJhY2tlZENhbWVy
YUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCA9IDEwOSwKKyAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNo
YXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZS
VHJhY2tlZENhbWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgPSAxMTEsCisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVG
YWlsdXJlID0gMTEyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1l
cmFFcnJvcl9Ob0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgPSAxMTQsCisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1
ZmZlclNpemUgPSAxMTUsCit9IEVWUlRyYWNrZWRDYW1lcmFFcnJvcjsKKwordHlwZWRlZiBlbnVt
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJh
bWVUeXBlX1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQgPSAwLAorICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9y
dGVkID0gMSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQgPSAyLAorICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGVfTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9IEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSA9IDAsCisgICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4
aXN0cyA9IDEwMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJv
cl9Ob01hbmlmZXN0ID0gMTAxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNh
dGlvbkVycm9yX05vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
cl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAorICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBsaWNhdGlvbiA9IDEwNCwK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JUENGYWlsZWQg
PSAxMDUsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBw
bGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
X1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZlc3QgPSAxMDcsCisgICAgICAgRVZSQXBw
bGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4
LAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZh
aWxlZCA9IDEwOSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJv
cl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDExMCwKKyAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNzID0gMTExLAorICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVp
dHRpbmcgPSAxMTIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJy
b3JfVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9W
UkFwcGxpY2F0aW9uRXJyb3JfSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJUb29TbWFsbCA9IDIwMCwKKyAgICAgICBF
VlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIw
MSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3du
UHJvcGVydHkgPSAyMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9u
RXJyb3JfSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30gRVZSQXBwbGljYXRpb25FcnJvcjsKKwor
dHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKK3sKKyAgICAgICBFVlJBcHBsaWNh
dGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmluZyA9IDAsCisgICAg
ICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlw
ZV9TdHJpbmcgPSAxMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAorICAgICAgIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFyeVBhdGhfU3RyaW5nID0g
MTMsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlf
QXJndW1lbnRzX1N0cmluZyA9IDE0LAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJB
cHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlvbl9TdHJpbmcgPSA1MCwK
KyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OZXdz
VVJMX1N0cmluZyA9IDUxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNh
dGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmcgPSA1MiwKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Tb3VyY2VfU3RyaW5nID0gNTMsCisgICAg
ICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9h
cmRPdmVybGF5X0Jvb2wgPSA2MCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAgICAgICBFVlJBcHBsaWNh
dGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0luc3RhbmNlZF9Cb29sID0gNjIs
CisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJ
bnRlcm5hbF9Cb29sID0gNjMsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9IEVWUkFwcGxpY2F0
aW9uUHJvcGVydHk7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0
ZQoreworICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25U
cmFuc2l0aW9uX05vbmUgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRl
X1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgRVZS
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGlu
Z0ZvckV4dGVybmFsTGF1bmNoID0gMTEsCisgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9u
U3RhdGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwKK30gRVZS
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGU7CisKK3R5cGVkZWYgZW51bSBDaGFwZXJvbmVDYWxp
YnJhdGlvblN0YXRlCit7CisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9PSyA9IDEs
CisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nID0gMTAwLAorICAgICAg
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvbk1heUhhdmVNb3Zl
ZCA9IDEwMSwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0
YXRpb25SZW1vdmVkID0gMTAyLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2Fy
bmluZ19TZWF0ZWRCb3VuZHNJbnZhbGlkID0gMTAzLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0
aW9uU3RhdGVfRXJyb3IgPSAyMDAsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9F
cnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCisgICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0gMjAyLAorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLAorICAg
ICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxp
ZCA9IDIwNCwKK30gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZTsKKwordHlwZWRlZiBlbnVtIEVD
aGFwZXJvbmVDb25maWdGaWxlCit7CisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfTGl2ZSA9
IDEsCisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfVGVtcCA9IDIsCit9IEVDaGFwZXJvbmVD
b25maWdGaWxlOworCit0eXBlZGVmIGVudW0gRUNoYXBlcm9uZUltcG9ydEZsYWdzCit7CisgICAg
ICAgRUNoYXBlcm9uZUltcG9ydEZsYWdzX0VDaGFwZXJvbmVJbXBvcnRfQm91bmRzT25seSA9IDEs
Cit9IEVDaGFwZXJvbmVJbXBvcnRGbGFnczsKKwordHlwZWRlZiBlbnVtIEVWUkNvbXBvc2l0b3JF
cnJvcgoreworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Ob25l
ID0gMCwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVz
dEZhaWxlZCA9IDEsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9y
X0luY29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzID0gMTAxLAorICAgICAgIEVWUkNvbXBvc2l0
b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDEwMiwKKyAgICAgICBF
VlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9u
ID0gMTAzLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9UZXh0
dXJlSXNPbldyb25nRGV2aWNlID0gMTA0LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNv
bXBvc2l0b3JFcnJvcl9UZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAg
IEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1
cHBvcnRlZCA9IDEwNiwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJy
b3JfSW5kZXhPdXRPZlJhbmdlID0gMTA3LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNv
bXBvc2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVkID0gMTA4LAorfSBFVlJDb21wb3NpdG9yRXJy
b3I7CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlJbnB1dE1ldGhvZAoreworICAgICAgIFZST3Zl
cmxheUlucHV0TWV0aG9kX05vbmUgPSAwLAorICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX01v
dXNlID0gMSwKK30gVlJPdmVybGF5SW5wdXRNZXRob2Q7CisKK3R5cGVkZWYgZW51bSBWUk92ZXJs
YXlUcmFuc2Zvcm1UeXBlCit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJs
YXlUcmFuc2Zvcm1fQWJzb2x1dGUgPSAwLAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVf
VlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSA9IDEsCisgICAgICAgVlJP
dmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIs
CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tl
ZENvbXBvbmVudCA9IDMsCit9IFZST3ZlcmxheVRyYW5zZm9ybVR5cGU7CisKK3R5cGVkZWYgZW51
bSBWUk92ZXJsYXlGbGFncworeworICAgICAgIFZST3ZlcmxheUZsYWdzX05vbmUgPSAwLAorICAg
ICAgIFZST3ZlcmxheUZsYWdzX0N1cnZlZCA9IDEsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfUkdT
UzRYID0gMiwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiA9IDMsCisgICAg
ICAgVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAorICAgICAgIFZST3Zl
cmxheUZsYWdzX1Nob3dHYW1lcGFkRm9jdXMgPSA1LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Nl
bmRWUlNjcm9sbEV2ZW50cyA9IDYsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hw
YWRFdmVudHMgPSA3LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdo
ZWVsID0gOCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRvSW50ZXJu
YWxQcm9jZXNzID0gOSwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVs
ID0gMTAsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkID0gMTEsCisg
ICAgICAgVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwKKyAgICAgICBWUk92ZXJsYXlGbGFn
c19TdGVyZW9QYW5vcmFtYSA9IDEzLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NvcnRXaXRoTm9u
U2NlbmVPdmVybGF5cyA9IDE0LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hi
b2FyZCA9IDE1LAorfSBWUk92ZXJsYXlGbGFnczsKKwordHlwZWRlZiBlbnVtIFZSTWVzc2FnZU92
ZXJsYXlSZXNwb25zZQoreworICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25Q
cmVzc18wID0gMCwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3Nf
MSA9IDEsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIgPSAy
LAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zID0gMywKKyAg
ICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5ID0g
NCwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNs
aWVudE92ZXJsYXkgPSA1LAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9BcHBsaWNh
dGlvblF1aXQgPSA2LAorfSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7CisKK3R5cGVkZWYgZW51
bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKK3sKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dE1vZGVf
a19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgIEVHYW1lcGFkVGV4dElu
cHV0TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkID0gMSwKKyAgICAgICBFR2Ft
ZXBhZFRleHRJbnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVTdWJtaXQgPSAyLAorfSBF
R2FtZXBhZFRleHRJbnB1dE1vZGU7CisKK3R5cGVkZWYgZW51bSBFR2FtZXBhZFRleHRJbnB1dExp
bmVNb2RlCit7CisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZV9rX0VHYW1lcGFkVGV4
dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dExp
bmVNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAorfSBF
R2FtZXBhZFRleHRJbnB1dExpbmVNb2RlOworCit0eXBlZGVmIGVudW0gRU92ZXJsYXlEaXJlY3Rp
b24KK3sKKyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX1VwID0gMCwK
KyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAg
ICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fTGVmdCA9IDIsCisgICAgICAg
RU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9SaWdodCA9IDMsCisgICAgICAgRU92
ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQsCit9IEVPdmVybGF5RGly
ZWN0aW9uOworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRp
dmVUeXBlCit7CisgICAgICAgRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBl
X092ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSA9IDAsCisgICAgICAg
RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlX092ZXJsYXlJbnRlcnNlY3Rp
b25QcmltaXRpdmVUeXBlX0NpcmNsZSA9IDEsCit9IEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
UHJpbWl0aXZlVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKK3sKKyAg
ICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob25lID0gMCwKKyAg
ICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5nID0gMTAw
LAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdFN1cHBv
cnRlZCA9IDIwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJv
cl9JbnZhbGlkQXJnID0gMzAwLAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9y
X1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyA9IDMwMiwKKyAgICAgICBFVlJSZW5kZXJNb2Rl
bEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAgICAgICBF
VlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMgPSAz
MDQsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlw
bGVUZXh0dXJlcyA9IDMwNSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9k
ZWxFcnJvcl9CdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9y
X1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIEVWUlJl
bmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaFRleENvb3JkcyA9IDMw
OCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlk
VGV4dHVyZSA9IDQwMCwKK30gRVZSUmVuZGVyTW9kZWxFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVW
UkNvbXBvbmVudFByb3BlcnR5Cit7CisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJDb21w
b25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyA9IDEsCisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlf
VlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAyLAorICAgICAgIEVWUkNvbXBvbmVudFBy
b3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkID0gNCwKKyAgICAgICBFVlJDb21w
b25lbnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzUHJlc3NlZCA9IDgsCisgICAgICAg
RVZSQ29tcG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Njcm9sbGVkID0gMTYs
Cit9IEVWUkNvbXBvbmVudFByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9u
VHlwZQoreworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50ID0gMCwKKyAgICAg
ICBFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQgPSAxLAorICAgICAgIEVWUk5vdGlmaWNh
dGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUgPSAyLAorfSBFVlJOb3RpZmlj
YXRpb25UeXBlOworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uU3R5bGUKK3sKKyAgICAg
ICBFVlJOb3RpZmljYXRpb25TdHlsZV9Ob25lID0gMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25T
dHlsZV9BcHBsaWNhdGlvbiA9IDEwMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250
YWN0X0Rpc2FibGVkID0gMjAwLAorICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3Rf
RW5hYmxlZCA9IDIwMSwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2
ZSA9IDIwMiwKK30gRVZSTm90aWZpY2F0aW9uU3R5bGU7CisKK3R5cGVkZWYgZW51bSBFVlJTZXR0
aW5nc0Vycm9yCit7CisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfTm9u
ZSA9IDAsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVk
ID0gMSwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxl
ZCA9IDIsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfUmVhZEZhaWxl
ZCA9IDMsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfSnNvblBhcnNl
RmFpbGVkID0gNCwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9VbnNl
dFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfSBFVlJTZXR0aW5nc0Vycm9yOworCit0eXBlZGVm
IGVudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZS
U2NyZWVuc2hvdEVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNj
cmVlbnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMSwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJy
b3JfVlJTY3JlZW5zaG90RXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBF
VlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQgPSAxMDEsCisgICAg
ICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsID0g
MTAyLAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9TY3JlZW5z
aG90QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9IEVWUlNjcmVlbnNob3RFcnJvcjsKKworCisv
LyBPcGVuVlIgdHlwZWRlZnMKKwordHlwZWRlZiB1aW50MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhf
dDsKK3R5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKK3R5cGVkZWYgdWludDY0X3Qg
VlJPdmVybGF5SGFuZGxlX3Q7CisKK3R5cGVkZWYgdm9pZCAqIGdsU2hhcmVkVGV4dHVyZUhhbmRs
ZV90OwordHlwZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90
OwordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQz
Ml90IFRyYWNrZWREZXZpY2VJbmRleF90OwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKK3R5cGVk
ZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQ2NF90IFRyYWNrZWRD
YW1lcmFIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hvdEhhbmRsZV90OwordHlw
ZWRlZiB1aW50MzJfdCBWUkNvbXBvbmVudFByb3BlcnRpZXM7Cit0eXBlZGVmIGludDMyX3QgVGV4
dHVyZUlEX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7Cit0eXBlZGVmIEVW
UkluaXRFcnJvciBIbWRFcnJvcjsKK3R5cGVkZWYgRVZSRXllIEhtZF9FeWU7Cit0eXBlZGVmIEVD
b2xvclNwYWNlIENvbG9yU3BhY2U7Cit0eXBlZGVmIEVUcmFja2luZ1Jlc3VsdCBIbWRUcmFja2lu
Z1Jlc3VsdDsKK3R5cGVkZWYgRVRyYWNrZWREZXZpY2VDbGFzcyBUcmFja2VkRGV2aWNlQ2xhc3M7
Cit0eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5nVW5pdmVyc2VPcmlnaW47
Cit0eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERldmljZVByb3BlcnR5Owor
dHlwZWRlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgVHJhY2tlZFByb3BlcnR5RXJyb3I7Cit0eXBl
ZGVmIEVWUlN1Ym1pdEZsYWdzIFZSU3VibWl0RmxhZ3NfdDsKK3R5cGVkZWYgRVZSU3RhdGUgVlJT
dGF0ZV90OwordHlwZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29sbGlzaW9uQm91bmRzU3R5
bGVfdDsKK3R5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9yOwordHlwZWRlZiBF
VlJGaXJtd2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKK3R5cGVkZWYgRVZSQ29tcG9zaXRvckVy
cm9yIFZSQ29tcG9zaXRvckVycm9yOwordHlwZWRlZiBFVlJTY3JlZW5zaG90RXJyb3IgVlJTY3Jl
ZW5zaG90c0Vycm9yOworCisvLyBPcGVuVlIgU3RydWN0cworCit0eXBlZGVmIHN0cnVjdCBIbWRN
YXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsgLy9mbG9hdFszXVs0XQorfSBIbWRN
YXRyaXgzNF90OworCit0eXBlZGVmIHN0cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxv
YXQgbVs0XVs0XTsgLy9mbG9hdFs0XVs0XQorfSBIbWRNYXRyaXg0NF90OworCit0eXBlZGVmIHN0
cnVjdCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOyAvL2Zsb2F0WzNdCit9IEht
ZFZlY3RvcjNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgZmxv
YXQgdls0XTsgLy9mbG9hdFs0XQorfSBIbWRWZWN0b3I0X3Q7CisKK3R5cGVkZWYgc3RydWN0IEht
ZFZlY3RvcjNkX3QKK3sKKyAgICAgICBkb3VibGUgdlszXTsgLy9kb3VibGVbM10KK30gSG1kVmVj
dG9yM2RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgZmxvYXQg
dlsyXTsgLy9mbG9hdFsyXQorfSBIbWRWZWN0b3IyX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFF1
YXRlcm5pb25fdAoreworICAgICAgIGRvdWJsZSB3OworICAgICAgIGRvdWJsZSB4OworICAgICAg
IGRvdWJsZSB5OworICAgICAgIGRvdWJsZSB6OworfSBIbWRRdWF0ZXJuaW9uX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IEhtZENvbG9yX3QKK3sKKyAgICAgICBmbG9hdCByOworICAgICAgIGZsb2F0IGc7
CisgICAgICAgZmxvYXQgYjsKKyAgICAgICBmbG9hdCBhOworfSBIbWRDb2xvcl90OworCit0eXBl
ZGVmIHN0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZDb3Ju
ZXJzWzRdOyAvL3N0cnVjdCB2cjo6SG1kVmVjdG9yM190WzRdCit9IEhtZFF1YWRfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdlRv
cExlZnQ7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9IEhtZFJl
Y3QyX3Q7CisKK3R5cGVkZWYgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190Cit7CisgICAg
ICAgZmxvYXQgcmZSZWRbMl07IC8vZmxvYXRbMl0KKyAgICAgICBmbG9hdCByZkdyZWVuWzJdOyAv
L2Zsb2F0WzJdCisgICAgICAgZmxvYXQgcmZCbHVlWzJdOyAvL2Zsb2F0WzJdCit9IERpc3RvcnRp
b25Db29yZGluYXRlc190OworCit0eXBlZGVmIHN0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2
b2lkICogaGFuZGxlOyAvLyB2b2lkICoKKyAgICAgICBlbnVtIEVUZXh0dXJlVHlwZSBlVHlwZTsK
KyAgICAgICBlbnVtIEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOworfSBUZXh0dXJlX3Q7CisKK3R5
cGVkZWYgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kTWF0
cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIHN0cnVjdCBIbWRWZWN0
b3IzX3QgdlZlbG9jaXR5OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxv
Y2l0eTsKKyAgICAgICBlbnVtIEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7CisgICAg
ICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Cit9
IFRyYWNrZWREZXZpY2VQb3NlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190
Cit7CisgICAgICAgZmxvYXQgdU1pbjsKKyAgICAgICBmbG9hdCB2TWluOworICAgICAgIGZsb2F0
IHVNYXg7CisgICAgICAgZmxvYXQgdk1heDsKK30gVlJUZXh0dXJlQm91bmRzX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbklt
YWdlOworICAgICAgIHN0cnVjdCBWa0RldmljZV9UICogbV9wRGV2aWNlOyAvLyBzdHJ1Y3QgVmtE
ZXZpY2VfVCAqCisgICAgICAgc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIG1fcFBoeXNpY2Fs
RGV2aWNlOyAvLyBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICoKKyAgICAgICBzdHJ1Y3QgVmtJ
bnN0YW5jZV9UICogbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0luc3RhbmNlX1QgKgorICAgICAg
IHN0cnVjdCBWa1F1ZXVlX1QgKiBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCisgICAg
ICAgdWludDMyX3QgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25XaWR0
aDsKKyAgICAgICB1aW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbV9uRm9ybWF0
OworICAgICAgIHVpbnQzMl90IG1fblNhbXBsZUNvdW50OworfSBWUlZ1bGthblRleHR1cmVEYXRh
X3Q7CisKK3R5cGVkZWYgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIHN0cnVj
dCBJRDNEMTJSZXNvdXJjZSAqIG1fcFJlc291cmNlOyAvLyBzdHJ1Y3QgSUQzRDEyUmVzb3VyY2Ug
KgorICAgICAgIHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKiBtX3BDb21tYW5kUXVldWU7IC8v
IHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHVpbnQzMl90IG1fbk5vZGVNYXNr
OworfSBEM0QxMlRleHR1cmVEYXRhX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ29udHJv
bGxlcl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOworfSBWUkV2ZW50X0NvbnRyb2xsZXJf
dDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7CisgICAgICAgZmxvYXQgeDsK
KyAgICAgICBmbG9hdCB5OworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsKK30gVlJFdmVudF9Nb3Vz
ZV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxvYXQg
eGRlbHRhOworICAgICAgIGZsb2F0IHlkZWx0YTsKKyAgICAgICB1aW50MzJfdCByZXBlYXRDb3Vu
dDsKK30gVlJFdmVudF9TY3JvbGxfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Ub3VjaFBh
ZE1vdmVfdAoreworICAgICAgIGJvb2wgYkZpbmdlckRvd247CisgICAgICAgZmxvYXQgZmxTZWNv
bmRzRmluZ2VyRG93bjsKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQg
ZlZhbHVlWUZpcnN0OworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgZmxvYXQgZlZh
bHVlWVJhdzsKK30gVlJFdmVudF9Ub3VjaFBhZE1vdmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOworICAg
ICAgIHVpbnQzMl90IG5vdGlmaWNhdGlvbklkOworfSBWUkV2ZW50X05vdGlmaWNhdGlvbl90Owor
Cit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHVpbnQzMl90IHBp
ZDsKKyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAgYm9vbCBiRm9yY2VkOworfSBWUkV2
ZW50X1Byb2Nlc3NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAg
ICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworfSBWUkV2ZW50X092ZXJsYXlfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHVpbnQzMl90IHN0YXR1c1N0
YXRlOworfSBWUkV2ZW50X1N0YXR1c190OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0tleWJv
YXJkX3QKK3sKKyAgICAgICBjaGFyICogY05ld0lucHV0WzhdOyAvL2NoYXJbOF0KKyAgICAgICB1
aW50NjRfdCB1VXNlclZhbHVlOworfSBWUkV2ZW50X0tleWJvYXJkX3Q7CisKK3R5cGVkZWYgc3Ry
dWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9IFZSRXZlbnRf
SXBkX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1
aW50NjRfdCBtX25QcmV2aW91c1VuaXZlcnNlOworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRV
bml2ZXJzZTsKK30gVlJFdmVudF9DaGFwZXJvbmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVu
dF9SZXNlcnZlZF90Cit7CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2
NF90IHJlc2VydmVkMTsKK30gVlJFdmVudF9SZXNlcnZlZF90OworCit0eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMyX3QgbV9uRmlkZWxpdHlM
ZXZlbDsKK30gVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVt
TWVudTsKK30gVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Q7CisKK3R5cGVkZWYgc3RydWN0
IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3QgaGFuZGxlOworICAgICAg
IHVpbnQzMl90IHR5cGU7Cit9IFZSRXZlbnRfU2NyZWVuc2hvdF90OworCit0eXBlZGVmIHN0cnVj
dCBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Cit7CisgICAgICAgZmxvYXQgcHJvZ3Jlc3M7
Cit9IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZl
bnRfQXBwbGljYXRpb25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1
aW50MzJfdCB1bkFyZ3NIYW5kbGU7Cit9IFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdDsKKwor
dHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90Cit7CisgICAgICAg
dWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBuVmlzdWFsTW9kZTsKK30g
VlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50
X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICB1aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlS
ZXNwb25zZTsKK30gVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90OworCit0eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1Byb3BlcnR5X3QKK3sKKyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNv
bnRhaW5lcjsKKyAgICAgICBlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK30gVlJF
dmVudF9Qcm9wZXJ0eV90OworCit0eXBlZGVmIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90Cit7Cisg
ICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHBWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3Qg
dnI6OkhtZFZlY3RvcjJfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfSBI
aWRkZW5BcmVhTWVzaF90OworCit0eXBlZGVmIHN0cnVjdCBWUkNvbnRyb2xsZXJBeGlzX3QKK3sK
KyAgICAgICBmbG9hdCB4OworICAgICAgIGZsb2F0IHk7Cit9IFZSQ29udHJvbGxlckF4aXNfdDsK
KwordHlwZWRlZiBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAoreworICAgICAgIHVpbnQzMl90
IHVuUGFja2V0TnVtOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAgICB1
aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisgICAgICAgc3RydWN0IFZSQ29udHJvbGxlckF4aXNf
dCByQXhpc1s1XTsgLy9zdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNfdFs1XQorfSBWUkNvbnRy
b2xsZXJTdGF0ZV90OworCit0eXBlZGVmIHN0cnVjdCBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5n
cworeworICAgICAgIHVpbnQzMl90IHNpemU7CisgICAgICAgYm9vbCBjdXJ2ZWQ7CisgICAgICAg
Ym9vbCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGU7CisgICAgICAgZmxvYXQgZGlzdGFu
Y2U7CisgICAgICAgZmxvYXQgYWxwaGE7CisgICAgICAgZmxvYXQgdU9mZnNldDsKKyAgICAgICBm
bG9hdCB2T2Zmc2V0OworICAgICAgIGZsb2F0IHVTY2FsZTsKKyAgICAgICBmbG9hdCB2U2NhbGU7
CisgICAgICAgZmxvYXQgZ3JpZERpdnM7CisgICAgICAgZmxvYXQgZ3JpZFdpZHRoOworICAgICAg
IGZsb2F0IGdyaWRTY2FsZTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07
Cit9IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzOworCit0eXBlZGVmIHN0cnVjdCBDYW1lcmFW
aWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBlbnVtIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7CisgICAgICAgdWlu
dDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsKKyAgICAgICB1
aW50MzJfdCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2Vf
dCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfSBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVh
ZGVyX3Q7CisKK3R5cGVkZWYgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190Cit7CisgICAgICAgY2hh
ciAqIHBjaEtleTsgLy8gY29uc3QgY2hhciAqCisgICAgICAgY2hhciAqIHBjaFZhbHVlOyAvLyBj
b25zdCBjaGFyICoKK30gQXBwT3ZlcnJpZGVLZXlzX3Q7CisKK3R5cGVkZWYgc3RydWN0IENvbXBv
c2l0b3JfRnJhbWVUaW1pbmcKK3sKKyAgICAgICB1aW50MzJfdCBtX25TaXplOworICAgICAgIHVp
bnQzMl90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50
czsKKyAgICAgICB1aW50MzJfdCBtX25OdW1NaXNQcmVzZW50ZWQ7CisgICAgICAgdWludDMyX3Qg
bV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFn
czsKKyAgICAgICBkb3VibGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisgICAgICAgZmxvYXQg
bV9mbFByZVN1Ym1pdEdwdU1zOworICAgICAgIGZsb2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7Cisg
ICAgICAgZmxvYXQgbV9mbFRvdGFsUmVuZGVyR3B1TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBv
c2l0b3JSZW5kZXJHcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1z
OworICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOworICAgICAgIGZsb2F0IG1f
ZmxDbGllbnRGcmFtZUludGVydmFsTXM7CisgICAgICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1
TXM7CisgICAgICAgZmxvYXQgbV9mbFdhaXRGb3JQcmVzZW50Q3B1TXM7CisgICAgICAgZmxvYXQg
bV9mbFN1Ym1pdEZyYW1lTXM7CisgICAgICAgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1z
OworICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbE5l
d0ZyYW1lUmVhZHlNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7
CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsKKyAgICAgICBmbG9hdCBt
X2ZsQ29tcG9zaXRvclJlbmRlclN0YXJ0TXM7CisgICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBt
X0htZFBvc2U7Cit9IENvbXBvc2l0b3JfRnJhbWVUaW1pbmc7CisKK3R5cGVkZWYgc3RydWN0IENv
bXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMyX3QgbV9uUGlkOworICAg
ICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAgdWludDMyX3QgbV9uTnVt
RHJvcHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsK
KyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFydHVwOworICAgICAgIHVp
bnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9u
TnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtTG9h
ZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGluZzsKKyAgICAg
ICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBt
X25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtVGlt
ZWRPdXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAg
ICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50MzJf
dCBtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0OworfSBDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0czsKKwordHlwZWRlZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QK
K3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZTb3VyY2U7CisgICAgICAgc3RydWN0IEht
ZFZlY3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgIGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gZU9yaWdpbjsKK30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Q7CisKK3R5cGVkZWYg
c3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAoreworICAgICAgIHN0cnVjdCBI
bWRWZWN0b3IzX3QgdlBvaW50OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsK
KyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZVVnM7CisgICAgICAgZmxvYXQgZkRpc3RhbmNl
OworfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Q7CisKK3R5cGVkZWYgc3RydWN0IElu
dGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdAoreworICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WDsK
KyAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgZmxvYXQgbV9mbFdpZHRoOworICAg
ICAgIGZsb2F0IG1fZmxIZWlnaHQ7Cit9IEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdDsKKwor
dHlwZWRlZiBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90Cit7CisgICAgICAgZmxvYXQg
bV9mbENlbnRlclg7CisgICAgICAgZmxvYXQgbV9mbENlbnRlclk7CisgICAgICAgZmxvYXQgbV9m
bFJhZGl1czsKK30gSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90OworCit0eXBlZGVmIHN0cnVjdCBS
ZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Cit7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0
X3QgbVRyYWNraW5nVG9Db21wb25lbnRSZW5kZXJNb2RlbDsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0
cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudExvY2FsOworICAgICAgIFZSQ29tcG9uZW50UHJv
cGVydGllcyB1UHJvcGVydGllczsKK30gUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdDsKKwor
dHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1k
VmVjdG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZOb3JtYWw7
CisgICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07IC8vZmxvYXRbMl0KK30gUmVuZGVyTW9k
ZWxfVmVydGV4X3Q7CisKK3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdAor
eworICAgICAgIHVpbnQxNl90IHVuV2lkdGg7CisgICAgICAgdWludDE2X3QgdW5IZWlnaHQ7Cisg
ICAgICAgdWludDhfdCAqIHJ1YlRleHR1cmVNYXBEYXRhOyAvLyBjb25zdCB1aW50OF90ICoKK30g
UmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF90
Cit7CisgICAgICAgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICogclZlcnRleERhdGE7IC8v
IGNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHVpbnQzMl90
IHVuVmVydGV4Q291bnQ7CisgICAgICAgdWludDE2X3QgKiBySW5kZXhEYXRhOyAvLyBjb25zdCB1
aW50MTZfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworICAgICAgIFRleHR1
cmVJRF90IGRpZmZ1c2VUZXh0dXJlSWQ7Cit9IFJlbmRlck1vZGVsX3Q7CisKK3R5cGVkZWYgc3Ry
dWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29sIGJT
Y3JvbGxXaGVlbFZpc2libGU7Cit9IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3Q7
CisKK3R5cGVkZWYgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgdm9pZCAq
IG1fcEltYWdlRGF0YTsgLy8gdm9pZCAqCisgICAgICAgaW50MzJfdCBtX25XaWR0aDsKKyAgICAg
ICBpbnQzMl90IG1fbkhlaWdodDsKKyAgICAgICBpbnQzMl90IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9
IE5vdGlmaWNhdGlvbkJpdG1hcF90OworCit0eXBlZGVmIHN0cnVjdCBDT3BlblZSQ29udGV4dAor
eworICAgICAgIGludHB0cl90IG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2cjo6SVZSU3lzdGVtICoK
KyAgICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZTsgLy8gY2xhc3MgdnI6OklWUkNoYXBlcm9u
ZSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmVTZXR1cDsgLy8gY2xhc3MgdnI6OklW
UkNoYXBlcm9uZVNldHVwICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUkNvbXBvc2l0b3I7IC8vIGNs
YXNzIHZyOjpJVlJDb21wb3NpdG9yICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUk92ZXJsYXk7IC8v
IGNsYXNzIHZyOjpJVlJPdmVybGF5ICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlJlc291cmNlczsg
Ly8gY2xhc3MgdnI6OklWUlJlc291cmNlcyAqCisgICAgICAgaW50cHRyX3QgbV9wVlJSZW5kZXJN
b2RlbHM7IC8vIGNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIGludHB0cl90IG1f
cFZSRXh0ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5ICoKKyAg
ICAgICBpbnRwdHJfdCBtX3BWUlNldHRpbmdzOyAvLyBjbGFzcyB2cjo6SVZSU2V0dGluZ3MgKgor
ICAgICAgIGludHB0cl90IG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBwbGlj
YXRpb25zICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlRyYWNrZWRDYW1lcmE7IC8vIGNsYXNzIHZy
OjpJVlJUcmFja2VkQ2FtZXJhICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlNjcmVlbnNob3RzOyAv
LyBjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKgorfSBDT3BlblZSQ29udGV4dDsKKworCit0eXBl
ZGVmIHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOworICAgICAg
IFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAgVlJFdmVudF9Nb3VzZV90
IG1vdXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOworICAgICAgIFZSRXZlbnRf
UHJvY2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmlj
YXRpb247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBWUkV2ZW50
X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7Cisg
ICAgICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBjaGFw
ZXJvbmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7
CisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7CisgICAgICAgVlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKK30gVlJFdmVu
dF9EYXRhX3Q7CisKKy8qKiBBbiBldmVudCBwb3N0ZWQgYnkgdGhlIHNlcnZlciB0byBhbGwgcnVu
bmluZyBhcHBsaWNhdGlvbnMgKi8KK3N0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICB1aW50MzJf
dCBldmVudFR5cGU7IC8vIEVWUkV2ZW50VHlwZSBlbnVtCisgICAgICAgVHJhY2tlZERldmljZUlu
ZGV4X3QgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIGZsb2F0IGV2ZW50QWdlU2Vjb25kczsK
KyAgICAgICAvLyBldmVudCBkYXRhIG11c3QgYmUgdGhlIGVuZCBvZiB0aGUgc3RydWN0IGFzIGl0
cyBzaXplIGlzIHZhcmlhYmxlCisgICAgICAgVlJFdmVudF9EYXRhX3QgZGF0YTsKK307CisKKwor
dHlwZWRlZiB1bmlvbgoreworICAgICAgIEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdCBtX1Jl
Y3RhbmdsZTsKKyAgICAgICBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QgbV9DaXJjbGU7Cit9IFZS
T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCitzdHJ1Y3QgVlJPdmVy
bGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90Cit7CisgICAgICAgRVZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAgVlJPdmVy
bGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Cit9OworCisK
Ky8vIE9wZW5WUiBGdW5jdGlvbiBQb2ludGVyIFRhYmxlcworCitzdHJ1Y3QgVlJfSVZSU3lzdGVt
X0ZuVGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVj
b21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKSh1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICog
cG5IZWlnaHQpOworICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0UHJvamVjdGlvbk1hdHJpeCkoRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwg
ZmxvYXQgZkZhclopOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQ
cm9qZWN0aW9uUmF3KShFVlJFeWUgZUV5ZSwgZmxvYXQgKiBwZkxlZnQsIGZsb2F0ICogcGZSaWdo
dCwgZmxvYXQgKiBwZlRvcCwgZmxvYXQgKiBwZkJvdHRvbSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXB1dGVEaXN0b3J0aW9uKShFVlJFeWUgZUV5ZSwgZmxvYXQg
ZlUsIGZsb2F0IGZWLCBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgKiBwRGlzdG9ydGlv
bkNvb3JkaW5hdGVzKTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldEV5ZVRvSGVhZFRyYW5zZm9ybSkoRVZSRXllIGVFeWUpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUaW1lU2luY2VMYXN0VnN5bmMpKGZs
b2F0ICogcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICogcHVsRnJhbWVDb3VudGVy
KTsKKyAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RDNEOUFkYXB0
ZXJJbmRleCkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RFhH
SU91dHB1dEluZm8pKGludDMyX3QgKiBwbkFkYXB0ZXJJbmRleCk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGlzcGxheU9uRGVza3RvcCkoKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGlzcGxheVZpc2liaWxpdHkpKGJvb2wgYklz
VmlzaWJsZU9uRGVza3RvcCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVPcmlnaW4sIGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgc3RydWN0
IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludDMyX3Qg
dW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpSZXNldFNlYXRlZFplcm9Qb3NlKSgpOworICAgICAgIHN0cnVjdCBIbWRN
YXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2VhdGVkWmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNv
bHV0ZVRyYWNraW5nUG9zZSkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcykoRVRyYWNrZWREZXZp
Y2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1blRy
YWNrZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5
Q291bnQsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRl
eCk7CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWwgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5E
ZXZpY2VJZCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFwcGx5VHJh
bnNmb3JtKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRQb3NlLCBzdHJ1Y3Qg
VHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSwgc3RydWN0IEhtZE1hdHJp
eDM0X3QgKiBwVHJhbnNmb3JtKTsKKyAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xl
KShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7CisgICAgICAgRVRyYWNrZWRD
b250cm9sbGVyUm9sZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbnRyb2xsZXJSb2xl
Rm9yVHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
KTsKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0VHJhY2tlZERldmljZUNsYXNzKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNUcmFja2VkRGV2aWNl
Q29ubmVjdGVkKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOworICAgICAgIGZsb2F0
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBpbnQzMl90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICB1aW50NjRf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOworICAgICAgIHN0cnVj
dCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TWF0cml4MzRUcmFj
a2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9y
KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFN0cmluZ1Ry
YWNrZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVu
QnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBjaGFy
ICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0pKEVU
cmFja2VkUHJvcGVydHlFcnJvciBlcnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlBvbGxOZXh0RXZlbnQpKHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQz
Ml90IHVuY2JWUkV2ZW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
UG9sbE5leHRFdmVudFdpdGhQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBz
dHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCwgVHJhY2tlZERl
dmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgY2hhciAqIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKShFVlJFdmVudFR5cGUg
ZVR5cGUpOworICAgICAgIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0SGlkZGVuQXJlYU1lc2gpKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hU
eXBlIHR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb250
cm9sbGVyU3RhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4
LCBWUkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250
cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmln
aW4sIFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCBWUkNvbnRy
b2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9sbGVyU3Rh
dGVTaXplLCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7
CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRyaWdnZXJIYXB0aWNQdWxz
ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQzMl90
IHVuQXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9TZWMpOworICAgICAgIGNo
YXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKShF
VlJCdXR0b25JZCBlQnV0dG9uSWQpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSkoRVZSQ29udHJvbGxlckF4
aXNUeXBlIGVBeGlzVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkNhcHR1cmVJbnB1dEZvY3VzKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpSZWxlYXNlSW5wdXRGb2N1cykoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKSgpOworICAgICAg
IHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRHJpdmVyRGVidWdSZXF1ZXN0KShU
cmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjaGFyICogcGNoUmVxdWVzdCwgY2hh
ciAqIHBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSk7Cisg
ICAgICAgRVZSRmlybXdhcmVFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBlcmZvcm1G
aXJtd2FyZVVwZGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xlZGdlUXVpdF9FeGl0aW5n
KSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY2tub3dsZWRnZVF1
aXRfVXNlclByb21wdCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJFeHRlbmRlZERpc3BsYXlfRm5U
YWJsZQoreworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXaW5kb3dC
b3VuZHMpKGludDMyX3QgKiBwblgsIGludDMyX3QgKiBwblksIHVpbnQzMl90ICogcG5XaWR0aCwg
dWludDMyX3QgKiBwbkhlaWdodCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEV5ZU91dHB1dFZpZXdwb3J0KShFVlJFeWUgZUV5ZSwgdWludDMyX3QgKiBwblgsIHVp
bnQzMl90ICogcG5ZLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREWEdJT3V0cHV0SW5mbyko
aW50MzJfdCAqIHBuQWRhcHRlckluZGV4LCBpbnQzMl90ICogcG5BZGFwdGVyT3V0cHV0SW5kZXgp
OworfTsKKworc3RydWN0IFZSX0lWUlRyYWNrZWRDYW1lcmFfRm5UYWJsZQoreworICAgICAgIGNo
YXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVt
KShFVlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKTsKKyAgICAgICBFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYXNDYW1lcmEpKFRyYWNrZWRE
ZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqIHBIYXNDYW1lcmEpOworICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUZy
YW1lU2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBw
bkhlaWdodCwgdWludDMyX3QgKiBwbkZyYW1lQnVmZmVyU2l6ZSk7CisgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhSW50cmluc2lj
cykoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJh
bWVUeXBlIGVGcmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqIHBGb2NhbExlbmd0aCwgSG1kVmVjdG9y
Ml90ICogcENlbnRlcik7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhUHJvamVjdGlvbikoVHJhY2tlZERldmljZUluZGV4X3Qg
bkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0
IGZsWk5lYXIsIGZsb2F0IGZsWkZhciwgSG1kTWF0cml4NDRfdCAqIHBQcm9qZWN0aW9uKTsKKyAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY3F1
aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5k
ZXgsIFRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIHBIYW5kbGUpOworICAgICAgIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VWaWRlb1N0cmVhbWlu
Z1NlcnZpY2UpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSk7CisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9T
dHJlYW1GcmFtZUJ1ZmZlcikoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCBF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKiBwRnJhbWVCdWZmZXIs
IHVpbnQzMl90IG5GcmFtZUJ1ZmZlclNpemUsIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJf
dCAqIHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJl
YW1UZXh0dXJlU2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIFZSVGV4dHVyZUJvdW5kc190ICogcFRleHR1
cmVCb3VuZHMsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7CisgICAg
ICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Vmlk
ZW9TdHJlYW1UZXh0dXJlRDNEMTEpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVy
YSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICogcEQzRDExRGV2
aWNlT3JSZXNvdXJjZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCBDYW1lcmFW
aWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhl
YWRlclNpemUpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3Qg
aFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZ2xV
SW50X3QgKiBwZ2xUZXh0dXJlSWQsIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIHBG
cmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZVZpZGVvU3RyZWFt
VGV4dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIGdsVUludF90
IGdsVGV4dHVyZUlkKTsKK307CisKK3N0cnVjdCBWUl9JVlJBcHBsaWNhdGlvbnNfRm5UYWJsZQor
eworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpB
ZGRBcHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQ
YXRoLCBib29sIGJUZW1wb3JhcnkpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNo
QXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqSXNBcHBsaWNhdGlvbkluc3RhbGxlZCkoY2hhciAqIHBjaEFwcEtleSk7Cisg
ICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkNv
dW50KSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgpKHVpbnQzMl90IHVuQXBwbGljYXRpb25JbmRl
eCwgY2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOwor
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRB
cHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKSh1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hhciAqIHBj
aEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgIEVWUkFw
cGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hBcHBsaWNhdGlv
bikoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24pKGNoYXIgKiBwY2hU
ZW1wbGF0ZUFwcEtleSwgY2hhciAqIHBjaE5ld0FwcEtleSwgc3RydWN0IEFwcE92ZXJyaWRlS2V5
c190ICogcEtleXMsIHVpbnQzMl90IHVuS2V5cyk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBl
KShjaGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBwY2hBcmdzKTsKKyAgICAgICBFVlJBcHBsaWNh
dGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoRGFzaGJvYXJkT3Zlcmxh
eSkoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKShjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBF
VlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSWRlbnRpZnlBcHBs
aWNhdGlvbikodWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAg
IHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Qcm9jZXNz
SWQpKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKShFVlJBcHBsaWNhdGlvbkVy
cm9yIGVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHkgZVByb3BlcnR5LCBjaGFyICogcGNoUHJvcGVydHlWYWx1ZUJ1ZmZlciwgdWlu
dDMyX3QgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVF
cnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0
aW9uUHJvcGVydHlCb29sKShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5
IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3IpOworICAgICAgIHVpbnQ2
NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2
NCkoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVW
UkFwcGxpY2F0aW9uRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShjaGFy
ICogcGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShjaGFyICogcGNoQXBwS2V5
KTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIg
KiBwY2hNaW1lVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFyICogcGNoTWltZVR5cGUsIGNoYXIg
KiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1l
VHlwZXMpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIgKiBwY2hNaW1lVHlwZXNCdWZmZXIsIHVpbnQz
Ml90IHVuTWltZVR5cGVzQnVmZmVyKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUpKGNoYXIgKiBwY2hN
aW1lVHlwZSwgY2hhciAqIHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciwgdWludDMyX3QgdW5B
cHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMpKHVpbnQzMl90IHVuSGFu
ZGxlLCBjaGFyICogcGNoQXJncywgdWludDMyX3QgdW5BcmdzKTsKKyAgICAgICBFVlJBcHBsaWNh
dGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RhcnRpbmdBcHBsaWNhdGlv
bikoY2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOwor
ICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0VHJhbnNpdGlvblN0YXRlKSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVj
aykoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKShFVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKklzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQpKCk7CisgICAgICAgRVZSQXBw
bGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEludGVybmFsUHJv
Y2VzcykoY2hhciAqIHBjaEJpbmFyeVBhdGgsIGNoYXIgKiBwY2hBcmd1bWVudHMsIGNoYXIgKiBw
Y2hXb3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJD
aGFwZXJvbmVfRm5UYWJsZQoreworICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYWxpYnJhdGlvblN0YXRlKSgpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQbGF5QXJlYVNpemUpKGZsb2F0ICogcFNp
emVYLCBmbG9hdCAqIHBTaXplWik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFBsYXlBcmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJlY3QpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRJbmZvKSgpOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTY2VuZUNvbG9yKShzdHJ1Y3QgSG1kQ29sb3Jf
dCBjb2xvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvdW5k
c0NvbG9yKShzdHJ1Y3QgSG1kQ29sb3JfdCAqIHBPdXRwdXRDb2xvckFycmF5LCBpbnQgbk51bU91
dHB1dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIHN0cnVjdCBI
bWRDb2xvcl90ICogcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQXJlQm91bmRzVmlzaWJsZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqRm9yY2VCb3VuZHNWaXNpYmxlKShib29sIGJGb3JjZSk7Cit9Owor
CitzdHJ1Y3QgVlJfSVZSQ2hhcGVyb25lU2V0dXBfRm5UYWJsZQoreworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21taXRXb3JraW5nQ29weSkoRUNoYXBlcm9uZUNvbmZp
Z0ZpbGUgY29uZmlnRmlsZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJldmVydFdvcmtpbmdDb3B5KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRXb3JraW5nUGxheUFyZWFTaXplKShmbG9hdCAqIHBTaXplWCwgZmxvYXQgKiBwU2l6
ZVopOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nUGxh
eUFyZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKShzdHJ1Y3Qg
SG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1YWRzQ291bnQpOworICAg
ICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlQ29sbGlzaW9uQm91bmRz
SW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFk
c0NvdW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2lu
Z1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICog
cG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRX
b3JraW5nUGxheUFyZWFTaXplKShmbG9hdCBzaXplWCwgZmxvYXQgc2l6ZVopOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5m
bykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ1NlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcE1hdFNl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3Nl
KShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRGcm9t
RGlzaykoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2lu
Z0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICogcFRhZ3NCdWZmZXIsIHVpbnQzMl90
IHVuVGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRM
aXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFnc0J1ZmZlciwgdWludDMy
X3QgKiBwdW5UYWdDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNC
dWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3Qg
KiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkV4cG9ydExpdmVUb0J1ZmZlcikoY2hhciAqIHBCdWZm
ZXIsIHVpbnQzMl90ICogcG5CdWZmZXJMZW5ndGgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nKShjaGFyICogcEJ1ZmZlciwg
dWludDMyX3QgbkltcG9ydEZsYWdzKTsKK307CisKK3N0cnVjdCBWUl9JVlJDb21wb3NpdG9yX0Zu
VGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0VHJhY2tp
bmdTcGFjZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbik7CisgICAgICAgRVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4gKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2luZ1Nw
YWNlKSgpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKldhaXRHZXRQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwUmVuZGVyUG9z
ZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBzdHJ1Y3QgVHJhY2tlZERl
dmljZVBvc2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3Vu
dCk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0TGFzdFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBSZW5kZXJQb3NlQXJy
YXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVjdCBUcmFja2VkRGV2aWNl
UG9zZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50KTsK
KyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRM
YXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZp
Y2VJbmRleCwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0UG9zZSwgc3RydWN0
IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgIEVWUkNvbXBv
c2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1pdCkoRVZSRXllIGVFeWUs
IHN0cnVjdCBUZXh0dXJlX3QgKiBwVGV4dHVyZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICog
cEJvdW5kcywgRVZSU3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUpKCk7CisgICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvc3RQcmVzZW50SGFuZG9mZikoKTsKKyAg
ICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1pbmcpKHN0cnVj
dCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMyX3QgdW5GcmFtZXNBZ28p
OworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1p
bmdzKShzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1pbmcsIHVpbnQzMl90IG5G
cmFtZXMpOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVU
aW1lUmVtYWluaW5nKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRDdW11bGF0aXZlU3RhdHMpKHN0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqIHBT
dGF0cywgdWludDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpGYWRlVG9Db2xvcikoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQs
IGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3Vu
ZCk7CisgICAgICAgc3RydWN0IEhtZENvbG9yX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRDdXJyZW50RmFkZUNvbG9yKShib29sIGJCYWNrZ3JvdW5kKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqRmFkZUdyaWQpKGZsb2F0IGZTZWNvbmRzLCBib29sIGJGYWRl
SW4pOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VycmVudEdy
aWRBbHBoYSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTZXRTa3lib3hPdmVycmlkZSkoc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlcywg
dWludDMyX3QgdW5UZXh0dXJlQ291bnQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpDbGVhclNreWJveE92ZXJyaWRlKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpDb21wb3NpdG9yQnJpbmdUb0Zyb250KSgpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yR29Ub0JhY2spKCk7CisgICAgICAgdm9p
ZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JRdWl0KSgpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Z1bGxzY3JlZW4pKCk7CisgICAgICAgdWlu
dDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nl
c3MpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMYXN0
RnJhbWVSZW5kZXJlcikoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
Q2FuUmVuZGVyU2NlbmUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNob3dNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkhpZGVNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKklzTWlycm9yV2luZG93VmlzaWJsZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckR1bXBJbWFnZXMpKCk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMpKCk7
CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZvcmNlSW50ZXJsZWF2ZWRS
ZXByb2plY3Rpb25PbikoYm9vbCBiT3ZlcnJpZGUpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpGb3JjZVJlY29ubmVjdFByb2Nlc3MpKCk7CisgICAgICAgdm9pZCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1c3BlbmRSZW5kZXJpbmcpKGJvb2wgYlN1c3BlbmQpOwor
ICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1p
cnJvclRleHR1cmVEM0QxMSkoRVZSRXllIGVFeWUsIHZvaWQgKiBwRDNEMTFEZXZpY2VPclJlc291
cmNlLCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKSh2b2lkICog
cEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRNaXJyb3JUZXh0dXJlR0wpKEVWUkV5ZSBlRXllLCBn
bFVJbnRfdCAqIHBnbFRleHR1cmVJZCwgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKiBwZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
UmVsZWFzZVNoYXJlZEdMVGV4dHVyZSkoZ2xVSW50X3QgZ2xUZXh0dXJlSWQsIGdsU2hhcmVkVGV4
dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MpKGdsU2hhcmVk
VGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdm9pZCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcykoZ2xT
aGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB1aW50
MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9u
c1JlcXVpcmVkKShjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSk7CisgICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWdWxrYW5EZXZpY2VFeHRl
bnNpb25zUmVxdWlyZWQpKHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiBwUGh5c2ljYWxEZXZp
Y2UsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplKTsKK307CisKK3N0cnVj
dCBWUl9JVlJPdmVybGF5X0ZuVGFibGUKK3sKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpGaW5kT3ZlcmxheSkoY2hhciAqIHBjaE92ZXJsYXlLZXksIFZS
T3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0ZU92ZXJsYXkpKGNoYXIgKiBwY2hPdmVy
bGF5S2V5LCBjaGFyICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3Qg
KiBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqRGVzdHJveU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0SGlnaFF1YWxpdHlPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUp
OworICAgICAgIFZST3ZlcmxheUhhbmRsZV90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
SGlnaFF1YWxpdHlPdmVybGF5KSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0T3ZlcmxheUtleSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9y
ICogcEVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dE92ZXJsYXlOYW1lKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKiBw
Y2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJyb3IgKiBwRXJyb3Ip
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlJbWFnZURhdGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAq
IHB2QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICogcHVuV2lkdGgsIHVp
bnQzMl90ICogcHVuSGVpZ2h0KTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0pKEVWUk92ZXJsYXlFcnJvciBlcnJvcik7
CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zl
cmxheVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
MzJfdCB1blBJRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRPdmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlGbGFnKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZs
YWdzIGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCk7CisgICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUZsYWcpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sICog
cGJFbmFibGVkKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRPdmVybGF5Q29sb3IpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
ZmxvYXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSk7CisgICAgICAgRVZST3Zlcmxh
eUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUNvbG9yKShWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZSZWQsIGZsb2F0ICogcGZHcmVl
biwgZmxvYXQgKiBwZkJsdWUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCBmbG9hdCAqIHBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUZXhlbEFzcGVjdCkoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3BlY3QpOworICAgICAgIEVWUk92
ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXhlbEFzcGVj
dCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBmVGV4ZWxBc3Bl
Y3QpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dE92ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWlu
dDMyX3QgdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgdWludDMyX3QgKiBwdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKShW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVy
bGF5V2lkdGhJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9h
dCAqIHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1l
dGVycywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJh
bmdlSW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBw
Zk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICogcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5
VGV4dHVyZUNvbG9yU3BhY2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNv
bG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgKiBwZVRleHR1cmVDb2xv
clNwYWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRPdmVybGF5VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJs
YXlUZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVj
dCBWUlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9y
bVR5cGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5VHJhbnNm
b3JtVHlwZSAqIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKShWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFj
a2luZ09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092
ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSkoVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiAqIHBlVHJhY2tpbmdPcmln
aW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJh
bnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuVHJhY2tlZERldmlj
ZSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5z
Zm9ybSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1blRyYWNrZWREZXZp
Y2UsIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFu
c2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgs
IGNoYXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5k
ZXhfdCAqIHB1bkRldmljZUluZGV4LCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3Qg
dW5Db21wb25lbnROYW1lU2l6ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2hvd092ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
SGlkZU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzT3ZlcmxheVZpc2libGUpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKShW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVUcmFja2luZ09yaWdpbiwgc3RydWN0IEhtZFZlY3RvcjJfdCBjb29yZGluYXRlc0luT3Zlcmxh
eSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9sbE5leHRPdmVybGF5RXZlbnQpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWludDMy
X3QgdW5jYlZSRXZlbnQpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE92ZXJsYXlJbnB1dE1ldGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIHBlSW5wdXRNZXRob2QpOworICAgICAg
IEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlJbnB1
dE1ldGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1
dE1ldGhvZCBlSW5wdXRNZXRob2QpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlNb3VzZVNjYWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwdmVjTW91c2VTY2FsZSk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zlcmxh
eU1vdXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEht
ZFZlY3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rpb24pKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190ICog
cFBhcmFtcywgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIHBSZXN1bHRz
KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGFuZGxlQ29udHJvbGxl
ck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAg
ICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0hvdmVyVGFyZ2V0T3ZlcmxheSko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBWUk92ZXJsYXlIYW5k
bGVfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEdhbWVwYWRGb2N1c092ZXJsYXkpKCk7
CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0R2Ft
ZXBhZEZvY3VzT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdGb2N1c092ZXJsYXkpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlOZWlnaGJvcikoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxl
X3QgdWxGcm9tLCBWUk92ZXJsYXlIYW5kbGVfdCB1bFRvKTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvciko
RU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxlX3QgdWxGcm9tKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVGV4
dHVyZV90ICogcFRleHR1cmUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkNsZWFyT3ZlcmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0T3ZlcmxheVJhdykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2
b2lkICogcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lkdGgsIHVpbnQzMl90IHVuSGVpZ2h0LCB1aW50
MzJfdCB1bkRlcHRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTZXRPdmVybGF5RnJvbUZpbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgY2hhciAqIHBjaEZpbGVQYXRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB2b2lkICoqIHBOYXRpdmVUZXh0dXJlSGFuZGxlLCB2b2lkICogcE5h
dGl2ZVRleHR1cmVSZWYsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJfdCAqIHBIZWlnaHQsIHVp
bnQzMl90ICogcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVUeXBlICogcEFQSVR5cGUsIEVDb2xvclNw
YWNlICogcENvbG9yU3BhY2UsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBUZXh0dXJlQm91
bmRzKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpS
ZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCB2b2lkICogcE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlU2l6ZSkoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHBXaWR0aCwgdWludDMyX3Qg
KiBwSGVpZ2h0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpDcmVhdGVEYXNoYm9hcmRPdmVybGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwgY2hhciAq
IHBjaE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUs
IFZST3ZlcmxheUhhbmRsZV90ICogcFRodW1ibmFpbEhhbmRsZSk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGFzaGJvYXJkVmlzaWJsZSkoKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3Mp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgdWludDMyX3QgKiBwdW5Qcm9jZXNzSWQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpTaG93RGFzaGJvYXJkKShjaGFyICogcGNoT3ZlcmxheVRvU2hvdyk7Cisg
ICAgICAgVHJhY2tlZERldmljZUluZGV4X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQ
cmltYXJ5RGFzaGJvYXJkRGV2aWNlKSgpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dLZXlib2FyZCkoRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJ
bnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNoYXIg
KiBwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjaGFyICogcGNoRXhpc3RpbmdU
ZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSk7CisgICAgICAg
RVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0tleWJvYXJkRm9y
T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFR2FtZXBhZFRleHRJ
bnB1dE1vZGUgZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0
TW9kZSwgY2hhciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNoYXIgKiBw
Y2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVl
KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEtleWJvYXJk
VGV4dCkoY2hhciAqIHBjaFRleHQsIHVpbnQzMl90IGNjaFRleHQpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpIaWRlS2V5Ym9hcmQpKCk7CisgICAgICAgdm9pZCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUpKEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3Qg
KiBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFJlY3QyX3QgYXZvaWRS
ZWN0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzaykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90ICogcE1hc2tQ
cmltaXRpdmVzLCB1aW50MzJfdCB1bk51bU1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1blByaW1p
dGl2ZVNpemUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldE92ZXJsYXlGbGFncykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1
aW50MzJfdCAqIHBGbGFncyk7CisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd01lc3NhZ2VPdmVybGF5KShjaGFyICogcGNoVGV4dCwg
Y2hhciAqIHBjaENhcHRpb24sIGNoYXIgKiBwY2hCdXR0b24wVGV4dCwgY2hhciAqIHBjaEJ1dHRv
bjFUZXh0LCBjaGFyICogcGNoQnV0dG9uMlRleHQsIGNoYXIgKiBwY2hCdXR0b24zVGV4dCk7Cit9
OworCitzdHJ1Y3QgVlJfSVZSUmVuZGVyTW9kZWxzX0ZuVGFibGUKK3sKKyAgICAgICBFVlJSZW5k
ZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFJlbmRlck1vZGVsX0Fz
eW5jKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqKiBw
cFJlbmRlck1vZGVsKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJl
ZVJlbmRlck1vZGVsKShzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqIHBSZW5kZXJNb2RlbCk7CisgICAg
ICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRUZXh0
dXJlX0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0
dXJlTWFwX3QgKiogcHBUZXh0dXJlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqRnJlZVRleHR1cmUpKHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKiBwVGV4
dHVyZSk7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkxvYWRUZXh0dXJlRDNEMTFfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAq
IHBEM0QxMURldmljZSwgdm9pZCAqKiBwcEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICBFVlJSZW5k
ZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZEludG9UZXh0dXJlRDNE
MTFfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqIHBEc3RUZXh0dXJlKTsKKyAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVRleHR1cmVEM0QxMSkodm9p
ZCAqIHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRSZW5kZXJNb2RlbE5hbWUpKHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwg
Y2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2RlbE5hbWVMZW4p
OworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9k
ZWxDb3VudCkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dENvbXBvbmVudENvdW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lKTsKKyAgICAgICB1aW50
MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudE5hbWUpKGNoYXIgKiBw
Y2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50SW5kZXgsIGNoYXIgKiBwY2hD
b21wb25lbnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4pOworICAgICAgIHVpbnQ2
NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50QnV0dG9uTWFzaykoY2hh
ciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOworICAgICAg
IHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50UmVuZGVyTW9k
ZWxOYW1lKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFt
ZSwgY2hhciAqIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25l
bnRSZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRDb21wb25lbnRTdGF0ZSkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAq
IHBjaENvbXBvbmVudE5hbWUsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRl
LCBzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCAqIHBTdGF0ZSwgc3Ry
dWN0IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiBwQ29tcG9uZW50U3RhdGUpOworICAg
ICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW5kZXJNb2RlbEhhc0NvbXBvbmVu
dCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOwor
ICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxU
aHVtYm5haWxVUkwpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hUaHVtYm5h
aWxVUkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCBFVlJSZW5kZXJNb2RlbEVycm9yICog
cGVFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRS
ZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAq
IHBjaE9yaWdpbmFsUGF0aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhMZW4sIEVWUlJlbmRlck1v
ZGVsRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKShFVlJSZW5kZXJNb2RlbEVycm9y
IGVycm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJOb3RpZmljYXRpb25zX0ZuVGFibGUKK3sKKyAg
ICAgICBFVlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0
ZU5vdGlmaWNhdGlvbikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50NjRf
dCB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBjaGFyICogcGNoVGV4dCwg
RVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdCAq
IHBJbWFnZSwgVlJOb3RpZmljYXRpb25JZCAqIHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgRVZS
Tm90aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVOb3RpZmlj
YXRpb24pKFZSTm90aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQpOworfTsKKworc3RydWN0IFZS
X0lWUlNldHRpbmdzX0ZuVGFibGUKK3sKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKShFVlJTZXR0aW5nc0Vycm9yIGVF
cnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN5bmMpKGJvb2wg
YkZvcmNlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEJvb2wpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNo
U2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEludDMyKShjaGFyICogcGNo
U2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGlu
Z3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgZmxv
YXQgZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFy
ICogcGNoU2V0dGluZ3NLZXksIGNoYXIgKiBwY2hWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBl
RXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb29sKShj
aGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9y
ICogcGVFcnJvcik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEludDMyKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0
aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwg
RVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGlu
Z3NLZXksIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxlbiwgRVZSU2V0dGluZ3NF
cnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpS
ZW1vdmVTZWN0aW9uKShjaGFyICogcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJy
b3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVLZXlJblNl
Y3Rpb24pKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRp
bmdzRXJyb3IgKiBwZUVycm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJTY3JlZW5zaG90c19GblRh
YmxlCit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqUmVxdWVzdFNjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5kbGVfdCAqIHBPdXRTY3JlZW5zaG90
SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjaGFyICogcGNoUHJldmlld0ZpbGVuYW1l
LCBjaGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqSG9va1NjcmVlbnNob3QpKEVWUlNjcmVlbnNob3RUeXBlICog
cFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMpOworICAgICAgIEVWUlNjcmVlbnNob3RUeXBl
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSkoU2Ny
ZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RFcnJvciAqIHBF
cnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTY3Jl
ZW5zaG90UHJvcGVydHlGaWxlbmFtZSkoU2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5k
bGUsIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFtZVR5cGUsIGNoYXIgKiBw
Y2hGaWxlbmFtZSwgdWludDMyX3QgY2NoRmlsZW5hbWUsIEVWUlNjcmVlbnNob3RFcnJvciAqIHBF
cnJvcik7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKShTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hv
dEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVGFrZVN0ZXJlb1NjcmVlbnNob3QpKFNjcmVlbnNob3RI
YW5kbGVfdCAqIHBPdXRTY3JlZW5zaG90SGFuZGxlLCBjaGFyICogcGNoUHJldmlld0ZpbGVuYW1l
LCBjaGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0U2NyZWVuc2hvdCkoU2NyZWVuc2hvdEhhbmRsZV90
IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNoYXIgKiBwY2hTb3Vy
Y2VQcmV2aWV3RmlsZW5hbWUsIGNoYXIgKiBwY2hTb3VyY2VWUkZpbGVuYW1lKTsKK307CisKK3N0
cnVjdCBWUl9JVlJSZXNvdXJjZXNfRm5UYWJsZQoreworICAgICAgIHVpbnQzMl90IChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqTG9hZFNoYXJlZFJlc291cmNlKShjaGFyICogcGNoUmVzb3VyY2VO
YW1lLCBjaGFyICogcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbik7CisgICAgICAgdWlu
dDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZXNvdXJjZUZ1bGxQYXRoKShjaGFy
ICogcGNoUmVzb3VyY2VOYW1lLCBjaGFyICogcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBjaGFy
ICogcGNoUGF0aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4pOworfTsKKworCisjaWYgMAor
Ly8gR2xvYmFsIGVudHJ5IHBvaW50cworU19BUEkgaW50cHRyX3QgVlJfSW5pdEludGVybmFsKCBF
VlJJbml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlVHlwZSApOworU19BUEkg
dm9pZCBWUl9TaHV0ZG93bkludGVybmFsKCk7CitTX0FQSSBib29sIFZSX0lzSG1kUHJlc2VudCgp
OworU19BUEkgaW50cHRyX3QgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNo
SW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CitTX0FQSSBib29sIFZS
X0lzUnVudGltZUluc3RhbGxlZCgpOworU19BUEkgY29uc3QgY2hhciAqIFZSX0dldFZSSW5pdEVy
cm9yQXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOworU19BUEkgY29uc3QgY2hhciAqIFZS
X0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUkluaXRFcnJvciBlcnJvciAp
OworI2VuZGlmCisKKyNlbmRpZiAvLyBfX09QRU5WUl9BUElfRkxBVF9IX18KKworCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkzOWUyNDY3MAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaApA
QCAtMCwwICsxLDI1NDEgQEAKKyNwcmFnbWEgb25jZQorCisvLyBvcGVudnJfZHJpdmVyLmgKKy8v
PT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworLy8g
RHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGRpcmVj
dGx5LgorCisjaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQorI2RlZmluZSBfT1BFTlZSX0RSSVZF
Ul9BUEkKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisKKworLy8gdnJ0eXBlcy5oCisjaWZuZGVm
IF9JTkNMVURFX1ZSVFlQRVNfSAorI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKKworLy8gRm9y
d2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCitzdHJ1Y3QgVmtE
ZXZpY2VfVDsKK3N0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7CitzdHJ1Y3QgVmtJbnN0YW5jZV9U
Oworc3RydWN0IFZrUXVldWVfVDsKKworLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQg
cmVxdWlyaW5nIGQzZDEyLmgKK3N0cnVjdCBJRDNEMTJSZXNvdXJjZTsKK3N0cnVjdCBJRDNEMTJD
b21tYW5kUXVldWU7CisKK25hbWVzcGFjZSB2cgoreworCisjaWYgZGVmaW5lZChfX2xpbnV4X18p
IHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyAgICAgICAvLyBUaGUgMzItYml0IHZlcnNpb24gb2Yg
Z2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50NjQgYW5kIGRvdWJsZSBz
ZXQgdG8KKyAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGggI3ByYWdtYSBwYWNrKDgp
IHRoZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25lZC4KKyAgICAgICAvLyBU
aGUgNjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZv
ciB0aGVzZSB0eXBlcyBzZXQgdG8KKyAgICAgICAvLyA4IG1lYW5pbmcgdGhhdCB1bmxlc3Mgd2Ug
dXNlICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdldCBiaWdnZXIuCisgICAg
ICAgLy8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8gbWF0Y2ggdGhlIDMyLWJp
dCBzdHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KKyAgICAgICAjcHJhZ21hIHBh
Y2soIHB1c2gsIDQgKQorI2Vsc2UKKyAgICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorI2Vu
ZGlmCisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVmIGlu
dDMyX3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7CisKKy8vIHJpZ2h0LWhh
bmRlZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUgcmlnaHQKKy8vIC16IGlz
IGdvaW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycworc3RydWN0
IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOworfTsKKworc3RydWN0IEht
ZE1hdHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsKKworc3RydWN0IEhtZFZl
Y3RvcjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yNF90
Cit7CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzZF90Cit7Cisg
ICAgICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAg
ZmxvYXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3Vi
bGUgdywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxvYXQg
ciwgZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBIbWRWZWN0b3Iz
X3QgdkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90Cit7CisgICAgICAgSG1k
VmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9
OworCisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9yIGVhY2gg
Y29sb3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBpbiB0aGUg
dXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4gVGhlIDAs
MCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0cnVjdCBEaXN0b3J0aW9u
Q29vcmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOworICAgICAgIGZsb2F0IHJm
R3JlZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKworZW51bSBFVlJFeWUKK3sK
KyAgICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0gMQorfTsKKworZW51bSBF
VGV4dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8gSGFuZGxl
IGlzIGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAxLCAgLy8g
SGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRlciBidWZm
ZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAgIFRleHR1cmVUeXBlX1Z1
bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1cmVEYXRh
X3Qgc3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8gSGFuZGxl
IGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2UKKyAgICAgICBUZXh0
dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgRDNEMTJU
ZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JTcGFjZQoreworICAgICAg
IENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3IgOC1iaXQg
cGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1pcnJvcnMg
dGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgorICAgICAgIENvbG9y
U3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3BsYXllZCBk
aXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsuYS4gZGlz
cGxheSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIsICAgICAg
IC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVhciByZXBy
ZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4KK307CisK
K3N0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBFVGV4dHVy
ZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsKKyAgICAg
ICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRsZSB0byBhIHNoYXJlZCB0
ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVkUmVzb3Vy
Y2UpLgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7CisjZGVmaW5lIElO
VkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1cmVIYW5k
bGVfdCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFRyYWNraW5nUmVzdWx0
X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAgICBUcmFja2lu
Z1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAorICAgICAgIFRyYWNr
aW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCisKKyAgICAgICBU
cmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAw
LAorICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAgICAgICAg
PSAyMDEsCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRlYnVnUmVz
cG9uc2VTaXplID0gMzI3Njg7CisKKy8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0byBBUEkg
Y2FsbHMgKi8KK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7CitzdGF0aWMg
Y29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOworc3RhdGljIGNv
bnN0IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZFOworc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gMHhGRkZG
RkZGRjsKKworLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5nIHRyYWNr
ZWQgYXQgYSBnaXZlbiBJRCAqLworZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAg
VHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSE1E
ID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91bnRlZCBE
aXNwbGF5cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwgICAgICAg
ICAgICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmlj
ZUNsYXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMgdHJhY2tl
cnMsIHNpbWlsYXIgdG8gY29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfVHJh
Y2tpbmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlvbnMgdGhh
dCBzZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCit9OworCisKKy8qKiBEZXNjcmli
ZXMgd2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2aWNlICov
CitlbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKK3sKKyAgICAgICBUcmFja2VkQ29udHJvbGxl
clJvbGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJ
bnZhbGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKKyAgICAgICBUcmFja2VkQ29udHJvbGxl
clJvbGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
VHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKKyAgICAgICBUcmFj
a2VkQ29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5kCit9Owor
CisKKy8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVjdCAqLwor
c3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1EZXZp
Y2VUb0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFjZSBpbiBt
L3MKKyAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAgICAgIC8v
IGFuZ3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQorICAgICAgIEVUcmFja2luZ1Jlc3Vs
dCBlVHJhY2tpbmdSZXN1bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisKKyAgICAgICAv
LyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBmb3IgdGhp
cyBzcG90IGluIHRoZSBwb3NlIGFycmF5LgorICAgICAgIC8vIEl0IGNvdWxkIGdvIGZyb20gdHJ1
ZSB0byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCisgICAgICAgYm9vbCBi
RGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisvKiogSWRlbnRpZmllcyB3aGljaCBzdHlsZSBvZiB0
cmFja2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQorKiBmb3IgdGhlIHBv
c2VzIGl0IGlzIHJlcXVlc3RpbmcgKi8KK2VudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sK
KyAgICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8vIFBvc2Vz
IGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQorICAgICAgIFRy
YWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCBy
ZWxhdGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgorICAgICAg
IFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQb3NlcyBh
cmUgcHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlIGRyaXZl
ci4gIEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBzYW1lIGRy
aXZlci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307CisKKy8vIFJlZmVycyB0
byBhIHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwordHlwZWRlZiB1aW50NjRfdCBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdf
dDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bEludmFsaWRQ
cm9wZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191
bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0YWdzIHRvIHNldC9nZXQg
Y29tbW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMgY29uc3QgUHJvcGVydHlU
eXBlVGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Oworc3RhdGljIGNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisKK3N0YXRpYyBjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworc3RhdGlj
IGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7
CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRh
ZyA9IDIyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3I0UHJv
cGVydHlUYWcgPSAyMzsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IaWRk
ZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190
IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsK
KworCisvKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3BlcnR5IHRo
YXQgY2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2aWNlLiBNYW55IGZpZWxk
cyBhcmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCitlbnVtIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkKK3sKKyAgICAgICBQcm9wX0ludmFsaWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAg
IC8vIGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xhc3Nlcwor
ICAgICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwMDAsCisgICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJp
YWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDIs
CisgICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51
ZmFjdHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDUsCisg
ICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0Rvbmds
ZURlc2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVk
V2lyZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAorICAgICAg
IFByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMTAsCisgICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJhdHRl
cnlQZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAwIGlzIGVt
cHR5LCAxIGlzIGZ1bGwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4
MzQgICAgICAgICAgICAgID0gMTAxMywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWls
YWJsZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdh
cmVfTWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE1LAor
ICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAgICAgICAg
PSAxMDE2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDE3LAorICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2
NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAorICAgICAgIFByb3Bf
RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDE5LAorICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEsCisgICAg
ICAgUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRp
bmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWlu
c1Byb3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAorICAgICAg
IFByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAgID0gMTAy
NiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5n
VGFyZ2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAorICAgICAgIFByb3BfRGV2aWNlQ2xh
c3NfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjks
CisgICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0
cmluZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Gb3Jj
ZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lzdGVt
QnV0dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAorICAgICAgIFByb3Bf
UGFyZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDM0LAorCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2Vk
RGV2aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJv
bVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCisgICAgICAgUHJvcF9E
aXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9V
aW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKKyAgICAgICBQcm9wX1By
ZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA1
LCAKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3Bs
YXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOCwK
KyAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRW
ZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAxMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAgICAgICAg
ID0gMjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAgICAgICAg
ICAgID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9J
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAorICAgICAgIFBy
b3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAgICAgPSAy
MDE2LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCisgICAgICAgUHJvcF9E
aXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDE5LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisgICAgICAgUHJvcF9MZW5z
Q2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAy
MiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9h
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAorICAgICAgIFByb3Bf
TGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZp
cm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCisgICAgICAgUHJv
cF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAyOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgICAgICAg
ICAgICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0
ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3BfQXVkaW9GaXJtd2FyZVZl
cnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAorICAgICAgIFByb3BfQ2Ft
ZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIwMzMsCisg
ICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9
IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNf
RmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFs
bG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3LAorICAg
ICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFn
ZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MSwK
KyAgICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDQyLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUg
dG8gVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2
aWNlSWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKKyAgICAgICBQ
cm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwMSwKKyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZS
Q29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2YWx1ZSBp
cyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczJUeXBlX0lu
dDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0LCAvLyBS
ZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9w
X0F4aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBl
CisgICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRy
b2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUg
RVRyYWNrZWRDb250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1
bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisgICAgICAgUHJv
cF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAw
LAorICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAg
ICAgICAgICA9IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRv
bURlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAgICAgUHJvcF9U
cmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0LAorICAg
ICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0g
NDAwNSwKKyAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQg
YXJlIHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAgICAgICBQcm9w
X0ljb25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQgImljb25zIgorICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlv
biwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1MDAyLCAv
LyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhl
YWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8gUE5HIGZvciBzdGF0aWMg
aWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIg
Zm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lG
IGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwor
ICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAgICAgICAg
ICAgICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9u
LCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUw
MDYsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBm
b3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBh
dGhEZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywgLy8gUE5H
IGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0
cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZUFs
ZXJ0TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8gUE5HIGZvciBzdGF0
aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4
MzIgZm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIGJ5IGhl
bHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAgICAgIFByb3BfRGlzcGxh
eUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEw
MCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1
bmlxdWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAgICAgUHJvcF9JbnN0YWxs
UGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYw
MDEsCisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGRlYnVn
IGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKKyAgICAgICBQcm9w
X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAgID0gMTA5OTks
Cit9OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25nZXIgdGhhbiB0
aGlzIGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9wZXJ0eVN0cmlu
Z1NpemUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMgdGhhdCBvY2N1
ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNrZWRQcm9wZXJ0eUVycm9y
Cit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0Rl
dmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1
ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKKyAgICAgICBUcmFj
a2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0LCAv
LyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBldmVyKS4KKyAg
ICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgICAgICAgICAg
ICAgID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgICAg
ICAgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoICAg
ICAgID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qga25vd24geWV0
LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KKyAgICAgICBUcmFja2Vk
UHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBU
cmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgPSAxMSwKK307
CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBwYXJ0IG9mIHRo
ZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyogZnJhbWUgYnVmZmVyLiAq
Lworc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQgdU1pbiwgdk1pbjsK
KyAgICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNh
dGlvbiB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUgY29tcG9z
aXRvciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRGbGFncworeworICAg
ICAgIC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVmdCBhbmQg
cmlnaHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGFwcGxp
ZWQuCisgICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAgLy8gQXBwIHN1Ym1p
dHMgZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9ydGlvbiBh
bHJlYWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFwcGVhcgor
ICAgICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3Jy
ZWN0aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSByZXR1cm5l
ZCBieQorICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkgdG8gYXBw
bHkgdGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJlZm9yZSBj
YWxsaW5nIFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBs
aWVkID0gMHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFzc2VkIGlu
IGlzIGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5HTCkgdGhl
biBzZXQgdGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4MDIsCisK
KyAgICAgICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgwNCwKK307
CisKKy8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0byBJVlJD
b21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVm
b3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IFZSVnVsa2FuVGV4dHVy
ZURhdGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCisgICAgICAg
VmtEZXZpY2VfVCAqbV9wRGV2aWNlOworICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAqbV9wUGh5
c2ljYWxEZXZpY2U7CisgICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKKyAgICAgICBW
a1F1ZXVlX1QgKm1fcFF1ZXVlOworICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7
CisgICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBtX25TYW1w
bGVDb3VudDsKK307CisKKy8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEyIHRleHR1
cmVzIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9T
aHV0ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCitzdHJ1Y3QgRDNE
MTJUZXh0dXJlRGF0YV90Cit7CisgICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291cmNlOwor
ICAgICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOworICAgICAgIHVpbnQz
Ml90IG1fbk5vZGVNYXNrOworfTsKKworLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0g
b3IgdHJhY2tlZCBvYmplY3RzICovCitlbnVtIEVWUlN0YXRlCit7CisgICAgICAgVlJTdGF0ZV9V
bmRlZmluZWQgPSAtMSwKKyAgICAgICBWUlN0YXRlX09mZiA9IDAsCisgICAgICAgVlJTdGF0ZV9T
ZWFyY2hpbmcgPSAxLAorICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAg
ICBWUlN0YXRlX1JlYWR5ID0gMywKKyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKKyAg
ICAgICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKKyAgICAgICBWUlN0YXRlX1N0YW5kYnkgPSA2LAor
ICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK307CisKKy8qKiBUaGUgdHlwZXMg
b2YgZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1ldGVycyBt
ZWFuIGZvciBlYWNoIGV2ZW50IHR5cGUpICovCitlbnVtIEVWUkV2ZW50VHlwZQoreworICAgICAg
IFZSRXZlbnRfTm9uZSA9IDAsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0
ZWQgICAgICAgICAgICAgID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0
aXZhdGVkICAgICAgID0gMTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQg
ICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRl
cmFjdGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNl
VXNlckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCisgICAgICAgVlJFdmVudF9JcGRDaGFu
Z2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKKyAgICAgICBWUkV2
ZW50X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKKyAgICAgICBW
UkV2ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKKyAgICAgICBW
UkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwKKyAgICAg
ICBWUkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAsCisgICAg
ICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTEsCisKKyAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9C
dXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBkYXRhIGlz
IGNvbnRyb2xsZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJF
dmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLCAvLyBk
YXRhIGlzIGNvbnRyb2xsZXIKKworICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZS
RXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAxLCAv
LyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9G
b2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywgLy8gZGF0
YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVu
dF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwg
Ly8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9P
dmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRhdGEgaXMg
b3ZlcmxheSwgZ2xvYmFsIGV2ZW50CisKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJl
ZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRF
RAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAgICAgICAg
PSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECisgICAgICAgVlJFdmVudF9TY2Vu
ZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0YSBpcyBw
cm9jZXNzCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAgICAgICAg
ICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNh
dGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBUaGUg
QXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8gb3IgZnJv
bSB0aGUgY29tcG9zaXRvcikKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAgZ290IGFj
Y2VzcyB0byBkcmF3IHRoZSBzY2VuZQorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NoYW5nZWQg
ICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJF
dmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywgLy8g
ZGF0YSBpcyBwcm9jZXNzCisKKyAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgICAgICAg
ICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8g
cmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQorICAgICAgIFZSRXZlbnRf
U2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50IHRvIHRo
ZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9kZWwgdmlz
aWJpbGl0eQorCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MDAsCisgICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTAxLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVk
ICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFj
dGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRUaHVt
YlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5h
Z2VyIC0gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQg
ICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5hZ2Vy
IC0gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBtYW5hZ2Vy
CisgICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0b2FzdCAt
IGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAorICAgICAgIFZSRXZlbnRfSW1hZ2VMb2FkZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRvIG92ZXJs
YXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxsIGZpbmlz
aGVzIGxvYWRpbmcKKyAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUgZGFz
aGJvYXJkIHRvIGludm9rZSBpdAorICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVyIGlu
IHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRG
b2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4gSVZST3Zl
cmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAorICAgICAgIFZSRXZlbnRfT3Zl
cmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRvIGFuIG92
ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6U2V0Rm9j
dXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQorICAgICAgIFZSRXZlbnRfT3Zl
cmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
R3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3Vp
ZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90
VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3QgYnV0dG9u
IGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3JlZW5zaG90
CisgICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcgb3Ig
U2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKKyAgICAgICBWUkV2ZW50X0Rhc2hib2Fy
ZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKKworICAgICAgIC8vIFNjcmVlbnNo
b3QgQVBJCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0byBjb21w
b3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90CisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90VGFr
ZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50IGJ5IGNv
bXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIGJlZW4g
dGFrZW4KKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRpb24g
dGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KKyAgICAgICBWUkV2ZW50X1N1
Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNlbnQgYnkg
Y29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3
YXMgc3VibWl0dGVkCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2Fy
ZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQgdGhh
dCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKworICAgICAgIFZSRXZlbnRf
UHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCisKKyAgICAgICBWUkV2
ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMCwK
KyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA2MDEsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlv
biAgICAgICA9IDYwMiwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQgICAg
ICAgICAgICAgICAgICAgICA9IDYwMywKKworICAgICAgIFZSRXZlbnRfUXVpdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0YSBpcyBw
cm9jZXNzCisgICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2
ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcwMiwgLy8g
ZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2
ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDQs
IC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3duCisKKyAg
ICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAg
PSA4MDAsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgICAgICAg
ICAgICAgID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2Vk
ICAgICAgICAgICAgICA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2
ZUNoYW5nZWQgICAgICAgPSA4MDMsCisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAorCisgICAgICAgVlJFdmVudF9BdWRp
b1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAorCisgICAgICAgVlJFdmVu
dF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAorICAgICAg
IFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTEsCisg
ICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9IDg1MiwK
KyAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4NTMs
CisgICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4
NTQsCisgICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAg
ID0gODU1LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJFdmVu
dF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDExMDAsCisgICAg
ICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAgICAgICAgPSAx
MTAxLAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9h
cmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIsIC8vIFNlbnQg
d2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAgICAgICBWUkV2ZW50X0Fw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwKKyAgICAgICBW
UkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAgID0gMTMwMSwK
KyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQgICAgICAg
PSAxMzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbk1pbWVU
eXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCisgICAgICAgVlJFdmVu
dF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisKKyAg
ICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAgICAgID0g
MTQwMCwKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuICAgICAg
ICAgICAgICA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5k
c1Nob3duICAgICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0No
YXBlcm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2ZW50X1RyYWNr
ZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tl
ZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1h
bmNlVGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZv
cm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAgVlJFdmVudF9Q
ZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAgICAgICBWUkV2
ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1MCwKKyAg
ICAgICAKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGV2ZW50
cyBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNf
UmVzZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNp
ZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307CisKKworLyoqIExldmVs
IG9mIEhtZCBhY3Rpdml0eSAqLworZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreworICAgICAg
IGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAgICAgIGtfRURldmljZUFj
dGl2aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2Vy
SW50ZXJhY3Rpb24gPSAxLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVy
YWN0aW9uX1RpbWVvdXQgPSAyLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRi
eSA9IDMsCit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJRHMgKi8K
K2VudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAgICAgICAg
ICAgICAgICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAgICAgPSAx
LAorICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiwK
KyAgICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAzLAorICAg
ICAgIGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgICAgIGtf
RUJ1dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAgICAga19FQnV0dG9uX0RQ
YWRfRG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAgIAorICAgICAgIGtfRUJ1
dHRvbl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19FQnV0dG9uX0F4aXMwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19FQnV0dG9uX0F4aXMxICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19FQnV0dG9uX0F4aXMyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19FQnV0dG9uX0F4aXMzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19FQnV0dG9uX0F4aXM0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAvLyBhbGlhc2VzIGZvciB3
ZWxsIGtub3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQg
ICAgICAgPSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dl
ciAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1dHRvbl9EYXNoYm9hcmRf
QmFjayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19FQnV0dG9uX01heCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUgdWludDY0X3QgQnV0dG9u
TWFza0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9CisKKy8q
KiB1c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X0Nv
bnRyb2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9uSWQgZW51
bQorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBvdmVybGF5
IHNwYWNlICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgVlJNb3VzZUJ1dHRvbl9M
ZWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKKyAgICAgICBW
Uk1vdXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4
MDAwMiwKKyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVu
dHMgaW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAg
IGZsb2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVmdCBvZiB0
aGUgdGV4dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1vdXNlQnV0
dG9uIGVudW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwgc2Nyb2xs
IGluIG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAg
ZmxvYXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRoZSBwYWQg
dHJhdmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCisgICAgICAg
dWludDMyX3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBtb3VzZSBpbnB1dCBtb2Rl
IHlvdSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVudHMgYXJl
IG9ubHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0aGUgdG91Y2hwYWQgKG9y
IGp1c3QgcmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92
ZV90Cit7CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVjdGVkIG9u
IHRoZSB0b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworCisgICAgICAgLy8gSG93
IGxvbmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKKyAgICAgICBmbG9hdCBm
bFNlY29uZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGljYXRlIHRo
ZSBzdGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNpYyBzd2lw
ZSBzdHVmZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZhbHVl
WUZpcnN0OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRpbmF0ZSB3
aXRob3V0IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0
IGZWYWx1ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRzLiBEZXRh
aWxzIHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0cnVjdCBWUkV2ZW50X05v
dGlmaWNhdGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7CisgICAgICAgdWlu
dDMyX3Qgbm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3IgZXZlbnRzIGFib3V0IHBy
b2Nlc3NlcyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgdWludDMyX3Qg
cGlkOworICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29sIGJGb3JjZWQ7Cit9Owor
CisKKy8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBW
UkV2ZW50X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cit9Owor
CisKKy8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBW
UkV2ZW50X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8vIEVWUlN0
YXRlIGVudW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCitzdHJ1Y3Qg
VlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAgICAgIC8v
IFVwIHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2NF90IHVVc2VyVmFsdWU7
ICAgICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKK307CisKK3N0cnVj
dCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfTsKKworc3RydWN0
IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25QcmV2aW91c1VuaXZl
cnNlOworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKK307CisKKy8qKiBOb3Qg
YWN0dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRf
dAoreworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50NjRfdCByZXNlcnZl
ZDE7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVp
bnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJv
UG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK307CisKK3N0
cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAg
ICAgICB1aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dy
ZXNzX3QKK3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0cnVjdCBWUkV2ZW50X0Fw
cGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMy
X3QgdW5BcmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZh
Y2VfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3Qg
blZpc3VhbE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90Cit7Cisg
ICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpWUk1lc3Nh
Z2VPdmVybGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAor
eworICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOworICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RFISEhIElmIHlvdSBjaGFu
Z2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgKi8K
K3R5cGVkZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7Cisg
ICAgICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAgICAgICBWUkV2ZW50X01v
dXNlX3QgbW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7CisgICAgICAgVlJF
dmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5v
dGlmaWNhdGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFZS
RXZlbnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2Fy
ZDsKKyAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90
IGNoYXBlcm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNl
VGVzdDsKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAg
ICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OworICAg
ICAgIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgVlJFdmVudF9TY3Jl
ZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAgVlJFdmVudF9BcHBs
aWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAgIFZSRXZlbnRfRWRpdGlu
Z0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZSRXZlbnRfTWVzc2FnZU92
ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3QgcHJvcGVy
dHk7Cit9IFZSRXZlbnRfRGF0YV90OworCisvKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2
ZXIgdG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3QgVlJFdmVudF90Cit7Cisg
ICAgICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQorICAgICAgIFRy
YWNrZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBmbG9hdCBldmVu
dEFnZVNlY29uZHM7CisgICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhl
IHN0cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZSRXZlbnRfRGF0YV90IGRh
dGE7Cit9OworCisKKy8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwgKG9yIGRl
cHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKKyogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgpIGtpbGxz
IG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCisqIFRoaXMgbWVz
aCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVyIGRpc3Rv
cnRpb24uIAorKgorKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxlIGFyZWEg
bWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCisqIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3VudCB3aWxs
IGJlIDAuICovCitzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAgICAgIGNvbnN0IEhtZFZl
Y3RvcjJfdCAqcFZlcnRleERhdGE7CisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50Owor
fTsKKworCitlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVh
TWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEs
CisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAorCisgICAgICAga19lSGlk
ZGVuQXJlYU1lc2hfTWF4ID0gMywKK307CisKKworLyoqIElkZW50aWZpZXMgd2hhdCBraW5kIG9m
IGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5cGUgCisq
IHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3BfQXhpczBU
eXBlX0ludDMyICsgbiApOworKi8KK2VudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAg
ICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNf
VHJhY2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAg
ICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdnZXIgZGF0
YSBpcyBpbiB0aGUgWCBheGlzCit9OworCisKKy8qKiBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91
dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLworc3RydWN0IFZSQ29udHJvbGxlckF4aXNf
dAoreworICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lz
dGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRyaWdnZXJz
IHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KKyAgICAgICBmbG9hdCB5OyAvLyBSYW5nZXMgZnJv
bSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdheXMgMC4w
IGZvciB0cmlnZ2Vycy4KK307CisKKworLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0aGUgY29u
dHJvbGxlciBzdGF0ZSAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9sbGVyU3Rh
dGVBeGlzQ291bnQgPSA1OworCisKKy8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEgY29udHJv
bGxlciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCitzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGUw
MDFfdAoreworICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlvdXIgcHJp
b3IgY2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFuZ2VkIHNp
bmNlIAorICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIHBy
b2Nlc3MgaXQKKyAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKKworICAgICAgIC8vIGJpdCBm
bGFncyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQgdG8gdHVy
biBhbiBJRCBpbnRvIGEgbWFzaworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAg
ICAgICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisKKyAgICAgICAvLyBBeGlzIGRhdGEgZm9y
IHRoZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cworICAgICAgIFZSQ29udHJvbGxlckF4aXNf
dCByQXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOworfTsKKworCit0eXBlZGVm
IFZSQ29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKKworCisvKiogZGV0
ZXJtaW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHZhcmlv
dXMgZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNvbnRyb2xsZXJFdmVu
dE91dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAw
LAorICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9OworCisKKwor
LyoqIENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxl
Cit7CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAg
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAgQ09MTElTSU9OX0JP
VU5EU19TVFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5D
RUQsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisgICAgICAgQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24g
dG8gY3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3NpdG9yICov
CitzdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBz
aXplOyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisgICAgICAgYm9vbCBj
dXJ2ZWQsIGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFscGhhOwor
ICAgICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOworICAgICAgIGZs
b2F0IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBIbWRNYXRyaXg0NF90
IHRyYW5zZm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZSIG92ZXJs
YXkgKi8KK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25z
dCBWUk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworCisvKiog
RXJyb3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLworZW51bSBFVlJPdmVy
bGF5RXJyb3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5r
bm93bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAorICAgICAgIFZST3Zl
cmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAg
ICAgIFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAgICA9IDEz
LCAvLyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUgbWF4aW11
bSBudW1iZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJp
bGl0eVR5cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5VG9v
TG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAgIFZST3ZlcmxheUVy
cm9yX05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCisgICAgICAg
VlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAgICAgICAg
ICAgICA9IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlICAg
ICAgICAgICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIg
ICAgICAgICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVycm9yX1RodW1ibmFp
bENhbnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3ZlcmxheUVycm9yX0FycmF5
VG9vU21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZST3ZlcmxheUVycm9y
X1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAgICAgIFZST3Zlcmxh
eUVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKKyAgICAgICBW
Uk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAgPSAyNSwK
KyAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAgICAgICAg
PSAyNiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRp
dmVzICAgICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSAg
ICAgICAgICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1ZXMgdG8gcGFzcyBp
biB0byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdpbGwgCisq
IGRyYXcgYSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAg
VlJBcHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVyIGtpbmQg
b2YgYXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRyaWVzIAor
ICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAgLy8gQXBw
bGljYXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zl
cmxheSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0cyB3aXRo
IG92ZXJsYXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAgICAgLy8g
QXBwbGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFscmVhZHkg
cnVubmluZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBpZiBldmVy
eXRoaW5nIGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwgICAg
ICAgICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVycy4gVGhl
IGFwcGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2Vz
IChsaWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFyZHdhcmUu
CisgICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNlcnZlZCBm
b3IgdnJtb25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwvLyBS
ZXNlcnZlZCBmb3IgU3RlYW0KKworICAgICAgIFZSQXBwbGljYXRpb25fTWF4Cit9OworCisKKy8q
KiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmlybXdhcmVFcnJvcgorewor
ICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUkZpcm13YXJlRXJyb3Jf
U3VjY2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAorfTsKKworCisv
KiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0gRVZSTm90aWZpY2F0aW9u
RXJyb3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAgIFZSTm90
aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9
OworCisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCisKKy8vIFBsZWFz
ZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9wZXIudmFs
dmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhlbHAKK2Vu
dW0gRVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9IDAsCisg
ICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgID0gMTAxLAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMDIs
CisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQg
ICAgICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVy
ZmFjZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJy
b3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDksCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9QYXRo
UmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTEyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3Jp
dGFibGUgICAgICAgPSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZh
aWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
UmV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNSwgLy8g
VXNlZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAgID0gMTE2
LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhpdC4gVGhlIHVz
ZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Fub3RoZXJB
cHBMYXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE4LCAKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDExOSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTIwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJG
b3JCYWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90
U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIzLAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEyNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAgICAgICAg
ICAgICAgICAgICAgID0gMTI1LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQ
cmVzZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUk1v
bml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAxMjgsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0gMTI5LCAK
KyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAgICAgICAg
ICAgID0gMTMwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRv
Z0FwcHMgPSAxMzEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5T
ZXR0aW5ncyA9IDEzMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91
bmQgICAgICAgICAgICAgID0gMTMzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9h
cmRTdGFydHVwRmFpbGVkICAgICAgID0gMTM0LAorCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVy
X0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwKKyAg
ICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAgICAgID0g
MjAyLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAgICAgICAg
ICAgICA9IDIwMywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSAg
ICAgICAgICAgICAgPSAyMDQsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZEluVXNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZl
cl9Ob3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKKyAgICAgICBWUkluaXRFcnJvcl9E
cml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAorICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJy
b3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8v
IFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCAgICAgICAgPSAy
MTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKKyAgICAgICBWUklu
aXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBWUklu
aXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwKKworICAgICAgIFZSSW5p
dEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9IDMwMCwKKyAgICAgICBW
UkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAxLAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAgPSAzMDIs
CisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAgID0gMzAz
LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICA9IDMwNCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwNSwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9z
aXRvckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Nv
bXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9y
X0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAg
VlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNDAwLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2Fy
ZVJlcXVpcmVkICAgICAgID0gNDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKwor
ICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVz
UnVudGltZSA9IDEwMDAsCisKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAxLAor
ICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVz
dENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMTAzLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZp
Z1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAorICAgICAgIFZSSW5p
dEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDExMDUsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9IDExMDYs
CisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRGaXJt
d2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOCwKKyAg
ICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJE
YXRhU3RhcnQgICAgICAgPSAxMTA5LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDExMTAsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNz
UmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTExMiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdG
YWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAorCisgICAgICAgVlJJbml0RXJy
b3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCit9OworCitlbnVtIEVW
UlNjcmVlbnNob3RUeXBlCit7CisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwKKyAg
ICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5CisgICAgICAg
VlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfQ3Vi
ZW1hcCA9IDMsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAorICAg
ICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Cit9OworCitlbnVtIEVWUlNj
cmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcworeworICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5h
bWVzX1ZSID0gMSwKK307CisKK2VudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAg
ICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAgID0gMTAw
LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAg
ID0gMTAxLCAgICAgICAKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVI
ZWFkZXJWZXJzaW9uICA9IDEwMiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRPZkhh
bmRsZXMgICAgICAgICAgICAgICA9IDEwMywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9J
UENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKKyAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKKyAgICAgICBWUlRy
YWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywKKyAgICAg
ICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9IDEwOCwK
KyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAgICAgICA9
IDEwOSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVyZUhh
bmRsZSA9IDExMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4
dHVyZUlkICAgICA9IDExMSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRUZXh0
dXJlRmFpbHVyZSAgICAgICA9IDExMiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0Zy
YW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKK307CisKK2VudW0gRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZQoreworICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhbWVy
YSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgorICAgICAgIFZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAgICAgICAv
LyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVnaW9uIHdp
dGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFuZ2VzIHNo
b3J0bHkuCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRl
ZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52YWxpZCBy
ZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCByZWdpb25z
LgorICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKK307CisKK3R5cGVkZWYgdWludDY0X3Qg
VHJhY2tlZENhbWVyYUhhbmRsZV90OworI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FNRVJBX0hB
TkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKKworc3RydWN0IENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZTsKKworICAgICAgIHVpbnQzMl90IG5XaWR0aDsKKyAgICAgICB1aW50
MzJfdCBuSGVpZ2h0OworICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOworCisgICAgICAg
dWludDMyX3QgbkZyYW1lU2VxdWVuY2U7CisKKyAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90IHN0
YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Cit9OworCisvLyBTY3JlZW5zaG90IHR5cGVzCit0eXBl
ZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90
IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7CisKKyNwcmFnbWEgcGFjayggcG9wICkK
KworLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwKKyNpZiBk
ZWZpbmVkKF9XSU4zMikKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUgVlJfSU5URVJG
QUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyNlbHNlCisjZGVmaW5lIFZS
X0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCisjZW5kaWYKKwor
I2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8IGRlZmlu
ZWQoX19BUFBMRV9fKQorCisjaWZkZWYgVlJfQVBJX0VYUE9SVAorI2RlZmluZSBWUl9JTlRFUkZB
Q0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vs
c2UKKyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCisjZW5kaWYKKworI2Vsc2UKKyNl
cnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgorI2VuZGlmCisKKworI2lmIGRlZmluZWQoIF9X
SU4zMiApCisjZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKKyNlbHNlCisjZGVmaW5lIFZSX0NB
TExUWVBFIAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIHZyCisKKyNlbmRpZiAvLyBfSU5DTFVE
RV9WUlRZUEVTX0gKKworCisvLyB2cmFubm90YXRpb24uaAorI2lmZGVmIEFQSV9HRU4KKyMgZGVm
aW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFUVFIgKSkp
CisjZWxzZQorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQorI2VuZGlmCisKKyNkZWZpbmUg
VlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAiOyIgKQor
I2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQorI2RlZmlu
ZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkKKyNkZWZp
bmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiApCisjZGVm
aW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9DTEFOR19B
VFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAjUEFSQU1T
ICI7IiApCisjZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRS
KCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZpbmUgVlJfQVJSQVlfQ09V
TlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkK
KyNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19BVFRSKCAi
YXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCisjZGVmaW5lIFZSX0JVRkZF
Ul9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NPVU5URVIg
IjsiICkKKyNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRS
KCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9TVFJJ
TkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6IiAjQ09V
TlRFUiAiOyIgKQorCisvLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCisjaWZuZGVmIF9WUlRSQUNL
RURDQU1FUkFUWVBFU19ICisjZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFUWVBFU19IIAorCituYW1l
c3BhY2UgdnIKK3sKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVf
XykgCisgICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVu
dCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRvCisgICAgICAgLy8gNCBt
ZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3aWxsIG9u
bHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCisgICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJzaW9uIG9m
IGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMgc2V0IHRv
CisgICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBhY2soNCkg
b3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgorICAgICAgIC8vIFRoZSA2NC1iaXQgc3Ry
dWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBhY2tpbmcg
Zm9yIGVhY2ggcGxhdGZvcm0uCisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbHNl
CisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKyNlbmRpZgorCitlbnVtIEVDYW1lcmFW
aWRlb1N0cmVhbUZvcm1hdAoreworICAgICAgIENWU19GT1JNQVRfVU5LTk9XTiA9IDAsCisgICAg
ICAgQ1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAxMCBiaXRzIHBlciBwaXhl
bAorICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAgICAvLyAxMiBiaXRzIHBl
ciBwaXhlbAorICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAgICAgICAgICAgLy8gMjQg
Yml0cyBwZXIgcGl4ZWwKKyAgICAgICBDVlNfTUFYX0ZPUk1BVFMKK307CisKK2VudW0gRUNhbWVy
YUNvbXBhdGliaWxpdHlNb2RlCit7CisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfREVG
QVVMVCA9IDAsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfNjRLX0RNQSwKKyAgICAg
ICBDQU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAorICAgICAgIENBTUVSQV9DT01QQVRf
TU9ERV9CVUxLXzhLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUyRlBTLAor
ICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0lTT180OEZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ2RlBTLAor
ICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0lTT180MkZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQwRlBTLAor
ICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0lTT18zMEZQUywKKyAgICAgICBNQVhfQ0FNRVJBX0NPTVBBVF9NT0RFUworfTsKKwor
I2lmZGVmIF9NU0NfVkVSCisjZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FMSUdOKCB4ICkgX19kZWNs
c3BlYyggYWxpZ24oIHggKSApCisjZWxzZQorI2RlZmluZSBWUl9DQU1FUkFfREVDTF9BTElHTigg
eCApIC8vCisjZW5kaWYKKworI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1FX1NIQVJFRF9IQU5ETEVT
ICAgICAgIDQKKworVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1Y3QgQ2FtZXJhVmlkZW9T
dHJlYW1GcmFtZV90Cit7CisgICAgICAgRUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG1fblN0cmVh
bUZvcm1hdDsKKworICAgICAgIHVpbnQzMl90IG1fbldpZHRoOworICAgICAgIHVpbnQzMl90IG1f
bkhlaWdodDsKKworICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNpemU7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24gc3RyZWFtIGZvcm1hdCwg
d2lkdGgsIGhlaWdodAorCisgICAgICAgdWludDMyX3QgbV9uRnJhbWVTZXF1ZW5jZTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4g
c3RyZWFtIHN0YXJ0cy4KKworICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckluZGV4OyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXMgd2hpY2ggYnVm
ZmVyIHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAorICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckNv
dW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvdGFsIG51
bWJlciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKKworICAgICAgIHVpbnQzMl90IG1fbkV4cG9zdXJl
VGltZTsKKworICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0YW1wOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVkIHRpbWUgc3RhbXAgcGVy
IGRyaXZlciBjZW50cmljIHRpbWUgYmFzZQorICAgICAgIHVpbnQzMl90IG1fbklTUFJlZmVyZW5j
ZVRpbWVTdGFtcDsKKyAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRlcjsKKworICAgICAgIHVp
bnQzMl90IG1fbkNhbVN5bmNFdmVudHM7CisgICAgICAgdWludDMyX3QgbV9uSVNQU3luY0V2ZW50
czsKKworICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1RpbWU7CisKKyAgICAgICBk
b3VibGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4gSW4gc2Vjb25kcy4KKyAg
ICAgICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOworCisgICAgICAgZG91YmxlIG1fZmxG
cmFtZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAgICAgLy8gSW4gVVNCIHRp
bWUsIHZpYSBBdXhFdmVudAorICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9TZXJ2
ZXJSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1lIHdpdGhpbiB0aGUgc2Vy
dmVyCisgICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3NfU2VydmVyQWJzb2x1dGU7
ICAgICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZlcgorICAgICAgIGRvdWJs
ZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEF0
IHRoZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdhcyBleHBvc2VkL2NhcHR1
cmVkLgorCisgICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7CisKKyAgICAgICBUcmFj
a2VkRGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsgICAgICAgLy8gU3Vw
cGxpZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQgY2FtZXJhCisKKyAgICAg
ICB1aW50NjRfdCBtX3BJbWFnZURhdGE7Cit9OworCisjcHJhZ21hIHBhY2soIHBvcCApCisKK30K
KworI2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICisvLyBpdnJzZXR0aW5ncy5oCitu
YW1lc3BhY2UgdnIKK3sKKyAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKKyAgICAgICAgICAgICAgVlJT
ZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJv
cl9Xcml0ZUZhaWxlZCA9IDIsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9SZWFkRmFp
bGVkID0gMywKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZhaWxlZCA9
IDQsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1
bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9lcyBub3Qg
YXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3QgYmVlbiBz
ZXQKKyAgICAgICB9OworCisgICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgc2V0dGlu
Z3Mga2V5CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5nc0tleUxl
bmd0aCA9IDEyODsKKworICAgICAgIGNsYXNzIElWUlNldHRpbmdzCisgICAgICAgeworICAgICAg
IHB1YmxpYzoKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0aW5nc0Vy
cm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKKworICAgICAg
ICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3JjZSBvciBz
ZXR0aW5ncyBkaXJ0eSkKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJvb2wgYkZv
cmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwor
CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdz
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRp
bmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxw
dHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29uc3QgY2hh
ciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZsVmFsdWUs
IEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAg
ICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBj
aGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFVzZXJzIG9m
IHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVmYXVsdC52
cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQorICAgICAgICAg
ICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGlyZWN0b3J5
LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIiCisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51
bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQzMiggY29u
c3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRp
bmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hT
ZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaFNlY3Rp
b24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNo
VmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBu
dWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTZWN0aW9u
KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVs
bHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUluU2VjdGlv
biggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVW
UlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgIH07CisKKyAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7CisKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gc3RlYW12ciBrZXlzCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JlcXVpcmVI
bWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERyaXZlciI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZEht
ZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNz
UGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCA9ICJlbmFibGVE
aXN0b3J0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJk
aXNwbGF5RGVidWdZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRv
QWxsQXBwcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tn
cm91bmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9C
YWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2pl
Y3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9C
YWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5k
RG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3Jp
ZENvbG9yIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
UGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFn
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2
YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jv
b2wgPSAiZGlyZWN0TW9kZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9k
ZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdT
cGVha2VycyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJk
WWF3T2Zmc2V0RGVncmVlcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Q
b3dlck1hbmFnZW1lbnQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJn
ZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0
aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxs
b3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2pl
Y3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9G
b3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJy
b3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWly
cm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJv
bUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExh
dW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBM
YXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURh
c2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJl
bmFibGVIb21lQXBwIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFw
cCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0N5Y2xl
QmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVT
ZWMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXRh
aWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5cworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0g
ImRyaXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlv
bl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRp
c2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0
aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2Vf
REJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFs
TnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfTW9k
ZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5k
b3dZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93
V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50
MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9u
c19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNw
bGF5RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAv
LyB1c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09u
VG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0gIk1pbmlt
aXplVG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJ
bnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0lu
dCA9ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
ICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0
dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAi
VHV0b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0
TGVmdFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRf
T2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGlu
ZyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gcGVyZiBrZXlz
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAi
cGVyZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZf
SGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5I
TUQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlP
bmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0
b3JlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRp
bWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0
YSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gY29sbGlzaW9u
IGJvdW5kcyBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyID0gIkNv
bGxpc2lvbkJvdW5kc1N0eWxlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJv
dW5kc0dyb3VuZFBlcmltZXRlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJv
dW5kc0NlbnRlck1hcmtlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1Bs
YXlTcGFjZU9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxp
c2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3Rh
bmNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJv
dW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29s
b3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFC
X0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9
ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gY2FtZXJhIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxl
Q2FtZXJhIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9F
bmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1l
cmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3Vu
ZHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJs
ZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2Ft
bWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJj
YW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29s
b3JHYW1tYUIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJh
X0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0
aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gYXVkaW8ga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJv
blBsYXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X2F1ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2
aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJv
ZmZQbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9hdWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAi
dml2ZUhETUlHYWluIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAv
LyBwb3dlciBtYW5hZ2VtZW50IGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9mZk9uRXhp
dCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2Zm
U2NyZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1Rp
bWVvdXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9G
bG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAi
YXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9h
cmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKKwor
ICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBtb2RlbCBza2luIGtleXMK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9TZWN0aW9u
ID0gIm1vZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
IC8vIGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJpdmVyXzxu
YW1lPiBzZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ecml2
ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworLy8gaXNl
cnZlcnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAorbmFtZXNwYWNlIHZyCit7CisKKworc3RydWN0IERy
aXZlclBvc2VRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdywgeCwgeSwgejsKK307CisK
K3N0cnVjdCBEcml2ZXJQb3NlX3QKK3sKKyAgICAgICAvKiBUaW1lIG9mZnNldCBvZiB0aGlzIHBv
c2UsIGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhlIHBvc2UsCisgICAgICAg
ICogcmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVkKCkgY2FsbCBtYWRlIGJ5
IHRoZSBkcml2ZXIuCisgICAgICAgICovCisgICAgICAgZG91YmxlIHBvc2VUaW1lT2Zmc2V0Owor
CisgICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVkIGJ5IGEgZHJpdmVyCisg
ICAgICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0ZW0gZGlmZmVyZW50Cisg
ICAgICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0LCB5KyB1cCwgeisgYmFj
ay4KKyAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3VhbGx5IHRyYWNraW5nIHRo
ZSAiaGVhZCIgcG9zaXRpb24sCisgICAgICAgICogYnV0IGluc3RlYWQgYW4gaW50ZXJuYWwgSU1V
IG9yIGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCisgICAgICAgICogVGhlIGZv
bGxvd2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25zIGFuZCBvcmllbnRhdGlv
bnMKKyAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2ZXIgd29ybGQgc3BhY2Us
CisgICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJpdmVyIGxvY2FsIGJvZHkg
c3BhY2UuIAorICAgICAgICAqCisgICAgICAgICogV2UgbWFpbnRhaW4gdGhlIGRyaXZlciBwb3Nl
IHN0YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwKKyAgICAgICAgKiBzbyB3
ZSBjYW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQgaGF2aW5nIHRvCisgICAg
ICAgICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIncyBhbmd1bGFyIGFjY2Vs
ZXJhdGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAorICAgICAgICAqIGFuZCBpcyBpbnN0
ZWFkIGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2YgYW5ndWxhciB2ZWxvY2l0
eS4KKyAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxhciBhY2NlbGVyYXRpb24g
dmFsdWVzLCB3aGljaCBhcmUgYWxzbworICAgICAgICAqIGxhZ2dlZCBkdWUgdG8gdGhlIGZpbHRl
cmluZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0YWJsZSBsZXZlbC4KKyAg
ICAgICAgKi8KKyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3JsZEZyb21Ecml2ZXJSb3Rh
dGlvbjsKKyAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJhbnNsYXRpb25bIDMgXTsK
KworICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21IZWFkUm90YXRpb247Cisg
ICAgICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25bIDMgXTsKKworICAgICAg
IC8qIFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJhZGlhbnMuICovCisgICAg
ICAgLyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZlcmVuY2UgaW4gZHJpdmVy
IHdvcmxkIHNwYWNlCisgICAgICAgKiArWzBdICh4KSBpcyByaWdodAorICAgICAgICogK1sxXSAo
eSkgaXMgdXAKKyAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKKyAgICAgICAqLworICAgICAg
IGRvdWJsZSB2ZWNQb3NpdGlvblsgMyBdOworCisgICAgICAgLyogVmVsb2NpdHkgb2YgdGhlIHBv
c2UgaW4gbWV0ZXJzL3NlY29uZCAqLworICAgICAgIGRvdWJsZSB2ZWNWZWxvY2l0eVsgMyBdOwor
CisgICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNvbmQgKi8K
KyAgICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07CisKKyAgICAgICAvKiBPcmllbnRh
dGlvbiBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0ZXJuaW9uICovCisgICAg
ICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247CisKKyAgICAgICAvKiBBbmd1bGFyIHZl
bG9jaXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCisgICAgICAgKiByZXByZXNlbnRhdGlv
bi4gVGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKKyAgICAgICAqIHJvdGF0aW9uIGFuZCB0
aGUgbWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKKyAgICAgICAqIHRoYXQgYXhpcyBpbiBy
YWRpYW5zL3NlY29uZC4gKi8KKyAgICAgICBkb3VibGUgdmVjQW5ndWxhclZlbG9jaXR5WyAzIF07
CisKKyAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBheGlzLWFu
Z2xlIAorICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhlIGFuZ2xl
IG9mCisgICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5nbGUgYXJv
dW5kCisgICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmReMi4gKi8KKyAgICAgICBk
b3VibGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOworCisgICAgICAgRVRyYWNraW5nUmVz
dWx0IHJlc3VsdDsKKworICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCB3aWxs
RHJpZnRJbllhdzsKKyAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1vZGVsOworICAgICAgIGJv
b2wgZGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBzaW5nbGUgdHJhY2tlZCBk
ZXZpY2UgaW4gYSBkcml2ZXIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK2NsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCit7CitwdWJsaWM6CisKKyAgICAg
ICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBNYW5h
Z2VtZW50IE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFuIEhNRCBpcyByZXR1cm5l
ZCB0byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCisgICAgICAgKiBjYWxsZWQg
YmVmb3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1lbW9yeSBhbmQgcHJvY2Vz
c29yIHVzZSBieSB0aGUKKyAgICAgICAqIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyIG9iamVj
dCBzaG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMgYWN0aXZhdGVkLgorICAg
ICAgICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCB1bnRpbCBE
ZWFjdGl2YXRlIGlzIGNhbGxlZCwgYnV0CisgICAgICAgKiBzaG91bGQgbm90IGJlIHVzZWQgYWZ0
ZXIgdGhhdCBwb2ludC4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBBY3RpdmF0ZSgg
dWludDMyX3QgdW5PYmplY3RJZCApID0gMDsKKworICAgICAgIC8qKiBUaGlzIGlzIGNhbGxlZCB3
aGVuIFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBIbWQgYmVpbmcgdGhlIGFj
dGl2ZSBkaXNwbGF5CisgICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWluZyB0aGUgYWN0aXZlIGRp
c3BsYXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1lbW9yeQorICAgICAgICog
YW5kIHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0ZWQgKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKKworICAgICAgIC8qKiBIYW5kbGVzIGEgcmVx
dWVzdCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGludG8gc3RhbmRieSBtb2Rl
LiBXaGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAqLworICAgICAgIHZpcnR1
YWwgdm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7CisKKyAgICAgICAvKiogUmVxdWVzdHMgYSBjb21w
b25lbnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1zcGVjaWZpYyBmdW5jdGlv
bmFsaXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAorICAgICAgICogaWYgdGhlIHJl
cXVlc3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1l
QW5kVmVyc2lvbiApID0gMDsKKworICAgICAgIC8qKiBBIFZSIENsaWVudCBoYXMgbWFkZSB0aGlz
IGRlYnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2YWxpZCByZXF1ZXN0cyBp
cyBlbnRpcmVseQorICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQgdGhlIGNsaWVudCB0byBm
aWd1cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZS4gUmVzcG9uc2VzIHRo
YXQKKyAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBidWZmZXIgc2hv
dWxkIGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCisgICAgICAgdmlydHVhbCB2
b2lkIERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNoUmVzcG9u
c2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOworCisgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gVHJhY2tp
bmcgTWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9IDA7Cit9OworCisKKwor
c3RhdGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyX1ZlcnNpb24gPSAi
SVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKKworfQorLy8gaXZyZGlzcGxheWNvbXBv
bmVudC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoZSBkaXNwbGF5IGNvbXBv
bmVudCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQorICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBJVlJEaXNwbGF5Q29tcG9uZW50
CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gRGlzcGxheSBNZXRo
b2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3aW5kb3cg
bmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1aW50MzJf
dCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBSZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5nIHRoZSBkZXNrdG9wLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCApID0gMDsK
KworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlzIHJlYWwg
YW5kIG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgSXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTdWdn
ZXN0ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQgdGhlIGRp
c3RvcnRpb24gcHVsbHMgZnJvbS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFJl
Y29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpw
bkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3BvcnQgaW4g
dGhlIGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRpb24gaW50
byAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoIEVW
UkV5ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0
aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBUaGUgY29t
cG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRyaXggaW4g
Y2FzZSB5b3VyCisgICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29tZXRoaW5n
IGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0
UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpwZlJpZ2h0
LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKworICAgICAgICAgICAgICAv
KiogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZvciB0aGUg
c3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4KKyAgICAgICAg
ICAgICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAxLDEgaW4g
dGhlIGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURpc3RvcnRpb24oIEVWUkV5
ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7CisKKyAgICAgICB9OworCisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEaXNw
bGF5Q29tcG9uZW50XzAwMiI7CisKK30KKworLy8gaXZyZHJpdmVyZGlyZWN0bW9kZWNvbXBvbmVu
dC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoaXMgY29tcG9uZW50IGlzIHVz
ZWQgZm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUgZW50aXJlbHkgb24gdGhl
aXIgb3duCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRob3V0IGFsbG93aW5nIHRo
ZSBWUiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4gQ2hhbmNlcyBhcmUgeW91
IGRvbid0CisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGltcGxlbWVudCB0
aGlzIGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSRHJpdmVyRGlyZWN0TW9kZUNv
bXBvbmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gRGlyZWN0
IG1vZGUgbWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0byBPY3VsdXMgY29tcG9z
aXRvciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcgdGhp
cyBtZXRob2QuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDcmVhdGVTd2FwVGV4dHVy
ZVNldCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1aW50MzJfdCB1bldpZHRo
LCB1aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCggKnBTaGFyZWRU
ZXh0dXJlSGFuZGxlcyApWyAzIF0gKSB7fQorCisgICAgICAgICAgICAgIC8qKiBVc2VkIHRvIHRl
eHR1cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQuICBPbmx5IG9uZSBvZiB0
aGUgc2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ryb3kgdGhlIGVudGlyZSBz
ZXQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95U3dhcFRleHR1cmVTZXQo
IHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZSApIHt9CisKKyAg
ICAgICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUgc2V0cyBmb3IgYSBnaXZl
biBwcm9jZXNzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQorCisgICAgICAgICAgICAgIC8qKiBBZnRl
ciBQcmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBuZXh0IGluZGV4IHRvIHVz
ZSBmb3IgcmVuZGVyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0TmV4dFN3
YXBUZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVy
ZUhhbmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0gKSB7fQorCisgICAgICAg
ICAgICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9yIHRoaXMgZnJhbWUuICBP
bmUgc2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJlcyBtdXN0IGJlIGNyZWF0
ZWQKKyAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVyZVNldCBhbmQgc2hvdWxk
IGJlIGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9uY2UgYWxsIGxheWVycyBo
YXZlIGJlZW4gc3VibWl0dGVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU3VibWl0
TGF5ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZXNbIDIg
XSwgY29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClbIDIgXSwgY29uc3QgdnI6
OkhtZE1hdHJpeDM0X3QgKnBQb3NlICkge30KKworICAgICAgICAgICAgICAvKiogU3VibWl0cyBx
dWV1ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
UHJlc2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4dHVyZSApIHt9CisKKyAg
ICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckRpcmVjdE1vZGVD
b21wb25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50XzAwMiI7CisK
K30KKworLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKworCisg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IFB1cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRyYWNrZWQgZGV2aWNlLgor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBj
bGFzcyBJVlJDb250cm9sbGVyQ29tcG9uZW50CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKwor
ICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBHZXRz
IHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0ZSggKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBwcm9wZXJ0
eSBpcyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSggdWludDMyX3QgdW5BeGlz
SWQsIHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyApID0gMDsKKworICAgICAg
IH07CisKKworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNvbnRyb2xsZXJDb21wb25l
bnRfVmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7CisKK30KKy8vIGl2cmNh
bWVyYWNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIGNsYXNzIElDYW1l
cmFWaWRlb1NpbmtDYWxsYmFjaworICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisgICAgICAgICAg
ICAgIHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCkgPSAwOworICAgICAg
IH07CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
ICAgICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBj
bGFzcyBJVlJDYW1lcmFDb21wb25lbnQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAg
ICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg
ICAgICAgLy8gQ2FtZXJhIE1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1l
cmFGcmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZpZGVvU3Ry
ZWFtRm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKyAg
ICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVmZmVyaW5nUmVxdWlyZW1l
bnRzKCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90ICpwRnJhbWVCdWZmZXJE
YXRhU2l6ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVyYUZyYW1l
QnVmZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipwcEZyYW1lQnVmZmVycywg
dWludDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVDYW1lcmFWaWRlb1N0cmVh
bUZvcm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwg
dnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCgp
ID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0VmlkZW9TdHJlYW0oKSA9IDA7
CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJlYW0oKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZlKCBib29sICpwYlBhdXNl
ZCwgZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGNv
bnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVvU3RyZWFtRnJhbWUoKSA9
IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlkZW9TdHJlYW1GcmFtZSgg
Y29uc3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1lSW1hZ2UgKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUoIGJvb2wgYkVuYWJsZSAp
ID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlkZW9TdHJlYW0oKSA9IDA7
CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0cmVhbSgpID0gMDsKKyAg
ICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRpb24oIGZsb2F0IGZsSW5w
dXRVLCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZsb2F0ICpwZmxPdXRwdXRW
ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhUHJvamVjdGlvbigg
dnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxaTmVhciwg
ZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBuSVNQRnJhbWVSYXRlLCBp
bnQgblNlbnNvckZyYW1lUmF0ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNl
dENhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVvU2lua0NhbGxiYWNrICpw
Q2FtZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9v
bCBHZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFDb21wYXRpYmlsaXR5TW9k
ZSAqcENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0aWJpbGl0
eU1vZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3QgKnBUb3AsIHVpbnQzMl90
ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJfdCAqcENl
bnRlciApID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNh
bWVyYUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVudF8wMDIiOworfQorLy8g
aXRyYWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3Mg
SVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7CitzdHJ1Y3QgVHJhY2tlZERldmljZURyaXZlcklu
Zm9fdDsKK3N0cnVjdCBEcml2ZXJQb3NlX3Q7Cit0eXBlZGVmIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgRHJpdmVySGFuZGxlX3Q7CisKKy8qKiBUaGlzIGludGVyZmFjZSBpcyBwcm92aWRlZCBi
eSB2cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAKKyogdGhlIHN5c3RlbSB3
aGVuIHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVzZSBjaGFuZ2VzIG11c3QK
Kyogbm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBvZiB0aGUgZGV2aWNlIGJl
Y2F1c2UgdGhvc2UgdmFsdWVzCisqIGFyZSBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdpdGggdGhl
IGRldmljZSdzIGluZGV4LiAqLworY2xhc3MgSVZSRHJpdmVyQ29udGV4dAoreworcHVibGljOgor
ICAgICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlLiBJZiB0aGUgaW50ZXJm
YWNlIHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwgYW5kIGZpbGwKKyAgICAg
ICAqIG91dCB0aGUgZXJyb3IuICovCisgICAgICAgdmlydHVhbCB2b2lkICpHZXRHZW5lcmljSW50
ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBl
RXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHByb3BlcnR5
IGNvbnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCisgICAgICAgdmlydHVhbCBEcml2
ZXJIYW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Cit9OworCisKKy8qKiBUaGlzIGludGVy
ZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJlIGxvYWRl
ZCBpbiB2cnNlcnZlci5leGUgKi8KK2NsYXNzIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXIK
K3sKK3B1YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlci4gVGhpcyB3aWxs
IGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNhbGxlZC4KKyAgICAgICAq
IElmIEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5pdEVycm9yX05vbmUgdGhl
IGRyaXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KKyAgICAgICAqCisgICAgICAgKiBwRHJpdmVy
SG9zdCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBiZSBhIHBvaW50ZXIgdG8g
YSBJU2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKKyAgICAgICAqCisgICAgICAgKiBwY2hVc2Vy
RHJpdmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGRpcmVjdG9yeSB3aGVy
ZSB0aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCisgICAgICAgKiAgICAgICBjb25maWcgZmls
ZXMuCisgICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2Yg
dGhlIHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmly
dHVhbCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAqcERyaXZlckNvbnRleHQg
KSA9IDA7CisKKyAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIgcmlnaHQgYmVmb3JlIGl0
IGlzIHVubG9hZGVkICovCisgICAgICAgdmlydHVhbCB2b2lkIENsZWFudXAoKSA9IDA7CisKKyAg
ICAgICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNrZWREZXZpY2VTZXJ2ZXJE
cml2ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KKyAgICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9IDA7CisKKyAgICAgICAv
KiogQWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRoZSBtYWluIGxvb3Agb2Yg
dGhlIHNlcnZlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJhbWUoKSA9IDA7CisKKwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIC8vCisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkcml2ZXIg
d2FudHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBTaG91
bGRCbG9ja1N0YW5kYnlNb2RlKCkgPSAwOworCisgICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBz
eXN0ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBzd2l0Y2gg
aXRzZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKKyAgICAgICAqIHN0YXRlIGl0
IGhhcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOworCisgICAg
ICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBTdGFuZGJ5IG1vZGUuIFRo
ZSBkcml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bworICAgICAgIGZ1bGwgb3BlcmF0
aW9uLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnkoKSA9IDA7CisKK307CisK
Kworc3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJfVmVyc2lv
biA9ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7CisKKworCisKKy8qKiBUaGlz
IGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJl
IGxvYWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KK2NsYXNzIElWUldhdGNoZG9nUHJvdmlkZXIKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlciBpbiB3YXRjaGRvZyBt
b2RlLiAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZlckNvbnRl
eHQgKnBEcml2ZXJDb250ZXh0ICkgPSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCB0aGUgZHJp
dmVyIHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBD
bGVhbnVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9nUHJvdmlk
ZXJfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7CisKK30KKy8vIGl2cnByb3Bl
cnRpZXMuaAorI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICBl
bnVtIEVQcm9wZXJ0eVdyaXRlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAgICAgUHJvcGVydHlX
cml0ZV9TZXQgPSAwLAorICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRlX0VyYXNlID0gMSwKKyAg
ICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKKyAgICAgICB9OworCisgICAg
ICAgc3RydWN0IFByb3BlcnR5V3JpdGVfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAgICBFUHJvcGVydHlXcml0ZVR5cGUg
d3JpdGVUeXBlOworICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZVNldEVycm9y
OworICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKKyAgICAgICAgICAgICAgdWludDMyX3Qg
dW5CdWZmZXJTaXplOworICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAg
ICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKKyAgICAgICB9OworCisg
ICAgICAgc3RydWN0IFByb3BlcnR5UmVhZF90CisgICAgICAgeworICAgICAgICAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5IHByb3A7CisgICAgICAgICAgICAgIHZvaWQgKnB2QnVmZmVyOwor
ICAgICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7CisgICAgICAgICAgICAgIFByb3Bl
cnR5VHlwZVRhZ190IHVuVGFnOworICAgICAgICAgICAgICB1aW50MzJfdCB1blJlcXVpcmVkQnVm
ZmVyU2l6ZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKKyAg
ICAgICB9OworCisKK2NsYXNzIElWUlByb3BlcnRpZXMKK3sKK3B1YmxpYzoKKworICAgICAgIC8q
KiBSZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlS
ZWFkQmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCisgICAgICAgdmlydHVh
bCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2goIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVhZF90ICpwQmF0Y2gsIHVp
bnQzMl90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIFdyaXRlcyBhIHNl
dCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlXcml0ZUJhdGNoX3Qg
c3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLworICAgICAgIHZpcnR1YWwgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlDb250YWluZXJIYW5kbGVf
dCB1bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0Y2gsIHVpbnQzMl90IHVu
QmF0Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgYSBzdHJpbmcgdGhh
dCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZXJyb3IuIFRoZSBzdHJp
bmcgd2lsbCBiZSB0aGUgbmFtZQorICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUgZm9y
IGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0
UHJvcEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IgKSA9IDA7
CisKKyAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUgZ2l2ZW4gYSB0cmFja2Vk
IGRldmljZSBpbmRleCAqLworICAgICAgIHZpcnR1YWwgUHJvcGVydHlDb250YWluZXJIYW5kbGVf
dCBUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tlZERldmljZUluZGV4X3Qg
bkRldmljZSApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJQcm9w
ZXJ0aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOworCitjbGFzcyBDVlJQcm9wZXJ0
eUhlbHBlcnMKK3sKK3B1YmxpYzoKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMoIElWUlByb3Bl
cnRpZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMgKSB7fQor
CisgICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5k
ZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBlIGRvZXMgbm90IG1hdGNo
LAorICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KKyAgICAgICBi
b29sIEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5l
ckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgZmxvYXQgR2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVy
dHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAg
aW50MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29u
dGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVy
dHlFcnJvciAqcEVycm9yID0gMEwgKTsKKyAgICAgICB1aW50NjRfdCBHZXRVaW50NjRQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7
CisKKyAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gSWYgdGhlIGRl
dmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0
eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCBy
ZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9s
ZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiBTdHJp
bmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1Np
emUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRQcm9wZXJ0eSggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVy
U2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpw
RXJyb3IgPSAwTCApOworCisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBwcm9wZXJ0eS4g
SWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBh
IHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAuIE90aGVy
d2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3Nh
cnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBu
dWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0
eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRTdHJpbmdQcm9w
ZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVp
bnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCAp
OworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmlu
Zy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5v
dCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIGFuIGVt
cHR5IHN0cmluZy4gKi8KKyAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJpbmdQcm9wZXJ0eSggdnI6
OlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZyOjpFVHJhY2tlZERldmlj
ZVByb3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgPSBudWxs
cHRyICk7CisKKyAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1
ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJv
cGVydHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNl
dEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRs
ZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApOworICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3As
IGZsb2F0IGZOZXdWYWx1ZSApOworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRJbnQz
MlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICk7CisgICAgICAg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3As
IHVpbnQ2NF90IHVsTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEgc3RyaW5nIHByb3Bl
cnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVlbnQgY2Fs
bCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KKyAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY29uc3Qg
Y2hhciAqcGNoTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEgc2luZ2xlIHR5cGVkIHBy
b3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVlbnQg
Y2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KKyAgICAgICBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZO
ZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFn
ICk7CisKKyAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3Bl
cnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVz
dHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFu
ZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciBl
RXJyb3IgKTsKKworICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9yIGVycm9yIHNldCBmb3Ig
dGhlIHByb3BlcnR5LiAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBFcmFzZVByb3Bl
cnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AgKTsKKworICAgICAgIC8qIFR1cm5zIGEgZGV2aWNlIGluZGV4
IGludG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLworICAgICAgIFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRyYWNrZWRE
ZXZpY2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0aWVzLT5UcmFja2VkRGV2
aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQorCitwcml2YXRlOgorICAgICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgVCBHZXRQcm9wZXJ0eUhlbHBlciggUHJvcGVy
dHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVsdCwgUHJv
cGVydHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7CisKKyAgICAgICBJVlJQcm9wZXJ0aWVzICptX3BQ
cm9wZXJ0aWVzOworfTsKKworCitpbmxpbmUgdWludDMyX3QgQ1ZSUHJvcGVydHlIZWxwZXJzOjpH
ZXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZm
ZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIFByb3BlcnR5UmVhZF90IGJh
dGNoOworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJhdGNoLnB2QnVmZmVyID0g
cHZCdWZmZXI7CisgICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5CdWZmZXJTaXplOworCisg
ICAgICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxl
LCAmYmF0Y2gsIDEgKTsKKworICAgICAgIGlmICggcEVycm9yICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7CisgICAgICAgfQorCisgICAgICAgaWYgKCBw
dW5UYWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgKnB1blRhZyA9IGJhdGNoLnVuVGFnOwor
ICAgICAgIH0KKworICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVkQnVmZmVyU2l6ZTsKK30K
KworCisvKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxs
IGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkg
aW4gYW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250
YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZOZXdWYWx1
ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnICkKK3sK
KyAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7CisgICAgICAgYmF0Y2gud3JpdGVUeXBlID0g
UHJvcGVydHlXcml0ZV9TZXQ7CisgICAgICAgYmF0Y2gucHJvcCA9IHByb3A7CisgICAgICAgYmF0
Y2gucHZCdWZmZXIgPSBwdk5ld1ZhbHVlOworICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6ZSA9IHVu
TmV3VmFsdWVTaXplOworICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7CisKKyAgICAgICBtX3BQ
cm9wZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAmYmF0Y2gs
IDEgKTsKKworICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Cit9CisKKworLyoqIFJldHVybnMg
YSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRo
ZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyogcmV0
dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBi
eXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5n
CisqIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191bk1heFBy
b3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLworaW5saW5lIHVpbnQzMl90IENWUlByb3Bl
cnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NU
UklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJv
cGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsK
KyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7CisgICAgICAgdWludDMyX3QgdW5S
ZXF1aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBjaFZh
bHVlLCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7CisgICAgICAgaWYgKCB1blRhZyAh
PSBrX3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyAp
CisgICAgICAgeworICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5
cGU7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwRXJyb3IgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgKnBFcnJvciA9IGVycm9yOworICAgICAgIH0KKworICAgICAgIGlmICggZXJyb3IgIT0g
VHJhY2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIHBjaFZh
bHVlICYmIHVuQnVmZmVyU2l6ZSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICpwY2hWYWx1ZSA9ICdcMCc7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAg
ICByZXR1cm4gdW5SZXF1aXJlZFNpemU7Cit9CisKKworLyoqIFJldHVybnMgYSBzdHJpbmcgcHJv
cGVydHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQg
b3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAor
KiByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLworaW5saW5lIHN0ZDo6c3RyaW5nIENWUlByb3Bl
cnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2cjo6RVRy
YWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKK3sKKyAgICAgICBjaGFyIGJ1ZlsxMDI0XTsK
KyAgICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKKyAgICAgICB1aW50MzJfdCB1
blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFpbmVyLCBwcm9w
LCBidWYsIHNpemVvZihidWYpLCAmZXJyICk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVzdWx0
OworCisgICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgewor
ICAgICAgICAgICAgICBzUmVzdWx0ID0gYnVmOworICAgICAgIH0KKyAgICAgICBlbHNlIGlmICgg
ZXJyID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRCdWZmZXJMZW5dOworICAg
ICAgICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29u
dGFpbmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJMZW4sICZlcnIgKTsKKyAg
ICAgICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKKyAgICAgICAgICAgICAgZGVsZXRlW10g
cGNoQnVmZmVyOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgewor
ICAgICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4g
c1Jlc3VsdDsKK30KKworCisvKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1
ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJv
cGVydHkgaW4gYW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENW
UlByb3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY29u
c3QgY2hhciAqcGNoTmV3VmFsdWUgKQoreworICAgICAgIGlmICggIXBjaE5ld1ZhbHVlICkKKyAg
ICAgICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb247CisKKyAgICAg
ICAvLyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5IG9uIHN0cmluZy5oCisg
ICAgICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOworICAgICAgIHdoaWxlICgg
KnBjaEN1cnIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGNoQ3VycisrOworICAgICAgIH0K
KworICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICh2
b2lkICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBjaE5ld1ZhbHVlKSArIDEs
IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyApOworfQorCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Citp
bmxpbmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVscGVyKCBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJEZWZhdWx0LCBQcm9wZXJ0
eVR5cGVUYWdfdCB1blR5cGVUYWcgKQoreworICAgICAgIFQgYlZhbHVlOworICAgICAgIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5SZWFk
VGFnOworICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmJWYWx1
ZSwgc2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciApOworICAgICAgIGlmICgg
dW5SZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyAp
CisgICAgICAgeworICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFU
eXBlOworICAgICAgIH07CisKKyAgICAgICBpZiAoIHBFcnJvciApCisgICAgICAgICAgICAgICpw
RXJyb3IgPSBlRXJyb3I7CisgICAgICAgaWYgKCBlRXJyb3IgIT0gVHJhY2tlZFByb3BfU3VjY2Vz
cyApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1bHQ7CisgICAgICAgfQor
ICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBiVmFsdWU7CisgICAg
ICAgfQorfQorCisKK2lubGluZSBib29sIENWUlByb3BlcnR5SGVscGVyczo6R2V0Qm9vbFByb3Bl
cnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sK
KyAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVsQ29udGFpbmVySGFuZGxl
LCBwcm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Cit9CisKKworaW5s
aW5lIGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgcmV0dXJu
IEdldFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJv
ciwgMC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUgaW50MzJfdCBDVlJQ
cm9wZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhl
bHBlcjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwgMCwga191bklu
dDMyUHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIHVpbnQ2NF90IENWUlByb3BlcnR5SGVscGVy
czo6R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjx1aW50NjRf
dD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5VaW50NjRQcm9wZXJ0
eVRhZyApOworfQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVs
cGVyczo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJvb2wgYk5ld1ZhbHVlICkK
K3sKKyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAm
Yk5ld1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Cit9
CisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRG
bG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxl
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApCit7CisgICAg
ICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmZOZXdWYWx1
ZSwgc2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKK30KKworaW5s
aW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJv
cGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUgKQoreworICAgICAgIHJl
dHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZuTmV3VmFsdWUsIHNp
emVvZiggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Cit9CisKK2lubGluZSBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRVaW50NjRQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkKK3sKKyAgICAgICByZXR1
cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmdWxOZXdWYWx1ZSwgc2l6
ZW9mKCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyApOworfQorCisvKiogU2V0
cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwg
YmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0
eSAqLworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNl
dFByb3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5k
bGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVF
cnJvciApCit7CisgICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOworICAgICAgIGJhdGNoLndy
aXRlVHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7CisgICAgICAgYmF0Y2gucHJvcCA9IHBy
b3A7CisgICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOworCisgICAgICAgbV9wUHJvcGVy
dGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNoLCAxICk7
CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworfQorCisvKiogQ2xlYXJzIGFueSB2YWx1
ZSBvciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KK2lubGluZSBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AgKQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKKyAgICAgICBiYXRjaC53cml0
ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOwor
CisgICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhh
bmRsZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworCit9CisK
K30KKworCisvLyBpdnJkcml2ZXJsb2cuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElWUkRy
aXZlckxvZworeworcHVibGljOgorICAgICAgIC8qKiBXcml0ZXMgYSBsb2cgbWVzc2FnZSB0byB0
aGUgbG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUgKi8KKyAgICAgICB2aXJ0
dWFsIHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkgPSAwOworfTsKKworCitz
dGF0aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAiSVZSRHJpdmVyTG9nXzAw
MSI7CisKK30KKy8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAorbmFtZXNwYWNlIHZyCit7CisKK2Ns
YXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRyYWNrZWREZXZpY2VEcml2
ZXJJbmZvX3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMg
cHJvdmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkgCisqIHRo
ZSBzeXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhlc2UgY2hh
bmdlcyBtdXN0CisqIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mgb2YgdGhl
IGRldmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFuZW50bHkgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUlNlcnZlckRyaXZlckhvc3QK
K3sKK3B1YmxpYzoKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEgdHJhY2tl
ZCBkZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlCisg
ICAgICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0aGUgZGV2aWNlLiBJZiBp
dCByZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgorICAgICAgICogaGFzIG9jY3VycmVk
IGFuZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8KKyAgICAgICB2aXJ0dWFs
IGJvb2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hEZXZpY2VTZXJpYWxOdW1i
ZXIsIEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJhY2tlZERldmljZVNlcnZl
ckRyaXZlciAqcERyaXZlciApID0gMDsKKworICAgICAgIC8qKiBOb3RpZmllcyB0aGUgc2VydmVy
IHRoYXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBkYXRlZCAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVpbnQzMl90IHVuV2hpY2hE
ZXZpY2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQzMl90IHVuUG9zZVN0cnVj
dFNpemUgKSA9IDA7CisKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IHZzeW5j
IGhhcyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQgdG8gdGhlIGRldmljZS4g
VGhpcyBpcworICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNlcyBvZiB0aGUgSE1EIGNs
YXNzLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBkb3VibGUgdnN5bmNUaW1l
T2Zmc2V0U2Vjb25kcyApID0gMDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2VydmVyIHRo
YXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2Vk
RGV2aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQg
ZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5v
dGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8KKyAgICAg
ICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3NlZCggdWludDMyX3QgdW5X
aGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0
ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9u
IHdhcyBwcmVzc2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VCdXR0b25U
b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRv
dWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAgICAgICAvKiogbm90aWZpZXMgdGhlIHNl
cnZlciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9p
ZCBUcmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBF
VlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAg
ICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJvbGxlciBheGlzIGNoYW5n
ZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4aXNVcGRhdGVkKCB1aW50
MzJfdCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywgY29uc3QgVlJDb250cm9s
bGVyQXhpc190ICYgYXhpc1N0YXRlICkgPSAwOworCisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBz
ZXJ2ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3BlY2lmaWVkIGRldmljZSAg
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3RhdGUoIHVpbnQzMl90IHVu
V2hpY2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJlZCApID0gMDsKKworICAg
ICAgIC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJFdmVudF9WZW5kb3JTcGVj
aWZpY19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQg
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVudCggdWludDMyX3QgdW5X
aGljaERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNvbnN0IFZSRXZlbnRfRGF0
YV90ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAg
LyoqIFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8KKyAgICAgICB2aXJ0dWFs
IGJvb2wgSXNFeGl0aW5nKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmls
bHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRoZXJlIGlz
IG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cworICAgICAgICogdGhpcyBtZXRob2QgcmV0dXJu
cyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBW
UkV2ZW50X3Qgc3RydWN0ICovCisgICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZlbnQoIFZS
RXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKK307CisKK3N0YXRp
YyBjb25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24gPSAiSVZSU2VydmVyRHJp
dmVySG9zdF8wMDQiOworCit9CisvLyBpdnJoaWRkZW5hcmVhLmgKK25hbWVzcGFjZSB2cgorewor
CitjbGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycworeworcHVibGljOgorICAgICAgIENWUkhpZGRl
bkFyZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGll
cyggcFByb3BlcnRpZXMgKSB7fQorCisgICAgICAgLyoqIFN0b3JlcyBhIGhpZGRlbiBhcmVhIG1l
c2ggaW4gYSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRIaWRk
ZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRWZWN0b3Iy
X3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKKworICAgICAgIC8qKiByZXRyaWV2
ZXMgYSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0dXJucyB0aGUgdmVydCBj
b3VudCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLworICAgICAgIHVpbnQzMl90IEdldEhp
ZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEhtZFZlY3Rv
cjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
ICpwZUVycm9yICk7CisKK3ByaXZhdGU6CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBH
ZXRQcm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERldmljZVByb3BlcnR5KShQ
cm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50KXR5cGUgKiAyKSArIChp
bnQpZUV5ZSk7CisgICAgICAgfQorCisgICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJvcGVydGll
czsKK307CisKKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJIaWRkZW5BcmVhSGVs
cGVyczo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlw
ZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICkKK3sKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVFeWUsIHR5
cGUgKTsKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFByb3BlcnRp
ZXMgKTsKKyAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVydHkoIHByb3BIZWxwZXJz
LlRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJhY2tlZERldmljZUluZGV4
X0htZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90ICkgKiB1blZlcnRDb3Vu
dCwga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOworfQorCisKK2lubGluZSB1aW50MzJfdCBD
VlJIaWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5B
cmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENv
dW50LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQoreworICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5ZSwgdHlwZSApOworICAg
ICAgIENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJvcGVydGllcyApOworICAg
ICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7CisgICAgICAgUHJvcGVydHlUeXBl
VGFnX3QgdW5UYWc7CisgICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRlZCA9IHByb3BIZWxwZXJz
LkdldFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5l
cigga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXplb2YoIEht
ZFZlY3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJyb3IgKTsKKyAgICAgICBp
ZiAoIHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVuVGFnICE9IGtfdW5IaWRk
ZW5BcmVhUHJvcGVydHlUYWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHJvcEVycm9yID0g
VHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKKyAgICAgICAgICAgICAgdW5CeXRlc05lZWRlZCA9
IDA7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwZUVycm9yICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgICpwZUVycm9yID0gcHJvcEVycm9yOworICAgICAgIH0KKworICAgICAgIHJldHVybiB1
bkJ5dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKK30KKworfQorLy8gaXZyd2F0
Y2hkb2dob3N0LmgKK25hbWVzcGFjZSB2cgoreworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJv
dmlkZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBtYWtlIGV2ZXJ5dGhpbmcg
d2FrZSB1cCAqLworY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Cit7CitwdWJsaWM6CisgICAgICAgLyoq
IENsaWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNhbGwgdGhpcyB3aGVuIHRo
ZXkgaGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRoYXQgc2hvdWxkCisgICAg
ICAgKiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCisgICAgICAgdmlydHVhbCB2b2lkIFdhdGNo
ZG9nV2FrZVVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9nSG9z
dF9WZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOworCit9OworCisKKworCisKKworCitu
YW1lc3BhY2UgdnIKK3sKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfSW50ZXJm
YWNlVmVyc2lvbnNbXSA9CisgICAgICAgeworICAgICAgICAgICAgICBJVlJTZXR0aW5nc19WZXJz
aW9uLAorICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJzaW9uLAor
ICAgICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAg
IElWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZS
Q29udHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAorICAgICAgICAgICAgICBJVlJDYW1lcmFDb21w
b25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVNlcnZlclRyYWNrZWREZXZpY2VQcm92aWRl
cl9WZXJzaW9uLAorICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNpb24sCisg
ICAgICAgICAgICAgIG51bGxwdHIKKyAgICAgICB9OworCisgICAgICAgaW5saW5lIElWUkRyaXZl
ckNvbnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3Rh
dGljIElWUkRyaXZlckNvbnRleHQgKnBIb3N0OworICAgICAgICAgICAgICByZXR1cm4gcEhvc3Q7
CisgICAgICAgfQorCisgICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNvbnRleHQKKyAgICAgICB7
CisgICAgICAgcHVibGljOgorICAgICAgICAgICAgICBDT3BlblZSRHJpdmVyQ29udGV4dCgpIDog
bV9wcm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhlbHBlcnMobnVsbHB0cikg
eyBDbGVhcigpOyB9CisgICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsKKworICAgICAgICAgICAg
ICBFVlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOworICAgICAgICAgICAgICBFVlJJbml0RXJyb3Ig
SW5pdFdhdGNoZG9nKCk7CisKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3Mo
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSU2V0dGlu
Z3MgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2ZXJDb250ZXh0KCktPkdl
dEdlbmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRp
bmdzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSUHJvcGVydGllcyAqVlJQ
cm9wZXJ0aWVzUmF3KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYg
KCBtX3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZSUHJvcGVydGllcyAqKVZS
RHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQcm9wZXJ0aWVzX1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5SGVs
cGVycyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENWUkhpZGRlbkFyZWFIZWxw
ZXJzKCBtX3BWUlByb3BlcnRpZXMgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVydGllcygpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGllc1JhdygpOworICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUkhpZGRlbkFyZWEoKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNSYXcoKTsK
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgKlZSU2VydmVy
RHJpdmVySG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICgg
bV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gKElWUlNlcnZl
ckRyaXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZS
U2VydmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0Owor
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICpWUldhdGNo
ZG9nSG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9w
VlJXYXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJXYXRjaGRvZ0hvc3QgKilW
UkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSV2F0Y2hkb2dIb3N0X1Zl
cnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09IG51bGxwdHIgKQorICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRF
cnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2ZXJMb2cg
PSAoSVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJMb2c7CisgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9DQUxMVFlQRSBWUkRyaXZl
ckhhbmRsZSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBW
UkRyaXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7CisgICAgICAgICAgICAgIH0KKwor
ICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAgICAgICAg
ICAgICAgKm1fcFZSU2V0dGluZ3M7CisgICAgICAgICAgICAgIElWUlByb3BlcnRpZXMgICAgICAg
ICAgICAgICptX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIENWUlByb3BlcnR5SGVscGVy
cyAgICAgICBtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAgQ1ZSSGlkZGVuQXJlYUhl
bHBlcnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAgICAgICAgICAgSVZSU2VydmVy
RHJpdmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OworICAgICAgICAgICAgICBJ
VlJXYXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAg
ICAgICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2ZXJMb2c7CisgICAgICAg
fTsKKworICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAmT3BlblZSSW50ZXJuYWxf
TW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCisgICAgICAgeworICAgICAgICAgICAgICBzdGF0
aWMgdm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQgKSAvIHNpemVvZiggdm9p
ZCAqICldOworICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJpdmVyQ29udGV4dCAqKWN0
eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAgICAgIH0KKworICAgICAgIGlu
bGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNldHRpbmdzKCk7IH0KKyAg
ICAgICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzUmF3KCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJv
cGVydGllc1JhdygpOyB9CisgICAgICAgaW5saW5lIENWUlByb3BlcnR5SGVscGVycyAqVlJfQ0FM
TFRZUEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVy
RHJpdmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9CisgICAgICAgaW5saW5lIENWUkhpZGRl
bkFyZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7IHJldHVybiBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRkZW5BcmVhKCk7IH0KKyAg
ICAgICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRyaXZlckxvZygpIHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUkRyaXZlckxv
ZygpOyB9CisgICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3QgKlZSX0NBTExUWVBFIFZS
U2VydmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRy
aXZlckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQorICAgICAgIGlubGluZSBJVlJX
YXRjaGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0Y2hkb2dIb3N0KCk7IH0K
KyAgICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJIYW5kbGUo
KSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJE
cml2ZXJIYW5kbGUoKTsgfQorICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcigpCisgICAgICAgeworICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJE
cml2ZXJMb2cgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IG51
bGxwdHI7CisgICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJp
dmVyQ29udGV4dDo6SW5pdFNlcnZlcigpCisgICAgICAgeworICAgICAgICAgICAgICBDbGVhcigp
OworICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3QoKQorICAgICAgICAgICAg
ICAgICAgICAgfHwgIVZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZSUHJv
cGVydGllcygpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSApCisgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3Vu
ZDsKKyAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7CisgICAgICAgfQorCisg
ICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5pdFdhdGNo
ZG9nKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENsZWFyKCk7CisgICAgICAgICAgICAgIGlm
ICggIVZSV2F0Y2hkb2dIb3N0KCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNldHRpbmdz
KCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygpICkKKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOworICAg
ICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKKyAgICAgICB9CisKKyAgICAgICBp
bmxpbmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBJVlJEcml2ZXJDb250
ZXh0ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAgICAgICBWUkRyaXZlckNvbnRleHQo
KSA9IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
U2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKKyAgICAgICB9CisKKyAgICAgICBp
bmxpbmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRleHQoIElWUkRyaXZlckNv
bnRleHQgKnBDb250ZXh0ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSRHJpdmVyQ29udGV4
dCgpID0gcENvbnRleHQ7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1
bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7CisgICAgICAgfQorCisgICAg
ICAgaW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOworICAgICAgICAgICAgICBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIoKTsKKyAgICAgICB9CisK
KyAgICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05URVhUKCBwQ29udGV4dCAp
IFwKKyAgICAgICAgICAgICAgICAgICAgIHsgXAorICAgICAgICAgICAgICAgICAgICAgdnI6OkVW
UkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNvbnRleHQoIHBDb250ZXh0
ICk7IFwKKyAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0gdnI6OlZSSW5pdEVycm9y
X05vbmUgKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVFcnJvcjsgXAor
ICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgI2RlZmluZSBWUl9DTEVBTlVQX1NFUlZF
Ul9EUklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNsZWFudXBEcml2ZXJDb250
ZXh0KCk7CisKKyAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0dfRFJJVkVSX0NPTlRFWFQo
IHBDb250ZXh0ICkgXAorICAgICAgICAgICAgICAgICAgICAgeyBcCisgICAgICAgICAgICAgICAg
ICAgICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0Y2hkb2dEcml2ZXJDb250
ZXh0KCBwQ29udGV4dCApOyBcCisgICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9yICE9IHZy
OjpWUkluaXRFcnJvcl9Ob25lICkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBlRXJyb3I7IFwKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICNkZWZpbmUgVlJf
Q0xFQU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNs
ZWFudXBEcml2ZXJDb250ZXh0KCk7Cit9CisvLyBFbmQKKworI2VuZGlmIC8vIF9PUEVOVlJfRFJJ
VkVSX0FQSQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9vcGVudnIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9vcGVu
dnIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmUzOTI3M2Q3YzM0ZDEx
MWMyMTRjNmE5MjU4NmU1OGQ1YWRhZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0wLDAgKzEs
NDE3IEBACisvLyAhJCpVVEY4KiQhCit7CisgICAgICAgYXJjaGl2ZVZlcnNpb24gPSAxOworICAg
ICAgIGNsYXNzZXMgPSB7CisgICAgICAgfTsKKyAgICAgICBvYmplY3RWZXJzaW9uID0gNDY7Cisg
ICAgICAgb2JqZWN0cyA9IHsKKworLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKyAg
ICAgICAgICAgICAgOEU1MzE0MkUxRjZGREVCMDAwNzNCODk3IC8qIENvcmVGb3VuZGF0aW9uLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNTMxNDJEMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87
IH07CisgICAgICAgICAgICAgIDhFNTMxNDMyMUY2RkVDQUUwMDczQjg5NyAvKiBBcHBLaXQuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU1MzE0MzExRjZGRUNBRTAwNzNCODk3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi87IH07CisgICAg
ICAgICAgICAgIDhFNTMxNDM1MUY3MkQ1ODQwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNTMx
NDJGMUY2RkVCQzgwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKKyAgICAg
ICAgICAgICAgOEU3OTQyODkxRjZBRjZEMzAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2QzFG
NkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmNwcCAqLzsgfTsKKyAgICAgICAgICAg
ICAgOEU3OTQyOEExRjZBRjZEMzAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2RTFGNkFF
OUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNwcCAqLzsgfTsKKyAgICAgICAgICAg
ICAgOEU3OTQyOEIxRjZBRjZEMzAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzAxRjZBRTlB
QjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4
RTc5NDI4QzFGNkFGNkQzMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3MjFGNkFFOUFCMDA1
N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0
MjhEMUY2QUY2RDMwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzQxRjZBRTlBQjAw
NTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAg
IDhFNzk0MjhFMUY2QUY2RDMwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzYxRjZBRTlBQjAw
NTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0
MjhGMUY2QUY2RDMwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzgxRjZBRTlBQjAw
NTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAg
IDhFNzk0MjkwMUY2QUY2RUUwMDU3QjgwMyAvKiBqc29uY3BwLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY4MUY2QUU5QUIwMDU3QjgwMyAv
KiBqc29uY3BwLmNwcCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTExRjZBRjZFRTAwNTdC
ODAzIC8qIG9wZW52cl9hcGlfcHVibGljLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY5MUY2QUU5QUIwMDU3QjgwMyAvKiBvcGVudnJfYXBp
X3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0MjkyMUY2QUY3MUQwMDU3Qjgw
MyAvKiBvcGVudnIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhFNzk0MjdCMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisgICAgICAgICAgICAgIDhFNzk0MjkzMUY2
QUY3MUQwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyN0UxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9j
YXBpLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworICAg
ICAgICAgICAgICA4RTc5NDI5NDFGNkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyX2RyaXZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyN0YxRjZB
RjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk1MUY2QUY3OEQwMDU3
QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4RTc5NDI2NDFGNkFFOUFCMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5o
ICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5NjFGNkFGNzhEMDA1N0I4MDMgLyoganNvbi1m
b3J3YXJkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU3OTQyNjYxRjZBRTlBQjAwNTdCODAzIC8qIGpzb24tZm9yd2FyZHMuaCAqLzsgfTsKKyAgICAg
ICAgICAgICAgOEU3OTQyOTcxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY3MUY2QUU5QUIwMDU3Qjgw
MyAvKiBqc29uLmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk4MUY2QUY3OEQwMDU3Qjgw
MyAvKiBkaXJ0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDhFNzk0MjZEMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMu
aCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTkxRjZBRjc4RDAwNTdCODAzIC8qIGVudnZh
cnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEU3OTQyNkYxRjZBRTlBQjAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5oICov
OyB9OworICAgICAgICAgICAgICA4RTc5NDI5QTFGNkFGNzhEMDA1N0I4MDMgLyogaG1kZXJyb3Jz
X3B1YmxpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU3OTQyNzExRjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuaCAqLzsgfTsKKyAg
ICAgICAgICAgICAgOEU3OTQyOUIxRjZBRjc4RDAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjcz
MUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi87IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjlDMUY2QUY3OEQwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc1MUY2
QUU5QUIwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCAqLzsgfTsKKyAgICAgICAg
ICAgICAgOEU3OTQyOUQxRjZBRjc4RDAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzcxRjZBRTlB
QjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oICovOyB9OworICAgICAgICAgICAgICA4RTc5
NDI5RTFGNkFGNzhEMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3OTFGNkFFOUFCMDA1
N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggKi87IH07CisvKiBFbmQgUEJYQnVpbGRG
aWxlIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisg
ICAgICAgICAgICAgIDhFNTMxNDJEMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0
aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrOyBz
b3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKyAgICAgICAgICAgICAgOEU1MzE0MkYxRjZGRUJDODAw
NzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3VuZGF0
aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlv
bi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworICAgICAgICAgICAgICA4RTUz
MTQzMTFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1l
ID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBw
S2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CisgICAgICAgICAgICAgIDhF
Nzk0MjYyMUY2QUU5QUIwMDU3QjgwMyAvKiBDTWFrZUxpc3RzLnR4dCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDTWFrZUxpc3Rz
LnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNjMx
RjZBRTlBQjAwNTdCODAzIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjY0MUY2QUU5
QUIwMDU3QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGl2cmNsaWVudGNv
cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNjYx
RjZBRTlBQjAwNTdCODAzIC8qIGpzb24tZm9yd2FyZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImpzb24t
Zm9yd2FyZHMuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhF
Nzk0MjY3MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGpzb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNjgxRjZBRTlB
QjAwNTdCODAzIC8qIGpzb25jcHAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0ganNvbmNwcC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjY5MUY2QUU5
QUIwMDU3QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBv
cGVudnJfYXBpX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAg
ICAgICAgIDhFNzk0MjZBMUY2QUU5QUIwMDU3QjgwMyAvKiBSRUFETUUgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUkVBRE1FOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2QzFGNkFFOUFC
MDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGRpcnRv
b2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAg
IDhFNzk0MjZEMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gZGlydG9vbHNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjZFMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZW52dmFydG9vbHNfcHVibGljLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNkYxRjZBRTlBQjAwNTdCODAz
IC8qIGVudnZhcnRvb2xzX3B1YmxpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBlbnZ2YXJ0b29sc19wdWJs
aWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNzAx
RjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gaG1kZXJyb3JzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IGhtZGVycm9yc19wdWJsaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNzIxRjZBRTlBQjAwNTdCODAzIC8qIHBhdGh0b29s
c19wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBwYXRodG9vbHNfcHVibGljLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNzMxRjZBRTlB
QjAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGF0aHRvb2xz
X3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5
NDI3NDFGNkFFOUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjc1MUY2QUU5QUIwMDU3QjgwMyAvKiBzaGFy
ZWRsaWJ0b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc2hhcmVkbGlidG9vbHNfcHVibGlj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjc2MUY2
QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
c3RydG9vbHNfcHVibGljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAg
ICAgICAgOEU3OTQyNzcxRjZBRTlBQjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBzdHJ0b29sc19wdWJsaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KyAgICAgICAgICAgICAgOEU3OTQyNzgxRjZBRTlBQjAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5
X3B1YmxpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjc5MUY2
QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
dnJwYXRocmVnaXN0cnlfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjdCMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gb3BlbnZyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAg
IDhFNzk0MjdDMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpLmNzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IG9wZW52cl9h
cGkuY3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjdE
MUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247IHBhdGggPSBvcGVudnJfYXBp
Lmpzb247IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjdF
MUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBvcGVudnJf
Y2FwaS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3
RjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2RyaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBvcGVu
dnJfZHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhF
Nzk0Mjg0MUY2QUY2MkUwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gbGlib3BlbnZyLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU3OTQyODExRjZB
RjYyRTAwNTdCODAzIC8qIEZyYW1ld29ya3MgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBp
c2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisgICAgICAgICAgICAgICAgICAgICBmaWxlcyA9ICgK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQzMjFGNkZFQ0FFMDA3M0I4OTcgLyog
QXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNTMxNDJFMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQz
NTFGNzJENTg0MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKyAgICAgICAgICAgICAgfTsKKy8qIEVu
ZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEdyb3Vw
IHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU1MzE0MkMxRjZGREVCMDAwNzNCODk3IC8qIEZy
YW1ld29ya3MgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAg
ICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNTMxNDMxMUY2RkVDQUUwMDczQjg5NyAvKiBBcHBLaXQuZnJhbWV3b3JrICovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNTMxNDJEMUY2RkRFQjAwMDczQjg5NyAvKiBDb3Jl
Rm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1
MzE0MkYxRjZGRUJDODAwNzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAorICAgICAg
ICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBGcmFtZXdvcmtz
OworICAgICAgICAgICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKyAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNUExRjZBRTk2NjAwNTdCODAzID0geworICAg
ICAgICAgICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICBj
aGlsZHJlbiA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQyQzFGNkZERUIw
MDA3M0I4OTcgLyogRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
RTc5NDI3QTFGNkFGMDVFMDA1N0I4MDMgLyogaGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4RTc5NDI4NTFGNkFGNjJFMDA1N0I4MDMgLyogUHJvZHVjdHMgKi8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjExRjZBRTlBQjAwNTdCODAzIC8qIHNyYyAq
LywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VU
cmVlID0gIjxncm91cD4iOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI2
MTFGNkFFOUFCMDA1N0I4MDMgLyogc3JjICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNh
ID0gUEJYR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4RTc5NDI2NTFGNkFFOUFCMDA1N0I4MDMgLyoganNvbiAqLywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2QTFGNkFFOUFCMDA1N0I4MDMgLyog
UkVBRE1FICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZCMUY2QUU5QUIw
MDU3QjgwMyAvKiB2cmNvbW1vbiAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5
NDI2MjFGNkFFOUFCMDA1N0I4MDMgLyogQ01ha2VMaXN0cy50eHQgKi8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOEU3OTQyNjMxRjZBRTlBQjAwNTdCODAzIC8qIEluZm8ucGxpc3QgKi8s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjQxRjZBRTlBQjAwNTdCODAzIC8q
IGl2cmNsaWVudGNvcmUuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2
ODFGNkFFOUFCMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyNjkxRjZBRTlBQjAwNTdCODAzIC8qIG9wZW52cl9hcGlfcHVibGljLmNw
cCAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBwYXRo
ID0gc3JjOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKyAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNjUxRjZBRTlBQjAwNTdCODAzIC8q
IGpzb24gKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAgICAg
ICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDhFNzk0MjY2MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRzLmggKi8sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjcxRjZBRTlBQjAwNTdCODAzIC8qIGpzb24uaCAq
LywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBwYXRoID0g
anNvbjsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjZCMUY2QUU5QUIwMDU3QjgwMyAvKiB2
cmNvbW1vbiAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAg
ICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOEU3OTQyNkMxRjZBRTlBQjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAgKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNkQxRjZBRTlBQjAwNTdCODAzIC8qIGRp
cnRvb2xzX3B1YmxpYy5oICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZF
MUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuY3BwICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0MjZGMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29s
c19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3MDFGNkFF
OUFCMDA1N0I4MDMgLyogaG1kZXJyb3JzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU3OTQyNzExRjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMu
aCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3MjFGNkFFOUFCMDA1N0I4
MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOEU3OTQyNzMxRjZBRTlBQjAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuaCAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3NDFGNkFFOUFCMDA1N0I4MDMgLyogc2hh
cmVkbGlidG9vbHNfcHVibGljLmNwcCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
RTc5NDI3NTFGNkFFOUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmggKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzYxRjZBRTlBQjAwNTdCODAzIC8qIHN0
cnRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQy
NzcxRjZBRTlBQjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0Mjc4MUY2QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3Ry
eV9wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjc5MUY2
QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBwYXRoID0gdnJjb21tb247CisgICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICA4RTc5NDI3QTFGNkFGMDVFMDA1N0I4MDMgLyogaGVhZGVycyAqLyA9
IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAgICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyN0Ix
RjZBRjA1RTAwNTdCODAzIC8qIG9wZW52ci5oICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjdDMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpLmNzICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdEMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJf
YXBpLmpzb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyN0UxRjZBRjA1
RTAwNTdCODAzIC8qIG9wZW52cl9jYXBpLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOEU3OTQyN0YxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBwYXRoID0gaGVhZGVyczsK
KyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgIDhFNzk0Mjg1MUY2QUY2MkUwMDU3QjgwMyAvKiBQcm9kdWN0
cyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyODQxRjZBRjYyRTAwNTdCODAzIC8qIGxpYm9wZW52ci5hICovLAorICAgICAgICAgICAgICAg
ICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBQcm9kdWN0czsKKyAgICAgICAg
ICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAgICAgICAgICAgIH07Cisv
KiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFz
ZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgyMUY2QUY2MkUwMDU3QjgwMyAvKiBI
ZWFkZXJzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYSGVhZGVyc0J1aWxk
UGhhc2U7CisgICAgICAgICAgICAgICAgICAgICBidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgPSAoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOEU3OTQyOTgxRjZBRjc4RDAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5oIGluIEhl
YWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOTkxRjZBRjc4RDAw
NTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyOUExRjZBRjc4RDAwNTdCODAzIC8qIGhtZGVycm9yc19w
dWJsaWMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0
Mjk1MUY2QUY3OEQwMDU3QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggaW4gSGVhZGVycyAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5NjFGNkFGNzhEMDA1N0I4MDMgLyoganNv
bi1mb3J3YXJkcy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OEU3OTQyOTcxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24uaCBpbiBIZWFkZXJzICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjkyMUY2QUY3MUQwMDU3QjgwMyAvKiBvcGVudnIu
aCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjkzMUY2
QUY3MUQwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyOTQxRjZBRjcxRDAwNTdCODAzIC8qIG9wZW52cl9kcml2
ZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjlC
MUY2QUY3OEQwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5QzFGNkFGNzhEMDA1N0I4MDMgLyogc2hh
cmVkbGlidG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTc5NDI5RDFGNkFGNzhEMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmggaW4g
SGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5RTFGNkFGNzhE
MDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggaW4gSGVhZGVycyAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBQQlhIZWFk
ZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0
aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgzMUY2QUY2MkUwMDU3QjgwMyAvKiBvcGVudnIg
Ki8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisgICAg
ICAgICAgICAgICAgICAgICBidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gOEU3OTQyODYxRjZBRjYy
RTAwNTdCODAzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0
ICJvcGVudnIiICovOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRQaGFzZXMgPSAoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODAxRjZBRjYyRTAwNTdCODAzIC8qIFNvdXJj
ZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODExRjZBRjYyRTAwNTdC
ODAzIC8qIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQy
ODIxRjZBRjYyRTAwNTdCODAzIC8qIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAp
OworICAgICAgICAgICAgICAgICAgICAgYnVpbGRSdWxlcyA9ICgKKyAgICAgICAgICAgICAgICAg
ICAgICk7CisgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSAoCisgICAgICAgICAg
ICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG9wZW52cjsKKyAgICAg
ICAgICAgICAgICAgICAgIHByb2R1Y3ROYW1lID0gb3BlbnZyOworICAgICAgICAgICAgICAgICAg
ICAgcHJvZHVjdFJlZmVyZW5jZSA9IDhFNzk0Mjg0MUY2QUY2MkUwMDU3QjgwMyAvKiBsaWJvcGVu
dnIuYSAqLzsKKyAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5w
cm9kdWN0LXR5cGUubGlicmFyeS5zdGF0aWMiOworICAgICAgICAgICAgICB9OworLyogRW5kIFBC
WE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWFByb2plY3Qgc2VjdGlvbiAq
LworICAgICAgICAgICAgICA4RTc5NDI1QjFGNkFFOTY2MDA1N0I4MDMgLyogUHJvamVjdCBvYmpl
Y3QgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhQcm9qZWN0OworICAgICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMYXN0VXBncmFkZUNoZWNrID0gMDgzMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
YXJnZXRBdHRyaWJ1dGVzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
RTc5NDI4MzFGNkFGNjJFMDA1N0I4MDMgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDcmVhdGVkT25Ub29sc1ZlcnNpb24gPSA4LjMuMzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3Zpc2lvbmluZ1N0eWxlID0gQXV0b21h
dGljOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDhFNzk0MjVFMUY2QUU5NjYwMDU3Qjgw
MyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIm9wZW52ciIgKi87
CisgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAzLjIi
OworICAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOworICAg
ICAgICAgICAgICAgICAgICAgaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDA7CisgICAgICAgICAg
ICAgICAgICAgICBrbm93blJlZ2lvbnMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW4sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgbWFpbkdy
b3VwID0gOEU3OTQyNUExRjZBRTk2NjAwNTdCODAzOworICAgICAgICAgICAgICAgICAgICAgcHJv
ZHVjdFJlZkdyb3VwID0gOEU3OTQyODUxRjZBRjYyRTAwNTdCODAzIC8qIFByb2R1Y3RzICovOwor
ICAgICAgICAgICAgICAgICAgICAgcHJvamVjdERpclBhdGggPSAiIjsKKyAgICAgICAgICAgICAg
ICAgICAgIHByb2plY3RSb290ID0gIiI7CisgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzID0g
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgzMUY2QUY2MkUwMDU3QjgwMyAv
KiBvcGVudnIgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICB9Owor
LyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhTb3VyY2VzQnVpbGRQ
aGFzZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgwMUY2QUY2MkUwMDU3QjgwMyAv
KiBTb3VyY2VzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYU291cmNlc0J1
aWxkUGhhc2U7CisgICAgICAgICAgICAgICAgICAgICBidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgPSAoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyODkxRjZBRjZEMzAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAg
aW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4QTFGNkFG
NkQzMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjhCMUY2QUY2RDMwMDU3QjgwMyAvKiBobWRl
cnJvcnNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjkwMUY2QUY2RUUwMDU3QjgwMyAvKiBqc29uY3BwLmNwcCBpbiBTb3VyY2VzICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjkxMUY2QUY2RUUwMDU3QjgwMyAv
KiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4RTc5NDI4QzFGNkFGNkQzMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5j
cHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4RDFG
NkFGNkQzMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2VzICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjhFMUY2QUY2RDMwMDU3QjgwMyAv
KiBzdHJ0b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyOEYxRjZBRjZEMzAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1Ymxp
Yy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAg
ICAgICAgICAgICBydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKyAgICAg
ICAgICAgICAgfTsKKy8qIEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8q
IEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU3
OTQyNUYxRjZBRTk2NjAwNTdCODAzIC8qIERlYnVnICovID0geworICAgICAgICAgICAgICAgICAg
ICAgaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAgICAgICAgICAgICAgICAgICBidWls
ZFNldHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9TRUFSQ0hf
UEFUSFMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAg
ICAgIG5hbWUgPSBEZWJ1ZzsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQy
NjAxRjZBRTk2NjAwNTdCODAzIC8qIFJlbGVhc2UgKi8gPSB7CisgICAgICAgICAgICAgICAgICAg
ICBpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxk
U2V0dGluZ3MgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEVBREVSX1NFQVJDSF9Q
QVRIUyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAg
ICAgbmFtZSA9IFJlbGVhc2U7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0
Mjg3MUY2QUY2MkUwMDU3QjgwMyAvKiBEZWJ1ZyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAg
IGlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRT
ZXR0aW5ncyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTFdBWVNfU0VBUkNIX1VT
RVJfUEFUSFMgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19BTkFMWVpF
Ul9OT05OVUxMID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0FOQUxZ
WkVSX05VTUJFUl9PQkpFQ1RfQ09OVkVSU0lPTiA9IFlFU19BR0dSRVNTSVZFOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENMQU5HX0NYWF9MQU5HVUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJj
KysiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0VOQUJMRV9NT0RVTEVTID0g
WUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0VOQUJMRV9PQkpDX0FSQyA9
IE5POworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fQk9PTF9DT05WRVJT
SU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fQ09OU1RB
TlRfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19X
QVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDTEFOR19XQVJOX0RPQ1VNRU5UQVRJT05fQ09NTUVOVFMgPSBZRVM7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9FTVBUWV9CT0RZID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVT
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fSU5GSU5JVEVfUkVDVVJT
SU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fSU5UX0NP
TlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9P
QkpDX1JPT1RfQ0xBU1MgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q0xBTkdfV0FSTl9TVVNQSUNJT1VTX01PVkUgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVTOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09ERV9TSUdOX0lERU5USVRZID0gIi0iOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSBkd2FyZjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFTkFCTEVfU1RSSUNUX09CSkNfTVNHU0VORCA9IFlF
UzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkFCTEVfVEVTVEFCSUxJVFkgPSBZRVM7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5
OTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfRFlOQU1JQ19OT19QSUMgPSBOTzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMID0gMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05T
ID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUE9TSVg9MSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPU1g9MSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJWUl9BUElfUFVCTElDPTEiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiUExBVEZPUk1fTkFNRT1vc3giLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fNjRfVE9f
MzJfQklUX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ND
X1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JF
U1NJVkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5VU0VEX0ZVTkNU
SU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOVVNFRF9W
QVJJQUJMRSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVQgPSAxMC4xMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVExfRU5B
QkxFX0RFQlVHX0lORk8gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT05MWV9B
Q1RJVkVfQVJDSCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUl9DUExV
U1BMVVNGTEFHUyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQoT1RI
RVJfQ0ZMQUdTKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItZmV4Y2Vw
dGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTREtST09UID0gbWFjb3N4OworICAgICAgICAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBEZWJ1ZzsKKyAgICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgICAgOEU3OTQyODgxRjZBRjYyRTAwNTdCODAzIC8qIFJlbGVhc2UgKi8gPSB7
CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKyAgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkU2V0dGluZ3MgPSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ0xBTkdfQU5BTFlaRVJfTk9OTlVMTCA9IFlFUzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDTEFOR19BTkFMWVpFUl9OVU1CRVJfT0JKRUNUX0NPTlZFUlNJT04gPSBZRVNf
QUdHUkVTU0lWRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19DWFhfTEFOR1VB
R0VfU1RBTkRBUkQgPSAiZ251KysweCI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xB
TkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
TEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
TEFOR19FTkFCTEVfT0JKQ19BUkMgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
TEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJS
T1I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9O
X0NPTU1FTlRTID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5f
RU1QVFlfQk9EWSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJO
X0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFO
R19XQVJOX0lORklOSVRFX1JFQ1VSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fU1VTUElDSU9VU19NT1ZFID0gWUVTOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9
IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX19EVVBMSUNBVEVf
TUVUSE9EX01BVENIID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPREVfU0lH
Tl9JREVOVElUWSA9ICItIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT1BZX1BIQVNF
X1NUUklQID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdfSU5GT1JNQVRJ
T05fRk9STUFUID0gImR3YXJmLXdpdGgtZHN5bSI7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRU5BQkxFX05TX0FTU0VSVElPTlMgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFTkFCTEVfU1RSSUNUX09CSkNfTVNHU0VORCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFWEVDVVRBQkxFX1BSRUZJWCA9IGxpYjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdDQ19OT19DT01NT05fQkxPQ0tTID0gWUVTOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJQT1NJWD0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIk9TWD0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlZSX0FQSV9QVUJMSUM9MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQ
TEFURk9STV9OQU1FPW9zeCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lPTiA9
IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9BQk9VVF9SRVRVUk5f
VFlQRSA9IFlFU19FUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9V
TkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
Q19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEy
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5P
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9USEVSX0NQTFVTUExVU0ZMQUdTID0gKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJChPVEhFUl9DRkxBR1MpIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1mZXhjZXB0aW9ucyIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9E
VUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNES1JPT1QgPSBtYWNvc3g7CisgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgICAgICAgbmFtZSA9IFJlbGVhc2U7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgWENCdWls
ZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0
IHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU3OTQyNUUxRjZBRTk2NjAwNTdCODAzIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAib3BlbnZyIiAqLyA9IHsKKyAg
ICAgICAgICAgICAgICAgICAgIGlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisgICAgICAgICAg
ICAgICAgICAgICBidWlsZENvbmZpZ3VyYXRpb25zID0gKAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0MjVGMUY2QUU5NjYwMDU3QjgwMyAvKiBEZWJ1ZyAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4RTc5NDI2MDFGNkFFOTY2MDA1N0I4MDMgLyogUmVsZWFzZSAqLywK
KyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29u
ZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICA4RTc5NDI4NjFGNkFGNjJFMDA1N0I4MDMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhOYXRpdmVUYXJnZXQgIm9wZW52ciIgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworICAgICAgICAgICAgICAgICAgICAgYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4NzFGNkFG
NjJFMDA1N0I4MDMgLyogRGVidWcgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyODgxRjZBRjYyRTAwNTdCODAzIC8qIFJlbGVhc2UgKi8sCisgICAgICAgICAgICAgICAgICAg
ICApOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUg
PSAwOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVs
ZWFzZTsKKyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rp
b24gKi8KKyAgICAgICB9OworICAgICAgIHJvb3RPYmplY3QgPSA4RTc5NDI1QjFGNkFFOTY2MDA1
N0I4MDMgLyogUHJvamVjdCBvYmplY3QgKi87Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9wYXRjaGVzL2NtYWtlLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4OTYzYzIwZWE3
MzBlOWY2OGI3OWUzYjlkNmZhYTkzODM0ZDU5NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaApAQCAtMCwwICsxLDk0
IEBACitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXgg
OTRkZTNjZS4uNmRlY2VkZCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFr
ZUxpc3RzLnR4dAorQEAgLTEsMTQgKzEsOCBAQAorICMgU2V0IHRoZSBtaW5pbXVtIHJlcXVpcmVk
IHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KKyBjbWFrZV9taW5pbXVtX3JlcXVp
cmVkKFZFUlNJT04gMi44KQorIAorLSMgU2V0IHByb2plY3QgbmFtZS4KKy1wcm9qZWN0KE9wZW5W
UlNESykKKy0KKyAjIFNldHVwIHNvbWUgb3B0aW9ucy4KKyBvcHRpb24oQlVJTERfU0hBUkVEICJC
dWlsZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikKKy1vcHRpb24oQlVJTERf
RlJBTUVXT1JLICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgYW4gYXBwbGUgRnJhbWV3b3JrIiBPRkYp
Cistb3B0aW9uKEJVSUxEX1VOSVZFUlNBTCAiQnVpbGRzIHRoZSBzaGFyZWQgb3IgZnJhbWV3b3Jr
IGFzIGEgdW5pdmVyc2FsIChmYXQsIDMyLSAmIDY0LWJpdCkgYmluYXJ5IiBPTikKKy1vcHRpb24o
QlVJTERfT1NYX0kzODYgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1ld29yayBhcyBhIDMyLWJp
dCBiaW5hcnksIGV2ZW4gb24gYSA2NC1iaXQgcGxhdGZvcm0iIE9GRikKKyBvcHRpb24oVVNFX0xJ
QkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9OKQorIG9wdGlvbihVU0Vf
Q1VTVE9NX0xJQkNYWCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikKKyAKK0BAIC0zNywyMSAr
MzEsOSBAQCBlbHNlaWYoQVBQTEUpCisgICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIu
KkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioiKQorICAg
ICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikKKyAgICAgYWRkX2RlZmluaXRpb25zKC1ET1NYIC1E
UE9TSVgpCistICAgIGlmKEJVSUxEX1VOSVZFUlNBTCkKKy0gICAgICBzZXQoQ01BS0VfT1NYX0FS
Q0hJVEVDVFVSRVMgImkzODY7eDg2XzY0IikKKy0gICAgZW5kaWYoKQorLSAgICBpZihCVUlMRF9P
U1hfSTM4NikKKy0gICAgICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjMyIikKKy0gICAgICBzZXQoQ01B
S0VfT1NYX0FSQ0hJVEVDVFVSRVMgImkzODYiKQorLSAgICBlbmRpZigpCisgICBlbmRpZigpCisg
ZW5kaWYoKQorIAorLSMgU2V0IG91dHB1dCBmb2xkZXIgZm9yIHN0YXRpYyBhbmQgc2hhcmVkIGxp
YnJhcmllcworLXNldChDTUFLRV9MSUJSQVJZX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VS
Q0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQorLXNldChDTUFL
RV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFU
Rk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQorLXNldChDTUFLRV9SVU5USU1FX09VVFBVVF9E
SVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VT
U09SX0FSQ0h9KQorLQorICMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KKyBpZihDTUFLRV9DT01Q
SUxFUl9JU19HTlVDQyBPUiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKKyAg
ICAgICAgIyBFbmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGljaCBzaG91bGRuJ3QgYmUg
dmlzaWJsZQorZGlmZiAtLWdpdCBhL3NyYy9DTWFrZUxpc3RzLnR4dCBiL3NyYy9DTWFrZUxpc3Rz
LnR4dAoraW5kZXggNTg5NTRkNi4uOGI1MzdhZiAxMDA2NDQKKy0tLSBhL3NyYy9DTWFrZUxpc3Rz
LnR4dAorKysrIGIvc3JjL0NNYWtlTGlzdHMudHh0CitAQCAtMyw2ICszLDkgQEAgcHJvamVjdChv
cGVudnJfYXBpKQorIAorIHNldCggTElCTkFNRSAib3BlbnZyX2FwaSIgKQorIAorK3NldChFWENF
UFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCisrYWRkX2RlZmluaXRpb25zKCR7RVhDRVBUSU9O
X0ZMQUdTfSkKKysKKyAjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3BlY2lmaWMgZmlsZXMuCisg
aWYoQVBQTEUpCisgICBzZXQoQ01BS0VfTUFDT1NYX1JQQVRIIDEpCitAQCAtMjIsNyArMjUsNyBA
QCBlbHNlaWYoV0lOMzIpCisgZW5kaWYoKQorIAorICMgQWRkIGluY2x1ZGUgZm9sZGVycy4KKy1p
bmNsdWRlX2RpcmVjdG9yaWVzKCR7Q01BS0VfU09VUkNFX0RJUn0vc3JjICR7Q01BS0VfU09VUkNF
X0RJUn0vaGVhZGVycyAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy92cmNvbW1vbikKKytpbmNsdWRl
X2RpcmVjdG9yaWVzKCR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMgJHtQUk9KRUNUX1NPVVJD
RV9ESVJ9Ly4uL2hlYWRlcnMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy92cmNvbW1vbikK
KyAKKyBpZihVU0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICAgbGlua19kaXJlY3RvcmllcygKK0BA
IC02NSwyMiArNjgsMjIgQEAgZWxzZWlmKEJVSUxEX0ZSQU1FV09SSykKKyAgICAgICAgc2V0KCBM
SUJOQU1FICJPcGVuVlIiICkKKyAgICAgICAgYWRkX2xpYnJhcnkoICR7TElCTkFNRX0gCisgICAg
ICAgICAgICAgU0hBUkVEICR7U09VUkNFX0ZJTEVTfQorLSAgICAgICAgICAgICR7Q01BS0VfU09V
UkNFX0RJUn0vaGVhZGVycy9vcGVudnIuaAorLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnJfYXBpLmNzCistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnJfY2FwaS5oCistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9oZWFkZXJzL29wZW52cl9kcml2ZXIuaAorKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzL29wZW52ci5oCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9E
SVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jcworKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VS
Q0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorKyAgICAgICAgICAgICR7UFJPSkVD
VF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmgKKysgICAgICAgICAgICAke1BS
T0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKyAgICAgICAgKQor
ICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoT3BlblZSIFBST1BFUlRJRVMKKyAgICAgICAg
ICAgICAgIEZSQU1FV09SSyBUUlVFCisgICAgICAgICAgICAgICBGUkFNRVdPUktfVkVSU0lPTiBB
CisgICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lERU5USUZJRVIgY29tLnZhbHZlc29m
dHdhcmUuT3BlblZSLmZyYW1ld29yaworLSAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19J
TkZPX1BMSVNUICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL0luZm8ucGxpc3QKKysgICAgICAgICAg
ICAgIE1BQ09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4v
c3JjL0luZm8ucGxpc3QKKyAgICAgICAgICAgICAgICMgImN1cnJlbnQgdmVyc2lvbiIgaW4gc2Vt
YW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQorICAgICAgICAgICAgICAgVkVSU0lP
TiAxLjAuNgorICAgICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJzaW9uIiBpbiBzZW1h
bnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgICBTT1ZFUlNJ
T04gMS4wLjAKKy0gICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnIuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2Fw
aS5jczske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uOyR7Q01BS0Vf
U09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7Q01BS0VfU09VUkNFX0RJUn0vaGVh
ZGVycy9vcGVudnJfZHJpdmVyLmgiCisrICAgICAgICAgICAgICBQVUJMSUNfSEVBREVSICIke1BS
T0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnIuaDske1BST0pFQ1RfU09VUkNFX0RJ
Un0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmNzOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFk
ZXJzL29wZW52cl9hcGkuanNvbjske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVu
dnJfY2FwaS5oOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9kcml2ZXIu
aCIKKyAgICAgICAgICAgICAgIExJTktFUl9MQU5HVUFHRSBDWFgKKyAgICAgICAgKQorIGVsc2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDUwZTY4OThmOWUzYmZhZDM2ZDc4ZTkzZjg2YzAzNTlhMDQ2MDNlMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvQ01ha2VMaXN0cy50eHQKQEAgLTAs
MCArMSw5OSBAQAorIyBQcm9qZWN0IG5hbWUuCitwcm9qZWN0KG9wZW52cl9hcGkpCisKK3NldCgg
TElCTkFNRSAib3BlbnZyX2FwaSIgKQorCitzZXQoRVhDRVBUSU9OX0ZMQUdTICItZmV4Y2VwdGlv
bnMiKQorYWRkX2RlZmluaXRpb25zKCR7RVhDRVBUSU9OX0ZMQUdTfSkKKworIyBTZXQgc29tZSBw
cm9wZXJpZXMgZm9yIHNwZWNpZmljIGZpbGVzLgoraWYoQVBQTEUpCisgIHNldChDTUFLRV9NQUNP
U1hfUlBBVEggMSkKKyAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiRGFyd2luIikKKyAg
ICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXModnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5j
cHAgdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCBQUk9QRVJUSUVTIENPTVBJTEVf
RkxBR1MgIi14IG9iamVjdGl2ZS1jKysiKQorICBlbmRpZigpCisgIGlmKEJVSUxEX1NIQVJFRCBP
UiBCVUlMRF9GUkFNRVdPUkspCisgICAgZmluZF9saWJyYXJ5KEZPVU5EQVRJT05fRlJBTUVXT1JL
IEZvdW5kYXRpb24pCisgICAgbWFya19hc19hZHZhbmNlZChGT1VOREFUSU9OX0ZSQU1FV09SSykK
KyAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9ICR7Rk9VTkRBVElPTl9GUkFNRVdPUkt9
KQorICBlbmRpZihCVUlMRF9TSEFSRUQgT1IgQlVJTERfRlJBTUVXT1JLKQorZWxzZWlmKFdJTjMy
KQorICBpZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDgpCisgICAgYWRkX2RlZmluaXRpb25z
KCAtRFdJTjY0ICkKKyAgICBzZXQoIExJQk5BTUUgIm9wZW52cl9hcGk2NCIgKQorICBlbmRpZigp
CitlbmRpZigpCisKKyMgQWRkIGluY2x1ZGUgZm9sZGVycy4KK2luY2x1ZGVfZGlyZWN0b3JpZXMo
JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYyAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVh
ZGVycyAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjL3ZyY29tbW9uKQorCitpZihVU0VfQ1VT
VE9NX0xJQkNYWCkKKyAgICAgICBsaW5rX2RpcmVjdG9yaWVzKAorICAgICAgICAgICAgICAke0xJ
QkNYWF9MSUJfRElSfQorICAgICAgICkKK2VuZGlmKCkKKworIyBTZXQgdGhlIHNvdXJjZSBncm91
cCBhbmQgZmlsZXMuCitzZXQoQ09SRV9GSUxFUworICAgICAgIG9wZW52cl9hcGlfcHVibGljLmNw
cAorICAgICAgIGpzb25jcHAuY3BwCispCitzZXQoVlJDT01NT05fRklMRVMKKyAgICAgICB2cmNv
bW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vZW52dmFydG9vbHNfcHVi
bGljLmNwcAorICAgICAgIHZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwCisgICAgICAgdnJj
b21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL2htZGVycm9y
c19wdWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcAor
ICAgICAgIHZyY29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAKKykKKworc2V0KFNPVVJDRV9GSUxF
UworICAgICAgICR7Q09SRV9GSUxFU30KKyAgICAgICAke1ZSQ09NTU9OX0ZJTEVTfQorKQorCitz
b3VyY2VfZ3JvdXAoIlNyYyIgRklMRVMKKyAgICAgICAke0NPUkVfRklMRVN9CispCisKK3NvdXJj
ZV9ncm91cCgiVlJDb21tb24iIEZJTEVTCisgICAgICAgJHtWUkNPTU1PTl9GSUxFU30KKykKKwor
IyBCdWlsZCB0aGUgbGlicmFyeS4KK2lmKEJVSUxEX1NIQVJFRCkKKyAgICAgICBhZGRfbGlicmFy
eSgke0xJQk5BTUV9IFNIQVJFRCAke1NPVVJDRV9GSUxFU30pCitlbHNlaWYoQlVJTERfRlJBTUVX
T1JLKQorICAgICAgIHNldCggTElCTkFNRSAiT3BlblZSIiApCisgICAgICAgYWRkX2xpYnJhcnko
ICR7TElCTkFNRX0gCisgICAgICAgICAgICBTSEFSRUQgJHtTT1VSQ0VfRklMRVN9CisgICAgICAg
ICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnIuaAorICAgICAgICAg
ICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jcworICAgICAg
ICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCisg
ICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5o
CisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfZHJp
dmVyLmgKKyAgICAgICApCisgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQUk9Q
RVJUSUVTCisgICAgICAgICAgICAgIEZSQU1FV09SSyBUUlVFCisgICAgICAgICAgICAgIEZSQU1F
V09SS19WRVJTSU9OIEEKKyAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVOVElGSUVS
IGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKKyAgICAgICAgICAgICAgTUFDT1NY
X0ZSQU1FV09SS19JTkZPX1BMSVNUICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMvSW5mby5w
bGlzdAorICAgICAgICAgICAgICAjICJjdXJyZW50IHZlcnNpb24iIGluIHNlbWFudGljIGZvcm1h
dCBpbiBNYWNoLU8gYmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgVkVSU0lPTiAxLjAuNgorICAg
ICAgICAgICAgICAjICJjb21wYXRpYmlsaXR5IHZlcnNpb24iIGluIHNlbWFudGljIGZvcm1hdCBp
biBNYWNoLU8gYmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgU09WRVJTSU9OIDEuMC4wCisgICAg
ICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJz
L29wZW52ci5oOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuY3M7
JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uOyR7UFJPSkVD
VF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmg7JHtQUk9KRUNUX1NPVVJDRV9E
SVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIgorICAgICAgICAgICAgICBMSU5LRVJfTEFO
R1VBR0UgQ1hYCisgICAgICAgKQorZWxzZSgpCisgICAgICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1F
fSBTVEFUSUMgJHtTT1VSQ0VfRklMRVN9KQorZW5kaWYoKQorCitpZihVU0VfQ1VTVE9NX0xJQkNY
WCkKKyAgICAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9IGMrKyBjKythYmkpCitlbmRp
ZigpCisKK3RhcmdldF9saW5rX2xpYnJhcmllcygke0xJQk5BTUV9ICR7RVhUUkFfTElCU30pCisK
K2luc3RhbGwoVEFSR0VUUyAke0xJQk5BTUV9IERFU1RJTkFUSU9OIGxpYikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdCBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWU1Njk4MDg3ZjA5MzkxNDU4
YmIxOTdhZDhkODE3ZWVkZWI4MjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9JbmZvLnBsaXN0CkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisgICAgICAgPGtl
eT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKyAgICAgICA8c3RyaW5nPmNvbS52YWx2ZXNvZnR3
YXJlLk9wZW5WUi5mcmFtZXdvcms8L3N0cmluZz4KKyAgICAgICA8a2V5PkNGQnVuZGxlSW5mb0Rp
Y3Rpb25hcnlWZXJzaW9uPC9rZXk+CisgICAgICAgPHN0cmluZz42LjA8L3N0cmluZz4KKyAgICAg
ICA8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorICAgICAgIDxzdHJpbmc+T3BlblZSPC9zdHJpbmc+
CisgICAgICAgPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisgICAgICAgPHN0cmluZz5G
TVdLPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5
PgorICAgICAgIDxzdHJpbmc+MS4wPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZVZlcnNp
b248L2tleT4KKyAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgorPC9kaWN0PgorPC9wbGlzdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI2YzU4ZGE3OWZiOTRl
MDJkY2ZlY2QyNmE1ZTU1MmQ5YWE1OGFjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCkBAIC0wLDAgKzEsMzkgQEAKK1RoaXMgaXMgdGhlIHNv
dXJjZSBjb2RlIGZvciB0aGUgT3BlblZSIEFQSSBjbGllbnQgYmluZGluZyBsaWJyYXJ5IHdoaWNo
IGNvbm5lY3RzCitPcGVuVlIgYXBwbGljYXRpb25zIHRvIHRoZSBTdGVhbVZSIHJ1bnRpbWUsIHRh
a2luZyBpbnRvIGFjY291bnQgdGhlIHZlcnNpb24KK29mIHRoZSBPcGVuVlIgaW50ZXJmYWNlIHRo
ZXkgd2VyZSBjb21waWxlZCBhZ2FpbnN0LgorCitUaGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeSAt
IG9wZW52cl9hcGkuZGxsIG9uIFdpbmRvd3MsIG9wZW52cl9hcGkuc28gb24KK0xpbnV4LCBhbmQg
b3BlbnZyX2FwaS5keWxpYiBvciBPcGVuVlIuZnJhbWV3b3JrIG9uIG1hY09TIC0ga25vd3MgaG93
IHRvIGZpbmQKK2FuZCByZWFkIHRoZSBTdGVhbVZSIHJ1bnRpbWUgaW5zdGFsbGF0aW9uIGluZm9y
bWF0aW9uIHdoaWNoIGFsbG93cyBpdCB0bworZmluZCBhbmQgZHluYW1pY2FsbHkgY29ubmVjdCB0
byB0aGUgaW5zdGFsbGVkIHJ1bnRpbWUuIEluIGNvbWJpbmF0aW9uIHdpdGggdGhlCitpbnRlcmZh
Y2UgdmVyc2lvbiBpZGVudGlmaWVycyBmcm9tIC9pbmNsdWRlL29wZW52ci5oIHdoaWNoIGFyZSBi
YWtlZAoraW50byBhcHBsaWNhdGlvbnMgYXQgdGhlIHRpbWUgdGhleSBhcmUgYnVpbHQsIHRoZSBP
cGVuVlIgQVBJIGNsaWVudAorYmluZGluZyBsaWJyYXJ5IGNhcHR1cmVzIGFuZCBjb252ZXlzIHRv
IHRoZSBTdGVhbVZSIHJ1bnRpbWUgdGhlIHZlcnNpb24KK29mIHRoZSBPcGVuVlIgQVBJIGludGVy
ZmFjZSBiZWhhdmlvciB0aGF0IHRoZSBhcHBsaWNhdGlvbiBleHBlY3RzLgorCitBcHBsaWNhdGlv
bnMgY2Fycnkgd2l0aCB0aGVtIGEgcHJpdmF0ZS9sb2NhbCBjb3B5IG9mIHRoZSBjbGllbnQgYmlu
ZGluZworbGlicmFyeSB3aGVuIHRoZXkgc2hpcCwgYW5kIHRoZXkgc2hvdWxkIGluc3RhbGwgaXQg
bG9jYWxseSB0byB0aGVpcgorYXBwbGljYXRpb24uICBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBp
bnN0YWxsIHRoZSBjbGllbnQgYmluZGluZyBsaWJyYXJ5CitnbG9iYWxseSBvciBhdHRlbXB0IHRv
IGxpbmsgdG8gYSBnbG9iYWxseSBpbnN0YWxsZWQgY2xpZW50IGJpbmRpbmcgbGlicmFyeS4KK0Rv
aW5nIHNvIG5lZ2F0ZXMgYXQgbGVhc3QgcGFydCBvZiB0aGUgYWJpbGl0eSBmb3IgdGhlIGNsaWVu
dCBiaW5kaW5nIGxpYnJhcnkKK3RvIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGUgdmVyc2lvbiBvZiB0
aGUgT3BlblZSIEFQSSB0aGF0IHRoZSBhcHBsaWNhdGlvbgord2FzIGJ1aWx0IGFnYWluc3QsIGFu
ZCBzbyBoaW5kZXJzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBpbiB0aGUgZmFjZSBvZgorQVBJIGNo
YW5nZXMuCisKK01vc3QgYXBwbGljYXRpb25zIHNob3VsZCBzaW1wbHkgbGluayB0byBhbmQgcmVk
aXN0cmlidXRlIHdpdGggdGhlaXIgYXBwbGljYXRpb24KK3RoZSBwcmUtYnVpbHQgY2xpZW50IGJp
bmRpbmcgbGlicmFyeSBmb3VuZCBpbiB0aGUgL2JpbiBkaXJlY3Rvcnkgb2YgdGhpcworcmVwb3Np
dG9yeS4gU29tZSBzbWFsbCBudW1iZXIgb2YgYXBwbGljYXRpb25zIHdoaWNoIGhhdmUgc3BlY2lm
aWMgcmVxdWlyZW1lbnRzCithcm91bmQgcmVkaXN0cmlidXRpbmcgb25seSBiaW5hcmllcyB0aGV5
IGJ1aWxkIHRoZW1zZWx2ZXMgc2hvdWxkIGJ1aWxkCit0aGUgY2xpZW50IGxpYnJhcnkgZnJvbSB0
aGlzIHNvdXJjZSBhbmQgZWl0aGVyIHN0YXRpY2FsbHkgbGluayBpdCBpbnRvCit0aGVpciBhcHBs
aWNhdGlvbiBvciByZWRpc3RyaWJ1dGUgdGhlIGJpbmFyeSB0aGV5IGJ1aWxkLgorCitUaGlzIGlz
IGEgY21ha2UgcHJvamVjdCwgdG8gYnVpbGQgaXQgdXNlIHRoZSB2ZXJzaW9uIG9mIGNtYWtlIGFw
cHJvcHJpYXRlCitmb3IgeW91ciBwbGF0Zm9ybS4gRm9yIGV4YW1wbGUsIHRvIGJ1aWxkIG9uIGEg
UE9TSVggc3lzdGVtIHNpbXBseSBwZXJmb3JtCisKKyAgY2Qgc3JjOyBta2RpciBfYnVpbGQ7IGNk
IF9idWlsZDsgY21ha2UgLi47IG1ha2UKKworYW5kIHlvdSB3aWxsIGVuZCB1cCB3aXRoIHRoZSBz
dGF0aWMgbGlicmFyeSAvc3JjL2Jpbi88YXJjaD4vbGlib3BlbnZyX2FwaS5hCisKK1RvIGJ1aWxk
IGEgc2hhcmVkIGxpYnJhcnksIHBhc3MgLURCVUlMRF9TSEFSRUQ9MSB0byBjbWFrZS4KK1RvIGJ1
aWxkIGFzIGEgZnJhbWV3b3JrIG9uIGFwcGxlIHBsYXRmb3JtcywgcGFzcyAtREJVSUxEX0ZSQU1F
V09SSz0xIHRvIGNtYWtlLgorVG8gc2VlIGEgY29tcGxldGUgbGlzdCBvZiBjb25maWd1cmFibGUg
YnVpbGQgb3B0aW9ucywgdXNlIGBjbWFrZSAtTEFIYApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvc3JjL2l2cmNsaWVudGNvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWZlMzYwZWU0YWQ1MmM4Nzk5MGMy
NTE3NDZmMDFjYjg5YmJmMDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmgKQEAgLTAsMCArMSwzNSBAQAorLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UK
KworbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElWUkNsaWVudENvcmUKK3sKK3B1YmxpYzoKKyAg
ICAgICAvKiogSW5pdGlhbGl6ZXMgdGhlIHN5c3RlbSAqLworICAgICAgIHZpcnR1YWwgRVZSSW5p
dEVycm9yIEluaXQoIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29u
c3QgY2hhciAqcFN0YXJ0dXBJbmZvICkgPSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCBldmVy
eXRoaW5nIGluIHZyY2xpZW50LmRsbCBhbmQgcHJlcGFyZXMgdGhlIERMTCB0byBiZSB1bmxvYWRl
ZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkgPSAwOworCisgICAgICAgLyoqIGNo
ZWNrcyB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBpbnRlcmZhY2UvdmVyc2lvbiBpcyBzdXBwb3J0
ZWQgaW4gdGhpcyB2cmNsaWVudC5kbGwgKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBJ
c0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiAp
ID0gMDsKKworICAgICAgIC8qKiBSZXRyaWV2ZXMgYW55IGludGVyZmFjZSBmcm9tIHZyY2xpZW50
LmRsbCAqLworICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3Qg
Y2hhciAqcGNoTmFtZUFuZFZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvciApID0gMDsKKwor
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW55IGRyaXZlciBoYXMgYW4gSE1EIGF0dGFjaGVk
LiBDYW4gYmUgY2FsbGVkIG91dHNpZGUgb2YgSW5pdC9DbGVhbnVwICovCisgICAgICAgdmlydHVh
bCBib29sIEJJc0htZFByZXNlbnQoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhbiBFbmds
aXNoIGVycm9yIHN0cmluZyBmcm9tIGluc2lkZSB2cmNsaWVudC5kbGwgd2hpY2ggbWlnaHQgYmUg
bmV3ZXIgdGhhbiB0aGUgQVBJIERMTCAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0
RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApID0gMDsK
KworICAgICAgIC8qKiBSZXR1cm5zIGFuIGVycm9yIHN5bWJvbCBmcm9tIGluc2lkZSB2cmNsaWVu
dC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUgQVBJIERMTCAqLworICAgICAgIHZp
cnR1YWwgY29uc3QgY2hhciAqR2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBl
RXJyb3IgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNsaWVudENv
cmVfVmVyc2lvbiA9ICJJVlJDbGllbnRDb3JlXzAwMyI7CisKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2FyZHMuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTEw
YzdkZTk3NjRiNDIxODJiMDE3ZjcwZWUwMDkzMWJmNmU0OTA0OAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmgKQEAgLTAs
MCArMSwyODQgQEAKKy8vLyBKc29uLWNwcCBhbWFsZ2F0ZWQgZm9yd2FyZCBoZWFkZXIgKGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgorLy8vIEl0IGlzIGludGVuZGVkIHRvIGJlIHVz
ZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLWZvcndhcmRzLmgiCisvLy8gVGhpcyBoZWFkZXIg
cHJvdmlkZXMgZm9yd2FyZCBkZWNsYXJhdGlvbiBmb3IgYWxsIEpzb25DcHAgdHlwZXMuCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKworLyoKK1RoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29k
ZSwgaW5jbHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAKK3Rlc3RzIGFuZCBkZW1v
bnN0cmF0aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcK
K2NvbmRpdGlvbnMuLi4KKworVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNp
dGx5IGRpc2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAoranVyaXNkaWN0aW9ucyB3aGljaCByZWNv
Z25pemUgc3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCit0aGlzIHNv
ZnR3YXJlIGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4uCisKK0luIGp1cmlzZGlj
dGlvbnMgd2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcu
IEdlcm1hbnkgYXMgb2YKKzIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAw
Ny0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCityZWxlYXNlZCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgorCitJbiBqdXJpc2RpY3Rpb25z
IHdoaWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlz
IAorc29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBE
b21haW4sIDIpIHVuZGVyIHRoZSAKK2NvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUg
YmVsb3cpLCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKK1B1YmxpYyBEb21haW4vTUlU
IExpY2Vuc2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCisKK1Ro
ZSBNSVQgTGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGlj
ZW5zZSBjYW4gZ2V0LCBhbmQgaXMKK2Rlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBh
dDoKKworICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQorICAgCitU
aGUgZnVsbCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgorCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorCitQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorb2J0
YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv
dXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LAorbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCitvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKK2luY2x1ZGVkIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKK0JFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorQUNUSU9OIE9GIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NP
RlRXQVJFLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisoRU5EIExJQ0VOU0UgVEVYVCkKKworVGhlIE1JVCBs
aWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKK3Nv
ZnR3YXJlLCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4g
d2l0aCB0aGUKK21pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UKK2FuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2Rl
LiBOb3RlIGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCitQdWJsaWMgRG9tYWluICJsaWNlbnNl
IiB5b3UgY2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCitsaWNlbnNlIHlv
dSBsaWtlLgorCisqLworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBm
aWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworI2lmbmRlZiBKU09OX0ZP
UldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKKyMgZGVmaW5lIEpTT05fRk9SV0FSRF9BTUFMR0FU
RURfSF9JTkNMVURFRAorLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3VyY2Ug
ZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1c2lv
bi4KKyNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
QmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVy
CisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBk
ZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBm
aWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZv
cmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorI2RlZmlu
ZSBKU09OX0NPTkZJR19IX0lOQ0xVREVECisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhh
dCBqc29uIGxpYnJhcnkgaXMgZW1iZWRkZWQgaW4gQ3BwVEwgbGlicmFyeS4KKy8vIyBkZWZpbmUg
SlNPTl9JTl9DUFBUTCAxCisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIG1h
eSBsZXZlcmFnZSBDcHBUTCBsaWJyYXJ5CisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTCAxCisv
Ly8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgY3BwdGwgdmVjdG9yIGJhc2VkIG1hcCBzaG91
bGQgYmUgdXNlZCBpbnN0ZWFkIG9mCisvLy8gc3RkOjptYXAKKy8vLyBhcyBWYWx1ZSBjb250YWlu
ZXIuCisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUCAxCisKKy8vIElmIG5vbi16
ZXJvLCB0aGUgbGlicmFyeSB1c2VzIGV4Y2VwdGlvbnMgdG8gcmVwb3J0IGJhZCBpbnB1dCBpbnN0
ZWFkIG9mIEMKKy8vIGFzc2VydGlvbiBtYWNyb3MuIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSBleGNl
cHRpb25zLgorI2lmbmRlZiBKU09OX1VTRV9FWENFUFRJT04KKyNkZWZpbmUgSlNPTl9VU0VfRVhD
RVBUSU9OIDEKKyNlbmRpZgorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNv
dXJjZSBmaWxlIGlzIGFtYWxnYXRlZAorLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5j
bHVzaW9uLgorLy8vIFJlbWFya3M6IGl0IGlzIGF1dG9tYXRpY2FsbHkgZGVmaW5lZCBpbiB0aGUg
Z2VuZXJhdGVkIGFtYWxnYXRlZCBoZWFkZXIuCisvLyAjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFU
SU9OCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY29uZmlnLmg+Cisj
aWZuZGVmIEpTT05fVVNFX0NQUFRMCisjZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKyNlbmRpZgor
I2VuZGlmCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjZGVmaW5lIEpTT05fQVBJIENQUFRMX0FQ
SQorI2VsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQor
I2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9E
SVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19W
RVIpCisjZWxpZiBkZWZpbmVkKEpTT05fRExMKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVm
aW5lIEpTT05fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FC
TEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikK
KyNlbmRpZiAvLyBpZmRlZiBKU09OX0lOX0NQUFRMCisjaWYgIWRlZmluZWQoSlNPTl9BUEkpCisj
ZGVmaW5lIEpTT05fQVBJCisjZW5kaWYKKworLy8gSWYgSlNPTl9OT19JTlQ2NCBpcyBkZWZpbmVk
LCB0aGVuIEpzb24gb25seSBzdXBwb3J0IEMrKyAiaW50IiB0eXBlIGZvcgorLy8gaW50ZWdlcgor
Ly8gU3RvcmFnZXMsIGFuZCA2NCBiaXRzIGludGVnZXIgc3VwcG9ydCBpcyBkaXNhYmxlZC4KKy8v
ICNkZWZpbmUgSlNPTl9OT19JTlQ2NCAxCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNU1ZD
CisjICBpZiBfTVNDX1ZFUiA8PSAxMjAwIC8vIE1TVkMgNgorICAgIC8vIE1pY3Jvc29mdCBWaXN1
YWwgU3R1ZGlvIDYgb25seSBzdXBwb3J0IGNvbnZlcnNpb24gZnJvbSBfX2ludDY0IHRvIGRvdWJs
ZQorICAgIC8vIChubyBjb252ZXJzaW9uIGZyb20gdW5zaWduZWQgX19pbnQ2NCkuCisjICAgIGRl
ZmluZSBKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTiAxCisgICAgLy8gRGlzYWJsZSB3
YXJuaW5nIDQ3ODYgZm9yIFZTNiBjYXVzZWQgYnkgU1RMIChpZGVudGlmaWVyIHdhcyB0cnVuY2F0
ZWQgdG8gJzI1NScKKyAgICAvLyBjaGFyYWN0ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbikK
KyAgICAvLyBBbGwgcHJvamVjdHMgSSd2ZSBldmVyIHNlZW4gd2l0aCBWUzYgd2VyZSB1c2luZyB0
aGlzIGdsb2JhbGx5IChub3QgYm90aGVyaW5nCisgICAgLy8gd2l0aCBwcmFnbWEgcHVzaC9wb3Ap
LgorIyAgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDc4NikKKyMgIGVuZGlmIC8vIE1TVkMg
NgorCisjICBpZiBfTVNDX1ZFUiA+PSAxNTAwIC8vIE1TVkMgMjAwOAorICAgIC8vLyBJbmRpY2F0
ZXMgdGhhdCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCisjICAgIGRlZmlu
ZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3Nh
Z2UpKQorIyAgZW5kaWYKKworI2VuZGlmIC8vIGRlZmluZWQoX01TQ19WRVIpCisKKworI2lmbmRl
ZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYg
X01TQ19WRVIgPj0gMTYwMCAvLyBNU1ZDID49IDIwMTAKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVF
X1JFRkVSRU5DRVMgMQorI2VuZGlmIC8vIE1TVkMgPj0gMjAxMAorCisjaWZkZWYgX19jbGFuZ19f
CisjaWYgX19oYXNfZmVhdHVyZShjeHhfcnZhbHVlX3JlZmVyZW5jZXMpCisjZGVmaW5lIEpTT05f
SEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAgLy8gaGFzX2ZlYXR1cmUKKworI2VsaWYg
ZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFu
ZyBlbXVsYXRlcyBnY2MpCisjaWYgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykg
fHwgKF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTIDEKKyNlbmRpZiAgLy8gR1hYX0VYUEVSSU1FTlRBTAorCisjZW5kaWYgLy8gX19jbGFu
Z19fIHx8IF9fR05VQ19fCisKKyNlbmRpZiAvLyBub3QgZGVmaW5lZCBKU09OX0hBU19SVkFMVUVf
UkVGRVJFTkNFUworCisjaWZuZGVmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5l
IEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDAKKyNlbmRpZgorCisjaWZkZWYgX19jbGFuZ19f
CisjZWxpZiBkZWZpbmVkIF9fR05VQ19fIC8vIG5vdCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNp
bmNlIGNsYW5nIGVtdWxhdGVzIGdjYykKKyMgIGlmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19f
ID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gNSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJF
Q0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRlX18gKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyMg
IGVsaWYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+
PSAxKSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19hdHRyaWJ1
dGVfXygoX19kZXByZWNhdGVkX18pKQorIyAgZW5kaWYgIC8vIEdOVUMgdmVyc2lvbgorI2VuZGlm
IC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXworCisjaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNB
VEVEKQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkKKyNlbmRpZiAvLyBpZiAh
ZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCisKK25hbWVzcGFjZSBKc29uIHsKK3R5cGVkZWYg
aW50IEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFVJbnQ7CisjaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQordHlwZWRlZiBpbnQgTGFyZ2VzdEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IExh
cmdlc3RVSW50OworI3VuZGVmIEpTT05fSEFTX0lOVDY0CisjZWxzZSAgICAgICAgICAgICAgICAg
Ly8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorLy8gRm9yIE1pY3Jvc29mdCBWaXN1YWwgdXNl
IHNwZWNpZmljIHR5cGVzIGFzIGxvbmcgbG9uZyBpcyBub3Qgc3VwcG9ydGVkCisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KK3R5cGVkZWYgX19pbnQ2NCBJ
bnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBVSW50NjQ7CisjZWxzZSAgICAgICAgICAg
ICAgICAgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gT3RoZXIgcGxhdGZvcm1zLCB1c2UgbG9u
ZyBsb25nCit0eXBlZGVmIGxvbmcgbG9uZyBpbnQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgVUludDY0OworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCit0eXBl
ZGVmIEludDY0IExhcmdlc3RJbnQ7Cit0eXBlZGVmIFVJbnQ2NCBMYXJnZXN0VUludDsKKyNkZWZp
bmUgSlNPTl9IQVNfSU5UNjQKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit9
IC8vIGVuZCBuYW1lc3BhY2UgSnNvbgorCisjZW5kaWYgLy8gSlNPTl9DT05GSUdfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vY29uZmlnLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3
YXJkcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9GT1JXQVJEU19IX0lO
Q0xVREVECisjZGVmaW5lIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8g
d3JpdGVyLmgKK2NsYXNzIEZhc3RXcml0ZXI7CitjbGFzcyBTdHlsZWRXcml0ZXI7CisKKy8vIHJl
YWRlci5oCitjbGFzcyBSZWFkZXI7CisKKy8vIGZlYXR1cmVzLmgKK2NsYXNzIEZlYXR1cmVzOwor
CisvLyB2YWx1ZS5oCit0eXBlZGVmIHVuc2lnbmVkIGludCBBcnJheUluZGV4OworY2xhc3MgU3Rh
dGljU3RyaW5nOworY2xhc3MgUGF0aDsKK2NsYXNzIFBhdGhBcmd1bWVudDsKK2NsYXNzIFZhbHVl
OworY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitjbGFzcyBWYWx1ZUl0ZXJhdG9yOworY2xhc3Mg
VmFsdWVDb25zdEl0ZXJhdG9yOworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBK
U09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNv
bnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
KworCisKKworCisjZW5kaWYgLy9pZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xV
REVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNvbi5o
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MjdmNjVkOWRmYTg1MzZjMzVmZjQ3ZGUwODRmZWNlNzg5OGFiMWUxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24uaApAQCAtMCwwICsxLDIw
NzcgQEAKKy8vLyBKc29uLWNwcCBhbWFsZ2F0ZWQgaGVhZGVyIChodHRwOi8vanNvbmNwcC5zb3Vy
Y2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1
ZGUgImpzb24vanNvbi5oIgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29u
dGVudCBvZiBmaWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8qCitUaGUgSnNvbkNw
cCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1lbnRh
dGlvbiwgCit0ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNl
ZCB1bmRlciB0aGUgZm9sbG93aW5nCitjb25kaXRpb25zLi4uCisKK1RoZSBhdXRob3IgKEJhcHRp
c3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK2p1
cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1
cmlzZGljdGlvbnMsIAordGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMg
RG9tYWluLgorCitJbiBqdXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGlj
IERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBHZXJtYW55IGFzIG9mCisyMDEwKSwgdGhpcyBzb2Z0d2Fy
ZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBp
cworcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93
KS4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9w
ZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAKK3NvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0
IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUgCitjb25kaXRpb25zIG9m
IHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9mIGR1
YWwgCitQdWJsaWMgRG9tYWluL01JVCBMaWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhlcmUs
IGFzIHRoZXkgY2hvb3NlLgorCitUaGUgTUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2UgdG8g
UHVibGljIERvbWFpbiBhcyBhIGxpY2Vuc2UgY2FuIGdldCwgYW5kIGlzCitkZXNjcmliZWQgaW4g
Y2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6CisKKyAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvTUlUX0xpY2Vuc2UKKyAgIAorVGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9s
bG93czoKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0
ZSBMZXBpbGxldXIKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24KK29idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFs
IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKK21vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworb2YgdGhlIFNv
ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1
cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisK
K1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCitCRSBMSUFCTEUg
Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4K
K0FDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOCitDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKEVORCBMSUNF
TlNFIFRFWFQpCisKK1RoZSBNSVQgbGljZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0aGUg
R1BMIGFuZCBjb21tZXJjaWFsCitzb2Z0d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhlIHJp
Z2h0cyBvZiBQdWJsaWMgRG9tYWluIHdpdGggdGhlCittaW5vciBudWlzYW5jZSBvZiBiZWluZyBy
ZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlCithbmQgbGljZW5zZSB0
ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4gTm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRoZQor
UHVibGljIERvbWFpbiAibGljZW5zZSIgeW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1c2lu
ZyB3aGF0ZXZlcgorbGljZW5zZSB5b3UgbGlrZS4KKworKi8KKworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
Ly8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisK
KworCisKKyNpZm5kZWYgSlNPTl9BTUFMR0FURURfSF9JTkNMVURFRAorIyBkZWZpbmUgSlNPTl9B
TUFMR0FURURfSF9JTkNMVURFRAorLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRoZSBz
b3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHByaXZhdGUgaGVhZGVyIGlu
Y2x1c2lvbi4KKyNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZlcnNpb24u
aAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBETyBOT1QgRURJVC4gVGhpcyBmaWxlIChhbmQgInZl
cnNpb24iKSBpcyBnZW5lcmF0ZWQgYnkgQ01ha2UuCisvLyBSdW4gQ01ha2UgY29uZmlndXJlIHN0
ZXAgdG8gdXBkYXRlIGl0LgorI2lmbmRlZiBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAorIyBkZWZp
bmUgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1NU
UklORyAiMS42LjUiCisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUFKT1IgMQorIyBkZWZpbmUg
SlNPTkNQUF9WRVJTSU9OX01JTk9SIDYKKyMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9QQVRDSCA1
CisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fUVVBTElGSUVSCisjIGRlZmluZSBKU09OQ1BQX1ZF
UlNJT05fSEVYQSAoKEpTT05DUFBfVkVSU0lPTl9NQUpPUiA8PCAyNCkgfCAoSlNPTkNQUF9WRVJT
SU9OX01JTk9SIDw8IDE2KSB8IChKU09OQ1BQX1ZFUlNJT05fUEFUQ0ggPDwgOCkpCisKKyNlbmRp
ZiAvLyBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQg
b2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVu
dCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8g
Q29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVu
ZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNv
Z25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0
YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKwor
I2lmbmRlZiBKU09OX0NPTkZJR19IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fQ09ORklHX0hfSU5D
TFVERUQKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbGlicmFyeSBpcyBl
bWJlZGRlZCBpbiBDcHBUTCBsaWJyYXJ5LgorLy8jIGRlZmluZSBKU09OX0lOX0NQUFRMIDEKKwor
Ly8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbWF5IGxldmVyYWdlIENwcFRMIGxp
YnJhcnkKKy8vIyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKy8vLyBJZiBkZWZpbmVkLCBpbmRp
Y2F0ZXMgdGhhdCBjcHB0bCB2ZWN0b3IgYmFzZWQgbWFwIHNob3VsZCBiZSB1c2VkIGluc3RlYWQg
b2YKKy8vLyBzdGQ6Om1hcAorLy8vIGFzIFZhbHVlIGNvbnRhaW5lci4KKy8vIyAgZGVmaW5lIEpT
T05fVVNFX0NQUFRMX1NNQUxMTUFQIDEKKworLy8gSWYgbm9uLXplcm8sIHRoZSBsaWJyYXJ5IHVz
ZXMgZXhjZXB0aW9ucyB0byByZXBvcnQgYmFkIGlucHV0IGluc3RlYWQgb2YgQworLy8gYXNzZXJ0
aW9uIG1hY3Jvcy4gVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGV4Y2VwdGlvbnMuCisjaWZuZGVmIEpT
T05fVVNFX0VYQ0VQVElPTgorI2RlZmluZSBKU09OX1VTRV9FWENFUFRJT04gMQorI2VuZGlmCisK
Ky8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdh
dGVkCisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCisvLy8gUmVtYXJr
czogaXQgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkIGluIHRoZSBnZW5lcmF0ZWQgYW1hbGdhdGVk
IGhlYWRlci4KKy8vICNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKworI2lmZGVmIEpTT05f
SU5fQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25maWcuaD4KKyNpZm5kZWYgSlNPTl9VU0VfQ1BQ
VEwKKyNkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEpT
T05fSU5fQ1BQVEwKKyNkZWZpbmUgSlNPTl9BUEkgQ1BQVExfQVBJCisjZWxpZiBkZWZpbmVkKEpT
T05fRExMX0JVSUxEKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEpTT05fQVBJIF9f
ZGVjbHNwZWMoZGxsZXhwb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFD
RV9XQVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNlbGlmIGRlZmluZWQo
SlNPTl9ETEwpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNs
c3BlYyhkbGxpbXBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VuZGlmIC8vIGlmZGVmIEpT
T05fSU5fQ1BQVEwKKyNpZiAhZGVmaW5lZChKU09OX0FQSSkKKyNkZWZpbmUgSlNPTl9BUEkKKyNl
bmRpZgorCisvLyBJZiBKU09OX05PX0lOVDY0IGlzIGRlZmluZWQsIHRoZW4gSnNvbiBvbmx5IHN1
cHBvcnQgQysrICJpbnQiIHR5cGUgZm9yCisvLyBpbnRlZ2VyCisvLyBTdG9yYWdlcywgYW5kIDY0
IGJpdHMgaW50ZWdlciBzdXBwb3J0IGlzIGRpc2FibGVkLgorLy8gI2RlZmluZSBKU09OX05PX0lO
VDY0IDEKKworI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1TVkMKKyMgIGlmIF9NU0NfVkVSIDw9
IDEyMDAgLy8gTVNWQyA2CisgICAgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNiBvbmx5IHN1
cHBvcnQgY29udmVyc2lvbiBmcm9tIF9faW50NjQgdG8gZG91YmxlCisgICAgLy8gKG5vIGNvbnZl
cnNpb24gZnJvbSB1bnNpZ25lZCBfX2ludDY0KS4KKyMgICAgZGVmaW5lIEpTT05fVVNFX0lOVDY0
X0RPVUJMRV9DT05WRVJTSU9OIDEKKyAgICAvLyBEaXNhYmxlIHdhcm5pbmcgNDc4NiBmb3IgVlM2
IGNhdXNlZCBieSBTVEwgKGlkZW50aWZpZXIgd2FzIHRydW5jYXRlZCB0byAnMjU1JworICAgIC8v
IGNoYXJhY3RlcnMgaW4gdGhlIGRlYnVnIGluZm9ybWF0aW9uKQorICAgIC8vIEFsbCBwcm9qZWN0
cyBJJ3ZlIGV2ZXIgc2VlbiB3aXRoIFZTNiB3ZXJlIHVzaW5nIHRoaXMgZ2xvYmFsbHkgKG5vdCBi
b3RoZXJpbmcKKyAgICAvLyB3aXRoIHByYWdtYSBwdXNoL3BvcCkuCisjICAgIHByYWdtYSB3YXJu
aW5nKGRpc2FibGUgOiA0Nzg2KQorIyAgZW5kaWYgLy8gTVNWQyA2CisKKyMgIGlmIF9NU0NfVkVS
ID49IDE1MDAgLy8gTVNWQyAyMDA4CisgICAgLy8vIEluZGljYXRlcyB0aGF0IHRoZSBmb2xsb3dp
bmcgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRF
RChtZXNzYWdlKSBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQobWVzc2FnZSkpCisjICBlbmRpZgorCisj
ZW5kaWYgLy8gZGVmaW5lZChfTVNDX1ZFUikKKworCisjaWZuZGVmIEpTT05fSEFTX1JWQUxVRV9S
RUZFUkVOQ0VTCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAwIC8v
IE1TVkMgPj0gMjAxMAorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5k
aWYgLy8gTVNWQyA+PSAyMDEwCisKKyNpZmRlZiBfX2NsYW5nX18KKyNpZiBfX2hhc19mZWF0dXJl
KGN4eF9ydmFsdWVfcmVmZXJlbmNlcykKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5D
RVMgMQorI2VuZGlmICAvLyBoYXNfZmVhdHVyZQorCisjZWxpZiBkZWZpbmVkIF9fR05VQ19fIC8v
IG5vdCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVtdWxhdGVzIGdjYykKKyNp
ZiBkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKSB8fCAoX19jcGx1c3BsdXMgPj0g
MjAxMTAzTCkKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMQorI2VuZGlmICAv
LyBHWFhfRVhQRVJJTUVOVEFMCisKKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKwor
I2VuZGlmIC8vIG5vdCBkZWZpbmVkIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisKKyNpZm5k
ZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JF
RkVSRU5DRVMgMAorI2VuZGlmCisKKyNpZmRlZiBfX2NsYW5nX18KKyNlbGlmIGRlZmluZWQgX19H
TlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMg
Z2NjKQorIyAgaWYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlO
T1JfXyA+PSA1KSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19h
dHRyaWJ1dGVfXyAoKGRlcHJlY2F0ZWQobWVzc2FnZSkpKQorIyAgZWxpZiAoX19HTlVDX18gPiAz
IHx8IChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDEpKQorIyAgICBkZWZpbmUg
SlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRf
XykpCisjICBlbmRpZiAgLy8gR05VQyB2ZXJzaW9uCisjZW5kaWYgLy8gX19jbGFuZ19fIHx8IF9f
R05VQ19fCisKKyNpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCisjZGVmaW5lIEpTT05D
UFBfREVQUkVDQVRFRChtZXNzYWdlKQorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05DUFBfREVQ
UkVDQVRFRCkKKworbmFtZXNwYWNlIEpzb24gewordHlwZWRlZiBpbnQgSW50OwordHlwZWRlZiB1
bnNpZ25lZCBpbnQgVUludDsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit0eXBlZGVmIGlu
dCBMYXJnZXN0SW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgTGFyZ2VzdFVJbnQ7CisjdW5kZWYg
SlNPTl9IQVNfSU5UNjQKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKEpTT05f
Tk9fSU5UNjQpCisvLyBGb3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3BlY2lmaWMgdHlwZXMgYXMg
bG9uZyBsb25nIGlzIG5vdCBzdXBwb3J0ZWQKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNaWNy
b3NvZnQgVmlzdWFsIFN0dWRpbwordHlwZWRlZiBfX2ludDY0IEludDY0OwordHlwZWRlZiB1bnNp
Z25lZCBfX2ludDY0IFVJbnQ2NDsKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVk
KF9NU0NfVkVSKSAvLyBPdGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxvbmcKK3R5cGVkZWYgbG9u
ZyBsb25nIGludCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBVSW50NjQ7
CisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKK3R5cGVkZWYgSW50NjQgTGFyZ2VzdElu
dDsKK3R5cGVkZWYgVUludDY0IExhcmdlc3RVSW50OworI2RlZmluZSBKU09OX0hBU19JTlQ2NAor
I2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK30gLy8gZW5kIG5hbWVzcGFjZSBK
c29uCisKKyNlbmRpZiAvLyBKU09OX0NPTkZJR19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25maWcuaAorLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5n
IG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERp
c3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQg
YW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElD
RU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0
L0xJQ0VOU0UKKworI2lmbmRlZiBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNP
Tl9GT1JXQVJEU19IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElP
TikKKyNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FN
QUxHQU1BVElPTikKKworbmFtZXNwYWNlIEpzb24geworCisvLyB3cml0ZXIuaAorY2xhc3MgRmFz
dFdyaXRlcjsKK2NsYXNzIFN0eWxlZFdyaXRlcjsKKworLy8gcmVhZGVyLmgKK2NsYXNzIFJlYWRl
cjsKKworLy8gZmVhdHVyZXMuaAorY2xhc3MgRmVhdHVyZXM7CisKKy8vIHZhbHVlLmgKK3R5cGVk
ZWYgdW5zaWduZWQgaW50IEFycmF5SW5kZXg7CitjbGFzcyBTdGF0aWNTdHJpbmc7CitjbGFzcyBQ
YXRoOworY2xhc3MgUGF0aEFyZ3VtZW50OworY2xhc3MgVmFsdWU7CitjbGFzcyBWYWx1ZUl0ZXJh
dG9yQmFzZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3I7CitjbGFzcyBWYWx1ZUNvbnN0SXRlcmF0b3I7
CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05fRk9SV0FSRFNfSF9JTkNM
VURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNs
dWRlL2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29u
L2ZlYXR1cmVzLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBC
YXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBw
dWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNk
aWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX0ZF
QVRVUkVTX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9GRUFUVVJFU19IX0lOQ0xVREVE
CisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlICJmb3J3YXJk
cy5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1l
c3BhY2UgSnNvbiB7CisKKy8qKiBcYnJpZWYgQ29uZmlndXJhdGlvbiBwYXNzZWQgdG8gcmVhZGVy
IGFuZCB3cml0ZXIuCisgKiBUaGlzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGNhbiBiZSB1c2VkIHRv
IGZvcmNlIHRoZSBSZWFkZXIgb3IgV3JpdGVyCisgKiB0byBiZWhhdmUgaW4gYSBzdGFuZGFyZCBj
b25mb3JtaW5nIHdheS4KKyAqLworY2xhc3MgSlNPTl9BUEkgRmVhdHVyZXMgeworcHVibGljOgor
ICAvKiogXGJyaWVmIEEgY29uZmlndXJhdGlvbiB0aGF0IGFsbG93cyBhbGwgZmVhdHVyZXMgYW5k
IGFzc3VtZXMgYWxsIHN0cmluZ3MKKyAgICogYXJlIFVURi04LgorICAgKiAtIEMgJiBDKysgY29t
bWVudHMgYXJlIGFsbG93ZWQKKyAgICogLSBSb290IG9iamVjdCBjYW4gYmUgYW55IEpTT04gdmFs
dWUKKyAgICogLSBBc3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVuY29kZWQgaW4gVVRGLTgKKyAg
ICovCisgIHN0YXRpYyBGZWF0dXJlcyBhbGwoKTsKKworICAvKiogXGJyaWVmIEEgY29uZmlndXJh
dGlvbiB0aGF0IGlzIHN0cmljdGx5IGNvbXBhdGlibGUgd2l0aCB0aGUgSlNPTgorICAgKiBzcGVj
aWZpY2F0aW9uLgorICAgKiAtIENvbW1lbnRzIGFyZSBmb3JiaWRkZW4uCisgICAqIC0gUm9vdCBv
YmplY3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLgorICAgKiAt
IEFzc3VtZXMgVmFsdWUgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAorICAgKi8KKyAgc3Rh
dGljIEZlYXR1cmVzIHN0cmljdE1vZGUoKTsKKworICAvKiogXGJyaWVmIEluaXRpYWxpemUgdGhl
IGNvbmZpZ3VyYXRpb24gbGlrZSBKc29uQ29uZmlnOjphbGxGZWF0dXJlczsKKyAgICovCisgIEZl
YXR1cmVzKCk7CisKKyAgLy8vIFxjIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQuIERlZmF1
bHQ6IFxjIHRydWUuCisgIGJvb2wgYWxsb3dDb21tZW50c187CisKKyAgLy8vIFxjIHRydWUgaWYg
cm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuIERlZmF1bHQ6
IFxjCisgIC8vLyBmYWxzZS4KKyAgYm9vbCBzdHJpY3RSb290XzsKKworICAvLy8gXGMgdHJ1ZSBp
ZiBkcm9wcGVkIG51bGwgcGxhY2Vob2xkZXJzIGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxz
ZS4KKyAgYm9vbCBhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXzsKKworICAvLy8gXGMgdHJ1
ZSBpZiBudW1lcmljIG9iamVjdCBrZXkgYXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgor
ICBib29sIGFsbG93TnVtZXJpY0tleXNfOworfTsKKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisj
ZW5kaWYgLy8gQ1BQVExfSlNPTl9GRUFUVVJFU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mZWF0dXJlcy5oCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5p
bmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmFsdWUuaAorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlz
dHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBh
bmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNF
TlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQv
TElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9K
U09OX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2lu
Y2x1ZGUgImZvcndhcmRzLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FN
QVRJT04pCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxl
eGNlcHRpb24+CisKKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyNpbmNsdWRlIDxt
YXA+CisjZWxzZQorI2luY2x1ZGUgPGNwcHRsL3NtYWxsbWFwLmg+CisjZW5kaWYKKyNpZmRlZiBK
U09OX1VTRV9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2ZvcndhcmRzLmg+CisjZW5kaWYKKworLy8g
RGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1iZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2
ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1c2VkIGJ5Li4uCisjaWYgZGVmaW5lZChKU09OQ1BQ
X0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisj
cHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09O
Q1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisvKiogXGJyaWVmIEpTT04gKEph
dmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKS4KKyAqLworbmFtZXNwYWNlIEpzb24geworCisvKiog
QmFzZSBjbGFzcyBmb3IgYWxsIGV4Y2VwdGlvbnMgd2UgdGhyb3cuCisgKgorICogV2UgdXNlIG5v
dGhpbmcgYnV0IHRoZXNlIGludGVybmFsbHkuIE9mIGNvdXJzZSwgU1RMIGNhbiB0aHJvdyBvdGhl
cnMuCisgKi8KK2NsYXNzIEpTT05fQVBJIEV4Y2VwdGlvbiA6IHB1YmxpYyBzdGQ6OmV4Y2VwdGlv
biB7CitwdWJsaWM6CisgIEV4Y2VwdGlvbihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKTsKKyAgfkV4
Y2VwdGlvbigpIHRocm93KCk7CisgIGNoYXIgY29uc3QqIHdoYXQoKSBjb25zdCB0aHJvdygpOwor
cHJvdGVjdGVkOgorICBzdGQ6OnN0cmluZyBtc2dfOworfTsKKworLyoqIEV4Y2VwdGlvbnMgd2hp
Y2ggdGhlIHVzZXIgY2Fubm90IGVhc2lseSBhdm9pZC4KKyAqCisgKiBFLmcuIG91dC1vZi1tZW1v
cnkgKHdoZW4gd2UgdXNlIG1hbGxvYyksIHN0YWNrLW92ZXJmbG93LCBtYWxpY2lvdXMgaW5wdXQK
KyAqIAorICogXHJlbWFyayBkZXJpdmVkIGZyb20gSnNvbjo6RXhjZXB0aW9uCisgKi8KK2NsYXNz
IEpTT05fQVBJIFJ1bnRpbWVFcnJvciA6IHB1YmxpYyBFeGNlcHRpb24geworcHVibGljOgorICBS
dW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Cit9OworCisvKiogRXhjZXB0aW9u
cyB0aHJvd24gYnkgSlNPTl9BU1NFUlQvSlNPTl9GQUlMIG1hY3Jvcy4KKyAqCisgKiBUaGVzZSBh
cmUgcHJlY29uZGl0aW9uLXZpb2xhdGlvbnMgKHVzZXIgYnVncykgYW5kIGludGVybmFsIGVycm9y
cyAob3VyIGJ1Z3MpLgorICogCisgKiBccmVtYXJrIGRlcml2ZWQgZnJvbSBKc29uOjpFeGNlcHRp
b24KKyAqLworY2xhc3MgSlNPTl9BUEkgTG9naWNFcnJvciA6IHB1YmxpYyBFeGNlcHRpb24gewor
cHVibGljOgorICBMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworfTsKKworLy8v
IHVzZWQgaW50ZXJuYWxseQordm9pZCB0aHJvd1J1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKTsKKy8vLyB1c2VkIGludGVybmFsbHkKK3ZvaWQgdGhyb3dMb2dpY0Vycm9yKHN0ZDo6
c3RyaW5nIGNvbnN0JiBtc2cpOworCisvKiogXGJyaWVmIFR5cGUgb2YgdGhlIHZhbHVlIGhlbGQg
YnkgYSBWYWx1ZSBvYmplY3QuCisgKi8KK2VudW0gVmFsdWVUeXBlIHsKKyAgbnVsbFZhbHVlID0g
MCwgLy8vPCAnbnVsbCcgdmFsdWUKKyAgaW50VmFsdWUsICAgICAgLy8vPCBzaWduZWQgaW50ZWdl
ciB2YWx1ZQorICB1aW50VmFsdWUsICAgICAvLy88IHVuc2lnbmVkIGludGVnZXIgdmFsdWUKKyAg
cmVhbFZhbHVlLCAgICAgLy8vPCBkb3VibGUgdmFsdWUKKyAgc3RyaW5nVmFsdWUsICAgLy8vPCBV
VEYtOCBzdHJpbmcgdmFsdWUKKyAgYm9vbGVhblZhbHVlLCAgLy8vPCBib29sIHZhbHVlCisgIGFy
cmF5VmFsdWUsICAgIC8vLzwgYXJyYXkgdmFsdWUgKG9yZGVyZWQgbGlzdCkKKyAgb2JqZWN0VmFs
dWUgICAgLy8vPCBvYmplY3QgdmFsdWUgKGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyku
Cit9OworCitlbnVtIENvbW1lbnRQbGFjZW1lbnQgeworICBjb21tZW50QmVmb3JlID0gMCwgICAg
ICAvLy88IGEgY29tbWVudCBwbGFjZWQgb24gdGhlIGxpbmUgYmVmb3JlIGEgdmFsdWUKKyAgY29t
bWVudEFmdGVyT25TYW1lTGluZSwgLy8vPCBhIGNvbW1lbnQganVzdCBhZnRlciBhIHZhbHVlIG9u
IHRoZSBzYW1lIGxpbmUKKyAgY29tbWVudEFmdGVyLCAvLy88IGEgY29tbWVudCBvbiB0aGUgbGlu
ZSBhZnRlciBhIHZhbHVlIChvbmx5IG1ha2Ugc2Vuc2UgZm9yCisgIC8vLyByb290IHZhbHVlKQor
ICBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQKK307CisKKy8vIyBpZmRlZiBKU09OX1VTRV9DUFBU
TAorLy8gICB0eXBlZGVmIENwcFRMOjpBbnlFbnVtZXJhdG9yPGNvbnN0IGNoYXIgKj4gRW51bU1l
bWJlck5hbWVzOworLy8gICB0eXBlZGVmIENwcFRMOjpBbnlFbnVtZXJhdG9yPGNvbnN0IFZhbHVl
ICY+IEVudW1WYWx1ZXM7CisvLyMgZW5kaWYKKworLyoqIFxicmllZiBMaWdodHdlaWdodCB3cmFw
cGVyIHRvIHRhZyBzdGF0aWMgc3RyaW5nLgorICoKKyAqIFZhbHVlIGNvbnN0cnVjdG9yIGFuZCBv
YmplY3RWYWx1ZSBtZW1iZXIgYXNzaWduZW1lbnQgdGFrZXMgYWR2YW50YWdlIG9mIHRoZQorICog
U3RhdGljU3RyaW5nIGFuZCBhdm9pZCB0aGUgY29zdCBvZiBzdHJpbmcgZHVwbGljYXRpb24gd2hl
biBzdG9yaW5nIHRoZQorICogc3RyaW5nIG9yIHRoZSBtZW1iZXIgbmFtZS4KKyAqCisgKiBFeGFt
cGxlIG9mIHVzYWdlOgorICogXGNvZGUKKyAqIEpzb246OlZhbHVlIGFWYWx1ZSggU3RhdGljU3Ry
aW5nKCJzb21lIHRleHQiKSApOworICogSnNvbjo6VmFsdWUgb2JqZWN0OworICogc3RhdGljIGNv
bnN0IFN0YXRpY1N0cmluZyBjb2RlKCJjb2RlIik7CisgKiBvYmplY3RbY29kZV0gPSAxMjM0Owor
ICogXGVuZGNvZGUKKyAqLworY2xhc3MgSlNPTl9BUEkgU3RhdGljU3RyaW5nIHsKK3B1YmxpYzoK
KyAgZXhwbGljaXQgU3RhdGljU3RyaW5nKGNvbnN0IGNoYXIqIGN6c3RyaW5nKSA6IGNfc3RyXyhj
enN0cmluZykge30KKworICBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0IHsgcmV0dXJuIGNf
c3RyXzsgfQorCisgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9
CisKK3ByaXZhdGU6CisgIGNvbnN0IGNoYXIqIGNfc3RyXzsKK307CisKKy8qKiBcYnJpZWYgUmVw
cmVzZW50cyBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IHZhbHVlLgor
ICoKKyAqIFRoaXMgY2xhc3MgaXMgYSBkaXNjcmltaW5hdGVkIHVuaW9uIHdyYXBwZXIgdGhhdCBj
YW4gcmVwcmVzZW50cyBhOgorICogLSBzaWduZWQgaW50ZWdlciBbcmFuZ2U6IFZhbHVlOjptaW5J
bnQgLSBWYWx1ZTo6bWF4SW50XQorICogLSB1bnNpZ25lZCBpbnRlZ2VyIChyYW5nZTogMCAtIFZh
bHVlOjptYXhVSW50KQorICogLSBkb3VibGUKKyAqIC0gVVRGLTggc3RyaW5nCisgKiAtIGJvb2xl
YW4KKyAqIC0gJ251bGwnCisgKiAtIGFuIG9yZGVyZWQgbGlzdCBvZiBWYWx1ZQorICogLSBjb2xs
ZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMgKGphdmFzY3JpcHQgb2JqZWN0KQorICoKKyAqIFRo
ZSB0eXBlIG9mIHRoZSBoZWxkIHZhbHVlIGlzIHJlcHJlc2VudGVkIGJ5IGEgI1ZhbHVlVHlwZSBh
bmQKKyAqIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0eXBlKCkuCisgKgorICogVmFsdWVzIG9mIGFu
ICNvYmplY3RWYWx1ZSBvciAjYXJyYXlWYWx1ZSBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgb3BlcmF0
b3JbXSgpCisgKiBtZXRob2RzLgorICogTm9uLWNvbnN0IG1ldGhvZHMgd2lsbCBhdXRvbWF0aWNh
bGx5IGNyZWF0ZSB0aGUgYSAjbnVsbFZhbHVlIGVsZW1lbnQKKyAqIGlmIGl0IGRvZXMgbm90IGV4
aXN0LgorICogVGhlIHNlcXVlbmNlIG9mIGFuICNhcnJheVZhbHVlIHdpbGwgYmUgYXV0b21hdGlj
YWxseSByZXNpemVkIGFuZCBpbml0aWFsaXplZAorICogd2l0aCAjbnVsbFZhbHVlLiByZXNpemUo
KSBjYW4gYmUgdXNlZCB0byBlbmxhcmdlIG9yIHRydW5jYXRlIGFuICNhcnJheVZhbHVlLgorICoK
KyAqIFRoZSBnZXQoKSBtZXRob2RzIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBkZWZhdWx0IHZhbHVl
IGluIHRoZSBjYXNlIHRoZQorICogcmVxdWlyZWQgZWxlbWVudCBkb2VzIG5vdCBleGlzdC4KKyAq
CisgKiBJdCBpcyBwb3NzaWJsZSB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgYSAjb2JqZWN0
VmFsdWUgdmFsdWVzIHVzaW5nCisgKiB0aGUgZ2V0TWVtYmVyTmFtZXMoKSBtZXRob2QuCisgKgor
ICogXG5vdGUgI1ZhbHVlIHN0cmluZy1sZW5ndGggZml0IGluIHNpemVfdCwgYnV0IGtleXMgbXVz
dCBiZSA8IDJeMzAuCisgKiAoVGhlIHJlYXNvbiBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwu
KSBBICNDaGFyUmVhZGVyIHdpbGwgcmFpc2UgYW4KKyAqIGV4Y2VwdGlvbiBpZiBhIGJvdW5kIGlz
IGV4Y2VlZGVkIHRvIGF2b2lkIHNlY3VyaXR5IGhvbGVzIGluIHlvdXIgYXBwLAorICogYnV0IHRo
ZSBWYWx1ZSBBUEkgZG9lcyAqbm90KiBjaGVjayBib3VuZHMuIFRoYXQgaXMgdGhlIHJlc3BvbnNp
YmlsaXR5CisgKiBvZiB0aGUgY2FsbGVyLgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZSB7Cisg
IGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKK3B1YmxpYzoKKyAgdHlwZWRlZiBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4gTWVtYmVyczsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIGl0
ZXJhdG9yOworICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKyAg
dHlwZWRlZiBKc29uOjpVSW50IFVJbnQ7CisgIHR5cGVkZWYgSnNvbjo6SW50IEludDsKKyNpZiBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICB0eXBlZGVmIEpzb246OlVJbnQ2NCBVSW50NjQ7Cisg
IHR5cGVkZWYgSnNvbjo6SW50NjQgSW50NjQ7CisjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19J
TlQ2NCkKKyAgdHlwZWRlZiBKc29uOjpMYXJnZXN0SW50IExhcmdlc3RJbnQ7CisgIHR5cGVkZWYg
SnNvbjo6TGFyZ2VzdFVJbnQgTGFyZ2VzdFVJbnQ7CisgIHR5cGVkZWYgSnNvbjo6QXJyYXlJbmRl
eCBBcnJheUluZGV4OworCisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVsbDsgIC8vLzwgV2UgcmVn
cmV0IHRoaXMgcmVmZXJlbmNlIHRvIGEgZ2xvYmFsIGluc3RhbmNlOyBwcmVmZXIgdGhlIHNpbXBs
ZXIgVmFsdWUoKS4KKyAgc3RhdGljIGNvbnN0IFZhbHVlJiBudWxsUmVmOyAgLy8vPCBqdXN0IGEg
a2x1ZGdlIGZvciBiaW5hcnktY29tcGF0aWJpbGl0eTsgc2FtZSBhcyBudWxsCisgIC8vLyBNaW5p
bXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZh
bHVlLgorICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBtaW5MYXJnZXN0SW50OworICAvLy8gTWF4
aW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpW
YWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWF4TGFyZ2VzdEludDsKKyAgLy8vIE1h
eGltdW0gdW5zaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29u
OjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RVSW50IG1heExhcmdlc3RVSW50OworCisg
IC8vLyBNaW5pbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNv
bjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQgbWluSW50OworICAvLy8gTWF4aW11bSBzaWdu
ZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0
aWMgY29uc3QgSW50IG1heEludDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50IHZhbHVlIHRo
YXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgVUludCBt
YXhVSW50OworCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgLy8vIE1pbmltdW0gc2ln
bmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVl
LgorICBzdGF0aWMgY29uc3QgSW50NjQgbWluSW50NjQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCA2
NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAg
c3RhdGljIGNvbnN0IEludDY0IG1heEludDY0OworICAvLy8gTWF4aW11bSB1bnNpZ25lZCA2NCBi
aXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3Rh
dGljIGNvbnN0IFVJbnQ2NCBtYXhVSW50NjQ7CisjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19J
TlQ2NCkKKworcHJpdmF0ZToKKyNpZm5kZWYgSlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRB
VElPTgorICBjbGFzcyBDWlN0cmluZyB7CisgIHB1YmxpYzoKKyAgICBlbnVtIER1cGxpY2F0aW9u
UG9saWN5IHsKKyAgICAgIG5vRHVwbGljYXRpb24gPSAwLAorICAgICAgZHVwbGljYXRlLAorICAg
ICAgZHVwbGljYXRlT25Db3B5CisgICAgfTsKKyAgICBDWlN0cmluZyhBcnJheUluZGV4IGluZGV4
KTsKKyAgICBDWlN0cmluZyhjaGFyIGNvbnN0KiBzdHIsIHVuc2lnbmVkIGxlbmd0aCwgRHVwbGlj
YXRpb25Qb2xpY3kgYWxsb2NhdGUpOworICAgIENaU3RyaW5nKENaU3RyaW5nIGNvbnN0JiBvdGhl
cik7CisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBDWlN0cmluZyhDWlN0cmlu
ZyYmIG90aGVyKTsKKyNlbmRpZgorICAgIH5DWlN0cmluZygpOworICAgIENaU3RyaW5nJiBvcGVy
YXRvcj0oQ1pTdHJpbmcgb3RoZXIpOworICAgIGJvb2wgb3BlcmF0b3I8KENaU3RyaW5nIGNvbnN0
JiBvdGhlcikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvcj09KENaU3RyaW5nIGNvbnN0JiBvdGhl
cikgY29uc3Q7CisgICAgQXJyYXlJbmRleCBpbmRleCgpIGNvbnN0OworICAgIC8vY29uc3QgY2hh
ciogY19zdHIoKSBjb25zdDsgLy8vPCBcZGVwcmVjYXRlZAorICAgIGNoYXIgY29uc3QqIGRhdGEo
KSBjb25zdDsKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBib29sIGlzU3RhdGlj
U3RyaW5nKCkgY29uc3Q7CisKKyAgcHJpdmF0ZToKKyAgICB2b2lkIHN3YXAoQ1pTdHJpbmcmIG90
aGVyKTsKKworICAgIHN0cnVjdCBTdHJpbmdTdG9yYWdlIHsKKyAgICAgIHVuc2lnbmVkIHBvbGlj
eV86IDI7CisgICAgICB1bnNpZ25lZCBsZW5ndGhfOiAzMDsgLy8gMUdCIG1heAorICAgIH07CisK
KyAgICBjaGFyIGNvbnN0KiBjc3RyXzsgIC8vIGFjdHVhbGx5LCBhIHByZWZpeGVkIHN0cmluZywg
dW5sZXNzIHBvbGljeSBpcyBub0R1cAorICAgIHVuaW9uIHsKKyAgICAgIEFycmF5SW5kZXggaW5k
ZXhfOworICAgICAgU3RyaW5nU3RvcmFnZSBzdG9yYWdlXzsKKyAgICB9OworICB9OworCitwdWJs
aWM6CisjaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisgIHR5cGVkZWYgc3RkOjptYXA8
Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7CisjZWxzZQorICB0eXBlZGVmIENwcFRMOjpT
bWFsbE1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVlczsKKyNlbmRpZiAvLyBpZm5kZWYg
SlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyNlbmRpZiAvLyBpZm5kZWYgSlNPTkNQUF9ET0NfRVhD
TFVERV9JTVBMRU1FTlRBVElPTgorCitwdWJsaWM6CisgIC8qKiBcYnJpZWYgQ3JlYXRlIGEgZGVm
YXVsdCBWYWx1ZSBvZiB0aGUgZ2l2ZW4gdHlwZS4KKworICAgIFRoaXMgaXMgYSB2ZXJ5IHVzZWZ1
bCBjb25zdHJ1Y3Rvci4KKyAgICBUbyBjcmVhdGUgYW4gZW1wdHkgYXJyYXksIHBhc3MgYXJyYXlW
YWx1ZS4KKyAgICBUbyBjcmVhdGUgYW4gZW1wdHkgb2JqZWN0LCBwYXNzIG9iamVjdFZhbHVlLgor
ICAgIEFub3RoZXIgVmFsdWUgY2FuIHRoZW4gYmUgc2V0IHRvIHRoaXMgb25lIGJ5IGFzc2lnbm1l
bnQuCitUaGlzIGlzIHVzZWZ1bCBzaW5jZSBjbGVhcigpIGFuZCByZXNpemUoKSB3aWxsIG5vdCBh
bHRlciB0eXBlcy4KKworICAgIEV4YW1wbGVzOgorXGNvZGUKK0pzb246OlZhbHVlIG51bGxfdmFs
dWU7IC8vIG51bGwKK0pzb246OlZhbHVlIGFycl92YWx1ZShKc29uOjphcnJheVZhbHVlKTsgLy8g
W10KK0pzb246OlZhbHVlIG9ial92YWx1ZShKc29uOjpvYmplY3RWYWx1ZSk7IC8vIHt9CitcZW5k
Y29kZQorICAqLworICBWYWx1ZShWYWx1ZVR5cGUgdHlwZSA9IG51bGxWYWx1ZSk7CisgIFZhbHVl
KEludCB2YWx1ZSk7CisgIFZhbHVlKFVJbnQgdmFsdWUpOworI2lmIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCisgIFZhbHVlKEludDY0IHZhbHVlKTsKKyAgVmFsdWUoVUludDY0IHZhbHVlKTsKKyNl
bmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBWYWx1ZShkb3VibGUgdmFsdWUp
OworICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSk7IC8vLzwgQ29weSB0aWwgZmlyc3QgMC4gKE5V
TEwgY2F1c2VzIHRvIHNlZy1mYXVsdC4pCisgIFZhbHVlKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25z
dCBjaGFyKiBlbmQpOyAvLy88IENvcHkgYWxsLCBpbmNsIHplcm9lcy4KKyAgLyoqIFxicmllZiBD
b25zdHJ1Y3RzIGEgdmFsdWUgZnJvbSBhIHN0YXRpYyBzdHJpbmcuCisKKyAgICogTGlrZSBvdGhl
ciB2YWx1ZSBzdHJpbmcgY29uc3RydWN0b3IgYnV0IGRvIG5vdCBkdXBsaWNhdGUgdGhlIHN0cmlu
ZyBmb3IKKyAgICogaW50ZXJuYWwgc3RvcmFnZS4gVGhlIGdpdmVuIHN0cmluZyBtdXN0IHJlbWFp
biBhbGl2ZSBhZnRlciB0aGUgY2FsbCB0byB0aGlzCisgICAqIGNvbnN0cnVjdG9yLgorICAgKiBc
bm90ZSBUaGlzIHdvcmtzIG9ubHkgZm9yIG51bGwtdGVybWluYXRlZCBzdHJpbmdzLiAoV2UgY2Fu
bm90IGNoYW5nZSB0aGUKKyAgICogICBzaXplIG9mIHRoaXMgY2xhc3MsIHNvIHdlIGhhdmUgbm93
aGVyZSB0byBzdG9yZSB0aGUgbGVuZ3RoLAorICAgKiAgIHdoaWNoIG1pZ2h0IGJlIGNvbXB1dGVk
IGxhdGVyIGZvciB2YXJpb3VzIG9wZXJhdGlvbnMuKQorICAgKgorICAgKiBFeGFtcGxlIG9mIHVz
YWdlOgorICAgKiBcY29kZQorICAgKiBzdGF0aWMgU3RhdGljU3RyaW5nIGZvbygic29tZSB0ZXh0
Iik7CisgICAqIEpzb246OlZhbHVlIGFWYWx1ZShmb28pOworICAgKiBcZW5kY29kZQorICAgKi8K
KyAgVmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSk7CisgIFZhbHVlKGNvbnN0IHN0ZDo6
c3RyaW5nJiB2YWx1ZSk7IC8vLzwgQ29weSBkYXRhKCkgdGlsIHNpemUoKS4gRW1iZWRkZWQgemVy
b2VzIHRvby4KKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICBWYWx1ZShjb25zdCBDcHBUTDo6Q29u
c3RTdHJpbmcmIHZhbHVlKTsKKyNlbmRpZgorICBWYWx1ZShib29sIHZhbHVlKTsKKyAgLy8vIERl
ZXAgY29weS4KKyAgVmFsdWUoY29uc3QgVmFsdWUmIG90aGVyKTsKKyNpZiBKU09OX0hBU19SVkFM
VUVfUkVGRVJFTkNFUworICAvLy8gTW92ZSBjb25zdHJ1Y3RvcgorICBWYWx1ZShWYWx1ZSYmIG90
aGVyKTsKKyNlbmRpZgorICB+VmFsdWUoKTsKKworICAvLy8gRGVlcCBjb3B5LCB0aGVuIHN3YXAo
b3RoZXIpLgorICAvLy8gXG5vdGUgT3Zlci13cml0ZSBleGlzdGluZyBjb21tZW50cy4gVG8gcHJl
c2VydmUgY29tbWVudHMsIHVzZSAjc3dhcFBheWxvYWQoKS4KKyAgVmFsdWUmIG9wZXJhdG9yPShW
YWx1ZSBvdGhlcik7CisgIC8vLyBTd2FwIGV2ZXJ5dGhpbmcuCisgIHZvaWQgc3dhcChWYWx1ZSYg
b3RoZXIpOworICAvLy8gU3dhcCB2YWx1ZXMgYnV0IGxlYXZlIGNvbW1lbnRzIGFuZCBzb3VyY2Ug
b2Zmc2V0cyBpbiBwbGFjZS4KKyAgdm9pZCBzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpOworCisg
IFZhbHVlVHlwZSB0eXBlKCkgY29uc3Q7CisKKyAgLy8vIENvbXBhcmUgcGF5bG9hZCBvbmx5LCBu
b3QgY29tbWVudHMgZXRjLgorICBib29sIG9wZXJhdG9yPChjb25zdCBWYWx1ZSYgb3RoZXIpIGNv
bnN0OworICBib29sIG9wZXJhdG9yPD0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgYm9v
bCBvcGVyYXRvcj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I+
KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWYWx1
ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmFsdWUmIG90aGVyKSBj
b25zdDsKKyAgaW50IGNvbXBhcmUoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKworICBjb25z
dCBjaGFyKiBhc0NTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgY291bGQgY2F1
c2UgeW91IHRyb3VibGUhCisgIHN0ZDo6c3RyaW5nIGFzU3RyaW5nKCkgY29uc3Q7IC8vLzwgRW1i
ZWRkZWQgemVyb2VzIGFyZSBwb3NzaWJsZS4KKyAgLyoqIEdldCByYXcgY2hhciogb2Ygc3RyaW5n
LXZhbHVlLgorICAgKiAgXHJldHVybiBmYWxzZSBpZiAhc3RyaW5nLiAoU2VnLWZhdWx0IGlmIHN0
ciBvciBlbmQgYXJlIE5VTEwuKQorICAgKi8KKyAgYm9vbCBnZXRTdHJpbmcoCisgICAgICBjaGFy
IGNvbnN0KiogYmVnaW4sIGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0OworI2lmZGVmIEpTT05fVVNF
X0NQUFRMCisgIENwcFRMOjpDb25zdFN0cmluZyBhc0NvbnN0U3RyaW5nKCkgY29uc3Q7CisjZW5k
aWYKKyAgSW50IGFzSW50KCkgY29uc3Q7CisgIFVJbnQgYXNVSW50KCkgY29uc3Q7CisjaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKKyAgSW50NjQgYXNJbnQ2NCgpIGNvbnN0OworICBVSW50NjQg
YXNVSW50NjQoKSBjb25zdDsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQor
ICBMYXJnZXN0SW50IGFzTGFyZ2VzdEludCgpIGNvbnN0OworICBMYXJnZXN0VUludCBhc0xhcmdl
c3RVSW50KCkgY29uc3Q7CisgIGZsb2F0IGFzRmxvYXQoKSBjb25zdDsKKyAgZG91YmxlIGFzRG91
YmxlKCkgY29uc3Q7CisgIGJvb2wgYXNCb29sKCkgY29uc3Q7CisKKyAgYm9vbCBpc051bGwoKSBj
b25zdDsKKyAgYm9vbCBpc0Jvb2woKSBjb25zdDsKKyAgYm9vbCBpc0ludCgpIGNvbnN0OworICBi
b29sIGlzSW50NjQoKSBjb25zdDsKKyAgYm9vbCBpc1VJbnQoKSBjb25zdDsKKyAgYm9vbCBpc1VJ
bnQ2NCgpIGNvbnN0OworICBib29sIGlzSW50ZWdyYWwoKSBjb25zdDsKKyAgYm9vbCBpc0RvdWJs
ZSgpIGNvbnN0OworICBib29sIGlzTnVtZXJpYygpIGNvbnN0OworICBib29sIGlzU3RyaW5nKCkg
Y29uc3Q7CisgIGJvb2wgaXNBcnJheSgpIGNvbnN0OworICBib29sIGlzT2JqZWN0KCkgY29uc3Q7
CisKKyAgYm9vbCBpc0NvbnZlcnRpYmxlVG8oVmFsdWVUeXBlIG90aGVyKSBjb25zdDsKKworICAv
Ly8gTnVtYmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKKyAgQXJyYXlJbmRleCBzaXpl
KCkgY29uc3Q7CisKKyAgLy8vIFxicmllZiBSZXR1cm4gdHJ1ZSBpZiBlbXB0eSBhcnJheSwgZW1w
dHkgb2JqZWN0LCBvciBudWxsOworICAvLy8gb3RoZXJ3aXNlLCBmYWxzZS4KKyAgYm9vbCBlbXB0
eSgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gaXNOdWxsKCkKKyAgYm9vbCBvcGVyYXRvciEoKSBj
b25zdDsKKworICAvLy8gUmVtb3ZlIGFsbCBvYmplY3QgbWVtYmVycyBhbmQgYXJyYXkgZWxlbWVu
dHMuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlLCBvYmplY3RWYWx1ZSwgb3IgbnVs
bFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCisgIHZvaWQgY2xlYXIoKTsK
KworICAvLy8gUmVzaXplIHRoZSBhcnJheSB0byBzaXplIGVsZW1lbnRzLgorICAvLy8gTmV3IGVs
ZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byBudWxsLgorICAvLy8gTWF5IG9ubHkgYmUgY2FsbGVk
IG9uIG51bGxWYWx1ZSBvciBhcnJheVZhbHVlLgorICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlW
YWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5cGUoKSBpcyBhcnJheVZhbHVlCisgIHZv
aWQgcmVzaXplKEFycmF5SW5kZXggc2l6ZSk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVt
ZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgbGVz
cyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUKKyAgLy8vIGluc2VydGVk
CisgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgorICAvLy8g
KFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8g
ZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMg
YSBzdHJpbmcuKQorICBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KTsKKworICAv
Ly8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKS4KKyAgLy8vIElm
IHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwgdGhlbiBudWxsIHZh
bHVlIGFyZQorICAvLy8gaW5zZXJ0ZWQKKyAgLy8vIGluIHRoZSBhcnJheSBzbyB0aGF0IGl0cyBz
aXplIGlzIGluZGV4KzEuCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0
byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0aGUg
b3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIFZhbHVlJiBvcGVyYXRvcltdKGlu
dCBpbmRleCk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGlu
ZGV4ICkKKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3Vy
IGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltd
IHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oQXJyYXlJ
bmRleCBpbmRleCkgY29uc3Q7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJv
IGJhc2VkIGluZGV4ICkKKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRv
IGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBv
cGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9y
W10oaW50IGluZGV4KSBjb25zdDsKKworICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGF0IGxl
YXN0IGluZGV4KzEgZWxlbWVudHMsIHJldHVybnMgdGhlIGVsZW1lbnQKKyAgLy8vIHZhbHVlLAor
ICAvLy8gb3RoZXJ3aXNlIHJldHVybnMgZGVmYXVsdFZhbHVlLgorICBWYWx1ZSBnZXQoQXJyYXlJ
bmRleCBpbmRleCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBSZXR1
cm4gdHJ1ZSBpZiBpbmRleCA8IHNpemUoKS4KKyAgYm9vbCBpc1ZhbGlkSW5kZXgoQXJyYXlJbmRl
eCBpbmRleCkgY29uc3Q7CisgIC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVlIHRvIGFycmF5IGF0IHRo
ZSBlbmQuCisgIC8vLworICAvLy8gRXF1aXZhbGVudCB0byBqc29udmFsdWVbanNvbnZhbHVlLnNp
emUoKV0gPSB2YWx1ZTsKKyAgVmFsdWUmIGFwcGVuZChjb25zdCBWYWx1ZSYgdmFsdWUpOworCisg
IC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVy
IGlmIGl0IGRvZXMgbm90IGV4aXN0LgorICAvLy8gXG5vdGUgQmVjYXVzZSBvZiBvdXIgaW1wbGVt
ZW50YXRpb24sIGtleXMgYXJlIGxpbWl0ZWQgdG8gMl4zMCAtMSBjaGFycy4KKyAgLy8vICBFeGNl
ZWRpbmcgdGhhdCB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbi4KKyAgVmFsdWUmIG9wZXJhdG9yW10o
Y29uc3QgY2hhcioga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwg
cmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCisgIC8vLyB0aGF0IG5hbWUu
CisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtleSkgY29uc3Q7CisgIC8v
LyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlm
IGl0IGRvZXMgbm90IGV4aXN0LgorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRl
ZCBudWxscy4KKyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7Cisg
IC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVsbCBpZiB0aGVy
ZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgorICAvLy8gXHBhcmFtIGtleSBt
YXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oY29u
c3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7CisgIC8qKiBcYnJpZWYgQWNjZXNzIGFuIG9iamVj
dCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdAorICAg
ZXhpc3QuCisKKyAgICogSWYgdGhlIG9iamVjdCBoYXMgbm8gZW50cnkgZm9yIHRoYXQgbmFtZSwg
dGhlbiB0aGUgbWVtYmVyIG5hbWUgdXNlZCB0byBzdG9yZQorICAgKiB0aGUgbmV3IGVudHJ5IGlz
IG5vdCBkdXBsaWNhdGVkLgorICAgKiBFeGFtcGxlIG9mIHVzZToKKyAgICogXGNvZGUKKyAgICog
SnNvbjo6VmFsdWUgb2JqZWN0OworICAgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUo
ImNvZGUiKTsKKyAgICogb2JqZWN0W2NvZGVdID0gMTIzNDsKKyAgICogXGVuZGNvZGUKKyAgICov
CisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IFN0YXRpY1N0cmluZyYga2V5KTsKKyNpZmRlZiBK
U09OX1VTRV9DUFBUTAorICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVh
dGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgVmFsdWUmIG9wZXJhdG9y
W10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpOworICAvLy8gQWNjZXNzIGFuIG9iamVj
dCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGgK
KyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9yW10oY29uc3QgQ3BwVEw6
OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0OworI2VuZGlmCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJl
ciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBc
bm90ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IGNoYXIqIGtleSwgY29uc3QgVmFsdWUm
IGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkg
aWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNv
cHkKKyAgLy8vIFxub3RlIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUg
Z2V0KGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIGNvbnN0IFZhbHVlJiBkZWZh
dWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0
IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBjb3B5Cisg
IC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSBnZXQo
Y29uc3Qgc3RkOjpzdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7
CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtl
eSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAg
Y29weQorICBWYWx1ZSBnZXQoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXksIGNvbnN0IFZh
bHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworI2VuZGlmCisgIC8vLyBNb3N0IGdlbmVyYWwgYW5k
IGVmZmljaWVudCB2ZXJzaW9uIG9mIGlzTWVtYmVyKCljb25zdCwgZ2V0KCljb25zdCwKKyAgLy8v
IGFuZCBvcGVyYXRvcltdY29uc3QKKyAgLy8vIFxub3RlIEFzIHN0YXRlZCBlbHNld2hlcmUsIGJl
aGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMwCisgIFZhbHVlIGNvbnN0
KiBmaW5kKGNoYXIgY29uc3QqIGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQpIGNvbnN0OworICAvLy8g
TW9zdCBnZW5lcmFsIGFuZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBvYmplY3QtbXV0YXRvcnMuCisg
IC8vLyBcbm90ZSBBcyBzdGF0ZWQgZWxzZXdoZXJlLCBiZWhhdmlvciBpcyB1bmRlZmluZWQgaWYg
KGVuZC1iZWdpbikgPj0gMl4zMAorICAvLy8gXHJldHVybiBub24temVybywgYnV0IEpTT05fQVNT
RVJUIGlmIHRoaXMgaXMgbmVpdGhlciBvYmplY3Qgbm9yIG51bGxWYWx1ZS4KKyAgVmFsdWUgY29u
c3QqIGRlbWFuZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCogZW5kKTsKKyAgLy8vIFxi
cmllZiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmFtZWQgbWVtYmVyLgorICAvLy8KKyAgLy8vIERv
IG5vdGhpbmcgaWYgaXQgZGlkIG5vdCBleGlzdC4KKyAgLy8vIFxyZXR1cm4gdGhlIHJlbW92ZWQg
VmFsdWUsIG9yIG51bGwuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxs
VmFsdWUKKyAgLy8vIFxwb3N0IHR5cGUoKSBpcyB1bmNoYW5nZWQKKyAgLy8vIFxkZXByZWNhdGVk
CisgIFZhbHVlIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXkpOworICAvLy8gU2FtZSBhcyBy
ZW1vdmVNZW1iZXIoY29uc3QgY2hhciopCisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVt
YmVkZGVkIG51bGxzLgorICAvLy8gXGRlcHJlY2F0ZWQKKyAgVmFsdWUgcmVtb3ZlTWVtYmVyKGNv
bnN0IHN0ZDo6c3RyaW5nJiBrZXkpOworICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoY29uc3Qg
Y2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpLAorICAvLy8gYnV0
ICdrZXknIGlzIG51bGwtdGVybWluYXRlZC4KKyAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3QgY2hh
cioga2V5LCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVtb3ZlIHRoZSBuYW1lZCBt
YXAgbWVtYmVyLgorCisgICAgICBVcGRhdGUgJ3JlbW92ZWQnIGlmZiByZW1vdmVkLgorICAgICAg
XHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgICAgIFxyZXR1cm4gdHJ1
ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKKyAgKi8KKyAgYm9vbCByZW1vdmVNZW1iZXIo
c3RkOjpzdHJpbmcgY29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpOworICAvLy8gU2FtZSBhcyBy
ZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpCisgIGJv
b2wgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIFZhbHVl
KiByZW1vdmVkKTsKKyAgLyoqIFxicmllZiBSZW1vdmUgdGhlIGluZGV4ZWQgYXJyYXkgZWxlbWVu
dC4KKworICAgICAgTyhuKSBleHBlbnNpdmUgb3BlcmF0aW9ucy4KKyAgICAgIFVwZGF0ZSAncmVt
b3ZlZCcgaWZmIHJlbW92ZWQuCisgICAgICBccmV0dXJuIHRydWUgaWZmIHJlbW92ZWQgKG5vIGV4
Y2VwdGlvbnMpCisgICovCisgIGJvb2wgcmVtb3ZlSW5kZXgoQXJyYXlJbmRleCBpLCBWYWx1ZSog
cmVtb3ZlZCk7CisKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVy
IG5hbWVkIGtleS4KKyAgLy8vIFxub3RlICdrZXknIG11c3QgYmUgbnVsbC10ZXJtaW5hdGVkLgor
ICBib29sIGlzTWVtYmVyKGNvbnN0IGNoYXIqIGtleSkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdHJ1
ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisgIC8vLyBccGFyYW0ga2V5
IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBib29sIGlzTWVtYmVyKGNvbnN0IHN0ZDo6
c3RyaW5nJiBrZXkpIGNvbnN0OworICAvLy8gU2FtZSBhcyBpc01lbWJlcihzdGQ6OnN0cmluZyBj
b25zdCYga2V5KWNvbnN0CisgIGJvb2wgaXNNZW1iZXIoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0
IGNoYXIqIGVuZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8vIFJldHVybiB0
cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtleS4KKyAgYm9vbCBpc01lbWJl
cihjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7CisjZW5kaWYKKworICAvLy8g
XGJyaWVmIFJldHVybiBhIGxpc3Qgb2YgdGhlIG1lbWJlciBuYW1lcy4KKyAgLy8vCisgIC8vLyBJ
ZiBudWxsLCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KKyAgLy8vIFxwcmUgdHlwZSgpIGlzIG9iamVj
dFZhbHVlIG9yIG51bGxWYWx1ZQorICAvLy8gXHBvc3QgaWYgdHlwZSgpIHdhcyBudWxsVmFsdWUs
IGl0IHJlbWFpbnMgbnVsbFZhbHVlCisgIE1lbWJlcnMgZ2V0TWVtYmVyTmFtZXMoKSBjb25zdDsK
KworICAvLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8gICAgICBFbnVtTWVtYmVyTmFtZXMg
ZW51bU1lbWJlck5hbWVzKCkgY29uc3Q7CisgIC8vICAgICAgRW51bVZhbHVlcyBlbnVtVmFsdWVz
KCkgY29uc3Q7CisgIC8vIyBlbmRpZgorCisgIC8vLyBcZGVwcmVjYXRlZCBBbHdheXMgcGFzcyBs
ZW4uCisgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIHNldENvbW1lbnQoc3RkOjpzdHJpbmcgY29u
c3QmKSBpbnN0ZWFkLiIpCisgIHZvaWQgc2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBD
b21tZW50UGxhY2VtZW50IHBsYWNlbWVudCk7CisgIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4u
IG9yIC8qIC4uLiAqLworICB2b2lkIHNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwgc2l6
ZV90IGxlbiwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICAvLy8gQ29tbWVudHMgbXVz
dCBiZSAvLy4uLiBvciAvKiAuLi4gKi8KKyAgdm9pZCBzZXRDb21tZW50KGNvbnN0IHN0ZDo6c3Ry
aW5nJiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCk7CisgIGJvb2wgaGFzQ29t
bWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3Q7CisgIC8vLyBJbmNsdWRlIGRl
bGltaXRlcnMgYW5kIGVtYmVkZGVkIG5ld2xpbmVzLgorICBzdGQ6OnN0cmluZyBnZXRDb21tZW50
KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdDsKKworICBzdGQ6OnN0cmluZyB0b1N0
eWxlZFN0cmluZygpIGNvbnN0OworCisgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7Cisg
IGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0OworCisgIGl0ZXJhdG9yIGJlZ2luKCk7CisgIGl0
ZXJhdG9yIGVuZCgpOworCisgIC8vIEFjY2Vzc29ycyBmb3IgdGhlIFtzdGFydCwgbGltaXQpIHJh
bmdlIG9mIGJ5dGVzIHdpdGhpbiB0aGUgSlNPTiB0ZXh0IGZyb20KKyAgLy8gd2hpY2ggdGhpcyB2
YWx1ZSB3YXMgcGFyc2VkLCBpZiBhbnkuCisgIHZvaWQgc2V0T2Zmc2V0U3RhcnQoc2l6ZV90IHN0
YXJ0KTsKKyAgdm9pZCBzZXRPZmZzZXRMaW1pdChzaXplX3QgbGltaXQpOworICBzaXplX3QgZ2V0
T2Zmc2V0U3RhcnQoKSBjb25zdDsKKyAgc2l6ZV90IGdldE9mZnNldExpbWl0KCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgIHZvaWQgaW5pdEJhc2ljKFZhbHVlVHlwZSB0eXBlLCBib29sIGFsbG9jYXRl
ZCA9IGZhbHNlKTsKKworICBWYWx1ZSYgcmVzb2x2ZVJlZmVyZW5jZShjb25zdCBjaGFyKiBrZXkp
OworICBWYWx1ZSYgcmVzb2x2ZVJlZmVyZW5jZShjb25zdCBjaGFyKiBrZXksIGNvbnN0IGNoYXIq
IGVuZCk7CisKKyAgc3RydWN0IENvbW1lbnRJbmZvIHsKKyAgICBDb21tZW50SW5mbygpOworICAg
IH5Db21tZW50SW5mbygpOworCisgICAgdm9pZCBzZXRDb21tZW50KGNvbnN0IGNoYXIqIHRleHQs
IHNpemVfdCBsZW4pOworCisgICAgY2hhciogY29tbWVudF87CisgIH07CisKKyAgLy8gc3RydWN0
IE1lbWJlck5hbWVzVHJhbnNmb3JtCisgIC8veworICAvLyAgIHR5cGVkZWYgY29uc3QgY2hhciAq
cmVzdWx0X3R5cGU7CisgIC8vICAgY29uc3QgY2hhciAqb3BlcmF0b3IoKSggY29uc3QgQ1pTdHJp
bmcgJm5hbWUgKSBjb25zdAorICAvLyAgIHsKKyAgLy8gICAgICByZXR1cm4gbmFtZS5jX3N0cigp
OworICAvLyAgIH0KKyAgLy99OworCisgIHVuaW9uIFZhbHVlSG9sZGVyIHsKKyAgICBMYXJnZXN0
SW50IGludF87CisgICAgTGFyZ2VzdFVJbnQgdWludF87CisgICAgZG91YmxlIHJlYWxfOworICAg
IGJvb2wgYm9vbF87CisgICAgY2hhciogc3RyaW5nXzsgIC8vIGFjdHVhbGx5IHB0ciB0byB1bnNp
Z25lZCwgZm9sbG93ZWQgYnkgc3RyLCB1bmxlc3MgIWFsbG9jYXRlZF8KKyAgICBPYmplY3RWYWx1
ZXMqIG1hcF87CisgIH0gdmFsdWVfOworICBWYWx1ZVR5cGUgdHlwZV8gOiA4OworICB1bnNpZ25l
ZCBpbnQgYWxsb2NhdGVkXyA6IDE7IC8vIE5vdGVzOiBpZiBkZWNsYXJlZCBhcyBib29sLCBiaXRm
aWVsZCBpcyB1c2VsZXNzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5v
dCBhbGxvY2F0ZWRfLCBzdHJpbmdfIG11c3QgYmUgbnVsbC10ZXJtaW5hdGVkLgorICBDb21tZW50
SW5mbyogY29tbWVudHNfOworICBWYWx1ZSAqZGVmYXVsdF92YWx1ZV87ICAvLyBpZiB2aWEgLmdl
dCggImtleSIsIGRlZmF1bHQgKSwgdGhpcyB3YXMgdGhlIGRlZmF1bHQKKworICAvLyBbc3RhcnQs
IGxpbWl0KSBieXRlIG9mZnNldHMgaW4gdGhlIHNvdXJjZSBKU09OIHRleHQgZnJvbSB3aGljaCB0
aGlzIFZhbHVlCisgIC8vIHdhcyBleHRyYWN0ZWQuCisgIHNpemVfdCBzdGFydF87CisgIHNpemVf
dCBsaW1pdF87Cit9OworCisvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6IHJl
cHJlc2VudHMgYW4gZWxlbWVudCBvZiB0aGUgInBhdGgiIHRvCisgKiBhY2Nlc3MgYSBub2RlLgor
ICovCitjbGFzcyBKU09OX0FQSSBQYXRoQXJndW1lbnQgeworcHVibGljOgorICBmcmllbmQgY2xh
c3MgUGF0aDsKKworICBQYXRoQXJndW1lbnQoKTsKKyAgUGF0aEFyZ3VtZW50KEFycmF5SW5kZXgg
aW5kZXgpOworICBQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KTsKKyAgUGF0aEFyZ3VtZW50
KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpOworCitwcml2YXRlOgorICBlbnVtIEtpbmQgeworICAg
IGtpbmROb25lID0gMCwKKyAgICBraW5kSW5kZXgsCisgICAga2luZEtleQorICB9OworICBzdGQ6
OnN0cmluZyBrZXlfOworICBBcnJheUluZGV4IGluZGV4XzsKKyAgS2luZCBraW5kXzsKK307CisK
Ky8qKiBcYnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhICJwYXRo
IiB0byBhY2Nlc3MgYSBub2RlLgorICoKKyAqIFN5bnRheDoKKyAqIC0gIi4iID0+IHJvb3Qgbm9k
ZQorICogLSAiLltuXSIgPT4gZWxlbWVudHMgYXQgaW5kZXggJ24nIG9mIHJvb3Qgbm9kZSAoYW4g
YXJyYXkgdmFsdWUpCisgKiAtICIubmFtZSIgPT4gbWVtYmVyIG5hbWVkICduYW1lJyBvZiByb290
IG5vZGUgKGFuIG9iamVjdCB2YWx1ZSkKKyAqIC0gIi5uYW1lMS5uYW1lMi5uYW1lMyIKKyAqIC0g
Ii5bMF1bMV1bMl0ubmFtZTFbM10iCisgKiAtICIuJSIgPT4gbWVtYmVyIG5hbWUgaXMgcHJvdmlk
ZWQgYXMgcGFyYW1ldGVyCisgKiAtICIuWyVdIiA9PiBpbmRleCBpcyBwcm92aWVkIGFzIHBhcmFt
ZXRlcgorICovCitjbGFzcyBKU09OX0FQSSBQYXRoIHsKK3B1YmxpYzoKKyAgUGF0aChjb25zdCBz
dGQ6OnN0cmluZyYgcGF0aCwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGExID0gUGF0aEFy
Z3VtZW50KCksCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMiA9IFBhdGhBcmd1bWVudCgp
LAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAg
ICBjb25zdCBQYXRoQXJndW1lbnQmIGE0ID0gUGF0aEFyZ3VtZW50KCksCisgICAgICAgY29uc3Qg
UGF0aEFyZ3VtZW50JiBhNSA9IFBhdGhBcmd1bWVudCgpKTsKKworICBjb25zdCBWYWx1ZSYgcmVz
b2x2ZShjb25zdCBWYWx1ZSYgcm9vdCkgY29uc3Q7CisgIFZhbHVlIHJlc29sdmUoY29uc3QgVmFs
dWUmIHJvb3QsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gQ3JlYXRl
cyB0aGUgInBhdGgiIHRvIGFjY2VzcyB0aGUgc3BlY2lmaWVkIG5vZGUgYW5kIHJldHVybnMgYSBy
ZWZlcmVuY2Ugb24KKyAgLy8vIHRoZSBub2RlLgorICBWYWx1ZSYgbWFrZShWYWx1ZSYgcm9vdCkg
Y29uc3Q7CisKK3ByaXZhdGU6CisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8Y29uc3QgUGF0aEFyZ3Vt
ZW50Kj4gSW5BcmdzOworICB0eXBlZGVmIHN0ZDo6dmVjdG9yPFBhdGhBcmd1bWVudD4gQXJnczsK
KworICB2b2lkIG1ha2VQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBjb25zdCBJbkFyZ3Mm
IGluKTsKKyAgdm9pZCBhZGRQYXRoSW5BcmcoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsCisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyYgaW4sCisgICAgICAgICAgICAgICAgICAgIElu
QXJnczo6Y29uc3RfaXRlcmF0b3ImIGl0SW5BcmcsCisgICAgICAgICAgICAgICAgICAgIFBhdGhB
cmd1bWVudDo6S2luZCBraW5kKTsKKyAgdm9pZCBpbnZhbGlkUGF0aChjb25zdCBzdGQ6OnN0cmlu
ZyYgcGF0aCwgaW50IGxvY2F0aW9uKTsKKworICBBcmdzIGFyZ3NfOworfTsKKworLyoqIFxicmll
ZiBiYXNlIGNsYXNzIGZvciBWYWx1ZSBpdGVyYXRvcnMuCisgKgorICovCitjbGFzcyBKU09OX0FQ
SSBWYWx1ZUl0ZXJhdG9yQmFzZSB7CitwdWJsaWM6CisgIHR5cGVkZWYgc3RkOjpiaWRpcmVjdGlv
bmFsX2l0ZXJhdG9yX3RhZyBpdGVyYXRvcl9jYXRlZ29yeTsKKyAgdHlwZWRlZiB1bnNpZ25lZCBp
bnQgc2l6ZV90OworICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7CisgIHR5cGVkZWYgVmFs
dWVJdGVyYXRvckJhc2UgU2VsZlR5cGU7CisKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlbGZU
eXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gaXNFcXVhbChvdGhlcik7IH0KKworICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhaXNFcXVhbChv
dGhlcik7IH0KKworICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3ItKGNvbnN0IFNlbGZUeXBlJiBv
dGhlcikgY29uc3QgeworICAgIHJldHVybiBvdGhlci5jb21wdXRlRGlzdGFuY2UoKnRoaXMpOwor
ICB9CisKKyAgLy8vIFJldHVybiBlaXRoZXIgdGhlIGluZGV4IG9yIHRoZSBtZW1iZXIgbmFtZSBv
ZiB0aGUgcmVmZXJlbmNlZCB2YWx1ZSBhcyBhCisgIC8vLyBWYWx1ZS4KKyAgVmFsdWUga2V5KCkg
Y29uc3Q7CisKKyAgLy8vIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUs
IG9yIC0xIGlmIGl0IGlzIG5vdCBhbiBhcnJheVZhbHVlLgorICBVSW50IGluZGV4KCkgY29uc3Q7
CisKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUs
IG9yICIiIGlmIGl0IGlzIG5vdCBhbgorICAvLy8gb2JqZWN0VmFsdWUuCisgIC8vLyBcbm90ZSBB
dm9pZCBgY19zdHIoKWAgb24gcmVzdWx0LCBhcyBlbWJlZGRlZCB6ZXJvZXMgYXJlIHBvc3NpYmxl
LgorICBzdGQ6OnN0cmluZyBuYW1lKCkgY29uc3Q7CisKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVy
IG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUuICIiIGlmIGl0IGlzIG5vdCBhbgorICAvLy8g
b2JqZWN0VmFsdWUuCisgIC8vLyBcZGVwcmVjYXRlZCBUaGlzIGNhbm5vdCBiZSB1c2VkIGZvciBV
VEYtOCBzdHJpbmdzLCBzaW5jZSB0aGVyZSBjYW4gYmUgZW1iZWRkZWQgbnVsbHMuCisgIEpTT05D
UFBfREVQUkVDQVRFRCgiVXNlIGBrZXkgPSBuYW1lKCk7YCBpbnN0ZWFkLiIpCisgIGNoYXIgY29u
c3QqIG1lbWJlck5hbWUoKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWUgb2Yg
dGhlIHJlZmVyZW5jZWQgVmFsdWUsIG9yIE5VTEwgaWYgaXQgaXMgbm90IGFuCisgIC8vLyBvYmpl
Y3RWYWx1ZS4KKyAgLy8vIFxub3RlIEJldHRlciB2ZXJzaW9uIHRoYW4gbWVtYmVyTmFtZSgpLiBB
bGxvd3MgZW1iZWRkZWQgbnVsbHMuCisgIGNoYXIgY29uc3QqIG1lbWJlck5hbWUoY2hhciBjb25z
dCoqIGVuZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgVmFsdWUmIGRlcmVmKCkgY29uc3Q7CisK
KyAgdm9pZCBpbmNyZW1lbnQoKTsKKworICB2b2lkIGRlY3JlbWVudCgpOworCisgIGRpZmZlcmVu
Y2VfdHlwZSBjb21wdXRlRGlzdGFuY2UoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdDsKKwor
ICBib29sIGlzRXF1YWwoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdDsKKworICB2b2lkIGNv
cHkoY29uc3QgU2VsZlR5cGUmIG90aGVyKTsKKworcHJpdmF0ZToKKyAgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3IgY3VycmVudF87CisgIC8vIEluZGljYXRlcyB0aGF0IGl0ZXJhdG9yIGlz
IGZvciBhIG51bGwgdmFsdWUuCisgIGJvb2wgaXNOdWxsXzsKKworcHVibGljOgorICAvLyBGb3Ig
c29tZSByZWFzb24sIEJPUkxBTkQgbmVlZHMgdGhlc2UgYXQgdGhlIGVuZCwgcmF0aGVyCisgIC8v
IHRoYW4gZWFybGllci4gTm8gaWRlYSB3aHkuCisgIFZhbHVlSXRlcmF0b3JCYXNlKCk7CisgIGV4
cGxpY2l0IFZhbHVlSXRlcmF0b3JCYXNlKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJh
dG9yJiBjdXJyZW50KTsKK307CisKKy8qKiBcYnJpZWYgY29uc3QgaXRlcmF0b3IgZm9yIG9iamVj
dCBhbmQgYXJyYXkgdmFsdWUuCisgKgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZUNvbnN0SXRl
cmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJhc2UgeworICBmcmllbmQgY2xhc3MgVmFsdWU7
CisKK3B1YmxpYzoKKyAgdHlwZWRlZiBjb25zdCBWYWx1ZSB2YWx1ZV90eXBlOworICAvL3R5cGVk
ZWYgdW5zaWduZWQgaW50IHNpemVfdDsKKyAgLy90eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7
CisgIHR5cGVkZWYgY29uc3QgVmFsdWUmIHJlZmVyZW5jZTsKKyAgdHlwZWRlZiBjb25zdCBWYWx1
ZSogcG9pbnRlcjsKKyAgdHlwZWRlZiBWYWx1ZUNvbnN0SXRlcmF0b3IgU2VsZlR5cGU7CisKKyAg
VmFsdWVDb25zdEl0ZXJhdG9yKCk7CisgIFZhbHVlQ29uc3RJdGVyYXRvcihWYWx1ZUl0ZXJhdG9y
IGNvbnN0JiBvdGhlcik7CisKK3ByaXZhdGU6CisvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0
byBjcmVhdGUgYW4gaXRlcmF0b3IuCisgKi8KKyAgZXhwbGljaXQgVmFsdWVDb25zdEl0ZXJhdG9y
KGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KTsKK3B1YmxpYzoK
KyAgU2VsZlR5cGUmIG9wZXJhdG9yPShjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSYgb3RoZXIpOwor
CisgIFNlbGZUeXBlIG9wZXJhdG9yKysoaW50KSB7CisgICAgU2VsZlR5cGUgdGVtcCgqdGhpcyk7
CisgICAgKysqdGhpczsKKyAgICByZXR1cm4gdGVtcDsKKyAgfQorCisgIFNlbGZUeXBlIG9wZXJh
dG9yLS0oaW50KSB7CisgICAgU2VsZlR5cGUgdGVtcCgqdGhpcyk7CisgICAgLS0qdGhpczsKKyAg
ICByZXR1cm4gdGVtcDsKKyAgfQorCisgIFNlbGZUeXBlJiBvcGVyYXRvci0tKCkgeworICAgIGRl
Y3JlbWVudCgpOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIFNlbGZUeXBlJiBvcGVyYXRv
cisrKCkgeworICAgIGluY3JlbWVudCgpOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIHJl
ZmVyZW5jZSBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiBkZXJlZigpOyB9CisKKyAgcG9pbnRl
ciBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gJmRlcmVmKCk7IH0KK307CisKKy8qKiBcYnJp
ZWYgSXRlcmF0b3IgZm9yIG9iamVjdCBhbmQgYXJyYXkgdmFsdWUuCisgKi8KK2NsYXNzIEpTT05f
QVBJIFZhbHVlSXRlcmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJhc2UgeworICBmcmllbmQg
Y2xhc3MgVmFsdWU7CisKK3B1YmxpYzoKKyAgdHlwZWRlZiBWYWx1ZSB2YWx1ZV90eXBlOworICB0
eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIHR5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlw
ZTsKKyAgdHlwZWRlZiBWYWx1ZSYgcmVmZXJlbmNlOworICB0eXBlZGVmIFZhbHVlKiBwb2ludGVy
OworICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgU2VsZlR5cGU7CisKKyAgVmFsdWVJdGVyYXRvcigp
OworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlQ29uc3RJdGVyYXRvciYgb3Ro
ZXIpOworICBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlSXRlcmF0b3ImIG90aGVyKTsKKworcHJp
dmF0ZToKKy8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4K
KyAqLworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6
Oml0ZXJhdG9yJiBjdXJyZW50KTsKK3B1YmxpYzoKKyAgU2VsZlR5cGUmIG9wZXJhdG9yPShjb25z
dCBTZWxmVHlwZSYgb3RoZXIpOworCisgIFNlbGZUeXBlIG9wZXJhdG9yKysoaW50KSB7CisgICAg
U2VsZlR5cGUgdGVtcCgqdGhpcyk7CisgICAgKysqdGhpczsKKyAgICByZXR1cm4gdGVtcDsKKyAg
fQorCisgIFNlbGZUeXBlIG9wZXJhdG9yLS0oaW50KSB7CisgICAgU2VsZlR5cGUgdGVtcCgqdGhp
cyk7CisgICAgLS0qdGhpczsKKyAgICByZXR1cm4gdGVtcDsKKyAgfQorCisgIFNlbGZUeXBlJiBv
cGVyYXRvci0tKCkgeworICAgIGRlY3JlbWVudCgpOworICAgIHJldHVybiAqdGhpczsKKyAgfQor
CisgIFNlbGZUeXBlJiBvcGVyYXRvcisrKCkgeworICAgIGluY3JlbWVudCgpOworICAgIHJldHVy
biAqdGhpczsKKyAgfQorCisgIHJlZmVyZW5jZSBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiBk
ZXJlZigpOyB9CisKKyAgcG9pbnRlciBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gJmRlcmVm
KCk7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworCituYW1lc3BhY2Ugc3RkIHsKKy8v
LyBTcGVjaWFsaXplIHN0ZDo6c3dhcCgpIGZvciBKc29uOjpWYWx1ZS4KK3RlbXBsYXRlPD4KK2lu
bGluZSB2b2lkIHN3YXAoSnNvbjo6VmFsdWUmIGEsIEpzb246OlZhbHVlJiBiKSB7IGEuc3dhcChi
KTsgfQorfQorCisKKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQ
UF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworI2VuZGlmIC8vIENQUFRMX0pTT05f
SF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxl
OiBpbmNsdWRlL2pzb24vdmFsdWUuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9q
c29uL3JlYWRlci5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAg
QmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3Ig
cHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQVExfSlNPTl9S
RUFERVJfSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECisK
KyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlICJmZWF0dXJlcy5o
IgorI2luY2x1ZGUgInZhbHVlLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFM
R0FNQVRJT04pCisjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8aW9zZndkPgorI2luY2x1ZGUg
PHN0YWNrPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxpc3RyZWFtPgorCisvLyBEaXNh
YmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRs
bC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElT
QUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFn
bWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBf
RElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKK25hbWVzcGFjZSBKc29uIHsKKworLyoq
IFxicmllZiBVbnNlcmlhbGl6ZSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048
L2E+IGRvY3VtZW50IGludG8gYQorICpWYWx1ZS4KKyAqCisgKiBcZGVwcmVjYXRlZCBVc2UgQ2hh
clJlYWRlciBhbmQgQ2hhclJlYWRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFJlYWRl
ciB7CitwdWJsaWM6CisgIHR5cGVkZWYgY2hhciBDaGFyOworICB0eXBlZGVmIGNvbnN0IENoYXIq
IExvY2F0aW9uOworCisgIC8qKiBcYnJpZWYgQW4gZXJyb3IgdGFnZ2VkIHdpdGggd2hlcmUgaW4g
dGhlIEpTT04gdGV4dCBpdCB3YXMgZW5jb3VudGVyZWQuCisgICAqCisgICAqIFRoZSBvZmZzZXRz
IGdpdmUgdGhlIFtzdGFydCwgbGltaXQpIHJhbmdlIG9mIGJ5dGVzIHdpdGhpbiB0aGUgdGV4dC4g
Tm90ZQorICAgKiB0aGF0IHRoaXMgaXMgYnl0ZXMsIG5vdCBjb2RlcG9pbnRzLgorICAgKgorICAg
Ki8KKyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgc2l6ZV90IG9mZnNldF9zdGFydDsK
KyAgICBzaXplX3Qgb2Zmc2V0X2xpbWl0OworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2U7CisgIH07
CisKKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93aW5nIGFsbCBmZWF0dXJl
cworICAgKiBmb3IgcGFyc2luZy4KKyAgICovCisgIFJlYWRlcigpOworCisgIC8qKiBcYnJpZWYg
Q29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyB0aGUgc3BlY2lmaWVkIGZlYXR1cmUgc2V0Cisg
ICAqIGZvciBwYXJzaW5nLgorICAgKi8KKyAgUmVhZGVyKGNvbnN0IEZlYXR1cmVzJiBmZWF0dXJl
cyk7CisKKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0dHA6Ly93
d3cuanNvbi5vcmciPkpTT048L2E+CisgICAqIGRvY3VtZW50LgorICAgKiBccGFyYW0gZG9jdW1l
bnQgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgZG9jdW1lbnQgdG8gcmVhZC4K
KyAgICogXHBhcmFtIHJvb3QgW291dF0gQ29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRv
Y3VtZW50IGlmIGl0IHdhcworICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgor
ICAgKiBccGFyYW0gY29sbGVjdENvbW1lbnRzIFxjIHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFu
ZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgICogYmFjayBkdXJpbmcKKyAgICogICAgICAgICAgICAg
ICAgICAgICAgICBzZXJpYWxpemF0aW9uLCBcYyBmYWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgor
ICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYK
KyAgICogRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCisgICAqICAgICAgICAgICAgICAgICAgICAg
ICAgaXMgXGMgZmFsc2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2Fz
IHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisgICAqIGVycm9yIG9jY3VycmVk
LgorICAgKi8KKyAgYm9vbAorICBwYXJzZShjb25zdCBzdGQ6OnN0cmluZyYgZG9jdW1lbnQsIFZh
bHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOworCisgIC8qKiBcYnJpZWYg
UmVhZCBhIFZhbHVlIGZyb20gYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9h
PgorICAgZG9jdW1lbnQuCisgICAqIFxwYXJhbSBiZWdpbkRvYyBQb2ludGVyIG9uIHRoZSBiZWdp
bm5pbmcgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8g
cmVhZC4KKyAgICogXHBhcmFtIGVuZERvYyBQb2ludGVyIG9uIHRoZSBlbmQgb2YgdGhlIFVURi04
IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogICAgICAg
ICAgICAgICBNdXN0IGJlID49IGJlZ2luRG9jLgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250
YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAg
ICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBjb2xsZWN0Q29tbWVudHMg
XGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQorICAgYmFj
ayBkdXJpbmcKKyAgICogICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemF0aW9uLCBcYyBm
YWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgorICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRo
aXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYKKyAgIEZlYXR1cmVzOjphbGxvd0NvbW1lbnRzXwor
ICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgorICAgKiBccmV0dXJuIFxj
IHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBp
ZiBhbgorICAgZXJyb3Igb2NjdXJyZWQuCisgICAqLworICBib29sIHBhcnNlKGNvbnN0IGNoYXIq
IGJlZ2luRG9jLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAg
ICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUp
OworCisgIC8vLyBcYnJpZWYgUGFyc2UgZnJvbSBpbnB1dCBzdHJlYW0uCisgIC8vLyBcc2VlIEpz
b246Om9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiwgSnNvbjo6VmFsdWUmKS4KKyAgYm9vbCBwYXJz
ZShzdGQ6OmlzdHJlYW0mIGlzLCBWYWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0
cnVlKTsKKworICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0
IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1cm4g
Rm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0aGVp
ciBsb2NhdGlvbgorICAgKiBpbgorICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQuIEFu
IGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvcgorICAgKiBvY2N1cnJlZAorICAg
KiAgICAgICAgIGR1cmluZyBwYXJzaW5nLgorICAgKiBcZGVwcmVjYXRlZCBVc2UgZ2V0Rm9ybWF0
dGVkRXJyb3JNZXNzYWdlcygpIGluc3RlYWQgKHR5cG8gZml4KS4KKyAgICovCisgIEpTT05DUFBf
REVQUkVDQVRFRCgiVXNlIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBpbnN0ZWFkLiIpCisg
IHN0ZDo6c3RyaW5nIGdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OworCisgIC8qKiBc
YnJpZWYgUmV0dXJucyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdCBlcnJvcnMgaW4g
dGhlIHBhcnNlZAorICAgKiBkb2N1bWVudC4KKyAgICogXHJldHVybiBGb3JtYXR0ZWQgZXJyb3Ig
bWVzc2FnZSB3aXRoIHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWlyIGxvY2F0aW9uCisgICAq
IGluCisgICAqICAgICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4gZW1wdHkgc3RyaW5nIGlz
IHJldHVybmVkIGlmIG5vIGVycm9yCisgICAqIG9jY3VycmVkCisgICAqICAgICAgICAgZHVyaW5n
IHBhcnNpbmcuCisgICAqLworICBzdGQ6OnN0cmluZyBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2Vz
KCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdmVjdG9yIG9mIHN0cnVjdHVyZWQg
ZXJyb3MgZW5jb3VudGVkIHdoaWxlIHBhcnNpbmcuCisgICAqIFxyZXR1cm4gQSAocG9zc2libHkg
ZW1wdHkpIHZlY3RvciBvZiBTdHJ1Y3R1cmVkRXJyb3Igb2JqZWN0cy4gQ3VycmVudGx5CisgICAq
ICAgICAgICAgb25seSBvbmUgZXJyb3IgY2FuIGJlIHJldHVybmVkLCBidXQgdGhlIGNhbGxlciBz
aG91bGQgdG9sZXJhdGUKKyAgICogbXVsdGlwbGUKKyAgICogICAgICAgICBlcnJvcnMuICBUaGlz
IGNhbiBvY2N1ciBpZiB0aGUgcGFyc2VyIHJlY292ZXJzIGZyb20gYSBub24tZmF0YWwKKyAgICog
ICAgICAgICBwYXJzZSBlcnJvciBhbmQgdGhlbiBlbmNvdW50ZXJzIGFkZGl0aW9uYWwgZXJyb3Jz
LgorICAgKi8KKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBnZXRTdHJ1Y3R1cmVkRXJy
b3JzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdl
LgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1ZSBsb2NhdGlvbiBhc3NvY2lhdGVkIHdpdGgg
dGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLgorICAgKiBc
cmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNjZXNzZnVsbHkgYWRkZWQsIFxjIGZh
bHNlIGlmIHRoZQorICAgKiBWYWx1ZSBvZmZzZXQgZXhjZWVkcyB0aGUgZG9jdW1lbnQgc2l6ZS4K
KyAgICovCisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpz
dHJpbmcmIG1lc3NhZ2UpOworCisgIC8qKiBcYnJpZWYgQWRkIGEgc2VtYW50aWMgZXJyb3IgbWVz
c2FnZSB3aXRoIGV4dHJhIGNvbnRleHQuCisgICAqIFxwYXJhbSB2YWx1ZSBKU09OIFZhbHVlIGxv
Y2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKKyAgICogXHBhcmFtIG1lc3NhZ2UgVGhl
IGVycm9yIG1lc3NhZ2UuCisgICAqIFxwYXJhbSBleHRyYSBBZGRpdGlvbmFsIEpTT04gVmFsdWUg
bG9jYXRpb24gdG8gY29udGV4dHVhbGl6ZSB0aGUgZXJyb3IKKyAgICogXHJldHVybiBcYyB0cnVl
IGlmIHRoZSBlcnJvciB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBcYyBmYWxzZSBpZiBlaXRoZXIK
KyAgICogVmFsdWUgb2Zmc2V0IGV4Y2VlZHMgdGhlIGRvY3VtZW50IHNpemUuCisgICAqLworICBi
b29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpOworCisgIC8qKiBcYnJpZWYgUmV0dXJuIHdoZXRoZXIg
dGhlcmUgYXJlIGFueSBlcnJvcnMuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGVyZSBhcmUg
bm8gZXJyb3JzIHRvIHJlcG9ydCBcYyBmYWxzZSBpZgorICAgKiBlcnJvcnMgaGF2ZSBvY2N1cnJl
ZC4KKyAgICovCisgIGJvb2wgZ29vZCgpIGNvbnN0OworCitwcml2YXRlOgorICBlbnVtIFRva2Vu
VHlwZSB7CisgICAgdG9rZW5FbmRPZlN0cmVhbSA9IDAsCisgICAgdG9rZW5PYmplY3RCZWdpbiwK
KyAgICB0b2tlbk9iamVjdEVuZCwKKyAgICB0b2tlbkFycmF5QmVnaW4sCisgICAgdG9rZW5BcnJh
eUVuZCwKKyAgICB0b2tlblN0cmluZywKKyAgICB0b2tlbk51bWJlciwKKyAgICB0b2tlblRydWUs
CisgICAgdG9rZW5GYWxzZSwKKyAgICB0b2tlbk51bGwsCisgICAgdG9rZW5BcnJheVNlcGFyYXRv
ciwKKyAgICB0b2tlbk1lbWJlclNlcGFyYXRvciwKKyAgICB0b2tlbkNvbW1lbnQsCisgICAgdG9r
ZW5FcnJvcgorICB9OworCisgIGNsYXNzIFRva2VuIHsKKyAgcHVibGljOgorICAgIFRva2VuVHlw
ZSB0eXBlXzsKKyAgICBMb2NhdGlvbiBzdGFydF87CisgICAgTG9jYXRpb24gZW5kXzsKKyAgfTsK
KworICBjbGFzcyBFcnJvckluZm8geworICBwdWJsaWM6CisgICAgVG9rZW4gdG9rZW5fOworICAg
IHN0ZDo6c3RyaW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJhXzsKKyAgfTsKKworICB0
eXBlZGVmIHN0ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAgYm9vbCByZWFkVG9rZW4o
VG9rZW4mIHRva2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJvb2wgbWF0Y2goTG9jYXRp
b24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJlYWRDb21tZW50KCk7Cisg
IGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3BwU3R5bGVDb21tZW50KCk7
CisgIGJvb2wgcmVhZFN0cmluZygpOworICB2b2lkIHJlYWROdW1iZXIoKTsKKyAgYm9vbCByZWFk
VmFsdWUoKTsKKyAgYm9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7CisgIGJvb2wgcmVhZEFy
cmF5KFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbik7Cisg
IGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29s
IGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYg
dG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4m
IHRva2VuKTsKKyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2Rl
ZCk7CisgIGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNl
cXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50JiB1bmljb2RlKTsKKyAgYm9vbCBhZGRFcnJvcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSA9IDApOworICBib29sIHJlY292ZXJGcm9t
RXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgYm9vbCBhZGRFcnJvckFuZFJlY292
ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBV
bnRpbFRva2VuKTsKKyAgdm9pZCBza2lwVW50aWxTcGFjZSgpOworICBWYWx1ZSYgY3VycmVudFZh
bHVlKCk7CisgIENoYXIgZ2V0TmV4dENoYXIoKTsKKyAgdm9pZAorICBnZXRMb2NhdGlvbkxpbmVB
bmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0
OworICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRp
b24pIGNvbnN0OworICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvblNuaXBwZXQoTG9jYXRpb24gbG9j
YXRpb24pIGNvbnN0OworICB2b2lkIGFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9u
IGVuZCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICB2b2lkIHNraXBDb21tZW50VG9r
ZW5zKFRva2VuJiB0b2tlbik7CisKKyAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7
CisgIE5vZGVzIG5vZGVzXzsKKyAgRXJyb3JzIGVycm9yc187CisgIHN0ZDo6c3RyaW5nIGRvY3Vt
ZW50XzsKKyAgTG9jYXRpb24gYmVnaW5fOworICBMb2NhdGlvbiBlbmRfOworICBMb2NhdGlvbiBj
dXJyZW50XzsKKyAgTG9jYXRpb24gbGFzdFZhbHVlRW5kXzsKKyAgVmFsdWUqIGxhc3RWYWx1ZV87
CisgIHN0ZDo6c3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsKKyAgRmVhdHVyZXMgZmVhdHVyZXNfOwor
ICBib29sIGNvbGxlY3RDb21tZW50c187Cit9OyAgLy8gUmVhZGVyCisKKy8qKiBJbnRlcmZhY2Ug
Zm9yIHJlYWRpbmcgSlNPTiBmcm9tIGEgY2hhciBhcnJheS4KKyAqLworY2xhc3MgSlNPTl9BUEkg
Q2hhclJlYWRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfkNoYXJSZWFkZXIoKSB7fQorICAvKiog
XGJyaWVmIFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+
SlNPTjwvYT4KKyAgIGRvY3VtZW50LgorICAgKiBUaGUgZG9jdW1lbnQgbXVzdCBiZSBhIFVURi04
IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRvIHJlYWQuCisgICAqCisg
ICAqIFxwYXJhbSBiZWdpbkRvYyBQb2ludGVyIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFVURi04
IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogXHBhcmFt
IGVuZERvYyBQb2ludGVyIG9uIHRoZSBlbmQgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9m
IHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogICAgICAgIE11c3QgYmUgPj0gYmVnaW5E
b2MuCisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRo
ZSBkb2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNl
ZC4KKyAgICogXHBhcmFtIGVycnMgW291dF0gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2VzIChpZiBu
b3QgTlVMTCkKKyAgICogICAgICAgIGEgdXNlciBmcmllbmRseSBzdHJpbmcgdGhhdCBsaXN0cyBl
cnJvcnMgaW4gdGhlIHBhcnNlZAorICAgKiBkb2N1bWVudC4KKyAgICogXHJldHVybiBcYyB0cnVl
IGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFsc2UgaWYgYW4K
KyAgIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgdmlydHVhbCBib29sIHBhcnNlKAorICAgICAg
Y2hhciBjb25zdCogYmVnaW5Eb2MsIGNoYXIgY29uc3QqIGVuZERvYywKKyAgICAgIFZhbHVlKiBy
b290LCBzdGQ6OnN0cmluZyogZXJycykgPSAwOworCisgIGNsYXNzIEpTT05fQVBJIEZhY3Rvcnkg
eworICBwdWJsaWM6CisgICAgdmlydHVhbCB+RmFjdG9yeSgpIHt9CisgICAgLyoqIFxicmllZiBB
bGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9yIG5ldygpLgorICAgICAqIFx0aHJvdyBz
dGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoZS5nLiBpbnZhbGlkIHNldHRp
bmdzKQorICAgICAqLworICAgIHZpcnR1YWwgQ2hhclJlYWRlciogbmV3Q2hhclJlYWRlcigpIGNv
bnN0ID0gMDsKKyAgfTsgIC8vIEZhY3RvcnkKK307ICAvLyBDaGFyUmVhZGVyCisKKy8qKiBcYnJp
ZWYgQnVpbGQgYSBDaGFyUmVhZGVyIGltcGxlbWVudGF0aW9uLgorCitVc2FnZToKK1xjb2RlCisg
IHVzaW5nIG5hbWVzcGFjZSBKc29uOworICBDaGFyUmVhZGVyQnVpbGRlciBidWlsZGVyOworICBi
dWlsZGVyWyJjb2xsZWN0Q29tbWVudHMiXSA9IGZhbHNlOworICBWYWx1ZSB2YWx1ZTsKKyAgc3Rk
OjpzdHJpbmcgZXJyczsKKyAgYm9vbCBvayA9IHBhcnNlRnJvbVN0cmVhbShidWlsZGVyLCBzdGQ6
OmNpbiwgJnZhbHVlLCAmZXJycyk7CitcZW5kY29kZQorKi8KK2NsYXNzIEpTT05fQVBJIENoYXJS
ZWFkZXJCdWlsZGVyIDogcHVibGljIENoYXJSZWFkZXI6OkZhY3RvcnkgeworcHVibGljOgorICAv
LyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0IHdlIGNhbiBhZGQgZGF0YS1tZW1i
ZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1ham9yIHZlcnNpb24gYnVtcC4KKyAg
LyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgorICAgIFRoZXNlIGFyZSBjYXNlLXNl
bnNpdGl2ZS4KKyAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vuc2l0aXZlKToKKyAgICAt
IGAiY29sbGVjdENvbW1lbnRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSB0byBjb2xs
ZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQorICAgICAgICBiYWNrIGR1cmluZyBz
ZXJpYWxpemF0aW9uLCBmYWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgorICAgICAgICBUaGlzIHBh
cmFtZXRlciBpcyBpZ25vcmVkIGlmIGFsbG93Q29tbWVudHMgaXMgZmFsc2UuCisgICAgLSBgImFs
bG93Q29tbWVudHMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlmIGNvbW1lbnRzIGFy
ZSBhbGxvd2VkLgorICAgIC0gYCJzdHJpY3RSb290IjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0g
dHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZQor
ICAgIC0gYCJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAg
ICAgIC0gdHJ1ZSBpZiBkcm9wcGVkIG51bGwgcGxhY2Vob2xkZXJzIGFyZSBhbGxvd2VkLiAoU2Vl
IFN0cmVhbVdyaXRlckJ1aWxkZXIuKQorICAgIC0gYCJhbGxvd051bWVyaWNLZXlzIjogZmFsc2Ug
b3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBudW1lcmljIG9iamVjdCBrZXlzIGFyZSBhbGxvd2Vk
LgorICAgIC0gYCJhbGxvd1NpbmdsZVF1b3RlcyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRy
dWUgaWYgJycgYXJlIGFsbG93ZWQgZm9yIHN0cmluZ3MgKGJvdGgga2V5cyBhbmQgdmFsdWVzKQor
ICAgIC0gYCJzdGFja0xpbWl0IjogaW50ZWdlcmAKKyAgICAgIC0gRXhjZWVkaW5nIHN0YWNrTGlt
aXQgKHJlY3Vyc2l2ZSBkZXB0aCBvZiBgcmVhZFZhbHVlKClgKSB3aWxsCisgICAgICAgIGNhdXNl
IGFuIGV4Y2VwdGlvbi4KKyAgICAgIC0gVGhpcyBpcyBhIHNlY3VyaXR5IGlzc3VlIChzZWctZmF1
bHRzIGNhdXNlZCBieSBkZWVwbHkgbmVzdGVkIEpTT04pLAorICAgICAgICBzbyB0aGUgZGVmYXVs
dCBpcyBsb3cuCisgICAgLSBgImZhaWxJZkV4dHJhIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0g
SWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ugd2hlbiBleHRyYSBub24td2hpdGVzcGFj
ZSB0cmFpbHMKKyAgICAgICAgdGhlIEpTT04gdmFsdWUgaW4gdGhlIGlucHV0IHN0cmluZy4KKyAg
ICAtIGAicmVqZWN0RHVwS2V5cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIElmIHRydWUsIGBw
YXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gYSBrZXkgaXMgZHVwbGljYXRlZCB3aXRoaW4gYW4g
b2JqZWN0LgorICAgIC0gYCJhbGxvd1NwZWNpYWxGbG9hdHMiOiBmYWxzZSBvciB0cnVlYAorICAg
ICAgLSBJZiB0cnVlLCBzcGVjaWFsIGZsb2F0IHZhbHVlcyAoTmFOcyBhbmQgaW5maW5pdGllcykg
YXJlIGFsbG93ZWQgCisgICAgICAgIGFuZCB0aGVpciB2YWx1ZXMgYXJlIGxvc3NmcmVlIHJlc3Rv
cmFibGUuCisKKyAgICBZb3UgY2FuIGV4YW1pbmUgJ3NldHRpbmdzX2AgeW91cnNlbGYKKyAgICB0
byBzZWUgdGhlIGRlZmF1bHRzLiBZb3UgY2FuIGFsc28gd3JpdGUgYW5kIHJlYWQgdGhlbSBqdXN0
IGxpa2UgYW55CisgICAgSlNPTiBWYWx1ZS4KKyAgICBcc2Egc2V0RGVmYXVsdHMoKQorICAgICov
CisgIEpzb246OlZhbHVlIHNldHRpbmdzXzsKKworICBDaGFyUmVhZGVyQnVpbGRlcigpOworICB+
Q2hhclJlYWRlckJ1aWxkZXIoKTsKKworICBDaGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29u
c3Q7CisKKyAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGluZ3MnIGFyZSBsZWdhbCBhbmQgY29u
c2lzdGVudDsKKyAgICogICBvdGhlcndpc2UsIGluZGljYXRlIGJhZCBzZXR0aW5ncyB2aWEgJ2lu
dmFsaWQnLgorICAgKi8KKyAgYm9vbCB2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29u
c3Q7CisKKyAgLyoqIEEgc2ltcGxlIHdheSB0byB1cGRhdGUgYSBzcGVjaWZpYyBzZXR0aW5nLgor
ICAgKi8KKyAgVmFsdWUmIG9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KTsKKworICAvKiogQ2Fs
bGVkIGJ5IGN0b3IsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRpbmdzXy4KKyAg
ICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCisgICAq
IFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRl
ci5jcHAgQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0cworICAgKi8KKyAgc3RhdGljIHZvaWQgc2V0
RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKKyAgLyoqIFNhbWUgYXMgb2xkIEZlYXR1
cmVzOjpzdHJpY3RNb2RlKCkuCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNv
bjo6bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBz
cmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwIENoYXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZQor
ICAgKi8KKyAgc3RhdGljIHZvaWQgc3RyaWN0TW9kZShKc29uOjpWYWx1ZSogc2V0dGluZ3MpOwor
fTsKKworLyoqIENvbnN1bWUgZW50aXJlIHN0cmVhbSBhbmQgdXNlIGl0cyBiZWdpbi9lbmQuCisg
ICogU29tZWRheSB3ZSBtaWdodCBoYXZlIGEgcmVhbCBTdHJlYW1SZWFkZXIsIGJ1dCBmb3Igbm93
IHRoaXMKKyAgKiBpcyBjb252ZW5pZW50LgorICAqLworYm9vbCBKU09OX0FQSSBwYXJzZUZyb21T
dHJlYW0oCisgICAgQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYsCisgICAgc3RkOjppc3RyZWFt
JiwKKyAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMpOworCisvKiogXGJyaWVmIFJl
YWQgZnJvbSAnc2luJyBpbnRvICdyb290Jy4KKworIEFsd2F5cyBrZWVwIGNvbW1lbnRzIGZyb20g
dGhlIGlucHV0IEpTT04uCisKKyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYWQgYSBmaWxlIGludG8g
YSBwYXJ0aWN1bGFyIHN1Yi1vYmplY3QuCisgRm9yIGV4YW1wbGU6CisgXGNvZGUKKyBKc29uOjpW
YWx1ZSByb290OworIGNpbiA+PiByb290WyJkaXIiXVsiZmlsZSJdOworIGNvdXQgPDwgcm9vdDsK
KyBcZW5kY29kZQorIFJlc3VsdDoKKyBcdmVyYmF0aW0KKyB7CisgImRpciI6IHsKKyAgICAgImZp
bGUiOiB7CisgICAgIC8vIFRoZSBpbnB1dCBzdHJlYW0gSlNPTiB3b3VsZCBiZSBuZXN0ZWQgaGVy
ZS4KKyAgICAgfQorIH0KKyB9CisgXGVuZHZlcmJhdGltCisgXHRocm93IHN0ZDo6ZXhjZXB0aW9u
IG9uIHBhcnNlIGVycm9yLgorIFxzZWUgSnNvbjo6b3BlcmF0b3I8PCgpCisqLworSlNPTl9BUEkg
c3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYsIFZhbHVlJik7CisKK30gLy8g
bmFtZXNwYWNlIEpzb24KKworI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZB
Q0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChK
U09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisjZW5kaWYgLy8gQ1BQVExf
SlNPTl9SRUFERVJfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29u
dGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
CisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZp
bGU6IGluY2x1ZGUvanNvbi93cml0ZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmln
aHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQg
aW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3Ig
Y29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVm
IEpTT05fV1JJVEVSX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9XUklURVJfSF9JTkNMVURFRAor
CisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAidmFsdWUuaCIK
KyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDx2
ZWN0b3I+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPG9zdHJlYW0+CisKKy8vIERpc2Fi
bGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVtYmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxs
LWludGVyZmFjZSB0bworLy8gYmUgdXNlZCBieS4uLgorI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNB
QkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdt
YSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9E
SVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworbmFtZXNwYWNlIEpzb24geworCitjbGFz
cyBWYWx1ZTsKKworLyoqCisKK1VzYWdlOgorXGNvZGUKKyAgdXNpbmcgbmFtZXNwYWNlIEpzb247
CisgIHZvaWQgd3JpdGVUb1N0ZG91dChTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgY29uc3QmIGZhY3Rv
cnksIFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdHJlYW1Xcml0
ZXI+IGNvbnN0IHdyaXRlcigKKyAgICAgIGZhY3RvcnkubmV3U3RyZWFtV3JpdGVyKCkpOworICAg
IHdyaXRlci0+d3JpdGUodmFsdWUsICZzdGQ6OmNvdXQpOworICAgIHN0ZDo6Y291dCA8PCBzdGQ6
OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCisgIH0KK1xlbmRjb2RlCisqLworY2xhc3MgSlNP
Tl9BUEkgU3RyZWFtV3JpdGVyIHsKK3Byb3RlY3RlZDoKKyAgc3RkOjpvc3RyZWFtKiBzb3V0Xzsg
IC8vIG5vdCBvd25lZDsgd2lsbCBub3QgZGVsZXRlCitwdWJsaWM6CisgIFN0cmVhbVdyaXRlcigp
OworICB2aXJ0dWFsIH5TdHJlYW1Xcml0ZXIoKTsKKyAgLyoqIFdyaXRlIFZhbHVlIGludG8gZG9j
dW1lbnQgYXMgY29uZmlndXJlZCBpbiBzdWItY2xhc3MuCisgICAgICBEbyBub3QgdGFrZSBvd25l
cnNoaXAgb2Ygc291dCwgYnV0IG1haW50YWluIGEgcmVmZXJlbmNlIGR1cmluZyBmdW5jdGlvbi4K
KyAgICAgIFxwcmUgc291dCAhPSBOVUxMCisgICAgICBccmV0dXJuIHplcm8gb24gc3VjY2VzcyAo
Rm9yIG5vdywgd2UgYWx3YXlzIHJldHVybiB6ZXJvLCBzbyBjaGVjayB0aGUgc3RyZWFtIGluc3Rl
YWQuKQorICAgICAgXHRocm93IHN0ZDo6ZXhjZXB0aW9uIHBvc3NpYmx5LCBkZXBlbmRpbmcgb24g
Y29uZmlndXJhdGlvbgorICAgKi8KKyAgdmlydHVhbCBpbnQgd3JpdGUoVmFsdWUgY29uc3QmIHJv
b3QsIHN0ZDo6b3N0cmVhbSogc291dCkgPSAwOworCisgIC8qKiBcYnJpZWYgQSBzaW1wbGUgYWJz
dHJhY3QgZmFjdG9yeS4KKyAgICovCisgIGNsYXNzIEpTT05fQVBJIEZhY3RvcnkgeworICBwdWJs
aWM6CisgICAgdmlydHVhbCB+RmFjdG9yeSgpOworICAgIC8qKiBcYnJpZWYgQWxsb2NhdGUgYSBD
aGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4KKyAgICAgKiBcdGhyb3cgc3RkOjpleGNlcHRp
b24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFN0cmVhbVdyaXRlciogbmV3U3RyZWFtV3JpdGVyKCkgY29uc3QgPSAw
OworICB9OyAgLy8gRmFjdG9yeQorfTsgIC8vIFN0cmVhbVdyaXRlcgorCisvKiogXGJyaWVmIFdy
aXRlIGludG8gc3RyaW5nc3RyZWFtLCB0aGVuIHJldHVybiBzdHJpbmcsIGZvciBjb252ZW5pZW5j
ZS4KKyAqIEEgU3RyZWFtV3JpdGVyIHdpbGwgYmUgY3JlYXRlZCBmcm9tIHRoZSBmYWN0b3J5LCB1
c2VkLCBhbmQgdGhlbiBkZWxldGVkLgorICovCitzdGQ6OnN0cmluZyBKU09OX0FQSSB3cml0ZVN0
cmluZyhTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgY29uc3QmIGZhY3RvcnksIFZhbHVlIGNvbnN0JiBy
b290KTsKKworCisvKiogXGJyaWVmIEJ1aWxkIGEgU3RyZWFtV3JpdGVyIGltcGxlbWVudGF0aW9u
LgorCitVc2FnZToKK1xjb2RlCisgIHVzaW5nIG5hbWVzcGFjZSBKc29uOworICBWYWx1ZSB2YWx1
ZSA9IC4uLjsKKyAgU3RyZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOworICBidWlsZGVyWyJjb21t
ZW50U3R5bGUiXSA9ICJOb25lIjsKKyAgYnVpbGRlclsiaW5kZW50YXRpb24iXSA9ICIgICAiOyAg
Ly8gb3Igd2hhdGV2ZXIgeW91IGxpa2UKKyAgc3RkOjp1bmlxdWVfcHRyPEpzb246OlN0cmVhbVdy
aXRlcj4gd3JpdGVyKAorICAgICAgYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRl
ci0+d3JpdGUodmFsdWUsICZzdGQ6OmNvdXQpOworICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOyAg
Ly8gYWRkIGxmIGFuZCBmbHVzaAorXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBTdHJlYW1X
cml0ZXJCdWlsZGVyIDogcHVibGljIFN0cmVhbVdyaXRlcjo6RmFjdG9yeSB7CitwdWJsaWM6Cisg
IC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVlIHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1l
bWJlcnMgdG8gdGhpcyBjbGFzcworICAvLyB3aXRob3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgor
ICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1aWxkZXIuCisgICAgQXZhaWxhYmxlIHNldHRp
bmdzIChjYXNlLXNlbnNpdGl2ZSk6CisgICAgLSAiY29tbWVudFN0eWxlIjogIk5vbmUiIG9yICJB
bGwiCisgICAgLSAiaW5kZW50YXRpb24iOiAgIjxhbnl0aGluZz4iCisgICAgLSAiZW5hYmxlWUFN
TENvbXBhdGliaWxpdHkiOiBmYWxzZSBvciB0cnVlCisgICAgICAtIHNsaWdodGx5IGNoYW5nZSB0
aGUgd2hpdGVzcGFjZSBhcm91bmQgY29sb25zCisgICAgLSAiZHJvcE51bGxQbGFjZWhvbGRlcnMi
OiBmYWxzZSBvciB0cnVlCisgICAgICAtIERyb3AgdGhlICJudWxsIiBzdHJpbmcgZnJvbSB0aGUg
d3JpdGVyJ3Mgb3V0cHV0IGZvciBudWxsVmFsdWVzLgorICAgICAgICBTdHJpY3RseSBzcGVha2lu
ZywgdGhpcyBpcyBub3QgdmFsaWQgSlNPTi4gQnV0IHdoZW4gdGhlIG91dHB1dCBpcyBiZWluZwor
ICAgICAgICBmZWQgdG8gYSBicm93c2VyJ3MgSmF2YXNjcmlwdCwgaXQgbWFrZXMgZm9yIHNtYWxs
ZXIgb3V0cHV0IGFuZCB0aGUKKyAgICAgICAgYnJvd3NlciBjYW4gaGFuZGxlIHRoZSBvdXRwdXQg
anVzdCBmaW5lLgorICAgIC0gInVzZVNwZWNpYWxGbG9hdHMiOiBmYWxzZSBvciB0cnVlCisgICAg
ICAtIElmIHRydWUsIG91dHB1dHMgbm9uLWZpbml0ZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMgaW4g
dGhlIGZvbGxvd2luZyB3YXk6CisgICAgICAgIE5hTiB2YWx1ZXMgYXMgIk5hTiIsIHBvc2l0aXZl
IGluZmluaXR5IGFzICJJbmZpbml0eSIsIGFuZCBuZWdhdGl2ZSBpbmZpbml0eQorICAgICAgICBh
cyAiLUluZmluaXR5Ii4KKworICAgIFlvdSBjYW4gZXhhbWluZSAnc2V0dGluZ3NfYCB5b3Vyc2Vs
ZgorICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4gYWxzbyB3cml0ZSBhbmQgcmVhZCB0
aGVtIGp1c3QgbGlrZSBhbnkKKyAgICBKU09OIFZhbHVlLgorICAgIFxzYSBzZXREZWZhdWx0cygp
CisgICAgKi8KKyAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOworCisgIFN0cmVhbVdyaXRlckJ1aWxk
ZXIoKTsKKyAgflN0cmVhbVdyaXRlckJ1aWxkZXIoKTsKKworICAvKioKKyAgICogXHRocm93IHN0
ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGlu
Z3MpCisgICAqLworICBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVhbVdyaXRlcigpIGNvbnN0OworCisg
IC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwgYW5kIGNvbnNpc3RlbnQ7
CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3MgdmlhICdpbnZhbGlkJy4K
KyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0OworICAv
KiogQSBzaW1wbGUgd2F5IHRvIHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCisgICAqLworICBW
YWx1ZSYgb3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkpOworCisgIC8qKiBDYWxsZWQgYnkgY3Rv
ciwgYnV0IHlvdSBjYW4gdXNlIHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgorICAgKiBccHJlICdz
ZXR0aW5ncycgIT0gTlVMTCAoYnV0IEpzb246Om51bGwgaXMgZmluZSkKKyAgICogXHJlbWFyayBE
ZWZhdWx0czoKKyAgICogXHNuaXBwZXQgc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcCBTdHJl
YW1Xcml0ZXJCdWlsZGVyRGVmYXVsdHMKKyAgICovCisgIHN0YXRpYyB2b2lkIHNldERlZmF1bHRz
KEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Cit9OworCisvKiogXGJyaWVmIEFic3RyYWN0IGNsYXNz
IGZvciB3cml0ZXJzLgorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlci4gKEFuZCByZWFs
bHksIHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLikKKyAqLworY2xhc3MgSlNPTl9B
UEkgV3JpdGVyIHsKK3B1YmxpYzoKKyAgdmlydHVhbCB+V3JpdGVyKCk7CisKKyAgdmlydHVhbCBz
dGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgPSAwOworfTsKKworLyoqIFxicmll
ZiBPdXRwdXRzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwv
YT4gZm9ybWF0CisgKndpdGhvdXQgZm9ybWF0dGluZyAobm90IGh1bWFuIGZyaWVuZGx5KS4KKyAq
CisgKiBUaGUgSlNPTiBkb2N1bWVudCBpcyB3cml0dGVuIGluIGEgc2luZ2xlIGxpbmUuIEl0IGlz
IG5vdCBpbnRlbmRlZCBmb3IgJ2h1bWFuJworICpjb25zdW1wdGlvbiwKKyAqIGJ1dCBtYXkgYmUg
dXNlZnVsbCB0byBzdXBwb3J0IGZlYXR1cmUgc3VjaCBhcyBSUEMgd2hlcmUgYmFuZHdpdGggaXMg
bGltaXRlZC4KKyAqIFxzYSBSZWFkZXIsIFZhbHVlCisgKiBcZGVwcmVjYXRlZCBVc2UgU3RyZWFt
V3JpdGVyQnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgRmFzdFdyaXRlciA6IHB1YmxpYyBX
cml0ZXIgeworCitwdWJsaWM6CisgIEZhc3RXcml0ZXIoKTsKKyAgfkZhc3RXcml0ZXIoKSB7fQor
CisgIHZvaWQgZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKTsKKworICAvKiogXGJyaWVmIERyb3Ag
dGhlICJudWxsIiBzdHJpbmcgZnJvbSB0aGUgd3JpdGVyJ3Mgb3V0cHV0IGZvciBudWxsVmFsdWVz
LgorICAgKiBTdHJpY3RseSBzcGVha2luZywgdGhpcyBpcyBub3QgdmFsaWQgSlNPTi4gQnV0IHdo
ZW4gdGhlIG91dHB1dCBpcyBiZWluZworICAgKiBmZWQgdG8gYSBicm93c2VyJ3MgSmF2YXNjcmlw
dCwgaXQgbWFrZXMgZm9yIHNtYWxsZXIgb3V0cHV0IGFuZCB0aGUKKyAgICogYnJvd3NlciBjYW4g
aGFuZGxlIHRoZSBvdXRwdXQganVzdCBmaW5lLgorICAgKi8KKyAgdm9pZCBkcm9wTnVsbFBsYWNl
aG9sZGVycygpOworCisgIHZvaWQgb21pdEVuZGluZ0xpbmVGZWVkKCk7CisKK3B1YmxpYzogLy8g
b3ZlcnJpZGRlbiBmcm9tIFdyaXRlcgorICBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYg
cm9vdCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUp
OworCisgIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKKyAgYm9vbCB5YW1sQ29tcGF0aWJsaXR5RW5h
YmxlZF87CisgIGJvb2wgZHJvcE51bGxQbGFjZWhvbGRlcnNfOworICBib29sIG9taXRFbmRpbmdM
aW5lRmVlZF87Cit9OworCisvKiogXGJyaWVmIFdyaXRlcyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0
dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBhCisgKmh1bWFuIGZyaWVuZGx5
IHdheS4KKyAqCisgKiBUaGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUgYXMg
Zm9sbG93OgorICogLSBPYmplY3QgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50
IHt9IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiBub3QgZW1wdHkg
dGhlIHByaW50ICd7JywgbGluZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBlcgor
ICpsaW5lCisgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGluZSBicmVhayBhbmQgcHJp
bnQgJ30nLgorICogLSBBcnJheSB2YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQg
W10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIHRoZSBhcnJheSBj
b250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNvbWUgb3RoZXIgdmFsdWUK
KyAqdHlwZXMsCisgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywg
dGhlbiBwcmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUKKyAqbGluZS4KKyAqICAgICAtIG90aGVy
d2lzZSwgaXQgdGhlIHZhbHVlcyBkbyBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkg
Y29udGFpbnMKKyAqICAgICAgIG9iamVjdCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQg
b25lIHZhbHVlIHBlciBsaW5lLgorICoKKyAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRzIHRo
ZW4gdGhleSBhcmUgb3V0cHV0ZWQgYWNjb3JkaW5nIHRvIHRoZWlyCisgKiNDb21tZW50UGxhY2Vt
ZW50LgorICoKKyAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0Q29tbWVudCgpCisgKiBc
ZGVwcmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkg
U3R5bGVkV3JpdGVyIDogcHVibGljIFdyaXRlciB7CitwdWJsaWM6CisgIFN0eWxlZFdyaXRlcigp
OworICB+U3R5bGVkV3JpdGVyKCkge30KKworcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3Jp
dGVyCisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3
dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0gcm9vdCBWYWx1ZSB0byBz
ZXJpYWxpemUuCisgICAqIFxyZXR1cm4gU3RyaW5nIGNvbnRhaW5pbmcgdGhlIEpTT04gZG9jdW1l
bnQgdGhhdCByZXByZXNlbnRzIHRoZSByb290IHZhbHVlLgorICAgKi8KKyAgc3RkOjpzdHJpbmcg
d3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUo
Y29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUm
IHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbmVBcnJheShjb25zdCBWYWx1ZSYgdmFsdWUpOworICB2
b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOworICB2b2lkIHdyaXRlSW5k
ZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7
CisgIHZvaWQgaW5kZW50KCk7CisgIHZvaWQgdW5pbmRlbnQoKTsKKyAgdm9pZCB3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7CisgIHZvaWQgd3JpdGVDb21tZW50QWZ0
ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpOworICBib29sIGhhc0NvbW1lbnRG
b3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBzdGF0aWMgc3RkOjpzdHJpbmcgbm9ybWFs
aXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKKworICB0eXBlZGVmIHN0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKKworICBDaGlsZFZhbHVlcyBjaGlsZFZhbHVlc187
CisgIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5nXzsK
KyAgaW50IHJpZ2h0TWFyZ2luXzsKKyAgaW50IGluZGVudFNpemVfOworICBib29sIGFkZENoaWxk
VmFsdWVzXzsKK307CisKKy8qKiBcYnJpZWYgV3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0IGluIGEKKyBodW1hbiBmcmllbmRseSB3
YXksCisgICAgIHRvIGEgc3RyZWFtIHJhdGhlciB0aGFuIHRvIGEgc3RyaW5nLgorICoKKyAqIFRo
ZSBydWxlcyBmb3IgbGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6CisgKiAtIE9i
amVjdCB2YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRl
bnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBs
aW5lIGJyZWFrICYgaW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCisgbGluZQorICogICAgICAg
YW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHByaW50ICd9Jy4KKyAqIC0gQXJy
YXkgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IFtdIHdpdGhvdXQgaW5kZW50
IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkgY29udGFpbnMgbm8gb2JqZWN0
IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVlCisgdHlwZXMsCisgKiAgICAg
ICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywgdGhlbiBwcmludCB0aGUgYXJy
YXkgb24gYSBzaW5nbGUKKyBsaW5lLgorICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVz
IGRvIG5vdCBmaXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucworICogICAgICAg
b2JqZWN0IG9yIG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUu
CisgKgorICogSWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRl
ZCBhY2NvcmRpbmcgdG8gdGhlaXIKKyAjQ29tbWVudFBsYWNlbWVudC4KKyAqCisgKiBccGFyYW0g
aW5kZW50YXRpb24gRWFjaCBsZXZlbCB3aWxsIGJlIGluZGVudGVkIGJ5IHRoaXMgYW1vdW50IGV4
dHJhLgorICogXHNhIFJlYWRlciwgVmFsdWUsIFZhbHVlOjpzZXRDb21tZW50KCkKKyAqIFxkZXBy
ZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgorICovCitjbGFzcyBKU09OX0FQSSBTdHls
ZWRTdHJlYW1Xcml0ZXIgeworcHVibGljOgorICBTdHlsZWRTdHJlYW1Xcml0ZXIoc3RkOjpzdHJp
bmcgaW5kZW50YXRpb24gPSAiXHQiKTsKKyAgflN0eWxlZFN0cmVhbVdyaXRlcigpIHt9CisKK3B1
YmxpYzoKKyAgLyoqIFxicmllZiBTZXJpYWxpemUgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8v
d3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQuCisgICAqIFxwYXJhbSBvdXQgU3RyZWFtIHRv
IHdyaXRlIHRvLiAoQ2FuIGJlIG9zdHJpbmdzdHJlYW0sIGUuZy4pCisgICAqIFxwYXJhbSByb290
IFZhbHVlIHRvIHNlcmlhbGl6ZS4KKyAgICogXG5vdGUgVGhlcmUgaXMgbm8gcG9pbnQgaW4gZGVy
aXZpbmcgZnJvbSBXcml0ZXIsIHNpbmNlIHdyaXRlKCkgc2hvdWxkIG5vdAorICAgKiByZXR1cm4g
YSB2YWx1ZS4KKyAgICovCisgIHZvaWQgd3JpdGUoc3RkOjpvc3RyZWFtJiBvdXQsIGNvbnN0IFZh
bHVlJiByb290KTsKKworcHJpdmF0ZToKKyAgdm9pZCB3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2
YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIGJv
b2wgaXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCBwdXNoVmFsdWUo
Y29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUluZGVudCgpOworICB2b2lk
IHdyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOworICB2b2lkIGluZGVu
dCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
Y29uc3QgVmFsdWUmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVM
aW5lKGNvbnN0IFZhbHVlJiByb290KTsKKyAgYm9vbCBoYXNDb21tZW50Rm9yVmFsdWUoY29uc3Qg
VmFsdWUmIHZhbHVlKTsKKyAgc3RhdGljIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZUVPTChjb25zdCBz
dGQ6OnN0cmluZyYgdGV4dCk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g
Q2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOworICBzdGQ6Om9zdHJl
YW0qIGRvY3VtZW50XzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5nXzsKKyAgaW50IHJpZ2h0
TWFyZ2luXzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb25fOworICBib29sIGFkZENoaWxkVmFs
dWVzXyA6IDE7CisgIGJvb2wgaW5kZW50ZWRfIDogMTsKK307CisKKyNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQorc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhJbnQgdmFsdWUp
Oworc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhVSW50IHZhbHVlKTsKKyNlbmRp
ZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFs
dWVUb1N0cmluZyhMYXJnZXN0SW50IHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUpOworc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVU
b1N0cmluZyhkb3VibGUgdmFsdWUpOworc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmlu
Zyhib29sIHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9RdW90ZWRTdHJpbmco
Y29uc3QgY2hhciogdmFsdWUpOworCisvLy8gXGJyaWVmIE91dHB1dCB1c2luZyB0aGUgU3R5bGVk
U3RyZWFtV3JpdGVyLgorLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PigpCitKU09OX0FQSSBzdGQ6
Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29uc3QgVmFsdWUmIHJvb3QpOwor
Cit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExf
SU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmIC8vIGlmIGRl
ZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworI2VuZGlmIC8v
IEpTT05fV1JJVEVSX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNv
bnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRlci5oCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
KworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBm
aWxlOiBpbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENv
cHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRl
ciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2du
aXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFp
bCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNp
Zm5kZWYgQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNP
Tl9BU1NFUlRJT05TX0hfSU5DTFVERUQKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg
PHNzdHJlYW0+CisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
KworLyoqIEl0IHNob3VsZCBub3QgYmUgcG9zc2libGUgZm9yIGEgbWFsaWNpb3VzbHkgZGVzaWdu
ZWQgZmlsZSB0bworICogIGNhdXNlIGFuIGFib3J0KCkgb3Igc2VnLWZhdWx0LCBzbyB0aGVzZSBt
YWNyb3MgYXJlIHVzZWQgb25seQorICogIGZvciBwcmUtY29uZGl0aW9uIHZpb2xhdGlvbnMgYW5k
IGludGVybmFsIGxvZ2ljIGVycm9ycy4KKyAqLworI2lmIEpTT05fVVNFX0VYQ0VQVElPTgorCisv
LyBAdG9kbyA8PSBhZGQgZGV0YWlsIGFib3V0IGNvbmRpdGlvbiBpbiBleGNlcHRpb24KKyMgZGVm
aW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIHtpZiAoIShjb25kaXRpb24pKSB7SnNvbjo6dGhyb3dMb2dp
Y0Vycm9yKCAiYXNzZXJ0IGpzb24gZmFpbGVkIiApO319CisKKyMgZGVmaW5lIEpTT05fRkFJTF9N
RVNTQUdFKG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7
IG9zcyA8PCBtZXNzYWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBKc29uOjp0aHJvd0xvZ2ljRXJyb3Iob3NzLnN0cigpKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNl
bHNlIC8vIEpTT05fVVNFX0VYQ0VQVElPTgorCisjIGRlZmluZSBKU09OX0FTU0VSVChjb25kaXRp
b24pIGFzc2VydChjb25kaXRpb24pCisKKy8vIFRoZSBjYWxsIHRvIGFzc2VydCgpIHdpbGwgc2hv
dyB0aGUgZmFpbHVyZSBtZXNzYWdlIGluIGRlYnVnIGJ1aWxkcy4gSW4KKy8vIHJlbGVhc2UgYnVp
bGRzIHdlIGFib3J0LCBmb3IgYSBjb3JlLWR1bXAgb3IgZGVidWdnZXIuCisjIGRlZmluZSBKU09O
X0ZBSUxfTUVTU0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGQ6Om9zdHJpbmdzdHJl
YW0gb3NzOyBvc3MgPDwgbWVzc2FnZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgYXNzZXJ0KGZhbHNlICYmIG9zcy5zdHIoKS5jX3N0cigpKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGFib3J0KCk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
fQorCisKKyNlbmRpZgorCisjZGVmaW5lIEpTT05fQVNTRVJUX01FU1NBR0UoY29uZGl0aW9uLCBt
ZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBpZiAoIShjb25kaXRp
b24pKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBKU09OX0ZBSUxfTUVTU0FHRShtZXNzYWdlKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworI2VuZGlmIC8vIENQUFRM
X0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBv
ZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3NlcnRpb25zLmgKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworCisKKworCisjZW5kaWYgLy9pZm5kZWYgSlNPTl9BTUFMR0FURURfSF9JTkNMVURF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uY3BwLmNwcCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbmNwcC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYz
Mjg3MzI3YzBkNjYzMjE1MDVlYWQyZDJlZTQ2N2U3MzlmMTVlNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbmNwcC5jcHAKQEAgLTAsMCArMSw1MjY2
IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIHNvdXJjZSAoaHR0cDovL2pzb25jcHAuc291cmNl
Zm9yZ2UubmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRl
ICJqc29uL2pzb24uaCIKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRl
bnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKgorVGhlIEpzb25DcHAg
bGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50YXRp
b24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGljYXRpb25zLCBhcmUgbGljZW5zZWQg
dW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgorCitUaGUgYXV0aG9yIChCYXB0aXN0
ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNvcHlyaWdodCBpbiBhbGwgCitqdXJp
c2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJp
c2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERv
bWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBE
b21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgorMjAxMCksIHRoaXMgc29mdHdhcmUg
aXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMK
K3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyku
CisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVy
dHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkgY2hvb3NlIHRvIGFjY2VwdCBpdCBl
aXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIgdGhlIAorY29uZGl0aW9ucyBvZiB0
aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiBkdWFs
IAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRpb25zIGRlc2NyaWJlZCBoZXJlLCBh
cyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlzIGFib3V0IGFzIGNsb3NlIHRvIFB1
YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFuZCBpcworZGVzY3JpYmVkIGluIGNs
ZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtp
L01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZvbGxv
d3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBp
biB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCittb2RpZnksIG1lcmdlLCBwdWJsaXNo
LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKK29mIHRoZSBTb2Z0
d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworQkUgTElBQkxFIEZP
UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCitB
Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyhFTkQgTElDRU5T
RSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggdGhlIEdQ
TCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGluZyBvbmUgYWxsIG9mIHRoZSByaWdo
dHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3IgbnVpc2FuY2Ugb2YgYmVpbmcgcmVx
dWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZQorYW5kIGxpY2Vuc2UgdGV4
dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0IGJ5IGFjY2VwdGluZyB0aGUKK1B1
YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGljZW5zZSB5b3VyIGNvcHkgdXNpbmcg
d2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisK
KworCisKKyNpbmNsdWRlICJqc29uL2pzb24uaCIKKworI2lmbmRlZiBKU09OX0lTX0FNQUxHQU1B
VElPTgorI2Vycm9yICJDb21waWxlIHdpdGggLUkgUEFUSF9UT19KU09OX0RJUkVDVE9SWSIKKyNl
bmRpZgorCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZp
bGU6IHNyYy9saWJfanNvbi9qc29uX3Rvb2wuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5
cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIg
TUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6
ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwg
b3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZu
ZGVmIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECisjZGVmaW5lIExJQl9KU09OQ1BQ
X0pTT05fVE9PTF9IX0lOQ0xVREVECisKKy8qIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGNvbW1vbiBz
dHJpbmcgbWFuaXB1bGF0aW9uIHN1cHBvcnQsIHN1Y2ggYXMgVVRGLTgsCisgKiBwb3J0YWJsZSBj
b252ZXJzaW9uIGZyb20vdG8gc3RyaW5nLi4uCisgKgorICogSXQgaXMgYW4gaW50ZXJuYWwgaGVh
ZGVyIHRoYXQgbXVzdCBub3QgYmUgZXhwb3NlZC4KKyAqLworCituYW1lc3BhY2UgSnNvbiB7CisK
Ky8vLyBDb252ZXJ0cyBhIHVuaWNvZGUgY29kZS1wb2ludCB0byBVVEYtOC4KK3N0YXRpYyBpbmxp
bmUgc3RkOjpzdHJpbmcgY29kZVBvaW50VG9VVEY4KHVuc2lnbmVkIGludCBjcCkgeworICBzdGQ6
OnN0cmluZyByZXN1bHQ7CisKKyAgLy8gYmFzZWQgb24gZGVzY3JpcHRpb24gZnJvbSBodHRwOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04CisKKyAgaWYgKGNwIDw9IDB4N2YpIHsKKyAgICBy
ZXN1bHQucmVzaXplKDEpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KGNwKTsK
KyAgfSBlbHNlIGlmIChjcCA8PSAweDdGRikgeworICAgIHJlc3VsdC5yZXNpemUoMik7CisgICAg
cmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICBy
ZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigweEMwIHwgKDB4MWYgJiAoY3AgPj4gNikpKTsK
KyAgfSBlbHNlIGlmIChjcCA8PSAweEZGRkYpIHsKKyAgICByZXN1bHQucmVzaXplKDMpOworICAg
IHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7CisgICAg
cmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDYpKSk7
CisgICAgcmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhFMCB8ICgweGYgJiAoY3AgPj4g
MTIpKSk7CisgIH0gZWxzZSBpZiAoY3AgPD0gMHgxMEZGRkYpIHsKKyAgICByZXN1bHQucmVzaXpl
KDQpOworICAgIHJlc3VsdFszXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNw
KSk7CisgICAgcmVzdWx0WzJdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgKGNw
ID4+IDYpKSk7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNm
ICYgKGNwID4+IDEyKSkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RjAg
fCAoMHg3ICYgKGNwID4+IDE4KSkpOworICB9CisKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8v
IFJldHVybnMgdHJ1ZSBpZiBjaCBpcyBhIGNvbnRyb2wgY2hhcmFjdGVyIChpbiByYW5nZSBbMSwz
MV0pLgorc3RhdGljIGlubGluZSBib29sIGlzQ29udHJvbENoYXJhY3RlcihjaGFyIGNoKSB7IHJl
dHVybiBjaCA+IDAgJiYgY2ggPD0gMHgxRjsgfQorCitlbnVtIHsKKyAgLy8vIENvbnN0YW50IHRo
YXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRoYXQgbXVzdCBiZSBwYXNzZWQgdG8K
KyAgLy8vIHVpbnRUb1N0cmluZy4KKyAgdWludFRvU3RyaW5nQnVmZmVyU2l6ZSA9IDMgKiBzaXpl
b2YoTGFyZ2VzdFVJbnQpICsgMQorfTsKKworLy8gRGVmaW5lcyBhIGNoYXIgYnVmZmVyIGZvciB1
c2Ugd2l0aCB1aW50VG9TdHJpbmcoKS4KK3R5cGVkZWYgY2hhciBVSW50VG9TdHJpbmdCdWZmZXJb
dWludFRvU3RyaW5nQnVmZmVyU2l6ZV07CisKKy8qKiBDb252ZXJ0cyBhbiB1bnNpZ25lZCBpbnRl
Z2VyIHRvIHN0cmluZy4KKyAqIEBwYXJhbSB2YWx1ZSBVbnNpZ25lZCBpbnRlcmdlciB0byBjb252
ZXJ0IHRvIHN0cmluZworICogQHBhcmFtIGN1cnJlbnQgSW5wdXQvT3V0cHV0IHN0cmluZyBidWZm
ZXIuCisgKiAgICAgICAgTXVzdCBoYXZlIGF0IGxlYXN0IHVpbnRUb1N0cmluZ0J1ZmZlclNpemUg
Y2hhcnMgZnJlZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHVpbnRUb1N0cmluZyhMYXJnZXN0
VUludCB2YWx1ZSwgY2hhciomIGN1cnJlbnQpIHsKKyAgKi0tY3VycmVudCA9IDA7CisgIGRvIHsK
KyAgICAqLS1jdXJyZW50ID0gc3RhdGljX2Nhc3Q8c2lnbmVkIGNoYXI+KHZhbHVlICUgMTBVICsg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCcwJykpOworICAgIHZhbHVlIC89IDEwOworICB9IHdoaWxl
ICh2YWx1ZSAhPSAwKTsKK30KKworLyoqIENoYW5nZSAnLCcgdG8gJy4nIGV2ZXJ5d2hlcmUgaW4g
YnVmZmVyLgorICoKKyAqIFdlIGhhZCBhIHNvcGhpc3RpY2F0ZWQgd2F5LCBidXQgaXQgZGlkIG5v
dCB3b3JrIGluIFdpbkNFLgorICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2Ut
cGFyc2Vycy9qc29uY3BwL3B1bGwvOQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgZml4TnVtZXJp
Y0xvY2FsZShjaGFyKiBiZWdpbiwgY2hhciogZW5kKSB7CisgIHdoaWxlIChiZWdpbiA8IGVuZCkg
eworICAgIGlmICgqYmVnaW4gPT0gJywnKSB7CisgICAgICAqYmVnaW4gPSAnLic7CisgICAgfQor
ICAgICsrYmVnaW47CisgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSnNvbiB7CisKKyNlbmRpZiAv
LyBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBv
ZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5jcHAKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1
ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPGpzb24vcmVhZGVyLmg+CisjaW5jbHVk
ZSA8anNvbi92YWx1ZS5oPgorI2luY2x1ZGUgImpzb25fdG9vbC5oIgorI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVk
ZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNs
dWRlIDxpc3RyZWFtPgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8bWVtb3J5PgorI2lu
Y2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxsaW1pdHM+CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQor
I2lmICFkZWZpbmVkKFdJTkNFKSAmJiBkZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pICYmIF9N
U0NfVkVSID49IDE1MDAgLy8gVkMrKyA5LjAgYW5kIGFib3ZlIAorI2RlZmluZSBzbnByaW50ZiBz
cHJpbnRmX3MKKyNlbGlmIF9NU0NfVkVSID49IDE5MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQor
I2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCisjZWxzZQorI2RlZmluZSBzbnByaW50ZiBf
c25wcmludGYKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChf
X1FOWE5UT19fKQorI2RlZmluZSBzbnByaW50ZiBzbnByaW50ZgorI2VsaWYgX19jcGx1c3BsdXMg
Pj0gMjAxMTAzTAorI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCisjZW5kaWYKKworI2lm
IGRlZmluZWQoX19RTlhOVE9fXykKKyNkZWZpbmUgc3NjYW5mIHN0ZDo6c3NjYW5mCisjZW5kaWYK
KworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMrKyA4LjAK
Ky8vIERpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KKyNwcmFn
bWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRpZgorCitzdGF0aWMgaW50IGNvbnN0IHN0
YWNrTGltaXRfZyA9IDEwMDA7CitzdGF0aWMgaW50ICAgICAgIHN0YWNrRGVwdGhfZyA9IDA7ICAv
LyBzZWUgcmVhZFZhbHVlKCkKKworbmFtZXNwYWNlIEpzb24geworCisjaWYgX19jcGx1c3BsdXMg
Pj0gMjAxMTAzTCB8fCAoZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPj0gNTIw
KQordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8Q2hhclJlYWRlcj4gQ2hhclJlYWRlclB0cjsKKyNl
bHNlCit0eXBlZGVmIHN0ZDo6YXV0b19wdHI8Q2hhclJlYWRlcj4gICBDaGFyUmVhZGVyUHRyOwor
I2VuZGlmCisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIEZlYXR1cmVzCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitGZWF0dXJlczo6RmVhdHVyZXMoKQorICAgIDog
YWxsb3dDb21tZW50c18odHJ1ZSksIHN0cmljdFJvb3RfKGZhbHNlKSwKKyAgICAgIGFsbG93RHJv
cHBlZE51bGxQbGFjZWhvbGRlcnNfKGZhbHNlKSwgYWxsb3dOdW1lcmljS2V5c18oZmFsc2UpIHt9
CisKK0ZlYXR1cmVzIEZlYXR1cmVzOjphbGwoKSB7IHJldHVybiBGZWF0dXJlcygpOyB9CisKK0Zl
YXR1cmVzIEZlYXR1cmVzOjpzdHJpY3RNb2RlKCkgeworICBGZWF0dXJlcyBmZWF0dXJlczsKKyAg
ZmVhdHVyZXMuYWxsb3dDb21tZW50c18gPSBmYWxzZTsKKyAgZmVhdHVyZXMuc3RyaWN0Um9vdF8g
PSB0cnVlOworICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IGZhbHNl
OworICBmZWF0dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IGZhbHNlOworICByZXR1cm4gZmVhdHVy
ZXM7Cit9CisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIFJlYWRlcgorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworc3RhdGljIGJvb2wgY29udGFpbnNOZXdMaW5lKFJl
YWRlcjo6TG9jYXRpb24gYmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5kKSB7CisgIGZvciAoOyBi
ZWdpbiA8IGVuZDsgKytiZWdpbikKKyAgICBpZiAoKmJlZ2luID09ICdcbicgfHwgKmJlZ2luID09
ICdccicpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgcmV0dXJuIGZhbHNlOworfQorCisvLyBDbGFz
cyBSZWFkZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitSZWFkZXI6OlJlYWRlcigpCisgICAgOiBlcnJvcnNf
KCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVF
bmRfKCksCisgICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18o
RmVhdHVyZXM6OmFsbCgpKSwKKyAgICAgIGNvbGxlY3RDb21tZW50c18oKSB7fQorCitSZWFkZXI6
OlJlYWRlcihjb25zdCBGZWF0dXJlcyYgZmVhdHVyZXMpCisgICAgOiBlcnJvcnNfKCksIGRvY3Vt
ZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCisg
ICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0dXJlc18oZmVhdHVyZXMp
LCBjb2xsZWN0Q29tbWVudHNfKCkgeworfQorCitib29sCitSZWFkZXI6OnBhcnNlKGNvbnN0IHN0
ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7
CisgIGRvY3VtZW50XyA9IGRvY3VtZW50OworICBjb25zdCBjaGFyKiBiZWdpbiA9IGRvY3VtZW50
Xy5jX3N0cigpOworICBjb25zdCBjaGFyKiBlbmQgPSBiZWdpbiArIGRvY3VtZW50Xy5sZW5ndGgo
KTsKKyAgcmV0dXJuIHBhcnNlKGJlZ2luLCBlbmQsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7Cit9
CisKK2Jvb2wgUmVhZGVyOjpwYXJzZShzdGQ6OmlzdHJlYW0mIHNpbiwgVmFsdWUmIHJvb3QsIGJv
b2wgY29sbGVjdENvbW1lbnRzKSB7CisgIC8vIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBi
ZWdpbihzaW4pOworICAvLyBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gZW5kOworICAvLyBU
aG9zZSB3b3VsZCBhbGxvdyBzdHJlYW1lZCBpbnB1dCBmcm9tIGEgZmlsZSwgaWYgcGFyc2UoKSB3
ZXJlIGEKKyAgLy8gdGVtcGxhdGUgZnVuY3Rpb24uCisKKyAgLy8gU2luY2Ugc3RkOjpzdHJpbmcg
aXMgcmVmZXJlbmNlLWNvdW50ZWQsIHRoaXMgYXQgbGVhc3QgZG9lcyBub3QKKyAgLy8gY3JlYXRl
IGFuIGV4dHJhIGNvcHkuCisgIHN0ZDo6c3RyaW5nIGRvYzsKKyAgc3RkOjpnZXRsaW5lKHNpbiwg
ZG9jLCAoY2hhcilFT0YpOworICByZXR1cm4gcGFyc2UoZG9jLCByb290LCBjb2xsZWN0Q29tbWVu
dHMpOworfQorCitib29sIFJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgICAgICAgIFZh
bHVlJiByb290LAorICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7Cisg
IGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgY29sbGVjdENvbW1lbnRzID0g
ZmFsc2U7CisgIH0KKworICBiZWdpbl8gPSBiZWdpbkRvYzsKKyAgZW5kXyA9IGVuZERvYzsKKyAg
Y29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKKyAgY3VycmVudF8gPSBiZWdpbl87
CisgIGxhc3RWYWx1ZUVuZF8gPSAwOworICBsYXN0VmFsdWVfID0gMDsKKyAgY29tbWVudHNCZWZv
cmVfID0gIiI7CisgIGVycm9yc18uY2xlYXIoKTsKKyAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkK
KyAgICBub2Rlc18ucG9wKCk7CisgIG5vZGVzXy5wdXNoKCZyb290KTsKKworICBzdGFja0RlcHRo
X2cgPSAwOyAgLy8gWWVzLCB0aGlzIGlzIGJhZCBjb2RpbmcsIGJ1dCBvcHRpb25zIGFyZSBsaW1p
dGVkLgorICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKKyAgVG9rZW4gdG9rZW47Cisg
IHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNv
bW1lbnRzQmVmb3JlXy5lbXB0eSgpKQorICAgIHJvb3Quc2V0Q29tbWVudChjb21tZW50c0JlZm9y
ZV8sIGNvbW1lbnRBZnRlcik7CisgIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8pIHsKKyAgICBp
ZiAoIXJvb3QuaXNBcnJheSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKKyAgICAgIC8vIFNldCBl
cnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRv
a2VuIGZvdW5kCisgICAgICAvLyBpbiBkb2MKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJv
cjsKKyAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOworICAgICAgdG9rZW4uZW5kXyA9IGVu
ZERvYzsKKyAgICAgIGFkZEVycm9yKAorICAgICAgICAgICJBIHZhbGlkIEpTT04gZG9jdW1lbnQg
bXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCisgICAgICAgICAg
dG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gc3VjY2Vz
c2Z1bDsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKKyAgLy8gVGhpcyBpcyBhIG5v
bi1yZWVudHJhbnQgd2F5IHRvIHN1cHBvcnQgYSBzdGFja0xpbWl0LiBUZXJyaWJsZSEKKyAgLy8g
QnV0IHRoaXMgZGVwcmVjYXRlZCBjbGFzcyBoYXMgYSBzZWN1cml0eSBwcm9ibGVtOiBCYWQgaW5w
dXQgY2FuCisgIC8vIGNhdXNlIGEgc2VnLWZhdWx0LiBUaGlzIHNlZW1zIGxpa2UgYSBmYWlyLCBi
aW5hcnktY29tcGF0aWJsZSB3YXkKKyAgLy8gdG8gcHJldmVudCB0aGUgcHJvYmxlbS4KKyAgaWYg
KHN0YWNrRGVwdGhfZyA+PSBzdGFja0xpbWl0X2cpIHRocm93UnVudGltZUVycm9yKCJFeGNlZWRl
ZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLiIpOworICArK3N0YWNrRGVwdGhfZzsKKworICBU
b2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOworICBib29sIHN1Y2Nlc3Nm
dWwgPSB0cnVlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8u
ZW1wdHkoKSkgeworICAgIGN1cnJlbnRWYWx1ZSgpLnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVf
LCBjb21tZW50QmVmb3JlKTsKKyAgICBjb21tZW50c0JlZm9yZV8gPSAiIjsKKyAgfQorCisgIHN3
aXRjaCAodG9rZW4udHlwZV8pIHsKKyAgY2FzZSB0b2tlbk9iamVjdEJlZ2luOgorICAgIHN1Y2Nl
c3NmdWwgPSByZWFkT2JqZWN0KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheUJl
Z2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQXJyYXkodG9rZW4pOworICAgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsKKyAgY2Fz
ZSB0b2tlbk51bWJlcjoKKyAgICBzdWNjZXNzZnVsID0gZGVjb2RlTnVtYmVyKHRva2VuKTsKKyAg
ICBicmVhazsKKyAgY2FzZSB0b2tlblN0cmluZzoKKyAgICBzdWNjZXNzZnVsID0gZGVjb2RlU3Ry
aW5nKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblRydWU6CisgICAgeworICAgIFZh
bHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9
CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5GYWxzZToKKyAgICB7CisgICAgVmFsdWUgdihmYWxz
ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJl
YWs7CisgIGNhc2UgdG9rZW5OdWxsOgorICAgIHsKKyAgICBWYWx1ZSB2OworICAgIGN1cnJlbnRW
YWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0
KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2Vu
QXJyYXlTZXBhcmF0b3I6CisgIGNhc2UgdG9rZW5PYmplY3RFbmQ6CisgIGNhc2UgdG9rZW5BcnJh
eUVuZDoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKSB7
CisgICAgICAvLyAiVW4tcmVhZCIgdGhlIGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1cnJl
bnQgdmFsdWUgYXMgYSBudWxsCisgICAgICAvLyB0b2tlbi4KKyAgICAgIGN1cnJlbnRfLS07Cisg
ICAgICBWYWx1ZSB2OworICAgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEpOwor
ICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOwor
ICAgICAgYnJlYWs7CisgICAgfSAvLyBFbHNlLCBmYWxsIHRocm91Z2guLi4KKyAgZGVmYXVsdDoK
KyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8p
OworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8p
OworICAgIHJldHVybiBhZGRFcnJvcigiU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFy
cmF5IGV4cGVjdGVkLiIsIHRva2VuKTsKKyAgfQorCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7
CisgICAgbGFzdFZhbHVlRW5kXyA9IGN1cnJlbnRfOworICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVu
dFZhbHVlKCk7CisgIH0KKworICAtLXN0YWNrRGVwdGhfZzsKKyAgcmV0dXJuIHN1Y2Nlc3NmdWw7
Cit9CisKK3ZvaWQgUmVhZGVyOjpza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pIHsKKyAg
aWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGRvIHsKKyAgICAgIHJlYWRUb2tl
bih0b2tlbik7CisgICAgfSB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50KTsKKyAg
fSBlbHNlIHsKKyAgICByZWFkVG9rZW4odG9rZW4pOworICB9Cit9CisKK2Jvb2wgUmVhZGVyOjpy
ZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7CisgIHNraXBTcGFjZXMoKTsKKyAgdG9rZW4uc3RhcnRf
ID0gY3VycmVudF87CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wgb2sgPSB0cnVl
OworICBzd2l0Y2ggKGMpIHsKKyAgY2FzZSAneyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9i
amVjdEJlZ2luOworICAgIGJyZWFrOworICBjYXNlICd9JzoKKyAgICB0b2tlbi50eXBlXyA9IHRv
a2VuT2JqZWN0RW5kOworICAgIGJyZWFrOworICBjYXNlICdbJzoKKyAgICB0b2tlbi50eXBlXyA9
IHRva2VuQXJyYXlCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnXSc6CisgICAgdG9rZW4udHlw
ZV8gPSB0b2tlbkFycmF5RW5kOworICAgIGJyZWFrOworICBjYXNlICciJzoKKyAgICB0b2tlbi50
eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmluZygpOworICAgIGJyZWFrOwor
ICBjYXNlICcvJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVudDsKKyAgICBvayA9IHJl
YWRDb21tZW50KCk7CisgICAgYnJlYWs7CisgIGNhc2UgJzAnOgorICBjYXNlICcxJzoKKyAgY2Fz
ZSAnMic6CisgIGNhc2UgJzMnOgorICBjYXNlICc0JzoKKyAgY2FzZSAnNSc6CisgIGNhc2UgJzYn
OgorICBjYXNlICc3JzoKKyAgY2FzZSAnOCc6CisgIGNhc2UgJzknOgorICBjYXNlICctJzoKKyAg
ICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAgIHJlYWROdW1iZXIoKTsKKyAgICBicmVh
azsKKyAgY2FzZSAndCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblRydWU7CisgICAgb2sgPSBt
YXRjaCgicnVlIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2UgJ2YnOgorICAgIHRva2VuLnR5cGVf
ID0gdG9rZW5GYWxzZTsKKyAgICBvayA9IG1hdGNoKCJhbHNlIiwgNCk7CisgICAgYnJlYWs7Cisg
IGNhc2UgJ24nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOworICAgIG9rID0gbWF0Y2go
InVsbCIsIDMpOworICAgIGJyZWFrOworICBjYXNlICcsJzoKKyAgICB0b2tlbi50eXBlXyA9IHRv
a2VuQXJyYXlTZXBhcmF0b3I7CisgICAgYnJlYWs7CisgIGNhc2UgJzonOgorICAgIHRva2VuLnR5
cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgICAgYnJlYWs7CisgIGNhc2UgMDoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6Cisg
ICAgb2sgPSBmYWxzZTsKKyAgICBicmVhazsKKyAgfQorICBpZiAoIW9rKQorICAgIHRva2VuLnR5
cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uZW5kXyA9IGN1cnJlbnRfOworICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBSZWFkZXI6OnNraXBTcGFjZXMoKSB7CisgIHdoaWxlIChjdXJyZW50XyAh
PSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnRfOworICAgIGlmIChjID09ICcgJyB8fCBj
ID09ICdcdCcgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1xuJykKKyAgICAgICsrY3VycmVudF87Cisg
ICAgZWxzZQorICAgICAgYnJlYWs7CisgIH0KK30KKworYm9vbCBSZWFkZXI6Om1hdGNoKExvY2F0
aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKSB7CisgIGlmIChlbmRfIC0gY3VycmVudF8g
PCBwYXR0ZXJuTGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgaW50IGluZGV4ID0gcGF0dGVy
bkxlbmd0aDsKKyAgd2hpbGUgKGluZGV4LS0pCisgICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBw
YXR0ZXJuW2luZGV4XSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudF8gKz0gcGF0dGVy
bkxlbmd0aDsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkQ29tbWVudCgp
IHsKKyAgTG9jYXRpb24gY29tbWVudEJlZ2luID0gY3VycmVudF8gLSAxOworICBDaGFyIGMgPSBn
ZXROZXh0Q2hhcigpOworICBib29sIHN1Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgaWYgKGMgPT0gJyon
KQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ1N0eWxlQ29tbWVudCgpOworICBlbHNlIGlmIChjID09
ICcvJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxlQ29tbWVudCgpOworICBpZiAoIXN1
Y2Nlc3NmdWwpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7
CisgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOworICAgIGlm
IChsYXN0VmFsdWVFbmRfICYmICFjb250YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVu
dEJlZ2luKSkgeworICAgICAgaWYgKGMgIT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVu
dEJlZ2luLCBjdXJyZW50XykpCisgICAgICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2Ft
ZUxpbmU7CisgICAgfQorCisgICAgYWRkQ29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBw
bGFjZW1lbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgc3RkOjpzdHJpbmcg
bm9ybWFsaXplRU9MKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5k
KSB7CisgIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZWQ7CisgIG5vcm1hbGl6ZWQucmVzZXJ2ZShlbmQg
LSBiZWdpbik7CisgIFJlYWRlcjo6TG9jYXRpb24gY3VycmVudCA9IGJlZ2luOworICB3aGlsZSAo
Y3VycmVudCAhPSBlbmQpIHsKKyAgICBjaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjID09
ICdccicpIHsKKyAgICAgIGlmIChjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVudCA9PSAnXG4nKQor
ICAgICAgICAgLy8gY29udmVydCBkb3MgRU9MCisgICAgICAgICArK2N1cnJlbnQ7CisgICAgICAv
LyBjb252ZXJ0IE1hYyBFT0wKKyAgICAgIG5vcm1hbGl6ZWQgKz0gJ1xuJzsKKyAgICB9IGVsc2Ug
eworICAgICAgbm9ybWFsaXplZCArPSBjOworICAgIH0KKyAgfQorICByZXR1cm4gbm9ybWFsaXpl
ZDsKK30KKwordm9pZAorUmVhZGVyOjphZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlv
biBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIGFzc2VydChjb2xsZWN0Q29t
bWVudHNfKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVFT0wo
YmVnaW4sIGVuZCk7CisgIGlmIChwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSkg
eworICAgIGFzc2VydChsYXN0VmFsdWVfICE9IDApOworICAgIGxhc3RWYWx1ZV8tPnNldENvbW1l
bnQobm9ybWFsaXplZCwgcGxhY2VtZW50KTsKKyAgfSBlbHNlIHsKKyAgICBjb21tZW50c0JlZm9y
ZV8gKz0gbm9ybWFsaXplZDsKKyAgfQorfQorCitib29sIFJlYWRlcjo6cmVhZENTdHlsZUNvbW1l
bnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4
dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykKKyAgICAgIGJy
ZWFrOworICB9CisgIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsKK30KKworYm9vbCBSZWFk
ZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7
CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXG4nKQorICAgICAg
YnJlYWs7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJ
dCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4gYWRkQ29tbWVudC4KKyAgICAgIGlmIChjdXJyZW50XyAh
PSBlbmRfICYmICpjdXJyZW50XyA9PSAnXG4nKQorICAgICAgICBnZXROZXh0Q2hhcigpOworICAg
ICAgLy8gQnJlYWsgb24gTW9jIE9TIDkgRU9MLgorICAgICAgYnJlYWs7CisgICAgfQorICB9Cisg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFJlYWRlcjo6cmVhZE51bWJlcigpIHsKKyAgY29uc3Qg
Y2hhciAqcCA9IGN1cnJlbnRfOworICBjaGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9yIGFscmVh
ZHkgY29uc3VtZWQgY2hhcmFjdGVyCisgIC8vIGludGVncmFsIHBhcnQKKyAgd2hpbGUgKGMgPj0g
JzAnICYmIGMgPD0gJzknKQorICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDog
MDsKKyAgLy8gZnJhY3Rpb25hbCBwYXJ0CisgIGlmIChjID09ICcuJykgeworICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8
PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgIH0K
KyAgLy8gZXhwb25lbnRpYWwgcGFydAorICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKKyAg
ICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgaWYgKGMgPT0gJysn
IHx8IGMgPT0gJy0nKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAw
OworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3VycmVudF8g
PSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorfQorCitib29sIFJlYWRlcjo6cmVhZFN0cmlu
ZygpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBj
ID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENoYXIo
KTsKKyAgICBlbHNlIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiBj
ID09ICciJzsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRPYmplY3QoVG9rZW4mIHRva2VuU3RhcnQp
IHsKKyAgVG9rZW4gdG9rZW5OYW1lOworICBzdGQ6OnN0cmluZyBuYW1lOworICBWYWx1ZSBpbml0
KG9iamVjdFZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsK
KyAgd2hpbGUgKHJlYWRUb2tlbih0b2tlbk5hbWUpKSB7CisgICAgYm9vbCBpbml0aWFsVG9rZW5P
ayA9IHRydWU7CisgICAgd2hpbGUgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYg
aW5pdGlhbFRva2VuT2spCisgICAgICBpbml0aWFsVG9rZW5PayA9IHJlYWRUb2tlbih0b2tlbk5h
bWUpOworICAgIGlmICghaW5pdGlhbFRva2VuT2spCisgICAgICBicmVhazsKKyAgICBpZiAodG9r
ZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5kICYmIG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkg
b2JqZWN0CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBuYW1lID0gIiI7CisgICAgaWYgKHRva2Vu
TmFtZS50eXBlXyA9PSB0b2tlblN0cmluZykgeworICAgICAgaWYgKCFkZWNvZGVTdHJpbmcodG9r
ZW5OYW1lLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmpl
Y3RFbmQpOworICAgIH0gZWxzZSBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuTnVtYmVyICYm
IGZlYXR1cmVzXy5hbGxvd051bWVyaWNLZXlzXykgeworICAgICAgVmFsdWUgbnVtYmVyTmFtZTsK
KyAgICAgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuTmFtZSwgbnVtYmVyTmFtZSkpCisgICAgICAg
IHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKyAgICAgIG5hbWUgPSBu
dW1iZXJOYW1lLmFzU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGJyZWFrOworICAgIH0K
KworICAgIFRva2VuIGNvbG9uOworICAgIGlmICghcmVhZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50
eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFyYXRvcikgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnOicgYWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1l
IiwgY29sb24sIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgVmFsdWUmIHZhbHVlID0gY3Vy
cmVudFZhbHVlKClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9r
ID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9y
IGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVu
ZCk7CisKKyAgICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKKyAg
ICAgICAgKGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRv
a2VuQXJyYXlTZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVu
dCkpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3Np
bmcgJywnIG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCBjb21tYSwgdG9rZW5PYmplY3RF
bmQpOworICAgIH0KKyAgICBib29sIGZpbmFsaXplVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUg
KGNvbW1hLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCisgICAgICBm
aW5hbGl6ZVRva2VuT2sgPSByZWFkVG9rZW4oY29tbWEpOworICAgIGlmIChjb21tYS50eXBlXyA9
PSB0b2tlbk9iamVjdEVuZCkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBhZGRF
cnJvckFuZFJlY292ZXIoCisgICAgICAiTWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1l
IiwgdG9rZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkQXJy
YXkoVG9rZW4mIHRva2VuU3RhcnQpIHsKKyAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKKyAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tpcFNwYWNlcygpOworICBp
ZiAoKmN1cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgeworICAgIFRva2VuIGVuZEFy
cmF5OworICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAg
aW50IGluZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRW
YWx1ZSgpW2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9
IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBh
bHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7
CisKKyAgICBUb2tlbiB0b2tlbjsKKyAgICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0
ZW0gaW4gdGhlIGFycmF5LgorICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKKyAgICB3aGlsZSAo
dG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tl
bih0b2tlbik7CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0KKyAgICAgICAgKHRva2Vu
LnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJh
eUVuZCk7CisgICAgaWYgKCFvayB8fCBiYWRUb2tlblR5cGUpIHsKKyAgICAgIHJldHVybiBhZGRF
cnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBk
ZWNsYXJhdGlvbiIsIHRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAgaWYgKHRva2Vu
LnR5cGVfID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKKyAgVmFs
dWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZh
bHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4g
aW50ZWdlci4gSWYgdGhlIG51bWJlciBpcworICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBz
dXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisgIC8vIHdlIGRlY29kZSB0aGUgbnVt
YmVyIGFzIGEgZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOworICBi
b29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9PSAnLSc7CisgIGlmIChpc05lZ2F0aXZlKQorICAg
ICsrY3VycmVudDsKKyAgLy8gVE9ETzogSGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBhbmQg
bW9kIGF0IGNvbXBpbGUgdGltZSBvciBnZXQgcmlkIG9mIHRoZW0uCisgIFZhbHVlOjpMYXJnZXN0
VUludCBtYXhJbnRlZ2VyVmFsdWUgPQorICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0
VUludChWYWx1ZTo6bWF4TGFyZ2VzdEludCkgKyAxCisgICAgICAgICAgICAgICAgIDogVmFsdWU6
Om1heExhcmdlc3RVSW50OworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50
ZWdlclZhbHVlIC8gMTA7CisgIFZhbHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7CisgIHdoaWxl
IChjdXJyZW50IDwgdG9rZW4uZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAg
aWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKKyAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4s
IGRlY29kZWQpOworICAgIFZhbHVlOjpVSW50IGRpZ2l0KGMgLSAnMCcpOworICAgIGlmICh2YWx1
ZSA+PSB0aHJlc2hvbGQpIHsKKyAgICAgIC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4
IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElmCisgICAgICAvLyBhKSB3ZSd2
ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQs
IGFuZAorICAgICAgLy8gYykgaXQncyBzbWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRp
bmcgZGVsdGEsIHdlJ3JlIG9rYXkuCisgICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1i
ZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQgb3ZlcmZsb3cuCisgICAgICBpZiAodmFsdWUgPiB0aHJl
c2hvbGQgfHwgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8CisgICAgICAgICAgZGlnaXQgPiBtYXhJ
bnRlZ2VyVmFsdWUgJSAxMCkgeworICAgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBk
ZWNvZGVkKTsKKyAgICAgIH0KKyAgICB9CisgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7
CisgIH0KKyAgaWYgKGlzTmVnYXRpdmUgJiYgdmFsdWUgPT0gbWF4SW50ZWdlclZhbHVlKQorICAg
IGRlY29kZWQgPSBWYWx1ZTo6bWluTGFyZ2VzdEludDsKKyAgZWxzZSBpZiAoaXNOZWdhdGl2ZSkK
KyAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKKyAgZWxzZSBpZiAodmFs
dWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhJbnQpKQorICAgIGRlY29kZWQgPSBW
YWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UKKyAgICBkZWNvZGVkID0gdmFsdWU7Cisg
IHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tl
bikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2Rl
ZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNv
ZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2lu
Xyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2Vu
JiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgZG91YmxlIHZhbHVlID0gMDsKKyAgc3RkOjpz
dHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyk7CisgIHN0ZDo6aXN0cmluZ3N0
cmVhbSBpcyhidWZmZXIpOworICBpZiAoIShpcyA+PiB2YWx1ZSkpCisgICAgcmV0dXJuIGFkZEVy
cm9yKCInIiArIHN0ZDo6c3RyaW5nKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKworICAgICAg
ICAgICAgICAgICAgICAgICAgIicgaXMgbm90IGEgbnVtYmVyLiIsCisgICAgICAgICAgICAgICAg
ICAgIHRva2VuKTsKKyAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBSZWFkZXI6OmRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pIHsKKyAgc3RkOjpzdHJpbmcgZGVj
b2RlZF9zdHJpbmc7CisgIGlmICghZGVjb2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykp
CisgICAgcmV0dXJuIGZhbHNlOworICBWYWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKKyAg
Y3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNv
ZGVkKSB7CisgIGRlY29kZWQucmVzZXJ2ZSh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMik7
CisgIExvY2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJworICBM
b2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRfIC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyIn
CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7Cisg
ICAgaWYgKGMgPT0gJyInKQorICAgICAgYnJlYWs7CisgICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7
CisgICAgICBpZiAoY3VycmVudCA9PSBlbmQpCisgICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1w
dHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKKyAgICAgIENo
YXIgZXNjYXBlID0gKmN1cnJlbnQrKzsKKyAgICAgIHN3aXRjaCAoZXNjYXBlKSB7CisgICAgICBj
YXNlICciJzoKKyAgICAgICAgZGVjb2RlZCArPSAnIic7CisgICAgICAgIGJyZWFrOworICAgICAg
Y2FzZSAnLyc6CisgICAgICAgIGRlY29kZWQgKz0gJy8nOworICAgICAgICBicmVhazsKKyAgICAg
IGNhc2UgJ1xcJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXFwnOworICAgICAgICBicmVhazsKKyAg
ICAgIGNhc2UgJ2InOgorICAgICAgICBkZWNvZGVkICs9ICdcYic7CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSAnZic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xmJzsKKyAgICAgICAgYnJlYWs7
CisgICAgICBjYXNlICduJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXG4nOworICAgICAgICBicmVh
azsKKyAgICAgIGNhc2UgJ3InOgorICAgICAgICBkZWNvZGVkICs9ICdccic7CisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSAndCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKKyAgICAgICAg
YnJlYWs7CisgICAgICBjYXNlICd1JzogeworICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsK
KyAgICAgICAgaWYgKCFkZWNvZGVVbmljb2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQs
IHVuaWNvZGUpKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVjb2RlZCArPSBj
b2RlUG9pbnRUb1VURjgodW5pY29kZSk7CisgICAgICB9IGJyZWFrOworICAgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIGFkZEVycm9yKCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIs
IHRva2VuLCBjdXJyZW50KTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgZGVjb2RlZCAr
PSBjOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29k
ZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKKworICBpZiAoIWRlY29kZVVuaWNvZGVFc2Nh
cGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICByZXR1cm4gZmFs
c2U7CisgIGlmICh1bmljb2RlID49IDB4RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgeworICAg
IC8vIHN1cnJvZ2F0ZSBwYWlycworICAgIGlmIChlbmQgLSBjdXJyZW50IDwgNikKKyAgICAgIHJl
dHVybiBhZGRFcnJvcigKKyAgICAgICAgICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBl
Y3RlZCB0byBwYXJzZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLiIsCisgICAgICAgICAgdG9rZW4s
CisgICAgICAgICAgY3VycmVudCk7CisgICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7Cisg
ICAgaWYgKCooY3VycmVudCsrKSA9PSAnXFwnICYmICooY3VycmVudCsrKSA9PSAndScpIHsKKyAg
ICAgIGlmIChkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwg
c3Vycm9nYXRlUGFpcikpIHsKKyAgICAgICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUg
JiAweDNGRikgPDwgMTApICsgKHN1cnJvZ2F0ZVBhaXIgJiAweDNGRik7CisgICAgICB9IGVsc2UK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9y
KCJleHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9m
ICIKKyAgICAgICAgICAgICAgICAgICAgICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKKyAg
ICAgICAgICAgICAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50
KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZVVuaWNvZGVF
c2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkgeworICBpZiAoZW5kIC0gY3Vy
cmVudCA8IDQpCisgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAiQmFkIHVuaWNvZGUgZXNj
YXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwKKyAgICAgICAg
dG9rZW4sCisgICAgICAgIGN1cnJlbnQpOworICB1bmljb2RlID0gMDsKKyAgZm9yIChpbnQgaW5k
ZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOwor
ICAgIHVuaWNvZGUgKj0gMTY7CisgICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAg
dW5pY29kZSArPSBjIC0gJzAnOworICAgIGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKQor
ICAgICAgdW5pY29kZSArPSBjIC0gJ2EnICsgMTA7CisgICAgZWxzZSBpZiAoYyA+PSAnQScgJiYg
YyA8PSAnRicpCisgICAgICB1bmljb2RlICs9IGMgLSAnQScgKyAxMDsKKyAgICBlbHNlCisgICAg
ICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5j
ZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkLiIsCisgICAgICAgICAgdG9r
ZW4sCisgICAgICAgICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wK
K1JlYWRlcjo6YWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tl
biwgTG9jYXRpb24gZXh0cmEpIHsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0g
dG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGV4dHJh
OworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IFJlYWRlcjo6cmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAg
aW50IGVycm9yQ291bnQgPSBpbnQoZXJyb3JzXy5zaXplKCkpOworICBUb2tlbiBza2lwOworICBm
b3IgKDs7KSB7CisgICAgaWYgKCFyZWFkVG9rZW4oc2tpcCkpCisgICAgICBlcnJvcnNfLnJlc2l6
ZShlcnJvckNvdW50KTsgLy8gZGlzY2FyZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292ZXJ5CisgICAg
aWYgKHNraXAudHlwZV8gPT0gc2tpcFVudGlsVG9rZW4gfHwgc2tpcC50eXBlXyA9PSB0b2tlbkVu
ZE9mU3RyZWFtKQorICAgICAgYnJlYWs7CisgIH0KKyAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3Vu
dCk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zl
cihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl
blR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOworICBy
ZXR1cm4gcmVjb3ZlckZyb21FcnJvcihza2lwVW50aWxUb2tlbik7Cit9CisKK1ZhbHVlJiBSZWFk
ZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0dXJuICoobm9kZXNfLnRvcCgpKTsgfQorCitSZWFkZXI6
OkNoYXIgUmVhZGVyOjpnZXROZXh0Q2hhcigpIHsKKyAgaWYgKGN1cnJlbnRfID09IGVuZF8pCisg
ICAgcmV0dXJuIDA7CisgIHJldHVybiAqY3VycmVudF8rKzsKK30KKwordm9pZCBSZWFkZXI6Omdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBsaW5lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQmIGNvbHVtbikgY29uc3QgeworICBMb2NhdGlvbiBjdXJyZW50
ID0gYmVnaW5fOworICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgbGluZSA9
IDA7CisgIHdoaWxlIChjdXJyZW50IDwgbG9jYXRpb24gJiYgY3VycmVudCAhPSBlbmRfKSB7Cisg
ICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICBpZiAo
KmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgKytjdXJyZW50OworICAgICAgbGFzdExpbmVTdGFy
dCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfSBlbHNlIGlmIChjID09ICdcbicpIHsK
KyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5lOworICAgIH0KKyAg
fQorICAvLyBjb2x1bW4gJiBsaW5lIHN0YXJ0IGF0IDEKKyAgY29sdW1uID0gaW50KGxvY2F0aW9u
IC0gbGFzdExpbmVTdGFydCkgKyAxOworICArK2xpbmU7Cit9CisKK3N0ZDo6c3RyaW5nIFJlYWRl
cjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdCB7Cisg
IGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwg
bGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJbMTggKyAxNiArIDE2ICsgMV07CisgIHNucHJp
bnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICJMaW5lICVkLCBDb2x1bW4gJWQiLCBsaW5lLCBj
b2x1bW4pOworICByZXR1cm4gYnVmZmVyOworfQorCitzdGQ6OnN0cmluZyBSZWFkZXI6OmdldExv
Y2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3QgeworICAgICAgIHN0ZDo6c3Ry
aW5nIHNuaXBwZXQgPSAiIjsKKyAgICAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gZG9jU3RyZWFtKGRv
Y3VtZW50Xyk7CisgICAgICAgaW50IGxpbiwgY29sOworICAgICAgIGdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihsb2NhdGlvbiwgbGluLCBjb2wpOworICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7Cisg
ICAgICAgZm9yIChpbnQgaT0xOyBpPGxpbisyICYmIHN0ZDo6Z2V0bGluZShkb2NTdHJlYW0sIGxp
bmUpOyBpKyspCisgICAgICAgeworICAgICAgICAgICAgICBpZiAobGluLWkgPCAyKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzbmlwcGV0ICs9ICIgICIgKyBzdGQ6OnRv
X3N0cmluZyhpKSArICI6ICIgKyBsaW5lICsgIlxuIjsKKyAgICAgICAgICAgICAgfQorICAgICAg
IH0KKyAgICAgICByZXR1cm4gc25pcHBldDsKK30KKworLy8gRGVwcmVjYXRlZC4gUHJlc2VydmVk
IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CitzdGQ6OnN0cmluZyBSZWFkZXI6OmdldEZvcm1h
dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0IHsKKyAgcmV0dXJuIGdldEZvcm1hdHRlZEVycm9yTWVz
c2FnZXMoKTsKK30KKworc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3Nh
Z2VzKCkgY29uc3QgeworICBzdGQ6OnN0cmluZyBmb3JtYXR0ZWRNZXNzYWdlOworICBmb3IgKEVy
cm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVnaW4oKTsKKyAgICAgICBp
dEVycm9yICE9IGVycm9yc18uZW5kKCk7CisgICAgICAgKytpdEVycm9yKSB7CisgICAgY29uc3Qg
RXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAg
ICAgICAgIiogIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRf
KSArICJcbiI7CisgICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSBnZXRMb2NhdGlvblNuaXBwZXQo
ZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAiXG4iOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAg
IiArIGVycm9yLm1lc3NhZ2VfICsgIlxuIjsKKyAgICBpZiAoZXJyb3IuZXh0cmFfKQorICAgICAg
Zm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihlcnJvci5leHRyYV8pICsgIiBmb3IgZGV0YWlsLlxuIjsKKyAgfQorICByZXR1cm4g
Zm9ybWF0dGVkTWVzc2FnZTsKK30KKworc3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJy
b3I+IFJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsKKyAgc3RkOjp2ZWN0b3I8
UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9yIChFcnJvcnM6OmNvbnN0
X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAgaXRFcnJvciAhPSBl
cnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0IEVycm9ySW5mbyYg
ZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBSZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVk
OworICAgIHN0cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJl
Z2luXzsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0g
YmVnaW5fOworICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOworICAgIGFs
bEVycm9ycy5wdXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0dXJuIGFsbEVycm9yczsK
K30KKworYm9vbCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0
ZDo6c3RyaW5nJiBtZXNzYWdlKSB7CisgIHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOwor
ICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zm
c2V0TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOwor
ICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZh
bHVlLmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBlbmRfICsgdmFsdWUuZ2V0T2Zm
c2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47Cisg
IGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IDA7CisgIGVycm9yc18u
cHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OnB1c2hF
cnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBWYWx1ZSYgZXh0cmEpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlm
KHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2YWx1ZS5nZXRPZmZzZXRM
aW1pdCgpID4gbGVuZ3RoCisgICAgfHwgZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkK
KyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2Vu
RXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7
CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJv
ckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1l
c3NhZ2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
YWRlcjo6Z29vZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFlcnJvcnNfLnNpemUoKTsKK30KKworLy8g
ZXhhY3QgY29weSBvZiBGZWF0dXJlcworY2xhc3MgT3VyRmVhdHVyZXMgeworcHVibGljOgorICBz
dGF0aWMgT3VyRmVhdHVyZXMgYWxsKCk7CisgIGJvb2wgYWxsb3dDb21tZW50c187CisgIGJvb2wg
c3RyaWN0Um9vdF87CisgIGJvb2wgYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc187CisgIGJv
b2wgYWxsb3dOdW1lcmljS2V5c187CisgIGJvb2wgYWxsb3dTaW5nbGVRdW90ZXNfOworICBib29s
IGZhaWxJZkV4dHJhXzsKKyAgYm9vbCByZWplY3REdXBLZXlzXzsKKyAgYm9vbCBhbGxvd1NwZWNp
YWxGbG9hdHNfOworICBpbnQgc3RhY2tMaW1pdF87Cit9OyAgLy8gT3VyRmVhdHVyZXMKKworLy8g
ZXhhY3QgY29weSBvZiBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBGZWF0dXJlcworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworT3VyRmVhdHVyZXMgT3VyRmVhdHVyZXM6OmFs
bCgpIHsgcmV0dXJuIE91ckZlYXR1cmVzKCk7IH0KKworLy8gSW1wbGVtZW50YXRpb24gb2YgY2xh
c3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBleGFj
dCBjb3B5IG9mIFJlYWRlciwgcmVuYW1lZCB0byBPdXJSZWFkZXIKK2NsYXNzIE91clJlYWRlciB7
CitwdWJsaWM6CisgIHR5cGVkZWYgY2hhciBDaGFyOworICB0eXBlZGVmIGNvbnN0IENoYXIqIExv
Y2F0aW9uOworICBzdHJ1Y3QgU3RydWN0dXJlZEVycm9yIHsKKyAgICBzaXplX3Qgb2Zmc2V0X3N0
YXJ0OworICAgIHNpemVfdCBvZmZzZXRfbGltaXQ7CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsK
KyAgfTsKKworICBPdXJSZWFkZXIoT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKTsKKyAgYm9v
bCBwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAgICBjb25zdCBjaGFyKiBl
bmREb2MsCisgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMgPSB0cnVlKTsKKyAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNz
YWdlcygpIGNvbnN0OworICBzdGQ6OnZlY3RvcjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVy
ZWRFcnJvcnMoKSBjb25zdDsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBj
b25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7CisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVl
JiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSk7
CisgIGJvb2wgZ29vZCgpIGNvbnN0OworCitwcml2YXRlOgorICBPdXJSZWFkZXIoT3VyUmVhZGVy
IGNvbnN0Jik7ICAvLyBubyBpbXBsCisgIHZvaWQgb3BlcmF0b3I9KE91clJlYWRlciBjb25zdCYp
OyAgLy8gbm8gaW1wbAorCisgIGVudW0gVG9rZW5UeXBlIHsKKyAgICB0b2tlbkVuZE9mU3RyZWFt
ID0gMCwKKyAgICB0b2tlbk9iamVjdEJlZ2luLAorICAgIHRva2VuT2JqZWN0RW5kLAorICAgIHRv
a2VuQXJyYXlCZWdpbiwKKyAgICB0b2tlbkFycmF5RW5kLAorICAgIHRva2VuU3RyaW5nLAorICAg
IHRva2VuTnVtYmVyLAorICAgIHRva2VuVHJ1ZSwKKyAgICB0b2tlbkZhbHNlLAorICAgIHRva2Vu
TnVsbCwKKyAgICB0b2tlbk5hTiwKKyAgICB0b2tlblBvc0luZiwKKyAgICB0b2tlbk5lZ0luZiwK
KyAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAorICAgIHRva2VuTWVtYmVyU2VwYXJhdG9yLAorICAg
IHRva2VuQ29tbWVudCwKKyAgICB0b2tlbkVycm9yCisgIH07CisKKyAgY2xhc3MgVG9rZW4gewor
ICBwdWJsaWM6CisgICAgVG9rZW5UeXBlIHR5cGVfOworICAgIExvY2F0aW9uIHN0YXJ0XzsKKyAg
ICBMb2NhdGlvbiBlbmRfOworICB9OworCisgIGNsYXNzIEVycm9ySW5mbyB7CisgIHB1YmxpYzoK
KyAgICBUb2tlbiB0b2tlbl87CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87CisgICAgTG9jYXRp
b24gZXh0cmFfOworICB9OworCisgIHR5cGVkZWYgc3RkOjpkZXF1ZTxFcnJvckluZm8+IEVycm9y
czsKKworICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOworICB2b2lkIHNraXBTcGFjZXMo
KTsKKyAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCk7Cisg
IGJvb2wgcmVhZENvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ1N0eWxlQ29tbWVudCgpOworICBib29s
IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkU3RyaW5nKCk7CisgIGJvb2wgcmVh
ZFN0cmluZ1NpbmdsZVF1b3RlKCk7CisgIGJvb2wgcmVhZE51bWJlcihib29sIGNoZWNrSW5mKTsK
KyAgYm9vbCByZWFkVmFsdWUoKTsKKyAgYm9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7Cisg
IGJvb2wgcmVhZEFycmF5KFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2Vu
JiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29k
ZWQpOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZVN0
cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVE
b3VibGUoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBW
YWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9r
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgZGVjb2RlVW5p
Y29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50JiB1bmljb2RlKTsKKyAgYm9vbCBhZGRFcnJvcihjb25zdCBzdGQ6OnN0
cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSA9IDApOworICBib29s
IHJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgYm9vbCBhZGRF
cnJvckFuZFJlY292ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9r
ZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgdm9pZCBza2lwVW50aWxTcGFjZSgpOworICBWYWx1
ZSYgY3VycmVudFZhbHVlKCk7CisgIENoYXIgZ2V0TmV4dENoYXIoKTsKKyAgdm9pZAorICBnZXRM
b2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50JiBj
b2x1bW4pIGNvbnN0OworICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9j
YXRpb24gbG9jYXRpb24pIGNvbnN0OworICB2b2lkIGFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4s
IExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICB2b2lkIHNraXBD
b21tZW50VG9rZW5zKFRva2VuJiB0b2tlbik7CisKKyAgdHlwZWRlZiBzdGQ6OnN0YWNrPFZhbHVl
Kj4gTm9kZXM7CisgIE5vZGVzIG5vZGVzXzsKKyAgRXJyb3JzIGVycm9yc187CisgIHN0ZDo6c3Ry
aW5nIGRvY3VtZW50XzsKKyAgTG9jYXRpb24gYmVnaW5fOworICBMb2NhdGlvbiBlbmRfOworICBM
b2NhdGlvbiBjdXJyZW50XzsKKyAgTG9jYXRpb24gbGFzdFZhbHVlRW5kXzsKKyAgVmFsdWUqIGxh
c3RWYWx1ZV87CisgIHN0ZDo6c3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsKKyAgaW50IHN0YWNrRGVw
dGhfOworCisgIE91ckZlYXR1cmVzIGNvbnN0IGZlYXR1cmVzXzsKKyAgYm9vbCBjb2xsZWN0Q29t
bWVudHNfOworfTsgIC8vIE91clJlYWRlcgorCisvLyBjb21wbGV0ZSBjb3B5IG9mIFJlYWQgaW1w
bCwgZm9yIE91clJlYWRlcgorCitPdXJSZWFkZXI6Ok91clJlYWRlcihPdXJGZWF0dXJlcyBjb25z
dCYgZmVhdHVyZXMpCisgICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5k
XygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCisgICAgICBsYXN0VmFsdWVfKCksIGNv
bW1lbnRzQmVmb3JlXygpLAorICAgICAgc3RhY2tEZXB0aF8oMCksCisgICAgICBmZWF0dXJlc18o
ZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgeworfQorCitib29sIE91clJlYWRlcjo6cGFy
c2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
ZW5kRG9jLAorICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgICAg
ICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7CisgIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVu
dHNfKSB7CisgICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7CisgIH0KKworICBiZWdpbl8gPSBi
ZWdpbkRvYzsKKyAgZW5kXyA9IGVuZERvYzsKKyAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RD
b21tZW50czsKKyAgY3VycmVudF8gPSBiZWdpbl87CisgIGxhc3RWYWx1ZUVuZF8gPSAwOworICBs
YXN0VmFsdWVfID0gMDsKKyAgY29tbWVudHNCZWZvcmVfID0gIiI7CisgIGVycm9yc18uY2xlYXIo
KTsKKyAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKKyAgICBub2Rlc18ucG9wKCk7CisgIG5vZGVz
Xy5wdXNoKCZyb290KTsKKworICBzdGFja0RlcHRoXyA9IDA7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9
IHJlYWRWYWx1ZSgpOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4p
OworICBpZiAoZmVhdHVyZXNfLmZhaWxJZkV4dHJhXykgeworICAgIGlmICh0b2tlbi50eXBlXyAh
PSB0b2tlbkVycm9yICYmIHRva2VuLnR5cGVfICE9IHRva2VuRW5kT2ZTdHJlYW0pIHsKKyAgICAg
IGFkZEVycm9yKCJFeHRyYSBub24td2hpdGVzcGFjZSBhZnRlciBKU09OIHZhbHVlLiIsIHRva2Vu
KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgaWYgKGNvbGxlY3RDb21tZW50
c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQorICAgIHJvb3Quc2V0Q29tbWVudChjb21t
ZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7CisgIGlmIChmZWF0dXJlc18uc3RyaWN0Um9vdF8p
IHsKKyAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsKKyAgICAg
IC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hvdWxkIGJl
IGZpcnN0IHRva2VuIGZvdW5kCisgICAgICAvLyBpbiBkb2MKKyAgICAgIHRva2VuLnR5cGVfID0g
dG9rZW5FcnJvcjsKKyAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOworICAgICAgdG9rZW4u
ZW5kXyA9IGVuZERvYzsKKyAgICAgIGFkZEVycm9yKAorICAgICAgICAgICJBIHZhbGlkIEpTT04g
ZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiIsCisg
ICAgICAgICAgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICByZXR1
cm4gc3VjY2Vzc2Z1bDsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKKyAgaWYg
KHN0YWNrRGVwdGhfID49IGZlYXR1cmVzXy5zdGFja0xpbWl0XykgdGhyb3dSdW50aW1lRXJyb3Io
IkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZhbHVlKCkuIik7CisgICsrc3RhY2tEZXB0aF87
CisgIFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGJvb2wgc3Vj
Y2Vzc2Z1bCA9IHRydWU7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVm
b3JlXy5lbXB0eSgpKSB7CisgICAgY3VycmVudFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0Jl
Zm9yZV8sIGNvbW1lbnRCZWZvcmUpOworICAgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOworICB9CisK
KyAgc3dpdGNoICh0b2tlbi50eXBlXykgeworICBjYXNlIHRva2VuT2JqZWN0QmVnaW46CisgICAg
c3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QodG9rZW4pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFy
cmF5QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRBcnJheSh0b2tlbik7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOwor
ICBjYXNlIHRva2VuTnVtYmVyOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4p
OworICAgIGJyZWFrOworICBjYXNlIHRva2VuU3RyaW5nOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNv
ZGVTdHJpbmcodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuVHJ1ZToKKyAgICB7Cisg
ICAgVmFsdWUgdih0cnVlKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwor
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOwor
ICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkZhbHNlOgorICAgIHsKKyAgICBWYWx1ZSB2
KGZhbHNlKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAg
ICBicmVhazsKKyAgY2FzZSB0b2tlbk51bGw6CisgICAgeworICAgIFZhbHVlIHY7CisgICAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2Ug
dG9rZW5OYU46CisgICAgeworICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAg
ICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5Qb3NJbmY6CisgICAgeworICAgIFZhbHVlIHYo
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0
b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk5l
Z0luZjoKKyAgICB7CisgICAgVmFsdWUgdigtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpp
bmZpbml0eSgpKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0K
KyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5U2VwYXJhdG9yOgorICBjYXNlIHRva2VuT2Jq
ZWN0RW5kOgorICBjYXNlIHRva2VuQXJyYXlFbmQ6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ry
b3BwZWROdWxsUGxhY2Vob2xkZXJzXykgeworICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50
IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJyZW50IHZhbHVlIGFzIGEgbnVsbAorICAgICAgLy8gdG9r
ZW4uCisgICAgICBjdXJyZW50Xy0tOworICAgICAgVmFsdWUgdjsKKyAgICAgIGN1cnJlbnRWYWx1
ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQo
Y3VycmVudF8gLSBiZWdpbl8gLSAxKTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICAgIGJyZWFrOworICAgIH0gLy8gZWxzZSwgZmFs
bCB0aHJvdWdoIC4uLgorICBkZWZhdWx0OgorICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgcmV0dXJuIGFkZEVycm9yKCJTeW50YXgg
ZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4pOworICB9CisK
KyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBsYXN0VmFsdWVFbmRfID0gY3VycmVudF87
CisgICAgbGFzdFZhbHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKKyAgfQorCisgIC0tc3RhY2tEZXB0
aF87CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCit2b2lkIE91clJlYWRlcjo6c2tpcENvbW1l
bnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7CisgIGlmIChmZWF0dXJlc18uYWxsb3dDb21tZW50c18p
IHsKKyAgICBkbyB7CisgICAgICByZWFkVG9rZW4odG9rZW4pOworICAgIH0gd2hpbGUgKHRva2Vu
LnR5cGVfID09IHRva2VuQ29tbWVudCk7CisgIH0gZWxzZSB7CisgICAgcmVhZFRva2VuKHRva2Vu
KTsKKyAgfQorfQorCitib29sIE91clJlYWRlcjo6cmVhZFRva2VuKFRva2VuJiB0b2tlbikgewor
ICBza2lwU3BhY2VzKCk7CisgIHRva2VuLnN0YXJ0XyA9IGN1cnJlbnRfOworICBDaGFyIGMgPSBn
ZXROZXh0Q2hhcigpOworICBib29sIG9rID0gdHJ1ZTsKKyAgc3dpdGNoIChjKSB7CisgIGNhc2Ug
J3snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RCZWdpbjsKKyAgICBicmVhazsKKyAg
Y2FzZSAnfSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEVuZDsKKyAgICBicmVhazsK
KyAgY2FzZSAnWyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5QmVnaW47CisgICAgYnJl
YWs7CisgIGNhc2UgJ10nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUVuZDsKKyAgICBi
cmVhazsKKyAgY2FzZSAnIic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKKyAgICBv
ayA9IHJlYWRTdHJpbmcoKTsKKyAgICBicmVhazsKKyAgY2FzZSAnXCcnOgorICAgIGlmIChmZWF0
dXJlc18uYWxsb3dTaW5nbGVRdW90ZXNfKSB7CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblN0cmlu
ZzsKKyAgICBvayA9IHJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpOworICAgIGJyZWFrOworICAgIH0g
Ly8gZWxzZSBjb250aW51ZQorICBjYXNlICcvJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29t
bWVudDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7CisgICAgYnJlYWs7CisgIGNhc2UgJzAnOgor
ICBjYXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNhc2UgJzMnOgorICBjYXNlICc0JzoKKyAgY2Fz
ZSAnNSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3JzoKKyAgY2FzZSAnOCc6CisgIGNhc2UgJzkn
OgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1iZXI7CisgICAgcmVhZE51bWJlcihmYWxzZSk7
CisgICAgYnJlYWs7CisgIGNhc2UgJy0nOgorICAgIGlmIChyZWFkTnVtYmVyKHRydWUpKSB7Cisg
ICAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAgIH0gZWxzZSB7CisgICAgICB0b2tl
bi50eXBlXyA9IHRva2VuTmVnSW5mOworICAgICAgb2sgPSBmZWF0dXJlc18uYWxsb3dTcGVjaWFs
RmxvYXRzXyAmJiBtYXRjaCgibmZpbml0eSIsIDcpOworICAgIH0KKyAgICBicmVhazsKKyAgY2Fz
ZSAndCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblRydWU7CisgICAgb2sgPSBtYXRjaCgicnVl
IiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2UgJ2YnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5G
YWxzZTsKKyAgICBvayA9IG1hdGNoKCJhbHNlIiwgNCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ24n
OgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOworICAgIG9rID0gbWF0Y2goInVsbCIsIDMp
OworICAgIGJyZWFrOworICBjYXNlICdOJzoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lh
bEZsb2F0c18pIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OYU47CisgICAgICBvayA9IG1h
dGNoKCJhTiIsIDIpOworICAgIH0gZWxzZSB7CisgICAgICBvayA9IGZhbHNlOworICAgIH0KKyAg
ICBicmVhazsKKyAgY2FzZSAnSSc6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9h
dHNfKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuUG9zSW5mOworICAgICAgb2sgPSBtYXRj
aCgibmZpbml0eSIsIDcpOworICAgIH0gZWxzZSB7CisgICAgICBvayA9IGZhbHNlOworICAgIH0K
KyAgICBicmVhazsKKyAgY2FzZSAnLCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5U2Vw
YXJhdG9yOworICAgIGJyZWFrOworICBjYXNlICc6JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2Vu
TWVtYmVyU2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlIDA6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlbkVuZE9mU3RyZWFtOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIG9rID0gZmFs
c2U7CisgICAgYnJlYWs7CisgIH0KKyAgaWYgKCFvaykKKyAgICB0b2tlbi50eXBlXyA9IHRva2Vu
RXJyb3I7CisgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgT3VyUmVhZGVyOjpza2lwU3BhY2VzKCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykg
eworICAgIENoYXIgYyA9ICpjdXJyZW50XzsKKyAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQn
IHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcbicpCisgICAgICArK2N1cnJlbnRfOworICAgIGVsc2UK
KyAgICAgIGJyZWFrOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjptYXRjaChMb2NhdGlvbiBw
YXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCkgeworICBpZiAoZW5kXyAtIGN1cnJlbnRfIDwgcGF0
dGVybkxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIGludCBpbmRleCA9IHBhdHRlcm5MZW5n
dGg7CisgIHdoaWxlIChpbmRleC0tKQorICAgIGlmIChjdXJyZW50X1tpbmRleF0gIT0gcGF0dGVy
bltpbmRleF0pCisgICAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRfICs9IHBhdHRlcm5MZW5n
dGg7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6cmVhZENvbW1lbnQoKSB7
CisgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRfIC0gMTsKKyAgQ2hhciBjID0gZ2V0
TmV4dENoYXIoKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gZmFsc2U7CisgIGlmIChjID09ICcqJykK
KyAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgZWxzZSBpZiAoYyA9PSAn
LycpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgaWYgKCFzdWNj
ZXNzZnVsKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXykgewor
ICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29tbWVudEJlZm9yZTsKKyAgICBpZiAo
bGFzdFZhbHVlRW5kXyAmJiAhY29udGFpbnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRC
ZWdpbikpIHsKKyAgICAgIGlmIChjICE9ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1lbnRC
ZWdpbiwgY3VycmVudF8pKQorICAgICAgICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVM
aW5lOworICAgIH0KKworICAgIGFkZENvbW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxh
Y2VtZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZAorT3VyUmVhZGVyOjphZGRD
b21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50KSB7CisgIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKKyAgY29uc3Qgc3RkOjpzdHJp
bmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVFT0woYmVnaW4sIGVuZCk7CisgIGlmIChwbGFjZW1l
bnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSkgeworICAgIGFzc2VydChsYXN0VmFsdWVfICE9
IDApOworICAgIGxhc3RWYWx1ZV8tPnNldENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50KTsK
KyAgfSBlbHNlIHsKKyAgICBjb21tZW50c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKKyAgfQorfQor
Citib29sIE91clJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQoKSB7CisgIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAn
KicgJiYgKmN1cnJlbnRfID09ICcvJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiBnZXRO
ZXh0Q2hhcigpID09ICcvJzsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1l
bnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4
dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXG4nKQorICAgICAgYnJlYWs7CisgICAgaWYgKGMgPT0g
J1xyJykgeworICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQg
aW4gYWRkQ29tbWVudC4KKyAgICAgIGlmIChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9
PSAnXG4nKQorICAgICAgICBnZXROZXh0Q2hhcigpOworICAgICAgLy8gQnJlYWsgb24gTW9jIE9T
IDkgRU9MLgorICAgICAgYnJlYWs7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCiti
b29sIE91clJlYWRlcjo6cmVhZE51bWJlcihib29sIGNoZWNrSW5mKSB7CisgIGNvbnN0IGNoYXIg
KnAgPSBjdXJyZW50XzsKKyAgaWYgKGNoZWNrSW5mICYmIHAgIT0gZW5kXyAmJiAqcCA9PSAnSScp
IHsKKyAgICBjdXJyZW50XyA9ICsrcDsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgY2hhciBj
ID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBhbHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgorICAvLyBp
bnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICBjID0gKGN1
cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgIC8vIGZyYWN0aW9uYWwgcGFydAorICBp
ZiAoYyA9PSAnLicpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7
CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9
IHApIDwgZW5kXyA/ICpwKysgOiAwOworICB9CisgIC8vIGV4cG9uZW50aWFsIHBhcnQKKyAgaWYg
KGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/
ICpwKysgOiAwOworICAgIGlmIChjID09ICcrJyB8fCBjID09ICctJykKKyAgICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8
PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgIH0K
KyAgcmV0dXJuIHRydWU7Cit9Citib29sIE91clJlYWRlcjo6cmVhZFN0cmluZygpIHsKKyAgQ2hh
ciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBjID0gZ2V0TmV4dENo
YXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICBlbHNl
IGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiBjID09ICciJzsKK30K
KworCitib29sIE91clJlYWRlcjo6cmVhZFN0cmluZ1NpbmdsZVF1b3RlKCkgeworICBDaGFyIGMg
PSAwOworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIGMgPSBnZXROZXh0Q2hhcigp
OworICAgIGlmIChjID09ICdcXCcpCisgICAgICBnZXROZXh0Q2hhcigpOworICAgIGVsc2UgaWYg
KGMgPT0gJ1wnJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiBjID09ICdcJyc7Cit9CisK
K2Jvb2wgT3VyUmVhZGVyOjpyZWFkT2JqZWN0KFRva2VuJiB0b2tlblN0YXJ0KSB7CisgIFRva2Vu
IHRva2VuTmFtZTsKKyAgc3RkOjpzdHJpbmcgbmFtZTsKKyAgVmFsdWUgaW5pdChvYmplY3RWYWx1
ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7CisgIHdoaWxlIChy
ZWFkVG9rZW4odG9rZW5OYW1lKSkgeworICAgIGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVlOwor
ICAgIHdoaWxlICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxUb2tl
bk9rKQorICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4odG9rZW5OYW1lKTsKKyAgICBp
ZiAoIWluaXRpYWxUb2tlbk9rKQorICAgICAgYnJlYWs7CisgICAgaWYgKHRva2VuTmFtZS50eXBl
XyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAorICAg
ICAgcmV0dXJuIHRydWU7CisgICAgbmFtZSA9ICIiOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8g
PT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFt
ZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKyAg
ICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18u
YWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5hbWU7CisgICAgICBpZiAo
IWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAgICAgICByZXR1cm4gcmVj
b3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1lID0gbnVtYmVyTmFtZS5h
c1N0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICBUb2tl
biBjb2xvbjsKKyAgICBpZiAoIXJlYWRUb2tlbihjb2xvbikgfHwgY29sb24udHlwZV8gIT0gdG9r
ZW5NZW1iZXJTZXBhcmF0b3IpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisg
ICAgICAgICAgIk1pc3NpbmcgJzonIGFmdGVyIG9iamVjdCBtZW1iZXIgbmFtZSIsIGNvbG9uLCB0
b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIGlmIChuYW1lLmxlbmd0aCgpID49ICgxVTw8MzAp
KSB0aHJvd1J1bnRpbWVFcnJvcigia2V5bGVuZ3RoID49IDJeMzAiKTsKKyAgICBpZiAoZmVhdHVy
ZXNfLnJlamVjdER1cEtleXNfICYmIGN1cnJlbnRWYWx1ZSgpLmlzTWVtYmVyKG5hbWUpKSB7Cisg
ICAgICBzdGQ6OnN0cmluZyBtc2cgPSAiRHVwbGljYXRlIGtleTogJyIgKyBuYW1lICsgIiciOwor
ICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICBtc2csIHRva2VuTmFt
ZSwgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFs
dWUoKVtuYW1lXTsKKyAgICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSByZWFk
VmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFk
eSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKwor
ICAgIFRva2VuIGNvbW1hOworICAgIGlmICghcmVhZFRva2VuKGNvbW1hKSB8fAorICAgICAgICAo
Y29tbWEudHlwZV8gIT0gdG9rZW5PYmplY3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJh
eVNlcGFyYXRvciAmJgorICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgewor
ICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnLCcg
b3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlvbiIsIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7Cisg
ICAgfQorICAgIGJvb2wgZmluYWxpemVUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAoY29tbWEu
dHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGZpbmFsaXplVG9rZW5PaykKKyAgICAgIGZpbmFsaXpl
VG9rZW5PayA9IHJlYWRUb2tlbihjb21tYSk7CisgICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2Vu
T2JqZWN0RW5kKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGFkZEVycm9yQW5k
UmVjb3ZlcigKKyAgICAgICJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tl
bk5hbWUsIHRva2VuT2JqZWN0RW5kKTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRBcnJheShU
b2tlbiYgdG9rZW5TdGFydCkgeworICBWYWx1ZSBpbml0KGFycmF5VmFsdWUpOworICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3Rh
cnQodG9rZW5TdGFydC5zdGFydF8gLSBiZWdpbl8pOworICBza2lwU3BhY2VzKCk7CisgIGlmICgq
Y3VycmVudF8gPT0gJ10nKSAvLyBlbXB0eSBhcnJheQorICB7CisgICAgVG9rZW4gZW5kQXJyYXk7
CisgICAgcmVhZFRva2VuKGVuZEFycmF5KTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICBpbnQg
aW5kZXggPSAwOworICBmb3IgKDs7KSB7CisgICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVl
KClbaW5kZXgrK107CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9rID0gcmVh
ZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9yIGFscmVh
ZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbkFycmF5RW5kKTsKKwor
ICAgIFRva2VuIHRva2VuOworICAgIC8vIEFjY2VwdCBDb21tZW50IGFmdGVyIGxhc3QgaXRlbSBp
biB0aGUgYXJyYXkuCisgICAgb2sgPSByZWFkVG9rZW4odG9rZW4pOworICAgIHdoaWxlICh0b2tl
bi50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgb2spIHsKKyAgICAgIG9rID0gcmVhZFRva2VuKHRv
a2VuKTsKKyAgICB9CisgICAgYm9vbCBiYWRUb2tlblR5cGUgPQorICAgICAgICAodG9rZW4udHlw
ZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5k
KTsKKyAgICBpZiAoIW9rIHx8IGJhZFRva2VuVHlwZSkgeworICAgICAgcmV0dXJuIGFkZEVycm9y
QW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xh
cmF0aW9uIiwgdG9rZW4sIHRva2VuQXJyYXlFbmQpOworICAgIH0KKyAgICBpZiAodG9rZW4udHlw
ZV8gPT0gdG9rZW5BcnJheUVuZCkKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiB0cnVlOwor
fQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbikgeworICBWYWx1
ZSBkZWNvZGVkOworICBpZiAoIWRlY29kZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0
dXJuIGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVy
biB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwg
VmFsdWUmIGRlY29kZWQpIHsKKyAgLy8gQXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBh
biBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVyIGlzCisgIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVt
IHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBpbnRlZ2VyIHRoZW4KKyAgLy8gd2UgZGVjb2RlIHRoZSBu
dW1iZXIgYXMgYSBkb3VibGUuCisgIExvY2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87Cisg
IGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJyZW50ID09ICctJzsKKyAgaWYgKGlzTmVnYXRpdmUpCisg
ICAgKytjdXJyZW50OworICAvLyBUT0RPOiBIZWxwIHRoZSBjb21waWxlciBkbyB0aGUgZGl2IGFu
ZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9yIGdldCByaWQgb2YgdGhlbS4KKyAgVmFsdWU6Okxhcmdl
c3RVSW50IG1heEludGVnZXJWYWx1ZSA9CisgICAgICBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdl
c3RVSW50KC1WYWx1ZTo6bWluTGFyZ2VzdEludCkKKyAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6
bWF4TGFyZ2VzdFVJbnQ7CisgIFZhbHVlOjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRl
Z2VyVmFsdWUgLyAxMDsKKyAgVmFsdWU6Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKKyAgd2hpbGUg
KGN1cnJlbnQgPCB0b2tlbi5lbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBp
ZiAoYyA8ICcwJyB8fCBjID4gJzknKQorICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwg
ZGVjb2RlZCk7CisgICAgVmFsdWU6OlVJbnQgZGlnaXQoYyAtICcwJyk7CisgICAgaWYgKHZhbHVl
ID49IHRocmVzaG9sZCkgeworICAgICAgLy8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXgg
dmFsdWUgZGl2aWRlZCBieSAxMCAocm91bmRlZCBkb3duKS4gSWYKKyAgICAgIC8vIGEpIHdlJ3Zl
IG9ubHkganVzdCB0b3VjaGVkIHRoZSBsaW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwg
YW5kCisgICAgICAvLyBjKSBpdCdzIHNtYWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGlu
ZyBkZWx0YSwgd2UncmUgb2theS4KKyAgICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJl
ciBhcyBhIGRvdWJsZSB0byBhdm9pZCBvdmVyZmxvdy4KKyAgICAgIGlmICh2YWx1ZSA+IHRocmVz
aG9sZCB8fCBjdXJyZW50ICE9IHRva2VuLmVuZF8gfHwKKyAgICAgICAgICBkaWdpdCA+IG1heElu
dGVnZXJWYWx1ZSAlIDEwKSB7CisgICAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRl
Y29kZWQpOworICAgICAgfQorICAgIH0KKyAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsK
KyAgfQorICBpZiAoaXNOZWdhdGl2ZSkKKyAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50
KHZhbHVlKTsKKyAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjpt
YXhJbnQpKQorICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UK
KyAgICBkZWNvZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRl
cjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAo
IWRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJy
ZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zm
c2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zm
c2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29s
IE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsK
KyAgZG91YmxlIHZhbHVlID0gMDsKKyAgY29uc3QgaW50IGJ1ZmZlclNpemUgPSAzMjsKKyAgaW50
IGNvdW50OworICBpbnQgbGVuZ3RoID0gaW50KHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8pOwor
CisgIC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCBidWZmZXIgb3ZlcmZsb3cgZXhwbG9pdHMuCisg
IGlmIChsZW5ndGggPCAwKSB7CisgICAgcmV0dXJuIGFkZEVycm9yKCJVbmFibGUgdG8gcGFyc2Ug
dG9rZW4gbGVuZ3RoIiwgdG9rZW4pOworICB9CisKKyAgLy8gQXZvaWQgdXNpbmcgYSBzdHJpbmcg
Y29uc3RhbnQgZm9yIHRoZSBmb3JtYXQgY29udHJvbCBzdHJpbmcgZ2l2ZW4gdG8KKyAgLy8gc3Nj
YW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBoYXJkIHRvIGRlYnVnIGNyYXNoZXMgb24gT1MgWC4gU2Vl
IGhlcmUgZm9yIG1vcmUKKyAgLy8gaW5mbzoKKyAgLy8KKyAgLy8gICAgIGh0dHA6Ly9kZXZlbG9w
ZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFjLyNET0NVTUVOVEFUSU9OL0RldmVsb3BlclRvb2xzL2dj
Yy00LjAuMS9nY2MvSW5jb21wYXRpYmlsaXRpZXMuaHRtbAorICBjaGFyIGZvcm1hdFtdID0gIiVs
ZiI7CisKKyAgaWYgKGxlbmd0aCA8PSBidWZmZXJTaXplKSB7CisgICAgQ2hhciBidWZmZXJbYnVm
ZmVyU2l6ZSArIDFdOworICAgIG1lbWNweShidWZmZXIsIHRva2VuLnN0YXJ0XywgbGVuZ3RoKTsK
KyAgICBidWZmZXJbbGVuZ3RoXSA9IDA7CisgICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLCBmb3Jt
YXQsICZ2YWx1ZSk7CisgIH0gZWxzZSB7CisgICAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0
YXJ0XywgdG9rZW4uZW5kXyk7CisgICAgY291bnQgPSBzc2NhbmYoYnVmZmVyLmNfc3RyKCksIGZv
cm1hdCwgJnZhbHVlKTsKKyAgfQorCisgIGlmIChjb3VudCAhPSAxKQorICAgIHJldHVybiBhZGRF
cnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICInIGlzIG5vdCBhIG51bWJlci4iLAorICAgICAgICAgICAgICAg
ICAgICB0b2tlbik7CisgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKSB7CisgIHN0ZDo6c3RyaW5n
IGRlY29kZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJp
bmcpKQorICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7
CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmlu
ZyYgZGVjb2RlZCkgeworICBkZWNvZGVkLnJlc2VydmUodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0
XyAtIDIpOworICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tpcCAn
IicKKyAgTG9jYXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBpbmNs
dWRlICciJworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVu
dCsrOworICAgIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICAgIGVsc2UgaWYgKGMgPT0g
J1xcJykgeworICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gYWRkRXJy
b3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7Cisg
ICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0Y2ggKGVzY2FwZSkgewor
ICAgICAgY2FzZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0gJyInOworICAgICAgICBicmVhazsK
KyAgICAgIGNhc2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9ICcvJzsKKyAgICAgICAgYnJlYWs7
CisgICAgICBjYXNlICdcXCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xcJzsKKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGInOworICAgICAgICBi
cmVhazsKKyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9ICdcZic7CisgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSAnbic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKKyAgICAg
ICAgYnJlYWs7CisgICAgICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHInOworICAg
ICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNvZGVkICs9ICdcdCc7Cisg
ICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHVu
aWNvZGU7CisgICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVu
dCwgZW5kLCB1bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlY29k
ZWQgKz0gY29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBicmVhazsKKyAgICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBz
dHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGRl
Y29kZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVh
ZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYgKCFkZWNvZGVV
bmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAg
cmV0dXJuIGZhbHNlOworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERC
RkYpIHsKKyAgICAvLyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYp
CisgICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJh
Y3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAorICAgICAg
ICAgIHRva2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICAgIHVuc2lnbmVkIGludCBzdXJyb2dh
dGVQYWlyOworICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0g
J3UnKSB7CisgICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJy
ZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsg
KCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOworICAg
ICAgfSBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgIHJldHVy
biBhZGRFcnJvcigiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNv
bmQgaGFsZiBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUg
cGFpciIsCisgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sCisgICAgICAgICAgICAgICAgICAg
ICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpk
ZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKKyAg
aWYgKGVuZCAtIGN1cnJlbnQgPCA0KQorICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgIkJh
ZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVk
LiIsCisgICAgICAgIHRva2VuLAorICAgICAgICBjdXJyZW50KTsKKyAgdW5pY29kZSA9IDA7Cisg
IGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hhciBjID0g
KmN1cnJlbnQrKzsKKyAgICB1bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAmJiBjIDw9
ICc5JykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49ICdhJyAm
JiBjIDw9ICdmJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVsc2UgaWYg
KGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7Cisg
ICAgZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5pY29kZSBl
c2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAor
ICAgICAgICAgIHRva2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVl
OworfQorCitib29sCitPdXJSZWFkZXI6OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4dHJhKSB7CisgIEVycm9ySW5mbyBpbmZvOwor
ICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5m
by5leHRyYV8gPSBleHRyYTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNr
aXBVbnRpbFRva2VuKSB7CisgIGludCBlcnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsK
KyAgVG9rZW4gc2tpcDsKKyAgZm9yICg7OykgeworICAgIGlmICghcmVhZFRva2VuKHNraXApKQor
ICAgICAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNl
ZCBieSByZWNvdmVyeQorICAgIGlmIChza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNr
aXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0cmVhbSkKKyAgICAgIGJyZWFrOworICB9CisgIGVycm9y
c18ucmVzaXplKGVycm9yQ291bnQpOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgT3VyUmVh
ZGVyOjphZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIGFkZEVycm9y
KG1lc3NhZ2UsIHRva2VuKTsKKyAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9r
ZW4pOworfQorCitWYWx1ZSYgT3VyUmVhZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5v
ZGVzXy50b3AoKSk7IH0KKworT3VyUmVhZGVyOjpDaGFyIE91clJlYWRlcjo6Z2V0TmV4dENoYXIo
KSB7CisgIGlmIChjdXJyZW50XyA9PSBlbmRfKQorICAgIHJldHVybiAwOworICByZXR1cm4gKmN1
cnJlbnRfKys7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4o
TG9jYXRpb24gbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCYgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBj
b2x1bW4pIGNvbnN0IHsKKyAgTG9jYXRpb24gY3VycmVudCA9IGJlZ2luXzsKKyAgTG9jYXRpb24g
bGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgIGxpbmUgPSAwOworICB3aGlsZSAoY3VycmVudCA8
IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7
CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKCpjdXJyZW50ID09ICdcbicpCisgICAg
ICAgICsrY3VycmVudDsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKyts
aW5lOworICAgIH0gZWxzZSBpZiAoYyA9PSAnXG4nKSB7CisgICAgICBsYXN0TGluZVN0YXJ0ID0g
Y3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9CisgIH0KKyAgLy8gY29sdW1uICYgbGluZSBz
dGFydCBhdCAxCisgIGNvbHVtbiA9IGludChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsK
KyAgKytsaW5lOworfQorCitzdGQ6OnN0cmluZyBPdXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3QgeworICBpbnQgbGluZSwgY29sdW1uOwor
ICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4obG9jYXRpb24sIGxpbmUsIGNvbHVtbik7CisgIGNo
YXIgYnVmZmVyWzE4ICsgMTYgKyAxNiArIDFdOworICBzbnByaW50ZihidWZmZXIsIHNpemVvZihi
dWZmZXIpLCAiTGluZSAlZCwgQ29sdW1uICVkIiwgbGluZSwgY29sdW1uKTsKKyAgcmV0dXJuIGJ1
ZmZlcjsKK30KKworc3RkOjpzdHJpbmcgT3VyUmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3Nh
Z2VzKCkgY29uc3QgeworICBzdGQ6OnN0cmluZyBmb3JtYXR0ZWRNZXNzYWdlOworICBmb3IgKEVy
cm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVnaW4oKTsKKyAgICAgICBp
dEVycm9yICE9IGVycm9yc18uZW5kKCk7CisgICAgICAgKytpdEVycm9yKSB7CisgICAgY29uc3Qg
RXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAg
ICAgICAgIiogIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci50b2tlbl8uc3RhcnRf
KSArICJcbiI7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8g
KyAiXG4iOworICAgIGlmIChlcnJvci5leHRyYV8pCisgICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9
CisgICAgICAgICAgIlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJh
XykgKyAiIGZvciBkZXRhaWwuXG4iOworICB9CisgIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOwor
fQorCitzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gT3VyUmVhZGVyOjpn
ZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3QgeworICBzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0
cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3JzOworICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3Ig
aXRFcnJvciA9IGVycm9yc18uYmVnaW4oKTsKKyAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5k
KCk7CisgICAgICAgKytpdEVycm9yKSB7CisgICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICpp
dEVycm9yOworICAgIE91clJlYWRlcjo6U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7CisgICAg
c3RydWN0dXJlZC5vZmZzZXRfc3RhcnQgPSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOwor
ICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xpbWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87
CisgICAgc3RydWN0dXJlZC5tZXNzYWdlID0gZXJyb3IubWVzc2FnZV87CisgICAgYWxsRXJyb3Jz
LnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsKKyAgfQorICByZXR1cm4gYWxsRXJyb3JzOworfQorCiti
b29sIE91clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpz
dHJpbmcmIG1lc3NhZ2UpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlm
KHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2YWx1ZS5nZXRPZmZzZXRM
aW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47CisgIHRv
a2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUu
Z2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGVuZF8gKyB2YWx1ZS5nZXRPZmZzZXRM
aW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5m
by5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gMDsKKyAgZXJyb3JzXy5wdXNo
X2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6cHVzaEVy
cm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFZhbHVlJiBleHRyYSkgeworICBzaXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYo
dmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9mZnNldExp
bWl0KCkgPiBsZW5ndGgKKyAgICB8fCBleHRyYS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQor
ICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5F
cnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgdG9rZW4uZW5kXyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9y
SW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVz
c2FnZTsKKyAgaW5mby5leHRyYV8gPSBiZWdpbl8gKyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOwor
ICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3Vy
UmVhZGVyOjpnb29kKCkgY29uc3QgeworICByZXR1cm4gIWVycm9yc18uc2l6ZSgpOworfQorCisK
K2NsYXNzIE91ckNoYXJSZWFkZXIgOiBwdWJsaWMgQ2hhclJlYWRlciB7CisgIGJvb2wgY29uc3Qg
Y29sbGVjdENvbW1lbnRzXzsKKyAgT3VyUmVhZGVyIHJlYWRlcl87CitwdWJsaWM6CisgIE91ckNo
YXJSZWFkZXIoCisgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMsCisgICAgT3VyRmVhdHVyZXMgY29u
c3QmIGZlYXR1cmVzKQorICA6IGNvbGxlY3RDb21tZW50c18oY29sbGVjdENvbW1lbnRzKQorICAs
IHJlYWRlcl8oZmVhdHVyZXMpCisgIHt9CisgIGJvb2wgcGFyc2UoCisgICAgICBjaGFyIGNvbnN0
KiBiZWdpbkRvYywgY2hhciBjb25zdCogZW5kRG9jLAorICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6
c3RyaW5nKiBlcnJzKSB7CisgICAgYm9vbCBvayA9IHJlYWRlcl8ucGFyc2UoYmVnaW5Eb2MsIGVu
ZERvYywgKnJvb3QsIGNvbGxlY3RDb21tZW50c18pOworICAgIGlmIChlcnJzKSB7CisgICAgICAq
ZXJycyA9IHJlYWRlcl8uZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOworICAgIH0KKyAgICBy
ZXR1cm4gb2s7CisgIH0KK307CisKK0NoYXJSZWFkZXJCdWlsZGVyOjpDaGFyUmVhZGVyQnVpbGRl
cigpCit7CisgIHNldERlZmF1bHRzKCZzZXR0aW5nc18pOworfQorQ2hhclJlYWRlckJ1aWxkZXI6
On5DaGFyUmVhZGVyQnVpbGRlcigpCit7fQorQ2hhclJlYWRlciogQ2hhclJlYWRlckJ1aWxkZXI6
Om5ld0NoYXJSZWFkZXIoKSBjb25zdAoreworICBib29sIGNvbGxlY3RDb21tZW50cyA9IHNldHRp
bmdzX1siY29sbGVjdENvbW1lbnRzIl0uYXNCb29sKCk7CisgIE91ckZlYXR1cmVzIGZlYXR1cmVz
ID0gT3VyRmVhdHVyZXM6OmFsbCgpOworICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRzXyA9IHNldHRp
bmdzX1siYWxsb3dDb21tZW50cyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5zdHJpY3RSb290XyA9
IHNldHRpbmdzX1sic3RyaWN0Um9vdCJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd0Ryb3Bw
ZWROdWxsUGxhY2Vob2xkZXJzXyA9IHNldHRpbmdzX1siYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9s
ZGVycyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IHNldHRpbmdz
X1siYWxsb3dOdW1lcmljS2V5cyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd1NpbmdsZVF1
b3Rlc18gPSBzZXR0aW5nc19bImFsbG93U2luZ2xlUXVvdGVzIl0uYXNCb29sKCk7CisgIGZlYXR1
cmVzLnN0YWNrTGltaXRfID0gc2V0dGluZ3NfWyJzdGFja0xpbWl0Il0uYXNJbnQoKTsKKyAgZmVh
dHVyZXMuZmFpbElmRXh0cmFfID0gc2V0dGluZ3NfWyJmYWlsSWZFeHRyYSJdLmFzQm9vbCgpOwor
ICBmZWF0dXJlcy5yZWplY3REdXBLZXlzXyA9IHNldHRpbmdzX1sicmVqZWN0RHVwS2V5cyJdLmFz
Qm9vbCgpOworICBmZWF0dXJlcy5hbGxvd1NwZWNpYWxGbG9hdHNfID0gc2V0dGluZ3NfWyJhbGxv
d1NwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsKKyAgcmV0dXJuIG5ldyBPdXJDaGFyUmVhZGVyKGNv
bGxlY3RDb21tZW50cywgZmVhdHVyZXMpOworfQorc3RhdGljIHZvaWQgZ2V0VmFsaWRSZWFkZXJL
ZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogdmFsaWRfa2V5cykKK3sKKyAgdmFsaWRfa2V5cy0+
Y2xlYXIoKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJjb2xsZWN0Q29tbWVudHMiKTsKKyAgdmFs
aWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0NvbW1lbnRzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgi
c3RyaWN0Um9vdCIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93RHJvcHBlZE51bGxQbGFj
ZWhvbGRlcnMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd051bWVyaWNLZXlzIik7Cisg
IHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTaW5nbGVRdW90ZXMiKTsKKyAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJzdGFja0xpbWl0Iik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiZmFpbElmRXh0cmEi
KTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJyZWplY3REdXBLZXlzIik7CisgIHZhbGlkX2tleXMt
Pmluc2VydCgiYWxsb3dTcGVjaWFsRmxvYXRzIik7Cit9Citib29sIENoYXJSZWFkZXJCdWlsZGVy
Ojp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3QKK3sKKyAgSnNvbjo6VmFsdWUg
bXlfaW52YWxpZDsKKyAgaWYgKCFpbnZhbGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAvLyBz
byB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBOVUxMCisgIEpzb246OlZhbHVlJiBpbnYgPSAq
aW52YWxpZDsKKyAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IHZhbGlkX2tleXM7CisgIGdldFZhbGlk
UmVhZGVyS2V5cygmdmFsaWRfa2V5cyk7CisgIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0aW5n
c18uZ2V0TWVtYmVyTmFtZXMoKTsKKyAgc2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKKyAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5ID0g
a2V5c1tpXTsKKyAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQo
KSkgeworICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKKyAgICB9CisgIH0KKyAgcmV0
dXJuIDB1ID09IGludi5zaXplKCk7Cit9CitWYWx1ZSYgQ2hhclJlYWRlckJ1aWxkZXI6Om9wZXJh
dG9yW10oc3RkOjpzdHJpbmcga2V5KQoreworICByZXR1cm4gc2V0dGluZ3NfW2tleV07Cit9Cisv
LyBzdGF0aWMKK3ZvaWQgQ2hhclJlYWRlckJ1aWxkZXI6OnN0cmljdE1vZGUoSnNvbjo6VmFsdWUq
IHNldHRpbmdzKQoreworLy8hIFtDaGFyUmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCisgICgqc2V0
dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInN0cmljdFJv
b3QiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJz
Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOwor
ICAoKnNldHRpbmdzKVsiYWxsb3dTaW5nbGVRdW90ZXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdz
KVsic3RhY2tMaW1pdCJdID0gMTAwMDsKKyAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSB0
cnVlOworICAoKnNldHRpbmdzKVsicmVqZWN0RHVwS2V5cyJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5n
cylbImFsbG93U3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisvLyEgW0NoYXJSZWFkZXJCdWlsZGVy
U3RyaWN0TW9kZV0KK30KKy8vIHN0YXRpYwordm9pZCBDaGFyUmVhZGVyQnVpbGRlcjo6c2V0RGVm
YXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQoreworLy8hIFtDaGFyUmVhZGVyQnVpbGRlckRl
ZmF1bHRzXQorICAoKnNldHRpbmdzKVsiY29sbGVjdENvbW1lbnRzIl0gPSB0cnVlOworICAoKnNl
dHRpbmdzKVsiYWxsb3dDb21tZW50cyJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5ncylbInN0cmljdFJv
b3QiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVy
cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsK
KyAgKCpzZXR0aW5ncylbImFsbG93U2luZ2xlUXVvdGVzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5n
cylbInN0YWNrTGltaXQiXSA9IDEwMDA7CisgICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0g
ZmFsc2U7CisgICgqc2V0dGluZ3MpWyJyZWplY3REdXBLZXlzIl0gPSBmYWxzZTsKKyAgKCpzZXR0
aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisvLyEgW0NoYXJSZWFkZXJCdWls
ZGVyRGVmYXVsdHNdCit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IGdsb2JhbCBmdW5jdGlvbnMKKworYm9vbCBwYXJzZUZyb21TdHJlYW0oCisgICAgQ2hhclJlYWRl
cjo6RmFjdG9yeSBjb25zdCYgZmFjdCwgc3RkOjppc3RyZWFtJiBzaW4sCisgICAgVmFsdWUqIHJv
b3QsIHN0ZDo6c3RyaW5nKiBlcnJzKQoreworICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3NpbjsKKyAg
c3NpbiA8PCBzaW4ucmRidWYoKTsKKyAgc3RkOjpzdHJpbmcgZG9jID0gc3Npbi5zdHIoKTsKKyAg
Y2hhciBjb25zdCogYmVnaW4gPSBkb2MuZGF0YSgpOworICBjaGFyIGNvbnN0KiBlbmQgPSBiZWdp
biArIGRvYy5zaXplKCk7CisgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3QgYWN0dWFsbHkgbmVlZCBh
IG51bGwtdGVybWluYXRvci4KKyAgQ2hhclJlYWRlclB0ciBjb25zdCByZWFkZXIoZmFjdC5uZXdD
aGFyUmVhZGVyKCkpOworICByZXR1cm4gcmVhZGVyLT5wYXJzZShiZWdpbiwgZW5kLCByb290LCBl
cnJzKTsKK30KKworc3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYgc2luLCBW
YWx1ZSYgcm9vdCkgeworICBDaGFyUmVhZGVyQnVpbGRlciBiOworICBzdGQ6OnN0cmluZyBlcnJz
OworICBib29sIG9rID0gcGFyc2VGcm9tU3RyZWFtKGIsIHNpbiwgJnJvb3QsICZlcnJzKTsKKyAg
aWYgKCFvaykgeworICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgIkVycm9yIGZyb20g
cmVhZGVyOiAlcyIsCisgICAgICAgICAgICBlcnJzLmNfc3RyKCkpOworCisgICAgdGhyb3dSdW50
aW1lRXJyb3IoZXJycyk7CisgIH0KKyAgcmV0dXJuIHNpbjsKK30KKworfSAvLyBuYW1lc3BhY2Ug
SnNvbgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMv
bGliX2pzb24vanNvbl9yZWFkZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGli
X2pzb24vanNvbl92YWx1ZWl0ZXJhdG9yLmlubAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5
cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIg
TUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6
ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwg
b3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisvLyBp
bmNsdWRlZCBieSBqc29uX3ZhbHVlLmNwcAorCituYW1lc3BhY2UgSnNvbiB7CisKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlSXRlcmF0b3JC
YXNlCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1ZhbHVlSXRl
cmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSgpCisgICAgOiBjdXJyZW50XygpLCBpc051bGxf
KHRydWUpIHsKK30KKworVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKAorICAg
IGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQorICAgIDogY3Vy
cmVudF8oY3VycmVudCksIGlzTnVsbF8oZmFsc2UpIHt9CisKK1ZhbHVlJiBWYWx1ZUl0ZXJhdG9y
QmFzZTo6ZGVyZWYoKSBjb25zdCB7CisgIHJldHVybiBjdXJyZW50Xy0+c2Vjb25kOworfQorCit2
b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjppbmNyZW1lbnQoKSB7CisgICsrY3VycmVudF87Cit9CisK
K3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmRlY3JlbWVudCgpIHsKKyAgLS1jdXJyZW50XzsKK30K
KworVmFsdWVJdGVyYXRvckJhc2U6OmRpZmZlcmVuY2VfdHlwZQorVmFsdWVJdGVyYXRvckJhc2U6
OmNvbXB1dGVEaXN0YW5jZShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKKyNpZmRlZiBK
U09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICByZXR1cm4gb3RoZXIuY3VycmVudF8gLSBjdXJyZW50
XzsKKyNlbHNlCisgIC8vIEl0ZXJhdG9yIGZvciBudWxsIHZhbHVlIGFyZSBpbml0aWFsaXplZCB1
c2luZyB0aGUgZGVmYXVsdAorICAvLyBjb25zdHJ1Y3Rvciwgd2hpY2ggaW5pdGlhbGl6ZSBjdXJy
ZW50XyB0byB0aGUgZGVmYXVsdAorICAvLyBzdGQ6Om1hcDo6aXRlcmF0b3IuIEFzIGJlZ2luKCkg
YW5kIGVuZCgpIGFyZSB0d28gaW5zdGFuY2UKKyAgLy8gb2YgdGhlIGRlZmF1bHQgc3RkOjptYXA6
Oml0ZXJhdG9yLCB0aGV5IGNhbiBub3QgYmUgY29tcGFyZWQuCisgIC8vIFRvIGFsbG93IHRoaXMs
IHdlIGhhbmRsZSB0aGlzIGNvbXBhcmlzb24gc3BlY2lmaWNhbGx5LgorICBpZiAoaXNOdWxsXyAm
JiBvdGhlci5pc051bGxfKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICAvLyBVc2FnZSBvZiBz
dGQ6OmRpc3RhbmNlIGlzIG5vdCBwb3J0YWJsZSAoZG9lcyBub3QgY29tcGlsZSB3aXRoIFN1biBT
dHVkaW8gMTIKKyAgLy8gUm9ndWVXYXZlIFNUTCwKKyAgLy8gd2hpY2ggaXMgdGhlIG9uZSB1c2Vk
IGJ5IGRlZmF1bHQpLgorICAvLyBVc2luZyBhIHBvcnRhYmxlIGhhbmQtbWFkZSB2ZXJzaW9uIGZv
ciBub24gcmFuZG9tIGl0ZXJhdG9yIGluc3RlYWQ6CisgIC8vICAgcmV0dXJuIGRpZmZlcmVuY2Vf
dHlwZSggc3RkOjpkaXN0YW5jZSggY3VycmVudF8sIG90aGVyLmN1cnJlbnRfICkgKTsKKyAgZGlm
ZmVyZW5jZV90eXBlIG15RGlzdGFuY2UgPSAwOworICBmb3IgKFZhbHVlOjpPYmplY3RWYWx1ZXM6
Oml0ZXJhdG9yIGl0ID0gY3VycmVudF87IGl0ICE9IG90aGVyLmN1cnJlbnRfOworICAgICAgICsr
aXQpIHsKKyAgICArK215RGlzdGFuY2U7CisgIH0KKyAgcmV0dXJuIG15RGlzdGFuY2U7CisjZW5k
aWYKK30KKworYm9vbCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aXNFcXVhbChjb25zdCBTZWxmVHlwZSYg
b3RoZXIpIGNvbnN0IHsKKyAgaWYgKGlzTnVsbF8pIHsKKyAgICByZXR1cm4gb3RoZXIuaXNOdWxs
XzsKKyAgfQorICByZXR1cm4gY3VycmVudF8gPT0gb3RoZXIuY3VycmVudF87Cit9CisKK3ZvaWQg
VmFsdWVJdGVyYXRvckJhc2U6OmNvcHkoY29uc3QgU2VsZlR5cGUmIG90aGVyKSB7CisgIGN1cnJl
bnRfID0gb3RoZXIuY3VycmVudF87CisgIGlzTnVsbF8gPSBvdGhlci5pc051bGxfOworfQorCitW
YWx1ZSBWYWx1ZUl0ZXJhdG9yQmFzZTo6a2V5KCkgY29uc3QgeworICBjb25zdCBWYWx1ZTo6Q1pT
dHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsKKyAgaWYgKGN6c3RyaW5nLmRhdGEo
KSkgeworICAgIGlmIChjenN0cmluZy5pc1N0YXRpY1N0cmluZygpKQorICAgICAgcmV0dXJuIFZh
bHVlKFN0YXRpY1N0cmluZyhjenN0cmluZy5kYXRhKCkpKTsKKyAgICByZXR1cm4gVmFsdWUoY3pz
dHJpbmcuZGF0YSgpLCBjenN0cmluZy5kYXRhKCkgKyBjenN0cmluZy5sZW5ndGgoKSk7CisgIH0K
KyAgcmV0dXJuIFZhbHVlKGN6c3RyaW5nLmluZGV4KCkpOworfQorCitVSW50IFZhbHVlSXRlcmF0
b3JCYXNlOjppbmRleCgpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5n
ID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmICghY3pzdHJpbmcuZGF0YSgpKQorICAgIHJldHVy
biBjenN0cmluZy5pbmRleCgpOworICByZXR1cm4gVmFsdWU6OlVJbnQoLTEpOworfQorCitzdGQ6
OnN0cmluZyBWYWx1ZUl0ZXJhdG9yQmFzZTo6bmFtZSgpIGNvbnN0IHsKKyAgY2hhciBjb25zdCog
a2VleTsKKyAgY2hhciBjb25zdCogZW5kOworICBrZWV5ID0gbWVtYmVyTmFtZSgmZW5kKTsKKyAg
aWYgKCFrZWV5KSByZXR1cm4gc3RkOjpzdHJpbmcoKTsKKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKGtl
ZXksIGVuZCk7Cit9CisKK2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1l
KCkgY29uc3QgeworICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEo
KTsKKyAgcmV0dXJuIGNuYW1lID8gY25hbWUgOiAiIjsKK30KKworY2hhciBjb25zdCogVmFsdWVJ
dGVyYXRvckJhc2U6Om1lbWJlck5hbWUoY2hhciBjb25zdCoqIGVuZCkgY29uc3QgeworICBjb25z
dCBjaGFyKiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEoKTsKKyAgaWYgKCFjbmFtZSkg
eworICAgICplbmQgPSBOVUxMOworICAgIHJldHVybiBOVUxMOworICB9CisgICplbmQgPSBjbmFt
ZSArICgqY3VycmVudF8pLmZpcnN0Lmxlbmd0aCgpOworICByZXR1cm4gY25hbWU7Cit9CisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlQ29u
c3RJdGVyYXRvcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitW
YWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvcigpIHt9CisKK1ZhbHVlQ29uc3RJ
dGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKAorICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQorICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkg
e30KKworVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRv
ciBjb25zdCYgb3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KKworVmFs
dWVDb25zdEl0ZXJhdG9yJiBWYWx1ZUNvbnN0SXRlcmF0b3I6Ogorb3BlcmF0b3I9KGNvbnN0IFZh
bHVlSXRlcmF0b3JCYXNlJiBvdGhlcikgeworICBjb3B5KG90aGVyKTsKKyAgcmV0dXJuICp0aGlz
OworfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFz
cyBWYWx1ZUl0ZXJhdG9yCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoKSB7fQorCitWYWx1ZUl0ZXJhdG9yOjpW
YWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50
KQorICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkge30KKworVmFsdWVJdGVyYXRvcjo6
VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3ImIG90aGVyKQorICAgIDogVmFs
dWVJdGVyYXRvckJhc2Uob3RoZXIpIHsKKyAgdGhyb3dSdW50aW1lRXJyb3IoIkNvbnN0SXRlcmF0
b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5ldmVyIGJlIGFsbG93ZWQuIik7Cit9CisKK1ZhbHVlSXRl
cmF0b3I6OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpCisgICAgOiBW
YWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KKworVmFsdWVJdGVyYXRvciYgVmFsdWVJdGVyYXRv
cjo6b3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgeworICBjb3B5KG90aGVyKTsKKyAg
cmV0dXJuICp0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRl
cmF0b3IuaW5sCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1
ZS5jcHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVw
aWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFp
biBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8v
IFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNv
dXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElP
TikKKyNpbmNsdWRlIDxqc29uL2Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+
CisjaW5jbHVkZSA8anNvbi93cml0ZXIuaD4KKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNp
bmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8Y2Fzc2VydD4K
KyNpZmRlZiBKU09OX1VTRV9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2NvbnN0c3RyaW5nLmg+Cisj
ZW5kaWYKKyNpbmNsdWRlIDxjc3RkZGVmPiAvLyBzaXplX3QKKyNpbmNsdWRlIDxhbGdvcml0aG0+
IC8vIG1pbigpCisKKyNkZWZpbmUgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEUgYXNzZXJ0KGZhbHNl
KQorCisvKgorLS0gVmFsdmUgMS83LzE2Cis0NzAyIHVucmVhY2hhYmxlIGNvZGUKKyovCisjcHJh
Z21hIHdhcm5pbmcgKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGU6IDQ3MDIpCisKK25h
bWVzcGFjZSBKc29uIHsKKworLy8gVGhpcyBpcyBhIHdhbGthcm91bmQgdG8gYXZvaWQgdGhlIHN0
YXRpYyBpbml0aWFsaXphdGlvbiBvZiBWYWx1ZTo6bnVsbC4KKy8vIGtOdWxsIG11c3QgYmUgd29y
ZC1hbGlnbmVkIHRvIGF2b2lkIGNyYXNoaW5nIG9uIEFSTS4gIFdlIHVzZSBhbiBhbGlnbm1lbnQg
b2YKKy8vIDggKGluc3RlYWQgb2YgNCkgYXMgYSBiaXQgb2YgZnV0dXJlLXByb29maW5nLgorI2lm
IGRlZmluZWQoX19BUk1FTF9fKQorI2RlZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KSBfX2F0
dHJpYnV0ZV9fKChhbGlnbmVkKGJ5dGVfYWxpZ25tZW50KSkpCisjZWxzZQorI2RlZmluZSBBTElH
TkFTKGJ5dGVfYWxpZ25tZW50KQorI2VuZGlmCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBB
TElHTkFTKDgpIGtOdWxsW3NpemVvZihWYWx1ZSldID0geyAwIH07Citjb25zdCB1bnNpZ25lZCBj
aGFyJiBrTnVsbFJlZiA9IGtOdWxsWzBdOworY29uc3QgVmFsdWUmIFZhbHVlOjpudWxsID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBWYWx1ZSY+KGtOdWxsUmVmKTsKK2NvbnN0IFZhbHVlJiBWYWx1
ZTo6bnVsbFJlZiA9IG51bGw7CisKK2NvbnN0IEludCBWYWx1ZTo6bWluSW50ID0gSW50KH4oVUlu
dCgtMSkgLyAyKSk7Citjb25zdCBJbnQgVmFsdWU6Om1heEludCA9IEludChVSW50KC0xKSAvIDIp
OworY29uc3QgVUludCBWYWx1ZTo6bWF4VUludCA9IFVJbnQoLTEpOworI2lmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCitjb25zdCBJbnQ2NCBWYWx1ZTo6bWluSW50NjQgPSBJbnQ2NCh+KFVJbnQ2
NCgtMSkgLyAyKSk7Citjb25zdCBJbnQ2NCBWYWx1ZTo6bWF4SW50NjQgPSBJbnQ2NChVSW50NjQo
LTEpIC8gMik7Citjb25zdCBVSW50NjQgVmFsdWU6Om1heFVJbnQ2NCA9IFVJbnQ2NCgtMSk7Cisv
LyBUaGUgY29uc3RhbnQgaXMgaGFyZC1jb2RlZCBiZWNhdXNlIHNvbWUgY29tcGlsZXIgaGF2ZSB0
cm91YmxlCisvLyBjb252ZXJ0aW5nIFZhbHVlOjptYXhVSW50NjQgdG8gYSBkb3VibGUgY29ycmVj
dGx5IChBSVgveGxDKS4KKy8vIEFzc3VtZXMgdGhhdCBVSW50NjQgaXMgYSA2NCBiaXRzIGludGVn
ZXIuCitzdGF0aWMgY29uc3QgZG91YmxlIG1heFVJbnQ2NEFzRG91YmxlID0gMTg0NDY3NDQwNzM3
MDk1NTE2MTUuMDsKKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorY29uc3QgTGFy
Z2VzdEludCBWYWx1ZTo6bWluTGFyZ2VzdEludCA9IExhcmdlc3RJbnQofihMYXJnZXN0VUludCgt
MSkgLyAyKSk7Citjb25zdCBMYXJnZXN0SW50IFZhbHVlOjptYXhMYXJnZXN0SW50ID0gTGFyZ2Vz
dEludChMYXJnZXN0VUludCgtMSkgLyAyKTsKK2NvbnN0IExhcmdlc3RVSW50IFZhbHVlOjptYXhM
YXJnZXN0VUludCA9IExhcmdlc3RVSW50KC0xKTsKKworI2lmICFkZWZpbmVkKEpTT05fVVNFX0lO
VDY0X0RPVUJMRV9DT05WRVJTSU9OKQordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+
CitzdGF0aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7Cisg
IHJldHVybiBkID49IG1pbiAmJiBkIDw9IG1heDsKK30KKyNlbHNlICAvLyBpZiAhZGVmaW5lZChK
U09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGlu
dGVnZXJUb0RvdWJsZShKc29uOjpVSW50NjQgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0
PGRvdWJsZT4oSW50NjQodmFsdWUgLyAyKSkgKiAyLjAgKyBJbnQ2NCh2YWx1ZSAmIDEpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91
YmxlKFQgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK3N0YXRpYyBpbmxpbmUgYm9vbCBJ
blJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKKyAgcmV0dXJuIGQgPj0gaW50ZWdlclRv
RG91YmxlKG1pbikgJiYgZCA8PSBpbnRlZ2VyVG9Eb3VibGUobWF4KTsKK30KKyNlbmRpZiAvLyBp
ZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKKworLyoqIER1cGxp
Y2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgdmFsdWUuCisgKiBAcGFyYW0gdmFsdWUgUG9pbnRl
ciB0byB0aGUgc3RyaW5nIHRvIGR1cGxpY2F0ZS4gTXVzdCBiZSB6ZXJvLXRlcm1pbmF0ZWQgaWYK
KyAqICAgICAgICAgICAgICBsZW5ndGggaXMgInVua25vd24iLgorICogQHBhcmFtIGxlbmd0aCBM
ZW5ndGggb2YgdGhlIHZhbHVlLiBpZiBlcXVhbHMgdG8gdW5rbm93biwgdGhlbiBpdCB3aWxsIGJl
CisgKiAgICAgICAgICAgICAgIGNvbXB1dGVkIHVzaW5nIHN0cmxlbih2YWx1ZSkuCisgKiBAcmV0
dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxpY2F0ZSBpbnN0YW5jZSBvZiBzdHJpbmcuCisgKi8KK3N0
YXRpYyBpbmxpbmUgY2hhciogZHVwbGljYXRlU3RyaW5nVmFsdWUoY29uc3QgY2hhciogdmFsdWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgp
IHsKKyAgLy8gQXZvaWQgYW4gaW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBtYWxsb2Mg
YmVsb3cgYnkgbGltaXRpbmcgbGVuZ3RoCisgIC8vIHRvIGEgc2FuZSB2YWx1ZS4KKyAgaWYgKGxl
bmd0aCA+PSAoc2l6ZV90KVZhbHVlOjptYXhJbnQpCisgICAgbGVuZ3RoID0gVmFsdWU6Om1heElu
dCAtIDE7CisKKyAgY2hhciogbmV3U3RyaW5nID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhs
ZW5ndGggKyAxKSk7CisgIGlmIChuZXdTdHJpbmcgPT0gTlVMTCkgeworICAgIHRocm93UnVudGlt
ZUVycm9yKAorICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCk6
ICIKKyAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyIik7Cisg
IH0KKyAgbWVtY3B5KG5ld1N0cmluZywgdmFsdWUsIGxlbmd0aCk7CisgIG5ld1N0cmluZ1tsZW5n
dGhdID0gMDsKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KKworLyogUmVjb3JkIHRoZSBsZW5ndGgg
YXMgYSBwcmVmaXguCisgKi8KK3N0YXRpYyBpbmxpbmUgY2hhciogZHVwbGljYXRlQW5kUHJlZml4
U3RyaW5nVmFsdWUoCisgICAgY29uc3QgY2hhciogdmFsdWUsCisgICAgdW5zaWduZWQgaW50IGxl
bmd0aCkKK3sKKyAgLy8gQXZvaWQgYW4gaW50ZWdlciBvdmVyZmxvdyBpbiB0aGUgY2FsbCB0byBt
YWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3RoCisgIC8vIHRvIGEgc2FuZSB2YWx1ZS4KKyAg
SlNPTl9BU1NFUlRfTUVTU0FHRShsZW5ndGggPD0gKHVuc2lnbmVkKVZhbHVlOjptYXhJbnQgLSBz
aXplb2YodW5zaWduZWQpIC0gMVUsCisgICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZh
bHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpOiAiCisgICAgICAgICAgICAgICAg
ICAgICAgImxlbmd0aCB0b28gYmlnIGZvciBwcmVmaXhpbmciKTsKKyAgdW5zaWduZWQgYWN0dWFs
TGVuZ3RoID0gbGVuZ3RoICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNpemVvZih1bnNpZ25lZCkp
ICsgMVU7CisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoYWN0
dWFsTGVuZ3RoKSk7CisgIGlmIChuZXdTdHJpbmcgPT0gMCkgeworICAgIHRocm93UnVudGltZUVy
cm9yKAorICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1Zh
bHVlKCk6ICIKKyAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVy
Iik7CisgIH0KKyAgKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihuZXdTdHJpbmcpID0gbGVu
Z3RoOworICBtZW1jcHkobmV3U3RyaW5nICsgc2l6ZW9mKHVuc2lnbmVkKSwgdmFsdWUsIGxlbmd0
aCk7CisgIG5ld1N0cmluZ1thY3R1YWxMZW5ndGggLSAxVV0gPSAwOyAvLyB0byBhdm9pZCBidWZm
ZXIgb3Zlci1ydW4gYWNjaWRlbnRzIGJ5IHVzZXJzIGxhdGVyCisgIHJldHVybiBuZXdTdHJpbmc7
Cit9CitpbmxpbmUgc3RhdGljIHZvaWQgZGVjb2RlUHJlZml4ZWRTdHJpbmcoCisgICAgYm9vbCBp
c1ByZWZpeGVkLCBjaGFyIGNvbnN0KiBwcmVmaXhlZCwKKyAgICB1bnNpZ25lZCogbGVuZ3RoLCBj
aGFyIGNvbnN0KiogdmFsdWUpCit7CisgIGlmICghaXNQcmVmaXhlZCkgeworICAgICpsZW5ndGgg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKHByZWZpeGVkKSk7CisgICAgKnZhbHVlID0g
cHJlZml4ZWQ7CisgIH0gZWxzZSB7CisgICAgKmxlbmd0aCA9ICpyZWludGVycHJldF9jYXN0PHVu
c2lnbmVkIGNvbnN0Kj4ocHJlZml4ZWQpOworICAgICp2YWx1ZSA9IHByZWZpeGVkICsgc2l6ZW9m
KHVuc2lnbmVkKTsKKyAgfQorfQorLyoqIEZyZWUgdGhlIHN0cmluZyBkdXBsaWNhdGVkIGJ5IGR1
cGxpY2F0ZVN0cmluZ1ZhbHVlKCkvZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKS4KKyAq
Lworc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VTdHJpbmdWYWx1ZShjaGFyKiB2YWx1ZSkgeyBm
cmVlKHZhbHVlKTsgfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIFZhbHVlSW50ZXJuYWxzLi4uCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFM
R0FNQVRJT04pCisKKyNpbmNsdWRlICJqc29uX3ZhbHVlaXRlcmF0b3IuaW5sIgorI2VuZGlmIC8v
IGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1lc3BhY2UgSnNvbiB7CisK
K0V4Y2VwdGlvbjo6RXhjZXB0aW9uKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCisgIDogbXNnXyht
c2cpCit7fQorRXhjZXB0aW9uOjp+RXhjZXB0aW9uKCkgdGhyb3coKQore30KK2NoYXIgY29uc3Qq
IEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0IHRocm93KCkKK3sKKyAgcmV0dXJuIG1zZ18uY19zdHIo
KTsKK30KK1J1bnRpbWVFcnJvcjo6UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cp
CisgIDogRXhjZXB0aW9uKG1zZykKK3t9CitMb2dpY0Vycm9yOjpMb2dpY0Vycm9yKHN0ZDo6c3Ry
aW5nIGNvbnN0JiBtc2cpCisgIDogRXhjZXB0aW9uKG1zZykKK3t9Cit2b2lkIHRocm93UnVudGlt
ZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCit7CisgIHRocm93IFJ1bnRpbWVFcnJvciht
c2cpOworfQordm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKK3sK
KyAgdGhyb3cgTG9naWNFcnJvcihtc2cpOworfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBWYWx1ZTo6Q29tbWVudEluZm8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFsdWU6OkNvbW1lbnRJbmZvOjpDb21t
ZW50SW5mbygpIDogY29tbWVudF8oMCkge30KKworVmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVu
dEluZm8oKSB7CisgIGlmIChjb21tZW50XykKKyAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29tbWVu
dF8pOworfQorCit2b2lkIFZhbHVlOjpDb21tZW50SW5mbzo6c2V0Q29tbWVudChjb25zdCBjaGFy
KiB0ZXh0LCBzaXplX3QgbGVuKSB7CisgIGlmIChjb21tZW50XykgeworICAgIHJlbGVhc2VTdHJp
bmdWYWx1ZShjb21tZW50Xyk7CisgICAgY29tbWVudF8gPSAwOworICB9CisgIEpTT05fQVNTRVJU
KHRleHQgIT0gMCk7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0ZXh0WzBdID09ICdc
MCcgfHwgdGV4dFswXSA9PSAnLycsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnNldENvbW1lbnQo
KTogQ29tbWVudHMgbXVzdCBzdGFydCB3aXRoIC8iKTsKKyAgLy8gSXQgc2VlbXMgdGhhdCAvKiov
IHN0eWxlIGNvbW1lbnRzIGFyZSBhY2NlcHRhYmxlIGFzIHdlbGwuCisgIGNvbW1lbnRfID0gZHVw
bGljYXRlU3RyaW5nVmFsdWUodGV4dCwgbGVuKTsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWU6OkNaU3RyaW5nCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIE5vdGVzOiBwb2xpY3lfIGluZGlj
YXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBhbGxvY2F0ZWQgd2hlbgorLy8gYSBzdHJpbmcgaXMgc3Rv
cmVkLgorCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKEFycmF5SW5kZXggYWluZGV4KSA6IGNz
dHJfKDApLCBpbmRleF8oYWluZGV4KSB7fQorCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNo
YXIgY29uc3QqIHN0ciwgdW5zaWduZWQgdWxlbmd0aCwgRHVwbGljYXRpb25Qb2xpY3kgYWxsb2Nh
dGUpCisgICAgOiBjc3RyXyhzdHIpIHsKKyAgLy8gYWxsb2NhdGUgIT0gZHVwbGljYXRlCisgIHN0
b3JhZ2VfLnBvbGljeV8gPSBhbGxvY2F0ZSAmIDB4MzsKKyAgc3RvcmFnZV8ubGVuZ3RoXyA9IHVs
ZW5ndGggJiAweDNGRkZGRkZGOworfQorCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKGNvbnN0
IENaU3RyaW5nJiBvdGhlcikKKyAgICA6IGNzdHJfKG90aGVyLnN0b3JhZ2VfLnBvbGljeV8gIT0g
bm9EdXBsaWNhdGlvbiAmJiBvdGhlci5jc3RyXyAhPSAwCisgICAgICAgICAgICAgICAgPyBkdXBs
aWNhdGVTdHJpbmdWYWx1ZShvdGhlci5jc3RyXywgb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXykKKyAg
ICAgICAgICAgICAgICA6IG90aGVyLmNzdHJfKSB7CisgIHN0b3JhZ2VfLnBvbGljeV8gPSAob3Ro
ZXIuY3N0cl8KKyAgICAgICAgICAgICAgICAgPyAoc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xp
Y3k+KG90aGVyLnN0b3JhZ2VfLnBvbGljeV8pID09IG5vRHVwbGljYXRpb24KKyAgICAgICAgICAg
ICAgICAgICAgID8gbm9EdXBsaWNhdGlvbiA6IGR1cGxpY2F0ZSkKKyAgICAgICAgICAgICAgICAg
OiBzdGF0aWNfY2FzdDxEdXBsaWNhdGlvblBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9saWN5Xykp
OworICBzdG9yYWdlXy5sZW5ndGhfID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKK30KKworI2lm
IEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKENa
U3RyaW5nJiYgb3RoZXIpCisgIDogY3N0cl8ob3RoZXIuY3N0cl8pLCBpbmRleF8ob3RoZXIuaW5k
ZXhfKSB7CisgIG90aGVyLmNzdHJfID0gbnVsbHB0cjsKK30KKyNlbmRpZgorCitWYWx1ZTo6Q1pT
dHJpbmc6On5DWlN0cmluZygpIHsKKyAgaWYgKGNzdHJfICYmIHN0b3JhZ2VfLnBvbGljeV8gPT0g
ZHVwbGljYXRlKQorICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb25zdF9jYXN0PGNoYXIqPihjc3Ry
XykpOworfQorCit2b2lkIFZhbHVlOjpDWlN0cmluZzo6c3dhcChDWlN0cmluZyYgb3RoZXIpIHsK
KyAgc3RkOjpzd2FwKGNzdHJfLCBvdGhlci5jc3RyXyk7CisgIHN0ZDo6c3dhcChpbmRleF8sIG90
aGVyLmluZGV4Xyk7Cit9CisKK1ZhbHVlOjpDWlN0cmluZyYgVmFsdWU6OkNaU3RyaW5nOjpvcGVy
YXRvcj0oQ1pTdHJpbmcgb3RoZXIpIHsKKyAgc3dhcChvdGhlcik7CisgIHJldHVybiAqdGhpczsK
K30KKworYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPChjb25zdCBDWlN0cmluZyYgb3Ro
ZXIpIGNvbnN0IHsKKyAgaWYgKCFjc3RyXykgcmV0dXJuIGluZGV4XyA8IG90aGVyLmluZGV4XzsK
KyAgLy9yZXR1cm4gc3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykgPCAwOworICAvLyBBc3N1bWUg
Ym90aCBhcmUgc3RyaW5ncy4KKyAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5s
ZW5ndGhfOworICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOwor
ICB1bnNpZ25lZCBtaW5fbGVuID0gc3RkOjptaW4odGhpc19sZW4sIG90aGVyX2xlbik7CisgIGlu
dCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywgbWluX2xlbik7CisgIGlm
IChjb21wIDwgMCkgcmV0dXJuIHRydWU7CisgIGlmIChjb21wID4gMCkgcmV0dXJuIGZhbHNlOwor
ICByZXR1cm4gKHRoaXNfbGVuIDwgb3RoZXJfbGVuKTsKK30KKworYm9vbCBWYWx1ZTo6Q1pTdHJp
bmc6Om9wZXJhdG9yPT0oY29uc3QgQ1pTdHJpbmcmIG90aGVyKSBjb25zdCB7CisgIGlmICghY3N0
cl8pIHJldHVybiBpbmRleF8gPT0gb3RoZXIuaW5kZXhfOworICAvL3JldHVybiBzdHJjbXAoY3N0
cl8sIG90aGVyLmNzdHJfKSA9PSAwOworICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KKyAg
dW5zaWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5ndGhfOworICB1bnNpZ25lZCBv
dGhlcl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworICBpZiAodGhpc19sZW4gIT0gb3Ro
ZXJfbGVuKSByZXR1cm4gZmFsc2U7CisgIGludCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBv
dGhlci5jc3RyXywgdGhpc19sZW4pOworICByZXR1cm4gY29tcCA9PSAwOworfQorCitBcnJheUlu
ZGV4IFZhbHVlOjpDWlN0cmluZzo6aW5kZXgoKSBjb25zdCB7IHJldHVybiBpbmRleF87IH0KKwor
Ly9jb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmNfc3RyKCkgY29uc3QgeyByZXR1cm4gY3N0
cl87IH0KK2NvbnN0IGNoYXIqIFZhbHVlOjpDWlN0cmluZzo6ZGF0YSgpIGNvbnN0IHsgcmV0dXJu
IGNzdHJfOyB9Cit1bnNpZ25lZCBWYWx1ZTo6Q1pTdHJpbmc6Omxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0KK2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjppc1N0YXRpY1N0
cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLnBvbGljeV8gPT0gbm9EdXBsaWNhdGlvbjsg
fQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBW
YWx1ZTo6VmFsdWUKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
LyohIFxpbnRlcm5hbCBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIG11c3QgYmUg
ZXF1aXZhbGVudCB0bzoKKyAqIG1lbXNldCggdGhpcywgMCwgc2l6ZW9mKFZhbHVlKSApCisgKiBU
aGlzIG9wdGltaXphdGlvbiBpcyB1c2VkIGluIFZhbHVlSW50ZXJuYWxNYXAgZmFzdCBhbGxvY2F0
b3IuCisgKi8KK1ZhbHVlOjpWYWx1ZShWYWx1ZVR5cGUgdnR5cGUpIHsKKyAgaW5pdEJhc2ljKHZ0
eXBlKTsKKyAgc3dpdGNoICh2dHlwZSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBicmVhazsK
KyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgdmFsdWVfLmludF8gPSAw
OworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICB2YWx1ZV8ucmVhbF8gPSAwLjA7
CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgdmFsdWVfLnN0cmluZ18gPSAw
OworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6Cisg
ICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCk7CisgICAgYnJlYWs7CisgIGNhc2Ug
Ym9vbGVhblZhbHVlOgorICAgIHZhbHVlXy5ib29sXyA9IGZhbHNlOworICAgIGJyZWFrOworICBk
ZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9Cit9CisKK1ZhbHVlOjpW
YWx1ZShJbnQgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKGludFZhbHVlKTsKKyAgdmFsdWVfLmludF8g
PSB2YWx1ZTsKK30KKworVmFsdWU6OlZhbHVlKFVJbnQgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHVp
bnRWYWx1ZSk7CisgIHZhbHVlXy51aW50XyA9IHZhbHVlOworfQorI2lmIGRlZmluZWQoSlNPTl9I
QVNfSU5UNjQpCitWYWx1ZTo6VmFsdWUoSW50NjQgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKGludFZh
bHVlKTsKKyAgdmFsdWVfLmludF8gPSB2YWx1ZTsKK30KK1ZhbHVlOjpWYWx1ZShVSW50NjQgdmFs
dWUpIHsKKyAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7CisgIHZhbHVlXy51aW50XyA9IHZhbHVlOwor
fQorI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisKK1ZhbHVlOjpWYWx1ZShkb3Vi
bGUgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHJlYWxWYWx1ZSk7CisgIHZhbHVlXy5yZWFsXyA9IHZh
bHVlOworfQorCitWYWx1ZTo6VmFsdWUoY29uc3QgY2hhciogdmFsdWUpIHsKKyAgaW5pdEJhc2lj
KHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVm
aXhTdHJpbmdWYWx1ZSh2YWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbih2YWx1ZSkp
KTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IGNoYXIqIGJlZ2luVmFsdWUsIGNvbnN0IGNoYXIq
IGVuZFZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5z
dHJpbmdfID0KKyAgICAgIGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKGJlZ2luVmFsdWUs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmRWYWx1ZSAtIGJlZ2luVmFsdWUpKTsKK30KKworVmFs
dWU6OlZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5n
VmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3RyaW5nXyA9CisgICAgICBkdXBsaWNhdGVBbmRQcmVm
aXhTdHJpbmdWYWx1ZSh2YWx1ZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5s
ZW5ndGgoKSkpOworfQorCitWYWx1ZTo6VmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSkg
eworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUpOworICB2YWx1ZV8uc3RyaW5nXyA9IGNvbnN0X2Nh
c3Q8Y2hhcio+KHZhbHVlLmNfc3RyKCkpOworfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1Zh
bHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIHZhbHVlKSB7CisgIGluaXRCYXNp
YyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJl
Zml4U3RyaW5nVmFsdWUodmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZS5sZW5ndGgo
KSkpOworfQorI2VuZGlmCisKK1ZhbHVlOjpWYWx1ZShib29sIHZhbHVlKSB7CisgIGluaXRCYXNp
Yyhib29sZWFuVmFsdWUpOworICB2YWx1ZV8uYm9vbF8gPSB2YWx1ZTsKK30KKworVmFsdWU6OlZh
bHVlKFZhbHVlIGNvbnN0JiBvdGhlcikKKyAgICA6IHR5cGVfKG90aGVyLnR5cGVfKSwgYWxsb2Nh
dGVkXyhmYWxzZSkKKyAgICAgICwKKyAgICAgIGNvbW1lbnRzXyhudWxscHRyKSwgZGVmYXVsdF92
YWx1ZV8obnVsbHB0ciksIHN0YXJ0XyhvdGhlci5zdGFydF8pLCBsaW1pdF8ob3RoZXIubGltaXRf
KQoreworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZh
bHVlOgorICBjYXNlIHVpbnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVh
blZhbHVlOgorICAgIHZhbHVlXyA9IG90aGVyLnZhbHVlXzsKKyAgICBicmVhazsKKyAgY2FzZSBz
dHJpbmdWYWx1ZToKKyAgICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18gJiYgb3RoZXIuYWxsb2Nh
dGVkXykgeworICAgICAgdW5zaWduZWQgbGVuOworICAgICAgY2hhciBjb25zdCogc3RyOworICAg
ICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0
cmluZ18sCisgICAgICAgICAgJmxlbiwgJnN0cik7CisgICAgICB2YWx1ZV8uc3RyaW5nXyA9IGR1
cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHN0ciwgbGVuKTsKKyAgICAgIGFsbG9jYXRlZF8g
PSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICB2YWx1ZV8uc3RyaW5nXyA9IG90aGVyLnZhbHVl
Xy5zdHJpbmdfOworICAgICAgYWxsb2NhdGVkXyA9IGZhbHNlOworICAgIH0KKyAgICBicmVhazsK
KyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHZhbHVlXy5tYXBf
ID0gbmV3IE9iamVjdFZhbHVlcygqb3RoZXIudmFsdWVfLm1hcF8pOworICAgIGJyZWFrOworICBk
ZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9CisgIGlmIChvdGhlci5j
b21tZW50c18pIHsKKyAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21t
ZW50UGxhY2VtZW50XTsKKyAgICBmb3IgKGludCBjb21tZW50ID0gMDsgY29tbWVudCA8IG51bWJl
ck9mQ29tbWVudFBsYWNlbWVudDsgKytjb21tZW50KSB7CisgICAgICBjb25zdCBDb21tZW50SW5m
byYgb3RoZXJDb21tZW50ID0gb3RoZXIuY29tbWVudHNfW2NvbW1lbnRdOworICAgICAgaWYgKG90
aGVyQ29tbWVudC5jb21tZW50XykKKyAgICAgICAgY29tbWVudHNfW2NvbW1lbnRdLnNldENvbW1l
bnQoCisgICAgICAgICAgICBvdGhlckNvbW1lbnQuY29tbWVudF8sIHN0cmxlbihvdGhlckNvbW1l
bnQuY29tbWVudF8pKTsKKyAgICB9CisgIH0KKworICBpZiAoIG90aGVyLmRlZmF1bHRfdmFsdWVf
ICkKKyAgeworICAgICAgICAgZGVmYXVsdF92YWx1ZV8gPSBuZXcgVmFsdWUoICpvdGhlci5kZWZh
dWx0X3ZhbHVlXyApOworICB9CisKK30KKworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VT
CisvLyBNb3ZlIGNvbnN0cnVjdG9yCitWYWx1ZTo6VmFsdWUoVmFsdWUmJiBvdGhlcikgeworICBp
bml0QmFzaWMobnVsbFZhbHVlKTsKKyAgc3dhcChvdGhlcik7Cit9CisjZW5kaWYKKworVmFsdWU6
On5WYWx1ZSgpIHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2Fz
ZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNl
IGJvb2xlYW5WYWx1ZToKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICBpZiAo
YWxsb2NhdGVkXykKKyAgICAgIHJlbGVhc2VTdHJpbmdWYWx1ZSh2YWx1ZV8uc3RyaW5nXyk7Cisg
ICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBk
ZWxldGUgdmFsdWVfLm1hcF87CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NF
UlRfVU5SRUFDSEFCTEU7CisgIH0KKworICBpZiAoY29tbWVudHNfKQorICAgIGRlbGV0ZVtdIGNv
bW1lbnRzXzsKKworICBpZiAoIGRlZmF1bHRfdmFsdWVfKQorICAgICAgICAgZGVsZXRlIGRlZmF1
bHRfdmFsdWVfOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yPShWYWx1ZSBvdGhlcikgewor
ICBzd2FwKG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOworfQorCit2b2lkIFZhbHVlOjpzd2FwUGF5
bG9hZChWYWx1ZSYgb3RoZXIpIHsKKyAgVmFsdWVUeXBlIHRlbXAgPSB0eXBlXzsKKyAgdHlwZV8g
PSBvdGhlci50eXBlXzsKKyAgb3RoZXIudHlwZV8gPSB0ZW1wOworICBzdGQ6OnN3YXAodmFsdWVf
LCBvdGhlci52YWx1ZV8pOworICBpbnQgdGVtcDIgPSBhbGxvY2F0ZWRfOworICBhbGxvY2F0ZWRf
ID0gb3RoZXIuYWxsb2NhdGVkXzsKKyAgb3RoZXIuYWxsb2NhdGVkXyA9IHRlbXAyICYgMHgxOwor
fQorCit2b2lkIFZhbHVlOjpzd2FwKFZhbHVlJiBvdGhlcikgeworICBzd2FwUGF5bG9hZChvdGhl
cik7CisgIHN0ZDo6c3dhcChjb21tZW50c18sIG90aGVyLmNvbW1lbnRzXyk7CisgIHN0ZDo6c3dh
cChkZWZhdWx0X3ZhbHVlXywgb3RoZXIuZGVmYXVsdF92YWx1ZV8pOworICBzdGQ6OnN3YXAoc3Rh
cnRfLCBvdGhlci5zdGFydF8pOworICBzdGQ6OnN3YXAobGltaXRfLCBvdGhlci5saW1pdF8pOwor
fQorCitWYWx1ZVR5cGUgVmFsdWU6OnR5cGUoKSBjb25zdCB7IHJldHVybiB0eXBlXzsgfQorCitp
bnQgVmFsdWU6OmNvbXBhcmUoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7CisgIGlmICgqdGhp
cyA8IG90aGVyKQorICAgIHJldHVybiAtMTsKKyAgaWYgKCp0aGlzID4gb3RoZXIpCisgICAgcmV0
dXJuIDE7CisgIHJldHVybiAwOworfQorCitib29sIFZhbHVlOjpvcGVyYXRvcjwoY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdCB7CisgIGludCB0eXBlRGVsdGEgPSB0eXBlXyAtIG90aGVyLnR5cGVf
OworICBpZiAodHlwZURlbHRhKQorICAgIHJldHVybiB0eXBlRGVsdGEgPCAwID8gdHJ1ZSA6IGZh
bHNlOworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiBm
YWxzZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPCBvdGhlci52
YWx1ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8
IG90aGVyLnZhbHVlXy51aW50XzsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
Xy5yZWFsXyA8IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAg
cmV0dXJuIHZhbHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5ib29sXzsKKyAgY2FzZSBzdHJpbmdW
YWx1ZToKKyAgeworICAgIGlmICgodmFsdWVfLnN0cmluZ18gPT0gMCkgfHwgKG90aGVyLnZhbHVl
Xy5zdHJpbmdfID09IDApKSB7CisgICAgICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18pIHJldHVy
biB0cnVlOworICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHVuc2lnbmVkIHRo
aXNfbGVuOworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0
cjsKKyAgICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmco
dGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNf
c3RyKTsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52
YWx1ZV8uc3RyaW5nXywgJm90aGVyX2xlbiwgJm90aGVyX3N0cik7CisgICAgdW5zaWduZWQgbWlu
X2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVuLCBvdGhlcl9sZW4pOworICAgIGludCBjb21wID0gbWVt
Y21wKHRoaXNfc3RyLCBvdGhlcl9zdHIsIG1pbl9sZW4pOworICAgIGlmIChjb21wIDwgMCkgcmV0
dXJuIHRydWU7CisgICAgaWYgKGNvbXAgPiAwKSByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuICh0
aGlzX2xlbiA8IG90aGVyX2xlbik7CisgIH0KKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9i
amVjdFZhbHVlOiB7CisgICAgaW50IGRlbHRhID0gaW50KHZhbHVlXy5tYXBfLT5zaXplKCkgLSBv
dGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgICBpZiAoZGVsdGEpCisgICAgICByZXR1cm4g
ZGVsdGEgPCAwOworICAgIHJldHVybiAoKnZhbHVlXy5tYXBfKSA8ICgqb3RoZXIudmFsdWVfLm1h
cF8pOworICB9CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIH0K
KyAgcmV0dXJuIGZhbHNlOyAvLyB1bnJlYWNoYWJsZQorfQorCitib29sIFZhbHVlOjpvcGVyYXRv
cjw9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gIShvdGhlciA8ICp0aGlzKTsg
fQorCitib29sIFZhbHVlOjpvcGVyYXRvcj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyBy
ZXR1cm4gISgqdGhpcyA8IG90aGVyKTsgfQorCitib29sIFZhbHVlOjpvcGVyYXRvcj4oY29uc3Qg
VmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlciA8ICp0aGlzOyB9CisKK2Jvb2wgVmFs
dWU6Om9wZXJhdG9yPT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7CisgIC8vIGlmICggdHlw
ZV8gIT0gb3RoZXIudHlwZV8gKQorICAvLyBHQ0MgMi45NS4zIHNheXM6CisgIC8vIGF0dGVtcHQg
dG8gdGFrZSBhZGRyZXNzIG9mIGJpdC1maWVsZCBzdHJ1Y3R1cmUgbWVtYmVyIGBKc29uOjpWYWx1
ZTo6dHlwZV8nCisgIC8vIEJlYXRzIG1lLCBidXQgYSB0ZW1wIHNvbHZlcyB0aGUgcHJvYmxlbS4K
KyAgaW50IHRlbXAgPSBvdGhlci50eXBlXzsKKyAgaWYgKHR5cGVfICE9IHRlbXApCisgICAgcmV0
dXJuIGZhbHNlOworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJl
dHVybiB0cnVlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA9PSBv
dGhlci52YWx1ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51
aW50XyA9PSBvdGhlci52YWx1ZV8udWludF87CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVy
biB2YWx1ZV8ucmVhbF8gPT0gb3RoZXIudmFsdWVfLnJlYWxfOworICBjYXNlIGJvb2xlYW5WYWx1
ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID09IG90aGVyLnZhbHVlXy5ib29sXzsKKyAgY2Fz
ZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIGlmICgodmFsdWVfLnN0cmluZ18gPT0gMCkgfHwgKG90
aGVyLnZhbHVlXy5zdHJpbmdfID09IDApKSB7CisgICAgICByZXR1cm4gKHZhbHVlXy5zdHJpbmdf
ID09IG90aGVyLnZhbHVlXy5zdHJpbmdfKTsKKyAgICB9CisgICAgdW5zaWduZWQgdGhpc19sZW47
CisgICAgdW5zaWduZWQgb3RoZXJfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICAg
IGNoYXIgY29uc3QqIG90aGVyX3N0cjsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5h
bGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOwor
ICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5z
dHJpbmdfLCAmb3RoZXJfbGVuLCAmb3RoZXJfc3RyKTsKKyAgICBpZiAodGhpc19sZW4gIT0gb3Ro
ZXJfbGVuKSByZXR1cm4gZmFsc2U7CisgICAgaW50IGNvbXAgPSBtZW1jbXAodGhpc19zdHIsIG90
aGVyX3N0ciwgdGhpc19sZW4pOworICAgIHJldHVybiBjb21wID09IDA7CisgIH0KKyAgY2FzZSBh
cnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8ubWFwXy0+
c2l6ZSgpID09IG90aGVyLnZhbHVlXy5tYXBfLT5zaXplKCkgJiYKKyAgICAgICAgICAgKCp2YWx1
ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1ZV8ubWFwXyk7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9B
U1NFUlRfVU5SRUFDSEFCTEU7CisgIH0KKyAgcmV0dXJuIGZhbHNlOyAvLyB1bnJlYWNoYWJsZQor
fQorCitib29sIFZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyBy
ZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworY29uc3QgY2hhciogVmFsdWU6OmFzQ1N0cmlu
ZygpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBzdHJpbmdWYWx1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1
aXJlcyBzdHJpbmdWYWx1ZSIpOworICBpZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0dXJuIDA7
CisgIHVuc2lnbmVkIHRoaXNfbGVuOworICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgZGVjb2Rl
UHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0
aGlzX2xlbiwgJnRoaXNfc3RyKTsKKyAgcmV0dXJuIHRoaXNfc3RyOworfQorCitib29sIFZhbHVl
OjpnZXRTdHJpbmcoY2hhciBjb25zdCoqIHN0ciwgY2hhciBjb25zdCoqIGNlbmQpIGNvbnN0IHsK
KyAgaWYgKHR5cGVfICE9IHN0cmluZ1ZhbHVlKSByZXR1cm4gZmFsc2U7CisgIGlmICh2YWx1ZV8u
c3RyaW5nXyA9PSAwKSByZXR1cm4gZmFsc2U7CisgIHVuc2lnbmVkIGxlbmd0aDsKKyAgZGVjb2Rl
UHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZs
ZW5ndGgsIHN0cik7CisgICpjZW5kID0gKnN0ciArIGxlbmd0aDsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK3N0ZDo6c3RyaW5nIFZhbHVlOjphc1N0cmluZygpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBl
XykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gIiI7CisgIGNhc2Ugc3RyaW5nVmFs
dWU6CisgIHsKKyAgICBpZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0dXJuICIiOworICAgIHVu
c2lnbmVkIHRoaXNfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICAgIGRlY29kZVBy
ZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhp
c19sZW4sICZ0aGlzX3N0cik7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHRoaXNfc3RyLCB0aGlz
X2xlbik7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29s
XyA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
VG9TdHJpbmcodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVUb1N0cmluZyh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4g
dmFsdWVUb1N0cmluZyh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBk
ZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5h
c1N0cmluZygpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAg
fQorfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK0NwcFRMOjpDb25zdFN0cmluZyBWYWx1ZTo6
YXNDb25zdFN0cmluZygpIGNvbnN0IHsKKyAgdW5zaWduZWQgbGVuOworICBjaGFyIGNvbnN0KiBz
dHI7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKGFsbG9jYXRlZF8sIHZhbHVlXy5zdHJpbmdfLAor
ICAgICAgJmxlbiwgJnN0cik7CisgIHJldHVybiBDcHBUTDo6Q29uc3RTdHJpbmcoc3RyLCBsZW4p
OworfQorI2VuZGlmCisKK1ZhbHVlOjpJbnQgVmFsdWU6OmFzSW50KCkgY29uc3QgeworICBzd2l0
Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShp
c0ludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2
YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0Uo
aXNJbnQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50
KHZhbHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NB
R0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludCwgbWF4SW50KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJkb3VibGUgb3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFs
dWVfLnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9v
bGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoK
KyAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBk
ZWZhdWx0X3ZhbHVlXy0+YXNJbnQoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgfQorfQorCitWYWx1ZTo6VUludCBWYWx1ZTo6YXNVSW50KCkgY29uc3Qgewor
ICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVT
U0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1
cm4gVUludCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAgIEpTT05fQVNTRVJU
X01FU1NBR0UoaXNVSW50KCksICJMYXJnZXN0VUludCBvdXQgb2YgVUludCByYW5nZSIpOworICAg
IHJldHVybiBVSW50KHZhbHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05f
QVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2YgVUludCByYW5nZSIpOworICAgIHJldHVy
biBVSW50KHZhbHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOwor
ICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7Cisg
IGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzVUludCgpOworICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiAwdTsKKyAgfQorfQorCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2
NCkKKworVmFsdWU6OkludDY0IFZhbHVlOjphc0ludDY0KCkgY29uc3QgeworICBzd2l0Y2ggKHR5
cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIEludDY0KHZhbHVlXy5pbnRfKTsK
KyAgY2FzZSB1aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludDY0KCksICJM
YXJnZXN0VUludCBvdXQgb2YgSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50NjQodmFsdWVf
LnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJh
bmdlKHZhbHVlXy5yZWFsXywgbWluSW50NjQsIG1heEludDY0KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlIik7CisgICAgcmV0dXJuIEludDY0KHZh
bHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJv
b2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6
CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZGVmYXVsdF92YWx1ZV8tPmFzSW50NjQoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICByZXR1cm4gMGw7CisgIH0KK30KKworVmFsdWU6OlVJbnQ2NCBWYWx1ZTo6YXNVSW50NjQoKSBj
b25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKGlzVUludDY0KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50NjQgcmFuZ2Ui
KTsKKyAgICByZXR1cm4gVUludDY0KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6Cisg
ICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBK
U09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50NjQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2YgVUludDY0IHJhbmdlIik7Cisg
ICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICBy
ZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/
IDEgOiAwOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1VJbnQ2NCgpOworICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwdWw7CisgIH0KK30KKyNlbmRpZiAvLyBpZiBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitMYXJnZXN0SW50IFZhbHVlOjphc0xhcmdlc3RJbnQo
KSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorICByZXR1cm4gYXNJbnQoKTsK
KyNlbHNlCisgIHJldHVybiBhc0ludDY0KCk7CisjZW5kaWYKK30KKworTGFyZ2VzdFVJbnQgVmFs
dWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQor
ICByZXR1cm4gYXNVSW50KCk7CisjZWxzZQorICByZXR1cm4gYXNVSW50NjQoKTsKKyNlbmRpZgor
fQorCitkb3VibGUgVmFsdWU6OmFzRG91YmxlKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7
CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVf
LmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9E
T1VCTEVfQ09OVkVSU0lPTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZV8u
dWludF8pOworI2Vsc2UgIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05W
RVJTSU9OKQorICAgIHJldHVybiBpbnRlZ2VyVG9Eb3VibGUodmFsdWVfLnVpbnRfKTsKKyNlbmRp
ZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAgY2Fz
ZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXzsKKyAgY2FzZSBudWxsVmFsdWU6
CisgICAgcmV0dXJuIDAuMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
Xy5ib29sXyA/IDEuMCA6IDAuMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVmYXVsdF92
YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNEb3VibGUo
KTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gMC4wOworICB9Cit9CisK
K2Zsb2F0IFZhbHVlOjphc0Zsb2F0KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNh
c2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8uaW50Xyk7
CisgIGNhc2UgdWludFZhbHVlOgorI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9D
T05WRVJTSU9OKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLnVpbnRfKTsK
KyNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikK
KyAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKHZhbHVlXy51aW50Xyk7CisjZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgIGNhc2UgcmVhbFZh
bHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLnJlYWxfKTsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDAuMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAg
cmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMGYgOiAwLjBmOworICBkZWZhdWx0OgorICAgICAgIGlm
ICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8t
PmFzRmxvYXQoKTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiAwLjBmOworICB9
Cit9CisKK2Jvb2wgVmFsdWU6OmFzQm9vbCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgewor
ICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfOworICBjYXNlIG51
bGxWYWx1ZToKKyAgICByZXR1cm4gZmFsc2U7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy5pbnRfID8gdHJ1ZSA6IGZhbHNlOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6IGZhbHNlOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICAv
LyBUaGlzIGlzIGtpbmQgb2Ygc3RyYW5nZS4gTm90IHJlY29tbWVuZGVkLgorICAgIHJldHVybiAo
dmFsdWVfLnJlYWxfICE9IDAuMCkgPyB0cnVlIDogZmFsc2U7CisgIGRlZmF1bHQ6CisgICAgICAg
aWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVl
Xy0+YXNCb29sKCk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
IH0KK30KKworYm9vbCBWYWx1ZTo6aXNDb252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikgY29u
c3QgeworICBzd2l0Y2ggKG90aGVyKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAo
aXNOdW1lcmljKCkgJiYgYXNEb3VibGUoKSA9PSAwLjApIHx8CisgICAgICAgICAgICh0eXBlXyA9
PSBib29sZWFuVmFsdWUgJiYgdmFsdWVfLmJvb2xfID09IGZhbHNlKSB8fAorICAgICAgICAgICAo
dHlwZV8gPT0gc3RyaW5nVmFsdWUgJiYgYXNTdHJpbmcoKSA9PSAiIikgfHwKKyAgICAgICAgICAg
KHR5cGVfID09IGFycmF5VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAwKSB8fAorICAg
ICAgICAgICAodHlwZV8gPT0gb2JqZWN0VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUoKSA9PSAw
KSB8fAorICAgICAgICAgICB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2UgaW50VmFsdWU6Cisg
ICAgcmV0dXJuIGlzSW50KCkgfHwKKyAgICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1ZSAmJiBJ
blJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpKSB8fAorICAgICAgICAgICB0eXBl
XyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIHVpbnRWYWx1
ZToKKyAgICByZXR1cm4gaXNVSW50KCkgfHwKKyAgICAgICAgICAgKHR5cGVfID09IHJlYWxWYWx1
ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludCkpIHx8CisgICAgICAgICAgIHR5
cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2UgcmVhbFZh
bHVlOgorICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwg
dHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gaXNO
dW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsK
KyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0g
Ym9vbGVhblZhbHVlIHx8IHR5cGVfID09IHN0cmluZ1ZhbHVlIHx8CisgICAgICAgICAgIHR5cGVf
ID09IG51bGxWYWx1ZTsKKyAgY2FzZSBhcnJheVZhbHVlOgorICAgIHJldHVybiB0eXBlXyA9PSBh
cnJheVZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAg
ICByZXR1cm4gdHlwZV8gPT0gb2JqZWN0VmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICB9
CisgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vLyBO
dW1iZXIgb2YgdmFsdWVzIGluIGFycmF5IG9yIG9iamVjdAorQXJyYXlJbmRleCBWYWx1ZTo6c2l6
ZSgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2Fz
ZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNl
IGJvb2xlYW5WYWx1ZToKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2Fz
ZSBhcnJheVZhbHVlOiAvLyBzaXplIG9mIHRoZSBhcnJheSBpcyBoaWdoZXN0IGluZGV4ICsgMQor
ICAgIGlmICghdmFsdWVfLm1hcF8tPmVtcHR5KCkpIHsKKyAgICAgIE9iamVjdFZhbHVlczo6Y29u
c3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVfLm1hcF8tPmVuZCgpOworICAgICAgLS1pdExhc3Q7
CisgICAgICByZXR1cm4gKCppdExhc3QpLmZpcnN0LmluZGV4KCkgKyAxOworICAgIH0KKyAgICBy
ZXR1cm4gMDsKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4gQXJyYXlJbmRleCh2YWx1
ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgfQorICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgcmV0
dXJuIDA7IC8vIHVucmVhY2hhYmxlOworfQorCitib29sIFZhbHVlOjplbXB0eSgpIGNvbnN0IHsK
KyAgaWYgKGlzTnVsbCgpIHx8IGlzQXJyYXkoKSB8fCBpc09iamVjdCgpKQorICAgIHJldHVybiBz
aXplKCkgPT0gMHU7CisgIGVsc2UKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6
Om9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIGlzTnVsbCgpOyB9CisKK3ZvaWQgVmFsdWU6OmNs
ZWFyKCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBl
XyA9PSBhcnJheVZhbHVlIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfID09IG9i
amVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6Y2xlYXIo
KTogcmVxdWlyZXMgY29tcGxleCB2YWx1ZSIpOworICBzdGFydF8gPSAwOworICBsaW1pdF8gPSAw
OworICBkZWxldGUgZGVmYXVsdF92YWx1ZV87CisgIGRlZmF1bHRfdmFsdWVfID0gbnVsbHB0cjsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFs
dWU6CisgICAgdmFsdWVfLm1hcF8tPmNsZWFyKCk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6Cisg
ICAgYnJlYWs7CisgIH0KK30KKwordm9pZCBWYWx1ZTo6cmVzaXplKEFycmF5SW5kZXggbmV3U2l6
ZSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9
PSBhcnJheVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVz
aXplKCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkK
KyAgICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOworICBBcnJheUluZGV4IG9sZFNpemUgPSBz
aXplKCk7CisgIGlmIChuZXdTaXplID09IDApCisgICAgY2xlYXIoKTsKKyAgZWxzZSBpZiAobmV3
U2l6ZSA+IG9sZFNpemUpCisgICAgKCp0aGlzKVtuZXdTaXplIC0gMV07CisgIGVsc2UgeworICAg
IGZvciAoQXJyYXlJbmRleCBpbmRleCA9IG5ld1NpemU7IGluZGV4IDwgb2xkU2l6ZTsgKytpbmRl
eCkgeworICAgICAgdmFsdWVfLm1hcF8tPmVyYXNlKGluZGV4KTsKKyAgICB9CisgICAgYXNzZXJ0
KHNpemUoKSA9PSBuZXdTaXplKTsKKyAgfQorfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10o
QXJyYXlJbmRleCBpbmRleCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZV8g
PT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYg
KHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOworICBD
WlN0cmluZyBrZXkoaW5kZXgpOworICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVf
Lm1hcF8tPmxvd2VyX2JvdW5kKGtleSk7CisgIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkg
JiYgKCppdCkuZmlyc3QgPT0ga2V5KQorICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisKKyAgT2Jq
ZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShrZXksIG51bGxSZWYpOworICBpdCA9
IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIHJldHVybiAoKml0KS5z
ZWNvbmQ7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIHsKKyAgSlNP
Tl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIGluZGV4ID49IDAsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6Om9wZXJhdG9yW10oaW50IGluZGV4KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7Cisg
IHJldHVybiAoKnRoaXMpW0FycmF5SW5kZXgoaW5kZXgpXTsKK30KKworY29uc3QgVmFsdWUmIFZh
bHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRf
TUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVl
LAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXgpY29uc3Q6IHJl
cXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICByZXR1
cm4gbnVsbFJlZjsKKyAgQ1pTdHJpbmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjpjb25z
dF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7CisgIGlmIChpdCA9PSB2YWx1
ZV8ubWFwXy0+ZW5kKCkpCisgICAgcmV0dXJuIG51bGxSZWY7CisgIHJldHVybiAoKml0KS5zZWNv
bmQ7Cit9CisKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0
IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIGluZGV4ID49IDAsCisgICAgICAiaW4g
SnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSBjb25zdDogaW5kZXggY2Fubm90IGJl
IG5lZ2F0aXZlIik7CisgIHJldHVybiAoKnRoaXMpW0FycmF5SW5kZXgoaW5kZXgpXTsKK30KKwor
dm9pZCBWYWx1ZTo6aW5pdEJhc2ljKFZhbHVlVHlwZSB2dHlwZSwgYm9vbCBhbGxvY2F0ZWQpIHsK
KyAgdHlwZV8gPSB2dHlwZTsKKyAgYWxsb2NhdGVkXyA9IGFsbG9jYXRlZDsKKyAgY29tbWVudHNf
ID0gMDsKKyAgc3RhcnRfID0gMDsKKyAgbGltaXRfID0gMDsKKyAgZGVmYXVsdF92YWx1ZV8gPSBu
dWxscHRyOworfQorCisvLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBh
IG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorLy8gQHByZSBUeXBlIG9mICcqdGhp
cycgaXMgb2JqZWN0IG9yIG51bGwuCisvLyBAcGFyYW0ga2V5IGlzIG51bGwtdGVybWluYXRlZC4K
K1ZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShjb25zdCBjaGFyKiBrZXkpIHsKKyAgSlNP
Tl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBv
YmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSgpOiBy
ZXF1aXJlcyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgICp0
aGlzID0gVmFsdWUob2JqZWN0VmFsdWUpOworICBDWlN0cmluZyBhY3R1YWxLZXkoCisgICAgICBr
ZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdHJsZW4oa2V5KSksIENaU3RyaW5nOjpub0R1cGxp
Y2F0aW9uKTsgLy8gTk9URSEKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5t
YXBfLT5sb3dlcl9ib3VuZChhY3R1YWxLZXkpOworICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVu
ZCgpICYmICgqaXQpLmZpcnN0ID09IGFjdHVhbEtleSkKKyAgICByZXR1cm4gKCppdCkuc2Vjb25k
OworCisgIE9iamVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBu
dWxsUmVmKTsKKyAgaXQgPSB2YWx1ZV8ubWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOwor
ICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5zZWNvbmQ7CisgIHJldHVybiB2YWx1ZTsKK30KKworLy8g
QHBhcmFtIGtleSBpcyBub3QgbnVsbC10ZXJtaW5hdGVkLgorVmFsdWUmIFZhbHVlOjpyZXNvbHZl
UmVmZXJlbmNlKGNoYXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkKK3sKKyAgSlNPTl9B
U1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShrZXksIGVu
ZCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisg
ICAgKnRoaXMgPSBWYWx1ZShvYmplY3RWYWx1ZSk7CisgIENaU3RyaW5nIGFjdHVhbEtleSgKKyAg
ICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6OmR1cGxp
Y2F0ZU9uQ29weSk7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+
bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsKKyAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAm
JiAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkpCisgICAgcmV0dXJuICgqaXQpLnNlY29uZDsKKwor
ICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKGFjdHVhbEtleSwgbnVsbFJl
Zik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKKyAgVmFs
dWUmIHZhbHVlID0gKCppdCkuc2Vjb25kOworICByZXR1cm4gdmFsdWU7Cit9CisKK1ZhbHVlIFZh
bHVlOjpnZXQoQXJyYXlJbmRleCBpbmRleCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29u
c3QgeworICBjb25zdCBWYWx1ZSogdmFsdWUgPSAmKCgqdGhpcylbaW5kZXhdKTsKKyAgaWYgKCB2
YWx1ZSA9PSAmbnVsbFJlZiApCisgIHsKKyAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cisg
IH0KKyAgZWxzZQorICB7CisgICAgICAgICBWYWx1ZSByZXN1bHQgPSAqdmFsdWU7CisgICAgICAg
ICByZXN1bHQuZGVmYXVsdF92YWx1ZV8gPSBuZXcgVmFsdWUoIGRlZmF1bHRWYWx1ZSApOworICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorfQorCitib29sIFZhbHVlOjppc1ZhbGlkSW5kZXgo
QXJyYXlJbmRleCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBzaXplKCk7IH0KKworVmFs
dWUgY29uc3QqIFZhbHVlOjpmaW5kKGNoYXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkg
Y29uc3QKK3sKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1
ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6ZmluZChr
ZXksIGVuZCwgZm91bmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUiKTsKKyAg
aWYgKHR5cGVfID09IG51bGxWYWx1ZSkgcmV0dXJuIE5VTEw7CisgIENaU3RyaW5nIGFjdHVhbEtl
eShrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxp
Y2F0aW9uKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBf
LT5maW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpIHJldHVy
biBOVUxMOworICByZXR1cm4gJigqaXQpLnNlY29uZDsKK30KK2NvbnN0IFZhbHVlJiBWYWx1ZTo6
b3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiBmb3Vu
ZCA9IGZpbmQoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSk7CisgIGlmICghZm91bmQpIHJldHVybiBu
dWxsUmVmOworICByZXR1cm4gKmZvdW5kOworfQorVmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRv
cltdKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiBmb3Vu
ZCA9IGZpbmQoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7CisgIGlmICgh
Zm91bmQpIHJldHVybiBudWxsUmVmOworICByZXR1cm4gKmZvdW5kOworfQorCitWYWx1ZSYgVmFs
dWU6Om9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KSB7CisgIHJldHVybiByZXNvbHZlUmVmZXJl
bmNlKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9y
W10oY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShr
ZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKK30KKworVmFsdWUmIFZhbHVl
OjpvcGVyYXRvcltdKGNvbnN0IFN0YXRpY1N0cmluZyYga2V5KSB7CisgIHJldHVybiByZXNvbHZl
UmVmZXJlbmNlKGtleS5jX3N0cigpKTsKK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitWYWx1
ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIHsKKyAg
cmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Cit9
CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJhdG9yW10oQ3BwVEw6OkNvbnN0U3RyaW5nIGNvbnN0
JiBrZXkpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmNfc3RyKCks
IGtleS5lbmRfY19zdHIoKSk7CisgIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOworICByZXR1
cm4gKmZvdW5kOworfQorI2VuZGlmCisKK1ZhbHVlJiBWYWx1ZTo6YXBwZW5kKGNvbnN0IFZhbHVl
JiB2YWx1ZSkgeyByZXR1cm4gKCp0aGlzKVtzaXplKCldID0gdmFsdWU7IH0KKworVmFsdWUgVmFs
dWU6OmdldChjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQsIFZhbHVlIGNvbnN0JiBk
ZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBj
ZW5kKTsKKyAgaWYgKCAhZm91bmQgKQorICB7CisgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OworICB9CisgIGVsc2UKKyAgeworICAgICAgICAgVmFsdWUgcmVzdWx0ID0gKmZvdW5kOworICAg
ICAgICAgcmVzdWx0LmRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCBkZWZhdWx0VmFsdWUgKTsK
KyAgICAgICAgIHJldHVybiByZXN1bHQ7CisgIH0KK30KK1ZhbHVlIFZhbHVlOjpnZXQoY2hhciBj
b25zdCoga2V5LCBWYWx1ZSBjb25zdCYgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICByZXR1cm4g
Z2V0KGtleSwga2V5ICsgc3RybGVuKGtleSksIGRlZmF1bHRWYWx1ZSk7Cit9CitWYWx1ZSBWYWx1
ZTo6Z2V0KHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUp
IGNvbnN0Cit7CisgIHJldHVybiBnZXQoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5n
dGgoKSwgZGVmYXVsdFZhbHVlKTsKK30KKworCitib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29u
c3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiBjZW5kLCBWYWx1ZSogcmVtb3ZlZCkKK3sKKyAgaWYg
KHR5cGVfICE9IG9iamVjdFZhbHVlKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIENaU3Ry
aW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3Ry
aW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVl
Xy5tYXBfLT5maW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkp
CisgICAgcmV0dXJuIGZhbHNlOworICAqcmVtb3ZlZCA9IGl0LT5zZWNvbmQ7CisgIHZhbHVlXy5t
YXBfLT5lcmFzZShpdCk7CisgIHJldHVybiB0cnVlOworfQorYm9vbCBWYWx1ZTo6cmVtb3ZlTWVt
YmVyKGNvbnN0IGNoYXIqIGtleSwgVmFsdWUqIHJlbW92ZWQpCit7CisgIHJldHVybiByZW1vdmVN
ZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSwgcmVtb3ZlZCk7Cit9Citib29sIFZhbHVlOjpy
ZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpCit7Cisg
IHJldHVybiByZW1vdmVNZW1iZXIoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgo
KSwgcmVtb3ZlZCk7Cit9CitWYWx1ZSBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtl
eSkKK3sKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8g
PT0gb2JqZWN0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpy
ZW1vdmVNZW1iZXIoKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51
bGxWYWx1ZSkKKyAgICByZXR1cm4gbnVsbFJlZjsKKworICBWYWx1ZSByZW1vdmVkOyAgLy8gbnVs
bAorICByZW1vdmVNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSwgJnJlbW92ZWQpOworICBy
ZXR1cm4gcmVtb3ZlZDsgLy8gc3RpbGwgbnVsbCBpZiByZW1vdmVNZW1iZXIoKSBkaWQgbm90aGlu
ZworfQorVmFsdWUgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBzdGQ6OnN0cmluZyYga2V5KQor
eworICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleS5jX3N0cigpKTsKK30KKworYm9vbCBWYWx1ZTo6
cmVtb3ZlSW5kZXgoQXJyYXlJbmRleCBpbmRleCwgVmFsdWUqIHJlbW92ZWQpIHsKKyAgaWYgKHR5
cGVfICE9IGFycmF5VmFsdWUpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ1pTdHJpbmcg
a2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5m
aW5kKGtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpIHsKKyAgICByZXR1cm4g
ZmFsc2U7CisgIH0KKyAgKnJlbW92ZWQgPSBpdC0+c2Vjb25kOworICBBcnJheUluZGV4IG9sZFNp
emUgPSBzaXplKCk7CisgIC8vIHNoaWZ0IGxlZnQgYWxsIGl0ZW1zIGxlZnQsIGludG8gdGhlIHBs
YWNlIG9mIHRoZSAicmVtb3ZlZCIKKyAgZm9yIChBcnJheUluZGV4IGkgPSBpbmRleDsgaSA8IChv
bGRTaXplIC0gMSk7ICsraSl7CisgICAgQ1pTdHJpbmcga2VleShpKTsKKyAgICAoKnZhbHVlXy5t
YXBfKVtrZWV5XSA9ICgqdGhpcylbaSArIDFdOworICB9CisgIC8vIGVyYXNlIHRoZSBsYXN0IG9u
ZSAoImxlZnRvdmVyIikKKyAgQ1pTdHJpbmcga2V5TGFzdChvbGRTaXplIC0gMSk7CisgIE9iamVj
dFZhbHVlczo6aXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5TGFzdCk7Cisg
IHZhbHVlXy5tYXBfLT5lcmFzZShpdExhc3QpOworICByZXR1cm4gdHJ1ZTsKK30KKworI2lmZGVm
IEpTT05fVVNFX0NQUFRMCitWYWx1ZSBWYWx1ZTo6Z2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmlu
ZyYga2V5LAorICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25z
dCB7CisgIHJldHVybiBnZXQoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSwgZGVmYXVsdFZh
bHVlKTsKK30KKyNlbmRpZgorCitib29sIFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXks
IGNoYXIgY29uc3QqIGNlbmQpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiB2YWx1ZSA9IGZpbmQo
a2V5LCBjZW5kKTsKKyAgcmV0dXJuIE5VTEwgIT0gdmFsdWU7Cit9Citib29sIFZhbHVlOjppc01l
bWJlcihjaGFyIGNvbnN0KiBrZXkpIGNvbnN0Cit7CisgIHJldHVybiBpc01lbWJlcihrZXksIGtl
eSArIHN0cmxlbihrZXkpKTsKK30KK2Jvb2wgVmFsdWU6OmlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNv
bnN0JiBrZXkpIGNvbnN0Cit7CisgIHJldHVybiBpc01lbWJlcihrZXkuZGF0YSgpLCBrZXkuZGF0
YSgpICsga2V5Lmxlbmd0aCgpKTsKK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitib29sIFZh
bHVlOjppc01lbWJlcihjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3QgeworICBy
ZXR1cm4gaXNNZW1iZXIoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7Cit9CisjZW5kaWYK
KworVmFsdWU6Ok1lbWJlcnMgVmFsdWU6OmdldE1lbWJlck5hbWVzKCkgY29uc3QgeworICBKU09O
X0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9i
amVjdFZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpnZXRNZW1iZXJOYW1lcygpLCB2YWx1
ZSBtdXN0IGJlIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAg
cmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7CisgIE1lbWJlcnMgbWVtYmVyczsKKyAgbWVtYmVycy5y
ZXNlcnZlKHZhbHVlXy5tYXBfLT5zaXplKCkpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gdmFsdWVfLm1hcF8tPmJlZ2luKCk7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRl
cmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFwXy0+ZW5kKCk7CisgIGZvciAoOyBpdCAhPSBpdEVuZDsg
KytpdCkgeworICAgIG1lbWJlcnMucHVzaF9iYWNrKHN0ZDo6c3RyaW5nKCgqaXQpLmZpcnN0LmRh
dGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKml0KS5maXJzdC5sZW5n
dGgoKSkpOworICB9CisgIHJldHVybiBtZW1iZXJzOworfQorLy8KKy8vIyBpZmRlZiBKU09OX1VT
RV9DUFBUTAorLy8gRW51bU1lbWJlck5hbWVzCisvLyBWYWx1ZTo6ZW51bU1lbWJlck5hbWVzKCkg
Y29uc3QKKy8veworLy8gICBpZiAoIHR5cGVfID09IG9iamVjdFZhbHVlICkKKy8vICAgeworLy8g
ICAgICByZXR1cm4gQ3BwVEw6OkVudW06OmFueSggIENwcFRMOjpFbnVtOjp0cmFuc2Zvcm0oCisv
LyAgICAgICAgIENwcFRMOjpFbnVtOjprZXlzKCAqKHZhbHVlXy5tYXBfKSwgQ3BwVEw6OlR5cGU8
Y29uc3QgQ1pTdHJpbmcgJj4oKSApLAorLy8gICAgICAgICBNZW1iZXJOYW1lc1RyYW5zZm9ybSgp
ICkgKTsKKy8vICAgfQorLy8gICByZXR1cm4gRW51bU1lbWJlck5hbWVzKCk7CisvL30KKy8vCisv
LworLy8gRW51bVZhbHVlcworLy8gVmFsdWU6OmVudW1WYWx1ZXMoKSBjb25zdAorLy97CisvLyAg
IGlmICggdHlwZV8gPT0gb2JqZWN0VmFsdWUgIHx8ICB0eXBlXyA9PSBhcnJheVZhbHVlICkKKy8v
ICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnlWYWx1ZXMoICoodmFsdWVfLm1hcF8pLAorLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3BwVEw6OlR5cGU8Y29uc3QgVmFs
dWUgJj4oKSApOworLy8gICByZXR1cm4gRW51bVZhbHVlcygpOworLy99CisvLworLy8jIGVuZGlm
CisKK3N0YXRpYyBib29sIElzSW50ZWdyYWwoZG91YmxlIGQpIHsKKyAgZG91YmxlIGludGVncmFs
X3BhcnQ7CisgIHJldHVybiBtb2RmKGQsICZpbnRlZ3JhbF9wYXJ0KSA9PSAwLjA7Cit9CisKK2Jv
b2wgVmFsdWU6OmlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IG51bGxWYWx1ZTsgfQor
Citib29sIFZhbHVlOjppc0Jvb2woKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBib29sZWFuVmFs
dWU7IH0KKworYm9vbCBWYWx1ZTo6aXNJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsK
KyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gbWluSW50ICYmIHZh
bHVlXy5pbnRfIDw9IG1heEludDsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
Xy51aW50XyA8PSBVSW50KG1heEludCk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2
YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYmIHZhbHVlXy5yZWFsXyA8PSBtYXhJbnQgJiYKKyAgICAg
ICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOwor
ICB9CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNVSW50KCkgY29uc3Qgewor
ICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5p
bnRfID49IDAgJiYgTGFyZ2VzdFVJbnQodmFsdWVfLmludF8pIDw9IExhcmdlc3RVSW50KG1heFVJ
bnQpOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IG1heFVJ
bnQ7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJiB2
YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAmJgorICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5y
ZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFZhbHVlOjppc0ludDY0KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdHJ1
ZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50NjQo
bWF4SW50NjQpOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICAvLyBOb3RlIHRoYXQgbWF4SW50NjQg
KD0gMl42MyAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQorICAgIC8vIGRv
dWJsZSwgc28gZG91YmxlKG1heEludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42My4gVGhl
cmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkgbGVzcyB0
aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IGRvdWJsZShtaW5JbnQ2
NCkgJiYKKyAgICAgICAgICAgdmFsdWVfLnJlYWxfIDwgZG91YmxlKG1heEludDY0KSAmJiBJc0lu
dGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyNlbmRp
ZiAvLyBKU09OX0hBU19JTlQ2NAorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6Omlz
VUludDY0KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIHN3aXRjaCAo
dHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMDsK
KyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNhc2UgcmVhbFZhbHVlOgor
ICAgIC8vIE5vdGUgdGhhdCBtYXhVSW50NjQgKD0gMl42NCAtIDEpIGlzIG5vdCBleGFjdGx5IHJl
cHJlc2VudGFibGUgYXMgYQorICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heFVJbnQ2NCkgd2ls
bCBiZSByb3VuZGVkIHVwIHRvIDJeNjQuIFRoZXJlZm9yZSB3ZQorICAgIC8vIHJlcXVpcmUgdGhl
IHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgbGltaXQuCisgICAgcmV0dXJuIHZh
bHVlXy5yZWFsXyA+PSAwICYmIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2NEFzRG91YmxlICYmCisg
ICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVh
azsKKyAgfQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0CisgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBWYWx1ZTo6aXNJbnRlZ3JhbCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQorICByZXR1cm4gaXNJbnQ2NCgpIHx8IGlzVUludDY0KCk7CisjZWxzZQorICByZXR1cm4g
aXNJbnQoKSB8fCBpc1VJbnQoKTsKKyNlbmRpZgorfQorCitib29sIFZhbHVlOjppc0RvdWJsZSgp
IGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IHJlYWxWYWx1ZSB8fCBpc0ludGVncmFsKCk7IH0KKwor
Ym9vbCBWYWx1ZTo6aXNOdW1lcmljKCkgY29uc3QgeyByZXR1cm4gaXNJbnRlZ3JhbCgpIHx8IGlz
RG91YmxlKCk7IH0KKworYm9vbCBWYWx1ZTo6aXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiB0eXBl
XyA9PSBzdHJpbmdWYWx1ZTsgfQorCitib29sIFZhbHVlOjppc0FycmF5KCkgY29uc3QgeyByZXR1
cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsgfQorCitib29sIFZhbHVlOjppc09iamVjdCgpIGNvbnN0
IHsgcmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlOyB9CisKK3ZvaWQgVmFsdWU6OnNldENvbW1l
bnQoY29uc3QgY2hhciogY29tbWVudCwgc2l6ZV90IGxlbiwgQ29tbWVudFBsYWNlbWVudCBwbGFj
ZW1lbnQpIHsKKyAgaWYgKCFjb21tZW50c18pCisgICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJ
bmZvW251bWJlck9mQ29tbWVudFBsYWNlbWVudF07CisgIGlmICgobGVuID4gMCkgJiYgKGNvbW1l
bnRbbGVuLTFdID09ICdcbicpKSB7CisgICAgLy8gQWx3YXlzIGRpc2NhcmQgdHJhaWxpbmcgbmV3
bGluZSwgdG8gYWlkIGluZGVudGF0aW9uLgorICAgIGxlbiAtPSAxOworICB9CisgIGNvbW1lbnRz
X1twbGFjZW1lbnRdLnNldENvbW1lbnQoY29tbWVudCwgbGVuKTsKK30KKwordm9pZCBWYWx1ZTo6
c2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVu
dCkgeworICBzZXRDb21tZW50KGNvbW1lbnQsIHN0cmxlbihjb21tZW50KSwgcGxhY2VtZW50KTsK
K30KKwordm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCwg
Q29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgc2V0Q29tbWVudChjb21tZW50LmNfc3Ry
KCksIGNvbW1lbnQubGVuZ3RoKCksIHBsYWNlbWVudCk7Cit9CisKK2Jvb2wgVmFsdWU6Omhhc0Nv
bW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0IHsKKyAgcmV0dXJuIGNvbW1l
bnRzXyAhPSAwICYmIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfICE9IDA7Cit9CisKK3N0
ZDo6c3RyaW5nIFZhbHVlOjpnZXRDb21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBj
b25zdCB7CisgIGlmIChoYXNDb21tZW50KHBsYWNlbWVudCkpCisgICAgcmV0dXJuIGNvbW1lbnRz
X1twbGFjZW1lbnRdLmNvbW1lbnRfOworICByZXR1cm4gIiI7Cit9CisKK3ZvaWQgVmFsdWU6OnNl
dE9mZnNldFN0YXJ0KHNpemVfdCBzdGFydCkgeyBzdGFydF8gPSBzdGFydDsgfQorCit2b2lkIFZh
bHVlOjpzZXRPZmZzZXRMaW1pdChzaXplX3QgbGltaXQpIHsgbGltaXRfID0gbGltaXQ7IH0KKwor
c2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0XzsgfQor
CitzaXplX3QgVmFsdWU6OmdldE9mZnNldExpbWl0KCkgY29uc3QgeyByZXR1cm4gbGltaXRfOyB9
CisKK3N0ZDo6c3RyaW5nIFZhbHVlOjp0b1N0eWxlZFN0cmluZygpIGNvbnN0IHsKKyAgU3R5bGVk
V3JpdGVyIHdyaXRlcjsKKyAgcmV0dXJuIHdyaXRlci53cml0ZSgqdGhpcyk7Cit9CisKK1ZhbHVl
Ojpjb25zdF9pdGVyYXRvciBWYWx1ZTo6YmVnaW4oKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2YWx1
ZV8ubWFwXykKKyAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4o
KSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGNv
bnN0X2l0ZXJhdG9yKCk7Cit9CisKK1ZhbHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6ZW5kKCkg
Y29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBv
YmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICByZXR1cm4gY29uc3RfaXRl
cmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBi
cmVhazsKKyAgfQorICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsKK30KKworVmFsdWU6Oml0ZXJh
dG9yIFZhbHVlOjpiZWdpbigpIHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFs
dWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0
dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigpKTsKKyAgICBicmVhazsKKyAgZGVmYXVs
dDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3IoKTsKK30KKworVmFsdWU6Oml0
ZXJhdG9yIFZhbHVlOjplbmQoKSB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZh
bHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2YWx1ZV8ubWFwXykKKyAgICAgIHJl
dHVybiBpdGVyYXRvcih2YWx1ZV8ubWFwXy0+ZW5kKCkpOworICAgIGJyZWFrOworICBkZWZhdWx0
OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBpdGVyYXRvcigpOworfQorCisvLyBjbGFzcyBQ
YXRoQXJndW1lbnQKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCgp
IDoga2V5XygpLCBpbmRleF8oKSwga2luZF8oa2luZE5vbmUpIHt9CisKK1BhdGhBcmd1bWVudDo6
UGF0aEFyZ3VtZW50KEFycmF5SW5kZXggaW5kZXgpCisgICAgOiBrZXlfKCksIGluZGV4XyhpbmRl
eCksIGtpbmRfKGtpbmRJbmRleCkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29u
c3QgY2hhcioga2V5KQorICAgIDoga2V5XyhrZXkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkg
e30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkK
KyAgICA6IGtleV8oa2V5LmNfc3RyKCkpLCBpbmRleF8oKSwga2luZF8oa2luZEtleSkge30KKwor
Ly8gY2xhc3MgUGF0aAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1BhdGg6OlBhdGgoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGgsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTEsCisgICAgICAgICAg
IGNvbnN0IFBhdGhBcmd1bWVudCYgYTIsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYg
YTMsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQsCisgICAgICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTUpIHsKKyAgSW5BcmdzIGluOworICBpbi5wdXNoX2JhY2soJmExKTsK
KyAgaW4ucHVzaF9iYWNrKCZhMik7CisgIGluLnB1c2hfYmFjaygmYTMpOworICBpbi5wdXNoX2Jh
Y2soJmE0KTsKKyAgaW4ucHVzaF9iYWNrKCZhNSk7CisgIG1ha2VQYXRoKHBhdGgsIGluKTsKK30K
Kwordm9pZCBQYXRoOjptYWtlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgY29uc3QgSW5B
cmdzJiBpbikgeworICBjb25zdCBjaGFyKiBjdXJyZW50ID0gcGF0aC5jX3N0cigpOworICBjb25z
dCBjaGFyKiBlbmQgPSBjdXJyZW50ICsgcGF0aC5sZW5ndGgoKTsKKyAgSW5BcmdzOjpjb25zdF9p
dGVyYXRvciBpdEluQXJnID0gaW4uYmVnaW4oKTsKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7
CisgICAgaWYgKCpjdXJyZW50ID09ICdbJykgeworICAgICAgKytjdXJyZW50OworICAgICAgaWYg
KCpjdXJyZW50ID09ICclJykKKyAgICAgICAgYWRkUGF0aEluQXJnKHBhdGgsIGluLCBpdEluQXJn
LCBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCk7CisgICAgICBlbHNlIHsKKyAgICAgICAgQXJyYXlJ
bmRleCBpbmRleCA9IDA7CisgICAgICAgIGZvciAoOyBjdXJyZW50ICE9IGVuZCAmJiAqY3VycmVu
dCA+PSAnMCcgJiYgKmN1cnJlbnQgPD0gJzknOyArK2N1cnJlbnQpCisgICAgICAgICAgaW5kZXgg
PSBpbmRleCAqIDEwICsgQXJyYXlJbmRleCgqY3VycmVudCAtICcwJyk7CisgICAgICAgIGFyZ3Nf
LnB1c2hfYmFjayhpbmRleCk7CisgICAgICB9CisgICAgICBpZiAoY3VycmVudCA9PSBlbmQgfHwg
KmN1cnJlbnQrKyAhPSAnXScpCisgICAgICAgIGludmFsaWRQYXRoKHBhdGgsIGludChjdXJyZW50
IC0gcGF0aC5jX3N0cigpKSk7CisgICAgfSBlbHNlIGlmICgqY3VycmVudCA9PSAnJScpIHsKKyAg
ICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kS2V5
KTsKKyAgICAgICsrY3VycmVudDsKKyAgICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICcuJykgewor
ICAgICAgKytjdXJyZW50OworICAgIH0gZWxzZSB7CisgICAgICBjb25zdCBjaGFyKiBiZWdpbk5h
bWUgPSBjdXJyZW50OworICAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kICYmICFzdHJjaHIoIlsu
IiwgKmN1cnJlbnQpKQorICAgICAgICArK2N1cnJlbnQ7CisgICAgICBhcmdzXy5wdXNoX2JhY2so
c3RkOjpzdHJpbmcoYmVnaW5OYW1lLCBjdXJyZW50KSk7CisgICAgfQorICB9Cit9CisKK3ZvaWQg
UGF0aDo6YWRkUGF0aEluQXJnKGNvbnN0IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyYgaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpIHsKKyAgaWYgKGl0SW5BcmcgPT0gaW4uZW5kKCkp
IHsKKyAgICAvLyBFcnJvcjogbWlzc2luZyBhcmd1bWVudCAlZAorICB9IGVsc2UgaWYgKCgqaXRJ
bkFyZyktPmtpbmRfICE9IGtpbmQpIHsKKyAgICAvLyBFcnJvcjogYmFkIGFyZ3VtZW50IHR5cGUK
KyAgfSBlbHNlIHsKKyAgICBhcmdzXy5wdXNoX2JhY2soKippdEluQXJnKTsKKyAgfQorfQorCit2
b2lkIFBhdGg6OmludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiAvKnBhdGgqLywgaW50IC8q
bG9jYXRpb24qLykgeworICAvLyBFcnJvcjogaW52YWxpZCBwYXRoLgorfQorCitjb25zdCBWYWx1
ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCkgY29uc3QgeworICBjb25zdCBWYWx1
ZSogbm9kZSA9ICZyb290OworICBmb3IgKEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18u
YmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQpIHsKKyAgICBjb25zdCBQYXRoQXJndW1l
bnQmIGFyZyA9ICppdDsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZElu
ZGV4KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4
KGFyZy5pbmRleF8pKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRo
IChhcnJheSB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLgorICAgICAgfQorICAgICAgbm9k
ZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0g
UGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsK
KyAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCB2YWx1ZSBl
eHBlY3RlZCBhdCBwb3NpdGlvbi4uLikKKyAgICAgIH0KKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlb
YXJnLmtleV9dKTsKKyAgICAgIGlmIChub2RlID09ICZWYWx1ZTo6bnVsbFJlZikgeworICAgICAg
ICAvLyBFcnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0aCAob2JqZWN0IGhhcyBubyBtZW1iZXIg
bmFtZWQgJycgYXQKKyAgICAgICAgLy8gcG9zaXRpb24uLi4pCisgICAgICB9CisgICAgfQorICB9
CisgIHJldHVybiAqbm9kZTsKK30KKworVmFsdWUgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYg
cm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3QgeworICBjb25zdCBWYWx1ZSog
bm9kZSA9ICZyb290OworICBmb3IgKEFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXJnc18uYmVn
aW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQpIHsKKyAgICBjb25zdCBQYXRoQXJndW1lbnQm
IGFyZyA9ICppdDsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEluZGV4
KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSB8fCAhbm9kZS0+aXNWYWxpZEluZGV4KGFy
Zy5pbmRleF8pKQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgbm9kZSA9ICYo
KCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFy
Z3VtZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpCisgICAgICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7
CisgICAgICBpZiAobm9kZSA9PSAmVmFsdWU6Om51bGxSZWYpCisgICAgICAgIHJldHVybiBkZWZh
dWx0VmFsdWU7CisgICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworVmFsdWUmIFBhdGg6
Om1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0IHsKKyAgVmFsdWUqIG5vZGUgPSAmcm9vdDsKKyAgZm9y
IChBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVu
ZCgpOyArK2l0KSB7CisgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhcmcgPSAqaXQ7CisgICAgaWYg
KGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCkgeworICAgICAgaWYgKCFub2Rl
LT5pc0FycmF5KCkpIHsKKyAgICAgICAgLy8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIGFycmF5IGF0
IHBvc2l0aW9uIC4uLgorICAgICAgfQorICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhf
XSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7
CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAgLy8gRXJyb3I6IG5vZGUg
aXMgbm90IGFuIG9iamVjdCBhdCBwb3NpdGlvbi4uLgorICAgICAgfQorICAgICAgbm9kZSA9ICYo
KCpub2RlKVthcmcua2V5X10pOworICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpzb24KKworI3ByYWdtYSB3YXJuaW5nIChwb3ApCisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVl
LmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
QmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fd3JpdGVyLmNw
cAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxl
dXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlm
IGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2Vl
IGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNl
Zm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQor
I2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CisjaW5jbHVkZSAianNvbl90b29sLmgiCisjZW5kaWYg
Ly8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8aW9tYW5pcD4K
KyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGNzdHJpbmc+
CisjaW5jbHVkZSA8Y3N0ZGlvPgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIg
Pj0gMTIwMCAmJiBfTVNDX1ZFUiA8IDE4MDAgLy8gQmV0d2VlbiBWQysrIDYuMCBhbmQgVkMrKyAx
MS4wCisjaW5jbHVkZSA8ZmxvYXQuaD4KKyNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQorI2VsaWYg
ZGVmaW5lZChfX3N1bikgJiYgZGVmaW5lZChfX1NWUjQpIC8vU29sYXJpcworI2lmICFkZWZpbmVk
KGlzZmluaXRlKQorI2luY2x1ZGUgPGllZWVmcC5oPgorI2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUK
KyNlbmRpZgorI2VsaWYgZGVmaW5lZChfQUlYKQorI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2lu
Y2x1ZGUgPG1hdGguaD4KKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRlCisjZW5kaWYKKyNlbGlmIGRl
ZmluZWQoX19ocHV4KQorI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2lmIGRlZmluZWQoX19pYTY0
KSAmJiAhZGVmaW5lZChmaW5pdGUpCisjZGVmaW5lIGlzZmluaXRlKHgpICgoc2l6ZW9mKHgpID09
IHNpemVvZihmbG9hdCkgPyBcCisgICAgICAgICAgICAgICAgICAgICBfSXNmaW5pdGVmKHgpIDog
X0lzRmluaXRlKHgpKSkKKyNlbHNlCisjaW5jbHVkZSA8bWF0aC5oPgorI2RlZmluZSBpc2Zpbml0
ZSBmaW5pdGUKKyNlbmRpZgorI2VuZGlmCisjZWxzZQorI2luY2x1ZGUgPGNtYXRoPgorI2lmICEo
ZGVmaW5lZChfX1FOWE5UT19fKSkgLy8gUU5YIGFscmVhZHkgZGVmaW5lcyBpc2Zpbml0ZQorI2Rl
ZmluZSBpc2Zpbml0ZSBzdGQ6OmlzZmluaXRlCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikKKyNpZiAhZGVmaW5lZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENfU0VDVVJF
X0xJQl9fKSAmJiBfTVNDX1ZFUiA+PSAxNTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZQorI2RlZmlu
ZSBzbnByaW50ZiBzcHJpbnRmX3MKKyNlbGlmIF9NU0NfVkVSID49IDE5MDAgLy8gVkMrKyAxNC4w
IGFuZCBhYm92ZQorI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCisjZWxzZQorI2RlZmlu
ZSBzbnByaW50ZiBfc25wcmludGYKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX0FORFJPSURfXykg
fHwgZGVmaW5lZChfX1FOWE5UT19fKQorI2RlZmluZSBzbnByaW50ZiBzbnByaW50ZgorI2VsaWYg
X19jcGx1c3BsdXMgPj0gMjAxMTAzTAorI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCisj
ZW5kaWYKKworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAgCisjaW5jbHVkZSA8ZmxvYXQuaD4K
KyNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQorI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNl
bmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysr
IDguMAorLy8gRGlzYWJsZSB3YXJuaW5nIGFib3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgor
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0OTk2KQorI2VuZGlmCisKK25hbWVzcGFjZSBKc29u
IHsKKworI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIp
ICYmIF9DUFBMSUJfVkVSID49IDUyMCkKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdy
aXRlcj4gU3RyZWFtV3JpdGVyUHRyOworI2Vsc2UKK3R5cGVkZWYgc3RkOjphdXRvX3B0cjxTdHJl
YW1Xcml0ZXI+ICAgU3RyZWFtV3JpdGVyUHRyOworI2VuZGlmCisKK3N0YXRpYyBib29sIGNvbnRh
aW5zQ29udHJvbENoYXJhY3Rlcihjb25zdCBjaGFyKiBzdHIpIHsKKyAgd2hpbGUgKCpzdHIpIHsK
KyAgICBpZiAoaXNDb250cm9sQ2hhcmFjdGVyKCooc3RyKyspKSkKKyAgICAgIHJldHVybiB0cnVl
OworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9s
Q2hhcmFjdGVyMChjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGxlbikgeworICBjaGFyIGNvbnN0
KiBlbmQgPSBzdHIgKyBsZW47CisgIHdoaWxlIChlbmQgIT0gc3RyKSB7CisgICAgaWYgKGlzQ29u
dHJvbENoYXJhY3Rlcigqc3RyKSB8fCAwPT0qc3RyKQorICAgICAgcmV0dXJuIHRydWU7CisgICAg
KytzdHI7CisgIH0KKyAgcmV0dXJuIGZhbHNlOworfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3Ry
aW5nKExhcmdlc3RJbnQgdmFsdWUpIHsKKyAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAg
Y2hhciogY3VycmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOworICBpZiAodmFsdWUgPT0g
VmFsdWU6Om1pbkxhcmdlc3RJbnQpIHsKKyAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQoVmFs
dWU6Om1heExhcmdlc3RJbnQpICsgMSwgY3VycmVudCk7CisgICAgKi0tY3VycmVudCA9ICctJzsK
KyAgfSBlbHNlIGlmICh2YWx1ZSA8IDApIHsKKyAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQo
LXZhbHVlKSwgY3VycmVudCk7CisgICAgKi0tY3VycmVudCA9ICctJzsKKyAgfSBlbHNlIHsKKyAg
ICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpLCBjdXJyZW50KTsKKyAgfQorICBhc3Nl
cnQoY3VycmVudCA+PSBidWZmZXIpOworICByZXR1cm4gY3VycmVudDsKK30KKworc3RkOjpzdHJp
bmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSkgeworICBVSW50VG9TdHJpbmdCdWZm
ZXIgYnVmZmVyOworICBjaGFyKiBjdXJyZW50ID0gYnVmZmVyICsgc2l6ZW9mKGJ1ZmZlcik7Cisg
IHVpbnRUb1N0cmluZyh2YWx1ZSwgY3VycmVudCk7CisgIGFzc2VydChjdXJyZW50ID49IGJ1ZmZl
cik7CisgIHJldHVybiBjdXJyZW50OworfQorCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkK
Kworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhJbnQgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVl
VG9TdHJpbmcoTGFyZ2VzdEludCh2YWx1ZSkpOworfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3Ry
aW5nKFVJbnQgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFs
dWUpKTsKK30KKworI2VuZGlmIC8vICMgaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKworc3Rk
OjpzdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUgdmFsdWUsIGJvb2wgdXNlU3BlY2lhbEZsb2F0
cywgdW5zaWduZWQgaW50IHByZWNpc2lvbikgeworICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciB0aGF0
IGlzIG1vcmUgdGhhbiBsYXJnZSBlbm91Z2ggdG8gc3RvcmUgdGhlIDE2IGRpZ2l0cyBvZgorICAv
LyBwcmVjaXNpb24gcmVxdWVzdGVkIGJlbG93LgorICBjaGFyIGJ1ZmZlclszMl07CisgIGludCBs
ZW4gPSAtMTsKKworICBjaGFyIGZvcm1hdFN0cmluZ1s2XTsKKyAgc3ByaW50Zihmb3JtYXRTdHJp
bmcsICIlJS4lZGciLCBwcmVjaXNpb24pOworCisgIC8vIFByaW50IGludG8gdGhlIGJ1ZmZlci4g
V2UgbmVlZCBub3QgcmVxdWVzdCB0aGUgYWx0ZXJuYXRpdmUgcmVwcmVzZW50YXRpb24KKyAgLy8g
dGhhdCBhbHdheXMgaGFzIGEgZGVjaW1hbCBwb2ludCBiZWNhdXNlIEpTT04gZG9lc24ndCBkaXN0
aW5naXNoIHRoZQorICAvLyBjb25jZXB0cyBvZiByZWFscyBhbmQgaW50ZWdlcnMuCisgIGlmIChp
c2Zpbml0ZSh2YWx1ZSkpIHsKKyAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZm
ZXIpLCBmb3JtYXRTdHJpbmcsIHZhbHVlKTsKKyAgfSBlbHNlIHsKKyAgICAvLyBJRUVFIHN0YW5k
YXJkIHN0YXRlcyB0aGF0IE5hTiB2YWx1ZXMgd2lsbCBub3QgY29tcGFyZSB0byB0aGVtc2VsdmVz
CisgICAgaWYgKHZhbHVlICE9IHZhbHVlKSB7CisgICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIs
IHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFsRmxvYXRzID8gIk5hTiIgOiAibnVsbCIpOworICAg
IH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7CisgICAgICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNp
emVvZihidWZmZXIpLCB1c2VTcGVjaWFsRmxvYXRzID8gIi1JbmZpbml0eSIgOiAiLTFlKzk5OTki
KTsKKyAgICB9IGVsc2UgeworICAgICAgbGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICJJbmZpbml0eSIgOiAiMWUrOTk5OSIpOworICAgIH0K
KyAgICAvLyBGb3IgdGhvc2UsIHdlIGRvIG5vdCBuZWVkIHRvIGNhbGwgZml4TnVtTG9jLCBidXQg
aXQgaXMgZmFzdC4KKyAgfQorICBhc3NlcnQobGVuID49IDApOworICBmaXhOdW1lcmljTG9jYWxl
KGJ1ZmZlciwgYnVmZmVyICsgbGVuKTsKKyAgcmV0dXJuIGJ1ZmZlcjsKK30KKworc3RkOjpzdHJp
bmcgdmFsdWVUb1N0cmluZyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFs
dWUsIGZhbHNlLCAxNyk7IH0KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhib29sIHZhbHVl
KSB7IHJldHVybiB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KKworc3RkOjpzdHJpbmcgdmFs
dWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSkgeworICBpZiAodmFsdWUgPT0gTlVM
TCkKKyAgICByZXR1cm4gIiI7CisgIC8vIE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4u
LgorICBpZiAoc3RycGJyayh2YWx1ZSwgIlwiXFxcYlxmXG5cclx0IikgPT0gTlVMTCAmJgorICAg
ICAgIWNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcih2YWx1ZSkpCisgICAgcmV0dXJuIHN0ZDo6c3Ry
aW5nKCJcIiIpICsgdmFsdWUgKyAiXCIiOworICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5k
IGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzLgorICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpz
dHJpbmcgaXMgbm90IGVmZmljaWVudCwgYnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCisgIC8vIChO
b3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJlICpub3QqIHJhcmUsIGJ1dCBJIGFtIG5vdCBlc2NhcGlu
ZyB0aGVtLikKKyAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBtYXhzaXplID0KKyAgICAgIHN0cmxl
bih2YWx1ZSkgKiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVMTAorICBzdGQ6OnN0cmlu
ZyByZXN1bHQ7CisgIHJlc3VsdC5yZXNlcnZlKG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9m
IG1hbGxvY3MKKyAgcmVzdWx0ICs9ICJcIiI7CisgIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVl
OyAqYyAhPSAwOyArK2MpIHsKKyAgICBzd2l0Y2ggKCpjKSB7CisgICAgY2FzZSAnXCInOgorICAg
ICAgcmVzdWx0ICs9ICJcXFwiIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xcJzoKKyAgICAg
IHJlc3VsdCArPSAiXFxcXCI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcYic6CisgICAgICBy
ZXN1bHQgKz0gIlxcYiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcZic6CisgICAgICByZXN1
bHQgKz0gIlxcZiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcbic6CisgICAgICByZXN1bHQg
Kz0gIlxcbiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdccic6CisgICAgICByZXN1bHQgKz0g
IlxcciI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcdCc6CisgICAgICByZXN1bHQgKz0gIlxc
dCI7CisgICAgICBicmVhazsKKyAgICAvLyBjYXNlICcvJzoKKyAgICAvLyBFdmVuIHRob3VnaCBc
LyBpcyBjb25zaWRlcmVkIGEgbGVnYWwgZXNjYXBlIGluIEpTT04sIGEgYmFyZQorICAgIC8vIHNs
YXNoIGlzIGFsc28gbGVnYWwsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQuCisgICAg
Ly8gKEkgaG9wZSBJIGFtIG5vdCBtaXN1bmRlcnN0YW5kaW5nIHNvbWV0aGluZy4KKyAgICAvLyBi
bGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGluZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3Jp
cHQgdG8gYXZvaWQgPC8KKyAgICAvLyBzZXF1ZW5jZS4KKyAgICAvLyBTaG91bGQgYWRkIGEgZmxh
ZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCisgICAg
Ly8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcuCisgICAgZGVmYXVsdDoKKyAgICAgIGlmIChpc0Nv
bnRyb2xDaGFyYWN0ZXIoKmMpKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7Cisg
ICAgICAgIG9zcyA8PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6
OnNldGZpbGwoJzAnKQorICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0
PGludD4oKmMpOworICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOworICAgICAgfSBlbHNlIHsK
KyAgICAgICAgcmVzdWx0ICs9ICpjOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICB9
CisgIHJlc3VsdCArPSAiXCIiOworICByZXR1cm4gcmVzdWx0OworfQorCisvLyBodHRwczovL2dp
dGh1Yi5jb20vdXBjYXN0ZS91cGNhc3RlL2Jsb2IvbWFzdGVyL3NyYy91cGNvcmUvc3JjL2NzdHJp
bmcvc3RybnBicmsuY3BwCitzdGF0aWMgY2hhciBjb25zdCogc3RybnBicmsoY2hhciBjb25zdCog
cywgY2hhciBjb25zdCogYWNjZXB0LCBzaXplX3QgbikgeworICBhc3NlcnQoKHMgfHwgIW4pICYm
IGFjY2VwdCk7CisKKyAgY2hhciBjb25zdCogY29uc3QgZW5kID0gcyArIG47CisgIGZvciAoY2hh
ciBjb25zdCogY3VyID0gczsgY3VyIDwgZW5kOyArK2N1cikgeworICAgIGludCBjb25zdCBjID0g
KmN1cjsKKyAgICBmb3IgKGNoYXIgY29uc3QqIGEgPSBhY2NlcHQ7ICphOyArK2EpIHsKKyAgICAg
IGlmICgqYSA9PSBjKSB7CisgICAgICAgIHJldHVybiBjdXI7CisgICAgICB9CisgICAgfQorICB9
CisgIHJldHVybiBOVUxMOworfQorc3RhdGljIHN0ZDo6c3RyaW5nIHZhbHVlVG9RdW90ZWRTdHJp
bmdOKGNvbnN0IGNoYXIqIHZhbHVlLCB1bnNpZ25lZCBsZW5ndGgpIHsKKyAgaWYgKHZhbHVlID09
IE5VTEwpCisgICAgcmV0dXJuICIiOworICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNv
ZGUuLi4KKyAgaWYgKHN0cm5wYnJrKHZhbHVlLCAiXCJcXFxiXGZcblxyXHQiLCBsZW5ndGgpID09
IE5VTEwgJiYKKyAgICAgICFjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIwKHZhbHVlLCBsZW5ndGgp
KQorICAgIHJldHVybiBzdGQ6OnN0cmluZygiXCIiKSArIHZhbHVlICsgIlwiIjsKKyAgLy8gV2Ug
aGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBlc2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KKyAg
Ly8gQXBwZW5kaW5nIHRvIHN0ZDo6c3RyaW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNo
b3VsZCBiZSByYXJlLgorICAvLyAoTm90ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJl
LCBidXQgSSBhbSBub3QgZXNjYXBpbmcgdGhlbS4pCisgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUg
bWF4c2l6ZSA9CisgICAgICBsZW5ndGggKiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVM
TAorICBzdGQ6OnN0cmluZyByZXN1bHQ7CisgIHJlc3VsdC5yZXNlcnZlKG1heHNpemUpOyAvLyB0
byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MKKyAgcmVzdWx0ICs9ICJcIiI7CisgIGNoYXIgY29uc3Qq
IGVuZCA9IHZhbHVlICsgbGVuZ3RoOworICBmb3IgKGNvbnN0IGNoYXIqIGMgPSB2YWx1ZTsgYyAh
PSBlbmQ7ICsrYykgeworICAgIHN3aXRjaCAoKmMpIHsKKyAgICBjYXNlICdcIic6CisgICAgICBy
ZXN1bHQgKz0gIlxcXCIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXFwnOgorICAgICAgcmVz
dWx0ICs9ICJcXFxcIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xiJzoKKyAgICAgIHJlc3Vs
dCArPSAiXFxiIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xmJzoKKyAgICAgIHJlc3VsdCAr
PSAiXFxmIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xuJzoKKyAgICAgIHJlc3VsdCArPSAi
XFxuIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xyJzoKKyAgICAgIHJlc3VsdCArPSAiXFxy
IjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1x0JzoKKyAgICAgIHJlc3VsdCArPSAiXFx0IjsK
KyAgICAgIGJyZWFrOworICAgIC8vIGNhc2UgJy8nOgorICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlz
IGNvbnNpZGVyZWQgYSBsZWdhbCBlc2NhcGUgaW4gSlNPTiwgYSBiYXJlCisgICAgLy8gc2xhc2gg
aXMgYWxzbyBsZWdhbCwgc28gSSBzZWUgbm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KKyAgICAvLyAo
SSBob3BlIEkgYW0gbm90IG1pc3VuZGVyc3RhbmRpbmcgc29tZXRoaW5nLikKKyAgICAvLyBibGVw
IG5vdGVzOiBhY3R1YWxseSBlc2NhcGluZyBcLyBtYXkgYmUgdXNlZnVsIGluIGphdmFzY3JpcHQg
dG8gYXZvaWQgPC8KKyAgICAvLyBzZXF1ZW5jZS4KKyAgICAvLyBTaG91bGQgYWRkIGEgZmxhZyB0
byBhbGxvdyB0aGlzIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJldmVudCB0aGlzCisgICAgLy8g
c2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcuCisgICAgZGVmYXVsdDoKKyAgICAgIGlmICgoaXNDb250
cm9sQ2hhcmFjdGVyKCpjKSkgfHwgKCpjID09IDApKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0
cmVhbSBvc3M7CisgICAgICAgIG9zcyA8PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVwcGVy
Y2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKQorICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDQpIDw8
IHN0YXRpY19jYXN0PGludD4oKmMpOworICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOworICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0ICs9ICpjOworICAgICAgfQorICAgICAgYnJlYWs7
CisgICAgfQorICB9CisgIHJlc3VsdCArPSAiXCIiOworICByZXR1cm4gcmVzdWx0OworfQorCisv
LyBDbGFzcyBXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworV3JpdGVyOjp+V3JpdGVyKCkge30KKworLy8g
Q2xhc3MgRmFzdFdyaXRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK0Zhc3RXcml0ZXI6OkZhc3RXcml0ZXIo
KQorICAgIDogeWFtbENvbXBhdGlibGl0eUVuYWJsZWRfKGZhbHNlKSwgZHJvcE51bGxQbGFjZWhv
bGRlcnNfKGZhbHNlKSwKKyAgICAgIG9taXRFbmRpbmdMaW5lRmVlZF8oZmFsc2UpIHt9CisKK3Zv
aWQgRmFzdFdyaXRlcjo6ZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKSB7IHlhbWxDb21wYXRpYmxp
dHlFbmFibGVkXyA9IHRydWU7IH0KKwordm9pZCBGYXN0V3JpdGVyOjpkcm9wTnVsbFBsYWNlaG9s
ZGVycygpIHsgZHJvcE51bGxQbGFjZWhvbGRlcnNfID0gdHJ1ZTsgfQorCit2b2lkIEZhc3RXcml0
ZXI6Om9taXRFbmRpbmdMaW5lRmVlZCgpIHsgb21pdEVuZGluZ0xpbmVGZWVkXyA9IHRydWU7IH0K
Kworc3RkOjpzdHJpbmcgRmFzdFdyaXRlcjo6d3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAg
ZG9jdW1lbnRfID0gIiI7CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIGlmICghb21pdEVuZGluZ0xp
bmVGZWVkXykKKyAgICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgcmV0dXJuIGRvY3VtZW50XzsKK30K
Kwordm9pZCBGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICBz
d2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBpZiAoIWRyb3BO
dWxsUGxhY2Vob2xkZXJzXykKKyAgICAgIGRvY3VtZW50XyArPSAibnVsbCI7CisgICAgYnJlYWs7
CisgIGNhc2UgaW50VmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUu
YXNMYXJnZXN0SW50KCkpOworICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBkb2N1
bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpOworICAgIGJyZWFr
OworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1
ZS5hc0RvdWJsZSgpKTsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAg
IC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/CisgICAgY2hhciBjb25zdCog
c3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5n
KCZzdHIsICZlbmQpOworICAgIGlmIChvaykgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJp
bmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKTsKKyAgICBicmVhazsKKyAg
fQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2
YWx1ZS5hc0Jvb2woKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZTogeworICAgIGRv
Y3VtZW50XyArPSAnWyc7CisgICAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgICAgZm9yIChp
bnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlmIChpbmRleCA+
IDApCisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2lu
ZGV4XSk7CisgICAgfQorICAgIGRvY3VtZW50XyArPSAnXSc7CisgIH0gYnJlYWs7CisgIGNhc2Ug
b2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJl
ck5hbWVzKCkpOworICAgIGRvY3VtZW50XyArPSAneyc7CisgICAgZm9yIChWYWx1ZTo6TWVtYmVy
czo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7IGl0ICE9IG1lbWJlcnMuZW5kKCk7Cisg
ICAgICAgICArK2l0KSB7CisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKKyAg
ICAgIGlmIChpdCAhPSBtZW1iZXJzLmJlZ2luKCkpCisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7
CisgICAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCksIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihuYW1lLmxlbmd0aCgpKSk7CisgICAgICBkb2N1bWVudF8gKz0g
eWFtbENvbXBhdGlibGl0eUVuYWJsZWRfID8gIjogIiA6ICI6IjsKKyAgICAgIHdyaXRlVmFsdWUo
dmFsdWVbbmFtZV0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ30nOworICB9IGJyZWFrOwor
ICB9Cit9CisKKy8vIENsYXNzIFN0eWxlZFdyaXRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1N0eWxlZFdy
aXRlcjo6U3R5bGVkV3JpdGVyKCkKKyAgICA6IHJpZ2h0TWFyZ2luXyg3NCksIGluZGVudFNpemVf
KDMpLCBhZGRDaGlsZFZhbHVlc18oKSB7fQorCitzdGQ6OnN0cmluZyBTdHlsZWRXcml0ZXI6Ondy
aXRlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50XyA9ICIiOworICBhZGRDaGlsZFZh
bHVlc18gPSBmYWxzZTsKKyAgaW5kZW50U3RyaW5nXyA9ICIiOworICB3cml0ZUNvbW1lbnRCZWZv
cmVWYWx1ZShyb290KTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50QWZ0ZXJW
YWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgIGRvY3VtZW50XyArPSAiXG4iOworICByZXR1cm4gZG9j
dW1lbnRfOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6Cisg
ICAgcHVzaFZhbHVlKCJudWxsIik7CisgICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6CisgICAg
cHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKKyAgICBicmVh
azsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUu
YXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpKTsKKyAgICBicmVhazsKKyAg
Y2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVl
LnN0cmluZ18/CisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAg
ICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykgcHVz
aFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVu
ZC1zdHIpKSk7CisgICAgZWxzZSBwdXNoVmFsdWUoIiIpOworICAgIGJyZWFrOworICB9CisgIGNh
c2UgYm9vbGVhblZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9v
bCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICB3cml0ZUFycmF5VmFs
dWUodmFsdWUpOworICAgIGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6
Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsKKyAgICBpZiAobWVtYmVy
cy5lbXB0eSgpKQorICAgICAgcHVzaFZhbHVlKCJ7fSIpOworICAgIGVsc2UgeworICAgICAgd3Jp
dGVXaXRoSW5kZW50KCJ7Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIFZhbHVlOjpNZW1iZXJz
OjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKKyAgICAgIGZvciAoOzspIHsKKyAgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUgPSAqaXQ7CisgICAgICAgIGNvbnN0IFZhbHVlJiBj
aGlsZFZhbHVlID0gdmFsdWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVl
KGNoaWxkVmFsdWUpOworICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmlu
ZyhuYW1lLmNfc3RyKCkpKTsKKyAgICAgICAgZG9jdW1lbnRfICs9ICIgOiAiOworICAgICAgICB3
cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgp
KSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1
ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnRfICs9ICcs
JzsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7
CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7
CisgICAgfQorICB9IGJyZWFrOworICB9Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUFy
cmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5z
aXplKCk7CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJbXSIpOworICBlbHNlIHsK
KyAgICBib29sIGlzQXJyYXlNdWx0aUxpbmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7CisgICAg
aWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOworICAg
ICAgaW5kZW50KCk7CisgICAgICBib29sIGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVt
cHR5KCk7CisgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgICBmb3IgKDs7KSB7CisgICAg
ICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAgICAgICB3cml0
ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKGhhc0NoaWxkVmFs
dWUpCisgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICB3cml0ZUluZGVudCgpOworICAgICAgICAgIHdyaXRlVmFs
dWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkg
eworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7
CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwor
ICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOwor
ICAgIH0gZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFzc2Vy
dChjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgZG9jdW1lbnRfICs9ICJbICI7
CisgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7
CisgICAgICAgIGlmIChpbmRleCA+IDApCisgICAgICAgICAgZG9jdW1lbnRfICs9ICIsICI7Cisg
ICAgICAgIGRvY3VtZW50XyArPSBjaGlsZFZhbHVlc19baW5kZXhdOworICAgICAgfQorICAgICAg
ZG9jdW1lbnRfICs9ICIgXSI7CisgICAgfQorICB9Cit9CisKK2Jvb2wgU3R5bGVkV3JpdGVyOjpp
c011bHRpbmVBcnJheShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgaW50IHNpemUgPSB2YWx1ZS5z
aXplKCk7CisgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87Cisg
IGNoaWxkVmFsdWVzXy5jbGVhcigpOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6
ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1
ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5
KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsKKyAgfQorICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVj
ayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAorICB7CisgICAgY2hpbGRWYWx1ZXNf
LnJlc2VydmUoc2l6ZSk7CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKKyAgICBpbnQgbGlu
ZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKKyAg
ICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYg
KGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVsdGlMaW5l
ID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICAg
IGxpbmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0K
KyAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlM
aW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRp
TGluZTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmlu
ZyYgdmFsdWUpIHsKKyAgaWYgKGFkZENoaWxkVmFsdWVzXykKKyAgICBjaGlsZFZhbHVlc18ucHVz
aF9iYWNrKHZhbHVlKTsKKyAgZWxzZQorICAgIGRvY3VtZW50XyArPSB2YWx1ZTsKK30KKwordm9p
ZCBTdHlsZWRXcml0ZXI6OndyaXRlSW5kZW50KCkgeworICBpZiAoIWRvY3VtZW50Xy5lbXB0eSgp
KSB7CisgICAgY2hhciBsYXN0ID0gZG9jdW1lbnRfW2RvY3VtZW50Xy5sZW5ndGgoKSAtIDFdOwor
ICAgIGlmIChsYXN0ID09ICcgJykgLy8gYWxyZWFkeSBpbmRlbnRlZAorICAgICAgcmV0dXJuOwor
ICAgIGlmIChsYXN0ICE9ICdcbicpIC8vIENvbW1lbnRzIG1heSBhZGQgbmV3LWxpbmUKKyAgICAg
IGRvY3VtZW50XyArPSAnXG4nOworICB9CisgIGRvY3VtZW50XyArPSBpbmRlbnRTdHJpbmdfOwor
fQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5n
JiB2YWx1ZSkgeworICB3cml0ZUluZGVudCgpOworICBkb2N1bWVudF8gKz0gdmFsdWU7Cit9CisK
K3ZvaWQgU3R5bGVkV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18gKz0gc3RkOjpzdHJp
bmcoaW5kZW50U2l6ZV8sICcgJyk7IH0KKwordm9pZCBTdHlsZWRXcml0ZXI6OnVuaW5kZW50KCkg
eworICBhc3NlcnQoaW50KGluZGVudFN0cmluZ18uc2l6ZSgpKSA+PSBpbmRlbnRTaXplXyk7Cisg
IGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmluZ18uc2l6ZSgpIC0gaW5kZW50U2l6ZV8p
OworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3Qg
VmFsdWUmIHJvb3QpIHsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisg
ICAgcmV0dXJuOworCisgIGRvY3VtZW50XyArPSAiXG4iOworICB3cml0ZUluZGVudCgpOworICBj
b25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3Jl
KTsKKyAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7
CisgIHdoaWxlIChpdGVyICE9IGNvbW1lbnQuZW5kKCkpIHsKKyAgICBkb2N1bWVudF8gKz0gKml0
ZXI7CisgICAgaWYgKCppdGVyID09ICdcbicgJiYKKyAgICAgICAoaXRlciAhPSBjb21tZW50LmVu
ZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisgICAgICB3cml0ZUluZGVudCgpOworICAgICsr
aXRlcjsKKyAgfQorCisgIC8vIENvbW1lbnRzIGFyZSBzdHJpcHBlZCBvZiB0cmFpbGluZyBuZXds
aW5lcywgc28gYWRkIG9uZSBoZXJlCisgIGRvY3VtZW50XyArPSAiXG4iOworfQorCit2b2lkIFN0
eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUm
IHJvb3QpIHsKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkK
KyAgICBkb2N1bWVudF8gKz0gIiAiICsgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9uU2Ft
ZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgeworICAgIGRv
Y3VtZW50XyArPSAiXG4iOworICAgIGRvY3VtZW50XyArPSByb290LmdldENvbW1lbnQoY29tbWVu
dEFmdGVyKTsKKyAgICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgfQorfQorCitib29sIFN0eWxlZFdy
aXRlcjo6aGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICByZXR1cm4g
dmFsdWUuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29t
bWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVu
dChjb21tZW50QWZ0ZXIpOworfQorCisvLyBDbGFzcyBTdHlsZWRTdHJlYW1Xcml0ZXIKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCitTdHlsZWRTdHJlYW1Xcml0ZXI6OlN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0
cmluZyBpbmRlbnRhdGlvbikKKyAgICA6IGRvY3VtZW50XyhOVUxMKSwgcmlnaHRNYXJnaW5fKDc0
KSwgaW5kZW50YXRpb25fKGluZGVudGF0aW9uKSwKKyAgICAgIGFkZENoaWxkVmFsdWVzXygpIHt9
CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29u
c3QgVmFsdWUmIHJvb3QpIHsKKyAgZG9jdW1lbnRfID0gJm91dDsKKyAgYWRkQ2hpbGRWYWx1ZXNf
ID0gZmFsc2U7CisgIGluZGVudFN0cmluZ18gPSAiIjsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAg
d3JpdGVDb21tZW50QmVmb3JlVmFsdWUocm9vdCk7CisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUlu
ZGVudCgpOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZVZhbHVlKHJvb3QpOworICB3cml0
ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsKKyAgKmRvY3VtZW50XyA8PCAiXG4i
OworICBkb2N1bWVudF8gPSBOVUxMOyAvLyBGb3JnZXQgdGhlIHN0cmVhbSwgZm9yIHNhZmV0eS4K
K30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAg
IHB1c2hWYWx1ZSgibnVsbCIpOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJlYWs7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFz
TGFyZ2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBwdXNo
VmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKSk7CisgICAgYnJlYWs7CisgIGNh
c2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5z
dHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAg
Ym9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIHB1c2hW
YWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQt
c3RyKSkpOworICAgIGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQorICBjYXNl
IGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2wo
KSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJheVZhbHVl
KHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpN
ZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1lbWJlcnMu
ZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAgIHdyaXRl
V2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBWYWx1ZTo6TWVtYmVyczo6
aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAgICAgICBjb25zdCBWYWx1ZSYgY2hp
bGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShj
aGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmco
bmFtZS5jX3N0cigpKSk7CisgICAgICAgICpkb2N1bWVudF8gPDwgIiA6ICI7CisgICAgICAgIHdy
aXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkp
IHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVl
KTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqZG9jdW1lbnRfIDw8ICIs
IjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7
CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7
CisgICAgfQorICB9IGJyZWFrOworICB9Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2
YWx1ZS5zaXplKCk7CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJbXSIpOworICBl
bHNlIHsKKyAgICBib29sIGlzQXJyYXlNdWx0aUxpbmUgPSBpc011bHRpbmVBcnJheSh2YWx1ZSk7
CisgICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIp
OworICAgICAgaW5kZW50KCk7CisgICAgICBib29sIGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1
ZXNfLmVtcHR5KCk7CisgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgICBmb3IgKDs7KSB7
CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAgICAg
ICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKGhhc0No
aWxkVmFsdWUpCisgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0p
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQo
KTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSB0cnVlOworICAgICAgICAgIHdyaXRlVmFsdWUoY2hp
bGRWYWx1ZSk7CisgICAgICAgICAgaW5kZW50ZWRfID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFs
dWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgICpkb2N1bWVudF8gPDwgIiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVl
T25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAg
ICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xl
IGxpbmUKKyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsK
KyAgICAgICpkb2N1bWVudF8gPDwgIlsgIjsKKyAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAw
OyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAg
ICAgICAqZG9jdW1lbnRfIDw8ICIsICI7CisgICAgICAgICpkb2N1bWVudF8gPDwgY2hpbGRWYWx1
ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAgICpkb2N1bWVudF8gPDwgIiBdIjsKKyAgICB9Cisg
IH0KK30KKworYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KGNvbnN0IFZh
bHVlJiB2YWx1ZSkgeworICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRp
TGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7
CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytp
bmRleCkgeworICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAg
IGlzTXVsdGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2Jq
ZWN0KCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDAp
OworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4
IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBh
ZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0g
MSkgKiAyOyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAoaW50IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZh
bHVlW2luZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVlOworICAgICAgfQorICAg
ICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hp
bGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9
IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSBy
aWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQorCit2b2lkIFN0eWxl
ZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBp
ZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOwor
ICBlbHNlCisgICAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlSW5kZW50KCkgeworICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBh
dCB0aGUgc28tZmFyLXdyaXR0ZW4gc3RyaW5nCisgIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdl
IGFyZSBhbHJlYWR5IGluZGVudGVkLCBidXQKKyAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3Qg
ZG8gdGhhdC4gU28gd2UgcmVseSBvbiBzb21lIHNhdmVkIHN0YXRlLgorICAvLyBUaGUgY2FsbGVy
IGNoZWNrcyBpbmRlbnRlZF8uCisgICpkb2N1bWVudF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdf
OworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0
ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAg
KmRvY3VtZW50XyA8PCB2YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgU3R5
bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25f
OyB9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp1bmluZGVudCgpIHsKKyAgYXNzZXJ0KGlu
ZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVudGF0aW9uXy5zaXplKCkpOworICBpbmRlbnRTdHJp
bmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOwor
fQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29u
c3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkp
CisgICAgcmV0dXJuOworCisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICBjb25z
dCBzdGQ6OnN0cmluZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsK
KyAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7Cisg
IHdoaWxlIChpdGVyICE9IGNvbW1lbnQuZW5kKCkpIHsKKyAgICAqZG9jdW1lbnRfIDw8ICppdGVy
OworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAgKGl0ZXIgIT0gY29tbWVudC5lbmQo
KSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgLy8gd3JpdGVJbmRlbnQoKTsgIC8vIHdv
dWxkIGluY2x1ZGUgbmV3bGluZQorICAgICAgKmRvY3VtZW50XyA8PCBpbmRlbnRTdHJpbmdfOwor
ICAgICsraXRlcjsKKyAgfQorICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKwordm9pZCBTdHlsZWRT
dHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVl
JiByb290KSB7CisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkp
CisgICAgKmRvY3VtZW50XyA8PCAnICcgPDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlck9u
U2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgeworICAg
IHdyaXRlSW5kZW50KCk7CisgICAgKmRvY3VtZW50XyA8PCByb290LmdldENvbW1lbnQoY29tbWVu
dEFmdGVyKTsKKyAgfQorICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKworYm9vbCBTdHlsZWRTdHJl
YW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0
dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhh
c0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0Nv
bW1lbnQoY29tbWVudEFmdGVyKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyCisKKy8vLyBTY29wZWQgZW51bXMgYXJlIG5vdCBhdmFp
bGFibGUgdW50aWwgQysrMTEuCitzdHJ1Y3QgQ29tbWVudFN0eWxlIHsKKyAgLy8vIERlY2lkZSB3
aGV0aGVyIHRvIHdyaXRlIGNvbW1lbnRzLgorICBlbnVtIEVudW0geworICAgIE5vbmUsICAvLy88
IERyb3AgYWxsIGNvbW1lbnRzLgorICAgIE1vc3QsICAvLy88IFJlY292ZXIgb2RkIGJlaGF2aW9y
IG9mIHByZXZpb3VzIHZlcnNpb25zIChub3QgaW1wbGVtZW50ZWQgeWV0KS4KKyAgICBBbGwgIC8v
LzwgS2VlcCBhbGwgY29tbWVudHMuCisgIH07Cit9OworCitzdHJ1Y3QgQnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXIgOiBwdWJsaWMgU3RyZWFtV3JpdGVyCit7CisgIEJ1aWx0U3R5bGVkU3RyZWFtV3Jp
dGVyKAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIGluZGVudGF0aW9uLAorICAgICAgQ29tbWVu
dFN0eWxlOjpFbnVtIGNzLAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIGNvbG9uU3ltYm9sLAor
ICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG51bGxTeW1ib2wsCisgICAgICBzdGQ6OnN0cmluZyBj
b25zdCYgZW5kaW5nTGluZUZlZWRTeW1ib2wsCisgICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMs
CisgICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uKTsKKyAgaW50IHdyaXRlKFZhbHVlIGNvbnN0
JiByb290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpOworcHJpdmF0ZToKKyAgdm9pZCB3cml0ZVZhbHVl
KFZhbHVlIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0
JiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKTsKKyAg
dm9pZCBwdXNoVmFsdWUoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUlu
ZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUp
OworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21t
ZW50QmVmb3JlVmFsdWUoVmFsdWUgY29uc3QmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KTsKKyAgc3RhdGljIGJvb2wgaGFz
Q29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgdHlwZWRlZiBzdGQ6OnZl
Y3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1
ZXNfOworICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOworICBpbnQgcmlnaHRNYXJnaW5fOwor
ICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbl87CisgIENvbW1lbnRTdHlsZTo6RW51bSBjc187Cisg
IHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9sXzsKKyAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbF87Cisg
IHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgYm9vbCBhZGRDaGlsZFZhbHVl
c18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7CisgIGJvb2wgdXNlU3BlY2lhbEZsb2F0c18g
OiAxOworICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uXzsKK307CitCdWlsdFN0eWxlZFN0cmVhbVdy
aXRlcjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCisgICAgICBzdGQ6OnN0cmluZyBjb25zdCYg
aW5kZW50YXRpb24sCisgICAgICBDb21tZW50U3R5bGU6OkVudW0gY3MsCisgICAgICBzdGQ6OnN0
cmluZyBjb25zdCYgY29sb25TeW1ib2wsCisgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgbnVsbFN5
bWJvbCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBlbmRpbmdMaW5lRmVlZFN5bWJvbCwKKyAg
ICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywKKyAgICAgIHVuc2lnbmVkIGludCBwcmVjaXNpb24p
CisgIDogcmlnaHRNYXJnaW5fKDc0KQorICAsIGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbikKKyAg
LCBjc18oY3MpCisgICwgY29sb25TeW1ib2xfKGNvbG9uU3ltYm9sKQorICAsIG51bGxTeW1ib2xf
KG51bGxTeW1ib2wpCisgICwgZW5kaW5nTGluZUZlZWRTeW1ib2xfKGVuZGluZ0xpbmVGZWVkU3lt
Ym9sKQorICAsIGFkZENoaWxkVmFsdWVzXyhmYWxzZSkKKyAgLCBpbmRlbnRlZF8oZmFsc2UpCisg
ICwgdXNlU3BlY2lhbEZsb2F0c18odXNlU3BlY2lhbEZsb2F0cykKKyAgLCBwcmVjaXNpb25fKHBy
ZWNpc2lvbikKK3sKK30KK2ludCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoVmFsdWUg
Y29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVhbSogc291dCkKK3sKKyAgc291dF8gPSBzb3V0OworICBh
ZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgaW5kZW50U3Ry
aW5nXyA9ICIiOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKKyAgaWYgKCFpbmRl
bnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGluZGVudGVkXyA9IHRydWU7CisgIHdyaXRlVmFsdWUo
cm9vdCk7CisgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKHJvb3QpOworICAqc291
dF8gPDwgZW5kaW5nTGluZUZlZWRTeW1ib2xfOworICBzb3V0XyA9IE5VTEw7CisgIHJldHVybiAw
OworfQordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZShWYWx1ZSBjb25z
dCYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6
CisgICAgcHVzaFZhbHVlKG51bGxTeW1ib2xfKTsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOwor
ICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmlu
Zyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSwgdXNlU3BlY2lh
bEZsb2F0c18sIHByZWNpc2lvbl8pKTsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToK
KyAgeworICAgIC8vIElzIE5VTEwgaXMgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/CisgICAg
Y2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFs
dWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9R
dW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7CisgICAg
ZWxzZSBwdXNoVmFsdWUoIiIpOworICAgIGJyZWFrOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVl
OgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7CisgICAgYnJl
YWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOworICAg
IGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVy
cyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsKKyAgICBpZiAobWVtYmVycy5lbXB0eSgpKQorICAg
ICAgcHVzaFZhbHVlKCJ7fSIpOworICAgIGVsc2UgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7
Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9
IG1lbWJlcnMuYmVnaW4oKTsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgc3RkOjpzdHJpbmcg
Y29uc3QmIG5hbWUgPSAqaXQ7CisgICAgICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFs
dWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOwor
ICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZ04obmFtZS5kYXRhKCks
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihuYW1lLmxlbmd0aCgpKSkpOworICAgICAgICAqc291dF8g
PDwgY29sb25TeW1ib2xfOworICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAg
ICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0
ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgKnNvdXRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1
ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAg
ICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7CisgICAgfQorICB9IGJyZWFrOworICB9Cit9CisKK3Zv
aWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25zdCYg
dmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNpemUgPT0g
MCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJvb2wgaXNNdWx0aUxpbmUg
PSAoY3NfID09IENvbW1lbnRTdHlsZTo6QWxsKSB8fCBpc011bHRpbmVBcnJheSh2YWx1ZSk7Cisg
ICAgaWYgKGlzTXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKKyAgICAg
IGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0
eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7OykgeworICAgICAg
ICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAgICAgd3JpdGVD
b21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmIChoYXNDaGlsZFZhbHVl
KQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgICAg
ICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUp
OworICAgICAgICAgIGluZGVudGVkXyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICgr
K2luZGV4ID09IHNpemUpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAq
c291dF8gPDwgIiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShj
aGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJ
bmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKKyAgICB7
CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAgICAgICpzb3V0
XyA8PCAiWyI7CisgICAgICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAi
OworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkg
eworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgICpzb3V0XyA8PCAiLCAiOworICAg
ICAgICAqc291dF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAgIGlmICgh
aW5kZW50YXRpb25fLmVtcHR5KCkpICpzb3V0XyA8PCAiICI7CisgICAgICAqc291dF8gPDwgIl0i
OworICAgIH0KKyAgfQorfQorCitib29sIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRp
bmVBcnJheShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7
CisgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87CisgIGNoaWxk
VmFsdWVzXy5jbGVhcigpOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAh
aXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZh
bHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwg
Y2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRW
YWx1ZS5zaXplKCkgPiAwKTsKKyAgfQorICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBs
aW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAorICB7CisgICAgY2hpbGRWYWx1ZXNfLnJlc2Vy
dmUoc2l6ZSk7CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKKyAgICBpbnQgbGluZUxlbmd0
aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKKyAgICBmb3Ig
KGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGhhc0Nv
bW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1
ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICAgIGxpbmVM
ZW5ndGggKz0gaW50KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAgICBh
ZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8
IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGluZTsK
K30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKHN0ZDo6c3RyaW5n
IGNvbnN0JiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVz
Xy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNlCisgICAgKnNvdXRfIDw8IHZhbHVlOworfQorCit2
b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgLy8gYmxlcCBp
bnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQgdGhlIHNvLWZhci13cml0dGVuIHN0cmluZworICAvLyB0
byBkZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0CisgIC8vIHdp
dGggYSBzdHJlYW0gd2UgY2Fubm90IGRvIHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBz
dGF0ZS4KKyAgLy8gVGhlIGNhbGxlciBjaGVja3MgaW5kZW50ZWRfLgorCisgIGlmICghaW5kZW50
YXRpb25fLmVtcHR5KCkpIHsKKyAgICAvLyBJbiB0aGlzIGNhc2UsIGRyb3AgbmV3bGluZXMgdG9v
LgorICAgICpzb3V0XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187CisgIH0KK30KKwordm9pZCBC
dWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KHN0ZDo6c3RyaW5nIGNvbnN0
JiB2YWx1ZSkgeworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAgKnNvdXRfIDw8
IHZhbHVlOworICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsgfQorCit2
b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp1bmluZGVudCgpIHsKKyAgYXNzZXJ0KGluZGVu
dFN0cmluZ18uc2l6ZSgpID49IGluZGVudGF0aW9uXy5zaXplKCkpOworICBpbmRlbnRTdHJpbmdf
LnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudGF0aW9uXy5zaXplKCkpOworfQor
Cit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShW
YWx1ZSBjb25zdCYgcm9vdCkgeworICBpZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0
dXJuOworICBpZiAoIXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47
CisKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5n
JiBjb21tZW50ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUpOworICBzdGQ6OnN0cmlu
Zzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIg
IT0gY29tbWVudC5lbmQoKSkgeworICAgICpzb3V0XyA8PCAqaXRlcjsKKyAgICBpZiAoKml0ZXIg
PT0gJ1xuJyAmJgorICAgICAgIChpdGVyICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkg
PT0gJy8nKSkKKyAgICAgIC8vIHdyaXRlSW5kZW50KCk7ICAvLyB3b3VsZCB3cml0ZSBleHRyYSBu
ZXdsaW5lCisgICAgICAqc291dF8gPDwgaW5kZW50U3RyaW5nXzsKKyAgICArK2l0ZXI7CisgIH0K
KyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KSB7Cisg
IGlmIChjc18gPT0gQ29tbWVudFN0eWxlOjpOb25lKSByZXR1cm47CisgIGlmIChyb290Lmhhc0Nv
bW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCisgICAgKnNvdXRfIDw8ICIgIiArIHJvb3Qu
Z2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21t
ZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICB3cml0ZUluZGVudCgpOworICAgICpzb3V0XyA8PCBy
b290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgfQorfQorCisvLyBzdGF0aWMKK2Jvb2wg
QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAg
ICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAg
ICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKK30KKworLy8vLy8vLy8vLy8vLy8v
CisvLyBTdHJlYW1Xcml0ZXIKKworU3RyZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIoKQorICAgIDog
c291dF8oTlVMTCkKK3sKK30KK1N0cmVhbVdyaXRlcjo6flN0cmVhbVdyaXRlcigpCit7Cit9CitT
dHJlYW1Xcml0ZXI6OkZhY3Rvcnk6On5GYWN0b3J5KCkKK3t9CitTdHJlYW1Xcml0ZXJCdWlsZGVy
OjpTdHJlYW1Xcml0ZXJCdWlsZGVyKCkKK3sKKyAgc2V0RGVmYXVsdHMoJnNldHRpbmdzXyk7Cit9
CitTdHJlYW1Xcml0ZXJCdWlsZGVyOjp+U3RyZWFtV3JpdGVyQnVpbGRlcigpCit7fQorU3RyZWFt
V3JpdGVyKiBTdHJlYW1Xcml0ZXJCdWlsZGVyOjpuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdAorewor
ICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9IHNldHRpbmdzX1siaW5kZW50YXRpb24iXS5hc1N0
cmluZygpOworICBzdGQ6OnN0cmluZyBjc19zdHIgPSBzZXR0aW5nc19bImNvbW1lbnRTdHlsZSJd
LmFzU3RyaW5nKCk7CisgIGJvb2wgZXljID0gc2V0dGluZ3NfWyJlbmFibGVZQU1MQ29tcGF0aWJp
bGl0eSJdLmFzQm9vbCgpOworICBib29sIGRucCA9IHNldHRpbmdzX1siZHJvcE51bGxQbGFjZWhv
bGRlcnMiXS5hc0Jvb2woKTsKKyAgYm9vbCB1c2YgPSBzZXR0aW5nc19bInVzZVNwZWNpYWxGbG9h
dHMiXS5hc0Jvb2woKTsgCisgIHVuc2lnbmVkIGludCBwcmUgPSBzZXR0aW5nc19bInByZWNpc2lv
biJdLmFzVUludCgpOworICBDb21tZW50U3R5bGU6OkVudW0gY3MgPSBDb21tZW50U3R5bGU6OkFs
bDsKKyAgaWYgKGNzX3N0ciA9PSAiQWxsIikgeworICAgIGNzID0gQ29tbWVudFN0eWxlOjpBbGw7
CisgIH0gZWxzZSBpZiAoY3Nfc3RyID09ICJOb25lIikgeworICAgIGNzID0gQ29tbWVudFN0eWxl
OjpOb25lOworICB9IGVsc2UgeworICAgIHRocm93UnVudGltZUVycm9yKCJjb21tZW50U3R5bGUg
bXVzdCBiZSAnQWxsJyBvciAnTm9uZSciKTsKKyAgfQorICBzdGQ6OnN0cmluZyBjb2xvblN5bWJv
bCA9ICIgOiAiOworICBpZiAoZXljKSB7CisgICAgY29sb25TeW1ib2wgPSAiOiAiOworICB9IGVs
c2UgaWYgKGluZGVudGF0aW9uLmVtcHR5KCkpIHsKKyAgICBjb2xvblN5bWJvbCA9ICI6IjsKKyAg
fQorICBzdGQ6OnN0cmluZyBudWxsU3ltYm9sID0gIm51bGwiOworICBpZiAoZG5wKSB7CisgICAg
bnVsbFN5bWJvbCA9ICIiOworICB9CisgIGlmIChwcmUgPiAxNykgcHJlID0gMTc7CisgIHN0ZDo6
c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sID0gIiI7CisgIHJldHVybiBuZXcgQnVpbHRTdHls
ZWRTdHJlYW1Xcml0ZXIoCisgICAgICBpbmRlbnRhdGlvbiwgY3MsCisgICAgICBjb2xvblN5bWJv
bCwgbnVsbFN5bWJvbCwgZW5kaW5nTGluZUZlZWRTeW1ib2wsIHVzZiwgcHJlKTsKK30KK3N0YXRp
YyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tl
eXMpCit7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7CisgIHZhbGlkX2tleXMtPmluc2VydCgiaW5k
ZW50YXRpb24iKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJjb21tZW50U3R5bGUiKTsKKyAgdmFs
aWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSIpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vob2xkZXJzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgi
dXNlU3BlY2lhbEZsb2F0cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInByZWNpc2lvbiIpOwor
fQorYm9vbCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxp
ZCkgY29uc3QKK3sKKyAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAgaWYgKCFpbnZhbGlkKSBp
bnZhbGlkID0gJm15X2ludmFsaWQ7ICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBO
VUxMCisgIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKKyAgc3RkOjpzZXQ8c3RkOjpzdHJp
bmc+IHZhbGlkX2tleXM7CisgIGdldFZhbGlkV3JpdGVyS2V5cygmdmFsaWRfa2V5cyk7CisgIFZh
bHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKKyAgc2l6ZV90
IG4gPSBrZXlzLnNpemUoKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAg
ICBzdGQ6OnN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKKyAgICBpZiAodmFsaWRfa2V5cy5m
aW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgeworICAgICAgaW52W2tleV0gPSBzZXR0aW5n
c19ba2V5XTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIDB1ID09IGludi5zaXplKCk7Cit9CitWYWx1
ZSYgU3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkpCit7Cisg
IHJldHVybiBzZXR0aW5nc19ba2V5XTsKK30KKy8vIHN0YXRpYwordm9pZCBTdHJlYW1Xcml0ZXJC
dWlsZGVyOjpzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGluZ3MpCit7CisgIC8vISBbU3Ry
ZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRzXQorICAoKnNldHRpbmdzKVsiY29tbWVudFN0eWxlIl0g
PSAiQWxsIjsKKyAgKCpzZXR0aW5ncylbImluZGVudGF0aW9uIl0gPSAiXHQiOworICAoKnNldHRp
bmdzKVsiZW5hYmxlWUFNTENvbXBhdGliaWxpdHkiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsi
ZHJvcE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsidXNlU3BlY2lh
bEZsb2F0cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJwcmVjaXNpb24iXSA9IDE3OworICAv
LyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0c10KK30KKworc3RkOjpzdHJpbmcgd3JpdGVT
dHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBidWlsZGVyLCBWYWx1ZSBjb25zdCYg
cm9vdCkgeworICBzdGQ6Om9zdHJpbmdzdHJlYW0gc291dDsKKyAgU3RyZWFtV3JpdGVyUHRyIGNv
bnN0IHdyaXRlcihidWlsZGVyLm5ld1N0cmVhbVdyaXRlcigpKTsKKyAgd3JpdGVyLT53cml0ZShy
b290LCAmc291dCk7CisgIHJldHVybiBzb3V0LnN0cigpOworfQorCitzdGQ6Om9zdHJlYW0mIG9w
ZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBzb3V0LCBWYWx1ZSBjb25zdCYgcm9vdCkgeworICBTdHJl
YW1Xcml0ZXJCdWlsZGVyIGJ1aWxkZXI7CisgIFN0cmVhbVdyaXRlclB0ciBjb25zdCB3cml0ZXIo
YnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRlci0+d3JpdGUocm9vdCwgJnNvdXQp
OworICByZXR1cm4gc291dDsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl93cml0
ZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzk2ZTY3
NzIyZjM2OTQ3MDRkM2RhYjdhM2RlYWJmYTc2OWE0NzlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHAKQEAgLTAsMCAr
MSwyOTggQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLworI2RlZmluZSBWUl9BUElfRVhQT1JUIDEKKyNpbmNsdWRlICJvcGVudnIuaCIKKyNp
bmNsdWRlICJpdnJjbGllbnRjb3JlLmgiCisjaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgor
I2luY2x1ZGUgInNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgImVudnZhcnRvb2xz
X3B1YmxpYy5oIgorI2luY2x1ZGUgImhtZGVycm9yc19wdWJsaWMuaCIKKyNpbmNsdWRlICJ2cnBh
dGhyZWdpc3RyeV9wdWJsaWMuaCIKKyNpbmNsdWRlIDxtdXRleD4KKwordXNpbmcgdnI6OkVWUklu
aXRFcnJvcjsKK3VzaW5nIHZyOjpJVlJTeXN0ZW07Cit1c2luZyB2cjo6SVZSQ2xpZW50Q29yZTsK
K3VzaW5nIHZyOjpWUkluaXRFcnJvcl9Ob25lOworCituYW1lc3BhY2UgdnIKK3sKKworc3RhdGlj
IHZvaWQgKmdfcFZSTW9kdWxlID0gTlVMTDsKK3N0YXRpYyBJVlJDbGllbnRDb3JlICpnX3BIbWRT
eXN0ZW0gPSBOVUxMOworc3RhdGljIHN0ZDo6cmVjdXJzaXZlX211dGV4IGdfbXV0ZXhTeXN0ZW07
CisKKwordHlwZWRlZiB2b2lkKiAoKlZSQ2xpZW50Q29yZUZhY3RvcnlGbikoY29uc3QgY2hhciAq
cEludGVyZmFjZU5hbWUsIGludCAqcFJldHVybkNvZGUpOworCitzdGF0aWMgdWludDMyX3QgZ19u
VlJUb2tlbiA9IDA7CisKK3VpbnQzMl90IFZSX0dldEluaXRUb2tlbigpCit7CisgICAgICAgcmV0
dXJuIGdfblZSVG9rZW47Cit9CisKK0VWUkluaXRFcnJvciBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJu
YWwoKTsKK3ZvaWQgQ2xlYW51cEludGVybmFsSW50ZXJmYWNlcygpOworCisKK3VpbnQzMl90IFZS
X0luaXRJbnRlcm5hbDIoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgdnI6OkVWUkFwcGxpY2F0aW9u
VHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cEluZm8gKQoreworICAg
ICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5
c3RlbSApOworCisgICAgICAgRVZSSW5pdEVycm9yIGVyciA9IFZSX0xvYWRIbWRTeXN0ZW1JbnRl
cm5hbCgpOworICAgICAgIGlmICggZXJyID09IHZyOjpWUkluaXRFcnJvcl9Ob25lICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGVyciA9IGdfcEhtZFN5c3RlbS0+SW5pdCggZUFwcGxpY2F0aW9u
VHlwZSwgcFN0YXJ0dXBJbmZvICk7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwZUVycm9yICkK
KyAgICAgICAgICAgICAgKnBlRXJyb3IgPSBlcnI7CisKKyAgICAgICBpZiAoIGVyciAhPSBWUklu
aXRFcnJvcl9Ob25lICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQo
IGdfcFZSTW9kdWxlICk7CisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbSA9IE5VTEw7CisgICAg
ICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVMTDsKKworICAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICB9CisKKyAgICAgICByZXR1cm4gKytnX25WUlRva2VuOworfQorCitWUl9JTlRFUkZB
Q0UgdWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfSW5pdEludGVybmFsKCBFVlJJbml0RXJyb3IgKnBl
RXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlICk7CisKK3VpbnQzMl90
IFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVycm9yLCB2cjo6RVZSQXBwbGljYXRp
b25UeXBlIGVBcHBsaWNhdGlvblR5cGUgKQoreworICAgICAgIHJldHVybiBWUl9Jbml0SW50ZXJu
YWwyKCBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlLCBudWxscHRyICk7Cit9CisKK3ZvaWQgVlJf
U2h1dGRvd25JbnRlcm5hbCgpCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJz
aXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisgICAgICAgCisgICAgICAgaWYgKCBn
X3BIbWRTeXN0ZW0gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZ19wSG1kU3lzdGVtLT5DbGVh
bnVwKCk7CisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbSA9IE5VTEw7CisgICAgICAgfQorICAg
ICAgIGlmICggZ19wVlJNb2R1bGUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgU2hhcmVkTGli
X1VubG9hZCggZ19wVlJNb2R1bGUgKTsKKyAgICAgICAgICAgICAgZ19wVlJNb2R1bGUgPSBOVUxM
OworICAgICAgIH0KKworI2lmICFkZWZpbmVkKCBWUl9BUElfUFVCTElDICkKKyAgICAgICBDbGVh
bnVwSW50ZXJuYWxJbnRlcmZhY2VzKCk7CisjZW5kaWYKKworICAgICAgICsrZ19uVlJUb2tlbjsK
K30KKworRVZSSW5pdEVycm9yIFZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCgpCit7CisgICAgICAg
c3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xvZ1BhdGg7CisKKyAgICAg
ICBib29sIGJSZWFkUGF0aFJlZ2lzdHJ5ID0gQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UGF0
aHMoICZzUnVudGltZVBhdGgsICZzQ29uZmlnUGF0aCwgJnNMb2dQYXRoLCBOVUxMLCBOVUxMICk7
CisgICAgICAgaWYoICFiUmVhZFBhdGhSZWdpc3RyeSApCisgICAgICAgeworICAgICAgICAgICAg
ICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQ7CisgICAg
ICAgfQorCisgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZv
ciB2cmNsaWVudC5kbGwKKyAgICAgICAvLyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVh
bGx5IGV4aXN0cy4KKyAgICAgICBpZiggIVBhdGhfSXNEaXJlY3RvcnkoIHNSdW50aW1lUGF0aCAp
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9J
bnN0YWxsYXRpb25Ob3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICAvLyBCZWNhdXNlIHdlIGRv
bid0IGhhdmUgYSB3YXkgdG8gc2VsZWN0IGRlYnVnIHZzLiByZWxlYXNlIHlldCB3ZSdsbCBqdXN0
CisgICAgICAgLy8gdXNlIGRlYnVnIGlmIGl0J3MgdGhlcmUKKyNpZiBkZWZpbmVkKCBMSU5VWDY0
ICkKKyAgICAgICBzdGQ6OnN0cmluZyBzVGVzdFBhdGggPSBQYXRoX0pvaW4oIHNSdW50aW1lUGF0
aCwgImJpbiIsIFBMQVRTVUJESVIgKTsKKyNlbHNlCisgICAgICAgc3RkOjpzdHJpbmcgc1Rlc3RQ
YXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBhdGgsICJiaW4iICk7CisjZW5kaWYKKyAgICAgICBp
ZiggIVBhdGhfSXNEaXJlY3RvcnkoIHNUZXN0UGF0aCApICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0OworICAg
ICAgIH0KKworI2lmIGRlZmluZWQoIFdJTjY0ICkKKyAgICAgICBzdGQ6OnN0cmluZyBzRExMUGF0
aCA9IFBhdGhfSm9pbiggc1Rlc3RQYXRoLCAidnJjbGllbnRfeDY0IiBEWU5BTUlDX0xJQl9FWFQg
KTsKKyNlbHNlCisgICAgICAgc3RkOjpzdHJpbmcgc0RMTFBhdGggPSBQYXRoX0pvaW4oIHNUZXN0
UGF0aCwgInZyY2xpZW50IiBEWU5BTUlDX0xJQl9FWFQgKTsKKyNlbmRpZgorCisgICAgICAgLy8g
b25seSBsb29rIGluIHRoZSBvdmVycmlkZQorICAgICAgIHZvaWQgKnBNb2QgPSBTaGFyZWRMaWJf
TG9hZCggc0RMTFBhdGguY19zdHIoKSApOworICAgICAgIC8vIG5vdGhpbmcgbW9yZSB0byBkbyBp
ZiB3ZSBjYW4ndCBsb2FkIHRoZSBETEwKKyAgICAgICBpZiggIXBNb2QgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91
bmQ7CisgICAgICAgfQorCisgICAgICAgVlJDbGllbnRDb3JlRmFjdG9yeUZuIGZuRmFjdG9yeSA9
ICggVlJDbGllbnRDb3JlRmFjdG9yeUZuICkoIFNoYXJlZExpYl9HZXRGdW5jdGlvbiggcE1vZCwg
IlZSQ2xpZW50Q29yZUZhY3RvcnkiICkgKTsKKyAgICAgICBpZiggIWZuRmFjdG9yeSApCisgICAg
ICAgeworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBwTW9kICk7CisgICAgICAgICAg
ICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQ7CisgICAgICAg
fQorCisgICAgICAgaW50IG5SZXR1cm5Db2RlID0gMDsKKyAgICAgICBnX3BIbWRTeXN0ZW0gPSBz
dGF0aWNfY2FzdDwgSVZSQ2xpZW50Q29yZSAqID4gKCBmbkZhY3RvcnkoIHZyOjpJVlJDbGllbnRD
b3JlX1ZlcnNpb24sICZuUmV0dXJuQ29kZSApICk7CisgICAgICAgaWYoICFnX3BIbWRTeXN0ZW0g
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggcE1vZCApOworICAg
ICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQ7
CisgICAgICAgfQorCisgICAgICAgZ19wVlJNb2R1bGUgPSBwTW9kOworICAgICAgIHJldHVybiBW
UkluaXRFcnJvcl9Ob25lOworfQorCisKK3ZvaWQgKlZSX0dldEdlbmVyaWNJbnRlcmZhY2UoY29u
c3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yKQorewor
ICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRl
eFN5c3RlbSApOworCisgICAgICAgaWYgKCFnX3BIbWRTeXN0ZW0pCisgICAgICAgeworICAgICAg
ICAgICAgICBpZiAocGVFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICpwZUVycm9yID0gdnI6
OlZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQ7CisgICAgICAgICAgICAgIHJldHVybiBO
VUxMOworICAgICAgIH0KKworICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldEdlbmVyaWNJ
bnRlcmZhY2UocGNoSW50ZXJmYWNlVmVyc2lvbiwgcGVFcnJvcik7Cit9CisKK2Jvb2wgVlJfSXNJ
bnRlcmZhY2VWZXJzaW9uVmFsaWQoY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbikKK3sK
KyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0
ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmICghZ19wSG1kU3lzdGVtKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHJldHVybiBnX3BIbWRT
eXN0ZW0tPklzSW50ZXJmYWNlVmVyc2lvblZhbGlkKHBjaEludGVyZmFjZVZlcnNpb24pID09IFZS
SW5pdEVycm9yX05vbmU7Cit9CisKK2Jvb2wgVlJfSXNIbWRQcmVzZW50KCkKK3sKKyAgICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0g
KTsKKworICAgICAgIGlmKCBnX3BIbWRTeXN0ZW0gKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Ly8gaWYgd2UncmUgYWxyZWFkeSBpbml0aWFsaXplZCwganVzdCBjYWxsIHRocm91Z2gKKyAgICAg
ICAgICAgICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+QklzSG1kUHJlc2VudCgpOworICAgICAgIH0K
KyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2UgbmVl
ZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKKyAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVyciA9
IFZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCgpOworICAgICAgICAgICAgICBpZiggZXJyICE9IFZS
SW5pdEVycm9yX05vbmUgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgICAgICAgIGJvb2wgYkhhc0htZCA9IGdfcEhtZFN5c3RlbS0+QklzSG1kUHJlc2VudCgp
OworCisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbSA9IE5VTEw7CisgICAgICAgICAgICAgIFNo
YXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxlICk7CisgICAgICAgICAgICAgIGdfcFZSTW9kdWxl
ID0gTlVMTDsKKworICAgICAgICAgICAgICByZXR1cm4gYkhhc0htZDsKKyAgICAgICB9Cit9CisK
Ky8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8K
K2Jvb2wgVlJfSXNSdW50aW1lSW5zdGFsbGVkKCkKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIGlm
KCBnX3BIbWRTeXN0ZW0gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gaWYgd2UncmUgYWxy
ZWFkeSBpbml0aWFsaXplZCwgT3BlblZSIGlzIG9idmlvdXNseSBpbnN0YWxsZWQKKyAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAg
ICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29yaworICAg
ICAgICAgICAgICBzdGQ6OnN0cmluZyBzUnVudGltZVBhdGgsIHNDb25maWdQYXRoLCBzTG9nUGF0
aDsKKworICAgICAgICAgICAgICBib29sIGJSZWFkUGF0aFJlZ2lzdHJ5ID0gQ1ZSUGF0aFJlZ2lz
dHJ5X1B1YmxpYzo6R2V0UGF0aHMoICZzUnVudGltZVBhdGgsICZzQ29uZmlnUGF0aCwgJnNMb2dQ
YXRoLCBOVUxMLCBOVUxMICk7CisgICAgICAgICAgICAgIGlmKCAhYlJlYWRQYXRoUmVnaXN0cnkg
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBmaWd1cmUgb3V0IHdoZXJlIHdlJ3Jl
IGdvaW5nIHRvIGxvb2sgZm9yIHZyY2xpZW50LmRsbAorICAgICAgICAgICAgICAvLyBzZWUgaWYg
dGhlIHNwZWNpZmllZCBwYXRoIGFjdHVhbGx5IGV4aXN0cy4KKyAgICAgICAgICAgICAgaWYoICFQ
YXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSApCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIC8vIHRoZSBpbnN0YWxsYXRpb24gbWF5IGJlIGNvcnJ1cHQgaW4gc29tZSB3YXksIGJ1
dCBpdCBjZXJ0YWlubHkgbG9va3MgaW5zdGFsbGVkCisgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgIH0KK30KKworCisvKiogUmV0dXJucyB3aGVyZSBPcGVuVlIgcnVudGltZSBpcyBp
bnN0YWxsZWQuICovCitjb25zdCBjaGFyICpWUl9SdW50aW1lUGF0aCgpCit7CisgICAgICAgLy8g
b3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3b3JrCisgICAgICAgc3RhdGljIHN0
ZDo6c3RyaW5nIHNSdW50aW1lUGF0aDsKKyAgICAgICBzdGQ6OnN0cmluZyBzQ29uZmlnUGF0aCwg
c0xvZ1BhdGg7CisKKyAgICAgICBib29sIGJSZWFkUGF0aFJlZ2lzdHJ5ID0gQ1ZSUGF0aFJlZ2lz
dHJ5X1B1YmxpYzo6R2V0UGF0aHMoICZzUnVudGltZVBhdGgsICZzQ29uZmlnUGF0aCwgJnNMb2dQ
YXRoLCBOVUxMLCBOVUxMICk7CisgICAgICAgaWYgKCAhYlJlYWRQYXRoUmVnaXN0cnkgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgfQorCisgICAgICAg
Ly8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZvciB2cmNsaWVudC5kbGwK
KyAgICAgICAvLyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVhbGx5IGV4aXN0cy4KKyAg
ICAgICBpZiAoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSApCisgICAgICAgewor
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4g
c1J1bnRpbWVQYXRoLmNfc3RyKCk7Cit9CisKKworLyoqIFJldHVybnMgdGhlIHN5bWJvbCB2ZXJz
aW9uIG9mIGFuIEhNRCBlcnJvci4gKi8KK2NvbnN0IGNoYXIgKlZSX0dldFZSSW5pdEVycm9yQXNT
eW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBpZigg
Z19wSG1kU3lzdGVtICkKKyAgICAgICAgICAgICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+R2V0SURG
b3JWUkluaXRFcnJvciggZXJyb3IgKTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVy
biBHZXRJREZvclZSSW5pdEVycm9yKCBlcnJvciApOworfQorCisKKy8qKiBSZXR1cm5zIHRoZSBl
bmdsaXNoIHN0cmluZyB2ZXJzaW9uIG9mIGFuIEhNRCBlcnJvci4gKi8KK2NvbnN0IGNoYXIgKlZS
X0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUkluaXRFcnJvciBlcnJvciAp
Cit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBn
X211dGV4U3lzdGVtICk7CisKKyAgICAgICBpZiAoIGdfcEhtZFN5c3RlbSApCisgICAgICAgICAg
ICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggZXJy
b3IgKTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBHZXRFbmdsaXNoU3RyaW5n
Rm9ySG1kRXJyb3IoIGVycm9yICk7Cit9CisKKworVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIgKlZS
X0NBTExUWVBFIFZSX0dldFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVycm9y
ICk7CisKKy8qKiBSZXR1cm5zIHRoZSBlbmdsaXNoIHN0cmluZyB2ZXJzaW9uIG9mIGFuIEhNRCBl
cnJvci4gKi8KK2NvbnN0IGNoYXIgKlZSX0dldFN0cmluZ0ZvckhtZEVycm9yKCBFVlJJbml0RXJy
b3IgZXJyb3IgKQoreworICAgICAgIHJldHVybiBWUl9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERl
c2NyaXB0aW9uKCBlcnJvciApOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGJkMjNkNDBlZTQ5ZjQwODBmNzFiMjY2MDMzZDY0ZGExY2ZlZmMzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJs
aWMuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29y
cG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJkaXJ0b29sc19wdWJsaWMuaCIKKyNp
bmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgi
CisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWZkZWYgX1dJ
TjMyCisjaW5jbHVkZSAid2luZG93cy5oIgorI2Vsc2UKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNp
bmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5
cGVzLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoIE9TWCApCisjaW5jbHVkZSA8c3lzL3N5c2xp
bWl0cy5oPgorI2VuZGlmCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTog
dXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgZGlycyAmIHN1YmRpcnMKKy8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK2Jvb2wgQkNyZWF0ZURpcmVjdG9yeVJlY3Vyc2l2ZSggY29uc3QgY2hhciAqcGNo
UGF0aCApCit7CisgICAgICAgLy8gRG9lcyBpdCBhbHJlYWR5IGV4aXN0PworICAgICAgIGlmICgg
UGF0aF9Jc0RpcmVjdG9yeSggcGNoUGF0aCApICkKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICAgICAvLyBjb3B5IHRoZSBwYXRoIGludG8gc29tZXRoaW5nIHdlIGNhbiBtdW5nZQor
ICAgICAgIGludCBsZW4gPSAoaW50KXN0cmxlbiggcGNoUGF0aCApOworICAgICAgIGNoYXIgKnBh
dGggPSAoY2hhciAqKW1hbGxvYyggbGVuICsgMSApOworICAgICAgIHN0cmNweSggcGF0aCwgcGNo
UGF0aCApOworCisgICAgICAgLy8gV2FsayBiYWNrd2FyZHMgdG8gZmlyc3Qgbm9uLWV4aXN0aW5n
IGRpciB0aGF0IHdlIGZpbmQKKyAgICAgICBjaGFyICpzID0gcGF0aCArIGxlbiAtIDE7CisKKyAg
ICAgICBjb25zdCBjaGFyIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworICAgICAgIHdoaWxlICgg
cyA+IHBhdGggKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCAqcyA9PSBzbGFzaCApCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpzID0gJ1wwJzsKKyAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfSXNEaXJlY3RvcnkoIHBhdGggKTsKKyAg
ICAgICAgICAgICAgICAgICAgICpzID0gc2xhc2g7CisKKyAgICAgICAgICAgICAgICAgICAgIGlm
ICggYkV4aXN0cyApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKytzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIC0tczsKKyAg
ICAgICB9CisKKyAgICAgICAvLyBhbmQgdGhlbiBtb3ZlIGZvcndhcmRzIGZyb20gdGhlcmUKKwor
ICAgICAgIHdoaWxlICggKnMgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCAqcyA9PSBz
bGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpzID0gJ1wwJzsK
KyAgICAgICAgICAgICAgICAgICAgIEJDcmVhdGVEaXJlY3RvcnkoIHBhdGggKTsKKyAgICAgICAg
ICAgICAgICAgICAgICpzID0gc2xhc2g7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
cysrOworICAgICAgIH0KKworICAgICAgIGJvb2wgYlJldFZhbCA9IEJDcmVhdGVEaXJlY3Rvcnko
IHBhdGggKTsKKyAgICAgICBmcmVlKCBwYXRoICk7CisgICAgICAgcmV0dXJuIGJSZXRWYWw7Cit9
CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ3JlYXRlcyB0aGUgZGly
ZWN0b3J5LCByZXR1cm5pbmcgdHJ1ZSBpZiBpdCBpcyBjcmVhdGVkLCBvciBpZiBpdCBhbHJlYWR5
IGV4aXN0ZWQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgQkNyZWF0ZURpcmVjdG9yeSgg
Y29uc3QgY2hhciAqcGNoUGF0aCApCit7CisjaWZkZWYgV0lOMzIKKyAgICAgICBzdGQ6OndzdHJp
bmcgd1BhdGggPSBVVEY4dG8xNiggcGNoUGF0aCApOworICAgICAgIGlmICggOjpDcmVhdGVEaXJl
Y3RvcnlXKCB3UGF0aC5jX3N0cigpLCBOVUxMICkgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgICAgIGlmICggOjpHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9BTFJFQURZX0VYSVNU
UyApCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgcmV0dXJuIGZhbHNlOwor
I2Vsc2UKKyAgICAgICBpbnQgaSA9IG1rZGlyKCBwY2hQYXRoLCBTX0lSV1hVIHwgU19JUldYRyB8
IFNfSVJXWE8gKTsKKyAgICAgICBpZiAoIGkgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgIGlmICggZXJybm8gPT0gRUVYSVNUICkKKyAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjA0OGI0MWI3ODE0ZmRlMDcyNzc2NGFlNzk0ZWRlOGUwZGZkNGU2MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGly
dG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwxNyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZh
bHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZz4KKworCisjaWYgIWRlZmluZWQoX1dJTjMyKQor
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWYKKwor
CitleHRlcm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQ
YXRoICk7CitleHRlcm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQYXRo
ICk7CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92
cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlZDE2ZDlmODU2MjZm
Y2EwNjA0YzlmMWVjZjY2NDAyYzliYThhZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5jcHAKQEAgLTAs
MCArMSw0NiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09
PT09PT09PS8vCisjaW5jbHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSA8c3Rk
bGliLmg+CisKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyN1
bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjdW5kZWYgU2V0RW52aXJvbm1lbnRWYXJpYWJs
ZQorI2VuZGlmCisKKworc3RkOjpzdHJpbmcgR2V0RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3Qg
Y2hhciAqcGNoVmFyTmFtZSApCit7CisjaWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgY2hhciBy
Y2hWYWx1ZVszMjc2N107IC8vIG1heCBzaXplIGZvciBhbiBlbnYgdmFyIG9uIFdpbmRvd3MKKyAg
ICAgICBEV09SRCBjQ2hhcnMgPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlQSggcGNoVmFyTmFtZSwg
cmNoVmFsdWUsIHNpemVvZiggcmNoVmFsdWUgKSApOworICAgICAgIGlmKCBjQ2hhcnMgPT0gMCAp
CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJl
dHVybiByY2hWYWx1ZTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAgICAgY2hhciAqcGNoVmFs
dWUgPSBnZXRlbnYoIHBjaFZhck5hbWUgKTsKKyAgICAgICBpZiggcGNoVmFsdWUgKQorICAgICAg
ICAgICAgICByZXR1cm4gcGNoVmFsdWU7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1
cm4gIiI7CisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBQbGF0Zm9ybSIKKyNlbmRpZgorfQor
CisKK2Jvb2wgU2V0RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSwg
Y29uc3QgY2hhciAqcGNoVmFyVmFsdWUgKQoreworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAg
IHJldHVybiAwICE9IFNldEVudmlyb25tZW50VmFyaWFibGVBKCBwY2hWYXJOYW1lLCBwY2hWYXJW
YWx1ZSApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICBpZiggcGNoVmFyVmFsdWUgPT0g
TlVMTCApCisgICAgICAgICAgICAgIHJldHVybiAwID09IHVuc2V0ZW52KCBwY2hWYXJOYW1lICk7
CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gMCA9PSBzZXRlbnYoIHBjaFZhck5h
bWUsIHBjaFZhclZhbHVlLCAxICk7CisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBQbGF0Zm9y
bSIKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92
cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RlOTgxYWMzZTM5
NzA2ZDU5YTAwYzJjNDFmODU1OGU0YzVkMjA2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmgKQEAgLTAs
MCArMSw3IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09
PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RyaW5nPgorCitzdGQ6OnN0cmlu
ZyBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lICk7Citib29s
IFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUsIGNvbnN0IGNo
YXIgKnBjaFZhclZhbHVlICk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTJlMWM0
YjNhODEzMDhjMDE5ZDcyYmNjY2Q3YzZhZTcwOTgxOWY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcApA
QCAtMCwwICsxLDIyOSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCisjaW5jbHVkZSAib3BlbnZyLmgiCisjaW5jbHVkZSAiaG1kZXJyb3Jz
X3B1YmxpYy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCit1
c2luZyBuYW1lc3BhY2UgdnI7CisKKyNkZWZpbmUgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKGVudW1W
YWx1ZSkgY2FzZSBlbnVtVmFsdWU6IHJldHVybiAjZW51bVZhbHVlOworCisKK2NvbnN0IGNoYXIg
KkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQor
eworICAgICAgIHN3aXRjaCggZUVycm9yICkKKyAgICAgICB7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Ob25lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJObyBFcnJvciAoMCkiOworCisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
SW5zdGFsbGF0aW9uIE5vdCBGb3VuZCAoMTAwKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
bml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0
YWxsYXRpb24gQ29ycnVwdCAoMTAxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZS
Q2xpZW50RExMTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJ2cmNsaWVudCBT
aGFyZWQgTGliIE5vdCBGb3VuZCAoMTAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X0ZpbGVOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
RmlsZSBOb3QgRm91bmQgKDEwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GYWN0
b3J5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRmFjdG9yeSBG
dW5jdGlvbiBOb3QgRm91bmQgKDEwNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9J
bnRlcmZhY2VOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludGVyZmFjZSBO
b3QgRm91bmQgKDEwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgSW50ZXJm
YWNlICgxMDYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVj
dG9yeUludmFsaWQ6ICAgICAgIHJldHVybiAiVXNlciBDb25maWcgRGlyZWN0b3J5IEludmFsaWQg
KDEwNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCAoMTA4KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIk5vdCBJbml0aWFsaXplZCAoMTA5KSI7CisgICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDEx
MCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGg6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbmZpZyBwYXRoIGNvdWxkIG5vdCBi
ZSBsb2NhdGVkICgxMTEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRo
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJMb2cgcGF0aCBjb3Vs
ZCBub3QgYmUgbG9jYXRlZCAoMTEyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Bh
dGhSZWdpc3RyeU5vdFdyaXRhYmxlOiAgICAgICAgICAgICAgcmV0dXJuICJVbmFibGUgdG8gd3Jp
dGUgcGF0aCByZWdpc3RyeSAoMTEzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Fw
cEluZm9Jbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQXBwIGluZm8gbWFu
YWdlciBpbml0IGZhaWxlZCAoMTE0KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW50
ZXJuYWwgUmV0cnkgKDExNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2Fu
Y2VsZWRCeVVzZXI6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJVc2VyIENhbmNlbGVkIElu
aXQgKDExNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNo
aW5nOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQW5vdGhlciBhcHAgd2FzIGFscmVhZHkg
bGF1bmNoaW5nICgxMTcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfU2V0dGluZ3NJ
bml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2V0dGluZ3MgbWFuYWdlciBp
bml0IGZhaWxlZCAoMTE4KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5n
RG93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVlIgc3lzdGVt
IHNodXR0aW5nIGRvd24gKDExOSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJUb28gbWFueSB0
cmFja2VkIG9iamVjdHMgKDEyMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob1Nl
cnZlckZvckJhY2tncm91bmRBcHA6ICAgICAgICAgICAgICByZXR1cm4gIk5vdCBzdGFydGluZyB2
cnNlcnZlciBmb3IgYmFja2dyb3VuZCBhcHAgKDEyMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvcjogICAgICAgcmV0dXJuICJUaGUgcmVx
dWVzdGVkIGludGVyZmFjZSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29tcG9zaXRvciBhbmQg
dGhlIGNvbXBvc2l0b3IgaXMgcnVubmluZyAoMTIyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHM6ICAgICAgIHJldHVybiAiVGhpcyBpbnRl
cmZhY2UgaXMgbm90IGF2YWlsYWJsZSB0byB1dGlsaXR5IGFwcGxpY2F0aW9ucyAoMTIzKSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJzZXJ2ZXIgaW50ZXJuYWwgZXJyb3IgKDEy
NCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZTogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBpcyBpbnZhbGlkICgxMjUpIjsK
KyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZDog
ICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kIFByZXNlbmNlIEZhaWxlZCAoMTI2KSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiVlIgTW9uaXRvciBOb3QgRm91bmQgKDEyNykiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0
dXJuICJWUiBNb25pdG9yIHN0YXJ0dXAgZmFpbGVkICgxMjgpIjsKKyAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZDogcmV0dXJuICJMb3cgUG93
ZXIgV2F0Y2hkb2cgTm90IFN1cHBvcnRlZCAoMTI5KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGU6ICAgICAgICAgICAgICByZXR1cm4gIkludmFs
aWQgQXBwbGljYXRpb24gVHlwZSAoMTMwKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzOiAgICAgICByZXR1cm4gIk5vdCBhdmFpbGFibGUg
dG8gd2F0Y2hkb2cgYXBwcyAoMTMxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1dh
dGNoZG9nRGlzYWJsZWRJblNldHRpbmdzOiAgICAgICByZXR1cm4gIldhdGNoZG9nIGRpc2FibGVk
IGluIHNldHRpbmdzICgxMzIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJEYXNo
Ym9hcmROb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBO
b3QgRm91bmQgKDEzMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZFN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIERhc2hib2FyZCBzdGFydHVw
IGZhaWxlZCAoMTM0KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZv
dW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIEhvbWUgTm90IEZvdW5k
ICgxMzUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJIb21lU3RhcnR1cEZhaWxl
ZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIGhvbWUgc3RhcnR1cCBmYWlsZWQgKDEz
NikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlJlYm9vdGluZyBJbiBQcm9ncmVzcyAoMTM3KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeTogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFVwZGF0ZSBJbiBQcm9ncmVzcyAoMTM4KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5OiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiRmlybXdhcmUgUmVjb3ZlcnkgSW4gUHJvZ3Jlc3MgKDEz
OSkiOworCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfRmFpbGVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBGYWls
ZWQgKDIwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd246ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgTm90IEtu
b3duICgyMDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIE5vdCBL
bm93biAoMjAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIE5v
dCBMb2FkZWQgKDIwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVP
dXRPZkRhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIHJ1bnRp
bWUgaXMgb3V0IG9mIGRhdGUgKDIwNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSE1EIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYXBwbGljYXRpb24gKDIwNSkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBpcyBub3QgY2FsaWJyYXRlZCAoMjA2
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBDYWxpYnJhdGlvbiBpcyBp
bnZhbGlkICgyMDcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5
Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVk
IG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91bmQgKDIwOCkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duOiAgICAgICByZXR1
cm4gIkRyaXZlciBUcmFja2VkIERldmljZSBJbnRlcmZhY2UgdW5rbm93biAoMjA5KSI7CisgICAg
ICAgLy8gY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXg6
ICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91
bmQgYWZ0ZXIgYXR0ZW1wdCB0byBmaXggKDIxMCkiOyAvLyB0YWtlbiBvdXQgdXBvbiBCZW4ncyBy
ZXF1ZXN0OiBIZSB0aGlua3MgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIHNlcGFyYXRlIHRoYXQg
ZXJyb3IgZnJvbSAyMDgKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJ
ZE91dE9mQm91bmRzOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIERyaXZlcklkIGlz
IG91ciBvZiBib3VuZHMgKDIxMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0ht
ZERpc3BsYXlNaXJyb3JlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQg
ZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG1heSBiZSBtaXJyb3JlZCBpbnN0ZWFkIG9m
IGV4dGVuZGVkICgyMTIpIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX1NlcnZlcklu
aXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJWUiBTZXJ2ZXIgSW5pdCBGYWlsZWQgKDMwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SVBDX0Nvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiQ29ubmVjdCB0byBWUiBTZXJ2ZXIgRmFpbGVkICgzMDEpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgU3RhdGUgSW5pdCBG
YWlsZWQgKDMwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQg
SVBDIENvbXBvc2l0b3IgSW5pdCBGYWlsZWQgKDMwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSVBDX011dGV4SW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgTXV0ZXggSW5pdCBGYWlsZWQgKDMwNCkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBGYWlsZWQg
KDMwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFp
bGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9z
aXRvciBDb25uZWN0IEZhaWxlZCAoMzA2KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2U6ICAgICAgICAgICAgICByZXR1cm4gIlNo
YXJlZCBJUEMgQ29tcG9zaXRvciBJbnZhbGlkIENvbm5lY3QgUmVzcG9uc2UgKDMwNykiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1w
dHM6ICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb25uZWN0IEZhaWxlZCBBZnRlciBNdWx0aXBs
ZSBBdHRlbXB0cyAoMzA4KSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb21wb3Np
dG9yIGZhaWxlZCB0byBpbml0aWFsaXplICg0MDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkOiAgICAgICByZXR1cm4gIkNvbXBvc2l0
b3IgZmFpbGVkIHRvIGZpbmQgRFgxMSBoYXJkd2FyZSAoNDAxKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGU6ICAgICAgIHJldHVybiAi
Q29tcG9zaXRvciByZXF1aXJlcyBtYW5kYXRvcnkgZmlybXdhcmUgdXBkYXRlICg0MDIpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQ6ICAgICAg
ICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVkLCBidXQg
b3ZlcmxheSBpbml0IGZhaWxlZCAoNDAzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZDogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGlu
aXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0IHNjcmVlbnNob3QgaW5pdCBmYWlsZWQgKDQwNCki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmlj
ZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHVuYWJsZSB0byBjcmVhdGUgZ3JhcGhpY3MgZGV2
aWNlICg0MDUpIjsKKworICAgICAgIC8vIE9jdWx1cworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lOiAgICAgICByZXR1
cm4gIlVuYWJsZSB0byBjb25uZWN0IHRvIE9jdWx1cyBSdW50aW1lICgxMDAwKSI7CisKKyAgICAg
ICAvLyBMaWdodGhvdXNlCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50T3BlbkRldmljZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJITUQgZm91bmQsIGJ1dCBjYW4gbm90IG9wZW4gZGV2aWNlICgxMTAxKSI7CisgICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25m
aWdTdGFydDogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCB1bmFibGUgdG8gcmVxdWVzdCBj
b25maWcgKDExMDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX05vU3RvcmVkQ29uZmlnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IG5vIHN0b3JlZCBjb25maWcgKDExMDMpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNr
OiAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGZhaWxlZCBjb25maWd1cmF0aW9uIGNoZWNr
ICgxMTEzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29CaWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gYmlnICgxMTA0KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIHNtYWxs
ICgxMTA1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9VbmFibGVUb0luaXRaTGliOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhN
RCBmb3VuZCwgYnV0IHVuYWJsZSB0byBpbml0IFpMaWIgKDExMDYpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9u
OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBk
YXRhICgxMTA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTA4KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3Rh
cnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhl
IGRhdGEgKDExMDkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEwKSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZTog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGgg
dGhlIGRhdGEgKDExMTEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VzZXJEYXRhRXJyb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMTIpIjsK
KworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZDogcmV0dXJuICJVbmFibGUgdG8gZmluZCBTdGVhbSBpbnN0YWxsYXRpb24gKDIwMDApIjsKKwor
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0
YXRpYyBjaGFyIGJ1ZlsxMjhdOworICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAi
VW5rbm93biBlcnJvciAoJWQpIiwgZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYnVmOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCit9CisKKworY29uc3QgY2hhciAq
R2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKQoreworICAgICAg
IHN3aXRjaCggZUVycm9yICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfTm9uZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1Vua25vd24gKTsKKworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbkNvcnJ1cHQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmFj
dG9yeU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVXNlckNv
bmZpZ0RpcmVjdG9yeUludmFsaWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RS
SU5HKCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1JldHJ5ICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Fu
b3RoZXJBcHBMYXVuY2hpbmcgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ub29N
YW55T2JqZWN0cyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29t
cG9zaXRvciApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5v
dEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9y
dGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyAp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
V2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkU3RhcnR1cEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWlsZWQgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1Jl
Ym9vdGluZ0J1c3kgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3kgKTsK
KworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
SG1kRHJpdmVySWRJc05vbmUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgKTsKKworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQg
KTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2
ZXJfVW5rbm93biApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWRVbmtub3duKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVy
X0htZEluVXNlKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duICk7CisgICAgICAgICAg
ICAgIC8vIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZEFmdGVyRml4ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxh
eU1pcnJvcmVkICk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQpOworICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JD
b25uZWN0RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzKTsKKworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJl
UmVxdWlyZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0
RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRl
RGV2aWNlICk7CisKKyAgICAgICAgICAgICAgLy8gT2N1bHVzCisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25u
ZWN0VG9PY3VsdXNSdW50aW1lKTsKKworICAgICAgICAgICAgICAvLyBMaWdodGhvdXNlCisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0KTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
b25maWdUb29CaWcgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZp
cm13YXJlVmVyc2lvbiApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3Rh
cnQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vz
ZXJEYXRhQWRkcmVzc1JhbmdlICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciApOwor
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfU3RlYW1f
U3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCApOworCisgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgYnVmWzEyOF07CisgICAg
ICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVycm9yICglZCkiLCBlRXJy
b3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7CisgICAgICAgICAgICAgIH0K
KyAgICAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NkNmM4YTk2YzEzMGMw
YWNmMWY0YjJiNjQ4NmY1YjI5M2QwN2IyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oCkBAIC0wLDAgKzEs
NiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09
PS8vCisjcHJhZ21hIG9uY2UKKworY29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVy
cm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApOworY29uc3QgY2hhciAqR2V0SURGb3JWUklu
aXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2QzNDU4ZGRjMWRhYWQ4Yzg5NzgxMDQ1Mjg4NTIzMDhlYjkwODAxNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0
aHRvb2xzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSw4MTkgQEAKKy8vPT09PT09PT09IENvcHlyaWdo
dCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgInN0cnRvb2xzX3B1
YmxpYy5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKKworI2lmIGRlZmluZWQoIF9X
SU4zMikKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8ZGlyZWN0Lmg+CisjaW5jbHVk
ZSA8c2hvYmppZGwuaD4KKyNpbmNsdWRlIDxrbm93bmZvbGRlcnMuaD4KKyNpbmNsdWRlIDxzaGxv
YmouaD4KKyNpbmNsdWRlIDxzaGFyZS5oPgorCisjdW5kZWYgR2V0RW52aXJvbm1lbnRWYXJpYWJs
ZQorI2Vsc2UKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKyNpZiBkZWZpbmVkIE9T
WAorI2luY2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPEFwcEtpdC9B
cHBLaXQuaD4KKyNpbmNsdWRlIDxtYWNoLW8vZHlsZC5oPgorI2RlZmluZSBfU19JRkRJUiBTX0lG
RElSICAgICAvLyByZWFsbHkgZnJvbSB0aWVyMC9wbGF0Zm9ybS5oIHdoaWNoIHdlIGRvbnQgaGF2
ZSB5ZXQKKyNlbmRpZgorCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKworI2luY2x1ZGUgPGFsZ29y
aXRobT4KKworLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFtZSkgdG8gdGhl
IGN1cnJlbnQgZXhlY3V0YWJsZSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRFeGVjdXRhYmxlUGF0
aCgpCit7CisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICB3Y2hhcl90ICpwd2NoUGF0aCA9
IG5ldyB3Y2hhcl90W01BWF9VTklDT0RFX1BBVEhdOworICAgICAgIGNoYXIgKnBjaFBhdGggPSBu
ZXcgY2hhcltNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjhdOworICAgICAgIDo6R2V0TW9kdWxlRmls
ZU5hbWVXKCBOVUxMLCBwd2NoUGF0aCwgTUFYX1VOSUNPREVfUEFUSCApOworICAgICAgIFdpZGVD
aGFyVG9NdWx0aUJ5dGUoIENQX1VURjgsIDAsIHB3Y2hQYXRoLCAtMSwgcGNoUGF0aCwgTUFYX1VO
SUNPREVfUEFUSF9JTl9VVEY4LCBOVUxMLCBOVUxMICk7CisgICAgICAgZGVsZXRlW10gcHdjaFBh
dGg7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IHBjaFBhdGg7CisgICAgICAgZGVsZXRl
W10gcGNoUGF0aDsKKyAgICAgICByZXR1cm4gc1BhdGg7CisjZWxpZiBkZWZpbmVkKCBPU1ggKQor
ICAgICAgIGNoYXIgcmNoUGF0aFsxMDI0XTsKKyAgICAgICB1aW50MzJfdCBuQnVmZiA9IHNpemVv
ZiggcmNoUGF0aCApOworICAgICAgIGJvb2wgYlN1Y2Nlc3MgPSBfTlNHZXRFeGVjdXRhYmxlUGF0
aChyY2hQYXRoLCAmbkJ1ZmYpID09IDA7CisgICAgICAgcmNoUGF0aFtuQnVmZi0xXSA9ICdcMCc7
CisgICAgICAgaWYoIGJTdWNjZXNzICkKKyAgICAgICAgICAgICAgcmV0dXJuIHJjaFBhdGg7Cisg
ICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisjZWxpZiBkZWZpbmVkIExJTlVY
CisgICAgICAgY2hhciByY2hQYXRoWzEwMjRdOworICAgICAgIHNpemVfdCBuQnVmZiA9IHNpemVv
ZiggcmNoUGF0aCApOworICAgICAgIHNzaXplX3QgblJlYWQgPSByZWFkbGluaygiL3Byb2Mvc2Vs
Zi9leGUiLCByY2hQYXRoLCBuQnVmZi0xICk7CisgICAgICAgaWYgKCBuUmVhZCAhPSAtMSApCisg
ICAgICAgeworICAgICAgICAgICAgICByY2hQYXRoWyBuUmVhZCBdID0gMDsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJjaFBhdGg7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICB9CisjZWxzZQorICAgICAgIEFzc2VydE1zZygg
ZmFsc2UsICJJbXBsZW1lbnQgUGxhdF9HZXRFeGVjdXRhYmxlUGF0aCIgKTsKKyAgICAgICByZXR1
cm4gIiI7CisjZW5kaWYKKworfQorCisvKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0
b3J5KCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aDsKKyNpZiBkZWZpbmVkKCBfV0lOMzIg
KQorICAgICAgIHdjaGFyX3QgYnVmW01BWF9VTklDT0RFX1BBVEhdOworICAgICAgIHNQYXRoID0g
VVRGMTZ0bzgoIF93Z2V0Y3dkKCBidWYsIE1BWF9VTklDT0RFX1BBVEggKSApOworI2Vsc2UKKyAg
ICAgICBjaGFyIGJ1ZlsgMTAyNCBdOworICAgICAgIHNQYXRoID0gZ2V0Y3dkKCBidWYsIHNpemVv
ZiggYnVmICkgKTsKKyNlbmRpZgorICAgICAgIHJldHVybiBzUGF0aDsKK30KKworLyoqIFNldHMg
dGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIFJldHVybnMgdHJ1ZSBp
ZiB0aGlzIHdhcyBzdWNjZXNzZnVsLiAqLworYm9vbCBQYXRoX1NldFdvcmtpbmdEaXJlY3Rvcnko
IGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAgIGJvb2wgYlN1Y2Nlc3M7Cisj
aWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzdGQ6OndzdHJpbmcgd3NQYXRoID0gVVRGOHRv
MTYoIHNQYXRoLmNfc3RyKCkgKTsKKyAgICAgICBiU3VjY2VzcyA9IDAgPT0gX3djaGRpciggd3NQ
YXRoLmNfc3RyKCkgKTsKKyNlbHNlCisgICAgICAgYlN1Y2Nlc3MgPSAwID09IGNoZGlyKCBzUGF0
aC5jX3N0cigpICk7CisjZW5kaWYKKyAgICAgICByZXR1cm4gYlN1Y2Nlc3M7Cit9CisKKy8qKiBS
ZXR1cm5zIHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZSAqLworc3RkOjpz
dHJpbmcgUGF0aF9TdHJpcEZpbGVuYW1lKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFy
IHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNsYXNo
ID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuID0g
c1BhdGguZmluZF9sYXN0X29mKCBzbGFzaCApOworICAgICAgIGlmKCBuID09IHN0ZDo6c3RyaW5n
OjpucG9zICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNQYXRoOworICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBzUGF0aC5iZWdpbigpLCBzUGF0aC5iZWdpbigp
ICsgbiApOworfQorCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSBmcm9tIHRoZSBwcm92
aWRlZCBmdWxsIG9yIHJlbGF0aXZlIHBhdGguICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRGly
ZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAg
ICBpZiggc2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgp
OworCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuID0gc1BhdGguZmluZF9sYXN0X29m
KCBzbGFzaCApOworICAgICAgIGlmKCBuID09IHN0ZDo6c3RyaW5nOjpucG9zICkKKyAgICAgICAg
ICAgICAgcmV0dXJuIHNQYXRoOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6c3RyaW5nKCBzUGF0aC5iZWdpbigpICsgbiArIDEsIHNQYXRoLmVuZCgpICk7Cit9CisKKy8q
KiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIHdpdGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92
aWRlZCBmaWxlbmFtZS4gCisqIElmIHRoZXJlIGlzIGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGlu
dGFjdC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGggKQoreworICAgICAgIGZvciggc3RkOjpzdHJpbmc6OmNvbnN0X3JldmVyc2Vf
aXRlcmF0b3IgaSA9IHNQYXRoLnJiZWdpbigpOyBpICE9IHNQYXRoLnJlbmQoKTsgaSsrICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGlmKCAqaSA9PSAnLicgKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2luKCksIGku
YmFzZSgpIC0gMSApOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gaWYgd2Ug
ZmluZCBhIHNsYXNoIHRoZXJlIGlzIG5vIGV4dGVuc2lvbgorICAgICAgICAgICAgICBpZiggKmkg
PT0gJ1xcJyB8fCAqaSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgfQorCisgICAgICAgLy8gd2UgZGlkbid0IGZpbmQgYW4gZXh0ZW5zaW9uCisgICAgICAgcmV0
dXJuIHNQYXRoOworfQorCisvKiogcmV0dXJucyBqdXN0IGV4dGVuc2lvbiBvZiB0aGUgcHJvdmlk
ZWQgZmlsZW5hbWUgKGlmIGFueSkuICovCitzdGQ6OnN0cmluZyBQYXRoX0dldEV4dGVuc2lvbigg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgZm9yICggc3RkOjpzdHJpbmc6
OmNvbnN0X3JldmVyc2VfaXRlcmF0b3IgaSA9IHNQYXRoLnJiZWdpbigpOyBpICE9IHNQYXRoLnJl
bmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggKmkgPT0gJy4nICkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBp
LmJhc2UoKSwgc1BhdGguZW5kKCkgKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IC8vIGlmIHdlIGZpbmQgYSBzbGFzaCB0aGVyZSBpcyBubyBleHRlbnNpb24KKyAgICAgICAgICAg
ICAgaWYgKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyApCisgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICB9CisKKyAgICAgICAvLyB3ZSBkaWRuJ3QgZmluZCBhbiBleHRlbnNpb24K
KyAgICAgICByZXR1cm4gIiI7Cit9CisKK2Jvb2wgUGF0aF9Jc0Fic29sdXRlKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBpZiggc1BhdGguZW1wdHkoKSApCisgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBpZiAo
IHNQYXRoLnNpemUoKSA8IDMgKSAvLyBtdXN0IGJlIGM6XHggb3IgXFx4IGF0IGxlYXN0CisgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIGlmICggc1BhdGhbMV0gPT0gJzonICkg
Ly8gZHJpdmUgbGV0dGVyIHBsdXMgc2xhc2gsIGJ1dCBtdXN0IHRlc3QgYm90aCBzbGFzaCBjYXNl
cworICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBzUGF0aFsyXSA9PSAnXFwnIHx8IHNQYXRo
WzJdID09ICcvJyApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9
CisgICAgICAgZWxzZSBpZiAoIHNQYXRoWzBdID09ICdcXCcgJiYgc1BhdGhbMV0gPT0gJ1xcJyAp
IC8vIFVOQyBwYXRoCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAgICBp
Ziggc1BhdGhbMF0gPT0gJ1xcJyB8fCBzUGF0aFswXSA9PSAnLycgKSAvLyBhbnkgbGVhZGluZyBz
bGFzaAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCisgICAgICAgcmV0dXJu
IGZhbHNlOworfQorCisKKy8qKiBNYWtlcyBhbiBhYnNvbHV0ZSBwYXRoIGZyb20gYSByZWxhdGl2
ZSBwYXRoIGFuZCBhIGJhc2UgcGF0aCAqLworc3RkOjpzdHJpbmcgUGF0aF9NYWtlQWJzb2x1dGUo
IGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0aXZlUGF0aCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBz
QmFzZVBhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAgICAg
ICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBpZiggUGF0aF9Jc0Fi
c29sdXRlKCBzUmVsYXRpdmVQYXRoICkgKQorICAgICAgICAgICAgICByZXR1cm4gc1JlbGF0aXZl
UGF0aDsKKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICBpZiggIVBhdGhfSXNB
YnNvbHV0ZSggc0Jhc2VQYXRoICkgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwor
CisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHNDb21wYWN0ZWQgPSBQYXRoX0NvbXBhY3QoIFBh
dGhfSm9pbiggc0Jhc2VQYXRoLCBzUmVsYXRpdmVQYXRoLCBzbGFzaCApLCBzbGFzaCApOworICAg
ICAgICAgICAgICBpZiggUGF0aF9Jc0Fic29sdXRlKCBzQ29tcGFjdGVkICkgKQorICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHNDb21wYWN0ZWQ7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICB9Cit9CisKKworLyoqIEZpeGVzIHRo
ZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3IgdGhlIGN1cnJlbnQgcGxhdGZvcm0gKi8KK3N0ZDo6
c3RyaW5nIFBhdGhfRml4U2xhc2hlcyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBz
bGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9
IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNGaXhlZCA9IHNQYXRoOwor
ICAgICAgIGZvciggc3RkOjpzdHJpbmc6Oml0ZXJhdG9yIGkgPSBzRml4ZWQuYmVnaW4oKTsgaSAh
PSBzRml4ZWQuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggKmkgPT0g
Jy8nIHx8ICppID09ICdcXCcgKQorICAgICAgICAgICAgICAgICAgICAgKmkgPSBzbGFzaDsKKyAg
ICAgICB9CisKKyAgICAgICByZXR1cm4gc0ZpeGVkOworfQorCisKK2NoYXIgUGF0aF9HZXRTbGFz
aCgpCit7CisjaWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgcmV0dXJuICdcXCc7CisjZWxzZQor
ICAgICAgIHJldHVybiAnLyc7CisjZW5kaWYKK30KKworLyoqIEphbXMgdHdvIHBhdGhzIHRvZ2V0
aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8KK3N0ZDo6c3RyaW5nIFBhdGhfSm9p
biggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQs
IGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAg
c2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICAvLyBvbmx5IGluc2VydCBhIHNsYXNo
IGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBvbmUKKyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG5MZW4gPSBmaXJzdC5sZW5ndGgoKTsKKyAgICAgICBpZiggIW5MZW4gKQorICAgICAgICAg
ICAgICByZXR1cm4gc2Vjb25kOworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAgIGlmKCBmaXJz
dC5iYWNrKCkgPT0gJ1xcJyB8fCBmaXJzdC5iYWNrKCkgPT0gJy8nICkKKyAgICAgICAgICAgbkxl
bi0tOworI2Vsc2UKKyAgICAgICBjaGFyIGxhc3RfY2hhciA9IGZpcnN0W2ZpcnN0Lmxlbmd0aCgp
LTFdOworICAgICAgIGlmIChsYXN0X2NoYXIgPT0gJ1xcJyB8fCBsYXN0X2NoYXIgPT0gJy8nKQor
ICAgICAgICAgICBuTGVuLS07CisjZW5kaWYKKworICAgICAgIHJldHVybiBmaXJzdC5zdWJzdHIo
IDAsIG5MZW4gKSArIHN0ZDo6c3RyaW5nKCAxLCBzbGFzaCApICsgc2Vjb25kOworfQorCisKK3N0
ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzZWNvbmQsIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIGNoYXIgc2xhc2gg
KQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhfSm9pbiggZmlyc3QsIHNlY29uZCwg
c2xhc2ggKSwgdGhpcmQsIHNsYXNoICk7Cit9CisKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29u
c3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNvbnN0
IHN0ZDo6c3RyaW5nICYgdGhpcmQsIGNvbnN0IHN0ZDo6c3RyaW5nICZmb3VydGgsIGNoYXIgc2xh
c2ggKQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBm
aXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwgZm91cnRoLCBzbGFzaCApOwor
fQorCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYg
Zmlyc3QsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCAKKyAgICAgICBjb25z
dCBzdGQ6OnN0cmluZyAmIHRoaXJkLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZvdXJ0
aCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaWZ0aCwgCisgICAgICAgY2hhciBzbGFz
aCApCit7CisgICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBh
dGhfSm9pbiggZmlyc3QsIHNlY29uZCwgc2xhc2ggKSwgdGhpcmQsIHNsYXNoICksIGZvdXJ0aCwg
c2xhc2ggKSwgZmlmdGgsIHNsYXNoICk7Cit9CisKKworc3RkOjpzdHJpbmcgUGF0aF9SZW1vdmVU
cmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoICkK
K3sKKyAgICAgICBpZiAoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhf
R2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gc1Jhd1BhdGg7CisgICAg
ICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuQ3VycmVudCA9IHNSYXdQYXRoLmxlbmd0aCgpOwor
ICAgICAgIGlmICggbkN1cnJlbnQgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiBzUGF0aDsK
KworICAgICAgIGludCBuTGFzdEZvdW5kID0gLTE7CisgICAgICAgbkN1cnJlbnQtLTsKKyAgICAg
ICB3aGlsZSggbkN1cnJlbnQgIT0gMCApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIHNS
YXdQYXRoWyBuQ3VycmVudCBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgbkxhc3RGb3VuZCA9IChpbnQpbkN1cnJlbnQ7CisgICAgICAgICAgICAgICAg
ICAgICBuQ3VycmVudC0tOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
IH0KKyAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgIGlmICggbkxhc3RGb3VuZCA+PSAw
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHNQYXRoLmVyYXNlKCBuTGFzdEZvdW5kLCBzdGQ6
OnN0cmluZzo6bnBvcyApOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICByZXR1cm4gc1BhdGg7
Cit9CisKKworLyoqIFJlbW92ZXMgcmVkdW5kYW50IDxkaXI+Ly4uIGVsZW1lbnRzIGluIHRoZSBw
YXRoLiBSZXR1cm5zIGFuIGVtcHR5IHBhdGggaWYgdGhlIAorKiBzcGVjaWZpZWQgcGF0aCBoYXMg
YSBicm9rZW4gbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGZvciBpdHMgbnVtYmVyIG9mIC4ucyAqLwor
c3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSYXdQYXRoLCBj
aGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNs
YXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBQYXRo
X0ZpeFNsYXNoZXMoIHNSYXdQYXRoLCBzbGFzaCApOworICAgICAgIHN0ZDo6c3RyaW5nIHNTbGFz
aFN0cmluZyggMSwgc2xhc2ggKTsKKworICAgICAgIC8vIHN0cmlwIG91dCBhbGwgLy4vCisgICAg
ICAgZm9yKCBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGkgPSAwOyAoaSArIDMpIDwgc1BhdGgubGVu
Z3RoKCk7ICApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggc1BhdGhbIGkgXSA9PSBzbGFz
aCAmJiBzUGF0aFsgaSsxIF0gPT0gJy4nICYmIHNQYXRoWyBpKzIgXSA9PSBzbGFzaCApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRoLnJlcGxhY2UoIGksIDMsIHNT
bGFzaFN0cmluZyApOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICB9Cisg
ICAgICAgfQorCisKKyAgICAgICAvLyBnZXQgcmlkIG9mIHRyYWlsaW5nIC8uIGJ1dCBsZWF2ZSB0
aGUgcGF0aCBzZXBhcmF0b3IKKyAgICAgICBpZiggc1BhdGgubGVuZ3RoKCkgPiAyICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbGVuID0gc1BhdGgubGVu
Z3RoKCk7CisgICAgICAgICAgICAgIGlmKCBzUGF0aFsgbGVuLTEgXSA9PSAnLicgICYmIHNQYXRo
WyBsZW4tMiBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8v
IHNQYXRoLnBvcF9iYWNrKCk7CisgICAgICAgICAgICAgICAgc1BhdGhbbGVuLTFdID0gMDsgIC8v
IGZvciBub3csIGF0IGxlYXN0CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICAv
LyBnZXQgcmlkIG9mIGxlYWRpbmcgLi8gCisgICAgICAgaWYoIHNQYXRoLmxlbmd0aCgpID4gMiAp
CisgICAgICAgeworICAgICAgICAgICAgICBpZiggc1BhdGhbIDAgXSA9PSAnLicgICYmIHNQYXRo
WyAxIF0gPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBz
UGF0aC5yZXBsYWNlKCAwLCAyLCAiIiApOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisg
ICAgICAgLy8gZWFjaCB0aW1lIHdlIGVuY291bnRlciAuLiBiYWNrIHVwIHVudGlsIHdlJ3ZlIGZv
dW5kIHRoZSBwcmV2aW91cyBkaXJlY3RvcnkgbmFtZQorICAgICAgIC8vIHRoZW4gZ2V0IHJpZCBv
ZiBib3RoCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpID0gMDsKKyAgICAgICB3aGls
ZSggaSA8IHNQYXRoLmxlbmd0aCgpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmKCBpID4g
MCAmJiBzUGF0aC5sZW5ndGgoKSAtIGkgPj0gMiAKKyAgICAgICAgICAgICAgICAgICAgICYmIHNQ
YXRoW2ldID09ICcuJworICAgICAgICAgICAgICAgICAgICAgJiYgc1BhdGhbaSsxXSA9PSAnLicK
KyAgICAgICAgICAgICAgICAgICAgICYmICggaSArIDIgPT0gc1BhdGgubGVuZ3RoKCkgfHwgc1Bh
dGhbIGkrMiBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgICAgICAgICYmIHNQYXRoWyBpLTEg
XSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIGNo
ZWNrIGlmIHdlJ3ZlIGhpdCB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZyBhbmQgaGF2ZSBhIGJvZ3Vz
IHBhdGgKKyAgICAgICAgICAgICAgICAgICAgIGlmKCBpID09IDEgKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICAgLy8gZmluZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSBpLTEKKyAgICAgICAgICAg
ICAgICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaURpclN0YXJ0ID0gaS0yOworICAgICAg
ICAgICAgICAgICAgICAgd2hpbGUoIGlEaXJTdGFydCA+IDAgJiYgc1BhdGhbIGlEaXJTdGFydCAt
IDEgXSAhPSBzbGFzaCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1pRGlyU3RhcnQ7
CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBldmVyeXRoaW5nIGZyb20gaURpclN0
YXJ0IHRvIGkrMgorICAgICAgICAgICAgICAgICAgICAgc1BhdGgucmVwbGFjZSggaURpclN0YXJ0
LCAoaSAtIGlEaXJTdGFydCkgKyAzLCAiIiApOworCisgICAgICAgICAgICAgICAgICAgICAvLyBz
dGFydCBvdmVyCisgICAgICAgICAgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICsraTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIHJldHVybiBzUGF0aDsK
K30KKworCisvKiogUmV0dXJucyB0aGUgcGF0aCB0byB0aGUgY3VycmVudCBETEwgb3IgZXhlICov
CitzdGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCkKK3sKKyAgICAgICAvLyBnZXRz
IHRoZSBwYXRoIG9mIHZyY2xpZW50LmRsbCBpdHNlbGYKKyNpZmRlZiBXSU4zMgorICAgICAgIEhN
T0RVTEUgaG1vZHVsZSA9IE5VTEw7CisKKyAgICAgICA6OkdldE1vZHVsZUhhbmRsZUV4KCBHRVRf
TU9EVUxFX0hBTkRMRV9FWF9GTEFHX0ZST01fQUREUkVTUyB8IEdFVF9NT0RVTEVfSEFORExFX0VY
X0ZMQUdfVU5DSEFOR0VEX1JFRkNPVU5ULCByZWludGVycHJldF9jYXN0PExQQ1RTVFI+KFBhdGhf
R2V0VGhpc01vZHVsZVBhdGgpLCAmaG1vZHVsZSApOworCisgICAgICAgd2NoYXJfdCAqcHdjaFBh
dGggPSBuZXcgd2NoYXJfdFtNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAgICBjaGFyICpwY2hQYXRo
ID0gbmV3IGNoYXJbIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCBdOworICAgICAgIDo6R2V0TW9k
dWxlRmlsZU5hbWVXKCBobW9kdWxlLCBwd2NoUGF0aCwgTUFYX1VOSUNPREVfUEFUSCApOworICAg
ICAgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoIENQX1VURjgsIDAsIHB3Y2hQYXRoLCAtMSwgcGNoUGF0
aCwgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4LCBOVUxMLCBOVUxMICk7CisgICAgICAgZGVsZXRl
W10gcHdjaFBhdGg7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IHBjaFBhdGg7CisgICAg
ICAgZGVsZXRlIFtdIHBjaFBhdGg7CisgICAgICAgcmV0dXJuIHNQYXRoOworCisjZWxpZiBkZWZp
bmVkKCBPU1ggKSB8fCBkZWZpbmVkKCBMSU5VWCApCisgICAgICAgLy8gZ2V0IHRoZSBhZGRyIG9m
IGEgZnVuY3Rpb24gaW4gdnJjbGllbnQuc28gYW5kIHRoZW4gYXNrIHRoZSBkbG9wZW4gc3lzdGVt
IGFib3V0IGl0CisgICAgICAgRGxfaW5mbyBpbmZvOworICAgICAgIGRsYWRkciggKHZvaWQgKilQ
YXRoX0dldFRoaXNNb2R1bGVQYXRoLCAmaW5mbyApOworICAgICAgIHJldHVybiBpbmZvLmRsaV9m
bmFtZTsKKyNlbmRpZgorCit9CisKKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVk
IHBhdGggZXhpc3RzIGFuZCBpcyBhIGRpcmVjdG9yeSAqLworYm9vbCBQYXRoX0lzRGlyZWN0b3J5
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzRml4
ZWRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOworICAgICAgIGlmKCBzRml4ZWRQYXRo
LmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgY2hhciBjTGFz
dCA9IHNGaXhlZFBhdGhbIHNGaXhlZFBhdGgubGVuZ3RoKCkgLSAxIF07CisgICAgICAgaWYoIGNM
YXN0ID09ICcvJyB8fCBjTGFzdCA9PSAnXFwnICkKKyAgICAgICAgICAgICAgc0ZpeGVkUGF0aC5l
cmFzZSggc0ZpeGVkUGF0aC5lbmQoKSAtIDEsIHNGaXhlZFBhdGguZW5kKCkgKTsKKworICAgICAg
IC8vIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggYWN0dWFsbHkgZXhpc3RzLgorCisjaWYgZGVm
aW5lZChQT1NJWCkKKyAgICAgICBzdHJ1Y3QgICAgICAgc3RhdCAgICAgICBidWY7CisgICAgICAg
aWYgKCBzdGF0KCBzRml4ZWRQYXRoLmNfc3RyKCksICZidWYgKSA9PSAtMSApCisgICAgICAgewor
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisjaWYgZGVmaW5lZCggTElO
VVggKSB8fCBkZWZpbmVkKCBPU1ggKQorICAgICAgIHJldHVybiBTX0lTRElSKCBidWYuc3RfbW9k
ZSApOworI2Vsc2UKKyAgICAgICByZXR1cm4gKGJ1Zi5zdF9tb2RlICYgX1NfSUZESVIpICE9IDA7
CisjZW5kaWYKKworI2Vsc2UKKyAgICAgICBzdHJ1Y3QgICAgICAgX3N0YXQgICAgICAgYnVmOwor
ICAgICAgIHN0ZDo6d3N0cmluZyB3c0ZpeGVkUGF0aCA9IFVURjh0bzE2KCBzRml4ZWRQYXRoLmNf
c3RyKCkgKTsKKyAgICAgICBpZiAoIF93c3RhdCggd3NGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiAp
ID09IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9
CisKKyAgICAgICByZXR1cm4gKGJ1Zi5zdF9tb2RlICYgX1NfSUZESVIpICE9IDA7CisjZW5kaWYK
K30KKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBh
biBhcHAgYnVuZGxlICovCitib29sIFBhdGhfSXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgc1BhdGggKQoreworI2lmIGRlZmluZWQoT1NYKQorICAgICAgIE5TQnVuZGxlICpidW5kbGUg
PSBbIE5TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOiBbIE5TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3Ry
aW5nOnNQYXRoLmNfc3RyKCkgXSBdOworICAgICAgIGJvb2wgYmlzQXBwQnVuZGxlID0gKCBudWxs
cHRyICE9IGJ1bmRsZSApOworICAgICAgIFsgYnVuZGxlIHJlbGVhc2UgXTsKKyAgICAgICByZXR1
cm4gYmlzQXBwQnVuZGxlOworI2Vsc2UKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30K
KworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogcmV0dXJucyB0cnVlIGlmIHRo
ZSB0aGUgcGF0aCBleGlzdHMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgUGF0aF9FeGlz
dHMoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNG
aXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7CisgICAgICAgaWYoIHNGaXhlZFBh
dGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIGRlZmluZWQo
IFdJTjMyICkKKyAgICAgICBzdHJ1Y3QgICAgICAgX3N0YXQgICAgICAgYnVmOworICAgICAgIHN0
ZDo6d3N0cmluZyB3c0ZpeGVkUGF0aCA9IFVURjh0bzE2KCBzRml4ZWRQYXRoLmNfc3RyKCkgKTsK
KyAgICAgICBpZiAoIF93c3RhdCggd3NGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xICkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisjZWxzZQor
ICAgICAgIHN0cnVjdCBzdGF0IGJ1ZjsKKyAgICAgICBpZiAoIHN0YXQgKCBzRml4ZWRQYXRoLmNf
c3RyKCksICZidWYgKSA9PSAtMSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICB9CisjZW5kaWYKKworICAgICAgIHJldHVybiB0cnVlOworfQorCisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IGhlbHBlciB0byBmaW5kIGEgZGlyZWN0b3J5
IHVwc3RyZWFtIGZyb20gYSBnaXZlbiBwYXRoCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6
OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSggY29uc3Qgc3RkOjpz
dHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRGlyZWN0b3J5
TmFtZSApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyRm91bmRQYXRoID0gIiI7CisgICAgICAg
c3RkOjpzdHJpbmcgc3RyQ3VycmVudFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHN0clN0YXJ0RGly
ZWN0b3J5ICk7CisgICAgICAgaWYgKCBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSA9PSAwICkKKyAg
ICAgICAgICAgICAgcmV0dXJuICIiOworCisgICAgICAgYm9vbCBiRXhpc3RzID0gUGF0aF9FeGlz
dHMoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyQ3VycmVudERpcmVj
dG9yeU5hbWUgPSBQYXRoX1N0cmlwRGlyZWN0b3J5KCBzdHJDdXJyZW50UGF0aCApOworICAgICAg
IGlmICggYkV4aXN0cyAmJiBzdHJpY21wKCBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZS5jX3N0cigp
LCBzdHJEaXJlY3RvcnlOYW1lLmNfc3RyKCkgKSA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJu
IHN0ckN1cnJlbnRQYXRoOworCisgICAgICAgd2hpbGUoIGJFeGlzdHMgJiYgc3RyQ3VycmVudFBh
dGgubGVuZ3RoKCkgIT0gMCApCisgICAgICAgeworICAgICAgICAgICAgICBzdHJDdXJyZW50UGF0
aCA9IFBhdGhfU3RyaXBGaWxlbmFtZSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAgICAg
c3RyQ3VycmVudERpcmVjdG9yeU5hbWUgPSBQYXRoX1N0cmlwRGlyZWN0b3J5KCBzdHJDdXJyZW50
UGF0aCApOworICAgICAgICAgICAgICBiRXhpc3RzID0gUGF0aF9FeGlzdHMoIHN0ckN1cnJlbnRQ
YXRoICk7CisgICAgICAgICAgICAgIGlmICggYkV4aXN0cyAmJiBzdHJpY21wKCBzdHJDdXJyZW50
RGlyZWN0b3J5TmFtZS5jX3N0cigpLCBzdHJEaXJlY3RvcnlOYW1lLmNfc3RyKCkgKSA9PSAwICkK
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHJDdXJyZW50UGF0aDsKKyAgICAgICB9CisK
KyAgICAgICByZXR1cm4gIiI7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVy
cG9zZTogaGVscGVyIHRvIGZpbmQgYSBzdWJkaXJlY3RvcnkgdXBzdHJlYW0gZnJvbSBhIGdpdmVu
IHBhdGgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVu
dFN1YkRpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJl
Y3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICkKK3sKKyAgICAgICBz
dGQ6OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsKKyAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJy
ZW50UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3RyU3RhcnREaXJlY3RvcnkgKTsKKyAgICAgICBp
ZiAoIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4g
IiI7CisKKyAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGgg
KTsKKyAgICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSAhPSAw
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9TdHJpcEZp
bGVuYW1lKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgICAgICAgICBiRXhpc3RzID0gUGF0aF9F
eGlzdHMoIHN0ckN1cnJlbnRQYXRoICk7CisKKyAgICAgICAgICAgICAgaWYoIFBhdGhfRXhpc3Rz
KCBQYXRoX0pvaW4oIHN0ckN1cnJlbnRQYXRoLCBzdHJEaXJlY3RvcnlOYW1lICkgKSApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0ckZvdW5kUGF0aCA9IFBhdGhfSm9p
biggc3RyQ3VycmVudFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKTsKKyAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBzdHJG
b3VuZFBhdGg7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogcmVh
ZGluZyBhbmQgd3JpdGluZyBmaWxlcyBpbiB0aGUgdm9ydGV4IGRpcmVjdG9yeQorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQordW5zaWduZWQgY2hhciAqIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgaW50ICpwU2l6ZSApCit7CisgICAgICAgRklMRSAq
ZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgZiA9IGZvcGVuKCBzdHJGaWxlbmFtZS5j
X3N0cigpLCAicmIiICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3RyRmlsZW5hbWUg
PSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIC8vIHRoZSBvcGVuIG9w
ZXJhdGlvbiBuZWVkcyB0byBiZSBzaGFyYWJsZSwgdGhlcmVmb3JlIHVzZSBvZiBfd2Zzb3BlbiBp
bnN0ZWFkIG9mIF93Zm9wZW5fcworICAgICAgIGYgPSBfd2Zzb3Blbiggd3N0ckZpbGVuYW1lLmNf
c3RyKCksIEwicmIiLCBfU0hfREVOWU5PICk7CisjZW5kaWYKKyAgICAgICAKKyAgICAgICB1bnNp
Z25lZCBjaGFyKiBidWYgPSBOVUxMOworCisgICAgICAgaWYgKCBmICE9IE5VTEwgKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgZnNlZWsoZiwgMCwgU0VFS19FTkQpOworICAgICAgICAgICAgICBp
bnQgc2l6ZSA9IGZ0ZWxsKGYpOworICAgICAgICAgICAgICBmc2VlayhmLCAwLCBTRUVLX1NFVCk7
CisKKyAgICAgICAgICAgICAgYnVmID0gbmV3IHVuc2lnbmVkIGNoYXJbc2l6ZV07CisgICAgICAg
ICAgICAgIGlmIChidWYgJiYgZnJlYWQoYnVmLCBzaXplLCAxLCBmKSA9PSAxKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAocFNpemUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKnBTaXplID0gc2l6ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZVtdIGJ1
ZjsKKyAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IDA7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICBmY2xvc2UoZik7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIGJ1ZjsKK30K
KwordWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJG
aWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMyX3QgdW5TaXplICkKK3sKKyAg
ICAgICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lYICkKKyAgICAgICBmID0gZm9wZW4oIHN0
ckZpbGVuYW1lLmNfc3RyKCksICJyYiIgKTsKKyNlbHNlCisgICAgICAgc3RkOjp3c3RyaW5nIHdz
dHJGaWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgZXJy
bm9fdCBlcnIgPSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJyYiIgKTsK
KyAgICAgICBpZiAoIGVyciAhPSAwICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGYgPSBOVUxM
OworICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgdWludDMyX3QgdW5TaXplVG9SZXR1cm4gPSAw
OworCisgICAgICAgaWYgKCBmICE9IE5VTEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZnNl
ZWsoIGYsIDAsIFNFRUtfRU5EICk7CisgICAgICAgICAgICAgIHVpbnQzMl90IHNpemUgPSAodWlu
dDMyX3QpZnRlbGwoIGYgKTsKKyAgICAgICAgICAgICAgZnNlZWsoIGYsIDAsIFNFRUtfU0VUICk7
CisKKyAgICAgICAgICAgICAgaWYgKCBzaXplID4gdW5TaXplIHx8ICFwQnVmZmVyICkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgdW5TaXplVG9SZXR1cm4gPSAodWludDMy
X3Qpc2l6ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggZnJlYWQoIHBCdWZmZXIsIHNpemUsIDEs
IGYgKSA9PSAxICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1blNpemVUb1JldHVybiA9ICh1aW50MzJfdClzaXplOworICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgZmNsb3NlKCBmICk7Cisg
ICAgICAgfQorCisgICAgICAgcmV0dXJuIHVuU2l6ZVRvUmV0dXJuOworfQorCitib29sIFBhdGhf
V3JpdGVCaW5hcnlGaWxlKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQg
Y2hhciAqcERhdGEsIHVuc2lnbmVkIG5TaXplKQoreworICAgICAgIEZJTEUgKmY7CisjaWYgZGVm
aW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3BlbihzdHJGaWxlbmFtZS5jX3N0cigpLCAid2Ii
KTsKKyNlbHNlCisgICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFtZSA9IFVURjh0bzE2KCBz
dHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgZXJybm9fdCBlcnIgPSBfd2ZvcGVuX3MoICZm
LCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3YiIgKTsKKyAgICAgICBpZiAoZXJyICE9IDApCisg
ICAgICAgeworICAgICAgICAgICAgICBmID0gTlVMTDsKKyAgICAgICB9CisjZW5kaWYKKworICAg
ICAgIHNpemVfdCB3cml0dGVuID0gMDsKKyAgICAgICBpZiAoZiAhPSBOVUxMKSB7CisgICAgICAg
ICAgICAgIHdyaXR0ZW4gPSBmd3JpdGUocERhdGEsIHNpemVvZih1bnNpZ25lZCBjaGFyKSwgblNp
emUsIGYpOworICAgICAgICAgICAgICBmY2xvc2UoZik7CisgICAgICAgfQorCisgICAgICAgcmV0
dXJuIHdyaXR0ZW4gPSBuU2l6ZSA/IHRydWUgOiBmYWxzZTsKK30KKworc3RkOjpzdHJpbmcgUGF0
aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSApCit7CisgICAg
ICAgLy8gZG9pbmcgaXQgdGhpcyB3YXkgc2VlbXMgYmFja3dhcmRzLCBidXQgSSBkb24ndAorICAg
ICAgIC8vIHNlZSBhbiBlYXN5IHdheSB0byBkbyB0aGlzIHdpdGggQy9DKysgc3R5bGUgSU8KKyAg
ICAgICAvLyB0aGF0IGlzbid0IHdvcnNlLi4uCisgICAgICAgaW50IHNpemU7CisgICAgICAgdW5z
aWduZWQgY2hhciogYnVmID0gUGF0aF9SZWFkQmluYXJ5RmlsZSggc3RyRmlsZW5hbWUsICZzaXpl
ICk7CisgICAgICAgaWYgKCFidWYpCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKworICAgICAg
IC8vIGNvbnZlcnQgQ1JMRiAtPiBMRgorICAgICAgIHNpemVfdCBvdXRzaXplID0gMTsKKyAgICAg
ICBmb3IgKGludCBpPTE7IGkgPCBzaXplOyBpKyspCisgICAgICAgeworICAgICAgICAgICAgICBp
ZiAoYnVmW2ldID09ICdcbicgJiYgYnVmW2ktMV0gPT0gJ1xyJykgLy8gQ1JMRgorICAgICAgICAg
ICAgICAgICAgICAgYnVmW291dHNpemUtMV0gPSAnXG4nOyAvLyAtPkxGCisgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdXRzaXplKytdID0gYnVmW2ldOyAvLyBq
dXN0IGNvcHkKKyAgICAgICB9CisKKyAgICAgICBzdGQ6OnN0cmluZyByZXQoKGNoYXIgKilidWYs
IG91dHNpemUpOworICAgICAgIGRlbGV0ZVtdIGJ1ZjsKKyAgICAgICByZXR1cm4gcmV0OworfQor
CisKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZz
dHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCit7CisgICAgICAgRklMRSAqZjsKKyNp
ZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgZiA9IGZvcGVuKCBzdHJGaWxlbmFtZS5jX3N0cigp
LCAidyIgKTsKKyNlbHNlCisgICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFtZSA9IFVURjh0
bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgZXJybm9fdCBlcnIgPSBfd2ZvcGVu
X3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3IiApOworICAgICAgIGlmICggZXJyICE9
IDAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7CisgICAgICAgfQorI2VuZGlm
CisgICAgICAgCisgICAgICAgYm9vbCBvayA9IGZhbHNlOworCisgICAgICAgaWYgKCBmICE9IE5V
TEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgb2sgPSBmcHV0cyggcGNoRGF0YSwgZikgPj0g
MDsKKyAgICAgICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKworICAgICAgIHJldHVybiBv
azsKK30KKworYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYyggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICkKK3sKKyAgICAgICBz
dGQ6OnN0cmluZyBzdHJUbXBGaWxlbmFtZSA9IHN0ckZpbGVuYW1lICsgIi50bXAiOworCisgICAg
ICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIHN0clRtcEZpbGVuYW1lLCBwY2hE
YXRhICkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAvLyBQbGF0Zm9y
bSBzcGVjaWZpYyBhdG9taWMgZmlsZSByZXBsYWNlbWVudAorI2lmIGRlZmluZWQoIF9XSU4zMiAp
CisgICAgICAgc3RkOjp3c3RyaW5nIHdzRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUu
Y19zdHIoKSApOworICAgICAgIHN0ZDo6d3N0cmluZyB3c1RtcEZpbGVuYW1lID0gVVRGOHRvMTYo
IHN0clRtcEZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICBpZiAoICE6OlJlcGxhY2VGaWxlVygg
d3NGaWxlbmFtZS5jX3N0cigpLCB3c1RtcEZpbGVuYW1lLmNfc3RyKCksIG51bGxwdHIsIDAsIDAs
IDAgKSApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBpZiB3ZSBjb3VsZG4ndCBSZXBsYWNl
RmlsZSwgdHJ5IGEgbm9uLWF0b21pYyB3cml0ZSBhcyBhIGZhbGxiYWNrCisgICAgICAgICAgICAg
IGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJGaWxlbmFtZSwgcGNoRGF0YSAp
ICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisjZWxpZiBk
ZWZpbmVkKCBQT1NJWCApCisgICAgICAgaWYgKCByZW5hbWUoIHN0clRtcEZpbGVuYW1lLmNfc3Ry
KCksIHN0ckZpbGVuYW1lLmNfc3RyKCkgKSA9PSAtMSApCisgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyNlbHNlCisjZXJyb3IgRG8gbm90IGtub3cgaG93IHRvIHdyaXRlIGF0b21pYyBmaWxl
CisjZW5kaWYKKworICAgICAgIHJldHVybiB0cnVlOworfQorCisKKyNpZiBkZWZpbmVkKFdJTjMy
KQorI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8vIgorI2Vsc2UKKyNkZWZpbmUgRklM
RV9VUkxfUFJFRklYICJmaWxlOi8vIgorI2VuZGlmCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBv
c2U6IFR1cm5zIGEgcGF0aCB0byBhIGZpbGUgb24gZGlzayBpbnRvIGEgVVJMIChvciBqdXN0IHJl
dHVybnMgdGhlIHZhbHVlIGlmIGl0J3MgYWxyZWFkeSBhIFVSTCkKKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0
ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRp
dmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCApCit7CisgICAgICAgaWYgKCAh
c3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHA6Ly8iLCA3ICkKKyAgICAgICAg
ICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRwczovLyIsIDgg
KQorICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19zdHIoKSwgImZp
bGU6Ly8iLCA3ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHNSZWxhdGl2ZVBh
dGg7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0ZDo6
c3RyaW5nIHNBYnNvbHV0ZSA9IFBhdGhfTWFrZUFic29sdXRlKCBzUmVsYXRpdmVQYXRoLCBzQmFz
ZVBhdGggKTsKKyAgICAgICAgICAgICAgaWYgKCBzQWJzb2x1dGUuZW1wdHkoKSApCisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc0Fic29sdXRlOworICAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpzdHJpbmcoIEZJTEVfVVJMX1BSRUZJWCApICsgc0Fic29sdXRlOworICAgICAgIH0KK30KKwor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBv
c2U6IFN0cmlwcyBvZmYgZmlsZTovLyBvZmYgYSBVUkwgYW5kIHJldHVybnMgdGhlIHBhdGguIEZv
ciBvdGhlciBraW5kcyBvZiBVUkxzIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZAorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFBh
dGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCApCit7CisgICAg
ICAgaWYgKCAhc3RybmljbXAoIHNGaWxlVXJsLmNfc3RyKCksIEZJTEVfVVJMX1BSRUZJWCwgc3Ry
bGVuKCBGSUxFX1VSTF9QUkVGSVggKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVy
biBzRmlsZVVybC5jX3N0cigpICsgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKTsKKyAgICAgICB9
CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAg
IH0KK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gUHVycG9zZTogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0
ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4KKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBHZXRVc2VyRG9jdW1l
bnRzUGF0aCgpCit7CisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIFdDSEFSIHJ3Y2hQYXRo
W01BWF9QQVRIXTsKKworICAgICAgIGlmICggIVNVQ0NFRURFRCggU0hHZXRGb2xkZXJQYXRoVygg
TlVMTCwgQ1NJRExfTVlET0NVTUVOVFMgfCBDU0lETF9GTEFHX0NSRUFURSwgTlVMTCwgMCwgcndj
aFBhdGggKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICB9
CisKKyAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRvIFVURi04IGFuZCBzdG9yZSBpbiB0aGUg
b3V0cHV0CisgICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQYXRoID0gVVRGMTZ0bzgoIHJ3Y2hQYXRo
ICk7CisKKyAgICAgICByZXR1cm4gc1VzZXJQYXRoOworI2VsaWYgZGVmaW5lZCggT1NYICkKKyAg
ICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgICAgTlNBcnJheSAqcGF0aHMgPSBO
U1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyggTlNEb2N1bWVudERpcmVjdG9yeSwg
TlNVc2VyRG9tYWluTWFzaywgWUVTICk7CisgICAgICAgICAgICAgIGlmICggW3BhdGhzIGNvdW50
XSA9PSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIi
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICByZXR1cm4g
W1twYXRocyBvYmplY3RBdEluZGV4OjBdIFVURjhTdHJpbmddOworICAgICAgIH0KKyNlbGlmIGRl
ZmluZWQoIExJTlVYICkKKyAgICAgICAvLyBAdG9kbzogbm90IHNvbHZlZC9jaGFuZ2VkIGFzIHBh
cnQgb2YgT1NYIC0gc3RpbGwgbm90IHJlYWwgLSBqdXN0IHJlbW92ZWQgb2xkIGNsYXNzIGJhc2Vk
IHN0ZWFtIGN1dCBhbmQgcGFzdGUKKyAgICAgICBjb25zdCBjaGFyICpwY2hIb21lID0gZ2V0ZW52
KCAiSE9NRSIgKTsKKyAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCApCisgICAgICAgeworICAg
ICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorICAgICAgIHJldHVybiBwY2hIb21lOwor
I2VuZGlmCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92
cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk1N2M2NGQ3MzdhOGMxMTYw
NGZhNTg2YTQyMmFjMDgxMjJjYTU1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTMy
IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09
Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHN0ZGludC5o
PgorCisvKiogUmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1lKSB0byB0aGUgY3Vy
cmVudCBleGVjdXRhYmxlICovCitzdGQ6OnN0cmluZyBQYXRoX0dldEV4ZWN1dGFibGVQYXRoKCk7
CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5
ICovCitzdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtpbmdEaXJlY3RvcnkoKTsKKworLyoqIFNldHMg
dGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIFJldHVybnMgdHJ1ZSBp
ZiB0aGlzIHdhcyBzdWNjZXNzZnVsLiAqLworYm9vbCBQYXRoX1NldFdvcmtpbmdEaXJlY3Rvcnko
IGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVybnMgdGhlIHBhdGggKGlu
Y2x1ZGluZyBmaWxlbmFtZSkgb2YgdGhlIGN1cnJlbnQgc2hhcmVkIGxpYiBvciBETEwgKi8KK3N0
ZDo6c3RyaW5nIFBhdGhfR2V0VGhpc01vZHVsZVBhdGgoKTsKKworLyoqIFJldHVybnMgdGhlIHNw
ZWNpZmllZCBwYXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lLgorKiBJZiBzbGFzaCBpcyB1bnNwZWNp
ZmllZCB0aGUgbmF0aXZlIHBhdGggc2VwYXJhdG9yIG9mIHRoZSBjdXJyZW50IHBsYXRmb3JtCisq
IHdpbGwgYmUgdXNlZC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBGaWxlbmFtZSggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLyoqIHJldHVybnMganVz
dCB0aGUgZmlsZW5hbWUgZnJvbSB0aGUgcHJvdmlkZWQgZnVsbCBvciByZWxhdGl2ZSBwYXRoLiAq
Lworc3RkOjpzdHJpbmcgUGF0aF9TdHJpcERpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUg
d2l0aCBubyBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lLiAKKyogSWYgdGhlcmUg
aXMgYSBwYXRoIHRoZSBwYXRoIGlzIGxlZnQgaW50YWN0LiAqLworc3RkOjpzdHJpbmcgUGF0aF9T
dHJpcEV4dGVuc2lvbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApOworCisvKiogcmV0dXJu
cyBqdXN0IGV4dGVuc2lvbiBvZiB0aGUgcHJvdmlkZWQgZmlsZW5hbWUgKGlmIGFueSkuICovCitz
dGQ6OnN0cmluZyBQYXRoX0dldEV4dGVuc2lvbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCAp
OworCisvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBwYXRoIGlzIGFic29sdXRlICovCitib29sIFBh
dGhfSXNBYnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApOworCisvKiogTWFrZXMg
YW4gYWJzb2x1dGUgcGF0aCBmcm9tIGEgcmVsYXRpdmUgcGF0aCBhbmQgYSBiYXNlIHBhdGggKi8K
K3N0ZDo6c3RyaW5nIFBhdGhfTWFrZUFic29sdXRlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxh
dGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoLCBjaGFyIHNsYXNoID0gMCAp
OworCisvKiogRml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGZvciB0aGUgY3VycmVudCBw
bGF0Zm9ybS4KKyogSWYgc2xhc2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFy
YXRvciBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybQorKiB3aWxsIGJlIHVzZWQuICovCitzdGQ6OnN0
cmluZyBQYXRoX0ZpeFNsYXNoZXMoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xh
c2ggPSAwICk7CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIHNlcGFyYXRvciBmb3IgdGhlIGN1cnJl
bnQgcGxhdGZvcm0gKi8KK2NoYXIgUGF0aF9HZXRTbGFzaCgpOworCisvKiogSmFtcyB0d28gcGF0
aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2luZCBvZiBzbGFzaCAqLworc3RkOjpzdHJpbmcg
UGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNlY29uZCwgY2hhciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qg
c3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNvbnN0IHN0
ZDo6c3RyaW5nICYgdGhpcmQsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6OnN0cmluZyBQYXRoX0pv
aW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25k
LCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjb25zdCBzdGQ6OnN0cmluZyAmZm91cnRoLCBj
aGFyIHNsYXNoID0gMCApOworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCAKKyAgICAgICBjb25zdCBz
dGQ6OnN0cmluZyAmIGZpcnN0LCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwg
CisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgCisgICAgICAgY29uc3Qgc3RkOjpz
dHJpbmcgJiBmb3VydGgsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlmdGgsIAorICAg
ICAgIGNoYXIgc2xhc2ggPSAwICk7CisKKworLyoqIFJlbW92ZXMgcmVkdW5kYW50IDxkaXI+Ly4u
IGVsZW1lbnRzIGluIHRoZSBwYXRoLiBSZXR1cm5zIGFuIGVtcHR5IHBhdGggaWYgdGhlIAorKiBz
cGVjaWZpZWQgcGF0aCBoYXMgYSBicm9rZW4gbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGZvciBpdHMg
bnVtYmVyIG9mIC4ucy4KKyogSWYgc2xhc2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5hdGl2ZSBwYXRo
IHNlcGFyYXRvciBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybQorKiB3aWxsIGJlIHVzZWQuICovCitz
dGQ6OnN0cmluZyBQYXRoX0NvbXBhY3QoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNo
YXIgc2xhc2ggPSAwICk7CisKKy8vKiogUmVtb3ZlZCB0cmFpbGluZyBzbGFzaGVzICovCitzdGQ6
OnN0cmluZyBQYXRoX1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jh
d1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNp
ZmllZCBwYXRoIGV4aXN0cyBhbmQgaXMgYSBkaXJlY3RvcnkgKi8KK2Jvb2wgUGF0aF9Jc0RpcmVj
dG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApOworCisvKiogcmV0dXJucyB0cnVlIGlm
IHRoZSBzcGVjaWZpZWQgcGF0aCByZXByZXNlbnRzIGFuIGFwcCBidW5kbGUgKi8KK2Jvb2wgUGF0
aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApOworCisvKiogcmV0dXJu
cyB0cnVlIGlmIHRoZSB0aGUgcGF0aCBleGlzdHMgKi8KK2Jvb2wgUGF0aF9FeGlzdHMoIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIEhlbHBlciBmdW5jdGlvbnMgdG8gZmluZCBw
YXJlbnQgZGlyZWN0b3JpZXMgb3Igc3ViZGlyZWN0b3JpZXMgb2YgcGFyZW50IGRpcmVjdG9yaWVz
ICovCitzdGQ6OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSggY29u
c3Qgc3RkOjpzdHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3Ry
RGlyZWN0b3J5TmFtZSApOworc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50U3ViRGlyZWN0b3J5
UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qg
c3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKTsKKworLyoqIFBhdGggb3BlcmF0aW9ucyB0
byByZWFkIG9yIHdyaXRlIHRleHQvYmluYXJ5IGZpbGVzICovCit1bnNpZ25lZCBjaGFyICogUGF0
aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBpbnQgKnBT
aXplICk7Cit1aW50MzJfdCAgUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcg
JnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCB1blNpemUgKTsK
K2Jvb2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFt
ZSwgdW5zaWduZWQgY2hhciAqcERhdGEsIHVuc2lnbmVkIG5TaXplICk7CitzdGQ6OnN0cmluZyBQ
YXRoX1JlYWRUZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lICk7Citib29s
IFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5h
bWUsIGNvbnN0IGNoYXIgKnBjaERhdGEgKTsKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZp
bGVBdG9taWMoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNo
RGF0YSApOworCisvKiogUmV0dXJucyBhIGZpbGU6Ly8gdXJsIGZvciBwYXRocywgb3IgYW4gaHR0
cCBvciBodHRwcyB1cmwgaWYgdGhhdCdzIHdoYXQgd2FzIHByb3ZpZGVkICovCitzdGQ6OnN0cmlu
ZyBQYXRoX0ZpbGVQYXRoVG9VcmwoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0aXZlUGF0aCwg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzQmFzZVBhdGggKTsKKworLyoqIFN0cmlwcyBvZmYgZmlsZTov
LyBvZmYgYSBVUkwgYW5kIHJldHVybnMgdGhlIHBhdGguIEZvciBvdGhlciBraW5kcyBvZiBVUkxz
IGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCAqLworc3RkOjpzdHJpbmcgUGF0aF9VcmxUb0Zp
bGVQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNGaWxlVXJsICk7CisKKy8qKiBSZXR1cm5zIHRo
ZSByb290IG9mIHRoZSBkaXJlY3RvcnkgdGhlIHN5c3RlbSB3YW50cyB1cyB0byBzdG9yZSB1c2Vy
IGRvY3VtZW50cyBpbiAqLworc3RkOjpzdHJpbmcgR2V0VXNlckRvY3VtZW50c1BhdGgoKTsKKwor
I2lmbmRlZiBNQVhfVU5JQ09ERV9QQVRICisgICAgICAgI2RlZmluZSBNQVhfVU5JQ09ERV9QQVRI
IDMyNzY3CisjZW5kaWYKKworI2lmbmRlZiBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgKKyAgICAg
ICAjZGVmaW5lIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCAoTUFYX1VOSUNPREVfUEFUSCAqIDQp
CisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmIGRlZmluZWQoV0lOMzIpCisj
ZGVmaW5lIERZTkFNSUNfTElCX0VYVCAgICAgICAiLmRsbCIKKyNkZWZpbmUgUFJPR1JBTV9FWFQg
Ii5leGUiCisjaWZkZWYgX1dJTjY0CisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjY0Igor
I2Vsc2UKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAid2luMzIiCisjZW5kaWYKKyNlbGlmIGRl
ZmluZWQoT1NYKQorI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5keWxpYiIKKyNkZWZp
bmUgUExBVFNVQkRJUiAgICAgICAib3N4MzIiCisjZGVmaW5lIFBST0dSQU1fRVhUICIiCisjZWxp
ZiBkZWZpbmVkKExJTlVYKQorI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5zbyIKKyNk
ZWZpbmUgUFJPR1JBTV9FWFQgIiIKKyNpZiBkZWZpbmVkKCBMSU5VWDMyICkKKyNkZWZpbmUgUExB
VFNVQkRJUiAgICAgICAibGludXgzMiIKKyNlbHNlCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAg
ImxpbnV4NjQiCisjZW5kaWYKKyNlbHNlCisjd2FybmluZyAiVW5rbm93biBwbGF0Zm9ybSBmb3Ig
UExBVFNVQkRJUiIKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAidW5rbm93bl9wbGF0Zm9ybSIK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZWVjMjYw
NDU5YzUxZWVjNTY5YTJjYTViMTAyOWE1OWM5YmFjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAic2hhcmVkbGlidG9vbHNfcHVibGljLmgiCisj
aW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyNpbmNsdWRlIDx3aW5k
b3dzLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoUE9TSVgpCisjaW5jbHVkZSA8ZGxmY24uaD4K
KyNlbmRpZgorCitTaGFyZWRMaWJIYW5kbGUgU2hhcmVkTGliX0xvYWQoIGNvbnN0IGNoYXIgKnBj
aFBhdGggKQoreworI2lmIGRlZmluZWQoIF9XSU4zMikKKyAgICAgICByZXR1cm4gKFNoYXJlZExp
YkhhbmRsZSlMb2FkTGlicmFyeUV4KCBwY2hQYXRoLCBOVUxMLCBMT0FEX1dJVEhfQUxURVJFRF9T
RUFSQ0hfUEFUSCApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICByZXR1cm4gKFNoYXJl
ZExpYkhhbmRsZSlkbG9wZW4ocGNoUGF0aCwgUlRMRF9MT0NBTHxSVExEX05PVyk7CisjZW5kaWYK
K30KKwordm9pZCAqU2hhcmVkTGliX0dldEZ1bmN0aW9uKCBTaGFyZWRMaWJIYW5kbGUgbGliLCBj
b25zdCBjaGFyICpwY2hGdW5jdGlvbk5hbWUpCit7CisjaWYgZGVmaW5lZCggX1dJTjMyKQorICAg
ICAgIHJldHVybiAodm9pZCopR2V0UHJvY0FkZHJlc3MoIChITU9EVUxFKWxpYiwgcGNoRnVuY3Rp
b25OYW1lICk7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIHJldHVybiBkbHN5bSggbGli
LCBwY2hGdW5jdGlvbk5hbWUgKTsKKyNlbmRpZgorfQorCisKK3ZvaWQgU2hhcmVkTGliX1VubG9h
ZCggU2hhcmVkTGliSGFuZGxlIGxpYiApCit7CisgICAgICAgaWYgKCAhbGliICkKKyAgICAgICAg
ICAgICAgcmV0dXJuOworI2lmIGRlZmluZWQoIF9XSU4zMikKKyAgICAgICBGcmVlTGlicmFyeSgg
KEhNT0RVTEUpbGliICk7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIGRsY2xvc2UoIGxp
YiApOworI2VuZGlmCit9CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTAxNjNkYmZhYjJiZTgzNjJmODNiYzIwOTNjMjQyMTRiMjQ3ZmJhZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNf
cHVibGljLmgKQEAgLTAsMCArMSwxMCBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENv
cnBvcmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKwordHlwZWRlZiB2b2lkICpT
aGFyZWRMaWJIYW5kbGU7CisKK1NoYXJlZExpYkhhbmRsZSBTaGFyZWRMaWJfTG9hZCggY29uc3Qg
Y2hhciAqcGNoUGF0aCApOwordm9pZCAqU2hhcmVkTGliX0dldEZ1bmN0aW9uKCBTaGFyZWRMaWJI
YW5kbGUgbGliLCBjb25zdCBjaGFyICpwY2hGdW5jdGlvbk5hbWUpOwordm9pZCBTaGFyZWRMaWJf
VW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICk7CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM2OTM3MGIyY2QxYjhjNWFhNGZkNzEwMjk2MmE5ZDRhYmU4ZjhkYjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRvb2xz
X3B1YmxpYy5jcHAKQEAgLTAsMCArMSw0MzcgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2
ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgInN0cnRvb2xzX3B1YmxpYy5o
IgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk
bGliLmg+CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitib29sIFN0cmluZ0hhc1ByZWZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
U3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKQoreworICAgICAgIHJldHVybiAw
ID09IHN0cm5pY21wKCBzU3RyaW5nLmNfc3RyKCksIHNQcmVmaXguY19zdHIoKSwgc1ByZWZpeC5s
ZW5ndGgoKSApOworfQorCitib29sIFN0cmluZ0hhc1ByZWZpeENhc2VTZW5zaXRpdmUoIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICkKK3sK
KyAgICAgICByZXR1cm4gMCA9PSBzdHJuY21wKCBzU3RyaW5nLmNfc3RyKCksIHNQcmVmaXguY19z
dHIoKSwgc1ByZWZpeC5sZW5ndGgoKSApOworfQorCisKK2Jvb2wgU3RyaW5nSGFzU3VmZml4KCBj
b25zdCBzdGQ6OnN0cmluZyAmc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJnNTdWZmaXggKQor
eworICAgICAgIHNpemVfdCBjU3RyTGVuID0gc1N0cmluZy5sZW5ndGgoKTsKKyAgICAgICBzaXpl
X3QgY1N1ZmZpeExlbiA9IHNTdWZmaXgubGVuZ3RoKCk7CisKKyAgICAgICBpZiAoIGNTdWZmaXhM
ZW4gPiBjU3RyTGVuICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgc3Rk
OjpzdHJpbmcgc1N0cmluZ1N1ZmZpeCA9IHNTdHJpbmcuc3Vic3RyKCBjU3RyTGVuIC0gY1N1ZmZp
eExlbiwgY1N1ZmZpeExlbiApOworCisgICAgICAgcmV0dXJuIDAgPT0gc3RyaWNtcCggc1N0cmlu
Z1N1ZmZpeC5jX3N0cigpLCBzU3VmZml4LmNfc3RyKCkgKTsKK30KKworYm9vbCBTdHJpbmdIYXNT
dWZmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmc1N0cmluZywgY29uc3Qgc3Rk
OjpzdHJpbmcgJnNTdWZmaXggKQoreworICAgICAgIHNpemVfdCBjU3RyTGVuID0gc1N0cmluZy5s
ZW5ndGgoKTsKKyAgICAgICBzaXplX3QgY1N1ZmZpeExlbiA9IHNTdWZmaXgubGVuZ3RoKCk7CisK
KyAgICAgICBpZiAoIGNTdWZmaXhMZW4gPiBjU3RyTGVuICkKKyAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgc3RkOjpzdHJpbmcgc1N0cmluZ1N1ZmZpeCA9IHNTdHJpbmcuc3Vi
c3RyKCBjU3RyTGVuIC0gY1N1ZmZpeExlbiwgY1N1ZmZpeExlbiApOworCisgICAgICAgcmV0dXJu
IDAgPT0gc3RybmNtcCggc1N0cmluZ1N1ZmZpeC5jX3N0cigpLCBzU3VmZml4LmNfc3RyKCksY1N1
ZmZpeExlbiApOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOgorLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgVVRGMTZ0bzgoY29uc3Qgd2NoYXJfdCAq
IGluKQoreworICAgICAgIHN0ZDo6c3RyaW5nIG91dDsKKyAgICAgICB1bnNpZ25lZCBpbnQgY29k
ZXBvaW50ID0gMDsKKyAgICAgICBmb3IgKCA7IGluICYmICppbiAhPSAwOyArK2luICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGlmICgqaW4gPj0gMHhkODAwICYmICppbiA8PSAweGRiZmYpCisg
ICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAoKCppbiAtIDB4ZDgwMCkgPDwgMTApICsg
MHgxMDAwMDsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAoKmluID49IDB4ZGMwMCAmJiAqaW4gPD0gMHhkZmZmKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCB8PSAqaW4gLSAweGRjMDA7CisgICAgICAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0g
KmluOworCisgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZXBvaW50IDw9IDB4N2YpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPihj
b2RlcG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvZGVwb2ludCA8PSAw
eDdmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4YzAgfCAoKGNvZGVwb2ludCA+PiA2
KSAmIDB4MWYpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBz
dGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKGNvZGVwb2ludCAmIDB4M2YpKSk7CisgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2RlcG9pbnQgPD0g
MHhmZmZmKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHhlMCB8ICgoY29kZXBvaW50ID4+
IDEyKSAmIDB4MGYpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgx
LCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDNmKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hh
cj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHhm
MCB8ICgoY29kZXBvaW50ID4+IDE4KSAmIDB4MDcpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChjb2RlcG9pbnQg
Pj4gMTIpICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5k
KDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoKGNvZGVwb2ludCA+PiA2KSAmIDB4M2YpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxj
aGFyPigweDgwIHwgKGNvZGVwb2ludCAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAwOworICAgICAgICAgICAgICB9Cisg
ICAgICAgfQorICAgICAgIHJldHVybiBvdXQ7Cit9CisKK3N0ZDo6d3N0cmluZyBVVEY4dG8xNihj
b25zdCBjaGFyICogaW4pCit7CisgICAgICAgc3RkOjp3c3RyaW5nIG91dDsKKyAgICAgICB1bnNp
Z25lZCBpbnQgY29kZXBvaW50ID0gMDsKKyAgICAgICBpbnQgZm9sbG93aW5nID0gMDsKKyAgICAg
ICBmb3IgKCA7IGluICYmICppbiAhPSAwOyArK2luICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVuc2lnbmVkIGNoYXIgY2ggPSAqaW47CisgICAgICAgICAgICAgIGlmIChjaCA8PSAweDdmKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaDsKKyAg
ICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyA9IDA7CisgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgZWxzZSBpZiAoY2ggPD0gMHhiZikKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgaWYgKGZvbGxvd2luZyA+IDApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gKGNvZGVwb2ludCA8PCA2KSB8
IChjaCAmIDB4M2YpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tZm9sbG93aW5nOwor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVs
c2UgaWYgKGNoIDw9IDB4ZGYpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IGNvZGVwb2ludCA9IGNoICYgMHgxZjsKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyA9
IDE7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPD0gMHhlZikK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2ggJiAw
eDBmOworICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nID0gMjsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgIGNvZGVwb2ludCA9IGNoICYgMHgwNzsKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2lu
ZyA9IDM7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYgKGZvbGxvd2luZyA9PSAw
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZXBvaW50ID4g
MHhmZmZmKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8d2NoYXJfdD4oMHhkODAwICsgKGNvZGVwb2lu
dCA+PiAxMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0
YXRpY19jYXN0PHdjaGFyX3Q+KDB4ZGMwMCArIChjb2RlcG9pbnQgJiAweDAzZmYpKSk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDx3Y2hhcl90Pihjb2Rl
cG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IDA7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJuIG91dDsKK30KKworCit2b2lkIHN0cmNweV9z
YWZlKCBjaGFyICpwY2hCdWZmZXIsIHNpemVfdCB1bkJ1ZmZlclNpemVCeXRlcywgY29uc3QgY2hh
ciAqcGNoU291cmNlICkKK3sKKyAgICAgICBwY2hCdWZmZXJbIHVuQnVmZmVyU2l6ZUJ5dGVzIC0g
MSBdID0gJ1wwJzsKKyAgICAgICBzdHJuY3B5KCBwY2hCdWZmZXIsIHBjaFNvdXJjZSwgdW5CdWZm
ZXJTaXplQnl0ZXMgLSAxICk7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IGNv
bnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmlu
ZyBTdHJpbmdUb1VwcGVyKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcgKQoreworICAgICAg
IHN0ZDo6c3RyaW5nIHNPdXQ7CisgICAgICAgc091dC5yZXNlcnZlKCBzU3RyaW5nLnNpemUoKSAr
IDEgKTsKKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpID0gc1N0cmlu
Zy5iZWdpbigpOyBpICE9IHNTdHJpbmcuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAg
ICAgICBzT3V0LnB1c2hfYmFjayggKGNoYXIpdG91cHBlciggKmkgKSApOworICAgICAgIH0KKwor
ICAgICAgIHJldHVybiBzT3V0OworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBj
b252ZXJ0cyBhIHN0cmluZyB0byBsb3dlciBjYXNlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJp
bmcgU3RyaW5nVG9Mb3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICkKK3sKKyAgICAg
ICBzdGQ6OnN0cmluZyBzT3V0OworICAgICAgIHNPdXQucmVzZXJ2ZSggc1N0cmluZy5zaXplKCkg
KyAxICk7CisgICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaSA9IHNTdHJp
bmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvbG93ZXIoICppICkgKTsKKyAgICAgICB9CisK
KyAgICAgICByZXR1cm4gc091dDsKK30KKworCit1aW50MzJfdCBSZXR1cm5TdGRTdHJpbmcoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1ZhbHVlLCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVm
ZmVyTGVuICkKK3sKKyAgICAgICB1aW50MzJfdCB1bkxlbiA9ICh1aW50MzJfdClzVmFsdWUubGVu
Z3RoKCkgKyAxOworICAgICAgIGlmKCAhcGNoQnVmZmVyIHx8ICF1bkJ1ZmZlckxlbiApCisgICAg
ICAgICAgICAgIHJldHVybiB1bkxlbjsKKworICAgICAgIGlmKCB1bkJ1ZmZlckxlbiA8IHVuTGVu
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaEJ1ZmZlclswXSA9ICdcMCc7CisgICAgICAg
fQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIG1lbWNweSggcGNoQnVmZmVy
LCBzVmFsdWUuY19zdHIoKSwgdW5MZW4gKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gdW5M
ZW47Cit9CisKK3ZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3RyaW5nICYgc0Rlc3QsIGNv
bnN0IGNoYXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKQoreworICAgICAgIHNE
ZXN0LnJlc2l6ZSggdW5CdWZmZXJMZW4gKyAxICk7CisgICAgICAgbWVtY3B5KCBjb25zdF9jYXN0
PCBjaGFyKiA+KCBzRGVzdC5jX3N0cigpICksIHBjaEJ1ZmZlciwgdW5CdWZmZXJMZW4gKTsKKyAg
ICAgICBjb25zdF9jYXN0PCBjaGFyKiA+KCBzRGVzdC5jX3N0cigpIClbIHVuQnVmZmVyTGVuIF0g
PSAnXDAnOworfQorCisvKiogUmV0dXJucyBhIHN0ZDo6c3RyaW5nIGZyb20gYSB1aW50NjRfdCAq
Lworc3RkOjpzdHJpbmcgVWludDY0VG9TdHJpbmcoIHVpbnQ2NF90IHVsVmFsdWUgKQoreworICAg
ICAgIGNoYXIgYnVmWyAyMiBdOworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgc3ByaW50
Zl9zKCBidWYsICIlbGx1IiwgdWxWYWx1ZSApOworI2Vsc2UKKyAgICBzbnByaW50ZiggYnVmLCBz
aXplb2YoIGJ1ZiApLCAiJWxsdSIsIChsb25nIGxvbmcgdW5zaWduZWQgaW50ICkgdWxWYWx1ZSAp
OworI2VuZGlmCisgICAgICAgcmV0dXJuIGJ1ZjsKK30KKworCisvKiogcmV0dXJucyBhIHVpbnQ2
NF90IGZyb20gYSBzdHJpbmcgKi8KK3VpbnQ2NF90IFN0cmluZ1RvVWludDY0KCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNWYWx1ZSApCit7CisgICAgICAgcmV0dXJuIHN0cnRvdWxsKCBzVmFsdWUuY19z
dHIoKSwgTlVMTCwgMCApOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBIZWxwZXIgZm9yIGNvbnZlcnRpbmcgYSBudW1lcmljIHZhbHVlIHRvIGEgaGV4IGRpZ2l0LCB2
YWx1ZSBzaG91bGQgYmUgMC0xNS4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2NoYXIgY0ludFRv
SGV4RGlnaXQoIGludCBuVmFsdWUgKQoreworICAgICAgIC8vQXNzZXJ0KCBuVmFsdWUgPj0gMCAm
JiBuVmFsdWUgPD0gMTUgKTsKKyAgICAgICByZXR1cm4gIjAxMjM0NTY3ODlBQkNERUYiWyBuVmFs
dWUgJiAxNSBdOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBIZWxw
ZXIgZm9yIGNvbnZlcnRpbmcgYSBoZXggY2hhciB2YWx1ZSB0byBudW1lcmljLCByZXR1cm4gLTEg
aWYgdGhlIGNoYXIKKy8vICAgICAgICAgIGlzIG5vdCBhIHZhbGlkIGhleCBkaWdpdC4KKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK2ludCBpSGV4Q2hhclRvSW50KCBjaGFyIGNWYWx1ZSApCit7Cisg
ICAgICAgaW50MzJfdCBpVmFsdWUgPSBjVmFsdWU7CisgICAgICAgaWYgKCAodWludDMyX3QpKCBp
VmFsdWUgLSAnMCcgKSA8IDEwICkKKyAgICAgICAgICAgICAgcmV0dXJuIGlWYWx1ZSAtICcwJzsK
KworICAgICAgIGlWYWx1ZSB8PSAweDIwOworICAgICAgIGlmICggKHVpbnQzMl90KSggaVZhbHVl
IC0gJ2EnICkgPCA2ICkKKyAgICAgICAgICAgICAgcmV0dXJuIGlWYWx1ZSAtICdhJyArIDEwOwor
CisgICAgICAgcmV0dXJuIC0xOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJw
b3NlOiBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvZiBlbmNvZGUsIHdvcmtzIGluIHRoZSBzdHJp
Y3QgUkZDIG1hbm5lciwgb3IKKy8vICAgICAgICAgIHdpdGggc3BhY2VzIHR1cm5lZCB0byArIGxp
a2UgSFRNTCBmb3JtIGVuY29kaW5nLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1VS
TEVuY29kZUludGVybmFsKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4sIGJvb2wgYlVzZVBsdXNGb3JTcGFjZSApCit7Cisg
ICAgICAgLy9Bc3NlcnRNc2coIG5EZXN0TGVuID4gMypuU291cmNlTGVuLCAiVGFyZ2V0IGJ1ZmZl
ciBmb3IgVl9VUkxFbmNvZGUgc2hvdWxkIGJlIDN4IHNvdXJjZSBsZW5ndGgsIHBsdXMgb25lIGZv
ciB0ZXJtaW5hdGluZyBudWxsXG4iICk7CisgICAgICAgCisgICAgICAgaW50IGlEZXN0UG9zID0g
MDsKKyAgICAgICBmb3IgKCBpbnQgaT0wOyBpIDwgblNvdXJjZUxlbjsgKytpICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIC8vIHdvcnN0IGNhc2Ugd2UgbmVlZCAzIGFkZGl0aW9uYWwgY2hhcnMK
KyAgICAgICAgICAgICAgaWYoIChpRGVzdFBvcyszKSA+IG5EZXN0TGVuICApCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHBjaERlc3RbMF0gPSAnXDAnOworLy8gICAgICAg
ICAgICAgICAgICAgICBBc3NlcnRNc2coIGZhbHNlLCAiVGFyZ2V0IGJ1ZmZlciB0b28gc2hvcnRc
biIgKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgIC8vIFdlIGFsbG93IG9ubHkgYS16LCBBLVosIDAtOSwgcGVyaW9kLCB1bmRl
cnNjb3JlLCBhbmQgaHlwaGVuIHRvIHBhc3MgdGhyb3VnaCB1bmVzY2FwZWQuCisgICAgICAgICAg
ICAgIC8vIFRoZXNlIGFyZSB0aGUgY2hhcmFjdGVycyBhbGxvd2VkIGJ5IGJvdGggdGhlIG9yaWdp
bmFsIFJGQyAxNzM4IGFuZCB0aGUgbGF0ZXN0IFJGQyAzOTg2LgorICAgICAgICAgICAgICAvLyBD
dXJyZW50IHNwZWNzIGFsc28gYWxsb3cgJ34nLCBidXQgdGhhdCBpcyBmb3JiaWRkZW4gdW5kZXIg
b3JpZ2luYWwgUkZDIDE3MzguCisgICAgICAgICAgICAgIGlmICggISggcGNoU291cmNlW2ldID49
ICdhJyAmJiBwY2hTb3VyY2VbaV0gPD0gJ3onICkgJiYgISggcGNoU291cmNlW2ldID49ICdBJyAm
JiBwY2hTb3VyY2VbaV0gPD0gJ1onICkgJiYgIShwY2hTb3VyY2VbaV0gPj0gJzAnICYmIHBjaFNv
dXJjZVtpXSA8PSAnOScgKQorICAgICAgICAgICAgICAgICAgICAgICYmIHBjaFNvdXJjZVtpXSAh
PSAnLScgJiYgcGNoU291cmNlW2ldICE9ICdfJyAmJiBwY2hTb3VyY2VbaV0gIT0gJy4nICAgICAg
IAorICAgICAgICAgICAgICApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IGlmICggYlVzZVBsdXNGb3JTcGFjZSAmJiBwY2hTb3VyY2VbaV0gPT0gJyAnICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0
UG9zKytdID0gJysnOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnJSc7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDhfdCBpVmFsdWUgPSBwY2hTb3VyY2VbaV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCBpVmFsdWUgPT0gMCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0g
JzAnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9z
KytdID0gJzAnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDEgPSBjSW50VG9IZXhE
aWdpdCggaVZhbHVlICUgMTYgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aVZhbHVlIC89IDE2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNI
ZXhEaWdpdDIgPSBjSW50VG9IZXhEaWdpdCggaVZhbHVlICk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSBjSGV4RGlnaXQyOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gY0hleERp
Z2l0MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gcGNoU291cmNlW2ld
OworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgaWYoIChpRGVzdFBvcysxKSA+
IG5EZXN0TGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaERlc3RbMF0gPSAnXDAnOwor
ICAgICAgICAgICAgICAvL0Fzc2VydE1zZyggZmFsc2UsICJUYXJnZXQgYnVmZmVyIHRvbyBzaG9y
dCB0byB0ZXJtaW5hdGVcbiIgKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgIH0KKwor
ICAgICAgIC8vIE51bGwgdGVybWluYXRlCisgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9IDA7
Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogSW50ZXJuYWwgaW1w
bGVtZW50YXRpb24gb2YgZGVjb2RlLCB3b3JrcyBpbiB0aGUgc3RyaWN0IFJGQyBtYW5uZXIsIG9y
CisvLyAgICAgICAgICB3aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBsaWtlIEhUTUwgZm9ybSBlbmNv
ZGluZy4KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgIFJldHVybnMgdGhlIGFtb3VudCBvZiBz
cGFjZSB1c2VkIGluIHRoZSBvdXRwdXQgYnVmZmVyLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
c2l6ZV90IFZfVVJMRGVjb2RlSW50ZXJuYWwoIGNoYXIgKnBjaERlY29kZURlc3QsIGludCBuRGVj
b2RlRGVzdExlbiwgY29uc3QgY2hhciAqcGNoRW5jb2RlZFNvdXJjZSwgaW50IG5FbmNvZGVkU291
cmNlTGVuLCBib29sIGJVc2VQbHVzRm9yU3BhY2UgKQoreworICAgICAgIGlmICggbkRlY29kZURl
c3RMZW4gPCBuRW5jb2RlZFNvdXJjZUxlbiApCisgICAgICAgeworICAgICAgICAgICAgICAvL0Fz
c2VydE1zZyggZmFsc2UsICJWX1VSTERlY29kZSBuZWVkcyBhIGRlc3QgYnVmZmVyIGF0IGxlYXN0
IGFzIGxhcmdlIGFzIHRoZSBzb3VyY2UiICk7CisgICAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgIH0KKworICAgICAgIGludCBpRGVzdFBvcyA9IDA7CisgICAgICAgZm9yKCBpbnQgaT0wOyBp
IDwgbkVuY29kZWRTb3VyY2VMZW47ICsraSApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAo
IGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoRW5jb2RlZFNvdXJjZVtpXSA9PSAnKycgKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysr
IF0gPSAnICc7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoIHBjaEVu
Y29kZWRTb3VyY2VbaV0gPT0gJyUnICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgLy8gUGVyY2VudCBzaWduaWZpZXMgYW4gZW5jb2RlZCB2YWx1ZSwgbG9vayBhaGVhZCBm
b3IgdGhlIGhleCBjb2RlLCBjb252ZXJ0IHRvIG51bWVyaWMsIGFuZCB1c2UgdGhhdAorCisgICAg
ICAgICAgICAgICAgICAgICAvLyBGaXJzdCBtYWtlIHN1cmUgd2UgaGF2ZSAyIG1vcmUgY2hhcnMK
KyAgICAgICAgICAgICAgICAgICAgIGlmICggaSA8IG5FbmNvZGVkU291cmNlTGVuIC0gMiApCisg
ICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBj
SGV4RGlnaXQxID0gcGNoRW5jb2RlZFNvdXJjZVtpKzFdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgY0hleERpZ2l0MiA9IHBjaEVuY29kZWRTb3VyY2VbaSsyXTsKKworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhlIGNoYXJzIGludG8gYSBoZXggdmFsdWUs
IGlmIHRoZXkgYXJlIG5vdCB2YWxpZCwgdGhlbiB3ZSdsbAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIGp1c3QgcGxhY2UgdGhlICUgYW5kIHRoZSBmb2xsb3dpbmcgdHdvIGNoYXJzIGRp
cmVjdCBpbnRvIHRoZSBzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZl
biB0aG91Z2ggdGhpcyByZWFsbHkgc2hvdWxkbid0IGhhcHBlbiwgd2hvIGtub3dzIHdoYXQgYmFk
IGNsaWVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXkgZG8gd2l0aCBlbmNv
ZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGJWYWxpZCA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpVmFsdWUgPSBpSGV4Q2hhclRvSW50KCBj
SGV4RGlnaXQxICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpVmFsdWUgIT0g
LTEgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaVZhbHVlICo9IDE2OworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgaVZhbHVlMiA9IGlIZXhDaGFyVG9JbnQoIGNIZXhEaWdpdDIgKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpVmFsdWUyICE9IC0xICkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaVZhbHVlICs9IGlWYWx1ZTI7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSAoY2hh
cilpVmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiVmFs
aWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCAhYlZhbGlkICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9ICclJzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsgaURlc3RQ
b3MrKyBdID0gY0hleERpZ2l0MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gY0hleERpZ2l0MjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICAgICAgIC8vIFNraXAgYWhlYWQKKyAgICAgICAgICAgICAgICAgICAgIGkgKz0gMjsKKyAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IHBjaEVuY29kZWRTb3Vy
Y2VbaV07CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICAvLyBXZSBtYXkgbm90
IGhhdmUgZXh0cmEgcm9vbSB0byBOVUxMIHRlcm1pbmF0ZSwgc2luY2UgdGhpcyBjYW4gYmUgdXNl
ZCBvbiByYXcgZGF0YSwgYnV0IGlmIHdlIGRvCisgICAgICAgLy8gZ28gYWhlYWQgYW5kIGRvIGl0
IGFzIHRoaXMgY2FuIGF2b2lkIGJ1Z3MuCisgICAgICAgaWYgKCBpRGVzdFBvcyA8IG5EZWNvZGVE
ZXN0TGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbaURlc3RQb3Nd
ID0gMDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gKHNpemVfdClpRGVzdFBvczsKK30KKwor
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogRW5jb2RlcyBhIHN0cmluZyAob3Ig
YmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlv
biAyLjIuICAKKy8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0
cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAg
ICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5v
dCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hv
dWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJv
b20gZm9yIGRlY29kZS4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9VUkxFbmNvZGUo
IGNoYXIgKnBjaERlc3QsIGludCBuRGVzdExlbiwgY29uc3QgY2hhciAqcGNoU291cmNlLCBpbnQg
blNvdXJjZUxlbiApCit7CisgICAgICAgcmV0dXJuIFZfVVJMRW5jb2RlSW50ZXJuYWwoIHBjaERl
c3QsIG5EZXN0TGVuLCBwY2hTb3VyY2UsIG5Tb3VyY2VMZW4sIHRydWUgKTsKK30KKworCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBEZWNvZGVzIGEgc3RyaW5nIChvciBiaW5h
cnkgZGF0YSkgZnJvbSBVUkwgZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9uIDIu
Mi4gIAorLy8gICAgICAgICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3RyaWN0
IFJGQyBpbXBsZW1lbnRhdGlvbiwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAgICAg
ICAgIHRoZSBzdGFuZGFyZCBpbiBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90IGJl
aW5nIHBhcnQgb2YgdGhlIFJGQy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91bGQg
YmUgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9vbSBm
b3IgZGVjb2RlLgorLy8gICAgICAgICAgICAgICAgICAgICBEZXN0IGJ1ZmZlciBiZWluZyB0aGUg
c2FtZSBhcyB0aGUgc291cmNlIGJ1ZmZlciAoZGVjb2RlIGluLXBsYWNlKSBpcyBleHBsaWNpdGx5
IGFsbG93ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzaXplX3QgVl9VUkxEZWNvZGUoIGNo
YXIgKnBjaERlY29kZURlc3QsIGludCBuRGVjb2RlRGVzdExlbiwgY29uc3QgY2hhciAqcGNoRW5j
b2RlZFNvdXJjZSwgaW50IG5FbmNvZGVkU291cmNlTGVuICkKK3sKKyAgICAgICByZXR1cm4gVl9V
UkxEZWNvZGVJbnRlcm5hbCggcGNoRGVjb2RlRGVzdCwgbkRlY29kZURlc3RMZW4sIHBjaEVuY29k
ZWRTb3VyY2UsIG5FbmNvZGVkU291cmNlTGVuLCB0cnVlICk7Cit9CisKKy8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK3ZvaWQgVl9TdHJpcEV4dGVuc2lvbiggc3RkOjpzdHJpbmcgJmluICkKK3sKKyAg
ICAgICAvLyBGaW5kIHRoZSBsYXN0IGRvdC4gSWYgaXQncyBmb2xsb3dlZCBieSBhIGRvdCBvciBh
IHNsYXNoLCB0aGVuIGl0J3MgcGFydCBvZiBhIAorICAgICAgIC8vIGRpcmVjdG9yeSBzcGVjaWZp
ZXIgbGlrZSAuLi8uLi9zb21lZGlyLy4vYmxhaC4KKyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIHRlc3QgPSBpbi5yZmluZCggJy4nICk7CisgICAgICAgaWYgKCB0ZXN0ICE9IHN0ZDo6c3Ry
aW5nOjpucG9zICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIFRoaXMgaGFuZGxlcyB0aGlu
Z3MgbGlrZSAiLlxibGFoIiBvciAiYzpcbXlAZW1haWwuY29tXGFiY1xkZWZcZ2VoIgorICAgICAg
ICAgICAgICAvLyBXaGljaCB3b3VsZCBvdGhlcndpc2Ugd2luZCB1cCB3aXRoICIiIGFuZCAiYzpc
bXlAZW1haWwiLCByZXNwZWN0aXZlbHkuCisgICAgICAgICAgICAgIGlmICggaW4ucmZpbmQoICdc
XCcgKSA8IHRlc3QgJiYgaW4ucmZpbmQoICcvJyApIDwgdGVzdCApCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIGluLnJlc2l6ZSggdGVzdCApOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3N0cnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDYzZTU0YTI4YzczNGI3
N2Y5MmY3NzgzNDZhM2E2YTg1YzY0ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDEy
NiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09
PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxzdGRpbnQu
aD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3Ry
aW5nIGhhcyB0aGUgcHJlZml4ICovCitib29sIFN0cmluZ0hhc1ByZWZpeCggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKTsKK2Jvb2wgU3Ry
aW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nLCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKTsKKworLyoqIHJldHVybnMgaWYgdGhlIHN0cmlu
ZyBoYXMgdGhlIHN1ZmZpeCAqLworYm9vbCBTdHJpbmdIYXNTdWZmaXgoIGNvbnN0IHN0ZDo6c3Ry
aW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApOworYm9vbCBTdHJpbmdI
YXNTdWZmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmc1N0cmluZywgY29uc3Qg
c3RkOjpzdHJpbmcgJnNTdWZmaXggKTsKKworLyoqIGNvbnZlcnRzIGEgVVRGLTE2IHN0cmluZyB0
byBhIFVURi04IHN0cmluZyAqLworc3RkOjpzdHJpbmcgVVRGMTZ0bzgoY29uc3Qgd2NoYXJfdCAq
IGluKTsKKworLyoqIGNvbnZlcnRzIGEgVVRGLTggc3RyaW5nIHRvIGEgVVRGLTE2IHN0cmluZyAq
Lworc3RkOjp3c3RyaW5nIFVURjh0bzE2KGNvbnN0IGNoYXIgKiBpbik7CisjZGVmaW5lIFV0ZjE2
RnJvbVV0ZjggVVRGOHRvMTYKKworLyoqIHNhZmVseSBjb3B5IGEgc3RyaW5nIGludG8gYSBidWZm
ZXIgKi8KK3ZvaWQgc3RyY3B5X3NhZmUoIGNoYXIgKnBjaEJ1ZmZlciwgc2l6ZV90IHVuQnVmZmVy
U2l6ZUJ5dGVzLCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKTsKK3RlbXBsYXRlPCBzaXplX3QgYnVm
ZmVyU2l6ZSA+Cit2b2lkIHN0cmNweV9zYWZlKCBjaGFyICgmIGJ1ZmZlcikgWyBidWZmZXJTaXpl
IF0sIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSApIAoreworICAgICAgIHN0cmNweV9zYWZlKCBidWZm
ZXIsIGJ1ZmZlclNpemUsIHBjaFNvdXJjZSApOworfQorCisKKy8qKiBjb252ZXJ0cyBhIHN0cmlu
ZyB0byB1cHBlciBjYXNlICovCitzdGQ6OnN0cmluZyBTdHJpbmdUb1VwcGVyKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNTdHJpbmcgKTsKKworLyoqIGNvbnZlcnRzIGEgc3RyaW5nIHRvIGxvd2VyIGNh
c2UgKi8KK3N0ZDo6c3RyaW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0
cmluZyApOworCisvLyB3ZSBzdHJpY21wIChmcm9tIFdJTikgYnV0IGl0IGlzbid0IFBPU0lYIC0g
T1NYL0xJTlVYIGhhdmUgc3RyY2FzZWNtcCBzbyBqdXN0IGlubGluZSBicmlkZ2UgdG8gaXQKKyNp
ZiBkZWZpbmVkKCBPU1ggKSB8fCBkZWZpbmVkKCBMSU5VWCApCisjaW5jbHVkZSA8c3RyaW5ncy5o
PgoraW5saW5lIGludCBzdHJpY21wKGNvbnN0IGNoYXIgKnBTdHIxLCBjb25zdCBjaGFyICpwU3Ry
MikgeyByZXR1cm4gc3RyY2FzZWNtcChwU3RyMSxwU3RyMik7IH0KKyNkZWZpbmUgX3N0cmljbXAg
c3RyaWNtcAoraW5saW5lIGludCBzdHJuaWNtcCggY29uc3QgY2hhciAqcFN0cjEsIGNvbnN0IGNo
YXIgKnBTdHIyLCBzaXplX3QgdW5CdWZmZXJMZW4gKSB7IHJldHVybiBzdHJuY2FzZWNtcCggcFN0
cjEscFN0cjIsIHVuQnVmZmVyTGVuICk7IH0KKyNkZWZpbmUgX3N0cm5pY21wIHN0cm5pY21wCisK
KyNkZWZpbmUgX3ZzbnByaW50Zl9zIHZzbnByaW50ZgorCisjZGVmaW5lIF9UUlVOQ0FURSAoKHNp
emVfdCktMSkKKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBPU1ggKQorLy8gYmVoYXZpb3JzIGVu
c3VyZSBOVUxMLXRlcm1pbmF0aW9uIGF0IGxlYXN0IGFzIHdlbGwgYXMgX1RSVU5DQVRFIGRvZXMs
IGJ1dAorLy8gd2NzbmNweV9zL3N0cm5jcHlfcyBjYW4gbm9uLU5VTEwtdGVybWluYXRlLCB3Y3Ns
Y3B5L3N0cmxjcHkgY2FuIG5vdC4KK2lubGluZSBlcnJub190IHdjc25jcHlfcyh3Y2hhcl90ICpz
dHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3Qgd2NoYXJfdCAqc3RyU291cmNl
LCBzaXplX3QgY291bnQpCit7CisgICAgICAgcmV0dXJuIHdjc2xjcHkoc3RyRGVzdCwgc3RyU291
cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKK30KKworaW5saW5lIGVycm5vX3Qgc3RybmNweV9zKGNo
YXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBjb25zdCBjaGFyICpzdHJTb3Vy
Y2UsIHNpemVfdCBjb3VudCkKK3sKKyAgICAgICByZXR1cm4gc3RybGNweShzdHJEZXN0LCBzdHJT
b3VyY2UsIG51bWJlck9mRWxlbWVudHMpOworfQorCisjZW5kaWYKKworI2lmIGRlZmluZWQoIExJ
TlVYICkKKy8vIHRoaXMgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgcmV0dXJuIHdoZXRoZXIgb3Ig
bm90IHRoZSBkZXN0aW5hdGlvbiB3YXMgCisvLyB0cnVuY2F0ZWQsIGJ1dCB0aGF0IGlzIHN0cmFp
Z2h0Zm9yd2FyZCB0byBmaXggaWYgYW55Ym9keSBhY3R1YWxseSBuZWVkcyB0aGUKKy8vIHJldHVy
biBjb2RlLiAKKyNpbmNsdWRlICJzdHJpbmcuaCIKK2lubGluZSB2b2lkIHdjc25jcHlfcyh3Y2hh
cl90ICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3Qgd2NoYXJfdCAqc3Ry
U291cmNlLCBzaXplX3QgY291bnQpCit7CisgICAgICAgd2NzbmNweShzdHJEZXN0LCBzdHJTb3Vy
Y2UsIG51bWJlck9mRWxlbWVudHMpOworICAgICAgIHN0ckRlc3RbbnVtYmVyT2ZFbGVtZW50cy0x
XSA9ICdcMCc7Cit9CisKK2lubGluZSB2b2lkIHN0cm5jcHlfcyhjaGFyICpzdHJEZXN0LCBzaXpl
X3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3QgY2hhciAqc3RyU291cmNlLCBzaXplX3QgY291bnQp
Cit7CisgICAgICAgc3RybmNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMp
OworICAgICAgIHN0ckRlc3RbbnVtYmVyT2ZFbGVtZW50cy0xXSA9ICdcMCc7Cit9CisKKyNlbmRp
ZgorCisjaWYgZGVmaW5lZCggX1dJTjMyICkgJiYgX01TQ19WRVIgPCAxODAwCitpbmxpbmUgdWlu
dDY0X3Qgc3RydG91bGwoY29uc3QgY2hhciAqc3RyLCBjaGFyICoqZW5kcHRyLCBpbnQgYmFzZSkg
eyByZXR1cm4gX3N0cnRvdWk2NCggc3RyLCBlbmRwdHIsIGJhc2UgKTsgfQorI2VuZGlmCisKKy8q
IEhhbmRsZXMgY29weWluZyBhIHN0ZDo6c3RyaW5nIGludG8gYSBidWZmZXIgYXMgd291bGQgYmUg
cHJvdmlkZWQgaW4gYW4gQVBJICovCit1aW50MzJfdCBSZXR1cm5TdGRTdHJpbmcoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1ZhbHVlLCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVu
ICk7CisKKy8qIEhhbmRsZXMgY29weWluZyBhIGJ1ZmZlciBpbnRvIGFuIHN0ZDo6c3RyaW5nIGFu
ZCBhdXRvIGFkZHMgbnVsbCB0ZXJtaW5hdG9yICovCit2b2lkIEJ1ZmZlclRvU3RkU3RyaW5nKCBz
dGQ6OnN0cmluZyAmIHNEZXN0LCBjb25zdCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVm
ZmVyTGVuICk7CisKKy8qKiBSZXR1cm5zIGEgc3RkOjpzdHJpbmcgZnJvbSBhIHVpbnQ2NF90ICov
CitzdGQ6OnN0cmluZyBVaW50NjRUb1N0cmluZyggdWludDY0X3QgdWxWYWx1ZSApOworCisvKiog
cmV0dXJucyBhIHVpbnQ2NF90IGZyb20gYSBzdHJpbmcgKi8KK3VpbnQ2NF90IFN0cmluZ1RvVWlu
dDY0KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSApOworCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLyBQdXJwb3NlOiBFbmNvZGVzIGEgc3RyaW5nIChvciBiaW5hcnkgZGF0YSkgZnJvbSBV
UkwgZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9uIDIuMi4gIAorLy8gICAgICAg
ICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3RyaWN0IFJGQyBpbXBsZW1lbnRh
dGlvbiwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAgICAgICAgIHRoZSBzdGFuZGFy
ZCBpbiBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90IGJlaW5nIHBhcnQgb2YgdGhl
IFJGQy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3QgYXMg
bGFyZ2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9vbSBmb3IgZGVjb2RlLgorLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1VSTEVuY29kZSggY2hhciAqcGNoRGVzdCwgaW50
IG5EZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuICk7CisKKy8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IERlY29kZXMgYSBzdHJpbmcgKG9yIGJp
bmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24g
Mi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJp
Y3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFjZSBhcyBpcworLy8gICAg
ICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3Qg
YmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAgICAgIERlc3QgYnVmZmVyIHNob3Vs
ZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29t
IGZvciBkZWNvZGUuCisvLyAgICAgICAgICAgICAgICAgICAgIERlc3QgYnVmZmVyIGJlaW5nIHRo
ZSBzYW1lIGFzIHRoZSBzb3VyY2UgYnVmZmVyIChkZWNvZGUgaW4tcGxhY2UpIGlzIGV4cGxpY2l0
bHkgYWxsb3dlZC4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3NpemVfdCBWX1VSTERlY29kZSgg
Y2hhciAqcGNoRGVjb2RlRGVzdCwgaW50IG5EZWNvZGVEZXN0TGVuLCBjb25zdCBjaGFyICpwY2hF
bmNvZGVkU291cmNlLCBpbnQgbkVuY29kZWRTb3VyY2VMZW4gKTsKKworLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorLy8gUHVycG9zZTogc3RyaXAgZXh0ZW5zaW9uIGZyb20gYSBwYXRoCisvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfU3RyaXBFeHRlbnNpb24oIHN0ZDo6c3RyaW5nICZpbiAp
OworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
dnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGYzMDQyNGE5
ZmYzNjFjODM2ZjlhNGMwOGNmYTY4NDZhYWQzN2I2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3Bw
CkBAIC0wLDAgKzEsNDExIEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRp
b24gPT09PT09PT09PT09Ly8KKworI2luY2x1ZGUgInZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIgor
I2luY2x1ZGUgImpzb24vanNvbi5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKKyNp
bmNsdWRlICJlbnZ2YXJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMu
aCIKKyNpbmNsdWRlICJkaXJ0b29sc19wdWJsaWMuaCIKKworI2lmIGRlZmluZWQoIFdJTjMyICkK
KyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c2hsb2JqLmg+CisKKyN1bmRlZiBHZXRF
bnZpcm9ubWVudFZhcmlhYmxlCisjZWxpZiBkZWZpbmVkIE9TWAorI2luY2x1ZGUgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPEFwcEtpdC9BcHBLaXQuaD4KKyNlbGlmIGRlZmlu
ZWQoTElOVVgpCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2VuZGlm
CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKKyNpZm5kZWYgVlJMb2cKKyAgICAgICAjaWYgZGVm
aW5lZCggX19NSU5HVzMyX18gKQorICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGFyZ3MuLi4p
ICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgYXJncykKKyAgICAgICAjZWxpZiBkZWZpbmVk
KCBXSU4zMiApCisgICAgICAgICAgICAgICNkZWZpbmUgVlJMb2coZm10LCAuLi4pICAgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgZm10LCBfX1ZBX0FSR1NfXykKKyAgICAgICAjZWxzZQorICAg
ICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgYXJncykKKyAgICAgICAjZW5kaWYKKyNlbmRpZgorCisvKiogUmV0dXJucyB0aGUgcm9v
dCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBjb25m
aWcgZGF0YSBpbiAqLworc3RhdGljIHN0ZDo6c3RyaW5nIEdldEFwcFNldHRpbmdzUGF0aCgpCit7
CisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIFdDSEFSIHJ3Y2hQYXRoW01BWF9QQVRIXTsK
KworICAgICAgIGlmKCAhU1VDQ0VFREVEKCBTSEdldEZvbGRlclBhdGhXKCBOVUxMLCBDU0lETF9M
T0NBTF9BUFBEQVRBIHwgQ1NJRExfRkxBR19DUkVBVEUsIE5VTEwsIDAsIHJ3Y2hQYXRoICkgKSAp
CisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorCisgICAgICAg
Ly8gQ29udmVydCB0aGUgcGF0aCB0byBVVEYtOCBhbmQgc3RvcmUgaW4gdGhlIG91dHB1dAorICAg
ICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCA9IFVURjE2dG84KCByd2NoUGF0aCApOworCisgICAg
ICAgcmV0dXJuIHNVc2VyUGF0aDsKKyNlbGlmIGRlZmluZWQoIE9TWCApCisgICAgICAgc3RkOjpz
dHJpbmcgc1NldHRpbmdzRGlyOworICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAg
ICAgICAvLyBTZWFyY2ggZm9yIHRoZSBwYXRoCisgICAgICAgICAgICAgIE5TQXJyYXkgKnBhdGhz
ID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoIE5TQXBwbGljYXRpb25TdXBw
b3J0RGlyZWN0b3J5LCBOU1VzZXJEb21haW5NYXNrLCBZRVMgKTsKKyAgICAgICAgICAgICAgaWYg
KCBbcGF0aHMgY291bnRdID09IDAgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgIE5TU3RyaW5nICpyZXNvbHZlZFBhdGggPSBbcGF0aHMgb2JqZWN0QXRJbmRleDowXTsK
KyAgICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gW3Jlc29sdmVkUGF0aCBzdHJpbmdCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6IEAiT3BlblZSIl07CisgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICBpZiAoICFbW05TRmlsZU1hbmFnZXIgbmV3XSBjcmVhdGVEaXJlY3RvcnlBdFBhdGg6IHJl
c29sdmVkUGF0aCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmls
IGVycm9yOm5pbF0gKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIHNT
ZXR0aW5nc0Rpci5hc3NpZ24oIFtyZXNvbHZlZFBhdGggVVRGOFN0cmluZ10gKTsKKyAgICAgICB9
CisgICAgICAgcmV0dXJuIHNTZXR0aW5nc0RpcjsKKyNlbGlmIGRlZmluZWQoIExJTlVYICkKKwor
ICAgICAgIC8vIEFzIGRlZmluZWQgYnkgWERHIEJhc2UgRGlyZWN0b3J5IFNwZWNpZmljYXRpb24g
CisgICAgICAgLy8gaHR0cHM6Ly9zcGVjaWZpY2F0aW9ucy5mcmVlZGVza3RvcC5vcmcvYmFzZWRp
ci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRlc3QuaHRtbAorCisgICAgICAgY29uc3QgY2hhciAqcGNo
SG9tZSA9IGdldGVudigiWERHX0NPTkZJR19IT01FIik7CisgICAgICAgaWYgKCAoIHBjaEhvbWUg
IT0gTlVMTCkgJiYgKCBwY2hIb21lWzBdICE9ICdcMCcgKSApCisgICAgICAgeworICAgICAgICAg
ICAgICByZXR1cm4gcGNoSG9tZTsKKyAgICAgICB9CisKKyAgICAgICAvLworICAgICAgIC8vIFhE
R19DT05GSUdfSE9NRSBpcyBub3QgZGVmaW5lZCwgdXNlIH4vLmNvbmZpZyBpbnN0ZWFkCisgICAg
ICAgLy8gCisgICAgICAgcGNoSG9tZSA9IGdldGVudiggIkhPTUUiICk7CisgICAgICAgaWYgKCBw
Y2hIb21lID09IE5VTEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAg
ICAgIH0KKworICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCggcGNoSG9tZSApOworICAgICAg
IHNVc2VyUGF0aCA9IFBhdGhfSm9pbiggc1VzZXJQYXRoLCAiLmNvbmZpZyIgKTsKKyAgICAgICBy
ZXR1cm4gc1VzZXJQYXRoOworI2Vsc2UKKyAgICAgICAjd2FybmluZyAiVW5zdXBwb3J0ZWQgcGxh
dGZvcm0iCisjZW5kaWYKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6
IENvbnN0cnVjdG9yCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NWUlBhdGhSZWdpc3RyeV9QdWJs
aWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMoKQoreworCit9CisKKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8gUHVycG9zZTogQ29tcHV0ZXMgdGhlIHJlZ2lzdHJ5IGZpbGVuYW1lCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldE9w
ZW5WUkNvbmZpZ1BhdGgoKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNDb25maWdQYXRoID0gR2V0
QXBwU2V0dGluZ3NQYXRoKCk7CisgICAgICAgaWYoIHNDb25maWdQYXRoLmVtcHR5KCkgKQorICAg
ICAgICAgICAgICByZXR1cm4gIiI7CisKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVk
KCBMSU5VWCApCisgICAgICAgc0NvbmZpZ1BhdGggPSBQYXRoX0pvaW4oIHNDb25maWdQYXRoLCAi
b3BlbnZyIiApOworI2VsaWYgZGVmaW5lZCAoIE9TWCApIAorICAgICAgIHNDb25maWdQYXRoID0g
UGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwgIi5vcGVudnIiICk7CisjZWxzZQorICAgICAgICN3YXJu
aW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKKyNlbmRpZgorICAgICAgIHNDb25maWdQYXRoID0g
UGF0aF9GaXhTbGFzaGVzKCBzQ29uZmlnUGF0aCApOworICAgICAgIHJldHVybiBzQ29uZmlnUGF0
aDsKK30KKworCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRW
UlBhdGhSZWdpc3RyeUZpbGVuYW1lKCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IEdl
dE9wZW5WUkNvbmZpZ1BhdGgoKTsKKyAgICAgICBpZiAoIHNQYXRoLmVtcHR5KCkgKQorICAgICAg
ICAgICAgICByZXR1cm4gIiI7CisKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQorICAgICAgIHNQYXRo
ID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9wZW52cnBhdGhzLnZycGF0aCIgKTsKKyNlbGlmIGRlZmlu
ZWQgKCBQT1NJWCApIAorICAgICAgIHNQYXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9wZW52cnBh
dGhzLnZycGF0aCIgKTsKKyNlbHNlCisgICAgICAgI2Vycm9yICJVbnN1cHBvcnRlZCBwbGF0Zm9y
bSIKKyNlbmRpZgorICAgICAgIHNQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOworICAg
ICAgIHJldHVybiBzUGF0aDsKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBv
c2U6IENvbnZlcnRzIEpTT04gdG8gYSBoaXN0b3J5IGFycmF5CisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK3N0YXRpYyB2b2lkIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCBzdGQ6OnZlY3Rvcjwgc3Rk
OjpzdHJpbmcgPiAqcHZlY0hpc3RvcnksIGNvbnN0IEpzb246OlZhbHVlICYgcm9vdCwgY29uc3Qg
Y2hhciAqcGNoQXJyYXlOYW1lICkKK3sKKyAgICAgICBpZiggIXJvb3QuaXNNZW1iZXIoIHBjaEFy
cmF5TmFtZSApICkKKyAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgY29uc3QgSnNvbjo6
VmFsdWUgJiBhcnJheU5vZGUgPSByb290WyBwY2hBcnJheU5hbWUgXTsKKyAgICAgICBpZiggIWFy
cmF5Tm9kZSApCisgICAgICAgeworICAgICAgICAgICAgICBWUkxvZyggIlZSIFBhdGggUmVnaXN0
cnkgbm9kZSAlcyBpcyBub3QgYW4gYXJyYXlcbiIsIHBjaEFycmF5TmFtZSApOworICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgfQorCisgICAgICAgcHZlY0hpc3RvcnktPmNsZWFyKCk7Cisg
ICAgICAgcHZlY0hpc3RvcnktPnJlc2VydmUoIGFycmF5Tm9kZS5zaXplKCkgKTsKKyAgICAgICBm
b3IoIHVpbnQzMl90IHVuSW5kZXggPSAwOyB1bkluZGV4IDwgYXJyYXlOb2RlLnNpemUoKTsgdW5J
bmRleCsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoKCBhcnJh
eU5vZGVbIHVuSW5kZXggXS5hc1N0cmluZygpICk7CisgICAgICAgICAgICAgIHB2ZWNIaXN0b3J5
LT5wdXNoX2JhY2soIHNQYXRoICk7CisgICAgICAgfQorfQorCisKKy8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8gUHVycG9zZTogQ29udmVydHMgYSBoaXN0b3J5IGFycmF5IHRvIEpTT04KKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorc3RhdGljIHZvaWQgU3RyaW5nTGlzdFRvSnNvbiggY29uc3Qgc3Rk
Ojp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4gJiB2ZWNIaXN0b3J5LCBKc29uOjpWYWx1ZSAmIHJvb3Qs
IGNvbnN0IGNoYXIgKnBjaEFycmF5TmFtZSApCit7CisgICAgICAgSnNvbjo6VmFsdWUgJiBhcnJh
eU5vZGUgPSByb290WyBwY2hBcnJheU5hbWUgXTsKKyAgICAgICBmb3IoIGF1dG8gaSA9IHZlY0hp
c3RvcnkuYmVnaW4oKTsgaSAhPSB2ZWNIaXN0b3J5LmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYXJyYXlOb2RlLmFwcGVuZCggKmkgKTsKKyAgICAgICB9Cit9CisKKworLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K2Jvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5nKCBzdGQ6OnN0cmluZyAm
c0pzb25TdHJpbmcgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRo
UmVnaXN0cnlGaWxlbmFtZSgpOworICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIAorICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdp
c3RyeUNvbnRlbnRzID0gUGF0aF9SZWFkVGV4dEZpbGUoIHNSZWdQYXRoICk7CisgICAgICAgaWYo
IHNSZWdpc3RyeUNvbnRlbnRzLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICBzSnNvblN0cmluZyA9IHNSZWdpc3RyeUNvbnRlbnRzOworCisgICAgICAgcmV0
dXJuIHRydWU7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBMb2Fk
cyB0aGUgY29uZmlnIGZpbGUgZnJvbSBpdHMgd2VsbCBrbm93biBsb2NhdGlvbgorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUo
KQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxl
bmFtZSgpOworICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIFZSTG9nKCAiVW5hYmxlIHRvIGRldGVybWluZSBWUiBQYXRoIFJlZ2lzdHJ5IGZpbGVu
YW1lXG4iICk7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAg
ICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlDb250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVn
UGF0aCApOworICAgICAgIGlmKCBzUmVnaXN0cnlDb250ZW50cy5lbXB0eSgpICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRvIHJlYWQgVlIgUGF0aCBSZWdpc3RyeSBm
cm9tICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpICk7CisgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICB9CisKKyAgICAgICBKc29uOjpWYWx1ZSByb290OworICAgICAgIEpzb246OlJl
YWRlciByZWFkZXI7CisKKyAgICAgICBpZiggIXJlYWRlci5wYXJzZSggc1JlZ2lzdHJ5Q29udGVu
dHMsIHJvb3QgKSApCisgICAgICAgeworICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBw
YXJzZSAlczogJXNcbiIsIHNSZWdQYXRoLmNfc3RyKCksIHJlYWRlci5nZXRGb3JtYXR0ZWRFcnJv
ck1lc3NhZ2VzKCkuY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgfQorCisgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZtX3ZlY1J1bnRpbWVQYXRo
LCByb290LCAicnVudGltZSIgKTsKKyAgICAgICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1f
dmVjQ29uZmlnUGF0aCwgcm9vdCwgImNvbmZpZyIgKTsKKyAgICAgICBQYXJzZVN0cmluZ0xpc3RG
cm9tSnNvbiggJm1fdmVjTG9nUGF0aCwgcm9vdCwgImxvZyIgKTsKKyAgICAgICBpZiAocm9vdC5p
c01lbWJlciggImV4dGVybmFsX2RyaXZlcnMiICkgJiYgcm9vdFsgImV4dGVybmFsX2RyaXZlcnMi
IF0uaXNBcnJheSgpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFBhcnNlU3RyaW5nTGlzdEZy
b21Kc29uKCAmbV92ZWNFeHRlcm5hbERyaXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiAp
OworICAgICAgIH0KKworICAgICAgIHJldHVybiB0cnVlOworfQorCisKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorLy8gUHVycG9zZTogU2F2ZXMgdGhlIGNvbmZpZyBmaWxlIHRvIGl0cyB3ZWxsIGtu
b3duIGxvY2F0aW9uCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgQ1ZSUGF0aFJlZ2lzdHJ5
X1B1YmxpYzo6QlNhdmVUb0ZpbGUoKSBjb25zdAoreworI2lmIGRlZmluZWQoIERBU0hCT0FSRF9C
VUlMRF9NT0RFICkKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgICAgIHN0ZDo6c3Ry
aW5nIHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOworICAgICAgIGlmKCBz
UmVnUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIAor
ICAgICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgICAgCisgICAgICAgcm9vdFsgInZlcnNpb24i
IF0gPSAxOworICAgICAgIHJvb3RbICJqc29uaWQiIF0gPSAidnJwYXRocmVnIjsKKworICAgICAg
IFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjUnVudGltZVBhdGgsIHJvb3QsICJydW50aW1lIiApOwor
ICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNvbmZpZyIg
KTsKKyAgICAgICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7
CisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92ZWNFeHRlcm5hbERyaXZlcnMsIHJvb3QsICJl
eHRlcm5hbF9kcml2ZXJzIiApOworCisgICAgICAgSnNvbjo6U3R5bGVkV3JpdGVyIHdyaXRlcjsK
KyAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlDb250ZW50cyA9IHdyaXRlci53cml0ZSggcm9v
dCApOworCisgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBkaXJlY3Rvcnkgd2UncmUgd3JpdGluZyBp
bnRvIGFjdHVhbGx5IGV4aXN0cworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdEaXJlY3RvcnkgPSBQ
YXRoX1N0cmlwRmlsZW5hbWUoIHNSZWdQYXRoICk7CisgICAgICAgaWYoICFCQ3JlYXRlRGlyZWN0
b3J5UmVjdXJzaXZlKCBzUmVnRGlyZWN0b3J5LmNfc3RyKCkgKSApCisgICAgICAgeworICAgICAg
ICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBjcmVhdGUgcGF0aCByZWdpc3RyeSBkaXJlY3Rvcnkg
JXNcbiIsIHNSZWdEaXJlY3RvcnkuY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgfQorCisgICAgICAgaWYoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSgg
c1JlZ1BhdGgsIHNSZWdpc3RyeUNvbnRlbnRzLmNfc3RyKCkgKSApCisgICAgICAgeworICAgICAg
ICAgICAgICBWUkxvZyggIlVuYWJsZSB0byB3cml0ZSBWUiBwYXRoIHJlZ2lzdHJ5IHRvICVzXG4i
LCBzUmVnUGF0aC5jX3N0cigpICk7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICB9CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCisKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyB0aGUgY3VycmVudCBydW50aW1lIHBhdGggb3Ig
TlVMTCBpZiBubyBwYXRoIGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0
ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFJ1bnRpbWVQYXRoKCkgY29uc3QK
K3sKKyAgICAgICBpZiggbV92ZWNSdW50aW1lUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAg
cmV0dXJuICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjUnVudGlt
ZVBhdGguZnJvbnQoKS5jX3N0cigpOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8g
UHVycG9zZTogUmV0dXJucyB0aGUgY3VycmVudCBjb25maWcgcGF0aCBvciBOVUxMIGlmIG5vIHBh
dGggaXMgY29uZmlndXJlZC4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCgpIGNvbnN0Cit7CisgICAgICAgaWYo
IG1fdmVjQ29uZmlnUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjQ29uZmlnUGF0aC5mcm9udCgpLmNf
c3RyKCk7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXR1cm5z
IHRoZSBjdXJyZW50IGxvZyBwYXRoIG9yIE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGlj
OjpHZXRMb2dQYXRoKCkgY29uc3QKK3sKKyAgICAgICBpZiggbV92ZWNMb2dQYXRoLmVtcHR5KCkg
KQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICBy
ZXR1cm4gbV92ZWNMb2dQYXRoLmZyb250KCkuY19zdHIoKTsKK30KKworCisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyBwYXRocyB1c2luZyB0aGUgcGF0aCByZWdp
c3RyeSBhbmQgdGhlIHByb3ZpZGVkIG92ZXJyaWRlIAorLy8gICAgICAgICAgICAgICAgICAgICB2
YWx1ZXMuIFBhc3MgTlVMTCBmb3IgYW55IHBhdGhzIHlvdSBkb24ndCBjYXJlIGFib3V0LgorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCBzdGQ6OnN0cmluZyAqcHNSdW50aW1lUGF0aCwgc3RkOjpzdHJpbmcgKnBzQ29uZmlnUGF0aCwg
c3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwgY29uc3QgY2hhciAqcGNoQ29uZmlnUGF0aE92ZXJyaWRl
LCBjb25zdCBjaGFyICpwY2hMb2dQYXRoT3ZlcnJpZGUsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
PiAqcHZlY0V4dGVybmFsRHJpdmVycyApCit7CisgICAgICAgQ1ZSUGF0aFJlZ2lzdHJ5X1B1Ymxp
YyBwYXRoUmVnOworICAgICAgIGJvb2wgYkxvYWRlZFJlZ2lzdHJ5ID0gcGF0aFJlZy5CTG9hZEZy
b21GaWxlKCk7CisgICAgICAgaW50IG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzID0gMDsKKwor
ICAgICAgIGlmKCBwc1J1bnRpbWVQYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICgg
R2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgKS5sZW5ndGgo
KSAhPSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzUnVudGlt
ZVBhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBrX3BjaFJ1bnRpbWVPdmVycmlkZVZhciAp
OworICAgICAgICAgICAgICAgICAgICAgbkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRSdW50aW1l
UGF0aCgpLmVtcHR5KCkgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAq
cHNSdW50aW1lUGF0aCA9IHBhdGhSZWcuR2V0UnVudGltZVBhdGgoKTsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICpwc1J1bnRpbWVQYXRoID0gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAg
ICAgICBpZiggcHNDb25maWdQYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggR2V0
RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hDb25maWdPdmVycmlkZVZhciApLmxlbmd0aCgpICE9
IDAgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNDb25maWdQYXRo
ID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hDb25maWdPdmVycmlkZVZhciApOworICAg
ICAgICAgICAgICAgICAgICAgbkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKKyAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmKCBwY2hDb25maWdQYXRoT3ZlcnJpZGUgKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNDb25maWdQYXRoID0gcGNo
Q29uZmlnUGF0aE92ZXJyaWRlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2Ug
aWYoICFwYXRoUmVnLkdldENvbmZpZ1BhdGgoKS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9IHBhdGhSZWcuR2V0Q29uZmlnUGF0
aCgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9ICIiOworICAgICAgICAgICAg
ICB9CisgICAgICAgfQorCisgICAgICAgaWYoIHBzTG9nUGF0aCApCisgICAgICAgeworICAgICAg
ICAgICAgICBpZiAoIEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIg
KS5sZW5ndGgoKSAhPSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
KnBzTG9nUGF0aCA9IEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoTG9nT3ZlcnJpZGVWYXIg
KTsKKyAgICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggcGNoTG9nUGF0aE92ZXJyaWRl
ICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IHBj
aExvZ1BhdGhPdmVycmlkZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlm
KCAhcGF0aFJlZy5HZXRMb2dQYXRoKCkuZW1wdHkoKSApCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICpwc0xvZ1BhdGggPSBwYXRoUmVnLkdldExvZ1BhdGgoKTsKKyAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICpwc0xvZ1BhdGggPSAiIjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0K
KworICAgICAgIGlmICggcHZlY0V4dGVybmFsRHJpdmVycyApCisgICAgICAgeworICAgICAgICAg
ICAgICAqcHZlY0V4dGVybmFsRHJpdmVycyA9IHBhdGhSZWcubV92ZWNFeHRlcm5hbERyaXZlcnM7
CisgICAgICAgfQorCisgICAgICAgaWYgKCBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9PSAz
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIGFsbCB0aHJlZSBlbnZpcm9ubWVudCB2YXJp
YWJsZXMgd2hlcmUgc2V0LCBzbyB3ZSBkb24ndCBuZWVkIHRoZSBwaHlzaWNhbCBmaWxlCisgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKworICAgICAgIHJldHVybiBiTG9hZGVk
UmVnaXN0cnk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MGRl
NTZmOWRmNDBhYzU1OWM4NjFiZTVhNDUxYWI2ZGIwYzA5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1Ymxp
Yy5oCkBAIC0wLDAgKzEsNDUgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3Jh
dGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxzdHJpbmc+Cisj
aW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCitzdGF0aWMgY29uc3QgY2hh
ciAqa19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgPSAiVlJfT1ZFUlJJREUiOworc3RhdGljIGNvbnN0
IGNoYXIgKmtfcGNoQ29uZmlnT3ZlcnJpZGVWYXIgPSAiVlJfQ09ORklHX1BBVEgiOworc3RhdGlj
IGNvbnN0IGNoYXIgKmtfcGNoTG9nT3ZlcnJpZGVWYXIgPSAiVlJfTE9HX1BBVEgiOworCitjbGFz
cyBDVlJQYXRoUmVnaXN0cnlfUHVibGljCit7CitwdWJsaWM6CisgICAgICAgc3RhdGljIHN0ZDo6
c3RyaW5nIEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBzdGF0aWMgc3RkOjpz
dHJpbmcgR2V0T3BlblZSQ29uZmlnUGF0aCgpOworCitwdWJsaWM6CisgICAgICAgQ1ZSUGF0aFJl
Z2lzdHJ5X1B1YmxpYygpOworCisgICAgICAgLyoqIFJldHVybnMgcGF0aHMgdXNpbmcgdGhlIHBh
dGggcmVnaXN0cnkgYW5kIHRoZSBwcm92aWRlZCBvdmVycmlkZSB2YWx1ZXMuIFBhc3MgTlVMTCBm
b3IgYW55IHBhdGhzIHlvdSBkb24ndCBjYXJlIGFib3V0LiAKKyAgICAgICAqIFJldHVybnMgZmFs
c2UgaWYgdGhlIHBhdGggcmVnaXN0cnkgY291bGQgbm90IGJlIHJlYWQuIFZhbGlkIHBhdGhzIG1p
Z2h0IHN0aWxsIGJlIHJldHVybmVkIGJhc2VkIG9uIGVudmlyb25tZW50IHZhcmlhYmxlcy4gKi8K
KyAgICAgICBzdGF0aWMgYm9vbCBHZXRQYXRocyggc3RkOjpzdHJpbmcgKnBzUnVudGltZVBhdGgs
IHN0ZDo6c3RyaW5nICpwc0NvbmZpZ1BhdGgsIHN0ZDo6c3RyaW5nICpwc0xvZ1BhdGgsIGNvbnN0
IGNoYXIgKnBjaENvbmZpZ1BhdGhPdmVycmlkZSwgY29uc3QgY2hhciAqcGNoTG9nUGF0aE92ZXJy
aWRlLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gKnB2ZWNFeHRlcm5hbERyaXZlcnMgPSBOVUxM
ICk7CisKKyAgICAgICBib29sIEJMb2FkRnJvbUZpbGUoKTsKKyAgICAgICBib29sIEJTYXZlVG9G
aWxlKCkgY29uc3Q7CisKKyAgICAgICBib29sIFRvSnNvblN0cmluZyggc3RkOjpzdHJpbmcgJnNK
c29uU3RyaW5nICk7CisKKyAgICAgICAvLyBtZXRob2RzIHRvIGdldCB0aGUgY3VycmVudCB2YWx1
ZXMKKyAgICAgICBzdGQ6OnN0cmluZyBHZXRSdW50aW1lUGF0aCgpIGNvbnN0OworICAgICAgIHN0
ZDo6c3RyaW5nIEdldENvbmZpZ1BhdGgoKSBjb25zdDsKKyAgICAgICBzdGQ6OnN0cmluZyBHZXRM
b2dQYXRoKCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICAgICB0eXBlZGVmIHN0ZDo6dmVjdG9y
PCBzdGQ6OnN0cmluZyA+IFN0cmluZ1ZlY3Rvcl90OworCisgICAgICAgLy8gaW5kZXggMCBpcyB0
aGUgY3VycmVudCBzZXR0aW5nCisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNSdW50aW1lUGF0
aDsKKyAgICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY0xvZ1BhdGg7CisgICAgICAgU3RyaW5nVmVj
dG9yX3QgbV92ZWNDb25maWdQYXRoOworCisgICAgICAgLy8gZnVsbCBsaXN0IG9mIGV4dGVybmFs
IGRyaXZlcnMKKyAgICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY0V4dGVybmFsRHJpdmVyczsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFjYjdlN2JkMWJhN2E3Mjk1Y2I1MjUzNDM4NWE4Njcw
YWFmMzMyNzMuLmI2ZDJmYzU4M2EwMWQwMTQ3MGZlZjhhYWM5ZWM2MzM1YzU2NDEwZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zNjM0LDYgKzM2MzQsMTEgQEAgaWYgKEVOQUJMRV9VU0VSX01F
U1NBR0VfSEFORExFUlMpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKFVTRV9PUEVOVlIpCisgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtUSElSRFBBUlRZX0RJUn0v
b3BlbnZyL2hlYWRlcnMiKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyBvcGVudnJf
YXBpKQorZW5kaWYgKCkKKwogaWYgKFVTRV9XT0ZGMikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9J
TkNMVURFX0RJUkVDVE9SSUVTICIke1RISVJEUEFSVFlfRElSfS93b2ZmMi9zcmMiKQogICBsaXN0
KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyB3b2ZmMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDA2ZWJmOTExZGQ5OTYzY2Y1
MzA3ZGE4YjViMzcxMjYyMDRlZTdlLi43MDNhNjNlYWNhNTE0Y2IyZWI0NGJlMDhjYjVkM2Y5ZmFl
Yzk2MzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNzcxLDYgKzM3NzEsNyBAQAogCQk4QUY0RTU1QzExREM1QTYzMDAwRUQz
REUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBRjRFNTU5MTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRp
bWluZy5oICovOyB9OwogCQk4RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3Bv
bnNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhF
NEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwICovOyB9OwogCQk4
RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTRDOTZEOTFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi87IH07CisJCThFNzk0MkE3MUY2QkU3RkIwMDU3Qjgw
MyAvKiBsaWJvcGVudnIuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhFNzk0MkE2MUY2QkU3RkIwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChSZXF1aXJlZCwgKTsgfTsgfTsKIAkJOEY2NzU2MUIxMjg4
QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEZB
Qzc3NEQxMTk4NzJDQjAwMTVBRTk0IC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RjkzNEQ4NDExODlGMUVF
MDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLzsgfTsKIAkJOTAwMTc3NDAx
MkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4
NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwpAQCAtMTIxMzcsNiArMTIx
MzgsNyBAQAogCQk4QUY0RTU1QTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlVGltaW5nLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Zl
dGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEOTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4RTc5NDJBNjFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBuYW1lID0g
bGlib3BlbnZyLmE7IHBhdGggPSAuLi9UaGlyZFBhcnR5L29wZW52ci9idWlsZC9EZWJ1Zy9saWJv
cGVudnIuYTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY2NzU2MTkxMjg4QjE3QjAw
NDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXZlbnRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjkzNEQ4MzExODlG
MUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMzMCw2
ICsxNjMzMiw3IEBACiAJCQkJOTNGMTlCMTYwODI0NUU1OTAwMUU5QUJDIC8qIEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzRjE5QjE3MDgyNDVFNTkwMDFF
OUFCQyAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQk4
RTc5NDJBNzFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgaW4gRnJhbWV3b3JrcyAqLywK
IAkJCQkxQzA5RDA1OTFFMzFDNkE5MDA3MjVGMTggLyogbGliUEFMLmEgaW4gRnJhbWV3b3JrcyAq
LywKIAkJCQlERDc2M0JCMjA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5keWxpYiBpbiBGcmFt
ZXdvcmtzICovLAogCQkJCTM3OTkxOUIyMTIwMERFNTAwMEVBMDQxQyAvKiBsaWJ6LmR5bGliIGlu
IEZyYW1ld29ya3MgKi8sCkBAIC0xNjg0OSw2ICsxNjg1Miw3IEBACiAJCQkJRjgyMTYyOTkwMjlG
NEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLywKIAkJCQk5M0YxRDMx
QTA1NThDQzVDMDA4MjFCQzAgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCQkxQ0ZBRTMyMjBB
NkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLywKKwkJCQk4RTc5NDJBNjFGNkJFN0ZC
MDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi8sCiAJCQkJREQ3NjNCQjEwOTkyQzJDOTAwNzQwQjhF
IC8qIGxpYnhtbDIuZHlsaWIgKi8sCiAJCQkJMzc5OTE5QjExMjAwREU1MDAwRUEwNDFDIC8qIGxp
YnouZHlsaWIgKi8sCiAJCQkJQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUu
ZnJhbWV3b3JrICovLApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCA2ZDlmMjg3OTM4NzVlM2JkYjE2
YzJmYzBiYzNiN2M1YThjMzI3MWZlLi41MGE4ZDY1YjNhYzM1ZGZiNTEzM2NhYzM5NzdmMTc0ZDIx
MjcyMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMzYyLDYgKzM2Miw4IEBAIGlmIChFTkFC
TEVfV0FZTEFORF9UQVJHRVQpCiAgICAgZmluZF9wYWNrYWdlKFdheWxhbmQgUkVRVUlSRUQpCiBl
bmRpZiAoKQogCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BFTlZSIE9OKQorCiBpZiAo
VVNFX0xJQk5PVElGWSkKICAgICBmaW5kX3BhY2thZ2UoTGliTm90aWZ5KQogICAgIGlmIChOT1Qg
TElCTk9USUZZX0ZPVU5EKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCA0ZmRjMDVjMGY5MmI5MjQ3
MjRlZTFiNDIxODYyZDMwMjk5ZDIzYTgzLi5kYTFjZTI1NjhjY2RhYWMyOTdlNTJlYzE5YjgwZjUw
ODY4NWFmYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtMTI2LDYgKzEyNiw4IEBAIFNFVF9B
TkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9USUxFRF9CQUNLSU5HX1NUT1JFIFRSVUUpCiBTRVRfQU5E
X0VYUE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgVFJVRSkKIFNFVF9BTkRf
RVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVFKQog
CitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BFTlZSIE9OKQorCiBzZXQoRk9SV0FSRElO
R19IRUFERVJTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzKQog
c2V0KEZPUldBUkRJTkdfSEVBREVSU19XUEVfRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0v
d3BlKQogc2V0KEZPUldBUkRJTkdfSEVBREVSU19XUEVfRVhURU5TSU9OX0RJUiAke0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJ9L3dwZS13ZWJleHRlbnNpb24pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ExYzQ4ZjEwM2ExYjg0MDhhMGYzMzhkYWJm
YjM2ZTJlYmRhNTFhNC4uNmY3OTBhMDJmNzQxODE2YWY0MjQwNDE2YjNiOGY4ODZiODQzY2EyZiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE3LTA5LTIxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtXZWJWUl0gQWRkIE9wZW5WUiB0byB0aGUgdHJlZSBhbmQgdG8g
dGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzcyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weTogQWRkZWQgb3BlbnZyIHRvIHRo
ZSBsaXN0IG9mIHRoaXJkIHBhcnR5IGxpYnJhcmllcworICAgICAgICB3aXRoIHJlZHVjZWQgc3R5
bGUgY2hlY2tzLgorCiAyMDE3LTA5LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1MgRG5EXSBTdXBwb3J0IERhdGFUcmFuc2Zlci5nZXREYXRh
IGFuZCBEYXRhVHJhbnNmZXIuc2V0RGF0YSB3aGVuIGRyYWdnaW5nIG9yIGRyb3BwaW5nCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggYmFkNTc2Y2QzZjQ3MTVhYTY5
NjgzNWZjYzZhNDhhM2U2ODE1YTNlNS4uYmU1MjAzNWM1YmM1ODg4MWMxMDQ5ZjdlMzUwOWU3YzVl
YWU1MTQ5MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAtMjE0
LDYgKzIxNCw3IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAoW29zLnBhdGguam9p
bignd2Via2l0cHknLCAndGhpcmRwYXJ0eScpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2Un
LCAnVGhpcmRQYXJ0eScsICdBTkdMRScpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAn
VGhpcmRQYXJ0eScsICdicm90bGknKSwKKyAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1Ro
aXJkUGFydHknLCAnb3BlbnZyJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdUaGly
ZFBhcnR5JywgJ3dvZmYyJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdUaGlyZFBh
cnR5JywgJ3hkZ21pbWUnKV0sCiAgICAgIFsiLSIsCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggOTZjN2NlZDg3MGMzY2EyMDk1NTlmNjY2OTIxM2MxYWNlNmQ3NDIyNy4u
ZDk4MTNiODY5ODJlYzI5ZDE2MGExZmJiZTc4Mzc4M2E0ZWE4ZDhkNiAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA5LTIxICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJWUl0g
QWRkIE9wZW5WUiB0byB0aGUgdHJlZSBhbmQgdG8gdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzcyOTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9DTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBXZWJL
aXQueGN3b3Jrc3BhY2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhOgorCiAyMDE3LTA5LTA3ICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQ
RV1bQ01ha2VdIEFkZCAiZGlzdCIgYW5kICJkaXN0Y2hlY2siIHRhcmdldHMKZGlmZiAtLWdpdCBh
L1dlYktpdC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEgYi9XZWJLaXQueGN3
b3Jrc3BhY2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhCmluZGV4IDJlNTk5MGZhYmYyODFhZThk
NGYyNWFhNTM1OTM0MTI0YzExZWYxNmMuLjFhYjU1ODEyMjEzOTMwZDFhODc5YmUwYjg3NTljY2U3
MmYwOTg1ZDIgMTAwNjQ0Ci0tLSBhL1dlYktpdC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtz
cGFjZWRhdGEKKysrIGIvV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNlZGF0
YQpAQCAtMSw2ICsxLDkgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
CiA8V29ya3NwYWNlCiAgICB2ZXJzaW9uID0gIjEuMCI+CisgICA8RmlsZVJlZgorICAgICAgbG9j
YXRpb24gPSAiZ3JvdXA6U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL29wZW52ci54Y29kZXByb2oi
PgorICAgPC9GaWxlUmVmPgogICAgPEZpbGVSZWYKICAgICAgIGxvY2F0aW9uID0gImdyb3VwOlNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qIj4KICAgIDwvRmlsZVJlZj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321548</attachid>
            <date>2017-09-22 08:12:29 -0700</date>
            <delta_ts>2017-09-22 09:14:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20170922171226.patch</filename>
            <type>text/plain</type>
            <size>1268677</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggZWQ1ZmE1ODcz
NGYxYTA3Y2EyY2U3M2FjZGM3NWNlMjY0YzI4YTdjYi4uZTMwMDlkZTQ1NGNhNGVjNmRhMDNjNDFl
ZmZhZTFiZDNiNDVhMzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MSBAQAorMjAx
Ny0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRl
ZC4KKyAgICAgICAgKiBvcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICogb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL1JFQURNRTog
QWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAq
IG9wZW52ci9zcmMvanNvbi9qc29uLmg6IEFkZGVkLgorICAgICAgICAoc3RkOjpzd2FwKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL2pzb25jcHAuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpzb246OmNv
ZGVQb2ludFRvVVRGOCk6CisgICAgICAgIChKc29uOjppc0NvbnRyb2xDaGFyYWN0ZXIpOgorICAg
ICAgICAoSnNvbjo6dWludFRvU3RyaW5nKToKKyAgICAgICAgKEpzb246OmZpeE51bWVyaWNMb2Nh
bGUpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OkZlYXR1cmVzKToKKyAgICAgICAgKEpzb246
OkZlYXR1cmVzOjphbGwpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OnN0cmljdE1vZGUpOgor
ICAgICAgICAoSnNvbjo6Y29udGFpbnNOZXdMaW5lKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6
UmVhZGVyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpyZWFkVmFsdWUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpza2lwQ29tbWVudFRv
a2Vucyk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRUb2tlbik6CisgICAgICAgIChKc29u
OjpSZWFkZXI6OnNraXBTcGFjZXMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjptYXRjaCk6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRDb21tZW50KToKKyAgICAgICAgKEpzb246Om5vcm1h
bGl6ZUVPTCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAo
SnNvbjo6UmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6
OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkTnVtYmVy
KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpS
ZWFkZXI6OnJlYWRPYmplY3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQXJyYXkpOgor
ICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpkZWNvZGVEb3VibGUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVTdHJpbmcp
OgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAg
ICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAg
KEpzb246OlJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWNvdmVy
RnJvbUVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvblNu
aXBwZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVz
c2FnZXMgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9y
cyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChK
c29uOjpSZWFkZXI6Omdvb2QgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyRmVhdHVyZXM6OmFs
bCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Ok91clJlYWRlcik6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZFZhbHVl
KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
Ojpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6bWF0Y2gpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFk
ZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29t
bWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRTdHJp
bmdTaW5nbGVRdW90ZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRPYmplY3QpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQXJyYXkpOgorICAgICAgICAoSnNvbjo6T3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVE
b3VibGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWNv
dmVyRnJvbUVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNv
dmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Omdvb2QgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6T3VyQ2hhclJlYWRlcjo6T3VyQ2hhclJlYWRlcik6CisgICAgICAg
IChKc29uOjpPdXJDaGFyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVy
QnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVp
bGRlcjo6bmV3Q2hhclJlYWRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFJlYWRl
cktleXMpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKToKKyAgICAg
ICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKToKKyAgICAgICAgKEpzb246
OkNoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAgIChKc29uOjpwYXJzZUZy
b21TdHJlYW0pOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I+Pik6CisgICAgICAgIChKc29uOjpW
YWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmRlcmVmIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjppbmNyZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmRl
Y3JlbWVudCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3Rh
bmNlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KToKKyAgICAgICAg
KEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjprZXkgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpt
ZW1iZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChKc29uOjpJblJhbmdlKToKKyAgICAgICAg
KEpzb246OmludGVnZXJUb0RvdWJsZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVTdHJpbmdW
YWx1ZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpkZWNvZGVQcmVmaXhlZFN0cmluZyk6CisgICAgICAgIChKc29uOjpyZWxl
YXNlU3RyaW5nVmFsdWUpOgorICAgICAgICAoSnNvbjo6RXhjZXB0aW9uOjpFeGNlcHRpb24pOgor
ICAgICAgICAoSnNvbjo6dGhyb3cpOgorICAgICAgICAoSnNvbjo6UnVudGltZUVycm9yOjpSdW50
aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6TG9naWNFcnJvcjo6TG9naWNFcnJvcik6CisgICAg
ICAgIChKc29uOjp0aHJvd1J1bnRpbWVFcnJvcik6CisgICAgICAgIChKc29uOjp0aHJvd0xvZ2lj
RXJyb3IpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbyk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbyk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pT
dHJpbmc6On5DWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
OjpDWlN0cmluZzo6aW5kZXggY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5n
OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6bGVuZ3RoIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OlZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVl
Ojp+VmFsdWUpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6c3dhcFBheWxvYWQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnN3YXApOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OnR5cGUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmNvbXBhcmUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPCBjb25zdCk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3I+IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjphc0NTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldFN0cmluZyBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNTdHJpbmcgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmFzQ29uc3RTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc1VJbnQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmFzSW50NjQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RJbnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdFVJbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OmFzRG91YmxlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0Jvb2wgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzQ29udmVydGlibGVUbyBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6ZW1wdHkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6Y2xlYXIpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnJlc2l6ZSk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aW5pdEJhc2ljKToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpn
ZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzVmFsaWRJbmRleCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6ZmluZCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
YXBwZW5kKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OnJlbW92ZUluZGV4KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc01lbWJl
ciBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6SXNJbnRlZ3JhbCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdWxs
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0Jvb2wgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1VJbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzSW50NjQgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0lu
dGVncmFsIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0RvdWJsZSBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdW1lcmljIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjppc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNBcnJheSBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNPYmplY3QgY29uc3QpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnNldENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Omhhc0NvbW1lbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldENvbW1lbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OnNldE9mZnNldFN0YXJ0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpz
ZXRPZmZzZXRMaW1pdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldExpbWl0IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjp0b1N0eWxlZFN0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpW
YWx1ZTo6YmVnaW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6YmVnaW4pOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCk6
CisgICAgICAgIChKc29uOjpQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCk6CisgICAgICAgIChK
c29uOjpQYXRoOjpQYXRoKToKKyAgICAgICAgKEpzb246OlBhdGg6Om1ha2VQYXRoKToKKyAgICAg
ICAgKEpzb246OlBhdGg6OmFkZFBhdGhJbkFyZyk6CisgICAgICAgIChKc29uOjpQYXRoOjppbnZh
bGlkUGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjpyZXNvbHZlIGNvbnN0KToKKyAgICAgICAg
KEpzb246OlBhdGg6Om1ha2UgY29uc3QpOgorICAgICAgICAoSnNvbjo6Y29udGFpbnNDb250cm9s
Q2hhcmFjdGVyKToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENoYXJhY3RlcjApOgor
ICAgICAgICAoSnNvbjo6dmFsdWVUb1N0cmluZyk6CisgICAgICAgIChKc29uOjp2YWx1ZVRvUXVv
dGVkU3RyaW5nKToKKyAgICAgICAgKEpzb246OnN0cm5wYnJrKToKKyAgICAgICAgKEpzb246OnZh
bHVlVG9RdW90ZWRTdHJpbmdOKToKKyAgICAgICAgKEpzb246OldyaXRlcjo6fldyaXRlcik6Cisg
ICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpGYXN0V3JpdGVyKToKKyAgICAgICAgKEpzb246OkZh
c3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KToKKyAgICAgICAgKEpzb246OkZhc3RX
cml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKToKKyAgICAgICAgKEpzb246OkZhc3RXcml0ZXI6
Om9taXRFbmRpbmdMaW5lRmVlZCk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZSk6
CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRl
cjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVZhbHVlKToKKyAg
ICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpz
b246OlN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjpwdXNoVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUlu
ZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudCk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHls
ZWRXcml0ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVD
b21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OlN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6
CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAg
ICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp1
bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFt
V3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OkJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNv
bjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAg
IChKc29uOjpTdHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHJl
YW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyOjpG
YWN0b3J5Ojp+RmFjdG9yeSk6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpT
dHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxk
ZXI6Om5ld1N0cmVhbVdyaXRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFdyaXRl
cktleXMpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUgY29u
c3QpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6Cisg
ICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAg
IChKc29uOjp3cml0ZVN0cmluZyk6CisgICAgICAgIChKc29uOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBvcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgICh2
cjo6VlJfR2V0SW5pdFRva2VuKToKKyAgICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwyKToKKyAg
ICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duSW50
ZXJuYWwpOgorICAgICAgICAodnI6OlZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCk6CisgICAgICAg
ICh2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSk6CisgICAgICAgICh2cjo6VlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQpOgorICAgICAgICAodnI6OlZSX0lzSG1kUHJlc2VudCk6CisgICAgICAg
ICh2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKToKKyAgICAgICAgKHZyOjpWUl9SdW50aW1lUGF0
aCk6CisgICAgICAgICh2cjo6VlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCk6CisgICAgICAgICh2
cjo6VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbik6CisgICAgICAgICh2cjo6
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5UmVj
dXJzaXZlKToKKyAgICAgICAgKEJDcmVhdGVEaXJlY3RvcnkpOgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKToKKyAgICAgICAgKFNldEVudmlyb25tZW50VmFyaWFibGUpOgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IEFkZGVk
LgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHA6IEFk
ZGVkLgorICAgICAgICAoR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKEdl
dElERm9yVlJJbml0RXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJy
b3JzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0
b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgp
OgorICAgICAgICAoUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKFBhdGhfU2V0
V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRmlsZW5hbWUpOgorICAgICAg
ICAoUGF0aF9TdHJpcERpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRXh0ZW5zaW9uKToK
KyAgICAgICAgKFBhdGhfR2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFBhdGhfSXNBYnNvbHV0ZSk6
CisgICAgICAgIChQYXRoX01ha2VBYnNvbHV0ZSk6CisgICAgICAgIChQYXRoX0ZpeFNsYXNoZXMp
OgorICAgICAgICAoUGF0aF9HZXRTbGFzaCk6CisgICAgICAgIChQYXRoX0pvaW4pOgorICAgICAg
ICAoUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKToKKyAgICAgICAgKFBhdGhfQ29tcGFjdCk6Cisg
ICAgICAgIChQYXRoX0dldFRoaXNNb2R1bGVQYXRoKToKKyAgICAgICAgKFBhdGhfSXNEaXJlY3Rv
cnkpOgorICAgICAgICAoUGF0aF9Jc0FwcEJ1bmRsZSk6CisgICAgICAgIChQYXRoX0V4aXN0cyk6
CisgICAgICAgIChQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAg
IChQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAgIChQYXRo
X1JlYWRCaW5hcnlGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVCaW5hcnlGaWxlKToKKyAgICAg
ICAgKFBhdGhfUmVhZFRleHRGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRG
aWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKToKKyAgICAg
ICAgKFBhdGhfRmlsZVBhdGhUb1VybCk6CisgICAgICAgIChQYXRoX1VybFRvRmlsZVBhdGgpOgor
ICAgICAgICAoR2V0VXNlckRvY3VtZW50c1BhdGgpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU2hhcmVk
TGliX0xvYWQpOgorICAgICAgICAoU2hhcmVkTGliX0dldEZ1bmN0aW9uKToKKyAgICAgICAgKFNo
YXJlZExpYl9VbmxvYWQpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGli
dG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3Ry
dG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChTdHJpbmdIYXNQcmVmaXgpOgorICAg
ICAgICAoU3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAgIChTdHJpbmdIYXNT
dWZmaXgpOgorICAgICAgICAoU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAg
IChVVEYxNnRvOCk6CisgICAgICAgIChVVEY4dG8xNik6CisgICAgICAgIChzdHJjcHlfc2FmZSk6
CisgICAgICAgIChTdHJpbmdUb1VwcGVyKToKKyAgICAgICAgKFN0cmluZ1RvTG93ZXIpOgorICAg
ICAgICAoUmV0dXJuU3RkU3RyaW5nKToKKyAgICAgICAgKEJ1ZmZlclRvU3RkU3RyaW5nKToKKyAg
ICAgICAgKFVpbnQ2NFRvU3RyaW5nKToKKyAgICAgICAgKFN0cmluZ1RvVWludDY0KToKKyAgICAg
ICAgKGNJbnRUb0hleERpZ2l0KToKKyAgICAgICAgKGlIZXhDaGFyVG9JbnQpOgorICAgICAgICAo
Vl9VUkxFbmNvZGVJbnRlcm5hbCk6CisgICAgICAgIChWX1VSTERlY29kZUludGVybmFsKToKKyAg
ICAgICAgKFZfVVJMRW5jb2RlKToKKyAgICAgICAgKFZfVVJMRGVjb2RlKToKKyAgICAgICAgKFZf
U3RyaXBFeHRlbnNpb24pOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmg6IEFkZGVkLgorICAgICAgICAoc3RyaWNtcCk6CisgICAgICAgIChzdHJuaWNtcCk6
CisgICAgICAgICh3Y3NuY3B5X3MpOgorICAgICAgICAoc3RybmNweV9zKToKKyAgICAgICAgKHN0
cnRvdWxsKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1
YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0QXBwU2V0dGluZ3NQYXRoKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMpOgorICAgICAg
ICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCk6CisgICAgICAg
IChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKToKKyAg
ICAgICAgKFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKToKKyAgICAgICAgKFN0cmluZ0xpc3RUb0pz
b24pOgorICAgICAgICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5nKToKKyAg
ICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUgY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGggY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQ
YXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBhdGhS
ZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9u
L3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBBZGRlZC4KKwogMjAxNy0wOC0wOCAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBQcm9w
ZXJseSB0ZXN0IGlmIGNvbXBpbGVyIHN1cHBvcnRzIGNvbXBpbGVyIGZsYWdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk1NWNi
MDBlYzM0ZjFhN2IxZTI0N2Q3YWM2M2QxN2RmZTFmMGNjMzMuLjhmMmQzMjQ3MWZlNjI5MzQxY2Vm
ZTBkM2FiMmEwYjZjNGFlMWFmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDktMjIgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZS
XSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IERlZmlu
ZSBVU0VfT1BFTlZSIGZvciBHdGssIE1hYyBhbmQgV1BFLgorCiAyMDE3LTA5LTEyICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtERkddIE9wdGltaXpl
IFdlYWtNYXA6OmdldCBieSBhZGRpbmcgaW50cmluc2ljIGFuZCBmaXh1cApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDk0ZGUwNTZjNTcwNTMxYTI4NWJmNGNlZmRjYTc2OWNiMWZmMzQyNWUuLmRkNmYyNTJlMDE4NGJi
YjY4MTg4NDk4YTU2OWQ3NDEzZTljOWM0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxNy0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYnVp
bGQgZGVwZW5kZW5jaWVzIHdpdGggdGhlIE9wZW5WUiBsaWJyYXJ5LgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE3LTA5LTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtXZWJWUl0gQWRkIElETHMgYW5kIHN0dWJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKaW5kZXggMzFmY2Q4OWZj
MGIwN2NiNTZhOGNmMzgzZmI3N2UyNGMyMGI1Y2NjOS4uOGQ5MWU2ZmI2YmEyNjU3NzMyNjBkODZj
OWYwZWNjMDA0YjgwMTZmMyAxMDA2NDQKLS0tIGEvU291cmNlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIsNiArMjIsMTAgQEAgaWYgKFVTRV9XT0ZGMikK
ICAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvd29mZjIpCiBlbmRpZiAoKQogCitpZiAo
VVNFX09QRU5WUikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvb3BlbnZyKQorZW5k
aWYgKCkKKwogaWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0
eS94ZGdtaW1lKQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMTNhN2Y5MGNmODRjMjFkYTg0ZDBiYTVmYzI4ZjE0ZDY4ZGEyY2ZkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0NNYWtlTGlzdHMudHh0
CkBAIC0wLDAgKzEsNTggQEAKKyMgU2V0IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gb2Yg
Q01ha2UgZm9yIHRoaXMgcHJvamVjdC4KK2NtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAy
LjgpCisKKyMgU2V0dXAgc29tZSBvcHRpb25zLgorb3B0aW9uKEJVSUxEX1NIQVJFRCAiQnVpbGRz
IHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYpCitvcHRpb24oVVNFX0xJQkNYWCAi
VXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9OKQorb3B0aW9uKFVTRV9DVVNUT01f
TElCQ1hYICJVc2VzIGEgY3VzdG9tIGxpYmMrKyIgT0ZGKQorCithZGRfZGVmaW5pdGlvbnMoIC1E
VlJfQVBJX1BVQkxJQyApCisKKyMgQ2hlY2sgaWYgMzIgb3IgNjQgYml0IHN5c3RlbS4KK3NldChT
SVpFT0ZfVk9JRFAgJHtDTUFLRV9TSVpFT0ZfVk9JRF9QfSkKK2lmKENNQUtFX1NJWkVPRl9WT0lE
X1AgRVFVQUwgOCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICI2NCIpCitlbHNlKCkKKyAgc2V0KFBS
T0NFU1NPUl9BUkNIICIzMiIpCitlbmRpZigpCisKKyMgR2V0IHBsYXRmb3JtLgoraWYoV0lOMzIp
CisgICAgICAgc2V0KFBMQVRGT1JNX05BTUUgIndpbiIpCitlbHNlaWYoVU5JWCBBTkQgTk9UIEFQ
UExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKkxpbnV4IikKKyAgICBzZXQo
UExBVEZPUk1fTkFNRSAibGludXgiKQorICAgIGFkZF9kZWZpbml0aW9ucygtRExJTlVYIC1EUE9T
SVgpCisgICAgaWYoUFJPQ0VTU09SX0FSQ0ggTUFUQ0hFUyAiNjQiKQorICAgICAgICBhZGRfZGVm
aW5pdGlvbnMoLURMSU5VWDY0KQorICAgIGVuZGlmKCkKKyAgZW5kaWYoKQorZWxzZWlmKEFQUExF
KQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKkRhcndpbi4qIiBPUiBDTUFLRV9T
WVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioiKQorICAgIHNldChQTEFURk9STV9OQU1FICJv
c3giKQorICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAtRFBPU0lYKQorICBlbmRpZigpCitlbmRp
ZigpCisKKyMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KK2lmKENNQUtFX0NPTVBJTEVSX0lTX0dO
VUNDIE9SIENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xhbmciKQorICAgICAgICMgRW5h
YmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hvdWxkbid0IGJlIHZpc2libGUKKyAg
ICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLXN0ZD1jKysxMSAt
ZlBJQyAtZnZpc2liaWxpdHk9aGlkZGVuIikKKworICAgICAgICMgU2V0IGN1c3RvbSBsaWJjKysg
dXNhZ2UgaGVyZQorICAgICAgIGlmKENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xhbmci
IEFORCBVU0VfTElCQ1hYKQorICAgICAgICAgICAgICBpZihVU0VfQ1VTVE9NX0xJQkNYWCkKKyAg
ICAgICAgICAgICAgICAgICAgIGlmKEJVSUxEX1NIQVJFRCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElO
S0VSX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAgICAgICAgICAgICAgICBlbmRpZigp
CisgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9G
TEFHU30gLW5vc3RkaW5jKysiKQorICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9kaXJlY3Rv
cmllcyggJHtMSUJDWFhfSU5DTFVERX0gJHtMSUJDWFhfQUJJX0lOQ0xVREV9KQorICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIlVzaW5nIGN1c3RvbSBsaWJjKysiKQorICAgICAg
ICAgICAgICBlbHNlKCkKKyAgICAgICAgICAgICAgICAgICAgIHNldChDTUFLRV9DWFhfRkxBR1Mg
IiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgbGliYysrIikKKyAgICAgICAgICAgICAgZW5kaWYoKQor
ICAgICAgIGVuZGlmKCkKK2VuZGlmKCkKKworYWRkX3N1YmRpcmVjdG9yeShzcmMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRSBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlODMzMzdkN2ZjYjcyNmQxNGNjMTBmN2RkMmZk
YTY3OTlkOGExMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
TElDRU5TRQpAQCAtMCwwICsxLDI3IEBACitDb3B5cmlnaHQgKGMpIDIwMTUsIFZhbHZlIENvcnBv
cmF0aW9uCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAor
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKK2xpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCit0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vcgorb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKworMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3Ig
dGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKK21heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CitzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQK
K0FOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECitXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCitESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CitMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KK0FOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTc2ZDYyMmY2YWQzZDQx
ODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL1JFQURNRS5tZApAQCAtMCwwICsxLDEzIEBACitPcGVuVlIgU0RLCistLS0K
KworT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0IGFsbG93cyBhY2Nlc3MgdG8gVlIg
aGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKK3ZlbmRvcnMgd2l0aG91dCByZXF1aXJpbmcgdGhhdCBh
cHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ugb2YgdGhlIAoraGFyZHdhcmUgdGhl
eSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMgYW4gU0RLIHRoYXQgY29udGFpbnMg
dGhlIEFQSSAKK2FuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBpcyB1bmRlciBTdGVhbVZSIGluIFRv
b2xzIG9uIFN0ZWFtLiAKKworIyMjIERvY3VtZW50YXRpb24KKworRG9jdW1lbnRhdGlvbiBmb3Ig
dGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIgV2lraV0oaHR0cHM6Ly9naXRodWIu
Y29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURvY3VtZW50YXRpb24pCisKK01vcmUg
aW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNhbiBiZSBmb3VuZCBvbiBodHRwOi8v
c3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUu
d2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2ZlZTRjMWRjNDg5NTdkOGMxMTYyMDgzYWI0OTNlNmMxNWQwOGVkNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUud2Via2l0CkBAIC0wLDAgKzEs
MjIgQEAKK1RoaXMgaXMgdGhlIE9wZW5WUiBsaWJyYXJ5IGZyb20KK2h0dHBzOi8vZ2l0aHViLmNv
bS9WYWx2ZVNvZnR3YXJlL29wZW52cgorCitVcHN0cmVhbSBjb2RlIGNhbiBiZSB2aWV3ZWQgYXQK
KyBodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIvdHJlZS9tYXN0ZXIvCisK
K2FuZCBjbG9uZWQgYnkKKyBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdh
cmUvb3BlbnZyLmdpdAorCitDdXJyZW50IHZlcnNpb246IFtjb21taXQgZWJkZWExNTJmOGFhYzc3
ZTlhNmRiMjk2ODJiODFkNzYyMTU5ZGY3ZV0KKword2hpY2ggY29ycmVzcG9uZHMgdG8gMS4wLjEw
IHJlbGVhc2UuCisKK1dlYktpdCBjaGFuZ2VzOgorKiBwYXRjaGVzL2NtYWtlLWJ1aWxkLnBhdGNo
OiBzY3JpcHQgdXNlZCB0byBhbGxvdyBvcGVudnIgQ01ha2UgYnVpbGQgdG8gYmUKK2ludGVncmF0
ZWQgaW50byBXZWJLaXQgYnVpbGQKKyogUmVtb3ZlZCBiaW4vIGRpcmVjdG9yeS4gTm90IG5lZWRl
ZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJpZXMKKyogUmVtb3ZlZCBsaWIvIGRp
cmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJpZXMK
KyogUmVtb3ZlZCBjb250cm9sbGVyX2NhbGxvdXRzLyBkaXJlY3RvcnkuIFVubmVlZGVkIGRvY3MK
KyogUmVtb3ZlZCBzYW1wbGVzLyBkaXJlY3RvcnkuCisqIEFkZGVkIG9wZW52ci54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qLiBNYW51YWxseSBnZW5lcmF0ZWQgZm9yIFhjb2RlIGJ1aWxkLgorKiBS
ZXBsYWNlZCB0YWJzIGJ5IHdoaXRlc3BhY2VzIHRvIG1ha2UgY2hlY2std2Via2l0LXN0eWxlIGhh
cHB5LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvVG9vbGNoYWluLWNsYW5nLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNmIwYWMwMTc1YTZlMzRi
NTM5MDJmNGY1ZjRhMjI4OWMxOTcxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvVG9vbGNoYWluLWNsYW5nLmNtYWtlCkBAIC0wLDAgKzEsOSBAQAorc2V0KENN
QUtFX1NZU1RFTV9OQU1FIExpbnV4KQorCitzZXQoQ01BS0VfQ19DT01QSUxFUiBjbGFuZykKK3Nl
dChDTUFLRV9DWFhfQ09NUElMRVIgY2xhbmcrKykKKworc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRI
X01PREVfUFJPR1JBTSBORVZFUikKK3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0xJQlJB
UlkgT05MWSkKK3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0lOQ0xVREUgT05MWSkKK3Nl
dChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX1BBQ0tBR0UgT05MWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc2ZTQ5YTZhYzUzMTA4MGM1
ZjQzMDNlNWMxNWNmOTNlMTFmYTJkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oCkBAIC0wLDAgKzEsMzc3NyBAQAorI3ByYWdtYSBv
bmNlCisKKy8vIG9wZW52ci5oCisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRp
b24gPT09PT09PT09PT09Ly8KKy8vIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmaWxlLiBEbyBub3Qg
bW9kaWZ5IHRoaXMgZmlsZSBkaXJlY3RseS4KKworI2lmbmRlZiBfT1BFTlZSX0FQSQorI2RlZmlu
ZSBfT1BFTlZSX0FQSQorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKworCisvLyB2cnR5cGVzLmgK
KyNpZm5kZWYgX0lOQ0xVREVfVlJUWVBFU19ICisjZGVmaW5lIF9JTkNMVURFX1ZSVFlQRVNfSAor
CisvLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyB0byBhdm9pZCByZXF1aXJpbmcgdnVsa2FuLmgKK3N0
cnVjdCBWa0RldmljZV9UOworc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVDsKK3N0cnVjdCBWa0lu
c3RhbmNlX1Q7CitzdHJ1Y3QgVmtRdWV1ZV9UOworCisvLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyB0
byBhdm9pZCByZXF1aXJpbmcgZDNkMTIuaAorc3RydWN0IElEM0QxMlJlc291cmNlOworc3RydWN0
IElEM0QxMkNvbW1hbmRRdWV1ZTsKKworbmFtZXNwYWNlIHZyCit7CisjcHJhZ21hIHBhY2soIHB1
c2gsIDggKQorCit0eXBlZGVmIHZvaWQqIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90OwordHlwZWRl
ZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90OworCisvLyByaWdo
dC1oYW5kZWQgc3lzdGVtCisvLyAreSBpcyB1cAorLy8gK3ggaXMgdG8gdGhlIHJpZ2h0CisvLyAt
eiBpcyBnb2luZyBhd2F5IGZyb20geW91CisvLyBEaXN0YW5jZSB1bml0IGlzICBtZXRlcnMKK3N0
cnVjdCBIbWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsKK307CisKK3N0cnVj
dCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQgbVs0XVs0XTsKK307CisKK3N0cnVjdCBI
bWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3Rv
cjRfdAoreworICAgICAgIGZsb2F0IHZbNF07Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yM2RfdAor
eworICAgICAgIGRvdWJsZSB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAg
ICAgIGZsb2F0IHZbMl07Cit9OworCitzdHJ1Y3QgSG1kUXVhdGVybmlvbl90Cit7CisgICAgICAg
ZG91YmxlIHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgSG1kQ29sb3JfdAoreworICAgICAgIGZs
b2F0IHIsIGcsIGIsIGE7Cit9OworCitzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgSG1kVmVj
dG9yM190IHZDb3JuZXJzWyA0IF07Cit9OworCitzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAg
IEhtZFZlY3RvcjJfdCB2VG9wTGVmdDsKKyAgICAgICBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0
OworfTsKKworLyoqIFVzZWQgdG8gcmV0dXJuIHRoZSBwb3N0LWRpc3RvcnRpb24gVVZzIGZvciBl
YWNoIGNvbG9yIGNoYW5uZWwuIAorKiBVVnMgcmFuZ2UgZnJvbSAwIHRvIDEgd2l0aCAwLDAgaW4g
dGhlIHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSAKKyogc291cmNlIHJlbmRlciB0YXJnZXQuIFRo
ZSAwLDAgdG8gMSwxIHJhbmdlIGNvdmVycyBhIHNpbmdsZSBleWUuICovCitzdHJ1Y3QgRGlzdG9y
dGlvbkNvb3JkaW5hdGVzX3QKK3sKKyAgICAgICBmbG9hdCByZlJlZFsyXTsKKyAgICAgICBmbG9h
dCByZkdyZWVuWzJdOworICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsKK307CisKK2VudW0gRVZSRXll
Cit7CisgICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEKK307CisKK2Vu
dW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WCA9IDAsIC8vIEhh
bmRsZSBpcyBhbiBJRDNEMTFUZXh0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfT3BlbkdMID0gMSwg
IC8vIEhhbmRsZSBpcyBhbiBPcGVuR0wgdGV4dHVyZSBuYW1lIG9yIGFuIE9wZW5HTCByZW5kZXIg
YnVmZmVyIG5hbWUsIGRlcGVuZGluZyBvbiBzdWJtaXQgZmxhZ3MKKyAgICAgICBUZXh0dXJlVHlw
ZV9WdWxrYW4gPSAyLCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgVlJWdWxrYW5UZXh0dXJl
RGF0YV90IHN0cnVjdHVyZQorICAgICAgIFRleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsIC8vIEhh
bmRsZSBpcyBhIG1hY09TIGNyb3NzLXByb2Nlc3Mtc2hhcmFibGUgSU9TdXJmYWNlUmVmCisgICAg
ICAgVGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0byBh
IEQzRDEyVGV4dHVyZURhdGFfdCBzdHJ1Y3R1cmUKK307CisKK2VudW0gRUNvbG9yU3BhY2UKK3sK
KyAgICAgICBDb2xvclNwYWNlX0F1dG8gPSAwLCAgICAgICAvLyBBc3N1bWVzICdnYW1tYScgZm9y
IDgtYml0IHBlciBjb21wb25lbnQgZm9ybWF0cywgb3RoZXJ3aXNlICdsaW5lYXInLiAgVGhpcyBt
aXJyb3JzIHRoZSBEWEdJIGZvcm1hdHMgd2hpY2ggaGF2ZSBfU1JHQiB2YXJpYW50cy4KKyAgICAg
ICBDb2xvclNwYWNlX0dhbW1hID0gMSwgICAgICAgLy8gVGV4dHVyZSBkYXRhIGNhbiBiZSBkaXNw
bGF5ZWQgZGlyZWN0bHkgb24gdGhlIGRpc3BsYXkgd2l0aG91dCBhbnkgY29udmVyc2lvbiAoYS5r
LmEuIGRpc3BsYXkgbmF0aXZlIGZvcm1hdCkuCisgICAgICAgQ29sb3JTcGFjZV9MaW5lYXIgPSAy
LCAgICAgICAvLyBTYW1lIGFzIGdhbW1hIGJ1dCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBsaW5l
YXIgcmVwcmVzZW50YXRpb24gdXNpbmcgRFhHSSdzIHNSR0IgY29udmVyc2lvbiBhbGdvcml0aG0u
Cit9OworCitzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgdm9pZCogaGFuZGxlOyAvLyBTZWUg
RVRleHR1cmVUeXBlIGRlZmluaXRpb24gYWJvdmUKKyAgICAgICBFVGV4dHVyZVR5cGUgZVR5cGU7
CisgICAgICAgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9OworCisvLyBIYW5kbGUgdG8gYSBz
aGFyZWQgdGV4dHVyZSAoSEFORExFIG9uIFdpbmRvd3Mgb2J0YWluZWQgdXNpbmcgT3BlblNoYXJl
ZFJlc291cmNlKS4KK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRsZV90OworI2Rl
ZmluZSBJTlZBTElEX1NIQVJFRF9URVhUVVJFX0hBTkRMRSAgICAgICAoKHZyOjpTaGFyZWRUZXh0
dXJlSGFuZGxlX3QpMCkKKworZW51bSBFVHJhY2tpbmdSZXN1bHQKK3sKKyAgICAgICBUcmFja2lu
Z1Jlc3VsdF9VbmluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgICAg
VHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyAgICAgICA9IDEwMCwKKyAgICAg
ICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlICAgICAgID0gMTAxLAorCisg
ICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgICAgICAg
ICAgICAgID0gMjAxLAorfTsKKwordHlwZWRlZiB1aW50MzJfdCBEcml2ZXJJZF90Oworc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfbkRyaXZlck5vbmUgPSAweEZGRkZGRkZGOworCitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191bk1heERyaXZlckRlYnVnUmVzcG9uc2VTaXplID0gMzI3Njg7CisKKy8q
KiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0byBBUEkgY2FsbHMgKi8KK3R5cGVkZWYgdWludDMy
X3QgVHJhY2tlZERldmljZUluZGV4X3Q7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNr
ZWREZXZpY2VJbmRleF9IbWQgPSAwOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhUcmFj
a2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERl
dmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZFOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5U
cmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gMHhGRkZGRkZGRjsKKworLyoqIERlc2NyaWJlcyB3
aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5nIHRyYWNrZWQgYXQgYSBnaXZlbiBJRCAqLworZW51
bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0ludmFs
aWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgSUQgd2FzIG5vdCB2YWxp
ZC4KKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0gMSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91bnRlZCBEaXNwbGF5cworICAgICAgIFRyYWNrZWRE
ZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2Vk
IGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2VyID0g
MywgICAgICAgICAgICAgIC8vIEdlbmVyaWMgdHJhY2tlcnMsIHNpbWlsYXIgdG8gY29udHJvbGxl
cnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LCAgICAg
ICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlvbnMgdGhhdCBzZXJ2ZSBhcyB0cmFja2luZyByZWZl
cmVuY2UgcG9pbnRzCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0Rpc3BsYXlSZWRpcmVjdCA9
IDUsICAgICAgICAgICAgICAvLyBBY2Nlc3NvcmllcyB0aGF0IGFyZW4ndCBuZWNlc3NhcmlseSB0
cmFja2VkIHRoZW1zZWx2ZXMsIGJ1dCBtYXkgcmVkaXJlY3QgdmlkZW8gb3V0cHV0IGZyb20gb3Ro
ZXIgdHJhY2tlZCBkZXZpY2VzCit9OworCisKKy8qKiBEZXNjcmliZXMgd2hhdCBzcGVjaWZpYyBy
b2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2aWNlICovCitlbnVtIEVUcmFja2VkQ29u
dHJvbGxlclJvbGUKK3sKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxpZCA9IDAs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIHZhbHVlIGZvciBj
b250cm9sbGVyIHR5cGUKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQgPSAx
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNz
b2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJvbGVf
UmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBkZXZp
Y2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5kCit9OworCisKKy8qKiBkZXNjcmliZXMg
YSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVjdCAqLworc3RydWN0IFRyYWNrZWREZXZp
Y2VQb3NlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tp
bmc7CisgICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFjZSBpbiBtL3MKKyAgICAgICBIbWRWZWN0
b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAgICAgIC8vIGFuZ3VsYXIgdmVsb2NpdHkg
aW4gcmFkaWFucy9zICg/KQorICAgICAgIEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7
CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisKKyAgICAgICAvLyBUaGlzIGluZGljYXRlcyB0
aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBmb3IgdGhpcyBzcG90IGluIHRoZSBwb3Nl
IGFycmF5LgorICAgICAgIC8vIEl0IGNvdWxkIGdvIGZyb20gdHJ1ZSB0byBmYWxzZSBpZiB0aGUg
dXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCisgICAgICAgYm9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7
Cit9OworCisvKiogSWRlbnRpZmllcyB3aGljaCBzdHlsZSBvZiB0cmFja2luZyBvcmlnaW4gdGhl
IGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQorKiBmb3IgdGhlIHBvc2VzIGl0IGlzIHJlcXVlc3Rp
bmcgKi8KK2VudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBUcmFja2luZ1Vu
aXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCByZWxh
dGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQorICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFu
ZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2Fm
ZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgorICAgICAgIFRyYWNraW5nVW5pdmVyc2VS
YXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgaW4gdGhl
IGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlIGRyaXZlci4gIEl0IGhhcyBZIHVwIGFu
ZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBzYW1lIGRyaXZlci4gWW91IHVzdWFsbHkg
ZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307CisKKy8vIFJlZmVycyB0byBhIHNpbmdsZSBjb250YWlu
ZXIgb2YgcHJvcGVydGllcwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKKworc3RhdGljIGNvbnN0
IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bEludmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9
IDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkludmFsaWRQcm9wZXJ0eVRh
ZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0YWdzIHRvIHNldC9nZXQgY29tbW9uIHR5cGVzIGFzIHN0
cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkZsb2F0
UHJvcGVydHlUYWcgPSAxOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5JbnQz
MlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuVWlu
dDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5C
b29sUHJvcGVydHlUYWcgPSA0Oworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5T
dHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBr
X3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7CitzdGF0aWMgY29uc3QgUHJv
cGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGljIGNv
bnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKKwor
c3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcg
PSAzMDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5PcGVuVlJJbnRlcm5h
bFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBr
X3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKKworCisvKiogRWFjaCBlbnRy
eSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3BlcnR5IHRoYXQgY2FuIGJlIHJldHJpZXZl
ZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2aWNlLiBNYW55IGZpZWxkcyBhcmUgb25seSB2YWxpZCBm
b3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCitlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkKK3sKKyAgICAgICBQcm9wX0ludmFsaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIC8vIGdlbmVyYWwgcHJvcGVy
dGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xhc3NlcworICAgICAgIFByb3BfVHJhY2tp
bmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDAsCisg
ICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJpYWxOdW1iZXJfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDIsCisgICAgICAgUHJvcF9SZW5k
ZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0cmlu
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDUsCisgICAgICAgUHJvcF9UcmFja2lu
Z0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDEwMDYsCisgICAg
ICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJp
bmcgICAgICAgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAorICAgICAgIFByb3BfRGV2aWNlSXNXaXJl
bGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTAsCisgICAg
ICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAwIGlzIGVtcHR5LCAxIGlzIGZ1bGwKKyAg
ICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQgICAgICAgICAgICAgID0g
MTAxMywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sICAgICAgICAg
ICAgICAgICAgICAgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jv
b2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE1LAorICAgICAgIFByb3BfRmlybXdh
cmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAgICAgICAgPSAxMDE2LAorICAgICAgIFBy
b3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDE3LAorICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDE4LAorICAgICAgIFByb3BfRlBHQVZlcnNpb25fVWludDY0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE5LAorICAgICAg
IFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEsCisgICAgICAgUHJvcF9Eb25nbGVWZXJz
aW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIyLAorICAg
ICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCAgICAgICA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9C
b29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAorICAgICAgIFByb3BfRGV2aWNlUHJvdmlk
ZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAgID0gMTAyNiwKKyAgICAgICBQcm9wX0Rl
dmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyAgICAg
ICAgICAgICAgPSAxMDI4LAorICAgICAgIFByb3BfRGV2aWNlQ2xhc3NfSW50MzIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjksCisgICAgICAgUHJvcF9IYXND
YW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyAgICAgICAgICAgICAg
ICAgICA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jv
b2wgICAgICA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRf
Qm9vbCAgICAgICAgICAgICAgPSAxMDMzLAorICAgICAgIFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2
NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDM0LAorICAgICAgIFByb3Bf
UmVzb3VyY2VSb290X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDM1LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERl
dmljZUNsYXNzX0hNRAorICAgICAgIFByb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAwLAorICAgICAgIFByb3BfU2Vjb25kc0Zyb21W
c3luY1RvUGhvdG9uc19GbG9hdCAgICAgICAgICAgICAgPSAyMDAxLAorICAgICAgIFByb3BfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9hdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDAzLAorICAgICAgIFByb3BfQ3VycmVudFVuaXZlcnNlSWRfVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNCwgCisgICAgICAgUHJvcF9QcmV2
aW91c1VuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNSwg
CisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAg
ICAgICAgID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDcsCisgICAgICAgUHJvcF9EaXNwbGF5
TUNUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDgsCisg
ICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTAsCisgICAgICAgUHJvcF9FZGlkVmVu
ZG9ySURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nICAgICAgICAgICAgICA9
IDIwMTIsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVJpZ2h0X1N0cmluZyAgICAgICAgICAg
ICA9IDIwMTMsCisgICAgICAgUHJvcF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMjAxNCwKKyAgICAgICBQcm9wX0VkaWRQcm9kdWN0SURfSW50
MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNSwKKyAgICAgICBQcm9w
X0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAgICAgICAgID0gMjAx
NiwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAxNywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE4LAorICAgICAgIFByb3BfRGlz
cGxheUdDU2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAx
OSwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAyMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIxLAorICAgICAgIFByb3BfTGVuc0Nl
bnRlckxlZnRVX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjIs
CisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAyMywKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyNCwKKyAgICAgICBQcm9wX0xl
bnNDZW50ZXJSaWdodFZfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCAgICAgICAg
ICAgICAgICAgICAgID0gMjAyNiwKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9V
aW50NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMjcsCisgICAgICAgUHJvcF9DYW1lcmFGaXJt
d2FyZURlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSAyMDI4LAorICAgICAgIFByb3Bf
RGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ICAgICAgICAg
ICAgICA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJzaW9uX1VpbnQ2NCAg
ICAgICAgICAgICAgICAgICAgID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMiwKKyAgICAgICBQcm9wX0NhbWVy
YUNvbXBhdGliaWxpdHlNb2RlX0ludDMyICAgICAgICAgICAgICAgICAgICAgPSAyMDMzLAorICAg
ICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAy
MDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zs
b2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlBbGxv
d05pZ2h0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNywKKyAgICAg
ICBQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDM4LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDM5LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VO
dW1DaGFubmVsc19JbnQzMiAgICAgICAgICAgICAgPSAyMDQwLAorICAgICAgIFByb3BfRGlzcGxh
eU1DSW1hZ2VEYXRhX0JpbmFyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDEsCisg
ICAgICAgUHJvcF9TZWNvbmRzRnJvbVBob3RvbnNUb1ZibGFua19GbG9hdCAgICAgICAgICAgICAg
PSAyMDQyLAorICAgICAgIFByb3BfRHJpdmVyRGlyZWN0TW9kZVNlbmRzVnN5bmNFdmVudHNfQm9v
bCAgICAgICA9IDIwNDMsCisgICAgICAgUHJvcF9EaXNwbGF5RGVidWdNb2RlX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0NCwKKyAgICAgICBQcm9wX0dyYXBoaWNz
QWRhcHRlckx1aWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0NSwKKyAg
ICAgICBQcm9wX0RyaXZlclByb3ZpZGVkQ2hhcGVyb25lUGF0aF9TdHJpbmcgICAgICAgICAgICAg
ID0gMjA0OCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNr
ZWREZXZpY2VDbGFzc19Db250cm9sbGVyCisgICAgICAgUHJvcF9BdHRhY2hlZERldmljZUlkX1N0
cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDAsCisgICAgICAgUHJvcF9TdXBw
b3J0ZWRCdXR0b25zX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDEsCisg
ICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMDIsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczFUeXBlX0ludDMyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAzLCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlw
ZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMyVHlwZV9JbnQzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNCwgLy8gUmV0dXJuIHZh
bHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzM1R5
cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDUs
IC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAg
IFByb3BfQXhpczRUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDA2LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhp
c1R5cGUKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwMDcsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVUcmFja2Vk
Q29udHJvbGxlclJvbGUKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRv
IFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZQorICAgICAgIFByb3BfRmllbGRP
ZlZpZXdMZWZ0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAwMCwKKyAgICAg
ICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
PSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgPSA0MDAyLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdCb3R0b21EZWdyZWVz
X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAzLAorICAgICAgIFByb3BfVHJhY2tpbmdS
YW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNCwKKyAgICAgICBQcm9w
X1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9IDQwMDUsCisg
ICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA0MDA2LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2Vk
IGZvciB1c2VyIGludGVyZmFjZSBsaWtlIGljb25zIG5hbWVzCisgICAgICAgUHJvcF9JY29uUGF0
aE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1
MDAwLCAvLyBERVBSRUNBVEVELiBWYWx1ZSBub3QgcmVmZXJlbmNlZC4gTm93IGV4cGVjdGVkIHRv
IGJlIHBhcnQgb2YgaWNvbiBwYXRoIHByb3BlcnRpZXMuCisgICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlT2ZmX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMDEsIC8v
IHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBH
SUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJz
CisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAg
ICAgICAgPSA1MDAyLCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGlu
Z0FsZXJ0X1N0cmluZyAgICAgICA9IDUwMDMsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5h
bWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9y
IGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlUmVhZHlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA0LCAvLyB7ZHJpdmVy
fS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBh
bmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAgICAgICAgICAgICA9
IDUwMDUsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBp
Y29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBm
b3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgPSA1MDA2LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVu
YW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZv
ciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0
aERldmljZVN0YW5kYnlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA3LCAvLyB7ZHJp
dmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZv
ciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAg
ICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0TG93X1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgID0gNTAwOCwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Ig
c3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5k
IDMyeDMyIGZvciBvdGhlcnMKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBi
eSBoZWxwZXJzLCBidXQgYXJlIG9wYXF1ZSB0byBhcHBsaWNhdGlvbnMKKyAgICAgICBQcm9wX0Rp
c3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5kICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTE1MCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBh
cmUgdW5pcXVlIHRvIGRyaXZlcnMKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAwLAorICAgICAgIFByb3BfSW5z
dGFsbFBhdGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA2MDAxLAorICAgICAgIFByb3BfSGFzRGlzcGxheUNvbXBvbmVudF9Cb29sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjAwMiwKKyAgICAgICBQcm9wX0hhc0NvbnRyb2xsZXJDb21wb25l
bnRfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gNjAwMywKKyAgICAgICBQcm9wX0hhc0NhbWVy
YUNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwNCwKKyAgICAg
ICBQcm9wX0hhc0RyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfQm9vbCAgICAgICAgICAgICAgPSA2
MDA1LAorICAgICAgIFByb3BfSGFzVmlydHVhbERpc3BsYXlDb21wb25lbnRfQm9vbCAgICAgICAg
ICAgICAgPSA2MDA2LAorCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJp
dmF0ZSBkZWJ1ZyBkYXRhIGluIHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgUHJvcF9WZW5k
b3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCAgICAgICAgICAgICAgICAgICAgID0gMTAwMDAsCisg
ICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgICAgICAg
ICA9IDEwOTk5LAorfTsKKworLyoqIE5vIHN0cmluZyBwcm9wZXJ0eSB3aWxsIGV2ZXIgYmUgbG9u
Z2VyIHRoYW4gdGhpcyBsZW5ndGggKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4UHJv
cGVydHlTdHJpbmdTaXplID0gMzIgKiAxMDI0OworCisvKiogVXNlZCB0byByZXR1cm4gZXJyb3Jz
IHRoYXQgb2NjdXIgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuICovCitlbnVtIEVUcmFja2VkUHJv
cGVydHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdE
YXRhVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVHJhY2tlZFBy
b3BfV3JvbmdEZXZpY2VDbGFzcyAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAgICAgICBUcmFj
a2VkUHJvcF9CdWZmZXJUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMsCisg
ICAgICAgVHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNCwgLy8gRHJpdmVyIGhhcyBub3Qgc2V0IHRoZSBwcm9wZXJ0eSAoYW5kIG1heSBub3Qg
ZXZlcikuCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZERldmljZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVy
ICAgICAgICAgICAgICA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5
RGV2aWNlICAgICAgID0gNywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11
bUxlbmd0aCAgICAgICA9IDgsCisgICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gOSwgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzbid0
IGtub3duIHlldCwgYnV0IGlzIGV4cGVjdGVkIHNvb24uIENhbGwgYWdhaW4gbGF0ZXIuCisgICAg
ICAgVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0gMTAs
CisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAg
ID0gMTEsCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjb250cm9sIHdoYXQg
cGFydCBvZiB0aGUgcHJvdmlkZWQgdGV4dHVyZSB3aWxsIGJlIHVzZWQgaW4gdGhlCisqIGZyYW1l
IGJ1ZmZlci4gKi8KK3N0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIGZsb2F0IHVN
aW4sIHZNaW47CisgICAgICAgZmxvYXQgdU1heCwgdk1heDsKK307CisKKy8qKiBBbGxvd3Mgc3Bl
Y2lmeWluZyBwb3NlIHVzZWQgdG8gcmVuZGVyIHByb3ZpZGVkIHNjZW5lIHRleHR1cmUgKGlmIGRp
ZmZlcmVudCBmcm9tIHZhbHVlIHJldHVybmVkIGJ5IFdhaXRHZXRQb3NlcykuICovCitzdHJ1Y3Qg
VlJUZXh0dXJlV2l0aFBvc2VfdCA6IHB1YmxpYyBUZXh0dXJlX3QKK3sKKyAgICAgICBIbWRNYXRy
aXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7IC8vIEFjdHVhbCBwb3NlIHVzZWQgdG8g
cmVuZGVyIHNjZW5lIHRleHR1cmVzLgorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24g
dG8gY29udHJvbCBob3cgc2NlbmUgdGV4dHVyZXMgYXJlIHVzZWQgYnkgdGhlIGNvbXBvc2l0b3Ig
d2hlbiBjYWxsaW5nIFN1Ym1pdC4gKi8KK2VudW0gRVZSU3VibWl0RmxhZ3MKK3sKKyAgICAgICAv
LyBTaW1wbGUgcmVuZGVyIHBhdGguIEFwcCBzdWJtaXRzIHJlbmRlcmVkIGxlZnQgYW5kIHJpZ2h0
IGV5ZSBpbWFnZXMgd2l0aCBubyBsZW5zIGRpc3RvcnRpb24gY29ycmVjdGlvbiBhcHBsaWVkLgor
ICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMHgwMCwKKworICAgICAgIC8vIEFwcCBzdWJtaXRzIGZp
bmFsIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBsZW5zIGRpc3RvcnRpb24gYWxyZWFk
eSBhcHBsaWVkIChsZW5zIGRpc3RvcnRpb24gbWFrZXMgdGhlIGltYWdlcyBhcHBlYXIKKyAgICAg
ICAvLyBiYXJyZWwgZGlzdG9ydGVkIHdpdGggY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlv
biBhcHBsaWVkKS4gVGhlIGFwcCB3b3VsZCBoYXZlIHVzZWQgdGhlIGRhdGEgcmV0dXJuZWQgYnkK
KyAgICAgICAvLyB2cjo6SVZSU3lzdGVtOjpDb21wdXRlRGlzdG9ydGlvbigpIHRvIGFwcGx5IHRo
ZSBjb3JyZWN0IGRpc3RvcnRpb24gdG8gdGhlIHJlbmRlcmVkIGltYWdlcyBiZWZvcmUgY2FsbGlu
ZyBTdWJtaXQoKS4KKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9
IDB4MDEsCisKKyAgICAgICAvLyBJZiB0aGUgdGV4dHVyZSBwb2ludGVyIHBhc3NlZCBpbiBpcyBh
Y3R1YWxseSBhIHJlbmRlcmJ1ZmZlciAoZS5nLiBmb3IgTVNBQSBpbiBPcGVuR0wpIHRoZW4gc2V0
IHRoaXMgZmxhZy4KKyAgICAgICBTdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAweDAyLAorCisgICAg
ICAgLy8gRG8gbm90IHVzZQorICAgICAgIFN1Ym1pdF9SZXNlcnZlZCA9IDB4MDQsCisKKyAgICAg
ICAvLyBTZXQgdG8gaW5kaWNhdGUgdGhhdCBwVGV4dHVyZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlRl
eHR1cmVXaXRoUG9zZV90LgorICAgICAgIFN1Ym1pdF9UZXh0dXJlV2l0aFBvc2UgPSAweDA4LAor
fTsKKworLyoqIERhdGEgcmVxdWlyZWQgZm9yIHBhc3NpbmcgVnVsa2FuIHRleHR1cmVzIHRvIElW
UkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0ZG93biBi
ZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCitzdHJ1Y3QgVlJWdWxrYW5UZXh0
dXJlRGF0YV90Cit7CisgICAgICAgdWludDY0X3QgbV9uSW1hZ2U7IC8vIFZrSW1hZ2UKKyAgICAg
ICBWa0RldmljZV9UICptX3BEZXZpY2U7CisgICAgICAgVmtQaHlzaWNhbERldmljZV9UICptX3BQ
aHlzaWNhbERldmljZTsKKyAgICAgICBWa0luc3RhbmNlX1QgKm1fcEluc3RhbmNlOworICAgICAg
IFZrUXVldWVfVCAqbV9wUXVldWU7CisgICAgICAgdWludDMyX3QgbV9uUXVldWVGYW1pbHlJbmRl
eDsKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aCwgbV9uSGVpZ2h0LCBtX25Gb3JtYXQsIG1fblNh
bXBsZUNvdW50OworfTsKKworLyoqIERhdGEgcmVxdWlyZWQgZm9yIHBhc3NpbmcgRDNEMTIgdGV4
dHVyZXMgdG8gSVZSQ29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3BlblZS
X1NodXRkb3duIGJlZm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVjdCBE
M0QxMlRleHR1cmVEYXRhX3QKK3sKKyAgICAgICBJRDNEMTJSZXNvdXJjZSAqbV9wUmVzb3VyY2U7
CisgICAgICAgSUQzRDEyQ29tbWFuZFF1ZXVlICptX3BDb21tYW5kUXVldWU7CisgICAgICAgdWlu
dDMyX3QgbV9uTm9kZU1hc2s7Cit9OworCisvKiogU3RhdHVzIG9mIHRoZSBvdmVyYWxsIHN5c3Rl
bSBvciB0cmFja2VkIG9iamVjdHMgKi8KK2VudW0gRVZSU3RhdGUKK3sKKyAgICAgICBWUlN0YXRl
X1VuZGVmaW5lZCA9IC0xLAorICAgICAgIFZSU3RhdGVfT2ZmID0gMCwKKyAgICAgICBWUlN0YXRl
X1NlYXJjaGluZyA9IDEsCisgICAgICAgVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQgPSAyLAorICAg
ICAgIFZSU3RhdGVfUmVhZHkgPSAzLAorICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnQgPSA0LAor
ICAgICAgIFZSU3RhdGVfTm90UmVhZHkgPSA1LAorICAgICAgIFZSU3RhdGVfU3RhbmRieSA9IDYs
CisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3LAorfTsKKworLyoqIFRoZSB0eXBl
cyBvZiBldmVudHMgdGhhdCBjb3VsZCBiZSBwb3N0ZWQgKGFuZCB3aGF0IHRoZSBwYXJhbWV0ZXJz
IG1lYW4gZm9yIGVhY2ggZXZlbnQgdHlwZSkgKi8KK2VudW0gRVZSRXZlbnRUeXBlCit7CisgICAg
ICAgVlJFdmVudF9Ob25lID0gMCwKKworICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZUFjdGl2
YXRlZCAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVh
Y3RpdmF0ZWQgICAgICAgPSAxMDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRl
ZCAgICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCAgICAgICA9IDEwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZp
Y2VVc2VySW50ZXJhY3Rpb25FbmRlZCAgICAgICA9IDEwNCwKKyAgICAgICBWUkV2ZW50X0lwZENo
YW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAgIFZS
RXZlbnRfRW50ZXJTdGFuZGJ5TW9kZSAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAgICAg
IFZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSAgICAgICAgICAgICAgICAgICAgID0gMTA3LAorICAg
ICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkICAgICAgID0gMTA4LAorICAgICAg
IFZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgICAgICAgICAgICAgID0gMTA5LAorICAg
ICAgIFZSRXZlbnRfTGVuc0Rpc3RvcnRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDExMCwKKyAg
ICAgICBWUkV2ZW50X1Byb3BlcnR5Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDExMSwKKyAgICAgICBWUkV2ZW50X1dpcmVsZXNzRGlzY29ubmVjdCAgICAgICAgICAgICAgICAg
ICAgID0gMTEyLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NSZWNvbm5lY3QgICAgICAgICAgICAg
ICAgICAgICA9IDExMywKKworICAgICAgIFZSRXZlbnRfQnV0dG9uUHJlc3MgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAwLCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKKyAgICAg
ICBWUkV2ZW50X0J1dHRvblVucHJlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDEs
IC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZlbnRfQnV0dG9uVG91Y2ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyLCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIK
KyAgICAgICBWUkV2ZW50X0J1dHRvblVudG91Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDMsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorCisgICAgICAgVlJFdmVudF9Nb3VzZU1vdmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwLCAvLyBkYXRhIGlzIG1vdXNl
CisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDEsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9uVXAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDIsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAg
ICBWUkV2ZW50X0ZvY3VzRW50ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAzLCAvLyBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA0LCAvLyBkYXRhIGlzIG92ZXJsYXkKKyAg
ICAgICBWUkV2ZW50X1Njcm9sbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMzA1LCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDYsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAg
ICBWUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDMwNywg
Ly8gZGF0YSBpcyBvdmVybGF5LCBnbG9iYWwgZXZlbnQKKworICAgICAgIFZSRXZlbnRfSW5wdXRG
b2N1c0NhcHR1cmVkICAgICAgICAgICAgICAgICAgICAgPSA0MDAsIC8vIGRhdGEgaXMgcHJvY2Vz
cyBERVBSRUNBVEVECisgICAgICAgVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgICAgICAgICAg
ICAgICAgICAgICA9IDQwMSwgLy8gZGF0YSBpcyBwcm9jZXNzIERFUFJFQ0FURUQKKyAgICAgICBW
UkV2ZW50X1NjZW5lRm9jdXNMb3N0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNDAyLCAv
LyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNHYWluZWQgICAgICAg
ICAgICAgICAgICAgICA9IDQwMywgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9T
Y2VuZUFwcGxpY2F0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSA0MDQsIC8vIGRhdGEgaXMgcHJv
Y2VzcyAtIFRoZSBBcHAgYWN0dWFsbHkgZHJhd2luZyB0aGUgc2NlbmUgY2hhbmdlZCAodXN1YWxs
eSB0byBvciBmcm9tIHRoZSBjb21wb3NpdG9yKQorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0No
YW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNSwgLy8gZGF0YSBpcyBwcm9jZXNzIC0gTmV3
IGFwcCBnb3QgYWNjZXNzIHRvIGRyYXcgdGhlIHNjZW5lCisgICAgICAgVlJFdmVudF9JbnB1dEZv
Y3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA2LCAvLyBkYXRhIGlzIHByb2Nlc3MK
KyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVk
ID0gNDA3LCAvLyBkYXRhIGlzIHByb2Nlc3MKKworICAgICAgIFZSRXZlbnRfSGlkZVJlbmRlck1v
ZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDEwLCAvLyBTZW50IHRvIHRoZSBzY2VuZSBhcHBs
aWNhdGlvbiB0byByZXF1ZXN0IGhpZGluZyByZW5kZXIgbW9kZWxzIHRlbXBvcmFyaWx5CisgICAg
ICAgVlJFdmVudF9TaG93UmVuZGVyTW9kZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTEsIC8v
IFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRvIHJlcXVlc3QgcmVzdG9yaW5nIHJlbmRl
ciBtb2RlbCB2aXNpYmlsaXR5CisKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUwMCwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlIaWRkZW4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDEsCisgICAgICAgVlJFdmVudF9EYXNoYm9h
cmRBY3RpdmF0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwMiwKKyAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZERlYWN0aXZhdGVkICAgICAgICAgICAgICA9IDUwMywKKyAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZFRodW1iU2VsZWN0ZWQgICAgICAgICAgICAgID0gNTA0LCAvLyBTZW50IHRvIHRoZSBv
dmVybGF5IG1hbmFnZXIgLSBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X0Rhc2hib2Fy
ZFJlcXVlc3RlZCAgICAgICAgICAgICAgICAgICAgID0gNTA1LCAvLyBTZW50IHRvIHRoZSBvdmVy
bGF5IG1hbmFnZXIgLSBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X1Jlc2V0RGFzaGJv
YXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA2LCAvLyBTZW5kIHRvIHRoZSBvdmVy
bGF5IG1hbmFnZXIKKyAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwNywgLy8gU2VuZCB0byB0aGUgZGFzaGJvYXJkIHRvIHJlbmRl
ciBhIHRvYXN0IC0gZGF0YSBpcyB0aGUgbm90aWZpY2F0aW9uIElECisgICAgICAgVlJFdmVudF9J
bWFnZUxvYWRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDgsIC8vIFNl
bnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcgb3IgU2V0T3ZlcmxheUZyb21GaWxl
IGNhbGwgZmluaXNoZXMgbG9hZGluZworICAgICAgIFZSRXZlbnRfU2hvd0tleWJvYXJkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTA5LCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVy
IGluIHRoZSBkYXNoYm9hcmQgdG8gaW52b2tlIGl0CisgICAgICAgVlJFdmVudF9IaWRlS2V5Ym9h
cmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTAsIC8vIFNlbnQgdG8ga2V5Ym9hcmQg
cmVuZGVyZXIgaW4gdGhlIGRhc2hib2FyZCB0byBoaWRlIGl0CisgICAgICAgVlJFdmVudF9PdmVy
bGF5R2FtZXBhZEZvY3VzR2FpbmVkICAgICAgID0gNTExLCAvLyBTZW50IHRvIGFuIG92ZXJsYXkg
d2hlbiBJVlJPdmVybGF5OjpTZXRGb2N1c092ZXJsYXkgaXMgY2FsbGVkIG9uIGl0CisgICAgICAg
VlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzTG9zdCAgICAgICAgICAgICAgPSA1MTIsIC8vIFNl
bmQgdG8gYW4gb3ZlcmxheSB3aGVuIGl0IHByZXZpb3VzbHkgaGFkIGZvY3VzIGFuZCBJVlJPdmVy
bGF5OjpTZXRGb2N1c092ZXJsYXkgaXMgY2FsbGVkIG9uIHNvbWV0aGluZyBlbHNlCisgICAgICAg
VlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQgPSA1MTMsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gICAgICAgPSA1MTQsCisgICAgICAgVlJFdmVudF9E
YXNoYm9hcmRHdWlkZUJ1dHRvblVwICAgICAgICAgICAgICA9IDUxNSwKKyAgICAgICBWUkV2ZW50
X1NjcmVlbnNob3RUcmlnZ2VyZWQgICAgICAgICAgICAgICAgICAgICA9IDUxNiwgLy8gU2NyZWVu
c2hvdCBidXR0b24gY29tYm8gd2FzIHByZXNzZWQsIERhc2hib2FyZCBzaG91bGQgcmVxdWVzdCBh
IHNjcmVlbnNob3QKKyAgICAgICBWUkV2ZW50X0ltYWdlRmFpbGVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUxNywgLy8gU2VudCB0byBvdmVybGF5cyB3aGVuIGEgU2V0T3Zl
cmxheVJhdyBvciBTZXRPdmVybGF5ZnJvbUZhaWwgZmFpbHMgdG8gbG9hZAorICAgICAgIFZSRXZl
bnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgICAgICAgICAgICAgID0gNTE4LAorCisgICAgICAg
Ly8gU2NyZWVuc2hvdCBBUEkKKyAgICAgICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTIwLCAvLyBTZW50IGJ5IHZyY2xpZW50IGFwcGxpY2F0
aW9uIHRvIGNvbXBvc2l0b3IgdG8gdGFrZSBhIHNjcmVlbnNob3QKKyAgICAgICBWUkV2ZW50X1Nj
cmVlbnNob3RUYWtlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MjEsIC8v
IFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgc2NyZWVuc2hv
dCBoYXMgYmVlbiB0YWtlbgorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdEZhaWxlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUyMiwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBh
cHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90IGZhaWxlZCB0byBiZSB0YWtlbgorICAgICAg
IFZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkICAgICAgICAgICAgICA9IDUyMywg
Ly8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQgdGhhdCBhIGNvbXBsZXRlZCBz
Y3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVz
c1RvRGFzaGJvYXJkICAgICAgID0gNTI0LCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGRh
c2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNjcmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorCisgICAg
ICAgVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCAgICAgICA9IDUyNSwKKwor
ICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNjAwLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDYwMSwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdp
bkludGVyYWN0aW9uICAgICAgID0gNjAyLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rl
c3Ryb3llZCAgICAgICAgICAgICAgICAgICAgID0gNjAzLAorCisgICAgICAgVlJFdmVudF9RdWl0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAwLCAv
LyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1Byb2Nlc3NRdWl0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDEsIC8vIGRhdGEgaXMgcHJvY2Vzcwor
ICAgICAgIFZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21wdCAgICAgICAgICAgICAgICAgICAg
ID0gNzAyLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1F1aXRBY2tub3dsZWRn
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDMsIC8vIGRhdGEgaXMgcHJvY2Vzcwor
ICAgICAgIFZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDcwNCwgLy8gVGhlIGRyaXZlciBoYXMgcmVxdWVzdGVkIHRoYXQgU3RlYW1WUiBzaHV0
IGRvd24KKworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lRGF0YUhhc0NoYW5nZWQgICAgICAgICAg
ICAgICAgICAgICA9IDgwMCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hh
bmdlZCAgICAgICAgICAgICAgPSA4MDEsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVUZW1wRGF0
YUhhc0NoYW5nZWQgICAgICAgICAgICAgID0gODAyLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25l
U2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICA9IDgwMywKKyAgICAgICBWUkV2ZW50X1NlYXRlZFpl
cm9Qb3NlUmVzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA4MDQsCisKKyAgICAgICBW
UkV2ZW50X0F1ZGlvU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MjAsCisKKyAg
ICAgICBWUkV2ZW50X0JhY2tncm91bmRTZXR0aW5nSGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4
NTAsCisgICAgICAgVlJFdmVudF9DYW1lcmFTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAg
ICA9IDg1MSwKKyAgICAgICBWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkICAg
ICAgID0gODUyLAorICAgICAgIFZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCAg
ICAgICA9IDg1MywKKyAgICAgICBWUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZlQ2hhbmdl
ZCAgICAgICA9IDg1NCwKKyAgICAgICBWUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCAg
ICAgICAgICAgICAgPSA4NTUsCisgICAgICAgVlJFdmVudF9FbmFibGVIb21lQXBwU2V0dGluZ3NI
YXZlQ2hhbmdlZCA9IDg1NiwKKworICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDkwMCwKKworICAgICAgIFZSRXZlbnRfTUNJbWFn
ZVVwZGF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwKKworICAg
ICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkICAgICAgICAgICAgICAgICAgICAgPSAx
MTAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCAgICAgICAgICAgICAg
ICAgICAgID0gMTEwMSwKKworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMCwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJk
Q2hhcklucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMSwKKyAgICAgICBWUkV2
ZW50X0tleWJvYXJkRG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAy
LCAvLyBTZW50IHdoZW4gRE9ORSBidXR0b24gY2xpY2tlZCBvbiBrZXlib2FyZAorCisgICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkICAgICAgICAgICAgICA9IDEzMDAs
CisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkICAgICAgICAgICAg
ICA9IDEzMDEsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFy
dGVkICAgICAgID0gMTMwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzAzLAorICAgICAgIFZSRXZlbnRfQXBwbGlj
YXRpb25NaW1lVHlwZUxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA0LAorICAg
ICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAx
MzA1LAorICAgICAgIFZSRXZlbnRfUHJvY2Vzc0Nvbm5lY3RlZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMzA2LAorICAgICAgIFZSRXZlbnRfUHJvY2Vzc0Rpc2Nvbm5lY3Rl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA3LAorCisgICAgICAgVlJF
dmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duICAgICAgICAgICAgICA9IDE0MDAsCisg
ICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiAgICAgICAgICAgICAg
PSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biAg
ICAgICAgICAgICAgPSAxNDEwLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVC
b3VuZHNIaWRkZW4gICAgICAgPSAxNDExLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1N0YXJ0VmlkZW9TdHJlYW0gID0gMTUwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFf
U3RvcFZpZGVvU3RyZWFtICAgPSAxNTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9Q
YXVzZVZpZGVvU3RyZWFtICA9IDE1MDIsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1Jl
c3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfRWRp
dGluZ1N1cmZhY2UgICAgPSAxNTUwLAorCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3Rf
RW5hYmxlQ2FwdHVyZSAgICAgICA9IDE2MDAsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRGlzYWJsZUNhcHR1cmUgICAgICAgPSAxNjAxLAorICAgICAgIFZSRXZlbnRfUGVyZm9ybWFu
Y2VUZXN0X0ZpZGVsaXR5TGV2ZWwgICAgICAgPSAxNjAyLAorCisgICAgICAgVlJFdmVudF9NZXNz
YWdlT3ZlcmxheV9DbG9zZWQgICAgICAgICAgICAgICAgICAgICA9IDE2NTAsCisgICAgICAgVlJF
dmVudF9NZXNzYWdlT3ZlcmxheUNsb3NlUmVxdWVzdGVkICAgICAgID0gMTY1MSwKKyAgICAgICAK
KyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGV2ZW50cyBpbiB0
aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2
ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307CisKKworLyoqIExldmVsIG9mIEht
ZCBhY3Rpdml0eSAqLworLy8gVXNlckludGVyYWN0aW9uX1RpbWVvdXQgbWVhbnMgdGhlIGRldmlj
ZSBpcyBpbiB0aGUgcHJvY2VzcyBvZiB0aW1pbmcgb3V0LgorLy8gSW5Vc2UgPSAoIGtfRURldmlj
ZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uIHx8IGtfRURldmljZUFjdGl2aXR5TGV2ZWxf
VXNlckludGVyYWN0aW9uX1RpbWVvdXQgKQorLy8gVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCBmaXJlcyB3aGVuIHRoZSBkZXZpY2VzIHRyYW5zaXRpb25zIGZyb20g
U3RhbmRieSAtPiBVc2VySW50ZXJhY3Rpb24gb3IgSWRsZSAtPiBVc2VySW50ZXJhY3Rpb24uCisv
LyBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCBmaXJlcyB3aGVuIHRo
ZSBkZXZpY2VzIHRyYW5zaXRpb25zIGZyb20gVXNlckludGVyYWN0aW9uX1RpbWVvdXQgLT4gSWRs
ZQorZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreyAgICAgICAKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0
eUxldmVsX0lkbGUgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIE5vIGFjdGl2aXR5IGZvciB0aGUgbGFzdCAxMCBzZWNvbmRzCisgICAgICAga19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gPSAxLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBBY3Rpdml0eSAobW92ZW1lbnQgb3IgcHJveCBzZW5zb3IpIGlzIGhhcHBlbmluZyBu
b3cgICAgICAgCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25f
VGltZW91dCA9IDIsICAgICAgICAgICAgICAvLyBObyBhY3Rpdml0eSBmb3IgdGhlIGxhc3QgMC41
IHNlY29uZHMKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkbGUgZm9yIGF0IGxlYXN0
IDUgc2Vjb25kcyAoY29uZmlndXJhYmxlIGluIFNldHRpbmdzIC0+IFBvd2VyIE1hbmFnZW1lbnQp
Cit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJRHMgKi8KK2VudW0g
RVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAgICAgICAgICAgICAg
ICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAgICAgPSAxLAorICAg
ICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAgICAg
ICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAzLAorICAgICAgIGtf
RUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgICAgIGtfRUJ1dHRv
bl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAgICAga19FQnV0dG9uX0RQYWRfRG93
biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAgIAorICAgICAgIGtfRUJ1dHRvbl9Q
cm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19FQnV0dG9uX0F4aXMwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19FQnV0dG9uX0F4aXMxICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19FQnV0dG9uX0F4aXMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19FQnV0dG9uX0F4aXMzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19FQnV0dG9uX0F4aXM0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAvLyBhbGlhc2VzIGZvciB3ZWxsIGtu
b3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgICAgICAg
PSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciAgICAg
ICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1dHRvbl9EYXNoYm9hcmRfQmFjayAg
ICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19FQnV0dG9uX01heCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUgdWludDY0X3QgQnV0dG9uTWFza0Zy
b21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9CisKKy8qKiB1c2Vk
IGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X0NvbnRyb2xs
ZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9uSWQgZW51bQorfTsK
KworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBvdmVybGF5IHNwYWNl
ICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgVlJNb3VzZUJ1dHRvbl9MZWZ0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKKyAgICAgICBWUk1vdXNl
QnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMiwK
KyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgaW4g
b3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIGZsb2F0
IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVmdCBvZiB0aGUgdGV4
dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1vdXNlQnV0dG9uIGVu
dW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwgc2Nyb2xsIGluIG92
ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxvYXQg
eGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRoZSBwYWQgdHJhdmVy
c2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCisgICAgICAgdWludDMy
X3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBtb3VzZSBpbnB1dCBtb2RlIHlvdSBj
YW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVudHMgYXJlIG9ubHkg
c2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0aGUgdG91Y2hwYWQgKG9yIGp1c3Qg
cmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92ZV90Cit7
CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVjdGVkIG9uIHRoZSB0
b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworCisgICAgICAgLy8gSG93IGxvbmcg
dGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKKyAgICAgICBmbG9hdCBmbFNlY29u
ZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGljYXRlIHRoZSBzdGFy
dGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNpYyBzd2lwZSBzdHVm
ZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZhbHVlWUZpcnN0
OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRpbmF0ZSB3aXRob3V0
IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0IGZWYWx1
ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRzLiBEZXRhaWxzIHdp
bGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0cnVjdCBWUkV2ZW50X05vdGlmaWNh
dGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7CisgICAgICAgdWludDMyX3Qg
bm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3IgZXZlbnRzIGFib3V0IHByb2Nlc3Nl
cyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgdWludDMyX3QgcGlkOwor
ICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29sIGJGb3JjZWQ7Cit9OworCisKKy8q
KiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2ZW50
X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cit9OworCisKKy8q
KiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2ZW50
X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8vIEVWUlN0YXRlIGVu
dW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCitzdHJ1Y3QgVlJFdmVu
dF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAgICAgIC8vIFVwIHRv
IDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2NF90IHVVc2VyVmFsdWU7ICAgICAg
IC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKK307CisKK3N0cnVjdCBWUkV2
ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfTsKKworc3RydWN0IFZSRXZl
bnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25QcmV2aW91c1VuaXZlcnNlOwor
ICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKK307CisKKy8qKiBOb3QgYWN0dWFs
bHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRfdAorewor
ICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDE7Cit9
OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVpbnQzMl90
IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK307CisKK3N0cnVjdCBW
UkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAgICAgICB1
aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QK
K3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0cnVjdCBWUkV2ZW50X0FwcGxpY2F0
aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3QgdW5B
cmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAor
eworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3QgblZpc3Vh
bE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90Cit7CisgICAgICAg
dWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpWUk1lc3NhZ2VPdmVy
bGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAoreworICAg
ICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOworICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RFISEhIElmIHlvdSBjaGFuZ2UgdGhp
cyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgKi8KK3R5cGVk
ZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAgICAg
VlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAgICAgICBWUkV2ZW50X01vdXNlX3Qg
bW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7CisgICAgICAgVlJFdmVudF9Q
cm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlmaWNh
dGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFZSRXZlbnRf
U3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsKKyAg
ICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNoYXBl
cm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVzdDsK
KyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAgICBWUkV2
ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OworICAgICAgIFZS
RXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90
UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlv
bkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAgIFZSRXZlbnRfRWRpdGluZ0NhbWVy
YVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlf
dCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3QgcHJvcGVydHk7Cit9
IFZSRXZlbnRfRGF0YV90OworCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChf
X0FQUExFX18pIAorLy8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMt
cGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAorLy8gY29tcGF0aWJpbGl0eS4gCisjcHJh
Z21hIHBhY2soIHB1c2gsIDQgKQorI2VuZGlmCisKKy8qKiBBbiBldmVudCBwb3N0ZWQgYnkgdGhl
IHNlcnZlciB0byBhbGwgcnVubmluZyBhcHBsaWNhdGlvbnMgKi8KK3N0cnVjdCBWUkV2ZW50X3QK
K3sKKyAgICAgICB1aW50MzJfdCBldmVudFR5cGU7IC8vIEVWUkV2ZW50VHlwZSBlbnVtCisgICAg
ICAgVHJhY2tlZERldmljZUluZGV4X3QgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIGZsb2F0
IGV2ZW50QWdlU2Vjb25kczsKKyAgICAgICAvLyBldmVudCBkYXRhIG11c3QgYmUgdGhlIGVuZCBv
ZiB0aGUgc3RydWN0IGFzIGl0cyBzaXplIGlzIHZhcmlhYmxlCisgICAgICAgVlJFdmVudF9EYXRh
X3QgZGF0YTsKK307CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExF
X18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKy8qKiBUaGUgbWVzaCB0byBkcmF3
IGludG8gdGhlIHN0ZW5jaWwgKG9yIGRlcHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKKyogZWFybHkg
c3RlbmNpbCAob3IgZGVwdGgpIGtpbGxzIG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFy
IG9uIHRoZSBITUQuCisqIFRoaXMgbWVzaCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdp
bGwgYmUgaGlkZGVuIGFmdGVyIGRpc3RvcnRpb24uIAorKgorKiBJZiB0aGUgSE1EIGRvZXMgbm90
IHByb3ZpZGUgYSB2aXNpYmxlIGFyZWEgbWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCisqIE5VTEwg
YW5kIHVuVHJpYW5nbGVDb3VudCB3aWxsIGJlIDAuICovCitzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hf
dAoreworICAgICAgIGNvbnN0IEhtZFZlY3RvcjJfdCAqcFZlcnRleERhdGE7CisgICAgICAgdWlu
dDMyX3QgdW5UcmlhbmdsZUNvdW50OworfTsKKworCitlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUK
K3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAga19lSGlk
ZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxv
b3AgPSAyLAorCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTWF4ID0gMywKK307CisKKworLyoq
IElkZW50aWZpZXMgd2hhdCBraW5kIG9mIGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5k
ZXggbi4gUmVhZCB0aGlzIHR5cGUgCisqIHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVy
RGV2aWNlSW5kZXgsIFByb3BfQXhpczBUeXBlX0ludDMyICsgbiApOworKi8KK2VudW0gRVZSQ29u
dHJvbGxlckF4aXNUeXBlCit7CisgICAgICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisg
ICAgICAga19lQ29udHJvbGxlckF4aXNfVHJhY2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRyb2xs
ZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0g
MywgLy8gQW5hbG9nIHRyaWdnZXIgZGF0YSBpcyBpbiB0aGUgWCBheGlzCit9OworCisKKy8qKiBj
b250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLwor
c3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAoreworICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBm
cm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9t
IDAuMCB0byAxLjAgZm9yIHRyaWdnZXJzIHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KKyAgICAg
ICBmbG9hdCB5OyAvLyBSYW5nZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0
cmFjayBwYWRzLiBJcyBhbHdheXMgMC4wIGZvciB0cmlnZ2Vycy4KK307CisKKworLyoqIHRoZSBu
dW1iZXIgb2YgYXhlcyBpbiB0aGUgY29udHJvbGxlciBzdGF0ZSAqLworc3RhdGljIGNvbnN0IHVp
bnQzMl90IGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQgPSA1OworCisKKyNpZiBkZWZpbmVk
KF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAorLy8gVGhpcyBzdHJ1Y3R1cmUgd2Fz
IG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAor
Ly8gY29tcGF0aWJpbGl0eS4gCisjcHJhZ21hIHBhY2soIHB1c2gsIDQgKQorI2VuZGlmCisKKy8q
KiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEgY29udHJvbGxlciBhdCBvbmUgbW9tZW50IGluIHRp
bWUuICovCitzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGUwMDFfdAoreworICAgICAgIC8vIElmIHBh
Y2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlvdXIgcHJpb3IgY2FsbCwgdGhlbiB0aGUgY29udHJv
bGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFuZ2VkIHNpbmNlIAorICAgICAgIC8vIHlvdXIgbGFz
dCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgaXQKKyAgICAgICB1aW50MzJf
dCB1blBhY2tldE51bTsKKworICAgICAgIC8vIGJpdCBmbGFncyBmb3IgZWFjaCBvZiB0aGUgYnV0
dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQgdG8gdHVybiBhbiBJRCBpbnRvIGEgbWFzaworICAg
ICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblRv
dWNoZWQ7CisKKyAgICAgICAvLyBBeGlzIGRhdGEgZm9yIHRoZSBjb250cm9sbGVyJ3MgYW5hbG9n
IGlucHV0cworICAgICAgIFZSQ29udHJvbGxlckF4aXNfdCByQXhpc1sga191bkNvbnRyb2xsZXJT
dGF0ZUF4aXNDb3VudCBdOworfTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChf
X0FQUExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKwordHlwZWRlZiBWUkNv
bnRyb2xsZXJTdGF0ZTAwMV90IFZSQ29udHJvbGxlclN0YXRlX3Q7CisKKworLyoqIGRldGVybWlu
ZXMgaG93IHRvIHByb3ZpZGUgb3V0cHV0IHRvIHRoZSBhcHBsaWNhdGlvbiBvZiB2YXJpb3VzIGV2
ZW50IHByb2Nlc3NpbmcgZnVuY3Rpb25zLiAqLworZW51bSBFVlJDb250cm9sbGVyRXZlbnRPdXRw
dXRUeXBlCit7CisgICAgICAgQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0gMCwKKyAg
ICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVudHMgPSAxLAorfTsKKworCisKKy8qKiBD
b2xsaXNpb24gQm91bmRzIFN0eWxlICovCitlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQorewor
ICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAgIENPTExJ
U0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFLAorICAgICAgIENPTExJU0lPTl9CT1VORFNf
U1RZTEVfU1FVQVJFUywKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VELAor
ICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSwKKworICAgICAgIENPTExJU0lPTl9C
T1VORFNfU1RZTEVfQ09VTlQKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGN1
c3RvbWl6ZSBob3cgdGhlIG92ZXJsYXkgYXBwZWFycyBpbiB0aGUgY29tcG9zaXRvciAqLworc3Ry
dWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCit7CisgICAgICAgdWludDMyX3Qgc2l6ZTsg
Ly8gc2l6ZW9mKENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzKQorICAgICAgIGJvb2wgY3VydmVk
LCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGUsIGRpc3RhbmNlLCBhbHBoYTsKKyAgICAg
ICBmbG9hdCB1T2Zmc2V0LCB2T2Zmc2V0LCB1U2NhbGUsIHZTY2FsZTsKKyAgICAgICBmbG9hdCBn
cmlkRGl2cywgZ3JpZFdpZHRoLCBncmlkU2NhbGU7CisgICAgICAgSG1kTWF0cml4NDRfdCB0cmFu
c2Zvcm07Cit9OworCisvKiogdXNlZCB0byByZWZlciB0byBhIHNpbmdsZSBWUiBvdmVybGF5ICov
Cit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OworCitzdGF0aWMgY29uc3QgVlJP
dmVybGF5SGFuZGxlX3Qga191bE92ZXJsYXlIYW5kbGVJbnZhbGlkID0gMDsKKworLyoqIEVycm9y
cyB0aGF0IGNhbiBvY2N1ciBhcm91bmQgVlIgb3ZlcmxheXMgKi8KK2VudW0gRVZST3ZlcmxheUVy
cm9yCit7CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIFZST3ZlcmxheUVycm9yX1Vua25vd25P
dmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9J
bnZhbGlkSGFuZGxlICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICBWUk92ZXJsYXlF
cnJvcl9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMiwKKyAgICAgICBW
Uk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCAgICAgICAgICAgICAgPSAxMywgLy8g
Tm8gbW9yZSBvdmVybGF5cyBjb3VsZCBiZSBjcmVhdGVkIGJlY2F1c2UgdGhlIG1heGltdW0gbnVt
YmVyIGFscmVhZHkgZXhpc3QKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlU
eXBlICAgICAgICAgICAgICA9IDE0LAorICAgICAgIFZST3ZlcmxheUVycm9yX0tleVRvb0xvbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9O
YW1lVG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgIFZST3Zl
cmxheUVycm9yX0tleUluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE3
LAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSAgICAgICAgICAgICAg
PSAxOCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSAgICAgICAg
ICAgICAgPSAxOSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkUGFyYW1ldGVyICAgICAg
ICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50
QmVEZXN0cm95ZWQgICAgICAgPSAyMSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9BcnJheVRvb1Nt
YWxsICAgICAgICAgICAgICAgICAgICAgPSAyMiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9SZXF1
ZXN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAyMywKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAgICAgICAgID0gMjQsCisgICAgICAgVlJPdmVy
bGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSAgICAgICAgICAgICAgICAgICAgID0gMjUsCisgICAg
ICAgVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgICAgICAgICAgICAgID0gMjYs
CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDI3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0aXZlcyAg
ICAgICA9IDI5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUgICAgICAg
ICAgICAgICAgICAgICA9IDMwLAorfTsKKworLyoqIGVudW0gdmFsdWVzIHRvIHBhc3MgaW4gdG8g
VlJfSW5pdCB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB3aWxsIAorKiBkcmF3
IGEgM0Qgc2NlbmUuICovCitlbnVtIEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZSQXBw
bGljYXRpb25fT3RoZXIgPSAwLCAgICAgICAgICAgICAgLy8gU29tZSBvdGhlciBraW5kIG9mIGFw
cGxpY2F0aW9uIHRoYXQgaXNuJ3QgY292ZXJlZCBieSB0aGUgb3RoZXIgZW50cmllcyAKKyAgICAg
ICBWUkFwcGxpY2F0aW9uX1NjZW5lICAgICAgID0gMSwgICAgICAgICAgICAgIC8vIEFwcGxpY2F0
aW9uIHdpbGwgc3VibWl0IDNEIGZyYW1lcyAKKyAgICAgICBWUkFwcGxpY2F0aW9uX092ZXJsYXkg
PSAyLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRpb24gb25seSBpbnRlcmFjdHMgd2l0aCBvdmVy
bGF5cworICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsICAgICAgIC8vIEFwcGxp
Y2F0aW9uIHNob3VsZCBub3Qgc3RhcnQgU3RlYW1WUiBpZiBpdCdzIG5vdCBhbHJlYWR5IHJ1bm5p
bmcsIGFuZCBzaG91bGQgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGl0IHJ1bm5pbmcgaWYgZXZlcnl0aGlu
ZyBlbHNlIHF1aXRzLgorICAgICAgIFZSQXBwbGljYXRpb25fVXRpbGl0eSA9IDQsICAgICAgICAg
ICAgICAvLyBJbml0IHNob3VsZCBub3QgdHJ5IHRvIGxvYWQgYW55IGRyaXZlcnMuIFRoZSBhcHBs
aWNhdGlvbiBuZWVkcyBhY2Nlc3MgdG8gdXRpbGl0eQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJmYWNlcyAobGlr
ZSBJVlJTZXR0aW5ncyBhbmQgSVZSQXBwbGljYXRpb25zKSBidXQgbm90IGhhcmR3YXJlLgorICAg
ICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwgICAgICAgLy8gUmVzZXJ2ZWQgZm9yIHZy
bW9uaXRvcgorICAgICAgIFZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsLy8gUmVzZXJ2
ZWQgZm9yIFN0ZWFtCisgICAgICAgVlJBcHBsaWNhdGlvbl9Cb290c3RyYXBwZXIgPSA3LCAvLyBT
dGFydCB1cCBTdGVhbVZSCisKKyAgICAgICBWUkFwcGxpY2F0aW9uX01heAorfTsKKworCisvKiog
ZXJyb3IgY29kZXMgZm9yIGZpcm13YXJlICovCitlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAg
ICAgICBWUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX1N1
Y2Nlc3MgPSAxLAorICAgICAgIFZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK307CisKKworLyoq
IGVycm9yIGNvZGVzIGZvciBub3RpZmljYXRpb25zICovCitlbnVtIEVWUk5vdGlmaWNhdGlvbkVy
cm9yCit7CisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgVlJOb3Rp
ZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisgICAgICAgVlJOb3Rp
ZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgVlJOb3Rp
ZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAorfTsK
KworCisvKiogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgVnJfSW5pdCAqLworCisvLyBQbGVhc2Ug
YWRkIGFkZXF1YXRlIGVycm9yIGRlc2NyaXB0aW9uIHRvIGh0dHBzOi8vZGV2ZWxvcGVyLnZhbHZl
c29mdHdhcmUuY29tL3cvaW5kZXgucGhwP3RpdGxlPUNhdGVnb3J5OlN0ZWFtVlJIZWxwCitlbnVt
IEVWUkluaXRFcnJvcgoreworICAgICAgIFZSSW5pdEVycm9yX05vbmUgICAgICAgPSAwLAorICAg
ICAgIFZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9J
bnN0YWxsYXRpb25Ob3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTAwLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCAgICAgICAgICAgICAgICAgICAgID0g
MTAxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAg
ICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMywKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
NCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZElu
dGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkICAgICAgICAgICAgICA9IDEwNywK
KyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxp
emVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwOSwKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAx
MTAsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTExLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQ
YXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTIsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSAgICAgICAgICAgICAg
PSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1JldHJ5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE1LCAv
LyBVc2VkIGludGVybmFsbHkgdG8gY2F1c2UgcmV0cmllcyB0byB2cnNlcnZlcgorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2VyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhp
dC4gVGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0Fub3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgICAgICAgICA9IDExNywgCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTgsIAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExOSwKKyAgICAgICBWUkluaXRFcnJvcl9J
bml0X1Rvb01hbnlPYmplY3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEy
MCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCAgICAg
ICAgICAgICAgPSAxMjEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRo
Q29tcG9zaXRvciAgICAgICAgICAgICAgPSAxMjIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9O
b3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgICAgICAgICA9IDEyMywKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X0ludGVybmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTI0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kRHJpdmVySWRJc05vbmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTI1LAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAgICAgICAgID0gMTI2LAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMjcsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFp
bGVkICAgICAgICAgICAgICAgICAgICAgPSAxMjgsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9M
b3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkICAgICAgID0gMTI5LCAKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAgICAgICAgICAgICAgICAgICA9IDEz
MCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzICAg
ICAgICAgICAgICA9IDEzMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlzYWJs
ZWRJblNldHRpbmdzICAgICAgICAgICAgICA9IDEzMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X1ZSRGFzaGJvYXJkTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEzMywKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAx
MzQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVOb3RGb3VuZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMzUsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkhv
bWVTdGFydHVwRmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAxMzYsCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEzNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEzOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Zp
cm13YXJlUmVjb3ZlcnlCdXN5ICAgICAgICAgICAgICAgICAgICAgPSAxMzksCisKKworICAgICAg
IFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMCwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLAorICAgICAgIFZSSW5p
dEVycm9yX0RyaXZlcl9IbWRVbmtub3duICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJf
UnVudGltZU91dE9mRGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNCwKKyAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwNSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJy
YXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNiwKKyAgICAgICBWUkluaXRFcnJv
cl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgICAgICAgICAgICAgICAgPSAyMDcsCisg
ICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCAgICAgICAgICAgICAg
ICAgICAgID0gMjA4LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50
ZXJmYWNlVW5rbm93biA9IDIwOSwKKyAgICAgICAvLyBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlz
cGxheU5vdEZvdW5kQWZ0ZXJGaXggPSAyMTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3Rv
cmljIHJlYXNvbnMKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJv
dW5kcyAgICAgICAgICAgICAgPSAyMTEsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERp
c3BsYXlNaXJyb3JlZCAgICAgICAgICAgICAgICAgICAgID0gMjEyLAorCisgICAgICAgVlJJbml0
RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAz
MDAsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAxLAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRT
dGF0ZUluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDMwMiwKKyAgICAgICBWUkluaXRF
cnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDMwMywK
KyAgICAgICBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwNCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA1LAorICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgID0gMzA2LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52YWxpZENv
bm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxl
ZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKworICAgICAgIFZSSW5pdEVycm9yX0NvbXBv
c2l0b3JfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMCwKKyAg
ICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCAgICAgICA9
IDQwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRh
dGUgICAgICAgPSA0MDIsCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9PdmVybGF5SW5p
dEZhaWxlZCAgICAgICAgICAgICAgPSA0MDMsCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRv
cl9TY3JlZW5zaG90c0luaXRGYWlsZWQgICAgICAgPSA0MDQsCisgICAgICAgVlJJbml0RXJyb3Jf
Q29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmljZSAgICAgICAgICAgICAgPSA0MDUsCisKKyAg
ICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1c1J1
bnRpbWUgICAgICAgICAgICAgID0gMTAwMCwKKworICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDExMDEsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5h
YmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQgICAgICAgPSAxMTAyLAorICAgICAgIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDExMDMsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfQ29uZmlnVG9vQmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMDQsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNSwKKyAgICAgICBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliICAgICAgICAgICAgICAgICAg
ICAgID0gMTEwNiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
YW50UmVhZEZpcm13YXJlVmVyc2lvbiAgICAgICAgPSAxMTA3LAorICAgICAgIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3RhcnQgICAgICAg
PSAxMTA4LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJs
ZVRvR2V0VXNlckRhdGFTdGFydCAgICAgICA9IDExMDksCisgICAgICAgVlJJbml0RXJyb3JfVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQgICAgICAgICAgICAg
ID0gMTExMCwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2Vy
RGF0YUFkZHJlc3NSYW5nZSAgICAgICAgICAgICAgPSAxMTExLAorICAgICAgIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMTEyLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZv
dW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrICAgICAgICAgICAgICA9IDExMTMsCisKKyAgICAg
ICBWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5kID0gMjAwMCwKK307
CisKK2VudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX05v
bmUgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ubyA9IDEsIC8vIGxlZnQgZXllIG9u
bHkKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyA9IDIsCisgICAgICAgVlJTY3JlZW5z
aG90VHlwZV9DdWJlbWFwID0gMywKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm9QYW5vcmFt
YSA9IDQsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSA9IDUKK307CisK
K2VudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgVlJTY3JlZW5z
aG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90UHJv
cGVydHlGaWxlbmFtZXNfVlIgPSAxLAorfTsKKworZW51bSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IK
K3sKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAg
ICA9IDAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3BlcmF0aW9uRmFpbGVkICAgICAg
ICAgICAgPSAxMDAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSAg
ICAgICAgICAgICAgPSAxMDEsICAgICAgIAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0lu
dmFsaWRGcmFtZUhlYWRlclZlcnNpb24gID0gMTAyLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVy
cm9yX091dE9mSGFuZGxlcyAgICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSVHJhY2tlZENh
bWVyYUVycm9yX0lQQ0ZhaWx1cmUgICAgICAgICAgICAgICAgID0gMTA0LAorICAgICAgIFZSVHJh
Y2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRlZEZvclRoaXNEZXZpY2UgID0gMTA1LAorICAgICAg
IFZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZE1lbW9yeUZhaWx1cmUgICAgICAgID0gMTA2LAor
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5nRmFpbHVyZSAgICAgID0g
MTA3LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX1N0cmVhbVNldHVwRmFpbHVyZSAgICAg
ICAgID0gMTA4LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJ
ZCAgICAgICAgID0gMTA5LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRTaGFy
ZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ZhaWxl
ZFRvR2V0R0xUZXh0dXJlSWQgICAgID0gMTExLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9y
X1NoYXJlZFRleHR1cmVGYWlsdXJlICAgICAgID0gMTEyLAorICAgICAgIFZSVHJhY2tlZENhbWVy
YUVycm9yX05vRnJhbWVBdmFpbGFibGUgICAgICAgICAgID0gMTEzLAorICAgICAgIFZSVHJhY2tl
ZENhbWVyYUVycm9yX0ludmFsaWRBcmd1bWVudCAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZS
VHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUgICAgID0gMTE1LAorfTsK
KworZW51bSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlCit7CisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCA9IDAsICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBp
cyB0aGUgY2FtZXJhIHZpZGVvIGZyYW1lIHNpemUgaW4gcGl4ZWxzLCBzdGlsbCBkaXN0b3J0ZWQu
CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkLCAgICAgICAgICAg
ICAgICAgICAgIC8vIEluIHBpeGVscywgYW4gdW5kaXN0b3J0ZWQgaW5zY3JpYmVkIHJlY3Rhbmds
ZSByZWdpb24gd2l0aG91dCBpbnZhbGlkIHJlZ2lvbnMuIFRoaXMgc2l6ZSBpcyBzdWJqZWN0IHRv
IGNoYW5nZXMgc2hvcnRseS4KKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11
bVVuZGlzdG9ydGVkLCAgICAgICAvLyBJbiBwaXhlbHMsIG1heGltdW0gdW5kaXN0b3J0ZWQgd2l0
aCBpbnZhbGlkIHJlZ2lvbnMuIE5vbiB6ZXJvIGFscGhhIGNvbXBvbmVudCBpZGVudGlmaWVzIHZh
bGlkIHJlZ2lvbnMuCisgICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUworfTsKKwordHlwZWRl
ZiB1aW50NjRfdCBUcmFja2VkQ2FtZXJhSGFuZGxlX3Q7CisjZGVmaW5lIElOVkFMSURfVFJBQ0tF
RF9DQU1FUkFfSEFORExFICAgICAgICgodnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCkwKQorCitz
dHJ1Y3QgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlOworCisgICAgICAgdWludDMyX3QgbldpZHRoOwor
ICAgICAgIHVpbnQzMl90IG5IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbkJ5dGVzUGVyUGl4ZWw7
CisKKyAgICAgICB1aW50MzJfdCBuRnJhbWVTZXF1ZW5jZTsKKworICAgICAgIFRyYWNrZWREZXZp
Y2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK307CisKKy8vIFNjcmVlbnNob3Qg
dHlwZXMKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hvdEhhbmRsZV90OworCitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191blNjcmVlbnNob3RIYW5kbGVJbnZhbGlkID0gMDsKKworI3ByYWdtYSBw
YWNrKCBwb3AgKQorCisvLyBmaWd1cmUgb3V0IGhvdyB0byBpbXBvcnQgZnJvbSB0aGUgVlIgQVBJ
IGRsbAorI2lmIGRlZmluZWQoX1dJTjMyKQorCisjaWZkZWYgVlJfQVBJX0VYUE9SVAorI2RlZmlu
ZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxleHBvcnQgKQorI2Vsc2UK
KyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsaW1wb3J0ICkK
KyNlbmRpZgorCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKENPTVBJTEVSX0dD
QykgfHwgZGVmaW5lZChfX0FQUExFX18pCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVmaW5l
IFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCisjZWxzZQorI2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiAKKyNlbmRpZgor
CisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBQbGF0Zm9ybS4iCisjZW5kaWYKKworCisjaWYg
ZGVmaW5lZCggX1dJTjMyICkKKyNkZWZpbmUgVlJfQ0FMTFRZUEUgX19jZGVjbAorI2Vsc2UKKyNk
ZWZpbmUgVlJfQ0FMTFRZUEUgCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgdnIKKworI2VuZGlm
IC8vIF9JTkNMVURFX1ZSVFlQRVNfSAorCisKKy8vIHZyYW5ub3RhdGlvbi5oCisjaWZkZWYgQVBJ
X0dFTgorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKSBfX2F0dHJpYnV0ZV9fKChhbm5vdGF0
ZSggQVRUUiApKSkKKyNlbHNlCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpCisjZW5kaWYK
KworI2RlZmluZSBWUl9NRVRIT0RfREVTQyhERVNDKSBWUl9DTEFOR19BVFRSKCAiZGVzYzoiICNE
RVNDICI7IiApCisjZGVmaW5lIFZSX0lHTk9SRUFUVFIoKSBWUl9DTEFOR19BVFRSKCAiaWdub3Jl
IiApCisjZGVmaW5lIFZSX09VVF9TVFJVQ1QoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cnVjdDog
OyIgKQorI2RlZmluZSBWUl9PVVRfU1RSSU5HKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmc6
IDsiICkKKyNkZWZpbmUgVlJfT1VUX0FSUkFZX0NBTEwoQ09VTlRFUixGVU5DVElPTixQQVJBTVMp
IFZSX0NMQU5HX0FUVFIoICJvdXRfYXJyYXlfY2FsbDoiICNDT1VOVEVSICIsIiAjRlVOQ1RJT04g
IiwiICNQQVJBTVMgIjsiICkKKyNkZWZpbmUgVlJfT1VUX0FSUkFZX0NPVU5UKENPVU5URVIpIFZS
X0NMQU5HX0FUVFIoICJvdXRfYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBW
Ul9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYXJyYXlfY291bnQ6IiAjQ09V
TlRFUiAiOyIgKQorI2RlZmluZSBWUl9BUlJBWV9DT1VOVF9EKENPVU5URVIsIERFU0MpIFZSX0NM
QU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VOVEVSICI7ZGVzYzoiICNERVNDICkKKyNkZWZp
bmUgVlJfQlVGRkVSX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJidWZmZXJfY291bnQ6
IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9PVVRfQlVGRkVSX0NPVU5UKENPVU5URVIpIFZS
X0NMQU5HX0FUVFIoICJvdXRfYnVmZmVyX2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZpbmUg
VlJfT1VUX1NUUklOR19DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmluZ19j
b3VudDoiICNDT1VOVEVSICI7IiApCisKKy8vIGl2cnN5c3RlbS5oCituYW1lc3BhY2UgdnIKK3sK
KworY2xhc3MgSVZSU3lzdGVtCit7CitwdWJsaWM6CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIERpc3BsYXkgTWV0aG9kcworICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoq
IFN1Z2dlc3RlZCBzaXplIGZvciB0aGUgaW50ZXJtZWRpYXRlIHJlbmRlciB0YXJnZXQgdGhhdCB0
aGUgZGlzdG9ydGlvbiBwdWxscyBmcm9tLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXRSZWNv
bW1lbmRlZFJlbmRlclRhcmdldFNpemUoIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5I
ZWlnaHQgKSA9IDA7CisKKyAgICAgICAvKiogVGhlIHByb2plY3Rpb24gbWF0cml4IGZvciB0aGUg
c3BlY2lmaWVkIGV5ZSAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4NDRfdCBHZXRQcm9qZWN0
aW9uTWF0cml4KCBFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWiApID0gMDsK
KworICAgICAgIC8qKiBUaGUgY29tcG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24g
cHJvamVjdGlvbiBtYXRyaXggaW4gY2FzZSB5b3VyCisgICAgICAgKiBhcHBsaWNhdGlvbiBpcyBk
b2luZyBzb21ldGhpbmcgZmFuY3kgbGlrZSBpbmZpbml0ZSBaICovCisgICAgICAgdmlydHVhbCB2
b2lkIEdldFByb2plY3Rpb25SYXcoIEVWUkV5ZSBlRXllLCBmbG9hdCAqcGZMZWZ0LCBmbG9hdCAq
cGZSaWdodCwgZmxvYXQgKnBmVG9wLCBmbG9hdCAqcGZCb3R0b20gKSA9IDA7CisKKyAgICAgICAv
KiogR2V0cyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZvciB0aGUgc3Bl
Y2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4gCisgICAgICAgKiB0
aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAxLDEgaW4gdGhlIGxvd2Vy
IHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuCisgICAgICAgKiBSZXR1cm5zIHRydWUgZm9y
IHN1Y2Nlc3MuIE90aGVyd2lzZSwgcmV0dXJucyBmYWxzZSwgYW5kIGRpc3RvcnRpb24gY29vcmRp
bmF0ZXMgYXJlIG5vdCBzdWl0YWJsZS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQ29tcHV0ZURp
c3RvcnRpb24oIEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYsIERpc3RvcnRpb25Db29y
ZGluYXRlc190ICpwRGlzdG9ydGlvbkNvb3JkaW5hdGVzICkgPSAwOworCisgICAgICAgLyoqIFJl
dHVybnMgdGhlIHRyYW5zZm9ybSBmcm9tIGV5ZSBzcGFjZSB0byB0aGUgaGVhZCBzcGFjZS4gRXll
IHNwYWNlIGlzIHRoZSBwZXItZXllIGZsYXZvciBvZiBoZWFkCisgICAgICAgKiBzcGFjZSB0aGF0
IHByb3ZpZGVzIHN0ZXJlbyBkaXNwYXJpdHkuIEluc3RlYWQgb2YgTW9kZWwgKiBWaWV3ICogUHJv
amVjdGlvbiB0aGUgc2VxdWVuY2UgaXMgTW9kZWwgKiBWaWV3ICogRXllXi0xICogUHJvamVjdGlv
bi4gCisgICAgICAgKiBOb3JtYWxseSBWaWV3IGFuZCBFeWVeLTEgd2lsbCBiZSBtdWx0aXBsaWVk
IHRvZ2V0aGVyIGFuZCB0cmVhdGVkIGFzIFZpZXcgaW4geW91ciBhcHBsaWNhdGlvbi4gCisgICAg
ICAgKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3QgR2V0RXllVG9IZWFkVHJhbnNmb3Jt
KCBFVlJFeWUgZUV5ZSApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Yg
ZWxhcHNlZCBzZWNvbmRzIHNpbmNlIHRoZSBsYXN0IHJlY29yZGVkIHZzeW5jIGV2ZW50LiBUaGlz
IAorICAgICAgICogICAgICAgd2lsbCBjb21lIGZyb20gYSB2c3luYyB0aW1lciBldmVudCBpbiB0
aGUgdGltZXIgaWYgcG9zc2libGUgb3IgZnJvbSB0aGUgYXBwbGljYXRpb24tcmVwb3J0ZWQKKyAg
ICAgICAqICAgdGltZSBpZiB0aGF0IGlzIG5vdCBhdmFpbGFibGUuIElmIG5vIHZzeW5jIHRpbWVz
IGFyZSBhdmFpbGFibGUgdGhlIGZ1bmN0aW9uIHdpbGwgCisgICAgICAgKiAgIHJldHVybiB6ZXJv
IGZvciB2c3luYyB0aW1lIGFuZCBmcmFtZSBjb3VudGVyIGFuZCByZXR1cm4gZmFsc2UgZnJvbSB0
aGUgbWV0aG9kLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRUaW1lU2luY2VMYXN0VnN5bmMo
IGZsb2F0ICpwZlNlY29uZHNTaW5jZUxhc3RWc3luYywgdWludDY0X3QgKnB1bEZyYW1lQ291bnRl
ciApID0gMDsKKworICAgICAgIC8qKiBbRDNEOSBPbmx5XQorICAgICAgICogUmV0dXJucyB0aGUg
YWRhcHRlciBpbmRleCB0aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8gQ3JlYXRlRGV2aWNl
IHRvIHNldCB1cCBEM0Q5IGluIHN1Y2gKKyAgICAgICAqIGEgd2F5IHRoYXQgaXQgY2FuIGdvIGZ1
bGwgc2NyZWVuIGV4Y2x1c2l2ZSBvbiB0aGUgSE1ELiBSZXR1cm5zIC0xIGlmIHRoZXJlIHdhcyBh
biBlcnJvci4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXREM0Q5QWRhcHRl
ckluZGV4KCkgPSAwOworCisgICAgICAgLyoqIFtEM0QxMC8xMSBPbmx5XQorICAgICAgICogUmV0
dXJucyB0aGUgYWRhcHRlciBpbmRleCB0aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8gRW51
bUFkYXB0ZXJzIHRvIGNyZWF0ZSB0aGUgZGV2aWNlIAorICAgICAgICogYW5kIHN3YXAgY2hhaW4g
aW4gRFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJzIHRoZSBpbmRleCB3aWxsIGJlIHNl
dCB0byAtMS4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXREWEdJT3V0cHV0SW5m
byggaW50MzJfdCAqcG5BZGFwdGVySW5kZXggKSA9IDA7CisgICAgICAgCisgICAgICAgLyoqCisg
ICAgICAgICogUmV0dXJucyBwbGF0Zm9ybS0gYW5kIHRleHR1cmUtdHlwZSBzcGVjaWZpYyBhZGFw
dGVyIGlkZW50aWZpY2F0aW9uIHNvIHRoYXQgYXBwbGljYXRpb25zIGFuZCB0aGUKKyAgICAgICAg
KiBjb21wb3NpdG9yIGFyZSBjcmVhdGluZyB0ZXh0dXJlcyBhbmQgc3dhcCBjaGFpbnMgb24gdGhl
IHNhbWUgR1BVLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhlIGRldmljZQorICAgICAgICAqIHdpbGwg
YmUgc2V0IHRvIDAuCisgICAgICAgICogcEluc3RhbmNlIGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRl
ciB0aGF0IGlzIHJlcXVpcmVkIG9ubHkgd2hlbiB0ZXh0dXJlVHlwZSBpcyBUZXh0dXJlVHlwZV9W
dWxrYW4uCisgICAgICAgICogW0QzRDEwLzExLzEyIE9ubHkgKEQzRDkgTm90IFN1cHBvcnRlZCld
CisgICAgICAgICogIFJldHVybnMgdGhlIGFkYXB0ZXIgTFVJRCB0aGF0IGlkZW50aWZpZXMgdGhl
IEdQVSBhdHRhY2hlZCB0byB0aGUgSE1ELiBUaGUgdXNlciBzaG91bGQKKyAgICAgICAgKiAgZW51
bWVyYXRlIGFsbCBhZGFwdGVycyB1c2luZyBJRFhHSUZhY3Rvcnk6OkVudW1BZGFwdGVycyBhbmQg
SURYR0lBZGFwdGVyOjpHZXREZXNjIHRvIGZpbmQKKyAgICAgICAgKiAgdGhlIGFkYXB0ZXIgd2l0
aCB0aGUgbWF0Y2hpbmcgTFVJRCwgb3IgdXNlIElEWEdJRmFjdG9yeTQ6OkVudW1BZGFwdGVyQnlM
dWlkLgorICAgICAgICAqICBUaGUgZGlzY292ZXJlZCBJRFhHSUFkYXB0ZXIgc2hvdWxkIGJlIHVz
ZWQgdG8gY3JlYXRlIHRoZSBkZXZpY2UgYW5kIHN3YXAgY2hhaW4uCisgICAgICAgICogW1Z1bGth
biBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIHRoZSBWa1BoeXNpY2FsRGV2aWNlIHRoYXQgc2hv
dWxkIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAgICAqICBwSW5zdGFuY2UgbXVz
dCBiZSB0aGUgaW5zdGFuY2UgdGhlIGFwcGxpY2F0aW9uIHdpbGwgdXNlIHRvIHF1ZXJ5IGZvciB0
aGUgVmtQaHlzaWNhbERldmljZS4gIFRoZSBhcHBsaWNhdGlvbgorICAgICAgICAqICBtdXN0IGNy
ZWF0ZSB0aGUgVmtJbnN0YW5jZSB3aXRoIGV4dGVuc2lvbnMgcmV0dXJuZWQgYnkgSVZSQ29tcG9z
aXRvcjo6R2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQgZW5hYmxlZC4KKyAgICAg
ICAgKiBbbWFjT1MgT25seV0KKyAgICAgICAgKiAgUmV0dXJucyBhbiBpZDxNVExEZXZpY2U+IHRo
YXQgc2hvdWxkIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAgICAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBHZXRPdXRwdXREZXZpY2UoIHVpbnQ2NF90ICpwbkRldmljZSwgRVRleHR1
cmVUeXBlIHRleHR1cmVUeXBlLCBWa0luc3RhbmNlX1QgKnBJbnN0YW5jZSA9IG51bGxwdHIgKSA9
IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAvLyBEaXNwbGF5IE1vZGUgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFVzZSB0byBkZXRlcm1pbmUgaWYgdGhl
IGhlYWRzZXQgZGlzcGxheSBpcyBwYXJ0IG9mIHRoZSBkZXNrdG9wIChpLmUuIGV4dGVuZGVkKSBv
ciBoaWRkZW4gKGkuZS4gZGlyZWN0IG1vZGUpLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc0Rp
c3BsYXlPbkRlc2t0b3AoKSA9IDA7CisKKyAgICAgICAvKiogU2V0IHRoZSBkaXNwbGF5IHZpc2li
aWxpdHkgKHRydWUgPSBleHRlbmRlZCwgZmFsc2UgPSBkaXJlY3QgbW9kZSkuICBSZXR1cm4gdmFs
dWUgb2YgdHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2hhbmdlIHdhcyBzdWNjZXNzZnVsLiAqLwor
ICAgICAgIHZpcnR1YWwgYm9vbCBTZXREaXNwbGF5VmlzaWJpbGl0eSggYm9vbCBiSXNWaXNpYmxl
T25EZXNrdG9wICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gVHJhY2tpbmcgTWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFRoZSBwb3NlIHRoYXQg
dGhlIHRyYWNrZXIgdGhpbmtzIHRoYXQgdGhlIEhNRCB3aWxsIGJlIGluIGF0IHRoZSBzcGVjaWZp
ZWQgbnVtYmVyIG9mIHNlY29uZHMgaW50byB0aGUgCisgICAgICAgKiBmdXR1cmUuIFBhc3MgMCB0
byBnZXQgdGhlIHN0YXRlIGF0IHRoZSBpbnN0YW50IHRoZSBtZXRob2QgaXMgY2FsbGVkLiBNb3N0
IG9mIHRoZSB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQKKyAgICAgICAqIGNhbGN1bGF0ZSB0
aGUgdGltZSB1bnRpbCB0aGUgcGhvdG9ucyB3aWxsIGJlIGVtaXR0ZWQgZnJvbSB0aGUgZGlzcGxh
eSBhbmQgcGFzcyB0aGF0IHRpbWUgaW50byB0aGUgbWV0aG9kLgorICAgICAgICoKKyAgICAgICAq
IFRoaXMgaXMgcm91Z2hseSBhbmFsb2dvdXMgdG8gdGhlIGludmVyc2Ugb2YgdGhlIHZpZXcgbWF0
cml4IGluIG1vc3QgYXBwbGljYXRpb25zLCB0aG91Z2ggCisgICAgICAgKiBtYW55IGdhbWVzIHdp
bGwgbmVlZCB0byBkbyBzb21lIGFkZGl0aW9uYWwgcm90YXRpb24gb3IgdHJhbnNsYXRpb24gb24g
dG9wIG9mIHRoZSByb3RhdGlvbgorICAgICAgICogYW5kIHRyYW5zbGF0aW9uIHByb3ZpZGVkIGJ5
IHRoZSBoZWFkIHBvc2UuCisgICAgICAgKgorICAgICAgICogRm9yIGRldmljZXMgd2hlcmUgYlBv
c2VJc1ZhbGlkIGlzIHRydWUgdGhlIGFwcGxpY2F0aW9uIGNhbiB1c2UgdGhlIHBvc2UgdG8gcG9z
aXRpb24gdGhlIGRldmljZQorICAgICAgICogaW4gcXVlc3Rpb24uIFRoZSBwcm92aWRlZCBhcnJh
eSBjYW4gYmUgYW55IHNpemUgdXAgdG8ga191bk1heFRyYWNrZWREZXZpY2VDb3VudC4gCisgICAg
ICAgKgorICAgICAgICogU2VhdGVkIGV4cGVyaWVuY2VzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9k
IHdpdGggVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCBhbmQgcmVjZWl2ZSBwb3NlcyByZWxhdGl2ZQor
ICAgICAgICogdG8gdGhlIHNlYXRlZCB6ZXJvIHBvc2UuIFN0YW5kaW5nIGV4cGVyaWVuY2VzIHNo
b3VsZCBjYWxsIHRoaXMgbWV0aG9kIHdpdGggVHJhY2tpbmdVbml2ZXJzZVN0YW5kaW5nIAorICAg
ICAgICogYW5kIHJlY2VpdmUgcG9zZXMgcmVsYXRpdmUgdG8gdGhlIENoYXBlcm9uZSBQbGF5IEFy
ZWEuIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgc2hvdWxkIAorICAgICAgICog
cHJvYmFibHkgbm90IGJlIHVzZWQgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbiBpcyB0aGUgQ2hhcGVy
b25lIGNhbGlicmF0aW9uIHRvb2wgaXRzZWxmLCBidXQgd2lsbCBwcm92aWRlCisgICAgICAgKiBw
b3NlcyByZWxhdGl2ZSB0byB0aGUgaGFyZHdhcmUtc3BlY2lmaWMgY29vcmRpbmF0ZSBzeXN0ZW0g
aW4gdGhlIGRyaXZlci4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXREZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmdQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBm
bG9hdCBmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3csIFZSX0FSUkFZX0NPVU5UKHVu
VHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50KSBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tl
ZERldmljZVBvc2VBcnJheSwgdWludDMyX3QgdW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQg
KSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgemVybyBwb3NlIGZvciB0aGUgc2VhdGVkIHRy
YWNrZXIgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIHlhdyBv
ZiB0aGUgSE1ELiBBZnRlciAKKyAgICAgICAqIFJlc2V0U2VhdGVkWmVyb1Bvc2UgYWxsIEdldERl
dmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UgY2FsbHMgdGhhdCBwYXNzIFRyYWNraW5nVW5pdmVy
c2VTZWF0ZWQgYXMgdGhlIG9yaWdpbiAKKyAgICAgICAqIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhp
cyBuZXcgemVybyBwb3NlLiBUaGUgbmV3IHplcm8gY29vcmRpbmF0ZSBzeXN0ZW0gd2lsbCBub3Qg
Y2hhbmdlIHRoZSBmYWN0IHRoYXQgdGhlIFkgYXhpcyAKKyAgICAgICAqIGlzIHVwIGluIHRoZSBy
ZWFsIHdvcmxkLCBzbyB0aGUgbmV4dCBwb3NlIHJldHVybmVkIGZyb20gR2V0RGV2aWNlVG9BYnNv
bHV0ZVRyYWNraW5nUG9zZSBhZnRlciBhIGNhbGwgdG8gCisgICAgICAgKiBSZXNldFNlYXRlZFpl
cm9Qb3NlIG1heSBub3QgYmUgZXhhY3RseSBhbiBpZGVudGl0eSBtYXRyaXguCisgICAgICAgKgor
ICAgICAgICogTk9URTogVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIHVzZXIncyBwcmV2aW91
c2x5IHNhdmVkIHNlYXRlZCB6ZXJvIHBvc2UgYW5kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhcyB0
aGUgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uIAorICAgICAgICogVXNlcnMgYXJlIGFsc28gYWJs
ZSB0byBzZXQgdGhlaXIgc2VhdGVkIHplcm8gcG9zZSB2aWEgdGhlIE9wZW5WUiBEYXNoYm9hcmQu
CisgICAgICAgKiovCisgICAgICAgdmlydHVhbCB2b2lkIFJlc2V0U2VhdGVkWmVyb1Bvc2UoKSA9
IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gdGhlIHNlYXRlZCB6
ZXJvIHBvc2UgdG8gdGhlIHN0YW5kaW5nIGFic29sdXRlIHRyYWNraW5nIHN5c3RlbS4gVGhpcyBh
bGxvd3MgCisgICAgICAgKiBhcHBsaWNhdGlvbnMgdG8gcmVwcmVzZW50IHRoZSBzZWF0ZWQgb3Jp
Z2luIHRvIHVzZWQgb3IgdHJhbnNmb3JtIG9iamVjdCBwb3NpdGlvbnMgZnJvbSBvbmUgY29vcmRp
bmF0ZQorICAgICAgICogc3lzdGVtIHRvIHRoZSBvdGhlci4gCisgICAgICAgKgorICAgICAgICog
VGhlIHNlYXRlZCBvcmlnaW4gbWF5IG9yIG1heSBub3QgYmUgaW5zaWRlIHRoZSBQbGF5IEFyZWEg
b3IgQ29sbGlzaW9uIEJvdW5kcyByZXR1cm5lZCBieSBJVlJDaGFwZXJvbmUuIEl0cyBwb3NpdGlv
biAKKyAgICAgICAqIGRlcGVuZHMgb24gd2hhdCB0aGUgdXNlciBoYXMgc2V0IGZyb20gdGhlIERh
c2hib2FyZCBzZXR0aW5ncyBhbmQgcHJldmlvdXMgY2FsbHMgdG8gUmVzZXRTZWF0ZWRaZXJvUG9z
ZS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3QgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0
aGUgdHJhbnNmb3JtIGZyb20gdGhlIHRyYWNraW5nIG9yaWdpbiB0byB0aGUgc3RhbmRpbmcgYWJz
b2x1dGUgdHJhY2tpbmcgc3lzdGVtLiBUaGlzIGFsbG93cworICAgICAgICogYXBwbGljYXRpb25z
IHRvIGNvbnZlcnQgZnJvbSByYXcgdHJhY2tpbmcgc3BhY2UgdG8gdGhlIGNhbGlicmF0ZWQgc3Rh
bmRpbmcgY29vcmRpbmF0ZSBzeXN0ZW0uICovCisgICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90
IEdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkgPSAwOworCisg
ICAgICAgLyoqIEdldCBhIHNvcnRlZCBhcnJheSBvZiBkZXZpY2UgaW5kaWNlcyBvZiBhIGdpdmVu
IGNsYXNzIG9mIHRyYWNrZWQgZGV2aWNlcyAoZS5nLiBjb250cm9sbGVycykuICBEZXZpY2VzIGFy
ZSBzb3J0ZWQgcmlnaHQgdG8gbGVmdAorICAgICAgICogcmVsYXRpdmUgdG8gdGhlIHNwZWNpZmll
ZCB0cmFja2VkIGRldmljZSAoZGVmYXVsdDogaG1kIC0tIHBhc3MgaW4gLTEgZm9yIGFic29sdXRl
IHRyYWNraW5nIHNwYWNlKS4gIFJldHVybnMgdGhlIG51bWJlciBvZiBkZXZpY2VzCisgICAgICAg
KiBpbiB0aGUgbGlzdCwgb3IgdGhlIHNpemUgb2YgdGhlIGFycmF5IG5lZWRlZCBpZiBub3QgbGFy
Z2UgZW5vdWdoLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U29ydGVkVHJhY2tlZERl
dmljZUluZGljZXNPZkNsYXNzKCBFVHJhY2tlZERldmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xh
c3MsIFZSX0FSUkFZX0NPVU5UKHVuVHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCkgdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90ICpwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSwgdWludDMyX3Qg
dW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB2cjo6VHJhY2tlZERldmljZUluZGV4X3Qg
dW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4ID0ga191blRyYWNrZWREZXZpY2VJbmRleF9I
bWQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbGV2ZWwgb2YgYWN0aXZpdHkgb24g
dGhlIGRldmljZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVEZXZpY2VBY3Rpdml0eUxldmVsIEdldFRy
YWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZp
Y2VJZCApID0gMDsKKworICAgICAgIC8qKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGFwcGx5IHRo
ZSBzcGVjaWZpZWQgdHJhbnNmb3JtIHRvIHRoZSBzcGVjaWZpZWQgcG9zZS4KKyAgICAgICAqICAg
VGhpcyBwcm9wZXJseSB0cmFuc2Zvcm1zIGFsbCBwb3NlIGNvbXBvbmVudHMsIGluY2x1ZGluZyB2
ZWxvY2l0eSBhbmQgYW5ndWxhciB2ZWxvY2l0eQorICAgICAgICovCisgICAgICAgdmlydHVhbCB2
b2lkIEFwcGx5VHJhbnNmb3JtKCBUcmFja2VkRGV2aWNlUG9zZV90ICpwT3V0cHV0UG9zZSwgY29u
c3QgVHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlLCBjb25zdCBIbWRNYXRy
aXgzNF90ICpwVHJhbnNmb3JtICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGRldmlj
ZSBpbmRleCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb2xlLCBmb3IgZXhhbXBsZSB0aGUg
bGVmdCBoYW5kIG9yIHRoZSByaWdodCBoYW5kLiAqLworICAgICAgIHZpcnR1YWwgdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlKCB2
cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUgKSA9IDA7CisKKyAgICAgICAv
KiogUmV0dXJucyB0aGUgY29udHJvbGxlciB0eXBlIGFzc29jaWF0ZWQgd2l0aCBhIGRldmljZSBp
bmRleC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdldENv
bnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KCB2cjo6VHJhY2tlZERldmljZUluZGV4
X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFByb3BlcnR5IG1ldGhvZHMKKyAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBSZXR1cm5z
IHRoZSBkZXZpY2UgY2xhc3Mgb2YgYSB0cmFja2VkIGRldmljZS4gSWYgdGhlcmUgaGFzIG5vdCBi
ZWVuIGEgZGV2aWNlIGNvbm5lY3RlZCBpbiB0aGlzIHNsb3QKKyAgICAgICAqIHNpbmNlIHRoZSBh
cHBsaWNhdGlvbiBzdGFydGVkIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gVHJhY2tlZERldmlj
ZV9JbnZhbGlkLiBGb3IgcHJldmlvdXMgZGV0ZWN0ZWQKKyAgICAgICAqIGRldmljZXMgdGhlIGZ1
bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBwcmV2aW91c2x5IG9ic2VydmVkIGRldmljZSBjbGFzcy4g
CisgICAgICAgKgorICAgICAgICogVG8gZGV0ZXJtaW5lIHdoaWNoIGRldmljZXMgZXhpc3Qgb24g
dGhlIHN5c3RlbSwganVzdCBsb29wIGZyb20gMCB0byBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50
IGFuZCBjaGVjaworICAgICAgICogdGhlIGRldmljZSBjbGFzcy4gRXZlcnkgZGV2aWNlIHdpdGgg
c29tZXRoaW5nIG90aGVyIHRoYW4gVHJhY2tlZERldmljZV9JbnZhbGlkIGlzIGFzc29jaWF0ZWQg
d2l0aCBhbiAKKyAgICAgICAqIGFjdHVhbCB0cmFja2VkIGRldmljZS4gKi8KKyAgICAgICB2aXJ0
dWFsIEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5z
IHRydWUgaWYgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVkIGluIHRoaXMgc2xvdC4gKi8KKyAg
ICAgICB2aXJ0dWFsIGJvb2wgSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKCB2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGEg
Ym9vbCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHBy
b3BlcnR5IGlzIG5vdCBhIGJvb2wgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGZhbHNl
LiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisg
ICAgICAgLyoqIFJldHVybnMgYSBmbG9hdCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBp
cyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIGZsb2F0IHR5cGUgdGhpcyBmdW5j
dGlvbiB3aWxsIHJldHVybiAwLiAqLworICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RmxvYXRUcmFj
a2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVy
cm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhbiBpbnQgcHJvcGVydHkuIElm
IHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBp
bnQgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVhbCBp
bnQzMl90IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
YSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRo
ZSBwcm9wZXJ0eSBpcyBub3QgYSB1aW50NjQgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJu
IDAuICovCisgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJv
cGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9
IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIG1hdHJpeCBwcm9wZXJ0eS4gSWYgdGhlIGRldmlj
ZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIG1hdHJpeCB0eXBl
LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGlkZW50aXR5LiAqLworICAgICAgIHZpcnR1YWwg
SG1kTWF0cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJv
cCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAgICAgIC8q
KiBSZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2
YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgc3RyaW5nIHR5cGUgdGhpcyBmdW5jdGlvbiB3
aWxsIAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGgg
b2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNs
dWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZp
dCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8K
KyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSgg
dnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1
ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAg
ICAgICAvKiogcmV0dXJucyBhIHN0cmluZyB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIHNwZWNp
ZmllZCBwcm9wZXJ0eSBlcnJvci4gVGhlIHN0cmluZyB3aWxsIGJlIHRoZSBuYW1lIAorICAgICAg
ICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLwor
ICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKCBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgZXJyb3IgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBFdmVudCBtZXRob2RzCisgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogUmV0
dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0aGUgbmV4dCBldmVudCBvbiB0aGUg
cXVldWUgaWYgdGhlcmUgaXMgb25lLiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzCisgICAgICAgKiB0
aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNpemUg
aW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
UG9sbE5leHRFdmVudCggVlJFdmVudF90ICpwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50ICkg
PSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGgg
dGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRoZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJl
IG5vIGV2ZW50cworICAgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS4gRmlsbHMgaW4g
dGhlIHBvc2Ugb2YgdGhlIGFzc29jaWF0ZWQgdHJhY2tlZCBkZXZpY2UgaW4gdGhlIHByb3ZpZGVk
IHBvc2Ugc3RydWN0LiAKKyAgICAgICAqIFRoaXMgcG9zZSB3aWxsIGFsd2F5cyBiZSBvbGRlciB0
aGFuIHRoZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgdXNlZCB0byBy
ZW5kZXIgdGhlIGRldmljZS4gCisgICAgICAgdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXpl
IGluIGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCisgICAgICAgdmlydHVhbCBib29s
IFBvbGxOZXh0RXZlbnRXaXRoUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwg
VlJFdmVudF90ICpwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50LCB2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMg
dGhlIG5hbWUgb2YgYW4gRVZSRXZlbnQgZW51bSB2YWx1ZSAqLworICAgICAgIHZpcnR1YWwgY29u
c3QgY2hhciAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKCBFVlJFdmVudFR5cGUgZVR5cGUgKSA9
IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAvLyBSZW5kZXJpbmcgaGVscGVyIG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBoaWRkZW4g
YXJlYSBtZXNoIGZvciB0aGUgY3VycmVudCBITUQuIFRoZSBwaXhlbHMgY292ZXJlZCBieSB0aGlz
IG1lc2ggd2lsbCBuZXZlciBiZSBzZWVuIGJ5IHRoZSB1c2VyIGFmdGVyIHRoZSBsZW5zIGRpc3Rv
cnRpb24gaXMKKyAgICAgICAqIGFwcGxpZWQgYmFzZWQgb24gdmlzaWJpbGl0eSB0byB0aGUgcGFu
ZWxzLiBJZiB0aGlzIEhNRCBkb2VzIG5vdCBoYXZlIGEgaGlkZGVuIGFyZWEgbWVzaCwgdGhlIHZl
cnRleCBkYXRhIGFuZCBjb3VudCB3aWxsIGJlIE5VTEwgYW5kIDAgcmVzcGVjdGl2ZWx5LgorICAg
ICAgICogVGhpcyBtZXNoIGlzIG1lYW50IHRvIGJlIHJlbmRlcmVkIGludG8gdGhlIHN0ZW5jaWwg
YnVmZmVyIChvciBpbnRvIHRoZSBkZXB0aCBidWZmZXIgc2V0dGluZyBuZWFyeikgYmVmb3JlIHJl
bmRlcmluZyBlYWNoIGV5ZSdzIHZpZXcuIAorICAgICAgICogVGhpcyB3aWxsIGltcHJvdmUgcGVy
Zm9ybWFuY2UgYnkgbGV0dGluZyB0aGUgR1BVIGVhcmx5LXJlamVjdCBwaXhlbHMgdGhlIHVzZXIg
d2lsbCBuZXZlciBzZWUgYmVmb3JlIHJ1bm5pbmcgdGhlIHBpeGVsIHNoYWRlci4KKyAgICAgICAq
IE5PVEU6IFJlbmRlciB0aGlzIG1lc2ggd2l0aCBiYWNrZmFjZSBjdWxsaW5nIGRpc2FibGVkIHNp
bmNlIHRoZSB3aW5kaW5nIG9yZGVyIG9mIHRoZSB2ZXJ0aWNlcyBjYW4gYmUgZGlmZmVyZW50IHBl
ci1ITUQgb3IgcGVyLWV5ZS4KKyAgICAgICAqIFNldHRpbmcgdGhlIGJJbnZlcnNlIGFyZ3VtZW50
IHRvIHRydWUgd2lsbCBwcm9kdWNlIHRoZSB2aXNpYmxlIGFyZWEgbWVzaCB0aGF0IGlzIGNvbW1v
bmx5IHVzZWQgaW4gcGxhY2Ugb2YgZnVsbC1zY3JlZW4gcXVhZHMuIFRoZSB2aXNpYmxlIGFyZWEg
bWVzaCBjb3ZlcnMgYWxsIG9mIHRoZSBwaXhlbHMgdGhlIGhpZGRlbiBhcmVhIG1lc2ggZG9lcyBu
b3QgY292ZXIuCisgICAgICAgKiBTZXR0aW5nIHRoZSBiTGluZUxvb3AgYXJndW1lbnQgd2lsbCBy
ZXR1cm4gYSBsaW5lIGxvb3Agb2YgdmVydGljZXMgaW4gSGlkZGVuQXJlYU1lc2hfdC0+cFZlcnRl
eERhdGEgd2l0aCBIaWRkZW5BcmVhTWVzaF90LT51blRyaWFuZ2xlQ291bnQgc2V0IHRvIHRoZSBu
dW1iZXIgb2YgdmVydGljZXMuCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEhpZGRlbkFyZWFN
ZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUgPSBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCApID0gMDsKKworICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIENvbnRyb2xsZXIg
bWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgLyoqIEZpbGxzIHRoZSBzdXBwbGllZCBzdHJ1Y3Qgd2l0aCB0aGUgY3VycmVudCBz
dGF0ZSBvZiB0aGUgY29udHJvbGxlci4gUmV0dXJucyBmYWxzZSBpZiB0aGUgY29udHJvbGxlciBp
bmRleAorICAgICAgICogaXMgaW52YWxpZC4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q29u
dHJvbGxlclN0YXRlKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNl
SW5kZXgsIHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29udHJvbGxlclN0YXRlLCB1aW50MzJf
dCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUgKSA9IDA7CisKKyAgICAgICAvKiogZmlsbHMgdGhlIHN1
cHBsaWVkIHN0cnVjdCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb250cm9sbGVyIGFu
ZCB0aGUgcHJvdmlkZWQgcG9zZSB3aXRoIHRoZSBwb3NlIG9mIAorICAgICAgICogdGhlIGNvbnRy
b2xsZXIgd2hlbiB0aGUgY29udHJvbGxlciBzdGF0ZSB3YXMgdXBkYXRlZCBtb3N0IHJlY2VudGx5
LiBVc2UgdGhpcyBmb3JtIGlmIHlvdSBuZWVkIGEgcHJlY2lzZSBjb250cm9sbGVyCisgICAgICAg
KiBwb3NlIGFzIGlucHV0IHRvIHlvdXIgYXBwbGljYXRpb24gd2hlbiB0aGUgdXNlciBwcmVzc2Vz
IG9yIHJlbGVhc2VzIGEgYnV0dG9uLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDb250cm9s
bGVyU3RhdGVXaXRoUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB2cjo6VlJDb250cm9s
bGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9sbGVyU3RhdGVT
aXplLCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UgKSA9IDA7CisKKyAg
ICAgICAvKiogVHJpZ2dlciBhIHNpbmdsZSBoYXB0aWMgcHVsc2Ugb24gYSBjb250cm9sbGVyLiBB
ZnRlciB0aGlzIGNhbGwgdGhlIGFwcGxpY2F0aW9uIG1heSBub3QgdHJpZ2dlciBhbm90aGVyIGhh
cHRpYyBwdWxzZSBvbiB0aGlzIGNvbnRyb2xsZXIKKyAgICAgICAqIGFuZCBheGlzIGNvbWJpbmF0
aW9uIGZvciA1bXMuICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyaWdnZXJIYXB0aWNQdWxzZSgg
dnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB1aW50MzJf
dCB1bkF4aXNJZCwgdW5zaWduZWQgc2hvcnQgdXNEdXJhdGlvbk1pY3JvU2VjICkgPSAwOworCisg
ICAgICAgLyoqIHJldHVybnMgdGhlIG5hbWUgb2YgYW4gRVZSQnV0dG9uSWQgZW51bSB2YWx1ZSAq
LworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oIEVW
UkJ1dHRvbklkIGVCdXR0b25JZCApID0gMDsKKworICAgICAgIC8qKiByZXR1cm5zIHRoZSBuYW1l
IG9mIGFuIEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlbnVtIHZhbHVlICovCisgICAgICAgdmlydHVh
bCBjb25zdCBjaGFyICpHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oIEVWUkNvbnRy
b2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUgKSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgT3BlblZS
IHRoYXQgdGhpcyBwcm9jZXNzIHdhbnRzIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gY29udHJvbGxlciBi
dXR0b24gc3RhdGVzIGFuZCBidXR0b24gZXZlbnRzLiBPdGhlciBhcHBzIHdpbGwgYmUgbm90aWZp
ZWQgdGhhdCAKKyAgICAgICAqIHRoZXkgaGF2ZSBsb3N0IGlucHV0IGZvY3VzIHdpdGggYSBWUkV2
ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCBldmVudC4gUmV0dXJucyBmYWxzZSBpZiBpbnB1dCBmb2N1
cyBjb3VsZCBub3QgYmUgY2FwdHVyZWQgZm9yCisgICAgICAgKiBzb21lIHJlYXNvbi4gKi8KKyAg
ICAgICB2aXJ0dWFsIGJvb2wgQ2FwdHVyZUlucHV0Rm9jdXMoKSA9IDA7CisKKyAgICAgICAvKiog
VGVsbHMgT3BlblZSIHRoYXQgdGhpcyBwcm9jZXNzIG5vIGxvbmdlciB3YW50cyBleGNsdXNpdmUg
YWNjZXNzIHRvIGJ1dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBldmVudHMuIE90aGVyIGFwcHMgd2ls
bCBiZSBub3RpZmllZCAKKyAgICAgICAqIHRoYXQgaW5wdXQgZm9jdXMgaGFzIGJlZW4gcmVsZWFz
ZWQgd2l0aCBhIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkIGV2ZW50LiAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5z
IHRydWUgaWYgaW5wdXQgZm9jdXMgaXMgY2FwdHVyZWQgYnkgYW5vdGhlciBwcm9jZXNzLiAqLwor
ICAgICAgIHZpcnR1YWwgYm9vbCBJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3Mo
KSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBEZWJ1ZyBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogU2VuZHMgYSByZXF1ZXN0IHRvIHRoZSBkcml2
ZXIgZm9yIHRoZSBzcGVjaWZpZWQgZGV2aWNlIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS4gVGhl
IG1heGltdW0gcmVzcG9uc2Ugc2l6ZSBpcyAzMmssCisgICAgICAgKiBidXQgdGhpcyBtZXRob2Qg
Y2FuIGJlIGNhbGxlZCB3aXRoIGEgc21hbGxlciBidWZmZXIuIElmIHRoZSByZXNwb25zZSBleGNl
ZWRzIHRoZSBzaXplIG9mIHRoZSBidWZmZXIsIGl0IGlzIHRydW5jYXRlZC4gCisgICAgICAgKiBU
aGUgc2l6ZSBvZiB0aGUgcmVzcG9uc2UgaW5jbHVkaW5nIGl0cyB0ZXJtaW5hdGluZyBudWxsIGlz
IHJldHVybmVkLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgRHJpdmVyRGVidWdSZXF1ZXN0
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgY29uc3QgY2hhciAqcGNo
UmVxdWVzdCwgY2hhciAqcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZm
ZXJTaXplICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gRmlybXdhcmUgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIC8qKiBQZXJmb3JtcyB0
aGUgYWN0dWFsIGZpcm13YXJlIHVwZGF0ZSBpZiBhcHBsaWNhYmxlLiAKKyAgICAgICAgKiBUaGUg
Zm9sbG93aW5nIGV2ZW50cyB3aWxsIGJlIHNlbnQsIGlmIFZSRmlybXdhcmVFcnJvcl9Ob25lIHdh
cyByZXR1cm5lZDogVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQsIFZSRXZlbnRfRmlybXdh
cmVVcGRhdGVGaW5pc2hlZCAKKyAgICAgICAgKiBVc2UgdGhlIHByb3BlcnRpZXMgUHJvcF9GaXJt
d2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCwgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9v
bCwgYW5kIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZworICAgICAgICAqIHRv
IGZpZ3VyZSBvdXIgd2hldGhlciBhIGZpcm13YXJlIHVwZGF0ZSBpcyBhdmFpbGFibGUsIGFuZCB0
byBmaWd1cmUgb3V0IHdoZXRoZXIgaXRzIGEgbWFudWFsIHVwZGF0ZSAKKyAgICAgICAgKiBQcm9w
X0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgc2hvdWxkIHBvaW50IHRvIGFuIFVSTCBk
ZXNjcmliaW5nIHRoZSBtYW51YWwgdXBkYXRlIHByb2Nlc3MgKi8KKyAgICAgICB2aXJ0dWFsIHZy
OjpFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZSggdnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90IHVuRGV2aWNlSW5kZXggKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBBcHBsaWNhdGlvbiBsaWZlIGN5Y2xl
IG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8gYWNrbm93bGVkZ2UgdG8gdGhlIHN5c3RlbSB0aGF0
IFZSRXZlbnRfUXVpdCBoYXMgYmVlbiByZWNlaXZlZCBhbmQgdGhhdCB0aGUgcHJvY2VzcyBpcyBl
eGl0aW5nLgorICAgICAgICogVGhpcyBleHRlbmRzIHRoZSB0aW1lb3V0IHVudGlsIHRoZSBwcm9j
ZXNzIGlzIGtpbGxlZC4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQWNrbm93bGVkZ2VRdWl0X0V4
aXRpbmcoKSA9IDA7CisKKyAgICAgICAvKiogQ2FsbCB0aGlzIHRvIHRlbGwgdGhlIHN5c3RlbSB0
aGF0IHRoZSB1c2VyIGlzIGJlaW5nIHByb21wdGVkIHRvIHNhdmUgZGF0YS4gVGhpcworICAgICAg
ICogaGFsdHMgdGhlIHRpbWVvdXQgYW5kIGRpc21pc3NlcyB0aGUgZGFzaGJvYXJkIChpZiBpdCB3
YXMgdXApLiBBcHBsaWNhdGlvbnMgc2hvdWxkIGJlIHN1cmUgdG8gYWN0dWFsbHkgCisgICAgICAg
KiBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSBhbmQgdGhlbiBleGl0IGFmdGVyd2FyZCwgb3RoZXJ3
aXNlIHRoZSB1c2VyIHdpbGwgYmUgbGVmdCBpbiBhIGNvbmZ1c2luZyBzdGF0ZS4gKi8KKyAgICAg
ICB2aXJ0dWFsIHZvaWQgQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKSA9IDA7CisKK307CisK
K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU3lzdGVtX1ZlcnNpb24gPSAiSVZSU3lzdGVt
XzAxNyI7CisKK30KKworCisvLyBpdnJhcHBsaWNhdGlvbnMuaAorbmFtZXNwYWNlIHZyCit7CisK
KyAgICAgICAvKiogVXNlZCBmb3IgYWxsIGVycm9ycyByZXBvcnRlZCBieSB0aGUgSVZSQXBwbGlj
YXRpb25zIGludGVyZmFjZSAqLworICAgICAgIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgorICAg
ICAgIHsKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgPSAwLAorCisgICAg
ICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlBbHJlYWR5RXhpc3RzID0gMTAwLCAg
ICAgICAvLyBPbmx5IG9uZSBhcHBsaWNhdGlvbiBjYW4gdXNlIGFueSBnaXZlbiBrZXkKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vTWFuaWZlc3QgPSAxMDEsICAgICAgICAgICAg
ICAgICAgICAgLy8gdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gZG9lcyBub3QgaGF2ZSBhIG1hbmlm
ZXN0CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uID0gMTAy
LCAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRJbmRleCA9IDEwMywKKyAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBsaWNhdGlvbiA9IDEwNCwgICAgICAg
Ly8gdGhlIGFwcGxpY2F0aW9uIGNvdWxkIG5vdCBiZSBmb3VuZAorICAgICAgICAgICAgICBWUkFw
cGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVkID0gMTA1LCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBBbiBJUEMgZmFpbHVyZSBjYXVzZWQgdGhlIHJlcXVlc3QgdG8gZmFpbAorICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwg
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZlc3QgPSAxMDcs
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkQXBwbGljYXRpb24gPSAx
MDgsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hGYWlsZWQgPSAxMDks
ICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb2Nlc3MgZGlkbid0IHN0YXJ0CisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDEx
MCwgLy8gdGhlIHN5c3RlbSB3YXMgYWxyZWFkeSBzdGFydGluZyB0aGUgc2FtZSBhcHBsaWNhdGlv
bgorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyA9IDEx
MSwgICAgICAgICAgICAgIC8vIFRoZSBzeXN0ZW0gd2FzIGFscmVhZHkgc3RhcnRpbmcgYSBkaWZm
ZXJlbnQgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX09sZEFw
cGxpY2F0aW9uUXVpdHRpbmcgPSAxMTIsIAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJy
b3JfVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25F
cnJvcl9Jc1RlbXBsYXRlID0gMTE0LCAvLyBlcnJvciB3aGVuIHlvdSB0cnkgdG8gY2FsbCBMYXVu
Y2hBcHBsaWNhdGlvbigpIG9uIGEgdGVtcGxhdGUgdHlwZSBhcHAgKHVzZSBMYXVuY2hUZW1wbGF0
ZUFwcGxpY2F0aW9uKQorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfU3RlYW1WUklz
RXhpdGluZyA9IDExNSwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfQnVmZmVy
VG9vU21hbGwgPSAyMDAsICAgICAgICAgICAgICAvLyBUaGUgcHJvdmlkZWQgYnVmZmVyIHdhcyB0
b28gc21hbGwgdG8gZml0IHRoZSByZXF1ZXN0ZWQgZGF0YQorICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQgPSAyMDEsICAgICAgICAgICAgICAvLyBUaGUgcmVx
dWVzdGVkIHByb3BlcnR5IHdhcyBub3Qgc2V0CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25F
cnJvcl9Vbmtub3duUHJvcGVydHkgPSAyMDIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25F
cnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAzLAorICAgICAgIH07CisKKyAgICAgICAvKiogVGhl
IG1heGltdW0gbGVuZ3RoIG9mIGFuIGFwcGxpY2F0aW9uIGtleSAqLworICAgICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggPSAxMjg7CisKKyAgICAg
ICAvKiogdGhlc2UgYXJlIHRoZSBwcm9wZXJ0aWVzIGF2YWlsYWJsZSBvbiBhcHBsaWNhdGlvbnMu
ICovCisgICAgICAgZW51bSBFVlJBcHBsaWNhdGlvblByb3BlcnR5CisgICAgICAgeworICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAwLAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9M
YXVuY2hUeXBlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTEsCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyAgICAgICA9IDEy
LAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICA9IDEzLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJv
cGVydHlfQXJndW1lbnRzX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTQsCisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTUsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rl
c2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSA1MCwKKyAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MSwK
KyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICA9IDUyLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVy
dHlfU291cmNlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUzLAorCisgICAg
ICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbCAg
ICAgICA9IDYwLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0
ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MSwKKyAgICAgICAgICAgICAgVlJBcHBsaWNh
dGlvblByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYyLAor
ICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnRlcm5hbF9Cb29sICAgICAg
ICAgICAgICAgICAgICAgPSA2MywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5
X1dhbnRzQ29tcG9zaXRvclBhdXNlSW5TdGFuZGJ5X0Jvb2wgPSA2NCwKKworICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0ICAgICAgICAgICAg
ICA9IDcwLAorICAgICAgIH07CisKKyAgICAgICAvKiogVGhlc2UgYXJlIHN0YXRlcyB0aGUgc2Nl
bmUgYXBwbGljYXRpb24gc3RhcnR1cCBwcm9jZXNzIHdpbGwgZ28gdGhyb3VnaC4gKi8KKyAgICAg
ICBlbnVtIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlCisgICAgICAgeworICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9Ob25lID0gMCwKKworICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCA9IDEwLAorICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2ggPSAxMSwK
KyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05l
d0FwcExhdW5jaGVkID0gMjAsCisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBBcHBPdmVycmlk
ZUtleXNfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGNoS2V5OworICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpwY2hWYWx1ZTsKKyAgICAgICB9OworCisgICAgICAgLyoq
IEN1cnJlbnRseSByZWNvZ25pemVkIG1pbWUgdHlwZXMgKi8KKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX01pbWVUeXBlX0hvbWVBcHAgICAgICAgICAgICAgID0gInZyL2hv
bWUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTWltZVR5cGVfR2Ft
ZVRoZWF0ZXIgICAgICAgPSAidnIvZ2FtZV90aGVhdGVyIjsKKworICAgICAgIGNsYXNzIElWUkFw
cGxpY2F0aW9ucworICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tICBBcHBsaWNhdGlvbiBtYW5hZ2VtZW50ICAtLS0tLS0tLS0tLS0tLS0g
Ly8KKworICAgICAgICAgICAgICAvKiogQWRkcyBhbiBhcHBsaWNhdGlvbiBtYW5pZmVzdCB0byB0
aGUgbGlzdCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIGFwcGxp
Y2F0aW9ucy4gCisgICAgICAgICAgICAgICogVGVtcG9yYXJ5IG1hbmlmZXN0cyBhcmUgbm90IGF1
dG9tYXRpY2FsbHkgbG9hZGVkICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRp
b25FcnJvciBBZGRBcHBsaWNhdGlvbk1hbmlmZXN0KCBjb25zdCBjaGFyICpwY2hBcHBsaWNhdGlv
bk1hbmlmZXN0RnVsbFBhdGgsIGJvb2wgYlRlbXBvcmFyeSA9IGZhbHNlICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZW1vdmVzIGFuIGFwcGxpY2F0aW9uIG1hbmlmZXN0IGZyb20gdGhlIGxp
c3QgdG8gbG9hZCB3aGVuIGJ1aWxkaW5nIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBhcHBsaWNhdGlv
bnMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBSZW1vdmVB
cHBsaWNhdGlvbk1hbmlmZXN0KCBjb25zdCBjaGFyICpwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVs
bFBhdGggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBhbiBhcHBs
aWNhdGlvbiBpcyBpbnN0YWxsZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzQXBw
bGljYXRpb25JbnN0YWxsZWQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFwcGxpY2F0aW9ucyBhdmFpbGFibGUg
aW4gdGhlIGxpc3QgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRBcHBsaWNh
dGlvbkNvdW50KCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBrZXkgb2Yg
dGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbi4gVGhlIGluZGV4IGlzIGF0IGxlYXN0IDAgYW5kIGlz
IGxlc3MgdGhhbiB0aGUgcmV0dXJuIAorICAgICAgICAgICAgICAqIHZhbHVlIG9mIEdldEFwcGxp
Y2F0aW9uQ291bnQoKS4gVGhlIGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3Qga191bk1heEFwcGxp
Y2F0aW9uS2V5TGVuZ3RoIGluIG9yZGVyIHRvIAorICAgICAgICAgICAgICAqIGZpdCB0aGUga2V5
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0QXBwbGlj
YXRpb25LZXlCeUluZGV4KCB1aW50MzJfdCB1bkFwcGxpY2F0aW9uSW5kZXgsIFZSX09VVF9TVFJJ
TkcoKSBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGFwcGxpY2F0
aW9uIGZvciB0aGUgc3BlY2lmaWVkIFByb2Nlc3MgSWQuIFRoZSBidWZmZXIgc2hvdWxkIGJlIGF0
IGxlYXN0IAorICAgICAgICAgICAgICAqIGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCBpbiBv
cmRlciB0byBmaXQgdGhlIGtleS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNh
dGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQoIHVpbnQzMl90IHVuUHJvY2Vz
c0lkLCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyB0aGUgYXBwbGljYXRpb24uIFRoZSBl
eGlzdGluZyBzY2VuZSBhcHBsaWNhdGlvbiB3aWxsIGV4aXQgYW5kIHRoZW4gdGhlIG5ldyBhcHBs
aWNhdGlvbiB3aWxsIHN0YXJ0LgorICAgICAgICAgICAgICAqIFRoaXMgY2FsbCBpcyBub3QgdmFs
aWQgZm9yIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9ucy4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxpY2F0aW9uKCBjb25zdCBjaGFy
ICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIExhdW5jaGVzIGFuIGluc3Rh
bmNlIG9mIGFuIGFwcGxpY2F0aW9uIG9mIHR5cGUgdGVtcGxhdGUsIHdpdGggaXRzIGFwcCBrZXkg
YmVpbmcgcGNoTmV3QXBwS2V5ICh3aGljaCBtdXN0IGJlIHVuaXF1ZSkgYW5kIG9wdGlvbmFsbHkg
b3ZlcnJpZGUgc2VjdGlvbnMKKyAgICAgICAgICAgICAgKiBmcm9tIHRoZSBtYW5pZmVzdCBmaWxl
IHZpYSBBcHBPdmVycmlkZUtleXNfdAorICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbiggY29u
c3QgY2hhciAqcGNoVGVtcGxhdGVBcHBLZXksIGNvbnN0IGNoYXIgKnBjaE5ld0FwcEtleSwgVlJf
QVJSQVlfQ09VTlQoIHVuS2V5cyApIGNvbnN0IEFwcE92ZXJyaWRlS2V5c190ICpwS2V5cywgdWlu
dDMyX3QgdW5LZXlzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBsYXVuY2hlcyB0aGUgYXBw
bGljYXRpb24gY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1pbWUgdHlwZSBhbmQgcGFz
c2VzIGl0IHRoZSBvcHRpb24gYXJncywgdHlwaWNhbGx5IHRoZSBmaWxlbmFtZSBvciBvYmplY3Qg
bmFtZSBvZiB0aGUgaXRlbSBiZWluZyBsYXVuY2hlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlKCBj
b25zdCBjaGFyICpwY2hNaW1lVHlwZSwgY29uc3QgY2hhciAqcGNoQXJncyApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogTGF1bmNoZXMgdGhlIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9u
IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJ1bm5pbmcuIFRoaXMgY2FsbCBpcyBvbmx5IHZhbGlkIGZv
ciAKKyAgICAgICAgICAgICAgKiBkYXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbnMuICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hEYXNoYm9hcmRP
dmVybGF5KCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IENhbmNlbCBhIHBlbmRpbmcgbGF1bmNoIGZvciBhbiBhcHBsaWNhdGlvbiAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIGJvb2wgQ2FuY2VsQXBwbGljYXRpb25MYXVuY2goIGNvbnN0IGNoYXIgKnBj
aEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogSWRlbnRpZmllcyBhIHJ1bm5pbmcg
YXBwbGljYXRpb24uIE9wZW5WUiBjYW4ndCBhbHdheXMgdGVsbCB3aGljaCBwcm9jZXNzIHN0YXJ0
ZWQgaW4gcmVzcG9uc2UKKyAgICAgICAgICAgICAgKiB0byBhIFVSTC4gVGhpcyBmdW5jdGlvbiBh
bGxvd3MgYSBVUkwgaGFuZGxlciAob3IgdGhlIHByb2Nlc3MgaXRzZWxmKSB0byBpZGVudGlmeSB0
aGUgYXBwIGtleSAKKyAgICAgICAgICAgICAgKiBmb3IgdGhlIG5vdyBydW5uaW5nIGFwcGxpY2F0
aW9uLiBQYXNzaW5nIGEgcHJvY2VzcyBJRCBvZiAwIGlkZW50aWZpZXMgdGhlIGNhbGxpbmcgcHJv
Y2Vzcy4gCisgICAgICAgICAgICAgICogVGhlIGFwcGxpY2F0aW9uIG11c3QgYmUgb25lIHRoYXQn
cyBrbm93biB0byB0aGUgc3lzdGVtIHZpYSBhIGNhbGwgdG8gQWRkQXBwbGljYXRpb25NYW5pZmVz
dC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIElkZW50aWZ5
QXBwbGljYXRpb24oIHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjb25zdCBjaGFyICpwY2hBcHBLZXkg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHByb2Nlc3MgSUQgZm9yIGFu
IGFwcGxpY2F0aW9uLiBSZXR1cm4gMCBpZiB0aGUgYXBwbGljYXRpb24gd2FzIG5vdCBmb3VuZCBv
ciBpcyBub3QgcnVubmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRB
cHBsaWNhdGlvblByb2Nlc3NJZCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhbiBhcHBsaWNhdGlvbnMgZXJyb3Ig
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRBcHBsaWNhdGlvbnNFcnJv
ck5hbWVGcm9tRW51bSggRVZSQXBwbGljYXRpb25FcnJvciBlcnJvciApID0gMDsKKworICAgICAg
ICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0aW9uIHByb3BlcnRpZXMgIC0tLS0t
LS0tLS0tLS0tLSAvLworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgdmFsdWUgZm9yIGFu
IGFwcGxpY2F0aW9uIHByb3BlcnR5LiBUaGUgcmVxdWlyZWQgYnVmZmVyIHNpemUgdG8gZml0IHRo
aXMgdmFsdWUgd2lsbCBiZSByZXR1cm5lZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50
MzJfdCBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKCBjb25zdCBjaGFyICpwY2hBcHBLZXks
IEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAq
cGNoUHJvcGVydHlWYWx1ZUJ1ZmZlciwgdWludDMyX3QgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVu
LCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogUmV0dXJucyBhIGJvb2wgdmFsdWUgZm9yIGFuIGFwcGxpY2F0aW9uIHByb3Bl
cnR5LiBSZXR1cm5zIGZhbHNlIGluIGFsbCBlcnJvciBjYXNlcy4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBib29sIEdldEFwcGxpY2F0aW9uUHJvcGVydHlCb29sKCBjb25zdCBjaGFyICpwY2hB
cHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJu
cyBhIHVpbnQ2NCB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24gcHJvcGVydHkuIFJldHVybnMgMCBp
biBhbGwgZXJyb3IgY2FzZXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDY0X3QgR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBFVlJBcHBs
aWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFwcGxpY2F0aW9u
IGF1dG8tbGF1bmNoIGZsYWcuIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgYXBwbGljYXRpb25zIHdo
aWNoIHJldHVybiB0cnVlIGZvciBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVy
bGF5X0Jvb2wuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBT
ZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2goIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgYm9vbCBiQXV0
b0xhdW5jaCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYXBwbGljYXRpb24g
YXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBhcHBsaWNhdGlvbnMgd2hp
Y2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJs
YXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBBZGRzIHRoaXMgbWltZS10eXBlIHRvIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBtaW1lIHR5cGVz
IGZvciB0aGlzIGFwcGxpY2F0aW9uKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNh
dGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKCBjb25zdCBjaGFyICpw
Y2hBcHBLZXksIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiByZXR1cm4gdGhlIGFwcCBrZXkgdGhhdCB3aWxsIG9wZW4gdGhpcyBtaW1lIHR5cGUgKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlKCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSwgY2hhciAqcGNoQXBwS2V5QnVmZmVyLCB1aW50
MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRo
ZSBsaXN0IG9mIHN1cHBvcnRlZCBtaW1lIHR5cGVzIGZvciB0aGlzIGFwcGxpY2F0aW9uLCBjb21t
YS1kZWxpbWl0ZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEFwcGxpY2F0aW9u
U3VwcG9ydGVkTWltZVR5cGVzKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIGNoYXIgKnBjaE1pbWVU
eXBlc0J1ZmZlciwgdWludDMyX3QgdW5NaW1lVHlwZXNCdWZmZXIgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIEdldCB0aGUgbGlzdCBvZiBhcHAta2V5cyB0aGF0IHN1cHBvcnQgdGhpcyBtaW1l
IHR5cGUsIGNvbW1hLWRlbGltaXRlZCwgdGhlIHJldHVybiB2YWx1ZSBpcyBudW1iZXIgb2YgYnl0
ZXMgeW91IG5lZWQgdG8gcmV0dXJuIHRoZSBmdWxsIHN0cmluZyAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUoIGNvbnN0
IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVp
bnQzMl90IHVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBHZXQgdGhlIGFyZ3MgbGlzdCBmcm9tIGFuIGFwcCBsYXVuY2ggdGhhdCBoYWQgdGhlIHBy
b2Nlc3MgYWxyZWFkeSBydW5uaW5nLCB5b3UgY2FsbCB0aGlzIHdoZW4geW91IGdldCBhIFZSRXZl
bnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50
MzJfdCBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cyggdWludDMyX3QgdW5IYW5kbGUsIGNo
YXIgKnBjaEFyZ3MsIHVpbnQzMl90IHVuQXJncyApID0gMDsKKworICAgICAgICAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0gIFRyYW5zaXRpb24gbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0gLy8KKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgYXBwIGtleSBmb3IgdGhlIGFwcGxpY2F0aW9u
IHRoYXQgaXMgc3RhcnRpbmcgdXAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNh
dGlvbkVycm9yIEdldFN0YXJ0aW5nQXBwbGljYXRpb24oIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwg
dWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJl
dHVybnMgdGhlIGFwcGxpY2F0aW9uIHRyYW5zaXRpb24gc3RhdGUgKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9uU3RhdGUo
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgZXJyb3JzIHRoYXQgd291bGQgcHJl
dmVudCB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uIGZyb20gbGF1bmNoaW5nIGltbWVkaWF0ZWx5
LiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICAgICAgICAqIGNhdXNlIHRoZSBj
dXJyZW50IHNjZW5lIGFwcGxpY2F0aW9uIHRvIHF1aXQsIHNvIG9ubHkgY2FsbCBpdCB3aGVuIHlv
dSBhcmUgYWN0dWFsbHkgYWJvdXQgdG8gbGF1bmNoIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAg
ICAgICAqIFdoYXQgdGhlIGNhbGxlciBzaG91bGQgZG8gYWJvdXQgdGhlc2UgZmFpbHVyZXMgZGVw
ZW5kcyBvbiB0aGUgZmFpbHVyZToKKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJv
cl9PbGRBcHBsaWNhdGlvblF1aXR0aW5nIC0gQW4gZXhpc3RpbmcgYXBwbGljYXRpb24gaGFzIGJl
ZW4gdG9sZCB0byBxdWl0LiBXYWl0IGZvciBhIFZSRXZlbnRfUHJvY2Vzc1F1aXQKKyAgICAgICAg
ICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5k
IHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNh
dGlvbkFscmVhZHlTdGFydGluZyAtIFRoaXMgYXBwbGljYXRpb24gaXMgYWxyZWFkeSBzdGFydGlu
Zy4gVGhpcyBpcyBhIHBlcm1hbmVudCBmYWlsdXJlLgorICAgICAgICAgICAgICAqICAgVlJBcHBs
aWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgICAgICAgICAgICAgLSBBIGRpZmZlcmVudCBh
cHBsaWNhdGlvbiBpcyBhbHJlYWR5IHN0YXJ0aW5nLiBUaGlzIGlzIGEgcGVybWFuZW50IGZhaWx1
cmUuCisgICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSAgICAgICAgICAg
ICAgICAgICAtIEdvIGFoZWFkIGFuZCBsYXVuY2guIEV2ZXJ5dGhpbmcgaXMgY2xlYXIuCisgICAg
ICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBQ
ZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhbiBhcHBsaWNh
dGlvbiB0cmFuc2l0aW9uIHN0YXRlICovCisgICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hh
ciAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKCBFVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0
dXJucyB0cnVlIGlmIHRoZSBvdXRnb2luZyBzY2VuZSBhcHAgaGFzIHJlcXVlc3RlZCBhIHNhdmUg
cHJvbXB0IGJlZm9yZSBleGl0aW5nICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTdGFydHMg
YSBzdWJwcm9jZXNzIHdpdGhpbiB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbi4gVGhpcworICAgICAg
ICAgICAgICAqIHN1cHByZXNzZXMgYWxsIGFwcGxpY2F0aW9uIHRyYW5zaXRpb24gVUkgYW5kIGF1
dG9tYXRpY2FsbHkgaWRlbnRpZmllcyB0aGUgbmV3IGV4ZWN1dGFibGUgCisgICAgICAgICAgICAg
ICogYXMgcGFydCBvZiB0aGUgc2FtZSBhcHBsaWNhdGlvbi4gT24gc3VjY2VzcyB0aGUgY2FsbGlu
ZyBwcm9jZXNzIHNob3VsZCBleGl0IGltbWVkaWF0ZWx5LiAKKyAgICAgICAgICAgICAgKiBJZiB3
b3JraW5nIGRpcmVjdG9yeSBpcyBOVUxMIG9yICIiIHRoZSBkaXJlY3RvcnkgcG9ydGlvbiBvZiB0
aGUgYmluYXJ5IHBhdGggd2lsbCBiZSAKKyAgICAgICAgICAgICAgKiB0aGUgd29ya2luZyBkaXJl
Y3RvcnkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVu
Y2hJbnRlcm5hbFByb2Nlc3MoIGNvbnN0IGNoYXIgKnBjaEJpbmFyeVBhdGgsIGNvbnN0IGNoYXIg
KnBjaEFyZ3VtZW50cywgY29uc3QgY2hhciAqcGNoV29ya2luZ0RpcmVjdG9yeSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgY3VycmVudCBzY2VuZSBwcm9jZXNzIElEIGFj
Y29yZGluZyB0byB0aGUgYXBwbGljYXRpb24gc3lzdGVtLiBBIHNjZW5lIHByb2Nlc3Mgd2lsbCBn
ZXQgc2NlbmUKKyAgICAgICAgICAgICAgKiBmb2N1cyBvbmNlIGl0IHN0YXJ0cyByZW5kZXJpbmcs
IGJ1dCBpdCB3aWxsIGFwcGVhciBoZXJlIG9uY2UgaXQgY2FsbHMgVlJfSW5pdCB3aXRoIHRoZSBT
Y2VuZSBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAqIHR5cGUuICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKCkgPSAwOworICAgICAg
IH07CisKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkFwcGxpY2F0aW9uc19W
ZXJzaW9uID0gIklWUkFwcGxpY2F0aW9uc18wMDYiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisv
LyBpdnJzZXR0aW5ncy5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICBlbnVtIEVWUlNldHRpbmdz
RXJyb3IKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwK
KyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAgICAg
ICAgIFZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIsCisgICAgICAgICAgICAgIFZSU2V0
dGluZ3NFcnJvcl9SZWFkRmFpbGVkID0gMywKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9y
X0pzb25QYXJzZUZhaWxlZCA9IDQsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNl
dFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhl
IHNldHRpbmcgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUg
YW5kIGhhcyBub3QgYmVlbiBzZXQKKyAgICAgICB9OworCisgICAgICAgLy8gVGhlIG1heGltdW0g
bGVuZ3RoIG9mIGEgc2V0dGluZ3Mga2V5CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtf
dW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKKworICAgICAgIGNsYXNzIElWUlNldHRpbmdz
CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBj
aGFyICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJv
ciApID0gMDsKKworICAgICAgICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9j
Y3VycmVkIChmb3JjZSBvciBzZXR0aW5ncyBkaXJ0eSkKKyAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIFN5bmMoIGJvb2wgYkZvcmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3Ig
PSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBj
b25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBi
VmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNv
bnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJv
ciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBT
ZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NL
ZXksIGZsb2F0IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkg
PSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpw
Y2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFs
dWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAg
ICAgICAgIC8vIFVzZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRl
ZmF1bHQgaW4gZGVmYXVsdC52cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRp
cmVjdG9yeQorICAgICAgICAgICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRy
aXZlcl94eHggZGlyZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwg
MCwgMC4wIG9yICIiCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBj
aGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NF
cnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgaW50
MzJfdCBHZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0
dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9u
LCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNv
bnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRf
U1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdz
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBSZW1vdmVTZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IFJlbW92ZUtleUluU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAq
cGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAw
OworICAgICAgIH07CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdz
XzAwMiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gc3RlYW12
ciBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nl
Y3Rpb24gPSAic3RlYW12ciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5n
ID0gImZvcmNlZERyaXZlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAi
ZGlzcGxheURlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfRGVidWdQcm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hf
SW50MzIgPSAiZGlzcGxheURlYnVnWCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1C
dXR0b25Ub0FsbEFwcHNfQm9vbD0gInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiA9
ICJsb2dsZXZlbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX0lQRF9GbG9hdCA9ICJpcGQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9ICJiYWNrZ3JvdW5kIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQ
cm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZENhbWVyYUhl
aWdodF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQg
PSAiYmFja2dyb3VuZERvbWVSYWRpdXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5nID0gImdyaWRDb2xvciI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1BsYXlBcmVhQ29sb3JfU3Ry
aW5nID0gInBsYXlBcmVhQ29sb3IiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3RhZ2UiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVy
c19Cb29sID0gImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZV9Cb29sID0gImRpcmVjdE1vZGUi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RN
b2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZpZCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0ludDMyID0g
ImRpcmVjdE1vZGVFZGlkUGlkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5nU3BlYWtlcnMiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZ
YXdPZmZzZXREZWdyZWVzX0Zsb2F0ID0gInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYXNlU3Rh
dGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0aW9uUG93ZXJNYW5hZ2VtZW50IjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfTmV2ZXJLaWxs
UHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2VzIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3VwZXJzYW1wbGVTY2FsZV9GbG9hdCA9ICJz
dXBlcnNhbXBsZVNjYWxlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXByb2pl
Y3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9B
bGxvd1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24iOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJv
amVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9qZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29sID0g
ImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19JbnQzMiA9ICJkZWZhdWx0TWlycm9y
VmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1No
b3dNaXJyb3JWaWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXciOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0g
Im1pcnJvclZpZXdHZW9tZXRyeSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2ggPSAic3RhcnRNb25pdG9yRnJv
bUFwcExhdW5jaCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydENvbXBvc2l0b3JG
cm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRG
cm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlB
cHBzRnJvbURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5hYmxlSG9tZUFwcCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGlt
ZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0
YWlsRGVtbyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1N1cGVyc2FtcGxlRmlsdGVyaW5nX0Jvb2wgPSAi
YWxsb3dTdXBlcnNhbXBsZUZpbHRlcmluZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZUxpbnV4VnVsa2FuQXN5bmNfQm9vbCA9ICJlbmFibGVM
aW51eFZ1bGthbkFzeW5jIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAvLyBsaWdodGhvdXNlIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9ICJkcml2ZXJfbGlnaHRob3VzZSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCA9
ICJkaXNhYmxlaW11IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xp
Z2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1i
aWd1YXRpb25EZWJ1Z19JbnQzMiA9ICJkaXNhbWJpZ3VhdGlvbmRlYnVnIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9u
X0ludDMyID0gInByaW1hcnliYXNlc3RhdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sID0gImRiaGlzdG9yeSI7CisK
KyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbnVsbCBrZXlzCisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJpdmVy
X251bGwiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZXJp
YWxOdW1iZXJfU3RyaW5nID0gInNlcmlhbE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1hfSW50
MzIgPSAid2luZG93WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9O
dWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93WSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0lu
dDMyID0gIndpbmRvd0hlaWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJlbmRlcldpZHRoIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMyID0gInJl
bmRlckhlaWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxs
X1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1RvUGhv
dG9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX0Rpc3Bs
YXlGcmVxdWVuY3lfRmxvYXQgPSAiZGlzcGxheUZyZXF1ZW5jeSI7CisKKyAgICAgICAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gdXNlciBpbnRlcmZhY2Uga2V5cworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0gInVz
ZXJpbnRlcmZhY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNl
ckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9wIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfTWlu
aW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2Ny
ZWVuc2hvdHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlcklu
dGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworCisgICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG5vdGlmaWNhdGlvbiBrZXlzCisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rpb24g
PSAibm90aWZpY2F0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Ob3RpZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CisKKyAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8ga2V5Ym9hcmQga2V5cworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJr
ZXlib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2Fy
ZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxlWCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVkg
PSAiU2NhbGVZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJv
YXJkX09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9
ICJPZmZzZXRZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJv
YXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgICAgIC8vIHBlcmYga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3Rp
Y0FjdGl2ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX05v
dGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2UiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0
b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NP
bkV4aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9UZXN0
RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9MaW51eEdQVVByb2ZpbGluZ19Cb29sID0gImxpbnV4R1BVUHJvZmls
aW5nIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBjb2xsaXNp
b24gYm91bmRzIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxpc2lvbkJvdW5kcyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIgPSAi
Q29sbGlzaW9uQm91bmRzU3R5bGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29sbGlzaW9u
Qm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlzaW9u
Qm91bmRzQ2VudGVyTWFya2VyT24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRz
UGxheVNwYWNlT24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29s
bGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlz
dGFuY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9u
Qm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFSIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19D
b2xvckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1t
YUJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUIiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFBX0ludDMy
ID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAvLyBjYW1lcmEga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFi
bGVDYW1lcmEiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJh
X0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUZvckNvbGxpc2lvbkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJv
dW5kcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5h
YmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JH
YW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFHX0ludDMyID0g
ImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9ICJjYW1lcmFCb3VuZHND
b2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1l
cmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUEiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc1N0cmVu
Z3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKKworICAgICAgIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAvLyBhdWRpbyBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5nID0g
Im9uUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfYXVkaW9fT25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09uUGxheWJhY2tNaXJyb3JE
ZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZpY2UiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nID0g
Im9mZlBsYXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX2F1ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9
ICJ2aXZlSERNSUdhaW4iOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
IC8vIHBvd2VyIG1hbmFnZW1lbnQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sID0gInBvd2VyT2ZmT25F
eGl0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5P
ZmZTY3JlZW5zVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJz
VGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0IjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dUaW1lb3V0
X0Zsb2F0ID0gInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyA9
ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfUG93ZXJfUGF1c2VDb21wb3NpdG9yT25TdGFuZGJ5X0Jvb2wgPSAi
cGF1c2VDb21wb3NpdG9yT25TdGFuZGJ5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9v
bCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKKworICAgICAg
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBtb2RlbCBza2luIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9TZWN0aW9uID0gIm1v
ZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGRy
aXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJpdmVyXzxuYW1lPiBz
ZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ecml2ZXJfRW5h
YmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworLy8gaXZyY2hhcGVy
b25lLmgKK25hbWVzcGFjZSB2cgoreworCisjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorCitlbnVt
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKK3sKKyAgICAgICAvLyBPSyEKKyAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGFwZXJvbmUgaXMgZnVsbHkg
Y2FsaWJyYXRlZCBhbmQgd29ya2luZyBjb3JyZWN0bHkKKworICAgICAgIC8vIFdhcm5pbmdzCisg
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nID0gMTAwLAorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvbk1heUhhdmVNb3ZlZCA9
IDEwMSwgICAgICAgLy8gQSBiYXNlIHN0YXRpb24gdGhpbmtzIHRoYXQgaXQgbWlnaHQgaGF2ZSBt
b3ZlZAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlv
blJlbW92ZWQgPSAxMDIsICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIGxlc3MgYmFz
ZSBzdGF0aW9ucyB0aGFuIHdoZW4gY2FsaWJyYXRlZAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0
aW9uU3RhdGVfV2FybmluZ19TZWF0ZWRCb3VuZHNJbnZhbGlkID0gMTAzLCAgICAgICAgICAgICAg
Ly8gU2VhdGVkIGJvdW5kcyBoYXZlbid0IGJlZW4gY2FsaWJyYXRlZCBmb3IgdGhlIGN1cnJlbnQg
dHJhY2tpbmcgY2VudGVyCisKKyAgICAgICAvLyBFcnJvcnMKKyAgICAgICBDaGFwZXJvbmVDYWxp
YnJhdGlvblN0YXRlX0Vycm9yID0gMjAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIFVuaXZlcnNlSUQgaXMgaW52YWxpZAorICAg
ICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25VbmluaXRpYWxp
emVkID0gMjAxLCAgICAgICAgICAgICAgLy8gVHJhY2tpbmcgY2VudGVyIGhhc24ndCBiZSBjYWxp
YnJhdGVkIGZvciBhdCBsZWFzdCBvbmUgb2YgdGhlIGJhc2Ugc3RhdGlvbnMKKyAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIsICAg
ICAgICAgICAgICAgICAgICAgLy8gVHJhY2tpbmcgY2VudGVyIGlzIGNhbGlicmF0ZWQsIGJ1dCBi
YXNlIHN0YXRpb25zIGRpc2FncmVlIG9uIHRoZSB0cmFja2luZyBzcGFjZQorICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBQbGF5IEFyZWEgaGFzbid0IGJlZW4gY2FsaWJyYXRlZCBm
b3IgdGhlIGN1cnJlbnQgdHJhY2tpbmcgY2VudGVyCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRp
b25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlkID0gMjA0LCAgICAgICAgICAgICAg
Ly8gQ29sbGlzaW9uIEJvdW5kcyBoYXZlbid0IGJlZW4gY2FsaWJyYXRlZCBmb3IgdGhlIGN1cnJl
bnQgdHJhY2tpbmcgY2VudGVyCit9OworCisKKy8qKiBISUdIIExFVkVMIFRSQUNLSU5HIFNQQUNF
IEFTU1VNUFRJT05TOgorKiAwLDAsMCBpcyB0aGUgcHJlZmVycmVkIHN0YW5kaW5nIGFyZWEgY2Vu
dGVyLgorKiAwWSBpcyB0aGUgZmxvb3IgaGVpZ2h0LgorKiAtWiBpcyB0aGUgcHJlZmVycmVkIGZv
cndhcmQgZmFjaW5nIGRpcmVjdGlvbi4gKi8KK2NsYXNzIElWUkNoYXBlcm9uZQoreworcHVibGlj
OgorCisgICAgICAgLyoqIEdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiBDaGFwZXJvbmUgY2FsaWJy
YXRpb24uIFRoaXMgc3RhdGUgY2FuIGNoYW5nZSBhdCBhbnkgdGltZSBkdXJpbmcgYSBzZXNzaW9u
IGR1ZSB0byBwaHlzaWNhbCBiYXNlIHN0YXRpb24gY2hhbmdlcy4gKiovCisgICAgICAgdmlydHVh
bCBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGUoKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggYW5kIGRlcHRoIG9mIHRoZSBQbGF5IEFyZWEg
KGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBpbiBYIGFuZCBaLiAKKyAgICAgICAqIFRyYWNr
aW5nIHNwYWNlIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJlYS4g
KiovCisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVhU2l6ZSggZmxvYXQgKnBTaXplWCwg
ZmxvYXQgKnBTaXplWiApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSA0IGNvcm5lciBw
b3NpdGlvbnMgb2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpLgor
ICAgICAgICogQ29ybmVycyBhcmUgaW4gY291bnRlci1jbG9ja3dpc2Ugb3JkZXIuCisgICAgICAg
KiBTdGFuZGluZyBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEu
CisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgorICAgICAgICogMiBzaWRlcyBhcmUgcGFyYWxs
ZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8gdGhlIFogYXhpcy4K
KyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3JuZXIgaXMgMFkgKG9uIHRoZSBmbG9vcikuICoq
LworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRQbGF5QXJlYVJlY3QoIEhtZFF1YWRfdCAqcmVjdCAp
ID0gMDsKKworICAgICAgIC8qKiBSZWxvYWQgQ2hhcGVyb25lIGRhdGEgZnJvbSB0aGUgLnZyY2hh
cCBmaWxlIG9uIGRpc2suICovCisgICAgICAgdmlydHVhbCB2b2lkIFJlbG9hZEluZm8oIHZvaWQg
KSA9IDA7CisKKyAgICAgICAvKiogT3B0aW9uYWxseSBnaXZlIHRoZSBjaGFwZXJvbmUgc3lzdGVt
IGEgaGl0IGFib3V0IHRoZSBjb2xvciBhbmQgYnJpZ2h0bmVzcyBpbiB0aGUgc2NlbmUgKiovCisg
ICAgICAgdmlydHVhbCB2b2lkIFNldFNjZW5lQ29sb3IoIEhtZENvbG9yX3QgY29sb3IgKSA9IDA7
CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IGNoYXBlcm9uZSBib3VuZHMgZHJhdyBjb2xv
ciBhbmQgYnJpZ2h0bmVzcyAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgR2V0Qm91bmRzQ29sb3Io
IEhtZENvbG9yX3QgKnBPdXRwdXRDb2xvckFycmF5LCBpbnQgbk51bU91dHB1dENvbG9ycywgZmxv
YXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIEhtZENvbG9yX3QgKnBPdXRwdXRDYW1l
cmFDb2xvciApID0gMDsKKworICAgICAgIC8qKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgYm91bmRz
IGFyZSBzaG93aW5nIHJpZ2h0IG5vdyAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQXJlQm91bmRz
VmlzaWJsZSgpID0gMDsKKworICAgICAgIC8qKiBGb3JjZSB0aGUgYm91bmRzIHRvIHNob3csIG1v
c3RseSBmb3IgdXRpbGl0aWVzICoqLworICAgICAgIHZpcnR1YWwgdm9pZCBGb3JjZUJvdW5kc1Zp
c2libGUoIGJvb2wgYkZvcmNlICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBJVlJDaGFwZXJvbmVfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVfMDAzIjsKKworI3ByYWdtYSBw
YWNrKCBwb3AgKQorCit9CisKKy8vIGl2cmNoYXBlcm9uZXNldHVwLmgKK25hbWVzcGFjZSB2cgor
eworCitlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7CisgICAgICAgRUNoYXBlcm9uZUNvbmZp
Z0ZpbGVfTGl2ZSA9IDEsICAgICAgICAgICAgICAvLyBUaGUgbGl2ZSBjaGFwZXJvbmUgY29uZmln
LCB1c2VkIGJ5IG1vc3QgYXBwbGljYXRpb25zIGFuZCBnYW1lcworICAgICAgIEVDaGFwZXJvbmVD
b25maWdGaWxlX1RlbXAgPSAyLCAgICAgICAgICAgICAgLy8gVGhlIHRlbXBvcmFyeSBjaGFwZXJv
bmUgY29uZmlnLCB1c2VkIHRvIGxpdmUtcHJldmlldyBjb2xsaXNpb24gYm91bmRzIGluIHJvb20g
c2V0dXAKK307CisKK2VudW0gRUNoYXBlcm9uZUltcG9ydEZsYWdzCit7CisgICAgICAgRUNoYXBl
cm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0gMHgwMDAxLAorfTsKKworLyoqIE1hbmFnZXMgdGhlIHdv
cmtpbmcgY29weSBvZiB0aGUgY2hhcGVyb25lIGluZm8uIEJ5IGRlZmF1bHQgdGhpcyB3aWxsIGJl
IHRoZSBzYW1lIGFzIHRoZSAKKyogbGl2ZSBjb3B5LiBBbnkgY2hhbmdlcyBtYWRlIHdpdGggdGhp
cyBpbnRlcmZhY2Ugd2lsbCBzdGF5IGluIHRoZSB3b3JraW5nIGNvcHkgdW50aWwgCisqIENvbW1p
dFdvcmtpbmdDb3B5KCkgaXMgY2FsbGVkLCBhdCB3aGljaCBwb2ludCB0aGUgd29ya2luZyBjb3B5
IGFuZCB0aGUgbGl2ZSBjb3B5IHdpbGwgYmUgCisqIHRoZSBzYW1lIGFnYWluLiAqLworY2xhc3Mg
SVZSQ2hhcGVyb25lU2V0dXAKK3sKK3B1YmxpYzoKKworICAgICAgIC8qKiBTYXZlcyB0aGUgY3Vy
cmVudCB3b3JraW5nIGNvcHkgdG8gZGlzayAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDb21taXRX
b3JraW5nQ29weSggRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSApID0gMDsKKworICAg
ICAgIC8qKiBSZXZlcnRzIHRoZSB3b3JraW5nIGNvcHkgdG8gbWF0Y2ggdGhlIGxpdmUgY2hhcGVy
b25lIGNhbGlicmF0aW9uLgorICAgICAgICogVG8gbW9kaWZ5IGV4aXN0aW5nIGRhdGEgdGhpcyBN
VVNUIGJlIGRvIFdISUxFIGdldHRpbmcgYSBub24tZXJyb3IgQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0dXMuCisgICAgICAgKiBPbmx5IGFmdGVyIHRoaXMgc2hvdWxkIHlvdSBkbyBnZXRzIGFuZCBz
ZXRzIG9uIHRoZSBleGlzdGluZyBkYXRhLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBSZXZlcnRX
b3JraW5nQ29weSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB3aWR0aCBhbmQgZGVw
dGggb2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGluIFggYW5k
IFogZnJvbSB0aGUgd29ya2luZyBjb3B5LgorICAgICAgICogVHJhY2tpbmcgc3BhY2UgY2VudGVy
ICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLiAqLworICAgICAgIHZpcnR1
YWwgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFTaXplKCBmbG9hdCAqcFNpemVYLCBmbG9hdCAqcFNp
emVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIDQgY29ybmVyIHBvc2l0aW9ucyBv
ZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykgZnJvbSB0aGUgd29y
a2luZyBjb3B5LgorICAgICAgICogQ29ybmVycyBhcmUgaW4gY2xvY2t3aXNlIG9yZGVyLgorICAg
ICAgICogVHJhY2tpbmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUg
UGxheSBBcmVhLgorICAgICAgICogSXQncyBhIHJlY3RhbmdsZS4KKyAgICAgICAqIDIgc2lkZXMg
YXJlIHBhcmFsbGVsIHRvIHRoZSBYIGF4aXMgYW5kIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRo
ZSBaIGF4aXMuCisgICAgICAgKiBIZWlnaHQgb2YgZXZlcnkgY29ybmVyIGlzIDBZIChvbiB0aGUg
Zmxvb3IpLiAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVjdCgg
SG1kUXVhZF90ICpyZWN0ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBv
ZiBRdWFkcyBpZiB0aGUgYnVmZmVyIHBvaW50cyB0byBudWxsLiBPdGhlcndpc2UgaXQgcmV0dXJu
cyBRdWFkcyAKKyAgICAgICAqIGludG8gdGhlIGJ1ZmZlciB1cCB0byB0aGUgbWF4IHNwZWNpZmll
ZCBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVhZHNDb3VudCkg
SG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50ICkgPSAwOwor
CisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBRdWFkcyBpZiB0aGUgYnVmZmVyIHBv
aW50cyB0byBudWxsLiBPdGhlcndpc2UgaXQgcmV0dXJucyBRdWFkcyAKKyAgICAgICAqIGludG8g
dGhlIGJ1ZmZlciB1cCB0byB0aGUgbWF4IHNwZWNpZmllZC4gKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5RdWFk
c0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1YWRzQ291bnQg
KSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlv
biBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFdvcmtp
bmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBIbWRNYXRyaXgzNF90ICpwbWF0U2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5z
IHRoZSBzdGFuZGluZyBvcmlnaW4gZnJvbSB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZp
cnR1YWwgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBI
bWRNYXRyaXgzNF90ICpwbWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAw
OworCisgICAgICAgLyoqIFNldHMgdGhlIFBsYXkgQXJlYSBpbiB0aGUgd29ya2luZyBjb3B5LiAq
LworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nUGxheUFyZWFTaXplKCBmbG9hdCBzaXpl
WCwgZmxvYXQgc2l6ZVogKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgQ29sbGlzaW9uIEJv
dW5kcyBpbiB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3Jr
aW5nQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfQVJSQVlfQ09VTlQodW5RdWFkc0NvdW50KSBIbWRR
dWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50ICkgPSAwOworCisgICAg
ICAgLyoqIFNldHMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24gaW4gdGhlIHdvcmtpbmcg
Y29weS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UoIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBNYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFNldHMgdGhlIHByZWZlcnJlZCBz
dGFuZGluZyBwb3NpdGlvbiBpbiB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwg
dm9pZCBTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBjb25zdCBI
bWRNYXRyaXgzNF90ICpwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAw
OworCisgICAgICAgLyoqIFRlYXIgZXZlcnl0aGluZyBkb3duIGFuZCByZWxvYWQgaXQgZnJvbSB0
aGUgZmlsZSBvbiBkaXNrICovCisgICAgICAgdmlydHVhbCB2b2lkIFJlbG9hZEZyb21EaXNrKCBF
Q2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24uICovCisgICAgICAgdmlydHVhbCBib29s
IEdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBIbWRNYXRyaXgzNF90ICpw
bWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKKworICAgICAgIHZpcnR1
YWwgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8oIFZSX0FSUkFZX0NPVU5U
KHVuVGFnQ291bnQpIHVpbnQ4X3QgKnBUYWdzQnVmZmVyLCB1aW50MzJfdCB1blRhZ0NvdW50ICkg
PSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8o
IFZSX09VVF9BUlJBWV9DT1VOVChwdW5UYWdDb3VudCkgdWludDhfdCAqcFRhZ3NCdWZmZXIsIHVp
bnQzMl90ICpwdW5UYWdDb3VudCApID0gMDsKKworICAgICAgIHZpcnR1YWwgYm9vbCBTZXRXb3Jr
aW5nUGh5c2ljYWxCb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blF1YWRzQ291bnQpIEhtZFF1
YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQgKSA9IDA7CisgICAgICAg
dmlydHVhbCBib29sIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VO
VChwdW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1
YWRzQ291bnQgKSA9IDA7CisKKyAgICAgICB2aXJ0dWFsIGJvb2wgRXhwb3J0TGl2ZVRvQnVmZmVy
KCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcEJ1ZmZlciwgdWludDMyX3QgKnBuQnVmZmVyTGVuZ3Ro
ICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nKCBj
b25zdCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCBuSW1wb3J0RmxhZ3MgKSA9IDA7Cit9OworCitz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNoYXBlcm9uZVNldHVwX1ZlcnNpb24gPSAiSVZS
Q2hhcGVyb25lU2V0dXBfMDA1IjsKKworCit9CisKKy8vIGl2cmNvbXBvc2l0b3IuaAorbmFtZXNw
YWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKKy8qKiBFcnJvcnMgdGhhdCBj
YW4gb2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRvciAqLworZW51bSBFVlJDb21wb3NpdG9yRXJy
b3IKK3sKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1JlcXVl
c3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgICAgIFZSQ29tcG9z
aXRvckVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gICAgICAgICAgICAgID0gMTAwLAorICAgICAg
IFZSQ29tcG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzICAgICAgICAgICAgICAgICAgICAgPSAx
MDEsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUgICAgICAgICAgICAg
ICAgICAgICA9IDEwMiwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9Jc05vdFNjZW5lQXBwbGlj
YXRpb24gICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1RleHR1
cmVJc09uV3JvbmdEZXZpY2UgICAgICAgPSAxMDQsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3Jf
VGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCA9IDEwNSwKKyAgICAgICBWUkNvbXBvc2l0b3JF
cnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCA9IDEwNiwKKyAgICAgICBWUkNvbXBvc2l0
b3JFcnJvcl9JbmRleE91dE9mUmFuZ2UgICAgICAgICAgICAgICAgICAgICA9IDEwNywKKyAgICAg
ICBWUkNvbXBvc2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVkICAgICAgICAgICAgICAgICAgICAg
PSAxMDgsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZEJvdW5kcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwOSwKK307CisKK2NvbnN0IHVpbnQzMl90IFZSQ29tcG9zaXRv
cl9SZXByb2plY3Rpb25SZWFzb25fQ3B1ID0gMHgwMTsKK2NvbnN0IHVpbnQzMl90IFZSQ29tcG9z
aXRvcl9SZXByb2plY3Rpb25SZWFzb25fR3B1ID0gMHgwMjsKK2NvbnN0IHVpbnQzMl90IFZSQ29t
cG9zaXRvcl9SZXByb2plY3Rpb25Bc3luYyAgICAgID0gMHgwNDsgICAgICAgLy8gVGhpcyBmbGFn
IGluZGljYXRlcyB0aGUgYXN5bmMgcmVwcm9qZWN0aW9uIG1vZGUgaXMgYWN0aXZlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnV0IGRvZXMgbm90
IGluZGljYXRlIGlmIHJlcHJvamVjdGlvbiBhY3R1YWxseSBoYXBwZW5lZCBvciBub3QuCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgdGhlIFJl
cHJvamVjdGlvblJlYXNvbiBmbGFncyBhYm92ZSB0byBjaGVjayBpZiByZXByb2plY3Rpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcyBhY3R1
YWxseSBhcHBsaWVkIChpLmUuIHNjZW5lIHRleHR1cmUgd2FzIHJldXNlZCkuCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1GcmFtZVByZXNlbnRz
ID4gMSBhbHNvIGluZGljYXRlcyB0aGUgc2NlbmUgdGV4dHVyZSB3YXMgcmV1c2VkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGFsc28gdGhl
IG51bWJlciBvZiB0aW1lcyB0aGF0IGl0IHdhcyBwcmVzZW50ZWQgaW4gdG90YWwuCisKKy8qKiBQ
cm92aWRlcyBhIHNpbmdsZSBmcmFtZSdzIHRpbWluZyBpbmZvcm1hdGlvbiB0byB0aGUgYXBwICov
CitzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZworeworICAgICAgIHVpbnQzMl90IG1fblNp
emU7IC8vIFNldCB0byBzaXplb2YoIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKQorICAgICAgIHVp
bnQzMl90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50
czsgLy8gbnVtYmVyIG9mIHRpbWVzIHRoaXMgZnJhbWUgd2FzIHByZXNlbnRlZAorICAgICAgIHVp
bnQzMl90IG1fbk51bU1pc1ByZXNlbnRlZDsgLy8gbnVtYmVyIG9mIHRpbWVzIHRoaXMgZnJhbWUg
d2FzIHByZXNlbnRlZCBvbiBhIHZzeW5jIG90aGVyIHRoYW4gaXQgd2FzIG9yaWdpbmFsbHkgcHJl
ZGljdGVkIHRvCisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lczsgLy8gbnVtYmVy
IG9mIGFkZGl0aW9uYWwgdGltZXMgcHJldmlvdXMgZnJhbWUgd2FzIHNjYW5uZWQgb3V0CisgICAg
ICAgdWludDMyX3QgbV9uUmVwcm9qZWN0aW9uRmxhZ3M7CisKKyAgICAgICAvKiogQWJzb2x1dGUg
dGltZSByZWZlcmVuY2UgZm9yIGNvbXBhcmluZyBmcmFtZXMuICBUaGlzIGFsaWducyB3aXRoIHRo
ZSB2c3luYyB0aGF0IHJ1bm5pbmcgc3RhcnQgaXMgcmVsYXRpdmUgdG8uICovCisgICAgICAgZG91
YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOworCisgICAgICAgLyoqIFRoZXNlIHRpbWVzIG1h
eSBpbmNsdWRlIHdvcmsgZnJvbSBvdGhlciBwcm9jZXNzZXMgZHVlIHRvIE9TIHNjaGVkdWxpbmcu
CisgICAgICAgKiBUaGUgZmV3ZXIgcGFja2V0cyBvZiB3b3JrIHRoZXNlIGFyZSBicm9rZW4gdXAg
aW50bywgdGhlIGxlc3MgbGlrZWx5IHRoaXMgd2lsbCBoYXBwZW4uCisgICAgICAgKiBHUFUgd29y
ayBjYW4gYmUgYnJva2VuIHVwIGJ5IGNhbGxpbmcgRmx1c2guICBUaGlzIGNhbiBzb21ldGltZXMg
YmUgdXNlZnVsIHRvIGdldCB0aGUgR1BVIHN0YXJ0ZWQKKyAgICAgICAqIHByb2Nlc3NpbmcgdGhh
dCB3b3JrIGVhcmxpZXIgaW4gdGhlIGZyYW1lLiAqLworICAgICAgIGZsb2F0IG1fZmxQcmVTdWJt
aXRHcHVNczsgLy8gdGltZSBzcGVudCByZW5kZXJpbmcgdGhlIHNjZW5lIChncHUgd29yayBzdWJt
aXR0ZWQgYmV0d2VlbiBXYWl0R2V0UG9zZXMgYW5kIHNlY29uZCBTdWJtaXQpCisgICAgICAgZmxv
YXQgbV9mbFBvc3RTdWJtaXRHcHVNczsgLy8gYWRkaXRpb25hbCB0aW1lIHNwZW50IHJlbmRlcmlu
ZyBieSBhcHBsaWNhdGlvbiAoZS5nLiBjb21wYW5pb24gd2luZG93KQorICAgICAgIGZsb2F0IG1f
ZmxUb3RhbFJlbmRlckdwdU1zOyAvLyB0aW1lIGJldHdlZW4gd29yayBzdWJtaXR0ZWQgaW1tZWRp
YXRlbHkgYWZ0ZXIgcHJlc2VudCAoaWRlYWxseSB2c3luYykgdW50aWwgdGhlIGVuZCBvZiBjb21w
b3NpdG9yIHN1Ym1pdHRlZCB3b3JrCisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJH
cHVNczsgLy8gdGltZSBzcGVuZCBwZXJmb3JtaW5nIGRpc3RvcnRpb24gY29ycmVjdGlvbiwgcmVu
ZGVyaW5nIGNoYXBlcm9uZSwgb3ZlcmxheXMsIGV0Yy4KKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9z
aXRvclJlbmRlckNwdU1zOyAvLyB0aW1lIHNwZW50IG9uIGNwdSBzdWJtaXR0aW5nIHRoZSBhYm92
ZSB3b3JrIGZvciB0aGlzIGZyYW1lCisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1
TXM7IC8vIHRpbWUgc3BlbnQgd2FpdGluZyBmb3IgcnVubmluZyBzdGFydCAoYXBwbGljYXRpb24g
Y291bGQgaGF2ZSB1c2VkIHRoaXMgbXVjaCBtb3JlIHRpbWUpCisKKyAgICAgICAvKiogTWlzY2Vs
bGFuZW91cyBtZWFzdXJlZCBpbnRlcnZhbHMuICovCisgICAgICAgZmxvYXQgbV9mbENsaWVudEZy
YW1lSW50ZXJ2YWxNczsgLy8gdGltZSBiZXR3ZWVuIGNhbGxzIHRvIFdhaXRHZXRQb3NlcworICAg
ICAgIGZsb2F0IG1fZmxQcmVzZW50Q2FsbENwdU1zOyAvLyB0aW1lIGJsb2NrZWQgb24gY2FsbCB0
byBwcmVzZW50ICh1c3VhbGx5IDAuMCwgYnV0IGNhbiBnbyBsb25nKQorICAgICAgIGZsb2F0IG1f
ZmxXYWl0Rm9yUHJlc2VudENwdU1zOyAvLyB0aW1lIHNwZW50IHNwaW4td2FpdGluZyBmb3IgZnJh
bWUgaW5kZXggdG8gY2hhbmdlIChub3QgbmVhci16ZXJvIGluZGljYXRlcyB3YWl0IG9iamVjdCBm
YWlsdXJlKQorICAgICAgIGZsb2F0IG1fZmxTdWJtaXRGcmFtZU1zOyAvLyB0aW1lIHNwZW50IGlu
IElWUkNvbXBvc2l0b3I6OlN1Ym1pdCAobm90IG5lYXItemVybyBpbmRpY2F0ZXMgZHJpdmVyIGlz
c3VlKQorCisgICAgICAgLyoqIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCByZWxhdGl2ZSB0byB0aGlz
IGZyYW1lJ3MgU3lzdGVtVGltZUluU2Vjb25kcyAqLworICAgICAgIGZsb2F0IG1fZmxXYWl0R2V0
UG9zZXNDYWxsZWRNczsKKyAgICAgICBmbG9hdCBtX2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAg
IGZsb2F0IG1fZmxOZXdGcmFtZVJlYWR5TXM7IC8vIHNlY29uZCBjYWxsIHRvIElWUkNvbXBvc2l0
b3I6OlN1Ym1pdAorICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRNczsKKyAg
ICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOworICAgICAgIGZsb2F0IG1fZmxD
b21wb3NpdG9yUmVuZGVyU3RhcnRNczsKKworICAgICAgIHZyOjpUcmFja2VkRGV2aWNlUG9zZV90
IG1fSG1kUG9zZTsgLy8gcG9zZSB1c2VkIGJ5IGFwcCB0byByZW5kZXIgdGhpcyBmcmFtZQorfTsK
KworLyoqIEN1bXVsYXRpdmUgc3RhdHMgZm9yIGN1cnJlbnQgYXBwbGljYXRpb24uICBUaGVzZSBh
cmUgbm90IGNsZWFyZWQgdW50aWwgYSBuZXcgYXBwIGNvbm5lY3RzLAorKiBidXQgdGhleSBkbyBz
dG9wIGFjY3VtdWxhdGluZyBvbmNlIHRoZSBhc3NvY2lhdGVkIGFwcCBkaXNjb25uZWN0cy4gKi8K
K3N0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cworeworICAgICAgIHVpbnQzMl90IG1f
blBpZDsgLy8gUHJvY2VzcyBpZCBhc3NvY2lhdGVkIHdpdGggdGhlc2Ugc3RhdHMgKG1heSBubyBs
b25nZXIgYmUgcnVubmluZykuCisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50czsg
Ly8gdG90YWwgbnVtYmVyIG9mIHRpbWVzIHdlIGNhbGxlZCBwcmVzZW50IChpbmNsdWRlcyByZXBy
b2plY3RlZCBmcmFtZXMpCisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lczsgLy8g
dG90YWwgbnVtYmVyIG9mIHRpbWVzIGFuIG9sZCBmcmFtZSB3YXMgcmUtc2Nhbm5lZCBvdXQgKHdp
dGhvdXQgcmVwcm9qZWN0aW9uKQorICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJh
bWVzOyAvLyB0b3RhbCBudW1iZXIgb2YgdGltZXMgYSBmcmFtZSB3YXMgc2Nhbm5lZCBvdXQgYSBz
ZWNvbmQgdGltZSAod2l0aCByZXByb2plY3Rpb24pCisKKyAgICAgICAvKiogVmFsdWVzIHJlY29y
ZGVkIGF0IHN0YXJ0dXAgYmVmb3JlIGFwcGxpY2F0aW9uIGhhcyBmdWxseSBmYWRlZCBpbiB0aGUg
Zmlyc3QgdGltZS4gKi8KKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFy
dHVwOworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAg
ICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisKKyAgICAgICAv
KiogQXBwbGljYXRpb25zIG1heSBleHBsaWNpdGx5IGZhZGUgdG8gdGhlIGNvbXBvc2l0b3IuICBU
aGlzIGlzIHVzdWFsbHkgdG8gaGFuZGxlIGxldmVsIHRyYW5zaXRpb25zLCBhbmQgbG9hZGluZyBv
ZnRlbiBjYXVzZXMKKyAgICAgICAqIHN5c3RlbSB3aWRlIGhpdGNoZXMuICBUaGUgZm9sbG93aW5n
IHN0YXRzIGFyZSBjb2xsZWN0ZWQgZHVyaW5nIHRoaXMgcGVyaW9kLiAgRG9lcyBub3QgaW5jbHVk
ZSB2YWx1ZXMgcmVjb3JkZWQgZHVyaW5nIHN0YXJ0dXAuICovCisgICAgICAgdWludDMyX3QgbV9u
TnVtTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGluZzsK
KyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICB1aW50
MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisKKyAgICAgICAvKiogSWYgd2Ug
ZG9uJ3QgZ2V0IGEgbmV3IGZyYW1lIGZyb20gdGhlIGFwcCBpbiBsZXNzIHRoYW4gMi41IGZyYW1l
cywgdGhlbiB3ZSBhc3N1bWUgdGhlIGFwcCBoYXMgaHVuZyBhbmQgc3RhcnQKKyAgICAgICAqIGZh
ZGluZyBiYWNrIHRvIHRoZSBjb21wb3NpdG9yLiAgVGhlIGZvbGxvd2luZyBzdGF0cyBhcmUgYSBy
ZXN1bHQgb2YgdGhpcywgYW5kIGFyZSBhIHN1YnNldCBvZiB0aG9zZSByZWNvcmRlZCBhYm92ZS4K
KyAgICAgICAqIERvZXMgbm90IGluY2x1ZGUgdmFsdWVzIHJlY29yZGVkIGR1cmluZyBzdGFydCB1
cCBvciBsb2FkaW5nLiAqLworICAgICAgIHVpbnQzMl90IG1fbk51bVRpbWVkT3V0OworICAgICAg
IHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBt
X25OdW1Ecm9wcGVkRnJhbWVzVGltZWRPdXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9q
ZWN0ZWRGcmFtZXNUaW1lZE91dDsKK307CisKKyNwcmFnbWEgcGFjayggcG9wICkKKworLyoqIEFs
bG93cyB0aGUgYXBwbGljYXRpb24gdG8gaW50ZXJhY3Qgd2l0aCB0aGUgY29tcG9zaXRvciAqLwor
Y2xhc3MgSVZSQ29tcG9zaXRvcgoreworcHVibGljOgorICAgICAgIC8qKiBTZXRzIHRyYWNraW5n
IHNwYWNlIHJldHVybmVkIGJ5IFdhaXRHZXRQb3NlcyAqLworICAgICAgIHZpcnR1YWwgdm9pZCBT
ZXRUcmFja2luZ1NwYWNlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luICkgPSAwOwor
CisgICAgICAgLyoqIEdldHMgY3VycmVudCB0cmFja2luZyBzcGFjZSByZXR1cm5lZCBieSBXYWl0
R2V0UG9zZXMgKi8KKyAgICAgICB2aXJ0dWFsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRy
YWNraW5nU3BhY2UoKSA9IDA7CisKKyAgICAgICAvKiogU2NlbmUgYXBwbGljYXRpb25zIHNob3Vs
ZCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHBvc2VzIHRvIHJlbmRlciB3aXRoIChhbmQgb3B0
aW9uYWxseSBwb3NlcyBwcmVkaWN0ZWQgYW4gYWRkaXRpb25hbCBmcmFtZSBvdXQgdG8gdXNlIGZv
ciBnYW1lcGxheSkuCisgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmxvY2sgdW50aWwgInJ1
bm5pbmcgc3RhcnQiIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBmcmFtZSwg
YW5kIHNob3VsZCBiZSBjYWxsZWQgYXQgdGhlIGxhc3QgbW9tZW50IGJlZm9yZSBuZWVkaW5nIHRv
CisgICAgICAgKiBzdGFydCByZW5kZXJpbmcuCisgICAgICAgKgorICAgICAgICogUmV0dXJuIGNv
ZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBwbGljYXRpb24gKG1ha2Ugc3VyZSB0
byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1NjZW5lKQorICAgICAgICogICAgICAg
LSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFzIHRha2VuIGZvY3VzIC0gdGhpcyB3
aWxsIHRocm90dGxlIHRoZSBjYWxsIHRvIDEwaHogdG8gcmVkdWNlIHRoZSBpbXBhY3Qgb24gdGhh
dCBhcHApCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBXYWl0
R2V0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKHVuUmVuZGVyUG9zZUFycmF5Q291bnQpIFRyYWNrZWRE
ZXZpY2VQb3NlX3QqIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5
Q291bnQsCisgICAgICAgICAgICAgIFZSX0FSUkFZX0NPVU5UKHVuR2FtZVBvc2VBcnJheUNvdW50
KSBUcmFja2VkRGV2aWNlUG9zZV90KiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1lUG9z
ZUFycmF5Q291bnQgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IHRoZSBsYXN0IHNldCBvZiBwb3Nl
cyByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMuICovCisgICAgICAgdmlydHVhbCBFVlJDb21wb3Np
dG9yRXJyb3IgR2V0TGFzdFBvc2VzKCBWUl9BUlJBWV9DT1VOVCggdW5SZW5kZXJQb3NlQXJyYXlD
b3VudCApIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQzMl90IHVu
UmVuZGVyUG9zZUFycmF5Q291bnQsCisgICAgICAgICAgICAgIFZSX0FSUkFZX0NPVU5UKCB1bkdh
bWVQb3NlQXJyYXlDb3VudCApIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBHYW1lUG9zZUFycmF5LCB1
aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBJbnRlcmZh
Y2UgZm9yIGFjY2Vzc2luZyBsYXN0IHNldCBvZiBwb3NlcyByZXR1cm5lZCBieSBXYWl0R2V0UG9z
ZXMgb25lIGF0IGEgdGltZS4KKyAgICAgICAqIFJldHVybnMgVlJDb21wb3NpdG9yRXJyb3JfSW5k
ZXhPdXRPZlJhbmdlIGlmIHVuRGV2aWNlSW5kZXggbm90IGxlc3MgdGhhbiBrX3VuTWF4VHJhY2tl
ZERldmljZUNvdW50IG90aGVyd2lzZSBWUkNvbXBvc2l0b3JFcnJvcl9Ob25lLgorICAgICAgICog
SXQgaXMgb2theSB0byBwYXNzIE5VTEwgZm9yIGVpdGhlciBwb3NlIGlmIHlvdSBvbmx5IHdhbnQg
b25lIG9mIHRoZSB2YWx1ZXMuICovCisgICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3Ig
R2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgoIFRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBPdXRwdXRQb3NlLCBUcmFja2VkRGV2
aWNlUG9zZV90ICpwT3V0cHV0R2FtZVBvc2UgKSA9IDA7CisKKyAgICAgICAvKiogVXBkYXRlZCBz
Y2VuZSB0ZXh0dXJlIHRvIGRpc3BsYXkuIElmIHBCb3VuZHMgaXMgTlVMTCB0aGUgZW50aXJlIHRl
eHR1cmUgd2lsbCBiZSB1c2VkLiAgSWYgY2FsbGVkIGZyb20gYW4gT3BlbkdMIGFwcCwgY29uc2lk
ZXIgYWRkaW5nIGEgZ2xGbHVzaCBhZnRlcgorICAgICAgICogU3VibWl0dGluZyBib3RoIGZyYW1l
cyB0byBzaWduYWwgdGhlIGRyaXZlciB0byBzdGFydCBwcm9jZXNzaW5nLCBvdGhlcndpc2UgaXQg
bWF5IHdhaXQgdW50aWwgdGhlIGNvbW1hbmQgYnVmZmVyIGZpbGxzIHVwLCBjYXVzaW5nIHRoZSBh
cHAgdG8gbWlzcyBmcmFtZXMuCisgICAgICAgKgorICAgICAgICogT3BlbkdMIGRpcnR5IHN0YXRl
OgorICAgICAgICogICAgICAgZ2xCaW5kVGV4dHVyZQorICAgICAgICoKKyAgICAgICAqIFJldHVy
biBjb2RlczoKKyAgICAgICAqICAgICAgIC0gSXNOb3RTY2VuZUFwcGxpY2F0aW9uIChtYWtlIHN1
cmUgdG8gY2FsbCBWUl9Jbml0IHdpdGggVlJBcHBsaWNhaXRvbl9TY2VuZSkKKyAgICAgICAqICAg
ICAgIC0gRG9Ob3RIYXZlRm9jdXMgKHNvbWUgb3RoZXIgYXBwIGhhcyB0YWtlbiBmb2N1cykKKyAg
ICAgICAqICAgICAgIC0gVGV4dHVyZUlzT25Xcm9uZ0RldmljZSAoYXBwbGljYXRpb24gZGlkIG5v
dCB1c2UgcHJvcGVyIEFkYXB0ZXJJbmRleCAtIHNlZSBJVlJTeXN0ZW0uR2V0RFhHSU91dHB1dElu
Zm8pCisgICAgICAgKiAgICAgICAtIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkIChhcHBsaWNh
dGlvbiBuZWVkcyB0byBjYWxsIENyZWF0ZURYR0lGYWN0b3J5MSBvciBsYXRlciBiZWZvcmUgY3Jl
YXRpbmcgRFggZGV2aWNlKQorICAgICAgICogICAgICAgLSBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVk
Rm9ybWF0IChzY2VuZSB0ZXh0dXJlcyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCBEWEdJIHNoYXJp
bmcgcnVsZXMgLSBlLmcuIHVuY29tcHJlc3NlZCwgbm8gbWlwcywgZXRjLikKKyAgICAgICAqICAg
ICAgIC0gSW52YWxpZFRleHR1cmUgKHVzdWFsbHkgbWVhbnMgYmFkIGFyZ3VtZW50cyBwYXNzZWQg
aW4pCisgICAgICAgKiAgICAgICAtIEFscmVhZHlTdWJtaXR0ZWQgKGFwcCBoYXMgc3VibWl0dGVk
IHR3byBsZWZ0IHRleHR1cmVzIG9yIHR3byByaWdodCB0ZXh0dXJlcyBpbiBhIHNpbmdsZSBmcmFt
ZSAtIGkuZS4gYmVmb3JlIGNhbGxpbmcgV2FpdEdldFBvc2VzIGFnYWluKQorICAgICAgICovCisg
ICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KCBFVlJFeWUgZUV5ZSwgY29u
c3QgVGV4dHVyZV90ICpwVGV4dHVyZSwgY29uc3QgVlJUZXh0dXJlQm91bmRzX3QqIHBCb3VuZHMg
PSAwLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MgPSBTdWJtaXRfRGVmYXVsdCApID0gMDsK
KworICAgICAgIC8qKiBDbGVhcnMgdGhlIGZyYW1lIHRoYXQgd2FzIHNlbnQgd2l0aCB0aGUgbGFz
dCBjYWxsIHRvIFN1Ym1pdC4gVGhpcyB3aWxsIGNhdXNlIHRoZSAKKyAgICAgICAqIGNvbXBvc2l0
b3IgdG8gc2hvdyB0aGUgZ3JpZCB1bnRpbCBTdWJtaXQgaXMgY2FsbGVkIGFnYWluLiAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSgpID0gMDsKKworICAgICAg
IC8qKiBDYWxsIGltbWVkaWF0ZWx5IGFmdGVyIHByZXNlbnRpbmcgeW91ciBhcHAncyB3aW5kb3cg
KGkuZS4gY29tcGFuaW9uIHdpbmRvdykgdG8gdW5ibG9jayB0aGUgY29tcG9zaXRvci4KKyAgICAg
ICAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgY2FsbCwgd2hpY2ggb25seSBuZWVkcyB0byBiZSB1c2Vk
IGlmIHlvdSBjYW4ndCBpbnN0ZWFkIGNhbGwgV2FpdEdldFBvc2VzIGltbWVkaWF0ZWx5IGFmdGVy
IFByZXNlbnQuCisgICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91ciBlbmdpbmUncyByZW5kZXIg
YW5kIGdhbWUgbG9vcCBhcmUgbm90IG9uIHNlcGFyYXRlIHRocmVhZHMsIG9yIGJsb2NraW5nIHRo
ZSByZW5kZXIgdGhyZWFkIHVudGlsIDNtcyBiZWZvcmUgdGhlIG5leHQgdnN5bmMgd291bGQKKyAg
ICAgICAqIGludHJvZHVjZSBhIGRlYWRsb2NrIG9mIHNvbWUgc29ydC4gIFRoaXMgZnVuY3Rpb24g
dGVsbHMgdGhlIGNvbXBvc2l0b3IgdGhhdCB5b3UgaGF2ZSBmaW5pc2hlZCBhbGwgcmVuZGVyaW5n
IGFmdGVyIGhhdmluZyBTdWJtaXR0ZWQgYnVmZmVycyBmb3IgYm90aAorICAgICAgICogZXllcywg
YW5kIGl0IGlzIGZyZWUgdG8gc3RhcnQgaXRzIHJlbmRlcmluZyB3b3JrLiAgVGhpcyBzaG91bGQg
b25seSBiZSBjYWxsZWQgZnJvbSB0aGUgc2FtZSB0aHJlYWQgeW91IGFyZSByZW5kZXJpbmcgb24u
ICovCisgICAgICAgdmlydHVhbCB2b2lkIFBvc3RQcmVzZW50SGFuZG9mZigpID0gMDsKKworICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGltaW5nIGRhdGEgaXMgZmlsbGVkIGl0LiAgU2V0cyBv
bGRlc3QgdGltaW5nIGluZm8gaWYgbkZyYW1lc0FnbyBpcyBsYXJnZXIgdGhhbiB0aGUgc3RvcmVk
IGhpc3RvcnkuCisgICAgICAgKiBCZSBzdXJlIHRvIHNldCB0aW1pbmcuc2l6ZSA9IHNpemVvZihD
b21wb3NpdG9yX0ZyYW1lVGltaW5nKSBvbiBzdHJ1Y3QgcGFzc2VkIGluIGJlZm9yZSBjYWxsaW5n
IHRoaXMgZnVuY3Rpb24uICovCisgICAgICAgdmlydHVhbCBib29sIEdldEZyYW1lVGltaW5nKCBD
b21wb3NpdG9yX0ZyYW1lVGltaW5nICpwVGltaW5nLCB1aW50MzJfdCB1bkZyYW1lc0FnbyA9IDAg
KSA9IDA7CisKKyAgICAgICAvKiogSW50ZXJmYWNlIGZvciBjb3B5aW5nIGEgcmFuZ2Ugb2YgdGlt
aW5nIGRhdGEuICBGcmFtZXMgYXJlIHJldHVybmVkIGluIGFzY2VuZGluZyBvcmRlciAob2xkZXN0
IHRvIG5ld2VzdCkgd2l0aCB0aGUgbGFzdCBiZWluZyB0aGUgbW9zdCByZWNlbnQgZnJhbWUuCisg
ICAgICAgKiBPbmx5IHRoZSBmaXJzdCBlbnRyeSdzIG1fblNpemUgbmVlZHMgdG8gYmUgc2V0LCBh
cyB0aGUgcmVzdCB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhhdC4gIFJldHVybnMgdG90YWwgbnVt
YmVyIG9mIGVudHJpZXMgZmlsbGVkIG91dC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdl
dEZyYW1lVGltaW5ncyggQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqcFRpbWluZywgdWludDMyX3Qg
bkZyYW1lcyApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0aW1lIGluIHNlY29uZHMg
bGVmdCBpbiB0aGUgY3VycmVudCAoYXMgaWRlbnRpZmllZCBieSBGcmFtZVRpbWluZydzIGZyYW1l
SW5kZXgpIGZyYW1lLgorICAgICAgICogRHVlIHRvICJydW5uaW5nIHN0YXJ0IiwgdGhpcyB2YWx1
ZSBtYXkgcm9sbCBvdmVyIHRvIHRoZSBuZXh0IGZyYW1lIGJlZm9yZSBldmVyIHJlYWNoaW5nIDAu
MC4gKi8KKyAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZyYW1lVGltZVJlbWFpbmluZygpID0gMDsK
KworICAgICAgIC8qKiBGaWxscyBvdXQgc3RhdHMgYWNjdW11bGF0ZWQgZm9yIHRoZSBsYXN0IGNv
bm5lY3RlZCBhcHBsaWNhdGlvbi4gIFBhc3MgaW4gc2l6ZW9mKCBDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0cyApIGFzIHNlY29uZCBwYXJhbWV0ZXIuICovCisgICAgICAgdmlydHVhbCB2b2lkIEdl
dEN1bXVsYXRpdmVTdGF0cyggQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgKnBTdGF0cywgdWlu
dDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMgKSA9IDA7CisKKyAgICAgICAvKiogRmFkZXMgdGhlIHZp
ZXcgb24gdGhlIEhNRCB0byB0aGUgc3BlY2lmaWVkIGNvbG9yLiBUaGUgZmFkZSB3aWxsIHRha2Ug
ZlNlY29uZHMsIGFuZCB0aGUgY29sb3IgdmFsdWVzIGFyZSBiZXR3ZWVuCisgICAgICAgKiAwLjAg
YW5kIDEuMC4gVGhpcyBjb2xvciBpcyBmYWRlZCBvbiB0b3Agb2YgdGhlIHNjZW5lIGJhc2VkIG9u
IHRoZSBhbHBoYSBwYXJhbWV0ZXIuIFJlbW92aW5nIHRoZSBmYWRlIGNvbG9yIGluc3RhbnRseSAK
KyAgICAgICAqIHdvdWxkIGJlIEZhZGVUb0NvbG9yKCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCAp
LiAgVmFsdWVzIGFyZSBpbiB1bi1wcmVtdWx0aXBsaWVkIGFscGhhIHNwYWNlLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBGYWRlVG9Db2xvciggZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZs
b2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCA9
IGZhbHNlICkgPSAwOworCisgICAgICAgLyoqIEdldCBjdXJyZW50IGZhZGUgY29sb3IgdmFsdWUu
ICovCisgICAgICAgdmlydHVhbCBIbWRDb2xvcl90IEdldEN1cnJlbnRGYWRlQ29sb3IoIGJvb2wg
YkJhY2tncm91bmQgPSBmYWxzZSApID0gMDsKKworICAgICAgIC8qKiBGYWRpbmcgdGhlIEdyaWQg
aW4gb3Igb3V0IGluIGZTZWNvbmRzICovCisgICAgICAgdmlydHVhbCB2b2lkIEZhZGVHcmlkKCBm
bG9hdCBmU2Vjb25kcywgYm9vbCBiRmFkZUluICkgPSAwOworCisgICAgICAgLyoqIEdldCBjdXJy
ZW50IGFscGhhIHZhbHVlIG9mIGdyaWQuICovCisgICAgICAgdmlydHVhbCBmbG9hdCBHZXRDdXJy
ZW50R3JpZEFscGhhKCkgPSAwOworCisgICAgICAgLyoqIE92ZXJyaWRlIHRoZSBza3lib3ggdXNl
ZCBpbiB0aGUgY29tcG9zaXRvciAoZS5nLiBmb3IgZHVyaW5nIGxldmVsIGxvYWRzIHdoZW4gdGhl
IGFwcCBjYW4ndCBmZWVkIHNjZW5lIGltYWdlcyBmYXN0IGVub3VnaCkKKyAgICAgICAqIE9yZGVy
IGlzIEZyb250LCBCYWNrLCBMZWZ0LCBSaWdodCwgVG9wLCBCb3R0b20uICBJZiBvbmx5IGEgc2lu
Z2xlIHRleHR1cmUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIGluIGxhdC1sb25nIGZvcm1hdC4K
KyAgICAgICAqIElmIHR3byBhcmUgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIGEgbGF0LWxvbmcgc3Rl
cmVvIHBhaXIuICovCisgICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgU2V0U2t5Ym94
T3ZlcnJpZGUoIFZSX0FSUkFZX0NPVU5UKCB1blRleHR1cmVDb3VudCApIGNvbnN0IFRleHR1cmVf
dCAqcFRleHR1cmVzLCB1aW50MzJfdCB1blRleHR1cmVDb3VudCApID0gMDsKKworICAgICAgIC8q
KiBSZXNldHMgY29tcG9zaXRvciBza3lib3ggYmFjayB0byBkZWZhdWx0cy4gKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpID0gMDsKKworICAgICAgIC8qKiBCcmlu
Z3MgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBmcm9udC4gVGhpcyBpcyB1c2VmdWwgZm9y
IGNvdmVyaW5nIGFueSBvdGhlciB3aW5kb3cgdGhhdCBtYXkgYmUgb24gdGhlIEhNRAorICAgICAg
ICogYW5kIGlzIG9ic2N1cmluZyB0aGUgY29tcG9zaXRvciB3aW5kb3cuICovCisgICAgICAgdmly
dHVhbCB2b2lkIENvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKSA9IDA7CisKKyAgICAgICAvKiogUHVz
aGVzIHRoZSBjb21wb3NpdG9yIHdpbmRvdyB0byB0aGUgYmFjay4gVGhpcyBpcyB1c2VmdWwgZm9y
IGFsbG93aW5nIG90aGVyIGFwcGxpY2F0aW9ucyB0byBkcmF3IGRpcmVjdGx5IHRvIHRoZSBITUQu
ICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JHb1RvQmFjaygpID0gMDsKKworICAg
ICAgIC8qKiBUZWxscyB0aGUgY29tcG9zaXRvciBwcm9jZXNzIHRvIGNsZWFuIHVwIGFuZCBleGl0
LiBZb3UgZG8gbm90IG5lZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGF0IHNodXRkb3duLiBVbmRl
ciBub3JtYWwgCisgICAgICAgKiBjaXJjdW1zdGFuY2VzIHRoZSBjb21wb3NpdG9yIHdpbGwgbWFu
YWdlIGl0cyBvd24gbGlmZSBjeWNsZSBiYXNlZCBvbiB3aGF0IGFwcGxpY2F0aW9ucyBhcmUgcnVu
bmluZy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvclF1aXQoKSA9IDA7CisgICAg
ICAgCisgICAgICAgLyoqIFJldHVybiB3aGV0aGVyIHRoZSBjb21wb3NpdG9yIGlzIGZ1bGxzY3Jl
ZW4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgSXNGdWxsc2NyZWVuKCkgPSAwOworCisgICAgICAg
LyoqIFJldHVybnMgdGhlIHByb2Nlc3MgSUQgb2YgdGhlIHByb2Nlc3MgdGhhdCBpcyBjdXJyZW50
bHkgcmVuZGVyaW5nIHRoZSBzY2VuZSAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q3Vy
cmVudFNjZW5lRm9jdXNQcm9jZXNzKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHBy
b2Nlc3MgSUQgb2YgdGhlIHByb2Nlc3MgdGhhdCByZW5kZXJlZCB0aGUgbGFzdCBmcmFtZSAob3Ig
MCBpZiB0aGUgY29tcG9zaXRvciBpdHNlbGYgcmVuZGVyZWQgdGhlIGZyYW1lLikKKyAgICAgICAq
IFJldHVybnMgMCB3aGVuIGZhZGluZyBvdXQgZnJvbSBhbiBhcHAgYW5kIHRoZSBhcHAncyBwcm9j
ZXNzIElkIHdoZW4gZmFkaW5nIGludG8gYW4gYXBwLiAqLworICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0TGFzdEZyYW1lUmVuZGVyZXIoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVl
IGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaGFzIHRoZSBzY2VuZSBmb2N1cyAqLworICAgICAgIHZp
cnR1YWwgYm9vbCBDYW5SZW5kZXJTY2VuZSgpID0gMDsKKworICAgICAgIC8qKiBDcmVhdGVzIGEg
d2luZG93IG9uIHRoZSBwcmltYXJ5IG1vbml0b3IgdG8gZGlzcGxheSB3aGF0IGlzIGJlaW5nIHNo
b3duIGluIHRoZSBoZWFkc2V0LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTaG93TWlycm9yV2lu
ZG93KCkgPSAwOworCisgICAgICAgLyoqIENsb3NlcyB0aGUgbWlycm9yIHdpbmRvdy4gKi8KKyAg
ICAgICB2aXJ0dWFsIHZvaWQgSGlkZU1pcnJvcldpbmRvdygpID0gMDsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIG1pcnJvciB3aW5kb3cgaXMgc2hvd24uICovCisgICAgICAgdmly
dHVhbCBib29sIElzTWlycm9yV2luZG93VmlzaWJsZSgpID0gMDsKKworICAgICAgIC8qKiBXcml0
ZXMgYWxsIGltYWdlcyB0aGF0IHRoZSBjb21wb3NpdG9yIGtub3dzIGFib3V0IChpbmNsdWRpbmcg
b3ZlcmxheXMpIHRvIGEgJ3NjcmVlbnNob3RzJyBmb2xkZXIgaW4gdGhlIFN0ZWFtVlIgcnVudGlt
ZSByb290LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpID0g
MDsKKworICAgICAgIC8qKiBMZXQgYW4gYXBwIGtub3cgaXQgc2hvdWxkIGJlIHJlbmRlcmluZyB3
aXRoIGxvdyByZXNvdXJjZXMuICovCisgICAgICAgdmlydHVhbCBib29sIFNob3VsZEFwcFJlbmRl
cldpdGhMb3dSZXNvdXJjZXMoKSA9IDA7CisKKyAgICAgICAvKiogT3ZlcnJpZGUgaW50ZXJsZWF2
ZWQgcmVwcm9qZWN0aW9uIGxvZ2ljIHRvIGZvcmNlIG9uLiAqLworICAgICAgIHZpcnR1YWwgdm9p
ZCBGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24oIGJvb2wgYk92ZXJyaWRlICkgPSAwOwor
CisgICAgICAgLyoqIEZvcmNlIHJlY29ubmVjdGluZyB0byB0aGUgY29tcG9zaXRvciBwcm9jZXNz
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGb3JjZVJlY29ubmVjdFByb2Nlc3MoKSA9IDA7CisK
KyAgICAgICAvKiogVGVtcG9yYXJpbHkgc3VzcGVuZHMgcmVuZGVyaW5nICh1c2VmdWwgZm9yIGZp
bmVyIGNvbnRyb2wgb3ZlciBzY2VuZSB0cmFuc2l0aW9ucykuICovCisgICAgICAgdmlydHVhbCB2
b2lkIFN1c3BlbmRSZW5kZXJpbmcoIGJvb2wgYlN1c3BlbmQgKSA9IDA7CisKKyAgICAgICAvKiog
T3BlbnMgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSB3aXRoIHRoZSB1bmRpc3RvcnRlZCBjb21wb3Np
dGVkIGltYWdlIGZvciBlYWNoIGV5ZS4gIFVzZSBSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExIHdo
ZW4gZmluaXNoZWQKKyAgICAgICAqIGluc3RlYWQgb2YgY2FsbGluZyBSZWxlYXNlIG9uIHRoZSBy
ZXNvdXJjZSBpdHNlbGYuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSQ29tcG9zaXRvckVycm9y
IEdldE1pcnJvclRleHR1cmVEM0QxMSggdnI6OkVWUkV5ZSBlRXllLCB2b2lkICpwRDNEMTFEZXZp
Y2VPclJlc291cmNlLCB2b2lkICoqcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyApID0gMDsKKyAg
ICAgICB2aXJ0dWFsIHZvaWQgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSggdm9pZCAqcEQzRDEx
U2hhZGVyUmVzb3VyY2VWaWV3ICkgPSAwOworCisgICAgICAgLyoqIEFjY2VzcyB0byBtaXJyb3Ig
dGV4dHVyZXMgZnJvbSBPcGVuR0wuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSQ29tcG9zaXRv
ckVycm9yIEdldE1pcnJvclRleHR1cmVHTCggdnI6OkVWUkV5ZSBlRXllLCB2cjo6Z2xVSW50X3Qg
KnBnbFRleHR1cmVJZCwgdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90ICpwZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBSZWxlYXNlU2hhcmVkR0xUZXh0
dXJlKCB2cjo6Z2xVSW50X3QgZ2xUZXh0dXJlSWQsIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVf
dCBnbFNoYXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCB2b2lkIExvY2tH
TFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNo
YXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCB2b2lkIFVubG9ja0dMU2hh
cmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVk
VGV4dHVyZUhhbmRsZSApID0gMDsKKworICAgICAgIC8qKiBbVnVsa2FuIE9ubHldCisgICAgICAg
KiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbnVtYmVy
IG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0aGUgdHJh
aWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdpbGwgYmUgYSBzcGFjZSBzZXBhcmF0
ZWQgbGlzdCBvZi1yZXF1aXJlZCBpbnN0YW5jZSBleHRlbnNpb25zIHRvIGVuYWJsZSBpbiBWa0Ny
ZWF0ZUluc3RhbmNlICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRWdWxrYW5JbnN0YW5j
ZUV4dGVuc2lvbnNSZXF1aXJlZCggVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50
MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7CisKKyAgICAgICAvKiogW1Z1bGthbiBvbmx5XQorICAg
ICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51
bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhl
IHRyYWlsaW5nCisgICAgICAgKiBudWxsLiAgVGhlIHN0cmluZyB3aWxsIGJlIGEgc3BhY2Ugc2Vw
YXJhdGVkIGxpc3Qgb2YgcmVxdWlyZWQgZGV2aWNlIGV4dGVuc2lvbnMgdG8gZW5hYmxlIGluIFZr
Q3JlYXRlRGV2aWNlICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRWdWxrYW5EZXZpY2VF
eHRlbnNpb25zUmVxdWlyZWQoIFZrUGh5c2ljYWxEZXZpY2VfVCAqcFBoeXNpY2FsRGV2aWNlLCBW
Ul9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSApID0g
MDsKKworICAgICAgIC8qKiBbIFZ1bGthbi9EM0QxMiBPbmx5IF0KKyAgICAgICAqIFRoZXJlIGFy
ZSB0d28gcHVycG9zZXMgZm9yIFNldEV4cGxpY2l0VGltaW5nTW9kZToKKyAgICAgICAqICAgICAg
IDEuIFRvIGdldCBhIG1vcmUgYWNjdXJhdGUgR1BVIHRpbWVzdGFtcCBmb3Igd2hlbiB0aGUgZnJh
bWUgYmVnaW5zIGluIFZ1bGthbi9EM0QxMiBhcHBsaWNhdGlvbnMuCisgICAgICAgKiAgICAgICAy
LiAoT3B0aW9uYWwpIFRvIGF2b2lkIGhhdmluZyBXYWl0R2V0UG9zZXMgYWNjZXNzIHRoZSBWdWxr
YW4gcXVldWUgc28gdGhhdCB0aGUgcXVldWUgY2FuIGJlIGFjY2Vzc2VkIGZyb20KKyAgICAgICAq
ICAgICAgIGFub3RoZXIgdGhyZWFkIHdoaWxlIFdhaXRHZXRQb3NlcyBpcyBleGVjdXRpbmcuCisg
ICAgICAgKgorICAgICAgICogTW9yZSBhY2N1cmF0ZSBHUFUgdGltZXN0YW1wIGZvciB0aGUgc3Rh
cnQgb2YgdGhlIGZyYW1lIGlzIGFjaGlldmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBjYWxsaW5nCisg
ICAgICAgKiBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgaW1tZWRpYXRlbHkgYmVmb3JlIGl0cyBm
aXJzdCBzdWJtaXNzaW9uIHRvIHRoZSBWdWxrYW4vRDNEMTIgcXVldWUuCisgICAgICAgKiBUaGlz
IGlzIG1vcmUgYWNjdXJhdGUgYmVjYXVzZSBub3JtYWxseSB0aGlzIEdQVSB0aW1lc3RhbXAgaXMg
cmVjb3JkZWQgZHVyaW5nIFdhaXRHZXRQb3Nlcy4gIEluIEQzRDExLCAKKyAgICAgICAqIFdhaXRH
ZXRQb3NlcyBxdWV1ZXMgYSBHUFUgdGltZXN0YW1wIHdyaXRlLCBidXQgaXQgZG9lcyBub3QgYWN0
dWFsbHkgZ2V0IHN1Ym1pdHRlZCB0byB0aGUgR1BVIHVudGlsIHRoZSAKKyAgICAgICAqIGFwcGxp
Y2F0aW9uIGZsdXNoZXMuICBCeSB1c2luZyBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEsIHRoZSB0
aW1lc3RhbXAgaXMgcmVjb3JkZWQgYXQgdGhlIHNhbWUgcGxhY2UgZm9yIAorICAgICAgICogVnVs
a2FuL0QzRDEyIGFzIGl0IGlzIGZvciBEM0QxMSwgcmVzdWx0aW5nIGluIGEgbW9yZSBhY2N1cmF0
ZSBHUFUgdGltZSBtZWFzdXJlbWVudCBmb3IgdGhlIGZyYW1lLgorICAgICAgICoKKyAgICAgICAq
IEF2b2lkaW5nIFdhaXRHZXRQb3NlcyBhY2Nlc3NpbmcgdGhlIFZ1bGthbiBxdWV1ZSBjYW4gYmUg
YWNoaWV2ZWQgdXNpbmcgU2V0RXhwbGljaXRUaW1pbmdNb2RlIGFzIHdlbGwuICBJZiB0aGlzIGlz
IGRlc2lyZWQsCisgICAgICAgKiB0aGUgYXBwbGljYXRpb24gKk1VU1QqIGNhbGwgUG9zdFByZXNl
bnRIYW5kb2ZmIGl0c2VsZiBwcmlvciB0byBXYWl0R2V0UG9zZXMuICBJZiBTZXRFeHBsaWNpdFRp
bWluZ01vZGUgaXMgdHJ1ZSBhbmQgdGhlCisgICAgICAgKiBhcHBsaWNhdGlvbiBjYWxscyBQb3N0
UHJlc2VudEhhbmRvZmYsIHRoZW4gV2FpdEdldFBvc2VzIGlzIGd1YXJhbnRlZWQgbm90IHRvIGFj
Y2VzcyB0aGUgcXVldWUuICBOb3RlIHRoYXQgUG9zdFByZXNlbnRIYW5kb2ZmCisgICAgICAgKiBh
bmQgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhIHdpbGwgYWNjZXNzIHRoZSBxdWV1ZSwgc28gb25s
eSBXYWl0R2V0UG9zZXMgYmVjb21lcyBzYWZlIGZvciBhY2Nlc3NpbmcgdGhlIHF1ZXVlIGZyb20g
YW5vdGhlcgorICAgICAgICogdGhyZWFkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRFeHBs
aWNpdFRpbWluZ01vZGUoIGJvb2wgYkV4cGxpY2l0VGltaW5nTW9kZSApID0gMDsKKworICAgICAg
IC8qKiBbIFZ1bGthbi9EM0QxMiBPbmx5IF0KKyAgICAgICAqIFN1Ym1pdCBleHBsaWNpdCB0aW1p
bmcgZGF0YS4gIFdoZW4gU2V0RXhwbGljaXRUaW1pbmdNb2RlIGlzIHRydWUsIHRoaXMgbXVzdCBi
ZSBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICAgKiB0aGUgYXBwbGljYXRpb24ncyBm
aXJzdCB2a1F1ZXVlU3VibWl0IChWdWxrYW4pIG9yIElEM0QxMkNvbW1hbmRRdWV1ZTo6RXhlY3V0
ZUNvbW1hbmRMaXN0cyAoRDNEMTIpIG9mIGVhY2ggZnJhbWUuCisgICAgICAgKiBUaGlzIGZ1bmN0
aW9uIHdpbGwgaW5zZXJ0IGEgR1BVIHRpbWVzdGFtcCB3cml0ZSBqdXN0IGJlZm9yZSB0aGUgYXBw
bGljYXRpb24gc3RhcnRzIGl0cyByZW5kZXJpbmcuICBUaGlzIGZ1bmN0aW9uCisgICAgICAgKiB3
aWxsIHBlcmZvcm0gYSB2a1F1ZXVlU3VibWl0IG9uIFZ1bGthbiBzbyBtdXN0IG5vdCBiZSBkb25l
IHNpbXVsdGFuZW91c2x5IHdpdGggVmtRdWV1ZSBvcGVyYXRpb25zIG9uIGFub3RoZXIgdGhyZWFk
LgorICAgICAgICogUmV0dXJucyBWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIGlmIFNl
dEV4cGxpY2l0VGltaW5nTW9kZSBpcyBub3QgZW5hYmxlZC4gKi8KKyAgICAgICB2aXJ0dWFsIEVW
UkNvbXBvc2l0b3JFcnJvciBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEoKSA9IDA7Cit9OworCitz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNvbXBvc2l0b3JfVmVyc2lvbiA9ICJJVlJDb21w
b3NpdG9yXzAyMSI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKworCisvLyBpdnJub3RpZmljYXRp
b25zLmgKK25hbWVzcGFjZSB2cgoreworCisjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorCisvLyBV
c2VkIGZvciBwYXNzaW5nIGdyYXBoaWMgZGF0YQorc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90
Cit7CisgICAgICAgTm90aWZpY2F0aW9uQml0bWFwX3QoKQorICAgICAgICAgICAgICA6IG1fcElt
YWdlRGF0YSggbnVsbHB0ciApCisgICAgICAgICAgICAgICwgbV9uV2lkdGgoIDAgKQorICAgICAg
ICAgICAgICAsIG1fbkhlaWdodCggMCApCisgICAgICAgICAgICAgICwgbV9uQnl0ZXNQZXJQaXhl
bCggMCApCisgICAgICAgeworICAgICAgIH07CisKKyAgICAgICB2b2lkICptX3BJbWFnZURhdGE7
CisgICAgICAgaW50MzJfdCBtX25XaWR0aDsKKyAgICAgICBpbnQzMl90IG1fbkhlaWdodDsKKyAg
ICAgICBpbnQzMl90IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9OworCisKKy8qKiBCZSBhd2FyZSB0aGF0
IHRoZSBub3RpZmljYXRpb24gdHlwZSBpcyB1c2VkIGFzICdwcmlvcml0eScgdG8gcGljayB0aGUg
bmV4dCBub3RpZmljYXRpb24gKi8KK2VudW0gRVZSTm90aWZpY2F0aW9uVHlwZQoreworICAgICAg
IC8qKiBUcmFuc2llbnQgbm90aWZpY2F0aW9ucyBhcmUgYXV0b21hdGljYWxseSBoaWRkZW4gYWZ0
ZXIgYSBwZXJpb2Qgb2YgdGltZSBzZXQgYnkgdGhlIHVzZXIuIAorICAgICAgICogVGhleSBhcmUg
dXNlZCBmb3IgdGhpbmdzIGxpa2UgaW5mb3JtYXRpb24gYW5kIGNoYXQgbWVzc2FnZXMgdGhhdCBk
byBub3QgcmVxdWlyZSB1c2VyIGludGVyYWN0aW9uLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlv
blR5cGVfVHJhbnNpZW50ID0gMCwKKworICAgICAgIC8qKiBQZXJzaXN0ZW50IG5vdGlmaWNhdGlv
bnMgYXJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZXkgYXJlIGhpZGRlbiBieSBjYWxsaW5n
IFJlbW92ZU5vdGlmaWNhdGlvbigpLgorICAgICAgICogVGhleSBhcmUgdXNlZCBmb3IgdGhpbmdz
IGxpa2UgcGhvbmUgY2FsbHMgYW5kIGFsYXJtcyB0aGF0IHJlcXVpcmUgdXNlciBpbnRlcmFjdGlv
bi4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQgPSAxLAorCisgICAg
ICAgLyoqIFN5c3RlbSBub3RpZmljYXRpb25zIGFyZSBzaG93biBubyBtYXR0ZXIgd2hhdC4gSXQg
aXMgZXhwZWN0ZWQsIHRoYXQgdGhlIHVsVXNlclZhbHVlIGlzIHVzZWQgYXMgSUQuCisgICAgICAg
ICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHN5c3RlbSBub3RpZmljYXRpb24gaW4gdGhlIHF1ZXVl
IHdpdGggdGhhdCBJRCBpdCBpcyBub3QgYWNjZXB0ZWQgaW50byB0aGUgcXVldWUKKyAgICAgICAg
KiB0byBwcmV2ZW50IHNwYW1taW5nIHdpdGggc3lzdGVtIG5vdGlmaWNhdGlvbiAqLworICAgICAg
IEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUgPSAyLAor
fTsKKworZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQoreworICAgICAgIC8qKiBDcmVhdGVzIGEg
bm90aWZpY2F0aW9uIHdpdGggbWluaW1hbCBleHRlcm5hbCBzdHlsaW5nLiAqLworICAgICAgIEVW
Uk5vdGlmaWNhdGlvblN0eWxlX05vbmUgPSAwLAorCisgICAgICAgLyoqIFVzZWQgZm9yIG5vdGlm
aWNhdGlvbnMgYWJvdXQgb3ZlcmxheS1sZXZlbCBzdGF0dXMuIEluIFN0ZWFtIHRoaXMgaXMgdXNl
ZCBmb3IgZXZlbnRzIGxpa2UgZG93bmxvYWRzIGNvbXBsZXRpbmcuICovCisgICAgICAgRVZSTm90
aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24gPSAxMDAsCisKKyAgICAgICAvKiogVXNlZCBmb3Ig
bm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0cyB0aGF0IGFyZSB1bmtub3duIG9yIG5vdCBhdmFp
bGFibGUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJpZW5kIGludml0YXRpb25zIGFuZCBv
ZmZsaW5lIGZyaWVuZHMuICovCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9E
aXNhYmxlZCA9IDIwMCwKKworICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFib3V0
IGNvbnRhY3RzIHRoYXQgYXJlIGF2YWlsYWJsZSBidXQgaW5hY3RpdmUuIEluIFN0ZWFtIHRoaXMg
aXMgdXNlZCBmb3IgZnJpZW5kcyB0aGF0IGFyZSBvbmxpbmUgYnV0IG5vdCBwbGF5aW5nIGEgZ2Ft
ZS4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0VuYWJsZWQgPSAyMDEs
CisKKyAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0cyB0aGF0
IGFyZSBhdmFpbGFibGUgYW5kIGFjdGl2ZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBmcmll
bmRzIHRoYXQgYXJlIG9ubGluZSBhbmQgY3VycmVudGx5IHJ1bm5pbmcgYSBnYW1lLiAqLworICAg
ICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfQWN0aXZlID0gMjAyLAorfTsKKworc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKKwor
dHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOworCisKKworI3ByYWdtYSBwYWNrKCBw
b3AgKQorCisvKiogQWxsb3dzIG5vdGlmaWNhdGlvbiBzb3VyY2VzIHRvIGludGVyYWN0IHdpdGgg
dGhlIFZSIHN5c3RlbQorICAgICAgIFRoaXMgY3VycmVudCBpbnRlcmZhY2UgaXMgbm90IHlldCBp
bXBsZW1lbnRlZC4gRG8gbm90IHVzZSB5ZXQuICovCitjbGFzcyBJVlJOb3RpZmljYXRpb25zCit7
CitwdWJsaWM6CisgICAgICAgLyoqIENyZWF0ZSBhIG5vdGlmaWNhdGlvbiBhbmQgZW5xdWV1ZSBp
dCB0byBiZSBzaG93biB0byB0aGUgdXNlci4KKyAgICAgICAqIEFuIG92ZXJsYXkgaGFuZGxlIGlz
IHJlcXVpcmVkIHRvIGNyZWF0ZSBhIG5vdGlmaWNhdGlvbiwgYXMgb3RoZXJ3aXNlIGl0IHdvdWxk
IGJlIGltcG9zc2libGUgZm9yIGEgdXNlciB0byBhY3Qgb24gaXQuCisgICAgICAgKiBUbyBjcmVh
dGUgYSB0d28tbGluZSBub3RpZmljYXRpb24sIHVzZSBhIGxpbmUgYnJlYWsgKCdcbicpIHRvIHNw
bGl0IHRoZSB0ZXh0IGludG8gdHdvIGxpbmVzLgorICAgICAgICogVGhlIHBJbWFnZSBhcmd1bWVu
dCBtYXkgYmUgTlVMTCwgaW4gd2hpY2ggY2FzZSB0aGUgc3BlY2lmaWVkIG92ZXJsYXkncyBpY29u
IHdpbGwgYmUgdXNlZCBpbnN0ZWFkLiAqLworICAgICAgIHZpcnR1YWwgRVZSTm90aWZpY2F0aW9u
RXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIHVpbnQ2NF90IHVsVXNlclZhbHVlLCBFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsIGNvbnN0
IGNoYXIgKnBjaFRleHQsIEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCBjb25zdCBOb3RpZmlj
YXRpb25CaXRtYXBfdCAqcEltYWdlLCAvKiBvdXQgKi8gVlJOb3RpZmljYXRpb25JZCAqcE5vdGlm
aWNhdGlvbklkICkgPSAwOworCisgICAgICAgLyoqIERlc3Ryb3kgYSBub3RpZmljYXRpb24sIGhp
ZGluZyBpdCBmaXJzdCBpZiBpdCBjdXJyZW50bHkgc2hvd24gdG8gdGhlIHVzZXIuICovCisgICAg
ICAgdmlydHVhbCBFVlJOb3RpZmljYXRpb25FcnJvciBSZW1vdmVOb3RpZmljYXRpb24oIFZSTm90
aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQgKSA9IDA7CisKK307CisKK3N0YXRpYyBjb25zdCBj
aGFyICogY29uc3QgSVZSTm90aWZpY2F0aW9uc19WZXJzaW9uID0gIklWUk5vdGlmaWNhdGlvbnNf
MDAyIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cm92ZXJsYXkuaAorbmFtZXNw
YWNlIHZyCit7CisKKyAgICAgICAvKiogVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIG92ZXJsYXkg
a2V5IGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuICov
CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGgg
PSAxMjg7CisKKyAgICAgICAvKiogVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIG92ZXJsYXkgbmFt
ZSBpbiBieXRlcywgY291bnRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiAqLwor
ICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVlJPdmVybGF5TWF4TmFtZUxlbmd0aCA9
IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3ZlcmxheXMgdGhhdCBj
YW4gZXhpc3QgaW4gdGhlIHN5c3RlbSBhdCBvbmUgdGltZS4gKi8KKyAgICAgICBzdGF0aWMgY29u
c3QgdWludDMyX3Qga191bk1heE92ZXJsYXlDb3VudCA9IDY0OworCisgICAgICAgLyoqIFRoZSBt
YXhpbXVtIG51bWJlciBvZiBvdmVybGF5IGludGVyc2VjdGlvbiBtYXNrIHByaW1pdGl2ZXMgcGVy
IG92ZXJsYXkgKi8KKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heE92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlc0NvdW50ID0gMzI7CisKKyAgICAgICAvKiogVHlwZXMg
b2YgaW5wdXQgc3VwcG9ydGVkIGJ5IFZSIE92ZXJsYXlzICovCisgICAgICAgZW51bSBWUk92ZXJs
YXlJbnB1dE1ldGhvZAorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJPdmVybGF5SW5wdXRNZXRo
b2RfTm9uZSAgICAgICAgICAgICAgPSAwLCAvLyBObyBpbnB1dCBldmVudHMgd2lsbCBiZSBnZW5l
cmF0ZWQgYXV0b21hdGljYWxseSBmb3IgdGhpcyBvdmVybGF5CisgICAgICAgICAgICAgIFZST3Zl
cmxheUlucHV0TWV0aG9kX01vdXNlICAgICAgICAgICAgICA9IDEsIC8vIFRyYWNrZWQgY29udHJv
bGxlcnMgd2lsbCBnZXQgbW91c2UgZXZlbnRzIGF1dG9tYXRpY2FsbHkKKyAgICAgICB9OworCisg
ICAgICAgLyoqIEFsbG93cyB0aGUgY2FsbGVyIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb3ZlcmxheSB0
cmFuc2Zvcm0gZ2V0dGVyIHRvIGNhbGwuICovCisgICAgICAgZW51bSBWUk92ZXJsYXlUcmFuc2Zv
cm1UeXBlCisgICAgICAgeworICAgICAgICAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fQWJzb2x1
dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICAgICAgICAg
VlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSAgICAgICA9IDEsCisgICAg
ICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9TeXN0ZW1PdmVybGF5ICAgICAgICAgICAgICAg
ICAgICAgPSAyLAorICAgICAgICAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZENvbXBv
bmVudCAgICAgICAgICAgICAgID0gMywKKyAgICAgICB9OworCisgICAgICAgLyoqIE92ZXJsYXkg
Y29udHJvbCBzZXR0aW5ncyAqLworICAgICAgIGVudW0gVlJPdmVybGF5RmxhZ3MKKyAgICAgICB7
CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05vbmUgICAgICAgICAgICAgICAgICAgICA9
IDAsCisKKyAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBvbmx5IHRha2UgZWZmZWN0IHdo
ZW4gcmVuZGVyZWQgdXNpbmcgdGhlIGhpZ2ggcXVhbGl0eSByZW5kZXIgcGF0aCAoc2VlIFNldEhp
Z2hRdWFsaXR5T3ZlcmxheSkuCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX0N1cnZlZCAg
ICAgICAgICAgICAgPSAxLAorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19SR1NTNFggICAg
ICAgICAgICAgID0gMiwKKworICAgICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIG9uIGEgZGFz
aGJvYXJkIG92ZXJsYXkgdG8gcHJldmVudCBhIHRhYiBmcm9tIHNob3dpbmcgdXAgZm9yIHRoYXQg
b3ZlcmxheQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiA9IDMs
CisKKyAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZmxhZyBvbiBhIGRhc2hib2FyZCB0aGF0IGlz
IGFibGUgdG8gZGVhbCB3aXRoIGdhbWVwYWQgZm9jdXMgZXZlbnRzCisgICAgICAgICAgICAgIFZS
T3ZlcmxheUZsYWdzX0FjY2VwdHNHYW1lcGFkRXZlbnRzID0gNCwKKworICAgICAgICAgICAgICAv
LyBJbmRpY2F0ZXMgdGhhdCB0aGUgb3ZlcmxheSBzaG91bGQgZGltL2JyaWdodGVuIHRvIHNob3cg
Z2FtZXBhZCBmb2N1cworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TaG93R2FtZXBhZEZv
Y3VzID0gNSwKKworICAgICAgICAgICAgICAvLyBXaGVuIGluIFZST3ZlcmxheUlucHV0TWV0aG9k
X01vdXNlIHlvdSBjYW4gb3B0aW9uYWxseSBlbmFibGUgc2VuZGluZyBWUlNjcm9sbF90IAorICAg
ICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3JvbGxFdmVudHMgPSA2LAorICAgICAg
ICAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBhZEV2ZW50cyA9IDcsCisKKyAgICAg
ICAgICAgICAgLy8gSWYgc2V0IHRoaXMgd2lsbCByZW5kZXIgYSB2ZXJ0aWNhbCBzY3JvbGwgd2hl
ZWwgb24gdGhlIHByaW1hcnkgY29udHJvbGxlciwgCisgICAgICAgICAgICAgIC8vICBvbmx5IG5l
ZWRlZCBpZiBub3QgdXNpbmcgVlJPdmVybGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzIGJ1dCB5
b3Ugc3RpbGwgd2FudCB0byByZXByZXNlbnQgYSBzY3JvbGwgd2hlZWwKKyAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwgPSA4LAorCisgICAgICAgICAg
ICAgIC8vIElmIHRoaXMgaXMgc2V0IG93bmVyc2hpcCBhbmQgcmVuZGVyIGFjY2VzcyB0byB0aGUg
b3ZlcmxheSBhcmUgdHJhbnNmZXJyZWQgCisgICAgICAgICAgICAgIC8vIHRvIHRoZSBuZXcgc2Nl
bmUgcHJvY2VzcyBvbiBhIGNhbGwgdG8gSVZSQXBwbGljYXRpb25zOjpMYXVuY2hJbnRlcm5hbFBy
b2Nlc3MKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfVHJhbnNmZXJPd25lcnNoaXBUb0lu
dGVybmFsUHJvY2VzcyA9IDksCisKKyAgICAgICAgICAgICAgLy8gSWYgc2V0LCByZW5kZXJzIDUw
JSBvZiB0aGUgdGV4dHVyZSBpbiBlYWNoIGV5ZSwgc2lkZSBieSBzaWRlCisgICAgICAgICAgICAg
IFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwgPSAxMCwgLy8gVGV4dHVyZSBpcyBs
ZWZ0L3JpZ2h0CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfQ3Jvc3Nl
ZCA9IDExLCAvLyBUZXh0dXJlIGlzIGNyb3NzZWQgYW5kIHJpZ2h0L2xlZnQKKworICAgICAgICAg
ICAgICBWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSA9IDEyLCAvLyBUZXh0dXJlIGlzIGEgcGFub3Jh
bWEKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU3RlcmVvUGFub3JhbWEgPSAxMywgLy8g
VGV4dHVyZSBpcyBhIHN0ZXJlbyBwYW5vcmFtYQorCisgICAgICAgICAgICAgIC8vIElmIHRoaXMg
aXMgc2V0IG9uIGFuIG92ZXJsYXkgb3duZWQgYnkgdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRoYXQg
b3ZlcmxheQorICAgICAgICAgICAgICAvLyB3aWxsIGJlIHNvcnRlZCB3aXRoIHRoZSAiT3RoZXIi
IG92ZXJsYXlzIG9uIHRvcCBvZiBhbGwgb3RoZXIgc2NlbmUgb3ZlcmxheXMKKyAgICAgICAgICAg
ICAgVlJPdmVybGF5RmxhZ3NfU29ydFdpdGhOb25TY2VuZU92ZXJsYXlzID0gMTQsCisKKyAgICAg
ICAgICAgICAgLy8gSWYgc2V0LCB0aGUgb3ZlcmxheSB3aWxsIGJlIHNob3duIGluIHRoZSBkYXNo
Ym9hcmQsIG90aGVyd2lzZSBpdCB3aWxsIGJlIGhpZGRlbi4KKyAgICAgICAgICAgICAgVlJPdmVy
bGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkID0gMTUsCisgICAgICAgfTsKKworICAgICAgIGVu
dW0gVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlCisgICAgICAgeworICAgICAgICAgICAgICBWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMCA9IDAsCisgICAgICAgICAgICAgIFZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18xID0gMSwKKyAgICAgICAgICAgICAg
VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIgPSAyLAorICAgICAgICAgICAg
ICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMyA9IDMsCisgICAgICAgICAg
ICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZFN5c3RlbU92ZXJsYXkgPSA0
LAorICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNy
ZWF0ZUNsaWVudE92ZXJsYXk9IDUsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZV9BcHBsaWNhdGlvblF1aXQgPSA2CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kVmVj
dG9yM190IHZTb3VyY2U7CisgICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOwor
ICAgICAgICAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOworICAgICAgIH07
CisKKyAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190CisgICAgICAg
eworICAgICAgICAgICAgICBIbWRWZWN0b3IzX3QgdlBvaW50OworICAgICAgICAgICAgICBIbWRW
ZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICAgICAgICAgSG1kVmVjdG9yMl90IHZVVnM7CisgICAg
ICAgICAgICAgIGZsb2F0IGZEaXN0YW5jZTsKKyAgICAgICB9OworCisgICAgICAgLy8gSW5wdXQg
bW9kZXMgZm9yIHRoZSBCaWcgUGljdHVyZSBnYW1lcGFkIHRleHQgZW50cnkKKyAgICAgICBlbnVt
IEVHYW1lcGFkVGV4dElucHV0TW9kZQorICAgICAgIHsKKyAgICAgICAgICAgICAga19FR2FtZXBh
ZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgICAgICAgICBrX0VHYW1lcGFkVGV4dElu
cHV0TW9kZVBhc3N3b3JkID0gMSwKKyAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1v
ZGVTdWJtaXQgPSAyLAorICAgICAgIH07CisKKyAgICAgICAvLyBDb250cm9scyBudW1iZXIgb2Yg
YWxsb3dlZCBsaW5lcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdhbWVwYWQgdGV4dCBlbnRyeQorICAg
ICAgIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQorICAgICAgIHsKKyAgICAgICAgICAg
ICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlU2luZ2xlTGluZSA9IDAsCisgICAgICAgICAg
ICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxCisgICAgICAg
fTsKKworICAgICAgIC8qKiBEaXJlY3Rpb25zIGZvciBjaGFuZ2luZyBmb2N1cyBiZXR3ZWVuIG92
ZXJsYXlzIHdpdGggdGhlIGdhbWVwYWQgKi8KKyAgICAgICBlbnVtIEVPdmVybGF5RGlyZWN0aW9u
CisgICAgICAgeworICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX1VwID0gMCwKKyAgICAg
ICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9Eb3duID0gMSwKKyAgICAgICAgICAgICAgT3Zlcmxh
eURpcmVjdGlvbl9MZWZ0ID0gMiwKKyAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9SaWdo
dCA9IDMsCisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX0Nv
dW50ID0gNCwKKyAgICAgICB9OworCisgICAgICAgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIE92ZXJsYXlJbnRlcnNl
Y3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSwKKyAgICAgICAgICAgICAgT3ZlcmxheUludGVy
c2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlLAorICAgICAgIH07CisKKyAgICAgICBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90CisgICAgICAgeworICAgICAgICAgICAgICBmbG9h
dCBtX2ZsVG9wTGVmdFg7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WTsKKyAgICAg
ICAgICAgICAgZmxvYXQgbV9mbFdpZHRoOworICAgICAgICAgICAgICBmbG9hdCBtX2ZsSGVpZ2h0
OworICAgICAgIH07CisKKyAgICAgICBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90Cisg
ICAgICAgeworICAgICAgICAgICAgICBmbG9hdCBtX2ZsQ2VudGVyWDsKKyAgICAgICAgICAgICAg
ZmxvYXQgbV9mbENlbnRlclk7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxSYWRpdXM7CisgICAg
ICAgfTsKKworICAgICAgIC8qKiBOT1RFISEhIElmIHlvdSBjaGFuZ2UgdGhpcyB5b3UgTVVTVCBt
YW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgYW5kIG9wZW52cl9hcGlfZmxhdC5o
LnB5ICovCisgICAgICAgdHlwZWRlZiB1bmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50
ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1fUmVjdGFuZ2xlOworICAgICAgICAgICAgICBJbnRl
cnNlY3Rpb25NYXNrQ2lyY2xlX3QgbV9DaXJjbGU7CisgICAgICAgfSBWUk92ZXJsYXlJbnRlcnNl
Y3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdDsKKworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJbnRl
cnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZSBtX25QcmltaXRpdmVUeXBlOworICAgICAg
ICAgICAgICBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCBtX1ByaW1p
dGl2ZTsKKyAgICAgICB9OworCisgICAgICAgY2xhc3MgSVZST3ZlcmxheQorICAgICAgIHsKKyAg
ICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE92ZXJsYXkgbWFuYWdlbWVu
dCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBGaW5kcyBhbiBleGlzdGluZyBv
dmVybGF5IHdpdGggdGhlIHNwZWNpZmllZCBrZXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIEZpbmRPdmVybGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5LCBW
Uk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBDcmVhdGVzIGEgbmV3IG5hbWVkIG92ZXJsYXkuIEFsbCBvdmVybGF5cyBzdGFydCBoaWRk
ZW4gYW5kIHdpdGggZGVmYXVsdCBzZXR0aW5ncy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgQ3JlYXRlT3ZlcmxheSggY29uc3QgY2hhciAqcGNoT3ZlcmxheUtleSwg
Y29uc3QgY2hhciAqcGNoT3ZlcmxheU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlI
YW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIERlc3Ryb3lzIHRoZSBzcGVjaWZpZWQg
b3ZlcmxheS4gV2hlbiBhbiBhcHBsaWNhdGlvbiBjYWxscyBWUl9TaHV0ZG93biBhbGwgb3Zlcmxh
eXMgY3JlYXRlZCBieSB0aGF0IGFwcCBhcmUKKyAgICAgICAgICAgICAgKiBhdXRvbWF0aWNhbGx5
IGRlc3Ryb3llZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgRGVz
dHJveU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogU3BlY2lmeSB3aGljaCBvdmVybGF5IHRvIHVzZSB0aGUgaGlnaCBx
dWFsaXR5IHJlbmRlciBwYXRoLiAgVGhpcyBvdmVybGF5IHdpbGwgYmUgY29tcG9zaXRlZCBpbiBk
dXJpbmcgdGhlIGRpc3RvcnRpb24gcGFzcyB3aGljaAorICAgICAgICAgICAgICAqIHJlc3VsdHMg
aW4gaXQgZHJhd2luZyBvbiB0b3Agb2YgZXZlcnl0aGluZyBlbHNlLCBidXQgYWxzbyBhdCBhIGhp
Z2hlciBxdWFsaXR5IGFzIGl0IHNhbXBsZXMgdGhlIHNvdXJjZSB0ZXh0dXJlIGRpcmVjdGx5IHJh
dGhlciB0aGFuCisgICAgICAgICAgICAgICogcmFzdGVyaXppbmcgaW50byBlYWNoIGV5ZSdzIHJl
bmRlciB0ZXh0dXJlIGZpcnN0LiAgQmVjYXVzZSBpZiB0aGlzLCBvbmx5IG9uZSBvZiB0aGVzZSBp
cyBzdXBwb3J0ZWQgYXQgYW55IGdpdmVuIHRpbWUuICBJdCBpcyBtb3N0IHVzZWZ1bAorICAgICAg
ICAgICAgICAqIGZvciBvdmVybGF5cyB0aGF0IGFyZSBleHBlY3RlZCB0byB0YWtlIHVwIG1vc3Qg
b2YgdGhlIHVzZXIncyB2aWV3IChlLmcuIHN0cmVhbWluZyB2aWRlbykuCisgICAgICAgICAgICAg
ICogVGhpcyBtb2RlIGRvZXMgbm90IHN1cHBvcnQgbW91c2UgaW5wdXQgdG8geW91ciBvdmVybGF5
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRIaWdoUXVhbGl0
eU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgb3ZlcmxheSBoYW5kbGUgb2YgdGhlIGN1cnJlbnQg
b3ZlcmxheSBiZWluZyByZW5kZXJlZCB1c2luZyB0aGUgc2luZ2xlIGhpZ2ggcXVhbGl0eSBvdmVy
bGF5IHJlbmRlciBwYXRoLgorICAgICAgICAgICAgICAqIE90aGVyd2lzZSBpdCB3aWxsIHJldHVy
biBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6
OlZST3ZlcmxheUhhbmRsZV90IEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpID0gMDsKKworICAgICAg
ICAgICAgICAvKiogRmlsbHMgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3aXRoIHRoZSBzdHJpbmcga2V5
IG9mIHRoZSBvdmVybGF5LiBSZXR1cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCB0byBz
dG9yZSB0aGUga2V5LCBpbmNsdWRpbmcKKyAgICAgICAgICAgICAgKiB0aGUgdGVybWluYXRpbmcg
bnVsbCBjaGFyYWN0ZXIuIGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggd2lsbCBiZSBlbm91Z2gg
Ynl0ZXMgdG8gZml0IHRoZSBzdHJpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0T3ZlcmxheUtleSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUl9P
VVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3Zl
cmxheUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAgICAgICAgICAgICAvKiogRmlsbHMg
dGhlIHByb3ZpZGVkIGJ1ZmZlciB3aXRoIHRoZSBmcmllbmRseSBuYW1lIG9mIHRoZSBvdmVybGF5
LiBSZXR1cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCB0byBzdG9yZSB0aGUga2V5LCBp
bmNsdWRpbmcKKyAgICAgICAgICAgICAgKiB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIu
IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoIHdpbGwgYmUgZW5vdWdoIGJ5dGVzIHRvIGZpdCB0
aGUgc3RyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92ZXJsYXlO
YW1lKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSX09VVF9TVFJJTkcoKSBj
aGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJyb3IgKnBF
cnJvciA9IDBMICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBzZXQgdGhlIG5hbWUgdG8gdXNl
IGZvciB0aGlzIG92ZXJsYXkgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheU5hbWUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29u
c3QgY2hhciAqcGNoTmFtZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcmF3
IGltYWdlIGRhdGEgZnJvbSBhbiBvdmVybGF5LiBPdmVybGF5IGltYWdlIGRhdGEgaXMgYWx3YXlz
IHJldHVybmVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIgcGl4ZWwuIElmIHRoZSBidWZmZXIg
aXMgbm90IGxhcmdlIGVub3VnaCwgd2lkdGggYW5kIGhlaWdodCAKKyAgICAgICAgICAgICAgKiB3
aWxsIGJlIHNldCBhbmQgVlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCBpcyByZXR1cm5lZC4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUltYWdl
RGF0YSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwdkJ1ZmZlciwg
dWludDMyX3QgdW5CdWZmZXJTaXplLCB1aW50MzJfdCAqcHVuV2lkdGgsIHVpbnQzMl90ICpwdW5I
ZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHJldHVybnMgYSBzdHJpbmcgdGhhdCBj
b3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgb3ZlcmxheSBlcnJvci4gVGhlIHN0cmluZyB3
aWxsIGJlIHRoZSBuYW1lIAorICAgICAgICAgICAgICAqIG9mIHRoZSBlcnJvciBlbnVtIHZhbHVl
IGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oIEVWUk92ZXJsYXlFcnJvciBlcnJv
ciApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3ZlcmxheSByZW5kZXJpbmcgbWV0
aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgcGlkIHRoYXQgaXMgYWxs
b3dlZCB0byByZW5kZXIgdG8gdGhpcyBvdmVybGF5ICh0aGUgY3JlYXRvciBwaWQgaXMgYWx3YXlz
IGFsbG93IHRvIHJlbmRlciksCisgICAgICAgICAgICAgICogICAgICAgYnkgZGVmYXVsdCB0aGlz
IGlzIHRoZSBwaWQgb2YgdGhlIHByb2Nlc3MgdGhhdCBtYWRlIHRoZSBvdmVybGF5ICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5QSUQgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHBpZCB0aGF0IGlzIGFsbG93ZWQgdG8gcmVu
ZGVyIHRvIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdl
dE92ZXJsYXlSZW5kZXJpbmdQaWQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogU3BlY2lmeSBmbGFnIHNldHRpbmcgZm9yIGEgZ2l2
ZW4gb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRP
dmVybGF5RmxhZyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlG
bGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIFNldHMgZmxhZyBzZXR0aW5nIGZvciBhIGdpdmVuIG92ZXJsYXkgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUZsYWcoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sICpw
YkVuYWJsZWQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGNvbG9yIHRpbnQg
b2YgdGhlIG92ZXJsYXkgcXVhZC4gVXNlIDAuMCB0byAxLjAgcGVyIGNoYW5uZWwuICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlDb2xvciggVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZs
b2F0IGZCbHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBjb2xvciB0aW50
IG9mIHRoZSBvdmVybGF5IHF1YWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIEdldE92ZXJsYXlDb2xvciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCAqcGZSZWQsIGZsb2F0ICpwZkdyZWVuLCBmbG9hdCAqcGZCbHVlICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmxheSBxdWFkLiBVc2Ug
MS4wIGZvciAxMDAgcGVyY2VudCBvcGFjaXR5IHRvIDAuMCBmb3IgMCBwZXJjZW50IG9wYWNpdHku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBo
YSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmQWxwaGEgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFscGhhIG9mIHRoZSBvdmVybGF5IHF1YWQu
IEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmluZyBhdCAxMDAgcGVyY2VudCBhbHBoYSAo
MS4wKS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zlcmxh
eUFscGhhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICpwZkFscGhh
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhl
IHRleGVscyBpbiB0aGUgb3ZlcmxheS4gMS4wIG1lYW5zIHRoZSB0ZXhlbHMgYXJlIHNxdWFyZS4g
Mi4wIG1lYW5zIHRoZSB0ZXhlbHMKKyAgICAgICAgICAgICAgKiBhcmUgdHdpY2UgYXMgd2lkZSBh
cyB0aGV5IGFyZSB0YWxsLiBEZWZhdWx0cyB0byAxLjAuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXhlbEFzcGVjdCggVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3BlY3QgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIEdldHMgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgdGV4ZWxzIGluIHRoZSBvdmVy
bGF5LiBEZWZhdWx0cyB0byAxLjAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0ICpwZlRleGVsQXNwZWN0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBT
ZXRzIHRoZSByZW5kZXJpbmcgc29ydCBvcmRlciBmb3IgdGhlIG92ZXJsYXkuIE92ZXJsYXlzIGFy
ZSByZW5kZXJlZCB0aGlzIG9yZGVyOgorICAgICAgICAgICAgICAqICAgICAgT3ZlcmxheXMgb3du
ZWQgYnkgdGhlIHNjZW5lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICogICAgICBPdmVybGF5
cyBvd25lZCBieSBzb21lIG90aGVyIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICoKKyAgICAg
ICAgICAgICAgKiAgICAgICBXaXRoaW4gYSBjYXRlZ29yeSBvdmVybGF5cyBhcmUgcmVuZGVyZWQg
bG93ZXN0IHNvcnQgb3JkZXIgdG8gaGlnaGVzdCBzb3J0IG9yZGVyLiBPdmVybGF5cyB3aXRoIHRo
ZSBzYW1lIAorICAgICAgICAgICAgICAqICAgICAgIHNvcnQgb3JkZXIgYXJlIHJlbmRlcmVkIGJh
Y2sgdG8gZnJvbnQgYmFzZSBvbiBkaXN0YW5jZSBmcm9tIHRoZSBITUQuCisgICAgICAgICAgICAg
ICoKKyAgICAgICAgICAgICAgKiAgICAgICBTb3J0IG9yZGVyIGRlZmF1bHRzIHRvIDAuICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlTb3J0T3JkZXIo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5Tb3J0T3JkZXIg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHNvcnQgb3JkZXIgb2YgdGhlIG92
ZXJsYXkuIFNlZSBTZXRPdmVybGF5U29ydE9yZGVyIGZvciBob3cgdGhpcyB3b3Jrcy4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVNvcnRPcmRlcigg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcHVuU29ydE9yZGVy
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB3aWR0aCBvZiB0aGUgb3Zlcmxh
eSBxdWFkIGluIG1ldGVycy4gQnkgZGVmYXVsdCBvdmVybGF5cyBhcmUgcmVuZGVyZWQgb24gYSBx
dWFkIHRoYXQgaXMgMSBtZXRlciBhY3Jvc3MgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSBvdmVybGF5IHF1YWQgaW4gbWV0ZXJzLiBC
eSBkZWZhdWx0IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBvbiBhIHF1YWQgdGhhdCBpcyAxIG1ldGVy
IGFjcm9zcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVy
bGF5V2lkdGhJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9h
dCAqcGZXaWR0aEluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGb3IgaGlnaC1x
dWFsaXR5IGN1cnZlZCBvdmVybGF5cyBvbmx5LCBzZXRzIHRoZSBkaXN0YW5jZSByYW5nZSBpbiBt
ZXRlcnMgZnJvbSB0aGUgb3ZlcmxheSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgY3VydmUKKyAgICAg
ICAgICAgICAgKiB0aGUgc3VyZmFjZSBhcm91bmQgdGhlIHZpZXdlci4gIE1pbiBpcyBkaXN0YW5j
ZSBpcyB3aGVuIHRoZSBzdXJmYWNlIHdpbGwgYmUgbW9zdCBjdXJ2ZWQuICBNYXggaXMgd2hlbiBs
ZWFzdCBjdXJ2ZWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0IGZNYXhE
aXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGb3IgaGlnaC1xdWFs
aXR5IGN1cnZlZCBvdmVybGF5cyBvbmx5LCBnZXRzIHRoZSBkaXN0YW5jZSByYW5nZSBpbiBtZXRl
cnMgZnJvbSB0aGUgb3ZlcmxheSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgY3VydmUKKyAgICAgICAg
ICAgICAgKiB0aGUgc3VyZmFjZSBhcm91bmQgdGhlIHZpZXdlci4gIE1pbiBpcyBkaXN0YW5jZSBp
cyB3aGVuIHRoZSBzdXJmYWNlIHdpbGwgYmUgbW9zdCBjdXJ2ZWQuICBNYXggaXMgd2hlbiBsZWFz
dCBjdXJ2ZWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92
ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgKnBmTWF4
RGlzdGFuY2VJbk1ldGVycyApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY29s
b3JzcGFjZSB0aGUgb3ZlcmxheSB0ZXh0dXJlJ3MgZGF0YSBpcyBpbi4gIERlZmF1bHRzIHRvICdh
dXRvJy4KKyAgICAgICAgICAgICAgKiBJZiB0aGUgdGV4dHVyZSBuZWVkcyB0byBiZSByZXNvbHZl
ZCwgeW91IHNob3VsZCBjYWxsIFNldE92ZXJsYXlUZXh0dXJlIHdpdGggdGhlIGFwcHJvcHJpYXRl
IGNvbG9yc3BhY2UgaW5zdGVhZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgb3ZlcmxheSdzIGN1cnJlbnQgY29sb3JzcGFjZSBzZXR0
aW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5
VGV4dHVyZUNvbG9yU3BhY2UoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNv
bG9yU3BhY2UgKnBlVGV4dHVyZUNvbG9yU3BhY2UgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFNldHMgdGhlIHBhcnQgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGZvciB0aGUgb3ZlcmxheS4gVVYg
TWluIGlzIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBhbmQgVVYgTWF4IGlzIHRoZSBsb3dlciByaWdo
dCBjb3JuZXIuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlUZXh0dXJlQm91bmRzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNv
bnN0IFZSVGV4dHVyZUJvdW5kc190ICpwT3ZlcmxheVRleHR1cmVCb3VuZHMgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIEdldHMgdGhlIHBhcnQgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGZvciB0
aGUgb3ZlcmxheS4gVVYgTWluIGlzIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBhbmQgVVYgTWF4IGlz
IHRoZSBsb3dlciByaWdodCBjb3JuZXIuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQm91bmRzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZSVGV4dHVyZUJvdW5kc190ICpwT3ZlcmxheVRleHR1cmVCb3VuZHMgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgcmVuZGVyIG1vZGVsIHRvIGRyYXcgYmVoaW5k
IHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92ZXJs
YXlSZW5kZXJNb2RlbCggdnI6OlZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgSG1kQ29sb3JfdCAqcENvbG9yLCB2
cjo6RVZST3ZlcmxheUVycm9yICpwRXJyb3IgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNl
dHMgcmVuZGVyIG1vZGVsIHRvIGRyYXcgYmVoaW5kIHRoaXMgb3ZlcmxheSBhbmQgdGhlIHZlcnRl
eCBjb2xvciB0byB1c2UsIHBhc3MgbnVsbCBmb3IgcENvbG9yIHRvIG1hdGNoIHRoZSBvdmVybGF5
cyB2ZXJ0ZXggY29sb3IuIAorICAgICAgICAgICAgICAgICAgICAgVGhlIG1vZGVsIGlzIHNjYWxl
ZCBieSB0aGUgc2FtZSBhbW91bnQgYXMgdGhlIG92ZXJsYXksIHdpdGggYSBkZWZhdWx0IG9mIDFt
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25z
dCBjaGFyICpwY2hSZW5kZXJNb2RlbCwgY29uc3QgSG1kQ29sb3JfdCAqcENvbG9yICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gdHlwZSBvZiB0aGlzIG92
ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJs
YXlUcmFuc2Zvcm1UeXBlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3Zl
cmxheVRyYW5zZm9ybVR5cGUgKnBlVHJhbnNmb3JtVHlwZSApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIGFic29sdXRlIHRyYWNraW5nIG9yaWdpbi4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9y
bUFic29sdXRlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgY29uc3QgSG1kTWF0cml4MzRfdCAqcG1hdFRy
YWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgYWJzb2x1dGUuIFJldHVybnMgYW4gZXJyb3Ig
aWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSggVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiAqcGVU
cmFja2luZ09yaWdpbiwgSG1kTWF0cml4MzRfdCAqcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5
VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0g
dG8gcmVsYXRpdmUgdG8gdGhlIHRyYW5zZm9ybSBvZiB0aGUgc3BlY2lmaWVkIHRyYWNrZWQgZGV2
aWNlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuVHJhY2tlZERldmljZSwgY29uc3QgSG1k
TWF0cml4MzRfdCAqcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyByZWxhdGl2ZSB0
byBhIHRyYWNrZWQgZGV2aWNlLiBSZXR1cm5zIGFuIGVycm9yIGlmIHRoZSB0cmFuc2Zvcm0gaXMg
c29tZSBvdGhlciB0eXBlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKCBWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5UcmFja2VkRGV2
aWNlLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIGRyYXcgdGhl
IG92ZXJsYXkgb24gYSByZW5kZXJtb2RlbCBjb21wb25lbnQgbWVzaCBpbnN0ZWFkIG9mIGEgcXVh
ZC4gVGhpcyB3aWxsIG9ubHkgZHJhdyB3aGVuIHRoZSBzeXN0ZW0gaXMKKyAgICAgICAgICAgICAg
KiBkcmF3aW5nIHRoZSBkZXZpY2UuIE92ZXJsYXlzIHdpdGggdGhpcyB0cmFuc2Zvcm0gdHlwZSBj
YW5ub3QgcmVjZWl2ZSBtb3VzZSBldmVudHMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgsIGNvbnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpbmZvcm1hdGlvbiB3aGVuIHRoZSBvdmVy
bGF5IGlzIHJlbmRlcmluZyBvbiBhIGNvbXBvbmVudC4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25l
bnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4
X3QgKnB1bkRldmljZUluZGV4LCBjaGFyICpwY2hDb21wb25lbnROYW1lLCB1aW50MzJfdCB1bkNv
bXBvbmVudE5hbWVTaXplICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSB0cmFu
c2Zvcm0gaWYgaXQgaXMgcmVsYXRpdmUgdG8gYW5vdGhlciBvdmVybGF5LiBSZXR1cm5zIGFuIGVy
cm9yIGlmIHRoZSB0cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0eXBlLiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybU92ZXJsYXlS
ZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlIYW5k
bGVfdCAqdWxPdmVybGF5SGFuZGxlUGFyZW50LCBIbWRNYXRyaXgzNF90ICpwbWF0UGFyZW50T3Zl
cmxheVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKKyAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gcmVsYXRpdmUgdG8gdGhlIHRyYW5zZm9ybSBv
ZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkuIFRoaXMgb3ZlcmxheXMgdmlzaWJpbGl0eSB3aWxsIGFs
c28gdHJhY2sgdGhlIHBhcmVudHMgdmlzaWJpbGl0eSAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZyOjpFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybU92ZXJsYXlSZWxhdGl2ZSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGVQYXJlbnQsIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRQYXJlbnRPdmVybGF5
VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTaG93cyB0aGUg
VlIgb3ZlcmxheS4gIEZvciBkYXNoYm9hcmQgb3ZlcmxheXMsIG9ubHkgdGhlIERhc2hib2FyZCBN
YW5hZ2VyIGlzIGFsbG93ZWQgdG8gY2FsbCB0aGlzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBTaG93T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBIaWRlcyB0aGUgVlIgb3ZlcmxheS4g
IEZvciBkYXNoYm9hcmQgb3ZlcmxheXMsIG9ubHkgdGhlIERhc2hib2FyZCBNYW5hZ2VyIGlzIGFs
bG93ZWQgdG8gY2FsbCB0aGlzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBIaWRlT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIG92ZXJsYXkgaXMgdmlz
aWJsZS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzT3ZlcmxheVZpc2libGUoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAv
KiogR2V0IHRoZSB0cmFuc2Zvcm0gaW4gM2Qgc3BhY2UgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lm
aWMgMmQgcG9pbnQgaW4gdGhlIG92ZXJsYXkncyBjb29yZGluYXRlIHNwYWNlICh3aGVyZSAwLDAg
aXMgdGhlIGxvd2VyIGxlZnQpLiAtWiBwb2ludHMgb3V0IG9mIHRoZSBvdmVybGF5ICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldFRyYW5zZm9ybUZvck92ZXJsYXlD
b29yZGluYXRlcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdV
bml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIEhtZFZlY3RvcjJfdCBjb29yZGluYXRlc0lu
T3ZlcmxheSwgSG1kTWF0cml4MzRfdCAqcG1hdFRyYW5zZm9ybSApID0gMDsKKworICAgICAgICAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAgICAgICAgLy8gT3ZlcmxheSBpbnB1dCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2
ZW50IG9uIHRoZSBvdmVybGF5J3MgZXZlbnQgcXVldWUsIGlmIHRoZXJlIGlzIG9uZS4gCisgICAg
ICAgICAgICAgICogSWYgdGhlcmUgYXJlIG5vIGV2ZW50cyB0aGlzIG1ldGhvZCByZXR1cm5zIGZh
bHNlLiB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIFZSRXZl
bnRfdCBzdHJ1Y3QgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0T3Zlcmxh
eUV2ZW50KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSRXZlbnRfdCAqcEV2
ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0
dXJucyB0aGUgY3VycmVudCBpbnB1dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBvdmVybGF5
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW5w
dXRNZXRob2QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5w
dXRNZXRob2QgKnBlSW5wdXRNZXRob2QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMg
dGhlIGlucHV0IHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIG92ZXJsYXkuICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlJbnB1dE1ldGhvZCggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCBlSW5w
dXRNZXRob2QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIG1vdXNlIHNjYWxp
bmcgZmFjdG9yIHRoYXQgaXMgdXNlZCBmb3IgbW91c2UgZXZlbnRzLiBUaGUgYWN0dWFsIHRleHR1
cmUgbWF5IGJlIGEgZGlmZmVyZW50IHNpemUsIGJ1dCB0aGlzIGlzCisgICAgICAgICAgICAgICog
dHlwaWNhbGx5IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGluIHBpeGVscy4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheU1vdXNlU2NhbGUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgSG1kVmVjdG9yMl90ICpwdmVjTW91
c2VTY2FsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgbW91c2Ugc2NhbGlu
ZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVudHMuIFRoZSBhY3R1YWwgdGV4dHVy
ZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMgaXMKKyAgICAgICAgICAgICAgKiB0
eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxzIChub3QgaW4g
d29ybGQgc3BhY2UpLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBT
ZXRPdmVybGF5TW91c2VTY2FsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBj
b25zdCBIbWRWZWN0b3IyX3QgKnB2ZWNNb3VzZVNjYWxlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBDb21wdXRlcyB0aGUgb3ZlcmxheS1zcGFjZSBwaXhlbCBjb29yZGluYXRlcyBvZiB3aGVy
ZSB0aGUgcmF5IGludGVyc2VjdHMgdGhlIG92ZXJsYXkgd2l0aCB0aGUKKyAgICAgICAgICAgICAg
KiBzcGVjaWZpZWQgc2V0dGluZ3MuIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgaXMgbm8gaW50ZXJz
ZWN0aW9uLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgQ29tcHV0ZU92ZXJsYXlJbnRl
cnNlY3Rpb24oIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgVlJPdmVy
bGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QgKnBQYXJhbXMsIFZST3ZlcmxheUludGVyc2VjdGlvblJl
c3VsdHNfdCAqcFJlc3VsdHMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFByb2Nlc3NlcyBt
b3VzZSBpbnB1dCBmcm9tIHRoZSBzcGVjaWZpZWQgY29udHJvbGxlciBhcyB0aG91Z2ggaXQgd2Vy
ZSBhIG1vdXNlIHBvaW50ZWQgYXQgYSBjb21wb3NpdG9yIG92ZXJsYXkgd2l0aCB0aGUKKyAgICAg
ICAgICAgICAgKiBzcGVjaWZpZWQgc2V0dGluZ3MuIFRoZSBjb250cm9sbGVyIGlzIHRyZWF0ZWQg
bGlrZSBhIGxhc2VyIHBvaW50ZXIgb24gdGhlIC16IGF4aXMuIFRoZSBwb2ludCB3aGVyZSB0aGUg
bGFzZXIgcG9pbnRlciB3b3VsZAorICAgICAgICAgICAgICAqIGludGVyc2VjdCB3aXRoIHRoZSBv
dmVybGF5IGlzIHRoZSBtb3VzZSBwb3NpdGlvbiwgdGhlIHRyaWdnZXIgaXMgbGVmdCBtb3VzZSwg
YW5kIHRoZSB0cmFjayBwYWQgaXMgcmlnaHQgbW91c2UuIAorICAgICAgICAgICAgICAqCisgICAg
ICAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNvbnRyb2xsZXIgaXMgcG9pbnRlZCBhdCB0
aGUgb3ZlcmxheSBhbmQgYW4gZXZlbnQgd2FzIGdlbmVyYXRlZC4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBib29sIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVu
Q29udHJvbGxlckRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5z
IHRydWUgaWYgdGhlIHNwZWNpZmllZCBvdmVybGF5IGlzIHRoZSBob3ZlciB0YXJnZXQuIEFuIG92
ZXJsYXkgaXMgdGhlIGhvdmVyIHRhcmdldCB3aGVuIGl0IGlzIHRoZSBsYXN0IG92ZXJsYXkgIm1v
dXNlZCBvdmVyIiAKKyAgICAgICAgICAgICAgKiBieSB0aGUgdmlydHVhbCBtb3VzZSBwb2ludGVy
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBjdXJyZW50IEdhbWVwYWQgZm9jdXMgb3ZlcmxheSAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCBHZXRHYW1lcGFkRm9jdXNPdmVybGF5
KCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjdXJyZW50IEdhbWVwYWQgZm9j
dXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRH
YW1lcGFkRm9jdXNPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE5ld0ZvY3VzT3ZlcmxheSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyBhbiBvdmVybGF5J3MgbmVpZ2hib3IuIFRo
aXMgd2lsbCBhbHNvIHNldCB0aGUgbmVpZ2hib3Igb2YgdGhlICJ0byIgb3ZlcmxheQorICAgICAg
ICAgICAgICAqIHRvIHBvaW50IGJhY2sgdG8gdGhlICJmcm9tIiBvdmVybGF5LiBJZiBhbiBvdmVy
bGF5J3MgbmVpZ2hib3IgaXMgc2V0IHRvIGludmFsaWQgYm90aAorICAgICAgICAgICAgICAqIGVu
ZHMgd2lsbCBiZSBjbGVhcmVkICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlOZWlnaGJvciggRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJP
dmVybGF5SGFuZGxlX3QgdWxGcm9tLCBWUk92ZXJsYXlIYW5kbGVfdCB1bFRvICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBDaGFuZ2VzIHRoZSBHYW1lcGFkIGZvY3VzIGZyb20gb25lIG92ZXJs
YXkgdG8gb25lIG9mIGl0cyBuZWlnaGJvcnMuIFJldHVybnMgVlJPdmVybGF5RXJyb3JfTm9OZWln
aGJvciBpZiB0aGVyZSBpcyBubworICAgICAgICAgICAgICAqIG5laWdoYm9yIGluIHRoYXQgZGly
ZWN0aW9uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1l
cGFkRm9jdXNUb05laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92ZXJs
YXlIYW5kbGVfdCB1bEZyb20gKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE92ZXJs
YXkgdGV4dHVyZSBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBUZXh0dXJlIHRv
IGRyYXcgZm9yIHRoZSBvdmVybGF5LiBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBi
eSB0aGUgb3ZlcmxheSdzIGNyZWF0b3Igb3IgcmVuZGVyZXIgcHJvY2VzcyAoc2VlIFNldE92ZXJs
YXlSZW5kZXJpbmdQaWQpIC4KKyAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAqIE9wZW5H
TCBkaXJ0eSBzdGF0ZToKKyAgICAgICAgICAgICAgKiAgICAgICBnbEJpbmRUZXh0dXJlCisgICAg
ICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IFRl
eHR1cmVfdCAqcFRleHR1cmUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFVzZSB0aGlzIHRv
IHRlbGwgdGhlIG92ZXJsYXkgc3lzdGVtIHRvIHJlbGVhc2UgdGhlIHRleHR1cmUgc2V0IGZvciB0
aGlzIG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIENs
ZWFyT3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0g
MDsKKworICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50ZXJmYWNlIGZvciBwcm92aWRpbmcg
dGhlIGRhdGEgYXMgYSBzdHJlYW0gb2YgYnl0ZXMsIGJ1dCB0aGVyZSBpcyBhbiB1cHBlciBib3Vu
ZCBvbiBkYXRhIAorICAgICAgICAgICAgICAqIHRoYXQgY2FuIGJlIHNlbnQuIFRoaXMgZnVuY3Rp
b24gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5J3MgcmVuZGVyZXIgcHJvY2Vzcy4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJhdygg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwdkJ1ZmZlciwgdWludDMy
X3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHVpbnQzMl90IHVuRGVwdGggKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFNlcGFyYXRlIGludGVyZmFjZSBmb3IgcHJvdmlkaW5nIHRoZSBp
bWFnZSB0aHJvdWdoIGEgZmlsZW5hbWU6IGNhbiBiZSBwbmcgb3IganBnLCBhbmQgc2hvdWxkIG5v
dCBiZSBiaWdnZXIgdGhhbiAxOTIweDEwODAuCisgICAgICAgICAgICAgICogVGhpcyBmdW5jdGlv
biBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkncyByZW5kZXJlciBwcm9jZXNzICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlGcm9tRmls
ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBjaGFyICpwY2hGaWxl
UGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBuYXRpdmUgdGV4dHVyZSBo
YW5kbGUvZGV2aWNlIGZvciBhbiBvdmVybGF5IHlvdSBoYXZlIGNyZWF0ZWQuCisgICAgICAgICAg
ICAgICogT24gd2luZG93cyB0aGlzIGhhbmRsZSB3aWxsIGJlIGEgSUQzRDExU2hhZGVyUmVzb3Vy
Y2VWaWV3IHdpdGggYSBJRDNEMTFUZXh0dXJlMkQgYm91bmQuCisgICAgICAgICAgICAgICoKKyAg
ICAgICAgICAgICAgKiBUaGUgdGV4dHVyZSB3aWxsIGFsd2F5cyBiZSBzaXplZCB0byBtYXRjaCB0
aGUgYmFja2luZyB0ZXh0dXJlIHlvdSBzdXBwbGllZCBpbiBTZXRPdmVybGF5VGV4dHVyZSBhYm92
ZS4KKyAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAqIFlvdSBNVVNUIGNhbGwgUmVsZWFz
ZU5hdGl2ZU92ZXJsYXlIYW5kbGUoKSB3aXRoIHBOYXRpdmVUZXh0dXJlSGFuZGxlIG9uY2UgeW91
IGFyZSBkb25lIHdpdGggdGhpcyB0ZXh0dXJlLgorICAgICAgICAgICAgICAqCisgICAgICAgICAg
ICAgICogcE5hdGl2ZVRleHR1cmVIYW5kbGUgaXMgYW4gT1VUUFVULCBpdCB3aWxsIGJlIGEgcG9p
bnRlciB0byBhIElEM0QxMVNoYWRlclJlc291cmNlVmlldyAqLgorICAgICAgICAgICAgICAqIHBO
YXRpdmVUZXh0dXJlUmVmIGlzIGFuIElOUFVUIGFuZCBzaG91bGQgYmUgYSBJRDNEMTFSZXNvdXJj
ZSAqLiBUaGUgZGV2aWNlIHVzZWQgYnkgcE5hdGl2ZVRleHR1cmVSZWYgd2lsbCBiZSB1c2VkIHRv
IGJpbmQgcE5hdGl2ZVRleHR1cmVIYW5kbGUuCisgICAgICAgICAgICAgICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKipwTmF0aXZlVGV4dHVyZUhhbmRsZSwgdm9p
ZCAqcE5hdGl2ZVRleHR1cmVSZWYsIHVpbnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0
LCB1aW50MzJfdCAqcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVUeXBlICpwQVBJVHlwZSwgRUNvbG9y
U3BhY2UgKnBDb2xvclNwYWNlLCBWUlRleHR1cmVCb3VuZHNfdCAqcFRleHR1cmVCb3VuZHMgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJlbGVhc2UgdGhlIHBOYXRpdmVUZXh0dXJlSGFuZGxl
IHByb3ZpZGVkIGZyb20gdGhlIEdldE92ZXJsYXlUZXh0dXJlIGNhbGwsIHRoaXMgYWxsb3dzIHRo
ZSBzeXN0ZW0gdG8gZnJlZSB0aGUgdW5kZXJseWluZyBHUFUgcmVzb3VyY2VzIGZvciB0aGlzIG9i
amVjdCwKKyAgICAgICAgICAgICAgKiBzbyBvbmx5IGRvIGl0IG9uY2UgeW91IHN0b3AgcmVuZGVy
aW5nIHRoaXMgdGV4dHVyZS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcE5hdGl2ZVRleHR1cmVIYW5kbGUgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgc2l6ZSBvZiB0aGUgb3ZlcmxheSB0ZXh0dXJl
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0
dXJlU2l6ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcFdp
ZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8v
IERhc2hib2FyZCBPdmVybGF5IE1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBD
cmVhdGVzIGEgZGFzaGJvYXJkIG92ZXJsYXkgYW5kIHJldHVybnMgaXRzIGhhbmRsZSAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVEYXNoYm9hcmRPdmVybGF5
KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5LCBjb25zdCBjaGFyICpwY2hPdmVybGF5RnJpZW5k
bHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBNYWluSGFuZGxlLCBWUk92ZXJsYXlIYW5kbGVf
dCAqcFRodW1ibmFpbEhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0
cnVlIGlmIHRoZSBkYXNoYm9hcmQgaXMgdmlzaWJsZSAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgSXNEYXNoYm9hcmRWaXNpYmxlKCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiByZXR1
cm5zIHRydWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxlIGFuZCB0aGUgc3BlY2lmaWVkIG92
ZXJsYXkgaXMgdGhlIGFjdGl2ZSBzeXN0ZW0gT3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGRhc2hib2Fy
ZCBvdmVybGF5IHRvIG9ubHkgYXBwZWFyIHdoZW4gdGhlIHNwZWNpZmllZCBwcm9jZXNzIElEIGhh
cyBzY2VuZSBmb2N1cyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBT
ZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHVpbnQzMl90IHVuUHJvY2Vzc0lkICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBwcm9jZXNzIElEIHRoYXQgdGhpcyBkYXNoYm9hcmQgb3ZlcmxheSByZXF1aXJl
cyB0byBoYXZlIHNjZW5lIGZvY3VzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIEdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnB1blByb2Nlc3NJZCApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogU2hvd3MgdGhlIGRhc2hib2FyZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCB2b2lkIFNob3dEYXNoYm9hcmQoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlUb1Nob3cgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYWNrZWQgZGV2aWNlIHRoYXQgaGFz
IHRoZSBsYXNlciBwb2ludGVyIGluIHRoZSBkYXNoYm9hcmQgKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgR2V0UHJpbWFyeURhc2hib2FyZERldmljZSgp
ID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gS2V5Ym9hcmQgbWV0aG9kcworICAgICAg
ICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIC8qKiBTaG93IHRoZSB2aXJ0dWFsIGtleWJv
YXJkIHRvIGFjY2VwdCBpbnB1dCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgU2hvd0tleWJvYXJkKCBFR2FtZXBhZFRleHRJbnB1dE1vZGUgZUlucHV0TW9kZSwgRUdh
bWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY29uc3QgY2hhciAqcGNoRGVz
Y3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY29uc3QgY2hhciAqcGNoRXhpc3RpbmdUZXh0
LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSApID0gMDsKKworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTaG93S2V5Ym9hcmRGb3JPdmVybGF5
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVHYW1lcGFkVGV4dElucHV0TW9k
ZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBj
b25zdCBjaGFyICpwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjb25zdCBjaGFy
ICpwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZh
bHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIHRleHQgdGhhdCB3YXMgZW50
ZXJlZCBpbnRvIHRoZSB0ZXh0IGlucHV0ICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQz
Ml90IEdldEtleWJvYXJkVGV4dCggVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFRleHQsIHVpbnQz
Ml90IGNjaFRleHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEhpZGUgdGhlIHZpcnR1YWwg
a2V5Ym9hcmQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBIaWRlS2V5Ym9hcmQoKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGtleWJvYXJk
IGluIHdvcmxkIHNwYWNlICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0S2V5Ym9h
cmRUcmFuc2Zvcm1BYnNvbHV0ZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3Jp
Z2luLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJh
bnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRo
ZSBrZXlib2FyZCBpbiBvdmVybGF5IHNwYWNlIGJ5IHRlbGxpbmcgaXQgdG8gYXZvaWQgYSByZWN0
YW5nbGUgaW4gdGhlIG92ZXJsYXkuIFJlY3RhbmdsZSBjb29yZHMgaGF2ZSAoMCwwKSBpbiB0aGUg
Ym90dG9tIGxlZnQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRLZXlib2FyZFBv
c2l0aW9uRm9yT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBIbWRS
ZWN0Ml90IGF2b2lkUmVjdCApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3Zlcmxh
eSBpbnB1dCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTZXRzIGEgbGlzdCBv
ZiBwcmltaXRpdmVzIHRvIGJlIHVzZWQgZm9yIGNvbnRyb2xsZXIgcmF5IGludGVyc2VjdGlvbgor
ICAgICAgICAgICAgICAqIHR5cGljYWxseSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBp
biBwaXhlbHMgKG5vdCBpbiB3b3JsZCBzcGFjZSkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKCBWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVf
dCAqcE1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1bk51bU1hc2tQcmltaXRpdmVzLCB1aW50MzJf
dCB1blByaW1pdGl2ZVNpemUgPSBzaXplb2YoIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVfdCApICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IEdldE92ZXJsYXlGbGFncyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
MzJfdCAqcEZsYWdzICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBNZXNzYWdlIGJv
eCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTaG93IHRoZSBtZXNzYWdlIG92
ZXJsYXkuIFRoaXMgd2lsbCBibG9jayBhbmQgcmV0dXJuIHlvdSBhIHJlc3VsdC4gKiovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIFNob3dNZXNzYWdlT3Zl
cmxheSggY29uc3QgY2hhciogcGNoVGV4dCwgY29uc3QgY2hhciogcGNoQ2FwdGlvbiwgY29uc3Qg
Y2hhciogcGNoQnV0dG9uMFRleHQsIGNvbnN0IGNoYXIqIHBjaEJ1dHRvbjFUZXh0ID0gbnVsbHB0
ciwgY29uc3QgY2hhciogcGNoQnV0dG9uMlRleHQgPSBudWxscHRyLCBjb25zdCBjaGFyKiBwY2hC
dXR0b24zVGV4dCA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIElmIHRoZSBj
YWxsaW5nIHByb2Nlc3Mgb3ducyB0aGUgb3ZlcmxheSBhbmQgaXQncyBvcGVuLCB0aGlzIHdpbGwg
Y2xvc2UgaXQuICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgQ2xvc2VNZXNzYWdlT3Zl
cmxheSgpID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBJVlJPdmVybGF5X1ZlcnNpb24gPSAiSVZST3ZlcmxheV8wMTYiOworCit9IC8vIG5hbWVzcGFj
ZSB2cgorCisvLyBpdnJyZW5kZXJtb2RlbHMuaAorbmFtZXNwYWNlIHZyCit7CisKK3N0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSA9ICJn
ZGMyMDE1IjsgICAvLyBDYW5vbmljYWwgY29vcmRpbmF0ZSBzeXN0ZW0gb2YgdGhlIGdkYyAyMDE1
IHdpcmVkIGNvbnRyb2xsZXIsIHByb3ZpZGVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQor
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNl
ID0gImJhc2UiOyAgICAgICAgIC8vIEZvciBjb250cm9sbGVycyB3aXRoIGFuIHVuYW1iaWd1b3Vz
ICdiYXNlJy4KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfVGlwID0gInRpcCI7ICAgICAgICAgICAvLyBGb3IgY29udHJvbGxlcnMgd2l0aCBhbiB1
bmFtYmlndW91cyAndGlwJyAodXNlZCBmb3IgJ2xhc2VyLXBvaW50aW5nJykKK3N0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAiaGFu
ZGdyaXAiOyAvLyBOZXV0cmFsLCBhbWJpZGV4dHJvdXMgaGFuZC1wb3NlIHdoZW4gaG9sZGluZyBj
b250cm9sbGVyLiBPbiBwbGFuZSBiZXR3ZWVuIG5ldXRyYWxseSBwb3NlZCBpbmRleCBmaW5nZXIg
YW5kIHRodW1iCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29t
cG9uZW50X1N0YXR1cyA9ICJzdGF0dXMiOyAgICAgICAgICAgICAgLy8gMToxIGFzcGVjdCByYXRp
byBzdGF0dXMgYXJlYSwgd2l0aCBjYW5vbmljYWwgWzAsMV0gdXYgbWFwcGluZworCisjcHJhZ21h
IHBhY2soIHB1c2gsIDggKQorCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdpdGggdGhlIFZS
IGNvbXBvc2l0b3IgKi8KK2VudW0gRVZSUmVuZGVyTW9kZWxFcnJvcgoreworICAgICAgIFZSUmVu
ZGVyTW9kZWxFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTG9hZGlu
ZyA9IDEwMCwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTm90U3VwcG9ydGVkID0gMjAwLAor
ICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkQXJnID0gMzAwLAorICAgICAgIFZSUmVu
ZGVyTW9kZWxFcnJvcl9JbnZhbGlkTW9kZWwgPSAzMDEsCisgICAgICAgVlJSZW5kZXJNb2RlbEVy
cm9yX05vU2hhcGVzID0gMzAyLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVNo
YXBlcyA9IDMwMywKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfVG9vTWFueVZlcnRpY2VzID0g
MzA0LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVRleHR1cmVzID0gMzA1LAor
ICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9CdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBW
UlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoTm9ybWFscyA9IDMwNywKKyAgICAgICBWUlJlbmRl
ck1vZGVsRXJyb3JfTm90RW5vdWdoVGV4Q29vcmRzID0gMzA4LAorCisgICAgICAgVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRUZXh0dXJlID0gNDAwLAorfTsKKwordHlwZWRlZiB1aW50MzJfdCBW
UkNvbXBvbmVudFByb3BlcnRpZXM7CisKK2VudW0gRVZSQ29tcG9uZW50UHJvcGVydHkKK3sKKyAg
ICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGljID0gKDEgPDwgMCksCisgICAgICAgVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAoMSA8PCAxKSwKKyAgICAgICBWUkNvbXBvbmVu
dFByb3BlcnR5X0lzVG91Y2hlZCA9ICgxIDw8IDIpLAorICAgICAgIFZSQ29tcG9uZW50UHJvcGVy
dHlfSXNQcmVzc2VkID0gKDEgPDwgMyksCisgICAgICAgVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Nj
cm9sbGVkID0gKDEgPDwgNCksCit9OworCisvKiogRGVzY3JpYmVzIHN0YXRlIGluZm9ybWF0aW9u
IGFib3V0IGEgcmVuZGVyLW1vZGVsIGNvbXBvbmVudCwgaW5jbHVkaW5nIHRyYW5zZm9ybXMgYW5k
IG90aGVyIGR5bmFtaWMgcHJvcGVydGllcyAqLworc3RydWN0IFJlbmRlck1vZGVsX0NvbXBvbmVu
dFN0YXRlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVu
ZGVyTW9kZWw7ICAvLyBUcmFuc2Zvcm0gcmVxdWlyZWQgd2hlbiBkcmF3aW5nIHRoZSBjb21wb25l
bnQgcmVuZGVyIG1vZGVsCisgICAgICAgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVu
dExvY2FsOyAgICAgICAgLy8gVHJhbnNmb3JtIGF2YWlsYWJsZSBmb3IgYXR0YWNoaW5nIHRvIGEg
bG9jYWwgY29tcG9uZW50IGNvb3JkaW5hdGUgc3lzdGVtICgtWiBvdXQgZnJvbSBzdXJmYWNlICkK
KyAgICAgICBWUkNvbXBvbmVudFByb3BlcnRpZXMgdVByb3BlcnRpZXM7Cit9OworCisvKiogQSBz
aW5nbGUgdmVydGV4IGluIGEgcmVuZGVyIG1vZGVsICovCitzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVy
dGV4X3QKK3sKKyAgICAgICBIbWRWZWN0b3IzX3QgdlBvc2l0aW9uOyAgICAgICAgICAgICAgLy8g
cG9zaXRpb24gaW4gbWV0ZXJzIGluIGRldmljZSBzcGFjZQorICAgICAgIEhtZFZlY3RvcjNfdCB2
Tm9ybWFsOworICAgICAgIGZsb2F0IHJmVGV4dHVyZUNvb3JkWzJdOworfTsKKworLyoqIEEgdGV4
dHVyZSBtYXAgZm9yIHVzZSBvbiBhIHJlbmRlciBtb2RlbCAqLworI2lmIGRlZmluZWQoX19saW51
eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2lu
YWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21w
YXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworc3RydWN0IFJl
bmRlck1vZGVsX1RleHR1cmVNYXBfdAoreworICAgICAgIHVpbnQxNl90IHVuV2lkdGgsIHVuSGVp
Z2h0OyAvLyB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB0ZXh0dXJlIG1hcCBpbiBwaXhlbHMKKyAg
ICAgICBjb25zdCB1aW50OF90ICpydWJUZXh0dXJlTWFwRGF0YTsgICAgICAgLy8gTWFwIHRleHR1
cmUgZGF0YS4gQWxsIHRleHR1cmVzIGFyZSBSR0JBIHdpdGggOCBiaXRzIHBlciBjaGFubmVsIHBl
ciBwaXhlbC4gRGF0YSBzaXplIGlzIHdpZHRoICogaGVpZ2h0ICogNHViCit9OworI2lmIGRlZmlu
ZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCAp
CisjZW5kaWYKKworLyoqICBTZXNzaW9uIHVuaXF1ZSB0ZXh0dXJlIGlkZW50aWZpZXIuIFJlbmRl
cm1vZGVscyB3aGljaCBzaGFyZSB0aGUgc2FtZSB0ZXh0dXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSBp
ZC4KK0lEcyA8MCBkZW5vdGUgdGhlIHRleHR1cmUgaXMgbm90IHByZXNlbnQgKi8KKwordHlwZWRl
ZiBpbnQzMl90IFRleHR1cmVJRF90OworCitjb25zdCBUZXh0dXJlSURfdCBJTlZBTElEX1RFWFRV
UkVfSUQgPSAtMTsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVf
XykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQg
b24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFj
ayggcHVzaCwgNCApCisjZW5kaWYKKworc3RydWN0IFJlbmRlck1vZGVsX3QKK3sKKyAgICAgICBj
b25zdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqclZlcnRleERhdGE7ICAgICAgIC8vIFZlcnRleCBk
YXRhIGZvciB0aGUgbWVzaAorICAgICAgIHVpbnQzMl90IHVuVmVydGV4Q291bnQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHZlcnRpY2VzIGlu
IHRoZSB2ZXJ0ZXggZGF0YQorICAgICAgIGNvbnN0IHVpbnQxNl90ICpySW5kZXhEYXRhOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5kaWNlcyBpbnRvIHRoZSB2ZXJ0ZXgg
ZGF0YSBmb3IgZWFjaCB0cmlhbmdsZQorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBvZiB0cmlhbmdsZXMg
aW4gdGhlIG1lc2guIEluZGV4IGNvdW50IGlzIDMgKiBUcmlhbmdsZUNvdW50CisgICAgICAgVGV4
dHVyZUlEX3QgZGlmZnVzZVRleHR1cmVJZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
U2Vzc2lvbiB1bmlxdWUgdGV4dHVyZSBpZGVudGlmaWVyLiBSZW5kZXJtb2RlbHMgd2hpY2ggc2hh
cmUgdGhlIHNhbWUgdGV4dHVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgaWQuIDwwID09IHRleHR1cmUg
bm90IHByZXNlbnQKK307CisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBM
RV9fKSAKKyNwcmFnbWEgcGFjayggcG9wICkKKyNlbmRpZgorCisKK3N0cnVjdCBSZW5kZXJNb2Rl
bF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAgYm9vbCBiU2Nyb2xsV2hlZWxWaXNp
YmxlOyAvLyBpcyB0aGlzIGNvbnRyb2xsZXIgY3VycmVudGx5IHNldCB0byBiZSBpbiBhIHNjcm9s
bCB3aGVlbCBtb2RlCit9OworCisjcHJhZ21hIHBhY2soIHBvcCApCisKK2NsYXNzIElWUlJlbmRl
ck1vZGVscworeworcHVibGljOgorCisgICAgICAgLyoqIExvYWRzIGFuZCByZXR1cm5zIGEgcmVu
ZGVyIG1vZGVsIGZvciB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLiBwY2hSZW5kZXJNb2RlbE5hbWUg
c2hvdWxkIGJlIGEgcmVuZGVyIG1vZGVsIG5hbWUKKyAgICAgICAqIGZyb20gdGhlIFByb3BfUmVu
ZGVyTW9kZWxOYW1lX1N0cmluZyBwcm9wZXJ0eSBvciBhbiBhYnNvbHV0ZSBwYXRoIG5hbWUgdG8g
YSByZW5kZXIgbW9kZWwgb24gZGlzay4gCisgICAgICAgKgorICAgICAgICogVGhlIHJlc3VsdGlu
ZyByZW5kZXIgbW9kZWwgaXMgdmFsaWQgdW50aWwgVlJfU2h1dGRvd24oKSBpcyBjYWxsZWQgb3Ig
dW50aWwgRnJlZVJlbmRlck1vZGVsKCkgaXMgY2FsbGVkLiBXaGVuIHRoZSAKKyAgICAgICAqIGFw
cGxpY2F0aW9uIGlzIGZpbmlzaGVkIHdpdGggdGhlIHJlbmRlciBtb2RlbCBpdCBzaG91bGQgY2Fs
bCBGcmVlUmVuZGVyTW9kZWwoKSB0byBmcmVlIHRoZSBtZW1vcnkgYXNzb2NpYXRlZAorICAgICAg
ICogd2l0aCB0aGUgbW9kZWwuCisgICAgICAgKgorICAgICAgICogVGhlIG1ldGhvZCByZXR1cm5z
IFZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5nIHdoaWxlIHRoZSByZW5kZXIgbW9kZWwgaXMgc3Rp
bGwgYmVpbmcgbG9hZGVkLgorICAgICAgICogVGhlIG1ldGhvZCByZXR1cm5zIFZSUmVuZGVyTW9k
ZWxFcnJvcl9Ob25lIG9uY2UgbG9hZGVkIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIHdpbGwgcmV0
dXJuIGFuIGVycm9yLiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2Fk
UmVuZGVyTW9kZWxfQXN5bmMoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgUmVuZGVy
TW9kZWxfdCAqKnBwUmVuZGVyTW9kZWwgKSA9IDA7CisKKyAgICAgICAvKiogRnJlZXMgYSBwcmV2
aW91c2x5IHJldHVybmVkIHJlbmRlciBtb2RlbAorICAgICAgICogICBJdCBpcyBzYWZlIHRvIGNh
bGwgdGhpcyBvbiBhIG51bGwgcHRyLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlUmVuZGVy
TW9kZWwoIFJlbmRlck1vZGVsX3QgKnBSZW5kZXJNb2RlbCApID0gMDsKKworICAgICAgIC8qKiBM
b2FkcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgZm9yIHVzZSBpbiB0aGUgYXBwbGljYXRpb24uICov
CisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRUZXh0dXJlX0FzeW5jKCBU
ZXh0dXJlSURfdCB0ZXh0dXJlSWQsIFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqKnBwVGV4dHVy
ZSApID0gMDsKKworICAgICAgIC8qKiBGcmVlcyBhIHByZXZpb3VzbHkgcmV0dXJuZWQgdGV4dHVy
ZQorICAgICAgICogICBJdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBvbiBhIG51bGwgcHRyLiAqLwor
ICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlVGV4dHVyZSggUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90
ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgIC8qKiBDcmVhdGVzIGEgRDNEMTEgdGV4dHVyZSBh
bmQgbG9hZHMgZGF0YSBpbnRvIGl0LiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxF
cnJvciBMb2FkVGV4dHVyZUQzRDExX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQg
KnBEM0QxMURldmljZSwgdm9pZCAqKnBwRDNEMTFUZXh0dXJlMkQgKSA9IDA7CisKKyAgICAgICAv
KiogSGVscGVyIGZ1bmN0aW9uIHRvIGNvcHkgdGhlIGJpdHMgaW50byBhbiBleGlzdGluZyB0ZXh0
dXJlLiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkSW50b1RleHR1
cmVEM0QxMV9Bc3luYyggVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICpwRHN0VGV4dHVyZSAp
ID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBmcmVlIHRleHR1cmVzIGNyZWF0ZWQgd2l0
aCBMb2FkVGV4dHVyZUQzRDExX0FzeW5jIGluc3RlYWQgb2YgY2FsbGluZyBSZWxlYXNlIG9uIHRo
ZW0uICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoIHZvaWQgKnBEM0Qx
MVRleHR1cmUyRCApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBnZXQgdGhlIG5hbWVz
IG9mIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxzLiAgSW5kZXggZG9lcyBub3QgY29ycmVsYXRlIHRv
IGEgdHJhY2tlZCBkZXZpY2UgaW5kZXgsIGJ1dAorICAgICAgICogaXMgb25seSB1c2VkIGZvciBp
dGVyYXRpbmcgb3ZlciBhbGwgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICBJZiB0aGUgaW5kZXgg
aXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuCisgICAgICAgKiBP
dGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgcmVxdWlyZWQg
Zm9yIHRoZSBuYW1lLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxO
YW1lKCB1aW50MzJfdCB1blJlbmRlck1vZGVsSW5kZXgsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpw
Y2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxOYW1lTGVuICkgPSAwOwor
CisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgcmVuZGVyIG1vZGVs
cy4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsQ291bnQoKSA9IDA7
CisKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY29tcG9uZW50cyBvZiB0aGUg
c3BlY2lmaWVkIHJlbmRlciBtb2RlbC4KKyAgICAgICAqICBDb21wb25lbnRzIGFyZSB1c2VmdWwg
d2hlbiBjbGllbnQgYXBwbGljYXRpb24gd2lzaCB0byBkcmF3LCBsYWJlbCwgb3Igb3RoZXJ3aXNl
IGludGVyYWN0IHdpdGggY29tcG9uZW50cyBvZiB0cmFja2VkIG9iamVjdHMuCisgICAgICAgKiAg
RXhhbXBsZXMgY29udHJvbGxlciBjb21wb25lbnRzOgorICAgICAgICogICByZW5kZXJhYmxlIHRo
aW5ncyBzdWNoIGFzIHRyaWdnZXJzLCBidXR0b25zCisgICAgICAgKiAgIG5vbi1yZW5kZXJhYmxl
IHRoaW5ncyB3aGljaCBpbmNsdWRlIGNvb3JkaW5hdGUgc3lzdGVtcyBzdWNoIGFzICd0aXAnLCAn
YmFzZScsIGEgbmV1dHJhbCBjb250cm9sbGVyIGFnbm9zdGljIGhhbmQtcG9zZQorICAgICAgICog
ICBJZiBhbGwgY29udHJvbGxlciBjb21wb25lbnRzIGFyZSBlbnVtZXJhdGVkIGFuZCByZW5kZXJl
ZCwgaXQgd2lsbCBiZSBlcXVpdmFsZW50IHRvIGRyYXdpbmcgdGhlIHRyYWRpdGlvbmFsIHJlbmRl
ciBtb2RlbAorICAgICAgICogICBSZXR1cm5zIDAgaWYgY29tcG9uZW50cyBub3Qgc3VwcG9ydGVk
LCA+MCBvdGhlcndpc2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldENvbXBvbmVudENv
dW50KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiog
VXNlIHRoaXMgdG8gZ2V0IHRoZSBuYW1lcyBvZiBhdmFpbGFibGUgY29tcG9uZW50cy4gIEluZGV4
IGRvZXMgbm90IGNvcnJlbGF0ZSB0byBhIHRyYWNrZWQgZGV2aWNlIGluZGV4LCBidXQKKyAgICAg
ICAqIGlzIG9ubHkgdXNlZCBmb3IgaXRlcmF0aW5nIG92ZXIgYWxsIGF2YWlsYWJsZSBjb21wb25l
bnRzLiAgSWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJl
dHVybiAwLgorICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQz
Ml90IEdldENvbXBvbmVudE5hbWUoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgdWlu
dDMyX3QgdW5Db21wb25lbnRJbmRleCwgVlJfT1VUX1NUUklORyggKSBjaGFyICpwY2hDb21wb25l
bnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4gKSA9IDA7CisKKyAgICAgICAvKiog
R2V0IHRoZSBidXR0b24gbWFzayBmb3IgYWxsIGJ1dHRvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
Y29tcG9uZW50CisgICAgICAgKiAgIElmIG5vIGJ1dHRvbnMgKG9yIGF4ZXMpIGFyZSBhc3NvY2lh
dGVkIHdpdGggdGhpcyBjb21wb25lbnQsIHJldHVybiAwCisgICAgICAgKiAgIE5vdGU6IG11bHRp
cGxlIGNvbXBvbmVudHMgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBidXR0b24uIEV4
OiB0d28gZ3JpcCBidXR0b25zIG9uIGEgc2luZ2xlIGNvbnRyb2xsZXIuCisgICAgICAgKiAgIE5v
dGU6IEEgc2luZ2xlIGNvbXBvbmVudCBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRpcGxlIGJ1
dHRvbnMuIEV4OiBBIHRyYWNrcGFkIHdoaWNoIGFsc28gcHJvdmlkZXMgIkQtcGFkIiBmdW5jdGlv
bmFsaXR5ICovCisgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRDb21wb25lbnRCdXR0b25NYXNr
KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNoYXIgKnBjaENvbXBvbmVu
dE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8gZ2V0IHRoZSByZW5kZXIgbW9k
ZWwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCByZW5kZXJtb2RlL2NvbXBvbmVudCBjb21iaW5hdGlv
biwgdG8gYmUgcGFzc2VkIHRvIExvYWRSZW5kZXJNb2RlbC4KKyAgICAgICAqIElmIHRoZSBjb21w
b25lbnQgbmFtZSBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4K
KyAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZl
ciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRD
b21wb25lbnRSZW5kZXJNb2RlbE5hbWUoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwg
Y29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgVlJfT1VUX1NUUklORyggKSBjaGFyICpwY2hD
b21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50UmVuZGVyTW9kZWxO
YW1lTGVuICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIHF1ZXJ5IGluZm9ybWF0aW9u
IGFib3V0IHRoZSBjb21wb25lbnQsIGFzIGEgZnVuY3Rpb24gb2YgdGhlIGNvbnRyb2xsZXIgc3Rh
dGUuCisgICAgICAgKgorICAgICAgICogRm9yIGR5bmFtaWMgY29udHJvbGxlciBjb21wb25lbnRz
IChleDogdHJpZ2dlcikgdmFsdWVzIHdpbGwgcmVmbGVjdCBjb21wb25lbnQgbW90aW9ucworICAg
ICAgICogRm9yIHN0YXRpYyBjb21wb25lbnRzIHRoaXMgd2lsbCByZXR1cm4gYSBjb25zaXN0ZW50
IHZhbHVlIGluZGVwZW5kZW50IG9mIHRoZSBWUkNvbnRyb2xsZXJTdGF0ZV90CisgICAgICAgKgor
ICAgICAgICogSWYgdGhlIHBjaFJlbmRlck1vZGVsTmFtZSBvciBwY2hDb21wb25lbnROYW1lIGlz
IGludmFsaWQsIHRoaXMgd2lsbCByZXR1cm4gZmFsc2UgKGFuZCB0cmFuc2Zvcm1zIHdpbGwgYmUg
c2V0IHRvIGlkZW50aXR5KS4KKyAgICAgICAqIE90aGVyd2lzZSwgcmV0dXJuIHRydWUKKyAgICAg
ICAqIE5vdGU6IEZvciBkeW5hbWljIG9iamVjdHMsIHZpc2liaWxpdHkgbWF5IGJlIGR5bmFtaWMu
IChJLmUuLCB0cnVlL2ZhbHNlIHdpbGwgYmUgcmV0dXJuZWQgYmFzZWQgb24gY29udHJvbGxlciBz
dGF0ZSBhbmQgY29udHJvbGxlciBtb2RlIHN0YXRlICkgKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0Q29tcG9uZW50U3RhdGUoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3Qg
Y2hhciAqcGNoQ29tcG9uZW50TmFtZSwgY29uc3QgdnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKnBD
b250cm9sbGVyU3RhdGUsIGNvbnN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3Qg
KnBTdGF0ZSwgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqcENvbXBvbmVudFN0YXRlICkg
PSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVuZGVyIG1vZGVsIGhhcyBh
IGNvbXBvbmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSAqLworICAgICAgIHZpcnR1YWwgYm9v
bCBSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1l
LCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIFVSTCBvZiB0aGUgdGh1bWJuYWlsIGltYWdlIGZvciB0aGlzIHJlbmRlcm1vZGVsICov
CisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTCggY29u
c3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVGh1
bWJuYWlsVVJMLCB1aW50MzJfdCB1blRodW1ibmFpbFVSTExlbiwgdnI6OkVWUlJlbmRlck1vZGVs
RXJyb3IgKnBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUHJvdmlkZXMgYSByZW5kZXIgbW9k
ZWwgcGF0aCB0aGF0IHdpbGwgbG9hZCB0aGUgdW5za2lubmVkIG1vZGVsIGlmIHRoZSBtb2RlbCBu
YW1lIHByb3ZpZGVkIGhhcyBiZWVuIHJlcGxhY2UgYnkgdGhlIHVzZXIuIElmIHRoZSBtb2RlbAor
ICAgICAgICogaGFzbid0IGJlZW4gcmVwbGFjZWQgdGhlIHBhdGggdmFsdWUgd2lsbCBzdGlsbCBi
ZSBhIHZhbGlkIHBhdGggdG8gbG9hZCB0aGUgbW9kZWwuIFBhc3MgdGhpcyB0byBMb2FkUmVuZGVy
TW9kZWxfQXN5bmMsIGV0Yy4gdG8gbG9hZCB0aGUKKyAgICAgICAqIG1vZGVsLiAqLworICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgoIGNvbnN0IGNoYXIg
KnBjaFJlbmRlck1vZGVsTmFtZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaE9yaWdpbmFsUGF0
aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhMZW4sIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICpw
ZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGEgcmVuZGVy
IG1vZGVsIGVycm9yICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRSZW5kZXJNb2Rl
bEVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciBlcnJvciApID0gMDsK
K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24g
PSAiSVZSUmVuZGVyTW9kZWxzXzAwNSI7CisKK30KKworCisvLyBpdnJleHRlbmRlZGRpc3BsYXku
aAorbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICAvKiogTk9URTogVXNlIG9mIHRoaXMgaW50ZXJm
YWNlIGlzIG5vdCByZWNvbW1lbmRlZCBpbiBwcm9kdWN0aW9uIGFwcGxpY2F0aW9ucy4gSXQgd2ls
bCBub3Qgd29yayBmb3IgZGlzcGxheXMgd2hpY2ggdXNlCisgICAgICAgKiBkaXJlY3QtdG8tZGlz
cGxheSBtb2RlLiBDcmVhdGluZyBvdXIgb3duIHdpbmRvdyBpcyBhbHNvIGluY29tcGF0aWJsZSB3
aXRoIHRoZSBWUiBjb21wb3NpdG9yIGFuZCBpcyBub3QgYXZhaWxhYmxlIHdoZW4gdGhlIGNvbXBv
c2l0b3IgaXMgcnVubmluZy4gKi8KKyAgICAgICBjbGFzcyBJVlJFeHRlbmRlZERpc3BsYXkKKyAg
ICAgICB7CisgICAgICAgcHVibGljOgorCisgICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3Np
dGlvbiB0aGF0IHRoZSB3aW5kb3cgbmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwg
aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSB2aWV3cG9ydCBpbiB0aGUgZnJhbWUgYnVm
ZmVyIHRvIGRyYXcgdGhlIG91dHB1dCBvZiB0aGUgZGlzdG9ydGlvbiBpbnRvICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydCggRVZSRXllIGVFeWUsIHVp
bnQzMl90ICpwblgsIHVpbnQzMl90ICpwblksIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAq
cG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFtEM0QxMC8xMSBPbmx5XQorICAg
ICAgICAgICAgICAqIFJldHVybnMgdGhlIGFkYXB0ZXIgaW5kZXggYW5kIG91dHB1dCBpbmRleCB0
aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8gRW51bUFkYXB0ZXJzIGFuZCBFbnVtT3V0cHV0
cworICAgICAgICAgICAgICAqIHRvIGNyZWF0ZSB0aGUgZGV2aWNlIGFuZCBzd2FwIGNoYWluIGlu
IERYMTAgYW5kIERYMTEuIElmIGFuIGVycm9yIG9jY3VycyBib3RoIGluZGljZXMgd2lsbCBiZSBz
ZXQgdG8gLTEuCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBH
ZXREWEdJT3V0cHV0SW5mbyggaW50MzJfdCAqcG5BZGFwdGVySW5kZXgsIGludDMyX3QgKnBuQWRh
cHRlck91dHB1dEluZGV4ICkgPSAwOworCisgICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24gPSAiSVZSRXh0ZW5kZWRE
aXNwbGF5XzAwMSI7CisKK30KKworCisvLyBpdnJ0cmFja2VkY2FtZXJhLmgKK25hbWVzcGFjZSB2
cgoreworCitjbGFzcyBJVlJUcmFja2VkQ2FtZXJhCit7CitwdWJsaWM6CisgICAgICAgLyoqIFJl
dHVybnMgYSBzdHJpbmcgZm9yIGFuIGVycm9yICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFy
ICpHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSggdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBl
Q2FtZXJhRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogRm9yIGNvbnZlbmllbmNlLCBzYW1lIGFz
IHRyYWNrZWQgcHJvcGVydHkgcmVxdWVzdCBQcm9wX0hhc0NhbWVyYV9Cb29sICovCisgICAgICAg
dmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEhhc0NhbWVyYSggdnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqcEhhc0NhbWVyYSApID0gMDsKKworICAg
ICAgIC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1lLiAqLworICAgICAgIHZpcnR1YWwg
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFGcmFtZVNpemUoIHZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQsIHVpbnQz
Ml90ICpwbkZyYW1lQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRy
YWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFJbnRyaW5zaWNzKCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCB2cjo6SG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIHZyOjpIbWRWZWN0b3IyX3QgKnBD
ZW50ZXIgKSA9IDA7CisKKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3Ig
R2V0Q2FtZXJhUHJvamVjdGlvbiggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRl
eCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxaTmVh
ciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7CisK
KyAgICAgICAvKiogQWNxdWlyaW5nIHN0cmVhbWluZyBzZXJ2aWNlIHBlcm1pdHMgdmlkZW8gc3Ry
ZWFtaW5nIGZvciB0aGUgY2FsbGVyLiBSZWxlYXNpbmcgaGludHMgdGhlIHN5c3RlbSB0aGF0IHZp
ZGVvIHNlcnZpY2VzIGRvIG5vdCBuZWVkIHRvIGJlIG1haW50YWluZWQgZm9yIHRoaXMgY2xpZW50
LgorICAgICAgICogSWYgdGhlIGNhbWVyYSBoYXMgbm90IGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQs
IGEgb25lIHRpbWUgc3BpbiB1cCBtYXkgaW5jdXIgc29tZSBhdXRvIGV4cG9zdXJlIGFzIHdlbGwg
YXMgaW5pdGlhbCBzdHJlYW1pbmcgZnJhbWUgZGVsYXlzLgorICAgICAgICogVGhlIGNhbWVyYSBz
aG91bGQgYmUgY29uc2lkZXJlZCBhIGdsb2JhbCByZXNvdXJjZSBhY2Nlc3NpYmxlIGZvciBzaGFy
ZWQgY29uc3VtcHRpb24gYnV0IG5vdCBleGNsdXNpdmUgdG8gYW55IGNhbGxlci4KKyAgICAgICAq
IFRoZSBjYW1lcmEgbWF5IGdvIGluYWN0aXZlIGR1ZSB0byBsYWNrIG9mIGFjdGl2ZSBjb25zdW1l
cnMgb3IgaGVhZHNldCBpZGxlbmVzcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSggdnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqcEhhbmRs
ZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFz
ZVZpZGVvU3RyZWFtaW5nU2VydmljZSggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tl
ZENhbWVyYSApID0gMDsKKworICAgICAgIC8qKiBDb3BpZXMgdGhlIGltYWdlIGZyYW1lIGludG8g
YSBjYWxsZXIncyBwcm92aWRlZCBidWZmZXIuIFRoZSBpbWFnZSBkYXRhIGlzIGN1cnJlbnRseSBw
cm92aWRlZCBhcyBSR0JBIGRhdGEsIDQgYnl0ZXMgcGVyIHBpeGVsLgorICAgICAgICogQSBjYWxs
ZXIgY2FuIHByb3ZpZGUgbnVsbCBmb3IgdGhlIGZyYW1lYnVmZmVyIG9yIGZyYW1laGVhZGVyIGlm
IG5vdCBkZXNpcmVkLiBSZXF1ZXN0aW5nIHRoZSBmcmFtZSBoZWFkZXIgZmlyc3QsIGZvbGxvd2Vk
IGJ5IHRoZSBmcmFtZSBidWZmZXIgYWxsb3dzCisgICAgICAgKiB0aGUgY2FsbGVyIHRvIGRldGVy
bWluZSBpZiB0aGUgZnJhbWUgYXMgYWR2YW5jZWQgcGVyIHRoZSBmcmFtZSBoZWFkZXIgc2VxdWVu
Y2UuIAorICAgICAgICogSWYgdGhlcmUgaXMgbm8gZnJhbWUgYXZhaWxhYmxlIHlldCwgZHVlIHRv
IGluaXRpYWwgY2FtZXJhIHNwaW51cCBvciByZS1hY3RpdmF0aW9uLCB0aGUgZXJyb3Igd2lsbCBi
ZSBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0ZyYW1lQXZhaWxhYmxlLgorICAgICAgICogSWRlYWxs
eSBhIGNhbGxlciBzaG91bGQgYmUgcG9sbGluZyBhdCB+MTZtcyBpbnRlcnZhbHMgKi8KKyAgICAg
ICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1
ZmZlciggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqcEZyYW1lQnVmZmVyLCB1aW50
MzJfdCBuRnJhbWVCdWZmZXJTaXplLCB2cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90
ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUgKSA9IDA7CisKKyAgICAg
ICAvKiogR2V0cyBzaXplIG9mIHRoZSBpbWFnZSBmcmFtZS4gKi8KKyAgICAgICB2aXJ0dWFsIHZy
OjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSggdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSwgdnI6OlZSVGV4dHVyZUJvdW5kc190ICpwVGV4dHVyZUJvdW5kcywg
dWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsgCisKKyAgICAgICAv
KiogQWNjZXNzIGEgc2hhcmVkIEQzRDExIHRleHR1cmUgZm9yIHRoZSBzcGVjaWZpZWQgdHJhY2tl
ZCBjYW1lcmEgc3RyZWFtLgorICAgICAgICogVGhlIGNhbWVyYSBmcmFtZSB0eXBlIFZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCBpcyBub3Qgc3VwcG9ydGVkIGRpcmVjdGx5IGFz
IGEgc2hhcmVkIHRleHR1cmUuIEl0IGlzIGFuIGludGVyaW9yIHN1YnJlZ2lvbiBvZiB0aGUgc2hh
cmVkIHRleHR1cmUgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZC4K
KyAgICAgICAqIEluc3RlYWQsIHVzZSBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKCkgd2l0aCBW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQgdG8gZGV0ZXJtaW5lIHRoZSBwcm9w
ZXIgaW50ZXJpb3Igc3VicmVnaW9uIGJvdW5kcyBhbG9uZyB3aXRoIEdldFZpZGVvU3RyZWFtVGV4
dHVyZUQzRDExKCkgd2l0aAorICAgICAgICogVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGlt
dW1VbmRpc3RvcnRlZCB0byBwcm92aWRlIHRoZSB0ZXh0dXJlLiBUaGUgVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCB3aWxsIHlpZWxkIGFuIGltYWdlIHdoZXJlIHRo
ZSBpbnZhbGlkIHJlZ2lvbnMgYXJlIGRlY29kZWQKKyAgICAgICAqIGJ5IHRoZSBhbHBoYSBjaGFu
bmVsIGhhdmluZyBhIHplcm8gY29tcG9uZW50LiBUaGUgdmFsaWQgcmVnaW9ucyBhbGwgaGF2ZSBh
IG5vbi16ZXJvIGFscGhhIGNvbXBvbmVudC4gVGhlIHN1YnJlZ2lvbiBhcyBkZXNjcmliZWQgYnkg
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIAorICAgICAgICogZ3VhcmFudGVl
cyBhIHJlY3RhbmdsZSB3aGVyZSBhbGwgcGl4ZWxzIGFyZSB2YWxpZC4gKi8KKyAgICAgICB2aXJ0
dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEo
IHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKnBEM0QxMURldmljZU9yUmVzb3VyY2Us
IHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCB2cjo6Q2FtZXJhVmlkZW9TdHJlYW1G
cmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUgKSA9
IDA7CisKKyAgICAgICAvKiogQWNjZXNzIGEgc2hhcmVkIEdMIHRleHR1cmUgZm9yIHRoZSBzcGVj
aWZpZWQgdHJhY2tlZCBjYW1lcmEgc3RyZWFtICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKCB2cjo6VHJhY2tlZENhbWVy
YUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBl
RnJhbWVUeXBlLCB2cjo6Z2xVSW50X3QgKnBnbFRleHR1cmVJZCwgdnI6OkNhbWVyYVZpZGVvU3Ry
ZWFtRnJhbWVIZWFkZXJfdCAqcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXpl
ICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBSZWxlYXNl
VmlkZW9TdHJlYW1UZXh0dXJlR0woIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRD
YW1lcmEsIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCApID0gMDsKK307CisKK3N0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRDYW1l
cmFfMDAzIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisvLyBpdnJzY3JlZW5zaG90cy5oCitu
YW1lc3BhY2UgdnIKK3sKKworLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aXRoIHRoZSBWUiBj
b21wb3NpdG9yICovCitlbnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIFZSU2NyZWVu
c2hvdEVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBWUlNjcmVlbnNob3RFcnJv
cl9JbmNvbXBhdGlibGVWZXJzaW9uICAgICAgICAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAg
VlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMSwKKyAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9CdWZmZXJUb29TbWFs
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUlNjcmVlbnNob3RF
cnJvcl9TY3JlZW5zaG90QWxyZWFkeUluUHJvZ3Jlc3MgICAgICAgPSAxMDgsCit9OworCisvKiog
QWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBnZW5lcmF0ZSBzY3JlZW5zaG90cyAqLworY2xhc3Mg
SVZSU2NyZWVuc2hvdHMKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogUmVxdWVzdCBhIHNjcmVlbnNo
b3Qgb2YgdGhlIHJlcXVlc3RlZCB0eXBlLgorICAgICAgICAqICBBIHJlcXVlc3Qgb2YgdGhlIFZS
U2NyZWVuc2hvdFR5cGVfU3RlcmVvIHR5cGUgd2lsbCBhbHdheXMKKyAgICAgICAgKiAgd29yay4g
T3RoZXIgdHlwZXMgd2lsbCBkZXBlbmQgb24gdGhlIHVuZGVybHlpbmcgYXBwbGljYXRpb24KKyAg
ICAgICAgKiAgc3VwcG9ydC4KKyAgICAgICAgKiAgVGhlIGZpcnN0IGZpbGUgbmFtZSBpcyBmb3Ig
dGhlIHByZXZpZXcgaW1hZ2UgYW5kIHNob3VsZCBiZSBhCisgICAgICAgICogIHJlZ3VsYXIgc2Ny
ZWVuc2hvdCAoaWRlYWxseSBmcm9tIHRoZSBsZWZ0IGV5ZSkuIFRoZSBzZWNvbmQKKyAgICAgICAg
KiAgaXMgdGhlIFZSIHNjcmVlbnNob3QgaW4gdGhlIGNvcnJlY3QgZm9ybWF0LiBUaGV5IHNob3Vs
ZCBiZQorICAgICAgICAqICBpbiB0aGUgc2FtZSBhc3BlY3QgcmF0aW8uICBGb3JtYXRzIHBlciB0
eXBlOgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX01vbm86IHRoZSBWUiBmaWxlbmFtZSBp
cyBpZ25vcmVkIChjYW4gYmUKKyAgICAgICAgKiAgbnVsbHB0ciksIHRoaXMgaXMgYSBub3JtYWwg
ZmxhdCBzaW5nbGUgc2hvdC4KKyAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW86ICBU
aGUgVlIgaW1hZ2Ugc2hvdWxkIGJlIGEKKyAgICAgICAgKiAgc2lkZS1ieS1zaWRlIHdpdGggdGhl
IGxlZnQgZXllIGltYWdlIG9uIHRoZSBsZWZ0LgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBl
X0N1YmVtYXA6IFRoZSBWUiBpbWFnZSBzaG91bGQgYmUgc2l4IHNxdWFyZQorICAgICAgICAqICBp
bWFnZXMgY29tcG9zaXRlZCBob3Jpem9udGFsbHkuCisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5
cGVfU3RlcmVvUGFub3JhbWE6IGFib3ZlL2JlbG93IHdpdGggbGVmdCBleWUKKyAgICAgICAgKiAg
cGFub3JhbWEgYmVpbmcgdGhlIGFib3ZlIGltYWdlLiAgSW1hZ2UgaXMgdHlwaWNhbGx5IHNxdWFy
ZQorICAgICAgICAqICB3aXRoIHRoZSBwYW5vcmFtYSBiZWluZyAyeCBob3Jpem9udGFsLgorICAg
ICAgICAqICAKKyAgICAgICAgKiAgTm90ZSB0aGF0IHRoZSBWUiBkYXNoYm9hcmQgd2lsbCBjYWxs
IHRoaXMgZnVuY3Rpb24gd2hlbgorICAgICAgICAqICB0aGUgdXNlciBwcmVzc2VzIHRoZSBzY3Jl
ZW5zaG90IGJpbmRpbmcgKGN1cnJlbnRseSBTeXN0ZW0KKyAgICAgICAgKiAgQnV0dG9uICsgVHJp
Z2dlcikuICBJZiBTdGVhbSBpcyBydW5uaW5nLCB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgKiAg
ZmlsZSBuYW1lcyB3aWxsIGJlIGluICVURU1QJSBhbmQgd2lsbCBiZSBjb3BpZWQgaW50bworICAg
ICAgICAqICBTdGVhbSdzIHNjcmVlbnNob3QgbGlicmFyeSBmb3IgdGhlIHJ1bm5pbmcgYXBwbGlj
YXRpb24KKyAgICAgICAgKiAgb25jZSBTdWJtaXRTY3JlZW5zaG90KCkgaXMgY2FsbGVkLgorICAg
ICAgICAqICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhlIHBhdGhzIHdpbGwgYmUgaW4gdGhl
IHVzZXIncworICAgICAgICAqICBkb2N1bWVudHMgZm9sZGVyIHVuZGVyIERvY3VtZW50c1xTdGVh
bVZSXFNjcmVlbnNob3RzLgorICAgICAgICAqICBPdGhlciBWUiBhcHBsaWNhdGlvbnMgY2FuIGNh
bGwgdGhpcyB0byBpbml0aWF0ZSBhCisgICAgICAgICogIHNjcmVlbnNob3Qgb3V0c2lkZSBvZiB1
c2VyIGNvbnRyb2wuCisgICAgICAgICogIFRoZSBkZXN0aW5hdGlvbiBmaWxlIG5hbWVzIGRvIG5v
dCBuZWVkIGFuIGV4dGVuc2lvbiwKKyAgICAgICAgKiAgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRo
ZSBjb3JyZWN0IG9uZSBmb3IgdGhlIGZvcm1hdAorICAgICAgICAqICB3aGljaCBpcyBjdXJyZW50
bHkgLnBuZy4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgUmVxdWVz
dFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKnBPdXRTY3JlZW5zaG90SGFuZGxl
LCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY29uc3QgY2hhciAqcGNoUHJldmlld0ZpbGVu
YW1lLCBjb25zdCBjaGFyICpwY2hWUkZpbGVuYW1lICkgPSAwOworCisgICAgICAgLyoqIENhbGxl
ZCBieSB0aGUgcnVubmluZyBWUiBhcHBsaWNhdGlvbiB0byBpbmRpY2F0ZSB0aGF0IGl0CisgICAg
ICAgICogIHdpc2hlcyB0byBiZSBpbiBjaGFyZ2Ugb2Ygc2NyZWVuc2hvdHMuICBJZiB0aGUKKyAg
ICAgICAgKiAgYXBwbGljYXRpb24gZG9lcyBub3QgY2FsbCB0aGlzLCB0aGUgQ29tcG9zaXRvciB3
aWxsIG9ubHkKKyAgICAgICAgKiAgc3VwcG9ydCBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyBzY3Jl
ZW5zaG90cyB0aGF0IHdpbGwgYmUKKyAgICAgICAgKiAgY2FwdHVyZWQgd2l0aG91dCBub3RpZmlj
YXRpb24gdG8gdGhlIHJ1bm5pbmcgYXBwLgorICAgICAgICAqICBPbmNlIGhvb2tlZCB5b3VyIGFw
cGxpY2F0aW9uIHdpbGwgcmVjZWl2ZSBhCisgICAgICAgICogIFZSRXZlbnRfUmVxdWVzdFNjcmVl
bnNob3QgZXZlbnQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZQorICAgICAgICAqICBidXR0b25z
IHRvIHRha2UgYSBzY3JlZW5zaG90LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNo
b3RFcnJvciBIb29rU2NyZWVuc2hvdCggVlJfQVJSQVlfQ09VTlQoIG51bVR5cGVzICkgY29uc3Qg
dnI6OkVWUlNjcmVlbnNob3RUeXBlICpwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyApID0g
MDsKKworICAgICAgIC8qKiBXaGVuIHlvdXIgYXBwbGljYXRpb24gcmVjZWl2ZXMgYQorICAgICAg
ICAqICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90IGV2ZW50LCBjYWxsIHRoZXNlIGZ1bmN0aW9u
cyB0byBnZXQKKyAgICAgICAgKiAgdGhlIGRldGFpbHMgb2YgdGhlIHNjcmVlbnNob3QgcmVxdWVz
dC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90
UHJvcGVydHlUeXBlKCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIHZy
OjpFVlJTY3JlZW5zaG90RXJyb3IgKnBFcnJvciApID0gMDsKKworICAgICAgIC8qKiBHZXQgdGhl
IGZpbGVuYW1lIGZvciB0aGUgcHJldmlldyBvciB2ciBpbWFnZSAoc2VlCisgICAgICAgICogIHZy
OjpFU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzKS4gIFRoZSByZXR1cm4gdmFsdWUgaXMKKyAg
ICAgICAgKiAgdGhlIHNpemUgb2YgdGhlIHN0cmluZy4gICAqLworICAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKCB2cjo6U2NyZWVuc2hvdEhhbmRs
ZV90IHNjcmVlbnNob3RIYW5kbGUsIHZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMg
ZmlsZW5hbWVUeXBlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoRmlsZW5hbWUsIHVpbnQzMl90
IGNjaEZpbGVuYW1lLCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yICpwRXJyb3IgKSA9IDA7CisKKyAg
ICAgICAvKiogQ2FsbCB0aGlzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyB0YWtpbmcgdGhlIHNjcmVl
biBzaG90CisgICAgICAgICogIHdpbGwgdGFrZSBtb3JlIHRoYW4gYSBmZXcgbXMgcHJvY2Vzc2lu
Zy4gVGhpcyB3aWxsIHJlc3VsdAorICAgICAgICAqICBpbiBhbiBvdmVybGF5IGJlaW5nIHByZXNl
bnRlZCB0aGF0IHNob3dzIGEgY29tcGxldGlvbgorICAgICAgICAqICBiYXIuICovCisgICAgICAg
dmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcygg
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCBmbG9hdCBmbFByb2dyZXNz
ICkgPSAwOworCisgICAgICAgLyoqIFRlbGxzIHRoZSBjb21wb3NpdG9yIHRvIHRha2UgYW4gaW50
ZXJuYWwgc2NyZWVuc2hvdCBvZgorICAgICAgICAqICB0eXBlIFZSU2NyZWVuc2hvdFR5cGVfU3Rl
cmVvLiBJdCB3aWxsIHRha2UgdGhlIGN1cnJlbnQKKyAgICAgICAgKiAgc3VibWl0dGVkIHNjZW5l
IHRleHR1cmVzIG9mIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uIGFuZAorICAgICAgICAqICB3cml0
ZSB0aGVtIGludG8gdGhlIHByZXZpZXcgaW1hZ2UgYW5kIGEgc2lkZS1ieS1zaWRlIGZpbGUKKyAg
ICAgICAgKiAgZm9yIHRoZSBWUiBpbWFnZS4KKyAgICAgICAgKiAgVGhpcyBpcyBzaW1pbGFyIHRv
IHJlcXVlc3Qgc2NyZWVuc2hvdCwgYnV0IGRvZXNuJ3QgZXZlcgorICAgICAgICAqICB0YWxrIHRv
IHRoZSBhcHBsaWNhdGlvbiwganVzdCB0YWtlcyB0aGUgc2hvdCBhbmQgc3VibWl0cy4gKi8KKyAg
ICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNob3Qo
IHZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKnBPdXRTY3JlZW5zaG90SGFuZGxlLCBjb25zdCBjaGFy
ICpwY2hQcmV2aWV3RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFZSRmlsZW5hbWUgKSA9IDA7CisK
KyAgICAgICAvKiogU3VibWl0IHRoZSBjb21wbGV0ZWQgc2NyZWVuc2hvdC4gIElmIFN0ZWFtIGlz
IHJ1bm5pbmcKKyAgICAgICAgKiAgdGhpcyB3aWxsIGNhbGwgaW50byB0aGUgU3RlYW0gY2xpZW50
IGFuZCB1cGxvYWQgdGhlCisgICAgICAgICogIHNjcmVlbnNob3QgdG8gdGhlIHNjcmVlbnNob3Rz
IHNlY3Rpb24gb2YgdGhlIGxpYnJhcnkgZm9yCisgICAgICAgICogIHRoZSBydW5uaW5nIGFwcGxp
Y2F0aW9uLiAgSWYgU3RlYW0gaXMgbm90IHJ1bm5pbmcsIHRoaXMKKyAgICAgICAgKiAgZnVuY3Rp
b24gd2lsbCBkaXNwbGF5IGEgbm90aWZpY2F0aW9uIHRvIHRoZSB1c2VyIHRoYXQgdGhlCisgICAg
ICAgICogIHNjcmVlbnNob3Qgd2FzIHRha2VuLiBUaGUgcGF0aHMgc2hvdWxkIGJlIGZ1bGwgcGF0
aHMgd2l0aAorICAgICAgICAqICBleHRlbnNpb25zLgorICAgICAgICAqICBGaWxlIHBhdGhzIHNo
b3VsZCBiZSBhYnNvbHV0ZSBpbmNsdWRpbmcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiAgc2NyZWVu
c2hvdEhhbmRsZSBjYW4gYmUga191blNjcmVlbnNob3RIYW5kbGVJbnZhbGlkIGlmIHRoaXMKKyAg
ICAgICAgKiAgd2FzIGEgbmV3IHNob3QgdGFraW5nIGJ5IHRoZSBhcHAgdG8gYmUgc2F2ZWQgYW5k
IG5vdAorICAgICAgICAqICBpbml0aWF0ZWQgYnkgYSB1c2VyIChhY2hpZXZlbWVudCBlYXJuZWQg
b3Igc29tZXRoaW5nKSAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBT
dWJtaXRTY3JlZW5zaG90KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUs
IHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBjaGFyICpwY2hTb3VyY2VQcmV2aWV3
RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZVZSRmlsZW5hbWUgKSA9IDA7Cit9OworCitz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2Ny
ZWVuc2hvdHNfMDAxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cnJlc291cmNl
cy5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgSVZSUmVzb3VyY2VzCit7CitwdWJsaWM6CisK
KyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAv
LyBTaGFyZWQgUmVzb3VyY2UgTWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIExvYWRzIHRoZSBzcGVjaWZpZWQgcmVzb3Vy
Y2UgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyIGlmIGxhcmdlIGVub3VnaC4KKyAgICAgICAqIFJl
dHVybnMgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGJ1ZmZlciByZXF1aXJlZCB0byBob2xkIHRo
ZSBzcGVjaWZpZWQgcmVzb3VyY2UuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBMb2FkU2hh
cmVkUmVzb3VyY2UoIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlTmFtZSwgY2hhciAqcGNoQnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApID0gMDsKKworICAgICAgIC8qKiBQcm92aWRlcyB0aGUg
ZnVsbCBwYXRoIHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuIFJlc291cmNlIG5hbWVzIGNhbiBp
bmNsdWRlIG5hbWVkIGRpcmVjdG9yaWVzIGZvcgorICAgICAgICogZHJpdmVycyBhbmQgb3RoZXIg
dGhpbmdzLCBhbmQgdGhpcyByZXNvbHZlcyBhbGwgb2YgdGhvc2UgYW5kIHJldHVybnMgdGhlIGFj
dHVhbCBwaHlzaWNhbCBwYXRoLiAKKyAgICAgICAqIHBjaFJlc291cmNlVHlwZURpcmVjdG9yeSBp
cyB0aGUgc3ViZGlyZWN0b3J5IG9mIHJlc291cmNlcyB0byBsb29rIGluLiAqLworICAgICAgIHZp
cnR1YWwgdWludDMyX3QgR2V0UmVzb3VyY2VGdWxsUGF0aCggY29uc3QgY2hhciAqcGNoUmVzb3Vy
Y2VOYW1lLCBjb25zdCBjaGFyICpwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnksIGNoYXIgKnBjaFBh
dGhCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAxIjsK
KworCit9CisvLyBpdnJkcml2ZXJtYW5hZ2VyLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJ
VlJEcml2ZXJNYW5hZ2VyCit7CitwdWJsaWM6CisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRE
cml2ZXJDb3VudCgpIGNvbnN0ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsZW5ndGgg
b2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNs
dWRpbmcgdGhlIHRyYWlsaW5nIG51bGwuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRE
cml2ZXJOYW1lKCB2cjo6RHJpdmVySWRfdCBuRHJpdmVyLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAq
cGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSApID0gMDsKK307CisKK3N0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSRHJpdmVyTWFuYWdlcl9WZXJzaW9uID0gIklWUkRyaXZlck1hbmFn
ZXJfMDAxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisvLyBFbmQKKworI2VuZGlmIC8vIF9P
UEVOVlJfQVBJCisKKworbmFtZXNwYWNlIHZyCit7CisgICAgICAgLyoqIEZpbmRzIHRoZSBhY3Rp
dmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBWUiBBUEkgYW5kIGluaXRpYWxpemVzIGl0LiBUaGUgcHJv
dmlkZWQgcGF0aCBtdXN0IGJlIGFic29sdXRlCisgICAgICAgKiBvciByZWxhdGl2ZSB0byB0aGUg
Y3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gVGhlc2UgYXJlIHRoZSBsb2NhbCBpbnN0YWxsIHZl
cnNpb25zIG9mIHRoZSBlcXVpdmFsZW50CisgICAgICAgKiBmdW5jdGlvbnMgaW4gc3RlYW12ci5o
IGFuZCB3aWxsIHdvcmsgd2l0aG91dCBhIGxvY2FsIFN0ZWFtIGluc3RhbGwuCisgICAgICAgKgor
ICAgICAgICogVGhpcyBwYXRoIGlzIHRvIHRoZSAicm9vdCIgb2YgdGhlIFZSIEFQSSBpbnN0YWxs
LiBUaGF0J3MgdGhlIGRpcmVjdG9yeSB3aXRoCisgICAgICAgKiB0aGUgImRyaXZlcnMiIGRpcmVj
dG9yeSBhbmQgYSBwbGF0Zm9ybSAoaS5lLiAid2luMzIiKSBkaXJlY3RvcnkgaW4gaXQsIG5vdCB0
aGUgZGlyZWN0b3J5IHdpdGggdGhlIERMTCBpdHNlbGYuCisgICAgICAgKgorICAgICAgICogcFN0
YXJ0dXBJbmZvIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlLgorICAgICAgICovCisgICAgICAg
aW5saW5lIElWUlN5c3RlbSAqVlJfSW5pdCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBs
aWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvID0g
bnVsbHB0ciApOworCisgICAgICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50ZXJm
YWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQgYWZ0
ZXIgdGhpcyBwb2ludCAqLworICAgICAgIGlubGluZSB2b2lkIFZSX1NodXRkb3duKCk7CisKKyAg
ICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGFuIEhNRCBhdHRhY2hlZC4gVGhpcyBj
aGVjayBpcyBhcyBsaWdodHdlaWdodCBhcyBwb3NzaWJsZSBhbmQKKyAgICAgICAqIGNhbiBiZSBj
YWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0L1ZSX1NodXRkb3duLiBJdCBzaG91bGQgYmUgdXNlZCB3
aGVuIGFuIGFwcGxpY2F0aW9uIHdhbnRzCisgICAgICAgKiB0byBrbm93IGlmIGluaXRpYWxpemlu
ZyBWUiBpcyBhIHBvc3NpYmlsaXR5IGJ1dCBpc24ndCByZWFkeSB0byB0YWtlIHRoYXQgc3RlcCB5
ZXQuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9vbCBWUl9DQUxMVFlQRSBWUl9J
c0htZFByZXNlbnQoKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIE9wZW5WUiBy
dW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9vbCBWUl9DQUxM
VFlQRSBWUl9Jc1J1bnRpbWVJbnN0YWxsZWQoKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHdoZXJl
IHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCisgICAgICAgVlJfSU5URVJGQUNF
IGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX1J1bnRpbWVQYXRoKCk7CisKKyAgICAgICAvKiog
UmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZSBmb3IgYW4gRVZSSW5pdEVycm9yLiBU
aGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0KCkvVlJfU2h1dGRv
d24oKS4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJf
R2V0VlJJbml0RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVycm9yICk7CisKKyAgICAgICAv
KiogUmV0dXJucyBhbiBFbmdsaXNoIHN0cmluZyBmb3IgYW4gRVZSSW5pdEVycm9yLiBBcHBsaWNh
dGlvbnMgc2hvdWxkIGNhbGwgVlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCBpbnN0ZWFkIGFuZAor
ICAgICAgICogdXNlIHRoYXQgYXMgYSBrZXkgdG8gbG9vayB1cCB0aGVpciBvd24gbG9jYWxpemVk
IGVycm9yIG1lc3NhZ2UuIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBvdXRzaWRlIG9mIFZS
X0luaXQoKS9WUl9TaHV0ZG93bigpLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBjaGFy
ICpWUl9DQUxMVFlQRSBWUl9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBFVlJJ
bml0RXJyb3IgZXJyb3IgKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBpbnRlcmZhY2Ugb2Yg
dGhlIHNwZWNpZmllZCB2ZXJzaW9uLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBhZnRlciBW
Ul9Jbml0LiBUaGUKKyAgICAgICAqIHBvaW50ZXIgcmV0dXJuZWQgaXMgdmFsaWQgdW50aWwgVlJf
U2h1dGRvd24gaXMgY2FsbGVkLgorICAgICAgICovCisgICAgICAgVlJfSU5URVJGQUNFIHZvaWQg
KlZSX0NBTExUWVBFIFZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIGNvbnN0IGNoYXIgKnBjaEludGVy
ZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvciApOworCisgICAgICAgLyoqIFJldHVy
bnMgd2hldGhlciB0aGUgaW50ZXJmYWNlIG9mIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBleGlzdHMu
CisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9vbCBWUl9DQUxMVFlQRSBWUl9Jc0lu
dGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiApOwor
CisgICAgICAgLyoqIFJldHVybnMgYSB0b2tlbiB0aGF0IHJlcHJlc2VudHMgd2hldGhlciB0aGUg
VlIgaW50ZXJmYWNlIGhhbmRsZXMgbmVlZCB0byBiZSByZWxvYWRlZCAqLworICAgICAgIFZSX0lO
VEVSRkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQRSBWUl9HZXRJbml0VG9rZW4oKTsKKworICAgICAg
IC8vIFRoZXNlIHR5cGVkZWZzIGFsbG93IG9sZCBlbnVtIG5hbWVzIGZyb20gU0RLIDAuOS4xMSB0
byBiZSB1c2VkIGluIGFwcGxpY2F0aW9ucy4KKyAgICAgICAvLyBUaGV5IHdpbGwgZ28gYXdheSBp
biB0aGUgZnV0dXJlLgorICAgICAgIHR5cGVkZWYgRVZSSW5pdEVycm9yIEhtZEVycm9yOworICAg
ICAgIHR5cGVkZWYgRVZSRXllIEhtZF9FeWU7CisgICAgICAgdHlwZWRlZiBFQ29sb3JTcGFjZSBD
b2xvclNwYWNlOworICAgICAgIHR5cGVkZWYgRVRyYWNraW5nUmVzdWx0IEhtZFRyYWNraW5nUmVz
dWx0OworICAgICAgIHR5cGVkZWYgRVRyYWNrZWREZXZpY2VDbGFzcyBUcmFja2VkRGV2aWNlQ2xh
c3M7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBUcmFja2luZ1VuaXZl
cnNlT3JpZ2luOworICAgICAgIHR5cGVkZWYgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBUcmFja2Vk
RGV2aWNlUHJvcGVydHk7CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgVHJh
Y2tlZFByb3BlcnR5RXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJTdWJtaXRGbGFncyBWUlN1Ym1p
dEZsYWdzX3Q7CisgICAgICAgdHlwZWRlZiBFVlJTdGF0ZSBWUlN0YXRlX3Q7CisgICAgICAgdHlw
ZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29sbGlzaW9uQm91bmRzU3R5bGVfdDsKKyAgICAg
ICB0eXBlZGVmIEVWUk92ZXJsYXlFcnJvciBWUk92ZXJsYXlFcnJvcjsKKyAgICAgICB0eXBlZGVm
IEVWUkZpcm13YXJlRXJyb3IgVlJGaXJtd2FyZUVycm9yOworICAgICAgIHR5cGVkZWYgRVZSQ29t
cG9zaXRvckVycm9yIFZSQ29tcG9zaXRvckVycm9yOworICAgICAgIHR5cGVkZWYgRVZSU2NyZWVu
c2hvdEVycm9yIFZSU2NyZWVuc2hvdHNFcnJvcjsKKworICAgICAgIGlubGluZSB1aW50MzJfdCAm
VlJUb2tlbigpCisgICAgICAgeworICAgICAgICAgICAgICBzdGF0aWMgdWludDMyX3QgdG9rZW47
CisgICAgICAgICAgICAgIHJldHVybiB0b2tlbjsKKyAgICAgICB9CisKKyAgICAgICBjbGFzcyBD
T3BlblZSQ29udGV4dAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAgIENP
cGVuVlJDb250ZXh0KCkgeyBDbGVhcigpOyB9CisgICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsK
KworICAgICAgICAgICAgICBpbmxpbmUgdm9pZCBDaGVja0NsZWFyKCkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgaWYgKCBWUlRva2VuKCkgIT0gVlJfR2V0SW5pdFRva2Vu
KCkgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlJUb2tlbigpID0gVlJfR2V0
SW5pdFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICBJVlJTeXN0ZW0gKlZSU3lzdGVtKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYg
KCBtX3BWUlN5c3RlbSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVtID0gKCBJVlJTeXN0ZW0gKiApVlJfR2V0R2VuZXJp
Y0ludGVyZmFjZSggSVZSU3lzdGVtX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKKyAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICBJVlJDaGFwZXJvbmUgKlZSQ2hhcGVyb25lKCkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAg
ICAgICAgICAgICAgICAgaWYgKCBtX3BWUkNoYXBlcm9uZSA9PSBudWxscHRyICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3Ig
ZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0gKCBJ
VlJDaGFwZXJvbmUgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ2hhcGVyb25lX1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIElWUkNoYXBlcm9uZVNldHVwICpWUkNoYXBlcm9uZVNldHVwKCkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAg
ICAgaWYgKCBtX3BWUkNoYXBlcm9uZVNldHVwID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9ICggSVZS
Q2hhcGVyb25lU2V0dXAgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ2hhcGVyb25lU2V0
dXBfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICBJVlJDb21wb3NpdG9yICpWUkNvbXBvc2l0b3IoKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAg
ICAgICAgICBpZiAoIG1fcFZSQ29tcG9zaXRvciA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9y
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9ICggSVZSQ29t
cG9zaXRvciAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDb21wb3NpdG9yX1ZlcnNpb24s
ICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICBJVlJPdmVybGF5ICpWUk92ZXJsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZST3Zl
cmxheSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fcFZST3ZlcmxheSA9ICggSVZST3ZlcmxheSAqIClWUl9HZXRHZW5lcmljSW50ZXJm
YWNlKCBJVlJPdmVybGF5X1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUk92ZXJsYXk7CisgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICBJVlJSZXNvdXJjZXMgKlZSUmVzb3VyY2VzKCkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAg
ICAgICAgICAgICAgaWYgKCBtX3BWUlJlc291cmNlcyA9PSBudWxscHRyICkKKyAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVy
cm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVzb3VyY2VzID0gKElWUlJl
c291cmNlcyAqKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlJlc291cmNlc19WZXJzaW9uLCAm
ZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9wVlJSZXNvdXJjZXM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJ
VlJTY3JlZW5zaG90cyAqVlJTY3JlZW5zaG90cygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9w
VlJTY3JlZW5zaG90cyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSAoIElWUlNjcmVlbnNob3RzICogKVZS
X0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNjcmVlbnNob3RzX1ZlcnNpb24sICZlRXJyb3IgKTsK
KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BW
UlNjcmVlbnNob3RzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSUmVuZGVy
TW9kZWxzICpWUlJlbmRlck1vZGVscygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJSZW5k
ZXJNb2RlbHMgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUlJlbmRlck1vZGVscyA9ICggSVZSUmVuZGVyTW9kZWxzICogKVZSX0dl
dEdlbmVyaWNJbnRlcmZhY2UoIElWUlJlbmRlck1vZGVsc19WZXJzaW9uLCAmZUVycm9yICk7Cisg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJS
ZW5kZXJNb2RlbHM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJFeHRlbmRl
ZERpc3BsYXkgKlZSRXh0ZW5kZWREaXNwbGF5KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BW
UkV4dGVuZGVkRGlzcGxheSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gKCBJVlJFeHRlbmRlZERp
c3BsYXkgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIElWUlNldHRpbmdzICpWUlNldHRpbmdzKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYg
KCBtX3BWUlNldHRpbmdzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9ICggSVZSU2V0dGluZ3MgKiApVlJfR2V0
R2VuZXJpY0ludGVyZmFjZSggSVZSU2V0dGluZ3NfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU2V0dGlu
Z3M7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJBcHBsaWNhdGlvbnMgKlZS
QXBwbGljYXRpb25zKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkFwcGxpY2F0aW9ucyA9
PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSQXBwbGljYXRpb25zID0gKCBJVlJBcHBsaWNhdGlvbnMgKiApVlJfR2V0R2VuZXJpY0lu
dGVyZmFjZSggSVZSQXBwbGljYXRpb25zX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkFwcGxpY2F0aW9u
czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlRyYWNrZWRDYW1lcmEgKlZS
VHJhY2tlZENhbWVyYSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENo
ZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJUcmFja2VkQ2FtZXJh
ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gKCBJVlJUcmFja2VkQ2FtZXJhICogKVZSX0dldEdlbmVy
aWNJbnRlcmZhY2UoIElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSVHJhY2tl
ZENhbWVyYTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkRyaXZlck1hbmFn
ZXIgKlZSRHJpdmVyTWFuYWdlcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggIW1fcFZSRHJpdmVy
TWFuYWdlciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3BWUkRyaXZlck1hbmFnZXIgPSAoIElWUkRyaXZlck1hbmFnZXIgKiApVlJfR2V0R2VuZXJpY0lu
dGVyZmFjZSggSVZSRHJpdmVyTWFuYWdlcl9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJNYW5h
Z2VyOworICAgICAgICAgICAgICB9CisKKyAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICBJ
VlJTeXN0ZW0gICAgICAgICAgICAgICAgICAgICAqbV9wVlJTeXN0ZW07CisgICAgICAgICAgICAg
IElWUkNoYXBlcm9uZSAgICAgICAgICAgICAgKm1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAg
ICBJVlJDaGFwZXJvbmVTZXR1cCAgICAgICAqbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAg
ICAgICAgSVZSQ29tcG9zaXRvciAgICAgICAgICAgICAgKm1fcFZSQ29tcG9zaXRvcjsKKyAgICAg
ICAgICAgICAgSVZST3ZlcmxheSAgICAgICAgICAgICAgICAgICAgICptX3BWUk92ZXJsYXk7Cisg
ICAgICAgICAgICAgIElWUlJlc291cmNlcyAgICAgICAgICAgICAgKm1fcFZSUmVzb3VyY2VzOwor
ICAgICAgICAgICAgICBJVlJSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICptX3BWUlJlbmRlck1v
ZGVsczsKKyAgICAgICAgICAgICAgSVZSRXh0ZW5kZWREaXNwbGF5ICAgICAgICptX3BWUkV4dGVu
ZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgICAgICAgICAgICAgICAgICAg
ICAqbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgSVZSQXBwbGljYXRpb25zICAgICAgICAg
ICAgICAqbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAgICAgIElWUlRyYWNrZWRDYW1lcmEg
ICAgICAgKm1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICAgICAgICAgSVZSU2NyZWVuc2hvdHMg
ICAgICAgICAgICAgICptX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICBJVlJEcml2ZXJN
YW5hZ2VyICAgICAgICptX3BWUkRyaXZlck1hbmFnZXI7CisgICAgICAgfTsKKworICAgICAgIGlu
bGluZSBDT3BlblZSQ29udGV4dCAmT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpCisgICAg
ICAgeworICAgICAgICAgICAgICBzdGF0aWMgdm9pZCAqY3R4WyBzaXplb2YoIENPcGVuVlJDb250
ZXh0ICkgLyBzaXplb2YoIHZvaWQgKiApIF07CisgICAgICAgICAgICAgIHJldHVybiAqKCBDT3Bl
blZSQ29udGV4dCAqICljdHg7IC8vIGJ5cGFzcyB6ZXJvLWluaXQgY29uc3RydWN0b3IKKyAgICAg
ICB9CisKKyAgICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9DQUxMVFlQRSBWUlN5c3RlbSgpIHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlN5c3RlbSgpOyB9CisgICAg
ICAgaW5saW5lIElWUkNoYXBlcm9uZSAqVlJfQ0FMTFRZUEUgVlJDaGFwZXJvbmUoKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDaGFwZXJvbmUoKTsgfQorICAgICAg
IGlubGluZSBJVlJDaGFwZXJvbmVTZXR1cCAqVlJfQ0FMTFRZUEUgVlJDaGFwZXJvbmVTZXR1cCgp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNoYXBlcm9uZVNldHVw
KCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQ29tcG9zaXRvciAqVlJfQ0FMTFRZUEUgVlJDb21wb3Np
dG9yKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ29tcG9zaXRv
cigpOyB9CisgICAgICAgaW5saW5lIElWUk92ZXJsYXkgKlZSX0NBTExUWVBFIFZST3ZlcmxheSgp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUk92ZXJsYXkoKTsgfQor
ICAgICAgIGlubGluZSBJVlJTY3JlZW5zaG90cyAqVlJfQ0FMTFRZUEUgVlJTY3JlZW5zaG90cygp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlNjcmVlbnNob3RzKCk7
IH0KKyAgICAgICBpbmxpbmUgSVZSUmVuZGVyTW9kZWxzICpWUl9DQUxMVFlQRSBWUlJlbmRlck1v
ZGVscygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlJlbmRlck1v
ZGVscygpOyB9CisgICAgICAgaW5saW5lIElWUkFwcGxpY2F0aW9ucyAqVlJfQ0FMTFRZUEUgVlJB
cHBsaWNhdGlvbnMoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJB
cHBsaWNhdGlvbnMoKTsgfQorICAgICAgIGlubGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUg
VlJTZXR0aW5ncygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlNl
dHRpbmdzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSUmVzb3VyY2VzICpWUl9DQUxMVFlQRSBWUlJl
c291cmNlcygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlJlc291
cmNlcygpOyB9CisgICAgICAgaW5saW5lIElWUkV4dGVuZGVkRGlzcGxheSAqVlJfQ0FMTFRZUEUg
VlJFeHRlbmRlZERpc3BsYXkoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0
KCkuVlJFeHRlbmRlZERpc3BsYXkoKTsgfQorICAgICAgIGlubGluZSBJVlJUcmFja2VkQ2FtZXJh
ICpWUl9DQUxMVFlQRSBWUlRyYWNrZWRDYW1lcmEoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9N
b2R1bGVDb250ZXh0KCkuVlJUcmFja2VkQ2FtZXJhKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSRHJp
dmVyTWFuYWdlciAqVlJfQ0FMTFRZUEUgVlJEcml2ZXJNYW5hZ2VyKCkgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSRHJpdmVyTWFuYWdlcigpOyB9CisKKyAgICAgICBp
bmxpbmUgdm9pZCBDT3BlblZSQ29udGV4dDo6Q2xlYXIoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgbV9wVlJTeXN0ZW0gPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZSA9
IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBudWxscHRyOwor
ICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxscHRyOworICAgICAgICAgICAgICBt
X3BWUk92ZXJsYXkgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlJlbmRlck1vZGVscyA9
IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1f
cFZSQXBwbGljYXRpb25zID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2Ft
ZXJhID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJSZXNvdXJjZXMgPSBudWxscHRyOwor
ICAgICAgICAgICAgICBtX3BWUlNjcmVlbnNob3RzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
bV9wVlJEcml2ZXJNYW5hZ2VyID0gbnVsbHB0cjsKKyAgICAgICB9CisgICAgICAgCisgICAgICAg
VlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0luaXRJbnRlcm5hbDIoIEVWUklu
aXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUsIGNv
bnN0IGNoYXIgKnBTdGFydHVwSW5mbyApOworICAgICAgIFZSX0lOVEVSRkFDRSB2b2lkIFZSX0NB
TExUWVBFIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKKworICAgICAgIC8qKiBGaW5kcyB0aGUgYWN0
aXZlIGluc3RhbGxhdGlvbiBvZiB2cmNsaWVudC5kbGwgYW5kIGluaXRpYWxpemVzIGl0ICovCisg
ICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfSW5pdCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBF
VlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJ
bmZvICkKKyAgICAgICB7CisgICAgICAgICAgICAgIElWUlN5c3RlbSAqcFZSU3lzdGVtID0gbnVs
bHB0cjsKKworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAg
ICBWUlRva2VuKCkgPSBWUl9Jbml0SW50ZXJuYWwyKCAmZUVycm9yLCBlQXBwbGljYXRpb25UeXBl
LCBwU3RhcnR1cEluZm8gKTsKKyAgICAgICAgICAgICAgQ09wZW5WUkNvbnRleHQgJmN0eCA9IE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKTsKKyAgICAgICAgICAgICAgY3R4LkNsZWFyKCk7
CisKKyAgICAgICAgICAgICAgaWYgKCBlRXJyb3IgPT0gVlJJbml0RXJyb3JfTm9uZSApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggVlJfSXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQoIElWUlN5c3RlbV9WZXJzaW9uICkgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBWUlN5c3RlbSA9IFZSU3lzdGVtKCk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlJfU2h1dGRvd25JbnRl
cm5hbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVFcnJvciA9IFZSSW5pdEVycm9y
X0luaXRfSW50ZXJmYWNlTm90Rm91bmQ7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICBpZiAoIHBlRXJyb3IgKQorICAgICAgICAgICAgICAg
ICAgICAgKnBlRXJyb3IgPSBlRXJyb3I7CisgICAgICAgICAgICAgIHJldHVybiBwVlJTeXN0ZW07
CisgICAgICAgfQorCisgICAgICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50ZXJm
YWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQgYWZ0
ZXIgdGhpcyBwb2ludCAqLworICAgICAgIGlubGluZSB2b2lkIFZSX1NodXRkb3duKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNz
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NTg1YWY0NTM0ZjAyNDgzZmE5Mzc5YTZlNThmYWU4YTE5NWIxMWI1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcwpA
QCAtMCwwICsxLDQ3ODYgQEAKKy8vPT09PT09PSBDb3B5cmlnaHQgKGMpIFZhbHZlIENvcnBvcmF0
aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVkLiA9PT09PT09PT09PT09PT0KKy8vCisvLyBQdXJwb3Nl
OiBUaGlzIGZpbGUgY29udGFpbnMgQyMvbWFuYWdlZCBjb2RlIGJpbmRpbmdzIGZvciB0aGUgT3Bl
blZSIGludGVyZmFjZXMKKy8vIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCwgZG8gbm90IGVk
aXQgaXQuCisvLworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCit1c2luZyBTeXN0ZW07Cit1c2lu
ZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7Cit1c2luZyBWYWx2ZS5WUjsKKworbmFt
ZXNwYWNlIFZhbHZlLlZSCit7CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0KK3B1YmxpYyBzdHJ1Y3QgSVZSU3lzdGVtCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9HZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUocmVmIHVpbnQgcG5XaWR0
aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0
U2l6ZSBHZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEhtZE1hdHJpeDQ0X3QgX0dldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVF
eWUsIGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclopOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFByb2plY3Rpb25NYXRy
aXggR2V0UHJvamVjdGlvbk1hdHJpeDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfR2V0UHJvamVjdGlvblJhdyhFVlJFeWUgZUV5ZSwgcmVmIGZsb2F0IHBmTGVmdCwgcmVm
IGZsb2F0IHBmUmlnaHQsIHJlZiBmbG9hdCBwZlRvcCwgcmVmIGZsb2F0IHBmQm90dG9tKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRQcm9qZWN0aW9uUmF3IEdldFByb2plY3Rpb25SYXc7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVEaXN0b3J0aW9uKEVWUkV5ZSBlRXllLCBmbG9h
dCBmVSwgZmxvYXQgZlYsIHJlZiBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCBwRGlzdG9ydGlvbkNv
b3JkaW5hdGVzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9Db21wdXRlRGlzdG9ydGlvbiBDb21wdXRlRGlzdG9ydGlvbjsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSG1kTWF0cml4MzRfdCBfR2V0RXllVG9I
ZWFkVHJhbnNmb3JtKEVWUkV5ZSBlRXllKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRFeWVUb0hlYWRUcmFuc2Zvcm0g
R2V0RXllVG9IZWFkVHJhbnNmb3JtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9HZXRUaW1lU2luY2VMYXN0VnN5bmMocmVmIGZsb2F0IHBmU2Vjb25kc1NpbmNlTGFzdFZz
eW5jLCByZWYgdWxvbmcgcHVsRnJhbWVDb3VudGVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUaW1lU2luY2VMYXN0
VnN5bmMgR2V0VGltZVNpbmNlTGFzdFZzeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBpbnQgX0dldEQzRDlBZGFwdGVySW5kZXgoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREM0Q5QWRhcHRlcklu
ZGV4IEdldEQzRDlBZGFwdGVySW5kZXg7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0dldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldERYR0lPdXRwdXRJbmZvIEdldERYR0lPdXRwdXRJbmZvOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rpc3BsYXlPbkRlc2t0b3AoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0Rpc3Bs
YXlPbkRlc2t0b3AgSXNEaXNwbGF5T25EZXNrdG9wOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBib29sIF9TZXREaXNwbGF5VmlzaWJpbGl0eShib29sIGJJc1Zpc2libGVPbkRlc2t0
b3ApOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1NldERpc3BsYXlWaXNpYmlsaXR5IFNldERpc3BsYXlWaXNpYmlsaXR5Owor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXREZXZpY2VUb0Fic29sdXRl
VHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIGZsb2F0IGZQcmVk
aWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3Nl
X3RbXSBwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludCB1blRyYWNrZWREZXZpY2VQb3NlQXJy
YXlDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBHZXREZXZp
Y2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9SZXNldFNlYXRlZFplcm9Qb3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVzZXRTZWF0ZWRaZXJvUG9z
ZSBSZXNldFNlYXRlZFplcm9Qb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBI
bWRNYXRyaXgzNF90IF9HZXRTZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5n
UG9zZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tp
bmdQb3NlIEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRSYXdaZXJv
UG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJhd1plcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldFJhd1plcm9Qb3NlVG9TdGFuZGlu
Z0Fic29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MoRVRyYWNrZWREZXZpY2VD
bGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBbSW4sIE91dF0gdWludFtdIHB1blRyYWNrZWREZXZp
Y2VJbmRleEFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCwgdWludCB1
blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNvcnRlZFRyYWNrZWRE
ZXZpY2VJbmRpY2VzT2ZDbGFzcyBHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3M7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVEZXZpY2VBY3Rpdml0eUxldmVsIF9H
ZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCh1aW50IHVuRGV2aWNlSWQpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVs
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9BcHBseVRyYW5zZm9ybShy
ZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9zZSwgcmVmIFRyYWNrZWREZXZpY2VQb3Nl
X3QgcFRyYWNrZWREZXZpY2VQb3NlLCByZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNmb3JtKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9BcHBseVRyYW5zZm9ybSBBcHBseVRyYW5zZm9ybTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWludCBfR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUo
RVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWRE
ZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlIEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRy
b2xsZXJSb2xlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVHJhY2tlZENvbnRy
b2xsZXJSb2xlIF9HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50IHVu
RGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUlu
ZGV4IEdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVHJhY2tlZERldmljZUNsYXNzIF9HZXRUcmFja2VkRGV2aWNl
Q2xhc3ModWludCB1bkRldmljZUluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFja2VkRGV2aWNlQ2xhc3Mg
R2V0VHJhY2tlZERldmljZUNsYXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodWludCB1bkRldmljZUluZGV4KTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQgSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRCb29sVHJhY2tlZERldmljZVBy
b3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBy
ZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Qm9vbFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBmbG9hdCBfR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHko
dWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2VkUHJv
cGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5
IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB1bG9uZyBfR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5IEdl
dFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgSG1kTWF0cml4MzRfdCBfR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkodWlu
dCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVp
bnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEludFB0ciBfR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKEVUcmFja2VkUHJv
cGVydHlFcnJvciBlcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIEdldFBy
b3BFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfUG9sbE5leHRFdmVudChyZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVudCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfUG9sbE5leHRFdmVudCBQb2xsTmV4dEV2ZW50OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZU9yaWdpbiwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5jYlZSRXZlbnQs
IHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUG9s
bE5leHRFdmVudFdpdGhQb3NlIFBvbGxOZXh0RXZlbnRXaXRoUG9zZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oRVZSRXZl
bnRUeXBlIGVUeXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0gR2V0RXZlbnRU
eXBlTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIaWRkZW5B
cmVhTWVzaF90IF9HZXRIaWRkZW5BcmVhTWVzaChFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNo
VHlwZSB0eXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRIaWRkZW5BcmVhTWVzaCBHZXRIaWRkZW5BcmVhTWVzaDsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29udHJvbGxlclN0YXRl
KHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBD
b250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRD
b250cm9sbGVyU3RhdGUgR2V0Q29udHJvbGxlclN0YXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbiBlT3JpZ2luLCB1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LCByZWYgVlJD
b250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLCB1aW50IHVuQ29udHJvbGxlclN0YXRl
U2l6ZSwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfVHJpZ2dlckhhcHRpY1B1bHNl
KHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQgdW5BeGlzSWQsIGNoYXIgdXNEdXJh
dGlvbk1pY3JvU2VjKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9UcmlnZ2VySGFwdGljUHVsc2UgVHJpZ2dlckhhcHRpY1B1
bHNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEJ1dHRvbklk
TmFtZUZyb21FbnVtKEVWUkJ1dHRvbklkIGVCdXR0b25JZCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QnV0dG9uSWRO
YW1lRnJvbUVudW0gR2V0QnV0dG9uSWROYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVW
UkNvbnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJBeGlz
VHlwZU5hbWVGcm9tRW51bSBHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW07CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhcHR1cmVJbnB1dEZvY3VzKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfQ2FwdHVyZUlucHV0Rm9jdXMgQ2FwdHVyZUlucHV0Rm9jdXM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbGVhc2VJbnB1dEZvY3VzKCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVs
ZWFzZUlucHV0Rm9jdXMgUmVsZWFzZUlucHV0Rm9jdXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0lzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0lzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcyBJc0lucHV0Rm9jdXND
YXB0dXJlZEJ5QW5vdGhlclByb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHVpbnQgX0RyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hS
ZXF1ZXN0LCBzdHJpbmcgcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQgdW5SZXNwb25zZUJ1ZmZlclNp
emUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0RyaXZlckRlYnVnUmVxdWVzdCBEcml2ZXJEZWJ1Z1JlcXVlc3Q7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkZpcm13YXJlRXJyb3IgX1BlcmZvcm1GaXJt
d2FyZVVwZGF0ZSh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1BlcmZvcm1GaXJtd2FyZVVw
ZGF0ZSBQZXJmb3JtRmlybXdhcmVVcGRhdGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0Fja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQWNrbm93bGVkZ2VR
dWl0X0V4aXRpbmcgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmc7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0Fja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
QWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQgQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQ7CisK
K30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVj
dCBJVlJFeHRlbmRlZERpc3BsYXkKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX0dldFdpbmRvd0JvdW5kcyhyZWYgaW50IHBuWCwgcmVmIGludCBwblksIHJlZiB1aW50IHBu
V2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRXaW5kb3dCb3VuZHMgR2V0V2lu
ZG93Qm91bmRzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRFeWVP
dXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSwgcmVmIHVpbnQgcG5YLCByZWYgdWludCBwblksIHJl
ZiB1aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRFeWVPdXRwdXRW
aWV3cG9ydCBHZXRFeWVPdXRwdXRWaWV3cG9ydDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCwgcmVm
IGludCBwbkFkYXB0ZXJPdXRwdXRJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RFhHSU91dHB1dEluZm8gR2V0
RFhHSU91dHB1dEluZm87CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXQorcHVibGljIHN0cnVjdCBJVlJUcmFja2VkQ2FtZXJhCit7CisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUVycm9yTmFtZUZy
b21FbnVtIEdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0hhc0NhbWVyYSh1aW50IG5EZXZpY2VJ
bmRleCwgcmVmIGJvb2wgcEhhc0NhbWVyYSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSGFzQ2FtZXJhIEhhc0NhbWVyYTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9H
ZXRDYW1lcmFGcmFtZVNpemUodWludCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZSwgcmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQsIHJl
ZiB1aW50IHBuRnJhbWVCdWZmZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFGcmFtZVNpemUgR2V0
Q2FtZXJhRnJhbWVTaXplOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgX0dldENhbWVyYUludHJpbnNpY3ModWludCBuRGV2aWNlSW5kZXgsIEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgcmVmIEhtZFZlY3RvcjJfdCBwRm9j
YWxMZW5ndGgsIHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhSW50
cmluc2ljcyBHZXRDYW1lcmFJbnRyaW5zaWNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENhbWVyYVByb2plY3Rpb24odWludCBuRGV2
aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxa
TmVhciwgZmxvYXQgZmxaRmFyLCByZWYgSG1kTWF0cml4NDRfdCBwUHJvamVjdGlvbik7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0Q2FtZXJhUHJvamVjdGlvbiBHZXRDYW1lcmFQcm9qZWN0aW9uOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0FjcXVpcmVWaWRlb1N0
cmVhbWluZ1NlcnZpY2UodWludCBuRGV2aWNlSW5kZXgsIHJlZiB1bG9uZyBwSGFuZGxlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9BY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIEFjcXVpcmVWaWRlb1N0cmVhbWluZ1Nl
cnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciBfUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSBSZWxlYXNlVmlkZW9TdHJlYW1p
bmdTZXJ2aWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgX0dldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1lcmEs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgSW50UHRyIHBGcmFtZUJ1ZmZl
ciwgdWludCBuRnJhbWVCdWZmZXJTaXplLCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRl
b1N0cmVhbUZyYW1lQnVmZmVyIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXI7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9TdHJl
YW1UZXh0dXJlU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMsIHJlZiB1
aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVTaXplIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9TdHJlYW1UZXh0dXJl
RDNEMTEodWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZy
YW1lVHlwZSwgSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3VyY2UsIHJlZiBJbnRQdHIgcHBEM0Qx
MVNoYWRlclJlc291cmNlVmlldywgcmVmIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCBw
RnJhbWVIZWFkZXIsIHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VmlkZW9TdHJl
YW1UZXh0dXJlRDNEMTEgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTE7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9TdHJlYW1U
ZXh0dXJlR0wodWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgcmVmIHVpbnQgcGdsVGV4dHVyZUlkLCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1G
cmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRWaWRlb1N0cmVhbVRleHR1cmVHTCBHZXRWaWRlb1N0cmVhbVRleHR1cmVHTDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9SZWxlYXNl
VmlkZW9TdHJlYW1UZXh0dXJlR0wodWxvbmcgaFRyYWNrZWRDYW1lcmEsIHVpbnQgZ2xUZXh0dXJl
SWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1JlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTCBSZWxlYXNlVmlkZW9TdHJl
YW1UZXh0dXJlR0w7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XQorcHVibGljIHN0cnVjdCBJVlJBcHBsaWNhdGlvbnMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0FkZEFwcGxpY2F0aW9uTWFuaWZlc3Qoc3Ry
aW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5KTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9BZGRBcHBsaWNhdGlvbk1hbmlmZXN0IEFkZEFwcGxpY2F0aW9uTWFuaWZlc3Q7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX1JlbW92ZUFw
cGxpY2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCBSZW1vdmVBcHBsaWNhdGlvbk1hbmlm
ZXN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FwcGxpY2F0aW9u
SW5zdGFsbGVkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzQXBwbGljYXRpb25JbnN0YWxs
ZWQgSXNBcHBsaWNhdGlvbkluc3RhbGxlZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdWludCBfR2V0QXBwbGljYXRpb25Db3VudCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uQ291
bnQgR2V0QXBwbGljYXRpb25Db3VudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQXBwbGljYXRpb25FcnJvciBfR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBs
aWNhdGlvbkluZGV4LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEFwcEtleUJ1ZmZlciwg
dWludCB1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25LZXlCeUluZGV4
IEdldEFwcGxpY2F0aW9uS2V5QnlJbmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCh1aW50
IHVuUHJvY2Vzc0lkLCBzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVy
TGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkIEdldEFwcGxpY2F0aW9u
S2V5QnlQcm9jZXNzSWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgX0xhdW5jaEFwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0xhdW5jaEFwcGxpY2F0aW9uIExhdW5jaEFwcGxpY2F0aW9uOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9MYXVuY2hUZW1wbGF0ZUFwcGxpY2F0
aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSwgc3RyaW5nIHBjaE5ld0FwcEtleSwgW0luLCBP
dXRdIEFwcE92ZXJyaWRlS2V5c190W10gcEtleXMsIHVpbnQgdW5LZXlzKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9MYXVu
Y2hUZW1wbGF0ZUFwcGxpY2F0aW9uIExhdW5jaFRlbXBsYXRlQXBwbGljYXRpb247CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEFwcGxp
Y2F0aW9uRnJvbU1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSwgc3RyaW5nIHBjaEFyZ3MpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0xhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlIExhdW5jaEFwcGxpY2F0aW9uRnJv
bU1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlv
bkVycm9yIF9MYXVuY2hEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBwY2hBcHBLZXkpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0xhdW5jaERhc2hib2FyZE92ZXJsYXkgTGF1bmNoRGFzaGJvYXJkT3ZlcmxheTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FuY2VsQXBwbGljYXRpb25MYXVuY2goc3Ry
aW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuY2VsQXBwbGljYXRpb25MYXVuY2ggQ2FuY2VsQXBw
bGljYXRpb25MYXVuY2g7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgX0lkZW50aWZ5QXBwbGljYXRpb24odWludCB1blByb2Nlc3NJZCwgc3RyaW5n
IHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfSWRlbnRpZnlBcHBsaWNhdGlvbiBJZGVudGlmeUFwcGxpY2F0
aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlv
blByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb2Nl
c3NJZCBHZXRBcHBsaWNhdGlvblByb2Nlc3NJZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgSW50UHRyIF9HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bShFVlJBcHBsaWNh
dGlvbkVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51
bSBHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyhzdHJpbmcgcGNo
QXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgU3lzdGVtLlRleHQuU3Ry
aW5nQnVpbGRlciBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1aW50IHVuUHJvcGVydHlWYWx1ZUJ1
ZmZlckxlbiwgcmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBw
bGljYXRpb25Qcm9wZXJ0eVN0cmluZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvblByb3BlcnR5
Qm9vbChzdHJpbmcgcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwg
cmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Q
cm9wZXJ0eUJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2w7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0cmlu
ZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCByZWYgRVZSQXBw
bGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb3BlcnR5VWlu
dDY0IEdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX1NldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChz
dHJpbmcgcGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRBcHBsaWNhdGlv
bkF1dG9MYXVuY2ggU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2goc3RyaW5nIHBjaEFw
cEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoIEdldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25F
cnJvciBfU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUoc3RyaW5nIHBjaEFwcEtleSwg
c3RyaW5nIHBjaE1pbWVUeXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1l
VHlwZSBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUoc3Ry
aW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVm
ZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSBHZXREZWZh
dWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtl
eSwgc3RyaW5nIHBjaE1pbWVUeXBlc0J1ZmZlciwgdWludCB1bk1pbWVUeXBlc0J1ZmZlcik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMgR2V0QXBwbGljYXRpb25TdXBw
b3J0ZWRNaW1lVHlwZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJp
bmcgcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50IHVuQXBwS2V5c1RoYXRTdXBwb3J0
QnVmZmVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlIEdldEFw
cGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKHVpbnQgdW5IYW5kbGUs
IHN0cmluZyBwY2hBcmdzLCB1aW50IHVuQXJncyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25MYXVu
Y2hBcmd1bWVudHMgR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0dldFN0YXJ0aW5nQXBwbGlj
YXRpb24oc3RyaW5nIHBjaEFwcEtleUJ1ZmZlciwgdWludCB1bkFwcEtleUJ1ZmZlckxlbik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiBHZXRTdGFydGluZ0FwcGxpY2F0aW9uOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0
ZSBfR2V0VHJhbnNpdGlvblN0YXRlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VHJhbnNpdGlvblN0YXRlIEdldFRy
YW5zaXRpb25TdGF0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGlj
YXRpb25FcnJvciBfUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFw
cEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2sgUGVyZm9ybUFw
cGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2s7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEludFB0ciBfR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbnNU
cmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0gR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRl
TmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNRdWl0VXNlclByb21wdFJlcXVlc3Rl
ZCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9MYXVuY2hJbnRlcm5hbFByb2Nlc3Moc3RyaW5nIHBj
aEJpbmFyeVBhdGgsIHN0cmluZyBwY2hBcmd1bWVudHMsIHN0cmluZyBwY2hXb3JraW5nRGlyZWN0
b3J5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9MYXVuY2hJbnRlcm5hbFByb2Nlc3MgTGF1bmNoSW50ZXJuYWxQcm9jZXNz
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRDdXJyZW50U2NlbmVQ
cm9jZXNzSWQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQgR2V0Q3VycmVudFNj
ZW5lUHJvY2Vzc0lkOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIF9HZXRDYWxpYnJhdGlvblN0YXRlKCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0Q2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5QXJlYVNpemUocmVmIGZsb2F0
IHBTaXplWCwgcmVmIGZsb2F0IHBTaXplWik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UGxheUFyZWFTaXplIEdldFBs
YXlBcmVhU2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0UGxh
eUFyZWFSZWN0KHJlZiBIbWRRdWFkX3QgcmVjdCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UGxheUFyZWFSZWN0IEdl
dFBsYXlBcmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVs
b2FkSW5mbygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1JlbG9hZEluZm8gUmVsb2FkSW5mbzsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TZXRTY2VuZUNvbG9yIFNldFNjZW5lQ29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0dldEJvdW5kc0NvbG9yKHJlZiBIbWRDb2xvcl90IHBPdXRwdXRD
b2xvckFycmF5LCBpbnQgbk51bU91dHB1dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNG
YWRlRGlzdGFuY2UsIHJlZiBIbWRDb2xvcl90IHBPdXRwdXRDYW1lcmFDb2xvcik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0Qm91bmRzQ29sb3IgR2V0Qm91bmRzQ29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0FyZUJvdW5kc1Zpc2libGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9BcmVCb3VuZHNWaXNpYmxl
IEFyZUJvdW5kc1Zpc2libGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQg
X0ZvcmNlQm91bmRzVmlzaWJsZShib29sIGJGb3JjZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRm9yY2VCb3VuZHNWaXNp
YmxlIEZvcmNlQm91bmRzVmlzaWJsZTsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUkNoYXBlcm9uZVNldHVwCit7CisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Db21taXRXb3JraW5nQ29weShFQ2hhcGVyb25l
Q29uZmlnRmlsZSBjb25maWdGaWxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21taXRXb3JraW5nQ29weSBDb21taXRX
b3JraW5nQ29weTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmV2ZXJ0
V29ya2luZ0NvcHkoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9SZXZlcnRXb3JraW5nQ29weSBSZXZlcnRXb3JraW5nQ29w
eTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlB
cmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLCByZWYgZmxvYXQgcFNpemVaKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRX
b3JraW5nUGxheUFyZWFTaXplIEdldFdvcmtpbmdQbGF5QXJlYVNpemU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QocmVmIEhtZFF1
YWRfdCByZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRXb3JraW5nUGxheUFyZWFSZWN0IEdldFdvcmtpbmdQbGF5
QXJlYVJlY3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIs
IHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdDb2xsaXNpb25Cb3Vu
ZHNJbmZvIEdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4sIE91dF0g
SG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCByZWYgdWludCBwdW5RdWFkc0NvdW50KTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyBHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbzsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1NlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlIEdldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3Nl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGlu
Z1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29y
a2luZ1BsYXlBcmVhU2l6ZShmbG9hdCBzaXplWCwgZmxvYXQgc2l6ZVopOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdv
cmtpbmdQbGF5QXJlYVNpemUgU2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oW0lu
LCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgdWludCB1blF1YWRzQ291bnQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIFNldFdvcmtpbmdDb2xsaXNpb25Cb3Vu
ZHNJbmZvOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5n
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1NlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtp
bmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcE1h
dFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9SZWxvYWRGcm9tRGlzayhFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9SZWxvYWRGcm9tRGlzayBSZWxvYWRGcm9tRGlzazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVm
IEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIEdldExpdmVTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8oW0luLCBPdXRdIGJ5dGVb
XSBwVGFnc0J1ZmZlciwgdWludCB1blRhZ0NvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzVGFnc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlQ29sbGlzaW9uQm91bmRz
VGFnc0luZm8oW0luLCBPdXRdIGJ5dGVbXSBwVGFnc0J1ZmZlciwgcmVmIHVpbnQgcHVuVGFnQ291
bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyBHZXRMaXZlQ29sbGlz
aW9uQm91bmRzVGFnc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X1NldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFk
c0J1ZmZlciwgdWludCB1blF1YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdQaHlzaWNhbEJv
dW5kc0luZm8gU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0g
SG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCByZWYgdWludCBwdW5RdWFkc0NvdW50KTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm87CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0V4cG9ydExpdmVUb0J1ZmZlcihT
eXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBCdWZmZXIsIHJlZiB1aW50IHBuQnVmZmVyTGVuZ3Ro
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9FeHBvcnRMaXZlVG9CdWZmZXIgRXhwb3J0TGl2ZVRvQnVmZmVyOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9JbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5n
KHN0cmluZyBwQnVmZmVyLCB1aW50IG5JbXBvcnRGbGFncyk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSW1wb3J0RnJvbUJ1
ZmZlclRvV29ya2luZyBJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nOworCit9CisKK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ29tcG9zaXRv
cgoreworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0VHJhY2tpbmdTcGFj
ZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRUcmFja2luZ1Nw
YWNlIFNldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIF9HZXRUcmFja2luZ1NwYWNlKCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VHJh
Y2tpbmdTcGFjZSBHZXRUcmFja2luZ1NwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1dhaXRHZXRQb3NlcyhbSW4sIE91dF0gVHJhY2tlZERl
dmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQgdW5SZW5kZXJQb3NlQXJyYXlDb3Vu
dCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3RbXSBwR2FtZVBvc2VBcnJheSwgdWludCB1
bkdhbWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfV2FpdEdldFBvc2VzIFdhaXRHZXRQb3NlczsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRM
YXN0UG9zZXMoW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3RbXSBwUmVuZGVyUG9zZUFycmF5
LCB1aW50IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIFtJbiwgT3V0XSBUcmFja2VkRGV2aWNlUG9z
ZV90W10gcEdhbWVQb3NlQXJyYXksIHVpbnQgdW5HYW1lUG9zZUFycmF5Q291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldExhc3RQb3NlcyBHZXRMYXN0UG9zZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgo
dWludCB1bkRldmljZUluZGV4LCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9zZSwg
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRMYXN0
UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9T
dWJtaXQoRVZSRXllIGVFeWUsIHJlZiBUZXh0dXJlX3QgcFRleHR1cmUsIHJlZiBWUlRleHR1cmVC
b3VuZHNfdCBwQm91bmRzLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1N1
Ym1pdCBTdWJtaXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NsZWFy
TGFzdFN1Ym1pdHRlZEZyYW1lKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUgQ2xl
YXJMYXN0U3VibWl0dGVkRnJhbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1Bvc3RQcmVzZW50SGFuZG9mZigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Bvc3RQcmVzZW50SGFuZG9mZiBQb3N0
UHJlc2VudEhhbmRvZmY7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dl
dEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5nIHBUaW1pbmcsIHVpbnQgdW5G
cmFtZXNBZ28pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldEZyYW1lVGltaW5nIEdldEZyYW1lVGltaW5nOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRGcmFtZVRpbWluZ3MocmVmIENvbXBv
c2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCBuRnJhbWVzKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGcmFt
ZVRpbWluZ3MgR2V0RnJhbWVUaW1pbmdzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBmbG9hdCBfR2V0RnJhbWVUaW1lUmVtYWluaW5nKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1lUmVt
YWluaW5nIEdldEZyYW1lVGltZVJlbWFpbmluZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21wb3NpdG9yX0N1bXVsYXRpdmVT
dGF0cyBwU3RhdHMsIHVpbnQgblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEN1bXVsYXRp
dmVTdGF0cyBHZXRDdW11bGF0aXZlU3RhdHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0ZhZGVUb0NvbG9yKGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVkLCBmbG9hdCBm
R3JlZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91bmQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0ZhZGVUb0NvbG9yIEZhZGVUb0NvbG9yOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBIbWRDb2xvcl90IF9HZXRDdXJyZW50RmFkZUNvbG9yKGJvb2wgYkJhY2tncm91bmQpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldEN1cnJlbnRGYWRlQ29sb3IgR2V0Q3VycmVudEZhZGVDb2xvcjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRmFkZUdyaWQoZmxvYXQgZlNlY29uZHMsIGJv
b2wgYkZhZGVJbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfRmFkZUdyaWQgRmFkZUdyaWQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRDdXJyZW50R3JpZEFscGhhKCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
Q3VycmVudEdyaWRBbHBoYSBHZXRDdXJyZW50R3JpZEFscGhhOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1NldFNreWJveE92ZXJyaWRlKFtJbiwg
T3V0XSBUZXh0dXJlX3RbXSBwVGV4dHVyZXMsIHVpbnQgdW5UZXh0dXJlQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldFNreWJveE92ZXJyaWRlIFNldFNreWJveE92ZXJyaWRlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9DbGVhclNreWJveE92ZXJyaWRlKCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2xlYXJT
a3lib3hPdmVycmlkZSBDbGVhclNreWJveE92ZXJyaWRlOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yQnJpbmdUb0Zyb250KCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9z
aXRvckJyaW5nVG9Gcm9udCBDb21wb3NpdG9yQnJpbmdUb0Zyb250OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yR29Ub0JhY2soKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21w
b3NpdG9yR29Ub0JhY2sgQ29tcG9zaXRvckdvVG9CYWNrOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yUXVpdCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0b3JRdWl0
IENvbXBvc2l0b3JRdWl0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9J
c0Z1bGxzY3JlZW4oKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9Jc0Z1bGxzY3JlZW4gSXNGdWxsc2NyZWVuOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nl
c3MoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MgR2V0Q3VycmVudFNjZW5l
Rm9jdXNQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRM
YXN0RnJhbWVSZW5kZXJlcigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExhc3RGcmFtZVJlbmRlcmVyIEdldExhc3RG
cmFtZVJlbmRlcmVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5S
ZW5kZXJTY2VuZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0NhblJlbmRlclNjZW5lIENhblJlbmRlclNjZW5lOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TaG93TWlycm9yV2luZG93KCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU2hvd01pcnJvcldpbmRvdyBTaG93TWlycm9yV2luZG93OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9IaWRlTWlycm9yV2luZG93KCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSGlkZU1p
cnJvcldpbmRvdyBIaWRlTWlycm9yV2luZG93OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBib29sIF9Jc01pcnJvcldpbmRvd1Zpc2libGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc01pcnJvcldpbmRv
d1Zpc2libGUgSXNNaXJyb3JXaW5kb3dWaXNpYmxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yRHVtcEltYWdlcygpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0b3JE
dW1wSW1hZ2VzIENvbXBvc2l0b3JEdW1wSW1hZ2VzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBib29sIF9TaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyBTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVz
b3VyY2VzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Gb3JjZUludGVy
bGVhdmVkUmVwcm9qZWN0aW9uT24oYm9vbCBiT3ZlcnJpZGUpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZvcmNlSW50ZXJs
ZWF2ZWRSZXByb2plY3Rpb25PbiBGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT247CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlUmVjb25uZWN0UHJvY2Vzcygp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0ZvcmNlUmVjb25uZWN0UHJvY2VzcyBGb3JjZVJlY29ubmVjdFByb2Nlc3M7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1N1c3BlbmRSZW5kZXJpbmcoYm9v
bCBiU3VzcGVuZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfU3VzcGVuZFJlbmRlcmluZyBTdXNwZW5kUmVuZGVyaW5nOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dldE1p
cnJvclRleHR1cmVEM0QxMShFVlJFeWUgZUV5ZSwgSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3Vy
Y2UsIHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TWly
cm9yVGV4dHVyZUQzRDExIEdldE1pcnJvclRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMShJbnRQdHIgcEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDEx
IFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWlycm9yVGV4dHVyZUdMKEVWUkV5ZSBlRXllLCBy
ZWYgdWludCBwZ2xUZXh0dXJlSWQsIEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRNaXJyb3JUZXh0dXJlR0wgR2V0TWlycm9yVGV4dHVyZUdMOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9SZWxlYXNlU2hhcmVkR0xUZXh0dXJlKHVpbnQgZ2xU
ZXh0dXJlSWQsIEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VT
aGFyZWRHTFRleHR1cmUgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQdHIg
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNj
ZXNzIExvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xT
aGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9VbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nl
c3MgVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0
ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuSW5zdGFuY2VF
eHRlbnNpb25zUmVxdWlyZWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJbnRQdHIgcFBoeXNpY2FsRGV2aWNl
LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkIEdldFZ1bGthbkRldmlj
ZUV4dGVuc2lvbnNSZXF1aXJlZDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUk92ZXJsYXkKK3sKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfRmluZE92ZXJsYXkoc3RyaW5nIHBjaE92ZXJs
YXlLZXksIHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRmluZE92ZXJsYXkgRmlu
ZE92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfQ3JlYXRlT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtleSwgc3RyaW5nIHBjaE92ZXJsYXlG
cmllbmRseU5hbWUsIHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ3JlYXRlT3Zl
cmxheSBDcmVhdGVPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX0Rlc3Ryb3lPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfRGVzdHJveU92ZXJsYXkgRGVzdHJveU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0SGlnaFF1YWxpdHlPdmVybGF5KHVsb25nIHVs
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0SGlnaFF1YWxpdHlPdmVybGF5IFNldEhpZ2hRdWFs
aXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldEhp
Z2hRdWFsaXR5T3ZlcmxheSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEhpZ2hRdWFsaXR5T3ZlcmxheSBHZXRIaWdo
UXVhbGl0eU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dE92ZXJsYXlLZXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWls
ZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSwgcmVmIEVWUk92ZXJsYXlFcnJvciBwRXJy
b3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldE92ZXJsYXlLZXkgR2V0T3ZlcmxheUtleTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6
ZSwgcmVmIEVWUk92ZXJsYXlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlOYW1lIEdl
dE92ZXJsYXlOYW1lOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX0dldE92ZXJsYXlJbWFnZURhdGEodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQdHIg
cHZCdWZmZXIsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgdWludCBwdW5XaWR0aCwgcmVmIHVpbnQg
cHVuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW1hZ2VEYXRhIEdldE92ZXJsYXlJbWFnZURh
dGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0T3ZlcmxheUVy
cm9yTmFtZUZyb21FbnVtKEVWUk92ZXJsYXlFcnJvciBlcnJvcik7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zlcmxh
eUVycm9yTmFtZUZyb21FbnVtIEdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5UmVuZGVy
aW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blBJRCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheVJlbmRlcmluZ1BpZCBTZXRPdmVybGF5UmVuZGVyaW5nUGlkOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCBHZXRPdmVybGF5UmVu
ZGVyaW5nUGlkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1NldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3Mg
ZU92ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5RmxhZyBTZXRP
dmVybGF5RmxhZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9HZXRPdmVybGF5RmxhZyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdz
IGVPdmVybGF5RmxhZywgcmVmIGJvb2wgcGJFbmFibGVkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5Rmxh
ZyBHZXRPdmVybGF5RmxhZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zl
cmxheUVycm9yIF9TZXRPdmVybGF5Q29sb3IodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBm
UmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5Q29sb3Ig
U2V0T3ZlcmxheUNvbG9yOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX0dldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9h
dCBwZlJlZCwgcmVmIGZsb2F0IHBmR3JlZW4sIHJlZiBmbG9hdCBwZkJsdWUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dE92ZXJsYXlDb2xvciBHZXRPdmVybGF5Q29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgZkFscGhhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5QWxwaGEgU2V0T3ZlcmxheUFs
cGhhOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZkFscGhhKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRPdmVybGF5QWxwaGEgR2V0T3ZlcmxheUFscGhhOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXhlbEFzcGVjdCh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheVRleGVsQXNwZWN0IFNldE92ZXJsYXlUZXhlbEFzcGVjdDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
T3ZlcmxheVRleGVsQXNwZWN0IEdldE92ZXJsYXlUZXhlbEFzcGVjdDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5U29ydE9yZGVyKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blNvcnRPcmRlcik7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eVNvcnRPcmRlciBTZXRPdmVybGF5U29ydE9yZGVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLCByZWYgdWludCBwdW5Tb3J0T3JkZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlTb3J0
T3JkZXIgR2V0T3ZlcmxheVNvcnRPcmRlcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5V2lkdGhJ
bk1ldGVycyBTZXRPdmVybGF5V2lkdGhJbk1ldGVyczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZldpZHRoSW5NZXRlcnMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92
ZXJsYXlXaWR0aEluTWV0ZXJzIEdldE92ZXJsYXlXaWR0aEluTWV0ZXJzOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlBdXRvQ3VydmVE
aXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlz
dGFuY2VJbk1ldGVycywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92
ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMgU2V0T3ZlcmxheUF1dG9DdXJ2ZURp
c3RhbmNlUmFuZ2VJbk1ldGVyczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9HZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycywgcmVm
IGZsb2F0IHBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUF1dG9DdXJ2
ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUlu
TWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVDb2xv
clNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlIFNldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2Uo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgRUNvbG9yU3BhY2UgcGVUZXh0dXJlQ29sb3JTcGFj
ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIEdldE92ZXJsYXlUZXh0dXJl
Q29sb3JTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9TZXRPdmVybGF5VGV4dHVyZUJvdW5kcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJs
YXlUZXh0dXJlQm91bmRzIFNldE92ZXJsYXlUZXh0dXJlQm91bmRzOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQm91bmRz
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSVGV4dHVyZUJvdW5kc190IHBPdmVybGF5VGV4
dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMgR2V0T3ZlcmxheVRl
eHR1cmVCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYg
VlJPdmVybGF5VHJhbnNmb3JtVHlwZSBwZVRyYW5zZm9ybVR5cGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJs
YXlUcmFuc2Zvcm1UeXBlIEdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNv
bHV0ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFj
a2luZ09yaWdpbiwgcmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5
VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUgU2V0T3Zlcmxh
eVRyYW5zZm9ybUFic29sdXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX0dldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBwZVRyYWNraW5nT3JpZ2luLCByZWYg
SG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1
dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIHVpbnQgdW5UcmFja2VkRGV2aWNlLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tlZERl
dmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNr
ZWREZXZpY2VSZWxhdGl2ZSBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92
ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCByZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tl
ZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9ybVRy
YWNrZWREZXZpY2VSZWxhdGl2ZSBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0
aXZlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgdWludCB1bkRldmljZUluZGV4LCBzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQgU2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VD
b21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5EZXZpY2VJbmRleCwg
c3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHVpbnQgdW5Db21wb25lbnROYW1lU2l6ZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQgR2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd092ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxl
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9TaG93T3ZlcmxheSBTaG93T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9IaWRlT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0hpZGVPdmVybGF5IEhpZGVPdmVybGF5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc092ZXJsYXlWaXNpYmxlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfSXNPdmVybGF5VmlzaWJsZSBJc092ZXJsYXlWaXNpYmxlOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5PdmVy
bGF5LCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFuc2Zv
cm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXMgR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVz
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Qb2xsTmV4dE92ZXJsYXlF
dmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVu
Y2JWUkV2ZW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9Qb2xsTmV4dE92ZXJsYXlFdmVudCBQb2xsTmV4dE92ZXJsYXlF
dmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9H
ZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJPdmVybGF5
SW5wdXRNZXRob2QgcGVJbnB1dE1ldGhvZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUlucHV0TWV0aG9k
IEdldE92ZXJsYXlJbnB1dE1ldGhvZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJs
YXlJbnB1dE1ldGhvZCBTZXRPdmVybGF5SW5wdXRNZXRob2Q7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheU1vdXNlU2NhbGUodWxvbmcg
dWxPdmVybGF5SGFuZGxlLCByZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRPdmVybGF5TW91c2VTY2FsZSBHZXRPdmVybGF5TW91c2VTY2FsZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5TW91c2VTY2Fs
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1NldE92ZXJsYXlNb3VzZVNjYWxlIFNldE92ZXJsYXlNb3VzZVNjYWxlOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Db21wdXRlT3ZlcmxheUludGVyc2Vj
dGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJh
bXNfdCBwUGFyYW1zLCByZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1bHRz
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9Db21wdXRlT3ZlcmxheUludGVyc2VjdGlvbiBDb21wdXRlT3ZlcmxheUludGVy
c2VjdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSGFuZGxlQ29u
dHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1
aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IYW5kbGVDb250cm9sbGVyT3Zl
cmxheUludGVyYWN0aW9uQXNNb3VzZSBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9u
QXNNb3VzZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNIb3ZlclRh
cmdldE92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0hvdmVyVGFyZ2V0
T3ZlcmxheSBJc0hvdmVyVGFyZ2V0T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdWxvbmcgX0dldEdhbWVwYWRGb2N1c092ZXJsYXkoKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRHYW1lcGFk
Rm9jdXNPdmVybGF5IEdldEdhbWVwYWRGb2N1c092ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1bG9u
ZyB1bE5ld0ZvY3VzT3ZlcmxheSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSBTZXRH
YW1lcGFkRm9jdXNPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0
aW9uLCB1bG9uZyB1bEZyb20sIHVsb25nIHVsVG8pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlOZWlnaGJv
ciBTZXRPdmVybGF5TmVpZ2hib3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoRU92ZXJsYXlEaXJlY3Rp
b24gZURpcmVjdGlvbiwgdWxvbmcgdWxGcm9tKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Nb3ZlR2FtZXBhZEZvY3VzVG9O
ZWlnaGJvciBNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcjsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiBUZXh0dXJlX3QgcFRleHR1cmUpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlU
ZXh0dXJlIFNldE92ZXJsYXlUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX0NsZWFyT3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9DbGVhck92ZXJsYXlUZXh0dXJlIENsZWFyT3ZlcmxheVRleHR1cmU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zlcmxh
eVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBwdkJ1ZmZlciwgdWludCB1bldpZHRo
LCB1aW50IHVuSGVpZ2h0LCB1aW50IHVuRGVwdGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlSYXcgU2V0
T3ZlcmxheVJhdzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9TZXRPdmVybGF5RnJvbUZpbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBzdHJpbmcgcGNo
RmlsZVBhdGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGcm9tRmlsZSBTZXRPdmVybGF5RnJvbUZpbGU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgSW50UHRyIHBOYXRpdmVUZXh0
dXJlSGFuZGxlLCBJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYsIHJlZiB1aW50IHBXaWR0aCwgcmVm
IHVpbnQgcEhlaWdodCwgcmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCwgcmVmIEVUZXh0dXJlVHlwZSBw
QVBJVHlwZSwgcmVmIEVDb2xvclNwYWNlIHBDb2xvclNwYWNlLCByZWYgVlJUZXh0dXJlQm91bmRz
X3QgcFRleHR1cmVCb3VuZHMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlUZXh0dXJlIEdldE92ZXJsYXlU
ZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRy
IHBOYXRpdmVUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRs
ZSBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4dHVyZVNpemUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLCByZWYgdWludCBwV2lkdGgsIHJlZiB1aW50IHBIZWlnaHQpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dE92ZXJsYXlUZXh0dXJlU2l6ZSBHZXRPdmVybGF5VGV4dHVyZVNpemU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfQ3JlYXRlRGFzaGJvYXJkT3Zlcmxh
eShzdHJpbmcgcGNoT3ZlcmxheUtleSwgc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5hbWUsIHJl
ZiB1bG9uZyBwTWFpbkhhbmRsZSwgcmVmIHVsb25nIHBUaHVtYm5haWxIYW5kbGUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0NyZWF0ZURhc2hib2FyZE92ZXJsYXkgQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNEYXNoYm9hcmRWaXNpYmxlKCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfSXNEYXNoYm9hcmRWaXNpYmxlIElzRGFzaGJvYXJkVmlzaWJsZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVsb25nIHVs
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IElzQWN0aXZl
RGFzaGJvYXJkT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zl
cmxheUVycm9yIF9TZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgdWludCB1blByb2Nlc3NJZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0RGFzaGJvYXJkT3ZlcmxheVNj
ZW5lUHJvY2VzcyBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldERhc2hib2FyZE92ZXJsYXlT
Y2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5Qcm9jZXNzSWQp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MgR2V0RGFzaGJvYXJkT3Zl
cmxheVNjZW5lUHJvY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
U2hvd0Rhc2hib2FyZChzdHJpbmcgcGNoT3ZlcmxheVRvU2hvdyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2hvd0Rhc2hi
b2FyZCBTaG93RGFzaGJvYXJkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50
IF9HZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJpbWFyeURhc2hib2Fy
ZERldmljZSBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZChpbnQgZUlucHV0TW9kZSwg
aW50IGVMaW5lSW5wdXRNb2RlLCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4
LCBzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVz
ZXJWYWx1ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfU2hvd0tleWJvYXJkIFNob3dLZXlib2FyZDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TaG93S2V5Ym9hcmRGb3JPdmVy
bGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgaW50IGVJbnB1dE1vZGUsIGludCBlTGluZUlucHV0
TW9kZSwgc3RyaW5nIHBjaERlc2NyaXB0aW9uLCB1aW50IHVuQ2hhck1heCwgc3RyaW5nIHBjaEV4
aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVsb25nIHVVc2VyVmFsdWUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1Nob3dLZXlib2FyZEZvck92ZXJsYXkgU2hvd0tleWJvYXJkRm9yT3ZlcmxheTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0S2V5Ym9hcmRUZXh0KFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGV4dCwgdWludCBjY2hUZXh0KTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRLZXli
b2FyZFRleHQgR2V0S2V5Ym9hcmRUZXh0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9IaWRlS2V5Ym9hcmQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IaWRlS2V5Ym9hcmQgSGlkZUtleWJvYXJk
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRLZXlib2FyZFRyYW5z
Zm9ybUFic29sdXRlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgcmVm
IEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRLZXlib2FyZFRyYW5zZm9ybUFi
c29sdXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEhtZFJlY3QyX3QgYXZv
aWRSZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9TZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSBTZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9TZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgcE1hc2tQcmlt
aXRpdmVzLCB1aW50IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQgdW5QcmltaXRpdmVTaXplKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayBTZXRPdmVybGF5SW50ZXJzZWN0aW9u
TWFzazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9H
ZXRPdmVybGF5RmxhZ3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwRmxhZ3MpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldE92ZXJsYXlGbGFncyBHZXRPdmVybGF5RmxhZ3M7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBfU2hvd01lc3NhZ2VPdmVy
bGF5KHN0cmluZyBwY2hUZXh0LCBzdHJpbmcgcGNoQ2FwdGlvbiwgc3RyaW5nIHBjaEJ1dHRvbjBU
ZXh0LCBzdHJpbmcgcGNoQnV0dG9uMVRleHQsIHN0cmluZyBwY2hCdXR0b24yVGV4dCwgc3RyaW5n
IHBjaEJ1dHRvbjNUZXh0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93TWVzc2FnZU92ZXJsYXkgU2hvd01lc3NhZ2VP
dmVybGF5OworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1
YmxpYyBzdHJ1Y3QgSVZSUmVuZGVyTW9kZWxzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkUmVuZGVyTW9kZWxfQXN5bmMoc3RyaW5nIHBj
aFJlbmRlck1vZGVsTmFtZSwgcmVmIEludFB0ciBwcFJlbmRlck1vZGVsKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Mb2Fk
UmVuZGVyTW9kZWxfQXN5bmMgTG9hZFJlbmRlck1vZGVsX0FzeW5jOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJNb2Rl
bCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfRnJlZVJlbmRlck1vZGVsIEZyZWVSZW5kZXJNb2RlbDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSUmVuZGVyTW9kZWxFcnJvciBfTG9hZFRleHR1cmVfQXN5
bmMoaW50IHRleHR1cmVJZCwgcmVmIEludFB0ciBwcFRleHR1cmUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvYWRUZXh0
dXJlX0FzeW5jIExvYWRUZXh0dXJlX0FzeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9GcmVlVGV4dHVyZShJbnRQdHIgcFRleHR1cmUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZyZWVUZXh0
dXJlIEZyZWVUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5k
ZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0
ciBwRDNEMTFEZXZpY2UsIHJlZiBJbnRQdHIgcHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9h
ZFRleHR1cmVEM0QxMV9Bc3luYyBMb2FkVGV4dHVyZUQzRDExX0FzeW5jOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkSW50b1RleHR1cmVE
M0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLCBJbnRQdHIgcERzdFRleHR1cmUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xv
YWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GcmVlVGV4dHVyZUQzRDExKEludFB0
ciBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZyZWVUZXh0dXJlRDNEMTEgRnJlZVRleHR1cmVE
M0QxMTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVyTW9k
ZWxOYW1lKHVpbnQgdW5SZW5kZXJNb2RlbEluZGV4LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVy
IHBjaFJlbmRlck1vZGVsTmFtZSwgdWludCB1blJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0UmVuZGVyTW9kZWxOYW1lIEdldFJlbmRlck1vZGVsTmFtZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVyTW9kZWxDb3VudCgpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJl
bmRlck1vZGVsQ291bnQgR2V0UmVuZGVyTW9kZWxDb3VudDsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50Q291bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVs
TmFtZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50Q291bnQgR2V0Q29tcG9uZW50Q291bnQ7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldENvbXBvbmVudE5hbWUoc3RyaW5n
IHBjaFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBvbmVudEluZGV4LCBTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudE5hbWUsIHVpbnQgdW5Db21wb25lbnROYW1lTGVuKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRDb21wb25lbnROYW1lIEdldENvbXBvbmVudE5hbWU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRDb21wb25lbnRCdXR0b25NYXNrKHN0cmluZyBw
Y2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRD
b21wb25lbnRCdXR0b25NYXNrIEdldENvbXBvbmVudEJ1dHRvbk1hc2s7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJp
bmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSwgU3lzdGVtLlRl
eHQuU3RyaW5nQnVpbGRlciBwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQgdW5Db21w
b25lbnRSZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbXBvbmVudFJlbmRlck1vZGVs
TmFtZSBHZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldENvbXBvbmVudFN0YXRlKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5h
bWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCByZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29u
dHJvbGxlclN0YXRlLCByZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3Rh
dGUsIHJlZiBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90IHBDb21wb25lbnRTdGF0ZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0Q29tcG9uZW50U3RhdGUgR2V0Q29tcG9uZW50U3RhdGU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbmRlck1vZGVsSGFzQ29tcG9uZW50KHN0cmluZyBw
Y2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW5k
ZXJNb2RlbEhhc0NvbXBvbmVudCBSZW5kZXJNb2RlbEhhc0NvbXBvbmVudDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwoc3Ry
aW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUaHVt
Ym5haWxVUkwsIHVpbnQgdW5UaHVtYm5haWxVUkxMZW4sIHJlZiBFVlJSZW5kZXJNb2RlbEVycm9y
IHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMIEdldFJlbmRlck1v
ZGVsVGh1bWJuYWlsVVJMOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9H
ZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0
ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaE9yaWdpbmFsUGF0aCwgdWludCB1bk9yaWdpbmFsUGF0
aExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVy
TW9kZWxPcmlnaW5hbFBhdGggR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGg7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9t
RW51bShFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJNb2RlbEVy
cm9yTmFtZUZyb21FbnVtIEdldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW07CisKK30KKwor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJO
b3RpZmljYXRpb25zCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJOb3RpZmlj
YXRpb25FcnJvciBfQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWxv
bmcgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgc3RyaW5nIHBjaFRleHQs
IEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCByZWYgTm90aWZpY2F0aW9uQml0bWFwX3QgcElt
YWdlLCByZWYgdWludCBwTm90aWZpY2F0aW9uSWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NyZWF0ZU5vdGlmaWNhdGlv
biBDcmVhdGVOb3RpZmljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk5vdGlmaWNhdGlvbkVycm9yIF9SZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25J
ZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfUmVtb3ZlTm90aWZpY2F0aW9uIFJlbW92ZU5vdGlmaWNhdGlvbjsKKworfQor
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElW
UlNldHRpbmdzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldFNl
dHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0gR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51
bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfU3luYyhib29sIGJGb3Jj
ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU3luYyBTeW5jOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRCb29sKHN0cmluZyBwY2hTZWN0
aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCByZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TZXRCb29sIFNldEJvb2w7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcg
cGNoU2V0dGluZ3NLZXksIGludCBuVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3Ip
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1NldEludDMyIFNldEludDMyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9TZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdz
S2V5LCBmbG9hdCBmbFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9TZXRGbG9hdCBTZXRGbG9hdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfU2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHN0
cmluZyBwY2hWYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
U3RyaW5nIFNldFN0cmluZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBf
R2V0Qm9vbChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCb29sIEdldEJvb2w7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGludCBfR2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24s
IHN0cmluZyBwY2hTZXR0aW5nc0tleSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0SW50MzIgR2V0SW50MzI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGZsb2F0IF9HZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5
LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGbG9hdCBHZXRGbG9h
dDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0U3RyaW5nKHN0cmlu
ZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIFN5c3RlbS5UZXh0LlN0cmluZ0J1
aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5WYWx1ZUxlbiwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVF
cnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nIEdldFN0cmluZzsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfUmVtb3ZlU2VjdGlvbihzdHJpbmcgcGNoU2VjdGlvbiwgcmVmIEVW
UlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3ZlU2VjdGlvbiBSZW1vdmVTZWN0
aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZW1vdmVLZXlJblNl
Y3Rpb24oc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgcmVmIEVWUlNl
dHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3ZlS2V5SW5TZWN0aW9uIFJlbW92ZUtl
eUluU2VjdGlvbjsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
CitwdWJsaWMgc3RydWN0IElWUlNjcmVlbnNob3RzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1JlcXVlc3RTY3JlZW5zaG90KHJlZiB1aW50IHBP
dXRTY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNoUHJl
dmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoVlJGaWxlbmFtZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVxdWVzdFNjcmVl
bnNob3QgUmVxdWVzdFNjcmVlbnNob3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUlNjcmVlbnNob3RFcnJvciBfSG9va1NjcmVlbnNob3QoW0luLCBPdXRdIEVWUlNjcmVlbnNo
b3RUeXBlW10gcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hvb2tTY3Jl
ZW5zaG90IEhvb2tTY3JlZW5zaG90OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJTY3JlZW5zaG90VHlwZSBfR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSh1aW50IHNjcmVlbnNo
b3RIYW5kbGUsIHJlZiBFVlJTY3JlZW5zaG90RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRTY3Jl
ZW5zaG90UHJvcGVydHlUeXBlIEdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGU7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZp
bGVuYW1lVHlwZSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hGaWxlbmFtZSwgdWludCBj
Y2hGaWxlbmFtZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNj
cmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lIEdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1VwZGF0
ZVNjcmVlbnNob3RQcm9ncmVzcyh1aW50IHNjcmVlbnNob3RIYW5kbGUsIGZsb2F0IGZsUHJvZ3Jl
c3MpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1VwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyBVcGRhdGVTY3JlZW5zaG90UHJv
Z3Jlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJv
ciBfVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsIHN0
cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9U
YWtlU3RlcmVvU2NyZWVuc2hvdCBUYWtlU3RlcmVvU2NyZWVuc2hvdDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9yIF9TdWJtaXRTY3JlZW5zaG90KHVp
bnQgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgc3RyaW5nIHBjaFNv
dXJjZVByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5hbWUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1N1Ym1pdFNjcmVlbnNob3QgU3VibWl0U2NyZWVuc2hvdDsKKworfQorCitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUlJlc291cmNlcworewor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfTG9hZFNoYXJlZFJlc291cmNlKHN0
cmluZyBwY2hSZXNvdXJjZU5hbWUsIHN0cmluZyBwY2hCdWZmZXIsIHVpbnQgdW5CdWZmZXJMZW4p
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0xvYWRTaGFyZWRSZXNvdXJjZSBMb2FkU2hhcmVkUmVzb3VyY2U7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFJlc291cmNlRnVsbFBhdGgoc3RyaW5n
IHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgc3RyaW5n
IHBjaFBhdGhCdWZmZXIsIHVpbnQgdW5CdWZmZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlc291cmNlRnVs
bFBhdGggR2V0UmVzb3VyY2VGdWxsUGF0aDsKKworfQorCisKK3B1YmxpYyBjbGFzcyBDVlJTeXN0
ZW0KK3sKKyAgICAgICBJVlJTeXN0ZW0gRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTeXN0
ZW0oSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0g
KElWUlN5c3RlbSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJT
eXN0ZW0pKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0UmVjb21tZW5kZWRSZW5k
ZXJUYXJnZXRTaXplKHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCisgICAgICAg
eworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQgPSAw
OworICAgICAgICAgICAgICBGblRhYmxlLkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShy
ZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0
cml4NDRfdCBHZXRQcm9qZWN0aW9uTWF0cml4KEVWUkV5ZSBlRXllLGZsb2F0IGZOZWFyWixmbG9h
dCBmRmFyWikKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDQ0X3QgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRQcm9qZWN0aW9uTWF0cml4KGVFeWUsZk5lYXJaLGZGYXJaKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0UHJv
amVjdGlvblJhdyhFVlJFeWUgZUV5ZSxyZWYgZmxvYXQgcGZMZWZ0LHJlZiBmbG9hdCBwZlJpZ2h0
LHJlZiBmbG9hdCBwZlRvcCxyZWYgZmxvYXQgcGZCb3R0b20pCisgICAgICAgeworICAgICAgICAg
ICAgICBwZkxlZnQgPSAwOworICAgICAgICAgICAgICBwZlJpZ2h0ID0gMDsKKyAgICAgICAgICAg
ICAgcGZUb3AgPSAwOworICAgICAgICAgICAgICBwZkJvdHRvbSA9IDA7CisgICAgICAgICAgICAg
IEZuVGFibGUuR2V0UHJvamVjdGlvblJhdyhlRXllLHJlZiBwZkxlZnQscmVmIHBmUmlnaHQscmVm
IHBmVG9wLHJlZiBwZkJvdHRvbSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENvbXB1
dGVEaXN0b3J0aW9uKEVWUkV5ZSBlRXllLGZsb2F0IGZVLGZsb2F0IGZWLHJlZiBEaXN0b3J0aW9u
Q29vcmRpbmF0ZXNfdCBwRGlzdG9ydGlvbkNvb3JkaW5hdGVzKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1dGVEaXN0b3J0aW9uKGVFeWUsZlUsZlYs
cmVmIHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRFeWVUb0hlYWRUcmFu
c2Zvcm0oRVZSRXllIGVFeWUpCisgICAgICAgeworICAgICAgICAgICAgICBIbWRNYXRyaXgzNF90
IHJlc3VsdCA9IEZuVGFibGUuR2V0RXllVG9IZWFkVHJhbnNmb3JtKGVFeWUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRUaW1l
U2luY2VMYXN0VnN5bmMocmVmIGZsb2F0IHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLHJlZiB1bG9u
ZyBwdWxGcmFtZUNvdW50ZXIpCisgICAgICAgeworICAgICAgICAgICAgICBwZlNlY29uZHNTaW5j
ZUxhc3RWc3luYyA9IDA7CisgICAgICAgICAgICAgIHB1bEZyYW1lQ291bnRlciA9IDA7CisgICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRUaW1lU2luY2VMYXN0VnN5bmMocmVm
IHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLHJlZiBwdWxGcmFtZUNvdW50ZXIpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgaW50IEdldEQzRDlB
ZGFwdGVySW5kZXgoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBu
QWRhcHRlckluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcG5BZGFwdGVySW5kZXggPSAw
OworICAgICAgICAgICAgICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJ
bmRleCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzRGlzcGxheU9uRGVza3RvcCgp
CisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNEaXNwbGF5
T25EZXNrdG9wKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVz
a3RvcCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5TZXRE
aXNwbGF5VmlzaWJpbGl0eShiSXNWaXNpYmxlT25EZXNrdG9wKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0RGV2aWNlVG9BYnNv
bHV0ZVRyYWNraW5nUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLGZsb2F0IGZQ
cmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdyxUcmFja2VkRGV2aWNlUG9zZV90IFtdIHBU
cmFja2VkRGV2aWNlUG9zZUFycmF5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5H
ZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKGVPcmlnaW4sZlByZWRpY3RlZFNlY29uZHNU
b1Bob3RvbnNGcm9tTm93LHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCh1aW50KSBwVHJhY2tlZERl
dmljZVBvc2VBcnJheS5MZW5ndGgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZXNl
dFNlYXRlZFplcm9Qb3NlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVzZXRT
ZWF0ZWRaZXJvUG9zZSgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBH
ZXRTZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCisgICAgICAg
eworICAgICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0U2VhdGVk
WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhtZE1hdHJpeDM0X3QgR2V0
UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBGblRhYmxlLkdldFJhd1plcm9Qb3Nl
VG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFNvcnRlZFRyYWNrZWREZXZp
Y2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xhc3Ms
dWludCBbXSBwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSx1aW50IHVuUmVsYXRpdmVUb1RyYWNr
ZWREZXZpY2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MoZVRyYWNrZWREZXZpY2VD
bGFzcyxwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSwodWludCkgcHVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXkuTGVuZ3RoLHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFRGV2aWNlQWN0
aXZpdHlMZXZlbCBHZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCh1aW50IHVuRGV2aWNlSWQp
CisgICAgICAgeworICAgICAgICAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbCByZXN1bHQgPSBG
blRhYmxlLkdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVuRGV2aWNlSWQpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBBcHBs
eVRyYW5zZm9ybShyZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9zZSxyZWYgVHJhY2tl
ZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UscmVmIEhtZE1hdHJpeDM0X3QgcFRyYW5z
Zm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQXBwbHlUcmFuc2Zvcm0ocmVm
IHBPdXRwdXRQb3NlLHJlZiBwVHJhY2tlZERldmljZVBvc2UscmVmIHBUcmFuc2Zvcm0pOworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9s
bGVyUm9sZShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlSW5kZXhG
b3JDb250cm9sbGVyUm9sZSh1bkRldmljZVR5cGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVRyYWNrZWRDb250cm9sbGVyUm9sZSBHZXRD
b250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50IHVuRGV2aWNlSW5kZXgpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHJlc3VsdCA9IEZu
VGFibGUuR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRl
eCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVHJhY2tlZERldmljZUNsYXNzIEdldFRyYWNrZWREZXZpY2VDbGFzcyh1aW50IHVuRGV2aWNl
SW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tlZERldmljZUNsYXNzIHJlc3Vs
dCA9IEZuVGFibGUuR2V0VHJhY2tlZERldmljZUNsYXNzKHVuRGV2aWNlSW5kZXgpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc1Ry
YWNrZWREZXZpY2VDb25uZWN0ZWQodWludCB1bkRldmljZUluZGV4KQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1
bkRldmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIGJvb2wgR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2
aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBw
RXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgZmxvYXQgR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUlu
ZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
IHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IHJlc3VsdCA9IEZuVGFibGUu
R2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJy
b3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgaW50IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCxF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJbnQz
MlRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJvcik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9u
ZyBHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFibGUuR2V0VWludDY0
VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhtZE1h
dHJpeDM0X3QgR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUlu
ZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
IHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHBy
b3AscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB1aW50IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVUcmFja2VkUHJvcGVydHlF
cnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxwY2hW
YWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0UHJvcEVycm9yTmFtZUZyb21F
bnVtKEVUcmFja2VkUHJvcGVydHlFcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAg
IEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldFByb3BFcnJvck5hbWVGcm9tRW51bShlcnJvcik7
CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBQb2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3Qg
cEV2ZW50LHVpbnQgdW5jYlZSRXZlbnQpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuUG9sbE5leHRFdmVudChyZWYgcEV2ZW50LHVuY2JWUkV2ZW50KTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wg
UG9sbE5leHRFdmVudFdpdGhQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4scmVm
IFZSRXZlbnRfdCBwRXZlbnQsdWludCB1bmNiVlJFdmVudCxyZWYgVHJhY2tlZERldmljZVBvc2Vf
dCBwVHJhY2tlZERldmljZVBvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuUG9sbE5leHRFdmVudFdpdGhQb3NlKGVPcmlnaW4scmVmIHBFdmVudCx1bmNi
VlJFdmVudCxyZWYgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRFdmVudFR5cGVOYW1lRnJv
bUVudW0oRVZSRXZlbnRUeXBlIGVUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRy
IHJlc3VsdCA9IEZuVGFibGUuR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKGVUeXBlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBIaWRkZW5BcmVhTWVzaF90IEdldEhpZGRlbkFyZWFNZXNoKEVWUkV5
ZSBlRXllLEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEhpZGRlbkFyZWFNZXNoX3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRIaWRkZW5BcmVhTWVzaChlRXll
LHR5cGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKy8vIFRoaXMg
aXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHdvcmthcm91bmQgdGhlIGZhY3QgdGhhdCBWUkNvbnRyb2xs
ZXJTdGF0ZV90IHdhcworLy8gb3JpZ2luYWxseSBtaXMtY29tcGlsZWQgd2l0aCB0aGUgd3Jvbmcg
cGFja2luZyBmb3IgTGludXggYW5kIE9TWC4KKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVBhY2tlZCh1aW50IHVuQ29udHJvbGxlckRldmljZUlu
ZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBwQ29udHJvbGxlclN0YXRlLHVpbnQg
dW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
RXhwbGljaXQpXQorICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3RhdGVVbmlvbgorICAgICAg
IHsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMg
SVZSU3lzdGVtLl9HZXRDb250cm9sbGVyU3RhdGUgcEdldENvbnRyb2xsZXJTdGF0ZTsKKyAgICAg
ICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRy
b2xsZXJTdGF0ZVBhY2tlZCBwR2V0Q29udHJvbGxlclN0YXRlUGFja2VkOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBHZXRDb250cm9sbGVyU3RhdGUodWludCB1bkNvbnRyb2xsZXJEZXZp
Y2VJbmRleCxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHVpbnQgdW5D
b250cm9sbGVyU3RhdGVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKChTeXN0ZW0u
RW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELk1hY09T
WCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3lzdGVtLkVudmlyb25tZW50Lk9T
VmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5Vbml4KSkKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29udHJvbGxlclN0YXRlVW5pb24gdTsKKyAg
ICAgICAgICAgICAgICAgICAgIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHN0YXRlX3BhY2tl
ZCA9IG5ldyBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCgpOworICAgICAgICAgICAgICAgICAg
ICAgdS5wR2V0Q29udHJvbGxlclN0YXRlUGFja2VkID0gbnVsbDsKKyAgICAgICAgICAgICAgICAg
ICAgIHUucEdldENvbnRyb2xsZXJTdGF0ZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlOwor
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWRfcmVzdWx0ID0gdS5wR2V0Q29udHJvbGxl
clN0YXRlUGFja2VkKHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBzdGF0ZV9wYWNrZWQsKHVp
bnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwuU2l6ZU9mKHR5cGVvZihW
UkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpKTsKKworICAgICAgICAgICAgICAgICAgICAgc3Rh
dGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7CisgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlKHVuQ29udHJvbGxlckRl
dmljZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhpcyBpcyBhIHRlcnJp
YmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxlclN0YXRlX3Qg
d2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBwYWNraW5nIGZv
ciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0
Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9y
aWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90
X1BhY2tlZCBwQ29udHJvbGxlclN0YXRlLHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXplLHJlZiBU
cmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLkV4cGxpY2l0KV0KKyAgICAgICBzdHJ1Y3QgR2V0Q29udHJvbGxlclN0
YXRlV2l0aFBvc2VVbmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XQorICAgICAgICAgICAgICBwdWJsaWMgSVZSU3lzdGVtLl9HZXRDb250cm9sbGVyU3RhdGVXaXRo
UG9zZSBwR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7CisgICAgICAgICAgICAgIFtGaWVsZE9m
ZnNldCgwKV0KKyAgICAgICAgICAgICAgcHVibGljIF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9z
ZVBhY2tlZCBwR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVPcmlnaW4sdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCxyZWYgVlJDb250
cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXpl
LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGlmICgoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9
PSBTeXN0ZW0uUGxhdGZvcm1JRC5NYWNPU1gpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRm
b3JtSUQuVW5peCkpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIEdldENv
bnRyb2xsZXJTdGF0ZVdpdGhQb3NlVW5pb24gdTsKKyAgICAgICAgICAgICAgICAgICAgIFZSQ29u
dHJvbGxlclN0YXRlX3RfUGFja2VkIHN0YXRlX3BhY2tlZCA9IG5ldyBWUkNvbnRyb2xsZXJTdGF0
ZV90X1BhY2tlZCgpOworICAgICAgICAgICAgICAgICAgICAgdS5wR2V0Q29udHJvbGxlclN0YXRl
V2l0aFBvc2VQYWNrZWQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgdS5wR2V0Q29udHJv
bGxlclN0YXRlV2l0aFBvc2UgPSBGblRhYmxlLkdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlOwor
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWRfcmVzdWx0ID0gdS5wR2V0Q29udHJvbGxl
clN0YXRlV2l0aFBvc2VQYWNrZWQoZU9yaWdpbix1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCxyZWYg
c3RhdGVfcGFja2VkLCh1aW50KVN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFs
LlNpemVPZih0eXBlb2YoVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQpKSxyZWYgcFRyYWNrZWRE
ZXZpY2VQb3NlKTsKKworICAgICAgICAgICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhy
ZWYgcENvbnRyb2xsZXJTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2Vk
X3Jlc3VsdDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoZU9yaWdpbix1bkNvbnRyb2xsZXJEZXZp
Y2VJbmRleCxyZWYgcENvbnRyb2xsZXJTdGF0ZSx1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVmIHBU
cmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIFRyaWdnZXJIYXB0aWNQdWxzZSh1aW50IHVuQ29udHJvbGxl
ckRldmljZUluZGV4LHVpbnQgdW5BeGlzSWQsY2hhciB1c0R1cmF0aW9uTWljcm9TZWMpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLlRyaWdnZXJIYXB0aWNQdWxzZSh1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCx1bkF4aXNJZCx1c0R1cmF0aW9uTWljcm9TZWMpOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgc3RyaW5nIEdldEJ1dHRvbklkTmFtZUZyb21FbnVtKEVWUkJ1dHRvbklkIGVC
dXR0b25JZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxl
LkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKGVCdXR0b25JZCk7CisgICAgICAgICAgICAgIHJldHVy
biBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgc3RyaW5nIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bShFVlJDb250cm9sbGVy
QXhpc1R5cGUgZUF4aXNUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3Vs
dCA9IEZuVGFibGUuR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKGVBeGlzVHlwZSk7
CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYXB0dXJlSW5wdXRGb2N1cygpCisgICAgICAg
eworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ2FwdHVyZUlucHV0Rm9jdXMo
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgUmVsZWFzZUlucHV0Rm9jdXMoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5SZWxlYXNlSW5wdXRGb2N1cygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc0lu
cHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJv
Y2VzcygpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdWludCBEcml2ZXJEZWJ1Z1JlcXVlc3QodWludCB1bkRldmljZUluZGV4LHN0cmluZyBw
Y2hSZXF1ZXN0LHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlcix1aW50IHVuUmVzcG9uc2VCdWZmZXJT
aXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkRyaXZl
ckRlYnVnUmVxdWVzdCh1bkRldmljZUluZGV4LHBjaFJlcXVlc3QscGNoUmVzcG9uc2VCdWZmZXIs
dW5SZXNwb25zZUJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZSRmlybXdhcmVFcnJvciBQZXJmb3JtRmlybXdhcmVVcGRh
dGUodWludCB1bkRldmljZUluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSRmlybXdh
cmVFcnJvciByZXN1bHQgPSBGblRhYmxlLlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSh1bkRldmljZUlu
ZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5BY2tub3dsZWRnZVF1aXRfRXhpdGluZygpOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCgpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCk7CisgICAgICAgfQor
fQorCisKK3B1YmxpYyBjbGFzcyBDVlJFeHRlbmRlZERpc3BsYXkKK3sKKyAgICAgICBJVlJFeHRl
bmRlZERpc3BsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJFeHRlbmRlZERpc3BsYXko
SW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElW
UkV4dGVuZGVkRGlzcGxheSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVv
ZihJVlJFeHRlbmRlZERpc3BsYXkpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0
V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLHJlZiBpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVm
IHVpbnQgcG5IZWlnaHQpCisgICAgICAgeworICAgICAgICAgICAgICBwblggPSAwOworICAgICAg
ICAgICAgICBwblkgPSAwOworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAg
ICAgcG5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldFdpbmRvd0JvdW5kcyhy
ZWYgcG5YLHJlZiBwblkscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoRVZSRXllIGVFeWUscmVmIHVpbnQg
cG5YLHJlZiB1aW50IHBuWSxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcG5YID0gMDsKKyAgICAgICAgICAgICAgcG5ZID0gMDsKKyAg
ICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAgICAgICAgIHBuSGVpZ2h0ID0gMDsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5HZXRFeWVPdXRwdXRWaWV3cG9ydChlRXllLHJlZiBwblgscmVm
IHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBHZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LHJlZiBpbnQgcG5B
ZGFwdGVyT3V0cHV0SW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRl
eCA9IDA7CisgICAgICAgICAgICAgIHBuQWRhcHRlck91dHB1dEluZGV4ID0gMDsKKyAgICAgICAg
ICAgICAgRm5UYWJsZS5HZXREWEdJT3V0cHV0SW5mbyhyZWYgcG5BZGFwdGVySW5kZXgscmVmIHBu
QWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUlRy
YWNrZWRDYW1lcmEKK3sKKyAgICAgICBJVlJUcmFja2VkQ2FtZXJhIEZuVGFibGU7CisgICAgICAg
aW50ZXJuYWwgQ1ZSVHJhY2tlZENhbWVyYShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSVHJhY2tlZENhbWVyYSlNYXJzaGFsLlB0clRvU3Ry
dWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJUcmFja2VkQ2FtZXJhKSk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJhY2tl
ZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0
ciByZXN1bHQgPSBGblRhYmxlLkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKGVDYW1lcmFFcnJv
cik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEhhc0NhbWVy
YSh1aW50IG5EZXZpY2VJbmRleCxyZWYgYm9vbCBwSGFzQ2FtZXJhKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcEhhc0NhbWVyYSA9IGZhbHNlOworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5IYXNDYW1lcmEobkRldmljZUluZGV4LHJlZiBwSGFz
Q2FtZXJhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFGcmFtZVNpemUodWludCBuRGV2
aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiB1aW50IHBu
V2lkdGgscmVmIHVpbnQgcG5IZWlnaHQscmVmIHVpbnQgcG5GcmFtZUJ1ZmZlclNpemUpCisgICAg
ICAgeworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQg
PSAwOworICAgICAgICAgICAgICBwbkZyYW1lQnVmZmVyU2l6ZSA9IDA7CisgICAgICAgICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldENhbWVyYUZyYW1lU2l6
ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQscmVmIHBu
RnJhbWVCdWZmZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFJbnRyaW5zaWNz
KHVpbnQgbkRldmljZUluZGV4LEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxy
ZWYgSG1kVmVjdG9yMl90IHBGb2NhbExlbmd0aCxyZWYgSG1kVmVjdG9yMl90IHBDZW50ZXIpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRDYW1lcmFJbnRyaW5zaWNzKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwRm9j
YWxMZW5ndGgscmVmIHBDZW50ZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYVByb2pl
Y3Rpb24odWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLGZsb2F0IGZsWk5lYXIsZmxvYXQgZmxaRmFyLHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0
aW9uKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuR2V0Q2FtZXJhUHJvamVjdGlvbihuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxm
bFpOZWFyLGZsWkZhcixyZWYgcFByb2plY3Rpb24pOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEFjcXVp
cmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWludCBuRGV2aWNlSW5kZXgscmVmIHVsb25nIHBIYW5k
bGUpCisgICAgICAgeworICAgICAgICAgICAgICBwSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQWNxdWlyZVZpZGVvU3RyZWFt
aW5nU2VydmljZShuRGV2aWNlSW5kZXgscmVmIHBIYW5kbGUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9y
IFJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWxvbmcgaFRyYWNrZWRDYW1lcmEpCisgICAg
ICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKGhUcmFja2VkQ2FtZXJhKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbUZyYW1lQnVmZmVyKHVsb25nIGhUcmFja2VkQ2FtZXJh
LEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxJbnRQdHIgcEZyYW1lQnVmZmVy
LHVpbnQgbkZyYW1lQnVmZmVyU2l6ZSxyZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90
IHBGcmFtZUhlYWRlcix1aW50IG5GcmFtZUhlYWRlclNpemUpCisgICAgICAgeworICAgICAgICAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRWaWRlb1N0cmVh
bUZyYW1lQnVmZmVyKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscEZyYW1lQnVmZmVyLG5GcmFt
ZUJ1ZmZlclNpemUscmVmIHBGcmFtZUhlYWRlcixuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgVlJUZXh0dXJlQm91bmRzX3Qg
cFRleHR1cmVCb3VuZHMscmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9
IDA7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBU
ZXh0dXJlQm91bmRzLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJy
b3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEodWxvbmcgaFRyYWNrZWRDYW1lcmEsRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291
cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYgQ2FtZXJhVmlkZW9T
dHJlYW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlcix1aW50IG5GcmFtZUhlYWRlclNpemUpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMShoVHJhY2tlZENhbWVyYSxlRnJhbWVUeXBl
LHBEM0QxMURldmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcscmVm
IHBGcmFtZUhlYWRlcixuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRW
aWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcGdsVGV4dHVyZUlkLHJlZiBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHBnbFRleHR1cmVJZCA9IDA7CisgICAgICAgICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFtVGV4
dHVyZUdMKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscmVmIHBnbFRleHR1cmVJZCxyZWYgcEZy
YW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VW
aWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSx1aW50IGdsVGV4dHVyZUlk
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMKGhUcmFja2VkQ2FtZXJhLGdsVGV4
dHVyZUlkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cit9CisKKwor
cHVibGljIGNsYXNzIENWUkFwcGxpY2F0aW9ucworeworICAgICAgIElWUkFwcGxpY2F0aW9ucyBG
blRhYmxlOworICAgICAgIGludGVybmFsIENWUkFwcGxpY2F0aW9ucyhJbnRQdHIgcEludGVyZmFj
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQXBwbGljYXRpb25zKU1h
cnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkFwcGxpY2F0aW9ucykp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBBZGRBcHBsaWNh
dGlvbk1hbmlmZXN0KHN0cmluZyBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgsYm9vbCBi
VGVtcG9yYXJ5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QocGNoQXBwbGljYXRpb25NYW5p
ZmVzdEZ1bGxQYXRoLGJUZW1wb3JhcnkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBSZW1vdmVBcHBsaWNh
dGlvbk1hbmlmZXN0KHN0cmluZyBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgpCisgICAg
ICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUu
UmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
Ym9vbCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgewor
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNBcHBsaWNhdGlvbkluc3RhbGxl
ZChwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvbkNvdW50KCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbkNvdW50KCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBs
aWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCh1aW50IHVuQXBwbGljYXRpb25J
bmRleCxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEFwcEtleUJ1ZmZlcix1aW50IHVuQXBw
S2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCh1bkFwcGxpY2F0aW9u
SW5kZXgscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCh1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBw
Y2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1ZmZlckxlbikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlv
bktleUJ5UHJvY2Vzc0lkKHVuUHJvY2Vzc0lkLHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtleUJ1ZmZl
ckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBL
ZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9
IEZuVGFibGUuTGF1bmNoQXBwbGljYXRpb24ocGNoQXBwS2V5KTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
TGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbihzdHJpbmcgcGNoVGVtcGxhdGVBcHBLZXksc3RyaW5n
IHBjaE5ld0FwcEtleSxBcHBPdmVycmlkZUtleXNfdCBbXSBwS2V5cykKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hUZW1w
bGF0ZUFwcGxpY2F0aW9uKHBjaFRlbXBsYXRlQXBwS2V5LHBjaE5ld0FwcEtleSxwS2V5cywodWlu
dCkgcEtleXMuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcmdzKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEFw
cGxpY2F0aW9uRnJvbU1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFyZ3MpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25F
cnJvciBMYXVuY2hEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNo
RGFzaGJvYXJkT3ZlcmxheShwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChz
dHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHBjaEFwcEtleSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVy
cm9yIElkZW50aWZ5QXBwbGljYXRpb24odWludCB1blByb2Nlc3NJZCxzdHJpbmcgcGNoQXBwS2V5
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBG
blRhYmxlLklkZW50aWZ5QXBwbGljYXRpb24odW5Qcm9jZXNzSWQscGNoQXBwS2V5KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
QXBwbGljYXRpb25Qcm9jZXNzSWQoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb2Nlc3NJZChwY2hB
cHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgc3RyaW5nIEdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0
aW9uRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bShlcnJvcik7CisgICAgICAg
ICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBw
Y2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksU3lzdGVtLlRleHQuU3Ry
aW5nQnVpbGRlciBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLHVpbnQgdW5Qcm9wZXJ0eVZhbHVlQnVm
ZmVyTGVuLHJlZiBFVlJBcHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAg
ICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmlu
ZyhwY2hBcHBLZXksZVByb3BlcnR5LHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdW5Qcm9wZXJ0eVZh
bHVlQnVmZmVyTGVuLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wo
c3RyaW5nIHBjaEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxyZWYgRVZS
QXBwbGljYXRpb25FcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvcGVydHlCb29sKHBjaEFwcEtleSxlUHJv
cGVydHkscmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdWxvbmcgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChzdHJp
bmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJBcHBs
aWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1bG9uZyByZXN1
bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQocGNoQXBwS2V5LGVQcm9w
ZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFNldEFwcGxpY2F0aW9uQXV0b0xh
dW5jaChzdHJpbmcgcGNoQXBwS2V5LGJvb2wgYkF1dG9MYXVuY2gpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0QXBwbGljYXRp
b25BdXRvTGF1bmNoKHBjaEFwcEtleSxiQXV0b0xhdW5jaCk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChwY2hBcHBLZXkpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBw
bGljYXRpb25FcnJvciBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNo
QXBwS2V5LHN0cmluZyBwY2hNaW1lVHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFw
cGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JN
aW1lVHlwZShwY2hBcHBLZXkscGNoTWltZVR5cGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXREZWZhdWx0QXBwbGljYXRpb25G
b3JNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFwcEtleUJ1ZmZlcix1aW50
IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQg
PSBGblRhYmxlLkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHBjaE1pbWVUeXBlLHBj
aEFwcEtleUJ1ZmZlcix1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldEFwcGxpY2F0aW9uU3VwcG9y
dGVkTWltZVR5cGVzKHN0cmluZyBwY2hBcHBLZXksc3RyaW5nIHBjaE1pbWVUeXBlc0J1ZmZlcix1
aW50IHVuTWltZVR5cGVzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uU3VwcG9ydGVkTWltZVR5cGVzKHBjaEFwcEtleSxw
Y2hNaW1lVHlwZXNCdWZmZXIsdW5NaW1lVHlwZXNCdWZmZXIpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvbnNU
aGF0U3VwcG9ydE1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5c1Ro
YXRTdXBwb3J0QnVmZmVyLHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpCisgICAgICAg
eworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25zVGhh
dFN1cHBvcnRNaW1lVHlwZShwY2hNaW1lVHlwZSxwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIs
dW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3Vt
ZW50cyh1aW50IHVuSGFuZGxlLHN0cmluZyBwY2hBcmdzLHVpbnQgdW5BcmdzKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uTGF1bmNo
QXJndW1lbnRzKHVuSGFuZGxlLHBjaEFyZ3MsdW5BcmdzKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0
U3RhcnRpbmdBcHBsaWNhdGlvbihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBLZXlC
dWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0U3RhcnRpbmdBcHBsaWNhdGlvbihwY2hBcHBLZXlCdWZmZXIsdW5B
cHBLZXlCdWZmZXJMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNpdGlv
blN0YXRlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXRlIHJlc3VsdCA9IEZuVGFibGUuR2V0VHJhbnNpdGlvblN0YXRlKCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlv
bkVycm9yIFBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrKHN0cmluZyBwY2hBcHBLZXkp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZu
VGFibGUuUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2socGNoQXBwS2V5KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBH
ZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRpb25U
cmFuc2l0aW9uU3RhdGUgc3RhdGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVz
dWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0o
c3RhdGUpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVz
dWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNRdWl0VXNlclByb21wdFJlcXVl
c3RlZCgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNR
dWl0VXNlclByb21wdFJlcXVlc3RlZCgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hJbnRlcm5h
bFByb2Nlc3Moc3RyaW5nIHBjaEJpbmFyeVBhdGgsc3RyaW5nIHBjaEFyZ3VtZW50cyxzdHJpbmcg
cGNoV29ya2luZ0RpcmVjdG9yeSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hJbnRlcm5hbFByb2Nlc3MocGNoQmluYXJ5
UGF0aCxwY2hBcmd1bWVudHMscGNoV29ya2luZ0RpcmVjdG9yeSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEN1cnJlbnRTY2Vu
ZVByb2Nlc3NJZCgpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJDaGFwZXJvbmUKK3sKKyAgICAg
ICBJVlJDaGFwZXJvbmUgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJDaGFwZXJvbmUoSW50
UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUkNo
YXBlcm9uZSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJDaGFw
ZXJvbmUpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIENoYXBlcm9uZUNhbGlicmF0aW9uU3Rh
dGUgR2V0Q2FsaWJyYXRpb25TdGF0ZSgpCisgICAgICAgeworICAgICAgICAgICAgICBDaGFwZXJv
bmVDYWxpYnJhdGlvblN0YXRlIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FsaWJyYXRpb25TdGF0ZSgp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
Ym9vbCBHZXRQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVaKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsKKyAgICAgICAgICAgICAgcFNpemVa
ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFBsYXlBcmVhU2l6
ZShyZWYgcFNpemVYLHJlZiBwU2l6ZVopOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRQbGF5QXJlYVJlY3QocmVmIEhtZFF1YWRf
dCByZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdl
dFBsYXlBcmVhUmVjdChyZWYgcmVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlbG9hZEluZm8oKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5SZWxvYWRJbmZvKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIFNldFNjZW5lQ29sb3IoSG1kQ29sb3JfdCBjb2xvcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuU2V0U2NlbmVDb2xvcihjb2xvcik7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIEdldEJvdW5kc0NvbG9yKHJlZiBIbWRDb2xvcl90IHBPdXRwdXRDb2xvckFycmF5LGlu
dCBuTnVtT3V0cHV0Q29sb3JzLGZsb2F0IGZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlLHJl
ZiBIbWRDb2xvcl90IHBPdXRwdXRDYW1lcmFDb2xvcikKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuR2V0Qm91bmRzQ29sb3IocmVmIHBPdXRwdXRDb2xvckFycmF5LG5OdW1PdXRwdXRD
b2xvcnMsZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVmIHBPdXRwdXRDYW1lcmFDb2xv
cik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEFyZUJvdW5kc1Zpc2libGUoKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkFyZUJvdW5kc1Zpc2li
bGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgRm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5Gb3JjZUJvdW5kc1Zpc2libGUoYkZvcmNlKTsKKyAgICAgICB9Cit9
CisKKworcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZVNldHVwCit7CisgICAgICAgSVZSQ2hhcGVy
b25lU2V0dXAgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJDaGFwZXJvbmVTZXR1cChJbnRQ
dHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQ2hh
cGVyb25lU2V0dXApTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZS
Q2hhcGVyb25lU2V0dXApKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQ29tbWl0V29y
a2luZ0NvcHkoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Db21taXRXb3JraW5nQ29weShjb25maWdG
aWxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgUmV2ZXJ0V29ya2luZ0NvcHkoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5U
YWJsZS5SZXZlcnRXb3JraW5nQ29weSgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBH
ZXRXb3JraW5nUGxheUFyZWFTaXplKHJlZiBmbG9hdCBwU2l6ZVgscmVmIGZsb2F0IHBTaXplWikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHBTaXplWCA9IDA7CisgICAgICAgICAgICAgIHBTaXpl
WiA9IDA7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5nUGxh
eUFyZWFTaXplKHJlZiBwU2l6ZVgscmVmIHBTaXplWik7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtpbmdQbGF5QXJlYVJl
Y3QocmVmIEhtZFF1YWRfdCByZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5QXJlYVJlY3QocmVmIHJlY3QpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3Jr
aW5nQ29sbGlzaW9uQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7CisgICAgICAgICAg
ICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhu
dWxsLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcFF1YWRzQnVmZmVyPSBuZXcg
SG1kUXVhZF90W3B1blF1YWRzQ291bnRdOworICAgICAgICAgICAgICByZXN1bHQgPSBGblRhYmxl
LkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKHBRdWFkc0J1ZmZlcixyZWYgcHVuUXVhZHND
b3VudCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1
YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0g
MDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldExpdmVDb2xsaXNpb25C
b3VuZHNJbmZvKG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNC
dWZmZXI9IG5ldyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3Vs
dCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBw
dW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2Up
CisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0V29ya2lu
Z1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdl
dFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBtYXRTdGFuZGlu
Z1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nUGxheUFyZWFTaXplKGZs
b2F0IHNpemVYLGZsb2F0IHNpemVaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5T
ZXRXb3JraW5nUGxheUFyZWFTaXplKHNpemVYLHNpemVaKTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oSG1kUXVhZF90IFtdIHBRdWFk
c0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ0NvbGxp
c2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3RoKTsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcE1hdFNlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldFdvcmtpbmdT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdT
dGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcE1hdFN0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYg
cE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB2b2lkIFJlbG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0Zp
bGUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbG9hZEZyb21EaXNrKGNvbmZp
Z0ZpbGUpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRMaXZlU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91
bmRzVGFnc0luZm8oYnl0ZSBbXSBwVGFnc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKHBUYWdzQnVmZmVyLCh1
aW50KSBwVGFnc0J1ZmZlci5MZW5ndGgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBH
ZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ob3V0IGJ5dGUgW10gcFRhZ3NCdWZmZXIpCisg
ICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blRhZ0NvdW50ID0gMDsKKyAgICAgICAgICAg
ICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhu
dWxsLHJlZiBwdW5UYWdDb3VudCk7CisgICAgICAgICAgICAgIHBUYWdzQnVmZmVyPSBuZXcgYnl0
ZVtwdW5UYWdDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNv
bGxpc2lvbkJvdW5kc1RhZ3NJbmZvKHBUYWdzQnVmZmVyLHJlZiBwdW5UYWdDb3VudCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFNl
dFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5TZXRXb3JraW5nUGh5
c2ljYWxCb3VuZHNJbmZvKHBRdWFkc0J1ZmZlciwodWludCkgcFF1YWRzQnVmZmVyLkxlbmd0aCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBi
b29sIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVhZHNCdWZm
ZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAwOworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5m
byhudWxsLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcFF1YWRzQnVmZmVyPSBu
ZXcgSG1kUXVhZF90W3B1blF1YWRzQ291bnRdOworICAgICAgICAgICAgICByZXN1bHQgPSBGblRh
YmxlLkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0Nv
dW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIGJvb2wgRXhwb3J0TGl2ZVRvQnVmZmVyKFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1
ZmZlcixyZWYgdWludCBwbkJ1ZmZlckxlbmd0aCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBu
QnVmZmVyTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkV4
cG9ydExpdmVUb0J1ZmZlcihwQnVmZmVyLHJlZiBwbkJ1ZmZlckxlbmd0aCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEltcG9ydEZy
b21CdWZmZXJUb1dvcmtpbmcoc3RyaW5nIHBCdWZmZXIsdWludCBuSW1wb3J0RmxhZ3MpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSW1wb3J0RnJvbUJ1ZmZl
clRvV29ya2luZyhwQnVmZmVyLG5JbXBvcnRGbGFncyk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJDb21wb3NpdG9yCit7Cisg
ICAgICAgSVZSQ29tcG9zaXRvciBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNvbXBvc2l0
b3IoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0g
KElWUkNvbXBvc2l0b3IpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2Yo
SVZSQ29tcG9zaXRvcikpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRUcmFja2lu
Z1NwYWNlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLlNldFRyYWNraW5nU3BhY2UoZU9yaWdpbik7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBHZXRUcmFja2luZ1NwYWNlKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHJlc3VsdCA9IEZu
VGFibGUuR2V0VHJhY2tpbmdTcGFjZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIFdhaXRHZXRQb3NlcyhU
cmFja2VkRGV2aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2Vf
dCBbXSBwR2FtZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0
b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLldhaXRHZXRQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1
aW50KSBwUmVuZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQ
b3NlQXJyYXkuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZXMoVHJhY2tlZERl
dmljZVBvc2VfdCBbXSBwUmVuZGVyUG9zZUFycmF5LFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcEdh
bWVQb3NlQXJyYXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJDb21wb3NpdG9yRXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5HZXRMYXN0UG9zZXMocFJlbmRlclBvc2VBcnJheSwodWludCkgcFJl
bmRlclBvc2VBcnJheS5MZW5ndGgscEdhbWVQb3NlQXJyYXksKHVpbnQpIHBHYW1lUG9zZUFycmF5
Lkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5k
ZXgodWludCB1bkRldmljZUluZGV4LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3Nl
LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRHYW1lUG9zZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldExhc3RQb3Nl
Rm9yVHJhY2tlZERldmljZUluZGV4KHVuRGV2aWNlSW5kZXgscmVmIHBPdXRwdXRQb3NlLHJlZiBw
T3V0cHV0R2FtZVBvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdChFVlJFeWUgZUV5ZSxyZWYg
VGV4dHVyZV90IHBUZXh0dXJlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwQm91bmRzLEVWUlN1Ym1p
dEZsYWdzIG5TdWJtaXRGbGFncykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0
b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLlN1Ym1pdChlRXllLHJlZiBwVGV4dHVyZSxyZWYgcEJv
dW5kcyxuU3VibWl0RmxhZ3MpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdm9pZCBDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSgpCisgICAgICAg
eworICAgICAgICAgICAgICBGblRhYmxlLkNsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFBvc3RQcmVzZW50SGFuZG9mZigpCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLlBvc3RQcmVzZW50SGFuZG9mZigpOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBHZXRGcmFtZVRpbWluZyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWlu
ZyBwVGltaW5nLHVpbnQgdW5GcmFtZXNBZ28pCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuR2V0RnJhbWVUaW1pbmcocmVmIHBUaW1pbmcsdW5GcmFtZXNBZ28p
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dWludCBHZXRGcmFtZVRpbWluZ3MocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZyx1
aW50IG5GcmFtZXMpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0RnJhbWVUaW1pbmdzKHJlZiBwVGltaW5nLG5GcmFtZXMpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgZmxvYXQgR2V0RnJhbWVUaW1l
UmVtYWluaW5nKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IHJlc3VsdCA9IEZuVGFi
bGUuR2V0RnJhbWVUaW1lUmVtYWluaW5nKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldEN1bXVsYXRpdmVTdGF0cyhyZWYgQ29t
cG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgcFN0YXRzLHVpbnQgblN0YXRzU2l6ZUluQnl0ZXMpCisg
ICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkdldEN1bXVsYXRpdmVTdGF0cyhyZWYgcFN0
YXRzLG5TdGF0c1NpemVJbkJ5dGVzKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRmFk
ZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsZmxvYXQgZlJlZCxmbG9hdCBmR3JlZW4sZmxvYXQgZkJs
dWUsZmxvYXQgZkFscGhhLGJvb2wgYkJhY2tncm91bmQpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlLkZhZGVUb0NvbG9yKGZTZWNvbmRzLGZSZWQsZkdyZWVuLGZCbHVlLGZBbHBoYSxi
QmFja2dyb3VuZCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRDb2xvcl90IEdldEN1cnJl
bnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEht
ZENvbG9yX3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50RmFkZUNvbG9yKGJCYWNrZ3JvdW5k
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgRmFkZUdyaWQoZmxvYXQgZlNlY29uZHMsYm9vbCBiRmFkZUluKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5GYWRlR3JpZChmU2Vjb25kcyxiRmFkZUluKTsKKyAgICAgICB9
CisgICAgICAgcHVibGljIGZsb2F0IEdldEN1cnJlbnRHcmlkQWxwaGEoKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50R3JpZEFscGhhKCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJDb21wb3NpdG9yRXJyb3IgU2V0U2t5Ym94T3ZlcnJpZGUoVGV4dHVyZV90IFtdIHBUZXh0dXJl
cykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBG
blRhYmxlLlNldFNreWJveE92ZXJyaWRlKHBUZXh0dXJlcywodWludCkgcFRleHR1cmVzLkxlbmd0
aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIENsZWFyU2t5Ym94T3ZlcnJpZGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5U
YWJsZS5DbGVhclNreWJveE92ZXJyaWRlKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lk
IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5Db21wb3NpdG9yQnJpbmdUb0Zyb250KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lk
IENvbXBvc2l0b3JHb1RvQmFjaygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNv
bXBvc2l0b3JHb1RvQmFjaygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDb21wb3Np
dG9yUXVpdCgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JRdWl0
KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzRnVsbHNjcmVlbigpCisgICAgICAg
eworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNGdWxsc2NyZWVuKCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50
IEdldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcygpCisgICAgICAgeworICAgICAgICAgICAgICB1
aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdl
dExhc3RGcmFtZVJlbmRlcmVyKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0
ID0gRm5UYWJsZS5HZXRMYXN0RnJhbWVSZW5kZXJlcigpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYW5SZW5kZXJTY2VuZSgpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ2FuUmVuZGVyU2Nl
bmUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgU2hvd01pcnJvcldpbmRvdygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLlNob3dNaXJyb3JXaW5kb3coKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgSGlk
ZU1pcnJvcldpbmRvdygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkhpZGVNaXJy
b3JXaW5kb3coKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNNaXJyb3JXaW5kb3dW
aXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5J
c01pcnJvcldpbmRvd1Zpc2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgQ29tcG9zaXRvckR1bXBJbWFnZXMoKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Db21wb3NpdG9yRHVtcEltYWdlcygpOworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgYm9vbCBTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5TaG91bGRBcHBS
ZW5kZXJXaXRoTG93UmVzb3VyY2VzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25P
bihib29sIGJPdmVycmlkZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRm9yY2VJ
bnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKGJPdmVycmlkZSk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIEZvcmNlUmVjb25uZWN0UHJvY2VzcygpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlLkZvcmNlUmVjb25uZWN0UHJvY2VzcygpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBTdXNwZW5kUmVuZGVyaW5nKGJvb2wgYlN1c3BlbmQpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLlN1c3BlbmRSZW5kZXJpbmcoYlN1c3BlbmQpOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldE1pcnJvclRleHR1cmVEM0QxMShFVlJF
eWUgZUV5ZSxJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgSW50UHRyIHBwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJDb21wb3NpdG9y
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRNaXJyb3JUZXh0dXJlRDNEMTEoZUV5ZSxwRDNEMTFE
ZXZpY2VPclJlc291cmNlLHJlZiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsZWFz
ZU1pcnJvclRleHR1cmVEM0QxMShJbnRQdHIgcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKHBE
M0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21w
b3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKEVWUkV5ZSBlRXllLHJlZiB1aW50IHBnbFRl
eHR1cmVJZCxJbnRQdHIgcGdsU2hhcmVkVGV4dHVyZUhhbmRsZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHBnbFRleHR1cmVJZCA9IDA7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVHTChlRXllLHJlZiBwZ2xUZXh0dXJl
SWQscGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFJlbGVhc2VTaGFyZWRHTFRleHR1cmUodWlu
dCBnbFRleHR1cmVJZCxJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VTaGFyZWRHTFRleHR1cmUo
Z2xUZXh0dXJlSWQsZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgTG9ja0dMU2hhcmVkVGV4dHVy
ZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKGdsU2hhcmVkVGV4
dHVyZUhhbmRsZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFVubG9ja0dMU2hhcmVk
VGV4dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRm5UYWJsZS5VbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xT
aGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0VnVs
a2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBw
Y2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChwY2hW
YWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQo
SW50UHRyIHBQaHlzaWNhbERldmljZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVl
LHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQg
PSBGblRhYmxlLkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChwUGh5c2ljYWxEZXZp
Y2UscGNoVmFsdWUsdW5CdWZmZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUk92ZXJsYXkKK3sKKyAgICAgICBJVlJP
dmVybGF5IEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZST3ZlcmxheShJbnRQdHIgcEludGVy
ZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZST3ZlcmxheSlNYXJz
aGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJPdmVybGF5KSk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgRmluZE92ZXJsYXkoc3RyaW5nIHBj
aE92ZXJsYXlLZXkscmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcE92ZXJsYXlIYW5kbGUgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5GaW5kT3ZlcmxheShwY2hPdmVybGF5S2V5LHJlZiBwT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtleSxz
dHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCisg
ICAgICAgeworICAgICAgICAgICAgICBwT3ZlcmxheUhhbmRsZSA9IDA7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkNyZWF0ZU92ZXJsYXkocGNoT3Zlcmxh
eUtleSxwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuRGVzdHJveU92ZXJs
YXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRIaWdoUXVhbGl0eU92ZXJsYXko
dWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0SGlnaFF1YWxpdHlPdmVybGF5KHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB1bG9uZyBHZXRIaWdoUXVhbGl0eU92ZXJsYXkoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRIaWdoUXVhbGl0eU92ZXJsYXkoKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
S2V5KHVsT3ZlcmxheUhhbmRsZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBFcnJvcik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50
IEdldE92ZXJsYXlOYW1lKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVy
cm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92
ZXJsYXlOYW1lKHVsT3ZlcmxheUhhbmRsZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBFcnJv
cik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5CdWZmZXJTaXplLHJlZiB1aW50IHB1bldpZHRoLHJl
ZiB1aW50IHB1bkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1bldpZHRoID0gMDsK
KyAgICAgICAgICAgICAgcHVuSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUltYWdlRGF0YSh1bE92ZXJsYXlIYW5kbGUs
cHZCdWZmZXIsdW5CdWZmZXJTaXplLHJlZiBwdW5XaWR0aCxyZWYgcHVuSGVpZ2h0KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBH
ZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUVycm9y
TmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9T
dHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blBJ
RCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLlNldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxPdmVybGF5SGFuZGxlLHVuUElEKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
T3ZlcmxheVJlbmRlcmluZ1BpZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAg
ICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1
bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlGbGFnKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSxWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsYm9vbCBiRW5hYmxlZCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNl
dE92ZXJsYXlGbGFnKHVsT3ZlcmxheUhhbmRsZSxlT3ZlcmxheUZsYWcsYkVuYWJsZWQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxWUk92ZXJsYXlG
bGFncyBlT3ZlcmxheUZsYWcscmVmIGJvb2wgcGJFbmFibGVkKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcGJFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlGbGFnKHVsT3ZlcmxheUhhbmRsZSxlT3ZlcmxheUZs
YWcscmVmIHBiRW5hYmxlZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUNvbG9yKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1ZSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92
ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUsZlJlZCxmR3JlZW4sZkJsdWUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVy
cm9yIEdldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmUmVk
LHJlZiBmbG9hdCBwZkdyZWVuLHJlZiBmbG9hdCBwZkJsdWUpCisgICAgICAgeworICAgICAgICAg
ICAgICBwZlJlZCA9IDA7CisgICAgICAgICAgICAgIHBmR3JlZW4gPSAwOworICAgICAgICAgICAg
ICBwZkJsdWUgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRPdmVybGF5Q29sb3IodWxPdmVybGF5SGFuZGxlLHJlZiBwZlJlZCxyZWYgcGZHcmVl
bixyZWYgcGZCbHVlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLGZsb2F0IGZBbHBoYSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlBbHBoYSh1bE92ZXJsYXlIYW5kbGUs
ZkFscGhhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLHJlZiBmbG9hdCBwZkFscGhhKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGZBbHBoYSA9
IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92
ZXJsYXlBbHBoYSh1bE92ZXJsYXlIYW5kbGUscmVmIHBmQWxwaGEpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZlRleGVsQXNw
ZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsT3ZlcmxheUhhbmRsZSxmVGV4ZWxBc3BlY3Qp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIGZsb2F0IHBmVGV4ZWxBc3BlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBwZlRl
eGVsQXNwZWN0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZUZXhlbEFz
cGVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsdWludCB1blNvcnRPcmRlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFu
ZGxlLHVuU29ydE9yZGVyKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5U29ydE9yZGVyKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5Tb3J0T3JkZXIpCisgICAgICAgeworICAgICAg
ICAgICAgICBwdW5Tb3J0T3JkZXIgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5U29ydE9yZGVyKHVsT3ZlcmxheUhhbmRsZSxyZWYg
cHVuU29ydE9yZGVyKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZldpZHRoSW5NZXRlcnMpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5V2lkdGhJ
bk1ldGVycyh1bE92ZXJsYXlIYW5kbGUsZldpZHRoSW5NZXRlcnMpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdl
dE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZX
aWR0aEluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGZXaWR0aEluTWV0ZXJzID0g
MDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnModWxPdmVybGF5SGFuZGxlLHJlZiBwZldpZHRoSW5NZXRlcnMpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxv
bmcgdWxPdmVybGF5SGFuZGxlLGZsb2F0IGZNaW5EaXN0YW5jZUluTWV0ZXJzLGZsb2F0IGZNYXhE
aXN0YW5jZUluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9y
IHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVy
cyh1bE92ZXJsYXlIYW5kbGUsZk1pbkRpc3RhbmNlSW5NZXRlcnMsZk1heERpc3RhbmNlSW5NZXRl
cnMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRl
cnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZk1pbkRpc3RhbmNlSW5NZXRlcnMs
cmVmIGZsb2F0IHBmTWF4RGlzdGFuY2VJbk1ldGVycykKKyAgICAgICB7CisgICAgICAgICAgICAg
IHBmTWluRGlzdGFuY2VJbk1ldGVycyA9IDA7CisgICAgICAgICAgICAgIHBmTWF4RGlzdGFuY2VJ
bk1ldGVycyA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxPdmVybGF5SGFu
ZGxlLHJlZiBwZk1pbkRpc3RhbmNlSW5NZXRlcnMscmVmIHBmTWF4RGlzdGFuY2VJbk1ldGVycyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSxFQ29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4dHVy
ZUNvbG9yU3BhY2UodWxPdmVybGF5SGFuZGxlLGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgRUNvbG9yU3BhY2UgcGVUZXh0dXJlQ29sb3JTcGFjZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUZXh0dXJlQ29s
b3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBlVGV4dHVyZUNvbG9yU3BhY2UpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zlcmxh
eUVycm9yIFNldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYg
VlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJlQm91bmRzKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRleHR1
cmVCb3VuZHModWxPdmVybGF5SGFuZGxlLHJlZiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJlQm91bmRzKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRl
eHR1cmVCb3VuZHModWxPdmVybGF5SGFuZGxlLHJlZiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgVlJPdmVybGF5VHJhbnNmb3JtVHlwZSBwZVRyYW5zZm9ybVR5cGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
VHJhbnNmb3JtVHlwZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBlVHJhbnNmb3JtVHlwZSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4scmVmIEhtZE1hdHJpeDM0
X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRyYW5z
Zm9ybUFic29sdXRlKHVsT3ZlcmxheUhhbmRsZSxlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFj
a2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRy
YW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gcGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdP
cmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVy
bGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxP
dmVybGF5SGFuZGxlLHJlZiBwZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmlnaW5U
b092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlUmVsYXRpdmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQgdW5UcmFja2VkRGV2
aWNlLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3Jt
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bE92ZXJsYXlIYW5k
bGUsdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9y
bSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQgcHVuVHJhY2tlZERldmljZSxyZWYgSG1k
TWF0cml4MzRfdCBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHB1blRyYWNrZWREZXZpY2UgPSAwOworICAgICAgICAgICAgICBFVlJP
dmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERl
dmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuVHJhY2tlZERldmljZSxyZWYgcG1h
dFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJs
YXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1
aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJh
bnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bE92ZXJsYXlIYW5kbGUsdW5EZXZpY2VJbmRl
eCxwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZUNvbXBvbmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQgcHVuRGV2
aWNlSW5kZXgsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsdWludCB1bkNvbXBvbmVudE5hbWVTaXpl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuRGV2aWNlSW5kZXggPSAwOworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNmb3Jt
VHJhY2tlZERldmljZUNvbXBvbmVudCh1bE92ZXJsYXlIYW5kbGUscmVmIHB1bkRldmljZUluZGV4
LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lU2l6ZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hv
d092ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2hvd092ZXJsYXkodWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBIaWRlT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5I
aWRlT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc092ZXJsYXlWaXNpYmxlKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5Jc092ZXJsYXlWaXNpYmxlKHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0
VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sSG1kVmVjdG9yMl90IGNvb3JkaW5h
dGVzSW5PdmVybGF5LHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2Zv
cm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixj
b29yZGluYXRlc0luT3ZlcmxheSxyZWYgcG1hdFRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0T3Zlcmxh
eUV2ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJFdmVudF90IHBFdmVudCx1aW50IHVu
Y2JWUkV2ZW50KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LlBvbGxOZXh0T3ZlcmxheUV2ZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcEV2ZW50LHVuY2JWUkV2
ZW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5
SGFuZGxlLHJlZiBWUk92ZXJsYXlJbnB1dE1ldGhvZCBwZUlucHV0TWV0aG9kKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eUlucHV0TWV0aG9kKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVJbnB1dE1ldGhvZCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheUlucHV0TWV0aG9kKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxWUk92ZXJs
YXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJP
dmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5SW5wdXRNZXRob2QodWxPdmVy
bGF5SGFuZGxlLGVJbnB1dE1ldGhvZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheU1vdXNlU2Nh
bGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRPdmVybGF5TW91c2VTY2FsZSh1bE92ZXJsYXlIYW5kbGUscmVmIHB2ZWNNb3VzZVNjYWxl
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlNb3VzZVNjYWxl
KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDb21wdXRlT3ZlcmxheUlu
dGVyc2VjdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlv
blBhcmFtc190IHBQYXJhbXMscmVmIFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCBwUmVz
dWx0cykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Db21w
dXRlT3ZlcmxheUludGVyc2VjdGlvbih1bE92ZXJsYXlIYW5kbGUscmVmIHBQYXJhbXMscmVmIHBS
ZXN1bHRzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxv
bmcgdWxPdmVybGF5SGFuZGxlLHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpCisgICAgICAg
eworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSGFuZGxlQ29udHJvbGxlck92
ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxPdmVybGF5SGFuZGxlLHVuQ29udHJvbGxlckRldmlj
ZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgSXNIb3ZlclRhcmdldE92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzSG92ZXJUYXJn
ZXRPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRHYW1lcGFkRm9jdXNPdmVybGF5KCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFibGUuR2V0R2FtZXBh
ZEZvY3VzT3ZlcmxheSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxv
bmcgdWxOZXdGb2N1c092ZXJsYXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsTmV3Rm9jdXNP
dmVybGF5KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TmVpZ2hib3IoRU92ZXJsYXlEaXJlY3Rp
b24gZURpcmVjdGlvbix1bG9uZyB1bEZyb20sdWxvbmcgdWxUbykKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlOZWlnaGJv
cihlRGlyZWN0aW9uLHVsRnJvbSx1bFRvKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBNb3ZlR2FtZXBhZEZvY3Vz
VG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLHVsb25nIHVsRnJvbSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLk1v
dmVHYW1lcGFkRm9jdXNUb05laWdoYm9yKGVEaXJlY3Rpb24sdWxGcm9tKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFRleHR1cmVfdCBw
VGV4dHVyZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQg
PSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFRleHR1cmUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIENsZWFyT3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFuZGxl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuQ2xlYXJPdmVybGF5VGV4dHVyZSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlSYXcodWxvbmcgdWxPdmVybGF5SGFuZGxlLEludFB0ciBwdkJ1ZmZlcix1aW50IHVu
V2lkdGgsdWludCB1bkhlaWdodCx1aW50IHVuRGVwdGgpCisgICAgICAgeworICAgICAgICAgICAg
ICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5UmF3KHVsT3Zlcmxh
eUhhbmRsZSxwdkJ1ZmZlcix1bldpZHRoLHVuSGVpZ2h0LHVuRGVwdGgpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsc3RyaW5nIHBjaEZpbGVQ
YXRoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheUZyb21GaWxlKHVsT3ZlcmxheUhhbmRsZSxwY2hGaWxlUGF0aCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBJ
bnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUsSW50UHRyIHBOYXRpdmVUZXh0dXJlUmVmLHJlZiB1
aW50IHBXaWR0aCxyZWYgdWludCBwSGVpZ2h0LHJlZiB1aW50IHBOYXRpdmVGb3JtYXQscmVmIEVU
ZXh0dXJlVHlwZSBwQVBJVHlwZSxyZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UscmVmIFZSVGV4
dHVyZUJvdW5kc190IHBUZXh0dXJlQm91bmRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcFdp
ZHRoID0gMDsKKyAgICAgICAgICAgICAgcEhlaWdodCA9IDA7CisgICAgICAgICAgICAgIHBOYXRp
dmVGb3JtYXQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRPdmVybGF5VGV4dHVyZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBOYXRpdmVUZXh0dXJl
SGFuZGxlLHBOYXRpdmVUZXh0dXJlUmVmLHJlZiBwV2lkdGgscmVmIHBIZWlnaHQscmVmIHBOYXRp
dmVGb3JtYXQscmVmIHBBUElUeXBlLHJlZiBwQ29sb3JTcGFjZSxyZWYgcFRleHR1cmVCb3VuZHMp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZWxlYXNlTmF0aXZlT3Zlcmxh
eUhhbmRsZSh1bE92ZXJsYXlIYW5kbGUscE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVy
cm9yIEdldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQg
cFdpZHRoLHJlZiB1aW50IHBIZWlnaHQpCisgICAgICAgeworICAgICAgICAgICAgICBwV2lkdGgg
PSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVTaXplKHVsT3ZlcmxheUhh
bmRsZSxyZWYgcFdpZHRoLHJlZiBwSGVpZ2h0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVEYXNoYm9h
cmRPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0cmluZyBwY2hPdmVybGF5RnJpZW5kbHlO
YW1lLHJlZiB1bG9uZyBwTWFpbkhhbmRsZSxyZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBNYWluSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgcFRo
dW1ibmFpbEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQg
PSBGblRhYmxlLkNyZWF0ZURhc2hib2FyZE92ZXJsYXkocGNoT3ZlcmxheUtleSxwY2hPdmVybGF5
RnJpZW5kbHlOYW1lLHJlZiBwTWFpbkhhbmRsZSxyZWYgcFRodW1ibmFpbEhhbmRsZSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElz
RGFzaGJvYXJkVmlzaWJsZSgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuSXNEYXNoYm9hcmRWaXNpYmxlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzQWN0aXZlRGFzaGJvYXJkT3Zlcmxh
eSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vzcyh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsdWludCB1blByb2Nlc3NJZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERhc2hib2FyZE92ZXJsYXlTY2VuZVBy
b2Nlc3ModWxPdmVybGF5SGFuZGxlLHVuUHJvY2Vzc0lkKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXREYXNo
Ym9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBw
dW5Qcm9jZXNzSWQpCisgICAgICAgeworICAgICAgICAgICAgICBwdW5Qcm9jZXNzSWQgPSAwOwor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXREYXNoYm9h
cmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuUHJvY2Vzc0lkKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgU2hvd0Rhc2hib2FyZChzdHJpbmcgcGNoT3ZlcmxheVRvU2hvdykKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuU2hvd0Rhc2hib2FyZChwY2hPdmVybGF5VG9TaG93KTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0UHJpbWFyeURhc2hib2FyZERldmljZSgpCisgICAg
ICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UHJpbWFyeURhc2hi
b2FyZERldmljZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZChpbnQgZUlucHV0TW9kZSxp
bnQgZUxpbmVJbnB1dE1vZGUsc3RyaW5nIHBjaERlc2NyaXB0aW9uLHVpbnQgdW5DaGFyTWF4LHN0
cmluZyBwY2hFeGlzdGluZ1RleHQsYm9vbCBiVXNlTWluaW1hbE1vZGUsdWxvbmcgdVVzZXJWYWx1
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLlNob3dLZXlib2FyZChlSW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9u
LHVuQ2hhck1heCxwY2hFeGlzdGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIFNob3dLZXlib2FyZEZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxl
LGludCBlSW5wdXRNb2RlLGludCBlTGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24s
dWludCB1bkNoYXJNYXgsc3RyaW5nIHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9k
ZSx1bG9uZyB1VXNlclZhbHVlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5k
bGUsZUlucHV0TW9kZSxlTGluZUlucHV0TW9kZSxwY2hEZXNjcmlwdGlvbix1bkNoYXJNYXgscGNo
RXhpc3RpbmdUZXh0LGJVc2VNaW5pbWFsTW9kZSx1VXNlclZhbHVlKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0S2V5Ym9hcmRU
ZXh0KFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGV4dCx1aW50IGNjaFRleHQpCisgICAg
ICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0S2V5Ym9hcmRUZXh0
KHBjaFRleHQsY2NoVGV4dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIEhpZGVLZXlib2FyZCgpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlLkhpZGVLZXlib2FyZCgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9p
ZCBTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVU
cmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJv
YXJkVHJhbnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2Fy
ZFRyYW5zZm9ybUFic29sdXRlKGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNraW5nT3JpZ2lu
VG9LZXlib2FyZFRyYW5zZm9ybSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEtl
eWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxIbWRSZWN0Ml90
IGF2b2lkUmVjdCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0S2V5Ym9hcmRQ
b3NpdGlvbkZvck92ZXJsYXkodWxPdmVybGF5SGFuZGxlLGF2b2lkUmVjdCk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2so
dWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0
aXZlX3QgcE1hc2tQcmltaXRpdmVzLHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcyx1aW50IHVuUHJp
bWl0aXZlU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsT3ZlcmxheUhhbmRsZSxy
ZWYgcE1hc2tQcmltaXRpdmVzLHVuTnVtTWFza1ByaW1pdGl2ZXMsdW5QcmltaXRpdmVTaXplKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5RmxhZ3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1
aW50IHBGbGFncykKKyAgICAgICB7CisgICAgICAgICAgICAgIHBGbGFncyA9IDA7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlGbGFncyh1
bE92ZXJsYXlIYW5kbGUscmVmIHBGbGFncyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgU2hvd01l
c3NhZ2VPdmVybGF5KHN0cmluZyBwY2hUZXh0LHN0cmluZyBwY2hDYXB0aW9uLHN0cmluZyBwY2hC
dXR0b24wVGV4dCxzdHJpbmcgcGNoQnV0dG9uMVRleHQsc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LHN0
cmluZyBwY2hCdXR0b24zVGV4dCkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTWVzc2FnZU92
ZXJsYXlSZXNwb25zZSByZXN1bHQgPSBGblRhYmxlLlNob3dNZXNzYWdlT3ZlcmxheShwY2hUZXh0
LHBjaENhcHRpb24scGNoQnV0dG9uMFRleHQscGNoQnV0dG9uMVRleHQscGNoQnV0dG9uMlRleHQs
cGNoQnV0dG9uM1RleHQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
K30KKworCitwdWJsaWMgY2xhc3MgQ1ZSUmVuZGVyTW9kZWxzCit7CisgICAgICAgSVZSUmVuZGVy
TW9kZWxzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSUmVuZGVyTW9kZWxzKEludFB0ciBw
SW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJSZW5kZXJN
b2RlbHMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSUmVuZGVy
TW9kZWxzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9yIExv
YWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLHJlZiBJbnRQdHIg
cHBSZW5kZXJNb2RlbCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlJlbmRlck1vZGVsRXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkUmVuZGVyTW9kZWxfQXN5bmMocGNoUmVuZGVyTW9kZWxO
YW1lLHJlZiBwcFJlbmRlck1vZGVsKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRnJlZVJlbmRlck1vZGVsKEludFB0ciBwUmVuZGVy
TW9kZWwpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZyZWVSZW5kZXJNb2RlbChw
UmVuZGVyTW9kZWwpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSUmVuZGVyTW9kZWxFcnJv
ciBMb2FkVGV4dHVyZV9Bc3luYyhpbnQgdGV4dHVyZUlkLHJlZiBJbnRQdHIgcHBUZXh0dXJlKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRh
YmxlLkxvYWRUZXh0dXJlX0FzeW5jKHRleHR1cmVJZCxyZWYgcHBUZXh0dXJlKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRnJlZVRl
eHR1cmUoSW50UHRyIHBUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5G
cmVlVGV4dHVyZShwVGV4dHVyZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5kZXJN
b2RlbEVycm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCxJbnRQdHIgcEQz
RDExRGV2aWNlLHJlZiBJbnRQdHIgcHBEM0QxMVRleHR1cmUyRCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkVGV4dHVyZUQz
RDExX0FzeW5jKHRleHR1cmVJZCxwRDNEMTFEZXZpY2UscmVmIHBwRDNEMTFUZXh0dXJlMkQpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
UmVuZGVyTW9kZWxFcnJvciBMb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlk
LEludFB0ciBwRHN0VGV4dHVyZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlJlbmRlck1v
ZGVsRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyh0ZXh0
dXJlSWQscERzdFRleHR1cmUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFUZXh0
dXJlMkQpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZyZWVUZXh0dXJlRDNEMTEo
cEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0UmVuZGVy
TW9kZWxOYW1lKHVpbnQgdW5SZW5kZXJNb2RlbEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoUmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5SZW5kZXJNb2RlbE5hbWVMZW4pCisgICAgICAg
eworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxOYW1l
KHVuUmVuZGVyTW9kZWxJbmRleCxwY2hSZW5kZXJNb2RlbE5hbWUsdW5SZW5kZXJNb2RlbE5hbWVM
ZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdWludCBHZXRSZW5kZXJNb2RlbENvdW50KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbENvdW50KCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldENvbXBvbmVu
dENvdW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUpCisgICAgICAgeworICAgICAgICAgICAg
ICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50Q291bnQocGNoUmVuZGVyTW9kZWxO
YW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHVpbnQgR2V0Q29tcG9uZW50TmFtZShzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLHVpbnQg
dW5Db21wb25lbnRJbmRleCxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudE5h
bWUsdWludCB1bkNvbXBvbmVudE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50
IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50TmFtZShwY2hSZW5kZXJNb2RlbE5hbWUsdW5D
b21wb25lbnRJbmRleCxwY2hDb21wb25lbnROYW1lLHVuQ29tcG9uZW50TmFtZUxlbik7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBH
ZXRDb21wb25lbnRCdXR0b25NYXNrKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5nIHBj
aENvbXBvbmVudE5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICB1bG9uZyByZXN1bHQgPSBG
blRhYmxlLkdldENvbXBvbmVudEJ1dHRvbk1hc2socGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBv
bmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdWludCBHZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUoc3RyaW5nIHBjaFJlbmRl
ck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWls
ZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1aW50IHVuQ29tcG9uZW50UmVuZGVyTW9k
ZWxOYW1lTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxl
LkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9u
ZW50TmFtZSxwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsdW5Db21wb25lbnRSZW5kZXJNb2Rl
bE5hbWVMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKy8vIFRo
aXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHdvcmthcm91bmQgdGhlIGZhY3QgdGhhdCBWUkNvbnRy
b2xsZXJTdGF0ZV90IHdhcworLy8gb3JpZ2luYWxseSBtaXMtY29tcGlsZWQgd2l0aCB0aGUgd3Jv
bmcgcGFja2luZyBmb3IgTGludXggYW5kIE9TWC4KKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX0dldENvbXBvbmVudFN0YXRlUGFja2VkKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5h
bWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2Vk
IHBDb250cm9sbGVyU3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3Qg
cFN0YXRlLHJlZiBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90IHBDb21wb25lbnRTdGF0ZSk7
CisgICAgICAgW1N0cnVjdExheW91dChMYXlvdXRLaW5kLkV4cGxpY2l0KV0KKyAgICAgICBzdHJ1
Y3QgR2V0Q29tcG9uZW50U3RhdGVVbmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAgW0ZpZWxk
T2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgSVZSUmVuZGVyTW9kZWxzLl9HZXRDb21w
b25lbnRTdGF0ZSBwR2V0Q29tcG9uZW50U3RhdGU7CisgICAgICAgICAgICAgIFtGaWVsZE9mZnNl
dCgwKV0KKyAgICAgICAgICAgICAgcHVibGljIF9HZXRDb21wb25lbnRTdGF0ZVBhY2tlZCBwR2V0
Q29tcG9uZW50U3RhdGVQYWNrZWQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldENv
bXBvbmVudFN0YXRlKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5nIHBjaENvbXBvbmVu
dE5hbWUscmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENvbnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVy
TW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbXBv
bmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYg
KChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9y
bUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3lzdGVtLkVudmly
b25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5Vbml4KSkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29tcG9uZW50U3RhdGVVbmlv
biB1OworICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3Rh
dGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7CisgICAgICAgICAg
ICAgICAgICAgICB1LnBHZXRDb21wb25lbnRTdGF0ZVBhY2tlZCA9IG51bGw7CisgICAgICAgICAg
ICAgICAgICAgICB1LnBHZXRDb21wb25lbnRTdGF0ZSA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3Rh
dGU7CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb21w
b25lbnRTdGF0ZVBhY2tlZChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSxyZWYg
c3RhdGVfcGFja2VkLHJlZiBwU3RhdGUscmVmIHBDb21wb25lbnRTdGF0ZSk7CisKKyAgICAgICAg
ICAgICAgICAgICAgIHN0YXRlX3BhY2tlZC5VbnBhY2socmVmIHBDb250cm9sbGVyU3RhdGUpOwor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2tlZF9yZXN1bHQ7CisgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldENvbXBvbmVudFN0YXRl
KHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBwQ29udHJvbGxlclN0YXRl
LHJlZiBwU3RhdGUscmVmIHBDb21wb25lbnRTdGF0ZSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFJlbmRlck1vZGVsSGFzQ29tcG9u
ZW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVuZGVyTW9kZWxI
YXNDb21wb25lbnQocGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRS
ZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGh1bWJuYWlsVVJMLHVpbnQgdW5UaHVtYm5haWxVUkxMZW4s
cmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChwY2hSZW5k
ZXJNb2RlbE5hbWUscGNoVGh1bWJuYWlsVVJMLHVuVGh1bWJuYWlsVVJMTGVuLHJlZiBwZUVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHVpbnQgR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFt
ZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaE9yaWdpbmFsUGF0aCx1aW50IHVuT3JpZ2lu
YWxQYXRoTGVuLHJlZiBFVlJSZW5kZXJNb2RlbEVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAg
ICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBh
dGgocGNoUmVuZGVyTW9kZWxOYW1lLHBjaE9yaWdpbmFsUGF0aCx1bk9yaWdpbmFsUGF0aExlbixy
ZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBzdHJpbmcgR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bShFVlJSZW5k
ZXJNb2RlbEVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3Vs
dCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bShlcnJvcik7CisgICAg
ICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAg
IH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSTm90aWZpY2F0aW9ucworeworICAgICAgIElWUk5v
dGlmaWNhdGlvbnMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJOb3RpZmljYXRpb25zKElu
dFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJO
b3RpZmljYXRpb25zKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElW
Uk5vdGlmaWNhdGlvbnMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk5vdGlmaWNhdGlv
bkVycm9yIENyZWF0ZU5vdGlmaWNhdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWxvbmcgdWxV
c2VyVmFsdWUsRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLHN0cmluZyBwY2hUZXh0LEVWUk5vdGlm
aWNhdGlvblN0eWxlIHN0eWxlLHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1hZ2UscmVmIHVp
bnQgcE5vdGlmaWNhdGlvbklkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcE5vdGlmaWNhdGlv
bklkID0gMDsKKyAgICAgICAgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5DcmVhdGVOb3RpZmljYXRpb24odWxPdmVybGF5SGFuZGxlLHVsVXNlclZhbHVlLHR5cGUs
cGNoVGV4dCxzdHlsZSxyZWYgcEltYWdlLHJlZiBwTm90aWZpY2F0aW9uSWQpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0
aW9uRXJyb3IgUmVtb3ZlTm90aWZpY2F0aW9uKHVpbnQgbm90aWZpY2F0aW9uSWQpCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlJl
bW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JZCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJTZXR0aW5ncworeworICAg
ICAgIElWUlNldHRpbmdzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSU2V0dGluZ3MoSW50
UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlNl
dHRpbmdzKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlNldHRp
bmdzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0U2V0dGluZ3NFcnJvck5h
bWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0o
ZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJl
c3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFN5bmMoYm9vbCBiRm9yY2UscmVm
IEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5TeW5jKGJGb3JjZSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEJvb2woc3Ry
aW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGJvb2wgYlZhbHVlLHJlZiBFVlJT
ZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNl
dEJvb2wocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxiVmFsdWUscmVmIHBlRXJyb3IpOworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbixzdHJp
bmcgcGNoU2V0dGluZ3NLZXksaW50IG5WYWx1ZSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRJbnQzMihwY2hTZWN0aW9uLHBj
aFNldHRpbmdzS2V5LG5WYWx1ZSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIFNldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxm
bG9hdCBmbFZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLlNldEZsb2F0KHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXksZmxW
YWx1ZSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFN0cmlu
ZyhzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksc3RyaW5nIHBjaFZhbHVl
LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBG
blRhYmxlLlNldFN0cmluZyhwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHBjaFZhbHVlLHJlZiBw
ZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0Qm9vbChzdHJpbmcgcGNo
U2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXkscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRCb29s
KHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgaW50IEdldEludDMyKHN0cmlu
ZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBw
ZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
SW50MzIocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGbG9h
dChzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXkscmVmIEVWUlNldHRpbmdz
RXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IHJlc3VsdCA9IEZu
VGFibGUuR2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lk
IEdldFN0cmluZyhzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuVmFsdWVMZW4scmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0U3Ry
aW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUsdW5WYWx1ZUxlbixyZWYgcGVF
cnJvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlbW92ZVNlY3Rpb24oc3RyaW5n
IHBjaFNlY3Rpb24scmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuUmVtb3ZlU2VjdGlvbihwY2hTZWN0aW9uLHJlZiBwZUVycm9yKTsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVtb3ZlS2V5SW5TZWN0aW9uKHN0cmluZyBw
Y2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVy
cm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZW1vdmVLZXlJblNlY3Rpb24o
cGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorfQorCisK
K3B1YmxpYyBjbGFzcyBDVlJTY3JlZW5zaG90cworeworICAgICAgIElWUlNjcmVlbnNob3RzIEZu
VGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSU2NyZWVuc2hvdHMoSW50UHRyIHBJbnRlcmZhY2Up
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlNjcmVlbnNob3RzKU1hcnNo
YWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlNjcmVlbnNob3RzKSk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgUmVxdWVzdFNjcmVlbnNo
b3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSxz
dHJpbmcgcGNoUHJldmlld0ZpbGVuYW1lLHN0cmluZyBwY2hWUkZpbGVuYW1lKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcE91dFNjcmVlbnNob3RIYW5kbGUgPSAwOworICAgICAgICAgICAgICBF
VlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZXF1ZXN0U2NyZWVuc2hvdChyZWYg
cE91dFNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hQcmV2aWV3RmlsZW5hbWUscGNoVlJGaWxlbmFt
ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJTY3JlZW5zaG90RXJyb3IgSG9va1NjcmVlbnNob3QoRVZSU2NyZWVuc2hvdFR5cGUgW10g
cFN1cHBvcnRlZFR5cGVzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuSG9va1NjcmVlbnNob3QocFN1cHBvcnRlZFR5cGVzLChpbnQp
IHBTdXBwb3J0ZWRUeXBlcy5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hvdFR5cGUgR2V0U2NyZWVuc2hvdFBy
b3BlcnR5VHlwZSh1aW50IHNjcmVlbnNob3RIYW5kbGUscmVmIEVWUlNjcmVlbnNob3RFcnJvciBw
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90VHlwZSByZXN1bHQg
PSBGblRhYmxlLkdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUoc2NyZWVuc2hvdEhhbmRsZSxyZWYg
cEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHVpbnQgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUodWludCBzY3JlZW5zaG90
SGFuZGxlLEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFtZVR5cGUsU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hGaWxlbmFtZSx1aW50IGNjaEZpbGVuYW1lLHJlZiBFVlJT
Y3JlZW5zaG90RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1
bHQgPSBGblRhYmxlLkdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKHNjcmVlbnNob3RIYW5k
bGUsZmlsZW5hbWVUeXBlLHBjaEZpbGVuYW1lLGNjaEZpbGVuYW1lLHJlZiBwRXJyb3IpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2Ny
ZWVuc2hvdEVycm9yIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyh1aW50IHNjcmVlbnNob3RIYW5k
bGUsZmxvYXQgZmxQcm9ncmVzcykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNo
b3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyhzY3JlZW5z
aG90SGFuZGxlLGZsUHJvZ3Jlc3MpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hvdEVycm9yIFRha2VTdGVyZW9TY3JlZW5z
aG90KHJlZiB1aW50IHBPdXRTY3JlZW5zaG90SGFuZGxlLHN0cmluZyBwY2hQcmV2aWV3RmlsZW5h
bWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBwT3V0U2Ny
ZWVuc2hvdEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciByZXN1
bHQgPSBGblRhYmxlLlRha2VTdGVyZW9TY3JlZW5zaG90KHJlZiBwT3V0U2NyZWVuc2hvdEhhbmRs
ZSxwY2hQcmV2aWV3RmlsZW5hbWUscGNoVlJGaWxlbmFtZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgU3Vi
bWl0U2NyZWVuc2hvdCh1aW50IHNjcmVlbnNob3RIYW5kbGUsRVZSU2NyZWVuc2hvdFR5cGUgdHlw
ZSxzdHJpbmcgcGNoU291cmNlUHJldmlld0ZpbGVuYW1lLHN0cmluZyBwY2hTb3VyY2VWUkZpbGVu
YW1lKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU3VibWl0U2NyZWVuc2hvdChzY3JlZW5zaG90SGFuZGxlLHR5cGUscGNoU291cmNl
UHJldmlld0ZpbGVuYW1lLHBjaFNvdXJjZVZSRmlsZW5hbWUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSUmVzb3VyY2VzCit7
CisgICAgICAgSVZSUmVzb3VyY2VzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSUmVzb3Vy
Y2VzKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9
IChJVlJSZXNvdXJjZXMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2Yo
SVZSUmVzb3VyY2VzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IExvYWRTaGFyZWRS
ZXNvdXJjZShzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hCdWZmZXIsdWludCB1bkJ1
ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5M
b2FkU2hhcmVkUmVzb3VyY2UocGNoUmVzb3VyY2VOYW1lLHBjaEJ1ZmZlcix1bkJ1ZmZlckxlbik7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1
aW50IEdldFJlc291cmNlRnVsbFBhdGgoc3RyaW5nIHBjaFJlc291cmNlTmFtZSxzdHJpbmcgcGNo
UmVzb3VyY2VUeXBlRGlyZWN0b3J5LHN0cmluZyBwY2hQYXRoQnVmZmVyLHVpbnQgdW5CdWZmZXJM
ZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UmVz
b3VyY2VGdWxsUGF0aChwY2hSZXNvdXJjZU5hbWUscGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LHBj
aFBhdGhCdWZmZXIsdW5CdWZmZXJMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgT3BlblZSSW50ZXJvcAoreworICAgICAgIFtE
bGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBvaW50ID0gIlZSX0luaXRJbnRl
cm5hbCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAg
ICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gdWludCBJbml0SW50ZXJuYWwocmVmIEVWUkluaXRF
cnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSk7CisgICAg
ICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfU2h1
dGRvd25JbnRlcm5hbCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2Rl
Y2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gdm9pZCBTaHV0ZG93bkludGVybmFs
KCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQg
PSAiVlJfSXNIbWRQcmVzZW50IiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlv
bi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzSG1kUHJlc2Vu
dCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBvaW50
ID0gIlZSX0lzUnVudGltZUluc3RhbGxlZCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0Nv
bnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gYm9vbCBJc1J1
bnRpbWVJbnN0YWxsZWQoKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBp
IiwgRW50cnlQb2ludCA9ICJWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciIsIENhbGxpbmdDb252ZW50
aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBl
eHRlcm4gSW50UHRyIEdldFN0cmluZ0ZvckhtZEVycm9yKEVWUkluaXRFcnJvciBlcnJvcik7Cisg
ICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJf
R2V0R2VuZXJpY0ludGVyZmFjZSIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRp
b24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldEdlbmVy
aWNJbnRlcmZhY2UoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBw
Y2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IpOworICAgICAgIFtE
bGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBvaW50ID0gIlZSX0lzSW50ZXJm
YWNlVmVyc2lvblZhbGlkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5D
ZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzSW50ZXJmYWNlVmVy
c2lvblZhbGlkKFtJbiwgTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuTFBTdHIpXSBzdHJpbmcgcGNo
SW50ZXJmYWNlVmVyc2lvbik7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2Fw
aSIsIEVudHJ5UG9pbnQgPSAiVlJfR2V0SW5pdFRva2VuIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBD
YWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB1
aW50IEdldEluaXRUb2tlbigpOworfQorCisKK3B1YmxpYyBlbnVtIEVWUkV5ZQoreworICAgICAg
IEV5ZV9MZWZ0ID0gMCwKKyAgICAgICBFeWVfUmlnaHQgPSAxLAorfQorcHVibGljIGVudW0gRVRl
eHR1cmVUeXBlCit7CisgICAgICAgRGlyZWN0WCA9IDAsCisgICAgICAgT3BlbkdMID0gMSwKKyAg
ICAgICBWdWxrYW4gPSAyLAorICAgICAgIElPU3VyZmFjZSA9IDMsCisgICAgICAgRGlyZWN0WDEy
ID0gNCwKK30KK3B1YmxpYyBlbnVtIEVDb2xvclNwYWNlCit7CisgICAgICAgQXV0byA9IDAsCisg
ICAgICAgR2FtbWEgPSAxLAorICAgICAgIExpbmVhciA9IDIsCit9CitwdWJsaWMgZW51bSBFVHJh
Y2tpbmdSZXN1bHQKK3sKKyAgICAgICBVbmluaXRpYWxpemVkID0gMSwKKyAgICAgICBDYWxpYnJh
dGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAgIENhbGlicmF0aW5nX091dE9mUmFuZ2UgPSAx
MDEsCisgICAgICAgUnVubmluZ19PSyA9IDIwMCwKKyAgICAgICBSdW5uaW5nX091dE9mUmFuZ2Ug
PSAyMDEsCit9CitwdWJsaWMgZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAgSW52
YWxpZCA9IDAsCisgICAgICAgSE1EID0gMSwKKyAgICAgICBDb250cm9sbGVyID0gMiwKKyAgICAg
ICBHZW5lcmljVHJhY2tlciA9IDMsCisgICAgICAgVHJhY2tpbmdSZWZlcmVuY2UgPSA0LAorfQor
cHVibGljIGVudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQoreworICAgICAgIEludmFsaWQgPSAw
LAorICAgICAgIExlZnRIYW5kID0gMSwKKyAgICAgICBSaWdodEhhbmQgPSAyLAorfQorcHVibGlj
IGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBUcmFja2luZ1VuaXZlcnNl
U2VhdGVkID0gMCwKKyAgICAgICBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLAorICAgICAg
IFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLAorfQorcHVibGljIGVudW0g
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eQoreworICAgICAgIFByb3BfSW52YWxpZCA9IDAsCisgICAg
ICAgUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3RyaW5nID0gMTAwMCwKKyAgICAgICBQcm9wX01v
ZGVsTnVtYmVyX1N0cmluZyA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJpYWxOdW1iZXJfU3RyaW5n
ID0gMTAwMiwKKyAgICAgICBQcm9wX1JlbmRlck1vZGVsTmFtZV9TdHJpbmcgPSAxMDAzLAorICAg
ICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51ZmFj
dHVyZXJOYW1lX1N0cmluZyA9IDEwMDUsCisgICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVy
c2lvbl9TdHJpbmcgPSAxMDA2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcg
PSAxMDA3LAorICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5n
ID0gMTAwOCwKKyAgICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyA9IDEw
MDksCisgICAgICAgUHJvcF9EZXZpY2VJc1dpcmVsZXNzX0Jvb2wgPSAxMDEwLAorICAgICAgIFBy
b3BfRGV2aWNlSXNDaGFyZ2luZ19Cb29sID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJhdHRl
cnlQZXJjZW50YWdlX0Zsb2F0ID0gMTAxMiwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFu
c2Zvcm1fTWF0cml4MzQgPSAxMDEzLAorICAgICAgIFByb3BfRmlybXdhcmVfVXBkYXRlQXZhaWxh
YmxlX0Jvb2wgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wg
PSAxMDE1LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyA9IDEw
MTYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCA9IDEwMTcsCisgICAgICAg
UHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMTAxOCwKKyAgICAgICBQcm9wX0ZQR0FWZXJz
aW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgUHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCA9IDEwMjAs
CisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ID0gMTAyMSwKKyAgICAgICBQcm9wX0Rv
bmdsZVZlcnNpb25fVWludDY0ID0gMTAyMiwKKyAgICAgICBQcm9wX0Jsb2NrU2VydmVyU2h1dGRv
d25fQm9vbCA9IDEwMjMsCisgICAgICAgUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVTeXN0ZW1XaXRo
SG1kX0Jvb2wgPSAxMDI0LAorICAgICAgIFByb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9v
bCA9IDEwMjUsCisgICAgICAgUHJvcF9EZXZpY2VQcm92aWRlc0JhdHRlcnlTdGF0dXNfQm9vbCA9
IDEwMjYsCisgICAgICAgUHJvcF9EZXZpY2VDYW5Qb3dlck9mZl9Cb29sID0gMTAyNywKKyAgICAg
ICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyA9IDEwMjgsCisgICAgICAg
UHJvcF9EZXZpY2VDbGFzc19JbnQzMiA9IDEwMjksCisgICAgICAgUHJvcF9IYXNDYW1lcmFfQm9v
bCA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyA9IDEwMzEsCisgICAg
ICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgPSAxMDMyLAorICAgICAg
IFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgPSAxMDMzLAorICAgICAgIFBy
b3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNp
bmNlVlN5bmNfQm9vbCA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zX0Zsb2F0ID0gMjAwMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQgPSAy
MDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9hdCA9IDIwMDMsCisgICAgICAgUHJv
cF9DdXJyZW50VW5pdmVyc2VJZF9VaW50NjQgPSAyMDA0LAorICAgICAgIFByb3BfUHJldmlvdXNV
bml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDUsCisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCA9IDIwMDYsCisgICAgICAgUHJvcF9Jc09uRGVza3RvcF9Cb29sID0gMjAwNywK
KyAgICAgICBQcm9wX0Rpc3BsYXlNQ1R5cGVfSW50MzIgPSAyMDA4LAorICAgICAgIFByb3BfRGlz
cGxheU1DT2Zmc2V0X0Zsb2F0ID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zs
b2F0ID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiA9IDIwMTEsCisgICAg
ICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nID0gMjAxMiwKKyAgICAgICBQcm9wX0Rp
c3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0Js
YWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9JbnQzMiA9
IDIwMTUsCisgICAgICAgUHJvcF9DYW1lcmFUb0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgPSAyMDE2
LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiA9IDIwMTcsCisgICAgICAgUHJvcF9E
aXNwbGF5R0NPZmZzZXRfRmxvYXQgPSAyMDE4LAorICAgICAgIFByb3BfRGlzcGxheUdDU2NhbGVf
RmxvYXQgPSAyMDE5LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgPSAyMDIw
LAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nID0gMjAyMSwKKyAgICAgICBQcm9w
X0xlbnNDZW50ZXJMZWZ0VV9GbG9hdCA9IDIwMjIsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVm
dFZfRmxvYXQgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCA9IDIw
MjQsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRWX0Zsb2F0ID0gMjAyNSwKKyAgICAgICBQ
cm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9IDIwMjYsCisgICAgICAgUHJvcF9D
YW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZp
cm13YXJlRGVzY3JpcHRpb25fU3RyaW5nID0gMjAyOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlGUEdB
VmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAgICAgIFByb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJz
aW9uX1VpbnQ2NCA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJzaW9uX1Vp
bnQ2NCA9IDIwMzEsCisgICAgICAgUHJvcF9BdWRpb0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAy
MDMyLAorICAgICAgIFByb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgPSAyMDMzLAor
ICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQg
PSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVz
X0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgPSAyMDM2
LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgPSAyMDM3LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNJbWFnZUhlaWdodF9JbnQzMiA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFn
ZU51bUNoYW5uZWxzX0ludDMyID0gMjA0MCwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlRGF0
YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIFByb3BfVXNlc0RyaXZlckRpcmVjdE1vZGVfQm9vbCA9
IDIwNDIsCisgICAgICAgUHJvcF9BdHRhY2hlZERldmljZUlkX1N0cmluZyA9IDMwMDAsCisgICAg
ICAgUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCA9IDMwMDEsCisgICAgICAgUHJvcF9BeGlz
MFR5cGVfSW50MzIgPSAzMDAyLAorICAgICAgIFByb3BfQXhpczFUeXBlX0ludDMyID0gMzAwMywK
KyAgICAgICBQcm9wX0F4aXMyVHlwZV9JbnQzMiA9IDMwMDQsCisgICAgICAgUHJvcF9BeGlzM1R5
cGVfSW50MzIgPSAzMDA1LAorICAgICAgIFByb3BfQXhpczRUeXBlX0ludDMyID0gMzAwNiwKKyAg
ICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiA9IDMwMDcsCisgICAgICAgUHJvcF9G
aWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ID0gNDAwMCwKKyAgICAgICBQcm9wX0ZpZWxkT2ZW
aWV3UmlnaHREZWdyZWVzX0Zsb2F0ID0gNDAwMSwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3VG9w
RGVncmVlc19GbG9hdCA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURlZ3Jl
ZXNfRmxvYXQgPSA0MDAzLAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNf
RmxvYXQgPSA0MDA0LAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxv
YXQgPSA0MDA1LAorICAgICAgIFByb3BfTW9kZUxhYmVsX1N0cmluZyA9IDQwMDYsCisgICAgICAg
UHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nID0gNTAwMCwKKyAgICAgICBQcm9wX05hbWVkSWNvblBh
dGhEZXZpY2VPZmZfU3RyaW5nID0gNTAwMSwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VTZWFyY2hpbmdfU3RyaW5nID0gNTAwMiwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VTZWFyY2hpbmdBbGVydF9TdHJpbmcgPSA1MDAzLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0
aERldmljZVJlYWR5X1N0cmluZyA9IDUwMDQsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlUmVhZHlBbGVydF9TdHJpbmcgPSA1MDA1LAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZU5vdFJlYWR5X1N0cmluZyA9IDUwMDYsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlU3RhbmRieV9TdHJpbmcgPSA1MDA3LAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZUFsZXJ0TG93X1N0cmluZyA9IDUwMDgsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9C
aW5hcnlfU3RhcnQgPSA1MTAwLAorICAgICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5
X0VuZCA9IDUxNTAsCisgICAgICAgUHJvcF9Vc2VyQ29uZmlnUGF0aF9TdHJpbmcgPSA2MDAwLAor
ICAgICAgIFByb3BfSW5zdGFsbFBhdGhfU3RyaW5nID0gNjAwMSwKKyAgICAgICBQcm9wX1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgUHJvcF9WZW5kb3JTcGVj
aWZpY19SZXNlcnZlZF9FbmQgPSAxMDk5OSwKK30KK3B1YmxpYyBlbnVtIEVUcmFja2VkUHJvcGVy
dHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgPSAwLAorICAgICAgIFRyYWNr
ZWRQcm9wX1dyb25nRGF0YVR5cGUgPSAxLAorICAgICAgIFRyYWNrZWRQcm9wX1dyb25nRGV2aWNl
Q2xhc3MgPSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsID0gMywKKyAgICAg
ICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgPSA0LAorICAgICAgIFRyYWNrZWRQcm9wX0lu
dmFsaWREZXZpY2UgPSA1LAorICAgICAgIFRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZl
ciA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlID0gNywK
KyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCA9IDgsCisgICAg
ICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwKKyAgICAgICBUcmFja2VkUHJvcF9Q
ZXJtaXNzaW9uRGVuaWVkID0gMTAsCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlv
biA9IDExLAorfQorcHVibGljIGVudW0gRVZSU3VibWl0RmxhZ3MKK3sKKyAgICAgICBTdWJtaXRf
RGVmYXVsdCA9IDAsCisgICAgICAgU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQg
PSAxLAorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDIsCisgICAgICAgU3VibWl0X1Jl
c2VydmVkID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUlN0YXRlCit7CisgICAgICAgVW5kZWZpbmVk
ID0gLTEsCisgICAgICAgT2ZmID0gMCwKKyAgICAgICBTZWFyY2hpbmcgPSAxLAorICAgICAgIFNl
YXJjaGluZ19BbGVydCA9IDIsCisgICAgICAgUmVhZHkgPSAzLAorICAgICAgIFJlYWR5X0FsZXJ0
ID0gNCwKKyAgICAgICBOb3RSZWFkeSA9IDUsCisgICAgICAgU3RhbmRieSA9IDYsCisgICAgICAg
UmVhZHlfQWxlcnRfTG93ID0gNywKK30KK3B1YmxpYyBlbnVtIEVWUkV2ZW50VHlwZQoreworICAg
ICAgIFZSRXZlbnRfTm9uZSA9IDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZh
dGVkID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkID0gMTAx
LAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgPSAxMDIsCisgICAgICAgVlJF
dmVudF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3RhcnRlZCA9IDEwMywKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCA9IDEwNCwKKyAgICAgICBW
UkV2ZW50X0lwZENoYW5nZWQgPSAxMDUsCisgICAgICAgVlJFdmVudF9FbnRlclN0YW5kYnlNb2Rl
ID0gMTA2LAorICAgICAgIFZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSA9IDEwNywKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCA9IDEwOCwKKyAgICAgICBWUkV2ZW50X1dh
dGNoZG9nV2FrZVVwUmVxdWVzdGVkID0gMTA5LAorICAgICAgIFZSRXZlbnRfTGVuc0Rpc3RvcnRp
b25DaGFuZ2VkID0gMTEwLAorICAgICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkID0gMTExLAor
ICAgICAgIFZSRXZlbnRfQnV0dG9uUHJlc3MgPSAyMDAsCisgICAgICAgVlJFdmVudF9CdXR0b25V
bnByZXNzID0gMjAxLAorICAgICAgIFZSRXZlbnRfQnV0dG9uVG91Y2ggPSAyMDIsCisgICAgICAg
VlJFdmVudF9CdXR0b25VbnRvdWNoID0gMjAzLAorICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlID0g
MzAwLAorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3duID0gMzAxLAorICAgICAgIFZSRXZl
bnRfTW91c2VCdXR0b25VcCA9IDMwMiwKKyAgICAgICBWUkV2ZW50X0ZvY3VzRW50ZXIgPSAzMDMs
CisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlID0gMzA0LAorICAgICAgIFZSRXZlbnRfU2Nyb2xs
ID0gMzA1LAorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlID0gMzA2LAorICAgICAgIFZSRXZl
bnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCA9IDMwNywKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXND
YXB0dXJlZCA9IDQwMCwKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCA9IDQwMSwK
KyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNMb3N0ID0gNDAyLAorICAgICAgIFZSRXZlbnRfU2Nl
bmVGb2N1c0dhaW5lZCA9IDQwMywKKyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFu
Z2VkID0gNDA0LAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQgPSA0MDUsCisgICAg
ICAgVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdlZCA9IDQwNiwKKyAgICAgICBWUkV2ZW50X1NjZW5l
QXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3LAorICAgICAgIFZSRXZl
bnRfSGlkZVJlbmRlck1vZGVscyA9IDQxMCwKKyAgICAgICBWUkV2ZW50X1Nob3dSZW5kZXJNb2Rl
bHMgPSA0MTEsCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gPSA1MDAsCisgICAgICAgVlJF
dmVudF9PdmVybGF5SGlkZGVuID0gNTAxLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZh
dGVkID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQgPSA1MDMsCisg
ICAgICAgVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNlbGVjdGVkID0gNTA0LAorICAgICAgIFZSRXZl
bnRfRGFzaGJvYXJkUmVxdWVzdGVkID0gNTA1LAorICAgICAgIFZSRXZlbnRfUmVzZXREYXNoYm9h
cmQgPSA1MDYsCisgICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCA9IDUwNywKKyAgICAgICBWUkV2
ZW50X0ltYWdlTG9hZGVkID0gNTA4LAorICAgICAgIFZSRXZlbnRfU2hvd0tleWJvYXJkID0gNTA5
LAorICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkID0gNTEwLAorICAgICAgIFZSRXZlbnRfT3Zl
cmxheUdhbWVwYWRGb2N1c0dhaW5lZCA9IDUxMSwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlHYW1l
cGFkRm9jdXNMb3N0ID0gNTEyLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVD
aGFuZ2VkID0gNTEzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25Eb3duID0g
NTE0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCA9IDUxNSwKKyAgICAg
ICBWUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgPSA1MTYsCisgICAgICAgVlJFdmVudF9JbWFn
ZUZhaWxlZCA9IDUxNywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkID0g
NTE4LAorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgPSA1MjAsCisgICAgICAgVlJF
dmVudF9TY3JlZW5zaG90VGFrZW4gPSA1MjEsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFp
bGVkID0gNTIyLAorICAgICAgIFZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkID0g
NTIzLAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQgPSA1MjQs
CisgICAgICAgVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCA9IDUyNSwKKyAg
ICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biA9IDYwMCwKKyAgICAgICBWUkV2ZW50X05v
dGlmaWNhdGlvbl9IaWRkZW4gPSA2MDEsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVn
aW5JbnRlcmFjdGlvbiA9IDYwMiwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95
ZWQgPSA2MDMsCisgICAgICAgVlJFdmVudF9RdWl0ID0gNzAwLAorICAgICAgIFZSRXZlbnRfUHJv
Y2Vzc1F1aXQgPSA3MDEsCisgICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ID0g
NzAyLAorICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCA9IDcwMywKKyAgICAgICBWUkV2
ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVE
YXRhSGFzQ2hhbmdlZCA9IDgwMCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFz
Q2hhbmdlZCA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdl
ZCA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4
MDMsCisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0ID0gODA0LAorICAgICAgIFZS
RXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODIwLAorICAgICAgIFZSRXZlbnRfQmFj
a2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkID0gODUwLAorICAgICAgIFZSRXZlbnRfQ2FtZXJhU2V0
dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MSwKKyAgICAgICBWUkV2ZW50X1JlcHJvamVjdGlvblNldHRp
bmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAgIFZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZl
Q2hhbmdlZCA9IDg1MywKKyAgICAgICBWUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZlQ2hh
bmdlZCA9IDg1NCwKKyAgICAgICBWUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1
NSwKKyAgICAgICBWUkV2ZW50X1N0YXR1c1VwZGF0ZSA9IDkwMCwKKyAgICAgICBWUkV2ZW50X01D
SW1hZ2VVcGRhdGVkID0gMTAwMCwKKyAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRl
ZCA9IDExMDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkID0gMTEwMSwK
KyAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2xvc2VkID0gMTIwMCwKKyAgICAgICBWUkV2ZW50X0tl
eWJvYXJkQ2hhcklucHV0ID0gMTIwMSwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkRG9uZSA9IDEy
MDIsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkID0gMTMwMCwK
KyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgPSAxMzAxLAorICAg
ICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3RhcnRlZCA9IDEzMDIsCisg
ICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkID0gMTMwMywKKyAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkID0gMTMwNCwKKyAgICAgICBWUkV2ZW50X0FwcGxp
Y2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKKyAgICAgICBWUkV2
ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gPSAxNDAwLAorICAgICAgIFZSRXZlbnRf
Q29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gPSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29t
cG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiA9IDE0MTEsCisgICAgICAgVlJFdmVudF9UcmFj
a2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tl
ZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gPSAxNTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9QYXVzZVZpZGVvU3RyZWFtID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1l
cmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9FZGl0aW5nU3VyZmFjZSA9IDE1NTAsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3Rf
RW5hYmxlQ2FwdHVyZSA9IDE2MDAsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRGlz
YWJsZUNhcHR1cmUgPSAxNjAxLAorICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVs
aXR5TGV2ZWwgPSAxNjAyLAorICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfQ2xvc2VkID0g
MTY1MCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAw
MDAsCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgPSAxOTk5OSwK
K30KK3B1YmxpYyBlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7CisgICAgICAga19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9JZGxlID0gMCwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlv
biA9IDEsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25fVGlt
ZW91dCA9IDIsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywKK30K
K3B1YmxpYyBlbnVtIEVWUkJ1dHRvbklkCit7CisgICAgICAga19FQnV0dG9uX1N5c3RlbSA9IDAs
CisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSA9IDEsCisgICAgICAga19FQnV0dG9u
X0dyaXAgPSAyLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX0xlZnQgPSAzLAorICAgICAgIGtfRUJ1
dHRvbl9EUGFkX1VwID0gNCwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9SaWdodCA9IDUsCisgICAg
ICAga19FQnV0dG9uX0RQYWRfRG93biA9IDYsCisgICAgICAga19FQnV0dG9uX0EgPSA3LAorICAg
ICAgIGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgPSAzMSwKKyAgICAgICBrX0VCdXR0b25fQXhp
czAgPSAzMiwKKyAgICAgICBrX0VCdXR0b25fQXhpczEgPSAzMywKKyAgICAgICBrX0VCdXR0b25f
QXhpczIgPSAzNCwKKyAgICAgICBrX0VCdXR0b25fQXhpczMgPSAzNSwKKyAgICAgICBrX0VCdXR0
b25fQXhpczQgPSAzNiwKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCA9IDMyLAor
ICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgPSAzMywKKyAgICAgICBrX0VCdXR0b25f
RGFzaGJvYXJkX0JhY2sgPSAyLAorICAgICAgIGtfRUJ1dHRvbl9NYXggPSA2NCwKK30KK3B1Ymxp
YyBlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgTGVmdCA9IDEsCisgICAgICAgUmlnaHQg
PSAyLAorICAgICAgIE1pZGRsZSA9IDQsCit9CitwdWJsaWMgZW51bSBFSGlkZGVuQXJlYU1lc2hU
eXBlCit7CisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAorICAgICAgIGtf
ZUhpZGRlbkFyZWFNZXNoX0ludmVyc2UgPSAxLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xp
bmVMb29wID0gMiwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9NYXggPSAzLAorfQorcHVibGlj
IGVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAga19lQ29udHJvbGxlckF4aXNf
Tm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJhY2tQYWQgPSAxLAorICAgICAg
IGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBrX2VDb250cm9sbGVyQXhp
c19UcmlnZ2VyID0gMywKK30KK3B1YmxpYyBlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5
cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAorICAgICAg
IENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9CitwdWJsaWMgZW51bSBFQ29s
bGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lO
TkVSID0gMCwKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSA9IDEs
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTID0gMiwKKyAgICAgICBDT0xM
SVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VEID0gMywKKyAgICAgICBDT0xMSVNJT05fQk9VTkRT
X1NUWUxFX05PTkUgPSA0LAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQgPSA1
LAorfQorcHVibGljIGVudW0gRVZST3ZlcmxheUVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisg
ICAgICAgVW5rbm93bk92ZXJsYXkgPSAxMCwKKyAgICAgICBJbnZhbGlkSGFuZGxlID0gMTEsCisg
ICAgICAgUGVybWlzc2lvbkRlbmllZCA9IDEyLAorICAgICAgIE92ZXJsYXlMaW1pdEV4Y2VlZGVk
ID0gMTMsCisgICAgICAgV3JvbmdWaXNpYmlsaXR5VHlwZSA9IDE0LAorICAgICAgIEtleVRvb0xv
bmcgPSAxNSwKKyAgICAgICBOYW1lVG9vTG9uZyA9IDE2LAorICAgICAgIEtleUluVXNlID0gMTcs
CisgICAgICAgV3JvbmdUcmFuc2Zvcm1UeXBlID0gMTgsCisgICAgICAgSW52YWxpZFRyYWNrZWRE
ZXZpY2UgPSAxOSwKKyAgICAgICBJbnZhbGlkUGFyYW1ldGVyID0gMjAsCisgICAgICAgVGh1bWJu
YWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgQXJyYXlUb29TbWFsbCA9IDIyLAorICAg
ICAgIFJlcXVlc3RGYWlsZWQgPSAyMywKKyAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDI0LAorICAg
ICAgIFVuYWJsZVRvTG9hZEZpbGUgPSAyNSwKKyAgICAgICBLZXlib2FyZEFscmVhZHlJblVzZSA9
IDI2LAorICAgICAgIE5vTmVpZ2hib3IgPSAyNywKKyAgICAgICBUb29NYW55TWFza1ByaW1pdGl2
ZXMgPSAyOSwKKyAgICAgICBCYWRNYXNrUHJpbWl0aXZlID0gMzAsCit9CitwdWJsaWMgZW51bSBF
VlJBcHBsaWNhdGlvblR5cGUKK3sKKyAgICAgICBWUkFwcGxpY2F0aW9uX090aGVyID0gMCwKKyAg
ICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lID0gMSwKKyAgICAgICBWUkFwcGxpY2F0aW9uX092ZXJs
YXkgPSAyLAorICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsCisgICAgICAgVlJB
cHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciA9
IDUsCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwKKyAgICAgICBWUkFw
cGxpY2F0aW9uX01heCA9IDcsCit9CitwdWJsaWMgZW51bSBFVlJGaXJtd2FyZUVycm9yCit7Cisg
ICAgICAgTm9uZSA9IDAsCisgICAgICAgU3VjY2VzcyA9IDEsCisgICAgICAgRmFpbCA9IDIsCit9
CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgoreworICAgICAgIE9LID0gMCwKKyAg
ICAgICBJbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisgICAgICAgTm90aWZpY2F0aW9uUXVl
dWVGdWxsID0gMTAxLAorICAgICAgIEludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAg
IFN5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAorfQorcHVibGljIGVudW0g
RVZSSW5pdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgVW5rbm93biA9IDEsCisg
ICAgICAgSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDEwMCwKKyAgICAgICBJbml0X0luc3Rh
bGxhdGlvbkNvcnJ1cHQgPSAxMDEsCisgICAgICAgSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kID0g
MTAyLAorICAgICAgIEluaXRfRmlsZU5vdEZvdW5kID0gMTAzLAorICAgICAgIEluaXRfRmFjdG9y
eU5vdEZvdW5kID0gMTA0LAorICAgICAgIEluaXRfSW50ZXJmYWNlTm90Rm91bmQgPSAxMDUsCisg
ICAgICAgSW5pdF9JbnZhbGlkSW50ZXJmYWNlID0gMTA2LAorICAgICAgIEluaXRfVXNlckNvbmZp
Z0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisgICAgICAgSW5pdF9IbWROb3RGb3VuZCA9IDEwOCwK
KyAgICAgICBJbml0X05vdEluaXRpYWxpemVkID0gMTA5LAorICAgICAgIEluaXRfUGF0aFJlZ2lz
dHJ5Tm90Rm91bmQgPSAxMTAsCisgICAgICAgSW5pdF9Ob0NvbmZpZ1BhdGggPSAxMTEsCisgICAg
ICAgSW5pdF9Ob0xvZ1BhdGggPSAxMTIsCisgICAgICAgSW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0
YWJsZSA9IDExMywKKyAgICAgICBJbml0X0FwcEluZm9Jbml0RmFpbGVkID0gMTE0LAorICAgICAg
IEluaXRfUmV0cnkgPSAxMTUsCisgICAgICAgSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgPSAxMTYs
CisgICAgICAgSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nID0gMTE3LAorICAgICAgIEluaXRfU2V0
dGluZ3NJbml0RmFpbGVkID0gMTE4LAorICAgICAgIEluaXRfU2h1dHRpbmdEb3duID0gMTE5LAor
ICAgICAgIEluaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisgICAgICAgSW5pdF9Ob1NlcnZlckZv
ckJhY2tncm91bmRBcHAgPSAxMjEsCisgICAgICAgSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9z
aXRvciA9IDEyMiwKKyAgICAgICBJbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgPSAxMjMs
CisgICAgICAgSW5pdF9JbnRlcm5hbCA9IDEyNCwKKyAgICAgICBJbml0X0htZERyaXZlcklkSXNO
b25lID0gMTI1LAorICAgICAgIEluaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCA9IDEyNiwK
KyAgICAgICBJbml0X1ZSTW9uaXRvck5vdEZvdW5kID0gMTI3LAorICAgICAgIEluaXRfVlJNb25p
dG9yU3RhcnR1cEZhaWxlZCA9IDEyOCwKKyAgICAgICBJbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RT
dXBwb3J0ZWQgPSAxMjksCisgICAgICAgSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlID0gMTMw
LAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgPSAxMzEsCisgICAgICAg
SW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEzMiwKKyAgICAgICBJbml0X1ZSRGFz
aGJvYXJkTm90Rm91bmQgPSAxMzMsCisgICAgICAgSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWls
ZWQgPSAxMzQsCisgICAgICAgRHJpdmVyX0ZhaWxlZCA9IDIwMCwKKyAgICAgICBEcml2ZXJfVW5r
bm93biA9IDIwMSwKKyAgICAgICBEcml2ZXJfSG1kVW5rbm93biA9IDIwMiwKKyAgICAgICBEcml2
ZXJfTm90TG9hZGVkID0gMjAzLAorICAgICAgIERyaXZlcl9SdW50aW1lT3V0T2ZEYXRlID0gMjA0
LAorICAgICAgIERyaXZlcl9IbWRJblVzZSA9IDIwNSwKKyAgICAgICBEcml2ZXJfTm90Q2FsaWJy
YXRlZCA9IDIwNiwKKyAgICAgICBEcml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkID0gMjA3LAorICAg
ICAgIERyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgPSAyMDgsCisgICAgICAgRHJpdmVyX1RyYWNr
ZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIERyaXZlcl9IbWREcml2ZXJJ
ZE91dE9mQm91bmRzID0gMjExLAorICAgICAgIERyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQgPSAy
MTIsCisgICAgICAgSVBDX1NlcnZlckluaXRGYWlsZWQgPSAzMDAsCisgICAgICAgSVBDX0Nvbm5l
Y3RGYWlsZWQgPSAzMDEsCisgICAgICAgSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCA9IDMwMiwK
KyAgICAgICBJUENfQ29tcG9zaXRvckluaXRGYWlsZWQgPSAzMDMsCisgICAgICAgSVBDX011dGV4
SW5pdEZhaWxlZCA9IDMwNCwKKyAgICAgICBJUENfRmFpbGVkID0gMzA1LAorICAgICAgIElQQ19D
b21wb3NpdG9yQ29ubmVjdEZhaWxlZCA9IDMwNiwKKyAgICAgICBJUENfQ29tcG9zaXRvckludmFs
aWRDb25uZWN0UmVzcG9uc2UgPSAzMDcsCisgICAgICAgSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11
bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCisgICAgICAgQ29tcG9zaXRvcl9GYWlsZWQgPSA0MDAsCisg
ICAgICAgQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQgPSA0MDEsCisgICAgICAgQ29t
cG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlID0gNDAyLAorICAgICAgIENvbXBvc2l0b3Jf
T3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAgICAgQ29tcG9zaXRvcl9TY3JlZW5zaG90c0lu
aXRGYWlsZWQgPSA0MDQsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9P
Y3VsdXNSdW50aW1lID0gMTAwMCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50
T3BlbkRldmljZSA9IDExMDEsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9SZXF1ZXN0Q29uZmlnU3RhcnQgPSAxMTAyLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZv
dW5kX05vU3RvcmVkQ29uZmlnID0gMTEwMywKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29CaWcgPSAxMTA0LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nv
bmZpZ1Rvb1NtYWxsID0gMTEwNSwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFi
bGVUb0luaXRaTGliID0gMTEwNiwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50
UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCA9IDExMDgsCisgICAgICAgVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ID0gMTEwOSwKKyAgICAgICBWZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCA9IDExMTAsCisgICAg
ICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgPSAxMTExLAor
ICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgPSAxMTEyLAorICAg
ICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrID0gMTEx
MywKKyAgICAgICBTdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5kID0gMjAwMCwKK30KK3B1
YmxpYyBlbnVtIEVWUlNjcmVlbnNob3RUeXBlCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAg
TW9ubyA9IDEsCisgICAgICAgU3RlcmVvID0gMiwKKyAgICAgICBDdWJlbWFwID0gMywKKyAgICAg
ICBNb25vUGFub3JhbWEgPSA0LAorICAgICAgIFN0ZXJlb1Bhbm9yYW1hID0gNSwKK30KK3B1Ymxp
YyBlbnVtIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcworeworICAgICAgIFByZXZpZXcg
PSAwLAorICAgICAgIFZSID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cgoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIE9wZXJhdGlvbkZhaWxlZCA9IDEwMCwKKyAg
ICAgICBJbnZhbGlkSGFuZGxlID0gMTAxLAorICAgICAgIEludmFsaWRGcmFtZUhlYWRlclZlcnNp
b24gPSAxMDIsCisgICAgICAgT3V0T2ZIYW5kbGVzID0gMTAzLAorICAgICAgIElQQ0ZhaWx1cmUg
PSAxMDQsCisgICAgICAgTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSA9IDEwNSwKKyAgICAgICBT
aGFyZWRNZW1vcnlGYWlsdXJlID0gMTA2LAorICAgICAgIEZyYW1lQnVmZmVyaW5nRmFpbHVyZSA9
IDEwNywKKyAgICAgICBTdHJlYW1TZXR1cEZhaWx1cmUgPSAxMDgsCisgICAgICAgSW52YWxpZEdM
VGV4dHVyZUlkID0gMTA5LAorICAgICAgIEludmFsaWRTaGFyZWRUZXh0dXJlSGFuZGxlID0gMTEw
LAorICAgICAgIEZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgPSAxMTEsCisgICAgICAgU2hhcmVkVGV4
dHVyZUZhaWx1cmUgPSAxMTIsCisgICAgICAgTm9GcmFtZUF2YWlsYWJsZSA9IDExMywKKyAgICAg
ICBJbnZhbGlkQXJndW1lbnQgPSAxMTQsCisgICAgICAgSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSA9
IDExNSwKK30KK3B1YmxpYyBlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAg
ICBEaXN0b3J0ZWQgPSAwLAorICAgICAgIFVuZGlzdG9ydGVkID0gMSwKKyAgICAgICBNYXhpbXVt
VW5kaXN0b3J0ZWQgPSAyLAorICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMgPSAzLAorfQor
cHVibGljIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAg
ICAgIEFwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAsCisgICAgICAgTm9NYW5pZmVzdCA9IDEwMSwK
KyAgICAgICBOb0FwcGxpY2F0aW9uID0gMTAyLAorICAgICAgIEludmFsaWRJbmRleCA9IDEwMywK
KyAgICAgICBVbmtub3duQXBwbGljYXRpb24gPSAxMDQsCisgICAgICAgSVBDRmFpbGVkID0gMTA1
LAorICAgICAgIEFwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsCisgICAgICAgSW52YWxp
ZE1hbmlmZXN0ID0gMTA3LAorICAgICAgIEludmFsaWRBcHBsaWNhdGlvbiA9IDEwOCwKKyAgICAg
ICBMYXVuY2hGYWlsZWQgPSAxMDksCisgICAgICAgQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcg
PSAxMTAsCisgICAgICAgTGF1bmNoSW5Qcm9ncmVzcyA9IDExMSwKKyAgICAgICBPbGRBcHBsaWNh
dGlvblF1aXR0aW5nID0gMTEyLAorICAgICAgIFRyYW5zaXRpb25BYm9ydGVkID0gMTEzLAorICAg
ICAgIElzVGVtcGxhdGUgPSAxMTQsCisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAyMDAsCisgICAg
ICAgUHJvcGVydHlOb3RTZXQgPSAyMDEsCisgICAgICAgVW5rbm93blByb3BlcnR5ID0gMjAyLAor
ICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCit9CitwdWJsaWMgZW51bSBFVlJBcHBsaWNh
dGlvblByb3BlcnR5Cit7CisgICAgICAgTmFtZV9TdHJpbmcgPSAwLAorICAgICAgIExhdW5jaFR5
cGVfU3RyaW5nID0gMTEsCisgICAgICAgV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgPSAxMiwKKyAg
ICAgICBCaW5hcnlQYXRoX1N0cmluZyA9IDEzLAorICAgICAgIEFyZ3VtZW50c19TdHJpbmcgPSAx
NCwKKyAgICAgICBVUkxfU3RyaW5nID0gMTUsCisgICAgICAgRGVzY3JpcHRpb25fU3RyaW5nID0g
NTAsCisgICAgICAgTmV3c1VSTF9TdHJpbmcgPSA1MSwKKyAgICAgICBJbWFnZVBhdGhfU3RyaW5n
ID0gNTIsCisgICAgICAgU291cmNlX1N0cmluZyA9IDUzLAorICAgICAgIElzRGFzaGJvYXJkT3Zl
cmxheV9Cb29sID0gNjAsCisgICAgICAgSXNUZW1wbGF0ZV9Cb29sID0gNjEsCisgICAgICAgSXNJ
bnN0YW5jZWRfQm9vbCA9IDYyLAorICAgICAgIElzSW50ZXJuYWxfQm9vbCA9IDYzLAorICAgICAg
IExhc3RMYXVuY2hUaW1lX1VpbnQ2NCA9IDcwLAorfQorcHVibGljIGVudW0gRVZSQXBwbGljYXRp
b25UcmFuc2l0aW9uU3RhdGUKK3sKKyAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9Ob25l
ID0gMCwKKyAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCA9IDEw
LAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5j
aCA9IDExLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05ld0FwcExhdW5jaGVkID0g
MjAsCit9CitwdWJsaWMgZW51bSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlCit7CisgICAgICAg
T0sgPSAxLAorICAgICAgIFdhcm5pbmcgPSAxMDAsCisgICAgICAgV2FybmluZ19CYXNlU3RhdGlv
bk1heUhhdmVNb3ZlZCA9IDEwMSwKKyAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3ZlZCA9
IDEwMiwKKyAgICAgICBXYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsCisgICAgICAg
RXJyb3IgPSAyMDAsCisgICAgICAgRXJyb3JfQmFzZVN0YXRpb25VbmluaXRpYWxpemVkID0gMjAx
LAorICAgICAgIEVycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIsCisgICAgICAgRXJyb3Jf
UGxheUFyZWFJbnZhbGlkID0gMjAzLAorICAgICAgIEVycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFs
aWQgPSAyMDQsCit9CitwdWJsaWMgZW51bSBFQ2hhcGVyb25lQ29uZmlnRmlsZQoreworICAgICAg
IExpdmUgPSAxLAorICAgICAgIFRlbXAgPSAyLAorfQorcHVibGljIGVudW0gRUNoYXBlcm9uZUlt
cG9ydEZsYWdzCit7CisgICAgICAgRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0gMSwKK30K
K3B1YmxpYyBlbnVtIEVWUkNvbXBvc2l0b3JFcnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAg
ICAgIFJlcXVlc3RGYWlsZWQgPSAxLAorICAgICAgIEluY29tcGF0aWJsZVZlcnNpb24gPSAxMDAs
CisgICAgICAgRG9Ob3RIYXZlRm9jdXMgPSAxMDEsCisgICAgICAgSW52YWxpZFRleHR1cmUgPSAx
MDIsCisgICAgICAgSXNOb3RTY2VuZUFwcGxpY2F0aW9uID0gMTAzLAorICAgICAgIFRleHR1cmVJ
c09uV3JvbmdEZXZpY2UgPSAxMDQsCisgICAgICAgVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1h
dCA9IDEwNSwKKyAgICAgICBTaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCA9IDEwNiwKKyAgICAg
ICBJbmRleE91dE9mUmFuZ2UgPSAxMDcsCisgICAgICAgQWxyZWFkeVN1Ym1pdHRlZCA9IDEwOCwK
K30KK3B1YmxpYyBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9kCit7CisgICAgICAgTm9uZSA9IDAs
CisgICAgICAgTW91c2UgPSAxLAorfQorcHVibGljIGVudW0gVlJPdmVybGF5VHJhbnNmb3JtVHlw
ZQoreworICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9BYnNvbHV0ZSA9IDAsCisgICAgICAgVlJP
dmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSA9IDEsCisgICAgICAgVlJPdmVy
bGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgPSAyLAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9y
bV9UcmFja2VkQ29tcG9uZW50ID0gMywKK30KK3B1YmxpYyBlbnVtIFZST3ZlcmxheUZsYWdzCit7
CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgQ3VydmVkID0gMSwKKyAgICAgICBSR1NTNFggPSAy
LAorICAgICAgIE5vRGFzaGJvYXJkVGFiID0gMywKKyAgICAgICBBY2NlcHRzR2FtZXBhZEV2ZW50
cyA9IDQsCisgICAgICAgU2hvd0dhbWVwYWRGb2N1cyA9IDUsCisgICAgICAgU2VuZFZSU2Nyb2xs
RXZlbnRzID0gNiwKKyAgICAgICBTZW5kVlJUb3VjaHBhZEV2ZW50cyA9IDcsCisgICAgICAgU2hv
d1RvdWNoUGFkU2Nyb2xsV2hlZWwgPSA4LAorICAgICAgIFRyYW5zZmVyT3duZXJzaGlwVG9JbnRl
cm5hbFByb2Nlc3MgPSA5LAorICAgICAgIFNpZGVCeVNpZGVfUGFyYWxsZWwgPSAxMCwKKyAgICAg
ICBTaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwKKyAgICAgICBQYW5vcmFtYSA9IDEyLAorICAgICAg
IFN0ZXJlb1Bhbm9yYW1hID0gMTMsCisgICAgICAgU29ydFdpdGhOb25TY2VuZU92ZXJsYXlzID0g
MTQsCisgICAgICAgVmlzaWJsZUluRGFzaGJvYXJkID0gMTUsCit9CitwdWJsaWMgZW51bSBWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2UKK3sKKyAgICAgICBCdXR0b25QcmVzc18wID0gMCwKKyAgICAg
ICBCdXR0b25QcmVzc18xID0gMSwKKyAgICAgICBCdXR0b25QcmVzc18yID0gMiwKKyAgICAgICBC
dXR0b25QcmVzc18zID0gMywKKyAgICAgICBDb3VsZG50RmluZFN5c3RlbU92ZXJsYXkgPSA0LAor
ICAgICAgIENvdWxkbnRGaW5kT3JDcmVhdGVDbGllbnRPdmVybGF5ID0gNSwKKyAgICAgICBBcHBs
aWNhdGlvblF1aXQgPSA2LAorfQorcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRNb2RlCit7
CisgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgIGtfRUdh
bWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAorICAgICAgIGtfRUdhbWVwYWRUZXh0SW5w
dXRNb2RlU3VibWl0ID0gMiwKK30KK3B1YmxpYyBlbnVtIEVHYW1lcGFkVGV4dElucHV0TGluZU1v
ZGUKK3sKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwK
KyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMSwKK30K
K3B1YmxpYyBlbnVtIEVPdmVybGF5RGlyZWN0aW9uCit7CisgICAgICAgVXAgPSAwLAorICAgICAg
IERvd24gPSAxLAorICAgICAgIExlZnQgPSAyLAorICAgICAgIFJpZ2h0ID0gMywKKyAgICAgICBD
b3VudCA9IDQsCit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZVR5cGUKK3sKKyAgICAgICBPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9SZWN0
YW5nbGUgPSAwLAorICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX0NpcmNs
ZSA9IDEsCit9CitwdWJsaWMgZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7CisgICAgICAgTm9u
ZSA9IDAsCisgICAgICAgTG9hZGluZyA9IDEwMCwKKyAgICAgICBOb3RTdXBwb3J0ZWQgPSAyMDAs
CisgICAgICAgSW52YWxpZEFyZyA9IDMwMCwKKyAgICAgICBJbnZhbGlkTW9kZWwgPSAzMDEsCisg
ICAgICAgTm9TaGFwZXMgPSAzMDIsCisgICAgICAgTXVsdGlwbGVTaGFwZXMgPSAzMDMsCisgICAg
ICAgVG9vTWFueVZlcnRpY2VzID0gMzA0LAorICAgICAgIE11bHRpcGxlVGV4dHVyZXMgPSAzMDUs
CisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAzMDYsCisgICAgICAgTm90RW5vdWdoTm9ybWFscyA9
IDMwNywKKyAgICAgICBOb3RFbm91Z2hUZXhDb29yZHMgPSAzMDgsCisgICAgICAgSW52YWxpZFRl
eHR1cmUgPSA0MDAsCit9CitwdWJsaWMgZW51bSBFVlJDb21wb25lbnRQcm9wZXJ0eQoreworICAg
ICAgIElzU3RhdGljID0gMSwKKyAgICAgICBJc1Zpc2libGUgPSAyLAorICAgICAgIElzVG91Y2hl
ZCA9IDQsCisgICAgICAgSXNQcmVzc2VkID0gOCwKKyAgICAgICBJc1Njcm9sbGVkID0gMTYsCit9
CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25UeXBlCit7CisgICAgICAgVHJhbnNpZW50ID0g
MCwKKyAgICAgICBQZXJzaXN0ZW50ID0gMSwKKyAgICAgICBUcmFuc2llbnRfU3lzdGVtV2l0aFVz
ZXJWYWx1ZSA9IDIsCit9CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQoreworICAg
ICAgIE5vbmUgPSAwLAorICAgICAgIEFwcGxpY2F0aW9uID0gMTAwLAorICAgICAgIENvbnRhY3Rf
RGlzYWJsZWQgPSAyMDAsCisgICAgICAgQ29udGFjdF9FbmFibGVkID0gMjAxLAorICAgICAgIENv
bnRhY3RfQWN0aXZlID0gMjAyLAorfQorcHVibGljIGVudW0gRVZSU2V0dGluZ3NFcnJvcgorewor
ICAgICAgIE5vbmUgPSAwLAorICAgICAgIElQQ0ZhaWxlZCA9IDEsCisgICAgICAgV3JpdGVGYWls
ZWQgPSAyLAorICAgICAgIFJlYWRGYWlsZWQgPSAzLAorICAgICAgIEpzb25QYXJzZUZhaWxlZCA9
IDQsCisgICAgICAgVW5zZXRTZXR0aW5nSGFzTm9EZWZhdWx0ID0gNSwKK30KK3B1YmxpYyBlbnVt
IEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIFJlcXVlc3RG
YWlsZWQgPSAxLAorICAgICAgIEluY29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgTm90
Rm91bmQgPSAxMDEsCisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAxMDIsCisgICAgICAgU2NyZWVu
c2hvdEFscmVhZHlJblByb2dyZXNzID0gMTA4LAorfQorCitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuRXhwbGljaXQpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRGF0YV90Cit7CisgICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOworICAgICAg
IFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7
CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Nb3VzZV90IG1vdXNlOwor
ICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOwor
ICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUHJvY2Vzc190IHByb2Nlc3M7
CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBu
b3RpZmljYXRpb247CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9PdmVy
bGF5X3Qgb3ZlcmxheTsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1N0
YXR1c190IHN0YXR1czsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0lw
ZF90IGlwZDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0NoYXBlcm9u
ZV90IGNoYXBlcm9uZTsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Bl
cmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVzdDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCld
IHB1YmxpYyBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAgICBbRmll
bGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRa
ZXJvUG9zZVJlc2V0OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2Ny
ZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJF
dmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0
aW9uTGF1bmNoOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfRWRpdGlu
Z0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBb
RmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7IC8vIFRo
aXMgaGFzIHRvIGJlIGF0IHRoZSBlbmQgZHVlIHRvIGEgbW9ubyBidWcKK30KKworCitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90Cit7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBw
dWJsaWMgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1fUmVjdGFuZ2xlOworICAgICAgIFtG
aWVsZE9mZnNldCgwKV0gcHVibGljIEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsK
K30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbTA7IC8vZmxvYXRbM11bNF0K
KyAgICAgICBwdWJsaWMgZmxvYXQgbTE7CisgICAgICAgcHVibGljIGZsb2F0IG0yOworICAgICAg
IHB1YmxpYyBmbG9hdCBtMzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTQ7CisgICAgICAgcHVibGlj
IGZsb2F0IG01OworICAgICAgIHB1YmxpYyBmbG9hdCBtNjsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bTc7CisgICAgICAgcHVibGljIGZsb2F0IG04OworICAgICAgIHB1YmxpYyBmbG9hdCBtOTsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgbTEwOworICAgICAgIHB1YmxpYyBmbG9hdCBtMTE7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kTWF0cml4
NDRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFs0XVs0XQorICAgICAgIHB1
YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTI7CisgICAgICAgcHVibGljIGZs
b2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTU7
CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAgICAgIHB1YmxpYyBmbG9hdCBtNzsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVibGljIGZsb2F0IG05OworICAgICAgIHB1Ymxp
YyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZsb2F0IG0xMTsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbTEyOworICAgICAgIHB1YmxpYyBmbG9hdCBtMTM7CisgICAgICAgcHVibGljIGZsb2F0IG0x
NDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTE1OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFZlY3RvcjNfdAoreworICAgICAgIHB1Ymxp
YyBmbG9hdCB2MDsgLy9mbG9hdFszXQorICAgICAgIHB1YmxpYyBmbG9hdCB2MTsKKyAgICAgICBw
dWJsaWMgZmxvYXQgdjI7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IHYwOyAv
L2Zsb2F0WzRdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworICAgICAgIHB1YmxpYyBmbG9hdCB2
MjsKKyAgICAgICBwdWJsaWMgZmxvYXQgdjM7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM2RfdAoreworICAgICAgIHB1Ymxp
YyBkb3VibGUgdjA7IC8vZG91YmxlWzNdCisgICAgICAgcHVibGljIGRvdWJsZSB2MTsKKyAgICAg
ICBwdWJsaWMgZG91YmxlIHYyOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB2
MDsgLy9mbG9hdFsyXQorICAgICAgIHB1YmxpYyBmbG9hdCB2MTsKK30KK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sK
KyAgICAgICBwdWJsaWMgZG91YmxlIHc7CisgICAgICAgcHVibGljIGRvdWJsZSB4OworICAgICAg
IHB1YmxpYyBkb3VibGUgeTsKKyAgICAgICBwdWJsaWMgZG91YmxlIHo7Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kQ29sb3JfdAorewor
ICAgICAgIHB1YmxpYyBmbG9hdCByOworICAgICAgIHB1YmxpYyBmbG9hdCBnOworICAgICAgIHB1
YmxpYyBmbG9hdCBiOworICAgICAgIHB1YmxpYyBmbG9hdCBhOworfQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YWRfdAoreworICAgICAg
IHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMwOyAvL0htZFZlY3RvcjNfdFs0XQorICAgICAg
IHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMxOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3Iz
X3QgdkNvcm5lcnMyOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMzOworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFJl
Y3QyX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIHB1
YmxpYyBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190Cit7
CisgICAgICAgcHVibGljIGZsb2F0IHJmUmVkMDsgLy9mbG9hdFsyXQorICAgICAgIHB1YmxpYyBm
bG9hdCByZlJlZDE7CisgICAgICAgcHVibGljIGZsb2F0IHJmR3JlZW4wOyAvL2Zsb2F0WzJdCisg
ICAgICAgcHVibGljIGZsb2F0IHJmR3JlZW4xOworICAgICAgIHB1YmxpYyBmbG9hdCByZkJsdWUw
OyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTE7Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVGV4dHVyZV90Cit7Cisg
ICAgICAgcHVibGljIEludFB0ciBoYW5kbGU7IC8vIHZvaWQgKgorICAgICAgIHB1YmxpYyBFVGV4
dHVyZVR5cGUgZVR5cGU7CisgICAgICAgcHVibGljIEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFRy
YWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBtRGV2aWNl
VG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlZlbG9jaXR5
OworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsKKyAgICAgICBw
dWJsaWMgRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJQb3NlSXNWYWxpZDsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJE
ZXZpY2VJc0Nvbm5lY3RlZDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIHB1YmxpYyBmbG9h
dCB1TWluOworICAgICAgIHB1YmxpYyBmbG9hdCB2TWluOworICAgICAgIHB1YmxpYyBmbG9hdCB1
TWF4OworICAgICAgIHB1YmxpYyBmbG9hdCB2TWF4OworfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFfdAorewor
ICAgICAgIHB1YmxpYyB1bG9uZyBtX25JbWFnZTsKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcERl
dmljZTsgLy8gc3RydWN0IFZrRGV2aWNlX1QgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUGh5
c2ljYWxEZXZpY2U7IC8vIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKgorICAgICAgIHB1Ymxp
YyBJbnRQdHIgbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0luc3RhbmNlX1QgKgorICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wUXVldWU7IC8vIHN0cnVjdCBWa1F1ZXVlX1QgKgorICAgICAgIHB1Ymxp
YyB1aW50IG1fblF1ZXVlRmFtaWx5SW5kZXg7CisgICAgICAgcHVibGljIHVpbnQgbV9uV2lkdGg7
CisgICAgICAgcHVibGljIHVpbnQgbV9uSGVpZ2h0OworICAgICAgIHB1YmxpYyB1aW50IG1fbkZv
cm1hdDsKKyAgICAgICBwdWJsaWMgdWludCBtX25TYW1wbGVDb3VudDsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBEM0QxMlRleHR1cmVEYXRh
X3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFJlc291cmNlOyAvLyBzdHJ1Y3QgSUQzRDEy
UmVzb3VyY2UgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wQ29tbWFuZFF1ZXVlOyAvLyBzdHJ1
Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoKKyAgICAgICBwdWJsaWMgdWludCBtX25Ob2RlTWFzazsK
K30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBW
UkV2ZW50X0NvbnRyb2xsZXJfdAoreworICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50
X01vdXNlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgeDsKKyAgICAgICBwdWJsaWMgZmxvYXQg
eTsKKyAgICAgICBwdWJsaWMgdWludCBidXR0b247Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAoreworICAgICAg
IHB1YmxpYyBmbG9hdCB4ZGVsdGE7CisgICAgICAgcHVibGljIGZsb2F0IHlkZWx0YTsKKyAgICAg
ICBwdWJsaWMgdWludCByZXBlYXRDb3VudDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92ZV90Cit7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBiRmlu
Z2VyRG93bjsKKyAgICAgICBwdWJsaWMgZmxvYXQgZmxTZWNvbmRzRmluZ2VyRG93bjsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAgIHB1YmxpYyBmbG9hdCBmVmFsdWVZ
Rmlyc3Q7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgcHVibGljIGZs
b2F0IGZWYWx1ZVlSYXc7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHB1YmxpYyB1
bG9uZyB1bFVzZXJWYWx1ZTsKKyAgICAgICBwdWJsaWMgdWludCBub3RpZmljYXRpb25JZDsKK30K
K1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2
ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHB1YmxpYyB1aW50IHBpZDsKKyAgICAgICBwdWJsaWMg
dWludCBvbGRQaWQ7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAg
ICBwdWJsaWMgYm9vbCBiRm9yY2VkOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfT3ZlcmxheV90Cit7CisgICAgICAgcHVibGlj
IHVsb25nIG92ZXJsYXlIYW5kbGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHB1YmxpYyB1
aW50IHN0YXR1c1N0YXRlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfS2V5Ym9hcmRfdAoreworICAgICAgIHB1YmxpYyBieXRl
IGNOZXdJbnB1dDAsY05ld0lucHV0MSxjTmV3SW5wdXQyLGNOZXdJbnB1dDMsY05ld0lucHV0NCxj
TmV3SW5wdXQ1LGNOZXdJbnB1dDYsY05ld0lucHV0NzsKKyAgICAgICBwdWJsaWMgdWxvbmcgdVVz
ZXJWYWx1ZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IGlwZE1ldGVyczsK
K30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBW
UkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgcHVibGljIHVsb25nIG1fblByZXZpb3VzVW5p
dmVyc2U7CisgICAgICAgcHVibGljIHVsb25nIG1fbkN1cnJlbnRVbml2ZXJzZTsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Jl
c2VydmVkX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgcmVzZXJ2ZWQwOworICAgICAgIHB1Ymxp
YyB1bG9uZyByZXNlcnZlZDE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHB1
YmxpYyB1aW50IG1fbkZpZGVsaXR5TGV2ZWw7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QK
K3sKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBi
b29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHB1
YmxpYyB1aW50IGhhbmRsZTsKKyAgICAgICBwdWJsaWMgdWludCB0eXBlOworfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVu
c2hvdFByb2dyZXNzX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgcHJvZ3Jlc3M7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9B
cHBsaWNhdGlvbkxhdW5jaF90Cit7CisgICAgICAgcHVibGljIHVpbnQgcGlkOworICAgICAgIHB1
YmxpYyB1aW50IHVuQXJnc0hhbmRsZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKK3sK
KyAgICAgICBwdWJsaWMgdWxvbmcgb3ZlcmxheUhhbmRsZTsKKyAgICAgICBwdWJsaWMgdWludCBu
VmlzdWFsTW9kZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICBwdWJsaWMgdWlu
dCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKK3sKKyAgICAg
ICBwdWJsaWMgdWxvbmcgY29udGFpbmVyOworICAgICAgIHB1YmxpYyBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3A7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAgICAgcHVibGljIHVpbnQgZXZlbnRUeXBlOwor
ICAgICAgIHB1YmxpYyB1aW50IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBwdWJsaWMgZmxv
YXQgZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIHB1YmxpYyBWUkV2ZW50X0RhdGFfdCBkYXRhOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhp
ZGRlbkFyZWFNZXNoX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIHBWZXJ0ZXhEYXRhOyAvLyBj
b25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5Ucmlh
bmdsZUNvdW50OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJs
aWMgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4Owor
ICAgICAgIHB1YmxpYyBmbG9hdCB5OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3QKK3sKKyAgICAgICBwdWJs
aWMgdWludCB1blBhY2tldE51bTsKKyAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25QcmVzc2Vk
OworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblRvdWNoZWQ7CisgICAgICAgcHVibGljIFZS
Q29udHJvbGxlckF4aXNfdCByQXhpczA7IC8vVlJDb250cm9sbGVyQXhpc190WzVdCisgICAgICAg
cHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczE7CisgICAgICAgcHVibGljIFZSQ29udHJv
bGxlckF4aXNfdCByQXhpczI7CisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhp
czM7CisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczQ7Cit9CisvLyBUaGlz
IHN0cnVjdHVyZSBpcyBmb3IgYmFja3dhcmRzIGJpbmFyeSBjb21wYXRpYmlsaXR5IG9uIExpbnV4
IGFuZCBPU1ggb25seQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwsIFBhY2sg
PSA0KV0gcHVibGljIHN0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZAoreworICAgICAg
IHB1YmxpYyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblBy
ZXNzZWQ7CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICBwdWJs
aWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KKyAg
ICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKKyAgICAgICBwdWJsaWMgVlJD
b250cm9sbGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190
IHJBeGlzMzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKKyAgICAg
ICBwdWJsaWMgdm9pZCBVbnBhY2socmVmIFZSQ29udHJvbGxlclN0YXRlX3QgdW5wYWNrZWQpCisg
ICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tlZC51blBhY2tldE51bSA9IHRoaXMudW5QYWNr
ZXROdW07CisgICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uUHJlc3NlZCA9IHRoaXMudWxC
dXR0b25QcmVzc2VkOworICAgICAgICAgICAgICB1bnBhY2tlZC51bEJ1dHRvblRvdWNoZWQgPSB0
aGlzLnVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMwID0gdGhp
cy5yQXhpczA7CisgICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzMSA9IHRoaXMuckF4aXMxOwor
ICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczIgPSB0aGlzLnJBeGlzMjsKKyAgICAgICAgICAg
ICAgdW5wYWNrZWQuckF4aXMzID0gdGhpcy5yQXhpczM7CisgICAgICAgICAgICAgIHVucGFja2Vk
LnJBeGlzNCA9IHRoaXMuckF4aXM0OworICAgICAgIH0KK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5n
cworeworICAgICAgIHB1YmxpYyB1aW50IHNpemU7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBjdXJ2ZWQ7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBhbnRpYWxpYXM7CisgICAg
ICAgcHVibGljIGZsb2F0IHNjYWxlOworICAgICAgIHB1YmxpYyBmbG9hdCBkaXN0YW5jZTsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgYWxwaGE7CisgICAgICAgcHVibGljIGZsb2F0IHVPZmZzZXQ7Cisg
ICAgICAgcHVibGljIGZsb2F0IHZPZmZzZXQ7CisgICAgICAgcHVibGljIGZsb2F0IHVTY2FsZTsK
KyAgICAgICBwdWJsaWMgZmxvYXQgdlNjYWxlOworICAgICAgIHB1YmxpYyBmbG9hdCBncmlkRGl2
czsKKyAgICAgICBwdWJsaWMgZmxvYXQgZ3JpZFdpZHRoOworICAgICAgIHB1YmxpYyBmbG9hdCBn
cmlkU2NhbGU7CisgICAgICAgcHVibGljIEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3JtOworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENhbWVyYVZp
ZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGU7CisgICAgICAgcHVibGljIHVpbnQgbldpZHRoOworICAgICAg
IHB1YmxpYyB1aW50IG5IZWlnaHQ7CisgICAgICAgcHVibGljIHVpbnQgbkJ5dGVzUGVyUGl4ZWw7
CisgICAgICAgcHVibGljIHVpbnQgbkZyYW1lU2VxdWVuY2U7CisgICAgICAgcHVibGljIFRyYWNr
ZWREZXZpY2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBBcHBPdmVycmlkZUtleXNf
dAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgcGNoS2V5OyAvLyBjb25zdCBjaGFyICoKKyAgICAg
ICBwdWJsaWMgSW50UHRyIHBjaFZhbHVlOyAvLyBjb25zdCBjaGFyICoKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBDb21wb3NpdG9yX0ZyYW1l
VGltaW5nCit7CisgICAgICAgcHVibGljIHVpbnQgbV9uU2l6ZTsKKyAgICAgICBwdWJsaWMgdWlu
dCBtX25GcmFtZUluZGV4OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHM7
CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtTWlzUHJlc2VudGVkOworICAgICAgIHB1YmxpYyB1
aW50IG1fbk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgcHVibGljIHVpbnQgbV9uUmVwcm9qZWN0
aW9uRmxhZ3M7CisgICAgICAgcHVibGljIGRvdWJsZSBtX2ZsU3lzdGVtVGltZUluU2Vjb25kczsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFByZVN1Ym1pdEdwdU1zOworICAgICAgIHB1YmxpYyBm
bG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsVG90YWxS
ZW5kZXJHcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJHcHVN
czsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJDcHVNczsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1TXM7CisgICAgICAgcHVibGljIGZs
b2F0IG1fZmxDbGllbnRGcmFtZUludGVydmFsTXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxQ
cmVzZW50Q2FsbENwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsV2FpdEZvclByZXNlbnRD
cHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7CisgICAgICAgcHVi
bGljIGZsb2F0IG1fZmxXYWl0R2V0UG9zZXNDYWxsZWRNczsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bV9mbE5ld1Bvc2VzUmVhZHlNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbE5ld0ZyYW1lUmVh
ZHlNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1zOwor
ICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOworICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlclN0YXJ0TXM7CisgICAgICAgcHVibGljIFRy
YWNrZWREZXZpY2VQb3NlX3QgbV9IbWRQb3NlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7
CisgICAgICAgcHVibGljIHVpbnQgbV9uUGlkOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZy
YW1lUHJlc2VudHM7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAg
ICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsKKyAgICAgICBwdWJsaWMg
dWludCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFydHVwOworICAgICAgIHB1YmxpYyB1aW50IG1f
bk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtUmVw
cm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtTG9hZGlu
ZzsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGluZzsKKyAgICAg
ICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICBwdWJsaWMg
dWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgcHVibGljIHVpbnQg
bV9uTnVtVGltZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50c1Rp
bWVkT3V0OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsK
KyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0OworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3Zl
cmxheUludGVyc2VjdGlvblBhcmFtc190Cit7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2
U291cmNlOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKKyAgICAgICBw
dWJsaWMgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbjsKK30KK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rp
b25SZXN1bHRzX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZQb2ludDsKKyAgICAg
ICBwdWJsaWMgSG1kVmVjdG9yM190IHZOb3JtYWw7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjJf
dCB2VVZzOworICAgICAgIHB1YmxpYyBmbG9hdCBmRGlzdGFuY2U7Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza1Jl
Y3RhbmdsZV90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3BMZWZ0WDsKKyAgICAgICBw
dWJsaWMgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsV2lkdGg7
CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxIZWlnaHQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90
Cit7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDZW50ZXJYOworICAgICAgIHB1YmxpYyBmbG9h
dCBtX2ZsQ2VudGVyWTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFJhZGl1czsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKK3sKKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAgcHVi
bGljIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJpbWl0aXZl
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4
MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVsOworICAgICAgIHB1YmxpYyBIbWRN
YXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWw7CisgICAgICAgcHVibGljIHVpbnQg
dVByb3BlcnRpZXM7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVj
dG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZOb3JtYWw7Cisg
ICAgICAgcHVibGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMDsgLy9mbG9hdFsyXQorICAgICAgIHB1
YmxpYyBmbG9hdCByZlRleHR1cmVDb29yZDE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90Cit7Cisg
ICAgICAgcHVibGljIGNoYXIgdW5XaWR0aDsKKyAgICAgICBwdWJsaWMgY2hhciB1bkhlaWdodDsK
KyAgICAgICBwdWJsaWMgSW50UHRyIHJ1YlRleHR1cmVNYXBEYXRhOyAvLyBjb25zdCB1aW50OF90
ICoKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGli
aWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBf
dF9QYWNrZWQKK3sKKyAgICAgICBwdWJsaWMgY2hhciB1bldpZHRoOworICAgICAgIHB1YmxpYyBj
aGFyIHVuSGVpZ2h0OworICAgICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8v
IGNvbnN0IHVpbnQ4X3QgKgorICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVuZGVyTW9k
ZWxfVGV4dHVyZU1hcF90IHVucGFja2VkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdW5wYWNr
ZWQudW5XaWR0aCA9IHRoaXMudW5XaWR0aDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudW5IZWln
aHQgPSB0aGlzLnVuSGVpZ2h0OworICAgICAgICAgICAgICB1bnBhY2tlZC5ydWJUZXh0dXJlTWFw
RGF0YSA9IHRoaXMucnViVGV4dHVyZU1hcERhdGE7CisgICAgICAgfQorfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3QKK3sK
KyAgICAgICBwdWJsaWMgSW50UHRyIHJWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3QgdnI6OlJl
bmRlck1vZGVsX1ZlcnRleF90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blZlcnRleENvdW50Owor
ICAgICAgIHB1YmxpYyBJbnRQdHIgckluZGV4RGF0YTsgLy8gY29uc3QgdWludDE2X3QgKgorICAg
ICAgIHB1YmxpYyB1aW50IHVuVHJpYW5nbGVDb3VudDsKKyAgICAgICBwdWJsaWMgaW50IGRpZmZ1
c2VUZXh0dXJlSWQ7Cit9CisvLyBUaGlzIHN0cnVjdHVyZSBpcyBmb3IgYmFja3dhcmRzIGJpbmFy
eSBjb21wYXRpYmlsaXR5IG9uIExpbnV4IGFuZCBPU1ggb25seQorW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwsIFBhY2sgPSA0KV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF90
X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0
cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHB1YmxpYyB1aW50IHVuVmVy
dGV4Q291bnQ7CisgICAgICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50
MTZfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworICAgICAgIHB1Ymxp
YyBpbnQgZGlmZnVzZVRleHR1cmVJZDsKKyAgICAgICBwdWJsaWMgdm9pZCBVbnBhY2socmVmIFJl
bmRlck1vZGVsX3QgdW5wYWNrZWQpCisgICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tlZC5y
VmVydGV4RGF0YSA9IHRoaXMuclZlcnRleERhdGE7CisgICAgICAgICAgICAgIHVucGFja2VkLnVu
VmVydGV4Q291bnQgPSB0aGlzLnVuVmVydGV4Q291bnQ7CisgICAgICAgICAgICAgIHVucGFja2Vk
LnJJbmRleERhdGEgPSB0aGlzLnJJbmRleERhdGE7CisgICAgICAgICAgICAgIHVucGFja2VkLnVu
VHJpYW5nbGVDb3VudCA9IHRoaXMudW5UcmlhbmdsZUNvdW50OworICAgICAgICAgICAgICB1bnBh
Y2tlZC5kaWZmdXNlVGV4dHVyZUlkID0gdGhpcy5kaWZmdXNlVGV4dHVyZUlkOworICAgICAgIH0K
K30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBS
ZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBiU2Nyb2xsV2hlZWxWaXNpYmxl
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgcHVibGljIEludFB0ciBtX3BJbWFnZURh
dGE7IC8vIHZvaWQgKgorICAgICAgIHB1YmxpYyBpbnQgbV9uV2lkdGg7CisgICAgICAgcHVibGlj
IGludCBtX25IZWlnaHQ7CisgICAgICAgcHVibGljIGludCBtX25CeXRlc1BlclBpeGVsOworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENPcGVu
VlJDb250ZXh0Cit7CisgICAgICAgcHVibGljIEludFB0ciBtX3BWUlN5c3RlbTsgLy8gY2xhc3Mg
dnI6OklWUlN5c3RlbSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkNoYXBlcm9uZTsgLy8g
Y2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkNoYXBl
cm9uZVNldHVwOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVyb25lU2V0dXAgKgorICAgICAgIHB1Ymxp
YyBJbnRQdHIgbV9wVlJDb21wb3NpdG9yOyAvLyBjbGFzcyB2cjo6SVZSQ29tcG9zaXRvciAqCisg
ICAgICAgcHVibGljIEludFB0ciBtX3BWUk92ZXJsYXk7IC8vIGNsYXNzIHZyOjpJVlJPdmVybGF5
ICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSUmVzb3VyY2VzOyAvLyBjbGFzcyB2cjo6SVZS
UmVzb3VyY2VzICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSUmVuZGVyTW9kZWxzOyAvLyBj
bGFzcyB2cjo6SVZSUmVuZGVyTW9kZWxzICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSRXh0
ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5ICoKKyAgICAgICBw
dWJsaWMgSW50UHRyIG1fcFZSU2V0dGluZ3M7IC8vIGNsYXNzIHZyOjpJVlJTZXR0aW5ncyAqCisg
ICAgICAgcHVibGljIEludFB0ciBtX3BWUkFwcGxpY2F0aW9uczsgLy8gY2xhc3MgdnI6OklWUkFw
cGxpY2F0aW9ucyAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUlRyYWNrZWRDYW1lcmE7IC8v
IGNsYXNzIHZyOjpJVlJUcmFja2VkQ2FtZXJhICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZS
U2NyZWVuc2hvdHM7IC8vIGNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqCit9CisKK3B1YmxpYyBj
bGFzcyBPcGVuVlIKK3sKKworICAgICAgIHB1YmxpYyBzdGF0aWMgdWludCBJbml0SW50ZXJuYWwo
cmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9u
VHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLkluaXRJ
bnRlcm5hbChyZWYgcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSk7CisgICAgICAgfQorCisgICAg
ICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duSW50ZXJuYWwoKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgT3BlblZSSW50ZXJvcC5TaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgfQorCisg
ICAgICAgcHVibGljIHN0YXRpYyBib29sIElzSG1kUHJlc2VudCgpCisgICAgICAgeworICAgICAg
ICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0htZFByZXNlbnQoKTsKKyAgICAgICB9CisK
KyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNSdW50aW1lSW5zdGFsbGVkKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzUnVudGltZUluc3RhbGxlZCgp
OworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIEdldFN0cmluZ0Zvckht
ZEVycm9yKEVWUkluaXRFcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVy
biBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShPcGVuVlJJbnRlcm9wLkdldFN0cmluZ0ZvckhtZEVy
cm9yKGVycm9yKSk7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBJbnRQdHIgR2V0
R2VuZXJpY0ludGVyZmFjZShzdHJpbmcgcGNoSW50ZXJmYWNlVmVyc2lvbiwgcmVmIEVWUkluaXRF
cnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVy
b3AuR2V0R2VuZXJpY0ludGVyZmFjZShwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgcGVFcnJvcik7
CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBib29sIElzSW50ZXJmYWNlVmVyc2lv
blZhbGlkKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQocGNoSW50ZXJm
YWNlVmVyc2lvbik7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyB1aW50IEdldElu
aXRUb2tlbigpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5H
ZXRJbml0VG9rZW4oKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3Vu
TWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAzMjc2ODsKKyAgICAgICBwdWJsaWMgY29uc3Qg
dWludCBrX3VuVHJhY2tlZERldmljZUluZGV4X0htZCA9IDA7CisgICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191bk1heFRyYWNrZWREZXZpY2VDb3VudCA9IDE2OworICAgICAgIHB1YmxpYyBjb25z
dCB1aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhPdGhlciA9IDQyOTQ5NjcyOTQ7CisgICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191blRyYWNrZWREZXZpY2VJbmRleEludmFsaWQgPSA0Mjk0OTY3
Mjk1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFp
bmVyID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW52YWxpZFByb3BlcnR5VGFn
ID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyA9IDE7
CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkludDMyUHJvcGVydHlUYWcgPSAyOworICAg
ICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5VaW50NjRQcm9wZXJ0eVRhZyA9IDM7CisgICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191bkJvb2xQcm9wZXJ0eVRhZyA9IDQ7CisgICAgICAgcHVibGlj
IGNvbnN0IHVpbnQga191blN0cmluZ1Byb3BlcnR5VGFnID0gNTsKKyAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7CisgICAgICAgcHVibGlj
IGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworICAgICAgIHB1Ymxp
YyBjb25zdCB1aW50IGtfdW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKKyAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CisgICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOwor
ICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9
IDEwMDAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1Np
emUgPSAzMjc2ODsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuQ29udHJvbGxlclN0YXRl
QXhpc0NvdW50ID0gNTsKKyAgICAgICBwdWJsaWMgY29uc3QgdWxvbmcga191bE92ZXJsYXlIYW5k
bGVJbnZhbGlkID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuU2NyZWVuc2hvdEhh
bmRsZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSU3lzdGVtX1Zl
cnNpb24gPSAiSVZSU3lzdGVtXzAxNSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJF
eHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFj
a2VkQ2FtZXJhXzAwMyI7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heEFwcGxpY2F0
aW9uS2V5TGVuZ3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTWlt
ZVR5cGVfSG9tZUFwcCA9ICJ2ci9ob21lIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX01pbWVUeXBlX0dhbWVUaGVhdGVyID0gInZyL2dhbWVfdGhlYXRlciI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJBcHBsaWNhdGlv
bnNfMDA2IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkNoYXBlcm9uZV9WZXJzaW9u
ID0gIklWUkNoYXBlcm9uZV8wMDMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hh
cGVyb25lU2V0dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVTZXR1cF8wMDUiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcgSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBvc2l0b3Jf
MDIwIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3Ro
ID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVu
Z3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5Q291bnQg
PSA2NDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlv
bk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElW
Uk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNCI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1ID0gImdkYzIwMTUiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfQmFz
ZSA9ICJiYXNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbnRyb2xsZXJf
Q29tcG9uZW50X1RpcCA9ICJ0aXAiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAiaGFuZGdyaXAiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfU3RhdHVzID0gInN0YXR1
cyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiA9
ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTm90
aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJ
VlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18wMDIiOworICAgICAg
IHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3Nf
MDAyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2VjdGlvbiA9
ICJzdGVhbXZyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfUmVx
dWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUhtZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmcgPSAiZm9yY2VkRHJpdmVyIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0
cmluZyA9ICJmb3JjZWRIbWQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3Rl
YW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVidWciOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1
Z1Byb2Nlc3NQaXBlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJf
RW5hYmxlRGlzdG9ydGlvbl9Cb29sID0gImVuYWJsZURpc3RvcnRpb24iOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0gImRpc3Bs
YXlEZWJ1Z1giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXNw
bGF5RGVidWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzX0Jvb2wgPSAic2Vu
ZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tncm91
bmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5k
VXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24iOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJh
SGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJi
YWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENvbG9yIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFD
b2xvciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1Nob3dTdGFn
ZV9Cb29sID0gInNob3dTdGFnZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURy
aXZlcnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RN
b2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQ
aWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlh
d09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93
ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9v
bCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11
bHRpcGxpZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9BbGxv
d0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jv
b2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXBy
b2plY3Rpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3Jj
ZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0lu
dDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9T
dHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JG
cm9tQXBwTGF1bmNoIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJf
U3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21B
cHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFy
dERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVu
Y2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFydE92ZXJs
YXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJk
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFw
cCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFw
cCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dy
b3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wg
PSAicmV0YWlsRGVtbyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0g
ImRpc2FibGVpbXUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3Vz
ZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVn
X0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJh
c2VzdGF0aW9uIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0xpZ2h0aG91c2Vf
REJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVyIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3RyaW5n
ID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxf
V2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAi
d2luZG93SGVpZ2h0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfUmVu
ZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9u
c19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5RnJl
cXVlbmN5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2Vf
U2VjdGlvbiA9ICJ1c2VyaW50ZXJmYWNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNP
blRvcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX01p
bmltaXplVG9UcmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVlbnNo
b3RzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfU2Ny
ZWVuc2hvdFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJi
X0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21wbGV0aW9ucyA9ICJUdXRvcmlhbENvbXBsZXRp
b25zIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1NjYWxlWCA9
ICJTY2FsZVgiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2Nh
bGVZID0gIlNjYWxlWSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2Fy
ZF9PZmZzZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9LZXlib2FyZF9PZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0WSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TbW9vdGhpbmcgPSAiU21v
b3RoaW5nIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfU2VjdGlvbiA9
ICJwZXJmY2hlY2siOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9IZXVy
aXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29sID0gIndhcm5JbkhNRCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wgPSAi
d2Fybk9ubHlPbmNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfQWxs
b3dUaW1pbmdTdG9yZV9Cb29sID0gImFsbG93VGltaW5nU3RvcmUiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1p
bmdzT25FeGl0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfVGVzdERh
dGFfRmxvYXQgPSAicGVyZlRlc3REYXRhIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxpc2lvbkJvdW5kcyI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIgPSAi
Q29sbGlzaW9uQm91bmRzU3R5bGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRz
R3JvdW5kUGVyaW1ldGVyT24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29s
bGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzQ2VudGVy
TWFya2VyT24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91
bmRzX1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24iOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5j
ZV9GbG9hdCA9ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNv
bGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHND
b2xvckdhbW1hRyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUIiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2Ft
bWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxl
Q2FtZXJhIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVD
YW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JDb2xsaXNp
b25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvclJvb21WaWV3
X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5k
c0NvbG9yR2FtbWFSIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9C
b3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50
MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFBIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3Vu
ZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5nID0gIm9u
UGxheWJhY2tEZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9f
T25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tNaXJyb3JEZXZpY2VfU3RyaW5nID0g
Im9uUGxheWJhY2tNaXJyb3JEZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nID0gIm9mZlBsYXliYWNrRGV2aWNlIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09mZlJlY29yZERldmljZV9T
dHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdhaW4iOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sID0gInBvd2VyT2Zm
T25FeGl0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1R1cm5PZmZT
Y3JlZW5zVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9G
bG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0ID0gInJldHVy
blRvV2F0Y2hkb2dUaW1lb3V0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1Bv
d2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyA9ICJhdXRvTGF1bmNoU3RlYW1WUk9u
QnV0dG9uUHJlc3MiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFzaGJvYXJk
X1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9
ICJhcmNhZGVNb2RlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX21vZGVsc2tp
bl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfRHJpdmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBJVlJTY3JlZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3RzXzAwMSI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJj
ZXNfMDAxIjsKKworICAgICAgIHN0YXRpYyB1aW50IFZSVG9rZW4geyBnZXQ7IHNldDsgfQorCisg
ICAgICAgY29uc3Qgc3RyaW5nIEZuVGFibGVfUHJlZml4ID0gIkZuVGFibGU6IjsKKworICAgICAg
IGNsYXNzIENPcGVuVlJDb250ZXh0CisgICAgICAgeworICAgICAgICAgICAgICBwdWJsaWMgQ09w
ZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKworICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBD
bGVhcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVt
ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBudWxsOworICAgICAgICAg
ICAgICAgICAgICAgbV9wVlJDb21wb3NpdG9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg
IG1fcFZST3ZlcmxheSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUlJlbmRlck1v
ZGVscyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9
IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbDsKKyAgICAg
ICAgICAgICAgICAgICAgIG1fcFZSQXBwbGljYXRpb25zID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9w
VlJUcmFja2VkQ2FtZXJhID0gbnVsbDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IHZvaWQgQ2hlY2tDbGVhcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IGlmIChWUlRva2VuICE9IEdldEluaXRUb2tlbigpKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsZWFyKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVlJUb2tlbiA9IEdldEluaXRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlN5c3RlbSBWUlN5
c3RlbSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlN5c3RlbSA9PSBudWxsKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3Ig
PSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcElu
dGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZp
eCtJVlJTeXN0ZW1fVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRF
cnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlN5c3Rl
bSA9IG5ldyBDVlJTeXN0ZW0ocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTeXN0ZW07CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSQ2hhcGVyb25lIFZSQ2hhcGVyb25lKCkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1fcFZSQ2hhcGVyb25lID09IG51bGwpCisgICAgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRF
cnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0g
T3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUkNoYXBl
cm9uZV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5v
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0g
bmV3IENWUkNoYXBlcm9uZShwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmVTZXR1cCBWUkNoYXBlcm9uZVNl
dHVwKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigp
OworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSQ2hhcGVyb25lU2V0dXAgPT0gbnVsbCkK
KyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
ZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJs
ZV9QcmVmaXgrSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVy
cm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gbmV3IENWUkNoYXBlcm9uZVNldHVwKHBJbnRlcmZh
Y2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBw
dWJsaWMgQ1ZSQ29tcG9zaXRvciBWUkNvbXBvc2l0b3IoKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
bV9wVlJDb21wb3NpdG9yID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUkNvbXBvc2l0b3JfVmVyc2lvbiwg
cmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2Ug
IT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBuZXcgQ1ZSQ29tcG9z
aXRvcihwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICBwdWJsaWMgQ1ZST3ZlcmxheSBWUk92ZXJsYXkoKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAobV9wVlJPdmVybGF5ID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUk92ZXJsYXlfVmVyc2lvbiwgcmVm
IGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0g
SW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BWUk92ZXJsYXkgPSBuZXcgQ1ZST3ZlcmxheShwSW50
ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJs
aWMgQ1ZSUmVuZGVyTW9kZWxzIFZSUmVuZGVyTW9kZWxzKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYg
KG1fcFZSUmVuZGVyTW9kZWxzID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJv
cC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlJlbmRlck1vZGVsc19WZXJz
aW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVy
ZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gbmV3IENW
UlJlbmRlck1vZGVscyhwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlJlbmRlck1vZGVsczsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJFeHRlbmRlZERpc3BsYXkgVlJFeHRlbmRlZERp
c3BsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFy
KCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJFeHRlbmRlZERpc3BsYXkgPT0gbnVs
bCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5U
YWJsZV9QcmVmaXgrSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYm
IGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSBuZXcgQ1ZSRXh0ZW5kZWREaXNwbGF5KHBJ
bnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgcHVibGljIENWUlNldHRpbmdzIFZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAobV9wVlJTZXR0aW5ncyA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3Au
R2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJTZXR0aW5nc19WZXJzaW9uLCBy
ZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAh
PSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBuZXcgQ1ZSU2V0dGluZ3Mo
cEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IHB1YmxpYyBDVlJBcHBsaWNhdGlvbnMgVlJBcHBsaWNhdGlvbnMoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAg
ICBpZiAobV9wVlJBcHBsaWNhdGlvbnMgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5v
bmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJ
bnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQXBwbGljYXRpb25z
X1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
SW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBu
ZXcgQ1ZSQXBwbGljYXRpb25zKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQXBwbGljYXRpb25zOworICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlNjcmVlbnNob3RzIFZSU2NyZWVuc2hv
dHMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7
CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJTY3JlZW5zaG90cyA9PSBudWxsKQorICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJy
b3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
cEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1By
ZWZpeCtJVlJTY3JlZW5zaG90c19WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0g
RVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cFZSU2NyZWVuc2hvdHMgPSBuZXcgQ1ZSU2NyZWVuc2hvdHMocEludGVyZmFjZSk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTY3JlZW5z
aG90czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJUcmFja2Vk
Q2FtZXJhIFZSVHJhY2tlZENhbWVyYSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlRyYWNr
ZWRDYW1lcmEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVy
aWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSVHJhY2tlZENhbWVyYSA9IG5ldyBDVlJUcmFja2Vk
Q2FtZXJhKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgIHByaXZhdGUgQ1ZSU3lzdGVtIG1fcFZSU3lzdGVtOworICAgICAgICAgICAg
ICBwcml2YXRlIENWUkNoYXBlcm9uZSBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAgICAgICAgcHJp
dmF0ZSBDVlJDaGFwZXJvbmVTZXR1cCBtX3BWUkNoYXBlcm9uZVNldHVwOworICAgICAgICAgICAg
ICBwcml2YXRlIENWUkNvbXBvc2l0b3IgbV9wVlJDb21wb3NpdG9yOworICAgICAgICAgICAgICBw
cml2YXRlIENWUk92ZXJsYXkgbV9wVlJPdmVybGF5OworICAgICAgICAgICAgICBwcml2YXRlIENW
UlJlbmRlck1vZGVscyBtX3BWUlJlbmRlck1vZGVsczsKKyAgICAgICAgICAgICAgcHJpdmF0ZSBD
VlJFeHRlbmRlZERpc3BsYXkgbV9wVlJFeHRlbmRlZERpc3BsYXk7CisgICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZSU2V0dGluZ3MgbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgcHJpdmF0ZSBD
VlJBcHBsaWNhdGlvbnMgbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAgICAgIHByaXZhdGUg
Q1ZSU2NyZWVuc2hvdHMgbV9wVlJTY3JlZW5zaG90czsKKyAgICAgICAgICAgICAgcHJpdmF0ZSBD
VlJUcmFja2VkQ2FtZXJhIG1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICB9OworCisgICAgICAg
cHJpdmF0ZSBzdGF0aWMgQ09wZW5WUkNvbnRleHQgX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQgPSBudWxsOworICAgICAgIHN0YXRpYyBDT3BlblZSQ29udGV4dCBPcGVuVlJJbnRlcm5hbF9N
b2R1bGVDb250ZXh0CisgICAgICAgeworICAgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgaWYgKF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0
ID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX09wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQgPSBuZXcgQ09wZW5WUkNvbnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dDsKKyAgICAgICAgICAgICAgfQor
ICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIFN5c3RlbSB7IGdldCB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU3lzdGVtKCk7IH0gfQorICAg
ICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ2hhcGVyb25lIENoYXBlcm9uZSB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lKCk7IH0gfQorICAgICAgIHB1
YmxpYyBzdGF0aWMgQ1ZSQ2hhcGVyb25lU2V0dXAgQ2hhcGVyb25lU2V0dXAgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNoYXBlcm9uZVNldHVwKCk7IH0gfQor
ICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ29tcG9zaXRvciBDb21wb3NpdG9yIHsgZ2V0IHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDb21wb3NpdG9yKCk7IH0gfQorICAg
ICAgIHB1YmxpYyBzdGF0aWMgQ1ZST3ZlcmxheSBPdmVybGF5IHsgZ2V0IHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQuVlJPdmVybGF5KCk7IH0gfQorICAgICAgIHB1YmxpYyBz
dGF0aWMgQ1ZSUmVuZGVyTW9kZWxzIFJlbmRlck1vZGVscyB7IGdldCB7IHJldHVybiBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSUmVuZGVyTW9kZWxzKCk7IH0gfQorICAgICAgIHB1Ymxp
YyBzdGF0aWMgQ1ZSRXh0ZW5kZWREaXNwbGF5IEV4dGVuZGVkRGlzcGxheSB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSRXh0ZW5kZWREaXNwbGF5KCk7IH0gfQor
ICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU2V0dGluZ3MgU2V0dGluZ3MgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlNldHRpbmdzKCk7IH0gfQorICAgICAgIHB1
YmxpYyBzdGF0aWMgQ1ZSQXBwbGljYXRpb25zIEFwcGxpY2F0aW9ucyB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQXBwbGljYXRpb25zKCk7IH0gfQorICAgICAg
IHB1YmxpYyBzdGF0aWMgQ1ZSU2NyZWVuc2hvdHMgU2NyZWVuc2hvdHMgeyBnZXQgeyByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlNjcmVlbnNob3RzKCk7IH0gfQorICAgICAg
IHB1YmxpYyBzdGF0aWMgQ1ZSVHJhY2tlZENhbWVyYSBUcmFja2VkQ2FtZXJhIHsgZ2V0IHsgcmV0
dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJUcmFja2VkQ2FtZXJhKCk7IH0gfQor
CisgICAgICAgLyoqIEZpbmRzIHRoZSBhY3RpdmUgaW5zdGFsbGF0aW9uIG9mIHZyY2xpZW50LmRs
bCBhbmQgaW5pdGlhbGl6ZXMgaXQgKi8KKyAgICAgICBwdWJsaWMgc3RhdGljIENWUlN5c3RlbSBJ
bml0KHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNh
dGlvblR5cGUgPSBFVlJBcHBsaWNhdGlvblR5cGUuVlJBcHBsaWNhdGlvbl9TY2VuZSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIFZSVG9rZW4gPSBJbml0SW50ZXJuYWwocmVmIHBlRXJyb3IsIGVB
cHBsaWNhdGlvblR5cGUpOworICAgICAgICAgICAgICBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250
ZXh0LkNsZWFyKCk7CisKKyAgICAgICAgICAgICAgaWYgKHBlRXJyb3IgIT0gRVZSSW5pdEVycm9y
Lk5vbmUpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICAgICAg
ICBib29sIGJJbnRlcmZhY2VWYWxpZCA9IElzSW50ZXJmYWNlVmVyc2lvblZhbGlkKElWUlN5c3Rl
bV9WZXJzaW9uKTsKKyAgICAgICAgICAgICAgaWYgKCFiSW50ZXJmYWNlVmFsaWQpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAg
ICAgICAgICAgICAgICAgIHBlRXJyb3IgPSBFVlJJbml0RXJyb3IuSW5pdF9JbnRlcmZhY2VOb3RG
b3VuZDsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUi5TeXN0ZW07CisgICAgICAgfQorCisgICAg
ICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50ZXJmYWNlIHBvaW50ZXJzIGZyb20g
dGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQgYWZ0ZXIgdGhpcyBwb2ludCAqLwor
ICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBTaHV0ZG93bigpCisgICAgICAgeworICAgICAgICAg
ICAgICBTaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgfQorCit9CisKKworCit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNvbiBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNvbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMTcxZWMzN2QxMTNkMWFjZDZlOGNjNDIwMTRhY2M2MGY3YTQxOGQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29u
CkBAIC0wLDAgKzEsMzc4OSBAQAoreyJ0eXBlZGVmcyI6W3sidHlwZWRlZiI6ICJ2cjo6Z2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInZvaWQgKiJ9CisseyJ0eXBlZGVmIjogInZyOjpn
bEludF90IiwidHlwZSI6ICJpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OmdsVUludF90Iiwi
dHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpTaGFyZWRUZXh0dXJlSGFuZGxl
X3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpQ
cm9wZXJ0eVR5cGVUYWdfdCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6
VlJFdmVudF9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZSRXZlbnRfRGF0YV90In0KKyx7InR5cGVk
ZWYiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QiLCJ0eXBlIjogInN0cnVjdCB2cjo6VlJDb250
cm9sbGVyU3RhdGUwMDFfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIs
InR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRs
ZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpTY3JlZW5zaG90SGFu
ZGxlX3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IiwidHlwZSI6ICJ1bmlvbiBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpWUkNv
bXBvbmVudFByb3BlcnRpZXMiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6
OlRleHR1cmVJRF90IiwidHlwZSI6ICJpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlZSTm90
aWZpY2F0aW9uSWQiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OkhtZEVy
cm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJJbml0RXJyb3IifQorLHsidHlwZWRlZiI6ICJ2cjo6
SG1kX0V5ZSIsInR5cGUiOiAiZW51bSB2cjo6RVZSRXllIn0KKyx7InR5cGVkZWYiOiAidnI6OkNv
bG9yU3BhY2UiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn0KKyx7InR5cGVkZWYiOiAi
dnI6OkhtZFRyYWNraW5nUmVzdWx0IiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQi
fQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUNsYXNzIiwidHlwZSI6ICJlbnVtIHZy
OjpFVHJhY2tlZERldmljZUNsYXNzIn0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNraW5nVW5pdmVy
c2VPcmlnaW4iLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0KKyx7
InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsInR5cGUiOiAiZW51bSB2cjo6
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkUHJvcGVy
dHlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIn0KKyx7InR5
cGVkZWYiOiAidnI6OlZSU3VibWl0RmxhZ3NfdCIsInR5cGUiOiAiZW51bSB2cjo6RVZSU3VibWl0
RmxhZ3MifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJTdGF0ZV90IiwidHlwZSI6ICJlbnVtIHZyOjpF
VlJTdGF0ZSJ9CisseyJ0eXBlZGVmIjogInZyOjpDb2xsaXNpb25Cb3VuZHNTdHlsZV90IiwidHlw
ZSI6ICJlbnVtIHZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUifQorLHsidHlwZWRlZiI6ICJ2cjo6
VlJPdmVybGF5RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUk92ZXJsYXlFcnJvciJ9CisseyJ0
eXBlZGVmIjogInZyOjpWUkZpcm13YXJlRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkZpcm13
YXJlRXJyb3IifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJDb21wb3NpdG9yRXJyb3IiLCJ0eXBlIjog
ImVudW0gdnI6OkVWUkNvbXBvc2l0b3JFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUlNjcmVl
bnNob3RzRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUlNjcmVlbnNob3RFcnJvciJ9CitdLAor
ImVudW1zIjpbCisgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXllIiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiRXllX0xlZnQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1l
IjogIkV5ZV9SaWdodCIsInZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVRleHR1cmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVGV4dHVyZVR5
cGVfRGlyZWN0WCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVf
T3BlbkdMIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9WdWxr
YW4iLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX0lPU3VyZmFj
ZSIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfRGlyZWN0WDEy
IiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sb3JTcGFj
ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIkNvbG9yU3BhY2VfQXV0byIsInZhbHVl
IjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9HYW1tYSIsInZhbHVlIjogIjEi
fQorICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9MaW5lYXIiLCJ2YWx1ZSI6ICIyIn0KK119
CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2luZ1Jlc3VsdCIsInZhbHVlcyI6IFsg
CisgICAgICAgeyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQiLCJ2YWx1ZSI6
ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX0luUHJv
Z3Jlc3MiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRf
Q2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6
ICJUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAseyJu
YW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjIwMSJ9
CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwidmFs
dWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQiLCJ2
YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19ITUQiLCJ2
YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19Db250cm9s
bGVyIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRE
ZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSIsInZhbHVlIjogIjQifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSIsInZhbHVlcyI6IFsgCisg
ICAgICAgeyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkIiwidmFsdWUiOiAi
MCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQiLCJ2
YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9SaWdo
dEhhbmQiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVNlYXRlZCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tp
bmdVbml2ZXJzZVN0YW5kaW5nIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFj
a2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIiwidmFsdWUiOiAiMiJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5IiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiUHJvcF9JbnZhbGlkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAwIn0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfTW9kZWxOdW1iZXJfU3RyaW5nIiwidmFsdWUiOiAiMTAw
MSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6
ICIxMDAyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyIs
InZhbHVlIjogIjEwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9XaWxsRHJpZnRJbllhd19C
b29sIiwidmFsdWUiOiAiMTAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX01hbnVmYWN0dXJl
ck5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1Ry
YWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDYifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDcifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJp
bmciLCJ2YWx1ZSI6ICIxMDA4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nIiwidmFsdWUiOiAiMTAwOSJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCIsInZhbHVlIjogIjEwMTAifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wiLCJ2YWx1ZSI6ICIxMDExIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQiLCJ2YWx1ZSI6
ICIxMDEyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9N
YXRyaXgzNCIsInZhbHVlIjogIjEwMTMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2Fy
ZV9VcGRhdGVBdmFpbGFibGVfQm9vbCIsInZhbHVlIjogIjEwMTQifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCIsInZhbHVlIjogIjEwMTUifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIiwidmFs
dWUiOiAiMTAxNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWlu
dDY0IiwidmFsdWUiOiAiMTAxNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlVmVy
c2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRlBH
QVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X1ZSQ1ZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAyMCJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX1JhZGlvVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIxIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIyIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sIiwidmFsdWUiOiAiMTAyMyJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRf
Qm9vbCIsInZhbHVlIjogIjEwMjQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sIiwidmFsdWUiOiAiMTAyNSJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sIiwidmFsdWUiOiAiMTAyNiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wiLCJ2YWx1ZSI6ICIx
MDI3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRf
U3RyaW5nIiwidmFsdWUiOiAiMTAyOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNs
YXNzX0ludDMyIiwidmFsdWUiOiAiMTAyOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0hhc0Nh
bWVyYV9Cb29sIiwidmFsdWUiOiAiMTAzMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RyaXZl
clZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAzMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCIsInZhbHVlIjogIjEwMzIifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCIsInZh
bHVlIjogIjEwMzMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9QYXJlbnREcml2ZXJfVWludDY0
IiwidmFsdWUiOiAiMTAzNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1JlcG9ydHNUaW1lU2lu
Y2VWU3luY19Cb29sIiwidmFsdWUiOiAiMjAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1Nl
Y29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsInZhbHVlIjogIjIwMDIifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAw
MyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCIsInZh
bHVlIjogIjIwMDQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRf
VWludDY0IiwidmFsdWUiOiAiMjAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlG
aXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAwNiJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0lzT25EZXNrdG9wX0Jvb2wiLCJ2YWx1ZSI6ICIyMDA3In0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiIsInZhbHVlIjogIjIwMDgifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQiLCJ2YWx1ZSI6ICIyMDA5In0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDEw
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRWRpZFZlbmRvcklEX0ludDMyIiwidmFsdWUiOiAi
MjAxMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmci
LCJ2YWx1ZSI6ICIyMDEyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VS
aWdodF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlz
cGxheUdDQmxhY2tDbGFtcF9GbG9hdCIsInZhbHVlIjogIjIwMTQifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyIiwidmFsdWUiOiAiMjAxNSJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCIsInZhbHVlIjogIjIw
MTYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyIiwidmFsdWUi
OiAiMjAxNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCIs
InZhbHVlIjogIjIwMTgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NTY2FsZV9G
bG9hdCIsInZhbHVlIjogIjIwMTkifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NQ
cmVzY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMjAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9E
aXNwbGF5R0NJbWFnZV9TdHJpbmciLCJ2YWx1ZSI6ICIyMDIxIn0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0IiwidmFsdWUiOiAiMjAyMiJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCIsInZhbHVlIjogIjIwMjMifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0IiwidmFsdWUiOiAiMjAy
NCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQiLCJ2YWx1
ZSI6ICIyMDI1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0
ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAyNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVy
YUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDI3In0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmciLCJ2YWx1ZSI6ICIyMDI4
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCIsInZh
bHVlIjogIjIwMjkifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMzIi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiIs
InZhbHVlIjogIjIwMzMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90SG9yaXpv
bnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjIwMzQifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQi
LCJ2YWx1ZSI6ICIyMDM1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheVN1cHByZXNz
ZWRfQm9vbCIsInZhbHVlIjogIjIwMzYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5
QWxsb3dOaWdodE1vZGVfQm9vbCIsInZhbHVlIjogIjIwMzcifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyIiwidmFsdWUiOiAiMjAzOCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyIiwidmFsdWUiOiAiMjAz
OSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50
MzIiLCJ2YWx1ZSI6ICIyMDQwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1h
Z2VEYXRhX0JpbmFyeSIsInZhbHVlIjogIjIwNDEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9V
c2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjA0MiJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nIiwidmFsdWUiOiAiMzAwMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0IiwidmFsdWUiOiAiMzAw
MSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMwVHlwZV9JbnQzMiIsInZhbHVlIjogIjMw
MDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMVR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIz
MDAzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczJUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMzVHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzNFR5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIzMDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMy
IiwidmFsdWUiOiAiMzAwNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3TGVm
dERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
RmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiNDAw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9h
dCIsInZhbHVlIjogIjQwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9UcmFja2luZ1Jhbmdl
TWluaW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDQifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDUifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlTGFiZWxfU3RyaW5nIiwidmFsdWUiOiAiNDAwNiJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICI1
MDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJp
bmciLCJ2YWx1ZSI6ICI1MDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0
aERldmljZVNlYXJjaGluZ19TdHJpbmciLCJ2YWx1ZSI6ICI1MDAyIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyIsInZhbHVl
IjogIjUwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVh
ZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyIsInZhbHVlIjogIjUwMDUifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nIiwidmFs
dWUiOiAiNTAwNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VT
dGFuZGJ5X1N0cmluZyIsInZhbHVlIjogIjUwMDcifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nIiwidmFsdWUiOiAiNTAwOCJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCIsInZhbHVl
IjogIjUxMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kIiwidmFsdWUiOiAiNTE1MCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJDb25m
aWdQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICI2MDAxIn0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjog
IjEwOTk5In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlF
cnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlRyYWNrZWRQcm9wX1N1Y2Nlc3Mi
LCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGF0YVR5
cGUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGV2
aWNlQ2xhc3MiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX0J1
ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJv
cF9Vbmtub3duUHJvcGVydHkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWRQcm9wX0ludmFsaWREZXZpY2UiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlRy
YWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciIsInZhbHVlIjogIjYifQorICAgICAgICx7
Im5hbWUiOiAiVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlIiwidmFsdWUiOiAi
NyJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxl
bmd0aCIsInZhbHVlIjogIjgifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfTm90WWV0
QXZhaWxhYmxlIiwidmFsdWUiOiAiOSJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Q
ZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfSW52YWxpZE9wZXJhdGlvbiIsInZhbHVlIjogIjExIn0KK119CissICAgICAgIHsiZW51
bW5hbWUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAiU3VibWl0X0RlZmF1bHQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlN1Ym1p
dF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJTdWJtaXRfR2xSZW5kZXJCdWZmZXIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJu
YW1lIjogIlN1Ym1pdF9SZXNlcnZlZCIsInZhbHVlIjogIjQifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlN0
YXRlX1VuZGVmaW5lZCIsInZhbHVlIjogIi0xIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVf
T2ZmIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZyIs
InZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQi
LCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHkiLCJ2YWx1ZSI6
ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHlfQWxlcnQiLCJ2YWx1ZSI6ICI0
In0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfTm90UmVhZHkiLCJ2YWx1ZSI6ICI1In0KKyAg
ICAgICAseyJuYW1lIjogIlZSU3RhdGVfU3RhbmRieSIsInZhbHVlIjogIjYifQorICAgICAgICx7
Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3ciLCJ2YWx1ZSI6ICI3In0KK119CissICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkV2ZW50VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAg
eyJuYW1lIjogIlZSRXZlbnRfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkIiwidmFsdWUiOiAiMTAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQiLCJ2YWx1
ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCIsInZhbHVlIjogIjEwNCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lwZENoYW5nZWQiLCJ2YWx1ZSI6ICIxMDUifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA2In0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSIsInZhbHVlIjogIjEw
NyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCIs
InZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1dhdGNoZG9nV2FrZVVw
UmVxdWVzdGVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVu
c0Rpc3RvcnRpb25DaGFuZ2VkIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfUHJvcGVydHlDaGFuZ2VkIiwidmFsdWUiOiAiMTExIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uUHJlc3MiLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnByZXNzIiwidmFsdWUiOiAiMjAxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQnV0dG9uVG91Y2giLCJ2YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25VbnRvdWNoIiwidmFsdWUiOiAiMjAzIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VNb3ZlIiwidmFsdWUiOiAiMzAwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfTW91c2VCdXR0b25Eb3duIiwidmFsdWUiOiAiMzAxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VCdXR0b25VcCIsInZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ZvY3VzRW50ZXIiLCJ2YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Gb2N1c0xlYXZlIiwidmFsdWUiOiAiMzA0In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfU2Nyb2xsIiwidmFsdWUiOiAiMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
VG91Y2hQYWRNb3ZlIiwidmFsdWUiOiAiMzA2In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjMwNyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCIsInZhbHVlIjogIjQwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCIsInZhbHVlIjogIjQwMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lRm9jdXNMb3N0IiwidmFsdWUiOiAiNDAyIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCIsInZhbHVlIjogIjQwMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkIiwidmFsdWUi
OiAiNDA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQiLCJ2
YWx1ZSI6ICI0MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdl
ZCIsInZhbHVlIjogIjQwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGlj
YXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkIiwidmFsdWUiOiAiNDA3In0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMiLCJ2YWx1ZSI6ICI0MTEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hvd24iLCJ2YWx1ZSI6ICI1MDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5SGlkZGVuIiwidmFsdWUiOiAiNTAxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkIiwidmFsdWUiOiAi
NTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQiLCJ2
YWx1ZSI6ICI1MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNl
bGVjdGVkIiwidmFsdWUiOiAiNTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkUmVxdWVzdGVkIiwidmFsdWUiOiAiNTA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UmVzZXREYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MDYifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9SZW5kZXJUb2FzdCIsInZhbHVlIjogIjUwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X0ltYWdlTG9hZGVkIiwidmFsdWUiOiAiNTA4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
U2hvd0tleWJvYXJkIiwidmFsdWUiOiAiNTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
SGlkZUtleWJvYXJkIiwidmFsdWUiOiAiNTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCIsInZhbHVlIjogIjUxMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0IiwidmFsdWUiOiAiNTEyIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkIiwidmFs
dWUiOiAiNTEzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0
b25Eb3duIiwidmFsdWUiOiAiNTE0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25VcCIsInZhbHVlIjogIjUxNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQiLCJ2YWx1ZSI6ICI1MTYifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9JbWFnZUZhaWxlZCIsInZhbHVlIjogIjUxNyJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkIiwidmFsdWUiOiAiNTE4In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QiLCJ2YWx1ZSI6ICI1MjAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90VGFrZW4iLCJ2YWx1ZSI6ICI1MjEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkIiwidmFsdWUiOiAi
NTIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJv
YXJkIiwidmFsdWUiOiAiNTIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzVG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjQifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCIsInZhbHVlIjogIjUyNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biIsInZhbHVlIjogIjYw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4iLCJ2YWx1
ZSI6ICI2MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5J
bnRlcmFjdGlvbiIsInZhbHVlIjogIjYwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05v
dGlmaWNhdGlvbl9EZXN0cm95ZWQiLCJ2YWx1ZSI6ICI2MDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9RdWl0IiwidmFsdWUiOiAiNzAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
UHJvY2Vzc1F1aXQiLCJ2YWx1ZSI6ICI3MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9R
dWl0QWJvcnRlZF9Vc2VyUHJvbXB0IiwidmFsdWUiOiAiNzAyIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCIsInZhbHVlIjogIjcwMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQiLCJ2YWx1ZSI6ICI3MDQifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdl
ZCIsInZhbHVlIjogIjgwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVRl
bXBEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1ZSI6ICI4MDMifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0IiwidmFsdWUiOiAiODA0In0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFs
dWUiOiAiODIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdI
YXNDaGFuZ2VkIiwidmFsdWUiOiAiODUwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2Ft
ZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1MSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCIs
InZhbHVlIjogIjg1MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Vudmlyb25tZW50U2V0
dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1N0YXR1c1VwZGF0ZSIsInZhbHVlIjogIjkwMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X01DSW1hZ2VVcGRhdGVkIiwidmFsdWUiOiAiMTAwMCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCIsInZhbHVlIjogIjExMDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkIiwidmFs
dWUiOiAiMTEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2xvc2VkIiwi
dmFsdWUiOiAiMTIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2hhcklu
cHV0IiwidmFsdWUiOiAiMTIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJk
RG9uZSIsInZhbHVlIjogIjEyMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvblRyYW5zaXRpb25TdGFydGVkIiwidmFsdWUiOiAiMTMwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1ZSI6ICIxMzAxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3Rh
cnRlZCIsInZhbHVlIjogIjEzMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNh
dGlvbkxpc3RVcGRhdGVkIiwidmFsdWUiOiAiMTMwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkIiwidmFsdWUiOiAiMTMwNCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRl
IiwidmFsdWUiOiAiMTMwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3Jf
TWlycm9yV2luZG93U2hvd24iLCJ2YWx1ZSI6ICIxNDAwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4iLCJ2YWx1ZSI6ICIxNDAxIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biIs
InZhbHVlIjogIjE0MTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0No
YXBlcm9uZUJvdW5kc0hpZGRlbiIsInZhbHVlIjogIjE0MTEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0i
LCJ2YWx1ZSI6ICIxNTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVy
YV9QYXVzZVZpZGVvU3RyZWFtIiwidmFsdWUiOiAiMTUwMiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAzIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSIs
InZhbHVlIjogIjE1NTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRW5hYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUiLCJ2YWx1ZSI6ICIxNjAxIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwiLCJ2
YWx1ZSI6ICIxNjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlf
Q2xvc2VkIiwidmFsdWUiOiAiMTY1MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0IiwidmFsdWUiOiAiMTAwMDAifQorICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQiLCJ2YWx1ZSI6ICIxOTk5
OSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFRGV2aWNlQWN0aXZpdHlMZXZlbCIs
InZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5r
bm93biIsInZhbHVlIjogIi0xIn0KKyAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5
TGV2ZWxfSWRsZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24iLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1l
IjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQiLCJ2YWx1
ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRi
eSIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQnV0dG9u
SWQiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJrX0VCdXR0b25fU3lzdGVtIiwidmFs
dWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQXBwbGljYXRpb25NZW51Iiwi
dmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fR3JpcCIsInZhbHVlIjog
IjIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfTGVmdCIsInZhbHVlIjogIjMi
fQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfVXAiLCJ2YWx1ZSI6ICI0In0KKyAg
ICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX1JpZ2h0IiwidmFsdWUiOiAiNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9Eb3duIiwidmFsdWUiOiAiNiJ9CisgICAgICAg
LHsibmFtZSI6ICJrX0VCdXR0b25fQSIsInZhbHVlIjogIjcifQorICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciIsInZhbHVlIjogIjMxIn0KKyAgICAgICAseyJuYW1l
IjogImtfRUJ1dHRvbl9BeGlzMCIsInZhbHVlIjogIjMyIn0KKyAgICAgICAseyJuYW1lIjogImtf
RUJ1dHRvbl9BeGlzMSIsInZhbHVlIjogIjMzIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRv
bl9BeGlzMiIsInZhbHVlIjogIjM0In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlz
MyIsInZhbHVlIjogIjM1In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzNCIsInZh
bHVlIjogIjM2In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFk
IiwidmFsdWUiOiAiMzIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVHJp
Z2dlciIsInZhbHVlIjogIjMzIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EYXNoYm9h
cmRfQmFjayIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX01heCIs
InZhbHVlIjogIjY0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk1vdXNlQnV0
dG9uIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJNb3VzZUJ1dHRvbl9MZWZ0Iiwi
dmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX1JpZ2h0IiwidmFs
dWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX01pZGRsZSIsInZhbHVl
IjogIjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUhpZGRlbkFyZWFNZXNoVHlw
ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX1N0YW5k
YXJkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVzaF9J
bnZlcnNlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVz
aF9MaW5lTG9vcCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19lSGlkZGVuQXJl
YU1lc2hfTWF4IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
VlJDb250cm9sbGVyQXhpc1R5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VD
b250cm9sbGVyQXhpc19UcmFja1BhZCIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAi
a19lQ29udHJvbGxlckF4aXNfSm95c3RpY2siLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1l
IjogImtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIiLCJ2YWx1ZSI6ICIzIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUiLCJ2YWx1ZXMi
OiBbIAorICAgICAgIHsibmFtZSI6ICJDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMiLCJ2
YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2
ZW50cyIsInZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNvbGxp
c2lvbkJvdW5kc1N0eWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9CRUdJTk5FUiIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAi
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAg
ICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUyIsInZhbHVlIjogIjIi
fQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCIsInZh
bHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05F
IiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxF
X0NPVU5UIiwidmFsdWUiOiAiNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9V
bmtub3duT3ZlcmxheSIsInZhbHVlIjogIjEwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUVycm9yX0ludmFsaWRIYW5kbGUiLCJ2YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTIifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQiLCJ2YWx1ZSI6ICIx
MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBl
IiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5VG9v
TG9uZyIsInZhbHVlIjogIjE1In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX05h
bWVUb29Mb25nIiwidmFsdWUiOiAiMTYifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJy
b3JfS2V5SW5Vc2UiLCJ2YWx1ZSI6ICIxNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUiLCJ2YWx1ZSI6ICIxOCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSIsInZhbHVlIjogIjE5In0KKyAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIiLCJ2YWx1ZSI6
ICIyMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50QmVE
ZXN0cm95ZWQiLCJ2YWx1ZSI6ICIyMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9BcnJheVRvb1NtYWxsIiwidmFsdWUiOiAiMjIifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfUmVxdWVzdEZhaWxlZCIsInZhbHVlIjogIjIzIn0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMjQifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSIsInZhbHVlIjogIjI1In0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlIiwi
dmFsdWUiOiAiMjYifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJv
ciIsInZhbHVlIjogIjI3In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Rvb01h
bnlNYXNrUHJpbWl0aXZlcyIsInZhbHVlIjogIjI5In0KKyAgICAgICAseyJuYW1lIjogIlZST3Zl
cmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUiLCJ2YWx1ZSI6ICIzMCJ9CitdfQorLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAg
IHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX090aGVyIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1NjZW5lIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX092ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fQmFja2dyb3VuZCIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9VdGlsaXR5IiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5h
bWUiOiAiVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nIiwidmFsdWUiOiAiNiJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX01heCIsInZhbHVlIjogIjcifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSRmlybXdhcmVFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAg
eyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfU3VjY2VzcyIsInZhbHVlIjogIjEifQorICAgICAgICx7
Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX0ZhaWwiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwidmFsdWVzIjogWyAKKyAg
ICAgICB7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9PSyIsInZhbHVlIjogIjAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQi
LCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9O
b3RpZmljYXRpb25RdWV1ZUZ1bGwiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAi
VlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSIsInZhbHVlIjogIjEwMiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFs
dWVBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAzIn0KK119CissICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVWUkluaXRFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSSW5p
dEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X1Vua25vd24iLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfSW5zdGFsbGF0aW9uTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0IiwidmFsdWUiOiAiMTAxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCIs
InZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0ZpbGVO
b3RGb3VuZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X0ZhY3RvcnlOb3RGb3VuZCIsInZhbHVlIjogIjEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kIiwidmFsdWUiOiAiMTA1In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSIsInZhbHVlIjog
IjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJl
Y3RvcnlJbnZhbGlkIiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfSG1kTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCIsInZhbHVlIjogIjEwOSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kIiwidmFsdWUi
OiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRo
IiwidmFsdWUiOiAiMTExIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9M
b2dQYXRoIiwidmFsdWUiOiAiMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUiLCJ2YWx1ZSI6ICIxMTMifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCIsInZhbHVlIjogIjExNCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1JldHJ5IiwidmFsdWUiOiAiMTE1
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2Vy
IiwidmFsdWUiOiAiMTE2In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfQW5v
dGhlckFwcExhdW5jaGluZyIsInZhbHVlIjogIjExNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCIsInZhbHVlIjogIjExOCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biIsInZhbHVlIjogIjExOSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzIiwidmFs
dWUiOiAiMTIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJG
b3JCYWNrZ3JvdW5kQXBwIiwidmFsdWUiOiAiMTIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IiLCJ2YWx1ZSI6ICIxMjIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlB
cHBzIiwidmFsdWUiOiAiMTIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
SW50ZXJuYWwiLCJ2YWx1ZSI6ICIxMjQifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9IbWREcml2ZXJJZElzTm9uZSIsInZhbHVlIjogIjEyNSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQiLCJ2YWx1ZSI6ICIx
MjYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3Vu
ZCIsInZhbHVlIjogIjEyNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZS
TW9uaXRvclN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMjgifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkIiwidmFsdWUiOiAi
MTI5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0
aW9uVHlwZSIsInZhbHVlIjogIjEzMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzIiwidmFsdWUiOiAiMTMxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MiLCJ2
YWx1ZSI6ICIxMzIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZE5vdEZvdW5kIiwidmFsdWUiOiAiMTMzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkIiwidmFsdWUiOiAiMTM0In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQiLCJ2YWx1ZSI6ICIyMDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24iLCJ2YWx1ZSI6ICIy
MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24iLCJ2
YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdExv
YWRlZCIsInZhbHVlIjogIjIwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2
ZXJfUnVudGltZU91dE9mRGF0ZSIsInZhbHVlIjogIjIwNCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UiLCJ2YWx1ZSI6ICIyMDUifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyMDYifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCIs
InZhbHVlIjogIjIwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1k
RGlzcGxheU5vdEZvdW5kIiwidmFsdWUiOiAiMjA4In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biIsInZhbHVlIjogIjIw
OSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRP
ZkJvdW5kcyIsInZhbHVlIjogIjIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkIiwidmFsdWUiOiAiMjEyIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAwIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkIiwidmFsdWUiOiAi
MzAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQiLCJ2YWx1ZSI6ICIzMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAzIn0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCIsInZhbHVlIjogIjMwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQiLCJ2
YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0
b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlIiwidmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzIiwi
dmFsdWUiOiAiMzA4In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
RmFpbGVkIiwidmFsdWUiOiAiNDAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkIiwidmFsdWUiOiAiNDAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSIs
InZhbHVlIjogIjQwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Db21wb3NpdG9y
X092ZXJsYXlJbml0RmFpbGVkIiwidmFsdWUiOiAiNDAzIn0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkIiwidmFsdWUiOiAiNDA0
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRv
Q29ubmVjdFRvT2N1bHVzUnVudGltZSIsInZhbHVlIjogIjEwMDAifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UiLCJ2
YWx1ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0IiwidmFsdWUiOiAiMTEwMiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9O
b1N0b3JlZENvbmZpZyIsInZhbHVlIjogIjExMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnIiwidmFsdWUiOiAiMTEw
NCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29TbWFsbCIsInZhbHVlIjogIjExMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiIsInZhbHVl
IjogIjExMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMTA3In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
U2VuZFVzZXJEYXRhU3RhcnQiLCJ2YWx1ZSI6ICIxMTA4In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFy
dCIsInZhbHVlIjogIjExMDkifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQiLCJ2YWx1ZSI6ICIxMTEw
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VzZXJEYXRhQWRkcmVzc1JhbmdlIiwidmFsdWUiOiAiMTExMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yIiwidmFs
dWUiOiAiMTExMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayIsInZhbHVlIjogIjExMTMifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3Vu
ZCIsInZhbHVlIjogIjIwMDAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2Ny
ZWVuc2hvdFR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfTW9ubyIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW8iLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfQ3ViZW1hcCIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9Nb25vUGFub3JhbWEiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZp
ZXciLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5
RmlsZW5hbWVzX1ZSIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJW
UlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQiLCJ2YWx1ZSI6ICIxMDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSIsInZh
bHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZh
bGlkRnJhbWVIZWFkZXJWZXJzaW9uIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyIsInZhbHVlIjogIjEwMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlIiwidmFsdWUiOiAi
MTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRl
ZEZvclRoaXNEZXZpY2UiLCJ2YWx1ZSI6ICIxMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSIsInZhbHVlIjogIjEwNiJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUi
LCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
U3RyZWFtU2V0dXBGYWlsdXJlIiwidmFsdWUiOiAiMTA4In0KKyAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCIsInZhbHVlIjogIjEwOSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVy
ZUhhbmRsZSIsInZhbHVlIjogIjExMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1l
cmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTExIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlIiwidmFs
dWUiOiAiMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJh
bWVBdmFpbGFibGUiLCJ2YWx1ZSI6ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50IiwidmFsdWUiOiAiMTE0In0KKyAgICAgICAseyJu
YW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUiLCJ2YWx1
ZSI6ICIxMTUifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9EaXN0b3J0ZWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCIs
InZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyIs
InZhbHVlIjogIjMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25FcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJy
b3JfQXBwS2V5QWxyZWFkeUV4aXN0cyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCIsInZhbHVlIjogIjEwMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4Iiwi
dmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Vbmtu
b3duQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX0lQQ0ZhaWxlZCIsInZhbHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyIsInZhbHVlIjog
IjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlm
ZXN0IiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9JbnZhbGlkQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCIsInZhbHVlIjogIjEwOSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmci
LCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0xh
dW5jaEluUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmciLCJ2YWx1ZSI6ICIxMTIifQorICAg
ICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5zaXRpb25BYm9ydGVkIiwidmFs
dWUiOiAiMTEzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBs
YXRlIiwidmFsdWUiOiAiMTE0In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9CdWZmZXJUb29TbWFsbCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjIw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZFBhcmFtZXRl
ciIsInZhbHVlIjogIjIwMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBs
aWNhdGlvblByb3BlcnR5IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvblByb3BlcnR5X05hbWVfU3RyaW5nIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9y
eV9TdHJpbmciLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICIxMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyIsInZhbHVlIjogIjE0
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nIiwi
dmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0Rl
c2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjUwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyIsInZhbHVlIjogIjUxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nIiwidmFsdWUi
OiAiNTIifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJjZV9T
dHJpbmciLCJ2YWx1ZSI6ICI1MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wiLCJ2YWx1ZSI6ICI2MCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sIiwidmFsdWUiOiAi
NjEifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2Vk
X0Jvb2wiLCJ2YWx1ZSI6ICI2MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNJbnRlcm5hbF9Cb29sIiwidmFsdWUiOiAiNjMifQorICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCIsInZhbHVlIjogIjcw
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXRlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblRyYW5z
aXRpb25fTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQiLCJ2YWx1ZSI6ICIxMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2giLCJ2
YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9O
ZXdBcHBMYXVuY2hlZCIsInZhbHVlIjogIjIwIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAi
dnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFt
ZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LIiwidmFsdWUiOiAiMSJ9CisgICAgICAg
LHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmciLCJ2YWx1ZSI6ICIx
MDAifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5n
X0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvblJlbW92ZWQi
LCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQiLCJ2YWx1ZSI6ICIxMDMifQorICAgICAg
ICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvciIsInZhbHVlIjogIjIw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jh
c2VTdGF0aW9uVW5pbml0aWFsaXplZCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFtZSI6
ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QiLCJ2
YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQiLCJ2YWx1ZSI6ICIyMDMifQorICAgICAgICx7Im5hbWUi
OiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlk
IiwidmFsdWUiOiAiMjA0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDaGFwZXJv
bmVDb25maWdGaWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfTGl2ZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGVfVGVtcCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RUNoYXBlcm9uZUltcG9ydEZsYWdzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAiRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5IiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAg
ICAgIHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAi
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9JbmNvbXBhdGlibGVWZXJz
aW9uIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9y
X0RvTm90SGF2ZUZvY3VzIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlvbiIsInZhbHVlIjog
IjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNPbldy
b25nRGV2aWNlIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRv
ckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQiLCJ2YWx1ZSI6ICIxMDUifQorICAg
ICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0
ZWQiLCJ2YWx1ZSI6ICIxMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlIiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29t
cG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQiLCJ2YWx1ZSI6ICIxMDgifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lIiwidmFsdWUiOiAiMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSIsInZhbHVlIjog
IjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlw
ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9BYnNv
bHV0ZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3Jt
X1RyYWNrZWREZXZpY2VSZWxhdGl2ZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAs
eyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9uZW50IiwidmFsdWUiOiAi
MyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlGbGFncyIsInZhbHVl
cyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vbmUiLCJ2YWx1ZSI6ICIw
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX0N1cnZlZCIsInZhbHVlIjogIjEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUkdTUzRYIiwidmFsdWUiOiAiMiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiIsInZhbHVl
IjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRF
dmVudHMiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1No
b3dHYW1lcGFkRm9jdXMiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyIsInZhbHVlIjogIjYifQorICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMiLCJ2YWx1ZSI6ICI3In0KKyAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVsIiwi
dmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93
bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzIiwidmFsdWUiOiAiOSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsIiwidmFsdWUiOiAiMTAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkIiwidmFsdWUi
OiAiMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEiLCJ2YWx1
ZSI6ICIxMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFt
YSIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1NvcnRX
aXRoTm9uU2NlbmVPdmVybGF5cyIsInZhbHVlIjogIjE0In0KKyAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2FyZCIsInZhbHVlIjogIjE1In0KK119CissICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18wIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2VfQnV0dG9uUHJlc3NfMSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zIiwidmFs
dWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291
bGRudEZpbmRTeXN0ZW1PdmVybGF5IiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXki
LCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9BcHBsaWNhdGlvblF1aXQiLCJ2YWx1ZSI6ICI2In0KK119CissICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsIiwidmFsdWUiOiAiMCJ9CisgICAgICAg
LHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCIsInZhbHVl
IjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRM
aW5lTW9kZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5w
dXRMaW5lTW9kZVNpbmdsZUxpbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtf
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMiLCJ2YWx1ZSI6ICIxIn0KK119
CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9VcCIsInZhbHVlIjogIjAifQor
ICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Eb3duIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0xlZnQiLCJ2YWx1ZSI6ICIyIn0KKyAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fUmlnaHQiLCJ2YWx1ZSI6ICIzIn0KKyAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fQ291bnQiLCJ2YWx1ZSI6ICI0In0KK119
CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIk92ZXJsYXlJbnRlcnNl
Y3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5h
bWUiOiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlIiwidmFsdWUiOiAi
MSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwi
dmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vbmUiLCJ2
YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5n
IiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9O
b3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRBcmciLCJ2YWx1ZSI6ICIzMDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCIsInZhbHVlIjogIjMwMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMiLCJ2YWx1ZSI6ICIzMDIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzIiwidmFs
dWUiOiAiMzAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55
VmVydGljZXMiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2Rl
bEVycm9yX011bHRpcGxlVGV4dHVyZXMiLCJ2YWx1ZSI6ICIzMDUifQorICAgICAgICx7Im5hbWUi
OiAiVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMzA2In0KKyAg
ICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzIiwidmFs
dWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91
Z2hUZXhDb29yZHMiLCJ2YWx1ZSI6ICIzMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiNDAwIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvbmVudFByb3BlcnR5IiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyIsInZhbHVlIjogIjEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUiLCJ2YWx1ZSI6
ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkIiwi
dmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzUHJl
c3NlZCIsInZhbHVlIjogIjgifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1Njcm9sbGVkIiwidmFsdWUiOiAiMTYifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RVZSTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIkVW
Uk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50IiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAg
ICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2Vy
VmFsdWUiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk5v
dGlmaWNhdGlvblN0eWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRVZSTm90aWZp
Y2F0aW9uU3R5bGVfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiRVZSTm90
aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5h
bWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCIsInZhbHVlIjogIjIw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0VuYWJs
ZWQiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5
bGVfQ29udGFjdF9BY3RpdmUiLCJ2YWx1ZSI6ICIyMDIifQorXX0KKywgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkIiwidmFsdWUiOiAiMyJ9CisgICAgICAg
LHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFpbGVkIiwidmFsdWUiOiAiNCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZh
dWx0IiwidmFsdWUiOiAiNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTY3Jl
ZW5zaG90RXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RF
cnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNj
cmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kIiwidmFsdWUiOiAiMTAxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFs
dWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX1NjcmVlbnNo
b3RBbHJlYWR5SW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwOCJ9CitdfQorXSwKKyJjb25zdHMiOlt7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kIiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWlu
dDMyX3QiLCAiY29uc3R2YWwiOiAiMTYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5U
cmFja2VkRGV2aWNlSW5kZXhPdGhlciIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVHJh
Y2tlZERldmljZUluZGV4SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI0Mjk0OTY3Mjk1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VsSW52
YWxpZFByb3BlcnR5Q29udGFpbmVyIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a191bkludmFsaWRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVU
YWdfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuRmxv
YXRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJj
b25zdHZhbCI6ICIxIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSW50MzJQcm9wZXJ0
eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6
ICIyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVWludDY0UHJvcGVydHlUYWciLCJj
b25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia191bkJvb2xQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6
ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuU3RyaW5nUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiNSJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJv
cGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjAifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIxIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjIzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
SGlkZGVuQXJlYVByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjMwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuT3Bl
blZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMTAwMDAifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMy
X3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5D
b250cm9sbGVyU3RhdGVBeGlzQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAi
Y29uc3R2YWwiOiAiNSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bE92ZXJsYXlIYW5k
bGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IFZST3ZlcmxheUhhbmRsZV90IiwgImNvbnN0
dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5TY3JlZW5zaG90SGFuZGxl
SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIwIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJTeXN0ZW1fVmVyc2lvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTeXN0ZW1fMDE1In0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJFeHRlbmRlZERpc3BsYXlf
MDAxIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSVHJhY2tl
ZENhbWVyYV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhBcHBsaWNhdGlv
bktleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIx
MjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX01pbWVUeXBlX0hvbWVBcHAiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvaG9tZSJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvZ2FtZV90aGVhdGVy
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJBcHBsaWNhdGlv
bnNfMDA2In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJDaGFwZXJv
bmVfMDAzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVTZXR1cF9WZXJz
aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNo
YXBlcm9uZVNldHVwXzAwNSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAiSVZSQ29tcG9zaXRv
cl9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IklWUkNvbXBvc2l0b3JfMDIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVy
bGF5TWF4S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFs
IjogIjEyOCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blZST3ZlcmxheU1heE5hbWVM
ZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTI4In0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUNvdW50IiwiY29uc3R0eXBl
IjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjY0In0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzIifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogIklWUk92ZXJsYXlfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJPdmVybGF5XzAxNCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJnZGMyMDE1In0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2UifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0aXAifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhhbmRncmlwIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhdHVzIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJSZW5kZXJNb2RlbHNfMDA1
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUi
LCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMjU2In0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSTm90aWZpY2F0aW9uc18wMDIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogIklWUlNldHRpbmdzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2V0dGluZ3NfMDAyIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RlYW12ciJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXF1aXJlSG1kIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmciLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkRHJpdmVyIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkSG1k
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3Bs
YXlEZWJ1ZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EZWJ1Z1By
b2Nlc3NQaXBlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJkZWJ1Z1Byb2Nlc3NQaXBlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEaXN0b3J0aW9uIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVnWCJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3BsYXlEZWJ1
Z1kifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibG9nbGV2ZWwifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImlwZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRVc2VEb21l
UHJvamVjdGlvbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRDYW1lcmFIZWlnaHQifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZERvbWVS
YWRpdXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfR3JpZENvbG9y
X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJn
cmlkQ29sb3IifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUGxheUFy
ZWFDb2xvcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAicGxheUFyZWFDb2xvciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9TaG93U3RhZ2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzaG93U3RhZ2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlyZWN0TW9kZSJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJl
Y3RNb2RlRWRpZFZpZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlRWRpZFBpZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFBpZCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNpbmdTcGVha2VycyJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVz
X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNw
ZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYXNlc3RhdGlvblBvd2VyTWFu
YWdlbWVudCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9OZXZlcktp
bGxQcm9jZXNzZXNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJuZXZlcktpbGxQcm9jZXNzZXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9hdCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXByb2pl
Y3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImZvcmNl
UmVwcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Zv
cmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRlZmF1bHRNaXJyb3JWaWV3
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2hv
d01pcnJvclZpZXcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfTWly
cm9yVmlld0dlb21ldHJ5X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJtaXJyb3JWaWV3R2VvbWV0cnkifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9z
aXRvckZyb21BcHBMYXVuY2hfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0
RGFzaGJvYXJkRnJvbUFwcExhdW5jaCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFz
aGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0VuYWJsZUhv
bWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5h
YmxlSG9tZUFwcCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZXRJ
bml0aWFsRGVmYXVsdEhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDeWNsZUJhY2tn
cm91bmRJbWFnZVRpbWVTZWMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFt
VlJfUmV0YWlsRGVtb19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInJldGFpbERlbW8ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImlwZE9mZnNldCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
TGlnaHRob3VzZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImRyaXZlcl9saWdodGhvdXNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNhYmxlaW11In0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2VkaXNhbWJpZ3VhdGlvbiJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlv
bkRlYnVnX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImRpc2FtYmlndWF0aW9uZGVidWcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInByaW1hcnliYXNlc3RhdGlvbiJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkYmhpc3RvcnkifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkcml2ZXJfbnVsbCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlcmlhbE51bWJlciJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmciLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxOdW1iZXIifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dYIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93WSJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dXaWR0aCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93SGVpZ2h0In0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlcldpZHRoIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJIZWln
aHQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3lu
Y1RvUGhvdG9uc19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheUZyZXF1ZW5jeSJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZXJpbnRlcmZhY2UifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25U
b3BfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJT
dGF0dXNBbHdheXNPblRvcCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlcklu
dGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIk1pbmltaXplVG9UcmF5In0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdHMifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNjcmVlbnNob3RU
eXBlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibm90aWZp
Y2F0aW9ucyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTm90aWZpY2F0aW9uc19E
b05vdERpc3R1cmJfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJEb05vdERpc3R1cmIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tl
eWJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAia2V5Ym9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X1R1dG9yaWFsQ29tcGxldGlvbnMiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiVHV0b3JpYWxDb21wbGV0aW9ucyJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfU2NhbGVYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIlNjYWxlWCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
S2V5Ym9hcmRfU2NhbGVZIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIlNjYWxlWSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
T2Zmc2V0TGVmdFgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0TGVmdFgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJk
X09mZnNldFJpZ2h0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJPZmZzZXRSaWdodFgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJv
YXJkX09mZnNldFkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiT2Zmc2V0WSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU21v
b3RoaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlNt
b290aGluZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9TZWN0aW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZjaGVjayJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9v
bCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJoZXVyaXN0
aWNBY3RpdmUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5SW5I
TURfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3
YXJuSW5ITUQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5T25s
eU9uY2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ3YXJuT25seU9uY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfQWxs
b3dUaW1pbmdTdG9yZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImFsbG93VGltaW5nU3RvcmUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJzYXZlVGltaW5nc09uRXhpdCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJwZXJmVGVzdERhdGEifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNvbGxpc2lvbkJvdW5kcyJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJv
dW5kc1N0eWxlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9u
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29s
bGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3Rh
bmNlX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFS
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
QiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9DYW1lcmFfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJjYW1lcmEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29s
bGlzaW9uQm91bmRzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmFG
b3JSb29tVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUci
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1h
Ql9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJj
YW1lcmFCb3VuZHNDb2xvckdhbW1hQiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
Q2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzU3Ry
ZW5ndGgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX1NlY3Rpb24iLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXVkaW8ifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5n
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9uUGxheWJh
Y2tEZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUmVjb3Jk
RGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJvblJlY29yZERldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFja01pcnJvckRldmljZSJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9mZlBsYXliYWNr
RGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZSZWNvcmRE
ZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIm9mZlJlY29yZERldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVk
aW9fVklWRUhETUlHYWluIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInZpdmVIRE1JR2FpbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93
ZXJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfUG93ZXJPZmZP
bkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJwb3dlck9mZk9uRXhpdCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJf
VHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZTY3JlZW5zVGltZW91dCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0dXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9S
ZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNz
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImF1dG9MYXVu
Y2hTdGVhbVZST25CdXR0b25QcmVzcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
RGFzaGJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9EYXNo
Ym9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlRGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFyY2FkZU1vZGUifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX21vZGVsc2tpbl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1vZGVsc2tpbnMifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
IklWUlNjcmVlbnNob3RzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiSVZSU2NyZWVuc2hvdHNfMDAxIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJJVlJSZXNvdXJjZXNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJJVlJSZXNvdXJjZXNfMDAxIn0KK10sCisic3RydWN0cyI6W3sic3Ry
dWN0IjogInZyOjpIbWRNYXRyaXgzNF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm0i
LCAiZmllbGR0eXBlIjogImZsb2F0IFszXVs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kTWF0
cml4NDRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCBbNF1bNF0ifV19CisseyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjNfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbM10ifV19CisseyJz
dHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF0ifV19CisseyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3Rv
cjNkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZG91
YmxlIFszXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yMl90IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6SG1kUXVhdGVybmlvbl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInci
LCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoreyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBl
IjogImRvdWJsZSJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9
LAoreyAiZmllbGRuYW1lIjogInoiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6SG1kQ29sb3JfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImciLCAiZmllbGR0eXBlIjogImZs
b2F0In0sCit7ICJmaWVsZG5hbWUiOiAiYiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZp
ZWxkbmFtZSI6ICJhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
SG1kUXVhZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInZDb3JuZXJzIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCBbNF0ifV19CisseyJzdHJ1Y3QiOiAidnI6
OkhtZFJlY3QyX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlRvcExlZnQiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCit7ICJmaWVsZG5hbWUiOiAidkJv
dHRvbVJpZ2h0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9XX0KKyx7
InN0cnVjdCI6ICJ2cjo6RGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAicmZSZWQiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoreyAiZmllbGRu
YW1lIjogInJmR3JlZW4iLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoreyAiZmllbGRuYW1l
IjogInJmQmx1ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQorLHsic3RydWN0IjogInZy
OjpUZXh0dXJlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKK3sgImZpZWxkbmFtZSI6ICJlVHlwZSIsICJmaWVsZHR5cGUiOiAi
ZW51bSB2cjo6RVRleHR1cmVUeXBlIn0sCit7ICJmaWVsZG5hbWUiOiAiZUNvbG9yU3BhY2UiLCAi
ZmllbGR0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn1dfQorLHsic3RydWN0IjogInZyOjpU
cmFja2VkRGV2aWNlUG9zZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmciLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRf
dCJ9LAoreyAiZmllbGRuYW1lIjogInZWZWxvY2l0eSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZy
OjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2QW5ndWxhclZlbG9jaXR5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogImVU
cmFja2luZ1Jlc3VsdCIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nUmVzdWx0In0s
Cit7ICJmaWVsZG5hbWUiOiAiYlBvc2VJc1ZhbGlkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAor
eyAiZmllbGRuYW1lIjogImJEZXZpY2VJc0Nvbm5lY3RlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wi
fV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVGV4dHVyZUJvdW5kc190IiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogInVNaW4iLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAidk1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ1TWF4Iiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInZNYXgiLCAiZmllbGR0eXBl
IjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpWUlZ1bGthblRleHR1cmVEYXRhX3QiLCJm
aWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9uSW1hZ2UiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9wRGV2aWNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
VmtEZXZpY2VfVCAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wUGh5c2ljYWxEZXZpY2UiLCAiZmll
bGR0eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiJ9LAoreyAiZmllbGRuYW1lIjog
Im1fcEluc3RhbmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtJbnN0YW5jZV9UICoifSwKK3sg
ImZpZWxkbmFtZSI6ICJtX3BRdWV1ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IFZrUXVldWVfVCAq
In0sCit7ICJmaWVsZG5hbWUiOiAibV9uUXVldWVGYW1pbHlJbmRleCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25IZWlnaHQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uRm9ybWF0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm1fblNhbXBsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6RDNEMTJUZXh0dXJlRGF0YV90IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogIm1fcFJlc291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgSUQz
RDEyUmVzb3VyY2UgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcENvbW1hbmRRdWV1ZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAi
bV9uTm9kZU1hc2siLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZy
OjpWUkV2ZW50X0NvbnRyb2xsZXJfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJidXR0
b24iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50
X01vdXNlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1
Y3QiOiAidnI6OlZSRXZlbnRfU2Nyb2xsX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
eGRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInlkZWx0YSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJyZXBlYXRDb3VudCIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfVG91Y2hQ
YWRNb3ZlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiYkZpbmdlckRvd24iLCAiZmll
bGR0eXBlIjogIl9Cb29sIn0sCit7ICJmaWVsZG5hbWUiOiAiZmxTZWNvbmRzRmluZ2VyRG93biIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVYRmlyc3QiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWUZpcnN0IiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImZWYWx1ZVhSYXciLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWVJhdyIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QiLCJm
aWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidWxVc2VyVmFsdWUiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uSWQiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1Byb2Nlc3NfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJwaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7
ICJmaWVsZG5hbWUiOiAib2xkUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmll
bGRuYW1lIjogImJGb3JjZWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0Ijog
InZyOjpWUkV2ZW50X092ZXJsYXlfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJvdmVy
bGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF9TdGF0dXNfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJzdGF0dXNTdGF0
ZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
S2V5Ym9hcmRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJjTmV3SW5wdXQiLCAiZmll
bGR0eXBlIjogImNoYXIgWzhdIn0sCit7ICJmaWVsZG5hbWUiOiAidVVzZXJWYWx1ZSIsICJmaWVs
ZHR5cGUiOiAidWludDY0X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfSXBkX3QiLCJm
aWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaXBkTWV0ZXJzIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9DaGFwZXJvbmVfdCIsImZpZWxkcyI6IFsK
K3sgImZpZWxkbmFtZSI6ICJtX25QcmV2aW91c1VuaXZlcnNlIiwgImZpZWxkdHlwZSI6ICJ1aW50
NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkN1cnJlbnRVbml2ZXJzZSIsICJmaWVsZHR5cGUi
OiAidWludDY0X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDAiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCit7ICJmaWVsZG5hbWUiOiAicmVzZXJ2ZWQxIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRf
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25GaWRlbGl0eUxldmVsIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiYlJlc2V0QnlTeXN0ZW1NZW51IiwgImZp
ZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JlZW5zaG90
X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInR5cGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogInByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJ1bkFyZ3NIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQor
LHsic3RydWN0IjogInZyOjpWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAib3ZlcmxheUhhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJuVmlzdWFsTW9kZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvcGVydHlf
dCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJjb250YWluZXIiLCAiZmllbGR0eXBlIjog
IlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJwcm9wIiwgImZp
ZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In1dfQorLHsic3RydWN0
IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZl
ZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1Jlc2VydmVkX3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJjb250cm9sbGVyIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
Q29udHJvbGxlcl90In0sCit7ICJmaWVsZG5hbWUiOiAibW91c2UiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9Nb3VzZV90In0sCit7ICJmaWVsZG5hbWUiOiAic2Nyb2xsIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2Nyb2xsX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJwcm9jZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvY2Vzc190In0s
Cit7ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QifSwKK3sgImZpZWxkbmFtZSI6ICJvdmVybGF5IiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfT3ZlcmxheV90In0sCit7ICJmaWVsZG5hbWUi
OiAic3RhdHVzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU3RhdHVzX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJrZXlib2FyZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2
ZW50X0tleWJvYXJkX3QifSwKK3sgImZpZWxkbmFtZSI6ICJpcGQiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9JcGRfdCJ9LAoreyAiZmllbGRuYW1lIjogImNoYXBlcm9uZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0NoYXBlcm9uZV90In0sCit7ICJmaWVsZG5h
bWUiOiAicGVyZm9ybWFuY2VUZXN0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJ0b3VjaFBhZE1vdmUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCJ9LAoreyAiZmllbGRu
YW1lIjogInNlYXRlZFplcm9Qb3NlUmVzZXQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJzY3JlZW5zaG90
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2NyZWVuc2hvdF90In0sCit7ICJm
aWVsZG5hbWUiOiAic2NyZWVuc2hvdFByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJhcHBsaWNh
dGlvbkxhdW5jaCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QifSwKK3sgImZpZWxkbmFtZSI6ICJjYW1lcmFTdXJmYWNlIiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCJ9LAoreyAiZmllbGRu
YW1lIjogIm1lc3NhZ2VPdmVybGF5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
TWVzc2FnZU92ZXJsYXlfdCJ9LAoreyAiZmllbGRuYW1lIjogInByb3BlcnR5IiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvcGVydHlfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImV2ZW50VHlwZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ0cmFja2VkRGV2aWNlSW5kZXgi
LCAiZmllbGR0eXBlIjogIlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICJmaWVsZG5hbWUiOiAi
ZXZlbnRBZ2VTZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
ImRhdGEiLCAiZmllbGR0eXBlIjogIlZSRXZlbnRfRGF0YV90In1dfQorLHsic3RydWN0IjogInZy
OjpIaWRkZW5BcmVhTWVzaF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInBWZXJ0ZXhE
YXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqIn0sCit7
ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVyQXhpc190IiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAi
eSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSQ29udHJvbGxl
clN0YXRlMDAxX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidW5QYWNrZXROdW0iLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAidWxCdXR0b25QcmVzc2Vk
IiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogInVsQnV0dG9uVG91
Y2hlZCIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJyQXhpcyIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3QgWzVdIn1dfQorLHsi
c3RydWN0IjogInZyOjpDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncyIsImZpZWxkcyI6IFsKK3sg
ImZpZWxkbmFtZSI6ICJzaXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRu
YW1lIjogImN1cnZlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJh
bnRpYWxpYXMiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCit7ICJmaWVsZG5hbWUiOiAic2NhbGUi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZGlzdGFuY2UiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiYWxwaGEiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidU9mZnNldCIsICJmaWVsZHR5cGUiOiAiZmxvYXQi
fSwKK3sgImZpZWxkbmFtZSI6ICJ2T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogInVTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFt
ZSI6ICJ2U2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZ3Jp
ZERpdnMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZ3JpZFdpZHRo
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImdyaWRTY2FsZSIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ0cmFuc2Zvcm0iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q2Ft
ZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjog
ImVGcmFtZVR5cGUiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJuV2lkdGgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCit7ICJmaWVsZG5hbWUiOiAibkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJuQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJuRnJhbWVTZXF1ZW5jZSIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QifV19CisseyJzdHJ1Y3QiOiAi
dnI6OkFwcE92ZXJyaWRlS2V5c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInBjaEtl
eSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICJmaWVsZG5hbWUiOiAicGNoVmFs
dWUiLCAiZmllbGR0eXBlIjogImNvbnN0IGNoYXIgKiJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q29t
cG9zaXRvcl9GcmFtZVRpbWluZyIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25TaXpl
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkZyYW1lSW5k
ZXgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJh
bWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJt
X25OdW1NaXNQcmVzZW50ZWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJtX25SZXByb2plY3Rpb25GbGFncyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsU3lzdGVtVGltZUluU2Vjb25kcyIsICJmaWVsZHR5
cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFByZVN1Ym1pdEdwdU1zIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxQb3N0U3VibWl0R3B1TXMi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFRvdGFsUmVuZGVy
R3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENvbXBv
c2l0b3JSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9ySWRsZUNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDbGllbnRGcmFtZUludGVydmFsTXMiLCAiZmllbGR0
eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFByZXNlbnRDYWxsQ3B1TXMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFdhaXRGb3JQcmVzZW50
Q3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFN1Ym1p
dEZyYW1lTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFdh
aXRHZXRQb3Nlc0NhbGxlZE1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fZmxOZXdQb3Nlc1JlYWR5TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVs
ZG5hbWUiOiAibV9mbE5ld0ZyYW1lUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sg
ImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXMiLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNcyIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRl
clN0YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9IbWRQ
b3NlIiwgImZpZWxkdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMiLCJmaWVsZHMiOiBbCit7ICJmaWVs
ZG5hbWUiOiAibV9uUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fbk51bUZyYW1lUHJlc2VudHMiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJm
aWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lcyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzT25TdGFy
dHVwIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bURy
b3BwZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAibV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtTG9hZGluZyIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzTG9hZGlu
ZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9w
cGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmciLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bURyb3BwZWRG
cmFtZXNUaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QiLCJm
aWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlNvdXJjZSIsICJmaWVsZHR5cGUiOiAic3RydWN0
IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2RGlyZWN0aW9uIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogImVPcmln
aW4iLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn1dfQor
LHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAidlBvaW50IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAidlVWcyIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJmRGlzdGFu
Y2UiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpJbnRlcnNlY3Rp
b25NYXNrUmVjdGFuZ2xlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9mbFRvcExl
ZnRYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxUb3BMZWZ0
WSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2lkdGgiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbEhlaWdodCIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlvbk1hc2tDaXJj
bGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWCIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWSIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUmFkaXVzIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6KGFub255bW91cykiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAibV9SZWN0YW5nbGUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJz
ZWN0aW9uTWFza1JlY3RhbmdsZV90In0sCit7ICJmaWVsZG5hbWUiOiAibV9DaXJjbGUiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNsZV90In1dfQorLHsic3Ry
dWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAibV9uUHJpbWl0aXZlVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51
bSB2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIn0sCit7ICJmaWVs
ZG5hbWUiOiAibV9QcmltaXRpdmUiLCAiZmllbGR0eXBlIjogIlZST3ZlcmxheUludGVyc2VjdGlv
bk1hc2tQcmltaXRpdmVfRGF0YV90In1dfQorLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9D
b21wb25lbnRTdGF0ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1Rv
Q29tcG9uZW50UmVuZGVyTW9kZWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWwiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoreyAiZmllbGRuYW1lIjogInVQ
cm9wZXJ0aWVzIiwgImZpZWxkdHlwZSI6ICJWUkNvbXBvbmVudFByb3BlcnRpZXMifV19CisseyJz
dHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1ZlcnRleF90IiwiZmllbGRzIjogWworeyAiZmllbGRu
YW1lIjogInZQb3NpdGlvbiIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJ2Tm9ybWFsIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInJmVGV4dHVyZUNvb3JkIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCBbMl0ifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1RleHR1cmVN
YXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1bldpZHRoIiwgImZpZWxkdHlwZSI6
ICJ1aW50MTZfdCJ9LAoreyAiZmllbGRuYW1lIjogInVuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1
aW50MTZfdCJ9LAoreyAiZmllbGRuYW1lIjogInJ1YlRleHR1cmVNYXBEYXRhIiwgImZpZWxkdHlw
ZSI6ICJjb25zdCB1aW50OF90ICoifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiclZlcnRleERhdGEiLCAiZmllbGR0eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKiJ9LAoreyAiZmllbGRuYW1l
IjogInVuVmVydGV4Q291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAickluZGV4RGF0YSIsICJmaWVsZHR5cGUiOiAiY29uc3QgdWludDE2X3QgKiJ9LAoreyAi
ZmllbGRuYW1lIjogInVuVHJpYW5nbGVDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJkaWZmdXNlVGV4dHVyZUlkIiwgImZpZWxkdHlwZSI6ICJUZXh0dXJl
SURfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiU2Nyb2xsV2hlZWxWaXNpYmxlIiwg
ImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Tm90aWZpY2F0aW9uQml0
bWFwX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9wSW1hZ2VEYXRhIiwgImZpZWxk
dHlwZSI6ICJ2b2lkICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAi
aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkJ5dGVzUGVyUGl4ZWwiLCAiZmllbGR0eXBl
IjogImludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OkNPcGVuVlJDb250ZXh0IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogIm1fcFZSU3lzdGVtIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2
cjo6SVZSU3lzdGVtICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUkNoYXBlcm9uZSIsICJmaWVs
ZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9w
VlJDaGFwZXJvbmVTZXR1cCIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZVNl
dHVwICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUkNvbXBvc2l0b3IiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUk92ZXJs
YXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJPdmVybGF5ICoifSwKK3sgImZpZWxkbmFt
ZSI6ICJtX3BWUlJlc291cmNlcyIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlJlc291cmNl
cyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJSZW5kZXJNb2RlbHMiLCAiZmllbGR0eXBlIjog
ImNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSRXh0
ZW5kZWREaXNwbGF5IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5
ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlNldHRpbmdzIiwgImZpZWxkdHlwZSI6ICJjbGFz
cyB2cjo6SVZSU2V0dGluZ3MgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQXBwbGljYXRpb25z
IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQXBwbGljYXRpb25zICoifSwKK3sgImZpZWxk
bmFtZSI6ICJtX3BWUlRyYWNrZWRDYW1lcmEiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJU
cmFja2VkQ2FtZXJhICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlNjcmVlbnNob3RzIiwgImZp
ZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKiJ9XX0KK10sCisibWV0aG9kcyI6
W3sKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSIsCisgICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFByb2plY3Rpb25NYXRyaXgiLAorICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4NDRfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogImZOZWFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJmRmFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UHJvamVjdGlvblJhdyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmTGVmdCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmUmlnaHQiICwicGFyYW10
eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZlRvcCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmQm90dG9tIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVEaXN0b3J0aW9u
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZlUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlYiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicERpc3RvcnRpb25Db29yZGluYXRlcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5
ZVRvSGVhZFRyYW5zZm9ybSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
RXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFRpbWVTaW5jZUxhc3RWc3luYyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZTZWNvbmRzU2luY2VMYXN0
VnN5bmMiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
dWxGcmFtZUNvdW50ZXIiICwicGFyYW10eXBlIjogInVpbnQ2NF90ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0RDNEOUFkYXB0ZXJJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50
MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXREWEdJT3V0cHV0SW5mbyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5B
ZGFwdGVySW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJJc0Rpc3BsYXlPbkRlc2t0b3AiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0RGlzcGxheVZpc2liaWxpdHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImJJc1Zpc2li
bGVPbkRlc2t0b3AiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZU9yaWdp
biIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93IiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9z
ZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZXNldFNlYXRlZFplcm9Qb3Nl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNlYXRlZFplcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmF3WmVyb1Bvc2VUb1N0
YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5k
aWNlc09mQ2xhc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tlZERldmljZUNsYXNzIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VDbGFzcyJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJh
Y2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blRyYWNrZWREZXZpY2VJbmRl
eEFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERl
dmljZUFjdGl2aXR5TGV2ZWwiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFRGV2aWNlQWN0
aXZpdHlMZXZlbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5EZXZpY2VJZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkFwcGx5VHJhbnNmb3JtIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBl
IjogImNvbnN0IHN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpI
bWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERldmljZUlu
ZGV4Rm9yQ29udHJvbGxlclJvbGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9s
ZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZp
Y2VJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2VkQ29udHJvbGxlclJv
bGUiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlQ2xhc3MiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9vbFRy
YWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGbG9hdFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SW50MzJUcmFja2VkRGV2aWNl
UHJvcGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBy
b3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0
eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VWludDY0VHJhY2tlZERldmljZVBy
b3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHJv
cCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmlu
Z1RyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3Bl
cnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnQiLAorICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dEV2ZW50V2l0aFBvc2UiLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2Vk
RGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0iLAorICAgICAgICJy
ZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJFdmVudFR5cGUifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlkZGVuQXJlYU1lc2giLAorICAgICAgICJyZXR1cm50
eXBlIjogInN0cnVjdCB2cjo6SGlkZGVuQXJlYU1lc2hfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFSGlkZGVu
QXJlYU1lc2hUeXBlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZSIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBDb250
cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogInZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJTdGF0ZVNpemUiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0ZVdp
dGhQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xs
ZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29u
dHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlRyaWdnZXJIYXB0
aWNQdWxzZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuQXhpc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVzRHVyYXRpb25NaWNyb1NlYyIgLCJwYXJhbXR5cGUiOiAidW5zaWduZWQgc2hvcnQi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QnV0dG9uSWROYW1lRnJvbUVudW0iLAorICAgICAg
ICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZUJ1dHRvbklkIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQnV0dG9u
SWQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21F
bnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVBeGlzVHlwZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYXB0dXJl
SW5wdXRGb2N1cyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxl
YXNlSW5wdXRGb2N1cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBl
IjogImJvb2wiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiRHJpdmVyRGVidWdSZXF1ZXN0IiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVxdWVzdCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzcG9uc2VCdWZmZXIi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUmVzcG9u
c2VCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJQZXJmb3JtRmlybXdhcmVVcGRhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJGaXJtd2FyZUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmciLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X1VzZXJQ
cm9tcHQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0V2luZG93Qm91bmRzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogImlu
dDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuWSIgLCJwYXJhbXR5cGUiOiAiaW50
MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5ZU91
dHB1dFZpZXdwb3J0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5YIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERYR0lP
dXRwdXRJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUi
OiAiaW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5BZGFwdGVyT3V0cHV0SW5k
ZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNv
bnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZUNhbWVyYUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2Ft
ZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIYXNDYW1lcmEiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhhc0NhbWVyYSIg
LCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRD
YW1lcmFGcmFtZVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5E
ZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWln
aHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
bkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhSW50cmluc2ljcyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBGb2NhbExlbmd0aCIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZFZlY3RvcjJf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENlbnRlciIgLCJwYXJhbXR5cGUiOiAidnI6
OkhtZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFQ
cm9qZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxaTmVhciIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFpGYXIiICwicGFyYW10
eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFByb2plY3Rpb24iICwicGFy
YW10eXBlIjogInZyOjpIbWRNYXRyaXg0NF90ICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWRDYW1lcmFIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Vmlk
ZW9TdHJlYW1GcmFtZUJ1ZmZlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBG
cmFtZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAibkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhl
YWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicFRleHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInZyOjpWUlRleHR1cmVCb3Vu
ZHNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0
cmVhbVRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
aFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBEM0Qx
MURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwicGFyYW10eXBlIjogInZvaWQg
KioifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjog
InZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
RnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6
OmdsVUludF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFy
YW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2Vk
Q2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJl
R0wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJh
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBZGRBcHBsaWNhdGlvbk1hbmlmZXN0IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQ
YXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJiVGVtcG9yYXJ5IiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc0FwcGxpY2F0
aW9uSW5zdGFsbGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlv
bkNvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkFwcGxpY2F0aW9uSW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlC
dWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVuIiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBs
aWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hUZW1wbGF0ZUFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTmV3QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwS2V5cyIgLCJhcnJheV9jb3VudCI6
ICJ1bktleXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6QXBwT3ZlcnJpZGVLZXlz
X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFw
cGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlw
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkxhdW5jaERhc2hib2FyZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiSWRlbnRpZnlBcHBsaWNhdGlvbiIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9u
UHJvY2Vzc0lkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRp
b25zRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIg
KiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmciLAorICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImVQcm9wZXJ0eSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9u
UHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQcm9wZXJ0eVZhbHVlQnVmZmVy
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3Bl
cnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9w
ZXJ0eVVpbnQ2NCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiQXV0b0xhdW5jaCIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBs
aWNhdGlvbkF1dG9MYXVuY2giLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBhcmFt
dHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZlckxl
biIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMiLAorICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFw
cEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bk1pbWVUeXBlc0J1ZmZlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0
aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRN
aW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50
cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVuSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3MiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXJncyIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJw
YXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZm
ZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldFRyYW5zaXRpb25TdGF0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBlcmZvcm1BcHBsaWNh
dGlvblByZWxhdW5jaENoZWNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGlj
YXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNR
dWl0VXNlclByb21wdFJlcXVlc3RlZCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJMYXVuY2hJbnRlcm5hbFByb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hCaW5hcnlQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcmd1bWVudHMiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFdvcmtpbmdEaXJlY3Rv
cnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbGlicmF0aW9uU3RhdGUiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFBsYXlBcmVhU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFBsYXlBcmVhUmVjdCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRJbmZvIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFNjZW5lQ29sb3IiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0Qm91bmRzQ29sb3IiLAorICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRD
b2xvckFycmF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogIm5OdW1PdXRwdXRDb2xvcnMiICwicGFyYW10eXBlIjogImludCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIiAs
InBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRDYW1l
cmFDb2xvciIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRDb2xvcl90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiQXJlQm91bmRzVmlzaWJsZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUJvdW5kc1Zpc2libGUiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogImJGb3JjZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkNvbW1pdFdvcmtpbmdDb3B5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJjb25maWdGaWxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0ZpbGUifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJSZXZlcnRXb3JraW5nQ29weSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVNpemUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBTaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVJlY3QiLAorICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJwdW5RdWFkc0Nv
dW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0
dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1
YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVy
b25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
aGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BsYXlBcmVh
U2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVgiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVoiICwicGFyYW10eXBlIjogImZsb2F0In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8iLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJhcnJheV9jb3VudCI6ICJ1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
U2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0
cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsb2FkRnJvbURpc2si
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwicGFyYW10eXBlIjogInZyOjpFQ2hhcGVy
b25lQ29uZmlnRmlsZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsImFy
cmF5X2NvdW50IjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJ
bmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGFnc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAi
cHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInB1blRhZ0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3VudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291bnQi
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiRXhwb3J0TGl2ZVRvQnVmZmVyIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5CdWZmZXJMZW5ndGgiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuSW1wb3J0RmxhZ3MiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRUcmFja2luZ1Nw
YWNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4ifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYWNraW5n
U3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiV2FpdEdldFBvc2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVyUG9z
ZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2Vf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBvc2VB
cnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUi
OiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFJlbmRlclBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1blJlbmRl
clBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQ
b3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUmVuZGVyUG9zZUFycmF5Q291bnQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEdhbWVQ
b3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10
eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJw
YXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicE91dHB1dFBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dEdhbWVQb3NlIiAsInBh
cmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiU3VibWl0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29t
cG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicFRleHR1cmUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQm91bmRzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBz
dHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJu
U3VibWl0RmxhZ3MiICwicGFyYW10eXBlIjogInZyOjpFVlJTdWJtaXRGbGFncyJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvc3RQcmVzZW50SGFuZG9mZiIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RnJhbWVUaW1pbmciLAor
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6Q29tcG9z
aXRvcl9GcmFtZVRpbWluZyAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5GcmFtZXNBZ28i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRG
cmFtZVRpbWluZ3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGltaW5nIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogIm5GcmFtZXMiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWVSZW1haW5pbmciLAorICAgICAgICJyZXR1cm50eXBlIjog
ImZsb2F0IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdW11bGF0aXZlU3RhdHMiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBTdGF0cyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0cyAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiblN0YXRzU2l6ZUluQnl0ZXMiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRlVG9D
b2xvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMiICwicGFyYW10eXBlIjogImZsb2F0In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50RmFkZUNvbG9yIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJGYWRlR3JpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMi
ICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYkZhZGVJbiIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVu
dEdyaWRBbHBoYSIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjog
IlNldFNreWJveE92ZXJyaWRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9z
aXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
VGV4dHVyZXMiICwiYXJyYXlfY291bnQiOiAidW5UZXh0dXJlQ291bnQiICwicGFyYW10eXBlIjog
ImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkNsZWFyU2t5Ym94T3ZlcnJpZGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JHb1RvQmFjayIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvclF1aXQiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIklzRnVsbHNjcmVlbiIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVudFNj
ZW5lRm9jdXNQcm9jZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0TGFzdEZyYW1lUmVuZGVyZXIiLAorICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5SZW5kZXJTY2VuZSIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd01pcnJvcldpbmRvdyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU1pcnJvcldpbmRvdyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNNaXJyb3JXaW5kb3dWaXNp
YmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3Np
dG9yRHVtcEltYWdlcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJiT3ZlcnJpZGUiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkZvcmNlUmVjb25uZWN0UHJvY2VzcyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3VzcGVuZFJlbmRlcmluZyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiYlN1c3BlbmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwi
cGFyYW10eXBlIjogInZvaWQgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VN
aXJyb3JUZXh0dXJlRDNEMTEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMVNoYWRlclJlc291cmNl
VmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRNaXJyb3JUZXh0dXJlR0wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3Np
dG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVF
eWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Z2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGdsU2hhcmVkVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6Omds
U2hhcmVkVGV4dHVyZUhhbmRsZV90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VTaGFyZWRHTFRleHR1cmUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImdsVGV4dHVyZUlkIiAsInBhcmFt
dHlwZSI6ICJ2cjo6Z2xVSW50X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRl
eHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlVu
bG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0
b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1Jl
cXVpcmVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQiLAorICAgICAgICJyZXR1cm50eXBl
IjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwUGh5c2ljYWxEZXZpY2UiICwicGFyYW10eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNl
X1QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZm
ZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
RmluZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE92ZXJsYXlL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUZyaWVuZGx5TmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJEZXN0cm95T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEhpZ2hRdWFsaXR5T3ZlcmxheSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEhpZ2hR
dWFsaXR5T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5S2V5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1
aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwi
cGFyYW10eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0T3ZlcmxheU5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5
SW1hZ2VEYXRhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInB2QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicHVuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSIs
CisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJlbmRlcmluZ1Bp
ZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1blBJRCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldE92ZXJsYXlSZW5kZXJpbmdQaWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZsYWciLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5RmxhZ3MifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRW5hYmxlZCIgLCJw
YXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUZsYWci
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwYkVuYWJsZWQiICwicGFyYW10eXBlIjogImJvb2wgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUNvbG9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZSZWQiICwicGFyYW10eXBlIjogImZs
b2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkdyZWVuIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZCbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUNvbG9yIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmUmVkIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZHcmVlbiIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmQmx1ZSIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUFscGhhIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZB
bHBoYSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92
ZXJsYXlBbHBoYSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4ZWxBc3BlY3QiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlRleGVsQXNwZWN0IiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRleGVsQXNwZWN0
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlTb3J0T3JkZXIiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Tb3J0T3JkZXIiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5U29ydE9yZGVyIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1blNv
cnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjog
ImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5V2lkdGhJbk1ldGVycyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
ZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZk1pbkRpc3Rh
bmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiZk1heERpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBm
TWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVU
ZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVUZXh0dXJlQ29s
b3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVyZUJvdW5kcyIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheVRleHR1
cmVCb3VuZHMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFuc2Zv
cm1UeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVRyYWNraW5n
T3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFja2luZ09y
aWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVHJh
Y2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InB1blRyYWNrZWREZXZpY2UiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlU
cmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFu
c2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuQ29tcG9uZW50TmFtZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTaG93T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhpZGVPdmVybGF5IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNPdmVybGF5VmlzaWJs
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYW5zZm9ybUZv
ck92ZXJsYXlDb29yZGluYXRlcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNvb3JkaW5h
dGVzSW5PdmVybGF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dE92
ZXJsYXlFdmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXZl
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bmNiVlJFdmVudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJbnB1dE1ldGhvZCIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUlucHV0TWV0aG9kIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1ldGhvZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUlucHV0TWV0aG9kIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVy
bGF5TW91c2VTY2FsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpI
bWRWZWN0b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU1vdXNlU2Nh
bGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicHZlY01vdXNlU2NhbGUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVj
dG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBQYXJhbXMiICwi
cGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1z
X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBSZXN1bHRzIiAsInBhcmFtdHlwZSI6ICJz
dHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVy
bGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJJc0hvdmVyVGFyZ2V0T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEdhbWVwYWRGb2N1c092ZXJsYXkiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0R2FtZXBhZEZv
Y3VzT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxOZXdGb2N1c092
ZXJsYXkiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheU5laWdoYm9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJlRGlyZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24i
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bEZyb20iICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsVG8iICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTW92ZUdh
bWVwYWRGb2N1c1RvTmVpZ2hib3IiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVy
bGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVE
aXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiQ2xlYXJPdmVybGF5VGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlSYXciLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHZCdWZmZXIiICwi
cGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5IZWlnaHQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXB0
aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92
ZXJsYXlGcm9tRmlsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hGaWxlUGF0aCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlVGV4dHVyZUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBO
YXRpdmVUZXh0dXJlUmVmIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicE5hdGl2ZUZvcm1hdCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBBUElUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRl
eHR1cmVUeXBlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29sb3JTcGFjZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4
dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0
aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFdpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhlaWdodCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlRGFzaGJvYXJkT3Zlcmxh
eSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicE1haW5IYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRodW1ibmFpbEhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjog
IklzRGFzaGJvYXJkVmlzaWJsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJ
ZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93RGFzaGJvYXJkIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hPdmVybGF5VG9TaG93IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
U2hvd0tleWJvYXJkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlSW5wdXRNb2Rl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZUxpbmVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRl
eHRJbnB1dExpbmVNb2RlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoRGVzY3JpcHRpb24i
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
Q2hhck1heCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hFeGlzdGluZ1RleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImJVc2VNaW5pbWFsTW9kZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9hcmRGb3JPdmVybGF5IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1v
ZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFk
VGV4dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlv
biIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEtleWJvYXJkVGV4dCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFRleHQiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJjY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZUtleWJvYXJkIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFj
a2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVj
dCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJhdm9pZFJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUmVjdDJfdCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2siLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hc2tQcmlt
aXRpdmVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5OdW1NYXNrUHJpbWl0
aXZlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
blByaW1pdGl2ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRPdmVybGF5RmxhZ3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicEZsYWdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWVzc2FnZU92ZXJsYXkiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFRleHQiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENhcHRpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjBU
ZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hCdXR0b24xVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMlRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjNUZXh0IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFJlbmRlck1v
ZGVsX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVy
TW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwcFJlbmRlck1vZGVsIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1v
ZGVsX3QgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVJlbmRlck1vZGVsIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
UmVuZGVyTW9kZWxfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0dXJl
X0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVyZUlkIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
cFRleHR1cmUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90ICoqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJS
ZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZyZWVUZXh0dXJlIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkVGV4dHVy
ZUQzRDExX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVy
ZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwRDNEMTFEZXZpY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBlIjogInZvaWQgKioifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBlIjog
InZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBEc3RUZXh0dXJlIiAs
InBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRl
eHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExVGV4dHVyZTJEIiAsInBhcmFtdHlw
ZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxO
YW1lIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbEluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuUmVuZGVyTW9kZWxOYW1lTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVy
TW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbENvdW50IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21wb25l
bnRDb3VudCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENv
bXBvbmVudE5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29t
cG9uZW50SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjog
ImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50TmFtZUxlbiIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29t
cG9uZW50QnV0dG9uTWFzayIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dENvbXBvbmVudFN0YXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENv
bXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogImNvbnN0IHZyOjpWUkNv
bnRyb2xsZXJTdGF0ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU3RhdGUiICwicGFy
YW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3Rh
dGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbXBvbmVudFN0YXRlIiAsInBhcmFt
dHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCIsCisgICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9k
ZWxUaHVtYm5haWxVUkwiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUi
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aFRodW1ibmFpbFVSTCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVGh1bWJuYWlsVVJMTGVuIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgiLAorICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hS
ZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE9yaWdpbmFsUGF0aCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuT3JpZ2luYWxQYXRoTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1v
ZGVsRXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNyZWF0ZU5vdGlmaWNhdGlv
biIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsVXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJOb3RpZmljYXRpb25UeXBl
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAic3R5bGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJOb3RpZmljYXRpb25TdHlsZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBJbWFnZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpOb3RpZmljYXRpb25CaXRtYXBfdCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicE5vdGlmaWNhdGlvbklkIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJOb3RpZmljYXRpb25JZCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJOb3RpZmljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZW1v
dmVOb3RpZmljYXRpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJOb3RpZmljYXRp
b25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAibm90
aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZyOjpWUk5vdGlmaWNhdGlvbklkIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0
aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3luYyIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYkZv
cmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldEJvb2wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdz
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJiVmFsdWUiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
ZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0SW50MzIiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
dHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJuVmFsdWUiICwicGFyYW10eXBlIjogImludDMyX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RmxvYXQiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
Y3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJmbFZhbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNl
dHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRTdHJpbmciLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEJvb2wi
LAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0SW50MzIiLAorICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RmxvYXQiLAorICAgICAgICJyZXR1cm50eXBlIjogImZsb2F0IiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0
aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmluZyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2Vj
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUi
OiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5WYWx1ZUxlbiIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
UmVtb3ZlU2VjdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjog
IlJlbW92ZUtleUluU2VjdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGlu
Z3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJSZXF1ZXN0U2NyZWVuc2hvdCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUi
ICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSG9va1NjcmVlbnNob3QiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBTdXBwb3J0ZWRUeXBlcyIgLCJhcnJh
eV9jb3VudCI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OkVWUlNjcmVlbnNo
b3RUeXBlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUi
OiAiaW50In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
Y3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNo
b3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmaWxlbmFt
ZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlbmFtZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNjaEZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxQcm9ncmVz
cyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJUYWtl
U3RlcmVvU2NyZWVuc2hvdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNo
b3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91
dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU3VibWl0U2NyZWVuc2hvdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
c2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3Jl
ZW5zaG90VHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNvdXJjZVByZXZpZXdGaWxl
bmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU291cmNlVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZXNvdXJjZXMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRTaGFyZWRSZXNvdXJjZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291
cmNlcyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVzb3VyY2VGdWxsUGF0aCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQ
YXRoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Citd
Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ExMGY5NTFkYzU2MzkzZGNh
YzliYjgwZTgzNDIwYmM0YTkxNTNiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKQEAgLTAsMCArMSwxODY5IEBACisvLz09
PT09PT0gQ29weXJpZ2h0IChjKSBWYWx2ZSBDb3Jwb3JhdGlvbiwgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gPT09PT09PT09PT09PT09CisvLworLy8gUHVycG9zZTogSGVhZGVyIGZvciBmbGF0dGVkIFN0
ZWFtQVBJLiBVc2UgdGhpcyBmb3IgYmluZGluZyB0byBvdGhlciBsYW5ndWFnZXMuCisvLyBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQsIGRvIG5vdCBlZGl0IGl0LgorLy8KKy8vPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworI2lmbmRlZiBfX09QRU5WUl9BUElfRkxBVF9IX18KKyNkZWZpbmUgX19P
UEVOVlJfQVBJX0ZMQVRfSF9fCisjaWYgZGVmaW5lZCggX1dJTjMyICkgfHwgZGVmaW5lZCggX19j
bGFuZ19fICkKKyNwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworI2Rl
ZmluZSBFWFRFUk5fQyBleHRlcm4gIkMiCisjZWxzZQorI2RlZmluZSBFWFRFUk5fQworI2VuZGlm
CisKKyNkZWZpbmUgT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgX19zdGRjYWxsCisKKy8vIE9QRU5W
UiBBUEkgZXhwb3J0IG1hY3JvCisjaWYgZGVmaW5lZCggX1dJTjMyICkgJiYgIWRlZmluZWQoIF9Y
MzYwICkKKyAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9FWFBPUlRTICkKKyAgICAgICAj
ZGVmaW5lIFNfQVBJIEVYVEVSTl9DIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisgICAgICAgI2Vs
aWYgZGVmaW5lZCggT1BFTlZSX0FQSV9OT0RMTCApCisgICAgICAgI2RlZmluZSBTX0FQSSBFWFRF
Uk5fQworICAgICAgICNlbHNlCisgICAgICAgI2RlZmluZSBTX0FQSSBleHRlcm4gIkMiIF9fZGVj
bHNwZWMoIGRsbGltcG9ydCApIAorICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9SVFMK
KyNlbGlmIGRlZmluZWQoIF9fR05VQ19fICkKKyAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQ
SV9FWFBPUlRTICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DIF9fYXR0cmlidXRlX18g
KCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICAgICNlbHNlCisgICAgICAgI2RlZmluZSBT
X0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9SVFMKKyNlbHNl
IC8vICFXSU4zMgorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX0VYUE9SVFMgKQorICAg
ICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MKKyAgICAgICAjZWxzZQorICAgICAgICNkZWZpbmUg
U19BUEkgRVhURVJOX0MKKyAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBPUlRTCisjZW5k
aWYKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWYgZGVmaW5lZCggX19XSU4zMiApCit0eXBl
ZGVmIGNoYXIgYm9vbDsKKyNlbHNlCisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2VuZGlmCisKK3R5
cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMy
X3QgUHJvcGVydHlUeXBlVGFnX3Q7CisKKworLy8gT3BlblZSIENvbnN0YW50cworCitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4
Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERldmljZUluZGV4X0htZCA9
IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQg
PSAxNjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNrZWREZXZpY2VJbmRleE90
aGVyID0gNDI5NDk2NzI5NDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNrZWRE
ZXZpY2VJbmRleEludmFsaWQgPSA0Mjk0OTY3Mjk1Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxv
bmcga191bEludmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgaW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyA9IDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50
IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191
blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkJv
b2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5TdHJpbmdQ
cm9wZXJ0eVRhZyA9IDU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5IbWRNYXRyaXgz
NFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5IbWRNYXRy
aXg0NFByb3BlcnR5VGFnID0gMjE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5IbWRW
ZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkht
ZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
SGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgPSAzMjc2ODsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCA9IDU7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAw
Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQg
PSAwOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTeXN0ZW1fVmVyc2lvbiA9ICJJVlJTeXN0ZW1f
MDE1IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24gPSAi
SVZSRXh0ZW5kZWREaXNwbGF5XzAwMSI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlRyYWNrZWRD
YW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyI7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgaW50IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCA9IDEyODsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfTWltZVR5cGVfSG9tZUFwcCA9ICJ2ci9ob21lIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsK
K3N0YXRpYyBjb25zdCBjaGFyICogSVZSQXBwbGljYXRpb25zX1ZlcnNpb24gPSAiSVZSQXBwbGlj
YXRpb25zXzAwNiI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUkNoYXBlcm9uZV9WZXJzaW9uID0g
IklWUkNoYXBlcm9uZV8wMDMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJDaGFwZXJvbmVTZXR1
cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7CitzdGF0aWMgY29uc3QgY2hhciAq
IElWUkNvbXBvc2l0b3JfVmVyc2lvbiA9ICJJVlJDb21wb3NpdG9yXzAyMCI7CitzdGF0aWMgY29u
c3QgdW5zaWduZWQgaW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggPSAxMjg7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoID0gMTI4Oworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4T3ZlcmxheUNvdW50ID0gNjQ7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2
ZXNDb3VudCA9IDMyOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJPdmVybGF5X1ZlcnNpb24gPSAi
SVZST3ZlcmxheV8wMTQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0Nv
bXBvbmVudF9HREMyMDE1ID0gImdkYzIwMTUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9D
b250cm9sbGVyX0NvbXBvbmVudF9CYXNlID0gImJhc2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9UaXAgPSAidGlwIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAiaGFuZGdyaXAiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3Rh
dHVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24gPSAiSVZS
UmVuZGVyTW9kZWxzXzAwNSI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5Ob3RpZmlj
YXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSTm90aWZpY2F0
aW9uc19WZXJzaW9uID0gIklWUk5vdGlmaWNhdGlvbnNfMDAyIjsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4Oworc3RhdGljIGNvbnN0IGNo
YXIgKiBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2VjdGlvbiA9ICJzdGVhbXZyIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5n
ID0gImZvcmNlZERyaXZlciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9y
Y2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQ
cm9jZXNzUGlwZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRW5hYmxlRGlz
dG9ydGlvbl9Cb29sID0gImVuYWJsZURpc3RvcnRpb24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJkaXNw
bGF5RGVidWdZIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVt
QnV0dG9uVG9BbGxBcHBzX0Jvb2wgPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJh
Y2tncm91bmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRV
c2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZENhbWVyYUhlaWdodF9G
bG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJh
ZGl1cyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfR3JpZENvbG9yX1N0cmlu
ZyA9ICJncmlkQ29sb3IiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1BsYXlB
cmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3Rp
dmF0ZU11bHRpcGxlRHJpdmVycyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJf
RGlyZWN0TW9kZV9Cb29sID0gImRpcmVjdE1vZGUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9JbnQz
MiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFt
VlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5nU3BlYWtlcnMiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQg
PSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3Rh
dGlvblBvd2VyTWFuYWdlbWVudCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJf
TmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2VzIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0g
InJlbmRlclRhcmdldE11bHRpcGxpZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9u
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9BbGxvd1JlcHJvamVjdGlvbl9C
b29sID0gImFsbG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24iOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rp
b24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFkVHJh
Y2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19JbnQzMiA9ICJkZWZhdWx0TWlycm9y
VmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdf
Qm9vbCA9ICJzaG93TWlycm9yVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFt
VlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2gg
PSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9z
aXRvckZyb21BcHBMYXVuY2giOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExh
dW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRPdmVybGF5QXBw
c0Zyb21EYXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFibGVI
b21lQXBwIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TZXRJbml0aWFsRGVm
YXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50MzIgPSAi
Q3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9ICJkcml2ZXJfbGlnaHRob3Vz
ZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29s
ID0gImRpc2FibGVpbXUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX1Vz
ZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1YXRpb25EZWJ1Z19JbnQzMiA9ICJk
aXNhbWJpZ3VhdGlvbmRlYnVnIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3Vz
ZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhpc3Rv
cnkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJpdmVyX251
bGwiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcg
PSAic2VyaWFsTnVtYmVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9Nb2RlbE51
bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9O
dWxsX1dpbmRvd1hfSW50MzIgPSAid2luZG93WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0ludDMyID0gIndpbmRvd0hlaWdodCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVy
V2lkdGgiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQz
MiA9ICJyZW5kZXJIZWlnaHQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1NlY29u
ZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9ucyI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9
ICJkaXNwbGF5RnJlcXVlbmN5IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfVXNlckludGVy
ZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25U
b3AiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXplVG9U
cmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9V
c2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9ICJzY3Jl
ZW5zaG90VHlwZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX05vdGlmaWNhdGlvbnNfU2Vj
dGlvbiA9ICJub3RpZmljYXRpb25zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTm90aWZp
Y2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21wbGV0aW9ucyA9ICJUdXRvcmlhbENv
bXBsZXRpb25zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0g
IlNjYWxlWCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJT
Y2FsZVkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9PZmZzZXRMZWZ0WCA9
ICJPZmZzZXRMZWZ0WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX09mZnNl
dFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXli
b2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXli
b2FyZF9TbW9vdGhpbmcgPSAiU21vb3RoaW5nIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
UGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bl
cmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29sID0gIndhcm5JbkhNRCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJuT25s
eU9uY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVf
Qm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVy
Zl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1pbmdzT25FeGl0IjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xs
aXNpb25Cb3VuZHMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
U3R5bGVfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzU3R5bGUiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNp
b25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0NlbnRl
ck1hcmtlck9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX1Bs
YXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24iOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNv
bGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdh
bW1hUiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdh
bW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNp
b25Cb3VuZHNDb2xvckdhbW1hQiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lv
bkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFi
bGVDYW1lcmEiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJh
SW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2FyZCI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9v
bCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCA9ICJlbmFibGVDYW1l
cmFGb3JSb29tVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHND
b2xvckdhbW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFC
b3VuZHNDb2xvckdhbW1hRyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3Vu
ZHNDb2xvckdhbW1hQl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1l
cmFCb3VuZHNDb2xvckdhbW1hQSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9C
b3VuZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrRGV2
aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fT25SZWNvcmREZXZpY2VfU3Ry
aW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9f
T25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmlu
ZyA9ICJvZmZQbGF5YmFja0RldmljZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlv
X09mZlJlY29yZERldmljZV9TdHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sID0gInBvd2VyT2ZmT25F
eGl0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfVHVybk9mZlNjcmVlbnNUaW1l
b3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZkNv
bnRyb2xsZXJzVGltZW91dCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1JldHVy
blRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0ID0gInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblBy
ZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNo
Ym9hcmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9C
b29sID0gImFyY2FkZU1vZGUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9tb2RlbHNraW5f
U2VjdGlvbiA9ICJtb2RlbHNraW5zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRHJpdmVy
X0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlNjcmVlbnNo
b3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFyICog
SVZSUmVzb3VyY2VzX1ZlcnNpb24gPSAiSVZSUmVzb3VyY2VzXzAwMSI7CisKKy8vIE9wZW5WUiBF
bnVtcworCit0eXBlZGVmIGVudW0gRVZSRXllCit7CisgICAgICAgRVZSRXllX0V5ZV9MZWZ0ID0g
MCwKKyAgICAgICBFVlJFeWVfRXllX1JpZ2h0ID0gMSwKK30gRVZSRXllOworCit0eXBlZGVmIGVu
dW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX0RpcmVj
dFggPSAwLAorICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9PcGVuR0wgPSAxLAorICAg
ICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9WdWxrYW4gPSAyLAorICAgICAgIEVUZXh0dXJl
VHlwZV9UZXh0dXJlVHlwZV9JT1N1cmZhY2UgPSAzLAorICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0
dXJlVHlwZV9EaXJlY3RYMTIgPSA0LAorfSBFVGV4dHVyZVR5cGU7CisKK3R5cGVkZWYgZW51bSBF
Q29sb3JTcGFjZQoreworICAgICAgIEVDb2xvclNwYWNlX0NvbG9yU3BhY2VfQXV0byA9IDAsCisg
ICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9HYW1tYSA9IDEsCisgICAgICAgRUNvbG9yU3Bh
Y2VfQ29sb3JTcGFjZV9MaW5lYXIgPSAyLAorfSBFQ29sb3JTcGFjZTsKKwordHlwZWRlZiBlbnVt
IEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3Vs
dF9VbmluaXRpYWxpemVkID0gMSwKKyAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1
bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyA9IDEwMCwKKyAgICAgICBFVHJhY2tpbmdSZXN1bHRf
VHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEwMSwKKyAgICAgICBFVHJh
Y2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyA9IDIwMCwKKyAgICAgICBFVHJh
Y2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlID0gMjAxLAorfSBF
VHJhY2tpbmdSZXN1bHQ7CisKK3R5cGVkZWYgZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7Cisg
ICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxpZCA9IDAs
CisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0gMSwK
KyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVy
ID0gMiwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19HZW5l
cmljVHJhY2tlciA9IDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNl
Q2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LAorfSBFVHJhY2tlZERldmljZUNsYXNzOworCit0
eXBlZGVmIGVudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQoreworICAgICAgIEVUcmFja2VkQ29u
dHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQgPSAwLAorICAgICAgIEVU
cmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX0xlZnRIYW5kID0gMSwK
KyAgICAgICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9SaWdo
dEhhbmQgPSAyLAorfSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlOworCit0eXBlZGVmIGVudW0gRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbl9U
cmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwKKyAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bl9UcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLAorICAgICAgIEVUcmFja2luZ1VuaXZlcnNl
T3JpZ2luX1RyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLAorfSBFVHJhY2tp
bmdVbml2ZXJzZU9yaWdpbjsKKwordHlwZWRlZiBlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkK
K3sKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSW52YWxpZCA9IDAsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcg
PSAxMDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Nb2RlbE51bWJlcl9T
dHJpbmcgPSAxMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TZXJpYWxO
dW1iZXJfU3RyaW5nID0gMTAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
UmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgPSAxMDA0LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyA9IDEwMDUsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmlu
ZyA9IDEwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhcmR3YXJlUmV2
aXNpb25fU3RyaW5nID0gMTAwNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
QWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5nID0gMTAwOCwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0g
MTAwOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlSXNXaXJlbGVz
c19Cb29sID0gMTAxMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNl
SXNDaGFyZ2luZ19Cb29sID0gMTAxMSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0ID0gMTAx
MywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfVXBkYXRlQXZh
aWxhYmxlX0Jvb2wgPSAxMDE0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9G
aXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9IDEwMTUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgPSAxMDE2LAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCA9
IDEwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlVmVyc2lv
bl9VaW50NjQgPSAxMDE4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GUEdB
VmVyc2lvbl9VaW50NjQgPSAxMDE5LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9WUkNWZXJzaW9uX1VpbnQ2NCA9IDEwMjAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCA9IDEwMjIsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCA9IDEwMjMsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3Rl
bVdpdGhIbWRfQm9vbCA9IDEwMjQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0NvbnRhaW5zUHJveGltaXR5U2Vuc29yX0Jvb2wgPSAxMDI1LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VQcm92aWRlc0JhdHRlcnlTdGF0dXNfQm9vbCA9IDEwMjYs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jv
b2wgPSAxMDI3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9Q
cm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgPSAxMDI4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9EZXZpY2VDbGFzc19JbnQzMiA9IDEwMjksCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0hhc0NhbWVyYV9Cb29sID0gMTAzMCwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRHJpdmVyVmVyc2lvbl9TdHJpbmcgPSAxMDMxLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jv
b2wgPSAxMDMyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WaXZlU3lzdGVt
QnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX1BhcmVudERyaXZlcl9VaW50NjQgPSAxMDM0LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCA9IDIwMDAsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNf
RmxvYXQgPSAyMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5
RnJlcXVlbmN5X0Zsb2F0ID0gMjAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfVXNlcklwZE1ldGVyc19GbG9hdCA9IDIwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgPSAyMDA1LAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCA9IDIwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0lzT25E
ZXNrdG9wX0Jvb2wgPSAyMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9E
aXNwbGF5TUNUeXBlX0ludDMyID0gMjAwOCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ID0gMjAwOSwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgPSAyMDEwLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9FZGlkVmVuZG9ySURfSW50MzIgPSAyMDExLAorICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nID0g
MjAxMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VS
aWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9E
aXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ID0gMjAxNCwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfRWRpZFByb2R1Y3RJRF9JbnQzMiA9IDIwMTUsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIwMTYs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIg
PSAyMDE3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NPZmZz
ZXRfRmxvYXQgPSAyMDE4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNw
bGF5R0NTY2FsZV9GbG9hdCA9IDIwMTksCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ID0gMjAyMCwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nID0gMjAyMSwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0ID0g
MjAyMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlclJpZ2h0
VV9GbG9hdCA9IDIwMjQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xlbnND
ZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQgPSAyMDI2LAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAy
NywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhRmlybXdhcmVEZXNj
cmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ID0gMjAyOSwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJzaW9uX1VpbnQ2NCA9IDIwMzAsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25f
VWludDY0ID0gMjAzMSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXVkaW9G
aXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAzMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgPSAyMDMzLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3
RGVncmVlc19GbG9hdCA9IDIwMzQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIwMzUsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgPSAy
MDM2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5QWxsb3dOaWdo
dE1vZGVfQm9vbCA9IDIwMzcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgPSAyMDM4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiA9IDIwMzksCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50MzIg
PSAyMDQwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFn
ZURhdGFfQmluYXJ5ID0gMjA0MSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
VXNlc0RyaXZlckRpcmVjdE1vZGVfQm9vbCA9IDIwNDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfU3VwcG9ydGVkQnV0dG9uc19VaW50NjQgPSAzMDAxLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzMFR5cGVfSW50MzIgPSAzMDAy
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAz
MDAzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzMlR5cGVfSW50MzIg
PSAzMDA0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzM1R5cGVfSW50
MzIgPSAzMDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzNFR5cGVf
SW50MzIgPSAzMDA2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Db250cm9s
bGVyUm9sZUhpbnRfSW50MzIgPSAzMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ID0gNDAwMCwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgPSA0MDAx
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld1RvcERlZ3Jl
ZXNfRmxvYXQgPSA0MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaWVs
ZE9mVmlld0JvdHRvbURlZ3JlZXNfRmxvYXQgPSA0MDAzLAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCA9IDQwMDQsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0
ZXJzX0Zsb2F0ID0gNDAwNSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTW9k
ZUxhYmVsX1N0cmluZyA9IDQwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0cmluZyA9IDUwMDEsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdfU3Ry
aW5nID0gNTAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29u
UGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeV9TdHJpbmcgPSA1MDA0
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
UmVhZHlBbGVydF9TdHJpbmcgPSA1MDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nID0gNTAwNiwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVN0YW5kYnlfU3Ry
aW5nID0gNTAwNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29u
UGF0aERldmljZUFsZXJ0TG93X1N0cmluZyA9IDUwMDgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCA9IDUxMDAsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9F
bmQgPSA1MTUwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Vc2VyQ29uZmln
UGF0aF9TdHJpbmcgPSA2MDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9J
bnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCA9IDEwMDAwLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgPSAxMDk5
OSwKK30gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKwordHlwZWRlZiBlbnVtIEVUcmFja2VkUHJv
cGVydHlFcnJvcgoreworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9T
dWNjZXNzID0gMCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfV3Jv
bmdEYXRhVHlwZSA9IDEsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9w
X1dyb25nRGV2aWNlQ2xhc3MgPSAyLAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFj
a2VkUHJvcF9CdWZmZXJUb29TbWFsbCA9IDMsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
X1RyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yX1RyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgPSA1LAorICAgICAgIEVUcmFja2VkUHJv
cGVydHlFcnJvcl9UcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgPSA2LAorICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZp
Y2UgPSA3LAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9TdHJpbmdF
eGNlZWRzTWF4aW11bUxlbmd0aCA9IDgsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1Ry
YWNrZWRQcm9wX05vdFlldEF2YWlsYWJsZSA9IDksCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yX1RyYWNrZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgPSAxMCwKKyAgICAgICBFVHJhY2tlZFBy
b3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiA9IDExLAorfSBFVHJhY2tl
ZFByb3BlcnR5RXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAg
IEVWUlN1Ym1pdEZsYWdzX1N1Ym1pdF9EZWZhdWx0ID0gMCwKKyAgICAgICBFVlJTdWJtaXRGbGFn
c19TdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9IDEsCisgICAgICAgRVZSU3Vi
bWl0RmxhZ3NfU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKKyAgICAgICBFVlJTdWJtaXRGbGFn
c19TdWJtaXRfUmVzZXJ2ZWQgPSA0LAorfSBFVlJTdWJtaXRGbGFnczsKKwordHlwZWRlZiBlbnVt
IEVWUlN0YXRlCit7CisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9VbmRlZmluZWQgPSAtMSwKKyAg
ICAgICBFVlJTdGF0ZV9WUlN0YXRlX09mZiA9IDAsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9T
ZWFyY2hpbmcgPSAxLAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0g
MiwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1JlYWR5ID0gMywKKyAgICAgICBFVlJTdGF0ZV9W
UlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX05vdFJlYWR5
ID0gNSwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1N0YW5kYnkgPSA2LAorICAgICAgIEVWUlN0
YXRlX1ZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK30gRVZSU3RhdGU7CisKK3R5cGVkZWYg
ZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob25lID0g
MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkID0g
MTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFjdGl2YXRl
ZCA9IDEwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRl
ZCA9IDEwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlcklu
dGVyYWN0aW9uU3RhcnRlZCA9IDEwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFj
a2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgPSAxMDQsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9F
bnRlclN0YW5kYnlNb2RlID0gMTA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0xlYXZl
U3RhbmRieU1vZGUgPSAxMDcsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERl
dmljZVJvbGVDaGFuZ2VkID0gMTA4LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1dhdGNo
ZG9nV2FrZVVwUmVxdWVzdGVkID0gMTA5LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0xl
bnNEaXN0b3J0aW9uQ2hhbmdlZCA9IDExMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Q
cm9wZXJ0eUNoYW5nZWQgPSAxMTEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9u
UHJlc3MgPSAyMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVW5wcmVzcyA9
IDIwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25VbnRvdWNoID0gMjAzLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X01vdXNlTW92ZSA9IDMwMCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfTW91c2VCdXR0b25VcCA9IDMwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Gb2N1
c0VudGVyID0gMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ZvY3VzTGVhdmUgPSAz
MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2Nyb2xsID0gMzA1LAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1RvdWNoUGFkTW92ZSA9IDMwNiwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCA9IDQwMCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgPSA0MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
U2NlbmVGb2N1c0dhaW5lZCA9IDQwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY2Vu
ZUFwcGxpY2F0aW9uQ2hhbmdlZCA9IDQwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9T
Y2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbnB1
dEZvY3VzQ2hhbmdlZCA9IDQwNiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY2VuZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzID0gNDEwLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgPSA0MTEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfT3ZlcmxheVNob3duID0gNTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X092
ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJk
QWN0aXZhdGVkID0gNTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZERl
YWN0aXZhdGVkID0gNTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZFRo
dW1iU2VsZWN0ZWQgPSA1MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJk
UmVxdWVzdGVkID0gNTA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Jlc2V0RGFzaGJv
YXJkID0gNTA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdlTG9hZGVkID0gNTA4LAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nob3dLZXlib2FyZCA9IDUwOSwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCA9IDUxMSwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzTG9zdCA9IDUxMiwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQgPSA1MTMsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25Eb3duID0gNTE0LAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uVXAgPSA1MTUsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbWFnZUZhaWxlZCA9IDUxNywKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCA9IDUxOCwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VGFrZW4gPSA1MjEsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfU2NyZWVuc2hvdEZhaWxlZCA9IDUyMiwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1MjMsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQgPSA1MjQsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgPSA1
MjUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gPSA2MDEs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0JlZ2luSW50ZXJhY3Rp
b24gPSA2MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ry
b3llZCA9IDYwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9RdWl0ID0gNzAwLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Byb2Nlc3NRdWl0ID0gNzAxLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3MDIsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCA9IDcwMywKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ID0gNzA0LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkID0gODAwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdlZCA9IDgwMSwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVUZW1wRGF0YUhhc0NoYW5nZWQgPSA4MDIs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdl
ZCA9IDgwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
ID0gODA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0F1ZGlvU2V0dGluZ3NIYXZlQ2hh
bmdlZCA9IDgyMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CYWNrZ3JvdW5kU2V0dGlu
Z0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2FtZXJhU2V0
dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZXBy
b2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCA9IDg1MiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUzLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NCwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTUsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X01DSW1hZ2VVcGRhdGVkID0gMTAwMCwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgPSAxMTAwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2xvc2VkID0gMTIwMCwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9LZXlib2FyZENoYXJJbnB1dCA9IDEyMDEsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkID0gMTMwMCwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkID0gMTMwMSwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVk
ID0gMTMwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRh
dGVkID0gMTMwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvbk1pbWVU
eXBlTG9hZCA9IDEzMDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRpb25U
cmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gPSAxNDAwLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuID0gMTQwMSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1No
b3duID0gMTQxMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX0NoYXBl
cm9uZUJvdW5kc0hpZGRlbiA9IDE0MTEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJh
Y2tlZENhbWVyYV9TdGFydFZpZGVvU3RyZWFtID0gMTUwMCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtID0gMTUwMiwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1Jlc3VtZVZpZGVvU3Ry
ZWFtID0gMTUwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX0Vk
aXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9QZXJmb3Jt
YW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSA9IDE2MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfUGVyZm9ybWFuY2VUZXN0X0Rpc2FibGVDYXB0dXJlID0gMTYwMSwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCA9IDE2MDIsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfQ2xvc2VkID0gMTY1MCwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCA9
IDEwMDAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2Vy
dmVkX0VuZCA9IDE5OTk5LAorfSBFVlJFdmVudFR5cGU7CisKK3R5cGVkZWYgZW51bSBFRGV2aWNl
QWN0aXZpdHlMZXZlbAoreworICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFj
dGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsX2tf
RURldmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2
ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gPSAxLAorICAgICAgIEVE
ZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9u
X1RpbWVvdXQgPSAyLAorICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFjdGl2
aXR5TGV2ZWxfU3RhbmRieSA9IDMsCit9IEVEZXZpY2VBY3Rpdml0eUxldmVsOworCit0eXBlZGVm
IGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3lzdGVt
ID0gMCwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwK
KyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fR3JpcCA9IDIsCisgICAgICAgRVZSQnV0dG9u
SWRfa19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9u
X0RQYWRfVXAgPSA0LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0g
NSwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBhZF9Eb3duID0gNiwKKyAgICAgICBF
VlJCdXR0b25JZF9rX0VCdXR0b25fQSA9IDcsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9u
X1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlz
MCA9IDMyLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzMSA9IDMzLAorICAgICAg
IEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzMiA9IDM0LAorICAgICAgIEVWUkJ1dHRvbklkX2tf
RUJ1dHRvbl9BeGlzMyA9IDM1LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzNCA9
IDM2LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIs
CisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAorICAg
ICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EYXNoYm9hcmRfQmFjayA9IDIsCisgICAgICAgRVZS
QnV0dG9uSWRfa19FQnV0dG9uX01heCA9IDY0LAorfSBFVlJCdXR0b25JZDsKKwordHlwZWRlZiBl
bnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1dHRv
bl9MZWZ0ID0gMSwKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0dG9uX1JpZ2h0ID0g
MiwKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0dG9uX01pZGRsZSA9IDQsCit9IEVW
Uk1vdXNlQnV0dG9uOworCit0eXBlZGVmIGVudW0gRUhpZGRlbkFyZWFNZXNoVHlwZQoreworICAg
ICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAor
ICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEs
CisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9MaW5lTG9vcCA9
IDIsCisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9NYXggPSAz
LAorfSBFSGlkZGVuQXJlYU1lc2hUeXBlOworCit0eXBlZGVmIGVudW0gRVZSQ29udHJvbGxlckF4
aXNUeXBlCit7CisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRyb2xsZXJBeGlz
X05vbmUgPSAwLAorICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250cm9sbGVyQXhp
c19UcmFja1BhZCA9IDEsCisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRyb2xs
ZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29u
dHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsCit9IEVWUkNvbnRyb2xsZXJBeGlzVHlwZTsKKwordHlw
ZWRlZiBlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUKK3sKKyAgICAgICBFVlJDb250
cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0NvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAs
CisgICAgICAgRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZV9Db250cm9sbGVyRXZlbnRPdXRw
dXRfVlJFdmVudHMgPSAxLAorfSBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlOworCit0eXBl
ZGVmIGVudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7CisgICAgICAgRUNvbGxpc2lvbkJvdW5k
c1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAgIEVDb2xs
aXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSA9IDEs
CisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FV
QVJFUyA9IDIsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNf
U1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJ
T05fQk9VTkRTX1NUWUxFX05PTkUgPSA0LAorICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9D
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0NPVU5UID0gNSwKK30gRUNvbGxpc2lvbkJvdW5kc1N0eWxl
OworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUVycm9yCit7CisgICAgICAgRVZST3ZlcmxheUVy
cm9yX1ZST3ZlcmxheUVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92
ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSA9IDEwLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9W
Uk92ZXJsYXlFcnJvcl9JbnZhbGlkSGFuZGxlID0gMTEsCisgICAgICAgRVZST3ZlcmxheUVycm9y
X1ZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgPSAxMiwKKyAgICAgICBFVlJPdmVybGF5
RXJyb3JfVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQgPSAxMywKKyAgICAgICBF
VlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdWaXNpYmlsaXR5VHlwZSA9IDE0LAor
ICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlUb29Mb25nID0gMTUsCisg
ICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05hbWVUb29Mb25nID0gMTYsCisg
ICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleUluVXNlID0gMTcsCisgICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSA9IDE4
LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERl
dmljZSA9IDE5LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlk
UGFyYW1ldGVyID0gMjAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1Ro
dW1ibmFpbENhbnRCZURlc3Ryb3llZCA9IDIxLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92
ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsID0gMjIsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZS
T3ZlcmxheUVycm9yX1JlcXVlc3RGYWlsZWQgPSAyMywKKyAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUgPSAyNCwKKyAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAorICAgICAgIEVWUk92ZXJs
YXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSA9IDI2LAorICAgICAg
IEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yID0gMjcsCisgICAgICAg
RVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0aXZlcyA9IDI5
LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9CYWRNYXNrUHJpbWl0aXZl
ID0gMzAsCit9IEVWUk92ZXJsYXlFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9u
VHlwZQoreworICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX090aGVyID0g
MCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9TY2VuZSA9IDEsCisg
ICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fT3ZlcmxheSA9IDIsCisgICAg
ICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsCisgICAg
ICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fVXRpbGl0eSA9IDQsCisgICAgICAg
RVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwKKyAgICAgICBF
VlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9NYXggPSA3LAorfSBFVlJBcHBsaWNh
dGlvblR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJGaXJtd2FyZUVycm9yCit7CisgICAgICAgRVZS
RmlybXdhcmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZSRmlybXdh
cmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfU3VjY2VzcyA9IDEsCisgICAgICAgRVZSRmlybXdhcmVF
cnJvcl9WUkZpcm13YXJlRXJyb3JfRmFpbCA9IDIsCit9IEVWUkZpcm13YXJlRXJyb3I7CisKK3R5
cGVkZWYgZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgoreworICAgICAgIEVWUk5vdGlmaWNhdGlv
bkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfT0sgPSAwLAorICAgICAgIEVWUk5vdGlmaWNhdGlv
bkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfSW52YWxpZE5vdGlmaWNhdGlvbklkID0gMTAwLAor
ICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfTm90aWZpY2F0
aW9uUXVldWVGdWxsID0gMTAxLAorICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90aWZp
Y2F0aW9uRXJyb3JfSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCisgICAgICAgRVZSTm90aWZp
Y2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9TeXN0ZW1XaXRoVXNlclZhbHVlQWxyZWFk
eUV4aXN0cyA9IDEwMywKK30gRVZSTm90aWZpY2F0aW9uRXJyb3I7CisKK3R5cGVkZWYgZW51bSBF
VlJJbml0RXJyb3IKK3sKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfTm9uZSA9IDAs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQg
PSAxMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExO
b3RGb3VuZCA9IDEwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9GaWxl
Tm90Rm91bmQgPSAxMDMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfRmFj
dG9yeU5vdEZvdW5kID0gMTA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0ludGVyZmFjZU5vdEZvdW5kID0gMTA1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQgPSAxMDgsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgPSAxMTAs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoID0gMTEx
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCA9IDExMiwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0
YWJsZSA9IDExMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZv
SW5pdEZhaWxlZCA9IDExNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9S
ZXRyeSA9IDExNSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2Fu
Y2VsZWRCeVVzZXIgPSAxMTYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
QW5vdGhlckFwcExhdW5jaGluZyA9IDExNywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgPSAxMTgsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duID0gMTE5LAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzID0gMTIwLAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCA9IDEyMSwKKyAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRv
ciA9IDEyMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFi
bGVUb1V0aWxpdHlBcHBzID0gMTIzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X0ludGVybmFsID0gMTI0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0htZERyaXZlcklkSXNOb25lID0gMTI1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgPSAxMjYsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCA9IDEyOCwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90
U3VwcG9ydGVkID0gMTI5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0lu
dmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgPSAxMzEsCisgICAgICAgRVZSSW5p
dEVycm9yX1ZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgPSAxMzIs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmROb3RGb3Vu
ZCA9IDEzMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZFN0YXJ0dXBGYWlsZWQgPSAxMzQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9GYWlsZWQgPSAyMDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZl
cl9Vbmtub3duID0gMjAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJf
SG1kVW5rbm93biA9IDIwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVy
X05vdExvYWRlZCA9IDIwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVy
X1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0RyaXZlcl9IbWRJblVzZSA9IDIwNSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
RHJpdmVyX05vdENhbGlicmF0ZWQgPSAyMDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgPSAyMDgsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93
biA9IDIwOSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZl
cklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREaXNwbGF5TWlycm9yZWQgPSAyMTIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkID0gMzAwLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCA9IDMwMSwKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCA9IDMwMiwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkID0gMzAzLAorICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVkID0gMzA0LAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfRmFpbGVkID0gMzA1LAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQgPSAz
MDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52YWxp
ZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkID0gNDAwLAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9
IDQwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2Fy
ZVJlcXVpcmVzVXBkYXRlID0gNDAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9D
b21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkID0gNDAzLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCA9IDQwNCwKKyAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0
VG9PY3VsdXNSdW50aW1lID0gMTAwMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgPSAxMTAxLAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1Jl
cXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnID0gMTEwMywKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9v
QmlnID0gMTEwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwgPSAxMTA1LAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliID0gMTEw
NiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24gPSAxMTA3LAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0
YXJ0ID0gMTEwOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ID0gMTEwOSwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRV
c2VyRGF0YU5leHQgPSAxMTEwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRh
RXJyb3IgPSAxMTEyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayA9IDExMTMsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAy
MDAwLAorfSBFVlJJbml0RXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJTY3JlZW5zaG90VHlwZQor
eworICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTm9uZSA9IDAsCisg
ICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwKKyAgICAg
ICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyA9IDIsCisgICAgICAg
RVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFwID0gMywKKyAgICAgICBF
VlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX01vbm9QYW5vcmFtYSA9IDQsCisgICAg
ICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSA9IDUs
Cit9IEVWUlNjcmVlbnNob3RUeXBlOworCit0eXBlZGVmIGVudW0gRVZSU2NyZWVuc2hvdFByb3Bl
cnR5RmlsZW5hbWVzCit7CisgICAgICAgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZS
U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAorICAgICAgIEVWUlNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lc19WUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19WUiA9
IDEsCit9IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lczsKKwordHlwZWRlZiBlbnVtIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcgoreworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRy
YWNrZWRDYW1lcmFFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
VlJUcmFja2VkQ2FtZXJhRXJyb3JfT3BlcmF0aW9uRmFpbGVkID0gMTAwLAorICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlID0gMTAx
LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZh
bGlkRnJhbWVIZWFkZXJWZXJzaW9uID0gMTAyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRPZkhhbmRsZXMgPSAxMDMsCisgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUgPSAxMDQsCisg
ICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBv
cnRlZEZvclRoaXNEZXZpY2UgPSAxMDUsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZS
VHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZE1lbW9yeUZhaWx1cmUgPSAxMDYsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5nRmFp
bHVyZSA9IDEwNywKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJh
RXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlID0gMTA4LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgPSAxMDksCisgICAg
ICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRTaGFy
ZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRy
YWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkID0gMTExLAorICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRUZXh0dXJlRmFp
bHVyZSA9IDExMiwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJh
RXJyb3JfTm9GcmFtZUF2YWlsYWJsZSA9IDExMywKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJy
b3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ID0gMTE0LAorICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZm
ZXJTaXplID0gMTE1LAorfSBFVlJUcmFja2VkQ2FtZXJhRXJyb3I7CisKK3R5cGVkZWYgZW51bSBF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlCit7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwKKyAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRl
ZCA9IDEsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9WUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkID0gMiwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlX01BWF9DQU1FUkFfRlJBTUVfVFlQRVMgPSAzLAorfSBFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlOworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgoreworICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgPSAwLAorICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0FwcEtleUFscmVhZHlFeGlz
dHMgPSAxMDAsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
Tm9NYW5pZmVzdCA9IDEwMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRp
b25FcnJvcl9Ob0FwcGxpY2F0aW9uID0gMTAyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3Jf
VlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRJbmRleCA9IDEwMywKKyAgICAgICBFVlJBcHBsaWNh
dGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3duQXBwbGljYXRpb24gPSAxMDQsCisg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVkID0g
MTA1LAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxp
Y2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9W
UkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0ID0gMTA3LAorICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRBcHBsaWNhdGlvbiA9IDEwOCwK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hGYWls
ZWQgPSAxMDksCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
QXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsCisgICAgICAgRVZSQXBwbGljYXRpb25F
cnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyA9IDExMSwKKyAgICAgICBF
VlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9PbGRBcHBsaWNhdGlvblF1aXR0
aW5nID0gMTEyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9y
X1RyYW5zaXRpb25BYm9ydGVkID0gMTEzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJB
cHBsaWNhdGlvbkVycm9yX0lzVGVtcGxhdGUgPSAxMTQsCisgICAgICAgRVZSQXBwbGljYXRpb25F
cnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAyMDAsCisgICAgICAgRVZS
QXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQgPSAyMDEs
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93blBy
b3BlcnR5ID0gMjAyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCit9IEVWUkFwcGxpY2F0aW9uRXJyb3I7CisKK3R5
cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvblByb3BlcnR5Cit7CisgICAgICAgRVZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFtZV9TdHJpbmcgPSAwLAorICAgICAg
IEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0xhdW5jaFR5cGVf
U3RyaW5nID0gMTEsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9u
UHJvcGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgPSAxMiwKKyAgICAgICBFVlJBcHBsaWNh
dGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyA9IDEz
LAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0Fy
Z3VtZW50c19TdHJpbmcgPSAxNCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBw
bGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nID0gMTUsCisgICAgICAgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVzY3JpcHRpb25fU3RyaW5nID0gNTAsCisg
ICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTmV3c1VS
TF9TdHJpbmcgPSA1MSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nID0gNTIsCisgICAgICAgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNlX1N0cmluZyA9IDUzLAorICAgICAg
IEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJk
T3ZlcmxheV9Cb29sID0gNjAsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sID0gNjEsCisgICAgICAgRVZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRfQm9vbCA9IDYyLAor
ICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW50
ZXJuYWxfQm9vbCA9IDYzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNh
dGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCA9IDcwLAorfSBFVlJBcHBsaWNhdGlv
blByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUK
K3sKKyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJh
bnNpdGlvbl9Ob25lID0gMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZV9W
UkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCA9IDEwLAorICAgICAgIEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdG
b3JFeHRlcm5hbExhdW5jaCA9IDExLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0
YXRlX1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05ld0FwcExhdW5jaGVkID0gMjAsCit9IEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlOworCit0eXBlZGVmIGVudW0gQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZQoreworICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0sgPSAxLAor
ICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyA9IDEwMCwKKyAgICAgICBD
aGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25NYXlIYXZlTW92ZWQg
PSAxMDEsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0
aW9uUmVtb3ZlZCA9IDEwMiwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5p
bmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlv
blN0YXRlX0Vycm9yID0gMjAwLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJy
b3JfQmFzZVN0YXRpb25VbmluaXRpYWxpemVkID0gMjAxLAorICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKKyAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCA9IDIwMywKKyAgICAg
ICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQg
PSAyMDQsCit9IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGU7CisKK3R5cGVkZWYgZW51bSBFQ2hh
cGVyb25lQ29uZmlnRmlsZQoreworICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX0xpdmUgPSAx
LAorICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX1RlbXAgPSAyLAorfSBFQ2hhcGVyb25lQ29u
ZmlnRmlsZTsKKwordHlwZWRlZiBlbnVtIEVDaGFwZXJvbmVJbXBvcnRGbGFncworeworICAgICAg
IEVDaGFwZXJvbmVJbXBvcnRGbGFnc19FQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAor
fSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3M7CisKK3R5cGVkZWYgZW51bSBFVlJDb21wb3NpdG9yRXJy
b3IKK3sKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfTm9uZSA9
IDAsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RG
YWlsZWQgPSAxLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9J
bmNvbXBhdGlibGVWZXJzaW9uID0gMTAwLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNv
bXBvc2l0b3JFcnJvcl9Eb05vdEhhdmVGb2N1cyA9IDEwMSwKKyAgICAgICBFVlJDb21wb3NpdG9y
RXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUgPSAxMDIsCisgICAgICAgRVZS
Q29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlvbiA9
IDEwMywKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfVGV4dHVy
ZUlzT25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21w
b3NpdG9yRXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCA9IDEwNSwKKyAgICAgICBF
VlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RTdXBw
b3J0ZWQgPSAxMDYsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9y
X0luZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21w
b3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCA9IDEwOCwKK30gRVZSQ29tcG9zaXRvckVycm9y
OworCit0eXBlZGVmIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKK3sKKyAgICAgICBWUk92ZXJs
YXlJbnB1dE1ldGhvZF9Ob25lID0gMCwKKyAgICAgICBWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3Vz
ZSA9IDEsCit9IFZST3ZlcmxheUlucHV0TWV0aG9kOworCit0eXBlZGVmIGVudW0gVlJPdmVybGF5
VHJhbnNmb3JtVHlwZQoreworICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5
VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKKyAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZS
T3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkRGV2aWNlUmVsYXRpdmUgPSAxLAorICAgICAgIFZST3Zl
cmxheVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgPSAyLAor
ICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRD
b21wb25lbnQgPSAzLAorfSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlOworCit0eXBlZGVmIGVudW0g
VlJPdmVybGF5RmxhZ3MKK3sKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Ob25lID0gMCwKKyAgICAg
ICBWUk92ZXJsYXlGbGFnc19DdXJ2ZWQgPSAxLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1JHU1M0
WCA9IDIsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9EYXNoYm9hcmRUYWIgPSAzLAorICAgICAg
IFZST3ZlcmxheUZsYWdzX0FjY2VwdHNHYW1lcGFkRXZlbnRzID0gNCwKKyAgICAgICBWUk92ZXJs
YXlGbGFnc19TaG93R2FtZXBhZEZvY3VzID0gNSwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5k
VlJTY3JvbGxFdmVudHMgPSA2LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlRvdWNocGFk
RXZlbnRzID0gNywKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaG93VG91Y2hQYWRTY3JvbGxXaGVl
bCA9IDgsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfVHJhbnNmZXJPd25lcnNoaXBUb0ludGVybmFs
UHJvY2VzcyA9IDksCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9QYXJhbGxlbCA9
IDEwLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAorICAg
ICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsCisgICAgICAgVlJPdmVybGF5RmxhZ3Nf
U3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Tb3J0V2l0aE5vblNj
ZW5lT3ZlcmxheXMgPSAxNCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19WaXNpYmxlSW5EYXNoYm9h
cmQgPSAxNSwKK30gVlJPdmVybGF5RmxhZ3M7CisKK3R5cGVkZWYgZW51bSBWUk1lc3NhZ2VPdmVy
bGF5UmVzcG9uc2UKK3sKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJl
c3NfMCA9IDAsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzEg
PSAxLAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18yID0gMiwK
KyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMyA9IDMsCisgICAg
ICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQs
CisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kT3JDcmVhdGVDbGll
bnRPdmVybGF5ID0gNSwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQXBwbGljYXRp
b25RdWl0ID0gNiwKK30gVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOworCit0eXBlZGVmIGVudW0g
RUdhbWVwYWRUZXh0SW5wdXRNb2RlCit7CisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRNb2RlX2tf
RUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsID0gMCwKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1
dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCisgICAgICAgRUdhbWVw
YWRUZXh0SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0ID0gMiwKK30gRUdh
bWVwYWRUZXh0SW5wdXRNb2RlOworCit0eXBlZGVmIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5l
TW9kZQoreworICAgICAgIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGVfa19FR2FtZXBhZFRleHRJ
bnB1dExpbmVNb2RlU2luZ2xlTGluZSA9IDAsCisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRMaW5l
TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMSwKK30gRUdh
bWVwYWRUZXh0SW5wdXRMaW5lTW9kZTsKKwordHlwZWRlZiBlbnVtIEVPdmVybGF5RGlyZWN0aW9u
Cit7CisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9VcCA9IDAsCisg
ICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9Eb3duID0gMSwKKyAgICAg
ICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0xlZnQgPSAyLAorICAgICAgIEVP
dmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fUmlnaHQgPSAzLAorICAgICAgIEVPdmVy
bGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fQ291bnQgPSA0LAorfSBFT3ZlcmxheURpcmVj
dGlvbjsKKwordHlwZWRlZiBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZl
VHlwZQoreworICAgICAgIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZV9P
dmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9SZWN0YW5nbGUgPSAwLAorICAgICAgIEVW
Uk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZV9PdmVybGF5SW50ZXJzZWN0aW9u
UHJpbWl0aXZlVHlwZV9DaXJjbGUgPSAxLAorfSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1By
aW1pdGl2ZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7CisgICAg
ICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm9uZSA9IDAsCisgICAg
ICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTG9hZGluZyA9IDEwMCwK
KyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RTdXBwb3J0
ZWQgPSAyMDAsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3Jf
SW52YWxpZEFyZyA9IDMwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9k
ZWxFcnJvcl9JbnZhbGlkTW9kZWwgPSAzMDEsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9W
UlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMgPSAzMDIsCisgICAgICAgRVZSUmVuZGVyTW9kZWxF
cnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMgPSAzMDMsCisgICAgICAgRVZS
UmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfVG9vTWFueVZlcnRpY2VzID0gMzA0
LAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxl
VGV4dHVyZXMgPSAzMDUsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVs
RXJyb3JfQnVmZmVyVG9vU21hbGwgPSAzMDYsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9W
UlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoTm9ybWFscyA9IDMwNywKKyAgICAgICBFVlJSZW5k
ZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMgPSAzMDgs
CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZFRl
eHR1cmUgPSA0MDAsCit9IEVWUlJlbmRlck1vZGVsRXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJD
b21wb25lbnRQcm9wZXJ0eQoreworICAgICAgIEVWUkNvbXBvbmVudFByb3BlcnR5X1ZSQ29tcG9u
ZW50UHJvcGVydHlfSXNTdGF0aWMgPSAxLAorICAgICAgIEVWUkNvbXBvbmVudFByb3BlcnR5X1ZS
Q29tcG9uZW50UHJvcGVydHlfSXNWaXNpYmxlID0gMiwKKyAgICAgICBFVlJDb21wb25lbnRQcm9w
ZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzVG91Y2hlZCA9IDQsCisgICAgICAgRVZSQ29tcG9u
ZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1ByZXNzZWQgPSA4LAorICAgICAgIEVW
UkNvbXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNTY3JvbGxlZCA9IDE2LAor
fSBFVlJDb21wb25lbnRQcm9wZXJ0eTsKKwordHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvblR5
cGUKK3sKKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1RyYW5zaWVudCA9IDAsCisgICAgICAg
RVZSTm90aWZpY2F0aW9uVHlwZV9QZXJzaXN0ZW50ID0gMSwKKyAgICAgICBFVlJOb3RpZmljYXRp
b25UeXBlX1RyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZhbHVlID0gMiwKK30gRVZSTm90aWZpY2F0
aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAgICAg
RVZSTm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5
bGVfQXBwbGljYXRpb24gPSAxMDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFj
dF9EaXNhYmxlZCA9IDIwMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Vu
YWJsZWQgPSAyMDEsCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3RpdmUg
PSAyMDIsCit9IEVWUk5vdGlmaWNhdGlvblN0eWxlOworCit0eXBlZGVmIGVudW0gRVZSU2V0dGlu
Z3NFcnJvcgoreworICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX05vbmUg
PSAwLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9
IDEsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQg
PSAyLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQg
PSAzLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZh
aWxlZCA9IDQsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfVW5zZXRT
ZXR0aW5nSGFzTm9EZWZhdWx0ID0gNSwKK30gRVZSU2V0dGluZ3NFcnJvcjsKKwordHlwZWRlZiBl
bnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNj
cmVlbnNob3RFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3Jl
ZW5zaG90RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9y
X1ZSU2NyZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgRVZS
U2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kID0gMTAxLAorICAgICAg
IEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9CdWZmZXJUb29TbWFsbCA9IDEw
MiwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfU2NyZWVuc2hv
dEFscmVhZHlJblByb2dyZXNzID0gMTA4LAorfSBFVlJTY3JlZW5zaG90RXJyb3I7CisKKworLy8g
T3BlblZSIHR5cGVkZWZzCisKK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7
Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7Cit0eXBlZGVmIHVpbnQ2NF90IFZS
T3ZlcmxheUhhbmRsZV90OworCit0eXBlZGVmIHZvaWQgKiBnbFNoYXJlZFRleHR1cmVIYW5kbGVf
dDsKK3R5cGVkZWYgaW50MzJfdCBnbEludF90OwordHlwZWRlZiB1aW50MzJfdCBnbFVJbnRfdDsK
K3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRsZV90OwordHlwZWRlZiB1aW50MzJf
dCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3R5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7Cit0eXBlZGVm
IHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OwordHlwZWRlZiB1aW50NjRfdCBUcmFja2VkQ2Ft
ZXJhSGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKK3R5cGVk
ZWYgdWludDMyX3QgVlJDb21wb25lbnRQcm9wZXJ0aWVzOwordHlwZWRlZiBpbnQzMl90IFRleHR1
cmVJRF90OwordHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOwordHlwZWRlZiBFVlJJ
bml0RXJyb3IgSG1kRXJyb3I7Cit0eXBlZGVmIEVWUkV5ZSBIbWRfRXllOwordHlwZWRlZiBFQ29s
b3JTcGFjZSBDb2xvclNwYWNlOwordHlwZWRlZiBFVHJhY2tpbmdSZXN1bHQgSG1kVHJhY2tpbmdS
ZXN1bHQ7Cit0eXBlZGVmIEVUcmFja2VkRGV2aWNlQ2xhc3MgVHJhY2tlZERldmljZUNsYXNzOwor
dHlwZWRlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBUcmFja2luZ1VuaXZlcnNlT3JpZ2luOwor
dHlwZWRlZiBFVHJhY2tlZERldmljZVByb3BlcnR5IFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKK3R5
cGVkZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFRyYWNrZWRQcm9wZXJ0eUVycm9yOwordHlwZWRl
ZiBFVlJTdWJtaXRGbGFncyBWUlN1Ym1pdEZsYWdzX3Q7Cit0eXBlZGVmIEVWUlN0YXRlIFZSU3Rh
dGVfdDsKK3R5cGVkZWYgRUNvbGxpc2lvbkJvdW5kc1N0eWxlIENvbGxpc2lvbkJvdW5kc1N0eWxl
X3Q7Cit0eXBlZGVmIEVWUk92ZXJsYXlFcnJvciBWUk92ZXJsYXlFcnJvcjsKK3R5cGVkZWYgRVZS
RmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7Cit0eXBlZGVmIEVWUkNvbXBvc2l0b3JFcnJv
ciBWUkNvbXBvc2l0b3JFcnJvcjsKK3R5cGVkZWYgRVZSU2NyZWVuc2hvdEVycm9yIFZSU2NyZWVu
c2hvdHNFcnJvcjsKKworLy8gT3BlblZSIFN0cnVjdHMKKwordHlwZWRlZiBzdHJ1Y3QgSG1kTWF0
cml4MzRfdAoreworICAgICAgIGZsb2F0IG1bM11bNF07IC8vZmxvYXRbM11bNF0KK30gSG1kTWF0
cml4MzRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kTWF0cml4NDRfdAoreworICAgICAgIGZsb2F0
IG1bNF1bNF07IC8vZmxvYXRbNF1bNF0KK30gSG1kTWF0cml4NDRfdDsKKwordHlwZWRlZiBzdHJ1
Y3QgSG1kVmVjdG9yM190Cit7CisgICAgICAgZmxvYXQgdlszXTsgLy9mbG9hdFszXQorfSBIbWRW
ZWN0b3IzX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZlY3RvcjRfdAoreworICAgICAgIGZsb2F0
IHZbNF07IC8vZmxvYXRbNF0KK30gSG1kVmVjdG9yNF90OworCit0eXBlZGVmIHN0cnVjdCBIbWRW
ZWN0b3IzZF90Cit7CisgICAgICAgZG91YmxlIHZbM107IC8vZG91YmxlWzNdCit9IEhtZFZlY3Rv
cjNkX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAgICAgIGZsb2F0IHZb
Ml07IC8vZmxvYXRbMl0KK30gSG1kVmVjdG9yMl90OworCit0eXBlZGVmIHN0cnVjdCBIbWRRdWF0
ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdzsKKyAgICAgICBkb3VibGUgeDsKKyAgICAgICBk
b3VibGUgeTsKKyAgICAgICBkb3VibGUgejsKK30gSG1kUXVhdGVybmlvbl90OworCit0eXBlZGVm
IHN0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxvYXQgcjsKKyAgICAgICBmbG9hdCBnOwor
ICAgICAgIGZsb2F0IGI7CisgICAgICAgZmxvYXQgYTsKK30gSG1kQ29sb3JfdDsKKwordHlwZWRl
ZiBzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Q29ybmVy
c1s0XTsgLy9zdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdFs0XQorfSBIbWRRdWFkX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IEhtZFJlY3QyX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZUb3BM
ZWZ0OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfSBIbWRSZWN0
Ml90OworCit0eXBlZGVmIHN0cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdAoreworICAgICAg
IGZsb2F0IHJmUmVkWzJdOyAvL2Zsb2F0WzJdCisgICAgICAgZmxvYXQgcmZHcmVlblsyXTsgLy9m
bG9hdFsyXQorICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsgLy9mbG9hdFsyXQorfSBEaXN0b3J0aW9u
Q29vcmRpbmF0ZXNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgdm9p
ZCAqIGhhbmRsZTsgLy8gdm9pZCAqCisgICAgICAgZW51bSBFVGV4dHVyZVR5cGUgZVR5cGU7Cisg
ICAgICAgZW51bSBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK30gVGV4dHVyZV90OworCit0eXBl
ZGVmIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90Cit7CisgICAgICAgc3RydWN0IEhtZE1hdHJp
eDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9y
M190IHZWZWxvY2l0eTsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZBbmd1bGFyVmVsb2Np
dHk7CisgICAgICAgZW51bSBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OworICAgICAg
IGJvb2wgYlBvc2VJc1ZhbGlkOworICAgICAgIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOworfSBU
cmFja2VkRGV2aWNlUG9zZV90OworCit0eXBlZGVmIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAor
eworICAgICAgIGZsb2F0IHVNaW47CisgICAgICAgZmxvYXQgdk1pbjsKKyAgICAgICBmbG9hdCB1
TWF4OworICAgICAgIGZsb2F0IHZNYXg7Cit9IFZSVGV4dHVyZUJvdW5kc190OworCit0eXBlZGVm
IHN0cnVjdCBWUlZ1bGthblRleHR1cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFn
ZTsKKyAgICAgICBzdHJ1Y3QgVmtEZXZpY2VfVCAqIG1fcERldmljZTsgLy8gc3RydWN0IFZrRGV2
aWNlX1QgKgorICAgICAgIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiBtX3BQaHlzaWNhbERl
dmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCisgICAgICAgc3RydWN0IFZrSW5z
dGFuY2VfVCAqIG1fcEluc3RhbmNlOyAvLyBzdHJ1Y3QgVmtJbnN0YW5jZV9UICoKKyAgICAgICBz
dHJ1Y3QgVmtRdWV1ZV9UICogbV9wUXVldWU7IC8vIHN0cnVjdCBWa1F1ZXVlX1QgKgorICAgICAg
IHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uV2lkdGg7
CisgICAgICAgdWludDMyX3QgbV9uSGVpZ2h0OworICAgICAgIHVpbnQzMl90IG1fbkZvcm1hdDsK
KyAgICAgICB1aW50MzJfdCBtX25TYW1wbGVDb3VudDsKK30gVlJWdWxrYW5UZXh0dXJlRGF0YV90
OworCit0eXBlZGVmIHN0cnVjdCBEM0QxMlRleHR1cmVEYXRhX3QKK3sKKyAgICAgICBzdHJ1Y3Qg
SUQzRDEyUmVzb3VyY2UgKiBtX3BSZXNvdXJjZTsgLy8gc3RydWN0IElEM0QxMlJlc291cmNlICoK
KyAgICAgICBzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICogbV9wQ29tbWFuZFF1ZXVlOyAvLyBz
dHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoKKyAgICAgICB1aW50MzJfdCBtX25Ob2RlTWFzazsK
K30gRDNEMTJUZXh0dXJlRGF0YV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0NvbnRyb2xs
ZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsKK30gVlJFdmVudF9Db250cm9sbGVyX3Q7
CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIGZsb2F0IHg7Cisg
ICAgICAgZmxvYXQgeTsKKyAgICAgICB1aW50MzJfdCBidXR0b247Cit9IFZSRXZlbnRfTW91c2Vf
dDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAoreworICAgICAgIGZsb2F0IHhk
ZWx0YTsKKyAgICAgICBmbG9hdCB5ZGVsdGE7CisgICAgICAgdWludDMyX3QgcmVwZWF0Q291bnQ7
Cit9IFZSRXZlbnRfU2Nyb2xsX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRN
b3ZlX3QKK3sKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworICAgICAgIGZsb2F0IGZsU2Vjb25k
c0ZpbmdlckRvd247CisgICAgICAgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAgIGZsb2F0IGZW
YWx1ZVlGaXJzdDsKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0IGZWYWx1
ZVlSYXc7Cit9IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZl
bnRfTm90aWZpY2F0aW9uX3QKK3sKKyAgICAgICB1aW50NjRfdCB1bFVzZXJWYWx1ZTsKKyAgICAg
ICB1aW50MzJfdCBub3RpZmljYXRpb25JZDsKK30gVlJFdmVudF9Ob3RpZmljYXRpb25fdDsKKwor
dHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7
CisgICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJvb2wgYkZvcmNlZDsKK30gVlJFdmVu
dF9Qcm9jZXNzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfT3ZlcmxheV90Cit7CisgICAg
ICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKK30gVlJFdmVudF9PdmVybGF5X3Q7CisKK3R5cGVk
ZWYgc3RydWN0IFZSRXZlbnRfU3RhdHVzX3QKK3sKKyAgICAgICB1aW50MzJfdCBzdGF0dXNTdGF0
ZTsKK30gVlJFdmVudF9TdGF0dXNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9LZXlib2Fy
ZF90Cit7CisgICAgICAgY2hhciAqIGNOZXdJbnB1dFs4XTsgLy9jaGFyWzhdCisgICAgICAgdWlu
dDY0X3QgdVVzZXJWYWx1ZTsKK30gVlJFdmVudF9LZXlib2FyZF90OworCit0eXBlZGVmIHN0cnVj
dCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfSBWUkV2ZW50X0lw
ZF90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgdWlu
dDY0X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKKyAgICAgICB1aW50NjRfdCBtX25DdXJyZW50VW5p
dmVyc2U7Cit9IFZSRXZlbnRfQ2hhcGVyb25lX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRf
UmVzZXJ2ZWRfdAoreworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50NjRf
dCByZXNlcnZlZDE7Cit9IFZSRXZlbnRfUmVzZXJ2ZWRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5TGV2
ZWw7Cit9IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZl
bnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Cit7CisgICAgICAgYm9vbCBiUmVzZXRCeVN5c3RlbU1l
bnU7Cit9IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90OworCit0eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAgICAgICB1
aW50MzJfdCB0eXBlOworfSBWUkV2ZW50X1NjcmVlbnNob3RfdDsKKwordHlwZWRlZiBzdHJ1Y3Qg
VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdAoreworICAgICAgIGZsb2F0IHByb2dyZXNzOwor
fSBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50
X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWlu
dDMyX3QgdW5BcmdzSGFuZGxlOworfSBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3Q7CisKK3R5
cGVkZWYgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAoreworICAgICAgIHVp
bnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3QgblZpc3VhbE1vZGU7Cit9IFZS
RXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9N
ZXNzYWdlT3ZlcmxheV90Cit7CisgICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2U7Cit9IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJF
dmVudF9Qcm9wZXJ0eV90Cit7CisgICAgICAgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBjb250
YWluZXI7CisgICAgICAgZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Cit9IFZSRXZl
bnRfUHJvcGVydHlfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAg
ICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwVmVydGV4RGF0YTsgLy8gY29uc3Qgc3RydWN0IHZy
OjpIbWRWZWN0b3IyX3QgKgorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsKK30gSGlk
ZGVuQXJlYU1lc2hfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7Cisg
ICAgICAgZmxvYXQgeDsKKyAgICAgICBmbG9hdCB5OworfSBWUkNvbnRyb2xsZXJBeGlzX3Q7CisK
K3R5cGVkZWYgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3QKK3sKKyAgICAgICB1aW50MzJfdCB1
blBhY2tldE51bTsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblByZXNzZWQ7CisgICAgICAgdWlu
dDY0X3QgdWxCdXR0b25Ub3VjaGVkOworICAgICAgIHN0cnVjdCBWUkNvbnRyb2xsZXJBeGlzX3Qg
ckF4aXNbNV07IC8vc3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3RbNV0KK30gVlJDb250cm9s
bGVyU3RhdGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MK
K3sKKyAgICAgICB1aW50MzJfdCBzaXplOworICAgICAgIGJvb2wgY3VydmVkOworICAgICAgIGJv
b2wgYW50aWFsaWFzOworICAgICAgIGZsb2F0IHNjYWxlOworICAgICAgIGZsb2F0IGRpc3RhbmNl
OworICAgICAgIGZsb2F0IGFscGhhOworICAgICAgIGZsb2F0IHVPZmZzZXQ7CisgICAgICAgZmxv
YXQgdk9mZnNldDsKKyAgICAgICBmbG9hdCB1U2NhbGU7CisgICAgICAgZmxvYXQgdlNjYWxlOwor
ICAgICAgIGZsb2F0IGdyaWREaXZzOworICAgICAgIGZsb2F0IGdyaWRXaWR0aDsKKyAgICAgICBm
bG9hdCBncmlkU2NhbGU7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3JtOwor
fSBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5nczsKKwordHlwZWRlZiBzdHJ1Y3QgQ2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgZW51bSBFVlJUcmFja2VkQ2FtZXJhRnJh
bWVUeXBlIGVGcmFtZVR5cGU7CisgICAgICAgdWludDMyX3QgbldpZHRoOworICAgICAgIHVpbnQz
Ml90IG5IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbkJ5dGVzUGVyUGl4ZWw7CisgICAgICAgdWlu
dDMyX3QgbkZyYW1lU2VxdWVuY2U7CisgICAgICAgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3Qg
c3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK30gQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90OworCit0eXBlZGVmIHN0cnVjdCBBcHBPdmVycmlkZUtleXNfdAoreworICAgICAgIGNoYXIg
KiBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgorICAgICAgIGNoYXIgKiBwY2hWYWx1ZTsgLy8gY29u
c3QgY2hhciAqCit9IEFwcE92ZXJyaWRlS2V5c190OworCit0eXBlZGVmIHN0cnVjdCBDb21wb3Np
dG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgdWludDMyX3QgbV9uU2l6ZTsKKyAgICAgICB1aW50
MzJfdCBtX25GcmFtZUluZGV4OworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7
CisgICAgICAgdWludDMyX3QgbV9uTnVtTWlzUHJlc2VudGVkOworICAgICAgIHVpbnQzMl90IG1f
bk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgdWludDMyX3QgbV9uUmVwcm9qZWN0aW9uRmxhZ3M7
CisgICAgICAgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOworICAgICAgIGZsb2F0IG1f
ZmxQcmVTdWJtaXRHcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOworICAg
ICAgIGZsb2F0IG1fZmxUb3RhbFJlbmRlckdwdU1zOworICAgICAgIGZsb2F0IG1fZmxDb21wb3Np
dG9yUmVuZGVyR3B1TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJDcHVNczsK
KyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKKyAgICAgICBmbG9hdCBtX2Zs
Q2xpZW50RnJhbWVJbnRlcnZhbE1zOworICAgICAgIGZsb2F0IG1fZmxQcmVzZW50Q2FsbENwdU1z
OworICAgICAgIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1zOworICAgICAgIGZsb2F0IG1f
ZmxTdWJtaXRGcmFtZU1zOworICAgICAgIGZsb2F0IG1fZmxXYWl0R2V0UG9zZXNDYWxsZWRNczsK
KyAgICAgICBmbG9hdCBtX2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAgIGZsb2F0IG1fZmxOZXdG
cmFtZVJlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1zOwor
ICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgZmxvYXQgbV9m
bENvbXBvc2l0b3JSZW5kZXJTdGFydE1zOworICAgICAgIFRyYWNrZWREZXZpY2VQb3NlX3QgbV9I
bWRQb3NlOworfSBDb21wb3NpdG9yX0ZyYW1lVGltaW5nOworCit0eXBlZGVmIHN0cnVjdCBDb21w
b3NpdG9yX0N1bXVsYXRpdmVTdGF0cworeworICAgICAgIHVpbnQzMl90IG1fblBpZDsKKyAgICAg
ICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzOworICAgICAgIHVpbnQzMl90IG1fbk51bURy
b3BwZWRGcmFtZXM7CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXM7Cisg
ICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c09uU3RhcnR1cDsKKyAgICAgICB1aW50
MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzT25TdGFydHVwOworICAgICAgIHVpbnQzMl90IG1fbk51
bVJlcHJvamVjdGVkRnJhbWVzT25TdGFydHVwOworICAgICAgIHVpbnQzMl90IG1fbk51bUxvYWRp
bmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c0xvYWRpbmc7CisgICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgdWludDMyX3QgbV9u
TnVtUmVwcm9qZWN0ZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bVRpbWVk
T3V0OworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNUaW1lZE91dDsKKyAgICAg
ICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzVGltZWRPdXQ7CisgICAgICAgdWludDMyX3Qg
bV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNUaW1lZE91dDsKK30gQ29tcG9zaXRvcl9DdW11bGF0aXZl
U3RhdHM7CisKK3R5cGVkZWYgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190Cit7
CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2U291cmNlOworICAgICAgIHN0cnVjdCBIbWRW
ZWN0b3IzX3QgdkRpcmVjdGlvbjsKKyAgICAgICBlbnVtIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVPcmlnaW47Cit9IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190OworCit0eXBlZGVmIHN0
cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1k
VmVjdG9yM190IHZQb2ludDsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZOb3JtYWw7Cisg
ICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2VVZzOworICAgICAgIGZsb2F0IGZEaXN0YW5jZTsK
K30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190OworCit0eXBlZGVmIHN0cnVjdCBJbnRl
cnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKK3sKKyAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFg7Cisg
ICAgICAgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAgIGZsb2F0IG1fZmxXaWR0aDsKKyAgICAg
ICBmbG9hdCBtX2ZsSGVpZ2h0OworfSBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3Q7CisKK3R5
cGVkZWYgc3RydWN0IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdAoreworICAgICAgIGZsb2F0IG1f
ZmxDZW50ZXJYOworICAgICAgIGZsb2F0IG1fZmxDZW50ZXJZOworICAgICAgIGZsb2F0IG1fZmxS
YWRpdXM7Cit9IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgUmVu
ZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90
IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7CisgICAgICAgc3RydWN0IEhtZE1hdHJp
eDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAgICAgICBWUkNvbXBvbmVudFByb3Bl
cnRpZXMgdVByb3BlcnRpZXM7Cit9IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3Q7CisKK3R5
cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90Cit7CisgICAgICAgc3RydWN0IEhtZFZl
Y3RvcjNfdCB2UG9zaXRpb247CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Tm9ybWFsOwor
ICAgICAgIGZsb2F0IHJmVGV4dHVyZUNvb3JkWzJdOyAvL2Zsb2F0WzJdCit9IFJlbmRlck1vZGVs
X1ZlcnRleF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKK3sK
KyAgICAgICB1aW50MTZfdCB1bldpZHRoOworICAgICAgIHVpbnQxNl90IHVuSGVpZ2h0OworICAg
ICAgIHVpbnQ4X3QgKiBydWJUZXh0dXJlTWFwRGF0YTsgLy8gY29uc3QgdWludDhfdCAqCit9IFJl
bmRlck1vZGVsX1RleHR1cmVNYXBfdDsKKwordHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAor
eworICAgICAgIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqIHJWZXJ0ZXhEYXRhOyAvLyBj
b25zdCBzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX1ZlcnRleF90ICoKKyAgICAgICB1aW50MzJfdCB1
blZlcnRleENvdW50OworICAgICAgIHVpbnQxNl90ICogckluZGV4RGF0YTsgLy8gY29uc3QgdWlu
dDE2X3QgKgorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsKKyAgICAgICBUZXh0dXJl
SURfdCBkaWZmdXNlVGV4dHVyZUlkOworfSBSZW5kZXJNb2RlbF90OworCit0eXBlZGVmIHN0cnVj
dCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAgYm9vbCBiU2Ny
b2xsV2hlZWxWaXNpYmxlOworfSBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Owor
Cit0eXBlZGVmIHN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdAoreworICAgICAgIHZvaWQgKiBt
X3BJbWFnZURhdGE7IC8vIHZvaWQgKgorICAgICAgIGludDMyX3QgbV9uV2lkdGg7CisgICAgICAg
aW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgaW50MzJfdCBtX25CeXRlc1BlclBpeGVsOworfSBO
b3RpZmljYXRpb25CaXRtYXBfdDsKKwordHlwZWRlZiBzdHJ1Y3QgQ09wZW5WUkNvbnRleHQKK3sK
KyAgICAgICBpbnRwdHJfdCBtX3BWUlN5c3RlbTsgLy8gY2xhc3MgdnI6OklWUlN5c3RlbSAqCisg
ICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmU7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmUg
KgorICAgICAgIGludHB0cl90IG1fcFZSQ2hhcGVyb25lU2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJD
aGFwZXJvbmVTZXR1cCAqCisgICAgICAgaW50cHRyX3QgbV9wVlJDb21wb3NpdG9yOyAvLyBjbGFz
cyB2cjo6SVZSQ29tcG9zaXRvciAqCisgICAgICAgaW50cHRyX3QgbV9wVlJPdmVybGF5OyAvLyBj
bGFzcyB2cjo6SVZST3ZlcmxheSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJSZXNvdXJjZXM7IC8v
IGNsYXNzIHZyOjpJVlJSZXNvdXJjZXMgKgorICAgICAgIGludHB0cl90IG1fcFZSUmVuZGVyTW9k
ZWxzOyAvLyBjbGFzcyB2cjo6SVZSUmVuZGVyTW9kZWxzICoKKyAgICAgICBpbnRwdHJfdCBtX3BW
UkV4dGVuZGVkRGlzcGxheTsgLy8gY2xhc3MgdnI6OklWUkV4dGVuZGVkRGlzcGxheSAqCisgICAg
ICAgaW50cHRyX3QgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoKKyAg
ICAgICBpbnRwdHJfdCBtX3BWUkFwcGxpY2F0aW9uczsgLy8gY2xhc3MgdnI6OklWUkFwcGxpY2F0
aW9ucyAqCisgICAgICAgaW50cHRyX3QgbV9wVlJUcmFja2VkQ2FtZXJhOyAvLyBjbGFzcyB2cjo6
SVZSVHJhY2tlZENhbWVyYSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJTY3JlZW5zaG90czsgLy8g
Y2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKK30gQ09wZW5WUkNvbnRleHQ7CisKKwordHlwZWRl
ZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRfdCByZXNlcnZlZDsKKyAgICAgICBW
UkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAgICAgIFZSRXZlbnRfTW91c2VfdCBt
b3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9sbDsKKyAgICAgICBWUkV2ZW50X1By
b2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX3Qgbm90aWZpY2F0
aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJsYXk7CisgICAgICAgVlJFdmVudF9T
dGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXlib2FyZF90IGtleWJvYXJkOworICAg
ICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lX3QgY2hhcGVy
b25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0Owor
ICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFZSRXZl
bnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Qb3NlUmVzZXQ7Cit9IFZSRXZlbnRf
RGF0YV90OworCisvKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIgdG8gYWxsIHJ1bm5p
bmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAgICAgdWludDMyX3Qg
ZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQorICAgICAgIFRyYWNrZWREZXZpY2VJbmRl
eF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBmbG9hdCBldmVudEFnZVNlY29uZHM7Cisg
ICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0cnVjdCBhcyBpdHMg
c2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7Cit9OworCisKK3R5
cGVkZWYgdW5pb24KK3sKKyAgICAgICBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0
YW5nbGU7CisgICAgICAgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOworfSBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdDsKKworc3RydWN0IFZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAgICAgIEVWUk92ZXJsYXlJbnRlcnNl
Y3Rpb25NYXNrUHJpbWl0aXZlVHlwZSBtX25QcmltaXRpdmVUeXBlOworICAgICAgIFZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJpbWl0aXZlOworfTsKKworCisv
LyBPcGVuVlIgRnVuY3Rpb24gUG9pbnRlciBUYWJsZXMKKworc3RydWN0IFZSX0lWUlN5c3RlbV9G
blRhYmxlCit7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlY29t
bWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSkodWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAqIHBu
SGVpZ2h0KTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4NDRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFByb2plY3Rpb25NYXRyaXgpKEVWUkV5ZSBlRXllLCBmbG9hdCBmTmVhclosIGZs
b2F0IGZGYXJaKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UHJv
amVjdGlvblJhdykoRVZSRXllIGVFeWUsIGZsb2F0ICogcGZMZWZ0LCBmbG9hdCAqIHBmUmlnaHQs
IGZsb2F0ICogcGZUb3AsIGZsb2F0ICogcGZCb3R0b20pOworICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpDb21wdXRlRGlzdG9ydGlvbikoRVZSRXllIGVFeWUsIGZsb2F0IGZV
LCBmbG9hdCBmViwgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190ICogcERpc3RvcnRpb25D
b29yZGluYXRlcyk7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRFeWVUb0hlYWRUcmFuc2Zvcm0pKEVWUkV5ZSBlRXllKTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VGltZVNpbmNlTGFzdFZzeW5jKShmbG9h
dCAqIHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRfdCAqIHB1bEZyYW1lQ291bnRlcik7
CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEQzRDlBZGFwdGVy
SW5kZXgpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERYR0lP
dXRwdXRJbmZvKShpbnQzMl90ICogcG5BZGFwdGVySW5kZXgpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpJc0Rpc3BsYXlPbkRlc2t0b3ApKCk7CisgICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERpc3BsYXlWaXNpYmlsaXR5KShib29sIGJJc1Zp
c2libGVPbkRlc2t0b3ApOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBl
T3JpZ2luLCBmbG9hdCBmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3csIHN0cnVjdCBU
cmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlQXJyYXksIHVpbnQzMl90IHVu
VHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqUmVzZXRTZWF0ZWRaZXJvUG9zZSkoKTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0
cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNlYXRlZFplcm9Qb3NlVG9TdGFu
ZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKSgpOworICAgICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1
dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MpKEVUcmFja2VkRGV2aWNl
Q2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcywgVHJhY2tlZERldmljZUluZGV4X3QgKiBwdW5UcmFj
a2VkRGV2aWNlSW5kZXhBcnJheSwgdWludDMyX3QgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNv
dW50LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgp
OworICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2
aWNlSWQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBcHBseVRyYW5z
Zm9ybSkoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0UG9zZSwgc3RydWN0IFRy
YWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2UsIHN0cnVjdCBIbWRNYXRyaXgz
NF90ICogcFRyYW5zZm9ybSk7CisgICAgICAgVHJhY2tlZERldmljZUluZGV4X3QgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZSko
RVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUpOworICAgICAgIEVUcmFja2VkQ29u
dHJvbGxlclJvbGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb250cm9sbGVyUm9sZUZv
clRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7
CisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzcyAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFRyYWNrZWREZXZpY2VDbGFzcykoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7
CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzVHJhY2tlZERldmljZUNv
bm5lY3RlZCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHkp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBmbG9hdCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5KShU
cmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgaW50MzJfdCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KShU
cmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgdWludDY0X3Qg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkp
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBzdHJ1Y3Qg
SG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1hdHJpeDM0VHJhY2tl
ZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJh
Y2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7
CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTdHJpbmdUcmFj
a2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1
ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgY2hhciAq
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKShFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgZXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpQb2xsTmV4dEV2ZW50KShzdHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50MzJf
dCB1bmNiVlJFdmVudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBv
bGxOZXh0RXZlbnRXaXRoUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgc3Ry
dWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQsIFRyYWNrZWREZXZp
Y2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSkoRVZSRXZlbnRUeXBlIGVU
eXBlKTsKKyAgICAgICBzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEhpZGRlbkFyZWFNZXNoKShFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlw
ZSB0eXBlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29udHJv
bGxlclN0YXRlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwg
VlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJv
bGxlclN0YXRlU2l6ZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2lu
LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgVlJDb250cm9s
bGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0YXRl
U2l6ZSwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2UpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpUcmlnZ2VySGFwdGljUHVsc2Up
KFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB1aW50MzJfdCB1
bkF4aXNJZCwgdW5zaWduZWQgc2hvcnQgdXNEdXJhdGlvbk1pY3JvU2VjKTsKKyAgICAgICBjaGFy
ICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCdXR0b25JZE5hbWVGcm9tRW51bSkoRVZS
QnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0pKEVWUkNvbnRyb2xsZXJBeGlz
VHlwZSBlQXhpc1R5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpD
YXB0dXJlSW5wdXRGb2N1cykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqUmVsZWFzZUlucHV0Rm9jdXMpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcykoKTsKKyAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkRyaXZlckRlYnVnUmVxdWVzdCkoVHJh
Y2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgY2hhciAqIHBjaFJlcXVlc3QsIGNoYXIg
KiBwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMyX3QgdW5SZXNwb25zZUJ1ZmZlclNpemUpOworICAg
ICAgIEVWUkZpcm13YXJlRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQZXJmb3JtRmly
bXdhcmVVcGRhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgpOworICAgICAg
IHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY2tub3dsZWRnZVF1aXRfRXhpdGluZyko
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNrbm93bGVkZ2VRdWl0
X1VzZXJQcm9tcHQpKCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSRXh0ZW5kZWREaXNwbGF5X0ZuVGFi
bGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V2luZG93Qm91
bmRzKShpbnQzMl90ICogcG5YLCBpbnQzMl90ICogcG5ZLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVp
bnQzMl90ICogcG5IZWlnaHQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRFeWVPdXRwdXRWaWV3cG9ydCkoRVZSRXllIGVFeWUsIHVpbnQzMl90ICogcG5YLCB1aW50
MzJfdCAqIHBuWSwgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKKyAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RFhHSU91dHB1dEluZm8pKGlu
dDMyX3QgKiBwbkFkYXB0ZXJJbmRleCwgaW50MzJfdCAqIHBuQWRhcHRlck91dHB1dEluZGV4KTsK
K307CisKK3N0cnVjdCBWUl9JVlJUcmFja2VkQ2FtZXJhX0ZuVGFibGUKK3sKKyAgICAgICBjaGFy
ICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSko
RVZSVHJhY2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7CisgICAgICAgRVZSVHJhY2tlZENh
bWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGFzQ2FtZXJhKShUcmFja2VkRGV2
aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIGJvb2wgKiBwSGFzQ2FtZXJhKTsKKyAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFGcmFt
ZVNpemUpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5I
ZWlnaHQsIHVpbnQzMl90ICogcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUludHJpbnNpY3Mp
KFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCBIbWRWZWN0b3IyX3QgKiBwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJf
dCAqIHBDZW50ZXIpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldENhbWVyYVByb2plY3Rpb24pKFRyYWNrZWREZXZpY2VJbmRleF90IG5E
ZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBm
bFpOZWFyLCBmbG9hdCBmbFpGYXIsIEhtZE1hdHJpeDQ0X3QgKiBwUHJvamVjdGlvbik7CisgICAg
ICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNxdWly
ZVZpZGVvU3RyZWFtaW5nU2VydmljZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4
LCBUcmFja2VkQ2FtZXJhSGFuZGxlX3QgKiBwSGFuZGxlKTsKKyAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlVmlkZW9TdHJlYW1pbmdT
ZXJ2aWNlKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEpOworICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZpZGVvU3Ry
ZWFtRnJhbWVCdWZmZXIpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICogcEZyYW1lQnVmZmVyLCB1
aW50MzJfdCBuRnJhbWVCdWZmZXJTaXplLCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
KiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZpZGVvU3RyZWFt
VGV4dHVyZVNpemUpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBWUlRleHR1cmVCb3VuZHNfdCAqIHBUZXh0dXJl
Qm91bmRzLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOworICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZpZGVv
U3RyZWFtVGV4dHVyZUQzRDExKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqIHBEM0QxMURldmlj
ZU9yUmVzb3VyY2UsIHZvaWQgKiogcHBEM0QxMVNoYWRlclJlc291cmNlVmlldywgQ2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90ICogcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFk
ZXJTaXplKTsKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhU
cmFja2VkQ2FtZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGdsVUlu
dF90ICogcGdsVGV4dHVyZUlkLCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBwRnJh
bWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIEVWUlRyYWNrZWRD
YW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VWaWRlb1N0cmVhbVRl
eHR1cmVHTCkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCBnbFVJbnRfdCBn
bFRleHR1cmVJZCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQXBwbGljYXRpb25zX0ZuVGFibGUKK3sK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWRk
QXBwbGljYXRpb25NYW5pZmVzdCkoY2hhciAqIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0
aCwgYm9vbCBiVGVtcG9yYXJ5KTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCkoY2hhciAqIHBjaEFw
cGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKklzQXBwbGljYXRpb25JbnN0YWxsZWQpKGNoYXIgKiBwY2hBcHBLZXkpOworICAg
ICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Db3Vu
dCkoKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KSh1aW50MzJfdCB1bkFwcGxpY2F0aW9uSW5kZXgs
IGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBw
bGljYXRpb25LZXlCeVByb2Nlc3NJZCkodWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKiBwY2hB
cHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBFVlJBcHBs
aWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoQXBwbGljYXRpb24p
KGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKShjaGFyICogcGNoVGVt
cGxhdGVBcHBLZXksIGNoYXIgKiBwY2hOZXdBcHBLZXksIHN0cnVjdCBBcHBPdmVycmlkZUtleXNf
dCAqIHBLZXlzLCB1aW50MzJfdCB1bktleXMpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1lVHlwZSko
Y2hhciAqIHBjaE1pbWVUeXBlLCBjaGFyICogcGNoQXJncyk7CisgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaERhc2hib2FyZE92ZXJsYXkp
KGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCkoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgRVZS
QXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklkZW50aWZ5QXBwbGlj
YXRpb24pKHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lk
KShjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bSkoRVZSQXBwbGljYXRpb25FcnJv
ciBlcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRB
cHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlv
blByb3BlcnR5IGVQcm9wZXJ0eSwgY2hhciAqIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQz
Ml90IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgRVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJy
b3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlv
blByb3BlcnR5Qm9vbCkoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBl
UHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB1aW50NjRf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQp
KGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJB
cHBsaWNhdGlvbkVycm9yICogcGVFcnJvcik7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCkoY2hhciAq
IHBjaEFwcEtleSwgYm9vbCBiQXV0b0xhdW5jaCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCkoY2hhciAqIHBjaEFwcEtleSk7
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFyICogcGNoQXBwS2V5LCBjaGFyICog
cGNoTWltZVR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRE
ZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSkoY2hhciAqIHBjaE1pbWVUeXBlLCBjaGFyICog
cGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uU3VwcG9ydGVkTWltZVR5
cGVzKShjaGFyICogcGNoQXBwS2V5LCBjaGFyICogcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50MzJf
dCB1bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKShjaGFyICogcGNoTWlt
ZVR5cGUsIGNoYXIgKiBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQzMl90IHVuQXBw
S2V5c1RoYXRTdXBwb3J0QnVmZmVyKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKSh1aW50MzJfdCB1bkhhbmRs
ZSwgY2hhciAqIHBjaEFyZ3MsIHVpbnQzMl90IHVuQXJncyk7CisgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFN0YXJ0aW5nQXBwbGljYXRpb24p
KGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFRyYW5zaXRpb25TdGF0ZSkoKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2sp
KGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSkoRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKSgpOworICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hJbnRlcm5hbFByb2Nl
c3MpKGNoYXIgKiBwY2hCaW5hcnlQYXRoLCBjaGFyICogcGNoQXJndW1lbnRzLCBjaGFyICogcGNo
V29ya2luZ0RpcmVjdG9yeSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQpKCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQ2hh
cGVyb25lX0ZuVGFibGUKK3sKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FsaWJyYXRpb25TdGF0ZSkoKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UGxheUFyZWFTaXplKShmbG9hdCAqIHBTaXpl
WCwgZmxvYXQgKiBwU2l6ZVopOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRQbGF5QXJlYVJlY3QpKHN0cnVjdCBIbWRRdWFkX3QgKiByZWN0KTsKKyAgICAgICB2b2lk
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsb2FkSW5mbykoKTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U2NlbmVDb2xvcikoc3RydWN0IEhtZENvbG9yX3Qg
Y29sb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb3VuZHND
b2xvcikoc3RydWN0IEhtZENvbG9yX3QgKiBwT3V0cHV0Q29sb3JBcnJheSwgaW50IG5OdW1PdXRw
dXRDb2xvcnMsIGZsb2F0IGZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlLCBzdHJ1Y3QgSG1k
Q29sb3JfdCAqIHBPdXRwdXRDYW1lcmFDb2xvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkFyZUJvdW5kc1Zpc2libGUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkZvcmNlQm91bmRzVmlzaWJsZSkoYm9vbCBiRm9yY2UpOworfTsKKwor
c3RydWN0IFZSX0lWUkNoYXBlcm9uZVNldHVwX0ZuVGFibGUKK3sKKyAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tbWl0V29ya2luZ0NvcHkpKEVDaGFwZXJvbmVDb25maWdG
aWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpS
ZXZlcnRXb3JraW5nQ29weSkoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0V29ya2luZ1BsYXlBcmVhU2l6ZSkoZmxvYXQgKiBwU2l6ZVgsIGZsb2F0ICogcFNpemVa
KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1BsYXlB
cmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJlY3QpOworICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbykoc3RydWN0IEht
ZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0NvdW50KTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0lu
Zm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHND
b3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBt
YXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBib29sIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29y
a2luZ1BsYXlBcmVhU2l6ZSkoZmxvYXQgc2l6ZVgsIGZsb2F0IHNpemVaKTsKKyAgICAgICB2b2lk
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8p
KHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCk7
CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBNYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSko
c3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsb2FkRnJvbURp
c2spKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdD
b2xsaXNpb25Cb3VuZHNUYWdzSW5mbykodWludDhfdCAqIHBUYWdzQnVmZmVyLCB1aW50MzJfdCB1
blRhZ0NvdW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGl2
ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICogcFRhZ3NCdWZmZXIsIHVpbnQzMl90
ICogcHVuVGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVm
ZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICog
cFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1YWRzQ291bnQpOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpFeHBvcnRMaXZlVG9CdWZmZXIpKGNoYXIgKiBwQnVmZmVy
LCB1aW50MzJfdCAqIHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZykoY2hhciAqIHBCdWZmZXIsIHVp
bnQzMl90IG5JbXBvcnRGbGFncyk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQ29tcG9zaXRvcl9GblRh
YmxlCit7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFRyYWNraW5n
U3BhY2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOworICAgICAgIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tpbmdTcGFj
ZSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpXYWl0R2V0UG9zZXMpKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFJlbmRlclBvc2VB
cnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgc3RydWN0IFRyYWNrZWREZXZp
Y2VQb3NlX3QgKiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1lUG9zZUFycmF5Q291bnQp
OworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dExhc3RQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwUmVuZGVyUG9zZUFycmF5
LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBzdHJ1Y3QgVHJhY2tlZERldmljZVBv
c2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7Cisg
ICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGFz
dFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNl
SW5kZXgsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dFBvc2UsIHN0cnVjdCBU
cmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dEdhbWVQb3NlKTsKKyAgICAgICBFVlJDb21wb3Np
dG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdWJtaXQpKEVWUkV5ZSBlRXllLCBz
dHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmUsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBC
b3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkNsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKSgpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb3N0UHJlc2VudEhhbmRvZmYpKCk7CisgICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZyYW1lVGltaW5nKShzdHJ1Y3Qg
Q29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1pbmcsIHVpbnQzMl90IHVuRnJhbWVzQWdvKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZyYW1lVGltaW5n
cykoc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiBwVGltaW5nLCB1aW50MzJfdCBuRnJh
bWVzKTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZyYW1lVGlt
ZVJlbWFpbmluZykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
Q3VtdWxhdGl2ZVN0YXRzKShzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgKiBwU3Rh
dHMsIHVpbnQzMl90IG5TdGF0c1NpemVJbkJ5dGVzKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqRmFkZVRvQ29sb3IpKGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVkLCBm
bG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91bmQp
OworICAgICAgIHN0cnVjdCBIbWRDb2xvcl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
Q3VycmVudEZhZGVDb2xvcikoYm9vbCBiQmFja2dyb3VuZCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkZhZGVHcmlkKShmbG9hdCBmU2Vjb25kcywgYm9vbCBiRmFkZUlu
KTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEN1cnJlbnRHcmlk
QWxwaGEpKCk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0U2t5Ym94T3ZlcnJpZGUpKHN0cnVjdCBUZXh0dXJlX3QgKiBwVGV4dHVyZXMsIHVp
bnQzMl90IHVuVGV4dHVyZUNvdW50KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqQ2xlYXJTa3lib3hPdmVycmlkZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqQ29tcG9zaXRvckJyaW5nVG9Gcm9udCkoKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckdvVG9CYWNrKSgpOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yUXVpdCkoKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNGdWxsc2NyZWVuKSgpOworICAgICAgIHVpbnQz
Ml90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNz
KSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGFzdEZy
YW1lUmVuZGVyZXIpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNh
blJlbmRlclNjZW5lKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
aG93TWlycm9yV2luZG93KSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpIaWRlTWlycm9yV2luZG93KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpJc01pcnJvcldpbmRvd1Zpc2libGUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JEdW1wSW1hZ2VzKSgpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKSgpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGb3JjZUludGVybGVhdmVkUmVw
cm9qZWN0aW9uT24pKGJvb2wgYk92ZXJyaWRlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqRm9yY2VSZWNvbm5lY3RQcm9jZXNzKSgpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTdXNwZW5kUmVuZGVyaW5nKShib29sIGJTdXNwZW5kKTsKKyAg
ICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRNaXJy
b3JUZXh0dXJlRDNEMTEpKEVWUkV5ZSBlRXllLCB2b2lkICogcEQzRDExRGV2aWNlT3JSZXNvdXJj
ZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSkodm9pZCAqIHBE
M0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TWlycm9yVGV4dHVyZUdMKShFVlJFeWUgZUV5ZSwgZ2xV
SW50X3QgKiBwZ2xUZXh0dXJlSWQsIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90ICogcGdsU2hhcmVk
VGV4dHVyZUhhbmRsZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJl
bGVhc2VTaGFyZWRHTFRleHR1cmUpKGdsVUludF90IGdsVGV4dHVyZUlkLCBnbFNoYXJlZFRleHR1
cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpMb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKShnbFNoYXJlZFRl
eHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpVbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MpKGdsU2hh
cmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNS
ZXF1aXJlZCkoY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUpOworICAgICAg
IHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VnVsa2FuRGV2aWNlRXh0ZW5z
aW9uc1JlcXVpcmVkKShzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICogcFBoeXNpY2FsRGV2aWNl
LCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSk7Cit9OworCitzdHJ1Y3Qg
VlJfSVZST3ZlcmxheV9GblRhYmxlCit7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqRmluZE92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5S2V5LCBWUk92
ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDcmVhdGVPdmVybGF5KShjaGFyICogcGNoT3Zlcmxh
eUtleSwgY2hhciAqIHBjaE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICog
cE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkRlc3Ryb3lPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dEhpZ2hRdWFsaXR5T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsK
KyAgICAgICBWUk92ZXJsYXlIYW5kbGVfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEhp
Z2hRdWFsaXR5T3ZlcmxheSkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlLZXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
Y2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAq
IHBFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRP
dmVybGF5TmFtZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjaGFyICogcGNo
VmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICogcEVycm9yKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVy
bGF5SW1hZ2VEYXRhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKiBw
dkJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJTaXplLCB1aW50MzJfdCAqIHB1bldpZHRoLCB1aW50
MzJfdCAqIHB1bkhlaWdodCk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKShFVlJPdmVybGF5RXJyb3IgZXJyb3IpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlSZW5kZXJpbmdQaWQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMy
X3QgdW5QSUQpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5RmxhZykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFn
cyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlGbGFnKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCAqIHBi
RW5hYmxlZCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheUNvbG9yKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZs
b2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOworICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlDb2xvcikoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBmUmVkLCBmbG9hdCAqIHBmR3JlZW4s
IGZsb2F0ICogcGZCbHVlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTZXRPdmVybGF5QWxwaGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgZkFscGhhKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRPdmVybGF5QWxwaGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgZmxvYXQgKiBwZkFscGhhKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VGV4ZWxBc3BlY3QpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4ZWxBc3BlY3Qp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZlRleGVsQXNwZWN0
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5U29ydE9yZGVyKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQz
Ml90IHVuU29ydE9yZGVyKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5U29ydE9yZGVyKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHVpbnQzMl90ICogcHVuU29ydE9yZGVyKTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5V2lkdGhJbk1ldGVycykoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmV2lkdGhJbk1ldGVycyk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3Zlcmxh
eVdpZHRoSW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQg
KiBwZldpZHRoSW5NZXRlcnMpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRl
cnMsIGZsb2F0IGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5n
ZUluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZN
aW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCAqIHBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAg
ICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRl
eHR1cmVDb2xvclNwYWNlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xv
clNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKShWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlICogcGVUZXh0dXJlQ29sb3JT
cGFjZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0T3ZlcmxheVRleHR1cmVCb3VuZHMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcE92ZXJsYXlUZXh0dXJlQm91bmRzKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5
VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3Qg
VlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAgICAgIEVWUk92
ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1U
eXBlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheVRyYW5zZm9y
bVR5cGUgKiBwZVRyYW5zZm9ybVR5cGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tp
bmdPcmlnaW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVy
bGF5VHJhbnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUpKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKiBwZVRyYWNraW5nT3JpZ2lu
LCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5z
Zm9ybSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blRyYWNrZWREZXZpY2Us
IHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zv
cm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgKiBwdW5UcmFja2VkRGV2aWNl
LCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNm
b3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBj
aGFyICogcGNoQ29tcG9uZW50TmFtZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25l
bnQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4
X3QgKiBwdW5EZXZpY2VJbmRleCwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVu
Q29tcG9uZW50TmFtZVNpemUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKlNob3dPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhp
ZGVPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc092ZXJsYXlWaXNpYmxlKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcykoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBl
VHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXks
IHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYW5zZm9ybSk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvbGxOZXh0T3ZlcmxheUV2ZW50KShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQzMl90
IHVuY2JWUkV2ZW50KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRPdmVybGF5SW5wdXRNZXRob2QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgKiBwZUlucHV0TWV0aG9kKTsKKyAgICAgICBF
VlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5SW5wdXRN
ZXRob2QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5wdXRN
ZXRob2QgZUlucHV0TWV0aG9kKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRPdmVybGF5TW91c2VTY2FsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBzdHJ1Y3QgSG1kVmVjdG9yMl90ICogcHZlY01vdXNlU2NhbGUpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlN
b3VzZVNjYWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRW
ZWN0b3IyX3QgKiBwdmVjTW91c2VTY2FsZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uKShWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCAqIHBQ
YXJhbXMsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgKiBwUmVzdWx0cyk7
CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhhbmRsZUNvbnRyb2xsZXJP
dmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4KTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNIb3ZlclRhcmdldE92ZXJsYXkpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgVlJPdmVybGF5SGFuZGxl
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRHYW1lcGFkRm9jdXNPdmVybGF5KSgpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEdhbWVw
YWRGb2N1c092ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsTmV3Rm9jdXNPdmVybGF5KTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5
TmVpZ2hib3IpKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhhbmRsZV90
IHVsRnJvbSwgVlJPdmVybGF5SGFuZGxlX3QgdWxUbyk7CisgICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IpKEVP
dmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhhbmRsZV90IHVsRnJvbSk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zlcmxh
eVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFRleHR1
cmVfdCAqIHBUZXh0dXJlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpDbGVhck92ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldE92ZXJsYXlSYXcpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9p
ZCAqIHB2QnVmZmVyLCB1aW50MzJfdCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdWludDMy
X3QgdW5EZXB0aCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0T3ZlcmxheUZyb21GaWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIGNoYXIgKiBwY2hGaWxlUGF0aCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgdm9pZCAqKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSwgdm9pZCAqIHBOYXRp
dmVUZXh0dXJlUmVmLCB1aW50MzJfdCAqIHBXaWR0aCwgdWludDMyX3QgKiBwSGVpZ2h0LCB1aW50
MzJfdCAqIHBOYXRpdmVGb3JtYXQsIEVUZXh0dXJlVHlwZSAqIHBBUElUeXBlLCBFQ29sb3JTcGFj
ZSAqIHBDb2xvclNwYWNlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwVGV4dHVyZUJvdW5k
cyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVs
ZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgdm9pZCAqIHBOYXRpdmVUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZVNpemUpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKiBwV2lkdGgsIHVpbnQzMl90ICog
cEhlaWdodCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSkoY2hhciAqIHBjaE92ZXJsYXlLZXksIGNoYXIgKiBw
Y2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBNYWluSGFuZGxlLCBW
Uk92ZXJsYXlIYW5kbGVfdCAqIHBUaHVtYm5haWxIYW5kbGUpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpJc0Rhc2hib2FyZFZpc2libGUpKCk7CisgICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzQWN0aXZlRGFzaGJvYXJkT3ZlcmxheSkoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKShW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUHJvY2Vzc0lkKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREYXNo
Ym9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIHVpbnQzMl90ICogcHVuUHJvY2Vzc0lkKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2hvd0Rhc2hib2FyZCkoY2hhciAqIHBjaE92ZXJsYXlUb1Nob3cpOworICAg
ICAgIFRyYWNrZWREZXZpY2VJbmRleF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UHJp
bWFyeURhc2hib2FyZERldmljZSkoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTaG93S2V5Ym9hcmQpKEVHYW1lcGFkVGV4dElucHV0TW9kZSBlSW5w
dXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBjaGFyICog
cGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY2hhciAqIHBjaEV4aXN0aW5nVGV4
dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFsdWUpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dLZXlib2FyZEZvck92
ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUdhbWVwYWRUZXh0SW5w
dXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1v
ZGUsIGNoYXIgKiBwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjaGFyICogcGNo
RXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSk7
CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRLZXlib2FyZFRl
eHQpKGNoYXIgKiBwY2hUZXh0LCB1aW50MzJfdCBjY2hUZXh0KTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqSGlkZUtleWJvYXJkKSgpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKShFVHJhY2tp
bmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90ICog
cG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSk7CisgICAgICAgdm9pZCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRSZWN0Ml90IGF2b2lkUmVj
dCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
T3ZlcmxheUludGVyc2VjdGlvbk1hc2spKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCAqIHBNYXNrUHJp
bWl0aXZlcywgdWludDMyX3QgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludDMyX3QgdW5QcmltaXRp
dmVTaXplKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRPdmVybGF5RmxhZ3MpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWlu
dDMyX3QgKiBwRmxhZ3MpOworICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dNZXNzYWdlT3ZlcmxheSkoY2hhciAqIHBjaFRleHQsIGNo
YXIgKiBwY2hDYXB0aW9uLCBjaGFyICogcGNoQnV0dG9uMFRleHQsIGNoYXIgKiBwY2hCdXR0b24x
VGV4dCwgY2hhciAqIHBjaEJ1dHRvbjJUZXh0LCBjaGFyICogcGNoQnV0dG9uM1RleHQpOworfTsK
Kworc3RydWN0IFZSX0lWUlJlbmRlck1vZGVsc19GblRhYmxlCit7CisgICAgICAgRVZSUmVuZGVy
TW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRSZW5kZXJNb2RlbF9Bc3lu
YykoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgc3RydWN0IFJlbmRlck1vZGVsX3QgKiogcHBS
ZW5kZXJNb2RlbCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZyZWVS
ZW5kZXJNb2RlbCkoc3RydWN0IFJlbmRlck1vZGVsX3QgKiBwUmVuZGVyTW9kZWwpOworICAgICAg
IEVWUlJlbmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkVGV4dHVy
ZV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVy
ZU1hcF90ICoqIHBwVGV4dHVyZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkZyZWVUZXh0dXJlKShzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICogcFRleHR1
cmUpOworICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpMb2FkVGV4dHVyZUQzRDExX0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQgKiBw
RDNEMTFEZXZpY2UsIHZvaWQgKiogcHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgRVZSUmVuZGVy
TW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRJbnRvVGV4dHVyZUQzRDEx
X0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQgKiBwRHN0VGV4dHVyZSk7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZyZWVUZXh0dXJlRDNEMTEpKHZvaWQg
KiBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UmVuZGVyTW9kZWxOYW1lKSh1aW50MzJfdCB1blJlbmRlck1vZGVsSW5kZXgsIGNo
YXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlbmRlck1vZGVs
Q291bnQpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRD
b21wb25lbnRDb3VudCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSk7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnROYW1lKShjaGFyICogcGNo
UmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudEluZGV4LCBjaGFyICogcGNoQ29t
cG9uZW50TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnROYW1lTGVuKTsKKyAgICAgICB1aW50NjRf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudEJ1dHRvbk1hc2spKGNoYXIg
KiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICB1
aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudFJlbmRlck1vZGVs
TmFtZSkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUs
IGNoYXIgKiBwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50
UmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0Q29tcG9uZW50U3RhdGUpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBw
Y2hDb21wb25lbnROYW1lLCBWUkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwg
c3RydWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QgKiBwU3RhdGUsIHN0cnVj
dCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICogcENvbXBvbmVudFN0YXRlKTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVuZGVyTW9kZWxIYXNDb21wb25lbnQp
KGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAg
ICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlbmRlck1vZGVsVGh1
bWJuYWlsVVJMKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoVGh1bWJuYWls
VVJMLCB1aW50MzJfdCB1blRodW1ibmFpbFVSTExlbiwgRVZSUmVuZGVyTW9kZWxFcnJvciAqIHBl
RXJyb3IpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVu
ZGVyTW9kZWxPcmlnaW5hbFBhdGgpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBw
Y2hPcmlnaW5hbFBhdGgsIHVpbnQzMl90IHVuT3JpZ2luYWxQYXRoTGVuLCBFVlJSZW5kZXJNb2Rl
bEVycm9yICogcGVFcnJvcik7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSkoRVZSUmVuZGVyTW9kZWxFcnJvciBl
cnJvcik7Cit9OworCitzdHJ1Y3QgVlJfSVZSTm90aWZpY2F0aW9uc19GblRhYmxlCit7CisgICAg
ICAgRVZSTm90aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDcmVhdGVO
b3RpZmljYXRpb24pKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDY0X3Qg
dWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgY2hhciAqIHBjaFRleHQsIEVW
Uk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCBzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QgKiBw
SW1hZ2UsIFZSTm90aWZpY2F0aW9uSWQgKiBwTm90aWZpY2F0aW9uSWQpOworICAgICAgIEVWUk5v
dGlmaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlTm90aWZpY2F0
aW9uKShWUk5vdGlmaWNhdGlvbklkIG5vdGlmaWNhdGlvbklkKTsKK307CisKK3N0cnVjdCBWUl9J
VlJTZXR0aW5nc19GblRhYmxlCit7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSkoRVZSU2V0dGluZ3NFcnJvciBlRXJy
b3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTeW5jKShib29sIGJG
b3JjZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRCb29sKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNl
dHRpbmdzS2V5LCBib29sIGJWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAg
ICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRJbnQzMikoY2hhciAqIHBjaFNl
Y3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdz
RXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0RmxvYXQpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGZsb2F0
IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U3RyaW5nKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAq
IHBjaFNldHRpbmdzS2V5LCBjaGFyICogcGNoVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVy
cm9yKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm9vbCkoY2hh
ciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAq
IHBlRXJyb3IpOworICAgICAgIGludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRJ
bnQzMikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGlu
Z3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0RmxvYXQpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVW
UlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0U3RyaW5nKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdz
S2V5LCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJy
b3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVt
b3ZlU2VjdGlvbikoY2hhciAqIHBjaFNlY3Rpb24sIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9y
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlS2V5SW5TZWN0
aW9uKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5n
c0Vycm9yICogcGVFcnJvcik7Cit9OworCitzdHJ1Y3QgVlJfSVZSU2NyZWVuc2hvdHNfRm5UYWJs
ZQoreworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlcXVlc3RTY3JlZW5zaG90KShTY3JlZW5zaG90SGFuZGxlX3QgKiBwT3V0U2NyZWVuc2hvdEhh
bmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY2hhciAqIHBjaFByZXZpZXdGaWxlbmFtZSwg
Y2hhciAqIHBjaFZSRmlsZW5hbWUpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkhvb2tTY3JlZW5zaG90KShFVlJTY3JlZW5zaG90VHlwZSAqIHBT
dXBwb3J0ZWRUeXBlcywgaW50IG51bVR5cGVzKTsKKyAgICAgICBFVlJTY3JlZW5zaG90VHlwZSAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUpKFNjcmVl
bnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90RXJyb3IgKiBwRXJy
b3IpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2NyZWVu
c2hvdFByb3BlcnR5RmlsZW5hbWUpKFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxl
LCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmlsZW5hbWVUeXBlLCBjaGFyICogcGNo
RmlsZW5hbWUsIHVpbnQzMl90IGNjaEZpbGVuYW1lLCBFVlJTY3JlZW5zaG90RXJyb3IgKiBwRXJy
b3IpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcykoU2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RI
YW5kbGUsIGZsb2F0IGZsUHJvZ3Jlc3MpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRha2VTdGVyZW9TY3JlZW5zaG90KShTY3JlZW5zaG90SGFu
ZGxlX3QgKiBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgY2hhciAqIHBjaFByZXZpZXdGaWxlbmFtZSwg
Y2hhciAqIHBjaFZSRmlsZW5hbWUpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1pdFNjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5kbGVfdCBz
Y3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjaGFyICogcGNoU291cmNl
UHJldmlld0ZpbGVuYW1lLCBjaGFyICogcGNoU291cmNlVlJGaWxlbmFtZSk7Cit9OworCitzdHJ1
Y3QgVlJfSVZSUmVzb3VyY2VzX0ZuVGFibGUKK3sKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkxvYWRTaGFyZWRSZXNvdXJjZSkoY2hhciAqIHBjaFJlc291cmNlTmFt
ZSwgY2hhciAqIHBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4pOworICAgICAgIHVpbnQz
Ml90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVzb3VyY2VGdWxsUGF0aCkoY2hhciAq
IHBjaFJlc291cmNlTmFtZSwgY2hhciAqIHBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgY2hhciAq
IHBjaFBhdGhCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuKTsKK307CisKKworI2lmIDAKKy8v
IEdsb2JhbCBlbnRyeSBwb2ludHMKK1NfQVBJIGludHB0cl90IFZSX0luaXRJbnRlcm5hbCggRVZS
SW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZVR5cGUgKTsKK1NfQVBJIHZv
aWQgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworU19BUEkgYm9vbCBWUl9Jc0htZFByZXNlbnQoKTsK
K1NfQVBJIGludHB0cl90IFZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIGNvbnN0IGNoYXIgKnBjaElu
dGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvciApOworU19BUEkgYm9vbCBWUl9J
c1J1bnRpbWVJbnN0YWxsZWQoKTsKK1NfQVBJIGNvbnN0IGNoYXIgKiBWUl9HZXRWUkluaXRFcnJv
ckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKK1NfQVBJIGNvbnN0IGNoYXIgKiBWUl9H
ZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsK
KyNlbmRpZgorCisjZW5kaWYgLy8gX19PUEVOVlJfQVBJX0ZMQVRfSF9fCisKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA4ZDFmNzExNTlkYzM3ODVjMDllY2RlZDliZjQwZTU5MzllMjQ2NzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKQEAg
LTAsMCArMSwyNTQxIEBACisjcHJhZ21hIG9uY2UKKworLy8gb3BlbnZyX2RyaXZlci5oCisvLz09
PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKy8vIER5
bmFtaWNhbGx5IGdlbmVyYXRlZCBmaWxlLiBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSBkaXJlY3Rs
eS4KKworI2lmbmRlZiBfT1BFTlZSX0RSSVZFUl9BUEkKKyNkZWZpbmUgX09QRU5WUl9EUklWRVJf
QVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisKKy8vIHZydHlwZXMuaAorI2lmbmRlZiBf
SU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lOQ0xVREVfVlJUWVBFU19ICisKKy8vIEZvcndh
cmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyB2dWxrYW4uaAorc3RydWN0IFZrRGV2
aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UOworc3RydWN0IFZrSW5zdGFuY2VfVDsK
K3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJl
cXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEyUmVzb3VyY2U7CitzdHJ1Y3QgSUQzRDEyQ29t
bWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8
fCBkZWZpbmVkKF9fQVBQTEVfXykgCisgICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdj
YyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0
IHRvCisgICAgICAgLy8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0
aGVzZSB0eXBlcyB3aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCisgICAgICAgLy8gVGhl
IDY0LWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3Ig
dGhlc2UgdHlwZXMgc2V0IHRvCisgICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVz
ZSAjcHJhZ21hIHBhY2soNCkgb3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgorICAgICAg
IC8vIFRoZSA2NC1iaXQgc3RydWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQg
c3RydWN0dXJlIHBhY2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0uCisgICAgICAgI3ByYWdtYSBwYWNr
KCBwdXNoLCA0ICkKKyNlbHNlCisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKyNlbmRp
ZgorCit0eXBlZGVmIHZvaWQqIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90OwordHlwZWRlZiBpbnQz
Ml90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90OworCisvLyByaWdodC1oYW5k
ZWQgc3lzdGVtCisvLyAreSBpcyB1cAorLy8gK3ggaXMgdG8gdGhlIHJpZ2h0CisvLyAteiBpcyBn
b2luZyBhd2F5IGZyb20geW91CisvLyBEaXN0YW5jZSB1bml0IGlzICBtZXRlcnMKK3N0cnVjdCBI
bWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsKK307CisKK3N0cnVjdCBIbWRN
YXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQgbVs0XVs0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0
b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3RvcjRfdAor
eworICAgICAgIGZsb2F0IHZbNF07Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yM2RfdAoreworICAg
ICAgIGRvdWJsZSB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAgICAgIGZs
b2F0IHZbMl07Cit9OworCitzdHJ1Y3QgSG1kUXVhdGVybmlvbl90Cit7CisgICAgICAgZG91Ymxl
IHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgSG1kQ29sb3JfdAoreworICAgICAgIGZsb2F0IHIs
IGcsIGIsIGE7Cit9OworCitzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgSG1kVmVjdG9yM190
IHZDb3JuZXJzWyA0IF07Cit9OworCitzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIEhtZFZl
Y3RvcjJfdCB2VG9wTGVmdDsKKyAgICAgICBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfTsK
KworLyoqIFVzZWQgdG8gcmV0dXJuIHRoZSBwb3N0LWRpc3RvcnRpb24gVVZzIGZvciBlYWNoIGNv
bG9yIGNoYW5uZWwuIAorKiBVVnMgcmFuZ2UgZnJvbSAwIHRvIDEgd2l0aCAwLDAgaW4gdGhlIHVw
cGVyIGxlZnQgY29ybmVyIG9mIHRoZSAKKyogc291cmNlIHJlbmRlciB0YXJnZXQuIFRoZSAwLDAg
dG8gMSwxIHJhbmdlIGNvdmVycyBhIHNpbmdsZSBleWUuICovCitzdHJ1Y3QgRGlzdG9ydGlvbkNv
b3JkaW5hdGVzX3QKK3sKKyAgICAgICBmbG9hdCByZlJlZFsyXTsKKyAgICAgICBmbG9hdCByZkdy
ZWVuWzJdOworICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsKK307CisKK2VudW0gRVZSRXllCit7Cisg
ICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEKK307CisKK2VudW0gRVRl
eHR1cmVUeXBlCit7CisgICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WCA9IDAsIC8vIEhhbmRsZSBp
cyBhbiBJRDNEMTFUZXh0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfT3BlbkdMID0gMSwgIC8vIEhh
bmRsZSBpcyBhbiBPcGVuR0wgdGV4dHVyZSBuYW1lIG9yIGFuIE9wZW5HTCByZW5kZXIgYnVmZmVy
IG5hbWUsIGRlcGVuZGluZyBvbiBzdWJtaXQgZmxhZ3MKKyAgICAgICBUZXh0dXJlVHlwZV9WdWxr
YW4gPSAyLCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgVlJWdWxrYW5UZXh0dXJlRGF0YV90
IHN0cnVjdHVyZQorICAgICAgIFRleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsIC8vIEhhbmRsZSBp
cyBhIG1hY09TIGNyb3NzLXByb2Nlc3Mtc2hhcmFibGUgSU9TdXJmYWNlCisgICAgICAgVGV4dHVy
ZVR5cGVfRGlyZWN0WDEyID0gNCwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0byBhIEQzRDEyVGV4
dHVyZURhdGFfdCBzdHJ1Y3R1cmUKK307CisKK2VudW0gRUNvbG9yU3BhY2UKK3sKKyAgICAgICBD
b2xvclNwYWNlX0F1dG8gPSAwLCAgICAgICAvLyBBc3N1bWVzICdnYW1tYScgZm9yIDgtYml0IHBl
ciBjb21wb25lbnQgZm9ybWF0cywgb3RoZXJ3aXNlICdsaW5lYXInLiAgVGhpcyBtaXJyb3JzIHRo
ZSBEWEdJIGZvcm1hdHMgd2hpY2ggaGF2ZSBfU1JHQiB2YXJpYW50cy4KKyAgICAgICBDb2xvclNw
YWNlX0dhbW1hID0gMSwgICAgICAgLy8gVGV4dHVyZSBkYXRhIGNhbiBiZSBkaXNwbGF5ZWQgZGly
ZWN0bHkgb24gdGhlIGRpc3BsYXkgd2l0aG91dCBhbnkgY29udmVyc2lvbiAoYS5rLmEuIGRpc3Bs
YXkgbmF0aXZlIGZvcm1hdCkuCisgICAgICAgQ29sb3JTcGFjZV9MaW5lYXIgPSAyLCAgICAgICAv
LyBTYW1lIGFzIGdhbW1hIGJ1dCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBsaW5lYXIgcmVwcmVz
ZW50YXRpb24gdXNpbmcgRFhHSSdzIHNSR0IgY29udmVyc2lvbiBhbGdvcml0aG0uCit9OworCitz
dHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgdm9pZCogaGFuZGxlOyAvLyBTZWUgRVRleHR1cmVU
eXBlIGRlZmluaXRpb24gYWJvdmUKKyAgICAgICBFVGV4dHVyZVR5cGUgZVR5cGU7CisgICAgICAg
RUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9OworCisvLyBIYW5kbGUgdG8gYSBzaGFyZWQgdGV4
dHVyZSAoSEFORExFIG9uIFdpbmRvd3Mgb2J0YWluZWQgdXNpbmcgT3BlblNoYXJlZFJlc291cmNl
KS4KK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRsZV90OworI2RlZmluZSBJTlZB
TElEX1NIQVJFRF9URVhUVVJFX0hBTkRMRSAgICAgICAoKHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxl
X3QpMCkKKworZW51bSBFVHJhY2tpbmdSZXN1bHQKK3sKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9V
bmluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgICAgVHJhY2tpbmdS
ZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyAgICAgICA9IDEwMCwKKyAgICAgICBUcmFja2lu
Z1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlICAgICAgID0gMTAxLAorCisgICAgICAgVHJh
Y2tpbmdSZXN1bHRfUnVubmluZ19PSyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwK
KyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgICAgICAgICAgICAgID0g
MjAxLAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3Bv
bnNlU2l6ZSA9IDMyNzY4OworCisvKiogVXNlZCB0byBwYXNzIGRldmljZSBJRHMgdG8gQVBJIGNh
bGxzICovCit0eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZpY2VJbmRleF90Oworc3RhdGljIGNv
bnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7CitzdGF0aWMgY29uc3Qg
dWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gMHhGRkZGRkZGRTsKK3N0YXRp
YyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDB4RkZGRkZG
RkY7CisKKy8qKiBEZXNjcmliZXMgd2hhdCBraW5kIG9mIG9iamVjdCBpcyBiZWluZyB0cmFja2Vk
IGF0IGEgZ2l2ZW4gSUQgKi8KK2VudW0gRVRyYWNrZWREZXZpY2VDbGFzcworeworICAgICAgIFRy
YWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gdGhlIElEIHdhcyBub3QgdmFsaWQuCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0hNRCA9
IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIZWFkLU1vdW50ZWQgRGlz
cGxheXMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfQ29udHJvbGxlciA9IDIsICAgICAgICAg
ICAgICAgICAgICAgLy8gVHJhY2tlZCBjb250cm9sbGVycworICAgICAgIFRyYWNrZWREZXZpY2VD
bGFzc19HZW5lcmljVHJhY2tlciA9IDMsICAgICAgICAgICAgICAvLyBHZW5lcmljIHRyYWNrZXJz
LCBzaW1pbGFyIHRvIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX1RyYWNr
aW5nUmVmZXJlbmNlID0gNCwgICAgICAgLy8gQ2FtZXJhIGFuZCBiYXNlIHN0YXRpb25zIHRoYXQg
c2VydmUgYXMgdHJhY2tpbmcgcmVmZXJlbmNlIHBvaW50cworfTsKKworCisvKiogRGVzY3JpYmVz
IHdoYXQgc3BlY2lmaWMgcm9sZSBhc3NvY2lhdGVkIHdpdGggYSB0cmFja2VkIGRldmljZSAqLwor
ZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgVHJhY2tlZENvbnRyb2xsZXJS
b2xlX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW52
YWxpZCB2YWx1ZSBmb3IgY29udHJvbGxlciB0eXBlCisgICAgICAgVHJhY2tlZENvbnRyb2xsZXJS
b2xlX0xlZnRIYW5kID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRy
YWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVmdCBoYW5kCisgICAgICAgVHJhY2tl
ZENvbnRyb2xsZXJSb2xlX1JpZ2h0SGFuZCA9IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmlnaHQgaGFuZAorfTsKKwor
CisvKiogZGVzY3JpYmVzIGEgc2luZ2xlIHBvc2UgZm9yIGEgdHJhY2tlZCBvYmplY3QgKi8KK3N0
cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90Cit7CisgICAgICAgSG1kTWF0cml4MzRfdCBtRGV2aWNl
VG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHZlbG9jaXR5IGluIHRyYWNrZXIgc3BhY2UgaW4gbS9z
CisgICAgICAgSG1kVmVjdG9yM190IHZBbmd1bGFyVmVsb2NpdHk7ICAgICAgICAgICAgICAvLyBh
bmd1bGFyIHZlbG9jaXR5IGluIHJhZGlhbnMvcyAoPykKKyAgICAgICBFVHJhY2tpbmdSZXN1bHQg
ZVRyYWNraW5nUmVzdWx0OworICAgICAgIGJvb2wgYlBvc2VJc1ZhbGlkOworCisgICAgICAgLy8g
VGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgZm9yIHRoaXMg
c3BvdCBpbiB0aGUgcG9zZSBhcnJheS4KKyAgICAgICAvLyBJdCBjb3VsZCBnbyBmcm9tIHRydWUg
dG8gZmFsc2UgaWYgdGhlIHVzZXIgdW5wbHVncyB0aGUgZGV2aWNlLgorICAgICAgIGJvb2wgYkRl
dmljZUlzQ29ubmVjdGVkOworfTsKKworLyoqIElkZW50aWZpZXMgd2hpY2ggc3R5bGUgb2YgdHJh
Y2tpbmcgb3JpZ2luIHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byB1c2UKKyogZm9yIHRoZSBwb3Nl
cyBpdCBpcyByZXF1ZXN0aW5nICovCitlbnVtIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCit7Cisg
ICAgICAgVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCA9IDAsICAgICAgICAgICAgICAvLyBQb3NlcyBh
cmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNlYXRlZCB6ZXJvIHBvc2UKKyAgICAgICBUcmFj
a2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVs
YXRpdmUgdG8gdGhlIHNhZmUgYm91bmRzIGNvbmZpZ3VyZWQgYnkgdGhlIHVzZXIKKyAgICAgICBU
cmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkID0gMiwgICAgICAgLy8gUG9zZXMgYXJl
IHByb3ZpZGVkIGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIu
ICBJdCBoYXMgWSB1cCBhbmQgaXMgdW5pZmllZCBmb3IgZGV2aWNlcyBvZiB0aGUgc2FtZSBkcml2
ZXIuIFlvdSB1c3VhbGx5IGRvbid0IHdhbnQgdGhpcyBvbmUuCit9OworCisvLyBSZWZlcnMgdG8g
YSBzaW5nbGUgY29udGFpbmVyIG9mIHByb3BlcnRpZXMKK3R5cGVkZWYgdWludDY0X3QgUHJvcGVy
dHlDb250YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7
CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGtfdWxJbnZhbGlkUHJv
cGVydHlDb250YWluZXIgPSAwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5J
bnZhbGlkUHJvcGVydHlUYWcgPSAwOworCisvLyBVc2UgdGhlc2UgdGFncyB0byBzZXQvZ2V0IGNv
bW1vbiB0eXBlcyBhcyBzdHJ1Y3QgcHJvcGVydGllcworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7CitzdGF0aWMgY29uc3QgUHJvcGVydHlU
eXBlVGFnX3Qga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OworCitzdGF0aWMgY29uc3QgUHJv
cGVydHlUeXBlVGFnX3Qga191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWcgPSAyMDsKK3N0YXRpYyBj
b25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIxOwor
c3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWcg
PSAyMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yNFByb3Bl
cnR5VGFnID0gMjM7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSGlkZGVu
QXJlYVByb3BlcnR5VGFnID0gMzA7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBr
X3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7CitzdGF0aWMgY29uc3QgUHJv
cGVydHlUeXBlVGFnX3Qga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7CisK
KworLyoqIEVhY2ggZW50cnkgaW4gdGhpcyBlbnVtIHJlcHJlc2VudHMgYSBwcm9wZXJ0eSB0aGF0
IGNhbiBiZSByZXRyaWV2ZWQgYWJvdXQgYQorKiB0cmFja2VkIGRldmljZS4gTWFueSBmaWVsZHMg
YXJlIG9ubHkgdmFsaWQgZm9yIG9uZSBFVHJhY2tlZERldmljZUNsYXNzLiAqLworZW51bSBFVHJh
Y2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9JbnZhbGlkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAgICAv
LyBnZW5lcmFsIHByb3BlcnRpZXMgdGhhdCBhcHBseSB0byBhbGwgZGV2aWNlIGNsYXNzZXMKKyAg
ICAgICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDAwLAorICAgICAgIFByb3BfTW9kZWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAxLAorICAgICAgIFByb3BfU2VyaWFs
TnVtYmVyX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAyLAor
ICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDAzLAorICAgICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA0LAorICAgICAgIFByb3BfTWFudWZh
Y3R1cmVyTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA1LAorICAg
ICAgIFByb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgPSAxMDA2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDA3LAorICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25nbGVE
ZXNjcmlwdGlvbnNfU3RyaW5nICAgICAgID0gMTAwOCwKKyAgICAgICBQcm9wX0Nvbm5lY3RlZFdp
cmVsZXNzRG9uZ2xlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTAwOSwKKyAgICAgICBQ
cm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDEwLAorICAgICAgIFByb3BfRGV2aWNlSXNDaGFyZ2luZ19Cb29sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTEsCisgICAgICAgUHJvcF9EZXZpY2VCYXR0ZXJ5
UGVyY2VudGFnZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gMTAxMiwgLy8gMCBpcyBlbXB0
eSwgMSBpcyBmdWxsCisgICAgICAgUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0
ICAgICAgICAgICAgICA9IDEwMTMsCisgICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFi
bGVfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gMTAxNCwKKyAgICAgICBQcm9wX0Zpcm13YXJl
X01hbnVhbFVwZGF0ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxNSwKKyAg
ICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgICAgICAgICAgICAgID0g
MTAxNiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAxNywKKyAgICAgICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxOCwKKyAgICAgICBQcm9wX0ZQ
R0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIwLAorICAgICAgIFByb3BfUmFkaW9WZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIxLAorICAgICAg
IFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTAyMiwKKyAgICAgICBQcm9wX0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMjMsCisgICAgICAgUHJvcF9DYW5VbmlmeUNvb3JkaW5h
dGVTeXN0ZW1XaXRoSG1kX0Jvb2wgICAgICAgPSAxMDI0LAorICAgICAgIFByb3BfQ29udGFpbnNQ
cm94aW1pdHlTZW5zb3JfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gMTAyNSwKKyAgICAgICBQ
cm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sICAgICAgICAgICAgICA9IDEwMjYs
CisgICAgICAgUHJvcF9EZXZpY2VDYW5Qb3dlck9mZl9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMjcsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1Rh
cmdldF9TdHJpbmcgICAgICAgICAgICAgID0gMTAyOCwKKyAgICAgICBQcm9wX0RldmljZUNsYXNz
X0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDI5LAor
ICAgICAgIFByb3BfSGFzQ2FtZXJhX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDMwLAorICAgICAgIFByb3BfRHJpdmVyVmVyc2lvbl9TdHJp
bmcgICAgICAgICAgICAgICAgICAgPSAxMDMxLAorICAgICAgIFByb3BfRmlybXdhcmVfRm9yY2VV
cGRhdGVSZXF1aXJlZF9Cb29sICAgICAgPSAxMDMyLAorICAgICAgIFByb3BfVml2ZVN5c3RlbUJ1
dHRvbkZpeFJlcXVpcmVkX0Jvb2wgICAgICAgICAgICAgID0gMTAzMywKKyAgICAgICBQcm9wX1Bh
cmVudERyaXZlcl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAz
NCwKKworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERl
dmljZUNsYXNzX0hNRAorICAgICAgIFByb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAwLAorICAgICAgIFByb3BfU2Vjb25kc0Zyb21W
c3luY1RvUGhvdG9uc19GbG9hdCAgICAgICAgICAgICAgPSAyMDAxLAorICAgICAgIFByb3BfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9hdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDAzLAorICAgICAgIFByb3BfQ3VycmVudFVuaXZlcnNlSWRfVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNCwgCisgICAgICAgUHJvcF9QcmV2
aW91c1VuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNSwg
CisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAg
ICAgICAgID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDcsCisgICAgICAgUHJvcF9EaXNwbGF5
TUNUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDgsCisg
ICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTAsCisgICAgICAgUHJvcF9FZGlkVmVu
ZG9ySURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nICAgICAgICAgICAgICA9
IDIwMTIsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVJpZ2h0X1N0cmluZyAgICAgICAgICAg
ICA9IDIwMTMsCisgICAgICAgUHJvcF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMjAxNCwKKyAgICAgICBQcm9wX0VkaWRQcm9kdWN0SURfSW50
MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNSwKKyAgICAgICBQcm9w
X0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAgICAgICAgID0gMjAx
NiwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAxNywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE4LAorICAgICAgIFByb3BfRGlz
cGxheUdDU2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAx
OSwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAyMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIxLAorICAgICAgIFByb3BfTGVuc0Nl
bnRlckxlZnRVX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjIs
CisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAyMywKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyNCwKKyAgICAgICBQcm9wX0xl
bnNDZW50ZXJSaWdodFZfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCAgICAgICAg
ICAgICAgICAgICAgID0gMjAyNiwKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9V
aW50NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMjcsCisgICAgICAgUHJvcF9DYW1lcmFGaXJt
d2FyZURlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSAyMDI4LAorICAgICAgIFByb3Bf
RGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ICAgICAgICAg
ICAgICA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJzaW9uX1VpbnQ2NCAg
ICAgICAgICAgICAgICAgICAgID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMiwKKyAgICAgICBQcm9wX0NhbWVy
YUNvbXBhdGliaWxpdHlNb2RlX0ludDMyICAgICAgICAgICAgICAgICAgICAgPSAyMDMzLAorICAg
ICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAy
MDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zs
b2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlBbGxv
d05pZ2h0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNywKKyAgICAg
ICBQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDM4LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDM5LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VO
dW1DaGFubmVsc19JbnQzMiAgICAgICAgICAgICAgPSAyMDQwLAorICAgICAgIFByb3BfRGlzcGxh
eU1DSW1hZ2VEYXRhX0JpbmFyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDEsCisg
ICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjA0MiwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRv
IFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyCisgICAgICAgUHJvcF9BdHRhY2hlZERldmlj
ZUlkX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDAsCisgICAgICAgUHJv
cF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
MDEsCisgICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwMDIsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNv
bnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczFUeXBlX0ludDMyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAzLCAvLyBSZXR1cm4gdmFsdWUgaXMg
b2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMyVHlwZV9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNCwgLy8gUmV0
dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9B
eGlzM1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDMwMDUsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQor
ICAgICAgIFByb3BfQXhpczRUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAzMDA2LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9s
bGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMDcsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVU
cmFja2VkQ29udHJvbGxlclJvbGUKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5p
cXVlIHRvIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZQorICAgICAgIFByb3Bf
RmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAwMCwK
KyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAg
ICAgICAgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgPSA0MDAyLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdCb3R0b21E
ZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAzLAorICAgICAgIFByb3BfVHJh
Y2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNCwKKyAgICAg
ICBQcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9IDQw
MDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA0MDA2LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFy
ZSB1c2VkIGZvciB1c2VyIGludGVyZmFjZSBsaWtlIGljb25zIG5hbWVzCisgICAgICAgUHJvcF9J
Y29uUGF0aE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MDAwLCAvLyB1c3VhbGx5IGEgZGlyZWN0b3J5IG5hbWVkICJpY29ucyIKKyAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNTAwMSwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24s
IDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFt
ZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgICAgICAgICAgICAgID0gNTAwMiwgLy8g
UE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFk
c2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyAgICAgICA9IDUwMDMsIC8vIFBORyBmb3Igc3RhdGljIGlj
b24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZv
ciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeV9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICA9IDUwMDQsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBm
b3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAg
ICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyAgICAgICAgICAg
ICAgPSA1MDA1LCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwg
NTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1l
ZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA2
LCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9y
IGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDcsIC8vIFBORyBm
b3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMg
YW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VBbGVy
dExvd19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDgsIC8vIFBORyBmb3Igc3RhdGlj
IGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMy
IGZvciBvdGhlcnMKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBieSBoZWxw
ZXJzLCBidXQgYXJlIG9wYXF1ZSB0byBhcHBsaWNhdGlvbnMKKyAgICAgICBQcm9wX0Rpc3BsYXlI
aWRkZW5BcmVhX0JpbmFyeV9TdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxMDAs
CisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNTE1MCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5p
cXVlIHRvIGRyaXZlcnMKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAwLAorICAgICAgIFByb3BfSW5zdGFsbFBh
dGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAx
LAorCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBkZWJ1ZyBk
YXRhIGluIHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19S
ZXNlcnZlZF9TdGFydCAgICAgICAgICAgICAgICAgICAgID0gMTAwMDAsCisgICAgICAgUHJvcF9W
ZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgICAgICAgICA9IDEwOTk5LAor
fTsKKworLyoqIE5vIHN0cmluZyBwcm9wZXJ0eSB3aWxsIGV2ZXIgYmUgbG9uZ2VyIHRoYW4gdGhp
cyBsZW5ndGggKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4UHJvcGVydHlTdHJpbmdT
aXplID0gMzIgKiAxMDI0OworCisvKiogVXNlZCB0byByZXR1cm4gZXJyb3JzIHRoYXQgb2NjdXIg
d2hlbiByZWFkaW5nIHByb3BlcnRpZXMuICovCitlbnVtIEVUcmFja2VkUHJvcGVydHlFcnJvcgor
eworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDAsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZp
Y2VDbGFzcyAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAgICAgICBUcmFja2VkUHJvcF9CdWZm
ZXJUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMsCisgICAgICAgVHJhY2tl
ZFByb3BfVW5rbm93blByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNCwgLy8g
RHJpdmVyIGhhcyBub3Qgc2V0IHRoZSBwcm9wZXJ0eSAoYW5kIG1heSBub3QgZXZlcikuCisgICAg
ICAgVHJhY2tlZFByb3BfSW52YWxpZERldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyICAgICAgICAgICAg
ICA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlICAgICAg
ID0gNywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCAgICAg
ICA9IDgsCisgICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gOSwgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzbid0IGtub3duIHlldCwg
YnV0IGlzIGV4cGVjdGVkIHNvb24uIENhbGwgYWdhaW4gbGF0ZXIuCisgICAgICAgVHJhY2tlZFBy
b3BfUGVybWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0gMTAsCisgICAgICAgVHJh
Y2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgID0gMTEsCit9Owor
CisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjb250cm9sIHdoYXQgcGFydCBvZiB0aGUg
cHJvdmlkZWQgdGV4dHVyZSB3aWxsIGJlIHVzZWQgaW4gdGhlCisqIGZyYW1lIGJ1ZmZlci4gKi8K
K3N0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIGZsb2F0IHVNaW4sIHZNaW47Cisg
ICAgICAgZmxvYXQgdU1heCwgdk1heDsKK307CisKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRp
b24gdG8gY29udHJvbCBob3cgc2NlbmUgdGV4dHVyZXMgYXJlIHVzZWQgYnkgdGhlIGNvbXBvc2l0
b3Igd2hlbiBjYWxsaW5nIFN1Ym1pdC4gKi8KK2VudW0gRVZSU3VibWl0RmxhZ3MKK3sKKyAgICAg
ICAvLyBTaW1wbGUgcmVuZGVyIHBhdGguIEFwcCBzdWJtaXRzIHJlbmRlcmVkIGxlZnQgYW5kIHJp
Z2h0IGV5ZSBpbWFnZXMgd2l0aCBubyBsZW5zIGRpc3RvcnRpb24gY29ycmVjdGlvbiBhcHBsaWVk
LgorICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMHgwMCwKKworICAgICAgIC8vIEFwcCBzdWJtaXRz
IGZpbmFsIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBsZW5zIGRpc3RvcnRpb24gYWxy
ZWFkeSBhcHBsaWVkIChsZW5zIGRpc3RvcnRpb24gbWFrZXMgdGhlIGltYWdlcyBhcHBlYXIKKyAg
ICAgICAvLyBiYXJyZWwgZGlzdG9ydGVkIHdpdGggY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVj
dGlvbiBhcHBsaWVkKS4gVGhlIGFwcCB3b3VsZCBoYXZlIHVzZWQgdGhlIGRhdGEgcmV0dXJuZWQg
YnkKKyAgICAgICAvLyB2cjo6SVZSU3lzdGVtOjpDb21wdXRlRGlzdG9ydGlvbigpIHRvIGFwcGx5
IHRoZSBjb3JyZWN0IGRpc3RvcnRpb24gdG8gdGhlIHJlbmRlcmVkIGltYWdlcyBiZWZvcmUgY2Fs
bGluZyBTdWJtaXQoKS4KKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGll
ZCA9IDB4MDEsCisKKyAgICAgICAvLyBJZiB0aGUgdGV4dHVyZSBwb2ludGVyIHBhc3NlZCBpbiBp
cyBhY3R1YWxseSBhIHJlbmRlcmJ1ZmZlciAoZS5nLiBmb3IgTVNBQSBpbiBPcGVuR0wpIHRoZW4g
c2V0IHRoaXMgZmxhZy4KKyAgICAgICBTdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAweDAyLAorCisg
ICAgICAgLy8gRG8gbm90IHVzZQorICAgICAgIFN1Ym1pdF9SZXNlcnZlZCA9IDB4MDQsCit9Owor
CisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxrYW4gdGV4dHVyZXMgdG8gSVZSQ29t
cG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3BlblZSX1NodXRkb3duIGJlZm9y
ZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVjdCBWUlZ1bGthblRleHR1cmVE
YXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsgLy8gVmtJbWFnZQorICAgICAgIFZr
RGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNpY2FsRGV2aWNlX1QgKm1fcFBoeXNp
Y2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9wSW5zdGFuY2U7CisgICAgICAgVmtR
dWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4Owor
ICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQsIG1fbkZvcm1hdCwgbV9uU2FtcGxl
Q291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBEM0QxMiB0ZXh0dXJl
cyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1
dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IEQzRDEy
VGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291cmNlICptX3BSZXNvdXJjZTsKKyAg
ICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRRdWV1ZTsKKyAgICAgICB1aW50MzJf
dCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2YgdGhlIG92ZXJhbGwgc3lzdGVtIG9y
IHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQoreworICAgICAgIFZSU3RhdGVfVW5k
ZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAwLAorICAgICAgIFZSU3RhdGVfU2Vh
cmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGluZ19BbGVydCA9IDIsCisgICAgICAg
VlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCisgICAg
ICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJTdGF0ZV9TdGFuZGJ5ID0gNiwKKyAg
ICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9OworCisvKiogVGhlIHR5cGVzIG9m
IGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdoYXQgdGhlIHBhcmFtZXRlcnMgbWVh
biBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAgICBW
UkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVk
ICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFjdGl2
YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRhdGVkICAg
ICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJh
Y3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVz
ZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAgICAgIFZSRXZlbnRfSXBkQ2hhbmdl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJFdmVu
dF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAgICAgVlJF
dmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCisgICAgICAg
VlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAgICAgPSAxMDgsCisgICAgICAgVlJF
dmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAgICAgICAgPSAxMDksCisgICAgICAg
VlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gMTEwLAorICAgICAg
IFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEx
LAorCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZlbnRfQnV0
dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwgLy8gZGF0YSBpcyBj
b250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZl
bnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMywgLy8gZGF0
YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBWUkV2ZW50X01vdXNlTW92ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzMDAsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2
ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMSwgLy8g
ZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25VcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfRm9j
dXNFbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDMsIC8vIGRhdGEg
aXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRm9jdXNMZWF2ZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRf
U2Nyb2xsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDUsIC8v
IGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfT3Zl
cmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gMzA3LCAvLyBkYXRhIGlzIG92
ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAgICAgVlJFdmVudF9JbnB1dEZvY3VzQ2FwdHVyZWQg
ICAgICAgICAgICAgICAgICAgICA9IDQwMCwgLy8gZGF0YSBpcyBwcm9jZXNzIERFUFJFQ0FURUQK
KyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCAgICAgICAgICAgICAgICAgICAgID0g
NDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAorICAgICAgIFZSRXZlbnRfU2NlbmVG
b2N1c0xvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDIsIC8vIGRhdGEgaXMgcHJv
Y2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCAgICAgICAgICAgICAgICAgICAg
ID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRp
b25DaGFuZ2VkICAgICAgICAgICAgICA9IDQwNCwgLy8gZGF0YSBpcyBwcm9jZXNzIC0gVGhlIEFw
cCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2VuZSBjaGFuZ2VkICh1c3VhbGx5IHRvIG9yIGZyb20g
dGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCAgICAgICAg
ICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBOZXcgYXBwIGdvdCBhY2Nl
c3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkICAg
ICAgICAgICAgICAgICAgICAgPSA0MDYsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZl
bnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsIC8vIGRh
dGEgaXMgcHJvY2VzcworCisgICAgICAgVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzICAgICAgICAg
ICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRvIHJl
cXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMgdGVtcG9yYXJpbHkKKyAgICAgICBWUkV2ZW50X1No
b3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9IDQxMSwgLy8gU2VudCB0byB0aGUg
c2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCByZXN0b3JpbmcgcmVuZGVyIG1vZGVsIHZpc2li
aWxpdHkKKworICAgICAgIFZSRXZlbnRfT3ZlcmxheVNob3duICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNTAwLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUhpZGRlbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUwMSwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEFjdGl2YXRlZCAg
ICAgICAgICAgICAgICAgICAgID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkRGVhY3Rp
dmF0ZWQgICAgICAgICAgICAgID0gNTAzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkVGh1bWJT
ZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQsIC8vIFNlbnQgdG8gdGhlIG92ZXJsYXkgbWFuYWdl
ciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVkICAg
ICAgICAgICAgICAgICAgICAgPSA1MDUsIC8vIFNlbnQgdG8gdGhlIG92ZXJsYXkgbWFuYWdlciAt
IGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfUmVzZXREYXNoYm9hcmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA1MDYsIC8vIFNlbmQgdG8gdGhlIG92ZXJsYXkgbWFuYWdlcgor
ICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBkYXNoYm9hcmQgdG8gcmVuZGVyIGEgdG9hc3QgLSBk
YXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQKKyAgICAgICBWUkV2ZW50X0ltYWdlTG9hZGVkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwOCwgLy8gU2VudCB0byBvdmVybGF5
cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5RnJvbUZpbGUgY2FsbCBmaW5pc2hl
cyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8ga2V5Ym9hcmQgcmVuZGVyZXIgaW4gdGhlIGRhc2hi
b2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBWUkV2ZW50X0hpZGVLZXlib2FyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUxMCwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0
aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAgICAgICBWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9j
dXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNlbnQgdG8gYW4gb3ZlcmxheSB3aGVuIElWUk92ZXJs
YXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gaXQKKyAgICAgICBWUkV2ZW50X092ZXJs
YXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAgICAgICA9IDUxMiwgLy8gU2VuZCB0byBhbiBvdmVy
bGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQgZm9jdXMgYW5kIElWUk92ZXJsYXk6OlNldEZvY3Vz
T3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRoaW5nIGVsc2UKKyAgICAgICBWUkV2ZW50X092ZXJs
YXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEd1
aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEd1aWRl
QnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1LAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRy
aWdnZXJlZCAgICAgICAgICAgICAgICAgICAgID0gNTE2LCAvLyBTY3JlZW5zaG90IGJ1dHRvbiBj
b21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJkIHNob3VsZCByZXF1ZXN0IGEgc2NyZWVuc2hvdAor
ICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNl
dE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBsb2FkCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRP
dmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAgPSA1MTgsCisKKyAgICAgICAvLyBTY3JlZW5zaG90
IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkgdnJjbGllbnQgYXBwbGljYXRpb24gdG8gY29tcG9z
aXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRha2Vu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMSwgLy8gU2VudCBieSBjb21w
b3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90IGhhcyBiZWVuIHRh
a2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRo
YXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRvIGJlIHRha2VuCisgICAgICAgVlJFdmVudF9TdWJt
aXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAgICAgICAgICAgID0gNTIzLCAvLyBTZW50IGJ5IGNv
bXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNjcmVlbnNob3Qgd2Fz
IHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQg
ICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQg
YSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVkCisKKyAgICAgICBWUkV2ZW50X1By
aW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkICAgICAgID0gNTI1LAorCisgICAgICAgVlJFdmVu
dF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAsCisg
ICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0JlZ2luSW50ZXJhY3Rpb24g
ICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fRGVzdHJveWVkICAgICAg
ICAgICAgICAgICAgICAgPSA2MDMsCisKKyAgICAgICBWUkV2ZW50X1F1aXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDAsIC8vIGRhdGEgaXMgcHJv
Y2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDcwMSwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVu
dF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAgICAgICAgICAgICAgICAgICAgPSA3MDIsIC8vIGRh
dGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDcwMywgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVu
dF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNzA0LCAv
LyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQgdGhhdCBTdGVhbVZSIHNodXQgZG93bgorCisgICAg
ICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0g
ODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2VkICAgICAgICAg
ICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCAg
ICAgICAgICAgICAgPSA4MDIsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVTZXR0aW5nc0hhdmVD
aGFuZ2VkICAgICAgID0gODAzLAorICAgICAgIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgwNCwKKworICAgICAgIFZSRXZlbnRfQXVkaW9T
ZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDgyMCwKKworICAgICAgIFZSRXZlbnRf
QmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDg1MCwKKyAgICAgICBW
UkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODUxLAorICAg
ICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgPSA4NTIsCisg
ICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODUzLAor
ICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODU0
LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9
IDg1NSwKKworICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDkwMCwKKworICAgICAgIFZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwKKworICAgICAgIFZSRXZlbnRf
RmlybXdhcmVVcGRhdGVTdGFydGVkICAgICAgICAgICAgICAgICAgICAgPSAxMTAwLAorICAgICAg
IFZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCAgICAgICAgICAgICAgICAgICAgID0gMTEw
MSwKKworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTIwMCwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMSwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJk
RG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAyLCAvLyBTZW50IHdo
ZW4gRE9ORSBidXR0b24gY2xpY2tlZCBvbiBrZXlib2FyZAorCisgICAgICAgVlJFdmVudF9BcHBs
aWNhdGlvblRyYW5zaXRpb25TdGFydGVkICAgICAgICAgICAgICA9IDEzMDAsCisgICAgICAgVlJF
dmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkICAgICAgICAgICAgICA9IDEzMDEsCisg
ICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkICAgICAgID0g
MTMwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMzAzLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25NaW1lVHlw
ZUxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA0LAorICAgICAgIFZSRXZlbnRf
QXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorCisgICAg
ICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duICAgICAgICAgICAgICA9IDE0
MDAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiAgICAgICAg
ICAgICAgPSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNT
aG93biAgICAgICAgICAgICAgPSAxNDEwLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFw
ZXJvbmVCb3VuZHNIaWRkZW4gICAgICAgPSAxNDExLAorCisgICAgICAgVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gID0gMTUwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfU3RvcFZpZGVvU3RyZWFtICAgPSAxNTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9QYXVzZVZpZGVvU3RyZWFtICA9IDE1MDIsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1Jlc3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1l
cmFfRWRpdGluZ1N1cmZhY2UgICAgPSAxNTUwLAorCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfRW5hYmxlQ2FwdHVyZSAgICAgICA9IDE2MDAsCisgICAgICAgVlJFdmVudF9QZXJmb3Jt
YW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgICAgICAgPSAxNjAxLAorICAgICAgIFZSRXZlbnRfUGVy
Zm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgICAgICAgPSAxNjAyLAorCisgICAgICAgVlJFdmVu
dF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgICAgICAgICAgICAgICAgICAgICA9IDE2NTAsCisgICAg
ICAgCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBldmVudHMg
aW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX1N0YXJ0ICAgICAgID0gMTAwMDAsCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZp
Y19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgID0gMTk5OTksCit9OworCisKKy8qKiBMZXZlbCBv
ZiBIbWQgYWN0aXZpdHkgKi8KK2VudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKK3sKKyAgICAgICBr
X0VEZXZpY2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX0lkbGUgPSAwLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlcklu
dGVyYWN0aW9uID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFj
dGlvbl9UaW1lb3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkg
PSAzLAorfTsKKworCisvKiogVlIgY29udHJvbGxlciBidXR0b24gYW5kIGF4aXMgSURzICovCitl
bnVtIEVWUkJ1dHRvbklkCit7CisgICAgICAga19FQnV0dG9uX1N5c3RlbSAgICAgICAgICAgICAg
ICAgICAgID0gMCwKKyAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ICAgICAgID0gMSwK
KyAgICAgICBrX0VCdXR0b25fR3JpcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIsCisg
ICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCAgICAgICAgICAgICAgICAgICAgID0gMywKKyAgICAg
ICBrX0VCdXR0b25fRFBhZF9VcCAgICAgICAgICAgICAgICAgICAgID0gNCwKKyAgICAgICBrX0VC
dXR0b25fRFBhZF9SaWdodCAgICAgICAgICAgICAgPSA1LAorICAgICAgIGtfRUJ1dHRvbl9EUGFk
X0Rvd24gICAgICAgICAgICAgICAgICAgICA9IDYsCisgICAgICAga19FQnV0dG9uX0EgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNywKKyAgICAgICAKKyAgICAgICBrX0VCdXR0
b25fUHJveGltaXR5U2Vuc29yICAgPSAzMSwKKworICAgICAgIGtfRUJ1dHRvbl9BeGlzMCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMzLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDM0LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDM1LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzNCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDM2LAorCisgICAgICAgLy8gYWxpYXNlcyBmb3Igd2Vs
bCBrbm93biBjb250cm9sbGVycworICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkICAg
ICAgID0ga19FQnV0dG9uX0F4aXMwLAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIg
ICAgICAgPSBrX0VCdXR0b25fQXhpczEsCisKKyAgICAgICBrX0VCdXR0b25fRGFzaGJvYXJkX0Jh
Y2sgICAgICAgPSBrX0VCdXR0b25fR3JpcCwKKworICAgICAgIGtfRUJ1dHRvbl9NYXggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA2NAorfTsKKworaW5saW5lIHVpbnQ2NF90IEJ1dHRvbk1h
c2tGcm9tSWQoIEVWUkJ1dHRvbklkIGlkICkgeyByZXR1cm4gMXVsbCA8PCBpZDsgfQorCisvKiog
dXNlZCBmb3IgY29udHJvbGxlciBidXR0b24gZXZlbnRzICovCitzdHJ1Y3QgVlJFdmVudF9Db250
cm9sbGVyX3QKK3sKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUkJ1dHRvbklkIGVudW0K
K307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgaW4gb3ZlcmxheSBz
cGFjZSAqLworZW51bSBFVlJNb3VzZUJ1dHRvbgoreworICAgICAgIFZSTW91c2VCdXR0b25fTGVm
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEsCisgICAgICAgVlJN
b3VzZUJ1dHRvbl9SaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAw
MDIsCisgICAgICAgVlJNb3VzZUJ1dHRvbl9NaWRkbGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAweDAwMDQsCit9OworCisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRz
IGluIG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X01vdXNlX3QKK3sKKyAgICAgICBm
bG9hdCB4LCB5OyAvLyBjby1vcmRzIGFyZSBpbiBHTCBzcGFjZSwgYm90dG9tIGxlZnQgb2YgdGhl
IHRleHR1cmUgaXMgMCwwCisgICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJNb3VzZUJ1dHRv
biBlbnVtCit9OworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIHdoZWVsIHNjcm9sbCBp
biBvdmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAoreworICAgICAgIGZs
b2F0IHhkZWx0YSwgeWRlbHRhOyAvLyBtb3ZlbWVudCBpbiBmcmFjdGlvbiBvZiB0aGUgcGFkIHRy
YXZlcnNlZCBzaW5jZSBsYXN0IGRlbHRhLCAxLjAgZm9yIGEgZnVsbCBzd2lwZQorICAgICAgIHVp
bnQzMl90IHJlcGVhdENvdW50OworfTsKKworLyoqIHdoZW4gaW4gbW91c2UgaW5wdXQgbW9kZSB5
b3UgY2FuIHJlY2VpdmUgZGF0YSBmcm9tIHRoZSB0b3VjaHBhZCwgdGhlc2UgZXZlbnRzIGFyZSBv
bmx5IHNlbnQgaWYgdGhlIHVzZXJzIGZpbmdlcgorICAgaXMgb24gdGhlIHRvdWNocGFkIChvciBq
dXN0IHJlbGVhc2VkIGZyb20gaXQpIAorKiovCitzdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1vdmVf
dAoreworICAgICAgIC8vIHRydWUgaWYgdGhlIHVzZXJzIGZpbmdlciBpcyBkZXRlY3RlZCBvbiB0
aGUgdG91Y2ggcGFkCisgICAgICAgYm9vbCBiRmluZ2VyRG93bjsKKworICAgICAgIC8vIEhvdyBs
b25nIHRoZSBmaW5nZXIgaGFzIGJlZW4gZG93biBpbiBzZWNvbmRzCisgICAgICAgZmxvYXQgZmxT
ZWNvbmRzRmluZ2VyRG93bjsKKworICAgICAgIC8vIFRoZXNlIHZhbHVlcyBpbmRpY2F0ZSB0aGUg
c3RhcnRpbmcgZmluZ2VyIHBvc2l0aW9uIChzbyB5b3UgY2FuIGRvIHNvbWUgYmFzaWMgc3dpcGUg
c3R1ZmYpCisgICAgICAgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAgIGZsb2F0IGZWYWx1ZVlG
aXJzdDsKKworICAgICAgIC8vIFRoaXMgaXMgdGhlIHJhdyBzYW1wbGVkIGNvb3JkaW5hdGUgd2l0
aG91dCBkZWFkem9uaW5nCisgICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKKyAgICAgICBmbG9hdCBm
VmFsdWVZUmF3OworfTsKKworLyoqIG5vdGlmaWNhdGlvbiByZWxhdGVkIGV2ZW50cy4gRGV0YWls
cyB3aWxsIHN0aWxsIGNoYW5nZSBhdCB0aGlzIHBvaW50ICovCitzdHJ1Y3QgVlJFdmVudF9Ob3Rp
ZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOworICAgICAgIHVpbnQz
Ml90IG5vdGlmaWNhdGlvbklkOworfTsKKworLyoqIFVzZWQgZm9yIGV2ZW50cyBhYm91dCBwcm9j
ZXNzZXMgKi8KK3N0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHVpbnQzMl90IHBp
ZDsKKyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAgYm9vbCBiRm9yY2VkOworfTsKKwor
CisvKiogVXNlZCBmb3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCitzdHJ1Y3QgVlJF
dmVudF9PdmVybGF5X3QKK3sKKyAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworfTsKKwor
CisvKiogVXNlZCBmb3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCitzdHJ1Y3QgVlJF
dmVudF9TdGF0dXNfdAoreworICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRlOyAvLyBFVlJTdGF0
ZSBlbnVtCit9OworCisvKiogVXNlZCBmb3Iga2V5Ym9hcmQgZXZlbnRzICoqLworc3RydWN0IFZS
RXZlbnRfS2V5Ym9hcmRfdAoreworICAgICAgIGNoYXIgY05ld0lucHV0WzhdOyAgICAgICAvLyBV
cCB0byAxMSBieXRlcyBvZiBuZXcgaW5wdXQKKyAgICAgICB1aW50NjRfdCB1VXNlclZhbHVlOyAg
ICAgICAvLyBQb3NzaWJsZSBmbGFncyBhYm91dCB0aGUgbmV3IGlucHV0Cit9OworCitzdHJ1Y3Qg
VlJFdmVudF9JcGRfdAoreworICAgICAgIGZsb2F0IGlwZE1ldGVyczsKK307CisKK3N0cnVjdCBW
UkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgdWludDY0X3QgbV9uUHJldmlvdXNVbml2ZXJz
ZTsKKyAgICAgICB1aW50NjRfdCBtX25DdXJyZW50VW5pdmVyc2U7Cit9OworCisvKiogTm90IGFj
dHVhbGx5IHVzZWQgZm9yIGFueSBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X1Jlc2VydmVkX3QK
K3sKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDA7CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQx
OworfTsKKworc3RydWN0IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKK3sKKyAgICAgICB1aW50
MzJfdCBtX25GaWRlbGl0eUxldmVsOworfTsKKworc3RydWN0IFZSRXZlbnRfU2VhdGVkWmVyb1Bv
c2VSZXNldF90Cit7CisgICAgICAgYm9vbCBiUmVzZXRCeVN5c3RlbU1lbnU7Cit9OworCitzdHJ1
Y3QgVlJFdmVudF9TY3JlZW5zaG90X3QKK3sKKyAgICAgICB1aW50MzJfdCBoYW5kbGU7CisgICAg
ICAgdWludDMyX3QgdHlwZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVz
c190Cit7CisgICAgICAgZmxvYXQgcHJvZ3Jlc3M7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9BcHBs
aWNhdGlvbkxhdW5jaF90Cit7CisgICAgICAgdWludDMyX3QgcGlkOworICAgICAgIHVpbnQzMl90
IHVuQXJnc0hhbmRsZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNl
X3QKK3sKKyAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworICAgICAgIHVpbnQzMl90IG5W
aXN1YWxNb2RlOworfTsKKworc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAoreworICAg
ICAgIHVpbnQzMl90IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOyAvLyB2cjo6VlJNZXNzYWdl
T3ZlcmxheVJlc3BvbnNlIGVudW0KK307CisKK3N0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKK3sK
KyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRhaW5lcjsKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5IHByb3A7Cit9OworCisvKiogTk9URSEhISBJZiB5b3UgY2hhbmdl
IHRoaXMgeW91IE1VU1QgbWFudWFsbHkgdXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5ICovCit0
eXBlZGVmIHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOworICAg
ICAgIFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAgVlJFdmVudF9Nb3Vz
ZV90IG1vdXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOworICAgICAgIFZSRXZl
bnRfUHJvY2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3Rp
ZmljYXRpb247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBWUkV2
ZW50X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7
CisgICAgICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBj
aGFwZXJvbmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRl
c3Q7CisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7CisgICAgICAg
VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKKyAgICAg
ICBWUkV2ZW50X1NjcmVlbnNob3RfdCBzY3JlZW5zaG90OworICAgICAgIFZSRXZlbnRfU2NyZWVu
c2hvdFByb2dyZXNzX3Qgc2NyZWVuc2hvdFByb2dyZXNzOworICAgICAgIFZSRXZlbnRfQXBwbGlj
YXRpb25MYXVuY2hfdCBhcHBsaWNhdGlvbkxhdW5jaDsKKyAgICAgICBWUkV2ZW50X0VkaXRpbmdD
YW1lcmFTdXJmYWNlX3QgY2FtZXJhU3VyZmFjZTsKKyAgICAgICBWUkV2ZW50X01lc3NhZ2VPdmVy
bGF5X3QgbWVzc2FnZU92ZXJsYXk7CisgICAgICAgVlJFdmVudF9Qcm9wZXJ0eV90IHByb3BlcnR5
OworfSBWUkV2ZW50X0RhdGFfdDsKKworLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUgc2VydmVy
IHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLworc3RydWN0IFZSRXZlbnRfdAoreworICAg
ICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KKyAgICAgICBUcmFj
a2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7CisgICAgICAgZmxvYXQgZXZlbnRB
Z2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9mIHRoZSBz
dHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAgICAgICBWUkV2ZW50X0RhdGFfdCBkYXRh
OworfTsKKworCisvKiogVGhlIG1lc2ggdG8gZHJhdyBpbnRvIHRoZSBzdGVuY2lsIChvciBkZXB0
aCkgYnVmZmVyIHRvIHBlcmZvcm0gCisqIGVhcmx5IHN0ZW5jaWwgKG9yIGRlcHRoKSBraWxscyBv
ZiBwaXhlbHMgdGhhdCB3aWxsIG5ldmVyIGFwcGVhciBvbiB0aGUgSE1ELgorKiBUaGlzIG1lc2gg
ZHJhd3Mgb24gYWxsIHRoZSBwaXhlbHMgdGhhdCB3aWxsIGJlIGhpZGRlbiBhZnRlciBkaXN0b3J0
aW9uLiAKKyoKKyogSWYgdGhlIEhNRCBkb2VzIG5vdCBwcm92aWRlIGEgdmlzaWJsZSBhcmVhIG1l
c2ggcFZlcnRleERhdGEgd2lsbCBiZQorKiBOVUxMIGFuZCB1blRyaWFuZ2xlQ291bnQgd2lsbCBi
ZSAwLiAqLworc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKK3sKKyAgICAgICBjb25zdCBIbWRWZWN0
b3IyX3QgKnBWZXJ0ZXhEYXRhOworICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsKK307
CisKKworZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7CisgICAgICAga19lSGlkZGVuQXJlYU1l
c2hfU3RhbmRhcmQgPSAwLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2UgPSAxLAor
ICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0gMiwKKworICAgICAgIGtfZUhpZGRl
bkFyZWFNZXNoX01heCA9IDMsCit9OworCisKKy8qKiBJZGVudGlmaWVzIHdoYXQga2luZCBvZiBh
eGlzIGlzIG9uIHRoZSBjb250cm9sbGVyIGF0IGluZGV4IG4uIFJlYWQgdGhpcyB0eXBlIAorKiB3
aXRoIHBWUlN5c3RlbS0+R2V0KCBuQ29udHJvbGxlckRldmljZUluZGV4LCBQcm9wX0F4aXMwVHlw
ZV9JbnQzMiArIG4gKTsKKyovCitlbnVtIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQoreworICAgICAg
IGtfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1Ry
YWNrUGFkID0gMSwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19Kb3lzdGljayA9IDIsCisgICAg
ICAga19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsIC8vIEFuYWxvZyB0cmlnZ2VyIGRhdGEg
aXMgaW4gdGhlIFggYXhpcworfTsKKworCisvKiogY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQg
b25lIGF4aXMgb24gdGhlIGNvbnRyb2xsZXIgKi8KK3N0cnVjdCBWUkNvbnRyb2xsZXJBeGlzX3QK
K3sKKyAgICAgICBmbG9hdCB4OyAvLyBSYW5nZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3Rp
Y2tzIGFuZCB0cmFjayBwYWRzLiBSYW5nZXMgZnJvbSAwLjAgdG8gMS4wIGZvciB0cmlnZ2VycyB3
ZXJlIDAgaXMgZnVsbHkgcmVsZWFzZWQuCisgICAgICAgZmxvYXQgeTsgLy8gUmFuZ2VzIGZyb20g
LTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFkcy4gSXMgYWx3YXlzIDAuMCBm
b3IgdHJpZ2dlcnMuCit9OworCisKKy8qKiB0aGUgbnVtYmVyIG9mIGF4ZXMgaW4gdGhlIGNvbnRy
b2xsZXIgc3RhdGUgKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuQ29udHJvbGxlclN0YXRl
QXhpc0NvdW50ID0gNTsKKworCisvKiogSG9sZHMgYWxsIHRoZSBzdGF0ZSBvZiBhIGNvbnRyb2xs
ZXIgYXQgb25lIG1vbWVudCBpbiB0aW1lLiAqLworc3RydWN0IFZSQ29udHJvbGxlclN0YXRlMDAx
X3QKK3sKKyAgICAgICAvLyBJZiBwYWNrZXQgbnVtIG1hdGNoZXMgdGhhdCBvbiB5b3VyIHByaW9y
IGNhbGwsIHRoZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgaGFzbid0IGJlZW4gY2hhbmdlZCBzaW5j
ZSAKKyAgICAgICAvLyB5b3VyIGxhc3QgY2FsbCBhbmQgdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9j
ZXNzIGl0CisgICAgICAgdWludDMyX3QgdW5QYWNrZXROdW07CisKKyAgICAgICAvLyBiaXQgZmxh
Z3MgZm9yIGVhY2ggb2YgdGhlIGJ1dHRvbnMuIFVzZSBCdXR0b25NYXNrRnJvbUlkIHRvIHR1cm4g
YW4gSUQgaW50byBhIG1hc2sKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblByZXNzZWQ7CisgICAg
ICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOworCisgICAgICAgLy8gQXhpcyBkYXRhIGZvciB0
aGUgY29udHJvbGxlcidzIGFuYWxvZyBpbnB1dHMKKyAgICAgICBWUkNvbnRyb2xsZXJBeGlzX3Qg
ckF4aXNbIGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQgXTsKK307CisKKwordHlwZWRlZiBW
UkNvbnRyb2xsZXJTdGF0ZTAwMV90IFZSQ29udHJvbGxlclN0YXRlX3Q7CisKKworLyoqIGRldGVy
bWluZXMgaG93IHRvIHByb3ZpZGUgb3V0cHV0IHRvIHRoZSBhcHBsaWNhdGlvbiBvZiB2YXJpb3Vz
IGV2ZW50IHByb2Nlc3NpbmcgZnVuY3Rpb25zLiAqLworZW51bSBFVlJDb250cm9sbGVyRXZlbnRP
dXRwdXRUeXBlCit7CisgICAgICAgQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0gMCwK
KyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVudHMgPSAxLAorfTsKKworCisKKy8q
KiBDb2xsaXNpb24gQm91bmRzIFN0eWxlICovCitlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQor
eworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAgIENP
TExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFLAorICAgICAgIENPTExJU0lPTl9CT1VO
RFNfU1RZTEVfU1FVQVJFUywKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VE
LAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSwKKworICAgICAgIENPTExJU0lP
Tl9CT1VORFNfU1RZTEVfQ09VTlQKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRv
IGN1c3RvbWl6ZSBob3cgdGhlIG92ZXJsYXkgYXBwZWFycyBpbiB0aGUgY29tcG9zaXRvciAqLwor
c3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCit7CisgICAgICAgdWludDMyX3Qgc2l6
ZTsgLy8gc2l6ZW9mKENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzKQorICAgICAgIGJvb2wgY3Vy
dmVkLCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGUsIGRpc3RhbmNlLCBhbHBoYTsKKyAg
ICAgICBmbG9hdCB1T2Zmc2V0LCB2T2Zmc2V0LCB1U2NhbGUsIHZTY2FsZTsKKyAgICAgICBmbG9h
dCBncmlkRGl2cywgZ3JpZFdpZHRoLCBncmlkU2NhbGU7CisgICAgICAgSG1kTWF0cml4NDRfdCB0
cmFuc2Zvcm07Cit9OworCisvKiogdXNlZCB0byByZWZlciB0byBhIHNpbmdsZSBWUiBvdmVybGF5
ICovCit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OworCitzdGF0aWMgY29uc3Qg
VlJPdmVybGF5SGFuZGxlX3Qga191bE92ZXJsYXlIYW5kbGVJbnZhbGlkID0gMDsKKworLyoqIEVy
cm9ycyB0aGF0IGNhbiBvY2N1ciBhcm91bmQgVlIgb3ZlcmxheXMgKi8KK2VudW0gRVZST3Zlcmxh
eUVycm9yCit7CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIFZST3ZlcmxheUVycm9yX1Vua25v
d25PdmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMiwKKyAgICAg
ICBWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCAgICAgICAgICAgICAgPSAxMywg
Ly8gTm8gbW9yZSBvdmVybGF5cyBjb3VsZCBiZSBjcmVhdGVkIGJlY2F1c2UgdGhlIG1heGltdW0g
bnVtYmVyIGFscmVhZHkgZXhpc3QKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxp
dHlUeXBlICAgICAgICAgICAgICA9IDE0LAorICAgICAgIFZST3ZlcmxheUVycm9yX0tleVRvb0xv
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9OYW1lVG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgIFZS
T3ZlcmxheUVycm9yX0tleUluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDE3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSAgICAgICAgICAg
ICAgPSAxOCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSAgICAg
ICAgICAgICAgPSAxOSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkUGFyYW1ldGVyICAg
ICAgICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxD
YW50QmVEZXN0cm95ZWQgICAgICAgPSAyMSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9BcnJheVRv
b1NtYWxsICAgICAgICAgICAgICAgICAgICAgPSAyMiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9S
ZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAyMywKKyAgICAgICBWUk92ZXJsYXlF
cnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAgICAgICAgID0gMjQsCisgICAgICAgVlJP
dmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSAgICAgICAgICAgICAgICAgICAgID0gMjUsCisg
ICAgICAgVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgICAgICAgICAgICAgID0g
MjYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDI3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0aXZl
cyAgICAgICA9IDI5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUgICAg
ICAgICAgICAgICAgICAgICA9IDMwLAorfTsKKworLyoqIGVudW0gdmFsdWVzIHRvIHBhc3MgaW4g
dG8gVlJfSW5pdCB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB3aWxsIAorKiBk
cmF3IGEgM0Qgc2NlbmUuICovCitlbnVtIEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZS
QXBwbGljYXRpb25fT3RoZXIgPSAwLCAgICAgICAgICAgICAgLy8gU29tZSBvdGhlciBraW5kIG9m
IGFwcGxpY2F0aW9uIHRoYXQgaXNuJ3QgY292ZXJlZCBieSB0aGUgb3RoZXIgZW50cmllcyAKKyAg
ICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lICAgICAgID0gMSwgICAgICAgICAgICAgIC8vIEFwcGxp
Y2F0aW9uIHdpbGwgc3VibWl0IDNEIGZyYW1lcyAKKyAgICAgICBWUkFwcGxpY2F0aW9uX092ZXJs
YXkgPSAyLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRpb24gb25seSBpbnRlcmFjdHMgd2l0aCBv
dmVybGF5cworICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsICAgICAgIC8vIEFw
cGxpY2F0aW9uIHNob3VsZCBub3Qgc3RhcnQgU3RlYW1WUiBpZiBpdCdzIG5vdCBhbHJlYWR5IHJ1
bm5pbmcsIGFuZCBzaG91bGQgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGl0IHJ1bm5pbmcgaWYgZXZlcnl0
aGluZyBlbHNlIHF1aXRzLgorICAgICAgIFZSQXBwbGljYXRpb25fVXRpbGl0eSA9IDQsICAgICAg
ICAgICAgICAvLyBJbml0IHNob3VsZCBub3QgdHJ5IHRvIGxvYWQgYW55IGRyaXZlcnMuIFRoZSBh
cHBsaWNhdGlvbiBuZWVkcyBhY2Nlc3MgdG8gdXRpbGl0eQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJmYWNlcyAo
bGlrZSBJVlJTZXR0aW5ncyBhbmQgSVZSQXBwbGljYXRpb25zKSBidXQgbm90IGhhcmR3YXJlLgor
ICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwgICAgICAgLy8gUmVzZXJ2ZWQgZm9y
IHZybW9uaXRvcgorICAgICAgIFZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsLy8gUmVz
ZXJ2ZWQgZm9yIFN0ZWFtCisKKyAgICAgICBWUkFwcGxpY2F0aW9uX01heAorfTsKKworCisvKiog
ZXJyb3IgY29kZXMgZm9yIGZpcm13YXJlICovCitlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAg
ICAgICBWUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX1N1
Y2Nlc3MgPSAxLAorICAgICAgIFZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK307CisKKworLyoq
IGVycm9yIGNvZGVzIGZvciBub3RpZmljYXRpb25zICovCitlbnVtIEVWUk5vdGlmaWNhdGlvbkVy
cm9yCit7CisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgVlJOb3Rp
ZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisgICAgICAgVlJOb3Rp
ZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgVlJOb3Rp
ZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAorfTsK
KworCisvKiogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgVnJfSW5pdCAqLworCisvLyBQbGVhc2Ug
YWRkIGFkZXF1YXRlIGVycm9yIGRlc2NyaXB0aW9uIHRvIGh0dHBzOi8vZGV2ZWxvcGVyLnZhbHZl
c29mdHdhcmUuY29tL3cvaW5kZXgucGhwP3RpdGxlPUNhdGVnb3J5OlN0ZWFtVlJIZWxwCitlbnVt
IEVWUkluaXRFcnJvcgoreworICAgICAgIFZSSW5pdEVycm9yX05vbmUgICAgICAgPSAwLAorICAg
ICAgIFZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9J
bnN0YWxsYXRpb25Ob3RGb3VuZCAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJJbml0RXJy
b3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAgICAgICAgICA9IDEwMSwKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgICAgICAgICAgICAgID0gMTAyLAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kICAg
ICAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZh
Y2VOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfSW52YWxpZEludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgICAgICAgICAgICAgID0gMTEwLAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfTm9Db25maWdQYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTExLAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRh
YmxlICAgICAgID0gMTEzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWls
ZWQgICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTUsIC8vIFVz
ZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZyc2VydmVyCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAgICAgICAgICAgICAgICA9IDExNiwg
Ly8gVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gc2hvdWxkIHNpbGVudGx5IGV4aXQuIFRoZSB1c2Vy
IGNhbmNlbGVkIGFwcCBzdGFydHVwCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBw
TGF1bmNoaW5nICAgICAgICAgICAgICA9IDExNywgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9T
ZXR0aW5nc0luaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDExOCwgCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTksCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0cyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEyMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9y
QmFja2dyb3VuZEFwcCAgICAgICA9IDEyMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdFN1
cHBvcnRlZFdpdGhDb21wb3NpdG9yICAgICAgID0gMTIyLAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyAgICAgICA9IDEyMywKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0ludGVybmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSAgICAgICAgICAg
ICAgICAgICAgICA9IDEyNSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJl
c2VuY2VGYWlsZWQgICAgICAgID0gMTI2LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25p
dG9yTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEyNywKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgID0gMTI4LAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZCA9IDEyOSwgCisg
ICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICAgICAgICAgICAg
ICA9IDEzMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dB
cHBzID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0
dGluZ3MgPSAxMzIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5k
ICAgICAgICAgICAgICA9IDEzMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJk
U3RhcnR1cEZhaWxlZCAgICAgICA9IDEzNCwKKworICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9G
YWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAsCisgICAgICAgVlJJbml0RXJy
b3JfRHJpdmVyX1Vua25vd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDEsCisgICAg
ICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAgICAgICAgICAgICAgICAgICA9IDIw
MiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkICAgICAgICAgICAgICAgICAg
ICAgPSAyMDMsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgICAg
ICAgICAgICAgID0gMjA0LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwNSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJf
Tm90Q2FsaWJyYXRlZCAgICAgICAgICAgICAgPSAyMDYsCisgICAgICAgVlJJbml0RXJyb3JfRHJp
dmVyX0NhbGlicmF0aW9uSW52YWxpZCAgICAgICA9IDIwNywKKyAgICAgICBWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kICAgICAgID0gMjA4LAorICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biA9IDIwOSwKKyAgICAgICAvLyBW
UkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXggICAgICAgID0gMjEw
LCAvLyBub3QgbmVlZGVkOiBoZXJlIGZvciBoaXN0b3JpYyByZWFzb25zCisgICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCAgPSAyMTIsCisKKyAgICAgICBWUkluaXRF
cnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAgICAgPSAzMDAsCisgICAgICAgVlJJ
bml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDMwMSwKKyAg
ICAgICBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkICAgICAgID0gMzAyLAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCAgICAgICA9IDMwMywK
KyAgICAgICBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVkICAgICAgICAgICAgICAgICAg
ICAgPSAzMDQsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMDUsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0
b3JDb25uZWN0RmFpbGVkICAgICAgID0gMzA2LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21w
b3NpdG9ySW52YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBWUkluaXRFcnJvcl9J
UENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKworICAgICAgIFZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDQwMCwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVS
ZXF1aXJlZCAgICAgICA9IDQwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13
YXJlUmVxdWlyZXNVcGRhdGUgICAgICAgPSA0MDIsCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9z
aXRvcl9PdmVybGF5SW5pdEZhaWxlZCAgICAgICAgICAgICAgPSA0MDMsCisgICAgICAgVlJJbml0
RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgICAgICAgPSA0MDQsCisKKyAg
ICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1c1J1
bnRpbWUgPSAxMDAwLAorCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwMSwKKyAg
ICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RD
b25maWdTdGFydCAgICAgICA9IDExMDIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdU
b29CaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNCwKKyAgICAgICBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMTA1LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgICAgICAgICAgICAgICAgICAgICAgPSAxMTA2LAor
ICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdh
cmVWZXJzaW9uICAgICAgICA9IDExMDcsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCAgICAgICA9IDExMDgsCisgICAg
ICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0
YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCAgICAgICAgICAgICAgPSAxMTEwLAorICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1Jh
bmdlICAgICAgICAgICAgICA9IDExMTEsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
MTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFp
bGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAgID0gMTExMywKKworICAgICAgIFZSSW5pdEVycm9y
X1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfTsKKworZW51bSBFVlJT
Y3JlZW5zaG90VHlwZQoreworICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTm9uZSA9IDAsCisgICAg
ICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwgLy8gbGVmdCBleWUgb25seQorICAgICAgIFZS
U2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX0N1YmVt
YXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1hID0gNCwKKyAgICAg
ICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNQorfTsKKworZW51bSBFVlJTY3Jl
ZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBWUlNjcmVlbnNob3RQcm9wZXJ0eUZp
bGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAgICBWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
c19WUiA9IDEsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJvcgoreworICAgICAgIFZS
VHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAg
ICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgICAgICAgICAgICA9IDEwMCwK
KyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICA9
IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lSGVh
ZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5k
bGVzICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSVBD
RmFpbHVyZSAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJy
b3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSAgPSAxMDUsCisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSAgICAgICAgPSAxMDYsCisgICAgICAgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWlsdXJlICAgICAgPSAxMDcsCisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlICAgICAgICAgPSAxMDgsCisg
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkICAgICAgICAgPSAx
MDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNoYXJlZFRleHR1cmVIYW5k
bGUgPSAxMTAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVkVG9HZXRHTFRleHR1
cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVy
ZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9GcmFt
ZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAgPSAxMTQsCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSAgICAgPSAxMTUsCit9OworCitlbnVtIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVf
RGlzdG9ydGVkID0gMCwgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYW1lcmEg
dmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMsIHN0aWxsIGRpc3RvcnRlZC4KKyAgICAgICBWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQsICAgICAgICAgICAgICAgICAgICAgLy8g
SW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBpbnNjcmliZWQgcmVjdGFuZ2xlIHJlZ2lvbiB3aXRo
b3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBzaXplIGlzIHN1YmplY3QgdG8gY2hhbmdlcyBzaG9y
dGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQs
ICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11bSB1bmRpc3RvcnRlZCB3aXRoIGludmFsaWQgcmVn
aW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9uZW50IGlkZW50aWZpZXMgdmFsaWQgcmVnaW9ucy4K
KyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTCit9OworCit0eXBlZGVmIHVpbnQ2NF90IFRy
YWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZpbmUgSU5WQUxJRF9UUkFDS0VEX0NBTUVSQV9IQU5E
TEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90KTApCisKK3N0cnVjdCBDYW1lcmFW
aWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7CisgICAgICAgdWludDMy
X3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsKKworICAgICAgIHVp
bnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisgICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBzdGFu
ZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsKKworLy8gU2NyZWVuc2hvdCB0eXBlcwordHlwZWRl
ZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBr
X3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworCisjcHJhZ21hIHBhY2soIHBvcCApCisK
Ky8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9ydCBmcm9tIHRoZSBWUiBBUEkgZGxsCisjaWYgZGVm
aW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVmaW5lIFZSX0lOVEVSRkFD
RSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisjZWxzZQorI2RlZmluZSBWUl9J
TlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxpbXBvcnQgKQorI2VuZGlmCisKKyNl
bGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoQ09NUElMRVJfR0NDKSB8fCBkZWZpbmVk
KF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUgVlJfSU5URVJGQUNF
IGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbHNl
CisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIAorI2VuZGlmCisKKyNlbHNlCisjZXJy
b3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIKKyNlbmRpZgorCisKKyNpZiBkZWZpbmVkKCBfV0lO
MzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBfX2NkZWNsCisjZWxzZQorI2RlZmluZSBWUl9DQUxM
VFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB2cgorCisjZW5kaWYgLy8gX0lOQ0xVREVf
VlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0aW9uLmgKKyNpZmRlZiBBUElfR0VOCisjIGRlZmlu
ZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0cmlidXRlX18oKGFubm90YXRlKCBBVFRSICkpKQor
I2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikKKyNlbmRpZgorCisjZGVmaW5lIFZS
X01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5HX0FUVFIoICJkZXNjOiIgI0RFU0MgIjsiICkKKyNk
ZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NMQU5HX0FUVFIoICJpZ25vcmUiICkKKyNkZWZpbmUg
VlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RydWN0OiA7IiApCisjZGVmaW5l
IFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmluZzogOyIgKQorI2RlZmlu
ZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVSLEZVTkNUSU9OLFBBUkFNUykgVlJfQ0xBTkdfQVRU
UiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5URVIgIiwiICNGVU5DVElPTiAiLCIgI1BBUkFNUyAi
OyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUigg
Im91dF9hcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5U
KENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisj
ZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09VTlRFUiwgREVTQykgVlJfQ0xBTkdfQVRUUiggImFy
cmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNjOiIgI0RFU0MgKQorI2RlZmluZSBWUl9CVUZGRVJf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImJ1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7
IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUigg
Im91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9PVVRfU1RSSU5H
X0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nX2NvdW50OiIgI0NPVU5U
RVIgIjsiICkKKworLy8gdnJ0cmFja2VkY2FtZXJhdHlwZXMuaAorI2lmbmRlZiBfVlJUUkFDS0VE
Q0FNRVJBVFlQRVNfSAorI2RlZmluZSBfVlJUUkFDS0VEQ0FNRVJBVFlQRVNfSCAKKworbmFtZXNw
YWNlIHZyCit7CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18p
IAorICAgICAgIC8vIFRoZSAzMi1iaXQgdmVyc2lvbiBvZiBnY2MgaGFzIHRoZSBhbGlnbm1lbnQg
cmVxdWlyZW1lbnQgZm9yIHVpbnQ2NCBhbmQgZG91YmxlIHNldCB0bworICAgICAgIC8vIDQgbWVh
bmluZyB0aGF0IGV2ZW4gd2l0aCAjcHJhZ21hIHBhY2soOCkgdGhlc2UgdHlwZXMgd2lsbCBvbmx5
IGJlIGZvdXItYnl0ZSBhbGlnbmVkLgorICAgICAgIC8vIFRoZSA2NC1iaXQgdmVyc2lvbiBvZiBn
Y2MgaGFzIHRoZSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgZm9yIHRoZXNlIHR5cGVzIHNldCB0bwor
ICAgICAgIC8vIDggbWVhbmluZyB0aGF0IHVubGVzcyB3ZSB1c2UgI3ByYWdtYSBwYWNrKDQpIG91
ciBzdHJ1Y3R1cmVzIHdpbGwgZ2V0IGJpZ2dlci4KKyAgICAgICAvLyBUaGUgNjQtYml0IHN0cnVj
dHVyZSBwYWNraW5nIGhhcyB0byBtYXRjaCB0aGUgMzItYml0IHN0cnVjdHVyZSBwYWNraW5nIGZv
ciBlYWNoIHBsYXRmb3JtLgorICAgICAgICNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZWxzZQor
ICAgICAgICNwcmFnbWEgcGFjayggcHVzaCwgOCApCisjZW5kaWYKKworZW51bSBFQ2FtZXJhVmlk
ZW9TdHJlYW1Gb3JtYXQKK3sKKyAgICAgICBDVlNfRk9STUFUX1VOS05PV04gPSAwLAorICAgICAg
IENWU19GT1JNQVRfUkFXMTAgPSAxLCAgICAgICAgICAgICAgLy8gMTAgYml0cyBwZXIgcGl4ZWwK
KyAgICAgICBDVlNfRk9STUFUX05WMTIgPSAyLCAgICAgICAgICAgICAgLy8gMTIgYml0cyBwZXIg
cGl4ZWwKKyAgICAgICBDVlNfRk9STUFUX1JHQjI0ID0gMywgICAgICAgICAgICAgIC8vIDI0IGJp
dHMgcGVyIHBpeGVsCisgICAgICAgQ1ZTX01BWF9GT1JNQVRTCit9OworCitlbnVtIEVDYW1lcmFD
b21wYXRpYmlsaXR5TW9kZQoreworICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9CVUxLX0RFRkFV
TFQgPSAwLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9CVUxLXzY0S19ETUEsCisgICAgICAg
Q0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfMTZLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFUX01P
REVfQlVMS184S19ETUEsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT181MkZQUywKKyAg
ICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUwRlBTLAorICAgICAgIENBTUVSQV9DT01QQVRf
TU9ERV9JU09fNDhGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT180NkZQUywKKyAg
ICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ0RlBTLAorICAgICAgIENBTUVSQV9DT01QQVRf
TU9ERV9JU09fNDJGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT180MEZQUywKKyAg
ICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzM1RlBTLAorICAgICAgIENBTUVSQV9DT01QQVRf
TU9ERV9JU09fMzBGUFMsCisgICAgICAgTUFYX0NBTUVSQV9DT01QQVRfTU9ERVMKK307CisKKyNp
ZmRlZiBfTVNDX1ZFUgorI2RlZmluZSBWUl9DQU1FUkFfREVDTF9BTElHTiggeCApIF9fZGVjbHNw
ZWMoIGFsaWduKCB4ICkgKQorI2Vsc2UKKyNkZWZpbmUgVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIHgg
KSAvLworI2VuZGlmCisKKyNkZWZpbmUgTUFYX0NBTUVSQV9GUkFNRV9TSEFSRURfSEFORExFUyAg
ICAgICA0CisKK1ZSX0NBTUVSQV9ERUNMX0FMSUdOKCA4ICkgc3RydWN0IENhbWVyYVZpZGVvU3Ry
ZWFtRnJhbWVfdAoreworICAgICAgIEVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBtX25TdHJlYW1G
b3JtYXQ7CisKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aDsKKyAgICAgICB1aW50MzJfdCBtX25I
ZWlnaHQ7CisKKyAgICAgICB1aW50MzJfdCBtX25JbWFnZURhdGFTaXplOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJhc2VkIG9uIHN0cmVhbSBmb3JtYXQsIHdp
ZHRoLCBoZWlnaHQKKworICAgICAgIHVpbnQzMl90IG1fbkZyYW1lU2VxdWVuY2U7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRzIGZyb20gMCB3aGVuIHN0
cmVhbSBzdGFydHMuCisKKyAgICAgICB1aW50MzJfdCBtX25CdWZmZXJJbmRleDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGVudGlmaWVzIHdoaWNoIGJ1ZmZl
ciB0aGUgaW1hZ2UgZGF0YSBpcyBob3N0ZWQKKyAgICAgICB1aW50MzJfdCBtX25CdWZmZXJDb3Vu
dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb3RhbCBudW1i
ZXIgb2YgY29uZmlndXJlZCBidWZmZXJzCisKKyAgICAgICB1aW50MzJfdCBtX25FeHBvc3VyZVRp
bWU7CisKKyAgICAgICB1aW50MzJfdCBtX25JU1BGcmFtZVRpbWVTdGFtcDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIERyaXZlciBwcm92aWRlZCB0aW1lIHN0YW1wIHBlciBk
cml2ZXIgY2VudHJpYyB0aW1lIGJhc2UKKyAgICAgICB1aW50MzJfdCBtX25JU1BSZWZlcmVuY2VU
aW1lU3RhbXA7CisgICAgICAgdWludDMyX3QgbV9uU3luY0NvdW50ZXI7CisKKyAgICAgICB1aW50
MzJfdCBtX25DYW1TeW5jRXZlbnRzOworICAgICAgIHVpbnQzMl90IG1fbklTUFN5bmNFdmVudHM7
CisKKyAgICAgICBkb3VibGUgbV9mbFJlZmVyZW5jZUNhbVN5bmNUaW1lOworCisgICAgICAgZG91
YmxlIG1fZmxGcmFtZUVsYXBzZWRUaW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gU3RhcnRzIGZyb20gMCB3aGVuIHN0cmVhbSBzdGFydHMuIEluIHNlY29uZHMuCisgICAg
ICAgZG91YmxlIG1fZmxGcmFtZURlbGl2ZXJ5UmF0ZTsKKworICAgICAgIGRvdWJsZSBtX2ZsRnJh
bWVDYXB0dXJlVGltZV9Ecml2ZXJBYnNvbHV0ZTsgICAgICAgICAgICAgIC8vIEluIFVTQiB0aW1l
LCB2aWEgQXV4RXZlbnQKKyAgICAgICBkb3VibGUgbV9mbEZyYW1lQ2FwdHVyZVRpbWVfU2VydmVy
UmVsYXRpdmU7ICAgICAgICAgICAgICAvLyBJbiBTeXN0ZW0gdGltZSB3aXRoaW4gdGhlIHNlcnZl
cgorICAgICAgIHVpbnQ2NF90IG1fbkZyYW1lQ2FwdHVyZVRpY2tzX1NlcnZlckFic29sdXRlOyAg
ICAgICAvLyBJbiBzeXN0ZW0gdGlja3Mgd2l0aGluIHRoZSBzZXJ2ZXIKKyAgICAgICBkb3VibGUg
bV9mbEZyYW1lQ2FwdHVyZVRpbWVfQ2xpZW50UmVsYXRpdmU7ICAgICAgICAgICAgICAvLyBBdCB0
aGUgY2xpZW50LCByZWxhdGl2ZSB0byB3aGVuIHRoZSBmcmFtZSB3YXMgZXhwb3NlZC9jYXB0dXJl
ZC4KKworICAgICAgIGRvdWJsZSBtX2ZsU3luY01hcmtlckVycm9yOworCisgICAgICAgVHJhY2tl
ZERldmljZVBvc2VfdCBtX1N0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7ICAgICAgIC8vIFN1cHBs
aWVkIGJ5IEhNRCBsYXllciB3aGVuIHVzZWQgYXMgYSB0cmFja2VkIGNhbWVyYQorCisgICAgICAg
dWludDY0X3QgbV9wSW1hZ2VEYXRhOworfTsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCit9CisK
KyNlbmRpZiAvLyBfVlJUUkFDS0VEQ0FNRVJBVFlQRVNfSAorLy8gaXZyc2V0dGluZ3MuaAorbmFt
ZXNwYWNlIHZyCit7CisgICAgICAgZW51bSBFVlJTZXR0aW5nc0Vycm9yCisgICAgICAgeworICAg
ICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfTm9uZSA9IDAsCisgICAgICAgICAgICAgIFZSU2V0
dGluZ3NFcnJvcl9JUENGYWlsZWQgPSAxLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3Jf
V3JpdGVGYWlsZWQgPSAyLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfUmVhZEZhaWxl
ZCA9IDMsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Kc29uUGFyc2VGYWlsZWQgPSA0
LAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZhdWx0
ID0gNSwgLy8gVGhpcyB3aWxsIGJlIHJldHVybmVkIGlmIHRoZSBzZXR0aW5nIGRvZXMgbm90IGFw
cGVhciBpbiB0aGUgYXBwcm9wcmlhdGUgZGVmYXVsdCBmaWxlIGFuZCBoYXMgbm90IGJlZW4gc2V0
CisgICAgICAgfTsKKworICAgICAgIC8vIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHNldHRpbmdz
IGtleQorICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4U2V0dGluZ3NLZXlMZW5n
dGggPSAxMjg7CisKKyAgICAgICBjbGFzcyBJVlJTZXR0aW5ncworICAgICAgIHsKKyAgICAgICBw
dWJsaWM6CisgICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0U2V0dGluZ3NFcnJv
ck5hbWVGcm9tRW51bSggRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZpbGUgc3luYyBvY2N1cnJlZCAoZm9yY2Ugb3Igc2V0
dGluZ3MgZGlydHkpCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTeW5jKCBib29sIGJGb3Jj
ZSA9IGZhbHNlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKwor
ICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0Qm9vbCggY29uc3QgY2hhciAqcGNoU2VjdGlv
biwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBFVlJTZXR0aW5nc0Vy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IFNldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5n
c0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RmxvYXQoIGNvbnN0IGNoYXIg
KnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBmbG9hdCBmbFZhbHVlLCBF
VlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIFNldFN0cmluZyggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hh
ciAqcGNoU2V0dGluZ3NLZXksIGNvbnN0IGNoYXIgKnBjaFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9y
ICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvLyBVc2VycyBvZiB0
aGUgc3lzdGVtIG5lZWQgdG8gcHJvdmlkZSBhIHByb3BlciBkZWZhdWx0IGluIGRlZmF1bHQudnJz
ZXR0aW5ncyBpbiB0aGUgcmVzb3VyY2VzL3NldHRpbmdzLyBkaXJlY3RvcnkKKyAgICAgICAgICAg
ICAgLy8gb2YgZWl0aGVyIHRoZSBydW50aW1lIG9yIHRoZSBkcml2ZXJfeHh4IGRpcmVjdG9yeS4g
T3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHdpbGwgYmUgZmFsc2UsIDAsIDAuMCBvciAiIgorICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29u
c3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxs
cHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0SW50MzIoIGNvbnN0
IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5n
c0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBm
bG9hdCBHZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0
dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9u
LCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZh
bHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVs
bHB0ciApID0gMDsKKworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVtb3ZlU2VjdGlvbigg
Y29uc3QgY2hhciAqcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxw
dHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24o
IGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJT
ZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICB9OworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3QgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOworCisgICAgICAgLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHN0ZWFtdnIga2V5cworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0ZWFtdnIiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXF1aXJlSG1k
X1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRL
ZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1Bp
cGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9FbmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlz
dG9ydGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAiZGlz
cGxheURlYnVnWSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbD0gInNlbmRTeXN0ZW1CdXR0b25Ub0Fs
bEFwcHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9M
b2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZlbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9ICJiYWNrZ3Jv
dW5kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFj
a2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9qZWN0
aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFj
a2dyb3VuZENhbWVyYUhlaWdodF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERv
bWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERvbWVSYWRpdXMiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5nID0gImdyaWRD
b2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Bs
YXlBcmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3RhZ2Ui
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BY3RpdmF0
ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZV9Cb29s
ID0gImRpcmVjdE1vZGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZpZCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVF
ZGlkUGlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5nU3Bl
YWtlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9T
cGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zsb2F0ID0gInNwZWFrZXJzRm9yd2FyZFlh
d09mZnNldERlZ3JlZXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0aW9uUG93
ZXJNYW5hZ2VtZW50IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfTmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2VzIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0
TXVsdGlwbGllcl9GbG9hdCA9ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVjdGlv
bl9Cb29sID0gImFsbG93QXN5bmNSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93
SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9qZWN0
aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9y
Y2VGYWRlT25CYWRUcmFja2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9y
Vmlld19JbnQzMiA9ICJkZWZhdWx0TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3X0Jvb2wgPSAic2hvd01pcnJv
clZpZXciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9N
aXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZyb21B
cHBMYXVuY2ggPSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVu
Y2hfQm9vbCA9ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1
bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRPdmVybGF5QXBwc0Zyb21EYXNo
Ym9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5h
YmxlSG9tZUFwcCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1NldEluaXRpYWxEZWZhdWx0SG9tZUFwcCA9ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9DeWNsZUJh
Y2tncm91bmRJbWFnZVRpbWVTZWNfSW50MzIgPSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2Vj
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmV0YWls
RGVtb19Cb29sID0gInJldGFpbERlbW8iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKKworICAgICAg
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBsaWdodGhvdXNlIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9ICJk
cml2ZXJfbGlnaHRob3VzZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCA9ICJkaXNhYmxlaW11IjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25f
U3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1YXRpb25EZWJ1Z19JbnQzMiA9ICJkaXNh
bWJpZ3VhdGlvbmRlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyID0gInByaW1hcnliYXNlc3RhdGlv
biI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0RC
SGlzdG9yeV9Cb29sID0gImRiaGlzdG9yeSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gbnVsbCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJpdmVyX251bGwiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nID0gInNlcmlhbE51
bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX01vZGVs
TnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1hfSW50MzIgPSAid2luZG93WCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93
WSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1dp
ZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0ludDMyID0gIndpbmRvd0hlaWdodCI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMy
ID0gInJlbmRlcldpZHRoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X051bGxfUmVuZGVySGVpZ2h0X0ludDMyID0gInJlbmRlckhlaWdodCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNf
RmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQgPSAiZGlzcGxh
eUZyZXF1ZW5jeSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8g
dXNlciBpbnRlcmZhY2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRv
cF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9wIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6
ZVRvVHJheSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50
ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQg
PSAic2NyZWVuc2hvdFR5cGUiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIG5vdGlmaWNhdGlvbiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rpb24gPSAibm90aWZpY2F0aW9ucyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX0RvTm90RGlzdHVy
Yl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgICAgICAgLy8ga2V5Ym9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1
dG9yaWFsQ29tcGxldGlvbnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxlWCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVkgPSAiU2NhbGVZIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRYID0gIk9mZnNldExl
ZnRYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09m
ZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmci
OworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHBlcmYga2V5cwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9TZWN0aW9uID0gInBl
cmZjaGVjayI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0hl
dXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1E
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5T25s
eU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9y
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NhdmVUaW1p
bmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEi
OworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNvbGxpc2lvbiBi
b3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlz
aW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3Vu
ZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3Vu
ZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5
U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5j
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9J
bnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIgPSAi
Q29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVuYWJsZUNh
bWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5h
YmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2FyZCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJh
Rm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRz
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVD
YW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVyYUZvclJvb21WaWV3IjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1h
Ul9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAiY2Ft
ZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9y
R2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9C
b3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5ndGhf
SW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9h
dWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmlj
ZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2Zm
UGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
YXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0gInZp
dmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8g
cG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4aXQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVybk9mZlNj
cmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1l
b3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxv
YXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1
dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gZGFzaGJvYXJkIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJk
X0Jvb2wgPSAiZW5hYmxlRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wgPSAiYXJjYWRlTW9kZSI7CisKKyAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbW9kZWwgc2tpbiBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9tb2RlbHNraW5fU2VjdGlvbiA9
ICJtb2RlbHNraW5zIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAv
LyBkcml2ZXIga2V5cyAtIFRoZXNlIGNvdWxkIGJlIGNoZWNrZWQgaW4gYW55IGRyaXZlcl88bmFt
ZT4gc2VjdGlvbgorICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRHJpdmVy
X0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKy8vIGlzZXJ2
ZXJ0cmFja2VkZGV2aWNlZHJpdmVyLmgKK25hbWVzcGFjZSB2cgoreworCisKK3N0cnVjdCBEcml2
ZXJQb3NlUXVhdGVybmlvbl90Cit7CisgICAgICAgZG91YmxlIHcsIHgsIHksIHo7Cit9OworCitz
dHJ1Y3QgRHJpdmVyUG9zZV90Cit7CisgICAgICAgLyogVGltZSBvZmZzZXQgb2YgdGhpcyBwb3Nl
LCBpbiBzZWNvbmRzIGZyb20gdGhlIGFjdHVhbCB0aW1lIG9mIHRoZSBwb3NlLAorICAgICAgICAq
IHJlbGF0aXZlIHRvIHRoZSB0aW1lIG9mIHRoZSBQb3NlVXBkYXRlZCgpIGNhbGwgbWFkZSBieSB0
aGUgZHJpdmVyLgorICAgICAgICAqLworICAgICAgIGRvdWJsZSBwb3NlVGltZU9mZnNldDsKKwor
ICAgICAgIC8qIEdlbmVyYWxseSwgdGhlIHBvc2UgbWFpbnRhaW5lZCBieSBhIGRyaXZlcgorICAg
ICAgICAqIGlzIGluIGFuIGluZXJ0aWFsIGNvb3JkaW5hdGUgc3lzdGVtIGRpZmZlcmVudAorICAg
ICAgICAqIGZyb20gdGhlIHdvcmxkIHN5c3RlbSBvZiB4KyByaWdodCwgeSsgdXAsIHorIGJhY2su
CisgICAgICAgICogQWxzbywgdGhlIGRyaXZlciBpcyBub3QgdXN1YWxseSB0cmFja2luZyB0aGUg
ImhlYWQiIHBvc2l0aW9uLAorICAgICAgICAqIGJ1dCBpbnN0ZWFkIGFuIGludGVybmFsIElNVSBv
ciBhbm90aGVyIHJlZmVyZW5jZSBwb2ludCBpbiB0aGUgSE1ELgorICAgICAgICAqIFRoZSBmb2xs
b3dpbmcgdHdvIHRyYW5zZm9ybXMgdHJhbnNmb3JtIHBvc2l0aW9ucyBhbmQgb3JpZW50YXRpb25z
CisgICAgICAgICogdG8gYXBwIHdvcmxkIHNwYWNlIGZyb20gZHJpdmVyIHdvcmxkIHNwYWNlLAor
ICAgICAgICAqIGFuZCB0byBITUQgaGVhZCBzcGFjZSBmcm9tIGRyaXZlciBsb2NhbCBib2R5IHNw
YWNlLiAKKyAgICAgICAgKgorICAgICAgICAqIFdlIG1haW50YWluIHRoZSBkcml2ZXIgcG9zZSBz
dGF0ZSBpbiBpdHMgaW50ZXJuYWwgY29vcmRpbmF0ZSBzeXN0ZW0sCisgICAgICAgICogc28gd2Ug
Y2FuIGRvIHRoZSBwb3NlIHByZWRpY3Rpb24gbWF0aCB3aXRob3V0IGhhdmluZyB0bworICAgICAg
ICAqIHVzZSBhbmd1bGFyIGFjY2VsZXJhdGlvbi4gIEEgZHJpdmVyJ3MgYW5ndWxhciBhY2NlbGVy
YXRpb24gaXMgZ2VuZXJhbGx5IG5vdCBtZWFzdXJlZCwKKyAgICAgICAgKiBhbmQgaXMgaW5zdGVh
ZCBjYWxjdWxhdGVkIGZyb20gc3VjY2Vzc2l2ZSBzYW1wbGVzIG9mIGFuZ3VsYXIgdmVsb2NpdHku
CisgICAgICAgICogVGhpcyBsZWFkcyB0byBhIG5vaXN5IGFuZ3VsYXIgYWNjZWxlcmF0aW9uIHZh
bHVlcywgd2hpY2ggYXJlIGFsc28KKyAgICAgICAgKiBsYWdnZWQgZHVlIHRvIHRoZSBmaWx0ZXJp
bmcgcmVxdWlyZWQgdG8gcmVkdWNlIG5vaXNlIHRvIGFuIGFjY2VwdGFibGUgbGV2ZWwuCisgICAg
ICAgICovCisgICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxV29ybGRGcm9tRHJpdmVyUm90YXRp
b247CisgICAgICAgZG91YmxlIHZlY1dvcmxkRnJvbURyaXZlclRyYW5zbGF0aW9uWyAzIF07CisK
KyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFEcml2ZXJGcm9tSGVhZFJvdGF0aW9uOworICAg
ICAgIGRvdWJsZSB2ZWNEcml2ZXJGcm9tSGVhZFRyYW5zbGF0aW9uWyAzIF07CisKKyAgICAgICAv
KiBTdGF0ZSBvZiBkcml2ZXIgcG9zZSwgaW4gbWV0ZXJzIGFuZCByYWRpYW5zLiAqLworICAgICAg
IC8qIFBvc2l0aW9uIG9mIHRoZSBkcml2ZXIgdHJhY2tpbmcgcmVmZXJlbmNlIGluIGRyaXZlciB3
b3JsZCBzcGFjZQorICAgICAgICogK1swXSAoeCkgaXMgcmlnaHQKKyAgICAgICAqICtbMV0gKHkp
IGlzIHVwCisgICAgICAgKiAtWzJdICh6KSBpcyBmb3J3YXJkCisgICAgICAgKi8KKyAgICAgICBk
b3VibGUgdmVjUG9zaXRpb25bIDMgXTsKKworICAgICAgIC8qIFZlbG9jaXR5IG9mIHRoZSBwb3Nl
IGluIG1ldGVycy9zZWNvbmQgKi8KKyAgICAgICBkb3VibGUgdmVjVmVsb2NpdHlbIDMgXTsKKwor
ICAgICAgIC8qIEFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBtZXRlcnMvc2Vjb25kICovCisg
ICAgICAgZG91YmxlIHZlY0FjY2VsZXJhdGlvblsgMyBdOworCisgICAgICAgLyogT3JpZW50YXRp
b24gb2YgdGhlIHRyYWNrZXIsIHJlcHJlc2VudGVkIGFzIGEgcXVhdGVybmlvbiAqLworICAgICAg
IHZyOjpIbWRRdWF0ZXJuaW9uX3QgcVJvdGF0aW9uOworCisgICAgICAgLyogQW5ndWxhciB2ZWxv
Y2l0eSBvZiB0aGUgcG9zZSBpbiBheGlzLWFuZ2xlIAorICAgICAgICogcmVwcmVzZW50YXRpb24u
IFRoZSBkaXJlY3Rpb24gaXMgdGhlIGFuZ2xlIG9mCisgICAgICAgKiByb3RhdGlvbiBhbmQgdGhl
IG1hZ25pdHVkZSBpcyB0aGUgYW5nbGUgYXJvdW5kCisgICAgICAgKiB0aGF0IGF4aXMgaW4gcmFk
aWFucy9zZWNvbmQuICovCisgICAgICAgZG91YmxlIHZlY0FuZ3VsYXJWZWxvY2l0eVsgMyBdOwor
CisgICAgICAgLyogQW5ndWxhciBhY2NlbGVyYXRpb24gb2YgdGhlIHBvc2UgaW4gYXhpcy1hbmds
ZSAKKyAgICAgICAqIHJlcHJlc2VudGF0aW9uLiBUaGUgZGlyZWN0aW9uIGlzIHRoZSBhbmdsZSBv
ZgorICAgICAgICogcm90YXRpb24gYW5kIHRoZSBtYWduaXR1ZGUgaXMgdGhlIGFuZ2xlIGFyb3Vu
ZAorICAgICAgICogdGhhdCBheGlzIGluIHJhZGlhbnMvc2Vjb25kXjIuICovCisgICAgICAgZG91
YmxlIHZlY0FuZ3VsYXJBY2NlbGVyYXRpb25bIDMgXTsKKworICAgICAgIEVUcmFja2luZ1Jlc3Vs
dCByZXN1bHQ7CisKKyAgICAgICBib29sIHBvc2VJc1ZhbGlkOworICAgICAgIGJvb2wgd2lsbERy
aWZ0SW5ZYXc7CisgICAgICAgYm9vbCBzaG91bGRBcHBseUhlYWRNb2RlbDsKKyAgICAgICBib29s
IGRldmljZUlzQ29ubmVjdGVkOworfTsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXByZXNlbnRzIGEgc2luZ2xlIHRyYWNrZWQgZGV2
aWNlIGluIGEgZHJpdmVyCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitjbGFzcyBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcgoreworcHVibGljOgorCisgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gTWFuYWdl
bWVudCBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLyoqIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBhbiBITUQgaXMgcmV0dXJuZWQg
dG8gdGhlIGFwcGxpY2F0aW9uLiBJdCB3aWxsIGFsd2F5cyBiZQorICAgICAgICogY2FsbGVkIGJl
Zm9yZSBhbnkgZGlzcGxheSBvciB0cmFja2luZyBtZXRob2RzLiBNZW1vcnkgYW5kIHByb2Nlc3Nv
ciB1c2UgYnkgdGhlCisgICAgICAgKiBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlciBvYmplY3Qg
c2hvdWxkIGJlIGtlcHQgdG8gYSBtaW5pbXVtIHVudGlsIGl0IGlzIGFjdGl2YXRlZC4KKyAgICAg
ICAqIFRoZSBwb3NlIGxpc3RlbmVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgdW50aWwgRGVh
Y3RpdmF0ZSBpcyBjYWxsZWQsIGJ1dAorICAgICAgICogc2hvdWxkIG5vdCBiZSB1c2VkIGFmdGVy
IHRoYXQgcG9pbnQuICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3IgQWN0aXZhdGUoIHVp
bnQzMl90IHVuT2JqZWN0SWQgKSA9IDA7CisKKyAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgd2hl
biBUaGUgVlIgc3lzdGVtIGlzIHN3aXRjaGluZyBmcm9tIHRoaXMgSG1kIGJlaW5nIHRoZSBhY3Rp
dmUgZGlzcGxheQorICAgICAgICogdG8gYW5vdGhlciBIbWQgYmVpbmcgdGhlIGFjdGl2ZSBkaXNw
bGF5LiBUaGUgZHJpdmVyIHNob3VsZCBjbGVhbiB3aGF0ZXZlciBtZW1vcnkKKyAgICAgICAqIGFu
ZCB0aHJlYWQgdXNlIGl0IGNhbiB3aGVuIGl0IGlzIGRlYWN0aXZhdGVkICovCisgICAgICAgdmly
dHVhbCB2b2lkIERlYWN0aXZhdGUoKSA9IDA7CisKKyAgICAgICAvKiogSGFuZGxlcyBhIHJlcXVl
c3QgZnJvbSB0aGUgc3lzdGVtIHRvIHB1dCB0aGlzIGRldmljZSBpbnRvIHN0YW5kYnkgbW9kZS4g
V2hhdCB0aGF0IG1lYW5zIGlzIGRlZmluZWQgcGVyLWRldmljZS4gKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOworCisgICAgICAgLyoqIFJlcXVlc3RzIGEgY29tcG9u
ZW50IGludGVyZmFjZSBvZiB0aGUgZHJpdmVyIGZvciBkZXZpY2Utc3BlY2lmaWMgZnVuY3Rpb25h
bGl0eS4gVGhlIGRyaXZlciBzaG91bGQgcmV0dXJuIE5VTEwKKyAgICAgICAqIGlmIHRoZSByZXF1
ZXN0ZWQgaW50ZXJmYWNlIG9yIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZC4gKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgKkdldENvbXBvbmVudCggY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZUFu
ZFZlcnNpb24gKSA9IDA7CisKKyAgICAgICAvKiogQSBWUiBDbGllbnQgaGFzIG1hZGUgdGhpcyBk
ZWJ1ZyByZXF1ZXN0IG9mIHRoZSBkcml2ZXIuIFRoZSBzZXQgb2YgdmFsaWQgcmVxdWVzdHMgaXMg
ZW50aXJlbHkKKyAgICAgICAqIHVwIHRvIHRoZSBkcml2ZXIgYW5kIHRoZSBjbGllbnQgdG8gZmln
dXJlIG91dCwgYXMgaXMgdGhlIGZvcm1hdCBvZiB0aGUgcmVzcG9uc2UuIFJlc3BvbnNlcyB0aGF0
CisgICAgICAgKiBleGNlZWQgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgYnVmZmVyIHNob3Vs
ZCBiZSB0cnVuY2F0ZWQgYW5kIG51bGwgdGVybWluYXRlZCAqLworICAgICAgIHZpcnR1YWwgdm9p
ZCBEZWJ1Z1JlcXVlc3QoIGNvbnN0IGNoYXIgKnBjaFJlcXVlc3QsIGNoYXIgKnBjaFJlc3BvbnNl
QnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFRyYWNraW5n
IE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICB2aXJ0dWFsIERyaXZlclBvc2VfdCBHZXRQb3NlKCkgPSAwOworfTsKKworCisKK3N0
YXRpYyBjb25zdCBjaGFyICpJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJzaW9uID0gIklU
cmFja2VkRGV2aWNlU2VydmVyRHJpdmVyXzAwNSI7CisKK30KKy8vIGl2cmRpc3BsYXljb21wb25l
bnQuaAorbmFtZXNwYWNlIHZyCit7CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3NlOiBUaGUgZGlzcGxheSBjb21wb25l
bnQgb24gYSBzaW5nbGUgdHJhY2tlZCBkZXZpY2UKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSRGlzcGxheUNvbXBvbmVudAor
ICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIERpc3BsYXkgTWV0aG9k
cworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgICAgICAgICAgICAvKiogU2l6ZSBhbmQgcG9zaXRpb24gdGhhdCB0aGUgd2luZG93IG5l
ZWRzIHRvIGJlIG9uIHRoZSBWUiBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgR2V0V2luZG93Qm91bmRzKCBpbnQzMl90ICpwblgsIGludDMyX3QgKnBuWSwgdWludDMyX3Qg
KnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlzIGV4dGVuZGluZyB0aGUgZGVza3RvcC4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzRGlzcGxheU9uRGVza3RvcCggKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZGlzcGxheSBpcyByZWFsIGFu
ZCBub3QgYSBmaWN0aW9uYWwgZGlzcGxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29s
IElzRGlzcGxheVJlYWxEaXNwbGF5KCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU3VnZ2Vz
dGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVuZGVyIHRhcmdldCB0aGF0IHRoZSBkaXN0
b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRSZWNv
bW1lbmRlZFJlbmRlclRhcmdldFNpemUoIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5I
ZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHZpZXdwb3J0IGluIHRo
ZSBmcmFtZSBidWZmZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9mIHRoZSBkaXN0b3J0aW9uIGludG8g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldEV5ZU91dHB1dFZpZXdwb3J0KCBFVlJF
eWUgZUV5ZSwgdWludDMyX3QgKnBuWCwgdWludDMyX3QgKnBuWSwgdWludDMyX3QgKnBuV2lkdGgs
IHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogVGhlIGNvbXBv
bmVudHMgbmVjZXNzYXJ5IHRvIGJ1aWxkIHlvdXIgb3duIHByb2plY3Rpb24gbWF0cml4IGluIGNh
c2UgeW91cgorICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9uIGlzIGRvaW5nIHNvbWV0aGluZyBm
YW5jeSBsaWtlIGluZmluaXRlIFogKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFBy
b2plY3Rpb25SYXcoIEVWUkV5ZSBlRXllLCBmbG9hdCAqcGZMZWZ0LCBmbG9hdCAqcGZSaWdodCwg
ZmxvYXQgKnBmVG9wLCBmbG9hdCAqcGZCb3R0b20gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgZGlzdG9ydGlvbiBmdW5jdGlvbiBmb3IgdGhlIHNw
ZWNpZmllZCBleWUgYW5kIGlucHV0IFVWcy4gVVZzIGdvIGZyb20gMCwwIGluCisgICAgICAgICAg
ICAgICogdGhlIHVwcGVyIGxlZnQgb2YgdGhhdCBleWUncyB2aWV3cG9ydCBhbmQgMSwxIGluIHRo
ZSBsb3dlciByaWdodCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0LiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIERpc3RvcnRpb25Db29yZGluYXRlc190IENvbXB1dGVEaXN0b3J0aW9uKCBFVlJFeWUg
ZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWICkgPSAwOworCisgICAgICAgfTsKKworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICpJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24gPSAiSVZSRGlzcGxh
eUNvbXBvbmVudF8wMDIiOworCit9CisKKy8vIGl2cmRyaXZlcmRpcmVjdG1vZGVjb21wb25lbnQu
aAorbmFtZXNwYWNlIHZyCit7CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3NlOiBUaGlzIGNvbXBvbmVudCBpcyB1c2Vk
IGZvciBkcml2ZXJzIHRoYXQgaW1wbGVtZW50IGRpcmVjdCBtb2RlIGVudGlyZWx5IG9uIHRoZWly
IG93bgorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgd2l0aG91dCBhbGxvd2luZyB0aGUg
VlIgQ29tcG9zaXRvciB0byBvd24gdGhlIHdpbmRvdy9kZXZpY2UuIENoYW5jZXMgYXJlIHlvdSBk
b24ndAorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgbmVlZCB0byBpbXBsZW1lbnQgdGhp
cyBjb21wb25lbnQgaW4geW91ciBkcml2ZXIuCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIGNsYXNzIElWUkRyaXZlckRpcmVjdE1vZGVDb21w
b25lbnQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorCisgICAgICAgICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIERpcmVjdCBt
b2RlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU3BlY2lmaWMgdG8gT2N1bHVzIGNvbXBvc2l0
b3Igc3VwcG9ydCwgdGV4dHVyZXMgc3VwcGxpZWQgbXVzdCBiZSBjcmVhdGVkIHVzaW5nIHRoaXMg
bWV0aG9kLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgQ3JlYXRlU3dhcFRleHR1cmVT
ZXQoIHVpbnQzMl90IHVuUGlkLCB1aW50MzJfdCB1bkZvcm1hdCwgdWludDMyX3QgdW5XaWR0aCwg
dWludDMyX3QgdW5IZWlnaHQsIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3QoICpwU2hhcmVkVGV4
dHVyZUhhbmRsZXMgKVsgMyBdICkge30KKworICAgICAgICAgICAgICAvKiogVXNlZCB0byB0ZXh0
dXJlcyBjcmVhdGVkIHVzaW5nIENyZWF0ZVN3YXBUZXh0dXJlU2V0LiAgT25seSBvbmUgb2YgdGhl
IHNldCdzIGhhbmRsZXMgbmVlZHMgdG8gYmUgdXNlZCB0byBkZXN0cm95IHRoZSBlbnRpcmUgc2V0
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveVN3YXBUZXh0dXJlU2V0KCB2
cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1cmVIYW5kbGUgKSB7fQorCisgICAg
ICAgICAgICAgIC8qKiBVc2VkIHRvIHB1cmdlIGFsbCB0ZXh0dXJlIHNldHMgZm9yIGEgZ2l2ZW4g
cHJvY2Vzcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIERlc3Ryb3lBbGxTd2FwVGV4
dHVyZVNldHMoIHVpbnQzMl90IHVuUGlkICkge30KKworICAgICAgICAgICAgICAvKiogQWZ0ZXIg
UHJlc2VudCByZXR1cm5zLCBjYWxscyB0aGlzIHRvIGdldCB0aGUgbmV4dCBpbmRleCB0byB1c2Ug
Zm9yIHJlbmRlcmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldE5leHRTd2Fw
VGV4dHVyZVNldEluZGV4KCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1cmVI
YW5kbGVzWyAyIF0sIHVpbnQzMl90KCAqcEluZGljZXMgKVsgMiBdICkge30KKworICAgICAgICAg
ICAgICAvKiogQ2FsbCBvbmNlIHBlciBsYXllciB0byBkcmF3IGZvciB0aGlzIGZyYW1lLiAgT25l
IHNoYXJlZCB0ZXh0dXJlIGhhbmRsZSBwZXIgZXllLiAgVGV4dHVyZXMgbXVzdCBiZSBjcmVhdGVk
CisgICAgICAgICAgICAgICogdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQgYW5kIHNob3VsZCBi
ZSBhbHRlcm5hdGVkIHBlciBmcmFtZS4gIENhbGwgUHJlc2VudCBvbmNlIGFsbCBsYXllcnMgaGF2
ZSBiZWVuIHN1Ym1pdHRlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFN1Ym1pdExh
eWVyKCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1cmVIYW5kbGVzWyAyIF0s
IGNvbnN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCggJmJvdW5kcyApWyAyIF0sIGNvbnN0IHZyOjpI
bWRNYXRyaXgzNF90ICpwUG9zZSApIHt9CisKKyAgICAgICAgICAgICAgLyoqIFN1Ym1pdHMgcXVl
dWVkIGxheWVycyBmb3IgZGlzcGxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFBy
ZXNlbnQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc3luY1RleHR1cmUgKSB7fQorCisgICAg
ICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJEcml2ZXJEaXJlY3RNb2RlQ29t
cG9uZW50X1ZlcnNpb24gPSAiSVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudF8wMDIiOworCit9
CisKKy8vIGl2cmNvbnRyb2xsZXJjb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisKKworICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQ
dXJwb3NlOiBDb250cm9sbGVyIGFjY2VzcyBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZS4KKyAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xh
c3MgSVZSQ29udHJvbGxlckNvbXBvbmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAg
ICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgICAgICAgIC8vIENvbnRyb2xsZXIgTWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgY3VycmVudCBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgVlJDb250cm9sbGVyU3RhdGVfdCBHZXRDb250cm9sbGVyU3RhdGUoICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0IHByb3BlcnR5LiBJZiB0aGUgcHJvcGVydHkg
aXMgbm90IGF2YWlsYWJsZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBUcmlnZ2VySGFwdGljUHVsc2UoIHVpbnQzMl90IHVuQXhpc0lk
LCB1aW50MTZfdCB1c1B1bHNlRHVyYXRpb25NaWNyb3NlY29uZHMgKSA9IDA7CisKKyAgICAgICB9
OworCisKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJDb250cm9sbGVyQ29tcG9uZW50
X1ZlcnNpb24gPSAiSVZSQ29udHJvbGxlckNvbXBvbmVudF8wMDEiOworCit9CisvLyBpdnJjYW1l
cmFjb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBJQ2FtZXJh
VmlkZW9TaW5rQ2FsbGJhY2sKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAgICAg
ICB2aXJ0dWFsIHZvaWQgT25DYW1lcmFWaWRlb1NpbmtDYWxsYmFjaygpID0gMDsKKyAgICAgICB9
OworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIFB1cnBvc2U6IFRoZSBjYW1lcmEgb24gYSBzaW5nbGUgdHJhY2tlZCBkZXZpY2UKKyAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xh
c3MgSVZSQ2FtZXJhQ29tcG9uZW50CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg
ICAgIC8vIENhbWVyYSBNZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJh
RnJhbWVEaW1lbnNpb25zKCB2cjo6RUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG5WaWRlb1N0cmVh
bUZvcm1hdCwgdWludDMyX3QgKnBXaWR0aCwgdWludDMyX3QgKnBIZWlnaHQgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFGcmFtZUJ1ZmZlcmluZ1JlcXVpcmVtZW50
cyggaW50ICpwRGVmYXVsdEZyYW1lUXVldWVTaXplLCB1aW50MzJfdCAqcEZyYW1lQnVmZmVyRGF0
YVNpemUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFGcmFtZUJ1
ZmZlcmluZyggaW50IG5GcmFtZUJ1ZmZlckNvdW50LCB2b2lkICoqcHBGcmFtZUJ1ZmZlcnMsIHVp
bnQzMl90IG5GcmFtZUJ1ZmZlckRhdGFTaXplICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgU2V0Q2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1G
b3JtYXQgblZpZGVvU3RyZWFtRm9ybWF0ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZy
OjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgR2V0Q2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQoKSA9
IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTdGFydFZpZGVvU3RyZWFtKCkgPSAwOwor
ICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU3RvcFZpZGVvU3RyZWFtKCkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgSXNWaWRlb1N0cmVhbUFjdGl2ZSggYm9vbCAqcGJQYXVzZWQs
IGZsb2F0ICpwZmxFbGFwc2VkVGltZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25z
dCB2cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZV90ICpHZXRWaWRlb1N0cmVhbUZyYW1lKCkgPSAw
OworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVsZWFzZVZpZGVvU3RyZWFtRnJhbWUoIGNv
bnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKnBGcmFtZUltYWdlICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0QXV0b0V4cG9zdXJlKCBib29sIGJFbmFibGUgKSA9
IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBQYXVzZVZpZGVvU3RyZWFtKCkgPSAwOwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgUmVzdW1lVmlkZW9TdHJlYW0oKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFEaXN0b3J0aW9uKCBmbG9hdCBmbElucHV0
VSwgZmxvYXQgZmxJbnB1dFYsIGZsb2F0ICpwZmxPdXRwdXRVLCBmbG9hdCAqcGZsT3V0cHV0ViAp
ID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYVByb2plY3Rpb24oIHZy
OjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZsWk5lYXIsIGZs
b2F0IGZsWkZhciwgdnI6OkhtZE1hdHJpeDQ0X3QgKnBQcm9qZWN0aW9uICkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0RnJhbWVSYXRlKCBpbnQgbklTUEZyYW1lUmF0ZSwgaW50
IG5TZW5zb3JGcmFtZVJhdGUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRD
YW1lcmFWaWRlb1NpbmtDYWxsYmFjayggdnI6OklDYW1lcmFWaWRlb1NpbmtDYWxsYmFjayAqcENh
bWVyYVZpZGVvU2lua0NhbGxiYWNrICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUg
KnBDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIFNldENhbWVyYUNvbXBhdGliaWxpdHlNb2RlKCB2cjo6RUNhbWVyYUNvbXBhdGliaWxpdHlN
b2RlIG5DYW1lcmFDb21wYXRpYmlsaXR5TW9kZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVh
bCBib29sIEdldENhbWVyYUZyYW1lQm91bmRzKCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCB1aW50MzJfdCAqcExlZnQsIHVpbnQzMl90ICpwVG9wLCB1aW50MzJfdCAq
cFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIEdldENhbWVyYUludHJpbnNpY3MoIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqcEZvY2FsTGVuZ3RoLCBIbWRWZWN0b3IyX3QgKnBDZW50
ZXIgKSA9IDA7CisgICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJDYW1l
cmFDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJDYW1lcmFDb21wb25lbnRfMDAyIjsKK30KKy8vIGl0
cmFja2VkZGV2aWNlZHJpdmVycHJvdmlkZXIuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElU
cmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRyYWNrZWREZXZpY2VEcml2ZXJJbmZv
X3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OwordHlwZWRlZiBQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90IERyaXZlckhhbmRsZV90OworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJvdmlkZWQgYnkg
dnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkgCisqIHRoZSBzeXN0ZW0gd2hl
biBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhlc2UgY2hhbmdlcyBtdXN0Cisq
IG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mgb2YgdGhlIGRldmljZSBiZWNh
dXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFuZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBk
ZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUkRyaXZlckNvbnRleHQKK3sKK3B1YmxpYzoKKyAg
ICAgICAvKiogUmV0dXJucyB0aGUgcmVxdWVzdGVkIGludGVyZmFjZS4gSWYgdGhlIGludGVyZmFj
ZSB3YXMgbm90IGF2YWlsYWJsZSBpdCB3aWxsIHJldHVybiBOVUxMIGFuZCBmaWxsCisgICAgICAg
KiBvdXQgdGhlIGVycm9yLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2VuZXJpY0ludGVy
ZmFjZSggY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVy
cm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBj
b250YWluZXIgaGFuZGxlIGZvciB0aGlzIGRyaXZlciAqLworICAgICAgIHZpcnR1YWwgRHJpdmVy
SGFuZGxlX3QgR2V0RHJpdmVySGFuZGxlKCkgPSAwOworfTsKKworCisvKiogVGhpcyBpbnRlcmZh
Y2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBlYWNoIGRyaXZlci4gSXQgd2lsbCBiZSBsb2FkZWQg
aW4gdnJzZXJ2ZXIuZXhlICovCitjbGFzcyBJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyCit7
CitwdWJsaWM6CisgICAgICAgLyoqIGluaXRpYWxpemVzIHRoZSBkcml2ZXIuIFRoaXMgd2lsbCBi
ZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBtZXRob2RzIGFyZSBjYWxsZWQuCisgICAgICAgKiBJ
ZiBJbml0IHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiBWUkluaXRFcnJvcl9Ob25lIHRoZSBk
cml2ZXIgRExMIHdpbGwgYmUgdW5sb2FkZWQuCisgICAgICAgKgorICAgICAgICogcERyaXZlckhv
c3Qgd2lsbCBuZXZlciBiZSBOVUxMLCBhbmQgd2lsbCBhbHdheXMgYmUgYSBwb2ludGVyIHRvIGEg
SVNlcnZlckRyaXZlckhvc3QgaW50ZXJmYWNlCisgICAgICAgKgorICAgICAgICogcGNoVXNlckRy
aXZlckNvbmZpZ0RpciAtIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgd2hlcmUg
dGhlIGRyaXZlciBzaG91bGQgc3RvcmUgdXNlcgorICAgICAgICogICAgICAgY29uZmlnIGZpbGVz
LgorICAgICAgICogcGNoRHJpdmVySW5zdGFsbERpciAtIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRo
ZSByb290IGRpcmVjdG9yeSBmb3IgdGhlIGRyaXZlci4KKyAgICAgICAqLworICAgICAgIHZpcnR1
YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZlckNvbnRleHQgKnBEcml2ZXJDb250ZXh0ICkg
PSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCB0aGUgZHJpdmVyIHJpZ2h0IGJlZm9yZSBpdCBp
cyB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkgPSAwOworCisgICAg
ICAgLyoqIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIElUcmFja2VkRGV2aWNlU2VydmVyRHJp
dmVyIGludGVyZmFjZSB1c2VkIGJ5IHRoaXMgZHJpdmVyICovCisgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyICogY29uc3QgKkdldEludGVyZmFjZVZlcnNpb25zKCkgPSAwOworCisgICAgICAgLyoq
IEFsbG93cyB0aGUgZHJpdmVyIGRvIHRvIHNvbWUgd29yayBpbiB0aGUgbWFpbiBsb29wIG9mIHRo
ZSBzZXJ2ZXIuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJ1bkZyYW1lKCkgPSAwOworCisKKyAg
ICAgICAvLyAtLS0tLS0tLS0tLS0gIFBvd2VyIFN0YXRlIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAvLworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZHJpdmVyIHdh
bnRzIHRvIGJsb2NrIFN0YW5kYnkgbW9kZS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgU2hvdWxk
QmxvY2tTdGFuZGJ5TW9kZSgpID0gMDsKKworICAgICAgIC8qKiBDYWxsZWQgd2hlbiB0aGUgc3lz
dGVtIGlzIGVudGVyaW5nIFN0YW5kYnkgbW9kZS4gVGhlIGRyaXZlciBzaG91bGQgc3dpdGNoIGl0
c2VsZiBpbnRvIHdoYXRldmVyIHNvcnQgb2YgbG93LXBvd2VyCisgICAgICAgKiBzdGF0ZSBpdCBo
YXMuICovCisgICAgICAgdmlydHVhbCB2b2lkIEVudGVyU3RhbmRieSgpID0gMDsKKworICAgICAg
IC8qKiBDYWxsZWQgd2hlbiB0aGUgc3lzdGVtIGlzIGxlYXZpbmcgU3RhbmRieSBtb2RlLiBUaGUg
ZHJpdmVyIHNob3VsZCBzd2l0Y2ggaXRzZWxmIGJhY2sgdG8KKyAgICAgICBmdWxsIG9wZXJhdGlv
bi4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgTGVhdmVTdGFuZGJ5KCkgPSAwOworCit9OworCisK
K3N0YXRpYyBjb25zdCBjaGFyICpJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyX1ZlcnNpb24g
PSAiSVNlcnZlclRyYWNrZWREZXZpY2VQcm92aWRlcl8wMDQiOworCisKKworCisvKiogVGhpcyBp
bnRlcmZhY2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBlYWNoIGRyaXZlci4gSXQgd2lsbCBiZSBs
b2FkZWQgaW4gdnJjbGllbnQuZGxsICovCitjbGFzcyBJVlJXYXRjaGRvZ1Byb3ZpZGVyCit7Citw
dWJsaWM6CisgICAgICAgLyoqIGluaXRpYWxpemVzIHRoZSBkcml2ZXIgaW4gd2F0Y2hkb2cgbW9k
ZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBJbml0KCBJVlJEcml2ZXJDb250ZXh0
ICpwRHJpdmVyQ29udGV4dCApID0gMDsKKworICAgICAgIC8qKiBjbGVhbnMgdXAgdGhlIGRyaXZl
ciByaWdodCBiZWZvcmUgaXQgaXMgdW5sb2FkZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ2xl
YW51cCgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpJVlJXYXRjaGRvZ1Byb3ZpZGVy
X1ZlcnNpb24gPSAiSVZSV2F0Y2hkb2dQcm92aWRlcl8wMDEiOworCit9CisvLyBpdnJwcm9wZXJ0
aWVzLmgKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZSB2cgoreworCisgICAgICAgZW51
bSBFUHJvcGVydHlXcml0ZVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIFByb3BlcnR5V3Jp
dGVfU2V0ID0gMCwKKyAgICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9FcmFzZSA9IDEsCisgICAg
ICAgICAgICAgIFByb3BlcnR5V3JpdGVfU2V0RXJyb3IgPSAyCisgICAgICAgfTsKKworICAgICAg
IHN0cnVjdCBQcm9wZXJ0eVdyaXRlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcDsKKyAgICAgICAgICAgICAgRVByb3BlcnR5V3JpdGVUeXBlIHdy
aXRlVHlwZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVTZXRFcnJvcjsK
KyAgICAgICAgICAgICAgdm9pZCAqcHZCdWZmZXI7CisgICAgICAgICAgICAgIHVpbnQzMl90IHVu
QnVmZmVyU2l6ZTsKKyAgICAgICAgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5UYWc7CisgICAg
ICAgICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAgICAgfTsKKworICAg
ICAgIHN0cnVjdCBQcm9wZXJ0eVJlYWRfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKKyAg
ICAgICAgICAgICAgdWludDMyX3QgdW5CdWZmZXJTaXplOworICAgICAgICAgICAgICBQcm9wZXJ0
eVR5cGVUYWdfdCB1blRhZzsKKyAgICAgICAgICAgICAgdWludDMyX3QgdW5SZXF1aXJlZEJ1ZmZl
clNpemU7CisgICAgICAgICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAg
ICAgfTsKKworCitjbGFzcyBJVlJQcm9wZXJ0aWVzCit7CitwdWJsaWM6CisKKyAgICAgICAvKiog
UmVhZHMgYSBzZXQgb2YgcHJvcGVydGllcyBhdG9taWNhbGx5LiBTZWUgdGhlIFByb3BlcnR5UmVh
ZEJhdGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLworICAgICAgIHZpcnR1YWwg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIFJlYWRQcm9wZXJ0eUJhdGNoKCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBQcm9wZXJ0eVJlYWRfdCAqcEJhdGNoLCB1aW50
MzJfdCB1bkJhdGNoRW50cnlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBXcml0ZXMgYSBzZXQg
b2YgcHJvcGVydGllcyBhdG9taWNhbGx5LiBTZWUgdGhlIFByb3BlcnR5V3JpdGVCYXRjaF90IHN0
cnVjdCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIEVUcmFja2VkUHJv
cGVydHlFcnJvciBXcml0ZVByb3BlcnR5QmF0Y2goIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5V3JpdGVfdCAqcEJhdGNoLCB1aW50MzJfdCB1bkJh
dGNoRW50cnlDb3VudCApID0gMDsKKworICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQg
Y29ycmVzcG9uZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGVycm9yLiBUaGUgc3RyaW5n
IHdpbGwgYmUgdGhlIG5hbWUKKyAgICAgICAqIG9mIHRoZSBlcnJvciBlbnVtIHZhbHVlIGZvciBh
bGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFBy
b3BFcnJvck5hbWVGcm9tRW51bSggRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yICkgPSAwOwor
CisgICAgICAgLyoqIFJldHVybnMgYSBjb250YWluZXIgaGFuZGxlIGdpdmVuIGEgdHJhY2tlZCBk
ZXZpY2UgaW5kZXggKi8KKyAgICAgICB2aXJ0dWFsIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
VHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRyYWNrZWREZXZpY2VJbmRleF90IG5E
ZXZpY2UgKSA9IDA7CisKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSUHJvcGVy
dGllc19WZXJzaW9uID0gIklWUlByb3BlcnRpZXNfMDAxIjsKKworY2xhc3MgQ1ZSUHJvcGVydHlI
ZWxwZXJzCit7CitwdWJsaWM6CisgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzKCBJVlJQcm9wZXJ0
aWVzICogcFByb3BlcnRpZXMgKSA6IG1fcFByb3BlcnRpZXMoIHBQcm9wZXJ0aWVzICkge30KKwor
ICAgICAgIC8qKiBSZXR1cm5zIGEgc2NhbGVyIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4
IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgdmFsdWUgdHlwZSBkb2VzIG5vdCBtYXRjaCwK
KyAgICAgICAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gZmFsc2UuICovCisgICAgICAgYm9v
bCBHZXRCb29sUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJI
YW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
ICpwRXJyb3IgPSAwTCApOworICAgICAgIGZsb2F0IEdldEZsb2F0UHJvcGVydHkoIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOworICAgICAgIGlu
dDMyX3QgR2V0SW50MzJQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRh
aW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgdWludDY0X3QgR2V0VWludDY0UHJvcGVydHko
IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2
aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOwor
CisgICAgICAgLyoqIFJldHVybnMgYSBzaW5nbGUgdHlwZWQgcHJvcGVydHkuIElmIHRoZSBkZXZp
Y2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlw
ZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0
dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQg
dGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGluZworICAgICAgICogbnVsbC4gU3RyaW5n
cyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVmZmVycyBvZiBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXpl
IGNoYXJhY3RlcnMuICovCisgICAgICAgdWludDMyX3QgR2V0UHJvcGVydHkoIFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgVlJfT1VUX1NUUklORygpIHZvaWQgKnB2QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNp
emUsIFByb3BlcnR5VHlwZVRhZ190ICpwdW5UYWcsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVy
cm9yID0gMEwgKTsKKworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElm
IHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBz
dHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVybiAwLiBPdGhlcndp
c2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5
IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGluZworICAgICAgICogbnVs
bC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVmZmVycyBvZiBrX3VuTWF4UHJvcGVydHlT
dHJpbmdTaXplIGNoYXJhY3RlcnMuICovCisgICAgICAgdWludDMyX3QgR2V0U3RyaW5nUHJvcGVy
dHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50
MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKTsK
KworICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5IGFzIGEgc3RkOjpzdHJpbmcu
IElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3Qg
YSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVybiBhbiBlbXB0
eSBzdHJpbmcuICovCisgICAgICAgc3RkOjpzdHJpbmcgR2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQ
cm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yID0gbnVsbHB0
ciApOworCisgICAgICAgLyoqIFNldHMgYSBzY2FsZXIgcHJvcGVydHkuIFRoZSBuZXcgdmFsdWUg
d2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRvIGdldCB0aGlzIHByb3Bl
cnR5IGluIGFueSBwcm9jZXNzLiAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRC
b29sUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgYm9vbCBiTmV3VmFsdWUgKTsKKyAgICAgICBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBm
bG9hdCBmTmV3VmFsdWUgKTsKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0SW50MzJQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBpbnQzMl90IG5OZXdWYWx1ZSApOworICAgICAgIEVU
cmFja2VkUHJvcGVydHlFcnJvciBTZXRVaW50NjRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJI
YW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB1
aW50NjRfdCB1bE5ld1ZhbHVlICk7CisKKyAgICAgICAvKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0
eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwg
dG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIFNldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNvbnN0IGNo
YXIgKnBjaE5ld1ZhbHVlICk7CisKKyAgICAgICAvKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9w
ZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNh
bGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yIFNldFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVs
Q29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHZvaWQgKnB2TmV3
VmFsdWUsIHVpbnQzMl90IHVuTmV3VmFsdWVTaXplLCBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZyAp
OworCisgICAgICAgLyoqIFNldHMgdGhlIGVycm9yIHJldHVybiB2YWx1ZSBmb3IgYSBwcm9wZXJ0
eS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFsbCBzdWJzZXF1ZW50IHJlcXVlc3Rz
IHRvIGdldCB0aGUgcHJvcGVydHkgKi8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0
UHJvcGVydHlFcnJvciggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRs
ZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZUVy
cm9yICk7CisKKyAgICAgICAvKiogQ2xlYXJzIGFueSB2YWx1ZSBvciBlcnJvciBzZXQgZm9yIHRo
ZSBwcm9wZXJ0eS4gKi8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgRXJhc2VQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wICk7CisKKyAgICAgICAvKiBUdXJucyBhIGRldmljZSBpbmRleCBp
bnRvIGEgcHJvcGVydHkgY29udGFpbmVyIGhhbmRsZS4gKi8KKyAgICAgICBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IFRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBUcmFja2VkRGV2
aWNlSW5kZXhfdCBuRGV2aWNlICkgeyByZXR1cm4gbV9wUHJvcGVydGllcy0+VHJhY2tlZERldmlj
ZVRvUHJvcGVydHlDb250YWluZXIoIG5EZXZpY2UgKTsgIH0KKworcHJpdmF0ZToKKyAgICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgIFQgR2V0UHJvcGVydHlIZWxwZXIoIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IsIFQgYkRlZmF1bHQsIFByb3Bl
cnR5VHlwZVRhZ190IHVuVHlwZVRhZyApOworCisgICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJv
cGVydGllczsKK307CisKKworaW5saW5lIHVpbnQzMl90IENWUlByb3BlcnR5SGVscGVyczo6R2V0
UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIHZvaWQgKnB2QnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIFByb3BlcnR5VHlwZVRhZ190ICpwdW5UYWcsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBQcm9wZXJ0eVJlYWRfdCBiYXRj
aDsKKyAgICAgICBiYXRjaC5wcm9wID0gcHJvcDsKKyAgICAgICBiYXRjaC5wdkJ1ZmZlciA9IHB2
QnVmZmVyOworICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6ZSA9IHVuQnVmZmVyU2l6ZTsKKworICAg
ICAgIG1fcFByb3BlcnRpZXMtPlJlYWRQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwg
JmJhdGNoLCAxICk7CisKKyAgICAgICBpZiAoIHBFcnJvciApCisgICAgICAgeworICAgICAgICAg
ICAgICAqcEVycm9yID0gYmF0Y2guZUVycm9yOworICAgICAgIH0KKworICAgICAgIGlmICggcHVu
VGFnICkKKyAgICAgICB7CisgICAgICAgICAgICAgICpwdW5UYWcgPSBiYXRjaC51blRhZzsKKyAg
ICAgICB9CisKKyAgICAgICByZXR1cm4gYmF0Y2gudW5SZXF1aXJlZEJ1ZmZlclNpemU7Cit9CisK
KworLyoqIFNldHMgYSBzaW5nbGUgdHlwZWQgcHJvcGVydHkuIFRoZSBuZXcgdmFsdWUgd2lsbCBi
ZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRvIGdldCB0aGlzIHByb3BlcnR5IGlu
IGFueSBwcm9jZXNzLiAqLworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0
eUhlbHBlcnM6OlNldFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHZvaWQgKnB2TmV3VmFsdWUs
IHVpbnQzMl90IHVuTmV3VmFsdWVTaXplLCBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZyApCit7Cisg
ICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOworICAgICAgIGJhdGNoLndyaXRlVHlwZSA9IFBy
b3BlcnR5V3JpdGVfU2V0OworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJhdGNo
LnB2QnVmZmVyID0gcHZOZXdWYWx1ZTsKKyAgICAgICBiYXRjaC51bkJ1ZmZlclNpemUgPSB1bk5l
d1ZhbHVlU2l6ZTsKKyAgICAgICBiYXRjaC51blRhZyA9IHVuVGFnOworCisgICAgICAgbV9wUHJv
cGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNoLCAx
ICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworfQorCisKKy8qKiBSZXR1cm5zIGEg
c3RyaW5nIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUg
cHJvcGVydHkgaXMgbm90IGEgc3RyaW5nIHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsCisqIHJldHVy
biAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0
ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGluZwor
KiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9w
ZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KK2lubGluZSB1aW50MzJfdCBDVlJQcm9wZXJ0
eUhlbHBlcnM6OkdldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVs
Q29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFZSX09VVF9TVFJJ
TkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5UYWc7Cisg
ICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yOworICAgICAgIHVpbnQzMl90IHVuUmVx
dWlyZWRTaXplID0gR2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwY2hWYWx1
ZSwgdW5CdWZmZXJTaXplLCAmdW5UYWcsICZlcnJvciApOworICAgICAgIGlmICggdW5UYWcgIT0g
a191blN0cmluZ1Byb3BlcnR5VGFnICYmIGVycm9yID09IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgZXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBl
OworICAgICAgIH0KKworICAgICAgIGlmICggcEVycm9yICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgICpwRXJyb3IgPSBlcnJvcjsKKyAgICAgICB9CisKKyAgICAgICBpZiAoIGVycm9yICE9IFRy
YWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBwY2hWYWx1
ZSAmJiB1bkJ1ZmZlclNpemUgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAqcGNoVmFsdWUgPSAnXDAnOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAg
cmV0dXJuIHVuUmVxdWlyZWRTaXplOworfQorCisKKy8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3Bl
cnR5IGFzIGEgc3RkOjpzdHJpbmcuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9y
IHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyog
cmV0dXJuIGFuIGVtcHR5IHN0cmluZy4gKi8KK2lubGluZSBzdGQ6OnN0cmluZyBDVlJQcm9wZXJ0
eUhlbHBlcnM6OkdldFN0cmluZ1Byb3BlcnR5KCB2cjo6UHJvcGVydHlDb250YWluZXJIYW5kbGVf
dCB1bENvbnRhaW5lciwgdnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdnI6OkVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcGVFcnJvciApCit7CisgICAgICAgY2hhciBidWZbMTAyNF07Cisg
ICAgICAgdnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciBlcnI7CisgICAgICAgdWludDMyX3QgdW5S
ZXF1aXJlZEJ1ZmZlckxlbiA9IEdldFN0cmluZ1Byb3BlcnR5KCB1bENvbnRhaW5lciwgcHJvcCwg
YnVmLCBzaXplb2YoYnVmKSwgJmVyciApOworCisgICAgICAgc3RkOjpzdHJpbmcgc1Jlc3VsdDsK
KworICAgICAgIGlmICggZXJyID09IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgc1Jlc3VsdCA9IGJ1ZjsKKyAgICAgICB9CisgICAgICAgZWxzZSBpZiAoIGVy
ciA9PSBUcmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCApCisgICAgICAgeworICAgICAgICAgICAg
ICBjaGFyICpwY2hCdWZmZXIgPSBuZXcgY2hhclt1blJlcXVpcmVkQnVmZmVyTGVuXTsKKyAgICAg
ICAgICAgICAgdW5SZXF1aXJlZEJ1ZmZlckxlbiA9IEdldFN0cmluZ1Byb3BlcnR5KCB1bENvbnRh
aW5lciwgcHJvcCwgcGNoQnVmZmVyLCB1blJlcXVpcmVkQnVmZmVyTGVuLCAmZXJyICk7CisgICAg
ICAgICAgICAgIHNSZXN1bHQgPSBwY2hCdWZmZXI7CisgICAgICAgICAgICAgIGRlbGV0ZVtdIHBj
aEJ1ZmZlcjsKKyAgICAgICB9CisKKyAgICAgICBpZiAoIHBlRXJyb3IgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgKnBlRXJyb3IgPSBlcnI7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNS
ZXN1bHQ7Cit9CisKKworLyoqIFNldHMgYSBzdHJpbmcgcHJvcGVydHkuIFRoZSBuZXcgdmFsdWUg
d2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRvIGdldCB0aGlzIHByb3Bl
cnR5IGluIGFueSBwcm9jZXNzLiAqLworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQ
cm9wZXJ0eUhlbHBlcnM6OlNldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNvbnN0
IGNoYXIgKnBjaE5ld1ZhbHVlICkKK3sKKyAgICAgICBpZiAoICFwY2hOZXdWYWx1ZSApCisgICAg
ICAgICAgICAgIHJldHVybiBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uOworCisgICAgICAg
Ly8gdGhpcyBpcyBzdHJsZW4gd2l0aG91dCB0aGUgZGVwZW5kZW5jeSBvbiBzdHJpbmcuaAorICAg
ICAgIGNvbnN0IGNoYXIgKnBjaEN1cnIgPSBwY2hOZXdWYWx1ZTsKKyAgICAgICB3aGlsZSAoICpw
Y2hDdXJyICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaEN1cnIrKzsKKyAgICAgICB9CisK
KyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAodm9p
ZCAqKXBjaE5ld1ZhbHVlLCAodWludDMyX3QpKHBjaEN1cnIgLSBwY2hOZXdWYWx1ZSkgKyAxLCBr
X3VuU3RyaW5nUHJvcGVydHlUYWcgKTsKK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5s
aW5lIFQgQ1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eUhlbHBlciggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVsdCwgUHJvcGVydHlU
eXBlVGFnX3QgdW5UeXBlVGFnICkKK3sKKyAgICAgICBUIGJWYWx1ZTsKKyAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgZUVycm9yOworICAgICAgIFByb3BlcnR5VHlwZVRhZ190IHVuUmVhZFRh
ZzsKKyAgICAgICBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZiVmFsdWUs
IHNpemVvZiggYlZhbHVlICksICZ1blJlYWRUYWcsICZlRXJyb3IgKTsKKyAgICAgICBpZiAoIHVu
UmVhZFRhZyAhPSB1blR5cGVUYWcgJiYgZUVycm9yID09IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgZUVycm9yID0gVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlw
ZTsKKyAgICAgICB9OworCisgICAgICAgaWYgKCBwRXJyb3IgKQorICAgICAgICAgICAgICAqcEVy
cm9yID0gZUVycm9yOworICAgICAgIGlmICggZUVycm9yICE9IFRyYWNrZWRQcm9wX1N1Y2Nlc3Mg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGJEZWZhdWx0OworICAgICAgIH0KKyAg
ICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gYlZhbHVlOworICAgICAg
IH0KK30KKworCitpbmxpbmUgYm9vbCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEJvb2xQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7Cisg
ICAgICAgcmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGJvb2w+KCB1bENvbnRhaW5lckhhbmRsZSwg
cHJvcCwgcEVycm9yLCBmYWxzZSwga191bkJvb2xQcm9wZXJ0eVRhZyApOworfQorCisKK2lubGlu
ZSBmbG9hdCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEZsb2F0UHJvcGVydHkoIFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBH
ZXRQcm9wZXJ0eUhlbHBlcjxmbG9hdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3Is
IDAuZiwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIGludDMyX3QgQ1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxw
ZXI8aW50MzJfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5JbnQz
MlByb3BlcnR5VGFnICk7Cit9CisKK2lubGluZSB1aW50NjRfdCBDVlJQcm9wZXJ0eUhlbHBlcnM6
OkdldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJv
ciAqcEVycm9yICkKK3sKKyAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8dWludDY0X3Q+
KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgcEVycm9yLCAwLCBrX3VuVWludDY0UHJvcGVydHlU
YWcgKTsKK30KKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBl
cnM6OlNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5l
ckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApCit7
CisgICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmJO
ZXdWYWx1ZSwgc2l6ZW9mKCBiTmV3VmFsdWUgKSwga191bkJvb2xQcm9wZXJ0eVRhZyApOworfQor
CitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0Rmxv
YXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBmbG9hdCBmTmV3VmFsdWUgKQoreworICAgICAg
IHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZmTmV3VmFsdWUs
IHNpemVvZiggZk5ld1ZhbHVlICksIGtfdW5GbG9hdFByb3BlcnR5VGFnICk7Cit9CisKK2lubGlu
ZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRJbnQzMlByb3Bl
cnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICkKK3sKKyAgICAgICByZXR1
cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmbk5ld1ZhbHVlLCBzaXpl
b2YoIG5OZXdWYWx1ZSApLCBrX3VuSW50MzJQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHko
IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2
aWNlUHJvcGVydHkgcHJvcCwgdWludDY0X3QgdWxOZXdWYWx1ZSApCit7CisgICAgICAgcmV0dXJu
IFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJnVsTmV3VmFsdWUsIHNpemVv
ZiggdWxOZXdWYWx1ZSApLCBrX3VuVWludDY0UHJvcGVydHlUYWcgKTsKK30KKworLyoqIFNldHMg
dGhlIGVycm9yIHJldHVybiB2YWx1ZSBmb3IgYSBwcm9wZXJ0eS4gVGhpcyB2YWx1ZSB3aWxsIGJl
IHJldHVybmVkIG9uIGFsbCBzdWJzZXF1ZW50IHJlcXVlc3RzIHRvIGdldCB0aGUgcHJvcGVydHkg
Ki8KK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRQ
cm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxl
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJy
b3IgKQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKKyAgICAgICBiYXRjaC53cml0
ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX1NldEVycm9yOworICAgICAgIGJhdGNoLnByb3AgPSBwcm9w
OworICAgICAgIGJhdGNoLmVTZXRFcnJvciA9IGVFcnJvcjsKKworICAgICAgIG1fcFByb3BlcnRp
ZXMtPldyaXRlUHJvcGVydHlCYXRjaCggdWxDb250YWluZXJIYW5kbGUsICZiYXRjaCwgMSApOwor
CisgICAgICAgcmV0dXJuIGJhdGNoLmVFcnJvcjsKK30KKworLyoqIENsZWFycyBhbnkgdmFsdWUg
b3IgZXJyb3Igc2V0IGZvciB0aGUgcHJvcGVydHkuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6RXJhc2VQcm9wZXJ0eSggUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
ICkKK3sKKyAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7CisgICAgICAgYmF0Y2gud3JpdGVU
eXBlID0gUHJvcGVydHlXcml0ZV9FcmFzZTsKKyAgICAgICBiYXRjaC5wcm9wID0gcHJvcDsKKwor
ICAgICAgIG1fcFByb3BlcnRpZXMtPldyaXRlUHJvcGVydHlCYXRjaCggdWxDb250YWluZXJIYW5k
bGUsICZiYXRjaCwgMSApOworCisgICAgICAgcmV0dXJuIGJhdGNoLmVFcnJvcjsKKworfQorCit9
CisKKworLy8gaXZyZHJpdmVybG9nLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJEcml2
ZXJMb2cKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogV3JpdGVzIGEgbG9nIG1lc3NhZ2UgdG8gdGhl
IGxvZyBmaWxlIHByZWZpeGVkIHdpdGggdGhlIGRyaXZlciBuYW1lICovCisgICAgICAgdmlydHVh
bCB2b2lkIExvZyggY29uc3QgY2hhciAqcGNoTG9nTWVzc2FnZSApID0gMDsKK307CisKKworc3Rh
dGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckxvZ19WZXJzaW9uID0gIklWUkRyaXZlckxvZ18wMDEi
OworCit9CisvLyBpdnJzZXJ2ZXJkcml2ZXJob3N0LmgKK25hbWVzcGFjZSB2cgoreworCitjbGFz
cyBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcjsKK3N0cnVjdCBUcmFja2VkRGV2aWNlRHJpdmVy
SW5mb190Oworc3RydWN0IERyaXZlclBvc2VfdDsKKworLyoqIFRoaXMgaW50ZXJmYWNlIGlzIHBy
b3ZpZGVkIGJ5IHZyc2VydmVyIHRvIGFsbG93IHRoZSBkcml2ZXIgdG8gbm90aWZ5IAorKiB0aGUg
c3lzdGVtIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMgYWJvdXQgYSBkZXZpY2UuIFRoZXNlIGNoYW5n
ZXMgbXVzdAorKiBub3QgY2hhbmdlIHRoZSBzZXJpYWwgbnVtYmVyIG9yIGNsYXNzIG9mIHRoZSBk
ZXZpY2UgYmVjYXVzZSB0aG9zZSB2YWx1ZXMKKyogYXJlIHBlcm1hbmVudGx5IGFzc29jaWF0ZWQg
d2l0aCB0aGUgZGV2aWNlJ3MgaW5kZXguICovCitjbGFzcyBJVlJTZXJ2ZXJEcml2ZXJIb3N0Cit7
CitwdWJsaWM6CisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCBhIHRyYWNrZWQg
ZGV2aWNlIGhhcyBiZWVuIGFkZGVkLiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZQorICAg
ICAgICogdGhlIHNlcnZlciB3aWxsIGNhbGwgQWN0aXZhdGUgb24gdGhlIGRldmljZS4gSWYgaXQg
cmV0dXJucyBmYWxzZSBzb21lIGtpbmQgb2YgZXJyb3IKKyAgICAgICAqIGhhcyBvY2N1cnJlZCBh
bmQgdGhlIGRldmljZSB3aWxsIG5vdCBiZSBhY3RpdmF0ZWQuICovCisgICAgICAgdmlydHVhbCBi
b29sIFRyYWNrZWREZXZpY2VBZGRlZCggY29uc3QgY2hhciAqcGNoRGV2aWNlU2VyaWFsTnVtYmVy
LCBFVHJhY2tlZERldmljZUNsYXNzIGVEZXZpY2VDbGFzcywgSVRyYWNrZWREZXZpY2VTZXJ2ZXJE
cml2ZXIgKnBEcml2ZXIgKSA9IDA7CisKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0
aGF0IGEgdHJhY2tlZCBkZXZpY2UncyBwb3NlIGhhcyBiZWVuIHVwZGF0ZWQgKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZVBvc2VVcGRhdGVkKCB1aW50MzJfdCB1bldoaWNoRGV2
aWNlLCBjb25zdCBEcml2ZXJQb3NlX3QgJiBuZXdQb3NlLCB1aW50MzJfdCB1blBvc2VTdHJ1Y3RT
aXplICkgPSAwOworCisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB2c3luYyBo
YXMgb2NjdXJyZWQgb24gdGhlIHRoZSBkaXNwbGF5IGF0dGFjaGVkIHRvIHRoZSBkZXZpY2UuIFRo
aXMgaXMKKyAgICAgICAqIG9ubHkgcGVybWl0dGVkIG9uIGRldmljZXMgb2YgdGhlIEhNRCBjbGFz
cy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVnN5bmNFdmVudCggZG91YmxlIHZzeW5jVGltZU9m
ZnNldFNlY29uZHMgKSA9IDA7CisKKyAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGF0
IHRoZSBidXR0b24gd2FzIHByZXNzZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERl
dmljZUJ1dHRvblByZXNzZWQoIHVpbnQzMl90IHVuV2hpY2hEZXZpY2UsIEVWUkJ1dHRvbklkIGVC
dXR0b25JZCwgZG91YmxlIGV2ZW50VGltZU9mZnNldCApID0gMDsKKworICAgICAgIC8qKiBub3Rp
ZmllcyB0aGUgc2VydmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgdW5wcmVzc2VkICovCisgICAgICAg
dmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VCdXR0b25VbnByZXNzZWQoIHVpbnQzMl90IHVuV2hp
Y2hEZXZpY2UsIEVWUkJ1dHRvbklkIGVCdXR0b25JZCwgZG91YmxlIGV2ZW50VGltZU9mZnNldCAp
ID0gMDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2VydmVyIHRoYXQgdGhlIGJ1dHRvbiB3
YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9uVG91
Y2hlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3Vi
bGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2
ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQg
VHJhY2tlZERldmljZUJ1dHRvblVudG91Y2hlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZS
QnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAg
ICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhbiBhIGNvbnRyb2xsZXIgYXhpcyBjaGFuZ2Vk
ICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VBeGlzVXBkYXRlZCggdWludDMy
X3QgdW5XaGljaERldmljZSwgdWludDMyX3QgdW5XaGljaEF4aXMsIGNvbnN0IFZSQ29udHJvbGxl
ckF4aXNfdCAmIGF4aXNTdGF0ZSApID0gMDsKKworICAgICAgIC8qKiBOb3RpZmllcyB0aGUgc2Vy
dmVyIHRoYXQgdGhlIHByb3hpbWl0eSBzZW5zb3Igb24gdGhlIHNwZWNpZmllZCBkZXZpY2UgICov
CisgICAgICAgdmlydHVhbCB2b2lkIFByb3hpbWl0eVNlbnNvclN0YXRlKCB1aW50MzJfdCB1bldo
aWNoRGV2aWNlLCBib29sIGJQcm94aW1pdHlTZW5zb3JUcmlnZ2VyZWQgKSA9IDA7CisKKyAgICAg
ICAvKiogU2VuZHMgYSB2ZW5kb3Igc3BlY2lmaWMgZXZlbnQgKFZSRXZlbnRfVmVuZG9yU3BlY2lm
aWNfUmVzZXJ2ZWRfU3RhcnQuLlZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kICov
CisgICAgICAgdmlydHVhbCB2b2lkIFZlbmRvclNwZWNpZmljRXZlbnQoIHVpbnQzMl90IHVuV2hp
Y2hEZXZpY2UsIHZyOjpFVlJFdmVudFR5cGUgZXZlbnRUeXBlLCBjb25zdCBWUkV2ZW50X0RhdGFf
dCAmIGV2ZW50RGF0YSwgZG91YmxlIGV2ZW50VGltZU9mZnNldCApID0gMDsKKworICAgICAgIC8q
KiBSZXR1cm5zIHRydWUgaWYgU3RlYW1WUiBpcyBleGl0aW5nICovCisgICAgICAgdmlydHVhbCBi
b29sIElzRXhpdGluZygpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxz
IHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRoZSBxdWV1ZSBpZiB0aGVyZSBpcyBv
bmUuIElmIHRoZXJlIGFyZSBubyBldmVudHMKKyAgICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMg
ZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgVlJF
dmVudF90IHN0cnVjdCAqLworICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4dEV2ZW50KCBWUkV2
ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQgKSA9IDA7Cit9OworCitzdGF0aWMg
Y29uc3QgY2hhciAqSVZSU2VydmVyRHJpdmVySG9zdF9WZXJzaW9uID0gIklWUlNlcnZlckRyaXZl
ckhvc3RfMDA0IjsKKworfQorLy8gaXZyaGlkZGVuYXJlYS5oCituYW1lc3BhY2UgdnIKK3sKKwor
Y2xhc3MgQ1ZSSGlkZGVuQXJlYUhlbHBlcnMKK3sKK3B1YmxpYzoKKyAgICAgICBDVlJIaWRkZW5B
cmVhSGVscGVycyggSVZSUHJvcGVydGllcyAqcFByb3BlcnRpZXMgKSA6IG1fcFByb3BlcnRpZXMo
IHBQcm9wZXJ0aWVzICkge30KKworICAgICAgIC8qKiBTdG9yZXMgYSBoaWRkZW4gYXJlYSBtZXNo
IGluIGEgcHJvcGVydHkgKi8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0SGlkZGVu
QXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90
ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICk7CisKKyAgICAgICAvKiogcmV0cmlldmVz
IGEgaGlkZGVuIGFyZWEgbWVzaCBmcm9tIGEgcHJvcGVydHkuIFJldHVybnMgdGhlIHZlcnQgY291
bnQgcmVhZCBvdXQgb2YgdGhlIHByb3BlcnR5LiAgKi8KKyAgICAgICB1aW50MzJfdCBHZXRIaWRk
ZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRWZWN0b3Iy
X3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQsIEVUcmFja2VkUHJvcGVydHlFcnJvciAq
cGVFcnJvciApOworCitwcml2YXRlOgorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0
UHJvcGVydHlFbnVtKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAoRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSkoUHJv
cF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgKyAoKGludCl0eXBlICogMikgKyAoaW50
KWVFeWUpOworICAgICAgIH0KKworICAgICAgIElWUlByb3BlcnRpZXMgKm1fcFByb3BlcnRpZXM7
Cit9OworCisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSSGlkZGVuQXJlYUhlbHBl
cnM6OlNldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUs
IEhtZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCApCit7CisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wID0gR2V0UHJvcGVydHlFbnVtKCBlRXllLCB0eXBl
ICk7CisgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzIHByb3BIZWxwZXJzKCBtX3BQcm9wZXJ0aWVz
ICk7CisgICAgICAgcmV0dXJuIHByb3BIZWxwZXJzLlNldFByb3BlcnR5KCBwcm9wSGVscGVycy5U
cmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcigga191blRyYWNrZWREZXZpY2VJbmRleF9I
bWQgKSwgcHJvcCwgcFZlcnRzLCBzaXplb2YoIEhtZFZlY3RvcjJfdCApICogdW5WZXJ0Q291bnQs
IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKTsKK30KKworCitpbmxpbmUgdWludDMyX3QgQ1ZS
SGlkZGVuQXJlYUhlbHBlcnM6OkdldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJl
YU1lc2hUeXBlIHR5cGUsIEhtZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3Vu
dCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKK3sKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVFeWUsIHR5cGUgKTsKKyAgICAg
ICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFByb3BlcnRpZXMgKTsKKyAgICAg
ICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcHJvcEVycm9yOworICAgICAgIFByb3BlcnR5VHlwZVRh
Z190IHVuVGFnOworICAgICAgIHVpbnQzMl90IHVuQnl0ZXNOZWVkZWQgPSBwcm9wSGVscGVycy5H
ZXRQcm9wZXJ0eSggcHJvcEhlbHBlcnMuVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIo
IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kICksIHByb3AsIHBWZXJ0cywgc2l6ZW9mKCBIbWRW
ZWN0b3IyX3QgKSp1blZlcnRDb3VudCwgJnVuVGFnLCAmcHJvcEVycm9yICk7CisgICAgICAgaWYg
KCBwcm9wRXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyAmJiB1blRhZyAhPSBrX3VuSGlkZGVu
QXJlYVByb3BlcnR5VGFnICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHByb3BFcnJvciA9IFRy
YWNrZWRQcm9wX1dyb25nRGF0YVR5cGU7CisgICAgICAgICAgICAgIHVuQnl0ZXNOZWVkZWQgPSAw
OworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgeworICAgICAgICAg
ICAgICAqcGVFcnJvciA9IHByb3BFcnJvcjsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gdW5C
eXRlc05lZWRlZCAvIHNpemVvZiggSG1kVmVjdG9yMl90ICk7Cit9CisKK30KKy8vIGl2cndhdGNo
ZG9naG9zdC5oCituYW1lc3BhY2UgdnIKK3sKKworLyoqIFRoaXMgaW50ZXJmYWNlIGlzIHByb3Zp
ZGVkIGJ5IHZyY2xpZW50IHRvIGFsbG93IHRoZSBkcml2ZXIgdG8gbWFrZSBldmVyeXRoaW5nIHdh
a2UgdXAgKi8KK2NsYXNzIElWUldhdGNoZG9nSG9zdAoreworcHVibGljOgorICAgICAgIC8qKiBD
bGllbnQgZHJpdmVycyBpbiB3YXRjaGRvZyBtb2RlIHNob3VsZCBjYWxsIHRoaXMgd2hlbiB0aGV5
IGhhdmUgcmVjZWl2ZWQgYSBzaWduYWwgZnJvbSBoYXJkd2FyZSB0aGF0IHNob3VsZAorICAgICAg
ICogY2F1c2UgU3RlYW1WUiB0byBzdGFydCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBXYXRjaGRv
Z1dha2VVcCgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpJVlJXYXRjaGRvZ0hvc3Rf
VmVyc2lvbiA9ICJJVlJXYXRjaGRvZ0hvc3RfMDAxIjsKKworfTsKKworCisKKworCisKKworbmFt
ZXNwYWNlIHZyCit7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX0ludGVyZmFj
ZVZlcnNpb25zW10gPQorICAgICAgIHsKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3NfVmVyc2lv
biwKKyAgICAgICAgICAgICAgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfVmVyc2lvbiwKKyAg
ICAgICAgICAgICAgSVZSRGlzcGxheUNvbXBvbmVudF9WZXJzaW9uLAorICAgICAgICAgICAgICBJ
VlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElWUkNv
bnRyb2xsZXJDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSQ2FtZXJhQ29tcG9u
ZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJf
VmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dQcm92aWRlcl9WZXJzaW9uLAorICAg
ICAgICAgICAgICBudWxscHRyCisgICAgICAgfTsKKworICAgICAgIGlubGluZSBJVlJEcml2ZXJD
b250ZXh0IComVlJEcml2ZXJDb250ZXh0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRp
YyBJVlJEcml2ZXJDb250ZXh0ICpwSG9zdDsKKyAgICAgICAgICAgICAgcmV0dXJuIHBIb3N0Owor
ICAgICAgIH0KKworICAgICAgIGNsYXNzIENPcGVuVlJEcml2ZXJDb250ZXh0CisgICAgICAgewor
ICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgQ09wZW5WUkRyaXZlckNvbnRleHQoKSA6IG1f
cHJvcGVydHlIZWxwZXJzKG51bGxwdHIpLCBtX2hpZGRlbkFyZWFIZWxwZXJzKG51bGxwdHIpIHsg
Q2xlYXIoKTsgfQorICAgICAgICAgICAgICB2b2lkIENsZWFyKCk7CisKKyAgICAgICAgICAgICAg
RVZSSW5pdEVycm9yIEluaXRTZXJ2ZXIoKTsKKyAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIElu
aXRXYXRjaGRvZygpOworCisgICAgICAgICAgICAgIElWUlNldHRpbmdzICpWUlNldHRpbmdzKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlNldHRpbmdz
ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wVlJTZXR0aW5ncyA9IChJVlJTZXR0aW5ncyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRH
ZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXR0aW5n
czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlByb3BlcnRpZXMgKlZSUHJv
cGVydGllc1JhdygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICgg
bV9wVlJQcm9wZXJ0aWVzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gKElWUlByb3BlcnRpZXMgKilWUkRy
aXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUHJvcGVydGllc19WZXJzaW9u
LCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eUhlbHBl
cnMgPSBDVlJQcm9wZXJ0eUhlbHBlcnMoIG1fcFZSUHJvcGVydGllcyApOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1faGlkZGVuQXJlYUhlbHBlcnMgPSBDVlJIaWRkZW5BcmVhSGVscGVy
cyggbV9wVlJQcm9wZXJ0aWVzICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9wVlJQcm9wZXJ0aWVzOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzICpWUlByb3BlcnRpZXMoKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNSYXcoKTsKKyAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAmbV9wcm9wZXJ0eUhlbHBlcnM7CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICBDVlJIaWRkZW5BcmVhSGVscGVycyAqVlJIaWRkZW5BcmVhKCkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgVlJQcm9wZXJ0aWVzUmF3KCk7Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gJm1faGlkZGVuQXJlYUhlbHBlcnM7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJTZXJ2ZXJEcml2ZXJIb3N0ICpWUlNlcnZlckRy
aXZlckhvc3QoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1f
cFZSU2VydmVyRHJpdmVySG9zdCA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2VydmVyRHJpdmVySG9zdCA9IChJVlJTZXJ2ZXJE
cml2ZXJIb3N0ICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNl
cnZlckRyaXZlckhvc3RfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU2VydmVyRHJpdmVySG9zdDsKKyAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUldhdGNoZG9nSG9zdCAqVlJXYXRjaGRv
Z0hvc3QoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
V2F0Y2hkb2dIb3N0ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJXYXRjaGRvZ0hvc3QgPSAoSVZSV2F0Y2hkb2dIb3N0ICopVlJE
cml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUldhdGNoZG9nSG9zdF9WZXJz
aW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbV9wVlJXYXRjaGRvZ0hvc3Q7CisgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICBJVlJEcml2ZXJMb2cgKlZSRHJpdmVyTG9nKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkRyaXZlckxvZyA9PSBudWxscHRyICkKKyAgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJy
b3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSRHJpdmVyTG9nID0g
KElWUkRyaXZlckxvZyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJ
VlJEcml2ZXJMb2dfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRHJpdmVyTG9nOworICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJI
YW5kbGUoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVlJE
cml2ZXJDb250ZXh0KCktPkdldERyaXZlckhhbmRsZSgpOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICBwcml2YXRlOgorICAgICAgICAgICAgICBJVlJTZXR0aW5ncyAgICAgICAgICAgICAgICAg
ICAgICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJVlJQcm9wZXJ0aWVzICAgICAgICAg
ICAgICAqbV9wVlJQcm9wZXJ0aWVzOworICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMg
ICAgICAgbV9wcm9wZXJ0eUhlbHBlcnM7CisgICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxw
ZXJzICAgICAgIG1faGlkZGVuQXJlYUhlbHBlcnM7CisgICAgICAgICAgICAgIElWUlNlcnZlckRy
aXZlckhvc3QgICAgICAgKm1fcFZSU2VydmVyRHJpdmVySG9zdDsKKyAgICAgICAgICAgICAgSVZS
V2F0Y2hkb2dIb3N0ICAgICAgICAgICAgICAqbV9wVlJXYXRjaGRvZ0hvc3Q7CisgICAgICAgICAg
ICAgIElWUkRyaXZlckxvZyAgICAgICAgICAgICAgKm1fcFZSRHJpdmVyTG9nOworICAgICAgIH07
CisKKyAgICAgICBpbmxpbmUgQ09wZW5WUkRyaXZlckNvbnRleHQgJk9wZW5WUkludGVybmFsX01v
ZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RhdGlj
IHZvaWQgKmN0eFtzaXplb2YoIENPcGVuVlJEcml2ZXJDb250ZXh0ICkgLyBzaXplb2YoIHZvaWQg
KiApXTsKKyAgICAgICAgICAgICAgcmV0dXJuICooQ09wZW5WUkRyaXZlckNvbnRleHQgKiljdHg7
IC8vIGJ5cGFzcyB6ZXJvLWluaXQgY29uc3RydWN0b3IKKyAgICAgICB9CisKKyAgICAgICBpbmxp
bmUgSVZSU2V0dGluZ3MgKlZSX0NBTExUWVBFIFZSU2V0dGluZ3MoKSB7IHJldHVybiBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJTZXR0aW5ncygpOyB9CisgICAg
ICAgaW5saW5lIElWUlByb3BlcnRpZXMgKlZSX0NBTExUWVBFIFZSUHJvcGVydGllc1JhdygpIHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlByb3Bl
cnRpZXNSYXcoKTsgfQorICAgICAgIGlubGluZSBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSX0NBTExU
WVBFIFZSUHJvcGVydGllcygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRy
aXZlckNvbnRleHQoKS5WUlByb3BlcnRpZXMoKTsgfQorICAgICAgIGlubGluZSBDVlJIaWRkZW5B
cmVhSGVscGVycyAqVlJfQ0FMTFRZUEUgVlJIaWRkZW5BcmVhKCkgeyByZXR1cm4gT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSSGlkZGVuQXJlYSgpOyB9CisgICAg
ICAgaW5saW5lIElWUkRyaXZlckxvZyAqVlJfQ0FMTFRZUEUgVlJEcml2ZXJMb2coKSB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJEcml2ZXJMb2co
KTsgfQorICAgICAgIGlubGluZSBJVlJTZXJ2ZXJEcml2ZXJIb3N0ICpWUl9DQUxMVFlQRSBWUlNl
cnZlckRyaXZlckhvc3QoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2
ZXJDb250ZXh0KCkuVlJTZXJ2ZXJEcml2ZXJIb3N0KCk7IH0KKyAgICAgICBpbmxpbmUgSVZSV2F0
Y2hkb2dIb3N0ICpWUl9DQUxMVFlQRSBWUldhdGNoZG9nSG9zdCgpIHsgcmV0dXJuIE9wZW5WUklu
dGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUldhdGNoZG9nSG9zdCgpOyB9Cisg
ICAgICAgaW5saW5lIERyaXZlckhhbmRsZV90IFZSX0NBTExUWVBFIFZSRHJpdmVySGFuZGxlKCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSRHJp
dmVySGFuZGxlKCk7IH0KKyAgICAgICBpbmxpbmUgdm9pZCBDT3BlblZSRHJpdmVyQ29udGV4dDo6
Q2xlYXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG51bGxwdHI7
CisgICAgICAgICAgICAgIG1fcFZSUHJvcGVydGllcyA9IG51bGxwdHI7CisgICAgICAgICAgICAg
IG1fcFZSU2VydmVyRHJpdmVySG9zdCA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSRHJp
dmVyTG9nID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJXYXRjaGRvZ0hvc3QgPSBudWxs
cHRyOworICAgICAgIH0KKworICAgICAgIGlubGluZSBFVlJJbml0RXJyb3IgQ09wZW5WUkRyaXZl
ckNvbnRleHQ6OkluaXRTZXJ2ZXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgQ2xlYXIoKTsK
KyAgICAgICAgICAgICAgaWYgKCAhVlJTZXJ2ZXJEcml2ZXJIb3N0KCkKKyAgICAgICAgICAgICAg
ICAgICAgIHx8ICFWUlNldHRpbmdzKCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlByb3Bl
cnRpZXMoKQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZSRHJpdmVyTG9nKCkgKQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQ7
CisgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Ob25lOworICAgICAgIH0KKworICAg
ICAgIGlubGluZSBFVlJJbml0RXJyb3IgQ09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRXYXRjaGRv
ZygpCisgICAgICAgeworICAgICAgICAgICAgICBDbGVhcigpOworICAgICAgICAgICAgICBpZiAo
ICFWUldhdGNoZG9nSG9zdCgpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJTZXR0aW5ncygp
CisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSApCisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAg
ICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7CisgICAgICAgfQorCisgICAgICAgaW5s
aW5lIEVWUkluaXRFcnJvciBJbml0U2VydmVyRHJpdmVyQ29udGV4dCggSVZSRHJpdmVyQ29udGV4
dCAqcENvbnRleHQgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJEcml2ZXJDb250ZXh0KCkg
PSBwQ29udGV4dDsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNl
cnZlckRyaXZlckNvbnRleHQoKS5Jbml0U2VydmVyKCk7CisgICAgICAgfQorCisgICAgICAgaW5s
aW5lIEVWUkluaXRFcnJvciBJbml0V2F0Y2hkb2dEcml2ZXJDb250ZXh0KCBJVlJEcml2ZXJDb250
ZXh0ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAgICAgICBWUkRyaXZlckNvbnRleHQo
KSA9IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
U2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRXYXRjaGRvZygpOworICAgICAgIH0KKworICAgICAg
IGlubGluZSB2b2lkIENsZWFudXBEcml2ZXJDb250ZXh0KCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIFZSRHJpdmVyQ29udGV4dCgpID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkNsZWFyKCk7CisgICAgICAgfQorCisg
ICAgICAgI2RlZmluZSBWUl9JTklUX1NFUlZFUl9EUklWRVJfQ09OVEVYVCggcENvbnRleHQgKSBc
CisgICAgICAgICAgICAgICAgICAgICB7IFwKKyAgICAgICAgICAgICAgICAgICAgIHZyOjpFVlJJ
bml0RXJyb3IgZUVycm9yID0gdnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBwQ29udGV4dCAp
OyBcCisgICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9yICE9IHZyOjpWUkluaXRFcnJvcl9O
b25lICkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlRXJyb3I7IFwKKyAg
ICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICNkZWZpbmUgVlJfQ0xFQU5VUF9TRVJWRVJf
RFJJVkVSX0NPTlRFWFQoKSBcCisgICAgICAgICAgICAgIHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4
dCgpOworCisgICAgICAgI2RlZmluZSBWUl9JTklUX1dBVENIRE9HX0RSSVZFUl9DT05URVhUKCBw
Q29udGV4dCApIFwKKyAgICAgICAgICAgICAgICAgICAgIHsgXAorICAgICAgICAgICAgICAgICAg
ICAgdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFdhdGNoZG9nRHJpdmVyQ29udGV4
dCggcENvbnRleHQgKTsgXAorICAgICAgICAgICAgICAgICAgICAgaWYoIGVFcnJvciAhPSB2cjo6
VlJJbml0RXJyb3JfTm9uZSApIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZUVycm9yOyBcCisgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAjZGVmaW5lIFZSX0NM
RUFOVVBfV0FUQ0hET0dfRFJJVkVSX0NPTlRFWFQoKSBcCisgICAgICAgICAgICAgIHZyOjpDbGVh
bnVwRHJpdmVyQ29udGV4dCgpOworfQorLy8gRW5kCisKKyNlbmRpZiAvLyBfT1BFTlZSX0RSSVZF
Ul9BUEkKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvb3BlbnZyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvb3BlbnZy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJlMzkyNzNkN2MzNGQxMTFj
MjE0YzZhOTI1ODZlNThkNWFkYWRmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9vcGVudnIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMCwwICsxLDQx
NyBAQAorLy8gISQqVVRGOCokIQoreworICAgICAgIGFyY2hpdmVWZXJzaW9uID0gMTsKKyAgICAg
ICBjbGFzc2VzID0geworICAgICAgIH07CisgICAgICAgb2JqZWN0VmVyc2lvbiA9IDQ2OworICAg
ICAgIG9iamVjdHMgPSB7CisKKy8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisgICAg
ICAgICAgICAgIDhFNTMxNDJFMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91bmRhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9
OworICAgICAgICAgICAgICA4RTUzMTQzMjFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0LmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhF
NTMxNDMxMUY2RkVDQUUwMDczQjg5NyAvKiBBcHBLaXQuZnJhbWV3b3JrICovOyB9OworICAgICAg
ICAgICAgICA4RTUzMTQzNTFGNzJENTg0MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTUzMTQy
RjFGNkZFQkM4MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisgICAgICAg
ICAgICAgIDhFNzk0Mjg5MUY2QUY2RDMwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNkMxRjZB
RTlBQjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAg
IDhFNzk0MjhBMUY2QUY2RDMwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNkUxRjZBRTlB
QjAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAg
IDhFNzk0MjhCMUY2QUY2RDMwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjcwMUY2QUU5QUIw
MDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3
OTQyOEMxRjZBRjZEMzAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzIxRjZBRTlBQjAwNTdC
ODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI4
RDFGNkFGNkQzMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc0MUY2QUU5QUIwMDU3
QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4
RTc5NDI4RTFGNkFGNkQzMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc2MUY2QUU5QUIwMDU3
QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI4
RjFGNkFGNkQzMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc4MUY2QUU5QUIwMDU3
QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4
RTc5NDI5MDFGNkFGNkVFMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2ODFGNkFFOUFCMDA1N0I4MDMgLyog
anNvbmNwcC5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0MjkxMUY2QUY2RUUwMDU3Qjgw
MyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2OTFGNkFFOUFCMDA1N0I4MDMgLyogb3BlbnZyX2FwaV9w
dWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5MjFGNkFGNzFEMDA1N0I4MDMg
Lyogb3BlbnZyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4RTc5NDI3QjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworICAgICAgICAgICAgICA4RTc5NDI5MzFGNkFG
NzFEMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjdFMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfY2Fw
aS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKyAgICAg
ICAgICAgICAgOEU3OTQyOTQxRjZBRjcxRDAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjdGMUY2QUYw
NUUwMDU3QjgwMyAvKiBvcGVudnJfZHJpdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OworICAgICAgICAgICAgICA4RTc5NDI5NTFGNkFGNzhEMDA1N0I4
MDMgLyogaXZyY2xpZW50Y29yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEU3OTQyNjQxRjZBRTlBQjAwNTdCODAzIC8qIGl2cmNsaWVudGNvcmUuaCAq
LzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTYxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24tZm9y
d2FyZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhF
Nzk0MjY2MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRzLmggKi87IH07CisgICAgICAg
ICAgICAgIDhFNzk0Mjk3MUY2QUY3OEQwMDU3QjgwMyAvKiBqc29uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2NzFGNkFFOUFCMDA1N0I4MDMg
LyoganNvbi5oICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5ODFGNkFGNzhEMDA1N0I4MDMg
LyogZGlydG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4RTc5NDI2RDFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmgg
Ki87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk5MUY2QUY3OEQwMDU3QjgwMyAvKiBlbnZ2YXJ0
b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhFNzk0MjZGMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCAqLzsg
fTsKKyAgICAgICAgICAgICAgOEU3OTQyOUExRjZBRjc4RDAwNTdCODAzIC8qIGhtZGVycm9yc19w
dWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhF
Nzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmggKi87IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjlCMUY2QUY3OEQwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3MzFG
NkFFOUFCMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5oICovOyB9OworICAgICAgICAgICAg
ICA4RTc5NDI5QzFGNkFGNzhEMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3NTFGNkFF
OUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmggKi87IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjlEMUY2QUY3OEQwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc3MUY2QUU5QUIw
MDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQy
OUUxRjZBRjc4RDAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzkxRjZBRTlBQjAwNTdC
ODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oICovOyB9OworLyogRW5kIFBCWEJ1aWxkRmls
ZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworICAg
ICAgICAgICAgICA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24uZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGgg
PSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291
cmNlVHJlZSA9IFNES1JPT1Q7IH07CisgICAgICAgICAgICAgIDhFNTMxNDJGMUY2RkVCQzgwMDcz
Qjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gRm91bmRhdGlv
bi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24u
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKyAgICAgICAgICAgICAgOEU1MzE0
MzExRjZGRUNBRTAwNzNCODk3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9
IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtp
dC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworICAgICAgICAgICAgICA4RTc5
NDI2MjFGNkFFOUFCMDA1N0I4MDMgLyogQ01ha2VMaXN0cy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ01ha2VMaXN0cy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjYzMUY2
QUU5QUIwMDU3QjgwMyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2NDFGNkFFOUFC
MDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBpdnJjbGllbnRjb3Jl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjY2MUY2
QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJqc29uLWZv
cndhcmRzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5
NDI2NzFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBqc29uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjY4MUY2QUU5QUIw
MDU3QjgwMyAvKiBqc29uY3BwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzb25jcHAuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2OTFGNkFFOUFC
MDA1N0I4MDMgLyogb3BlbnZyX2FwaV9wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gb3Bl
bnZyX2FwaV9wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAg
ICAgICA4RTc5NDI2QTFGNkFFOUFCMDA1N0I4MDMgLyogUkVBRE1FICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJFQURNRTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNkMxRjZBRTlBQjAw
NTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBkaXJ0b29s
c19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4
RTc5NDI2RDFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGRpcnRvb2xzX3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI2RTFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGVudnZhcnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjZGMUY2QUU5QUIwMDU3QjgwMyAv
KiBlbnZ2YXJ0b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZW52dmFydG9vbHNfcHVibGlj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjcwMUY2
QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IGhtZGVycm9yc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI3MTFGNkFFOUFCMDA1N0I4MDMgLyogaG1kZXJyb3JzX3B1YmxpYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBobWRlcnJvcnNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisgICAgICAgICAgICAgIDhFNzk0MjcyMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNf
cHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gcGF0aHRvb2xzX3B1YmxpYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjczMUY2QUU5QUIw
MDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhdGh0b29sc19w
dWJsaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQy
NzQxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3NTFGNkFFOUFCMDA1N0I4MDMgLyogc2hhcmVk
bGlidG9vbHNfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3NjFGNkFF
OUFCMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHN0
cnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAg
ICAgIDhFNzk0Mjc3MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gc3RydG9vbHNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Cisg
ICAgICAgICAgICAgIDhFNzk0Mjc4MUY2QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9w
dWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3OTFGNkFF
OUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHZy
cGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI3QjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IG9wZW52ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4
RTc5NDI3QzFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5jcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBvcGVudnJfYXBp
LmNzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3RDFG
NkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5qc29uICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5qc29uOyBwYXRoID0gb3BlbnZyX2FwaS5q
c29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3RTFG
NkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3BlbnZyX2Nh
cGkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyN0Yx
RjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3BlbnZy
X2RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5
NDI4NDFGNkFGNjJFMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IGxpYm9wZW52ci5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgxMUY2QUY2
MkUwMDU3QjgwMyAvKiBGcmFtZXdvcmtzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNh
ID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisgICAgICAgICAgICAgICAgICAgICBidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgPSAoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0MzIxRjZGRUNBRTAwNzNCODk3IC8qIEFw
cEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4RTUzMTQyRTFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0MzUx
RjcyRDU4NDAwNzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
CisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAgICAgICAgICAgIH07CisvKiBFbmQg
UEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhHcm91cCBz
ZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNTMxNDJDMUY2RkRFQjAwMDczQjg5NyAvKiBGcmFt
ZXdvcmtzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7CisgICAg
ICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTUzMTQzMTFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0LmZyYW1ld29yayAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZv
dW5kYXRpb24uZnJhbWV3b3JrICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNTMx
NDJGMUY2RkVCQzgwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKKyAgICAgICAg
ICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gRnJhbWV3b3JrczsK
KyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjVBMUY2QUU5NjYwMDU3QjgwMyA9IHsKKyAgICAg
ICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgY2hp
bGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0MkMxRjZGREVCMDAw
NzNCODk3IC8qIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyN0ExRjZBRjA1RTAwNTdCODAzIC8qIGhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyODUxRjZBRjYyRTAwNTdCODAzIC8qIFByb2R1Y3RzICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjYxMUY2QUU5QUIwMDU3QjgwMyAvKiBzcmMgKi8s
CisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNjEx
RjZBRTlBQjAwNTdCODAzIC8qIHNyYyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9
IFBCWEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyNjUxRjZBRTlBQjAwNTdCODAzIC8qIGpzb24gKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNkExRjZBRTlBQjAwNTdCODAzIC8qIFJF
QURNRSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2QjFGNkFFOUFCMDA1
N0I4MDMgLyogdnJjb21tb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQy
NjIxRjZBRTlBQjAwNTdCODAzIC8qIENNYWtlTGlzdHMudHh0ICovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDhFNzk0MjYzMUY2QUU5QUIwMDU3QjgwMyAvKiBJbmZvLnBsaXN0ICovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjY0MUY2QUU5QUIwMDU3QjgwMyAvKiBp
dnJjbGllbnRjb3JlLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjgx
RjZBRTlBQjAwNTdCODAzIC8qIGpzb25jcHAuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0MjY5MUY2QUU5QUIwMDU3QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAg
Ki8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9
IHNyYzsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjY1MUY2QUU5QUIwMDU3QjgwMyAvKiBq
c29uICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7CisgICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
RTc5NDI2NjFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi1mb3J3YXJkcy5oICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0MjY3MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLmggKi8s
CisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IGpz
b247CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI2QjFGNkFFOUFCMDA1N0I4MDMgLyogdnJj
b21tb24gKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAgICAg
ICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDhFNzk0MjZDMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuY3BwICovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZEMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0
b29sc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2RTFG
NkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNwcCAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4RTc5NDI2RjFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNf
cHVibGljLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzAxRjZBRTlB
QjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmgg
Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzIxRjZBRTlBQjAwNTdCODAz
IC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDhFNzk0MjczMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzQxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJl
ZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyNzUxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oICovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjc2MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0
b29sc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjc3
MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4RTc5NDI3ODFGNkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlf
cHVibGljLmNwcCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3OTFGNkFF
OUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggKi8sCisgICAgICAgICAgICAg
ICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHZyY29tbW9uOworICAgICAg
ICAgICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKyAgICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgICAgOEU3OTQyN0ExRjZBRjA1RTAwNTdCODAzIC8qIGhlYWRlcnMgKi8gPSB7
CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAgICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdCMUY2
QUYwNUUwMDU3QjgwMyAvKiBvcGVudnIuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI3QzFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5jcyAqLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4RTc5NDI3RDFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2Fw
aS5qc29uICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdFMUY2QUYwNUUw
MDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDhFNzk0MjdGMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfZHJpdmVyLmggKi8sCisgICAgICAg
ICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IGhlYWRlcnM7Cisg
ICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICA4RTc5NDI4NTFGNkFGNjJFMDA1N0I4MDMgLyogUHJvZHVjdHMg
Ki8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0
Mjg0MUY2QUY2MkUwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLywKKyAgICAgICAgICAgICAgICAg
ICAgICk7CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gUHJvZHVjdHM7CisgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAgICAgICAgICB9OworLyog
RW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ug
c2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MjFGNkFGNjJFMDA1N0I4MDMgLyogSGVh
ZGVycyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEhlYWRlcnNCdWlsZFBo
YXNlOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
KyAgICAgICAgICAgICAgICAgICAgIGZpbGVzID0gKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0Mjk4MUY2QUY3OEQwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuaCBpbiBIZWFk
ZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjk5MUY2QUY3OEQwMDU3
QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0MjlBMUY2QUY3OEQwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVi
bGljLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5
NTFGNkFGNzhEMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oIGluIEhlYWRlcnMgKi8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOTYxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24t
Zm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhF
Nzk0Mjk3MUY2QUY3OEQwMDU3QjgwMyAvKiBqc29uLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MjFGNkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyLmgg
aW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MzFGNkFG
NzFEMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0Mjk0MUY2QUY3MUQwMDU3QjgwMyAvKiBvcGVudnJfZHJpdmVy
LmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5QjFG
NkFGNzhEMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUMxRjZBRjc4RDAwNTdCODAzIC8qIHNoYXJl
ZGxpYnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOEU3OTQyOUQxRjZBRjc4RDAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oIGluIEhl
YWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUUxRjZBRjc4RDAw
NTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAg
ICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgUEJYSGVhZGVy
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2VjdGlv
biAqLworICAgICAgICAgICAgICA4RTc5NDI4MzFGNkFGNjJFMDA1N0I4MDMgLyogb3BlbnZyICov
ID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworICAgICAg
ICAgICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDhFNzk0Mjg2MUY2QUY2MkUw
MDU3QjgwMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAi
b3BlbnZyIiAqLzsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUGhhc2VzID0gKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgwMUY2QUY2MkUwMDU3QjgwMyAvKiBTb3VyY2Vz
ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgxMUY2QUY2MkUwMDU3Qjgw
MyAvKiBGcmFtZXdvcmtzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjgy
MUY2QUY2MkUwMDU3QjgwMyAvKiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgKTsK
KyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUnVsZXMgPSAoCisgICAgICAgICAgICAgICAgICAg
ICApOworICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzID0gKAorICAgICAgICAgICAg
ICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBvcGVudnI7CisgICAgICAg
ICAgICAgICAgICAgICBwcm9kdWN0TmFtZSA9IG9wZW52cjsKKyAgICAgICAgICAgICAgICAgICAg
IHByb2R1Y3RSZWZlcmVuY2UgPSA4RTc5NDI4NDFGNkFGNjJFMDA1N0I4MDMgLyogbGlib3BlbnZy
LmEgKi87CisgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJv
ZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKKyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBQQlhO
YXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8K
KyAgICAgICAgICAgICAgOEU3OTQyNUIxRjZBRTk2NjAwNTdCODAzIC8qIFByb2plY3Qgb2JqZWN0
ICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYUHJvamVjdDsKKyAgICAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGFzdFVwZ3JhZGVDaGVjayA9IDA4MzA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFy
Z2V0QXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyODMxRjZBRjYyRTAwNTdCODAzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gOC4zLjM7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aXNpb25pbmdTdHlsZSA9IEF1dG9tYXRp
YzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAg
ICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA4RTc5NDI1RTFGNkFFOTY2MDA1N0I4MDMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJvcGVudnIiICovOwor
ICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4yIjsK
KyAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKKyAgICAg
ICAgICAgICAgICAgICAgIGhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAwOworICAgICAgICAgICAg
ICAgICAgICAga25vd25SZWdpb25zID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
LAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG1haW5Hcm91
cCA9IDhFNzk0MjVBMUY2QUU5NjYwMDU3QjgwMzsKKyAgICAgICAgICAgICAgICAgICAgIHByb2R1
Y3RSZWZHcm91cCA9IDhFNzk0Mjg1MUY2QUY2MkUwMDU3QjgwMyAvKiBQcm9kdWN0cyAqLzsKKyAg
ICAgICAgICAgICAgICAgICAgIHByb2plY3REaXJQYXRoID0gIiI7CisgICAgICAgICAgICAgICAg
ICAgICBwcm9qZWN0Um9vdCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cyA9ICgK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4MzFGNkFGNjJFMDA1N0I4MDMgLyog
b3BlbnZyICovLAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgfTsKKy8q
IEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MDFGNkFGNjJFMDA1N0I4MDMgLyog
U291cmNlcyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWFNvdXJjZXNCdWls
ZFBoYXNlOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzID0gKAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0Mjg5MUY2QUY2RDMwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuY3BwIGlu
IFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOEExRjZBRjZE
MzAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4QjFGNkFGNkQzMDA1N0I4MDMgLyogaG1kZXJy
b3JzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI5MDFGNkFGNkVFMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgaW4gU291cmNlcyAqLywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MTFGNkFGNkVFMDA1N0I4MDMgLyog
b3BlbnZyX2FwaV9wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyOEMxRjZBRjZEMzAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOEQxRjZB
RjZEMzAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4RTFGNkFGNkQzMDA1N0I4MDMgLyog
c3RydG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0MjhGMUY2QUY2RDMwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMu
Y3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAg
ICAgICAgICAgcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAgICAg
ICAgICAgIH07CisvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBC
ZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0
MjVGMUY2QUU5NjYwMDU3QjgwMyAvKiBEZWJ1ZyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAg
IGlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRT
ZXR0aW5ncyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfU0VBUkNIX1BB
VEhTID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAg
ICBuYW1lID0gRGVidWc7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjYw
MUY2QUU5NjYwMDU3QjgwMyAvKiBSZWxlYXNlICovID0geworICAgICAgICAgICAgICAgICAgICAg
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAgICAgICAgICAgICAgICAgICBidWlsZFNl
dHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9TRUFSQ0hfUEFU
SFMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAg
IG5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI4
NzFGNkFGNjJFMDA1N0I4MDMgLyogRGVidWcgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkU2V0
dGluZ3MgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxXQVlTX1NFQVJDSF9VU0VS
X1BBVEhTID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQU5BTFlaRVJf
Tk9OTlVMTCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19BTkFMWVpF
Ul9OVU1CRVJfT0JKRUNUX0NPTlZFUlNJT04gPSBZRVNfQUdHUkVTU0lWRTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysr
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlF
UzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBO
TzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lP
TiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0NPTlNUQU5U
X0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FS
Tl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVTOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0lORklOSVRFX1JFQ1VSU0lP
TiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0lOVF9DT05W
RVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fT0JK
Q19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENM
QU5HX1dBUk5fU1VTUElDSU9VU19NT1ZFID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENPREVfU0lHTl9JREVOVElUWSA9ICItIjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDT1BZX1BIQVNFX1NUUklQID0gTk87CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gZHdhcmY7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUNVVEFCTEVfUFJFRklYID0gbGliOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX0RZTkFNSUNfTk9fUElDID0gTk87Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX05PX0NPTU1PTl9CTE9DS1MgPSBZRVM7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9
ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBPU0lYPTEiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT1NYPTEiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVlJfQVBJX1BVQkxJQz0xIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlBMQVRGT1JNX05BTUU9b3N4IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOXzY0X1RPXzMy
X0JJVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19X
QVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFU19BR0dSRVNT
SVZFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElP
TiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTlVTRURfVkFS
SUFCTEUgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUID0gMTAuMTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRMX0VOQUJM
RV9ERUJVR19JTkZPID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9OTFlfQUNU
SVZFX0FSQ0ggPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1RIRVJfQ1BMVVNQ
TFVTRkxBR1MgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkKE9USEVS
X0NGTEFHUykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLWZleGNlcHRp
b25zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU0RLUk9PVCA9IG1hY29zeDsKKyAgICAgICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gRGVidWc7CisgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgIDhFNzk0Mjg4MUY2QUY2MkUwMDU3QjgwMyAvKiBSZWxlYXNlICovID0gewor
ICAgICAgICAgICAgICAgICAgICAgaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAgICAg
ICAgICAgICAgICAgICBidWlsZFNldHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ0xBTkdfQU5BTFlaRVJfTlVNQkVSX09CSkVDVF9DT05WRVJTSU9OID0gWUVTX0FH
R1JFU1NJVkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQ1hYX0xBTkdVQUdF
X1NUQU5EQVJEID0gImdudSsrMHgiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5H
X0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xB
TkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xB
TkdfRU5BQkxFX09CSkNfQVJDID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xB
TkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVTX0VSUk9S
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRE9DVU1FTlRBVElPTl9D
T01NRU5UUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0VN
UFRZX0JPRFkgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9F
TlVNX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdf
V0FSTl9JTkZJTklURV9SRUNVUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX1NVU1BJQ0lPVVNfTU9WRSA9IFlFUzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZ
RVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01F
VEhPRF9NQVRDSCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0RFX1NJR05f
SURFTlRJVFkgPSAiLSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09QWV9QSEFTRV9T
VFJJUCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQlVHX0lORk9STUFUSU9O
X0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiUE9TSVg9MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJPU1g9MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJW
Ul9BUElfUFVCTElDPTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUExB
VEZPUk1fTkFNRT1vc3giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBZ
RVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZ
UEUgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5E
RUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0Nf
V0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JFU1NJVkU7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVExfRU5BQkxFX0RFQlVHX0lORk8gPSBOTzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICgKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQoT1RIRVJfQ0ZMQUdTKSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItZmV4Y2VwdGlvbnMiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
REtST09UID0gbWFjb3N4OworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAg
ICAgICAgIG5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9OworLyogRW5kIFhDQnVpbGRD
b25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKworLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBz
ZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjVFMUY2QUU5NjYwMDU3QjgwMyAvKiBCdWls
ZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIm9wZW52ciIgKi8gPSB7CisgICAg
ICAgICAgICAgICAgICAgICBpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworICAgICAgICAgICAg
ICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4RTc5NDI1RjFGNkFFOTY2MDA1N0I4MDMgLyogRGVidWcgKi8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOEU3OTQyNjAxRjZBRTk2NjAwNTdCODAzIC8qIFJlbGVhc2UgKi8sCisg
ICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbmZp
Z3VyYXRpb25Jc1Zpc2libGUgPSAwOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAg
OEU3OTQyODYxRjZBRjYyRTAwNTdCODAzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJvcGVudnIiICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODcxRjZBRjYy
RTAwNTdCODAzIC8qIERlYnVnICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0
Mjg4MUY2QUY2MkUwMDU3QjgwMyAvKiBSZWxlYXNlICovLAorICAgICAgICAgICAgICAgICAgICAg
KTsKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0g
MDsKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVh
c2U7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgWENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9u
ICovCisgICAgICAgfTsKKyAgICAgICByb290T2JqZWN0ID0gOEU3OTQyNUIxRjZBRTk2NjAwNTdC
ODAzIC8qIFByb2plY3Qgb2JqZWN0ICovOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODk2M2MyMGVhNzMw
ZTlmNjhiNzllM2I5ZDZmYWE5MzgzNGQ1OTVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSw5NCBA
QAorZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDk0
ZGUzY2UuLjZkZWNlZGQgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VM
aXN0cy50eHQKK0BAIC0xLDE0ICsxLDggQEAKKyAjIFNldCB0aGUgbWluaW11bSByZXF1aXJlZCB2
ZXJzaW9uIG9mIENNYWtlIGZvciB0aGlzIHByb2plY3QuCisgY21ha2VfbWluaW11bV9yZXF1aXJl
ZChWRVJTSU9OIDIuOCkKKyAKKy0jIFNldCBwcm9qZWN0IG5hbWUuCistcHJvamVjdChPcGVuVlJT
REspCistCisgIyBTZXR1cCBzb21lIG9wdGlvbnMuCisgb3B0aW9uKEJVSUxEX1NIQVJFRCAiQnVp
bGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYpCistb3B0aW9uKEJVSUxEX0ZS
QU1FV09SSyAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIGFuIGFwcGxlIEZyYW1ld29yayIgT0ZGKQor
LW9wdGlvbihCVUlMRF9VTklWRVJTQUwgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1ld29yayBh
cyBhIHVuaXZlcnNhbCAoZmF0LCAzMi0gJiA2NC1iaXQpIGJpbmFyeSIgT04pCistb3B0aW9uKEJV
SUxEX09TWF9JMzg2ICJCdWlsZHMgdGhlIHNoYXJlZCBvciBmcmFtZXdvcmsgYXMgYSAzMi1iaXQg
YmluYXJ5LCBldmVuIG9uIGEgNjQtYml0IHBsYXRmb3JtIiBPRkYpCisgb3B0aW9uKFVTRV9MSUJD
WFggIlVzZXMgbGliYysrIGluc3RlYWQgb2YgbGlic3RkYysrIiBPTikKKyBvcHRpb24oVVNFX0NV
U1RPTV9MSUJDWFggIlVzZXMgYSBjdXN0b20gbGliYysrIiBPRkYpCisgCitAQCAtMzcsMjEgKzMx
LDkgQEAgZWxzZWlmKEFQUExFKQorICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipE
YXJ3aW4uKiIgT1IgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipNYWNPUy4qIikKKyAgICAg
c2V0KFBMQVRGT1JNX05BTUUgIm9zeCIpCisgICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAtRFBP
U0lYKQorLSAgICBpZihCVUlMRF9VTklWRVJTQUwpCistICAgICAgc2V0KENNQUtFX09TWF9BUkNI
SVRFQ1RVUkVTICJpMzg2O3g4Nl82NCIpCistICAgIGVuZGlmKCkKKy0gICAgaWYoQlVJTERfT1NY
X0kzODYpCistICAgICAgc2V0KFBST0NFU1NPUl9BUkNIICIzMiIpCistICAgICAgc2V0KENNQUtF
X09TWF9BUkNISVRFQ1RVUkVTICJpMzg2IikKKy0gICAgZW5kaWYoKQorICAgZW5kaWYoKQorIGVu
ZGlmKCkKKyAKKy0jIFNldCBvdXRwdXQgZm9sZGVyIGZvciBzdGF0aWMgYW5kIHNoYXJlZCBsaWJy
YXJpZXMKKy1zZXQoQ01BS0VfTElCUkFSWV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfU09VUkNF
X0RJUn0vYmluLyR7UExBVEZPUk1fTkFNRX0ke1BST0NFU1NPUl9BUkNIfSkKKy1zZXQoQ01BS0Vf
QVJDSElWRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfU09VUkNFX0RJUn0vYmluLyR7UExBVEZP
Uk1fTkFNRX0ke1BST0NFU1NPUl9BUkNIfSkKKy1zZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRfRElS
RUNUT1JZICR7Q01BS0VfU09VUkNFX0RJUn0vYmluLyR7UExBVEZPUk1fTkFNRX0ke1BST0NFU1NP
Ul9BUkNIfSkKKy0KKyAjIEVuYWJsZSBzb21lIHByb3BlcnRpZXMuCisgaWYoQ01BS0VfQ09NUElM
RVJfSVNfR05VQ0MgT1IgQ01BS0VfQ19DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFuZyIpCisgICAg
ICAgICMgRW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hvdWxkbid0IGJlIHZp
c2libGUKK2RpZmYgLS1naXQgYS9zcmMvQ01ha2VMaXN0cy50eHQgYi9zcmMvQ01ha2VMaXN0cy50
eHQKK2luZGV4IDU4OTU0ZDYuLjhiNTM3YWYgMTAwNjQ0CistLS0gYS9zcmMvQ01ha2VMaXN0cy50
eHQKKysrKyBiL3NyYy9DTWFrZUxpc3RzLnR4dAorQEAgLTMsNiArMyw5IEBAIHByb2plY3Qob3Bl
bnZyX2FwaSkKKyAKKyBzZXQoIExJQk5BTUUgIm9wZW52cl9hcGkiICkKKyAKKytzZXQoRVhDRVBU
SU9OX0ZMQUdTICItZmV4Y2VwdGlvbnMiKQorK2FkZF9kZWZpbml0aW9ucygke0VYQ0VQVElPTl9G
TEFHU30pCisrCisgIyBTZXQgc29tZSBwcm9wZXJpZXMgZm9yIHNwZWNpZmljIGZpbGVzLgorIGlm
KEFQUExFKQorICAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQorQEAgLTIyLDcgKzI1LDcgQEAg
ZWxzZWlmKFdJTjMyKQorIGVuZGlmKCkKKyAKKyAjIEFkZCBpbmNsdWRlIGZvbGRlcnMuCistaW5j
bHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYyAke0NNQUtFX1NPVVJDRV9E
SVJ9L2hlYWRlcnMgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvdnJjb21tb24pCisraW5jbHVkZV9k
aXJlY3Rvcmllcygke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMvdnJjb21tb24pCisg
CisgaWYoVVNFX0NVU1RPTV9MSUJDWFgpCisgICAgICAgIGxpbmtfZGlyZWN0b3JpZXMoCitAQCAt
NjUsMjIgKzY4LDIyIEBAIGVsc2VpZihCVUlMRF9GUkFNRVdPUkspCisgICAgICAgIHNldCggTElC
TkFNRSAiT3BlblZSIiApCisgICAgICAgIGFkZF9saWJyYXJ5KCAke0xJQk5BTUV9IAorICAgICAg
ICAgICAgIFNIQVJFRCAke1NPVVJDRV9GSUxFU30KKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmgKKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L2hlYWRlcnMvb3BlbnZyX2FwaS5jcworLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
aGVhZGVycy9vcGVudnJfYXBpLmpzb24KKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L2hlYWRlcnMvb3BlbnZyX2NhcGkuaAorLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
aGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKysgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJ
Un0vLi4vaGVhZGVycy9vcGVudnIuaAorKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElS
fS8uLi9oZWFkZXJzL29wZW52cl9hcGkuY3MKKysgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNF
X0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKysgICAgICAgICAgICAke1BST0pFQ1Rf
U09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5oCisrICAgICAgICAgICAgJHtQUk9K
RUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oCisgICAgICAgICkKKyAg
ICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQUk9QRVJUSUVTCisgICAgICAgICAg
ICAgICBGUkFNRVdPUksgVFJVRQorICAgICAgICAgICAgICAgRlJBTUVXT1JLX1ZFUlNJT04gQQor
ICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVOVElGSUVSIGNvbS52YWx2ZXNvZnR3
YXJlLk9wZW5WUi5mcmFtZXdvcmsKKy0gICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdPUktfSU5G
T19QTElTVCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9JbmZvLnBsaXN0CisrICAgICAgICAgICAg
ICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3Ny
Yy9JbmZvLnBsaXN0CisgICAgICAgICAgICAgICAjICJjdXJyZW50IHZlcnNpb24iIGluIHNlbWFu
dGljIGZvcm1hdCBpbiBNYWNoLU8gYmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgIFZFUlNJT04g
MS4wLjYKKyAgICAgICAgICAgICAgICMgImNvbXBhdGliaWxpdHkgdmVyc2lvbiIgaW4gc2VtYW50
aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQorICAgICAgICAgICAgICAgU09WRVJTSU9O
IDEuMC4wCistICAgICAgICAgICAgICBQVUJMSUNfSEVBREVSICIke0NNQUtFX1NPVVJDRV9ESVJ9
L2hlYWRlcnMvb3BlbnZyLmg7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGku
Y3M7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuanNvbjske0NNQUtFX1NP
VVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGkuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRl
cnMvb3BlbnZyX2RyaXZlci5oIgorKyAgICAgICAgICAgICAgUFVCTElDX0hFQURFUiAiJHtQUk9K
RUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmg7JHtQUk9KRUNUX1NPVVJDRV9ESVJ9
Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jczske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVy
cy9vcGVudnJfYXBpLmpzb247JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZy
X2NhcGkuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgi
CisgICAgICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCisgICAgICAgICkKKyBlbHNlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ1MGU2ODk4ZjllM2JmYWQzNmQ3OGU5M2Y4NmMwMzU5YTA0NjAzZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAg
KzEsOTkgQEAKKyMgUHJvamVjdCBuYW1lLgorcHJvamVjdChvcGVudnJfYXBpKQorCitzZXQoIExJ
Qk5BTUUgIm9wZW52cl9hcGkiICkKKworc2V0KEVYQ0VQVElPTl9GTEFHUyAiLWZleGNlcHRpb25z
IikKK2FkZF9kZWZpbml0aW9ucygke0VYQ0VQVElPTl9GTEFHU30pCisKKyMgU2V0IHNvbWUgcHJv
cGVyaWVzIGZvciBzcGVjaWZpYyBmaWxlcy4KK2lmKEFQUExFKQorICBzZXQoQ01BS0VfTUFDT1NY
X1JQQVRIIDEpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkRhcndpbiIpCisgICAg
c2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKHZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3Bw
IHZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgUFJPUEVSVElFUyBDT01QSUxFX0ZM
QUdTICIteCBvYmplY3RpdmUtYysrIikKKyAgZW5kaWYoKQorICBpZihCVUlMRF9TSEFSRUQgT1Ig
QlVJTERfRlJBTUVXT1JLKQorICAgIGZpbmRfbGlicmFyeShGT1VOREFUSU9OX0ZSQU1FV09SSyBG
b3VuZGF0aW9uKQorICAgIG1hcmtfYXNfYWR2YW5jZWQoRk9VTkRBVElPTl9GUkFNRVdPUkspCisg
ICAgc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJTfSAke0ZPVU5EQVRJT05fRlJBTUVXT1JLfSkK
KyAgZW5kaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09SSykKK2Vsc2VpZihXSU4zMikK
KyAgaWYoQ01BS0VfU0laRU9GX1ZPSURfUCBFUVVBTCA4KQorICAgIGFkZF9kZWZpbml0aW9ucygg
LURXSU42NCApCisgICAgc2V0KCBMSUJOQU1FICJvcGVudnJfYXBpNjQiICkKKyAgZW5kaWYoKQor
ZW5kaWYoKQorCisjIEFkZCBpbmNsdWRlIGZvbGRlcnMuCitpbmNsdWRlX2RpcmVjdG9yaWVzKCR7
UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRl
cnMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy92cmNvbW1vbikKKworaWYoVVNFX0NVU1RP
TV9MSUJDWFgpCisgICAgICAgbGlua19kaXJlY3RvcmllcygKKyAgICAgICAgICAgICAgJHtMSUJD
WFhfTElCX0RJUn0KKyAgICAgICApCitlbmRpZigpCisKKyMgU2V0IHRoZSBzb3VyY2UgZ3JvdXAg
YW5kIGZpbGVzLgorc2V0KENPUkVfRklMRVMKKyAgICAgICBvcGVudnJfYXBpX3B1YmxpYy5jcHAK
KyAgICAgICBqc29uY3BwLmNwcAorKQorc2V0KFZSQ09NTU9OX0ZJTEVTCisgICAgICAgdnJjb21t
b24vZGlydG9vbHNfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL2VudnZhcnRvb2xzX3B1Ymxp
Yy5jcHAKKyAgICAgICB2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcAorICAgICAgIHZyY29t
bW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9obWRlcnJvcnNf
cHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAKKyAg
ICAgICB2cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuY3BwCispCisKK3NldChTT1VSQ0VfRklMRVMK
KyAgICAgICAke0NPUkVfRklMRVN9CisgICAgICAgJHtWUkNPTU1PTl9GSUxFU30KKykKKworc291
cmNlX2dyb3VwKCJTcmMiIEZJTEVTCisgICAgICAgJHtDT1JFX0ZJTEVTfQorKQorCitzb3VyY2Vf
Z3JvdXAoIlZSQ29tbW9uIiBGSUxFUworICAgICAgICR7VlJDT01NT05fRklMRVN9CispCisKKyMg
QnVpbGQgdGhlIGxpYnJhcnkuCitpZihCVUlMRF9TSEFSRUQpCisgICAgICAgYWRkX2xpYnJhcnko
JHtMSUJOQU1FfSBTSEFSRUQgJHtTT1VSQ0VfRklMRVN9KQorZWxzZWlmKEJVSUxEX0ZSQU1FV09S
SykKKyAgICAgICBzZXQoIExJQk5BTUUgIk9wZW5WUiIgKQorICAgICAgIGFkZF9saWJyYXJ5KCAk
e0xJQk5BTUV9IAorICAgICAgICAgICAgU0hBUkVEICR7U09VUkNFX0ZJTEVTfQorICAgICAgICAg
ICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmgKKyAgICAgICAgICAg
ICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuY3MKKyAgICAgICAg
ICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorICAg
ICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2NhcGkuaAor
ICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZl
ci5oCisgICAgICAgKQorICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhPcGVuVlIgUFJPUEVS
VElFUworICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQorICAgICAgICAgICAgICBGUkFNRVdP
UktfVkVSU0lPTiBBCisgICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdPUktfSURFTlRJRklFUiBj
b20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrCisgICAgICAgICAgICAgIE1BQ09TWF9G
UkFNRVdPUktfSU5GT19QTElTVCAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjL0luZm8ucGxp
c3QKKyAgICAgICAgICAgICAgIyAiY3VycmVudCB2ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQg
aW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgIFZFUlNJT04gMS4wLjYKKyAgICAg
ICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4g
TWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgIFNPVkVSU0lPTiAxLjAuMAorICAgICAg
ICAgICAgICBQVUJMSUNfSEVBREVSICIke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9v
cGVudnIuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmNzOyR7
UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbjske1BST0pFQ1Rf
U09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7UFJPSkVDVF9TT1VSQ0VfRElS
fS8uLi9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCIKKyAgICAgICAgICAgICAgTElOS0VSX0xBTkdV
QUdFIENYWAorICAgICAgICkKK2Vsc2UoKQorICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFNRX0g
U1RBVElDICR7U09VUkNFX0ZJTEVTfSkKK2VuZGlmKCkKKworaWYoVVNFX0NVU1RPTV9MSUJDWFgp
CisgICAgICAgc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJTfSBjKysgYysrYWJpKQorZW5kaWYo
KQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoJHtMSUJOQU1FfSAke0VYVFJBX0xJQlN9KQorCitp
bnN0YWxsKFRBUkdFVFMgJHtMSUJOQU1FfSBERVNUSU5BVElPTiBsaWIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0luZm8ucGxpc3QgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL0luZm8ucGxpc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlNTY5ODA4N2YwOTM5MTQ1OGJi
MTk3YWQ4ZDgxN2VlZGViODI2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvSW5mby5wbGlzdApAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUv
L0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxp
c3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorICAgICAgIDxrZXk+
Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisgICAgICAgPHN0cmluZz5jb20udmFsdmVzb2Z0d2Fy
ZS5PcGVuVlIuZnJhbWV3b3JrPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZUluZm9EaWN0
aW9uYXJ5VmVyc2lvbjwva2V5PgorICAgICAgIDxzdHJpbmc+Ni4wPC9zdHJpbmc+CisgICAgICAg
PGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKyAgICAgICA8c3RyaW5nPk9wZW5WUjwvc3RyaW5nPgor
ICAgICAgIDxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgorICAgICAgIDxzdHJpbmc+Rk1X
Szwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4K
KyAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVWZXJzaW9u
PC9rZXk+CisgICAgICAgPHN0cmluZz4xLjA8L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL1JFQURNRSBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNmM1OGRhNzlmYjk0ZTAy
ZGNmZWNkMjZhNWU1NTJkOWFhNThhYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL1JFQURNRQpAQCAtMCwwICsxLDM5IEBACitUaGlzIGlzIHRoZSBzb3Vy
Y2UgY29kZSBmb3IgdGhlIE9wZW5WUiBBUEkgY2xpZW50IGJpbmRpbmcgbGlicmFyeSB3aGljaCBj
b25uZWN0cworT3BlblZSIGFwcGxpY2F0aW9ucyB0byB0aGUgU3RlYW1WUiBydW50aW1lLCB0YWtp
bmcgaW50byBhY2NvdW50IHRoZSB2ZXJzaW9uCitvZiB0aGUgT3BlblZSIGludGVyZmFjZSB0aGV5
IHdlcmUgY29tcGlsZWQgYWdhaW5zdC4KKworVGhlIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkgLSBv
cGVudnJfYXBpLmRsbCBvbiBXaW5kb3dzLCBvcGVudnJfYXBpLnNvIG9uCitMaW51eCwgYW5kIG9w
ZW52cl9hcGkuZHlsaWIgb3IgT3BlblZSLmZyYW1ld29yayBvbiBtYWNPUyAtIGtub3dzIGhvdyB0
byBmaW5kCithbmQgcmVhZCB0aGUgU3RlYW1WUiBydW50aW1lIGluc3RhbGxhdGlvbiBpbmZvcm1h
dGlvbiB3aGljaCBhbGxvd3MgaXQgdG8KK2ZpbmQgYW5kIGR5bmFtaWNhbGx5IGNvbm5lY3QgdG8g
dGhlIGluc3RhbGxlZCBydW50aW1lLiBJbiBjb21iaW5hdGlvbiB3aXRoIHRoZQoraW50ZXJmYWNl
IHZlcnNpb24gaWRlbnRpZmllcnMgZnJvbSAvaW5jbHVkZS9vcGVudnIuaCB3aGljaCBhcmUgYmFr
ZWQKK2ludG8gYXBwbGljYXRpb25zIGF0IHRoZSB0aW1lIHRoZXkgYXJlIGJ1aWx0LCB0aGUgT3Bl
blZSIEFQSSBjbGllbnQKK2JpbmRpbmcgbGlicmFyeSBjYXB0dXJlcyBhbmQgY29udmV5cyB0byB0
aGUgU3RlYW1WUiBydW50aW1lIHRoZSB2ZXJzaW9uCitvZiB0aGUgT3BlblZSIEFQSSBpbnRlcmZh
Y2UgYmVoYXZpb3IgdGhhdCB0aGUgYXBwbGljYXRpb24gZXhwZWN0cy4KKworQXBwbGljYXRpb25z
IGNhcnJ5IHdpdGggdGhlbSBhIHByaXZhdGUvbG9jYWwgY29weSBvZiB0aGUgY2xpZW50IGJpbmRp
bmcKK2xpYnJhcnkgd2hlbiB0aGV5IHNoaXAsIGFuZCB0aGV5IHNob3VsZCBpbnN0YWxsIGl0IGxv
Y2FsbHkgdG8gdGhlaXIKK2FwcGxpY2F0aW9uLiAgQXBwbGljYXRpb25zIHNob3VsZCBub3QgaW5z
dGFsbCB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQorZ2xvYmFsbHkgb3IgYXR0ZW1wdCB0byBs
aW5rIHRvIGEgZ2xvYmFsbHkgaW5zdGFsbGVkIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkuCitEb2lu
ZyBzbyBuZWdhdGVzIGF0IGxlYXN0IHBhcnQgb2YgdGhlIGFiaWxpdHkgZm9yIHRoZSBjbGllbnQg
YmluZGluZyBsaWJyYXJ5Cit0byBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhlIHZlcnNpb24gb2YgdGhl
IE9wZW5WUiBBUEkgdGhhdCB0aGUgYXBwbGljYXRpb24KK3dhcyBidWlsdCBhZ2FpbnN0LCBhbmQg
c28gaGluZGVycyBjb21wYXRpYmlsaXR5IHN1cHBvcnQgaW4gdGhlIGZhY2Ugb2YKK0FQSSBjaGFu
Z2VzLgorCitNb3N0IGFwcGxpY2F0aW9ucyBzaG91bGQgc2ltcGx5IGxpbmsgdG8gYW5kIHJlZGlz
dHJpYnV0ZSB3aXRoIHRoZWlyIGFwcGxpY2F0aW9uCit0aGUgcHJlLWJ1aWx0IGNsaWVudCBiaW5k
aW5nIGxpYnJhcnkgZm91bmQgaW4gdGhlIC9iaW4gZGlyZWN0b3J5IG9mIHRoaXMKK3JlcG9zaXRv
cnkuIFNvbWUgc21hbGwgbnVtYmVyIG9mIGFwcGxpY2F0aW9ucyB3aGljaCBoYXZlIHNwZWNpZmlj
IHJlcXVpcmVtZW50cworYXJvdW5kIHJlZGlzdHJpYnV0aW5nIG9ubHkgYmluYXJpZXMgdGhleSBi
dWlsZCB0aGVtc2VsdmVzIHNob3VsZCBidWlsZAordGhlIGNsaWVudCBsaWJyYXJ5IGZyb20gdGhp
cyBzb3VyY2UgYW5kIGVpdGhlciBzdGF0aWNhbGx5IGxpbmsgaXQgaW50bwordGhlaXIgYXBwbGlj
YXRpb24gb3IgcmVkaXN0cmlidXRlIHRoZSBiaW5hcnkgdGhleSBidWlsZC4KKworVGhpcyBpcyBh
IGNtYWtlIHByb2plY3QsIHRvIGJ1aWxkIGl0IHVzZSB0aGUgdmVyc2lvbiBvZiBjbWFrZSBhcHBy
b3ByaWF0ZQorZm9yIHlvdXIgcGxhdGZvcm0uIEZvciBleGFtcGxlLCB0byBidWlsZCBvbiBhIFBP
U0lYIHN5c3RlbSBzaW1wbHkgcGVyZm9ybQorCisgIGNkIHNyYzsgbWtkaXIgX2J1aWxkOyBjZCBf
YnVpbGQ7IGNtYWtlIC4uOyBtYWtlCisKK2FuZCB5b3Ugd2lsbCBlbmQgdXAgd2l0aCB0aGUgc3Rh
dGljIGxpYnJhcnkgL3NyYy9iaW4vPGFyY2g+L2xpYm9wZW52cl9hcGkuYQorCitUbyBidWlsZCBh
IHNoYXJlZCBsaWJyYXJ5LCBwYXNzIC1EQlVJTERfU0hBUkVEPTEgdG8gY21ha2UuCitUbyBidWls
ZCBhcyBhIGZyYW1ld29yayBvbiBhcHBsZSBwbGF0Zm9ybXMsIHBhc3MgLURCVUlMRF9GUkFNRVdP
Uks9MSB0byBjbWFrZS4KK1RvIHNlZSBhIGNvbXBsZXRlIGxpc3Qgb2YgY29uZmlndXJhYmxlIGJ1
aWxkIG9wdGlvbnMsIHVzZSBgY21ha2UgLUxBSGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy9pdnJjbGllbnRjb3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFmZTM2MGVlNGFkNTJjODc5OTBjMjUx
NzQ2ZjAxY2I4OWJiZjAwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8vPT09PT09PT09IENv
cHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisK
K25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJDbGllbnRDb3JlCit7CitwdWJsaWM6CisgICAg
ICAgLyoqIEluaXRpYWxpemVzIHRoZSBzeXN0ZW0gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRF
cnJvciBJbml0KCB2cjo6RVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0
IGNoYXIgKnBTdGFydHVwSW5mbyApID0gMDsKKworICAgICAgIC8qKiBjbGVhbnMgdXAgZXZlcnl0
aGluZyBpbiB2cmNsaWVudC5kbGwgYW5kIHByZXBhcmVzIHRoZSBETEwgdG8gYmUgdW5sb2FkZWQg
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ2xlYW51cCgpID0gMDsKKworICAgICAgIC8qKiBjaGVj
a3MgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgaW50ZXJmYWNlL3ZlcnNpb24gaXMgc3VwcG9ydGVk
IGluIHRoaXMgdnJjbGllbnQuZGxsICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSXNJ
bnRlcmZhY2VWZXJzaW9uVmFsaWQoIGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24gKSA9
IDA7CisKKyAgICAgICAvKiogUmV0cmlldmVzIGFueSBpbnRlcmZhY2UgZnJvbSB2cmNsaWVudC5k
bGwgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgKkdldEdlbmVyaWNJbnRlcmZhY2UoIGNvbnN0IGNo
YXIgKnBjaE5hbWVBbmRWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKSA9IDA7CisKKyAg
ICAgICAvKiogUmV0dXJucyB0cnVlIGlmIGFueSBkcml2ZXIgaGFzIGFuIEhNRCBhdHRhY2hlZC4g
Q2FuIGJlIGNhbGxlZCBvdXRzaWRlIG9mIEluaXQvQ2xlYW51cCAqLworICAgICAgIHZpcnR1YWwg
Ym9vbCBCSXNIbWRQcmVzZW50KCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYW4gRW5nbGlz
aCBlcnJvciBzdHJpbmcgZnJvbSBpbnNpZGUgdnJjbGllbnQuZGxsIHdoaWNoIG1pZ2h0IGJlIG5l
d2VyIHRoYW4gdGhlIEFQSSBETEwgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEVu
Z2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyBhbiBlcnJvciBzeW1ib2wgZnJvbSBpbnNpZGUgdnJjbGllbnQu
ZGxsIHdoaWNoIG1pZ2h0IGJlIG5ld2VyIHRoYW4gdGhlIEFQSSBETEwgKi8KKyAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKkdldElERm9yVlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVy
cm9yICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJDbGllbnRDb3Jl
X1ZlcnNpb24gPSAiSVZSQ2xpZW50Q29yZV8wMDMiOworCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJkcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMGM3
ZGU5NzY0YjQyMTgyYjAxN2Y3MGVlMDA5MzFiZjZlNDkwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJkcy5oCkBAIC0wLDAg
KzEsMjg0IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGZvcndhcmQgaGVhZGVyIChodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2Vk
IHdpdGggI2luY2x1ZGUgImpzb24vanNvbi1mb3J3YXJkcy5oIgorLy8vIFRoaXMgaGVhZGVyIHBy
b3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9yIGFsbCBKc29uQ3BwIHR5cGVzLgorCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKy8qCitUaGUgSnNvbkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUs
IGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiwgCit0ZXN0cyBhbmQgZGVtb25z
dHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCitj
b25kaXRpb25zLi4uCisKK1RoZSBhdXRob3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRs
eSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK2p1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2du
aXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1cmlzZGljdGlvbnMsIAordGhpcyBzb2Z0
d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMgRG9tYWluLgorCitJbiBqdXJpc2RpY3Rp
b25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBH
ZXJtYW55IGFzIG9mCisyMDEwKSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDct
MjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBpcworcmVsZWFzZWQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KKworSW4ganVyaXNkaWN0aW9ucyB3
aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAK
K3NvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9t
YWluLCAyKSB1bmRlciB0aGUgCitjb25kaXRpb25zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJl
bG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9mIGR1YWwgCitQdWJsaWMgRG9tYWluL01JVCBM
aWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhlcmUsIGFzIHRoZXkgY2hvb3NlLgorCitUaGUg
TUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2UgdG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vu
c2UgY2FuIGdldCwgYW5kIGlzCitkZXNjcmliZWQgaW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6
CisKKyAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKKyAgIAorVGhl
IGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9sbG93czoKKworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKworUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KK29idGFp
bmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
CitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwKK21vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcworb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNP
RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
CitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTCitCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KK0FDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCitDT05ORUNUSU9OIFdJ
VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZU
V0FSRS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorKEVORCBMSUNFTlNFIFRFWFQpCisKK1RoZSBNSVQgbGlj
ZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0aGUgR1BMIGFuZCBjb21tZXJjaWFsCitzb2Z0
d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhlIHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdp
dGggdGhlCittaW5vciBudWlzYW5jZSBvZiBiZWluZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlCithbmQgbGljZW5zZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4g
Tm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRoZQorUHVibGljIERvbWFpbiAibGljZW5zZSIg
eW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1c2luZyB3aGF0ZXZlcgorbGljZW5zZSB5b3Ug
bGlrZS4KKworKi8KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKyNpZm5kZWYgSlNPTl9GT1JX
QVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECisjIGRlZmluZSBKU09OX0ZPUldBUkRfQU1BTEdBVEVE
X0hfSU5DTFVERUQKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZp
bGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24u
CisjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJl
Z2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25maWcuaAorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgor
Ly8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVz
aXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmls
ZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3Jn
ZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fQ09ORklHX0hfSU5DTFVERUQKKyNkZWZpbmUg
SlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQg
anNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJhcnkuCisvLyMgZGVmaW5lIEpT
T05fSU5fQ1BQVEwgMQorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQganNvbiBtYXkg
bGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQorLy8v
IElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3RvciBiYXNlZCBtYXAgc2hvdWxk
IGJlIHVzZWQgaW5zdGVhZCBvZgorLy8vIHN0ZDo6bWFwCisvLy8gYXMgVmFsdWUgY29udGFpbmVy
LgorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAgMQorCisvLyBJZiBub24temVy
bywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9ydCBiYWQgaW5wdXQgaW5zdGVh
ZCBvZiBDCisvLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVsdCBpcyB0byB1c2UgZXhjZXB0
aW9ucy4KKyNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCisjZGVmaW5lIEpTT05fVVNFX0VYQ0VQ
VElPTiAxCisjZW5kaWYKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRoZSBzb3Vy
Y2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHByaXZhdGUgaGVhZGVyIGluY2x1
c2lvbi4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmluZWQgaW4gdGhlIGdl
bmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgorLy8gI2RlZmluZSBKU09OX0lTX0FNQUxHQU1BVElP
TgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2NvbmZpZy5oPgorI2lm
bmRlZiBKU09OX1VTRV9DUFBUTAorI2RlZmluZSBKU09OX1VTRV9DUFBUTCAxCisjZW5kaWYKKyNl
bmRpZgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2RlZmluZSBKU09OX0FQSSBDUFBUTF9BUEkK
KyNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNk
ZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElT
QUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVS
KQorI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2RlZmlu
ZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNBQkxF
X0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCisj
ZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAorI2lmICFkZWZpbmVkKEpTT05fQVBJKQorI2Rl
ZmluZSBKU09OX0FQSQorI2VuZGlmCisKKy8vIElmIEpTT05fTk9fSU5UNjQgaXMgZGVmaW5lZCwg
dGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBmb3IKKy8vIGludGVnZXIKKy8v
IFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQgaXMgZGlzYWJsZWQuCisvLyAj
ZGVmaW5lIEpTT05fTk9fSU5UNjQgMQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTVNWQwor
IyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKKyAgICAvLyBNaWNyb3NvZnQgVmlzdWFs
IFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20gX19pbnQ2NCB0byBkb3VibGUK
KyAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9faW50NjQpLgorIyAgICBkZWZp
bmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQorICAgIC8vIERpc2FibGUgd2Fy
bmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRpZmllciB3YXMgdHJ1bmNhdGVk
IHRvICcyNTUnCisgICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVidWcgaW5mb3JtYXRpb24pCisg
ICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGggVlM2IHdlcmUgdXNpbmcgdGhp
cyBnbG9iYWxseSAobm90IGJvdGhlcmluZworICAgIC8vIHdpdGggcHJhZ21hIHB1c2gvcG9wKS4K
KyMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCisjICBlbmRpZiAvLyBNU1ZDIDYK
KworIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgKKyAgICAvLy8gSW5kaWNhdGVz
IHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgorIyAgICBkZWZpbmUg
SlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNzYWdl
KSkKKyMgIGVuZGlmCisKKyNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQorCisKKyNpZm5kZWYg
SlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9N
U0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9S
RUZFUkVOQ0VTIDEKKyNlbmRpZiAvLyBNU1ZDID49IDIwMTAKKworI2lmZGVmIF9fY2xhbmdfXwor
I2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2VzKQorI2RlZmluZSBKU09OX0hB
U19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIGhhc19mZWF0dXJlCisKKyNlbGlmIGRl
ZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcg
ZW11bGF0ZXMgZ2NjKQorI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pIHx8
IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJF
TkNFUyAxCisjZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKKworI2VuZGlmIC8vIF9fY2xhbmdf
XyB8fCBfX0dOVUNfXworCisjZW5kaWYgLy8gbm90IGRlZmluZWQgSlNPTl9IQVNfUlZBTFVFX1JF
RkVSRU5DRVMKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworI2RlZmluZSBK
U09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCisjZW5kaWYKKworI2lmZGVmIF9fY2xhbmdfXwor
I2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5j
ZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjICBpZiAoX19HTlVDX18gPiA0IHx8IChfX0dOVUNfXyA9
PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQorIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNB
VEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRlZChtZXNzYWdlKSkpCisjICBl
bGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0g
MSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRl
X18oKF9fZGVwcmVjYXRlZF9fKSkKKyMgIGVuZGlmICAvLyBHTlVDIHZlcnNpb24KKyNlbmRpZiAv
LyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2lmICFkZWZpbmVkKEpTT05DUFBfREVQUkVDQVRF
RCkKKyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpCisjZW5kaWYgLy8gaWYgIWRl
ZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorCituYW1lc3BhY2UgSnNvbiB7Cit0eXBlZGVmIGlu
dCBJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OworI2lmIGRlZmluZWQoSlNPTl9OT19J
TlQ2NCkKK3R5cGVkZWYgaW50IExhcmdlc3RJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBMYXJn
ZXN0VUludDsKKyN1bmRlZiBKU09OX0hBU19JTlQ2NAorI2Vsc2UgICAgICAgICAgICAgICAgIC8v
IGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKy8vIEZvciBNaWNyb3NvZnQgVmlzdWFsIHVzZSBz
cGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBvcnRlZAorI2lmIGRlZmluZWQo
X01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCit0eXBlZGVmIF9faW50NjQgSW50
NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0OworI2Vsc2UgICAgICAgICAgICAg
ICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBsYXRmb3JtcywgdXNlIGxvbmcg
bG9uZwordHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwordHlwZWRlZiB1bnNpZ25lZCBsb25n
IGxvbmcgaW50IFVJbnQ2NDsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQordHlwZWRl
ZiBJbnQ2NCBMYXJnZXN0SW50OwordHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJbnQ7CisjZGVmaW5l
IEpTT05fSEFTX0lOVDY0CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorfSAv
LyBlbmQgbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05fQ09ORklHX0hfSU5DTFVERUQK
KworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9q
c29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZm9yd2Fy
ZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBk
b21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24u
CisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNw
cC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fRk9SV0FSRFNfSF9JTkNM
VURFRAorI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpT
T05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1lc3BhY2UgSnNvbiB7CisKKy8vIHdy
aXRlci5oCitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5bGVkV3JpdGVyOworCisvLyByZWFk
ZXIuaAorY2xhc3MgUmVhZGVyOworCisvLyBmZWF0dXJlcy5oCitjbGFzcyBGZWF0dXJlczsKKwor
Ly8gdmFsdWUuaAordHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJbmRleDsKK2NsYXNzIFN0YXRp
Y1N0cmluZzsKK2NsYXNzIFBhdGg7CitjbGFzcyBQYXRoQXJndW1lbnQ7CitjbGFzcyBWYWx1ZTsK
K2NsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworY2xhc3MgVmFsdWVJdGVyYXRvcjsKK2NsYXNzIFZh
bHVlQ29uc3RJdGVyYXRvcjsKKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisjZW5kaWYgLy8gSlNP
Tl9GT1JXQVJEU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250
ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
KworCisKKworI2VuZGlmIC8vaWZuZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FURURfSF9JTkNMVURF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24uaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI3
ZjY1ZDlkZmE4NTM2YzM1ZmY0N2RlMDg0ZmVjZTc4OThhYjFlMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLmgKQEAgLTAsMCArMSwyMDc3
IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291cmNl
Zm9yZ2UubmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRl
ICJqc29uL2pzb24uaCIKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRl
bnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKgorVGhlIEpzb25DcHAg
bGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50YXRp
b24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGljYXRpb25zLCBhcmUgbGljZW5zZWQg
dW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgorCitUaGUgYXV0aG9yIChCYXB0aXN0
ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNvcHlyaWdodCBpbiBhbGwgCitqdXJp
c2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBqdXJp
c2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGljIERv
bWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1YmxpYyBE
b21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgorMjAxMCksIHRoaXMgc29mdHdhcmUg
aXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQgaXMK
K3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyku
CisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVy
dHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkgY2hvb3NlIHRvIGFjY2VwdCBpdCBl
aXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIgdGhlIAorY29uZGl0aW9ucyBvZiB0
aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiBkdWFs
IAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRpb25zIGRlc2NyaWJlZCBoZXJlLCBh
cyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlzIGFib3V0IGFzIGNsb3NlIHRvIFB1
YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFuZCBpcworZGVzY3JpYmVkIGluIGNs
ZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtp
L01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZvbGxv
d3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBp
biB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCittb2RpZnksIG1lcmdlLCBwdWJsaXNo
LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKK29mIHRoZSBTb2Z0
d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworQkUgTElBQkxFIEZP
UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCitB
Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyhFTkQgTElDRU5T
RSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggdGhlIEdQ
TCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGluZyBvbmUgYWxsIG9mIHRoZSByaWdo
dHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3IgbnVpc2FuY2Ugb2YgYmVpbmcgcmVx
dWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZQorYW5kIGxpY2Vuc2UgdGV4
dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0IGJ5IGFjY2VwdGluZyB0aGUKK1B1
YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGljZW5zZSB5b3VyIGNvcHkgdXNpbmcg
d2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisK
KworCisjaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVERUQKKyMgZGVmaW5lIEpTT05fQU1B
TEdBVEVEX0hfSU5DTFVERUQKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291
cmNlIGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNs
dXNpb24uCisjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92ZXJzaW9uLmgK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKworLy8gRE8gTk9UIEVESVQuIFRoaXMgZmlsZSAoYW5kICJ2ZXJz
aW9uIikgaXMgZ2VuZXJhdGVkIGJ5IENNYWtlLgorLy8gUnVuIENNYWtlIGNvbmZpZ3VyZSBzdGVw
IHRvIHVwZGF0ZSBpdC4KKyNpZm5kZWYgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKyMgZGVmaW5l
IEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisKKyMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9TVFJJ
TkcgIjEuNi41IgorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX01BSk9SIDEKKyMgZGVmaW5lIEpT
T05DUFBfVkVSU0lPTl9NSU5PUiA2CisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fUEFUQ0ggNQor
IyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1FVQUxJRklFUgorIyBkZWZpbmUgSlNPTkNQUF9WRVJT
SU9OX0hFWEEgKChKU09OQ1BQX1ZFUlNJT05fTUFKT1IgPDwgMjQpIHwgKEpTT05DUFBfVkVSU0lP
Tl9NSU5PUiA8PCAxNikgfCAoSlNPTkNQUF9WRVJTSU9OX1BBVENIIDw8IDgpKQorCisjZW5kaWYg
Ly8gSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9m
IGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZlcnNpb24uaAorLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQg
b2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENv
cHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRl
ciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2du
aXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFp
bCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNp
Zm5kZWYgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0NPTkZJR19IX0lOQ0xV
REVECisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIGxpYnJhcnkgaXMgZW1i
ZWRkZWQgaW4gQ3BwVEwgbGlicmFyeS4KKy8vIyBkZWZpbmUgSlNPTl9JTl9DUFBUTCAxCisKKy8v
LyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIG1heSBsZXZlcmFnZSBDcHBUTCBsaWJy
YXJ5CisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTCAxCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNh
dGVzIHRoYXQgY3BwdGwgdmVjdG9yIGJhc2VkIG1hcCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9m
CisvLy8gc3RkOjptYXAKKy8vLyBhcyBWYWx1ZSBjb250YWluZXIuCisvLyMgIGRlZmluZSBKU09O
X1VTRV9DUFBUTF9TTUFMTE1BUCAxCisKKy8vIElmIG5vbi16ZXJvLCB0aGUgbGlicmFyeSB1c2Vz
IGV4Y2VwdGlvbnMgdG8gcmVwb3J0IGJhZCBpbnB1dCBpbnN0ZWFkIG9mIEMKKy8vIGFzc2VydGlv
biBtYWNyb3MuIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSBleGNlcHRpb25zLgorI2lmbmRlZiBKU09O
X1VTRV9FWENFUFRJT04KKyNkZWZpbmUgSlNPTl9VU0VfRVhDRVBUSU9OIDEKKyNlbmRpZgorCisv
Ly8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRl
ZAorLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorLy8vIFJlbWFya3M6
IGl0IGlzIGF1dG9tYXRpY2FsbHkgZGVmaW5lZCBpbiB0aGUgZ2VuZXJhdGVkIGFtYWxnYXRlZCBo
ZWFkZXIuCisvLyAjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKyNpZmRlZiBKU09OX0lO
X0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY29uZmlnLmg+CisjaWZuZGVmIEpTT05fVVNFX0NQUFRM
CisjZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBKU09O
X0lOX0NQUFRMCisjZGVmaW5lIEpTT05fQVBJIENQUFRMX0FQSQorI2VsaWYgZGVmaW5lZChKU09O
X0RMTF9CVUlMRCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2RlZmluZSBKU09OX0FQSSBfX2Rl
Y2xzcGVjKGRsbGV4cG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0Vf
V0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCisjZWxpZiBkZWZpbmVkKEpT
T05fRExMKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEpTT05fQVBJIF9fZGVjbHNw
ZWMoZGxsaW1wb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNlbmRpZiAvLyBpZmRlZiBKU09O
X0lOX0NQUFRMCisjaWYgIWRlZmluZWQoSlNPTl9BUEkpCisjZGVmaW5lIEpTT05fQVBJCisjZW5k
aWYKKworLy8gSWYgSlNPTl9OT19JTlQ2NCBpcyBkZWZpbmVkLCB0aGVuIEpzb24gb25seSBzdXBw
b3J0IEMrKyAiaW50IiB0eXBlIGZvcgorLy8gaW50ZWdlcgorLy8gU3RvcmFnZXMsIGFuZCA2NCBi
aXRzIGludGVnZXIgc3VwcG9ydCBpcyBkaXNhYmxlZC4KKy8vICNkZWZpbmUgSlNPTl9OT19JTlQ2
NCAxCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNU1ZDCisjICBpZiBfTVNDX1ZFUiA8PSAx
MjAwIC8vIE1TVkMgNgorICAgIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYgb25seSBzdXBw
b3J0IGNvbnZlcnNpb24gZnJvbSBfX2ludDY0IHRvIGRvdWJsZQorICAgIC8vIChubyBjb252ZXJz
aW9uIGZyb20gdW5zaWduZWQgX19pbnQ2NCkuCisjICAgIGRlZmluZSBKU09OX1VTRV9JTlQ2NF9E
T1VCTEVfQ09OVkVSU0lPTiAxCisgICAgLy8gRGlzYWJsZSB3YXJuaW5nIDQ3ODYgZm9yIFZTNiBj
YXVzZWQgYnkgU1RMIChpZGVudGlmaWVyIHdhcyB0cnVuY2F0ZWQgdG8gJzI1NScKKyAgICAvLyBj
aGFyYWN0ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbikKKyAgICAvLyBBbGwgcHJvamVjdHMg
SSd2ZSBldmVyIHNlZW4gd2l0aCBWUzYgd2VyZSB1c2luZyB0aGlzIGdsb2JhbGx5IChub3QgYm90
aGVyaW5nCisgICAgLy8gd2l0aCBwcmFnbWEgcHVzaC9wb3ApLgorIyAgICBwcmFnbWEgd2Fybmlu
ZyhkaXNhYmxlIDogNDc4NikKKyMgIGVuZGlmIC8vIE1TVkMgNgorCisjICBpZiBfTVNDX1ZFUiA+
PSAxNTAwIC8vIE1TVkMgMjAwOAorICAgIC8vLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZm9sbG93aW5n
IGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQo
bWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3NhZ2UpKQorIyAgZW5kaWYKKworI2Vu
ZGlmIC8vIGRlZmluZWQoX01TQ19WRVIpCisKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUworCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTYwMCAvLyBN
U1ZDID49IDIwMTAKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMQorI2VuZGlm
IC8vIE1TVkMgPj0gMjAxMAorCisjaWZkZWYgX19jbGFuZ19fCisjaWYgX19oYXNfZmVhdHVyZShj
eHhfcnZhbHVlX3JlZmVyZW5jZXMpCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VT
IDEKKyNlbmRpZiAgLy8gaGFzX2ZlYXR1cmUKKworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBu
b3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjaWYg
ZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykgfHwgKF9fY3BsdXNwbHVzID49IDIw
MTEwM0wpCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAgLy8g
R1hYX0VYUEVSSU1FTlRBTAorCisjZW5kaWYgLy8gX19jbGFuZ19fIHx8IF9fR05VQ19fCisKKyNl
bmRpZiAvLyBub3QgZGVmaW5lZCBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworCisjaWZuZGVm
IEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTIDAKKyNlbmRpZgorCisjaWZkZWYgX19jbGFuZ19fCisjZWxpZiBkZWZpbmVkIF9fR05V
Q19fIC8vIG5vdCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVtdWxhdGVzIGdj
YykKKyMgIGlmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9S
X18gPj0gNSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgIF9fYXR0
cmlidXRlX18gKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyMgIGVsaWYgKF9fR05VQ19fID4gMyB8
fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSkKKyMgICAgZGVmaW5lIEpT
T05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18p
KQorIyAgZW5kaWYgIC8vIEdOVUMgdmVyc2lvbgorI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dO
VUNfXworCisjaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorI2RlZmluZSBKU09OQ1BQ
X0RFUFJFQ0FURUQobWVzc2FnZSkKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJF
Q0FURUQpCisKK25hbWVzcGFjZSBKc29uIHsKK3R5cGVkZWYgaW50IEludDsKK3R5cGVkZWYgdW5z
aWduZWQgaW50IFVJbnQ7CisjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQordHlwZWRlZiBpbnQg
TGFyZ2VzdEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IExhcmdlc3RVSW50OworI3VuZGVmIEpT
T05fSEFTX0lOVDY0CisjZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQorLy8gRm9yIE1pY3Jvc29mdCBWaXN1YWwgdXNlIHNwZWNpZmljIHR5cGVzIGFzIGxv
bmcgbG9uZyBpcyBub3Qgc3VwcG9ydGVkCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTWljcm9z
b2Z0IFZpc3VhbCBTdHVkaW8KK3R5cGVkZWYgX19pbnQ2NCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWdu
ZWQgX19pbnQ2NCBVSW50NjQ7CisjZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChf
TVNDX1ZFUikgLy8gT3RoZXIgcGxhdGZvcm1zLCB1c2UgbG9uZyBsb25nCit0eXBlZGVmIGxvbmcg
bG9uZyBpbnQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgVUludDY0Owor
I2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCit0eXBlZGVmIEludDY0IExhcmdlc3RJbnQ7
Cit0eXBlZGVmIFVJbnQ2NCBMYXJnZXN0VUludDsKKyNkZWZpbmUgSlNPTl9IQVNfSU5UNjQKKyNl
bmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit9IC8vIGVuZCBuYW1lc3BhY2UgSnNv
bgorCisjZW5kaWYgLy8gSlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBv
ZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0
cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFu
ZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VO
U0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9M
SUNFTlNFCisKKyNpZm5kZWYgSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisjZGVmaW5lIEpTT05f
Rk9SV0FSRFNfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFM
R0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8gd3JpdGVyLmgKK2NsYXNzIEZhc3RX
cml0ZXI7CitjbGFzcyBTdHlsZWRXcml0ZXI7CisKKy8vIHJlYWRlci5oCitjbGFzcyBSZWFkZXI7
CisKKy8vIGZlYXR1cmVzLmgKK2NsYXNzIEZlYXR1cmVzOworCisvLyB2YWx1ZS5oCit0eXBlZGVm
IHVuc2lnbmVkIGludCBBcnJheUluZGV4OworY2xhc3MgU3RhdGljU3RyaW5nOworY2xhc3MgUGF0
aDsKK2NsYXNzIFBhdGhBcmd1bWVudDsKK2NsYXNzIFZhbHVlOworY2xhc3MgVmFsdWVJdGVyYXRv
ckJhc2U7CitjbGFzcyBWYWx1ZUl0ZXJhdG9yOworY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yOwor
Cit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBKU09OX0ZPUldBUkRTX0hfSU5DTFVE
RUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVk
ZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9m
ZWF0dXJlcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFw
dGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVi
bGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGlj
dGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9q
c29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQVExfSlNPTl9GRUFU
VVJFU19IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAor
CisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiZm9yd2FyZHMu
aCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworbmFtZXNw
YWNlIEpzb24geworCisvKiogXGJyaWVmIENvbmZpZ3VyYXRpb24gcGFzc2VkIHRvIHJlYWRlciBh
bmQgd3JpdGVyLgorICogVGhpcyBjb25maWd1cmF0aW9uIG9iamVjdCBjYW4gYmUgdXNlZCB0byBm
b3JjZSB0aGUgUmVhZGVyIG9yIFdyaXRlcgorICogdG8gYmVoYXZlIGluIGEgc3RhbmRhcmQgY29u
Zm9ybWluZyB3YXkuCisgKi8KK2NsYXNzIEpTT05fQVBJIEZlYXR1cmVzIHsKK3B1YmxpYzoKKyAg
LyoqIFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBhbGxvd3MgYWxsIGZlYXR1cmVzIGFuZCBh
c3N1bWVzIGFsbCBzdHJpbmdzCisgICAqIGFyZSBVVEYtOC4KKyAgICogLSBDICYgQysrIGNvbW1l
bnRzIGFyZSBhbGxvd2VkCisgICAqIC0gUm9vdCBvYmplY3QgY2FuIGJlIGFueSBKU09OIHZhbHVl
CisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBlbmNvZGVkIGluIFVURi04CisgICAq
LworICBzdGF0aWMgRmVhdHVyZXMgYWxsKCk7CisKKyAgLyoqIFxicmllZiBBIGNvbmZpZ3VyYXRp
b24gdGhhdCBpcyBzdHJpY3RseSBjb21wYXRpYmxlIHdpdGggdGhlIEpTT04KKyAgICogc3BlY2lm
aWNhdGlvbi4KKyAgICogLSBDb21tZW50cyBhcmUgZm9yYmlkZGVuLgorICAgKiAtIFJvb3Qgb2Jq
ZWN0IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4KKyAgICogLSBB
c3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVuY29kZWQgaW4gVVRGLTgKKyAgICovCisgIHN0YXRp
YyBGZWF0dXJlcyBzdHJpY3RNb2RlKCk7CisKKyAgLyoqIFxicmllZiBJbml0aWFsaXplIHRoZSBj
b25maWd1cmF0aW9uIGxpa2UgSnNvbkNvbmZpZzo6YWxsRmVhdHVyZXM7CisgICAqLworICBGZWF0
dXJlcygpOworCisgIC8vLyBcYyB0cnVlIGlmIGNvbW1lbnRzIGFyZSBhbGxvd2VkLiBEZWZhdWx0
OiBcYyB0cnVlLgorICBib29sIGFsbG93Q29tbWVudHNfOworCisgIC8vLyBcYyB0cnVlIGlmIHJv
b3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiBEZWZhdWx0OiBc
YworICAvLy8gZmFsc2UuCisgIGJvb2wgc3RyaWN0Um9vdF87CisKKyAgLy8vIFxjIHRydWUgaWYg
ZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVycyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgZmFsc2Uu
CisgIGJvb2wgYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc187CisKKyAgLy8vIFxjIHRydWUg
aWYgbnVtZXJpYyBvYmplY3Qga2V5IGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxzZS4KKyAg
Ym9vbCBhbGxvd051bWVyaWNLZXlzXzsKK307CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworI2Vu
ZGlmIC8vIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAorLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5n
IG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZhbHVlLmgKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNP
Tl9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNs
dWRlICJmb3J3YXJkcy5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFU
SU9OKQorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8ZXhj
ZXB0aW9uPgorCisjaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisjaW5jbHVkZSA8bWFw
PgorI2Vsc2UKKyNpbmNsdWRlIDxjcHB0bC9zbWFsbG1hcC5oPgorI2VuZGlmCisjaWZkZWYgSlNP
Tl9VU0VfQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9mb3J3YXJkcy5oPgorI2VuZGlmCisKKy8vIERp
c2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVtYmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUg
ZGxsLWludGVyZmFjZSB0bworLy8gYmUgdXNlZCBieS4uLgorI2lmIGRlZmluZWQoSlNPTkNQUF9E
SVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3By
YWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQ
UF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworLyoqIFxicmllZiBKU09OIChKYXZh
U2NyaXB0IE9iamVjdCBOb3RhdGlvbikuCisgKi8KK25hbWVzcGFjZSBKc29uIHsKKworLyoqIEJh
c2UgY2xhc3MgZm9yIGFsbCBleGNlcHRpb25zIHdlIHRocm93LgorICoKKyAqIFdlIHVzZSBub3Ro
aW5nIGJ1dCB0aGVzZSBpbnRlcm5hbGx5LiBPZiBjb3Vyc2UsIFNUTCBjYW4gdGhyb3cgb3RoZXJz
LgorICovCitjbGFzcyBKU09OX0FQSSBFeGNlcHRpb24gOiBwdWJsaWMgc3RkOjpleGNlcHRpb24g
eworcHVibGljOgorICBFeGNlcHRpb24oc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7CisgIH5FeGNl
cHRpb24oKSB0aHJvdygpOworICBjaGFyIGNvbnN0KiB3aGF0KCkgY29uc3QgdGhyb3coKTsKK3By
b3RlY3RlZDoKKyAgc3RkOjpzdHJpbmcgbXNnXzsKK307CisKKy8qKiBFeGNlcHRpb25zIHdoaWNo
IHRoZSB1c2VyIGNhbm5vdCBlYXNpbHkgYXZvaWQuCisgKgorICogRS5nLiBvdXQtb2YtbWVtb3J5
ICh3aGVuIHdlIHVzZSBtYWxsb2MpLCBzdGFjay1vdmVyZmxvdywgbWFsaWNpb3VzIGlucHV0Cisg
KiAKKyAqIFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgorICovCitjbGFzcyBK
U09OX0FQSSBSdW50aW1lRXJyb3IgOiBwdWJsaWMgRXhjZXB0aW9uIHsKK3B1YmxpYzoKKyAgUnVu
dGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworfTsKKworLyoqIEV4Y2VwdGlvbnMg
dGhyb3duIGJ5IEpTT05fQVNTRVJUL0pTT05fRkFJTCBtYWNyb3MuCisgKgorICogVGhlc2UgYXJl
IHByZWNvbmRpdGlvbi12aW9sYXRpb25zICh1c2VyIGJ1Z3MpIGFuZCBpbnRlcm5hbCBlcnJvcnMg
KG91ciBidWdzKS4KKyAqIAorICogXHJlbWFyayBkZXJpdmVkIGZyb20gSnNvbjo6RXhjZXB0aW9u
CisgKi8KK2NsYXNzIEpTT05fQVBJIExvZ2ljRXJyb3IgOiBwdWJsaWMgRXhjZXB0aW9uIHsKK3B1
YmxpYzoKKyAgTG9naWNFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKTsKK307CisKKy8vLyB1
c2VkIGludGVybmFsbHkKK3ZvaWQgdGhyb3dSdW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3Qm
IG1zZyk7CisvLy8gdXNlZCBpbnRlcm5hbGx5Cit2b2lkIHRocm93TG9naWNFcnJvcihzdGQ6OnN0
cmluZyBjb25zdCYgbXNnKTsKKworLyoqIFxicmllZiBUeXBlIG9mIHRoZSB2YWx1ZSBoZWxkIGJ5
IGEgVmFsdWUgb2JqZWN0LgorICovCitlbnVtIFZhbHVlVHlwZSB7CisgIG51bGxWYWx1ZSA9IDAs
IC8vLzwgJ251bGwnIHZhbHVlCisgIGludFZhbHVlLCAgICAgIC8vLzwgc2lnbmVkIGludGVnZXIg
dmFsdWUKKyAgdWludFZhbHVlLCAgICAgLy8vPCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlCisgIHJl
YWxWYWx1ZSwgICAgIC8vLzwgZG91YmxlIHZhbHVlCisgIHN0cmluZ1ZhbHVlLCAgIC8vLzwgVVRG
LTggc3RyaW5nIHZhbHVlCisgIGJvb2xlYW5WYWx1ZSwgIC8vLzwgYm9vbCB2YWx1ZQorICBhcnJh
eVZhbHVlLCAgICAvLy88IGFycmF5IHZhbHVlIChvcmRlcmVkIGxpc3QpCisgIG9iamVjdFZhbHVl
ICAgIC8vLzwgb2JqZWN0IHZhbHVlIChjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMpLgor
fTsKKworZW51bSBDb21tZW50UGxhY2VtZW50IHsKKyAgY29tbWVudEJlZm9yZSA9IDAsICAgICAg
Ly8vPCBhIGNvbW1lbnQgcGxhY2VkIG9uIHRoZSBsaW5lIGJlZm9yZSBhIHZhbHVlCisgIGNvbW1l
bnRBZnRlck9uU2FtZUxpbmUsIC8vLzwgYSBjb21tZW50IGp1c3QgYWZ0ZXIgYSB2YWx1ZSBvbiB0
aGUgc2FtZSBsaW5lCisgIGNvbW1lbnRBZnRlciwgLy8vPCBhIGNvbW1lbnQgb24gdGhlIGxpbmUg
YWZ0ZXIgYSB2YWx1ZSAob25seSBtYWtlIHNlbnNlIGZvcgorICAvLy8gcm9vdCB2YWx1ZSkKKyAg
bnVtYmVyT2ZDb21tZW50UGxhY2VtZW50Cit9OworCisvLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwK
Ky8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBjaGFyICo+IEVudW1NZW1i
ZXJOYW1lczsKKy8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBWYWx1ZSAm
PiBFbnVtVmFsdWVzOworLy8jIGVuZGlmCisKKy8qKiBcYnJpZWYgTGlnaHR3ZWlnaHQgd3JhcHBl
ciB0byB0YWcgc3RhdGljIHN0cmluZy4KKyAqCisgKiBWYWx1ZSBjb25zdHJ1Y3RvciBhbmQgb2Jq
ZWN0VmFsdWUgbWVtYmVyIGFzc2lnbmVtZW50IHRha2VzIGFkdmFudGFnZSBvZiB0aGUKKyAqIFN0
YXRpY1N0cmluZyBhbmQgYXZvaWQgdGhlIGNvc3Qgb2Ygc3RyaW5nIGR1cGxpY2F0aW9uIHdoZW4g
c3RvcmluZyB0aGUKKyAqIHN0cmluZyBvciB0aGUgbWVtYmVyIG5hbWUuCisgKgorICogRXhhbXBs
ZSBvZiB1c2FnZToKKyAqIFxjb2RlCisgKiBKc29uOjpWYWx1ZSBhVmFsdWUoIFN0YXRpY1N0cmlu
Zygic29tZSB0ZXh0IikgKTsKKyAqIEpzb246OlZhbHVlIG9iamVjdDsKKyAqIHN0YXRpYyBjb25z
dCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOworICogb2JqZWN0W2NvZGVdID0gMTIzNDsKKyAq
IFxlbmRjb2RlCisgKi8KK2NsYXNzIEpTT05fQVBJIFN0YXRpY1N0cmluZyB7CitwdWJsaWM6Cisg
IGV4cGxpY2l0IFN0YXRpY1N0cmluZyhjb25zdCBjaGFyKiBjenN0cmluZykgOiBjX3N0cl8oY3pz
dHJpbmcpIHt9CisKKyAgb3BlcmF0b3IgY29uc3QgY2hhciooKSBjb25zdCB7IHJldHVybiBjX3N0
cl87IH0KKworICBjb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0IHsgcmV0dXJuIGNfc3RyXzsgfQor
Citwcml2YXRlOgorICBjb25zdCBjaGFyKiBjX3N0cl87Cit9OworCisvKiogXGJyaWVmIFJlcHJl
c2VudHMgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiB2YWx1ZS4KKyAq
CisgKiBUaGlzIGNsYXNzIGlzIGEgZGlzY3JpbWluYXRlZCB1bmlvbiB3cmFwcGVyIHRoYXQgY2Fu
IHJlcHJlc2VudHMgYToKKyAqIC0gc2lnbmVkIGludGVnZXIgW3JhbmdlOiBWYWx1ZTo6bWluSW50
IC0gVmFsdWU6Om1heEludF0KKyAqIC0gdW5zaWduZWQgaW50ZWdlciAocmFuZ2U6IDAgLSBWYWx1
ZTo6bWF4VUludCkKKyAqIC0gZG91YmxlCisgKiAtIFVURi04IHN0cmluZworICogLSBib29sZWFu
CisgKiAtICdudWxsJworICogLSBhbiBvcmRlcmVkIGxpc3Qgb2YgVmFsdWUKKyAqIC0gY29sbGVj
dGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzIChqYXZhc2NyaXB0IG9iamVjdCkKKyAqCisgKiBUaGUg
dHlwZSBvZiB0aGUgaGVsZCB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBhICNWYWx1ZVR5cGUgYW5k
CisgKiBjYW4gYmUgb2J0YWluZWQgdXNpbmcgdHlwZSgpLgorICoKKyAqIFZhbHVlcyBvZiBhbiAj
b2JqZWN0VmFsdWUgb3IgI2FycmF5VmFsdWUgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIG9wZXJhdG9y
W10oKQorICogbWV0aG9kcy4KKyAqIE5vbi1jb25zdCBtZXRob2RzIHdpbGwgYXV0b21hdGljYWxs
eSBjcmVhdGUgdGhlIGEgI251bGxWYWx1ZSBlbGVtZW50CisgKiBpZiBpdCBkb2VzIG5vdCBleGlz
dC4KKyAqIFRoZSBzZXF1ZW5jZSBvZiBhbiAjYXJyYXlWYWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2Fs
bHkgcmVzaXplZCBhbmQgaW5pdGlhbGl6ZWQKKyAqIHdpdGggI251bGxWYWx1ZS4gcmVzaXplKCkg
Y2FuIGJlIHVzZWQgdG8gZW5sYXJnZSBvciB0cnVuY2F0ZSBhbiAjYXJyYXlWYWx1ZS4KKyAqCisg
KiBUaGUgZ2V0KCkgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBvYnRhaW4gZGVmYXVsdCB2YWx1ZSBp
biB0aGUgY2FzZSB0aGUKKyAqIHJlcXVpcmVkIGVsZW1lbnQgZG9lcyBub3QgZXhpc3QuCisgKgor
ICogSXQgaXMgcG9zc2libGUgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIGEgI29iamVjdFZh
bHVlIHZhbHVlcyB1c2luZworICogdGhlIGdldE1lbWJlck5hbWVzKCkgbWV0aG9kLgorICoKKyAq
IFxub3RlICNWYWx1ZSBzdHJpbmctbGVuZ3RoIGZpdCBpbiBzaXplX3QsIGJ1dCBrZXlzIG11c3Qg
YmUgPCAyXjMwLgorICogKFRoZSByZWFzb24gaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLikg
QSAjQ2hhclJlYWRlciB3aWxsIHJhaXNlIGFuCisgKiBleGNlcHRpb24gaWYgYSBib3VuZCBpcyBl
eGNlZWRlZCB0byBhdm9pZCBzZWN1cml0eSBob2xlcyBpbiB5b3VyIGFwcCwKKyAqIGJ1dCB0aGUg
VmFsdWUgQVBJIGRvZXMgKm5vdCogY2hlY2sgYm91bmRzLiBUaGF0IGlzIHRoZSByZXNwb25zaWJp
bGl0eQorICogb2YgdGhlIGNhbGxlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWUgeworICBm
cmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitwdWJsaWM6CisgIHR5cGVkZWYgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+IE1lbWJlcnM7CisgIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBpdGVy
YXRvcjsKKyAgdHlwZWRlZiBWYWx1ZUNvbnN0SXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisgIHR5
cGVkZWYgSnNvbjo6VUludCBVSW50OworICB0eXBlZGVmIEpzb246OkludCBJbnQ7CisjaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKKyAgdHlwZWRlZiBKc29uOjpVSW50NjQgVUludDY0OworICB0
eXBlZGVmIEpzb246OkludDY0IEludDY0OworI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCisgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJnZXN0SW50OworICB0eXBlZGVmIEpz
b246Okxhcmdlc3RVSW50IExhcmdlc3RVSW50OworICB0eXBlZGVmIEpzb246OkFycmF5SW5kZXgg
QXJyYXlJbmRleDsKKworICBzdGF0aWMgY29uc3QgVmFsdWUmIG51bGw7ICAvLy88IFdlIHJlZ3Jl
dCB0aGlzIHJlZmVyZW5jZSB0byBhIGdsb2JhbCBpbnN0YW5jZTsgcHJlZmVyIHRoZSBzaW1wbGVy
IFZhbHVlKCkuCisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVsbFJlZjsgIC8vLzwganVzdCBhIGts
dWRnZSBmb3IgYmluYXJ5LWNvbXBhdGliaWxpdHk7IHNhbWUgYXMgbnVsbAorICAvLy8gTWluaW11
bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1
ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWluTGFyZ2VzdEludDsKKyAgLy8vIE1heGlt
dW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFs
dWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0SW50IG1heExhcmdlc3RJbnQ7CisgIC8vLyBNYXhp
bXVtIHVuc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0VUludCBtYXhMYXJnZXN0VUludDsKKworICAv
Ly8gTWluaW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246
OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50IG1pbkludDsKKyAgLy8vIE1heGltdW0gc2lnbmVk
IGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGlj
IGNvbnN0IEludCBtYXhJbnQ7CisgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIGludCB2YWx1ZSB0aGF0
IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IFVJbnQgbWF4
VUludDsKKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIC8vLyBNaW5pbXVtIHNpZ25l
ZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4K
KyAgc3RhdGljIGNvbnN0IEludDY0IG1pbkludDY0OworICAvLy8gTWF4aW11bSBzaWduZWQgNjQg
Yml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0
YXRpYyBjb25zdCBJbnQ2NCBtYXhJbnQ2NDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQgNjQgYml0
cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRp
YyBjb25zdCBVSW50NjQgbWF4VUludDY0OworI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCisKK3ByaXZhdGU6CisjaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJ
T04KKyAgY2xhc3MgQ1pTdHJpbmcgeworICBwdWJsaWM6CisgICAgZW51bSBEdXBsaWNhdGlvblBv
bGljeSB7CisgICAgICBub0R1cGxpY2F0aW9uID0gMCwKKyAgICAgIGR1cGxpY2F0ZSwKKyAgICAg
IGR1cGxpY2F0ZU9uQ29weQorICAgIH07CisgICAgQ1pTdHJpbmcoQXJyYXlJbmRleCBpbmRleCk7
CisgICAgQ1pTdHJpbmcoY2hhciBjb25zdCogc3RyLCB1bnNpZ25lZCBsZW5ndGgsIER1cGxpY2F0
aW9uUG9saWN5IGFsbG9jYXRlKTsKKyAgICBDWlN0cmluZyhDWlN0cmluZyBjb25zdCYgb3RoZXIp
OworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgQ1pTdHJpbmcoQ1pTdHJpbmcm
JiBvdGhlcik7CisjZW5kaWYKKyAgICB+Q1pTdHJpbmcoKTsKKyAgICBDWlN0cmluZyYgb3BlcmF0
b3I9KENaU3RyaW5nIG90aGVyKTsKKyAgICBib29sIG9wZXJhdG9yPChDWlN0cmluZyBjb25zdCYg
b3RoZXIpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3I9PShDWlN0cmluZyBjb25zdCYgb3RoZXIp
IGNvbnN0OworICAgIEFycmF5SW5kZXggaW5kZXgoKSBjb25zdDsKKyAgICAvL2NvbnN0IGNoYXIq
IGNfc3RyKCkgY29uc3Q7IC8vLzwgXGRlcHJlY2F0ZWQKKyAgICBjaGFyIGNvbnN0KiBkYXRhKCkg
Y29uc3Q7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgYm9vbCBpc1N0YXRpY1N0
cmluZygpIGNvbnN0OworCisgIHByaXZhdGU6CisgICAgdm9pZCBzd2FwKENaU3RyaW5nJiBvdGhl
cik7CisKKyAgICBzdHJ1Y3QgU3RyaW5nU3RvcmFnZSB7CisgICAgICB1bnNpZ25lZCBwb2xpY3lf
OiAyOworICAgICAgdW5zaWduZWQgbGVuZ3RoXzogMzA7IC8vIDFHQiBtYXgKKyAgICB9OworCisg
ICAgY2hhciBjb25zdCogY3N0cl87ICAvLyBhY3R1YWxseSwgYSBwcmVmaXhlZCBzdHJpbmcsIHVu
bGVzcyBwb2xpY3kgaXMgbm9EdXAKKyAgICB1bmlvbiB7CisgICAgICBBcnJheUluZGV4IGluZGV4
XzsKKyAgICAgIFN0cmluZ1N0b3JhZ2Ugc3RvcmFnZV87CisgICAgfTsKKyAgfTsKKworcHVibGlj
OgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICB0eXBlZGVmIHN0ZDo6bWFwPENa
U3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOworI2Vsc2UKKyAgdHlwZWRlZiBDcHBUTDo6U21h
bGxNYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7CisjZW5kaWYgLy8gaWZuZGVmIEpT
T05fVVNFX0NQUFRMX1NNQUxMTUFQCisjZW5kaWYgLy8gaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xV
REVfSU1QTEVNRU5UQVRJT04KKworcHVibGljOgorICAvKiogXGJyaWVmIENyZWF0ZSBhIGRlZmF1
bHQgVmFsdWUgb2YgdGhlIGdpdmVuIHR5cGUuCisKKyAgICBUaGlzIGlzIGEgdmVyeSB1c2VmdWwg
Y29uc3RydWN0b3IuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5IGFycmF5LCBwYXNzIGFycmF5VmFs
dWUuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5IG9iamVjdCwgcGFzcyBvYmplY3RWYWx1ZS4KKyAg
ICBBbm90aGVyIFZhbHVlIGNhbiB0aGVuIGJlIHNldCB0byB0aGlzIG9uZSBieSBhc3NpZ25tZW50
LgorVGhpcyBpcyB1c2VmdWwgc2luY2UgY2xlYXIoKSBhbmQgcmVzaXplKCkgd2lsbCBub3QgYWx0
ZXIgdHlwZXMuCisKKyAgICBFeGFtcGxlczoKK1xjb2RlCitKc29uOjpWYWx1ZSBudWxsX3ZhbHVl
OyAvLyBudWxsCitKc29uOjpWYWx1ZSBhcnJfdmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSk7IC8vIFtd
CitKc29uOjpWYWx1ZSBvYmpfdmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpOyAvLyB7fQorXGVuZGNv
ZGUKKyAgKi8KKyAgVmFsdWUoVmFsdWVUeXBlIHR5cGUgPSBudWxsVmFsdWUpOworICBWYWx1ZShJ
bnQgdmFsdWUpOworICBWYWx1ZShVSW50IHZhbHVlKTsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQorICBWYWx1ZShJbnQ2NCB2YWx1ZSk7CisgIFZhbHVlKFVJbnQ2NCB2YWx1ZSk7CisjZW5k
aWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgVmFsdWUoZG91YmxlIHZhbHVlKTsK
KyAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUpOyAvLy88IENvcHkgdGlsIGZpcnN0IDAuIChOVUxM
IGNhdXNlcyB0byBzZWctZmF1bHQuKQorICBWYWx1ZShjb25zdCBjaGFyKiBiZWdpbiwgY29uc3Qg
Y2hhciogZW5kKTsgLy8vPCBDb3B5IGFsbCwgaW5jbCB6ZXJvZXMuCisgIC8qKiBcYnJpZWYgQ29u
c3RydWN0cyBhIHZhbHVlIGZyb20gYSBzdGF0aWMgc3RyaW5nLgorCisgICAqIExpa2Ugb3RoZXIg
dmFsdWUgc3RyaW5nIGNvbnN0cnVjdG9yIGJ1dCBkbyBub3QgZHVwbGljYXRlIHRoZSBzdHJpbmcg
Zm9yCisgICAqIGludGVybmFsIHN0b3JhZ2UuIFRoZSBnaXZlbiBzdHJpbmcgbXVzdCByZW1haW4g
YWxpdmUgYWZ0ZXIgdGhlIGNhbGwgdG8gdGhpcworICAgKiBjb25zdHJ1Y3Rvci4KKyAgICogXG5v
dGUgVGhpcyB3b3JrcyBvbmx5IGZvciBudWxsLXRlcm1pbmF0ZWQgc3RyaW5ncy4gKFdlIGNhbm5v
dCBjaGFuZ2UgdGhlCisgICAqICAgc2l6ZSBvZiB0aGlzIGNsYXNzLCBzbyB3ZSBoYXZlIG5vd2hl
cmUgdG8gc3RvcmUgdGhlIGxlbmd0aCwKKyAgICogICB3aGljaCBtaWdodCBiZSBjb21wdXRlZCBs
YXRlciBmb3IgdmFyaW91cyBvcGVyYXRpb25zLikKKyAgICoKKyAgICogRXhhbXBsZSBvZiB1c2Fn
ZToKKyAgICogXGNvZGUKKyAgICogc3RhdGljIFN0YXRpY1N0cmluZyBmb28oInNvbWUgdGV4dCIp
OworICAgKiBKc29uOjpWYWx1ZSBhVmFsdWUoZm9vKTsKKyAgICogXGVuZGNvZGUKKyAgICovCisg
IFZhbHVlKGNvbnN0IFN0YXRpY1N0cmluZyYgdmFsdWUpOworICBWYWx1ZShjb25zdCBzdGQ6OnN0
cmluZyYgdmFsdWUpOyAvLy88IENvcHkgZGF0YSgpIHRpbCBzaXplKCkuIEVtYmVkZGVkIHplcm9l
cyB0b28uCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgVmFsdWUoY29uc3QgQ3BwVEw6OkNvbnN0
U3RyaW5nJiB2YWx1ZSk7CisjZW5kaWYKKyAgVmFsdWUoYm9vbCB2YWx1ZSk7CisgIC8vLyBEZWVw
IGNvcHkuCisgIFZhbHVlKGNvbnN0IFZhbHVlJiBvdGhlcik7CisjaWYgSlNPTl9IQVNfUlZBTFVF
X1JFRkVSRU5DRVMKKyAgLy8vIE1vdmUgY29uc3RydWN0b3IKKyAgVmFsdWUoVmFsdWUmJiBvdGhl
cik7CisjZW5kaWYKKyAgflZhbHVlKCk7CisKKyAgLy8vIERlZXAgY29weSwgdGhlbiBzd2FwKG90
aGVyKS4KKyAgLy8vIFxub3RlIE92ZXItd3JpdGUgZXhpc3RpbmcgY29tbWVudHMuIFRvIHByZXNl
cnZlIGNvbW1lbnRzLCB1c2UgI3N3YXBQYXlsb2FkKCkuCisgIFZhbHVlJiBvcGVyYXRvcj0oVmFs
dWUgb3RoZXIpOworICAvLy8gU3dhcCBldmVyeXRoaW5nLgorICB2b2lkIHN3YXAoVmFsdWUmIG90
aGVyKTsKKyAgLy8vIFN3YXAgdmFsdWVzIGJ1dCBsZWF2ZSBjb21tZW50cyBhbmQgc291cmNlIG9m
ZnNldHMgaW4gcGxhY2UuCisgIHZvaWQgc3dhcFBheWxvYWQoVmFsdWUmIG90aGVyKTsKKworICBW
YWx1ZVR5cGUgdHlwZSgpIGNvbnN0OworCisgIC8vLyBDb21wYXJlIHBheWxvYWQgb25seSwgbm90
IGNvbW1lbnRzIGV0Yy4KKyAgYm9vbCBvcGVyYXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBjb25z
dDsKKyAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wg
b3BlcmF0b3I+PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPihj
b25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPT0oY29uc3QgVmFsdWUm
IG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29u
c3Q7CisgIGludCBjb21wYXJlKGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisKKyAgY29uc3Qg
Y2hhciogYXNDU3RyaW5nKCkgY29uc3Q7IC8vLzwgRW1iZWRkZWQgemVyb2VzIGNvdWxkIGNhdXNl
IHlvdSB0cm91YmxlIQorICBzdGQ6OnN0cmluZyBhc1N0cmluZygpIGNvbnN0OyAvLy88IEVtYmVk
ZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIC8qKiBHZXQgcmF3IGNoYXIqIG9mIHN0cmluZy12
YWx1ZS4KKyAgICogIFxyZXR1cm4gZmFsc2UgaWYgIXN0cmluZy4gKFNlZy1mYXVsdCBpZiBzdHIg
b3IgZW5kIGFyZSBOVUxMLikKKyAgICovCisgIGJvb2wgZ2V0U3RyaW5nKAorICAgICAgY2hhciBj
b25zdCoqIGJlZ2luLCBjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKKyNpZmRlZiBKU09OX1VTRV9D
UFBUTAorICBDcHBUTDo6Q29uc3RTdHJpbmcgYXNDb25zdFN0cmluZygpIGNvbnN0OworI2VuZGlm
CisgIEludCBhc0ludCgpIGNvbnN0OworICBVSW50IGFzVUludCgpIGNvbnN0OworI2lmIGRlZmlu
ZWQoSlNPTl9IQVNfSU5UNjQpCisgIEludDY0IGFzSW50NjQoKSBjb25zdDsKKyAgVUludDY0IGFz
VUludDY0KCkgY29uc3Q7CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAg
TGFyZ2VzdEludCBhc0xhcmdlc3RJbnQoKSBjb25zdDsKKyAgTGFyZ2VzdFVJbnQgYXNMYXJnZXN0
VUludCgpIGNvbnN0OworICBmbG9hdCBhc0Zsb2F0KCkgY29uc3Q7CisgIGRvdWJsZSBhc0RvdWJs
ZSgpIGNvbnN0OworICBib29sIGFzQm9vbCgpIGNvbnN0OworCisgIGJvb2wgaXNOdWxsKCkgY29u
c3Q7CisgIGJvb2wgaXNCb29sKCkgY29uc3Q7CisgIGJvb2wgaXNJbnQoKSBjb25zdDsKKyAgYm9v
bCBpc0ludDY0KCkgY29uc3Q7CisgIGJvb2wgaXNVSW50KCkgY29uc3Q7CisgIGJvb2wgaXNVSW50
NjQoKSBjb25zdDsKKyAgYm9vbCBpc0ludGVncmFsKCkgY29uc3Q7CisgIGJvb2wgaXNEb3VibGUo
KSBjb25zdDsKKyAgYm9vbCBpc051bWVyaWMoKSBjb25zdDsKKyAgYm9vbCBpc1N0cmluZygpIGNv
bnN0OworICBib29sIGlzQXJyYXkoKSBjb25zdDsKKyAgYm9vbCBpc09iamVjdCgpIGNvbnN0Owor
CisgIGJvb2wgaXNDb252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikgY29uc3Q7CisKKyAgLy8v
IE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0CisgIEFycmF5SW5kZXggc2l6ZSgp
IGNvbnN0OworCisgIC8vLyBcYnJpZWYgUmV0dXJuIHRydWUgaWYgZW1wdHkgYXJyYXksIGVtcHR5
IG9iamVjdCwgb3IgbnVsbDsKKyAgLy8vIG90aGVyd2lzZSwgZmFsc2UuCisgIGJvb2wgZW1wdHko
KSBjb25zdDsKKworICAvLy8gUmV0dXJuIGlzTnVsbCgpCisgIGJvb2wgb3BlcmF0b3IhKCkgY29u
c3Q7CisKKyAgLy8vIFJlbW92ZSBhbGwgb2JqZWN0IG1lbWJlcnMgYW5kIGFycmF5IGVsZW1lbnRz
LgorICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlWYWx1ZSwgb2JqZWN0VmFsdWUsIG9yIG51bGxW
YWx1ZQorICAvLy8gXHBvc3QgdHlwZSgpIGlzIHVuY2hhbmdlZAorICB2b2lkIGNsZWFyKCk7CisK
KyAgLy8vIFJlc2l6ZSB0aGUgYXJyYXkgdG8gc2l6ZSBlbGVtZW50cy4KKyAgLy8vIE5ldyBlbGVt
ZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC4KKyAgLy8vIE1heSBvbmx5IGJlIGNhbGxlZCBv
biBudWxsVmFsdWUgb3IgYXJyYXlWYWx1ZS4KKyAgLy8vIFxwcmUgdHlwZSgpIGlzIGFycmF5VmFs
dWUgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgYXJyYXlWYWx1ZQorICB2b2lk
IHJlc2l6ZShBcnJheUluZGV4IHNpemUpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVu
dCAoemVybyBiYXNlZCBpbmRleCApLgorICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxlc3Mg
dGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCisgIC8vLyBpbnNlcnRlZAor
ICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KKyAgLy8vIChZ
b3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRp
c3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEg
c3RyaW5nLikKKyAgVmFsdWUmIG9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCk7CisKKyAgLy8v
IEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCisgIC8vLyBJZiB0
aGUgYXJyYXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1
ZSBhcmUKKyAgLy8vIGluc2VydGVkCisgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6
ZSBpcyBpbmRleCsxLgorICAvLy8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8g
Z2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9w
ZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQorICBWYWx1ZSYgb3BlcmF0b3JbXShpbnQg
aW5kZXgpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRl
eCApCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBj
b21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3
aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKEFycmF5SW5k
ZXggaW5kZXgpIGNvbnN0OworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBi
YXNlZCBpbmRleCApCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBn
ZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0aGUgb3Bl
cmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltd
KGludCBpbmRleCkgY29uc3Q7CisKKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBhdCBsZWFz
dCBpbmRleCsxIGVsZW1lbnRzLCByZXR1cm5zIHRoZSBlbGVtZW50CisgIC8vLyB2YWx1ZSwKKyAg
Ly8vIG90aGVyd2lzZSByZXR1cm5zIGRlZmF1bHRWYWx1ZS4KKyAgVmFsdWUgZ2V0KEFycmF5SW5k
ZXggaW5kZXgsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJu
IHRydWUgaWYgaW5kZXggPCBzaXplKCkuCisgIGJvb2wgaXNWYWxpZEluZGV4KEFycmF5SW5kZXgg
aW5kZXgpIGNvbnN0OworICAvLy8gXGJyaWVmIEFwcGVuZCB2YWx1ZSB0byBhcnJheSBhdCB0aGUg
ZW5kLgorICAvLy8KKyAgLy8vIEVxdWl2YWxlbnQgdG8ganNvbnZhbHVlW2pzb252YWx1ZS5zaXpl
KCldID0gdmFsdWU7CisgIFZhbHVlJiBhcHBlbmQoY29uc3QgVmFsdWUmIHZhbHVlKTsKKworICAv
Ly8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBp
ZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgLy8vIFxub3RlIEJlY2F1c2Ugb2Ygb3VyIGltcGxlbWVu
dGF0aW9uLCBrZXlzIGFyZSBsaW1pdGVkIHRvIDJeMzAgLTEgY2hhcnMuCisgIC8vLyAgRXhjZWVk
aW5nIHRoYXQgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24uCisgIFZhbHVlJiBvcGVyYXRvcltdKGNv
bnN0IGNoYXIqIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJl
dHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgor
ICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpIGNvbnN0OworICAvLy8g
QWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBp
dCBkb2VzIG5vdCBleGlzdC4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQg
bnVsbHMuCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpOworICAv
Ly8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUg
aXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5
IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0
IHN0ZDo6c3RyaW5nJiBrZXkpIGNvbnN0OworICAvKiogXGJyaWVmIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QKKyAgIGV4
aXN0LgorCisgICAqIElmIHRoZSBvYmplY3QgaGFzIG5vIGVudHJ5IGZvciB0aGF0IG5hbWUsIHRo
ZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8gc3RvcmUKKyAgICogdGhlIG5ldyBlbnRyeSBpcyBu
b3QgZHVwbGljYXRlZC4KKyAgICogRXhhbXBsZSBvZiB1c2U6CisgICAqIFxjb2RlCisgICAqIEpz
b246OlZhbHVlIG9iamVjdDsKKyAgICogc3RhdGljIGNvbnN0IFN0YXRpY1N0cmluZyBjb2RlKCJj
b2RlIik7CisgICAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7CisgICAqIFxlbmRjb2RlCisgICAqLwor
ICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJpbmcmIGtleSk7CisjaWZkZWYgSlNP
Tl9VU0VfQ1BQVEwKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRl
IGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisgIFZhbHVlJiBvcGVyYXRvcltd
KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCisg
IC8vLyB0aGF0IG5hbWUuCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IENwcFRMOjpD
b25zdFN0cmluZyYga2V5KSBjb25zdDsKKyNlbmRpZgorICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIg
bmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5v
dGUgZGVlcCBjb3B5CisgIFZhbHVlIGdldChjb25zdCBjaGFyKiBrZXksIGNvbnN0IFZhbHVlJiBk
ZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlm
IGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBjb3B5
CisgIC8vLyBcbm90ZSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIFZhbHVlIGdl
dChjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kLCBjb25zdCBWYWx1ZSYgZGVmYXVs
dFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBl
eGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQorICAv
Ly8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUgZ2V0KGNv
bnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0Owor
I2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkg
aWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNv
cHkKKyAgVmFsdWUgZ2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LCBjb25zdCBWYWx1
ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNlbmRpZgorICAvLy8gTW9zdCBnZW5lcmFsIGFuZCBl
ZmZpY2llbnQgdmVyc2lvbiBvZiBpc01lbWJlcigpY29uc3QsIGdldCgpY29uc3QsCisgIC8vLyBh
bmQgb3BlcmF0b3JbXWNvbnN0CisgIC8vLyBcbm90ZSBBcyBzdGF0ZWQgZWxzZXdoZXJlLCBiZWhh
dmlvciBpcyB1bmRlZmluZWQgaWYgKGVuZC1iZWdpbikgPj0gMl4zMAorICBWYWx1ZSBjb25zdCog
ZmluZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCogZW5kKSBjb25zdDsKKyAgLy8vIE1v
c3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2Ygb2JqZWN0LW11dGF0b3JzLgorICAv
Ly8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIChl
bmQtYmVnaW4pID49IDJeMzAKKyAgLy8vIFxyZXR1cm4gbm9uLXplcm8sIGJ1dCBKU09OX0FTU0VS
VCBpZiB0aGlzIGlzIG5laXRoZXIgb2JqZWN0IG5vciBudWxsVmFsdWUuCisgIFZhbHVlIGNvbnN0
KiBkZW1hbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29uc3QqIGVuZCk7CisgIC8vLyBcYnJp
ZWYgUmVtb3ZlIGFuZCByZXR1cm4gdGhlIG5hbWVkIG1lbWJlci4KKyAgLy8vCisgIC8vLyBEbyBu
b3RoaW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCisgIC8vLyBccmV0dXJuIHRoZSByZW1vdmVkIFZh
bHVlLCBvciBudWxsLgorICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZh
bHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCisgIC8vLyBcZGVwcmVjYXRlZAor
ICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KTsKKyAgLy8vIFNhbWUgYXMgcmVt
b3ZlTWVtYmVyKGNvbnN0IGNoYXIqKQorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJl
ZGRlZCBudWxscy4KKyAgLy8vIFxkZXByZWNhdGVkCisgIFZhbHVlIHJlbW92ZU1lbWJlcihjb25z
dCBzdGQ6OnN0cmluZyYga2V5KTsKKyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0IGNo
YXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIFZhbHVlKiByZW1vdmVkKSwKKyAgLy8vIGJ1dCAn
a2V5JyBpcyBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIq
IGtleSwgVmFsdWUqIHJlbW92ZWQpOworICAvKiogXGJyaWVmIFJlbW92ZSB0aGUgbmFtZWQgbWFw
IG1lbWJlci4KKworICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KKyAgICAgIFxw
YXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgICAgICBccmV0dXJuIHRydWUg
aWZmIHJlbW92ZWQgKG5vIGV4Y2VwdGlvbnMpCisgICovCisgIGJvb2wgcmVtb3ZlTWVtYmVyKHN0
ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKTsKKyAgLy8vIFNhbWUgYXMgcmVt
b3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKQorICBib29s
IHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kLCBWYWx1ZSog
cmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVtb3ZlIHRoZSBpbmRleGVkIGFycmF5IGVsZW1lbnQu
CisKKyAgICAgIE8obikgZXhwZW5zaXZlIG9wZXJhdGlvbnMuCisgICAgICBVcGRhdGUgJ3JlbW92
ZWQnIGlmZiByZW1vdmVkLgorICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNl
cHRpb25zKQorICAqLworICBib29sIHJlbW92ZUluZGV4KEFycmF5SW5kZXggaSwgVmFsdWUqIHJl
bW92ZWQpOworCisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBu
YW1lZCBrZXkuCisgIC8vLyBcbm90ZSAna2V5JyBtdXN0IGJlIG51bGwtdGVybWluYXRlZC4KKyAg
Ym9vbCBpc01lbWJlcihjb25zdCBjaGFyKiBrZXkpIGNvbnN0OworICAvLy8gUmV0dXJuIHRydWUg
aWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgorICAvLy8gXHBhcmFtIGtleSBt
YXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgYm9vbCBpc01lbWJlcihjb25zdCBzdGQ6OnN0
cmluZyYga2V5KSBjb25zdDsKKyAgLy8vIFNhbWUgYXMgaXNNZW1iZXIoc3RkOjpzdHJpbmcgY29u
c3QmIGtleSljb25zdAorICBib29sIGlzTWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBj
aGFyKiBlbmQpIGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4gdHJ1
ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisgIGJvb2wgaXNNZW1iZXIo
Y29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0OworI2VuZGlmCisKKyAgLy8vIFxi
cmllZiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBtZW1iZXIgbmFtZXMuCisgIC8vLworICAvLy8gSWYg
bnVsbCwgcmV0dXJuIGFuIGVtcHR5IGxpc3QuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmplY3RW
YWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IGlmIHR5cGUoKSB3YXMgbnVsbFZhbHVlLCBp
dCByZW1haW5zIG51bGxWYWx1ZQorICBNZW1iZXJzIGdldE1lbWJlck5hbWVzKCkgY29uc3Q7CisK
KyAgLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vICAgICAgRW51bU1lbWJlck5hbWVzIGVu
dW1NZW1iZXJOYW1lcygpIGNvbnN0OworICAvLyAgICAgIEVudW1WYWx1ZXMgZW51bVZhbHVlcygp
IGNvbnN0OworICAvLyMgZW5kaWYKKworICAvLy8gXGRlcHJlY2F0ZWQgQWx3YXlzIHBhc3MgbGVu
LgorICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBzZXRDb21tZW50KHN0ZDo6c3RyaW5nIGNvbnN0
JikgaW5zdGVhZC4iKQorICB2b2lkIHNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwgQ29t
bWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBv
ciAvKiAuLi4gKi8KKyAgdm9pZCBzZXRDb21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIHNpemVf
dCBsZW4sIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgLy8vIENvbW1lbnRzIG11c3Qg
YmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZvaWQgc2V0Q29tbWVudChjb25zdCBzdGQ6OnN0cmlu
ZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICBib29sIGhhc0NvbW1l
bnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0OworICAvLy8gSW5jbHVkZSBkZWxp
bWl0ZXJzIGFuZCBlbWJlZGRlZCBuZXdsaW5lcy4KKyAgc3RkOjpzdHJpbmcgZ2V0Q29tbWVudChD
b21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3Q7CisKKyAgc3RkOjpzdHJpbmcgdG9TdHls
ZWRTdHJpbmcoKSBjb25zdDsKKworICBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0OworICBj
b25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsKKworICBpdGVyYXRvciBiZWdpbigpOworICBpdGVy
YXRvciBlbmQoKTsKKworICAvLyBBY2Nlc3NvcnMgZm9yIHRoZSBbc3RhcnQsIGxpbWl0KSByYW5n
ZSBvZiBieXRlcyB3aXRoaW4gdGhlIEpTT04gdGV4dCBmcm9tCisgIC8vIHdoaWNoIHRoaXMgdmFs
dWUgd2FzIHBhcnNlZCwgaWYgYW55LgorICB2b2lkIHNldE9mZnNldFN0YXJ0KHNpemVfdCBzdGFy
dCk7CisgIHZvaWQgc2V0T2Zmc2V0TGltaXQoc2l6ZV90IGxpbWl0KTsKKyAgc2l6ZV90IGdldE9m
ZnNldFN0YXJ0KCkgY29uc3Q7CisgIHNpemVfdCBnZXRPZmZzZXRMaW1pdCgpIGNvbnN0OworCitw
cml2YXRlOgorICB2b2lkIGluaXRCYXNpYyhWYWx1ZVR5cGUgdHlwZSwgYm9vbCBhbGxvY2F0ZWQg
PSBmYWxzZSk7CisKKyAgVmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5KTsK
KyAgVmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiBl
bmQpOworCisgIHN0cnVjdCBDb21tZW50SW5mbyB7CisgICAgQ29tbWVudEluZm8oKTsKKyAgICB+
Q29tbWVudEluZm8oKTsKKworICAgIHZvaWQgc2V0Q29tbWVudChjb25zdCBjaGFyKiB0ZXh0LCBz
aXplX3QgbGVuKTsKKworICAgIGNoYXIqIGNvbW1lbnRfOworICB9OworCisgIC8vIHN0cnVjdCBN
ZW1iZXJOYW1lc1RyYW5zZm9ybQorICAvL3sKKyAgLy8gICB0eXBlZGVmIGNvbnN0IGNoYXIgKnJl
c3VsdF90eXBlOworICAvLyAgIGNvbnN0IGNoYXIgKm9wZXJhdG9yKCkoIGNvbnN0IENaU3RyaW5n
ICZuYW1lICkgY29uc3QKKyAgLy8gICB7CisgIC8vICAgICAgcmV0dXJuIG5hbWUuY19zdHIoKTsK
KyAgLy8gICB9CisgIC8vfTsKKworICB1bmlvbiBWYWx1ZUhvbGRlciB7CisgICAgTGFyZ2VzdElu
dCBpbnRfOworICAgIExhcmdlc3RVSW50IHVpbnRfOworICAgIGRvdWJsZSByZWFsXzsKKyAgICBi
b29sIGJvb2xfOworICAgIGNoYXIqIHN0cmluZ187ICAvLyBhY3R1YWxseSBwdHIgdG8gdW5zaWdu
ZWQsIGZvbGxvd2VkIGJ5IHN0ciwgdW5sZXNzICFhbGxvY2F0ZWRfCisgICAgT2JqZWN0VmFsdWVz
KiBtYXBfOworICB9IHZhbHVlXzsKKyAgVmFsdWVUeXBlIHR5cGVfIDogODsKKyAgdW5zaWduZWQg
aW50IGFsbG9jYXRlZF8gOiAxOyAvLyBOb3RlczogaWYgZGVjbGFyZWQgYXMgYm9vbCwgYml0Zmll
bGQgaXMgdXNlbGVzcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBub3Qg
YWxsb2NhdGVkXywgc3RyaW5nXyBtdXN0IGJlIG51bGwtdGVybWluYXRlZC4KKyAgQ29tbWVudElu
Zm8qIGNvbW1lbnRzXzsKKyAgVmFsdWUgKmRlZmF1bHRfdmFsdWVfOyAgLy8gaWYgdmlhIC5nZXQo
ICJrZXkiLCBkZWZhdWx0ICksIHRoaXMgd2FzIHRoZSBkZWZhdWx0CisKKyAgLy8gW3N0YXJ0LCBs
aW1pdCkgYnl0ZSBvZmZzZXRzIGluIHRoZSBzb3VyY2UgSlNPTiB0ZXh0IGZyb20gd2hpY2ggdGhp
cyBWYWx1ZQorICAvLyB3YXMgZXh0cmFjdGVkLgorICBzaXplX3Qgc3RhcnRfOworICBzaXplX3Qg
bGltaXRfOworfTsKKworLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5kIHVudGVzdGVkOiByZXBy
ZXNlbnRzIGFuIGVsZW1lbnQgb2YgdGhlICJwYXRoIiB0bworICogYWNjZXNzIGEgbm9kZS4KKyAq
LworY2xhc3MgSlNPTl9BUEkgUGF0aEFyZ3VtZW50IHsKK3B1YmxpYzoKKyAgZnJpZW5kIGNsYXNz
IFBhdGg7CisKKyAgUGF0aEFyZ3VtZW50KCk7CisgIFBhdGhBcmd1bWVudChBcnJheUluZGV4IGlu
ZGV4KTsKKyAgUGF0aEFyZ3VtZW50KGNvbnN0IGNoYXIqIGtleSk7CisgIFBhdGhBcmd1bWVudChj
b25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKworcHJpdmF0ZToKKyAgZW51bSBLaW5kIHsKKyAgICBr
aW5kTm9uZSA9IDAsCisgICAga2luZEluZGV4LAorICAgIGtpbmRLZXkKKyAgfTsKKyAgc3RkOjpz
dHJpbmcga2V5XzsKKyAgQXJyYXlJbmRleCBpbmRleF87CisgIEtpbmQga2luZF87Cit9OworCisv
KiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6IHJlcHJlc2VudHMgYSAicGF0aCIg
dG8gYWNjZXNzIGEgbm9kZS4KKyAqCisgKiBTeW50YXg6CisgKiAtICIuIiA9PiByb290IG5vZGUK
KyAqIC0gIi5bbl0iID0+IGVsZW1lbnRzIGF0IGluZGV4ICduJyBvZiByb290IG5vZGUgKGFuIGFy
cmF5IHZhbHVlKQorICogLSAiLm5hbWUiID0+IG1lbWJlciBuYW1lZCAnbmFtZScgb2Ygcm9vdCBu
b2RlIChhbiBvYmplY3QgdmFsdWUpCisgKiAtICIubmFtZTEubmFtZTIubmFtZTMiCisgKiAtICIu
WzBdWzFdWzJdLm5hbWUxWzNdIgorICogLSAiLiUiID0+IG1lbWJlciBuYW1lIGlzIHByb3ZpZGVk
IGFzIHBhcmFtZXRlcgorICogLSAiLlslXSIgPT4gaW5kZXggaXMgcHJvdmllZCBhcyBwYXJhbWV0
ZXIKKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aCB7CitwdWJsaWM6CisgIFBhdGgoY29uc3Qgc3Rk
OjpzdHJpbmcmIHBhdGgsCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMSA9IFBhdGhBcmd1
bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIgPSBQYXRoQXJndW1lbnQoKSwK
KyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEzID0gUGF0aEFyZ3VtZW50KCksCisgICAgICAg
Y29uc3QgUGF0aEFyZ3VtZW50JiBhNCA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBh
dGhBcmd1bWVudCYgYTUgPSBQYXRoQXJndW1lbnQoKSk7CisKKyAgY29uc3QgVmFsdWUmIHJlc29s
dmUoY29uc3QgVmFsdWUmIHJvb3QpIGNvbnN0OworICBWYWx1ZSByZXNvbHZlKGNvbnN0IFZhbHVl
JiByb290LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIENyZWF0ZXMg
dGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlIGFuZCByZXR1cm5zIGEgcmVm
ZXJlbmNlIG9uCisgIC8vLyB0aGUgbm9kZS4KKyAgVmFsdWUmIG1ha2UoVmFsdWUmIHJvb3QpIGNv
bnN0OworCitwcml2YXRlOgorICB0eXBlZGVmIHN0ZDo6dmVjdG9yPGNvbnN0IFBhdGhBcmd1bWVu
dCo+IEluQXJnczsKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxQYXRoQXJndW1lbnQ+IEFyZ3M7CisK
KyAgdm9pZCBtYWtlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgY29uc3QgSW5BcmdzJiBp
bik7CisgIHZvaWQgYWRkUGF0aEluQXJnKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAorICAgICAg
ICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAgICAgICAgICAgICAgICAgICBJbkFy
Z3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAgICAgICAgICAgICAgICBQYXRoQXJn
dW1lbnQ6OktpbmQga2luZCk7CisgIHZvaWQgaW52YWxpZFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGgsIGludCBsb2NhdGlvbik7CisKKyAgQXJncyBhcmdzXzsKK307CisKKy8qKiBcYnJpZWYg
YmFzZSBjbGFzcyBmb3IgVmFsdWUgaXRlcmF0b3JzLgorICoKKyAqLworY2xhc3MgSlNPTl9BUEkg
VmFsdWVJdGVyYXRvckJhc2UgeworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6YmlkaXJlY3Rpb25h
bF9pdGVyYXRvcl90YWcgaXRlcmF0b3JfY2F0ZWdvcnk7CisgIHR5cGVkZWYgdW5zaWduZWQgaW50
IHNpemVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZhbHVl
SXRlcmF0b3JCYXNlIFNlbGZUeXBlOworCisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGlzRXF1YWwob3RoZXIpOyB9CisKKyAgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gIWlzRXF1YWwob3Ro
ZXIpOyB9CisKKyAgZGlmZmVyZW5jZV90eXBlIG9wZXJhdG9yLShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gb3RoZXIuY29tcHV0ZURpc3RhbmNlKCp0aGlzKTsKKyAg
fQorCisgIC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBvciB0aGUgbWVtYmVyIG5hbWUgb2Yg
dGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYQorICAvLy8gVmFsdWUuCisgIFZhbHVlIGtleSgpIGNv
bnN0OworCisgIC8vLyBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLCBv
ciAtMSBpZiBpdCBpcyBub3QgYW4gYXJyYXlWYWx1ZS4KKyAgVUludCBpbmRleCgpIGNvbnN0Owor
CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLCBv
ciAiIiBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXG5vdGUgQXZv
aWQgYGNfc3RyKClgIG9uIHJlc3VsdCwgYXMgZW1iZWRkZWQgemVyb2VzIGFyZSBwb3NzaWJsZS4K
KyAgc3RkOjpzdHJpbmcgbmFtZSgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBu
YW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9i
amVjdFZhbHVlLgorICAvLy8gXGRlcHJlY2F0ZWQgVGhpcyBjYW5ub3QgYmUgdXNlZCBmb3IgVVRG
LTggc3RyaW5ncywgc2luY2UgdGhlcmUgY2FuIGJlIGVtYmVkZGVkIG51bGxzLgorICBKU09OQ1BQ
X0RFUFJFQ0FURUQoIlVzZSBga2V5ID0gbmFtZSgpO2AgaW5zdGVhZC4iKQorICBjaGFyIGNvbnN0
KiBtZW1iZXJOYW1lKCkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRo
ZSByZWZlcmVuY2VkIFZhbHVlLCBvciBOVUxMIGlmIGl0IGlzIG5vdCBhbgorICAvLy8gb2JqZWN0
VmFsdWUuCisgIC8vLyBcbm90ZSBCZXR0ZXIgdmVyc2lvbiB0aGFuIG1lbWJlck5hbWUoKS4gQWxs
b3dzIGVtYmVkZGVkIG51bGxzLgorICBjaGFyIGNvbnN0KiBtZW1iZXJOYW1lKGNoYXIgY29uc3Qq
KiBlbmQpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgIFZhbHVlJiBkZXJlZigpIGNvbnN0OworCisg
IHZvaWQgaW5jcmVtZW50KCk7CisKKyAgdm9pZCBkZWNyZW1lbnQoKTsKKworICBkaWZmZXJlbmNl
X3R5cGUgY29tcHV0ZURpc3RhbmNlKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3Q7CisKKyAg
Ym9vbCBpc0VxdWFsKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3Q7CisKKyAgdm9pZCBjb3B5
KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7CisKK3ByaXZhdGU6CisgIFZhbHVlOjpPYmplY3RWYWx1
ZXM6Oml0ZXJhdG9yIGN1cnJlbnRfOworICAvLyBJbmRpY2F0ZXMgdGhhdCBpdGVyYXRvciBpcyBm
b3IgYSBudWxsIHZhbHVlLgorICBib29sIGlzTnVsbF87CisKK3B1YmxpYzoKKyAgLy8gRm9yIHNv
bWUgcmVhc29uLCBCT1JMQU5EIG5lZWRzIHRoZXNlIGF0IHRoZSBlbmQsIHJhdGhlcgorICAvLyB0
aGFuIGVhcmxpZXIuIE5vIGlkZWEgd2h5LgorICBWYWx1ZUl0ZXJhdG9yQmFzZSgpOworICBleHBs
aWNpdCBWYWx1ZUl0ZXJhdG9yQmFzZShjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRv
ciYgY3VycmVudCk7Cit9OworCisvKiogXGJyaWVmIGNvbnN0IGl0ZXJhdG9yIGZvciBvYmplY3Qg
YW5kIGFycmF5IHZhbHVlLgorICoKKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWVDb25zdEl0ZXJh
dG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlIHsKKyAgZnJpZW5kIGNsYXNzIFZhbHVlOwor
CitwdWJsaWM6CisgIHR5cGVkZWYgY29uc3QgVmFsdWUgdmFsdWVfdHlwZTsKKyAgLy90eXBlZGVm
IHVuc2lnbmVkIGludCBzaXplX3Q7CisgIC8vdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOwor
ICB0eXBlZGVmIGNvbnN0IFZhbHVlJiByZWZlcmVuY2U7CisgIHR5cGVkZWYgY29uc3QgVmFsdWUq
IHBvaW50ZXI7CisgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIFNlbGZUeXBlOworCisgIFZh
bHVlQ29uc3RJdGVyYXRvcigpOworICBWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRvciBj
b25zdCYgb3RoZXIpOworCitwcml2YXRlOgorLyohIFxpbnRlcm5hbCBVc2UgYnkgVmFsdWUgdG8g
Y3JlYXRlIGFuIGl0ZXJhdG9yLgorICovCisgIGV4cGxpY2l0IFZhbHVlQ29uc3RJdGVyYXRvcihj
b25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCk7CitwdWJsaWM6Cisg
IFNlbGZUeXBlJiBvcGVyYXRvcj0oY29uc3QgVmFsdWVJdGVyYXRvckJhc2UmIG90aGVyKTsKKwor
ICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMpOwor
ICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSBvcGVyYXRv
ci0tKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgIC0tKnRoaXM7CisgICAg
cmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3ItLSgpIHsKKyAgICBkZWNy
ZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3Ir
KygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICByZWZl
cmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gZGVyZWYoKTsgfQorCisgIHBvaW50ZXIg
b3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZkZXJlZigpOyB9Cit9OworCisvKiogXGJyaWVm
IEl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVlLgorICovCitjbGFzcyBKU09OX0FQ
SSBWYWx1ZUl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlIHsKKyAgZnJpZW5kIGNs
YXNzIFZhbHVlOworCitwdWJsaWM6CisgIHR5cGVkZWYgVmFsdWUgdmFsdWVfdHlwZTsKKyAgdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OworICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7
CisgIHR5cGVkZWYgVmFsdWUmIHJlZmVyZW5jZTsKKyAgdHlwZWRlZiBWYWx1ZSogcG9pbnRlcjsK
KyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIFNlbGZUeXBlOworCisgIFZhbHVlSXRlcmF0b3IoKTsK
KyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3ImIG90aGVy
KTsKKyAgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUl0ZXJhdG9yJiBvdGhlcik7CisKK3ByaXZh
dGU6CisvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IuCisg
Ki8KKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjpp
dGVyYXRvciYgY3VycmVudCk7CitwdWJsaWM6CisgIFNlbGZUeXBlJiBvcGVyYXRvcj0oY29uc3Qg
U2VsZlR5cGUmIG90aGVyKTsKKworICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkgeworICAgIFNl
bGZUeXBlIHRlbXAoKnRoaXMpOworICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0K
KworICBTZWxmVHlwZSBvcGVyYXRvci0tKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMp
OworICAgIC0tKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSYgb3Bl
cmF0b3ItLSgpIHsKKyAgICBkZWNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKwor
ICBTZWxmVHlwZSYgb3BlcmF0b3IrKygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAgICByZXR1cm4g
KnRoaXM7CisgIH0KKworICByZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gZGVy
ZWYoKTsgfQorCisgIHBvaW50ZXIgb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZkZXJlZigp
OyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKworbmFtZXNwYWNlIHN0ZCB7CisvLy8g
U3BlY2lhbGl6ZSBzdGQ6OnN3YXAoKSBmb3IgSnNvbjo6VmFsdWUuCit0ZW1wbGF0ZTw+Citpbmxp
bmUgdm9pZCBzd2FwKEpzb246OlZhbHVlJiBhLCBKc29uOjpWYWx1ZSYgYikgeyBhLnN3YXAoYik7
IH0KK30KKworCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBf
RElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNlbmRpZiAvLyBDUFBUTF9KU09OX0hf
SU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTog
aW5jbHVkZS9qc29uL3ZhbHVlLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNv
bi9yZWFkZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJh
cHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fUkVB
REVSX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURFRAorCisj
aWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiZmVhdHVyZXMuaCIK
KyNpbmNsdWRlICJ2YWx1ZS5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQorI2luY2x1ZGUgPGRlcXVlPgorI2luY2x1ZGUgPGlvc2Z3ZD4KKyNpbmNsdWRlIDxz
dGFjaz4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8aXN0cmVhbT4KKworLy8gRGlzYWJs
ZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1iZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwt
aW50ZXJmYWNlIHRvCisvLyBiZSB1c2VkIGJ5Li4uCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FC
TEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21h
IHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJ
U0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCituYW1lc3BhY2UgSnNvbiB7CisKKy8qKiBc
YnJpZWYgVW5zZXJpYWxpemUgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9h
PiBkb2N1bWVudCBpbnRvIGEKKyAqVmFsdWUuCisgKgorICogXGRlcHJlY2F0ZWQgVXNlIENoYXJS
ZWFkZXIgYW5kIENoYXJSZWFkZXJCdWlsZGVyLgorICovCitjbGFzcyBKU09OX0FQSSBSZWFkZXIg
eworcHVibGljOgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAgdHlwZWRlZiBjb25zdCBDaGFyKiBM
b2NhdGlvbjsKKworICAvKiogXGJyaWVmIEFuIGVycm9yIHRhZ2dlZCB3aXRoIHdoZXJlIGluIHRo
ZSBKU09OIHRleHQgaXQgd2FzIGVuY291bnRlcmVkLgorICAgKgorICAgKiBUaGUgb2Zmc2V0cyBn
aXZlIHRoZSBbc3RhcnQsIGxpbWl0KSByYW5nZSBvZiBieXRlcyB3aXRoaW4gdGhlIHRleHQuIE5v
dGUKKyAgICogdGhhdCB0aGlzIGlzIGJ5dGVzLCBub3QgY29kZXBvaW50cy4KKyAgICoKKyAgICov
CisgIHN0cnVjdCBTdHJ1Y3R1cmVkRXJyb3IgeworICAgIHNpemVfdCBvZmZzZXRfc3RhcnQ7Cisg
ICAgc2l6ZV90IG9mZnNldF9saW1pdDsKKyAgICBzdGQ6OnN0cmluZyBtZXNzYWdlOworICB9Owor
CisgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyBhbGwgZmVhdHVyZXMK
KyAgICogZm9yIHBhcnNpbmcuCisgICAqLworICBSZWFkZXIoKTsKKworICAvKiogXGJyaWVmIENv
bnN0cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgdGhlIHNwZWNpZmllZCBmZWF0dXJlIHNldAorICAg
KiBmb3IgcGFyc2luZy4KKyAgICovCisgIFJlYWRlcihjb25zdCBGZWF0dXJlcyYgZmVhdHVyZXMp
OworCisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8YSBIUkVGPSJodHRwOi8vd3d3
Lmpzb24ub3JnIj5KU09OPC9hPgorICAgKiBkb2N1bWVudC4KKyAgICogXHBhcmFtIGRvY3VtZW50
IFVURi04IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRvIHJlYWQuCisg
ICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBkb2N1
bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNlZC4KKyAg
ICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQg
YWxsb3cgd3JpdGluZyB0aGVtCisgICAqIGJhY2sgZHVyaW5nCisgICAqICAgICAgICAgICAgICAg
ICAgICAgICAgc2VyaWFsaXphdGlvbiwgXGMgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAg
ICogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmCisg
ICAqIEZlYXR1cmVzOjphbGxvd0NvbW1lbnRzXworICAgKiAgICAgICAgICAgICAgICAgICAgICAg
IGlzIFxjIGZhbHNlLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBz
dWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgorICAgKiBlcnJvciBvY2N1cnJlZC4K
KyAgICovCisgIGJvb2wKKyAgcGFyc2UoY29uc3Qgc3RkOjpzdHJpbmcmIGRvY3VtZW50LCBWYWx1
ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKKworICAvKiogXGJyaWVmIFJl
YWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4K
KyAgIGRvY3VtZW50LgorICAgKiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJl
YWQuCisgICAqIFxwYXJhbSBlbmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYtOCBl
bmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAgICAg
ICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KKyAgICogXHBhcmFtIHJvb3QgW291dF0gQ29udGFp
bnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcworICAgKiAgICAgICAg
ICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gY29sbGVjdENvbW1lbnRzIFxj
IHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgIGJhY2sg
ZHVyaW5nCisgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbiwgXGMgZmFs
c2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBUaGlz
IHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmCisgICBGZWF0dXJlczo6YWxsb3dDb21tZW50c18KKyAg
ICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KKyAgICogXHJldHVybiBcYyB0
cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFsc2UgaWYg
YW4KKyAgIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBi
ZWdpbkRvYywKKyAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAgICAgICAg
VmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsK
KworICAvLy8gXGJyaWVmIFBhcnNlIGZyb20gaW5wdXQgc3RyZWFtLgorICAvLy8gXHNlZSBKc29u
OjpvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYsIEpzb246OlZhbHVlJikuCisgIGJvb2wgcGFyc2Uo
c3RkOjppc3RyZWFtJiBpcywgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1
ZSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmllbmRseSBzdHJpbmcgdGhhdCBs
aXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3VtZW50LgorICAgKiBccmV0dXJuIEZv
cm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJyb3JzIHdpdGggdGhlaXIg
bG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUgcGFyc2VkIGRvY3VtZW50LiBBbiBl
bXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKKyAgICogb2NjdXJyZWQKKyAgICog
ICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICogXGRlcHJlY2F0ZWQgVXNlIGdldEZvcm1hdHRl
ZEVycm9yTWVzc2FnZXMoKSBpbnN0ZWFkICh0eXBvIGZpeCkuCisgICAqLworICBKU09OQ1BQX0RF
UFJFQ0FURUQoIlVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZC4iKQorICBz
dGQ6OnN0cmluZyBnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKworICAvKiogXGJy
aWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3QgZXJyb3JzIGluIHRo
ZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1cm4gRm9ybWF0dGVkIGVycm9yIG1l
c3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0aGVpciBsb2NhdGlvbgorICAgKiBp
bgorICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQuIEFuIGVtcHR5IHN0cmluZyBpcyBy
ZXR1cm5lZCBpZiBubyBlcnJvcgorICAgKiBvY2N1cnJlZAorICAgKiAgICAgICAgIGR1cmluZyBw
YXJzaW5nLgorICAgKi8KKyAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygp
IGNvbnN0OworCisgIC8qKiBcYnJpZWYgUmV0dXJucyBhIHZlY3RvciBvZiBzdHJ1Y3R1cmVkIGVy
cm9zIGVuY291bnRlZCB3aGlsZSBwYXJzaW5nLgorICAgKiBccmV0dXJuIEEgKHBvc3NpYmx5IGVt
cHR5KSB2ZWN0b3Igb2YgU3RydWN0dXJlZEVycm9yIG9iamVjdHMuIEN1cnJlbnRseQorICAgKiAg
ICAgICAgIG9ubHkgb25lIGVycm9yIGNhbiBiZSByZXR1cm5lZCwgYnV0IHRoZSBjYWxsZXIgc2hv
dWxkIHRvbGVyYXRlCisgICAqIG11bHRpcGxlCisgICAqICAgICAgICAgZXJyb3JzLiAgVGhpcyBj
YW4gb2NjdXIgaWYgdGhlIHBhcnNlciByZWNvdmVycyBmcm9tIGEgbm9uLWZhdGFsCisgICAqICAg
ICAgICAgcGFyc2UgZXJyb3IgYW5kIHRoZW4gZW5jb3VudGVycyBhZGRpdGlvbmFsIGVycm9ycy4K
KyAgICovCisgIHN0ZDo6dmVjdG9yPFN0cnVjdHVyZWRFcnJvcj4gZ2V0U3RydWN0dXJlZEVycm9y
cygpIGNvbnN0OworCisgIC8qKiBcYnJpZWYgQWRkIGEgc2VtYW50aWMgZXJyb3IgbWVzc2FnZS4K
KyAgICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRo
ZSBlcnJvcgorICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAgICogXHJl
dHVybiBcYyB0cnVlIGlmIHRoZSBlcnJvciB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBcYyBmYWxz
ZSBpZiB0aGUKKyAgICogVmFsdWUgb2Zmc2V0IGV4Y2VlZHMgdGhlIGRvY3VtZW50IHNpemUuCisg
ICAqLworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBtZXNzYWdlKTsKKworICAvKiogXGJyaWVmIEFkZCBhIHNlbWFudGljIGVycm9yIG1lc3Nh
Z2Ugd2l0aCBleHRyYSBjb250ZXh0LgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1ZSBsb2Nh
dGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdlIFRoZSBl
cnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gZXh0cmEgQWRkaXRpb25hbCBKU09OIFZhbHVlIGxv
Y2F0aW9uIHRvIGNvbnRleHR1YWxpemUgdGhlIGVycm9yCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBp
ZiB0aGUgZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgZWl0aGVyCisg
ICAqIFZhbHVlIG9mZnNldCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgorICAgKi8KKyAgYm9v
bCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKworICAvKiogXGJyaWVmIFJldHVybiB3aGV0aGVyIHRo
ZXJlIGFyZSBhbnkgZXJyb3JzLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlcmUgYXJlIG5v
IGVycm9ycyB0byByZXBvcnQgXGMgZmFsc2UgaWYKKyAgICogZXJyb3JzIGhhdmUgb2NjdXJyZWQu
CisgICAqLworICBib29sIGdvb2QoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgZW51bSBUb2tlblR5
cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAgIHRva2VuT2JqZWN0QmVnaW4sCisg
ICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJlZ2luLAorICAgIHRva2VuQXJyYXlF
bmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1iZXIsCisgICAgdG9rZW5UcnVlLAor
ICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAgIHRva2VuQXJyYXlTZXBhcmF0b3Is
CisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9rZW5Db21tZW50LAorICAgIHRva2Vu
RXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1YmxpYzoKKyAgICBUb2tlblR5cGUg
dHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExvY2F0aW9uIGVuZF87CisgIH07CisK
KyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAgIFRva2VuIHRva2VuXzsKKyAgICBz
dGQ6OnN0cmluZyBtZXNzYWdlXzsKKyAgICBMb2NhdGlvbiBleHRyYV87CisgIH07CisKKyAgdHlw
ZWRlZiBzdGQ6OmRlcXVlPEVycm9ySW5mbz4gRXJyb3JzOworCisgIGJvb2wgcmVhZFRva2VuKFRv
a2VuJiB0b2tlbik7CisgIHZvaWQgc2tpcFNwYWNlcygpOworICBib29sIG1hdGNoKExvY2F0aW9u
IHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKTsKKyAgYm9vbCByZWFkQ29tbWVudCgpOworICBi
b29sIHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZENwcFN0eWxlQ29tbWVudCgpOwor
ICBib29sIHJlYWRTdHJpbmcoKTsKKyAgdm9pZCByZWFkTnVtYmVyKCk7CisgIGJvb2wgcmVhZFZh
bHVlKCk7CisgIGJvb2wgcmVhZE9iamVjdChUb2tlbiYgdG9rZW4pOworICBib29sIHJlYWRBcnJh
eShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pOworICBi
b29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9vbCBk
ZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRv
a2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0
b2tlbik7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQp
OworICBib29sIGRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1
ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv
Y2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh
dGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCYgdW5pY29kZSk7CisgIGJvb2wgYWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2Us
IFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEgPSAwKTsKKyAgYm9vbCByZWNvdmVyRnJvbUVy
cm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIGJvb2wgYWRkRXJyb3JBbmRSZWNvdmVy
KGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBU
b2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50
aWxUb2tlbik7CisgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsKKyAgVmFsdWUmIGN1cnJlbnRWYWx1
ZSgpOworICBDaGFyIGdldE5leHRDaGFyKCk7CisgIHZvaWQKKyAgZ2V0TG9jYXRpb25MaW5lQW5k
Q29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLCBpbnQmIGxpbmUsIGludCYgY29sdW1uKSBjb25zdDsK
KyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9u
KSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25TbmlwcGV0KExvY2F0aW9uIGxvY2F0
aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBl
bmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgdm9pZCBza2lwQ29tbWVudFRva2Vu
cyhUb2tlbiYgdG9rZW4pOworCisgIHR5cGVkZWYgc3RkOjpzdGFjazxWYWx1ZSo+IE5vZGVzOwor
ICBOb2RlcyBub2Rlc187CisgIEVycm9ycyBlcnJvcnNfOworICBzdGQ6OnN0cmluZyBkb2N1bWVu
dF87CisgIExvY2F0aW9uIGJlZ2luXzsKKyAgTG9jYXRpb24gZW5kXzsKKyAgTG9jYXRpb24gY3Vy
cmVudF87CisgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF87CisgIFZhbHVlKiBsYXN0VmFsdWVfOwor
ICBzdGQ6OnN0cmluZyBjb21tZW50c0JlZm9yZV87CisgIEZlYXR1cmVzIGZlYXR1cmVzXzsKKyAg
Ym9vbCBjb2xsZWN0Q29tbWVudHNfOworfTsgIC8vIFJlYWRlcgorCisvKiogSW50ZXJmYWNlIGZv
ciByZWFkaW5nIEpTT04gZnJvbSBhIGNoYXIgYXJyYXkuCisgKi8KK2NsYXNzIEpTT05fQVBJIENo
YXJSZWFkZXIgeworcHVibGljOgorICB2aXJ0dWFsIH5DaGFyUmVhZGVyKCkge30KKyAgLyoqIFxi
cmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpT
T048L2E+CisgICBkb2N1bWVudC4KKyAgICogVGhlIGRvY3VtZW50IG11c3QgYmUgYSBVVEYtOCBl
bmNvZGVkIHN0cmluZyBjb250YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgorICAgKgorICAg
KiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBVVEYtOCBl
bmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqIFxwYXJhbSBl
bmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0
aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAgICBNdXN0IGJlID49IGJlZ2luRG9j
LgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUg
ZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQu
CisgICAqIFxwYXJhbSBlcnJzIFtvdXRdIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlcyAoaWYgbm90
IE5VTEwpCisgICAqICAgICAgICBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdHMgZXJy
b3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBp
ZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisg
ICBlcnJvciBvY2N1cnJlZC4KKyAgICovCisgIHZpcnR1YWwgYm9vbCBwYXJzZSgKKyAgICAgIGNo
YXIgY29uc3QqIGJlZ2luRG9jLCBjaGFyIGNvbnN0KiBlbmREb2MsCisgICAgICBWYWx1ZSogcm9v
dCwgc3RkOjpzdHJpbmcqIGVycnMpID0gMDsKKworICBjbGFzcyBKU09OX0FQSSBGYWN0b3J5IHsK
KyAgcHVibGljOgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKSB7fQorICAgIC8qKiBcYnJpZWYgQWxs
b2NhdGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4KKyAgICAgKiBcdGhyb3cgc3Rk
OjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5n
cykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25z
dCA9IDA7CisgIH07ICAvLyBGYWN0b3J5Cit9OyAgLy8gQ2hhclJlYWRlcgorCisvKiogXGJyaWVm
IEJ1aWxkIGEgQ2hhclJlYWRlciBpbXBsZW1lbnRhdGlvbi4KKworVXNhZ2U6CitcY29kZQorICB1
c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYnVpbGRlcjsKKyAgYnVp
bGRlclsiY29sbGVjdENvbW1lbnRzIl0gPSBmYWxzZTsKKyAgVmFsdWUgdmFsdWU7CisgIHN0ZDo6
c3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSBwYXJzZUZyb21TdHJlYW0oYnVpbGRlciwgc3RkOjpj
aW4sICZ2YWx1ZSwgJmVycnMpOworXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBDaGFyUmVh
ZGVyQnVpbGRlciA6IHB1YmxpYyBDaGFyUmVhZGVyOjpGYWN0b3J5IHsKK3B1YmxpYzoKKyAgLy8g
Tm90ZTogV2UgdXNlIGEgSnNvbjo6VmFsdWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVy
cyB0byB0aGlzIGNsYXNzCisgIC8vIHdpdGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCisgIC8q
KiBDb25maWd1cmF0aW9uIG9mIHRoaXMgYnVpbGRlci4KKyAgICBUaGVzZSBhcmUgY2FzZS1zZW5z
aXRpdmUuCisgICAgQXZhaWxhYmxlIHNldHRpbmdzIChjYXNlLXNlbnNpdGl2ZSk6CisgICAgLSBg
ImNvbGxlY3RDb21tZW50cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgdG8gY29sbGVj
dCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgICAgICAgYmFjayBkdXJpbmcgc2Vy
aWFsaXphdGlvbiwgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAgICAgICAgVGhpcyBwYXJh
bWV0ZXIgaXMgaWdub3JlZCBpZiBhbGxvd0NvbW1lbnRzIGlzIGZhbHNlLgorICAgIC0gYCJhbGxv
d0NvbW1lbnRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBjb21tZW50cyBhcmUg
YWxsb3dlZC4KKyAgICAtIGAic3RyaWN0Um9vdCI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRy
dWUgaWYgcm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUKKyAg
ICAtIGAiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWVgCisgICAg
ICAtIHRydWUgaWYgZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVycyBhcmUgYWxsb3dlZC4gKFNlZSBT
dHJlYW1Xcml0ZXJCdWlsZGVyLikKKyAgICAtIGAiYWxsb3dOdW1lcmljS2V5cyI6IGZhbHNlIG9y
IHRydWVgCisgICAgICAtIHRydWUgaWYgbnVtZXJpYyBvYmplY3Qga2V5cyBhcmUgYWxsb3dlZC4K
KyAgICAtIGAiYWxsb3dTaW5nbGVRdW90ZXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVl
IGlmICcnIGFyZSBhbGxvd2VkIGZvciBzdHJpbmdzIChib3RoIGtleXMgYW5kIHZhbHVlcykKKyAg
ICAtIGAic3RhY2tMaW1pdCI6IGludGVnZXJgCisgICAgICAtIEV4Y2VlZGluZyBzdGFja0xpbWl0
IChyZWN1cnNpdmUgZGVwdGggb2YgYHJlYWRWYWx1ZSgpYCkgd2lsbAorICAgICAgICBjYXVzZSBh
biBleGNlcHRpb24uCisgICAgICAtIFRoaXMgaXMgYSBzZWN1cml0eSBpc3N1ZSAoc2VnLWZhdWx0
cyBjYXVzZWQgYnkgZGVlcGx5IG5lc3RlZCBKU09OKSwKKyAgICAgICAgc28gdGhlIGRlZmF1bHQg
aXMgbG93LgorICAgIC0gYCJmYWlsSWZFeHRyYSI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIElm
IHRydWUsIGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gZXh0cmEgbm9uLXdoaXRlc3BhY2Ug
dHJhaWxzCisgICAgICAgIHRoZSBKU09OIHZhbHVlIGluIHRoZSBpbnB1dCBzdHJpbmcuCisgICAg
LSBgInJlamVjdER1cEtleXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBgcGFy
c2UoKWAgcmV0dXJucyBmYWxzZSB3aGVuIGEga2V5IGlzIGR1cGxpY2F0ZWQgd2l0aGluIGFuIG9i
amVjdC4KKyAgICAtIGAiYWxsb3dTcGVjaWFsRmxvYXRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAg
IC0gSWYgdHJ1ZSwgc3BlY2lhbCBmbG9hdCB2YWx1ZXMgKE5hTnMgYW5kIGluZmluaXRpZXMpIGFy
ZSBhbGxvd2VkIAorICAgICAgICBhbmQgdGhlaXIgdmFsdWVzIGFyZSBsb3NzZnJlZSByZXN0b3Jh
YmxlLgorCisgICAgWW91IGNhbiBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCisgICAgdG8g
c2VlIHRoZSBkZWZhdWx0cy4gWW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVzdCBs
aWtlIGFueQorICAgIEpTT04gVmFsdWUuCisgICAgXHNhIHNldERlZmF1bHRzKCkKKyAgICAqLwor
ICBKc29uOjpWYWx1ZSBzZXR0aW5nc187CisKKyAgQ2hhclJlYWRlckJ1aWxkZXIoKTsKKyAgfkNo
YXJSZWFkZXJCdWlsZGVyKCk7CisKKyAgQ2hhclJlYWRlciogbmV3Q2hhclJlYWRlcigpIGNvbnN0
OworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwgYW5kIGNvbnNp
c3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3MgdmlhICdpbnZh
bGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0
OworCisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEgc3BlY2lmaWMgc2V0dGluZy4KKyAg
ICovCisgIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGtleSk7CisKKyAgLyoqIENhbGxl
ZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byByZXNldCBzZXR0aW5nc18uCisgICAq
IFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6bnVsbCBpcyBmaW5lKQorICAgKiBc
cmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIu
Y3BwIENoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHMKKyAgICovCisgIHN0YXRpYyB2b2lkIHNldERl
ZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7CisgIC8qKiBTYW1lIGFzIG9sZCBGZWF0dXJl
czo6c3RyaWN0TW9kZSgpLgorICAgKiBccHJlICdzZXR0aW5ncycgIT0gTlVMTCAoYnV0IEpzb246
Om51bGwgaXMgZmluZSkKKyAgICogXHJlbWFyayBEZWZhdWx0czoKKyAgICogXHNuaXBwZXQgc3Jj
L2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRlclN0cmljdE1vZGUKKyAg
ICovCisgIHN0YXRpYyB2b2lkIHN0cmljdE1vZGUoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKK307
CisKKy8qKiBDb25zdW1lIGVudGlyZSBzdHJlYW0gYW5kIHVzZSBpdHMgYmVnaW4vZW5kLgorICAq
IFNvbWVkYXkgd2UgbWlnaHQgaGF2ZSBhIHJlYWwgU3RyZWFtUmVhZGVyLCBidXQgZm9yIG5vdyB0
aGlzCisgICogaXMgY29udmVuaWVudC4KKyAgKi8KK2Jvb2wgSlNPTl9BUEkgcGFyc2VGcm9tU3Ry
ZWFtKAorICAgIENoYXJSZWFkZXI6OkZhY3RvcnkgY29uc3QmLAorICAgIHN0ZDo6aXN0cmVhbSYs
CisgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKTsKKworLyoqIFxicmllZiBSZWFk
IGZyb20gJ3NpbicgaW50byAncm9vdCcuCisKKyBBbHdheXMga2VlcCBjb21tZW50cyBmcm9tIHRo
ZSBpbnB1dCBKU09OLgorCisgVGhpcyBjYW4gYmUgdXNlZCB0byByZWFkIGEgZmlsZSBpbnRvIGEg
cGFydGljdWxhciBzdWItb2JqZWN0LgorIEZvciBleGFtcGxlOgorIFxjb2RlCisgSnNvbjo6VmFs
dWUgcm9vdDsKKyBjaW4gPj4gcm9vdFsiZGlyIl1bImZpbGUiXTsKKyBjb3V0IDw8IHJvb3Q7Cisg
XGVuZGNvZGUKKyBSZXN1bHQ6CisgXHZlcmJhdGltCisgeworICJkaXIiOiB7CisgICAgICJmaWxl
IjogeworICAgICAvLyBUaGUgaW5wdXQgc3RyZWFtIEpTT04gd291bGQgYmUgbmVzdGVkIGhlcmUu
CisgICAgIH0KKyB9CisgfQorIFxlbmR2ZXJiYXRpbQorIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBv
biBwYXJzZSBlcnJvci4KKyBcc2VlIEpzb246Om9wZXJhdG9yPDwoKQorKi8KK0pTT05fQVBJIHN0
ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mLCBWYWx1ZSYpOworCit9IC8vIG5h
bWVzcGFjZSBKc29uCisKKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworI2VuZGlmIC8vIENQUFRMX0pT
T05fUkVBREVSX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRl
bnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3JlYWRlci5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKwor
CisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxl
OiBpbmNsdWRlL2pzb24vd3JpdGVyLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0
IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGlu
IHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRlZiBK
U09OX1dSSVRFUl9IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fV1JJVEVSX0hfSU5DTFVERUQKKwor
I2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgInZhbHVlLmgiCisj
ZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8dmVj
dG9yPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxvc3RyZWFtPgorCisvLyBEaXNhYmxl
IHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1p
bnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJM
RV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEg
d2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElT
QUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKK25hbWVzcGFjZSBKc29uIHsKKworY2xhc3Mg
VmFsdWU7CisKKy8qKgorCitVc2FnZToKK1xjb2RlCisgIHVzaW5nIG5hbWVzcGFjZSBKc29uOwor
ICB2b2lkIHdyaXRlVG9TdGRvdXQoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0b3J5
LCBWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RyZWFtV3JpdGVy
PiBjb25zdCB3cml0ZXIoCisgICAgICBmYWN0b3J5Lm5ld1N0cmVhbVdyaXRlcigpKTsKKyAgICB3
cml0ZXItPndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgICBzdGQ6OmNvdXQgPDwgc3RkOjpl
bmRsOyAgLy8gYWRkIGxmIGFuZCBmbHVzaAorICB9CitcZW5kY29kZQorKi8KK2NsYXNzIEpTT05f
QVBJIFN0cmVhbVdyaXRlciB7Citwcm90ZWN0ZWQ6CisgIHN0ZDo6b3N0cmVhbSogc291dF87ICAv
LyBub3Qgb3duZWQ7IHdpbGwgbm90IGRlbGV0ZQorcHVibGljOgorICBTdHJlYW1Xcml0ZXIoKTsK
KyAgdmlydHVhbCB+U3RyZWFtV3JpdGVyKCk7CisgIC8qKiBXcml0ZSBWYWx1ZSBpbnRvIGRvY3Vt
ZW50IGFzIGNvbmZpZ3VyZWQgaW4gc3ViLWNsYXNzLgorICAgICAgRG8gbm90IHRha2Ugb3duZXJz
aGlwIG9mIHNvdXQsIGJ1dCBtYWludGFpbiBhIHJlZmVyZW5jZSBkdXJpbmcgZnVuY3Rpb24uCisg
ICAgICBccHJlIHNvdXQgIT0gTlVMTAorICAgICAgXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MgKEZv
ciBub3csIHdlIGFsd2F5cyByZXR1cm4gemVybywgc28gY2hlY2sgdGhlIHN0cmVhbSBpbnN0ZWFk
LikKKyAgICAgIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBwb3NzaWJseSwgZGVwZW5kaW5nIG9uIGNv
bmZpZ3VyYXRpb24KKyAgICovCisgIHZpcnR1YWwgaW50IHdyaXRlKFZhbHVlIGNvbnN0JiByb290
LCBzdGQ6Om9zdHJlYW0qIHNvdXQpID0gMDsKKworICAvKiogXGJyaWVmIEEgc2ltcGxlIGFic3Ry
YWN0IGZhY3RvcnkuCisgICAqLworICBjbGFzcyBKU09OX0FQSSBGYWN0b3J5IHsKKyAgcHVibGlj
OgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKTsKKyAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEgQ2hh
clJlYWRlciB2aWEgb3BlcmF0b3IgbmV3KCkuCisgICAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9u
IGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCisgICAgICov
CisgICAgdmlydHVhbCBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVhbVdyaXRlcigpIGNvbnN0ID0gMDsK
KyAgfTsgIC8vIEZhY3RvcnkKK307ICAvLyBTdHJlYW1Xcml0ZXIKKworLyoqIFxicmllZiBXcml0
ZSBpbnRvIHN0cmluZ3N0cmVhbSwgdGhlbiByZXR1cm4gc3RyaW5nLCBmb3IgY29udmVuaWVuY2Uu
CisgKiBBIFN0cmVhbVdyaXRlciB3aWxsIGJlIGNyZWF0ZWQgZnJvbSB0aGUgZmFjdG9yeSwgdXNl
ZCwgYW5kIHRoZW4gZGVsZXRlZC4KKyAqLworc3RkOjpzdHJpbmcgSlNPTl9BUEkgd3JpdGVTdHJp
bmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0b3J5LCBWYWx1ZSBjb25zdCYgcm9v
dCk7CisKKworLyoqIFxicmllZiBCdWlsZCBhIFN0cmVhbVdyaXRlciBpbXBsZW1lbnRhdGlvbi4K
KworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgVmFsdWUgdmFsdWUg
PSAuLi47CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRlcjsKKyAgYnVpbGRlclsiY29tbWVu
dFN0eWxlIl0gPSAiTm9uZSI7CisgIGJ1aWxkZXJbImluZGVudGF0aW9uIl0gPSAiICAgIjsgIC8v
IG9yIHdoYXRldmVyIHlvdSBsaWtlCisgIHN0ZDo6dW5pcXVlX3B0cjxKc29uOjpTdHJlYW1Xcml0
ZXI+IHdyaXRlcigKKyAgICAgIGJ1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXIt
PndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8v
IGFkZCBsZiBhbmQgZmx1c2gKK1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgU3RyZWFtV3Jp
dGVyQnVpbGRlciA6IHB1YmxpYyBTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgeworcHVibGljOgorICAv
LyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0IHdlIGNhbiBhZGQgZGF0YS1tZW1i
ZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1ham9yIHZlcnNpb24gYnVtcC4KKyAg
LyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgorICAgIEF2YWlsYWJsZSBzZXR0aW5n
cyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gImNvbW1lbnRTdHlsZSI6ICJOb25lIiBvciAiQWxs
IgorICAgIC0gImluZGVudGF0aW9uIjogICI8YW55dGhpbmc+IgorICAgIC0gImVuYWJsZVlBTUxD
b21wYXRpYmlsaXR5IjogZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBzbGlnaHRseSBjaGFuZ2UgdGhl
IHdoaXRlc3BhY2UgYXJvdW5kIGNvbG9ucworICAgIC0gImRyb3BOdWxsUGxhY2Vob2xkZXJzIjog
ZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBEcm9wIHRoZSAibnVsbCIgc3RyaW5nIGZyb20gdGhlIHdy
aXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVlcy4KKyAgICAgICAgU3RyaWN0bHkgc3BlYWtpbmcs
IHRoaXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3aGVuIHRoZSBvdXRwdXQgaXMgYmVpbmcKKyAg
ICAgICAgZmVkIHRvIGEgYnJvd3NlcidzIEphdmFzY3JpcHQsIGl0IG1ha2VzIGZvciBzbWFsbGVy
IG91dHB1dCBhbmQgdGhlCisgICAgICAgIGJyb3dzZXIgY2FuIGhhbmRsZSB0aGUgb3V0cHV0IGp1
c3QgZmluZS4KKyAgICAtICJ1c2VTcGVjaWFsRmxvYXRzIjogZmFsc2Ugb3IgdHJ1ZQorICAgICAg
LSBJZiB0cnVlLCBvdXRwdXRzIG5vbi1maW5pdGUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGluIHRo
ZSBmb2xsb3dpbmcgd2F5OgorICAgICAgICBOYU4gdmFsdWVzIGFzICJOYU4iLCBwb3NpdGl2ZSBp
bmZpbml0eSBhcyAiSW5maW5pdHkiLCBhbmQgbmVnYXRpdmUgaW5maW5pdHkKKyAgICAgICAgYXMg
Ii1JbmZpbml0eSIuCisKKyAgICBZb3UgY2FuIGV4YW1pbmUgJ3NldHRpbmdzX2AgeW91cnNlbGYK
KyAgICB0byBzZWUgdGhlIGRlZmF1bHRzLiBZb3UgY2FuIGFsc28gd3JpdGUgYW5kIHJlYWQgdGhl
bSBqdXN0IGxpa2UgYW55CisgICAgSlNPTiBWYWx1ZS4KKyAgICBcc2Egc2V0RGVmYXVsdHMoKQor
ICAgICovCisgIEpzb246OlZhbHVlIHNldHRpbmdzXzsKKworICBTdHJlYW1Xcml0ZXJCdWlsZGVy
KCk7CisgIH5TdHJlYW1Xcml0ZXJCdWlsZGVyKCk7CisKKyAgLyoqCisgICAqIFx0aHJvdyBzdGQ6
OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoZS5nLiBpbnZhbGlkIHNldHRpbmdz
KQorICAgKi8KKyAgU3RyZWFtV3JpdGVyKiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdDsKKworICAv
KiogXHJldHVybiB0cnVlIGlmICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50Owor
ICAgKiAgIG90aGVyd2lzZSwgaW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcuCisg
ICAqLworICBib29sIHZhbGlkYXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKKyAgLyoq
IEEgc2ltcGxlIHdheSB0byB1cGRhdGUgYSBzcGVjaWZpYyBzZXR0aW5nLgorICAgKi8KKyAgVmFs
dWUmIG9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KTsKKworICAvKiogQ2FsbGVkIGJ5IGN0b3Is
IGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRpbmdzXy4KKyAgICogXHByZSAnc2V0
dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCisgICAqIFxyZW1hcmsgRGVm
YXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAgU3RyZWFt
V3JpdGVyQnVpbGRlckRlZmF1bHRzCisgICAqLworICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0cyhK
c29uOjpWYWx1ZSogc2V0dGluZ3MpOworfTsKKworLyoqIFxicmllZiBBYnN0cmFjdCBjbGFzcyBm
b3Igd3JpdGVycy4KKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXIuIChBbmQgcmVhbGx5
LCB0aGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pCisgKi8KK2NsYXNzIEpTT05fQVBJ
IFdyaXRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfldyaXRlcigpOworCisgIHZpcnR1YWwgc3Rk
OjpzdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpID0gMDsKK307CisKKy8qKiBcYnJpZWYg
T3V0cHV0cyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+
IGZvcm1hdAorICp3aXRob3V0IGZvcm1hdHRpbmcgKG5vdCBodW1hbiBmcmllbmRseSkuCisgKgor
ICogVGhlIEpTT04gZG9jdW1lbnQgaXMgd3JpdHRlbiBpbiBhIHNpbmdsZSBsaW5lLiBJdCBpcyBu
b3QgaW50ZW5kZWQgZm9yICdodW1hbicKKyAqY29uc3VtcHRpb24sCisgKiBidXQgbWF5IGJlIHVz
ZWZ1bGwgdG8gc3VwcG9ydCBmZWF0dXJlIHN1Y2ggYXMgUlBDIHdoZXJlIGJhbmR3aXRoIGlzIGxp
bWl0ZWQuCisgKiBcc2EgUmVhZGVyLCBWYWx1ZQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdy
aXRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIEZhc3RXcml0ZXIgOiBwdWJsaWMgV3Jp
dGVyIHsKKworcHVibGljOgorICBGYXN0V3JpdGVyKCk7CisgIH5GYXN0V3JpdGVyKCkge30KKwor
ICB2b2lkIGVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCk7CisKKyAgLyoqIFxicmllZiBEcm9wIHRo
ZSAibnVsbCIgc3RyaW5nIGZyb20gdGhlIHdyaXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVlcy4K
KyAgICogU3RyaWN0bHkgc3BlYWtpbmcsIHRoaXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3aGVu
IHRoZSBvdXRwdXQgaXMgYmVpbmcKKyAgICogZmVkIHRvIGEgYnJvd3NlcidzIEphdmFzY3JpcHQs
IGl0IG1ha2VzIGZvciBzbWFsbGVyIG91dHB1dCBhbmQgdGhlCisgICAqIGJyb3dzZXIgY2FuIGhh
bmRsZSB0aGUgb3V0cHV0IGp1c3QgZmluZS4KKyAgICovCisgIHZvaWQgZHJvcE51bGxQbGFjZWhv
bGRlcnMoKTsKKworICB2b2lkIG9taXRFbmRpbmdMaW5lRmVlZCgpOworCitwdWJsaWM6IC8vIG92
ZXJyaWRkZW4gZnJvbSBXcml0ZXIKKyAgc3RkOjpzdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJv
b3QpOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsK
KworICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIGJvb2wgeWFtbENvbXBhdGlibGl0eUVuYWJs
ZWRfOworICBib29sIGRyb3BOdWxsUGxhY2Vob2xkZXJzXzsKKyAgYm9vbCBvbWl0RW5kaW5nTGlu
ZUZlZWRfOworfTsKKworLyoqIFxicmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRw
Oi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgaW4gYQorICpodW1hbiBmcmllbmRseSB3
YXkuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJlIGFzIGZv
bGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCB7
fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICogICAgIC0gaWYgbm90IGVtcHR5IHRo
ZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9uZSB2YWx1ZSBwZXIKKyAq
bGluZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHByaW50
ICd9Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IFtd
IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkgY29u
dGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVlCisg
KnR5cGVzLAorICogICAgICAgYW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMsIHRo
ZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlCisgKmxpbmUuCisgKiAgICAgLSBvdGhlcndp
c2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3IgdGhlIGFycmF5IGNv
bnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0aGVuIHByaW50IG9u
ZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFsdWUgaGF2ZSBjb21tZW50cyB0aGVu
IHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgorICojQ29tbWVudFBsYWNlbWVu
dC4KKyAqCisgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICogXGRl
cHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFN0
eWxlZFdyaXRlciA6IHB1YmxpYyBXcml0ZXIgeworcHVibGljOgorICBTdHlsZWRXcml0ZXIoKTsK
KyAgflN0eWxlZFdyaXRlcigpIHt9CisKK3B1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFdyaXRl
cgorICAvKiogXGJyaWVmIFNlcmlhbGl6ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cu
anNvbi5vcmciPkpTT048L2E+IGZvcm1hdC4KKyAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2Vy
aWFsaXplLgorICAgKiBccmV0dXJuIFN0cmluZyBjb250YWluaW5nIHRoZSBKU09OIGRvY3VtZW50
IHRoYXQgcmVwcmVzZW50cyB0aGUgcm9vdCB2YWx1ZS4KKyAgICovCisgIHN0ZDo6c3RyaW5nIHdy
aXRlKGNvbnN0IFZhbHVlJiByb290KTsKKworcHJpdmF0ZToKKyAgdm9pZCB3cml0ZVZhbHVlKGNv
bnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2
YWx1ZSk7CisgIGJvb2wgaXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9p
ZCBwdXNoVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUluZGVu
dCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOwor
ICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21tZW50
QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFmdGVy
VmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KTsKKyAgYm9vbCBoYXNDb21tZW50Rm9y
VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgc3RhdGljIHN0ZDo6c3RyaW5nIG5vcm1hbGl6
ZUVPTChjb25zdCBzdGQ6OnN0cmluZyYgdGV4dCk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjxz
dGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNfOwor
ICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIHN0ZDo6c3RyaW5nIGluZGVudFN0cmluZ187Cisg
IGludCByaWdodE1hcmdpbl87CisgIGludCBpbmRlbnRTaXplXzsKKyAgYm9vbCBhZGRDaGlsZFZh
bHVlc187Cit9OworCisvKiogXGJyaWVmIFdyaXRlcyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6
Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBhCisgaHVtYW4gZnJpZW5kbHkgd2F5
LAorICAgICB0byBhIHN0cmVhbSByYXRoZXIgdGhhbiB0byBhIHN0cmluZy4KKyAqCisgKiBUaGUg
cnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUgYXMgZm9sbG93OgorICogLSBPYmpl
Y3QgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IHt9IHdpdGhvdXQgaW5kZW50
IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiBub3QgZW1wdHkgdGhlIHByaW50ICd7JywgbGlu
ZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBlcgorIGxpbmUKKyAqICAgICAgIGFu
ZCB0aGVuIHVuaW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCisgKiAtIEFycmF5
IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBh
bmQgbGluZSBicmVhaworICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2
YWx1ZSwgZW1wdHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQorIHR5cGVzLAorICogICAgICAg
YW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMsIHRoZW4gcHJpbnQgdGhlIGFycmF5
IG9uIGEgc2luZ2xlCisgbGluZS4KKyAqICAgICAtIG90aGVyd2lzZSwgaXQgdGhlIHZhbHVlcyBk
byBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkgY29udGFpbnMKKyAqICAgICAgIG9i
amVjdCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQgb25lIHZhbHVlIHBlciBsaW5lLgor
ICoKKyAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRzIHRoZW4gdGhleSBhcmUgb3V0cHV0ZWQg
YWNjb3JkaW5nIHRvIHRoZWlyCisgI0NvbW1lbnRQbGFjZW1lbnQuCisgKgorICogXHBhcmFtIGlu
ZGVudGF0aW9uIEVhY2ggbGV2ZWwgd2lsbCBiZSBpbmRlbnRlZCBieSB0aGlzIGFtb3VudCBleHRy
YS4KKyAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0Q29tbWVudCgpCisgKiBcZGVwcmVj
YXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgU3R5bGVk
U3RyZWFtV3JpdGVyIHsKK3B1YmxpYzoKKyAgU3R5bGVkU3RyZWFtV3JpdGVyKHN0ZDo6c3RyaW5n
IGluZGVudGF0aW9uID0gIlx0Iik7CisgIH5TdHlsZWRTdHJlYW1Xcml0ZXIoKSB7fQorCitwdWJs
aWM6CisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3
dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0gb3V0IFN0cmVhbSB0byB3
cml0ZSB0by4gKENhbiBiZSBvc3RyaW5nc3RyZWFtLCBlLmcuKQorICAgKiBccGFyYW0gcm9vdCBW
YWx1ZSB0byBzZXJpYWxpemUuCisgICAqIFxub3RlIFRoZXJlIGlzIG5vIHBvaW50IGluIGRlcml2
aW5nIGZyb20gV3JpdGVyLCBzaW5jZSB3cml0ZSgpIHNob3VsZCBub3QKKyAgICogcmV0dXJuIGEg
dmFsdWUuCisgICAqLworICB2b2lkIHdyaXRlKHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBWYWx1
ZSYgcm9vdCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFs
dWUpOworICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBib29s
IGlzTXVsdGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKGNv
bnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9pZCB3
cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCBpbmRlbnQo
KTsKKyAgdm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNv
bnN0IFZhbHVlJiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGlu
ZShjb25zdCBWYWx1ZSYgcm9vdCk7CisgIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZh
bHVlJiB2YWx1ZSk7CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qgc3Rk
OjpzdHJpbmcmIHRleHQpOworCisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENo
aWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgc3RkOjpvc3RyZWFt
KiBkb2N1bWVudF87CisgIHN0ZDo6c3RyaW5nIGluZGVudFN0cmluZ187CisgIGludCByaWdodE1h
cmdpbl87CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0aW9uXzsKKyAgYm9vbCBhZGRDaGlsZFZhbHVl
c18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7Cit9OworCisjaWYgZGVmaW5lZChKU09OX0hB
U19JTlQ2NCkKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoSW50IHZhbHVlKTsK
K3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoVUludCB2YWx1ZSk7CisjZW5kaWYg
Ly8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRv
U3RyaW5nKExhcmdlc3RVSW50IHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9T
dHJpbmcoZG91YmxlIHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmco
Ym9vbCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvUXVvdGVkU3RyaW5nKGNv
bnN0IGNoYXIqIHZhbHVlKTsKKworLy8vIFxicmllZiBPdXRwdXQgdXNpbmcgdGhlIFN0eWxlZFN0
cmVhbVdyaXRlci4KKy8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oKQorSlNPTl9BUEkgc3RkOjpv
c3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IFZhbHVlJiByb290KTsKKwor
fSAvLyBuYW1lc3BhY2UgSnNvbgorCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lO
VEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBkZWZp
bmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNlbmRpZiAvLyBK
U09OX1dSSVRFUl9IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250
ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi93cml0ZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisK
KworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5
cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIg
TUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6
ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwg
b3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZu
ZGVmIENQUFRMX0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05f
QVNTRVJUSU9OU19IX0lOQ0xVREVECisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxz
c3RyZWFtPgorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisK
Ky8qKiBJdCBzaG91bGQgbm90IGJlIHBvc3NpYmxlIGZvciBhIG1hbGljaW91c2x5IGRlc2lnbmVk
IGZpbGUgdG8KKyAqICBjYXVzZSBhbiBhYm9ydCgpIG9yIHNlZy1mYXVsdCwgc28gdGhlc2UgbWFj
cm9zIGFyZSB1c2VkIG9ubHkKKyAqICBmb3IgcHJlLWNvbmRpdGlvbiB2aW9sYXRpb25zIGFuZCBp
bnRlcm5hbCBsb2dpYyBlcnJvcnMuCisgKi8KKyNpZiBKU09OX1VTRV9FWENFUFRJT04KKworLy8g
QHRvZG8gPD0gYWRkIGRldGFpbCBhYm91dCBjb25kaXRpb24gaW4gZXhjZXB0aW9uCisjIGRlZmlu
ZSBKU09OX0FTU0VSVChjb25kaXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICB7aWYgKCEoY29uZGl0aW9uKSkge0pzb246OnRocm93TG9naWNF
cnJvciggImFzc2VydCBqc29uIGZhaWxlZCIgKTt9fQorCisjIGRlZmluZSBKU09OX0ZBSUxfTUVT
U0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3NzOyBv
c3MgPDwgbWVzc2FnZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
SnNvbjo6dGhyb3dMb2dpY0Vycm9yKG9zcy5zdHIoKSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIGFib3J0KCk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCisjZWxz
ZSAvLyBKU09OX1VTRV9FWENFUFRJT04KKworIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0aW9u
KSBhc3NlcnQoY29uZGl0aW9uKQorCisvLyBUaGUgY2FsbCB0byBhc3NlcnQoKSB3aWxsIHNob3cg
dGhlIGZhaWx1cmUgbWVzc2FnZSBpbiBkZWJ1ZyBidWlsZHMuIEluCisvLyByZWxlYXNlIGJ1aWxk
cyB3ZSBhYm9ydCwgZm9yIGEgY29yZS1kdW1wIG9yIGRlYnVnZ2VyLgorIyBkZWZpbmUgSlNPTl9G
QUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RkOjpvc3RyaW5nc3RyZWFt
IG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIGFzc2VydChmYWxzZSAmJiBvc3Muc3RyKCkuY19zdHIoKSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhYm9ydCgpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0K
KworCisjZW5kaWYKKworI2RlZmluZSBKU09OX0FTU0VSVF9NRVNTQUdFKGNvbmRpdGlvbiwgbWVz
c2FnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKCEoY29uZGl0aW9u
KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNlbmRpZiAvLyBDUFBUTF9K
U09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2Yg
Y29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKKworCisKKworI2VuZGlmIC8vaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVERUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbmNwcC5jcHAgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MzI4
NzMyN2MwZDY2MzIxNTA1ZWFkMmQyZWU0NjdlNzM5ZjE1ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwCkBAIC0wLDAgKzEsNTI2NiBA
QAorLy8vIEpzb24tY3BwIGFtYWxnYXRlZCBzb3VyY2UgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZv
cmdlLm5ldC8pLgorLy8vIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAi
anNvbi9qc29uLmgiCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50
IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLyoKK1RoZSBKc29uQ3BwIGxp
YnJhcnkncyBzb3VyY2UgY29kZSwgaW5jbHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9u
LCAKK3Rlc3RzIGFuZCBkZW1vbnN0cmF0aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVu
ZGVyIHRoZSBmb2xsb3dpbmcKK2NvbmRpdGlvbnMuLi4KKworVGhlIGF1dGhvciAoQmFwdGlzdGUg
TGVwaWxsZXVyKSBleHBsaWNpdGx5IGRpc2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAoranVyaXNk
aWN0aW9ucyB3aGljaCByZWNvZ25pemUgc3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNk
aWN0aW9ucywgCit0aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21h
aW4uCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9t
YWluIHByb3BlcnR5IChlLmcuIEdlcm1hbnkgYXMgb2YKKzIwMTApLCB0aGlzIHNvZnR3YXJlIGlz
IENvcHlyaWdodCAoYykgMjAwNy0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCity
ZWxlYXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgor
CitJbiBqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5
LCB0aGUgdXNlciBvZiB0aGlzIAorc29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0
aGVyIGFzIDEpIFB1YmxpYyBEb21haW4sIDIpIHVuZGVyIHRoZSAKK2NvbmRpdGlvbnMgb2YgdGhl
IE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAK
K1B1YmxpYyBEb21haW4vTUlUIExpY2Vuc2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMg
dGhleSBjaG9vc2UuCisKK1RoZSBNSVQgTGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJs
aWMgRG9tYWluIGFzIGEgbGljZW5zZSBjYW4gZ2V0LCBhbmQgaXMKK2Rlc2NyaWJlZCBpbiBjbGVh
ciwgY29uY2lzZSB0ZXJtcyBhdDoKKworICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9N
SVRfTGljZW5zZQorICAgCitUaGUgZnVsbCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dz
OgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExl
cGlsbGV1cgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbgorb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4g
dGhlIFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p
dGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAorbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCitvZiB0aGUgU29mdHdh
cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUKK2luY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKK0JFIExJQUJMRSBGT1Ig
QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorQUNU
SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE
RUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisoRU5EIExJQ0VOU0Ug
VEVYVCkKKworVGhlIE1JVCBsaWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwg
YW5kIGNvbW1lcmNpYWwKK3NvZnR3YXJlLCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRz
IG9mIFB1YmxpYyBEb21haW4gd2l0aCB0aGUKK21pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVp
cmVkIHRvIGtlZXAgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UKK2FuZCBsaWNlbnNlIHRleHQg
aW4gdGhlIHNvdXJjZSBjb2RlLiBOb3RlIGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCitQdWJs
aWMgRG9tYWluICJsaWNlbnNlIiB5b3UgY2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdo
YXRldmVyCitsaWNlbnNlIHlvdSBsaWtlLgorCisqLworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBF
bmQgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisK
KworCisjaW5jbHVkZSAianNvbi9qc29uLmgiCisKKyNpZm5kZWYgSlNPTl9JU19BTUFMR0FNQVRJ
T04KKyNlcnJvciAiQ29tcGlsZSB3aXRoIC1JIFBBVEhfVE9fSlNPTl9ESVJFQ1RPUlkiCisjZW5k
aWYKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxl
OiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJp
Z2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRl
ZiBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorI2RlZmluZSBMSUJfSlNPTkNQUF9K
U09OX1RPT0xfSF9JTkNMVURFRAorCisvKiBUaGlzIGhlYWRlciBwcm92aWRlcyBjb21tb24gc3Ry
aW5nIG1hbmlwdWxhdGlvbiBzdXBwb3J0LCBzdWNoIGFzIFVURi04LAorICogcG9ydGFibGUgY29u
dmVyc2lvbiBmcm9tL3RvIHN0cmluZy4uLgorICoKKyAqIEl0IGlzIGFuIGludGVybmFsIGhlYWRl
ciB0aGF0IG11c3Qgbm90IGJlIGV4cG9zZWQuCisgKi8KKworbmFtZXNwYWNlIEpzb24geworCisv
Ly8gQ29udmVydHMgYSB1bmljb2RlIGNvZGUtcG9pbnQgdG8gVVRGLTguCitzdGF0aWMgaW5saW5l
IHN0ZDo6c3RyaW5nIGNvZGVQb2ludFRvVVRGOCh1bnNpZ25lZCBpbnQgY3ApIHsKKyAgc3RkOjpz
dHJpbmcgcmVzdWx0OworCisgIC8vIGJhc2VkIG9uIGRlc2NyaXB0aW9uIGZyb20gaHR0cDovL2Vu
Lndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOAorCisgIGlmIChjcCA8PSAweDdmKSB7CisgICAgcmVz
dWx0LnJlc2l6ZSgxKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPihjcCk7Cisg
IH0gZWxzZSBpZiAoY3AgPD0gMHg3RkYpIHsKKyAgICByZXN1bHQucmVzaXplKDIpOworICAgIHJl
c3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7CisgICAgcmVz
dWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhDMCB8ICgweDFmICYgKGNwID4+IDYpKSk7Cisg
IH0gZWxzZSBpZiAoY3AgPD0gMHhGRkZGKSB7CisgICAgcmVzdWx0LnJlc2l6ZSgzKTsKKyAgICBy
ZXN1bHRbMl0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiBjcCkpOworICAgIHJl
c3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIChjcCA+PiA2KSkpOwor
ICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RTAgfCAoMHhmICYgKGNwID4+IDEy
KSkpOworICB9IGVsc2UgaWYgKGNwIDw9IDB4MTBGRkZGKSB7CisgICAgcmVzdWx0LnJlc2l6ZSg0
KTsKKyAgICByZXN1bHRbM10gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiBjcCkp
OworICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIChjcCA+
PiA2KSkpOworICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAm
IChjcCA+PiAxMikpKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigweEYwIHwg
KDB4NyAmIChjcCA+PiAxOCkpKTsKKyAgfQorCisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vLyBS
ZXR1cm5zIHRydWUgaWYgY2ggaXMgYSBjb250cm9sIGNoYXJhY3RlciAoaW4gcmFuZ2UgWzEsMzFd
KS4KK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRyb2xDaGFyYWN0ZXIoY2hhciBjaCkgeyByZXR1
cm4gY2ggPiAwICYmIGNoIDw9IDB4MUY7IH0KKworZW51bSB7CisgIC8vLyBDb25zdGFudCB0aGF0
IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0IG11c3QgYmUgcGFzc2VkIHRvCisg
IC8vLyB1aW50VG9TdHJpbmcuCisgIHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgPSAzICogc2l6ZW9m
KExhcmdlc3RVSW50KSArIDEKK307CisKKy8vIERlZmluZXMgYSBjaGFyIGJ1ZmZlciBmb3IgdXNl
IHdpdGggdWludFRvU3RyaW5nKCkuCit0eXBlZGVmIGNoYXIgVUludFRvU3RyaW5nQnVmZmVyW3Vp
bnRUb1N0cmluZ0J1ZmZlclNpemVdOworCisvKiogQ29udmVydHMgYW4gdW5zaWduZWQgaW50ZWdl
ciB0byBzdHJpbmcuCisgKiBAcGFyYW0gdmFsdWUgVW5zaWduZWQgaW50ZXJnZXIgdG8gY29udmVy
dCB0byBzdHJpbmcKKyAqIEBwYXJhbSBjdXJyZW50IElucHV0L091dHB1dCBzdHJpbmcgYnVmZmVy
LgorICogICAgICAgIE11c3QgaGF2ZSBhdCBsZWFzdCB1aW50VG9TdHJpbmdCdWZmZXJTaXplIGNo
YXJzIGZyZWUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJ
bnQgdmFsdWUsIGNoYXIqJiBjdXJyZW50KSB7CisgICotLWN1cnJlbnQgPSAwOworICBkbyB7Cisg
ICAgKi0tY3VycmVudCA9IHN0YXRpY19jYXN0PHNpZ25lZCBjaGFyPih2YWx1ZSAlIDEwVSArIHN0
YXRpY19jYXN0PHVuc2lnbmVkPignMCcpKTsKKyAgICB2YWx1ZSAvPSAxMDsKKyAgfSB3aGlsZSAo
dmFsdWUgIT0gMCk7Cit9CisKKy8qKiBDaGFuZ2UgJywnIHRvICcuJyBldmVyeXdoZXJlIGluIGJ1
ZmZlci4KKyAqCisgKiBXZSBoYWQgYSBzb3BoaXN0aWNhdGVkIHdheSwgYnV0IGl0IGRpZCBub3Qg
d29yayBpbiBXaW5DRS4KKyAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBh
cnNlcnMvanNvbmNwcC9wdWxsLzkKKyAqLworc3RhdGljIGlubGluZSB2b2lkIGZpeE51bWVyaWNM
b2NhbGUoY2hhciogYmVnaW4sIGNoYXIqIGVuZCkgeworICB3aGlsZSAoYmVnaW4gPCBlbmQpIHsK
KyAgICBpZiAoKmJlZ2luID09ICcsJykgeworICAgICAgKmJlZ2luID0gJy4nOworICAgIH0KKyAg
ICArK2JlZ2luOworICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIEpzb24geworCisjZW5kaWYgLy8g
TElCX0pTT05DUFBfSlNPTl9UT09MX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
RW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdG9vbC5oCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2Yg
Y29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBE
aXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVk
IGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJ
Q0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5l
dC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRl
IDxqc29uL2Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxqc29uL3JlYWRlci5oPgorI2luY2x1ZGUg
PGpzb24vdmFsdWUuaD4KKyNpbmNsdWRlICJqc29uX3Rvb2wuaCIKKyNlbmRpZiAvLyBpZiAhZGVm
aW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUg
PGNzdGRpbz4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVk
ZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDxzZXQ+CisjaW5jbHVkZSA8bGltaXRzPgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNp
ZiAhZGVmaW5lZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9fKSAmJiBfTVND
X1ZFUiA+PSAxNTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZSAKKyNkZWZpbmUgc25wcmludGYgc3By
aW50Zl9zCisjZWxpZiBfTVNDX1ZFUiA+PSAxOTAwIC8vIFZDKysgMTQuMCBhbmQgYWJvdmUKKyNk
ZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2Vsc2UKKyNkZWZpbmUgc25wcmludGYgX3Nu
cHJpbnRmCisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX19BTkRST0lEX18pIHx8IGRlZmluZWQoX19R
TlhOVE9fXykKKyNkZWZpbmUgc25wcmludGYgc25wcmludGYKKyNlbGlmIF9fY3BsdXNwbHVzID49
IDIwMTEwM0wKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2VuZGlmCisKKyNpZiBk
ZWZpbmVkKF9fUU5YTlRPX18pCisjZGVmaW5lIHNzY2FuZiBzdGQ6OnNzY2FuZgorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNDAwIC8vIFZDKysgOC4wCisv
LyBEaXNhYmxlIHdhcm5pbmcgYWJvdXQgc3RyZHVwIGJlaW5nIGRlcHJlY2F0ZWQuCisjcHJhZ21h
IHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpCisjZW5kaWYKKworc3RhdGljIGludCBjb25zdCBzdGFj
a0xpbWl0X2cgPSAxMDAwOworc3RhdGljIGludCAgICAgICBzdGFja0RlcHRoX2cgPSAwOyAgLy8g
c2VlIHJlYWRWYWx1ZSgpCisKK25hbWVzcGFjZSBKc29uIHsKKworI2lmIF9fY3BsdXNwbHVzID49
IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49IDUyMCkK
K3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENoYXJSZWFkZXI+IENoYXJSZWFkZXJQdHI7CisjZWxz
ZQordHlwZWRlZiBzdGQ6OmF1dG9fcHRyPENoYXJSZWFkZXI+ICAgQ2hhclJlYWRlclB0cjsKKyNl
bmRpZgorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBGZWF0dXJlcworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworRmVhdHVyZXM6OkZlYXR1cmVzKCkKKyAgICA6IGFs
bG93Q29tbWVudHNfKHRydWUpLCBzdHJpY3RSb290XyhmYWxzZSksCisgICAgICBhbGxvd0Ryb3Bw
ZWROdWxsUGxhY2Vob2xkZXJzXyhmYWxzZSksIGFsbG93TnVtZXJpY0tleXNfKGZhbHNlKSB7fQor
CitGZWF0dXJlcyBGZWF0dXJlczo6YWxsKCkgeyByZXR1cm4gRmVhdHVyZXMoKTsgfQorCitGZWF0
dXJlcyBGZWF0dXJlczo6c3RyaWN0TW9kZSgpIHsKKyAgRmVhdHVyZXMgZmVhdHVyZXM7CisgIGZl
YXR1cmVzLmFsbG93Q29tbWVudHNfID0gZmFsc2U7CisgIGZlYXR1cmVzLnN0cmljdFJvb3RfID0g
dHJ1ZTsKKyAgZmVhdHVyZXMuYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18gPSBmYWxzZTsK
KyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBmYWxzZTsKKyAgcmV0dXJuIGZlYXR1cmVz
OworfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK3N0YXRpYyBib29sIGNvbnRhaW5zTmV3TGluZShSZWFk
ZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBmb3IgKDsgYmVn
aW4gPCBlbmQ7ICsrYmVnaW4pCisgICAgaWYgKCpiZWdpbiA9PSAnXG4nIHx8ICpiZWdpbiA9PSAn
XHInKQorICAgICAgcmV0dXJuIHRydWU7CisgIHJldHVybiBmYWxzZTsKK30KKworLy8gQ2xhc3Mg
UmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworUmVhZGVyOjpSZWFkZXIoKQorICAgIDogZXJyb3JzXygp
LCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5k
XygpLAorICAgICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwgZmVhdHVyZXNfKEZl
YXR1cmVzOjphbGwoKSksCisgICAgICBjb2xsZWN0Q29tbWVudHNfKCkge30KKworUmVhZGVyOjpS
ZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVu
dF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAorICAg
ICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwgZmVhdHVyZXNfKGZlYXR1cmVzKSwg
Y29sbGVjdENvbW1lbnRzXygpIHsKK30KKworYm9vbAorUmVhZGVyOjpwYXJzZShjb25zdCBzdGQ6
OnN0cmluZyYgZG9jdW1lbnQsIFZhbHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cykgewor
ICBkb2N1bWVudF8gPSBkb2N1bWVudDsKKyAgY29uc3QgY2hhciogYmVnaW4gPSBkb2N1bWVudF8u
Y19zdHIoKTsKKyAgY29uc3QgY2hhciogZW5kID0gYmVnaW4gKyBkb2N1bWVudF8ubGVuZ3RoKCk7
CisgIHJldHVybiBwYXJzZShiZWdpbiwgZW5kLCByb290LCBjb2xsZWN0Q29tbWVudHMpOworfQor
Citib29sIFJlYWRlcjo6cGFyc2Uoc3RkOjppc3RyZWFtJiBzaW4sIFZhbHVlJiByb290LCBib29s
IGNvbGxlY3RDb21tZW50cykgeworICAvLyBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4gYmVn
aW4oc2luKTsKKyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGVuZDsKKyAgLy8gVGhv
c2Ugd291bGQgYWxsb3cgc3RyZWFtZWQgaW5wdXQgZnJvbSBhIGZpbGUsIGlmIHBhcnNlKCkgd2Vy
ZSBhCisgIC8vIHRlbXBsYXRlIGZ1bmN0aW9uLgorCisgIC8vIFNpbmNlIHN0ZDo6c3RyaW5nIGlz
IHJlZmVyZW5jZS1jb3VudGVkLCB0aGlzIGF0IGxlYXN0IGRvZXMgbm90CisgIC8vIGNyZWF0ZSBh
biBleHRyYSBjb3B5LgorICBzdGQ6OnN0cmluZyBkb2M7CisgIHN0ZDo6Z2V0bGluZShzaW4sIGRv
YywgKGNoYXIpRU9GKTsKKyAgcmV0dXJuIHBhcnNlKGRvYywgcm9vdCwgY29sbGVjdENvbW1lbnRz
KTsKK30KKworYm9vbCBSZWFkZXI6OnBhcnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICAgICAgICBWYWx1
ZSYgcm9vdCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cykgeworICBp
ZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGNvbGxlY3RDb21tZW50cyA9IGZh
bHNlOworICB9CisKKyAgYmVnaW5fID0gYmVnaW5Eb2M7CisgIGVuZF8gPSBlbmREb2M7CisgIGNv
bGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7CisgIGN1cnJlbnRfID0gYmVnaW5fOwor
ICBsYXN0VmFsdWVFbmRfID0gMDsKKyAgbGFzdFZhbHVlXyA9IDA7CisgIGNvbW1lbnRzQmVmb3Jl
XyA9ICIiOworICBlcnJvcnNfLmNsZWFyKCk7CisgIHdoaWxlICghbm9kZXNfLmVtcHR5KCkpCisg
ICAgbm9kZXNfLnBvcCgpOworICBub2Rlc18ucHVzaCgmcm9vdCk7CisKKyAgc3RhY2tEZXB0aF9n
ID0gMDsgIC8vIFllcywgdGhpcyBpcyBiYWQgY29kaW5nLCBidXQgb3B0aW9ucyBhcmUgbGltaXRl
ZC4KKyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7CisgIFRva2VuIHRva2VuOworICBz
a2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFjb21t
ZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVf
LCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0cmljdFJvb3RfKSB7CisgICAgaWYg
KCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgpKSB7CisgICAgICAvLyBTZXQgZXJy
b3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNob3VsZCBiZSBmaXJzdCB0b2tl
biBmb3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7
CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAgICAgIHRva2VuLmVuZF8gPSBlbmRE
b2M7CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2YWxpZCBKU09OIGRvY3VtZW50IG11
c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAorICAgICAgICAgIHRv
a2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHN1Y2Nlc3Nm
dWw7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkVmFsdWUoKSB7CisgIC8vIFRoaXMgaXMgYSBub24t
cmVlbnRyYW50IHdheSB0byBzdXBwb3J0IGEgc3RhY2tMaW1pdC4gVGVycmlibGUhCisgIC8vIEJ1
dCB0aGlzIGRlcHJlY2F0ZWQgY2xhc3MgaGFzIGEgc2VjdXJpdHkgcHJvYmxlbTogQmFkIGlucHV0
IGNhbgorICAvLyBjYXVzZSBhIHNlZy1mYXVsdC4gVGhpcyBzZWVtcyBsaWtlIGEgZmFpciwgYmlu
YXJ5LWNvbXBhdGlibGUgd2F5CisgIC8vIHRvIHByZXZlbnQgdGhlIHByb2JsZW0uCisgIGlmIChz
dGFja0RlcHRoX2cgPj0gc3RhY2tMaW1pdF9nKSB0aHJvd1J1bnRpbWVFcnJvcigiRXhjZWVkZWQg
c3RhY2tMaW1pdCBpbiByZWFkVmFsdWUoKS4iKTsKKyAgKytzdGFja0RlcHRoX2c7CisKKyAgVG9r
ZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgYm9vbCBzdWNjZXNzZnVs
ID0gdHJ1ZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVfLmVt
cHR5KCkpIHsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywg
Y29tbWVudEJlZm9yZSk7CisgICAgY29tbWVudHNCZWZvcmVfID0gIiI7CisgIH0KKworICBzd2l0
Y2ggKHRva2VuLnR5cGVfKSB7CisgIGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKKyAgICBzdWNjZXNz
ZnVsID0gcmVhZE9iamVjdCh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuQXJyYXlCZWdp
bjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZEFycmF5KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2Ug
dG9rZW5OdW1iZXI6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZU51bWJlcih0b2tlbik7CisgICAg
YnJlYWs7CisgIGNhc2UgdG9rZW5TdHJpbmc6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0cmlu
Zyh0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5UcnVlOgorICAgIHsKKyAgICBWYWx1
ZSB2KHRydWUpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQor
ICAgIGJyZWFrOworICBjYXNlIHRva2VuRmFsc2U6CisgICAgeworICAgIFZhbHVlIHYoZmFsc2Up
OworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgp
LnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFr
OworICBjYXNlIHRva2VuTnVsbDoKKyAgICB7CisgICAgVmFsdWUgdjsKKyAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0
b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFy
cmF5U2VwYXJhdG9yOgorICBjYXNlIHRva2VuT2JqZWN0RW5kOgorICBjYXNlIHRva2VuQXJyYXlF
bmQ6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykgewor
ICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJyZW50
IHZhbHVlIGFzIGEgbnVsbAorICAgICAgLy8gdG9rZW4uCisgICAgICBjdXJyZW50Xy0tOworICAg
ICAgVmFsdWUgdjsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgICAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsKKyAg
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAg
ICAgIGJyZWFrOworICAgIH0gLy8gRWxzZSwgZmFsbCB0aHJvdWdoLi4uCisgIGRlZmF1bHQ6Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsK
KyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsK
KyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJh
eSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAoY29sbGVjdENvbW1lbnRzXykgewor
ICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBsYXN0VmFsdWVfID0gJmN1cnJlbnRW
YWx1ZSgpOworICB9CisKKyAgLS1zdGFja0RlcHRoX2c7CisgIHJldHVybiBzdWNjZXNzZnVsOwor
fQorCit2b2lkIFJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7CisgIGlm
IChmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKKyAgICBkbyB7CisgICAgICByZWFkVG9rZW4o
dG9rZW4pOworICAgIH0gd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7CisgIH0g
ZWxzZSB7CisgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgfQorfQorCitib29sIFJlYWRlcjo6cmVh
ZFRva2VuKFRva2VuJiB0b2tlbikgeworICBza2lwU3BhY2VzKCk7CisgIHRva2VuLnN0YXJ0XyA9
IGN1cnJlbnRfOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIG9rID0gdHJ1ZTsK
KyAgc3dpdGNoIChjKSB7CisgIGNhc2UgJ3snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmpl
Y3RCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnfSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tl
bk9iamVjdEVuZDsKKyAgICBicmVhazsKKyAgY2FzZSAnWyc6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbkFycmF5QmVnaW47CisgICAgYnJlYWs7CisgIGNhc2UgJ10nOgorICAgIHRva2VuLnR5cGVf
ID0gdG9rZW5BcnJheUVuZDsKKyAgICBicmVhazsKKyAgY2FzZSAnIic6CisgICAgdG9rZW4udHlw
ZV8gPSB0b2tlblN0cmluZzsKKyAgICBvayA9IHJlYWRTdHJpbmcoKTsKKyAgICBicmVhazsKKyAg
Y2FzZSAnLyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkNvbW1lbnQ7CisgICAgb2sgPSByZWFk
Q29tbWVudCgpOworICAgIGJyZWFrOworICBjYXNlICcwJzoKKyAgY2FzZSAnMSc6CisgIGNhc2Ug
JzInOgorICBjYXNlICczJzoKKyAgY2FzZSAnNCc6CisgIGNhc2UgJzUnOgorICBjYXNlICc2JzoK
KyAgY2FzZSAnNyc6CisgIGNhc2UgJzgnOgorICBjYXNlICc5JzoKKyAgY2FzZSAnLSc6CisgICAg
dG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICByZWFkTnVtYmVyKCk7CisgICAgYnJlYWs7
CisgIGNhc2UgJ3QnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5UcnVlOworICAgIG9rID0gbWF0
Y2goInJ1ZSIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdmJzoKKyAgICB0b2tlbi50eXBlXyA9
IHRva2VuRmFsc2U7CisgICAgb2sgPSBtYXRjaCgiYWxzZSIsIDQpOworICAgIGJyZWFrOworICBj
YXNlICduJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVsbDsKKyAgICBvayA9IG1hdGNoKCJ1
bGwiLCAzKTsKKyAgICBicmVhazsKKyAgY2FzZSAnLCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tl
bkFycmF5U2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlICc6JzoKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlIDA6CisgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAg
IG9rID0gZmFsc2U7CisgICAgYnJlYWs7CisgIH0KKyAgaWYgKCFvaykKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuRXJyb3I7CisgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKKyAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgUmVhZGVyOjpza2lwU3BhY2VzKCkgeworICB3aGlsZSAoY3VycmVudF8gIT0g
ZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50XzsKKyAgICBpZiAoYyA9PSAnICcgfHwgYyA9
PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcbicpCisgICAgICArK2N1cnJlbnRfOworICAg
IGVsc2UKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Jvb2wgUmVhZGVyOjptYXRjaChMb2NhdGlv
biBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCkgeworICBpZiAoZW5kXyAtIGN1cnJlbnRfIDwg
cGF0dGVybkxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIGludCBpbmRleCA9IHBhdHRlcm5M
ZW5ndGg7CisgIHdoaWxlIChpbmRleC0tKQorICAgIGlmIChjdXJyZW50X1tpbmRleF0gIT0gcGF0
dGVybltpbmRleF0pCisgICAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRfICs9IHBhdHRlcm5M
ZW5ndGg7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6cmVhZENvbW1lbnQoKSB7
CisgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRfIC0gMTsKKyAgQ2hhciBjID0gZ2V0
TmV4dENoYXIoKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gZmFsc2U7CisgIGlmIChjID09ICcqJykK
KyAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgZWxzZSBpZiAoYyA9PSAn
LycpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgaWYgKCFzdWNj
ZXNzZnVsKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXykgewor
ICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29tbWVudEJlZm9yZTsKKyAgICBpZiAo
bGFzdFZhbHVlRW5kXyAmJiAhY29udGFpbnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1lbnRC
ZWdpbikpIHsKKyAgICAgIGlmIChjICE9ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1lbnRC
ZWdpbiwgY3VycmVudF8pKQorICAgICAgICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNhbWVM
aW5lOworICAgIH0KKworICAgIGFkZENvbW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50XywgcGxh
Y2VtZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHN0ZDo6c3RyaW5nIG5v
cm1hbGl6ZUVPTChSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9uIGVuZCkg
eworICBzdGQ6OnN0cmluZyBub3JtYWxpemVkOworICBub3JtYWxpemVkLnJlc2VydmUoZW5kIC0g
YmVnaW4pOworICBSZWFkZXI6OkxvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbjsKKyAgd2hpbGUgKGN1
cnJlbnQgIT0gZW5kKSB7CisgICAgY2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAn
XHInKSB7CisgICAgICBpZiAoY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPT0gJ1xuJykKKyAg
ICAgICAgIC8vIGNvbnZlcnQgZG9zIEVPTAorICAgICAgICAgKytjdXJyZW50OworICAgICAgLy8g
Y29udmVydCBNYWMgRU9MCisgICAgICBub3JtYWxpemVkICs9ICdcbic7CisgICAgfSBlbHNlIHsK
KyAgICAgIG5vcm1hbGl6ZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG5vcm1hbGl6ZWQ7
Cit9CisKK3ZvaWQKK1JlYWRlcjo6YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24g
ZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1l
bnRzXyk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9MKGJl
Z2luLCBlbmQpOworICBpZiAocGxhY2VtZW50ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHsK
KyAgICBhc3NlcnQobGFzdFZhbHVlXyAhPSAwKTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21tZW50
KG5vcm1hbGl6ZWQsIHBsYWNlbWVudCk7CisgIH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZvcmVf
ICs9IG5vcm1hbGl6ZWQ7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50
KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRD
aGFyKCk7CisgICAgaWYgKGMgPT0gJyonICYmICpjdXJyZW50XyA9PSAnLycpCisgICAgICBicmVh
azsKKyAgfQorICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAnLyc7Cit9CisKK2Jvb2wgUmVhZGVy
OjpyZWFkQ3BwU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgewor
ICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xuJykKKyAgICAgIGJy
ZWFrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQg
d2lsbCBiZSBub3JtYWxpemVkIGluIGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0g
ZW5kXyAmJiAqY3VycmVudF8gPT0gJ1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAg
IC8vIEJyZWFrIG9uIE1vYyBPUyA5IEVPTC4KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICBy
ZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZWFkZXI6OnJlYWROdW1iZXIoKSB7CisgIGNvbnN0IGNo
YXIgKnAgPSBjdXJyZW50XzsKKyAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBhbHJlYWR5
IGNvbnN1bWVkIGNoYXJhY3RlcgorICAvLyBpbnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChjID49ICcw
JyAmJiBjIDw9ICc5JykKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7
CisgIC8vIGZyYWN0aW9uYWwgcGFydAorICBpZiAoYyA9PSAnLicpIHsKKyAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0g
JzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICB9Cisg
IC8vIGV4cG9uZW50aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAg
YyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAgIGlmIChjID09ICcrJyB8
fCBjID09ICctJykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsK
KyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0g
cCkgPCBlbmRfID8gKnArKyA6IDA7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRTdHJpbmco
KSB7CisgIENoYXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgYyA9
IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykKKyAgICAgIGdldE5leHRDaGFyKCk7
CisgICAgZWxzZSBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gYyA9
PSAnIic7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkT2JqZWN0KFRva2VuJiB0b2tlblN0YXJ0KSB7
CisgIFRva2VuIHRva2VuTmFtZTsKKyAgc3RkOjpzdHJpbmcgbmFtZTsKKyAgVmFsdWUgaW5pdChv
YmplY3RWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7Cisg
IHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgeworICAgIGJvb2wgaW5pdGlhbFRva2VuT2sg
PSB0cnVlOworICAgIHdoaWxlICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGlu
aXRpYWxUb2tlbk9rKQorICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4odG9rZW5OYW1l
KTsKKyAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQorICAgICAgYnJlYWs7CisgICAgaWYgKHRva2Vu
TmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVtcHR5IG9i
amVjdAorICAgICAgcmV0dXJuIHRydWU7CisgICAgbmFtZSA9ICIiOworICAgIGlmICh0b2tlbk5h
bWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5nKHRva2Vu
TmFtZSwgbmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0
RW5kKTsKKyAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJlciAmJiBm
ZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5hbWU7Cisg
ICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAgICAgICBy
ZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1lID0gbnVt
YmVyTmFtZS5hc1N0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBUb2tlbiBjb2xvbjsKKyAgICBpZiAoIXJlYWRUb2tlbihjb2xvbikgfHwgY29sb24udHlw
ZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJl
Y292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJzonIGFmdGVyIG9iamVjdCBtZW1iZXIgbmFtZSIs
IGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJl
bnRWYWx1ZSgpW25hbWVdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9
IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBh
bHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQp
OworCisgICAgVG9rZW4gY29tbWE7CisgICAgaWYgKCFyZWFkVG9rZW4oY29tbWEpIHx8CisgICAg
ICAgIChjb21tYS50eXBlXyAhPSB0b2tlbk9iamVjdEVuZCAmJiBjb21tYS50eXBlXyAhPSB0b2tl
bkFycmF5U2VwYXJhdG9yICYmCisgICAgICAgICBjb21tYS50eXBlXyAhPSB0b2tlbkNvbW1lbnQp
KSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5n
ICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uIiwgY29tbWEsIHRva2VuT2JqZWN0RW5k
KTsKKyAgICB9CisgICAgYm9vbCBmaW5hbGl6ZVRva2VuT2sgPSB0cnVlOworICAgIHdoaWxlIChj
b21tYS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgZmluYWxpemVUb2tlbk9rKQorICAgICAgZmlu
YWxpemVUb2tlbk9rID0gcmVhZFRva2VuKGNvbW1hKTsKKyAgICBpZiAoY29tbWEudHlwZV8gPT0g
dG9rZW5PYmplY3RFbmQpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gYWRkRXJy
b3JBbmRSZWNvdmVyKAorICAgICAgIk1pc3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZSIs
IHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOworfQorCitib29sIFJlYWRlcjo6cmVhZEFycmF5
KFRva2VuJiB0b2tlblN0YXJ0KSB7CisgIFZhbHVlIGluaXQoYXJyYXlWYWx1ZSk7CisgIGN1cnJl
bnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7CisgIHNraXBTcGFjZXMoKTsKKyAgaWYg
KCpjdXJyZW50XyA9PSAnXScpIC8vIGVtcHR5IGFycmF5CisgIHsKKyAgICBUb2tlbiBlbmRBcnJh
eTsKKyAgICByZWFkVG9rZW4oZW5kQXJyYXkpOworICAgIHJldHVybiB0cnVlOworICB9CisgIGlu
dCBpbmRleCA9IDA7CisgIGZvciAoOzspIHsKKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFs
dWUoKVtpbmRleCsrXTsKKyAgICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSBy
ZWFkVmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxy
ZWFkeSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuQXJyYXlFbmQpOwor
CisgICAgVG9rZW4gdG9rZW47CisgICAgLy8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVt
IGluIHRoZSBhcnJheS4KKyAgICBvayA9IHJlYWRUb2tlbih0b2tlbik7CisgICAgd2hpbGUgKHRv
a2VuLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBvaykgeworICAgICAgb2sgPSByZWFkVG9rZW4o
dG9rZW4pOworICAgIH0KKyAgICBib29sIGJhZFRva2VuVHlwZSA9CisgICAgICAgICh0b2tlbi50
eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmIHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlF
bmQpOworICAgIGlmICghb2sgfHwgYmFkVG9rZW5UeXBlKSB7CisgICAgICByZXR1cm4gYWRkRXJy
b3JBbmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVj
bGFyYXRpb24iLCB0b2tlbiwgdG9rZW5BcnJheUVuZCk7CisgICAgfQorICAgIGlmICh0b2tlbi50
eXBlXyA9PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVl
IGRlY29kZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1
cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1
ZSYgZGVjb2RlZCkgeworICAvLyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFuIGlu
dGVnZXIuIElmIHRoZSBudW1iZXIgaXMKKyAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3Vw
cG9ydGVkIHZhbHVlIG9mIGFuIGludGVnZXIgdGhlbgorICAvLyB3ZSBkZWNvZGUgdGhlIG51bWJl
ciBhcyBhIGRvdWJsZS4KKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsKKyAgYm9v
bCBpc05lZ2F0aXZlID0gKmN1cnJlbnQgPT0gJy0nOworICBpZiAoaXNOZWdhdGl2ZSkKKyAgICAr
K2N1cnJlbnQ7CisgIC8vIFRPRE86IEhlbHAgdGhlIGNvbXBpbGVyIGRvIHRoZSBkaXYgYW5kIG1v
ZCBhdCBjb21waWxlIHRpbWUgb3IgZ2V0IHJpZCBvZiB0aGVtLgorICBWYWx1ZTo6TGFyZ2VzdFVJ
bnQgbWF4SW50ZWdlclZhbHVlID0KKyAgICAgIGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2VzdFVJ
bnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMQorICAgICAgICAgICAgICAgICA6IFZhbHVlOjpt
YXhMYXJnZXN0VUludDsKKyAgVmFsdWU6Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heEludGVn
ZXJWYWx1ZSAvIDEwOworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAo
Y3VycmVudCA8IHRva2VuLmVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlm
IChjIDwgJzAnIHx8IGMgPiAnOScpCisgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBk
ZWNvZGVkKTsKKyAgICBWYWx1ZTo6VUludCBkaWdpdChjIC0gJzAnKTsKKyAgICBpZiAodmFsdWUg
Pj0gdGhyZXNob2xkKSB7CisgICAgICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1heCB2
YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJZgorICAgICAgLy8gYSkgd2UndmUg
b25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0LCBh
bmQKKyAgICAgIC8vIGMpIGl0J3Mgc21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5n
IGRlbHRhLCB3ZSdyZSBva2F5LgorICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVy
IGFzIGEgZG91YmxlIHRvIGF2b2lkIG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhyZXNo
b2xkIHx8IGN1cnJlbnQgIT0gdG9rZW4uZW5kXyB8fAorICAgICAgICAgIGRpZ2l0ID4gbWF4SW50
ZWdlclZhbHVlICUgMTApIHsKKyAgICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVj
b2RlZCk7CisgICAgICB9CisgICAgfQorICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0Owor
ICB9CisgIGlmIChpc05lZ2F0aXZlICYmIHZhbHVlID09IG1heEludGVnZXJWYWx1ZSkKKyAgICBk
ZWNvZGVkID0gVmFsdWU6Om1pbkxhcmdlc3RJbnQ7CisgIGVsc2UgaWYgKGlzTmVnYXRpdmUpCisg
ICAgZGVjb2RlZCA9IC1WYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UgaWYgKHZhbHVl
IDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4SW50KSkKKyAgICBkZWNvZGVkID0gVmFs
dWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlCisgICAgZGVjb2RlZCA9IHZhbHVlOworICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4p
IHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQp
KQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2Rl
ZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2lu
Xyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8p
OworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYg
dG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIGRvdWJsZSB2YWx1ZSA9IDA7CisgIHN0ZDo6c3Ry
aW5nIGJ1ZmZlcih0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pOworICBzdGQ6OmlzdHJpbmdzdHJl
YW0gaXMoYnVmZmVyKTsKKyAgaWYgKCEoaXMgPj4gdmFsdWUpKQorICAgIHJldHVybiBhZGRFcnJv
cigiJyIgKyBzdGQ6OnN0cmluZyh0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICInIGlzIG5vdCBhIG51bWJlci4iLAorICAgICAgICAgICAgICAgICAg
ICB0b2tlbik7CisgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
UmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKSB7CisgIHN0ZDo6c3RyaW5nIGRlY29k
ZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcpKQor
ICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7CisgIGN1
cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2Rl
ZCkgeworICBkZWNvZGVkLnJlc2VydmUodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIpOwor
ICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tpcCAnIicKKyAgTG9j
YXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBpbmNsdWRlICciJwor
ICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAg
IGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgewor
ICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5
IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICBDaGFy
IGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0Y2ggKGVzY2FwZSkgeworICAgICAgY2Fz
ZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0gJyInOworICAgICAgICBicmVhazsKKyAgICAgIGNh
c2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9ICcvJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBj
YXNlICdcXCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xcJzsKKyAgICAgICAgYnJlYWs7CisgICAg
ICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGInOworICAgICAgICBicmVhazsKKyAg
ICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9ICdcZic7CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSAnbic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKKyAgICAgICAgYnJlYWs7
CisgICAgICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHInOworICAgICAgICBicmVh
azsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNvZGVkICs9ICdcdCc7CisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7Cisg
ICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5kLCB1
bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlY29kZWQgKz0gY29k
ZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBicmVhazsKKyAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0
b2tlbiwgY3VycmVudCk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGRlY29kZWQgKz0g
YzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVV
bmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBl
U2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgcmV0dXJuIGZhbHNl
OworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKKyAgICAv
LyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCisgICAgICByZXR1
cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0
ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAorICAgICAgICAgIHRva2VuLAor
ICAgICAgICAgIGN1cnJlbnQpOworICAgIHVuc2lnbmVkIGludCBzdXJyb2dhdGVQYWlyOworICAg
IGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0gJ3UnKSB7CisgICAg
ICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1
cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYg
MHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOworICAgICAgfSBlbHNlCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigi
ZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAi
CisgICAgICAgICAgICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCisgICAg
ICAgICAgICAgICAgICAgICAgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCk7
CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVVbmljb2RlRXNj
YXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKKyAgaWYgKGVuZCAtIGN1cnJl
bnQgPCA0KQorICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgIkJhZCB1bmljb2RlIGVzY2Fw
ZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsCisgICAgICAgIHRv
a2VuLAorICAgICAgICBjdXJyZW50KTsKKyAgdW5pY29kZSA9IDA7CisgIGZvciAoaW50IGluZGV4
ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAg
ICB1bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIHVu
aWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykKKyAg
ICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYmIGMg
PD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7CisgICAgZWxzZQorICAgICAg
cmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2Ug
aW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAorICAgICAgICAgIHRva2Vu
LAorICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sCitS
ZWFkZXI6OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4s
IExvY2F0aW9uIGV4dHJhKSB7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRv
a2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBleHRyYTsK
KyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBS
ZWFkZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIGlu
dCBlcnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKKyAgVG9rZW4gc2tpcDsKKyAgZm9y
ICg7OykgeworICAgIGlmICghcmVhZFRva2VuKHNraXApKQorICAgICAgZXJyb3JzXy5yZXNpemUo
ZXJyb3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQorICAgIGlm
IChza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRP
ZlN0cmVhbSkKKyAgICAgIGJyZWFrOworICB9CisgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQp
OworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIo
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5U
eXBlIHNraXBVbnRpbFRva2VuKSB7CisgIGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKKyAgcmV0
dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9rZW4pOworfQorCitWYWx1ZSYgUmVhZGVy
OjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5vZGVzXy50b3AoKSk7IH0KKworUmVhZGVyOjpD
aGFyIFJlYWRlcjo6Z2V0TmV4dENoYXIoKSB7CisgIGlmIChjdXJyZW50XyA9PSBlbmRfKQorICAg
IHJldHVybiAwOworICByZXR1cm4gKmN1cnJlbnRfKys7Cit9CisKK3ZvaWQgUmVhZGVyOjpnZXRM
b2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsKKyAgTG9jYXRpb24gY3VycmVudCA9
IGJlZ2luXzsKKyAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgIGxpbmUgPSAw
OworICB3aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0gZW5kXykgeworICAg
IENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKCpj
dXJyZW50ID09ICdcbicpCisgICAgICAgICsrY3VycmVudDsKKyAgICAgIGxhc3RMaW5lU3RhcnQg
PSBjdXJyZW50OworICAgICAgKytsaW5lOworICAgIH0gZWxzZSBpZiAoYyA9PSAnXG4nKSB7Cisg
ICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9CisgIH0K
KyAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCisgIGNvbHVtbiA9IGludChsb2NhdGlvbiAt
IGxhc3RMaW5lU3RhcnQpICsgMTsKKyAgKytsaW5lOworfQorCitzdGQ6OnN0cmluZyBSZWFkZXI6
OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3QgeworICBp
bnQgbGluZSwgY29sdW1uOworICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4obG9jYXRpb24sIGxp
bmUsIGNvbHVtbik7CisgIGNoYXIgYnVmZmVyWzE4ICsgMTYgKyAxNiArIDFdOworICBzbnByaW50
ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwgQ29sdW1uICVkIiwgbGluZSwgY29s
dW1uKTsKKyAgcmV0dXJuIGJ1ZmZlcjsKK30KKworc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRMb2Nh
dGlvblNuaXBwZXQoTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgICAgICBzdGQ6OnN0cmlu
ZyBzbmlwcGV0ID0gIiI7CisgICAgICAgc3RkOjppc3RyaW5nc3RyZWFtIGRvY1N0cmVhbShkb2N1
bWVudF8pOworICAgICAgIGludCBsaW4sIGNvbDsKKyAgICAgICBnZXRMb2NhdGlvbkxpbmVBbmRD
b2x1bW4obG9jYXRpb24sIGxpbiwgY29sKTsKKyAgICAgICBzdGQ6OnN0cmluZyBsaW5lOworICAg
ICAgIGZvciAoaW50IGk9MTsgaTxsaW4rMiAmJiBzdGQ6OmdldGxpbmUoZG9jU3RyZWFtLCBsaW5l
KTsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKGxpbi1pIDwgMikKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc25pcHBldCArPSAiICAiICsgc3RkOjp0b19z
dHJpbmcoaSkgKyAiOiAiICsgbGluZSArICJcbiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9
CisgICAgICAgcmV0dXJuIHNuaXBwZXQ7Cit9CisKKy8vIERlcHJlY2F0ZWQuIFByZXNlcnZlZCBm
b3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRGb3JtYXRl
ZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHJldHVybiBnZXRGb3JtYXR0ZWRFcnJvck1lc3Nh
Z2VzKCk7Cit9CisKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdl
cygpIGNvbnN0IHsKKyAgc3RkOjpzdHJpbmcgZm9ybWF0dGVkTWVzc2FnZTsKKyAgZm9yIChFcnJv
cnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAgaXRF
cnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0IEVy
cm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9CisgICAg
ICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IudG9rZW5fLnN0YXJ0Xykg
KyAiXG4iOworICAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gZ2V0TG9jYXRpb25TbmlwcGV0KGVy
cm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9ICIgICIg
KyBlcnJvci5tZXNzYWdlXyArICJcbiI7CisgICAgaWYgKGVycm9yLmV4dHJhXykKKyAgICAgIGZv
cm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgICAiU2VlICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRD
b2x1bW4oZXJyb3IuZXh0cmFfKSArICIgZm9yIGRldGFpbC5cbiI7CisgIH0KKyAgcmV0dXJuIGZv
cm1hdHRlZE1lc3NhZ2U7Cit9CisKK3N0ZDo6dmVjdG9yPFJlYWRlcjo6U3RydWN0dXJlZEVycm9y
PiBSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdCB7CisgIHN0ZDo6dmVjdG9yPFJl
YWRlcjo6U3RydWN0dXJlZEVycm9yPiBhbGxFcnJvcnM7CisgIGZvciAoRXJyb3JzOjpjb25zdF9p
dGVyYXRvciBpdEVycm9yID0gZXJyb3JzXy5iZWdpbigpOworICAgICAgIGl0RXJyb3IgIT0gZXJy
b3JzXy5lbmQoKTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVy
cm9yID0gKml0RXJyb3I7CisgICAgUmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3Igc3RydWN0dXJlZDsK
KyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9zdGFydCA9IGVycm9yLnRva2VuXy5zdGFydF8gLSBiZWdp
bl87CisgICAgc3RydWN0dXJlZC5vZmZzZXRfbGltaXQgPSBlcnJvci50b2tlbl8uZW5kXyAtIGJl
Z2luXzsKKyAgICBzdHJ1Y3R1cmVkLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlXzsKKyAgICBhbGxF
cnJvcnMucHVzaF9iYWNrKHN0cnVjdHVyZWQpOworICB9CisgIHJldHVybiBhbGxFcnJvcnM7Cit9
CisKK2Jvb2wgUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6
OnN0cmluZyYgbWVzc2FnZSkgeworICBzaXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAg
aWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9mZnNl
dExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAg
dG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1
ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0gZW5kXyArIHZhbHVlLmdldE9mZnNl
dExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBp
bmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSAwOworICBlcnJvcnNfLnB1
c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpwdXNoRXJy
b3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
VmFsdWUmIGV4dHJhKSB7CisgIHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBpZih2
YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGlt
aXQoKSA+IGxlbmd0aAorICAgIHx8IGV4dHJhLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisg
ICAgcmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVy
cm9yOworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOwor
ICB0b2tlbi5lbmRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJ
bmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNz
YWdlOworICBpbmZvLmV4dHJhXyA9IGJlZ2luXyArIGV4dHJhLmdldE9mZnNldFN0YXJ0KCk7Cisg
IGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFk
ZXI6Omdvb2QoKSBjb25zdCB7CisgIHJldHVybiAhZXJyb3JzXy5zaXplKCk7Cit9CisKKy8vIGV4
YWN0IGNvcHkgb2YgRmVhdHVyZXMKK2NsYXNzIE91ckZlYXR1cmVzIHsKK3B1YmxpYzoKKyAgc3Rh
dGljIE91ckZlYXR1cmVzIGFsbCgpOworICBib29sIGFsbG93Q29tbWVudHNfOworICBib29sIHN0
cmljdFJvb3RfOworICBib29sIGFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfOworICBib29s
IGFsbG93TnVtZXJpY0tleXNfOworICBib29sIGFsbG93U2luZ2xlUXVvdGVzXzsKKyAgYm9vbCBm
YWlsSWZFeHRyYV87CisgIGJvb2wgcmVqZWN0RHVwS2V5c187CisgIGJvb2wgYWxsb3dTcGVjaWFs
RmxvYXRzXzsKKyAgaW50IHN0YWNrTGltaXRfOworfTsgIC8vIE91ckZlYXR1cmVzCisKKy8vIGV4
YWN0IGNvcHkgb2YgSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgRmVhdHVyZXMKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK091ckZlYXR1cmVzIE91ckZlYXR1cmVzOjphbGwo
KSB7IHJldHVybiBPdXJGZWF0dXJlcygpOyB9CisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNz
IFJlYWRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gZXhhY3Qg
Y29weSBvZiBSZWFkZXIsIHJlbmFtZWQgdG8gT3VyUmVhZGVyCitjbGFzcyBPdXJSZWFkZXIgewor
cHVibGljOgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAgdHlwZWRlZiBjb25zdCBDaGFyKiBMb2Nh
dGlvbjsKKyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgc2l6ZV90IG9mZnNldF9zdGFy
dDsKKyAgICBzaXplX3Qgb2Zmc2V0X2xpbWl0OworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2U7Cisg
IH07CisKKyAgT3VyUmVhZGVyKE91ckZlYXR1cmVzIGNvbnN0JiBmZWF0dXJlcyk7CisgIGJvb2wg
cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAgICAgY29uc3QgY2hhciogZW5k
RG9jLAorICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgIGJvb2wgY29sbGVj
dENvbW1lbnRzID0gdHJ1ZSk7CisgIHN0ZDo6c3RyaW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2Fn
ZXMoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBnZXRTdHJ1Y3R1cmVk
RXJyb3JzKCkgY29uc3Q7CisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29u
c3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpOworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYg
dmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpOwor
ICBib29sIGdvb2QoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgT3VyUmVhZGVyKE91clJlYWRlciBj
b25zdCYpOyAgLy8gbm8gaW1wbAorICB2b2lkIG9wZXJhdG9yPShPdXJSZWFkZXIgY29uc3QmKTsg
IC8vIG5vIGltcGwKKworICBlbnVtIFRva2VuVHlwZSB7CisgICAgdG9rZW5FbmRPZlN0cmVhbSA9
IDAsCisgICAgdG9rZW5PYmplY3RCZWdpbiwKKyAgICB0b2tlbk9iamVjdEVuZCwKKyAgICB0b2tl
bkFycmF5QmVnaW4sCisgICAgdG9rZW5BcnJheUVuZCwKKyAgICB0b2tlblN0cmluZywKKyAgICB0
b2tlbk51bWJlciwKKyAgICB0b2tlblRydWUsCisgICAgdG9rZW5GYWxzZSwKKyAgICB0b2tlbk51
bGwsCisgICAgdG9rZW5OYU4sCisgICAgdG9rZW5Qb3NJbmYsCisgICAgdG9rZW5OZWdJbmYsCisg
ICAgdG9rZW5BcnJheVNlcGFyYXRvciwKKyAgICB0b2tlbk1lbWJlclNlcGFyYXRvciwKKyAgICB0
b2tlbkNvbW1lbnQsCisgICAgdG9rZW5FcnJvcgorICB9OworCisgIGNsYXNzIFRva2VuIHsKKyAg
cHVibGljOgorICAgIFRva2VuVHlwZSB0eXBlXzsKKyAgICBMb2NhdGlvbiBzdGFydF87CisgICAg
TG9jYXRpb24gZW5kXzsKKyAgfTsKKworICBjbGFzcyBFcnJvckluZm8geworICBwdWJsaWM6Cisg
ICAgVG9rZW4gdG9rZW5fOworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9u
IGV4dHJhXzsKKyAgfTsKKworICB0eXBlZGVmIHN0ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7
CisKKyAgYm9vbCByZWFkVG9rZW4oVG9rZW4mIHRva2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7
CisgIGJvb2wgbWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpOworICBi
b29sIHJlYWRDb21tZW50KCk7CisgIGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCBy
ZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZFN0cmluZygpOworICBib29sIHJlYWRT
dHJpbmdTaW5nbGVRdW90ZSgpOworICBib29sIHJlYWROdW1iZXIoYm9vbCBjaGVja0luZik7Cisg
IGJvb2wgcmVhZFZhbHVlKCk7CisgIGJvb2wgcmVhZE9iamVjdChUb2tlbiYgdG9rZW4pOworICBi
b29sIHJlYWRBcnJheShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYg
dG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVk
KTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVTdHJp
bmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlRG91
YmxlKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFs
dWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2Vu
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGRlY29kZVVuaWNv
ZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgYWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJp
bmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEgPSAwKTsKKyAgYm9vbCBy
ZWNvdmVyRnJvbUVycm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIGJvb2wgYWRkRXJy
b3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2Vu
VHlwZSBza2lwVW50aWxUb2tlbik7CisgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsKKyAgVmFsdWUm
IGN1cnJlbnRWYWx1ZSgpOworICBDaGFyIGdldE5leHRDaGFyKCk7CisgIHZvaWQKKyAgZ2V0TG9j
YXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLCBpbnQmIGxpbmUsIGludCYgY29s
dW1uKSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0
aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBM
b2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgdm9pZCBza2lwQ29t
bWVudFRva2VucyhUb2tlbiYgdG9rZW4pOworCisgIHR5cGVkZWYgc3RkOjpzdGFjazxWYWx1ZSo+
IE5vZGVzOworICBOb2RlcyBub2Rlc187CisgIEVycm9ycyBlcnJvcnNfOworICBzdGQ6OnN0cmlu
ZyBkb2N1bWVudF87CisgIExvY2F0aW9uIGJlZ2luXzsKKyAgTG9jYXRpb24gZW5kXzsKKyAgTG9j
YXRpb24gY3VycmVudF87CisgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF87CisgIFZhbHVlKiBsYXN0
VmFsdWVfOworICBzdGQ6OnN0cmluZyBjb21tZW50c0JlZm9yZV87CisgIGludCBzdGFja0RlcHRo
XzsKKworICBPdXJGZWF0dXJlcyBjb25zdCBmZWF0dXJlc187CisgIGJvb2wgY29sbGVjdENvbW1l
bnRzXzsKK307ICAvLyBPdXJSZWFkZXIKKworLy8gY29tcGxldGUgY29weSBvZiBSZWFkIGltcGws
IGZvciBPdXJSZWFkZXIKKworT3VyUmVhZGVyOjpPdXJSZWFkZXIoT3VyRmVhdHVyZXMgY29uc3Qm
IGZlYXR1cmVzKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVuZF8o
KSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAorICAgICAgbGFzdFZhbHVlXygpLCBjb21t
ZW50c0JlZm9yZV8oKSwKKyAgICAgIHN0YWNrRGVwdGhfKDApLAorICAgICAgZmVhdHVyZXNfKGZl
YXR1cmVzKSwgY29sbGVjdENvbW1lbnRzXygpIHsKK30KKworYm9vbCBPdXJSZWFkZXI6OnBhcnNl
KGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVu
ZERvYywKKyAgICAgICAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICAgICAg
ICBib29sIGNvbGxlY3RDb21tZW50cykgeworICBpZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1lbnRz
XykgeworICAgIGNvbGxlY3RDb21tZW50cyA9IGZhbHNlOworICB9CisKKyAgYmVnaW5fID0gYmVn
aW5Eb2M7CisgIGVuZF8gPSBlbmREb2M7CisgIGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29t
bWVudHM7CisgIGN1cnJlbnRfID0gYmVnaW5fOworICBsYXN0VmFsdWVFbmRfID0gMDsKKyAgbGFz
dFZhbHVlXyA9IDA7CisgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOworICBlcnJvcnNfLmNsZWFyKCk7
CisgIHdoaWxlICghbm9kZXNfLmVtcHR5KCkpCisgICAgbm9kZXNfLnBvcCgpOworICBub2Rlc18u
cHVzaCgmcm9vdCk7CisKKyAgc3RhY2tEZXB0aF8gPSAwOworICBib29sIHN1Y2Nlc3NmdWwgPSBy
ZWFkVmFsdWUoKTsKKyAgVG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsK
KyAgaWYgKGZlYXR1cmVzXy5mYWlsSWZFeHRyYV8pIHsKKyAgICBpZiAodG9rZW4udHlwZV8gIT0g
dG9rZW5FcnJvciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkVuZE9mU3RyZWFtKSB7CisgICAgICBh
ZGRFcnJvcigiRXh0cmEgbm9uLXdoaXRlc3BhY2UgYWZ0ZXIgSlNPTiB2YWx1ZS4iLCB0b2tlbik7
CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIGlmIChjb2xsZWN0Q29tbWVudHNf
ICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENvbW1lbnQoY29tbWVu
dHNCZWZvcmVfLCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0cmljdFJvb3RfKSB7
CisgICAgaWYgKCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgpKSB7CisgICAgICAv
LyBTZXQgZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNob3VsZCBiZSBm
aXJzdCB0b2tlbiBmb3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tlbi50eXBlXyA9IHRv
a2VuRXJyb3I7CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAgICAgIHRva2VuLmVu
ZF8gPSBlbmREb2M7CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2YWxpZCBKU09OIGRv
Y3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAorICAg
ICAgICAgIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJu
IHN1Y2Nlc3NmdWw7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkVmFsdWUoKSB7CisgIGlmIChz
dGFja0RlcHRoXyA+PSBmZWF0dXJlc18uc3RhY2tMaW1pdF8pIHRocm93UnVudGltZUVycm9yKCJF
eGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLiIpOworICArK3N0YWNrRGVwdGhfOwor
ICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOworICBib29sIHN1Y2Nl
c3NmdWwgPSB0cnVlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9y
ZV8uZW1wdHkoKSkgeworICAgIGN1cnJlbnRWYWx1ZSgpLnNldENvbW1lbnQoY29tbWVudHNCZWZv
cmVfLCBjb21tZW50QmVmb3JlKTsKKyAgICBjb21tZW50c0JlZm9yZV8gPSAiIjsKKyAgfQorCisg
IHN3aXRjaCAodG9rZW4udHlwZV8pIHsKKyAgY2FzZSB0b2tlbk9iamVjdEJlZ2luOgorICAgIHN1
Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJh
eUJlZ2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQXJyYXkodG9rZW4pOworICAgIGN1cnJlbnRW
YWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsKKyAg
Y2FzZSB0b2tlbk51bWJlcjoKKyAgICBzdWNjZXNzZnVsID0gZGVjb2RlTnVtYmVyKHRva2VuKTsK
KyAgICBicmVhazsKKyAgY2FzZSB0b2tlblN0cmluZzoKKyAgICBzdWNjZXNzZnVsID0gZGVjb2Rl
U3RyaW5nKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblRydWU6CisgICAgeworICAg
IFZhbHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAg
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAg
ICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5GYWxzZToKKyAgICB7CisgICAgVmFsdWUgdihm
YWxzZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZh
bHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAg
YnJlYWs7CisgIGNhc2UgdG9rZW5OdWxsOgorICAgIHsKKyAgICBWYWx1ZSB2OworICAgIGN1cnJl
bnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRv
a2VuTmFOOgorICAgIHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCkpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAg
fQorICAgIGJyZWFrOworICBjYXNlIHRva2VuUG9zSW5mOgorICAgIHsKKyAgICBWYWx1ZSB2KHN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVl
KCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9r
ZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0
b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OZWdJ
bmY6CisgICAgeworICAgIFZhbHVlIHYoLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9Cisg
ICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRvcjoKKyAgY2FzZSB0b2tlbk9iamVj
dEVuZDoKKyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dEcm9w
cGVkTnVsbFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJVbi1yZWFkIiB0aGUgY3VycmVudCB0
b2tlbiBhbmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBhIG51bGwKKyAgICAgIC8vIHRva2Vu
LgorICAgICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7CisgICAgICBjdXJyZW50VmFsdWUo
KS5zd2FwUGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KGN1
cnJlbnRfIC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1p
dChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsKKyAgICB9IC8vIGVsc2UsIGZhbGwg
dGhyb3VnaCAuLi4KKyAgZGVmYXVsdDoKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFy
dCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIHJldHVybiBhZGRFcnJvcigiU3ludGF4IGVy
cm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLiIsIHRva2VuKTsKKyAgfQorCisg
IGlmIChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgbGFzdFZhbHVlRW5kXyA9IGN1cnJlbnRfOwor
ICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7CisgIH0KKworICAtLXN0YWNrRGVwdGhf
OworICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKwordm9pZCBPdXJSZWFkZXI6OnNraXBDb21tZW50
VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7
CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgICB9IHdoaWxlICh0b2tlbi50
eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2UgeworICAgIHJlYWRUb2tlbih0b2tlbik7
CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRUb2tlbihUb2tlbiYgdG9rZW4pIHsKKyAg
c2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKKyAgQ2hhciBjID0gZ2V0
TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3aXRjaCAoYykgeworICBjYXNlICd7
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47CisgICAgYnJlYWs7CisgIGNh
c2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7CisgICAgYnJlYWs7Cisg
IGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2luOworICAgIGJyZWFr
OworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlFbmQ7CisgICAgYnJl
YWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7CisgICAgb2sg
PSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ1wnJzoKKyAgICBpZiAoZmVhdHVy
ZXNfLmFsbG93U2luZ2xlUXVvdGVzXykgeworICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7
CisgICAgb2sgPSByZWFkU3RyaW5nU2luZ2xlUXVvdGUoKTsKKyAgICBicmVhazsKKyAgICB9IC8v
IGVsc2UgY29udGludWUKKyAgY2FzZSAnLyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkNvbW1l
bnQ7CisgICAgb2sgPSByZWFkQ29tbWVudCgpOworICAgIGJyZWFrOworICBjYXNlICcwJzoKKyAg
Y2FzZSAnMSc6CisgIGNhc2UgJzInOgorICBjYXNlICczJzoKKyAgY2FzZSAnNCc6CisgIGNhc2Ug
JzUnOgorICBjYXNlICc2JzoKKyAgY2FzZSAnNyc6CisgIGNhc2UgJzgnOgorICBjYXNlICc5JzoK
KyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAgIHJlYWROdW1iZXIoZmFsc2UpOwor
ICAgIGJyZWFrOworICBjYXNlICctJzoKKyAgICBpZiAocmVhZE51bWJlcih0cnVlKSkgeworICAg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICB9IGVsc2UgeworICAgICAgdG9rZW4u
dHlwZV8gPSB0b2tlbk5lZ0luZjsKKyAgICAgIG9rID0gZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZs
b2F0c18gJiYgbWF0Y2goIm5maW5pdHkiLCA3KTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2Ug
J3QnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5UcnVlOworICAgIG9rID0gbWF0Y2goInJ1ZSIs
IDMpOworICAgIGJyZWFrOworICBjYXNlICdmJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRmFs
c2U7CisgICAgb2sgPSBtYXRjaCgiYWxzZSIsIDQpOworICAgIGJyZWFrOworICBjYXNlICduJzoK
KyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVsbDsKKyAgICBvayA9IG1hdGNoKCJ1bGwiLCAzKTsK
KyAgICBicmVhazsKKyAgY2FzZSAnTic6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxG
bG9hdHNfKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmFOOworICAgICAgb2sgPSBtYXRj
aCgiYU4iLCAyKTsKKyAgICB9IGVsc2UgeworICAgICAgb2sgPSBmYWxzZTsKKyAgICB9CisgICAg
YnJlYWs7CisgIGNhc2UgJ0knOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRz
XykgeworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlblBvc0luZjsKKyAgICAgIG9rID0gbWF0Y2go
Im5maW5pdHkiLCA3KTsKKyAgICB9IGVsc2UgeworICAgICAgb2sgPSBmYWxzZTsKKyAgICB9Cisg
ICAgYnJlYWs7CisgIGNhc2UgJywnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheVNlcGFy
YXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAnOic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk1l
bWJlclNlcGFyYXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAwOgorICAgIHRva2VuLnR5cGVfID0g
dG9rZW5FbmRPZlN0cmVhbTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBvayA9IGZhbHNl
OworICAgIGJyZWFrOworICB9CisgIGlmICghb2spCisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVy
cm9yOworICB0b2tlbi5lbmRfID0gY3VycmVudF87CisgIHJldHVybiB0cnVlOworfQorCit2b2lk
IE91clJlYWRlcjo6c2tpcFNwYWNlcygpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsK
KyAgICBDaGFyIGMgPSAqY3VycmVudF87CisgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8
fCBjID09ICdccicgfHwgYyA9PSAnXG4nKQorICAgICAgKytjdXJyZW50XzsKKyAgICBlbHNlCisg
ICAgICBicmVhazsKKyAgfQorfQorCitib29sIE91clJlYWRlcjo6bWF0Y2goTG9jYXRpb24gcGF0
dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpIHsKKyAgaWYgKGVuZF8gLSBjdXJyZW50XyA8IHBhdHRl
cm5MZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3Ro
OworICB3aGlsZSAoaW5kZXgtLSkKKyAgICBpZiAoY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5b
aW5kZXhdKQorICAgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50XyArPSBwYXR0ZXJuTGVuZ3Ro
OworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRDb21tZW50KCkgewor
ICBMb2NhdGlvbiBjb21tZW50QmVnaW4gPSBjdXJyZW50XyAtIDE7CisgIENoYXIgYyA9IGdldE5l
eHRDaGFyKCk7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNlOworICBpZiAoYyA9PSAnKicpCisg
ICAgc3VjY2Vzc2Z1bCA9IHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGVsc2UgaWYgKGMgPT0gJy8n
KQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGlmICghc3VjY2Vz
c2Z1bCkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAg
ICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7CisgICAgaWYgKGxh
c3RWYWx1ZUVuZF8gJiYgIWNvbnRhaW5zTmV3TGluZShsYXN0VmFsdWVFbmRfLCBjb21tZW50QmVn
aW4pKSB7CisgICAgICBpZiAoYyAhPSAnKicgfHwgIWNvbnRhaW5zTmV3TGluZShjb21tZW50QmVn
aW4sIGN1cnJlbnRfKSkKKyAgICAgICAgcGxhY2VtZW50ID0gY29tbWVudEFmdGVyT25TYW1lTGlu
ZTsKKyAgICB9CisKKyAgICBhZGRDb21tZW50KGNvbW1lbnRCZWdpbiwgY3VycmVudF8sIHBsYWNl
bWVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQKK091clJlYWRlcjo6YWRkQ29t
bWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7CisgIGNvbnN0IHN0ZDo6c3RyaW5n
JiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9MKGJlZ2luLCBlbmQpOworICBpZiAocGxhY2VtZW50
ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHsKKyAgICBhc3NlcnQobGFzdFZhbHVlXyAhPSAw
KTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21tZW50KG5vcm1hbGl6ZWQsIHBsYWNlbWVudCk7Cisg
IH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZvcmVfICs9IG5vcm1hbGl6ZWQ7CisgIH0KK30KKwor
Ym9vbCBPdXJSZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoY3VycmVudF8g
IT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJyon
ICYmICpjdXJyZW50XyA9PSAnLycpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gZ2V0TmV4
dENoYXIoKSA9PSAnLyc7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ3BwU3R5bGVDb21tZW50
KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRD
aGFyKCk7CisgICAgaWYgKGMgPT0gJ1xuJykKKyAgICAgIGJyZWFrOworICAgIGlmIChjID09ICdc
cicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQgd2lsbCBiZSBub3JtYWxpemVkIGlu
IGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0gZW5kXyAmJiAqY3VycmVudF8gPT0g
J1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAgIC8vIEJyZWFrIG9uIE1vYyBPUyA5
IEVPTC4KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBPdXJSZWFkZXI6OnJlYWROdW1iZXIoYm9vbCBjaGVja0luZikgeworICBjb25zdCBjaGFyICpw
ID0gY3VycmVudF87CisgIGlmIChjaGVja0luZiAmJiBwICE9IGVuZF8gJiYgKnAgPT0gJ0knKSB7
CisgICAgY3VycmVudF8gPSArK3A7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGNoYXIgYyA9
ICcwJzsgLy8gc3RvcGdhcCBmb3IgYWxyZWFkeSBjb25zdW1lZCBjaGFyYWN0ZXIKKyAgLy8gaW50
ZWdyYWwgcGFydAorICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgYyA9IChjdXJy
ZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAvLyBmcmFjdGlvbmFsIHBhcnQKKyAgaWYg
KGMgPT0gJy4nKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOwor
ICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBw
KSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICAvLyBleHBvbmVudGlhbCBwYXJ0CisgIGlmIChj
ID09ICdlJyB8fCBjID09ICdFJykgeworICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAq
cCsrIDogMDsKKyAgICBpZiAoYyA9PSAnKycgfHwgYyA9PSAnLScpCisgICAgICBjID0gKGN1cnJl
bnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0g
JzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICB9Cisg
IHJldHVybiB0cnVlOworfQorYm9vbCBPdXJSZWFkZXI6OnJlYWRTdHJpbmcoKSB7CisgIENoYXIg
YyA9IDA7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgYyA9IGdldE5leHRDaGFy
KCk7CisgICAgaWYgKGMgPT0gJ1xcJykKKyAgICAgIGdldE5leHRDaGFyKCk7CisgICAgZWxzZSBp
ZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gYyA9PSAnIic7Cit9CisK
KworYm9vbCBPdXJSZWFkZXI6OnJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpIHsKKyAgQ2hhciBjID0g
MDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBjID0gZ2V0TmV4dENoYXIoKTsK
KyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICBlbHNlIGlmIChj
ID09ICdcJycpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gYyA9PSAnXCcnOworfQorCiti
b29sIE91clJlYWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9rZW5TdGFydCkgeworICBUb2tlbiB0
b2tlbk5hbWU7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIFZhbHVlIGluaXQob2JqZWN0VmFsdWUp
OworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBiZWdpbl8pOworICB3aGlsZSAocmVh
ZFRva2VuKHRva2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsKKyAg
ICB3aGlsZSAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBpbml0aWFsVG9rZW5P
aykKKyAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFtZSk7CisgICAgaWYg
KCFpbml0aWFsVG9rZW5PaykKKyAgICAgIGJyZWFrOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8g
PT0gdG9rZW5PYmplY3RFbmQgJiYgbmFtZS5lbXB0eSgpKSAvLyBlbXB0eSBvYmplY3QKKyAgICAg
IHJldHVybiB0cnVlOworICAgIG5hbWUgPSAiIjsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09
IHRva2VuU3RyaW5nKSB7CisgICAgICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbk5hbWUsIG5hbWUp
KQorICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAg
fSBlbHNlIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5OdW1iZXIgJiYgZmVhdHVyZXNfLmFs
bG93TnVtZXJpY0tleXNfKSB7CisgICAgICBWYWx1ZSBudW1iZXJOYW1lOworICAgICAgaWYgKCFk
ZWNvZGVOdW1iZXIodG9rZW5OYW1lLCBudW1iZXJOYW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292
ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgICAgbmFtZSA9IG51bWJlck5hbWUuYXNT
dHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgYnJlYWs7CisgICAgfQorCisgICAgVG9rZW4g
Y29sb247CisgICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8IGNvbG9uLnR5cGVfICE9IHRva2Vu
TWVtYmVyU2VwYXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAg
ICAgICAgICJNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCBjb2xvbiwgdG9r
ZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBpZiAobmFtZS5sZW5ndGgoKSA+PSAoMVU8PDMwKSkg
dGhyb3dSdW50aW1lRXJyb3IoImtleWxlbmd0aCA+PSAyXjMwIik7CisgICAgaWYgKGZlYXR1cmVz
Xy5yZWplY3REdXBLZXlzXyAmJiBjdXJyZW50VmFsdWUoKS5pc01lbWJlcihuYW1lKSkgeworICAg
ICAgc3RkOjpzdHJpbmcgbXNnID0gIkR1cGxpY2F0ZSBrZXk6ICciICsgbmFtZSArICInIjsKKyAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgbXNnLCB0b2tlbk5hbWUs
IHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVl
KClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9rID0gcmVhZFZh
bHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkg
c2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisKKyAg
ICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKKyAgICAgICAgKGNv
bW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRva2VuQXJyYXlT
ZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVudCkpIHsKKyAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywnIG9y
ICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCBjb21tYSwgdG9rZW5PYmplY3RFbmQpOworICAg
IH0KKyAgICBib29sIGZpbmFsaXplVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUgKGNvbW1hLnR5
cGVfID09IHRva2VuQ29tbWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCisgICAgICBmaW5hbGl6ZVRv
a2VuT2sgPSByZWFkVG9rZW4oY29tbWEpOworICAgIGlmIChjb21tYS50eXBlXyA9PSB0b2tlbk9i
amVjdEVuZCkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBhZGRFcnJvckFuZFJl
Y292ZXIoCisgICAgICAiTWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5O
YW1lLCB0b2tlbk9iamVjdEVuZCk7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQXJyYXkoVG9r
ZW4mIHRva2VuU3RhcnQpIHsKKyAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKKyAgY3VycmVudFZh
bHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0
KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tpcFNwYWNlcygpOworICBpZiAoKmN1
cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgeworICAgIFRva2VuIGVuZEFycmF5Owor
ICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgaW50IGlu
ZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgp
W2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRW
YWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5
IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7CisKKyAg
ICBUb2tlbiB0b2tlbjsKKyAgICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0gaW4g
dGhlIGFycmF5LgorICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKKyAgICB3aGlsZSAodG9rZW4u
dHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tlbih0b2tl
bik7CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0KKyAgICAgICAgKHRva2VuLnR5cGVf
ICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVuZCk7
CisgICAgaWYgKCFvayB8fCBiYWRUb2tlblR5cGUpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFu
ZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJh
dGlvbiIsIHRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAgaWYgKHRva2VuLnR5cGVf
ID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUg
ZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVy
biBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZh
bHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMgYW4g
aW50ZWdlci4gSWYgdGhlIG51bWJlciBpcworICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11bSBz
dXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisgIC8vIHdlIGRlY29kZSB0aGUgbnVt
YmVyIGFzIGEgZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOworICBi
b29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9PSAnLSc7CisgIGlmIChpc05lZ2F0aXZlKQorICAg
ICsrY3VycmVudDsKKyAgLy8gVE9ETzogSGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBhbmQg
bW9kIGF0IGNvbXBpbGUgdGltZSBvciBnZXQgcmlkIG9mIHRoZW0uCisgIFZhbHVlOjpMYXJnZXN0
VUludCBtYXhJbnRlZ2VyVmFsdWUgPQorICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJnZXN0
VUludCgtVmFsdWU6Om1pbkxhcmdlc3RJbnQpCisgICAgICAgICAgICAgICAgIDogVmFsdWU6Om1h
eExhcmdlc3RVSW50OworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50ZWdl
clZhbHVlIC8gMTA7CisgIFZhbHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7CisgIHdoaWxlIChj
dXJyZW50IDwgdG9rZW4uZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYg
KGMgPCAnMCcgfHwgYyA+ICc5JykKKyAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRl
Y29kZWQpOworICAgIFZhbHVlOjpVSW50IGRpZ2l0KGMgLSAnMCcpOworICAgIGlmICh2YWx1ZSA+
PSB0aHJlc2hvbGQpIHsKKyAgICAgIC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4IHZh
bHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElmCisgICAgICAvLyBhKSB3ZSd2ZSBv
bmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQsIGFu
ZAorICAgICAgLy8gYykgaXQncyBzbWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRpbmcg
ZGVsdGEsIHdlJ3JlIG9rYXkuCisgICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1iZXIg
YXMgYSBkb3VibGUgdG8gYXZvaWQgb3ZlcmZsb3cuCisgICAgICBpZiAodmFsdWUgPiB0aHJlc2hv
bGQgfHwgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8CisgICAgICAgICAgZGlnaXQgPiBtYXhJbnRl
Z2VyVmFsdWUgJSAxMCkgeworICAgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNv
ZGVkKTsKKyAgICAgIH0KKyAgICB9CisgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Cisg
IH0KKyAgaWYgKGlzTmVnYXRpdmUpCisgICAgZGVjb2RlZCA9IC1WYWx1ZTo6TGFyZ2VzdEludCh2
YWx1ZSk7CisgIGVsc2UgaWYgKHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4
SW50KSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlCisg
ICAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6
OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFk
ZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBP
dXJSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7Cisg
IGRvdWJsZSB2YWx1ZSA9IDA7CisgIGNvbnN0IGludCBidWZmZXJTaXplID0gMzI7CisgIGludCBj
b3VudDsKKyAgaW50IGxlbmd0aCA9IGludCh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfKTsKKwor
ICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93IGV4cGxvaXRzLgorICBp
ZiAobGVuZ3RoIDwgMCkgeworICAgIHJldHVybiBhZGRFcnJvcigiVW5hYmxlIHRvIHBhcnNlIHRv
a2VuIGxlbmd0aCIsIHRva2VuKTsKKyAgfQorCisgIC8vIEF2b2lkIHVzaW5nIGEgc3RyaW5nIGNv
bnN0YW50IGZvciB0aGUgZm9ybWF0IGNvbnRyb2wgc3RyaW5nIGdpdmVuIHRvCisgIC8vIHNzY2Fu
ZiwgYXMgdGhpcyBjYW4gY2F1c2UgaGFyZCB0byBkZWJ1ZyBjcmFzaGVzIG9uIE9TIFguIFNlZSBo
ZXJlIGZvciBtb3JlCisgIC8vIGluZm86CisgIC8vCisgIC8vICAgICBodHRwOi8vZGV2ZWxvcGVy
LmFwcGxlLmNvbS9saWJyYXJ5L21hYy8jRE9DVU1FTlRBVElPTi9EZXZlbG9wZXJUb29scy9nY2Mt
NC4wLjEvZ2NjL0luY29tcGF0aWJpbGl0aWVzLmh0bWwKKyAgY2hhciBmb3JtYXRbXSA9ICIlbGYi
OworCisgIGlmIChsZW5ndGggPD0gYnVmZmVyU2l6ZSkgeworICAgIENoYXIgYnVmZmVyW2J1ZmZl
clNpemUgKyAxXTsKKyAgICBtZW1jcHkoYnVmZmVyLCB0b2tlbi5zdGFydF8sIGxlbmd0aCk7Cisg
ICAgYnVmZmVyW2xlbmd0aF0gPSAwOworICAgIGNvdW50ID0gc3NjYW5mKGJ1ZmZlciwgZm9ybWF0
LCAmdmFsdWUpOworICB9IGVsc2UgeworICAgIHN0ZDo6c3RyaW5nIGJ1ZmZlcih0b2tlbi5zdGFy
dF8sIHRva2VuLmVuZF8pOworICAgIGNvdW50ID0gc3NjYW5mKGJ1ZmZlci5jX3N0cigpLCBmb3Jt
YXQsICZ2YWx1ZSk7CisgIH0KKworICBpZiAoY291bnQgIT0gMSkKKyAgICByZXR1cm4gYWRkRXJy
b3IoIiciICsgc3RkOjpzdHJpbmcodG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKSArCisgICAgICAg
ICAgICAgICAgICAgICAgICAiJyBpcyBub3QgYSBudW1iZXIuIiwKKyAgICAgICAgICAgICAgICAg
ICAgdG9rZW4pOworICBkZWNvZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCitib29s
IE91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbikgeworICBzdGQ6OnN0cmluZyBk
ZWNvZGVkX3N0cmluZzsKKyAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW4sIGRlY29kZWRfc3RyaW5n
KSkKKyAgICByZXR1cm4gZmFsc2U7CisgIFZhbHVlIGRlY29kZWQoZGVjb2RlZF9zdHJpbmcpOwor
ICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQor
Citib29sIE91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcm
IGRlY29kZWQpIHsKKyAgZGVjb2RlZC5yZXNlcnZlKHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8g
LSAyKTsKKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAgJyIn
CisgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVuZF8gLSAxOyAgICAgICAvLyBkbyBub3QgaW5jbHVk
ZSAnIicKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQr
KzsKKyAgICBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgICBlbHNlIGlmIChjID09ICdc
XCcpIHsKKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCkKKyAgICAgICAgcmV0dXJuIGFkZEVycm9y
KCJFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAg
ICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsrOworICAgICAgc3dpdGNoIChlc2NhcGUpIHsKKyAg
ICAgIGNhc2UgJyInOgorICAgICAgICBkZWNvZGVkICs9ICciJzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICBjYXNlICcvJzoKKyAgICAgICAgZGVjb2RlZCArPSAnLyc7CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSAnXFwnOgorICAgICAgICBkZWNvZGVkICs9ICdcXCc7CisgICAgICAgIGJyZWFr
OworICAgICAgY2FzZSAnYic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xiJzsKKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdmJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGYnOworICAgICAgICBi
cmVhazsKKyAgICAgIGNhc2UgJ24nOgorICAgICAgICBkZWNvZGVkICs9ICdcbic7CisgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSAncic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xyJzsKKyAgICAg
ICAgYnJlYWs7CisgICAgICBjYXNlICd0JzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHQnOworICAg
ICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3UnOiB7CisgICAgICAgIHVuc2lnbmVkIGludCB1bmlj
b2RlOworICAgICAgICBpZiAoIWRlY29kZVVuaWNvZGVDb2RlUG9pbnQodG9rZW4sIGN1cnJlbnQs
IGVuZCwgdW5pY29kZSkpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWNvZGVk
ICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKKyAgICAgIH0gYnJlYWs7CisgICAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3Ry
aW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICBkZWNv
ZGVkICs9IGM7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRl
cjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkgeworCisgIGlmICghZGVjb2RlVW5p
Y29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgaWYgKHVuaWNvZGUgPj0gMHhEODAwICYmIHVuaWNvZGUgPD0gMHhEQkZG
KSB7CisgICAgLy8gc3Vycm9nYXRlIHBhaXJzCisgICAgaWYgKGVuZCAtIGN1cnJlbnQgPCA2KQor
ICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJhZGRpdGlvbmFsIHNpeCBjaGFyYWN0
ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIuIiwKKyAgICAgICAg
ICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsKKyAgICB1bnNpZ25lZCBpbnQgc3Vycm9nYXRl
UGFpcjsKKyAgICBpZiAoKihjdXJyZW50KyspID09ICdcXCcgJiYgKihjdXJyZW50KyspID09ICd1
JykgeworICAgICAgaWYgKGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVu
dCwgZW5kLCBzdXJyb2dhdGVQYWlyKSkgeworICAgICAgICB1bmljb2RlID0gMHgxMDAwMCArICgo
dW5pY29kZSAmIDB4M0ZGKSA8PCAxMCkgKyAoc3Vycm9nYXRlUGFpciAmIDB4M0ZGKTsKKyAgICAg
IH0gZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlCisgICAgICByZXR1cm4g
YWRkRXJyb3IoImV4cGVjdGluZyBhbm90aGVyIFxcdSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vjb25k
IGhhbGYgb2YgIgorICAgICAgICAgICAgICAgICAgICAgICJhIHVuaWNvZGUgc3Vycm9nYXRlIHBh
aXIiLAorICAgICAgICAgICAgICAgICAgICAgIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAg
IGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVj
b2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisgIGlm
IChlbmQgLSBjdXJyZW50IDwgNCkKKyAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICJCYWQg
dW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBmb3VyIGRpZ2l0cyBleHBlY3RlZC4i
LAorICAgICAgICB0b2tlbiwKKyAgICAgICAgY3VycmVudCk7CisgIHVuaWNvZGUgPSAwOworICBm
b3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytpbmRleCkgeworICAgIENoYXIgYyA9ICpj
dXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAn
OScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7CisgICAgZWxzZSBpZiAoYyA+PSAnYScgJiYg
YyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAnYScgKyAxMDsKKyAgICBlbHNlIGlmIChj
ID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdBJyArIDEwOworICAg
IGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgICAiQmFkIHVuaWNvZGUgZXNj
YXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwgZGlnaXQgZXhwZWN0ZWQuIiwKKyAg
ICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbAorT3VyUmVhZGVyOjphZGRFcnJvcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2Fn
ZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSkgeworICBFcnJvckluZm8gaW5mbzsKKyAg
aW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8u
ZXh0cmFfID0gZXh0cmE7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWNvdmVyRnJvbUVycm9yKFRva2VuVHlwZSBza2lw
VW50aWxUb2tlbikgeworICBpbnQgZXJyb3JDb3VudCA9IGludChlcnJvcnNfLnNpemUoKSk7Cisg
IFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAoIXJlYWRUb2tlbihza2lwKSkKKyAg
ICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBkaXNjYXJkIGVycm9ycyBjYXVzZWQg
YnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBza2lwVW50aWxUb2tlbiB8fCBza2lw
LnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCisgICAgICBicmVhazsKKyAgfQorICBlcnJvcnNf
LnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIE91clJlYWRl
cjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikgeworICBhZGRFcnJvciht
ZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHNraXBVbnRpbFRva2Vu
KTsKK30KKworVmFsdWUmIE91clJlYWRlcjo6Y3VycmVudFZhbHVlKCkgeyByZXR1cm4gKihub2Rl
c18udG9wKCkpOyB9CisKK091clJlYWRlcjo6Q2hhciBPdXJSZWFkZXI6OmdldE5leHRDaGFyKCkg
eworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4gMDsKKyAgcmV0dXJuICpjdXJy
ZW50XysrOworfQorCit2b2lkIE91clJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExv
Y2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgY29s
dW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbl87CisgIExvY2F0aW9uIGxh
c3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQgPCBs
b2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOwor
ICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnXG4nKQorICAgICAg
ICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsrbGlu
ZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAgICAgbGFzdExpbmVTdGFydCA9IGN1
cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfQorICB9CisgIC8vIGNvbHVtbiAmIGxpbmUgc3Rh
cnQgYXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7Cisg
ICsrbGluZTsKK30KKworc3RkOjpzdHJpbmcgT3VyUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRD
b2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgaW50IGxpbmUsIGNvbHVtbjsKKyAg
Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4pOworICBjaGFy
IGJ1ZmZlclsxOCArIDE2ICsgMTYgKyAxXTsKKyAgc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBidWZm
ZXI7Cit9CisKK3N0ZDo6c3RyaW5nIE91clJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdl
cygpIGNvbnN0IHsKKyAgc3RkOjpzdHJpbmcgZm9ybWF0dGVkTWVzc2FnZTsKKyAgZm9yIChFcnJv
cnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAgaXRF
cnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0IEVy
cm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9CisgICAg
ICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IudG9rZW5fLnN0YXJ0Xykg
KyAiXG4iOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsg
IlxuIjsKKyAgICBpZiAoZXJyb3IuZXh0cmFfKQorICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPQor
ICAgICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRyYV8p
ICsgIiBmb3IgZGV0YWlsLlxuIjsKKyAgfQorICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKK30K
Kworc3RkOjp2ZWN0b3I8T3VyUmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IE91clJlYWRlcjo6Z2V0
U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsKKyAgc3RkOjp2ZWN0b3I8T3VyUmVhZGVyOjpTdHJ1
Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0
RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgp
OworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRF
cnJvcjsKKyAgICBPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVkOworICAgIHN0
cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJlZ2luXzsKKyAg
ICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0gYmVnaW5fOwor
ICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOworICAgIGFsbEVycm9ycy5w
dXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0dXJuIGFsbEVycm9yczsKK30KKworYm9v
bCBPdXJSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBtZXNzYWdlKSB7CisgIHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBpZih2
YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGlt
aXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tl
bi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdl
dE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBlbmRfICsgdmFsdWUuZ2V0T2Zmc2V0TGlt
aXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8u
bWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IDA7CisgIGVycm9yc18ucHVzaF9i
YWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnB1c2hFcnJv
cihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBW
YWx1ZSYgZXh0cmEpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlmKHZh
bHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1p
dCgpID4gbGVuZ3RoCisgICAgfHwgZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKKyAg
ICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2VuRXJy
b3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7Cisg
IHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJvcklu
Zm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3Nh
Z2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAg
ZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJl
YWRlcjo6Z29vZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFlcnJvcnNfLnNpemUoKTsKK30KKworCitj
bGFzcyBPdXJDaGFyUmVhZGVyIDogcHVibGljIENoYXJSZWFkZXIgeworICBib29sIGNvbnN0IGNv
bGxlY3RDb21tZW50c187CisgIE91clJlYWRlciByZWFkZXJfOworcHVibGljOgorICBPdXJDaGFy
UmVhZGVyKAorICAgIGJvb2wgY29sbGVjdENvbW1lbnRzLAorICAgIE91ckZlYXR1cmVzIGNvbnN0
JiBmZWF0dXJlcykKKyAgOiBjb2xsZWN0Q29tbWVudHNfKGNvbGxlY3RDb21tZW50cykKKyAgLCBy
ZWFkZXJfKGZlYXR1cmVzKQorICB7fQorICBib29sIHBhcnNlKAorICAgICAgY2hhciBjb25zdCog
YmVnaW5Eb2MsIGNoYXIgY29uc3QqIGVuZERvYywKKyAgICAgIFZhbHVlKiByb290LCBzdGQ6OnN0
cmluZyogZXJycykgeworICAgIGJvb2wgb2sgPSByZWFkZXJfLnBhcnNlKGJlZ2luRG9jLCBlbmRE
b2MsICpyb290LCBjb2xsZWN0Q29tbWVudHNfKTsKKyAgICBpZiAoZXJycykgeworICAgICAgKmVy
cnMgPSByZWFkZXJfLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKKyAgICB9CisgICAgcmV0
dXJuIG9rOworICB9Cit9OworCitDaGFyUmVhZGVyQnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIo
KQoreworICBzZXREZWZhdWx0cygmc2V0dGluZ3NfKTsKK30KK0NoYXJSZWFkZXJCdWlsZGVyOjp+
Q2hhclJlYWRlckJ1aWxkZXIoKQore30KK0NoYXJSZWFkZXIqIENoYXJSZWFkZXJCdWlsZGVyOjpu
ZXdDaGFyUmVhZGVyKCkgY29uc3QKK3sKKyAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSBzZXR0aW5n
c19bImNvbGxlY3RDb21tZW50cyJdLmFzQm9vbCgpOworICBPdXJGZWF0dXJlcyBmZWF0dXJlcyA9
IE91ckZlYXR1cmVzOjphbGwoKTsKKyAgZmVhdHVyZXMuYWxsb3dDb21tZW50c18gPSBzZXR0aW5n
c19bImFsbG93Q29tbWVudHMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuc3RyaWN0Um9vdF8gPSBz
ZXR0aW5nc19bInN0cmljdFJvb3QiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dEcm9wcGVk
TnVsbFBsYWNlaG9sZGVyc18gPSBzZXR0aW5nc19bImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRl
cnMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBzZXR0aW5nc19b
ImFsbG93TnVtZXJpY0tleXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTaW5nbGVRdW90
ZXNfID0gc2V0dGluZ3NfWyJhbGxvd1NpbmdsZVF1b3RlcyJdLmFzQm9vbCgpOworICBmZWF0dXJl
cy5zdGFja0xpbWl0XyA9IHNldHRpbmdzX1sic3RhY2tMaW1pdCJdLmFzSW50KCk7CisgIGZlYXR1
cmVzLmZhaWxJZkV4dHJhXyA9IHNldHRpbmdzX1siZmFpbElmRXh0cmEiXS5hc0Jvb2woKTsKKyAg
ZmVhdHVyZXMucmVqZWN0RHVwS2V5c18gPSBzZXR0aW5nc19bInJlamVjdER1cEtleXMiXS5hc0Jv
b2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTcGVjaWFsRmxvYXRzXyA9IHNldHRpbmdzX1siYWxsb3dT
cGVjaWFsRmxvYXRzIl0uYXNCb29sKCk7CisgIHJldHVybiBuZXcgT3VyQ2hhclJlYWRlcihjb2xs
ZWN0Q29tbWVudHMsIGZlYXR1cmVzKTsKK30KK3N0YXRpYyB2b2lkIGdldFZhbGlkUmVhZGVyS2V5
cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tleXMpCit7CisgIHZhbGlkX2tleXMtPmNs
ZWFyKCk7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29sbGVjdENvbW1lbnRzIik7CisgIHZhbGlk
X2tleXMtPmluc2VydCgiYWxsb3dDb21tZW50cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInN0
cmljdFJvb3QiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vo
b2xkZXJzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dOdW1lcmljS2V5cyIpOworICB2
YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93U2luZ2xlUXVvdGVzIik7CisgIHZhbGlkX2tleXMtPmlu
c2VydCgic3RhY2tMaW1pdCIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImZhaWxJZkV4dHJhIik7
CisgIHZhbGlkX2tleXMtPmluc2VydCgicmVqZWN0RHVwS2V5cyIpOworICB2YWxpZF9rZXlzLT5p
bnNlcnQoImFsbG93U3BlY2lhbEZsb2F0cyIpOworfQorYm9vbCBDaGFyUmVhZGVyQnVpbGRlcjo6
dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0Cit7CisgIEpzb246OlZhbHVlIG15
X2ludmFsaWQ7CisgIGlmICghaW52YWxpZCkgaW52YWxpZCA9ICZteV9pbnZhbGlkOyAgLy8gc28g
d2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3IgTlVMTAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmlu
dmFsaWQ7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB2YWxpZF9rZXlzOworICBnZXRWYWxpZFJl
YWRlcktleXMoJnZhbGlkX2tleXMpOworICBWYWx1ZTo6TWVtYmVycyBrZXlzID0gc2V0dGluZ3Nf
LmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVfdCBuID0ga2V5cy5zaXplKCk7CisgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgc3RkOjpzdHJpbmcgY29uc3QmIGtleSA9IGtl
eXNbaV07CisgICAgaWYgKHZhbGlkX2tleXMuZmluZChrZXkpID09IHZhbGlkX2tleXMuZW5kKCkp
IHsKKyAgICAgIGludltrZXldID0gc2V0dGluZ3NfW2tleV07CisgICAgfQorICB9CisgIHJldHVy
biAwdSA9PSBpbnYuc2l6ZSgpOworfQorVmFsdWUmIENoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRv
cltdKHN0ZDo6c3RyaW5nIGtleSkKK3sKKyAgcmV0dXJuIHNldHRpbmdzX1trZXldOworfQorLy8g
c3RhdGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKEpzb246OlZhbHVlKiBz
ZXR0aW5ncykKK3sKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlXQorICAoKnNldHRp
bmdzKVsiYWxsb3dDb21tZW50cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJzdHJpY3RSb290
Il0gPSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyJd
ID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsKKyAg
KCpzZXR0aW5ncylbImFsbG93U2luZ2xlUXVvdGVzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylb
InN0YWNrTGltaXQiXSA9IDEwMDA7CisgICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0gdHJ1
ZTsKKyAgKCpzZXR0aW5ncylbInJlamVjdER1cEtleXMiXSA9IHRydWU7CisgICgqc2V0dGluZ3Mp
WyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworLy8hIFtDaGFyUmVhZGVyQnVpbGRlclN0
cmljdE1vZGVdCit9CisvLyBzdGF0aWMKK3ZvaWQgQ2hhclJlYWRlckJ1aWxkZXI6OnNldERlZmF1
bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncykKK3sKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJEZWZh
dWx0c10KKyAgKCpzZXR0aW5ncylbImNvbGxlY3RDb21tZW50cyJdID0gdHJ1ZTsKKyAgKCpzZXR0
aW5ncylbImFsbG93Q29tbWVudHMiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJzdHJpY3RSb290
Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMi
XSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dOdW1lcmljS2V5cyJdID0gZmFsc2U7Cisg
ICgqc2V0dGluZ3MpWyJhbGxvd1NpbmdsZVF1b3RlcyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3Mp
WyJzdGFja0xpbWl0Il0gPSAxMDAwOworICAoKnNldHRpbmdzKVsiZmFpbElmRXh0cmEiXSA9IGZh
bHNlOworICAoKnNldHRpbmdzKVsicmVqZWN0RHVwS2V5cyJdID0gZmFsc2U7CisgICgqc2V0dGlu
Z3MpWyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworLy8hIFtDaGFyUmVhZGVyQnVpbGRl
ckRlZmF1bHRzXQorfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBn
bG9iYWwgZnVuY3Rpb25zCisKK2Jvb2wgcGFyc2VGcm9tU3RyZWFtKAorICAgIENoYXJSZWFkZXI6
OkZhY3RvcnkgY29uc3QmIGZhY3QsIHN0ZDo6aXN0cmVhbSYgc2luLAorICAgIFZhbHVlKiByb290
LCBzdGQ6OnN0cmluZyogZXJycykKK3sKKyAgc3RkOjpvc3RyaW5nc3RyZWFtIHNzaW47CisgIHNz
aW4gPDwgc2luLnJkYnVmKCk7CisgIHN0ZDo6c3RyaW5nIGRvYyA9IHNzaW4uc3RyKCk7CisgIGNo
YXIgY29uc3QqIGJlZ2luID0gZG9jLmRhdGEoKTsKKyAgY2hhciBjb25zdCogZW5kID0gYmVnaW4g
KyBkb2Muc2l6ZSgpOworICAvLyBOb3RlIHRoYXQgd2UgZG8gbm90IGFjdHVhbGx5IG5lZWQgYSBu
dWxsLXRlcm1pbmF0b3IuCisgIENoYXJSZWFkZXJQdHIgY29uc3QgcmVhZGVyKGZhY3QubmV3Q2hh
clJlYWRlcigpKTsKKyAgcmV0dXJuIHJlYWRlci0+cGFyc2UoYmVnaW4sIGVuZCwgcm9vdCwgZXJy
cyk7Cit9CisKK3N0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mIHNpbiwgVmFs
dWUmIHJvb3QpIHsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgc3RkOjpzdHJpbmcgZXJyczsK
KyAgYm9vbCBvayA9IHBhcnNlRnJvbVN0cmVhbShiLCBzaW4sICZyb290LCAmZXJycyk7CisgIGlm
ICghb2spIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICJFcnJvciBmcm9tIHJl
YWRlcjogJXMiLAorICAgICAgICAgICAgZXJycy5jX3N0cigpKTsKKworICAgIHRocm93UnVudGlt
ZUVycm9yKGVycnMpOworICB9CisgIHJldHVybiBzaW47Cit9CisKK30gLy8gbmFtZXNwYWNlIEpz
b24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xp
Yl9qc29uL2pzb25fcmVhZGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9q
c29uL2pzb25fdmFsdWVpdGVyYXRvci5pbmwKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJp
Z2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworLy8gaW5j
bHVkZWQgYnkganNvbl92YWx1ZS5jcHAKKworbmFtZXNwYWNlIEpzb24geworCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFz
ZQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitWYWx1ZUl0ZXJh
dG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoKQorICAgIDogY3VycmVudF8oKSwgaXNOdWxsXyh0
cnVlKSB7Cit9CisKK1ZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSgKKyAgICBj
b25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IGN1cnJl
bnRfKGN1cnJlbnQpLCBpc051bGxfKGZhbHNlKSB7fQorCitWYWx1ZSYgVmFsdWVJdGVyYXRvckJh
c2U6OmRlcmVmKCkgY29uc3QgeworICByZXR1cm4gY3VycmVudF8tPnNlY29uZDsKK30KKwordm9p
ZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aW5jcmVtZW50KCkgeworICArK2N1cnJlbnRfOworfQorCit2
b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpkZWNyZW1lbnQoKSB7CisgIC0tY3VycmVudF87Cit9CisK
K1ZhbHVlSXRlcmF0b3JCYXNlOjpkaWZmZXJlbmNlX3R5cGUKK1ZhbHVlSXRlcmF0b3JCYXNlOjpj
b21wdXRlRGlzdGFuY2UoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7CisjaWZkZWYgSlNP
Tl9VU0VfQ1BQVExfU01BTExNQVAKKyAgcmV0dXJuIG90aGVyLmN1cnJlbnRfIC0gY3VycmVudF87
CisjZWxzZQorICAvLyBJdGVyYXRvciBmb3IgbnVsbCB2YWx1ZSBhcmUgaW5pdGlhbGl6ZWQgdXNp
bmcgdGhlIGRlZmF1bHQKKyAgLy8gY29uc3RydWN0b3IsIHdoaWNoIGluaXRpYWxpemUgY3VycmVu
dF8gdG8gdGhlIGRlZmF1bHQKKyAgLy8gc3RkOjptYXA6Oml0ZXJhdG9yLiBBcyBiZWdpbigpIGFu
ZCBlbmQoKSBhcmUgdHdvIGluc3RhbmNlCisgIC8vIG9mIHRoZSBkZWZhdWx0IHN0ZDo6bWFwOjpp
dGVyYXRvciwgdGhleSBjYW4gbm90IGJlIGNvbXBhcmVkLgorICAvLyBUbyBhbGxvdyB0aGlzLCB3
ZSBoYW5kbGUgdGhpcyBjb21wYXJpc29uIHNwZWNpZmljYWxseS4KKyAgaWYgKGlzTnVsbF8gJiYg
b3RoZXIuaXNOdWxsXykgeworICAgIHJldHVybiAwOworICB9CisKKyAgLy8gVXNhZ2Ugb2Ygc3Rk
OjpkaXN0YW5jZSBpcyBub3QgcG9ydGFibGUgKGRvZXMgbm90IGNvbXBpbGUgd2l0aCBTdW4gU3R1
ZGlvIDEyCisgIC8vIFJvZ3VlV2F2ZSBTVEwsCisgIC8vIHdoaWNoIGlzIHRoZSBvbmUgdXNlZCBi
eSBkZWZhdWx0KS4KKyAgLy8gVXNpbmcgYSBwb3J0YWJsZSBoYW5kLW1hZGUgdmVyc2lvbiBmb3Ig
bm9uIHJhbmRvbSBpdGVyYXRvciBpbnN0ZWFkOgorICAvLyAgIHJldHVybiBkaWZmZXJlbmNlX3R5
cGUoIHN0ZDo6ZGlzdGFuY2UoIGN1cnJlbnRfLCBvdGhlci5jdXJyZW50XyApICk7CisgIGRpZmZl
cmVuY2VfdHlwZSBteURpc3RhbmNlID0gMDsKKyAgZm9yIChWYWx1ZTo6T2JqZWN0VmFsdWVzOjpp
dGVyYXRvciBpdCA9IGN1cnJlbnRfOyBpdCAhPSBvdGhlci5jdXJyZW50XzsKKyAgICAgICArK2l0
KSB7CisgICAgKytteURpc3RhbmNlOworICB9CisgIHJldHVybiBteURpc3RhbmNlOworI2VuZGlm
Cit9CisKK2Jvb2wgVmFsdWVJdGVyYXRvckJhc2U6OmlzRXF1YWwoY29uc3QgU2VsZlR5cGUmIG90
aGVyKSBjb25zdCB7CisgIGlmIChpc051bGxfKSB7CisgICAgcmV0dXJuIG90aGVyLmlzTnVsbF87
CisgIH0KKyAgcmV0dXJuIGN1cnJlbnRfID09IG90aGVyLmN1cnJlbnRfOworfQorCit2b2lkIFZh
bHVlSXRlcmF0b3JCYXNlOjpjb3B5KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgeworICBjdXJyZW50
XyA9IG90aGVyLmN1cnJlbnRfOworICBpc051bGxfID0gb3RoZXIuaXNOdWxsXzsKK30KKworVmFs
dWUgVmFsdWVJdGVyYXRvckJhc2U6OmtleSgpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWU6OkNaU3Ry
aW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmIChjenN0cmluZy5kYXRhKCkp
IHsKKyAgICBpZiAoY3pzdHJpbmcuaXNTdGF0aWNTdHJpbmcoKSkKKyAgICAgIHJldHVybiBWYWx1
ZShTdGF0aWNTdHJpbmcoY3pzdHJpbmcuZGF0YSgpKSk7CisgICAgcmV0dXJuIFZhbHVlKGN6c3Ry
aW5nLmRhdGEoKSwgY3pzdHJpbmcuZGF0YSgpICsgY3pzdHJpbmcubGVuZ3RoKCkpOworICB9Cisg
IHJldHVybiBWYWx1ZShjenN0cmluZy5pbmRleCgpKTsKK30KKworVUludCBWYWx1ZUl0ZXJhdG9y
QmFzZTo6aW5kZXgoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmluZyA9
ICgqY3VycmVudF8pLmZpcnN0OworICBpZiAoIWN6c3RyaW5nLmRhdGEoKSkKKyAgICByZXR1cm4g
Y3pzdHJpbmcuaW5kZXgoKTsKKyAgcmV0dXJuIFZhbHVlOjpVSW50KC0xKTsKK30KKworc3RkOjpz
dHJpbmcgVmFsdWVJdGVyYXRvckJhc2U6Om5hbWUoKSBjb25zdCB7CisgIGNoYXIgY29uc3QqIGtl
ZXk7CisgIGNoYXIgY29uc3QqIGVuZDsKKyAga2VleSA9IG1lbWJlck5hbWUoJmVuZCk7CisgIGlm
ICgha2VleSkgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgIHJldHVybiBzdGQ6OnN0cmluZyhrZWV5
LCBlbmQpOworfQorCitjaGFyIGNvbnN0KiBWYWx1ZUl0ZXJhdG9yQmFzZTo6bWVtYmVyTmFtZSgp
IGNvbnN0IHsKKyAgY29uc3QgY2hhciogY25hbWUgPSAoKmN1cnJlbnRfKS5maXJzdC5kYXRhKCk7
CisgIHJldHVybiBjbmFtZSA/IGNuYW1lIDogIiI7Cit9CisKK2NoYXIgY29uc3QqIFZhbHVlSXRl
cmF0b3JCYXNlOjptZW1iZXJOYW1lKGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0IHsKKyAgY29uc3Qg
Y2hhciogY25hbWUgPSAoKmN1cnJlbnRfKS5maXJzdC5kYXRhKCk7CisgIGlmICghY25hbWUpIHsK
KyAgICAqZW5kID0gTlVMTDsKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorICAqZW5kID0gY25hbWUg
KyAoKmN1cnJlbnRfKS5maXJzdC5sZW5ndGgoKTsKKyAgcmV0dXJuIGNuYW1lOworfQorCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBWYWx1ZUNvbnN0
SXRlcmF0b3IKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFs
dWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoKSB7fQorCitWYWx1ZUNvbnN0SXRl
cmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvcigKKyAgICBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVz
OjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKGN1cnJlbnQpIHt9
CisKK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3Ig
Y29uc3QmIG90aGVyKQorICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHt9CisKK1ZhbHVl
Q29uc3RJdGVyYXRvciYgVmFsdWVDb25zdEl0ZXJhdG9yOjoKK29wZXJhdG9yPShjb25zdCBWYWx1
ZUl0ZXJhdG9yQmFzZSYgb3RoZXIpIHsKKyAgY29weShvdGhlcik7CisgIHJldHVybiAqdGhpczsK
K30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3Mg
VmFsdWVJdGVyYXRvcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
CitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKCkge30KKworVmFsdWVJdGVyYXRvcjo6VmFs
dWVJdGVyYXRvcihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkK
KyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKGN1cnJlbnQpIHt9CisKK1ZhbHVlSXRlcmF0b3I6OlZh
bHVlSXRlcmF0b3IoY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcikKKyAgICA6IFZhbHVl
SXRlcmF0b3JCYXNlKG90aGVyKSB7CisgIHRocm93UnVudGltZUVycm9yKCJDb25zdEl0ZXJhdG9y
IHRvIEl0ZXJhdG9yIHNob3VsZCBuZXZlciBiZSBhbGxvd2VkLiIpOworfQorCitWYWx1ZUl0ZXJh
dG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlSXRlcmF0b3ImIG90aGVyKQorICAgIDogVmFs
dWVJdGVyYXRvckJhc2Uob3RoZXIpIHt9CisKK1ZhbHVlSXRlcmF0b3ImIFZhbHVlSXRlcmF0b3I6
Om9wZXJhdG9yPShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIHsKKyAgY29weShvdGhlcik7CisgIHJl
dHVybiAqdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJh
dG9yLmlubAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
Ly8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFsdWUu
Y3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDExIEJhcHRpc3RlIExlcGls
bGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4g
aWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBT
ZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3Vy
Y2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
CisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8anNvbi92YWx1ZS5oPgor
I2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5j
bHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGNhc3NlcnQ+Cisj
aWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25zdHN0cmluZy5oPgorI2Vu
ZGlmCisjaW5jbHVkZSA8Y3N0ZGRlZj4gLy8gc2l6ZV90CisjaW5jbHVkZSA8YWxnb3JpdGhtPiAv
LyBtaW4oKQorCisjZGVmaW5lIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFIGFzc2VydChmYWxzZSkK
KworLyoKKy0tIFZhbHZlIDEvNy8xNgorNDcwMiB1bnJlYWNoYWJsZSBjb2RlCisqLworI3ByYWdt
YSB3YXJuaW5nIChwdXNoKQorI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0NzAyKQorCituYW1l
c3BhY2UgSnNvbiB7CisKKy8vIFRoaXMgaXMgYSB3YWxrYXJvdW5kIHRvIGF2b2lkIHRoZSBzdGF0
aWMgaW5pdGlhbGl6YXRpb24gb2YgVmFsdWU6Om51bGwuCisvLyBrTnVsbCBtdXN0IGJlIHdvcmQt
YWxpZ25lZCB0byBhdm9pZCBjcmFzaGluZyBvbiBBUk0uICBXZSB1c2UgYW4gYWxpZ25tZW50IG9m
CisvLyA4IChpbnN0ZWFkIG9mIDQpIGFzIGEgYml0IG9mIGZ1dHVyZS1wcm9vZmluZy4KKyNpZiBk
ZWZpbmVkKF9fQVJNRUxfXykKKyNkZWZpbmUgQUxJR05BUyhieXRlX2FsaWdubWVudCkgX19hdHRy
aWJ1dGVfXygoYWxpZ25lZChieXRlX2FsaWdubWVudCkpKQorI2Vsc2UKKyNkZWZpbmUgQUxJR05B
UyhieXRlX2FsaWdubWVudCkKKyNlbmRpZgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgQUxJ
R05BUyg4KSBrTnVsbFtzaXplb2YoVmFsdWUpXSA9IHsgMCB9OworY29uc3QgdW5zaWduZWQgY2hh
ciYga051bGxSZWYgPSBrTnVsbFswXTsKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6bnVsbCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgVmFsdWUmPihrTnVsbFJlZik7Citjb25zdCBWYWx1ZSYgVmFsdWU6
Om51bGxSZWYgPSBudWxsOworCitjb25zdCBJbnQgVmFsdWU6Om1pbkludCA9IEludCh+KFVJbnQo
LTEpIC8gMikpOworY29uc3QgSW50IFZhbHVlOjptYXhJbnQgPSBJbnQoVUludCgtMSkgLyAyKTsK
K2NvbnN0IFVJbnQgVmFsdWU6Om1heFVJbnQgPSBVSW50KC0xKTsKKyNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQorY29uc3QgSW50NjQgVmFsdWU6Om1pbkludDY0ID0gSW50NjQofihVSW50NjQo
LTEpIC8gMikpOworY29uc3QgSW50NjQgVmFsdWU6Om1heEludDY0ID0gSW50NjQoVUludDY0KC0x
KSAvIDIpOworY29uc3QgVUludDY0IFZhbHVlOjptYXhVSW50NjQgPSBVSW50NjQoLTEpOworLy8g
VGhlIGNvbnN0YW50IGlzIGhhcmQtY29kZWQgYmVjYXVzZSBzb21lIGNvbXBpbGVyIGhhdmUgdHJv
dWJsZQorLy8gY29udmVydGluZyBWYWx1ZTo6bWF4VUludDY0IHRvIGEgZG91YmxlIGNvcnJlY3Rs
eSAoQUlYL3hsQykuCisvLyBBc3N1bWVzIHRoYXQgVUludDY0IGlzIGEgNjQgYml0cyBpbnRlZ2Vy
Lgorc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhVSW50NjRBc0RvdWJsZSA9IDE4NDQ2NzQ0MDczNzA5
NTUxNjE1LjA7CisjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK2NvbnN0IExhcmdl
c3RJbnQgVmFsdWU6Om1pbkxhcmdlc3RJbnQgPSBMYXJnZXN0SW50KH4oTGFyZ2VzdFVJbnQoLTEp
IC8gMikpOworY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWF4TGFyZ2VzdEludCA9IExhcmdlc3RJ
bnQoTGFyZ2VzdFVJbnQoLTEpIC8gMik7Citjb25zdCBMYXJnZXN0VUludCBWYWx1ZTo6bWF4TGFy
Z2VzdFVJbnQgPSBMYXJnZXN0VUludCgtMSk7CisKKyNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTikKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgor
c3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWluLCBVIG1heCkgeworICBy
ZXR1cm4gZCA+PSBtaW4gJiYgZCA8PSBtYXg7Cit9CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNP
Tl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCitzdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRl
Z2VyVG9Eb3VibGUoSnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxk
b3VibGU+KEludDY0KHZhbHVlIC8gMikpICogMi4wICsgSW50NjQodmFsdWUgJiAxKTsKK30KKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJs
ZShUIHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKK30KKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CitzdGF0aWMgaW5saW5lIGJvb2wgSW5S
YW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7CisgIHJldHVybiBkID49IGludGVnZXJUb0Rv
dWJsZShtaW4pICYmIGQgPD0gaW50ZWdlclRvRG91YmxlKG1heCk7Cit9CisjZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisKKy8qKiBEdXBsaWNh
dGVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHZhbHVlLgorICogQHBhcmFtIHZhbHVlIFBvaW50ZXIg
dG8gdGhlIHN0cmluZyB0byBkdXBsaWNhdGUuIE11c3QgYmUgemVyby10ZXJtaW5hdGVkIGlmCisg
KiAgICAgICAgICAgICAgbGVuZ3RoIGlzICJ1bmtub3duIi4KKyAqIEBwYXJhbSBsZW5ndGggTGVu
Z3RoIG9mIHRoZSB2YWx1ZS4gaWYgZXF1YWxzIHRvIHVua25vd24sIHRoZW4gaXQgd2lsbCBiZQor
ICogICAgICAgICAgICAgICBjb21wdXRlZCB1c2luZyBzdHJsZW4odmFsdWUpLgorICogQHJldHVy
biBQb2ludGVyIG9uIHRoZSBkdXBsaWNhdGUgaW5zdGFuY2Ugb2Ygc3RyaW5nLgorICovCitzdGF0
aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoKSB7
CisgIC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8gbWFsbG9jIGJl
bG93IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0byBhIHNhbmUgdmFsdWUuCisgIGlmIChsZW5n
dGggPj0gKHNpemVfdClWYWx1ZTo6bWF4SW50KQorICAgIGxlbmd0aCA9IFZhbHVlOjptYXhJbnQg
LSAxOworCisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MobGVu
Z3RoICsgMSkpOworICBpZiAobmV3U3RyaW5nID09IE5VTEwpIHsKKyAgICB0aHJvd1J1bnRpbWVF
cnJvcigKKyAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVTdHJpbmdWYWx1ZSgpOiAi
CisgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlciIpOworICB9
CisgIG1lbWNweShuZXdTdHJpbmcsIHZhbHVlLCBsZW5ndGgpOworICBuZXdTdHJpbmdbbGVuZ3Ro
XSA9IDA7CisgIHJldHVybiBuZXdTdHJpbmc7Cit9CisKKy8qIFJlY29yZCB0aGUgbGVuZ3RoIGFz
IGEgcHJlZml4LgorICovCitzdGF0aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZUFuZFByZWZpeFN0
cmluZ1ZhbHVlKAorICAgIGNvbnN0IGNoYXIqIHZhbHVlLAorICAgIHVuc2lnbmVkIGludCBsZW5n
dGgpCit7CisgIC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8gbWFs
bG9jIGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0byBhIHNhbmUgdmFsdWUuCisgIEpT
T05fQVNTRVJUX01FU1NBR0UobGVuZ3RoIDw9ICh1bnNpZ25lZClWYWx1ZTo6bWF4SW50IC0gc2l6
ZW9mKHVuc2lnbmVkKSAtIDFVLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1
ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogIgorICAgICAgICAgICAgICAgICAg
ICAgICJsZW5ndGggdG9vIGJpZyBmb3IgcHJlZml4aW5nIik7CisgIHVuc2lnbmVkIGFjdHVhbExl
bmd0aCA9IGxlbmd0aCArIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXplb2YodW5zaWduZWQpKSAr
IDFVOworICBjaGFyKiBuZXdTdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKGFjdHVh
bExlbmd0aCkpOworICBpZiAobmV3U3RyaW5nID09IDApIHsKKyAgICB0aHJvd1J1bnRpbWVFcnJv
cigKKyAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1
ZSgpOiAiCisgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlciIp
OworICB9CisgICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4obmV3U3RyaW5nKSA9IGxlbmd0
aDsKKyAgbWVtY3B5KG5ld1N0cmluZyArIHNpemVvZih1bnNpZ25lZCksIHZhbHVlLCBsZW5ndGgp
OworICBuZXdTdHJpbmdbYWN0dWFsTGVuZ3RoIC0gMVVdID0gMDsgLy8gdG8gYXZvaWQgYnVmZmVy
IG92ZXItcnVuIGFjY2lkZW50cyBieSB1c2VycyBsYXRlcgorICByZXR1cm4gbmV3U3RyaW5nOwor
fQoraW5saW5lIHN0YXRpYyB2b2lkIGRlY29kZVByZWZpeGVkU3RyaW5nKAorICAgIGJvb2wgaXNQ
cmVmaXhlZCwgY2hhciBjb25zdCogcHJlZml4ZWQsCisgICAgdW5zaWduZWQqIGxlbmd0aCwgY2hh
ciBjb25zdCoqIHZhbHVlKQoreworICBpZiAoIWlzUHJlZml4ZWQpIHsKKyAgICAqbGVuZ3RoID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbihwcmVmaXhlZCkpOworICAgICp2YWx1ZSA9IHBy
ZWZpeGVkOworICB9IGVsc2UgeworICAgICpsZW5ndGggPSAqcmVpbnRlcnByZXRfY2FzdDx1bnNp
Z25lZCBjb25zdCo+KHByZWZpeGVkKTsKKyAgICAqdmFsdWUgPSBwcmVmaXhlZCArIHNpemVvZih1
bnNpZ25lZCk7CisgIH0KK30KKy8qKiBGcmVlIHRoZSBzdHJpbmcgZHVwbGljYXRlZCBieSBkdXBs
aWNhdGVTdHJpbmdWYWx1ZSgpL2R1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCkuCisgKi8K
K3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlU3RyaW5nVmFsdWUoY2hhciogdmFsdWUpIHsgZnJl
ZSh2YWx1ZSk7IH0KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBWYWx1ZUludGVybmFscy4uLgorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQorCisjaW5jbHVkZSAianNvbl92YWx1ZWl0ZXJhdG9yLmlubCIKKyNlbmRpZiAvLyBp
ZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworbmFtZXNwYWNlIEpzb24geworCitF
eGNlcHRpb246OkV4Y2VwdGlvbihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQorICA6IG1zZ18obXNn
KQore30KK0V4Y2VwdGlvbjo6fkV4Y2VwdGlvbigpIHRocm93KCkKK3t9CitjaGFyIGNvbnN0KiBF
eGNlcHRpb246OndoYXQoKSBjb25zdCB0aHJvdygpCit7CisgIHJldHVybiBtc2dfLmNfc3RyKCk7
Cit9CitSdW50aW1lRXJyb3I6OlJ1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQor
ICA6IEV4Y2VwdGlvbihtc2cpCit7fQorTG9naWNFcnJvcjo6TG9naWNFcnJvcihzdGQ6OnN0cmlu
ZyBjb25zdCYgbXNnKQorICA6IEV4Y2VwdGlvbihtc2cpCit7fQordm9pZCB0aHJvd1J1bnRpbWVF
cnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQoreworICB0aHJvdyBSdW50aW1lRXJyb3IobXNn
KTsKK30KK3ZvaWQgdGhyb3dMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCit7Cisg
IHRocm93IExvZ2ljRXJyb3IobXNnKTsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWU6OkNvbW1lbnRJbmZvCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1ZhbHVlOjpDb21tZW50SW5mbzo6Q29tbWVu
dEluZm8oKSA6IGNvbW1lbnRfKDApIHt9CisKK1ZhbHVlOjpDb21tZW50SW5mbzo6fkNvbW1lbnRJ
bmZvKCkgeworICBpZiAoY29tbWVudF8pCisgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKGNvbW1lbnRf
KTsKK30KKwordm9pZCBWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQoY29uc3QgY2hhciog
dGV4dCwgc2l6ZV90IGxlbikgeworICBpZiAoY29tbWVudF8pIHsKKyAgICByZWxlYXNlU3RyaW5n
VmFsdWUoY29tbWVudF8pOworICAgIGNvbW1lbnRfID0gMDsKKyAgfQorICBKU09OX0FTU0VSVCh0
ZXh0ICE9IDApOworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdGV4dFswXSA9PSAnXDAn
IHx8IHRleHRbMF0gPT0gJy8nLAorICAgICAgImluIEpzb246OlZhbHVlOjpzZXRDb21tZW50KCk6
IENvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvIik7CisgIC8vIEl0IHNlZW1zIHRoYXQgLyoqLyBz
dHlsZSBjb21tZW50cyBhcmUgYWNjZXB0YWJsZSBhcyB3ZWxsLgorICBjb21tZW50XyA9IGR1cGxp
Y2F0ZVN0cmluZ1ZhbHVlKHRleHQsIGxlbik7Cit9CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlOjpDWlN0cmluZworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBOb3RlczogcG9saWN5XyBpbmRpY2F0
ZXMgaWYgdGhlIHN0cmluZyB3YXMgYWxsb2NhdGVkIHdoZW4KKy8vIGEgc3RyaW5nIGlzIHN0b3Jl
ZC4KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhBcnJheUluZGV4IGFpbmRleCkgOiBjc3Ry
XygwKSwgaW5kZXhfKGFpbmRleCkge30KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhjaGFy
IGNvbnN0KiBzdHIsIHVuc2lnbmVkIHVsZW5ndGgsIER1cGxpY2F0aW9uUG9saWN5IGFsbG9jYXRl
KQorICAgIDogY3N0cl8oc3RyKSB7CisgIC8vIGFsbG9jYXRlICE9IGR1cGxpY2F0ZQorICBzdG9y
YWdlXy5wb2xpY3lfID0gYWxsb2NhdGUgJiAweDM7CisgIHN0b3JhZ2VfLmxlbmd0aF8gPSB1bGVu
Z3RoICYgMHgzRkZGRkZGRjsKK30KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhjb25zdCBD
WlN0cmluZyYgb3RoZXIpCisgICAgOiBjc3RyXyhvdGhlci5zdG9yYWdlXy5wb2xpY3lfICE9IG5v
RHVwbGljYXRpb24gJiYgb3RoZXIuY3N0cl8gIT0gMAorICAgICAgICAgICAgICAgID8gZHVwbGlj
YXRlU3RyaW5nVmFsdWUob3RoZXIuY3N0cl8sIG90aGVyLnN0b3JhZ2VfLmxlbmd0aF8pCisgICAg
ICAgICAgICAgICAgOiBvdGhlci5jc3RyXykgeworICBzdG9yYWdlXy5wb2xpY3lfID0gKG90aGVy
LmNzdHJfCisgICAgICAgICAgICAgICAgID8gKHN0YXRpY19jYXN0PER1cGxpY2F0aW9uUG9saWN5
PihvdGhlci5zdG9yYWdlXy5wb2xpY3lfKSA9PSBub0R1cGxpY2F0aW9uCisgICAgICAgICAgICAg
ICAgICAgICA/IG5vRHVwbGljYXRpb24gOiBkdXBsaWNhdGUpCisgICAgICAgICAgICAgICAgIDog
c3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGljeV8pKTsK
KyAgc3RvcmFnZV8ubGVuZ3RoXyA9IG90aGVyLnN0b3JhZ2VfLmxlbmd0aF87Cit9CisKKyNpZiBK
U09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhDWlN0
cmluZyYmIG90aGVyKQorICA6IGNzdHJfKG90aGVyLmNzdHJfKSwgaW5kZXhfKG90aGVyLmluZGV4
XykgeworICBvdGhlci5jc3RyXyA9IG51bGxwdHI7Cit9CisjZW5kaWYKKworVmFsdWU6OkNaU3Ry
aW5nOjp+Q1pTdHJpbmcoKSB7CisgIGlmIChjc3RyXyAmJiBzdG9yYWdlXy5wb2xpY3lfID09IGR1
cGxpY2F0ZSkKKyAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29uc3RfY2FzdDxjaGFyKj4oY3N0cl8p
KTsKK30KKwordm9pZCBWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAoQ1pTdHJpbmcmIG90aGVyKSB7Cisg
IHN0ZDo6c3dhcChjc3RyXywgb3RoZXIuY3N0cl8pOworICBzdGQ6OnN3YXAoaW5kZXhfLCBvdGhl
ci5pbmRleF8pOworfQorCitWYWx1ZTo6Q1pTdHJpbmcmIFZhbHVlOjpDWlN0cmluZzo6b3BlcmF0
b3I9KENaU3RyaW5nIG90aGVyKSB7CisgIHN3YXAob3RoZXIpOworICByZXR1cm4gKnRoaXM7Cit9
CisKK2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwoY29uc3QgQ1pTdHJpbmcmIG90aGVy
KSBjb25zdCB7CisgIGlmICghY3N0cl8pIHJldHVybiBpbmRleF8gPCBvdGhlci5pbmRleF87Cisg
IC8vcmV0dXJuIHN0cmNtcChjc3RyXywgb3RoZXIuY3N0cl8pIDwgMDsKKyAgLy8gQXNzdW1lIGJv
dGggYXJlIHN0cmluZ3MuCisgIHVuc2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+c3RvcmFnZV8ubGVu
Z3RoXzsKKyAgdW5zaWduZWQgb3RoZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKKyAg
dW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVuLCBvdGhlcl9sZW4pOworICBpbnQg
Y29tcCA9IG1lbWNtcCh0aGlzLT5jc3RyXywgb3RoZXIuY3N0cl8sIG1pbl9sZW4pOworICBpZiAo
Y29tcCA8IDApIHJldHVybiB0cnVlOworICBpZiAoY29tcCA+IDApIHJldHVybiBmYWxzZTsKKyAg
cmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Cit9CisKK2Jvb2wgVmFsdWU6OkNaU3RyaW5n
OjpvcGVyYXRvcj09KGNvbnN0IENaU3RyaW5nJiBvdGhlcikgY29uc3QgeworICBpZiAoIWNzdHJf
KSByZXR1cm4gaW5kZXhfID09IG90aGVyLmluZGV4XzsKKyAgLy9yZXR1cm4gc3RyY21wKGNzdHJf
LCBvdGhlci5jc3RyXykgPT0gMDsKKyAgLy8gQXNzdW1lIGJvdGggYXJlIHN0cmluZ3MuCisgIHVu
c2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+c3RvcmFnZV8ubGVuZ3RoXzsKKyAgdW5zaWduZWQgb3Ro
ZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKKyAgaWYgKHRoaXNfbGVuICE9IG90aGVy
X2xlbikgcmV0dXJuIGZhbHNlOworICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzLT5jc3RyXywgb3Ro
ZXIuY3N0cl8sIHRoaXNfbGVuKTsKKyAgcmV0dXJuIGNvbXAgPT0gMDsKK30KKworQXJyYXlJbmRl
eCBWYWx1ZTo6Q1pTdHJpbmc6OmluZGV4KCkgY29uc3QgeyByZXR1cm4gaW5kZXhfOyB9CisKKy8v
Y29uc3QgY2hhciogVmFsdWU6OkNaU3RyaW5nOjpjX3N0cigpIGNvbnN0IHsgcmV0dXJuIGNzdHJf
OyB9Citjb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmRhdGEoKSBjb25zdCB7IHJldHVybiBj
c3RyXzsgfQordW5zaWduZWQgVmFsdWU6OkNaU3RyaW5nOjpsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBzdG9yYWdlXy5sZW5ndGhfOyB9Citib29sIFZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJp
bmcoKSBjb25zdCB7IHJldHVybiBzdG9yYWdlXy5wb2xpY3lfID09IG5vRHVwbGljYXRpb247IH0K
KworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFs
dWU6OlZhbHVlCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8q
ISBcaW50ZXJuYWwgRGVmYXVsdCBjb25zdHJ1Y3RvciBpbml0aWFsaXphdGlvbiBtdXN0IGJlIGVx
dWl2YWxlbnQgdG86CisgKiBtZW1zZXQoIHRoaXMsIDAsIHNpemVvZihWYWx1ZSkgKQorICogVGhp
cyBvcHRpbWl6YXRpb24gaXMgdXNlZCBpbiBWYWx1ZUludGVybmFsTWFwIGZhc3QgYWxsb2NhdG9y
LgorICovCitWYWx1ZTo6VmFsdWUoVmFsdWVUeXBlIHZ0eXBlKSB7CisgIGluaXRCYXNpYyh2dHlw
ZSk7CisgIHN3aXRjaCAodnR5cGUpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgYnJlYWs7Cisg
IGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICAgIHZhbHVlXy5pbnRfID0gMDsK
KyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgdmFsdWVfLnJlYWxfID0gMC4wOwor
ICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIHZhbHVlXy5zdHJpbmdfID0gMDsK
KyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAg
IHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygpOworICAgIGJyZWFrOworICBjYXNlIGJv
b2xlYW5WYWx1ZToKKyAgICB2YWx1ZV8uYm9vbF8gPSBmYWxzZTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorfQorCitWYWx1ZTo6VmFs
dWUoSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRWYWx1ZSk7CisgIHZhbHVlXy5pbnRfID0g
dmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1ZShVSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyh1aW50
VmFsdWUpOworICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKK30KKyNpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQorVmFsdWU6OlZhbHVlKEludDY0IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRWYWx1
ZSk7CisgIHZhbHVlXy5pbnRfID0gdmFsdWU7Cit9CitWYWx1ZTo6VmFsdWUoVUludDY0IHZhbHVl
KSB7CisgIGluaXRCYXNpYyh1aW50VmFsdWUpOworICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKK30K
KyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitWYWx1ZTo6VmFsdWUoZG91Ymxl
IHZhbHVlKSB7CisgIGluaXRCYXNpYyhyZWFsVmFsdWUpOworICB2YWx1ZV8ucmVhbF8gPSB2YWx1
ZTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSB7CisgIGluaXRCYXNpYyhz
dHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4
U3RyaW5nVmFsdWUodmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdHJsZW4odmFsdWUpKSk7
Cit9CisKK1ZhbHVlOjpWYWx1ZShjb25zdCBjaGFyKiBiZWdpblZhbHVlLCBjb25zdCBjaGFyKiBl
bmRWYWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3Ry
aW5nXyA9CisgICAgICBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZShiZWdpblZhbHVlLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kVmFsdWUgLSBiZWdpblZhbHVlKSk7Cit9CisKK1ZhbHVl
OjpWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1Zh
bHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPQorICAgICAgZHVwbGljYXRlQW5kUHJlZml4
U3RyaW5nVmFsdWUodmFsdWUuZGF0YSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUubGVu
Z3RoKCkpKTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IFN0YXRpY1N0cmluZyYgdmFsdWUpIHsK
KyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBjb25zdF9jYXN0
PGNoYXIqPih2YWx1ZS5jX3N0cigpKTsKK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitWYWx1
ZTo6VmFsdWUoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFzaWMo
c3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUubGVuZ3RoKCkp
KTsKK30KKyNlbmRpZgorCitWYWx1ZTo6VmFsdWUoYm9vbCB2YWx1ZSkgeworICBpbml0QmFzaWMo
Ym9vbGVhblZhbHVlKTsKKyAgdmFsdWVfLmJvb2xfID0gdmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1
ZShWYWx1ZSBjb25zdCYgb3RoZXIpCisgICAgOiB0eXBlXyhvdGhlci50eXBlXyksIGFsbG9jYXRl
ZF8oZmFsc2UpCisgICAgICAsCisgICAgICBjb21tZW50c18obnVsbHB0ciksIGRlZmF1bHRfdmFs
dWVfKG51bGxwdHIpLCBzdGFydF8ob3RoZXIuc3RhcnRfKSwgbGltaXRfKG90aGVyLmxpbWl0XykK
K3sKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNlIGJvb2xlYW5W
YWx1ZToKKyAgICB2YWx1ZV8gPSBvdGhlci52YWx1ZV87CisgICAgYnJlYWs7CisgIGNhc2Ugc3Ry
aW5nVmFsdWU6CisgICAgaWYgKG90aGVyLnZhbHVlXy5zdHJpbmdfICYmIG90aGVyLmFsbG9jYXRl
ZF8pIHsKKyAgICAgIHVuc2lnbmVkIGxlbjsKKyAgICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICAg
IGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5zdHJp
bmdfLAorICAgICAgICAgICZsZW4sICZzdHIpOworICAgICAgdmFsdWVfLnN0cmluZ18gPSBkdXBs
aWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZShzdHIsIGxlbik7CisgICAgICBhbGxvY2F0ZWRfID0g
dHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgdmFsdWVfLnN0cmluZ18gPSBvdGhlci52YWx1ZV8u
c3RyaW5nXzsKKyAgICAgIGFsbG9jYXRlZF8gPSBmYWxzZTsKKyAgICB9CisgICAgYnJlYWs7Cisg
IGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXyA9
IG5ldyBPYmplY3RWYWx1ZXMoKm90aGVyLnZhbHVlXy5tYXBfKTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICBpZiAob3RoZXIuY29t
bWVudHNfKSB7CisgICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVu
dFBsYWNlbWVudF07CisgICAgZm9yIChpbnQgY29tbWVudCA9IDA7IGNvbW1lbnQgPCBudW1iZXJP
ZkNvbW1lbnRQbGFjZW1lbnQ7ICsrY29tbWVudCkgeworICAgICAgY29uc3QgQ29tbWVudEluZm8m
IG90aGVyQ29tbWVudCA9IG90aGVyLmNvbW1lbnRzX1tjb21tZW50XTsKKyAgICAgIGlmIChvdGhl
ckNvbW1lbnQuY29tbWVudF8pCisgICAgICAgIGNvbW1lbnRzX1tjb21tZW50XS5zZXRDb21tZW50
KAorICAgICAgICAgICAgb3RoZXJDb21tZW50LmNvbW1lbnRfLCBzdHJsZW4ob3RoZXJDb21tZW50
LmNvbW1lbnRfKSk7CisgICAgfQorICB9CisKKyAgaWYgKCBvdGhlci5kZWZhdWx0X3ZhbHVlXyAp
CisgIHsKKyAgICAgICAgIGRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCAqb3RoZXIuZGVmYXVs
dF92YWx1ZV8gKTsKKyAgfQorCit9CisKKyNpZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUwor
Ly8gTW92ZSBjb25zdHJ1Y3RvcgorVmFsdWU6OlZhbHVlKFZhbHVlJiYgb3RoZXIpIHsKKyAgaW5p
dEJhc2ljKG51bGxWYWx1ZSk7CisgIHN3YXAob3RoZXIpOworfQorI2VuZGlmCisKK1ZhbHVlOjp+
VmFsdWUoKSB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgIGNhc2Ug
aW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICBjYXNlIHJlYWxWYWx1ZToKKyAgY2FzZSBi
b29sZWFuVmFsdWU6CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgaWYgKGFs
bG9jYXRlZF8pCisgICAgICByZWxlYXNlU3RyaW5nVmFsdWUodmFsdWVfLnN0cmluZ18pOworICAg
IGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgZGVs
ZXRlIHZhbHVlXy5tYXBfOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOworICB9CisKKyAgaWYgKGNvbW1lbnRzXykKKyAgICBkZWxldGVbXSBjb21t
ZW50c187CisKKyAgaWYgKCBkZWZhdWx0X3ZhbHVlXykKKyAgICAgICAgIGRlbGV0ZSBkZWZhdWx0
X3ZhbHVlXzsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcj0oVmFsdWUgb3RoZXIpIHsKKyAg
c3dhcChvdGhlcik7CisgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBWYWx1ZTo6c3dhcFBheWxv
YWQoVmFsdWUmIG90aGVyKSB7CisgIFZhbHVlVHlwZSB0ZW1wID0gdHlwZV87CisgIHR5cGVfID0g
b3RoZXIudHlwZV87CisgIG90aGVyLnR5cGVfID0gdGVtcDsKKyAgc3RkOjpzd2FwKHZhbHVlXywg
b3RoZXIudmFsdWVfKTsKKyAgaW50IHRlbXAyID0gYWxsb2NhdGVkXzsKKyAgYWxsb2NhdGVkXyA9
IG90aGVyLmFsbG9jYXRlZF87CisgIG90aGVyLmFsbG9jYXRlZF8gPSB0ZW1wMiAmIDB4MTsKK30K
Kwordm9pZCBWYWx1ZTo6c3dhcChWYWx1ZSYgb3RoZXIpIHsKKyAgc3dhcFBheWxvYWQob3RoZXIp
OworICBzdGQ6OnN3YXAoY29tbWVudHNfLCBvdGhlci5jb21tZW50c18pOworICBzdGQ6OnN3YXAo
ZGVmYXVsdF92YWx1ZV8sIG90aGVyLmRlZmF1bHRfdmFsdWVfKTsKKyAgc3RkOjpzd2FwKHN0YXJ0
Xywgb3RoZXIuc3RhcnRfKTsKKyAgc3RkOjpzd2FwKGxpbWl0Xywgb3RoZXIubGltaXRfKTsKK30K
KworVmFsdWVUeXBlIFZhbHVlOjp0eXBlKCkgY29uc3QgeyByZXR1cm4gdHlwZV87IH0KKworaW50
IFZhbHVlOjpjb21wYXJlKGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeworICBpZiAoKnRoaXMg
PCBvdGhlcikKKyAgICByZXR1cm4gLTE7CisgIGlmICgqdGhpcyA+IG90aGVyKQorICAgIHJldHVy
biAxOworICByZXR1cm4gMDsKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I8KGNvbnN0IFZhbHVl
JiBvdGhlcikgY29uc3QgeworICBpbnQgdHlwZURlbHRhID0gdHlwZV8gLSBvdGhlci50eXBlXzsK
KyAgaWYgKHR5cGVEZWx0YSkKKyAgICByZXR1cm4gdHlwZURlbHRhIDwgMCA/IHRydWUgOiBmYWxz
ZTsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gZmFs
c2U7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfIDwgb3RoZXIudmFs
dWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPCBv
dGhlci52YWx1ZV8udWludF87CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
cmVhbF8gPCBvdGhlci52YWx1ZV8ucmVhbF87CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJl
dHVybiB2YWx1ZV8uYm9vbF8gPCBvdGhlci52YWx1ZV8uYm9vbF87CisgIGNhc2Ugc3RyaW5nVmFs
dWU6CisgIHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09IDApIHx8IChvdGhlci52YWx1ZV8u
c3RyaW5nXyA9PSAwKSkgeworICAgICAgaWYgKG90aGVyLnZhbHVlXy5zdHJpbmdfKSByZXR1cm4g
dHJ1ZTsKKyAgICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICB1bnNpZ25lZCB0aGlz
X2xlbjsKKyAgICB1bnNpZ25lZCBvdGhlcl9sZW47CisgICAgY2hhciBjb25zdCogdGhpc19zdHI7
CisgICAgY2hhciBjb25zdCogb3RoZXJfc3RyOworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRo
aXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0
cik7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFs
dWVfLnN0cmluZ18sICZvdGhlcl9sZW4sICZvdGhlcl9zdHIpOworICAgIHVuc2lnbmVkIG1pbl9s
ZW4gPSBzdGQ6Om1pbih0aGlzX2xlbiwgb3RoZXJfbGVuKTsKKyAgICBpbnQgY29tcCA9IG1lbWNt
cCh0aGlzX3N0ciwgb3RoZXJfc3RyLCBtaW5fbGVuKTsKKyAgICBpZiAoY29tcCA8IDApIHJldHVy
biB0cnVlOworICAgIGlmIChjb21wID4gMCkgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAodGhp
c19sZW4gPCBvdGhlcl9sZW4pOworICB9CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmpl
Y3RWYWx1ZTogeworICAgIGludCBkZWx0YSA9IGludCh2YWx1ZV8ubWFwXy0+c2l6ZSgpIC0gb3Ro
ZXIudmFsdWVfLm1hcF8tPnNpemUoKSk7CisgICAgaWYgKGRlbHRhKQorICAgICAgcmV0dXJuIGRl
bHRhIDwgMDsKKyAgICByZXR1cm4gKCp2YWx1ZV8ubWFwXykgPCAoKm90aGVyLnZhbHVlXy5tYXBf
KTsKKyAgfQorICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9Cisg
IHJldHVybiBmYWxzZTsgLy8gdW5yZWFjaGFibGUKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I8
PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEob3RoZXIgPCAqdGhpcyk7IH0K
KworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0
dXJuICEoKnRoaXMgPCBvdGhlcik7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+KGNvbnN0IFZh
bHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIgPCAqdGhpczsgfQorCitib29sIFZhbHVl
OjpvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeworICAvLyBpZiAoIHR5cGVf
ICE9IG90aGVyLnR5cGVfICkKKyAgLy8gR0NDIDIuOTUuMyBzYXlzOgorICAvLyBhdHRlbXB0IHRv
IHRha2UgYWRkcmVzcyBvZiBiaXQtZmllbGQgc3RydWN0dXJlIG1lbWJlciBgSnNvbjo6VmFsdWU6
OnR5cGVfJworICAvLyBCZWF0cyBtZSwgYnV0IGEgdGVtcCBzb2x2ZXMgdGhlIHByb2JsZW0uCisg
IGludCB0ZW1wID0gb3RoZXIudHlwZV87CisgIGlmICh0eXBlXyAhPSB0ZW1wKQorICAgIHJldHVy
biBmYWxzZTsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1
cm4gdHJ1ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPT0gb3Ro
ZXIudmFsdWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWlu
dF8gPT0gb3RoZXIudmFsdWVfLnVpbnRfOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4g
dmFsdWVfLnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBib29sZWFuVmFsdWU6
CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87CisgIGNhc2Ug
c3RyaW5nVmFsdWU6CisgIHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09IDApIHx8IChvdGhl
ci52YWx1ZV8uc3RyaW5nXyA9PSAwKSkgeworICAgICAgcmV0dXJuICh2YWx1ZV8uc3RyaW5nXyA9
PSBvdGhlci52YWx1ZV8uc3RyaW5nXyk7CisgICAgfQorICAgIHVuc2lnbmVkIHRoaXNfbGVuOwor
ICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgICBj
aGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKKyAg
ICBkZWNvZGVQcmVmaXhlZFN0cmluZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8uc3Ry
aW5nXywgJm90aGVyX2xlbiwgJm90aGVyX3N0cik7CisgICAgaWYgKHRoaXNfbGVuICE9IG90aGVy
X2xlbikgcmV0dXJuIGZhbHNlOworICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBvdGhl
cl9zdHIsIHRoaXNfbGVuKTsKKyAgICByZXR1cm4gY29tcCA9PSAwOworICB9CisgIGNhc2UgYXJy
YXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLm1hcF8tPnNp
emUoKSA9PSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpICYmCisgICAgICAgICAgICgqdmFsdWVf
Lm1hcF8pID09ICgqb3RoZXIudmFsdWVfLm1hcF8pOworICBkZWZhdWx0OgorICAgIEpTT05fQVNT
RVJUX1VOUkVBQ0hBQkxFOworICB9CisgIHJldHVybiBmYWxzZTsgLy8gdW5yZWFjaGFibGUKK30K
KworYm9vbCBWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0
dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKK2NvbnN0IGNoYXIqIFZhbHVlOjphc0NTdHJpbmco
KSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZV8gPT0gc3RyaW5nVmFsdWUsCisg
ICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjphc0NTdHJpbmcoKTogcmVxdWly
ZXMgc3RyaW5nVmFsdWUiKTsKKyAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDApIHJldHVybiAwOwor
ICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgY2hhciBjb25zdCogdGhpc19zdHI7CisgIGRlY29kZVBy
ZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhp
c19sZW4sICZ0aGlzX3N0cik7CisgIHJldHVybiB0aGlzX3N0cjsKK30KKworYm9vbCBWYWx1ZTo6
Z2V0U3RyaW5nKGNoYXIgY29uc3QqKiBzdHIsIGNoYXIgY29uc3QqKiBjZW5kKSBjb25zdCB7Cisg
IGlmICh0eXBlXyAhPSBzdHJpbmdWYWx1ZSkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVfLnN0
cmluZ18gPT0gMCkgcmV0dXJuIGZhbHNlOworICB1bnNpZ25lZCBsZW5ndGg7CisgIGRlY29kZVBy
ZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmbGVu
Z3RoLCBzdHIpOworICAqY2VuZCA9ICpzdHIgKyBsZW5ndGg7CisgIHJldHVybiB0cnVlOworfQor
CitzdGQ6OnN0cmluZyBWYWx1ZTo6YXNTdHJpbmcoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuICIiOworICBjYXNlIHN0cmluZ1ZhbHVl
OgorICB7CisgICAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDApIHJldHVybiAiIjsKKyAgICB1bnNp
Z25lZCB0aGlzX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgICBkZWNvZGVQcmVm
aXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNf
bGVuLCAmdGhpc19zdHIpOworICAgIHJldHVybiBzdGQ6OnN0cmluZyh0aGlzX3N0ciwgdGhpc19s
ZW4pOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8g
PyAidHJ1ZSIgOiAiZmFsc2UiOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRv
U3RyaW5nKHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
VG9TdHJpbmcodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZh
bHVlVG9TdHJpbmcodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVm
YXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNT
dHJpbmcoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgIH0K
K30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitDcHBUTDo6Q29uc3RTdHJpbmcgVmFsdWU6OmFz
Q29uc3RTdHJpbmcoKSBjb25zdCB7CisgIHVuc2lnbmVkIGxlbjsKKyAgY2hhciBjb25zdCogc3Ry
OworICBkZWNvZGVQcmVmaXhlZFN0cmluZyhhbGxvY2F0ZWRfLCB2YWx1ZV8uc3RyaW5nXywKKyAg
ICAgICZsZW4sICZzdHIpOworICByZXR1cm4gQ3BwVEw6OkNvbnN0U3RyaW5nKHN0ciwgbGVuKTsK
K30KKyNlbmRpZgorCitWYWx1ZTo6SW50IFZhbHVlOjphc0ludCgpIGNvbnN0IHsKKyAgc3dpdGNo
ICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJ
bnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFs
dWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlz
SW50KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2
YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdF
KEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAiZG91YmxlIG91dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZhbHVl
Xy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6Cisg
ICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVm
YXVsdF92YWx1ZV8tPmFzSW50KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0
dXJuIDA7CisgIH0KK30KKworVmFsdWU6OlVJbnQgVmFsdWU6OmFzVUludCgpIGNvbnN0IHsKKyAg
c3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NB
R0UoaXNVSW50KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJu
IFVJbnQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9N
RVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICBy
ZXR1cm4gVUludCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FT
U0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4g
VUludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAg
Y2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBk
ZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgICAg
cmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1VJbnQoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gMHU7CisgIH0KK30KKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisKK1ZhbHVlOjpJbnQ2NCBWYWx1ZTo6YXNJbnQ2NCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBl
XykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8uaW50Xyk7Cisg
IGNhc2UgdWludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQ2NCgpLCAiTGFy
Z2VzdFVJbnQgb3V0IG9mIEludDY0IHJhbmdlIik7CisgICAgcmV0dXJuIEludDY0KHZhbHVlXy51
aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5n
ZSh2YWx1ZV8ucmVhbF8sIG1pbkludDY0LCBtYXhJbnQ2NCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAiZG91YmxlIG91dCBvZiBJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBJbnQ2NCh2YWx1
ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29s
ZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0Ogor
ICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRfdmFsdWVfLT5hc0ludDY0KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmV0dXJuIDBsOworICB9Cit9CisKK1ZhbHVlOjpVSW50NjQgVmFsdWU6OmFzVUludDY0KCkgY29u
c3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9BU1NF
UlRfTUVTU0FHRShpc1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludDY0IHJhbmdlIik7
CisgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAg
IHJldHVybiBVSW50NjQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNP
Tl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludDY0KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOworICAg
IHJldHVybiBVSW50NjQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0
dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAx
IDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAg
ICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNVSW50NjQoKTsKKyAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICByZXR1cm4gMHVsOworICB9Cit9CisjZW5kaWYgLy8gaWYgZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKKworTGFyZ2VzdEludCBWYWx1ZTo6YXNMYXJnZXN0SW50KCkg
Y29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKyAgcmV0dXJuIGFzSW50KCk7Cisj
ZWxzZQorICByZXR1cm4gYXNJbnQ2NCgpOworI2VuZGlmCit9CisKK0xhcmdlc3RVSW50IFZhbHVl
Ojphc0xhcmdlc3RVSW50KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKyAg
cmV0dXJuIGFzVUludCgpOworI2Vsc2UKKyAgcmV0dXJuIGFzVUludDY0KCk7CisjZW5kaWYKK30K
KworZG91YmxlIFZhbHVlOjphc0RvdWJsZSgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgewor
ICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlXy5p
bnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9V
QkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVfLnVp
bnRfKTsKKyNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVS
U0lPTikKKyAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKHZhbHVlXy51aW50Xyk7CisjZW5kaWYg
Ly8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgIGNhc2Ug
cmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF87CisgIGNhc2UgbnVsbFZhbHVlOgor
ICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPyAxLjAgOiAwLjA7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFs
dWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzRG91YmxlKCk7
CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIDAuMDsKKyAgfQorfQorCitm
bG9hdCBWYWx1ZTo6YXNGbG9hdCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNl
IGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLmludF8pOwor
ICBjYXNlIHVpbnRWYWx1ZToKKyNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy51aW50Xyk7Cisj
ZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisg
ICAgcmV0dXJuIGludGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pOworI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICBjYXNlIHJlYWxWYWx1
ZToKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5yZWFsXyk7CisgIGNhc2Ug
bnVsbFZhbHVlOgorICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJl
dHVybiB2YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsKKyAgZGVmYXVsdDoKKyAgICAgICBpZiAo
IGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5h
c0Zsb2F0KCk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gMC4wZjsKKyAgfQor
fQorCitib29sIFZhbHVlOjphc0Jvb2woKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAg
Y2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXzsKKyAgY2FzZSBudWxs
VmFsdWU6CisgICAgcmV0dXJuIGZhbHNlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2
YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8g
VGhpcyBpcyBraW5kIG9mIHN0cmFuZ2UuIE5vdCByZWNvbW1lbmRlZC4KKyAgICByZXR1cm4gKHZh
bHVlXy5yZWFsXyAhPSAwLjApID8gdHJ1ZSA6IGZhbHNlOworICBkZWZhdWx0OgorICAgICAgIGlm
ICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8t
PmFzQm9vbCgpOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICB9
Cit9CisKK2Jvb2wgVmFsdWU6OmlzQ29udmVydGlibGVUbyhWYWx1ZVR5cGUgb3RoZXIpIGNvbnN0
IHsKKyAgc3dpdGNoIChvdGhlcikgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gKGlz
TnVtZXJpYygpICYmIGFzRG91YmxlKCkgPT0gMC4wKSB8fAorICAgICAgICAgICAodHlwZV8gPT0g
Ym9vbGVhblZhbHVlICYmIHZhbHVlXy5ib29sXyA9PSBmYWxzZSkgfHwKKyAgICAgICAgICAgKHR5
cGVfID09IHN0cmluZ1ZhbHVlICYmIGFzU3RyaW5nKCkgPT0gIiIpIHx8CisgICAgICAgICAgICh0
eXBlXyA9PSBhcnJheVZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gMCkgfHwKKyAgICAg
ICAgICAgKHR5cGVfID09IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gMCkg
fHwKKyAgICAgICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIGludFZhbHVlOgorICAg
IHJldHVybiBpc0ludCgpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSByZWFsVmFsdWUgJiYgSW5S
YW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludCwgbWF4SW50KSkgfHwKKyAgICAgICAgICAgdHlwZV8g
PT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSB1aW50VmFsdWU6
CisgICAgcmV0dXJuIGlzVUludCgpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSByZWFsVmFsdWUg
JiYgSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpKSB8fAorICAgICAgICAgICB0eXBl
XyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIHJlYWxWYWx1
ZToKKyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5
cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIGlzTnVt
ZXJpYygpIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Cisg
IGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgcmV0dXJuIGlzTnVtZXJpYygpIHx8IHR5cGVfID09IGJv
b2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBzdHJpbmdWYWx1ZSB8fAorICAgICAgICAgICB0eXBlXyA9
PSBudWxsVmFsdWU7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICByZXR1cm4gdHlwZV8gPT0gYXJy
YXlWYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAg
cmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgfQor
ICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgcmV0dXJuIGZhbHNlOworfQorCisvLy8gTnVt
YmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKK0FycmF5SW5kZXggVmFsdWU6OnNpemUo
KSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgIGNhc2Ug
aW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICBjYXNlIHJlYWxWYWx1ZToKKyAgY2FzZSBi
b29sZWFuVmFsdWU6CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2Ug
YXJyYXlWYWx1ZTogLy8gc2l6ZSBvZiB0aGUgYXJyYXkgaXMgaGlnaGVzdCBpbmRleCArIDEKKyAg
ICBpZiAoIXZhbHVlXy5tYXBfLT5lbXB0eSgpKSB7CisgICAgICBPYmplY3RWYWx1ZXM6OmNvbnN0
X2l0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5lbmQoKTsKKyAgICAgIC0taXRMYXN0Owor
ICAgICAgcmV0dXJuICgqaXRMYXN0KS5maXJzdC5pbmRleCgpICsgMTsKKyAgICB9CisgICAgcmV0
dXJuIDA7CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0dXJuIEFycmF5SW5kZXgodmFsdWVf
Lm1hcF8tPnNpemUoKSk7CisgIH0KKyAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIHJldHVy
biAwOyAvLyB1bnJlYWNoYWJsZTsKK30KKworYm9vbCBWYWx1ZTo6ZW1wdHkoKSBjb25zdCB7Cisg
IGlmIChpc051bGwoKSB8fCBpc0FycmF5KCkgfHwgaXNPYmplY3QoKSkKKyAgICByZXR1cm4gc2l6
ZSgpID09IDB1OworICBlbHNlCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjpv
cGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBpc051bGwoKTsgfQorCit2b2lkIFZhbHVlOjpjbGVh
cigpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8g
PT0gYXJyYXlWYWx1ZSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmNsZWFyKCk6
IHJlcXVpcmVzIGNvbXBsZXggdmFsdWUiKTsKKyAgc3RhcnRfID0gMDsKKyAgbGltaXRfID0gMDsK
KyAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOworICBkZWZhdWx0X3ZhbHVlXyA9IG51bGxwdHI7Cisg
IHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVl
OgorICAgIHZhbHVlXy5tYXBfLT5jbGVhcigpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAg
IGJyZWFrOworICB9Cit9CisKK3ZvaWQgVmFsdWU6OnJlc2l6ZShBcnJheUluZGV4IG5ld1NpemUp
IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0g
YXJyYXlWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc2l6
ZSgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisg
ICAgKnRoaXMgPSBWYWx1ZShhcnJheVZhbHVlKTsKKyAgQXJyYXlJbmRleCBvbGRTaXplID0gc2l6
ZSgpOworICBpZiAobmV3U2l6ZSA9PSAwKQorICAgIGNsZWFyKCk7CisgIGVsc2UgaWYgKG5ld1Np
emUgPiBvbGRTaXplKQorICAgICgqdGhpcylbbmV3U2l6ZSAtIDFdOworICBlbHNlIHsKKyAgICBm
b3IgKEFycmF5SW5kZXggaW5kZXggPSBuZXdTaXplOyBpbmRleCA8IG9sZFNpemU7ICsraW5kZXgp
IHsKKyAgICAgIHZhbHVlXy5tYXBfLT5lcmFzZShpbmRleCk7CisgICAgfQorICAgIGFzc2VydChz
aXplKCkgPT0gbmV3U2l6ZSk7CisgIH0KK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFy
cmF5SW5kZXggaW5kZXgpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09
IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVl
OjpvcGVyYXRvcltdKEFycmF5SW5kZXgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0
eXBlXyA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShhcnJheVZhbHVlKTsKKyAgQ1pT
dHJpbmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5t
YXBfLT5sb3dlcl9ib3VuZChrZXkpOworICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYm
ICgqaXQpLmZpcnN0ID09IGtleSkKKyAgICByZXR1cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVj
dFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoa2V5LCBudWxsUmVmKTsKKyAgaXQgPSB2
YWx1ZV8ubWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOworICByZXR1cm4gKCppdCkuc2Vj
b25kOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSB7CisgIEpTT05f
QVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+PSAwLAorICAgICAgImluIEpzb246OlZhbHVl
OjpvcGVyYXRvcltdKGludCBpbmRleCk6IGluZGV4IGNhbm5vdCBiZSBuZWdhdGl2ZSIpOworICBy
ZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9CisKK2NvbnN0IFZhbHVlJiBWYWx1
ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01F
U1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gYXJyYXlWYWx1ZSwK
KyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4KWNvbnN0OiByZXF1
aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgcmV0dXJu
IG51bGxSZWY7CisgIENaU3RyaW5nIGtleShpbmRleCk7CisgIE9iamVjdFZhbHVlczo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChrZXkpOworICBpZiAoaXQgPT0gdmFsdWVf
Lm1hcF8tPmVuZCgpKQorICAgIHJldHVybiBudWxsUmVmOworICByZXR1cm4gKCppdCkuc2Vjb25k
OworfQorCitjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSBjb25zdCB7
CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+PSAwLAorICAgICAgImluIEpz
b246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3Q6IGluZGV4IGNhbm5vdCBiZSBu
ZWdhdGl2ZSIpOworICByZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9CisKK3Zv
aWQgVmFsdWU6OmluaXRCYXNpYyhWYWx1ZVR5cGUgdnR5cGUsIGJvb2wgYWxsb2NhdGVkKSB7Cisg
IHR5cGVfID0gdnR5cGU7CisgIGFsbG9jYXRlZF8gPSBhbGxvY2F0ZWQ7CisgIGNvbW1lbnRzXyA9
IDA7CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7CisgIGRlZmF1bHRfdmFsdWVfID0gbnVs
bHB0cjsKK30KKworLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBu
dWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKy8vIEBwcmUgVHlwZSBvZiAnKnRoaXMn
IGlzIG9iamVjdCBvciBudWxsLgorLy8gQHBhcmFtIGtleSBpcyBudWxsLXRlcm1pbmF0ZWQuCitW
YWx1ZSYgVmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5KSB7CisgIEpTT05f
QVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2Jq
ZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoKTogcmVx
dWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICAqdGhp
cyA9IFZhbHVlKG9iamVjdFZhbHVlKTsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KAorICAgICAga2V5
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKGtleSkpLCBDWlN0cmluZzo6bm9EdXBsaWNh
dGlvbik7IC8vIE5PVEUhCisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFw
Xy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsKKyAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQo
KSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkpCisgICAgcmV0dXJuICgqaXQpLnNlY29uZDsK
KworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKGFjdHVhbEtleSwgbnVs
bFJlZik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsKKyAg
VmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25kOworICByZXR1cm4gdmFsdWU7Cit9CisKKy8vIEBw
YXJhbSBrZXkgaXMgbm90IG51bGwtdGVybWluYXRlZC4KK1ZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJl
ZmVyZW5jZShjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpCit7CisgIEpTT05fQVNT
RVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0
VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2Uoa2V5LCBlbmQp
OiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAg
ICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUpOworICBDWlN0cmluZyBhY3R1YWxLZXkoCisgICAg
ICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpkdXBsaWNh
dGVPbkNvcHkpOworICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxv
d2VyX2JvdW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYg
KCppdCkuZmlyc3QgPT0gYWN0dWFsS2V5KQorICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisKKyAg
T2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShhY3R1YWxLZXksIG51bGxSZWYp
OworICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIFZhbHVl
JiB2YWx1ZSA9ICgqaXQpLnNlY29uZDsKKyAgcmV0dXJuIHZhbHVlOworfQorCitWYWx1ZSBWYWx1
ZTo6Z2V0KEFycmF5SW5kZXggaW5kZXgsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0
IHsKKyAgY29uc3QgVmFsdWUqIHZhbHVlID0gJigoKnRoaXMpW2luZGV4XSk7CisgIGlmICggdmFs
dWUgPT0gJm51bGxSZWYgKQorICB7CisgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICB9
CisgIGVsc2UKKyAgeworICAgICAgICAgVmFsdWUgcmVzdWx0ID0gKnZhbHVlOworICAgICAgICAg
cmVzdWx0LmRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCBkZWZhdWx0VmFsdWUgKTsKKyAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgIH0KK30KKworYm9vbCBWYWx1ZTo6aXNWYWxpZEluZGV4KEFy
cmF5SW5kZXggaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgc2l6ZSgpOyB9CisKK1ZhbHVl
IGNvbnN0KiBWYWx1ZTo6ZmluZChjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpIGNv
bnN0Cit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUg
fHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OmZpbmQoa2V5
LCBlbmQsIGZvdW5kKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlIik7CisgIGlm
ICh0eXBlXyA9PSBudWxsVmFsdWUpIHJldHVybiBOVUxMOworICBDWlN0cmluZyBhY3R1YWxLZXko
a2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2VuZC1rZXkpLCBDWlN0cmluZzo6bm9EdXBsaWNh
dGlvbik7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+
ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpKSByZXR1cm4g
TlVMTDsKKyAgcmV0dXJuICYoKml0KS5zZWNvbmQ7Cit9Citjb25zdCBWYWx1ZSYgVmFsdWU6Om9w
ZXJhdG9yW10oY29uc3QgY2hhcioga2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQg
PSBmaW5kKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworICBpZiAoIWZvdW5kKSByZXR1cm4gbnVs
bFJlZjsKKyAgcmV0dXJuICpmb3VuZDsKK30KK1ZhbHVlIGNvbnN0JiBWYWx1ZTo6b3BlcmF0b3Jb
XShzdGQ6OnN0cmluZyBjb25zdCYga2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQg
PSBmaW5kKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCkpOworICBpZiAoIWZv
dW5kKSByZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJuICpmb3VuZDsKK30KKworVmFsdWUmIFZhbHVl
OjpvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5j
ZShrZXksIGtleSArIHN0cmxlbihrZXkpKTsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltd
KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5
LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6
b3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJl
ZmVyZW5jZShrZXkuY19zdHIoKSk7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorVmFsdWUm
IFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5KSB7CisgIHJl
dHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCkpOworfQor
VmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRvcltdKENwcFRMOjpDb25zdFN0cmluZyBjb25zdCYg
a2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleS5jX3N0cigpLCBr
ZXkuZW5kX2Nfc3RyKCkpOworICBpZiAoIWZvdW5kKSByZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJu
ICpmb3VuZDsKK30KKyNlbmRpZgorCitWYWx1ZSYgVmFsdWU6OmFwcGVuZChjb25zdCBWYWx1ZSYg
dmFsdWUpIHsgcmV0dXJuICgqdGhpcylbc2l6ZSgpXSA9IHZhbHVlOyB9CisKK1ZhbHVlIFZhbHVl
OjpnZXQoY2hhciBjb25zdCoga2V5LCBjaGFyIGNvbnN0KiBjZW5kLCBWYWx1ZSBjb25zdCYgZGVm
YXVsdFZhbHVlKSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleSwgY2Vu
ZCk7CisgIGlmICggIWZvdW5kICkKKyAgeworICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KyAgfQorICBlbHNlCisgIHsKKyAgICAgICAgIFZhbHVlIHJlc3VsdCA9ICpmb3VuZDsKKyAgICAg
ICAgIHJlc3VsdC5kZWZhdWx0X3ZhbHVlXyA9IG5ldyBWYWx1ZSggZGVmYXVsdFZhbHVlICk7Cisg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICB9Cit9CitWYWx1ZSBWYWx1ZTo6Z2V0KGNoYXIgY29u
c3QqIGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAgcmV0dXJuIGdl
dChrZXksIGtleSArIHN0cmxlbihrZXkpLCBkZWZhdWx0VmFsdWUpOworfQorVmFsdWUgVmFsdWU6
OmdldChzdGQ6OnN0cmluZyBjb25zdCYga2V5LCBWYWx1ZSBjb25zdCYgZGVmYXVsdFZhbHVlKSBj
b25zdAoreworICByZXR1cm4gZ2V0KGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3Ro
KCksIGRlZmF1bHRWYWx1ZSk7Cit9CisKKworYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0
IGNoYXIqIGtleSwgY29uc3QgY2hhciogY2VuZCwgVmFsdWUqIHJlbW92ZWQpCit7CisgIGlmICh0
eXBlXyAhPSBvYmplY3RWYWx1ZSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDWlN0cmlu
ZyBhY3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2VuZC1rZXkpLCBDWlN0cmlu
Zzo6bm9EdXBsaWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8u
bWFwXy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpKQor
ICAgIHJldHVybiBmYWxzZTsKKyAgKnJlbW92ZWQgPSBpdC0+c2Vjb25kOworICB2YWx1ZV8ubWFw
Xy0+ZXJhc2UoaXQpOworICByZXR1cm4gdHJ1ZTsKK30KK2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJl
cihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKQoreworICByZXR1cm4gcmVtb3ZlTWVt
YmVyKGtleSwga2V5ICsgc3RybGVuKGtleSksIHJlbW92ZWQpOworfQorYm9vbCBWYWx1ZTo6cmVt
b3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKQoreworICBy
ZXR1cm4gcmVtb3ZlTWVtYmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCks
IHJlbW92ZWQpOworfQorVmFsdWUgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXkp
Cit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09
IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVt
b3ZlTWVtYmVyKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxs
VmFsdWUpCisgICAgcmV0dXJuIG51bGxSZWY7CisKKyAgVmFsdWUgcmVtb3ZlZDsgIC8vIG51bGwK
KyAgcmVtb3ZlTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSksICZyZW1vdmVkKTsKKyAgcmV0
dXJuIHJlbW92ZWQ7IC8vIHN0aWxsIG51bGwgaWYgcmVtb3ZlTWVtYmVyKCkgZGlkIG5vdGhpbmcK
K30KK1ZhbHVlIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkKK3sK
KyAgcmV0dXJuIHJlbW92ZU1lbWJlcihrZXkuY19zdHIoKSk7Cit9CisKK2Jvb2wgVmFsdWU6OnJl
bW92ZUluZGV4KEFycmF5SW5kZXggaW5kZXgsIFZhbHVlKiByZW1vdmVkKSB7CisgIGlmICh0eXBl
XyAhPSBhcnJheVZhbHVlKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIENaU3RyaW5nIGtl
eShpbmRleCk7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+Zmlu
ZChrZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpKSB7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisgICpyZW1vdmVkID0gaXQtPnNlY29uZDsKKyAgQXJyYXlJbmRleCBvbGRTaXpl
ID0gc2l6ZSgpOworICAvLyBzaGlmdCBsZWZ0IGFsbCBpdGVtcyBsZWZ0LCBpbnRvIHRoZSBwbGFj
ZSBvZiB0aGUgInJlbW92ZWQiCisgIGZvciAoQXJyYXlJbmRleCBpID0gaW5kZXg7IGkgPCAob2xk
U2l6ZSAtIDEpOyArK2kpeworICAgIENaU3RyaW5nIGtlZXkoaSk7CisgICAgKCp2YWx1ZV8ubWFw
Xylba2VleV0gPSAoKnRoaXMpW2kgKyAxXTsKKyAgfQorICAvLyBlcmFzZSB0aGUgbGFzdCBvbmUg
KCJsZWZ0b3ZlciIpCisgIENaU3RyaW5nIGtleUxhc3Qob2xkU2l6ZSAtIDEpOworICBPYmplY3RW
YWx1ZXM6Oml0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleUxhc3QpOworICB2
YWx1ZV8ubWFwXy0+ZXJhc2UoaXRMYXN0KTsKKyAgcmV0dXJuIHRydWU7Cit9CisKKyNpZmRlZiBK
U09OX1VTRV9DUFBUTAorVmFsdWUgVmFsdWU6OmdldChjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcm
IGtleSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Qg
eworICByZXR1cm4gZ2V0KGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCksIGRlZmF1bHRWYWx1
ZSk7Cit9CisjZW5kaWYKKworYm9vbCBWYWx1ZTo6aXNNZW1iZXIoY2hhciBjb25zdCoga2V5LCBj
aGFyIGNvbnN0KiBjZW5kKSBjb25zdAoreworICBWYWx1ZSBjb25zdCogdmFsdWUgPSBmaW5kKGtl
eSwgY2VuZCk7CisgIHJldHVybiBOVUxMICE9IHZhbHVlOworfQorYm9vbCBWYWx1ZTo6aXNNZW1i
ZXIoY2hhciBjb25zdCoga2V5KSBjb25zdAoreworICByZXR1cm4gaXNNZW1iZXIoa2V5LCBrZXkg
KyBzdHJsZW4oa2V5KSk7Cit9Citib29sIFZhbHVlOjppc01lbWJlcihzdGQ6OnN0cmluZyBjb25z
dCYga2V5KSBjb25zdAoreworICByZXR1cm4gaXNNZW1iZXIoa2V5LmRhdGEoKSwga2V5LmRhdGEo
KSArIGtleS5sZW5ndGgoKSk7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorYm9vbCBWYWx1
ZTo6aXNNZW1iZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0IHsKKyAgcmV0
dXJuIGlzTWVtYmVyKGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCkpOworfQorI2VuZGlmCisK
K1ZhbHVlOjpNZW1iZXJzIFZhbHVlOjpnZXRNZW1iZXJOYW1lcygpIGNvbnN0IHsKKyAgSlNPTl9B
U1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMoKSwgdmFsdWUg
bXVzdCBiZSBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgIHJl
dHVybiBWYWx1ZTo6TWVtYmVycygpOworICBNZW1iZXJzIG1lbWJlcnM7CisgIG1lbWJlcnMucmVz
ZXJ2ZSh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRv
ciBpdCA9IHZhbHVlXy5tYXBfLT5iZWdpbigpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJh
dG9yIGl0RW5kID0gdmFsdWVfLm1hcF8tPmVuZCgpOworICBmb3IgKDsgaXQgIT0gaXRFbmQ7ICsr
aXQpIHsKKyAgICBtZW1iZXJzLnB1c2hfYmFjayhzdGQ6OnN0cmluZygoKml0KS5maXJzdC5kYXRh
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCppdCkuZmlyc3QubGVuZ3Ro
KCkpKTsKKyAgfQorICByZXR1cm4gbWVtYmVyczsKK30KKy8vCisvLyMgaWZkZWYgSlNPTl9VU0Vf
Q1BQVEwKKy8vIEVudW1NZW1iZXJOYW1lcworLy8gVmFsdWU6OmVudW1NZW1iZXJOYW1lcygpIGNv
bnN0CisvL3sKKy8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RWYWx1ZSApCisvLyAgIHsKKy8vICAg
ICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnkoICBDcHBUTDo6RW51bTo6dHJhbnNmb3JtKAorLy8g
ICAgICAgICBDcHBUTDo6RW51bTo6a2V5cyggKih2YWx1ZV8ubWFwXyksIENwcFRMOjpUeXBlPGNv
bnN0IENaU3RyaW5nICY+KCkgKSwKKy8vICAgICAgICAgTWVtYmVyTmFtZXNUcmFuc2Zvcm0oKSAp
ICk7CisvLyAgIH0KKy8vICAgcmV0dXJuIEVudW1NZW1iZXJOYW1lcygpOworLy99CisvLworLy8K
Ky8vIEVudW1WYWx1ZXMKKy8vIFZhbHVlOjplbnVtVmFsdWVzKCkgY29uc3QKKy8veworLy8gICBp
ZiAoIHR5cGVfID09IG9iamVjdFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApCisvLyAg
ICAgIHJldHVybiBDcHBUTDo6RW51bTo6YW55VmFsdWVzKCAqKHZhbHVlXy5tYXBfKSwKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENwcFRMOjpUeXBlPGNvbnN0IFZhbHVl
ICY+KCkgKTsKKy8vICAgcmV0dXJuIEVudW1WYWx1ZXMoKTsKKy8vfQorLy8KKy8vIyBlbmRpZgor
CitzdGF0aWMgYm9vbCBJc0ludGVncmFsKGRvdWJsZSBkKSB7CisgIGRvdWJsZSBpbnRlZ3JhbF9w
YXJ0OworICByZXR1cm4gbW9kZihkLCAmaW50ZWdyYWxfcGFydCkgPT0gMC4wOworfQorCitib29s
IFZhbHVlOjppc051bGwoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBudWxsVmFsdWU7IH0KKwor
Ym9vbCBWYWx1ZTo6aXNCb29sKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gYm9vbGVhblZhbHVl
OyB9CisKK2Jvb2wgVmFsdWU6OmlzSW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7Cisg
IGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IG1pbkludCAmJiB2YWx1
ZV8uaW50XyA8PSBtYXhJbnQ7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
dWludF8gPD0gVUludChtYXhJbnQpOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLnJlYWxfID49IG1pbkludCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4SW50ICYmCisgICAgICAg
ICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAg
fQorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6OmlzVUludCgpIGNvbnN0IHsKKyAg
c3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50
XyA+PSAwICYmIExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8PSBMYXJnZXN0VUludChtYXhVSW50
KTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBtYXhVSW50
OworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYgdmFs
dWVfLnJlYWxfIDw9IG1heFVJbnQgJiYKKyAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVh
bF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBWYWx1ZTo6aXNJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0
KQorICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHRydWU7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludDY0KG1h
eEludDY0KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8gTm90ZSB0aGF0IG1heEludDY0ICg9
IDJeNjMgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKKyAgICAvLyBkb3Vi
bGUsIHNvIGRvdWJsZShtYXhJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjMuIFRoZXJl
Zm9yZSB3ZQorICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3MgdGhh
biB0aGUgbGltaXQuCisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBkb3VibGUobWluSW50NjQp
ICYmCisgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IGRvdWJsZShtYXhJbnQ2NCkgJiYgSXNJbnRl
Z3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisjZW5kaWYg
Ly8gSlNPTl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjppc1VJ
bnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBzd2l0Y2ggKHR5
cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDA7Cisg
IGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB0cnVlOworICBjYXNlIHJlYWxWYWx1ZToKKyAg
ICAvLyBOb3RlIHRoYXQgbWF4VUludDY0ICg9IDJeNjQgLSAxKSBpcyBub3QgZXhhY3RseSByZXBy
ZXNlbnRhYmxlIGFzIGEKKyAgICAvLyBkb3VibGUsIHNvIGRvdWJsZShtYXhVSW50NjQpIHdpbGwg
YmUgcm91bmRlZCB1cCB0byAyXjY0LiBUaGVyZWZvcmUgd2UKKyAgICAvLyByZXF1aXJlIHRoZSB2
YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgorICAgIHJldHVybiB2YWx1
ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPCBtYXhVSW50NjRBc0RvdWJsZSAmJgorICAg
ICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7
CisgIH0KKyNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgVmFsdWU6OmlzSW50ZWdyYWwoKSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2
NCkKKyAgcmV0dXJuIGlzSW50NjQoKSB8fCBpc1VJbnQ2NCgpOworI2Vsc2UKKyAgcmV0dXJuIGlz
SW50KCkgfHwgaXNVSW50KCk7CisjZW5kaWYKK30KKworYm9vbCBWYWx1ZTo6aXNEb3VibGUoKSBj
b25zdCB7IHJldHVybiB0eXBlXyA9PSByZWFsVmFsdWUgfHwgaXNJbnRlZ3JhbCgpOyB9CisKK2Jv
b2wgVmFsdWU6OmlzTnVtZXJpYygpIGNvbnN0IHsgcmV0dXJuIGlzSW50ZWdyYWwoKSB8fCBpc0Rv
dWJsZSgpOyB9CisKK2Jvb2wgVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gdHlwZV8g
PT0gc3RyaW5nVmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNBcnJheSgpIGNvbnN0IHsgcmV0dXJu
IHR5cGVfID09IGFycmF5VmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNPYmplY3QoKSBjb25zdCB7
IHJldHVybiB0eXBlXyA9PSBvYmplY3RWYWx1ZTsgfQorCit2b2lkIFZhbHVlOjpzZXRDb21tZW50
KGNvbnN0IGNoYXIqIGNvbW1lbnQsIHNpemVfdCBsZW4sIENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KSB7CisgIGlmICghY29tbWVudHNfKQorICAgIGNvbW1lbnRzXyA9IG5ldyBDb21tZW50SW5m
b1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOworICBpZiAoKGxlbiA+IDApICYmIChjb21tZW50
W2xlbi0xXSA9PSAnXG4nKSkgeworICAgIC8vIEFsd2F5cyBkaXNjYXJkIHRyYWlsaW5nIG5ld2xp
bmUsIHRvIGFpZCBpbmRlbnRhdGlvbi4KKyAgICBsZW4gLT0gMTsKKyAgfQorICBjb21tZW50c19b
cGxhY2VtZW50XS5zZXRDb21tZW50KGNvbW1lbnQsIGxlbik7Cit9CisKK3ZvaWQgVmFsdWU6OnNl
dENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQp
IHsKKyAgc2V0Q29tbWVudChjb21tZW50LCBzdHJsZW4oY29tbWVudCksIHBsYWNlbWVudCk7Cit9
CisKK3ZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQsIENv
bW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIHNldENvbW1lbnQoY29tbWVudC5jX3N0cigp
LCBjb21tZW50Lmxlbmd0aCgpLCBwbGFjZW1lbnQpOworfQorCitib29sIFZhbHVlOjpoYXNDb21t
ZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdCB7CisgIHJldHVybiBjb21tZW50
c18gIT0gMCAmJiBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XyAhPSAwOworfQorCitzdGQ6
OnN0cmluZyBWYWx1ZTo6Z2V0Q29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29u
c3QgeworICBpZiAoaGFzQ29tbWVudChwbGFjZW1lbnQpKQorICAgIHJldHVybiBjb21tZW50c19b
cGxhY2VtZW50XS5jb21tZW50XzsKKyAgcmV0dXJuICIiOworfQorCit2b2lkIFZhbHVlOjpzZXRP
ZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpIHsgc3RhcnRfID0gc3RhcnQ7IH0KKwordm9pZCBWYWx1
ZTo6c2V0T2Zmc2V0TGltaXQoc2l6ZV90IGxpbWl0KSB7IGxpbWl0XyA9IGxpbWl0OyB9CisKK3Np
emVfdCBWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQoKSBjb25zdCB7IHJldHVybiBzdGFydF87IH0KKwor
c2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIGxpbWl0XzsgfQor
CitzdGQ6OnN0cmluZyBWYWx1ZTo6dG9TdHlsZWRTdHJpbmcoKSBjb25zdCB7CisgIFN0eWxlZFdy
aXRlciB3cml0ZXI7CisgIHJldHVybiB3cml0ZXIud3JpdGUoKnRoaXMpOworfQorCitWYWx1ZTo6
Y29uc3RfaXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7
CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVf
Lm1hcF8pCisgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmJlZ2luKCkp
OworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBjb25z
dF9pdGVyYXRvcigpOworfQorCitWYWx1ZTo6Y29uc3RfaXRlcmF0b3IgVmFsdWU6OmVuZCgpIGNv
bnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2Jq
ZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJh
dG9yKHZhbHVlXy5tYXBfLT5lbmQoKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJl
YWs7CisgIH0KKyAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Cit9CisKK1ZhbHVlOjppdGVyYXRv
ciBWYWx1ZTo6YmVnaW4oKSB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVl
OgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2YWx1ZV8ubWFwXykKKyAgICAgIHJldHVy
biBpdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4oKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6
CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGl0ZXJhdG9yKCk7Cit9CisKK1ZhbHVlOjppdGVy
YXRvciBWYWx1ZTo6ZW5kKCkgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlWYWx1
ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICByZXR1
cm4gaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoK
KyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3IoKTsKK30KKworLy8gY2xhc3MgUGF0
aEFyZ3VtZW50CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoKSA6
IGtleV8oKSwgaW5kZXhfKCksIGtpbmRfKGtpbmROb25lKSB7fQorCitQYXRoQXJndW1lbnQ6OlBh
dGhBcmd1bWVudChBcnJheUluZGV4IGluZGV4KQorICAgIDoga2V5XygpLCBpbmRleF8oaW5kZXgp
LCBraW5kXyhraW5kSW5kZXgpIHt9CisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KGNvbnN0
IGNoYXIqIGtleSkKKyAgICA6IGtleV8oa2V5KSwgaW5kZXhfKCksIGtpbmRfKGtpbmRLZXkpIHt9
CisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpCisg
ICAgOiBrZXlfKGtleS5jX3N0cigpKSwgaW5kZXhfKCksIGtpbmRfKGtpbmRLZXkpIHt9CisKKy8v
IGNsYXNzIFBhdGgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitQYXRoOjpQYXRoKGNvbnN0IHN0ZDo6c3RyaW5n
JiBwYXRoLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGExLAorICAgICAgICAgICBj
b25zdCBQYXRoQXJndW1lbnQmIGEyLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEz
LAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE0LAorICAgICAgICAgICBjb25zdCBQ
YXRoQXJndW1lbnQmIGE1KSB7CisgIEluQXJncyBpbjsKKyAgaW4ucHVzaF9iYWNrKCZhMSk7Cisg
IGluLnB1c2hfYmFjaygmYTIpOworICBpbi5wdXNoX2JhY2soJmEzKTsKKyAgaW4ucHVzaF9iYWNr
KCZhNCk7CisgIGluLnB1c2hfYmFjaygmYTUpOworICBtYWtlUGF0aChwYXRoLCBpbik7Cit9CisK
K3ZvaWQgUGF0aDo6bWFrZVBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJn
cyYgaW4pIHsKKyAgY29uc3QgY2hhciogY3VycmVudCA9IHBhdGguY19zdHIoKTsKKyAgY29uc3Qg
Y2hhciogZW5kID0gY3VycmVudCArIHBhdGgubGVuZ3RoKCk7CisgIEluQXJnczo6Y29uc3RfaXRl
cmF0b3IgaXRJbkFyZyA9IGluLmJlZ2luKCk7CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgewor
ICAgIGlmICgqY3VycmVudCA9PSAnWycpIHsKKyAgICAgICsrY3VycmVudDsKKyAgICAgIGlmICgq
Y3VycmVudCA9PSAnJScpCisgICAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFyZywg
UGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpOworICAgICAgZWxzZSB7CisgICAgICAgIEFycmF5SW5k
ZXggaW5kZXggPSAwOworICAgICAgICBmb3IgKDsgY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQg
Pj0gJzAnICYmICpjdXJyZW50IDw9ICc5JzsgKytjdXJyZW50KQorICAgICAgICAgIGluZGV4ID0g
aW5kZXggKiAxMCArIEFycmF5SW5kZXgoKmN1cnJlbnQgLSAnMCcpOworICAgICAgICBhcmdzXy5w
dXNoX2JhY2soaW5kZXgpOworICAgICAgfQorICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kIHx8ICpj
dXJyZW50KysgIT0gJ10nKQorICAgICAgICBpbnZhbGlkUGF0aChwYXRoLCBpbnQoY3VycmVudCAt
IHBhdGguY19zdHIoKSkpOworICAgIH0gZWxzZSBpZiAoKmN1cnJlbnQgPT0gJyUnKSB7CisgICAg
ICBhZGRQYXRoSW5BcmcocGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEtleSk7
CisgICAgICArK2N1cnJlbnQ7CisgICAgfSBlbHNlIGlmICgqY3VycmVudCA9PSAnLicpIHsKKyAg
ICAgICsrY3VycmVudDsKKyAgICB9IGVsc2UgeworICAgICAgY29uc3QgY2hhciogYmVnaW5OYW1l
ID0gY3VycmVudDsKKyAgICAgIHdoaWxlIChjdXJyZW50ICE9IGVuZCAmJiAhc3RyY2hyKCJbLiIs
ICpjdXJyZW50KSkKKyAgICAgICAgKytjdXJyZW50OworICAgICAgYXJnc18ucHVzaF9iYWNrKHN0
ZDo6c3RyaW5nKGJlZ2luTmFtZSwgY3VycmVudCkpOworICAgIH0KKyAgfQorfQorCit2b2lkIFBh
dGg6OmFkZFBhdGhJbkFyZyhjb25zdCBzdGQ6OnN0cmluZyYgLypwYXRoKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAgICAgICAgICAgICAgICAgICAgICAg
SW5BcmdzOjpjb25zdF9pdGVyYXRvciYgaXRJbkFyZywKKyAgICAgICAgICAgICAgICAgICAgICAg
IFBhdGhBcmd1bWVudDo6S2luZCBraW5kKSB7CisgIGlmIChpdEluQXJnID09IGluLmVuZCgpKSB7
CisgICAgLy8gRXJyb3I6IG1pc3NpbmcgYXJndW1lbnQgJWQKKyAgfSBlbHNlIGlmICgoKml0SW5B
cmcpLT5raW5kXyAhPSBraW5kKSB7CisgICAgLy8gRXJyb3I6IGJhZCBhcmd1bWVudCB0eXBlCisg
IH0gZWxzZSB7CisgICAgYXJnc18ucHVzaF9iYWNrKCoqaXRJbkFyZyk7CisgIH0KK30KKwordm9p
ZCBQYXRoOjppbnZhbGlkUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgLypwYXRoKi8sIGludCAvKmxv
Y2F0aW9uKi8pIHsKKyAgLy8gRXJyb3I6IGludmFsaWQgcGF0aC4KK30KKworY29uc3QgVmFsdWUm
IFBhdGg6OnJlc29sdmUoY29uc3QgVmFsdWUmIHJvb3QpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWUq
IG5vZGUgPSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJl
Z2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7CisgICAgY29uc3QgUGF0aEFyZ3VtZW50
JiBhcmcgPSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRleChh
cmcuaW5kZXhfKSkgeworICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0aCAo
YXJyYXkgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4KKyAgICAgIH0KKyAgICAgIG5vZGUg
PSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBh
dGhBcmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKSB7Cisg
ICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChvYmplY3QgdmFsdWUgZXhw
ZWN0ZWQgYXQgcG9zaXRpb24uLi4pCisgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUpW2Fy
Zy5rZXlfXSk7CisgICAgICBpZiAobm9kZSA9PSAmVmFsdWU6Om51bGxSZWYpIHsKKyAgICAgICAg
Ly8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCBoYXMgbm8gbWVtYmVyIG5h
bWVkICcnIGF0CisgICAgICAgIC8vIHBvc2l0aW9uLi4uKQorICAgICAgfQorICAgIH0KKyAgfQor
ICByZXR1cm4gKm5vZGU7Cit9CisKK1ZhbHVlIFBhdGg6OnJlc29sdmUoY29uc3QgVmFsdWUmIHJv
b3QsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWUqIG5v
ZGUgPSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2lu
KCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7CisgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBh
cmcgPSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCkg
eworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRleChhcmcu
aW5kZXhfKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgIG5vZGUgPSAmKCgq
bm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1
bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKQorICAgICAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOwor
ICAgICAgaWYgKG5vZGUgPT0gJlZhbHVlOjpudWxsUmVmKQorICAgICAgICByZXR1cm4gZGVmYXVs
dFZhbHVlOworICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7Cit9CisKK1ZhbHVlJiBQYXRoOjpt
YWtlKFZhbHVlJiByb290KSBjb25zdCB7CisgIFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZvciAo
QXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5lbmQo
KTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYXJnID0gKml0OworICAgIGlmIChh
cmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9kZS0+
aXNBcnJheSgpKSB7CisgICAgICAgIC8vIEVycm9yOiBub2RlIGlzIG5vdCBhbiBhcnJheSBhdCBw
b3NpdGlvbiAuLi4KKyAgICAgIH0KKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10p
OworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSkgewor
ICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKSB7CisgICAgICAgIC8vIEVycm9yOiBub2RlIGlz
IG5vdCBhbiBvYmplY3QgYXQgcG9zaXRpb24uLi4KKyAgICAgIH0KKyAgICAgIG5vZGUgPSAmKCgq
bm9kZSlbYXJnLmtleV9dKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuICpub2RlOworfQorCit9IC8v
IG5hbWVzcGFjZSBKc29uCisKKyNwcmFnbWEgd2FybmluZyAocG9wKQorCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZS5j
cHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJl
Z2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxsZXVy
CisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBk
ZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBm
aWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZv
cmdlLm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNp
bmNsdWRlIDxqc29uL3dyaXRlci5oPgorI2luY2x1ZGUgImpzb25fdG9vbC5oIgorI2VuZGlmIC8v
IGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPGlvbWFuaXA+Cisj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8dXRpbGl0eT4K
KyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8Y2Fzc2VydD4KKyNpbmNsdWRlIDxjc3RyaW5nPgor
I2luY2x1ZGUgPGNzdGRpbz4KKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49
IDEyMDAgJiYgX01TQ19WRVIgPCAxODAwIC8vIEJldHdlZW4gVkMrKyA2LjAgYW5kIFZDKysgMTEu
MAorI2luY2x1ZGUgPGZsb2F0Lmg+CisjZGVmaW5lIGlzZmluaXRlIF9maW5pdGUKKyNlbGlmIGRl
ZmluZWQoX19zdW4pICYmIGRlZmluZWQoX19TVlI0KSAvL1NvbGFyaXMKKyNpZiAhZGVmaW5lZChp
c2Zpbml0ZSkKKyNpbmNsdWRlIDxpZWVlZnAuaD4KKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRlCisj
ZW5kaWYKKyNlbGlmIGRlZmluZWQoX0FJWCkKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpbmNs
dWRlIDxtYXRoLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0ZQorI2VuZGlmCisjZWxpZiBkZWZp
bmVkKF9faHB1eCkKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpZiBkZWZpbmVkKF9faWE2NCkg
JiYgIWRlZmluZWQoZmluaXRlKQorI2RlZmluZSBpc2Zpbml0ZSh4KSAoKHNpemVvZih4KSA9PSBz
aXplb2YoZmxvYXQpID8gXAorICAgICAgICAgICAgICAgICAgICAgX0lzZmluaXRlZih4KSA6IF9J
c0Zpbml0ZSh4KSkpCisjZWxzZQorI2luY2x1ZGUgPG1hdGguaD4KKyNkZWZpbmUgaXNmaW5pdGUg
ZmluaXRlCisjZW5kaWYKKyNlbmRpZgorI2Vsc2UKKyNpbmNsdWRlIDxjbWF0aD4KKyNpZiAhKGRl
ZmluZWQoX19RTlhOVE9fXykpIC8vIFFOWCBhbHJlYWR5IGRlZmluZXMgaXNmaW5pdGUKKyNkZWZp
bmUgaXNmaW5pdGUgc3RkOjppc2Zpbml0ZQorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQo
X01TQ19WRVIpCisjaWYgIWRlZmluZWQoV0lOQ0UpICYmIGRlZmluZWQoX19TVERDX1NFQ1VSRV9M
SUJfXykgJiYgX01TQ19WRVIgPj0gMTUwMCAvLyBWQysrIDkuMCBhbmQgYWJvdmUKKyNkZWZpbmUg
c25wcmludGYgc3ByaW50Zl9zCisjZWxpZiBfTVNDX1ZFUiA+PSAxOTAwIC8vIFZDKysgMTQuMCBh
bmQgYWJvdmUKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2Vsc2UKKyNkZWZpbmUg
c25wcmludGYgX3NucHJpbnRmCisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX19BTkRST0lEX18pIHx8
IGRlZmluZWQoX19RTlhOVE9fXykKKyNkZWZpbmUgc25wcmludGYgc25wcmludGYKKyNlbGlmIF9f
Y3BsdXNwbHVzID49IDIwMTEwM0wKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2Vu
ZGlmCisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgIAorI2luY2x1ZGUgPGZsb2F0Lmg+Cisj
ZGVmaW5lIGlzZmluaXRlIF9maW5pdGUKKyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisjZW5k
aWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMrKyA4
LjAKKy8vIERpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4KKyNw
cmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRpZgorCituYW1lc3BhY2UgSnNvbiB7
CisKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZpbmVkKF9DUFBMSUJfVkVSKSAm
JiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxTdHJlYW1Xcml0
ZXI+IFN0cmVhbVdyaXRlclB0cjsKKyNlbHNlCit0eXBlZGVmIHN0ZDo6YXV0b19wdHI8U3RyZWFt
V3JpdGVyPiAgIFN0cmVhbVdyaXRlclB0cjsKKyNlbmRpZgorCitzdGF0aWMgYm9vbCBjb250YWlu
c0NvbnRyb2xDaGFyYWN0ZXIoY29uc3QgY2hhciogc3RyKSB7CisgIHdoaWxlICgqc3RyKSB7Cisg
ICAgaWYgKGlzQ29udHJvbENoYXJhY3RlcigqKHN0cisrKSkpCisgICAgICByZXR1cm4gdHJ1ZTsK
KyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGNvbnRhaW5zQ29udHJvbENo
YXJhY3RlcjAoY29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBsZW4pIHsKKyAgY2hhciBjb25zdCog
ZW5kID0gc3RyICsgbGVuOworICB3aGlsZSAoZW5kICE9IHN0cikgeworICAgIGlmIChpc0NvbnRy
b2xDaGFyYWN0ZXIoKnN0cikgfHwgMD09KnN0cikKKyAgICAgIHJldHVybiB0cnVlOworICAgICsr
c3RyOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmlu
ZyhMYXJnZXN0SW50IHZhbHVlKSB7CisgIFVJbnRUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgIGNo
YXIqIGN1cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVyKTsKKyAgaWYgKHZhbHVlID09IFZh
bHVlOjptaW5MYXJnZXN0SW50KSB7CisgICAgdWludFRvU3RyaW5nKExhcmdlc3RVSW50KFZhbHVl
OjptYXhMYXJnZXN0SW50KSArIDEsIGN1cnJlbnQpOworICAgICotLWN1cnJlbnQgPSAnLSc7Cisg
IH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7CisgICAgdWludFRvU3RyaW5nKExhcmdlc3RVSW50KC12
YWx1ZSksIGN1cnJlbnQpOworICAgICotLWN1cnJlbnQgPSAnLSc7CisgIH0gZWxzZSB7CisgICAg
dWludFRvU3RyaW5nKExhcmdlc3RVSW50KHZhbHVlKSwgY3VycmVudCk7CisgIH0KKyAgYXNzZXJ0
KGN1cnJlbnQgPj0gYnVmZmVyKTsKKyAgcmV0dXJuIGN1cnJlbnQ7Cit9CisKK3N0ZDo6c3RyaW5n
IHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUpIHsKKyAgVUludFRvU3RyaW5nQnVmZmVy
IGJ1ZmZlcjsKKyAgY2hhciogY3VycmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOworICB1
aW50VG9TdHJpbmcodmFsdWUsIGN1cnJlbnQpOworICBhc3NlcnQoY3VycmVudCA+PSBidWZmZXIp
OworICByZXR1cm4gY3VycmVudDsKK30KKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisK
K3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoSW50IHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZVRv
U3RyaW5nKExhcmdlc3RJbnQodmFsdWUpKTsKK30KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmlu
ZyhVSW50IHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZVRvU3RyaW5nKExhcmdlc3RVSW50KHZhbHVl
KSk7Cit9CisKKyNlbmRpZiAvLyAjIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisKK3N0ZDo6
c3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlLCBib29sIHVzZVNwZWNpYWxGbG9hdHMs
IHVuc2lnbmVkIGludCBwcmVjaXNpb24pIHsKKyAgLy8gQWxsb2NhdGUgYSBidWZmZXIgdGhhdCBp
cyBtb3JlIHRoYW4gbGFyZ2UgZW5vdWdoIHRvIHN0b3JlIHRoZSAxNiBkaWdpdHMgb2YKKyAgLy8g
cHJlY2lzaW9uIHJlcXVlc3RlZCBiZWxvdy4KKyAgY2hhciBidWZmZXJbMzJdOworICBpbnQgbGVu
ID0gLTE7CisKKyAgY2hhciBmb3JtYXRTdHJpbmdbNl07CisgIHNwcmludGYoZm9ybWF0U3RyaW5n
LCAiJSUuJWRnIiwgcHJlY2lzaW9uKTsKKworICAvLyBQcmludCBpbnRvIHRoZSBidWZmZXIuIFdl
IG5lZWQgbm90IHJlcXVlc3QgdGhlIGFsdGVybmF0aXZlIHJlcHJlc2VudGF0aW9uCisgIC8vIHRo
YXQgYWx3YXlzIGhhcyBhIGRlY2ltYWwgcG9pbnQgYmVjYXVzZSBKU09OIGRvZXNuJ3QgZGlzdGlu
Z2lzaCB0aGUKKyAgLy8gY29uY2VwdHMgb2YgcmVhbHMgYW5kIGludGVnZXJzLgorICBpZiAoaXNm
aW5pdGUodmFsdWUpKSB7CisgICAgbGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVy
KSwgZm9ybWF0U3RyaW5nLCB2YWx1ZSk7CisgIH0gZWxzZSB7CisgICAgLy8gSUVFRSBzdGFuZGFy
ZCBzdGF0ZXMgdGhhdCBOYU4gdmFsdWVzIHdpbGwgbm90IGNvbXBhcmUgdG8gdGhlbXNlbHZlcwor
ICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgeworICAgICAgbGVuID0gc25wcmludGYoYnVmZmVyLCBz
aXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICJOYU4iIDogIm51bGwiKTsKKyAgICB9
IGVsc2UgaWYgKHZhbHVlIDwgMCkgeworICAgICAgbGVuID0gc25wcmludGYoYnVmZmVyLCBzaXpl
b2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICItSW5maW5pdHkiIDogIi0xZSs5OTk5Iik7
CisgICAgfSBlbHNlIHsKKyAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZl
ciksIHVzZVNwZWNpYWxGbG9hdHMgPyAiSW5maW5pdHkiIDogIjFlKzk5OTkiKTsKKyAgICB9Cisg
ICAgLy8gRm9yIHRob3NlLCB3ZSBkbyBub3QgbmVlZCB0byBjYWxsIGZpeE51bUxvYywgYnV0IGl0
IGlzIGZhc3QuCisgIH0KKyAgYXNzZXJ0KGxlbiA+PSAwKTsKKyAgZml4TnVtZXJpY0xvY2FsZShi
dWZmZXIsIGJ1ZmZlciArIGxlbik7CisgIHJldHVybiBidWZmZXI7Cit9CisKK3N0ZDo6c3RyaW5n
IHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlKSB7IHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVl
LCBmYWxzZSwgMTcpOyB9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoYm9vbCB2YWx1ZSkg
eyByZXR1cm4gdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CisKK3N0ZDo6c3RyaW5nIHZhbHVl
VG9RdW90ZWRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpIHsKKyAgaWYgKHZhbHVlID09IE5VTEwp
CisgICAgcmV0dXJuICIiOworICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUuLi4K
KyAgaWYgKHN0cnBicmsodmFsdWUsICJcIlxcXGJcZlxuXHJcdCIpID09IE5VTEwgJiYKKyAgICAg
ICFjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIodmFsdWUpKQorICAgIHJldHVybiBzdGQ6OnN0cmlu
ZygiXCIiKSArIHZhbHVlICsgIlwiIjsKKyAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBl
c2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KKyAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3Ry
aW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgorICAvLyAoTm90
ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcg
dGhlbS4pCisgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbWF4c2l6ZSA9CisgICAgICBzdHJsZW4o
dmFsdWUpICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVvdGVzK05VTEwKKyAgc3RkOjpzdHJpbmcg
cmVzdWx0OworICByZXN1bHQucmVzZXJ2ZShtYXhzaXplKTsgLy8gdG8gYXZvaWQgbG90cyBvZiBt
YWxsb2NzCisgIHJlc3VsdCArPSAiXCIiOworICBmb3IgKGNvbnN0IGNoYXIqIGMgPSB2YWx1ZTsg
KmMgIT0gMDsgKytjKSB7CisgICAgc3dpdGNoICgqYykgeworICAgIGNhc2UgJ1wiJzoKKyAgICAg
IHJlc3VsdCArPSAiXFxcIiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcXCc6CisgICAgICBy
ZXN1bHQgKz0gIlxcXFwiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXGInOgorICAgICAgcmVz
dWx0ICs9ICJcXGIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXGYnOgorICAgICAgcmVzdWx0
ICs9ICJcXGYiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXG4nOgorICAgICAgcmVzdWx0ICs9
ICJcXG4iOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXHInOgorICAgICAgcmVzdWx0ICs9ICJc
XHIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXHQnOgorICAgICAgcmVzdWx0ICs9ICJcXHQi
OworICAgICAgYnJlYWs7CisgICAgLy8gY2FzZSAnLyc6CisgICAgLy8gRXZlbiB0aG91Z2ggXC8g
aXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVzY2FwZSBpbiBKU09OLCBhIGJhcmUKKyAgICAvLyBzbGFz
aCBpcyBhbHNvIGxlZ2FsLCBzbyBJIHNlZSBubyByZWFzb24gdG8gZXNjYXBlIGl0LgorICAgIC8v
IChJIGhvcGUgSSBhbSBub3QgbWlzdW5kZXJzdGFuZGluZyBzb21ldGhpbmcuCisgICAgLy8gYmxl
cCBub3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJlIHVzZWZ1bCBpbiBqYXZhc2NyaXB0
IHRvIGF2b2lkIDwvCisgICAgLy8gc2VxdWVuY2UuCisgICAgLy8gU2hvdWxkIGFkZCBhIGZsYWcg
dG8gYWxsb3cgdGhpcyBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHByZXZlbnQgdGhpcworICAgIC8v
IHNlcXVlbmNlIGZyb20gb2NjdXJyaW5nLgorICAgIGRlZmF1bHQ6CisgICAgICBpZiAoaXNDb250
cm9sQ2hhcmFjdGVyKCpjKSkgeworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3NzOworICAg
ICAgICBvc3MgPDwgIlxcdSIgPDwgc3RkOjpoZXggPDwgc3RkOjp1cHBlcmNhc2UgPDwgc3RkOjpz
ZXRmaWxsKCcwJykKKyAgICAgICAgICAgIDw8IHN0ZDo6c2V0dyg0KSA8PCBzdGF0aWNfY2FzdDxp
bnQ+KCpjKTsKKyAgICAgICAgcmVzdWx0ICs9IG9zcy5zdHIoKTsKKyAgICAgIH0gZWxzZSB7Cisg
ICAgICAgIHJlc3VsdCArPSAqYzsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQor
ICByZXN1bHQgKz0gIlwiIjsKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gaHR0cHM6Ly9naXRo
dWIuY29tL3VwY2FzdGUvdXBjYXN0ZS9ibG9iL21hc3Rlci9zcmMvdXBjb3JlL3NyYy9jc3RyaW5n
L3N0cm5wYnJrLmNwcAorc3RhdGljIGNoYXIgY29uc3QqIHN0cm5wYnJrKGNoYXIgY29uc3QqIHMs
IGNoYXIgY29uc3QqIGFjY2VwdCwgc2l6ZV90IG4pIHsKKyAgYXNzZXJ0KChzIHx8ICFuKSAmJiBh
Y2NlcHQpOworCisgIGNoYXIgY29uc3QqIGNvbnN0IGVuZCA9IHMgKyBuOworICBmb3IgKGNoYXIg
Y29uc3QqIGN1ciA9IHM7IGN1ciA8IGVuZDsgKytjdXIpIHsKKyAgICBpbnQgY29uc3QgYyA9ICpj
dXI7CisgICAgZm9yIChjaGFyIGNvbnN0KiBhID0gYWNjZXB0OyAqYTsgKythKSB7CisgICAgICBp
ZiAoKmEgPT0gYykgeworICAgICAgICByZXR1cm4gY3VyOworICAgICAgfQorICAgIH0KKyAgfQor
ICByZXR1cm4gTlVMTDsKK30KK3N0YXRpYyBzdGQ6OnN0cmluZyB2YWx1ZVRvUXVvdGVkU3RyaW5n
Tihjb25zdCBjaGFyKiB2YWx1ZSwgdW5zaWduZWQgbGVuZ3RoKSB7CisgIGlmICh2YWx1ZSA9PSBO
VUxMKQorICAgIHJldHVybiAiIjsKKyAgLy8gTm90IHN1cmUgaG93IHRvIGhhbmRsZSB1bmljb2Rl
Li4uCisgIGlmIChzdHJucGJyayh2YWx1ZSwgIlwiXFxcYlxmXG5cclx0IiwgbGVuZ3RoKSA9PSBO
VUxMICYmCisgICAgICAhY29udGFpbnNDb250cm9sQ2hhcmFjdGVyMCh2YWx1ZSwgbGVuZ3RoKSkK
KyAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwiIikgKyB2YWx1ZSArICJcIiI7CisgIC8vIFdlIGhh
dmUgdG8gd2FsayB2YWx1ZSBhbmQgZXNjYXBlIGFueSBzcGVjaWFsIGNoYXJhY3RlcnMuCisgIC8v
IEFwcGVuZGluZyB0byBzdGQ6OnN0cmluZyBpcyBub3QgZWZmaWNpZW50LCBidXQgdGhpcyBzaG91
bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xhc2hlcyBhcmUgKm5vdCogcmFyZSwg
YnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG1h
eHNpemUgPQorICAgICAgbGVuZ3RoICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVvdGVzK05VTEwK
KyAgc3RkOjpzdHJpbmcgcmVzdWx0OworICByZXN1bHQucmVzZXJ2ZShtYXhzaXplKTsgLy8gdG8g
YXZvaWQgbG90cyBvZiBtYWxsb2NzCisgIHJlc3VsdCArPSAiXCIiOworICBjaGFyIGNvbnN0KiBl
bmQgPSB2YWx1ZSArIGxlbmd0aDsKKyAgZm9yIChjb25zdCBjaGFyKiBjID0gdmFsdWU7IGMgIT0g
ZW5kOyArK2MpIHsKKyAgICBzd2l0Y2ggKCpjKSB7CisgICAgY2FzZSAnXCInOgorICAgICAgcmVz
dWx0ICs9ICJcXFwiIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xcJzoKKyAgICAgIHJlc3Vs
dCArPSAiXFxcXCI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcYic6CisgICAgICByZXN1bHQg
Kz0gIlxcYiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcZic6CisgICAgICByZXN1bHQgKz0g
IlxcZiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcbic6CisgICAgICByZXN1bHQgKz0gIlxc
biI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdccic6CisgICAgICByZXN1bHQgKz0gIlxcciI7
CisgICAgICBicmVhazsKKyAgICBjYXNlICdcdCc6CisgICAgICByZXN1bHQgKz0gIlxcdCI7Cisg
ICAgICBicmVhazsKKyAgICAvLyBjYXNlICcvJzoKKyAgICAvLyBFdmVuIHRob3VnaCBcLyBpcyBj
b25zaWRlcmVkIGEgbGVnYWwgZXNjYXBlIGluIEpTT04sIGEgYmFyZQorICAgIC8vIHNsYXNoIGlz
IGFsc28gbGVnYWwsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQuCisgICAgLy8gKEkg
aG9wZSBJIGFtIG5vdCBtaXN1bmRlcnN0YW5kaW5nIHNvbWV0aGluZy4pCisgICAgLy8gYmxlcCBu
b3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJlIHVzZWZ1bCBpbiBqYXZhc2NyaXB0IHRv
IGF2b2lkIDwvCisgICAgLy8gc2VxdWVuY2UuCisgICAgLy8gU2hvdWxkIGFkZCBhIGZsYWcgdG8g
YWxsb3cgdGhpcyBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHByZXZlbnQgdGhpcworICAgIC8vIHNl
cXVlbmNlIGZyb20gb2NjdXJyaW5nLgorICAgIGRlZmF1bHQ6CisgICAgICBpZiAoKGlzQ29udHJv
bENoYXJhY3RlcigqYykpIHx8ICgqYyA9PSAwKSkgeworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJl
YW0gb3NzOworICAgICAgICBvc3MgPDwgIlxcdSIgPDwgc3RkOjpoZXggPDwgc3RkOjp1cHBlcmNh
c2UgPDwgc3RkOjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAgIDw8IHN0ZDo6c2V0dyg0KSA8PCBz
dGF0aWNfY2FzdDxpbnQ+KCpjKTsKKyAgICAgICAgcmVzdWx0ICs9IG9zcy5zdHIoKTsKKyAgICAg
IH0gZWxzZSB7CisgICAgICAgIHJlc3VsdCArPSAqYzsKKyAgICAgIH0KKyAgICAgIGJyZWFrOwor
ICAgIH0KKyAgfQorICByZXN1bHQgKz0gIlwiIjsKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8g
Q2xhc3MgV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK1dyaXRlcjo6fldyaXRlcigpIHt9CisKKy8vIENs
YXNzIEZhc3RXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitGYXN0V3JpdGVyOjpGYXN0V3JpdGVyKCkK
KyAgICA6IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyhmYWxzZSksIGRyb3BOdWxsUGxhY2Vob2xk
ZXJzXyhmYWxzZSksCisgICAgICBvbWl0RW5kaW5nTGluZUZlZWRfKGZhbHNlKSB7fQorCit2b2lk
IEZhc3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCkgeyB5YW1sQ29tcGF0aWJsaXR5
RW5hYmxlZF8gPSB0cnVlOyB9CisKK3ZvaWQgRmFzdFdyaXRlcjo6ZHJvcE51bGxQbGFjZWhvbGRl
cnMoKSB7IGRyb3BOdWxsUGxhY2Vob2xkZXJzXyA9IHRydWU7IH0KKwordm9pZCBGYXN0V3JpdGVy
OjpvbWl0RW5kaW5nTGluZUZlZWQoKSB7IG9taXRFbmRpbmdMaW5lRmVlZF8gPSB0cnVlOyB9CisK
K3N0ZDo6c3RyaW5nIEZhc3RXcml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGRv
Y3VtZW50XyA9ICIiOworICB3cml0ZVZhbHVlKHJvb3QpOworICBpZiAoIW9taXRFbmRpbmdMaW5l
RmVlZF8pCisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgIHJldHVybiBkb2N1bWVudF87Cit9CisK
K3ZvaWQgRmFzdFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgc3dp
dGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgaWYgKCFkcm9wTnVs
bFBsYWNlaG9sZGVyc18pCisgICAgICBkb2N1bWVudF8gKz0gIm51bGwiOworICAgIGJyZWFrOwor
ICBjYXNlIGludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFz
TGFyZ2VzdEludCgpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgZG9jdW1l
bnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKTsKKyAgICBicmVhazsK
KyAgY2FzZSByZWFsVmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUu
YXNEb3VibGUoKSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAv
LyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0
cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmluZygm
c3RyLCAmZW5kKTsKKyAgICBpZiAob2spIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVkU3RyaW5n
TihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSk7CisgICAgYnJlYWs7CisgIH0K
KyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFs
dWUuYXNCb29sKCkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6IHsKKyAgICBkb2N1
bWVudF8gKz0gJ1snOworICAgIGludCBzaXplID0gdmFsdWUuc2l6ZSgpOworICAgIGZvciAoaW50
IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaW5kZXggPiAw
KQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOworICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRl
eF0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ10nOworICB9IGJyZWFrOworICBjYXNlIG9i
amVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJO
YW1lcygpKTsKKyAgICBkb2N1bWVudF8gKz0gJ3snOworICAgIGZvciAoVmFsdWU6Ok1lbWJlcnM6
Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOyBpdCAhPSBtZW1iZXJzLmVuZCgpOworICAg
ICAgICAgKytpdCkgeworICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUgPSAqaXQ7CisgICAg
ICBpZiAoaXQgIT0gbWVtYmVycy5iZWdpbigpKQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOwor
ICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmdOKG5hbWUuZGF0YSgpLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpOworICAgICAgZG9jdW1lbnRfICs9IHlh
bWxDb21wYXRpYmxpdHlFbmFibGVkXyA/ICI6ICIgOiAiOiI7CisgICAgICB3cml0ZVZhbHVlKHZh
bHVlW25hbWVdKTsKKyAgICB9CisgICAgZG9jdW1lbnRfICs9ICd9JzsKKyAgfSBicmVhazsKKyAg
fQorfQorCisvLyBDbGFzcyBTdHlsZWRXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitTdHlsZWRXcml0
ZXI6OlN0eWxlZFdyaXRlcigpCisgICAgOiByaWdodE1hcmdpbl8oNzQpLCBpbmRlbnRTaXplXygz
KSwgYWRkQ2hpbGRWYWx1ZXNfKCkge30KKworc3RkOjpzdHJpbmcgU3R5bGVkV3JpdGVyOjp3cml0
ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8gPSAiIjsKKyAgYWRkQ2hpbGRWYWx1
ZXNfID0gZmFsc2U7CisgIGluZGVudFN0cmluZ18gPSAiIjsKKyAgd3JpdGVDb21tZW50QmVmb3Jl
VmFsdWUocm9vdCk7CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIHdyaXRlQ29tbWVudEFmdGVyVmFs
dWVPblNhbWVMaW5lKHJvb3QpOworICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgcmV0dXJuIGRvY3Vt
ZW50XzsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAg
IHB1c2hWYWx1ZSgibnVsbCIpOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJlYWs7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFz
TGFyZ2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBwdXNo
VmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKSk7CisgICAgYnJlYWs7CisgIGNh
c2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5z
dHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAg
Ym9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIHB1c2hW
YWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQt
c3RyKSkpOworICAgIGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQorICBjYXNl
IGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2wo
KSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJheVZhbHVl
KHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpN
ZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1lbWJlcnMu
ZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAgIHdyaXRl
V2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBWYWx1ZTo6TWVtYmVyczo6
aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAgICAgICBjb25zdCBWYWx1ZSYgY2hp
bGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShj
aGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmco
bmFtZS5jX3N0cigpKSk7CisgICAgICAgIGRvY3VtZW50XyArPSAiIDogIjsKKyAgICAgICAgd3Jp
dGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkg
eworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7
CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwor
ICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIpOwor
ICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVBcnJh
eVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICB1bnNpZ25lZCBzaXplID0gdmFsdWUuc2l6
ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10iKTsKKyAgZWxzZSB7Cisg
ICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNNdWx0aW5lQXJyYXkodmFsdWUpOworICAgIGlm
IChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKKyAgICAg
IGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0
eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7OykgeworICAgICAg
ICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAgICAgd3JpdGVD
b21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmIChoYXNDaGlsZFZhbHVl
KQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICB3cml0ZVZhbHVl
KGNoaWxkVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsK
KyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsK
KyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOwor
ICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAg
ICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAg
ICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKKyAgICB7CisgICAgICBhc3NlcnQo
Y2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAgICAgIGRvY3VtZW50XyArPSAiWyAiOwor
ICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgewor
ICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgIGRvY3VtZW50XyArPSAiLCAiOworICAg
ICAgICBkb2N1bWVudF8gKz0gY2hpbGRWYWx1ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAgIGRv
Y3VtZW50XyArPSAiIF0iOworICAgIH0KKyAgfQorfQorCitib29sIFN0eWxlZFdyaXRlcjo6aXNN
dWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIGludCBzaXplID0gdmFsdWUuc2l6
ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5fOworICBj
aGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemUg
JiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgY29uc3QgVmFsdWUmIGNoaWxkVmFsdWUg
PSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxkVmFsdWUuaXNBcnJheSgp
IHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
aWxkVmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8gY2hlY2sg
aWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFsdWVzXy5y
ZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7CisgICAgaW50IGxpbmVM
ZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAnKm4gKyAnIF0nCisgICAg
Zm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlmICho
YXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAgICBpc011bHRpTGluZSA9
IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAgICBs
aW5lTGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0aCgpKTsKKyAgICB9Cisg
ICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGlu
ZSB8fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICByZXR1cm4gaXNNdWx0aUxp
bmU7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjpwdXNoVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcm
IHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisgICAgY2hpbGRWYWx1ZXNfLnB1c2hf
YmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICBkb2N1bWVudF8gKz0gdmFsdWU7Cit9CisKK3ZvaWQg
U3R5bGVkV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgaWYgKCFkb2N1bWVudF8uZW1wdHkoKSkg
eworICAgIGNoYXIgbGFzdCA9IGRvY3VtZW50X1tkb2N1bWVudF8ubGVuZ3RoKCkgLSAxXTsKKyAg
ICBpZiAobGFzdCA9PSAnICcpIC8vIGFscmVhZHkgaW5kZW50ZWQKKyAgICAgIHJldHVybjsKKyAg
ICBpZiAobGFzdCAhPSAnXG4nKSAvLyBDb21tZW50cyBtYXkgYWRkIG5ldy1saW5lCisgICAgICBk
b2N1bWVudF8gKz0gJ1xuJzsKKyAgfQorICBkb2N1bWVudF8gKz0gaW5kZW50U3RyaW5nXzsKK30K
Kwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmluZyYg
dmFsdWUpIHsKKyAgd3JpdGVJbmRlbnQoKTsKKyAgZG9jdW1lbnRfICs9IHZhbHVlOworfQorCit2
b2lkIFN0eWxlZFdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IHN0ZDo6c3RyaW5n
KGluZGVudFNpemVfLCAnICcpOyB9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp1bmluZGVudCgpIHsK
KyAgYXNzZXJ0KGludChpbmRlbnRTdHJpbmdfLnNpemUoKSkgPj0gaW5kZW50U2l6ZV8pOworICBp
bmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudFNpemVfKTsK
K30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZh
bHVlJiByb290KSB7CisgIGlmICghcm9vdC5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpKQorICAg
IHJldHVybjsKKworICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgd3JpdGVJbmRlbnQoKTsKKyAgY29u
c3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENvbW1lbnQoY29tbWVudEJlZm9yZSk7
CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVyID0gY29tbWVudC5iZWdpbigpOwor
ICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7CisgICAgZG9jdW1lbnRfICs9ICppdGVy
OworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAgKGl0ZXIgIT0gY29tbWVudC5lbmQo
KSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgd3JpdGVJbmRlbnQoKTsKKyAgICArK2l0
ZXI7CisgIH0KKworICAvLyBDb21tZW50cyBhcmUgc3RyaXBwZWQgb2YgdHJhaWxpbmcgbmV3bGlu
ZXMsIHNvIGFkZCBvbmUgaGVyZQorICBkb2N1bWVudF8gKz0gIlxuIjsKK30KKwordm9pZCBTdHls
ZWRXcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiBy
b290KSB7CisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCisg
ICAgZG9jdW1lbnRfICs9ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVM
aW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICBkb2N1
bWVudF8gKz0gIlxuIjsKKyAgICBkb2N1bWVudF8gKz0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRB
ZnRlcik7CisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgIH0KK30KKworYm9vbCBTdHlsZWRXcml0
ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0dXJuIHZh
bHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1l
bnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQo
Y29tbWVudEFmdGVyKTsKK30KKworLy8gQ2xhc3MgU3R5bGVkU3RyZWFtV3JpdGVyCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworU3R5bGVkU3RyZWFtV3JpdGVyOjpTdHlsZWRTdHJlYW1Xcml0ZXIoc3RkOjpzdHJp
bmcgaW5kZW50YXRpb24pCisgICAgOiBkb2N1bWVudF8oTlVMTCksIHJpZ2h0TWFyZ2luXyg3NCks
IGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbiksCisgICAgICBhZGRDaGlsZFZhbHVlc18oKSB7fQor
Cit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoc3RkOjpvc3RyZWFtJiBvdXQsIGNvbnN0
IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50XyA9ICZvdXQ7CisgIGFkZENoaWxkVmFsdWVzXyA9
IGZhbHNlOworICBpbmRlbnRTdHJpbmdfID0gIiI7CisgIGluZGVudGVkXyA9IHRydWU7CisgIHdy
aXRlQ29tbWVudEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRl
bnQoKTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpkb2N1bWVudF8gPDwgIlxuIjsK
KyAgZG9jdW1lbnRfID0gTlVMTDsgLy8gRm9yZ2V0IHRoZSBzdHJlYW0sIGZvciBzYWZldHkuCit9
CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1
ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBw
dXNoVmFsdWUoIm51bGwiKTsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBwdXNo
VmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOworICAgIGJyZWFrOwor
ICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xh
cmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcHVzaFZh
bHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJyZWFrOworICBjYXNl
IHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUuc3Ry
aW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCogZW5kOworICAgIGJv
b2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYgKG9rKSBwdXNoVmFs
dWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kLXN0
cikpKTsKKyAgICBlbHNlIHB1c2hWYWx1ZSgiIik7CisgICAgYnJlYWs7CisgIH0KKyAgY2FzZSBi
b29sZWFuVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNCb29sKCkp
KTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICAgIHdyaXRlQXJyYXlWYWx1ZSh2
YWx1ZSk7CisgICAgYnJlYWs7CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVt
YmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOworICAgIGlmIChtZW1iZXJzLmVt
cHR5KCkpCisgICAgICBwdXNoVmFsdWUoInt9Iik7CisgICAgZWxzZSB7CisgICAgICB3cml0ZVdp
dGhJbmRlbnQoInsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgVmFsdWU6Ok1lbWJlcnM6Oml0
ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAgICBj
b25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxk
VmFsdWUgPSB2YWx1ZVtuYW1lXTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hp
bGRWYWx1ZSk7CisgICAgICAgIHdyaXRlV2l0aEluZGVudCh2YWx1ZVRvUXVvdGVkU3RyaW5nKG5h
bWUuY19zdHIoKSkpOworICAgICAgICAqZG9jdW1lbnRfIDw8ICIgOiAiOworICAgICAgICB3cml0
ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7
CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7
CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8PCAiLCI7
CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOwor
ICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIpOwor
ICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3Jp
dGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICB1bnNpZ25lZCBzaXplID0gdmFs
dWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10iKTsKKyAgZWxz
ZSB7CisgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNNdWx0aW5lQXJyYXkodmFsdWUpOwor
ICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsK
KyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVz
Xy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7Oykgewor
ICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAgICAg
d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmIChoYXNDaGls
ZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7
CisgICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxk
VmFsdWUpOworICAgICAgICAgIGluZGVudGVkXyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAg
IGlmICgrK2luZGV4ID09IHNpemUpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVl
T25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9u
U2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAg
d3JpdGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBvbiBhIHNpbmdsZSBs
aW5lCisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkgPT0gc2l6ZSk7Cisg
ICAgICAqZG9jdW1lbnRfIDw8ICJbICI7CisgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsg
aW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+IDApCisgICAgICAg
ICAgKmRvY3VtZW50XyA8PCAiLCAiOworICAgICAgICAqZG9jdW1lbnRfIDw8IGNoaWxkVmFsdWVz
X1tpbmRleF07CisgICAgICB9CisgICAgICAqZG9jdW1lbnRfIDw8ICIgXSI7CisgICAgfQorICB9
Cit9CisKK2Jvb2wgU3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpIHsKKyAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGJvb2wgaXNNdWx0aUxp
bmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87CisgIGNoaWxkVmFsdWVzXy5jbGVhcigpOwor
ICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5k
ZXgpIHsKKyAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBp
c011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVj
dCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsK
KyAgfQorICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBs
aW5lIGxlbmd0aAorICB7CisgICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7CisgICAgYWRk
Q2hpbGRWYWx1ZXNfID0gdHJ1ZTsKKyAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEp
ICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGlu
ZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1
ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAg
IHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxk
VmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVlc18gPSBm
YWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmln
aHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGluZTsKK30KKwordm9pZCBTdHlsZWRT
dHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgaWYg
KGFkZENoaWxkVmFsdWVzXykKKyAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsKKyAg
ZWxzZQorICAgICpkb2N1bWVudF8gPDwgdmFsdWU7Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3Jp
dGVyOjp3cml0ZUluZGVudCgpIHsKKyAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQg
dGhlIHNvLWZhci13cml0dGVuIHN0cmluZworICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBh
cmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0CisgIC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90IGRv
IHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0ZS4KKyAgLy8gVGhlIGNhbGxlciBj
aGVja3MgaW5kZW50ZWRfLgorICAqZG9jdW1lbnRfIDw8ICdcbicgPDwgaW5kZW50U3RyaW5nXzsK
K30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUpIHsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgICpk
b2N1bWVudF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIFN0eWxl
ZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IGluZGVudGF0aW9uXzsg
fQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChpbmRl
bnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKKyAgaW5kZW50U3RyaW5n
Xy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKK30K
Kwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0
IFZhbHVlJiByb290KSB7CisgIGlmICghcm9vdC5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpKQor
ICAgIHJldHVybjsKKworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAgY29uc3Qg
c3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENvbW1lbnQoY29tbWVudEJlZm9yZSk7Cisg
IHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVyID0gY29tbWVudC5iZWdpbigpOworICB3
aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7CisgICAgKmRvY3VtZW50XyA8PCAqaXRlcjsK
KyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgorICAgICAgIChpdGVyICE9IGNvbW1lbnQuZW5kKCkg
JiYgKihpdGVyICsgMSkgPT0gJy8nKSkKKyAgICAgIC8vIHdyaXRlSW5kZW50KCk7ICAvLyB3b3Vs
ZCBpbmNsdWRlIG5ld2xpbmUKKyAgICAgICpkb2N1bWVudF8gPDwgaW5kZW50U3RyaW5nXzsKKyAg
ICArK2l0ZXI7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgU3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYg
cm9vdCkgeworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQor
ICAgICpkb2N1bWVudF8gPDwgJyAnIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNh
bWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICB3
cml0ZUluZGVudCgpOworICAgICpkb2N1bWVudF8gPDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRB
ZnRlcik7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK2Jvb2wgU3R5bGVkU3RyZWFt
V3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVy
biB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXND
b21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21t
ZW50KGNvbW1lbnRBZnRlcik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBC
dWlsdFN0eWxlZFN0cmVhbVdyaXRlcgorCisvLy8gU2NvcGVkIGVudW1zIGFyZSBub3QgYXZhaWxh
YmxlIHVudGlsIEMrKzExLgorc3RydWN0IENvbW1lbnRTdHlsZSB7CisgIC8vLyBEZWNpZGUgd2hl
dGhlciB0byB3cml0ZSBjb21tZW50cy4KKyAgZW51bSBFbnVtIHsKKyAgICBOb25lLCAgLy8vPCBE
cm9wIGFsbCBjb21tZW50cy4KKyAgICBNb3N0LCAgLy8vPCBSZWNvdmVyIG9kZCBiZWhhdmlvciBv
ZiBwcmV2aW91cyB2ZXJzaW9ucyAobm90IGltcGxlbWVudGVkIHlldCkuCisgICAgQWxsICAvLy88
IEtlZXAgYWxsIGNvbW1lbnRzLgorICB9OworfTsKKworc3RydWN0IEJ1aWx0U3R5bGVkU3RyZWFt
V3JpdGVyIDogcHVibGljIFN0cmVhbVdyaXRlcgoreworICBCdWlsdFN0eWxlZFN0cmVhbVdyaXRl
cigKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBpbmRlbnRhdGlvbiwKKyAgICAgIENvbW1lbnRT
dHlsZTo6RW51bSBjcywKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBjb2xvblN5bWJvbCwKKyAg
ICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBudWxsU3ltYm9sLAorICAgICAgc3RkOjpzdHJpbmcgY29u
c3QmIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgYm9vbCB1c2VTcGVjaWFsRmxvYXRzLAor
ICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbik7CisgIGludCB3cml0ZShWYWx1ZSBjb25zdCYg
cm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0KTsKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShW
YWx1ZSBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25zdCYg
dmFsdWUpOworICBib29sIGlzTXVsdGluZUFycmF5KFZhbHVlIGNvbnN0JiB2YWx1ZSk7CisgIHZv
aWQgcHVzaFZhbHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRl
bnQoKTsKKyAgdm9pZCB3cml0ZVdpdGhJbmRlbnQoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKTsK
KyAgdm9pZCBpbmRlbnQoKTsKKyAgdm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKFZhbHVlIGNvbnN0JiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRBZnRl
clZhbHVlT25TYW1lTGluZShWYWx1ZSBjb25zdCYgcm9vdCk7CisgIHN0YXRpYyBib29sIGhhc0Nv
bW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworCisgIHR5cGVkZWYgc3RkOjp2ZWN0
b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVz
XzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5nXzsKKyAgaW50IHJpZ2h0TWFyZ2luXzsKKyAg
c3RkOjpzdHJpbmcgaW5kZW50YXRpb25fOworICBDb21tZW50U3R5bGU6OkVudW0gY3NfOworICBz
dGQ6OnN0cmluZyBjb2xvblN5bWJvbF87CisgIHN0ZDo6c3RyaW5nIG51bGxTeW1ib2xfOworICBz
dGQ6OnN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbF87CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNf
IDogMTsKKyAgYm9vbCBpbmRlbnRlZF8gOiAxOworICBib29sIHVzZVNwZWNpYWxGbG9hdHNfIDog
MTsKKyAgdW5zaWduZWQgaW50IHByZWNpc2lvbl87Cit9OworQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIGlu
ZGVudGF0aW9uLAorICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNzLAorICAgICAgc3RkOjpzdHJp
bmcgY29uc3QmIGNvbG9uU3ltYm9sLAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG51bGxTeW1i
b2wsCisgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5nTGluZUZlZWRTeW1ib2wsCisgICAg
ICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCisgICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uKQor
ICA6IHJpZ2h0TWFyZ2luXyg3NCkKKyAgLCBpbmRlbnRhdGlvbl8oaW5kZW50YXRpb24pCisgICwg
Y3NfKGNzKQorICAsIGNvbG9uU3ltYm9sXyhjb2xvblN5bWJvbCkKKyAgLCBudWxsU3ltYm9sXyhu
dWxsU3ltYm9sKQorICAsIGVuZGluZ0xpbmVGZWVkU3ltYm9sXyhlbmRpbmdMaW5lRmVlZFN5bWJv
bCkKKyAgLCBhZGRDaGlsZFZhbHVlc18oZmFsc2UpCisgICwgaW5kZW50ZWRfKGZhbHNlKQorICAs
IHVzZVNwZWNpYWxGbG9hdHNfKHVzZVNwZWNpYWxGbG9hdHMpCisgICwgcHJlY2lzaW9uXyhwcmVj
aXNpb24pCit7Cit9CitpbnQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlKFZhbHVlIGNv
bnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpCit7CisgIHNvdXRfID0gc291dDsKKyAgYWRk
Q2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgIGluZGVudGVkXyA9IHRydWU7CisgIGluZGVudFN0cmlu
Z18gPSAiIjsKKyAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUocm9vdCk7CisgIGlmICghaW5kZW50
ZWRfKSB3cml0ZUluZGVudCgpOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZVZhbHVlKHJv
b3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsKKyAgKnNvdXRf
IDw8IGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgc291dF8gPSBOVUxMOworICByZXR1cm4gMDsK
K30KK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUoVmFsdWUgY29uc3Qm
IHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgor
ICAgIHB1c2hWYWx1ZShudWxsU3ltYm9sXyk7CisgICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6
CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKKyAg
ICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgor
ICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCksIHVzZVNwZWNpYWxG
bG9hdHNfLCBwcmVjaXNpb25fKSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6Cisg
IHsKKyAgICAvLyBJcyBOVUxMIGlzIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPworICAgIGNo
YXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZhbHVl
LmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRvUXVv
dGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSkpOworICAgIGVs
c2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToK
KyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJyZWFr
OworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAgICBi
cmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnMo
dmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAgICAg
IHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgieyIp
OworICAgICAgaW5kZW50KCk7CisgICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBt
ZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAgIHN0ZDo6c3RyaW5nIGNv
bnN0JiBuYW1lID0gKml0OworICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVl
W25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAg
ICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmdOKG5hbWUuZGF0YSgpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpKTsKKyAgICAgICAgKnNvdXRfIDw8
IGNvbG9uU3ltYm9sXzsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAg
aWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVy
VmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAg
IHdyaXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lk
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoVmFsdWUgY29uc3QmIHZh
bHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGlmIChzaXplID09IDAp
CisgICAgcHVzaFZhbHVlKCJbXSIpOworICBlbHNlIHsKKyAgICBib29sIGlzTXVsdGlMaW5lID0g
KGNzXyA9PSBDb21tZW50U3R5bGU6OkFsbCkgfHwgaXNNdWx0aW5lQXJyYXkodmFsdWUpOworICAg
IGlmIChpc011bHRpTGluZSkgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBp
bmRlbnQoKTsKKyAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHko
KTsKKyAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAg
VmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkK
KyAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAgICAg
ICAgIGluZGVudGVkXyA9IHRydWU7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsK
KyAgICAgICAgICBpbmRlbnRlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytp
bmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxp
bmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKnNv
dXRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hp
bGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVXaXRoSW5k
ZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBvbiBhIHNpbmdsZSBsaW5lCisgICAgewor
ICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkgPT0gc2l6ZSk7CisgICAgICAqc291dF8g
PDwgIlsiOworICAgICAgaWYgKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkgKnNvdXRfIDw8ICIgIjsK
KyAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsK
KyAgICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgICAqc291dF8gPDwgIiwgIjsKKyAgICAg
ICAgKnNvdXRfIDw8IGNoaWxkVmFsdWVzX1tpbmRleF07CisgICAgICB9CisgICAgICBpZiAoIWlu
ZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAiOworICAgICAgKnNvdXRfIDw8ICJdIjsK
KyAgICB9CisgIH0KK30KKworYm9vbCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aXNNdWx0aW5l
QXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIGludCBzaXplID0gdmFsdWUuc2l6ZSgpOwor
ICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5fOworICBjaGlsZFZh
bHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemUgJiYgIWlz
TXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1
ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxkVmFsdWUuaXNBcnJheSgpIHx8IGNo
aWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkVmFs
dWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8gY2hlY2sgaWYgbGlu
ZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFsdWVzXy5yZXNlcnZl
KHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7CisgICAgaW50IGxpbmVMZW5ndGgg
PSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAnKm4gKyAnIF0nCisgICAgZm9yIChp
bnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlmIChoYXNDb21t
ZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAgICBpc011bHRpTGluZSA9IHRydWU7
CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAgICBsaW5lTGVu
Z3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0aCgpKTsKKyAgICB9CisgICAgYWRk
Q2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGluZSB8fCBs
aW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICByZXR1cm4gaXNNdWx0aUxpbmU7Cit9
CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZShzdGQ6OnN0cmluZyBj
b25zdCYgdmFsdWUpIHsKKyAgaWYgKGFkZENoaWxkVmFsdWVzXykKKyAgICBjaGlsZFZhbHVlc18u
cHVzaF9iYWNrKHZhbHVlKTsKKyAgZWxzZQorICAgICpzb3V0XyA8PCB2YWx1ZTsKK30KKwordm9p
ZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQoKSB7CisgIC8vIGJsZXAgaW50
ZW5kZWQgdGhpcyB0byBsb29rIGF0IHRoZSBzby1mYXItd3JpdHRlbiBzdHJpbmcKKyAgLy8gdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGFscmVhZHkgaW5kZW50ZWQsIGJ1dAorICAvLyB3aXRo
IGEgc3RyZWFtIHdlIGNhbm5vdCBkbyB0aGF0LiBTbyB3ZSByZWx5IG9uIHNvbWUgc2F2ZWQgc3Rh
dGUuCisgIC8vIFRoZSBjYWxsZXIgY2hlY2tzIGluZGVudGVkXy4KKworICBpZiAoIWluZGVudGF0
aW9uXy5lbXB0eSgpKSB7CisgICAgLy8gSW4gdGhpcyBjYXNlLCBkcm9wIG5ld2xpbmVzIHRvby4K
KyAgICAqc291dF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOworICB9Cit9CisKK3ZvaWQgQnVp
bHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChzdGQ6OnN0cmluZyBjb25zdCYg
dmFsdWUpIHsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgICpzb3V0XyA8PCB2
YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OmluZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBpbmRlbnRhdGlvbl87IH0KKwordm9p
ZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChpbmRlbnRT
dHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKKyAgaW5kZW50U3RyaW5nXy5y
ZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKK30KKwor
dm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUoVmFs
dWUgY29uc3QmIHJvb3QpIHsKKyAgaWYgKGNzXyA9PSBDb21tZW50U3R5bGU6Ok5vbmUpIHJldHVy
bjsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJuOwor
CisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICBjb25zdCBzdGQ6OnN0cmluZyYg
Y29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKKyAgc3RkOjpzdHJpbmc6
OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7CisgIHdoaWxlIChpdGVyICE9
IGNvbW1lbnQuZW5kKCkpIHsKKyAgICAqc291dF8gPDwgKml0ZXI7CisgICAgaWYgKCppdGVyID09
ICdcbicgJiYKKyAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09
ICcvJykpCisgICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgd3JpdGUgZXh0cmEgbmV3
bGluZQorICAgICAgKnNvdXRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVyOworICB9Cisg
IGluZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShWYWx1ZSBjb25zdCYgcm9vdCkgeworICBp
ZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0dXJuOworICBpZiAocm9vdC5oYXNDb21t
ZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgICpzb3V0XyA8PCAiICIgKyByb290Lmdl
dENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJvb3QuaGFzQ29tbWVu
dChjb21tZW50QWZ0ZXIpKSB7CisgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAqc291dF8gPDwgcm9v
dC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7CisgIH0KK30KKworLy8gc3RhdGljCitib29sIEJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZh
bHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8CisgICAg
ICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8CisgICAgICAg
ICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLwor
Ly8gU3RyZWFtV3JpdGVyCisKK1N0cmVhbVdyaXRlcjo6U3RyZWFtV3JpdGVyKCkKKyAgICA6IHNv
dXRfKE5VTEwpCit7Cit9CitTdHJlYW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIoKQoreworfQorU3Ry
ZWFtV3JpdGVyOjpGYWN0b3J5Ojp+RmFjdG9yeSgpCit7fQorU3RyZWFtV3JpdGVyQnVpbGRlcjo6
U3RyZWFtV3JpdGVyQnVpbGRlcigpCit7CisgIHNldERlZmF1bHRzKCZzZXR0aW5nc18pOworfQor
U3RyZWFtV3JpdGVyQnVpbGRlcjo6flN0cmVhbVdyaXRlckJ1aWxkZXIoKQore30KK1N0cmVhbVdy
aXRlciogU3RyZWFtV3JpdGVyQnVpbGRlcjo6bmV3U3RyZWFtV3JpdGVyKCkgY29uc3QKK3sKKyAg
c3RkOjpzdHJpbmcgaW5kZW50YXRpb24gPSBzZXR0aW5nc19bImluZGVudGF0aW9uIl0uYXNTdHJp
bmcoKTsKKyAgc3RkOjpzdHJpbmcgY3Nfc3RyID0gc2V0dGluZ3NfWyJjb21tZW50U3R5bGUiXS5h
c1N0cmluZygpOworICBib29sIGV5YyA9IHNldHRpbmdzX1siZW5hYmxlWUFNTENvbXBhdGliaWxp
dHkiXS5hc0Jvb2woKTsKKyAgYm9vbCBkbnAgPSBzZXR0aW5nc19bImRyb3BOdWxsUGxhY2Vob2xk
ZXJzIl0uYXNCb29sKCk7CisgIGJvb2wgdXNmID0gc2V0dGluZ3NfWyJ1c2VTcGVjaWFsRmxvYXRz
Il0uYXNCb29sKCk7IAorICB1bnNpZ25lZCBpbnQgcHJlID0gc2V0dGluZ3NfWyJwcmVjaXNpb24i
XS5hc1VJbnQoKTsKKyAgQ29tbWVudFN0eWxlOjpFbnVtIGNzID0gQ29tbWVudFN0eWxlOjpBbGw7
CisgIGlmIChjc19zdHIgPT0gIkFsbCIpIHsKKyAgICBjcyA9IENvbW1lbnRTdHlsZTo6QWxsOwor
ICB9IGVsc2UgaWYgKGNzX3N0ciA9PSAiTm9uZSIpIHsKKyAgICBjcyA9IENvbW1lbnRTdHlsZTo6
Tm9uZTsKKyAgfSBlbHNlIHsKKyAgICB0aHJvd1J1bnRpbWVFcnJvcigiY29tbWVudFN0eWxlIG11
c3QgYmUgJ0FsbCcgb3IgJ05vbmUnIik7CisgIH0KKyAgc3RkOjpzdHJpbmcgY29sb25TeW1ib2wg
PSAiIDogIjsKKyAgaWYgKGV5YykgeworICAgIGNvbG9uU3ltYm9sID0gIjogIjsKKyAgfSBlbHNl
IGlmIChpbmRlbnRhdGlvbi5lbXB0eSgpKSB7CisgICAgY29sb25TeW1ib2wgPSAiOiI7CisgIH0K
KyAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbCA9ICJudWxsIjsKKyAgaWYgKGRucCkgeworICAgIG51
bGxTeW1ib2wgPSAiIjsKKyAgfQorICBpZiAocHJlID4gMTcpIHByZSA9IDE3OworICBzdGQ6OnN0
cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbCA9ICIiOworICByZXR1cm4gbmV3IEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyKAorICAgICAgaW5kZW50YXRpb24sIGNzLAorICAgICAgY29sb25TeW1ib2ws
IG51bGxTeW1ib2wsIGVuZGluZ0xpbmVGZWVkU3ltYm9sLCB1c2YsIHByZSk7Cit9CitzdGF0aWMg
dm9pZCBnZXRWYWxpZFdyaXRlcktleXMoc3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiB2YWxpZF9rZXlz
KQoreworICB2YWxpZF9rZXlzLT5jbGVhcigpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImluZGVu
dGF0aW9uIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29tbWVudFN0eWxlIik7CisgIHZhbGlk
X2tleXMtPmluc2VydCgiZW5hYmxlWUFNTENvbXBhdGliaWxpdHkiKTsKKyAgdmFsaWRfa2V5cy0+
aW5zZXJ0KCJkcm9wTnVsbFBsYWNlaG9sZGVycyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInVz
ZVNwZWNpYWxGbG9hdHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJwcmVjaXNpb24iKTsKK30K
K2Jvb2wgU3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQp
IGNvbnN0Cit7CisgIEpzb246OlZhbHVlIG15X2ludmFsaWQ7CisgIGlmICghaW52YWxpZCkgaW52
YWxpZCA9ICZteV9pbnZhbGlkOyAgLy8gc28gd2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3IgTlVM
TAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5n
PiB2YWxpZF9rZXlzOworICBnZXRWYWxpZFdyaXRlcktleXMoJnZhbGlkX2tleXMpOworICBWYWx1
ZTo6TWVtYmVycyBrZXlzID0gc2V0dGluZ3NfLmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVfdCBu
ID0ga2V5cy5zaXplKCk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAg
c3RkOjpzdHJpbmcgY29uc3QmIGtleSA9IGtleXNbaV07CisgICAgaWYgKHZhbGlkX2tleXMuZmlu
ZChrZXkpID09IHZhbGlkX2tleXMuZW5kKCkpIHsKKyAgICAgIGludltrZXldID0gc2V0dGluZ3Nf
W2tleV07CisgICAgfQorICB9CisgIHJldHVybiAwdSA9PSBpbnYuc2l6ZSgpOworfQorVmFsdWUm
IFN0cmVhbVdyaXRlckJ1aWxkZXI6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KQoreworICBy
ZXR1cm4gc2V0dGluZ3NfW2tleV07Cit9CisvLyBzdGF0aWMKK3ZvaWQgU3RyZWFtV3JpdGVyQnVp
bGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQoreworICAvLyEgW1N0cmVh
bVdyaXRlckJ1aWxkZXJEZWZhdWx0c10KKyAgKCpzZXR0aW5ncylbImNvbW1lbnRTdHlsZSJdID0g
IkFsbCI7CisgICgqc2V0dGluZ3MpWyJpbmRlbnRhdGlvbiJdID0gIlx0IjsKKyAgKCpzZXR0aW5n
cylbImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImRy
b3BOdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInVzZVNwZWNpYWxG
bG9hdHMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsicHJlY2lzaW9uIl0gPSAxNzsKKyAgLy8h
IFtTdHJlYW1Xcml0ZXJCdWlsZGVyRGVmYXVsdHNdCit9CisKK3N0ZDo6c3RyaW5nIHdyaXRlU3Ry
aW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgYnVpbGRlciwgVmFsdWUgY29uc3QmIHJv
b3QpIHsKKyAgc3RkOjpvc3RyaW5nc3RyZWFtIHNvdXQ7CisgIFN0cmVhbVdyaXRlclB0ciBjb25z
dCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRlci0+d3JpdGUocm9v
dCwgJnNvdXQpOworICByZXR1cm4gc291dC5zdHIoKTsKK30KKworc3RkOjpvc3RyZWFtJiBvcGVy
YXRvcjw8KHN0ZDo6b3N0cmVhbSYgc291dCwgVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgU3RyZWFt
V3JpdGVyQnVpbGRlciBidWlsZGVyOworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qgd3JpdGVyKGJ1
aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3QsICZzb3V0KTsK
KyAgcmV0dXJuIHNvdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fd3JpdGVy
LmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvb3BlbnZyX2FwaV9wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM5NmU2Nzcy
MmYzNjk0NzA0ZDNkYWI3YTNkZWFiZmE3NjlhNDc5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZyX2FwaV9wdWJsaWMuY3BwCkBAIC0wLDAgKzEs
Mjk4IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09
PT09Ly8KKyNkZWZpbmUgVlJfQVBJX0VYUE9SVCAxCisjaW5jbHVkZSAib3BlbnZyLmgiCisjaW5j
bHVkZSAiaXZyY2xpZW50Y29yZS5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKKyNp
bmNsdWRlICJzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJlbnZ2YXJ0b29sc19w
dWJsaWMuaCIKKyNpbmNsdWRlICJobWRlcnJvcnNfcHVibGljLmgiCisjaW5jbHVkZSAidnJwYXRo
cmVnaXN0cnlfcHVibGljLmgiCisjaW5jbHVkZSA8bXV0ZXg+CisKK3VzaW5nIHZyOjpFVlJJbml0
RXJyb3I7Cit1c2luZyB2cjo6SVZSU3lzdGVtOwordXNpbmcgdnI6OklWUkNsaWVudENvcmU7Cit1
c2luZyB2cjo6VlJJbml0RXJyb3JfTm9uZTsKKworbmFtZXNwYWNlIHZyCit7CisKK3N0YXRpYyB2
b2lkICpnX3BWUk1vZHVsZSA9IE5VTEw7CitzdGF0aWMgSVZSQ2xpZW50Q29yZSAqZ19wSG1kU3lz
dGVtID0gTlVMTDsKK3N0YXRpYyBzdGQ6OnJlY3Vyc2l2ZV9tdXRleCBnX211dGV4U3lzdGVtOwor
CisKK3R5cGVkZWYgdm9pZCogKCpWUkNsaWVudENvcmVGYWN0b3J5Rm4pKGNvbnN0IGNoYXIgKnBJ
bnRlcmZhY2VOYW1lLCBpbnQgKnBSZXR1cm5Db2RlKTsKKworc3RhdGljIHVpbnQzMl90IGdfblZS
VG9rZW4gPSAwOworCit1aW50MzJfdCBWUl9HZXRJbml0VG9rZW4oKQoreworICAgICAgIHJldHVy
biBnX25WUlRva2VuOworfQorCitFVlJJbml0RXJyb3IgVlJfTG9hZEhtZFN5c3RlbUludGVybmFs
KCk7Cit2b2lkIENsZWFudXBJbnRlcm5hbEludGVyZmFjZXMoKTsKKworCit1aW50MzJfdCBWUl9J
bml0SW50ZXJuYWwyKCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlvblR5
cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkKK3sKKyAgICAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0
ZW0gKTsKKworICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJu
YWwoKTsKKyAgICAgICBpZiAoIGVyciA9PSB2cjo6VlJJbml0RXJyb3JfTm9uZSApCisgICAgICAg
eworICAgICAgICAgICAgICBlcnIgPSBnX3BIbWRTeXN0ZW0tPkluaXQoIGVBcHBsaWNhdGlvblR5
cGUsIHBTdGFydHVwSW5mbyApOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciApCisg
ICAgICAgICAgICAgICpwZUVycm9yID0gZXJyOworCisgICAgICAgaWYgKCBlcnIgIT0gVlJJbml0
RXJyb3JfTm9uZSApCisgICAgICAgeworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBn
X3BWUk1vZHVsZSApOworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOworICAgICAg
ICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgfQorCisgICAgICAgcmV0dXJuICsrZ19uVlJUb2tlbjsKK30KKworVlJfSU5URVJGQUNF
IHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVy
cm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSApOworCit1aW50MzJfdCBW
Ul9Jbml0SW50ZXJuYWwoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgdnI6OkVWUkFwcGxpY2F0aW9u
VHlwZSBlQXBwbGljYXRpb25UeXBlICkKK3sKKyAgICAgICByZXR1cm4gVlJfSW5pdEludGVybmFs
MiggcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSwgbnVsbHB0ciApOworfQorCit2b2lkIFZSX1No
dXRkb3duSW50ZXJuYWwoKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2
ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworICAgICAgIAorICAgICAgIGlmICggZ19w
SG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbS0+Q2xlYW51
cCgpOworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOworICAgICAgIH0KKyAgICAg
ICBpZiAoIGdfcFZSTW9kdWxlICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNoYXJlZExpYl9V
bmxvYWQoIGdfcFZSTW9kdWxlICk7CisgICAgICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVMTDsK
KyAgICAgICB9CisKKyNpZiAhZGVmaW5lZCggVlJfQVBJX1BVQkxJQyApCisgICAgICAgQ2xlYW51
cEludGVybmFsSW50ZXJmYWNlcygpOworI2VuZGlmCisKKyAgICAgICArK2dfblZSVG9rZW47Cit9
CisKK0VWUkluaXRFcnJvciBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKQoreworICAgICAgIHN0
ZDo6c3RyaW5nIHNSdW50aW1lUGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOworCisgICAgICAg
Ym9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhz
KCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOwor
ICAgICAgIGlmKCAhYlJlYWRQYXRoUmVnaXN0cnkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
cmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOworICAgICAg
IH0KKworICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3Ig
dnJjbGllbnQuZGxsCisgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxs
eSBleGlzdHMuCisgICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSAp
CisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5z
dGFsbGF0aW9uTm90Rm91bmQ7CisgICAgICAgfQorCisgICAgICAgLy8gQmVjYXVzZSB3ZSBkb24n
dCBoYXZlIGEgd2F5IHRvIHNlbGVjdCBkZWJ1ZyB2cy4gcmVsZWFzZSB5ZXQgd2UnbGwganVzdAor
ICAgICAgIC8vIHVzZSBkZWJ1ZyBpZiBpdCdzIHRoZXJlCisjaWYgZGVmaW5lZCggTElOVVg2NCAp
CisgICAgICAgc3RkOjpzdHJpbmcgc1Rlc3RQYXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBhdGgs
ICJiaW4iLCBQTEFUU1VCRElSICk7CisjZWxzZQorICAgICAgIHN0ZDo6c3RyaW5nIHNUZXN0UGF0
aCA9IFBhdGhfSm9pbiggc1J1bnRpbWVQYXRoLCAiYmluIiApOworI2VuZGlmCisgICAgICAgaWYo
ICFQYXRoX0lzRGlyZWN0b3J5KCBzVGVzdFBhdGggKSApCisgICAgICAgeworICAgICAgICAgICAg
ICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdDsKKyAgICAg
ICB9CisKKyNpZiBkZWZpbmVkKCBXSU42NCApCisgICAgICAgc3RkOjpzdHJpbmcgc0RMTFBhdGgg
PSBQYXRoX0pvaW4oIHNUZXN0UGF0aCwgInZyY2xpZW50X3g2NCIgRFlOQU1JQ19MSUJfRVhUICk7
CisjZWxzZQorICAgICAgIHN0ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVzdFBh
dGgsICJ2cmNsaWVudCIgRFlOQU1JQ19MSUJfRVhUICk7CisjZW5kaWYKKworICAgICAgIC8vIG9u
bHkgbG9vayBpbiB0aGUgb3ZlcnJpZGUKKyAgICAgICB2b2lkICpwTW9kID0gU2hhcmVkTGliX0xv
YWQoIHNETExQYXRoLmNfc3RyKCkgKTsKKyAgICAgICAvLyBub3RoaW5nIG1vcmUgdG8gZG8gaWYg
d2UgY2FuJ3QgbG9hZCB0aGUgRExMCisgICAgICAgaWYoICFwTW9kICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5k
OworICAgICAgIH0KKworICAgICAgIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiBmbkZhY3RvcnkgPSAo
IFZSQ2xpZW50Q29yZUZhY3RvcnlGbiApKCBTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIHBNb2QsICJW
UkNsaWVudENvcmVGYWN0b3J5IiApICk7CisgICAgICAgaWYoICFmbkZhY3RvcnkgKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggcE1vZCApOworICAgICAgICAgICAg
ICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kOworICAgICAgIH0K
KworICAgICAgIGludCBuUmV0dXJuQ29kZSA9IDA7CisgICAgICAgZ19wSG1kU3lzdGVtID0gc3Rh
dGljX2Nhc3Q8IElWUkNsaWVudENvcmUgKiA+ICggZm5GYWN0b3J5KCB2cjo6SVZSQ2xpZW50Q29y
ZV9WZXJzaW9uLCAmblJldHVybkNvZGUgKSApOworICAgICAgIGlmKCAhZ19wSG1kU3lzdGVtICkK
KyAgICAgICB7CisgICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOwor
ICAgICAgIH0KKworICAgICAgIGdfcFZSTW9kdWxlID0gcE1vZDsKKyAgICAgICByZXR1cm4gVlJJ
bml0RXJyb3JfTm9uZTsKK30KKworCit2b2lkICpWUl9HZXRHZW5lcmljSW50ZXJmYWNlKGNvbnN0
IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvcikKK3sKKyAg
ICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhT
eXN0ZW0gKTsKKworICAgICAgIGlmICghZ19wSG1kU3lzdGVtKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgaWYgKHBlRXJyb3IpCisgICAgICAgICAgICAgICAgICAgICAqcGVFcnJvciA9IHZyOjpW
UkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOworICAgICAgICAgICAgICByZXR1cm4gTlVM
TDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRHZW5lcmljSW50
ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHBlRXJyb3IpOworfQorCitib29sIFZSX0lzSW50
ZXJmYWNlVmVyc2lvblZhbGlkKGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24pCit7Cisg
ICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4
U3lzdGVtICk7CisKKyAgICAgICBpZiAoIWdfcEhtZFN5c3RlbSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gZ19wSG1kU3lz
dGVtLT5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZhY2VWZXJzaW9uKSA9PSBWUklu
aXRFcnJvcl9Ob25lOworfQorCitib29sIFZSX0lzSG1kUHJlc2VudCgpCit7CisgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7
CisKKyAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8v
IGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIGp1c3QgY2FsbCB0aHJvdWdoCisgICAgICAg
ICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKKyAgICAgICB9Cisg
ICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIG5lZWQg
dG8gZG8gYSBiaXQgbW9yZSB3b3JrCisgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBW
Ul9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKKyAgICAgICAgICAgICAgaWYoIGVyciAhPSBWUklu
aXRFcnJvcl9Ob25lICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICAgICAgICBib29sIGJIYXNIbWQgPSBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsK
KworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOworICAgICAgICAgICAgICBTaGFy
ZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOworICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9
IE5VTEw7CisKKyAgICAgICAgICAgICAgcmV0dXJuIGJIYXNIbWQ7CisgICAgICAgfQorfQorCisv
KiogUmV0dXJucyB0cnVlIGlmIHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCiti
b29sIFZSX0lzUnVudGltZUluc3RhbGxlZCgpCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBpZigg
Z19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVh
ZHkgaW5pdGlhbGl6ZWQsIE9wZW5WUiBpcyBvYnZpb3VzbHkgaW5zdGFsbGVkCisgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAg
ICAgICAgICAvLyBvdGhlcndpc2Ugd2UgbmVlZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKKyAgICAg
ICAgICAgICAgc3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xvZ1BhdGg7
CisKKyAgICAgICAgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0
aCwgTlVMTCwgTlVMTCApOworICAgICAgICAgICAgICBpZiggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBn
b2luZyB0byBsb29rIGZvciB2cmNsaWVudC5kbGwKKyAgICAgICAgICAgICAgLy8gc2VlIGlmIHRo
ZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisgICAgICAgICAgICAgIGlmKCAhUGF0
aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAvLyB0aGUgaW5zdGFsbGF0aW9uIG1heSBiZSBjb3JydXB0IGluIHNvbWUgd2F5LCBidXQg
aXQgY2VydGFpbmx5IGxvb2tzIGluc3RhbGxlZAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICB9Cit9CisKKworLyoqIFJldHVybnMgd2hlcmUgT3BlblZSIHJ1bnRpbWUgaXMgaW5z
dGFsbGVkLiAqLworY29uc3QgY2hhciAqVlJfUnVudGltZVBhdGgoKQoreworICAgICAgIC8vIG90
aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29yaworICAgICAgIHN0YXRpYyBzdGQ6
OnN0cmluZyBzUnVudGltZVBhdGg7CisgICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGgsIHNM
b2dQYXRoOworCisgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0
aCwgTlVMTCwgTlVMTCApOworICAgICAgIGlmICggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgIH0KKworICAgICAgIC8v
IGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCisg
ICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisgICAg
ICAgaWYgKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNS
dW50aW1lUGF0aC5jX3N0cigpOworfQorCisKKy8qKiBSZXR1cm5zIHRoZSBzeW1ib2wgdmVyc2lv
biBvZiBhbiBITUQgZXJyb3IuICovCitjb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzU3lt
Ym9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6
OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYoIGdf
cEhtZFN5c3RlbSApCisgICAgICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldElERm9y
VlJJbml0RXJyb3IoIGVycm9yICk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4g
R2V0SURGb3JWUkluaXRFcnJvciggZXJyb3IgKTsKK30KKworCisvKiogUmV0dXJucyB0aGUgZW5n
bGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCitjb25zdCBjaGFyICpWUl9H
ZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3IgKQor
eworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19t
dXRleFN5c3RlbSApOworCisgICAgICAgaWYgKCBnX3BIbWRTeXN0ZW0gKQorICAgICAgICAgICAg
ICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIGVycm9y
ICk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gR2V0RW5nbGlzaFN0cmluZ0Zv
ckhtZEVycm9yKCBlcnJvciApOworfQorCisKK1ZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9D
QUxMVFlQRSBWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlcnJvciAp
OworCisvKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJy
b3IuICovCitjb25zdCBjaGFyICpWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggRVZSSW5pdEVycm9y
IGVycm9yICkKK3sKKyAgICAgICByZXR1cm4gVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNj
cmlwdGlvbiggZXJyb3IgKTsKK30KKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjhiZDIzZDQwZWU0OWY0MDgwZjcxYjI2NjAzM2Q2NGRhMWNmZWZjMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGlj
LmNwcApAQCAtMCwwICsxLDEwMSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBv
cmF0aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAiZGlydG9vbHNfcHVibGljLmgiCisjaW5j
bHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgor
CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmZGVmIF9XSU4z
MgorI2luY2x1ZGUgIndpbmRvd3MuaCIKKyNlbHNlCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBl
cy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBPU1ggKQorI2luY2x1ZGUgPHN5cy9zeXNsaW1p
dHMuaD4KKyNlbmRpZgorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IHV0
aWxpdHkgZnVuY3Rpb24gdG8gY3JlYXRlIGRpcnMgJiBzdWJkaXJzCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitib29sIEJDcmVhdGVEaXJlY3RvcnlSZWN1cnNpdmUoIGNvbnN0IGNoYXIgKnBjaFBh
dGggKQoreworICAgICAgIC8vIERvZXMgaXQgYWxyZWFkeSBleGlzdD8KKyAgICAgICBpZiAoIFBh
dGhfSXNEaXJlY3RvcnkoIHBjaFBhdGggKSApCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgICAgLy8gY29weSB0aGUgcGF0aCBpbnRvIHNvbWV0aGluZyB3ZSBjYW4gbXVuZ2UKKyAg
ICAgICBpbnQgbGVuID0gKGludClzdHJsZW4oIHBjaFBhdGggKTsKKyAgICAgICBjaGFyICpwYXRo
ID0gKGNoYXIgKiltYWxsb2MoIGxlbiArIDEgKTsKKyAgICAgICBzdHJjcHkoIHBhdGgsIHBjaFBh
dGggKTsKKworICAgICAgIC8vIFdhbGsgYmFja3dhcmRzIHRvIGZpcnN0IG5vbi1leGlzdGluZyBk
aXIgdGhhdCB3ZSBmaW5kCisgICAgICAgY2hhciAqcyA9IHBhdGggKyBsZW4gLSAxOworCisgICAg
ICAgY29uc3QgY2hhciBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKyAgICAgICB3aGlsZSAoIHMg
PiBwYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggKnMgPT0gc2xhc2ggKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcyA9ICdcMCc7CisgICAgICAgICAg
ICAgICAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0lzRGlyZWN0b3J5KCBwYXRoICk7CisgICAg
ICAgICAgICAgICAgICAgICAqcyA9IHNsYXNoOworCisgICAgICAgICAgICAgICAgICAgICBpZiAo
IGJFeGlzdHMgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICsrczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAtLXM7CisgICAg
ICAgfQorCisgICAgICAgLy8gYW5kIHRoZW4gbW92ZSBmb3J3YXJkcyBmcm9tIHRoZXJlCisKKyAg
ICAgICB3aGlsZSAoICpzICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggKnMgPT0gc2xh
c2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcyA9ICdcMCc7Cisg
ICAgICAgICAgICAgICAgICAgICBCQ3JlYXRlRGlyZWN0b3J5KCBwYXRoICk7CisgICAgICAgICAg
ICAgICAgICAgICAqcyA9IHNsYXNoOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHMr
KzsKKyAgICAgICB9CisKKyAgICAgICBib29sIGJSZXRWYWwgPSBCQ3JlYXRlRGlyZWN0b3J5KCBw
YXRoICk7CisgICAgICAgZnJlZSggcGF0aCApOworICAgICAgIHJldHVybiBiUmV0VmFsOworfQor
CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IENyZWF0ZXMgdGhlIGRpcmVj
dG9yeSwgcmV0dXJuaW5nIHRydWUgaWYgaXQgaXMgY3JlYXRlZCwgb3IgaWYgaXQgYWxyZWFkeSBl
eGlzdGVkCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIEJDcmVhdGVEaXJlY3RvcnkoIGNv
bnN0IGNoYXIgKnBjaFBhdGggKQoreworI2lmZGVmIFdJTjMyCisgICAgICAgc3RkOjp3c3RyaW5n
IHdQYXRoID0gVVRGOHRvMTYoIHBjaFBhdGggKTsKKyAgICAgICBpZiAoIDo6Q3JlYXRlRGlyZWN0
b3J5Vyggd1BhdGguY19zdHIoKSwgTlVMTCApICkKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICAgICBpZiAoIDo6R2V0TGFzdEVycm9yKCkgPT0gRVJST1JfQUxSRUFEWV9FWElTVFMg
KQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bHNlCisgICAgICAgaW50IGkgPSBta2RpciggcGNoUGF0aCwgU19JUldYVSB8IFNfSVJXWEcgfCBT
X0lSV1hPICk7CisgICAgICAgaWYgKCBpID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICBpZiAoIGVycm5vID09IEVFWElTVCApCisgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIwNDhiNDFiNzgxNGZkZTA3Mjc3NjRhZTc5NGVkZThlMGRmZDRlNjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRv
b2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTcgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2
ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxz
dGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKKworI2lmICFkZWZpbmVkKF9XSU4zMikKKyNp
bmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisKKwor
ZXh0ZXJuIGJvb2wgQkNyZWF0ZURpcmVjdG9yeVJlY3Vyc2l2ZSggY29uc3QgY2hhciAqcGNoUGF0
aCApOworZXh0ZXJuIGJvb2wgQkNyZWF0ZURpcmVjdG9yeSggY29uc3QgY2hhciAqcGNoUGF0aCAp
OworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
ZW52dmFydG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWQxNmQ5Zjg1NjI2ZmNh
MDYwNGM5ZjFlY2Y2NjQwMmM5YmE4YWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCkBAIC0wLDAg
KzEsNDYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09
PT09PT0vLworI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgPHN0ZGxp
Yi5oPgorCisjaWYgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8d2luZG93cy5oPgorCisjdW5k
ZWYgR2V0RW52aXJvbm1lbnRWYXJpYWJsZQorI3VuZGVmIFNldEVudmlyb25tZW50VmFyaWFibGUK
KyNlbmRpZgorCisKK3N0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNo
YXIgKnBjaFZhck5hbWUgKQoreworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAgIGNoYXIgcmNo
VmFsdWVbMzI3NjddOyAvLyBtYXggc2l6ZSBmb3IgYW4gZW52IHZhciBvbiBXaW5kb3dzCisgICAg
ICAgRFdPUkQgY0NoYXJzID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUsIHJj
aFZhbHVlLCBzaXplb2YoIHJjaFZhbHVlICkgKTsKKyAgICAgICBpZiggY0NoYXJzID09IDAgKQor
ICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1
cm4gcmNoVmFsdWU7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIGNoYXIgKnBjaFZhbHVl
ID0gZ2V0ZW52KCBwY2hWYXJOYW1lICk7CisgICAgICAgaWYoIHBjaFZhbHVlICkKKyAgICAgICAg
ICAgICAgcmV0dXJuIHBjaFZhbHVlOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJu
ICIiOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCisjZW5kaWYKK30KKwor
Citib29sIFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUsIGNv
bnN0IGNoYXIgKnBjaFZhclZhbHVlICkKK3sKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyAgICAgICBy
ZXR1cm4gMCAhPSBTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSggcGNoVmFyTmFtZSwgcGNoVmFyVmFs
dWUgKTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAgICAgaWYoIHBjaFZhclZhbHVlID09IE5V
TEwgKQorICAgICAgICAgICAgICByZXR1cm4gMCA9PSB1bnNldGVudiggcGNoVmFyTmFtZSApOwor
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIDAgPT0gc2V0ZW52KCBwY2hWYXJOYW1l
LCBwY2hWYXJWYWx1ZSwgMSApOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0i
CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkZTk4MWFjM2UzOTcw
NmQ1OWEwMGMyYzQxZjg1NThlNGM1ZDIwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCkBAIC0wLDAg
KzEsNyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09
PT09PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKworc3RkOjpzdHJpbmcg
R2V0RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSApOworYm9vbCBT
ZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lLCBjb25zdCBjaGFy
ICpwY2hWYXJWYWx1ZSApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyZTFjNGIz
YTgxMzA4YzAxOWQ3MmJjY2NkN2M2YWU3MDk4MTlmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKQEAg
LTAsMCArMSwyMjkgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9
PT09PT09PT09PT0vLworI2luY2x1ZGUgIm9wZW52ci5oIgorI2luY2x1ZGUgImhtZGVycm9yc19w
dWJsaWMuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwordXNp
bmcgbmFtZXNwYWNlIHZyOworCisjZGVmaW5lIFJFVFVSTl9FTlVNX0FTX1NUUklORyhlbnVtVmFs
dWUpIGNhc2UgZW51bVZhbHVlOiByZXR1cm4gI2VudW1WYWx1ZTsKKworCitjb25zdCBjaGFyICpH
ZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkKK3sK
KyAgICAgICBzd2l0Y2goIGVFcnJvciApCisgICAgICAgeworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfTm9uZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiTm8gRXJyb3IgKDApIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIklu
c3RhbGxhdGlvbiBOb3QgRm91bmQgKDEwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5p
dF9JbnN0YWxsYXRpb25Db3JydXB0OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW5zdGFs
bGF0aW9uIENvcnJ1cHQgKDEwMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkNs
aWVudERMTE5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJjbGllbnQgU2hh
cmVkIExpYiBOb3QgRm91bmQgKDEwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9G
aWxlTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkZp
bGUgTm90IEZvdW5kICgxMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfRmFjdG9y
eU5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkZhY3RvcnkgRnVu
Y3Rpb24gTm90IEZvdW5kICgxMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW50
ZXJmYWNlTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnRlcmZhY2UgTm90
IEZvdW5kICgxMDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVy
ZmFjZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkIEludGVyZmFj
ZSAoMTA2KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3Rv
cnlJbnZhbGlkOiAgICAgICByZXR1cm4gIlVzZXIgQ29uZmlnIERpcmVjdG9yeSBJbnZhbGlkICgx
MDcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBOb3QgRm91bmQgKDEwOCkiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJOb3QgSW5pdGlhbGl6ZWQgKDEwOSkiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZDogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIkluc3RhbGxhdGlvbiBwYXRoIGNvdWxkIG5vdCBiZSBsb2NhdGVkICgxMTAp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb25maWcgcGF0aCBjb3VsZCBub3QgYmUg
bG9jYXRlZCAoMTExKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aDog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiTG9nIHBhdGggY291bGQg
bm90IGJlIGxvY2F0ZWQgKDExMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9QYXRo
UmVnaXN0cnlOb3RXcml0YWJsZTogICAgICAgICAgICAgIHJldHVybiAiVW5hYmxlIHRvIHdyaXRl
IHBhdGggcmVnaXN0cnkgKDExMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9BcHBJ
bmZvSW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkFwcCBpbmZvIG1hbmFn
ZXIgaW5pdCBmYWlsZWQgKDExNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9SZXRy
eTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkludGVy
bmFsIFJldHJ5ICgxMTUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNl
bGVkQnlVc2VyOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVXNlciBDYW5jZWxlZCBJbml0
ICgxMTYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5jaGlu
ZzogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkFub3RoZXIgYXBwIHdhcyBhbHJlYWR5IGxh
dW5jaGluZyAoMTE3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5p
dEZhaWxlZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNldHRpbmdzIG1hbmFnZXIgaW5p
dCBmYWlsZWQgKDExOCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rv
d246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIHN5c3RlbSBz
aHV0dGluZyBkb3duICgxMTkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVG9vTWFu
eU9iamVjdHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVG9vIG1hbnkgdHJh
Y2tlZCBvYmplY3RzICgxMjApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2
ZXJGb3JCYWNrZ3JvdW5kQXBwOiAgICAgICAgICAgICAgcmV0dXJuICJOb3Qgc3RhcnRpbmcgdnJz
ZXJ2ZXIgZm9yIGJhY2tncm91bmQgYXBwICgxMjEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3I6ICAgICAgIHJldHVybiAiVGhlIHJlcXVl
c3RlZCBpbnRlcmZhY2UgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGNvbXBvc2l0b3IgYW5kIHRo
ZSBjb21wb3NpdG9yIGlzIHJ1bm5pbmcgKDEyMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzOiAgICAgICByZXR1cm4gIlRoaXMgaW50ZXJm
YWNlIGlzIG5vdCBhdmFpbGFibGUgdG8gdXRpbGl0eSBhcHBsaWNhdGlvbnMgKDEyMykiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnRlcm5hbDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gInZyc2VydmVyIGludGVybmFsIGVycm9yICgxMjQp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kRHJpdmVySWRJc05vbmU6ICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJIbWQgRHJpdmVySWQgaXMgaW52YWxpZCAoMTI1KSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQ6ICAg
ICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCBQcmVzZW5jZSBGYWlsZWQgKDEyNikiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZDogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIlZSIE1vbml0b3IgTm90IEZvdW5kICgxMjcpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZDogICAgICAgICAgICAgIHJldHVy
biAiVlIgTW9uaXRvciBzdGFydHVwIGZhaWxlZCAoMTI4KSI7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQ6IHJldHVybiAiTG93IFBvd2Vy
IFdhdGNoZG9nIE5vdCBTdXBwb3J0ZWQgKDEyOSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlOiAgICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlk
IEFwcGxpY2F0aW9uIFR5cGUgKDEzMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9O
b3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwczogICAgICAgcmV0dXJuICJOb3QgYXZhaWxhYmxlIHRv
IHdhdGNoZG9nIGFwcHMgKDEzMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9XYXRj
aGRvZ0Rpc2FibGVkSW5TZXR0aW5nczogICAgICAgcmV0dXJuICJXYXRjaGRvZyBkaXNhYmxlZCBp
biBzZXR0aW5ncyAoMTMyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBEYXNoYm9hcmQgTm90
IEZvdW5kICgxMzMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRT
dGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0dXJuICJWUiBEYXNoYm9hcmQgc3RhcnR1cCBm
YWlsZWQgKDEzNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVOb3RGb3Vu
ZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBIb21lIE5vdCBGb3VuZCAo
MTM1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWlsZWQ6
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBob21lIHN0YXJ0dXAgZmFpbGVkICgxMzYp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUmVib290aW5nQnVzeTogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJSZWJvb3RpbmcgSW4gUHJvZ3Jlc3MgKDEzNykiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3k6ICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICJGaXJtd2FyZSBVcGRhdGUgSW4gUHJvZ3Jlc3MgKDEzOCkiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVJlY292ZXJ5QnVzeTogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFJlY292ZXJ5IEluIFByb2dyZXNzICgxMzkp
IjsKKworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgRmFpbGVk
ICgyMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIE5vdCBLbm93
biAoMjAxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93bjogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBOb3QgS25v
d24gKDIwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBOb3Qg
TG9hZGVkICgyMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9SdW50aW1lT3V0
T2ZEYXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBydW50aW1l
IGlzIG91dCBvZiBkYXRlICgyMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9I
bWRJblVzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGFwcGxpY2F0aW9uICgyMDUpIjsKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJhdGVkOiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJEZXZpY2UgaXMgbm90IGNhbGlicmF0ZWQgKDIwNiki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEZXZpY2UgQ2FsaWJyYXRpb24gaXMgaW52
YWxpZCAoMjA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5v
dEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBkZXRlY3RlZCBv
dmVyIFVTQiwgYnV0IE1vbml0b3Igbm90IGZvdW5kICgyMDgpIjsKKyAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93bjogICAgICAgcmV0dXJu
ICJEcml2ZXIgVHJhY2tlZCBEZXZpY2UgSW50ZXJmYWNlIHVua25vd24gKDIwOSkiOworICAgICAg
IC8vIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZEFmdGVyRml4OiAg
ICAgICByZXR1cm4gIkhNRCBkZXRlY3RlZCBvdmVyIFVTQiwgYnV0IE1vbml0b3Igbm90IGZvdW5k
IGFmdGVyIGF0dGVtcHQgdG8gZml4ICgyMTApIjsgLy8gdGFrZW4gb3V0IHVwb24gQmVuJ3MgcmVx
dWVzdDogSGUgdGhpbmtzIHRoYXQgdGhlcmUgaXMgbm8gbmVlZCB0byBzZXBhcmF0ZSB0aGF0IGVy
cm9yIGZyb20gMjA4CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRP
dXRPZkJvdW5kczogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBpcyBv
dXIgb2YgYm91bmRzICgyMTEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
aXNwbGF5TWlycm9yZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGRl
dGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBtYXkgYmUgbWlycm9yZWQgaW5zdGVhZCBvZiBl
eHRlbmRlZCAoMjEyKSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0
RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
VlIgU2VydmVyIEluaXQgRmFpbGVkICgzMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQ
Q19Db25uZWN0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkNvbm5lY3QgdG8gVlIgU2VydmVyIEZhaWxlZCAoMzAxKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIFN0YXRlIEluaXQgRmFp
bGVkICgzMDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZh
aWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQ
QyBDb21wb3NpdG9yIEluaXQgRmFpbGVkICgzMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0lQQ19NdXRleEluaXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIE11dGV4IEluaXQgRmFpbGVkICgzMDQpIjsKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgRmFpbGVkICgz
MDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxl
ZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIENvbXBvc2l0
b3IgQ29ubmVjdCBGYWlsZWQgKDMwNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0Nv
bXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlOiAgICAgICAgICAgICAgcmV0dXJuICJTaGFy
ZWQgSVBDIENvbXBvc2l0b3IgSW52YWxpZCBDb25uZWN0IFJlc3BvbnNlICgzMDcpIjsKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRz
OiAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29ubmVjdCBGYWlsZWQgQWZ0ZXIgTXVsdGlwbGUg
QXR0ZW1wdHMgKDMwOCkiOworCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zh
aWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQ29tcG9zaXRv
ciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSAoNDAwKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9D
b21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZDogICAgICAgcmV0dXJuICJDb21wb3NpdG9y
IGZhaWxlZCB0byBmaW5kIERYMTEgaGFyZHdhcmUgKDQwMSkiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlOiAgICAgICByZXR1cm4gIkNv
bXBvc2l0b3IgcmVxdWlyZXMgbWFuZGF0b3J5IGZpcm13YXJlIHVwZGF0ZSAoNDAyKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkOiAgICAgICAg
ICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGluaXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0IG92
ZXJsYXkgaW5pdCBmYWlsZWQgKDQwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9z
aXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQ6ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciBpbml0
aWFsaXphdGlvbiBzdWNjZWVkZWQsIGJ1dCBzY3JlZW5zaG90IGluaXQgZmFpbGVkICg0MDQpIjsK
KyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfVW5hYmxlVG9DcmVhdGVEZXZpY2U6
ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciB1bmFibGUgdG8gY3JlYXRlIGdyYXBoaWNzIGRldmlj
ZSAoNDA1KSI7CisKKyAgICAgICAvLyBPY3VsdXMKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVudGltZTogICAgICAgcmV0dXJu
ICJVbmFibGUgdG8gY29ubmVjdCB0byBPY3VsdXMgUnVudGltZSAoMTAwMCkiOworCisgICAgICAg
Ly8gTGlnaHRob3VzZQorICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfQ2FudE9wZW5EZXZpY2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
SE1EIGZvdW5kLCBidXQgY2FuIG5vdCBvcGVuIGRldmljZSAoMTEwMSkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmln
U3RhcnQ6ICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgdW5hYmxlIHRvIHJlcXVlc3QgY29u
ZmlnICgxMTAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9Ob1N0b3JlZENvbmZpZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJI
TUQgZm91bmQsIGJ1dCBubyBzdG9yZWQgY29uZmlnICgxMTAzKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjazog
ICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBmYWlsZWQgY29uZmlndXJhdGlvbiBjaGVjayAo
MTExMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
Q29uZmlnVG9vQmlnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJI
TUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIGJpZyAoMTEwNCkiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGw6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgY29uZmlnIHRvbyBzbWFsbCAo
MTEwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
VW5hYmxlVG9Jbml0WkxpYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQg
Zm91bmQsIGJ1dCB1bmFibGUgdG8gaW5pdCBaTGliICgxMTA2KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbjog
ICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0
YSAoMTEwNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydDogICAgICAgICAgICAgIHJldHVybiAiSE1EIGZv
dW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEwOCkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0
OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBk
YXRhICgxMTA5KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dDogICAgICAgICAgICAgIHJldHVybiAiSE1EIGZv
dW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTExMCkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2U6ICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRo
ZSBkYXRhICgxMTExKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9Vc2VyRGF0YUVycm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEyKSI7CisK
KyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQ6
IHJldHVybiAiVW5hYmxlIHRvIGZpbmQgU3RlYW0gaW5zdGFsbGF0aW9uICgyMDAwKSI7CisKKyAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzdGF0
aWMgY2hhciBidWZbMTI4XTsKKyAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoIGJ1ZiwgIlVu
a25vd24gZXJyb3IgKCVkKSIsIGVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJ1ZjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworfQorCisKK2NvbnN0IGNoYXIgKkdl
dElERm9yVlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkKK3sKKyAgICAgICBz
d2l0Y2goIGVFcnJvciApCisgICAgICAgeworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX05vbmUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Vbmtub3duICk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9JbnN0
YWxsYXRpb25Db3JydXB0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ZhY3Rv
cnlOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2UgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25m
aWdEaXJlY3RvcnlJbnZhbGlkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdp
c3RyeU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3Jp
dGFibGUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9SZXRyeSApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2VyICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Bbm90
aGVyQXBwTGF1bmNoaW5nICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVG9vTWFu
eU9iamVjdHMgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBv
c2l0b3IgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RG
b3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRl
ZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lu
aXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1dh
dGNoZG9nRGlzYWJsZWRJblNldHRpbmdzICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5kICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZFN0YXJ0dXBGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVTdGFydHVwRmFpbGVkICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9SZWJv
b3RpbmdCdXN5ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3kgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5ICk7CisK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ht
ZERyaXZlcklkSXNOb25lICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkICk7CisKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfRmFpbGVkICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVy
X1Vua25vd24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Ecml2ZXJfSG1kVW5rbm93bik7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUpOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9I
bWRJblVzZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfRHJpdmVyX05vdENhbGlicmF0ZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5
Tm90Rm91bmQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biApOworICAgICAgICAgICAg
ICAvLyBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5
Tm90Rm91bmRBZnRlckZpeCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9mQm91bmRzICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlN
aXJyb3JlZCApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFp
bGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9J
UENfQ29tcG9zaXRvckluaXRGYWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQpOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29u
bmVjdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZEFm
dGVyTXVsdGlwbGVBdHRlbXB0cyk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RS
SU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZCApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJl
cXVpcmVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9PdmVybGF5SW5pdEZh
aWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURl
dmljZSApOworCisgICAgICAgICAgICAgIC8vIE9jdWx1cworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVj
dFRvT2N1bHVzUnVudGltZSk7CisKKyAgICAgICAgICAgICAgLy8gTGlnaHRob3VzZQorICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVl
c3RDb25maWdTdGFydCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcpOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29u
ZmlnVG9vQmlnICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwgKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb0luaXRaTGliICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRGaXJt
d2FyZVZlcnNpb24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0
ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2Vy
RGF0YUFkZHJlc3NSYW5nZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgKTsKKwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1N0ZWFtX1N0
ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsKKworICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjaGFyIGJ1ZlsxMjhdOworICAgICAg
ICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAiVW5rbm93biBlcnJvciAoJWQpIiwgZUVycm9y
ICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmOworICAgICAgICAgICAgICB9Cisg
ICAgICAgfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL2htZGVycm9yc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZDZjOGE5NmMxMzBjMGFj
ZjFmNGIyYjY0ODZmNWIyOTNkMDdiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaApAQCAtMCwwICsxLDYg
QEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LworI3ByYWdtYSBvbmNlCisKK2NvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJv
ciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKK2NvbnN0IGNoYXIgKkdldElERm9yVlJJbml0
RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICk7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdkMzQ1OGRkYzFkYWFkOGM4OTc4MTA0NTI4ODUyMzA4ZWI5MDgwMTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0
b29sc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsODE5IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQg
VmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJzdHJ0b29sc19wdWJs
aWMuaCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgiCisKKyNpZiBkZWZpbmVkKCBfV0lO
MzIpCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPGRpcmVjdC5oPgorI2luY2x1ZGUg
PHNob2JqaWRsLmg+CisjaW5jbHVkZSA8a25vd25mb2xkZXJzLmg+CisjaW5jbHVkZSA8c2hsb2Jq
Lmg+CisjaW5jbHVkZSA8c2hhcmUuaD4KKworI3VuZGVmIEdldEVudmlyb25tZW50VmFyaWFibGUK
KyNlbHNlCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg
PHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWYgZGVmaW5lZCBPU1gK
KyNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxBcHBLaXQvQXBw
S2l0Lmg+CisjaW5jbHVkZSA8bWFjaC1vL2R5bGQuaD4KKyNkZWZpbmUgX1NfSUZESVIgU19JRkRJ
UiAgICAgLy8gcmVhbGx5IGZyb20gdGllcjAvcGxhdGZvcm0uaCB3aGljaCB3ZSBkb250IGhhdmUg
eWV0CisjZW5kaWYKKworI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNpbmNsdWRlIDxhbGdvcml0
aG0+CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIHRvIHRoZSBj
dXJyZW50IGV4ZWN1dGFibGUgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgo
KQoreworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgd2NoYXJfdCAqcHdjaFBhdGggPSBu
ZXcgd2NoYXJfdFtNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAgICBjaGFyICpwY2hQYXRoID0gbmV3
IGNoYXJbTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4XTsKKyAgICAgICA6OkdldE1vZHVsZUZpbGVO
YW1lVyggTlVMTCwgcHdjaFBhdGgsIE1BWF9VTklDT0RFX1BBVEggKTsKKyAgICAgICBXaWRlQ2hh
clRvTXVsdGlCeXRlKCBDUF9VVEY4LCAwLCBwd2NoUGF0aCwgLTEsIHBjaFBhdGgsIE1BWF9VTklD
T0RFX1BBVEhfSU5fVVRGOCwgTlVMTCwgTlVMTCApOworICAgICAgIGRlbGV0ZVtdIHB3Y2hQYXRo
OworCisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBwY2hQYXRoOworICAgICAgIGRlbGV0ZVtd
IHBjaFBhdGg7CisgICAgICAgcmV0dXJuIHNQYXRoOworI2VsaWYgZGVmaW5lZCggT1NYICkKKyAg
ICAgICBjaGFyIHJjaFBhdGhbMTAyNF07CisgICAgICAgdWludDMyX3QgbkJ1ZmYgPSBzaXplb2Yo
IHJjaFBhdGggKTsKKyAgICAgICBib29sIGJTdWNjZXNzID0gX05TR2V0RXhlY3V0YWJsZVBhdGgo
cmNoUGF0aCwgJm5CdWZmKSA9PSAwOworICAgICAgIHJjaFBhdGhbbkJ1ZmYtMV0gPSAnXDAnOwor
ICAgICAgIGlmKCBiU3VjY2VzcyApCisgICAgICAgICAgICAgIHJldHVybiByY2hQYXRoOworICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworI2VsaWYgZGVmaW5lZCBMSU5VWAor
ICAgICAgIGNoYXIgcmNoUGF0aFsxMDI0XTsKKyAgICAgICBzaXplX3QgbkJ1ZmYgPSBzaXplb2Yo
IHJjaFBhdGggKTsKKyAgICAgICBzc2l6ZV90IG5SZWFkID0gcmVhZGxpbmsoIi9wcm9jL3NlbGYv
ZXhlIiwgcmNoUGF0aCwgbkJ1ZmYtMSApOworICAgICAgIGlmICggblJlYWQgIT0gLTEgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcmNoUGF0aFsgblJlYWQgXSA9IDA7CisgICAgICAgICAgICAg
IHJldHVybiByY2hQYXRoOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAg
ICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorI2Vsc2UKKyAgICAgICBBc3NlcnRNc2coIGZh
bHNlLCAiSW1wbGVtZW50IFBsYXRfR2V0RXhlY3V0YWJsZVBhdGgiICk7CisgICAgICAgcmV0dXJu
ICIiOworI2VuZGlmCisKK30KKworLyoqIFJldHVybnMgdGhlIHBhdGggb2YgdGhlIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0V29ya2luZ0RpcmVjdG9y
eSgpCit7CisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGg7CisjaWYgZGVmaW5lZCggX1dJTjMyICkK
KyAgICAgICB3Y2hhcl90IGJ1ZltNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAgICBzUGF0aCA9IFVU
RjE2dG84KCBfd2dldGN3ZCggYnVmLCBNQVhfVU5JQ09ERV9QQVRIICkgKTsKKyNlbHNlCisgICAg
ICAgY2hhciBidWZbIDEwMjQgXTsKKyAgICAgICBzUGF0aCA9IGdldGN3ZCggYnVmLCBzaXplb2Yo
IGJ1ZiApICk7CisjZW5kaWYKKyAgICAgICByZXR1cm4gc1BhdGg7Cit9CisKKy8qKiBTZXRzIHRo
ZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBSZXR1cm5zIHRydWUgaWYg
dGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KK2Jvb2wgUGF0aF9TZXRXb3JraW5nRGlyZWN0b3J5KCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBib29sIGJTdWNjZXNzOworI2lm
IGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgc3RkOjp3c3RyaW5nIHdzUGF0aCA9IFVURjh0bzE2
KCBzUGF0aC5jX3N0cigpICk7CisgICAgICAgYlN1Y2Nlc3MgPSAwID09IF93Y2hkaXIoIHdzUGF0
aC5jX3N0cigpICk7CisjZWxzZQorICAgICAgIGJTdWNjZXNzID0gMCA9PSBjaGRpciggc1BhdGgu
Y19zdHIoKSApOworI2VuZGlmCisgICAgICAgcmV0dXJuIGJTdWNjZXNzOworfQorCisvKiogUmV0
dXJucyB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aG91dCBpdHMgZmlsZW5hbWUgKi8KK3N0ZDo6c3Ry
aW5nIFBhdGhfU3RyaXBGaWxlbmFtZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBz
bGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9
IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbiA9IHNQ
YXRoLmZpbmRfbGFzdF9vZiggc2xhc2ggKTsKKyAgICAgICBpZiggbiA9PSBzdGQ6OnN0cmluZzo6
bnBvcyApCisgICAgICAgICAgICAgIHJldHVybiBzUGF0aDsKKyAgICAgICBlbHNlCisgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVnaW4oKSwgc1BhdGguYmVnaW4oKSAr
IG4gKTsKK30KKworLyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUgZnJvbSB0aGUgcHJvdmlk
ZWQgZnVsbCBvciByZWxhdGl2ZSBwYXRoLiAqLworc3RkOjpzdHJpbmcgUGF0aF9TdHJpcERpcmVj
dG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAg
aWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsK
KworICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbiA9IHNQYXRoLmZpbmRfbGFzdF9vZigg
c2xhc2ggKTsKKyAgICAgICBpZiggbiA9PSBzdGQ6OnN0cmluZzo6bnBvcyApCisgICAgICAgICAg
ICAgIHJldHVybiBzUGF0aDsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBzdGQ6
OnN0cmluZyggc1BhdGguYmVnaW4oKSArIG4gKyAxLCBzUGF0aC5lbmQoKSApOworfQorCisvKiog
cmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSB3aXRoIG5vIGV4dGVuc2lvbiBvZiB0aGUgcHJvdmlk
ZWQgZmlsZW5hbWUuIAorKiBJZiB0aGVyZSBpcyBhIHBhdGggdGhlIHBhdGggaXMgbGVmdCBpbnRh
Y3QuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRXh0ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNQYXRoICkKK3sKKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpjb25zdF9yZXZlcnNlX2l0
ZXJhdG9yIGkgPSBzUGF0aC5yYmVnaW4oKTsgaSAhPSBzUGF0aC5yZW5kKCk7IGkrKyApCisgICAg
ICAgeworICAgICAgICAgICAgICBpZiggKmkgPT0gJy4nICkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBzUGF0aC5iZWdpbigpLCBpLmJh
c2UoKSAtIDEgKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIGlmIHdlIGZp
bmQgYSBzbGFzaCB0aGVyZSBpcyBubyBleHRlbnNpb24KKyAgICAgICAgICAgICAgaWYoICppID09
ICdcXCcgfHwgKmkgPT0gJy8nICkKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
IH0KKworICAgICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4dGVuc2lvbgorICAgICAgIHJldHVy
biBzUGF0aDsKK30KKworLyoqIHJldHVybnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVk
IGZpbGVuYW1lIChpZiBhbnkpLiAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAgIGZvciAoIHN0ZDo6c3RyaW5nOjpj
b25zdF9yZXZlcnNlX2l0ZXJhdG9yIGkgPSBzUGF0aC5yYmVnaW4oKTsgaSAhPSBzUGF0aC5yZW5k
KCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoICppID09ICcuJyApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggaS5i
YXNlKCksIHNQYXRoLmVuZCgpICk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAv
LyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMgbm8gZXh0ZW5zaW9uCisgICAgICAgICAgICAg
IGlmICggKmkgPT0gJ1xcJyB8fCAqaSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgfQorCisgICAgICAgLy8gd2UgZGlkbid0IGZpbmQgYW4gZXh0ZW5zaW9uCisg
ICAgICAgcmV0dXJuICIiOworfQorCitib29sIFBhdGhfSXNBYnNvbHV0ZSggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgaWYoIHNQYXRoLmVtcHR5KCkgKQorICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKCBXSU4zMiApCisgICAgICAgaWYgKCBz
UGF0aC5zaXplKCkgPCAzICkgLy8gbXVzdCBiZSBjOlx4IG9yIFxceCBhdCBsZWFzdAorICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBpZiAoIHNQYXRoWzFdID09ICc6JyApIC8v
IGRyaXZlIGxldHRlciBwbHVzIHNsYXNoLCBidXQgbXVzdCB0ZXN0IGJvdGggc2xhc2ggY2FzZXMK
KyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggc1BhdGhbMl0gPT0gJ1xcJyB8fCBzUGF0aFsy
XSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgfQor
ICAgICAgIGVsc2UgaWYgKCBzUGF0aFswXSA9PSAnXFwnICYmIHNQYXRoWzFdID09ICdcXCcgKSAv
LyBVTkMgcGF0aAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgICAgaWYo
IHNQYXRoWzBdID09ICdcXCcgfHwgc1BhdGhbMF0gPT0gJy8nICkgLy8gYW55IGxlYWRpbmcgc2xh
c2gKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworICAgICAgIHJldHVybiBm
YWxzZTsKK30KKworCisvKiogTWFrZXMgYW4gYWJzb2x1dGUgcGF0aCBmcm9tIGEgcmVsYXRpdmUg
cGF0aCBhbmQgYSBiYXNlIHBhdGggKi8KK3N0ZDo6c3RyaW5nIFBhdGhfTWFrZUFic29sdXRlKCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jh
c2VQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAgICAg
ICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgaWYoIFBhdGhfSXNBYnNv
bHV0ZSggc1JlbGF0aXZlUGF0aCApICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNSZWxhdGl2ZVBh
dGg7CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoICFQYXRoX0lzQWJz
b2x1dGUoIHNCYXNlUGF0aCApICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKwor
ICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzQ29tcGFjdGVkID0gUGF0aF9Db21wYWN0KCBQYXRo
X0pvaW4oIHNCYXNlUGF0aCwgc1JlbGF0aXZlUGF0aCwgc2xhc2ggKSwgc2xhc2ggKTsKKyAgICAg
ICAgICAgICAgaWYoIFBhdGhfSXNBYnNvbHV0ZSggc0NvbXBhY3RlZCApICkKKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzQ29tcGFjdGVkOworICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorfQorCisKKy8qKiBGaXhlcyB0aGUg
ZGlyZWN0b3J5IHNlcGFyYXRvcnMgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtICovCitzdGQ6OnN0
cmluZyBQYXRoX0ZpeFNsYXNoZXMoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xh
c2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQ
YXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzRml4ZWQgPSBzUGF0aDsKKyAg
ICAgICBmb3IoIHN0ZDo6c3RyaW5nOjppdGVyYXRvciBpID0gc0ZpeGVkLmJlZ2luKCk7IGkgIT0g
c0ZpeGVkLmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoICppID09ICcv
JyB8fCAqaSA9PSAnXFwnICkKKyAgICAgICAgICAgICAgICAgICAgICppID0gc2xhc2g7CisgICAg
ICAgfQorCisgICAgICAgcmV0dXJuIHNGaXhlZDsKK30KKworCitjaGFyIFBhdGhfR2V0U2xhc2go
KQoreworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAgIHJldHVybiAnXFwnOworI2Vsc2UKKyAg
ICAgICByZXR1cm4gJy8nOworI2VuZGlmCit9CisKKy8qKiBKYW1zIHR3byBwYXRocyB0b2dldGhl
ciB3aXRoIHRoZSByaWdodCBraW5kIG9mIHNsYXNoICovCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4o
IGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBj
aGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNs
YXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgLy8gb25seSBpbnNlcnQgYSBzbGFzaCBp
ZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgb25lCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlw
ZSBuTGVuID0gZmlyc3QubGVuZ3RoKCk7CisgICAgICAgaWYoICFuTGVuICkKKyAgICAgICAgICAg
ICAgcmV0dXJuIHNlY29uZDsKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyAgICAgICBpZiggZmlyc3Qu
YmFjaygpID09ICdcXCcgfHwgZmlyc3QuYmFjaygpID09ICcvJyApCisgICAgICAgICAgIG5MZW4t
LTsKKyNlbHNlCisgICAgICAgY2hhciBsYXN0X2NoYXIgPSBmaXJzdFtmaXJzdC5sZW5ndGgoKS0x
XTsKKyAgICAgICBpZiAobGFzdF9jaGFyID09ICdcXCcgfHwgbGFzdF9jaGFyID09ICcvJykKKyAg
ICAgICAgICAgbkxlbi0tOworI2VuZGlmCisKKyAgICAgICByZXR1cm4gZmlyc3Quc3Vic3RyKCAw
LCBuTGVuICkgKyBzdGQ6OnN0cmluZyggMSwgc2xhc2ggKSArIHNlY29uZDsKK30KKworCitzdGQ6
OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc2Vjb25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoICkK
K3sKKyAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNs
YXNoICksIHRoaXJkLCBzbGFzaCApOworfQorCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0
IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjb25zdCBz
dGQ6OnN0cmluZyAmIHRoaXJkLCBjb25zdCBzdGQ6OnN0cmluZyAmZm91cnRoLCBjaGFyIHNsYXNo
ICkKK3sKKyAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhfSm9pbiggZmly
c3QsIHNlY29uZCwgc2xhc2ggKSwgdGhpcmQsIHNsYXNoICksIGZvdXJ0aCwgc2xhc2ggKTsKK30K
Kworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZp
cnN0LCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgCisgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcgJiB0aGlyZCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmb3VydGgs
IAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlmdGgsIAorICAgICAgIGNoYXIgc2xhc2gg
KQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRo
X0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJkLCBzbGFzaCApLCBmb3VydGgsIHNs
YXNoICksIGZpZnRoLCBzbGFzaCApOworfQorCisKK3N0ZDo6c3RyaW5nIFBhdGhfUmVtb3ZlVHJh
aWxpbmdTbGFzaCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCApCit7
CisgICAgICAgaWYgKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dl
dFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IHNSYXdQYXRoOworICAgICAg
IHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbkN1cnJlbnQgPSBzUmF3UGF0aC5sZW5ndGgoKTsKKyAg
ICAgICBpZiAoIG5DdXJyZW50ID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7CisK
KyAgICAgICBpbnQgbkxhc3RGb3VuZCA9IC0xOworICAgICAgIG5DdXJyZW50LS07CisgICAgICAg
d2hpbGUoIG5DdXJyZW50ICE9IDAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBzUmF3
UGF0aFsgbkN1cnJlbnQgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIG5MYXN0Rm91bmQgPSAoaW50KW5DdXJyZW50OworICAgICAgICAgICAgICAgICAg
ICAgbkN1cnJlbnQtLTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICBpZiAoIG5MYXN0Rm91bmQgPj0gMCAp
CisgICAgICAgeworICAgICAgICAgICAgICBzUGF0aC5lcmFzZSggbkxhc3RGb3VuZCwgc3RkOjpz
dHJpbmc6Om5wb3MgKTsKKyAgICAgICB9CisgICAgICAgCisgICAgICAgcmV0dXJuIHNQYXRoOwor
fQorCisKKy8qKiBSZW1vdmVzIHJlZHVuZGFudCA8ZGlyPi8uLiBlbGVtZW50cyBpbiB0aGUgcGF0
aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRoIGlmIHRoZSAKKyogc3BlY2lmaWVkIHBhdGggaGFzIGEg
YnJva2VuIG51bWJlciBvZiBkaXJlY3RvcmllcyBmb3IgaXRzIG51bWJlciBvZiAuLnMgKi8KK3N0
ZDo6c3RyaW5nIFBhdGhfQ29tcGFjdCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hh
ciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFz
aCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gUGF0aF9G
aXhTbGFzaGVzKCBzUmF3UGF0aCwgc2xhc2ggKTsKKyAgICAgICBzdGQ6OnN0cmluZyBzU2xhc2hT
dHJpbmcoIDEsIHNsYXNoICk7CisKKyAgICAgICAvLyBzdHJpcCBvdXQgYWxsIC8uLworICAgICAg
IGZvciggc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpID0gMDsgKGkgKyAzKSA8IHNQYXRoLmxlbmd0
aCgpOyAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIHNQYXRoWyBpIF0gPT0gc2xhc2gg
JiYgc1BhdGhbIGkrMSBdID09ICcuJyAmJiBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBpLCAzLCBzU2xh
c2hTdHJpbmcgKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgIH0KKworCisgICAgICAgLy8gZ2V0IHJpZCBvZiB0cmFpbGluZyAvLiBidXQgbGVhdmUgdGhl
IHBhdGggc2VwYXJhdG9yCisgICAgICAgaWYoIHNQYXRoLmxlbmd0aCgpID4gMiApCisgICAgICAg
eworICAgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGxlbiA9IHNQYXRoLmxlbmd0
aCgpOworICAgICAgICAgICAgICBpZiggc1BhdGhbIGxlbi0xIF0gPT0gJy4nICAmJiBzUGF0aFsg
bGVuLTIgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBz
UGF0aC5wb3BfYmFjaygpOworICAgICAgICAgICAgICAgIHNQYXRoW2xlbi0xXSA9IDA7ICAvLyBm
b3Igbm93LCBhdCBsZWFzdAorICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgLy8g
Z2V0IHJpZCBvZiBsZWFkaW5nIC4vIAorICAgICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIHNQYXRoWyAwIF0gPT0gJy4nICAmJiBzUGF0aFsg
MSBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc1Bh
dGgucmVwbGFjZSggMCwgMiwgIiIgKTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAg
ICAgIC8vIGVhY2ggdGltZSB3ZSBlbmNvdW50ZXIgLi4gYmFjayB1cCB1bnRpbCB3ZSd2ZSBmb3Vu
ZCB0aGUgcHJldmlvdXMgZGlyZWN0b3J5IG5hbWUKKyAgICAgICAvLyB0aGVuIGdldCByaWQgb2Yg
Ym90aAorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7CisgICAgICAgd2hpbGUo
IGkgPCBzUGF0aC5sZW5ndGgoKSApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggaSA+IDAg
JiYgc1BhdGgubGVuZ3RoKCkgLSBpID49IDIgCisgICAgICAgICAgICAgICAgICAgICAmJiBzUGF0
aFtpXSA9PSAnLicKKyAgICAgICAgICAgICAgICAgICAgICYmIHNQYXRoW2krMV0gPT0gJy4nCisg
ICAgICAgICAgICAgICAgICAgICAmJiAoIGkgKyAyID09IHNQYXRoLmxlbmd0aCgpIHx8IHNQYXRo
WyBpKzIgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgICAgICAgICAmJiBzUGF0aFsgaS0xIF0g
PT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAvLyBjaGVj
ayBpZiB3ZSd2ZSBoaXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcgYW5kIGhhdmUgYSBib2d1cyBw
YXRoCisgICAgICAgICAgICAgICAgICAgICBpZiggaSA9PSAxICkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgIC8vIGZpbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgaS0xCisgICAgICAgICAgICAg
ICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGlEaXJTdGFydCA9IGktMjsKKyAgICAgICAg
ICAgICAgICAgICAgIHdoaWxlKCBpRGlyU3RhcnQgPiAwICYmIHNQYXRoWyBpRGlyU3RhcnQgLSAx
IF0gIT0gc2xhc2ggKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taURpclN0YXJ0Owor
CisgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZXZlcnl0aGluZyBmcm9tIGlEaXJTdGFy
dCB0byBpKzIKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRoLnJlcGxhY2UoIGlEaXJTdGFydCwg
KGkgLSBpRGlyU3RhcnQpICsgMywgIiIgKTsKKworICAgICAgICAgICAgICAgICAgICAgLy8gc3Rh
cnQgb3ZlcgorICAgICAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAr
K2k7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc1BhdGg7Cit9
CisKKworLyoqIFJldHVybnMgdGhlIHBhdGggdG8gdGhlIGN1cnJlbnQgRExMIG9yIGV4ZSAqLwor
c3RkOjpzdHJpbmcgUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCgpCit7CisgICAgICAgLy8gZ2V0cyB0
aGUgcGF0aCBvZiB2cmNsaWVudC5kbGwgaXRzZWxmCisjaWZkZWYgV0lOMzIKKyAgICAgICBITU9E
VUxFIGhtb2R1bGUgPSBOVUxMOworCisgICAgICAgOjpHZXRNb2R1bGVIYW5kbGVFeCggR0VUX01P
RFVMRV9IQU5ETEVfRVhfRkxBR19GUk9NX0FERFJFU1MgfCBHRVRfTU9EVUxFX0hBTkRMRV9FWF9G
TEFHX1VOQ0hBTkdFRF9SRUZDT1VOVCwgcmVpbnRlcnByZXRfY2FzdDxMUENUU1RSPihQYXRoX0dl
dFRoaXNNb2R1bGVQYXRoKSwgJmhtb2R1bGUgKTsKKworICAgICAgIHdjaGFyX3QgKnB3Y2hQYXRo
ID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNPREVfUEFUSF07CisgICAgICAgY2hhciAqcGNoUGF0aCA9
IG5ldyBjaGFyWyBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggXTsKKyAgICAgICA6OkdldE1vZHVs
ZUZpbGVOYW1lVyggaG1vZHVsZSwgcHdjaFBhdGgsIE1BWF9VTklDT0RFX1BBVEggKTsKKyAgICAg
ICBXaWRlQ2hhclRvTXVsdGlCeXRlKCBDUF9VVEY4LCAwLCBwd2NoUGF0aCwgLTEsIHBjaFBhdGgs
IE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCwgTlVMTCwgTlVMTCApOworICAgICAgIGRlbGV0ZVtd
IHB3Y2hQYXRoOworCisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBwY2hQYXRoOworICAgICAg
IGRlbGV0ZSBbXSBwY2hQYXRoOworICAgICAgIHJldHVybiBzUGF0aDsKKworI2VsaWYgZGVmaW5l
ZCggT1NYICkgfHwgZGVmaW5lZCggTElOVVggKQorICAgICAgIC8vIGdldCB0aGUgYWRkciBvZiBh
IGZ1bmN0aW9uIGluIHZyY2xpZW50LnNvIGFuZCB0aGVuIGFzayB0aGUgZGxvcGVuIHN5c3RlbSBh
Ym91dCBpdAorICAgICAgIERsX2luZm8gaW5mbzsKKyAgICAgICBkbGFkZHIoICh2b2lkICopUGF0
aF9HZXRUaGlzTW9kdWxlUGF0aCwgJmluZm8gKTsKKyAgICAgICByZXR1cm4gaW5mby5kbGlfZm5h
bWU7CisjZW5kaWYKKworfQorCisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBw
YXRoIGV4aXN0cyBhbmQgaXMgYSBkaXJlY3RvcnkgKi8KK2Jvb2wgUGF0aF9Jc0RpcmVjdG9yeSgg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVk
UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKKyAgICAgICBpZiggc0ZpeGVkUGF0aC5l
bXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIGNoYXIgY0xhc3Qg
PSBzRml4ZWRQYXRoWyBzRml4ZWRQYXRoLmxlbmd0aCgpIC0gMSBdOworICAgICAgIGlmKCBjTGFz
dCA9PSAnLycgfHwgY0xhc3QgPT0gJ1xcJyApCisgICAgICAgICAgICAgIHNGaXhlZFBhdGguZXJh
c2UoIHNGaXhlZFBhdGguZW5kKCkgLSAxLCBzRml4ZWRQYXRoLmVuZCgpICk7CisKKyAgICAgICAv
LyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVhbGx5IGV4aXN0cy4KKworI2lmIGRlZmlu
ZWQoUE9TSVgpCisgICAgICAgc3RydWN0ICAgICAgIHN0YXQgICAgICAgYnVmOworICAgICAgIGlm
ICggc3RhdCggc0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworI2lmIGRlZmluZWQoIExJTlVY
ICkgfHwgZGVmaW5lZCggT1NYICkKKyAgICAgICByZXR1cm4gU19JU0RJUiggYnVmLnN0X21vZGUg
KTsKKyNlbHNlCisgICAgICAgcmV0dXJuIChidWYuc3RfbW9kZSAmIF9TX0lGRElSKSAhPSAwOwor
I2VuZGlmCisKKyNlbHNlCisgICAgICAgc3RydWN0ICAgICAgIF9zdGF0ICAgICAgIGJ1ZjsKKyAg
ICAgICBzdGQ6OndzdHJpbmcgd3NGaXhlZFBhdGggPSBVVEY4dG8xNiggc0ZpeGVkUGF0aC5jX3N0
cigpICk7CisgICAgICAgaWYgKCBfd3N0YXQoIHdzRml4ZWRQYXRoLmNfc3RyKCksICZidWYgKSA9
PSAtMSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQor
CisgICAgICAgcmV0dXJuIChidWYuc3RfbW9kZSAmIF9TX0lGRElSKSAhPSAwOworI2VuZGlmCit9
CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIHJlcHJlc2VudHMgYW4g
YXBwIGJ1bmRsZSAqLworYm9vbCBQYXRoX0lzQXBwQnVuZGxlKCBjb25zdCBzdGQ6OnN0cmluZyAm
IHNQYXRoICkKK3sKKyNpZiBkZWZpbmVkKE9TWCkKKyAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0g
WyBOU0J1bmRsZSBidW5kbGVXaXRoUGF0aDogWyBOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmlu
ZzpzUGF0aC5jX3N0cigpIF0gXTsKKyAgICAgICBib29sIGJpc0FwcEJ1bmRsZSA9ICggbnVsbHB0
ciAhPSBidW5kbGUgKTsKKyAgICAgICBbIGJ1bmRsZSByZWxlYXNlIF07CisgICAgICAgcmV0dXJu
IGJpc0FwcEJ1bmRsZTsKKyNlbHNlCisgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IHJldHVybnMgdHJ1ZSBpZiB0aGUg
dGhlIHBhdGggZXhpc3RzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIFBhdGhfRXhpc3Rz
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzRml4
ZWRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOworICAgICAgIGlmKCBzRml4ZWRQYXRo
LmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKCBX
SU4zMiApCisgICAgICAgc3RydWN0ICAgICAgIF9zdGF0ICAgICAgIGJ1ZjsKKyAgICAgICBzdGQ6
OndzdHJpbmcgd3NGaXhlZFBhdGggPSBVVEY4dG8xNiggc0ZpeGVkUGF0aC5jX3N0cigpICk7Cisg
ICAgICAgaWYgKCBfd3N0YXQoIHdzRml4ZWRQYXRoLmNfc3RyKCksICZidWYgKSA9PSAtMSApCisg
ICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorI2Vsc2UKKyAg
ICAgICBzdHJ1Y3Qgc3RhdCBidWY7CisgICAgICAgaWYgKCBzdGF0ICggc0ZpeGVkUGF0aC5jX3N0
cigpLCAmYnVmICkgPT0gLTEpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorI2VuZGlmCisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBhIGRpcmVjdG9yeSB1
cHN0cmVhbSBmcm9tIGEgZ2l2ZW4gcGF0aAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpz
dHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3Ry
aW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5h
bWUgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0aCA9ICIiOworICAgICAgIHN0
ZDo6c3RyaW5nIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzdHJTdGFydERpcmVj
dG9yeSApOworICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgPT0gMCApCisgICAg
ICAgICAgICAgIHJldHVybiAiIjsKKworICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfRXhpc3Rz
KCBzdHJDdXJyZW50UGF0aCApOworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckN1cnJlbnREaXJlY3Rv
cnlOYW1lID0gUGF0aF9TdHJpcERpcmVjdG9yeSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICBp
ZiAoIGJFeGlzdHMgJiYgc3RyaWNtcCggc3RyQ3VycmVudERpcmVjdG9yeU5hbWUuY19zdHIoKSwg
c3RyRGlyZWN0b3J5TmFtZS5jX3N0cigpICkgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiBz
dHJDdXJyZW50UGF0aDsKKworICAgICAgIHdoaWxlKCBiRXhpc3RzICYmIHN0ckN1cnJlbnRQYXRo
Lmxlbmd0aCgpICE9IDAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RyQ3VycmVudFBhdGgg
PSBQYXRoX1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgICAgICAgIHN0
ckN1cnJlbnREaXJlY3RvcnlOYW1lID0gUGF0aF9TdHJpcERpcmVjdG9yeSggc3RyQ3VycmVudFBh
dGggKTsKKyAgICAgICAgICAgICAgYkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJyZW50UGF0
aCApOworICAgICAgICAgICAgICBpZiAoIGJFeGlzdHMgJiYgc3RyaWNtcCggc3RyQ3VycmVudERp
cmVjdG9yeU5hbWUuY19zdHIoKSwgc3RyRGlyZWN0b3J5TmFtZS5jX3N0cigpICkgPT0gMCApCisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RyQ3VycmVudFBhdGg7CisgICAgICAgfQorCisg
ICAgICAgcmV0dXJuICIiOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBv
c2U6IGhlbHBlciB0byBmaW5kIGEgc3ViZGlyZWN0b3J5IHVwc3RyZWFtIGZyb20gYSBnaXZlbiBw
YXRoCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnRT
dWJEaXJlY3RvcnlSZWN1cnNpdmVseSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0clN0YXJ0RGlyZWN0
b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRGlyZWN0b3J5TmFtZSApCit7CisgICAgICAgc3Rk
OjpzdHJpbmcgc3RyRm91bmRQYXRoID0gIiI7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyQ3VycmVu
dFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHN0clN0YXJ0RGlyZWN0b3J5ICk7CisgICAgICAgaWYg
KCBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJuICIi
OworCisgICAgICAgYm9vbCBiRXhpc3RzID0gUGF0aF9FeGlzdHMoIHN0ckN1cnJlbnRQYXRoICk7
CisgICAgICAgd2hpbGUoIGJFeGlzdHMgJiYgc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgIT0gMCAp
CisgICAgICAgeworICAgICAgICAgICAgICBzdHJDdXJyZW50UGF0aCA9IFBhdGhfU3RyaXBGaWxl
bmFtZSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAgICAgYkV4aXN0cyA9IFBhdGhfRXhp
c3RzKCBzdHJDdXJyZW50UGF0aCApOworCisgICAgICAgICAgICAgIGlmKCBQYXRoX0V4aXN0cygg
UGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3RyRGlyZWN0b3J5TmFtZSApICkgKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzdHJGb3VuZFBhdGggPSBQYXRoX0pvaW4o
IHN0ckN1cnJlbnRQYXRoLCBzdHJEaXJlY3RvcnlOYW1lICk7CisgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICByZXR1cm4gc3RyRm91
bmRQYXRoOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IHJlYWRp
bmcgYW5kIHdyaXRpbmcgZmlsZXMgaW4gdGhlIHZvcnRleCBkaXJlY3RvcnkKKy8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK3Vuc2lnbmVkIGNoYXIgKiBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25zdCBz
dGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGludCAqcFNpemUgKQoreworICAgICAgIEZJTEUgKmY7
CisjaWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbiggc3RyRmlsZW5hbWUuY19z
dHIoKSwgInJiIiApOworI2Vsc2UKKyAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0g
VVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICAvLyB0aGUgb3BlbiBvcGVy
YXRpb24gbmVlZHMgdG8gYmUgc2hhcmFibGUsIHRoZXJlZm9yZSB1c2Ugb2YgX3dmc29wZW4gaW5z
dGVhZCBvZiBfd2ZvcGVuX3MKKyAgICAgICBmID0gX3dmc29wZW4oIHdzdHJGaWxlbmFtZS5jX3N0
cigpLCBMInJiIiwgX1NIX0RFTllOTyApOworI2VuZGlmCisgICAgICAgCisgICAgICAgdW5zaWdu
ZWQgY2hhciogYnVmID0gTlVMTDsKKworICAgICAgIGlmICggZiAhPSBOVUxMICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNFRUtfRU5EKTsKKyAgICAgICAgICAgICAgaW50
IHNpemUgPSBmdGVsbChmKTsKKyAgICAgICAgICAgICAgZnNlZWsoZiwgMCwgU0VFS19TRVQpOwor
CisgICAgICAgICAgICAgIGJ1ZiA9IG5ldyB1bnNpZ25lZCBjaGFyW3NpemVdOworICAgICAgICAg
ICAgICBpZiAoYnVmICYmIGZyZWFkKGJ1Ziwgc2l6ZSwgMSwgZikgPT0gMSkKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKHBTaXplKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICpwU2l6ZSA9IHNpemU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBkZWxldGVbXSBidWY7
CisgICAgICAgICAgICAgICAgICAgICBidWYgPSAwOworICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKworICAgICAgIHJldHVybiBidWY7Cit9CisK
K3VpbnQzMl90ICBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmls
ZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IHVuU2l6ZSApCit7CisgICAg
ICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgZiA9IGZvcGVuKCBzdHJG
aWxlbmFtZS5jX3N0cigpLCAicmIiICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3Ry
RmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVycm5v
X3QgZXJyID0gX3dmb3Blbl9zKCAmZiwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwicmIiICk7Cisg
ICAgICAgaWYgKCBlcnIgIT0gMCApCisgICAgICAgeworICAgICAgICAgICAgICBmID0gTlVMTDsK
KyAgICAgICB9CisjZW5kaWYKKworICAgICAgIHVpbnQzMl90IHVuU2l6ZVRvUmV0dXJuID0gMDsK
KworICAgICAgIGlmICggZiAhPSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGZzZWVr
KCBmLCAwLCBTRUVLX0VORCApOworICAgICAgICAgICAgICB1aW50MzJfdCBzaXplID0gKHVpbnQz
Ml90KWZ0ZWxsKCBmICk7CisgICAgICAgICAgICAgIGZzZWVrKCBmLCAwLCBTRUVLX1NFVCApOwor
CisgICAgICAgICAgICAgIGlmICggc2l6ZSA+IHVuU2l6ZSB8fCAhcEJ1ZmZlciApCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJuID0gKHVpbnQzMl90
KXNpemU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIGZyZWFkKCBwQnVmZmVyLCBzaXplLCAxLCBm
ICkgPT0gMSApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5TaXplVG9SZXR1cm4gPSAodWludDMyX3Qpc2l6ZTsKKyAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGZjbG9zZSggZiApOworICAg
ICAgIH0KKworICAgICAgIHJldHVybiB1blNpemVUb1JldHVybjsKK30KKworYm9vbCBQYXRoX1dy
aXRlQmluYXJ5RmlsZShjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNo
YXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRlZmlu
ZWQoIFBPU0lYICkKKyAgICAgICBmID0gZm9wZW4oc3RyRmlsZW5hbWUuY19zdHIoKSwgIndiIik7
CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3RyRmlsZW5hbWUgPSBVVEY4dG8xNiggc3Ry
RmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVycm5vX3QgZXJyID0gX3dmb3Blbl9zKCAmZiwg
d3N0ckZpbGVuYW1lLmNfc3RyKCksIEwid2IiICk7CisgICAgICAgaWYgKGVyciAhPSAwKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7CisgICAgICAgfQorI2VuZGlmCisKKyAgICAg
ICBzaXplX3Qgd3JpdHRlbiA9IDA7CisgICAgICAgaWYgKGYgIT0gTlVMTCkgeworICAgICAgICAg
ICAgICB3cml0dGVuID0gZndyaXRlKHBEYXRhLCBzaXplb2YodW5zaWduZWQgY2hhciksIG5TaXpl
LCBmKTsKKyAgICAgICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKworICAgICAgIHJldHVy
biB3cml0dGVuID0gblNpemUgPyB0cnVlIDogZmFsc2U7Cit9CisKK3N0ZDo6c3RyaW5nIFBhdGhf
UmVhZFRleHRGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUgKQoreworICAgICAg
IC8vIGRvaW5nIGl0IHRoaXMgd2F5IHNlZW1zIGJhY2t3YXJkcywgYnV0IEkgZG9uJ3QKKyAgICAg
ICAvLyBzZWUgYW4gZWFzeSB3YXkgdG8gZG8gdGhpcyB3aXRoIEMvQysrIHN0eWxlIElPCisgICAg
ICAgLy8gdGhhdCBpc24ndCB3b3JzZS4uLgorICAgICAgIGludCBzaXplOworICAgICAgIHVuc2ln
bmVkIGNoYXIqIGJ1ZiA9IFBhdGhfUmVhZEJpbmFyeUZpbGUoIHN0ckZpbGVuYW1lLCAmc2l6ZSAp
OworICAgICAgIGlmICghYnVmKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAv
LyBjb252ZXJ0IENSTEYgLT4gTEYKKyAgICAgICBzaXplX3Qgb3V0c2l6ZSA9IDE7CisgICAgICAg
Zm9yIChpbnQgaT0xOyBpIDwgc2l6ZTsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYg
KGJ1ZltpXSA9PSAnXG4nICYmIGJ1ZltpLTFdID09ICdccicpIC8vIENSTEYKKyAgICAgICAgICAg
ICAgICAgICAgIGJ1ZltvdXRzaXplLTFdID0gJ1xuJzsgLy8gLT5MRgorICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICBidWZbb3V0c2l6ZSsrXSA9IGJ1ZltpXTsgLy8ganVz
dCBjb3B5CisgICAgICAgfQorCisgICAgICAgc3RkOjpzdHJpbmcgcmV0KChjaGFyICopYnVmLCBv
dXRzaXplKTsKKyAgICAgICBkZWxldGVbXSBidWY7CisgICAgICAgcmV0dXJuIHJldDsKK30KKwor
Citib29sIFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3Ry
RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaERhdGEgKQoreworICAgICAgIEZJTEUgKmY7CisjaWYg
ZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwg
InciICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3RyRmlsZW5hbWUgPSBVVEY4dG8x
Niggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVycm5vX3QgZXJyID0gX3dmb3Blbl9z
KCAmZiwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwidyIgKTsKKyAgICAgICBpZiAoIGVyciAhPSAw
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGYgPSBOVUxMOworICAgICAgIH0KKyNlbmRpZgor
ICAgICAgIAorICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKworICAgICAgIGlmICggZiAhPSBOVUxM
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIG9rID0gZnB1dHMoIHBjaERhdGEsIGYpID49IDA7
CisgICAgICAgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gb2s7
Cit9CisKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGVBdG9taWMoIGNvbnN0IHN0ZDo6
c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCit7CisgICAgICAgc3Rk
OjpzdHJpbmcgc3RyVG1wRmlsZW5hbWUgPSBzdHJGaWxlbmFtZSArICIudG1wIjsKKworICAgICAg
IGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJUbXBGaWxlbmFtZSwgcGNoRGF0
YSApICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgLy8gUGxhdGZvcm0g
c3BlY2lmaWMgYXRvbWljIGZpbGUgcmVwbGFjZW1lbnQKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQor
ICAgICAgIHN0ZDo6d3N0cmluZyB3c0ZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNf
c3RyKCkgKTsKKyAgICAgICBzdGQ6OndzdHJpbmcgd3NUbXBGaWxlbmFtZSA9IFVURjh0bzE2KCBz
dHJUbXBGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgaWYgKCAhOjpSZXBsYWNlRmlsZVcoIHdz
RmlsZW5hbWUuY19zdHIoKSwgd3NUbXBGaWxlbmFtZS5jX3N0cigpLCBudWxscHRyLCAwLCAwLCAw
ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gaWYgd2UgY291bGRuJ3QgUmVwbGFjZUZp
bGUsIHRyeSBhIG5vbi1hdG9taWMgd3JpdGUgYXMgYSBmYWxsYmFjaworICAgICAgICAgICAgICBp
ZiAoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggc3RyRmlsZW5hbWUsIHBjaERhdGEgKSAp
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorI2VsaWYgZGVm
aW5lZCggUE9TSVggKQorICAgICAgIGlmICggcmVuYW1lKCBzdHJUbXBGaWxlbmFtZS5jX3N0cigp
LCBzdHJGaWxlbmFtZS5jX3N0cigpICkgPT0gLTEgKQorICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisjZWxzZQorI2Vycm9yIERvIG5vdCBrbm93IGhvdyB0byB3cml0ZSBhdG9taWMgZmlsZQor
I2VuZGlmCisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisjaWYgZGVmaW5lZChXSU4zMikK
KyNkZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vLyIKKyNlbHNlCisjZGVmaW5lIEZJTEVf
VVJMX1BSRUZJWCAiZmlsZTovLyIKKyNlbmRpZgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBUdXJucyBhIHBhdGggdG8gYSBmaWxlIG9uIGRpc2sgaW50byBhIFVSTCAob3IganVzdCByZXR1
cm5zIHRoZSB2YWx1ZSBpZiBpdCdzIGFscmVhZHkgYSBVUkwpCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6
OnN0cmluZyBQYXRoX0ZpbGVQYXRoVG9VcmwoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0aXZl
UGF0aCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzQmFzZVBhdGggKQoreworICAgICAgIGlmICggIXN0
cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRwOi8vIiwgNyApCisgICAgICAgICAg
ICAgIHx8ICFzdHJuaWNtcCggc1JlbGF0aXZlUGF0aC5jX3N0cigpLCAiaHR0cHM6Ly8iLCA4ICkK
KyAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJmaWxl
Oi8vIiwgNyApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBzUmVsYXRpdmVQYXRo
OworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICBzdGQ6OnN0
cmluZyBzQWJzb2x1dGUgPSBQYXRoX01ha2VBYnNvbHV0ZSggc1JlbGF0aXZlUGF0aCwgc0Jhc2VQ
YXRoICk7CisgICAgICAgICAgICAgIGlmICggc0Fic29sdXRlLmVtcHR5KCkgKQorICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHNBYnNvbHV0ZTsKKyAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
c3RyaW5nKCBGSUxFX1VSTF9QUkVGSVggKSArIHNBYnNvbHV0ZTsKKyAgICAgICB9Cit9CisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBTdHJpcHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Ig
b3RoZXIga2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBQYXRo
X1VybFRvRmlsZVBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0ZpbGVVcmwgKQoreworICAgICAg
IGlmICggIXN0cm5pY21wKCBzRmlsZVVybC5jX3N0cigpLCBGSUxFX1VSTF9QUkVGSVgsIHN0cmxl
biggRklMRV9VUkxfUFJFRklYICkgKSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4g
c0ZpbGVVcmwuY19zdHIoKSArIHN0cmxlbiggRklMRV9VUkxfUFJFRklYICk7CisgICAgICAgfQor
ICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICB9
Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
Ky8vIFB1cnBvc2U6IFJldHVybnMgdGhlIHJvb3Qgb2YgdGhlIGRpcmVjdG9yeSB0aGUgc3lzdGVt
IHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgZG9jdW1lbnRzIGluCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgR2V0VXNlckRvY3VtZW50
c1BhdGgoKQoreworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBXQ0hBUiByd2NoUGF0aFtN
QVhfUEFUSF07CisKKyAgICAgICBpZiAoICFTVUNDRUVERUQoIFNIR2V0Rm9sZGVyUGF0aFcoIE5V
TEwsIENTSURMX01ZRE9DVU1FTlRTIHwgQ1NJRExfRkxBR19DUkVBVEUsIE5VTEwsIDAsIHJ3Y2hQ
YXRoICkgKSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQor
CisgICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBVVEYtOCBhbmQgc3RvcmUgaW4gdGhlIG91
dHB1dAorICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCA9IFVURjE2dG84KCByd2NoUGF0aCAp
OworCisgICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKKyNlbGlmIGRlZmluZWQoIE9TWCApCisgICAg
ICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICAgIE5TQXJyYXkgKnBhdGhzID0gTlNT
ZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoIE5TRG9jdW1lbnREaXJlY3RvcnksIE5T
VXNlckRvbWFpbk1hc2ssIFlFUyApOworICAgICAgICAgICAgICBpZiAoIFtwYXRocyBjb3VudF0g
PT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgcmV0dXJuIFtb
cGF0aHMgb2JqZWN0QXRJbmRleDowXSBVVEY4U3RyaW5nXTsKKyAgICAgICB9CisjZWxpZiBkZWZp
bmVkKCBMSU5VWCApCisgICAgICAgLy8gQHRvZG86IG5vdCBzb2x2ZWQvY2hhbmdlZCBhcyBwYXJ0
IG9mIE9TWCAtIHN0aWxsIG5vdCByZWFsIC0ganVzdCByZW1vdmVkIG9sZCBjbGFzcyBiYXNlZCBz
dGVhbSBjdXQgYW5kIHBhc3RlCisgICAgICAgY29uc3QgY2hhciAqcGNoSG9tZSA9IGdldGVudigg
IkhPTUUiICk7CisgICAgICAgaWYgKCBwY2hIb21lID09IE5VTEwgKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKyAgICAgICByZXR1cm4gcGNoSG9tZTsKKyNl
bmRpZgorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL3BhdGh0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5NTdjNjRkNzM3YThjMTE2MDRm
YTU4NmE0MjJhYzA4MTIyY2E1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDEzMiBA
QAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8v
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxzdGRpbnQuaD4K
KworLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFtZSkgdG8gdGhlIGN1cnJl
bnQgZXhlY3V0YWJsZSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRFeGVjdXRhYmxlUGF0aCgpOwor
CisvKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSAq
Lworc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KCk7CisKKy8qKiBTZXRzIHRo
ZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBSZXR1cm5zIHRydWUgaWYg
dGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KK2Jvb2wgUGF0aF9TZXRXb3JraW5nRGlyZWN0b3J5KCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIHRoZSBwYXRoIChpbmNs
dWRpbmcgZmlsZW5hbWUpIG9mIHRoZSBjdXJyZW50IHNoYXJlZCBsaWIgb3IgRExMICovCitzdGQ6
OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCk7CisKKy8qKiBSZXR1cm5zIHRoZSBzcGVj
aWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZS4KKyogSWYgc2xhc2ggaXMgdW5zcGVjaWZp
ZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybQorKiB3
aWxsIGJlIHVzZWQuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5hbWUoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5zIGp1c3Qg
dGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUgcGF0aC4gKi8K
K3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIHdp
dGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZS4gCisqIElmIHRoZXJlIGlz
IGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGludGFjdC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3Ry
aXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVybnMg
anVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lIChpZiBhbnkpLiAqLworc3Rk
OjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsK
KworLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0ZSAqLworYm9vbCBQYXRo
X0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIE1ha2VzIGFu
IGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRoICovCitz
dGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRp
dmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCA9IDAgKTsK
KworLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3IgdGhlIGN1cnJlbnQgcGxh
dGZvcm0uCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRpdmUgcGF0aCBzZXBhcmF0
b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBiZSB1c2VkLiAqLworc3RkOjpzdHJp
bmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNsYXNo
ID0gMCApOworCisvKiogUmV0dXJucyB0aGUgcGF0aCBzZXBhcmF0b3IgZm9yIHRoZSBjdXJyZW50
IHBsYXRmb3JtICovCitjaGFyIFBhdGhfR2V0U2xhc2goKTsKKworLyoqIEphbXMgdHdvIHBhdGhz
IHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8KK3N0ZDo6c3RyaW5nIFBh
dGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBz
ZWNvbmQsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0
ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjb25zdCBzdGQ6
OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoID0gMCApOworc3RkOjpzdHJpbmcgUGF0aF9Kb2lu
KCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwg
Y29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwgY2hh
ciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCisgICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcgJiBmaXJzdCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIAor
ICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAorICAgICAgIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgZm91cnRoLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZpZnRoLCAKKyAgICAg
ICBjaGFyIHNsYXNoID0gMCApOworCisKKy8qKiBSZW1vdmVzIHJlZHVuZGFudCA8ZGlyPi8uLiBl
bGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRoIGlmIHRoZSAKKyogc3Bl
Y2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3RvcmllcyBmb3IgaXRzIG51
bWJlciBvZiAuLnMuCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRpdmUgcGF0aCBz
ZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBiZSB1c2VkLiAqLworc3Rk
OjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSYXdQYXRoLCBjaGFy
IHNsYXNoID0gMCApOworCisvLyoqIFJlbW92ZWQgdHJhaWxpbmcgc2xhc2hlcyAqLworc3RkOjpz
dHJpbmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSYXdQ
YXRoLCBjaGFyIHNsYXNoID0gMCApOworCisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZp
ZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCitib29sIFBhdGhfSXNEaXJlY3Rv
cnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0
aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBhbiBhcHAgYnVuZGxlICovCitib29sIFBhdGhf
SXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVybnMg
dHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzICovCitib29sIFBhdGhfRXhpc3RzKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGZpbmQgcGFy
ZW50IGRpcmVjdG9yaWVzIG9yIHN1YmRpcmVjdG9yaWVzIG9mIHBhcmVudCBkaXJlY3RvcmllcyAq
Lworc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRp
cmVjdG9yeU5hbWUgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVudFN1YkRpcmVjdG9yeVJl
Y3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3RvcnksIGNvbnN0IHN0
ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7CisKKy8qKiBQYXRoIG9wZXJhdGlvbnMgdG8g
cmVhZCBvciB3cml0ZSB0ZXh0L2JpbmFyeSBmaWxlcyAqLwordW5zaWduZWQgY2hhciAqIFBhdGhf
UmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgaW50ICpwU2l6
ZSApOwordWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZz
dHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMyX3QgdW5TaXplICk7Citi
b29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUs
IHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSApOworc3RkOjpzdHJpbmcgUGF0
aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSApOworYm9vbCBQ
YXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1l
LCBjb25zdCBjaGFyICpwY2hEYXRhICk7Citib29sIFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxl
QXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaERh
dGEgKTsKKworLyoqIFJldHVybnMgYSBmaWxlOi8vIHVybCBmb3IgcGF0aHMsIG9yIGFuIGh0dHAg
b3IgaHR0cHMgdXJsIGlmIHRoYXQncyB3aGF0IHdhcyBwcm92aWRlZCAqLworc3RkOjpzdHJpbmcg
UGF0aF9GaWxlUGF0aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoICk7CisKKy8qKiBTdHJpcHMgb2ZmIGZpbGU6Ly8g
b2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Igb3RoZXIga2luZHMgb2YgVVJMcyBh
biBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfVXJsVG9GaWxl
UGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCApOworCisvKiogUmV0dXJucyB0aGUg
cm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBk
b2N1bWVudHMgaW4gKi8KK3N0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVudHNQYXRoKCk7CisKKyNp
Zm5kZWYgTUFYX1VOSUNPREVfUEFUSAorICAgICAgICNkZWZpbmUgTUFYX1VOSUNPREVfUEFUSCAz
Mjc2NworI2VuZGlmCisKKyNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4CisgICAgICAg
I2RlZmluZSBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggKE1BWF9VTklDT0RFX1BBVEggKiA0KQor
I2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpZiBkZWZpbmVkKFdJTjMyKQorI2Rl
ZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5kbGwiCisjZGVmaW5lIFBST0dSQU1fRVhUICIu
ZXhlIgorI2lmZGVmIF9XSU42NAorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJ3aW42NCIKKyNl
bHNlCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjMyIgorI2VuZGlmCisjZWxpZiBkZWZp
bmVkKE9TWCkKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIuZHlsaWIiCisjZGVmaW5l
IFBMQVRTVUJESVIgICAgICAgIm9zeDMyIgorI2RlZmluZSBQUk9HUkFNX0VYVCAiIgorI2VsaWYg
ZGVmaW5lZChMSU5VWCkKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIuc28iCisjZGVm
aW5lIFBST0dSQU1fRVhUICIiCisjaWYgZGVmaW5lZCggTElOVVgzMiApCisjZGVmaW5lIFBMQVRT
VUJESVIgICAgICAgImxpbnV4MzIiCisjZWxzZQorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJs
aW51eDY0IgorI2VuZGlmCisjZWxzZQorI3dhcm5pbmcgIlVua25vd24gcGxhdGZvcm0gZm9yIFBM
QVRTVUJESVIiCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgInVua25vd25fcGxhdGZvcm0iCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
c2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGVlYzI2MDQ1
OWM1MWVlYzU2OWEyY2E1YjEwMjlhNTljOWJhY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlv
biA9PT09PT09PT09PT0vLworI2luY2x1ZGUgInNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIgorI2lu
Y2x1ZGUgPHN0cmluZy5oPgorCisjaWYgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8d2luZG93
cy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBPU0lYKQorI2luY2x1ZGUgPGRsZmNuLmg+Cisj
ZW5kaWYKKworU2hhcmVkTGliSGFuZGxlIFNoYXJlZExpYl9Mb2FkKCBjb25zdCBjaGFyICpwY2hQ
YXRoICkKK3sKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAgICAgcmV0dXJuIChTaGFyZWRMaWJI
YW5kbGUpTG9hZExpYnJhcnlFeCggcGNoUGF0aCwgTlVMTCwgTE9BRF9XSVRIX0FMVEVSRURfU0VB
UkNIX1BBVEggKTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAgICAgcmV0dXJuIChTaGFyZWRM
aWJIYW5kbGUpZGxvcGVuKHBjaFBhdGgsIFJUTERfTE9DQUx8UlRMRF9OT1cpOworI2VuZGlmCit9
CisKK3ZvaWQgKlNoYXJlZExpYl9HZXRGdW5jdGlvbiggU2hhcmVkTGliSGFuZGxlIGxpYiwgY29u
c3QgY2hhciAqcGNoRnVuY3Rpb25OYW1lKQoreworI2lmIGRlZmluZWQoIF9XSU4zMikKKyAgICAg
ICByZXR1cm4gKHZvaWQqKUdldFByb2NBZGRyZXNzKCAoSE1PRFVMRSlsaWIsIHBjaEZ1bmN0aW9u
TmFtZSApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICByZXR1cm4gZGxzeW0oIGxpYiwg
cGNoRnVuY3Rpb25OYW1lICk7CisjZW5kaWYKK30KKworCit2b2lkIFNoYXJlZExpYl9VbmxvYWQo
IFNoYXJlZExpYkhhbmRsZSBsaWIgKQoreworICAgICAgIGlmICggIWxpYiApCisgICAgICAgICAg
ICAgIHJldHVybjsKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAgICAgRnJlZUxpYnJhcnkoIChI
TU9EVUxFKWxpYiApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICBkbGNsb3NlKCBsaWIg
KTsKKyNlbmRpZgorfQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEw
MTYzZGJmYWIyYmU4MzYyZjgzYmMyMDkzYzI0MjE0YjI0N2ZiYWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1
YmxpYy5oCkBAIC0wLDAgKzEsMTAgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jw
b3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKK3R5cGVkZWYgdm9pZCAqU2hh
cmVkTGliSGFuZGxlOworCitTaGFyZWRMaWJIYW5kbGUgU2hhcmVkTGliX0xvYWQoIGNvbnN0IGNo
YXIgKnBjaFBhdGggKTsKK3ZvaWQgKlNoYXJlZExpYl9HZXRGdW5jdGlvbiggU2hhcmVkTGliSGFu
ZGxlIGxpYiwgY29uc3QgY2hhciAqcGNoRnVuY3Rpb25OYW1lKTsKK3ZvaWQgU2hhcmVkTGliX1Vu
bG9hZCggU2hhcmVkTGliSGFuZGxlIGxpYiApOworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNjkzNzBiMmNkMWI4YzVhYTRmZDcxMDI5NjJhOWQ0YWJlOGY4ZGIyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19w
dWJsaWMuY3BwCkBAIC0wLDAgKzEsNDM3IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUg
Q29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIK
KyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxp
Yi5oPgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOgorLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorYm9vbCBTdHJpbmdIYXNQcmVmaXgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0
cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICkKK3sKKyAgICAgICByZXR1cm4gMCA9
PSBzdHJuaWNtcCggc1N0cmluZy5jX3N0cigpLCBzUHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVu
Z3RoKCkgKTsKK30KKworYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCApCit7Cisg
ICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0cmluZy5jX3N0cigpLCBzUHJlZml4LmNfc3Ry
KCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKK30KKworCitib29sIFN0cmluZ0hhc1N1ZmZpeCggY29u
c3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKK3sK
KyAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgc2l6ZV90
IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgpOworCisgICAgICAgaWYgKCBjU3VmZml4TGVu
ID4gY1N0ckxlbiApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIHN0ZDo6
c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhM
ZW4sIGNTdWZmaXhMZW4gKTsKKworICAgICAgIHJldHVybiAwID09IHN0cmljbXAoIHNTdHJpbmdT
dWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigpICk7Cit9CisKK2Jvb2wgU3RyaW5nSGFzU3Vm
Zml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6
c3RyaW5nICZzU3VmZml4ICkKK3sKKyAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVu
Z3RoKCk7CisgICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgpOworCisg
ICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCisgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0
ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4gKTsKKworICAgICAgIHJldHVybiAw
ID09IHN0cm5jbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigpLGNTdWZm
aXhMZW4gKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFVURjE2dG84KGNvbnN0IHdjaGFyX3QgKiBp
bikKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBvdXQ7CisgICAgICAgdW5zaWduZWQgaW50IGNvZGVw
b2ludCA9IDA7CisgICAgICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiApCisgICAgICAg
eworICAgICAgICAgICAgICBpZiAoKmluID49IDB4ZDgwMCAmJiAqaW4gPD0gMHhkYmZmKQorICAg
ICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gKCgqaW4gLSAweGQ4MDApIDw8IDEwKSArIDB4
MTAwMDA7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgaWYgKCppbiA+PSAweGRjMDAgJiYgKmluIDw9IDB4ZGZmZikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgfD0gKmluIC0gMHhkYzAwOworICAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9ICpp
bjsKKworICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVwb2ludCA8PSAweDdmKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oY29k
ZXBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2RlcG9pbnQgPD0gMHg3
ZmYpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweGMwIHwgKChjb2RlcG9pbnQgPj4gNikg
JiAweDFmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3Rh
dGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29kZXBvaW50IDw9IDB4
ZmZmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZTAgfCAoKGNvZGVwb2ludCA+PiAx
MikgJiAweDBmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgzZikpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+
KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZjAg
fCAoKGNvZGVwb2ludCA+PiAxOCkgJiAweDA3KSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50ID4+
IDEyKSAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgx
LCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDNmKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hh
cj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gMDsKKyAgICAgICAgICAgICAgfQorICAg
ICAgIH0KKyAgICAgICByZXR1cm4gb3V0OworfQorCitzdGQ6OndzdHJpbmcgVVRGOHRvMTYoY29u
c3QgY2hhciAqIGluKQoreworICAgICAgIHN0ZDo6d3N0cmluZyBvdXQ7CisgICAgICAgdW5zaWdu
ZWQgaW50IGNvZGVwb2ludCA9IDA7CisgICAgICAgaW50IGZvbGxvd2luZyA9IDA7CisgICAgICAg
Zm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiApCisgICAgICAgeworICAgICAgICAgICAgICB1
bnNpZ25lZCBjaGFyIGNoID0gKmluOworICAgICAgICAgICAgICBpZiAoY2ggPD0gMHg3ZikKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2g7CisgICAg
ICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAwOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4YmYpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIGlmIChmb2xsb3dpbmcgPiAwKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IChjb2RlcG9pbnQgPDwgNikgfCAo
Y2ggJiAweDNmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWZvbGxvd2luZzsKKyAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNl
IGlmIChjaCA8PSAweGRmKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBj
b2RlcG9pbnQgPSBjaCAmIDB4MWY7CisgICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAx
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4ZWYpCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IGNoICYgMHgw
ZjsKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyA9IDI7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICBjb2RlcG9pbnQgPSBjaCAmIDB4MDc7CisgICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcg
PSAzOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPT0gMCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVwb2ludCA+IDB4
ZmZmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4ZDgwMCArIChjb2RlcG9pbnQg
Pj4gMTApKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0
aWNfY2FzdDx3Y2hhcl90PigweGRjMDAgKyAoY29kZXBvaW50ICYgMHgwM2ZmKSkpOworICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8d2NoYXJfdD4oY29kZXBv
aW50KSk7CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAwOworICAgICAgICAgICAg
ICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBvdXQ7Cit9CisKKwordm9pZCBzdHJjcHlfc2Fm
ZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZSApCit7CisgICAgICAgcGNoQnVmZmVyWyB1bkJ1ZmZlclNpemVCeXRlcyAtIDEg
XSA9ICdcMCc7CisgICAgICAgc3RybmNweSggcGNoQnVmZmVyLCBwY2hTb3VyY2UsIHVuQnVmZmVy
U2l6ZUJ5dGVzIC0gMSApOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBjb252
ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcg
U3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICkKK3sKKyAgICAgICBz
dGQ6OnN0cmluZyBzT3V0OworICAgICAgIHNPdXQucmVzZXJ2ZSggc1N0cmluZy5zaXplKCkgKyAx
ICk7CisgICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaSA9IHNTdHJpbmcu
YmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvdXBwZXIoICppICkgKTsKKyAgICAgICB9CisKKyAg
ICAgICByZXR1cm4gc091dDsKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogY29u
dmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5n
IFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApCit7CisgICAgICAg
c3RkOjpzdHJpbmcgc091dDsKKyAgICAgICBzT3V0LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgpICsg
MSApOworICAgICAgIGZvciggc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3RyaW5n
LmJlZ2luKCk7IGkgIT0gc1N0cmluZy5lbmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHNPdXQucHVzaF9iYWNrKCAoY2hhcil0b2xvd2VyKCAqaSApICk7CisgICAgICAgfQorCisg
ICAgICAgcmV0dXJuIHNPdXQ7Cit9CisKKwordWludDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZl
ckxlbiApCit7CisgICAgICAgdWludDMyX3QgdW5MZW4gPSAodWludDMyX3Qpc1ZhbHVlLmxlbmd0
aCgpICsgMTsKKyAgICAgICBpZiggIXBjaEJ1ZmZlciB8fCAhdW5CdWZmZXJMZW4gKQorICAgICAg
ICAgICAgICByZXR1cm4gdW5MZW47CisKKyAgICAgICBpZiggdW5CdWZmZXJMZW4gPCB1bkxlbiAp
CisgICAgICAgeworICAgICAgICAgICAgICBwY2hCdWZmZXJbMF0gPSAnXDAnOworICAgICAgIH0K
KyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICBtZW1jcHkoIHBjaEJ1ZmZlciwg
c1ZhbHVlLmNfc3RyKCksIHVuTGVuICk7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHVuTGVu
OworfQorCit2b2lkIEJ1ZmZlclRvU3RkU3RyaW5nKCBzdGQ6OnN0cmluZyAmIHNEZXN0LCBjb25z
dCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkKK3sKKyAgICAgICBzRGVz
dC5yZXNpemUoIHVuQnVmZmVyTGVuICsgMSApOworICAgICAgIG1lbWNweSggY29uc3RfY2FzdDwg
Y2hhciogPiggc0Rlc3QuY19zdHIoKSApLCBwY2hCdWZmZXIsIHVuQnVmZmVyTGVuICk7CisgICAg
ICAgY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApWyB1bkJ1ZmZlckxlbiBdID0g
J1wwJzsKK30KKworLyoqIFJldHVybnMgYSBzdGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8K
K3N0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5nKCB1aW50NjRfdCB1bFZhbHVlICkKK3sKKyAgICAg
ICBjaGFyIGJ1ZlsgMjIgXTsKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQorICAgICAgIHNwcmludGZf
cyggYnVmLCAiJWxsdSIsIHVsVmFsdWUgKTsKKyNlbHNlCisgICAgc25wcmludGYoIGJ1Ziwgc2l6
ZW9mKCBidWYgKSwgIiVsbHUiLCAobG9uZyBsb25nIHVuc2lnbmVkIGludCApIHVsVmFsdWUgKTsK
KyNlbmRpZgorICAgICAgIHJldHVybiBidWY7Cit9CisKKworLyoqIHJldHVybnMgYSB1aW50NjRf
dCBmcm9tIGEgc3RyaW5nICovCit1aW50NjRfdCBTdHJpbmdUb1VpbnQ2NCggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzVmFsdWUgKQoreworICAgICAgIHJldHVybiBzdHJ0b3VsbCggc1ZhbHVlLmNfc3Ry
KCksIE5VTEwsIDAgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTog
SGVscGVyIGZvciBjb252ZXJ0aW5nIGEgbnVtZXJpYyB2YWx1ZSB0byBhIGhleCBkaWdpdCwgdmFs
dWUgc2hvdWxkIGJlIDAtMTUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjaGFyIGNJbnRUb0hl
eERpZ2l0KCBpbnQgblZhbHVlICkKK3sKKyAgICAgICAvL0Fzc2VydCggblZhbHVlID49IDAgJiYg
blZhbHVlIDw9IDE1ICk7CisgICAgICAgcmV0dXJuICIwMTIzNDU2Nzg5QUJDREVGIlsgblZhbHVl
ICYgMTUgXTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogSGVscGVy
IGZvciBjb252ZXJ0aW5nIGEgaGV4IGNoYXIgdmFsdWUgdG8gbnVtZXJpYywgcmV0dXJuIC0xIGlm
IHRoZSBjaGFyCisvLyAgICAgICAgICBpcyBub3QgYSB2YWxpZCBoZXggZGlnaXQuCisvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitpbnQgaUhleENoYXJUb0ludCggY2hhciBjVmFsdWUgKQoreworICAg
ICAgIGludDMyX3QgaVZhbHVlID0gY1ZhbHVlOworICAgICAgIGlmICggKHVpbnQzMl90KSggaVZh
bHVlIC0gJzAnICkgPCAxMCApCisgICAgICAgICAgICAgIHJldHVybiBpVmFsdWUgLSAnMCc7CisK
KyAgICAgICBpVmFsdWUgfD0gMHgyMDsKKyAgICAgICBpZiAoICh1aW50MzJfdCkoIGlWYWx1ZSAt
ICdhJyApIDwgNiApCisgICAgICAgICAgICAgIHJldHVybiBpVmFsdWUgLSAnYScgKyAxMDsKKwor
ICAgICAgIHJldHVybiAtMTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9z
ZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgZW5jb2RlLCB3b3JrcyBpbiB0aGUgc3RyaWN0
IFJGQyBtYW5uZXIsIG9yCisvLyAgICAgICAgICB3aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBsaWtl
IEhUTUwgZm9ybSBlbmNvZGluZy4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9VUkxF
bmNvZGVJbnRlcm5hbCggY2hhciAqcGNoRGVzdCwgaW50IG5EZXN0TGVuLCBjb25zdCBjaGFyICpw
Y2hTb3VyY2UsIGludCBuU291cmNlTGVuLCBib29sIGJVc2VQbHVzRm9yU3BhY2UgKQoreworICAg
ICAgIC8vQXNzZXJ0TXNnKCBuRGVzdExlbiA+IDMqblNvdXJjZUxlbiwgIlRhcmdldCBidWZmZXIg
Zm9yIFZfVVJMRW5jb2RlIHNob3VsZCBiZSAzeCBzb3VyY2UgbGVuZ3RoLCBwbHVzIG9uZSBmb3Ig
dGVybWluYXRpbmcgbnVsbFxuIiApOworICAgICAgIAorICAgICAgIGludCBpRGVzdFBvcyA9IDA7
CisgICAgICAgZm9yICggaW50IGk9MDsgaSA8IG5Tb3VyY2VMZW47ICsraSApCisgICAgICAgewor
ICAgICAgICAgICAgICAvLyB3b3JzdCBjYXNlIHdlIG5lZWQgMyBhZGRpdGlvbmFsIGNoYXJzCisg
ICAgICAgICAgICAgIGlmKCAoaURlc3RQb3MrMykgPiBuRGVzdExlbiAgKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0WzBdID0gJ1wwJzsKKy8vICAgICAgICAg
ICAgICAgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwgIlRhcmdldCBidWZmZXIgdG9vIHNob3J0XG4i
ICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmx5IGEteiwgQS1aLCAwLTksIHBlcmlvZCwgdW5kZXJz
Y29yZSwgYW5kIGh5cGhlbiB0byBwYXNzIHRocm91Z2ggdW5lc2NhcGVkLgorICAgICAgICAgICAg
ICAvLyBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMgYWxsb3dlZCBieSBib3RoIHRoZSBvcmlnaW5h
bCBSRkMgMTczOCBhbmQgdGhlIGxhdGVzdCBSRkMgMzk4Ni4KKyAgICAgICAgICAgICAgLy8gQ3Vy
cmVudCBzcGVjcyBhbHNvIGFsbG93ICd+JywgYnV0IHRoYXQgaXMgZm9yYmlkZGVuIHVuZGVyIG9y
aWdpbmFsIFJGQyAxNzM4LgorICAgICAgICAgICAgICBpZiAoICEoIHBjaFNvdXJjZVtpXSA+PSAn
YScgJiYgcGNoU291cmNlW2ldIDw9ICd6JyApICYmICEoIHBjaFNvdXJjZVtpXSA+PSAnQScgJiYg
cGNoU291cmNlW2ldIDw9ICdaJyApICYmICEocGNoU291cmNlW2ldID49ICcwJyAmJiBwY2hTb3Vy
Y2VbaV0gPD0gJzknICkKKyAgICAgICAgICAgICAgICAgICAgICAmJiBwY2hTb3VyY2VbaV0gIT0g
Jy0nICYmIHBjaFNvdXJjZVtpXSAhPSAnXycgJiYgcGNoU291cmNlW2ldICE9ICcuJyAgICAgICAK
KyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoU291cmNlW2ldID09ICcgJyApCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBv
cysrXSA9ICcrJzsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJyUnOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQ4X3QgaVZhbHVlID0gcGNoU291cmNlW2ldOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICggaVZhbHVlID09IDAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcw
JzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysr
XSA9ICcwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQxID0gY0ludFRvSGV4RGln
aXQoIGlWYWx1ZSAlIDE2ICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlW
YWx1ZSAvPSAxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjSGV4
RGlnaXQyID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSApOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gY0hleERpZ2l0MjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9IGNIZXhEaWdp
dDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9IHBjaFNvdXJjZVtpXTsK
KyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGlmKCAoaURlc3RQb3MrMSkgPiBu
RGVzdExlbiApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hEZXN0WzBdID0gJ1wwJzsKKyAg
ICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVGFyZ2V0IGJ1ZmZlciB0b28gc2hvcnQg
dG8gdGVybWluYXRlXG4iICk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9CisKKyAg
ICAgICAvLyBOdWxsIHRlcm1pbmF0ZQorICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAwOwor
fQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEludGVybmFsIGltcGxl
bWVudGF0aW9uIG9mIGRlY29kZSwgd29ya3MgaW4gdGhlIHN0cmljdCBSRkMgbWFubmVyLCBvcgor
Ly8gICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVkIHRvICsgbGlrZSBIVE1MIGZvcm0gZW5jb2Rp
bmcuCisvLworLy8gICAgICAgICAgICAgICAgICAgICBSZXR1cm5zIHRoZSBhbW91bnQgb2Ygc3Bh
Y2UgdXNlZCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3Np
emVfdCBWX1VSTERlY29kZUludGVybmFsKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29k
ZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJj
ZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkKK3sKKyAgICAgICBpZiAoIG5EZWNvZGVEZXN0
TGVuIDwgbkVuY29kZWRTb3VyY2VMZW4gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy9Bc3Nl
cnRNc2coIGZhbHNlLCAiVl9VUkxEZWNvZGUgbmVlZHMgYSBkZXN0IGJ1ZmZlciBhdCBsZWFzdCBh
cyBsYXJnZSBhcyB0aGUgc291cmNlIiApOworICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICB9CisKKyAgICAgICBpbnQgaURlc3RQb3MgPSAwOworICAgICAgIGZvciggaW50IGk9MDsgaSA8
IG5FbmNvZGVkU291cmNlTGVuOyArK2kgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBi
VXNlUGx1c0ZvclNwYWNlICYmIHBjaEVuY29kZWRTb3VyY2VbaV0gPT0gJysnICkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBd
ID0gJyAnOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKCBwY2hFbmNv
ZGVkU291cmNlW2ldID09ICclJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgIC8vIFBlcmNlbnQgc2lnbmlmaWVzIGFuIGVuY29kZWQgdmFsdWUsIGxvb2sgYWhlYWQgZm9y
IHRoZSBoZXggY29kZSwgY29udmVydCB0byBudW1lcmljLCBhbmQgdXNlIHRoYXQKKworICAgICAg
ICAgICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIHdlIGhhdmUgMiBtb3JlIGNoYXJzCisg
ICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCBuRW5jb2RlZFNvdXJjZUxlbiAtIDIgKQorICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY0hl
eERpZ2l0MSA9IHBjaEVuY29kZWRTb3VyY2VbaSsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFyIGNIZXhEaWdpdDIgPSBwY2hFbmNvZGVkU291cmNlW2krMl07CisKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBUdXJuIHRoZSBjaGFycyBpbnRvIGEgaGV4IHZhbHVlLCBp
ZiB0aGV5IGFyZSBub3QgdmFsaWQsIHRoZW4gd2UnbGwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBqdXN0IHBsYWNlIHRoZSAlIGFuZCB0aGUgZm9sbG93aW5nIHR3byBjaGFycyBkaXJl
Y3QgaW50byB0aGUgc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4g
dGhvdWdoIHRoaXMgcmVhbGx5IHNob3VsZG4ndCBoYXBwZW4sIHdobyBrbm93cyB3aGF0IGJhZCBj
bGllbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF5IGRvIHdpdGggZW5jb2Rp
bmcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBiVmFsaWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaVZhbHVlID0gaUhleENoYXJUb0ludCggY0hl
eERpZ2l0MSApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlICE9IC0x
ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlWYWx1ZSAqPSAxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGlWYWx1ZTIgPSBpSGV4Q2hhclRvSW50KCBjSGV4RGlnaXQyICk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlMiAhPSAtMSApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlWYWx1ZSArPSBpVmFsdWUyOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gKGNoYXIp
aVZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlZhbGlk
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgg
IWJWYWxpZCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSAnJSc7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9z
KysgXSA9IGNIZXhEaWdpdDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBj
aERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdpdDI7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
ICAgICAvLyBTa2lwIGFoZWFkCisgICAgICAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSBwY2hFbmNvZGVkU291cmNl
W2ldOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgLy8gV2UgbWF5IG5vdCBo
YXZlIGV4dHJhIHJvb20gdG8gTlVMTCB0ZXJtaW5hdGUsIHNpbmNlIHRoaXMgY2FuIGJlIHVzZWQg
b24gcmF3IGRhdGEsIGJ1dCBpZiB3ZSBkbworICAgICAgIC8vIGdvIGFoZWFkIGFuZCBkbyBpdCBh
cyB0aGlzIGNhbiBhdm9pZCBidWdzLgorICAgICAgIGlmICggaURlc3RQb3MgPCBuRGVjb2RlRGVz
dExlbiApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0W2lEZXN0UG9zXSA9
IDA7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIChzaXplX3QpaURlc3RQb3M7Cit9CisKKy8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEVuY29kZXMgYSBzdHJpbmcgKG9yIGJp
bmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24g
Mi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJp
Y3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFjZSBhcyBpcworLy8gICAg
ICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3Qg
YmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAgICAgIERlc3QgYnVmZmVyIHNob3Vs
ZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29t
IGZvciBkZWNvZGUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfVVJMRW5jb2RlKCBj
aGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSwgaW50IG5T
b3VyY2VMZW4gKQoreworICAgICAgIHJldHVybiBWX1VSTEVuY29kZUludGVybmFsKCBwY2hEZXN0
LCBuRGVzdExlbiwgcGNoU291cmNlLCBuU291cmNlTGVuLCB0cnVlICk7Cit9CisKKworLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5
IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIu
ICAKKy8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBS
RkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAgICAgICAg
ICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWlu
ZyBwYXJ0IG9mIHRoZSBSRkMuCisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJl
IGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9y
IGRlY29kZS4KKy8vICAgICAgICAgICAgICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNh
bWUgYXMgdGhlIHNvdXJjZSBidWZmZXIgKGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBh
bGxvd2VkLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFy
ICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29k
ZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiApCit7CisgICAgICAgcmV0dXJuIFZfVVJM
RGVjb2RlSW50ZXJuYWwoIHBjaERlY29kZURlc3QsIG5EZWNvZGVEZXN0TGVuLCBwY2hFbmNvZGVk
U291cmNlLCBuRW5jb2RlZFNvdXJjZUxlbiwgdHJ1ZSApOworfQorCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCit2b2lkIFZfU3RyaXBFeHRlbnNpb24oIHN0ZDo6c3RyaW5nICZpbiApCit7CisgICAg
ICAgLy8gRmluZCB0aGUgbGFzdCBkb3QuIElmIGl0J3MgZm9sbG93ZWQgYnkgYSBkb3Qgb3IgYSBz
bGFzaCwgdGhlbiBpdCdzIHBhcnQgb2YgYSAKKyAgICAgICAvLyBkaXJlY3Rvcnkgc3BlY2lmaWVy
IGxpa2UgLi4vLi4vc29tZWRpci8uL2JsYWguCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlw
ZSB0ZXN0ID0gaW4ucmZpbmQoICcuJyApOworICAgICAgIGlmICggdGVzdCAhPSBzdGQ6OnN0cmlu
Zzo6bnBvcyApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBUaGlzIGhhbmRsZXMgdGhpbmdz
IGxpa2UgIi5cYmxhaCIgb3IgImM6XG15QGVtYWlsLmNvbVxhYmNcZGVmXGdlaCIKKyAgICAgICAg
ICAgICAgLy8gV2hpY2ggd291bGQgb3RoZXJ3aXNlIHdpbmQgdXAgd2l0aCAiIiBhbmQgImM6XG15
QGVtYWlsIiwgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgICAgICBpZiAoIGluLnJmaW5kKCAnXFwn
ICkgPCB0ZXN0ICYmIGluLnJmaW5kKCAnLycgKSA8IHRlc3QgKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBpbi5yZXNpemUoIHRlc3QgKTsKKyAgICAgICAgICAgICAgfQor
ICAgICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92
cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA2M2U1NGEyOGM3MzRiNzdm
OTJmNzc4MzQ2YTNhNmE4NWM2NGYzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwxMjYg
QEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8c3RkaW50Lmg+
CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHN0cmlu
ZyBoYXMgdGhlIHByZWZpeCAqLworYm9vbCBTdHJpbmdIYXNQcmVmaXgoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICk7Citib29sIFN0cmlu
Z0hhc1ByZWZpeENhc2VTZW5zaXRpdmUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29u
c3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICk7CisKKy8qKiByZXR1cm5zIGlmIHRoZSBzdHJpbmcg
aGFzIHRoZSBzdWZmaXggKi8KK2Jvb2wgU3RyaW5nSGFzU3VmZml4KCBjb25zdCBzdGQ6OnN0cmlu
ZyAmc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJnNTdWZmaXggKTsKK2Jvb2wgU3RyaW5nSGFz
U3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICZzU3VmZml4ICk7CisKKy8qKiBjb252ZXJ0cyBhIFVURi0xNiBzdHJpbmcgdG8g
YSBVVEYtOCBzdHJpbmcgKi8KK3N0ZDo6c3RyaW5nIFVURjE2dG84KGNvbnN0IHdjaGFyX3QgKiBp
bik7CisKKy8qKiBjb252ZXJ0cyBhIFVURi04IHN0cmluZyB0byBhIFVURi0xNiBzdHJpbmcgKi8K
K3N0ZDo6d3N0cmluZyBVVEY4dG8xNihjb25zdCBjaGFyICogaW4pOworI2RlZmluZSBVdGYxNkZy
b21VdGY4IFVURjh0bzE2CisKKy8qKiBzYWZlbHkgY29weSBhIHN0cmluZyBpbnRvIGEgYnVmZmVy
ICovCit2b2lkIHN0cmNweV9zYWZlKCBjaGFyICpwY2hCdWZmZXIsIHNpemVfdCB1bkJ1ZmZlclNp
emVCeXRlcywgY29uc3QgY2hhciAqcGNoU291cmNlICk7Cit0ZW1wbGF0ZTwgc2l6ZV90IGJ1ZmZl
clNpemUgPgordm9pZCBzdHJjcHlfc2FmZSggY2hhciAoJiBidWZmZXIpIFsgYnVmZmVyU2l6ZSBd
LCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKSAKK3sKKyAgICAgICBzdHJjcHlfc2FmZSggYnVmZmVy
LCBidWZmZXJTaXplLCBwY2hTb3VyY2UgKTsKK30KKworCisvKiogY29udmVydHMgYSBzdHJpbmcg
dG8gdXBwZXIgY2FzZSAqLworc3RkOjpzdHJpbmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzU3RyaW5nICk7CisKKy8qKiBjb252ZXJ0cyBhIHN0cmluZyB0byBsb3dlciBjYXNl
ICovCitzdGQ6OnN0cmluZyBTdHJpbmdUb0xvd2VyKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJp
bmcgKTsKKworLy8gd2Ugc3RyaWNtcCAoZnJvbSBXSU4pIGJ1dCBpdCBpc24ndCBQT1NJWCAtIE9T
WC9MSU5VWCBoYXZlIHN0cmNhc2VjbXAgc28ganVzdCBpbmxpbmUgYnJpZGdlIHRvIGl0CisjaWYg
ZGVmaW5lZCggT1NYICkgfHwgZGVmaW5lZCggTElOVVggKQorI2luY2x1ZGUgPHN0cmluZ3MuaD4K
K2lubGluZSBpbnQgc3RyaWNtcChjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0cjIp
IHsgcmV0dXJuIHN0cmNhc2VjbXAocFN0cjEscFN0cjIpOyB9CisjZGVmaW5lIF9zdHJpY21wIHN0
cmljbXAKK2lubGluZSBpbnQgc3RybmljbXAoIGNvbnN0IGNoYXIgKnBTdHIxLCBjb25zdCBjaGFy
ICpwU3RyMiwgc2l6ZV90IHVuQnVmZmVyTGVuICkgeyByZXR1cm4gc3RybmNhc2VjbXAoIHBTdHIx
LHBTdHIyLCB1bkJ1ZmZlckxlbiApOyB9CisjZGVmaW5lIF9zdHJuaWNtcCBzdHJuaWNtcAorCisj
ZGVmaW5lIF92c25wcmludGZfcyB2c25wcmludGYKKworI2RlZmluZSBfVFJVTkNBVEUgKChzaXpl
X3QpLTEpCisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggT1NYICkKKy8vIGJlaGF2aW9ycyBlbnN1
cmUgTlVMTC10ZXJtaW5hdGlvbiBhdCBsZWFzdCBhcyB3ZWxsIGFzIF9UUlVOQ0FURSBkb2VzLCBi
dXQKKy8vIHdjc25jcHlfcy9zdHJuY3B5X3MgY2FuIG5vbi1OVUxMLXRlcm1pbmF0ZSwgd2NzbGNw
eS9zdHJsY3B5IGNhbiBub3QuCitpbmxpbmUgZXJybm9fdCB3Y3NuY3B5X3Mod2NoYXJfdCAqc3Ry
RGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IHdjaGFyX3QgKnN0clNvdXJjZSwg
c2l6ZV90IGNvdW50KQoreworICAgICAgIHJldHVybiB3Y3NsY3B5KHN0ckRlc3QsIHN0clNvdXJj
ZSwgbnVtYmVyT2ZFbGVtZW50cyk7Cit9CisKK2lubGluZSBlcnJub190IHN0cm5jcHlfcyhjaGFy
ICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3QgY2hhciAqc3RyU291cmNl
LCBzaXplX3QgY291bnQpCit7CisgICAgICAgcmV0dXJuIHN0cmxjcHkoc3RyRGVzdCwgc3RyU291
cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKK30KKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBMSU5V
WCApCisvLyB0aGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHJldHVybiB3aGV0aGVyIG9yIG5v
dCB0aGUgZGVzdGluYXRpb24gd2FzIAorLy8gdHJ1bmNhdGVkLCBidXQgdGhhdCBpcyBzdHJhaWdo
dGZvcndhcmQgdG8gZml4IGlmIGFueWJvZHkgYWN0dWFsbHkgbmVlZHMgdGhlCisvLyByZXR1cm4g
Y29kZS4gCisjaW5jbHVkZSAic3RyaW5nLmgiCitpbmxpbmUgdm9pZCB3Y3NuY3B5X3Mod2NoYXJf
dCAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IHdjaGFyX3QgKnN0clNv
dXJjZSwgc2l6ZV90IGNvdW50KQoreworICAgICAgIHdjc25jcHkoc3RyRGVzdCwgc3RyU291cmNl
LCBudW1iZXJPZkVsZW1lbnRzKTsKKyAgICAgICBzdHJEZXN0W251bWJlck9mRWxlbWVudHMtMV0g
PSAnXDAnOworfQorCitpbmxpbmUgdm9pZCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6ZV90
IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQor
eworICAgICAgIHN0cm5jcHkoc3RyRGVzdCwgc3RyU291cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsK
KyAgICAgICBzdHJEZXN0W251bWJlck9mRWxlbWVudHMtMV0gPSAnXDAnOworfQorCisjZW5kaWYK
KworI2lmIGRlZmluZWQoIF9XSU4zMiApICYmIF9NU0NfVkVSIDwgMTgwMAoraW5saW5lIHVpbnQ2
NF90IHN0cnRvdWxsKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAqKmVuZHB0ciwgaW50IGJhc2UpIHsg
cmV0dXJuIF9zdHJ0b3VpNjQoIHN0ciwgZW5kcHRyLCBiYXNlICk7IH0KKyNlbmRpZgorCisvKiBI
YW5kbGVzIGNvcHlpbmcgYSBzdGQ6OnN0cmluZyBpbnRvIGEgYnVmZmVyIGFzIHdvdWxkIGJlIHBy
b3ZpZGVkIGluIGFuIEFQSSAqLwordWludDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiAp
OworCisvKiBIYW5kbGVzIGNvcHlpbmcgYSBidWZmZXIgaW50byBhbiBzdGQ6OnN0cmluZyBhbmQg
YXV0byBhZGRzIG51bGwgdGVybWluYXRvciAqLwordm9pZCBCdWZmZXJUb1N0ZFN0cmluZyggc3Rk
OjpzdHJpbmcgJiBzRGVzdCwgY29uc3QgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZl
ckxlbiApOworCisvKiogUmV0dXJucyBhIHN0ZDo6c3RyaW5nIGZyb20gYSB1aW50NjRfdCAqLwor
c3RkOjpzdHJpbmcgVWludDY0VG9TdHJpbmcoIHVpbnQ2NF90IHVsVmFsdWUgKTsKKworLyoqIHJl
dHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCit1aW50NjRfdCBTdHJpbmdUb1VpbnQ2
NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gUHVycG9zZTogRW5jb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJM
IGVuY29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKKy8vICAgICAgICAg
IFRoaXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRp
b24sIGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAgICAgICAgICB0aGUgc3RhbmRhcmQg
aW4gSFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBS
RkMuCisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxh
cmdlIGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9VUkxFbmNvZGUoIGNoYXIgKnBjaERlc3QsIGludCBu
RGVzdExlbiwgY29uc3QgY2hhciAqcGNoU291cmNlLCBpbnQgblNvdXJjZUxlbiApOworCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBEZWNvZGVzIGEgc3RyaW5nIChvciBiaW5h
cnkgZGF0YSkgZnJvbSBVUkwgZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9uIDIu
Mi4gIAorLy8gICAgICAgICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3RyaWN0
IFJGQyBpbXBsZW1lbnRhdGlvbiwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAgICAg
ICAgIHRoZSBzdGFuZGFyZCBpbiBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90IGJl
aW5nIHBhcnQgb2YgdGhlIFJGQy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91bGQg
YmUgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9vbSBm
b3IgZGVjb2RlLgorLy8gICAgICAgICAgICAgICAgICAgICBEZXN0IGJ1ZmZlciBiZWluZyB0aGUg
c2FtZSBhcyB0aGUgc291cmNlIGJ1ZmZlciAoZGVjb2RlIGluLXBsYWNlKSBpcyBleHBsaWNpdGx5
IGFsbG93ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzaXplX3QgVl9VUkxEZWNvZGUoIGNo
YXIgKnBjaERlY29kZURlc3QsIGludCBuRGVjb2RlRGVzdExlbiwgY29uc3QgY2hhciAqcGNoRW5j
b2RlZFNvdXJjZSwgaW50IG5FbmNvZGVkU291cmNlTGVuICk7CisKKy8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IHN0cmlwIGV4dGVuc2lvbiBmcm9tIGEgcGF0aAorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQordm9pZCBWX1N0cmlwRXh0ZW5zaW9uKCBzdGQ6OnN0cmluZyAmaW4gKTsK
KworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3Zy
cGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRmMzA0MjRhOWZm
MzYxYzgzNmY5YTRjMDhjZmE2ODQ2YWFkMzdiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcApA
QCAtMCwwICsxLDQxMSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9u
ID09PT09PT09PT09PS8vCisKKyNpbmNsdWRlICJ2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCIKKyNp
bmNsdWRlICJqc29uL2pzb24uaCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgiCisjaW5j
bHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgi
CisjaW5jbHVkZSAiZGlydG9vbHNfcHVibGljLmgiCisKKyNpZiBkZWZpbmVkKCBXSU4zMiApCisj
aW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHNobG9iai5oPgorCisjdW5kZWYgR2V0RW52
aXJvbm1lbnRWYXJpYWJsZQorI2VsaWYgZGVmaW5lZCBPU1gKKyNpbmNsdWRlIDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxBcHBLaXQvQXBwS2l0Lmg+CisjZWxpZiBkZWZpbmVk
KExJTlVYKQorI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgor
CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisjaWZuZGVmIFZSTG9nCisgICAgICAgI2lmIGRlZmlu
ZWQoIF9fTUlOR1czMl9fICkKKyAgICAgICAgICAgICAgI2RlZmluZSBWUkxvZyhhcmdzLi4uKSAg
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIGFyZ3MpCisgICAgICAgI2VsaWYgZGVmaW5lZCgg
V0lOMzIgKQorICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGZtdCwgLi4uKSAgICAgICAgICAg
ICAgZnByaW50ZihzdGRlcnIsIGZtdCwgX19WQV9BUkdTX18pCisgICAgICAgI2Vsc2UKKyAgICAg
ICAgICAgICAgI2RlZmluZSBWUkxvZyhhcmdzLi4uKSAgICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsIGFyZ3MpCisgICAgICAgI2VuZGlmCisjZW5kaWYKKworLyoqIFJldHVybnMgdGhlIHJvb3Qg
b2YgdGhlIGRpcmVjdG9yeSB0aGUgc3lzdGVtIHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgY29uZmln
IGRhdGEgaW4gKi8KK3N0YXRpYyBzdGQ6OnN0cmluZyBHZXRBcHBTZXR0aW5nc1BhdGgoKQorewor
I2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBXQ0hBUiByd2NoUGF0aFtNQVhfUEFUSF07CisK
KyAgICAgICBpZiggIVNVQ0NFRURFRCggU0hHZXRGb2xkZXJQYXRoVyggTlVMTCwgQ1NJRExfTE9D
QUxfQVBQREFUQSB8IENTSURMX0ZMQUdfQ1JFQVRFLCBOVUxMLCAwLCByd2NoUGF0aCApICkgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKworICAgICAgIC8v
IENvbnZlcnQgdGhlIHBhdGggdG8gVVRGLTggYW5kIHN0b3JlIGluIHRoZSBvdXRwdXQKKyAgICAg
ICBzdGQ6OnN0cmluZyBzVXNlclBhdGggPSBVVEYxNnRvOCggcndjaFBhdGggKTsKKworICAgICAg
IHJldHVybiBzVXNlclBhdGg7CisjZWxpZiBkZWZpbmVkKCBPU1ggKQorICAgICAgIHN0ZDo6c3Ry
aW5nIHNTZXR0aW5nc0RpcjsKKyAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAg
ICAgLy8gU2VhcmNoIGZvciB0aGUgcGF0aAorICAgICAgICAgICAgICBOU0FycmF5ICpwYXRocyA9
IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKCBOU0FwcGxpY2F0aW9uU3VwcG9y
dERpcmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7CisgICAgICAgICAgICAgIGlmICgg
W3BhdGhzIGNvdW50XSA9PSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICIiOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICBOU1N0cmluZyAqcmVzb2x2ZWRQYXRoID0gW3BhdGhzIG9iamVjdEF0SW5kZXg6MF07Cisg
ICAgICAgICAgICAgIHJlc29sdmVkUGF0aCA9IFtyZXNvbHZlZFBhdGggc3RyaW5nQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OiBAIk9wZW5WUiJdOworICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgaWYgKCAhW1tOU0ZpbGVNYW5hZ2VyIG5ld10gY3JlYXRlRGlyZWN0b3J5QXRQYXRoOiByZXNv
bHZlZFBhdGggd2l0aEludGVybWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBl
cnJvcjpuaWxdICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICIiOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICBzU2V0
dGluZ3NEaXIuYXNzaWduKCBbcmVzb2x2ZWRQYXRoIFVURjhTdHJpbmddICk7CisgICAgICAgfQor
ICAgICAgIHJldHVybiBzU2V0dGluZ3NEaXI7CisjZWxpZiBkZWZpbmVkKCBMSU5VWCApCisKKyAg
ICAgICAvLyBBcyBkZWZpbmVkIGJ5IFhERyBCYXNlIERpcmVjdG9yeSBTcGVjaWZpY2F0aW9uIAor
ICAgICAgIC8vIGh0dHBzOi8vc3BlY2lmaWNhdGlvbnMuZnJlZWRlc2t0b3Aub3JnL2Jhc2VkaXIt
c3BlYy9iYXNlZGlyLXNwZWMtbGF0ZXN0Lmh0bWwKKworICAgICAgIGNvbnN0IGNoYXIgKnBjaEhv
bWUgPSBnZXRlbnYoIlhER19DT05GSUdfSE9NRSIpOworICAgICAgIGlmICggKCBwY2hIb21lICE9
IE5VTEwpICYmICggcGNoSG9tZVswXSAhPSAnXDAnICkgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHBjaEhvbWU7CisgICAgICAgfQorCisgICAgICAgLy8KKyAgICAgICAvLyBYREdf
Q09ORklHX0hPTUUgaXMgbm90IGRlZmluZWQsIHVzZSB+Ly5jb25maWcgaW5zdGVhZAorICAgICAg
IC8vIAorICAgICAgIHBjaEhvbWUgPSBnZXRlbnYoICJIT01FIiApOworICAgICAgIGlmICggcGNo
SG9tZSA9PSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICB9CisKKyAgICAgICBzdGQ6OnN0cmluZyBzVXNlclBhdGgoIHBjaEhvbWUgKTsKKyAgICAgICBz
VXNlclBhdGggPSBQYXRoX0pvaW4oIHNVc2VyUGF0aCwgIi5jb25maWciICk7CisgICAgICAgcmV0
dXJuIHNVc2VyUGF0aDsKKyNlbHNlCisgICAgICAgI3dhcm5pbmcgIlVuc3VwcG9ydGVkIHBsYXRm
b3JtIgorI2VuZGlmCit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBD
b25zdHJ1Y3RvcgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDVlJQYXRoUmVnaXN0cnlfUHVibGlj
OjpDVlJQYXRoUmVnaXN0cnlfUHVibGljKCkKK3sKKworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vIFB1cnBvc2U6IENvbXB1dGVzIHRoZSByZWdpc3RyeSBmaWxlbmFtZQorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRPcGVu
VlJDb25maWdQYXRoKCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzQ29uZmlnUGF0aCA9IEdldEFw
cFNldHRpbmdzUGF0aCgpOworICAgICAgIGlmKCBzQ29uZmlnUGF0aC5lbXB0eSgpICkKKyAgICAg
ICAgICAgICAgcmV0dXJuICIiOworCisjaWYgZGVmaW5lZCggX1dJTjMyICkgfHwgZGVmaW5lZCgg
TElOVVggKQorICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwgIm9w
ZW52ciIgKTsKKyNlbGlmIGRlZmluZWQgKCBPU1ggKSAKKyAgICAgICBzQ29uZmlnUGF0aCA9IFBh
dGhfSm9pbiggc0NvbmZpZ1BhdGgsICIub3BlbnZyIiApOworI2Vsc2UKKyAgICAgICAjd2Fybmlu
ZyAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICBzQ29uZmlnUGF0aCA9IFBh
dGhfRml4U2xhc2hlcyggc0NvbmZpZ1BhdGggKTsKKyAgICAgICByZXR1cm4gc0NvbmZpZ1BhdGg7
Cit9CisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOgorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0VlJQ
YXRoUmVnaXN0cnlGaWxlbmFtZSgpCit7CisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBHZXRP
cGVuVlJDb25maWdQYXRoKCk7CisgICAgICAgaWYgKCBzUGF0aC5lbXB0eSgpICkKKyAgICAgICAg
ICAgICAgcmV0dXJuICIiOworCisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzUGF0aCA9
IFBhdGhfSm9pbiggc1BhdGgsICJvcGVudnJwYXRocy52cnBhdGgiICk7CisjZWxpZiBkZWZpbmVk
ICggUE9TSVggKSAKKyAgICAgICBzUGF0aCA9IFBhdGhfSm9pbiggc1BhdGgsICJvcGVudnJwYXRo
cy52cnBhdGgiICk7CisjZWxzZQorICAgICAgICNlcnJvciAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0i
CisjZW5kaWYKKyAgICAgICBzUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKKyAgICAg
ICByZXR1cm4gc1BhdGg7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBDb252ZXJ0cyBKU09OIHRvIGEgaGlzdG9yeSBhcnJheQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitzdGF0aWMgdm9pZCBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggc3RkOjp2ZWN0b3I8IHN0ZDo6
c3RyaW5nID4gKnB2ZWNIaXN0b3J5LCBjb25zdCBKc29uOjpWYWx1ZSAmIHJvb3QsIGNvbnN0IGNo
YXIgKnBjaEFycmF5TmFtZSApCit7CisgICAgICAgaWYoICFyb290LmlzTWVtYmVyKCBwY2hBcnJh
eU5hbWUgKSApCisgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgIGNvbnN0IEpzb246OlZh
bHVlICYgYXJyYXlOb2RlID0gcm9vdFsgcGNoQXJyYXlOYW1lIF07CisgICAgICAgaWYoICFhcnJh
eU5vZGUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJWUiBQYXRoIFJlZ2lzdHJ5
IG5vZGUgJXMgaXMgbm90IGFuIGFycmF5XG4iLCBwY2hBcnJheU5hbWUgKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgIH0KKworICAgICAgIHB2ZWNIaXN0b3J5LT5jbGVhcigpOworICAg
ICAgIHB2ZWNIaXN0b3J5LT5yZXNlcnZlKCBhcnJheU5vZGUuc2l6ZSgpICk7CisgICAgICAgZm9y
KCB1aW50MzJfdCB1bkluZGV4ID0gMDsgdW5JbmRleCA8IGFycmF5Tm9kZS5zaXplKCk7IHVuSW5k
ZXgrKyApCisgICAgICAgeworICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCggYXJyYXlO
b2RlWyB1bkluZGV4IF0uYXNTdHJpbmcoKSApOworICAgICAgICAgICAgICBwdmVjSGlzdG9yeS0+
cHVzaF9iYWNrKCBzUGF0aCApOworICAgICAgIH0KK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vIFB1cnBvc2U6IENvbnZlcnRzIGEgaGlzdG9yeSBhcnJheSB0byBKU09OCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK3N0YXRpYyB2b2lkIFN0cmluZ0xpc3RUb0pzb24oIGNvbnN0IHN0ZDo6
dmVjdG9yPCBzdGQ6OnN0cmluZyA+ICYgdmVjSGlzdG9yeSwgSnNvbjo6VmFsdWUgJiByb290LCBj
b25zdCBjaGFyICpwY2hBcnJheU5hbWUgKQoreworICAgICAgIEpzb246OlZhbHVlICYgYXJyYXlO
b2RlID0gcm9vdFsgcGNoQXJyYXlOYW1lIF07CisgICAgICAgZm9yKCBhdXRvIGkgPSB2ZWNIaXN0
b3J5LmJlZ2luKCk7IGkgIT0gdmVjSGlzdG9yeS5lbmQoKTsgaSsrICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIGFycmF5Tm9kZS5hcHBlbmQoICppICk7CisgICAgICAgfQorfQorCisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiti
b29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OlRvSnNvblN0cmluZyggc3RkOjpzdHJpbmcgJnNK
c29uU3RyaW5nICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnUGF0aCA9IEdldFZSUGF0aFJl
Z2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBpZiggc1JlZ1BhdGguZW1wdHkoKSApCisgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0
cnlDb250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVnUGF0aCApOworICAgICAgIGlmKCBz
UmVnaXN0cnlDb250ZW50cy5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgc0pzb25TdHJpbmcgPSBzUmVnaXN0cnlDb250ZW50czsKKworICAgICAgIHJldHVy
biB0cnVlOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogTG9hZHMg
dGhlIGNvbmZpZyBmaWxlIGZyb20gaXRzIHdlbGwga25vd24gbG9jYXRpb24KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpCTG9hZEZyb21GaWxlKCkK
K3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnUGF0aCA9IEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5h
bWUoKTsKKyAgICAgICBpZiggc1JlZ1BhdGguZW1wdHkoKSApCisgICAgICAgeworICAgICAgICAg
ICAgICBWUkxvZyggIlVuYWJsZSB0byBkZXRlcm1pbmUgVlIgUGF0aCBSZWdpc3RyeSBmaWxlbmFt
ZVxuIiApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisgICAgICAg
c3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSBQYXRoX1JlYWRUZXh0RmlsZSggc1JlZ1Bh
dGggKTsKKyAgICAgICBpZiggc1JlZ2lzdHJ5Q29udGVudHMuZW1wdHkoKSApCisgICAgICAgewor
ICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byByZWFkIFZSIFBhdGggUmVnaXN0cnkgZnJv
bSAlc1xuIiwgc1JlZ1BhdGguY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorCisgICAgICAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgICAgICBKc29uOjpSZWFk
ZXIgcmVhZGVyOworCisgICAgICAgaWYoICFyZWFkZXIucGFyc2UoIHNSZWdpc3RyeUNvbnRlbnRz
LCByb290ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJVbmFibGUgdG8gcGFy
c2UgJXM6ICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpLCByZWFkZXIuZ2V0Rm9ybWF0dGVkRXJyb3JN
ZXNzYWdlcygpLmNfc3RyKCkgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
IH0KKworICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNSdW50aW1lUGF0aCwg
cm9vdCwgInJ1bnRpbWUiICk7CisgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZtX3Zl
Y0NvbmZpZ1BhdGgsIHJvb3QsICJjb25maWciICk7CisgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJv
bUpzb24oICZtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7CisgICAgICAgaWYgKHJvb3QuaXNN
ZW1iZXIoICJleHRlcm5hbF9kcml2ZXJzIiApICYmIHJvb3RbICJleHRlcm5hbF9kcml2ZXJzIiBd
LmlzQXJyYXkoKSApCisgICAgICAgeworICAgICAgICAgICAgICBQYXJzZVN0cmluZ0xpc3RGcm9t
SnNvbiggJm1fdmVjRXh0ZXJuYWxEcml2ZXJzLCByb290LCAiZXh0ZXJuYWxfZHJpdmVycyIgKTsK
KyAgICAgICB9CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IFNhdmVzIHRoZSBjb25maWcgZmlsZSB0byBpdHMgd2VsbCBrbm93
biBsb2NhdGlvbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3RyeV9Q
dWJsaWM6OkJTYXZlVG9GaWxlKCkgY29uc3QKK3sKKyNpZiBkZWZpbmVkKCBEQVNIQk9BUkRfQlVJ
TERfTU9ERSApCisgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICAgICBzdGQ6OnN0cmlu
ZyBzUmVnUGF0aCA9IEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBpZiggc1Jl
Z1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAKKyAg
ICAgICBKc29uOjpWYWx1ZSByb290OworICAgICAgIAorICAgICAgIHJvb3RbICJ2ZXJzaW9uIiBd
ID0gMTsKKyAgICAgICByb290WyAianNvbmlkIiBdID0gInZycGF0aHJlZyI7CisKKyAgICAgICBT
dHJpbmdMaXN0VG9Kc29uKCBtX3ZlY1J1bnRpbWVQYXRoLCByb290LCAicnVudGltZSIgKTsKKyAg
ICAgICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY0NvbmZpZ1BhdGgsIHJvb3QsICJjb25maWciICk7
CisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92ZWNMb2dQYXRoLCByb290LCAibG9nIiApOwor
ICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjRXh0ZXJuYWxEcml2ZXJzLCByb290LCAiZXh0
ZXJuYWxfZHJpdmVycyIgKTsKKworICAgICAgIEpzb246OlN0eWxlZFdyaXRlciB3cml0ZXI7Cisg
ICAgICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSB3cml0ZXIud3JpdGUoIHJvb3Qg
KTsKKworICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IHdlJ3JlIHdyaXRpbmcgaW50
byBhY3R1YWxseSBleGlzdHMKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnRGlyZWN0b3J5ID0gUGF0
aF9TdHJpcEZpbGVuYW1lKCBzUmVnUGF0aCApOworICAgICAgIGlmKCAhQkNyZWF0ZURpcmVjdG9y
eVJlY3Vyc2l2ZSggc1JlZ0RpcmVjdG9yeS5jX3N0cigpICkgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgVlJMb2coICJVbmFibGUgdG8gY3JlYXRlIHBhdGggcmVnaXN0cnkgZGlyZWN0b3J5ICVz
XG4iLCBzUmVnRGlyZWN0b3J5LmNfc3RyKCkgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgIH0KKworICAgICAgIGlmKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIHNS
ZWdQYXRoLCBzUmVnaXN0cnlDb250ZW50cy5jX3N0cigpICkgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgVlJMb2coICJVbmFibGUgdG8gd3JpdGUgVlIgcGF0aCByZWdpc3RyeSB0byAlc1xuIiwg
c1JlZ1BhdGguY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
fQorCisgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgcnVudGltZSBwYXRoIG9yIE5V
TEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6
OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRSdW50aW1lUGF0aCgpIGNvbnN0Cit7
CisgICAgICAgaWYoIG1fdmVjUnVudGltZVBhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJl
dHVybiAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY1J1bnRpbWVQ
YXRoLmZyb250KCkuY19zdHIoKTsKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1
cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgY29uZmlnIHBhdGggb3IgTlVMTCBpZiBubyBwYXRo
IGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkdldENvbmZpZ1BhdGgoKSBjb25zdAoreworICAgICAgIGlmKCBt
X3ZlY0NvbmZpZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY0NvbmZpZ1BhdGguZnJvbnQoKS5jX3N0
cigpOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyB0
aGUgY3VycmVudCBsb2cgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29uZmlndXJlZC4KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6
R2V0TG9nUGF0aCgpIGNvbnN0Cit7CisgICAgICAgaWYoIG1fdmVjTG9nUGF0aC5lbXB0eSgpICkK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0
dXJuIG1fdmVjTG9nUGF0aC5mcm9udCgpLmNfc3RyKCk7Cit9CisKKworCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgcGF0aHMgdXNpbmcgdGhlIHBhdGggcmVnaXN0
cnkgYW5kIHRoZSBwcm92aWRlZCBvdmVycmlkZSAKKy8vICAgICAgICAgICAgICAgICAgICAgdmFs
dWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9uJ3QgY2FyZSBhYm91dC4KKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocygg
c3RkOjpzdHJpbmcgKnBzUnVudGltZVBhdGgsIHN0ZDo6c3RyaW5nICpwc0NvbmZpZ1BhdGgsIHN0
ZDo6c3RyaW5nICpwc0xvZ1BhdGgsIGNvbnN0IGNoYXIgKnBjaENvbmZpZ1BhdGhPdmVycmlkZSwg
Y29uc3QgY2hhciAqcGNoTG9nUGF0aE92ZXJyaWRlLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g
KnB2ZWNFeHRlcm5hbERyaXZlcnMgKQoreworICAgICAgIENWUlBhdGhSZWdpc3RyeV9QdWJsaWMg
cGF0aFJlZzsKKyAgICAgICBib29sIGJMb2FkZWRSZWdpc3RyeSA9IHBhdGhSZWcuQkxvYWRGcm9t
RmlsZSgpOworICAgICAgIGludCBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9IDA7CisKKyAg
ICAgICBpZiggcHNSdW50aW1lUGF0aCApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIEdl
dEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoUnVudGltZU92ZXJyaWRlVmFyICkubGVuZ3RoKCkg
IT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQ
YXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgKTsK
KyAgICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggIXBhdGhSZWcuR2V0UnVudGltZVBh
dGgoKS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBz
UnVudGltZVBhdGggPSBwYXRoUmVnLkdldFJ1bnRpbWVQYXRoKCk7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAqcHNSdW50aW1lUGF0aCA9ICIiOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAg
ICAgaWYoIHBzQ29uZmlnUGF0aCApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIEdldEVu
dmlyb25tZW50VmFyaWFibGUoIGtfcGNoQ29uZmlnT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAw
ICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9
IEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoQ29uZmlnT3ZlcnJpZGVWYXIgKTsKKyAgICAg
ICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggcGNoQ29uZmlnUGF0aE92ZXJyaWRlICkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9IHBjaENv
bmZpZ1BhdGhPdmVycmlkZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlm
KCAhcGF0aFJlZy5HZXRDb25maWdQYXRoKCkuZW1wdHkoKSApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBwYXRoUmVnLkdldENvbmZpZ1BhdGgo
KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSAiIjsKKyAgICAgICAgICAgICAg
fQorICAgICAgIH0KKworICAgICAgIGlmKCBwc0xvZ1BhdGggKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBrX3BjaExvZ092ZXJyaWRlVmFyICku
bGVuZ3RoKCkgIT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpw
c0xvZ1BhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBrX3BjaExvZ092ZXJyaWRlVmFyICk7
CisgICAgICAgICAgICAgICAgICAgICBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcysrOworICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYoIHBjaExvZ1BhdGhPdmVycmlkZSAp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGggPSBwY2hM
b2dQYXRoT3ZlcnJpZGU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZigg
IXBhdGhSZWcuR2V0TG9nUGF0aCgpLmVtcHR5KCkgKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gcGF0aFJlZy5HZXRMb2dQYXRoKCk7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAqcHNMb2dQYXRoID0gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisK
KyAgICAgICBpZiAoIHB2ZWNFeHRlcm5hbERyaXZlcnMgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgKnB2ZWNFeHRlcm5hbERyaXZlcnMgPSBwYXRoUmVnLm1fdmVjRXh0ZXJuYWxEcml2ZXJzOwor
ICAgICAgIH0KKworICAgICAgIGlmICggbkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMgPT0gMyAp
CisgICAgICAgeworICAgICAgICAgICAgICAvLyBhbGwgdGhyZWUgZW52aXJvbm1lbnQgdmFyaWFi
bGVzIHdoZXJlIHNldCwgc28gd2UgZG9uJ3QgbmVlZCB0aGUgcGh5c2ljYWwgZmlsZQorICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gYkxvYWRlZFJl
Z2lzdHJ5OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjBkZTU2
ZjlkZjQwYWM1NTljODYxYmU1YTQ1MWFiNmRiMGMwOTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMu
aApAQCAtMCwwICsxLDQ1IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRp
b24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RyaW5nPgorI2lu
Y2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworc3RhdGljIGNvbnN0IGNoYXIg
KmtfcGNoUnVudGltZU92ZXJyaWRlVmFyID0gIlZSX09WRVJSSURFIjsKK3N0YXRpYyBjb25zdCBj
aGFyICprX3BjaENvbmZpZ092ZXJyaWRlVmFyID0gIlZSX0NPTkZJR19QQVRIIjsKK3N0YXRpYyBj
b25zdCBjaGFyICprX3BjaExvZ092ZXJyaWRlVmFyID0gIlZSX0xPR19QQVRIIjsKKworY2xhc3Mg
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYworeworcHVibGljOgorICAgICAgIHN0YXRpYyBzdGQ6OnN0
cmluZyBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7CisgICAgICAgc3RhdGljIHN0ZDo6c3Ry
aW5nIEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKKworcHVibGljOgorICAgICAgIENWUlBhdGhSZWdp
c3RyeV9QdWJsaWMoKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBwYXRo
IHJlZ2lzdHJ5IGFuZCB0aGUgcHJvdmlkZWQgb3ZlcnJpZGUgdmFsdWVzLiBQYXNzIE5VTEwgZm9y
IGFueSBwYXRocyB5b3UgZG9uJ3QgY2FyZSBhYm91dC4gCisgICAgICAgKiBSZXR1cm5zIGZhbHNl
IGlmIHRoZSBwYXRoIHJlZ2lzdHJ5IGNvdWxkIG5vdCBiZSByZWFkLiBWYWxpZCBwYXRocyBtaWdo
dCBzdGlsbCBiZSByZXR1cm5lZCBiYXNlZCBvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICovCisg
ICAgICAgc3RhdGljIGJvb2wgR2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRpbWVQYXRoLCBz
dGQ6OnN0cmluZyAqcHNDb25maWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRoLCBjb25zdCBj
aGFyICpwY2hDb25maWdQYXRoT3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1BhdGhPdmVycmlk
ZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJzID0gTlVMTCAp
OworCisgICAgICAgYm9vbCBCTG9hZEZyb21GaWxlKCk7CisgICAgICAgYm9vbCBCU2F2ZVRvRmls
ZSgpIGNvbnN0OworCisgICAgICAgYm9vbCBUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZzSnNv
blN0cmluZyApOworCisgICAgICAgLy8gbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgdmFsdWVz
CisgICAgICAgc3RkOjpzdHJpbmcgR2V0UnVudGltZVBhdGgoKSBjb25zdDsKKyAgICAgICBzdGQ6
OnN0cmluZyBHZXRDb25maWdQYXRoKCkgY29uc3Q7CisgICAgICAgc3RkOjpzdHJpbmcgR2V0TG9n
UGF0aCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgICAgdHlwZWRlZiBzdGQ6OnZlY3Rvcjwg
c3RkOjpzdHJpbmcgPiBTdHJpbmdWZWN0b3JfdDsKKworICAgICAgIC8vIGluZGV4IDAgaXMgdGhl
IGN1cnJlbnQgc2V0dGluZworICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjUnVudGltZVBhdGg7
CisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNMb2dQYXRoOworICAgICAgIFN0cmluZ1ZlY3Rv
cl90IG1fdmVjQ29uZmlnUGF0aDsKKworICAgICAgIC8vIGZ1bGwgbGlzdCBvZiBleHRlcm5hbCBk
cml2ZXJzCisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNFeHRlcm5hbERyaXZlcnM7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggMzU2MjM0MjNkODE1OTcyZjRhZGQ3NDFjZDhkMWE1YTIwYzhlZDFhMy4u
ZTU3ZGY1MTc1NTg1NzgyNjkzN2E0YzU4MWZkNTNlZDM2M2QyOWY3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBA
IC0xMjc4LDQgKzEyNzgsOCBAQAogI2RlZmluZSBIQVZFX1NUQUNLX0JPVU5EU19GT1JfTkVXX1RI
UkVBRCAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9PUEVOVlIgMQorI2VuZGlmCisKICNlbmRpZiAvKiBX
VEZfUGxhdGZvcm1faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxY2I3ZTdiZDFiYTdhNzI5
NWNiNTI1MzQzODVhODY3MGFhZjMzMjczLi5iNmQyZmM1ODNhMDFkMDE0NzBmZWY4YWFjOWVjNjMz
NWM1NjQxMGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzYzNCw2ICszNjM0LDExIEBAIGlm
IChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChV
U0VfT1BFTlZSKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgIiR7
VEhJUkRQQVJUWV9ESVJ9L29wZW52ci9oZWFkZXJzIikKKyAgbGlzdChBUFBFTkQgV2ViQ29yZV9M
SUJSQVJJRVMgb3BlbnZyX2FwaSkKK2VuZGlmICgpCisKIGlmIChVU0VfV09GRjIpCiAgIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtUSElSRFBBUlRZX0RJUn0vd29m
ZjIvc3JjIikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgd29mZjIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDAw
NmViZjkxMWRkOTk2M2NmNTMwN2RhOGI1YjM3MTI2MjA0ZWU3ZS4uNzAzYTYzZWFjYTUxNGNiMmVi
NDRiZTA4Y2I1ZDNmOWZhZWM5NjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzc3MSw2ICszNzcxLDcgQEAKIAkJOEFGNEU1
NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1OTExREM1QTYzMDAwRUQzREUg
LyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0Qzk2REMxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNl
LmNwcCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2
RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oICovOyB9OworCQk4RTc5NDJB
NzFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDJBNjFGNkJFN0ZCMDA1N0I4MDMgLyogbGli
b3BlbnZyLmEgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUmVxdWlyZWQsICk7IH07IH07
CiAJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FD
QTMgLyogRXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCThGQUM3NzREMTE5ODcyQ0IwMDE1QUU5NCAvKiBKU01haW5UaHJlYWRFeGVj
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgKi87
IH07CiAJCTkwMDE3NzQwMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3
NzNEMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsK
QEAgLTEyMTM3LDYgKzEyMTM4LDcgQEAKIAkJOEFGNEU1NUExMURDNUE2MzAwMEVEM0RFIC8qIFBl
cmZvcm1hbmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZVRp
bWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThFNEM5NkQ4MUFENDQ4MzUw
MDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGZXRjaFJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEU3OTQyQTYxRjZCRTdGQjAwNTdCODAzIC8qIGxpYm9wZW52
ci5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXJj
aGl2ZS5hcjsgbmFtZSA9IGxpYm9wZW52ci5hOyBwYXRoID0gLi4vVGhpcmRQYXJ0eS9vcGVudnIv
YnVpbGQvRGVidWcvbGlib3BlbnZyLmE7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThG
Njc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOEY5MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01haW5UaHJlYWRFeGVjU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8q
IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTYzMzAsNiArMTYzMzIsNyBAQAogCQkJCTkzRjE5QjE2MDgyNDVFNTkwMDFFOUFC
QyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQk5M0Yx
OUIxNzA4MjQ1RTU5MDAxRTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICov
LAogCQkJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1l
d29ya3MgKi8sCisJCQkJOEU3OTQyQTcxRjZCRTdGQjAwNTdCODAzIC8qIGxpYm9wZW52ci5hIGlu
IEZyYW1ld29ya3MgKi8sCiAJCQkJMUMwOUQwNTkxRTMxQzZBOTAwNzI1RjE4IC8qIGxpYlBBTC5h
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJREQ3NjNCQjIwOTkyQzJDOTAwNzQwQjhFIC8qIGxpYnht
bDIuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkzNzk5MTlCMjEyMDBERTUwMDBFQTA0MUMg
LyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovLApAQCAtMTY4NDksNiArMTY4NTIsNyBAQAog
CQkJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
Ki8sCiAJCQkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8s
CiAJCQkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi8sCisJCQkJ
OEU3OTQyQTYxRjZCRTdGQjAwNTdCODAzIC8qIGxpYm9wZW52ci5hICovLAogCQkJCURENzYzQkIx
MDk5MkMyQzkwMDc0MEI4RSAvKiBsaWJ4bWwyLmR5bGliICovLAogCQkJCTM3OTkxOUIxMTIwMERF
NTAwMEVBMDQxQyAvKiBsaWJ6LmR5bGliICovLAogCQkJCUE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3
MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYTFjNDhmMTAzYTFiODQwOGEwZjMzOGRhYmZiMzZl
MmViZGE1MWE0Li5jZmQ2OGYwYzcxMzJkMDQ1NzU4ZGIyMGZjZmQ2ODRkMzc5ZTdlMjkxIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTctMDktMjIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUg
YnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy9idWlsZC13ZWJraXQ6IEJ1aWxkIE9wZW5WUiBiZWZvcmUgV2ViQ29yZS4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6IEFkZGVkIG9wZW52ciB0byB0
aGUgbGlzdCBvZiB0aGlyZCBwYXJ0eSBsaWJyYXJpZXMKKyAgICAgICAgd2l0aCByZWR1Y2VkIHN0
eWxlIGNoZWNrcy4KKwogMjAxNy0wOS0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TIERuRF0gU3VwcG9ydCBEYXRhVHJhbnNmZXIuZ2V0RGF0
YSBhbmQgRGF0YVRyYW5zZmVyLnNldERhdGEgd2hlbiBkcmFnZ2luZyBvciBkcm9wcGluZwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAppbmRleCAxODFlMzNjZDZiMjhjNzIwYmNlZjgwYTAwODIzNzBjZDYzZDIwMzY4Li4z
Njg1ZGZjYmE2ZjdhYjZjODE3Y2E2MjZmODc0Zjg5ZjNjOTU1MDkxIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApA
QCAtMTg4LDggKzE4OCw5IEBAIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICAgICBw
dXNoIEBvcHRpb25zLCAkb3B0aW9uIHVubGVzcyAkb3B0aW9uIGVxICIiOwogICAgIH0KIAotICAg
ICMgQU5HTEUgYW5kIGxpYndlYnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdlYkNvcmUKKyAgICAjIEFO
R0xFLCBPcGVuVlIgYW5kIGxpYndlYnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdlYkNvcmUKICAgICBz
cGxpY2UgQHByb2plY3RzLCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFIik7CisgICAg
c3BsaWNlIEBwcm9qZWN0cywgMCwgMCwgKCJTb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIiKTsKICAg
ICBpZiAobm90ICRhcmNoczMyYml0IGFuZCAoKHBvcnROYW1lKCkgZXEgTWFjIGFuZCBub3QgYXJj
aGl0ZWN0dXJlKCkgZXEgImkzODYiKSBvciAKICAgICAgICAgKHBvcnROYW1lKCkgZXEgaU9TIGFu
ZCAoYXJjaGl0ZWN0dXJlKCkgZXEgImFybTY0IiBvciBhcmNoaXRlY3R1cmUoKSBlcSAieDg2XzY0
IikpKSkgewogICAgICAgICBzcGxpY2UgQHByb2plY3RzLCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0YyIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5Cmlu
ZGV4IGJhZDU3NmNkM2Y0NzE1YWE2OTY4MzVmY2M2YTQ4YTNlNjgxNWEzZTUuLmJlNTIwMzVjNWJj
NTg4ODFjMTA0OWY3ZTM1MDllN2M1ZWFlNTE0OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkKQEAgLTIxNCw2ICsyMTQsNyBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIg
PSBbCiAgICAgKFtvcy5wYXRoLmpvaW4oJ3dlYmtpdHB5JywgJ3RoaXJkcGFydHknKSwKICAgICAg
IG9zLnBhdGguam9pbignU291cmNlJywgJ1RoaXJkUGFydHknLCAnQU5HTEUnKSwKICAgICAgIG9z
LnBhdGguam9pbignU291cmNlJywgJ1RoaXJkUGFydHknLCAnYnJvdGxpJyksCisgICAgICBvcy5w
YXRoLmpvaW4oJ1NvdXJjZScsICdUaGlyZFBhcnR5JywgJ29wZW52cicpLAogICAgICAgb3MucGF0
aC5qb2luKCdTb3VyY2UnLCAnVGhpcmRQYXJ0eScsICd3b2ZmMicpLAogICAgICAgb3MucGF0aC5q
b2luKCdTb3VyY2UnLCAnVGhpcmRQYXJ0eScsICd4ZGdtaW1lJyldLAogICAgICBbIi0iLApkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk2YzdjZWQ4NzBjM2NhMjA5NTU5
ZjY2NjkyMTNjMWFjZTZkNzQyMjcuLjVkNzFiODUzY2RhZjhjNDg0YzY1NmFmZTM2YjI1N2Q3NDlk
MWM0ZTYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxNy0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KKworICAgICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBi
dWlsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRl
bnRzLnhjd29ya3NwYWNlZGF0YToKKwogMjAxNy0wOS0wNyAgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
byAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW0NNYWtlXSBBZGQgImRpc3Qi
IGFuZCAiZGlzdGNoZWNrIiB0YXJnZXRzCmRpZmYgLS1naXQgYS9XZWJLaXQueGN3b3Jrc3BhY2Uv
Y29udGVudHMueGN3b3Jrc3BhY2VkYXRhIGIvV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhj
d29ya3NwYWNlZGF0YQppbmRleCAyZTU5OTBmYWJmMjgxYWU4ZDRmMjVhYTUzNTkzNDEyNGMxMWVm
MTZjLi4xYWI1NTgxMjIxMzkzMGQxYTg3OWJlMGI4NzU5Y2NlNzJmMDk4NWQyIDEwMDY0NAotLS0g
YS9XZWJLaXQueGN3b3Jrc3BhY2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhCisrKyBiL1dlYktp
dC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEKQEAgLTEsNiArMSw5IEBACiA8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPFdvcmtzcGFjZQogICAgdmVy
c2lvbiA9ICIxLjAiPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOlNvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9vcGVudnIueGNvZGVwcm9qIj4KKyAgIDwvRmlsZVJlZj4KICAg
IDxGaWxlUmVmCiAgICAgICBsb2NhdGlvbiA9ICJncm91cDpTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
Lnhjb2RlcHJvaiI+CiAgICA8L0ZpbGVSZWY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321554</attachid>
            <date>2017-09-22 09:14:28 -0700</date>
            <delta_ts>2017-09-25 07:57:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20170922181425.patch</filename>
            <type>text/plain</type>
            <size>1268666</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggZWQ1ZmE1ODcz
NGYxYTA3Y2EyY2U3M2FjZGM3NWNlMjY0YzI4YTdjYi4uZTMwMDlkZTQ1NGNhNGVjNmRhMDNjNDFl
ZmZhZTFiZDNiNDVhMzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MSBAQAorMjAx
Ny0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRl
ZC4KKyAgICAgICAgKiBvcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICogb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL1JFQURNRTog
QWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAq
IG9wZW52ci9zcmMvanNvbi9qc29uLmg6IEFkZGVkLgorICAgICAgICAoc3RkOjpzd2FwKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL2pzb25jcHAuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpzb246OmNv
ZGVQb2ludFRvVVRGOCk6CisgICAgICAgIChKc29uOjppc0NvbnRyb2xDaGFyYWN0ZXIpOgorICAg
ICAgICAoSnNvbjo6dWludFRvU3RyaW5nKToKKyAgICAgICAgKEpzb246OmZpeE51bWVyaWNMb2Nh
bGUpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OkZlYXR1cmVzKToKKyAgICAgICAgKEpzb246
OkZlYXR1cmVzOjphbGwpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OnN0cmljdE1vZGUpOgor
ICAgICAgICAoSnNvbjo6Y29udGFpbnNOZXdMaW5lKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6
UmVhZGVyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpyZWFkVmFsdWUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpza2lwQ29tbWVudFRv
a2Vucyk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRUb2tlbik6CisgICAgICAgIChKc29u
OjpSZWFkZXI6OnNraXBTcGFjZXMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjptYXRjaCk6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRDb21tZW50KToKKyAgICAgICAgKEpzb246Om5vcm1h
bGl6ZUVPTCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAo
SnNvbjo6UmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6
OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkTnVtYmVy
KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpS
ZWFkZXI6OnJlYWRPYmplY3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQXJyYXkpOgor
ICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpkZWNvZGVEb3VibGUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVTdHJpbmcp
OgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAg
ICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAg
KEpzb246OlJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWNvdmVy
RnJvbUVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvblNu
aXBwZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVz
c2FnZXMgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9y
cyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChK
c29uOjpSZWFkZXI6Omdvb2QgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyRmVhdHVyZXM6OmFs
bCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Ok91clJlYWRlcik6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZFZhbHVl
KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
Ojpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6bWF0Y2gpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFk
ZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29t
bWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRTdHJp
bmdTaW5nbGVRdW90ZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRPYmplY3QpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQXJyYXkpOgorICAgICAgICAoSnNvbjo6T3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVE
b3VibGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWNv
dmVyRnJvbUVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNv
dmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Omdvb2QgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6T3VyQ2hhclJlYWRlcjo6T3VyQ2hhclJlYWRlcik6CisgICAgICAg
IChKc29uOjpPdXJDaGFyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVy
QnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVp
bGRlcjo6bmV3Q2hhclJlYWRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFJlYWRl
cktleXMpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKToKKyAgICAg
ICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKToKKyAgICAgICAgKEpzb246
OkNoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAgIChKc29uOjpwYXJzZUZy
b21TdHJlYW0pOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I+Pik6CisgICAgICAgIChKc29uOjpW
YWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmRlcmVmIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjppbmNyZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmRl
Y3JlbWVudCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3Rh
bmNlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KToKKyAgICAgICAg
KEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjprZXkgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpt
ZW1iZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChKc29uOjpJblJhbmdlKToKKyAgICAgICAg
KEpzb246OmludGVnZXJUb0RvdWJsZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVTdHJpbmdW
YWx1ZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpkZWNvZGVQcmVmaXhlZFN0cmluZyk6CisgICAgICAgIChKc29uOjpyZWxl
YXNlU3RyaW5nVmFsdWUpOgorICAgICAgICAoSnNvbjo6RXhjZXB0aW9uOjpFeGNlcHRpb24pOgor
ICAgICAgICAoSnNvbjo6dGhyb3cpOgorICAgICAgICAoSnNvbjo6UnVudGltZUVycm9yOjpSdW50
aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6TG9naWNFcnJvcjo6TG9naWNFcnJvcik6CisgICAg
ICAgIChKc29uOjp0aHJvd1J1bnRpbWVFcnJvcik6CisgICAgICAgIChKc29uOjp0aHJvd0xvZ2lj
RXJyb3IpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbyk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbyk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pT
dHJpbmc6On5DWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
OjpDWlN0cmluZzo6aW5kZXggY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5n
OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6bGVuZ3RoIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OlZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVl
Ojp+VmFsdWUpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6c3dhcFBheWxvYWQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnN3YXApOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OnR5cGUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmNvbXBhcmUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPCBjb25zdCk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3I+IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjphc0NTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldFN0cmluZyBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNTdHJpbmcgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmFzQ29uc3RTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc1VJbnQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmFzSW50NjQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RJbnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdFVJbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OmFzRG91YmxlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0Jvb2wgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzQ29udmVydGlibGVUbyBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6ZW1wdHkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6Y2xlYXIpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnJlc2l6ZSk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aW5pdEJhc2ljKToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpn
ZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzVmFsaWRJbmRleCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6ZmluZCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
YXBwZW5kKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OnJlbW92ZUluZGV4KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc01lbWJl
ciBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6SXNJbnRlZ3JhbCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdWxs
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0Jvb2wgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1VJbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzSW50NjQgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0lu
dGVncmFsIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0RvdWJsZSBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdW1lcmljIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjppc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNBcnJheSBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNPYmplY3QgY29uc3QpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnNldENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Omhhc0NvbW1lbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldENvbW1lbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OnNldE9mZnNldFN0YXJ0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpz
ZXRPZmZzZXRMaW1pdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldExpbWl0IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjp0b1N0eWxlZFN0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpW
YWx1ZTo6YmVnaW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6YmVnaW4pOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCk6
CisgICAgICAgIChKc29uOjpQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCk6CisgICAgICAgIChK
c29uOjpQYXRoOjpQYXRoKToKKyAgICAgICAgKEpzb246OlBhdGg6Om1ha2VQYXRoKToKKyAgICAg
ICAgKEpzb246OlBhdGg6OmFkZFBhdGhJbkFyZyk6CisgICAgICAgIChKc29uOjpQYXRoOjppbnZh
bGlkUGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjpyZXNvbHZlIGNvbnN0KToKKyAgICAgICAg
KEpzb246OlBhdGg6Om1ha2UgY29uc3QpOgorICAgICAgICAoSnNvbjo6Y29udGFpbnNDb250cm9s
Q2hhcmFjdGVyKToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENoYXJhY3RlcjApOgor
ICAgICAgICAoSnNvbjo6dmFsdWVUb1N0cmluZyk6CisgICAgICAgIChKc29uOjp2YWx1ZVRvUXVv
dGVkU3RyaW5nKToKKyAgICAgICAgKEpzb246OnN0cm5wYnJrKToKKyAgICAgICAgKEpzb246OnZh
bHVlVG9RdW90ZWRTdHJpbmdOKToKKyAgICAgICAgKEpzb246OldyaXRlcjo6fldyaXRlcik6Cisg
ICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpGYXN0V3JpdGVyKToKKyAgICAgICAgKEpzb246OkZh
c3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KToKKyAgICAgICAgKEpzb246OkZhc3RX
cml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKToKKyAgICAgICAgKEpzb246OkZhc3RXcml0ZXI6
Om9taXRFbmRpbmdMaW5lRmVlZCk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZSk6
CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRl
cjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVZhbHVlKToKKyAg
ICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpz
b246OlN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjpwdXNoVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUlu
ZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudCk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHls
ZWRXcml0ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVD
b21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OlN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6
CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAg
ICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp1
bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFt
V3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OkJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNv
bjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAg
IChKc29uOjpTdHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHJl
YW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyOjpG
YWN0b3J5Ojp+RmFjdG9yeSk6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpT
dHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxk
ZXI6Om5ld1N0cmVhbVdyaXRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFdyaXRl
cktleXMpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUgY29u
c3QpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6Cisg
ICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAg
IChKc29uOjp3cml0ZVN0cmluZyk6CisgICAgICAgIChKc29uOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBvcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgICh2
cjo6VlJfR2V0SW5pdFRva2VuKToKKyAgICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwyKToKKyAg
ICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duSW50
ZXJuYWwpOgorICAgICAgICAodnI6OlZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCk6CisgICAgICAg
ICh2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSk6CisgICAgICAgICh2cjo6VlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQpOgorICAgICAgICAodnI6OlZSX0lzSG1kUHJlc2VudCk6CisgICAgICAg
ICh2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKToKKyAgICAgICAgKHZyOjpWUl9SdW50aW1lUGF0
aCk6CisgICAgICAgICh2cjo6VlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCk6CisgICAgICAgICh2
cjo6VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbik6CisgICAgICAgICh2cjo6
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5UmVj
dXJzaXZlKToKKyAgICAgICAgKEJDcmVhdGVEaXJlY3RvcnkpOgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKToKKyAgICAgICAgKFNldEVudmlyb25tZW50VmFyaWFibGUpOgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IEFkZGVk
LgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHA6IEFk
ZGVkLgorICAgICAgICAoR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKEdl
dElERm9yVlJJbml0RXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJy
b3JzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0
b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgp
OgorICAgICAgICAoUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKFBhdGhfU2V0
V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRmlsZW5hbWUpOgorICAgICAg
ICAoUGF0aF9TdHJpcERpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRXh0ZW5zaW9uKToK
KyAgICAgICAgKFBhdGhfR2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFBhdGhfSXNBYnNvbHV0ZSk6
CisgICAgICAgIChQYXRoX01ha2VBYnNvbHV0ZSk6CisgICAgICAgIChQYXRoX0ZpeFNsYXNoZXMp
OgorICAgICAgICAoUGF0aF9HZXRTbGFzaCk6CisgICAgICAgIChQYXRoX0pvaW4pOgorICAgICAg
ICAoUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKToKKyAgICAgICAgKFBhdGhfQ29tcGFjdCk6Cisg
ICAgICAgIChQYXRoX0dldFRoaXNNb2R1bGVQYXRoKToKKyAgICAgICAgKFBhdGhfSXNEaXJlY3Rv
cnkpOgorICAgICAgICAoUGF0aF9Jc0FwcEJ1bmRsZSk6CisgICAgICAgIChQYXRoX0V4aXN0cyk6
CisgICAgICAgIChQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAg
IChQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAgIChQYXRo
X1JlYWRCaW5hcnlGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVCaW5hcnlGaWxlKToKKyAgICAg
ICAgKFBhdGhfUmVhZFRleHRGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRG
aWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKToKKyAgICAg
ICAgKFBhdGhfRmlsZVBhdGhUb1VybCk6CisgICAgICAgIChQYXRoX1VybFRvRmlsZVBhdGgpOgor
ICAgICAgICAoR2V0VXNlckRvY3VtZW50c1BhdGgpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU2hhcmVk
TGliX0xvYWQpOgorICAgICAgICAoU2hhcmVkTGliX0dldEZ1bmN0aW9uKToKKyAgICAgICAgKFNo
YXJlZExpYl9VbmxvYWQpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGli
dG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3Ry
dG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChTdHJpbmdIYXNQcmVmaXgpOgorICAg
ICAgICAoU3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAgIChTdHJpbmdIYXNT
dWZmaXgpOgorICAgICAgICAoU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAg
IChVVEYxNnRvOCk6CisgICAgICAgIChVVEY4dG8xNik6CisgICAgICAgIChzdHJjcHlfc2FmZSk6
CisgICAgICAgIChTdHJpbmdUb1VwcGVyKToKKyAgICAgICAgKFN0cmluZ1RvTG93ZXIpOgorICAg
ICAgICAoUmV0dXJuU3RkU3RyaW5nKToKKyAgICAgICAgKEJ1ZmZlclRvU3RkU3RyaW5nKToKKyAg
ICAgICAgKFVpbnQ2NFRvU3RyaW5nKToKKyAgICAgICAgKFN0cmluZ1RvVWludDY0KToKKyAgICAg
ICAgKGNJbnRUb0hleERpZ2l0KToKKyAgICAgICAgKGlIZXhDaGFyVG9JbnQpOgorICAgICAgICAo
Vl9VUkxFbmNvZGVJbnRlcm5hbCk6CisgICAgICAgIChWX1VSTERlY29kZUludGVybmFsKToKKyAg
ICAgICAgKFZfVVJMRW5jb2RlKToKKyAgICAgICAgKFZfVVJMRGVjb2RlKToKKyAgICAgICAgKFZf
U3RyaXBFeHRlbnNpb24pOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmg6IEFkZGVkLgorICAgICAgICAoc3RyaWNtcCk6CisgICAgICAgIChzdHJuaWNtcCk6
CisgICAgICAgICh3Y3NuY3B5X3MpOgorICAgICAgICAoc3RybmNweV9zKToKKyAgICAgICAgKHN0
cnRvdWxsKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1
YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0QXBwU2V0dGluZ3NQYXRoKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMpOgorICAgICAg
ICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCk6CisgICAgICAg
IChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKToKKyAg
ICAgICAgKFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKToKKyAgICAgICAgKFN0cmluZ0xpc3RUb0pz
b24pOgorICAgICAgICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5nKToKKyAg
ICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUgY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGggY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQ
YXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBhdGhS
ZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9u
L3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBBZGRlZC4KKwogMjAxNy0wOC0wOCAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBQcm9w
ZXJseSB0ZXN0IGlmIGNvbXBpbGVyIHN1cHBvcnRzIGNvbXBpbGVyIGZsYWdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNhY2Q4
MjNjMzdjZDIwMTRlODAzNzUwYjczOTRkNTgxYzJkMjMyZjIuLjBjZDZjMjE4NzE1MTQ5Nzk0Yjk2
YTE5ODA3ZTMxNDdjOTkxYTUzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDktMjIgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZS
XSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IERlZmlu
ZSBVU0VfT1BFTlZSIGZvciBHdGssIE1hYyBhbmQgV1BFLgorCiAyMDE3LTA5LTIxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBTdHJp
bmdCdWlsZGVyIG1vdmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDgzNTBjMTAzNjkyZGJiYzZmOGVhODI1
ZGJkMWI5YmU5YTdmMGJjLi5jNjgwZmNhYTRkN2MzMmE4M2QzOGJlMGI3NGIzM2U3NWQ1NTA2ODA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjIgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZS
IHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGJ1aWxkIGRlcGVuZGVuY2llcyB3aXRoIHRoZSBP
cGVuVlIgbGlicmFyeS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wOS0yMiAgTmFlbCBPdWVk
cmFvZ28gIDxuYWVsLm91ZWRyYW9nb0BjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW0dUS10gSFRN
TE1lZGlhRWxlbWVudCByZXNpemUgZXZlbnQgbm90IGZpcmVkIHdoZW4gdmlkZW8gc2l6ZSBjaGFu
Z2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0
cy50eHQKaW5kZXggMzFmY2Q4OWZjMGIwN2NiNTZhOGNmMzgzZmI3N2UyNGMyMGI1Y2NjOS4uOGQ5
MWU2ZmI2YmEyNjU3NzMyNjBkODZjOWYwZWNjMDA0YjgwMTZmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIsNiArMjIs
MTAgQEAgaWYgKFVTRV9XT0ZGMikKICAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvd29m
ZjIpCiBlbmRpZiAoKQogCitpZiAoVVNFX09QRU5WUikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFRo
aXJkUGFydHkvb3BlbnZyKQorZW5kaWYgKCkKKwogaWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9z
dWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS94ZGdtaW1lKQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTNhN2Y5MGNmODRjMjFkYTg0ZDBi
YTVmYzI4ZjE0ZDY4ZGEyY2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsNTggQEAKKyMgU2V0IHRoZSBtaW5pbXVt
IHJlcXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KK2NtYWtlX21pbmlt
dW1fcmVxdWlyZWQoVkVSU0lPTiAyLjgpCisKKyMgU2V0dXAgc29tZSBvcHRpb25zLgorb3B0aW9u
KEJVSUxEX1NIQVJFRCAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYp
CitvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9O
KQorb3B0aW9uKFVTRV9DVVNUT01fTElCQ1hYICJVc2VzIGEgY3VzdG9tIGxpYmMrKyIgT0ZGKQor
CithZGRfZGVmaW5pdGlvbnMoIC1EVlJfQVBJX1BVQkxJQyApCisKKyMgQ2hlY2sgaWYgMzIgb3Ig
NjQgYml0IHN5c3RlbS4KK3NldChTSVpFT0ZfVk9JRFAgJHtDTUFLRV9TSVpFT0ZfVk9JRF9QfSkK
K2lmKENNQUtFX1NJWkVPRl9WT0lEX1AgRVFVQUwgOCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICI2
NCIpCitlbHNlKCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICIzMiIpCitlbmRpZigpCisKKyMgR2V0
IHBsYXRmb3JtLgoraWYoV0lOMzIpCisgICAgICAgc2V0KFBMQVRGT1JNX05BTUUgIndpbiIpCitl
bHNlaWYoVU5JWCBBTkQgTk9UIEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVT
ICIuKkxpbnV4IikKKyAgICBzZXQoUExBVEZPUk1fTkFNRSAibGludXgiKQorICAgIGFkZF9kZWZp
bml0aW9ucygtRExJTlVYIC1EUE9TSVgpCisgICAgaWYoUFJPQ0VTU09SX0FSQ0ggTUFUQ0hFUyAi
NjQiKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURMSU5VWDY0KQorICAgIGVuZGlmKCkKKyAg
ZW5kaWYoKQorZWxzZWlmKEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIu
KkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioiKQorICAg
IHNldChQTEFURk9STV9OQU1FICJvc3giKQorICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAtRFBP
U0lYKQorICBlbmRpZigpCitlbmRpZigpCisKKyMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KK2lm
KENNQUtFX0NPTVBJTEVSX0lTX0dOVUNDIE9SIENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAi
Q2xhbmciKQorICAgICAgICMgRW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hv
dWxkbid0IGJlIHZpc2libGUKKyAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NY
WF9GTEFHU30gLXN0ZD1jKysxMSAtZlBJQyAtZnZpc2liaWxpdHk9aGlkZGVuIikKKworICAgICAg
ICMgU2V0IGN1c3RvbSBsaWJjKysgdXNhZ2UgaGVyZQorICAgICAgIGlmKENNQUtFX0NfQ09NUElM
RVJfSUQgTUFUQ0hFUyAiQ2xhbmciIEFORCBVU0VfTElCQ1hYKQorICAgICAgICAgICAgICBpZihV
U0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICAgICAgICAgICAgICAgIGlmKEJVSUxEX1NIQVJFRCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
UyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAg
ICAgICAgICAgICAgICBlbmRpZigpCisgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hY
X0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLW5vc3RkaW5jKysiKQorICAgICAgICAgICAgICAg
ICAgICAgaW5jbHVkZV9kaXJlY3RvcmllcyggJHtMSUJDWFhfSU5DTFVERX0gJHtMSUJDWFhfQUJJ
X0lOQ0xVREV9KQorICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIlVzaW5nIGN1
c3RvbSBsaWJjKysiKQorICAgICAgICAgICAgICBlbHNlKCkKKyAgICAgICAgICAgICAgICAgICAg
IHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIp
CisgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgbGliYysrIikKKyAg
ICAgICAgICAgICAgZW5kaWYoKQorICAgICAgIGVuZGlmKCkKK2VuZGlmKCkKKworYWRkX3N1YmRp
cmVjdG9yeShzcmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5T
RSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlODMzMzdk
N2ZjYjcyNmQxNGNjMTBmN2RkMmZkYTY3OTlkOGExMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRQpAQCAtMCwwICsxLDI3IEBACitDb3B5cmlnaHQg
KGMpIDIwMTUsIFZhbHZlIENvcnBvcmF0aW9uCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQgbW9kaWZpY2F0aW9uLAorYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKK2xpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCit0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Y29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKK21heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0CitzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQKK0FOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECitXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CitESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CitMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KK0FOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvUkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OTc2ZDYyMmY2YWQzZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApAQCAtMCwwICsxLDEz
IEBACitPcGVuVlIgU0RLCistLS0KKworT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0
IGFsbG93cyBhY2Nlc3MgdG8gVlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKK3ZlbmRvcnMgd2l0
aG91dCByZXF1aXJpbmcgdGhhdCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ug
b2YgdGhlIAoraGFyZHdhcmUgdGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMg
YW4gU0RLIHRoYXQgY29udGFpbnMgdGhlIEFQSSAKK2FuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBp
cyB1bmRlciBTdGVhbVZSIGluIFRvb2xzIG9uIFN0ZWFtLiAKKworIyMjIERvY3VtZW50YXRpb24K
KworRG9jdW1lbnRhdGlvbiBmb3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIg
V2lraV0oaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURv
Y3VtZW50YXRpb24pCisKK01vcmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNh
biBiZSBmb3VuZCBvbiBodHRwOi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9SRUFETUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JF
QURNRS53ZWJraXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZlZTRjMWRjNDg5NTdkOGMxMTYyMDgzYWI0OTNlNmMx
NWQwOGVkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgaXMgdGhlIE9wZW5WUiBsaWJyYXJ5IGZy
b20KK2h0dHBzOi8vZ2l0aHViLmNvbS9WYWx2ZVNvZnR3YXJlL29wZW52cgorCitVcHN0cmVhbSBj
b2RlIGNhbiBiZSB2aWV3ZWQgYXQKKyBodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9v
cGVudnIvdHJlZS9tYXN0ZXIvCisKK2FuZCBjbG9uZWQgYnkKKyBnaXQgY2xvbmUgaHR0cHM6Ly9n
aXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyLmdpdAorCitDdXJyZW50IHZlcnNpb246IFtj
b21taXQgZWJkZWExNTJmOGFhYzc3ZTlhNmRiMjk2ODJiODFkNzYyMTU5ZGY3ZV0KKword2hpY2gg
Y29ycmVzcG9uZHMgdG8gMS4wLjEwIHJlbGVhc2UuCisKK1dlYktpdCBjaGFuZ2VzOgorKiBwYXRj
aGVzL2NtYWtlLWJ1aWxkLnBhdGNoOiBzY3JpcHQgdXNlZCB0byBhbGxvdyBvcGVudnIgQ01ha2Ug
YnVpbGQgdG8gYmUKK2ludGVncmF0ZWQgaW50byBXZWJLaXQgYnVpbGQKKyogUmVtb3ZlZCBiaW4v
IGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJp
ZXMKKyogUmVtb3ZlZCBsaWIvIGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBw
cmVjb21waWxlZCBsaWJyYXJpZXMKKyogUmVtb3ZlZCBjb250cm9sbGVyX2NhbGxvdXRzLyBkaXJl
Y3RvcnkuIFVubmVlZGVkIGRvY3MKKyogUmVtb3ZlZCBzYW1wbGVzLyBkaXJlY3RvcnkuCisqIEFk
ZGVkIG9wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qLiBNYW51YWxseSBnZW5lcmF0ZWQg
Zm9yIFhjb2RlIGJ1aWxkLgorKiBSZXBsYWNlZCB0YWJzIGJ5IHdoaXRlc3BhY2VzIHRvIG1ha2Ug
Y2hlY2std2Via2l0LXN0eWxlIGhhcHB5LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2Ug
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvVG9vbGNoYWluLWNsYW5nLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZiNmIwYWMwMTc1YTZlMzRiNTM5MDJmNGY1ZjRhMjI4OWMxOTcxOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvVG9vbGNoYWluLWNsYW5nLmNtYWtlCkBA
IC0wLDAgKzEsOSBAQAorc2V0KENNQUtFX1NZU1RFTV9OQU1FIExpbnV4KQorCitzZXQoQ01BS0Vf
Q19DT01QSUxFUiBjbGFuZykKK3NldChDTUFLRV9DWFhfQ09NUElMRVIgY2xhbmcrKykKKworc2V0
KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUFJPR1JBTSBORVZFUikKK3NldChDTUFLRV9GSU5E
X1JPT1RfUEFUSF9NT0RFX0xJQlJBUlkgT05MWSkKK3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9N
T0RFX0lOQ0xVREUgT05MWSkKK3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX1BBQ0tBR0Ug
T05MWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52
ci5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDc2ZTQ5YTZhYzUzMTA4MGM1ZjQzMDNlNWMxNWNmOTNlMTFmYTJkNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oCkBAIC0wLDAg
KzEsMzc3NyBAQAorI3ByYWdtYSBvbmNlCisKKy8vIG9wZW52ci5oCisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKy8vIER5bmFtaWNhbGx5IGdl
bmVyYXRlZCBmaWxlLiBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSBkaXJlY3RseS4KKworI2lmbmRl
ZiBfT1BFTlZSX0FQSQorI2RlZmluZSBfT1BFTlZSX0FQSQorCisjaW5jbHVkZSA8c3RkaW50Lmg+
CisKKworCisvLyB2cnR5cGVzLmgKKyNpZm5kZWYgX0lOQ0xVREVfVlJUWVBFU19ICisjZGVmaW5l
IF9JTkNMVURFX1ZSVFlQRVNfSAorCisvLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyB0byBhdm9pZCBy
ZXF1aXJpbmcgdnVsa2FuLmgKK3N0cnVjdCBWa0RldmljZV9UOworc3RydWN0IFZrUGh5c2ljYWxE
ZXZpY2VfVDsKK3N0cnVjdCBWa0luc3RhbmNlX1Q7CitzdHJ1Y3QgVmtRdWV1ZV9UOworCisvLyBG
b3J3YXJkIGRlY2xhcmF0aW9ucyB0byBhdm9pZCByZXF1aXJpbmcgZDNkMTIuaAorc3RydWN0IElE
M0QxMlJlc291cmNlOworc3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZTsKKworbmFtZXNwYWNlIHZy
Cit7CisjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorCit0eXBlZGVmIHZvaWQqIGdsU2hhcmVkVGV4
dHVyZUhhbmRsZV90OwordHlwZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90
IGdsVUludF90OworCisvLyByaWdodC1oYW5kZWQgc3lzdGVtCisvLyAreSBpcyB1cAorLy8gK3gg
aXMgdG8gdGhlIHJpZ2h0CisvLyAteiBpcyBnb2luZyBhd2F5IGZyb20geW91CisvLyBEaXN0YW5j
ZSB1bml0IGlzICBtZXRlcnMKK3N0cnVjdCBIbWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQg
bVszXVs0XTsKK307CisKK3N0cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQgbVs0
XVs0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOwor
fTsKKworc3RydWN0IEhtZFZlY3RvcjRfdAoreworICAgICAgIGZsb2F0IHZbNF07Cit9OworCitz
dHJ1Y3QgSG1kVmVjdG9yM2RfdAoreworICAgICAgIGRvdWJsZSB2WzNdOworfTsKKworc3RydWN0
IEhtZFZlY3RvcjJfdAoreworICAgICAgIGZsb2F0IHZbMl07Cit9OworCitzdHJ1Y3QgSG1kUXVh
dGVybmlvbl90Cit7CisgICAgICAgZG91YmxlIHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgSG1k
Q29sb3JfdAoreworICAgICAgIGZsb2F0IHIsIGcsIGIsIGE7Cit9OworCitzdHJ1Y3QgSG1kUXVh
ZF90Cit7CisgICAgICAgSG1kVmVjdG9yM190IHZDb3JuZXJzWyA0IF07Cit9OworCitzdHJ1Y3Qg
SG1kUmVjdDJfdAoreworICAgICAgIEhtZFZlY3RvcjJfdCB2VG9wTGVmdDsKKyAgICAgICBIbWRW
ZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfTsKKworLyoqIFVzZWQgdG8gcmV0dXJuIHRoZSBwb3N0
LWRpc3RvcnRpb24gVVZzIGZvciBlYWNoIGNvbG9yIGNoYW5uZWwuIAorKiBVVnMgcmFuZ2UgZnJv
bSAwIHRvIDEgd2l0aCAwLDAgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSAKKyogc291
cmNlIHJlbmRlciB0YXJnZXQuIFRoZSAwLDAgdG8gMSwxIHJhbmdlIGNvdmVycyBhIHNpbmdsZSBl
eWUuICovCitzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKK3sKKyAgICAgICBmbG9hdCBy
ZlJlZFsyXTsKKyAgICAgICBmbG9hdCByZkdyZWVuWzJdOworICAgICAgIGZsb2F0IHJmQmx1ZVsy
XTsKK307CisKK2VudW0gRVZSRXllCit7CisgICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5
ZV9SaWdodCA9IDEKK307CisKK2VudW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgVGV4dHVyZVR5
cGVfRGlyZWN0WCA9IDAsIC8vIEhhbmRsZSBpcyBhbiBJRDNEMTFUZXh0dXJlCisgICAgICAgVGV4
dHVyZVR5cGVfT3BlbkdMID0gMSwgIC8vIEhhbmRsZSBpcyBhbiBPcGVuR0wgdGV4dHVyZSBuYW1l
IG9yIGFuIE9wZW5HTCByZW5kZXIgYnVmZmVyIG5hbWUsIGRlcGVuZGluZyBvbiBzdWJtaXQgZmxh
Z3MKKyAgICAgICBUZXh0dXJlVHlwZV9WdWxrYW4gPSAyLCAvLyBIYW5kbGUgaXMgYSBwb2ludGVy
IHRvIGEgVlJWdWxrYW5UZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorICAgICAgIFRleHR1cmVUeXBl
X0lPU3VyZmFjZSA9IDMsIC8vIEhhbmRsZSBpcyBhIG1hY09TIGNyb3NzLXByb2Nlc3Mtc2hhcmFi
bGUgSU9TdXJmYWNlUmVmCisgICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwgLy8gSGFu
ZGxlIGlzIGEgcG9pbnRlciB0byBhIEQzRDEyVGV4dHVyZURhdGFfdCBzdHJ1Y3R1cmUKK307CisK
K2VudW0gRUNvbG9yU3BhY2UKK3sKKyAgICAgICBDb2xvclNwYWNlX0F1dG8gPSAwLCAgICAgICAv
LyBBc3N1bWVzICdnYW1tYScgZm9yIDgtYml0IHBlciBjb21wb25lbnQgZm9ybWF0cywgb3RoZXJ3
aXNlICdsaW5lYXInLiAgVGhpcyBtaXJyb3JzIHRoZSBEWEdJIGZvcm1hdHMgd2hpY2ggaGF2ZSBf
U1JHQiB2YXJpYW50cy4KKyAgICAgICBDb2xvclNwYWNlX0dhbW1hID0gMSwgICAgICAgLy8gVGV4
dHVyZSBkYXRhIGNhbiBiZSBkaXNwbGF5ZWQgZGlyZWN0bHkgb24gdGhlIGRpc3BsYXkgd2l0aG91
dCBhbnkgY29udmVyc2lvbiAoYS5rLmEuIGRpc3BsYXkgbmF0aXZlIGZvcm1hdCkuCisgICAgICAg
Q29sb3JTcGFjZV9MaW5lYXIgPSAyLCAgICAgICAvLyBTYW1lIGFzIGdhbW1hIGJ1dCBoYXMgYmVl
biBjb252ZXJ0ZWQgdG8gYSBsaW5lYXIgcmVwcmVzZW50YXRpb24gdXNpbmcgRFhHSSdzIHNSR0Ig
Y29udmVyc2lvbiBhbGdvcml0aG0uCit9OworCitzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAg
dm9pZCogaGFuZGxlOyAvLyBTZWUgRVRleHR1cmVUeXBlIGRlZmluaXRpb24gYWJvdmUKKyAgICAg
ICBFVGV4dHVyZVR5cGUgZVR5cGU7CisgICAgICAgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9
OworCisvLyBIYW5kbGUgdG8gYSBzaGFyZWQgdGV4dHVyZSAoSEFORExFIG9uIFdpbmRvd3Mgb2J0
YWluZWQgdXNpbmcgT3BlblNoYXJlZFJlc291cmNlKS4KK3R5cGVkZWYgdWludDY0X3QgU2hhcmVk
VGV4dHVyZUhhbmRsZV90OworI2RlZmluZSBJTlZBTElEX1NIQVJFRF9URVhUVVJFX0hBTkRMRSAg
ICAgICAoKHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3QpMCkKKworZW51bSBFVHJhY2tpbmdSZXN1
bHQKK3sKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9VbmluaXRpYWxpemVkICAgICAgICAgICAgICAg
ICAgICAgPSAxLAorCisgICAgICAgVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVz
cyAgICAgICA9IDEwMCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJh
bmdlICAgICAgID0gMTAxLAorCisgICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5u
aW5nX091dE9mUmFuZ2UgICAgICAgICAgICAgID0gMjAxLAorfTsKKwordHlwZWRlZiB1aW50MzJf
dCBEcml2ZXJJZF90Oworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfbkRyaXZlck5vbmUgPSAweEZG
RkZGRkZGOworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRlYnVnUmVzcG9u
c2VTaXplID0gMzI3Njg7CisKKy8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0byBBUEkgY2Fs
bHMgKi8KK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7CitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOworc3RhdGljIGNvbnN0
IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1
aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZFOworc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gMHhGRkZGRkZG
RjsKKworLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5nIHRyYWNrZWQg
YXQgYSBnaXZlbiBJRCAqLworZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAgVHJh
Y2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0g
MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91bnRlZCBEaXNw
bGF5cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwgICAgICAgICAg
ICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNs
YXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMgdHJhY2tlcnMs
IHNpbWlsYXIgdG8gY29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tp
bmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlvbnMgdGhhdCBz
ZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCisgICAgICAgVHJhY2tlZERldmljZUNs
YXNzX0Rpc3BsYXlSZWRpcmVjdCA9IDUsICAgICAgICAgICAgICAvLyBBY2Nlc3NvcmllcyB0aGF0
IGFyZW4ndCBuZWNlc3NhcmlseSB0cmFja2VkIHRoZW1zZWx2ZXMsIGJ1dCBtYXkgcmVkaXJlY3Qg
dmlkZW8gb3V0cHV0IGZyb20gb3RoZXIgdHJhY2tlZCBkZXZpY2VzCit9OworCisKKy8qKiBEZXNj
cmliZXMgd2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2aWNl
ICovCitlbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKK3sKKyAgICAgICBUcmFja2VkQ29udHJv
bGxlclJvbGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbnZhbGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKKyAgICAgICBUcmFja2VkQ29udHJv
bGxlclJvbGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKKyAgICAgICBU
cmFja2VkQ29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5kCit9
OworCisKKy8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVjdCAq
Lworc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1E
ZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFjZSBp
biBtL3MKKyAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAgICAg
IC8vIGFuZ3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQorICAgICAgIEVUcmFja2luZ1Jl
c3VsdCBlVHJhY2tpbmdSZXN1bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisKKyAgICAg
ICAvLyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBmb3Ig
dGhpcyBzcG90IGluIHRoZSBwb3NlIGFycmF5LgorICAgICAgIC8vIEl0IGNvdWxkIGdvIGZyb20g
dHJ1ZSB0byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCisgICAgICAgYm9v
bCBiRGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisvKiogSWRlbnRpZmllcyB3aGljaCBzdHlsZSBv
ZiB0cmFja2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQorKiBmb3IgdGhl
IHBvc2VzIGl0IGlzIHJlcXVlc3RpbmcgKi8KK2VudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4K
K3sKKyAgICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8vIFBv
c2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQorICAgICAg
IFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRl
ZCByZWxhdGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgorICAg
ICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQb3Nl
cyBhcmUgcHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlIGRy
aXZlci4gIEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBzYW1l
IGRyaXZlci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307CisKKy8vIFJlZmVy
cyB0byBhIHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwordHlwZWRlZiB1aW50NjRfdCBQ
cm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVU
YWdfdDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bEludmFs
aWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qg
a191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0YWdzIHRvIHNldC9n
ZXQgY29tbW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMgY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOworc3RhdGljIGNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Oworc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisKK3N0YXRpYyBjb25z
dCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0g
MjE7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9wZXJ0
eVRhZyA9IDIyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3I0
UHJvcGVydHlUYWcgPSAyMzsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5I
aWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25z
dCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAw
MDsKKworCisvKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3BlcnR5
IHRoYXQgY2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2aWNlLiBNYW55IGZp
ZWxkcyBhcmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCitlbnVt
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkKK3sKKyAgICAgICBQcm9wX0ludmFsaWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAg
ICAgIC8vIGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xhc3Nl
cworICAgICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMDAsCisgICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCisgICAgICAgUHJvcF9T
ZXJpYWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MDIsCisgICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCisgICAgICAgUHJvcF9N
YW51ZmFjdHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDUs
CisgICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0Rv
bmdsZURlc2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVj
dGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAorICAg
ICAgIFByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwMTAsCisgICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJh
dHRlcnlQZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAwIGlz
IGVtcHR5LCAxIGlzIGZ1bGwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0
cml4MzQgICAgICAgICAgICAgID0gMTAxMywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2
YWlsYWJsZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAorICAgICAgIFByb3BfRmly
bXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE1
LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAgICAg
ICAgPSAxMDE2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDE3LAorICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9uX1Vp
bnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAorICAgICAgIFBy
b3BfRlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDE5LAorICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1Zl
cnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEsCisg
ICAgICAgUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29v
cmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCisgICAgICAgUHJvcF9Db250
YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAorICAg
ICAgIFByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAgID0g
MTAyNiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1t
aW5nVGFyZ2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAorICAgICAgIFByb3BfRGV2aWNl
Q2xhc3NfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MjksCisgICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9u
X1N0cmluZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9G
b3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lz
dGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAorICAgICAgIFBy
b3BfUGFyZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDM0LAorICAgICAgIFByb3BfUmVzb3VyY2VSb290X1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDM1LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFy
ZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0hNRAorICAgICAgIFByb3BfUmVwb3J0c1Rp
bWVTaW5jZVZTeW5jX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAwLAorICAg
ICAgIFByb3BfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCAgICAgICAgICAgICAgPSAy
MDAxLAorICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9h
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAzLAorICAgICAgIFByb3Bf
Q3VycmVudFVuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAw
NCwgCisgICAgICAgUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAwNSwgCisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNr
dG9wX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDcs
CisgICAgICAgUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMDgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlNQ1NjYWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTAs
CisgICAgICAgUHJvcF9FZGlkVmVuZG9ySURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRf
U3RyaW5nICAgICAgICAgICAgICA9IDIwMTIsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVJp
Z2h0X1N0cmluZyAgICAgICAgICAgICA9IDIwMTMsCisgICAgICAgUHJvcF9EaXNwbGF5R0NCbGFj
a0NsYW1wX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNCwKKyAgICAgICBQ
cm9wX0VkaWRQcm9kdWN0SURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAxNSwKKyAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCAgICAg
ICAgICAgICAgICAgICAgID0gMjAxNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNywKKyAgICAgICBQcm9wX0Rp
c3BsYXlHQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDE4LAorICAgICAgIFByb3BfRGlzcGxheUdDU2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAxOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zs
b2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMCwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlHQ0ltYWdlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIx
LAorICAgICAgIFByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMjIsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMywKKyAgICAgICBQcm9wX0xl
bnNDZW50ZXJSaWdodFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAyNCwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0
aE1ldGVyc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gMjAyNiwKKyAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMjcsCisg
ICAgICAgUHJvcF9DYW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAg
PSAyMDI4LAorICAgICAgIFByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0ICAgICAgICAgICAgICA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFy
ZHdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMSwKKyAgICAgICBQ
cm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAz
MiwKKyAgICAgICBQcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyICAgICAgICAgICAg
ICAgICAgICAgPSAyMDMzLAorICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9m
Vmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2Fs
RmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBw
cmVzc2VkX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNiwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlBbGxvd05pZ2h0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAzNywKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM4LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1h
Z2VIZWlnaHRfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM5LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQzMiAgICAgICAgICAgICAgPSAyMDQw
LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRhX0JpbmFyeSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwNDEsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVBob3RvbnNUb1ZibGFu
a19GbG9hdCAgICAgICAgICAgICAgPSAyMDQyLAorICAgICAgIFByb3BfRHJpdmVyRGlyZWN0TW9k
ZVNlbmRzVnN5bmNFdmVudHNfQm9vbCAgICAgICA9IDIwNDMsCisgICAgICAgUHJvcF9EaXNwbGF5
RGVidWdNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0NCwK
KyAgICAgICBQcm9wX0dyYXBoaWNzQWRhcHRlckx1aWRfVWludDY0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjA0NSwKKyAgICAgICBQcm9wX0RyaXZlclByb3ZpZGVkQ2hhcGVyb25lUGF0
aF9TdHJpbmcgICAgICAgICAgICAgID0gMjA0OCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhh
dCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyCisgICAgICAgUHJv
cF9BdHRhY2hlZERldmljZUlkX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
MDAsCisgICAgICAgUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMDEsCisgICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDIsIC8vIFJldHVybiB2YWx1ZSBp
cyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczFUeXBlX0lu
dDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAzLCAvLyBS
ZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9w
X0F4aXMyVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMzAwNCwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBl
CisgICAgICAgUHJvcF9BeGlzM1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwMDUsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRy
b2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczRUeXBlX0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA2LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2Yg
dHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGlu
dF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDcsIC8vIFJldHVybiB2YWx1
ZSBpcyBvZiB0eXBlIEVUcmFja2VkQ29udHJvbGxlclJvbGUKKworICAgICAgIC8vIFByb3BlcnRp
ZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5j
ZQorICAgICAgIFByb3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAg
ICAgICAgID0gNDAwMCwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BE
ZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAyLAorICAgICAgIFByb3BfRmll
bGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAzLAor
ICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAg
ID0gNDAwNCwKKyAgICAgICBQcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0ICAg
ICAgICAgICAgICA9IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDA2LAorCisgICAgICAgLy8gUHJv
cGVydGllcyB0aGF0IGFyZSB1c2VkIGZvciB1c2VyIGludGVyZmFjZSBsaWtlIGljb25zIG5hbWVz
CisgICAgICAgUHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA1MDAwLCAvLyBERVBSRUNBVEVELiBWYWx1ZSBub3QgcmVmZXJl
bmNlZC4gTm93IGV4cGVjdGVkIHRvIGJlIHBhcnQgb2YgaWNvbiBwYXRoIHByb3BlcnRpZXMuCisg
ICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDUwMDEsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcg
Zm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRz
IGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2Vh
cmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1MDAyLCAvLyB7ZHJpdmVyfS9pY29ucy9pY29u
X2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUw
eDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJ
Y29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyAgICAgICA9IDUwMDMsIC8vIHtkcml2
ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9y
IGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAg
ICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlfU3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgPSA1MDA0LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0
aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4
MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRf
U3RyaW5nICAgICAgICAgICAgICA9IDUwMDUsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5h
bWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9y
IGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlTm90UmVhZHlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA2LCAvLyB7ZHJp
dmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZv
ciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAg
ICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVN0YW5kYnlfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgPSA1MDA3LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0TG93
X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8ge2RyaXZlcn0vaWNvbnMvaWNv
bl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1
MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKworICAgICAgIC8vIFByb3Bl
cnRpZXMgdGhhdCBhcmUgdXNlZCBieSBoZWxwZXJzLCBidXQgYXJlIG9wYXF1ZSB0byBhcHBsaWNh
dGlvbnMKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJl
YV9CaW5hcnlfRW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTE1MCwKKworICAgICAg
IC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIGRyaXZlcnMKKyAgICAgICBQcm9wX1Vz
ZXJDb25maWdQYXRoX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2
MDAwLAorICAgICAgIFByb3BfSW5zdGFsbFBhdGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA2MDAxLAorICAgICAgIFByb3BfSGFzRGlzcGxheUNvbXBv
bmVudF9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwMiwKKyAgICAgICBQcm9w
X0hhc0NvbnRyb2xsZXJDb21wb25lbnRfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gNjAwMywK
KyAgICAgICBQcm9wX0hhc0NhbWVyYUNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNjAwNCwKKyAgICAgICBQcm9wX0hhc0RyaXZlckRpcmVjdE1vZGVDb21wb25lbnRf
Qm9vbCAgICAgICAgICAgICAgPSA2MDA1LAorICAgICAgIFByb3BfSGFzVmlydHVhbERpc3BsYXlD
b21wb25lbnRfQm9vbCAgICAgICAgICAgICAgPSA2MDA2LAorCisgICAgICAgLy8gVmVuZG9ycyBh
cmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBkZWJ1ZyBkYXRhIGluIHRoaXMgcmVzZXJ2ZWQgcmVn
aW9uCisgICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCAgICAgICAgICAg
ICAgICAgICAgID0gMTAwMDAsCisgICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9F
bmQgICAgICAgICAgICAgICAgICAgICA9IDEwOTk5LAorfTsKKworLyoqIE5vIHN0cmluZyBwcm9w
ZXJ0eSB3aWxsIGV2ZXIgYmUgbG9uZ2VyIHRoYW4gdGhpcyBsZW5ndGggKi8KK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplID0gMzIgKiAxMDI0OworCisvKiog
VXNlZCB0byByZXR1cm4gZXJyb3JzIHRoYXQgb2NjdXIgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMu
ICovCitlbnVtIEVUcmFja2VkUHJvcGVydHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1
Y2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAg
ICAgVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VDbGFzcyAgICAgICAgICAgICAgICAg
ICAgID0gMiwKKyAgICAgICBUcmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMsCisgICAgICAgVHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNCwgLy8gRHJpdmVyIGhhcyBub3Qgc2V0IHRoZSBw
cm9wZXJ0eSAoYW5kIG1heSBub3QgZXZlcikuCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZERl
dmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUsCisgICAgICAgVHJhY2tlZFByb3Bf
Q291bGROb3RDb250YWN0U2VydmVyICAgICAgICAgICAgICA9IDYsCisgICAgICAgVHJhY2tlZFBy
b3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlICAgICAgID0gNywKKyAgICAgICBUcmFja2VkUHJv
cF9TdHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCAgICAgICA9IDgsCisgICAgICAgVHJhY2tlZFBy
b3BfTm90WWV0QXZhaWxhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOSwgLy8gVGhl
IHByb3BlcnR5IHZhbHVlIGlzbid0IGtub3duIHlldCwgYnV0IGlzIGV4cGVjdGVkIHNvb24uIENh
bGwgYWdhaW4gbGF0ZXIuCisgICAgICAgVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCAgICAg
ICAgICAgICAgICAgICAgID0gMTAsCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlv
biAgICAgICAgICAgICAgICAgICAgID0gMTEsCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNh
dGlvbiB0byBjb250cm9sIHdoYXQgcGFydCBvZiB0aGUgcHJvdmlkZWQgdGV4dHVyZSB3aWxsIGJl
IHVzZWQgaW4gdGhlCisqIGZyYW1lIGJ1ZmZlci4gKi8KK3N0cnVjdCBWUlRleHR1cmVCb3VuZHNf
dAoreworICAgICAgIGZsb2F0IHVNaW4sIHZNaW47CisgICAgICAgZmxvYXQgdU1heCwgdk1heDsK
K307CisKKy8qKiBBbGxvd3Mgc3BlY2lmeWluZyBwb3NlIHVzZWQgdG8gcmVuZGVyIHByb3ZpZGVk
IHNjZW5lIHRleHR1cmUgKGlmIGRpZmZlcmVudCBmcm9tIHZhbHVlIHJldHVybmVkIGJ5IFdhaXRH
ZXRQb3NlcykuICovCitzdHJ1Y3QgVlJUZXh0dXJlV2l0aFBvc2VfdCA6IHB1YmxpYyBUZXh0dXJl
X3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7IC8v
IEFjdHVhbCBwb3NlIHVzZWQgdG8gcmVuZGVyIHNjZW5lIHRleHR1cmVzLgorfTsKKworLyoqIEFs
bG93cyB0aGUgYXBwbGljYXRpb24gdG8gY29udHJvbCBob3cgc2NlbmUgdGV4dHVyZXMgYXJlIHVz
ZWQgYnkgdGhlIGNvbXBvc2l0b3Igd2hlbiBjYWxsaW5nIFN1Ym1pdC4gKi8KK2VudW0gRVZSU3Vi
bWl0RmxhZ3MKK3sKKyAgICAgICAvLyBTaW1wbGUgcmVuZGVyIHBhdGguIEFwcCBzdWJtaXRzIHJl
bmRlcmVkIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBubyBsZW5zIGRpc3RvcnRpb24g
Y29ycmVjdGlvbiBhcHBsaWVkLgorICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMHgwMCwKKworICAg
ICAgIC8vIEFwcCBzdWJtaXRzIGZpbmFsIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBs
ZW5zIGRpc3RvcnRpb24gYWxyZWFkeSBhcHBsaWVkIChsZW5zIGRpc3RvcnRpb24gbWFrZXMgdGhl
IGltYWdlcyBhcHBlYXIKKyAgICAgICAvLyBiYXJyZWwgZGlzdG9ydGVkIHdpdGggY2hyb21hdGlj
IGFiZXJyYXRpb24gY29ycmVjdGlvbiBhcHBsaWVkKS4gVGhlIGFwcCB3b3VsZCBoYXZlIHVzZWQg
dGhlIGRhdGEgcmV0dXJuZWQgYnkKKyAgICAgICAvLyB2cjo6SVZSU3lzdGVtOjpDb21wdXRlRGlz
dG9ydGlvbigpIHRvIGFwcGx5IHRoZSBjb3JyZWN0IGRpc3RvcnRpb24gdG8gdGhlIHJlbmRlcmVk
IGltYWdlcyBiZWZvcmUgY2FsbGluZyBTdWJtaXQoKS4KKyAgICAgICBTdWJtaXRfTGVuc0Rpc3Rv
cnRpb25BbHJlYWR5QXBwbGllZCA9IDB4MDEsCisKKyAgICAgICAvLyBJZiB0aGUgdGV4dHVyZSBw
b2ludGVyIHBhc3NlZCBpbiBpcyBhY3R1YWxseSBhIHJlbmRlcmJ1ZmZlciAoZS5nLiBmb3IgTVNB
QSBpbiBPcGVuR0wpIHRoZW4gc2V0IHRoaXMgZmxhZy4KKyAgICAgICBTdWJtaXRfR2xSZW5kZXJC
dWZmZXIgPSAweDAyLAorCisgICAgICAgLy8gRG8gbm90IHVzZQorICAgICAgIFN1Ym1pdF9SZXNl
cnZlZCA9IDB4MDQsCisKKyAgICAgICAvLyBTZXQgdG8gaW5kaWNhdGUgdGhhdCBwVGV4dHVyZSBp
cyBhIHBvaW50ZXIgdG8gYSBWUlRleHR1cmVXaXRoUG9zZV90LgorICAgICAgIFN1Ym1pdF9UZXh0
dXJlV2l0aFBvc2UgPSAweDA4LAorfTsKKworLyoqIERhdGEgcmVxdWlyZWQgZm9yIHBhc3Npbmcg
VnVsa2FuIHRleHR1cmVzIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0byBj
YWxsIE9wZW5WUl9TaHV0ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICov
CitzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Cit7CisgICAgICAgdWludDY0X3QgbV9uSW1h
Z2U7IC8vIFZrSW1hZ2UKKyAgICAgICBWa0RldmljZV9UICptX3BEZXZpY2U7CisgICAgICAgVmtQ
aHlzaWNhbERldmljZV9UICptX3BQaHlzaWNhbERldmljZTsKKyAgICAgICBWa0luc3RhbmNlX1Qg
Km1fcEluc3RhbmNlOworICAgICAgIFZrUXVldWVfVCAqbV9wUXVldWU7CisgICAgICAgdWludDMy
X3QgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aCwgbV9uSGVp
Z2h0LCBtX25Gb3JtYXQsIG1fblNhbXBsZUNvdW50OworfTsKKworLyoqIERhdGEgcmVxdWlyZWQg
Zm9yIHBhc3NpbmcgRDNEMTIgdGV4dHVyZXMgdG8gSVZSQ29tcG9zaXRvcjo6U3VibWl0LgorKiBC
ZSBzdXJlIHRvIGNhbGwgT3BlblZSX1NodXRkb3duIGJlZm9yZSBkZXN0cm95aW5nIHRoZXNlIHJl
c291cmNlcy4gKi8KK3N0cnVjdCBEM0QxMlRleHR1cmVEYXRhX3QKK3sKKyAgICAgICBJRDNEMTJS
ZXNvdXJjZSAqbV9wUmVzb3VyY2U7CisgICAgICAgSUQzRDEyQ29tbWFuZFF1ZXVlICptX3BDb21t
YW5kUXVldWU7CisgICAgICAgdWludDMyX3QgbV9uTm9kZU1hc2s7Cit9OworCisvKiogU3RhdHVz
IG9mIHRoZSBvdmVyYWxsIHN5c3RlbSBvciB0cmFja2VkIG9iamVjdHMgKi8KK2VudW0gRVZSU3Rh
dGUKK3sKKyAgICAgICBWUlN0YXRlX1VuZGVmaW5lZCA9IC0xLAorICAgICAgIFZSU3RhdGVfT2Zm
ID0gMCwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGluZyA9IDEsCisgICAgICAgVlJTdGF0ZV9TZWFy
Y2hpbmdfQWxlcnQgPSAyLAorICAgICAgIFZSU3RhdGVfUmVhZHkgPSAzLAorICAgICAgIFZSU3Rh
dGVfUmVhZHlfQWxlcnQgPSA0LAorICAgICAgIFZSU3RhdGVfTm90UmVhZHkgPSA1LAorICAgICAg
IFZSU3RhdGVfU3RhbmRieSA9IDYsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3
LAorfTsKKworLyoqIFRoZSB0eXBlcyBvZiBldmVudHMgdGhhdCBjb3VsZCBiZSBwb3N0ZWQgKGFu
ZCB3aGF0IHRoZSBwYXJhbWV0ZXJzIG1lYW4gZm9yIGVhY2ggZXZlbnQgdHlwZSkgKi8KK2VudW0g
RVZSRXZlbnRUeXBlCit7CisgICAgICAgVlJFdmVudF9Ob25lID0gMCwKKworICAgICAgIFZSRXZl
bnRfVHJhY2tlZERldmljZUFjdGl2YXRlZCAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJF
dmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgICAgICAgPSAxMDEsCisgICAgICAgVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXBkYXRlZCAgICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3RhcnRlZCAgICAgICA9IDEwMywKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCAgICAgICA9IDEwNCwK
KyAgICAgICBWUkV2ZW50X0lwZENoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTA1LAorICAgICAgIFZSRXZlbnRfRW50ZXJTdGFuZGJ5TW9kZSAgICAgICAgICAgICAg
ICAgICAgID0gMTA2LAorICAgICAgIFZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSAgICAgICAgICAg
ICAgICAgICAgID0gMTA3LAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2Vk
ICAgICAgID0gMTA4LAorICAgICAgIFZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgICAg
ICAgICAgICAgID0gMTA5LAorICAgICAgIFZSRXZlbnRfTGVuc0Rpc3RvcnRpb25DaGFuZ2VkICAg
ICAgICAgICAgICA9IDExMCwKKyAgICAgICBWUkV2ZW50X1Byb3BlcnR5Q2hhbmdlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDExMSwKKyAgICAgICBWUkV2ZW50X1dpcmVsZXNzRGlzY29u
bmVjdCAgICAgICAgICAgICAgICAgICAgID0gMTEyLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NS
ZWNvbm5lY3QgICAgICAgICAgICAgICAgICAgICA9IDExMywKKworICAgICAgIFZSRXZlbnRfQnV0
dG9uUHJlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwLCAvLyBkYXRh
IGlzIGNvbnRyb2xsZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblVucHJlc3MgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDEsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZl
bnRfQnV0dG9uVG91Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyLCAv
LyBkYXRhIGlzIGNvbnRyb2xsZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblVudG91Y2ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDMsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorCisgICAg
ICAgVlJFdmVudF9Nb3VzZU1vdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwLCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDEsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBW
UkV2ZW50X01vdXNlQnV0dG9uVXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDIsIC8v
IGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X0ZvY3VzRW50ZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAzLCAvLyBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2
ZW50X0ZvY3VzTGVhdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA0LCAv
LyBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X1Njcm9sbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA1LCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAg
VlJFdmVudF9Ub3VjaFBhZE1vdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDYsIC8v
IGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgICAgICAg
ICAgICAgICAgICAgICA9IDMwNywgLy8gZGF0YSBpcyBvdmVybGF5LCBnbG9iYWwgZXZlbnQKKwor
ICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkICAgICAgICAgICAgICAgICAgICAgPSA0
MDAsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECisgICAgICAgVlJFdmVudF9JbnB1dEZv
Y3VzUmVsZWFzZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMSwgLy8gZGF0YSBpcyBwcm9jZXNz
IERFUFJFQ0FURUQKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNMb3N0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNDAyLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1Nj
ZW5lRm9jdXNHYWluZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMywgLy8gZGF0YSBpcyBwcm9j
ZXNzCisgICAgICAgVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uQ2hhbmdlZCAgICAgICAgICAgICAg
PSA0MDQsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIFRoZSBBcHAgYWN0dWFsbHkgZHJhd2luZyB0aGUg
c2NlbmUgY2hhbmdlZCAodXN1YWxseSB0byBvciBmcm9tIHRoZSBjb21wb3NpdG9yKQorICAgICAg
IFZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNSwgLy8g
ZGF0YSBpcyBwcm9jZXNzIC0gTmV3IGFwcCBnb3QgYWNjZXNzIHRvIGRyYXcgdGhlIHNjZW5lCisg
ICAgICAgVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA2
LCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25TZWNv
bmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3LCAvLyBkYXRhIGlzIHByb2Nlc3MKKworICAgICAg
IFZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDEwLCAvLyBT
ZW50IHRvIHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IGhpZGluZyByZW5kZXIgbW9k
ZWxzIHRlbXBvcmFyaWx5CisgICAgICAgVlJFdmVudF9TaG93UmVuZGVyTW9kZWxzICAgICAgICAg
ICAgICAgICAgICAgPSA0MTEsIC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRvIHJl
cXVlc3QgcmVzdG9yaW5nIHJlbmRlciBtb2RlbCB2aXNpYmlsaXR5CisKKyAgICAgICBWUkV2ZW50
X092ZXJsYXlTaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMCwKKyAgICAgICBW
UkV2ZW50X092ZXJsYXlIaWRkZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDEsCisg
ICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUw
MiwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZERlYWN0aXZhdGVkICAgICAgICAgICAgICA9IDUw
MywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgICAgICAgICAgICAgID0g
NTA0LCAvLyBTZW50IHRvIHRoZSBvdmVybGF5IG1hbmFnZXIgLSBkYXRhIGlzIG92ZXJsYXkKKyAg
ICAgICBWUkV2ZW50X0Rhc2hib2FyZFJlcXVlc3RlZCAgICAgICAgICAgICAgICAgICAgID0gNTA1
LCAvLyBTZW50IHRvIHRoZSBvdmVybGF5IG1hbmFnZXIgLSBkYXRhIGlzIG92ZXJsYXkKKyAgICAg
ICBWUkV2ZW50X1Jlc2V0RGFzaGJvYXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA2
LCAvLyBTZW5kIHRvIHRoZSBvdmVybGF5IG1hbmFnZXIKKyAgICAgICBWUkV2ZW50X1JlbmRlclRv
YXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwNywgLy8gU2VuZCB0byB0
aGUgZGFzaGJvYXJkIHRvIHJlbmRlciBhIHRvYXN0IC0gZGF0YSBpcyB0aGUgbm90aWZpY2F0aW9u
IElECisgICAgICAgVlJFdmVudF9JbWFnZUxvYWRlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA1MDgsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcg
b3IgU2V0T3ZlcmxheUZyb21GaWxlIGNhbGwgZmluaXNoZXMgbG9hZGluZworICAgICAgIFZSRXZl
bnRfU2hvd0tleWJvYXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA5LCAvLyBTZW50
IHRvIGtleWJvYXJkIHJlbmRlcmVyIGluIHRoZSBkYXNoYm9hcmQgdG8gaW52b2tlIGl0CisgICAg
ICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTAs
IC8vIFNlbnQgdG8ga2V5Ym9hcmQgcmVuZGVyZXIgaW4gdGhlIGRhc2hib2FyZCB0byBoaWRlIGl0
CisgICAgICAgVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkICAgICAgID0gNTExLCAv
LyBTZW50IHRvIGFuIG92ZXJsYXkgd2hlbiBJVlJPdmVybGF5OjpTZXRGb2N1c092ZXJsYXkgaXMg
Y2FsbGVkIG9uIGl0CisgICAgICAgVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzTG9zdCAgICAg
ICAgICAgICAgPSA1MTIsIC8vIFNlbmQgdG8gYW4gb3ZlcmxheSB3aGVuIGl0IHByZXZpb3VzbHkg
aGFkIGZvY3VzIGFuZCBJVlJPdmVybGF5OjpTZXRGb2N1c092ZXJsYXkgaXMgY2FsbGVkIG9uIHNv
bWV0aGluZyBlbHNlCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQg
PSA1MTMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gICAgICAgPSA1
MTQsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwICAgICAgICAgICAgICA9
IDUxNSwKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgICAgICAgICAgICAgICAg
ICAgICA9IDUxNiwgLy8gU2NyZWVuc2hvdCBidXR0b24gY29tYm8gd2FzIHByZXNzZWQsIERhc2hi
b2FyZCBzaG91bGQgcmVxdWVzdCBhIHNjcmVlbnNob3QKKyAgICAgICBWUkV2ZW50X0ltYWdlRmFp
bGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxNywgLy8gU2VudCB0byBv
dmVybGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5ZnJvbUZhaWwgZmFpbHMg
dG8gbG9hZAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgICAgICAgICAg
ICAgID0gNTE4LAorCisgICAgICAgLy8gU2NyZWVuc2hvdCBBUEkKKyAgICAgICBWUkV2ZW50X1Jl
cXVlc3RTY3JlZW5zaG90ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIwLCAvLyBTZW50
IGJ5IHZyY2xpZW50IGFwcGxpY2F0aW9uIHRvIGNvbXBvc2l0b3IgdG8gdGFrZSBhIHNjcmVlbnNo
b3QKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RUYWtlbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MjEsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRp
b24gdGhhdCB0aGUgc2NyZWVuc2hvdCBoYXMgYmVlbiB0YWtlbgorICAgICAgIFZSRXZlbnRfU2Ny
ZWVuc2hvdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMiwgLy8gU2VudCBi
eSBjb21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90IGZhaWxl
ZCB0byBiZSB0YWtlbgorICAgICAgIFZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJk
ICAgICAgICAgICAgICA9IDUyMywgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9h
cmQgdGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKyAgICAgICBWUkV2
ZW50X1NjcmVlbnNob3RQcm9ncmVzc1RvRGFzaGJvYXJkICAgICAgID0gNTI0LCAvLyBTZW50IGJ5
IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNjcmVlbnNob3Qg
d2FzIHN1Ym1pdHRlZAorCisgICAgICAgVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hh
bmdlZCAgICAgICA9IDUyNSwKKworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0
aW9uX0hpZGRlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMSwKKyAgICAgICBWUkV2
ZW50X05vdGlmaWNhdGlvbl9CZWdpbkludGVyYWN0aW9uICAgICAgID0gNjAyLAorICAgICAgIFZS
RXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3llZCAgICAgICAgICAgICAgICAgICAgID0gNjAzLAor
CisgICAgICAgVlJFdmVudF9RdWl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNzAwLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1By
b2Nlc3NRdWl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDEs
IC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21w
dCAgICAgICAgICAgICAgICAgICAgID0gNzAyLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBW
UkV2ZW50X1F1aXRBY2tub3dsZWRnZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDMs
IC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwNCwgLy8gVGhlIGRyaXZlciBoYXMgcmVxdWVz
dGVkIHRoYXQgU3RlYW1WUiBzaHV0IGRvd24KKworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lRGF0
YUhhc0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDgwMCwKKyAgICAgICBWUkV2ZW50X0No
YXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MDEsCisgICAgICAgVlJF
dmVudF9DaGFwZXJvbmVUZW1wRGF0YUhhc0NoYW5nZWQgICAgICAgICAgICAgID0gODAyLAorICAg
ICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICA9IDgwMywKKyAg
ICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA4MDQsCisKKyAgICAgICBWUkV2ZW50X0F1ZGlvU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAg
ICAgICAgICAgPSA4MjAsCisKKyAgICAgICBWUkV2ZW50X0JhY2tncm91bmRTZXR0aW5nSGFzQ2hh
bmdlZCAgICAgICAgICAgICAgPSA4NTAsCisgICAgICAgVlJFdmVudF9DYW1lcmFTZXR0aW5nc0hh
dmVDaGFuZ2VkICAgICAgICAgICAgICA9IDg1MSwKKyAgICAgICBWUkV2ZW50X1JlcHJvamVjdGlv
blNldHRpbmdIYXNDaGFuZ2VkICAgICAgID0gODUyLAorICAgICAgIFZSRXZlbnRfTW9kZWxTa2lu
U2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICA9IDg1MywKKyAgICAgICBWUkV2ZW50X0Vudmlyb25t
ZW50U2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICA9IDg1NCwKKyAgICAgICBWUkV2ZW50X1Bvd2Vy
U2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTUsCisgICAgICAgVlJFdmVudF9F
bmFibGVIb21lQXBwU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NiwKKworICAgICAgIFZSRXZlbnRf
U3RhdHVzVXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDkwMCwKKwor
ICAgICAgIFZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAwMCwKKworICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkICAg
ICAgICAgICAgICAgICAgICAgPSAxMTAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVG
aW5pc2hlZCAgICAgICAgICAgICAgICAgICAgID0gMTEwMSwKKworICAgICAgIFZSRXZlbnRfS2V5
Ym9hcmRDbG9zZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMCwKKyAg
ICAgICBWUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTIwMSwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkRG9uZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMjAyLCAvLyBTZW50IHdoZW4gRE9ORSBidXR0b24gY2xpY2tlZCBv
biBrZXlib2FyZAorCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVk
ICAgICAgICAgICAgICA9IDEzMDAsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRp
b25BYm9ydGVkICAgICAgICAgICAgICA9IDEzMDEsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlv
blRyYW5zaXRpb25OZXdBcHBTdGFydGVkICAgICAgID0gMTMwMiwKKyAgICAgICBWUkV2ZW50X0Fw
cGxpY2F0aW9uTGlzdFVwZGF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzAzLAor
ICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMzA0LAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3
QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorICAgICAgIFZSRXZlbnRfUHJvY2Vzc0Nvbm5lY3Rl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA2LAorICAgICAgIFZSRXZl
bnRfUHJvY2Vzc0Rpc2Nvbm5lY3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMzA3LAorCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duICAg
ICAgICAgICAgICA9IDE0MDAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRv
d0hpZGRlbiAgICAgICAgICAgICAgPSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9D
aGFwZXJvbmVCb3VuZHNTaG93biAgICAgICAgICAgICAgPSAxNDEwLAorICAgICAgIFZSRXZlbnRf
Q29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNIaWRkZW4gICAgICAgPSAxNDExLAorCisgICAgICAg
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gID0gMTUwMCwKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtICAgPSAxNTAxLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtICA9IDE1MDIsCisgICAgICAgVlJF
dmVudF9UcmFja2VkQ2FtZXJhX1Jlc3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAgICBWUkV2
ZW50X1RyYWNrZWRDYW1lcmFfRWRpdGluZ1N1cmZhY2UgICAgPSAxNTUwLAorCisgICAgICAgVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSAgICAgICA9IDE2MDAsCisgICAgICAg
VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgICAgICAgPSAxNjAxLAorICAg
ICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgICAgICAgPSAxNjAyLAor
CisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgICAgICAgICAgICAgICAgICAg
ICA9IDE2NTAsCisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheUNsb3NlUmVxdWVzdGVkICAg
ICAgID0gMTY1MSwKKyAgICAgICAKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9z
ZSBwcml2YXRlIGV2ZW50cyBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRf
VmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2
ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307
CisKKworLyoqIExldmVsIG9mIEhtZCBhY3Rpdml0eSAqLworLy8gVXNlckludGVyYWN0aW9uX1Rp
bWVvdXQgbWVhbnMgdGhlIGRldmljZSBpcyBpbiB0aGUgcHJvY2VzcyBvZiB0aW1pbmcgb3V0Lgor
Ly8gSW5Vc2UgPSAoIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uIHx8IGtf
RURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQgKQorLy8gVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3RhcnRlZCBmaXJlcyB3aGVuIHRoZSBkZXZp
Y2VzIHRyYW5zaXRpb25zIGZyb20gU3RhbmRieSAtPiBVc2VySW50ZXJhY3Rpb24gb3IgSWRsZSAt
PiBVc2VySW50ZXJhY3Rpb24uCisvLyBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rp
b25FbmRlZCBmaXJlcyB3aGVuIHRoZSBkZXZpY2VzIHRyYW5zaXRpb25zIGZyb20gVXNlckludGVy
YWN0aW9uX1RpbWVvdXQgLT4gSWRsZQorZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreyAgICAg
ICAKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lkbGUgPSAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGFjdGl2aXR5IGZvciB0aGUgbGFzdCAxMCBzZWNv
bmRzCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gPSAxLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBY3Rpdml0eSAobW92ZW1lbnQgb3IgcHJveCBz
ZW5zb3IpIGlzIGhhcHBlbmluZyBub3cgICAgICAgCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCA9IDIsICAgICAgICAgICAgICAvLyBObyBhY3Rp
dml0eSBmb3IgdGhlIGxhc3QgMC41IHNlY29uZHMKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxl
dmVsX1N0YW5kYnkgPSAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIElkbGUgZm9yIGF0IGxlYXN0IDUgc2Vjb25kcyAoY29uZmlndXJhYmxlIGluIFNldHRpbmdz
IC0+IFBvd2VyIE1hbmFnZW1lbnQpCit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBh
bmQgYXhpcyBJRHMgKi8KK2VudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lz
dGVtICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlv
bk1lbnUgICAgICAgPSAxLAorICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMiwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAg
ICAgICAgPSAzLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAg
PSA0LAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAg
ICAga19FQnV0dG9uX0RQYWRfRG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBr
X0VCdXR0b25fQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAg
IAorICAgICAgIGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19F
QnV0dG9uX0F4aXMwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19F
QnV0dG9uX0F4aXMxICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19F
QnV0dG9uX0F4aXMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19F
QnV0dG9uX0F4aXMzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19F
QnV0dG9uX0F4aXM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAv
LyBhbGlhc2VzIGZvciB3ZWxsIGtub3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0
ZWFtVlJfVG91Y2hwYWQgICAgICAgPSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9u
X1N0ZWFtVlJfVHJpZ2dlciAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1
dHRvbl9EYXNoYm9hcmRfQmFjayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19F
QnV0dG9uX01heCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUg
dWludDY0X3QgQnV0dG9uTWFza0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxs
IDw8IGlkOyB9CisKKy8qKiB1c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0
cnVjdCBWUkV2ZW50X0NvbnRyb2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8g
RVZSQnV0dG9uSWQgZW51bQorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2
ZW50cyBpbiBvdmVybGF5IHNwYWNlICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAg
VlJNb3VzZUJ1dHRvbl9MZWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4
MDAwMSwKKyAgICAgICBWUk1vdXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4MDAwMiwKKyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVs
YXRlZCBtb3VzZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91
c2VfdAoreworICAgICAgIGZsb2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBi
b3R0b20gbGVmdCBvZiB0aGUgdGV4dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247
IC8vIEVWUk1vdXNlQnV0dG9uIGVudW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91
c2Ugd2hlZWwgc2Nyb2xsIGluIG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9s
bF90Cit7CisgICAgICAgZmxvYXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0
aW9uIG9mIHRoZSBwYWQgdHJhdmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxs
IHN3aXBlCisgICAgICAgdWludDMyX3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBt
b3VzZSBpbnB1dCBtb2RlIHlvdSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0
aGVzZSBldmVudHMgYXJlIG9ubHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0
aGUgdG91Y2hwYWQgKG9yIGp1c3QgcmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2
ZW50X1RvdWNoUGFkTW92ZV90Cit7CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2Vy
IGlzIGRldGVjdGVkIG9uIHRoZSB0b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOwor
CisgICAgICAgLy8gSG93IGxvbmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMK
KyAgICAgICBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFs
dWVzIGluZGljYXRlIHRoZSBzdGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8g
c29tZSBiYXNpYyBzd2lwZSBzdHVmZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAg
ICAgZmxvYXQgZlZhbHVlWUZpcnN0OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBs
ZWQgY29vcmRpbmF0ZSB3aXRob3V0IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3
OworICAgICAgIGZsb2F0IGZWYWx1ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0
ZWQgZXZlbnRzLiBEZXRhaWxzIHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0
cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFs
dWU7CisgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3Ig
ZXZlbnRzIGFib3V0IHByb2Nlc3NlcyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7Cisg
ICAgICAgdWludDMyX3QgcGlkOworICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29s
IGJGb3JjZWQ7Cit9OworCisKKy8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3Zlcmxh
eXMgKi8KK3N0cnVjdCBWUkV2ZW50X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJs
YXlIYW5kbGU7Cit9OworCisKKy8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3Zlcmxh
eXMgKi8KK3N0cnVjdCBWUkV2ZW50X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVz
U3RhdGU7IC8vIEVWUlN0YXRlIGVudW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVu
dHMgKiovCitzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5w
dXRbOF07ICAgICAgIC8vIFVwIHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2
NF90IHVVc2VyVmFsdWU7ICAgICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5w
dXQKK307CisKK3N0cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJz
OworfTsKKworc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBt
X25QcmV2aW91c1VuaXZlcnNlOworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsK
K307CisKKy8qKiBOb3QgYWN0dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZS
RXZlbnRfUmVzZXJ2ZWRfdAoreworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1
aW50NjRfdCByZXNlcnZlZDE7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3Rf
dAoreworICAgICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVt
TWVudTsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQz
Ml90IGhhbmRsZTsKKyAgICAgICB1aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRf
U2NyZWVuc2hvdFByb2dyZXNzX3QKK3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0
cnVjdCBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7
CisgICAgICAgdWludDMyX3QgdW5BcmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRp
dGluZ0NhbWVyYVN1cmZhY2VfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cisg
ICAgICAgdWludDMyX3QgblZpc3VhbE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdl
T3ZlcmxheV90Cit7CisgICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7
IC8vIHZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZl
bnRfUHJvcGVydHlfdAoreworICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFp
bmVyOworICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RF
ISEhIElmIHlvdSBjaGFuZ2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2lu
dGVyb3AuY3MucHkgKi8KK3R5cGVkZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVk
X3QgcmVzZXJ2ZWQ7CisgICAgICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAg
ICAgICBWUkV2ZW50X01vdXNlX3QgbW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3Jv
bGw7CisgICAgICAgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05v
dGlmaWNhdGlvbl90IG5vdGlmaWNhdGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVy
bGF5OworICAgICAgIFZSRXZlbnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5
Ym9hcmRfdCBrZXlib2FyZDsKKyAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2
ZW50X0NoYXBlcm9uZV90IGNoYXBlcm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF90IHBlcmZvcm1hbmNlVGVzdDsKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNo
UGFkTW92ZTsKKyAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJv
UG9zZVJlc2V0OworICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAg
ICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAg
IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZS
RXZlbnRfTWVzc2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1By
b3BlcnR5X3QgcHJvcGVydHk7Cit9IFZSRXZlbnRfRGF0YV90OworCisKKyNpZiBkZWZpbmVkKF9f
bGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAorLy8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9y
aWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAorLy8g
Y29tcGF0aWJpbGl0eS4gCisjcHJhZ21hIHBhY2soIHB1c2gsIDQgKQorI2VuZGlmCisKKy8qKiBB
biBldmVudCBwb3N0ZWQgYnkgdGhlIHNlcnZlciB0byBhbGwgcnVubmluZyBhcHBsaWNhdGlvbnMg
Ki8KK3N0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICB1aW50MzJfdCBldmVudFR5cGU7IC8vIEVW
UkV2ZW50VHlwZSBlbnVtCisgICAgICAgVHJhY2tlZERldmljZUluZGV4X3QgdHJhY2tlZERldmlj
ZUluZGV4OworICAgICAgIGZsb2F0IGV2ZW50QWdlU2Vjb25kczsKKyAgICAgICAvLyBldmVudCBk
YXRhIG11c3QgYmUgdGhlIGVuZCBvZiB0aGUgc3RydWN0IGFzIGl0cyBzaXplIGlzIHZhcmlhYmxl
CisgICAgICAgVlJFdmVudF9EYXRhX3QgZGF0YTsKK307CisKKyNpZiBkZWZpbmVkKF9fbGludXhf
XykgfHwgZGVmaW5lZChfX0FQUExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisK
Ky8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwgKG9yIGRlcHRoKSBidWZmZXIg
dG8gcGVyZm9ybSAKKyogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgpIGtpbGxzIG9mIHBpeGVscyB0
aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCisqIFRoaXMgbWVzaCBkcmF3cyBvbiBh
bGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVyIGRpc3RvcnRpb24uIAorKgor
KiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxlIGFyZWEgbWVzaCBwVmVydGV4
RGF0YSB3aWxsIGJlCisqIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3VudCB3aWxsIGJlIDAuICovCitz
dHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAgICAgIGNvbnN0IEhtZFZlY3RvcjJfdCAqcFZl
cnRleERhdGE7CisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfTsKKworCitlbnVt
IEVIaWRkZW5BcmVhTWVzaFR5cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFy
ZCA9IDAsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19l
SGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAorCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hf
TWF4ID0gMywKK307CisKKworLyoqIElkZW50aWZpZXMgd2hhdCBraW5kIG9mIGF4aXMgaXMgb24g
dGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5cGUgCisqIHdpdGggcFZSU3lz
dGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3BfQXhpczBUeXBlX0ludDMyICsg
biApOworKi8KK2VudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAga19lQ29udHJv
bGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJhY2tQYWQgPSAx
LAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBrX2VDb250
cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdnZXIgZGF0YSBpcyBpbiB0aGUg
WCBheGlzCit9OworCisKKy8qKiBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBvbmUgYXhpcyBv
biB0aGUgY29udHJvbGxlciAqLworc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAoreworICAgICAg
IGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlja3MgYW5kIHRy
YWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRyaWdnZXJzIHdlcmUgMCBpcyBm
dWxseSByZWxlYXNlZC4KKyAgICAgICBmbG9hdCB5OyAvLyBSYW5nZXMgZnJvbSAtMS4wIHRvIDEu
MCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdheXMgMC4wIGZvciB0cmlnZ2Vy
cy4KK307CisKKworLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0aGUgY29udHJvbGxlciBzdGF0
ZSAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQg
PSA1OworCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAor
Ly8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExp
bnV4LCBwcmVzZXJ2ZWQgZm9yIAorLy8gY29tcGF0aWJpbGl0eS4gCisjcHJhZ21hIHBhY2soIHB1
c2gsIDQgKQorI2VuZGlmCisKKy8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEgY29udHJvbGxl
ciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCitzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGUwMDFf
dAoreworICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlvdXIgcHJpb3Ig
Y2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFuZ2VkIHNpbmNl
IAorICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nl
c3MgaXQKKyAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKKworICAgICAgIC8vIGJpdCBmbGFn
cyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQgdG8gdHVybiBh
biBJRCBpbnRvIGEgbWFzaworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAg
ICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisKKyAgICAgICAvLyBBeGlzIGRhdGEgZm9yIHRo
ZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cworICAgICAgIFZSQ29udHJvbGxlckF4aXNfdCBy
QXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOworfTsKKyNpZiBkZWZpbmVkKF9f
bGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2Vu
ZGlmCisKKwordHlwZWRlZiBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90IFZSQ29udHJvbGxlclN0YXRl
X3Q7CisKKworLyoqIGRldGVybWluZXMgaG93IHRvIHByb3ZpZGUgb3V0cHV0IHRvIHRoZSBhcHBs
aWNhdGlvbiBvZiB2YXJpb3VzIGV2ZW50IHByb2Nlc3NpbmcgZnVuY3Rpb25zLiAqLworZW51bSBF
VlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlCit7CisgICAgICAgQ29udHJvbGxlckV2ZW50T3V0
cHV0X09TRXZlbnRzID0gMCwKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVudHMg
PSAxLAorfTsKKworCisKKy8qKiBDb2xsaXNpb24gQm91bmRzIFN0eWxlICovCitlbnVtIEVDb2xs
aXNpb25Cb3VuZHNTdHlsZQoreworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5O
RVIgPSAwLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFLAorICAg
ICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUywKKyAgICAgICBDT0xMSVNJT05fQk9V
TkRTX1NUWUxFX0FEVkFOQ0VELAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSwK
KworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQKK307CisKKy8qKiBBbGxvd3Mg
dGhlIGFwcGxpY2F0aW9uIHRvIGN1c3RvbWl6ZSBob3cgdGhlIG92ZXJsYXkgYXBwZWFycyBpbiB0
aGUgY29tcG9zaXRvciAqLworc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCit7Cisg
ICAgICAgdWludDMyX3Qgc2l6ZTsgLy8gc2l6ZW9mKENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdz
KQorICAgICAgIGJvb2wgY3VydmVkLCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGUsIGRp
c3RhbmNlLCBhbHBoYTsKKyAgICAgICBmbG9hdCB1T2Zmc2V0LCB2T2Zmc2V0LCB1U2NhbGUsIHZT
Y2FsZTsKKyAgICAgICBmbG9hdCBncmlkRGl2cywgZ3JpZFdpZHRoLCBncmlkU2NhbGU7CisgICAg
ICAgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9OworCisvKiogdXNlZCB0byByZWZlciB0byBh
IHNpbmdsZSBWUiBvdmVybGF5ICovCit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90
OworCitzdGF0aWMgY29uc3QgVlJPdmVybGF5SGFuZGxlX3Qga191bE92ZXJsYXlIYW5kbGVJbnZh
bGlkID0gMDsKKworLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciBhcm91bmQgVlIgb3ZlcmxheXMg
Ki8KK2VudW0gRVZST3ZlcmxheUVycm9yCit7CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9uZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIFZS
T3ZlcmxheUVycm9yX1Vua25vd25PdmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICAgICAgICAgPSAx
MSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAg
ICAgICAgPSAxMiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCAg
ICAgICAgICAgICAgPSAxMywgLy8gTm8gbW9yZSBvdmVybGF5cyBjb3VsZCBiZSBjcmVhdGVkIGJl
Y2F1c2UgdGhlIG1heGltdW0gbnVtYmVyIGFscmVhZHkgZXhpc3QKKyAgICAgICBWUk92ZXJsYXlF
cnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBlICAgICAgICAgICAgICA9IDE0LAorICAgICAgIFZST3Zl
cmxheUVycm9yX0tleVRvb0xvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9OYW1lVG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDE2LAorICAgICAgIFZST3ZlcmxheUVycm9yX0tleUluVXNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDE3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNm
b3JtVHlwZSAgICAgICAgICAgICAgPSAxOCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlk
VHJhY2tlZERldmljZSAgICAgICAgICAgICAgPSAxOSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9J
bnZhbGlkUGFyYW1ldGVyICAgICAgICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9UaHVtYm5haWxDYW50QmVEZXN0cm95ZWQgICAgICAgPSAyMSwKKyAgICAgICBWUk92
ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgPSAyMiwKKyAgICAg
ICBWUk92ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAyMywK
KyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAgICAgICAg
ID0gMjQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSAgICAgICAgICAg
ICAgICAgICAgID0gMjUsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5V
c2UgICAgICAgICAgICAgID0gMjYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDI3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1Rv
b01hbnlNYXNrUHJpbWl0aXZlcyAgICAgICA9IDI5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0Jh
ZE1hc2tQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICA9IDMwLAorfTsKKworLyoqIGVudW0g
dmFsdWVzIHRvIHBhc3MgaW4gdG8gVlJfSW5pdCB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSBhcHBs
aWNhdGlvbiB3aWxsIAorKiBkcmF3IGEgM0Qgc2NlbmUuICovCitlbnVtIEVWUkFwcGxpY2F0aW9u
VHlwZQoreworICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLCAgICAgICAgICAgICAgLy8g
U29tZSBvdGhlciBraW5kIG9mIGFwcGxpY2F0aW9uIHRoYXQgaXNuJ3QgY292ZXJlZCBieSB0aGUg
b3RoZXIgZW50cmllcyAKKyAgICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lICAgICAgID0gMSwgICAg
ICAgICAgICAgIC8vIEFwcGxpY2F0aW9uIHdpbGwgc3VibWl0IDNEIGZyYW1lcyAKKyAgICAgICBW
UkFwcGxpY2F0aW9uX092ZXJsYXkgPSAyLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRpb24gb25s
eSBpbnRlcmFjdHMgd2l0aCBvdmVybGF5cworICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3Vu
ZCA9IDMsICAgICAgIC8vIEFwcGxpY2F0aW9uIHNob3VsZCBub3Qgc3RhcnQgU3RlYW1WUiBpZiBp
dCdzIG5vdCBhbHJlYWR5IHJ1bm5pbmcsIGFuZCBzaG91bGQgbm90CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGl0
IHJ1bm5pbmcgaWYgZXZlcnl0aGluZyBlbHNlIHF1aXRzLgorICAgICAgIFZSQXBwbGljYXRpb25f
VXRpbGl0eSA9IDQsICAgICAgICAgICAgICAvLyBJbml0IHNob3VsZCBub3QgdHJ5IHRvIGxvYWQg
YW55IGRyaXZlcnMuIFRoZSBhcHBsaWNhdGlvbiBuZWVkcyBhY2Nlc3MgdG8gdXRpbGl0eQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gaW50ZXJmYWNlcyAobGlrZSBJVlJTZXR0aW5ncyBhbmQgSVZSQXBwbGljYXRpb25zKSBi
dXQgbm90IGhhcmR3YXJlLgorICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwgICAg
ICAgLy8gUmVzZXJ2ZWQgZm9yIHZybW9uaXRvcgorICAgICAgIFZSQXBwbGljYXRpb25fU3RlYW1X
YXRjaGRvZyA9IDYsLy8gUmVzZXJ2ZWQgZm9yIFN0ZWFtCisgICAgICAgVlJBcHBsaWNhdGlvbl9C
b290c3RyYXBwZXIgPSA3LCAvLyBTdGFydCB1cCBTdGVhbVZSCisKKyAgICAgICBWUkFwcGxpY2F0
aW9uX01heAorfTsKKworCisvKiogZXJyb3IgY29kZXMgZm9yIGZpcm13YXJlICovCitlbnVtIEVW
UkZpcm13YXJlRXJyb3IKK3sKKyAgICAgICBWUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAg
ICAgVlJGaXJtd2FyZUVycm9yX1N1Y2Nlc3MgPSAxLAorICAgICAgIFZSRmlybXdhcmVFcnJvcl9G
YWlsID0gMiwKK307CisKKworLyoqIGVycm9yIGNvZGVzIGZvciBub3RpZmljYXRpb25zICovCitl
bnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9P
SyA9IDAsCisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQg
PSAxMDAsCisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwg
PSAxMDEsCisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9
IDEwMiwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJl
YWR5RXhpc3RzID0gMTAzLAorfTsKKworCisvKiogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgVnJf
SW5pdCAqLworCisvLyBQbGVhc2UgYWRkIGFkZXF1YXRlIGVycm9yIGRlc2NyaXB0aW9uIHRvIGh0
dHBzOi8vZGV2ZWxvcGVyLnZhbHZlc29mdHdhcmUuY29tL3cvaW5kZXgucGhwP3RpdGxlPUNhdGVn
b3J5OlN0ZWFtVlJIZWxwCitlbnVtIEVWUkluaXRFcnJvcgoreworICAgICAgIFZSSW5pdEVycm9y
X05vbmUgICAgICAgPSAwLAorICAgICAgIFZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCAgICAgICAgICAgICAgICAg
ICAgID0gMTAwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCAg
ICAgICAgICAgICAgICAgICAgID0gMTAxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGll
bnRETExOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfRmlsZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFj
ZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwNiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlk
ICAgICAgICAgICAgICA9IDEwNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwOCwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X05vdEluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwOSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kICAg
ICAgICAgICAgICAgICAgICAgPSAxMTAsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZp
Z1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTExLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMTIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSAgICAgICAgICAgICAgPSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJ
bmZvSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1JldHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTE1LCAvLyBVc2VkIGludGVybmFsbHkgdG8gY2F1c2UgcmV0cmllcyB0
byB2cnNlcnZlcgorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2VyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlv
biBzaG91bGQgc2lsZW50bHkgZXhpdC4gVGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgICAg
ICAgICA9IDExNywgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTgsIAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfU2h1dHRpbmdEb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExOSwK
KyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEyMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVy
Rm9yQmFja2dyb3VuZEFwcCAgICAgICAgICAgICAgPSAxMjEsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvciAgICAgICAgICAgICAgPSAxMjIsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgICAgICAg
ICA9IDEyMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTI0LAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfSG1kRHJpdmVySWRJc05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTI1LAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAg
ICAgICAgID0gMTI2LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjcsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9WUk1vbml0b3JTdGFydHVwRmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAxMjgsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkICAgICAgID0g
MTI5LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAg
ICAgICAgICAgICAgICAgICA9IDEzMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWls
YWJsZVRvV2F0Y2hkb2dBcHBzICAgICAgICAgICAgICA9IDEzMSwKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzICAgICAgICAgICAgICA9IDEzMiwKKyAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgICAgICAgICAgICAgICAg
ICAgICA9IDEzMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZh
aWxlZCAgICAgICAgICAgICAgPSAxMzQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVO
b3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzUsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9WUkhvbWVTdGFydHVwRmFpbGVkICAgICAgICAgICAgICAgICAgICAg
PSAxMzYsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEzNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Zp
cm13YXJlVXBkYXRlQnVzeSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzOCwKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5ICAgICAgICAgICAgICAgICAg
ICAgPSAxMzksCisKKworICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBWUkluaXRFcnJv
cl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAxLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJf
Tm90TG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMywKKyAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDIwNCwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNSwKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
NiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgICAg
ICAgICAgICAgICAgPSAyMDcsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlO
b3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMjA4LAorICAgICAgIFZSSW5pdEVycm9yX0Ry
aXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biA9IDIwOSwKKyAgICAgICAvLyBWUklu
aXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXggPSAyMTAsIC8vIG5vdCBu
ZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2
ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyAgICAgICAgICAgICAgPSAyMTEsCisgICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCAgICAgICAgICAgICAgICAgICAgID0g
MjEyLAorCisgICAgICAgVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMDAsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RG
YWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAxLAorICAgICAgIFZS
SW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9
IDMwMiwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQgICAgICAg
ICAgICAgICAgICAgICA9IDMwMywKKyAgICAgICBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFp
bGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNCwKKyAgICAgICBWUklu
aXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMzA1LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVj
dEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzA2LAorICAgICAgIFZSSW5pdEVycm9yX0lQ
Q19Db21wb3NpdG9ySW52YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBWUkluaXRF
cnJvcl9JUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKworICAg
ICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDQwMCwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFy
ZHdhcmVSZXF1aXJlZCAgICAgICA9IDQwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9y
X0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgICAgICAgPSA0MDIsCisgICAgICAgVlJJbml0RXJyb3Jf
Q29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCAgICAgICAgICAgICAgPSA0MDMsCisgICAgICAg
VlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgICAgICAgPSA0MDQs
CisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmljZSAgICAg
ICAgICAgICAgPSA0MDUsCisKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFi
bGVUb0Nvbm5lY3RUb09jdWx1c1J1bnRpbWUgICAgICAgICAgICAgID0gMTAwMCwKKworICAgICAg
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDExMDEsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQgICAgICAgPSAxMTAy
LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29u
ZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMDMsCisgICAgICAgVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDExMDQsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfQ29uZmlnVG9vU21hbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNSwK
KyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRa
TGliICAgICAgICAgICAgICAgICAgICAgID0gMTEwNiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiAgICAgICAgPSAxMTA3
LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2Vu
ZFVzZXJEYXRhU3RhcnQgICAgICAgPSAxMTA4LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydCAgICAgICA9IDExMDksCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2Vy
RGF0YU5leHQgICAgICAgICAgICAgID0gMTExMCwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSAgICAgICAgICAgICAgPSAxMTEx
LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJy
b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEyLAorICAgICAgIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrICAgICAgICAg
ICAgICA9IDExMTMsCisKKyAgICAgICBWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlv
bk5vdEZvdW5kID0gMjAwMCwKK307CisKK2VudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAg
ICBWUlNjcmVlbnNob3RUeXBlX05vbmUgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9u
byA9IDEsIC8vIGxlZnQgZXllIG9ubHkKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyA9
IDIsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFwID0gMywKKyAgICAgICBWUlNjcmVl
bnNob3RUeXBlX01vbm9QYW5vcmFtYSA9IDQsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVy
ZW9QYW5vcmFtYSA9IDUKK307CisKK2VudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVz
Cit7CisgICAgICAgVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAsCisg
ICAgICAgVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlIgPSAxLAorfTsKKworZW51bSBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IKK3sKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25l
ICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
T3BlcmF0aW9uRmFpbGVkICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfSW52YWxpZEhhbmRsZSAgICAgICAgICAgICAgPSAxMDEsICAgICAgIAorICAgICAgIFZS
VHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUhlYWRlclZlcnNpb24gID0gMTAyLAorICAg
ICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyAgICAgICAgICAgICAgID0gMTAz
LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUgICAgICAgICAgICAgICAg
ID0gMTA0LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRlZEZvclRoaXNE
ZXZpY2UgID0gMTA1LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZE1lbW9yeUZh
aWx1cmUgICAgICAgID0gMTA2LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVm
ZmVyaW5nRmFpbHVyZSAgICAgID0gMTA3LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX1N0
cmVhbVNldHVwRmFpbHVyZSAgICAgICAgID0gMTA4LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVy
cm9yX0ludmFsaWRHTFRleHR1cmVJZCAgICAgICAgID0gMTA5LAorICAgICAgIFZSVHJhY2tlZENh
bWVyYUVycm9yX0ludmFsaWRTaGFyZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIFZSVHJh
Y2tlZENhbWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgICAgID0gMTExLAorICAgICAg
IFZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlICAgICAgID0gMTEyLAor
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUgICAgICAgICAgID0g
MTEzLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRBcmd1bWVudCAgICAgICAg
ICAgID0gMTE0LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZl
clNpemUgICAgID0gMTE1LAorfTsKKworZW51bSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlCit7
CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCA9IDAsICAgICAgICAg
ICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2FtZXJhIHZpZGVvIGZyYW1lIHNpemUgaW4gcGl4
ZWxzLCBzdGlsbCBkaXN0b3J0ZWQuCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1Vu
ZGlzdG9ydGVkLCAgICAgICAgICAgICAgICAgICAgIC8vIEluIHBpeGVscywgYW4gdW5kaXN0b3J0
ZWQgaW5zY3JpYmVkIHJlY3RhbmdsZSByZWdpb24gd2l0aG91dCBpbnZhbGlkIHJlZ2lvbnMuIFRo
aXMgc2l6ZSBpcyBzdWJqZWN0IHRvIGNoYW5nZXMgc2hvcnRseS4KKyAgICAgICBWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkLCAgICAgICAvLyBJbiBwaXhlbHMsIG1h
eGltdW0gdW5kaXN0b3J0ZWQgd2l0aCBpbnZhbGlkIHJlZ2lvbnMuIE5vbiB6ZXJvIGFscGhhIGNv
bXBvbmVudCBpZGVudGlmaWVzIHZhbGlkIHJlZ2lvbnMuCisgICAgICAgTUFYX0NBTUVSQV9GUkFN
RV9UWVBFUworfTsKKwordHlwZWRlZiB1aW50NjRfdCBUcmFja2VkQ2FtZXJhSGFuZGxlX3Q7Cisj
ZGVmaW5lIElOVkFMSURfVFJBQ0tFRF9DQU1FUkFfSEFORExFICAgICAgICgodnI6OlRyYWNrZWRD
YW1lcmFIYW5kbGVfdCkwKQorCitzdHJ1Y3QgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90
Cit7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlOworCisgICAg
ICAgdWludDMyX3QgbldpZHRoOworICAgICAgIHVpbnQzMl90IG5IZWlnaHQ7CisgICAgICAgdWlu
dDMyX3QgbkJ5dGVzUGVyUGl4ZWw7CisKKyAgICAgICB1aW50MzJfdCBuRnJhbWVTZXF1ZW5jZTsK
KworICAgICAgIFRyYWNrZWREZXZpY2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsK
K307CisKKy8vIFNjcmVlbnNob3QgdHlwZXMKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hvdEhh
bmRsZV90OworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blNjcmVlbnNob3RIYW5kbGVJbnZh
bGlkID0gMDsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCisvLyBmaWd1cmUgb3V0IGhvdyB0byBp
bXBvcnQgZnJvbSB0aGUgVlIgQVBJIGRsbAorI2lmIGRlZmluZWQoX1dJTjMyKQorCisjaWZkZWYg
VlJfQVBJX0VYUE9SVAorI2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVj
KCBkbGxleHBvcnQgKQorI2Vsc2UKKyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19k
ZWNsc3BlYyggZGxsaW1wb3J0ICkKKyNlbmRpZgorCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSB8
fCBkZWZpbmVkKENPTVBJTEVSX0dDQykgfHwgZGVmaW5lZChfX0FQUExFX18pCisKKyNpZmRlZiBW
Ul9BUElfRVhQT1JUCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fYXR0cmlidXRl
X18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisjZWxzZQorI2RlZmluZSBWUl9JTlRFUkZBQ0Ug
ZXh0ZXJuICJDIiAKKyNlbmRpZgorCisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBQbGF0Zm9y
bS4iCisjZW5kaWYKKworCisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyNkZWZpbmUgVlJfQ0FMTFRZ
UEUgX19jZGVjbAorI2Vsc2UKKyNkZWZpbmUgVlJfQ0FMTFRZUEUgCisjZW5kaWYKKworfSAvLyBu
YW1lc3BhY2UgdnIKKworI2VuZGlmIC8vIF9JTkNMVURFX1ZSVFlQRVNfSAorCisKKy8vIHZyYW5u
b3RhdGlvbi5oCisjaWZkZWYgQVBJX0dFTgorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKSBf
X2F0dHJpYnV0ZV9fKChhbm5vdGF0ZSggQVRUUiApKSkKKyNlbHNlCisjIGRlZmluZSBWUl9DTEFO
R19BVFRSKEFUVFIpCisjZW5kaWYKKworI2RlZmluZSBWUl9NRVRIT0RfREVTQyhERVNDKSBWUl9D
TEFOR19BVFRSKCAiZGVzYzoiICNERVNDICI7IiApCisjZGVmaW5lIFZSX0lHTk9SRUFUVFIoKSBW
Ul9DTEFOR19BVFRSKCAiaWdub3JlIiApCisjZGVmaW5lIFZSX09VVF9TVFJVQ1QoKSBWUl9DTEFO
R19BVFRSKCAib3V0X3N0cnVjdDogOyIgKQorI2RlZmluZSBWUl9PVVRfU1RSSU5HKCkgVlJfQ0xB
TkdfQVRUUiggIm91dF9zdHJpbmc6IDsiICkKKyNkZWZpbmUgVlJfT1VUX0FSUkFZX0NBTEwoQ09V
TlRFUixGVU5DVElPTixQQVJBTVMpIFZSX0NMQU5HX0FUVFIoICJvdXRfYXJyYXlfY2FsbDoiICND
T1VOVEVSICIsIiAjRlVOQ1RJT04gIiwiICNQQVJBTVMgIjsiICkKKyNkZWZpbmUgVlJfT1VUX0FS
UkFZX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfYXJyYXlfY291bnQ6IiAjQ09V
TlRFUiAiOyIgKQorI2RlZmluZSBWUl9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRS
KCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9BUlJBWV9DT1VOVF9E
KENPVU5URVIsIERFU0MpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VOVEVSICI7
ZGVzYzoiICNERVNDICkKKyNkZWZpbmUgVlJfQlVGRkVSX0NPVU5UKENPVU5URVIpIFZSX0NMQU5H
X0FUVFIoICJidWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9PVVRfQlVG
RkVSX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfYnVmZmVyX2NvdW50OiIgI0NP
VU5URVIgIjsiICkKKyNkZWZpbmUgVlJfT1VUX1NUUklOR19DT1VOVChDT1VOVEVSKSBWUl9DTEFO
R19BVFRSKCAib3V0X3N0cmluZ19jb3VudDoiICNDT1VOVEVSICI7IiApCisKKy8vIGl2cnN5c3Rl
bS5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgSVZSU3lzdGVtCit7CitwdWJsaWM6CisKKwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IERpc3BsYXkgTWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisgICAgICAgLyoqIFN1Z2dlc3RlZCBzaXplIGZvciB0aGUgaW50ZXJtZWRpYXRl
IHJlbmRlciB0YXJnZXQgdGhhdCB0aGUgZGlzdG9ydGlvbiBwdWxscyBmcm9tLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUoIHVpbnQzMl90ICpw
bldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAvKiogVGhlIHByb2pl
Y3Rpb24gbWF0cml4IGZvciB0aGUgc3BlY2lmaWVkIGV5ZSAqLworICAgICAgIHZpcnR1YWwgSG1k
TWF0cml4NDRfdCBHZXRQcm9qZWN0aW9uTWF0cml4KCBFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJa
LCBmbG9hdCBmRmFyWiApID0gMDsKKworICAgICAgIC8qKiBUaGUgY29tcG9uZW50cyBuZWNlc3Nh
cnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRyaXggaW4gY2FzZSB5b3VyCisgICAg
ICAgKiBhcHBsaWNhdGlvbiBpcyBkb2luZyBzb21ldGhpbmcgZmFuY3kgbGlrZSBpbmZpbml0ZSBa
ICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldFByb2plY3Rpb25SYXcoIEVWUkV5ZSBlRXllLCBm
bG9hdCAqcGZMZWZ0LCBmbG9hdCAqcGZSaWdodCwgZmxvYXQgKnBmVG9wLCBmbG9hdCAqcGZCb3R0
b20gKSA9IDA7CisKKyAgICAgICAvKiogR2V0cyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9u
IGZ1bmN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJv
bSAwLDAgaW4gCisgICAgICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0
IGFuZCAxLDEgaW4gdGhlIGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuCisgICAg
ICAgKiBSZXR1cm5zIHRydWUgZm9yIHN1Y2Nlc3MuIE90aGVyd2lzZSwgcmV0dXJucyBmYWxzZSwg
YW5kIGRpc3RvcnRpb24gY29vcmRpbmF0ZXMgYXJlIG5vdCBzdWl0YWJsZS4gKi8KKyAgICAgICB2
aXJ0dWFsIGJvb2wgQ29tcHV0ZURpc3RvcnRpb24oIEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxv
YXQgZlYsIERpc3RvcnRpb25Db29yZGluYXRlc190ICpwRGlzdG9ydGlvbkNvb3JkaW5hdGVzICkg
PSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSBmcm9tIGV5ZSBzcGFjZSB0
byB0aGUgaGVhZCBzcGFjZS4gRXllIHNwYWNlIGlzIHRoZSBwZXItZXllIGZsYXZvciBvZiBoZWFk
CisgICAgICAgKiBzcGFjZSB0aGF0IHByb3ZpZGVzIHN0ZXJlbyBkaXNwYXJpdHkuIEluc3RlYWQg
b2YgTW9kZWwgKiBWaWV3ICogUHJvamVjdGlvbiB0aGUgc2VxdWVuY2UgaXMgTW9kZWwgKiBWaWV3
ICogRXllXi0xICogUHJvamVjdGlvbi4gCisgICAgICAgKiBOb3JtYWxseSBWaWV3IGFuZCBFeWVe
LTEgd2lsbCBiZSBtdWx0aXBsaWVkIHRvZ2V0aGVyIGFuZCB0cmVhdGVkIGFzIFZpZXcgaW4geW91
ciBhcHBsaWNhdGlvbi4gCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3Qg
R2V0RXllVG9IZWFkVHJhbnNmb3JtKCBFVlJFeWUgZUV5ZSApID0gMDsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxhcHNlZCBzZWNvbmRzIHNpbmNlIHRoZSBsYXN0IHJlY29y
ZGVkIHZzeW5jIGV2ZW50LiBUaGlzIAorICAgICAgICogICAgICAgd2lsbCBjb21lIGZyb20gYSB2
c3luYyB0aW1lciBldmVudCBpbiB0aGUgdGltZXIgaWYgcG9zc2libGUgb3IgZnJvbSB0aGUgYXBw
bGljYXRpb24tcmVwb3J0ZWQKKyAgICAgICAqICAgdGltZSBpZiB0aGF0IGlzIG5vdCBhdmFpbGFi
bGUuIElmIG5vIHZzeW5jIHRpbWVzIGFyZSBhdmFpbGFibGUgdGhlIGZ1bmN0aW9uIHdpbGwgCisg
ICAgICAgKiAgIHJldHVybiB6ZXJvIGZvciB2c3luYyB0aW1lIGFuZCBmcmFtZSBjb3VudGVyIGFu
ZCByZXR1cm4gZmFsc2UgZnJvbSB0aGUgbWV0aG9kLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRUaW1lU2luY2VMYXN0VnN5bmMoIGZsb2F0ICpwZlNlY29uZHNTaW5jZUxhc3RWc3luYywgdWlu
dDY0X3QgKnB1bEZyYW1lQ291bnRlciApID0gMDsKKworICAgICAgIC8qKiBbRDNEOSBPbmx5XQor
ICAgICAgICogUmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCB0aGF0IHRoZSB1c2VyIHNob3VsZCBw
YXNzIGludG8gQ3JlYXRlRGV2aWNlIHRvIHNldCB1cCBEM0Q5IGluIHN1Y2gKKyAgICAgICAqIGEg
d2F5IHRoYXQgaXQgY2FuIGdvIGZ1bGwgc2NyZWVuIGV4Y2x1c2l2ZSBvbiB0aGUgSE1ELiBSZXR1
cm5zIC0xIGlmIHRoZXJlIHdhcyBhbiBlcnJvci4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwg
aW50MzJfdCBHZXREM0Q5QWRhcHRlckluZGV4KCkgPSAwOworCisgICAgICAgLyoqIFtEM0QxMC8x
MSBPbmx5XQorICAgICAgICogUmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCB0aGF0IHRoZSB1c2Vy
IHNob3VsZCBwYXNzIGludG8gRW51bUFkYXB0ZXJzIHRvIGNyZWF0ZSB0aGUgZGV2aWNlIAorICAg
ICAgICogYW5kIHN3YXAgY2hhaW4gaW4gRFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJz
IHRoZSBpbmRleCB3aWxsIGJlIHNldCB0byAtMS4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwg
dm9pZCBHZXREWEdJT3V0cHV0SW5mbyggaW50MzJfdCAqcG5BZGFwdGVySW5kZXggKSA9IDA7Cisg
ICAgICAgCisgICAgICAgLyoqCisgICAgICAgICogUmV0dXJucyBwbGF0Zm9ybS0gYW5kIHRleHR1
cmUtdHlwZSBzcGVjaWZpYyBhZGFwdGVyIGlkZW50aWZpY2F0aW9uIHNvIHRoYXQgYXBwbGljYXRp
b25zIGFuZCB0aGUKKyAgICAgICAgKiBjb21wb3NpdG9yIGFyZSBjcmVhdGluZyB0ZXh0dXJlcyBh
bmQgc3dhcCBjaGFpbnMgb24gdGhlIHNhbWUgR1BVLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhlIGRl
dmljZQorICAgICAgICAqIHdpbGwgYmUgc2V0IHRvIDAuCisgICAgICAgICogcEluc3RhbmNlIGlz
IGFuIG9wdGlvbmFsIHBhcmFtZXRlciB0aGF0IGlzIHJlcXVpcmVkIG9ubHkgd2hlbiB0ZXh0dXJl
VHlwZSBpcyBUZXh0dXJlVHlwZV9WdWxrYW4uCisgICAgICAgICogW0QzRDEwLzExLzEyIE9ubHkg
KEQzRDkgTm90IFN1cHBvcnRlZCldCisgICAgICAgICogIFJldHVybnMgdGhlIGFkYXB0ZXIgTFVJ
RCB0aGF0IGlkZW50aWZpZXMgdGhlIEdQVSBhdHRhY2hlZCB0byB0aGUgSE1ELiBUaGUgdXNlciBz
aG91bGQKKyAgICAgICAgKiAgZW51bWVyYXRlIGFsbCBhZGFwdGVycyB1c2luZyBJRFhHSUZhY3Rv
cnk6OkVudW1BZGFwdGVycyBhbmQgSURYR0lBZGFwdGVyOjpHZXREZXNjIHRvIGZpbmQKKyAgICAg
ICAgKiAgdGhlIGFkYXB0ZXIgd2l0aCB0aGUgbWF0Y2hpbmcgTFVJRCwgb3IgdXNlIElEWEdJRmFj
dG9yeTQ6OkVudW1BZGFwdGVyQnlMdWlkLgorICAgICAgICAqICBUaGUgZGlzY292ZXJlZCBJRFhH
SUFkYXB0ZXIgc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBkZXZpY2UgYW5kIHN3YXAgY2hh
aW4uCisgICAgICAgICogW1Z1bGthbiBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIHRoZSBWa1Bo
eXNpY2FsRGV2aWNlIHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAg
ICAgICAqICBwSW5zdGFuY2UgbXVzdCBiZSB0aGUgaW5zdGFuY2UgdGhlIGFwcGxpY2F0aW9uIHdp
bGwgdXNlIHRvIHF1ZXJ5IGZvciB0aGUgVmtQaHlzaWNhbERldmljZS4gIFRoZSBhcHBsaWNhdGlv
bgorICAgICAgICAqICBtdXN0IGNyZWF0ZSB0aGUgVmtJbnN0YW5jZSB3aXRoIGV4dGVuc2lvbnMg
cmV0dXJuZWQgYnkgSVZSQ29tcG9zaXRvcjo6R2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVx
dWlyZWQgZW5hYmxlZC4KKyAgICAgICAgKiBbbWFjT1MgT25seV0KKyAgICAgICAgKiAgUmV0dXJu
cyBhbiBpZDxNVExEZXZpY2U+IHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9u
LgorICAgICAgICAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXRPdXRwdXREZXZpY2UoIHVpbnQ2
NF90ICpwbkRldmljZSwgRVRleHR1cmVUeXBlIHRleHR1cmVUeXBlLCBWa0luc3RhbmNlX1QgKnBJ
bnN0YW5jZSA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBEaXNwbGF5IE1vZGUgbWV0aG9kcworICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFVz
ZSB0byBkZXRlcm1pbmUgaWYgdGhlIGhlYWRzZXQgZGlzcGxheSBpcyBwYXJ0IG9mIHRoZSBkZXNr
dG9wIChpLmUuIGV4dGVuZGVkKSBvciBoaWRkZW4gKGkuZS4gZGlyZWN0IG1vZGUpLiAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBJc0Rpc3BsYXlPbkRlc2t0b3AoKSA9IDA7CisKKyAgICAgICAvKiog
U2V0IHRoZSBkaXNwbGF5IHZpc2liaWxpdHkgKHRydWUgPSBleHRlbmRlZCwgZmFsc2UgPSBkaXJl
Y3QgbW9kZSkuICBSZXR1cm4gdmFsdWUgb2YgdHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2hhbmdl
IHdhcyBzdWNjZXNzZnVsLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBTZXREaXNwbGF5VmlzaWJp
bGl0eSggYm9vbCBiSXNWaXNpYmxlT25EZXNrdG9wICkgPSAwOworCisgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gVHJhY2tpbmcgTWV0aG9k
cworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAg
ICAgLyoqIFRoZSBwb3NlIHRoYXQgdGhlIHRyYWNrZXIgdGhpbmtzIHRoYXQgdGhlIEhNRCB3aWxs
IGJlIGluIGF0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNlY29uZHMgaW50byB0aGUgCisgICAg
ICAgKiBmdXR1cmUuIFBhc3MgMCB0byBnZXQgdGhlIHN0YXRlIGF0IHRoZSBpbnN0YW50IHRoZSBt
ZXRob2QgaXMgY2FsbGVkLiBNb3N0IG9mIHRoZSB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQK
KyAgICAgICAqIGNhbGN1bGF0ZSB0aGUgdGltZSB1bnRpbCB0aGUgcGhvdG9ucyB3aWxsIGJlIGVt
aXR0ZWQgZnJvbSB0aGUgZGlzcGxheSBhbmQgcGFzcyB0aGF0IHRpbWUgaW50byB0aGUgbWV0aG9k
LgorICAgICAgICoKKyAgICAgICAqIFRoaXMgaXMgcm91Z2hseSBhbmFsb2dvdXMgdG8gdGhlIGlu
dmVyc2Ugb2YgdGhlIHZpZXcgbWF0cml4IGluIG1vc3QgYXBwbGljYXRpb25zLCB0aG91Z2ggCisg
ICAgICAgKiBtYW55IGdhbWVzIHdpbGwgbmVlZCB0byBkbyBzb21lIGFkZGl0aW9uYWwgcm90YXRp
b24gb3IgdHJhbnNsYXRpb24gb24gdG9wIG9mIHRoZSByb3RhdGlvbgorICAgICAgICogYW5kIHRy
YW5zbGF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBoZWFkIHBvc2UuCisgICAgICAgKgorICAgICAgICog
Rm9yIGRldmljZXMgd2hlcmUgYlBvc2VJc1ZhbGlkIGlzIHRydWUgdGhlIGFwcGxpY2F0aW9uIGNh
biB1c2UgdGhlIHBvc2UgdG8gcG9zaXRpb24gdGhlIGRldmljZQorICAgICAgICogaW4gcXVlc3Rp
b24uIFRoZSBwcm92aWRlZCBhcnJheSBjYW4gYmUgYW55IHNpemUgdXAgdG8ga191bk1heFRyYWNr
ZWREZXZpY2VDb3VudC4gCisgICAgICAgKgorICAgICAgICogU2VhdGVkIGV4cGVyaWVuY2VzIHNo
b3VsZCBjYWxsIHRoaXMgbWV0aG9kIHdpdGggVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCBhbmQgcmVj
ZWl2ZSBwb3NlcyByZWxhdGl2ZQorICAgICAgICogdG8gdGhlIHNlYXRlZCB6ZXJvIHBvc2UuIFN0
YW5kaW5nIGV4cGVyaWVuY2VzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIHdpdGggVHJhY2tpbmdV
bml2ZXJzZVN0YW5kaW5nIAorICAgICAgICogYW5kIHJlY2VpdmUgcG9zZXMgcmVsYXRpdmUgdG8g
dGhlIENoYXBlcm9uZSBQbGF5IEFyZWEuIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0
ZWQgc2hvdWxkIAorICAgICAgICogcHJvYmFibHkgbm90IGJlIHVzZWQgdW5sZXNzIHRoZSBhcHBs
aWNhdGlvbiBpcyB0aGUgQ2hhcGVyb25lIGNhbGlicmF0aW9uIHRvb2wgaXRzZWxmLCBidXQgd2ls
bCBwcm92aWRlCisgICAgICAgKiBwb3NlcyByZWxhdGl2ZSB0byB0aGUgaGFyZHdhcmUtc3BlY2lm
aWMgY29vcmRpbmF0ZSBzeXN0ZW0gaW4gdGhlIGRyaXZlci4KKyAgICAgICAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKCBFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbiBlT3JpZ2luLCBmbG9hdCBmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21O
b3csIFZSX0FSUkFZX0NPVU5UKHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50KSBUcmFja2Vk
RGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludDMyX3QgdW5UcmFja2Vk
RGV2aWNlUG9zZUFycmF5Q291bnQgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgemVybyBw
b3NlIGZvciB0aGUgc2VhdGVkIHRyYWNrZXIgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlIGN1cnJl
bnQgcG9zaXRpb24gYW5kIHlhdyBvZiB0aGUgSE1ELiBBZnRlciAKKyAgICAgICAqIFJlc2V0U2Vh
dGVkWmVyb1Bvc2UgYWxsIEdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UgY2FsbHMgdGhh
dCBwYXNzIFRyYWNraW5nVW5pdmVyc2VTZWF0ZWQgYXMgdGhlIG9yaWdpbiAKKyAgICAgICAqIHdp
bGwgYmUgcmVsYXRpdmUgdG8gdGhpcyBuZXcgemVybyBwb3NlLiBUaGUgbmV3IHplcm8gY29vcmRp
bmF0ZSBzeXN0ZW0gd2lsbCBub3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgdGhlIFkgYXhpcyAKKyAg
ICAgICAqIGlzIHVwIGluIHRoZSByZWFsIHdvcmxkLCBzbyB0aGUgbmV4dCBwb3NlIHJldHVybmVk
IGZyb20gR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBhZnRlciBhIGNhbGwgdG8gCisg
ICAgICAgKiBSZXNldFNlYXRlZFplcm9Qb3NlIG1heSBub3QgYmUgZXhhY3RseSBhbiBpZGVudGl0
eSBtYXRyaXguCisgICAgICAgKgorICAgICAgICogTk9URTogVGhpcyBmdW5jdGlvbiBvdmVycmlk
ZXMgdGhlIHVzZXIncyBwcmV2aW91c2x5IHNhdmVkIHNlYXRlZCB6ZXJvIHBvc2UgYW5kIHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCBhcyB0aGUgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uIAorICAgICAg
ICogVXNlcnMgYXJlIGFsc28gYWJsZSB0byBzZXQgdGhlaXIgc2VhdGVkIHplcm8gcG9zZSB2aWEg
dGhlIE9wZW5WUiBEYXNoYm9hcmQuCisgICAgICAgKiovCisgICAgICAgdmlydHVhbCB2b2lkIFJl
c2V0U2VhdGVkWmVyb1Bvc2UoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNm
b3JtIGZyb20gdGhlIHNlYXRlZCB6ZXJvIHBvc2UgdG8gdGhlIHN0YW5kaW5nIGFic29sdXRlIHRy
YWNraW5nIHN5c3RlbS4gVGhpcyBhbGxvd3MgCisgICAgICAgKiBhcHBsaWNhdGlvbnMgdG8gcmVw
cmVzZW50IHRoZSBzZWF0ZWQgb3JpZ2luIHRvIHVzZWQgb3IgdHJhbnNmb3JtIG9iamVjdCBwb3Np
dGlvbnMgZnJvbSBvbmUgY29vcmRpbmF0ZQorICAgICAgICogc3lzdGVtIHRvIHRoZSBvdGhlci4g
CisgICAgICAgKgorICAgICAgICogVGhlIHNlYXRlZCBvcmlnaW4gbWF5IG9yIG1heSBub3QgYmUg
aW5zaWRlIHRoZSBQbGF5IEFyZWEgb3IgQ29sbGlzaW9uIEJvdW5kcyByZXR1cm5lZCBieSBJVlJD
aGFwZXJvbmUuIEl0cyBwb3NpdGlvbiAKKyAgICAgICAqIGRlcGVuZHMgb24gd2hhdCB0aGUgdXNl
ciBoYXMgc2V0IGZyb20gdGhlIERhc2hib2FyZCBzZXR0aW5ncyBhbmQgcHJldmlvdXMgY2FsbHMg
dG8gUmVzZXRTZWF0ZWRaZXJvUG9zZS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3Qg
R2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gdGhlIHRyYWNraW5nIG9yaWdp
biB0byB0aGUgc3RhbmRpbmcgYWJzb2x1dGUgdHJhY2tpbmcgc3lzdGVtLiBUaGlzIGFsbG93cwor
ICAgICAgICogYXBwbGljYXRpb25zIHRvIGNvbnZlcnQgZnJvbSByYXcgdHJhY2tpbmcgc3BhY2Ug
dG8gdGhlIGNhbGlicmF0ZWQgc3RhbmRpbmcgY29vcmRpbmF0ZSBzeXN0ZW0uICovCisgICAgICAg
dmlydHVhbCBIbWRNYXRyaXgzNF90IEdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJh
Y2tpbmdQb3NlKCkgPSAwOworCisgICAgICAgLyoqIEdldCBhIHNvcnRlZCBhcnJheSBvZiBkZXZp
Y2UgaW5kaWNlcyBvZiBhIGdpdmVuIGNsYXNzIG9mIHRyYWNrZWQgZGV2aWNlcyAoZS5nLiBjb250
cm9sbGVycykuICBEZXZpY2VzIGFyZSBzb3J0ZWQgcmlnaHQgdG8gbGVmdAorICAgICAgICogcmVs
YXRpdmUgdG8gdGhlIHNwZWNpZmllZCB0cmFja2VkIGRldmljZSAoZGVmYXVsdDogaG1kIC0tIHBh
c3MgaW4gLTEgZm9yIGFic29sdXRlIHRyYWNraW5nIHNwYWNlKS4gIFJldHVybnMgdGhlIG51bWJl
ciBvZiBkZXZpY2VzCisgICAgICAgKiBpbiB0aGUgbGlzdCwgb3IgdGhlIHNpemUgb2YgdGhlIGFy
cmF5IG5lZWRlZCBpZiBub3QgbGFyZ2UgZW5vdWdoLiAqLworICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0U29ydGVkVHJhY2tlZERldmljZUluZGljZXNPZkNsYXNzKCBFVHJhY2tlZERldmljZUNs
YXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFZSX0FSUkFZX0NPVU5UKHVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXlDb3VudCkgdnI6OlRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5UcmFja2VkRGV2aWNl
SW5kZXhBcnJheSwgdWludDMyX3QgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB2cjo6
VHJhY2tlZERldmljZUluZGV4X3QgdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4ID0ga191
blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUg
bGV2ZWwgb2YgYWN0aXZpdHkgb24gdGhlIGRldmljZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVEZXZp
Y2VBY3Rpdml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJZCApID0gMDsKKworICAgICAgIC8qKiBDb252ZW5pZW5j
ZSB1dGlsaXR5IHRvIGFwcGx5IHRoZSBzcGVjaWZpZWQgdHJhbnNmb3JtIHRvIHRoZSBzcGVjaWZp
ZWQgcG9zZS4KKyAgICAgICAqICAgVGhpcyBwcm9wZXJseSB0cmFuc2Zvcm1zIGFsbCBwb3NlIGNv
bXBvbmVudHMsIGluY2x1ZGluZyB2ZWxvY2l0eSBhbmQgYW5ndWxhciB2ZWxvY2l0eQorICAgICAg
ICovCisgICAgICAgdmlydHVhbCB2b2lkIEFwcGx5VHJhbnNmb3JtKCBUcmFja2VkRGV2aWNlUG9z
ZV90ICpwT3V0cHV0UG9zZSwgY29uc3QgVHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZp
Y2VQb3NlLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwVHJhbnNmb3JtICkgPSAwOworCisgICAgICAg
LyoqIFJldHVybnMgdGhlIGRldmljZSBpbmRleCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBy
b2xlLCBmb3IgZXhhbXBsZSB0aGUgbGVmdCBoYW5kIG9yIHRoZSByaWdodCBoYW5kLiAqLworICAg
ICAgIHZpcnR1YWwgdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IEdldFRyYWNrZWREZXZpY2VJbmRl
eEZvckNvbnRyb2xsZXJSb2xlKCB2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5
cGUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgY29udHJvbGxlciB0eXBlIGFzc29j
aWF0ZWQgd2l0aCBhIGRldmljZSBpbmRleC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVHJhY2tl
ZENvbnRyb2xsZXJSb2xlIEdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFByb3BlcnR5
IG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBkZXZpY2UgY2xhc3Mgb2YgYSB0cmFja2VkIGRldmlj
ZS4gSWYgdGhlcmUgaGFzIG5vdCBiZWVuIGEgZGV2aWNlIGNvbm5lY3RlZCBpbiB0aGlzIHNsb3QK
KyAgICAgICAqIHNpbmNlIHRoZSBhcHBsaWNhdGlvbiBzdGFydGVkIHRoaXMgZnVuY3Rpb24gd2ls
bCByZXR1cm4gVHJhY2tlZERldmljZV9JbnZhbGlkLiBGb3IgcHJldmlvdXMgZGV0ZWN0ZWQKKyAg
ICAgICAqIGRldmljZXMgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBwcmV2aW91c2x5IG9i
c2VydmVkIGRldmljZSBjbGFzcy4gCisgICAgICAgKgorICAgICAgICogVG8gZGV0ZXJtaW5lIHdo
aWNoIGRldmljZXMgZXhpc3Qgb24gdGhlIHN5c3RlbSwganVzdCBsb29wIGZyb20gMCB0byBrX3Vu
TWF4VHJhY2tlZERldmljZUNvdW50IGFuZCBjaGVjaworICAgICAgICogdGhlIGRldmljZSBjbGFz
cy4gRXZlcnkgZGV2aWNlIHdpdGggc29tZXRoaW5nIG90aGVyIHRoYW4gVHJhY2tlZERldmljZV9J
bnZhbGlkIGlzIGFzc29jaWF0ZWQgd2l0aCBhbiAKKyAgICAgICAqIGFjdHVhbCB0cmFja2VkIGRl
dmljZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERl
dmljZUNsYXNzKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsK
KworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVk
IGluIHRoaXMgc2xvdC4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKwor
ICAgICAgIC8qKiBSZXR1cm5zIGEgYm9vbCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBp
cyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIGJvb2wgdHlwZSB0aGlzIGZ1bmN0
aW9uIHdpbGwgcmV0dXJuIGZhbHNlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sVHJh
Y2tlZERldmljZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRl
eCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBF
cnJvciA9IDBMICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBmbG9hdCBwcm9wZXJ0eS4g
SWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBh
IGZsb2F0IHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLworICAgICAgIHZpcnR1
YWwgZmxvYXQgR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyBhbiBpbnQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRo
ZSBwcm9wZXJ0eSBpcyBub3QgYSBpbnQgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAu
ICovCisgICAgICAgdmlydHVhbCBpbnQzMl90IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwor
CisgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5k
ZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSB1aW50NjQgdHlwZSB0aGlz
IGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRV
aW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRl
dmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIG1hdHJpeCBw
cm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5
IGlzIG5vdCBhIG1hdHJpeCB0eXBlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGlkZW50aXR5
LiAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAw
TCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5LiBJZiB0aGUg
ZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgc3RyaW5n
IHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsIAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBp
dCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8g
aG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiBT
dHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmlu
Z1NpemUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFN0cmluZ1Ry
YWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5k
ZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBj
aFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVy
cm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogcmV0dXJucyBhIHN0cmluZyB0aGF0IGNvcnJl
c3BvbmRzIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBlcnJvci4gVGhlIHN0cmluZyB3aWxs
IGJlIHRoZSBuYW1lIAorICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUgZm9yIGFsbCB2
YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UHJvcEVy
cm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IgKSA9IDA7CisKKyAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBF
dmVudCBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0
aGUgbmV4dCBldmVudCBvbiB0aGUgcXVldWUgaWYgdGhlcmUgaXMgb25lLiBJZiB0aGVyZSBhcmUg
bm8gZXZlbnRzCisgICAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiB1bmNiVlJFdmVu
dCBzaG91bGQgYmUgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8K
KyAgICAgICB2aXJ0dWFsIGJvb2wgUG9sbE5leHRFdmVudCggVlJFdmVudF90ICpwRXZlbnQsIHVp
bnQzMl90IHVuY2JWUkV2ZW50ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQg
ZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRoZXJl
IGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cworICAgICAgICogdGhpcyBtZXRob2QgcmV0
dXJucyBmYWxzZS4gRmlsbHMgaW4gdGhlIHBvc2Ugb2YgdGhlIGFzc29jaWF0ZWQgdHJhY2tlZCBk
ZXZpY2UgaW4gdGhlIHByb3ZpZGVkIHBvc2Ugc3RydWN0LiAKKyAgICAgICAqIFRoaXMgcG9zZSB3
aWxsIGFsd2F5cyBiZSBvbGRlciB0aGFuIHRoZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gYW5kIHNo
b3VsZCBub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIGRldmljZS4gCisgICAgICAgdW5jYlZSRXZl
bnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICov
CisgICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZlbnRXaXRoUG9zZSggRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZU9yaWdpbiwgVlJFdmVudF90ICpwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2
ZW50LCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlICkgPSAwOwor
CisgICAgICAgLyoqIHJldHVybnMgdGhlIG5hbWUgb2YgYW4gRVZSRXZlbnQgZW51bSB2YWx1ZSAq
LworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKCBF
VlJFdmVudFR5cGUgZVR5cGUgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBSZW5kZXJpbmcgaGVscGVyIG1ldGhvZHMKKyAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBoaWRkZW4gYXJlYSBtZXNoIGZvciB0aGUgY3VycmVudCBITUQuIFRoZSBw
aXhlbHMgY292ZXJlZCBieSB0aGlzIG1lc2ggd2lsbCBuZXZlciBiZSBzZWVuIGJ5IHRoZSB1c2Vy
IGFmdGVyIHRoZSBsZW5zIGRpc3RvcnRpb24gaXMKKyAgICAgICAqIGFwcGxpZWQgYmFzZWQgb24g
dmlzaWJpbGl0eSB0byB0aGUgcGFuZWxzLiBJZiB0aGlzIEhNRCBkb2VzIG5vdCBoYXZlIGEgaGlk
ZGVuIGFyZWEgbWVzaCwgdGhlIHZlcnRleCBkYXRhIGFuZCBjb3VudCB3aWxsIGJlIE5VTEwgYW5k
IDAgcmVzcGVjdGl2ZWx5LgorICAgICAgICogVGhpcyBtZXNoIGlzIG1lYW50IHRvIGJlIHJlbmRl
cmVkIGludG8gdGhlIHN0ZW5jaWwgYnVmZmVyIChvciBpbnRvIHRoZSBkZXB0aCBidWZmZXIgc2V0
dGluZyBuZWFyeikgYmVmb3JlIHJlbmRlcmluZyBlYWNoIGV5ZSdzIHZpZXcuIAorICAgICAgICog
VGhpcyB3aWxsIGltcHJvdmUgcGVyZm9ybWFuY2UgYnkgbGV0dGluZyB0aGUgR1BVIGVhcmx5LXJl
amVjdCBwaXhlbHMgdGhlIHVzZXIgd2lsbCBuZXZlciBzZWUgYmVmb3JlIHJ1bm5pbmcgdGhlIHBp
eGVsIHNoYWRlci4KKyAgICAgICAqIE5PVEU6IFJlbmRlciB0aGlzIG1lc2ggd2l0aCBiYWNrZmFj
ZSBjdWxsaW5nIGRpc2FibGVkIHNpbmNlIHRoZSB3aW5kaW5nIG9yZGVyIG9mIHRoZSB2ZXJ0aWNl
cyBjYW4gYmUgZGlmZmVyZW50IHBlci1ITUQgb3IgcGVyLWV5ZS4KKyAgICAgICAqIFNldHRpbmcg
dGhlIGJJbnZlcnNlIGFyZ3VtZW50IHRvIHRydWUgd2lsbCBwcm9kdWNlIHRoZSB2aXNpYmxlIGFy
ZWEgbWVzaCB0aGF0IGlzIGNvbW1vbmx5IHVzZWQgaW4gcGxhY2Ugb2YgZnVsbC1zY3JlZW4gcXVh
ZHMuIFRoZSB2aXNpYmxlIGFyZWEgbWVzaCBjb3ZlcnMgYWxsIG9mIHRoZSBwaXhlbHMgdGhlIGhp
ZGRlbiBhcmVhIG1lc2ggZG9lcyBub3QgY292ZXIuCisgICAgICAgKiBTZXR0aW5nIHRoZSBiTGlu
ZUxvb3AgYXJndW1lbnQgd2lsbCByZXR1cm4gYSBsaW5lIGxvb3Agb2YgdmVydGljZXMgaW4gSGlk
ZGVuQXJlYU1lc2hfdC0+cFZlcnRleERhdGEgd2l0aCBIaWRkZW5BcmVhTWVzaF90LT51blRyaWFu
Z2xlQ291bnQgc2V0IHRvIHRoZSBudW1iZXIgb2YgdmVydGljZXMuCisgICAgICAgKi8KKyAgICAg
ICB2aXJ0dWFsIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goIEVWUkV5ZSBlRXll
LCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUgPSBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCAp
ID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIENvbnRyb2xsZXIgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIEZpbGxzIHRoZSBzdXBwbGllZCBzdHJ1
Y3Qgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY29udHJvbGxlci4gUmV0dXJucyBmYWxz
ZSBpZiB0aGUgY29udHJvbGxlciBpbmRleAorICAgICAgICogaXMgaW52YWxpZC4gKi8KKyAgICAg
ICB2aXJ0dWFsIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlKCB2cjo6VHJhY2tlZERldmljZUluZGV4
X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29u
dHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUgKSA9IDA7CisKKyAg
ICAgICAvKiogZmlsbHMgdGhlIHN1cHBsaWVkIHN0cnVjdCB3aXRoIHRoZSBjdXJyZW50IHN0YXRl
IG9mIHRoZSBjb250cm9sbGVyIGFuZCB0aGUgcHJvdmlkZWQgcG9zZSB3aXRoIHRoZSBwb3NlIG9m
IAorICAgICAgICogdGhlIGNvbnRyb2xsZXIgd2hlbiB0aGUgY29udHJvbGxlciBzdGF0ZSB3YXMg
dXBkYXRlZCBtb3N0IHJlY2VudGx5LiBVc2UgdGhpcyBmb3JtIGlmIHlvdSBuZWVkIGEgcHJlY2lz
ZSBjb250cm9sbGVyCisgICAgICAgKiBwb3NlIGFzIGlucHV0IHRvIHlvdXIgYXBwbGljYXRpb24g
d2hlbiB0aGUgdXNlciBwcmVzc2VzIG9yIHJlbGVhc2VzIGEgYnV0dG9uLiAqLworICAgICAgIHZp
cnR1YWwgYm9vbCBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSggRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZU9yaWdpbiwgdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LCB2cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgdWludDMy
X3QgdW5Db250cm9sbGVyU3RhdGVTaXplLCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERl
dmljZVBvc2UgKSA9IDA7CisKKyAgICAgICAvKiogVHJpZ2dlciBhIHNpbmdsZSBoYXB0aWMgcHVs
c2Ugb24gYSBjb250cm9sbGVyLiBBZnRlciB0aGlzIGNhbGwgdGhlIGFwcGxpY2F0aW9uIG1heSBu
b3QgdHJpZ2dlciBhbm90aGVyIGhhcHRpYyBwdWxzZSBvbiB0aGlzIGNvbnRyb2xsZXIKKyAgICAg
ICAqIGFuZCBheGlzIGNvbWJpbmF0aW9uIGZvciA1bXMuICovCisgICAgICAgdmlydHVhbCB2b2lk
IFRyaWdnZXJIYXB0aWNQdWxzZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxl
ckRldmljZUluZGV4LCB1aW50MzJfdCB1bkF4aXNJZCwgdW5zaWduZWQgc2hvcnQgdXNEdXJhdGlv
bk1pY3JvU2VjICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgdGhlIG5hbWUgb2YgYW4gRVZS
QnV0dG9uSWQgZW51bSB2YWx1ZSAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QnV0
dG9uSWROYW1lRnJvbUVudW0oIEVWUkJ1dHRvbklkIGVCdXR0b25JZCApID0gMDsKKworICAgICAg
IC8qKiByZXR1cm5zIHRoZSBuYW1lIG9mIGFuIEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlbnVtIHZh
bHVlICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRDb250cm9sbGVyQXhpc1R5cGVO
YW1lRnJvbUVudW0oIEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUgKSA9IDA7CisKKyAg
ICAgICAvKiogVGVsbHMgT3BlblZSIHRoYXQgdGhpcyBwcm9jZXNzIHdhbnRzIGV4Y2x1c2l2ZSBh
Y2Nlc3MgdG8gY29udHJvbGxlciBidXR0b24gc3RhdGVzIGFuZCBidXR0b24gZXZlbnRzLiBPdGhl
ciBhcHBzIHdpbGwgYmUgbm90aWZpZWQgdGhhdCAKKyAgICAgICAqIHRoZXkgaGF2ZSBsb3N0IGlu
cHV0IGZvY3VzIHdpdGggYSBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCBldmVudC4gUmV0dXJu
cyBmYWxzZSBpZiBpbnB1dCBmb2N1cyBjb3VsZCBub3QgYmUgY2FwdHVyZWQgZm9yCisgICAgICAg
KiBzb21lIHJlYXNvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQ2FwdHVyZUlucHV0Rm9jdXMo
KSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgT3BlblZSIHRoYXQgdGhpcyBwcm9jZXNzIG5vIGxv
bmdlciB3YW50cyBleGNsdXNpdmUgYWNjZXNzIHRvIGJ1dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBl
dmVudHMuIE90aGVyIGFwcHMgd2lsbCBiZSBub3RpZmllZCAKKyAgICAgICAqIHRoYXQgaW5wdXQg
Zm9jdXMgaGFzIGJlZW4gcmVsZWFzZWQgd2l0aCBhIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2Vk
IGV2ZW50LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpID0gMDsK
KworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgaW5wdXQgZm9jdXMgaXMgY2FwdHVyZWQgYnkg
YW5vdGhlciBwcm9jZXNzLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc0lucHV0Rm9jdXNDYXB0
dXJlZEJ5QW5vdGhlclByb2Nlc3MoKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBEZWJ1ZyBNZXRob2RzCisgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogU2VuZHMg
YSByZXF1ZXN0IHRvIHRoZSBkcml2ZXIgZm9yIHRoZSBzcGVjaWZpZWQgZGV2aWNlIGFuZCByZXR1
cm5zIHRoZSByZXNwb25zZS4gVGhlIG1heGltdW0gcmVzcG9uc2Ugc2l6ZSBpcyAzMmssCisgICAg
ICAgKiBidXQgdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCB3aXRoIGEgc21hbGxlciBidWZmZXIu
IElmIHRoZSByZXNwb25zZSBleGNlZWRzIHRoZSBzaXplIG9mIHRoZSBidWZmZXIsIGl0IGlzIHRy
dW5jYXRlZC4gCisgICAgICAgKiBUaGUgc2l6ZSBvZiB0aGUgcmVzcG9uc2UgaW5jbHVkaW5nIGl0
cyB0ZXJtaW5hdGluZyBudWxsIGlzIHJldHVybmVkLiAqLworICAgICAgIHZpcnR1YWwgdWludDMy
X3QgRHJpdmVyRGVidWdSZXF1ZXN0KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJ
bmRleCwgY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNoUmVzcG9uc2VCdWZmZXIsIHVp
bnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gRmlybXdhcmUgbWV0aG9kcwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAor
ICAgICAgIC8qKiBQZXJmb3JtcyB0aGUgYWN0dWFsIGZpcm13YXJlIHVwZGF0ZSBpZiBhcHBsaWNh
YmxlLiAKKyAgICAgICAgKiBUaGUgZm9sbG93aW5nIGV2ZW50cyB3aWxsIGJlIHNlbnQsIGlmIFZS
RmlybXdhcmVFcnJvcl9Ob25lIHdhcyByZXR1cm5lZDogVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0
YXJ0ZWQsIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCAKKyAgICAgICAgKiBVc2UgdGhl
IHByb3BlcnRpZXMgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCwgUHJvcF9GaXJt
d2FyZV9NYW51YWxVcGRhdGVfQm9vbCwgYW5kIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJM
X1N0cmluZworICAgICAgICAqIHRvIGZpZ3VyZSBvdXIgd2hldGhlciBhIGZpcm13YXJlIHVwZGF0
ZSBpcyBhdmFpbGFibGUsIGFuZCB0byBmaWd1cmUgb3V0IHdoZXRoZXIgaXRzIGEgbWFudWFsIHVw
ZGF0ZSAKKyAgICAgICAgKiBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgc2hv
dWxkIHBvaW50IHRvIGFuIFVSTCBkZXNjcmliaW5nIHRoZSBtYW51YWwgdXBkYXRlIHByb2Nlc3Mg
Ki8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVw
ZGF0ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXggKSA9IDA7CisKKyAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBB
cHBsaWNhdGlvbiBsaWZlIGN5Y2xlIG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8gYWNrbm93bGVk
Z2UgdG8gdGhlIHN5c3RlbSB0aGF0IFZSRXZlbnRfUXVpdCBoYXMgYmVlbiByZWNlaXZlZCBhbmQg
dGhhdCB0aGUgcHJvY2VzcyBpcyBleGl0aW5nLgorICAgICAgICogVGhpcyBleHRlbmRzIHRoZSB0
aW1lb3V0IHVudGlsIHRoZSBwcm9jZXNzIGlzIGtpbGxlZC4gKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKSA9IDA7CisKKyAgICAgICAvKiogQ2FsbCB0aGlz
IHRvIHRlbGwgdGhlIHN5c3RlbSB0aGF0IHRoZSB1c2VyIGlzIGJlaW5nIHByb21wdGVkIHRvIHNh
dmUgZGF0YS4gVGhpcworICAgICAgICogaGFsdHMgdGhlIHRpbWVvdXQgYW5kIGRpc21pc3NlcyB0
aGUgZGFzaGJvYXJkIChpZiBpdCB3YXMgdXApLiBBcHBsaWNhdGlvbnMgc2hvdWxkIGJlIHN1cmUg
dG8gYWN0dWFsbHkgCisgICAgICAgKiBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSBhbmQgdGhlbiBl
eGl0IGFmdGVyd2FyZCwgb3RoZXJ3aXNlIHRoZSB1c2VyIHdpbGwgYmUgbGVmdCBpbiBhIGNvbmZ1
c2luZyBzdGF0ZS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQWNrbm93bGVkZ2VRdWl0X1VzZXJQ
cm9tcHQoKSA9IDA7CisKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU3lzdGVt
X1ZlcnNpb24gPSAiSVZSU3lzdGVtXzAxNyI7CisKK30KKworCisvLyBpdnJhcHBsaWNhdGlvbnMu
aAorbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICAvKiogVXNlZCBmb3IgYWxsIGVycm9ycyByZXBv
cnRlZCBieSB0aGUgSVZSQXBwbGljYXRpb25zIGludGVyZmFjZSAqLworICAgICAgIGVudW0gRVZS
QXBwbGljYXRpb25FcnJvcgorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX05vbmUgPSAwLAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlB
bHJlYWR5RXhpc3RzID0gMTAwLCAgICAgICAvLyBPbmx5IG9uZSBhcHBsaWNhdGlvbiBjYW4gdXNl
IGFueSBnaXZlbiBrZXkKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vTWFuaWZl
c3QgPSAxMDEsICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24g
ZG9lcyBub3QgaGF2ZSBhIG1hbmlmZXN0CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJv
cl9Ob0FwcGxpY2F0aW9uID0gMTAyLCAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGFwcGxpY2F0
aW9uIGlzIHJ1bm5pbmcKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRJ
bmRleCA9IDEwMywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBs
aWNhdGlvbiA9IDEwNCwgICAgICAgLy8gdGhlIGFwcGxpY2F0aW9uIGNvdWxkIG5vdCBiZSBmb3Vu
ZAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVkID0gMTA1LCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBBbiBJUEMgZmFpbHVyZSBjYXVzZWQgdGhlIHJlcXVl
c3QgdG8gZmFpbAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25B
bHJlYWR5UnVubmluZyA9IDEwNiwgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9J
bnZhbGlkTWFuaWZlc3QgPSAxMDcsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9J
bnZhbGlkQXBwbGljYXRpb24gPSAxMDgsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJv
cl9MYXVuY2hGYWlsZWQgPSAxMDksICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb2Nlc3Mg
ZGlkbid0IHN0YXJ0CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlv
bkFscmVhZHlTdGFydGluZyA9IDExMCwgLy8gdGhlIHN5c3RlbSB3YXMgYWxyZWFkeSBzdGFydGlu
ZyB0aGUgc2FtZSBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3Jf
TGF1bmNoSW5Qcm9ncmVzcyA9IDExMSwgICAgICAgICAgICAgIC8vIFRoZSBzeXN0ZW0gd2FzIGFs
cmVhZHkgc3RhcnRpbmcgYSBkaWZmZXJlbnQgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmcgPSAxMTIsIAorICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Jc1RlbXBsYXRlID0gMTE0LCAvLyBlcnJvciB3aGVu
IHlvdSB0cnkgdG8gY2FsbCBMYXVuY2hBcHBsaWNhdGlvbigpIG9uIGEgdGVtcGxhdGUgdHlwZSBh
cHAgKHVzZSBMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKQorICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uRXJyb3JfU3RlYW1WUklzRXhpdGluZyA9IDExNSwKKworICAgICAgICAgICAgICBWUkFw
cGxpY2F0aW9uRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAyMDAsICAgICAgICAgICAgICAvLyBUaGUg
cHJvdmlkZWQgYnVmZmVyIHdhcyB0b28gc21hbGwgdG8gZml0IHRoZSByZXF1ZXN0ZWQgZGF0YQor
ICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQgPSAyMDEsICAg
ICAgICAgICAgICAvLyBUaGUgcmVxdWVzdGVkIHByb3BlcnR5IHdhcyBub3Qgc2V0CisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3duUHJvcGVydHkgPSAyMDIsCisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAzLAorICAgICAg
IH07CisKKyAgICAgICAvKiogVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIGFwcGxpY2F0aW9uIGtl
eSAqLworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4QXBwbGljYXRpb25LZXlM
ZW5ndGggPSAxMjg7CisKKyAgICAgICAvKiogdGhlc2UgYXJlIHRoZSBwcm9wZXJ0aWVzIGF2YWls
YWJsZSBvbiBhcHBsaWNhdGlvbnMuICovCisgICAgICAgZW51bSBFVlJBcHBsaWNhdGlvblByb3Bl
cnR5CisgICAgICAgeworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFtZV9T
dHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hUeXBlX1N0cmluZyAgICAgICAgICAgICAgICAgICAg
ID0gMTEsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0
b3J5X1N0cmluZyAgICAgICA9IDEyLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVy
dHlfQmluYXJ5UGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDEzLAorICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyAgICAgICAgICAgICAg
ICAgICAgID0gMTQsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTUsCisKKyAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvblByb3BlcnR5X0Rlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSA1MCwK
KyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgPSA1MSwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5
X0ltYWdlUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUyLAorICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNlX1N0cmluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDUzLAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rh
c2hib2FyZE92ZXJsYXlfQm9vbCAgICAgICA9IDYwLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0
aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MSwKKyAg
ICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICA9IDYyLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlf
SXNJbnRlcm5hbF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MywKKyAgICAgICAgICAgICAg
VlJBcHBsaWNhdGlvblByb3BlcnR5X1dhbnRzQ29tcG9zaXRvclBhdXNlSW5TdGFuZGJ5X0Jvb2wg
PSA2NCwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRp
bWVfVWludDY0ICAgICAgICAgICAgICA9IDcwLAorICAgICAgIH07CisKKyAgICAgICAvKiogVGhl
c2UgYXJlIHN0YXRlcyB0aGUgc2NlbmUgYXBwbGljYXRpb24gc3RhcnR1cCBwcm9jZXNzIHdpbGwg
Z28gdGhyb3VnaC4gKi8KKyAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRl
CisgICAgICAgeworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9Ob25lID0g
MCwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2Vu
dCA9IDEwLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9y
RXh0ZXJuYWxMYXVuY2ggPSAxMSwKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIFZSQXBw
bGljYXRpb25UcmFuc2l0aW9uX05ld0FwcExhdW5jaGVkID0gMjAsCisgICAgICAgfTsKKworICAg
ICAgIHN0cnVjdCBBcHBPdmVycmlkZUtleXNfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgY29u
c3QgY2hhciAqcGNoS2V5OworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwY2hWYWx1ZTsKKyAg
ICAgICB9OworCisgICAgICAgLyoqIEN1cnJlbnRseSByZWNvZ25pemVkIG1pbWUgdHlwZXMgKi8K
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX01pbWVUeXBlX0hvbWVBcHAg
ICAgICAgICAgICAgID0gInZyL2hvbWUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgICAgICAgPSAidnIvZ2FtZV90aGVhdGVyIjsK
KworICAgICAgIGNsYXNzIElWUkFwcGxpY2F0aW9ucworICAgICAgIHsKKyAgICAgICBwdWJsaWM6
CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tICBBcHBsaWNhdGlvbiBtYW5hZ2Vt
ZW50ICAtLS0tLS0tLS0tLS0tLS0gLy8KKworICAgICAgICAgICAgICAvKiogQWRkcyBhbiBhcHBs
aWNhdGlvbiBtYW5pZmVzdCB0byB0aGUgbGlzdCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxp
c3Qgb2YgaW5zdGFsbGVkIGFwcGxpY2F0aW9ucy4gCisgICAgICAgICAgICAgICogVGVtcG9yYXJ5
IG1hbmlmZXN0cyBhcmUgbm90IGF1dG9tYXRpY2FsbHkgbG9hZGVkICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBBZGRBcHBsaWNhdGlvbk1hbmlmZXN0KCBjb25z
dCBjaGFyICpwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgsIGJvb2wgYlRlbXBvcmFyeSA9
IGZhbHNlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZW1vdmVzIGFuIGFwcGxpY2F0aW9u
IG1hbmlmZXN0IGZyb20gdGhlIGxpc3QgdG8gbG9hZCB3aGVuIGJ1aWxkaW5nIHRoZSBsaXN0IG9m
IGluc3RhbGxlZCBhcHBsaWNhdGlvbnMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBw
bGljYXRpb25FcnJvciBSZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KCBjb25zdCBjaGFyICpwY2hB
cHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJl
dHVybnMgdHJ1ZSBpZiBhbiBhcHBsaWNhdGlvbiBpcyBpbnN0YWxsZWQgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBib29sIElzQXBwbGljYXRpb25JbnN0YWxsZWQoIGNvbnN0IGNoYXIgKnBjaEFw
cEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFw
cGxpY2F0aW9ucyBhdmFpbGFibGUgaW4gdGhlIGxpc3QgKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCB1aW50MzJfdCBHZXRBcHBsaWNhdGlvbkNvdW50KCkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbi4gVGhlIGluZGV4
IGlzIGF0IGxlYXN0IDAgYW5kIGlzIGxlc3MgdGhhbiB0aGUgcmV0dXJuIAorICAgICAgICAgICAg
ICAqIHZhbHVlIG9mIEdldEFwcGxpY2F0aW9uQ291bnQoKS4gVGhlIGJ1ZmZlciBzaG91bGQgYmUg
YXQgbGVhc3Qga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoIGluIG9yZGVyIHRvIAorICAgICAg
ICAgICAgICAqIGZpdCB0aGUga2V5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KCB1aW50MzJfdCB1bkFwcGxpY2F0
aW9uSW5kZXgsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90
IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSBrZXkgb2YgdGhlIGFwcGxpY2F0aW9uIGZvciB0aGUgc3BlY2lmaWVkIFByb2Nlc3MgSWQuIFRo
ZSBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IAorICAgICAgICAgICAgICAqIGtfdW5NYXhBcHBs
aWNhdGlvbktleUxlbmd0aCBpbiBvcmRlciB0byBmaXQgdGhlIGtleS4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNz
SWQoIHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90
IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyB0
aGUgYXBwbGljYXRpb24uIFRoZSBleGlzdGluZyBzY2VuZSBhcHBsaWNhdGlvbiB3aWxsIGV4aXQg
YW5kIHRoZW4gdGhlIG5ldyBhcHBsaWNhdGlvbiB3aWxsIHN0YXJ0LgorICAgICAgICAgICAgICAq
IFRoaXMgY2FsbCBpcyBub3QgdmFsaWQgZm9yIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9u
cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFw
cGxpY2F0aW9uKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIExhdW5jaGVzIGFuIGluc3RhbmNlIG9mIGFuIGFwcGxpY2F0aW9uIG9mIHR5cGUgdGVtcGxh
dGUsIHdpdGggaXRzIGFwcCBrZXkgYmVpbmcgcGNoTmV3QXBwS2V5ICh3aGljaCBtdXN0IGJlIHVu
aXF1ZSkgYW5kIG9wdGlvbmFsbHkgb3ZlcnJpZGUgc2VjdGlvbnMKKyAgICAgICAgICAgICAgKiBm
cm9tIHRoZSBtYW5pZmVzdCBmaWxlIHZpYSBBcHBPdmVycmlkZUtleXNfdAorICAgICAgICAgICAg
ICAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoVGVt
cGxhdGVBcHBsaWNhdGlvbiggY29uc3QgY2hhciAqcGNoVGVtcGxhdGVBcHBLZXksIGNvbnN0IGNo
YXIgKnBjaE5ld0FwcEtleSwgVlJfQVJSQVlfQ09VTlQoIHVuS2V5cyApIGNvbnN0IEFwcE92ZXJy
aWRlS2V5c190ICpwS2V5cywgdWludDMyX3QgdW5LZXlzICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBsYXVuY2hlcyB0aGUgYXBwbGljYXRpb24gY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0
aGlzIG1pbWUgdHlwZSBhbmQgcGFzc2VzIGl0IHRoZSBvcHRpb24gYXJncywgdHlwaWNhbGx5IHRo
ZSBmaWxlbmFtZSBvciBvYmplY3QgbmFtZSBvZiB0aGUgaXRlbSBiZWluZyBsYXVuY2hlZCAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxp
Y2F0aW9uRnJvbU1pbWVUeXBlKCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSwgY29uc3QgY2hhciAq
cGNoQXJncyApID0gMDsKKworICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgdGhlIGRhc2hib2Fy
ZCBvdmVybGF5IGFwcGxpY2F0aW9uIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJ1bm5pbmcuIFRoaXMg
Y2FsbCBpcyBvbmx5IHZhbGlkIGZvciAKKyAgICAgICAgICAgICAgKiBkYXNoYm9hcmQgb3Zlcmxh
eSBhcHBsaWNhdGlvbnMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25F
cnJvciBMYXVuY2hEYXNoYm9hcmRPdmVybGF5KCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIENhbmNlbCBhIHBlbmRpbmcgbGF1bmNoIGZvciBhbiBhcHBs
aWNhdGlvbiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgQ2FuY2VsQXBwbGljYXRpb25M
YXVuY2goIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
SWRlbnRpZmllcyBhIHJ1bm5pbmcgYXBwbGljYXRpb24uIE9wZW5WUiBjYW4ndCBhbHdheXMgdGVs
bCB3aGljaCBwcm9jZXNzIHN0YXJ0ZWQgaW4gcmVzcG9uc2UKKyAgICAgICAgICAgICAgKiB0byBh
IFVSTC4gVGhpcyBmdW5jdGlvbiBhbGxvd3MgYSBVUkwgaGFuZGxlciAob3IgdGhlIHByb2Nlc3Mg
aXRzZWxmKSB0byBpZGVudGlmeSB0aGUgYXBwIGtleSAKKyAgICAgICAgICAgICAgKiBmb3IgdGhl
IG5vdyBydW5uaW5nIGFwcGxpY2F0aW9uLiBQYXNzaW5nIGEgcHJvY2VzcyBJRCBvZiAwIGlkZW50
aWZpZXMgdGhlIGNhbGxpbmcgcHJvY2Vzcy4gCisgICAgICAgICAgICAgICogVGhlIGFwcGxpY2F0
aW9uIG11c3QgYmUgb25lIHRoYXQncyBrbm93biB0byB0aGUgc3lzdGVtIHZpYSBhIGNhbGwgdG8g
QWRkQXBwbGljYXRpb25NYW5pZmVzdC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBs
aWNhdGlvbkVycm9yIElkZW50aWZ5QXBwbGljYXRpb24oIHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBj
b25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMg
dGhlIHByb2Nlc3MgSUQgZm9yIGFuIGFwcGxpY2F0aW9uLiBSZXR1cm4gMCBpZiB0aGUgYXBwbGlj
YXRpb24gd2FzIG5vdCBmb3VuZCBvciBpcyBub3QgcnVubmluZy4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRBcHBsaWNhdGlvblByb2Nlc3NJZCggY29uc3QgY2hhciAqcGNo
QXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBh
biBhcHBsaWNhdGlvbnMgZXJyb3IgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFy
ICpHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bSggRVZSQXBwbGljYXRpb25FcnJvciBl
cnJvciApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0
aW9uIHByb3BlcnRpZXMgIC0tLS0tLS0tLS0tLS0tLSAvLworCisgICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIGEgdmFsdWUgZm9yIGFuIGFwcGxpY2F0aW9uIHByb3BlcnR5LiBUaGUgcmVxdWlyZWQg
YnVmZmVyIHNpemUgdG8gZml0IHRoaXMgdmFsdWUgd2lsbCBiZSByZXR1cm5lZC4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKCBj
b25zdCBjaGFyICpwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBW
Ul9PVVRfU1RSSU5HKCkgY2hhciAqcGNoUHJvcGVydHlWYWx1ZUJ1ZmZlciwgdWludDMyX3QgdW5Q
cm9wZXJ0eVZhbHVlQnVmZmVyTGVuLCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9yID0gbnVs
bHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyBhIGJvb2wgdmFsdWUgZm9y
IGFuIGFwcGxpY2F0aW9uIHByb3BlcnR5LiBSZXR1cm5zIGZhbHNlIGluIGFsbCBlcnJvciBjYXNl
cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEFwcGxpY2F0aW9uUHJvcGVydHlC
b29sKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3Bl
cnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogUmV0dXJucyBhIHVpbnQ2NCB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24g
cHJvcGVydHkuIFJldHVybnMgMCBpbiBhbGwgZXJyb3IgY2FzZXMuICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgdWludDY0X3QgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NCggY29uc3QgY2hh
ciAqcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGlj
YXRpb25FcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFNldHMgdGhlIGFwcGxpY2F0aW9uIGF1dG8tbGF1bmNoIGZsYWcuIFRoaXMgaXMgb25seSB2YWxp
ZCBmb3IgYXBwbGljYXRpb25zIHdoaWNoIHJldHVybiB0cnVlIGZvciBWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25FcnJvciBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2goIGNvbnN0IGNoYXIg
KnBjaEFwcEtleSwgYm9vbCBiQXV0b0xhdW5jaCApID0gMDsKKworICAgICAgICAgICAgICAvKiog
R2V0cyB0aGUgYXBwbGljYXRpb24gYXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlk
IGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIEdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBBZGRzIHRoaXMgbWltZS10eXBlIHRvIHRoZSBsaXN0IG9m
IHN1cHBvcnRlZCBtaW1lIHR5cGVzIGZvciB0aGlzIGFwcGxpY2F0aW9uKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiByZXR1cm4gdGhlIGFwcCBrZXkgdGhhdCB3aWxsIG9w
ZW4gdGhpcyBtaW1lIHR5cGUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSwgY2hhciAq
cGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogR2V0IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBtaW1lIHR5cGVzIGZvciB0
aGlzIGFwcGxpY2F0aW9uLCBjb21tYS1kZWxpbWl0ZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBib29sIEdldEFwcGxpY2F0aW9uU3VwcG9ydGVkTWltZVR5cGVzKCBjb25zdCBjaGFyICpwY2hB
cHBLZXksIGNoYXIgKnBjaE1pbWVUeXBlc0J1ZmZlciwgdWludDMyX3QgdW5NaW1lVHlwZXNCdWZm
ZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgbGlzdCBvZiBhcHAta2V5cyB0
aGF0IHN1cHBvcnQgdGhpcyBtaW1lIHR5cGUsIGNvbW1hLWRlbGltaXRlZCwgdGhlIHJldHVybiB2
YWx1ZSBpcyBudW1iZXIgb2YgYnl0ZXMgeW91IG5lZWQgdG8gcmV0dXJuIHRoZSBmdWxsIHN0cmlu
ZyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0aW9uc1RoYXRT
dXBwb3J0TWltZVR5cGUoIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hBcHBLZXlz
VGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIGFyZ3MgbGlzdCBmcm9tIGFuIGFwcCBs
YXVuY2ggdGhhdCBoYWQgdGhlIHByb2Nlc3MgYWxyZWFkeSBydW5uaW5nLCB5b3UgY2FsbCB0aGlz
IHdoZW4geW91IGdldCBhIFZSRXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cygg
dWludDMyX3QgdW5IYW5kbGUsIGNoYXIgKnBjaEFyZ3MsIHVpbnQzMl90IHVuQXJncyApID0gMDsK
KworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0gIFRyYW5zaXRpb24gbWV0aG9kcyAt
LS0tLS0tLS0tLS0tLS0gLy8KKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgYXBwIGtl
eSBmb3IgdGhlIGFwcGxpY2F0aW9uIHRoYXQgaXMgc3RhcnRpbmcgdXAgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIEdldFN0YXJ0aW5nQXBwbGljYXRpb24oIGNo
YXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGFwcGxpY2F0aW9uIHRyYW5zaXRpb24gc3Rh
dGUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0
ZSBHZXRUcmFuc2l0aW9uU3RhdGUoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMg
ZXJyb3JzIHRoYXQgd291bGQgcHJldmVudCB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uIGZyb20g
bGF1bmNoaW5nIGltbWVkaWF0ZWx5LiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAg
ICAgICAgICAqIGNhdXNlIHRoZSBjdXJyZW50IHNjZW5lIGFwcGxpY2F0aW9uIHRvIHF1aXQsIHNv
IG9ubHkgY2FsbCBpdCB3aGVuIHlvdSBhcmUgYWN0dWFsbHkgYWJvdXQgdG8gbGF1bmNoIHNvbWV0
aGluZyBlbHNlLgorICAgICAgICAgICAgICAqIFdoYXQgdGhlIGNhbGxlciBzaG91bGQgZG8gYWJv
dXQgdGhlc2UgZmFpbHVyZXMgZGVwZW5kcyBvbiB0aGUgZmFpbHVyZToKKyAgICAgICAgICAgICAg
KiAgIFZSQXBwbGljYXRpb25FcnJvcl9PbGRBcHBsaWNhdGlvblF1aXR0aW5nIC0gQW4gZXhpc3Rp
bmcgYXBwbGljYXRpb24gaGFzIGJlZW4gdG9sZCB0byBxdWl0LiBXYWl0IGZvciBhIFZSRXZlbnRf
UHJvY2Vzc1F1aXQKKyAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5kIHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgICAgKiAgIFZSQXBw
bGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyAtIFRoaXMgYXBwbGljYXRp
b24gaXMgYWxyZWFkeSBzdGFydGluZy4gVGhpcyBpcyBhIHBlcm1hbmVudCBmYWlsdXJlLgorICAg
ICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgICAgICAg
ICAgICAgLSBBIGRpZmZlcmVudCBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5IHN0YXJ0aW5nLiBUaGlz
IGlzIGEgcGVybWFuZW50IGZhaWx1cmUuCisgICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9u
RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAtIEdvIGFoZWFkIGFuZCBsYXVuY2guIEV2ZXJ5
dGhpbmcgaXMgY2xlYXIuCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZSQXBwbGljYXRpb25FcnJvciBQZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayggY29u
c3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEg
c3RyaW5nIGZvciBhbiBhcHBsaWNhdGlvbiB0cmFuc2l0aW9uIHN0YXRlICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFt
ZUZyb21FbnVtKCBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBvdXRnb2luZyBzY2VuZSBhcHAg
aGFzIHJlcXVlc3RlZCBhIHNhdmUgcHJvbXB0IGJlZm9yZSBleGl0aW5nICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBTdGFydHMgYSBzdWJwcm9jZXNzIHdpdGhpbiB0aGUgY2FsbGluZyBhcHBs
aWNhdGlvbi4gVGhpcworICAgICAgICAgICAgICAqIHN1cHByZXNzZXMgYWxsIGFwcGxpY2F0aW9u
IHRyYW5zaXRpb24gVUkgYW5kIGF1dG9tYXRpY2FsbHkgaWRlbnRpZmllcyB0aGUgbmV3IGV4ZWN1
dGFibGUgCisgICAgICAgICAgICAgICogYXMgcGFydCBvZiB0aGUgc2FtZSBhcHBsaWNhdGlvbi4g
T24gc3VjY2VzcyB0aGUgY2FsbGluZyBwcm9jZXNzIHNob3VsZCBleGl0IGltbWVkaWF0ZWx5LiAK
KyAgICAgICAgICAgICAgKiBJZiB3b3JraW5nIGRpcmVjdG9yeSBpcyBOVUxMIG9yICIiIHRoZSBk
aXJlY3RvcnkgcG9ydGlvbiBvZiB0aGUgYmluYXJ5IHBhdGggd2lsbCBiZSAKKyAgICAgICAgICAg
ICAgKiB0aGUgd29ya2luZyBkaXJlY3RvcnkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
QXBwbGljYXRpb25FcnJvciBMYXVuY2hJbnRlcm5hbFByb2Nlc3MoIGNvbnN0IGNoYXIgKnBjaEJp
bmFyeVBhdGgsIGNvbnN0IGNoYXIgKnBjaEFyZ3VtZW50cywgY29uc3QgY2hhciAqcGNoV29ya2lu
Z0RpcmVjdG9yeSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgY3VycmVu
dCBzY2VuZSBwcm9jZXNzIElEIGFjY29yZGluZyB0byB0aGUgYXBwbGljYXRpb24gc3lzdGVtLiBB
IHNjZW5lIHByb2Nlc3Mgd2lsbCBnZXQgc2NlbmUKKyAgICAgICAgICAgICAgKiBmb2N1cyBvbmNl
IGl0IHN0YXJ0cyByZW5kZXJpbmcsIGJ1dCBpdCB3aWxsIGFwcGVhciBoZXJlIG9uY2UgaXQgY2Fs
bHMgVlJfSW5pdCB3aXRoIHRoZSBTY2VuZSBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAqIHR5
cGUuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q3VycmVudFNjZW5lUHJv
Y2Vzc0lkKCkgPSAwOworICAgICAgIH07CisKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9uc18wMDYiOworCit9
IC8vIG5hbWVzcGFjZSB2cgorCisvLyBpdnJzZXR0aW5ncy5oCituYW1lc3BhY2UgdnIKK3sKKyAg
ICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSU2V0
dGluZ3NFcnJvcl9Ob25lID0gMCwKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0Zh
aWxlZCA9IDEsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIs
CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkID0gMywKKyAgICAgICAg
ICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZhaWxlZCA9IDQsCisgICAgICAgICAgICAg
IFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdp
bGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBhcHBy
b3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3QgYmVlbiBzZXQKKyAgICAgICB9OworCisg
ICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgc2V0dGluZ3Mga2V5CisgICAgICAgc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKKworICAg
ICAgIGNsYXNzIElWUlNldHRpbmdzCisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAg
ICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBF
VlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKKworICAgICAgICAgICAgICAvLyBSZXR1cm5z
IHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3JjZSBvciBzZXR0aW5ncyBkaXJ0eSkKKyAg
ICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJvb2wgYkZvcmNlID0gZmFsc2UsIEVWUlNl
dHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpw
Y2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBu
dWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0
IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5W
YWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29u
c3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3Ig
KnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0
U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tl
eSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxs
cHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFVzZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0
byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVmYXVsdC52cnNldHRpbmdzIGluIHRoZSBy
ZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQorICAgICAgICAgICAgICAvLyBvZiBlaXRoZXIg
dGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGlyZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRl
ZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIiCisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0
aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlv
biwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3Ig
PSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBj
b25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0
dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBj
aFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVu
VmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTZWN0aW9uKCBjb25zdCBjaGFyICpwY2hT
ZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUluU2VjdGlvbiggY29uc3QgY2hhciAqcGNo
U2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBl
RXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgIH07CisKKyAgICAgICAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTZXR0aW5nc19W
ZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gc3RlYW12ciBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVp
cmVIbWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9G
b3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERyaXZlciI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9y
Y2VkSG1kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
RGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVi
dWdQcm9jZXNzUGlwZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIg
PSAiZGlzcGxheURlYnVnWSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbD0gInNlbmRTeXN0ZW1CdXR0
b25Ub0FsbEFwcHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9Mb2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZlbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9ICJi
YWNrZ3JvdW5kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQ
cm9qZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfQmFja2dyb3VuZENhbWVyYUhlaWdodF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dy
b3VuZERvbWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERvbWVSYWRpdXMiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5nID0g
ImdyaWRDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1BsYXlBcmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93
U3RhZ2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9B
Y3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9k
ZV9Cb29sID0gImRpcmVjdE1vZGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZp
ZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVj
dE1vZGVFZGlkUGlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVz
aW5nU3BlYWtlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zsb2F0ID0gInNwZWFrZXJzRm9y
d2FyZFlhd09mZnNldERlZ3JlZXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0
aW9uUG93ZXJNYW5hZ2VtZW50IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfTmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2Vz
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3VwZXJz
YW1wbGVTY2FsZV9GbG9hdCA9ICJzdXBlcnNhbXBsZVNjYWxlIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29s
ID0gImFsbG93QXN5bmNSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93SW50ZXJs
ZWF2ZWRSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9qZWN0aW9uIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRl
T25CYWRUcmFja2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19J
bnQzMiA9ICJkZWZhdWx0TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXci
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9NaXJyb3JW
aWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2ggPSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9v
bCA9ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jv
b2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmRf
Qm9vbCA9ICJzdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5hYmxlSG9t
ZUFwcCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0N5
Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRp
bWVTZWMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9S
ZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1N1cGVyc2Ft
cGxlRmlsdGVyaW5nX0Jvb2wgPSAiYWxsb3dTdXBlcnNhbXBsZUZpbHRlcmluZyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZUxpbnV4VnVsa2Fu
QXN5bmNfQm9vbCA9ICJlbmFibGVMaW51eFZ1bGthbkFzeW5jIjsKKworICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBsaWdodGhvdXNlIGtleXMKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9ICJkcml2ZXJfbGln
aHRob3VzZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhv
dXNlX0Rpc2FibGVJTVVfQm9vbCA9ICJkaXNhYmxlaW11IjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nID0g
InVzZWRpc2FtYmlndWF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1YXRpb25EZWJ1Z19JbnQzMiA9ICJkaXNhbWJpZ3VhdGlv
bmRlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91
c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyID0gInByaW1hcnliYXNlc3RhdGlvbiI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9C
b29sID0gImRiaGlzdG9yeSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gbnVsbCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9O
dWxsX1NlY3Rpb24gPSAiZHJpdmVyX251bGwiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nID0gInNlcmlhbE51bWJlciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0
cmluZyA9ICJtb2RlbE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9OdWxsX1dpbmRvd1hfSW50MzIgPSAid2luZG93WCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93WSI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMy
ID0gIndpbmRvd1dpZHRoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X051bGxfV2luZG93SGVpZ2h0X0ludDMyID0gIndpbmRvd0hlaWdodCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJlbmRl
cldpZHRoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVu
ZGVySGVpZ2h0X0ludDMyID0gInJlbmRlckhlaWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAi
c2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQgPSAiZGlzcGxheUZyZXF1ZW5j
eSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gdXNlciBpbnRl
cmZhY2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlcklu
dGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0g
IlN0YXR1c0Fsd2F5c09uVG9wIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1Nj
cmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAic2NyZWVu
c2hvdFR5cGUiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG5v
dGlmaWNhdGlvbiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9O
b3RpZmljYXRpb25zX1NlY3Rpb24gPSAibm90aWZpY2F0aW9ucyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0g
IkRvTm90RGlzdHVyYiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Ly8ga2V5Ym9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
S2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29t
cGxldGlvbnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9h
cmRfU2NhbGVYID0gIlNjYWxlWCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9LZXlib2FyZF9TY2FsZVkgPSAiU2NhbGVZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0
WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHBlcmYga2V5cworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0hldXJpc3RpY0Fj
dGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9v
bCA9ICJ3YXJuT25seU9uY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfUGVyZl9BbGxvd1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0
X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9MaW51eEdQVVByb2ZpbGluZ19C
b29sID0gImxpbnV4R1BVUHJvZmlsaW5nIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvLyBjb2xsaXNpb24gYm91bmRzIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxpc2lvbkJv
dW5kcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfU3R5bGVfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzU3R5bGUiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRl
ck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtl
ck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24iOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jv
b2wgPSAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24iOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9ICJD
b2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lv
bkJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHND
b2xvckdhbW1hRyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1t
YUIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91
bmRzX0NvbG9yR2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsKKwor
ICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBjYW1lcmEga2V5cworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2Ft
ZXJhIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFfQm9vbCA9ICJlbmFibGVDYW1lcmEiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5h
YmxlQ2FtZXJhSW5EYXNoYm9hcmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kc19Cb29sID0gImVuYWJs
ZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCA9ICJlbmFibGVD
YW1lcmFGb3JSb29tVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1t
YVIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9J
bnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJh
Qm91bmRzQ29sb3JHYW1tYUEiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfQ2FtZXJhX0JvdW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsK
KworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBhdWRpbyBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1
ZGlvIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09uUGxh
eWJhY2tEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9u
UmVjb3JkRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1
ZGlvX09uUGxheWJhY2tNaXJyb3JEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZp
Y2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT2ZmUGxh
eWJhY2tEZXZpY2VfU3RyaW5nID0gIm9mZlBsYXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmcgPSAi
b2ZmUmVjb3JkRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdhaW4iOworCisgICAgICAgLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHBvd2VyIG1hbmFnZW1lbnQga2V5cworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhp
dF9Cb29sID0gInBvd2VyT2ZmT25FeGl0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZTY3JlZW5zVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2Ny
ZWVuc1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93
ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNU
aW1lb3V0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Jl
dHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0ID0gInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hT
dGVhbVZST25CdXR0b25QcmVzcyA9ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUGF1c2VDb21wb3Np
dG9yT25TdGFuZGJ5X0Jvb2wgPSAicGF1c2VDb21wb3NpdG9yT25TdGFuZGJ5IjsKKworICAgICAg
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFz
aGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2Fy
ZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJh
cmNhZGVNb2RlIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBt
b2RlbCBza2luIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21v
ZGVsc2tpbl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBp
biBhbnkgZHJpdmVyXzxuYW1lPiBzZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3Bh
Y2UgdnIKKworLy8gaXZyY2hhcGVyb25lLmgKK25hbWVzcGFjZSB2cgoreworCisjcHJhZ21hIHBh
Y2soIHB1c2gsIDggKQorCitlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKK3sKKyAgICAg
ICAvLyBPSyEKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LID0gMSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBDaGFwZXJvbmUgaXMgZnVsbHkgY2FsaWJyYXRlZCBhbmQgd29ya2luZyBjb3JyZWN0bHkKKwor
ICAgICAgIC8vIFdhcm5pbmdzCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJu
aW5nID0gMTAwLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNl
U3RhdGlvbk1heUhhdmVNb3ZlZCA9IDEwMSwgICAgICAgLy8gQSBiYXNlIHN0YXRpb24gdGhpbmtz
IHRoYXQgaXQgbWlnaHQgaGF2ZSBtb3ZlZAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3Rh
dGVfV2FybmluZ19CYXNlU3RhdGlvblJlbW92ZWQgPSAxMDIsICAgICAgICAgICAgICAgICAgICAg
Ly8gVGhlcmUgYXJlIGxlc3MgYmFzZSBzdGF0aW9ucyB0aGFuIHdoZW4gY2FsaWJyYXRlZAorICAg
ICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19TZWF0ZWRCb3VuZHNJbnZhbGlk
ID0gMTAzLCAgICAgICAgICAgICAgLy8gU2VhdGVkIGJvdW5kcyBoYXZlbid0IGJlZW4gY2FsaWJy
YXRlZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2tpbmcgY2VudGVyCisKKyAgICAgICAvLyBFcnJvcnMK
KyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yID0gMjAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIFVuaXZl
cnNlSUQgaXMgaW52YWxpZAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3Jf
QmFzZVN0YXRpb25VbmluaXRpYWxpemVkID0gMjAxLCAgICAgICAgICAgICAgLy8gVHJhY2tpbmcg
Y2VudGVyIGhhc24ndCBiZSBjYWxpYnJhdGVkIGZvciBhdCBsZWFzdCBvbmUgb2YgdGhlIGJhc2Ug
c3RhdGlvbnMKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0
aW9uQ29uZmxpY3QgPSAyMDIsICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tpbmcgY2VudGVy
IGlzIGNhbGlicmF0ZWQsIGJ1dCBiYXNlIHN0YXRpb25zIGRpc2FncmVlIG9uIHRoZSB0cmFja2lu
ZyBzcGFjZQorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJ
bnZhbGlkID0gMjAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQbGF5IEFyZWEgaGFz
bid0IGJlZW4gY2FsaWJyYXRlZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2tpbmcgY2VudGVyCisgICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlk
ID0gMjA0LCAgICAgICAgICAgICAgLy8gQ29sbGlzaW9uIEJvdW5kcyBoYXZlbid0IGJlZW4gY2Fs
aWJyYXRlZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2tpbmcgY2VudGVyCit9OworCisKKy8qKiBISUdI
IExFVkVMIFRSQUNLSU5HIFNQQUNFIEFTU1VNUFRJT05TOgorKiAwLDAsMCBpcyB0aGUgcHJlZmVy
cmVkIHN0YW5kaW5nIGFyZWEgY2VudGVyLgorKiAwWSBpcyB0aGUgZmxvb3IgaGVpZ2h0LgorKiAt
WiBpcyB0aGUgcHJlZmVycmVkIGZvcndhcmQgZmFjaW5nIGRpcmVjdGlvbi4gKi8KK2NsYXNzIElW
UkNoYXBlcm9uZQoreworcHVibGljOgorCisgICAgICAgLyoqIEdldCB0aGUgY3VycmVudCBzdGF0
ZSBvZiBDaGFwZXJvbmUgY2FsaWJyYXRpb24uIFRoaXMgc3RhdGUgY2FuIGNoYW5nZSBhdCBhbnkg
dGltZSBkdXJpbmcgYSBzZXNzaW9uIGR1ZSB0byBwaHlzaWNhbCBiYXNlIHN0YXRpb24gY2hhbmdl
cy4gKiovCisgICAgICAgdmlydHVhbCBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIEdldENhbGli
cmF0aW9uU3RhdGUoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggYW5kIGRl
cHRoIG9mIHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBpbiBYIGFu
ZCBaLiAKKyAgICAgICAqIFRyYWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50
ZXIgb2YgdGhlIFBsYXkgQXJlYS4gKiovCisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVh
U2l6ZSggZmxvYXQgKnBTaXplWCwgZmxvYXQgKnBTaXplWiApID0gMDsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSA0IGNvcm5lciBwb3NpdGlvbnMgb2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkg
bmFtZWQgU29mdCBCb3VuZHMpLgorICAgICAgICogQ29ybmVycyBhcmUgaW4gY291bnRlci1jbG9j
a3dpc2Ugb3JkZXIuCisgICAgICAgKiBTdGFuZGluZyBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2Vu
dGVyIG9mIHRoZSBQbGF5IEFyZWEuCisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgorICAgICAg
ICogMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBhcmUgcGFy
YWxsZWwgdG8gdGhlIFogYXhpcy4KKyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3JuZXIgaXMg
MFkgKG9uIHRoZSBmbG9vcikuICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRQbGF5QXJlYVJl
Y3QoIEhtZFF1YWRfdCAqcmVjdCApID0gMDsKKworICAgICAgIC8qKiBSZWxvYWQgQ2hhcGVyb25l
IGRhdGEgZnJvbSB0aGUgLnZyY2hhcCBmaWxlIG9uIGRpc2suICovCisgICAgICAgdmlydHVhbCB2
b2lkIFJlbG9hZEluZm8oIHZvaWQgKSA9IDA7CisKKyAgICAgICAvKiogT3B0aW9uYWxseSBnaXZl
IHRoZSBjaGFwZXJvbmUgc3lzdGVtIGEgaGl0IGFib3V0IHRoZSBjb2xvciBhbmQgYnJpZ2h0bmVz
cyBpbiB0aGUgc2NlbmUgKiovCisgICAgICAgdmlydHVhbCB2b2lkIFNldFNjZW5lQ29sb3IoIEht
ZENvbG9yX3QgY29sb3IgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IGNoYXBl
cm9uZSBib3VuZHMgZHJhdyBjb2xvciBhbmQgYnJpZ2h0bmVzcyAqKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0Qm91bmRzQ29sb3IoIEhtZENvbG9yX3QgKnBPdXRwdXRDb2xvckFycmF5LCBpbnQg
bk51bU91dHB1dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIEht
ZENvbG9yX3QgKnBPdXRwdXRDYW1lcmFDb2xvciApID0gMDsKKworICAgICAgIC8qKiBEZXRlcm1p
bmUgd2hldGhlciB0aGUgYm91bmRzIGFyZSBzaG93aW5nIHJpZ2h0IG5vdyAqKi8KKyAgICAgICB2
aXJ0dWFsIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpID0gMDsKKworICAgICAgIC8qKiBGb3JjZSB0
aGUgYm91bmRzIHRvIHNob3csIG1vc3RseSBmb3IgdXRpbGl0aWVzICoqLworICAgICAgIHZpcnR1
YWwgdm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoIGJvb2wgYkZvcmNlICkgPSAwOworfTsKKworc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJDaGFwZXJvbmVfVmVyc2lvbiA9ICJJVlJDaGFwZXJv
bmVfMDAzIjsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCit9CisKKy8vIGl2cmNoYXBlcm9uZXNl
dHVwLmgKK25hbWVzcGFjZSB2cgoreworCitlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7Cisg
ICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfTGl2ZSA9IDEsICAgICAgICAgICAgICAvLyBUaGUg
bGl2ZSBjaGFwZXJvbmUgY29uZmlnLCB1c2VkIGJ5IG1vc3QgYXBwbGljYXRpb25zIGFuZCBnYW1l
cworICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX1RlbXAgPSAyLCAgICAgICAgICAgICAgLy8g
VGhlIHRlbXBvcmFyeSBjaGFwZXJvbmUgY29uZmlnLCB1c2VkIHRvIGxpdmUtcHJldmlldyBjb2xs
aXNpb24gYm91bmRzIGluIHJvb20gc2V0dXAKK307CisKK2VudW0gRUNoYXBlcm9uZUltcG9ydEZs
YWdzCit7CisgICAgICAgRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0gMHgwMDAxLAorfTsK
KworLyoqIE1hbmFnZXMgdGhlIHdvcmtpbmcgY29weSBvZiB0aGUgY2hhcGVyb25lIGluZm8uIEJ5
IGRlZmF1bHQgdGhpcyB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSAKKyogbGl2ZSBjb3B5LiBBbnkg
Y2hhbmdlcyBtYWRlIHdpdGggdGhpcyBpbnRlcmZhY2Ugd2lsbCBzdGF5IGluIHRoZSB3b3JraW5n
IGNvcHkgdW50aWwgCisqIENvbW1pdFdvcmtpbmdDb3B5KCkgaXMgY2FsbGVkLCBhdCB3aGljaCBw
b2ludCB0aGUgd29ya2luZyBjb3B5IGFuZCB0aGUgbGl2ZSBjb3B5IHdpbGwgYmUgCisqIHRoZSBz
YW1lIGFnYWluLiAqLworY2xhc3MgSVZSQ2hhcGVyb25lU2V0dXAKK3sKK3B1YmxpYzoKKworICAg
ICAgIC8qKiBTYXZlcyB0aGUgY3VycmVudCB3b3JraW5nIGNvcHkgdG8gZGlzayAqLworICAgICAg
IHZpcnR1YWwgYm9vbCBDb21taXRXb3JraW5nQ29weSggRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29u
ZmlnRmlsZSApID0gMDsKKworICAgICAgIC8qKiBSZXZlcnRzIHRoZSB3b3JraW5nIGNvcHkgdG8g
bWF0Y2ggdGhlIGxpdmUgY2hhcGVyb25lIGNhbGlicmF0aW9uLgorICAgICAgICogVG8gbW9kaWZ5
IGV4aXN0aW5nIGRhdGEgdGhpcyBNVVNUIGJlIGRvIFdISUxFIGdldHRpbmcgYSBub24tZXJyb3Ig
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0dXMuCisgICAgICAgKiBPbmx5IGFmdGVyIHRoaXMgc2hv
dWxkIHlvdSBkbyBnZXRzIGFuZCBzZXRzIG9uIHRoZSBleGlzdGluZyBkYXRhLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBSZXZlcnRXb3JraW5nQ29weSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1
cm5zIHRoZSB3aWR0aCBhbmQgZGVwdGggb2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkgbmFtZWQg
U29mdCBCb3VuZHMpIGluIFggYW5kIFogZnJvbSB0aGUgd29ya2luZyBjb3B5LgorICAgICAgICog
VHJhY2tpbmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBB
cmVhLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFTaXplKCBmbG9h
dCAqcFNpemVYLCBmbG9hdCAqcFNpemVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhl
IDQgY29ybmVyIHBvc2l0aW9ucyBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0
IEJvdW5kcykgZnJvbSB0aGUgd29ya2luZyBjb3B5LgorICAgICAgICogQ29ybmVycyBhcmUgaW4g
Y2xvY2t3aXNlIG9yZGVyLgorICAgICAgICogVHJhY2tpbmcgc3BhY2UgY2VudGVyICgwLDAsMCkg
aXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLgorICAgICAgICogSXQncyBhIHJlY3Rhbmds
ZS4KKyAgICAgICAqIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRvIHRoZSBYIGF4aXMgYW5kIDIgc2lk
ZXMgYXJlIHBhcmFsbGVsIHRvIHRoZSBaIGF4aXMuCisgICAgICAgKiBIZWlnaHQgb2YgZXZlcnkg
Y29ybmVyIGlzIDBZIChvbiB0aGUgZmxvb3IpLiAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0
V29ya2luZ1BsYXlBcmVhUmVjdCggSG1kUXVhZF90ICpyZWN0ICkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgdGhlIG51bWJlciBvZiBRdWFkcyBpZiB0aGUgYnVmZmVyIHBvaW50cyB0byBudWxs
LiBPdGhlcndpc2UgaXQgcmV0dXJucyBRdWFkcyAKKyAgICAgICAqIGludG8gdGhlIGJ1ZmZlciB1
cCB0byB0aGUgbWF4IHNwZWNpZmllZCBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAg
dmlydHVhbCBib29sIEdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlf
Q09VTlQocHVuUXVhZHNDb3VudCkgSG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBw
dW5RdWFkc0NvdW50ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBR
dWFkcyBpZiB0aGUgYnVmZmVyIHBvaW50cyB0byBudWxsLiBPdGhlcndpc2UgaXQgcmV0dXJucyBR
dWFkcyAKKyAgICAgICAqIGludG8gdGhlIGJ1ZmZlciB1cCB0byB0aGUgbWF4IHNwZWNpZmllZC4g
Ki8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09V
VF9BUlJBWV9DT1VOVChwdW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWlu
dDMyX3QqIHB1blF1YWRzQ291bnQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJl
ZmVycmVkIHNlYXRlZCBwb3NpdGlvbiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAg
dmlydHVhbCBib29sIEdldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBI
bWRNYXRyaXgzNF90ICpwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsK
KworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBzdGFuZGluZyBvcmlnaW4gZnJvbSB0aGUgd29ya2lu
ZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlKCBIbWRNYXRyaXgzNF90ICpwbWF0U3RhbmRpbmdaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFNldHMgdGhlIFBsYXkgQXJlYSBp
biB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nUGxh
eUFyZWFTaXplKCBmbG9hdCBzaXplWCwgZmxvYXQgc2l6ZVogKSA9IDA7CisKKyAgICAgICAvKiog
U2V0cyB0aGUgQ29sbGlzaW9uIEJvdW5kcyBpbiB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfQVJSQVlfQ09V
TlQodW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFk
c0NvdW50ICkgPSAwOworCisgICAgICAgLyoqIFNldHMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9z
aXRpb24gaW4gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgU2V0V29y
a2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIGNvbnN0IEhtZE1hdHJpeDM0X3Qg
KnBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoq
IFNldHMgdGhlIHByZWZlcnJlZCBzdGFuZGluZyBwb3NpdGlvbiBpbiB0aGUgd29ya2luZyBjb3B5
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKCBjb25zdCBIbWRNYXRyaXgzNF90ICpwTWF0U3RhbmRpbmdaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFRlYXIgZXZlcnl0aGluZyBkb3du
IGFuZCByZWxvYWQgaXQgZnJvbSB0aGUgZmlsZSBvbiBkaXNrICovCisgICAgICAgdmlydHVhbCB2
b2lkIFJlbG9hZEZyb21EaXNrKCBFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlICkgPSAw
OworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24uICov
CisgICAgICAgdmlydHVhbCBib29sIEdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKCBIbWRNYXRyaXgzNF90ICpwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSAp
ID0gMDsKKworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFn
c0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuVGFnQ291bnQpIHVpbnQ4X3QgKnBUYWdzQnVmZmVyLCB1
aW50MzJfdCB1blRhZ0NvdW50ICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZlQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5UYWdDb3VudCkgdWlu
dDhfdCAqcFRhZ3NCdWZmZXIsIHVpbnQzMl90ICpwdW5UYWdDb3VudCApID0gMDsKKworICAgICAg
IHZpcnR1YWwgYm9vbCBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VO
VCh1blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRz
Q291bnQgKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEdldExpdmVQaHlzaWNhbEJvdW5kc0lu
Zm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1
ZmZlciwgdWludDMyX3QqIHB1blF1YWRzQ291bnQgKSA9IDA7CisKKyAgICAgICB2aXJ0dWFsIGJv
b2wgRXhwb3J0TGl2ZVRvQnVmZmVyKCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcEJ1ZmZlciwgdWlu
dDMyX3QgKnBuQnVmZmVyTGVuZ3RoICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBJbXBvcnRG
cm9tQnVmZmVyVG9Xb3JraW5nKCBjb25zdCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCBuSW1wb3J0
RmxhZ3MgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNoYXBlcm9u
ZVNldHVwX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lU2V0dXBfMDA1IjsKKworCit9CisKKy8vIGl2
cmNvbXBvc2l0b3IuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCAp
CisKKy8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRvciAqLwor
ZW51bSBFVlJDb21wb3NpdG9yRXJyb3IKK3sKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9Ob25l
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgIFZS
Q29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gICAgICAg
ICAgICAgID0gMTAwLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzICAg
ICAgICAgICAgICAgICAgICAgPSAxMDEsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW52YWxp
ZFRleHR1cmUgICAgICAgICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkNvbXBvc2l0b3JF
cnJvcl9Jc05vdFNjZW5lQXBwbGljYXRpb24gICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZS
Q29tcG9zaXRvckVycm9yX1RleHR1cmVJc09uV3JvbmdEZXZpY2UgICAgICAgPSAxMDQsCisgICAg
ICAgVlJDb21wb3NpdG9yRXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCA9IDEwNSwK
KyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCA9IDEw
NiwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbmRleE91dE9mUmFuZ2UgICAgICAgICAgICAg
ICAgICAgICA9IDEwNywKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVk
ICAgICAgICAgICAgICAgICAgICAgPSAxMDgsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW52
YWxpZEJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwOSwKK307CisKK2NvbnN0
IHVpbnQzMl90IFZSQ29tcG9zaXRvcl9SZXByb2plY3Rpb25SZWFzb25fQ3B1ID0gMHgwMTsKK2Nv
bnN0IHVpbnQzMl90IFZSQ29tcG9zaXRvcl9SZXByb2plY3Rpb25SZWFzb25fR3B1ID0gMHgwMjsK
K2NvbnN0IHVpbnQzMl90IFZSQ29tcG9zaXRvcl9SZXByb2plY3Rpb25Bc3luYyAgICAgID0gMHgw
NDsgICAgICAgLy8gVGhpcyBmbGFnIGluZGljYXRlcyB0aGUgYXN5bmMgcmVwcm9qZWN0aW9uIG1v
ZGUgaXMgYWN0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gYnV0IGRvZXMgbm90IGluZGljYXRlIGlmIHJlcHJvamVjdGlvbiBhY3R1YWxseSBo
YXBwZW5lZCBvciBub3QuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBVc2UgdGhlIFJlcHJvamVjdGlvblJlYXNvbiBmbGFncyBhYm92ZSB0byBjaGVj
ayBpZiByZXByb2plY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHdhcyBhY3R1YWxseSBhcHBsaWVkIChpLmUuIHNjZW5lIHRleHR1cmUgd2Fz
IHJldXNlZCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBOdW1GcmFtZVByZXNlbnRzID4gMSBhbHNvIGluZGljYXRlcyB0aGUgc2NlbmUgdGV4dHVy
ZSB3YXMgcmV1c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gYW5kIGFsc28gdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IGl0IHdhcyBwcmVzZW50
ZWQgaW4gdG90YWwuCisKKy8qKiBQcm92aWRlcyBhIHNpbmdsZSBmcmFtZSdzIHRpbWluZyBpbmZv
cm1hdGlvbiB0byB0aGUgYXBwICovCitzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZworewor
ICAgICAgIHVpbnQzMl90IG1fblNpemU7IC8vIFNldCB0byBzaXplb2YoIENvbXBvc2l0b3JfRnJh
bWVUaW1pbmcgKQorICAgICAgIHVpbnQzMl90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMy
X3QgbV9uTnVtRnJhbWVQcmVzZW50czsgLy8gbnVtYmVyIG9mIHRpbWVzIHRoaXMgZnJhbWUgd2Fz
IHByZXNlbnRlZAorICAgICAgIHVpbnQzMl90IG1fbk51bU1pc1ByZXNlbnRlZDsgLy8gbnVtYmVy
IG9mIHRpbWVzIHRoaXMgZnJhbWUgd2FzIHByZXNlbnRlZCBvbiBhIHZzeW5jIG90aGVyIHRoYW4g
aXQgd2FzIG9yaWdpbmFsbHkgcHJlZGljdGVkIHRvCisgICAgICAgdWludDMyX3QgbV9uTnVtRHJv
cHBlZEZyYW1lczsgLy8gbnVtYmVyIG9mIGFkZGl0aW9uYWwgdGltZXMgcHJldmlvdXMgZnJhbWUg
d2FzIHNjYW5uZWQgb3V0CisgICAgICAgdWludDMyX3QgbV9uUmVwcm9qZWN0aW9uRmxhZ3M7CisK
KyAgICAgICAvKiogQWJzb2x1dGUgdGltZSByZWZlcmVuY2UgZm9yIGNvbXBhcmluZyBmcmFtZXMu
ICBUaGlzIGFsaWducyB3aXRoIHRoZSB2c3luYyB0aGF0IHJ1bm5pbmcgc3RhcnQgaXMgcmVsYXRp
dmUgdG8uICovCisgICAgICAgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOworCisgICAg
ICAgLyoqIFRoZXNlIHRpbWVzIG1heSBpbmNsdWRlIHdvcmsgZnJvbSBvdGhlciBwcm9jZXNzZXMg
ZHVlIHRvIE9TIHNjaGVkdWxpbmcuCisgICAgICAgKiBUaGUgZmV3ZXIgcGFja2V0cyBvZiB3b3Jr
IHRoZXNlIGFyZSBicm9rZW4gdXAgaW50bywgdGhlIGxlc3MgbGlrZWx5IHRoaXMgd2lsbCBoYXBw
ZW4uCisgICAgICAgKiBHUFUgd29yayBjYW4gYmUgYnJva2VuIHVwIGJ5IGNhbGxpbmcgRmx1c2gu
ICBUaGlzIGNhbiBzb21ldGltZXMgYmUgdXNlZnVsIHRvIGdldCB0aGUgR1BVIHN0YXJ0ZWQKKyAg
ICAgICAqIHByb2Nlc3NpbmcgdGhhdCB3b3JrIGVhcmxpZXIgaW4gdGhlIGZyYW1lLiAqLworICAg
ICAgIGZsb2F0IG1fZmxQcmVTdWJtaXRHcHVNczsgLy8gdGltZSBzcGVudCByZW5kZXJpbmcgdGhl
IHNjZW5lIChncHUgd29yayBzdWJtaXR0ZWQgYmV0d2VlbiBXYWl0R2V0UG9zZXMgYW5kIHNlY29u
ZCBTdWJtaXQpCisgICAgICAgZmxvYXQgbV9mbFBvc3RTdWJtaXRHcHVNczsgLy8gYWRkaXRpb25h
bCB0aW1lIHNwZW50IHJlbmRlcmluZyBieSBhcHBsaWNhdGlvbiAoZS5nLiBjb21wYW5pb24gd2lu
ZG93KQorICAgICAgIGZsb2F0IG1fZmxUb3RhbFJlbmRlckdwdU1zOyAvLyB0aW1lIGJldHdlZW4g
d29yayBzdWJtaXR0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgcHJlc2VudCAoaWRlYWxseSB2c3luYykg
dW50aWwgdGhlIGVuZCBvZiBjb21wb3NpdG9yIHN1Ym1pdHRlZCB3b3JrCisgICAgICAgZmxvYXQg
bV9mbENvbXBvc2l0b3JSZW5kZXJHcHVNczsgLy8gdGltZSBzcGVuZCBwZXJmb3JtaW5nIGRpc3Rv
cnRpb24gY29ycmVjdGlvbiwgcmVuZGVyaW5nIGNoYXBlcm9uZSwgb3ZlcmxheXMsIGV0Yy4KKyAg
ICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOyAvLyB0aW1lIHNwZW50IG9uIGNw
dSBzdWJtaXR0aW5nIHRoZSBhYm92ZSB3b3JrIGZvciB0aGlzIGZyYW1lCisgICAgICAgZmxvYXQg
bV9mbENvbXBvc2l0b3JJZGxlQ3B1TXM7IC8vIHRpbWUgc3BlbnQgd2FpdGluZyBmb3IgcnVubmlu
ZyBzdGFydCAoYXBwbGljYXRpb24gY291bGQgaGF2ZSB1c2VkIHRoaXMgbXVjaCBtb3JlIHRpbWUp
CisKKyAgICAgICAvKiogTWlzY2VsbGFuZW91cyBtZWFzdXJlZCBpbnRlcnZhbHMuICovCisgICAg
ICAgZmxvYXQgbV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsgLy8gdGltZSBiZXR3ZWVuIGNhbGxz
IHRvIFdhaXRHZXRQb3NlcworICAgICAgIGZsb2F0IG1fZmxQcmVzZW50Q2FsbENwdU1zOyAvLyB0
aW1lIGJsb2NrZWQgb24gY2FsbCB0byBwcmVzZW50ICh1c3VhbGx5IDAuMCwgYnV0IGNhbiBnbyBs
b25nKQorICAgICAgIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1zOyAvLyB0aW1lIHNwZW50
IHNwaW4td2FpdGluZyBmb3IgZnJhbWUgaW5kZXggdG8gY2hhbmdlIChub3QgbmVhci16ZXJvIGlu
ZGljYXRlcyB3YWl0IG9iamVjdCBmYWlsdXJlKQorICAgICAgIGZsb2F0IG1fZmxTdWJtaXRGcmFt
ZU1zOyAvLyB0aW1lIHNwZW50IGluIElWUkNvbXBvc2l0b3I6OlN1Ym1pdCAobm90IG5lYXItemVy
byBpbmRpY2F0ZXMgZHJpdmVyIGlzc3VlKQorCisgICAgICAgLyoqIFRoZSBmb2xsb3dpbmcgYXJl
IGFsbCByZWxhdGl2ZSB0byB0aGlzIGZyYW1lJ3MgU3lzdGVtVGltZUluU2Vjb25kcyAqLworICAg
ICAgIGZsb2F0IG1fZmxXYWl0R2V0UG9zZXNDYWxsZWRNczsKKyAgICAgICBmbG9hdCBtX2ZsTmV3
UG9zZXNSZWFkeU1zOworICAgICAgIGZsb2F0IG1fZmxOZXdGcmFtZVJlYWR5TXM7IC8vIHNlY29u
ZCBjYWxsIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdAorICAgICAgIGZsb2F0IG1fZmxDb21wb3Np
dG9yVXBkYXRlU3RhcnRNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1z
OworICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKKworICAgICAgIHZy
OjpUcmFja2VkRGV2aWNlUG9zZV90IG1fSG1kUG9zZTsgLy8gcG9zZSB1c2VkIGJ5IGFwcCB0byBy
ZW5kZXIgdGhpcyBmcmFtZQorfTsKKworLyoqIEN1bXVsYXRpdmUgc3RhdHMgZm9yIGN1cnJlbnQg
YXBwbGljYXRpb24uICBUaGVzZSBhcmUgbm90IGNsZWFyZWQgdW50aWwgYSBuZXcgYXBwIGNvbm5l
Y3RzLAorKiBidXQgdGhleSBkbyBzdG9wIGFjY3VtdWxhdGluZyBvbmNlIHRoZSBhc3NvY2lhdGVk
IGFwcCBkaXNjb25uZWN0cy4gKi8KK3N0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cwor
eworICAgICAgIHVpbnQzMl90IG1fblBpZDsgLy8gUHJvY2VzcyBpZCBhc3NvY2lhdGVkIHdpdGgg
dGhlc2Ugc3RhdHMgKG1heSBubyBsb25nZXIgYmUgcnVubmluZykuCisgICAgICAgdWludDMyX3Qg
bV9uTnVtRnJhbWVQcmVzZW50czsgLy8gdG90YWwgbnVtYmVyIG9mIHRpbWVzIHdlIGNhbGxlZCBw
cmVzZW50IChpbmNsdWRlcyByZXByb2plY3RlZCBmcmFtZXMpCisgICAgICAgdWludDMyX3QgbV9u
TnVtRHJvcHBlZEZyYW1lczsgLy8gdG90YWwgbnVtYmVyIG9mIHRpbWVzIGFuIG9sZCBmcmFtZSB3
YXMgcmUtc2Nhbm5lZCBvdXQgKHdpdGhvdXQgcmVwcm9qZWN0aW9uKQorICAgICAgIHVpbnQzMl90
IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOyAvLyB0b3RhbCBudW1iZXIgb2YgdGltZXMgYSBmcmFt
ZSB3YXMgc2Nhbm5lZCBvdXQgYSBzZWNvbmQgdGltZSAod2l0aCByZXByb2plY3Rpb24pCisKKyAg
ICAgICAvKiogVmFsdWVzIHJlY29yZGVkIGF0IHN0YXJ0dXAgYmVmb3JlIGFwcGxpY2F0aW9uIGhh
cyBmdWxseSBmYWRlZCBpbiB0aGUgZmlyc3QgdGltZS4gKi8KKyAgICAgICB1aW50MzJfdCBtX25O
dW1GcmFtZVByZXNlbnRzT25TdGFydHVwOworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRG
cmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNP
blN0YXJ0dXA7CisKKyAgICAgICAvKiogQXBwbGljYXRpb25zIG1heSBleHBsaWNpdGx5IGZhZGUg
dG8gdGhlIGNvbXBvc2l0b3IuICBUaGlzIGlzIHVzdWFsbHkgdG8gaGFuZGxlIGxldmVsIHRyYW5z
aXRpb25zLCBhbmQgbG9hZGluZyBvZnRlbiBjYXVzZXMKKyAgICAgICAqIHN5c3RlbSB3aWRlIGhp
dGNoZXMuICBUaGUgZm9sbG93aW5nIHN0YXRzIGFyZSBjb2xsZWN0ZWQgZHVyaW5nIHRoaXMgcGVy
aW9kLiAgRG9lcyBub3QgaW5jbHVkZSB2YWx1ZXMgcmVjb3JkZWQgZHVyaW5nIHN0YXJ0dXAuICov
CisgICAgICAgdWludDMyX3QgbV9uTnVtTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1G
cmFtZVByZXNlbnRzTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVz
TG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7
CisKKyAgICAgICAvKiogSWYgd2UgZG9uJ3QgZ2V0IGEgbmV3IGZyYW1lIGZyb20gdGhlIGFwcCBp
biBsZXNzIHRoYW4gMi41IGZyYW1lcywgdGhlbiB3ZSBhc3N1bWUgdGhlIGFwcCBoYXMgaHVuZyBh
bmQgc3RhcnQKKyAgICAgICAqIGZhZGluZyBiYWNrIHRvIHRoZSBjb21wb3NpdG9yLiAgVGhlIGZv
bGxvd2luZyBzdGF0cyBhcmUgYSByZXN1bHQgb2YgdGhpcywgYW5kIGFyZSBhIHN1YnNldCBvZiB0
aG9zZSByZWNvcmRlZCBhYm92ZS4KKyAgICAgICAqIERvZXMgbm90IGluY2x1ZGUgdmFsdWVzIHJl
Y29yZGVkIGR1cmluZyBzdGFydCB1cCBvciBsb2FkaW5nLiAqLworICAgICAgIHVpbnQzMl90IG1f
bk51bVRpbWVkT3V0OworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNUaW1lZE91
dDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzVGltZWRPdXQ7CisgICAgICAg
dWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNUaW1lZE91dDsKK307CisKKyNwcmFnbWEg
cGFjayggcG9wICkKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgY29tcG9zaXRvciAqLworY2xhc3MgSVZSQ29tcG9zaXRvcgoreworcHVibGljOgorICAg
ICAgIC8qKiBTZXRzIHRyYWNraW5nIHNwYWNlIHJldHVybmVkIGJ5IFdhaXRHZXRQb3NlcyAqLwor
ICAgICAgIHZpcnR1YWwgdm9pZCBTZXRUcmFja2luZ1NwYWNlKCBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luICkgPSAwOworCisgICAgICAgLyoqIEdldHMgY3VycmVudCB0cmFja2luZyBz
cGFjZSByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMgKi8KKyAgICAgICB2aXJ0dWFsIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKSA9IDA7CisKKyAgICAgICAvKiogU2Nl
bmUgYXBwbGljYXRpb25zIHNob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHBvc2VzIHRv
IHJlbmRlciB3aXRoIChhbmQgb3B0aW9uYWxseSBwb3NlcyBwcmVkaWN0ZWQgYW4gYWRkaXRpb25h
bCBmcmFtZSBvdXQgdG8gdXNlIGZvciBnYW1lcGxheSkuCisgICAgICAgKiBUaGlzIGZ1bmN0aW9u
IHdpbGwgYmxvY2sgdW50aWwgInJ1bm5pbmcgc3RhcnQiIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhl
IHN0YXJ0IG9mIHRoZSBmcmFtZSwgYW5kIHNob3VsZCBiZSBjYWxsZWQgYXQgdGhlIGxhc3QgbW9t
ZW50IGJlZm9yZSBuZWVkaW5nIHRvCisgICAgICAgKiBzdGFydCByZW5kZXJpbmcuCisgICAgICAg
KgorICAgICAgICogUmV0dXJuIGNvZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBw
bGljYXRpb24gKG1ha2Ugc3VyZSB0byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1Nj
ZW5lKQorICAgICAgICogICAgICAgLSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFz
IHRha2VuIGZvY3VzIC0gdGhpcyB3aWxsIHRocm90dGxlIHRoZSBjYWxsIHRvIDEwaHogdG8gcmVk
dWNlIHRoZSBpbXBhY3Qgb24gdGhhdCBhcHApCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEVW
UkNvbXBvc2l0b3JFcnJvciBXYWl0R2V0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKHVuUmVuZGVyUG9z
ZUFycmF5Q291bnQpIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQz
Ml90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsCisgICAgICAgICAgICAgIFZSX0FSUkFZX0NPVU5U
KHVuR2FtZVBvc2VBcnJheUNvdW50KSBUcmFja2VkRGV2aWNlUG9zZV90KiBwR2FtZVBvc2VBcnJh
eSwgdWludDMyX3QgdW5HYW1lUG9zZUFycmF5Q291bnQgKSA9IDA7CisKKyAgICAgICAvKiogR2V0
IHRoZSBsYXN0IHNldCBvZiBwb3NlcyByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMuICovCisgICAg
ICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TGFzdFBvc2VzKCBWUl9BUlJBWV9DT1VO
VCggdW5SZW5kZXJQb3NlQXJyYXlDb3VudCApIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBSZW5kZXJQ
b3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsCisgICAgICAgICAgICAg
IFZSX0FSUkFZX0NPVU5UKCB1bkdhbWVQb3NlQXJyYXlDb3VudCApIFRyYWNrZWREZXZpY2VQb3Nl
X3QqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCApID0gMDsK
KworICAgICAgIC8qKiBJbnRlcmZhY2UgZm9yIGFjY2Vzc2luZyBsYXN0IHNldCBvZiBwb3NlcyBy
ZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMgb25lIGF0IGEgdGltZS4KKyAgICAgICAqIFJldHVybnMg
VlJDb21wb3NpdG9yRXJyb3JfSW5kZXhPdXRPZlJhbmdlIGlmIHVuRGV2aWNlSW5kZXggbm90IGxl
c3MgdGhhbiBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50IG90aGVyd2lzZSBWUkNvbXBvc2l0b3JF
cnJvcl9Ob25lLgorICAgICAgICogSXQgaXMgb2theSB0byBwYXNzIE5VTEwgZm9yIGVpdGhlciBw
b3NlIGlmIHlvdSBvbmx5IHdhbnQgb25lIG9mIHRoZSB2YWx1ZXMuICovCisgICAgICAgdmlydHVh
bCBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgoIFRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBP
dXRwdXRQb3NlLCBUcmFja2VkRGV2aWNlUG9zZV90ICpwT3V0cHV0R2FtZVBvc2UgKSA9IDA7CisK
KyAgICAgICAvKiogVXBkYXRlZCBzY2VuZSB0ZXh0dXJlIHRvIGRpc3BsYXkuIElmIHBCb3VuZHMg
aXMgTlVMTCB0aGUgZW50aXJlIHRleHR1cmUgd2lsbCBiZSB1c2VkLiAgSWYgY2FsbGVkIGZyb20g
YW4gT3BlbkdMIGFwcCwgY29uc2lkZXIgYWRkaW5nIGEgZ2xGbHVzaCBhZnRlcgorICAgICAgICog
U3VibWl0dGluZyBib3RoIGZyYW1lcyB0byBzaWduYWwgdGhlIGRyaXZlciB0byBzdGFydCBwcm9j
ZXNzaW5nLCBvdGhlcndpc2UgaXQgbWF5IHdhaXQgdW50aWwgdGhlIGNvbW1hbmQgYnVmZmVyIGZp
bGxzIHVwLCBjYXVzaW5nIHRoZSBhcHAgdG8gbWlzcyBmcmFtZXMuCisgICAgICAgKgorICAgICAg
ICogT3BlbkdMIGRpcnR5IHN0YXRlOgorICAgICAgICogICAgICAgZ2xCaW5kVGV4dHVyZQorICAg
ICAgICoKKyAgICAgICAqIFJldHVybiBjb2RlczoKKyAgICAgICAqICAgICAgIC0gSXNOb3RTY2Vu
ZUFwcGxpY2F0aW9uIChtYWtlIHN1cmUgdG8gY2FsbCBWUl9Jbml0IHdpdGggVlJBcHBsaWNhaXRv
bl9TY2VuZSkKKyAgICAgICAqICAgICAgIC0gRG9Ob3RIYXZlRm9jdXMgKHNvbWUgb3RoZXIgYXBw
IGhhcyB0YWtlbiBmb2N1cykKKyAgICAgICAqICAgICAgIC0gVGV4dHVyZUlzT25Xcm9uZ0Rldmlj
ZSAoYXBwbGljYXRpb24gZGlkIG5vdCB1c2UgcHJvcGVyIEFkYXB0ZXJJbmRleCAtIHNlZSBJVlJT
eXN0ZW0uR2V0RFhHSU91dHB1dEluZm8pCisgICAgICAgKiAgICAgICAtIFNoYXJlZFRleHR1cmVz
Tm90U3VwcG9ydGVkIChhcHBsaWNhdGlvbiBuZWVkcyB0byBjYWxsIENyZWF0ZURYR0lGYWN0b3J5
MSBvciBsYXRlciBiZWZvcmUgY3JlYXRpbmcgRFggZGV2aWNlKQorICAgICAgICogICAgICAgLSBU
ZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0IChzY2VuZSB0ZXh0dXJlcyBtdXN0IGJlIGNvbXBh
dGlibGUgd2l0aCBEWEdJIHNoYXJpbmcgcnVsZXMgLSBlLmcuIHVuY29tcHJlc3NlZCwgbm8gbWlw
cywgZXRjLikKKyAgICAgICAqICAgICAgIC0gSW52YWxpZFRleHR1cmUgKHVzdWFsbHkgbWVhbnMg
YmFkIGFyZ3VtZW50cyBwYXNzZWQgaW4pCisgICAgICAgKiAgICAgICAtIEFscmVhZHlTdWJtaXR0
ZWQgKGFwcCBoYXMgc3VibWl0dGVkIHR3byBsZWZ0IHRleHR1cmVzIG9yIHR3byByaWdodCB0ZXh0
dXJlcyBpbiBhIHNpbmdsZSBmcmFtZSAtIGkuZS4gYmVmb3JlIGNhbGxpbmcgV2FpdEdldFBvc2Vz
IGFnYWluKQorICAgICAgICovCisgICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgU3Vi
bWl0KCBFVlJFeWUgZUV5ZSwgY29uc3QgVGV4dHVyZV90ICpwVGV4dHVyZSwgY29uc3QgVlJUZXh0
dXJlQm91bmRzX3QqIHBCb3VuZHMgPSAwLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MgPSBT
dWJtaXRfRGVmYXVsdCApID0gMDsKKworICAgICAgIC8qKiBDbGVhcnMgdGhlIGZyYW1lIHRoYXQg
d2FzIHNlbnQgd2l0aCB0aGUgbGFzdCBjYWxsIHRvIFN1Ym1pdC4gVGhpcyB3aWxsIGNhdXNlIHRo
ZSAKKyAgICAgICAqIGNvbXBvc2l0b3IgdG8gc2hvdyB0aGUgZ3JpZCB1bnRpbCBTdWJtaXQgaXMg
Y2FsbGVkIGFnYWluLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhckxhc3RTdWJtaXR0ZWRG
cmFtZSgpID0gMDsKKworICAgICAgIC8qKiBDYWxsIGltbWVkaWF0ZWx5IGFmdGVyIHByZXNlbnRp
bmcgeW91ciBhcHAncyB3aW5kb3cgKGkuZS4gY29tcGFuaW9uIHdpbmRvdykgdG8gdW5ibG9jayB0
aGUgY29tcG9zaXRvci4KKyAgICAgICAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgY2FsbCwgd2hpY2gg
b25seSBuZWVkcyB0byBiZSB1c2VkIGlmIHlvdSBjYW4ndCBpbnN0ZWFkIGNhbGwgV2FpdEdldFBv
c2VzIGltbWVkaWF0ZWx5IGFmdGVyIFByZXNlbnQuCisgICAgICAgKiBGb3IgZXhhbXBsZSwgaWYg
eW91ciBlbmdpbmUncyByZW5kZXIgYW5kIGdhbWUgbG9vcCBhcmUgbm90IG9uIHNlcGFyYXRlIHRo
cmVhZHMsIG9yIGJsb2NraW5nIHRoZSByZW5kZXIgdGhyZWFkIHVudGlsIDNtcyBiZWZvcmUgdGhl
IG5leHQgdnN5bmMgd291bGQKKyAgICAgICAqIGludHJvZHVjZSBhIGRlYWRsb2NrIG9mIHNvbWUg
c29ydC4gIFRoaXMgZnVuY3Rpb24gdGVsbHMgdGhlIGNvbXBvc2l0b3IgdGhhdCB5b3UgaGF2ZSBm
aW5pc2hlZCBhbGwgcmVuZGVyaW5nIGFmdGVyIGhhdmluZyBTdWJtaXR0ZWQgYnVmZmVycyBmb3Ig
Ym90aAorICAgICAgICogZXllcywgYW5kIGl0IGlzIGZyZWUgdG8gc3RhcnQgaXRzIHJlbmRlcmlu
ZyB3b3JrLiAgVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgc2FtZSB0aHJlYWQg
eW91IGFyZSByZW5kZXJpbmcgb24uICovCisgICAgICAgdmlydHVhbCB2b2lkIFBvc3RQcmVzZW50
SGFuZG9mZigpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGltaW5nIGRhdGEg
aXMgZmlsbGVkIGl0LiAgU2V0cyBvbGRlc3QgdGltaW5nIGluZm8gaWYgbkZyYW1lc0FnbyBpcyBs
YXJnZXIgdGhhbiB0aGUgc3RvcmVkIGhpc3RvcnkuCisgICAgICAgKiBCZSBzdXJlIHRvIHNldCB0
aW1pbmcuc2l6ZSA9IHNpemVvZihDb21wb3NpdG9yX0ZyYW1lVGltaW5nKSBvbiBzdHJ1Y3QgcGFz
c2VkIGluIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uICovCisgICAgICAgdmlydHVhbCBi
b29sIEdldEZyYW1lVGltaW5nKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICpwVGltaW5nLCB1aW50
MzJfdCB1bkZyYW1lc0FnbyA9IDAgKSA9IDA7CisKKyAgICAgICAvKiogSW50ZXJmYWNlIGZvciBj
b3B5aW5nIGEgcmFuZ2Ugb2YgdGltaW5nIGRhdGEuICBGcmFtZXMgYXJlIHJldHVybmVkIGluIGFz
Y2VuZGluZyBvcmRlciAob2xkZXN0IHRvIG5ld2VzdCkgd2l0aCB0aGUgbGFzdCBiZWluZyB0aGUg
bW9zdCByZWNlbnQgZnJhbWUuCisgICAgICAgKiBPbmx5IHRoZSBmaXJzdCBlbnRyeSdzIG1fblNp
emUgbmVlZHMgdG8gYmUgc2V0LCBhcyB0aGUgcmVzdCB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhh
dC4gIFJldHVybnMgdG90YWwgbnVtYmVyIG9mIGVudHJpZXMgZmlsbGVkIG91dC4gKi8KKyAgICAg
ICB2aXJ0dWFsIHVpbnQzMl90IEdldEZyYW1lVGltaW5ncyggQ29tcG9zaXRvcl9GcmFtZVRpbWlu
ZyAqcFRpbWluZywgdWludDMyX3QgbkZyYW1lcyApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5z
IHRoZSB0aW1lIGluIHNlY29uZHMgbGVmdCBpbiB0aGUgY3VycmVudCAoYXMgaWRlbnRpZmllZCBi
eSBGcmFtZVRpbWluZydzIGZyYW1lSW5kZXgpIGZyYW1lLgorICAgICAgICogRHVlIHRvICJydW5u
aW5nIHN0YXJ0IiwgdGhpcyB2YWx1ZSBtYXkgcm9sbCBvdmVyIHRvIHRoZSBuZXh0IGZyYW1lIGJl
Zm9yZSBldmVyIHJlYWNoaW5nIDAuMC4gKi8KKyAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZyYW1l
VGltZVJlbWFpbmluZygpID0gMDsKKworICAgICAgIC8qKiBGaWxscyBvdXQgc3RhdHMgYWNjdW11
bGF0ZWQgZm9yIHRoZSBsYXN0IGNvbm5lY3RlZCBhcHBsaWNhdGlvbi4gIFBhc3MgaW4gc2l6ZW9m
KCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyApIGFzIHNlY29uZCBwYXJhbWV0ZXIuICovCisg
ICAgICAgdmlydHVhbCB2b2lkIEdldEN1bXVsYXRpdmVTdGF0cyggQ29tcG9zaXRvcl9DdW11bGF0
aXZlU3RhdHMgKnBTdGF0cywgdWludDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMgKSA9IDA7CisKKyAg
ICAgICAvKiogRmFkZXMgdGhlIHZpZXcgb24gdGhlIEhNRCB0byB0aGUgc3BlY2lmaWVkIGNvbG9y
LiBUaGUgZmFkZSB3aWxsIHRha2UgZlNlY29uZHMsIGFuZCB0aGUgY29sb3IgdmFsdWVzIGFyZSBi
ZXR3ZWVuCisgICAgICAgKiAwLjAgYW5kIDEuMC4gVGhpcyBjb2xvciBpcyBmYWRlZCBvbiB0b3Ag
b2YgdGhlIHNjZW5lIGJhc2VkIG9uIHRoZSBhbHBoYSBwYXJhbWV0ZXIuIFJlbW92aW5nIHRoZSBm
YWRlIGNvbG9yIGluc3RhbnRseSAKKyAgICAgICAqIHdvdWxkIGJlIEZhZGVUb0NvbG9yKCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCApLiAgVmFsdWVzIGFyZSBpbiB1bi1wcmVtdWx0aXBsaWVkIGFs
cGhhIHNwYWNlLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGYWRlVG9Db2xvciggZmxvYXQgZlNl
Y29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBo
YSwgYm9vbCBiQmFja2dyb3VuZCA9IGZhbHNlICkgPSAwOworCisgICAgICAgLyoqIEdldCBjdXJy
ZW50IGZhZGUgY29sb3IgdmFsdWUuICovCisgICAgICAgdmlydHVhbCBIbWRDb2xvcl90IEdldEN1
cnJlbnRGYWRlQ29sb3IoIGJvb2wgYkJhY2tncm91bmQgPSBmYWxzZSApID0gMDsKKworICAgICAg
IC8qKiBGYWRpbmcgdGhlIEdyaWQgaW4gb3Igb3V0IGluIGZTZWNvbmRzICovCisgICAgICAgdmly
dHVhbCB2b2lkIEZhZGVHcmlkKCBmbG9hdCBmU2Vjb25kcywgYm9vbCBiRmFkZUluICkgPSAwOwor
CisgICAgICAgLyoqIEdldCBjdXJyZW50IGFscGhhIHZhbHVlIG9mIGdyaWQuICovCisgICAgICAg
dmlydHVhbCBmbG9hdCBHZXRDdXJyZW50R3JpZEFscGhhKCkgPSAwOworCisgICAgICAgLyoqIE92
ZXJyaWRlIHRoZSBza3lib3ggdXNlZCBpbiB0aGUgY29tcG9zaXRvciAoZS5nLiBmb3IgZHVyaW5n
IGxldmVsIGxvYWRzIHdoZW4gdGhlIGFwcCBjYW4ndCBmZWVkIHNjZW5lIGltYWdlcyBmYXN0IGVu
b3VnaCkKKyAgICAgICAqIE9yZGVyIGlzIEZyb250LCBCYWNrLCBMZWZ0LCBSaWdodCwgVG9wLCBC
b3R0b20uICBJZiBvbmx5IGEgc2luZ2xlIHRleHR1cmUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVk
IGluIGxhdC1sb25nIGZvcm1hdC4KKyAgICAgICAqIElmIHR3byBhcmUgcGFzc2VkLCBpdCBpcyBh
c3N1bWVkIGEgbGF0LWxvbmcgc3RlcmVvIHBhaXIuICovCisgICAgICAgdmlydHVhbCBFVlJDb21w
b3NpdG9yRXJyb3IgU2V0U2t5Ym94T3ZlcnJpZGUoIFZSX0FSUkFZX0NPVU5UKCB1blRleHR1cmVD
b3VudCApIGNvbnN0IFRleHR1cmVfdCAqcFRleHR1cmVzLCB1aW50MzJfdCB1blRleHR1cmVDb3Vu
dCApID0gMDsKKworICAgICAgIC8qKiBSZXNldHMgY29tcG9zaXRvciBza3lib3ggYmFjayB0byBk
ZWZhdWx0cy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpID0g
MDsKKworICAgICAgIC8qKiBCcmluZ3MgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBmcm9u
dC4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvdmVyaW5nIGFueSBvdGhlciB3aW5kb3cgdGhhdCBtYXkg
YmUgb24gdGhlIEhNRAorICAgICAgICogYW5kIGlzIG9ic2N1cmluZyB0aGUgY29tcG9zaXRvciB3
aW5kb3cuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKSA9
IDA7CisKKyAgICAgICAvKiogUHVzaGVzIHRoZSBjb21wb3NpdG9yIHdpbmRvdyB0byB0aGUgYmFj
ay4gVGhpcyBpcyB1c2VmdWwgZm9yIGFsbG93aW5nIG90aGVyIGFwcGxpY2F0aW9ucyB0byBkcmF3
IGRpcmVjdGx5IHRvIHRoZSBITUQuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JH
b1RvQmFjaygpID0gMDsKKworICAgICAgIC8qKiBUZWxscyB0aGUgY29tcG9zaXRvciBwcm9jZXNz
IHRvIGNsZWFuIHVwIGFuZCBleGl0LiBZb3UgZG8gbm90IG5lZWQgdG8gY2FsbCB0aGlzIGZ1bmN0
aW9uIGF0IHNodXRkb3duLiBVbmRlciBub3JtYWwgCisgICAgICAgKiBjaXJjdW1zdGFuY2VzIHRo
ZSBjb21wb3NpdG9yIHdpbGwgbWFuYWdlIGl0cyBvd24gbGlmZSBjeWNsZSBiYXNlZCBvbiB3aGF0
IGFwcGxpY2F0aW9ucyBhcmUgcnVubmluZy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9z
aXRvclF1aXQoKSA9IDA7CisgICAgICAgCisgICAgICAgLyoqIFJldHVybiB3aGV0aGVyIHRoZSBj
b21wb3NpdG9yIGlzIGZ1bGxzY3JlZW4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgSXNGdWxsc2Ny
ZWVuKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHByb2Nlc3MgSUQgb2YgdGhlIHBy
b2Nlc3MgdGhhdCBpcyBjdXJyZW50bHkgcmVuZGVyaW5nIHRoZSBzY2VuZSAqLworICAgICAgIHZp
cnR1YWwgdWludDMyX3QgR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkgPSAwOworCisgICAg
ICAgLyoqIFJldHVybnMgdGhlIHByb2Nlc3MgSUQgb2YgdGhlIHByb2Nlc3MgdGhhdCByZW5kZXJl
ZCB0aGUgbGFzdCBmcmFtZSAob3IgMCBpZiB0aGUgY29tcG9zaXRvciBpdHNlbGYgcmVuZGVyZWQg
dGhlIGZyYW1lLikKKyAgICAgICAqIFJldHVybnMgMCB3aGVuIGZhZGluZyBvdXQgZnJvbSBhbiBh
cHAgYW5kIHRoZSBhcHAncyBwcm9jZXNzIElkIHdoZW4gZmFkaW5nIGludG8gYW4gYXBwLiAqLwor
ICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0TGFzdEZyYW1lUmVuZGVyZXIoKSA9IDA7CisKKyAg
ICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaGFzIHRoZSBzY2Vu
ZSBmb2N1cyAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDYW5SZW5kZXJTY2VuZSgpID0gMDsKKwor
ICAgICAgIC8qKiBDcmVhdGVzIGEgd2luZG93IG9uIHRoZSBwcmltYXJ5IG1vbml0b3IgdG8gZGlz
cGxheSB3aGF0IGlzIGJlaW5nIHNob3duIGluIHRoZSBoZWFkc2V0LiAqLworICAgICAgIHZpcnR1
YWwgdm9pZCBTaG93TWlycm9yV2luZG93KCkgPSAwOworCisgICAgICAgLyoqIENsb3NlcyB0aGUg
bWlycm9yIHdpbmRvdy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgSGlkZU1pcnJvcldpbmRvdygp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIG1pcnJvciB3aW5kb3cgaXMg
c2hvd24uICovCisgICAgICAgdmlydHVhbCBib29sIElzTWlycm9yV2luZG93VmlzaWJsZSgpID0g
MDsKKworICAgICAgIC8qKiBXcml0ZXMgYWxsIGltYWdlcyB0aGF0IHRoZSBjb21wb3NpdG9yIGtu
b3dzIGFib3V0IChpbmNsdWRpbmcgb3ZlcmxheXMpIHRvIGEgJ3NjcmVlbnNob3RzJyBmb2xkZXIg
aW4gdGhlIFN0ZWFtVlIgcnVudGltZSByb290LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21w
b3NpdG9yRHVtcEltYWdlcygpID0gMDsKKworICAgICAgIC8qKiBMZXQgYW4gYXBwIGtub3cgaXQg
c2hvdWxkIGJlIHJlbmRlcmluZyB3aXRoIGxvdyByZXNvdXJjZXMuICovCisgICAgICAgdmlydHVh
bCBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKSA9IDA7CisKKyAgICAgICAv
KiogT3ZlcnJpZGUgaW50ZXJsZWF2ZWQgcmVwcm9qZWN0aW9uIGxvZ2ljIHRvIGZvcmNlIG9uLiAq
LworICAgICAgIHZpcnR1YWwgdm9pZCBGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24oIGJv
b2wgYk92ZXJyaWRlICkgPSAwOworCisgICAgICAgLyoqIEZvcmNlIHJlY29ubmVjdGluZyB0byB0
aGUgY29tcG9zaXRvciBwcm9jZXNzLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGb3JjZVJlY29u
bmVjdFByb2Nlc3MoKSA9IDA7CisKKyAgICAgICAvKiogVGVtcG9yYXJpbHkgc3VzcGVuZHMgcmVu
ZGVyaW5nICh1c2VmdWwgZm9yIGZpbmVyIGNvbnRyb2wgb3ZlciBzY2VuZSB0cmFuc2l0aW9ucyku
ICovCisgICAgICAgdmlydHVhbCB2b2lkIFN1c3BlbmRSZW5kZXJpbmcoIGJvb2wgYlN1c3BlbmQg
KSA9IDA7CisKKyAgICAgICAvKiogT3BlbnMgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSB3aXRoIHRo
ZSB1bmRpc3RvcnRlZCBjb21wb3NpdGVkIGltYWdlIGZvciBlYWNoIGV5ZS4gIFVzZSBSZWxlYXNl
TWlycm9yVGV4dHVyZUQzRDExIHdoZW4gZmluaXNoZWQKKyAgICAgICAqIGluc3RlYWQgb2YgY2Fs
bGluZyBSZWxlYXNlIG9uIHRoZSByZXNvdXJjZSBpdHNlbGYuICovCisgICAgICAgdmlydHVhbCB2
cjo6RVZSQ29tcG9zaXRvckVycm9yIEdldE1pcnJvclRleHR1cmVEM0QxMSggdnI6OkVWUkV5ZSBl
RXllLCB2b2lkICpwRDNEMTFEZXZpY2VPclJlc291cmNlLCB2b2lkICoqcHBEM0QxMVNoYWRlclJl
c291cmNlVmlldyApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsZWFzZU1pcnJvclRleHR1
cmVEM0QxMSggdm9pZCAqcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICkgPSAwOworCisgICAgICAg
LyoqIEFjY2VzcyB0byBtaXJyb3IgdGV4dHVyZXMgZnJvbSBPcGVuR0wuICovCisgICAgICAgdmly
dHVhbCB2cjo6RVZSQ29tcG9zaXRvckVycm9yIEdldE1pcnJvclRleHR1cmVHTCggdnI6OkVWUkV5
ZSBlRXllLCB2cjo6Z2xVSW50X3QgKnBnbFRleHR1cmVJZCwgdnI6OmdsU2hhcmVkVGV4dHVyZUhh
bmRsZV90ICpwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9v
bCBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlKCB2cjo6Z2xVSW50X3QgZ2xUZXh0dXJlSWQsIHZyOjpn
bFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAg
ICAgdmlydHVhbCB2b2lkIExvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoIHZyOjpnbFNoYXJl
ZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmly
dHVhbCB2b2lkIFVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4
dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKworICAgICAgIC8qKiBb
VnVsa2FuIE9ubHldCisgICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhl
IGxlbmd0aCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3Ry
aW5nIGluY2x1ZGluZyB0aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdp
bGwgYmUgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZi1yZXF1aXJlZCBpbnN0YW5jZSBleHRlbnNp
b25zIHRvIGVuYWJsZSBpbiBWa0NyZWF0ZUluc3RhbmNlICovCisgICAgICAgdmlydHVhbCB1aW50
MzJfdCBHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCggVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7CisKKyAgICAgICAv
KiogW1Z1bGthbiBvbmx5XQorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5z
IHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlz
IHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiAgVGhlIHN0cmlu
ZyB3aWxsIGJlIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgcmVxdWlyZWQgZGV2aWNlIGV4dGVu
c2lvbnMgdG8gZW5hYmxlIGluIFZrQ3JlYXRlRGV2aWNlICovCisgICAgICAgdmlydHVhbCB1aW50
MzJfdCBHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQoIFZrUGh5c2ljYWxEZXZpY2Vf
VCAqcFBoeXNpY2FsRGV2aWNlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQz
Ml90IHVuQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBbIFZ1bGthbi9EM0QxMiBPbmx5
IF0KKyAgICAgICAqIFRoZXJlIGFyZSB0d28gcHVycG9zZXMgZm9yIFNldEV4cGxpY2l0VGltaW5n
TW9kZToKKyAgICAgICAqICAgICAgIDEuIFRvIGdldCBhIG1vcmUgYWNjdXJhdGUgR1BVIHRpbWVz
dGFtcCBmb3Igd2hlbiB0aGUgZnJhbWUgYmVnaW5zIGluIFZ1bGthbi9EM0QxMiBhcHBsaWNhdGlv
bnMuCisgICAgICAgKiAgICAgICAyLiAoT3B0aW9uYWwpIFRvIGF2b2lkIGhhdmluZyBXYWl0R2V0
UG9zZXMgYWNjZXNzIHRoZSBWdWxrYW4gcXVldWUgc28gdGhhdCB0aGUgcXVldWUgY2FuIGJlIGFj
Y2Vzc2VkIGZyb20KKyAgICAgICAqICAgICAgIGFub3RoZXIgdGhyZWFkIHdoaWxlIFdhaXRHZXRQ
b3NlcyBpcyBleGVjdXRpbmcuCisgICAgICAgKgorICAgICAgICogTW9yZSBhY2N1cmF0ZSBHUFUg
dGltZXN0YW1wIGZvciB0aGUgc3RhcnQgb2YgdGhlIGZyYW1lIGlzIGFjaGlldmVkIGJ5IHRoZSBh
cHBsaWNhdGlvbiBjYWxsaW5nCisgICAgICAgKiBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgaW1t
ZWRpYXRlbHkgYmVmb3JlIGl0cyBmaXJzdCBzdWJtaXNzaW9uIHRvIHRoZSBWdWxrYW4vRDNEMTIg
cXVldWUuCisgICAgICAgKiBUaGlzIGlzIG1vcmUgYWNjdXJhdGUgYmVjYXVzZSBub3JtYWxseSB0
aGlzIEdQVSB0aW1lc3RhbXAgaXMgcmVjb3JkZWQgZHVyaW5nIFdhaXRHZXRQb3Nlcy4gIEluIEQz
RDExLCAKKyAgICAgICAqIFdhaXRHZXRQb3NlcyBxdWV1ZXMgYSBHUFUgdGltZXN0YW1wIHdyaXRl
LCBidXQgaXQgZG9lcyBub3QgYWN0dWFsbHkgZ2V0IHN1Ym1pdHRlZCB0byB0aGUgR1BVIHVudGls
IHRoZSAKKyAgICAgICAqIGFwcGxpY2F0aW9uIGZsdXNoZXMuICBCeSB1c2luZyBTdWJtaXRFeHBs
aWNpdFRpbWluZ0RhdGEsIHRoZSB0aW1lc3RhbXAgaXMgcmVjb3JkZWQgYXQgdGhlIHNhbWUgcGxh
Y2UgZm9yIAorICAgICAgICogVnVsa2FuL0QzRDEyIGFzIGl0IGlzIGZvciBEM0QxMSwgcmVzdWx0
aW5nIGluIGEgbW9yZSBhY2N1cmF0ZSBHUFUgdGltZSBtZWFzdXJlbWVudCBmb3IgdGhlIGZyYW1l
LgorICAgICAgICoKKyAgICAgICAqIEF2b2lkaW5nIFdhaXRHZXRQb3NlcyBhY2Nlc3NpbmcgdGhl
IFZ1bGthbiBxdWV1ZSBjYW4gYmUgYWNoaWV2ZWQgdXNpbmcgU2V0RXhwbGljaXRUaW1pbmdNb2Rl
IGFzIHdlbGwuICBJZiB0aGlzIGlzIGRlc2lyZWQsCisgICAgICAgKiB0aGUgYXBwbGljYXRpb24g
Kk1VU1QqIGNhbGwgUG9zdFByZXNlbnRIYW5kb2ZmIGl0c2VsZiBwcmlvciB0byBXYWl0R2V0UG9z
ZXMuICBJZiBTZXRFeHBsaWNpdFRpbWluZ01vZGUgaXMgdHJ1ZSBhbmQgdGhlCisgICAgICAgKiBh
cHBsaWNhdGlvbiBjYWxscyBQb3N0UHJlc2VudEhhbmRvZmYsIHRoZW4gV2FpdEdldFBvc2VzIGlz
IGd1YXJhbnRlZWQgbm90IHRvIGFjY2VzcyB0aGUgcXVldWUuICBOb3RlIHRoYXQgUG9zdFByZXNl
bnRIYW5kb2ZmCisgICAgICAgKiBhbmQgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhIHdpbGwgYWNj
ZXNzIHRoZSBxdWV1ZSwgc28gb25seSBXYWl0R2V0UG9zZXMgYmVjb21lcyBzYWZlIGZvciBhY2Nl
c3NpbmcgdGhlIHF1ZXVlIGZyb20gYW5vdGhlcgorICAgICAgICogdGhyZWFkLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBTZXRFeHBsaWNpdFRpbWluZ01vZGUoIGJvb2wgYkV4cGxpY2l0VGltaW5n
TW9kZSApID0gMDsKKworICAgICAgIC8qKiBbIFZ1bGthbi9EM0QxMiBPbmx5IF0KKyAgICAgICAq
IFN1Ym1pdCBleHBsaWNpdCB0aW1pbmcgZGF0YS4gIFdoZW4gU2V0RXhwbGljaXRUaW1pbmdNb2Rl
IGlzIHRydWUsIHRoaXMgbXVzdCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICAg
KiB0aGUgYXBwbGljYXRpb24ncyBmaXJzdCB2a1F1ZXVlU3VibWl0IChWdWxrYW4pIG9yIElEM0Qx
MkNvbW1hbmRRdWV1ZTo6RXhlY3V0ZUNvbW1hbmRMaXN0cyAoRDNEMTIpIG9mIGVhY2ggZnJhbWUu
CisgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5zZXJ0IGEgR1BVIHRpbWVzdGFtcCB3cml0
ZSBqdXN0IGJlZm9yZSB0aGUgYXBwbGljYXRpb24gc3RhcnRzIGl0cyByZW5kZXJpbmcuICBUaGlz
IGZ1bmN0aW9uCisgICAgICAgKiB3aWxsIHBlcmZvcm0gYSB2a1F1ZXVlU3VibWl0IG9uIFZ1bGth
biBzbyBtdXN0IG5vdCBiZSBkb25lIHNpbXVsdGFuZW91c2x5IHdpdGggVmtRdWV1ZSBvcGVyYXRp
b25zIG9uIGFub3RoZXIgdGhyZWFkLgorICAgICAgICogUmV0dXJucyBWUkNvbXBvc2l0b3JFcnJv
cl9SZXF1ZXN0RmFpbGVkIGlmIFNldEV4cGxpY2l0VGltaW5nTW9kZSBpcyBub3QgZW5hYmxlZC4g
Ki8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTdWJtaXRFeHBsaWNpdFRpbWlu
Z0RhdGEoKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNvbXBvc2l0
b3JfVmVyc2lvbiA9ICJJVlJDb21wb3NpdG9yXzAyMSI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisK
KworCisvLyBpdnJub3RpZmljYXRpb25zLmgKK25hbWVzcGFjZSB2cgoreworCisjcHJhZ21hIHBh
Y2soIHB1c2gsIDggKQorCisvLyBVc2VkIGZvciBwYXNzaW5nIGdyYXBoaWMgZGF0YQorc3RydWN0
IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgTm90aWZpY2F0aW9uQml0bWFwX3QoKQor
ICAgICAgICAgICAgICA6IG1fcEltYWdlRGF0YSggbnVsbHB0ciApCisgICAgICAgICAgICAgICwg
bV9uV2lkdGgoIDAgKQorICAgICAgICAgICAgICAsIG1fbkhlaWdodCggMCApCisgICAgICAgICAg
ICAgICwgbV9uQnl0ZXNQZXJQaXhlbCggMCApCisgICAgICAgeworICAgICAgIH07CisKKyAgICAg
ICB2b2lkICptX3BJbWFnZURhdGE7CisgICAgICAgaW50MzJfdCBtX25XaWR0aDsKKyAgICAgICBp
bnQzMl90IG1fbkhlaWdodDsKKyAgICAgICBpbnQzMl90IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9Owor
CisKKy8qKiBCZSBhd2FyZSB0aGF0IHRoZSBub3RpZmljYXRpb24gdHlwZSBpcyB1c2VkIGFzICdw
cmlvcml0eScgdG8gcGljayB0aGUgbmV4dCBub3RpZmljYXRpb24gKi8KK2VudW0gRVZSTm90aWZp
Y2F0aW9uVHlwZQoreworICAgICAgIC8qKiBUcmFuc2llbnQgbm90aWZpY2F0aW9ucyBhcmUgYXV0
b21hdGljYWxseSBoaWRkZW4gYWZ0ZXIgYSBwZXJpb2Qgb2YgdGltZSBzZXQgYnkgdGhlIHVzZXIu
IAorICAgICAgICogVGhleSBhcmUgdXNlZCBmb3IgdGhpbmdzIGxpa2UgaW5mb3JtYXRpb24gYW5k
IGNoYXQgbWVzc2FnZXMgdGhhdCBkbyBub3QgcmVxdWlyZSB1c2VyIGludGVyYWN0aW9uLiAqLwor
ICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50ID0gMCwKKworICAgICAgIC8qKiBQ
ZXJzaXN0ZW50IG5vdGlmaWNhdGlvbnMgYXJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZXkg
YXJlIGhpZGRlbiBieSBjYWxsaW5nIFJlbW92ZU5vdGlmaWNhdGlvbigpLgorICAgICAgICogVGhl
eSBhcmUgdXNlZCBmb3IgdGhpbmdzIGxpa2UgcGhvbmUgY2FsbHMgYW5kIGFsYXJtcyB0aGF0IHJl
cXVpcmUgdXNlciBpbnRlcmFjdGlvbi4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1Bl
cnNpc3RlbnQgPSAxLAorCisgICAgICAgLyoqIFN5c3RlbSBub3RpZmljYXRpb25zIGFyZSBzaG93
biBubyBtYXR0ZXIgd2hhdC4gSXQgaXMgZXhwZWN0ZWQsIHRoYXQgdGhlIHVsVXNlclZhbHVlIGlz
IHVzZWQgYXMgSUQuCisgICAgICAgICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHN5c3RlbSBub3Rp
ZmljYXRpb24gaW4gdGhlIHF1ZXVlIHdpdGggdGhhdCBJRCBpdCBpcyBub3QgYWNjZXB0ZWQgaW50
byB0aGUgcXVldWUKKyAgICAgICAgKiB0byBwcmV2ZW50IHNwYW1taW5nIHdpdGggc3lzdGVtIG5v
dGlmaWNhdGlvbiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3Rl
bVdpdGhVc2VyVmFsdWUgPSAyLAorfTsKKworZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQorewor
ICAgICAgIC8qKiBDcmVhdGVzIGEgbm90aWZpY2F0aW9uIHdpdGggbWluaW1hbCBleHRlcm5hbCBz
dHlsaW5nLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX05vbmUgPSAwLAorCisgICAg
ICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQgb3ZlcmxheS1sZXZlbCBzdGF0dXMu
IEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZXZlbnRzIGxpa2UgZG93bmxvYWRzIGNvbXBsZXRp
bmcuICovCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24gPSAxMDAsCisK
KyAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0cyB0aGF0IGFy
ZSB1bmtub3duIG9yIG5vdCBhdmFpbGFibGUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJp
ZW5kIGludml0YXRpb25zIGFuZCBvZmZsaW5lIGZyaWVuZHMuICovCisgICAgICAgRVZSTm90aWZp
Y2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCA9IDIwMCwKKworICAgICAgIC8qKiBVc2VkIGZv
ciBub3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQgYXJlIGF2YWlsYWJsZSBidXQgaW5h
Y3RpdmUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJpZW5kcyB0aGF0IGFyZSBvbmxpbmUg
YnV0IG5vdCBwbGF5aW5nIGEgZ2FtZS4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9D
b250YWN0X0VuYWJsZWQgPSAyMDEsCisKKyAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9u
cyBhYm91dCBjb250YWN0cyB0aGF0IGFyZSBhdmFpbGFibGUgYW5kIGFjdGl2ZS4gSW4gU3RlYW0g
dGhpcyBpcyB1c2VkIGZvciBmcmllbmRzIHRoYXQgYXJlIG9ubGluZSBhbmQgY3VycmVudGx5IHJ1
bm5pbmcgYSBnYW1lLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfQWN0
aXZlID0gMjAyLAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Ob3RpZmljYXRpb25U
ZXh0TWF4U2l6ZSA9IDI1NjsKKwordHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOwor
CisKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCisvKiogQWxsb3dzIG5vdGlmaWNhdGlvbiBzb3Vy
Y2VzIHRvIGludGVyYWN0IHdpdGggdGhlIFZSIHN5c3RlbQorICAgICAgIFRoaXMgY3VycmVudCBp
bnRlcmZhY2UgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4gRG8gbm90IHVzZSB5ZXQuICovCitjbGFz
cyBJVlJOb3RpZmljYXRpb25zCit7CitwdWJsaWM6CisgICAgICAgLyoqIENyZWF0ZSBhIG5vdGlm
aWNhdGlvbiBhbmQgZW5xdWV1ZSBpdCB0byBiZSBzaG93biB0byB0aGUgdXNlci4KKyAgICAgICAq
IEFuIG92ZXJsYXkgaGFuZGxlIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIG5vdGlmaWNhdGlvbiwg
YXMgb3RoZXJ3aXNlIGl0IHdvdWxkIGJlIGltcG9zc2libGUgZm9yIGEgdXNlciB0byBhY3Qgb24g
aXQuCisgICAgICAgKiBUbyBjcmVhdGUgYSB0d28tbGluZSBub3RpZmljYXRpb24sIHVzZSBhIGxp
bmUgYnJlYWsgKCdcbicpIHRvIHNwbGl0IHRoZSB0ZXh0IGludG8gdHdvIGxpbmVzLgorICAgICAg
ICogVGhlIHBJbWFnZSBhcmd1bWVudCBtYXkgYmUgTlVMTCwgaW4gd2hpY2ggY2FzZSB0aGUgc3Bl
Y2lmaWVkIG92ZXJsYXkncyBpY29uIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLiAqLworICAgICAgIHZp
cnR1YWwgRVZSTm90aWZpY2F0aW9uRXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQ2NF90IHVsVXNlclZhbHVlLCBFVlJOb3RpZmlj
YXRpb25UeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFRleHQsIEVWUk5vdGlmaWNhdGlvblN0eWxl
IHN0eWxlLCBjb25zdCBOb3RpZmljYXRpb25CaXRtYXBfdCAqcEltYWdlLCAvKiBvdXQgKi8gVlJO
b3RpZmljYXRpb25JZCAqcE5vdGlmaWNhdGlvbklkICkgPSAwOworCisgICAgICAgLyoqIERlc3Ry
b3kgYSBub3RpZmljYXRpb24sIGhpZGluZyBpdCBmaXJzdCBpZiBpdCBjdXJyZW50bHkgc2hvd24g
dG8gdGhlIHVzZXIuICovCisgICAgICAgdmlydHVhbCBFVlJOb3RpZmljYXRpb25FcnJvciBSZW1v
dmVOb3RpZmljYXRpb24oIFZSTm90aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQgKSA9IDA7CisK
K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSTm90aWZpY2F0aW9uc19WZXJzaW9u
ID0gIklWUk5vdGlmaWNhdGlvbnNfMDAyIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8v
IGl2cm92ZXJsYXkuaAorbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICAvKiogVGhlIG1heGltdW0g
bGVuZ3RoIG9mIGFuIG92ZXJsYXkga2V5IGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRp
bmcgbnVsbCBjaGFyYWN0ZXIuICovCisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5W
Uk92ZXJsYXlNYXhLZXlMZW5ndGggPSAxMjg7CisKKyAgICAgICAvKiogVGhlIG1heGltdW0gbGVu
Z3RoIG9mIGFuIG92ZXJsYXkgbmFtZSBpbiBieXRlcywgY291bnRpbmcgdGhlIHRlcm1pbmF0aW5n
IG51bGwgY2hhcmFjdGVyLiAqLworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVlJP
dmVybGF5TWF4TmFtZUxlbmd0aCA9IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBudW1i
ZXIgb2Ygb3ZlcmxheXMgdGhhdCBjYW4gZXhpc3QgaW4gdGhlIHN5c3RlbSBhdCBvbmUgdGltZS4g
Ki8KKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heE92ZXJsYXlDb3VudCA9IDY0
OworCisgICAgICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvdmVybGF5IGludGVyc2VjdGlv
biBtYXNrIHByaW1pdGl2ZXMgcGVyIG92ZXJsYXkgKi8KKyAgICAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bk1heE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlc0NvdW50ID0gMzI7
CisKKyAgICAgICAvKiogVHlwZXMgb2YgaW5wdXQgc3VwcG9ydGVkIGJ5IFZSIE92ZXJsYXlzICov
CisgICAgICAgZW51bSBWUk92ZXJsYXlJbnB1dE1ldGhvZAorICAgICAgIHsKKyAgICAgICAgICAg
ICAgVlJPdmVybGF5SW5wdXRNZXRob2RfTm9uZSAgICAgICAgICAgICAgPSAwLCAvLyBObyBpbnB1
dCBldmVudHMgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmb3IgdGhpcyBvdmVybGF5
CisgICAgICAgICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNlICAgICAgICAgICAgICA9
IDEsIC8vIFRyYWNrZWQgY29udHJvbGxlcnMgd2lsbCBnZXQgbW91c2UgZXZlbnRzIGF1dG9tYXRp
Y2FsbHkKKyAgICAgICB9OworCisgICAgICAgLyoqIEFsbG93cyB0aGUgY2FsbGVyIHRvIGZpZ3Vy
ZSBvdXQgd2hpY2ggb3ZlcmxheSB0cmFuc2Zvcm0gZ2V0dGVyIHRvIGNhbGwuICovCisgICAgICAg
ZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlCisgICAgICAgeworICAgICAgICAgICAgICBWUk92
ZXJsYXlUcmFuc2Zvcm1fQWJzb2x1dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMCwKKyAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxh
dGl2ZSAgICAgICA9IDEsCisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9TeXN0ZW1P
dmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgICAgICAgICBWUk92ZXJsYXlU
cmFuc2Zvcm1fVHJhY2tlZENvbXBvbmVudCAgICAgICAgICAgICAgID0gMywKKyAgICAgICB9Owor
CisgICAgICAgLyoqIE92ZXJsYXkgY29udHJvbCBzZXR0aW5ncyAqLworICAgICAgIGVudW0gVlJP
dmVybGF5RmxhZ3MKKyAgICAgICB7CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05vbmUg
ICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2lu
ZyBvbmx5IHRha2UgZWZmZWN0IHdoZW4gcmVuZGVyZWQgdXNpbmcgdGhlIGhpZ2ggcXVhbGl0eSBy
ZW5kZXIgcGF0aCAoc2VlIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSkuCisgICAgICAgICAgICAgIFZS
T3ZlcmxheUZsYWdzX0N1cnZlZCAgICAgICAgICAgICAgPSAxLAorICAgICAgICAgICAgICBWUk92
ZXJsYXlGbGFnc19SR1NTNFggICAgICAgICAgICAgID0gMiwKKworICAgICAgICAgICAgICAvLyBT
ZXQgdGhpcyBmbGFnIG9uIGEgZGFzaGJvYXJkIG92ZXJsYXkgdG8gcHJldmVudCBhIHRhYiBmcm9t
IHNob3dpbmcgdXAgZm9yIHRoYXQgb3ZlcmxheQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFn
c19Ob0Rhc2hib2FyZFRhYiA9IDMsCisKKyAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZmxhZyBv
biBhIGRhc2hib2FyZCB0aGF0IGlzIGFibGUgdG8gZGVhbCB3aXRoIGdhbWVwYWQgZm9jdXMgZXZl
bnRzCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX0FjY2VwdHNHYW1lcGFkRXZlbnRzID0g
NCwKKworICAgICAgICAgICAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgb3ZlcmxheSBzaG91bGQg
ZGltL2JyaWdodGVuIHRvIHNob3cgZ2FtZXBhZCBmb2N1cworICAgICAgICAgICAgICBWUk92ZXJs
YXlGbGFnc19TaG93R2FtZXBhZEZvY3VzID0gNSwKKworICAgICAgICAgICAgICAvLyBXaGVuIGlu
IFZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNlIHlvdSBjYW4gb3B0aW9uYWxseSBlbmFibGUgc2Vu
ZGluZyBWUlNjcm9sbF90IAorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3Jv
bGxFdmVudHMgPSA2LAorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBh
ZEV2ZW50cyA9IDcsCisKKyAgICAgICAgICAgICAgLy8gSWYgc2V0IHRoaXMgd2lsbCByZW5kZXIg
YSB2ZXJ0aWNhbCBzY3JvbGwgd2hlZWwgb24gdGhlIHByaW1hcnkgY29udHJvbGxlciwgCisgICAg
ICAgICAgICAgIC8vICBvbmx5IG5lZWRlZCBpZiBub3QgdXNpbmcgVlJPdmVybGF5RmxhZ3NfU2Vu
ZFZSU2Nyb2xsRXZlbnRzIGJ1dCB5b3Ugc3RpbGwgd2FudCB0byByZXByZXNlbnQgYSBzY3JvbGwg
d2hlZWwKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xsV2hl
ZWwgPSA4LAorCisgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgc2V0IG93bmVyc2hpcCBhbmQg
cmVuZGVyIGFjY2VzcyB0byB0aGUgb3ZlcmxheSBhcmUgdHJhbnNmZXJyZWQgCisgICAgICAgICAg
ICAgIC8vIHRvIHRoZSBuZXcgc2NlbmUgcHJvY2VzcyBvbiBhIGNhbGwgdG8gSVZSQXBwbGljYXRp
b25zOjpMYXVuY2hJbnRlcm5hbFByb2Nlc3MKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3Nf
VHJhbnNmZXJPd25lcnNoaXBUb0ludGVybmFsUHJvY2VzcyA9IDksCisKKyAgICAgICAgICAgICAg
Ly8gSWYgc2V0LCByZW5kZXJzIDUwJSBvZiB0aGUgdGV4dHVyZSBpbiBlYWNoIGV5ZSwgc2lkZSBi
eSBzaWRlCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwg
PSAxMCwgLy8gVGV4dHVyZSBpcyBsZWZ0L3JpZ2h0CisgICAgICAgICAgICAgIFZST3ZlcmxheUZs
YWdzX1NpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLCAvLyBUZXh0dXJlIGlzIGNyb3NzZWQgYW5kIHJp
Z2h0L2xlZnQKKworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSA9IDEyLCAv
LyBUZXh0dXJlIGlzIGEgcGFub3JhbWEKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU3Rl
cmVvUGFub3JhbWEgPSAxMywgLy8gVGV4dHVyZSBpcyBhIHN0ZXJlbyBwYW5vcmFtYQorCisgICAg
ICAgICAgICAgIC8vIElmIHRoaXMgaXMgc2V0IG9uIGFuIG92ZXJsYXkgb3duZWQgYnkgdGhlIHNj
ZW5lIGFwcGxpY2F0aW9uIHRoYXQgb3ZlcmxheQorICAgICAgICAgICAgICAvLyB3aWxsIGJlIHNv
cnRlZCB3aXRoIHRoZSAiT3RoZXIiIG92ZXJsYXlzIG9uIHRvcCBvZiBhbGwgb3RoZXIgc2NlbmUg
b3ZlcmxheXMKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU29ydFdpdGhOb25TY2VuZU92
ZXJsYXlzID0gMTQsCisKKyAgICAgICAgICAgICAgLy8gSWYgc2V0LCB0aGUgb3ZlcmxheSB3aWxs
IGJlIHNob3duIGluIHRoZSBkYXNoYm9hcmQsIG90aGVyd2lzZSBpdCB3aWxsIGJlIGhpZGRlbi4K
KyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkID0gMTUsCisg
ICAgICAgfTsKKworICAgICAgIGVudW0gVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlCisgICAgICAg
eworICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMCA9
IDAsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18x
ID0gMSwKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNz
XzIgPSAyLAorICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJl
c3NfMyA9IDMsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50
RmluZFN5c3RlbU92ZXJsYXkgPSA0LAorICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXk9IDUsCisgICAgICAgICAgICAg
IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9BcHBsaWNhdGlvblF1aXQgPSA2CisgICAgICAgfTsK
KworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdAorICAgICAgIHsK
KyAgICAgICAgICAgICAgSG1kVmVjdG9yM190IHZTb3VyY2U7CisgICAgICAgICAgICAgIEhtZFZl
Y3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgICAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biBlT3JpZ2luOworICAgICAgIH07CisKKyAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0
aW9uUmVzdWx0c190CisgICAgICAgeworICAgICAgICAgICAgICBIbWRWZWN0b3IzX3QgdlBvaW50
OworICAgICAgICAgICAgICBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICAgICAgICAgSG1k
VmVjdG9yMl90IHZVVnM7CisgICAgICAgICAgICAgIGZsb2F0IGZEaXN0YW5jZTsKKyAgICAgICB9
OworCisgICAgICAgLy8gSW5wdXQgbW9kZXMgZm9yIHRoZSBCaWcgUGljdHVyZSBnYW1lcGFkIHRl
eHQgZW50cnkKKyAgICAgICBlbnVtIEVHYW1lcGFkVGV4dElucHV0TW9kZQorICAgICAgIHsKKyAg
ICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgICAg
ICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkID0gMSwKKyAgICAgICAgICAgICAg
a19FR2FtZXBhZFRleHRJbnB1dE1vZGVTdWJtaXQgPSAyLAorICAgICAgIH07CisKKyAgICAgICAv
LyBDb250cm9scyBudW1iZXIgb2YgYWxsb3dlZCBsaW5lcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdh
bWVwYWQgdGV4dCBlbnRyeQorICAgICAgIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQor
ICAgICAgIHsKKyAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlU2luZ2xl
TGluZSA9IDAsCisgICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRp
cGxlTGluZXMgPSAxCisgICAgICAgfTsKKworICAgICAgIC8qKiBEaXJlY3Rpb25zIGZvciBjaGFu
Z2luZyBmb2N1cyBiZXR3ZWVuIG92ZXJsYXlzIHdpdGggdGhlIGdhbWVwYWQgKi8KKyAgICAgICBl
bnVtIEVPdmVybGF5RGlyZWN0aW9uCisgICAgICAgeworICAgICAgICAgICAgICBPdmVybGF5RGly
ZWN0aW9uX1VwID0gMCwKKyAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9Eb3duID0gMSwK
KyAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9MZWZ0ID0gMiwKKyAgICAgICAgICAgICAg
T3ZlcmxheURpcmVjdGlvbl9SaWdodCA9IDMsCisgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICBPdmVybGF5RGlyZWN0aW9uX0NvdW50ID0gNCwKKyAgICAgICB9OworCisgICAgICAgZW51bSBF
VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUKKyAgICAgICB7CisgICAgICAg
ICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSwKKyAgICAg
ICAgICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlLAorICAgICAg
IH07CisKKyAgICAgICBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90CisgICAgICAg
eworICAgICAgICAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFg7CisgICAgICAgICAgICAgIGZsb2F0
IG1fZmxUb3BMZWZ0WTsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFdpZHRoOworICAgICAgICAg
ICAgICBmbG9hdCBtX2ZsSGVpZ2h0OworICAgICAgIH07CisKKyAgICAgICBzdHJ1Y3QgSW50ZXJz
ZWN0aW9uTWFza0NpcmNsZV90CisgICAgICAgeworICAgICAgICAgICAgICBmbG9hdCBtX2ZsQ2Vu
dGVyWDsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbENlbnRlclk7CisgICAgICAgICAgICAgIGZs
b2F0IG1fZmxSYWRpdXM7CisgICAgICAgfTsKKworICAgICAgIC8qKiBOT1RFISEhIElmIHlvdSBj
aGFuZ2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkg
YW5kIG9wZW52cl9hcGlfZmxhdC5oLnB5ICovCisgICAgICAgdHlwZWRlZiB1bmlvbgorICAgICAg
IHsKKyAgICAgICAgICAgICAgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1fUmVjdGFuZ2xl
OworICAgICAgICAgICAgICBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QgbV9DaXJjbGU7CisgICAg
ICAgfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdDsKKworICAgICAg
IHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZSBtX25Q
cmltaXRpdmVUeXBlOworICAgICAgICAgICAgICBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlX0RhdGFfdCBtX1ByaW1pdGl2ZTsKKyAgICAgICB9OworCisgICAgICAgY2xhc3MgSVZS
T3ZlcmxheQorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg
IC8vIE92ZXJsYXkgbWFuYWdlbWVudCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8q
KiBGaW5kcyBhbiBleGlzdGluZyBvdmVybGF5IHdpdGggdGhlIHNwZWNpZmllZCBrZXkuICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEZpbmRPdmVybGF5KCBjb25zdCBj
aGFyICpwY2hPdmVybGF5S2V5LCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBDcmVhdGVzIGEgbmV3IG5hbWVkIG92ZXJsYXkuIEFs
bCBvdmVybGF5cyBzdGFydCBoaWRkZW4gYW5kIHdpdGggZGVmYXVsdCBzZXR0aW5ncy4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlT3ZlcmxheSggY29uc3Qg
Y2hhciAqcGNoT3ZlcmxheUtleSwgY29uc3QgY2hhciAqcGNoT3ZlcmxheU5hbWUsIFZST3Zlcmxh
eUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIERl
c3Ryb3lzIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gV2hlbiBhbiBhcHBsaWNhdGlvbiBjYWxscyBW
Ul9TaHV0ZG93biBhbGwgb3ZlcmxheXMgY3JlYXRlZCBieSB0aGF0IGFwcCBhcmUKKyAgICAgICAg
ICAgICAgKiBhdXRvbWF0aWNhbGx5IGRlc3Ryb3llZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgRGVzdHJveU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU3BlY2lmeSB3aGljaCBvdmVy
bGF5IHRvIHVzZSB0aGUgaGlnaCBxdWFsaXR5IHJlbmRlciBwYXRoLiAgVGhpcyBvdmVybGF5IHdp
bGwgYmUgY29tcG9zaXRlZCBpbiBkdXJpbmcgdGhlIGRpc3RvcnRpb24gcGFzcyB3aGljaAorICAg
ICAgICAgICAgICAqIHJlc3VsdHMgaW4gaXQgZHJhd2luZyBvbiB0b3Agb2YgZXZlcnl0aGluZyBl
bHNlLCBidXQgYWxzbyBhdCBhIGhpZ2hlciBxdWFsaXR5IGFzIGl0IHNhbXBsZXMgdGhlIHNvdXJj
ZSB0ZXh0dXJlIGRpcmVjdGx5IHJhdGhlciB0aGFuCisgICAgICAgICAgICAgICogcmFzdGVyaXpp
bmcgaW50byBlYWNoIGV5ZSdzIHJlbmRlciB0ZXh0dXJlIGZpcnN0LiAgQmVjYXVzZSBpZiB0aGlz
LCBvbmx5IG9uZSBvZiB0aGVzZSBpcyBzdXBwb3J0ZWQgYXQgYW55IGdpdmVuIHRpbWUuICBJdCBp
cyBtb3N0IHVzZWZ1bAorICAgICAgICAgICAgICAqIGZvciBvdmVybGF5cyB0aGF0IGFyZSBleHBl
Y3RlZCB0byB0YWtlIHVwIG1vc3Qgb2YgdGhlIHVzZXIncyB2aWV3IChlLmcuIHN0cmVhbWluZyB2
aWRlbykuCisgICAgICAgICAgICAgICogVGhpcyBtb2RlIGRvZXMgbm90IHN1cHBvcnQgbW91c2Ug
aW5wdXQgdG8geW91ciBvdmVybGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBTZXRIaWdoUXVhbGl0eU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgb3ZlcmxheSBo
YW5kbGUgb2YgdGhlIGN1cnJlbnQgb3ZlcmxheSBiZWluZyByZW5kZXJlZCB1c2luZyB0aGUgc2lu
Z2xlIGhpZ2ggcXVhbGl0eSBvdmVybGF5IHJlbmRlciBwYXRoLgorICAgICAgICAgICAgICAqIE90
aGVyd2lzZSBpdCB3aWxsIHJldHVybiBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQuICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgdnI6OlZST3ZlcmxheUhhbmRsZV90IEdldEhpZ2hRdWFsaXR5T3Zl
cmxheSgpID0gMDsKKworICAgICAgICAgICAgICAvKiogRmlsbHMgdGhlIHByb3ZpZGVkIGJ1ZmZl
ciB3aXRoIHRoZSBzdHJpbmcga2V5IG9mIHRoZSBvdmVybGF5LiBSZXR1cm5zIHRoZSBzaXplIG9m
IGJ1ZmZlciByZXF1aXJlZCB0byBzdG9yZSB0aGUga2V5LCBpbmNsdWRpbmcKKyAgICAgICAgICAg
ICAgKiB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuIGtfdW5WUk92ZXJsYXlNYXhLZXlM
ZW5ndGggd2lsbCBiZSBlbm91Z2ggYnl0ZXMgdG8gZml0IHRoZSBzdHJpbmcuICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3ZlcmxheUtleSggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90
IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogRmlsbHMgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3aXRoIHRoZSBmcmllbmRs
eSBuYW1lIG9mIHRoZSBvdmVybGF5LiBSZXR1cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciByZXF1aXJl
ZCB0byBzdG9yZSB0aGUga2V5LCBpbmNsdWRpbmcKKyAgICAgICAgICAgICAgKiB0aGUgdGVybWlu
YXRpbmcgbnVsbCBjaGFyYWN0ZXIuIGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoIHdpbGwgYmUg
ZW5vdWdoIGJ5dGVzIHRvIGZpdCB0aGUgc3RyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldE92ZXJsYXlOYW1lKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXpl
LCBFVlJPdmVybGF5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBzZXQgdGhlIG5hbWUgdG8gdXNlIGZvciB0aGlzIG92ZXJsYXkgKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheU5hbWUoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgY2hhciAqcGNoTmFtZSApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogR2V0cyB0aGUgcmF3IGltYWdlIGRhdGEgZnJvbSBhbiBvdmVybGF5LiBPdmVybGF5
IGltYWdlIGRhdGEgaXMgYWx3YXlzIHJldHVybmVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIg
cGl4ZWwuIElmIHRoZSBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgd2lkdGggYW5kIGhlaWdo
dCAKKyAgICAgICAgICAgICAgKiB3aWxsIGJlIHNldCBhbmQgVlJPdmVybGF5RXJyb3JfQXJyYXlU
b29TbWFsbCBpcyByZXR1cm5lZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUltYWdlRGF0YSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCB2b2lkICpwdkJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJTaXplLCB1aW50MzJfdCAqcHVu
V2lkdGgsIHVpbnQzMl90ICpwdW5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHJl
dHVybnMgYSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgb3Zlcmxh
eSBlcnJvci4gVGhlIHN0cmluZyB3aWxsIGJlIHRoZSBuYW1lIAorICAgICAgICAgICAgICAqIG9m
IHRoZSBlcnJvciBlbnVtIHZhbHVlIGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0o
IEVWUk92ZXJsYXlFcnJvciBlcnJvciApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8g
T3ZlcmxheSByZW5kZXJpbmcgbWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU2V0
cyB0aGUgcGlkIHRoYXQgaXMgYWxsb3dlZCB0byByZW5kZXIgdG8gdGhpcyBvdmVybGF5ICh0aGUg
Y3JlYXRvciBwaWQgaXMgYWx3YXlzIGFsbG93IHRvIHJlbmRlciksCisgICAgICAgICAgICAgICog
ICAgICAgYnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBwaWQgb2YgdGhlIHByb2Nlc3MgdGhhdCBtYWRl
IHRoZSBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlSZW5kZXJpbmdQaWQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
dWludDMyX3QgdW5QSUQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHBpZCB0
aGF0IGlzIGFsbG93ZWQgdG8gcmVuZGVyIHRvIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIHVpbnQzMl90IEdldE92ZXJsYXlSZW5kZXJpbmdQaWQoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU3BlY2lmeSBm
bGFnIHNldHRpbmcgZm9yIGEgZ2l2ZW4gb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5RmxhZyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgZmxhZyBzZXR0aW5nIGZvciBhIGdpdmVuIG92
ZXJsYXkgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zlcmxh
eUZsYWcoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3Mg
ZU92ZXJsYXlGbGFnLCBib29sICpwYkVuYWJsZWQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFNldHMgdGhlIGNvbG9yIHRpbnQgb2YgdGhlIG92ZXJsYXkgcXVhZC4gVXNlIDAuMCB0byAxLjAg
cGVyIGNoYW5uZWwuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlDb2xvciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBm
UmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBHZXRzIHRoZSBjb2xvciB0aW50IG9mIHRoZSBvdmVybGF5IHF1YWQuICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlDb2xvciggVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZSZWQsIGZsb2F0ICpwZkdyZWVuLCBmbG9h
dCAqcGZCbHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhbHBoYSBvZiB0
aGUgb3ZlcmxheSBxdWFkLiBVc2UgMS4wIGZvciAxMDAgcGVyY2VudCBvcGFjaXR5IHRvIDAuMCBm
b3IgMCBwZXJjZW50IG9wYWNpdHkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIFNldE92ZXJsYXlBbHBoYSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBmbG9hdCBmQWxwaGEgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFscGhh
IG9mIHRoZSBvdmVybGF5IHF1YWQuIEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmluZyBh
dCAxMDAgcGVyY2VudCBhbHBoYSAoMS4wKS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheUFscGhhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGZsb2F0ICpwZkFscGhhICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSBhc3BlY3QgcmF0aW8gb2YgdGhlIHRleGVscyBpbiB0aGUgb3ZlcmxheS4gMS4wIG1lYW5zIHRo
ZSB0ZXhlbHMgYXJlIHNxdWFyZS4gMi4wIG1lYW5zIHRoZSB0ZXhlbHMKKyAgICAgICAgICAgICAg
KiBhcmUgdHdpY2UgYXMgd2lkZSBhcyB0aGV5IGFyZSB0YWxsLiBEZWZhdWx0cyB0byAxLjAuICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXhlbEFz
cGVjdCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3Bl
Y3QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFzcGVjdCByYXRpbyBvZiB0
aGUgdGV4ZWxzIGluIHRoZSBvdmVybGF5LiBEZWZhdWx0cyB0byAxLjAgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICpwZlRleGVsQXNwZWN0ICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSByZW5kZXJpbmcgc29ydCBvcmRlciBmb3IgdGhl
IG92ZXJsYXkuIE92ZXJsYXlzIGFyZSByZW5kZXJlZCB0aGlzIG9yZGVyOgorICAgICAgICAgICAg
ICAqICAgICAgT3ZlcmxheXMgb3duZWQgYnkgdGhlIHNjZW5lIGFwcGxpY2F0aW9uCisgICAgICAg
ICAgICAgICogICAgICBPdmVybGF5cyBvd25lZCBieSBzb21lIG90aGVyIGFwcGxpY2F0aW9uCisg
ICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgKiAgICAgICBXaXRoaW4gYSBjYXRlZ29yeSBv
dmVybGF5cyBhcmUgcmVuZGVyZWQgbG93ZXN0IHNvcnQgb3JkZXIgdG8gaGlnaGVzdCBzb3J0IG9y
ZGVyLiBPdmVybGF5cyB3aXRoIHRoZSBzYW1lIAorICAgICAgICAgICAgICAqICAgICAgIHNvcnQg
b3JkZXIgYXJlIHJlbmRlcmVkIGJhY2sgdG8gZnJvbnQgYmFzZSBvbiBkaXN0YW5jZSBmcm9tIHRo
ZSBITUQuCisgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgKiAgICAgICBTb3J0IG9yZGVy
IGRlZmF1bHRzIHRvIDAuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlTb3J0T3JkZXIoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
dWludDMyX3QgdW5Tb3J0T3JkZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhl
IHNvcnQgb3JkZXIgb2YgdGhlIG92ZXJsYXkuIFNlZSBTZXRPdmVybGF5U29ydE9yZGVyIGZvciBo
b3cgdGhpcyB3b3Jrcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheVNvcnRPcmRlciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1
aW50MzJfdCAqcHVuU29ydE9yZGVyICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSB3aWR0aCBvZiB0aGUgb3ZlcmxheSBxdWFkIGluIG1ldGVycy4gQnkgZGVmYXVsdCBvdmVybGF5
cyBhcmUgcmVuZGVyZWQgb24gYSBxdWFkIHRoYXQgaXMgMSBtZXRlciBhY3Jvc3MgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSBvdmVy
bGF5IHF1YWQgaW4gbWV0ZXJzLiBCeSBkZWZhdWx0IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBvbiBh
IHF1YWQgdGhhdCBpcyAxIG1ldGVyIGFjcm9zcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBHZXRPdmVybGF5V2lkdGhJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZXaWR0aEluTWV0ZXJzICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBGb3IgaGlnaC1xdWFsaXR5IGN1cnZlZCBvdmVybGF5cyBvbmx5LCBzZXRzIHRo
ZSBkaXN0YW5jZSByYW5nZSBpbiBtZXRlcnMgZnJvbSB0aGUgb3ZlcmxheSB1c2VkIHRvIGF1dG9t
YXRpY2FsbHkgY3VydmUKKyAgICAgICAgICAgICAgKiB0aGUgc3VyZmFjZSBhcm91bmQgdGhlIHZp
ZXdlci4gIE1pbiBpcyBkaXN0YW5jZSBpcyB3aGVuIHRoZSBzdXJmYWNlIHdpbGwgYmUgbW9zdCBj
dXJ2ZWQuICBNYXggaXMgd2hlbiBsZWFzdCBjdXJ2ZWQuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRl
cnMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZk1pbkRpc3RhbmNl
SW5NZXRlcnMsIGZsb2F0IGZNYXhEaXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBGb3IgaGlnaC1xdWFsaXR5IGN1cnZlZCBvdmVybGF5cyBvbmx5LCBnZXRzIHRoZSBk
aXN0YW5jZSByYW5nZSBpbiBtZXRlcnMgZnJvbSB0aGUgb3ZlcmxheSB1c2VkIHRvIGF1dG9tYXRp
Y2FsbHkgY3VydmUKKyAgICAgICAgICAgICAgKiB0aGUgc3VyZmFjZSBhcm91bmQgdGhlIHZpZXdl
ci4gIE1pbiBpcyBkaXN0YW5jZSBpcyB3aGVuIHRoZSBzdXJmYWNlIHdpbGwgYmUgbW9zdCBjdXJ2
ZWQuICBNYXggaXMgd2hlbiBsZWFzdCBjdXJ2ZWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmTWluRGlzdGFuY2VJ
bk1ldGVycywgZmxvYXQgKnBmTWF4RGlzdGFuY2VJbk1ldGVycyApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogU2V0cyB0aGUgY29sb3JzcGFjZSB0aGUgb3ZlcmxheSB0ZXh0dXJlJ3MgZGF0YSBp
cyBpbi4gIERlZmF1bHRzIHRvICdhdXRvJy4KKyAgICAgICAgICAgICAgKiBJZiB0aGUgdGV4dHVy
ZSBuZWVkcyB0byBiZSByZXNvbHZlZCwgeW91IHNob3VsZCBjYWxsIFNldE92ZXJsYXlUZXh0dXJl
IHdpdGggdGhlIGFwcHJvcHJpYXRlIGNvbG9yc3BhY2UgaW5zdGVhZC4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlIGVUZXh0dXJlQ29s
b3JTcGFjZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgb3ZlcmxheSdzIGN1
cnJlbnQgY29sb3JzcGFjZSBzZXR0aW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgKnBlVGV4dHVyZUNvbG9yU3BhY2UgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHBhcnQgb2YgdGhlIHRleHR1cmUgdG8gdXNl
IGZvciB0aGUgb3ZlcmxheS4gVVYgTWluIGlzIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBhbmQgVVYg
TWF4IGlzIHRoZSBsb3dlciByaWdodCBjb3JuZXIuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXh0dXJlQm91bmRzKCBWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IFZSVGV4dHVyZUJvdW5kc190ICpwT3ZlcmxheVRleHR1
cmVCb3VuZHMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHBhcnQgb2YgdGhl
IHRleHR1cmUgdG8gdXNlIGZvciB0aGUgb3ZlcmxheS4gVVYgTWluIGlzIHRoZSB1cHBlciBsZWZ0
IGNvcm5lciBhbmQgVVYgTWF4IGlzIHRoZSBsb3dlciByaWdodCBjb3JuZXIuICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQm91bmRzKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSVGV4dHVyZUJvdW5kc190ICpwT3Zl
cmxheVRleHR1cmVCb3VuZHMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgcmVuZGVy
IG1vZGVsIHRvIGRyYXcgYmVoaW5kIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHVpbnQzMl90IEdldE92ZXJsYXlSZW5kZXJNb2RlbCggdnI6OlZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwg
SG1kQ29sb3JfdCAqcENvbG9yLCB2cjo6RVZST3ZlcmxheUVycm9yICpwRXJyb3IgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFNldHMgcmVuZGVyIG1vZGVsIHRvIGRyYXcgYmVoaW5kIHRoaXMg
b3ZlcmxheSBhbmQgdGhlIHZlcnRleCBjb2xvciB0byB1c2UsIHBhc3MgbnVsbCBmb3IgcENvbG9y
IHRvIG1hdGNoIHRoZSBvdmVybGF5cyB2ZXJ0ZXggY29sb3IuIAorICAgICAgICAgICAgICAgICAg
ICAgVGhlIG1vZGVsIGlzIHNjYWxlZCBieSB0aGUgc2FtZSBhbW91bnQgYXMgdGhlIG92ZXJsYXks
IHdpdGggYSBkZWZhdWx0IG9mIDFtLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbCwgY29uc3QgSG1kQ29s
b3JfdCAqcENvbG9yICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFu
c2Zvcm0gdHlwZSBvZiB0aGlzIG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheVRyYW5zZm9ybVR5cGUgKnBlVHJhbnNmb3JtVHlwZSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIGFic29sdXRl
IHRyYWNraW5nIG9yaWdpbi4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgY29uc3Qg
SG1kTWF0cml4MzRfdCAqcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgYWJzb2x1
dGUuIFJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUu
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFu
c2Zvcm1BYnNvbHV0ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tp
bmdVbml2ZXJzZU9yaWdpbiAqcGVUcmFja2luZ09yaWdpbiwgSG1kTWF0cml4MzRfdCAqcG1hdFRy
YWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gcmVsYXRpdmUgdG8gdGhlIHRyYW5zZm9ybSBvZiB0aGUg
c3BlY2lmaWVkIHRyYWNrZWQgZGV2aWNlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuVHJh
Y2tlZERldmljZSwgY29uc3QgSG1kTWF0cml4MzRfdCAqcG1hdFRyYWNrZWREZXZpY2VUb092ZXJs
YXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9y
bSBpZiBpdCBpcyByZWxhdGl2ZSB0byBhIHRyYWNrZWQgZGV2aWNlLiBSZXR1cm5zIGFuIGVycm9y
IGlmIHRoZSB0cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0eXBlLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJl
bGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJ
bmRleF90ICpwdW5UcmFja2VkRGV2aWNlLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmlj
ZVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUg
dHJhbnNmb3JtIHRvIGRyYXcgdGhlIG92ZXJsYXkgb24gYSByZW5kZXJtb2RlbCBjb21wb25lbnQg
bWVzaCBpbnN0ZWFkIG9mIGEgcXVhZC4gVGhpcyB3aWxsIG9ubHkgZHJhdyB3aGVuIHRoZSBzeXN0
ZW0gaXMKKyAgICAgICAgICAgICAgKiBkcmF3aW5nIHRoZSBkZXZpY2UuIE92ZXJsYXlzIHdpdGgg
dGhpcyB0cmFuc2Zvcm0gdHlwZSBjYW5ub3QgcmVjZWl2ZSBtb3VzZSBldmVudHMuICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlQ29tcG9uZW50KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNvbnN0IGNoYXIgKnBjaENvbXBvbmVu
dE5hbWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpbmZv
cm1hdGlvbiB3aGVuIHRoZSBvdmVybGF5IGlzIHJlbmRlcmluZyBvbiBhIGNvbXBvbmVudC4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VDb21wb25lbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgVHJhY2tlZERldmljZUluZGV4X3QgKnB1bkRldmljZUluZGV4LCBjaGFyICpwY2hDb21wb25l
bnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVTaXplICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgcmVsYXRpdmUgdG8gYW5vdGhlciBv
dmVybGF5LiBSZXR1cm5zIGFuIGVycm9yIGlmIHRoZSB0cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0
eXBlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheVRyYW5zZm9ybU92ZXJsYXlSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBWUk92ZXJsYXlIYW5kbGVfdCAqdWxPdmVybGF5SGFuZGxlUGFyZW50LCBIbWRNYXRy
aXgzNF90ICpwbWF0UGFyZW50T3ZlcmxheVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKKyAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gcmVsYXRp
dmUgdG8gdGhlIHRyYW5zZm9ybSBvZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkuIFRoaXMgb3Zlcmxh
eXMgdmlzaWJpbGl0eSB3aWxsIGFsc28gdHJhY2sgdGhlIHBhcmVudHMgdmlzaWJpbGl0eSAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5z
Zm9ybU92ZXJsYXlSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGVQYXJlbnQsIGNvbnN0IEhtZE1hdHJpeDM0
X3QgKnBtYXRQYXJlbnRPdmVybGF5VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBTaG93cyB0aGUgVlIgb3ZlcmxheS4gIEZvciBkYXNoYm9hcmQgb3ZlcmxheXMs
IG9ubHkgdGhlIERhc2hib2FyZCBNYW5hZ2VyIGlzIGFsbG93ZWQgdG8gY2FsbCB0aGlzLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTaG93T3ZlcmxheSggVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBI
aWRlcyB0aGUgVlIgb3ZlcmxheS4gIEZvciBkYXNoYm9hcmQgb3ZlcmxheXMsIG9ubHkgdGhlIERh
c2hib2FyZCBNYW5hZ2VyIGlzIGFsbG93ZWQgdG8gY2FsbCB0aGlzLiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBIaWRlT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUg
aWYgdGhlIG92ZXJsYXkgaXMgdmlzaWJsZS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29s
IElzT3ZlcmxheVZpc2libGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0g
MDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRoZSB0cmFuc2Zvcm0gaW4gM2Qgc3BhY2UgYXNz
b2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgMmQgcG9pbnQgaW4gdGhlIG92ZXJsYXkncyBjb29yZGlu
YXRlIHNwYWNlICh3aGVyZSAwLDAgaXMgdGhlIGxvd2VyIGxlZnQpLiAtWiBwb2ludHMgb3V0IG9m
IHRoZSBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdl
dFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIEhtZFZl
Y3RvcjJfdCBjb29yZGluYXRlc0luT3ZlcmxheSwgSG1kTWF0cml4MzRfdCAqcG1hdFRyYW5zZm9y
bSApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3ZlcmxheSBpbnB1dCBtZXRob2Rz
CisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBl
dmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRoZSBvdmVybGF5J3MgZXZlbnQgcXVldWUsIGlm
IHRoZXJlIGlzIG9uZS4gCisgICAgICAgICAgICAgICogSWYgdGhlcmUgYXJlIG5vIGV2ZW50cyB0
aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNpemUg
aW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBib29sIFBvbGxOZXh0T3ZlcmxheUV2ZW50KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgY3VycmVudCBpbnB1dCBzZXR0aW5ncyBmb3Ig
dGhlIHNwZWNpZmllZCBvdmVybGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5SW5wdXRNZXRob2QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgKnBlSW5wdXRNZXRob2QgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFNldHMgdGhlIGlucHV0IHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVk
IG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlJbnB1dE1ldGhvZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92
ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEdldHMgdGhlIG1vdXNlIHNjYWxpbmcgZmFjdG9yIHRoYXQgaXMgdXNlZCBmb3IgbW91c2UgZXZl
bnRzLiBUaGUgYWN0dWFsIHRleHR1cmUgbWF5IGJlIGEgZGlmZmVyZW50IHNpemUsIGJ1dCB0aGlz
IGlzCisgICAgICAgICAgICAgICogdHlwaWNhbGx5IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5n
IFVJIGluIHBpeGVscy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheU1vdXNlU2NhbGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
SG1kVmVjdG9yMl90ICpwdmVjTW91c2VTY2FsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgbW91c2Ugc2NhbGluZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVu
dHMuIFRoZSBhY3R1YWwgdGV4dHVyZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMg
aXMKKyAgICAgICAgICAgICAgKiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcg
VUkgaW4gcGl4ZWxzIChub3QgaW4gd29ybGQgc3BhY2UpLiAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TW91c2VTY2FsZSggVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBIbWRWZWN0b3IyX3QgKnB2ZWNNb3VzZVNjYWxlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBDb21wdXRlcyB0aGUgb3ZlcmxheS1zcGFjZSBwaXhl
bCBjb29yZGluYXRlcyBvZiB3aGVyZSB0aGUgcmF5IGludGVyc2VjdHMgdGhlIG92ZXJsYXkgd2l0
aCB0aGUKKyAgICAgICAgICAgICAgKiBzcGVjaWZpZWQgc2V0dGluZ3MuIFJldHVybnMgZmFsc2Ug
aWYgdGhlcmUgaXMgbm8gaW50ZXJzZWN0aW9uLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rpb24oIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgY29uc3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QgKnBQYXJhbXMsIFZS
T3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqcFJlc3VsdHMgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIFByb2Nlc3NlcyBtb3VzZSBpbnB1dCBmcm9tIHRoZSBzcGVjaWZpZWQgY29udHJv
bGxlciBhcyB0aG91Z2ggaXQgd2VyZSBhIG1vdXNlIHBvaW50ZWQgYXQgYSBjb21wb3NpdG9yIG92
ZXJsYXkgd2l0aCB0aGUKKyAgICAgICAgICAgICAgKiBzcGVjaWZpZWQgc2V0dGluZ3MuIFRoZSBj
b250cm9sbGVyIGlzIHRyZWF0ZWQgbGlrZSBhIGxhc2VyIHBvaW50ZXIgb24gdGhlIC16IGF4aXMu
IFRoZSBwb2ludCB3aGVyZSB0aGUgbGFzZXIgcG9pbnRlciB3b3VsZAorICAgICAgICAgICAgICAq
IGludGVyc2VjdCB3aXRoIHRoZSBvdmVybGF5IGlzIHRoZSBtb3VzZSBwb3NpdGlvbiwgdGhlIHRy
aWdnZXIgaXMgbGVmdCBtb3VzZSwgYW5kIHRoZSB0cmFjayBwYWQgaXMgcmlnaHQgbW91c2UuIAor
ICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNvbnRy
b2xsZXIgaXMgcG9pbnRlZCBhdCB0aGUgb3ZlcmxheSBhbmQgYW4gZXZlbnQgd2FzIGdlbmVyYXRl
ZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5
SW50ZXJhY3Rpb25Bc01vdXNlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRy
YWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4ICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBvdmVybGF5IGlzIHRo
ZSBob3ZlciB0YXJnZXQuIEFuIG92ZXJsYXkgaXMgdGhlIGhvdmVyIHRhcmdldCB3aGVuIGl0IGlz
IHRoZSBsYXN0IG92ZXJsYXkgIm1vdXNlZCBvdmVyIiAKKyAgICAgICAgICAgICAgKiBieSB0aGUg
dmlydHVhbCBtb3VzZSBwb2ludGVyICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0hv
dmVyVGFyZ2V0T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IEdhbWVwYWQgZm9jdXMg
b3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCBH
ZXRHYW1lcGFkRm9jdXNPdmVybGF5KCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSBjdXJyZW50IEdhbWVwYWQgZm9jdXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBTZXRHYW1lcGFkRm9jdXNPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVf
dCB1bE5ld0ZvY3VzT3ZlcmxheSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyBhbiBv
dmVybGF5J3MgbmVpZ2hib3IuIFRoaXMgd2lsbCBhbHNvIHNldCB0aGUgbmVpZ2hib3Igb2YgdGhl
ICJ0byIgb3ZlcmxheQorICAgICAgICAgICAgICAqIHRvIHBvaW50IGJhY2sgdG8gdGhlICJmcm9t
IiBvdmVybGF5LiBJZiBhbiBvdmVybGF5J3MgbmVpZ2hib3IgaXMgc2V0IHRvIGludmFsaWQgYm90
aAorICAgICAgICAgICAgICAqIGVuZHMgd2lsbCBiZSBjbGVhcmVkICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvciggRU92ZXJsYXlEaXJl
Y3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxlX3QgdWxGcm9tLCBWUk92ZXJsYXlIYW5k
bGVfdCB1bFRvICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBDaGFuZ2VzIHRoZSBHYW1lcGFk
IGZvY3VzIGZyb20gb25lIG92ZXJsYXkgdG8gb25lIG9mIGl0cyBuZWlnaGJvcnMuIFJldHVybnMg
VlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciBpZiB0aGVyZSBpcyBubworICAgICAgICAgICAgICAq
IG5laWdoYm9yIGluIHRoYXQgZGlyZWN0aW9uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
T3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlv
biBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5kbGVfdCB1bEZyb20gKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
ICAgICAgICAgICAgIC8vIE92ZXJsYXkgdGV4dHVyZSBtZXRob2RzCisgICAgICAgICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAg
ICAgICAgIC8qKiBUZXh0dXJlIHRvIGRyYXcgZm9yIHRoZSBvdmVybGF5LiBUaGlzIGZ1bmN0aW9u
IGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIGNyZWF0b3Igb3IgcmVuZGVyZXIg
cHJvY2VzcyAoc2VlIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQpIC4KKyAgICAgICAgICAgICAgKgor
ICAgICAgICAgICAgICAqIE9wZW5HTCBkaXJ0eSBzdGF0ZToKKyAgICAgICAgICAgICAgKiAgICAg
ICBnbEJpbmRUZXh0dXJlCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIGNvbnN0IFRleHR1cmVfdCAqcFRleHR1cmUgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIFVzZSB0aGlzIHRvIHRlbGwgdGhlIG92ZXJsYXkgc3lzdGVtIHRvIHJlbGVhc2Ug
dGhlIHRleHR1cmUgc2V0IGZvciB0aGlzIG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIENsZWFyT3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50
ZXJmYWNlIGZvciBwcm92aWRpbmcgdGhlIGRhdGEgYXMgYSBzdHJlYW0gb2YgYnl0ZXMsIGJ1dCB0
aGVyZSBpcyBhbiB1cHBlciBib3VuZCBvbiBkYXRhIAorICAgICAgICAgICAgICAqIHRoYXQgY2Fu
IGJlIHNlbnQuIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5
J3MgcmVuZGVyZXIgcHJvY2Vzcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheVJhdyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2
b2lkICpwdkJ1ZmZlciwgdWludDMyX3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHVpbnQz
Ml90IHVuRGVwdGggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNlcGFyYXRlIGludGVyZmFj
ZSBmb3IgcHJvdmlkaW5nIHRoZSBpbWFnZSB0aHJvdWdoIGEgZmlsZW5hbWU6IGNhbiBiZSBwbmcg
b3IganBnLCBhbmQgc2hvdWxkIG5vdCBiZSBiaWdnZXIgdGhhbiAxOTIweDEwODAuCisgICAgICAg
ICAgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkn
cyByZW5kZXJlciBwcm9jZXNzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlGcm9tRmlsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBjb25zdCBjaGFyICpwY2hGaWxlUGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0
IHRoZSBuYXRpdmUgdGV4dHVyZSBoYW5kbGUvZGV2aWNlIGZvciBhbiBvdmVybGF5IHlvdSBoYXZl
IGNyZWF0ZWQuCisgICAgICAgICAgICAgICogT24gd2luZG93cyB0aGlzIGhhbmRsZSB3aWxsIGJl
IGEgSUQzRDExU2hhZGVyUmVzb3VyY2VWaWV3IHdpdGggYSBJRDNEMTFUZXh0dXJlMkQgYm91bmQu
CisgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgKiBUaGUgdGV4dHVyZSB3aWxsIGFsd2F5
cyBiZSBzaXplZCB0byBtYXRjaCB0aGUgYmFja2luZyB0ZXh0dXJlIHlvdSBzdXBwbGllZCBpbiBT
ZXRPdmVybGF5VGV4dHVyZSBhYm92ZS4KKyAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAq
IFlvdSBNVVNUIGNhbGwgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUoKSB3aXRoIHBOYXRpdmVU
ZXh0dXJlSGFuZGxlIG9uY2UgeW91IGFyZSBkb25lIHdpdGggdGhpcyB0ZXh0dXJlLgorICAgICAg
ICAgICAgICAqCisgICAgICAgICAgICAgICogcE5hdGl2ZVRleHR1cmVIYW5kbGUgaXMgYW4gT1VU
UFVULCBpdCB3aWxsIGJlIGEgcG9pbnRlciB0byBhIElEM0QxMVNoYWRlclJlc291cmNlVmlldyAq
LgorICAgICAgICAgICAgICAqIHBOYXRpdmVUZXh0dXJlUmVmIGlzIGFuIElOUFVUIGFuZCBzaG91
bGQgYmUgYSBJRDNEMTFSZXNvdXJjZSAqLiBUaGUgZGV2aWNlIHVzZWQgYnkgcE5hdGl2ZVRleHR1
cmVSZWYgd2lsbCBiZSB1c2VkIHRvIGJpbmQgcE5hdGl2ZVRleHR1cmVIYW5kbGUuCisgICAgICAg
ICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJs
YXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKipwTmF0
aXZlVGV4dHVyZUhhbmRsZSwgdm9pZCAqcE5hdGl2ZVRleHR1cmVSZWYsIHVpbnQzMl90ICpwV2lk
dGgsIHVpbnQzMl90ICpwSGVpZ2h0LCB1aW50MzJfdCAqcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVU
eXBlICpwQVBJVHlwZSwgRUNvbG9yU3BhY2UgKnBDb2xvclNwYWNlLCBWUlRleHR1cmVCb3VuZHNf
dCAqcFRleHR1cmVCb3VuZHMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJlbGVhc2UgdGhl
IHBOYXRpdmVUZXh0dXJlSGFuZGxlIHByb3ZpZGVkIGZyb20gdGhlIEdldE92ZXJsYXlUZXh0dXJl
IGNhbGwsIHRoaXMgYWxsb3dzIHRoZSBzeXN0ZW0gdG8gZnJlZSB0aGUgdW5kZXJseWluZyBHUFUg
cmVzb3VyY2VzIGZvciB0aGlzIG9iamVjdCwKKyAgICAgICAgICAgICAgKiBzbyBvbmx5IGRvIGl0
IG9uY2UgeW91IHN0b3AgcmVuZGVyaW5nIHRoaXMgdGV4dHVyZS4KKyAgICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJs
YXlIYW5kbGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcE5hdGl2
ZVRleHR1cmVIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgc2l6ZSBv
ZiB0aGUgb3ZlcmxheSB0ZXh0dXJlICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIEdldE92ZXJsYXlUZXh0dXJlU2l6ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKworICAg
ICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgICAgICAgIC8vIERhc2hib2FyZCBPdmVybGF5IE1ldGhvZHMKKyAgICAgICAg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgICAgICAgIC8qKiBDcmVhdGVzIGEgZGFzaGJvYXJkIG92ZXJsYXkgYW5kIHJldHVy
bnMgaXRzIGhhbmRsZSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBD
cmVhdGVEYXNoYm9hcmRPdmVybGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5LCBjb25zdCBj
aGFyICpwY2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBNYWluSGFu
ZGxlLCBWUk92ZXJsYXlIYW5kbGVfdCAqcFRodW1ibmFpbEhhbmRsZSApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkYXNoYm9hcmQgaXMgdmlzaWJsZSAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEYXNoYm9hcmRWaXNpYmxlKCkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiByZXR1cm5zIHRydWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxl
IGFuZCB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgaXMgdGhlIGFjdGl2ZSBzeXN0ZW0gT3ZlcmxheSAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIFNldHMgdGhlIGRhc2hib2FyZCBvdmVybGF5IHRvIG9ubHkgYXBwZWFyIHdoZW4gdGhlIHNw
ZWNpZmllZCBwcm9jZXNzIElEIGhhcyBzY2VuZSBmb2N1cyAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUHJvY2Vzc0lkICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBwcm9jZXNzIElEIHRoYXQgdGhpcyBkYXNo
Ym9hcmQgb3ZlcmxheSByZXF1aXJlcyB0byBoYXZlIHNjZW5lIGZvY3VzICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nl
c3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnB1blByb2Nl
c3NJZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2hvd3MgdGhlIGRhc2hib2FyZC4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNob3dEYXNoYm9hcmQoIGNvbnN0IGNoYXIgKnBj
aE92ZXJsYXlUb1Nob3cgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRy
YWNrZWQgZGV2aWNlIHRoYXQgaGFzIHRoZSBsYXNlciBwb2ludGVyIGluIHRoZSBkYXNoYm9hcmQg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgR2V0UHJp
bWFyeURhc2hib2FyZERldmljZSgpID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gS2V5
Ym9hcmQgbWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIC8qKiBT
aG93IHRoZSB2aXJ0dWFsIGtleWJvYXJkIHRvIGFjY2VwdCBpbnB1dCAqKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKCBFR2FtZXBhZFRleHRJbnB1
dE1vZGUgZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9k
ZSwgY29uc3QgY2hhciAqcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY29uc3Qg
Y2hhciAqcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVz
ZXJWYWx1ZSApID0gMDsKKworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBT
aG93S2V5Ym9hcmRGb3JPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IEVHYW1lcGFkVGV4dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVN
b2RlIGVMaW5lSW5wdXRNb2RlLCBjb25zdCBjaGFyICpwY2hEZXNjcmlwdGlvbiwgdWludDMyX3Qg
dW5DaGFyTWF4LCBjb25zdCBjaGFyICpwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxN
b2RlLCB1aW50NjRfdCB1VXNlclZhbHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQg
dGhlIHRleHQgdGhhdCB3YXMgZW50ZXJlZCBpbnRvIHRoZSB0ZXh0IGlucHV0ICoqLworICAgICAg
ICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEtleWJvYXJkVGV4dCggVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFRleHQsIHVpbnQzMl90IGNjaFRleHQgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEhpZGUgdGhlIHZpcnR1YWwga2V5Ym9hcmQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBIaWRlS2V5Ym9hcmQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0aGUgcG9z
aXRpb24gb2YgdGhlIGtleWJvYXJkIGluIHdvcmxkIHNwYWNlICoqLworICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSggRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tp
bmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBT
ZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBrZXlib2FyZCBpbiBvdmVybGF5IHNwYWNlIGJ5IHRlbGxp
bmcgaXQgdG8gYXZvaWQgYSByZWN0YW5nbGUgaW4gdGhlIG92ZXJsYXkuIFJlY3RhbmdsZSBjb29y
ZHMgaGF2ZSAoMCwwKSBpbiB0aGUgYm90dG9tIGxlZnQgKiovCisgICAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBTZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBIbWRSZWN0Ml90IGF2b2lkUmVjdCApID0gMDsKKworICAgICAgICAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAgICAgICAgLy8gT3ZlcmxheSBpbnB1dCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAg
ICAgIC8qKiBTZXRzIGEgbGlzdCBvZiBwcmltaXRpdmVzIHRvIGJlIHVzZWQgZm9yIGNvbnRyb2xs
ZXIgcmF5IGludGVyc2VjdGlvbgorICAgICAgICAgICAgICAqIHR5cGljYWxseSB0aGUgc2l6ZSBv
ZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMgKG5vdCBpbiB3b3JsZCBzcGFjZSkuICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlJbnRlcnNlY3Rp
b25NYXNrKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdCAqcE1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1bk51bU1h
c2tQcmltaXRpdmVzLCB1aW50MzJfdCB1blByaW1pdGl2ZVNpemUgPSBzaXplb2YoIFZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCApICkgPSAwOworCisgICAgICAgICAgICAgIHZp
cnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFncyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcEZsYWdzICkgPSAwOworCisgICAgICAgICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
ICAgICAgICAvLyBNZXNzYWdlIGJveCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8q
KiBTaG93IHRoZSBtZXNzYWdlIG92ZXJsYXkuIFRoaXMgd2lsbCBibG9jayBhbmQgcmV0dXJuIHlv
dSBhIHJlc3VsdC4gKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgVlJNZXNzYWdlT3ZlcmxheVJl
c3BvbnNlIFNob3dNZXNzYWdlT3ZlcmxheSggY29uc3QgY2hhciogcGNoVGV4dCwgY29uc3QgY2hh
ciogcGNoQ2FwdGlvbiwgY29uc3QgY2hhciogcGNoQnV0dG9uMFRleHQsIGNvbnN0IGNoYXIqIHBj
aEJ1dHRvbjFUZXh0ID0gbnVsbHB0ciwgY29uc3QgY2hhciogcGNoQnV0dG9uMlRleHQgPSBudWxs
cHRyLCBjb25zdCBjaGFyKiBwY2hCdXR0b24zVGV4dCA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIElmIHRoZSBjYWxsaW5nIHByb2Nlc3Mgb3ducyB0aGUgb3ZlcmxheSBhbmQg
aXQncyBvcGVuLCB0aGlzIHdpbGwgY2xvc2UgaXQuICoqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgQ2xvc2VNZXNzYWdlT3ZlcmxheSgpID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJPdmVybGF5X1ZlcnNpb24gPSAiSVZST3ZlcmxheV8w
MTYiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisvLyBpdnJyZW5kZXJtb2RlbHMuaAorbmFtZXNw
YWNlIHZyCit7CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9D
b21wb25lbnRfR0RDMjAxNSA9ICJnZGMyMDE1IjsgICAvLyBDYW5vbmljYWwgY29vcmRpbmF0ZSBz
eXN0ZW0gb2YgdGhlIGdkYyAyMDE1IHdpcmVkIGNvbnRyb2xsZXIsIHByb3ZpZGVkIGZvciBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250
cm9sbGVyX0NvbXBvbmVudF9CYXNlID0gImJhc2UiOyAgICAgICAgIC8vIEZvciBjb250cm9sbGVy
cyB3aXRoIGFuIHVuYW1iaWd1b3VzICdiYXNlJy4KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwID0gInRpcCI7ICAgICAgICAgICAvLyBGb3Ig
Y29udHJvbGxlcnMgd2l0aCBhbiB1bmFtYmlndW91cyAndGlwJyAodXNlZCBmb3IgJ2xhc2VyLXBv
aW50aW5nJykKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfSGFuZEdyaXAgPSAiaGFuZGdyaXAiOyAvLyBOZXV0cmFsLCBhbWJpZGV4dHJvdXMgaGFu
ZC1wb3NlIHdoZW4gaG9sZGluZyBjb250cm9sbGVyLiBPbiBwbGFuZSBiZXR3ZWVuIG5ldXRyYWxs
eSBwb3NlZCBpbmRleCBmaW5nZXIgYW5kIHRodW1iCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyA9ICJzdGF0dXMiOyAgICAgICAgICAg
ICAgLy8gMToxIGFzcGVjdCByYXRpbyBzdGF0dXMgYXJlYSwgd2l0aCBjYW5vbmljYWwgWzAsMV0g
dXYgbWFwcGluZworCisjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorCisvKiogRXJyb3JzIHRoYXQg
Y2FuIG9jY3VyIHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgKi8KK2VudW0gRVZSUmVuZGVyTW9kZWxF
cnJvcgoreworICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUlJl
bmRlck1vZGVsRXJyb3JfTG9hZGluZyA9IDEwMCwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3Jf
Tm90U3VwcG9ydGVkID0gMjAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkQXJn
ID0gMzAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkTW9kZWwgPSAzMDEsCisg
ICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX05vU2hhcGVzID0gMzAyLAorICAgICAgIFZSUmVuZGVy
TW9kZWxFcnJvcl9NdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAgICAgICBWUlJlbmRlck1vZGVsRXJy
b3JfVG9vTWFueVZlcnRpY2VzID0gMzA0LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0
aXBsZVRleHR1cmVzID0gMzA1LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9CdWZmZXJUb29T
bWFsbCA9IDMwNiwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoTm9ybWFscyA9
IDMwNywKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoVGV4Q29vcmRzID0gMzA4
LAorCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRUZXh0dXJlID0gNDAwLAorfTsK
KwordHlwZWRlZiB1aW50MzJfdCBWUkNvbXBvbmVudFByb3BlcnRpZXM7CisKK2VudW0gRVZSQ29t
cG9uZW50UHJvcGVydHkKK3sKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGljID0g
KDEgPDwgMCksCisgICAgICAgVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAoMSA8PCAx
KSwKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzVG91Y2hlZCA9ICgxIDw8IDIpLAorICAg
ICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNQcmVzc2VkID0gKDEgPDwgMyksCisgICAgICAgVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1Njcm9sbGVkID0gKDEgPDwgNCksCit9OworCisvKiogRGVzY3Jp
YmVzIHN0YXRlIGluZm9ybWF0aW9uIGFib3V0IGEgcmVuZGVyLW1vZGVsIGNvbXBvbmVudCwgaW5j
bHVkaW5nIHRyYW5zZm9ybXMgYW5kIG90aGVyIGR5bmFtaWMgcHJvcGVydGllcyAqLworc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1U
cmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7ICAvLyBUcmFuc2Zvcm0gcmVxdWlyZWQgd2hl
biBkcmF3aW5nIHRoZSBjb21wb25lbnQgcmVuZGVyIG1vZGVsCisgICAgICAgSG1kTWF0cml4MzRf
dCBtVHJhY2tpbmdUb0NvbXBvbmVudExvY2FsOyAgICAgICAgLy8gVHJhbnNmb3JtIGF2YWlsYWJs
ZSBmb3IgYXR0YWNoaW5nIHRvIGEgbG9jYWwgY29tcG9uZW50IGNvb3JkaW5hdGUgc3lzdGVtICgt
WiBvdXQgZnJvbSBzdXJmYWNlICkKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnRpZXMgdVByb3Bl
cnRpZXM7Cit9OworCisvKiogQSBzaW5nbGUgdmVydGV4IGluIGEgcmVuZGVyIG1vZGVsICovCitz
dHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAgICAgICBIbWRWZWN0b3IzX3QgdlBvc2l0
aW9uOyAgICAgICAgICAgICAgLy8gcG9zaXRpb24gaW4gbWV0ZXJzIGluIGRldmljZSBzcGFjZQor
ICAgICAgIEhtZFZlY3RvcjNfdCB2Tm9ybWFsOworICAgICAgIGZsb2F0IHJmVGV4dHVyZUNvb3Jk
WzJdOworfTsKKworLyoqIEEgdGV4dHVyZSBtYXAgZm9yIHVzZSBvbiBhIHJlbmRlciBtb2RlbCAq
LworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlz
IHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHBy
ZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCAp
CisjZW5kaWYKKworc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdAoreworICAgICAgIHVp
bnQxNl90IHVuV2lkdGgsIHVuSGVpZ2h0OyAvLyB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB0ZXh0
dXJlIG1hcCBpbiBwaXhlbHMKKyAgICAgICBjb25zdCB1aW50OF90ICpydWJUZXh0dXJlTWFwRGF0
YTsgICAgICAgLy8gTWFwIHRleHR1cmUgZGF0YS4gQWxsIHRleHR1cmVzIGFyZSBSR0JBIHdpdGgg
OCBiaXRzIHBlciBjaGFubmVsIHBlciBwaXhlbC4gRGF0YSBzaXplIGlzIHdpZHRoICogaGVpZ2h0
ICogNHViCit9OworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykg
CisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworLyoqICBTZXNzaW9uIHVuaXF1ZSB0ZXh0
dXJlIGlkZW50aWZpZXIuIFJlbmRlcm1vZGVscyB3aGljaCBzaGFyZSB0aGUgc2FtZSB0ZXh0dXJl
IHdpbGwgaGF2ZSB0aGUgc2FtZSBpZC4KK0lEcyA8MCBkZW5vdGUgdGhlIHRleHR1cmUgaXMgbm90
IHByZXNlbnQgKi8KKwordHlwZWRlZiBpbnQzMl90IFRleHR1cmVJRF90OworCitjb25zdCBUZXh0
dXJlSURfdCBJTlZBTElEX1RFWFRVUkVfSUQgPSAtMTsKKworI2lmIGRlZmluZWQoX19saW51eF9f
KSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxs
eSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRp
YmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworc3RydWN0IFJlbmRl
ck1vZGVsX3QKK3sKKyAgICAgICBjb25zdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqclZlcnRleERh
dGE7ICAgICAgIC8vIFZlcnRleCBkYXRhIGZvciB0aGUgbWVzaAorICAgICAgIHVpbnQzMl90IHVu
VmVydGV4Q291bnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
TnVtYmVyIG9mIHZlcnRpY2VzIGluIHRoZSB2ZXJ0ZXggZGF0YQorICAgICAgIGNvbnN0IHVpbnQx
Nl90ICpySW5kZXhEYXRhOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5k
aWNlcyBpbnRvIHRoZSB2ZXJ0ZXggZGF0YSBmb3IgZWFjaCB0cmlhbmdsZQorICAgICAgIHVpbnQz
Ml90IHVuVHJpYW5nbGVDb3VudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IE51bWJlciBvZiB0cmlhbmdsZXMgaW4gdGhlIG1lc2guIEluZGV4IGNvdW50IGlzIDMgKiBUcmlh
bmdsZUNvdW50CisgICAgICAgVGV4dHVyZUlEX3QgZGlmZnVzZVRleHR1cmVJZDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gU2Vzc2lvbiB1bmlxdWUgdGV4dHVyZSBpZGVudGlmaWVyLiBS
ZW5kZXJtb2RlbHMgd2hpY2ggc2hhcmUgdGhlIHNhbWUgdGV4dHVyZSB3aWxsIGhhdmUgdGhlIHNh
bWUgaWQuIDwwID09IHRleHR1cmUgbm90IHByZXNlbnQKK307CisjaWYgZGVmaW5lZChfX2xpbnV4
X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyNwcmFnbWEgcGFjayggcG9wICkKKyNlbmRpZgor
CisKK3N0cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAg
Ym9vbCBiU2Nyb2xsV2hlZWxWaXNpYmxlOyAvLyBpcyB0aGlzIGNvbnRyb2xsZXIgY3VycmVudGx5
IHNldCB0byBiZSBpbiBhIHNjcm9sbCB3aGVlbCBtb2RlCit9OworCisjcHJhZ21hIHBhY2soIHBv
cCApCisKK2NsYXNzIElWUlJlbmRlck1vZGVscworeworcHVibGljOgorCisgICAgICAgLyoqIExv
YWRzIGFuZCByZXR1cm5zIGEgcmVuZGVyIG1vZGVsIGZvciB1c2UgaW4gdGhlIGFwcGxpY2F0aW9u
LiBwY2hSZW5kZXJNb2RlbE5hbWUgc2hvdWxkIGJlIGEgcmVuZGVyIG1vZGVsIG5hbWUKKyAgICAg
ICAqIGZyb20gdGhlIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyBwcm9wZXJ0eSBvciBhbiBh
YnNvbHV0ZSBwYXRoIG5hbWUgdG8gYSByZW5kZXIgbW9kZWwgb24gZGlzay4gCisgICAgICAgKgor
ICAgICAgICogVGhlIHJlc3VsdGluZyByZW5kZXIgbW9kZWwgaXMgdmFsaWQgdW50aWwgVlJfU2h1
dGRvd24oKSBpcyBjYWxsZWQgb3IgdW50aWwgRnJlZVJlbmRlck1vZGVsKCkgaXMgY2FsbGVkLiBX
aGVuIHRoZSAKKyAgICAgICAqIGFwcGxpY2F0aW9uIGlzIGZpbmlzaGVkIHdpdGggdGhlIHJlbmRl
ciBtb2RlbCBpdCBzaG91bGQgY2FsbCBGcmVlUmVuZGVyTW9kZWwoKSB0byBmcmVlIHRoZSBtZW1v
cnkgYXNzb2NpYXRlZAorICAgICAgICogd2l0aCB0aGUgbW9kZWwuCisgICAgICAgKgorICAgICAg
ICogVGhlIG1ldGhvZCByZXR1cm5zIFZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5nIHdoaWxlIHRo
ZSByZW5kZXIgbW9kZWwgaXMgc3RpbGwgYmVpbmcgbG9hZGVkLgorICAgICAgICogVGhlIG1ldGhv
ZCByZXR1cm5zIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob25lIG9uY2UgbG9hZGVkIHN1Y2Nlc3NmdWxs
eSwgb3RoZXJ3aXNlIHdpbGwgcmV0dXJuIGFuIGVycm9yLiAqLworICAgICAgIHZpcnR1YWwgRVZS
UmVuZGVyTW9kZWxFcnJvciBMb2FkUmVuZGVyTW9kZWxfQXN5bmMoIGNvbnN0IGNoYXIgKnBjaFJl
bmRlck1vZGVsTmFtZSwgUmVuZGVyTW9kZWxfdCAqKnBwUmVuZGVyTW9kZWwgKSA9IDA7CisKKyAg
ICAgICAvKiogRnJlZXMgYSBwcmV2aW91c2x5IHJldHVybmVkIHJlbmRlciBtb2RlbAorICAgICAg
ICogICBJdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBvbiBhIG51bGwgcHRyLiAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBGcmVlUmVuZGVyTW9kZWwoIFJlbmRlck1vZGVsX3QgKnBSZW5kZXJNb2RlbCAp
ID0gMDsKKworICAgICAgIC8qKiBMb2FkcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgZm9yIHVzZSBp
biB0aGUgYXBwbGljYXRpb24uICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9y
IExvYWRUZXh0dXJlX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIFJlbmRlck1vZGVsX1Rl
eHR1cmVNYXBfdCAqKnBwVGV4dHVyZSApID0gMDsKKworICAgICAgIC8qKiBGcmVlcyBhIHByZXZp
b3VzbHkgcmV0dXJuZWQgdGV4dHVyZQorICAgICAgICogICBJdCBpcyBzYWZlIHRvIGNhbGwgdGhp
cyBvbiBhIG51bGwgcHRyLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlVGV4dHVyZSggUmVu
ZGVyTW9kZWxfVGV4dHVyZU1hcF90ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgIC8qKiBDcmVh
dGVzIGEgRDNEMTEgdGV4dHVyZSBhbmQgbG9hZHMgZGF0YSBpbnRvIGl0LiAqLworICAgICAgIHZp
cnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkVGV4dHVyZUQzRDExX0FzeW5jKCBUZXh0dXJl
SURfdCB0ZXh0dXJlSWQsIHZvaWQgKnBEM0QxMURldmljZSwgdm9pZCAqKnBwRDNEMTFUZXh0dXJl
MkQgKSA9IDA7CisKKyAgICAgICAvKiogSGVscGVyIGZ1bmN0aW9uIHRvIGNvcHkgdGhlIGJpdHMg
aW50byBhbiBleGlzdGluZyB0ZXh0dXJlLiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9k
ZWxFcnJvciBMb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyggVGV4dHVyZUlEX3QgdGV4dHVyZUlk
LCB2b2lkICpwRHN0VGV4dHVyZSApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBmcmVl
IHRleHR1cmVzIGNyZWF0ZWQgd2l0aCBMb2FkVGV4dHVyZUQzRDExX0FzeW5jIGluc3RlYWQgb2Yg
Y2FsbGluZyBSZWxlYXNlIG9uIHRoZW0uICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0
dXJlRDNEMTEoIHZvaWQgKnBEM0QxMVRleHR1cmUyRCApID0gMDsKKworICAgICAgIC8qKiBVc2Ug
dGhpcyB0byBnZXQgdGhlIG5hbWVzIG9mIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxzLiAgSW5kZXgg
ZG9lcyBub3QgY29ycmVsYXRlIHRvIGEgdHJhY2tlZCBkZXZpY2UgaW5kZXgsIGJ1dAorICAgICAg
ICogaXMgb25seSB1c2VkIGZvciBpdGVyYXRpbmcgb3ZlciBhbGwgYXZhaWxhYmxlIHJlbmRlciBt
b2RlbHMuICBJZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwg
cmV0dXJuIDAuCisgICAgICAgKiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9m
IHRoZSBidWZmZXIgcmVxdWlyZWQgZm9yIHRoZSBuYW1lLiAqLworICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0UmVuZGVyTW9kZWxOYW1lKCB1aW50MzJfdCB1blJlbmRlck1vZGVsSW5kZXgsIFZS
X09VVF9TVFJJTkcoKSBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuUmVuZGVy
TW9kZWxOYW1lTGVuICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBh
dmFpbGFibGUgcmVuZGVyIG1vZGVscy4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJl
bmRlck1vZGVsQ291bnQoKSA9IDA7CisKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgY29tcG9uZW50cyBvZiB0aGUgc3BlY2lmaWVkIHJlbmRlciBtb2RlbC4KKyAgICAgICAqICBD
b21wb25lbnRzIGFyZSB1c2VmdWwgd2hlbiBjbGllbnQgYXBwbGljYXRpb24gd2lzaCB0byBkcmF3
LCBsYWJlbCwgb3Igb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggY29tcG9uZW50cyBvZiB0cmFja2Vk
IG9iamVjdHMuCisgICAgICAgKiAgRXhhbXBsZXMgY29udHJvbGxlciBjb21wb25lbnRzOgorICAg
ICAgICogICByZW5kZXJhYmxlIHRoaW5ncyBzdWNoIGFzIHRyaWdnZXJzLCBidXR0b25zCisgICAg
ICAgKiAgIG5vbi1yZW5kZXJhYmxlIHRoaW5ncyB3aGljaCBpbmNsdWRlIGNvb3JkaW5hdGUgc3lz
dGVtcyBzdWNoIGFzICd0aXAnLCAnYmFzZScsIGEgbmV1dHJhbCBjb250cm9sbGVyIGFnbm9zdGlj
IGhhbmQtcG9zZQorICAgICAgICogICBJZiBhbGwgY29udHJvbGxlciBjb21wb25lbnRzIGFyZSBl
bnVtZXJhdGVkIGFuZCByZW5kZXJlZCwgaXQgd2lsbCBiZSBlcXVpdmFsZW50IHRvIGRyYXdpbmcg
dGhlIHRyYWRpdGlvbmFsIHJlbmRlciBtb2RlbAorICAgICAgICogICBSZXR1cm5zIDAgaWYgY29t
cG9uZW50cyBub3Qgc3VwcG9ydGVkLCA+MCBvdGhlcndpc2UgKi8KKyAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldENvbXBvbmVudENvdW50KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUg
KSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8gZ2V0IHRoZSBuYW1lcyBvZiBhdmFpbGFi
bGUgY29tcG9uZW50cy4gIEluZGV4IGRvZXMgbm90IGNvcnJlbGF0ZSB0byBhIHRyYWNrZWQgZGV2
aWNlIGluZGV4LCBidXQKKyAgICAgICAqIGlzIG9ubHkgdXNlZCBmb3IgaXRlcmF0aW5nIG92ZXIg
YWxsIGF2YWlsYWJsZSBjb21wb25lbnRzLiAgSWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZSwg
dGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgorICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxs
IHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8K
KyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldENvbXBvbmVudE5hbWUoIGNvbnN0IGNoYXIgKnBj
aFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRJbmRleCwgVlJfT1VUX1NUUklO
RyggKSBjaGFyICpwY2hDb21wb25lbnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4g
KSA9IDA7CisKKyAgICAgICAvKiogR2V0IHRoZSBidXR0b24gbWFzayBmb3IgYWxsIGJ1dHRvbnMg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcG9uZW50CisgICAgICAgKiAgIElmIG5vIGJ1dHRvbnMg
KG9yIGF4ZXMpIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb21wb25lbnQsIHJldHVybiAwCisg
ICAgICAgKiAgIE5vdGU6IG11bHRpcGxlIGNvbXBvbmVudHMgbWF5IGJlIGFzc29jaWF0ZWQgd2l0
aCB0aGUgc2FtZSBidXR0b24uIEV4OiB0d28gZ3JpcCBidXR0b25zIG9uIGEgc2luZ2xlIGNvbnRy
b2xsZXIuCisgICAgICAgKiAgIE5vdGU6IEEgc2luZ2xlIGNvbXBvbmVudCBtYXkgYmUgYXNzb2Np
YXRlZCB3aXRoIG11bHRpcGxlIGJ1dHRvbnMuIEV4OiBBIHRyYWNrcGFkIHdoaWNoIGFsc28gcHJv
dmlkZXMgIkQtcGFkIiBmdW5jdGlvbmFsaXR5ICovCisgICAgICAgdmlydHVhbCB1aW50NjRfdCBH
ZXRDb21wb25lbnRCdXR0b25NYXNrKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNv
bnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMg
dG8gZ2V0IHRoZSByZW5kZXIgbW9kZWwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCByZW5kZXJtb2Rl
L2NvbXBvbmVudCBjb21iaW5hdGlvbiwgdG8gYmUgcGFzc2VkIHRvIExvYWRSZW5kZXJNb2RlbC4K
KyAgICAgICAqIElmIHRoZSBjb21wb25lbnQgbmFtZSBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVu
Y3Rpb24gd2lsbCByZXR1cm4gMC4KKyAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4g
dGhlIHNpemUgb2YgdGhlIGJ1ZmZlciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCisgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUoIGNvbnN0IGNoYXIg
KnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgVlJfT1VU
X1NUUklORyggKSBjaGFyICpwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVu
Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lTGVuICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlz
IHRvIHF1ZXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21wb25lbnQsIGFzIGEgZnVuY3Rpb24g
b2YgdGhlIGNvbnRyb2xsZXIgc3RhdGUuCisgICAgICAgKgorICAgICAgICogRm9yIGR5bmFtaWMg
Y29udHJvbGxlciBjb21wb25lbnRzIChleDogdHJpZ2dlcikgdmFsdWVzIHdpbGwgcmVmbGVjdCBj
b21wb25lbnQgbW90aW9ucworICAgICAgICogRm9yIHN0YXRpYyBjb21wb25lbnRzIHRoaXMgd2ls
bCByZXR1cm4gYSBjb25zaXN0ZW50IHZhbHVlIGluZGVwZW5kZW50IG9mIHRoZSBWUkNvbnRyb2xs
ZXJTdGF0ZV90CisgICAgICAgKgorICAgICAgICogSWYgdGhlIHBjaFJlbmRlck1vZGVsTmFtZSBv
ciBwY2hDb21wb25lbnROYW1lIGlzIGludmFsaWQsIHRoaXMgd2lsbCByZXR1cm4gZmFsc2UgKGFu
ZCB0cmFuc2Zvcm1zIHdpbGwgYmUgc2V0IHRvIGlkZW50aXR5KS4KKyAgICAgICAqIE90aGVyd2lz
ZSwgcmV0dXJuIHRydWUKKyAgICAgICAqIE5vdGU6IEZvciBkeW5hbWljIG9iamVjdHMsIHZpc2li
aWxpdHkgbWF5IGJlIGR5bmFtaWMuIChJLmUuLCB0cnVlL2ZhbHNlIHdpbGwgYmUgcmV0dXJuZWQg
YmFzZWQgb24gY29udHJvbGxlciBzdGF0ZSBhbmQgY29udHJvbGxlciBtb2RlIHN0YXRlICkgKi8K
KyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q29tcG9uZW50U3RhdGUoIGNvbnN0IGNoYXIgKnBjaFJl
bmRlck1vZGVsTmFtZSwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgY29uc3QgdnI6OlZS
Q29udHJvbGxlclN0YXRlX3QgKnBDb250cm9sbGVyU3RhdGUsIGNvbnN0IFJlbmRlck1vZGVsX0Nv
bnRyb2xsZXJNb2RlX1N0YXRlX3QgKnBTdGF0ZSwgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVf
dCAqcENvbXBvbmVudFN0YXRlICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgcmVuZGVyIG1vZGVsIGhhcyBhIGNvbXBvbmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSAq
LworICAgICAgIHZpcnR1YWwgYm9vbCBSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCggY29uc3QgY2hh
ciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkgPSAw
OworCisgICAgICAgLyoqIFJldHVybnMgdGhlIFVSTCBvZiB0aGUgdGh1bWJuYWlsIGltYWdlIGZv
ciB0aGlzIHJlbmRlcm1vZGVsICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJN
b2RlbFRodW1ibmFpbFVSTCggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRf
U1RSSU5HKCkgY2hhciAqcGNoVGh1bWJuYWlsVVJMLCB1aW50MzJfdCB1blRodW1ibmFpbFVSTExl
biwgdnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKnBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiog
UHJvdmlkZXMgYSByZW5kZXIgbW9kZWwgcGF0aCB0aGF0IHdpbGwgbG9hZCB0aGUgdW5za2lubmVk
IG1vZGVsIGlmIHRoZSBtb2RlbCBuYW1lIHByb3ZpZGVkIGhhcyBiZWVuIHJlcGxhY2UgYnkgdGhl
IHVzZXIuIElmIHRoZSBtb2RlbAorICAgICAgICogaGFzbid0IGJlZW4gcmVwbGFjZWQgdGhlIHBh
dGggdmFsdWUgd2lsbCBzdGlsbCBiZSBhIHZhbGlkIHBhdGggdG8gbG9hZCB0aGUgbW9kZWwuIFBh
c3MgdGhpcyB0byBMb2FkUmVuZGVyTW9kZWxfQXN5bmMsIGV0Yy4gdG8gbG9hZCB0aGUKKyAgICAg
ICAqIG1vZGVsLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxPcmln
aW5hbFBhdGgoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaE9yaWdpbmFsUGF0aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhMZW4sIHZyOjpF
VlJSZW5kZXJNb2RlbEVycm9yICpwZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
YSBzdHJpbmcgZm9yIGEgcmVuZGVyIG1vZGVsIGVycm9yICovCisgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyICpHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSUmVuZGVyTW9k
ZWxFcnJvciBlcnJvciApID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZS
UmVuZGVyTW9kZWxzX1ZlcnNpb24gPSAiSVZSUmVuZGVyTW9kZWxzXzAwNSI7CisKK30KKworCisv
LyBpdnJleHRlbmRlZGRpc3BsYXkuaAorbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICAvKiogTk9U
RTogVXNlIG9mIHRoaXMgaW50ZXJmYWNlIGlzIG5vdCByZWNvbW1lbmRlZCBpbiBwcm9kdWN0aW9u
IGFwcGxpY2F0aW9ucy4gSXQgd2lsbCBub3Qgd29yayBmb3IgZGlzcGxheXMgd2hpY2ggdXNlCisg
ICAgICAgKiBkaXJlY3QtdG8tZGlzcGxheSBtb2RlLiBDcmVhdGluZyBvdXIgb3duIHdpbmRvdyBp
cyBhbHNvIGluY29tcGF0aWJsZSB3aXRoIHRoZSBWUiBjb21wb3NpdG9yIGFuZCBpcyBub3QgYXZh
aWxhYmxlIHdoZW4gdGhlIGNvbXBvc2l0b3IgaXMgcnVubmluZy4gKi8KKyAgICAgICBjbGFzcyBJ
VlJFeHRlbmRlZERpc3BsYXkKKyAgICAgICB7CisgICAgICAgcHVibGljOgorCisgICAgICAgICAg
ICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3aW5kb3cgbmVlZHMgdG8gYmUgb24g
dGhlIFZSIGRpc3BsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRXaW5kb3dC
b3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWlu
dDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSB2aWV3
cG9ydCBpbiB0aGUgZnJhbWUgYnVmZmVyIHRvIGRyYXcgdGhlIG91dHB1dCBvZiB0aGUgZGlzdG9y
dGlvbiBpbnRvICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRFeWVPdXRwdXRWaWV3
cG9ydCggRVZSRXllIGVFeWUsIHVpbnQzMl90ICpwblgsIHVpbnQzMl90ICpwblksIHVpbnQzMl90
ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFtEM0QxMC8xMSBPbmx5XQorICAgICAgICAgICAgICAqIFJldHVybnMgdGhlIGFkYXB0ZXIgaW5k
ZXggYW5kIG91dHB1dCBpbmRleCB0aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8gRW51bUFk
YXB0ZXJzIGFuZCBFbnVtT3V0cHV0cworICAgICAgICAgICAgICAqIHRvIGNyZWF0ZSB0aGUgZGV2
aWNlIGFuZCBzd2FwIGNoYWluIGluIERYMTAgYW5kIERYMTEuIElmIGFuIGVycm9yIG9jY3VycyBi
b3RoIGluZGljZXMgd2lsbCBiZSBzZXQgdG8gLTEuCisgICAgICAgICAgICAgICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBHZXREWEdJT3V0cHV0SW5mbyggaW50MzJfdCAqcG5BZGFwdGVy
SW5kZXgsIGludDMyX3QgKnBuQWRhcHRlck91dHB1dEluZGV4ICkgPSAwOworCisgICAgICAgfTsK
KworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSRXh0ZW5kZWREaXNwbGF5X1Zl
cnNpb24gPSAiSVZSRXh0ZW5kZWREaXNwbGF5XzAwMSI7CisKK30KKworCisvLyBpdnJ0cmFja2Vk
Y2FtZXJhLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJUcmFja2VkQ2FtZXJhCit7Citw
dWJsaWM6CisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGVycm9yICovCisgICAg
ICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSggdnI6OkVW
UlRyYWNrZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogRm9y
IGNvbnZlbmllbmNlLCBzYW1lIGFzIHRyYWNrZWQgcHJvcGVydHkgcmVxdWVzdCBQcm9wX0hhc0Nh
bWVyYV9Cb29sICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEhh
c0NhbWVyYSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqcEhh
c0NhbWVyYSApID0gMDsKKworICAgICAgIC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1l
LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFG
cmFtZVNpemUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwbldpZHRoLCB1aW50
MzJfdCAqcG5IZWlnaHQsIHVpbnQzMl90ICpwbkZyYW1lQnVmZmVyU2l6ZSApID0gMDsKKworICAg
ICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFJbnRyaW5zaWNz
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2cjo6SG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgs
IHZyOjpIbWRWZWN0b3IyX3QgKnBDZW50ZXIgKSA9IDA7CisKKyAgICAgICB2aXJ0dWFsIHZyOjpF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJvamVjdGlvbiggdnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZy
YW1lVHlwZSwgZmxvYXQgZmxaTmVhciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAq
cFByb2plY3Rpb24gKSA9IDA7CisKKyAgICAgICAvKiogQWNxdWlyaW5nIHN0cmVhbWluZyBzZXJ2
aWNlIHBlcm1pdHMgdmlkZW8gc3RyZWFtaW5nIGZvciB0aGUgY2FsbGVyLiBSZWxlYXNpbmcgaGlu
dHMgdGhlIHN5c3RlbSB0aGF0IHZpZGVvIHNlcnZpY2VzIGRvIG5vdCBuZWVkIHRvIGJlIG1haW50
YWluZWQgZm9yIHRoaXMgY2xpZW50LgorICAgICAgICogSWYgdGhlIGNhbWVyYSBoYXMgbm90IGFs
cmVhZHkgYmVlbiBhY3RpdmF0ZWQsIGEgb25lIHRpbWUgc3BpbiB1cCBtYXkgaW5jdXIgc29tZSBh
dXRvIGV4cG9zdXJlIGFzIHdlbGwgYXMgaW5pdGlhbCBzdHJlYW1pbmcgZnJhbWUgZGVsYXlzLgor
ICAgICAgICogVGhlIGNhbWVyYSBzaG91bGQgYmUgY29uc2lkZXJlZCBhIGdsb2JhbCByZXNvdXJj
ZSBhY2Nlc3NpYmxlIGZvciBzaGFyZWQgY29uc3VtcHRpb24gYnV0IG5vdCBleGNsdXNpdmUgdG8g
YW55IGNhbGxlci4KKyAgICAgICAqIFRoZSBjYW1lcmEgbWF5IGdvIGluYWN0aXZlIGR1ZSB0byBs
YWNrIG9mIGFjdGl2ZSBjb25zdW1lcnMgb3IgaGVhZHNldCBpZGxlbmVzcy4gKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2Vy
dmljZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OlRyYWNrZWRD
YW1lcmFIYW5kbGVfdCAqcEhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSggdnI6OlRyYWNrZWRD
YW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSApID0gMDsKKworICAgICAgIC8qKiBDb3BpZXMg
dGhlIGltYWdlIGZyYW1lIGludG8gYSBjYWxsZXIncyBwcm92aWRlZCBidWZmZXIuIFRoZSBpbWFn
ZSBkYXRhIGlzIGN1cnJlbnRseSBwcm92aWRlZCBhcyBSR0JBIGRhdGEsIDQgYnl0ZXMgcGVyIHBp
eGVsLgorICAgICAgICogQSBjYWxsZXIgY2FuIHByb3ZpZGUgbnVsbCBmb3IgdGhlIGZyYW1lYnVm
ZmVyIG9yIGZyYW1laGVhZGVyIGlmIG5vdCBkZXNpcmVkLiBSZXF1ZXN0aW5nIHRoZSBmcmFtZSBo
ZWFkZXIgZmlyc3QsIGZvbGxvd2VkIGJ5IHRoZSBmcmFtZSBidWZmZXIgYWxsb3dzCisgICAgICAg
KiB0aGUgY2FsbGVyIHRvIGRldGVybWluZSBpZiB0aGUgZnJhbWUgYXMgYWR2YW5jZWQgcGVyIHRo
ZSBmcmFtZSBoZWFkZXIgc2VxdWVuY2UuIAorICAgICAgICogSWYgdGhlcmUgaXMgbm8gZnJhbWUg
YXZhaWxhYmxlIHlldCwgZHVlIHRvIGluaXRpYWwgY2FtZXJhIHNwaW51cCBvciByZS1hY3RpdmF0
aW9uLCB0aGUgZXJyb3Igd2lsbCBiZSBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0ZyYW1lQXZhaWxh
YmxlLgorICAgICAgICogSWRlYWxseSBhIGNhbGxlciBzaG91bGQgYmUgcG9sbGluZyBhdCB+MTZt
cyBpbnRlcnZhbHMgKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3Ig
R2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlciggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJh
Y2tlZENhbWVyYSwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9p
ZCAqcEZyYW1lQnVmZmVyLCB1aW50MzJfdCBuRnJhbWVCdWZmZXJTaXplLCB2cjo6Q2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRl
clNpemUgKSA9IDA7CisKKyAgICAgICAvKiogR2V0cyBzaXplIG9mIHRoZSBpbWFnZSBmcmFtZS4g
Ki8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJl
YW1UZXh0dXJlU2l6ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6
OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdnI6OlZSVGV4dHVyZUJvdW5k
c190ICpwVGV4dHVyZUJvdW5kcywgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdo
dCApID0gMDsgCisKKyAgICAgICAvKiogQWNjZXNzIGEgc2hhcmVkIEQzRDExIHRleHR1cmUgZm9y
IHRoZSBzcGVjaWZpZWQgdHJhY2tlZCBjYW1lcmEgc3RyZWFtLgorICAgICAgICogVGhlIGNhbWVy
YSBmcmFtZSB0eXBlIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCBpcyBub3Qg
c3VwcG9ydGVkIGRpcmVjdGx5IGFzIGEgc2hhcmVkIHRleHR1cmUuIEl0IGlzIGFuIGludGVyaW9y
IHN1YnJlZ2lvbiBvZiB0aGUgc2hhcmVkIHRleHR1cmUgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
X01heGltdW1VbmRpc3RvcnRlZC4KKyAgICAgICAqIEluc3RlYWQsIHVzZSBHZXRWaWRlb1N0cmVh
bVRleHR1cmVTaXplKCkgd2l0aCBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQg
dG8gZGV0ZXJtaW5lIHRoZSBwcm9wZXIgaW50ZXJpb3Igc3VicmVnaW9uIGJvdW5kcyBhbG9uZyB3
aXRoIEdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKCkgd2l0aAorICAgICAgICogVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCB0byBwcm92aWRlIHRoZSB0ZXh0dXJl
LiBUaGUgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCB3aWxsIHlp
ZWxkIGFuIGltYWdlIHdoZXJlIHRoZSBpbnZhbGlkIHJlZ2lvbnMgYXJlIGRlY29kZWQKKyAgICAg
ICAqIGJ5IHRoZSBhbHBoYSBjaGFubmVsIGhhdmluZyBhIHplcm8gY29tcG9uZW50LiBUaGUgdmFs
aWQgcmVnaW9ucyBhbGwgaGF2ZSBhIG5vbi16ZXJvIGFscGhhIGNvbXBvbmVudC4gVGhlIHN1YnJl
Z2lvbiBhcyBkZXNjcmliZWQgYnkgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVk
IAorICAgICAgICogZ3VhcmFudGVlcyBhIHJlY3RhbmdsZSB3aGVyZSBhbGwgcGl4ZWxzIGFyZSB2
YWxpZC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Vmlk
ZW9TdHJlYW1UZXh0dXJlRDNEMTEoIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRD
YW1lcmEsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKnBE
M0QxMURldmljZU9yUmVzb3VyY2UsIHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCB2
cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90
IG5GcmFtZUhlYWRlclNpemUgKSA9IDA7CisKKyAgICAgICAvKiogQWNjZXNzIGEgc2hhcmVkIEdM
IHRleHR1cmUgZm9yIHRoZSBzcGVjaWZpZWQgdHJhY2tlZCBjYW1lcmEgc3RyZWFtICovCisgICAg
ICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVy
ZUdMKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2cjo6Z2xVSW50X3QgKnBnbFRleHR1cmVJ
ZCwgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqcEZyYW1lSGVhZGVyLCB1aW50
MzJfdCBuRnJhbWVIZWFkZXJTaXplICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBSZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woIHZyOjpUcmFja2VkQ2Ft
ZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCApID0g
MDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSVHJhY2tlZENhbWVyYV9WZXJz
aW9uID0gIklWUlRyYWNrZWRDYW1lcmFfMDAzIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisv
LyBpdnJzY3JlZW5zaG90cy5oCituYW1lc3BhY2UgdnIKK3sKKworLyoqIEVycm9ycyB0aGF0IGNh
biBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3NpdG9yICovCitlbnVtIEVWUlNjcmVlbnNob3RFcnJv
cgoreworICAgICAgIFZSU2NyZWVuc2hvdEVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9y
X1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAg
ICAgICBWUlNjcmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uICAgICAgICAgICAgICAg
ICAgICAgPSAxMDAsCisgICAgICAgVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMSwKKyAgICAgICBWUlNjcmVlbnNo
b3RFcnJvcl9CdWZmZXJUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMiwK
KyAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9TY3JlZW5zaG90QWxyZWFkeUluUHJvZ3Jlc3MgICAg
ICAgPSAxMDgsCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBnZW5lcmF0ZSBz
Y3JlZW5zaG90cyAqLworY2xhc3MgSVZSU2NyZWVuc2hvdHMKK3sKK3B1YmxpYzoKKyAgICAgICAv
KiogUmVxdWVzdCBhIHNjcmVlbnNob3Qgb2YgdGhlIHJlcXVlc3RlZCB0eXBlLgorICAgICAgICAq
ICBBIHJlcXVlc3Qgb2YgdGhlIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvIHR5cGUgd2lsbCBhbHdh
eXMKKyAgICAgICAgKiAgd29yay4gT3RoZXIgdHlwZXMgd2lsbCBkZXBlbmQgb24gdGhlIHVuZGVy
bHlpbmcgYXBwbGljYXRpb24KKyAgICAgICAgKiAgc3VwcG9ydC4KKyAgICAgICAgKiAgVGhlIGZp
cnN0IGZpbGUgbmFtZSBpcyBmb3IgdGhlIHByZXZpZXcgaW1hZ2UgYW5kIHNob3VsZCBiZSBhCisg
ICAgICAgICogIHJlZ3VsYXIgc2NyZWVuc2hvdCAoaWRlYWxseSBmcm9tIHRoZSBsZWZ0IGV5ZSku
IFRoZSBzZWNvbmQKKyAgICAgICAgKiAgaXMgdGhlIFZSIHNjcmVlbnNob3QgaW4gdGhlIGNvcnJl
Y3QgZm9ybWF0LiBUaGV5IHNob3VsZCBiZQorICAgICAgICAqICBpbiB0aGUgc2FtZSBhc3BlY3Qg
cmF0aW8uICBGb3JtYXRzIHBlciB0eXBlOgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX01v
bm86IHRoZSBWUiBmaWxlbmFtZSBpcyBpZ25vcmVkIChjYW4gYmUKKyAgICAgICAgKiAgbnVsbHB0
ciksIHRoaXMgaXMgYSBub3JtYWwgZmxhdCBzaW5nbGUgc2hvdC4KKyAgICAgICAgKiAgVlJTY3Jl
ZW5zaG90VHlwZV9TdGVyZW86ICBUaGUgVlIgaW1hZ2Ugc2hvdWxkIGJlIGEKKyAgICAgICAgKiAg
c2lkZS1ieS1zaWRlIHdpdGggdGhlIGxlZnQgZXllIGltYWdlIG9uIHRoZSBsZWZ0LgorICAgICAg
ICAqICBWUlNjcmVlbnNob3RUeXBlX0N1YmVtYXA6IFRoZSBWUiBpbWFnZSBzaG91bGQgYmUgc2l4
IHNxdWFyZQorICAgICAgICAqICBpbWFnZXMgY29tcG9zaXRlZCBob3Jpem9udGFsbHkuCisgICAg
ICAgICogIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWE6IGFib3ZlL2JlbG93IHdpdGgg
bGVmdCBleWUKKyAgICAgICAgKiAgcGFub3JhbWEgYmVpbmcgdGhlIGFib3ZlIGltYWdlLiAgSW1h
Z2UgaXMgdHlwaWNhbGx5IHNxdWFyZQorICAgICAgICAqICB3aXRoIHRoZSBwYW5vcmFtYSBiZWlu
ZyAyeCBob3Jpem9udGFsLgorICAgICAgICAqICAKKyAgICAgICAgKiAgTm90ZSB0aGF0IHRoZSBW
UiBkYXNoYm9hcmQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbgorICAgICAgICAqICB0aGUg
dXNlciBwcmVzc2VzIHRoZSBzY3JlZW5zaG90IGJpbmRpbmcgKGN1cnJlbnRseSBTeXN0ZW0KKyAg
ICAgICAgKiAgQnV0dG9uICsgVHJpZ2dlcikuICBJZiBTdGVhbSBpcyBydW5uaW5nLCB0aGUgZGVz
dGluYXRpb24KKyAgICAgICAgKiAgZmlsZSBuYW1lcyB3aWxsIGJlIGluICVURU1QJSBhbmQgd2ls
bCBiZSBjb3BpZWQgaW50bworICAgICAgICAqICBTdGVhbSdzIHNjcmVlbnNob3QgbGlicmFyeSBm
b3IgdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24KKyAgICAgICAgKiAgb25jZSBTdWJtaXRTY3JlZW5z
aG90KCkgaXMgY2FsbGVkLgorICAgICAgICAqICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhl
IHBhdGhzIHdpbGwgYmUgaW4gdGhlIHVzZXIncworICAgICAgICAqICBkb2N1bWVudHMgZm9sZGVy
IHVuZGVyIERvY3VtZW50c1xTdGVhbVZSXFNjcmVlbnNob3RzLgorICAgICAgICAqICBPdGhlciBW
UiBhcHBsaWNhdGlvbnMgY2FuIGNhbGwgdGhpcyB0byBpbml0aWF0ZSBhCisgICAgICAgICogIHNj
cmVlbnNob3Qgb3V0c2lkZSBvZiB1c2VyIGNvbnRyb2wuCisgICAgICAgICogIFRoZSBkZXN0aW5h
dGlvbiBmaWxlIG5hbWVzIGRvIG5vdCBuZWVkIGFuIGV4dGVuc2lvbiwKKyAgICAgICAgKiAgd2ls
bCBiZSByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZWN0IG9uZSBmb3IgdGhlIGZvcm1hdAorICAgICAg
ICAqICB3aGljaCBpcyBjdXJyZW50bHkgLnBuZy4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJT
Y3JlZW5zaG90RXJyb3IgUmVxdWVzdFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qg
KnBPdXRTY3JlZW5zaG90SGFuZGxlLCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY29uc3Qg
Y2hhciAqcGNoUHJldmlld0ZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hWUkZpbGVuYW1lICkgPSAw
OworCisgICAgICAgLyoqIENhbGxlZCBieSB0aGUgcnVubmluZyBWUiBhcHBsaWNhdGlvbiB0byBp
bmRpY2F0ZSB0aGF0IGl0CisgICAgICAgICogIHdpc2hlcyB0byBiZSBpbiBjaGFyZ2Ugb2Ygc2Ny
ZWVuc2hvdHMuICBJZiB0aGUKKyAgICAgICAgKiAgYXBwbGljYXRpb24gZG9lcyBub3QgY2FsbCB0
aGlzLCB0aGUgQ29tcG9zaXRvciB3aWxsIG9ubHkKKyAgICAgICAgKiAgc3VwcG9ydCBWUlNjcmVl
bnNob3RUeXBlX1N0ZXJlbyBzY3JlZW5zaG90cyB0aGF0IHdpbGwgYmUKKyAgICAgICAgKiAgY2Fw
dHVyZWQgd2l0aG91dCBub3RpZmljYXRpb24gdG8gdGhlIHJ1bm5pbmcgYXBwLgorICAgICAgICAq
ICBPbmNlIGhvb2tlZCB5b3VyIGFwcGxpY2F0aW9uIHdpbGwgcmVjZWl2ZSBhCisgICAgICAgICog
IFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgZXZlbnQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRo
ZQorICAgICAgICAqICBidXR0b25zIHRvIHRha2UgYSBzY3JlZW5zaG90LiAqLworICAgICAgIHZp
cnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdCggVlJfQVJSQVlfQ09V
TlQoIG51bVR5cGVzICkgY29uc3QgdnI6OkVWUlNjcmVlbnNob3RUeXBlICpwU3VwcG9ydGVkVHlw
ZXMsIGludCBudW1UeXBlcyApID0gMDsKKworICAgICAgIC8qKiBXaGVuIHlvdXIgYXBwbGljYXRp
b24gcmVjZWl2ZXMgYQorICAgICAgICAqICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90IGV2ZW50
LCBjYWxsIHRoZXNlIGZ1bmN0aW9ucyB0byBnZXQKKyAgICAgICAgKiAgdGhlIGRldGFpbHMgb2Yg
dGhlIHNjcmVlbnNob3QgcmVxdWVzdC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5z
aG90VHlwZSBHZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90
IHNjcmVlbnNob3RIYW5kbGUsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKnBFcnJvciApID0gMDsK
KworICAgICAgIC8qKiBHZXQgdGhlIGZpbGVuYW1lIGZvciB0aGUgcHJldmlldyBvciB2ciBpbWFn
ZSAoc2VlCisgICAgICAgICogIHZyOjpFU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzKS4gIFRo
ZSByZXR1cm4gdmFsdWUgaXMKKyAgICAgICAgKiAgdGhlIHNpemUgb2YgdGhlIHN0cmluZy4gICAq
LworICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIHZyOjpFVlJTY3JlZW5z
aG90UHJvcGVydHlGaWxlbmFtZXMgZmlsZW5hbWVUeXBlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAq
cGNoRmlsZW5hbWUsIHVpbnQzMl90IGNjaEZpbGVuYW1lLCB2cjo6RVZSU2NyZWVuc2hvdEVycm9y
ICpwRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogQ2FsbCB0aGlzIGlmIHRoZSBhcHBsaWNhdGlv
biBpcyB0YWtpbmcgdGhlIHNjcmVlbiBzaG90CisgICAgICAgICogIHdpbGwgdGFrZSBtb3JlIHRo
YW4gYSBmZXcgbXMgcHJvY2Vzc2luZy4gVGhpcyB3aWxsIHJlc3VsdAorICAgICAgICAqICBpbiBh
biBvdmVybGF5IGJlaW5nIHByZXNlbnRlZCB0aGF0IHNob3dzIGEgY29tcGxldGlvbgorICAgICAg
ICAqICBiYXIuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFVwZGF0
ZVNjcmVlbnNob3RQcm9ncmVzcyggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFu
ZGxlLCBmbG9hdCBmbFByb2dyZXNzICkgPSAwOworCisgICAgICAgLyoqIFRlbGxzIHRoZSBjb21w
b3NpdG9yIHRvIHRha2UgYW4gaW50ZXJuYWwgc2NyZWVuc2hvdCBvZgorICAgICAgICAqICB0eXBl
IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvLiBJdCB3aWxsIHRha2UgdGhlIGN1cnJlbnQKKyAgICAg
ICAgKiAgc3VibWl0dGVkIHNjZW5lIHRleHR1cmVzIG9mIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9u
IGFuZAorICAgICAgICAqICB3cml0ZSB0aGVtIGludG8gdGhlIHByZXZpZXcgaW1hZ2UgYW5kIGEg
c2lkZS1ieS1zaWRlIGZpbGUKKyAgICAgICAgKiAgZm9yIHRoZSBWUiBpbWFnZS4KKyAgICAgICAg
KiAgVGhpcyBpcyBzaW1pbGFyIHRvIHJlcXVlc3Qgc2NyZWVuc2hvdCwgYnV0IGRvZXNuJ3QgZXZl
cgorICAgICAgICAqICB0YWxrIHRvIHRoZSBhcHBsaWNhdGlvbiwganVzdCB0YWtlcyB0aGUgc2hv
dCBhbmQgc3VibWl0cy4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3Ig
VGFrZVN0ZXJlb1NjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKnBPdXRTY3JlZW5z
aG90SGFuZGxlLCBjb25zdCBjaGFyICpwY2hQcmV2aWV3RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBj
aFZSRmlsZW5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogU3VibWl0IHRoZSBjb21wbGV0ZWQgc2Ny
ZWVuc2hvdC4gIElmIFN0ZWFtIGlzIHJ1bm5pbmcKKyAgICAgICAgKiAgdGhpcyB3aWxsIGNhbGwg
aW50byB0aGUgU3RlYW0gY2xpZW50IGFuZCB1cGxvYWQgdGhlCisgICAgICAgICogIHNjcmVlbnNo
b3QgdG8gdGhlIHNjcmVlbnNob3RzIHNlY3Rpb24gb2YgdGhlIGxpYnJhcnkgZm9yCisgICAgICAg
ICogIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uLiAgSWYgU3RlYW0gaXMgbm90IHJ1bm5pbmcsIHRo
aXMKKyAgICAgICAgKiAgZnVuY3Rpb24gd2lsbCBkaXNwbGF5IGEgbm90aWZpY2F0aW9uIHRvIHRo
ZSB1c2VyIHRoYXQgdGhlCisgICAgICAgICogIHNjcmVlbnNob3Qgd2FzIHRha2VuLiBUaGUgcGF0
aHMgc2hvdWxkIGJlIGZ1bGwgcGF0aHMgd2l0aAorICAgICAgICAqICBleHRlbnNpb25zLgorICAg
ICAgICAqICBGaWxlIHBhdGhzIHNob3VsZCBiZSBhYnNvbHV0ZSBpbmNsdWRpbmcgZXh0ZW5zaW9u
cy4KKyAgICAgICAgKiAgc2NyZWVuc2hvdEhhbmRsZSBjYW4gYmUga191blNjcmVlbnNob3RIYW5k
bGVJbnZhbGlkIGlmIHRoaXMKKyAgICAgICAgKiAgd2FzIGEgbmV3IHNob3QgdGFraW5nIGJ5IHRo
ZSBhcHAgdG8gYmUgc2F2ZWQgYW5kIG5vdAorICAgICAgICAqICBpbml0aWF0ZWQgYnkgYSB1c2Vy
IChhY2hpZXZlbWVudCBlYXJuZWQgb3Igc29tZXRoaW5nKSAqLworICAgICAgIHZpcnR1YWwgdnI6
OkVWUlNjcmVlbnNob3RFcnJvciBTdWJtaXRTY3JlZW5zaG90KCB2cjo6U2NyZWVuc2hvdEhhbmRs
ZV90IHNjcmVlbnNob3RIYW5kbGUsIHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBj
aGFyICpwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZVZSRmls
ZW5hbWUgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNjcmVlbnNo
b3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIK
KworCisKKy8vIGl2cnJlc291cmNlcy5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgSVZSUmVz
b3VyY2VzCit7CitwdWJsaWM6CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAvLyBTaGFyZWQgUmVzb3VyY2UgTWV0aG9kcworICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIExvYWRz
IHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyIGlmIGxhcmdl
IGVub3VnaC4KKyAgICAgICAqIFJldHVybnMgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGJ1ZmZl
ciByZXF1aXJlZCB0byBob2xkIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuICovCisgICAgICAgdmly
dHVhbCB1aW50MzJfdCBMb2FkU2hhcmVkUmVzb3VyY2UoIGNvbnN0IGNoYXIgKnBjaFJlc291cmNl
TmFtZSwgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApID0gMDsKKworICAg
ICAgIC8qKiBQcm92aWRlcyB0aGUgZnVsbCBwYXRoIHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2Uu
IFJlc291cmNlIG5hbWVzIGNhbiBpbmNsdWRlIG5hbWVkIGRpcmVjdG9yaWVzIGZvcgorICAgICAg
ICogZHJpdmVycyBhbmQgb3RoZXIgdGhpbmdzLCBhbmQgdGhpcyByZXNvbHZlcyBhbGwgb2YgdGhv
c2UgYW5kIHJldHVybnMgdGhlIGFjdHVhbCBwaHlzaWNhbCBwYXRoLiAKKyAgICAgICAqIHBjaFJl
c291cmNlVHlwZURpcmVjdG9yeSBpcyB0aGUgc3ViZGlyZWN0b3J5IG9mIHJlc291cmNlcyB0byBs
b29rIGluLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVzb3VyY2VGdWxsUGF0aCgg
Y29uc3QgY2hhciAqcGNoUmVzb3VyY2VOYW1lLCBjb25zdCBjaGFyICpwY2hSZXNvdXJjZVR5cGVE
aXJlY3RvcnksIGNoYXIgKnBjaFBhdGhCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAw
OworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9
ICJJVlJSZXNvdXJjZXNfMDAxIjsKKworCit9CisvLyBpdnJkcml2ZXJtYW5hZ2VyLmgKK25hbWVz
cGFjZSB2cgoreworCitjbGFzcyBJVlJEcml2ZXJNYW5hZ2VyCit7CitwdWJsaWM6CisgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXREcml2ZXJDb3VudCgpIGNvbnN0ID0gMDsKKworICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8g
aG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nIG51bGwuICovCisgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXREcml2ZXJOYW1lKCB2cjo6RHJpdmVySWRfdCBuRHJpdmVyLCBW
Ul9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSApID0g
MDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSRHJpdmVyTWFuYWdlcl9WZXJz
aW9uID0gIklWUkRyaXZlck1hbmFnZXJfMDAxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisv
LyBFbmQKKworI2VuZGlmIC8vIF9PUEVOVlJfQVBJCisKKworbmFtZXNwYWNlIHZyCit7CisgICAg
ICAgLyoqIEZpbmRzIHRoZSBhY3RpdmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBWUiBBUEkgYW5kIGlu
aXRpYWxpemVzIGl0LiBUaGUgcHJvdmlkZWQgcGF0aCBtdXN0IGJlIGFic29sdXRlCisgICAgICAg
KiBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gVGhlc2UgYXJl
IHRoZSBsb2NhbCBpbnN0YWxsIHZlcnNpb25zIG9mIHRoZSBlcXVpdmFsZW50CisgICAgICAgKiBm
dW5jdGlvbnMgaW4gc3RlYW12ci5oIGFuZCB3aWxsIHdvcmsgd2l0aG91dCBhIGxvY2FsIFN0ZWFt
IGluc3RhbGwuCisgICAgICAgKgorICAgICAgICogVGhpcyBwYXRoIGlzIHRvIHRoZSAicm9vdCIg
b2YgdGhlIFZSIEFQSSBpbnN0YWxsLiBUaGF0J3MgdGhlIGRpcmVjdG9yeSB3aXRoCisgICAgICAg
KiB0aGUgImRyaXZlcnMiIGRpcmVjdG9yeSBhbmQgYSBwbGF0Zm9ybSAoaS5lLiAid2luMzIiKSBk
aXJlY3RvcnkgaW4gaXQsIG5vdCB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIERMTCBpdHNlbGYuCisg
ICAgICAgKgorICAgICAgICogcFN0YXJ0dXBJbmZvIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNl
LgorICAgICAgICovCisgICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfSW5pdCggRVZSSW5pdEVy
cm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3Qg
Y2hhciAqcFN0YXJ0dXBJbmZvID0gbnVsbHB0ciApOworCisgICAgICAgLyoqIHVubG9hZHMgdnJj
bGllbnQuZGxsLiBBbnkgaW50ZXJmYWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUK
KyAgICAgICAqIGludmFsaWQgYWZ0ZXIgdGhpcyBwb2ludCAqLworICAgICAgIGlubGluZSB2b2lk
IFZSX1NodXRkb3duKCk7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGFu
IEhNRCBhdHRhY2hlZC4gVGhpcyBjaGVjayBpcyBhcyBsaWdodHdlaWdodCBhcyBwb3NzaWJsZSBh
bmQKKyAgICAgICAqIGNhbiBiZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0L1ZSX1NodXRkb3du
LiBJdCBzaG91bGQgYmUgdXNlZCB3aGVuIGFuIGFwcGxpY2F0aW9uIHdhbnRzCisgICAgICAgKiB0
byBrbm93IGlmIGluaXRpYWxpemluZyBWUiBpcyBhIHBvc3NpYmlsaXR5IGJ1dCBpc24ndCByZWFk
eSB0byB0YWtlIHRoYXQgc3RlcCB5ZXQuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0Ug
Ym9vbCBWUl9DQUxMVFlQRSBWUl9Jc0htZFByZXNlbnQoKTsKKworICAgICAgIC8qKiBSZXR1cm5z
IHRydWUgaWYgdGhlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAgICAgICBWUl9J
TlRFUkZBQ0UgYm9vbCBWUl9DQUxMVFlQRSBWUl9Jc1J1bnRpbWVJbnN0YWxsZWQoKTsKKworICAg
ICAgIC8qKiBSZXR1cm5zIHdoZXJlIHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICov
CisgICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX1J1bnRpbWVQ
YXRoKCk7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZSBm
b3IgYW4gRVZSSW5pdEVycm9yLiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgb3V0c2lkZSBv
ZiBWUl9Jbml0KCkvVlJfU2h1dGRvd24oKS4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgY29uc3Qg
Y2hhciAqVlJfQ0FMTFRZUEUgVlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9y
IGVycm9yICk7CisKKyAgICAgICAvKiogUmV0dXJucyBhbiBFbmdsaXNoIHN0cmluZyBmb3IgYW4g
RVZSSW5pdEVycm9yLiBBcHBsaWNhdGlvbnMgc2hvdWxkIGNhbGwgVlJfR2V0VlJJbml0RXJyb3JB
c1N5bWJvbCBpbnN0ZWFkIGFuZAorICAgICAgICogdXNlIHRoYXQgYXMgYSBrZXkgdG8gbG9vayB1
cCB0aGVpciBvd24gbG9jYWxpemVkIGVycm9yIG1lc3NhZ2UuIFRoaXMgZnVuY3Rpb24gbWF5IGJl
IGNhbGxlZCBvdXRzaWRlIG9mIFZSX0luaXQoKS9WUl9TaHV0ZG93bigpLiAqLworICAgICAgIFZS
X0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9HZXRWUkluaXRFcnJvckFzRW5n
bGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKKworICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBpbnRlcmZhY2Ugb2YgdGhlIHNwZWNpZmllZCB2ZXJzaW9uLiBUaGlzIG1ldGhvZCBt
dXN0IGJlIGNhbGxlZCBhZnRlciBWUl9Jbml0LiBUaGUKKyAgICAgICAqIHBvaW50ZXIgcmV0dXJu
ZWQgaXMgdmFsaWQgdW50aWwgVlJfU2h1dGRvd24gaXMgY2FsbGVkLgorICAgICAgICovCisgICAg
ICAgVlJfSU5URVJGQUNFIHZvaWQgKlZSX0NBTExUWVBFIFZSX0dldEdlbmVyaWNJbnRlcmZhY2Uo
IGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvciAp
OworCisgICAgICAgLyoqIFJldHVybnMgd2hldGhlciB0aGUgaW50ZXJmYWNlIG9mIHRoZSBzcGVj
aWZpZWQgdmVyc2lvbiBleGlzdHMuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9v
bCBWUl9DQUxMVFlQRSBWUl9Jc0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAqcGNo
SW50ZXJmYWNlVmVyc2lvbiApOworCisgICAgICAgLyoqIFJldHVybnMgYSB0b2tlbiB0aGF0IHJl
cHJlc2VudHMgd2hldGhlciB0aGUgVlIgaW50ZXJmYWNlIGhhbmRsZXMgbmVlZCB0byBiZSByZWxv
YWRlZCAqLworICAgICAgIFZSX0lOVEVSRkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQRSBWUl9HZXRJ
bml0VG9rZW4oKTsKKworICAgICAgIC8vIFRoZXNlIHR5cGVkZWZzIGFsbG93IG9sZCBlbnVtIG5h
bWVzIGZyb20gU0RLIDAuOS4xMSB0byBiZSB1c2VkIGluIGFwcGxpY2F0aW9ucy4KKyAgICAgICAv
LyBUaGV5IHdpbGwgZ28gYXdheSBpbiB0aGUgZnV0dXJlLgorICAgICAgIHR5cGVkZWYgRVZSSW5p
dEVycm9yIEhtZEVycm9yOworICAgICAgIHR5cGVkZWYgRVZSRXllIEhtZF9FeWU7CisgICAgICAg
dHlwZWRlZiBFQ29sb3JTcGFjZSBDb2xvclNwYWNlOworICAgICAgIHR5cGVkZWYgRVRyYWNraW5n
UmVzdWx0IEhtZFRyYWNraW5nUmVzdWx0OworICAgICAgIHR5cGVkZWYgRVRyYWNrZWREZXZpY2VD
bGFzcyBUcmFja2VkRGV2aWNlQ2xhc3M7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiBUcmFja2luZ1VuaXZlcnNlT3JpZ2luOworICAgICAgIHR5cGVkZWYgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBUcmFja2VkRGV2aWNlUHJvcGVydHk7CisgICAgICAgdHlwZWRlZiBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgVHJhY2tlZFByb3BlcnR5RXJyb3I7CisgICAgICAgdHlwZWRlZiBF
VlJTdWJtaXRGbGFncyBWUlN1Ym1pdEZsYWdzX3Q7CisgICAgICAgdHlwZWRlZiBFVlJTdGF0ZSBW
UlN0YXRlX3Q7CisgICAgICAgdHlwZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29sbGlzaW9u
Qm91bmRzU3R5bGVfdDsKKyAgICAgICB0eXBlZGVmIEVWUk92ZXJsYXlFcnJvciBWUk92ZXJsYXlF
cnJvcjsKKyAgICAgICB0eXBlZGVmIEVWUkZpcm13YXJlRXJyb3IgVlJGaXJtd2FyZUVycm9yOwor
ICAgICAgIHR5cGVkZWYgRVZSQ29tcG9zaXRvckVycm9yIFZSQ29tcG9zaXRvckVycm9yOworICAg
ICAgIHR5cGVkZWYgRVZSU2NyZWVuc2hvdEVycm9yIFZSU2NyZWVuc2hvdHNFcnJvcjsKKworICAg
ICAgIGlubGluZSB1aW50MzJfdCAmVlJUb2tlbigpCisgICAgICAgeworICAgICAgICAgICAgICBz
dGF0aWMgdWludDMyX3QgdG9rZW47CisgICAgICAgICAgICAgIHJldHVybiB0b2tlbjsKKyAgICAg
ICB9CisKKyAgICAgICBjbGFzcyBDT3BlblZSQ29udGV4dAorICAgICAgIHsKKyAgICAgICBwdWJs
aWM6CisgICAgICAgICAgICAgIENPcGVuVlJDb250ZXh0KCkgeyBDbGVhcigpOyB9CisgICAgICAg
ICAgICAgIHZvaWQgQ2xlYXIoKTsKKworICAgICAgICAgICAgICBpbmxpbmUgdm9pZCBDaGVja0Ns
ZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBWUlRva2Vu
KCkgIT0gVlJfR2V0SW5pdFRva2VuKCkgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVlJUb2tlbigpID0gVlJfR2V0SW5pdFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJTeXN0ZW0gKlZSU3lzdGVtKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAg
ICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlN5c3RlbSA9PSBudWxscHRyICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3Ig
ZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVtID0gKCBJVlJT
eXN0ZW0gKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU3lzdGVtX1ZlcnNpb24sICZlRXJy
b3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBtX3BWUlN5c3RlbTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBJVlJDaGFwZXJv
bmUgKlZSQ2hhcGVyb25lKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
Q2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkNoYXBlcm9uZSA9
PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSQ2hhcGVyb25lID0gKCBJVlJDaGFwZXJvbmUgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFj
ZSggSVZSQ2hhcGVyb25lX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZVNldHVwICpWUkNoYXBlcm9uZVNl
dHVwKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigp
OworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkNoYXBlcm9uZVNldHVwID09IG51bGxw
dHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJD
aGFwZXJvbmVTZXR1cCA9ICggSVZSQ2hhcGVyb25lU2V0dXAgKiApVlJfR2V0R2VuZXJpY0ludGVy
ZmFjZSggSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lU2V0
dXA7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJDb21wb3NpdG9yICpWUkNv
bXBvc2l0b3IoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0Ns
ZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQ29tcG9zaXRvciA9PSBudWxs
cHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZS
Q29tcG9zaXRvciA9ICggSVZSQ29tcG9zaXRvciAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJ
VlJDb21wb3NpdG9yX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICBJVlJPdmVybGF5ICpWUk92ZXJsYXkoKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAg
ICAgICAgICBpZiAoIG1fcFZST3ZlcmxheSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9ICggSVZST3ZlcmxheSAq
IClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJPdmVybGF5X1ZlcnNpb24sICZlRXJyb3IgKTsK
KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BW
Uk92ZXJsYXk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJSZXNvdXJjZXMg
KlZSUmVzb3VyY2VzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlJlc291cmNlcyA9PSBu
dWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cFZSUmVzb3VyY2VzID0gKElWUlJlc291cmNlcyAqKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElW
UlJlc291cmNlc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJSZXNvdXJjZXM7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBJVlJTY3JlZW5zaG90cyAqVlJTY3JlZW5zaG90cygpCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAg
ICAgICAgICAgICAgIGlmICggbV9wVlJTY3JlZW5zaG90cyA9PSBudWxscHRyICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3Ig
ZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSAo
IElWUlNjcmVlbnNob3RzICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNjcmVlbnNob3Rz
X1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgSVZSUmVuZGVyTW9kZWxzICpWUlJlbmRlck1vZGVscygpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJSZW5kZXJNb2RlbHMgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJv
cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlJlbmRlck1vZGVscyA9ICggSVZS
UmVuZGVyTW9kZWxzICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlJlbmRlck1vZGVsc19W
ZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9wVlJSZW5kZXJNb2RlbHM7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICBJVlJFeHRlbmRlZERpc3BsYXkgKlZSRXh0ZW5kZWREaXNwbGF5KCkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAg
ICAgICAgICAgICAgaWYgKCBtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxscHRyICkKKyAgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJy
b3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNw
bGF5ID0gKCBJVlJFeHRlbmRlZERpc3BsYXkgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZS
RXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlNldHRpbmdzICpWUlNldHRpbmdzKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAg
ICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlNldHRpbmdzID09IG51bGxwdHIgKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJv
ciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9ICgg
SVZSU2V0dGluZ3MgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2V0dGluZ3NfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSU2V0dGluZ3M7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICBJVlJBcHBsaWNhdGlvbnMgKlZSQXBwbGljYXRpb25zKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYg
KCBtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQXBwbGljYXRpb25zID0gKCBJVlJBcHBsaWNhdGlv
bnMgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQXBwbGljYXRpb25zX1ZlcnNpb24sICZl
RXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IElWUlRyYWNrZWRDYW1lcmEgKlZSVHJhY2tlZENhbWVyYSgpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlm
ICggbV9wVlJUcmFja2VkQ2FtZXJhID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gKCBJVlJUcmFja2Vk
Q2FtZXJhICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlRyYWNrZWRDYW1lcmFfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIElWUkRyaXZlck1hbmFnZXIgKlZSRHJpdmVyTWFuYWdlcigpCisgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAg
ICAgIGlmICggIW1fcFZSRHJpdmVyTWFuYWdlciApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3BWUkRyaXZlck1hbmFnZXIgPSAoIElWUkRyaXZlck1hbmFn
ZXIgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSRHJpdmVyTWFuYWdlcl9WZXJzaW9uLCAm
ZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9wVlJEcml2ZXJNYW5hZ2VyOworICAgICAgICAgICAgICB9CisKKyAgICAgICBwcml2
YXRlOgorICAgICAgICAgICAgICBJVlJTeXN0ZW0gICAgICAgICAgICAgICAgICAgICAqbV9wVlJT
eXN0ZW07CisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZSAgICAgICAgICAgICAgKm1fcFZSQ2hh
cGVyb25lOworICAgICAgICAgICAgICBJVlJDaGFwZXJvbmVTZXR1cCAgICAgICAqbV9wVlJDaGFw
ZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgSVZSQ29tcG9zaXRvciAgICAgICAgICAgICAgKm1f
cFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgSVZST3ZlcmxheSAgICAgICAgICAgICAgICAg
ICAgICptX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIElWUlJlc291cmNlcyAgICAgICAgICAg
ICAgKm1fcFZSUmVzb3VyY2VzOworICAgICAgICAgICAgICBJVlJSZW5kZXJNb2RlbHMgICAgICAg
ICAgICAgICptX3BWUlJlbmRlck1vZGVsczsKKyAgICAgICAgICAgICAgSVZSRXh0ZW5kZWREaXNw
bGF5ICAgICAgICptX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgSVZSU2V0dGlu
Z3MgICAgICAgICAgICAgICAgICAgICAqbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgSVZS
QXBwbGljYXRpb25zICAgICAgICAgICAgICAqbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAg
ICAgIElWUlRyYWNrZWRDYW1lcmEgICAgICAgKm1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICAg
ICAgICAgSVZSU2NyZWVuc2hvdHMgICAgICAgICAgICAgICptX3BWUlNjcmVlbnNob3RzOworICAg
ICAgICAgICAgICBJVlJEcml2ZXJNYW5hZ2VyICAgICAgICptX3BWUkRyaXZlck1hbmFnZXI7Cisg
ICAgICAgfTsKKworICAgICAgIGlubGluZSBDT3BlblZSQ29udGV4dCAmT3BlblZSSW50ZXJuYWxf
TW9kdWxlQ29udGV4dCgpCisgICAgICAgeworICAgICAgICAgICAgICBzdGF0aWMgdm9pZCAqY3R4
WyBzaXplb2YoIENPcGVuVlJDb250ZXh0ICkgLyBzaXplb2YoIHZvaWQgKiApIF07CisgICAgICAg
ICAgICAgIHJldHVybiAqKCBDT3BlblZSQ29udGV4dCAqICljdHg7IC8vIGJ5cGFzcyB6ZXJvLWlu
aXQgY29uc3RydWN0b3IKKyAgICAgICB9CisKKyAgICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9D
QUxMVFlQRSBWUlN5c3RlbSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQo
KS5WUlN5c3RlbSgpOyB9CisgICAgICAgaW5saW5lIElWUkNoYXBlcm9uZSAqVlJfQ0FMTFRZUEUg
VlJDaGFwZXJvbmUoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJD
aGFwZXJvbmUoKTsgfQorICAgICAgIGlubGluZSBJVlJDaGFwZXJvbmVTZXR1cCAqVlJfQ0FMTFRZ
UEUgVlJDaGFwZXJvbmVTZXR1cCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQoKS5WUkNoYXBlcm9uZVNldHVwKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQ29tcG9zaXRvciAq
VlJfQ0FMTFRZUEUgVlJDb21wb3NpdG9yKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
Q29udGV4dCgpLlZSQ29tcG9zaXRvcigpOyB9CisgICAgICAgaW5saW5lIElWUk92ZXJsYXkgKlZS
X0NBTExUWVBFIFZST3ZlcmxheSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQoKS5WUk92ZXJsYXkoKTsgfQorICAgICAgIGlubGluZSBJVlJTY3JlZW5zaG90cyAqVlJfQ0FM
TFRZUEUgVlJTY3JlZW5zaG90cygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQoKS5WUlNjcmVlbnNob3RzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSUmVuZGVyTW9kZWxzICpW
Ul9DQUxMVFlQRSBWUlJlbmRlck1vZGVscygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVs
ZUNvbnRleHQoKS5WUlJlbmRlck1vZGVscygpOyB9CisgICAgICAgaW5saW5lIElWUkFwcGxpY2F0
aW9ucyAqVlJfQ0FMTFRZUEUgVlJBcHBsaWNhdGlvbnMoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5h
bF9Nb2R1bGVDb250ZXh0KCkuVlJBcHBsaWNhdGlvbnMoKTsgfQorICAgICAgIGlubGluZSBJVlJT
ZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQoKS5WUlNldHRpbmdzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSUmVzb3Vy
Y2VzICpWUl9DQUxMVFlQRSBWUlJlc291cmNlcygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQoKS5WUlJlc291cmNlcygpOyB9CisgICAgICAgaW5saW5lIElWUkV4dGVuZGVk
RGlzcGxheSAqVlJfQ0FMTFRZUEUgVlJFeHRlbmRlZERpc3BsYXkoKSB7IHJldHVybiBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJFeHRlbmRlZERpc3BsYXkoKTsgfQorICAgICAgIGlu
bGluZSBJVlJUcmFja2VkQ2FtZXJhICpWUl9DQUxMVFlQRSBWUlRyYWNrZWRDYW1lcmEoKSB7IHJl
dHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJUcmFja2VkQ2FtZXJhKCk7IH0K
KyAgICAgICBpbmxpbmUgSVZSRHJpdmVyTWFuYWdlciAqVlJfQ0FMTFRZUEUgVlJEcml2ZXJNYW5h
Z2VyKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSRHJpdmVyTWFu
YWdlcigpOyB9CisKKyAgICAgICBpbmxpbmUgdm9pZCBDT3BlblZSQ29udGV4dDo6Q2xlYXIoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSBudWxscHRyOworICAgICAgICAg
ICAgICBtX3BWUkNoYXBlcm9uZSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ2hhcGVy
b25lU2V0dXAgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxs
cHRyOworICAgICAgICAgICAgICBtX3BWUk92ZXJsYXkgPSBudWxscHRyOworICAgICAgICAgICAg
ICBtX3BWUlJlbmRlck1vZGVscyA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSRXh0ZW5k
ZWREaXNwbGF5ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG51bGxw
dHI7CisgICAgICAgICAgICAgIG1fcFZSQXBwbGljYXRpb25zID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJS
ZXNvdXJjZXMgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlNjcmVlbnNob3RzID0gbnVs
bHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJEcml2ZXJNYW5hZ2VyID0gbnVsbHB0cjsKKyAgICAg
ICB9CisgICAgICAgCisgICAgICAgVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZS
X0luaXRJbnRlcm5hbDIoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBl
IGVBcHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApOworICAgICAgIFZS
X0lOVEVSRkFDRSB2b2lkIFZSX0NBTExUWVBFIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKKworICAg
ICAgIC8qKiBGaW5kcyB0aGUgYWN0aXZlIGluc3RhbGxhdGlvbiBvZiB2cmNsaWVudC5kbGwgYW5k
IGluaXRpYWxpemVzIGl0ICovCisgICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfSW5pdCggRVZS
SW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwg
Y29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkKKyAgICAgICB7CisgICAgICAgICAgICAgIElWUlN5
c3RlbSAqcFZSU3lzdGVtID0gbnVsbHB0cjsKKworICAgICAgICAgICAgICBFVlJJbml0RXJyb3Ig
ZUVycm9yOworICAgICAgICAgICAgICBWUlRva2VuKCkgPSBWUl9Jbml0SW50ZXJuYWwyKCAmZUVy
cm9yLCBlQXBwbGljYXRpb25UeXBlLCBwU3RhcnR1cEluZm8gKTsKKyAgICAgICAgICAgICAgQ09w
ZW5WUkNvbnRleHQgJmN0eCA9IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKTsKKyAgICAg
ICAgICAgICAgY3R4LkNsZWFyKCk7CisKKyAgICAgICAgICAgICAgaWYgKCBlRXJyb3IgPT0gVlJJ
bml0RXJyb3JfTm9uZSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlm
ICggVlJfSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoIElWUlN5c3RlbV9WZXJzaW9uICkgKQorICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBWUlN5c3Rl
bSA9IFZSU3lzdGVtKCk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVFcnJvciA9IFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQ7CisgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBpZiAoIHBlRXJy
b3IgKQorICAgICAgICAgICAgICAgICAgICAgKnBlRXJyb3IgPSBlRXJyb3I7CisgICAgICAgICAg
ICAgIHJldHVybiBwVlJTeXN0ZW07CisgICAgICAgfQorCisgICAgICAgLyoqIHVubG9hZHMgdnJj
bGllbnQuZGxsLiBBbnkgaW50ZXJmYWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUK
KyAgICAgICAqIGludmFsaWQgYWZ0ZXIgdGhpcyBwb2ludCAqLworICAgICAgIGlubGluZSB2b2lk
IFZSX1NodXRkb3duKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSX1NodXRkb3duSW50ZXJu
YWwoKTsKKyAgICAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
aGVhZGVycy9vcGVudnJfYXBpLmNzIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMv
b3BlbnZyX2FwaS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTg1YWY0NTM0ZjAyNDgzZmE5Mzc5YTZlNThmYWU4
YTE5NWIxMWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hl
YWRlcnMvb3BlbnZyX2FwaS5jcwpAQCAtMCwwICsxLDQ3ODYgQEAKKy8vPT09PT09PSBDb3B5cmln
aHQgKGMpIFZhbHZlIENvcnBvcmF0aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVkLiA9PT09PT09PT09
PT09PT0KKy8vCisvLyBQdXJwb3NlOiBUaGlzIGZpbGUgY29udGFpbnMgQyMvbWFuYWdlZCBjb2Rl
IGJpbmRpbmdzIGZvciB0aGUgT3BlblZSIGludGVyZmFjZXMKKy8vIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCwgZG8gbm90IGVkaXQgaXQuCisvLworLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
Cit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7Cit1
c2luZyBWYWx2ZS5WUjsKKworbmFtZXNwYWNlIFZhbHZlLlZSCit7CisKK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSU3lzdGVtCit7CisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdl
dFNpemUocmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJl
Y29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSBHZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDQ0X3QgX0dldFByb2pl
Y3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclopOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldFByb2plY3Rpb25NYXRyaXggR2V0UHJvamVjdGlvbk1hdHJpeDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0UHJvamVjdGlvblJhdyhFVlJFeWUgZUV5ZSwg
cmVmIGZsb2F0IHBmTGVmdCwgcmVmIGZsb2F0IHBmUmlnaHQsIHJlZiBmbG9hdCBwZlRvcCwgcmVm
IGZsb2F0IHBmQm90dG9tKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcm9qZWN0aW9uUmF3IEdldFByb2plY3Rpb25S
YXc7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVEaXN0b3J0
aW9uKEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYsIHJlZiBEaXN0b3J0aW9uQ29vcmRp
bmF0ZXNfdCBwRGlzdG9ydGlvbkNvb3JkaW5hdGVzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21wdXRlRGlzdG9ydGlv
biBDb21wdXRlRGlzdG9ydGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSG1k
TWF0cml4MzRfdCBfR2V0RXllVG9IZWFkVHJhbnNmb3JtKEVWUkV5ZSBlRXllKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRFeWVUb0hlYWRUcmFuc2Zvcm0gR2V0RXllVG9IZWFkVHJhbnNmb3JtOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRUaW1lU2luY2VMYXN0VnN5bmMocmVmIGZsb2F0
IHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCByZWYgdWxvbmcgcHVsRnJhbWVDb3VudGVyKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRUaW1lU2luY2VMYXN0VnN5bmMgR2V0VGltZVNpbmNlTGFzdFZzeW5jOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBpbnQgX0dldEQzRDlBZGFwdGVySW5kZXgoKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXREM0Q5QWRhcHRlckluZGV4IEdldEQzRDlBZGFwdGVySW5kZXg7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5B
ZGFwdGVySW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldERYR0lPdXRwdXRJbmZvIEdldERYR0lPdXRwdXRJbmZv
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rpc3BsYXlPbkRlc2t0
b3AoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9Jc0Rpc3BsYXlPbkRlc2t0b3AgSXNEaXNwbGF5T25EZXNrdG9wOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TZXREaXNwbGF5VmlzaWJpbGl0eShi
b29sIGJJc1Zpc2libGVPbkRlc2t0b3ApOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldERpc3BsYXlWaXNpYmlsaXR5IFNl
dERpc3BsYXlWaXNpYmlsaXR5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVPcmlnaW4sIGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgW0luLCBP
dXRdIFRyYWNrZWREZXZpY2VQb3NlX3RbXSBwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludCB1
blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RGV2aWNlVG9BYnNvbHV0
ZVRyYWNraW5nUG9zZSBHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXNldFNlYXRlZFplcm9Qb3NlKCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfUmVzZXRTZWF0ZWRaZXJvUG9zZSBSZXNldFNlYXRlZFplcm9Qb3NlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRTZWF0ZWRaZXJvUG9zZVRvU3Rh
bmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNlYXRlZFplcm9Qb3NlVG9T
dGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fi
c29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRN
YXRyaXgzNF90IF9HZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIEdl
dFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09m
Q2xhc3MoRVRyYWNrZWREZXZpY2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBbSW4sIE91dF0g
dWludFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZUlu
ZGV4QXJyYXlDb3VudCwgdWludCB1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyBHZXRTb3J0ZWRUcmFja2Vk
RGV2aWNlSW5kaWNlc09mQ2xhc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVE
ZXZpY2VBY3Rpdml0eUxldmVsIF9HZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCh1aW50IHVu
RGV2aWNlSWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsIEdldFRyYWNr
ZWREZXZpY2VBY3Rpdml0eUxldmVsOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2
b2lkIF9BcHBseVRyYW5zZm9ybShyZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9zZSwg
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlLCByZWYgSG1kTWF0cml4
MzRfdCBwVHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9BcHBseVRyYW5zZm9ybSBBcHBseVRyYW5zZm9ybTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0VHJhY2tlZERldmljZUlu
ZGV4Rm9yQ29udHJvbGxlclJvbGUoRVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlIEdldFRyYWNr
ZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIF9HZXRDb250cm9sbGVyUm9sZUZvclRyYWNr
ZWREZXZpY2VJbmRleCh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJS
b2xlRm9yVHJhY2tlZERldmljZUluZGV4IEdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmlj
ZUluZGV4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVHJhY2tlZERldmljZUNs
YXNzIF9HZXRUcmFja2VkRGV2aWNlQ2xhc3ModWludCB1bkRldmljZUluZGV4KTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodWludCB1
bkRldmljZUluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQgSXNUcmFja2Vk
RGV2aWNlQ29ubmVjdGVkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSBHZXRCb29sVHJhY2tlZERldmljZVBy
b3BlcnR5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBmbG9hdCBfR2V0RmxvYXRU
cmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0
eTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMlRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgcmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEludDMy
VHJhY2tlZERldmljZVByb3BlcnR5IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5OworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0VWludDY0VHJhY2tlZERldmlj
ZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCByZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VWludDY0VHJh
Y2tlZERldmljZVByb3BlcnR5IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSG1kTWF0cml4MzRfdCBfR2V0TWF0cml4MzRUcmFj
a2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRN
YXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9w
ZXJ0eTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U3RyaW5nVHJh
Y2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVm
ZmVyU2l6ZSwgcmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFN0
cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSBHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHk7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0UHJvcEVycm9yTmFt
ZUZyb21FbnVtKEVUcmFja2VkUHJvcGVydHlFcnJvciBlcnJvcik7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJvcEVy
cm9yTmFtZUZyb21FbnVtIEdldFByb3BFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUG9sbE5leHRFdmVudChyZWYgVlJFdmVudF90IHBFdmVu
dCwgdWludCB1bmNiVlJFdmVudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUG9sbE5leHRFdmVudCBQb2xsTmV4dEV2ZW50
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Qb2xsTmV4dEV2ZW50V2l0
aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgcmVmIFZSRXZlbnRfdCBwRXZl
bnQsIHVpbnQgdW5jYlZSRXZlbnQsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2
aWNlUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfUG9sbE5leHRFdmVudFdpdGhQb3NlIFBvbGxOZXh0RXZlbnRXaXRo
UG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRFdmVudFR5
cGVOYW1lRnJvbUVudW0oRVZSRXZlbnRUeXBlIGVUeXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRFdmVudFR5cGVO
YW1lRnJvbUVudW0gR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBIaWRkZW5BcmVhTWVzaF90IF9HZXRIaWRkZW5BcmVhTWVzaChFVlJFeWUg
ZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRIaWRkZW5BcmVhTWVz
aCBHZXRIaWRkZW5BcmVhTWVzaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfR2V0Q29udHJvbGxlclN0YXRlKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBW
UkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3Rh
dGVTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRDb250cm9sbGVyU3RhdGUgR2V0Q29udHJvbGxlclN0YXRlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCB1aW50IHVuQ29udHJvbGxl
ckRldmljZUluZGV4LCByZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLCB1
aW50IHVuQ29udHJvbGxlclN0YXRlU2l6ZSwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNr
ZWREZXZpY2VQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSBHZXRDb250
cm9sbGVyU3RhdGVXaXRoUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQg
dW5BeGlzSWQsIGNoYXIgdXNEdXJhdGlvbk1pY3JvU2VjKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9UcmlnZ2VySGFwdGlj
UHVsc2UgVHJpZ2dlckhhcHRpY1B1bHNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBJbnRQdHIgX0dldEJ1dHRvbklkTmFtZUZyb21FbnVtKEVWUkJ1dHRvbklkIGVCdXR0b25JZCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0QnV0dG9uSWROYW1lRnJvbUVudW0gR2V0QnV0dG9uSWROYW1lRnJvbUVudW07
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q29udHJvbGxlckF4
aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSBHZXRDb250cm9sbGVyQXhpc1R5
cGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0Nh
cHR1cmVJbnB1dEZvY3VzKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2FwdHVyZUlucHV0Rm9jdXMgQ2FwdHVyZUlucHV0
Rm9jdXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbGVhc2VJbnB1
dEZvY3VzKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfUmVsZWFzZUlucHV0Rm9jdXMgUmVsZWFzZUlucHV0Rm9jdXM7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzSW5wdXRGb2N1c0NhcHR1cmVk
QnlBbm90aGVyUHJvY2VzcygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVy
UHJvY2VzcyBJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3M7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0RyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2
aWNlSW5kZXgsIHN0cmluZyBwY2hSZXF1ZXN0LCBzdHJpbmcgcGNoUmVzcG9uc2VCdWZmZXIsIHVp
bnQgdW5SZXNwb25zZUJ1ZmZlclNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0RyaXZlckRlYnVnUmVxdWVzdCBEcml2
ZXJEZWJ1Z1JlcXVlc3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkZpcm13
YXJlRXJyb3IgX1BlcmZvcm1GaXJtd2FyZVVwZGF0ZSh1aW50IHVuRGV2aWNlSW5kZXgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1BlcmZvcm1GaXJtd2FyZVVwZGF0ZSBQZXJmb3JtRmlybXdhcmVVcGRhdGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0Fja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmc7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0Fja25vd2xlZGdlUXVpdF9V
c2VyUHJvbXB0KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQgQWNrbm93bGVk
Z2VRdWl0X1VzZXJQcm9tcHQ7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJFeHRlbmRlZERpc3BsYXkKK3sKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldFdpbmRvd0JvdW5kcyhyZWYgaW50IHBuWCwgcmVm
IGludCBwblksIHJlZiB1aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRXaW5kb3dCb3VuZHMgR2V0V2luZG93Qm91bmRzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9HZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSwgcmVmIHVpbnQg
cG5YLCByZWYgdWludCBwblksIHJlZiB1aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRFeWVPdXRwdXRWaWV3cG9ydCBHZXRFeWVPdXRwdXRWaWV3cG9ydDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGlu
dCBwbkFkYXB0ZXJJbmRleCwgcmVmIGludCBwbkFkYXB0ZXJPdXRwdXRJbmRleCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87CisKK30KKworW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJUcmFja2VkQ2FtZXJh
Cit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldENhbWVyYUVycm9y
TmFtZUZyb21FbnVtKEVWUlRyYWNrZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldENhbWVyYUVycm9yTmFtZUZyb21FbnVtIEdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0hh
c0NhbWVyYSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIGJvb2wgcEhhc0NhbWVyYSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
SGFzQ2FtZXJhIEhhc0NhbWVyYTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
VHJhY2tlZENhbWVyYUVycm9yIF9HZXRDYW1lcmFGcmFtZVNpemUodWludCBuRGV2aWNlSW5kZXgs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgcmVmIHVpbnQgcG5XaWR0aCwg
cmVmIHVpbnQgcG5IZWlnaHQsIHJlZiB1aW50IHBuRnJhbWVCdWZmZXJTaXplKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRDYW1lcmFGcmFtZVNpemUgR2V0Q2FtZXJhRnJhbWVTaXplOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENhbWVyYUludHJpbnNpY3Mo
dWludCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwg
cmVmIEhtZFZlY3RvcjJfdCBwRm9jYWxMZW5ndGgsIHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0Q2FtZXJhSW50cmluc2ljcyBHZXRDYW1lcmFJbnRyaW5zaWNzOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENhbWVy
YVByb2plY3Rpb24odWludCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgZmxvYXQgZmxaTmVhciwgZmxvYXQgZmxaRmFyLCByZWYgSG1kTWF0cml4NDRf
dCBwUHJvamVjdGlvbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhUHJvamVjdGlvbiBHZXRDYW1lcmFQcm9q
ZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJh
RXJyb3IgX0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWludCBuRGV2aWNlSW5kZXgsIHJl
ZiB1bG9uZyBwSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9BY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIEFj
cXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1
bG9uZyBoVHJhY2tlZENhbWVyYSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2Vydmlj
ZSBSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIo
dWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSwgSW50UHRyIHBGcmFtZUJ1ZmZlciwgdWludCBuRnJhbWVCdWZmZXJTaXplLCByZWYgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJT
aXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVhbUZyYW1lQnVmZmVyIEdldFZpZGVvU3RyZWFtRnJh
bWVCdWZmZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciBfR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgVlJUZXh0dXJlQm91bmRzX3Qg
cFRleHR1cmVCb3VuZHMsIHJlZiB1aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBf
R2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEodWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNr
ZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3Vy
Y2UsIHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldywgcmVmIENhbWVyYVZpZGVv
U3RyZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsIHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEgR2V0VmlkZW9TdHJlYW1UZXh0dXJl
RDNEMTE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciBfR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0wodWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgcmVmIHVpbnQgcGdsVGV4dHVyZUlkLCBy
ZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJh
bWVIZWFkZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVHTCBHZXRWaWRlb1N0
cmVhbVRleHR1cmVHTDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIF9SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0wodWxvbmcgaFRyYWNrZWRD
YW1lcmEsIHVpbnQgZ2xUZXh0dXJlSWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VWaWRlb1N0cmVhbVRleHR1
cmVHTCBSZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0w7CisKK30KKworW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJBcHBsaWNhdGlvbnMKK3sK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0FkZEFw
cGxpY2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCwg
Ym9vbCBiVGVtcG9yYXJ5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9BZGRBcHBsaWNhdGlvbk1hbmlmZXN0IEFkZEFwcGxp
Y2F0aW9uTWFuaWZlc3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgX1JlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0
aW9uTWFuaWZlc3RGdWxsUGF0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCBS
ZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9Jc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0lzQXBwbGljYXRpb25JbnN0YWxsZWQgSXNBcHBsaWNhdGlvbkluc3RhbGxlZDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25Db3VudCgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldEFwcGxpY2F0aW9uQ291bnQgR2V0QXBwbGljYXRpb25Db3VudDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0QXBwbGljYXRpb25L
ZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlvbkluZGV4LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWls
ZGVyIHBjaEFwcEtleUJ1ZmZlciwgdWludCB1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
QXBwbGljYXRpb25LZXlCeUluZGV4IEdldEFwcGxpY2F0aW9uS2V5QnlJbmRleDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0QXBwbGljYXRp
b25LZXlCeVByb2Nlc3NJZCh1aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcgcGNoQXBwS2V5QnVmZmVy
LCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJv
Y2Vzc0lkIEdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQ7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEFwcGxpY2F0aW9uKHN0cmlu
ZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0xhdW5jaEFwcGxpY2F0aW9uIExhdW5jaEFwcGxpY2F0aW9u
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9M
YXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSwgc3RyaW5n
IHBjaE5ld0FwcEtleSwgW0luLCBPdXRdIEFwcE92ZXJyaWRlS2V5c190W10gcEtleXMsIHVpbnQg
dW5LZXlzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9MYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uIExhdW5jaFRlbXBsYXRl
QXBwbGljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0
aW9uRXJyb3IgX0xhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlw
ZSwgc3RyaW5nIHBjaEFyZ3MpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBl
IExhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9MYXVuY2hEYXNoYm9hcmRPdmVybGF5KHN0cmlu
ZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkgTGF1bmNoRGFzaGJv
YXJkT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FuY2Vs
QXBwbGljYXRpb25MYXVuY2goc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuY2VsQXBwbGlj
YXRpb25MYXVuY2ggQ2FuY2VsQXBwbGljYXRpb25MYXVuY2g7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0lkZW50aWZ5QXBwbGljYXRpb24odWlu
dCB1blByb2Nlc3NJZCwgc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSWRlbnRpZnlBcHBsaWNh
dGlvbiBJZGVudGlmeUFwcGxpY2F0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRBcHBsaWNhdGlvblByb2Nlc3NJZCBHZXRBcHBsaWNhdGlvblByb2Nlc3NJZDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRBcHBsaWNhdGlvbnNFcnJvck5h
bWVGcm9tRW51bShFVlJBcHBsaWNhdGlvbkVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNh
dGlvbnNFcnJvck5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25Qcm9w
ZXJ0eVN0cmluZyhzdHJpbmcgcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9w
ZXJ0eSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1
aW50IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgcmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVF
cnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyBHZXRBcHBsaWNhdGlv
blByb3BlcnR5U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbChzdHJpbmcgcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlv
blByb3BlcnR5IGVQcm9wZXJ0eSwgcmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJv
b2w7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRBcHBsaWNhdGlv
blByb3BlcnR5VWludDY0KHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkg
ZVByb3BlcnR5LCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRB
cHBsaWNhdGlvblByb3BlcnR5VWludDY0IEdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQ7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX1NldEFw
cGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggU2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvbkF1
dG9MYXVuY2goc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoIEdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUoc3RyaW5nIHBjaEFwcEtleSwgc3RyaW5nIHBjaE1pbWVUeXBlKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXREZWZh
dWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlw
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0RGVmYXVsdEFwcGxp
Y2F0aW9uRm9yTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXBwS2V5QnVm
ZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREZWZhdWx0QXBwbGljYXRp
b25Gb3JNaW1lVHlwZSBHZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1l
VHlwZXMoc3RyaW5nIHBjaEFwcEtleSwgc3RyaW5nIHBjaE1pbWVUeXBlc0J1ZmZlciwgdWludCB1
bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlw
ZXMgR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXM7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUoc3Ry
aW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50
IHVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbnNUaGF0
U3VwcG9ydE1pbWVUeXBlIEdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uTGF1bmNoQXJn
dW1lbnRzKHVpbnQgdW5IYW5kbGUsIHN0cmluZyBwY2hBcmdzLCB1aW50IHVuQXJncyk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMgR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1
bWVudHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJy
b3IgX0dldFN0YXJ0aW5nQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleUJ1ZmZlciwgdWludCB1
bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiBHZXRTdGFy
dGluZ0FwcGxpY2F0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25TdGF0ZSBfR2V0VHJhbnNpdGlvblN0YXRlKCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
VHJhbnNpdGlvblN0YXRlIEdldFRyYW5zaXRpb25TdGF0ZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1
bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUFwcGxpY2F0aW9uUHJl
bGF1bmNoQ2hlY2sgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2s7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0
YXRlTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0gR2V0QXBwbGlj
YXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNR
dWl0VXNlclByb21wdFJlcXVlc3RlZCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9MYXVuY2hJbnRl
cm5hbFByb2Nlc3Moc3RyaW5nIHBjaEJpbmFyeVBhdGgsIHN0cmluZyBwY2hBcmd1bWVudHMsIHN0
cmluZyBwY2hXb3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9MYXVuY2hJbnRlcm5hbFByb2Nlc3Mg
TGF1bmNoSW50ZXJuYWxQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDdXJyZW50U2NlbmVQ
cm9jZXNzSWQgR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkOworCit9CisKK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lCit7Cisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIF9H
ZXRDYWxpYnJhdGlvblN0YXRlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxp
YnJhdGlvblN0YXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQ
bGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCwgcmVmIGZsb2F0IHBTaXplWik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0UGxheUFyZWFTaXplIEdldFBsYXlBcmVhU2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfR2V0UGxheUFyZWFSZWN0KHJlZiBIbWRRdWFkX3QgcmVjdCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0UGxheUFyZWFSZWN0IEdldFBsYXlBcmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfUmVsb2FkSW5mbygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbG9hZEluZm8gUmVsb2Fk
SW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0U2NlbmVDb2xv
cihIbWRDb2xvcl90IGNvbG9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRTY2VuZUNvbG9yIFNldFNjZW5lQ29sb3I7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEJvdW5kc0NvbG9yKHJl
ZiBIbWRDb2xvcl90IHBPdXRwdXRDb2xvckFycmF5LCBpbnQgbk51bU91dHB1dENvbG9ycywgZmxv
YXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIHJlZiBIbWRDb2xvcl90IHBPdXRwdXRD
YW1lcmFDb2xvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Qm91bmRzQ29sb3IgR2V0Qm91bmRzQ29sb3I7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0FyZUJvdW5kc1Zpc2libGUoKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9BcmVCb3VuZHNWaXNpYmxlIEFyZUJvdW5kc1Zpc2libGU7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlQm91bmRzVmlzaWJsZShib29sIGJGb3JjZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfRm9yY2VCb3VuZHNWaXNpYmxlIEZvcmNlQm91bmRzVmlzaWJsZTsKKworfQorCitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUkNoYXBl
cm9uZVNldHVwCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Db21taXRX
b3JraW5nQ29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21t
aXRXb3JraW5nQ29weSBDb21taXRXb3JraW5nQ29weTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfUmV2ZXJ0V29ya2luZ0NvcHkoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXZlcnRXb3JraW5n
Q29weSBSZXZlcnRXb3JraW5nQ29weTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfR2V0V29ya2luZ1BsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLCByZWYgZmxvYXQg
cFNpemVaKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRXb3JraW5nUGxheUFyZWFTaXplIEdldFdvcmtpbmdQbGF5QXJl
YVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdQ
bGF5QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRXb3JraW5nUGxheUFy
ZWFSZWN0IEdldFdvcmtpbmdQbGF5QXJlYVJlY3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0dldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRR
dWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIEdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZv
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlQ29sbGlzaW9u
Qm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCByZWYgdWludCBw
dW5RdWFkc0NvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyBHZXRMaXZl
Q29sbGlzaW9uQm91bmRzSW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJp
eDM0X3QgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdv
cmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIEdldFdvcmtpbmdTZWF0ZWRaZXJv
UG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9HZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRN
YXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ1BsYXlBcmVhU2l6ZShmbG9hdCBzaXplWCwgZmxvYXQg
c2l6ZVopOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdQbGF5QXJlYVNpemUgU2V0V29ya2luZ1BsYXlBcmVh
U2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgdWlu
dCB1blF1YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIFNl
dFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9TZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYg
SG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgU2V0V29ya2luZ1Nl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX1NldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2Uo
cmVmIEhtZE1hdHJpeDM0X3QgcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRX
b3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxvYWRGcm9tRGlzayhFQ2hhcGVyb25lQ29uZmlnRmls
ZSBjb25maWdGaWxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9SZWxvYWRGcm9tRGlzayBSZWxvYWRGcm9tRGlzazsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlIEdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFn
c0luZm8oW0luLCBPdXRdIGJ5dGVbXSBwVGFnc0J1ZmZlciwgdWludCB1blRhZ0NvdW50KTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8gU2V0V29ya2luZ0NvbGxpc2lv
bkJvdW5kc1RhZ3NJbmZvOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8oW0luLCBPdXRdIGJ5dGVbXSBwVGFnc0J1ZmZl
ciwgcmVmIHVpbnQgcHVuVGFnQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNU
YWdzSW5mbyBHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm87CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX1NldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oW0luLCBP
dXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgdWludCB1blF1YWRzQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8gU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5m
bzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0TGl2ZVBoeXNpY2Fs
Qm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCByZWYgdWludCBw
dW5RdWFkc0NvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIEdldExpdmVQ
aHlzaWNhbEJvdW5kc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0V4cG9ydExpdmVUb0J1ZmZlcihTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBCdWZmZXIsIHJl
ZiB1aW50IHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9FeHBvcnRMaXZlVG9CdWZmZXIgRXhwb3J0
TGl2ZVRvQnVmZmVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9JbXBv
cnRGcm9tQnVmZmVyVG9Xb3JraW5nKHN0cmluZyBwQnVmZmVyLCB1aW50IG5JbXBvcnRGbGFncyk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZyBJbXBvcnRGcm9tQnVmZmVyVG9Xb3Jr
aW5nOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1Ymxp
YyBzdHJ1Y3QgSVZSQ29tcG9zaXRvcgoreworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfU2V0VHJhY2tpbmdTcGFjZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TZXRUcmFja2luZ1NwYWNlIFNldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIF9HZXRUcmFja2luZ1Nw
YWNlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0VHJhY2tpbmdTcGFjZSBHZXRUcmFja2luZ1NwYWNlOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1dhaXRHZXRQb3Nl
cyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQg
dW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3RbXSBw
R2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfV2FpdEdl
dFBvc2VzIFdhaXRHZXRQb3NlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
Q29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZXMoW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3Nl
X3RbXSBwUmVuZGVyUG9zZUFycmF5LCB1aW50IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIFtJbiwg
T3V0XSBUcmFja2VkRGV2aWNlUG9zZV90W10gcEdhbWVQb3NlQXJyYXksIHVpbnQgdW5HYW1lUG9z
ZUFycmF5Q291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldExhc3RQb3NlcyBHZXRMYXN0UG9zZXM7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TGFzdFBvc2VG
b3JUcmFja2VkRGV2aWNlSW5kZXgodWludCB1bkRldmljZUluZGV4LCByZWYgVHJhY2tlZERldmlj
ZVBvc2VfdCBwT3V0cHV0UG9zZSwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQ
b3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCBHZXRMYXN0UG9z
ZUZvclRyYWNrZWREZXZpY2VJbmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSQ29tcG9zaXRvckVycm9yIF9TdWJtaXQoRVZSRXllIGVFeWUsIHJlZiBUZXh0dXJlX3QgcFRl
eHR1cmUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwQm91bmRzLCBFVlJTdWJtaXRGbGFncyBuU3Vi
bWl0RmxhZ3MpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1N1Ym1pdCBTdWJtaXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2xlYXJM
YXN0U3VibWl0dGVkRnJhbWUgQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Bvc3RQcmVzZW50SGFuZG9mZigpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Bv
c3RQcmVzZW50SGFuZG9mZiBQb3N0UHJlc2VudEhhbmRvZmY7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGlt
aW5nIHBUaW1pbmcsIHVpbnQgdW5GcmFtZXNBZ28pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZyYW1lVGltaW5nIEdl
dEZyYW1lVGltaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRG
cmFtZVRpbWluZ3MocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCBuRnJh
bWVzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWluZ3MgR2V0RnJhbWVUaW1pbmdzOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBmbG9hdCBfR2V0RnJhbWVUaW1lUmVtYWluaW5nKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0RnJhbWVUaW1lUmVtYWluaW5nIEdldEZyYW1lVGltZVJlbWFpbmluZzsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBD
b21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsIHVpbnQgblN0YXRzU2l6ZUluQnl0ZXMp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldEN1bXVsYXRpdmVTdGF0cyBHZXRDdW11bGF0aXZlU3RhdHM7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZhZGVUb0NvbG9yKGZsb2F0IGZTZWNvbmRz
LCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJv
b2wgYkJhY2tncm91bmQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0ZhZGVUb0NvbG9yIEZhZGVUb0NvbG9yOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRDb2xvcl90IF9HZXRDdXJyZW50RmFkZUNvbG9y
KGJvb2wgYkJhY2tncm91bmQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRGYWRlQ29sb3IgR2V0Q3VycmVu
dEZhZGVDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRmFkZUdy
aWQoZmxvYXQgZlNlY29uZHMsIGJvb2wgYkZhZGVJbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRmFkZUdyaWQgRmFkZUdy
aWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRDdXJyZW50R3Jp
ZEFscGhhKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0Q3VycmVudEdyaWRBbHBoYSBHZXRDdXJyZW50R3JpZEFscGhh
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1Nl
dFNreWJveE92ZXJyaWRlKFtJbiwgT3V0XSBUZXh0dXJlX3RbXSBwVGV4dHVyZXMsIHVpbnQgdW5U
ZXh0dXJlQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1NldFNreWJveE92ZXJyaWRlIFNldFNreWJveE92ZXJyaWRl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9DbGVhclNreWJveE92ZXJy
aWRlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfQ2xlYXJTa3lib3hPdmVycmlkZSBDbGVhclNreWJveE92ZXJyaWRlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yQnJpbmdUb0Zy
b250KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvckJyaW5nVG9Gcm9udCBDb21wb3NpdG9yQnJpbmdUb0Zy
b250OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yR29U
b0JhY2soKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9Db21wb3NpdG9yR29Ub0JhY2sgQ29tcG9zaXRvckdvVG9CYWNrOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yUXVpdCgpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0NvbXBvc2l0b3JRdWl0IENvbXBvc2l0b3JRdWl0OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Z1bGxzY3JlZW4oKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0Z1bGxzY3JlZW4g
SXNGdWxsc2NyZWVuOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRD
dXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDdXJyZW50U2NlbmVGb2N1c1By
b2Nlc3MgR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRMYXN0RnJhbWVSZW5kZXJlcigpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExhc3RG
cmFtZVJlbmRlcmVyIEdldExhc3RGcmFtZVJlbmRlcmVyOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9DYW5SZW5kZXJTY2VuZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NhblJlbmRlclNjZW5l
IENhblJlbmRlclNjZW5lOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
aG93TWlycm9yV2luZG93KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2hvd01pcnJvcldpbmRvdyBTaG93TWlycm9yV2lu
ZG93OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9IaWRlTWlycm9yV2lu
ZG93KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfSGlkZU1pcnJvcldpbmRvdyBIaWRlTWlycm9yV2luZG93OworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc01pcnJvcldpbmRvd1Zpc2libGUoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9Jc01pcnJvcldpbmRvd1Zpc2libGUgSXNNaXJyb3JXaW5kb3dWaXNpYmxlOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yRHVtcEltYWdlcygp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzIENvbXBvc2l0b3JEdW1wSW1hZ2VzOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TaG91bGRBcHBSZW5kZXJXaXRoTG93
UmVzb3VyY2VzKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyBTaG91
bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9Gb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24oYm9vbCBiT3ZlcnJpZGUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0ZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbiBGb3JjZUludGVybGVhdmVk
UmVwcm9qZWN0aW9uT247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0Zv
cmNlUmVjb25uZWN0UHJvY2VzcygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZvcmNlUmVjb25uZWN0UHJvY2VzcyBGb3Jj
ZVJlY29ubmVjdFByb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQg
X1N1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU3VzcGVuZFJlbmRlcmlu
ZyBTdXNwZW5kUmVuZGVyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJD
b21wb3NpdG9yRXJyb3IgX0dldE1pcnJvclRleHR1cmVEM0QxMShFVlJFeWUgZUV5ZSwgSW50UHRy
IHBEM0QxMURldmljZU9yUmVzb3VyY2UsIHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNl
Vmlldyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0TWlycm9yVGV4dHVyZUQzRDExIEdldE1pcnJvclRleHR1cmVEM0Qx
MTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZU1pcnJvclRl
eHR1cmVEM0QxMShJbnRQdHIgcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxl
YXNlTWlycm9yVGV4dHVyZUQzRDExIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTE7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWlycm9yVGV4
dHVyZUdMKEVWUkV5ZSBlRXllLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIEludFB0ciBwZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRNaXJyb3JUZXh0dXJlR0wgR2V0TWlycm9yVGV4
dHVyZUdMOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9SZWxlYXNlU2hh
cmVkR0xUZXh0dXJlKHVpbnQgZ2xUZXh0dXJlSWQsIEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5k
bGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUgUmVsZWFzZVNoYXJlZEdMVGV4dHVy
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfTG9ja0dMU2hhcmVkVGV4
dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Mb2Nr
R0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIExvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1VubG9ja0dMU2hhcmVkVGV4dHVy
ZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9VbmxvY2tH
TFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MgVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRWdWxrYW5JbnN0YW5jZUV4
dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50
IHVuQnVmZmVyU2l6ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWly
ZWQgR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJ
bnRQdHIgcFBoeXNpY2FsRGV2aWNlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVl
LCB1aW50IHVuQnVmZmVyU2l6ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1Jl
cXVpcmVkIEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZDsKKworfQorCitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUk92ZXJsYXkK
K3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfRmluZE92
ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksIHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfRmluZE92ZXJsYXkgRmluZE92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfQ3JlYXRlT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtl
eSwgc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5hbWUsIHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfQ3JlYXRlT3ZlcmxheSBDcmVhdGVPdmVybGF5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0Rlc3Ryb3lPdmVybGF5KHVsb25nIHVs
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRGVzdHJveU92ZXJsYXkgRGVzdHJveU92ZXJsYXk7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0SGlnaFF1
YWxpdHlPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0SGlnaFF1YWxp
dHlPdmVybGF5IFNldEhpZ2hRdWFsaXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdWxvbmcgX0dldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEhpZ2hR
dWFsaXR5T3ZlcmxheSBHZXRIaWdoUXVhbGl0eU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlLZXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBT
eXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSwgcmVm
IEVWUk92ZXJsYXlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlLZXkgR2V0T3Zlcmxh
eUtleTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0T3ZlcmxheU5h
bWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZh
bHVlLCB1aW50IHVuQnVmZmVyU2l6ZSwgcmVmIEVWUk92ZXJsYXlFcnJvciBwRXJyb3IpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlOYW1lIEdldE92ZXJsYXlOYW1lOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlJbWFnZURhdGEodWxvbmcgdWxP
dmVybGF5SGFuZGxlLCBJbnRQdHIgcHZCdWZmZXIsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgdWlu
dCBwdW5XaWR0aCwgcmVmIHVpbnQgcHVuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW1hZ2VE
YXRhIEdldE92ZXJsYXlJbWFnZURhdGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEludFB0ciBfR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKEVWUk92ZXJsYXlFcnJvciBlcnJv
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtIEdldE92ZXJsYXlFcnJvck5h
bWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9TZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1
blBJRCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCBTZXRPdmVybGF5UmVuZGVyaW5n
UGlkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5UmVu
ZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVJlbmRl
cmluZ1BpZCBHZXRPdmVybGF5UmVuZGVyaW5nUGlkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9TZXRPdmVybGF5RmxhZyBTZXRPdmVybGF5RmxhZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5RmxhZyh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgcmVmIGJvb2wgcGJFbmFibGVkKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRPdmVybGF5RmxhZyBHZXRPdmVybGF5RmxhZzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5Q29sb3IodWxvbmcgdWxP
dmVybGF5SGFuZGxlLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRPdmVybGF5Q29sb3IgU2V0T3ZlcmxheUNvbG9yOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlJlZCwgcmVmIGZsb2F0IHBmR3JlZW4sIHJlZiBmbG9h
dCBwZkJsdWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlDb2xvciBHZXRPdmVybGF5Q29sb3I7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUFs
cGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZkFscGhhKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5QWxwaGEgU2V0T3ZlcmxheUFscGhhOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IHJlZiBmbG9hdCBwZkFscGhhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QWxwaGEgR2V0T3ZlcmxheUFs
cGhhOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nl
dE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFz
cGVjdCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRleGVsQXNwZWN0IFNldE92ZXJsYXlUZXhlbEFzcGVj
dDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRP
dmVybGF5VGV4ZWxBc3BlY3QodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZUZXhl
bEFzcGVjdCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleGVsQXNwZWN0IEdldE92ZXJsYXlUZXhlbEFz
cGVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9T
ZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blNvcnRPcmRl
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0T3ZlcmxheVNvcnRPcmRlciBTZXRPdmVybGF5U29ydE9yZGVyOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlT
b3J0T3JkZXIodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5Tb3J0T3JkZXIpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldE92ZXJsYXlTb3J0T3JkZXIgR2V0T3ZlcmxheVNvcnRPcmRlcjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5V2lkdGhJ
bk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRPdmVybGF5V2lkdGhJbk1ldGVycyBTZXRPdmVybGF5V2lkdGhJbk1ldGVyczsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5
V2lkdGhJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZldpZHRoSW5N
ZXRlcnMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzIEdldE92ZXJsYXlXaWR0aElu
TWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcgdWxPdmVybGF5
SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgZk1heERpc3RhbmNlSW5N
ZXRlcnMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMg
U2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVyczsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmTWlu
RGlzdGFuY2VJbk1ldGVycywgcmVmIGZsb2F0IHBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBHZXRPdmVybGF5QXV0
b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIFNldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVy
bGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgRUNvbG9yU3Bh
Y2UgcGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmVDb2xvclNw
YWNlIEdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5VGV4dHVyZUJvdW5kcyh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3Vu
ZHMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUZXh0dXJlQm91bmRzIFNldE92ZXJsYXlUZXh0dXJlQm91
bmRzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSVGV4dHVy
ZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1
cmVCb3VuZHMgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcg
dWxPdmVybGF5SGFuZGxlLCByZWYgVlJPdmVybGF5VHJhbnNmb3JtVHlwZSBwZVRyYW5zZm9ybVR5
cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldE92ZXJsYXlUcmFuc2Zvcm1UeXBlIEdldE92ZXJsYXlUcmFuc2Zvcm1U
eXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nl
dE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgcmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRy
YWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUgU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUcmFuc2Zvcm1BYnNv
bHV0ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBw
ZVRyYWNraW5nT3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092
ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBHZXRP
dmVybGF5VHJhbnNmb3JtQWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHVpbnQgdW5UcmFja2VkRGV2aWNlLCByZWYgSG1kTWF0
cml4MzRfdCBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSBTZXRPdmVybGF5VHJhbnNmb3Jt
VHJhY2tlZERldmljZVJlbGF0aXZlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLCByZWYgSG1k
TWF0cml4MzRfdCBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSBHZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZVJlbGF0aXZlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9u
ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1bkRldmljZUluZGV4LCBzdHJpbmcgcGNo
Q29tcG9uZW50TmFtZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VD
b21wb25lbnQgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQ7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRy
YW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYg
dWludCBwdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHVpbnQgdW5Db21w
b25lbnROYW1lU2l6ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VD
b21wb25lbnQgR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQ7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd092ZXJsYXko
dWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93T3ZlcmxheSBTaG93T3ZlcmxheTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9IaWRlT3Zl
cmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hpZGVPdmVybGF5IEhpZGVPdmVy
bGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc092ZXJsYXlWaXNp
YmxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNPdmVybGF5VmlzaWJsZSBJc092
ZXJsYXlWaXNpYmxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX0dldFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9y
Ml90IGNvb3JkaW5hdGVzSW5PdmVybGF5LCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhbnNmb3Jt
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXMgR2V0VHJhbnNmb3Jt
Rm9yT3ZlcmxheUNvb3JkaW5hdGVzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBi
b29sIF9Qb2xsTmV4dE92ZXJsYXlFdmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUkV2
ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Qb2xsTmV4dE92ZXJsYXlF
dmVudCBQb2xsTmV4dE92ZXJsYXlFdmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5
SGFuZGxlLCByZWYgVlJPdmVybGF5SW5wdXRNZXRob2QgcGVJbnB1dE1ldGhvZCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheUlucHV0TWV0aG9kIEdldE92ZXJsYXlJbnB1dE1ldGhvZDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5SW5wdXRNZXRo
b2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRo
b2QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCBTZXRPdmVybGF5SW5wdXRNZXRob2Q7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheU1vdXNlU2NhbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgSG1kVmVjdG9yMl90IHB2
ZWNNb3VzZVNjYWxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5TW91c2VTY2FsZSBHZXRPdmVybGF5TW91
c2VTY2FsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9TZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0
b3IyX3QgcHZlY01vdXNlU2NhbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlNb3VzZVNjYWxlIFNldE92
ZXJsYXlNb3VzZVNjYWxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9D
b21wdXRlT3ZlcmxheUludGVyc2VjdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92
ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCBwUGFyYW1zLCByZWYgVlJPdmVybGF5SW50ZXJzZWN0
aW9uUmVzdWx0c190IHBSZXN1bHRzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21wdXRlT3ZlcmxheUludGVyc2VjdGlv
biBDb21wdXRlT3ZlcmxheUludGVyc2VjdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxv
bmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4KTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9IYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSBIYW5kbGVDb250cm9s
bGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfSXNIb3ZlclRhcmdldE92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9Jc0hvdmVyVGFyZ2V0T3ZlcmxheSBJc0hvdmVyVGFyZ2V0T3ZlcmxheTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldEdhbWVwYWRGb2N1c092ZXJsYXko
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRHYW1lcGFkRm9jdXNPdmVybGF5IEdldEdhbWVwYWRGb2N1c092ZXJsYXk7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0R2Ft
ZXBhZEZvY3VzT3ZlcmxheSh1bG9uZyB1bE5ld0ZvY3VzT3ZlcmxheSk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0R2Ft
ZXBhZEZvY3VzT3ZlcmxheSBTZXRHYW1lcGFkRm9jdXNPdmVybGF5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlOZWlnaGJvcihFT3Zl
cmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCB1bG9uZyB1bEZyb20sIHVsb25nIHVsVG8pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldE92ZXJsYXlOZWlnaGJvciBTZXRPdmVybGF5TmVpZ2hib3I7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfTW92ZUdhbWVwYWRGb2N1c1RvTmVp
Z2hib3IoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgdWxvbmcgdWxGcm9tKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvciBNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcjsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVy
bGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBUZXh0dXJlX3QgcFRleHR1cmUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1NldE92ZXJsYXlUZXh0dXJlIFNldE92ZXJsYXlUZXh0dXJlOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0NsZWFyT3ZlcmxheVRleHR1
cmUodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhck92ZXJsYXlUZXh0dXJlIENs
ZWFyT3ZlcmxheVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBw
dkJ1ZmZlciwgdWludCB1bldpZHRoLCB1aW50IHVuSGVpZ2h0LCB1aW50IHVuRGVwdGgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldE92ZXJsYXlSYXcgU2V0T3ZlcmxheVJhdzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5RnJvbUZpbGUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLCBzdHJpbmcgcGNoRmlsZVBhdGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGcm9tRmls
ZSBTZXRPdmVybGF5RnJvbUZpbGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBy
ZWYgSW50UHRyIHBOYXRpdmVUZXh0dXJlSGFuZGxlLCBJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYs
IHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCwgcmVmIHVpbnQgcE5hdGl2ZUZvcm1h
dCwgcmVmIEVUZXh0dXJlVHlwZSBwQVBJVHlwZSwgcmVmIEVDb2xvclNwYWNlIHBDb2xvclNwYWNl
LCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJs
YXlUZXh0dXJlIEdldE92ZXJsYXlUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSwgSW50UHRyIHBOYXRpdmVUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxl
YXNlTmF0aXZlT3ZlcmxheUhhbmRsZSBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4
dHVyZVNpemUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwV2lkdGgsIHJlZiB1aW50
IHBIZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSBHZXRPdmVybGF5VGV4dHVy
ZVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
Q3JlYXRlRGFzaGJvYXJkT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtleSwgc3RyaW5nIHBjaE92
ZXJsYXlGcmllbmRseU5hbWUsIHJlZiB1bG9uZyBwTWFpbkhhbmRsZSwgcmVmIHVsb25nIHBUaHVt
Ym5haWxIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0NyZWF0ZURhc2hib2FyZE92ZXJsYXkgQ3JlYXRlRGFzaGJv
YXJkT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNEYXNo
Ym9hcmRWaXNpYmxlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNEYXNoYm9hcmRWaXNpYmxlIElzRGFzaGJvYXJkVmlz
aWJsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNBY3RpdmVEYXNo
Ym9hcmRPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNBY3RpdmVEYXNo
Ym9hcmRPdmVybGF5IElzQWN0aXZlRGFzaGJvYXJkT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blByb2Nlc3NJZCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLCBy
ZWYgdWludCBwdW5Qcm9jZXNzSWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldERhc2hib2FyZE92ZXJsYXlTY2VuZVBy
b2Nlc3MgR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzczsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2hvd0Rhc2hib2FyZChzdHJpbmcgcGNoT3ZlcmxheVRvU2hv
dyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2hvd0Rhc2hib2FyZCBTaG93RGFzaGJvYXJkOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0UHJpbWFyeURhc2hib2FyZERldmljZSBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXli
b2FyZChpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5wdXRNb2RlLCBzdHJpbmcgcGNoRGVzY3Jp
cHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VN
aW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2hvd0tleWJvYXJkIFNob3dL
ZXlib2FyZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgaW50IGVJbnB1
dE1vZGUsIGludCBlTGluZUlucHV0TW9kZSwgc3RyaW5nIHBjaERlc2NyaXB0aW9uLCB1aW50IHVu
Q2hhck1heCwgc3RyaW5nIHBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVs
b25nIHVVc2VyVmFsdWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1Nob3dLZXlib2FyZEZvck92ZXJsYXkgU2hvd0tleWJv
YXJkRm9yT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
S2V5Ym9hcmRUZXh0KFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGV4dCwgdWludCBjY2hU
ZXh0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRLZXlib2FyZFRleHQgR2V0S2V5Ym9hcmRUZXh0OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9IaWRlS2V5Ym9hcmQoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IaWRl
S2V5Ym9hcmQgSGlkZUtleWJvYXJkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2
b2lkIF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVUcmFja2luZ09yaWdpbiwgcmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9L
ZXlib2FyZFRyYW5zZm9ybSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSBT
ZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9TZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIEhtZFJlY3QyX3QgYXZvaWRSZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRLZXlib2FyZFBvc2l0aW9u
Rm9yT3ZlcmxheSBTZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5SW50ZXJzZWN0aW9u
TWFzayh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
UHJpbWl0aXZlX3QgcE1hc2tQcmltaXRpdmVzLCB1aW50IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVp
bnQgdW5QcmltaXRpdmVTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayBT
ZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5RmxhZ3ModWxvbmcgdWxPdmVybGF5SGFuZGxl
LCByZWYgdWludCBwRmxhZ3MpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlGbGFncyBHZXRPdmVybGF5Rmxh
Z3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIFZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZSBfU2hvd01lc3NhZ2VPdmVybGF5KHN0cmluZyBwY2hUZXh0LCBzdHJpbmcgcGNoQ2FwdGlv
biwgc3RyaW5nIHBjaEJ1dHRvbjBUZXh0LCBzdHJpbmcgcGNoQnV0dG9uMVRleHQsIHN0cmluZyBw
Y2hCdXR0b24yVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjNUZXh0KTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93TWVzc2Fn
ZU92ZXJsYXkgU2hvd01lc3NhZ2VPdmVybGF5OworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSUmVuZGVyTW9kZWxzCit7CisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkUmVuZGVy
TW9kZWxfQXN5bmMoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgcmVmIEludFB0ciBwcFJlbmRl
ck1vZGVsKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9Mb2FkUmVuZGVyTW9kZWxfQXN5bmMgTG9hZFJlbmRlck1vZGVsX0Fz
eW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GcmVlUmVuZGVyTW9k
ZWwoSW50UHRyIHBSZW5kZXJNb2RlbCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVJlbmRlck1vZGVsIEZyZWVSZW5k
ZXJNb2RlbDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSUmVuZGVyTW9kZWxF
cnJvciBfTG9hZFRleHR1cmVfQXN5bmMoaW50IHRleHR1cmVJZCwgcmVmIEludFB0ciBwcFRleHR1
cmUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0xvYWRUZXh0dXJlX0FzeW5jIExvYWRUZXh0dXJlX0FzeW5jOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GcmVlVGV4dHVyZShJbnRQdHIgcFRleHR1
cmUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0ZyZWVUZXh0dXJlIEZyZWVUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZUQzRDExX0FzeW5j
KGludCB0ZXh0dXJlSWQsIEludFB0ciBwRDNEMTFEZXZpY2UsIHJlZiBJbnRQdHIgcHBEM0QxMVRl
eHR1cmUyRCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfTG9hZFRleHR1cmVEM0QxMV9Bc3luYyBMb2FkVGV4dHVyZUQzRDEx
X0FzeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVy
cm9yIF9Mb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLCBJbnRQdHIgcERz
dFRleHR1cmUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0xvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jIExvYWRJbnRvVGV4
dHVyZUQzRDExX0FzeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9G
cmVlVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZyZWVUZXh0
dXJlRDNEMTEgRnJlZVRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdWludCBfR2V0UmVuZGVyTW9kZWxOYW1lKHVpbnQgdW5SZW5kZXJNb2RlbEluZGV4LCBTeXN0
ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludCB1blJlbmRlck1v
ZGVsTmFtZUxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxOYW1lIEdldFJlbmRlck1vZGVsTmFt
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVyTW9kZWxD
b3VudCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsQ291bnQgR2V0UmVuZGVyTW9kZWxDb3VudDsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50Q291bnQo
c3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50Q291bnQgR2V0
Q29tcG9uZW50Q291bnQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dENvbXBvbmVudE5hbWUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBvbmVu
dEluZGV4LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudE5hbWUsIHVpbnQg
dW5Db21wb25lbnROYW1lTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDb21wb25lbnROYW1lIEdldENvbXBvbmVu
dE5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRDb21wb25l
bnRCdXR0b25NYXNrKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25l
bnROYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRDb21wb25lbnRCdXR0b25NYXNrIEdldENvbXBvbmVudEJ1dHRv
bk1hc2s7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldENvbXBvbmVu
dFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJpbmcgcGNoQ29t
cG9uZW50TmFtZSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hDb21wb25lbnRSZW5kZXJN
b2RlbE5hbWUsIHVpbnQgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSBHZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldENvbXBvbmVudFN0YXRlKHN0
cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCByZWYgVlJD
b250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLCByZWYgUmVuZGVyTW9kZWxfQ29udHJv
bGxlck1vZGVfU3RhdGVfdCBwU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90
IHBDb21wb25lbnRTdGF0ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50U3RhdGUgR2V0Q29tcG9uZW50
U3RhdGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbmRlck1vZGVs
SGFzQ29tcG9uZW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25l
bnROYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9SZW5kZXJNb2RlbEhhc0NvbXBvbmVudCBSZW5kZXJNb2RlbEhhc0Nv
bXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVy
TW9kZWxUaHVtYm5haWxVUkwoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsIHVpbnQgdW5UaHVtYm5haWxVUkxMZW4sIHJl
ZiBFVlJSZW5kZXJNb2RlbEVycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsVGh1
bWJuYWlsVVJMIEdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaE9yaWdpbmFsUGF0
aCwgdWludCB1bk9yaWdpbmFsUGF0aExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJv
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGggR2V0UmVuZGVyTW9kZWxPcmln
aW5hbFBhdGg7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0UmVu
ZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bShFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtIEdldFJlbmRlck1vZGVsRXJyb3JO
YW1lRnJvbUVudW07CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XQorcHVibGljIHN0cnVjdCBJVlJOb3RpZmljYXRpb25zCit7CisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJOb3RpZmljYXRpb25FcnJvciBfQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSwgdWxvbmcgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUg
dHlwZSwgc3RyaW5nIHBjaFRleHQsIEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCByZWYgTm90
aWZpY2F0aW9uQml0bWFwX3QgcEltYWdlLCByZWYgdWludCBwTm90aWZpY2F0aW9uSWQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0NyZWF0ZU5vdGlmaWNhdGlvbiBDcmVhdGVOb3RpZmljYXRpb247CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlmaWNhdGlvbkVycm9yIF9SZW1vdmVOb3RpZmljYXRp
b24odWludCBub3RpZmljYXRpb25JZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3ZlTm90aWZpY2F0aW9uIFJlbW92
ZU5vdGlmaWNhdGlvbjsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldCitwdWJsaWMgc3RydWN0IElWUlNldHRpbmdzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBJbnRQdHIgX0dldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oRVZSU2V0dGluZ3NF
cnJvciBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0gR2V0U2V0
dGluZ3NFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfU3luYyhib29sIGJGb3JjZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU3luYyBTeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
ZXRCb29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZh
bHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRCb29sIFNldEJv
b2w7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEludDMyKHN0cmlu
ZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIGludCBuVmFsdWUsIHJlZiBFVlJT
ZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEludDMyIFNldEludDMyOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlv
biwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCBmbG9hdCBmbFZhbHVlLCByZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TZXRGbG9hdCBTZXRGbG9hdDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJp
bmcgcGNoU2V0dGluZ3NLZXksIHN0cmluZyBwY2hWYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3Ig
cGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfU2V0U3RyaW5nIFNldFN0cmluZzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0Qm9vbChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBj
aFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRC
b29sIEdldEJvb2w7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGludCBfR2V0SW50
MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgcmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SW50MzIgR2V0SW50MzI7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlvbiwg
c3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRGbG9hdCBHZXRGbG9hdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfR2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5WYWx1ZUxlbiwgcmVm
IEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nIEdldFN0cmluZzsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVtb3ZlU2VjdGlvbihzdHJp
bmcgcGNoU2VjdGlvbiwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVt
b3ZlU2VjdGlvbiBSZW1vdmVTZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB2b2lkIF9SZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hT
ZXR0aW5nc0tleSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3Zl
S2V5SW5TZWN0aW9uIFJlbW92ZUtleUluU2VjdGlvbjsKKworfQorCitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUlNjcmVlbnNob3RzCit7Cisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1JlcXVlc3RT
Y3JlZW5zaG90KHJlZiB1aW50IHBPdXRTY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlw
ZSB0eXBlLCBzdHJpbmcgcGNoUHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoVlJGaWxlbmFtZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfUmVxdWVzdFNjcmVlbnNob3QgUmVxdWVzdFNjcmVlbnNob3Q7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfSG9va1NjcmVlbnNob3Qo
W0luLCBPdXRdIEVWUlNjcmVlbnNob3RUeXBlW10gcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlw
ZXMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0hvb2tTY3JlZW5zaG90IEhvb2tTY3JlZW5zaG90OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90VHlwZSBfR2V0U2NyZWVuc2hvdFByb3Bl
cnR5VHlwZSh1aW50IHNjcmVlbnNob3RIYW5kbGUsIHJlZiBFVlJTY3JlZW5zaG90RXJyb3IgcEVy
cm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlIEdldFNjcmVlbnNob3RQcm9w
ZXJ0eVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hv
dFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hGaWxlbmFtZSwgdWludCBjY2hGaWxlbmFtZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBw
RXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lIEdldFNjcmVlbnNo
b3RQcm9wZXJ0eUZpbGVuYW1lOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJT
Y3JlZW5zaG90RXJyb3IgX1VwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyh1aW50IHNjcmVlbnNob3RI
YW5kbGUsIGZsb2F0IGZsUHJvZ3Jlc3MpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1VwZGF0ZVNjcmVlbnNob3RQcm9ncmVz
cyBVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHVpbnQgcE91
dFNjcmVlbnNob3RIYW5kbGUsIHN0cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hW
UkZpbGVuYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9UYWtlU3RlcmVvU2NyZWVuc2hvdCBUYWtlU3RlcmVvU2NyZWVu
c2hvdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9y
IF9TdWJtaXRTY3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5
cGUgdHlwZSwgc3RyaW5nIHBjaFNvdXJjZVByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFNvdXJj
ZVZSRmlsZW5hbWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1N1Ym1pdFNjcmVlbnNob3QgU3VibWl0U2NyZWVuc2hvdDsK
KworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3Ry
dWN0IElWUlJlc291cmNlcworeworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBf
TG9hZFNoYXJlZFJlc291cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsIHN0cmluZyBwY2hCdWZm
ZXIsIHVpbnQgdW5CdWZmZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvYWRTaGFyZWRSZXNvdXJjZSBMb2FkU2hh
cmVkUmVzb3VyY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFJl
c291cmNlRnVsbFBhdGgoc3RyaW5nIHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaFJlc291cmNl
VHlwZURpcmVjdG9yeSwgc3RyaW5nIHBjaFBhdGhCdWZmZXIsIHVpbnQgdW5CdWZmZXJMZW4pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldFJlc291cmNlRnVsbFBhdGggR2V0UmVzb3VyY2VGdWxsUGF0aDsKKworfQorCisK
K3B1YmxpYyBjbGFzcyBDVlJTeXN0ZW0KK3sKKyAgICAgICBJVlJTeXN0ZW0gRm5UYWJsZTsKKyAg
ICAgICBpbnRlcm5hbCBDVlJTeXN0ZW0oSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlID0gKElWUlN5c3RlbSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJ
bnRlcmZhY2UsIHR5cGVvZihJVlJTeXN0ZW0pKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKHJlZiB1aW50IHBuV2lkdGgscmVmIHVp
bnQgcG5IZWlnaHQpCisgICAgICAgeworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAg
ICAgICAgICAgcG5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldFJlY29tbWVu
ZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCBHZXRQcm9qZWN0aW9uTWF0cml4KEVWUkV5ZSBl
RXllLGZsb2F0IGZOZWFyWixmbG9hdCBmRmFyWikKKyAgICAgICB7CisgICAgICAgICAgICAgIEht
ZE1hdHJpeDQ0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcm9qZWN0aW9uTWF0cml4KGVFeWUsZk5l
YXJaLGZGYXJaKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHZvaWQgR2V0UHJvamVjdGlvblJhdyhFVlJFeWUgZUV5ZSxyZWYgZmxvYXQgcGZM
ZWZ0LHJlZiBmbG9hdCBwZlJpZ2h0LHJlZiBmbG9hdCBwZlRvcCxyZWYgZmxvYXQgcGZCb3R0b20p
CisgICAgICAgeworICAgICAgICAgICAgICBwZkxlZnQgPSAwOworICAgICAgICAgICAgICBwZlJp
Z2h0ID0gMDsKKyAgICAgICAgICAgICAgcGZUb3AgPSAwOworICAgICAgICAgICAgICBwZkJvdHRv
bSA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0UHJvamVjdGlvblJhdyhlRXllLHJlZiBw
ZkxlZnQscmVmIHBmUmlnaHQscmVmIHBmVG9wLHJlZiBwZkJvdHRvbSk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIENvbXB1dGVEaXN0b3J0aW9uKEVWUkV5ZSBlRXllLGZsb2F0IGZVLGZs
b2F0IGZWLHJlZiBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCBwRGlzdG9ydGlvbkNvb3JkaW5hdGVz
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1dGVE
aXN0b3J0aW9uKGVFeWUsZlUsZlYscmVmIHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4
MzRfdCBHZXRFeWVUb0hlYWRUcmFuc2Zvcm0oRVZSRXllIGVFeWUpCisgICAgICAgeworICAgICAg
ICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0RXllVG9IZWFkVHJhbnNm
b3JtKGVFeWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgYm9vbCBHZXRUaW1lU2luY2VMYXN0VnN5bmMocmVmIGZsb2F0IHBmU2Vjb25kc1Np
bmNlTGFzdFZzeW5jLHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpCisgICAgICAgeworICAgICAg
ICAgICAgICBwZlNlY29uZHNTaW5jZUxhc3RWc3luYyA9IDA7CisgICAgICAgICAgICAgIHB1bEZy
YW1lQ291bnRlciA9IDA7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRU
aW1lU2luY2VMYXN0VnN5bmMocmVmIHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLHJlZiBwdWxGcmFt
ZUNvdW50ZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgaW50IEdldEQzRDlBZGFwdGVySW5kZXgoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgaW50IHJlc3VsdCA9IEZuVGFibGUuR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREWEdJ
T3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcG5BZGFwdGVySW5kZXggPSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldERYR0lPdXRw
dXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IElzRGlzcGxheU9uRGVza3RvcCgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuSXNEaXNwbGF5T25EZXNrdG9wKCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5
KGJvb2wgYklzVmlzaWJsZU9uRGVza3RvcCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5TZXREaXNwbGF5VmlzaWJpbGl0eShiSXNWaXNpYmxlT25EZXNrdG9w
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luLGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdyxUcmFj
a2VkRGV2aWNlUG9zZV90IFtdIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5KQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKGVPcmln
aW4sZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LHBUcmFja2VkRGV2aWNlUG9zZUFy
cmF5LCh1aW50KSBwVHJhY2tlZERldmljZVBvc2VBcnJheS5MZW5ndGgpOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgdm9pZCBSZXNldFNlYXRlZFplcm9Qb3NlKCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuUmVzZXRTZWF0ZWRaZXJvUG9zZSgpOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgSG1kTWF0cml4MzRfdCBHZXRTZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRy
YWNraW5nUG9zZSgpCisgICAgICAgeworICAgICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3Vs
dCA9IEZuVGFibGUuR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bv
c2UoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEhtZE1hdHJpeDM0X3QgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2lu
Z1Bvc2UoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBG
blRhYmxlLkdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50
IEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNsYXNz
IGVUcmFja2VkRGV2aWNlQ2xhc3MsdWludCBbXSBwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSx1
aW50IHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09m
Q2xhc3MoZVRyYWNrZWREZXZpY2VDbGFzcyxwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSwodWlu
dCkgcHVuVHJhY2tlZERldmljZUluZGV4QXJyYXkuTGVuZ3RoLHVuUmVsYXRpdmVUb1RyYWNrZWRE
ZXZpY2VJbmRleCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFRGV2aWNlQWN0aXZpdHlMZXZlbCBHZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlM
ZXZlbCh1aW50IHVuRGV2aWNlSWQpCisgICAgICAgeworICAgICAgICAgICAgICBFRGV2aWNlQWN0
aXZpdHlMZXZlbCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVs
KHVuRGV2aWNlSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgdm9pZCBBcHBseVRyYW5zZm9ybShyZWYgVHJhY2tlZERldmljZVBvc2VfdCBw
T3V0cHV0UG9zZSxyZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UscmVm
IEhtZE1hdHJpeDM0X3QgcFRyYW5zZm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFi
bGUuQXBwbHlUcmFuc2Zvcm0ocmVmIHBPdXRwdXRQb3NlLHJlZiBwVHJhY2tlZERldmljZVBvc2Us
cmVmIHBUcmFuc2Zvcm0pOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRUcmFja2Vk
RGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2
aWNlVHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZSh1bkRldmljZVR5cGUpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVRyYWNr
ZWRDb250cm9sbGVyUm9sZSBHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1
aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tlZENvbnRy
b2xsZXJSb2xlIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2
aWNlSW5kZXgodW5EZXZpY2VJbmRleCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVHJhY2tlZERldmljZUNsYXNzIEdldFRyYWNrZWREZXZp
Y2VDbGFzcyh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVHJh
Y2tlZERldmljZUNsYXNzIHJlc3VsdCA9IEZuVGFibGUuR2V0VHJhY2tlZERldmljZUNsYXNzKHVu
RGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodWludCB1bkRldmljZUlu
ZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzVHJh
Y2tlZERldmljZUNvbm5lY3RlZCh1bkRldmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0Qm9vbFRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHkodW5E
ZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgZmxvYXQgR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJv
cGVydHkodWludCB1bkRldmljZUluZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGZs
b2F0IHJlc3VsdCA9IEZuVGFibGUuR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZp
Y2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgaW50IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5
KHVpbnQgdW5EZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gRm5UYWJsZS5HZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4
LHByb3AscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWlu
dCB1bkRldmljZUluZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3Vs
dCA9IEZuVGFibGUuR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgs
cHJvcCxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEhtZE1hdHJpeDM0X3QgR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJv
cGVydHkodWludCB1bkRldmljZUluZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEht
ZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFN0cmluZ1RyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUs
cmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAg
ICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVu
RGV2aWNlSW5kZXgscHJvcCxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBFcnJvcik7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcg
R2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKEVUcmFja2VkUHJvcGVydHlFcnJvciBlcnJvcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldFByb3BFcnJv
ck5hbWVGcm9tRW51bShlcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRv
U3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBQb2xsTmV4
dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQgdW5jYlZSRXZlbnQpCisgICAgICAgewor
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUG9sbE5leHRFdmVudChyZWYgcEV2
ZW50LHVuY2JWUkV2ZW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRFdmVudFdpdGhQb3NlKEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVPcmlnaW4scmVmIFZSRXZlbnRfdCBwRXZlbnQsdWludCB1bmNiVlJFdmVudCxy
ZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpCisgICAgICAgeworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUG9sbE5leHRFdmVudFdpdGhQb3NlKGVP
cmlnaW4scmVmIHBFdmVudCx1bmNiVlJFdmVudCxyZWYgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmlu
ZyBHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oRVZSRXZlbnRUeXBlIGVUeXBlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0RXZlbnRUeXBlTmFtZUZy
b21FbnVtKGVUeXBlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdB
bnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIaWRkZW5BcmVhTWVzaF90IEdl
dEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEhpZGRlbkFyZWFNZXNoX3QgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRIaWRkZW5BcmVhTWVzaChlRXllLHR5cGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKy8vIFRoaXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHdvcmthcm91bmQgdGhl
IGZhY3QgdGhhdCBWUkNvbnRyb2xsZXJTdGF0ZV90IHdhcworLy8gb3JpZ2luYWxseSBtaXMtY29t
cGlsZWQgd2l0aCB0aGUgd3JvbmcgcGFja2luZyBmb3IgTGludXggYW5kIE9TWC4KKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVBhY2tlZCh1aW50
IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBw
Q29udHJvbGxlclN0YXRlLHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVjdCBHZXRDb250cm9s
bGVyU3RhdGVVbmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQor
ICAgICAgICAgICAgICBwdWJsaWMgSVZSU3lzdGVtLl9HZXRDb250cm9sbGVyU3RhdGUgcEdldENv
bnRyb2xsZXJTdGF0ZTsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAg
ICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVBhY2tlZCBwR2V0Q29udHJvbGxlclN0YXRl
UGFja2VkOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRDb250cm9sbGVyU3RhdGUo
dWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29u
dHJvbGxlclN0YXRlLHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXplKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5
c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
U3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1J
RC5Vbml4KSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29udHJv
bGxlclN0YXRlVW5pb24gdTsKKyAgICAgICAgICAgICAgICAgICAgIFZSQ29udHJvbGxlclN0YXRl
X3RfUGFja2VkIHN0YXRlX3BhY2tlZCA9IG5ldyBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCgp
OworICAgICAgICAgICAgICAgICAgICAgdS5wR2V0Q29udHJvbGxlclN0YXRlUGFja2VkID0gbnVs
bDsKKyAgICAgICAgICAgICAgICAgICAgIHUucEdldENvbnRyb2xsZXJTdGF0ZSA9IEZuVGFibGUu
R2V0Q29udHJvbGxlclN0YXRlOworICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWRfcmVz
dWx0ID0gdS5wR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVuQ29udHJvbGxlckRldmljZUluZGV4
LHJlZiBzdGF0ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1h
cnNoYWwuU2l6ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpKTsKKworICAg
ICAgICAgICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0
ZSk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxl
clN0YXRlKHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29u
dHJvbGxlclN0YXRlU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorLy8gVGhpcyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0
IFZSQ29udHJvbGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRo
IHRoZSB3cm9uZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQoRVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJl
ZiBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBwQ29udHJvbGxlclN0YXRlLHVpbnQgdW5Db250
cm9sbGVyU3RhdGVTaXplLHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9z
ZSk7CisgICAgICAgW1N0cnVjdExheW91dChMYXlvdXRLaW5kLkV4cGxpY2l0KV0KKyAgICAgICBz
dHJ1Y3QgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VVbmlvbgorICAgICAgIHsKKyAgICAgICAg
ICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgSVZSU3lzdGVtLl9H
ZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSBwR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7Cisg
ICAgICAgICAgICAgIFtGaWVsZE9mZnNldCgwKV0KKyAgICAgICAgICAgICAgcHVibGljIF9HZXRD
b250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZCBwR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQ
YWNrZWQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZVdp
dGhQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sdWludCB1bkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHVpbnQg
dW5Db250cm9sbGVyU3RhdGVTaXplLHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2
aWNlUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICgoU3lzdGVtLkVudmlyb25tZW50
Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5NYWNPU1gpIHx8CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxh
dGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuVW5peCkpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlVW5pb24gdTsKKyAgICAg
ICAgICAgICAgICAgICAgIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHN0YXRlX3BhY2tlZCA9
IG5ldyBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCgpOworICAgICAgICAgICAgICAgICAgICAg
dS5wR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQgPSBudWxsOworICAgICAgICAgICAg
ICAgICAgICAgdS5wR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UgPSBGblRhYmxlLkdldENvbnRy
b2xsZXJTdGF0ZVdpdGhQb3NlOworICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWRfcmVz
dWx0ID0gdS5wR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQoZU9yaWdpbix1bkNvbnRy
b2xsZXJEZXZpY2VJbmRleCxyZWYgc3RhdGVfcGFja2VkLCh1aW50KVN5c3RlbS5SdW50aW1lLklu
dGVyb3BTZXJ2aWNlcy5NYXJzaGFsLlNpemVPZih0eXBlb2YoVlJDb250cm9sbGVyU3RhdGVfdF9Q
YWNrZWQpKSxyZWYgcFRyYWNrZWREZXZpY2VQb3NlKTsKKworICAgICAgICAgICAgICAgICAgICAg
c3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7CisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoZU9y
aWdpbix1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCxyZWYgcENvbnRyb2xsZXJTdGF0ZSx1bkNvbnRy
b2xsZXJTdGF0ZVNpemUscmVmIHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFRyaWdnZXJIYXB0aWNQ
dWxzZSh1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHVpbnQgdW5BeGlzSWQsY2hhciB1c0R1
cmF0aW9uTWljcm9TZWMpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlRyaWdnZXJI
YXB0aWNQdWxzZSh1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCx1bkF4aXNJZCx1c0R1cmF0aW9uTWlj
cm9TZWMpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdldEJ1dHRvbklkTmFtZUZy
b21FbnVtKEVWUkJ1dHRvbklkIGVCdXR0b25JZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIElu
dFB0ciByZXN1bHQgPSBGblRhYmxlLkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKGVCdXR0b25JZCk7
CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVG
cm9tRW51bShFVlJDb250cm9sbGVyQXhpc1R5cGUgZUF4aXNUeXBlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxlckF4aXNUeXBlTmFt
ZUZyb21FbnVtKGVBeGlzVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRv
U3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYXB0dXJl
SW5wdXRGb2N1cygpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuQ2FwdHVyZUlucHV0Rm9jdXMoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsZWFzZUlucHV0Rm9jdXMoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRm5UYWJsZS5SZWxlYXNlSW5wdXRGb2N1cygpOworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzSW5wdXRGb2N1
c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBEcml2ZXJEZWJ1Z1JlcXVlc3QodWludCB1
bkRldmljZUluZGV4LHN0cmluZyBwY2hSZXF1ZXN0LHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlcix1
aW50IHVuUmVzcG9uc2VCdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkRyaXZlckRlYnVnUmVxdWVzdCh1bkRldmljZUluZGV4LHBjaFJlcXVl
c3QscGNoUmVzcG9uc2VCdWZmZXIsdW5SZXNwb25zZUJ1ZmZlclNpemUpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSRmlybXdhcmVFcnJv
ciBQZXJmb3JtRmlybXdhcmVVcGRhdGUodWludCB1bkRldmljZUluZGV4KQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZSRmlybXdhcmVFcnJvciByZXN1bHQgPSBGblRhYmxlLlBlcmZvcm1GaXJt
d2FyZVVwZGF0ZSh1bkRldmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5BY2tub3dsZWRnZVF1aXRfRXhpdGluZygp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21w
dCgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9Vc2Vy
UHJvbXB0KCk7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJFeHRlbmRlZERpc3Bs
YXkKK3sKKyAgICAgICBJVlJFeHRlbmRlZERpc3BsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5h
bCBDVlJFeHRlbmRlZERpc3BsYXkoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlID0gKElWUkV4dGVuZGVkRGlzcGxheSlNYXJzaGFsLlB0clRvU3RydWN0
dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJFeHRlbmRlZERpc3BsYXkpKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgR2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLHJlZiBpbnQgcG5Z
LHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCisgICAgICAgeworICAgICAgICAg
ICAgICBwblggPSAwOworICAgICAgICAgICAgICBwblkgPSAwOworICAgICAgICAgICAgICBwbldp
ZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBGblRh
YmxlLkdldFdpbmRvd0JvdW5kcyhyZWYgcG5YLHJlZiBwblkscmVmIHBuV2lkdGgscmVmIHBuSGVp
Z2h0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQo
RVZSRXllIGVFeWUscmVmIHVpbnQgcG5YLHJlZiB1aW50IHBuWSxyZWYgdWludCBwbldpZHRoLHJl
ZiB1aW50IHBuSGVpZ2h0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcG5YID0gMDsKKyAgICAg
ICAgICAgICAgcG5ZID0gMDsKKyAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAgICAg
ICAgIHBuSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRFeWVPdXRwdXRWaWV3
cG9ydChlRXllLHJlZiBwblgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRh
cHRlckluZGV4LHJlZiBpbnQgcG5BZGFwdGVyT3V0cHV0SW5kZXgpCisgICAgICAgeworICAgICAg
ICAgICAgICBwbkFkYXB0ZXJJbmRleCA9IDA7CisgICAgICAgICAgICAgIHBuQWRhcHRlck91dHB1
dEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXREWEdJT3V0cHV0SW5mbyhyZWYg
cG5BZGFwdGVySW5kZXgscmVmIHBuQWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICB9Cit9CisK
KworcHVibGljIGNsYXNzIENWUlRyYWNrZWRDYW1lcmEKK3sKKyAgICAgICBJVlJUcmFja2VkQ2Ft
ZXJhIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSVHJhY2tlZENhbWVyYShJbnRQdHIgcElu
dGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSVHJhY2tlZENh
bWVyYSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJUcmFja2Vk
Q2FtZXJhKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0Q2FtZXJhRXJyb3JO
YW1lRnJvbUVudW0oRVZSVHJhY2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcikKKyAgICAgICB7
CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldENhbWVyYUVycm9yTmFt
ZUZyb21FbnVtKGVDYW1lcmFFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0
clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIEhhc0NhbWVyYSh1aW50IG5EZXZpY2VJbmRleCxyZWYgYm9vbCBwSGFzQ2Ft
ZXJhKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcEhhc0NhbWVyYSA9IGZhbHNlOworICAgICAg
ICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5IYXNDYW1lcmEo
bkRldmljZUluZGV4LHJlZiBwSGFzQ2FtZXJhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1l
cmFGcmFtZVNpemUodWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBl
RnJhbWVUeXBlLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQscmVmIHVpbnQgcG5G
cmFtZUJ1ZmZlclNpemUpCisgICAgICAgeworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAg
ICAgICAgICAgICAgcG5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBwbkZyYW1lQnVmZmVyU2l6
ZSA9IDA7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldENhbWVyYUZyYW1lU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcG5XaWR0
aCxyZWYgcG5IZWlnaHQscmVmIHBuRnJhbWVCdWZmZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJv
ciBHZXRDYW1lcmFJbnRyaW5zaWNzKHVpbnQgbkRldmljZUluZGV4LEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgSG1kVmVjdG9yMl90IHBGb2NhbExlbmd0aCxyZWYgSG1k
VmVjdG9yMl90IHBDZW50ZXIpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYW1lcmFJbnRyaW5zaWNzKG5EZXZpY2VJbmRl
eCxlRnJhbWVUeXBlLHJlZiBwRm9jYWxMZW5ndGgscmVmIHBDZW50ZXIpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVy
YUVycm9yIEdldENhbWVyYVByb2plY3Rpb24odWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLGZsb2F0IGZsWk5lYXIsZmxvYXQgZmxaRmFyLHJlZiBI
bWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhUHJvamVjdGlvbihuRGV2
aWNlSW5kZXgsZUZyYW1lVHlwZSxmbFpOZWFyLGZsWkZhcixyZWYgcFByb2plY3Rpb24pOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJh
Y2tlZENhbWVyYUVycm9yIEFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWludCBuRGV2aWNl
SW5kZXgscmVmIHVsb25nIHBIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBwSGFuZGxl
ID0gMDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZShuRGV2aWNlSW5kZXgscmVmIHBIYW5kbGUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWxvbmcg
aFRyYWNrZWRDYW1lcmEpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKGhUcmFj
a2VkQ2FtZXJhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbUZyYW1lQnVmZmVy
KHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSxJbnRQdHIgcEZyYW1lQnVmZmVyLHVpbnQgbkZyYW1lQnVmZmVyU2l6ZSxyZWYgQ2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlcix1aW50IG5GcmFtZUhlYWRlclNpemUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRWaWRlb1N0cmVhbUZyYW1lQnVmZmVyKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5
cGUscEZyYW1lQnVmZmVyLG5GcmFtZUJ1ZmZlclNpemUscmVmIHBGcmFtZUhlYWRlcixuRnJhbWVI
ZWFkZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXpl
KHVpbnQgbkRldmljZUluZGV4LEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxy
ZWYgVlJUZXh0dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMscmVmIHVpbnQgcG5XaWR0aCxyZWYg
dWludCBwbkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAg
ICAgICAgICAgICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUobkRldmljZUlu
ZGV4LGVGcmFtZVR5cGUscmVmIHBUZXh0dXJlQm91bmRzLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdo
dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEodWxvbmcg
aFRyYWNrZWRDYW1lcmEsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0
ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNl
VmlldyxyZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlcix1aW50
IG5GcmFtZUhlYWRlclNpemUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMShoVHJh
Y2tlZENhbWVyYSxlRnJhbWVUeXBlLHBEM0QxMURldmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcscmVmIHBGcmFtZUhlYWRlcixuRnJhbWVIZWFkZXJTaXplKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRy
YWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENh
bWVyYSxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcGdsVGV4
dHVyZUlkLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVp
bnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBnbFRleHR1cmVJ
ZCA9IDA7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscmVm
IHBnbFRleHR1cmVJZCxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIFJlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENh
bWVyYSx1aW50IGdsVGV4dHVyZUlkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdM
KGhUcmFja2VkQ2FtZXJhLGdsVGV4dHVyZUlkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkFwcGxpY2F0aW9ucworeworICAg
ICAgIElWUkFwcGxpY2F0aW9ucyBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkFwcGxpY2F0
aW9ucyhJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUg
PSAoSVZSQXBwbGljYXRpb25zKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlw
ZW9mKElWUkFwcGxpY2F0aW9ucykpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGlj
YXRpb25FcnJvciBBZGRBcHBsaWNhdGlvbk1hbmlmZXN0KHN0cmluZyBwY2hBcHBsaWNhdGlvbk1h
bmlmZXN0RnVsbFBhdGgsYm9vbCBiVGVtcG9yYXJ5KQorICAgICAgIHsKKyAgICAgICAgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkFkZEFwcGxpY2F0aW9uTWFuaWZl
c3QocGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLGJUZW1wb3JhcnkpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRp
b25FcnJvciBSZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KHN0cmluZyBwY2hBcHBsaWNhdGlvbk1h
bmlmZXN0RnVsbFBhdGgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNh
dGlvbk1hbmlmZXN0RnVsbFBhdGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHN0cmluZyBw
Y2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
SXNBcHBsaWNhdGlvbkluc3RhbGxlZChwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvbkNvdW50
KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBs
aWNhdGlvbkNvdW50KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5QnlJbmRl
eCh1aW50IHVuQXBwbGljYXRpb25JbmRleCxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEFw
cEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uS2V5
QnlJbmRleCh1bkFwcGxpY2F0aW9uSW5kZXgscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVy
TGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCh1aW50
IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1ZmZlckxl
bikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVuUHJvY2Vzc0lkLHBjaEFwcEtl
eUJ1ZmZlcix1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxp
Y2F0aW9uKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBs
aWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNoQXBwbGljYXRpb24ocGNoQXBwS2V5
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbihzdHJpbmcgcGNo
VGVtcGxhdGVBcHBLZXksc3RyaW5nIHBjaE5ld0FwcEtleSxBcHBPdmVycmlkZUtleXNfdCBbXSBw
S2V5cykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5MYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHBjaFRlbXBsYXRlQXBwS2V5LHBj
aE5ld0FwcEtleSxwS2V5cywodWludCkgcEtleXMuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
TGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBw
Y2hBcmdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1
bHQgPSBGblRhYmxlLkxhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlKHBjaE1pbWVUeXBlLHBj
aEFyZ3MpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBw
Y2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuTGF1bmNoRGFzaGJvYXJkT3ZlcmxheShwY2hBcHBLZXkpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYW5j
ZWxBcHBsaWNhdGlvbkxhdW5jaChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHBjaEFw
cEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIElkZW50aWZ5QXBwbGljYXRpb24odWludCB1blByb2Nl
c3NJZCxzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLklkZW50aWZ5QXBwbGljYXRpb24odW5Qcm9jZXNz
SWQscGNoQXBwS2V5KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0QXBwbGljYXRpb25Qcm9jZXNzSWQoc3RyaW5nIHBjaEFwcEtl
eSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBs
aWNhdGlvblByb2Nlc3NJZChwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdldEFwcGxpY2F0aW9uc0Vycm9yTmFt
ZUZyb21FbnVtKEVWUkFwcGxpY2F0aW9uRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAg
ICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9t
RW51bShlcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5z
aShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvblBy
b3BlcnR5U3RyaW5nKHN0cmluZyBwY2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJv
cGVydHksU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLHVp
bnQgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLHJlZiBFVlJBcHBsaWNhdGlvbkVycm9yIHBlRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBw
bGljYXRpb25Qcm9wZXJ0eVN0cmluZyhwY2hBcHBLZXksZVByb3BlcnR5LHBjaFByb3BlcnR5VmFs
dWVCdWZmZXIsdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLHJlZiBwZUVycm9yKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBw
bGljYXRpb25Qcm9wZXJ0eUJvb2woc3RyaW5nIHBjaEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3Bl
cnR5IGVQcm9wZXJ0eSxyZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvcGVy
dHlCb29sKHBjaEFwcEtleSxlUHJvcGVydHkscmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWxvbmcgR2V0QXBwbGljYXRp
b25Qcm9wZXJ0eVVpbnQ2NChzdHJpbmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkg
ZVByb3BlcnR5LHJlZiBFVlJBcHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAg
ICAgICAgICAgICB1bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvcGVydHlV
aW50NjQocGNoQXBwS2V5LGVQcm9wZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9y
IFNldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5LGJvb2wgYkF1dG9MYXVu
Y2gpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSxiQXV0b0xhdW5jaCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBi
b29sIEdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsK
KyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQXV0b0xh
dW5jaChwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBTZXREZWZhdWx0QXBwbGljYXRpb25G
b3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5LHN0cmluZyBwY2hNaW1lVHlwZSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRE
ZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShwY2hBcHBLZXkscGNoTWltZVR5cGUpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBH
ZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5n
IHBjaEFwcEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtleUJ1ZmZlckxlbik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IEdldEFwcGxpY2F0aW9uU3VwcG9ydGVkTWltZVR5cGVzKHN0cmluZyBwY2hBcHBLZXksc3RyaW5n
IHBjaE1pbWVUeXBlc0J1ZmZlcix1aW50IHVuTWltZVR5cGVzQnVmZmVyKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uU3VwcG9ydGVk
TWltZVR5cGVzKHBjaEFwcEtleSxwY2hNaW1lVHlwZXNCdWZmZXIsdW5NaW1lVHlwZXNCdWZmZXIp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dWludCBHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlw
ZSxzdHJpbmcgcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLHVpbnQgdW5BcHBLZXlzVGhhdFN1
cHBvcnRCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShwY2hNaW1lVHlwZSxwY2hBcHBL
ZXlzVGhhdFN1cHBvcnRCdWZmZXIsdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRB
cHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cyh1aW50IHVuSGFuZGxlLHN0cmluZyBwY2hBcmdzLHVp
bnQgdW5BcmdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxl
LkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKHVuSGFuZGxlLHBjaEFyZ3MsdW5BcmdzKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
UkFwcGxpY2F0aW9uRXJyb3IgR2V0U3RhcnRpbmdBcHBsaWNhdGlvbihzdHJpbmcgcGNoQXBwS2V5
QnVmZmVyLHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBF
VlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0U3RhcnRpbmdBcHBsaWNhdGlv
bihwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25UcmFuc2l0
aW9uU3RhdGUgR2V0VHJhbnNpdGlvblN0YXRlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHJlc3VsdCA9IEZuVGFibGUuR2V0VHJhbnNpdGlv
blN0YXRlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENo
ZWNrKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNh
dGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hl
Y2socGNoQXBwS2V5KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHN0cmluZyBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJv
bUVudW0oRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUcmFuc2l0
aW9uU3RhdGVOYW1lRnJvbUVudW0oc3RhdGUpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hh
bC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wg
SXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCgpCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuSXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCgpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRp
b25FcnJvciBMYXVuY2hJbnRlcm5hbFByb2Nlc3Moc3RyaW5nIHBjaEJpbmFyeVBhdGgsc3RyaW5n
IHBjaEFyZ3VtZW50cyxzdHJpbmcgcGNoV29ya2luZ0RpcmVjdG9yeSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hJbnRl
cm5hbFByb2Nlc3MocGNoQmluYXJ5UGF0aCxwY2hBcmd1bWVudHMscGNoV29ya2luZ0RpcmVjdG9y
eSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB1aW50IEdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCgpCisgICAgICAgeworICAgICAgICAgICAg
ICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBD
VlJDaGFwZXJvbmUKK3sKKyAgICAgICBJVlJDaGFwZXJvbmUgRm5UYWJsZTsKKyAgICAgICBpbnRl
cm5hbCBDVlJDaGFwZXJvbmUoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlID0gKElWUkNoYXBlcm9uZSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRl
cmZhY2UsIHR5cGVvZihJVlJDaGFwZXJvbmUpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgR2V0Q2FsaWJyYXRpb25TdGF0ZSgpCisgICAgICAgewor
ICAgICAgICAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIHJlc3VsdCA9IEZuVGFibGUu
R2V0Q2FsaWJyYXRpb25TdGF0ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXpl
WCxyZWYgZmxvYXQgcFNpemVaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsK
KyAgICAgICAgICAgICAgcFNpemVaID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLkdldFBsYXlBcmVhU2l6ZShyZWYgcFNpemVYLHJlZiBwU2l6ZVopOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRQbGF5
QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9v
bCByZXN1bHQgPSBGblRhYmxlLkdldFBsYXlBcmVhUmVjdChyZWYgcmVjdCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlbG9hZElu
Zm8oKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZWxvYWRJbmZvKCk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFNjZW5lQ29sb3IoSG1kQ29sb3JfdCBjb2xvcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0U2NlbmVDb2xvcihjb2xvcik7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldEJvdW5kc0NvbG9yKHJlZiBIbWRDb2xvcl90
IHBPdXRwdXRDb2xvckFycmF5LGludCBuTnVtT3V0cHV0Q29sb3JzLGZsb2F0IGZsQ29sbGlzaW9u
Qm91bmRzRmFkZURpc3RhbmNlLHJlZiBIbWRDb2xvcl90IHBPdXRwdXRDYW1lcmFDb2xvcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0Qm91bmRzQ29sb3IocmVmIHBPdXRwdXRD
b2xvckFycmF5LG5OdW1PdXRwdXRDb2xvcnMsZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2Us
cmVmIHBPdXRwdXRDYW1lcmFDb2xvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEFy
ZUJvdW5kc1Zpc2libGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLkFyZUJvdW5kc1Zpc2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZv
cmNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUJvdW5kc1Zpc2libGUo
YkZvcmNlKTsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZVNldHVw
Cit7CisgICAgICAgSVZSQ2hhcGVyb25lU2V0dXAgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBD
VlJDaGFwZXJvbmVTZXR1cChJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUgPSAoSVZSQ2hhcGVyb25lU2V0dXApTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShw
SW50ZXJmYWNlLCB0eXBlb2YoSVZSQ2hhcGVyb25lU2V0dXApKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgQ29tbWl0V29ya2luZ0NvcHkoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmln
RmlsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Db21t
aXRXb3JraW5nQ29weShjb25maWdGaWxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmV2ZXJ0V29ya2luZ0NvcHkoKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZXZlcnRXb3JraW5nQ29weSgpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFTaXplKHJlZiBmbG9hdCBwU2l6
ZVgscmVmIGZsb2F0IHBTaXplWikKKyAgICAgICB7CisgICAgICAgICAgICAgIHBTaXplWCA9IDA7
CisgICAgICAgICAgICAgIHBTaXplWiA9IDA7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRXb3JraW5nUGxheUFyZWFTaXplKHJlZiBwU2l6ZVgscmVmIHBTaXplWik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IEdldFdvcmtpbmdQbGF5QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5QXJlYVJlY3Qo
cmVmIHJlY3QpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90
IFtdIHBRdWFkc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHND
b3VudCA9IDA7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5n
Q29sbGlzaW9uQm91bmRzSW5mbyhudWxsLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAg
ICAgcFF1YWRzQnVmZmVyPSBuZXcgSG1kUXVhZF90W3B1blF1YWRzQ291bnRdOworICAgICAgICAg
ICAgICByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKHBRdWFk
c0J1ZmZlcixyZWYgcHVuUXVhZHNDb3VudCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZv
KG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
dWludCBwdW5RdWFkc0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKG51bGwscmVmIHB1blF1YWRzQ291bnQpOwor
ICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07
CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0lu
Zm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1NlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVm
IHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1N0YW5k
aW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9v
bCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UocmVmIHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRX
b3JraW5nUGxheUFyZWFTaXplKGZsb2F0IHNpemVYLGZsb2F0IHNpemVaKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nUGxheUFyZWFTaXplKHNpemVYLHNpemVaKTsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm8oSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZu
VGFibGUuU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBw
UXVhZHNCdWZmZXIuTGVuZ3RoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29y
a2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcE1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlLlNldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBw
TWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVm
IEhtZE1hdHJpeDM0X3QgcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZShyZWYgcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlbG9hZEZyb21EaXNrKEVDaGFwZXJv
bmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LlJlbG9hZEZyb21EaXNrKGNvbmZpZ0ZpbGUpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9v
bCBHZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRf
dCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBT
ZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8oYnl0ZSBbXSBwVGFnc0J1ZmZlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1Rh
Z3NJbmZvKHBUYWdzQnVmZmVyLCh1aW50KSBwVGFnc0J1ZmZlci5MZW5ndGgpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ob3V0IGJ5
dGUgW10gcFRhZ3NCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blRhZ0Nv
dW50ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldExpdmVDb2xs
aXNpb25Cb3VuZHNUYWdzSW5mbyhudWxsLHJlZiBwdW5UYWdDb3VudCk7CisgICAgICAgICAgICAg
IHBUYWdzQnVmZmVyPSBuZXcgYnl0ZVtwdW5UYWdDb3VudF07CisgICAgICAgICAgICAgIHJlc3Vs
dCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKHBUYWdzQnVmZmVyLHJl
ZiBwdW5UYWdDb3VudCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBib29sIFNldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oSG1kUXVhZF90
IFtdIHBRdWFkc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5TZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvKHBRdWFkc0J1ZmZlciwodWludCkg
cFF1YWRzQnVmZmVyLkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8ob3V0IEht
ZFF1YWRfdCBbXSBwUXVhZHNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1
blF1YWRzQ291bnQgPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0
TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhudWxsLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAg
ICAgICAgcFF1YWRzQnVmZmVyPSBuZXcgSG1kUXVhZF90W3B1blF1YWRzQ291bnRdOworICAgICAg
ICAgICAgICByZXN1bHQgPSBGblRhYmxlLkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8ocFF1YWRz
QnVmZmVyLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgRXhwb3J0TGl2ZVRvQnVmZmVyKFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlcixyZWYgdWludCBwbkJ1ZmZlckxlbmd0aCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHBuQnVmZmVyTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgYm9v
bCByZXN1bHQgPSBGblRhYmxlLkV4cG9ydExpdmVUb0J1ZmZlcihwQnVmZmVyLHJlZiBwbkJ1ZmZl
ckxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBib29sIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcoc3RyaW5nIHBCdWZmZXIsdWlu
dCBuSW1wb3J0RmxhZ3MpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZyhwQnVmZmVyLG5JbXBvcnRGbGFncyk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFz
cyBDVlJDb21wb3NpdG9yCit7CisgICAgICAgSVZSQ29tcG9zaXRvciBGblRhYmxlOworICAgICAg
IGludGVybmFsIENWUkNvbXBvc2l0b3IoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlID0gKElWUkNvbXBvc2l0b3IpTWFyc2hhbC5QdHJUb1N0cnVjdHVy
ZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQ29tcG9zaXRvcikpOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBTZXRUcmFja2luZ1NwYWNlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmln
aW4pCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldFRyYWNraW5nU3BhY2UoZU9y
aWdpbik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBH
ZXRUcmFja2luZ1NwYWNlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIHJlc3VsdCA9IEZuVGFibGUuR2V0VHJhY2tpbmdTcGFjZSgpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRv
ckVycm9yIFdhaXRHZXRQb3NlcyhUcmFja2VkRGV2aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJy
YXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBwR2FtZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLldhaXRHZXRQb3Nl
cyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBwUmVuZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBv
c2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJyYXkuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBH
ZXRMYXN0UG9zZXMoVHJhY2tlZERldmljZVBvc2VfdCBbXSBwUmVuZGVyUG9zZUFycmF5LFRyYWNr
ZWREZXZpY2VQb3NlX3QgW10gcEdhbWVQb3NlQXJyYXkpCisgICAgICAgeworICAgICAgICAgICAg
ICBFVlJDb21wb3NpdG9yRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRMYXN0UG9zZXMocFJlbmRl
clBvc2VBcnJheSwodWludCkgcFJlbmRlclBvc2VBcnJheS5MZW5ndGgscEdhbWVQb3NlQXJyYXks
KHVpbnQpIHBHYW1lUG9zZUFycmF5Lkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TGFzdFBv
c2VGb3JUcmFja2VkRGV2aWNlSW5kZXgodWludCB1bkRldmljZUluZGV4LHJlZiBUcmFja2VkRGV2
aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRHYW1l
UG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQg
PSBGblRhYmxlLkdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4KHVuRGV2aWNlSW5kZXgs
cmVmIHBPdXRwdXRQb3NlLHJlZiBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIFN1
Ym1pdChFVlJFeWUgZUV5ZSxyZWYgVGV4dHVyZV90IHBUZXh0dXJlLHJlZiBWUlRleHR1cmVCb3Vu
ZHNfdCBwQm91bmRzLEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncykKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLlN1Ym1pdChlRXll
LHJlZiBwVGV4dHVyZSxyZWYgcEJvdW5kcyxuU3VibWl0RmxhZ3MpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDbGVhckxhc3RTdWJt
aXR0ZWRGcmFtZSgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNsZWFyTGFzdFN1
Ym1pdHRlZEZyYW1lKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFBvc3RQcmVzZW50
SGFuZG9mZigpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlBvc3RQcmVzZW50SGFu
ZG9mZigpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRGcmFtZVRpbWluZyhyZWYg
Q29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLHVpbnQgdW5GcmFtZXNBZ28pCisgICAgICAg
eworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0RnJhbWVUaW1pbmcocmVm
IHBUaW1pbmcsdW5GcmFtZXNBZ28pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRGcmFtZVRpbWluZ3MocmVmIENvbXBvc2l0b3Jf
RnJhbWVUaW1pbmcgcFRpbWluZyx1aW50IG5GcmFtZXMpCisgICAgICAgeworICAgICAgICAgICAg
ICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0RnJhbWVUaW1pbmdzKHJlZiBwVGltaW5nLG5GcmFt
ZXMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgZmxvYXQgR2V0RnJhbWVUaW1lUmVtYWluaW5nKCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IGZsb2F0IHJlc3VsdCA9IEZuVGFibGUuR2V0RnJhbWVUaW1lUmVtYWluaW5nKCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldEN1
bXVsYXRpdmVTdGF0cyhyZWYgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgcFN0YXRzLHVpbnQg
blN0YXRzU2l6ZUluQnl0ZXMpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkdldEN1
bXVsYXRpdmVTdGF0cyhyZWYgcFN0YXRzLG5TdGF0c1NpemVJbkJ5dGVzKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsZmxvYXQgZlJlZCxm
bG9hdCBmR3JlZW4sZmxvYXQgZkJsdWUsZmxvYXQgZkFscGhhLGJvb2wgYkJhY2tncm91bmQpCisg
ICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZhZGVUb0NvbG9yKGZTZWNvbmRzLGZSZWQs
ZkdyZWVuLGZCbHVlLGZBbHBoYSxiQmFja2dyb3VuZCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBIbWRDb2xvcl90IEdldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEhtZENvbG9yX3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50
RmFkZUNvbG9yKGJCYWNrZ3JvdW5kKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRmFkZUdyaWQoZmxvYXQgZlNlY29uZHMsYm9vbCBi
RmFkZUluKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5GYWRlR3JpZChmU2Vjb25k
cyxiRmFkZUluKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGZsb2F0IEdldEN1cnJlbnRHcmlk
QWxwaGEoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRDdXJyZW50R3JpZEFscGhhKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU2V0U2t5Ym94T3ZlcnJpZGUo
VGV4dHVyZV90IFtdIHBUZXh0dXJlcykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBv
c2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldFNreWJveE92ZXJyaWRlKHBUZXh0dXJlcywo
dWludCkgcFRleHR1cmVzLkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIENsZWFyU2t5Ym94T3ZlcnJpZGUoKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5DbGVhclNreWJveE92ZXJyaWRlKCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRm5UYWJsZS5Db21wb3NpdG9yQnJpbmdUb0Zyb250KCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0b3JHb1RvQmFjaygpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JHb1RvQmFjaygpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yUXVpdCgpCisgICAgICAgeworICAgICAgICAgICAgICBG
blRhYmxlLkNvbXBvc2l0b3JRdWl0KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElz
RnVsbHNjcmVlbigpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuSXNGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcygpCisgICAg
ICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q3VycmVudFNjZW5l
Rm9jdXNQcm9jZXNzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB1aW50IEdldExhc3RGcmFtZVJlbmRlcmVyKCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRMYXN0RnJhbWVSZW5kZXJlcigpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9v
bCBDYW5SZW5kZXJTY2VuZSgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuQ2FuUmVuZGVyU2NlbmUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2hvd01pcnJvcldpbmRvdygpCisgICAgICAg
eworICAgICAgICAgICAgICBGblRhYmxlLlNob3dNaXJyb3JXaW5kb3coKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgSGlkZU1pcnJvcldpbmRvdygpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlLkhpZGVNaXJyb3JXaW5kb3coKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IGJvb2wgSXNNaXJyb3JXaW5kb3dWaXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJv
b2wgcmVzdWx0ID0gRm5UYWJsZS5Jc01pcnJvcldpbmRvd1Zpc2libGUoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgQ29tcG9zaXRv
ckR1bXBJbWFnZXMoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Db21wb3NpdG9y
RHVtcEltYWdlcygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBTaG91bGRBcHBSZW5k
ZXJXaXRoTG93UmVzb3VyY2VzKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5TaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEZvcmNlSW50
ZXJsZWF2ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKGJPdmVycmlkZSk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEZvcmNlUmVjb25uZWN0UHJvY2VzcygpCisg
ICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZvcmNlUmVjb25uZWN0UHJvY2VzcygpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTdXNwZW5kUmVuZGVyaW5nKGJvb2wgYlN1c3Bl
bmQpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlN1c3BlbmRSZW5kZXJpbmcoYlN1
c3BlbmQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldE1p
cnJvclRleHR1cmVEM0QxMShFVlJFeWUgZUV5ZSxJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJj
ZSxyZWYgSW50UHRyIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRNaXJyb3JUZXh0
dXJlRDNEMTEoZUV5ZSxwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBwcEQzRDExU2hhZGVyUmVz
b3VyY2VWaWV3KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHZvaWQgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMShJbnRQdHIgcEQzRDExU2hh
ZGVyUmVzb3VyY2VWaWV3KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZWxlYXNl
TWlycm9yVGV4dHVyZUQzRDExKHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKEVWUkV5
ZSBlRXllLHJlZiB1aW50IHBnbFRleHR1cmVJZCxJbnRQdHIgcGdsU2hhcmVkVGV4dHVyZUhhbmRs
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBnbFRleHR1cmVJZCA9IDA7CisgICAgICAgICAg
ICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVH
TChlRXllLHJlZiBwZ2xUZXh0dXJlSWQscGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFJlbGVh
c2VTaGFyZWRHTFRleHR1cmUodWludCBnbFRleHR1cmVJZCxJbnRQdHIgZ2xTaGFyZWRUZXh0dXJl
SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlJl
bGVhc2VTaGFyZWRHTFRleHR1cmUoZ2xUZXh0dXJlSWQsZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFu
ZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Mb2NrR0xTaGFyZWRUZXh0dXJl
Rm9yQWNjZXNzKGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIFVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5VbmxvY2tHTFNoYXJl
ZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHVpbnQgR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQoU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRWdWxrYW5JbnN0YW5jZUV4
dGVuc2lvbnNSZXF1aXJlZChwY2hWYWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRWdWxrYW5EZXZp
Y2VFeHRlbnNpb25zUmVxdWlyZWQoSW50UHRyIHBQaHlzaWNhbERldmljZSxTeXN0ZW0uVGV4dC5T
dHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNS
ZXF1aXJlZChwUGh5c2ljYWxEZXZpY2UscGNoVmFsdWUsdW5CdWZmZXJTaXplKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUk92
ZXJsYXkKK3sKKyAgICAgICBJVlJPdmVybGF5IEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZS
T3ZlcmxheShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFi
bGUgPSAoSVZST3ZlcmxheSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVv
ZihJVlJPdmVybGF5KSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
RmluZE92ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXkscmVmIHVsb25nIHBPdmVybGF5SGFuZGxl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcE92ZXJsYXlIYW5kbGUgPSAwOworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5GaW5kT3ZlcmxheShwY2hPdmVy
bGF5S2V5LHJlZiBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlT3ZlcmxheShz
dHJpbmcgcGNoT3ZlcmxheUtleSxzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSxyZWYgdWxv
bmcgcE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBwT3ZlcmxheUhhbmRs
ZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkNy
ZWF0ZU92ZXJsYXkocGNoT3ZlcmxheUtleSxwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiBwT3Zl
cmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5
SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuRGVzdHJveU92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBT
ZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0SGlnaFF1YWxp
dHlPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRIaWdoUXVhbGl0eU92ZXJsYXkoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRIaWdoUXVh
bGl0eU92ZXJsYXkoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsU3lz
dGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVZS
T3ZlcmxheUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0
ID0gRm5UYWJsZS5HZXRPdmVybGF5S2V5KHVsT3ZlcmxheUhhbmRsZSxwY2hWYWx1ZSx1bkJ1ZmZl
clNpemUscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldE92ZXJsYXlOYW1lKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJl
ZiBFVlJPdmVybGF5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlOYW1lKHVsT3ZlcmxheUhhbmRsZSxwY2hWYWx1ZSx1
bkJ1ZmZlclNpemUscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUltYWdlRGF0
YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5CdWZmZXJTaXpl
LHJlZiB1aW50IHB1bldpZHRoLHJlZiB1aW50IHB1bkhlaWdodCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHB1bldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcHVuSGVpZ2h0ID0gMDsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUltYWdl
RGF0YSh1bE92ZXJsYXlIYW5kbGUscHZCdWZmZXIsdW5CdWZmZXJTaXplLHJlZiBwdW5XaWR0aCxy
ZWYgcHVuSGVpZ2h0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHN0cmluZyBHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oRVZST3Zlcmxh
eUVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZu
VGFibGUuR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsdWludCB1blBJRCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxPdmVybGF5
SGFuZGxlLHVuUElEKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZs
YWcsYm9vbCBiRW5hYmxlZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlGbGFnKHVsT3ZlcmxheUhhbmRsZSxlT3Zlcmxh
eUZsYWcsYkVuYWJsZWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFnKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSxWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcscmVmIGJvb2wgcGJFbmFibGVk
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGJFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlGbGFnKHVsT3Zl
cmxheUhhbmRsZSxlT3ZlcmxheUZsYWcscmVmIHBiRW5hYmxlZCk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmUmVkLGZsb2F0IGZHcmVl
bixmbG9hdCBmQmx1ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUsZlJlZCxmR3Jl
ZW4sZkJsdWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIGZsb2F0IHBmUmVkLHJlZiBmbG9hdCBwZkdyZWVuLHJlZiBmbG9hdCBwZkJsdWUp
CisgICAgICAgeworICAgICAgICAgICAgICBwZlJlZCA9IDA7CisgICAgICAgICAgICAgIHBmR3Jl
ZW4gPSAwOworICAgICAgICAgICAgICBwZkJsdWUgPSAwOworICAgICAgICAgICAgICBFVlJPdmVy
bGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5Q29sb3IodWxPdmVybGF5SGFuZGxl
LHJlZiBwZlJlZCxyZWYgcGZHcmVlbixyZWYgcGZCbHVlKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVy
bGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFuZGxlLGZsb2F0IGZBbHBoYSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlB
bHBoYSh1bE92ZXJsYXlIYW5kbGUsZkFscGhhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5QWxw
aGEodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZkFscGhhKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcGZBbHBoYSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlBbHBoYSh1bE92ZXJsYXlIYW5kbGUscmVmIHBmQWxw
aGEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsZmxvYXQgZlRleGVsQXNwZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsT3Zlcmxh
eUhhbmRsZSxmVGV4ZWxBc3BlY3QpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXhlbEFzcGVj
dCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmVGV4ZWxBc3BlY3QpCisgICAgICAg
eworICAgICAgICAgICAgICBwZlRleGVsQXNwZWN0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsT3Zlcmxh
eUhhbmRsZSxyZWYgcGZUZXhlbEFzcGVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVNvcnRP
cmRlcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blNvcnRPcmRlcikKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlT
b3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHVuU29ydE9yZGVyKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRP
dmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5Tb3J0T3Jk
ZXIpCisgICAgICAgeworICAgICAgICAgICAgICBwdW5Tb3J0T3JkZXIgPSAwOworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5U29ydE9yZGVy
KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuU29ydE9yZGVyKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVy
bGF5V2lkdGhJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZldpZHRoSW5NZXRl
cnMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUsZldpZHRoSW5NZXRl
cnMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSxyZWYgZmxvYXQgcGZXaWR0aEluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcGZXaWR0aEluTWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnModWxPdmVybGF5SGFuZGxlLHJl
ZiBwZldpZHRoSW5NZXRlcnMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBdXRvQ3VydmVEaXN0
YW5jZVJhbmdlSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLGZsb2F0IGZNaW5EaXN0YW5j
ZUluTWV0ZXJzLGZsb2F0IGZNYXhEaXN0YW5jZUluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUF1dG9DdXJ2
ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUsZk1pbkRpc3RhbmNlSW5NZXRl
cnMsZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBdXRvQ3Vy
dmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBw
Zk1pbkRpc3RhbmNlSW5NZXRlcnMscmVmIGZsb2F0IHBmTWF4RGlzdGFuY2VJbk1ldGVycykKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBmTWluRGlzdGFuY2VJbk1ldGVycyA9IDA7CisgICAgICAg
ICAgICAgIHBmTWF4RGlzdGFuY2VJbk1ldGVycyA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdl
SW5NZXRlcnModWxPdmVybGF5SGFuZGxlLHJlZiBwZk1pbkRpc3RhbmNlSW5NZXRlcnMscmVmIHBm
TWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxFQ29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3Bh
Y2UpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxPdmVybGF5SGFuZGxlLGVUZXh0dXJl
Q29sb3JTcGFjZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgRUNvbG9yU3BhY2UgcGVUZXh0dXJlQ29sb3JTcGFjZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBlVGV4dHVy
ZUNvbG9yU3BhY2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJlQm91
bmRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxPdmVybGF5SGFuZGxlLHJlZiBwT3Zlcmxh
eVRleHR1cmVCb3VuZHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJl
Qm91bmRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxPdmVybGF5SGFuZGxlLHJlZiBwT3Zl
cmxheVRleHR1cmVCb3VuZHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UeXBl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5VHJhbnNmb3JtVHlwZSBwZVRyYW5z
Zm9ybVR5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBl
VHJhbnNmb3JtVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdP
cmlnaW4scmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNm
b3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsT3ZlcmxheUhhbmRsZSxlVHJhY2tp
bmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0
cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
VHJhbnNmb3JtQWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLHJlZiBwZVRyYWNraW5nT3JpZ2luLHJl
ZiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLHVpbnQgdW5UcmFja2VkRGV2aWNlLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2
aWNlVG9PdmVybGF5VHJhbnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VS
ZWxhdGl2ZSh1bE92ZXJsYXlIYW5kbGUsdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0VHJhY2tlZERl
dmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQgcHVu
VHJhY2tlZERldmljZSxyZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tlZERldmljZVRvT3Zlcmxh
eVRyYW5zZm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1blRyYWNrZWREZXZpY2UgPSAw
OworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVu
VHJhY2tlZERldmljZSxyZWYgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaENvbXBvbmVu
dE5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bE92ZXJs
YXlIYW5kbGUsdW5EZXZpY2VJbmRleCxwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBH
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIHVpbnQgcHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsdWlu
dCB1bkNvbXBvbmVudE5hbWVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuRGV2aWNl
SW5kZXggPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bE92ZXJsYXlIYW5k
bGUscmVmIHB1bkRldmljZUluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lU2l6
ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgU2hvd092ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2hv
d092ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBIaWRlT3ZlcmxheSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5IaWRlT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc092
ZXJsYXlWaXNpYmxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc092ZXJsYXlWaXNpYmxlKHVsT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSxFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4s
SG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5PdmVybGF5LHJlZiBIbWRNYXRyaXgzNF90IHBtYXRU
cmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxPdmVybGF5SGFu
ZGxlLGVUcmFja2luZ09yaWdpbixjb29yZGluYXRlc0luT3ZlcmxheSxyZWYgcG1hdFRyYW5zZm9y
bSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBib29sIFBvbGxOZXh0T3ZlcmxheUV2ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJF
dmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50KQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Ym9vbCByZXN1bHQgPSBGblRhYmxlLlBvbGxOZXh0T3ZlcmxheUV2ZW50KHVsT3ZlcmxheUhhbmRs
ZSxyZWYgcEV2ZW50LHVuY2JWUkV2ZW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW5wdXRN
ZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUk92ZXJsYXlJbnB1dE1ldGhvZCBwZUlu
cHV0TWV0aG9kKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuR2V0T3ZlcmxheUlucHV0TWV0aG9kKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVJ
bnB1dE1ldGhvZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUlucHV0TWV0aG9kKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSxWUk92ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QpCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVy
bGF5SW5wdXRNZXRob2QodWxPdmVybGF5SGFuZGxlLGVJbnB1dE1ldGhvZCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheU1vdXNlU2NhbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBIbWRWZWN0
b3IyX3QgcHZlY01vdXNlU2NhbGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5TW91c2VTY2FsZSh1bE92ZXJsYXlIYW5k
bGUscmVmIHB2ZWNNb3VzZVNjYWxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TW91c2VTY2Fs
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LlNldE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
Ym9vbCBDb21wdXRlT3ZlcmxheUludGVyc2VjdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVm
IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190IHBQYXJhbXMscmVmIFZST3ZlcmxheUludGVy
c2VjdGlvblJlc3VsdHNfdCBwUmVzdWx0cykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5Db21wdXRlT3ZlcmxheUludGVyc2VjdGlvbih1bE92ZXJsYXlIYW5k
bGUscmVmIHBQYXJhbXMscmVmIHBSZXN1bHRzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJ
bnRlcmFjdGlvbkFzTW91c2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQgdW5Db250cm9sbGVy
RGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxPdmVybGF5SGFu
ZGxlLHVuQ29udHJvbGxlckRldmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNIb3ZlclRhcmdldE92ZXJsYXkodWxv
bmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQg
PSBGblRhYmxlLklzSG92ZXJUYXJnZXRPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRH
YW1lcGFkRm9jdXNPdmVybGF5KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3Vs
dCA9IEZuVGFibGUuR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEdh
bWVwYWRGb2N1c092ZXJsYXkodWxvbmcgdWxOZXdGb2N1c092ZXJsYXkpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRHYW1lcGFkRm9j
dXNPdmVybGF5KHVsTmV3Rm9jdXNPdmVybGF5KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TmVp
Z2hib3IoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbix1bG9uZyB1bEZyb20sdWxvbmcgdWxU
bykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLlNldE92ZXJsYXlOZWlnaGJvcihlRGlyZWN0aW9uLHVsRnJvbSx1bFRvKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0
aW9uLHVsb25nIHVsRnJvbSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLk1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yKGVEaXJlY3Rpb24s
dWxGcm9tKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIFRleHR1cmVfdCBwVGV4dHVyZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJlKHVsT3Zlcmxh
eUhhbmRsZSxyZWYgcFRleHR1cmUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENsZWFyT3ZlcmxheVRleHR1cmUo
dWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ2xlYXJPdmVybGF5VGV4dHVyZSh1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSYXcodWxvbmcgdWxPdmVybGF5SGFuZGxlLElu
dFB0ciBwdkJ1ZmZlcix1aW50IHVuV2lkdGgsdWludCB1bkhlaWdodCx1aW50IHVuRGVwdGgpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5T
ZXRPdmVybGF5UmF3KHVsT3ZlcmxheUhhbmRsZSxwdkJ1ZmZlcix1bldpZHRoLHVuSGVpZ2h0LHVu
RGVwdGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsc3RyaW5nIHBjaEZpbGVQYXRoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUZyb21GaWxlKHVsT3ZlcmxheUhh
bmRsZSxwY2hGaWxlUGF0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmUodWxvbmcg
dWxPdmVybGF5SGFuZGxlLHJlZiBJbnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUsSW50UHRyIHBO
YXRpdmVUZXh0dXJlUmVmLHJlZiB1aW50IHBXaWR0aCxyZWYgdWludCBwSGVpZ2h0LHJlZiB1aW50
IHBOYXRpdmVGb3JtYXQscmVmIEVUZXh0dXJlVHlwZSBwQVBJVHlwZSxyZWYgRUNvbG9yU3BhY2Ug
cENvbG9yU3BhY2UscmVmIFZSVGV4dHVyZUJvdW5kc190IHBUZXh0dXJlQm91bmRzKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcFdpZHRoID0gMDsKKyAgICAgICAgICAgICAgcEhlaWdodCA9IDA7
CisgICAgICAgICAgICAgIHBOYXRpdmVGb3JtYXQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVy
bGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZSh1bE92ZXJsYXlIYW5k
bGUscmVmIHBOYXRpdmVUZXh0dXJlSGFuZGxlLHBOYXRpdmVUZXh0dXJlUmVmLHJlZiBwV2lkdGgs
cmVmIHBIZWlnaHQscmVmIHBOYXRpdmVGb3JtYXQscmVmIHBBUElUeXBlLHJlZiBwQ29sb3JTcGFj
ZSxyZWYgcFRleHR1cmVCb3VuZHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFJlbGVhc2VOYXRpdmVPdmVybGF5
SGFuZGxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5SZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSh1bE92ZXJsYXlIYW5kbGUscE5hdGl2ZVRleHR1
cmVIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUscmVmIHVpbnQgcFdpZHRoLHJlZiB1aW50IHBIZWlnaHQpCisgICAgICAgewor
ICAgICAgICAgICAgICBwV2lkdGggPSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAg
ICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRl
eHR1cmVTaXplKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFdpZHRoLHJlZiBwSGVpZ2h0KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBDcmVhdGVEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0cmlu
ZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwTWFpbkhhbmRsZSxyZWYgdWxvbmcg
cFRodW1ibmFpbEhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBNYWluSGFuZGxlID0g
MDsKKyAgICAgICAgICAgICAgcFRodW1ibmFpbEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVW
Uk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkNyZWF0ZURhc2hib2FyZE92ZXJsYXkocGNo
T3ZlcmxheUtleSxwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiBwTWFpbkhhbmRsZSxyZWYgcFRo
dW1ibmFpbEhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBib29sIElzRGFzaGJvYXJkVmlzaWJsZSgpCisgICAgICAgeworICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNEYXNoYm9hcmRWaXNpYmxlKCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElz
QWN0aXZlRGFzaGJvYXJkT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNBY3RpdmVEYXNoYm9hcmRPdmVy
bGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0RGFzaGJvYXJkT3ZlcmxheVNj
ZW5lUHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blByb2Nlc3NJZCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERh
c2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHVuUHJvY2Vzc0lkKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSxyZWYgdWludCBwdW5Qcm9jZXNzSWQpCisgICAgICAgeworICAgICAgICAgICAg
ICBwdW5Qcm9jZXNzSWQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsT3ZlcmxheUhhbmRs
ZSxyZWYgcHVuUHJvY2Vzc0lkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgU2hvd0Rhc2hib2FyZChzdHJpbmcgcGNoT3ZlcmxheVRv
U2hvdykKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2hvd0Rhc2hib2FyZChwY2hP
dmVybGF5VG9TaG93KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0UHJpbWFyeURh
c2hib2FyZERldmljZSgpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0UHJpbWFyeURhc2hib2FyZERldmljZSgpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNob3dLZXli
b2FyZChpbnQgZUlucHV0TW9kZSxpbnQgZUxpbmVJbnB1dE1vZGUsc3RyaW5nIHBjaERlc2NyaXB0
aW9uLHVpbnQgdW5DaGFyTWF4LHN0cmluZyBwY2hFeGlzdGluZ1RleHQsYm9vbCBiVXNlTWluaW1h
bE1vZGUsdWxvbmcgdVVzZXJWYWx1ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNob3dLZXlib2FyZChlSW5wdXRNb2RlLGVMaW5lSW5w
dXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxwY2hFeGlzdGluZ1RleHQsYlVzZU1pbmlt
YWxNb2RlLHVVc2VyVmFsdWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZEZvck92ZXJsYXko
dWxvbmcgdWxPdmVybGF5SGFuZGxlLGludCBlSW5wdXRNb2RlLGludCBlTGluZUlucHV0TW9kZSxz
dHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgsc3RyaW5nIHBjaEV4aXN0aW5nVGV4
dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZhbHVlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2hvd0tleWJvYXJkRm9y
T3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsZUlucHV0TW9kZSxlTGluZUlucHV0TW9kZSxwY2hEZXNj
cmlwdGlvbix1bkNoYXJNYXgscGNoRXhpc3RpbmdUZXh0LGJVc2VNaW5pbWFsTW9kZSx1VXNlclZh
bHVlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHVpbnQgR2V0S2V5Ym9hcmRUZXh0KFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGV4
dCx1aW50IGNjaFRleHQpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0S2V5Ym9hcmRUZXh0KHBjaFRleHQsY2NoVGV4dCk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEhpZGVLZXlib2FyZCgp
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkhpZGVLZXlib2FyZCgpOworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBwbWF0
VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKGVUcmFja2luZ09yaWdpbixy
ZWYgcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyB2b2lkIFNldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3Zl
cmxheUhhbmRsZSxIbWRSZWN0Ml90IGF2b2lkUmVjdCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuU2V0S2V5Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkodWxPdmVybGF5SGFuZGxlLGF2
b2lkUmVjdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheUludGVyc2VjdGlvbk1hc2sodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgcE1hc2tQcmltaXRpdmVzLHVpbnQgdW5OdW1NYXNr
UHJpbWl0aXZlcyx1aW50IHVuUHJpbWl0aXZlU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnRlcnNlY3Rpb25N
YXNrKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE1hc2tQcmltaXRpdmVzLHVuTnVtTWFza1ByaW1pdGl2
ZXMsdW5QcmltaXRpdmVTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5RmxhZ3ModWxvbmcg
dWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHBGbGFncykKKyAgICAgICB7CisgICAgICAgICAgICAg
IHBGbGFncyA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlGbGFncyh1bE92ZXJsYXlIYW5kbGUscmVmIHBGbGFncyk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2UgU2hvd01lc3NhZ2VPdmVybGF5KHN0cmluZyBwY2hUZXh0LHN0cmluZyBw
Y2hDYXB0aW9uLHN0cmluZyBwY2hCdXR0b24wVGV4dCxzdHJpbmcgcGNoQnV0dG9uMVRleHQsc3Ry
aW5nIHBjaEJ1dHRvbjJUZXh0LHN0cmluZyBwY2hCdXR0b24zVGV4dCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSByZXN1bHQgPSBGblRhYmxlLlNob3dN
ZXNzYWdlT3ZlcmxheShwY2hUZXh0LHBjaENhcHRpb24scGNoQnV0dG9uMFRleHQscGNoQnV0dG9u
MVRleHQscGNoQnV0dG9uMlRleHQscGNoQnV0dG9uM1RleHQpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSUmVuZGVyTW9kZWxz
Cit7CisgICAgICAgSVZSUmVuZGVyTW9kZWxzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZS
UmVuZGVyTW9kZWxzKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZSA9IChJVlJSZW5kZXJNb2RlbHMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJm
YWNlLCB0eXBlb2YoSVZSUmVuZGVyTW9kZWxzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJSZW5kZXJNb2RlbEVycm9yIExvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNoUmVuZGVy
TW9kZWxOYW1lLHJlZiBJbnRQdHIgcHBSZW5kZXJNb2RlbCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkUmVuZGVyTW9kZWxf
QXN5bmMocGNoUmVuZGVyTW9kZWxOYW1lLHJlZiBwcFJlbmRlck1vZGVsKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRnJlZVJlbmRl
ck1vZGVsKEludFB0ciBwUmVuZGVyTW9kZWwpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLkZyZWVSZW5kZXJNb2RlbChwUmVuZGVyTW9kZWwpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkVGV4dHVyZV9Bc3luYyhpbnQgdGV4dHVyZUlkLHJl
ZiBJbnRQdHIgcHBUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9k
ZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJlX0FzeW5jKHRleHR1cmVJZCxyZWYg
cHBUZXh0dXJlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHZvaWQgRnJlZVRleHR1cmUoSW50UHRyIHBUZXh0dXJlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5GcmVlVGV4dHVyZShwVGV4dHVyZSk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50
IHRleHR1cmVJZCxJbnRQdHIgcEQzRDExRGV2aWNlLHJlZiBJbnRQdHIgcHBEM0QxMVRleHR1cmUy
RCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5Mb2FkVGV4dHVyZUQzRDExX0FzeW5jKHRleHR1cmVJZCxwRDNEMTFEZXZpY2UscmVm
IHBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkSW50b1RleHR1cmVEM0Qx
MV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBwRHN0VGV4dHVyZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkSW50b1Rl
eHR1cmVEM0QxMV9Bc3luYyh0ZXh0dXJlSWQscERzdFRleHR1cmUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4dHVyZUQz
RDExKEludFB0ciBwRDNEMTFUZXh0dXJlMkQpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLkZyZWVUZXh0dXJlRDNEMTEocEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHVpbnQgR2V0UmVuZGVyTW9kZWxOYW1lKHVpbnQgdW5SZW5kZXJNb2RlbEluZGV4LFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoUmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5SZW5kZXJN
b2RlbE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFi
bGUuR2V0UmVuZGVyTW9kZWxOYW1lKHVuUmVuZGVyTW9kZWxJbmRleCxwY2hSZW5kZXJNb2RlbE5h
bWUsdW5SZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJNb2RlbENvdW50KCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbENv
dW50KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB1aW50IEdldENvbXBvbmVudENvdW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUpCisg
ICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50
Q291bnQocGNoUmVuZGVyTW9kZWxOYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9uZW50TmFtZShzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRJbmRleCxTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaENvbXBvbmVudE5hbWUsdWludCB1bkNvbXBvbmVudE5hbWVMZW4pCisgICAgICAg
eworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50TmFtZShw
Y2hSZW5kZXJNb2RlbE5hbWUsdW5Db21wb25lbnRJbmRleCxwY2hDb21wb25lbnROYW1lLHVuQ29t
cG9uZW50TmFtZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB1bG9uZyBHZXRDb21wb25lbnRCdXR0b25NYXNrKHN0cmluZyBwY2hSZW5k
ZXJNb2RlbE5hbWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpCisgICAgICAgeworICAgICAgICAg
ICAgICB1bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldENvbXBvbmVudEJ1dHRvbk1hc2socGNoUmVu
ZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRDb21wb25lbnRSZW5kZXJNb2Rl
bE5hbWUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxT
eXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1aW50
IHVuQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
dWludCByZXN1bHQgPSBGblRhYmxlLkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShwY2hSZW5k
ZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSxwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUs
dW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKy8vIFRoaXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHdvcmthcm91bmQg
dGhlIGZhY3QgdGhhdCBWUkNvbnRyb2xsZXJTdGF0ZV90IHdhcworLy8gb3JpZ2luYWxseSBtaXMt
Y29tcGlsZWQgd2l0aCB0aGUgd3JvbmcgcGFja2luZyBmb3IgTGludXggYW5kIE9TWC4KKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldENvbXBvbmVudFN0YXRlUGFja2VkKHN0
cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUscmVmIFZSQ29u
dHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUscmVmIFJlbmRlck1vZGVsX0Nv
bnRyb2xsZXJNb2RlX1N0YXRlX3QgcFN0YXRlLHJlZiBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0
ZV90IHBDb21wb25lbnRTdGF0ZSk7CisgICAgICAgW1N0cnVjdExheW91dChMYXlvdXRLaW5kLkV4
cGxpY2l0KV0KKyAgICAgICBzdHJ1Y3QgR2V0Q29tcG9uZW50U3RhdGVVbmlvbgorICAgICAgIHsK
KyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgSVZS
UmVuZGVyTW9kZWxzLl9HZXRDb21wb25lbnRTdGF0ZSBwR2V0Q29tcG9uZW50U3RhdGU7CisgICAg
ICAgICAgICAgIFtGaWVsZE9mZnNldCgwKV0KKyAgICAgICAgICAgICAgcHVibGljIF9HZXRDb21w
b25lbnRTdGF0ZVBhY2tlZCBwR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldENvbXBvbmVudFN0YXRlKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5h
bWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUscmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENvbnRy
b2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3RhdGUs
cmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRm
b3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0u
UGxhdGZvcm1JRC5Vbml4KSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
R2V0Q29tcG9uZW50U3RhdGVVbmlvbiB1OworICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9s
bGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb21wb25lbnRTdGF0ZVBhY2tl
ZCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb21wb25lbnRTdGF0ZSA9IEZu
VGFibGUuR2V0Q29tcG9uZW50U3RhdGU7CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tl
ZF9yZXN1bHQgPSB1LnBHZXRDb21wb25lbnRTdGF0ZVBhY2tlZChwY2hSZW5kZXJNb2RlbE5hbWUs
cGNoQ29tcG9uZW50TmFtZSxyZWYgc3RhdGVfcGFja2VkLHJlZiBwU3RhdGUscmVmIHBDb21wb25l
bnRTdGF0ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgIHN0YXRlX3BhY2tlZC5VbnBhY2socmVm
IHBDb250cm9sbGVyU3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2tlZF9y
ZXN1bHQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldENvbXBvbmVudFN0YXRlKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1l
LHJlZiBwQ29udHJvbGxlclN0YXRlLHJlZiBwU3RhdGUscmVmIHBDb21wb25lbnRTdGF0ZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5n
IHBjaENvbXBvbmVudE5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuUmVuZGVyTW9kZWxIYXNDb21wb25lbnQocGNoUmVuZGVyTW9kZWxOYW1lLHBjaENv
bXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJpbmcgcGNoUmVu
ZGVyTW9kZWxOYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGh1bWJuYWlsVVJMLHVp
bnQgdW5UaHVtYm5haWxVUkxMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTChwY2hSZW5kZXJNb2RlbE5hbWUscGNoVGh1bWJuYWlsVVJMLHVuVGh1bWJu
YWlsVVJMTGVuLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgoc3Ry
aW5nIHBjaFJlbmRlck1vZGVsTmFtZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaE9yaWdp
bmFsUGF0aCx1aW50IHVuT3JpZ2luYWxQYXRoTGVuLHJlZiBFVlJSZW5kZXJNb2RlbEVycm9yIHBl
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgocGNoUmVuZGVyTW9kZWxOYW1lLHBjaE9yaWdpbmFsUGF0
aCx1bk9yaWdpbmFsUGF0aExlbixyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0UmVuZGVyTW9kZWxFcnJv
ck5hbWVGcm9tRW51bShFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVG
cm9tRW51bShlcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5n
QW5zaShyZXN1bHQpOworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSTm90aWZpY2F0
aW9ucworeworICAgICAgIElWUk5vdGlmaWNhdGlvbnMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5h
bCBDVlJOb3RpZmljYXRpb25zKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRm5UYWJsZSA9IChJVlJOb3RpZmljYXRpb25zKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUo
cEludGVyZmFjZSwgdHlwZW9mKElWUk5vdGlmaWNhdGlvbnMpKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk5vdGlmaWNhdGlvbkVycm9yIENyZWF0ZU5vdGlmaWNhdGlvbih1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsdWxvbmcgdWxVc2VyVmFsdWUsRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLHN0
cmluZyBwY2hUZXh0LEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLHJlZiBOb3RpZmljYXRpb25C
aXRtYXBfdCBwSW1hZ2UscmVmIHVpbnQgcE5vdGlmaWNhdGlvbklkKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcE5vdGlmaWNhdGlvbklkID0gMDsKKyAgICAgICAgICAgICAgRVZSTm90aWZpY2F0
aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5DcmVhdGVOb3RpZmljYXRpb24odWxPdmVybGF5SGFu
ZGxlLHVsVXNlclZhbHVlLHR5cGUscGNoVGV4dCxzdHlsZSxyZWYgcEltYWdlLHJlZiBwTm90aWZp
Y2F0aW9uSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgRVZSTm90aWZpY2F0aW9uRXJyb3IgUmVtb3ZlTm90aWZpY2F0aW9uKHVpbnQgbm90
aWZpY2F0aW9uSWQpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJv
ciByZXN1bHQgPSBGblRhYmxlLlJlbW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JZCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFz
cyBDVlJTZXR0aW5ncworeworICAgICAgIElWUlNldHRpbmdzIEZuVGFibGU7CisgICAgICAgaW50
ZXJuYWwgQ1ZSU2V0dGluZ3MoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlID0gKElWUlNldHRpbmdzKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVy
ZmFjZSwgdHlwZW9mKElWUlNldHRpbmdzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJp
bmcgR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldFNldHRp
bmdzRXJyb3JOYW1lRnJvbUVudW0oZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNo
YWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IFN5bmMoYm9vbCBiRm9yY2UscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5TeW5jKGJGb3JjZSxyZWYgcGVF
cnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIFNldEJvb2woc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5
LGJvb2wgYlZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLlNldEJvb2wocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxiVmFs
dWUscmVmIHBlRXJyb3IpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRJbnQzMihz
dHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksaW50IG5WYWx1ZSxyZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5T
ZXRJbnQzMihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LG5WYWx1ZSxyZWYgcGVFcnJvcik7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLHN0
cmluZyBwY2hTZXR0aW5nc0tleSxmbG9hdCBmbFZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBl
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEZsb2F0KHBjaFNlY3Rp
b24scGNoU2V0dGluZ3NLZXksZmxWYWx1ZSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB2b2lkIFNldFN0cmluZyhzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGlu
Z3NLZXksc3RyaW5nIHBjaFZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldFN0cmluZyhwY2hTZWN0aW9uLHBjaFNldHRp
bmdzS2V5LHBjaFZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJv
b2wgR2V0Qm9vbChzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXkscmVmIEVW
UlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5HZXRCb29sKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscmVmIHBlRXJy
b3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgaW50IEdldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxy
ZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaW50
IHJlc3VsdCA9IEZuVGFibGUuR2V0SW50MzIocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYg
cGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBmbG9hdCBHZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGlu
Z3NLZXkscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIGZsb2F0IHJlc3VsdCA9IEZuVGFibGUuR2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5n
c0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIEdldFN0cmluZyhzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcg
cGNoU2V0dGluZ3NLZXksU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVu
VmFsdWVMZW4scmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuR2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFs
dWUsdW5WYWx1ZUxlbixyZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lk
IFJlbW92ZVNlY3Rpb24oc3RyaW5nIHBjaFNlY3Rpb24scmVmIEVWUlNldHRpbmdzRXJyb3IgcGVF
cnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVtb3ZlU2VjdGlvbihwY2hT
ZWN0aW9uLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVtb3Zl
S2V5SW5TZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYg
RVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5SZW1vdmVLZXlJblNlY3Rpb24ocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJv
cik7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJTY3JlZW5zaG90cworeworICAg
ICAgIElWUlNjcmVlbnNob3RzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSU2NyZWVuc2hv
dHMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0g
KElWUlNjcmVlbnNob3RzKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9m
KElWUlNjcmVlbnNob3RzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90
RXJyb3IgUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsRVZS
U2NyZWVuc2hvdFR5cGUgdHlwZSxzdHJpbmcgcGNoUHJldmlld0ZpbGVuYW1lLHN0cmluZyBwY2hW
UkZpbGVuYW1lKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcE91dFNjcmVlbnNob3RIYW5kbGUg
PSAwOworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5S
ZXF1ZXN0U2NyZWVuc2hvdChyZWYgcE91dFNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hQcmV2aWV3
RmlsZW5hbWUscGNoVlJGaWxlbmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgSG9va1NjcmVlbnNob3Qo
RVZSU2NyZWVuc2hvdFR5cGUgW10gcFN1cHBvcnRlZFR5cGVzKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3VsdCA9IEZuVGFibGUuSG9va1NjcmVlbnNob3Qo
cFN1cHBvcnRlZFR5cGVzLChpbnQpIHBTdXBwb3J0ZWRUeXBlcy5MZW5ndGgpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hv
dFR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSh1aW50IHNjcmVlbnNob3RIYW5kbGUscmVm
IEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJT
Y3JlZW5zaG90VHlwZSByZXN1bHQgPSBGblRhYmxlLkdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUo
c2NyZWVuc2hvdEhhbmRsZSxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0U2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWUodWludCBzY3JlZW5zaG90SGFuZGxlLEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
cyBmaWxlbmFtZVR5cGUsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hGaWxlbmFtZSx1aW50
IGNjaEZpbGVuYW1lLHJlZiBFVlJTY3JlZW5zaG90RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFNjcmVlbnNob3RQcm9wZXJ0eUZp
bGVuYW1lKHNjcmVlbnNob3RIYW5kbGUsZmlsZW5hbWVUeXBlLHBjaEZpbGVuYW1lLGNjaEZpbGVu
YW1lLHJlZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hvdEVycm9yIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVz
cyh1aW50IHNjcmVlbnNob3RIYW5kbGUsZmxvYXQgZmxQcm9ncmVzcykKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlVwZGF0ZVNjcmVl
bnNob3RQcm9ncmVzcyhzY3JlZW5zaG90SGFuZGxlLGZsUHJvZ3Jlc3MpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hvdEVy
cm9yIFRha2VTdGVyZW9TY3JlZW5zaG90KHJlZiB1aW50IHBPdXRTY3JlZW5zaG90SGFuZGxlLHN0
cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCisgICAgICAgewor
ICAgICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVW
UlNjcmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlRha2VTdGVyZW9TY3JlZW5zaG90KHJl
ZiBwT3V0U2NyZWVuc2hvdEhhbmRsZSxwY2hQcmV2aWV3RmlsZW5hbWUscGNoVlJGaWxlbmFtZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJTY3JlZW5zaG90RXJyb3IgU3VibWl0U2NyZWVuc2hvdCh1aW50IHNjcmVlbnNob3RIYW5kbGUs
RVZSU2NyZWVuc2hvdFR5cGUgdHlwZSxzdHJpbmcgcGNoU291cmNlUHJldmlld0ZpbGVuYW1lLHN0
cmluZyBwY2hTb3VyY2VWUkZpbGVuYW1lKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2Ny
ZWVuc2hvdEVycm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0U2NyZWVuc2hvdChzY3JlZW5zaG90
SGFuZGxlLHR5cGUscGNoU291cmNlUHJldmlld0ZpbGVuYW1lLHBjaFNvdXJjZVZSRmlsZW5hbWUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitwdWJsaWMg
Y2xhc3MgQ1ZSUmVzb3VyY2VzCit7CisgICAgICAgSVZSUmVzb3VyY2VzIEZuVGFibGU7CisgICAg
ICAgaW50ZXJuYWwgQ1ZSUmVzb3VyY2VzKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJSZXNvdXJjZXMpTWFyc2hhbC5QdHJUb1N0cnVjdHVy
ZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSUmVzb3VyY2VzKSk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB1aW50IExvYWRTaGFyZWRSZXNvdXJjZShzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmlu
ZyBwY2hCdWZmZXIsdWludCB1bkJ1ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkU2hhcmVkUmVzb3VyY2UocGNoUmVzb3VyY2VOYW1lLHBj
aEJ1ZmZlcix1bkJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFJlc291cmNlRnVsbFBhdGgoc3RyaW5nIHBjaFJl
c291cmNlTmFtZSxzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LHN0cmluZyBwY2hQYXRo
QnVmZmVyLHVpbnQgdW5CdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJl
c3VsdCA9IEZuVGFibGUuR2V0UmVzb3VyY2VGdWxsUGF0aChwY2hSZXNvdXJjZU5hbWUscGNoUmVz
b3VyY2VUeXBlRGlyZWN0b3J5LHBjaFBhdGhCdWZmZXIsdW5CdWZmZXJMZW4pOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgT3BlblZS
SW50ZXJvcAoreworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRy
eVBvaW50ID0gIlZSX0luaXRJbnRlcm5hbCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0Nv
bnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gdWludCBJbml0
SW50ZXJuYWwocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFw
cGxpY2F0aW9uVHlwZSk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIs
IEVudHJ5UG9pbnQgPSAiVlJfU2h1dGRvd25JbnRlcm5hbCIsIENhbGxpbmdDb252ZW50aW9uID0g
Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4g
dm9pZCBTaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3Bl
bnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNIbWRQcmVzZW50IiwgQ2FsbGluZ0NvbnZlbnRp
b24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4
dGVybiBib29sIElzSG1kUHJlc2VudCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9w
ZW52cl9hcGkiLCBFbnRyeVBvaW50ID0gIlZSX0lzUnVudGltZUluc3RhbGxlZCIsIENhbGxpbmdD
b252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0
YXRpYyBleHRlcm4gYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKTsKKyAgICAgICBbRGxsSW1wb3J0
QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRTdHJpbmdGb3JIbWRF
cnJvciIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAg
ICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldFN0cmluZ0ZvckhtZEVycm9yKEVW
UkluaXRFcnJvciBlcnJvcik7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2Fw
aSIsIEVudHJ5UG9pbnQgPSAiVlJfR2V0R2VuZXJpY0ludGVyZmFjZSIsIENhbGxpbmdDb252ZW50
aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBl
eHRlcm4gSW50UHRyIEdldEdlbmVyaWNJbnRlcmZhY2UoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5MUFN0cildIHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVycm9y
IHBlRXJyb3IpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRy
eVBvaW50ID0gIlZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlkIiwgQ2FsbGluZ0NvbnZlbnRpb24g
PSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVy
biBib29sIElzSW50ZXJmYWNlVmVyc2lvblZhbGlkKFtJbiwgTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuTFBTdHIpXSBzdHJpbmcgcGNoSW50ZXJmYWNlVmVyc2lvbik7CisgICAgICAgW0RsbEltcG9y
dEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfR2V0SW5pdFRva2VuIiwg
Q2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50
ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEdldEluaXRUb2tlbigpOworfQorCisKK3B1YmxpYyBl
bnVtIEVWUkV5ZQoreworICAgICAgIEV5ZV9MZWZ0ID0gMCwKKyAgICAgICBFeWVfUmlnaHQgPSAx
LAorfQorcHVibGljIGVudW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgRGlyZWN0WCA9IDAsCisg
ICAgICAgT3BlbkdMID0gMSwKKyAgICAgICBWdWxrYW4gPSAyLAorICAgICAgIElPU3VyZmFjZSA9
IDMsCisgICAgICAgRGlyZWN0WDEyID0gNCwKK30KK3B1YmxpYyBlbnVtIEVDb2xvclNwYWNlCit7
CisgICAgICAgQXV0byA9IDAsCisgICAgICAgR2FtbWEgPSAxLAorICAgICAgIExpbmVhciA9IDIs
Cit9CitwdWJsaWMgZW51bSBFVHJhY2tpbmdSZXN1bHQKK3sKKyAgICAgICBVbmluaXRpYWxpemVk
ID0gMSwKKyAgICAgICBDYWxpYnJhdGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAgIENhbGli
cmF0aW5nX091dE9mUmFuZ2UgPSAxMDEsCisgICAgICAgUnVubmluZ19PSyA9IDIwMCwKKyAgICAg
ICBSdW5uaW5nX091dE9mUmFuZ2UgPSAyMDEsCit9CitwdWJsaWMgZW51bSBFVHJhY2tlZERldmlj
ZUNsYXNzCit7CisgICAgICAgSW52YWxpZCA9IDAsCisgICAgICAgSE1EID0gMSwKKyAgICAgICBD
b250cm9sbGVyID0gMiwKKyAgICAgICBHZW5lcmljVHJhY2tlciA9IDMsCisgICAgICAgVHJhY2tp
bmdSZWZlcmVuY2UgPSA0LAorfQorcHVibGljIGVudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQor
eworICAgICAgIEludmFsaWQgPSAwLAorICAgICAgIExlZnRIYW5kID0gMSwKKyAgICAgICBSaWdo
dEhhbmQgPSAyLAorfQorcHVibGljIGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAg
ICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwKKyAgICAgICBUcmFja2luZ1VuaXZlcnNl
U3RhbmRpbmcgPSAxLAorICAgICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQg
PSAyLAorfQorcHVibGljIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eQoreworICAgICAgIFBy
b3BfSW52YWxpZCA9IDAsCisgICAgICAgUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3RyaW5nID0g
MTAwMCwKKyAgICAgICBQcm9wX01vZGVsTnVtYmVyX1N0cmluZyA9IDEwMDEsCisgICAgICAgUHJv
cF9TZXJpYWxOdW1iZXJfU3RyaW5nID0gMTAwMiwKKyAgICAgICBQcm9wX1JlbmRlck1vZGVsTmFt
ZV9TdHJpbmcgPSAxMDAzLAorICAgICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQs
CisgICAgICAgUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyA9IDEwMDUsCisgICAgICAgUHJv
cF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgPSAxMDA2LAorICAgICAgIFByb3BfSGFy
ZHdhcmVSZXZpc2lvbl9TdHJpbmcgPSAxMDA3LAorICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25n
bGVEZXNjcmlwdGlvbnNfU3RyaW5nID0gMTAwOCwKKyAgICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVs
ZXNzRG9uZ2xlX1N0cmluZyA9IDEwMDksCisgICAgICAgUHJvcF9EZXZpY2VJc1dpcmVsZXNzX0Jv
b2wgPSAxMDEwLAorICAgICAgIFByb3BfRGV2aWNlSXNDaGFyZ2luZ19Cb29sID0gMTAxMSwKKyAg
ICAgICBQcm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ID0gMTAxMiwKKyAgICAgICBQ
cm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQgPSAxMDEzLAorICAgICAgIFByb3Bf
RmlybXdhcmVfVXBkYXRlQXZhaWxhYmxlX0Jvb2wgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdh
cmVfTWFudWFsVXBkYXRlX0Jvb2wgPSAxMDE1LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFs
VXBkYXRlVVJMX1N0cmluZyA9IDEwMTYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1Vp
bnQ2NCA9IDEwMTcsCisgICAgICAgUHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMTAxOCwK
KyAgICAgICBQcm9wX0ZQR0FWZXJzaW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgUHJvcF9WUkNW
ZXJzaW9uX1VpbnQ2NCA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ID0g
MTAyMSwKKyAgICAgICBQcm9wX0RvbmdsZVZlcnNpb25fVWludDY0ID0gMTAyMiwKKyAgICAgICBQ
cm9wX0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCA9IDEwMjMsCisgICAgICAgUHJvcF9DYW5Vbmlm
eUNvb3JkaW5hdGVTeXN0ZW1XaXRoSG1kX0Jvb2wgPSAxMDI0LAorICAgICAgIFByb3BfQ29udGFp
bnNQcm94aW1pdHlTZW5zb3JfQm9vbCA9IDEwMjUsCisgICAgICAgUHJvcF9EZXZpY2VQcm92aWRl
c0JhdHRlcnlTdGF0dXNfQm9vbCA9IDEwMjYsCisgICAgICAgUHJvcF9EZXZpY2VDYW5Qb3dlck9m
Zl9Cb29sID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0
cmluZyA9IDEwMjgsCisgICAgICAgUHJvcF9EZXZpY2VDbGFzc19JbnQzMiA9IDEwMjksCisgICAg
ICAgUHJvcF9IYXNDYW1lcmFfQm9vbCA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9u
X1N0cmluZyA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVk
X0Jvb2wgPSAxMDMyLAorICAgICAgIFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jv
b2wgPSAxMDMzLAorICAgICAgIFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisgICAg
ICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCA9IDIwMDAsCisgICAgICAgUHJvcF9T
ZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gMjAwMSwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlGcmVxdWVuY3lfRmxvYXQgPSAyMDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9h
dCA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50NjQgPSAyMDA0LAor
ICAgICAgIFByb3BfUHJldmlvdXNVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDUsCisgICAgICAgUHJv
cF9EaXNwbGF5RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMDYsCisgICAgICAgUHJvcF9Jc09u
RGVza3RvcF9Cb29sID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1R5cGVfSW50MzIgPSAy
MDA4LAorICAgICAgIFByb3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ID0gMjAwOSwKKyAgICAgICBQ
cm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5kb3JJ
RF9JbnQzMiA9IDIwMTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nID0g
MjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nID0gMjAxMywKKyAg
ICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAgIFByb3Bf
RWRpZFByb2R1Y3RJRF9JbnQzMiA9IDIwMTUsCisgICAgICAgUHJvcF9DYW1lcmFUb0hlYWRUcmFu
c2Zvcm1fTWF0cml4MzQgPSAyMDE2LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiA9
IDIwMTcsCisgICAgICAgUHJvcF9EaXNwbGF5R0NPZmZzZXRfRmxvYXQgPSAyMDE4LAorICAgICAg
IFByb3BfRGlzcGxheUdDU2NhbGVfRmxvYXQgPSAyMDE5LAorICAgICAgIFByb3BfRGlzcGxheUdD
UHJlc2NhbGVfRmxvYXQgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5n
ID0gMjAyMSwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0VV9GbG9hdCA9IDIwMjIsCisgICAg
ICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0Nl
bnRlclJpZ2h0VV9GbG9hdCA9IDIwMjQsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRWX0Zs
b2F0ID0gMjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9
IDIwMjYsCisgICAgICAgUHJvcF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAyNywK
KyAgICAgICBQcm9wX0NhbWVyYUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nID0gMjAyOCwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlGUEdBVmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAgICAgIFByb3Bf
RGlzcGxheUJvb3Rsb2FkZXJWZXJzaW9uX1VpbnQ2NCA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNw
bGF5SGFyZHdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMzEsCisgICAgICAgUHJvcF9BdWRpb0Zpcm13
YXJlVmVyc2lvbl9VaW50NjQgPSAyMDMyLAorICAgICAgIFByb3BfQ2FtZXJhQ29tcGF0aWJpbGl0
eU1vZGVfSW50MzIgPSAyMDMzLAorICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVs
ZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRp
Y2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlT
dXBwcmVzc2VkX0Jvb2wgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93TmlnaHRNb2Rl
X0Jvb2wgPSAyMDM3LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIw
MzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiA9IDIwMzksCisgICAg
ICAgUHJvcF9EaXNwbGF5TUNJbWFnZU51bUNoYW5uZWxzX0ludDMyID0gMjA0MCwKKyAgICAgICBQ
cm9wX0Rpc3BsYXlNQ0ltYWdlRGF0YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIFByb3BfVXNlc0Ry
aXZlckRpcmVjdE1vZGVfQm9vbCA9IDIwNDIsCisgICAgICAgUHJvcF9BdHRhY2hlZERldmljZUlk
X1N0cmluZyA9IDMwMDAsCisgICAgICAgUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCA9IDMw
MDEsCisgICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgPSAzMDAyLAorICAgICAgIFByb3BfQXhp
czFUeXBlX0ludDMyID0gMzAwMywKKyAgICAgICBQcm9wX0F4aXMyVHlwZV9JbnQzMiA9IDMwMDQs
CisgICAgICAgUHJvcF9BeGlzM1R5cGVfSW50MzIgPSAzMDA1LAorICAgICAgIFByb3BfQXhpczRU
eXBlX0ludDMyID0gMzAwNiwKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiA9
IDMwMDcsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ID0gNDAwMCwK
KyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ID0gNDAwMSwKKyAgICAg
ICBQcm9wX0ZpZWxkT2ZWaWV3VG9wRGVncmVlc19GbG9hdCA9IDQwMDIsCisgICAgICAgUHJvcF9G
aWVsZE9mVmlld0JvdHRvbURlZ3JlZXNfRmxvYXQgPSA0MDAzLAorICAgICAgIFByb3BfVHJhY2tp
bmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgPSA0MDA0LAorICAgICAgIFByb3BfVHJhY2tpbmdS
YW5nZU1heGltdW1NZXRlcnNfRmxvYXQgPSA0MDA1LAorICAgICAgIFByb3BfTW9kZUxhYmVsX1N0
cmluZyA9IDQwMDYsCisgICAgICAgUHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nID0gNTAwMCwKKyAg
ICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nID0gNTAwMSwKKyAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdfU3RyaW5nID0gNTAwMiwKKyAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdBbGVydF9TdHJpbmcgPSA1MDAzLAorICAg
ICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyA9IDUwMDQsCisgICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlBbGVydF9TdHJpbmcgPSA1MDA1LAorICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZU5vdFJlYWR5X1N0cmluZyA9IDUwMDYsCisgICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU3RhbmRieV9TdHJpbmcgPSA1MDA3LAorICAgICAgIFBy
b3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0TG93X1N0cmluZyA9IDUwMDgsCisgICAgICAgUHJv
cF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgPSA1MTAwLAorICAgICAgIFByb3BfRGlz
cGxheUhpZGRlbkFyZWFfQmluYXJ5X0VuZCA9IDUxNTAsCisgICAgICAgUHJvcF9Vc2VyQ29uZmln
UGF0aF9TdHJpbmcgPSA2MDAwLAorICAgICAgIFByb3BfSW5zdGFsbFBhdGhfU3RyaW5nID0gNjAw
MSwKKyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisg
ICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgPSAxMDk5OSwKK30KK3B1Ymxp
YyBlbnVtIEVUcmFja2VkUHJvcGVydHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nl
c3MgPSAwLAorICAgICAgIFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGUgPSAxLAorICAgICAgIFRy
YWNrZWRQcm9wX1dyb25nRGV2aWNlQ2xhc3MgPSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1ZmZl
clRvb1NtYWxsID0gMywKKyAgICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgPSA0LAor
ICAgICAgIFRyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgPSA1LAorICAgICAgIFRyYWNrZWRQcm9w
X0NvdWxkTm90Q29udGFjdFNlcnZlciA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQ
cm92aWRlZEJ5RGV2aWNlID0gNywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4
aW11bUxlbmd0aCA9IDgsCisgICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwK
KyAgICAgICBUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkID0gMTAsCisgICAgICAgVHJhY2tl
ZFByb3BfSW52YWxpZE9wZXJhdGlvbiA9IDExLAorfQorcHVibGljIGVudW0gRVZSU3VibWl0Rmxh
Z3MKK3sKKyAgICAgICBTdWJtaXRfRGVmYXVsdCA9IDAsCisgICAgICAgU3VibWl0X0xlbnNEaXN0
b3J0aW9uQWxyZWFkeUFwcGxpZWQgPSAxLAorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9
IDIsCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUlN0YXRl
Cit7CisgICAgICAgVW5kZWZpbmVkID0gLTEsCisgICAgICAgT2ZmID0gMCwKKyAgICAgICBTZWFy
Y2hpbmcgPSAxLAorICAgICAgIFNlYXJjaGluZ19BbGVydCA9IDIsCisgICAgICAgUmVhZHkgPSAz
LAorICAgICAgIFJlYWR5X0FsZXJ0ID0gNCwKKyAgICAgICBOb3RSZWFkeSA9IDUsCisgICAgICAg
U3RhbmRieSA9IDYsCisgICAgICAgUmVhZHlfQWxlcnRfTG93ID0gNywKK30KK3B1YmxpYyBlbnVt
IEVWUkV2ZW50VHlwZQoreworICAgICAgIFZSRXZlbnRfTm9uZSA9IDAsCisgICAgICAgVlJFdmVu
dF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERl
dmljZURlYWN0aXZhdGVkID0gMTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0
ZWQgPSAxMDIsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3Rh
cnRlZCA9IDEwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25F
bmRlZCA9IDEwNCwKKyAgICAgICBWUkV2ZW50X0lwZENoYW5nZWQgPSAxMDUsCisgICAgICAgVlJF
dmVudF9FbnRlclN0YW5kYnlNb2RlID0gMTA2LAorICAgICAgIFZSRXZlbnRfTGVhdmVTdGFuZGJ5
TW9kZSA9IDEwNywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCA9IDEw
OCwKKyAgICAgICBWUkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkID0gMTA5LAorICAgICAg
IFZSRXZlbnRfTGVuc0Rpc3RvcnRpb25DaGFuZ2VkID0gMTEwLAorICAgICAgIFZSRXZlbnRfUHJv
cGVydHlDaGFuZ2VkID0gMTExLAorICAgICAgIFZSRXZlbnRfQnV0dG9uUHJlc3MgPSAyMDAsCisg
ICAgICAgVlJFdmVudF9CdXR0b25VbnByZXNzID0gMjAxLAorICAgICAgIFZSRXZlbnRfQnV0dG9u
VG91Y2ggPSAyMDIsCisgICAgICAgVlJFdmVudF9CdXR0b25VbnRvdWNoID0gMjAzLAorICAgICAg
IFZSRXZlbnRfTW91c2VNb3ZlID0gMzAwLAorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3du
ID0gMzAxLAorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25VcCA9IDMwMiwKKyAgICAgICBWUkV2
ZW50X0ZvY3VzRW50ZXIgPSAzMDMsCisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlID0gMzA0LAor
ICAgICAgIFZSRXZlbnRfU2Nyb2xsID0gMzA1LAorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3Zl
ID0gMzA2LAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCA9IDMwNywKKyAgICAg
ICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCA9IDQwMCwKKyAgICAgICBWUkV2ZW50X0lucHV0
Rm9jdXNSZWxlYXNlZCA9IDQwMSwKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNMb3N0ID0gNDAy
LAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCA9IDQwMywKKyAgICAgICBWUkV2ZW50
X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkID0gNDA0LAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1
c0NoYW5nZWQgPSA0MDUsCisgICAgICAgVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdlZCA9IDQwNiwK
KyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVk
ID0gNDA3LAorICAgICAgIFZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyA9IDQxMCwKKyAgICAgICBW
UkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgPSA0MTEsCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hv
d24gPSA1MDAsCisgICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuID0gNTAxLAorICAgICAgIFZS
RXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
RGVhY3RpdmF0ZWQgPSA1MDMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNlbGVjdGVk
ID0gNTA0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVkID0gNTA1LAorICAgICAg
IFZSRXZlbnRfUmVzZXREYXNoYm9hcmQgPSA1MDYsCisgICAgICAgVlJFdmVudF9SZW5kZXJUb2Fz
dCA9IDUwNywKKyAgICAgICBWUkV2ZW50X0ltYWdlTG9hZGVkID0gNTA4LAorICAgICAgIFZSRXZl
bnRfU2hvd0tleWJvYXJkID0gNTA5LAorICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkID0gNTEw
LAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCA9IDUxMSwKKyAgICAg
ICBWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ID0gNTEyLAorICAgICAgIFZSRXZlbnRf
T3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAorICAgICAgIFZSRXZlbnRfRGFzaGJv
YXJkR3VpZGVCdXR0b25Eb3duID0gNTE0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVC
dXR0b25VcCA9IDUxNSwKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgPSA1MTYs
CisgICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCA9IDUxNywKKyAgICAgICBWUkV2ZW50X0Rhc2hi
b2FyZE92ZXJsYXlDcmVhdGVkID0gNTE4LAorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNo
b3QgPSA1MjAsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90VGFrZW4gPSA1MjEsCisgICAgICAg
VlJFdmVudF9TY3JlZW5zaG90RmFpbGVkID0gNTIyLAorICAgICAgIFZSRXZlbnRfU3VibWl0U2Ny
ZWVuc2hvdFRvRGFzaGJvYXJkID0gNTIzLAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dy
ZXNzVG9EYXNoYm9hcmQgPSA1MjQsCisgICAgICAgVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2
aWNlQ2hhbmdlZCA9IDUyNSwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biA9IDYw
MCwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gPSA2MDEsCisgICAgICAgVlJF
dmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlvbiA9IDYwMiwKKyAgICAgICBWUkV2ZW50
X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQgPSA2MDMsCisgICAgICAgVlJFdmVudF9RdWl0ID0gNzAw
LAorICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgPSA3MDEsCisgICAgICAgVlJFdmVudF9RdWl0
QWJvcnRlZF9Vc2VyUHJvbXB0ID0gNzAyLAorICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdl
ZCA9IDcwMywKKyAgICAgICBWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQsCisgICAg
ICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCA9IDgwMCwKKyAgICAgICBWUkV2ZW50
X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdlZCA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBl
cm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNl
dHRpbmdzSGF2ZUNoYW5nZWQgPSA4MDMsCisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0ID0gODA0LAorICAgICAgIFZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODIw
LAorICAgICAgIFZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkID0gODUwLAorICAg
ICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MSwKKyAgICAgICBWUkV2
ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAgIFZSRXZlbnRf
TW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MywKKyAgICAgICBWUkV2ZW50X0Vudmly
b25tZW50U2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NCwKKyAgICAgICBWUkV2ZW50X1Bvd2VyU2V0
dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NSwKKyAgICAgICBWUkV2ZW50X1N0YXR1c1VwZGF0ZSA9IDkw
MCwKKyAgICAgICBWUkV2ZW50X01DSW1hZ2VVcGRhdGVkID0gMTAwMCwKKyAgICAgICBWUkV2ZW50
X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCA9IDExMDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVw
ZGF0ZUZpbmlzaGVkID0gMTEwMSwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2xvc2VkID0gMTIw
MCwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ID0gMTIwMSwKKyAgICAgICBWUkV2
ZW50X0tleWJvYXJkRG9uZSA9IDEyMDIsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5z
aXRpb25TdGFydGVkID0gMTMwMCwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlv
bkFib3J0ZWQgPSAxMzAxLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3
QXBwU3RhcnRlZCA9IDEzMDIsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVk
ID0gMTMwMywKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkID0gMTMwNCwK
KyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRl
ID0gMTMwNSwKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gPSAx
NDAwLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gPSAxNDAx
LAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biA9IDE0MTAs
CisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiA9IDE0MTEs
CisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAor
ICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gPSAxNTAxLAorICAg
ICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtID0gMTUwMiwKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAg
IFZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSA9IDE1NTAsCisgICAgICAgVlJF
dmVudF9QZXJmb3JtYW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSA9IDE2MDAsCisgICAgICAgVlJFdmVu
dF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgPSAxNjAxLAorICAgICAgIFZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgPSAxNjAyLAorICAgICAgIFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlfQ2xvc2VkID0gMTY1MCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19S
ZXNlcnZlZF9FbmQgPSAxOTk5OSwKK30KK3B1YmxpYyBlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVs
Cit7CisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAg
a19FRGV2aWNlQWN0aXZpdHlMZXZlbF9JZGxlID0gMCwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0
eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCA9IDIsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9TdGFuZGJ5ID0gMywKK30KK3B1YmxpYyBlbnVtIEVWUkJ1dHRvbklkCit7CisgICAgICAg
a19FQnV0dG9uX1N5c3RlbSA9IDAsCisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSA9
IDEsCisgICAgICAga19FQnV0dG9uX0dyaXAgPSAyLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX0xl
ZnQgPSAzLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1VwID0gNCwKKyAgICAgICBrX0VCdXR0b25f
RFBhZF9SaWdodCA9IDUsCisgICAgICAga19FQnV0dG9uX0RQYWRfRG93biA9IDYsCisgICAgICAg
a19FQnV0dG9uX0EgPSA3LAorICAgICAgIGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgPSAzMSwK
KyAgICAgICBrX0VCdXR0b25fQXhpczAgPSAzMiwKKyAgICAgICBrX0VCdXR0b25fQXhpczEgPSAz
MywKKyAgICAgICBrX0VCdXR0b25fQXhpczIgPSAzNCwKKyAgICAgICBrX0VCdXR0b25fQXhpczMg
PSAzNSwKKyAgICAgICBrX0VCdXR0b25fQXhpczQgPSAzNiwKKyAgICAgICBrX0VCdXR0b25fU3Rl
YW1WUl9Ub3VjaHBhZCA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgPSAz
MywKKyAgICAgICBrX0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgPSAyLAorICAgICAgIGtfRUJ1dHRv
bl9NYXggPSA2NCwKK30KK3B1YmxpYyBlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgTGVm
dCA9IDEsCisgICAgICAgUmlnaHQgPSAyLAorICAgICAgIE1pZGRsZSA9IDQsCit9CitwdWJsaWMg
ZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7CisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfU3Rh
bmRhcmQgPSAwLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2UgPSAxLAorICAgICAg
IGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0gMiwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVz
aF9NYXggPSAzLAorfQorcHVibGljIGVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAg
ICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNf
VHJhY2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAg
ICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywKK30KK3B1YmxpYyBlbnVtIEVWUkNv
bnRyb2xsZXJFdmVudE91dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRf
T1NFdmVudHMgPSAwLAorICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEs
Cit9CitwdWJsaWMgZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAgICBDT0xMSVNJ
T05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSID0gMCwKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0lOVEVSTUVESUFURSA9IDEsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVB
UkVTID0gMiwKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VEID0gMywKKyAg
ICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUgPSA0LAorICAgICAgIENPTExJU0lPTl9C
T1VORFNfU1RZTEVfQ09VTlQgPSA1LAorfQorcHVibGljIGVudW0gRVZST3ZlcmxheUVycm9yCit7
CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgVW5rbm93bk92ZXJsYXkgPSAxMCwKKyAgICAgICBJ
bnZhbGlkSGFuZGxlID0gMTEsCisgICAgICAgUGVybWlzc2lvbkRlbmllZCA9IDEyLAorICAgICAg
IE92ZXJsYXlMaW1pdEV4Y2VlZGVkID0gMTMsCisgICAgICAgV3JvbmdWaXNpYmlsaXR5VHlwZSA9
IDE0LAorICAgICAgIEtleVRvb0xvbmcgPSAxNSwKKyAgICAgICBOYW1lVG9vTG9uZyA9IDE2LAor
ICAgICAgIEtleUluVXNlID0gMTcsCisgICAgICAgV3JvbmdUcmFuc2Zvcm1UeXBlID0gMTgsCisg
ICAgICAgSW52YWxpZFRyYWNrZWREZXZpY2UgPSAxOSwKKyAgICAgICBJbnZhbGlkUGFyYW1ldGVy
ID0gMjAsCisgICAgICAgVGh1bWJuYWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgQXJy
YXlUb29TbWFsbCA9IDIyLAorICAgICAgIFJlcXVlc3RGYWlsZWQgPSAyMywKKyAgICAgICBJbnZh
bGlkVGV4dHVyZSA9IDI0LAorICAgICAgIFVuYWJsZVRvTG9hZEZpbGUgPSAyNSwKKyAgICAgICBL
ZXlib2FyZEFscmVhZHlJblVzZSA9IDI2LAorICAgICAgIE5vTmVpZ2hib3IgPSAyNywKKyAgICAg
ICBUb29NYW55TWFza1ByaW1pdGl2ZXMgPSAyOSwKKyAgICAgICBCYWRNYXNrUHJpbWl0aXZlID0g
MzAsCit9CitwdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvblR5cGUKK3sKKyAgICAgICBWUkFwcGxp
Y2F0aW9uX090aGVyID0gMCwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lID0gMSwKKyAgICAg
ICBWUkFwcGxpY2F0aW9uX092ZXJsYXkgPSAyLAorICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dy
b3VuZCA9IDMsCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwKKyAgICAgICBWUkFw
cGxpY2F0aW9uX1ZSTW9uaXRvciA9IDUsCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNo
ZG9nID0gNiwKKyAgICAgICBWUkFwcGxpY2F0aW9uX01heCA9IDcsCit9CitwdWJsaWMgZW51bSBF
VlJGaXJtd2FyZUVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgU3VjY2VzcyA9IDEs
CisgICAgICAgRmFpbCA9IDIsCit9CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgor
eworICAgICAgIE9LID0gMCwKKyAgICAgICBJbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisg
ICAgICAgTm90aWZpY2F0aW9uUXVldWVGdWxsID0gMTAxLAorICAgICAgIEludmFsaWRPdmVybGF5
SGFuZGxlID0gMTAyLAorICAgICAgIFN5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0g
MTAzLAorfQorcHVibGljIGVudW0gRVZSSW5pdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisg
ICAgICAgVW5rbm93biA9IDEsCisgICAgICAgSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDEw
MCwKKyAgICAgICBJbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgPSAxMDEsCisgICAgICAgSW5pdF9W
UkNsaWVudERMTE5vdEZvdW5kID0gMTAyLAorICAgICAgIEluaXRfRmlsZU5vdEZvdW5kID0gMTAz
LAorICAgICAgIEluaXRfRmFjdG9yeU5vdEZvdW5kID0gMTA0LAorICAgICAgIEluaXRfSW50ZXJm
YWNlTm90Rm91bmQgPSAxMDUsCisgICAgICAgSW5pdF9JbnZhbGlkSW50ZXJmYWNlID0gMTA2LAor
ICAgICAgIEluaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisgICAgICAgSW5p
dF9IbWROb3RGb3VuZCA9IDEwOCwKKyAgICAgICBJbml0X05vdEluaXRpYWxpemVkID0gMTA5LAor
ICAgICAgIEluaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgPSAxMTAsCisgICAgICAgSW5pdF9Ob0Nv
bmZpZ1BhdGggPSAxMTEsCisgICAgICAgSW5pdF9Ob0xvZ1BhdGggPSAxMTIsCisgICAgICAgSW5p
dF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSA9IDExMywKKyAgICAgICBJbml0X0FwcEluZm9Jbml0
RmFpbGVkID0gMTE0LAorICAgICAgIEluaXRfUmV0cnkgPSAxMTUsCisgICAgICAgSW5pdF9Jbml0
Q2FuY2VsZWRCeVVzZXIgPSAxMTYsCisgICAgICAgSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nID0g
MTE3LAorICAgICAgIEluaXRfU2V0dGluZ3NJbml0RmFpbGVkID0gMTE4LAorICAgICAgIEluaXRf
U2h1dHRpbmdEb3duID0gMTE5LAorICAgICAgIEluaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisg
ICAgICAgSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAgPSAxMjEsCisgICAgICAgSW5pdF9O
b3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvciA9IDEyMiwKKyAgICAgICBJbml0X05vdEF2YWlsYWJs
ZVRvVXRpbGl0eUFwcHMgPSAxMjMsCisgICAgICAgSW5pdF9JbnRlcm5hbCA9IDEyNCwKKyAgICAg
ICBJbml0X0htZERyaXZlcklkSXNOb25lID0gMTI1LAorICAgICAgIEluaXRfSG1kTm90Rm91bmRQ
cmVzZW5jZUZhaWxlZCA9IDEyNiwKKyAgICAgICBJbml0X1ZSTW9uaXRvck5vdEZvdW5kID0gMTI3
LAorICAgICAgIEluaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCA9IDEyOCwKKyAgICAgICBJbml0
X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgPSAxMjksCisgICAgICAgSW5pdF9JbnZhbGlk
QXBwbGljYXRpb25UeXBlID0gMTMwLAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRv
Z0FwcHMgPSAxMzEsCisgICAgICAgSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEz
MiwKKyAgICAgICBJbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgPSAxMzMsCisgICAgICAgSW5pdF9W
UkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQgPSAxMzQsCisgICAgICAgRHJpdmVyX0ZhaWxlZCA9IDIw
MCwKKyAgICAgICBEcml2ZXJfVW5rbm93biA9IDIwMSwKKyAgICAgICBEcml2ZXJfSG1kVW5rbm93
biA9IDIwMiwKKyAgICAgICBEcml2ZXJfTm90TG9hZGVkID0gMjAzLAorICAgICAgIERyaXZlcl9S
dW50aW1lT3V0T2ZEYXRlID0gMjA0LAorICAgICAgIERyaXZlcl9IbWRJblVzZSA9IDIwNSwKKyAg
ICAgICBEcml2ZXJfTm90Q2FsaWJyYXRlZCA9IDIwNiwKKyAgICAgICBEcml2ZXJfQ2FsaWJyYXRp
b25JbnZhbGlkID0gMjA3LAorICAgICAgIERyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgPSAyMDgs
CisgICAgICAgRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAg
ICAgIERyaXZlcl9IbWREcml2ZXJJZE91dE9mQm91bmRzID0gMjExLAorICAgICAgIERyaXZlcl9I
bWREaXNwbGF5TWlycm9yZWQgPSAyMTIsCisgICAgICAgSVBDX1NlcnZlckluaXRGYWlsZWQgPSAz
MDAsCisgICAgICAgSVBDX0Nvbm5lY3RGYWlsZWQgPSAzMDEsCisgICAgICAgSVBDX1NoYXJlZFN0
YXRlSW5pdEZhaWxlZCA9IDMwMiwKKyAgICAgICBJUENfQ29tcG9zaXRvckluaXRGYWlsZWQgPSAz
MDMsCisgICAgICAgSVBDX011dGV4SW5pdEZhaWxlZCA9IDMwNCwKKyAgICAgICBJUENfRmFpbGVk
ID0gMzA1LAorICAgICAgIElQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCA9IDMwNiwKKyAgICAg
ICBJUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UgPSAzMDcsCisgICAgICAgSVBD
X0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCisgICAgICAgQ29tcG9z
aXRvcl9GYWlsZWQgPSA0MDAsCisgICAgICAgQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWly
ZWQgPSA0MDEsCisgICAgICAgQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlID0gNDAy
LAorICAgICAgIENvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAgICAgQ29t
cG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgPSA0MDQsCisgICAgICAgVmVuZG9yU3BlY2lm
aWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lID0gMTAwMCwKKyAgICAgICBWZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSA9IDExMDEsCisgICAgICAgVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQgPSAxMTAyLAorICAgICAg
IFZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnID0gMTEwMywKKyAgICAgICBW
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29CaWcgPSAxMTA0LAorICAgICAgIFZlbmRv
clNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsID0gMTEwNSwKKyAgICAgICBWZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliID0gMTEwNiwKKyAgICAgICBWZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAgICAg
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCA9IDExMDgs
CisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0
ID0gMTEwOSwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJE
YXRhTmV4dCA9IDExMTAsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFB
ZGRyZXNzUmFuZ2UgPSAxMTExLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJE
YXRhRXJyb3IgPSAxMTEyLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0Zh
aWxlZFNhbml0eUNoZWNrID0gMTExMywKKyAgICAgICBTdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5v
dEZvdW5kID0gMjAwMCwKK30KK3B1YmxpYyBlbnVtIEVWUlNjcmVlbnNob3RUeXBlCit7CisgICAg
ICAgTm9uZSA9IDAsCisgICAgICAgTW9ubyA9IDEsCisgICAgICAgU3RlcmVvID0gMiwKKyAgICAg
ICBDdWJlbWFwID0gMywKKyAgICAgICBNb25vUGFub3JhbWEgPSA0LAorICAgICAgIFN0ZXJlb1Bh
bm9yYW1hID0gNSwKK30KK3B1YmxpYyBlbnVtIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
cworeworICAgICAgIFByZXZpZXcgPSAwLAorICAgICAgIFZSID0gMSwKK30KK3B1YmxpYyBlbnVt
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIE9wZXJh
dGlvbkZhaWxlZCA9IDEwMCwKKyAgICAgICBJbnZhbGlkSGFuZGxlID0gMTAxLAorICAgICAgIElu
dmFsaWRGcmFtZUhlYWRlclZlcnNpb24gPSAxMDIsCisgICAgICAgT3V0T2ZIYW5kbGVzID0gMTAz
LAorICAgICAgIElQQ0ZhaWx1cmUgPSAxMDQsCisgICAgICAgTm90U3VwcG9ydGVkRm9yVGhpc0Rl
dmljZSA9IDEwNSwKKyAgICAgICBTaGFyZWRNZW1vcnlGYWlsdXJlID0gMTA2LAorICAgICAgIEZy
YW1lQnVmZmVyaW5nRmFpbHVyZSA9IDEwNywKKyAgICAgICBTdHJlYW1TZXR1cEZhaWx1cmUgPSAx
MDgsCisgICAgICAgSW52YWxpZEdMVGV4dHVyZUlkID0gMTA5LAorICAgICAgIEludmFsaWRTaGFy
ZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIEZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgPSAx
MTEsCisgICAgICAgU2hhcmVkVGV4dHVyZUZhaWx1cmUgPSAxMTIsCisgICAgICAgTm9GcmFtZUF2
YWlsYWJsZSA9IDExMywKKyAgICAgICBJbnZhbGlkQXJndW1lbnQgPSAxMTQsCisgICAgICAgSW52
YWxpZEZyYW1lQnVmZmVyU2l6ZSA9IDExNSwKK30KK3B1YmxpYyBlbnVtIEVWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGUKK3sKKyAgICAgICBEaXN0b3J0ZWQgPSAwLAorICAgICAgIFVuZGlzdG9ydGVk
ID0gMSwKKyAgICAgICBNYXhpbXVtVW5kaXN0b3J0ZWQgPSAyLAorICAgICAgIE1BWF9DQU1FUkFf
RlJBTUVfVFlQRVMgPSAzLAorfQorcHVibGljIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgorewor
ICAgICAgIE5vbmUgPSAwLAorICAgICAgIEFwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAsCisgICAg
ICAgTm9NYW5pZmVzdCA9IDEwMSwKKyAgICAgICBOb0FwcGxpY2F0aW9uID0gMTAyLAorICAgICAg
IEludmFsaWRJbmRleCA9IDEwMywKKyAgICAgICBVbmtub3duQXBwbGljYXRpb24gPSAxMDQsCisg
ICAgICAgSVBDRmFpbGVkID0gMTA1LAorICAgICAgIEFwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcg
PSAxMDYsCisgICAgICAgSW52YWxpZE1hbmlmZXN0ID0gMTA3LAorICAgICAgIEludmFsaWRBcHBs
aWNhdGlvbiA9IDEwOCwKKyAgICAgICBMYXVuY2hGYWlsZWQgPSAxMDksCisgICAgICAgQXBwbGlj
YXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsCisgICAgICAgTGF1bmNoSW5Qcm9ncmVzcyA9IDEx
MSwKKyAgICAgICBPbGRBcHBsaWNhdGlvblF1aXR0aW5nID0gMTEyLAorICAgICAgIFRyYW5zaXRp
b25BYm9ydGVkID0gMTEzLAorICAgICAgIElzVGVtcGxhdGUgPSAxMTQsCisgICAgICAgQnVmZmVy
VG9vU21hbGwgPSAyMDAsCisgICAgICAgUHJvcGVydHlOb3RTZXQgPSAyMDEsCisgICAgICAgVW5r
bm93blByb3BlcnR5ID0gMjAyLAorICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCit9Citw
dWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvblByb3BlcnR5Cit7CisgICAgICAgTmFtZV9TdHJpbmcg
PSAwLAorICAgICAgIExhdW5jaFR5cGVfU3RyaW5nID0gMTEsCisgICAgICAgV29ya2luZ0RpcmVj
dG9yeV9TdHJpbmcgPSAxMiwKKyAgICAgICBCaW5hcnlQYXRoX1N0cmluZyA9IDEzLAorICAgICAg
IEFyZ3VtZW50c19TdHJpbmcgPSAxNCwKKyAgICAgICBVUkxfU3RyaW5nID0gMTUsCisgICAgICAg
RGVzY3JpcHRpb25fU3RyaW5nID0gNTAsCisgICAgICAgTmV3c1VSTF9TdHJpbmcgPSA1MSwKKyAg
ICAgICBJbWFnZVBhdGhfU3RyaW5nID0gNTIsCisgICAgICAgU291cmNlX1N0cmluZyA9IDUzLAor
ICAgICAgIElzRGFzaGJvYXJkT3ZlcmxheV9Cb29sID0gNjAsCisgICAgICAgSXNUZW1wbGF0ZV9C
b29sID0gNjEsCisgICAgICAgSXNJbnN0YW5jZWRfQm9vbCA9IDYyLAorICAgICAgIElzSW50ZXJu
YWxfQm9vbCA9IDYzLAorICAgICAgIExhc3RMYXVuY2hUaW1lX1VpbnQ2NCA9IDcwLAorfQorcHVi
bGljIGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUKK3sKKyAgICAgICBWUkFwcGxp
Y2F0aW9uVHJhbnNpdGlvbl9Ob25lID0gMCwKKyAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
bl9PbGRBcHBRdWl0U2VudCA9IDEwLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dh
aXRpbmdGb3JFeHRlcm5hbExhdW5jaCA9IDExLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0
aW9uX05ld0FwcExhdW5jaGVkID0gMjAsCit9CitwdWJsaWMgZW51bSBDaGFwZXJvbmVDYWxpYnJh
dGlvblN0YXRlCit7CisgICAgICAgT0sgPSAxLAorICAgICAgIFdhcm5pbmcgPSAxMDAsCisgICAg
ICAgV2FybmluZ19CYXNlU3RhdGlvbk1heUhhdmVNb3ZlZCA9IDEwMSwKKyAgICAgICBXYXJuaW5n
X0Jhc2VTdGF0aW9uUmVtb3ZlZCA9IDEwMiwKKyAgICAgICBXYXJuaW5nX1NlYXRlZEJvdW5kc0lu
dmFsaWQgPSAxMDMsCisgICAgICAgRXJyb3IgPSAyMDAsCisgICAgICAgRXJyb3JfQmFzZVN0YXRp
b25VbmluaXRpYWxpemVkID0gMjAxLAorICAgICAgIEVycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3Qg
PSAyMDIsCisgICAgICAgRXJyb3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLAorICAgICAgIEVycm9y
X0NvbGxpc2lvbkJvdW5kc0ludmFsaWQgPSAyMDQsCit9CitwdWJsaWMgZW51bSBFQ2hhcGVyb25l
Q29uZmlnRmlsZQoreworICAgICAgIExpdmUgPSAxLAorICAgICAgIFRlbXAgPSAyLAorfQorcHVi
bGljIGVudW0gRUNoYXBlcm9uZUltcG9ydEZsYWdzCit7CisgICAgICAgRUNoYXBlcm9uZUltcG9y
dF9Cb3VuZHNPbmx5ID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUkNvbXBvc2l0b3JFcnJvcgorewor
ICAgICAgIE5vbmUgPSAwLAorICAgICAgIFJlcXVlc3RGYWlsZWQgPSAxLAorICAgICAgIEluY29t
cGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgRG9Ob3RIYXZlRm9jdXMgPSAxMDEsCisgICAg
ICAgSW52YWxpZFRleHR1cmUgPSAxMDIsCisgICAgICAgSXNOb3RTY2VuZUFwcGxpY2F0aW9uID0g
MTAzLAorICAgICAgIFRleHR1cmVJc09uV3JvbmdEZXZpY2UgPSAxMDQsCisgICAgICAgVGV4dHVy
ZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCA9IDEwNSwKKyAgICAgICBTaGFyZWRUZXh0dXJlc05vdFN1
cHBvcnRlZCA9IDEwNiwKKyAgICAgICBJbmRleE91dE9mUmFuZ2UgPSAxMDcsCisgICAgICAgQWxy
ZWFkeVN1Ym1pdHRlZCA9IDEwOCwKK30KK3B1YmxpYyBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9k
Cit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgTW91c2UgPSAxLAorfQorcHVibGljIGVudW0g
VlJPdmVybGF5VHJhbnNmb3JtVHlwZQoreworICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9BYnNv
bHV0ZSA9IDAsCisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2
ZSA9IDEsCisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgPSAyLAorICAg
ICAgIFZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9uZW50ID0gMywKK30KK3B1YmxpYyBl
bnVtIFZST3ZlcmxheUZsYWdzCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgQ3VydmVkID0g
MSwKKyAgICAgICBSR1NTNFggPSAyLAorICAgICAgIE5vRGFzaGJvYXJkVGFiID0gMywKKyAgICAg
ICBBY2NlcHRzR2FtZXBhZEV2ZW50cyA9IDQsCisgICAgICAgU2hvd0dhbWVwYWRGb2N1cyA9IDUs
CisgICAgICAgU2VuZFZSU2Nyb2xsRXZlbnRzID0gNiwKKyAgICAgICBTZW5kVlJUb3VjaHBhZEV2
ZW50cyA9IDcsCisgICAgICAgU2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwgPSA4LAorICAgICAgIFRy
YW5zZmVyT3duZXJzaGlwVG9JbnRlcm5hbFByb2Nlc3MgPSA5LAorICAgICAgIFNpZGVCeVNpZGVf
UGFyYWxsZWwgPSAxMCwKKyAgICAgICBTaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwKKyAgICAgICBQ
YW5vcmFtYSA9IDEyLAorICAgICAgIFN0ZXJlb1Bhbm9yYW1hID0gMTMsCisgICAgICAgU29ydFdp
dGhOb25TY2VuZU92ZXJsYXlzID0gMTQsCisgICAgICAgVmlzaWJsZUluRGFzaGJvYXJkID0gMTUs
Cit9CitwdWJsaWMgZW51bSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKK3sKKyAgICAgICBCdXR0
b25QcmVzc18wID0gMCwKKyAgICAgICBCdXR0b25QcmVzc18xID0gMSwKKyAgICAgICBCdXR0b25Q
cmVzc18yID0gMiwKKyAgICAgICBCdXR0b25QcmVzc18zID0gMywKKyAgICAgICBDb3VsZG50Rmlu
ZFN5c3RlbU92ZXJsYXkgPSA0LAorICAgICAgIENvdWxkbnRGaW5kT3JDcmVhdGVDbGllbnRPdmVy
bGF5ID0gNSwKKyAgICAgICBBcHBsaWNhdGlvblF1aXQgPSA2LAorfQorcHVibGljIGVudW0gRUdh
bWVwYWRUZXh0SW5wdXRNb2RlCit7CisgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3Jt
YWwgPSAwLAorICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAorICAg
ICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0ID0gMiwKK30KK3B1YmxpYyBlbnVtIEVH
YW1lcGFkVGV4dElucHV0TGluZU1vZGUKK3sKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGlu
ZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVN
dWx0aXBsZUxpbmVzID0gMSwKK30KK3B1YmxpYyBlbnVtIEVPdmVybGF5RGlyZWN0aW9uCit7Cisg
ICAgICAgVXAgPSAwLAorICAgICAgIERvd24gPSAxLAorICAgICAgIExlZnQgPSAyLAorICAgICAg
IFJpZ2h0ID0gMywKKyAgICAgICBDb3VudCA9IDQsCit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUKK3sKKyAgICAgICBPdmVybGF5SW50ZXJzZWN0
aW9uUHJpbWl0aXZlVHlwZV9SZWN0YW5nbGUgPSAwLAorICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rp
b25QcmltaXRpdmVUeXBlX0NpcmNsZSA9IDEsCit9CitwdWJsaWMgZW51bSBFVlJSZW5kZXJNb2Rl
bEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgTG9hZGluZyA9IDEwMCwKKyAgICAg
ICBOb3RTdXBwb3J0ZWQgPSAyMDAsCisgICAgICAgSW52YWxpZEFyZyA9IDMwMCwKKyAgICAgICBJ
bnZhbGlkTW9kZWwgPSAzMDEsCisgICAgICAgTm9TaGFwZXMgPSAzMDIsCisgICAgICAgTXVsdGlw
bGVTaGFwZXMgPSAzMDMsCisgICAgICAgVG9vTWFueVZlcnRpY2VzID0gMzA0LAorICAgICAgIE11
bHRpcGxlVGV4dHVyZXMgPSAzMDUsCisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAzMDYsCisgICAg
ICAgTm90RW5vdWdoTm9ybWFscyA9IDMwNywKKyAgICAgICBOb3RFbm91Z2hUZXhDb29yZHMgPSAz
MDgsCisgICAgICAgSW52YWxpZFRleHR1cmUgPSA0MDAsCit9CitwdWJsaWMgZW51bSBFVlJDb21w
b25lbnRQcm9wZXJ0eQoreworICAgICAgIElzU3RhdGljID0gMSwKKyAgICAgICBJc1Zpc2libGUg
PSAyLAorICAgICAgIElzVG91Y2hlZCA9IDQsCisgICAgICAgSXNQcmVzc2VkID0gOCwKKyAgICAg
ICBJc1Njcm9sbGVkID0gMTYsCit9CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25UeXBlCit7
CisgICAgICAgVHJhbnNpZW50ID0gMCwKKyAgICAgICBQZXJzaXN0ZW50ID0gMSwKKyAgICAgICBU
cmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIsCit9CitwdWJsaWMgZW51bSBFVlJOb3Rp
ZmljYXRpb25TdHlsZQoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIEFwcGxpY2F0aW9uID0g
MTAwLAorICAgICAgIENvbnRhY3RfRGlzYWJsZWQgPSAyMDAsCisgICAgICAgQ29udGFjdF9FbmFi
bGVkID0gMjAxLAorICAgICAgIENvbnRhY3RfQWN0aXZlID0gMjAyLAorfQorcHVibGljIGVudW0g
RVZSU2V0dGluZ3NFcnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIElQQ0ZhaWxlZCA9
IDEsCisgICAgICAgV3JpdGVGYWlsZWQgPSAyLAorICAgICAgIFJlYWRGYWlsZWQgPSAzLAorICAg
ICAgIEpzb25QYXJzZUZhaWxlZCA9IDQsCisgICAgICAgVW5zZXRTZXR0aW5nSGFzTm9EZWZhdWx0
ID0gNSwKK30KK3B1YmxpYyBlbnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIE5vbmUg
PSAwLAorICAgICAgIFJlcXVlc3RGYWlsZWQgPSAxLAorICAgICAgIEluY29tcGF0aWJsZVZlcnNp
b24gPSAxMDAsCisgICAgICAgTm90Rm91bmQgPSAxMDEsCisgICAgICAgQnVmZmVyVG9vU21hbGwg
PSAxMDIsCisgICAgICAgU2NyZWVuc2hvdEFscmVhZHlJblByb2dyZXNzID0gMTA4LAorfQorCitb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
RGF0YV90Cit7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9SZXNlcnZl
ZF90IHJlc2VydmVkOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ29u
dHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJF
dmVudF9Nb3VzZV90IG1vdXNlOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZl
bnRfU2Nyb2xsX3Qgc2Nyb2xsOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZl
bnRfUHJvY2Vzc190IHByb2Nlc3M7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJF
dmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRpb247CisgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XSBwdWJsaWMgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBbRmllbGRPZmZzZXQo
MCldIHB1YmxpYyBWUkV2ZW50X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBbRmllbGRPZmZzZXQo
MCldIHB1YmxpYyBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1
YmxpYyBWUkV2ZW50X0NoYXBlcm9uZV90IGNoYXBlcm9uZTsKKyAgICAgICBbRmllbGRPZmZzZXQo
MCldIHB1YmxpYyBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVzdDsKKyAg
ICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNo
UGFkTW92ZTsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1NlYXRlZFpl
cm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OworICAgICAgIFtGaWVsZE9mZnNldCgw
KV0gcHVibGljIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgW0ZpZWxk
T2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90
UHJvZ3Jlc3M7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9BcHBsaWNh
dGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAg
ICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCBtZXNz
YWdlT3ZlcmxheTsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0tleWJv
YXJkX3Qga2V5Ym9hcmQ7IC8vIFRoaXMgaGFzIHRvIGJlIGF0IHRoZSBlbmQgZHVlIHRvIGEgbW9u
byBidWcKK30KKworCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXSBwdWJsaWMg
c3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90Cit7CisgICAg
ICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1f
UmVjdGFuZ2xlOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIEludGVyc2VjdGlvbk1h
c2tDaXJjbGVfdCBtX0NpcmNsZTsKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBwdWJsaWMgZmxv
YXQgbTA7IC8vZmxvYXRbM11bNF0KKyAgICAgICBwdWJsaWMgZmxvYXQgbTE7CisgICAgICAgcHVi
bGljIGZsb2F0IG0yOworICAgICAgIHB1YmxpYyBmbG9hdCBtMzsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbTQ7CisgICAgICAgcHVibGljIGZsb2F0IG01OworICAgICAgIHB1YmxpYyBmbG9hdCBtNjsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbTc7CisgICAgICAgcHVibGljIGZsb2F0IG04OworICAgICAg
IHB1YmxpYyBmbG9hdCBtOTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTEwOworICAgICAgIHB1Ymxp
YyBmbG9hdCBtMTE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgSG1kTWF0cml4NDRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9m
bG9hdFs0XVs0XQorICAgICAgIHB1YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bTI7CisgICAgICAgcHVibGljIGZsb2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgbTU7CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAgICAgIHB1
YmxpYyBmbG9hdCBtNzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVibGljIGZs
b2F0IG05OworICAgICAgIHB1YmxpYyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZsb2F0IG0x
MTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTEyOworICAgICAgIHB1YmxpYyBmbG9hdCBtMTM7Cisg
ICAgICAgcHVibGljIGZsb2F0IG0xNDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTE1OworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFZlY3Rv
cjNfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB2MDsgLy9mbG9hdFszXQorICAgICAgIHB1Ymxp
YyBmbG9hdCB2MTsKKyAgICAgICBwdWJsaWMgZmxvYXQgdjI7Cit9CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAg
ICAgcHVibGljIGZsb2F0IHYwOyAvL2Zsb2F0WzRdCisgICAgICAgcHVibGljIGZsb2F0IHYxOwor
ICAgICAgIHB1YmxpYyBmbG9hdCB2MjsKKyAgICAgICBwdWJsaWMgZmxvYXQgdjM7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9y
M2RfdAoreworICAgICAgIHB1YmxpYyBkb3VibGUgdjA7IC8vZG91YmxlWzNdCisgICAgICAgcHVi
bGljIGRvdWJsZSB2MTsKKyAgICAgICBwdWJsaWMgZG91YmxlIHYyOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFZlY3RvcjJfdAorewor
ICAgICAgIHB1YmxpYyBmbG9hdCB2MDsgLy9mbG9hdFsyXQorICAgICAgIHB1YmxpYyBmbG9hdCB2
MTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBwdWJsaWMgZG91YmxlIHc7CisgICAgICAgcHVi
bGljIGRvdWJsZSB4OworICAgICAgIHB1YmxpYyBkb3VibGUgeTsKKyAgICAgICBwdWJsaWMgZG91
YmxlIHo7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBz
dHJ1Y3QgSG1kQ29sb3JfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCByOworICAgICAgIHB1Ymxp
YyBmbG9hdCBnOworICAgICAgIHB1YmxpYyBmbG9hdCBiOworICAgICAgIHB1YmxpYyBmbG9hdCBh
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IEhtZFF1YWRfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMwOyAvL0ht
ZFZlY3RvcjNfdFs0XQorICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMxOworICAg
ICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMyOworICAgICAgIHB1YmxpYyBIbWRWZWN0
b3IzX3QgdkNvcm5lcnMzOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IEhtZFJlY3QyX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90
IHZUb3BMZWZ0OworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IERpc3Rv
cnRpb25Db29yZGluYXRlc190Cit7CisgICAgICAgcHVibGljIGZsb2F0IHJmUmVkMDsgLy9mbG9h
dFsyXQorICAgICAgIHB1YmxpYyBmbG9hdCByZlJlZDE7CisgICAgICAgcHVibGljIGZsb2F0IHJm
R3JlZW4wOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHJmR3JlZW4xOworICAgICAg
IHB1YmxpYyBmbG9hdCByZkJsdWUwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHJm
Qmx1ZTE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBz
dHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgcHVibGljIEludFB0ciBoYW5kbGU7IC8vIHZvaWQg
KgorICAgICAgIHB1YmxpYyBFVGV4dHVyZVR5cGUgZVR5cGU7CisgICAgICAgcHVibGljIEVDb2xv
clNwYWNlIGVDb2xvclNwYWNlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBwdWJsaWMg
SG1kTWF0cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIHB1YmxpYyBI
bWRWZWN0b3IzX3QgdlZlbG9jaXR5OworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkFuZ3Vs
YXJWZWxvY2l0eTsKKyAgICAgICBwdWJsaWMgRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3Vs
dDsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBi
b29sIGJQb3NlSXNWYWxpZDsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQor
ICAgICAgIHB1YmxpYyBib29sIGJEZXZpY2VJc0Nvbm5lY3RlZDsKK30KK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAor
eworICAgICAgIHB1YmxpYyBmbG9hdCB1TWluOworICAgICAgIHB1YmxpYyBmbG9hdCB2TWluOwor
ICAgICAgIHB1YmxpYyBmbG9hdCB1TWF4OworICAgICAgIHB1YmxpYyBmbG9hdCB2TWF4OworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSVnVs
a2FuVGV4dHVyZURhdGFfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyBtX25JbWFnZTsKKyAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcERldmljZTsgLy8gc3RydWN0IFZrRGV2aWNlX1QgKgorICAgICAg
IHB1YmxpYyBJbnRQdHIgbV9wUGh5c2ljYWxEZXZpY2U7IC8vIHN0cnVjdCBWa1BoeXNpY2FsRGV2
aWNlX1QgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0lu
c3RhbmNlX1QgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUXVldWU7IC8vIHN0cnVjdCBWa1F1
ZXVlX1QgKgorICAgICAgIHB1YmxpYyB1aW50IG1fblF1ZXVlRmFtaWx5SW5kZXg7CisgICAgICAg
cHVibGljIHVpbnQgbV9uV2lkdGg7CisgICAgICAgcHVibGljIHVpbnQgbV9uSGVpZ2h0OworICAg
ICAgIHB1YmxpYyB1aW50IG1fbkZvcm1hdDsKKyAgICAgICBwdWJsaWMgdWludCBtX25TYW1wbGVD
b3VudDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0
cnVjdCBEM0QxMlRleHR1cmVEYXRhX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFJlc291
cmNlOyAvLyBzdHJ1Y3QgSUQzRDEyUmVzb3VyY2UgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9w
Q29tbWFuZFF1ZXVlOyAvLyBzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoKKyAgICAgICBwdWJs
aWMgdWludCBtX25Ob2RlTWFzazsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0NvbnRyb2xsZXJfdAoreworICAgICAgIHB1Ymxp
YyB1aW50IGJ1dHRvbjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X01vdXNlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgeDsK
KyAgICAgICBwdWJsaWMgZmxvYXQgeTsKKyAgICAgICBwdWJsaWMgdWludCBidXR0b247Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVu
dF9TY3JvbGxfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4ZGVsdGE7CisgICAgICAgcHVibGlj
IGZsb2F0IHlkZWx0YTsKKyAgICAgICBwdWJsaWMgdWludCByZXBlYXRDb3VudDsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Rv
dWNoUGFkTW92ZV90Cit7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAg
ICAgICBwdWJsaWMgYm9vbCBiRmluZ2VyRG93bjsKKyAgICAgICBwdWJsaWMgZmxvYXQgZmxTZWNv
bmRzRmluZ2VyRG93bjsKKyAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAg
IHB1YmxpYyBmbG9hdCBmVmFsdWVZRmlyc3Q7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVhS
YXc7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVlSYXc7Cit9CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25f
dAoreworICAgICAgIHB1YmxpYyB1bG9uZyB1bFVzZXJWYWx1ZTsKKyAgICAgICBwdWJsaWMgdWlu
dCBub3RpZmljYXRpb25JZDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHB1YmxpYyB1aW50
IHBpZDsKKyAgICAgICBwdWJsaWMgdWludCBvbGRQaWQ7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBiRm9yY2VkOworfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfT3Zlcmxh
eV90Cit7CisgICAgICAgcHVibGljIHVsb25nIG92ZXJsYXlIYW5kbGU7Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNf
dAoreworICAgICAgIHB1YmxpYyB1aW50IHN0YXR1c1N0YXRlOworfQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfS2V5Ym9hcmRfdAor
eworICAgICAgIHB1YmxpYyBieXRlIGNOZXdJbnB1dDAsY05ld0lucHV0MSxjTmV3SW5wdXQyLGNO
ZXdJbnB1dDMsY05ld0lucHV0NCxjTmV3SW5wdXQ1LGNOZXdJbnB1dDYsY05ld0lucHV0NzsKKyAg
ICAgICBwdWJsaWMgdWxvbmcgdVVzZXJWYWx1ZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgcHVi
bGljIGZsb2F0IGlwZE1ldGVyczsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgcHVibGlj
IHVsb25nIG1fblByZXZpb3VzVW5pdmVyc2U7CisgICAgICAgcHVibGljIHVsb25nIG1fbkN1cnJl
bnRVbml2ZXJzZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X1Jlc2VydmVkX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgcmVz
ZXJ2ZWQwOworICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDE7Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfdAoreworICAgICAgIHB1YmxpYyB1aW50IG1fbkZpZGVsaXR5TGV2ZWw7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9T
ZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
STEpXQorICAgICAgIHB1YmxpYyBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NjcmVl
bnNob3RfdAoreworICAgICAgIHB1YmxpYyB1aW50IGhhbmRsZTsKKyAgICAgICBwdWJsaWMgdWlu
dCB0eXBlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QKK3sKKyAgICAgICBwdWJsaWMgZmxv
YXQgcHJvZ3Jlc3M7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Cit7CisgICAgICAgcHVibGlj
IHVpbnQgcGlkOworICAgICAgIHB1YmxpYyB1aW50IHVuQXJnc0hhbmRsZTsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0VkaXRp
bmdDYW1lcmFTdXJmYWNlX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgb3ZlcmxheUhhbmRsZTsK
KyAgICAgICBwdWJsaWMgdWludCBuVmlzdWFsTW9kZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QK
K3sKKyAgICAgICBwdWJsaWMgdWludCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50
X1Byb3BlcnR5X3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgY29udGFpbmVyOworICAgICAgIHB1
YmxpYyBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAgICAgcHVi
bGljIHVpbnQgZXZlbnRUeXBlOworICAgICAgIHB1YmxpYyB1aW50IHRyYWNrZWREZXZpY2VJbmRl
eDsKKyAgICAgICBwdWJsaWMgZmxvYXQgZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIHB1YmxpYyBW
UkV2ZW50X0RhdGFfdCBkYXRhOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKK3sKKyAgICAgICBwdWJsaWMgSW50
UHRyIHBWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqCisgICAg
ICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAoreworICAg
ICAgIHB1YmxpYyBmbG9hdCB4OworICAgICAgIHB1YmxpYyBmbG9hdCB5OworfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0
YXRlX3QKK3sKKyAgICAgICBwdWJsaWMgdWludCB1blBhY2tldE51bTsKKyAgICAgICBwdWJsaWMg
dWxvbmcgdWxCdXR0b25QcmVzc2VkOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblRvdWNo
ZWQ7CisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczA7IC8vVlJDb250cm9s
bGVyQXhpc190WzVdCisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczE7Cisg
ICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczI7CisgICAgICAgcHVibGljIFZS
Q29udHJvbGxlckF4aXNfdCByQXhpczM7CisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNf
dCByQXhpczQ7Cit9CisvLyBUaGlzIHN0cnVjdHVyZSBpcyBmb3IgYmFja3dhcmRzIGJpbmFyeSBj
b21wYXRpYmlsaXR5IG9uIExpbnV4IGFuZCBPU1ggb25seQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwsIFBhY2sgPSA0KV0gcHVibGljIHN0cnVjdCBWUkNvbnRyb2xsZXJTdGF0
ZV90X1BhY2tlZAoreworICAgICAgIHB1YmxpYyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1
YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNzZWQ7CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9u
VG91Y2hlZDsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNv
bnRyb2xsZXJBeGlzX3RbNV0KKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlz
MTsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJs
aWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVy
QXhpc190IHJBeGlzNDsKKyAgICAgICBwdWJsaWMgdm9pZCBVbnBhY2socmVmIFZSQ29udHJvbGxl
clN0YXRlX3QgdW5wYWNrZWQpCisgICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tlZC51blBh
Y2tldE51bSA9IHRoaXMudW5QYWNrZXROdW07CisgICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0
dG9uUHJlc3NlZCA9IHRoaXMudWxCdXR0b25QcmVzc2VkOworICAgICAgICAgICAgICB1bnBhY2tl
ZC51bEJ1dHRvblRvdWNoZWQgPSB0aGlzLnVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICAgICAgICAg
dW5wYWNrZWQuckF4aXMwID0gdGhpcy5yQXhpczA7CisgICAgICAgICAgICAgIHVucGFja2VkLnJB
eGlzMSA9IHRoaXMuckF4aXMxOworICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczIgPSB0aGlz
LnJBeGlzMjsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMzID0gdGhpcy5yQXhpczM7Cisg
ICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzNCA9IHRoaXMuckF4aXM0OworICAgICAgIH0KK30K
K1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBDb21w
b3NpdG9yX092ZXJsYXlTZXR0aW5ncworeworICAgICAgIHB1YmxpYyB1aW50IHNpemU7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBjdXJ2
ZWQ7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMg
Ym9vbCBhbnRpYWxpYXM7CisgICAgICAgcHVibGljIGZsb2F0IHNjYWxlOworICAgICAgIHB1Ymxp
YyBmbG9hdCBkaXN0YW5jZTsKKyAgICAgICBwdWJsaWMgZmxvYXQgYWxwaGE7CisgICAgICAgcHVi
bGljIGZsb2F0IHVPZmZzZXQ7CisgICAgICAgcHVibGljIGZsb2F0IHZPZmZzZXQ7CisgICAgICAg
cHVibGljIGZsb2F0IHVTY2FsZTsKKyAgICAgICBwdWJsaWMgZmxvYXQgdlNjYWxlOworICAgICAg
IHB1YmxpYyBmbG9hdCBncmlkRGl2czsKKyAgICAgICBwdWJsaWMgZmxvYXQgZ3JpZFdpZHRoOwor
ICAgICAgIHB1YmxpYyBmbG9hdCBncmlkU2NhbGU7CisgICAgICAgcHVibGljIEhtZE1hdHJpeDQ0
X3QgdHJhbnNmb3JtOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIHB1
YmxpYyBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisgICAgICAgcHVibGlj
IHVpbnQgbldpZHRoOworICAgICAgIHB1YmxpYyB1aW50IG5IZWlnaHQ7CisgICAgICAgcHVibGlj
IHVpbnQgbkJ5dGVzUGVyUGl4ZWw7CisgICAgICAgcHVibGljIHVpbnQgbkZyYW1lU2VxdWVuY2U7
CisgICAgICAgcHVibGljIFRyYWNrZWREZXZpY2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNl
UG9zZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0
cnVjdCBBcHBPdmVycmlkZUtleXNfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgcGNoS2V5OyAv
LyBjb25zdCBjaGFyICoKKyAgICAgICBwdWJsaWMgSW50UHRyIHBjaFZhbHVlOyAvLyBjb25zdCBj
aGFyICoKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0
cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgcHVibGljIHVpbnQgbV9uU2l6
ZTsKKyAgICAgICBwdWJsaWMgdWludCBtX25GcmFtZUluZGV4OworICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtTWlzUHJlc2Vu
dGVkOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgcHVi
bGljIHVpbnQgbV9uUmVwcm9qZWN0aW9uRmxhZ3M7CisgICAgICAgcHVibGljIGRvdWJsZSBtX2Zs
U3lzdGVtVGltZUluU2Vjb25kczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFByZVN1Ym1pdEdw
dU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOworICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsVG90YWxSZW5kZXJHcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9m
bENvbXBvc2l0b3JSZW5kZXJHcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0
b3JSZW5kZXJDcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1
TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDbGllbnRGcmFtZUludGVydmFsTXM7CisgICAg
ICAgcHVibGljIGZsb2F0IG1fZmxQcmVzZW50Q2FsbENwdU1zOworICAgICAgIHB1YmxpYyBmbG9h
dCBtX2ZsV2FpdEZvclByZXNlbnRDcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFN1Ym1p
dEZyYW1lTXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0R2V0UG9zZXNDYWxsZWRNczsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbV9mbE5ld0ZyYW1lUmVhZHlNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBv
c2l0b3JVcGRhdGVTdGFydE1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVw
ZGF0ZUVuZE1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlclN0YXJ0
TXM7CisgICAgICAgcHVibGljIFRyYWNrZWREZXZpY2VQb3NlX3QgbV9IbWRQb3NlOworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0
b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgcHVibGljIHVpbnQgbV9uUGlkOworICAgICAg
IHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAgcHVibGljIHVpbnQgbV9u
TnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3RlZEZy
YW1lczsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFydHVwOwor
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAg
cHVibGljIHVpbnQgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgcHVi
bGljIHVpbnQgbV9uTnVtTG9hZGluZzsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVBy
ZXNlbnRzTG9hZGluZzsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9h
ZGluZzsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7
CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtVGltZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQg
bV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bURy
b3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3Rl
ZEZyYW1lc1RpbWVkT3V0OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190Cit7CisgICAgICAg
cHVibGljIEhtZFZlY3RvcjNfdCB2U291cmNlOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qg
dkRpcmVjdGlvbjsKKyAgICAgICBwdWJsaWMgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdp
bjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVj
dG9yM190IHZQb2ludDsKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZOb3JtYWw7CisgICAg
ICAgcHVibGljIEhtZFZlY3RvcjJfdCB2VVZzOworICAgICAgIHB1YmxpYyBmbG9hdCBmRGlzdGFu
Y2U7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1
Y3QgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG1f
ZmxUb3BMZWZ0WDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsV2lkdGg7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxIZWlnaHQ7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSW50
ZXJzZWN0aW9uTWFza0NpcmNsZV90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDZW50ZXJY
OworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ2VudGVyWTsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bV9mbFJhZGl1czsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKK3sKKyAgICAg
ICBwdWJsaWMgRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1p
dGl2ZVR5cGU7CisgICAgICAgcHVibGljIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRp
dmVfRGF0YV90IG1fUHJpbWl0aXZlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKK3sKKyAg
ICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVs
OworICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWw7
CisgICAgICAgcHVibGljIHVpbnQgdVByb3BlcnRpZXM7Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sK
KyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBwdWJsaWMgSG1k
VmVjdG9yM190IHZOb3JtYWw7CisgICAgICAgcHVibGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMDsg
Ly9mbG9hdFsyXQorICAgICAgIHB1YmxpYyBmbG9hdCByZlRleHR1cmVDb29yZDE7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9k
ZWxfVGV4dHVyZU1hcF90Cit7CisgICAgICAgcHVibGljIGNoYXIgdW5XaWR0aDsKKyAgICAgICBw
dWJsaWMgY2hhciB1bkhlaWdodDsKKyAgICAgICBwdWJsaWMgSW50UHRyIHJ1YlRleHR1cmVNYXBE
YXRhOyAvLyBjb25zdCB1aW50OF90ICoKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNr
d2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJl
bmRlck1vZGVsX1RleHR1cmVNYXBfdF9QYWNrZWQKK3sKKyAgICAgICBwdWJsaWMgY2hhciB1bldp
ZHRoOworICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0OworICAgICAgIHB1YmxpYyBJbnRQdHIg
cnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3QgKgorICAgICAgIHB1YmxpYyB2b2lk
IFVucGFjayhyZWYgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90IHVucGFja2VkKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgdW5wYWNrZWQudW5XaWR0aCA9IHRoaXMudW5XaWR0aDsKKyAgICAgICAg
ICAgICAgdW5wYWNrZWQudW5IZWlnaHQgPSB0aGlzLnVuSGVpZ2h0OworICAgICAgICAgICAgICB1
bnBhY2tlZC5ydWJUZXh0dXJlTWFwRGF0YSA9IHRoaXMucnViVGV4dHVyZU1hcERhdGE7CisgICAg
ICAgfQorfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IFJlbmRlck1vZGVsX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIHJWZXJ0ZXhEYXRhOyAv
LyBjb25zdCBzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX1ZlcnRleF90ICoKKyAgICAgICBwdWJsaWMg
dWludCB1blZlcnRleENvdW50OworICAgICAgIHB1YmxpYyBJbnRQdHIgckluZGV4RGF0YTsgLy8g
Y29uc3QgdWludDE2X3QgKgorICAgICAgIHB1YmxpYyB1aW50IHVuVHJpYW5nbGVDb3VudDsKKyAg
ICAgICBwdWJsaWMgaW50IGRpZmZ1c2VUZXh0dXJlSWQ7Cit9CisvLyBUaGlzIHN0cnVjdHVyZSBp
cyBmb3IgYmFja3dhcmRzIGJpbmFyeSBjb21wYXRpYmlsaXR5IG9uIExpbnV4IGFuZCBPU1ggb25s
eQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwsIFBhY2sgPSA0KV0gcHVibGlj
IHN0cnVjdCBSZW5kZXJNb2RlbF90X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgclZl
cnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAg
ICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7CisgICAgICAgcHVibGljIEludFB0ciBySW5k
ZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5Ucmlhbmds
ZUNvdW50OworICAgICAgIHB1YmxpYyBpbnQgZGlmZnVzZVRleHR1cmVJZDsKKyAgICAgICBwdWJs
aWMgdm9pZCBVbnBhY2socmVmIFJlbmRlck1vZGVsX3QgdW5wYWNrZWQpCisgICAgICAgeworICAg
ICAgICAgICAgICB1bnBhY2tlZC5yVmVydGV4RGF0YSA9IHRoaXMuclZlcnRleERhdGE7CisgICAg
ICAgICAgICAgIHVucGFja2VkLnVuVmVydGV4Q291bnQgPSB0aGlzLnVuVmVydGV4Q291bnQ7Cisg
ICAgICAgICAgICAgIHVucGFja2VkLnJJbmRleERhdGEgPSB0aGlzLnJJbmRleERhdGE7CisgICAg
ICAgICAgICAgIHVucGFja2VkLnVuVHJpYW5nbGVDb3VudCA9IHRoaXMudW5UcmlhbmdsZUNvdW50
OworICAgICAgICAgICAgICB1bnBhY2tlZC5kaWZmdXNlVGV4dHVyZUlkID0gdGhpcy5kaWZmdXNl
VGV4dHVyZUlkOworICAgICAgIH0KK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9v
bCBiU2Nyb2xsV2hlZWxWaXNpYmxlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgcHVi
bGljIEludFB0ciBtX3BJbWFnZURhdGE7IC8vIHZvaWQgKgorICAgICAgIHB1YmxpYyBpbnQgbV9u
V2lkdGg7CisgICAgICAgcHVibGljIGludCBtX25IZWlnaHQ7CisgICAgICAgcHVibGljIGludCBt
X25CeXRlc1BlclBpeGVsOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IENPcGVuVlJDb250ZXh0Cit7CisgICAgICAgcHVibGljIEludFB0ciBt
X3BWUlN5c3RlbTsgLy8gY2xhc3MgdnI6OklWUlN5c3RlbSAqCisgICAgICAgcHVibGljIEludFB0
ciBtX3BWUkNoYXBlcm9uZTsgLy8gY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqCisgICAgICAgcHVi
bGljIEludFB0ciBtX3BWUkNoYXBlcm9uZVNldHVwOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVyb25l
U2V0dXAgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJDb21wb3NpdG9yOyAvLyBjbGFzcyB2
cjo6SVZSQ29tcG9zaXRvciAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUk92ZXJsYXk7IC8v
IGNsYXNzIHZyOjpJVlJPdmVybGF5ICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSUmVzb3Vy
Y2VzOyAvLyBjbGFzcyB2cjo6SVZSUmVzb3VyY2VzICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1f
cFZSUmVuZGVyTW9kZWxzOyAvLyBjbGFzcyB2cjo6SVZSUmVuZGVyTW9kZWxzICoKKyAgICAgICBw
dWJsaWMgSW50UHRyIG1fcFZSRXh0ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5k
ZWREaXNwbGF5ICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU2V0dGluZ3M7IC8vIGNsYXNz
IHZyOjpJVlJTZXR0aW5ncyAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkFwcGxpY2F0aW9u
czsgLy8gY2xhc3MgdnI6OklWUkFwcGxpY2F0aW9ucyAqCisgICAgICAgcHVibGljIEludFB0ciBt
X3BWUlRyYWNrZWRDYW1lcmE7IC8vIGNsYXNzIHZyOjpJVlJUcmFja2VkQ2FtZXJhICoKKyAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZSU2NyZWVuc2hvdHM7IC8vIGNsYXNzIHZyOjpJVlJTY3JlZW5z
aG90cyAqCit9CisKK3B1YmxpYyBjbGFzcyBPcGVuVlIKK3sKKworICAgICAgIHB1YmxpYyBzdGF0
aWMgdWludCBJbml0SW50ZXJuYWwocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNh
dGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVy
biBPcGVuVlJJbnRlcm9wLkluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlw
ZSk7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duSW50ZXJu
YWwoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgT3BlblZSSW50ZXJvcC5TaHV0ZG93bkludGVy
bmFsKCk7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBib29sIElzSG1kUHJlc2Vu
dCgpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0htZFBy
ZXNlbnQoKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNSdW50aW1l
SW5zdGFsbGVkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9w
LklzUnVudGltZUluc3RhbGxlZCgpOworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMg
c3RyaW5nIEdldFN0cmluZ0ZvckhtZEVycm9yKEVWUkluaXRFcnJvciBlcnJvcikKKyAgICAgICB7
CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShPcGVuVlJJbnRl
cm9wLkdldFN0cmluZ0ZvckhtZEVycm9yKGVycm9yKSk7CisgICAgICAgfQorCisgICAgICAgcHVi
bGljIHN0YXRpYyBJbnRQdHIgR2V0R2VuZXJpY0ludGVyZmFjZShzdHJpbmcgcGNoSW50ZXJmYWNl
VmVyc2lvbiwgcmVmIEVWUkluaXRFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShwY2hJbnRlcmZhY2VW
ZXJzaW9uLCByZWYgcGVFcnJvcik7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBi
b29sIElzSW50ZXJmYWNlVmVyc2lvblZhbGlkKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQocGNoSW50ZXJmYWNlVmVyc2lvbik7CisgICAgICAgfQorCisgICAgICAgcHVi
bGljIHN0YXRpYyB1aW50IEdldEluaXRUb2tlbigpCisgICAgICAgeworICAgICAgICAgICAgICBy
ZXR1cm4gT3BlblZSSW50ZXJvcC5HZXRJbml0VG9rZW4oKTsKKyAgICAgICB9CisKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAzMjc2ODsK
KyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4X0htZCA9IDA7
CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFRyYWNrZWREZXZpY2VDb3VudCA9IDE2
OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhPdGhlciA9
IDQyOTQ5NjcyOTQ7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blRyYWNrZWREZXZpY2VJ
bmRleEludmFsaWQgPSA0Mjk0OTY3Mjk1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3Vs
SW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBr
X3VuSW52YWxpZFByb3BlcnR5VGFnID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3Vu
RmxvYXRQcm9wZXJ0eVRhZyA9IDE7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkludDMy
UHJvcGVydHlUYWcgPSAyOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5VaW50NjRQcm9w
ZXJ0eVRhZyA9IDM7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkJvb2xQcm9wZXJ0eVRh
ZyA9IDQ7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blN0cmluZ1Byb3BlcnR5VGFnID0g
NTsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9
IDIwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFn
ID0gMjE7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRh
ZyA9IDIyOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5IbWRWZWN0b3I0UHJvcGVydHlU
YWcgPSAyMzsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5
VGFnID0gMzA7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVz
ZXJ2ZWRfU3RhcnQgPSAxMDAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5PcGVuVlJJ
bnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtf
dW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgPSAzMjc2ODsKKyAgICAgICBwdWJsaWMgY29uc3QgdWlu
dCBrX3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsKKyAgICAgICBwdWJsaWMgY29uc3Qg
dWxvbmcga191bE92ZXJsYXlIYW5kbGVJbnZhbGlkID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3Qg
dWludCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcgSVZSU3lzdGVtX1ZlcnNpb24gPSAiSVZSU3lzdGVtXzAxNSI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRl
ZERpc3BsYXlfMDAxIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlRyYWNrZWRDYW1l
cmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyI7CisgICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4OworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfTWltZVR5cGVfSG9tZUFwcCA9ICJ2ci9ob21lIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVyID0gInZyL2dhbWVf
dGhlYXRlciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJBcHBsaWNhdGlvbnNfVmVy
c2lvbiA9ICJJVlJBcHBsaWNhdGlvbnNfMDA2IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IElWUkNoYXBlcm9uZV9WZXJzaW9uID0gIklWUkNoYXBlcm9uZV8wMDMiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVT
ZXR1cF8wMDUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ29tcG9zaXRvcl9WZXJz
aW9uID0gIklWUkNvbXBvc2l0b3JfMDIwIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3Vu
VlJPdmVybGF5TWF4S2V5TGVuZ3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtf
dW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50
IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3Vu
TWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNCI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9H
REMyMDE1ID0gImdkYzIwMTUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29u
dHJvbGxlcl9Db21wb25lbnRfQmFzZSA9ICJiYXNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCA9ICJ0aXAiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAiaGFu
ZGdyaXAiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfU3RhdHVzID0gInN0YXR1cyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJS
ZW5kZXJNb2RlbHNfVmVyc2lvbiA9ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKyAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZp
Y2F0aW9uc18wMDIiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhTZXR0aW5nc0tl
eUxlbmd0aCA9IDEyODsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlNldHRpbmdzX1Zl
cnNpb24gPSAiSVZSU2V0dGluZ3NfMDAyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1N0ZWFtVlJfU2VjdGlvbiA9ICJzdGVhbXZyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUhtZCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJp
bmcgPSAiZm9yY2VkRHJpdmVyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVi
dWciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nl
c3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1Byb2Nlc3NQaXBlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX1N0ZWFtVlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sID0gImVuYWJsZURpc3Rv
cnRpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXNwbGF5
RGVidWdYX0ludDMyID0gImRpc3BsYXlEZWJ1Z1giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9u
VG9BbGxBcHBzX0Jvb2wgPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVs
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0g
ImlwZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91
bmRfU3RyaW5nID0gImJhY2tncm91bmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5k
VXNlRG9tZVByb2plY3Rpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWln
aHQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5k
RG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENvbG9y
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xv
cl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wg
PSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0g
ImRpcmVjdE1vZGVFZGlkVmlkIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wg
PSAidXNpbmdTcGVha2VycyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVh
bVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3
YXJkWWF3T2Zmc2V0RGVncmVlcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dl
ck1hbmFnZW1lbnQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9O
ZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zs
b2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3lu
Y1JlcHJvamVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0
aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRl
T25CYWRUcmFja2luZyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJz
aG93TWlycm9yVmlldyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExh
dW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0g
InN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFy
dERhc2hib2FyZEZyb21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3Zl
cmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNl
dEluaXRpYWxEZWZhdWx0SG9tZUFwcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tn
cm91bmRJbWFnZVRpbWVTZWMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3Rl
YW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZl
cl9saWdodGhvdXNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0xpZ2h0aG91
c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlz
YW1iaWd1YXRpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3Vz
ZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRp
b25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJp
bmcgPSAic2VyaWFsTnVtYmVyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051
bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIg
PSAid2luZG93V2lkdGgiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9X
aW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAi
cmVuZGVySGVpZ2h0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfU2Vj
b25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25z
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5j
eV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJmYWNlIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3Bf
Qm9vbCA9ICJTdGF0dXNBbHdheXNPblRvcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXplVG9UcmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXki
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5z
aG90c19Cb29sID0gInNjcmVlbnNob3RzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9
ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX05vdGlm
aWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21wbGV0aW9u
cyA9ICJUdXRvcmlhbENvbXBsZXRpb25zIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0tleWJvYXJkX1NjYWxlWCA9ICJTY2FsZVgiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0gIlNjYWxlWSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9LZXlib2FyZF9PZmZzZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9PZmZzZXRSaWdodFggPSAiT2Zm
c2V0UmlnaHRYIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09m
ZnNldFkgPSAiT2Zmc2V0WSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXli
b2FyZF9TbW9vdGhpbmcgPSAiU21vb3RoaW5nIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1BlcmZfU2VjdGlvbiA9ICJwZXJmY2hlY2siOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29s
ID0gIndhcm5JbkhNRCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX05v
dGlmeU9ubHlPbmNlX0Jvb2wgPSAid2Fybk9ubHlPbmNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9Cb29sID0gImFsbG93VGltaW5nU3Rv
cmUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TYXZlVGltaW5nc09u
RXhpdF9Cb29sID0gInNhdmVUaW1pbmdzT25FeGl0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1BlcmZfVGVzdERhdGFfRmxvYXQgPSAicGVyZlRlc3REYXRhIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxp
c2lvbkJvdW5kcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfU3R5bGVfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzU3R5bGUiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jv
b2wgPSAiQ29sbGlzaW9uQm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAi
Q29sbGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91
bmRzUGxheVNwYWNlT24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlz
aW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFu
Y2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0Nv
bG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hR19JbnQz
MiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29sbGlzaW9u
Qm91bmRzQ29sb3JHYW1tYUIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29s
bGlzaW9uQm91bmRzX0NvbG9yR2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2Ft
bWFBIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9TZWN0aW9uID0g
ImNhbWVyYSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxl
Q2FtZXJhX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVy
YUluRGFzaGJvYXJkIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9F
bmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xs
aXNpb25Cb3VuZHMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0Vu
YWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFS
X0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFCb3Vu
ZHNDb2xvckdhbW1hRyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFf
Qm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0lu
dDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJl
bmd0aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19TZWN0aW9uID0g
ImF1ZGlvIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09uUGxheWJh
Y2tEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tEZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfYXVkaW9fT25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9uUmVjb3JkRGV2
aWNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tN
aXJyb3JEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZpY2UiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nID0g
Im9mZlBsYXliYWNrRGV2aWNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1
ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdh
aW4iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJw
b3dlciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9u
RXhpdF9Cb29sID0gInBvd2VyT2ZmT25FeGl0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1Bvd2VyX1R1cm5PZmZTY3JlZW5zVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVu
c1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9m
ZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0IjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dU
aW1lb3V0X0Zsb2F0ID0gInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyA9
ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJl
bmFibGVEYXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFzaGJv
YXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX21vZGVsc2tpbl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTY3JlZW5zaG90c19WZXJzaW9uID0gIklWUlNj
cmVlbnNob3RzXzAwMSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJSZXNvdXJjZXNf
VmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAxIjsKKworICAgICAgIHN0YXRpYyB1aW50IFZSVG9r
ZW4geyBnZXQ7IHNldDsgfQorCisgICAgICAgY29uc3Qgc3RyaW5nIEZuVGFibGVfUHJlZml4ID0g
IkZuVGFibGU6IjsKKworICAgICAgIGNsYXNzIENPcGVuVlJDb250ZXh0CisgICAgICAgeworICAg
ICAgICAgICAgICBwdWJsaWMgQ09wZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKworICAgICAg
ICAgICAgICBwdWJsaWMgdm9pZCBDbGVhcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSU3lzdGVtID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZS
Q2hhcGVyb25lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0
dXAgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJDb21wb3NpdG9yID0gbnVsbDsK
KyAgICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG51bGw7CisgICAgICAgICAgICAg
ICAgICAgICBtX3BWUlJlbmRlck1vZGVscyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBt
X3BWUkV4dGVuZGVkRGlzcGxheSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUlNl
dHRpbmdzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSQXBwbGljYXRpb25zID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbnVsbDsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIHZvaWQgQ2hlY2tDbGVhcigpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIGlmIChWUlRva2VuICE9IEdldEluaXRUb2tlbigpKQorICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsZWFyKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlJUb2tlbiA9IEdldEluaXRUb2tlbigpOwor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
cHVibGljIENWUlN5c3RlbSBWUlN5c3RlbSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlN5
c3RlbSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0lu
dGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJTeXN0ZW1fVmVyc2lvbiwgcmVmIGVFcnJvcik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8g
JiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3BWUlN5c3RlbSA9IG5ldyBDVlJTeXN0ZW0ocEludGVyZmFjZSk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTeXN0
ZW07CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSQ2hhcGVyb25l
IFZSQ2hhcGVyb25lKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSQ2hhcGVyb25lID09IG51
bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZu
VGFibGVfUHJlZml4K0lWUkNoYXBlcm9uZV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJy
b3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcFZSQ2hhcGVyb25lID0gbmV3IENWUkNoYXBlcm9uZShwSW50ZXJmYWNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkNoYXBl
cm9uZTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJv
bmVTZXR1cCBWUkNoYXBlcm9uZVNldHVwKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSQ2hh
cGVyb25lU2V0dXAgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiwg
cmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2Ug
IT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gbmV3IENWUkNo
YXBlcm9uZVNldHVwKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSQ29tcG9zaXRvciBWUkNvbXBvc2l0b3IoKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAg
ICAgICAgICAgICAgICAgICBpZiAobV9wVlJDb21wb3NpdG9yID09IG51bGwpCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVW
UkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJm
YWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lW
UkNvbXBvc2l0b3JfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRF
cnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBv
c2l0b3IgPSBuZXcgQ1ZSQ29tcG9zaXRvcihwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkNvbXBvc2l0b3I7CisgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZST3ZlcmxheSBWUk92ZXJsYXko
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Cisg
ICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJPdmVybGF5ID09IG51bGwpCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVW
UkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJm
YWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lW
Uk92ZXJsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJv
ci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUk92ZXJsYXkg
PSBuZXcgQ1ZST3ZlcmxheShwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSUmVuZGVyTW9kZWxzIFZSUmVuZGVyTW9kZWxzKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSUmVuZGVyTW9kZWxzID09IG51bGwpCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9
IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50
ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4
K0lWUlJlbmRlck1vZGVsc19WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZS
SW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZS
UmVuZGVyTW9kZWxzID0gbmV3IENWUlJlbmRlck1vZGVscyhwSW50ZXJmYWNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlJlbmRlck1v
ZGVsczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJFeHRlbmRl
ZERpc3BsYXkgVlJFeHRlbmRlZERpc3BsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJF
eHRlbmRlZERpc3BsYXkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNp
b24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJm
YWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSBuZXcg
Q1ZSRXh0ZW5kZWREaXNwbGF5KHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlNldHRpbmdzIFZSU2V0dGluZ3Mo
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Cisg
ICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJTZXR0aW5ncyA9PSBudWxsKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBF
VlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVy
ZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJ
VlJTZXR0aW5nc19WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVy
cm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGlu
Z3MgPSBuZXcgQ1ZSU2V0dGluZ3MocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJBcHBsaWNhdGlvbnMgVlJBcHBsaWNhdGlv
bnMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7
CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJBcHBsaWNhdGlvbnMgPT0gbnVsbCkKKyAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVy
cm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9Q
cmVmaXgrSVZSQXBwbGljYXRpb25zX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9
PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wVlJBcHBsaWNhdGlvbnMgPSBuZXcgQ1ZSQXBwbGljYXRpb25zKHBJbnRlcmZhY2UpOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQXBw
bGljYXRpb25zOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlNj
cmVlbnNob3RzIFZSU2NyZWVuc2hvdHMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJTY3Jl
ZW5zaG90cyA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJp
Y0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJTY3JlZW5zaG90c19WZXJzaW9uLCByZWYgZUVy
cm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQ
dHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBuZXcgQ1ZSU2NyZWVuc2hvdHMo
cEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbV9wVlJTY3JlZW5zaG90czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIHB1YmxpYyBDVlJUcmFja2VkQ2FtZXJhIFZSVHJhY2tlZENhbWVyYSgpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmIChtX3BWUlRyYWNrZWRDYW1lcmEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVy
cm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBP
cGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSVHJhY2tl
ZENhbWVyYV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9y
Lk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSVHJhY2tlZENh
bWVyYSA9IG5ldyBDVlJUcmFja2VkQ2FtZXJhKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSVHJhY2tlZENhbWVyYTsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZSU3lzdGVtIG1fcFZS
U3lzdGVtOworICAgICAgICAgICAgICBwcml2YXRlIENWUkNoYXBlcm9uZSBtX3BWUkNoYXBlcm9u
ZTsKKyAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJDaGFwZXJvbmVTZXR1cCBtX3BWUkNoYXBlcm9u
ZVNldHVwOworICAgICAgICAgICAgICBwcml2YXRlIENWUkNvbXBvc2l0b3IgbV9wVlJDb21wb3Np
dG9yOworICAgICAgICAgICAgICBwcml2YXRlIENWUk92ZXJsYXkgbV9wVlJPdmVybGF5OworICAg
ICAgICAgICAgICBwcml2YXRlIENWUlJlbmRlck1vZGVscyBtX3BWUlJlbmRlck1vZGVsczsKKyAg
ICAgICAgICAgICAgcHJpdmF0ZSBDVlJFeHRlbmRlZERpc3BsYXkgbV9wVlJFeHRlbmRlZERpc3Bs
YXk7CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZSU2V0dGluZ3MgbV9wVlJTZXR0aW5nczsKKyAg
ICAgICAgICAgICAgcHJpdmF0ZSBDVlJBcHBsaWNhdGlvbnMgbV9wVlJBcHBsaWNhdGlvbnM7Cisg
ICAgICAgICAgICAgIHByaXZhdGUgQ1ZSU2NyZWVuc2hvdHMgbV9wVlJTY3JlZW5zaG90czsKKyAg
ICAgICAgICAgICAgcHJpdmF0ZSBDVlJUcmFja2VkQ2FtZXJhIG1fcFZSVHJhY2tlZENhbWVyYTsK
KyAgICAgICB9OworCisgICAgICAgcHJpdmF0ZSBzdGF0aWMgQ09wZW5WUkNvbnRleHQgX09wZW5W
UkludGVybmFsX01vZHVsZUNvbnRleHQgPSBudWxsOworICAgICAgIHN0YXRpYyBDT3BlblZSQ29u
dGV4dCBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0CisgICAgICAgeworICAgICAgICAgICAg
ICBnZXQKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKF9PcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVDb250ZXh0ID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQgPSBuZXcgQ09wZW5WUkNvbnRleHQoKTsK
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4
dDsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZS
U3lzdGVtIFN5c3RlbSB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0
LlZSU3lzdGVtKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ2hhcGVyb25lIENoYXBl
cm9uZSB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVy
b25lKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ2hhcGVyb25lU2V0dXAgQ2hhcGVy
b25lU2V0dXAgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNo
YXBlcm9uZVNldHVwKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ29tcG9zaXRvciBD
b21wb3NpdG9yIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJD
b21wb3NpdG9yKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZST3ZlcmxheSBPdmVybGF5
IHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJPdmVybGF5KCk7
IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSUmVuZGVyTW9kZWxzIFJlbmRlck1vZGVscyB7
IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSUmVuZGVyTW9kZWxz
KCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSRXh0ZW5kZWREaXNwbGF5IEV4dGVuZGVk
RGlzcGxheSB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSRXh0
ZW5kZWREaXNwbGF5KCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU2V0dGluZ3MgU2V0
dGluZ3MgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlNldHRp
bmdzKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQXBwbGljYXRpb25zIEFwcGxpY2F0
aW9ucyB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQXBwbGlj
YXRpb25zKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU2NyZWVuc2hvdHMgU2NyZWVu
c2hvdHMgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlNjcmVl
bnNob3RzKCk7IH0gfQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSVHJhY2tlZENhbWVyYSBUcmFj
a2VkQ2FtZXJhIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJU
cmFja2VkQ2FtZXJhKCk7IH0gfQorCisgICAgICAgLyoqIEZpbmRzIHRoZSBhY3RpdmUgaW5zdGFs
bGF0aW9uIG9mIHZyY2xpZW50LmRsbCBhbmQgaW5pdGlhbGl6ZXMgaXQgKi8KKyAgICAgICBwdWJs
aWMgc3RhdGljIENWUlN5c3RlbSBJbml0KHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvciwgRVZSQXBw
bGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUgPSBFVlJBcHBsaWNhdGlvblR5cGUuVlJBcHBs
aWNhdGlvbl9TY2VuZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSVG9rZW4gPSBJbml0SW50
ZXJuYWwocmVmIHBlRXJyb3IsIGVBcHBsaWNhdGlvblR5cGUpOworICAgICAgICAgICAgICBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LkNsZWFyKCk7CisKKyAgICAgICAgICAgICAgaWYgKHBl
RXJyb3IgIT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbDsKKworICAgICAgICAgICAgICBib29sIGJJbnRlcmZhY2VWYWxpZCA9IElzSW50ZXJmYWNl
VmVyc2lvblZhbGlkKElWUlN5c3RlbV9WZXJzaW9uKTsKKyAgICAgICAgICAgICAgaWYgKCFiSW50
ZXJmYWNlVmFsaWQpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFNodXRk
b3duSW50ZXJuYWwoKTsKKyAgICAgICAgICAgICAgICAgICAgIHBlRXJyb3IgPSBFVlJJbml0RXJy
b3IuSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBu
dWxsOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUi5TeXN0
ZW07CisgICAgICAgfQorCisgICAgICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50
ZXJmYWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQg
YWZ0ZXIgdGhpcyBwb2ludCAqLworICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBTaHV0ZG93bigp
CisgICAgICAgeworICAgICAgICAgICAgICBTaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgfQor
Cit9CisKKworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFk
ZXJzL29wZW52cl9hcGkuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29w
ZW52cl9hcGkuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTcxZWMzN2QxMTNkMWFjZDZlOGNjNDIwMTRhY2M2
MGY3YTQxOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hl
YWRlcnMvb3BlbnZyX2FwaS5qc29uCkBAIC0wLDAgKzEsMzc4OSBAQAoreyJ0eXBlZGVmcyI6W3si
dHlwZWRlZiI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInZvaWQgKiJ9
CisseyJ0eXBlZGVmIjogInZyOjpnbEludF90IiwidHlwZSI6ICJpbnQzMl90In0KKyx7InR5cGVk
ZWYiOiAidnI6OmdsVUludF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZy
OjpTaGFyZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBl
ZGVmIjogInZyOjpQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9
CisseyJ0eXBlZGVmIjogInZyOjpQcm9wZXJ0eVR5cGVUYWdfdCIsInR5cGUiOiAidWludDMyX3Qi
fQorLHsidHlwZWRlZiI6ICJ2cjo6VlJFdmVudF9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZSRXZl
bnRfRGF0YV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QiLCJ0eXBl
IjogInN0cnVjdCB2cjo6VlJDb250cm9sbGVyU3RhdGUwMDFfdCJ9CisseyJ0eXBlZGVmIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCIsInR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2
cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVm
IjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVk
ZWYiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IiwidHlw
ZSI6ICJ1bmlvbiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCJ9Ciss
eyJ0eXBlZGVmIjogInZyOjpWUkNvbXBvbmVudFByb3BlcnRpZXMiLCJ0eXBlIjogInVpbnQzMl90
In0KKyx7InR5cGVkZWYiOiAidnI6OlRleHR1cmVJRF90IiwidHlwZSI6ICJpbnQzMl90In0KKyx7
InR5cGVkZWYiOiAidnI6OlZSTm90aWZpY2F0aW9uSWQiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7
InR5cGVkZWYiOiAidnI6OkhtZEVycm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJJbml0RXJyb3Ii
fQorLHsidHlwZWRlZiI6ICJ2cjo6SG1kX0V5ZSIsInR5cGUiOiAiZW51bSB2cjo6RVZSRXllIn0K
Kyx7InR5cGVkZWYiOiAidnI6OkNvbG9yU3BhY2UiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xvclNw
YWNlIn0KKyx7InR5cGVkZWYiOiAidnI6OkhtZFRyYWNraW5nUmVzdWx0IiwidHlwZSI6ICJlbnVt
IHZyOjpFVHJhY2tpbmdSZXN1bHQifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUNs
YXNzIiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZUNsYXNzIn0KKyx7InR5cGVkZWYi
OiAidnI6OlRyYWNraW5nVW5pdmVyc2VPcmlnaW4iLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIn0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VQcm9wZXJ0
eSIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9CisseyJ0eXBlZGVm
IjogInZyOjpUcmFja2VkUHJvcGVydHlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIn0KKyx7InR5cGVkZWYiOiAidnI6OlZSU3VibWl0RmxhZ3NfdCIsInR5cGUi
OiAiZW51bSB2cjo6RVZSU3VibWl0RmxhZ3MifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJTdGF0ZV90
IiwidHlwZSI6ICJlbnVtIHZyOjpFVlJTdGF0ZSJ9CisseyJ0eXBlZGVmIjogInZyOjpDb2xsaXNp
b25Cb3VuZHNTdHlsZV90IiwidHlwZSI6ICJlbnVtIHZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUi
fQorLHsidHlwZWRlZiI6ICJ2cjo6VlJPdmVybGF5RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVW
Uk92ZXJsYXlFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUkZpcm13YXJlRXJyb3IiLCJ0eXBl
IjogImVudW0gdnI6OkVWUkZpcm13YXJlRXJyb3IifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJDb21w
b3NpdG9yRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkNvbXBvc2l0b3JFcnJvciJ9CisseyJ0
eXBlZGVmIjogInZyOjpWUlNjcmVlbnNob3RzRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUlNj
cmVlbnNob3RFcnJvciJ9CitdLAorImVudW1zIjpbCisgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6
RVZSRXllIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRXllX0xlZnQiLCJ2YWx1ZSI6
ICIwIn0KKyAgICAgICAseyJuYW1lIjogIkV5ZV9SaWdodCIsInZhbHVlIjogIjEifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRleHR1cmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiVGV4dHVyZVR5cGVfRGlyZWN0WCIsInZhbHVlIjogIjAifQorICAgICAgICx7
Im5hbWUiOiAiVGV4dHVyZVR5cGVfT3BlbkdMIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJUZXh0dXJlVHlwZV9WdWxrYW4iLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjog
IlRleHR1cmVUeXBlX0lPU3VyZmFjZSIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAi
VGV4dHVyZVR5cGVfRGlyZWN0WDEyIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1u
YW1lIjogInZyOjpFQ29sb3JTcGFjZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIkNv
bG9yU3BhY2VfQXV0byIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFj
ZV9HYW1tYSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9MaW5l
YXIiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2lu
Z1Jlc3VsdCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1Vu
aW5pdGlhbGl6ZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVz
dWx0X0NhbGlicmF0aW5nX0luUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5h
bWUiOiAiVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjEw
MSJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LIiwidmFsdWUi
OiAiMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZS
YW5nZSIsInZhbHVlIjogIjIwMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJh
Y2tlZERldmljZUNsYXNzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZERl
dmljZUNsYXNzX0ludmFsaWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWREZXZpY2VDbGFzc19ITUQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWREZXZpY2VDbGFzc19Db250cm9sbGVyIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6
ICJUcmFja2VkRGV2aWNlQ2xhc3NfR2VuZXJpY1RyYWNrZXIiLCJ2YWx1ZSI6ICIzIn0KKyAgICAg
ICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSIsInZhbHVl
IjogIjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVy
Um9sZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9s
ZV9JbnZhbGlkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkQ29udHJv
bGxlclJvbGVfTGVmdEhhbmQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWRDb250cm9sbGVyUm9sZV9SaWdodEhhbmQiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIiwidmFsdWVzIjogWyAKKyAg
ICAgICB7Im5hbWUiOiAiVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCIsInZhbHVlIjogIjAifQorICAg
ICAgICx7Im5hbWUiOiAiVHJhY2tpbmdVbml2ZXJzZVN0YW5kaW5nIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJUcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIiwidmFs
dWUiOiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZVBy
b3BlcnR5IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiUHJvcF9JbnZhbGlkIiwidmFs
dWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJp
bmciLCJ2YWx1ZSI6ICIxMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTW9kZWxOdW1iZXJf
U3RyaW5nIiwidmFsdWUiOiAiMTAwMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NlcmlhbE51
bWJlcl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfUmVu
ZGVyTW9kZWxOYW1lX1N0cmluZyIsInZhbHVlIjogIjEwMDMifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9XaWxsRHJpZnRJbllhd19Cb29sIiwidmFsdWUiOiAiMTAwNCJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyIsInZhbHVl
IjogIjEwMDYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmlu
ZyIsInZhbHVlIjogIjEwMDcifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BbGxXaXJlbGVzc0Rv
bmdsZURlc2NyaXB0aW9uc19TdHJpbmciLCJ2YWx1ZSI6ICIxMDA4In0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nIiwidmFsdWUiOiAiMTAwOSJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCIsInZhbHVlIjog
IjEwMTAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wiLCJ2
YWx1ZSI6ICIxMDExIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQmF0dGVyeVBlcmNl
bnRhZ2VfRmxvYXQiLCJ2YWx1ZSI6ICIxMDEyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU3Rh
dHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCIsInZhbHVlIjogIjEwMTMifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCIsInZhbHVlIjogIjEw
MTQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCIs
InZhbHVlIjogIjEwMTUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxV
cGRhdGVVUkxfU3RyaW5nIiwidmFsdWUiOiAiMTAxNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X0hhcmR3YXJlUmV2aXNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxNyJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE4In0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRlBHQVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxOSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1ZSQ1ZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAyMCJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIx
MDIxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQiLCJ2YWx1
ZSI6ICIxMDIyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9C
b29sIiwidmFsdWUiOiAiMTAyMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhblVuaWZ5Q29v
cmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCIsInZhbHVlIjogIjEwMjQifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sIiwidmFsdWUiOiAiMTAyNSJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29s
IiwidmFsdWUiOiAiMTAyNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNhblBvd2Vy
T2ZmX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdh
cmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nIiwidmFsdWUiOiAiMTAyOCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0RldmljZUNsYXNzX0ludDMyIiwidmFsdWUiOiAiMTAyOSJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0hhc0NhbWVyYV9Cb29sIiwidmFsdWUiOiAiMTAzMCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAzMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCIs
InZhbHVlIjogIjEwMzIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9WaXZlU3lzdGVtQnV0dG9u
Rml4UmVxdWlyZWRfQm9vbCIsInZhbHVlIjogIjEwMzMifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9QYXJlbnREcml2ZXJfVWludDY0IiwidmFsdWUiOiAiMTAzNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sIiwidmFsdWUiOiAiMjAwMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQiLCJ2YWx1
ZSI6ICIyMDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9h
dCIsInZhbHVlIjogIjIwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySXBkTWV0ZXJz
X0Zsb2F0IiwidmFsdWUiOiAiMjAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0N1cnJlbnRV
bml2ZXJzZUlkX1VpbnQ2NCIsInZhbHVlIjogIjIwMDQifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0IiwidmFsdWUiOiAiMjAwNSJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAw
NiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0lzT25EZXNrdG9wX0Jvb2wiLCJ2YWx1ZSI6ICIy
MDA3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiIsInZhbHVl
IjogIjIwMDgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQi
LCJ2YWx1ZSI6ICIyMDA5In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DU2NhbGVf
RmxvYXQiLCJ2YWx1ZSI6ICIyMDEwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRWRpZFZlbmRv
cklEX0ludDMyIiwidmFsdWUiOiAiMjAxMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3Bs
YXlNQ0ltYWdlTGVmdF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEyIn0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfRGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEzIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCIsInZhbHVlIjogIjIw
MTQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyIiwidmFsdWUi
OiAiMjAxNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9N
YXRyaXgzNCIsInZhbHVlIjogIjIwMTYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5
R0NUeXBlX0ludDMyIiwidmFsdWUiOiAiMjAxNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlHQ09mZnNldF9GbG9hdCIsInZhbHVlIjogIjIwMTgifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMTkifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMjAifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmciLCJ2YWx1ZSI6ICIyMDIx
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0IiwidmFsdWUi
OiAiMjAyMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCIs
InZhbHVlIjogIjIwMjMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyUmlnaHRV
X0Zsb2F0IiwidmFsdWUiOiAiMjAyNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50
ZXJSaWdodFZfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI1In0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
VXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAyNiJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIy
MDI3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9T
dHJpbmciLCJ2YWx1ZSI6ICIyMDI4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZQ
R0FWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMjkifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUi
OiAiMjAzMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1Vp
bnQ2NCIsInZhbHVlIjogIjIwMzIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFDb21w
YXRpYmlsaXR5TW9kZV9JbnQzMiIsInZhbHVlIjogIjIwMzMifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIsInZhbHVl
IjogIjIwMzQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVs
ZE9mVmlld0RlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDM1In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCIsInZhbHVlIjogIjIwMzYifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCIsInZhbHVlIjogIjIwMzci
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyIiwidmFs
dWUiOiAiMjAzOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0
X0ludDMyIiwidmFsdWUiOiAiMjAzOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlN
Q0ltYWdlTnVtQ2hhbm5lbHNfSW50MzIiLCJ2YWx1ZSI6ICIyMDQwIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfRGlzcGxheU1DSW1hZ2VEYXRhX0JpbmFyeSIsInZhbHVlIjogIjIwNDEifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sIiwidmFsdWUiOiAi
MjA0MiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nIiwi
dmFsdWUiOiAiMzAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1N1cHBvcnRlZEJ1dHRvbnNf
VWludDY0IiwidmFsdWUiOiAiMzAwMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMwVHlw
ZV9JbnQzMiIsInZhbHVlIjogIjMwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMVR5
cGVfSW50MzIiLCJ2YWx1ZSI6ICIzMDAzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczJU
eXBlX0ludDMyIiwidmFsdWUiOiAiMzAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMz
VHlwZV9JbnQzMiIsInZhbHVlIjogIjMwMDUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlz
NFR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIzMDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ29u
dHJvbGxlclJvbGVIaW50X0ludDMyIiwidmFsdWUiOiAiMzAwNyJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAwIn0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQiLCJ2YWx1
ZSI6ICI0MDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVz
X0Zsb2F0IiwidmFsdWUiOiAiNDAwMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZW
aWV3Qm90dG9tRGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDMifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDQi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9h
dCIsInZhbHVlIjogIjQwMDUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlTGFiZWxfU3Ry
aW5nIiwidmFsdWUiOiAiNDAwNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ljb25QYXRoTmFt
ZV9TdHJpbmciLCJ2YWx1ZSI6ICI1MDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJ
Y29uUGF0aERldmljZU9mZl9TdHJpbmciLCJ2YWx1ZSI6ICI1MDAxIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmciLCJ2YWx1ZSI6ICI1
MDAyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGlu
Z0FsZXJ0X1N0cmluZyIsInZhbHVlIjogIjUwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlUmVhZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyIsInZh
bHVlIjogIjUwMDUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
Tm90UmVhZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VTdGFuZGJ5X1N0cmluZyIsInZhbHVlIjogIjUwMDcifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nIiwi
dmFsdWUiOiAiNTAwOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVh
X0JpbmFyeV9TdGFydCIsInZhbHVlIjogIjUxMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9E
aXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5kIiwidmFsdWUiOiAiNTE1MCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDAifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICI2MDAxIn0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2
YWx1ZSI6ICIxMDAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX0VuZCIsInZhbHVlIjogIjEwOTk5In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAi
dnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjog
IlRyYWNrZWRQcm9wX1N1Y2Nlc3MiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRy
YWNrZWRQcm9wX1dyb25nRGF0YVR5cGUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjog
IlRyYWNrZWRQcm9wX1dyb25nRGV2aWNlQ2xhc3MiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJu
YW1lIjogIlRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMyJ9CisgICAgICAg
LHsibmFtZSI6ICJUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkiLCJ2YWx1ZSI6ICI0In0KKyAg
ICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UiLCJ2YWx1ZSI6ICI1In0K
KyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciIsInZh
bHVlIjogIjYifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRl
ZEJ5RGV2aWNlIiwidmFsdWUiOiAiNyJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9T
dHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCIsInZhbHVlIjogIjgifQorICAgICAgICx7Im5hbWUi
OiAiVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlIiwidmFsdWUiOiAiOSJ9CisgICAgICAgLHsi
bmFtZSI6ICJUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTAifQorICAg
ICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiIsInZhbHVlIjogIjEx
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiU3VibWl0X0RlZmF1bHQiLCJ2YWx1ZSI6ICIwIn0KKyAg
ICAgICAseyJuYW1lIjogIlN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkIiwidmFs
dWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJTdWJtaXRfR2xSZW5kZXJCdWZmZXIiLCJ2YWx1
ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlN1Ym1pdF9SZXNlcnZlZCIsInZhbHVlIjogIjQi
fQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU3RhdGUiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJWUlN0YXRlX1VuZGVmaW5lZCIsInZhbHVlIjogIi0xIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSU3RhdGVfT2ZmIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlN0YXRlX1NlYXJjaGluZyIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJT
dGF0ZV9TZWFyY2hpbmdfQWxlcnQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZS
U3RhdGVfUmVhZHkiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVh
ZHlfQWxlcnQiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfTm90UmVh
ZHkiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfU3RhbmRieSIsInZh
bHVlIjogIjYifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3ciLCJ2
YWx1ZSI6ICI3In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkV2ZW50VHlwZSIs
InZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSRXZlbnRfTm9uZSIsInZhbHVlIjogIjAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkIiwidmFs
dWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0
aXZhdGVkIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tl
ZERldmljZVVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3RhcnRlZCIsInZhbHVlIjogIjEwMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRl
ZCIsInZhbHVlIjogIjEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lwZENoYW5nZWQi
LCJ2YWx1ZSI6ICIxMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9FbnRlclN0YW5kYnlN
b2RlIiwidmFsdWUiOiAiMTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVhdmVTdGFu
ZGJ5TW9kZSIsInZhbHVlIjogIjEwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNr
ZWREZXZpY2VSb2xlQ2hhbmdlZCIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfTGVuc0Rpc3RvcnRpb25DaGFuZ2VkIiwidmFsdWUiOiAiMTEwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkIiwidmFsdWUiOiAiMTEx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQnV0dG9uUHJlc3MiLCJ2YWx1ZSI6ICIyMDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CdXR0b25VbnByZXNzIiwidmFsdWUiOiAiMjAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQnV0dG9uVG91Y2giLCJ2YWx1ZSI6ICIyMDIi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CdXR0b25VbnRvdWNoIiwidmFsdWUiOiAiMjAz
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW91c2VNb3ZlIiwidmFsdWUiOiAiMzAwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW91c2VCdXR0b25Eb3duIiwidmFsdWUiOiAiMzAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW91c2VCdXR0b25VcCIsInZhbHVlIjogIjMw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0ZvY3VzRW50ZXIiLCJ2YWx1ZSI6ICIzMDMi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Gb2N1c0xlYXZlIiwidmFsdWUiOiAiMzA0In0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2Nyb2xsIiwidmFsdWUiOiAiMzA1In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfVG91Y2hQYWRNb3ZlIiwidmFsdWUiOiAiMzA2In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjMwNyJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCIsInZhbHVlIjog
IjQwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCIsInZh
bHVlIjogIjQwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lRm9jdXNMb3N0Iiwi
dmFsdWUiOiAiNDAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0dhaW5l
ZCIsInZhbHVlIjogIjQwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGlj
YXRpb25DaGFuZ2VkIiwidmFsdWUiOiAiNDA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
U2NlbmVGb2N1c0NoYW5nZWQiLCJ2YWx1ZSI6ICI0MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9JbnB1dEZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjQwNiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkIiwidmFs
dWUiOiAiNDA3In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyIs
InZhbHVlIjogIjQxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1Nob3dSZW5kZXJNb2Rl
bHMiLCJ2YWx1ZSI6ICI0MTEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hv
d24iLCJ2YWx1ZSI6ICI1MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5SGlk
ZGVuIiwidmFsdWUiOiAiNTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJk
QWN0aXZhdGVkIiwidmFsdWUiOiAiNTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFz
aGJvYXJkRGVhY3RpdmF0ZWQiLCJ2YWx1ZSI6ICI1MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9EYXNoYm9hcmRUaHVtYlNlbGVjdGVkIiwidmFsdWUiOiAiNTA0In0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVkIiwidmFsdWUiOiAiNTA1In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUmVzZXREYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MDYifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9SZW5kZXJUb2FzdCIsInZhbHVlIjogIjUwNyJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X0ltYWdlTG9hZGVkIiwidmFsdWUiOiAiNTA4In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2hvd0tleWJvYXJkIiwidmFsdWUiOiAiNTA5In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfSGlkZUtleWJvYXJkIiwidmFsdWUiOiAiNTEwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCIsInZhbHVlIjog
IjUxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0
IiwidmFsdWUiOiAiNTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheVNoYXJl
ZFRleHR1cmVDaGFuZ2VkIiwidmFsdWUiOiAiNTEzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfRGFzaGJvYXJkR3VpZGVCdXR0b25Eb3duIiwidmFsdWUiOiAiNTE0In0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCIsInZhbHVlIjogIjUxNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQiLCJ2YWx1ZSI6ICI1
MTYifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9JbWFnZUZhaWxlZCIsInZhbHVlIjogIjUx
NyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkIiwi
dmFsdWUiOiAiNTE4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfUmVxdWVzdFNjcmVlbnNo
b3QiLCJ2YWx1ZSI6ICI1MjAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90
VGFrZW4iLCJ2YWx1ZSI6ICI1MjEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5z
aG90RmFpbGVkIiwidmFsdWUiOiAiNTIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3Vi
bWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkIiwidmFsdWUiOiAiNTIzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdl
ZCIsInZhbHVlIjogIjUyNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlv
bl9TaG93biIsInZhbHVlIjogIjYwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlm
aWNhdGlvbl9IaWRkZW4iLCJ2YWx1ZSI6ICI2MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlvbiIsInZhbHVlIjogIjYwMiJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQiLCJ2YWx1ZSI6ICI2MDMi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9RdWl0IiwidmFsdWUiOiAiNzAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUHJvY2Vzc1F1aXQiLCJ2YWx1ZSI6ICI3MDEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0IiwidmFsdWUiOiAiNzAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCIsInZhbHVlIjog
IjcwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQiLCJ2
YWx1ZSI6ICI3MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFz
Q2hhbmdlZCIsInZhbHVlIjogIjgwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBl
cm9uZVVuaXZlcnNlSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2
YWx1ZSI6ICI4MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0IiwidmFsdWUiOiAiODA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXVkaW9TZXR0
aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFu
Z2VkIiwidmFsdWUiOiAiODUyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW9kZWxTa2lu
U2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1MyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVl
IjogIjg1NSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1N0YXR1c1VwZGF0ZSIsInZhbHVl
IjogIjkwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X01DSW1hZ2VVcGRhdGVkIiwidmFs
dWUiOiAiMTAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3Rh
cnRlZCIsInZhbHVlIjogIjExMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9GaXJtd2Fy
ZVVwZGF0ZUZpbmlzaGVkIiwidmFsdWUiOiAiMTEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0tleWJvYXJkQ2xvc2VkIiwidmFsdWUiOiAiMTIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0tleWJvYXJkQ2hhcklucHV0IiwidmFsdWUiOiAiMTIwMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0tleWJvYXJkRG9uZSIsInZhbHVlIjogIjEyMDIifQorICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkIiwidmFsdWUiOiAiMTMw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0
ZWQiLCJ2YWx1ZSI6ICIxMzAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRp
b25UcmFuc2l0aW9uTmV3QXBwU3RhcnRlZCIsInZhbHVlIjogIjEzMDIifQorICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkIiwidmFsdWUiOiAiMTMwMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkIiwidmFsdWUi
OiAiMTMwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlv
bk5ld0FwcExhdW5jaENvbXBsZXRlIiwidmFsdWUiOiAiMTMwNSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24iLCJ2YWx1ZSI6ICIxNDAwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4i
LCJ2YWx1ZSI6ICIxNDAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9D
aGFwZXJvbmVCb3VuZHNTaG93biIsInZhbHVlIjogIjE0MTAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiIsInZhbHVlIjogIjE0MTEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJl
YW0iLCJ2YWx1ZSI6ICIxNTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENh
bWVyYV9TdG9wVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfVHJhY2tlZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtIiwidmFsdWUiOiAiMTUwMiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJl
YW0iLCJ2YWx1ZSI6ICIxNTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENh
bWVyYV9FZGl0aW5nU3VyZmFjZSIsInZhbHVlIjogIjE1NTAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUi
LCJ2YWx1ZSI6ICIxNjAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfUGVyZm9ybWFuY2VU
ZXN0X0ZpZGVsaXR5TGV2ZWwiLCJ2YWx1ZSI6ICIxNjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfTWVzc2FnZU92ZXJsYXlfQ2xvc2VkIiwidmFsdWUiOiAiMTY1MCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0IiwidmFsdWUiOiAi
MTAwMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZl
ZF9FbmQiLCJ2YWx1ZSI6ICIxOTk5OSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
RGV2aWNlQWN0aXZpdHlMZXZlbCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRURl
dmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biIsInZhbHVlIjogIi0xIn0KKyAgICAgICAseyJuYW1l
IjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfSWRsZSIsInZhbHVlIjogIjAifQorICAgICAgICx7
Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24iLCJ2YWx1ZSI6
ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVy
YWN0aW9uX1RpbWVvdXQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogImtfRURldmlj
ZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSQnV0dG9uSWQiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJr
X0VCdXR0b25fU3lzdGVtIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0
b25fQXBwbGljYXRpb25NZW51IiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VC
dXR0b25fR3JpcCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQ
YWRfTGVmdCIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRf
VXAiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX1JpZ2h0
IiwidmFsdWUiOiAiNSJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9Eb3duIiwi
dmFsdWUiOiAiNiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQSIsInZhbHVlIjogIjci
fQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciIsInZhbHVlIjog
IjMxIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzMCIsInZhbHVlIjogIjMyIn0K
KyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzMSIsInZhbHVlIjogIjMzIn0KKyAgICAg
ICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzMiIsInZhbHVlIjogIjM0In0KKyAgICAgICAseyJu
YW1lIjogImtfRUJ1dHRvbl9BeGlzMyIsInZhbHVlIjogIjM1In0KKyAgICAgICAseyJuYW1lIjog
ImtfRUJ1dHRvbl9BeGlzNCIsInZhbHVlIjogIjM2In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1
dHRvbl9TdGVhbVZSX1RvdWNocGFkIiwidmFsdWUiOiAiMzIifQorICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciIsInZhbHVlIjogIjMzIn0KKyAgICAgICAseyJuYW1l
IjogImtfRUJ1dHRvbl9EYXNoYm9hcmRfQmFjayIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAia19FQnV0dG9uX01heCIsInZhbHVlIjogIjY0In0KK119CissICAgICAgIHsiZW51bW5h
bWUiOiAidnI6OkVWUk1vdXNlQnV0dG9uIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAi
VlJNb3VzZUJ1dHRvbl9MZWZ0IiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1v
dXNlQnV0dG9uX1JpZ2h0IiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1vdXNl
QnV0dG9uX01pZGRsZSIsInZhbHVlIjogIjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RUhpZGRlbkFyZWFNZXNoVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtf
ZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJrX2VIaWRkZW5BcmVhTWVzaF9JbnZlcnNlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJrX2VIaWRkZW5BcmVhTWVzaF9MaW5lTG9vcCIsInZhbHVlIjogIjIifQorICAgICAgICx7
Im5hbWUiOiAia19lSGlkZGVuQXJlYU1lc2hfTWF4IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJDb250cm9sbGVyQXhpc1R5cGUiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJrX2VDb250cm9sbGVyQXhpc19Ob25lIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCIsInZhbHVlIjogIjEi
fQorICAgICAgICx7Im5hbWUiOiAia19lQ29udHJvbGxlckF4aXNfSm95c3RpY2siLCJ2YWx1ZSI6
ICIyIn0KKyAgICAgICAseyJuYW1lIjogImtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIiLCJ2YWx1
ZSI6ICIzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJFdmVu
dE91dHB1dFR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJDb250cm9sbGVyRXZl
bnRPdXRwdXRfT1NFdmVudHMiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIkNvbnRy
b2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyIsInZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RUNvbGxpc2lvbkJvdW5kc1N0eWxlIiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiIsInZhbHVlIjogIjAi
fQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUi
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVf
U1FVQVJFUyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5E
U19TVFlMRV9BRFZBTkNFRCIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9OT05FIiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0NPVU5UIiwidmFsdWUiOiAiNSJ9CitdfQorLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUk92ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSIsInZhbHVlIjogIjEwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUiLCJ2YWx1ZSI6ICIxMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkIiwidmFs
dWUiOiAiMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0
RXhjZWVkZWQiLCJ2YWx1ZSI6ICIxMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9Xcm9uZ1Zpc2liaWxpdHlUeXBlIiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5RXJyb3JfS2V5VG9vTG9uZyIsInZhbHVlIjogIjE1In0KKyAgICAgICAseyJuYW1l
IjogIlZST3ZlcmxheUVycm9yX05hbWVUb29Mb25nIiwidmFsdWUiOiAiMTYifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UiLCJ2YWx1ZSI6ICIxNyJ9CisgICAgICAg
LHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUiLCJ2YWx1ZSI6ICIx
OCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmlj
ZSIsInZhbHVlIjogIjE5In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFs
aWRQYXJhbWV0ZXIiLCJ2YWx1ZSI6ICIyMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9UaHVtYm5haWxDYW50QmVEZXN0cm95ZWQiLCJ2YWx1ZSI6ICIyMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsIiwidmFsdWUiOiAiMjIifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfUmVxdWVzdEZhaWxlZCIsInZhbHVlIjogIjIz
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFs
dWUiOiAiMjQifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2Fk
RmlsZSIsInZhbHVlIjogIjI1In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0tl
eWJvYXJkQWxyZWFkeUluVXNlIiwidmFsdWUiOiAiMjYifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RXJyb3JfTm9OZWlnaGJvciIsInZhbHVlIjogIjI3In0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0aXZlcyIsInZhbHVlIjogIjI5In0KKyAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUiLCJ2YWx1ZSI6
ICIzMCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblR5cGUi
LCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX090aGVyIiwidmFs
dWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX1NjZW5lIiwidmFsdWUi
OiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX092ZXJsYXkiLCJ2YWx1ZSI6
ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25fQmFja2dyb3VuZCIsInZhbHVl
IjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbl9VdGlsaXR5IiwidmFsdWUi
OiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciIsInZhbHVl
IjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nIiwi
dmFsdWUiOiAiNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX01heCIsInZhbHVl
IjogIjcifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRmlybXdhcmVFcnJvciIs
InZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9Ob25lIiwidmFs
dWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfU3VjY2VzcyIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX0ZhaWwiLCJ2YWx1
ZSI6ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVy
cm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9P
SyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9J
bnZhbGlkTm90aWZpY2F0aW9uSWQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJOb3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwiLCJ2YWx1ZSI6ICIxMDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhh
bmRsZSIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVy
cm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAzIn0KK119
CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkluaXRFcnJvciIsInZhbHVlcyI6IFsgCisg
ICAgICAgeyJuYW1lIjogIlZSSW5pdEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX1Vua25vd24iLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJu
YW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQiLCJ2YWx1ZSI6ICIx
MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3Jy
dXB0IiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
VlJDbGllbnRETExOb3RGb3VuZCIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZCIsInZhbHVlIjogIjEwNCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kIiwi
dmFsdWUiOiAiMTA1In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxp
ZEludGVyZmFjZSIsInZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJv
cl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkIiwidmFsdWUiOiAiMTA3In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDgi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCIsInZh
bHVlIjogIjEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdp
c3RyeU5vdEZvdW5kIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX0luaXRfTm9Db25maWdQYXRoIiwidmFsdWUiOiAiMTExIn0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoIiwidmFsdWUiOiAiMTEyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUiLCJ2YWx1ZSI6
ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZh
aWxlZCIsInZhbHVlIjogIjExNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0
X1JldHJ5IiwidmFsdWUiOiAiMTE1In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfSW5pdENhbmNlbGVkQnlVc2VyIiwidmFsdWUiOiAiMTE2In0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5jaGluZyIsInZhbHVlIjogIjExNyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCIsInZh
bHVlIjogIjExOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5n
RG93biIsInZhbHVlIjogIjExOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0
X1Rvb01hbnlPYmplY3RzIiwidmFsdWUiOiAiMTIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwIiwidmFsdWUiOiAiMTIxIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0
b3IiLCJ2YWx1ZSI6ICIxMjIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9O
b3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzIiwidmFsdWUiOiAiMTIzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwiLCJ2YWx1ZSI6ICIxMjQifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSIsInZhbHVlIjogIjEy
NSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2Vu
Y2VGYWlsZWQiLCJ2YWx1ZSI6ICIxMjYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9WUk1vbml0b3JOb3RGb3VuZCIsInZhbHVlIjogIjEyNyJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMjgi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90
U3VwcG9ydGVkIiwidmFsdWUiOiAiMTI5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSIsInZhbHVlIjogIjEzMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzIiwidmFs
dWUiOiAiMTMxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dE
aXNhYmxlZEluU2V0dGluZ3MiLCJ2YWx1ZSI6ICIxMzIifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5kIiwidmFsdWUiOiAiMTMzIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkIiwi
dmFsdWUiOiAiMTM0In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9GYWls
ZWQiLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVy
X1Vua25vd24iLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
RHJpdmVyX0htZFVua25vd24iLCJ2YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCIsInZhbHVlIjogIjIwMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSIsInZhbHVlIjogIjIwNCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UiLCJ2YWx1ZSI6
ICIyMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0
ZWQiLCJ2YWx1ZSI6ICIyMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVy
X0NhbGlicmF0aW9uSW52YWxpZCIsInZhbHVlIjogIjIwNyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kIiwidmFsdWUiOiAiMjA4In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNl
VW5rbm93biIsInZhbHVlIjogIjIwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyIsInZhbHVlIjogIjIxMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkIiwidmFsdWUiOiAi
MjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVk
IiwidmFsdWUiOiAiMzAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25u
ZWN0RmFpbGVkIiwidmFsdWUiOiAiMzAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDIifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAz
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQiLCJ2
YWx1ZSI6ICIzMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCIs
InZhbHVlIjogIjMwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9z
aXRvckNvbm5lY3RGYWlsZWQiLCJ2YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlIiwidmFsdWUiOiAi
MzA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0
ZXJNdWx0aXBsZUF0dGVtcHRzIiwidmFsdWUiOiAiMzA4In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkIiwidmFsdWUiOiAiNDAwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkIiwidmFs
dWUiOiAiNDAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZSIsInZhbHVlIjogIjQwMiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkIiwidmFsdWUiOiAiNDAzIn0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0
RmFpbGVkIiwidmFsdWUiOiAiNDA0In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVudGltZSIsInZhbHVlIjogIjEw
MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ2FudE9wZW5EZXZpY2UiLCJ2YWx1ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0
YXJ0IiwidmFsdWUiOiAiMTEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyIsInZhbHVlIjogIjExMDMifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vQmlnIiwidmFsdWUiOiAiMTEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCIsInZhbHVlIjogIjExMDUifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5h
YmxlVG9Jbml0WkxpYiIsInZhbHVlIjogIjExMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24iLCJ2
YWx1ZSI6ICIxMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3RhcnQiLCJ2YWx1ZSI6ICIxMTA4In0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vu
YWJsZVRvR2V0VXNlckRhdGFTdGFydCIsInZhbHVlIjogIjExMDkifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0
YU5leHQiLCJ2YWx1ZSI6ICIxMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlIiwidmFsdWUiOiAiMTEx
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Vc2VyRGF0YUVycm9yIiwidmFsdWUiOiAiMTExMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayIs
InZhbHVlIjogIjExMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfU3RlYW1fU3Rl
YW1JbnN0YWxsYXRpb25Ob3RGb3VuZCIsInZhbHVlIjogIjIwMDAifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJWUlNjcmVlbnNob3RUeXBlX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSU2NyZWVuc2hvdFR5cGVfTW9ubyIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5h
bWUiOiAiVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8iLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1hcCIsInZhbHVlIjogIjMifQorICAgICAgICx7
Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEiLCJ2YWx1ZSI6ICI0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEiLCJ2YWx1ZSI6
ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0
eUZpbGVuYW1lcyIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFBy
b3BlcnR5RmlsZW5hbWVzX1ByZXZpZXciLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSIiwidmFsdWUiOiAiMSJ9CitdfQorLCAg
ICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lIiwidmFsdWUiOiAi
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWls
ZWQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJy
b3JfSW52YWxpZEhhbmRsZSIsInZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRy
YWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVIZWFkZXJWZXJzaW9uIiwidmFsdWUiOiAiMTAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyIs
InZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9J
UENGYWlsdXJlIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENh
bWVyYUVycm9yX05vdFN1cHBvcnRlZEZvclRoaXNEZXZpY2UiLCJ2YWx1ZSI6ICIxMDUifQorICAg
ICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSIs
InZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9G
cmFtZUJ1ZmZlcmluZ0ZhaWx1cmUiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAi
VlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlIiwidmFsdWUiOiAiMTA4In0K
KyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJ
ZCIsInZhbHVlIjogIjEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JbnZhbGlkU2hhcmVkVGV4dHVyZUhhbmRsZSIsInZhbHVlIjogIjExMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkIiwidmFs
dWUiOiAiMTExIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJl
ZFRleHR1cmVGYWlsdXJlIiwidmFsdWUiOiAiMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJh
Y2tlZENhbWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUiLCJ2YWx1ZSI6ICIxMTMifQorICAgICAg
ICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50IiwidmFsdWUi
OiAiMTE0In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRG
cmFtZUJ1ZmZlclNpemUiLCJ2YWx1ZSI6ICIxMTUifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJu
YW1lIjogIlZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQiLCJ2YWx1ZSI6ICIwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCIs
InZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
X01heGltdW1VbmRpc3RvcnRlZCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiTUFY
X0NBTUVSQV9GUkFNRV9UWVBFUyIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0cyIsInZhbHVlIjogIjEw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCIsInZh
bHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBs
aWNhdGlvbiIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
RXJyb3JfSW52YWxpZEluZGV4IiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZS
QXBwbGljYXRpb25FcnJvcl9Vbmtub3duQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDQifQorICAg
ICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0lQQ0ZhaWxlZCIsInZhbHVlIjogIjEw
NSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJl
YWR5UnVubmluZyIsInZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0
aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0IiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDgi
fQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCIsInZh
bHVlIjogIjEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGlj
YXRpb25BbHJlYWR5U3RhcnRpbmciLCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMTEifQorICAg
ICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmci
LCJ2YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Ry
YW5zaXRpb25BYm9ydGVkIiwidmFsdWUiOiAiMTEzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25FcnJvcl9Jc1RlbXBsYXRlIiwidmFsdWUiOiAiMTE0In0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJUb29TbWFsbCIsInZhbHVlIjogIjIwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQiLCJ2YWx1
ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Q
cm9wZXJ0eSIsInZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
RXJyb3JfSW52YWxpZFBhcmFtZXRlciIsInZhbHVlIjogIjIwMyJ9CitdfQorLCAgICAgICB7ImVu
dW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5IiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nIiwidmFsdWUiOiAi
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9T
dHJpbmciLCJ2YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmciLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmciLCJ2YWx1ZSI6
ICIxMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRz
X1N0cmluZyIsInZhbHVlIjogIjE0In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9VUkxfU3RyaW5nIiwidmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJB
cHBsaWNhdGlvblByb3BlcnR5X0Rlc2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjUwIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyIsInZh
bHVlIjogIjUxIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFn
ZVBhdGhfU3RyaW5nIiwidmFsdWUiOiAiNTIifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvblByb3BlcnR5X1NvdXJjZV9TdHJpbmciLCJ2YWx1ZSI6ICI1MyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wiLCJ2YWx1
ZSI6ICI2MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1w
bGF0ZV9Cb29sIiwidmFsdWUiOiAiNjEifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlv
blByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wiLCJ2YWx1ZSI6ICI2MiJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnRlcm5hbF9Cb29sIiwidmFsdWUiOiAiNjMi
fQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1l
X1VpbnQ2NCIsInZhbHVlIjogIjcwIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAiVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQiLCJ2YWx1ZSI6
ICIxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5n
Rm9yRXh0ZXJuYWxMYXVuY2giLCJ2YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvbl9OZXdBcHBMYXVuY2hlZCIsInZhbHVlIjogIjIwIn0KK119Ciss
ICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiLCJ2YWx1
ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LIiwi
dmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X1dhcm5pbmciLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkIiwidmFsdWUiOiAi
MTAxIn0KKyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2Fybmlu
Z19CYXNlU3RhdGlvblJlbW92ZWQiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAi
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQiLCJ2
YWx1ZSI6ICIxMDMifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZV9FcnJvciIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxp
YnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCIsInZhbHVlIjogIjIw
MSJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jh
c2VTdGF0aW9uQ29uZmxpY3QiLCJ2YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAiQ2hh
cGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQiLCJ2YWx1ZSI6ICIy
MDMifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9D
b2xsaXNpb25Cb3VuZHNJbnZhbGlkIiwidmFsdWUiOiAiMjA0In0KK119CissICAgICAgIHsiZW51
bW5hbWUiOiAidnI6OkVDaGFwZXJvbmVDb25maWdGaWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7
Im5hbWUiOiAiRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfTGl2ZSIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfVGVtcCIsInZhbHVlIjogIjIifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNoYXBlcm9uZUltcG9ydEZsYWdzIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5IiwidmFs
dWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJDb21wb3NpdG9yRXJy
b3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9Ob25l
IiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9SZXF1
ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JF
cnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQ29tcG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzIiwidmFsdWUiOiAiMTAxIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUi
OiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVB
cHBsaWNhdGlvbiIsInZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0
b3JFcnJvcl9UZXh0dXJlSXNPbldyb25nRGV2aWNlIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAs
eyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQi
LCJ2YWx1ZSI6ICIxMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfU2hh
cmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIxMDYifQorICAgICAgICx7Im5hbWUi
OiAiVlJDb21wb3NpdG9yRXJyb3JfSW5kZXhPdXRPZlJhbmdlIiwidmFsdWUiOiAiMTA3In0KKyAg
ICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQiLCJ2YWx1
ZSI6ICIxMDgifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRN
ZXRob2QiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhv
ZF9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1l
dGhvZF9Nb3VzZSIsInZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6
VlJPdmVybGF5VHJhbnNmb3JtVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZS
T3ZlcmxheVRyYW5zZm9ybV9BYnNvbHV0ZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSIsInZhbHVlIjogIjEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkiLCJ2
YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2Vk
Q29tcG9uZW50IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpW
Uk92ZXJsYXlGbGFncyIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUZs
YWdzX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdz
X0N1cnZlZCIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3Nf
UkdTUzRYIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19O
b0Rhc2hib2FyZFRhYiIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1l
IjogIlZST3ZlcmxheUZsYWdzX1Nob3dHYW1lcGFkRm9jdXMiLCJ2YWx1ZSI6ICI1In0KKyAgICAg
ICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyIsInZhbHVlIjog
IjYifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVu
dHMiLCJ2YWx1ZSI6ICI3In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nob3dU
b3VjaFBhZFNjcm9sbFdoZWVsIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92
ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzIiwidmFsdWUiOiAi
OSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVs
IiwidmFsdWUiOiAiMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2lkZUJ5
U2lkZV9Dcm9zc2VkIiwidmFsdWUiOiAiMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RmxhZ3NfUGFub3JhbWEiLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJs
YXlGbGFnc19TdGVyZW9QYW5vcmFtYSIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUZsYWdzX1NvcnRXaXRoTm9uU2NlbmVPdmVybGF5cyIsInZhbHVlIjogIjE0In0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2FyZCIsInZh
bHVlIjogIjE1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OlZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZV9CdXR0b25QcmVzc18wIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSIsInZhbHVlIjogIjEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIi
LCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9CdXR0b25QcmVzc18zIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1lc3Nh
Z2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5IiwidmFsdWUiOiAiNCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRP
ckNyZWF0ZUNsaWVudE92ZXJsYXkiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZV9BcHBsaWNhdGlvblF1aXQiLCJ2YWx1ZSI6ICI2In0KK119
CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSIsInZhbHVl
cyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsIiwi
dmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBh
c3N3b3JkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElu
cHV0TW9kZVN1Ym1pdCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogImtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUiLCJ2YWx1ZSI6ICIwIn0K
KyAgICAgICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGlu
ZXMiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVPdmVybGF5
RGlyZWN0aW9uIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlv
bl9VcCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9E
b3duIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0xl
ZnQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fUmln
aHQiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fQ291
bnQiLCJ2YWx1ZSI6ICI0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92ZXJs
YXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJu
YW1lIjogIk92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSIsInZhbHVl
IjogIjAifQorICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5
cGVfQ2lyY2xlIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
VlJSZW5kZXJNb2RlbEVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJSZW5k
ZXJNb2RlbEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVu
ZGVyTW9kZWxFcnJvcl9Mb2FkaW5nIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIyMDAifQorICAgICAg
ICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRBcmciLCJ2YWx1ZSI6ICIzMDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCIsInZh
bHVlIjogIjMwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFw
ZXMiLCJ2YWx1ZSI6ICIzMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9y
X011bHRpcGxlU2hhcGVzIiwidmFsdWUiOiAiMzAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVu
ZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAgICx7
Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlVGV4dHVyZXMiLCJ2YWx1ZSI6ICIz
MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxs
IiwidmFsdWUiOiAiMzA2In0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9O
b3RFbm91Z2hOb3JtYWxzIiwidmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1lIjogIlZSUmVu
ZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMiLCJ2YWx1ZSI6ICIzMDgifQorICAgICAg
ICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAi
NDAwIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvbmVudFByb3BlcnR5
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0
YXRpYyIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1Zpc2libGUiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50
UHJvcGVydHlfSXNUb3VjaGVkIiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNv
bXBvbmVudFByb3BlcnR5X0lzUHJlc3NlZCIsInZhbHVlIjogIjgifQorICAgICAgICx7Im5hbWUi
OiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Njcm9sbGVkIiwidmFsdWUiOiAiMTYifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsg
CisgICAgICAgeyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50IiwidmFsdWUi
OiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQi
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJh
bnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvblN0eWxlIiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfTm9uZSIsInZhbHVlIjogIjAifQorICAg
ICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24iLCJ2YWx1ZSI6
ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9E
aXNhYmxlZCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRp
b25TdHlsZV9Db250YWN0X0VuYWJsZWQiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUi
OiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3RpdmUiLCJ2YWx1ZSI6ICIyMDIifQor
XX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAi
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQiLCJ2YWx1
ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkIiwi
dmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNl
RmFpbGVkIiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3Jf
VW5zZXRTZXR0aW5nSGFzTm9EZWZhdWx0IiwidmFsdWUiOiAiNSJ9CitdfQorLCAgICAgICB7ImVu
dW1uYW1lIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJWUlNjcmVlbnNob3RFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlNjcmVlbnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwi
dmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX05vdEZv
dW5kIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9y
X0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdEVycm9yX1NjcmVlbnNob3RBbHJlYWR5SW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwOCJ9
CitdfQorXSwKKyJjb25zdHMiOlt7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4RHJpdmVy
RGVidWdSZXNwb25zZVNpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2
YWwiOiAiMzI3NjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNl
SW5kZXhfSG1kIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTYifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhPdGhlciIsImNvbnN0dHlwZSI6
ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICI0Mjk0OTY3Mjk0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCIsImNvbnN0dHlwZSI6
ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICI0Mjk0OTY3Mjk1In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyIiwiY29uc3R0eXBlIjog
ImNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia191bkludmFsaWRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6
ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuRmxvYXRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3VuSW50MzJQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCIsICJjb25zdHZhbCI6ICIyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
VWludDY0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qi
LCAiY29uc3R2YWwiOiAiMyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bkJvb2xQcm9w
ZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZh
bCI6ICI0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuU3RyaW5nUHJvcGVydHlUYWci
LCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiNSJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWciLCJj
b25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjAifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnIiwiY29u
c3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIxIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnIiwiY29uc3R0
eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIyIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnIiwiY29uc3R0eXBl
IjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIzIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjog
ImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjMwIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQiLCJjb25z
dHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMTAwMDAifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUiLCJjb25z
dHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQiLCJjb25zdHR5cGUi
OiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiNSJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia191bE92ZXJsYXlIYW5kbGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IFZST3Zl
cmxheUhhbmRsZV90IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJf
dCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJTeXN0ZW1f
VmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJ
VlJTeXN0ZW1fMDE1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJFeHRlbmRlZERpc3Bs
YXlfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJJVlJFeHRlbmRlZERpc3BsYXlfMDAxIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJU
cmFja2VkQ2FtZXJhX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiSVZSVHJhY2tlZENhbWVyYV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50
MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X01pbWVUeXBlX0hvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAidnIvaG9tZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5
cGVfR2FtZVRoZWF0ZXIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAidnIvZ2FtZV90aGVhdGVyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJBcHBs
aWNhdGlvbnNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJJVlJBcHBsaWNhdGlvbnNfMDA2In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJ
VlJDaGFwZXJvbmVfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJJVlJDaGFwZXJvbmVfMDAzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJ
VlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIklWUkNoYXBlcm9uZVNldHVwXzAwNSJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAiSVZSQ29tcG9zaXRvcl9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNvbXBvc2l0b3JfMDIwIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3VuVlJPdmVybGF5TWF4S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0
IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjEyOCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a191blZST3ZlcmxheU1heE5hbWVMZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3Qi
LCAiY29uc3R2YWwiOiAiMTI4In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3Zl
cmxheUNvdW50IiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjY0
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVzQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2
YWwiOiAiMzIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUk92ZXJsYXlfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJPdmVybGF5
XzAxNCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25l
bnRfR0RDMjAxNSIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJnZGMyMDE1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0Nv
bXBvbmVudF9CYXNlIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImJhc2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29t
cG9uZW50X1RpcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ0aXAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9u
ZW50X0hhbmRHcmlwIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImhhbmRncmlwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVy
X0NvbXBvbmVudF9TdGF0dXMiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAic3RhdHVzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZW5kZXJNb2Rl
bHNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJJVlJSZW5kZXJNb2RlbHNfMDA1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTm90
aWZpY2F0aW9uVGV4dE1heFNpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29u
c3R2YWwiOiAiMjU2In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJOb3RpZmljYXRpb25z
X1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
SVZSTm90aWZpY2F0aW9uc18wMDIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhT
ZXR0aW5nc0tleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZh
bCI6ICIxMjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlNldHRpbmdzX1ZlcnNpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2V0dGlu
Z3NfMDAyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NlY3Rpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RlYW12ciJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmlu
ZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXF1aXJl
SG1kIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZl
cktleV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiZm9yY2VkRHJpdmVyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZS
X0ZvcmNlZEhtZEtleV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiZm9yY2VkSG1kIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9T
dGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImRpc3BsYXlEZWJ1ZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkZWJ1Z1Byb2Nlc3NQaXBlIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEaXN0b3J0
aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1
Z1hfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
ZGlzcGxheURlYnVnWCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9E
aXNwbGF5RGVidWdZX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImRpc3BsYXlEZWJ1Z1kifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibG9nbGV2ZWwi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0IiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImlwZCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJv
amVjdGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0IiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRDYW1lcmFIZWln
aHQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERv
bWVSYWRpdXNfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiYmFja2dyb3VuZERvbWVSYWRpdXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX1N0ZWFtVlJfR3JpZENvbG9yX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJncmlkQ29sb3IifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicGxheUFyZWFDb2xvciJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzaG93U3RhZ2UifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhY3RpdmF0ZU11
bHRpcGxlRHJpdmVycyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiZGlyZWN0TW9kZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1W
Ul9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFZpZCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFBpZCJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNpbmdTcGVh
a2VycyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TcGVha2Vyc0Zv
cndhcmRZYXdPZmZzZXREZWdyZWVzX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFn
ZW1lbnRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJuZXZlcktpbGxQcm9jZXNzZXMifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9G
bG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5k
ZXJUYXJnZXRNdWx0aXBsaWVyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVh
bVZSX0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dJbnRlcmxl
YXZlZFJlcHJvamVjdGlvbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1W
Ul9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImZvcmNlUmVwcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZUZhZGVPbkJhZFRyYWNr
aW5nIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJy
b3JWaWV3X0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImRlZmF1bHRNaXJyb3JWaWV3In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9T
dGVhbVZSX1Nob3dNaXJyb3JWaWV3X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAic2hvd01pcnJvclZpZXcifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJtaXJyb3JWaWV3R2VvbWV0cnkifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFw
cExhdW5jaCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJz
dGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGFydENvbXBvc2l0b3JGcm9tQXBw
TGF1bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0RGFz
aGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2Fy
ZF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0
YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlSG9tZUFwcCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBw
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3Vu
ZEltYWdlVGltZVNlY19JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJldGFpbERlbW8ifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0IiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImlwZE9mZnNldCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRyaXZlcl9saWdodGhvdXNlIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNhYmxlaW11In0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0
aW9uX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ1c2VkaXNhbWJpZ3VhdGlvbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGln
aHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc2FtYmlndWF0aW9uZGVidWcifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMy
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInByaW1hcnli
YXNlc3RhdGlvbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9E
Qkhpc3RvcnlfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJkYmhpc3RvcnkifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2Vj
dGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkcml2
ZXJfbnVsbCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZXJpYWxOdW1i
ZXJfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InNlcmlhbE51bWJlciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9Nb2Rl
bE51bWJlcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAibW9kZWxOdW1iZXIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxf
V2luZG93WF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJ3aW5kb3dYIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRv
d1lfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
d2luZG93WSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dXaWR0
aF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3
aW5kb3dXaWR0aCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dI
ZWlnaHRfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAid2luZG93SGVpZ2h0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1Jl
bmRlcldpZHRoX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInJlbmRlcldpZHRoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxs
X1JlbmRlckhlaWdodF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJyZW5kZXJIZWlnaHQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxv
YXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxh
eUZyZXF1ZW5jeSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFj
ZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InVzZXJpbnRlcmZhY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRl
cmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJTdGF0dXNBbHdheXNPblRvcCJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIk1pbmltaXplVG9UcmF5In0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3Rz
X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2Ny
ZWVuc2hvdHMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2Vf
U2NyZWVuc2hvdFR5cGVfSW50IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNjcmVlbnNob3RUeXBlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9Ob3RpZmljYXRpb25zX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAibm90aWZpY2F0aW9ucyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJEb05vdERpc3R1cmIifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0tleWJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAia2V5Ym9hcmQifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiVHV0b3JpYWxDb21wbGV0aW9ucyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU2NhbGVYIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlNjYWxlWCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU2NhbGVZIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlNjYWxlWSJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiT2Zmc2V0TGVmdFgifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJPZmZzZXRSaWdodFgifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX0tleWJvYXJkX09mZnNldFkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiT2Zmc2V0WSJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIlNtb290aGluZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfUGVyZl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInBlcmZjaGVjayJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVy
Zl9IZXVyaXN0aWNBY3RpdmVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJoZXVyaXN0aWNBY3RpdmUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJ3YXJuSW5ITUQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJ3YXJuT25seU9uY2UifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFsbG93VGltaW5nU3RvcmUifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzYXZlVGltaW5nc09u
RXhpdCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9UZXN0RGF0YV9GbG9h
dCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJwZXJmVGVz
dERhdGEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19T
ZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNv
bGxpc2lvbkJvdW5kcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9u
Qm91bmRzX1N0eWxlX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc1N0eWxlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNHcm91
bmRQZXJpbWV0ZXJPbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9u
Qm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24ifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29s
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lv
bkJvdW5kc1BsYXlTcGFjZU9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0lu
dDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxp
c2lvbkJvdW5kc0NvbG9yR2FtbWFSIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9D
b2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUcifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xs
aXNpb25Cb3VuZHNDb2xvckdhbW1hQiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfU2VjdGlvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmEifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmEifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9C
b29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJs
ZUNhbWVyYUluRGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1l
cmFfRW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91
bmRzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJh
Rm9yUm9vbVZpZXdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdf
SW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2Ft
ZXJhQm91bmRzQ29sb3JHYW1tYUcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Nh
bWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFBIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRz
U3RyZW5ndGhfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiY2FtZXJhQm91bmRzU3RyZW5ndGgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX2F1ZGlvX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiYXVkaW8ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09u
UGxheWJhY2tEZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogIm9uUGxheWJhY2tEZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJvblJlY29yZERldmljZSJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmciLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFja01p
cnJvckRldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT2ZmUGxh
eWJhY2tEZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogIm9mZlBsYXliYWNrRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9hdWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9mZlJlY29yZERldmljZSJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfYXVkaW9fVklWRUhETUlHYWluIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInZpdmVIRE1JR2FpbiJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfUG93ZXJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJwb3dlciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJwb3dlck9mZk9uRXhpdCJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZTY3JlZW5zVGlt
ZW91dCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZkNvbnRy
b2xsZXJzVGltZW91dF9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0In0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXR1cm5Ub1dhdGNoZG9n
VGltZW91dCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfQXV0b0xhdW5j
aFN0ZWFtVlJPbkJ1dHRvblByZXNzIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfRGFzaGJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlRGFzaGJvYXJkIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29s
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFyY2FkZU1v
ZGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX21vZGVsc2tpbl9TZWN0aW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1vZGVsc2tpbnMi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGUifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogIklWUlNjcmVlbnNob3RzX1ZlcnNpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2NyZWVuc2hvdHNfMDAxIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZXNvdXJjZXNfVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJSZXNvdXJjZXNfMDAxIn0K
K10sCisic3RydWN0cyI6W3sic3RydWN0IjogInZyOjpIbWRNYXRyaXgzNF90IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogIm0iLCAiZmllbGR0eXBlIjogImZsb2F0IFszXVs0XSJ9XX0KKyx7
InN0cnVjdCI6ICJ2cjo6SG1kTWF0cml4NDRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6
ICJtIiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF1bNF0ifV19CisseyJzdHJ1Y3QiOiAidnI6Okht
ZFZlY3RvcjNfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6
ICJmbG9hdCBbM10ifV19CisseyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjRfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF0ifV19CisseyJz
dHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjNkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
diIsICJmaWVsZHR5cGUiOiAiZG91YmxlIFszXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVj
dG9yMl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZs
b2F0IFsyXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kUXVhdGVybmlvbl90IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogInciLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoreyAiZmllbGRu
YW1lIjogIngiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAi
ZmllbGR0eXBlIjogImRvdWJsZSJ9LAoreyAiZmllbGRuYW1lIjogInoiLCAiZmllbGR0eXBlIjog
ImRvdWJsZSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kQ29sb3JfdCIsImZpZWxkcyI6IFsKK3sg
ImZpZWxkbmFtZSI6ICJyIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
ImciLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiYiIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kUXVhZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1l
IjogInZDb3JuZXJzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCBbNF0i
fV19CisseyJzdHJ1Y3QiOiAidnI6OkhtZFJlY3QyX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5h
bWUiOiAidlRvcExlZnQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0s
Cit7ICJmaWVsZG5hbWUiOiAidkJvdHRvbVJpZ2h0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6RGlzdG9ydGlvbkNvb3JkaW5hdGVz
X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicmZSZWQiLCAiZmllbGR0eXBlIjogImZs
b2F0IFsyXSJ9LAoreyAiZmllbGRuYW1lIjogInJmR3JlZW4iLCAiZmllbGR0eXBlIjogImZsb2F0
IFsyXSJ9LAoreyAiZmllbGRuYW1lIjogInJmQmx1ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJd
In1dfQorLHsic3RydWN0IjogInZyOjpUZXh0dXJlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5h
bWUiOiAiaGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ2b2lkICoifSwKK3sgImZpZWxkbmFtZSI6ICJl
VHlwZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRleHR1cmVUeXBlIn0sCit7ICJmaWVsZG5h
bWUiOiAiZUNvbG9yU3BhY2UiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn1d
fQorLHsic3RydWN0IjogInZyOjpUcmFja2VkRGV2aWNlUG9zZV90IiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogIm1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmciLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoreyAiZmllbGRuYW1lIjogInZWZWxvY2l0eSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2
QW5ndWxhclZlbG9jaXR5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9
LAoreyAiZmllbGRuYW1lIjogImVUcmFja2luZ1Jlc3VsdCIsICJmaWVsZHR5cGUiOiAiZW51bSB2
cjo6RVRyYWNraW5nUmVzdWx0In0sCit7ICJmaWVsZG5hbWUiOiAiYlBvc2VJc1ZhbGlkIiwgImZp
ZWxkdHlwZSI6ICJfQm9vbCJ9LAoreyAiZmllbGRuYW1lIjogImJEZXZpY2VJc0Nvbm5lY3RlZCIs
ICJmaWVsZHR5cGUiOiAiX0Jvb2wifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVGV4dHVyZUJvdW5k
c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInVNaW4iLCAiZmllbGR0eXBlIjogImZs
b2F0In0sCit7ICJmaWVsZG5hbWUiOiAidk1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sg
ImZpZWxkbmFtZSI6ICJ1TWF4IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogInZNYXgiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpWUlZ1
bGthblRleHR1cmVEYXRhX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9uSW1hZ2Ui
LCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9wRGV2aWNlIiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtEZXZpY2VfVCAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9w
UGh5c2ljYWxEZXZpY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Qg
KiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcEluc3RhbmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
VmtJbnN0YW5jZV9UICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BRdWV1ZSIsICJmaWVsZHR5cGUi
OiAic3RydWN0IFZrUXVldWVfVCAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9uUXVldWVGYW1pbHlJ
bmRleCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25XaWR0
aCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25IZWlnaHQi
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uRm9ybWF0Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fblNhbXBsZUNvdW50
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6RDNEMTJUZXh0
dXJlRGF0YV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fcFJlc291cmNlIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgSUQzRDEyUmVzb3VyY2UgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1f
cENvbW1hbmRRdWV1ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAq
In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTm9kZU1hc2siLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0NvbnRyb2xsZXJfdCIsImZpZWxkcyI6IFsK
K3sgImZpZWxkbmFtZSI6ICJidXR0b24iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsi
c3RydWN0IjogInZyOjpWUkV2ZW50X01vdXNlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUi
OiAieCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxk
dHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfU2Nyb2xsX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAieGRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogInlkZWx0YSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFt
ZSI6ICJyZXBlYXRDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3Qi
OiAidnI6OlZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUi
OiAiYkZpbmdlckRvd24iLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCit7ICJmaWVsZG5hbWUiOiAi
ZmxTZWNvbmRzRmluZ2VyRG93biIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFt
ZSI6ICJmVmFsdWVYRmlyc3QiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAiZlZhbHVlWUZpcnN0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
ImZWYWx1ZVhSYXciLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZh
bHVlWVJhdyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZl
bnRfTm90aWZpY2F0aW9uX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidWxVc2VyVmFs
dWUiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0
aW9uSWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2
ZW50X1Byb2Nlc3NfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJwaWQiLCAiZmllbGR0
eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAib2xkUGlkIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogImJGb3JjZWQiLCAiZmllbGR0eXBlIjogIl9C
b29sIn1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X092ZXJsYXlfdCIsImZpZWxkcyI6IFsK
K3sgImZpZWxkbmFtZSI6ICJvdmVybGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TdGF0dXNfdCIsImZpZWxkcyI6IFsKK3sgImZp
ZWxkbmFtZSI6ICJzdGF0dXNTdGF0ZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJz
dHJ1Y3QiOiAidnI6OlZSRXZlbnRfS2V5Ym9hcmRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFt
ZSI6ICJjTmV3SW5wdXQiLCAiZmllbGR0eXBlIjogImNoYXIgWzhdIn0sCit7ICJmaWVsZG5hbWUi
OiAidVVzZXJWYWx1ZSIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlZSRXZlbnRfSXBkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaXBkTWV0ZXJz
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9DaGFw
ZXJvbmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QcmV2aW91c1VuaXZlcnNl
IiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkN1cnJlbnRV
bml2ZXJzZSIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZS
RXZlbnRfUmVzZXJ2ZWRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDAi
LCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAicmVzZXJ2ZWQxIiwg
ImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9QZXJm
b3JtYW5jZVRlc3RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25GaWRlbGl0eUxl
dmVsIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVu
dF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiYlJl
c2V0QnlTeXN0ZW1NZW51IiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6VlJFdmVudF9TY3JlZW5zaG90X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaGFu
ZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInR5cGUiLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVl
bnNob3RQcm9ncmVzc190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInByb2dyZXNzIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9BcHBsaWNh
dGlvbkxhdW5jaF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5
cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ1bkFyZ3NIYW5kbGUiLCAiZmllbGR0
eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0VkaXRpbmdDYW1l
cmFTdXJmYWNlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAib3ZlcmxheUhhbmRsZSIs
ICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJuVmlzdWFsTW9kZSIs
ICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1blZSTWVzc2FnZU92
ZXJsYXlSZXNwb25zZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlZSRXZlbnRfUHJvcGVydHlfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJjb250
YWluZXIiLCAiZmllbGR0eXBlIjogIlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJwcm9wIiwgImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVBy
b3BlcnR5In1dfQorLHsic3RydWN0IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKK3sg
ImZpZWxkbmFtZSI6ICJyZXNlcnZlZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50
X1Jlc2VydmVkX3QifSwKK3sgImZpZWxkbmFtZSI6ICJjb250cm9sbGVyIiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQ29udHJvbGxlcl90In0sCit7ICJmaWVsZG5hbWUiOiAibW91
c2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Nb3VzZV90In0sCit7ICJmaWVs
ZG5hbWUiOiAic2Nyb2xsIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2Nyb2xs
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJwcm9jZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfUHJvY2Vzc190In0sCit7ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJvdmVybGF5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfT3Zlcmxh
eV90In0sCit7ICJmaWVsZG5hbWUiOiAic3RhdHVzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OlZSRXZlbnRfU3RhdHVzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJrZXlib2FyZCIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0tleWJvYXJkX3QifSwKK3sgImZpZWxkbmFtZSI6ICJp
cGQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9JcGRfdCJ9LAoreyAiZmllbGRu
YW1lIjogImNoYXBlcm9uZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0NoYXBl
cm9uZV90In0sCit7ICJmaWVsZG5hbWUiOiAicGVyZm9ybWFuY2VUZXN0IiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QifSwKK3sgImZpZWxkbmFtZSI6
ICJ0b3VjaFBhZE1vdmUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ub3VjaFBh
ZE1vdmVfdCJ9LAoreyAiZmllbGRuYW1lIjogInNlYXRlZFplcm9Qb3NlUmVzZXQiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJzY3JlZW5zaG90IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRf
U2NyZWVuc2hvdF90In0sCit7ICJmaWVsZG5hbWUiOiAic2NyZWVuc2hvdFByb2dyZXNzIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJhcHBsaWNhdGlvbkxhdW5jaCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZy
OjpWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QifSwKK3sgImZpZWxkbmFtZSI6ICJjYW1lcmFT
dXJmYWNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1
cmZhY2VfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1lc3NhZ2VPdmVybGF5IiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCJ9LAoreyAiZmllbGRuYW1lIjog
InByb3BlcnR5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvcGVydHlfdCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1l
IjogImV2ZW50VHlwZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJ0cmFja2VkRGV2aWNlSW5kZXgiLCAiZmllbGR0eXBlIjogIlRyYWNrZWREZXZpY2VJbmRleF90
In0sCit7ICJmaWVsZG5hbWUiOiAiZXZlbnRBZ2VTZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoreyAiZmllbGRuYW1lIjogImRhdGEiLCAiZmllbGR0eXBlIjogIlZSRXZlbnRfRGF0YV90
In1dfQorLHsic3RydWN0IjogInZyOjpIaWRkZW5BcmVhTWVzaF90IiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogInBWZXJ0ZXhEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjJfdCAqIn0sCit7ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVyQXhp
c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBlIjogImZsb2F0
In0sCit7ICJmaWVsZG5hbWUiOiAieSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1
Y3QiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlMDAxX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5h
bWUiOiAidW5QYWNrZXROdW0iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAidWxCdXR0b25QcmVzc2VkIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmll
bGRuYW1lIjogInVsQnV0dG9uVG91Y2hlZCIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJyQXhpcyIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRyb2xs
ZXJBeGlzX3QgWzVdIn1dfQorLHsic3RydWN0IjogInZyOjpDb21wb3NpdG9yX092ZXJsYXlTZXR0
aW5ncyIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJzaXplIiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogImN1cnZlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wi
fSwKK3sgImZpZWxkbmFtZSI6ICJhbnRpYWxpYXMiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCit7
ICJmaWVsZG5hbWUiOiAic2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5h
bWUiOiAiZGlzdGFuY2UiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAi
YWxwaGEiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidU9mZnNldCIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ2T2Zmc2V0IiwgImZpZWxk
dHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInVTY2FsZSIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ2U2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0s
Cit7ICJmaWVsZG5hbWUiOiAiZ3JpZERpdnMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAiZ3JpZFdpZHRoIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRu
YW1lIjogImdyaWRTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJ0cmFuc2Zvcm0iLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCJ9XX0K
Kyx7InN0cnVjdCI6ICJ2cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogImVGcmFtZVR5cGUiLCAiZmllbGR0eXBlIjogImVudW0gdnI6
OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJuV2lkdGgiLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibkhlaWdodCIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJuQnl0ZXNQZXJQaXhlbCIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJuRnJhbWVTZXF1ZW5jZSIs
ICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJzdGFuZGluZ1RyYWNr
ZWREZXZpY2VQb3NlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3Nl
X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OkFwcE92ZXJyaWRlS2V5c190IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogInBjaEtleSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICJmaWVsZG5hbWUiOiAicGNoVmFsdWUiLCAiZmllbGR0eXBlIjogImNvbnN0IGNoYXIgKiJ9XX0K
Kyx7InN0cnVjdCI6ICJ2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyIsImZpZWxkcyI6IFsKK3sg
ImZpZWxkbmFtZSI6ICJtX25TaXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmll
bGRuYW1lIjogIm1fbkZyYW1lSW5kZXgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJm
aWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1NaXNQcmVzZW50ZWQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5
cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25SZXByb2plY3Rpb25GbGFncyIs
ICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsU3lzdGVtVGlt
ZUluU2Vjb25kcyIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAibV9m
bFByZVN1Ym1pdEdwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
Im1fZmxQb3N0U3VibWl0R3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5h
bWUiOiAibV9mbFRvdGFsUmVuZGVyR3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxv
YXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zIiwgImZpZWxk
dHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9ySWRsZUNwdU1z
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDbGllbnRGcmFt
ZUludGVydmFsTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9m
bFByZXNlbnRDYWxsQ3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAibV9mbFdhaXRGb3JQcmVzZW50Q3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAibV9mbFN1Ym1pdEZyYW1lTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7
ICJmaWVsZG5hbWUiOiAibV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxOZXdQb3Nlc1JlYWR5TXMiLCAiZmllbGR0eXBl
IjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbE5ld0ZyYW1lUmVhZHlNcyIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0
YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENvbXBv
c2l0b3JVcGRhdGVFbmRNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJtX2ZsQ29tcG9zaXRvclJlbmRlclN0YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7
ICJmaWVsZG5hbWUiOiAibV9IbWRQb3NlIiwgImZpZWxkdHlwZSI6ICJ2cjo6VHJhY2tlZERldmlj
ZVBvc2VfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9uUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHMiLCAiZmllbGR0eXBl
IjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3Rl
ZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25O
dW1GcmFtZVByZXNlbnRzT25TdGFydHVwIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0
YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVt
TG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25O
dW1GcmFtZVByZXNlbnRzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmci
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtVGltZWRP
dXQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJh
bWVQcmVzZW50c1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRu
YW1lIjogIm1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0Iiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJPdmVybGF5SW50
ZXJzZWN0aW9uUGFyYW1zX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlNvdXJjZSIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJ2RGlyZWN0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAor
eyAiZmllbGRuYW1lIjogImVPcmlnaW4iLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIn1dfQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rp
b25SZXN1bHRzX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlBvaW50IiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZOb3Jt
YWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5h
bWUiOiAidlVWcyIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJmRGlzdGFuY2UiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3Ry
dWN0IjogInZyOjpJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAibV9mbFRvcExlZnRYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmll
bGRuYW1lIjogIm1fZmxUb3BMZWZ0WSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJtX2ZsV2lkdGgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAibV9mbEhlaWdodCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6
OkludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJt
X2ZsQ2VudGVyWCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2Zs
Q2VudGVyWSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUmFk
aXVzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6KGFub255bW91
cykiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9SZWN0YW5nbGUiLCAiZmllbGR0eXBl
IjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90In0sCit7ICJmaWVsZG5h
bWUiOiAibV9DaXJjbGUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFz
a0NpcmNsZV90In1dfQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
UHJpbWl0aXZlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9uUHJpbWl0aXZlVHlw
ZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVUeXBlIn0sCit7ICJmaWVsZG5hbWUiOiAibV9QcmltaXRpdmUiLCAiZmllbGR0eXBlIjog
IlZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90In1dfQorLHsic3RydWN0
IjogInZyOjpSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90IiwiZmllbGRzIjogWworeyAiZmll
bGRuYW1lIjogIm1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWwiLCAiZmllbGR0eXBlIjog
InN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1Rv
Q29tcG9uZW50TG9jYWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9
LAoreyAiZmllbGRuYW1lIjogInVQcm9wZXJ0aWVzIiwgImZpZWxkdHlwZSI6ICJWUkNvbXBvbmVu
dFByb3BlcnRpZXMifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1ZlcnRleF90Iiwi
ZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInZQb3NpdGlvbiIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2Tm9ybWFsIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInJmVGV4
dHVyZUNvb3JkIiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbMl0ifV19CisseyJzdHJ1Y3QiOiAidnI6
OlJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1
bldpZHRoIiwgImZpZWxkdHlwZSI6ICJ1aW50MTZfdCJ9LAoreyAiZmllbGRuYW1lIjogInVuSGVp
Z2h0IiwgImZpZWxkdHlwZSI6ICJ1aW50MTZfdCJ9LAoreyAiZmllbGRuYW1lIjogInJ1YlRleHR1
cmVNYXBEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCB1aW50OF90ICoifV19CisseyJzdHJ1Y3Qi
OiAidnI6OlJlbmRlck1vZGVsX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiclZlcnRl
eERhdGEiLCAiZmllbGR0eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4
X3QgKiJ9LAoreyAiZmllbGRuYW1lIjogInVuVmVydGV4Q291bnQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAickluZGV4RGF0YSIsICJmaWVsZHR5cGUiOiAiY29u
c3QgdWludDE2X3QgKiJ9LAoreyAiZmllbGRuYW1lIjogInVuVHJpYW5nbGVDb3VudCIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJkaWZmdXNlVGV4dHVyZUlkIiwg
ImZpZWxkdHlwZSI6ICJUZXh0dXJlSURfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9k
ZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJi
U2Nyb2xsV2hlZWxWaXNpYmxlIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6
ICJ2cjo6Tm90aWZpY2F0aW9uQml0bWFwX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
bV9wSW1hZ2VEYXRhIiwgImZpZWxkdHlwZSI6ICJ2b2lkICoifSwKK3sgImZpZWxkbmFtZSI6ICJt
X25XaWR0aCIsICJmaWVsZHR5cGUiOiAiaW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhl
aWdodCIsICJmaWVsZHR5cGUiOiAiaW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkJ5dGVz
UGVyUGl4ZWwiLCAiZmllbGR0eXBlIjogImludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OkNP
cGVuVlJDb250ZXh0IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fcFZSU3lzdGVtIiwg
ImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU3lzdGVtICoifSwKK3sgImZpZWxkbmFtZSI6ICJt
X3BWUkNoYXBlcm9uZSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqIn0s
Cit7ICJmaWVsZG5hbWUiOiAibV9wVlJDaGFwZXJvbmVTZXR1cCIsICJmaWVsZHR5cGUiOiAiY2xh
c3MgdnI6OklWUkNoYXBlcm9uZVNldHVwICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUkNvbXBv
c2l0b3IiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX3BWUk92ZXJsYXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJPdmVy
bGF5ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlJlc291cmNlcyIsICJmaWVsZHR5cGUiOiAi
Y2xhc3MgdnI6OklWUlJlc291cmNlcyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJSZW5kZXJN
b2RlbHMiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKiJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fcFZSRXh0ZW5kZWREaXNwbGF5IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2
cjo6SVZSRXh0ZW5kZWREaXNwbGF5ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlNldHRpbmdz
IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2V0dGluZ3MgKiJ9LAoreyAiZmllbGRuYW1l
IjogIm1fcFZSQXBwbGljYXRpb25zIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQXBwbGlj
YXRpb25zICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlRyYWNrZWRDYW1lcmEiLCAiZmllbGR0
eXBlIjogImNsYXNzIHZyOjpJVlJUcmFja2VkQ2FtZXJhICoifSwKK3sgImZpZWxkbmFtZSI6ICJt
X3BWUlNjcmVlbnNob3RzIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMg
KiJ9XX0KK10sCisibWV0aG9kcyI6W3sKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0
ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFByb2plY3Rpb25NYXRyaXgiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVW
UkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZOZWFyWiIgLCJwYXJhbXR5cGUiOiAiZmxv
YXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmRmFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvamVjdGlvblJhdyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBmTGVmdCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBmUmlnaHQiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZlRvcCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBmQm90dG9tIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1l
IjogIkNvbXB1dGVEaXN0b3J0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlUiICwicGFyYW10eXBl
IjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlYiICwicGFyYW10eXBlIjogImZs
b2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicERpc3RvcnRpb25Db29yZGluYXRlcyIgLCJw
YXJhbXR5cGUiOiAic3RydWN0IHZyOjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldEV5ZVRvSGVhZFRyYW5zZm9ybSIsCisgICAgICAgInJldHVybnR5
cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldFRpbWVTaW5jZUxhc3RWc3luYyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGZTZWNvbmRzU2luY2VMYXN0VnN5bmMiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwdWxGcmFtZUNvdW50ZXIiICwicGFyYW10eXBlIjogInVpbnQ2
NF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5
c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RDNEOUFkYXB0ZXJJbmRleCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXREWEdJT3V0cHV0SW5mbyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicG5BZGFwdGVySW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc0Rpc3BsYXlPbkRlc2t0b3AiLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5
c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RGlzcGxheVZpc2liaWxpdHkiLAorICAg
ICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogImJJc1Zpc2libGVPbkRlc2t0b3AiICwicGFyYW10eXBlIjogImJvb2wifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZU9yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlByZWRpY3RlZFNlY29uZHNUb1Bo
b3RvbnNGcm9tTm93IiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBUcmFja2VkRGV2aWNlUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJhY2tlZERl
dmljZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZp
Y2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZVBvc2VB
cnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJSZXNldFNlYXRlZFplcm9Qb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRT
b3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
VHJhY2tlZERldmljZUNsYXNzIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VDbGFz
cyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5IiAs
ImFycmF5X2NvdW50IjogInVuVHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFRGV2aWNlQWN0aXZpdHlMZXZlbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkFwcGx5VHJhbnNmb3JtIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwT3V0cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpU
cmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERl
dmljZVBvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBv
c2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUi
OiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVRyYWNrZWRDb250cm9sbGVyUm9sZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9s
bGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVUcmFja2VkQ29udHJvbGxlclJvbGUiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlQ2xhc3Mi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFj
a2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFy
YW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUi
OiAiZmxvYXQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
RGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERl
dmljZVByb3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2
aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmlj
ZVByb3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50
NjRfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZp
Y2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNl
UHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjog
InZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRN
YXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRNYXRyaXgzNF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZy
OjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFs
dWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQ
cm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvcEVycm9yTmFtZUZy
b21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0
RXZlbnQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dEV2ZW50
V2l0aFBvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VQb3NlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRFdmVudFR5cGVOYW1l
RnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVR5cGUiICwicGFyYW10eXBlIjog
InZyOjpFVlJFdmVudFR5cGUifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlkZGVuQXJlYU1l
c2giLAorICAgICAgICJyZXR1cm50eXBlIjogInN0cnVjdCB2cjo6SGlkZGVuQXJlYU1lc2hfdCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFSGlkZGVuQXJlYU1lc2hUeXBlIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldENvbnRyb2xsZXJTdGF0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogInZyOjpWUkNv
bnRyb2xsZXJTdGF0ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJT
dGF0ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJT
dGF0ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFy
YW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlRyaWdnZXJIYXB0aWNQdWxzZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9s
bGVyRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXhpc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVzRHVyYXRpb25NaWNyb1NlYyIgLCJwYXJhbXR5
cGUiOiAidW5zaWduZWQgc2hvcnQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QnV0dG9uSWRO
YW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUJ1dHRvbklkIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSQnV0dG9uSWQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJv
bGxlckF4aXNUeXBlTmFtZUZyb21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBj
aGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVBeGlz
VHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJDYXB0dXJlSW5wdXRGb2N1cyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
Ym9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlSW5wdXRGb2N1cyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3Mi
LAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRHJpdmVyRGVidWdSZXF1
ZXN0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVx
dWVzdCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoUmVzcG9uc2VCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuUmVzcG9uc2VCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJQZXJmb3JtRmlybXdhcmVVcGRhdGUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJGaXJtd2FyZUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVk
Z2VRdWl0X0V4aXRpbmciLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
QWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQi
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V2luZG93Qm91bmRzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
blgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBu
WSIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5X
aWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldEV5ZU91dHB1dFZpZXdwb3J0IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXll
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5Y
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5Z
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5X
aWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldERYR0lPdXRwdXRJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0
ZXJJbmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicG5BZGFwdGVyT3V0cHV0SW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0iLAorICAg
ICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZUNhbWVyYUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZS
VHJhY2tlZENhbWVyYUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIYXNDYW1l
cmEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIg
LCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicEhhc0NhbWVyYSIgLCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFGcmFtZVNpemUiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwbkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
VHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhSW50cmluc2lj
cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAs
InBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGb2NhbExlbmd0aCIgLCJwYXJhbXR5
cGUiOiAidnI6OkhtZFZlY3RvcjJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENlbnRl
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRDYW1lcmFQcm9qZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10
eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiZmxaTmVhciIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJmbFpGYXIiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicFByb2plY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpIbWRNYXRyaXg0NF90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJh
bXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2Ft
ZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIg
LCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlciIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZy
OjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVU
eXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBGcmFtZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10
eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2Ft
ZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRleHR1cmVCb3VuZHMiICwicGFyYW10eXBl
IjogInZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5X
aWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpU
cmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZv
aWQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXci
ICwicGFyYW10eXBlIjogInZvaWQgKioifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVI
ZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVh
bVRleHR1cmVHTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNr
ZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJ
ZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1l
SGVhZGVyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxl
YXNlVmlkZW9TdHJlYW1UZXh0dXJlR0wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJU
cmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogImhUcmFja2VkQ2FtZXJhIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10eXBl
IjogInZyOjpnbFVJbnRfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBZGRBcHBsaWNh
dGlvbk1hbmlmZXN0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25F
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBw
bGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJiVGVtcG9yYXJ5IiAsInBhcmFtdHlwZSI6ICJib29sIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0
RnVsbFBhdGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJJc0FwcGxpY2F0aW9uSW5zdGFsbGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hB
cHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRBcHBsaWNhdGlvbkNvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50
MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcGxpY2F0aW9uSW5kZXgiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVy
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5BcHBLZXlCdWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJh
bXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZm
ZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBw
S2V5QnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJMYXVuY2hBcHBsaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24iLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hUZW1wbGF0ZUFwcEtleSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTmV3QXBwS2V5
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
S2V5cyIgLCJhcnJheV9jb3VudCI6ICJ1bktleXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVj
dCB2cjo6QXBwT3ZlcnJpZGVLZXlzX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuS2V5
cyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
TGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNh
dGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxhdW5jaERhc2hib2FyZE92ZXJsYXkiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5jZWxBcHBs
aWNhdGlvbkxhdW5jaCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSWRlbnRpZnlBcHBs
aWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lk
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFw
cEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1
aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1
cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNh
dGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJp
bmciLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVQcm9wZXJ0eSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uUHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hQcm9wZXJ0eVZhbHVlQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAi
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wiLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25Qcm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dWludDY0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiZVByb3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0
eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpF
VlJBcHBsaWNhdGlvbkVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0QXBw
bGljYXRpb25BdXRvTGF1bmNoIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGlj
YXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJiQXV0b0xhdW5jaCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2giLAorICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
QXBwS2V5QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkFwcEtleUJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMiLAor
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6
ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bk1pbWVUeXBlc0J1ZmZlciIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBw
bGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1p
bWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBs
aWNhdGlvbkxhdW5jaEFyZ3VtZW50cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuSGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3Mi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXJncyIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
U3RhcnRpbmdBcHBsaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxp
Y2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEFwcEtleUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5BcHBLZXlCdWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYW5zaXRpb25TdGF0ZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIgorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVHJhbnNpdGlv
blN0YXRlTmFtZUZyb21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInN0YXRlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiSXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBw
bGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hJbnRlcm5hbFByb2Nlc3Mi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hCaW5hcnlQYXRoIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcmd1
bWVudHMiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaFdvcmtpbmdEaXJlY3RvcnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25z
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbGlicmF0aW9u
U3RhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpDaGFwZXJvbmVDYWxpYnJhdGlvblN0
YXRlIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldFBsYXlBcmVhU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNp
emVYIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNp
emVaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFBsYXlBcmVhUmVjdCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRRdWFkX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRJbmZv
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFNjZW5lQ29s
b3IiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZENvbG9yX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm91bmRzQ29sb3IiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBPdXRwdXRDb2xvckFycmF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZENvbG9yX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5OdW1PdXRwdXRDb2xvcnMi
ICwicGFyYW10eXBlIjogImludCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsQ29sbGlzaW9u
Qm91bmRzRmFkZURpc3RhbmNlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBPdXRwdXRDYW1lcmFDb2xvciIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpI
bWRDb2xvcl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQXJlQm91bmRzVmlzaWJsZSIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUJvdW5kc1Zp
c2libGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImJGb3JjZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0
dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbW1pdFdvcmtpbmdDb3B5IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJjb25maWdGaWxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0Zp
bGUifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBl
cm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZXZlcnRXb3JraW5nQ29weSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQ
bGF5QXJlYVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBTaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxv
YXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBTaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxv
YXQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hh
cGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVJl
Y3QiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1k
UXVhZF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsIm91dF9hcnJh
eV9jb3VudCI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1
YWRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVD
b2xsaXNpb25Cb3VuZHNJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0
X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
SG1kUXVhZF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1
Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjog
InN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0V29ya2luZ1BsYXlBcmVhU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVgiICwicGFy
YW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVoiICwicGFyYW10
eXBlIjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJhcnJh
eV9jb3VudCI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVh
ZF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1Nl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3Qg
dnI6OkhtZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFdv
cmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNv
bnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiUmVsb2FkRnJvbURpc2siLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwicGFy
YW10eXBlIjogInZyOjpFQ2hhcGVyb25lQ29uZmlnRmlsZSJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5
cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8iLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBUYWdzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuVGFnQ291bnQiICwicGFyYW10eXBl
IjogInVpbnQ4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVGFnQ291bnQiICwicGFy
YW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2
ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGFnc0J1ZmZlciIg
LCJvdXRfYXJyYXlfY291bnQiOiAicHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1blRhZ0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BoeXNp
Y2FsQm91bmRzSW5mbyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2Nv
dW50IjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlUGh5c2ljYWxC
b3VuZHNJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2Nv
dW50IjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRXhwb3J0TGl2ZVRv
QnVmZmVyIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJw
YXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5CdWZmZXJMZW5n
dGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVy
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJu
SW1wb3J0RmxhZ3MiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJTZXRUcmFja2luZ1NwYWNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldFRyYWNraW5nU3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiV2FpdEdldFBvc2VzIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5
X2NvdW50IjogInVuUmVuZGVyUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2
cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5k
ZXJQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwR2FtZVBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJy
YXlDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlcyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFJlbmRlclBvc2VBcnJheSIgLCJh
cnJheV9jb3VudCI6ICJ1blJlbmRlclBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1
Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
UmVuZGVyUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicEdhbWVQb3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5HYW1lUG9z
ZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2Vf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFy
YW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0UG9z
ZUZvclRyYWNrZWREZXZpY2VJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNv
bXBvc2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dFBvc2UiICwicGFyYW10eXBlIjogInN0
cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cE91dHB1dEdhbWVQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQ
b3NlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3VibWl0IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRleHR1cmUiICwicGFyYW10eXBlIjogImNvbnN0IHN0
cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQm91bmRzIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJuU3VibWl0RmxhZ3MiICwicGFyYW10eXBlIjogInZyOjpFVlJT
dWJtaXRGbGFncyJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJMYXN0U3VibWl0dGVk
RnJhbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvc3RQ
cmVzZW50SGFuZG9mZiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0RnJhbWVUaW1pbmciLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBl
IjogInN0cnVjdCB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5GcmFtZXNBZ28iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWluZ3MiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
VGltaW5nIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFtZXMiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21w
b3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWVSZW1haW5pbmciLAor
ICAgICAgICJyZXR1cm50eXBlIjogImZsb2F0IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdW11bGF0aXZl
U3RhdHMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBTdGF0cyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
blN0YXRzU2l6ZUluQnl0ZXMiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJGYWRlVG9Db2xvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMiICwi
cGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10
eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBl
IjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6
ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlw
ZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50RmFkZUNvbG9y
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFt
dHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRlR3JpZCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZlNlY29uZHMiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiYkZhZGVJbiIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0Q3VycmVudEdyaWRBbHBoYSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
ZmxvYXQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlNldFNreWJveE92ZXJyaWRlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZXMiICwiYXJyYXlfY291bnQiOiAidW5UZXh0dXJl
Q291bnQiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNsZWFyU2t5Ym94T3ZlcnJpZGUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JCcmluZ1Rv
RnJvbnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBv
c2l0b3JHb1RvQmFjayIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiQ29tcG9zaXRvclF1aXQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIklzRnVsbHNjcmVlbiIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ1aW50MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGFzdEZyYW1lUmVuZGVyZXIiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5SZW5kZXJTY2Vu
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd01pcnJv
cldpbmRvdyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlk
ZU1pcnJvcldpbmRvdyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiSXNNaXJyb3JXaW5kb3dWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJDb21wb3NpdG9yRHVtcEltYWdlcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VJbnRlcmxl
YXZlZFJlcHJvamVjdGlvbk9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiT3ZlcnJpZGUiICwicGFyYW10
eXBlIjogImJvb2wifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZvcmNlUmVjb25uZWN0UHJv
Y2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3VzcGVu
ZFJlbmRlcmluZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYlN1c3BlbmQiICwicGFyYW10eXBlIjogImJv
b2wifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVEM0QxMSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6
OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2Ui
ICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXciICwicGFyYW10eXBlIjogInZvaWQgKioifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRNaXJyb3JUZXh0dXJlR0wiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJ
bnRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGdsU2hhcmVkVGV4dHVyZUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIlJlbGVhc2VTaGFyZWRHTFRleHR1cmUiLAorICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImdsVGV4dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xVSW50X3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJnbFNoYXJlZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNo
YXJlZFRleHR1cmVIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9ja0dMU2hh
cmVkVGV4dHVyZUZvckFjY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xT
aGFyZWRUZXh0dXJlSGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGth
bkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50
MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFs
dWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQi
LAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwUGh5c2ljYWxEZXZpY2UiICwicGFyYW10eXBlIjogInN0
cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZh
bHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiRmluZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaE92ZXJsYXlLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlT3Zlcmxh
eSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJEZXN0cm95T3ZlcmxheSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEhpZ2hR
dWFsaXR5T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldEhpZ2hRdWFsaXR5T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5S2V5IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRf
c3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheU5hbWUiLAorICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJT
aXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRPdmVybGF5SW1hZ2VEYXRhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB2QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2
b2lkICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuV2lkdGgiICwicGFyYW10
eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5IZWlnaHQiICwi
cGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJs
YXlFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAq
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
U2V0T3ZlcmxheVJlbmRlcmluZ1BpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blBJRCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlSZW5kZXJpbmdQaWQiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZsYWciLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlG
bGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJiRW5hYmxlZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0T3ZlcmxheUZsYWciLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVy
bGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVs
T3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5RmxhZ3MifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwYkVuYWJsZWQiICwicGFyYW10
eXBlIjogImJvb2wgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUNvbG9yIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZS
ZWQiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkdyZWVu
IiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZCbHVlIiAs
InBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUNv
bG9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBmUmVkIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGZHcmVlbiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBmQmx1ZSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0T3ZlcmxheUFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImZBbHBoYSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlBbHBoYSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZkFscGhhIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4ZWxBc3BlY3QiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlRl
eGVsQXNwZWN0IiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0T3ZlcmxheVRleGVsQXNwZWN0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zl
cmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlTb3J0T3JkZXIiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Tb3J0T3Jk
ZXIiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRP
dmVybGF5U29ydE9yZGVyIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInB1blNvcnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZldpZHRoSW5N
ZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRP
dmVybGF5V2lkdGhJbk1ldGVycyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJh
bmdlSW5NZXRlcnMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZk1pbkRpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZk1heERpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBl
IjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBmTWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmTWF4RGlzdGFuY2VJbk1ldGVycyIg
LCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3Zlcmxh
eVRleHR1cmVDb2xvclNwYWNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVUZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6
OkVDb2xvclNwYWNlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUNv
bG9yU3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGVUZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNw
YWNlICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBP
dmVybGF5VGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUlRl
eHR1cmVCb3VuZHNfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVy
ZUJvdW5kcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwT3ZlcmxheVRleHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
VlJUZXh0dXJlQm91bmRzX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRy
YW5zZm9ybVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGVUcmFuc2Zvcm1UeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5
VHJhbnNmb3JtVHlwZSAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZVRyYWNraW5nT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5n
VW5pdmVyc2VPcmlnaW4ifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmln
aW5Ub092ZXJsYXlUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1k
TWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3Jt
QWJzb2x1dGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmln
aW5Ub092ZXJsYXlUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZp
Y2VUb092ZXJsYXlUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1k
TWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3Jt
VHJhY2tlZERldmljZVJlbGF0aXZlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zl
cmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInB1blRyYWNrZWREZXZpY2UiICwicGFyYW10eXBlIjogInZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRy
YWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21w
b25lbnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1bkRldmlj
ZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50TmFtZVNpemUiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93T3ZlcmxheSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhpZGVP
dmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiSXNPdmVybGF5VmlzaWJsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4i
ICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImNvb3JkaW5hdGVzSW5PdmVybGF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZFZlY3RvcjJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFuc2Zvcm0i
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJQb2xsTmV4dE92ZXJsYXlFdmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
Ym9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVy
bGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRXZlbnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJFdmVu
dF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bmNiVlJFdmVudCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJbnB1dE1ldGhv
ZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwZUlucHV0TWV0aG9kIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1l
dGhvZCIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUlucHV0TWV0aG9kIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5TW91c2VTY2FsZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5
SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJh
bXR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2V0T3ZlcmxheU1vdXNlU2NhbGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicHZlY01vdXNlU2NhbGUiICwicGFyYW10eXBlIjogImNv
bnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNv
bXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBQYXJhbXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJPdmVy
bGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBSZXN1
bHRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3Vs
dHNfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIYW5kbGVDb250cm9sbGVyT3ZlcmxheUlu
dGVyYWN0aW9uQXNNb3VzZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc0hvdmVyVGFyZ2V0T3ZlcmxheSIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEdhbWVwYWRGb2N1c092
ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxOZXdGb2N1c092ZXJsYXkiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU5laWdoYm9yIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRGlyZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RU92ZXJsYXlEaXJlY3Rpb24ifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bEZyb20iICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsVG8iICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVEaXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3Zlcmxh
eURpcmVjdGlvbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVy
bGF5VGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0
dXJlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJPdmVybGF5VGV4dHVyZSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92
ZXJsYXlSYXciLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHZCdWZmZXIiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5EZXB0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlGcm9tRmlsZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5
SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlUGF0aCIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4
dHVyZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwTmF0aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBOYXRpdmVUZXh0dXJlUmVmIiAsInBhcmFtdHlwZSI6ICJ2b2lk
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE5hdGl2ZUZvcm1hdCIgLCJwYXJh
bXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBBUElUeXBlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRleHR1cmVUeXBlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpWUlRleHR1cmVCb3VuZHNfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlTmF0
aXZlT3ZlcmxheUhhbmRsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVy
bGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9p
ZCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZVNpemUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFdpZHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhl
aWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
Q3JlYXRlRGFzaGJvYXJkT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoT3ZlcmxheUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1haW5IYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRo
dW1ibmFpbEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIklzRGFzaGJvYXJkVmlzaWJsZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RGFzaGJvYXJkT3ZlcmxheVNj
ZW5lUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUHJvY2Vz
c0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJT
aG93RGFzaGJvYXJkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5VG9TaG93IiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFByaW1hcnlE
YXNoYm9hcmREZXZpY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNl
SW5kZXhfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd0tleWJvYXJkIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlSW5wdXRNb2RlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5w
dXRNb2RlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUxpbmVJbnB1dE1vZGUiICwicGFyYW10
eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoRGVzY3JpcHRpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuQ2hhck1heCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hFeGlzdGluZ1RleHQiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJVc2VNaW5pbWFsTW9kZSIgLCJw
YXJhbXR5cGUiOiAiYm9vbCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVVc2VyVmFsdWUiICwi
cGFyYW10eXBlIjogInVpbnQ2NF90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9h
cmRGb3JPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJ
bnB1dE1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hEZXNjcmlwdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAs
InBhcmFtdHlwZSI6ICJib29sIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIg
LCJwYXJhbXR5cGUiOiAidWludDY0X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEtleWJv
YXJkVGV4dCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFRleHQiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJjY2hUZXh0
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZUtl
eWJvYXJkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXli
b2FyZFRyYW5zZm9ybUFic29sdXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4i
ICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0iICwicGFy
YW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJhdm9pZFJlY3QiICwicGFyYW10eXBlIjogInN0cnVj
dCB2cjo6SG1kUmVjdDJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUludGVy
c2VjdGlvbk1hc2siLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicE1hc2tQcmltaXRpdmVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZS
T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5OdW1NYXNrUHJpbWl0aXZlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1blByaW1pdGl2ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5RmxhZ3MiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEZsYWdzIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWVzc2Fn
ZU92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpWUk1lc3NhZ2VPdmVybGF5UmVz
cG9uc2UiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFRl
eHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaENhcHRpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaEJ1dHRvbjBUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hCdXR0b24xVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMlRleHQiICwicGFy
YW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRv
bjNUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiTG9hZFJlbmRlck1vZGVsX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSUmVuZGVyTW9kZWxFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwcFJlbmRlck1vZGVsIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX3QgKioifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiRnJlZVJlbmRlck1vZGVsIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyTW9kZWwiICwicGFy
YW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkxvYWRUZXh0dXJlX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZSUmVuZGVyTW9kZWxFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidGV4dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwcFRleHR1cmUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
UmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICoqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkZyZWVUZXh0dXJlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAi
c3RydWN0IHZyOjpSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJMb2FkVGV4dHVyZUQzRDExX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidGV4dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRDNEMTFEZXZpY2UiICwicGFyYW10eXBlIjogInZv
aWQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10
eXBlIjogInZvaWQgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZEludG9UZXh0
dXJlRDNEMTFfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2Rl
bEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0
dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBEc3RUZXh0dXJlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiRnJlZVRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDEx
VGV4dHVyZTJEIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UmVuZGVyTW9kZWxOYW1lIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJf
dCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJN
b2RlbEluZGV4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjog
ImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUmVuZGVyTW9kZWxOYW1lTGVuIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRS
ZW5kZXJNb2RlbENvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRDb21wb25lbnRDb3VudCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJl
bmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudE5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJvdXRfc3RyaW5n
IjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
Q29tcG9uZW50TmFtZUxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50QnV0dG9uTWFzayIsCisgICAgICAgInJldHVybnR5
cGUiOiAidWludDY0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFJlbmRl
ck1vZGVsTmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29t
cG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25l
bnRSZW5kZXJNb2RlbE5hbWVMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFN0YXRlIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10
eXBlIjogImNvbnN0IHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwU3RhdGUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9k
ZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENv
bXBvbmVudFN0YXRlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX0NvbXBv
bmVudFN0YXRlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZW5kZXJNb2RlbEhh
c0NvbXBvbmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25l
bnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwiLAorICAgICAgICJyZXR1cm50eXBl
IjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFRodW1ibmFpbFVSTCIgLCJvdXRfc3RyaW5nIjogIiAiICwi
cGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVGh1bWJuYWls
VVJMTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE9yaWdpbmFsUGF0aCIgLCJvdXRf
c3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuT3JpZ2luYWxQYXRoTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2Rl
bEVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxFcnJv
ck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5
cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkNyZWF0ZU5vdGlmaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5v
dGlmaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsVXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1
aW50NjRfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJOb3RpZmljYXRpb25UeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAic3R5
bGUiICwicGFyYW10eXBlIjogInZyOjpFVlJOb3RpZmljYXRpb25TdHlsZSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBJbWFnZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpOb3Rp
ZmljYXRpb25CaXRtYXBfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE5vdGlmaWNhdGlv
bklkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJOb3RpZmljYXRpb25JZCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJOb3RpZmljYXRpb25zIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJSZW1vdmVOb3RpZmljYXRpb24iLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJOb3RpZmljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAibm90aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZyOjpWUk5v
dGlmaWNhdGlvbklkIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2V0dGluZ3NFcnJvck5h
bWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJTZXR0aW5nc0Vycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3luYyIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiYkZvcmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJy
b3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0
dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEJvb2wiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJiVmFsdWUiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGlu
Z3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0SW50MzIiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuVmFsdWUiICwicGFyYW10eXBlIjogImludDMy
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RmxvYXQiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFZhbHVlIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBl
IjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRT
dHJpbmciLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldEJvb2wiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFy
YW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRp
bmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SW50MzIiLAorICAgICAgICJyZXR1cm50eXBlIjogImlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNl
Y3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NF
cnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
ZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RmxvYXQiLAorICAgICAgICJyZXR1
cm50eXBlIjogImZsb2F0IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hTZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVW
UlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmluZyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJp
bmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5WYWx1ZUxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiUmVtb3ZlU2VjdGlvbiIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
U2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlJlbW92ZUtleUluU2VjdGlvbiIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJT
ZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZXF1ZXN0U2NyZWVu
c2hvdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlw
ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFt
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiSG9va1NjcmVlbnNob3QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5z
aG90RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBT
dXBwb3J0ZWRUeXBlcyIgLCJhcnJheV9jb3VudCI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgdnI6OkVWUlNjcmVlbnNob3RUeXBlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJu
dW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAiaW50In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UlNjcmVlbnNob3RUeXBlIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVZSU2NyZWVuc2hvdEVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3Jl
ZW5zaG90UHJvcGVydHlGaWxlbmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmaWxlbmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5z
aG90UHJvcGVydHlGaWxlbmFtZXMifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlbmFt
ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImNjaEZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNo
b3RFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiVXBkYXRlU2NyZWVuc2hvdFBy
b2dyZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZmxQcm9ncmVzcyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJUYWtlU3RlcmVvU2NyZWVuc2hvdCIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZp
ZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3VibWl0U2NyZWVuc2hvdCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAic2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlNjcmVlbnNob3RIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaFNvdXJjZVByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU291cmNlVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZXNvdXJjZXMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRTaGFyZWRSZXNv
dXJjZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnVmZmVyIiAsInBh
cmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlc291cmNlcyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVz
b3VyY2VGdWxsUGF0aCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVz
b3VyY2VUeXBlRGlyZWN0b3J5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hQYXRoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQorICAgICAgICBdCit9CitdCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2ExMGY5NTFkYzU2MzkzZGNhYzliYjgwZTgzNDIwYmM0YTkxNTNiMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKQEAg
LTAsMCArMSwxODY5IEBACisvLz09PT09PT0gQ29weXJpZ2h0IChjKSBWYWx2ZSBDb3Jwb3JhdGlv
biwgQWxsIHJpZ2h0cyByZXNlcnZlZC4gPT09PT09PT09PT09PT09CisvLworLy8gUHVycG9zZTog
SGVhZGVyIGZvciBmbGF0dGVkIFN0ZWFtQVBJLiBVc2UgdGhpcyBmb3IgYmluZGluZyB0byBvdGhl
ciBsYW5ndWFnZXMuCisvLyBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQsIGRvIG5vdCBlZGl0
IGl0LgorLy8KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lmbmRlZiBfX09QRU5WUl9BUElf
RkxBVF9IX18KKyNkZWZpbmUgX19PUEVOVlJfQVBJX0ZMQVRfSF9fCisjaWYgZGVmaW5lZCggX1dJ
TjMyICkgfHwgZGVmaW5lZCggX19jbGFuZ19fICkKKyNwcmFnbWEgb25jZQorI2VuZGlmCisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworI2RlZmluZSBFWFRFUk5fQyBleHRlcm4gIkMiCisjZWxzZQorI2Rl
ZmluZSBFWFRFUk5fQworI2VuZGlmCisKKyNkZWZpbmUgT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
X19zdGRjYWxsCisKKy8vIE9QRU5WUiBBUEkgZXhwb3J0IG1hY3JvCisjaWYgZGVmaW5lZCggX1dJ
TjMyICkgJiYgIWRlZmluZWQoIF9YMzYwICkKKyAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQ
SV9FWFBPUlRTICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DIF9fZGVjbHNwZWMoIGRs
bGV4cG9ydCApCisgICAgICAgI2VsaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9OT0RMTCApCisgICAg
ICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbHNlCisgICAgICAgI2RlZmluZSBT
X0FQSSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApIAorICAgICAgICNlbmRpZiAv
LyBPUEVOVlJfQVBJX0VYUE9SVFMKKyNlbGlmIGRlZmluZWQoIF9fR05VQ19fICkKKyAgICAgICAj
aWYgZGVmaW5lZCggT1BFTlZSX0FQSV9FWFBPUlRTICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVY
VEVSTl9DIF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICAgICNl
bHNlCisgICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVO
VlJfQVBJX0VYUE9SVFMKKyNlbHNlIC8vICFXSU4zMgorICAgICAgICNpZiBkZWZpbmVkKCBPUEVO
VlJfQVBJX0VYUE9SVFMgKQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MKKyAgICAgICAj
ZWxzZQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MKKyAgICAgICAjZW5kaWYgLy8gT1BF
TlZSX0FQSV9FWFBPUlRTCisjZW5kaWYKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWYgZGVm
aW5lZCggX19XSU4zMiApCit0eXBlZGVmIGNoYXIgYm9vbDsKKyNlbHNlCisjaW5jbHVkZSA8c3Rk
Ym9vbC5oPgorI2VuZGlmCisKK3R5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5k
bGVfdDsKK3R5cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7CisKKworLy8gT3BlblZS
IENvbnN0YW50cworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhEcml2ZXJEZWJ1
Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJh
Y2tlZERldmljZUluZGV4X0htZCA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5N
YXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191
blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191blRyYWNrZWREZXZpY2VJbmRleEludmFsaWQgPSA0Mjk0OTY3Mjk1Oworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGxvbmcga191bEludmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOwor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyA9IDE7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBpbnQga191bkJvb2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgaW50IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgaW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgaW50IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGludCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAw
MDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRf
RW5kID0gMTAwMDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhQcm9wZXJ0eVN0
cmluZ1NpemUgPSAzMjc2ODsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkNvbnRyb2xs
ZXJTdGF0ZUF4aXNDb3VudCA9IDU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBrX3VsT3Zl
cmxheUhhbmRsZUludmFsaWQgPSAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuU2Ny
ZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTeXN0ZW1f
VmVyc2lvbiA9ICJJVlJTeXN0ZW1fMDE1IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSRXh0ZW5k
ZWREaXNwbGF5X1ZlcnNpb24gPSAiSVZSRXh0ZW5kZWREaXNwbGF5XzAwMSI7CitzdGF0aWMgY29u
c3QgY2hhciAqIElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAw
MyI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0
aCA9IDEyODsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTWltZVR5cGVfSG9tZUFwcCA9ICJ2
ci9ob21lIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIg
PSAidnIvZ2FtZV90aGVhdGVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSQXBwbGljYXRpb25z
X1ZlcnNpb24gPSAiSVZSQXBwbGljYXRpb25zXzAwNiI7CitzdGF0aWMgY29uc3QgY2hhciAqIElW
UkNoYXBlcm9uZV9WZXJzaW9uID0gIklWUkNoYXBlcm9uZV8wMDMiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7
CitzdGF0aWMgY29uc3QgY2hhciAqIElWUkNvbXBvc2l0b3JfVmVyc2lvbiA9ICJJVlJDb21wb3Np
dG9yXzAyMCI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5WUk92ZXJsYXlNYXhLZXlM
ZW5ndGggPSAxMjg7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5WUk92ZXJsYXlNYXhO
YW1lTGVuZ3RoID0gMTI4Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4T3Zlcmxh
eUNvdW50ID0gNjQ7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOworc3RhdGljIGNvbnN0IGNoYXIgKiBJ
VlJPdmVybGF5X1ZlcnNpb24gPSAiSVZST3ZlcmxheV8wMTQiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1ID0gImdkYzIwMTUiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlID0gImJhc2UiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9UaXAgPSAidGlw
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdy
aXAgPSAiaGFuZGdyaXAiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0Nv
bXBvbmVudF9TdGF0dXMgPSAic3RhdHVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSUmVuZGVy
TW9kZWxzX1ZlcnNpb24gPSAiSVZSUmVuZGVyTW9kZWxzXzAwNSI7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgaW50IGtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKK3N0YXRpYyBjb25z
dCBjaGFyICogSVZSTm90aWZpY2F0aW9uc19WZXJzaW9uID0gIklWUk5vdGlmaWNhdGlvbnNfMDAy
IjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0g
MTI4Oworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRp
bmdzXzAwMiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2VjdGlvbiA9ICJz
dGVhbXZyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0
cmluZyA9ICJyZXF1aXJlSG1kIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9G
b3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERyaXZlciI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3Bs
YXlEZWJ1ZyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNz
UGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sID0gImVuYWJsZURpc3RvcnRpb24iOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAi
ZGlzcGxheURlYnVnWCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlzcGxh
eURlYnVnWV9JbnQzMiA9ICJkaXNwbGF5RGVidWdZIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzX0Jvb2wgPSAic2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwcyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfTG9nTGV2
ZWxfSW50MzIgPSAibG9nbGV2ZWwiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZS
X0lQRF9GbG9hdCA9ICJpcGQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Jh
Y2tncm91bmRfU3RyaW5nID0gImJhY2tncm91bmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRV
c2VEb21lUHJvamVjdGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFj
a2dyb3VuZENhbWVyYUhlaWdodF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9h
dCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9TdGVhbVZSX1BsYXlBcmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dT
dGFnZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBs
ZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZV9Cb29sID0gImRpcmVjdE1vZGUiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0g
ImRpcmVjdE1vZGVFZGlkVmlkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlRWRpZFBpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5nU3BlYWtl
cnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlh
d09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFn
ZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfTmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxs
UHJvY2Vzc2VzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJn
ZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJh
bGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9BbGxvd1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24i
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jv
b2wgPSAiZm9yY2VSZXByb2plY3Rpb24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5n
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19J
bnQzMiA9ICJkZWZhdWx0TWlycm9yVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJy
b3JWaWV3R2VvbWV0cnkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0
TW9uaXRvckZyb21BcHBMYXVuY2ggPSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5j
aF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfU3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlB
cHBzRnJvbURhc2hib2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRW5h
YmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21l
QXBwIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJ
bWFnZVRpbWVTZWNfSW50MzIgPSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVt
byI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0ID0g
ImlwZE9mZnNldCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlv
biA9ICJkcml2ZXJfbGlnaHRob3VzZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0
aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJp
Z3VhdGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1
YXRpb25EZWJ1Z19JbnQzMiA9ICJkaXNhbWJpZ3VhdGlvbmRlYnVnIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFy
eWJhc2VzdGF0aW9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EQkhp
c3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxs
X1NlY3Rpb24gPSAiZHJpdmVyX251bGwiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxs
X1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVyIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1dpbmRvd1hfSW50MzIgPSAid2luZG93WCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dX
aWR0aCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0ludDMy
ID0gIndpbmRvd0hlaWdodCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfUmVuZGVy
V2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9O
dWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9OdWxsX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAic2Vjb25k
c0Zyb21Wc3luY1RvUGhvdG9ucyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfRGlz
cGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jv
b2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2Vy
SW50ZXJmYWNlX01pbmltaXplVG9UcmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2Ny
ZWVuc2hvdHMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVl
bnNob3RUeXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERp
c3R1cmIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtl
eWJvYXJkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21w
bGV0aW9ucyA9ICJUdXRvcmlhbENvbXBsZXRpb25zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxlWCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9L
ZXlib2FyZF9PZmZzZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TbW9vdGhpbmcgPSAiU21vb3RoaW5nIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGlj
QWN0aXZlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29s
ID0gIndhcm5JbkhNRCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfTm90aWZ5T25s
eU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Q
ZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1p
bmdzT25FeGl0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9UZXN0RGF0YV9GbG9h
dCA9ICJwZXJmVGVzdERhdGEiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzU3R5bGUi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1l
dGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0g
IkNvbGxpc2lvbkJvdW5kc0NlbnRlck1hcmtlck9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzUGxh
eVNwYWNlT24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFk
ZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Nv
bGxpc2lvbkJvdW5kc19Db2xvckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdh
bW1hRyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdh
bW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJDb2xsaXNp
b25Cb3VuZHNDb2xvckdhbW1hQSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9T
ZWN0aW9uID0gImNhbWVyYSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFfQm9vbCA9ICJlbmFibGVDYW1lcmEiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9DYW1lcmFfRW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRh
c2hib2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFG
b3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZp
ZXdfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xv
ckdhbW1hUiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdh
bW1hR19JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9ICJjYW1lcmFCb3VuZHND
b2xvckdhbW1hQiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xv
ckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNT
dHJlbmd0aCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVk
aW8iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0
cmluZyA9ICJvblBsYXliYWNrRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVk
aW9fT25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja01pcnJvckRldmljZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09m
ZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvZmZQbGF5YmFja0RldmljZSI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX2F1ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmcgPSAib2ZmUmVjb3Jk
RGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0g
InZpdmVIRE1JR2FpbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1NlY3Rpb24g
PSAicG93ZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhp
dF9Cb29sID0gInBvd2VyT2ZmT25FeGl0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93
ZXJfVHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVv
dXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0ID0gInJldHVyblRv
V2F0Y2hkb2dUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfQXV0b0xh
dW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVz
cyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hi
b2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9h
cmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9E
YXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFyY2FkZU1vZGUiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9tb2RlbHNraW5fU2VjdGlvbiA9ICJtb2RlbHNraW5zIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CitzdGF0aWMgY29u
c3QgY2hhciAqIElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsK
K3N0YXRpYyBjb25zdCBjaGFyICogSVZSUmVzb3VyY2VzX1ZlcnNpb24gPSAiSVZSUmVzb3VyY2Vz
XzAwMSI7CisKKy8vIE9wZW5WUiBFbnVtcworCit0eXBlZGVmIGVudW0gRVZSRXllCit7CisgICAg
ICAgRVZSRXllX0V5ZV9MZWZ0ID0gMCwKKyAgICAgICBFVlJFeWVfRXllX1JpZ2h0ID0gMSwKK30g
RVZSRXllOworCit0eXBlZGVmIGVudW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgRVRleHR1cmVU
eXBlX1RleHR1cmVUeXBlX0RpcmVjdFggPSAwLAorICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJl
VHlwZV9PcGVuR0wgPSAxLAorICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9WdWxrYW4g
PSAyLAorICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9JT1N1cmZhY2UgPSAzLAorICAg
ICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LAorfSBFVGV4dHVyZVR5
cGU7CisKK3R5cGVkZWYgZW51bSBFQ29sb3JTcGFjZQoreworICAgICAgIEVDb2xvclNwYWNlX0Nv
bG9yU3BhY2VfQXV0byA9IDAsCisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9HYW1tYSA9
IDEsCisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9MaW5lYXIgPSAyLAorfSBFQ29sb3JT
cGFjZTsKKwordHlwZWRlZiBlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIEVUcmFja2lu
Z1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9VbmluaXRpYWxpemVkID0gMSwKKyAgICAgICBFVHJhY2tp
bmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyA9IDEwMCwKKyAg
ICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5n
ZSA9IDEwMSwKKyAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfUnVubmluZ19P
SyA9IDIwMCwKKyAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfUnVubmluZ19P
dXRPZlJhbmdlID0gMjAxLAorfSBFVHJhY2tpbmdSZXN1bHQ7CisKK3R5cGVkZWYgZW51bSBFVHJh
Y2tlZERldmljZUNsYXNzCit7CisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2
aWNlQ2xhc3NfSW52YWxpZCA9IDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2Vk
RGV2aWNlQ2xhc3NfSE1EID0gMSwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWRE
ZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1Ry
YWNrZWREZXZpY2VDbGFzc19HZW5lcmljVHJhY2tlciA9IDMsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LAorfSBFVHJh
Y2tlZERldmljZUNsYXNzOworCit0eXBlZGVmIGVudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQor
eworICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX0lu
dmFsaWQgPSAwLAorICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xs
ZXJSb2xlX0xlZnRIYW5kID0gMSwKKyAgICAgICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlX1RyYWNr
ZWRDb250cm9sbGVyUm9sZV9SaWdodEhhbmQgPSAyLAorfSBFVHJhY2tlZENvbnRyb2xsZXJSb2xl
OworCit0eXBlZGVmIGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbl9UcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwKKyAgICAgICBF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbl9UcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLAorICAg
ICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luX1RyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGli
cmF0ZWQgPSAyLAorfSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbjsKKwordHlwZWRlZiBlbnVtIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkKK3sKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfSW52YWxpZCA9IDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNr
aW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgPSAxMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9TZXJpYWxOdW1iZXJfU3RyaW5nID0gMTAwMiwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgPSAxMDA0
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0
cmluZyA9IDEwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5n
RmlybXdhcmVWZXJzaW9uX1N0cmluZyA9IDEwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nID0gMTAwNywKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5n
ID0gMTAwOCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nID0gMTAwOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sID0gMTAxMCwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGV2aWNlSXNDaGFyZ2luZ19Cb29sID0gMTAxMSwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQgPSAx
MDEyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TdGF0dXNEaXNwbGF5VHJh
bnNmb3JtX01hdHJpeDM0ID0gMTAxMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRmlybXdhcmVfVXBkYXRlQXZhaWxhYmxlX0Jvb2wgPSAxMDE0LAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9IDEwMTUsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVS
TF9TdHJpbmcgPSAxMDE2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9IYXJk
d2FyZVJldmlzaW9uX1VpbnQ2NCA9IDEwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9GUEdBVmVyc2lvbl9VaW50NjQgPSAxMDE5LAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCA9IDEwMjAsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCA9
IDEwMjIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Jsb2NrU2VydmVyU2h1
dGRvd25fQm9vbCA9IDEwMjMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Nh
blVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCA9IDEwMjQsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NvbnRhaW5zUHJveGltaXR5U2Vuc29yX0Jvb2wgPSAxMDI1
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VQcm92aWRlc0JhdHRl
cnlTdGF0dXNfQm9vbCA9IDEwMjYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgPSAxMDI4LAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VDbGFzc19JbnQzMiA9IDEwMjks
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhc0NhbWVyYV9Cb29sID0gMTAz
MCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRHJpdmVyVmVyc2lvbl9TdHJp
bmcgPSAxMDMxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9G
b3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgPSAxMDMyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1BhcmVudERyaXZlcl9VaW50NjQgPSAxMDM0
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5
bmNfQm9vbCA9IDIwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NlY29u
ZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAyMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gMjAwMiwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfVXNlcklwZE1ldGVyc19GbG9hdCA9IDIwMDMsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9
IDIwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ByZXZpb3VzVW5pdmVy
c2VJZF9VaW50NjQgPSAyMDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9E
aXNwbGF5RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIwMDYsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3LAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyID0gMjAwOCwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ID0gMjAwOSwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQg
PSAyMDEwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9FZGlkVmVuZG9ySURf
SW50MzIgPSAyMDExLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5
TUNJbWFnZUxlZnRfU3RyaW5nID0gMjAxMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ID0gMjAxNCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRWRpZFByb2R1Y3RJRF9JbnQzMiA9IDIw
MTUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYVRvSGVhZFRyYW5z
Zm9ybV9NYXRyaXgzNCA9IDIwMTYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlHQ1R5cGVfSW50MzIgPSAyMDE3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9EaXNwbGF5R0NPZmZzZXRfRmxvYXQgPSAyMDE4LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCA9IDIwMTksCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ID0gMjAyMCwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5n
ID0gMjAyMSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlckxl
ZnRVX0Zsb2F0ID0gMjAyMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVu
c0NlbnRlckxlZnRWX0Zsb2F0ID0gMjAyMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCA9IDIwMjQsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQg
PSAyMDI2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFGaXJtd2Fy
ZVZlcnNpb25fVWludDY0ID0gMjAyNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ID0gMjAyOSwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJz
aW9uX1VpbnQ2NCA9IDIwMzAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0ID0gMjAzMSwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfQXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAzMiwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50
MzIgPSAyMDMzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TY3JlZW5zaG90
SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIwMzQsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVl
c19GbG9hdCA9IDIwMzUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3Bs
YXlTdXBwcmVzc2VkX0Jvb2wgPSAyMDM2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgPSAyMDM4LAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQz
MiA9IDIwMzksCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0lt
YWdlTnVtQ2hhbm5lbHNfSW50MzIgPSAyMDQwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5ID0gMjA0MSwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfVXNlc0RyaXZlckRpcmVjdE1vZGVfQm9vbCA9IDIwNDIsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5n
ID0gMzAwMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU3VwcG9ydGVkQnV0
dG9uc19VaW50NjQgPSAzMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9B
eGlzMFR5cGVfSW50MzIgPSAzMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9BeGlzMVR5cGVfSW50MzIgPSAzMDAzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9BeGlzMlR5cGVfSW50MzIgPSAzMDA0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9BeGlzM1R5cGVfSW50MzIgPSAzMDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50MzIgPSAzMDA3LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ID0g
NDAwMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmllbGRPZlZpZXdSaWdo
dERlZ3JlZXNfRmxvYXQgPSA0MDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQgPSA0MDAyLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld0JvdHRvbURlZ3JlZXNfRmxvYXQgPSA0MDAzLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1l
dGVyc19GbG9hdCA9IDQwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1Ry
YWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0ID0gNDAwNSwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfTW9kZUxhYmVsX1N0cmluZyA9IDQwMDYsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0cmlu
ZyA9IDUwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBh
dGhEZXZpY2VTZWFyY2hpbmdfU3RyaW5nID0gNTAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUw
MDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VSZWFkeV9TdHJpbmcgPSA1MDA0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlBbGVydF9TdHJpbmcgPSA1MDA1LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3Ry
aW5nID0gNTAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29u
UGF0aERldmljZVN0YW5kYnlfU3RyaW5nID0gNTAwNywKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0TG93X1N0cmluZyA9IDUwMDgsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9TdGFydCA9IDUxMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3Bs
YXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgPSA1MTUwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9Vc2VyQ29uZmlnUGF0aF9TdHJpbmcgPSA2MDAwLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCA9
IDEwMDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WZW5kb3JTcGVjaWZp
Y19SZXNlcnZlZF9FbmQgPSAxMDk5OSwKK30gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKwordHlw
ZWRlZiBlbnVtIEVUcmFja2VkUHJvcGVydHlFcnJvcgoreworICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvcl9UcmFja2VkUHJvcF9TdWNjZXNzID0gMCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5
RXJyb3JfVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZSA9IDEsCisgICAgICAgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1dyb25nRGV2aWNlQ2xhc3MgPSAyLAorICAgICAgIEVUcmFj
a2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCA9IDMsCisgICAgICAg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisg
ICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgPSA1
LAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9Db3VsZE5vdENvbnRh
Y3RTZXJ2ZXIgPSA2LAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9W
YWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3LAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJv
cl9UcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCA9IDgsCisgICAgICAgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX05vdFlldEF2YWlsYWJsZSA9IDksCisgICAg
ICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgPSAx
MCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZE9wZXJh
dGlvbiA9IDExLAorfSBFVHJhY2tlZFByb3BlcnR5RXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJT
dWJtaXRGbGFncworeworICAgICAgIEVWUlN1Ym1pdEZsYWdzX1N1Ym1pdF9EZWZhdWx0ID0gMCwK
KyAgICAgICBFVlJTdWJtaXRGbGFnc19TdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGll
ZCA9IDEsCisgICAgICAgRVZSU3VibWl0RmxhZ3NfU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwK
KyAgICAgICBFVlJTdWJtaXRGbGFnc19TdWJtaXRfUmVzZXJ2ZWQgPSA0LAorfSBFVlJTdWJtaXRG
bGFnczsKKwordHlwZWRlZiBlbnVtIEVWUlN0YXRlCit7CisgICAgICAgRVZSU3RhdGVfVlJTdGF0
ZV9VbmRlZmluZWQgPSAtMSwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX09mZiA9IDAsCisgICAg
ICAgRVZSU3RhdGVfVlJTdGF0ZV9TZWFyY2hpbmcgPSAxLAorICAgICAgIEVWUlN0YXRlX1ZSU3Rh
dGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1JlYWR5ID0g
MywKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKKyAgICAgICBFVlJT
dGF0ZV9WUlN0YXRlX05vdFJlYWR5ID0gNSwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1N0YW5k
YnkgPSA2LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK30g
RVZSU3RhdGU7CisKK3R5cGVkZWYgZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9Ob25lID0gMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFj
a2VkRGV2aWNlQWN0aXZhdGVkID0gMTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Ry
YWNrZWREZXZpY2VEZWFjdGl2YXRlZCA9IDEwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3RhcnRlZCA9IDEwMywKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgPSAxMDQs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlID0gMTA2LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0xlYXZlU3RhbmRieU1vZGUgPSAxMDcsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkID0gMTA5LAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCA9IDExMCwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfQnV0dG9uUHJlc3MgPSAyMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfQnV0dG9uVW5wcmVzcyA9IDIwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9C
dXR0b25Ub3VjaCA9IDIwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25VbnRv
dWNoID0gMjAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X01vdXNlTW92ZSA9IDMwMCwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTW91c2VCdXR0b25VcCA9IDMwMiwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9Gb2N1c0VudGVyID0gMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2Ny
b2xsID0gMzA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RvdWNoUGFkTW92ZSA9IDMw
NiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCA9IDQwMCwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgPSA0MDEsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCA9IDQwMywKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uQ2hhbmdlZCA9IDQwNCwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdlZCA9IDQwNiwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9
IDQwNywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzID0gNDEw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgPSA0MTEsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfT3ZlcmxheVNob3duID0gNTAwLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X092ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkID0gNTAyLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X0Rhc2hib2FyZERlYWN0aXZhdGVkID0gNTAzLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVkID0gNTA1LAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1Jlc2V0RGFzaGJvYXJkID0gNTA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X1JlbmRlclRvYXN0ID0gNTA3LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdl
TG9hZGVkID0gNTA4LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nob3dLZXlib2FyZCA9
IDUwOSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCA9IDUx
MSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzTG9zdCA9
IDUxMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNo
YW5nZWQgPSA1MTMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVC
dXR0b25Eb3duID0gNTE0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZEd1
aWRlQnV0dG9uVXAgPSA1MTUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hv
dFRyaWdnZXJlZCA9IDUxNiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbWFnZUZhaWxl
ZCA9IDUxNywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRPdmVybGF5Q3Jl
YXRlZCA9IDUxOCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hv
dCA9IDUyMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VGFrZW4gPSA1
MjEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdEZhaWxlZCA9IDUyMiwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQg
PSA1MjMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9E
YXNoYm9hcmQgPSA1MjQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJpbWFyeURhc2hi
b2FyZERldmljZUNoYW5nZWQgPSA1MjUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90
aWZpY2F0aW9uX1Nob3duID0gNjAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlm
aWNhdGlvbl9IaWRkZW4gPSA2MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZp
Y2F0aW9uX0JlZ2luSW50ZXJhY3Rpb24gPSA2MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3llZCA9IDYwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9RdWl0ID0gNzAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Byb2Nlc3NRdWl0
ID0gNzAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9t
cHQgPSA3MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCA9
IDcwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ID0g
NzA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2Vk
ID0gODAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFz
Q2hhbmdlZCA9IDgwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVUZW1w
RGF0YUhhc0NoYW5nZWQgPSA4MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVy
b25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9TZWF0ZWRaZXJvUG9zZVJlc2V0ID0gODA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X0F1ZGlvU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgyMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MSwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCA9IDg1MiwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkID0g
ODUzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZl
Q2hhbmdlZCA9IDg1NCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Qb3dlclNldHRpbmdz
SGF2ZUNoYW5nZWQgPSA4NTUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU3RhdHVzVXBk
YXRlID0gOTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X01DSW1hZ2VVcGRhdGVkID0g
MTAwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQg
PSAxMTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNo
ZWQgPSAxMTAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2xvc2VkID0g
MTIwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9LZXlib2FyZENoYXJJbnB1dCA9IDEy
MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIwMiwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkID0g
MTMwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25B
Ym9ydGVkID0gMTMwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRy
YW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkID0gMTMwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9BcHBsaWNhdGlvbk1pbWVUeXBlTG9hZCA9IDEzMDQsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hv
d24gPSAxNDAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9y
V2luZG93SGlkZGVuID0gMTQwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3Np
dG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiA9IDE0MTEsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdGFydFZpZGVvU3RyZWFtID0gMTUwMCwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVh
bSA9IDE1MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9QYXVz
ZVZpZGVvU3RyZWFtID0gMTUwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1Jlc3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSA9IDE2MDAsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0Rpc2FibGVDYXB0dXJlID0g
MTYwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxp
dHlMZXZlbCA9IDE2MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfQ2xvc2VkID0gMTY1MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9WZW5kb3JTcGVj
aWZpY19SZXNlcnZlZF9TdGFydCA9IDEwMDAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5LAorfSBFVlJFdmVudFR5cGU7CisK
K3R5cGVkZWYgZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreworICAgICAgIEVEZXZpY2VBY3Rp
dml0eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAgICAgIEVE
ZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAg
ICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJh
Y3Rpb24gPSAxLAorICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFjdGl2aXR5
TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQgPSAyLAorICAgICAgIEVEZXZpY2VBY3Rpdml0
eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSA9IDMsCit9IEVEZXZpY2VBY3Rp
dml0eUxldmVsOworCit0eXBlZGVmIGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBFVlJCdXR0
b25JZF9rX0VCdXR0b25fU3lzdGVtID0gMCwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
QXBwbGljYXRpb25NZW51ID0gMSwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fR3JpcCA9
IDIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCisgICAgICAg
RVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfVXAgPSA0LAorICAgICAgIEVWUkJ1dHRvbklkX2tf
RUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBh
ZF9Eb3duID0gNiwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQSA9IDcsCisgICAgICAg
RVZSQnV0dG9uSWRfa19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAgICAgIEVWUkJ1
dHRvbklkX2tfRUJ1dHRvbl9BeGlzMCA9IDMyLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRv
bl9BeGlzMSA9IDMzLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzMiA9IDM0LAor
ICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzMyA9IDM1LAorICAgICAgIEVWUkJ1dHRv
bklkX2tfRUJ1dHRvbl9BeGlzNCA9IDM2LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9T
dGVhbVZSX1RvdWNocGFkID0gMzIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFt
VlJfVHJpZ2dlciA9IDMzLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EYXNoYm9hcmRf
QmFjayA9IDIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX01heCA9IDY0LAorfSBFVlJC
dXR0b25JZDsKKwordHlwZWRlZiBlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgRVZSTW91
c2VCdXR0b25fVlJNb3VzZUJ1dHRvbl9MZWZ0ID0gMSwKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9W
Uk1vdXNlQnV0dG9uX1JpZ2h0ID0gMiwKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0
dG9uX01pZGRsZSA9IDQsCit9IEVWUk1vdXNlQnV0dG9uOworCit0eXBlZGVmIGVudW0gRUhpZGRl
bkFyZWFNZXNoVHlwZQoreworICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJl
YU1lc2hfU3RhbmRhcmQgPSAwLAorICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVu
QXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRk
ZW5BcmVhTWVzaF9MaW5lTG9vcCA9IDIsCisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VI
aWRkZW5BcmVhTWVzaF9NYXggPSAzLAorfSBFSGlkZGVuQXJlYU1lc2hUeXBlOworCit0eXBlZGVm
IGVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAgRVZSQ29udHJvbGxlckF4aXNU
eXBlX2tfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAorICAgICAgIEVWUkNvbnRyb2xsZXJBeGlz
VHlwZV9rX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAgICAgRVZSQ29udHJvbGxl
ckF4aXNUeXBlX2tfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBFVlJDb250
cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsCit9IEVWUkNvbnRy
b2xsZXJBeGlzVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5
cGUKK3sKKyAgICAgICBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0NvbnRyb2xsZXJFdmVu
dE91dHB1dF9PU0V2ZW50cyA9IDAsCisgICAgICAgRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlw
ZV9Db250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVudHMgPSAxLAorfSBFVlJDb250cm9sbGVyRXZl
bnRPdXRwdXRUeXBlOworCit0eXBlZGVmIGVudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7Cisg
ICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5O
RVIgPSAwLAorICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0lOVEVSTUVESUFURSA9IDEsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJ
U0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUyA9IDIsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0
eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAgIEVDb2xsaXNp
b25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUgPSA0LAorICAgICAgIEVD
b2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0NPVU5UID0gNSwKK30g
RUNvbGxpc2lvbkJvdW5kc1N0eWxlOworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUVycm9yCit7
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05vbmUgPSAwLAorICAgICAg
IEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSA9IDEwLAorICAg
ICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlkSGFuZGxlID0gMTEsCisg
ICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgPSAx
MiwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhj
ZWVkZWQgPSAxMywKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdW
aXNpYmlsaXR5VHlwZSA9IDE0LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJv
cl9LZXlUb29Mb25nID0gMTUsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9y
X05hbWVUb29Mb25nID0gMTYsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9y
X0tleUluVXNlID0gMTcsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1dy
b25nVHJhbnNmb3JtVHlwZSA9IDE4LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlF
cnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSA9IDE5LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9W
Uk92ZXJsYXlFcnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAsCisgICAgICAgRVZST3ZlcmxheUVy
cm9yX1ZST3ZlcmxheUVycm9yX1RodW1ibmFpbENhbnRCZURlc3Ryb3llZCA9IDIxLAorICAgICAg
IEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsID0gMjIsCisgICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1JlcXVlc3RGYWlsZWQgPSAyMywKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUgPSAyNCwK
KyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSA9
IDI1LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVh
ZHlJblVzZSA9IDI2LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ob05l
aWdoYm9yID0gMjcsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1Rvb01h
bnlNYXNrUHJpbWl0aXZlcyA9IDI5LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlF
cnJvcl9CYWRNYXNrUHJpbWl0aXZlID0gMzAsCit9IEVWUk92ZXJsYXlFcnJvcjsKKwordHlwZWRl
ZiBlbnVtIEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9W
UkFwcGxpY2F0aW9uX090aGVyID0gMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBs
aWNhdGlvbl9TY2VuZSA9IDEsCisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRp
b25fT3ZlcmxheSA9IDIsCisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25f
QmFja2dyb3VuZCA9IDMsCisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25f
VXRpbGl0eSA9IDQsCisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fVlJN
b25pdG9yID0gNSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9TdGVh
bVdhdGNoZG9nID0gNiwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9N
YXggPSA3LAorfSBFVlJBcHBsaWNhdGlvblR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJGaXJtd2Fy
ZUVycm9yCit7CisgICAgICAgRVZSRmlybXdhcmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfTm9uZSA9
IDAsCisgICAgICAgRVZSRmlybXdhcmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfU3VjY2VzcyA9IDEs
CisgICAgICAgRVZSRmlybXdhcmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfRmFpbCA9IDIsCit9IEVW
UkZpcm13YXJlRXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgorewor
ICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfT0sgPSAwLAor
ICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfSW52YWxpZE5v
dGlmaWNhdGlvbklkID0gMTAwLAorICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90aWZp
Y2F0aW9uRXJyb3JfTm90aWZpY2F0aW9uUXVldWVGdWxsID0gMTAxLAorICAgICAgIEVWUk5vdGlm
aWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAx
MDIsCisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9TeXN0
ZW1XaXRoVXNlclZhbHVlQWxyZWFkeUV4aXN0cyA9IDEwMywKK30gRVZSTm90aWZpY2F0aW9uRXJy
b3I7CisKK3R5cGVkZWYgZW51bSBFVlJJbml0RXJyb3IKK3sKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1Vu
a25vd24gPSAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luc3RhbGxh
dGlvbk5vdEZvdW5kID0gMTAwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0luc3RhbGxhdGlvbkNvcnJ1cHQgPSAxMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCA9IDEwMiwKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kID0gMTA0LAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kID0gMTA1LAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFs
aWQgPSAxMDcsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91
bmQgPSAxMDgsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlh
bGl6ZWQgPSAxMDksCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgPSAxMTAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfTm9Db25maWdQYXRoID0gMTExLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X05vTG9nUGF0aCA9IDExMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSA9IDExMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCA9IDExNCwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSW5pdF9SZXRyeSA9IDExNSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgPSAxMTYsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5jaGluZyA9IDExNywKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgPSAxMTgsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duID0gMTE5LAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzID0gMTIw
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dy
b3VuZEFwcCA9IDEyMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RT
dXBwb3J0ZWRXaXRoQ29tcG9zaXRvciA9IDEyMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzID0gMTIzLAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0ludGVybmFsID0gMTI0LAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lID0gMTI1LAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgPSAx
MjYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91
bmQgPSAxMjcsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9y
U3RhcnR1cEZhaWxlZCA9IDEyOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0gMTI5LAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMg
PSAxMzEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNh
YmxlZEluU2V0dGluZ3MgPSAxMzIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfVlJEYXNoYm9hcmROb3RGb3VuZCA9IDEzMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQgPSAxMzQsCisgICAgICAgRVZSSW5p
dEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQgPSAyMDAsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duID0gMjAxLAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biA9IDIwMiwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCA9IDIwMywKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSA9IDIwNSwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQgPSAyMDYsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91
bmQgPSAyMDgsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2Vk
RGV2aWNlSW50ZXJmYWNlVW5rbm93biA9IDIwOSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRVZSSW5p
dEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQgPSAyMTIsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkID0gMzAwLAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCA9IDMwMSwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxl
ZCA9IDMwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJ
bml0RmFpbGVkID0gMzAzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfTXV0
ZXhJbml0RmFpbGVkID0gMzA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENf
RmFpbGVkID0gMzA1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9z
aXRvckNvbm5lY3RGYWlsZWQgPSAzMDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0lQQ19Db21wb3NpdG9ySW52YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1w
dHMgPSAzMDgsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFp
bGVkID0gNDAwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0Qz
RDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlID0gNDAyLAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkID0gNDAzLAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5p
dEZhaWxlZCA9IDQwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lID0gMTAwMCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZp
Y2UgPSAxMTAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29u
ZmlnID0gMTEwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnID0gMTEwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwgPSAxMTA1LAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb0luaXRaTGliID0gMTEwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24gPSAxMTA3LAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0
ID0gMTEwOSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQgPSAxMTEwLAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NS
YW5nZSA9IDExMTEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgPSAxMTEyLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVj
ayA9IDExMTMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5z
dGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfSBFVlJJbml0RXJyb3I7CisKK3R5cGVkZWYgZW51
bSBFVlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVu
c2hvdFR5cGVfTm9uZSA9IDAsCisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90
VHlwZV9Nb25vID0gMSwKKyAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBl
X1N0ZXJlbyA9IDIsCisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9D
dWJlbWFwID0gMywKKyAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX01v
bm9QYW5vcmFtYSA9IDQsCisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW9QYW5vcmFtYSA9IDUsCit9IEVWUlNjcmVlbnNob3RUeXBlOworCit0eXBlZGVmIGVu
dW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgRVZSU2NyZWVuc2hv
dFByb3BlcnR5RmlsZW5hbWVzX1ZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcg
PSAwLAorICAgICAgIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19WUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lc19WUiA9IDEsCit9IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
czsKKwordHlwZWRlZiBlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJvcgoreworICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lID0gMCwKKyAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3BlcmF0aW9uRmFpbGVk
ID0gMTAwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJv
cl9JbnZhbGlkSGFuZGxlID0gMTAxLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRy
YWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVIZWFkZXJWZXJzaW9uID0gMTAyLAorICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRPZkhhbmRsZXMg
PSAxMDMsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9y
X0lQQ0ZhaWx1cmUgPSAxMDQsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tl
ZENhbWVyYUVycm9yX05vdFN1cHBvcnRlZEZvclRoaXNEZXZpY2UgPSAxMDUsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZE1lbW9yeUZhaWx1
cmUgPSAxMDYsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVy
cm9yX0ZyYW1lQnVmZmVyaW5nRmFpbHVyZSA9IDEwNywKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlID0gMTA4LAorICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xU
ZXh0dXJlSWQgPSAxMDksCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENh
bWVyYUVycm9yX0ludmFsaWRTaGFyZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVy
ZUlkID0gMTExLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFF
cnJvcl9TaGFyZWRUZXh0dXJlRmFpbHVyZSA9IDExMiwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZSA9IDExMywKKyAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3Vt
ZW50ID0gMTE0LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFF
cnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplID0gMTE1LAorfSBFVlJUcmFja2VkQ2FtZXJhRXJy
b3I7CisKK3R5cGVkZWYgZW51bSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlCit7CisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfRGlzdG9y
dGVkID0gMCwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9VbmRpc3RvcnRlZCA9IDEsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkID0gMiwKKyAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01BWF9DQU1FUkFfRlJBTUVfVFlQRVMgPSAz
LAorfSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlOworCit0eXBlZGVmIGVudW0gRVZSQXBwbGlj
YXRpb25FcnJvcgoreworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX05vbmUgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX0FwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
cl9WUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCA9IDEwMSwKKyAgICAgICBFVlJBcHBsaWNh
dGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uID0gMTAyLAorICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRJbmRleCA9IDEw
MywKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3du
QXBwbGljYXRpb24gPSAxMDQsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0
aW9uRXJyb3JfSVBDRmFpbGVkID0gMTA1LAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJB
cHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsCisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0ID0g
MTA3LAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFs
aWRBcHBsaWNhdGlvbiA9IDEwOCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGlj
YXRpb25FcnJvcl9MYXVuY2hGYWlsZWQgPSAxMDksCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
cl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsCisg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9n
cmVzcyA9IDExMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJv
cl9PbGRBcHBsaWNhdGlvblF1aXR0aW5nID0gMTEyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3JfVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5zaXRpb25BYm9ydGVkID0gMTEzLAorICAgICAgIEVW
UkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0lzVGVtcGxhdGUgPSAxMTQsCisg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQnVmZmVyVG9vU21h
bGwgPSAyMDAsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
UHJvcGVydHlOb3RTZXQgPSAyMDEsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxp
Y2F0aW9uRXJyb3JfVW5rbm93blByb3BlcnR5ID0gMjAyLAorICAgICAgIEVWUkFwcGxpY2F0aW9u
RXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCit9IEVWUkFw
cGxpY2F0aW9uRXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvblByb3BlcnR5Cit7
CisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFt
ZV9TdHJpbmcgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlv
blByb3BlcnR5X0xhdW5jaFR5cGVfU3RyaW5nID0gMTEsCisgICAgICAgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgPSAx
MiwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9C
aW5hcnlQYXRoX1N0cmluZyA9IDEzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJB
cHBsaWNhdGlvblByb3BlcnR5X0FyZ3VtZW50c19TdHJpbmcgPSAxNCwKKyAgICAgICBFVlJBcHBs
aWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nID0gMTUsCisg
ICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVzY3Jp
cHRpb25fU3RyaW5nID0gNTAsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfTmV3c1VSTF9TdHJpbmcgPSA1MSwKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nID0gNTIsCisg
ICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNl
X1N0cmluZyA9IDUzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlv
blByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29sID0gNjAsCisgICAgICAgRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sID0gNjEs
CisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJ
bnN0YW5jZWRfQm9vbCA9IDYyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBs
aWNhdGlvblByb3BlcnR5X0lzSW50ZXJuYWxfQm9vbCA9IDYzLAorICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCA9
IDcwLAorfSBFVlJBcHBsaWNhdGlvblByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGUKK3sKKyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25T
dGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9Ob25lID0gMCwKKyAgICAgICBFVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25TdGF0ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2Vu
dCA9IDEwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRp
b25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCA9IDExLAorICAgICAgIEVWUkFw
cGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05ld0FwcExh
dW5jaGVkID0gMjAsCit9IEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlOworCit0eXBlZGVm
IGVudW0gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZQoreworICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGVfT0sgPSAxLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2Fy
bmluZyA9IDEwMCwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFz
ZVN0YXRpb25NYXlIYXZlTW92ZWQgPSAxMDEsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3ZlZCA9IDEwMiwKKyAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKKyAgICAg
ICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yID0gMjAwLAorICAgICAgIENoYXBlcm9u
ZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25VbmluaXRpYWxpemVkID0gMjAxLAor
ICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGlj
dCA9IDIwMiwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVh
SW52YWxpZCA9IDIwMywKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Nv
bGxpc2lvbkJvdW5kc0ludmFsaWQgPSAyMDQsCit9IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGU7
CisKK3R5cGVkZWYgZW51bSBFQ2hhcGVyb25lQ29uZmlnRmlsZQoreworICAgICAgIEVDaGFwZXJv
bmVDb25maWdGaWxlX0xpdmUgPSAxLAorICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX1RlbXAg
PSAyLAorfSBFQ2hhcGVyb25lQ29uZmlnRmlsZTsKKwordHlwZWRlZiBlbnVtIEVDaGFwZXJvbmVJ
bXBvcnRGbGFncworeworICAgICAgIEVDaGFwZXJvbmVJbXBvcnRGbGFnc19FQ2hhcGVyb25lSW1w
b3J0X0JvdW5kc09ubHkgPSAxLAorfSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3M7CisKK3R5cGVkZWYg
ZW51bSBFVlJDb21wb3NpdG9yRXJyb3IKK3sKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJD
b21wb3NpdG9yRXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29t
cG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQgPSAxLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJv
cl9WUkNvbXBvc2l0b3JFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uID0gMTAwLAorICAgICAgIEVW
UkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Eb05vdEhhdmVGb2N1cyA9IDEwMSwK
KyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1
cmUgPSAxMDIsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0lz
Tm90U2NlbmVBcHBsaWNhdGlvbiA9IDEwMywKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJD
b21wb3NpdG9yRXJyb3JfVGV4dHVyZUlzT25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBFVlJD
b21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZv
cm1hdCA9IDEwNSwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3Jf
U2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgPSAxMDYsCisgICAgICAgRVZSQ29tcG9zaXRvckVy
cm9yX1ZSQ29tcG9zaXRvckVycm9yX0luZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBFVlJD
b21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCA9IDEwOCwK
K30gRVZSQ29tcG9zaXRvckVycm9yOworCit0eXBlZGVmIGVudW0gVlJPdmVybGF5SW5wdXRNZXRo
b2QKK3sKKyAgICAgICBWUk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lID0gMCwKKyAgICAgICBWUk92
ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSA9IDEsCit9IFZST3ZlcmxheUlucHV0TWV0aG9kOworCit0
eXBlZGVmIGVudW0gVlJPdmVybGF5VHJhbnNmb3JtVHlwZQoreworICAgICAgIFZST3ZlcmxheVRy
YW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKKyAgICAgICBWUk92
ZXJsYXlUcmFuc2Zvcm1UeXBlX1ZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkRGV2aWNlUmVsYXRp
dmUgPSAxLAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3Jt
X1N5c3RlbU92ZXJsYXkgPSAyLAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVy
bGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQgPSAzLAorfSBWUk92ZXJsYXlUcmFuc2Zvcm1U
eXBlOworCit0eXBlZGVmIGVudW0gVlJPdmVybGF5RmxhZ3MKK3sKKyAgICAgICBWUk92ZXJsYXlG
bGFnc19Ob25lID0gMCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19DdXJ2ZWQgPSAxLAorICAgICAg
IFZST3ZlcmxheUZsYWdzX1JHU1M0WCA9IDIsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9EYXNo
Ym9hcmRUYWIgPSAzLAorICAgICAgIFZST3ZlcmxheUZsYWdzX0FjY2VwdHNHYW1lcGFkRXZlbnRz
ID0gNCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaG93R2FtZXBhZEZvY3VzID0gNSwKKyAgICAg
ICBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3JvbGxFdmVudHMgPSA2LAorICAgICAgIFZST3Zlcmxh
eUZsYWdzX1NlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKyAgICAgICBWUk92ZXJsYXlGbGFnc19T
aG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfVHJhbnNm
ZXJPd25lcnNoaXBUb0ludGVybmFsUHJvY2VzcyA9IDksCisgICAgICAgVlJPdmVybGF5RmxhZ3Nf
U2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNp
ZGVfQ3Jvc3NlZCA9IDExLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsCisg
ICAgICAgVlJPdmVybGF5RmxhZ3NfU3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBWUk92ZXJs
YXlGbGFnc19Tb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwKKyAgICAgICBWUk92ZXJsYXlG
bGFnc19WaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKK30gVlJPdmVybGF5RmxhZ3M7CisKK3R5cGVk
ZWYgZW51bSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKK3sKKyAgICAgICBWUk1lc3NhZ2VPdmVy
bGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMCA9IDAsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJl
c3BvbnNlX0J1dHRvblByZXNzXzEgPSAxLAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9CdXR0b25QcmVzc18yID0gMiwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0
dG9uUHJlc3NfMyA9IDMsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRG
aW5kU3lzdGVtT3ZlcmxheSA9IDQsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0Nv
dWxkbnRGaW5kT3JDcmVhdGVDbGllbnRPdmVybGF5ID0gNSwKKyAgICAgICBWUk1lc3NhZ2VPdmVy
bGF5UmVzcG9uc2VfQXBwbGljYXRpb25RdWl0ID0gNiwKK30gVlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlOworCit0eXBlZGVmIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRNb2RlCit7CisgICAgICAgRUdh
bWVwYWRUZXh0SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsID0gMCwKKyAg
ICAgICBFR2FtZXBhZFRleHRJbnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVQYXNzd29y
ZCA9IDEsCisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRN
b2RlU3VibWl0ID0gMiwKK30gRUdhbWVwYWRUZXh0SW5wdXRNb2RlOworCit0eXBlZGVmIGVudW0g
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQoreworICAgICAgIEVHYW1lcGFkVGV4dElucHV0TGlu
ZU1vZGVfa19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlU2luZ2xlTGluZSA9IDAsCisgICAgICAg
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0
aXBsZUxpbmVzID0gMSwKK30gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZTsKKwordHlwZWRlZiBl
bnVtIEVPdmVybGF5RGlyZWN0aW9uCit7CisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3Zlcmxh
eURpcmVjdGlvbl9VcCA9IDAsCisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVj
dGlvbl9Eb3duID0gMSwKKyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9u
X0xlZnQgPSAyLAorICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fUmln
aHQgPSAzLAorICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fQ291bnQg
PSA0LAorfSBFT3ZlcmxheURpcmVjdGlvbjsKKwordHlwZWRlZiBlbnVtIEVWUk92ZXJsYXlJbnRl
cnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZQoreworICAgICAgIEVWUk92ZXJsYXlJbnRlcnNlY3Rp
b25NYXNrUHJpbWl0aXZlVHlwZV9PdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9SZWN0
YW5nbGUgPSAwLAorICAgICAgIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlw
ZV9PdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUgPSAxLAorfSBFVlJPdmVy
bGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJSZW5k
ZXJNb2RlbEVycm9yCit7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVs
RXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVs
RXJyb3JfTG9hZGluZyA9IDEwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVy
TW9kZWxFcnJvcl9Ob3RTdXBwb3J0ZWQgPSAyMDAsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJv
cl9WUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZEFyZyA9IDMwMCwKKyAgICAgICBFVlJSZW5kZXJN
b2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkTW9kZWwgPSAzMDEsCisgICAgICAg
RVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMgPSAzMDIsCisg
ICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFw
ZXMgPSAzMDMsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3Jf
VG9vTWFueVZlcnRpY2VzID0gMzA0LAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5k
ZXJNb2RlbEVycm9yX011bHRpcGxlVGV4dHVyZXMgPSAzMDUsCisgICAgICAgRVZSUmVuZGVyTW9k
ZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAzMDYsCisgICAgICAg
RVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoTm9ybWFscyA9
IDMwNywKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RF
bm91Z2hUZXhDb29yZHMgPSAzMDgsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRl
ck1vZGVsRXJyb3JfSW52YWxpZFRleHR1cmUgPSA0MDAsCit9IEVWUlJlbmRlck1vZGVsRXJyb3I7
CisKK3R5cGVkZWYgZW51bSBFVlJDb21wb25lbnRQcm9wZXJ0eQoreworICAgICAgIEVWUkNvbXBv
bmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNTdGF0aWMgPSAxLAorICAgICAgIEVW
UkNvbXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNWaXNpYmxlID0gMiwKKyAg
ICAgICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzVG91Y2hlZCA9
IDQsCisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1By
ZXNzZWQgPSA4LAorICAgICAgIEVWUkNvbXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVy
dHlfSXNTY3JvbGxlZCA9IDE2LAorfSBFVlJDb21wb25lbnRQcm9wZXJ0eTsKKwordHlwZWRlZiBl
bnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKK3sKKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1Ry
YW5zaWVudCA9IDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9QZXJzaXN0ZW50ID0gMSwK
KyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1RyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZhbHVl
ID0gMiwKK30gRVZSTm90aWZpY2F0aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNh
dGlvblN0eWxlCit7CisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24gPSAxMDAsCisgICAgICAgRVZSTm90
aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCA9IDIwMCwKKyAgICAgICBFVlJOb3RpZmlj
YXRpb25TdHlsZV9Db250YWN0X0VuYWJsZWQgPSAyMDEsCisgICAgICAgRVZSTm90aWZpY2F0aW9u
U3R5bGVfQ29udGFjdF9BY3RpdmUgPSAyMDIsCit9IEVWUk5vdGlmaWNhdGlvblN0eWxlOworCit0
eXBlZGVmIGVudW0gRVZSU2V0dGluZ3NFcnJvcgoreworICAgICAgIEVWUlNldHRpbmdzRXJyb3Jf
VlJTZXR0aW5nc0Vycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0
aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRp
bmdzRXJyb3JfV3JpdGVGYWlsZWQgPSAyLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0
aW5nc0Vycm9yX1JlYWRGYWlsZWQgPSAzLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0
aW5nc0Vycm9yX0pzb25QYXJzZUZhaWxlZCA9IDQsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9W
UlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZhdWx0ID0gNSwKK30gRVZSU2V0dGlu
Z3NFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIEVW
UlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJT
Y3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDEsCisgICAg
ICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNp
b24gPSAxMDAsCisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX05v
dEZvdW5kID0gMTAxLAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJv
cl9CdWZmZXJUb29TbWFsbCA9IDEwMiwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3Jl
ZW5zaG90RXJyb3JfU2NyZWVuc2hvdEFscmVhZHlJblByb2dyZXNzID0gMTA4LAorfSBFVlJTY3Jl
ZW5zaG90RXJyb3I7CisKKworLy8gT3BlblZSIHR5cGVkZWZzCisKK3R5cGVkZWYgdWludDMyX3Qg
VHJhY2tlZERldmljZUluZGV4X3Q7Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7
Cit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OworCit0eXBlZGVmIHZvaWQgKiBn
bFNoYXJlZFRleHR1cmVIYW5kbGVfdDsKK3R5cGVkZWYgaW50MzJfdCBnbEludF90OwordHlwZWRl
ZiB1aW50MzJfdCBnbFVJbnRfdDsKK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRs
ZV90OwordHlwZWRlZiB1aW50MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3R5cGVkZWYgdWlu
dDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgUHJvcGVy
dHlUeXBlVGFnX3Q7Cit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OwordHlwZWRl
ZiB1aW50NjRfdCBUcmFja2VkQ2FtZXJhSGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFNjcmVl
bnNob3RIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgVlJDb21wb25lbnRQcm9wZXJ0aWVzOwor
dHlwZWRlZiBpbnQzMl90IFRleHR1cmVJRF90OwordHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNh
dGlvbklkOwordHlwZWRlZiBFVlJJbml0RXJyb3IgSG1kRXJyb3I7Cit0eXBlZGVmIEVWUkV5ZSBI
bWRfRXllOwordHlwZWRlZiBFQ29sb3JTcGFjZSBDb2xvclNwYWNlOwordHlwZWRlZiBFVHJhY2tp
bmdSZXN1bHQgSG1kVHJhY2tpbmdSZXN1bHQ7Cit0eXBlZGVmIEVUcmFja2VkRGV2aWNlQ2xhc3Mg
VHJhY2tlZERldmljZUNsYXNzOwordHlwZWRlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luOwordHlwZWRlZiBFVHJhY2tlZERldmljZVByb3BlcnR5IFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eTsKK3R5cGVkZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFRyYWNrZWRQ
cm9wZXJ0eUVycm9yOwordHlwZWRlZiBFVlJTdWJtaXRGbGFncyBWUlN1Ym1pdEZsYWdzX3Q7Cit0
eXBlZGVmIEVWUlN0YXRlIFZSU3RhdGVfdDsKK3R5cGVkZWYgRUNvbGxpc2lvbkJvdW5kc1N0eWxl
IENvbGxpc2lvbkJvdW5kc1N0eWxlX3Q7Cit0eXBlZGVmIEVWUk92ZXJsYXlFcnJvciBWUk92ZXJs
YXlFcnJvcjsKK3R5cGVkZWYgRVZSRmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7Cit0eXBl
ZGVmIEVWUkNvbXBvc2l0b3JFcnJvciBWUkNvbXBvc2l0b3JFcnJvcjsKK3R5cGVkZWYgRVZSU2Ny
ZWVuc2hvdEVycm9yIFZSU2NyZWVuc2hvdHNFcnJvcjsKKworLy8gT3BlblZSIFN0cnVjdHMKKwor
dHlwZWRlZiBzdHJ1Y3QgSG1kTWF0cml4MzRfdAoreworICAgICAgIGZsb2F0IG1bM11bNF07IC8v
ZmxvYXRbM11bNF0KK30gSG1kTWF0cml4MzRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kTWF0cml4
NDRfdAoreworICAgICAgIGZsb2F0IG1bNF1bNF07IC8vZmxvYXRbNF1bNF0KK30gSG1kTWF0cml4
NDRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yM190Cit7CisgICAgICAgZmxvYXQgdlsz
XTsgLy9mbG9hdFszXQorfSBIbWRWZWN0b3IzX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZlY3Rv
cjRfdAoreworICAgICAgIGZsb2F0IHZbNF07IC8vZmxvYXRbNF0KK30gSG1kVmVjdG9yNF90Owor
Cit0eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3IzZF90Cit7CisgICAgICAgZG91YmxlIHZbM107IC8v
ZG91YmxlWzNdCit9IEhtZFZlY3RvcjNkX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZlY3RvcjJf
dAoreworICAgICAgIGZsb2F0IHZbMl07IC8vZmxvYXRbMl0KK30gSG1kVmVjdG9yMl90OworCit0
eXBlZGVmIHN0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdzsKKyAgICAg
ICBkb3VibGUgeDsKKyAgICAgICBkb3VibGUgeTsKKyAgICAgICBkb3VibGUgejsKK30gSG1kUXVh
dGVybmlvbl90OworCit0eXBlZGVmIHN0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxvYXQg
cjsKKyAgICAgICBmbG9hdCBnOworICAgICAgIGZsb2F0IGI7CisgICAgICAgZmxvYXQgYTsKK30g
SG1kQ29sb3JfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgc3RydWN0
IEhtZFZlY3RvcjNfdCB2Q29ybmVyc1s0XTsgLy9zdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdFs0XQor
fSBIbWRRdWFkX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFJlY3QyX3QKK3sKKyAgICAgICBzdHJ1
Y3QgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdkJv
dHRvbVJpZ2h0OworfSBIbWRSZWN0Ml90OworCit0eXBlZGVmIHN0cnVjdCBEaXN0b3J0aW9uQ29v
cmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOyAvL2Zsb2F0WzJdCisgICAgICAg
ZmxvYXQgcmZHcmVlblsyXTsgLy9mbG9hdFsyXQorICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsgLy9m
bG9hdFsyXQorfSBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVGV4
dHVyZV90Cit7CisgICAgICAgdm9pZCAqIGhhbmRsZTsgLy8gdm9pZCAqCisgICAgICAgZW51bSBF
VGV4dHVyZVR5cGUgZVR5cGU7CisgICAgICAgZW51bSBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsK
K30gVGV4dHVyZV90OworCit0eXBlZGVmIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90Cit7Cisg
ICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsKKyAg
ICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsKKyAgICAgICBzdHJ1Y3QgSG1kVmVj
dG9yM190IHZBbmd1bGFyVmVsb2NpdHk7CisgICAgICAgZW51bSBFVHJhY2tpbmdSZXN1bHQgZVRy
YWNraW5nUmVzdWx0OworICAgICAgIGJvb2wgYlBvc2VJc1ZhbGlkOworICAgICAgIGJvb2wgYkRl
dmljZUlzQ29ubmVjdGVkOworfSBUcmFja2VkRGV2aWNlUG9zZV90OworCit0eXBlZGVmIHN0cnVj
dCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIGZsb2F0IHVNaW47CisgICAgICAgZmxvYXQg
dk1pbjsKKyAgICAgICBmbG9hdCB1TWF4OworICAgICAgIGZsb2F0IHZNYXg7Cit9IFZSVGV4dHVy
ZUJvdW5kc190OworCit0eXBlZGVmIHN0cnVjdCBWUlZ1bGthblRleHR1cmVEYXRhX3QKK3sKKyAg
ICAgICB1aW50NjRfdCBtX25JbWFnZTsKKyAgICAgICBzdHJ1Y3QgVmtEZXZpY2VfVCAqIG1fcERl
dmljZTsgLy8gc3RydWN0IFZrRGV2aWNlX1QgKgorICAgICAgIHN0cnVjdCBWa1BoeXNpY2FsRGV2
aWNlX1QgKiBtX3BQaHlzaWNhbERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAq
CisgICAgICAgc3RydWN0IFZrSW5zdGFuY2VfVCAqIG1fcEluc3RhbmNlOyAvLyBzdHJ1Y3QgVmtJ
bnN0YW5jZV9UICoKKyAgICAgICBzdHJ1Y3QgVmtRdWV1ZV9UICogbV9wUXVldWU7IC8vIHN0cnVj
dCBWa1F1ZXVlX1QgKgorICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7CisgICAg
ICAgdWludDMyX3QgbV9uV2lkdGg7CisgICAgICAgdWludDMyX3QgbV9uSGVpZ2h0OworICAgICAg
IHVpbnQzMl90IG1fbkZvcm1hdDsKKyAgICAgICB1aW50MzJfdCBtX25TYW1wbGVDb3VudDsKK30g
VlJWdWxrYW5UZXh0dXJlRGF0YV90OworCit0eXBlZGVmIHN0cnVjdCBEM0QxMlRleHR1cmVEYXRh
X3QKK3sKKyAgICAgICBzdHJ1Y3QgSUQzRDEyUmVzb3VyY2UgKiBtX3BSZXNvdXJjZTsgLy8gc3Ry
dWN0IElEM0QxMlJlc291cmNlICoKKyAgICAgICBzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICog
bV9wQ29tbWFuZFF1ZXVlOyAvLyBzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoKKyAgICAgICB1
aW50MzJfdCBtX25Ob2RlTWFzazsKK30gRDNEMTJUZXh0dXJlRGF0YV90OworCit0eXBlZGVmIHN0
cnVjdCBWUkV2ZW50X0NvbnRyb2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsKK30g
VlJFdmVudF9Db250cm9sbGVyX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfTW91c2VfdAor
eworICAgICAgIGZsb2F0IHg7CisgICAgICAgZmxvYXQgeTsKKyAgICAgICB1aW50MzJfdCBidXR0
b247Cit9IFZSRXZlbnRfTW91c2VfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9TY3JvbGxf
dAoreworICAgICAgIGZsb2F0IHhkZWx0YTsKKyAgICAgICBmbG9hdCB5ZGVsdGE7CisgICAgICAg
dWludDMyX3QgcmVwZWF0Q291bnQ7Cit9IFZSRXZlbnRfU2Nyb2xsX3Q7CisKK3R5cGVkZWYgc3Ry
dWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKK3sKKyAgICAgICBib29sIGJGaW5nZXJEb3duOwor
ICAgICAgIGZsb2F0IGZsU2Vjb25kc0ZpbmdlckRvd247CisgICAgICAgZmxvYXQgZlZhbHVlWEZp
cnN0OworICAgICAgIGZsb2F0IGZWYWx1ZVlGaXJzdDsKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3
OworICAgICAgIGZsb2F0IGZWYWx1ZVlSYXc7Cit9IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3Q7CisK
K3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfTm90aWZpY2F0aW9uX3QKK3sKKyAgICAgICB1aW50NjRf
dCB1bFVzZXJWYWx1ZTsKKyAgICAgICB1aW50MzJfdCBub3RpZmljYXRpb25JZDsKK30gVlJFdmVu
dF9Ob3RpZmljYXRpb25fdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sK
KyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJv
b2wgYkZvcmNlZDsKK30gVlJFdmVudF9Qcm9jZXNzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZl
bnRfT3ZlcmxheV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKK30gVlJFdmVu
dF9PdmVybGF5X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfU3RhdHVzX3QKK3sKKyAgICAg
ICB1aW50MzJfdCBzdGF0dXNTdGF0ZTsKK30gVlJFdmVudF9TdGF0dXNfdDsKKwordHlwZWRlZiBz
dHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciAqIGNOZXdJbnB1dFs4XTsg
Ly9jaGFyWzhdCisgICAgICAgdWludDY0X3QgdVVzZXJWYWx1ZTsKK30gVlJFdmVudF9LZXlib2Fy
ZF90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBk
TWV0ZXJzOworfSBWUkV2ZW50X0lwZF90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0NoYXBl
cm9uZV90Cit7CisgICAgICAgdWludDY0X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKKyAgICAgICB1
aW50NjRfdCBtX25DdXJyZW50VW5pdmVyc2U7Cit9IFZSRXZlbnRfQ2hhcGVyb25lX3Q7CisKK3R5
cGVkZWYgc3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRfdAoreworICAgICAgIHVpbnQ2NF90IHJlc2Vy
dmVkMDsKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDE7Cit9IFZSRXZlbnRfUmVzZXJ2ZWRfdDsK
KwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVp
bnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3Q7CisK
K3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Cit7CisgICAgICAg
Ym9vbCBiUmVzZXRCeVN5c3RlbU1lbnU7Cit9IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90
OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQz
Ml90IGhhbmRsZTsKKyAgICAgICB1aW50MzJfdCB0eXBlOworfSBWUkV2ZW50X1NjcmVlbnNob3Rf
dDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdAoreworICAg
ICAgIGZsb2F0IHByb2dyZXNzOworfSBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190OworCit0
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50
MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3QgdW5BcmdzSGFuZGxlOworfSBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1
cmZhY2VfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMy
X3QgblZpc3VhbE1vZGU7Cit9IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90Cit7CisgICAgICAgdWludDMyX3Qg
dW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7Cit9IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdDsK
KwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Qcm9wZXJ0eV90Cit7CisgICAgICAgUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCBjb250YWluZXI7CisgICAgICAgZW51bSBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3A7Cit9IFZSRXZlbnRfUHJvcGVydHlfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSGlk
ZGVuQXJlYU1lc2hfdAoreworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwVmVydGV4RGF0
YTsgLy8gY29uc3Qgc3RydWN0IHZyOjpIbWRWZWN0b3IyX3QgKgorICAgICAgIHVpbnQzMl90IHVu
VHJpYW5nbGVDb3VudDsKK30gSGlkZGVuQXJlYU1lc2hfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJD
b250cm9sbGVyQXhpc190Cit7CisgICAgICAgZmxvYXQgeDsKKyAgICAgICBmbG9hdCB5OworfSBW
UkNvbnRyb2xsZXJBeGlzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3QK
K3sKKyAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRv
blByZXNzZWQ7CisgICAgICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOworICAgICAgIHN0cnVj
dCBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXNbNV07IC8vc3RydWN0IHZyOjpWUkNvbnRyb2xsZXJB
eGlzX3RbNV0KK30gVlJDb250cm9sbGVyU3RhdGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgQ29tcG9z
aXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXplOworICAgICAgIGJv
b2wgY3VydmVkOworICAgICAgIGJvb2wgYW50aWFsaWFzOworICAgICAgIGZsb2F0IHNjYWxlOwor
ICAgICAgIGZsb2F0IGRpc3RhbmNlOworICAgICAgIGZsb2F0IGFscGhhOworICAgICAgIGZsb2F0
IHVPZmZzZXQ7CisgICAgICAgZmxvYXQgdk9mZnNldDsKKyAgICAgICBmbG9hdCB1U2NhbGU7Cisg
ICAgICAgZmxvYXQgdlNjYWxlOworICAgICAgIGZsb2F0IGdyaWREaXZzOworICAgICAgIGZsb2F0
IGdyaWRXaWR0aDsKKyAgICAgICBmbG9hdCBncmlkU2NhbGU7CisgICAgICAgc3RydWN0IEhtZE1h
dHJpeDQ0X3QgdHJhbnNmb3JtOworfSBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5nczsKKwordHlw
ZWRlZiBzdHJ1Y3QgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgZW51
bSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisgICAgICAgdWludDMyX3Qg
bldpZHRoOworICAgICAgIHVpbnQzMl90IG5IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbkJ5dGVz
UGVyUGl4ZWw7CisgICAgICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7CisgICAgICAgc3RydWN0
IFRyYWNrZWREZXZpY2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK30gQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90OworCit0eXBlZGVmIHN0cnVjdCBBcHBPdmVycmlkZUtl
eXNfdAoreworICAgICAgIGNoYXIgKiBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgorICAgICAgIGNo
YXIgKiBwY2hWYWx1ZTsgLy8gY29uc3QgY2hhciAqCit9IEFwcE92ZXJyaWRlS2V5c190OworCit0
eXBlZGVmIHN0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgdWludDMyX3Qg
bV9uU2l6ZTsKKyAgICAgICB1aW50MzJfdCBtX25GcmFtZUluZGV4OworICAgICAgIHVpbnQzMl90
IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAgdWludDMyX3QgbV9uTnVtTWlzUHJlc2VudGVk
OworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgdWludDMyX3Qg
bV9uUmVwcm9qZWN0aW9uRmxhZ3M7CisgICAgICAgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNv
bmRzOworICAgICAgIGZsb2F0IG1fZmxQcmVTdWJtaXRHcHVNczsKKyAgICAgICBmbG9hdCBtX2Zs
UG9zdFN1Ym1pdEdwdU1zOworICAgICAgIGZsb2F0IG1fZmxUb3RhbFJlbmRlckdwdU1zOworICAg
ICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyR3B1TXM7CisgICAgICAgZmxvYXQgbV9mbENv
bXBvc2l0b3JSZW5kZXJDcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVN
czsKKyAgICAgICBmbG9hdCBtX2ZsQ2xpZW50RnJhbWVJbnRlcnZhbE1zOworICAgICAgIGZsb2F0
IG1fZmxQcmVzZW50Q2FsbENwdU1zOworICAgICAgIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENw
dU1zOworICAgICAgIGZsb2F0IG1fZmxTdWJtaXRGcmFtZU1zOworICAgICAgIGZsb2F0IG1fZmxX
YWl0R2V0UG9zZXNDYWxsZWRNczsKKyAgICAgICBmbG9hdCBtX2ZsTmV3UG9zZXNSZWFkeU1zOwor
ICAgICAgIGZsb2F0IG1fZmxOZXdGcmFtZVJlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBv
c2l0b3JVcGRhdGVTdGFydE1zOworICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5k
TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJTdGFydE1zOworICAgICAgIFRy
YWNrZWREZXZpY2VQb3NlX3QgbV9IbWRQb3NlOworfSBDb21wb3NpdG9yX0ZyYW1lVGltaW5nOwor
Cit0eXBlZGVmIHN0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cworeworICAgICAgIHVp
bnQzMl90IG1fblBpZDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzOworICAg
ICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgdWludDMyX3QgbV9uTnVt
UmVwcm9qZWN0ZWRGcmFtZXM7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c09u
U3RhcnR1cDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzT25TdGFydHVwOwor
ICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzT25TdGFydHVwOworICAgICAg
IHVpbnQzMl90IG1fbk51bUxvYWRpbmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVz
ZW50c0xvYWRpbmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc0xvYWRpbmc7
CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNMb2FkaW5nOworICAgICAg
IHVpbnQzMl90IG1fbk51bVRpbWVkT3V0OworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJl
c2VudHNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzVGltZWRP
dXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNUaW1lZE91dDsKK30g
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHM7CisKK3R5cGVkZWYgc3RydWN0IFZST3ZlcmxheUlu
dGVyc2VjdGlvblBhcmFtc190Cit7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2U291cmNl
OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKKyAgICAgICBlbnVtIEVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW47Cit9IFZST3ZlcmxheUludGVyc2VjdGlvblBh
cmFtc190OworCit0eXBlZGVmIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QK
K3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZQb2ludDsKKyAgICAgICBzdHJ1Y3QgSG1k
VmVjdG9yM190IHZOb3JtYWw7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2VVZzOworICAg
ICAgIGZsb2F0IGZEaXN0YW5jZTsKK30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190Owor
Cit0eXBlZGVmIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKK3sKKyAgICAgICBm
bG9hdCBtX2ZsVG9wTGVmdFg7CisgICAgICAgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAgIGZs
b2F0IG1fZmxXaWR0aDsKKyAgICAgICBmbG9hdCBtX2ZsSGVpZ2h0OworfSBJbnRlcnNlY3Rpb25N
YXNrUmVjdGFuZ2xlX3Q7CisKK3R5cGVkZWYgc3RydWN0IEludGVyc2VjdGlvbk1hc2tDaXJjbGVf
dAoreworICAgICAgIGZsb2F0IG1fZmxDZW50ZXJYOworICAgICAgIGZsb2F0IG1fZmxDZW50ZXJZ
OworICAgICAgIGZsb2F0IG1fZmxSYWRpdXM7Cit9IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdDsK
KwordHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAg
IHN0cnVjdCBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7Cisg
ICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAg
ICAgICBWUkNvbXBvbmVudFByb3BlcnRpZXMgdVByb3BlcnRpZXM7Cit9IFJlbmRlck1vZGVsX0Nv
bXBvbmVudFN0YXRlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90Cit7
CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2UG9zaXRpb247CisgICAgICAgc3RydWN0IEht
ZFZlY3RvcjNfdCB2Tm9ybWFsOworICAgICAgIGZsb2F0IHJmVGV4dHVyZUNvb3JkWzJdOyAvL2Zs
b2F0WzJdCit9IFJlbmRlck1vZGVsX1ZlcnRleF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJN
b2RlbF9UZXh0dXJlTWFwX3QKK3sKKyAgICAgICB1aW50MTZfdCB1bldpZHRoOworICAgICAgIHVp
bnQxNl90IHVuSGVpZ2h0OworICAgICAgIHVpbnQ4X3QgKiBydWJUZXh0dXJlTWFwRGF0YTsgLy8g
Y29uc3QgdWludDhfdCAqCit9IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdDsKKwordHlwZWRlZiBz
dHJ1Y3QgUmVuZGVyTW9kZWxfdAoreworICAgICAgIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhf
dCAqIHJWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX1ZlcnRleF90
ICoKKyAgICAgICB1aW50MzJfdCB1blZlcnRleENvdW50OworICAgICAgIHVpbnQxNl90ICogcklu
ZGV4RGF0YTsgLy8gY29uc3QgdWludDE2X3QgKgorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVD
b3VudDsKKyAgICAgICBUZXh0dXJlSURfdCBkaWZmdXNlVGV4dHVyZUlkOworfSBSZW5kZXJNb2Rl
bF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90
Cit7CisgICAgICAgYm9vbCBiU2Nyb2xsV2hlZWxWaXNpYmxlOworfSBSZW5kZXJNb2RlbF9Db250
cm9sbGVyTW9kZV9TdGF0ZV90OworCit0eXBlZGVmIHN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBf
dAoreworICAgICAgIHZvaWQgKiBtX3BJbWFnZURhdGE7IC8vIHZvaWQgKgorICAgICAgIGludDMy
X3QgbV9uV2lkdGg7CisgICAgICAgaW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgaW50MzJfdCBt
X25CeXRlc1BlclBpeGVsOworfSBOb3RpZmljYXRpb25CaXRtYXBfdDsKKwordHlwZWRlZiBzdHJ1
Y3QgQ09wZW5WUkNvbnRleHQKK3sKKyAgICAgICBpbnRwdHJfdCBtX3BWUlN5c3RlbTsgLy8gY2xh
c3MgdnI6OklWUlN5c3RlbSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmU7IC8vIGNs
YXNzIHZyOjpJVlJDaGFwZXJvbmUgKgorICAgICAgIGludHB0cl90IG1fcFZSQ2hhcGVyb25lU2V0
dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCisgICAgICAgaW50cHRyX3QgbV9w
VlJDb21wb3NpdG9yOyAvLyBjbGFzcyB2cjo6SVZSQ29tcG9zaXRvciAqCisgICAgICAgaW50cHRy
X3QgbV9wVlJPdmVybGF5OyAvLyBjbGFzcyB2cjo6SVZST3ZlcmxheSAqCisgICAgICAgaW50cHRy
X3QgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJVlJSZXNvdXJjZXMgKgorICAgICAgIGlu
dHB0cl90IG1fcFZSUmVuZGVyTW9kZWxzOyAvLyBjbGFzcyB2cjo6SVZSUmVuZGVyTW9kZWxzICoK
KyAgICAgICBpbnRwdHJfdCBtX3BWUkV4dGVuZGVkRGlzcGxheTsgLy8gY2xhc3MgdnI6OklWUkV4
dGVuZGVkRGlzcGxheSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3Mg
dnI6OklWUlNldHRpbmdzICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUkFwcGxpY2F0aW9uczsgLy8g
Y2xhc3MgdnI6OklWUkFwcGxpY2F0aW9ucyAqCisgICAgICAgaW50cHRyX3QgbV9wVlJUcmFja2Vk
Q2FtZXJhOyAvLyBjbGFzcyB2cjo6SVZSVHJhY2tlZENhbWVyYSAqCisgICAgICAgaW50cHRyX3Qg
bV9wVlJTY3JlZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKK30gQ09wZW5W
UkNvbnRleHQ7CisKKwordHlwZWRlZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRf
dCByZXNlcnZlZDsKKyAgICAgICBWUkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAg
ICAgIFZSRXZlbnRfTW91c2VfdCBtb3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9s
bDsKKyAgICAgICBWUkV2ZW50X1Byb2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90
aWZpY2F0aW9uX3Qgbm90aWZpY2F0aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJs
YXk7CisgICAgICAgVlJFdmVudF9TdGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXli
b2FyZF90IGtleWJvYXJkOworICAgICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZl
bnRfQ2hhcGVyb25lX3QgY2hhcGVyb25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0
X3QgcGVyZm9ybWFuY2VUZXN0OworICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQ
YWRNb3ZlOworICAgICAgIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Q
b3NlUmVzZXQ7Cit9IFZSRXZlbnRfRGF0YV90OworCisvKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRo
ZSBzZXJ2ZXIgdG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3QgVlJFdmVudF90
Cit7CisgICAgICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQorICAg
ICAgIFRyYWNrZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBmbG9h
dCBldmVudEFnZVNlY29uZHM7CisgICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQg
b2YgdGhlIHN0cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZSRXZlbnRfRGF0
YV90IGRhdGE7Cit9OworCisKK3R5cGVkZWYgdW5pb24KK3sKKyAgICAgICBJbnRlcnNlY3Rpb25N
YXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAgSW50ZXJzZWN0aW9uTWFza0NpcmNs
ZV90IG1fQ2lyY2xlOworfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFf
dDsKKworc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAg
ICAgIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZSBtX25QcmltaXRpdmVU
eXBlOworICAgICAgIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1f
UHJpbWl0aXZlOworfTsKKworCisvLyBPcGVuVlIgRnVuY3Rpb24gUG9pbnRlciBUYWJsZXMKKwor
c3RydWN0IFZSX0lWUlN5c3RlbV9GblRhYmxlCit7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSkodWludDMyX3QgKiBw
bldpZHRoLCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4NDRf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFByb2plY3Rpb25NYXRyaXgpKEVWUkV5ZSBl
RXllLCBmbG9hdCBmTmVhclosIGZsb2F0IGZGYXJaKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0UHJvamVjdGlvblJhdykoRVZSRXllIGVFeWUsIGZsb2F0ICogcGZM
ZWZ0LCBmbG9hdCAqIHBmUmlnaHQsIGZsb2F0ICogcGZUb3AsIGZsb2F0ICogcGZCb3R0b20pOwor
ICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wdXRlRGlzdG9ydGlvbiko
RVZSRXllIGVFeWUsIGZsb2F0IGZVLCBmbG9hdCBmViwgc3RydWN0IERpc3RvcnRpb25Db29yZGlu
YXRlc190ICogcERpc3RvcnRpb25Db29yZGluYXRlcyk7CisgICAgICAgc3RydWN0IEhtZE1hdHJp
eDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRFeWVUb0hlYWRUcmFuc2Zvcm0pKEVW
UkV5ZSBlRXllKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VGlt
ZVNpbmNlTGFzdFZzeW5jKShmbG9hdCAqIHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRf
dCAqIHB1bEZyYW1lQ291bnRlcik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEQzRDlBZGFwdGVySW5kZXgpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldERYR0lPdXRwdXRJbmZvKShpbnQzMl90ICogcG5BZGFwdGVySW5kZXgp
OworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Rpc3BsYXlPbkRlc2t0
b3ApKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERpc3BsYXlW
aXNpYmlsaXR5KShib29sIGJJc1Zpc2libGVPbkRlc2t0b3ApOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKShFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBmbG9hdCBmUHJlZGljdGVkU2Vjb25kc1RvUGhv
dG9uc0Zyb21Ob3csIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQ
b3NlQXJyYXksIHVpbnQzMl90IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50KTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVzZXRTZWF0ZWRaZXJvUG9zZSkoKTsK
KyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKSgpOworICAgICAg
IHN0cnVjdCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmF3WmVy
b1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgdWludDMyX3Qg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09m
Q2xhc3MpKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcywgVHJhY2tlZERl
dmljZUluZGV4X3QgKiBwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSwgdWludDMyX3QgdW5UcmFj
a2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blJlbGF0aXZl
VG9UcmFja2VkRGV2aWNlSW5kZXgpOworICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwpKFRyYWNr
ZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSWQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpBcHBseVRyYW5zZm9ybSkoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBw
T3V0cHV0UG9zZSwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBv
c2UsIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcFRyYW5zZm9ybSk7CisgICAgICAgVHJhY2tlZERl
dmljZUluZGV4X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2VkRGV2aWNlSW5k
ZXhGb3JDb250cm9sbGVyUm9sZSkoRVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUp
OworICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmljZUlu
ZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzcyAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNrZWREZXZpY2VDbGFzcykoVHJhY2tlZERldmljZUlu
ZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKklzVHJhY2tlZERldmljZUNvbm5lY3RlZCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZp
Y2VJbmRleCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvb2xU
cmFja2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVy
cm9yKTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZsb2F0VHJh
Y2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJv
cik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEludDMyVHJh
Y2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJv
cik7CisgICAgICAgdWludDY0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRVaW50NjRU
cmFja2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVy
cm9yKTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJv
cGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRl
eF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY2hhciAqIHBj
aFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBF
cnJvcik7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UHJvcEVy
cm9yTmFtZUZyb21FbnVtKShFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb2xsTmV4dEV2ZW50KShzdHJ1Y3QgVlJFdmVu
dF90ICogcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlBvbGxOZXh0RXZlbnRXaXRoUG9zZSkoRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZU9yaWdpbiwgc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWludDMyX3QgdW5j
YlZSRXZlbnQsIFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2UpOworICAg
ICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEV2ZW50VHlwZU5hbWVGcm9t
RW51bSkoRVZSRXZlbnRUeXBlIGVUeXBlKTsKKyAgICAgICBzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEhpZGRlbkFyZWFNZXNoKShFVlJFeWUgZUV5
ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0Q29udHJvbGxlclN0YXRlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNv
bnRyb2xsZXJEZXZpY2VJbmRleCwgVlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3Rh
dGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKShFVHJhY2tpbmdV
bml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCwgVlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3RhdGUsIHVpbnQz
Ml90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBw
VHJhY2tlZERldmljZVBvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpUcmlnZ2VySGFwdGljUHVsc2UpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRl
dmljZUluZGV4LCB1aW50MzJfdCB1bkF4aXNJZCwgdW5zaWduZWQgc2hvcnQgdXNEdXJhdGlvbk1p
Y3JvU2VjKTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCdXR0
b25JZE5hbWVGcm9tRW51bSkoRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAgICAgICBjaGFyICog
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVu
dW0pKEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDYXB0dXJlSW5wdXRGb2N1cykoKTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZUlucHV0Rm9jdXMpKCk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVy
UHJvY2VzcykoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkRy
aXZlckRlYnVnUmVxdWVzdCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgY2hh
ciAqIHBjaFJlcXVlc3QsIGNoYXIgKiBwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMyX3QgdW5SZXNw
b25zZUJ1ZmZlclNpemUpOworICAgICAgIEVWUkZpcm13YXJlRXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpQZXJmb3JtRmlybXdhcmVVcGRhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY2tu
b3dsZWRnZVF1aXRfRXhpdGluZykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQpKCk7Cit9OworCitzdHJ1Y3QgVlJfSVZS
RXh0ZW5kZWREaXNwbGF5X0ZuVGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0V2luZG93Qm91bmRzKShpbnQzMl90ICogcG5YLCBpbnQzMl90ICogcG5ZLCB1
aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRFeWVPdXRwdXRWaWV3cG9ydCkoRVZSRXllIGVFeWUs
IHVpbnQzMl90ICogcG5YLCB1aW50MzJfdCAqIHBuWSwgdWludDMyX3QgKiBwbldpZHRoLCB1aW50
MzJfdCAqIHBuSGVpZ2h0KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0RFhHSU91dHB1dEluZm8pKGludDMyX3QgKiBwbkFkYXB0ZXJJbmRleCwgaW50MzJfdCAqIHBu
QWRhcHRlck91dHB1dEluZGV4KTsKK307CisKK3N0cnVjdCBWUl9JVlJUcmFja2VkQ2FtZXJhX0Zu
VGFibGUKK3sKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1l
cmFFcnJvck5hbWVGcm9tRW51bSkoRVZSVHJhY2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7
CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
SGFzQ2FtZXJhKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIGJvb2wgKiBwSGFz
Q2FtZXJhKTsKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRDYW1lcmFGcmFtZVNpemUpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJ
bmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB1aW50MzJfdCAqIHBu
V2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQsIHVpbnQzMl90ICogcG5GcmFtZUJ1ZmZlclNpemUp
OworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldENhbWVyYUludHJpbnNpY3MpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBIbWRWZWN0b3IyX3QgKiBwRm9j
YWxMZW5ndGgsIEhtZFZlY3RvcjJfdCAqIHBDZW50ZXIpOworICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYVByb2plY3Rpb24pKFRy
YWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpOZWFyLCBmbG9hdCBmbFpGYXIsIEhtZE1hdHJpeDQ0X3Qg
KiBwUHJvamVjdGlvbik7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSkoVHJhY2tlZERldmlj
ZUluZGV4X3QgbkRldmljZUluZGV4LCBUcmFja2VkQ2FtZXJhSGFuZGxlX3QgKiBwSGFuZGxlKTsK
KyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpS
ZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNr
ZWRDYW1lcmEpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIpKFRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2
b2lkICogcEZyYW1lQnVmZmVyLCB1aW50MzJfdCBuRnJhbWVCdWZmZXJTaXplLCBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRl
clNpemUpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUpKFRyYWNrZWREZXZpY2VJbmRleF90IG5E
ZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBWUlRleHR1
cmVCb3VuZHNfdCAqIHBUZXh0dXJlQm91bmRzLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90
ICogcG5IZWlnaHQpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKShUcmFja2VkQ2FtZXJhSGFu
ZGxlX3QgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSwgdm9pZCAqIHBEM0QxMURldmljZU9yUmVzb3VyY2UsIHZvaWQgKiogcHBEM0QxMVNoYWRlclJl
c291cmNlVmlldywgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICogcEZyYW1lSGVhZGVy
LCB1aW50MzJfdCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCkoVHJh
Y2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGUsIGdsVUludF90ICogcGdsVGV4dHVyZUlkLCBDYW1lcmFWaWRlb1N0cmVh
bUZyYW1lSGVhZGVyX3QgKiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUp
OworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTCkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFj
a2VkQ2FtZXJhLCBnbFVJbnRfdCBnbFRleHR1cmVJZCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQXBw
bGljYXRpb25zX0ZuVGFibGUKK3sKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqQWRkQXBwbGljYXRpb25NYW5pZmVzdCkoY2hhciAqIHBjaEFwcGxp
Y2F0aW9uTWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5KTsKKyAgICAgICBFVlJBcHBs
aWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlQXBwbGljYXRpb25N
YW5pZmVzdCkoY2hhciAqIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7CisgICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzQXBwbGljYXRpb25JbnN0YWxsZWQpKGNo
YXIgKiBwY2hBcHBLZXkpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0QXBwbGljYXRpb25Db3VudCkoKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KSh1aW50MzJf
dCB1bkFwcGxpY2F0aW9uSW5kZXgsIGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVu
QXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCkodWludDMyX3QgdW5Q
cm9jZXNzSWQsIGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVy
TGVuKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqTGF1bmNoQXBwbGljYXRpb24pKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hUZW1wbGF0ZUFwcGxp
Y2F0aW9uKShjaGFyICogcGNoVGVtcGxhdGVBcHBLZXksIGNoYXIgKiBwY2hOZXdBcHBLZXksIHN0
cnVjdCBBcHBPdmVycmlkZUtleXNfdCAqIHBLZXlzLCB1aW50MzJfdCB1bktleXMpOworICAgICAg
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hBcHBs
aWNhdGlvbkZyb21NaW1lVHlwZSkoY2hhciAqIHBjaE1pbWVUeXBlLCBjaGFyICogcGNoQXJncyk7
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxh
dW5jaERhc2hib2FyZE92ZXJsYXkpKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCkoY2hhciAqIHBj
aEFwcEtleSk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKklkZW50aWZ5QXBwbGljYXRpb24pKHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICog
cGNoQXBwS2V5KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEFwcGxpY2F0aW9uUHJvY2Vzc0lkKShjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBjaGFyICog
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51
bSkoRVZSQXBwbGljYXRpb25FcnJvciBlcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKShjaGFyICogcGNo
QXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgY2hhciAqIHBjaFByb3Bl
cnR5VmFsdWVCdWZmZXIsIHVpbnQzMl90IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgRVZSQXBw
bGljYXRpb25FcnJvciAqIHBlRXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCkoY2hhciAqIHBjaEFwcEtleSwgRVZS
QXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBwZUVy
cm9yKTsKKyAgICAgICB1aW50NjRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxp
Y2F0aW9uUHJvcGVydHlVaW50NjQpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJv
cGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJvcik7CisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEFwcGxpY2F0
aW9uQXV0b0xhdW5jaCkoY2hhciAqIHBjaEFwcEtleSwgYm9vbCBiQXV0b0xhdW5jaCk7CisgICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uQXV0b0xhdW5j
aCkoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFy
ICogcGNoQXBwS2V5LCBjaGFyICogcGNoTWltZVR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSkoY2hhciAq
IHBjaE1pbWVUeXBlLCBjaGFyICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1
ZmZlckxlbik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxp
Y2F0aW9uU3VwcG9ydGVkTWltZVR5cGVzKShjaGFyICogcGNoQXBwS2V5LCBjaGFyICogcGNoTWlt
ZVR5cGVzQnVmZmVyLCB1aW50MzJfdCB1bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1p
bWVUeXBlKShjaGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBwY2hBcHBLZXlzVGhhdFN1cHBvcnRC
dWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyKTsKKyAgICAgICB1aW50
MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1l
bnRzKSh1aW50MzJfdCB1bkhhbmRsZSwgY2hhciAqIHBjaEFyZ3MsIHVpbnQzMl90IHVuQXJncyk7
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dFN0YXJ0aW5nQXBwbGljYXRpb24pKGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVu
QXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYW5zaXRpb25TdGF0ZSkoKTsKKyAgICAgICBF
VlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUGVyZm9ybUFwcGxp
Y2F0aW9uUHJlbGF1bmNoQ2hlY2spKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5h
bWVGcm9tRW51bSkoRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVk
KSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpMYXVuY2hJbnRlcm5hbFByb2Nlc3MpKGNoYXIgKiBwY2hCaW5hcnlQYXRoLCBjaGFyICogcGNo
QXJndW1lbnRzLCBjaGFyICogcGNoV29ya2luZ0RpcmVjdG9yeSk7CisgICAgICAgdWludDMyX3Qg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQpKCk7Cit9
OworCitzdHJ1Y3QgVlJfSVZSQ2hhcGVyb25lX0ZuVGFibGUKK3sKKyAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FsaWJyYXRpb25T
dGF0ZSkoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UGxheUFy
ZWFTaXplKShmbG9hdCAqIHBTaXplWCwgZmxvYXQgKiBwU2l6ZVopOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQbGF5QXJlYVJlY3QpKHN0cnVjdCBIbWRRdWFkX3Qg
KiByZWN0KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsb2FkSW5m
bykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U2NlbmVDb2xv
cikoc3RydWN0IEhtZENvbG9yX3QgY29sb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRCb3VuZHNDb2xvcikoc3RydWN0IEhtZENvbG9yX3QgKiBwT3V0cHV0Q29s
b3JBcnJheSwgaW50IG5OdW1PdXRwdXRDb2xvcnMsIGZsb2F0IGZsQ29sbGlzaW9uQm91bmRzRmFk
ZURpc3RhbmNlLCBzdHJ1Y3QgSG1kQ29sb3JfdCAqIHBPdXRwdXRDYW1lcmFDb2xvcik7CisgICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFyZUJvdW5kc1Zpc2libGUpKCk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZvcmNlQm91bmRzVmlzaWJsZSko
Ym9vbCBiRm9yY2UpOworfTsKKworc3RydWN0IFZSX0lWUkNoYXBlcm9uZVNldHVwX0ZuVGFibGUK
K3sKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tbWl0V29ya2luZ0Nv
cHkpKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpSZXZlcnRXb3JraW5nQ29weSkoKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1BsYXlBcmVhU2l6ZSkoZmxvYXQgKiBw
U2l6ZVgsIGZsb2F0ICogcFNpemVaKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0V29ya2luZ1BsYXlBcmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJlY3QpOwor
ICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nQ29sbGlzaW9u
Qm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBw
dW5RdWFkc0NvdW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIs
IHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1
Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsK
KyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1N0YW5kaW5n
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0U3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ1BsYXlBcmVhU2l6ZSkoZmxvYXQgc2l6ZVgsIGZsb2F0
IHNpemVaKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2lu
Z0NvbGxpc2lvbkJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVp
bnQzMl90IHVuUXVhZHNDb3VudCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1k
TWF0cml4MzRfdCAqIHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwTWF0U3RhbmRpbmda
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqUmVsb2FkRnJvbURpc2spKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUp
OworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlU2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0U2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbykodWludDhfdCAqIHBU
YWdzQnVmZmVyLCB1aW50MzJfdCB1blRhZ0NvdW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICog
cFRhZ3NCdWZmZXIsIHVpbnQzMl90ICogcHVuVGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvKShzdHJ1Y3Qg
SG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZv
KShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1YWRzQ291
bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpFeHBvcnRMaXZlVG9C
dWZmZXIpKGNoYXIgKiBwQnVmZmVyLCB1aW50MzJfdCAqIHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2lu
ZykoY2hhciAqIHBCdWZmZXIsIHVpbnQzMl90IG5JbXBvcnRGbGFncyk7Cit9OworCitzdHJ1Y3Qg
VlJfSVZSQ29tcG9zaXRvcl9GblRhYmxlCit7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldFRyYWNraW5nU3BhY2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmln
aW4pOworICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0VHJhY2tpbmdTcGFjZSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpXYWl0R2V0UG9zZXMpKHN0cnVjdCBUcmFja2VkRGV2aWNl
UG9zZV90ICogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3Vu
dCwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3Qg
dW5HYW1lUG9zZUFycmF5Q291bnQpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExhc3RQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3Nl
X3QgKiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBz
dHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdh
bWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgpKFRyYWNrZWRE
ZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICog
cE91dHB1dFBvc2UsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dEdhbWVQb3Nl
KTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
dWJtaXQpKEVWUkV5ZSBlRXllLCBzdHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmUsIHN0cnVjdCBW
UlRleHR1cmVCb3VuZHNfdCAqIHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7
CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNsZWFyTGFzdFN1Ym1pdHRl
ZEZyYW1lKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb3N0UHJl
c2VudEhhbmRvZmYpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEZyYW1lVGltaW5nKShzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1pbmcsIHVp
bnQzMl90IHVuRnJhbWVzQWdvKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEZyYW1lVGltaW5ncykoc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiBw
VGltaW5nLCB1aW50MzJfdCBuRnJhbWVzKTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldEZyYW1lVGltZVJlbWFpbmluZykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VtdWxhdGl2ZVN0YXRzKShzdHJ1Y3QgQ29tcG9zaXRvcl9D
dW11bGF0aXZlU3RhdHMgKiBwU3RhdHMsIHVpbnQzMl90IG5TdGF0c1NpemVJbkJ5dGVzKTsKKyAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRmFkZVRvQ29sb3IpKGZsb2F0IGZT
ZWNvbmRzLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxw
aGEsIGJvb2wgYkJhY2tncm91bmQpOworICAgICAgIHN0cnVjdCBIbWRDb2xvcl90IChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VycmVudEZhZGVDb2xvcikoYm9vbCBiQmFja2dyb3VuZCk7
CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZhZGVHcmlkKShmbG9hdCBm
U2Vjb25kcywgYm9vbCBiRmFkZUluKTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEN1cnJlbnRHcmlkQWxwaGEpKCk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U2t5Ym94T3ZlcnJpZGUpKHN0cnVjdCBUZXh0
dXJlX3QgKiBwVGV4dHVyZXMsIHVpbnQzMl90IHVuVGV4dHVyZUNvdW50KTsKKyAgICAgICB2b2lk
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ2xlYXJTa3lib3hPdmVycmlkZSkoKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckJyaW5nVG9Gcm9udCko
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckdvVG9C
YWNrKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9y
UXVpdCkoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNGdWxsc2Ny
ZWVuKSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3Vy
cmVudFNjZW5lRm9jdXNQcm9jZXNzKSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0TGFzdEZyYW1lUmVuZGVyZXIpKCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkNhblJlbmRlclNjZW5lKSgpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTaG93TWlycm9yV2luZG93KSgpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpIaWRlTWlycm9yV2luZG93KSgpOworICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc01pcnJvcldpbmRvd1Zpc2libGUpKCk7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JEdW1wSW1hZ2VzKSgp
OworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG91bGRBcHBSZW5kZXJX
aXRoTG93UmVzb3VyY2VzKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24pKGJvb2wgYk92ZXJyaWRlKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRm9yY2VSZWNvbm5lY3RQcm9jZXNzKSgp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdXNwZW5kUmVuZGVyaW5n
KShib29sIGJTdXNwZW5kKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRNaXJyb3JUZXh0dXJlRDNEMTEpKEVWUkV5ZSBlRXllLCB2b2lkICog
cEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZU1pcnJvclRl
eHR1cmVEM0QxMSkodm9pZCAqIHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgRVZS
Q29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TWlycm9yVGV4dHVy
ZUdMKShFVlJFeWUgZUV5ZSwgZ2xVSW50X3QgKiBwZ2xUZXh0dXJlSWQsIGdsU2hhcmVkVGV4dHVy
ZUhhbmRsZV90ICogcGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VTaGFyZWRHTFRleHR1cmUpKGdsVUludF90IGdsVGV4
dHVyZUlkLCBnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2NrR0xTaGFyZWRUZXh0dXJl
Rm9yQWNjZXNzKShnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpVbmxvY2tHTFNoYXJlZFRl
eHR1cmVGb3JBY2Nlc3MpKGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhh
bmRsZSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWdWxr
YW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCkoY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1
bkJ1ZmZlclNpemUpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKShzdHJ1Y3QgVmtQaHlzaWNhbERldmlj
ZV9UICogcFBoeXNpY2FsRGV2aWNlLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVy
U2l6ZSk7Cit9OworCitzdHJ1Y3QgVlJfSVZST3ZlcmxheV9GblRhYmxlCit7CisgICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRmluZE92ZXJsYXkpKGNoYXIg
KiBwY2hPdmVybGF5S2V5LCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDcmVhdGVPdmVy
bGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwgY2hhciAqIHBjaE92ZXJsYXlGcmllbmRseU5hbWUs
IFZST3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkRlc3Ryb3lPdmVybGF5KShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEhpZ2hRdWFsaXR5T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBWUk92ZXJsYXlIYW5kbGVfdCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldEhpZ2hRdWFsaXR5T3ZlcmxheSkoKTsKKyAgICAgICB1aW50MzJf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlLZXkpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNp
emUsIEVWUk92ZXJsYXlFcnJvciAqIHBFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5TmFtZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3Zl
cmxheUVycm9yICogcEVycm9yKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRPdmVybGF5SW1hZ2VEYXRhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIHZvaWQgKiBwdkJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJTaXplLCB1aW50
MzJfdCAqIHB1bldpZHRoLCB1aW50MzJfdCAqIHB1bkhlaWdodCk7CisgICAgICAgY2hhciAqIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKShFVlJP
dmVybGF5RXJyb3IgZXJyb3IpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlSZW5kZXJpbmdQaWQpKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5QSUQpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpTZXRPdmVybGF5RmxhZykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlG
bGFnKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdzIGVP
dmVybGF5RmxhZywgYm9vbCAqIHBiRW5hYmxlZCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUNvbG9yKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlDb2xvcikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBm
UmVkLCBmbG9hdCAqIHBmR3JlZW4sIGZsb2F0ICogcGZCbHVlKTsKKyAgICAgICBFVlJPdmVybGF5
RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5QWxwaGEpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZkFscGhhKTsKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5QWxwaGEpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZkFscGhhKTsKKyAgICAgICBF
VlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VGV4ZWxB
c3BlY3QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNw
ZWN0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRPdmVybGF5VGV4ZWxBc3BlY3QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
ZmxvYXQgKiBwZlRleGVsQXNwZWN0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5U29ydE9yZGVyKShWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuU29ydE9yZGVyKTsKKyAgICAgICBFVlJPdmVybGF5
RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5U29ydE9yZGVyKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICogcHVuU29ydE9yZGVyKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5V2lkdGhJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9h
dCBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZldpZHRoSW5NZXRlcnMpOworICAgICAgIEVWUk92ZXJs
YXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0
YW5jZVJhbmdlSW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxv
YXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0IGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5
QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0ICogcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCAqIHBmTWF4RGlz
dGFuY2VJbk1ldGVycyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKShWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAg
RVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1
cmVDb2xvclNwYWNlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNw
YWNlICogcGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcE92ZXJs
YXlUZXh0dXJlQm91bmRzKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRleHR1cmVC
b3VuZHMpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIFZST3ZlcmxheVRyYW5zZm9ybVR5cGUgKiBwZVRyYW5zZm9ybVR5cGUpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUcmFuc2Zv
cm1BYnNvbHV0ZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdV
bml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1h
dFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmln
aW4gKiBwZVRyYWNraW5nT3JpZ2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2lu
Z09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxh
dGl2ZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5k
ZXhfdCB1blRyYWNrZWREZXZpY2UsIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWRE
ZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRp
dmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4
X3QgKiBwdW5UcmFja2VkRGV2aWNlLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2Vk
RGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5k
ZXhfdCB1bkRldmljZUluZGV4LCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7CisgICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VDb21wb25lbnQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgVHJhY2tlZERldmljZUluZGV4X3QgKiBwdW5EZXZpY2VJbmRleCwgY2hhciAqIHBjaENvbXBv
bmVudE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZVNpemUpOworICAgICAgIEVWUk92ZXJs
YXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dPdmVybGF5KShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkhpZGVPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc092ZXJs
YXlWaXNpYmxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYW5zZm9ybUZvck92
ZXJsYXlDb29yZGluYXRlcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRWZWN0b3IyX3Qg
Y29vcmRpbmF0ZXNJbk92ZXJsYXksIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYW5zZm9y
bSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvbGxOZXh0T3Zlcmxh
eUV2ZW50KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBWUkV2ZW50
X3QgKiBwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50KTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5SW5wdXRNZXRob2QpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgKiBwZUlu
cHV0TWV0aG9kKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRPdmVybGF5SW5wdXRNZXRob2QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgZUlucHV0TWV0aG9kKTsKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5TW91c2VTY2FsZSko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgSG1kVmVjdG9yMl90ICog
cHZlY01vdXNlU2NhbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlNb3VzZVNjYWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwdmVjTW91c2VTY2FsZSk7CisgICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9u
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBWUk92ZXJsYXlJbnRl
cnNlY3Rpb25QYXJhbXNfdCAqIHBQYXJhbXMsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25S
ZXN1bHRzX3QgKiBwUmVzdWx0cyk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxl
ckRldmljZUluZGV4KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNI
b3ZlclRhcmdldE92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7Cisg
ICAgICAgVlJPdmVybGF5SGFuZGxlX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRHYW1l
cGFkRm9jdXNPdmVybGF5KSgpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKlNldEdhbWVwYWRGb2N1c092ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVs
TmV3Rm9jdXNPdmVybGF5KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTZXRPdmVybGF5TmVpZ2hib3IpKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rp
b24sIFZST3ZlcmxheUhhbmRsZV90IHVsRnJvbSwgVlJPdmVybGF5SGFuZGxlX3QgdWxUbyk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTW92ZUdhbWVw
YWRGb2N1c1RvTmVpZ2hib3IpKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3Zlcmxh
eUhhbmRsZV90IHVsRnJvbSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlKTsKKyAgICAgICBFVlJPdmVybGF5
RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDbGVhck92ZXJsYXlUZXh0dXJlKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlSYXcpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqIHB2QnVmZmVyLCB1aW50MzJfdCB1bldpZHRoLCB1aW50
MzJfdCB1bkhlaWdodCwgdWludDMyX3QgdW5EZXB0aCk7CisgICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUZyb21GaWxlKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKiBwY2hGaWxlUGF0aCk7CisgICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmUp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqKiBwTmF0aXZlVGV4dHVy
ZUhhbmRsZSwgdm9pZCAqIHBOYXRpdmVUZXh0dXJlUmVmLCB1aW50MzJfdCAqIHBXaWR0aCwgdWlu
dDMyX3QgKiBwSGVpZ2h0LCB1aW50MzJfdCAqIHBOYXRpdmVGb3JtYXQsIEVUZXh0dXJlVHlwZSAq
IHBBUElUeXBlLCBFQ29sb3JTcGFjZSAqIHBDb2xvclNwYWNlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91
bmRzX3QgKiBwVGV4dHVyZUJvdW5kcyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqIHBOYXRpdmVUZXh0dXJlSGFuZGxlKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5
VGV4dHVyZVNpemUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3Qg
KiBwV2lkdGgsIHVpbnQzMl90ICogcEhlaWdodCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSkoY2hhciAqIHBj
aE92ZXJsYXlLZXksIGNoYXIgKiBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5k
bGVfdCAqIHBNYWluSGFuZGxlLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBUaHVtYm5haWxIYW5kbGUp
OworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Rhc2hib2FyZFZpc2li
bGUpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzQWN0aXZlRGFz
aGJvYXJkT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXREYXNoYm9hcmRP
dmVybGF5U2NlbmVQcm9jZXNzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQzMl90IHVuUHJvY2Vzc0lkKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICogcHVuUHJvY2Vzc0lkKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0Rhc2hib2FyZCkoY2hhciAqIHBj
aE92ZXJsYXlUb1Nob3cpOworICAgICAgIFRyYWNrZWREZXZpY2VJbmRleF90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0UHJpbWFyeURhc2hib2FyZERldmljZSkoKTsKKyAgICAgICBFVlJP
dmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93S2V5Ym9hcmQpKEVHYW1l
cGFkVGV4dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVM
aW5lSW5wdXRNb2RlLCBjaGFyICogcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwg
Y2hhciAqIHBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVV
c2VyVmFsdWUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlNob3dLZXlib2FyZEZvck92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0
TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNoYXIgKiBwY2hEZXNjcmlwdGlvbiwgdWludDMyX3Qg
dW5DaGFyTWF4LCBjaGFyICogcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwg
dWludDY0X3QgdVVzZXJWYWx1ZSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRLZXlib2FyZFRleHQpKGNoYXIgKiBwY2hUZXh0LCB1aW50MzJfdCBjY2hUZXh0
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGlkZUtleWJvYXJkKSgp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRLZXlib2FyZFRyYW5z
Zm9ybUFic29sdXRlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIHN0
cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9y
bSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVj
dCBIbWRSZWN0Ml90IGF2b2lkUmVjdCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2spKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQ
cmltaXRpdmVfdCAqIHBNYXNrUHJpbWl0aXZlcywgdWludDMyX3QgdW5OdW1NYXNrUHJpbWl0aXZl
cywgdWludDMyX3QgdW5QcmltaXRpdmVTaXplKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5RmxhZ3MpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKiBwRmxhZ3MpOworICAgICAgIFZSTWVzc2FnZU92
ZXJsYXlSZXNwb25zZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dNZXNzYWdlT3Zlcmxh
eSkoY2hhciAqIHBjaFRleHQsIGNoYXIgKiBwY2hDYXB0aW9uLCBjaGFyICogcGNoQnV0dG9uMFRl
eHQsIGNoYXIgKiBwY2hCdXR0b24xVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjJUZXh0LCBjaGFyICog
cGNoQnV0dG9uM1RleHQpOworfTsKKworc3RydWN0IFZSX0lWUlJlbmRlck1vZGVsc19GblRhYmxl
Cit7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkxvYWRSZW5kZXJNb2RlbF9Bc3luYykoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgc3RydWN0
IFJlbmRlck1vZGVsX3QgKiogcHBSZW5kZXJNb2RlbCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkZyZWVSZW5kZXJNb2RlbCkoc3RydWN0IFJlbmRlck1vZGVsX3QgKiBw
UmVuZGVyTW9kZWwpOworICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpMb2FkVGV4dHVyZV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCBzdHJ1
Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICoqIHBwVGV4dHVyZSk7CisgICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZyZWVUZXh0dXJlKShzdHJ1Y3QgUmVuZGVyTW9kZWxf
VGV4dHVyZU1hcF90ICogcFRleHR1cmUpOworICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkVGV4dHVyZUQzRDExX0FzeW5jKShUZXh0dXJlSURf
dCB0ZXh0dXJlSWQsIHZvaWQgKiBwRDNEMTFEZXZpY2UsIHZvaWQgKiogcHBEM0QxMVRleHR1cmUy
RCk7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQg
KiBwRHN0VGV4dHVyZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZy
ZWVUZXh0dXJlRDNEMTEpKHZvaWQgKiBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIHVpbnQzMl90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxOYW1lKSh1aW50MzJfdCB1
blJlbmRlck1vZGVsSW5kZXgsIGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVu
UmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFJlbmRlck1vZGVsQ291bnQpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRDb3VudCkoY2hhciAqIHBjaFJlbmRlck1vZGVs
TmFtZSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21w
b25lbnROYW1lKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVu
dEluZGV4LCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnROYW1l
TGVuKTsKKyAgICAgICB1aW50NjRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBv
bmVudEJ1dHRvbk1hc2spKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21w
b25lbnROYW1lKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hh
ciAqIHBjaENvbXBvbmVudE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUs
IHVpbnQzMl90IHVuQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50U3RhdGUpKGNoYXIgKiBwY2hSZW5k
ZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lLCBWUkNvbnRyb2xsZXJTdGF0ZV90
ICogcENvbnRyb2xsZXJTdGF0ZSwgc3RydWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0
YXRlX3QgKiBwU3RhdGUsIHN0cnVjdCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICogcENv
bXBvbmVudFN0YXRlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVu
ZGVyTW9kZWxIYXNDb21wb25lbnQpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBw
Y2hDb21wb25lbnROYW1lKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1l
LCBjaGFyICogcGNoVGh1bWJuYWlsVVJMLCB1aW50MzJfdCB1blRodW1ibmFpbFVSTExlbiwgRVZS
UmVuZGVyTW9kZWxFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgpKGNoYXIgKiBwY2hSZW5k
ZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hPcmlnaW5hbFBhdGgsIHVpbnQzMl90IHVuT3JpZ2luYWxQ
YXRoTGVuLCBFVlJSZW5kZXJNb2RlbEVycm9yICogcGVFcnJvcik7CisgICAgICAgY2hhciAqIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSko
RVZSUmVuZGVyTW9kZWxFcnJvciBlcnJvcik7Cit9OworCitzdHJ1Y3QgVlJfSVZSTm90aWZpY2F0
aW9uc19GblRhYmxlCit7CisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpDcmVhdGVOb3RpZmljYXRpb24pKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgdWludDY0X3QgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlw
ZSwgY2hhciAqIHBjaFRleHQsIEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCBzdHJ1Y3QgTm90
aWZpY2F0aW9uQml0bWFwX3QgKiBwSW1hZ2UsIFZSTm90aWZpY2F0aW9uSWQgKiBwTm90aWZpY2F0
aW9uSWQpOworICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqUmVtb3ZlTm90aWZpY2F0aW9uKShWUk5vdGlmaWNhdGlvbklkIG5vdGlmaWNhdGlvbklk
KTsKK307CisKK3N0cnVjdCBWUl9JVlJTZXR0aW5nc19GblRhYmxlCit7CisgICAgICAgY2hhciAq
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSko
RVZSU2V0dGluZ3NFcnJvciBlRXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTeW5jKShib29sIGJGb3JjZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRCb29sKShjaGFyICogcGNo
U2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBib29sIGJWYWx1ZSwgRVZSU2V0dGluZ3NF
cnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRJbnQzMikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgaW50MzJf
dCBuVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RmxvYXQpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICog
cGNoU2V0dGluZ3NLZXksIGZsb2F0IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9y
KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U3RyaW5nKShjaGFy
ICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBjaGFyICogcGNoVmFsdWUsIEVW
UlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0Qm9vbCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tl
eSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIGludDMyX3QgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRJbnQzMikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hT
ZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIGZsb2F0IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RmxvYXQpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFy
ICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RyaW5nKShjaGFyICogcGNoU2VjdGlv
biwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFs
dWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlU2VjdGlvbikoY2hhciAqIHBjaFNlY3Rpb24sIEVWUlNl
dHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqUmVtb3ZlS2V5SW5TZWN0aW9uKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNl
dHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7Cit9OworCitzdHJ1Y3QgVlJf
SVZSU2NyZWVuc2hvdHNfRm5UYWJsZQoreworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlcXVlc3RTY3JlZW5zaG90KShTY3JlZW5zaG90SGFuZGxl
X3QgKiBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY2hhciAq
IHBjaFByZXZpZXdGaWxlbmFtZSwgY2hhciAqIHBjaFZSRmlsZW5hbWUpOworICAgICAgIEVWUlNj
cmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhvb2tTY3JlZW5zaG90KShF
VlJTY3JlZW5zaG90VHlwZSAqIHBTdXBwb3J0ZWRUeXBlcywgaW50IG51bVR5cGVzKTsKKyAgICAg
ICBFVlJTY3JlZW5zaG90VHlwZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNjcmVlbnNo
b3RQcm9wZXJ0eVR5cGUpKFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCBFVlJT
Y3JlZW5zaG90RXJyb3IgKiBwRXJyb3IpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUpKFNjcmVlbnNob3RIYW5k
bGVfdCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmls
ZW5hbWVUeXBlLCBjaGFyICogcGNoRmlsZW5hbWUsIHVpbnQzMl90IGNjaEZpbGVuYW1lLCBFVlJT
Y3JlZW5zaG90RXJyb3IgKiBwRXJyb3IpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcykoU2NyZWVuc2hv
dEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIGZsb2F0IGZsUHJvZ3Jlc3MpOworICAgICAgIEVW
UlNjcmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRha2VTdGVyZW9TY3Jl
ZW5zaG90KShTY3JlZW5zaG90SGFuZGxlX3QgKiBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgY2hhciAq
IHBjaFByZXZpZXdGaWxlbmFtZSwgY2hhciAqIHBjaFZSRmlsZW5hbWUpOworICAgICAgIEVWUlNj
cmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1pdFNjcmVlbnNob3Qp
KFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0
eXBlLCBjaGFyICogcGNoU291cmNlUHJldmlld0ZpbGVuYW1lLCBjaGFyICogcGNoU291cmNlVlJG
aWxlbmFtZSk7Cit9OworCitzdHJ1Y3QgVlJfSVZSUmVzb3VyY2VzX0ZuVGFibGUKK3sKKyAgICAg
ICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRTaGFyZWRSZXNvdXJjZSko
Y2hhciAqIHBjaFJlc291cmNlTmFtZSwgY2hhciAqIHBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZm
ZXJMZW4pOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVz
b3VyY2VGdWxsUGF0aCkoY2hhciAqIHBjaFJlc291cmNlTmFtZSwgY2hhciAqIHBjaFJlc291cmNl
VHlwZURpcmVjdG9yeSwgY2hhciAqIHBjaFBhdGhCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVu
KTsKK307CisKKworI2lmIDAKKy8vIEdsb2JhbCBlbnRyeSBwb2ludHMKK1NfQVBJIGludHB0cl90
IFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5
cGUgZVR5cGUgKTsKK1NfQVBJIHZvaWQgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworU19BUEkgYm9v
bCBWUl9Jc0htZFByZXNlbnQoKTsKK1NfQVBJIGludHB0cl90IFZSX0dldEdlbmVyaWNJbnRlcmZh
Y2UoIGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJv
ciApOworU19BUEkgYm9vbCBWUl9Jc1J1bnRpbWVJbnN0YWxsZWQoKTsKK1NfQVBJIGNvbnN0IGNo
YXIgKiBWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKK1Nf
QVBJIGNvbnN0IGNoYXIgKiBWUl9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBF
VlJJbml0RXJyb3IgZXJyb3IgKTsKKyNlbmRpZgorCisjZW5kaWYgLy8gX19PUEVOVlJfQVBJX0ZM
QVRfSF9fCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMv
b3BlbnZyX2RyaXZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZy
X2RyaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZDFmNzExNTlkYzM3ODVjMDllY2RlZDliZjQwZTU5Mzll
MjQ2NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVy
cy9vcGVudnJfZHJpdmVyLmgKQEAgLTAsMCArMSwyNTQxIEBACisjcHJhZ21hIG9uY2UKKworLy8g
b3BlbnZyX2RyaXZlci5oCisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24g
PT09PT09PT09PT09Ly8KKy8vIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmaWxlLiBEbyBub3QgbW9k
aWZ5IHRoaXMgZmlsZSBkaXJlY3RseS4KKworI2lmbmRlZiBfT1BFTlZSX0RSSVZFUl9BUEkKKyNk
ZWZpbmUgX09QRU5WUl9EUklWRVJfQVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisKKy8v
IHZydHlwZXMuaAorI2lmbmRlZiBfSU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lOQ0xVREVf
VlJUWVBFU19ICisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyB2
dWxrYW4uaAorc3RydWN0IFZrRGV2aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UOwor
c3RydWN0IFZrSW5zdGFuY2VfVDsKK3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndhcmQgZGVj
bGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEyUmVzb3Vy
Y2U7CitzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sKKworI2lm
IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisgICAgICAgLy8gVGhl
IDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3Ig
dWludDY0IGFuZCBkb3VibGUgc2V0IHRvCisgICAgICAgLy8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3
aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFs
aWduZWQuCisgICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdu
bWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMgc2V0IHRvCisgICAgICAgLy8gOCBtZWFu
aW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBhY2soNCkgb3VyIHN0cnVjdHVyZXMgd2ls
bCBnZXQgYmlnZ2VyLgorICAgICAgIC8vIFRoZSA2NC1iaXQgc3RydWN0dXJlIHBhY2tpbmcgaGFz
IHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBhY2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0u
CisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbHNlCisgICAgICAgI3ByYWdtYSBw
YWNrKCBwdXNoLCA4ICkKKyNlbmRpZgorCit0eXBlZGVmIHZvaWQqIGdsU2hhcmVkVGV4dHVyZUhh
bmRsZV90OwordHlwZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUlu
dF90OworCisvLyByaWdodC1oYW5kZWQgc3lzdGVtCisvLyAreSBpcyB1cAorLy8gK3ggaXMgdG8g
dGhlIHJpZ2h0CisvLyAteiBpcyBnb2luZyBhd2F5IGZyb20geW91CisvLyBEaXN0YW5jZSB1bml0
IGlzICBtZXRlcnMKK3N0cnVjdCBIbWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0
XTsKK307CisKK3N0cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQgbVs0XVs0XTsK
K307CisKK3N0cnVjdCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOworfTsKKwor
c3RydWN0IEhtZFZlY3RvcjRfdAoreworICAgICAgIGZsb2F0IHZbNF07Cit9OworCitzdHJ1Y3Qg
SG1kVmVjdG9yM2RfdAoreworICAgICAgIGRvdWJsZSB2WzNdOworfTsKKworc3RydWN0IEhtZFZl
Y3RvcjJfdAoreworICAgICAgIGZsb2F0IHZbMl07Cit9OworCitzdHJ1Y3QgSG1kUXVhdGVybmlv
bl90Cit7CisgICAgICAgZG91YmxlIHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgSG1kQ29sb3Jf
dAoreworICAgICAgIGZsb2F0IHIsIGcsIGIsIGE7Cit9OworCitzdHJ1Y3QgSG1kUXVhZF90Cit7
CisgICAgICAgSG1kVmVjdG9yM190IHZDb3JuZXJzWyA0IF07Cit9OworCitzdHJ1Y3QgSG1kUmVj
dDJfdAoreworICAgICAgIEhtZFZlY3RvcjJfdCB2VG9wTGVmdDsKKyAgICAgICBIbWRWZWN0b3Iy
X3QgdkJvdHRvbVJpZ2h0OworfTsKKworLyoqIFVzZWQgdG8gcmV0dXJuIHRoZSBwb3N0LWRpc3Rv
cnRpb24gVVZzIGZvciBlYWNoIGNvbG9yIGNoYW5uZWwuIAorKiBVVnMgcmFuZ2UgZnJvbSAwIHRv
IDEgd2l0aCAwLDAgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSAKKyogc291cmNlIHJl
bmRlciB0YXJnZXQuIFRoZSAwLDAgdG8gMSwxIHJhbmdlIGNvdmVycyBhIHNpbmdsZSBleWUuICov
CitzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKK3sKKyAgICAgICBmbG9hdCByZlJlZFsy
XTsKKyAgICAgICBmbG9hdCByZkdyZWVuWzJdOworICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsKK307
CisKK2VudW0gRVZSRXllCit7CisgICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdo
dCA9IDEKK307CisKK2VudW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgVGV4dHVyZVR5cGVfRGly
ZWN0WCA9IDAsIC8vIEhhbmRsZSBpcyBhbiBJRDNEMTFUZXh0dXJlCisgICAgICAgVGV4dHVyZVR5
cGVfT3BlbkdMID0gMSwgIC8vIEhhbmRsZSBpcyBhbiBPcGVuR0wgdGV4dHVyZSBuYW1lIG9yIGFu
IE9wZW5HTCByZW5kZXIgYnVmZmVyIG5hbWUsIGRlcGVuZGluZyBvbiBzdWJtaXQgZmxhZ3MKKyAg
ICAgICBUZXh0dXJlVHlwZV9WdWxrYW4gPSAyLCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEg
VlJWdWxrYW5UZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorICAgICAgIFRleHR1cmVUeXBlX0lPU3Vy
ZmFjZSA9IDMsIC8vIEhhbmRsZSBpcyBhIG1hY09TIGNyb3NzLXByb2Nlc3Mtc2hhcmFibGUgSU9T
dXJmYWNlCisgICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwgLy8gSGFuZGxlIGlzIGEg
cG9pbnRlciB0byBhIEQzRDEyVGV4dHVyZURhdGFfdCBzdHJ1Y3R1cmUKK307CisKK2VudW0gRUNv
bG9yU3BhY2UKK3sKKyAgICAgICBDb2xvclNwYWNlX0F1dG8gPSAwLCAgICAgICAvLyBBc3N1bWVz
ICdnYW1tYScgZm9yIDgtYml0IHBlciBjb21wb25lbnQgZm9ybWF0cywgb3RoZXJ3aXNlICdsaW5l
YXInLiAgVGhpcyBtaXJyb3JzIHRoZSBEWEdJIGZvcm1hdHMgd2hpY2ggaGF2ZSBfU1JHQiB2YXJp
YW50cy4KKyAgICAgICBDb2xvclNwYWNlX0dhbW1hID0gMSwgICAgICAgLy8gVGV4dHVyZSBkYXRh
IGNhbiBiZSBkaXNwbGF5ZWQgZGlyZWN0bHkgb24gdGhlIGRpc3BsYXkgd2l0aG91dCBhbnkgY29u
dmVyc2lvbiAoYS5rLmEuIGRpc3BsYXkgbmF0aXZlIGZvcm1hdCkuCisgICAgICAgQ29sb3JTcGFj
ZV9MaW5lYXIgPSAyLCAgICAgICAvLyBTYW1lIGFzIGdhbW1hIGJ1dCBoYXMgYmVlbiBjb252ZXJ0
ZWQgdG8gYSBsaW5lYXIgcmVwcmVzZW50YXRpb24gdXNpbmcgRFhHSSdzIHNSR0IgY29udmVyc2lv
biBhbGdvcml0aG0uCit9OworCitzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgdm9pZCogaGFu
ZGxlOyAvLyBTZWUgRVRleHR1cmVUeXBlIGRlZmluaXRpb24gYWJvdmUKKyAgICAgICBFVGV4dHVy
ZVR5cGUgZVR5cGU7CisgICAgICAgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9OworCisvLyBI
YW5kbGUgdG8gYSBzaGFyZWQgdGV4dHVyZSAoSEFORExFIG9uIFdpbmRvd3Mgb2J0YWluZWQgdXNp
bmcgT3BlblNoYXJlZFJlc291cmNlKS4KK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhh
bmRsZV90OworI2RlZmluZSBJTlZBTElEX1NIQVJFRF9URVhUVVJFX0hBTkRMRSAgICAgICAoKHZy
OjpTaGFyZWRUZXh0dXJlSGFuZGxlX3QpMCkKKworZW51bSBFVHJhY2tpbmdSZXN1bHQKK3sKKyAg
ICAgICBUcmFja2luZ1Jlc3VsdF9VbmluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgPSAx
LAorCisgICAgICAgVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyAgICAgICA9
IDEwMCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlICAgICAg
ID0gMTAxLAorCisgICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9m
UmFuZ2UgICAgICAgICAgICAgID0gMjAxLAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtf
dW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OworCisvKiogVXNlZCB0byBwYXNz
IGRldmljZSBJRHMgdG8gQVBJIGNhbGxzICovCit0eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZp
Y2VJbmRleF90Oworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhf
SG1kID0gMDsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50
ID0gMTY7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleE90aGVy
ID0gMHhGRkZGRkZGRTsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUlu
ZGV4SW52YWxpZCA9IDB4RkZGRkZGRkY7CisKKy8qKiBEZXNjcmliZXMgd2hhdCBraW5kIG9mIG9i
amVjdCBpcyBiZWluZyB0cmFja2VkIGF0IGEgZ2l2ZW4gSUQgKi8KK2VudW0gRVRyYWNrZWREZXZp
Y2VDbGFzcworeworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIElEIHdhcyBub3QgdmFsaWQuCisgICAgICAgVHJh
Y2tlZERldmljZUNsYXNzX0hNRCA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBIZWFkLU1vdW50ZWQgRGlzcGxheXMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfQ29u
dHJvbGxlciA9IDIsICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBjb250cm9sbGVycwor
ICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19HZW5lcmljVHJhY2tlciA9IDMsICAgICAgICAgICAg
ICAvLyBHZW5lcmljIHRyYWNrZXJzLCBzaW1pbGFyIHRvIGNvbnRyb2xsZXJzCisgICAgICAgVHJh
Y2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlID0gNCwgICAgICAgLy8gQ2FtZXJhIGFu
ZCBiYXNlIHN0YXRpb25zIHRoYXQgc2VydmUgYXMgdHJhY2tpbmcgcmVmZXJlbmNlIHBvaW50cwor
fTsKKworCisvKiogRGVzY3JpYmVzIHdoYXQgc3BlY2lmaWMgcm9sZSBhc3NvY2lhdGVkIHdpdGgg
YSB0cmFja2VkIGRldmljZSAqLworZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAg
ICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gSW52YWxpZCB2YWx1ZSBmb3IgY29udHJvbGxlciB0eXBlCisgICAg
ICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX0xlZnRIYW5kID0gMSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVm
dCBoYW5kCisgICAgICAgVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0SGFuZCA9IDIsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0
aGUgcmlnaHQgaGFuZAorfTsKKworCisvKiogZGVzY3JpYmVzIGEgc2luZ2xlIHBvc2UgZm9yIGEg
dHJhY2tlZCBvYmplY3QgKi8KK3N0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90Cit7CisgICAgICAg
SG1kTWF0cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIEhtZFZlY3Rv
cjNfdCB2VmVsb2NpdHk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlbG9jaXR5IGlu
IHRyYWNrZXIgc3BhY2UgaW4gbS9zCisgICAgICAgSG1kVmVjdG9yM190IHZBbmd1bGFyVmVsb2Np
dHk7ICAgICAgICAgICAgICAvLyBhbmd1bGFyIHZlbG9jaXR5IGluIHJhZGlhbnMvcyAoPykKKyAg
ICAgICBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OworICAgICAgIGJvb2wgYlBvc2VJ
c1ZhbGlkOworCisgICAgICAgLy8gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBhIGRldmlj
ZSBjb25uZWN0ZWQgZm9yIHRoaXMgc3BvdCBpbiB0aGUgcG9zZSBhcnJheS4KKyAgICAgICAvLyBJ
dCBjb3VsZCBnbyBmcm9tIHRydWUgdG8gZmFsc2UgaWYgdGhlIHVzZXIgdW5wbHVncyB0aGUgZGV2
aWNlLgorICAgICAgIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOworfTsKKworLyoqIElkZW50aWZp
ZXMgd2hpY2ggc3R5bGUgb2YgdHJhY2tpbmcgb3JpZ2luIHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0
byB1c2UKKyogZm9yIHRoZSBwb3NlcyBpdCBpcyByZXF1ZXN0aW5nICovCitlbnVtIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luCit7CisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCA9IDAsICAg
ICAgICAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNlYXRlZCB6
ZXJvIHBvc2UKKyAgICAgICBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLCAgICAgICAvLyBQ
b3NlcyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNhZmUgYm91bmRzIGNvbmZpZ3VyZWQg
YnkgdGhlIHVzZXIKKyAgICAgICBUcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkID0g
MiwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBk
ZWZpbmVkIGJ5IHRoZSBkcml2ZXIuICBJdCBoYXMgWSB1cCBhbmQgaXMgdW5pZmllZCBmb3IgZGV2
aWNlcyBvZiB0aGUgc2FtZSBkcml2ZXIuIFlvdSB1c3VhbGx5IGRvbid0IHdhbnQgdGhpcyBvbmUu
Cit9OworCisvLyBSZWZlcnMgdG8gYSBzaW5nbGUgY29udGFpbmVyIG9mIHByb3BlcnRpZXMKK3R5
cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMy
X3QgUHJvcGVydHlUeXBlVGFnX3Q7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIgPSAwOworc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOworCisvLyBVc2UgdGhl
c2UgdGFncyB0byBzZXQvZ2V0IGNvbW1vbiB0eXBlcyBhcyBzdHJ1Y3QgcHJvcGVydGllcworc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0
YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7Citz
dGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsK
K3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsK
K3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1
OworCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZE1hdHJpeDM0UHJvcGVy
dHlUYWcgPSAyMDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4
NDRQcm9wZXJ0eVRhZyA9IDIxOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5I
bWRWZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdf
dCBrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnID0gMjM7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CisKK3N0YXRpYyBjb25z
dCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEw
MDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5WUkludGVybmFsUmVz
ZXJ2ZWRfRW5kID0gMTAwMDA7CisKKworLyoqIEVhY2ggZW50cnkgaW4gdGhpcyBlbnVtIHJlcHJl
c2VudHMgYSBwcm9wZXJ0eSB0aGF0IGNhbiBiZSByZXRyaWV2ZWQgYWJvdXQgYQorKiB0cmFja2Vk
IGRldmljZS4gTWFueSBmaWVsZHMgYXJlIG9ubHkgdmFsaWQgZm9yIG9uZSBFVHJhY2tlZERldmlj
ZUNsYXNzLiAqLworZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9J
bnZhbGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDAsCisKKyAgICAgICAvLyBnZW5lcmFsIHByb3BlcnRpZXMgdGhhdCBhcHBseSB0byBh
bGwgZGV2aWNlIGNsYXNzZXMKKyAgICAgICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorICAgICAgIFByb3BfTW9kZWxOdW1i
ZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAx
LAorICAgICAgIFByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDAyLAorICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAzLAorICAgICAgIFByb3BfV2ls
bERyaWZ0SW5ZYXdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA0
LAorICAgICAgIFByb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDA1LAorICAgICAgIFByb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZp
c2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA3LAorICAgICAgIFBy
b3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5nICAgICAgID0gMTAwOCwKKyAg
ICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgID0gMTAwOSwKKyAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDEwLAorICAgICAgIFByb3BfRGV2aWNlSXNDaGFy
Z2luZ19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTEsCisgICAg
ICAgUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCAgICAgICAgICAgICAgICAgICAg
ID0gMTAxMiwgLy8gMCBpcyBlbXB0eSwgMSBpcyBmdWxsCisgICAgICAgUHJvcF9TdGF0dXNEaXNw
bGF5VHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICA9IDEwMTMsCisgICAgICAgUHJvcF9G
aXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gMTAxNCwK
KyAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxNSwKKyAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9T
dHJpbmcgICAgICAgICAgICAgID0gMTAxNiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25f
VWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxNywKKyAgICAgICBQcm9wX0Zp
cm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTAxOCwKKyAgICAgICBQcm9wX0ZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIwLAorICAg
ICAgIFByb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDIxLAorICAgICAgIFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMiwKKyAgICAgICBQcm9wX0Jsb2NrU2VydmVy
U2h1dGRvd25fQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjMsCisgICAgICAg
UHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVTeXN0ZW1XaXRoSG1kX0Jvb2wgICAgICAgPSAxMDI0LAor
ICAgICAgIFByb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCAgICAgICAgICAgICAgICAg
ICAgID0gMTAyNSwKKyAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29s
ICAgICAgICAgICAgICA9IDEwMjYsCisgICAgICAgUHJvcF9EZXZpY2VDYW5Qb3dlck9mZl9Cb29s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjcsCisgICAgICAgUHJvcF9G
aXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgICAgICAgICAgICAgID0gMTAyOCwKKyAg
ICAgICBQcm9wX0RldmljZUNsYXNzX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDI5LAorICAgICAgIFByb3BfSGFzQ2FtZXJhX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMwLAorICAgICAgIFBy
b3BfRHJpdmVyVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgPSAxMDMxLAorICAgICAg
IFByb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sICAgICAgPSAxMDMyLAorICAg
ICAgIFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgICAgICAgICAgICAgID0g
MTAzMywKKyAgICAgICBQcm9wX1BhcmVudERyaXZlcl9VaW50NjQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTAzNCwKKworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFy
ZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0hNRAorICAgICAgIFByb3BfUmVwb3J0c1Rp
bWVTaW5jZVZTeW5jX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAwLAorICAg
ICAgIFByb3BfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCAgICAgICAgICAgICAgPSAy
MDAxLAorICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9h
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAzLAorICAgICAgIFByb3Bf
Q3VycmVudFVuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAw
NCwgCisgICAgICAgUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAwNSwgCisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNr
dG9wX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDcs
CisgICAgICAgUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMDgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlNQ1NjYWxlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTAs
CisgICAgICAgUHJvcF9FZGlkVmVuZG9ySURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRf
U3RyaW5nICAgICAgICAgICAgICA9IDIwMTIsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVJp
Z2h0X1N0cmluZyAgICAgICAgICAgICA9IDIwMTMsCisgICAgICAgUHJvcF9EaXNwbGF5R0NCbGFj
a0NsYW1wX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNCwKKyAgICAgICBQ
cm9wX0VkaWRQcm9kdWN0SURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAxNSwKKyAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCAgICAg
ICAgICAgICAgICAgICAgID0gMjAxNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNywKKyAgICAgICBQcm9wX0Rp
c3BsYXlHQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDE4LAorICAgICAgIFByb3BfRGlzcGxheUdDU2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAxOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zs
b2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMCwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlHQ0ltYWdlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIx
LAorICAgICAgIFByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMjIsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMywKKyAgICAgICBQcm9wX0xl
bnNDZW50ZXJSaWdodFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAyNCwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0
aE1ldGVyc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gMjAyNiwKKyAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMjcsCisg
ICAgICAgUHJvcF9DYW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAg
PSAyMDI4LAorICAgICAgIFByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZl
cnNpb25fVWludDY0ICAgICAgICAgICAgICA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFy
ZHdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMSwKKyAgICAgICBQ
cm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAz
MiwKKyAgICAgICBQcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyICAgICAgICAgICAg
ICAgICAgICAgPSAyMDMzLAorICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9m
Vmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2Fs
RmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBw
cmVzc2VkX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNiwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlBbGxvd05pZ2h0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAzNywKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM4LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1h
Z2VIZWlnaHRfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM5LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQzMiAgICAgICAgICAgICAgPSAyMDQw
LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRhX0JpbmFyeSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwNDEsCisgICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MiwKKworICAgICAgIC8vIFByb3BlcnRp
ZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyCisgICAg
ICAgUHJvcF9BdHRhY2hlZERldmljZUlkX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDMwMDAsCisgICAgICAgUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwMDEsCisgICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDIsIC8vIFJldHVybiB2
YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczFU
eXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAz
LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAg
ICBQcm9wX0F4aXMyVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzAwNCwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4
aXNUeXBlCisgICAgICAgUHJvcF9BeGlzM1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMDUsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVW
UkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczRUeXBlX0ludDMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA2LCAvLyBSZXR1cm4gdmFsdWUg
aXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJS
b2xlSGludF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDcsIC8vIFJldHVy
biB2YWx1ZSBpcyBvZiB0eXBlIEVUcmFja2VkQ29udHJvbGxlclJvbGUKKworICAgICAgIC8vIFBy
b3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1Jl
ZmVyZW5jZQorICAgICAgIFByb3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCAgICAgICAg
ICAgICAgICAgICAgID0gNDAwMCwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVz
X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZp
ZXdUb3BEZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAyLAorICAgICAgIFBy
b3BfRmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0
MDAzLAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgICAgICAg
ICAgICAgID0gNDAwNCwKKyAgICAgICBQcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zs
b2F0ICAgICAgICAgICAgICA9IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDA2LAorCisgICAgICAg
Ly8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIGZvciB1c2VyIGludGVyZmFjZSBsaWtlIGljb25z
IG5hbWVzCisgICAgICAgUHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDAwLCAvLyB1c3VhbGx5IGEgZGlyZWN0b3J5IG5h
bWVkICJpY29ucyIKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMSwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwg
b3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90
aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgICAg
ICAgICAgICAgID0gNTAwMiwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmlt
YXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFBy
b3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyAgICAgICA9IDUwMDMs
IC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3Ig
aGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDQsIC8vIFBORyBmb3Ig
c3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5k
IDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeUFs
ZXJ0X1N0cmluZyAgICAgICAgICAgICAgPSA1MDA1LCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBv
ciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3Ro
ZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgPSA1MDA2LCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9y
IGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAg
ICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAg
ICAgICA9IDUwMDcsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9u
LCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUw
MDgsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBm
b3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKworICAgICAgIC8vIFByb3BlcnRpZXMg
dGhhdCBhcmUgdXNlZCBieSBoZWxwZXJzLCBidXQgYXJlIG9wYXF1ZSB0byBhcHBsaWNhdGlvbnMK
KyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5h
cnlfRW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTE1MCwKKworICAgICAgIC8vIFBy
b3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIGRyaXZlcnMKKyAgICAgICBQcm9wX1VzZXJDb25m
aWdQYXRoX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAwLAor
ICAgICAgIFByb3BfSW5zdGFsbFBhdGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA2MDAxLAorCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBl
eHBvc2UgcHJpdmF0ZSBkZWJ1ZyBkYXRhIGluIHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAg
UHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCAgICAgICAgICAgICAgICAgICAgID0g
MTAwMDAsCisgICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAg
ICAgICAgICAgICA9IDEwOTk5LAorfTsKKworLyoqIE5vIHN0cmluZyBwcm9wZXJ0eSB3aWxsIGV2
ZXIgYmUgbG9uZ2VyIHRoYW4gdGhpcyBsZW5ndGggKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBr
X3VuTWF4UHJvcGVydHlTdHJpbmdTaXplID0gMzIgKiAxMDI0OworCisvKiogVXNlZCB0byByZXR1
cm4gZXJyb3JzIHRoYXQgb2NjdXIgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuICovCitlbnVtIEVU
cmFja2VkUHJvcGVydHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVHJhY2tlZFBy
b3BfV3JvbmdEYXRhVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAg
VHJhY2tlZFByb3BfV3JvbmdEZXZpY2VDbGFzcyAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAg
ICAgICBUcmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDMsCisgICAgICAgVHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNCwgLy8gRHJpdmVyIGhhcyBub3Qgc2V0IHRoZSBwcm9wZXJ0eSAoYW5k
IG1heSBub3QgZXZlcikuCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZERldmljZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250
YWN0U2VydmVyICAgICAgICAgICAgICA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQ
cm92aWRlZEJ5RGV2aWNlICAgICAgID0gNywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNl
ZWRzTWF4aW11bUxlbmd0aCAgICAgICA9IDgsCisgICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZh
aWxhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOSwgLy8gVGhlIHByb3BlcnR5IHZh
bHVlIGlzbid0IGtub3duIHlldCwgYnV0IGlzIGV4cGVjdGVkIHNvb24uIENhbGwgYWdhaW4gbGF0
ZXIuCisgICAgICAgVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAg
ICAgID0gMTAsCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiAgICAgICAgICAg
ICAgICAgICAgID0gMTEsCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjb250
cm9sIHdoYXQgcGFydCBvZiB0aGUgcHJvdmlkZWQgdGV4dHVyZSB3aWxsIGJlIHVzZWQgaW4gdGhl
CisqIGZyYW1lIGJ1ZmZlci4gKi8KK3N0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAg
IGZsb2F0IHVNaW4sIHZNaW47CisgICAgICAgZmxvYXQgdU1heCwgdk1heDsKK307CisKKworLyoq
IEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY29udHJvbCBob3cgc2NlbmUgdGV4dHVyZXMgYXJl
IHVzZWQgYnkgdGhlIGNvbXBvc2l0b3Igd2hlbiBjYWxsaW5nIFN1Ym1pdC4gKi8KK2VudW0gRVZS
U3VibWl0RmxhZ3MKK3sKKyAgICAgICAvLyBTaW1wbGUgcmVuZGVyIHBhdGguIEFwcCBzdWJtaXRz
IHJlbmRlcmVkIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBubyBsZW5zIGRpc3RvcnRp
b24gY29ycmVjdGlvbiBhcHBsaWVkLgorICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMHgwMCwKKwor
ICAgICAgIC8vIEFwcCBzdWJtaXRzIGZpbmFsIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0
aCBsZW5zIGRpc3RvcnRpb24gYWxyZWFkeSBhcHBsaWVkIChsZW5zIGRpc3RvcnRpb24gbWFrZXMg
dGhlIGltYWdlcyBhcHBlYXIKKyAgICAgICAvLyBiYXJyZWwgZGlzdG9ydGVkIHdpdGggY2hyb21h
dGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhcHBsaWVkKS4gVGhlIGFwcCB3b3VsZCBoYXZlIHVz
ZWQgdGhlIGRhdGEgcmV0dXJuZWQgYnkKKyAgICAgICAvLyB2cjo6SVZSU3lzdGVtOjpDb21wdXRl
RGlzdG9ydGlvbigpIHRvIGFwcGx5IHRoZSBjb3JyZWN0IGRpc3RvcnRpb24gdG8gdGhlIHJlbmRl
cmVkIGltYWdlcyBiZWZvcmUgY2FsbGluZyBTdWJtaXQoKS4KKyAgICAgICBTdWJtaXRfTGVuc0Rp
c3RvcnRpb25BbHJlYWR5QXBwbGllZCA9IDB4MDEsCisKKyAgICAgICAvLyBJZiB0aGUgdGV4dHVy
ZSBwb2ludGVyIHBhc3NlZCBpbiBpcyBhY3R1YWxseSBhIHJlbmRlcmJ1ZmZlciAoZS5nLiBmb3Ig
TVNBQSBpbiBPcGVuR0wpIHRoZW4gc2V0IHRoaXMgZmxhZy4KKyAgICAgICBTdWJtaXRfR2xSZW5k
ZXJCdWZmZXIgPSAweDAyLAorCisgICAgICAgLy8gRG8gbm90IHVzZQorICAgICAgIFN1Ym1pdF9S
ZXNlcnZlZCA9IDB4MDQsCit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxr
YW4gdGV4dHVyZXMgdG8gSVZSQ29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwg
T3BlblZSX1NodXRkb3duIGJlZm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0
cnVjdCBWUlZ1bGthblRleHR1cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsg
Ly8gVmtJbWFnZQorICAgICAgIFZrRGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNp
Y2FsRGV2aWNlX1QgKm1fcFBoeXNpY2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9w
SW5zdGFuY2U7CisgICAgICAgVmtRdWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBt
X25RdWV1ZUZhbWlseUluZGV4OworICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQs
IG1fbkZvcm1hdCwgbV9uU2FtcGxlQ291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3Ig
cGFzc2luZyBEM0QxMiB0ZXh0dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1
cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3Vy
Y2VzLiAqLworc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291
cmNlICptX3BSZXNvdXJjZTsKKyAgICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRR
dWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2Yg
dGhlIG92ZXJhbGwgc3lzdGVtIG9yIHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQor
eworICAgICAgIFZSU3RhdGVfVW5kZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAw
LAorICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGlu
Z19BbGVydCA9IDIsCisgICAgICAgVlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9S
ZWFkeV9BbGVydCA9IDQsCisgICAgICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJT
dGF0ZV9TdGFuZGJ5ID0gNiwKKyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9
OworCisvKiogVGhlIHR5cGVzIG9mIGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdo
YXQgdGhlIHBhcmFtZXRlcnMgbWVhbiBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJF
dmVudFR5cGUKK3sKKyAgICAgICBWUkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9U
cmFja2VkRGV2aWNlQWN0aXZhdGVkICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50
X1RyYWNrZWREZXZpY2VEZWFjdGl2YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1Ry
YWNrZWREZXZpY2VVcGRhdGVkICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1Ry
YWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAg
ICAgIFZSRXZlbnRfSXBkQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDUsCisgICAgICAgVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAg
ICAgPSAxMDYsCisgICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAg
ICAgICAgPSAxMDcsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAg
ICAgPSAxMDgsCisgICAgICAgVlJFdmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAg
ICAgICAgPSAxMDksCisgICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAg
ICAgICAgID0gMTEwLAorICAgICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTExLAorCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMgY29udHJvbGxl
cgorICAgICAgIFZSRXZlbnRfQnV0dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMSwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3Vj
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRhdGEgaXMgY29u
dHJvbGxlcgorICAgICAgIFZSRXZlbnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDIwMywgLy8gZGF0YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBWUkV2ZW50X01v
dXNlTW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAsIC8vIGRhdGEg
aXMgbW91c2UKKyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMSwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VC
dXR0b25VcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0YSBpcyBtb3Vz
ZQorICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDMsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRm9jdXNMZWF2
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRhdGEgaXMgb3Zl
cmxheQorICAgICAgIFZSRXZlbnRfU2Nyb2xsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAzMDUsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X1RvdWNo
UGFkTW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0YSBpcyBtb3Vz
ZQorICAgICAgIFZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAg
ID0gMzA3LCAvLyBkYXRhIGlzIG92ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAgICAgVlJFdmVu
dF9JbnB1dEZvY3VzQ2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMCwgLy8gZGF0YSBp
cyBwcm9jZXNzIERFUFJFQ0FURUQKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCAg
ICAgICAgICAgICAgICAgICAgID0gNDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAor
ICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA0MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5l
ZCAgICAgICAgICAgICAgICAgICAgID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBW
UkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDQwNCwgLy8gZGF0
YSBpcyBwcm9jZXNzIC0gVGhlIEFwcCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2VuZSBjaGFuZ2Vk
ICh1c3VhbGx5IHRvIG9yIGZyb20gdGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJFdmVudF9TY2Vu
ZUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRhIGlzIHByb2Nl
c3MgLSBOZXcgYXBwIGdvdCBhY2Nlc3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAgICBWUkV2ZW50
X0lucHV0Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA0MDYsIC8vIGRhdGEgaXMg
cHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmlu
Z1N0YXJ0ZWQgPSA0MDcsIC8vIGRhdGEgaXMgcHJvY2VzcworCisgICAgICAgVlJFdmVudF9IaWRl
UmVuZGVyTW9kZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQgdG8gdGhlIHNj
ZW5lIGFwcGxpY2F0aW9uIHRvIHJlcXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMgdGVtcG9yYXJp
bHkKKyAgICAgICBWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9
IDQxMSwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCByZXN0b3Jp
bmcgcmVuZGVyIG1vZGVsIHZpc2liaWxpdHkKKworICAgICAgIFZSRXZlbnRfT3ZlcmxheVNob3du
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwLAorICAgICAgIFZSRXZlbnRfT3Zlcmxh
eUhpZGRlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMSwKKyAgICAgICBWUkV2ZW50
X0Rhc2hib2FyZEFjdGl2YXRlZCAgICAgICAgICAgICAgICAgICAgID0gNTAyLAorICAgICAgIFZS
RXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQgICAgICAgICAgICAgID0gNTAzLAorICAgICAgIFZS
RXZlbnRfRGFzaGJvYXJkVGh1bWJTZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQsIC8vIFNlbnQg
dG8gdGhlIG92ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRf
RGFzaGJvYXJkUmVxdWVzdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDUsIC8vIFNlbnQgdG8g
dGhlIG92ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfUmVz
ZXREYXNoYm9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDYsIC8vIFNlbmQgdG8g
dGhlIG92ZXJsYXkgbWFuYWdlcgorICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBkYXNoYm9hcmQg
dG8gcmVuZGVyIGEgdG9hc3QgLSBkYXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQKKyAgICAgICBW
UkV2ZW50X0ltYWdlTG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUw
OCwgLy8gU2VudCB0byBvdmVybGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5
RnJvbUZpbGUgY2FsbCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9h
cmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8ga2V5Ym9hcmQg
cmVuZGVyZXIgaW4gdGhlIGRhc2hib2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBWUkV2ZW50X0hp
ZGVLZXlib2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxMCwgLy8gU2VudCB0byBr
ZXlib2FyZCByZW5kZXJlciBpbiB0aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAgICAgICBWUkV2
ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNlbnQgdG8gYW4g
b3ZlcmxheSB3aGVuIElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gaXQK
KyAgICAgICBWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAgICAgICA9IDUx
MiwgLy8gU2VuZCB0byBhbiBvdmVybGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQgZm9jdXMgYW5k
IElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRoaW5nIGVsc2UK
KyAgICAgICBWUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAg
ICBWUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwKKyAgICAgICBW
UkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1LAorICAgICAg
IFZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCAgICAgICAgICAgICAgICAgICAgID0gNTE2LCAv
LyBTY3JlZW5zaG90IGJ1dHRvbiBjb21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJkIHNob3VsZCBy
ZXF1ZXN0IGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJsYXlzIHdoZW4g
YSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBsb2FkCisgICAg
ICAgVlJFdmVudF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAgPSA1MTgsCisK
KyAgICAgICAvLyBTY3JlZW5zaG90IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNo
b3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkgdnJjbGllbnQg
YXBwbGljYXRpb24gdG8gY29tcG9zaXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAorICAgICAgIFZS
RXZlbnRfU2NyZWVuc2hvdFRha2VuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDUyMSwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBz
Y3JlZW5zaG90IGhhcyBiZWVuIHRha2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFpbGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3Ig
dG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRvIGJlIHRha2Vu
CisgICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAgICAgICAgICAg
ID0gNTIzLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29t
cGxldGVkIHNjcmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzVG9EYXNoYm9hcmQgICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0
byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVk
CisKKyAgICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkICAgICAgID0g
NTI1LAorCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA2MDAsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0
aW9uX0JlZ2luSW50ZXJhY3Rpb24gICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVudF9Ob3RpZmlj
YXRpb25fRGVzdHJveWVkICAgICAgICAgICAgICAgICAgICAgPSA2MDMsCisKKyAgICAgICBWUkV2
ZW50X1F1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA3MDAsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMSwgLy8gZGF0YSBpcyBw
cm9jZXNzCisgICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAgICAgICAgICAg
ICAgICAgICAgPSA3MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFj
a25vd2xlZGdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMywgLy8gZGF0YSBpcyBw
cm9jZXNzCisgICAgICAgVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNzA0LCAvLyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQgdGhhdCBTdGVh
bVZSIHNodXQgZG93bgorCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCAg
ICAgICAgICAgICAgICAgICAgID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVy
c2VIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9u
ZVRlbXBEYXRhSGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MDIsCisgICAgICAgVlJFdmVudF9D
aGFwZXJvbmVTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODAzLAorICAgICAgIFZSRXZlbnRf
U2VhdGVkWmVyb1Bvc2VSZXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgwNCwKKwor
ICAgICAgIFZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDgy
MCwKKworICAgICAgIFZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkICAgICAgICAg
ICAgICA9IDg1MCwKKyAgICAgICBWUkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNoYW5nZWQgICAg
ICAgICAgICAgID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0No
YW5nZWQgICAgICAgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVD
aGFuZ2VkICAgICAgID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hh
dmVDaGFuZ2VkICAgICAgID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVD
aGFuZ2VkICAgICAgICAgICAgICA9IDg1NSwKKworICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDkwMCwKKworICAgICAgIFZSRXZl
bnRfTUNJbWFnZVVwZGF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAw
MCwKKworICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCAgICAg
ICAgICAgICAgICAgICAgID0gMTEwMSwKKworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMCwKKyAgICAgICBWUkV2ZW50
X0tleWJvYXJkQ2hhcklucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMSwKKyAg
ICAgICBWUkV2ZW50X0tleWJvYXJkRG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMjAyLCAvLyBTZW50IHdoZW4gRE9ORSBidXR0b24gY2xpY2tlZCBvbiBrZXlib2FyZAor
CisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkICAgICAgICAgICAg
ICA9IDEzMDAsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkICAg
ICAgICAgICAgICA9IDEzMDEsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25O
ZXdBcHBTdGFydGVkICAgICAgID0gMTMwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlz
dFVwZGF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzAzLAorICAgICAgIFZSRXZl
bnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MzA0LAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29t
cGxldGUgPSAxMzA1LAorCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1No
b3duICAgICAgICAgICAgICA9IDE0MDAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJv
cldpbmRvd0hpZGRlbiAgICAgICAgICAgICAgPSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29tcG9z
aXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biAgICAgICAgICAgICAgPSAxNDEwLAorICAgICAgIFZS
RXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNIaWRkZW4gICAgICAgPSAxNDExLAorCisg
ICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gID0gMTUwMCwKKyAg
ICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtICAgPSAxNTAxLAorICAg
ICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtICA9IDE1MDIsCisgICAg
ICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1Jlc3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfRWRpdGluZ1N1cmZhY2UgICAgPSAxNTUwLAorCisgICAg
ICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSAgICAgICA9IDE2MDAsCisg
ICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgICAgICAgPSAxNjAx
LAorICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgICAgICAgPSAx
NjAyLAorCisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgICAgICAgICAgICAg
ICAgICAgICA9IDE2NTAsCisgICAgICAgCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBl
eHBvc2UgcHJpdmF0ZSBldmVudHMgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBWUkV2
ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgID0gMTAwMDAsCisgICAgICAg
VlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgID0gMTk5OTks
Cit9OworCisKKy8qKiBMZXZlbCBvZiBIbWQgYWN0aXZpdHkgKi8KK2VudW0gRURldmljZUFjdGl2
aXR5TGV2ZWwKK3sKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwK
KyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX0lkbGUgPSAwLAorICAgICAgIGtfRURldmlj
ZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9UaW1lb3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAorfTsKKworCisvKiogVlIgY29udHJvbGxlciBidXR0
b24gYW5kIGF4aXMgSURzICovCitlbnVtIEVWUkJ1dHRvbklkCit7CisgICAgICAga19FQnV0dG9u
X1N5c3RlbSAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBrX0VCdXR0b25fQXBwbGlj
YXRpb25NZW51ICAgICAgID0gMSwKKyAgICAgICBrX0VCdXR0b25fR3JpcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIsCisgICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCAgICAgICAgICAg
ICAgICAgICAgID0gMywKKyAgICAgICBrX0VCdXR0b25fRFBhZF9VcCAgICAgICAgICAgICAgICAg
ICAgID0gNCwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9SaWdodCAgICAgICAgICAgICAgPSA1LAor
ICAgICAgIGtfRUJ1dHRvbl9EUGFkX0Rvd24gICAgICAgICAgICAgICAgICAgICA9IDYsCisgICAg
ICAga19FQnV0dG9uX0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNywKKyAg
ICAgICAKKyAgICAgICBrX0VCdXR0b25fUHJveGltaXR5U2Vuc29yICAgPSAzMSwKKworICAgICAg
IGtfRUJ1dHRvbl9BeGlzMCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMyLAorICAgICAg
IGtfRUJ1dHRvbl9BeGlzMSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMzLAorICAgICAg
IGtfRUJ1dHRvbl9BeGlzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM0LAorICAgICAg
IGtfRUJ1dHRvbl9BeGlzMyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM1LAorICAgICAg
IGtfRUJ1dHRvbl9BeGlzNCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM2LAorCisgICAg
ICAgLy8gYWxpYXNlcyBmb3Igd2VsbCBrbm93biBjb250cm9sbGVycworICAgICAgIGtfRUJ1dHRv
bl9TdGVhbVZSX1RvdWNocGFkICAgICAgID0ga19FQnV0dG9uX0F4aXMwLAorICAgICAgIGtfRUJ1
dHRvbl9TdGVhbVZSX1RyaWdnZXIgICAgICAgPSBrX0VCdXR0b25fQXhpczEsCisKKyAgICAgICBr
X0VCdXR0b25fRGFzaGJvYXJkX0JhY2sgICAgICAgPSBrX0VCdXR0b25fR3JpcCwKKworICAgICAg
IGtfRUJ1dHRvbl9NYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2NAorfTsKKworaW5s
aW5lIHVpbnQ2NF90IEJ1dHRvbk1hc2tGcm9tSWQoIEVWUkJ1dHRvbklkIGlkICkgeyByZXR1cm4g
MXVsbCA8PCBpZDsgfQorCisvKiogdXNlZCBmb3IgY29udHJvbGxlciBidXR0b24gZXZlbnRzICov
CitzdHJ1Y3QgVlJFdmVudF9Db250cm9sbGVyX3QKK3sKKyAgICAgICB1aW50MzJfdCBidXR0b247
IC8vIEVWUkJ1dHRvbklkIGVudW0KK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3Vz
ZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLworZW51bSBFVlJNb3VzZUJ1dHRvbgoreworICAg
ICAgIFZSTW91c2VCdXR0b25fTGVmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAweDAwMDEsCisgICAgICAgVlJNb3VzZUJ1dHRvbl9SaWdodCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAweDAwMDIsCisgICAgICAgVlJNb3VzZUJ1dHRvbl9NaWRkbGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDQsCit9OworCisKKy8qKiB1c2VkIGZvciBz
aW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50
X01vdXNlX3QKK3sKKyAgICAgICBmbG9hdCB4LCB5OyAvLyBjby1vcmRzIGFyZSBpbiBHTCBzcGFj
ZSwgYm90dG9tIGxlZnQgb2YgdGhlIHRleHR1cmUgaXMgMCwwCisgICAgICAgdWludDMyX3QgYnV0
dG9uOyAvLyBFVlJNb3VzZUJ1dHRvbiBlbnVtCit9OworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVk
IG1vdXNlIHdoZWVsIHNjcm9sbCBpbiBvdmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9T
Y3JvbGxfdAoreworICAgICAgIGZsb2F0IHhkZWx0YSwgeWRlbHRhOyAvLyBtb3ZlbWVudCBpbiBm
cmFjdGlvbiBvZiB0aGUgcGFkIHRyYXZlcnNlZCBzaW5jZSBsYXN0IGRlbHRhLCAxLjAgZm9yIGEg
ZnVsbCBzd2lwZQorICAgICAgIHVpbnQzMl90IHJlcGVhdENvdW50OworfTsKKworLyoqIHdoZW4g
aW4gbW91c2UgaW5wdXQgbW9kZSB5b3UgY2FuIHJlY2VpdmUgZGF0YSBmcm9tIHRoZSB0b3VjaHBh
ZCwgdGhlc2UgZXZlbnRzIGFyZSBvbmx5IHNlbnQgaWYgdGhlIHVzZXJzIGZpbmdlcgorICAgaXMg
b24gdGhlIHRvdWNocGFkIChvciBqdXN0IHJlbGVhc2VkIGZyb20gaXQpIAorKiovCitzdHJ1Y3Qg
VlJFdmVudF9Ub3VjaFBhZE1vdmVfdAoreworICAgICAgIC8vIHRydWUgaWYgdGhlIHVzZXJzIGZp
bmdlciBpcyBkZXRlY3RlZCBvbiB0aGUgdG91Y2ggcGFkCisgICAgICAgYm9vbCBiRmluZ2VyRG93
bjsKKworICAgICAgIC8vIEhvdyBsb25nIHRoZSBmaW5nZXIgaGFzIGJlZW4gZG93biBpbiBzZWNv
bmRzCisgICAgICAgZmxvYXQgZmxTZWNvbmRzRmluZ2VyRG93bjsKKworICAgICAgIC8vIFRoZXNl
IHZhbHVlcyBpbmRpY2F0ZSB0aGUgc3RhcnRpbmcgZmluZ2VyIHBvc2l0aW9uIChzbyB5b3UgY2Fu
IGRvIHNvbWUgYmFzaWMgc3dpcGUgc3R1ZmYpCisgICAgICAgZmxvYXQgZlZhbHVlWEZpcnN0Owor
ICAgICAgIGZsb2F0IGZWYWx1ZVlGaXJzdDsKKworICAgICAgIC8vIFRoaXMgaXMgdGhlIHJhdyBz
YW1wbGVkIGNvb3JkaW5hdGUgd2l0aG91dCBkZWFkem9uaW5nCisgICAgICAgZmxvYXQgZlZhbHVl
WFJhdzsKKyAgICAgICBmbG9hdCBmVmFsdWVZUmF3OworfTsKKworLyoqIG5vdGlmaWNhdGlvbiBy
ZWxhdGVkIGV2ZW50cy4gRGV0YWlscyB3aWxsIHN0aWxsIGNoYW5nZSBhdCB0aGlzIHBvaW50ICov
CitzdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVsVXNl
clZhbHVlOworICAgICAgIHVpbnQzMl90IG5vdGlmaWNhdGlvbklkOworfTsKKworLyoqIFVzZWQg
Zm9yIGV2ZW50cyBhYm91dCBwcm9jZXNzZXMgKi8KK3N0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAor
eworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAg
Ym9vbCBiRm9yY2VkOworfTsKKworCisvKiogVXNlZCBmb3IgYSBmZXcgZXZlbnRzIGFib3V0IG92
ZXJsYXlzICovCitzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAgICB1aW50NjRfdCBv
dmVybGF5SGFuZGxlOworfTsKKworCisvKiogVXNlZCBmb3IgYSBmZXcgZXZlbnRzIGFib3V0IG92
ZXJsYXlzICovCitzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHVpbnQzMl90IHN0
YXR1c1N0YXRlOyAvLyBFVlJTdGF0ZSBlbnVtCit9OworCisvKiogVXNlZCBmb3Iga2V5Ym9hcmQg
ZXZlbnRzICoqLworc3RydWN0IFZSRXZlbnRfS2V5Ym9hcmRfdAoreworICAgICAgIGNoYXIgY05l
d0lucHV0WzhdOyAgICAgICAvLyBVcCB0byAxMSBieXRlcyBvZiBuZXcgaW5wdXQKKyAgICAgICB1
aW50NjRfdCB1VXNlclZhbHVlOyAgICAgICAvLyBQb3NzaWJsZSBmbGFncyBhYm91dCB0aGUgbmV3
IGlucHV0Cit9OworCitzdHJ1Y3QgVlJFdmVudF9JcGRfdAoreworICAgICAgIGZsb2F0IGlwZE1l
dGVyczsKK307CisKK3N0cnVjdCBWUkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgdWludDY0
X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKKyAgICAgICB1aW50NjRfdCBtX25DdXJyZW50VW5pdmVy
c2U7Cit9OworCisvKiogTm90IGFjdHVhbGx5IHVzZWQgZm9yIGFueSBldmVudHMgKi8KK3N0cnVj
dCBWUkV2ZW50X1Jlc2VydmVkX3QKK3sKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDA7CisgICAg
ICAgdWludDY0X3QgcmVzZXJ2ZWQxOworfTsKKworc3RydWN0IFZSRXZlbnRfUGVyZm9ybWFuY2VU
ZXN0X3QKK3sKKyAgICAgICB1aW50MzJfdCBtX25GaWRlbGl0eUxldmVsOworfTsKKworc3RydWN0
IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Cit7CisgICAgICAgYm9vbCBiUmVzZXRCeVN5
c3RlbU1lbnU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90X3QKK3sKKyAgICAgICB1
aW50MzJfdCBoYW5kbGU7CisgICAgICAgdWludDMyX3QgdHlwZTsKK307CisKK3N0cnVjdCBWUkV2
ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Cit7CisgICAgICAgZmxvYXQgcHJvZ3Jlc3M7Cit9Owor
CitzdHJ1Y3QgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90Cit7CisgICAgICAgdWludDMyX3Qg
cGlkOworICAgICAgIHVpbnQzMl90IHVuQXJnc0hhbmRsZTsKK307CisKK3N0cnVjdCBWUkV2ZW50
X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QKK3sKKyAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxl
OworICAgICAgIHVpbnQzMl90IG5WaXN1YWxNb2RlOworfTsKKworc3RydWN0IFZSRXZlbnRfTWVz
c2FnZU92ZXJsYXlfdAoreworICAgICAgIHVpbnQzMl90IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlOyAvLyB2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIGVudW0KK307CisKK3N0cnVjdCBW
UkV2ZW50X1Byb3BlcnR5X3QKK3sKKyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNv
bnRhaW5lcjsKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Cit9OworCisvKiog
Tk9URSEhISBJZiB5b3UgY2hhbmdlIHRoaXMgeW91IE1VU1QgbWFudWFsbHkgdXBkYXRlIG9wZW52
cl9pbnRlcm9wLmNzLnB5ICovCit0eXBlZGVmIHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNl
cnZlZF90IHJlc2VydmVkOworICAgICAgIFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7
CisgICAgICAgVlJFdmVudF9Nb3VzZV90IG1vdXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qg
c2Nyb2xsOworICAgICAgIFZSRXZlbnRfUHJvY2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVu
dF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRpb247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qg
b3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50
X0tleWJvYXJkX3Qga2V5Ym9hcmQ7CisgICAgICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAg
VlJFdmVudF9DaGFwZXJvbmVfdCBjaGFwZXJvbmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7CisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0
b3VjaFBhZE1vdmU7CisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVk
WmVyb1Bvc2VSZXNldDsKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RfdCBzY3JlZW5zaG90Owor
ICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3Qgc2NyZWVuc2hvdFByb2dyZXNzOwor
ICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdCBhcHBsaWNhdGlvbkxhdW5jaDsKKyAg
ICAgICBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QgY2FtZXJhU3VyZmFjZTsKKyAgICAg
ICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QgbWVzc2FnZU92ZXJsYXk7CisgICAgICAgVlJFdmVu
dF9Qcm9wZXJ0eV90IHByb3BlcnR5OworfSBWUkV2ZW50X0RhdGFfdDsKKworLyoqIEFuIGV2ZW50
IHBvc3RlZCBieSB0aGUgc2VydmVyIHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLworc3Ry
dWN0IFZSRXZlbnRfdAoreworICAgICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRU
eXBlIGVudW0KKyAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7
CisgICAgICAgZmxvYXQgZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEgbXVz
dCBiZSB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAgICAg
ICBWUkV2ZW50X0RhdGFfdCBkYXRhOworfTsKKworCisvKiogVGhlIG1lc2ggdG8gZHJhdyBpbnRv
IHRoZSBzdGVuY2lsIChvciBkZXB0aCkgYnVmZmVyIHRvIHBlcmZvcm0gCisqIGVhcmx5IHN0ZW5j
aWwgKG9yIGRlcHRoKSBraWxscyBvZiBwaXhlbHMgdGhhdCB3aWxsIG5ldmVyIGFwcGVhciBvbiB0
aGUgSE1ELgorKiBUaGlzIG1lc2ggZHJhd3Mgb24gYWxsIHRoZSBwaXhlbHMgdGhhdCB3aWxsIGJl
IGhpZGRlbiBhZnRlciBkaXN0b3J0aW9uLiAKKyoKKyogSWYgdGhlIEhNRCBkb2VzIG5vdCBwcm92
aWRlIGEgdmlzaWJsZSBhcmVhIG1lc2ggcFZlcnRleERhdGEgd2lsbCBiZQorKiBOVUxMIGFuZCB1
blRyaWFuZ2xlQ291bnQgd2lsbCBiZSAwLiAqLworc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKK3sK
KyAgICAgICBjb25zdCBIbWRWZWN0b3IyX3QgKnBWZXJ0ZXhEYXRhOworICAgICAgIHVpbnQzMl90
IHVuVHJpYW5nbGVDb3VudDsKK307CisKKworZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7Cisg
ICAgICAga19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAorICAgICAgIGtfZUhpZGRlbkFy
ZWFNZXNoX0ludmVyc2UgPSAxLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0g
MiwKKworICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCit9OworCisKKy8qKiBJZGVu
dGlmaWVzIHdoYXQga2luZCBvZiBheGlzIGlzIG9uIHRoZSBjb250cm9sbGVyIGF0IGluZGV4IG4u
IFJlYWQgdGhpcyB0eXBlIAorKiB3aXRoIHBWUlN5c3RlbS0+R2V0KCBuQ29udHJvbGxlckRldmlj
ZUluZGV4LCBQcm9wX0F4aXMwVHlwZV9JbnQzMiArIG4gKTsKKyovCitlbnVtIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQoreworICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAorICAgICAg
IGtfZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkID0gMSwKKyAgICAgICBrX2VDb250cm9sbGVyQXhp
c19Kb3lzdGljayA9IDIsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsIC8v
IEFuYWxvZyB0cmlnZ2VyIGRhdGEgaXMgaW4gdGhlIFggYXhpcworfTsKKworCisvKiogY29udGFp
bnMgaW5mb3JtYXRpb24gYWJvdXQgb25lIGF4aXMgb24gdGhlIGNvbnRyb2xsZXIgKi8KK3N0cnVj
dCBWUkNvbnRyb2xsZXJBeGlzX3QKK3sKKyAgICAgICBmbG9hdCB4OyAvLyBSYW5nZXMgZnJvbSAt
MS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBSYW5nZXMgZnJvbSAwLjAg
dG8gMS4wIGZvciB0cmlnZ2VycyB3ZXJlIDAgaXMgZnVsbHkgcmVsZWFzZWQuCisgICAgICAgZmxv
YXQgeTsgLy8gUmFuZ2VzIGZyb20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sg
cGFkcy4gSXMgYWx3YXlzIDAuMCBmb3IgdHJpZ2dlcnMuCit9OworCisKKy8qKiB0aGUgbnVtYmVy
IG9mIGF4ZXMgaW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgKi8KK3N0YXRpYyBjb25zdCB1aW50MzJf
dCBrX3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsKKworCisvKiogSG9sZHMgYWxsIHRo
ZSBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIgYXQgb25lIG1vbWVudCBpbiB0aW1lLiAqLworc3RydWN0
IFZSQ29udHJvbGxlclN0YXRlMDAxX3QKK3sKKyAgICAgICAvLyBJZiBwYWNrZXQgbnVtIG1hdGNo
ZXMgdGhhdCBvbiB5b3VyIHByaW9yIGNhbGwsIHRoZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgaGFz
bid0IGJlZW4gY2hhbmdlZCBzaW5jZSAKKyAgICAgICAvLyB5b3VyIGxhc3QgY2FsbCBhbmQgdGhl
cmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIGl0CisgICAgICAgdWludDMyX3QgdW5QYWNrZXROdW07
CisKKyAgICAgICAvLyBiaXQgZmxhZ3MgZm9yIGVhY2ggb2YgdGhlIGJ1dHRvbnMuIFVzZSBCdXR0
b25NYXNrRnJvbUlkIHRvIHR1cm4gYW4gSUQgaW50byBhIG1hc2sKKyAgICAgICB1aW50NjRfdCB1
bEJ1dHRvblByZXNzZWQ7CisgICAgICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOworCisgICAg
ICAgLy8gQXhpcyBkYXRhIGZvciB0aGUgY29udHJvbGxlcidzIGFuYWxvZyBpbnB1dHMKKyAgICAg
ICBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXNbIGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQg
XTsKK307CisKKwordHlwZWRlZiBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90IFZSQ29udHJvbGxlclN0
YXRlX3Q7CisKKworLyoqIGRldGVybWluZXMgaG93IHRvIHByb3ZpZGUgb3V0cHV0IHRvIHRoZSBh
cHBsaWNhdGlvbiBvZiB2YXJpb3VzIGV2ZW50IHByb2Nlc3NpbmcgZnVuY3Rpb25zLiAqLworZW51
bSBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlCit7CisgICAgICAgQ29udHJvbGxlckV2ZW50
T3V0cHV0X09TRXZlbnRzID0gMCwKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVu
dHMgPSAxLAorfTsKKworCisKKy8qKiBDb2xsaXNpb24gQm91bmRzIFN0eWxlICovCitlbnVtIEVD
b2xsaXNpb25Cb3VuZHNTdHlsZQoreworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVH
SU5ORVIgPSAwLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFLAor
ICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUywKKyAgICAgICBDT0xMSVNJT05f
Qk9VTkRTX1NUWUxFX0FEVkFOQ0VELAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9O
RSwKKworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQKK307CisKKy8qKiBBbGxv
d3MgdGhlIGFwcGxpY2F0aW9uIHRvIGN1c3RvbWl6ZSBob3cgdGhlIG92ZXJsYXkgYXBwZWFycyBp
biB0aGUgY29tcG9zaXRvciAqLworc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCit7
CisgICAgICAgdWludDMyX3Qgc2l6ZTsgLy8gc2l6ZW9mKENvbXBvc2l0b3JfT3ZlcmxheVNldHRp
bmdzKQorICAgICAgIGJvb2wgY3VydmVkLCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGUs
IGRpc3RhbmNlLCBhbHBoYTsKKyAgICAgICBmbG9hdCB1T2Zmc2V0LCB2T2Zmc2V0LCB1U2NhbGUs
IHZTY2FsZTsKKyAgICAgICBmbG9hdCBncmlkRGl2cywgZ3JpZFdpZHRoLCBncmlkU2NhbGU7Cisg
ICAgICAgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9OworCisvKiogdXNlZCB0byByZWZlciB0
byBhIHNpbmdsZSBWUiBvdmVybGF5ICovCit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRs
ZV90OworCitzdGF0aWMgY29uc3QgVlJPdmVybGF5SGFuZGxlX3Qga191bE92ZXJsYXlIYW5kbGVJ
bnZhbGlkID0gMDsKKworLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciBhcm91bmQgVlIgb3Zlcmxh
eXMgKi8KK2VudW0gRVZST3ZlcmxheUVycm9yCit7CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9u
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAg
IFZST3ZlcmxheUVycm9yX1Vua25vd25PdmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAxMCwK
KyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICAgICAgICAg
PSAxMSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAg
ICAgICAgICAgPSAxMiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRl
ZCAgICAgICAgICAgICAgPSAxMywgLy8gTm8gbW9yZSBvdmVybGF5cyBjb3VsZCBiZSBjcmVhdGVk
IGJlY2F1c2UgdGhlIG1heGltdW0gbnVtYmVyIGFscmVhZHkgZXhpc3QKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBlICAgICAgICAgICAgICA9IDE0LAorICAgICAgIFZS
T3ZlcmxheUVycm9yX0tleVRvb0xvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwK
KyAgICAgICBWUk92ZXJsYXlFcnJvcl9OYW1lVG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDE2LAorICAgICAgIFZST3ZlcmxheUVycm9yX0tleUluVXNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDE3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVHJh
bnNmb3JtVHlwZSAgICAgICAgICAgICAgPSAxOCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZh
bGlkVHJhY2tlZERldmljZSAgICAgICAgICAgICAgPSAxOSwKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9JbnZhbGlkUGFyYW1ldGVyICAgICAgICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICBWUk92
ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50QmVEZXN0cm95ZWQgICAgICAgPSAyMSwKKyAgICAgICBW
Uk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgPSAyMiwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAy
MywKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAgICAg
ICAgID0gMjQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSAgICAgICAg
ICAgICAgICAgICAgID0gMjUsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5
SW5Vc2UgICAgICAgICAgICAgID0gMjYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJv
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDI3LAorICAgICAgIFZST3ZlcmxheUVycm9y
X1Rvb01hbnlNYXNrUHJpbWl0aXZlcyAgICAgICA9IDI5LAorICAgICAgIFZST3ZlcmxheUVycm9y
X0JhZE1hc2tQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICA9IDMwLAorfTsKKworLyoqIGVu
dW0gdmFsdWVzIHRvIHBhc3MgaW4gdG8gVlJfSW5pdCB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSBh
cHBsaWNhdGlvbiB3aWxsIAorKiBkcmF3IGEgM0Qgc2NlbmUuICovCitlbnVtIEVWUkFwcGxpY2F0
aW9uVHlwZQoreworICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLCAgICAgICAgICAgICAg
Ly8gU29tZSBvdGhlciBraW5kIG9mIGFwcGxpY2F0aW9uIHRoYXQgaXNuJ3QgY292ZXJlZCBieSB0
aGUgb3RoZXIgZW50cmllcyAKKyAgICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lICAgICAgID0gMSwg
ICAgICAgICAgICAgIC8vIEFwcGxpY2F0aW9uIHdpbGwgc3VibWl0IDNEIGZyYW1lcyAKKyAgICAg
ICBWUkFwcGxpY2F0aW9uX092ZXJsYXkgPSAyLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRpb24g
b25seSBpbnRlcmFjdHMgd2l0aCBvdmVybGF5cworICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dy
b3VuZCA9IDMsICAgICAgIC8vIEFwcGxpY2F0aW9uIHNob3VsZCBub3Qgc3RhcnQgU3RlYW1WUiBp
ZiBpdCdzIG5vdCBhbHJlYWR5IHJ1bm5pbmcsIGFuZCBzaG91bGQgbm90CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVw
IGl0IHJ1bm5pbmcgaWYgZXZlcnl0aGluZyBlbHNlIHF1aXRzLgorICAgICAgIFZSQXBwbGljYXRp
b25fVXRpbGl0eSA9IDQsICAgICAgICAgICAgICAvLyBJbml0IHNob3VsZCBub3QgdHJ5IHRvIGxv
YWQgYW55IGRyaXZlcnMuIFRoZSBhcHBsaWNhdGlvbiBuZWVkcyBhY2Nlc3MgdG8gdXRpbGl0eQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gaW50ZXJmYWNlcyAobGlrZSBJVlJTZXR0aW5ncyBhbmQgSVZSQXBwbGljYXRpb25z
KSBidXQgbm90IGhhcmR3YXJlLgorICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwg
ICAgICAgLy8gUmVzZXJ2ZWQgZm9yIHZybW9uaXRvcgorICAgICAgIFZSQXBwbGljYXRpb25fU3Rl
YW1XYXRjaGRvZyA9IDYsLy8gUmVzZXJ2ZWQgZm9yIFN0ZWFtCisKKyAgICAgICBWUkFwcGxpY2F0
aW9uX01heAorfTsKKworCisvKiogZXJyb3IgY29kZXMgZm9yIGZpcm13YXJlICovCitlbnVtIEVW
UkZpcm13YXJlRXJyb3IKK3sKKyAgICAgICBWUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAg
ICAgVlJGaXJtd2FyZUVycm9yX1N1Y2Nlc3MgPSAxLAorICAgICAgIFZSRmlybXdhcmVFcnJvcl9G
YWlsID0gMiwKK307CisKKworLyoqIGVycm9yIGNvZGVzIGZvciBub3RpZmljYXRpb25zICovCitl
bnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9P
SyA9IDAsCisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQg
PSAxMDAsCisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwg
PSAxMDEsCisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9
IDEwMiwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJl
YWR5RXhpc3RzID0gMTAzLAorfTsKKworCisvKiogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgVnJf
SW5pdCAqLworCisvLyBQbGVhc2UgYWRkIGFkZXF1YXRlIGVycm9yIGRlc2NyaXB0aW9uIHRvIGh0
dHBzOi8vZGV2ZWxvcGVyLnZhbHZlc29mdHdhcmUuY29tL3cvaW5kZXgucGhwP3RpdGxlPUNhdGVn
b3J5OlN0ZWFtVlJIZWxwCitlbnVtIEVWUkluaXRFcnJvcgoreworICAgICAgIFZSSW5pdEVycm9y
X05vbmUgICAgICAgPSAwLAorICAgICAgIFZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCAgICAgICAgICAgICAgPSAx
MDAsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAgICAg
ICAgICA9IDEwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQg
ICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfRmFjdG9yeU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTA1
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSAgICAgICAgICAgICAg
ICAgICAgID0gMTA2LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9y
eUludmFsaWQgPSAxMDcsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05v
dEluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgICAgICAgICAgICAgID0gMTEwLAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTExLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlICAgICAgID0gMTEzLAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfQXBwSW5mb0luaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X1JldHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMTUsIC8vIFVzZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZy
c2VydmVyCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAg
ICAgICAgICAgICAgICA9IDExNiwgLy8gVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gc2hvdWxkIHNp
bGVudGx5IGV4aXQuIFRoZSB1c2VyIGNhbmNlbGVkIGFwcCBzdGFydHVwCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nICAgICAgICAgICAgICA9IDExNywgCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICA9IDExOCwgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMTksCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ub29NYW55
T2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMCwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCAgICAgICA9IDEyMSwKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9yICAgICAgID0gMTIyLAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyAgICAgICA9
IDEyMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2
ZXJJZElzTm9uZSAgICAgICAgICAgICAgICAgICAgICA9IDEyNSwKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgICAgICAgID0gMTI2LAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEy
NywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQgICAgICAg
ICAgICAgID0gMTI4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05v
dFN1cHBvcnRlZCA9IDEyOSwgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGlj
YXRpb25UeXBlICAgICAgICAgICAgICA9IDEzMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05v
dEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
V2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgPSAxMzIsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9WUkRhc2hib2FyZE5vdEZvdW5kICAgICAgICAgICAgICA9IDEzMywKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCAgICAgICA9IDEzNCwKKworICAgICAg
IFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDAsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDEsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAg
ICAgICAgICAgICAgICAgICA9IDIwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9h
ZGVkICAgICAgICAgICAgICAgICAgICAgPSAyMDMsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVy
X1J1bnRpbWVPdXRPZkRhdGUgICAgICAgICAgICAgID0gMjA0LAorICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9IbWRJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNSwKKyAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCAgICAgICAgICAgICAgPSAyMDYsCisg
ICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCAgICAgICA9IDIwNywK
KyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kICAgICAgID0gMjA4
LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93
biA9IDIwOSwKKyAgICAgICAvLyBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5k
QWZ0ZXJGaXggICAgICAgID0gMjEwLCAvLyBub3QgbmVlZGVkOiBoZXJlIGZvciBoaXN0b3JpYyBy
ZWFzb25zCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMg
PSAyMTEsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCAgPSAy
MTIsCisKKyAgICAgICBWUkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAg
ICAgPSAzMDAsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgICAgICAgICAg
ICAgICAgICAgICA9IDMwMSwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0
RmFpbGVkICAgICAgID0gMzAyLAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5p
dEZhaWxlZCAgICAgICA9IDMwMywKKyAgICAgICBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFp
bGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDQsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Zh
aWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDUsCisgICAgICAgVlJJ
bml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkICAgICAgID0gMzA2LAorICAgICAg
IFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywK
KyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0
cyA9IDMwOCwKKworICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMCwKKyAgICAgICBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCAgICAgICA9IDQwMSwKKyAgICAgICBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgICAgICAgPSA0MDIsCisgICAg
ICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCAgICAgICAgICAgICAg
PSA0MDMsCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWls
ZWQgICAgICAgPSA0MDQsCisKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFi
bGVUb0Nvbm5lY3RUb09jdWx1c1J1bnRpbWUgPSAxMDAwLAorCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTEwMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb1JlcXVlc3RDb25maWdTdGFydCAgICAgICA9IDExMDIsCisgICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Db25maWdUb29CaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdU
b29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA1LAorICAgICAgIFZSSW5p
dEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgICAgICAgICAg
ICAgICAgICAgICAgPSAxMTA2LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uICAgICAgICA9IDExMDcsCisgICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFy
dCAgICAgICA9IDExMDgsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAgICBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCAgICAg
ICAgICAgICAgPSAxMTEwLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZv
dW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlICAgICAgICAgICAgICA9IDExMTEsCisgICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDExMTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAgID0gMTExMywK
KworICAgICAgIFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAy
MDAwLAorfTsKKworZW51bSBFVlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIFZSU2NyZWVuc2hv
dFR5cGVfTm9uZSA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwgLy8gbGVm
dCBleWUgb25seQorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBW
UlNjcmVlbnNob3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9u
b1Bhbm9yYW1hID0gNCwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0g
NQorfTsKKworZW51bSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBW
UlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAgICBWUlNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lc19WUiA9IDEsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1l
cmFFcnJvcgoreworICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAgICAgICAgICAg
ICAgICAgICAgID0gMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWls
ZWQgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
SGFuZGxlICAgICAgICAgICAgICA9IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfSVBDRmFpbHVyZSAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSAgPSAxMDUs
CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSAgICAgICAg
PSAxMDYsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWlsdXJl
ICAgICAgPSAxMDcsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWls
dXJlICAgICAgICAgPSAxMDgsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdM
VGV4dHVyZUlkICAgICAgICAgPSAxMDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52
YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJy
b3JfRmFpbGVkVG9HZXRHTFRleHR1cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfU2hhcmVkVGV4dHVyZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAgICAgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMsCisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAgPSAxMTQsCisg
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSAgICAgPSAx
MTUsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwgICAgICAgICAgICAgICAgICAgICAv
LyBUaGlzIGlzIHRoZSBjYW1lcmEgdmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMsIHN0aWxsIGRp
c3RvcnRlZC4KKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQsICAg
ICAgICAgICAgICAgICAgICAgLy8gSW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBpbnNjcmliZWQg
cmVjdGFuZ2xlIHJlZ2lvbiB3aXRob3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBzaXplIGlzIHN1
YmplY3QgdG8gY2hhbmdlcyBzaG9ydGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZV9NYXhpbXVtVW5kaXN0b3J0ZWQsICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11bSB1bmRpc3Rv
cnRlZCB3aXRoIGludmFsaWQgcmVnaW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9uZW50IGlkZW50
aWZpZXMgdmFsaWQgcmVnaW9ucy4KKyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTCit9Owor
Cit0eXBlZGVmIHVpbnQ2NF90IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZpbmUgSU5WQUxJ
RF9UUkFDS0VEX0NBTUVSQV9IQU5ETEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90
KTApCisKK3N0cnVjdCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1aW50MzJfdCBu
V2lkdGg7CisgICAgICAgdWludDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQ
ZXJQaXhlbDsKKworICAgICAgIHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisgICAgICAgVHJh
Y2tlZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsKKworLy8gU2Ny
ZWVuc2hvdCB0eXBlcwordHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7CisKK3N0
YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworCisj
cHJhZ21hIHBhY2soIHBvcCApCisKKy8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9ydCBmcm9tIHRo
ZSBWUiBBUEkgZGxsCisjaWYgZGVmaW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9BUElfRVhQT1JU
CisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCAp
CisjZWxzZQorI2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxp
bXBvcnQgKQorI2VuZGlmCisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoQ09N
UElMRVJfR0NDKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQK
KyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0
eSgiZGVmYXVsdCIpKSkKKyNlbHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIAor
I2VuZGlmCisKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIKKyNlbmRpZgor
CisKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBfX2NkZWNsCisj
ZWxzZQorI2RlZmluZSBWUl9DQUxMVFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB2cgor
CisjZW5kaWYgLy8gX0lOQ0xVREVfVlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0aW9uLmgKKyNp
ZmRlZiBBUElfR0VOCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0cmlidXRlX18o
KGFubm90YXRlKCBBVFRSICkpKQorI2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikK
KyNlbmRpZgorCisjZGVmaW5lIFZSX01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5HX0FUVFIoICJk
ZXNjOiIgI0RFU0MgIjsiICkKKyNkZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NMQU5HX0FUVFIo
ICJpZ25vcmUiICkKKyNkZWZpbmUgVlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FUVFIoICJvdXRf
c3RydWN0OiA7IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19BVFRSKCAib3V0
X3N0cmluZzogOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVSLEZVTkNUSU9O
LFBBUkFNUykgVlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5URVIgIiwiICNG
VU5DVElPTiAiLCIgI1BBUkFNUyAiOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ09VTlQoQ09V
TlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisj
ZGVmaW5lIFZSX0FSUkFZX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3Vu
dDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09VTlRFUiwgREVT
QykgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNjOiIgI0RFU0Mg
KQorI2RlZmluZSBWUl9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImJ1ZmZl
cl9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJfQ09VTlQoQ09V
TlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQor
I2RlZmluZSBWUl9PVVRfU1RSSU5HX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRf
c3RyaW5nX2NvdW50OiIgI0NPVU5URVIgIjsiICkKKworLy8gdnJ0cmFja2VkY2FtZXJhdHlwZXMu
aAorI2lmbmRlZiBfVlJUUkFDS0VEQ0FNRVJBVFlQRVNfSAorI2RlZmluZSBfVlJUUkFDS0VEQ0FN
RVJBVFlQRVNfSCAKKworbmFtZXNwYWNlIHZyCit7CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykg
fHwgZGVmaW5lZChfX0FQUExFX18pIAorICAgICAgIC8vIFRoZSAzMi1iaXQgdmVyc2lvbiBvZiBn
Y2MgaGFzIHRoZSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgZm9yIHVpbnQ2NCBhbmQgZG91YmxlIHNl
dCB0bworICAgICAgIC8vIDQgbWVhbmluZyB0aGF0IGV2ZW4gd2l0aCAjcHJhZ21hIHBhY2soOCkg
dGhlc2UgdHlwZXMgd2lsbCBvbmx5IGJlIGZvdXItYnl0ZSBhbGlnbmVkLgorICAgICAgIC8vIFRo
ZSA2NC1iaXQgdmVyc2lvbiBvZiBnY2MgaGFzIHRoZSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgZm9y
IHRoZXNlIHR5cGVzIHNldCB0bworICAgICAgIC8vIDggbWVhbmluZyB0aGF0IHVubGVzcyB3ZSB1
c2UgI3ByYWdtYSBwYWNrKDQpIG91ciBzdHJ1Y3R1cmVzIHdpbGwgZ2V0IGJpZ2dlci4KKyAgICAg
ICAvLyBUaGUgNjQtYml0IHN0cnVjdHVyZSBwYWNraW5nIGhhcyB0byBtYXRjaCB0aGUgMzItYml0
IHN0cnVjdHVyZSBwYWNraW5nIGZvciBlYWNoIHBsYXRmb3JtLgorICAgICAgICNwcmFnbWEgcGFj
ayggcHVzaCwgNCApCisjZWxzZQorICAgICAgICNwcmFnbWEgcGFjayggcHVzaCwgOCApCisjZW5k
aWYKKworZW51bSBFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQKK3sKKyAgICAgICBDVlNfRk9STUFU
X1VOS05PV04gPSAwLAorICAgICAgIENWU19GT1JNQVRfUkFXMTAgPSAxLCAgICAgICAgICAgICAg
Ly8gMTAgYml0cyBwZXIgcGl4ZWwKKyAgICAgICBDVlNfRk9STUFUX05WMTIgPSAyLCAgICAgICAg
ICAgICAgLy8gMTIgYml0cyBwZXIgcGl4ZWwKKyAgICAgICBDVlNfRk9STUFUX1JHQjI0ID0gMywg
ICAgICAgICAgICAgIC8vIDI0IGJpdHMgcGVyIHBpeGVsCisgICAgICAgQ1ZTX01BWF9GT1JNQVRT
Cit9OworCitlbnVtIEVDYW1lcmFDb21wYXRpYmlsaXR5TW9kZQoreworICAgICAgIENBTUVSQV9D
T01QQVRfTU9ERV9CVUxLX0RFRkFVTFQgPSAwLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9C
VUxLXzY0S19ETUEsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfMTZLX0RNQSwKKyAg
ICAgICBDQU1FUkFfQ09NUEFUX01PREVfQlVMS184S19ETUEsCisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0lTT181MkZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUwRlBTLAor
ICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDhGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0lTT180NkZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ0RlBTLAor
ICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDJGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0lTT180MEZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzM1RlBTLAor
ICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzBGUFMsCisgICAgICAgTUFYX0NBTUVSQV9D
T01QQVRfTU9ERVMKK307CisKKyNpZmRlZiBfTVNDX1ZFUgorI2RlZmluZSBWUl9DQU1FUkFfREVD
TF9BTElHTiggeCApIF9fZGVjbHNwZWMoIGFsaWduKCB4ICkgKQorI2Vsc2UKKyNkZWZpbmUgVlJf
Q0FNRVJBX0RFQ0xfQUxJR04oIHggKSAvLworI2VuZGlmCisKKyNkZWZpbmUgTUFYX0NBTUVSQV9G
UkFNRV9TSEFSRURfSEFORExFUyAgICAgICA0CisKK1ZSX0NBTUVSQV9ERUNMX0FMSUdOKCA4ICkg
c3RydWN0IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdAoreworICAgICAgIEVDYW1lcmFWaWRlb1N0
cmVhbUZvcm1hdCBtX25TdHJlYW1Gb3JtYXQ7CisKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aDsK
KyAgICAgICB1aW50MzJfdCBtX25IZWlnaHQ7CisKKyAgICAgICB1aW50MzJfdCBtX25JbWFnZURh
dGFTaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJhc2Vk
IG9uIHN0cmVhbSBmb3JtYXQsIHdpZHRoLCBoZWlnaHQKKworICAgICAgIHVpbnQzMl90IG1fbkZy
YW1lU2VxdWVuY2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
U3RhcnRzIGZyb20gMCB3aGVuIHN0cmVhbSBzdGFydHMuCisKKyAgICAgICB1aW50MzJfdCBtX25C
dWZmZXJJbmRleDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJ
ZGVudGlmaWVzIHdoaWNoIGJ1ZmZlciB0aGUgaW1hZ2UgZGF0YSBpcyBob3N0ZWQKKyAgICAgICB1
aW50MzJfdCBtX25CdWZmZXJDb3VudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBUb3RhbCBudW1iZXIgb2YgY29uZmlndXJlZCBidWZmZXJzCisKKyAgICAgICB1
aW50MzJfdCBtX25FeHBvc3VyZVRpbWU7CisKKyAgICAgICB1aW50MzJfdCBtX25JU1BGcmFtZVRp
bWVTdGFtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERyaXZlciBwcm92
aWRlZCB0aW1lIHN0YW1wIHBlciBkcml2ZXIgY2VudHJpYyB0aW1lIGJhc2UKKyAgICAgICB1aW50
MzJfdCBtX25JU1BSZWZlcmVuY2VUaW1lU3RhbXA7CisgICAgICAgdWludDMyX3QgbV9uU3luY0Nv
dW50ZXI7CisKKyAgICAgICB1aW50MzJfdCBtX25DYW1TeW5jRXZlbnRzOworICAgICAgIHVpbnQz
Ml90IG1fbklTUFN5bmNFdmVudHM7CisKKyAgICAgICBkb3VibGUgbV9mbFJlZmVyZW5jZUNhbVN5
bmNUaW1lOworCisgICAgICAgZG91YmxlIG1fZmxGcmFtZUVsYXBzZWRUaW1lOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRzIGZyb20gMCB3aGVuIHN0cmVhbSBzdGFy
dHMuIEluIHNlY29uZHMuCisgICAgICAgZG91YmxlIG1fZmxGcmFtZURlbGl2ZXJ5UmF0ZTsKKwor
ICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9Ecml2ZXJBYnNvbHV0ZTsgICAgICAg
ICAgICAgIC8vIEluIFVTQiB0aW1lLCB2aWEgQXV4RXZlbnQKKyAgICAgICBkb3VibGUgbV9mbEZy
YW1lQ2FwdHVyZVRpbWVfU2VydmVyUmVsYXRpdmU7ICAgICAgICAgICAgICAvLyBJbiBTeXN0ZW0g
dGltZSB3aXRoaW4gdGhlIHNlcnZlcgorICAgICAgIHVpbnQ2NF90IG1fbkZyYW1lQ2FwdHVyZVRp
Y2tzX1NlcnZlckFic29sdXRlOyAgICAgICAvLyBJbiBzeXN0ZW0gdGlja3Mgd2l0aGluIHRoZSBz
ZXJ2ZXIKKyAgICAgICBkb3VibGUgbV9mbEZyYW1lQ2FwdHVyZVRpbWVfQ2xpZW50UmVsYXRpdmU7
ICAgICAgICAgICAgICAvLyBBdCB0aGUgY2xpZW50LCByZWxhdGl2ZSB0byB3aGVuIHRoZSBmcmFt
ZSB3YXMgZXhwb3NlZC9jYXB0dXJlZC4KKworICAgICAgIGRvdWJsZSBtX2ZsU3luY01hcmtlckVy
cm9yOworCisgICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBtX1N0YW5kaW5nVHJhY2tlZERldmlj
ZVBvc2U7ICAgICAgIC8vIFN1cHBsaWVkIGJ5IEhNRCBsYXllciB3aGVuIHVzZWQgYXMgYSB0cmFj
a2VkIGNhbWVyYQorCisgICAgICAgdWludDY0X3QgbV9wSW1hZ2VEYXRhOworfTsKKworI3ByYWdt
YSBwYWNrKCBwb3AgKQorCit9CisKKyNlbmRpZiAvLyBfVlJUUkFDS0VEQ0FNRVJBVFlQRVNfSAor
Ly8gaXZyc2V0dGluZ3MuaAorbmFtZXNwYWNlIHZyCit7CisgICAgICAgZW51bSBFVlJTZXR0aW5n
c0Vycm9yCisgICAgICAgeworICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfTm9uZSA9IDAs
CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9JUENGYWlsZWQgPSAxLAorICAgICAgICAg
ICAgICBWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQgPSAyLAorICAgICAgICAgICAgICBWUlNl
dHRpbmdzRXJyb3JfUmVhZEZhaWxlZCA9IDMsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJv
cl9Kc29uUGFyc2VGYWlsZWQgPSA0LAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfVW5z
ZXRTZXR0aW5nSGFzTm9EZWZhdWx0ID0gNSwgLy8gVGhpcyB3aWxsIGJlIHJldHVybmVkIGlmIHRo
ZSBzZXR0aW5nIGRvZXMgbm90IGFwcGVhciBpbiB0aGUgYXBwcm9wcmlhdGUgZGVmYXVsdCBmaWxl
IGFuZCBoYXMgbm90IGJlZW4gc2V0CisgICAgICAgfTsKKworICAgICAgIC8vIFRoZSBtYXhpbXVt
IGxlbmd0aCBvZiBhIHNldHRpbmdzIGtleQorICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBr
X3VuTWF4U2V0dGluZ3NLZXlMZW5ndGggPSAxMjg7CisKKyAgICAgICBjbGFzcyBJVlJTZXR0aW5n
cworICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciAqR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSggRVZSU2V0dGluZ3NFcnJvciBlRXJy
b3IgKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZpbGUgc3luYyBv
Y2N1cnJlZCAoZm9yY2Ugb3Igc2V0dGluZ3MgZGlydHkpCisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBTeW5jKCBib29sIGJGb3JjZSA9IGZhbHNlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9y
ID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0Qm9vbCgg
Y29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGJvb2wg
YlZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIFNldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
U2V0RmxvYXQoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdz
S2V5LCBmbG9hdCBmbFZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciAp
ID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldFN0cmluZyggY29uc3QgY2hhciAq
cGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGNvbnN0IGNoYXIgKnBjaFZh
bHVlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAg
ICAgICAgICAvLyBVc2VycyBvZiB0aGUgc3lzdGVtIG5lZWQgdG8gcHJvdmlkZSBhIHByb3BlciBk
ZWZhdWx0IGluIGRlZmF1bHQudnJzZXR0aW5ncyBpbiB0aGUgcmVzb3VyY2VzL3NldHRpbmdzLyBk
aXJlY3RvcnkKKyAgICAgICAgICAgICAgLy8gb2YgZWl0aGVyIHRoZSBydW50aW1lIG9yIHRoZSBk
cml2ZXJfeHh4IGRpcmVjdG9yeS4gT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHdpbGwgYmUgZmFsc2Us
IDAsIDAuMCBvciAiIgorICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbCggY29uc3Qg
Y2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdz
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGlu
dDMyX3QgR2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNl
dHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAg
ICAgICAgICAgICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlv
biwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3Ig
PSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0U3RyaW5nKCBj
b25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgVlJfT1VU
X1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5n
c0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgUmVtb3ZlU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NF
cnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBSZW1vdmVLZXlJblNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIg
KnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0g
MDsKKyAgICAgICB9OworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5n
c18wMDIiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHN0ZWFt
dnIga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9T
ZWN0aW9uID0gInN0ZWFtdnIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmlu
ZyA9ICJmb3JjZWREcml2ZXIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0g
ImRpc3BsYXlEZWJ1ZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9FbmFibGVEaXN0b3J0
aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURlYnVn
WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3Bs
YXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbD0g
InNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZlbCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3Jv
dW5kX1N0cmluZyA9ICJiYWNrZ3JvdW5kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFj
a2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZENhbWVyYUhlaWdodF9GbG9hdCA9ICJiYWNrZ3Jv
dW5kQ2FtZXJhSGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERvbWVSYWRp
dXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Hcmlk
Q29sb3JfU3RyaW5nID0gImdyaWRDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX1BsYXlBcmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3Ii
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93U3Rh
Z2VfQm9vbCA9ICJzaG93U3RhZ2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFjdGl2YXRlTXVs
dGlwbGVEcml2ZXJzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfRGlyZWN0TW9kZV9Cb29sID0gImRpcmVjdE1vZGUiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJk
aXJlY3RNb2RlRWRpZFZpZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkUGlkIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfVXNpbmdTcGVh
a2Vyc19Cb29sID0gInVzaW5nU3BlYWtlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zsb2F0
ID0gInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9C
b29sID0gImJhc2VzdGF0aW9uUG93ZXJNYW5hZ2VtZW50IjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfTmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2
ZXJLaWxsUHJvY2Vzc2VzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9hdCA9ICJyZW5kZXJUYXJnZXRNdWx0
aXBsaWVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
QWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXByb2plY3Rpb24iOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1JlcHJv
amVjdGlvbl9Cb29sID0gImFsbG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24iOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9C
b29sID0gImZvcmNlUmVwcm9qZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29sID0gImZvcmNlRmFk
ZU9uQmFkVHJhY2tpbmciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19JbnQzMiA9ICJkZWZhdWx0TWlycm9yVmlldyI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JW
aWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZp
ZXdHZW9tZXRyeSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX1N0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2ggPSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5j
aCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0
Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1
bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3Rh
cnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1
bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3Rh
cnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlBcHBzRnJvbURh
c2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0VuYWJsZUhvbWVBcHAgPSAiZW5hYmxlSG9tZUFwcCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NldEluaXRpYWxEZWZhdWx0SG9tZUFwcCA9ICJzZXRJ
bml0aWFsRGVmYXVsdEhvbWVBcHAiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50MzIgPSAiQ3ljbGVC
YWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfUmV0YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8iOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAi
aXBkT2Zmc2V0IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBs
aWdodGhvdXNlIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xp
Z2h0aG91c2VfU2VjdGlvbiA9ICJkcml2ZXJfbGlnaHRob3VzZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCA9ICJkaXNh
YmxlaW11IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91
c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1YXRp
b25EZWJ1Z19JbnQzMiA9ICJkaXNhbWJpZ3VhdGlvbmRlYnVnIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMy
ID0gInByaW1hcnliYXNlc3RhdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sID0gImRiaGlzdG9yeSI7CisKKyAgICAg
ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbnVsbCBrZXlzCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJpdmVyX251bGwi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZXJpYWxOdW1i
ZXJfU3RyaW5nID0gInNlcmlhbE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1hfSW50MzIgPSAi
d2luZG93WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dp
bmRvd1lfSW50MzIgPSAid2luZG93WSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0ludDMyID0g
IndpbmRvd0hlaWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9O
dWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJlbmRlcldpZHRoIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMyID0gInJlbmRlckhl
aWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY29u
ZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9ucyI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVx
dWVuY3lfRmxvYXQgPSAiZGlzcGxheUZyZXF1ZW5jeSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gdXNlciBpbnRlcmZhY2Uga2V5cworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRl
cmZhY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVy
ZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9wIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVU
b1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hv
dHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFj
ZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworCisgICAgICAgLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG5vdGlmaWNhdGlvbiBrZXlzCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rpb24gPSAibm90
aWZpY2F0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3Rp
ZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CisKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8ga2V5Ym9hcmQga2V5cworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2Fy
ZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9UdXRv
cmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxlWCI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVkgPSAiU2Nh
bGVZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09m
ZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZz
ZXRZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1Nt
b290aGluZyA9ICJTbW9vdGhpbmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIHBlcmYga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX05vdGlmeUlu
SE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2UiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0b3JlX0Jv
b2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9UZXN0RGF0YV9G
bG9hdCA9ICJwZXJmVGVzdERhdGEiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIGNvbGxpc2lvbiBib3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRz
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19TdHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25f
Qm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25f
Qm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9
ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxp
c2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91
bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9y
R2FtbWFHIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lv
bkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
Q29sb3JHYW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYV9Cb29sID0gImVuYWJsZUNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVD
YW1lcmFJbkRhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2Ft
ZXJhRm9yQ29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVy
YUZvclJvb21WaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9Cb3VuZHNDb2xvckdhbW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29s
b3JHYW1tYUdfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMy
ID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3Vu
ZHNDb2xvckdhbW1hQSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9D
YW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisg
ICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8i
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFj
a0RldmljZV9TdHJpbmcgPSAib25QbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNv
cmREZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9f
T25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFj
a0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZS
ZWNvcmREZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVk
aW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gcG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jv
b2wgPSAicG93ZXJPZmZPbkV4aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfUG93ZXJfVHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5z
VGltZW91dCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9U
dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVv
dXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJu
VG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFt
VlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisKKyAg
ICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gZGFzaGJvYXJkIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9TZWN0aW9uID0g
ImRhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNo
Ym9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlRGFzaGJvYXJkIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wg
PSAiYXJjYWRlTW9kZSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Ly8gbW9kZWwgc2tpbiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9tb2RlbHNraW5fU2VjdGlvbiA9ICJtb2RlbHNraW5zIjsKKworICAgICAgIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAvLyBkcml2ZXIga2V5cyAtIFRoZXNlIGNvdWxkIGJlIGNoZWNr
ZWQgaW4gYW55IGRyaXZlcl88bmFtZT4gc2VjdGlvbgorICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CisKK30gLy8gbmFt
ZXNwYWNlIHZyCisKKy8vIGlzZXJ2ZXJ0cmFja2VkZGV2aWNlZHJpdmVyLmgKK25hbWVzcGFjZSB2
cgoreworCisKK3N0cnVjdCBEcml2ZXJQb3NlUXVhdGVybmlvbl90Cit7CisgICAgICAgZG91Ymxl
IHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgRHJpdmVyUG9zZV90Cit7CisgICAgICAgLyogVGlt
ZSBvZmZzZXQgb2YgdGhpcyBwb3NlLCBpbiBzZWNvbmRzIGZyb20gdGhlIGFjdHVhbCB0aW1lIG9m
IHRoZSBwb3NlLAorICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSB0aW1lIG9mIHRoZSBQb3NlVXBk
YXRlZCgpIGNhbGwgbWFkZSBieSB0aGUgZHJpdmVyLgorICAgICAgICAqLworICAgICAgIGRvdWJs
ZSBwb3NlVGltZU9mZnNldDsKKworICAgICAgIC8qIEdlbmVyYWxseSwgdGhlIHBvc2UgbWFpbnRh
aW5lZCBieSBhIGRyaXZlcgorICAgICAgICAqIGlzIGluIGFuIGluZXJ0aWFsIGNvb3JkaW5hdGUg
c3lzdGVtIGRpZmZlcmVudAorICAgICAgICAqIGZyb20gdGhlIHdvcmxkIHN5c3RlbSBvZiB4KyBy
aWdodCwgeSsgdXAsIHorIGJhY2suCisgICAgICAgICogQWxzbywgdGhlIGRyaXZlciBpcyBub3Qg
dXN1YWxseSB0cmFja2luZyB0aGUgImhlYWQiIHBvc2l0aW9uLAorICAgICAgICAqIGJ1dCBpbnN0
ZWFkIGFuIGludGVybmFsIElNVSBvciBhbm90aGVyIHJlZmVyZW5jZSBwb2ludCBpbiB0aGUgSE1E
LgorICAgICAgICAqIFRoZSBmb2xsb3dpbmcgdHdvIHRyYW5zZm9ybXMgdHJhbnNmb3JtIHBvc2l0
aW9ucyBhbmQgb3JpZW50YXRpb25zCisgICAgICAgICogdG8gYXBwIHdvcmxkIHNwYWNlIGZyb20g
ZHJpdmVyIHdvcmxkIHNwYWNlLAorICAgICAgICAqIGFuZCB0byBITUQgaGVhZCBzcGFjZSBmcm9t
IGRyaXZlciBsb2NhbCBib2R5IHNwYWNlLiAKKyAgICAgICAgKgorICAgICAgICAqIFdlIG1haW50
YWluIHRoZSBkcml2ZXIgcG9zZSBzdGF0ZSBpbiBpdHMgaW50ZXJuYWwgY29vcmRpbmF0ZSBzeXN0
ZW0sCisgICAgICAgICogc28gd2UgY2FuIGRvIHRoZSBwb3NlIHByZWRpY3Rpb24gbWF0aCB3aXRo
b3V0IGhhdmluZyB0bworICAgICAgICAqIHVzZSBhbmd1bGFyIGFjY2VsZXJhdGlvbi4gIEEgZHJp
dmVyJ3MgYW5ndWxhciBhY2NlbGVyYXRpb24gaXMgZ2VuZXJhbGx5IG5vdCBtZWFzdXJlZCwKKyAg
ICAgICAgKiBhbmQgaXMgaW5zdGVhZCBjYWxjdWxhdGVkIGZyb20gc3VjY2Vzc2l2ZSBzYW1wbGVz
IG9mIGFuZ3VsYXIgdmVsb2NpdHkuCisgICAgICAgICogVGhpcyBsZWFkcyB0byBhIG5vaXN5IGFu
Z3VsYXIgYWNjZWxlcmF0aW9uIHZhbHVlcywgd2hpY2ggYXJlIGFsc28KKyAgICAgICAgKiBsYWdn
ZWQgZHVlIHRvIHRoZSBmaWx0ZXJpbmcgcmVxdWlyZWQgdG8gcmVkdWNlIG5vaXNlIHRvIGFuIGFj
Y2VwdGFibGUgbGV2ZWwuCisgICAgICAgICovCisgICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBx
V29ybGRGcm9tRHJpdmVyUm90YXRpb247CisgICAgICAgZG91YmxlIHZlY1dvcmxkRnJvbURyaXZl
clRyYW5zbGF0aW9uWyAzIF07CisKKyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFEcml2ZXJG
cm9tSGVhZFJvdGF0aW9uOworICAgICAgIGRvdWJsZSB2ZWNEcml2ZXJGcm9tSGVhZFRyYW5zbGF0
aW9uWyAzIF07CisKKyAgICAgICAvKiBTdGF0ZSBvZiBkcml2ZXIgcG9zZSwgaW4gbWV0ZXJzIGFu
ZCByYWRpYW5zLiAqLworICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBkcml2ZXIgdHJhY2tpbmcg
cmVmZXJlbmNlIGluIGRyaXZlciB3b3JsZCBzcGFjZQorICAgICAgICogK1swXSAoeCkgaXMgcmln
aHQKKyAgICAgICAqICtbMV0gKHkpIGlzIHVwCisgICAgICAgKiAtWzJdICh6KSBpcyBmb3J3YXJk
CisgICAgICAgKi8KKyAgICAgICBkb3VibGUgdmVjUG9zaXRpb25bIDMgXTsKKworICAgICAgIC8q
IFZlbG9jaXR5IG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNvbmQgKi8KKyAgICAgICBkb3VibGUg
dmVjVmVsb2NpdHlbIDMgXTsKKworICAgICAgIC8qIEFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBp
biBtZXRlcnMvc2Vjb25kICovCisgICAgICAgZG91YmxlIHZlY0FjY2VsZXJhdGlvblsgMyBdOwor
CisgICAgICAgLyogT3JpZW50YXRpb24gb2YgdGhlIHRyYWNrZXIsIHJlcHJlc2VudGVkIGFzIGEg
cXVhdGVybmlvbiAqLworICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcVJvdGF0aW9uOworCisg
ICAgICAgLyogQW5ndWxhciB2ZWxvY2l0eSBvZiB0aGUgcG9zZSBpbiBheGlzLWFuZ2xlIAorICAg
ICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhlIGFuZ2xlIG9mCisgICAg
ICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5nbGUgYXJvdW5kCisgICAg
ICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmQuICovCisgICAgICAgZG91YmxlIHZlY0Fu
Z3VsYXJWZWxvY2l0eVsgMyBdOworCisgICAgICAgLyogQW5ndWxhciBhY2NlbGVyYXRpb24gb2Yg
dGhlIHBvc2UgaW4gYXhpcy1hbmdsZSAKKyAgICAgICAqIHJlcHJlc2VudGF0aW9uLiBUaGUgZGly
ZWN0aW9uIGlzIHRoZSBhbmdsZSBvZgorICAgICAgICogcm90YXRpb24gYW5kIHRoZSBtYWduaXR1
ZGUgaXMgdGhlIGFuZ2xlIGFyb3VuZAorICAgICAgICogdGhhdCBheGlzIGluIHJhZGlhbnMvc2Vj
b25kXjIuICovCisgICAgICAgZG91YmxlIHZlY0FuZ3VsYXJBY2NlbGVyYXRpb25bIDMgXTsKKwor
ICAgICAgIEVUcmFja2luZ1Jlc3VsdCByZXN1bHQ7CisKKyAgICAgICBib29sIHBvc2VJc1ZhbGlk
OworICAgICAgIGJvb2wgd2lsbERyaWZ0SW5ZYXc7CisgICAgICAgYm9vbCBzaG91bGRBcHBseUhl
YWRNb2RlbDsKKyAgICAgICBib29sIGRldmljZUlzQ29ubmVjdGVkOworfTsKKworCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXByZXNlbnRz
IGEgc2luZ2xlIHRyYWNrZWQgZGV2aWNlIGluIGEgZHJpdmVyCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjbGFzcyBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcgor
eworcHVibGljOgorCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gTWFuYWdlbWVudCBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLyoqIFRoaXMgaXMgY2FsbGVkIGJlZm9y
ZSBhbiBITUQgaXMgcmV0dXJuZWQgdG8gdGhlIGFwcGxpY2F0aW9uLiBJdCB3aWxsIGFsd2F5cyBi
ZQorICAgICAgICogY2FsbGVkIGJlZm9yZSBhbnkgZGlzcGxheSBvciB0cmFja2luZyBtZXRob2Rz
LiBNZW1vcnkgYW5kIHByb2Nlc3NvciB1c2UgYnkgdGhlCisgICAgICAgKiBJVHJhY2tlZERldmlj
ZVNlcnZlckRyaXZlciBvYmplY3Qgc2hvdWxkIGJlIGtlcHQgdG8gYSBtaW5pbXVtIHVudGlsIGl0
IGlzIGFjdGl2YXRlZC4KKyAgICAgICAqIFRoZSBwb3NlIGxpc3RlbmVyIGlzIGd1YXJhbnRlZWQg
dG8gYmUgdmFsaWQgdW50aWwgRGVhY3RpdmF0ZSBpcyBjYWxsZWQsIGJ1dAorICAgICAgICogc2hv
dWxkIG5vdCBiZSB1c2VkIGFmdGVyIHRoYXQgcG9pbnQuICovCisgICAgICAgdmlydHVhbCBFVlJJ
bml0RXJyb3IgQWN0aXZhdGUoIHVpbnQzMl90IHVuT2JqZWN0SWQgKSA9IDA7CisKKyAgICAgICAv
KiogVGhpcyBpcyBjYWxsZWQgd2hlbiBUaGUgVlIgc3lzdGVtIGlzIHN3aXRjaGluZyBmcm9tIHRo
aXMgSG1kIGJlaW5nIHRoZSBhY3RpdmUgZGlzcGxheQorICAgICAgICogdG8gYW5vdGhlciBIbWQg
YmVpbmcgdGhlIGFjdGl2ZSBkaXNwbGF5LiBUaGUgZHJpdmVyIHNob3VsZCBjbGVhbiB3aGF0ZXZl
ciBtZW1vcnkKKyAgICAgICAqIGFuZCB0aHJlYWQgdXNlIGl0IGNhbiB3aGVuIGl0IGlzIGRlYWN0
aXZhdGVkICovCisgICAgICAgdmlydHVhbCB2b2lkIERlYWN0aXZhdGUoKSA9IDA7CisKKyAgICAg
ICAvKiogSGFuZGxlcyBhIHJlcXVlc3QgZnJvbSB0aGUgc3lzdGVtIHRvIHB1dCB0aGlzIGRldmlj
ZSBpbnRvIHN0YW5kYnkgbW9kZS4gV2hhdCB0aGF0IG1lYW5zIGlzIGRlZmluZWQgcGVyLWRldmlj
ZS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOworCisgICAgICAg
LyoqIFJlcXVlc3RzIGEgY29tcG9uZW50IGludGVyZmFjZSBvZiB0aGUgZHJpdmVyIGZvciBkZXZp
Y2Utc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4gVGhlIGRyaXZlciBzaG91bGQgcmV0dXJuIE5VTEwK
KyAgICAgICAqIGlmIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlIG9yIHZlcnNpb24gaXMgbm90IHN1
cHBvcnRlZC4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgKkdldENvbXBvbmVudCggY29uc3QgY2hh
ciAqcGNoQ29tcG9uZW50TmFtZUFuZFZlcnNpb24gKSA9IDA7CisKKyAgICAgICAvKiogQSBWUiBD
bGllbnQgaGFzIG1hZGUgdGhpcyBkZWJ1ZyByZXF1ZXN0IG9mIHRoZSBkcml2ZXIuIFRoZSBzZXQg
b2YgdmFsaWQgcmVxdWVzdHMgaXMgZW50aXJlbHkKKyAgICAgICAqIHVwIHRvIHRoZSBkcml2ZXIg
YW5kIHRoZSBjbGllbnQgdG8gZmlndXJlIG91dCwgYXMgaXMgdGhlIGZvcm1hdCBvZiB0aGUgcmVz
cG9uc2UuIFJlc3BvbnNlcyB0aGF0CisgICAgICAgKiBleGNlZWQgdGhlIGxlbmd0aCBvZiB0aGUg
c3VwcGxpZWQgYnVmZmVyIHNob3VsZCBiZSB0cnVuY2F0ZWQgYW5kIG51bGwgdGVybWluYXRlZCAq
LworICAgICAgIHZpcnR1YWwgdm9pZCBEZWJ1Z1JlcXVlc3QoIGNvbnN0IGNoYXIgKnBjaFJlcXVl
c3QsIGNoYXIgKnBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6
ZSApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgIC8vIFRyYWNraW5nIE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICB2aXJ0dWFsIERyaXZlclBvc2VfdCBHZXRQb3Nl
KCkgPSAwOworfTsKKworCisKK3N0YXRpYyBjb25zdCBjaGFyICpJVHJhY2tlZERldmljZVNlcnZl
ckRyaXZlcl9WZXJzaW9uID0gIklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyXzAwNSI7CisKK30K
Ky8vIGl2cmRpc3BsYXljb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisKKworICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3Nl
OiBUaGUgZGlzcGxheSBjb21wb25lbnQgb24gYSBzaW5nbGUgdHJhY2tlZCBkZXZpY2UKKyAgICAg
ICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3Mg
SVZSRGlzcGxheUNvbXBvbmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg
ICAgIC8vIERpc3BsYXkgTWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU2l6ZSBhbmQgcG9zaXRp
b24gdGhhdCB0aGUgd2luZG93IG5lZWRzIHRvIGJlIG9uIHRoZSBWUiBkaXNwbGF5LiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0V2luZG93Qm91bmRzKCBpbnQzMl90ICpwblgsIGlu
dDMyX3QgKnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsK
KworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlzIGV4dGVu
ZGluZyB0aGUgZGVza3RvcC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzRGlzcGxh
eU9uRGVza3RvcCggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgZGlzcGxheSBpcyByZWFsIGFuZCBub3QgYSBmaWN0aW9uYWwgZGlzcGxheS4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBib29sIElzRGlzcGxheVJlYWxEaXNwbGF5KCApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogU3VnZ2VzdGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVuZGVy
IHRhcmdldCB0aGF0IHRoZSBkaXN0b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUoIHVpbnQzMl90ICpw
bldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdl
dHMgdGhlIHZpZXdwb3J0IGluIHRoZSBmcmFtZSBidWZmZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9m
IHRoZSBkaXN0b3J0aW9uIGludG8gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldEV5
ZU91dHB1dFZpZXdwb3J0KCBFVlJFeWUgZUV5ZSwgdWludDMyX3QgKnBuWCwgdWludDMyX3QgKnBu
WSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogVGhlIGNvbXBvbmVudHMgbmVjZXNzYXJ5IHRvIGJ1aWxkIHlvdXIgb3duIHBy
b2plY3Rpb24gbWF0cml4IGluIGNhc2UgeW91cgorICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9u
IGlzIGRvaW5nIHNvbWV0aGluZyBmYW5jeSBsaWtlIGluZmluaXRlIFogKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCB2b2lkIEdldFByb2plY3Rpb25SYXcoIEVWUkV5ZSBlRXllLCBmbG9hdCAqcGZM
ZWZ0LCBmbG9hdCAqcGZSaWdodCwgZmxvYXQgKnBmVG9wLCBmbG9hdCAqcGZCb3R0b20gKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgZGlzdG9ydGlv
biBmdW5jdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBleWUgYW5kIGlucHV0IFVWcy4gVVZzIGdvIGZy
b20gMCwwIGluCisgICAgICAgICAgICAgICogdGhlIHVwcGVyIGxlZnQgb2YgdGhhdCBleWUncyB2
aWV3cG9ydCBhbmQgMSwxIGluIHRoZSBsb3dlciByaWdodCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIERpc3RvcnRpb25Db29yZGluYXRlc190IENvbXB1
dGVEaXN0b3J0aW9uKCBFVlJFeWUgZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWICkgPSAwOworCisg
ICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJEaXNwbGF5Q29tcG9uZW50
X1ZlcnNpb24gPSAiSVZSRGlzcGxheUNvbXBvbmVudF8wMDIiOworCit9CisKKy8vIGl2cmRyaXZl
cmRpcmVjdG1vZGVjb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisKKworICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3NlOiBU
aGlzIGNvbXBvbmVudCBpcyB1c2VkIGZvciBkcml2ZXJzIHRoYXQgaW1wbGVtZW50IGRpcmVjdCBt
b2RlIGVudGlyZWx5IG9uIHRoZWlyIG93bgorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAg
d2l0aG91dCBhbGxvd2luZyB0aGUgVlIgQ29tcG9zaXRvciB0byBvd24gdGhlIHdpbmRvdy9kZXZp
Y2UuIENoYW5jZXMgYXJlIHlvdSBkb24ndAorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAg
bmVlZCB0byBpbXBsZW1lbnQgdGhpcyBjb21wb25lbnQgaW4geW91ciBkcml2ZXIuCisgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIGNsYXNzIElW
UkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorCisg
ICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgICAgICAgIC8vIERpcmVjdCBtb2RlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU3BlY2lm
aWMgdG8gT2N1bHVzIGNvbXBvc2l0b3Igc3VwcG9ydCwgdGV4dHVyZXMgc3VwcGxpZWQgbXVzdCBi
ZSBjcmVhdGVkIHVzaW5nIHRoaXMgbWV0aG9kLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgQ3JlYXRlU3dhcFRleHR1cmVTZXQoIHVpbnQzMl90IHVuUGlkLCB1aW50MzJfdCB1bkZvcm1h
dCwgdWludDMyX3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHZyOjpTaGFyZWRUZXh0dXJl
SGFuZGxlX3QoICpwU2hhcmVkVGV4dHVyZUhhbmRsZXMgKVsgMyBdICkge30KKworICAgICAgICAg
ICAgICAvKiogVXNlZCB0byB0ZXh0dXJlcyBjcmVhdGVkIHVzaW5nIENyZWF0ZVN3YXBUZXh0dXJl
U2V0LiAgT25seSBvbmUgb2YgdGhlIHNldCdzIGhhbmRsZXMgbmVlZHMgdG8gYmUgdXNlZCB0byBk
ZXN0cm95IHRoZSBlbnRpcmUgc2V0LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVz
dHJveVN3YXBUZXh0dXJlU2V0KCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1
cmVIYW5kbGUgKSB7fQorCisgICAgICAgICAgICAgIC8qKiBVc2VkIHRvIHB1cmdlIGFsbCB0ZXh0
dXJlIHNldHMgZm9yIGEgZ2l2ZW4gcHJvY2Vzcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIERlc3Ryb3lBbGxTd2FwVGV4dHVyZVNldHMoIHVpbnQzMl90IHVuUGlkICkge30KKworICAg
ICAgICAgICAgICAvKiogQWZ0ZXIgUHJlc2VudCByZXR1cm5zLCBjYWxscyB0aGlzIHRvIGdldCB0
aGUgbmV4dCBpbmRleCB0byB1c2UgZm9yIHJlbmRlcmluZy4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCB2b2lkIEdldE5leHRTd2FwVGV4dHVyZVNldEluZGV4KCB2cjo6U2hhcmVkVGV4dHVyZUhh
bmRsZV90IHNoYXJlZFRleHR1cmVIYW5kbGVzWyAyIF0sIHVpbnQzMl90KCAqcEluZGljZXMgKVsg
MiBdICkge30KKworICAgICAgICAgICAgICAvKiogQ2FsbCBvbmNlIHBlciBsYXllciB0byBkcmF3
IGZvciB0aGlzIGZyYW1lLiAgT25lIHNoYXJlZCB0ZXh0dXJlIGhhbmRsZSBwZXIgZXllLiAgVGV4
dHVyZXMgbXVzdCBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICogdXNpbmcgQ3JlYXRlU3dhcFRl
eHR1cmVTZXQgYW5kIHNob3VsZCBiZSBhbHRlcm5hdGVkIHBlciBmcmFtZS4gIENhbGwgUHJlc2Vu
dCBvbmNlIGFsbCBsYXllcnMgaGF2ZSBiZWVuIHN1Ym1pdHRlZC4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIFN1Ym1pdExheWVyKCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJl
ZFRleHR1cmVIYW5kbGVzWyAyIF0sIGNvbnN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCggJmJvdW5k
cyApWyAyIF0sIGNvbnN0IHZyOjpIbWRNYXRyaXgzNF90ICpwUG9zZSApIHt9CisKKyAgICAgICAg
ICAgICAgLyoqIFN1Ym1pdHMgcXVldWVkIGxheWVycyBmb3IgZGlzcGxheS4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCB2b2lkIFByZXNlbnQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc3lu
Y1RleHR1cmUgKSB7fQorCisgICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJ
VlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X1ZlcnNpb24gPSAiSVZSRHJpdmVyRGlyZWN0TW9k
ZUNvbXBvbmVudF8wMDIiOworCit9CisKKy8vIGl2cmNvbnRyb2xsZXJjb21wb25lbnQuaAorbmFt
ZXNwYWNlIHZyCit7CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3NlOiBDb250cm9sbGVyIGFjY2VzcyBvbiBhIHNpbmds
ZSB0cmFja2VkIGRldmljZS4KKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSQ29udHJvbGxlckNvbXBvbmVudAorICAgICAgIHsK
KyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIENvbnRyb2xsZXIgTWV0aG9kcworICAg
ICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIuICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgVlJDb250cm9sbGVyU3RhdGVfdCBHZXRDb250cm9sbGVy
U3RhdGUoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0IHByb3Bl
cnR5LiBJZiB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZSB0aGlzIGZ1bmN0aW9uIHdpbGwg
cmV0dXJuIDAuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBUcmlnZ2VySGFwdGljUHVs
c2UoIHVpbnQzMl90IHVuQXhpc0lkLCB1aW50MTZfdCB1c1B1bHNlRHVyYXRpb25NaWNyb3NlY29u
ZHMgKSA9IDA7CisKKyAgICAgICB9OworCisKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJ
VlJDb250cm9sbGVyQ29tcG9uZW50X1ZlcnNpb24gPSAiSVZSQ29udHJvbGxlckNvbXBvbmVudF8w
MDEiOworCit9CisvLyBpdnJjYW1lcmFjb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICBjbGFzcyBJQ2FtZXJhVmlkZW9TaW5rQ2FsbGJhY2sKKyAgICAgICB7CisgICAgICAg
cHVibGljOgorICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgT25DYW1lcmFWaWRlb1NpbmtDYWxs
YmFjaygpID0gMDsKKyAgICAgICB9OworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoZSBjYW1lcmEgb24gYSBzaW5n
bGUgdHJhY2tlZCBkZXZpY2UKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSQ2FtZXJhQ29tcG9uZW50CisgICAgICAgeworICAg
ICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIENhbWVyYSBNZXRob2RzCisgICAgICAgICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhRnJhbWVEaW1lbnNpb25zKCB2cjo6RUNhbWVyYVZpZGVvU3Ry
ZWFtRm9ybWF0IG5WaWRlb1N0cmVhbUZvcm1hdCwgdWludDMyX3QgKnBXaWR0aCwgdWludDMyX3Qg
KnBIZWlnaHQgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFGcmFt
ZUJ1ZmZlcmluZ1JlcXVpcmVtZW50cyggaW50ICpwRGVmYXVsdEZyYW1lUXVldWVTaXplLCB1aW50
MzJfdCAqcEZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBTZXRDYW1lcmFGcmFtZUJ1ZmZlcmluZyggaW50IG5GcmFtZUJ1ZmZlckNvdW50LCB2b2lk
ICoqcHBGcmFtZUJ1ZmZlcnMsIHVpbnQzMl90IG5GcmFtZUJ1ZmZlckRhdGFTaXplICkgPSAwOwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0Q2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQoIHZy
OjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZpZGVvU3RyZWFtRm9ybWF0ICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgR2V0Q2FtZXJh
VmlkZW9TdHJlYW1Gb3JtYXQoKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTdGFy
dFZpZGVvU3RyZWFtKCkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU3RvcFZpZGVv
U3RyZWFtKCkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNWaWRlb1N0cmVhbUFj
dGl2ZSggYm9vbCAqcGJQYXVzZWQsIGZsb2F0ICpwZmxFbGFwc2VkVGltZSApID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCBjb25zdCB2cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZV90ICpHZXRW
aWRlb1N0cmVhbUZyYW1lKCkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVsZWFz
ZVZpZGVvU3RyZWFtRnJhbWUoIGNvbnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKnBG
cmFtZUltYWdlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0QXV0b0V4cG9z
dXJlKCBib29sIGJFbmFibGUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBQYXVz
ZVZpZGVvU3RyZWFtKCkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgUmVzdW1lVmlk
ZW9TdHJlYW0oKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFEaXN0
b3J0aW9uKCBmbG9hdCBmbElucHV0VSwgZmxvYXQgZmxJbnB1dFYsIGZsb2F0ICpwZmxPdXRwdXRV
LCBmbG9hdCAqcGZsT3V0cHV0ViApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdl
dENhbWVyYVByb2plY3Rpb24oIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5
cGUsIGZsb2F0IGZsWk5lYXIsIGZsb2F0IGZsWkZhciwgdnI6OkhtZE1hdHJpeDQ0X3QgKnBQcm9q
ZWN0aW9uICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0RnJhbWVSYXRlKCBp
bnQgbklTUEZyYW1lUmF0ZSwgaW50IG5TZW5zb3JGcmFtZVJhdGUgKSA9IDA7CisgICAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFWaWRlb1NpbmtDYWxsYmFjayggdnI6OklDYW1lcmFW
aWRlb1NpbmtDYWxsYmFjayAqcENhbWVyYVZpZGVvU2lua0NhbGxiYWNrICkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2Ft
ZXJhQ29tcGF0aWJpbGl0eU1vZGUgKnBDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSApID0gMDsKKyAg
ICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVyYUNvbXBhdGliaWxpdHlNb2RlKCB2cjo6
RUNhbWVyYUNvbXBhdGliaWxpdHlNb2RlIG5DYW1lcmFDb21wYXRpYmlsaXR5TW9kZSApID0gMDsK
KyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQm91bmRzKCB2cjo6RVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB1aW50MzJfdCAqcExlZnQsIHVpbnQz
Ml90ICpwVG9wLCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKyAg
ICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUludHJpbnNpY3MoIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqcEZvY2FsTGVuZ3Ro
LCBIbWRWZWN0b3IyX3QgKnBDZW50ZXIgKSA9IDA7CisgICAgICAgfTsKKworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICpJVlJDYW1lcmFDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJDYW1lcmFDb21w
b25lbnRfMDAyIjsKK30KKy8vIGl0cmFja2VkZGV2aWNlZHJpdmVycHJvdmlkZXIuaAorbmFtZXNw
YWNlIHZyCit7CisKK2NsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRy
YWNrZWREZXZpY2VEcml2ZXJJbmZvX3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OwordHlwZWRlZiBQ
cm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IERyaXZlckhhbmRsZV90OworCisvKiogVGhpcyBpbnRl
cmZhY2UgaXMgcHJvdmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3Rp
ZnkgCisqIHRoZSBzeXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4g
VGhlc2UgY2hhbmdlcyBtdXN0CisqIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xh
c3Mgb2YgdGhlIGRldmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFuZW50bHkg
YXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUkRyaXZlckNv
bnRleHQKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcmVxdWVzdGVkIGludGVy
ZmFjZS4gSWYgdGhlIGludGVyZmFjZSB3YXMgbm90IGF2YWlsYWJsZSBpdCB3aWxsIHJldHVybiBO
VUxMIGFuZCBmaWxsCisgICAgICAgKiBvdXQgdGhlIGVycm9yLiAqLworICAgICAgIHZpcnR1YWwg
dm9pZCAqR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lv
biwgRVZSSW5pdEVycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlIGZvciB0aGlzIGRyaXZlciAqLwor
ICAgICAgIHZpcnR1YWwgRHJpdmVySGFuZGxlX3QgR2V0RHJpdmVySGFuZGxlKCkgPSAwOworfTsK
KworCisvKiogVGhpcyBpbnRlcmZhY2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBlYWNoIGRyaXZl
ci4gSXQgd2lsbCBiZSBsb2FkZWQgaW4gdnJzZXJ2ZXIuZXhlICovCitjbGFzcyBJU2VydmVyVHJh
Y2tlZERldmljZVByb3ZpZGVyCit7CitwdWJsaWM6CisgICAgICAgLyoqIGluaXRpYWxpemVzIHRo
ZSBkcml2ZXIuIFRoaXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBtZXRob2RzIGFy
ZSBjYWxsZWQuCisgICAgICAgKiBJZiBJbml0IHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiBW
UkluaXRFcnJvcl9Ob25lIHRoZSBkcml2ZXIgRExMIHdpbGwgYmUgdW5sb2FkZWQuCisgICAgICAg
KgorICAgICAgICogcERyaXZlckhvc3Qgd2lsbCBuZXZlciBiZSBOVUxMLCBhbmQgd2lsbCBhbHdh
eXMgYmUgYSBwb2ludGVyIHRvIGEgSVNlcnZlckRyaXZlckhvc3QgaW50ZXJmYWNlCisgICAgICAg
KgorICAgICAgICogcGNoVXNlckRyaXZlckNvbmZpZ0RpciAtIFRoZSBhYnNvbHV0ZSBwYXRoIG9m
IHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGRyaXZlciBzaG91bGQgc3RvcmUgdXNlcgorICAgICAg
ICogICAgICAgY29uZmlnIGZpbGVzLgorICAgICAgICogcGNoRHJpdmVySW5zdGFsbERpciAtIFRo
ZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSByb290IGRpcmVjdG9yeSBmb3IgdGhlIGRyaXZlci4KKyAg
ICAgICAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZlckNvbnRl
eHQgKnBEcml2ZXJDb250ZXh0ICkgPSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCB0aGUgZHJp
dmVyIHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBD
bGVhbnVwKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIElU
cmFja2VkRGV2aWNlU2VydmVyRHJpdmVyIGludGVyZmFjZSB1c2VkIGJ5IHRoaXMgZHJpdmVyICov
CisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICogY29uc3QgKkdldEludGVyZmFjZVZlcnNpb25z
KCkgPSAwOworCisgICAgICAgLyoqIEFsbG93cyB0aGUgZHJpdmVyIGRvIHRvIHNvbWUgd29yayBp
biB0aGUgbWFpbiBsb29wIG9mIHRoZSBzZXJ2ZXIuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJ1
bkZyYW1lKCkgPSAwOworCisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0gIFBvd2VyIFN0YXRlIEZ1
bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvLworCisgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiB0aGUgZHJpdmVyIHdhbnRzIHRvIGJsb2NrIFN0YW5kYnkgbW9kZS4gKi8KKyAgICAg
ICB2aXJ0dWFsIGJvb2wgU2hvdWxkQmxvY2tTdGFuZGJ5TW9kZSgpID0gMDsKKworICAgICAgIC8q
KiBDYWxsZWQgd2hlbiB0aGUgc3lzdGVtIGlzIGVudGVyaW5nIFN0YW5kYnkgbW9kZS4gVGhlIGRy
aXZlciBzaG91bGQgc3dpdGNoIGl0c2VsZiBpbnRvIHdoYXRldmVyIHNvcnQgb2YgbG93LXBvd2Vy
CisgICAgICAgKiBzdGF0ZSBpdCBoYXMuICovCisgICAgICAgdmlydHVhbCB2b2lkIEVudGVyU3Rh
bmRieSgpID0gMDsKKworICAgICAgIC8qKiBDYWxsZWQgd2hlbiB0aGUgc3lzdGVtIGlzIGxlYXZp
bmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBzd2l0Y2ggaXRzZWxmIGJhY2sgdG8K
KyAgICAgICBmdWxsIG9wZXJhdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgTGVhdmVTdGFu
ZGJ5KCkgPSAwOworCit9OworCisKK3N0YXRpYyBjb25zdCBjaGFyICpJU2VydmVyVHJhY2tlZERl
dmljZVByb3ZpZGVyX1ZlcnNpb24gPSAiSVNlcnZlclRyYWNrZWREZXZpY2VQcm92aWRlcl8wMDQi
OworCisKKworCisvKiogVGhpcyBpbnRlcmZhY2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBlYWNo
IGRyaXZlci4gSXQgd2lsbCBiZSBsb2FkZWQgaW4gdnJjbGllbnQuZGxsICovCitjbGFzcyBJVlJX
YXRjaGRvZ1Byb3ZpZGVyCit7CitwdWJsaWM6CisgICAgICAgLyoqIGluaXRpYWxpemVzIHRoZSBk
cml2ZXIgaW4gd2F0Y2hkb2cgbW9kZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBJ
bml0KCBJVlJEcml2ZXJDb250ZXh0ICpwRHJpdmVyQ29udGV4dCApID0gMDsKKworICAgICAgIC8q
KiBjbGVhbnMgdXAgdGhlIGRyaXZlciByaWdodCBiZWZvcmUgaXQgaXMgdW5sb2FkZWQgKi8KKyAg
ICAgICB2aXJ0dWFsIHZvaWQgQ2xlYW51cCgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFy
ICpJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNpb24gPSAiSVZSV2F0Y2hkb2dQcm92aWRlcl8wMDEi
OworCit9CisvLyBpdnJwcm9wZXJ0aWVzLmgKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFj
ZSB2cgoreworCisgICAgICAgZW51bSBFUHJvcGVydHlXcml0ZVR5cGUKKyAgICAgICB7CisgICAg
ICAgICAgICAgIFByb3BlcnR5V3JpdGVfU2V0ID0gMCwKKyAgICAgICAgICAgICAgUHJvcGVydHlX
cml0ZV9FcmFzZSA9IDEsCisgICAgICAgICAgICAgIFByb3BlcnR5V3JpdGVfU2V0RXJyb3IgPSAy
CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBQcm9wZXJ0eVdyaXRlX3QKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKKyAgICAgICAgICAgICAg
RVByb3BlcnR5V3JpdGVUeXBlIHdyaXRlVHlwZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIGVTZXRFcnJvcjsKKyAgICAgICAgICAgICAgdm9pZCAqcHZCdWZmZXI7CisgICAg
ICAgICAgICAgIHVpbnQzMl90IHVuQnVmZmVyU2l6ZTsKKyAgICAgICAgICAgICAgUHJvcGVydHlU
eXBlVGFnX3QgdW5UYWc7CisgICAgICAgICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJy
b3I7CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBQcm9wZXJ0eVJlYWRfdAorICAgICAgIHsK
KyAgICAgICAgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAg
ICB2b2lkICpwdkJ1ZmZlcjsKKyAgICAgICAgICAgICAgdWludDMyX3QgdW5CdWZmZXJTaXplOwor
ICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAgICAgICAgICAgICAgdWlu
dDMyX3QgdW5SZXF1aXJlZEJ1ZmZlclNpemU7CisgICAgICAgICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvciBlRXJyb3I7CisgICAgICAgfTsKKworCitjbGFzcyBJVlJQcm9wZXJ0aWVzCit7Citw
dWJsaWM6CisKKyAgICAgICAvKiogUmVhZHMgYSBzZXQgb2YgcHJvcGVydGllcyBhdG9taWNhbGx5
LiBTZWUgdGhlIFByb3BlcnR5UmVhZEJhdGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9u
LiAqLworICAgICAgIHZpcnR1YWwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFJlYWRQcm9wZXJ0eUJh
dGNoKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBQcm9wZXJ0
eVJlYWRfdCAqcEJhdGNoLCB1aW50MzJfdCB1bkJhdGNoRW50cnlDb3VudCApID0gMDsKKworICAg
ICAgIC8qKiBXcml0ZXMgYSBzZXQgb2YgcHJvcGVydGllcyBhdG9taWNhbGx5LiBTZWUgdGhlIFBy
b3BlcnR5V3JpdGVCYXRjaF90IHN0cnVjdCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gKi8KKyAgICAg
ICB2aXJ0dWFsIEVUcmFja2VkUHJvcGVydHlFcnJvciBXcml0ZVByb3BlcnR5QmF0Y2goIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5V3JpdGVfdCAq
cEJhdGNoLCB1aW50MzJfdCB1bkJhdGNoRW50cnlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBy
ZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3Bl
cnR5IGVycm9yLiBUaGUgc3RyaW5nIHdpbGwgYmUgdGhlIG5hbWUKKyAgICAgICAqIG9mIHRoZSBl
cnJvciBlbnVtIHZhbHVlIGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KKyAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKkdldFByb3BFcnJvck5hbWVGcm9tRW51bSggRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIGVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBjb250YWluZXIgaGFu
ZGxlIGdpdmVuIGEgdHJhY2tlZCBkZXZpY2UgaW5kZXggKi8KKyAgICAgICB2aXJ0dWFsIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRy
YWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2UgKSA9IDA7CisKK307CisKK3N0YXRpYyBjb25zdCBj
aGFyICogY29uc3QgSVZSUHJvcGVydGllc19WZXJzaW9uID0gIklWUlByb3BlcnRpZXNfMDAxIjsK
KworY2xhc3MgQ1ZSUHJvcGVydHlIZWxwZXJzCit7CitwdWJsaWM6CisgICAgICAgQ1ZSUHJvcGVy
dHlIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICogcFByb3BlcnRpZXMgKSA6IG1fcFByb3BlcnRpZXMo
IHBQcm9wZXJ0aWVzICkge30KKworICAgICAgIC8qKiBSZXR1cm5zIGEgc2NhbGVyIHByb3BlcnR5
LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgdmFsdWUg
dHlwZSBkb2VzIG5vdCBtYXRjaCwKKyAgICAgICAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4g
ZmFsc2UuICovCisgICAgICAgYm9vbCBHZXRCb29sUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOworICAgICAgIGZsb2F0IEdldEZs
b2F0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJy
b3IgPSAwTCApOworICAgICAgIGludDMyX3QgR2V0SW50MzJQcm9wZXJ0eSggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgdWludDY0
X3QgR2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwRXJyb3IgPSAwTCApOworCisgICAgICAgLyoqIFJldHVybnMgYSBzaW5nbGUgdHlwZWQg
cHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0
eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVy
biAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0
ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGluZwor
ICAgICAgICogbnVsbC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVmZmVycyBvZiBrX3Vu
TWF4UHJvcGVydHlTdHJpbmdTaXplIGNoYXJhY3RlcnMuICovCisgICAgICAgdWludDMyX3QgR2V0
UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIHZvaWQgKnB2QnVmZmVy
LCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIFByb3BlcnR5VHlwZVRhZ190ICpwdW5UYWcsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKTsKKworCisgICAgICAgLyoqIFJldHVybnMg
YSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRo
ZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAg
ICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1i
ZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0
cmFpbGluZworICAgICAgICogbnVsbC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVmZmVy
cyBvZiBrX3VuTWF4UHJvcGVydHlTdHJpbmdTaXplIGNoYXJhY3RlcnMuICovCisgICAgICAgdWlu
dDMyX3QgR2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250
YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygp
IGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlF
cnJvciAqcEVycm9yID0gMEwgKTsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3Bl
cnR5IGFzIGEgc3RkOjpzdHJpbmcuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9y
IHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAg
ICAgICAqIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuICovCisgICAgICAgc3RkOjpzdHJpbmcgR2V0
U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
LCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApOworCisgICAgICAgLyoqIFNldHMgYSBzY2FsZXIgcHJv
cGVydHkuIFRoZSBuZXcgdmFsdWUgd2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBj
YWxsIHRvIGdldCB0aGlzIHByb3BlcnR5IGluIGFueSBwcm9jZXNzLiAqLworICAgICAgIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBTZXRCb29sUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgYm9vbCBi
TmV3VmFsdWUgKTsKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0RmxvYXRQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCBmbG9hdCBmTmV3VmFsdWUgKTsKKyAgICAgICBFVHJhY2tlZFBy
b3BlcnR5RXJyb3IgU2V0SW50MzJQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1
bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBpbnQzMl90IG5O
ZXdWYWx1ZSApOworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRVaW50NjRQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICk7CisKKyAgICAgICAvKiog
U2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9u
IGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3Mu
ICovCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFN0cmluZ1Byb3BlcnR5KCBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIGNvbnN0IGNoYXIgKnBjaE5ld1ZhbHVlICk7CisKKyAgICAgICAvKiogU2V0
cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVk
IG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nl
c3MuICovCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFByb3BlcnR5KCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIHZvaWQgKnB2TmV3VmFsdWUsIHVpbnQzMl90IHVuTmV3VmFsdWVTaXplLCBQcm9w
ZXJ0eVR5cGVUYWdfdCB1blRhZyApOworCisgICAgICAgLyoqIFNldHMgdGhlIGVycm9yIHJldHVy
biB2YWx1ZSBmb3IgYSBwcm9wZXJ0eS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFs
bCBzdWJzZXF1ZW50IHJlcXVlc3RzIHRvIGdldCB0aGUgcHJvcGVydHkgKi8KKyAgICAgICBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHlFcnJvciggUHJvcGVydHlDb250YWluZXJIYW5k
bGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgZUVycm9yICk7CisKKyAgICAgICAvKiogQ2xlYXJzIGFueSB2YWx1
ZSBvciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KKyAgICAgICBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgRXJhc2VQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRh
aW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wICk7CisKKyAgICAgICAvKiBU
dXJucyBhIGRldmljZSBpbmRleCBpbnRvIGEgcHJvcGVydHkgY29udGFpbmVyIGhhbmRsZS4gKi8K
KyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IFRyYWNrZWREZXZpY2VUb1Byb3BlcnR5
Q29udGFpbmVyKCBUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlICkgeyByZXR1cm4gbV9wUHJv
cGVydGllcy0+VHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIG5EZXZpY2UgKTsgIH0K
KworcHJpdmF0ZToKKyAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgIFQgR2V0UHJv
cGVydHlIZWxwZXIoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJy
b3IsIFQgYkRlZmF1bHQsIFByb3BlcnR5VHlwZVRhZ190IHVuVHlwZVRhZyApOworCisgICAgICAg
SVZSUHJvcGVydGllcyAqbV9wUHJvcGVydGllczsKK307CisKKworaW5saW5lIHVpbnQzMl90IENW
UlByb3BlcnR5SGVscGVyczo6R2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NU
UklORygpIHZvaWQgKnB2QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIFByb3BlcnR5VHlw
ZVRhZ190ICpwdW5UYWcsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAg
ICBQcm9wZXJ0eVJlYWRfdCBiYXRjaDsKKyAgICAgICBiYXRjaC5wcm9wID0gcHJvcDsKKyAgICAg
ICBiYXRjaC5wdkJ1ZmZlciA9IHB2QnVmZmVyOworICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6ZSA9
IHVuQnVmZmVyU2l6ZTsKKworICAgICAgIG1fcFByb3BlcnRpZXMtPlJlYWRQcm9wZXJ0eUJhdGNo
KCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICBpZiAoIHBFcnJvciAp
CisgICAgICAgeworICAgICAgICAgICAgICAqcEVycm9yID0gYmF0Y2guZUVycm9yOworICAgICAg
IH0KKworICAgICAgIGlmICggcHVuVGFnICkKKyAgICAgICB7CisgICAgICAgICAgICAgICpwdW5U
YWcgPSBiYXRjaC51blRhZzsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gYmF0Y2gudW5SZXF1
aXJlZEJ1ZmZlclNpemU7Cit9CisKKworLyoqIFNldHMgYSBzaW5nbGUgdHlwZWQgcHJvcGVydHku
IFRoZSBuZXcgdmFsdWUgd2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRv
IGdldCB0aGlzIHByb3BlcnR5IGluIGFueSBwcm9jZXNzLiAqLworaW5saW5lIEVUcmFja2VkUHJv
cGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AsIHZvaWQgKnB2TmV3VmFsdWUsIHVpbnQzMl90IHVuTmV3VmFsdWVTaXplLCBQcm9wZXJ0eVR5
cGVUYWdfdCB1blRhZyApCit7CisgICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOworICAgICAg
IGJhdGNoLndyaXRlVHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0OworICAgICAgIGJhdGNoLnByb3Ag
PSBwcm9wOworICAgICAgIGJhdGNoLnB2QnVmZmVyID0gcHZOZXdWYWx1ZTsKKyAgICAgICBiYXRj
aC51bkJ1ZmZlclNpemUgPSB1bk5ld1ZhbHVlU2l6ZTsKKyAgICAgICBiYXRjaC51blRhZyA9IHVu
VGFnOworCisgICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRh
aW5lckhhbmRsZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOwor
fQorCisKKy8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4
IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgc3RyaW5nIHR5cGUgdGhpcyBm
dW5jdGlvbiB3aWxsCisqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3Ro
IG9mIHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5j
bHVkaW5nIHRoZSB0cmFpbGluZworKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBi
dWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KK2lubGlu
ZSB1aW50MzJfdCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZm
ZXJTaXplLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UYWc7CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yOwor
ICAgICAgIHVpbnQzMl90IHVuUmVxdWlyZWRTaXplID0gR2V0UHJvcGVydHkoIHVsQ29udGFpbmVy
SGFuZGxlLCBwcm9wLCBwY2hWYWx1ZSwgdW5CdWZmZXJTaXplLCAmdW5UYWcsICZlcnJvciApOwor
ICAgICAgIGlmICggdW5UYWcgIT0ga191blN0cmluZ1Byb3BlcnR5VGFnICYmIGVycm9yID09IFRy
YWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZXJyb3IgPSBUcmFj
a2VkUHJvcF9Xcm9uZ0RhdGFUeXBlOworICAgICAgIH0KKworICAgICAgIGlmICggcEVycm9yICkK
KyAgICAgICB7CisgICAgICAgICAgICAgICpwRXJyb3IgPSBlcnJvcjsKKyAgICAgICB9CisKKyAg
ICAgICBpZiAoIGVycm9yICE9IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgaWYgKCBwY2hWYWx1ZSAmJiB1bkJ1ZmZlclNpemUgKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAqcGNoVmFsdWUgPSAnXDAnOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHVuUmVxdWlyZWRTaXplOworfQorCisKKy8qKiBS
ZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5IGFzIGEgc3RkOjpzdHJpbmcuIElmIHRoZSBkZXZpY2Ug
aW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0
aGlzIGZ1bmN0aW9uIHdpbGwKKyogcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4gKi8KK2lubGluZSBz
dGQ6OnN0cmluZyBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFN0cmluZ1Byb3BlcnR5KCB2cjo6UHJv
cGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lciwgdnI6OkVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgdnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciAqcGVFcnJvciApCit7CisgICAg
ICAgY2hhciBidWZbMTAyNF07CisgICAgICAgdnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciBlcnI7
CisgICAgICAgdWludDMyX3QgdW5SZXF1aXJlZEJ1ZmZlckxlbiA9IEdldFN0cmluZ1Byb3BlcnR5
KCB1bENvbnRhaW5lciwgcHJvcCwgYnVmLCBzaXplb2YoYnVmKSwgJmVyciApOworCisgICAgICAg
c3RkOjpzdHJpbmcgc1Jlc3VsdDsKKworICAgICAgIGlmICggZXJyID09IFRyYWNrZWRQcm9wX1N1
Y2Nlc3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc1Jlc3VsdCA9IGJ1ZjsKKyAgICAgICB9
CisgICAgICAgZWxzZSBpZiAoIGVyciA9PSBUcmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCApCisg
ICAgICAgeworICAgICAgICAgICAgICBjaGFyICpwY2hCdWZmZXIgPSBuZXcgY2hhclt1blJlcXVp
cmVkQnVmZmVyTGVuXTsKKyAgICAgICAgICAgICAgdW5SZXF1aXJlZEJ1ZmZlckxlbiA9IEdldFN0
cmluZ1Byb3BlcnR5KCB1bENvbnRhaW5lciwgcHJvcCwgcGNoQnVmZmVyLCB1blJlcXVpcmVkQnVm
ZmVyTGVuLCAmZXJyICk7CisgICAgICAgICAgICAgIHNSZXN1bHQgPSBwY2hCdWZmZXI7CisgICAg
ICAgICAgICAgIGRlbGV0ZVtdIHBjaEJ1ZmZlcjsKKyAgICAgICB9CisKKyAgICAgICBpZiAoIHBl
RXJyb3IgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgKnBlRXJyb3IgPSBlcnI7CisgICAgICAg
fQorCisgICAgICAgcmV0dXJuIHNSZXN1bHQ7Cit9CisKKworLyoqIFNldHMgYSBzdHJpbmcgcHJv
cGVydHkuIFRoZSBuZXcgdmFsdWUgd2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBj
YWxsIHRvIGdldCB0aGlzIHByb3BlcnR5IGluIGFueSBwcm9jZXNzLiAqLworaW5saW5lIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldFN0cmluZ1Byb3BlcnR5KCBQ
cm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmlj
ZVByb3BlcnR5IHByb3AsIGNvbnN0IGNoYXIgKnBjaE5ld1ZhbHVlICkKK3sKKyAgICAgICBpZiAo
ICFwY2hOZXdWYWx1ZSApCisgICAgICAgICAgICAgIHJldHVybiBUcmFja2VkUHJvcF9JbnZhbGlk
T3BlcmF0aW9uOworCisgICAgICAgLy8gdGhpcyBpcyBzdHJsZW4gd2l0aG91dCB0aGUgZGVwZW5k
ZW5jeSBvbiBzdHJpbmcuaAorICAgICAgIGNvbnN0IGNoYXIgKnBjaEN1cnIgPSBwY2hOZXdWYWx1
ZTsKKyAgICAgICB3aGlsZSAoICpwY2hDdXJyICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBj
aEN1cnIrKzsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFp
bmVySGFuZGxlLCBwcm9wLCAodm9pZCAqKXBjaE5ld1ZhbHVlLCAodWludDMyX3QpKHBjaEN1cnIg
LSBwY2hOZXdWYWx1ZSkgKyAxLCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgKTsKK30KKworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIFQgQ1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlciggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwg
VCBiRGVmYXVsdCwgUHJvcGVydHlUeXBlVGFnX3QgdW5UeXBlVGFnICkKK3sKKyAgICAgICBUIGJW
YWx1ZTsKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZUVycm9yOworICAgICAgIFByb3Bl
cnR5VHlwZVRhZ190IHVuUmVhZFRhZzsKKyAgICAgICBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJI
YW5kbGUsIHByb3AsICZiVmFsdWUsIHNpemVvZiggYlZhbHVlICksICZ1blJlYWRUYWcsICZlRXJy
b3IgKTsKKyAgICAgICBpZiAoIHVuUmVhZFRhZyAhPSB1blR5cGVUYWcgJiYgZUVycm9yID09IFRy
YWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZUVycm9yID0gVHJh
Y2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKKyAgICAgICB9OworCisgICAgICAgaWYgKCBwRXJyb3Ig
KQorICAgICAgICAgICAgICAqcEVycm9yID0gZUVycm9yOworICAgICAgIGlmICggZUVycm9yICE9
IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGJE
ZWZhdWx0OworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICBy
ZXR1cm4gYlZhbHVlOworICAgICAgIH0KK30KKworCitpbmxpbmUgYm9vbCBDVlJQcm9wZXJ0eUhl
bHBlcnM6OkdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRh
aW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgcmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGJvb2w+
KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgcEVycm9yLCBmYWxzZSwga191bkJvb2xQcm9wZXJ0
eVRhZyApOworfQorCisKK2lubGluZSBmbG9hdCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEZsb2F0
UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3Ig
KQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjxmbG9hdD4oIHVsQ29udGFpbmVy
SGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAuZiwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKK30KKwor
aW5saW5lIGludDMyX3QgQ1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KCBQcm9w
ZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBy
ZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8aW50MzJfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9w
LCBwRXJyb3IsIDAsIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Cit9CisKK2lubGluZSB1aW50NjRf
dCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3As
IEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICByZXR1cm4gR2V0UHJv
cGVydHlIZWxwZXI8dWludDY0X3Q+KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgcEVycm9yLCAw
LCBrX3VuVWludDY0UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlF
cnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCBib29sIGJOZXdWYWx1ZSApCit7CisgICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRh
aW5lckhhbmRsZSwgcHJvcCwgJmJOZXdWYWx1ZSwgc2l6ZW9mKCBiTmV3VmFsdWUgKSwga191bkJv
b2xQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlBy
b3BlcnR5SGVscGVyczo6U2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVf
dCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBmbG9hdCBm
TmV3VmFsdWUgKQoreworICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5k
bGUsIHByb3AsICZmTmV3VmFsdWUsIHNpemVvZiggZk5ld1ZhbHVlICksIGtfdW5GbG9hdFByb3Bl
cnR5VGFnICk7Cit9CisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlI
ZWxwZXJzOjpTZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29u
dGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1Zh
bHVlICkKK3sKKyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBw
cm9wLCAmbk5ld1ZhbHVlLCBzaXplb2YoIG5OZXdWYWx1ZSApLCBrX3VuSW50MzJQcm9wZXJ0eVRh
ZyApOworfQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVy
czo6U2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdWludDY0X3QgdWxOZXdWYWx1
ZSApCit7CisgICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJv
cCwgJnVsTmV3VmFsdWUsIHNpemVvZiggdWxOZXdWYWx1ZSApLCBrX3VuVWludDY0UHJvcGVydHlU
YWcgKTsKK30KKworLyoqIFNldHMgdGhlIGVycm9yIHJldHVybiB2YWx1ZSBmb3IgYSBwcm9wZXJ0
eS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFsbCBzdWJzZXF1ZW50IHJlcXVlc3Rz
IHRvIGdldCB0aGUgcHJvcGVydHkgKi8KK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZS
UHJvcGVydHlIZWxwZXJzOjpTZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBlRXJyb3IgKQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRj
aDsKKyAgICAgICBiYXRjaC53cml0ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX1NldEVycm9yOworICAg
ICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJhdGNoLmVTZXRFcnJvciA9IGVFcnJvcjsK
KworICAgICAgIG1fcFByb3BlcnRpZXMtPldyaXRlUHJvcGVydHlCYXRjaCggdWxDb250YWluZXJI
YW5kbGUsICZiYXRjaCwgMSApOworCisgICAgICAgcmV0dXJuIGJhdGNoLmVFcnJvcjsKK30KKwor
LyoqIENsZWFycyBhbnkgdmFsdWUgb3IgZXJyb3Igc2V0IGZvciB0aGUgcHJvcGVydHkuICovCitp
bmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6RXJhc2VQcm9w
ZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wICkKK3sKKyAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7
CisgICAgICAgYmF0Y2gud3JpdGVUeXBlID0gUHJvcGVydHlXcml0ZV9FcmFzZTsKKyAgICAgICBi
YXRjaC5wcm9wID0gcHJvcDsKKworICAgICAgIG1fcFByb3BlcnRpZXMtPldyaXRlUHJvcGVydHlC
YXRjaCggdWxDb250YWluZXJIYW5kbGUsICZiYXRjaCwgMSApOworCisgICAgICAgcmV0dXJuIGJh
dGNoLmVFcnJvcjsKKworfQorCit9CisKKworLy8gaXZyZHJpdmVybG9nLmgKK25hbWVzcGFjZSB2
cgoreworCitjbGFzcyBJVlJEcml2ZXJMb2cKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogV3JpdGVz
IGEgbG9nIG1lc3NhZ2UgdG8gdGhlIGxvZyBmaWxlIHByZWZpeGVkIHdpdGggdGhlIGRyaXZlciBu
YW1lICovCisgICAgICAgdmlydHVhbCB2b2lkIExvZyggY29uc3QgY2hhciAqcGNoTG9nTWVzc2Fn
ZSApID0gMDsKK307CisKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckxvZ19WZXJzaW9u
ID0gIklWUkRyaXZlckxvZ18wMDEiOworCit9CisvLyBpdnJzZXJ2ZXJkcml2ZXJob3N0LmgKK25h
bWVzcGFjZSB2cgoreworCitjbGFzcyBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcjsKK3N0cnVj
dCBUcmFja2VkRGV2aWNlRHJpdmVySW5mb190Oworc3RydWN0IERyaXZlclBvc2VfdDsKKworLyoq
IFRoaXMgaW50ZXJmYWNlIGlzIHByb3ZpZGVkIGJ5IHZyc2VydmVyIHRvIGFsbG93IHRoZSBkcml2
ZXIgdG8gbm90aWZ5IAorKiB0aGUgc3lzdGVtIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMgYWJvdXQg
YSBkZXZpY2UuIFRoZXNlIGNoYW5nZXMgbXVzdAorKiBub3QgY2hhbmdlIHRoZSBzZXJpYWwgbnVt
YmVyIG9yIGNsYXNzIG9mIHRoZSBkZXZpY2UgYmVjYXVzZSB0aG9zZSB2YWx1ZXMKKyogYXJlIHBl
cm1hbmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlJ3MgaW5kZXguICovCitjbGFzcyBJ
VlJTZXJ2ZXJEcml2ZXJIb3N0Cit7CitwdWJsaWM6CisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBz
ZXJ2ZXIgdGhhdCBhIHRyYWNrZWQgZGV2aWNlIGhhcyBiZWVuIGFkZGVkLiBJZiB0aGlzIGZ1bmN0
aW9uIHJldHVybnMgdHJ1ZQorICAgICAgICogdGhlIHNlcnZlciB3aWxsIGNhbGwgQWN0aXZhdGUg
b24gdGhlIGRldmljZS4gSWYgaXQgcmV0dXJucyBmYWxzZSBzb21lIGtpbmQgb2YgZXJyb3IKKyAg
ICAgICAqIGhhcyBvY2N1cnJlZCBhbmQgdGhlIGRldmljZSB3aWxsIG5vdCBiZSBhY3RpdmF0ZWQu
ICovCisgICAgICAgdmlydHVhbCBib29sIFRyYWNrZWREZXZpY2VBZGRlZCggY29uc3QgY2hhciAq
cGNoRGV2aWNlU2VyaWFsTnVtYmVyLCBFVHJhY2tlZERldmljZUNsYXNzIGVEZXZpY2VDbGFzcywg
SVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXIgKnBEcml2ZXIgKSA9IDA7CisKKyAgICAgICAvKiog
Tm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEgdHJhY2tlZCBkZXZpY2UncyBwb3NlIGhhcyBiZWVu
IHVwZGF0ZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZVBvc2VVcGRhdGVk
KCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBjb25zdCBEcml2ZXJQb3NlX3QgJiBuZXdQb3NlLCB1
aW50MzJfdCB1blBvc2VTdHJ1Y3RTaXplICkgPSAwOworCisgICAgICAgLyoqIE5vdGlmaWVzIHRo
ZSBzZXJ2ZXIgdGhhdCB2c3luYyBoYXMgb2NjdXJyZWQgb24gdGhlIHRoZSBkaXNwbGF5IGF0dGFj
aGVkIHRvIHRoZSBkZXZpY2UuIFRoaXMgaXMKKyAgICAgICAqIG9ubHkgcGVybWl0dGVkIG9uIGRl
dmljZXMgb2YgdGhlIEhNRCBjbGFzcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVnN5bmNFdmVu
dCggZG91YmxlIHZzeW5jVGltZU9mZnNldFNlY29uZHMgKSA9IDA7CisKKyAgICAgICAvKiogbm90
aWZpZXMgdGhlIHNlcnZlciB0aGF0IHRoZSBidXR0b24gd2FzIHByZXNzZWQgKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblByZXNzZWQoIHVpbnQzMl90IHVuV2hpY2hE
ZXZpY2UsIEVWUkJ1dHRvbklkIGVCdXR0b25JZCwgZG91YmxlIGV2ZW50VGltZU9mZnNldCApID0g
MDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2VydmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMg
dW5wcmVzc2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VCdXR0b25VbnBy
ZXNzZWQoIHVpbnQzMl90IHVuV2hpY2hEZXZpY2UsIEVWUkJ1dHRvbklkIGVCdXR0b25JZCwgZG91
YmxlIGV2ZW50VGltZU9mZnNldCApID0gMDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2Vy
dmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBU
cmFja2VkRGV2aWNlQnV0dG9uVG91Y2hlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0
dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAg
LyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVudG91Y2hlZCggdWludDMy
X3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1l
T2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhbiBhIGNv
bnRyb2xsZXIgYXhpcyBjaGFuZ2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZp
Y2VBeGlzVXBkYXRlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgdWludDMyX3QgdW5XaGljaEF4
aXMsIGNvbnN0IFZSQ29udHJvbGxlckF4aXNfdCAmIGF4aXNTdGF0ZSApID0gMDsKKworICAgICAg
IC8qKiBOb3RpZmllcyB0aGUgc2VydmVyIHRoYXQgdGhlIHByb3hpbWl0eSBzZW5zb3Igb24gdGhl
IHNwZWNpZmllZCBkZXZpY2UgICovCisgICAgICAgdmlydHVhbCB2b2lkIFByb3hpbWl0eVNlbnNv
clN0YXRlKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBib29sIGJQcm94aW1pdHlTZW5zb3JUcmln
Z2VyZWQgKSA9IDA7CisKKyAgICAgICAvKiogU2VuZHMgYSB2ZW5kb3Igc3BlY2lmaWMgZXZlbnQg
KFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQuLlZSRXZlbnRfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfRW5kICovCisgICAgICAgdmlydHVhbCB2b2lkIFZlbmRvclNwZWNpZmlj
RXZlbnQoIHVpbnQzMl90IHVuV2hpY2hEZXZpY2UsIHZyOjpFVlJFdmVudFR5cGUgZXZlbnRUeXBl
LCBjb25zdCBWUkV2ZW50X0RhdGFfdCAmIGV2ZW50RGF0YSwgZG91YmxlIGV2ZW50VGltZU9mZnNl
dCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgU3RlYW1WUiBpcyBleGl0aW5n
ICovCisgICAgICAgdmlydHVhbCBib29sIElzRXhpdGluZygpID0gMDsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRo
ZSBxdWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVudHMKKyAgICAgICAq
IHRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6
ZSBpbiBieXRlcyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLworICAgICAgIHZpcnR1YWwgYm9v
bCBQb2xsTmV4dEV2ZW50KCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQg
KSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqSVZSU2VydmVyRHJpdmVySG9zdF9WZXJz
aW9uID0gIklWUlNlcnZlckRyaXZlckhvc3RfMDA0IjsKKworfQorLy8gaXZyaGlkZGVuYXJlYS5o
CituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgQ1ZSSGlkZGVuQXJlYUhlbHBlcnMKK3sKK3B1Ymxp
YzoKKyAgICAgICBDVlJIaWRkZW5BcmVhSGVscGVycyggSVZSUHJvcGVydGllcyAqcFByb3BlcnRp
ZXMgKSA6IG1fcFByb3BlcnRpZXMoIHBQcm9wZXJ0aWVzICkge30KKworICAgICAgIC8qKiBTdG9y
ZXMgYSBoaWRkZW4gYXJlYSBtZXNoIGluIGEgcHJvcGVydHkgKi8KKyAgICAgICBFVHJhY2tlZFBy
b3BlcnR5RXJyb3IgU2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5
cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICk7CisK
KyAgICAgICAvKiogcmV0cmlldmVzIGEgaGlkZGVuIGFyZWEgbWVzaCBmcm9tIGEgcHJvcGVydHku
IFJldHVybnMgdGhlIHZlcnQgY291bnQgcmVhZCBvdXQgb2YgdGhlIHByb3BlcnR5LiAgKi8KKyAg
ICAgICB1aW50MzJfdCBHZXRIaWRkZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNo
VHlwZSB0eXBlLCBIbWRWZWN0b3IyX3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQsIEVU
cmFja2VkUHJvcGVydHlFcnJvciAqcGVFcnJvciApOworCitwcml2YXRlOgorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgR2V0UHJvcGVydHlFbnVtKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFy
ZWFNZXNoVHlwZSB0eXBlICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAoRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSkoUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgKyAo
KGludCl0eXBlICogMikgKyAoaW50KWVFeWUpOworICAgICAgIH0KKworICAgICAgIElWUlByb3Bl
cnRpZXMgKm1fcFByb3BlcnRpZXM7Cit9OworCisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgQ1ZSSGlkZGVuQXJlYUhlbHBlcnM6OlNldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlk
ZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEhtZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZl
cnRDb3VudCApCit7CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wID0gR2V0UHJv
cGVydHlFbnVtKCBlRXllLCB0eXBlICk7CisgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzIHByb3BI
ZWxwZXJzKCBtX3BQcm9wZXJ0aWVzICk7CisgICAgICAgcmV0dXJuIHByb3BIZWxwZXJzLlNldFBy
b3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcigga191
blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXplb2YoIEhtZFZlY3Rv
cjJfdCApICogdW5WZXJ0Q291bnQsIGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKTsKK30KKwor
CitpbmxpbmUgdWludDMyX3QgQ1ZSSGlkZGVuQXJlYUhlbHBlcnM6OkdldEhpZGRlbkFyZWEoIEVW
UkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEhtZFZlY3RvcjJfdCAqcFZlcnRz
LCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkK
K3sKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0o
IGVFeWUsIHR5cGUgKTsKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1f
cFByb3BlcnRpZXMgKTsKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcHJvcEVycm9yOwor
ICAgICAgIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnOworICAgICAgIHVpbnQzMl90IHVuQnl0ZXNO
ZWVkZWQgPSBwcm9wSGVscGVycy5HZXRQcm9wZXJ0eSggcHJvcEhlbHBlcnMuVHJhY2tlZERldmlj
ZVRvUHJvcGVydHlDb250YWluZXIoIGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kICksIHByb3As
IHBWZXJ0cywgc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKSp1blZlcnRDb3VudCwgJnVuVGFnLCAmcHJv
cEVycm9yICk7CisgICAgICAgaWYgKCBwcm9wRXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyAm
JiB1blRhZyAhPSBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHByb3BFcnJvciA9IFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGU7CisgICAgICAgICAg
ICAgIHVuQnl0ZXNOZWVkZWQgPSAwOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciAp
CisgICAgICAgeworICAgICAgICAgICAgICAqcGVFcnJvciA9IHByb3BFcnJvcjsKKyAgICAgICB9
CisKKyAgICAgICByZXR1cm4gdW5CeXRlc05lZWRlZCAvIHNpemVvZiggSG1kVmVjdG9yMl90ICk7
Cit9CisKK30KKy8vIGl2cndhdGNoZG9naG9zdC5oCituYW1lc3BhY2UgdnIKK3sKKworLyoqIFRo
aXMgaW50ZXJmYWNlIGlzIHByb3ZpZGVkIGJ5IHZyY2xpZW50IHRvIGFsbG93IHRoZSBkcml2ZXIg
dG8gbWFrZSBldmVyeXRoaW5nIHdha2UgdXAgKi8KK2NsYXNzIElWUldhdGNoZG9nSG9zdAorewor
cHVibGljOgorICAgICAgIC8qKiBDbGllbnQgZHJpdmVycyBpbiB3YXRjaGRvZyBtb2RlIHNob3Vs
ZCBjYWxsIHRoaXMgd2hlbiB0aGV5IGhhdmUgcmVjZWl2ZWQgYSBzaWduYWwgZnJvbSBoYXJkd2Fy
ZSB0aGF0IHNob3VsZAorICAgICAgICogY2F1c2UgU3RlYW1WUiB0byBzdGFydCAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBXYXRjaGRvZ1dha2VVcCgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBj
aGFyICpJVlJXYXRjaGRvZ0hvc3RfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ0hvc3RfMDAxIjsKKwor
fTsKKworCisKKworCisKKworbmFtZXNwYWNlIHZyCit7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX0ludGVyZmFjZVZlcnNpb25zW10gPQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgSVZSU2V0dGluZ3NfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVRyYWNrZWREZXZpY2VTZXJ2
ZXJEcml2ZXJfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSRGlzcGxheUNvbXBvbmVudF9WZXJz
aW9uLAorICAgICAgICAgICAgICBJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X1ZlcnNpb24s
CisgICAgICAgICAgICAgIElWUkNvbnRyb2xsZXJDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAg
ICAgICAgSVZSQ2FtZXJhQ29tcG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElTZXJ2ZXJU
cmFja2VkRGV2aWNlUHJvdmlkZXJfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dQ
cm92aWRlcl9WZXJzaW9uLAorICAgICAgICAgICAgICBudWxscHRyCisgICAgICAgfTsKKworICAg
ICAgIGlubGluZSBJVlJEcml2ZXJDb250ZXh0IComVlJEcml2ZXJDb250ZXh0KCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHN0YXRpYyBJVlJEcml2ZXJDb250ZXh0ICpwSG9zdDsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHBIb3N0OworICAgICAgIH0KKworICAgICAgIGNsYXNzIENPcGVuVlJEcml2
ZXJDb250ZXh0CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgQ09wZW5W
UkRyaXZlckNvbnRleHQoKSA6IG1fcHJvcGVydHlIZWxwZXJzKG51bGxwdHIpLCBtX2hpZGRlbkFy
ZWFIZWxwZXJzKG51bGxwdHIpIHsgQ2xlYXIoKTsgfQorICAgICAgICAgICAgICB2b2lkIENsZWFy
KCk7CisKKyAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXIoKTsKKyAgICAgICAg
ICAgICAgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZygpOworCisgICAgICAgICAgICAgIElWUlNl
dHRpbmdzICpWUlNldHRpbmdzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgaWYgKCBtX3BWUlNldHRpbmdzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IChJVlJTZXR0aW5ncyAqKVZS
RHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9u
LCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IElWUlByb3BlcnRpZXMgKlZSUHJvcGVydGllc1JhdygpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIGlmICggbV9wVlJQcm9wZXJ0aWVzID09IG51bGxwdHIgKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJv
ciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0g
KElWUlByb3BlcnRpZXMgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSgg
SVZSUHJvcGVydGllc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wcm9wZXJ0eUhlbHBlcnMgPSBDVlJQcm9wZXJ0eUhlbHBlcnMoIG1fcFZSUHJvcGVy
dGllcyApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faGlkZGVuQXJlYUhlbHBlcnMg
PSBDVlJIaWRkZW5BcmVhSGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7CisgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJQcm9wZXJ0aWVzOwor
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzICpWUlBy
b3BlcnRpZXMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlByb3Bl
cnRpZXNSYXcoKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9wcm9wZXJ0eUhlbHBl
cnM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBDVlJIaWRkZW5BcmVhSGVscGVy
cyAqVlJIaWRkZW5BcmVhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
VlJQcm9wZXJ0aWVzUmF3KCk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJm1faGlkZGVu
QXJlYUhlbHBlcnM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJTZXJ2ZXJE
cml2ZXJIb3N0ICpWUlNlcnZlckRyaXZlckhvc3QoKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAoIG1fcFZSU2VydmVyRHJpdmVySG9zdCA9PSBudWxscHRyICkKKyAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0
RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2VydmVyRHJp
dmVySG9zdCA9IChJVlJTZXJ2ZXJEcml2ZXJIb3N0ICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdl
bmVyaWNJbnRlcmZhY2UoIElWUlNlcnZlckRyaXZlckhvc3RfVmVyc2lvbiwgJmVFcnJvciApOwor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZS
U2VydmVyRHJpdmVySG9zdDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUldh
dGNoZG9nSG9zdCAqVlJXYXRjaGRvZ0hvc3QoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAoIG1fcFZSV2F0Y2hkb2dIb3N0ID09IG51bGxwdHIgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBl
RXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJXYXRjaGRvZ0hvc3QgPSAo
SVZSV2F0Y2hkb2dIb3N0ICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2Uo
IElWUldhdGNoZG9nSG9zdF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJXYXRjaGRvZ0hvc3Q7CisgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJEcml2ZXJMb2cgKlZSRHJpdmVyTG9nKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkRyaXZlckxv
ZyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcFZSRHJpdmVyTG9nID0gKElWUkRyaXZlckxvZyAqKVZSRHJpdmVyQ29udGV4dCgpLT5H
ZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJEcml2ZXJMb2dfVmVyc2lvbiwgJmVFcnJvciApOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRHJp
dmVyTG9nOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgRHJpdmVySGFuZGxlX3Qg
VlJfQ0FMTFRZUEUgVlJEcml2ZXJIYW5kbGUoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gVlJEcml2ZXJDb250ZXh0KCktPkdldERyaXZlckhhbmRsZSgpOwor
ICAgICAgICAgICAgICB9CisKKyAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICBJVlJTZXR0
aW5ncyAgICAgICAgICAgICAgICAgICAgICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJ
VlJQcm9wZXJ0aWVzICAgICAgICAgICAgICAqbV9wVlJQcm9wZXJ0aWVzOworICAgICAgICAgICAg
ICBDVlJQcm9wZXJ0eUhlbHBlcnMgICAgICAgbV9wcm9wZXJ0eUhlbHBlcnM7CisgICAgICAgICAg
ICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICAgICAgIG1faGlkZGVuQXJlYUhlbHBlcnM7CisgICAg
ICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgICAgICAgKm1fcFZSU2VydmVyRHJpdmVySG9z
dDsKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICAgICAgICAgICAgICAqbV9wVlJXYXRj
aGRvZ0hvc3Q7CisgICAgICAgICAgICAgIElWUkRyaXZlckxvZyAgICAgICAgICAgICAgKm1fcFZS
RHJpdmVyTG9nOworICAgICAgIH07CisKKyAgICAgICBpbmxpbmUgQ09wZW5WUkRyaXZlckNvbnRl
eHQgJk9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgc3RhdGljIHZvaWQgKmN0eFtzaXplb2YoIENPcGVuVlJEcml2ZXJDb250
ZXh0ICkgLyBzaXplb2YoIHZvaWQgKiApXTsKKyAgICAgICAgICAgICAgcmV0dXJuICooQ09wZW5W
UkRyaXZlckNvbnRleHQgKiljdHg7IC8vIGJ5cGFzcyB6ZXJvLWluaXQgY29uc3RydWN0b3IKKyAg
ICAgICB9CisKKyAgICAgICBpbmxpbmUgSVZSU2V0dGluZ3MgKlZSX0NBTExUWVBFIFZSU2V0dGlu
Z3MoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCku
VlJTZXR0aW5ncygpOyB9CisgICAgICAgaW5saW5lIElWUlByb3BlcnRpZXMgKlZSX0NBTExUWVBF
IFZSUHJvcGVydGllc1JhdygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRy
aXZlckNvbnRleHQoKS5WUlByb3BlcnRpZXNSYXcoKTsgfQorICAgICAgIGlubGluZSBDVlJQcm9w
ZXJ0eUhlbHBlcnMgKlZSX0NBTExUWVBFIFZSUHJvcGVydGllcygpIHsgcmV0dXJuIE9wZW5WUklu
dGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlByb3BlcnRpZXMoKTsgfQorICAg
ICAgIGlubGluZSBDVlJIaWRkZW5BcmVhSGVscGVycyAqVlJfQ0FMTFRZUEUgVlJIaWRkZW5BcmVh
KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZS
SGlkZGVuQXJlYSgpOyB9CisgICAgICAgaW5saW5lIElWUkRyaXZlckxvZyAqVlJfQ0FMTFRZUEUg
VlJEcml2ZXJMb2coKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KCkuVlJEcml2ZXJMb2coKTsgfQorICAgICAgIGlubGluZSBJVlJTZXJ2ZXJEcml2ZXJI
b3N0ICpWUl9DQUxMVFlQRSBWUlNlcnZlckRyaXZlckhvc3QoKSB7IHJldHVybiBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJTZXJ2ZXJEcml2ZXJIb3N0KCk7IH0K
KyAgICAgICBpbmxpbmUgSVZSV2F0Y2hkb2dIb3N0ICpWUl9DQUxMVFlQRSBWUldhdGNoZG9nSG9z
dCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5W
UldhdGNoZG9nSG9zdCgpOyB9CisgICAgICAgaW5saW5lIERyaXZlckhhbmRsZV90IFZSX0NBTExU
WVBFIFZSRHJpdmVySGFuZGxlKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVy
RHJpdmVyQ29udGV4dCgpLlZSRHJpdmVySGFuZGxlKCk7IH0KKyAgICAgICBpbmxpbmUgdm9pZCBD
T3BlblZSRHJpdmVyQ29udGV4dDo6Q2xlYXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgbV9w
VlJTZXR0aW5ncyA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSUHJvcGVydGllcyA9IG51
bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSU2VydmVyRHJpdmVySG9zdCA9IG51bGxwdHI7Cisg
ICAgICAgICAgICAgIG1fcFZSRHJpdmVyTG9nID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9w
VlJXYXRjaGRvZ0hvc3QgPSBudWxscHRyOworICAgICAgIH0KKworICAgICAgIGlubGluZSBFVlJJ
bml0RXJyb3IgQ09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIoKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgQ2xlYXIoKTsKKyAgICAgICAgICAgICAgaWYgKCAhVlJTZXJ2ZXJEcml2ZXJI
b3N0KCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNldHRpbmdzKCkKKyAgICAgICAgICAg
ICAgICAgICAgIHx8ICFWUlByb3BlcnRpZXMoKQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZS
RHJpdmVyTG9nKCkgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX0lu
aXRfSW50ZXJmYWNlTm90Rm91bmQ7CisgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9O
b25lOworICAgICAgIH0KKworICAgICAgIGlubGluZSBFVlJJbml0RXJyb3IgQ09wZW5WUkRyaXZl
ckNvbnRleHQ6OkluaXRXYXRjaGRvZygpCisgICAgICAgeworICAgICAgICAgICAgICBDbGVhcigp
OworICAgICAgICAgICAgICBpZiAoICFWUldhdGNoZG9nSG9zdCgpCisgICAgICAgICAgICAgICAg
ICAgICB8fCAhVlJTZXR0aW5ncygpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJM
b2coKSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRl
cmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7Cisg
ICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBJbml0U2VydmVyRHJpdmVyQ29u
dGV4dCggSVZSRHJpdmVyQ29udGV4dCAqcENvbnRleHQgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgVlJEcml2ZXJDb250ZXh0KCkgPSBwQ29udGV4dDsKKyAgICAgICAgICAgICAgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5Jbml0U2VydmVyKCk7Cisg
ICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBJbml0V2F0Y2hkb2dEcml2ZXJD
b250ZXh0KCBJVlJEcml2ZXJDb250ZXh0ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAg
ICAgICBWUkRyaXZlckNvbnRleHQoKSA9IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4g
T3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRXYXRjaGRvZygp
OworICAgICAgIH0KKworICAgICAgIGlubGluZSB2b2lkIENsZWFudXBEcml2ZXJDb250ZXh0KCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIFZSRHJpdmVyQ29udGV4dCgpID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkNs
ZWFyKCk7CisgICAgICAgfQorCisgICAgICAgI2RlZmluZSBWUl9JTklUX1NFUlZFUl9EUklWRVJf
Q09OVEVYVCggcENvbnRleHQgKSBcCisgICAgICAgICAgICAgICAgICAgICB7IFwKKyAgICAgICAg
ICAgICAgICAgICAgIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yID0gdnI6OkluaXRTZXJ2ZXJEcml2
ZXJDb250ZXh0KCBwQ29udGV4dCApOyBcCisgICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9y
ICE9IHZyOjpWUkluaXRFcnJvcl9Ob25lICkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBlRXJyb3I7IFwKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICNkZWZp
bmUgVlJfQ0xFQU5VUF9TRVJWRVJfRFJJVkVSX0NPTlRFWFQoKSBcCisgICAgICAgICAgICAgIHZy
OjpDbGVhbnVwRHJpdmVyQ29udGV4dCgpOworCisgICAgICAgI2RlZmluZSBWUl9JTklUX1dBVENI
RE9HX0RSSVZFUl9DT05URVhUKCBwQ29udGV4dCApIFwKKyAgICAgICAgICAgICAgICAgICAgIHsg
XAorICAgICAgICAgICAgICAgICAgICAgdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5p
dFdhdGNoZG9nRHJpdmVyQ29udGV4dCggcENvbnRleHQgKTsgXAorICAgICAgICAgICAgICAgICAg
ICAgaWYoIGVFcnJvciAhPSB2cjo6VlJJbml0RXJyb3JfTm9uZSApIFwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZUVycm9yOyBcCisgICAgICAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAjZGVmaW5lIFZSX0NMRUFOVVBfV0FUQ0hET0dfRFJJVkVSX0NPTlRFWFQoKSBcCisg
ICAgICAgICAgICAgIHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCgpOworfQorLy8gRW5kCisKKyNl
bmRpZiAvLyBfT1BFTlZSX0RSSVZFUl9BUEkKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvb3BlbnZyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvb3BlbnZyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWJlMzkyNzNkN2MzNGQxMTFjMjE0YzZhOTI1ODZlNThkNWFkYWRmNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9vcGVudnIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMCwwICsxLDQxNyBAQAorLy8gISQqVVRGOCokIQoreworICAgICAgIGFyY2hp
dmVWZXJzaW9uID0gMTsKKyAgICAgICBjbGFzc2VzID0geworICAgICAgIH07CisgICAgICAgb2Jq
ZWN0VmVyc2lvbiA9IDQ2OworICAgICAgIG9iamVjdHMgPSB7CisKKy8qIEJlZ2luIFBCWEJ1aWxk
RmlsZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNTMxNDJFMUY2RkRFQjAwMDczQjg5NyAv
KiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5k
YXRpb24uZnJhbWV3b3JrICovOyB9OworICAgICAgICAgICAgICA4RTUzMTQzMjFGNkZFQ0FFMDA3
M0I4OTcgLyogQXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhFNTMxNDMxMUY2RkVDQUUwMDczQjg5NyAvKiBBcHBLaXQuZnJh
bWV3b3JrICovOyB9OworICAgICAgICAgICAgICA4RTUzMTQzNTFGNzJENTg0MDA3M0I4OTcgLyog
Rm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4RTUzMTQyRjFGNkZFQkM4MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFt
ZXdvcmsgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjg5MUY2QUY2RDMwMDU3QjgwMyAvKiBk
aXJ0b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOEU3OTQyNkMxRjZBRTlBQjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAg
Ki87IH07CisgICAgICAgICAgICAgIDhFNzk0MjhBMUY2QUY2RDMwMDU3QjgwMyAvKiBlbnZ2YXJ0
b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEU3OTQyNkUxRjZBRTlBQjAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAg
Ki87IH07CisgICAgICAgICAgICAgIDhFNzk0MjhCMUY2QUY2RDMwMDU3QjgwMyAvKiBobWRlcnJv
cnNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhFNzk0MjcwMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCAqLzsg
fTsKKyAgICAgICAgICAgICAgOEU3OTQyOEMxRjZBRjZEMzAwNTdCODAzIC8qIHBhdGh0b29sc19w
dWJsaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU3OTQyNzIxRjZBRTlBQjAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovOyB9Owor
ICAgICAgICAgICAgICA4RTc5NDI4RDFGNkFGNkQzMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNf
cHVibGljLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNzk0Mjc0MUY2QUU5QUIwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwICov
OyB9OworICAgICAgICAgICAgICA4RTc5NDI4RTFGNkFGNkQzMDA1N0I4MDMgLyogc3RydG9vbHNf
cHVibGljLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNzk0Mjc2MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwICovOyB9Owor
ICAgICAgICAgICAgICA4RTc5NDI4RjFGNkFGNkQzMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlf
cHVibGljLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNzk0Mjc4MUY2QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwICov
OyB9OworICAgICAgICAgICAgICA4RTc5NDI5MDFGNkFGNkVFMDA1N0I4MDMgLyoganNvbmNwcC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2
ODFGNkFFOUFCMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhF
Nzk0MjkxMUY2QUY2RUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2OTFGNkFFOUFCMDA1
N0I4MDMgLyogb3BlbnZyX2FwaV9wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5
NDI5MjFGNkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3QjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworICAgICAg
ICAgICAgICA4RTc5NDI5MzFGNkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjdFMUY2QUYwNUUw
MDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTQxRjZBRjcxRDAwNTdCODAzIC8q
IG9wZW52cl9kcml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhFNzk0MjdGMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfZHJpdmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworICAgICAgICAgICAgICA4
RTc5NDI5NTFGNkFGNzhEMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNjQxRjZBRTlBQjAwNTdCODAz
IC8qIGl2cmNsaWVudGNvcmUuaCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTYxRjZBRjc4
RDAwNTdCODAzIC8qIGpzb24tZm9yd2FyZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY2MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndh
cmRzLmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk3MUY2QUY3OEQwMDU3QjgwMyAvKiBq
c29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5
NDI2NzFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi5oICovOyB9OworICAgICAgICAgICAgICA4RTc5
NDI5ODFGNkFGNzhEMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2RDFGNkFFOUFCMDA1N0I4MDMg
LyogZGlydG9vbHNfcHVibGljLmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk5MUY2QUY3
OEQwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjZGMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2
YXJ0b29sc19wdWJsaWMuaCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOUExRjZBRjc4RDAw
NTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNf
cHVibGljLmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0MjlCMUY2QUY3OEQwMDU3QjgwMyAv
KiBwYXRodG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4RTc5NDI3MzFGNkFFOUFCMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5o
ICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5QzFGNkFGNzhEMDA1N0I4MDMgLyogc2hhcmVk
bGlidG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4RTc5NDI3NTFGNkFFOUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGlj
LmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0MjlEMUY2QUY3OEQwMDU3QjgwMyAvKiBzdHJ0
b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhFNzk0Mjc3MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLzsgfTsK
KyAgICAgICAgICAgICAgOEU3OTQyOUUxRjZBRjc4RDAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5
X3B1YmxpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU3OTQyNzkxRjZBRTlBQjAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oICovOyB9
OworLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEZpbGVSZWZl
cmVuY2Ugc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcg
LyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlRm91bmRh
dGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3Vu
ZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CisgICAgICAgICAgICAg
IDhFNTMxNDJGMUY2RkVCQzgwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3
b3JrOyBuYW1lID0gRm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsK
KyAgICAgICAgICAgICAgOEU1MzE0MzExRjZGRUNBRTAwNzNCODk3IC8qIEFwcEtpdC5mcmFtZXdv
cmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFw
cGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9
OworICAgICAgICAgICAgICA4RTc5NDI2MjFGNkFFOUFCMDA1N0I4MDMgLyogQ01ha2VMaXN0cy50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ01ha2VMaXN0cy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjYzMUY2QUU5QUIwMDU3QjgwMyAvKiBJbmZvLnBsaXN0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7
IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAg
ICAgICA4RTc5NDI2NDFGNkFFOUFCMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBpdnJjbGllbnRjb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjY2MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9ICJqc29uLWZvcndhcmRzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworICAgICAgICAgICAgICA4RTc5NDI2NzFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBqc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjY4MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uY3BwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IGpzb25jcHAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAg
ICAgICA4RTc5NDI2OTFGNkFFOUFCMDA1N0I4MDMgLyogb3BlbnZyX2FwaV9wdWJsaWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gb3BlbnZyX2FwaV9wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2QTFGNkFFOUFCMDA1N0I4MDMgLyogUkVB
RE1FICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJFQURNRTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAg
ICAgOEU3OTQyNkMxRjZBRTlBQjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBkaXJ0b29sc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworICAgICAgICAgICAgICA4RTc5NDI2RDFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNf
cHVibGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGRpcnRvb2xzX3B1YmxpYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2RTFGNkFFOUFCMDA1N0I4MDMgLyog
ZW52dmFydG9vbHNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGVudnZhcnRvb2xzX3B1
YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0
MjZGMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gZW52dmFydG9vbHNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjcwMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGhtZGVycm9yc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3MTFGNkFFOUFCMDA1N0I4MDMgLyog
aG1kZXJyb3JzX3B1YmxpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBobWRlcnJvcnNfcHVibGljLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjcyMUY2QUU5QUIw
MDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gcGF0
aHRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjczMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhdGh0b29sc19wdWJsaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KyAgICAgICAgICAgICAgOEU3OTQyNzQxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xz
X3B1YmxpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3NTFGNkFF
OUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHNo
YXJlZGxpYnRvb2xzX3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI3NjFGNkFFOUFCMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IHN0cnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjc3MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0
b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc3RydG9vbHNfcHVibGljLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjc4MUY2QUU5QUIwMDU3Qjgw
MyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSB2cnBh
dGhyZWdpc3RyeV9wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI3OTFGNkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGlj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3QjFGNkFGMDVFMDA1N0I4MDMgLyog
b3BlbnZyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG9wZW52ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworICAgICAgICAgICAgICA4RTc5NDI3QzFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2Fw
aS5jcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBvcGVudnJfYXBpLmNzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI3RDFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5qc29uICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5qc29u
OyBwYXRoID0gb3BlbnZyX2FwaS5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI3RTFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gb3BlbnZyX2NhcGkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAg
ICAgICAgICAgICAgOEU3OTQyN0YxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gb3BlbnZyX2RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworICAgICAgICAgICAgICA4RTc5NDI4NDFGNkFGNjJFMDA1N0I4MDMgLyogbGlib3BlbnZyLmEg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUu
YXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYm9wZW52ci5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAq
LworCisvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisgICAgICAg
ICAgICAgIDhFNzk0MjgxMUY2QUY2MkUwMDU3QjgwMyAvKiBGcmFtZXdvcmtzICovID0geworICAg
ICAgICAgICAgICAgICAgICAgaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisgICAgICAg
ICAgICAgICAgICAgICBidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworICAgICAgICAgICAg
ICAgICAgICAgZmlsZXMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0MzIx
RjZGRUNBRTAwNzNCODk3IC8qIEFwcEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQyRTFGNkZERUIwMDA3M0I4OTcgLyogQ29y
ZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU1MzE0MzUxRjcyRDU4NDAwNzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAg
ICAgICAgICAgICAgcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAg
ICAgICAgICAgIH07CisvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwor
CisvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNTMxNDJDMUY2
RkRFQjAwMDczQjg5NyAvKiBGcmFtZXdvcmtzICovID0geworICAgICAgICAgICAgICAgICAgICAg
aXNhID0gUEJYR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQzMTFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0
LmZyYW1ld29yayAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQyRDFGNkZE
RUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNTMxNDJGMUY2RkVCQzgwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZy
YW1ld29yayAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAg
ICBuYW1lID0gRnJhbWV3b3JrczsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjVBMUY2QUU5
NjYwMDU3QjgwMyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAg
ICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOEU1MzE0MkMxRjZGREVCMDAwNzNCODk3IC8qIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyN0ExRjZBRjA1RTAwNTdCODAzIC8qIGhlYWRlcnMgKi8s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODUxRjZBRjYyRTAwNTdCODAzIC8q
IFByb2R1Y3RzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjYxMUY2QUU5
QUIwMDU3QjgwMyAvKiBzcmMgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAg
ICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKyAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgOEU3OTQyNjExRjZBRTlBQjAwNTdCODAzIC8qIHNyYyAqLyA9IHsKKyAgICAg
ICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgY2hp
bGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjUxRjZBRTlBQjAw
NTdCODAzIC8qIGpzb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNkEx
RjZBRTlBQjAwNTdCODAzIC8qIFJFQURNRSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI2QjFGNkFFOUFCMDA1N0I4MDMgLyogdnJjb21tb24gKi8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOEU3OTQyNjIxRjZBRTlBQjAwNTdCODAzIC8qIENNYWtlTGlzdHMudHh0
ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjYzMUY2QUU5QUIwMDU3Qjgw
MyAvKiBJbmZvLnBsaXN0ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjY0
MUY2QUU5QUIwMDU3QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU3OTQyNjgxRjZBRTlBQjAwNTdCODAzIC8qIGpzb25jcHAuY3BwICovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjY5MUY2QUU5QUIwMDU3QjgwMyAvKiBv
cGVudnJfYXBpX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAg
ICAgICAgICAgICAgICAgcGF0aCA9IHNyYzsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjY1
MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNh
ID0gUEJYR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4RTc5NDI2NjFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi1mb3J3
YXJkcy5oICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjY3MUY2QUU5QUIw
MDU3QjgwMyAvKiBqc29uLmggKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAg
ICAgICAgICAgICAgcGF0aCA9IGpzb247CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI2QjFG
NkFFOUFCMDA1N0I4MDMgLyogdnJjb21tb24gKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBp
c2EgPSBQQlhHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZDMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29s
c19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZEMUY2
QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4RTc5NDI2RTFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGlj
LmNwcCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2RjFGNkFFOUFCMDA1
N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOEU3OTQyNzAxRjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAv
KiBobWRlcnJvcnNfcHVibGljLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyNzIxRjZBRTlBQjAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjczMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9v
bHNfcHVibGljLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzQxRjZB
RTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyNzUxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRv
b2xzX3B1YmxpYy5oICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjc2MUY2
QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDhFNzk0Mjc3MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMu
aCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3ODFGNkFFOUFCMDA1N0I4
MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTc5NDI3OTFGNkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGlj
LmggKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0
aCA9IHZyY29tbW9uOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyN0ExRjZBRjA1RTAwNTdC
ODAzIC8qIGhlYWRlcnMgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91
cDsKKyAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDhFNzk0MjdCMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnIuaCAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3QzFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZy
X2FwaS5jcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3RDFGNkFGMDVF
MDA1N0I4MDMgLyogb3BlbnZyX2FwaS5qc29uICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjdFMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdGMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJf
ZHJpdmVyLmggKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAg
ICAgcGF0aCA9IGhlYWRlcnM7CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI4NTFGNkFGNjJF
MDA1N0I4MDMgLyogUHJvZHVjdHMgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQ
QlhHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0Mjg0MUY2QUY2MkUwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAq
LywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0g
UHJvZHVjdHM7CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
ICAgICAgICAgICAgICB9OworLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KKworLyogQmVnaW4g
UEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MjFG
NkFGNjJFMDA1N0I4MDMgLyogSGVhZGVycyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlz
YSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzID0gKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjk4MUY2QUY3OEQwMDU3QjgwMyAvKiBkaXJ0
b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDhFNzk0Mjk5MUY2QUY3OEQwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCBpbiBIZWFk
ZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjlBMUY2QUY3OEQwMDU3
QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4RTc5NDI5NTFGNkFGNzhEMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5o
IGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOTYxRjZB
Rjc4RDAwNTdCODAzIC8qIGpzb24tZm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0Mjk3MUY2QUY3OEQwMDU3QjgwMyAvKiBqc29uLmggaW4g
SGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MjFGNkFGNzFE
MDA1N0I4MDMgLyogb3BlbnZyLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTc5NDI5MzFGNkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCBpbiBIZWFk
ZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjk0MUY2QUY3MUQwMDU3
QjgwMyAvKiBvcGVudnJfZHJpdmVyLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4RTc5NDI5QjFGNkFGNzhEMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5o
IGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUMxRjZB
Rjc4RDAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUQxRjZBRjc4RDAwNTdCODAzIC8qIHN0
cnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOEU3OTQyOUUxRjZBRjc4RDAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGlu
IEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAg
ICAgcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAgICAgICAgICAg
IH07CisvKiBFbmQgUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQ
QlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MzFGNkFGNjJF
MDA1N0I4MDMgLyogb3BlbnZyICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJY
TmF0aXZlVGFyZ2V0OworICAgICAgICAgICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IDhFNzk0Mjg2MUY2QUY2MkUwMDU3QjgwMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAib3BlbnZyIiAqLzsKKyAgICAgICAgICAgICAgICAgICAgIGJ1
aWxkUGhhc2VzID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgwMUY2QUY2
MkUwMDU3QjgwMyAvKiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhF
Nzk0MjgxMUY2QUY2MkUwMDU3QjgwMyAvKiBGcmFtZXdvcmtzICovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDhFNzk0MjgyMUY2QUY2MkUwMDU3QjgwMyAvKiBIZWFkZXJzICovLAorICAg
ICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUnVsZXMgPSAo
CisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5j
aWVzID0gKAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5h
bWUgPSBvcGVudnI7CisgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0TmFtZSA9IG9wZW52cjsK
KyAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RSZWZlcmVuY2UgPSA4RTc5NDI4NDFGNkFGNjJF
MDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi87CisgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKKyAgICAgICAg
ICAgICAgfTsKKy8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQ
QlhQcm9qZWN0IHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU3OTQyNUIxRjZBRTk2NjAwNTdC
ODAzIC8qIFByb2plY3Qgb2JqZWN0ICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0g
UEJYUHJvamVjdDsKKyAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTGFzdFVwZ3JhZGVDaGVjayA9IDA4MzA7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVGFyZ2V0QXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyODMxRjZBRjYyRTAwNTdCODAzID0geworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0g
OC4zLjM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aXNp
b25pbmdTdHlsZSA9IEF1dG9tYXRpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA4RTc5
NDI1RTFGNkFFOTY2MDA1N0I4MDMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQ
cm9qZWN0ICJvcGVudnIiICovOworICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJpbGl0eVZl
cnNpb24gPSAiWGNvZGUgMy4yIjsKKyAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50UmVn
aW9uID0gRW5nbGlzaDsKKyAgICAgICAgICAgICAgICAgICAgIGhhc1NjYW5uZWRGb3JFbmNvZGlu
Z3MgPSAwOworICAgICAgICAgICAgICAgICAgICAga25vd25SZWdpb25zID0gKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuLAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIG1haW5Hcm91cCA9IDhFNzk0MjVBMUY2QUU5NjYwMDU3QjgwMzsKKyAgICAg
ICAgICAgICAgICAgICAgIHByb2R1Y3RSZWZHcm91cCA9IDhFNzk0Mjg1MUY2QUY2MkUwMDU3Qjgw
MyAvKiBQcm9kdWN0cyAqLzsKKyAgICAgICAgICAgICAgICAgICAgIHByb2plY3REaXJQYXRoID0g
IiI7CisgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0Um9vdCA9ICIiOworICAgICAgICAgICAg
ICAgICAgICAgdGFyZ2V0cyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4
MzFGNkFGNjJFMDA1N0I4MDMgLyogb3BlbnZyICovLAorICAgICAgICAgICAgICAgICAgICAgKTsK
KyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKworLyogQmVn
aW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4
MDFGNkFGNjJFMDA1N0I4MDMgLyogU291cmNlcyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAg
IGlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzID0gKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjg5MUY2QUY2RDMwMDU3QjgwMyAvKiBk
aXJ0b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOEU3OTQyOEExRjZBRjZEMzAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAg
aW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4QjFGNkFG
NkQzMDA1N0I4MDMgLyogaG1kZXJyb3JzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MDFGNkFGNkVFMDA1N0I4MDMgLyoganNvbmNw
cC5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5
MTFGNkFGNkVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaV9wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOEMxRjZBRjZEMzAwNTdCODAzIC8q
IHBhdGh0b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyOEQxRjZBRjZEMzAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4
RTFGNkFGNkQzMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjhGMUY2QUY2RDMwMDU3QjgwMyAvKiB2
cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAg
ICAgICApOworICAgICAgICAgICAgICAgICAgICAgcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICov
CisgICAgICAgICAgICAgIDhFNzk0MjVGMUY2QUU5NjYwMDU3QjgwMyAvKiBEZWJ1ZyAqLyA9IHsK
KyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworICAgICAg
ICAgICAgICAgICAgICAgYnVpbGRTZXR0aW5ncyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBIRUFERVJfU0VBUkNIX1BBVEhTID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gRGVidWc7CisgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgIDhFNzk0MjYwMUY2QUU5NjYwMDU3QjgwMyAvKiBSZWxlYXNlICovID0gewor
ICAgICAgICAgICAgICAgICAgICAgaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAgICAg
ICAgICAgICAgICAgICBidWlsZFNldHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgICA4RTc5NDI4NzFGNkFGNjJFMDA1N0I4MDMgLyogRGVidWcgKi8gPSB7Cisg
ICAgICAgICAgICAgICAgICAgICBpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKyAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkU2V0dGluZ3MgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ0xBTkdfQU5BTFlaRVJfTk9OTlVMTCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDTEFOR19BTkFMWVpFUl9OVU1CRVJfT0JKRUNUX0NPTlZFUlNJT04gPSBZRVNfQUdH
UkVTU0lWRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19DWFhfTEFOR1VBR0Vf
U1RBTkRBUkQgPSAiZ251KysweCI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdf
Q1hYX0xJQlJBUlkgPSAibGliYysrIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFO
R19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFO
R19FTkFCTEVfT0JKQ19BUkMgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFO
R19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NP
TU1FTlRTID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRU1Q
VFlfQk9EWSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0VO
VU1fQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19X
QVJOX0lORklOSVRFX1JFQ1VSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fU1VTUElDSU9VU19NT1ZFID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlF
UzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVU
SE9EX01BVENIID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPREVfU0lHTl9J
REVOVElUWSA9ICItIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT1BZX1BIQVNFX1NU
UklQID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdfSU5GT1JNQVRJT05f
Rk9STUFUID0gZHdhcmY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1NUUklD
VF9PQkpDX01TR1NFTkQgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxF
X1RFU1RBQklMSVRZID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUNVVEFC
TEVfUFJFRklYID0gbGliOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19DX0xBTkdV
QUdFX1NUQU5EQVJEID0gZ251OTk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX0RZ
TkFNSUNfTk9fUElDID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX05PX0NP
TU1PTl9CTE9DS1MgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX09QVElN
SVpBVElPTl9MRVZFTCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1BSRVBS
T0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlBPU0lYPTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT1NYPTEi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVlJfQVBJX1BVQkxJQz0xIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBMQVRGT1JNX05BTUU9b3N4IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1Ig
PSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5JTklUSUFMSVpF
RF9BVVRPUyA9IFlFU19BR0dSRVNTSVZFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
Q19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTI7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gWUVTOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIkKE9USEVSX0NGTEFHUykiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLWZleGNlcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9O
QU1FKSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0RLUk9PVCA9IG1hY29zeDsKKyAg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gRGVidWc7
CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0Mjg4MUY2QUY2MkUwMDU3Qjgw
MyAvKiBSZWxlYXNlICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gWENCdWlsZENv
bmZpZ3VyYXRpb247CisgICAgICAgICAgICAgICAgICAgICBidWlsZFNldHRpbmdzID0geworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQU5BTFlaRVJfTlVNQkVSX09CSkVD
VF9DT05WRVJTSU9OID0gWUVTX0FHR1JFU1NJVkU7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gTk87CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0g
WUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRElSRUNUX09CSkNf
SVNBX1VTQUdFID0gWUVTX0VSUk9SOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5H
X1dBUk5fRE9DVU1FTlRBVElPTl9DT01NRU5UUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDTEFOR19XQVJOX0VNUFRZX0JPRFkgPSBZRVM7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9JTkZJTklURV9SRUNVUlNJT04gPSBZRVM7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9
IFlFU19FUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX1NVU1BJ
Q0lPVVNfTU9WRSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJO
X1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xB
TkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ09QWV9QSEFTRV9TVFJJUCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05T
ID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUE9TSVg9MSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPU1g9MSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJWUl9BUElfUFVCTElDPTEiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiUExBVEZPUk1fTkFNRT1vc3giLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fNjRfVE9f
MzJfQklUX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ND
X1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JF
U1NJVkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5VU0VEX0ZVTkNU
SU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOVVNFRF9W
QVJJQUJMRSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVQgPSAxMC4xMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVExfRU5B
QkxFX0RFQlVHX0lORk8gPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUl9D
UExVU1BMVVNGTEFHUyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQo
T1RIRVJfQ0ZMQUdTKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItZmV4
Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTREtST09UID0gbWFjb3N4OworICAgICAgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAg
ICB9OworLyogRW5kIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKworLyogQmVnaW4g
WENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjVFMUY2
QUU5NjYwMDU3QjgwMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3Qg
Im9wZW52ciIgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBYQ0NvbmZpZ3VyYXRp
b25MaXN0OworICAgICAgICAgICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI1RjFGNkFFOTY2MDA1N0I4MDMgLyogRGVi
dWcgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjAxRjZBRTk2NjAwNTdC
ODAzIC8qIFJlbGVhc2UgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKyAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyODYxRjZBRjYyRTAwNTdCODAzIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJvcGVudnIiICovID0geworICAg
ICAgICAgICAgICAgICAgICAgaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKyAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOEU3OTQyODcxRjZBRjYyRTAwNTdCODAzIC8qIERlYnVnICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0Mjg4MUY2QUY2MkUwMDU3QjgwMyAvKiBSZWxlYXNlICovLAor
ICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb25m
aWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgWENDb25m
aWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCisgICAgICAgfTsKKyAgICAgICByb290T2JqZWN0ID0g
OEU3OTQyNUIxRjZBRTk2NjAwNTdCODAzIC8qIFByb2plY3Qgb2JqZWN0ICovOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ODk2M2MyMGVhNzMwZTlmNjhiNzllM2I5ZDZmYWE5MzgzNGQ1OTVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQu
cGF0Y2gKQEAgLTAsMCArMSw5NCBAQAorZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01h
a2VMaXN0cy50eHQKK2luZGV4IDk0ZGUzY2UuLjZkZWNlZGQgMTAwNjQ0CistLS0gYS9DTWFrZUxp
c3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xLDE0ICsxLDggQEAKKyAjIFNldCB0
aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uIG9mIENNYWtlIGZvciB0aGlzIHByb2plY3QuCisg
Y21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDIuOCkKKyAKKy0jIFNldCBwcm9qZWN0IG5h
bWUuCistcHJvamVjdChPcGVuVlJTREspCistCisgIyBTZXR1cCBzb21lIG9wdGlvbnMuCisgb3B0
aW9uKEJVSUxEX1NIQVJFRCAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBP
RkYpCistb3B0aW9uKEJVSUxEX0ZSQU1FV09SSyAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIGFuIGFw
cGxlIEZyYW1ld29yayIgT0ZGKQorLW9wdGlvbihCVUlMRF9VTklWRVJTQUwgIkJ1aWxkcyB0aGUg
c2hhcmVkIG9yIGZyYW1ld29yayBhcyBhIHVuaXZlcnNhbCAoZmF0LCAzMi0gJiA2NC1iaXQpIGJp
bmFyeSIgT04pCistb3B0aW9uKEJVSUxEX09TWF9JMzg2ICJCdWlsZHMgdGhlIHNoYXJlZCBvciBm
cmFtZXdvcmsgYXMgYSAzMi1iaXQgYmluYXJ5LCBldmVuIG9uIGEgNjQtYml0IHBsYXRmb3JtIiBP
RkYpCisgb3B0aW9uKFVTRV9MSUJDWFggIlVzZXMgbGliYysrIGluc3RlYWQgb2YgbGlic3RkYysr
IiBPTikKKyBvcHRpb24oVVNFX0NVU1RPTV9MSUJDWFggIlVzZXMgYSBjdXN0b20gbGliYysrIiBP
RkYpCisgCitAQCAtMzcsMjEgKzMxLDkgQEAgZWxzZWlmKEFQUExFKQorICAgaWYoQ01BS0VfU1lT
VEVNX05BTUUgTUFUQ0hFUyAiLipEYXJ3aW4uKiIgT1IgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hF
UyAiLipNYWNPUy4qIikKKyAgICAgc2V0KFBMQVRGT1JNX05BTUUgIm9zeCIpCisgICAgIGFkZF9k
ZWZpbml0aW9ucygtRE9TWCAtRFBPU0lYKQorLSAgICBpZihCVUlMRF9VTklWRVJTQUwpCistICAg
ICAgc2V0KENNQUtFX09TWF9BUkNISVRFQ1RVUkVTICJpMzg2O3g4Nl82NCIpCistICAgIGVuZGlm
KCkKKy0gICAgaWYoQlVJTERfT1NYX0kzODYpCistICAgICAgc2V0KFBST0NFU1NPUl9BUkNIICIz
MiIpCistICAgICAgc2V0KENNQUtFX09TWF9BUkNISVRFQ1RVUkVTICJpMzg2IikKKy0gICAgZW5k
aWYoKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKy0jIFNldCBvdXRwdXQgZm9sZGVyIGZvciBz
dGF0aWMgYW5kIHNoYXJlZCBsaWJyYXJpZXMKKy1zZXQoQ01BS0VfTElCUkFSWV9PVVRQVVRfRElS
RUNUT1JZICR7Q01BS0VfU09VUkNFX0RJUn0vYmluLyR7UExBVEZPUk1fTkFNRX0ke1BST0NFU1NP
Ul9BUkNIfSkKKy1zZXQoQ01BS0VfQVJDSElWRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfU09V
UkNFX0RJUn0vYmluLyR7UExBVEZPUk1fTkFNRX0ke1BST0NFU1NPUl9BUkNIfSkKKy1zZXQoQ01B
S0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfU09VUkNFX0RJUn0vYmluLyR7UExB
VEZPUk1fTkFNRX0ke1BST0NFU1NPUl9BUkNIfSkKKy0KKyAjIEVuYWJsZSBzb21lIHByb3BlcnRp
ZXMuCisgaWYoQ01BS0VfQ09NUElMRVJfSVNfR05VQ0MgT1IgQ01BS0VfQ19DT01QSUxFUl9JRCBN
QVRDSEVTICJDbGFuZyIpCisgICAgICAgICMgRW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMg
d2hpY2ggc2hvdWxkbid0IGJlIHZpc2libGUKK2RpZmYgLS1naXQgYS9zcmMvQ01ha2VMaXN0cy50
eHQgYi9zcmMvQ01ha2VMaXN0cy50eHQKK2luZGV4IDU4OTU0ZDYuLjhiNTM3YWYgMTAwNjQ0Cist
LS0gYS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBiL3NyYy9DTWFrZUxpc3RzLnR4dAorQEAgLTMs
NiArMyw5IEBAIHByb2plY3Qob3BlbnZyX2FwaSkKKyAKKyBzZXQoIExJQk5BTUUgIm9wZW52cl9h
cGkiICkKKyAKKytzZXQoRVhDRVBUSU9OX0ZMQUdTICItZmV4Y2VwdGlvbnMiKQorK2FkZF9kZWZp
bml0aW9ucygke0VYQ0VQVElPTl9GTEFHU30pCisrCisgIyBTZXQgc29tZSBwcm9wZXJpZXMgZm9y
IHNwZWNpZmljIGZpbGVzLgorIGlmKEFQUExFKQorICAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAx
KQorQEAgLTIyLDcgKzI1LDcgQEAgZWxzZWlmKFdJTjMyKQorIGVuZGlmKCkKKyAKKyAjIEFkZCBp
bmNsdWRlIGZvbGRlcnMuCistaW5jbHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX1NPVVJDRV9ESVJ9
L3NyYyAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMv
dnJjb21tb24pCisraW5jbHVkZV9kaXJlY3Rvcmllcygke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4v
c3JjICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzICR7UFJPSkVDVF9TT1VSQ0VfRElS
fS8uLi9zcmMvdnJjb21tb24pCisgCisgaWYoVVNFX0NVU1RPTV9MSUJDWFgpCisgICAgICAgIGxp
bmtfZGlyZWN0b3JpZXMoCitAQCAtNjUsMjIgKzY4LDIyIEBAIGVsc2VpZihCVUlMRF9GUkFNRVdP
UkspCisgICAgICAgIHNldCggTElCTkFNRSAiT3BlblZSIiApCisgICAgICAgIGFkZF9saWJyYXJ5
KCAke0xJQk5BTUV9IAorICAgICAgICAgICAgIFNIQVJFRCAke1NPVVJDRV9GSUxFU30KKy0gICAg
ICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmgKKy0gICAgICAgICAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5jcworLSAgICAgICAgICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKy0gICAgICAgICAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGkuaAorLSAgICAgICAgICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKysgICAgICAgICAg
ICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnIuaAorKyAgICAgICAgICAg
ICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuY3MKKysgICAgICAg
ICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKysg
ICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5o
CisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2Ry
aXZlci5oCisgICAgICAgICkKKyAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQ
Uk9QRVJUSUVTCisgICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQorICAgICAgICAgICAgICAg
RlJBTUVXT1JLX1ZFUlNJT04gQQorICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVO
VElGSUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKKy0gICAgICAgICAgICAg
IE1BQ09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9JbmZv
LnBsaXN0CisrICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtQUk9K
RUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy9JbmZvLnBsaXN0CisgICAgICAgICAgICAgICAjICJjdXJy
ZW50IHZlcnNpb24iIGluIHNlbWFudGljIGZvcm1hdCBpbiBNYWNoLU8gYmluYXJ5IGZpbGUKKyAg
ICAgICAgICAgICAgIFZFUlNJT04gMS4wLjYKKyAgICAgICAgICAgICAgICMgImNvbXBhdGliaWxp
dHkgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQorICAg
ICAgICAgICAgICAgU09WRVJTSU9OIDEuMC4wCistICAgICAgICAgICAgICBQVUJMSUNfSEVBREVS
ICIke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmg7JHtDTUFLRV9TT1VSQ0VfRElS
fS9oZWFkZXJzL29wZW52cl9hcGkuY3M7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52
cl9hcGkuanNvbjske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGkuaDske0NN
QUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIgorKyAgICAgICAgICAgICAg
UFVCTElDX0hFQURFUiAiJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmg7
JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jczske1BST0pFQ1Rf
U09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtQUk9KRUNUX1NPVVJDRV9E
SVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2NhcGkuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVh
ZGVycy9vcGVudnJfZHJpdmVyLmgiCisgICAgICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hY
CisgICAgICAgICkKKyBlbHNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtl
TGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MGU2ODk4ZjllM2JmYWQzNmQ3OGU5M2Y4NmMwMzU5YTA0
NjAzZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NN
YWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsOTkgQEAKKyMgUHJvamVjdCBuYW1lLgorcHJvamVjdChv
cGVudnJfYXBpKQorCitzZXQoIExJQk5BTUUgIm9wZW52cl9hcGkiICkKKworc2V0KEVYQ0VQVElP
Tl9GTEFHUyAiLWZleGNlcHRpb25zIikKK2FkZF9kZWZpbml0aW9ucygke0VYQ0VQVElPTl9GTEFH
U30pCisKKyMgU2V0IHNvbWUgcHJvcGVyaWVzIGZvciBzcGVjaWZpYyBmaWxlcy4KK2lmKEFQUExF
KQorICBzZXQoQ01BS0VfTUFDT1NYX1JQQVRIIDEpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1B
VENIRVMgIkRhcndpbiIpCisgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKHZyY29tbW9u
L3BhdGh0b29sc19wdWJsaWMuY3BwIHZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAg
UFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIteCBvYmplY3RpdmUtYysrIikKKyAgZW5kaWYoKQor
ICBpZihCVUlMRF9TSEFSRUQgT1IgQlVJTERfRlJBTUVXT1JLKQorICAgIGZpbmRfbGlicmFyeShG
T1VOREFUSU9OX0ZSQU1FV09SSyBGb3VuZGF0aW9uKQorICAgIG1hcmtfYXNfYWR2YW5jZWQoRk9V
TkRBVElPTl9GUkFNRVdPUkspCisgICAgc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJTfSAke0ZP
VU5EQVRJT05fRlJBTUVXT1JLfSkKKyAgZW5kaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1F
V09SSykKK2Vsc2VpZihXSU4zMikKKyAgaWYoQ01BS0VfU0laRU9GX1ZPSURfUCBFUVVBTCA4KQor
ICAgIGFkZF9kZWZpbml0aW9ucyggLURXSU42NCApCisgICAgc2V0KCBMSUJOQU1FICJvcGVudnJf
YXBpNjQiICkKKyAgZW5kaWYoKQorZW5kaWYoKQorCisjIEFkZCBpbmNsdWRlIGZvbGRlcnMuCitp
bmNsdWRlX2RpcmVjdG9yaWVzKCR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMgJHtQUk9KRUNU
X1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy92cmNv
bW1vbikKKworaWYoVVNFX0NVU1RPTV9MSUJDWFgpCisgICAgICAgbGlua19kaXJlY3RvcmllcygK
KyAgICAgICAgICAgICAgJHtMSUJDWFhfTElCX0RJUn0KKyAgICAgICApCitlbmRpZigpCisKKyMg
U2V0IHRoZSBzb3VyY2UgZ3JvdXAgYW5kIGZpbGVzLgorc2V0KENPUkVfRklMRVMKKyAgICAgICBv
cGVudnJfYXBpX3B1YmxpYy5jcHAKKyAgICAgICBqc29uY3BwLmNwcAorKQorc2V0KFZSQ09NTU9O
X0ZJTEVTCisgICAgICAgdnJjb21tb24vZGlydG9vbHNfcHVibGljLmNwcAorICAgICAgIHZyY29t
bW9uL2VudnZhcnRvb2xzX3B1YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9wYXRodG9vbHNfcHVi
bGljLmNwcAorICAgICAgIHZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAKKyAgICAg
ICB2cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL3ZycGF0aHJl
Z2lzdHJ5X3B1YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuY3BwCisp
CisKK3NldChTT1VSQ0VfRklMRVMKKyAgICAgICAke0NPUkVfRklMRVN9CisgICAgICAgJHtWUkNP
TU1PTl9GSUxFU30KKykKKworc291cmNlX2dyb3VwKCJTcmMiIEZJTEVTCisgICAgICAgJHtDT1JF
X0ZJTEVTfQorKQorCitzb3VyY2VfZ3JvdXAoIlZSQ29tbW9uIiBGSUxFUworICAgICAgICR7VlJD
T01NT05fRklMRVN9CispCisKKyMgQnVpbGQgdGhlIGxpYnJhcnkuCitpZihCVUlMRF9TSEFSRUQp
CisgICAgICAgYWRkX2xpYnJhcnkoJHtMSUJOQU1FfSBTSEFSRUQgJHtTT1VSQ0VfRklMRVN9KQor
ZWxzZWlmKEJVSUxEX0ZSQU1FV09SSykKKyAgICAgICBzZXQoIExJQk5BTUUgIk9wZW5WUiIgKQor
ICAgICAgIGFkZF9saWJyYXJ5KCAke0xJQk5BTUV9IAorICAgICAgICAgICAgU0hBUkVEICR7U09V
UkNFX0ZJTEVTfQorICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMv
b3BlbnZyLmgKKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29w
ZW52cl9hcGkuY3MKKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJz
L29wZW52cl9hcGkuanNvbgorICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hl
YWRlcnMvb3BlbnZyX2NhcGkuaAorICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4u
L2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oCisgICAgICAgKQorICAgICAgIHNldF90YXJnZXRfcHJv
cGVydGllcyhPcGVuVlIgUFJPUEVSVElFUworICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQor
ICAgICAgICAgICAgICBGUkFNRVdPUktfVkVSU0lPTiBBCisgICAgICAgICAgICAgIE1BQ09TWF9G
UkFNRVdPUktfSURFTlRJRklFUiBjb20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrCisg
ICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke1BST0pFQ1RfU09VUkNF
X0RJUn0vLi4vc3JjL0luZm8ucGxpc3QKKyAgICAgICAgICAgICAgIyAiY3VycmVudCB2ZXJzaW9u
IiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAg
IFZFUlNJT04gMS4wLjYKKyAgICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJzaW9uIiBp
biBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgIFNP
VkVSU0lPTiAxLjAuMAorICAgICAgICAgICAgICBQVUJMSUNfSEVBREVSICIke1BST0pFQ1RfU09V
UkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnIuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVh
ZGVycy9vcGVudnJfYXBpLmNzOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52
cl9hcGkuanNvbjske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5o
OyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCIKKyAgICAg
ICAgICAgICAgTElOS0VSX0xBTkdVQUdFIENYWAorICAgICAgICkKK2Vsc2UoKQorICAgICAgIGFk
ZF9saWJyYXJ5KCR7TElCTkFNRX0gU1RBVElDICR7U09VUkNFX0ZJTEVTfSkKK2VuZGlmKCkKKwor
aWYoVVNFX0NVU1RPTV9MSUJDWFgpCisgICAgICAgc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJT
fSBjKysgYysrYWJpKQorZW5kaWYoKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoJHtMSUJOQU1F
fSAke0VYVFJBX0xJQlN9KQorCitpbnN0YWxsKFRBUkdFVFMgJHtMSUJOQU1FfSBERVNUSU5BVElP
TiBsaWIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0luZm8ucGxp
c3QgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0luZm8ucGxpc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTVlNTY5ODA4N2YwOTM5MTQ1OGJiMTk3YWQ4ZDgxN2VlZGViODI2OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApAQCAtMCwwICsxLDE4
IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBs
aXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBs
ZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4K
KzxkaWN0PgorICAgICAgIDxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisgICAgICAgPHN0
cmluZz5jb20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrPC9zdHJpbmc+CisgICAgICAg
PGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgorICAgICAgIDxzdHJpbmc+
Ni4wPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKyAgICAgICA8c3Ry
aW5nPk9wZW5WUjwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5
PgorICAgICAgIDxzdHJpbmc+Rk1XSzwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVTaG9y
dFZlcnNpb25TdHJpbmc8L2tleT4KKyAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgorICAgICAg
IDxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisgICAgICAgPHN0cmluZz4xLjA8L3N0cmluZz4K
KzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL1JFQURNRSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgyNmM1OGRhNzlmYjk0ZTAyZGNmZWNkMjZhNWU1NTJkOWFhNThhYzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL1JFQURNRQpAQCAtMCwwICsxLDM5
IEBACitUaGlzIGlzIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIE9wZW5WUiBBUEkgY2xpZW50IGJp
bmRpbmcgbGlicmFyeSB3aGljaCBjb25uZWN0cworT3BlblZSIGFwcGxpY2F0aW9ucyB0byB0aGUg
U3RlYW1WUiBydW50aW1lLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSB2ZXJzaW9uCitvZiB0aGUg
T3BlblZSIGludGVyZmFjZSB0aGV5IHdlcmUgY29tcGlsZWQgYWdhaW5zdC4KKworVGhlIGNsaWVu
dCBiaW5kaW5nIGxpYnJhcnkgLSBvcGVudnJfYXBpLmRsbCBvbiBXaW5kb3dzLCBvcGVudnJfYXBp
LnNvIG9uCitMaW51eCwgYW5kIG9wZW52cl9hcGkuZHlsaWIgb3IgT3BlblZSLmZyYW1ld29yayBv
biBtYWNPUyAtIGtub3dzIGhvdyB0byBmaW5kCithbmQgcmVhZCB0aGUgU3RlYW1WUiBydW50aW1l
IGluc3RhbGxhdGlvbiBpbmZvcm1hdGlvbiB3aGljaCBhbGxvd3MgaXQgdG8KK2ZpbmQgYW5kIGR5
bmFtaWNhbGx5IGNvbm5lY3QgdG8gdGhlIGluc3RhbGxlZCBydW50aW1lLiBJbiBjb21iaW5hdGlv
biB3aXRoIHRoZQoraW50ZXJmYWNlIHZlcnNpb24gaWRlbnRpZmllcnMgZnJvbSAvaW5jbHVkZS9v
cGVudnIuaCB3aGljaCBhcmUgYmFrZWQKK2ludG8gYXBwbGljYXRpb25zIGF0IHRoZSB0aW1lIHRo
ZXkgYXJlIGJ1aWx0LCB0aGUgT3BlblZSIEFQSSBjbGllbnQKK2JpbmRpbmcgbGlicmFyeSBjYXB0
dXJlcyBhbmQgY29udmV5cyB0byB0aGUgU3RlYW1WUiBydW50aW1lIHRoZSB2ZXJzaW9uCitvZiB0
aGUgT3BlblZSIEFQSSBpbnRlcmZhY2UgYmVoYXZpb3IgdGhhdCB0aGUgYXBwbGljYXRpb24gZXhw
ZWN0cy4KKworQXBwbGljYXRpb25zIGNhcnJ5IHdpdGggdGhlbSBhIHByaXZhdGUvbG9jYWwgY29w
eSBvZiB0aGUgY2xpZW50IGJpbmRpbmcKK2xpYnJhcnkgd2hlbiB0aGV5IHNoaXAsIGFuZCB0aGV5
IHNob3VsZCBpbnN0YWxsIGl0IGxvY2FsbHkgdG8gdGhlaXIKK2FwcGxpY2F0aW9uLiAgQXBwbGlj
YXRpb25zIHNob3VsZCBub3QgaW5zdGFsbCB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQorZ2xv
YmFsbHkgb3IgYXR0ZW1wdCB0byBsaW5rIHRvIGEgZ2xvYmFsbHkgaW5zdGFsbGVkIGNsaWVudCBi
aW5kaW5nIGxpYnJhcnkuCitEb2luZyBzbyBuZWdhdGVzIGF0IGxlYXN0IHBhcnQgb2YgdGhlIGFi
aWxpdHkgZm9yIHRoZSBjbGllbnQgYmluZGluZyBsaWJyYXJ5Cit0byBhY2N1cmF0ZWx5IHJlZmxl
Y3QgdGhlIHZlcnNpb24gb2YgdGhlIE9wZW5WUiBBUEkgdGhhdCB0aGUgYXBwbGljYXRpb24KK3dh
cyBidWlsdCBhZ2FpbnN0LCBhbmQgc28gaGluZGVycyBjb21wYXRpYmlsaXR5IHN1cHBvcnQgaW4g
dGhlIGZhY2Ugb2YKK0FQSSBjaGFuZ2VzLgorCitNb3N0IGFwcGxpY2F0aW9ucyBzaG91bGQgc2lt
cGx5IGxpbmsgdG8gYW5kIHJlZGlzdHJpYnV0ZSB3aXRoIHRoZWlyIGFwcGxpY2F0aW9uCit0aGUg
cHJlLWJ1aWx0IGNsaWVudCBiaW5kaW5nIGxpYnJhcnkgZm91bmQgaW4gdGhlIC9iaW4gZGlyZWN0
b3J5IG9mIHRoaXMKK3JlcG9zaXRvcnkuIFNvbWUgc21hbGwgbnVtYmVyIG9mIGFwcGxpY2F0aW9u
cyB3aGljaCBoYXZlIHNwZWNpZmljIHJlcXVpcmVtZW50cworYXJvdW5kIHJlZGlzdHJpYnV0aW5n
IG9ubHkgYmluYXJpZXMgdGhleSBidWlsZCB0aGVtc2VsdmVzIHNob3VsZCBidWlsZAordGhlIGNs
aWVudCBsaWJyYXJ5IGZyb20gdGhpcyBzb3VyY2UgYW5kIGVpdGhlciBzdGF0aWNhbGx5IGxpbmsg
aXQgaW50bwordGhlaXIgYXBwbGljYXRpb24gb3IgcmVkaXN0cmlidXRlIHRoZSBiaW5hcnkgdGhl
eSBidWlsZC4KKworVGhpcyBpcyBhIGNtYWtlIHByb2plY3QsIHRvIGJ1aWxkIGl0IHVzZSB0aGUg
dmVyc2lvbiBvZiBjbWFrZSBhcHByb3ByaWF0ZQorZm9yIHlvdXIgcGxhdGZvcm0uIEZvciBleGFt
cGxlLCB0byBidWlsZCBvbiBhIFBPU0lYIHN5c3RlbSBzaW1wbHkgcGVyZm9ybQorCisgIGNkIHNy
YzsgbWtkaXIgX2J1aWxkOyBjZCBfYnVpbGQ7IGNtYWtlIC4uOyBtYWtlCisKK2FuZCB5b3Ugd2ls
bCBlbmQgdXAgd2l0aCB0aGUgc3RhdGljIGxpYnJhcnkgL3NyYy9iaW4vPGFyY2g+L2xpYm9wZW52
cl9hcGkuYQorCitUbyBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5LCBwYXNzIC1EQlVJTERfU0hBUkVE
PTEgdG8gY21ha2UuCitUbyBidWlsZCBhcyBhIGZyYW1ld29yayBvbiBhcHBsZSBwbGF0Zm9ybXMs
IHBhc3MgLURCVUlMRF9GUkFNRVdPUks9MSB0byBjbWFrZS4KK1RvIHNlZSBhIGNvbXBsZXRlIGxp
c3Qgb2YgY29uZmlndXJhYmxlIGJ1aWxkIG9wdGlvbnMsIHVzZSBgY21ha2UgLUxBSGAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFm
ZTM2MGVlNGFkNTJjODc5OTBjMjUxNzQ2ZjAxY2I4OWJiZjAwNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCkBAIC0wLDAgKzEs
MzUgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09
PT0vLworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJDbGllbnRD
b3JlCit7CitwdWJsaWM6CisgICAgICAgLyoqIEluaXRpYWxpemVzIHRoZSBzeXN0ZW0gKi8KKyAg
ICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBJbml0KCB2cjo6RVZSQXBwbGljYXRpb25UeXBlIGVB
cHBsaWNhdGlvblR5cGUsIGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApID0gMDsKKworICAgICAg
IC8qKiBjbGVhbnMgdXAgZXZlcnl0aGluZyBpbiB2cmNsaWVudC5kbGwgYW5kIHByZXBhcmVzIHRo
ZSBETEwgdG8gYmUgdW5sb2FkZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ2xlYW51cCgpID0g
MDsKKworICAgICAgIC8qKiBjaGVja3MgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgaW50ZXJmYWNl
L3ZlcnNpb24gaXMgc3VwcG9ydGVkIGluIHRoaXMgdnJjbGllbnQuZGxsICovCisgICAgICAgdmly
dHVhbCBFVlJJbml0RXJyb3IgSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoIGNvbnN0IGNoYXIgKnBj
aEludGVyZmFjZVZlcnNpb24gKSA9IDA7CisKKyAgICAgICAvKiogUmV0cmlldmVzIGFueSBpbnRl
cmZhY2UgZnJvbSB2cmNsaWVudC5kbGwgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgKkdldEdlbmVy
aWNJbnRlcmZhY2UoIGNvbnN0IGNoYXIgKnBjaE5hbWVBbmRWZXJzaW9uLCBFVlJJbml0RXJyb3Ig
KnBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIGFueSBkcml2ZXIg
aGFzIGFuIEhNRCBhdHRhY2hlZC4gQ2FuIGJlIGNhbGxlZCBvdXRzaWRlIG9mIEluaXQvQ2xlYW51
cCAqLworICAgICAgIHZpcnR1YWwgYm9vbCBCSXNIbWRQcmVzZW50KCkgPSAwOworCisgICAgICAg
LyoqIFJldHVybnMgYW4gRW5nbGlzaCBlcnJvciBzdHJpbmcgZnJvbSBpbnNpZGUgdnJjbGllbnQu
ZGxsIHdoaWNoIG1pZ2h0IGJlIG5ld2VyIHRoYW4gdGhlIEFQSSBETEwgKi8KKyAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRF
cnJvciBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhbiBlcnJvciBzeW1ib2wg
ZnJvbSBpbnNpZGUgdnJjbGllbnQuZGxsIHdoaWNoIG1pZ2h0IGJlIG5ld2VyIHRoYW4gdGhlIEFQ
SSBETEwgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldElERm9yVlJJbml0RXJyb3Io
IHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBJVlJDbGllbnRDb3JlX1ZlcnNpb24gPSAiSVZSQ2xpZW50Q29yZV8wMDMiOworCisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZv
cndhcmRzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJk
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkxMGM3ZGU5NzY0YjQyMTgyYjAxN2Y3MGVlMDA5MzFiZjZlNDkwNDgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNv
bi1mb3J3YXJkcy5oCkBAIC0wLDAgKzEsMjg0IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGZv
cndhcmQgaGVhZGVyIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBp
cyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi1mb3J3YXJkcy5o
IgorLy8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9yIGFsbCBK
c29uQ3BwIHR5cGVzLgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVu
dCBvZiBmaWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8qCitUaGUgSnNvbkNwcCBs
aWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlv
biwgCit0ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNlZCB1
bmRlciB0aGUgZm9sbG93aW5nCitjb25kaXRpb25zLi4uCisKK1RoZSBhdXRob3IgKEJhcHRpc3Rl
IExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK2p1cmlz
ZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1cmlz
ZGljdGlvbnMsIAordGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMgRG9t
YWluLgorCitJbiBqdXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGljIERv
bWFpbiBwcm9wZXJ0eSAoZS5nLiBHZXJtYW55IGFzIG9mCisyMDEwKSwgdGhpcyBzb2Z0d2FyZSBp
cyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBpcwor
cmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4K
KworSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0
eSwgdGhlIHVzZXIgb2YgdGhpcyAKK3NvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVp
dGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUgCitjb25kaXRpb25zIG9mIHRo
ZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9mIGR1YWwg
CitQdWJsaWMgRG9tYWluL01JVCBMaWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhlcmUsIGFz
IHRoZXkgY2hvb3NlLgorCitUaGUgTUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2UgdG8gUHVi
bGljIERvbWFpbiBhcyBhIGxpY2Vuc2UgY2FuIGdldCwgYW5kIGlzCitkZXNjcmliZWQgaW4gY2xl
YXIsIGNvbmNpc2UgdGVybXMgYXQ6CisKKyAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
TUlUX0xpY2Vuc2UKKyAgIAorVGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9sbG93
czoKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24KK29idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uCitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGlu
IHRoZSBTb2Z0d2FyZSB3aXRob3V0CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKK21vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworb2YgdGhlIFNvZnR3
YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1Ro
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCitCRSBMSUFCTEUgRk9S
IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KK0FD
VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9G
IE9SIElOCitDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKEVORCBMSUNFTlNF
IFRFWFQpCisKK1RoZSBNSVQgbGljZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0aGUgR1BM
IGFuZCBjb21tZXJjaWFsCitzb2Z0d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhlIHJpZ2h0
cyBvZiBQdWJsaWMgRG9tYWluIHdpdGggdGhlCittaW5vciBudWlzYW5jZSBvZiBiZWluZyByZXF1
aXJlZCB0byBrZWVwIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlCithbmQgbGljZW5zZSB0ZXh0
IGluIHRoZSBzb3VyY2UgY29kZS4gTm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRoZQorUHVi
bGljIERvbWFpbiAibGljZW5zZSIgeW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1c2luZyB3
aGF0ZXZlcgorbGljZW5zZSB5b3UgbGlrZS4KKworKi8KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
RW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKwor
CisKKyNpZm5kZWYgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECisjIGRlZmluZSBK
U09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0
ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVudCBwcml2
YXRlIGhlYWRlciBpbmNsdXNpb24uCisjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi9jb25maWcuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEw
IEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9y
IHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJp
c2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fQ09ORklH
X0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLy8gSWYgZGVm
aW5lZCwgaW5kaWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxp
YnJhcnkuCisvLyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQorCisvLy8gSWYgZGVmaW5lZCwgaW5k
aWNhdGVzIHRoYXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQorLy8jICBkZWZpbmUg
SlNPTl9VU0VfQ1BQVEwgMQorLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZl
Y3RvciBiYXNlZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgorLy8vIHN0ZDo6bWFwCisv
Ly8gYXMgVmFsdWUgY29udGFpbmVyLgorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExN
QVAgMQorCisvLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJl
cG9ydCBiYWQgaW5wdXQgaW5zdGVhZCBvZiBDCisvLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVm
YXVsdCBpcyB0byB1c2UgZXhjZXB0aW9ucy4KKyNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCisj
ZGVmaW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCisjZW5kaWYKKworLy8vIElmIGRlZmluZWQsIGlu
ZGljYXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50
IHByaXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNh
bGx5IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgorLy8gI2RlZmlu
ZSBKU09OX0lTX0FNQUxHQU1BVElPTgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2luY2x1ZGUg
PGNwcHRsL2NvbmZpZy5oPgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTAorI2RlZmluZSBKU09OX1VT
RV9DUFBUTCAxCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2RlZmlu
ZSBKU09OX0FQSSBDUFBUTF9BUEkKKyNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCisjaWYg
ZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQp
CisjZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAv
LyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKKyNpZiBkZWZp
bmVkKF9NU0NfVkVSKQorI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNk
ZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlm
IGRlZmluZWQoX01TQ19WRVIpCisjZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAorI2lmICFk
ZWZpbmVkKEpTT05fQVBJKQorI2RlZmluZSBKU09OX0FQSQorI2VuZGlmCisKKy8vIElmIEpTT05f
Tk9fSU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlw
ZSBmb3IKKy8vIGludGVnZXIKKy8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBv
cnQgaXMgZGlzYWJsZWQuCisvLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQorCisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikgLy8gTVNWQworIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKKyAg
ICAvLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZy
b20gX19pbnQ2NCB0byBkb3VibGUKKyAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVk
IF9faW50NjQpLgorIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04g
MQorICAgIC8vIERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRl
bnRpZmllciB3YXMgdHJ1bmNhdGVkIHRvICcyNTUnCisgICAgLy8gY2hhcmFjdGVycyBpbiB0aGUg
ZGVidWcgaW5mb3JtYXRpb24pCisgICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdp
dGggVlM2IHdlcmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZworICAgIC8vIHdp
dGggcHJhZ21hIHB1c2gvcG9wKS4KKyMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYp
CisjICBlbmRpZiAvLyBNU1ZDIDYKKworIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIw
MDgKKyAgICAvLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXBy
ZWNhdGVkLgorIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNw
ZWMoZGVwcmVjYXRlZChtZXNzYWdlKSkKKyMgIGVuZGlmCisKKyNlbmRpZiAvLyBkZWZpbmVkKF9N
U0NfVkVSKQorCisKKyNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmIGRl
ZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCisjZGVm
aW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAvLyBNU1ZDID49IDIwMTAK
KworI2lmZGVmIF9fY2xhbmdfXworI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVu
Y2VzKQorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIGhh
c19mZWF0dXJlCisKKyNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29t
ZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQorI2lmIGRlZmluZWQoX19HWFhfRVhQ
RVJJTUVOVEFMX0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQorI2RlZmluZSBK
U09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwK
KworI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXworCisjZW5kaWYgLy8gbm90IGRlZmlu
ZWQgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVf
UkVGRVJFTkNFUworI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCisjZW5kaWYK
KworI2lmZGVmIF9fY2xhbmdfXworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcg
KGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjICBpZiAoX19HTlVD
X18gPiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQorIyAgICBk
ZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVj
YXRlZChtZXNzYWdlKSkpCisjICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMg
JiYgX19HTlVDX01JTk9SX18gPj0gMSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQo
bWVzc2FnZSkgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKKyMgIGVuZGlmICAvLyBH
TlVDIHZlcnNpb24KKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2lmICFkZWZp
bmVkKEpTT05DUFBfREVQUkVDQVRFRCkKKyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3Nh
Z2UpCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorCituYW1lc3Bh
Y2UgSnNvbiB7Cit0eXBlZGVmIGludCBJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBVSW50Owor
I2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK3R5cGVkZWYgaW50IExhcmdlc3RJbnQ7Cit0eXBl
ZGVmIHVuc2lnbmVkIGludCBMYXJnZXN0VUludDsKKyN1bmRlZiBKU09OX0hBU19JTlQ2NAorI2Vs
c2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKy8vIEZvciBN
aWNyb3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1
cHBvcnRlZAorI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlv
Cit0eXBlZGVmIF9faW50NjQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0
OworI2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVy
IHBsYXRmb3JtcywgdXNlIGxvbmcgbG9uZwordHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0Owor
dHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKKyNlbmRpZiAvLyBpZiBkZWZp
bmVkKF9NU0NfVkVSKQordHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwordHlwZWRlZiBVSW50NjQg
TGFyZ2VzdFVJbnQ7CisjZGVmaW5lIEpTT05fSEFTX0lOVDY0CisjZW5kaWYgLy8gaWYgZGVmaW5l
ZChKU09OX05PX0lOVDY0KQorfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpT
T05fQ09ORklHX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRl
bnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKwor
CisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxl
OiBpbmNsdWRlL2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmln
aHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQg
aW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3Ig
Y29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVm
IEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVE
RUQKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1l
c3BhY2UgSnNvbiB7CisKKy8vIHdyaXRlci5oCitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5
bGVkV3JpdGVyOworCisvLyByZWFkZXIuaAorY2xhc3MgUmVhZGVyOworCisvLyBmZWF0dXJlcy5o
CitjbGFzcyBGZWF0dXJlczsKKworLy8gdmFsdWUuaAordHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJy
YXlJbmRleDsKK2NsYXNzIFN0YXRpY1N0cmluZzsKK2NsYXNzIFBhdGg7CitjbGFzcyBQYXRoQXJn
dW1lbnQ7CitjbGFzcyBWYWx1ZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworY2xhc3MgVmFs
dWVJdGVyYXRvcjsKK2NsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKKworfSAvLyBuYW1lc3BhY2Ug
SnNvbgorCisjZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5o
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworI2VuZGlmIC8vaWZuZGVmIEpTT05fRk9SV0FS
RF9BTUFMR0FURURfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uL2pzb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9q
c29uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDI3ZjY1ZDlkZmE4NTM2YzM1ZmY0N2RlMDg0ZmVjZTc4OThhYjFl
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9q
c29uLmgKQEAgLTAsMCArMSwyMDc3IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGhlYWRlciAo
aHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8g
YmUgdXNlZCB3aXRoICNpbmNsdWRlICJqc29uL2pzb24uaCIKKworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
Ly8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCisvKgorVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNj
b21wYW55aW5nIGRvY3VtZW50YXRpb24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGlj
YXRpb25zLCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgor
CitUaGUgYXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNv
cHlyaWdodCBpbiBhbGwgCitqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlz
Y2xhaW1lci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFz
ZWQgaW50byB0aGUgUHVibGljIERvbWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBu
b3QgcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgor
MjAxMCksIHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlz
dGUgTGVwaWxsZXVyLCBhbmQgaXMKK3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlU
IExpY2Vuc2UgKHNlZSBiZWxvdykuCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXpl
IFB1YmxpYyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkg
Y2hvb3NlIHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIg
dGhlIAorY29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVu
ZGVyIHRoZSB0ZXJtcyBvZiBkdWFsIAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRp
b25zIGRlc2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlz
IGFib3V0IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFu
ZCBpcworZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2Yg
dGhlIE1JVCBMaWNlbnNlIGZvbGxvd3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChj
KSAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAi
U29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24s
IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCitt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMKK29mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9O
SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUworQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOCitBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyhFTkQgTElDRU5TRSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0
aWJsZSB3aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGlu
ZyBvbmUgYWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3Ig
bnVpc2FuY2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZQorYW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0
IGJ5IGFjY2VwdGluZyB0aGUKK1B1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGlj
ZW5zZSB5b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKworCisKKworCisjaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVE
RUQKKyMgZGVmaW5lIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVERUQKKy8vLyBJZiBkZWZpbmVkLCBp
bmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVu
dCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCisjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9O
CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi92ZXJzaW9uLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gRE8gTk9UIEVESVQu
IFRoaXMgZmlsZSAoYW5kICJ2ZXJzaW9uIikgaXMgZ2VuZXJhdGVkIGJ5IENNYWtlLgorLy8gUnVu
IENNYWtlIGNvbmZpZ3VyZSBzdGVwIHRvIHVwZGF0ZSBpdC4KKyNpZm5kZWYgSlNPTl9WRVJTSU9O
X0hfSU5DTFVERUQKKyMgZGVmaW5lIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisKKyMgZGVmaW5l
IEpTT05DUFBfVkVSU0lPTl9TVFJJTkcgIjEuNi41IgorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9O
X01BSk9SIDEKKyMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9NSU5PUiA2CisjIGRlZmluZSBKU09O
Q1BQX1ZFUlNJT05fUEFUQ0ggNQorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1FVQUxJRklFUgor
IyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX0hFWEEgKChKU09OQ1BQX1ZFUlNJT05fTUFKT1IgPDwg
MjQpIHwgKEpTT05DUFBfVkVSU0lPTl9NSU5PUiA8PCAxNikgfCAoSlNPTkNQUF9WRVJTSU9OX1BB
VENIIDw8IDgpKQorCisjZW5kaWYgLy8gSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZlcnNp
b24uaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
QmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVy
CisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBk
ZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBm
aWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZv
cmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorI2RlZmlu
ZSBKU09OX0NPTkZJR19IX0lOQ0xVREVECisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhh
dCBqc29uIGxpYnJhcnkgaXMgZW1iZWRkZWQgaW4gQ3BwVEwgbGlicmFyeS4KKy8vIyBkZWZpbmUg
SlNPTl9JTl9DUFBUTCAxCisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIG1h
eSBsZXZlcmFnZSBDcHBUTCBsaWJyYXJ5CisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTCAxCisv
Ly8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgY3BwdGwgdmVjdG9yIGJhc2VkIG1hcCBzaG91
bGQgYmUgdXNlZCBpbnN0ZWFkIG9mCisvLy8gc3RkOjptYXAKKy8vLyBhcyBWYWx1ZSBjb250YWlu
ZXIuCisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUCAxCisKKy8vIElmIG5vbi16
ZXJvLCB0aGUgbGlicmFyeSB1c2VzIGV4Y2VwdGlvbnMgdG8gcmVwb3J0IGJhZCBpbnB1dCBpbnN0
ZWFkIG9mIEMKKy8vIGFzc2VydGlvbiBtYWNyb3MuIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSBleGNl
cHRpb25zLgorI2lmbmRlZiBKU09OX1VTRV9FWENFUFRJT04KKyNkZWZpbmUgSlNPTl9VU0VfRVhD
RVBUSU9OIDEKKyNlbmRpZgorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNv
dXJjZSBmaWxlIGlzIGFtYWxnYXRlZAorLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5j
bHVzaW9uLgorLy8vIFJlbWFya3M6IGl0IGlzIGF1dG9tYXRpY2FsbHkgZGVmaW5lZCBpbiB0aGUg
Z2VuZXJhdGVkIGFtYWxnYXRlZCBoZWFkZXIuCisvLyAjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFU
SU9OCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY29uZmlnLmg+Cisj
aWZuZGVmIEpTT05fVVNFX0NQUFRMCisjZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKyNlbmRpZgor
I2VuZGlmCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjZGVmaW5lIEpTT05fQVBJIENQUFRMX0FQ
SQorI2VsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQor
I2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9E
SVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19W
RVIpCisjZWxpZiBkZWZpbmVkKEpTT05fRExMKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVm
aW5lIEpTT05fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FC
TEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikK
KyNlbmRpZiAvLyBpZmRlZiBKU09OX0lOX0NQUFRMCisjaWYgIWRlZmluZWQoSlNPTl9BUEkpCisj
ZGVmaW5lIEpTT05fQVBJCisjZW5kaWYKKworLy8gSWYgSlNPTl9OT19JTlQ2NCBpcyBkZWZpbmVk
LCB0aGVuIEpzb24gb25seSBzdXBwb3J0IEMrKyAiaW50IiB0eXBlIGZvcgorLy8gaW50ZWdlcgor
Ly8gU3RvcmFnZXMsIGFuZCA2NCBiaXRzIGludGVnZXIgc3VwcG9ydCBpcyBkaXNhYmxlZC4KKy8v
ICNkZWZpbmUgSlNPTl9OT19JTlQ2NCAxCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNU1ZD
CisjICBpZiBfTVNDX1ZFUiA8PSAxMjAwIC8vIE1TVkMgNgorICAgIC8vIE1pY3Jvc29mdCBWaXN1
YWwgU3R1ZGlvIDYgb25seSBzdXBwb3J0IGNvbnZlcnNpb24gZnJvbSBfX2ludDY0IHRvIGRvdWJs
ZQorICAgIC8vIChubyBjb252ZXJzaW9uIGZyb20gdW5zaWduZWQgX19pbnQ2NCkuCisjICAgIGRl
ZmluZSBKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTiAxCisgICAgLy8gRGlzYWJsZSB3
YXJuaW5nIDQ3ODYgZm9yIFZTNiBjYXVzZWQgYnkgU1RMIChpZGVudGlmaWVyIHdhcyB0cnVuY2F0
ZWQgdG8gJzI1NScKKyAgICAvLyBjaGFyYWN0ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbikK
KyAgICAvLyBBbGwgcHJvamVjdHMgSSd2ZSBldmVyIHNlZW4gd2l0aCBWUzYgd2VyZSB1c2luZyB0
aGlzIGdsb2JhbGx5IChub3QgYm90aGVyaW5nCisgICAgLy8gd2l0aCBwcmFnbWEgcHVzaC9wb3Ap
LgorIyAgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDc4NikKKyMgIGVuZGlmIC8vIE1TVkMg
NgorCisjICBpZiBfTVNDX1ZFUiA+PSAxNTAwIC8vIE1TVkMgMjAwOAorICAgIC8vLyBJbmRpY2F0
ZXMgdGhhdCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCisjICAgIGRlZmlu
ZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3Nh
Z2UpKQorIyAgZW5kaWYKKworI2VuZGlmIC8vIGRlZmluZWQoX01TQ19WRVIpCisKKworI2lmbmRl
ZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYg
X01TQ19WRVIgPj0gMTYwMCAvLyBNU1ZDID49IDIwMTAKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVF
X1JFRkVSRU5DRVMgMQorI2VuZGlmIC8vIE1TVkMgPj0gMjAxMAorCisjaWZkZWYgX19jbGFuZ19f
CisjaWYgX19oYXNfZmVhdHVyZShjeHhfcnZhbHVlX3JlZmVyZW5jZXMpCisjZGVmaW5lIEpTT05f
SEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAgLy8gaGFzX2ZlYXR1cmUKKworI2VsaWYg
ZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFu
ZyBlbXVsYXRlcyBnY2MpCisjaWYgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykg
fHwgKF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTIDEKKyNlbmRpZiAgLy8gR1hYX0VYUEVSSU1FTlRBTAorCisjZW5kaWYgLy8gX19jbGFu
Z19fIHx8IF9fR05VQ19fCisKKyNlbmRpZiAvLyBub3QgZGVmaW5lZCBKU09OX0hBU19SVkFMVUVf
UkVGRVJFTkNFUworCisjaWZuZGVmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5l
IEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDAKKyNlbmRpZgorCisjaWZkZWYgX19jbGFuZ19f
CisjZWxpZiBkZWZpbmVkIF9fR05VQ19fIC8vIG5vdCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNp
bmNlIGNsYW5nIGVtdWxhdGVzIGdjYykKKyMgIGlmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19f
ID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gNSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJF
Q0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRlX18gKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyMg
IGVsaWYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+
PSAxKSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19hdHRyaWJ1
dGVfXygoX19kZXByZWNhdGVkX18pKQorIyAgZW5kaWYgIC8vIEdOVUMgdmVyc2lvbgorI2VuZGlm
IC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXworCisjaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNB
VEVEKQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkKKyNlbmRpZiAvLyBpZiAh
ZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCisKK25hbWVzcGFjZSBKc29uIHsKK3R5cGVkZWYg
aW50IEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFVJbnQ7CisjaWYgZGVmaW5lZChKU09OX05P
X0lOVDY0KQordHlwZWRlZiBpbnQgTGFyZ2VzdEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IExh
cmdlc3RVSW50OworI3VuZGVmIEpTT05fSEFTX0lOVDY0CisjZWxzZSAgICAgICAgICAgICAgICAg
Ly8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorLy8gRm9yIE1pY3Jvc29mdCBWaXN1YWwgdXNl
IHNwZWNpZmljIHR5cGVzIGFzIGxvbmcgbG9uZyBpcyBub3Qgc3VwcG9ydGVkCisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KK3R5cGVkZWYgX19pbnQ2NCBJ
bnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBVSW50NjQ7CisjZWxzZSAgICAgICAgICAg
ICAgICAgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gT3RoZXIgcGxhdGZvcm1zLCB1c2UgbG9u
ZyBsb25nCit0eXBlZGVmIGxvbmcgbG9uZyBpbnQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgVUludDY0OworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCit0eXBl
ZGVmIEludDY0IExhcmdlc3RJbnQ7Cit0eXBlZGVmIFVJbnQ2NCBMYXJnZXN0VUludDsKKyNkZWZp
bmUgSlNPTl9IQVNfSU5UNjQKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit9
IC8vIGVuZCBuYW1lc3BhY2UgSnNvbgorCisjZW5kaWYgLy8gSlNPTl9DT05GSUdfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vY29uZmlnLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3
YXJkcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9GT1JXQVJEU19IX0lO
Q0xVREVECisjZGVmaW5lIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8g
d3JpdGVyLmgKK2NsYXNzIEZhc3RXcml0ZXI7CitjbGFzcyBTdHlsZWRXcml0ZXI7CisKKy8vIHJl
YWRlci5oCitjbGFzcyBSZWFkZXI7CisKKy8vIGZlYXR1cmVzLmgKK2NsYXNzIEZlYXR1cmVzOwor
CisvLyB2YWx1ZS5oCit0eXBlZGVmIHVuc2lnbmVkIGludCBBcnJheUluZGV4OworY2xhc3MgU3Rh
dGljU3RyaW5nOworY2xhc3MgUGF0aDsKK2NsYXNzIFBhdGhBcmd1bWVudDsKK2NsYXNzIFZhbHVl
OworY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitjbGFzcyBWYWx1ZUl0ZXJhdG9yOworY2xhc3Mg
VmFsdWVDb25zdEl0ZXJhdG9yOworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBK
U09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNv
bnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
KworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9m
IGZpbGU6IGluY2x1ZGUvanNvbi9mZWF0dXJlcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENv
cHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRl
ciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2du
aXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFp
bCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNp
Zm5kZWYgQ1BQVExfSlNPTl9GRUFUVVJFU19IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05f
RkVBVFVSRVNfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
CisjaW5jbHVkZSAiZm9yd2FyZHMuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FN
QUxHQU1BVElPTikKKworbmFtZXNwYWNlIEpzb24geworCisvKiogXGJyaWVmIENvbmZpZ3VyYXRp
b24gcGFzc2VkIHRvIHJlYWRlciBhbmQgd3JpdGVyLgorICogVGhpcyBjb25maWd1cmF0aW9uIG9i
amVjdCBjYW4gYmUgdXNlZCB0byBmb3JjZSB0aGUgUmVhZGVyIG9yIFdyaXRlcgorICogdG8gYmVo
YXZlIGluIGEgc3RhbmRhcmQgY29uZm9ybWluZyB3YXkuCisgKi8KK2NsYXNzIEpTT05fQVBJIEZl
YXR1cmVzIHsKK3B1YmxpYzoKKyAgLyoqIFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBhbGxv
d3MgYWxsIGZlYXR1cmVzIGFuZCBhc3N1bWVzIGFsbCBzdHJpbmdzCisgICAqIGFyZSBVVEYtOC4K
KyAgICogLSBDICYgQysrIGNvbW1lbnRzIGFyZSBhbGxvd2VkCisgICAqIC0gUm9vdCBvYmplY3Qg
Y2FuIGJlIGFueSBKU09OIHZhbHVlCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBl
bmNvZGVkIGluIFVURi04CisgICAqLworICBzdGF0aWMgRmVhdHVyZXMgYWxsKCk7CisKKyAgLyoq
IFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBpcyBzdHJpY3RseSBjb21wYXRpYmxlIHdpdGgg
dGhlIEpTT04KKyAgICogc3BlY2lmaWNhdGlvbi4KKyAgICogLSBDb21tZW50cyBhcmUgZm9yYmlk
ZGVuLgorICAgKiAtIFJvb3Qgb2JqZWN0IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9i
amVjdCB2YWx1ZS4KKyAgICogLSBBc3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVuY29kZWQgaW4g
VVRGLTgKKyAgICovCisgIHN0YXRpYyBGZWF0dXJlcyBzdHJpY3RNb2RlKCk7CisKKyAgLyoqIFxi
cmllZiBJbml0aWFsaXplIHRoZSBjb25maWd1cmF0aW9uIGxpa2UgSnNvbkNvbmZpZzo6YWxsRmVh
dHVyZXM7CisgICAqLworICBGZWF0dXJlcygpOworCisgIC8vLyBcYyB0cnVlIGlmIGNvbW1lbnRz
IGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyB0cnVlLgorICBib29sIGFsbG93Q29tbWVudHNfOwor
CisgIC8vLyBcYyB0cnVlIGlmIHJvb3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2Jq
ZWN0IHZhbHVlLiBEZWZhdWx0OiBcYworICAvLy8gZmFsc2UuCisgIGJvb2wgc3RyaWN0Um9vdF87
CisKKyAgLy8vIFxjIHRydWUgaWYgZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVycyBhcmUgYWxsb3dl
ZC4gRGVmYXVsdDogXGMgZmFsc2UuCisgIGJvb2wgYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVy
c187CisKKyAgLy8vIFxjIHRydWUgaWYgbnVtZXJpYyBvYmplY3Qga2V5IGFyZSBhbGxvd2VkLiBE
ZWZhdWx0OiBcYyBmYWxzZS4KKyAgYm9vbCBhbGxvd051bWVyaWNLZXlzXzsKK307CisKK30gLy8g
bmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vZmVhdHVyZXMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3Zh
bHVlLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0
ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMg
ZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX0hfSU5DTFVE
RUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKyNpbmNsdWRlICJmb3J3YXJkcy5oIgorI2VuZGlmIC8vIGlmICFkZWZp
bmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2
ZWN0b3I+CisjaW5jbHVkZSA8ZXhjZXB0aW9uPgorCisjaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NN
QUxMTUFQCisjaW5jbHVkZSA8bWFwPgorI2Vsc2UKKyNpbmNsdWRlIDxjcHB0bC9zbWFsbG1hcC5o
PgorI2VuZGlmCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9mb3J3YXJk
cy5oPgorI2VuZGlmCisKKy8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVtYmVyPjog
PHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bworLy8gYmUgdXNlZCBieS4uLgor
I2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFn
bWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQorI2VuZGlm
IC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKwor
LyoqIFxicmllZiBKU09OIChKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbikuCisgKi8KK25hbWVz
cGFjZSBKc29uIHsKKworLyoqIEJhc2UgY2xhc3MgZm9yIGFsbCBleGNlcHRpb25zIHdlIHRocm93
LgorICoKKyAqIFdlIHVzZSBub3RoaW5nIGJ1dCB0aGVzZSBpbnRlcm5hbGx5LiBPZiBjb3Vyc2Us
IFNUTCBjYW4gdGhyb3cgb3RoZXJzLgorICovCitjbGFzcyBKU09OX0FQSSBFeGNlcHRpb24gOiBw
dWJsaWMgc3RkOjpleGNlcHRpb24geworcHVibGljOgorICBFeGNlcHRpb24oc3RkOjpzdHJpbmcg
Y29uc3QmIG1zZyk7CisgIH5FeGNlcHRpb24oKSB0aHJvdygpOworICBjaGFyIGNvbnN0KiB3aGF0
KCkgY29uc3QgdGhyb3coKTsKK3Byb3RlY3RlZDoKKyAgc3RkOjpzdHJpbmcgbXNnXzsKK307CisK
Ky8qKiBFeGNlcHRpb25zIHdoaWNoIHRoZSB1c2VyIGNhbm5vdCBlYXNpbHkgYXZvaWQuCisgKgor
ICogRS5nLiBvdXQtb2YtbWVtb3J5ICh3aGVuIHdlIHVzZSBtYWxsb2MpLCBzdGFjay1vdmVyZmxv
dywgbWFsaWNpb3VzIGlucHV0CisgKiAKKyAqIFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4
Y2VwdGlvbgorICovCitjbGFzcyBKU09OX0FQSSBSdW50aW1lRXJyb3IgOiBwdWJsaWMgRXhjZXB0
aW9uIHsKK3B1YmxpYzoKKyAgUnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOwor
fTsKKworLyoqIEV4Y2VwdGlvbnMgdGhyb3duIGJ5IEpTT05fQVNTRVJUL0pTT05fRkFJTCBtYWNy
b3MuCisgKgorICogVGhlc2UgYXJlIHByZWNvbmRpdGlvbi12aW9sYXRpb25zICh1c2VyIGJ1Z3Mp
IGFuZCBpbnRlcm5hbCBlcnJvcnMgKG91ciBidWdzKS4KKyAqIAorICogXHJlbWFyayBkZXJpdmVk
IGZyb20gSnNvbjo6RXhjZXB0aW9uCisgKi8KK2NsYXNzIEpTT05fQVBJIExvZ2ljRXJyb3IgOiBw
dWJsaWMgRXhjZXB0aW9uIHsKK3B1YmxpYzoKKyAgTG9naWNFcnJvcihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKTsKK307CisKKy8vLyB1c2VkIGludGVybmFsbHkKK3ZvaWQgdGhyb3dSdW50aW1lRXJy
b3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7CisvLy8gdXNlZCBpbnRlcm5hbGx5Cit2b2lkIHRo
cm93TG9naWNFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKTsKKworLyoqIFxicmllZiBUeXBl
IG9mIHRoZSB2YWx1ZSBoZWxkIGJ5IGEgVmFsdWUgb2JqZWN0LgorICovCitlbnVtIFZhbHVlVHlw
ZSB7CisgIG51bGxWYWx1ZSA9IDAsIC8vLzwgJ251bGwnIHZhbHVlCisgIGludFZhbHVlLCAgICAg
IC8vLzwgc2lnbmVkIGludGVnZXIgdmFsdWUKKyAgdWludFZhbHVlLCAgICAgLy8vPCB1bnNpZ25l
ZCBpbnRlZ2VyIHZhbHVlCisgIHJlYWxWYWx1ZSwgICAgIC8vLzwgZG91YmxlIHZhbHVlCisgIHN0
cmluZ1ZhbHVlLCAgIC8vLzwgVVRGLTggc3RyaW5nIHZhbHVlCisgIGJvb2xlYW5WYWx1ZSwgIC8v
LzwgYm9vbCB2YWx1ZQorICBhcnJheVZhbHVlLCAgICAvLy88IGFycmF5IHZhbHVlIChvcmRlcmVk
IGxpc3QpCisgIG9iamVjdFZhbHVlICAgIC8vLzwgb2JqZWN0IHZhbHVlIChjb2xsZWN0aW9uIG9m
IG5hbWUvdmFsdWUgcGFpcnMpLgorfTsKKworZW51bSBDb21tZW50UGxhY2VtZW50IHsKKyAgY29t
bWVudEJlZm9yZSA9IDAsICAgICAgLy8vPCBhIGNvbW1lbnQgcGxhY2VkIG9uIHRoZSBsaW5lIGJl
Zm9yZSBhIHZhbHVlCisgIGNvbW1lbnRBZnRlck9uU2FtZUxpbmUsIC8vLzwgYSBjb21tZW50IGp1
c3QgYWZ0ZXIgYSB2YWx1ZSBvbiB0aGUgc2FtZSBsaW5lCisgIGNvbW1lbnRBZnRlciwgLy8vPCBh
IGNvbW1lbnQgb24gdGhlIGxpbmUgYWZ0ZXIgYSB2YWx1ZSAob25seSBtYWtlIHNlbnNlIGZvcgor
ICAvLy8gcm9vdCB2YWx1ZSkKKyAgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50Cit9OworCisvLyMg
aWZkZWYgSlNPTl9VU0VfQ1BQVEwKKy8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxj
b25zdCBjaGFyICo+IEVudW1NZW1iZXJOYW1lczsKKy8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51
bWVyYXRvcjxjb25zdCBWYWx1ZSAmPiBFbnVtVmFsdWVzOworLy8jIGVuZGlmCisKKy8qKiBcYnJp
ZWYgTGlnaHR3ZWlnaHQgd3JhcHBlciB0byB0YWcgc3RhdGljIHN0cmluZy4KKyAqCisgKiBWYWx1
ZSBjb25zdHJ1Y3RvciBhbmQgb2JqZWN0VmFsdWUgbWVtYmVyIGFzc2lnbmVtZW50IHRha2VzIGFk
dmFudGFnZSBvZiB0aGUKKyAqIFN0YXRpY1N0cmluZyBhbmQgYXZvaWQgdGhlIGNvc3Qgb2Ygc3Ry
aW5nIGR1cGxpY2F0aW9uIHdoZW4gc3RvcmluZyB0aGUKKyAqIHN0cmluZyBvciB0aGUgbWVtYmVy
IG5hbWUuCisgKgorICogRXhhbXBsZSBvZiB1c2FnZToKKyAqIFxjb2RlCisgKiBKc29uOjpWYWx1
ZSBhVmFsdWUoIFN0YXRpY1N0cmluZygic29tZSB0ZXh0IikgKTsKKyAqIEpzb246OlZhbHVlIG9i
amVjdDsKKyAqIHN0YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOworICogb2Jq
ZWN0W2NvZGVdID0gMTIzNDsKKyAqIFxlbmRjb2RlCisgKi8KK2NsYXNzIEpTT05fQVBJIFN0YXRp
Y1N0cmluZyB7CitwdWJsaWM6CisgIGV4cGxpY2l0IFN0YXRpY1N0cmluZyhjb25zdCBjaGFyKiBj
enN0cmluZykgOiBjX3N0cl8oY3pzdHJpbmcpIHt9CisKKyAgb3BlcmF0b3IgY29uc3QgY2hhcioo
KSBjb25zdCB7IHJldHVybiBjX3N0cl87IH0KKworICBjb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0
IHsgcmV0dXJuIGNfc3RyXzsgfQorCitwcml2YXRlOgorICBjb25zdCBjaGFyKiBjX3N0cl87Cit9
OworCisvKiogXGJyaWVmIFJlcHJlc2VudHMgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3Jn
Ij5KU09OPC9hPiB2YWx1ZS4KKyAqCisgKiBUaGlzIGNsYXNzIGlzIGEgZGlzY3JpbWluYXRlZCB1
bmlvbiB3cmFwcGVyIHRoYXQgY2FuIHJlcHJlc2VudHMgYToKKyAqIC0gc2lnbmVkIGludGVnZXIg
W3JhbmdlOiBWYWx1ZTo6bWluSW50IC0gVmFsdWU6Om1heEludF0KKyAqIC0gdW5zaWduZWQgaW50
ZWdlciAocmFuZ2U6IDAgLSBWYWx1ZTo6bWF4VUludCkKKyAqIC0gZG91YmxlCisgKiAtIFVURi04
IHN0cmluZworICogLSBib29sZWFuCisgKiAtICdudWxsJworICogLSBhbiBvcmRlcmVkIGxpc3Qg
b2YgVmFsdWUKKyAqIC0gY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzIChqYXZhc2NyaXB0
IG9iamVjdCkKKyAqCisgKiBUaGUgdHlwZSBvZiB0aGUgaGVsZCB2YWx1ZSBpcyByZXByZXNlbnRl
ZCBieSBhICNWYWx1ZVR5cGUgYW5kCisgKiBjYW4gYmUgb2J0YWluZWQgdXNpbmcgdHlwZSgpLgor
ICoKKyAqIFZhbHVlcyBvZiBhbiAjb2JqZWN0VmFsdWUgb3IgI2FycmF5VmFsdWUgY2FuIGJlIGFj
Y2Vzc2VkIHVzaW5nIG9wZXJhdG9yW10oKQorICogbWV0aG9kcy4KKyAqIE5vbi1jb25zdCBtZXRo
b2RzIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgdGhlIGEgI251bGxWYWx1ZSBlbGVtZW50Cisg
KiBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAqIFRoZSBzZXF1ZW5jZSBvZiBhbiAjYXJyYXlWYWx1
ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVzaXplZCBhbmQgaW5pdGlhbGl6ZWQKKyAqIHdpdGgg
I251bGxWYWx1ZS4gcmVzaXplKCkgY2FuIGJlIHVzZWQgdG8gZW5sYXJnZSBvciB0cnVuY2F0ZSBh
biAjYXJyYXlWYWx1ZS4KKyAqCisgKiBUaGUgZ2V0KCkgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBv
YnRhaW4gZGVmYXVsdCB2YWx1ZSBpbiB0aGUgY2FzZSB0aGUKKyAqIHJlcXVpcmVkIGVsZW1lbnQg
ZG9lcyBub3QgZXhpc3QuCisgKgorICogSXQgaXMgcG9zc2libGUgdG8gaXRlcmF0ZSBvdmVyIHRo
ZSBsaXN0IG9mIGEgI29iamVjdFZhbHVlIHZhbHVlcyB1c2luZworICogdGhlIGdldE1lbWJlck5h
bWVzKCkgbWV0aG9kLgorICoKKyAqIFxub3RlICNWYWx1ZSBzdHJpbmctbGVuZ3RoIGZpdCBpbiBz
aXplX3QsIGJ1dCBrZXlzIG11c3QgYmUgPCAyXjMwLgorICogKFRoZSByZWFzb24gaXMgYW4gaW1w
bGVtZW50YXRpb24gZGV0YWlsLikgQSAjQ2hhclJlYWRlciB3aWxsIHJhaXNlIGFuCisgKiBleGNl
cHRpb24gaWYgYSBib3VuZCBpcyBleGNlZWRlZCB0byBhdm9pZCBzZWN1cml0eSBob2xlcyBpbiB5
b3VyIGFwcCwKKyAqIGJ1dCB0aGUgVmFsdWUgQVBJIGRvZXMgKm5vdCogY2hlY2sgYm91bmRzLiBU
aGF0IGlzIHRoZSByZXNwb25zaWJpbGl0eQorICogb2YgdGhlIGNhbGxlci4KKyAqLworY2xhc3Mg
SlNPTl9BUEkgVmFsdWUgeworICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitwdWJs
aWM6CisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IE1lbWJlcnM7CisgIHR5cGVk
ZWYgVmFsdWVJdGVyYXRvciBpdGVyYXRvcjsKKyAgdHlwZWRlZiBWYWx1ZUNvbnN0SXRlcmF0b3Ig
Y29uc3RfaXRlcmF0b3I7CisgIHR5cGVkZWYgSnNvbjo6VUludCBVSW50OworICB0eXBlZGVmIEpz
b246OkludCBJbnQ7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgdHlwZWRlZiBKc29u
OjpVSW50NjQgVUludDY0OworICB0eXBlZGVmIEpzb246OkludDY0IEludDY0OworI2VuZGlmIC8v
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJn
ZXN0SW50OworICB0eXBlZGVmIEpzb246Okxhcmdlc3RVSW50IExhcmdlc3RVSW50OworICB0eXBl
ZGVmIEpzb246OkFycmF5SW5kZXggQXJyYXlJbmRleDsKKworICBzdGF0aWMgY29uc3QgVmFsdWUm
IG51bGw7ICAvLy88IFdlIHJlZ3JldCB0aGlzIHJlZmVyZW5jZSB0byBhIGdsb2JhbCBpbnN0YW5j
ZTsgcHJlZmVyIHRoZSBzaW1wbGVyIFZhbHVlKCkuCisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVs
bFJlZjsgIC8vLzwganVzdCBhIGtsdWRnZSBmb3IgYmluYXJ5LWNvbXBhdGliaWxpdHk7IHNhbWUg
YXMgbnVsbAorICAvLy8gTWluaW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBz
dG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWluTGFy
Z2VzdEludDsKKyAgLy8vIE1heGltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUg
c3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0SW50IG1heExh
cmdlc3RJbnQ7CisgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4g
YmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0VUludCBt
YXhMYXJnZXN0VUludDsKKworICAvLy8gTWluaW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQgY2Fu
IGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50IG1pbkludDsK
KyAgLy8vIE1heGltdW0gc2lnbmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBK
c29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IEludCBtYXhJbnQ7CisgIC8vLyBNYXhpbXVtIHVu
c2lnbmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAg
c3RhdGljIGNvbnN0IFVJbnQgbWF4VUludDsKKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisgIC8vLyBNaW5pbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9y
ZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IEludDY0IG1pbkludDY0OworICAv
Ly8gTWF4aW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGlu
IGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQ2NCBtYXhJbnQ2NDsKKyAgLy8vIE1h
eGltdW0gdW5zaWduZWQgNjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEg
SnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBVSW50NjQgbWF4VUludDY0OworI2VuZGlmIC8v
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisKK3ByaXZhdGU6CisjaWZuZGVmIEpTT05DUFBfRE9D
X0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KKyAgY2xhc3MgQ1pTdHJpbmcgeworICBwdWJsaWM6Cisg
ICAgZW51bSBEdXBsaWNhdGlvblBvbGljeSB7CisgICAgICBub0R1cGxpY2F0aW9uID0gMCwKKyAg
ICAgIGR1cGxpY2F0ZSwKKyAgICAgIGR1cGxpY2F0ZU9uQ29weQorICAgIH07CisgICAgQ1pTdHJp
bmcoQXJyYXlJbmRleCBpbmRleCk7CisgICAgQ1pTdHJpbmcoY2hhciBjb25zdCogc3RyLCB1bnNp
Z25lZCBsZW5ndGgsIER1cGxpY2F0aW9uUG9saWN5IGFsbG9jYXRlKTsKKyAgICBDWlN0cmluZyhD
WlN0cmluZyBjb25zdCYgb3RoZXIpOworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisg
ICAgQ1pTdHJpbmcoQ1pTdHJpbmcmJiBvdGhlcik7CisjZW5kaWYKKyAgICB+Q1pTdHJpbmcoKTsK
KyAgICBDWlN0cmluZyYgb3BlcmF0b3I9KENaU3RyaW5nIG90aGVyKTsKKyAgICBib29sIG9wZXJh
dG9yPChDWlN0cmluZyBjb25zdCYgb3RoZXIpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3I9PShD
WlN0cmluZyBjb25zdCYgb3RoZXIpIGNvbnN0OworICAgIEFycmF5SW5kZXggaW5kZXgoKSBjb25z
dDsKKyAgICAvL2NvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3Q7IC8vLzwgXGRlcHJlY2F0ZWQKKyAg
ICBjaGFyIGNvbnN0KiBkYXRhKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7
CisgICAgYm9vbCBpc1N0YXRpY1N0cmluZygpIGNvbnN0OworCisgIHByaXZhdGU6CisgICAgdm9p
ZCBzd2FwKENaU3RyaW5nJiBvdGhlcik7CisKKyAgICBzdHJ1Y3QgU3RyaW5nU3RvcmFnZSB7Cisg
ICAgICB1bnNpZ25lZCBwb2xpY3lfOiAyOworICAgICAgdW5zaWduZWQgbGVuZ3RoXzogMzA7IC8v
IDFHQiBtYXgKKyAgICB9OworCisgICAgY2hhciBjb25zdCogY3N0cl87ICAvLyBhY3R1YWxseSwg
YSBwcmVmaXhlZCBzdHJpbmcsIHVubGVzcyBwb2xpY3kgaXMgbm9EdXAKKyAgICB1bmlvbiB7Cisg
ICAgICBBcnJheUluZGV4IGluZGV4XzsKKyAgICAgIFN0cmluZ1N0b3JhZ2Ugc3RvcmFnZV87Cisg
ICAgfTsKKyAgfTsKKworcHVibGljOgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAor
ICB0eXBlZGVmIHN0ZDo6bWFwPENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOworI2Vsc2UK
KyAgdHlwZWRlZiBDcHBUTDo6U21hbGxNYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7
CisjZW5kaWYgLy8gaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisjZW5kaWYgLy8gaWZu
ZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5UQVRJT04KKworcHVibGljOgorICAvKiog
XGJyaWVmIENyZWF0ZSBhIGRlZmF1bHQgVmFsdWUgb2YgdGhlIGdpdmVuIHR5cGUuCisKKyAgICBU
aGlzIGlzIGEgdmVyeSB1c2VmdWwgY29uc3RydWN0b3IuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5
IGFycmF5LCBwYXNzIGFycmF5VmFsdWUuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5IG9iamVjdCwg
cGFzcyBvYmplY3RWYWx1ZS4KKyAgICBBbm90aGVyIFZhbHVlIGNhbiB0aGVuIGJlIHNldCB0byB0
aGlzIG9uZSBieSBhc3NpZ25tZW50LgorVGhpcyBpcyB1c2VmdWwgc2luY2UgY2xlYXIoKSBhbmQg
cmVzaXplKCkgd2lsbCBub3QgYWx0ZXIgdHlwZXMuCisKKyAgICBFeGFtcGxlczoKK1xjb2RlCitK
c29uOjpWYWx1ZSBudWxsX3ZhbHVlOyAvLyBudWxsCitKc29uOjpWYWx1ZSBhcnJfdmFsdWUoSnNv
bjo6YXJyYXlWYWx1ZSk7IC8vIFtdCitKc29uOjpWYWx1ZSBvYmpfdmFsdWUoSnNvbjo6b2JqZWN0
VmFsdWUpOyAvLyB7fQorXGVuZGNvZGUKKyAgKi8KKyAgVmFsdWUoVmFsdWVUeXBlIHR5cGUgPSBu
dWxsVmFsdWUpOworICBWYWx1ZShJbnQgdmFsdWUpOworICBWYWx1ZShVSW50IHZhbHVlKTsKKyNp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBWYWx1ZShJbnQ2NCB2YWx1ZSk7CisgIFZhbHVl
KFVJbnQ2NCB2YWx1ZSk7CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAg
VmFsdWUoZG91YmxlIHZhbHVlKTsKKyAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUpOyAvLy88IENv
cHkgdGlsIGZpcnN0IDAuIChOVUxMIGNhdXNlcyB0byBzZWctZmF1bHQuKQorICBWYWx1ZShjb25z
dCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKTsgLy8vPCBDb3B5IGFsbCwgaW5jbCB6ZXJv
ZXMuCisgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIHZhbHVlIGZyb20gYSBzdGF0aWMgc3RyaW5n
LgorCisgICAqIExpa2Ugb3RoZXIgdmFsdWUgc3RyaW5nIGNvbnN0cnVjdG9yIGJ1dCBkbyBub3Qg
ZHVwbGljYXRlIHRoZSBzdHJpbmcgZm9yCisgICAqIGludGVybmFsIHN0b3JhZ2UuIFRoZSBnaXZl
biBzdHJpbmcgbXVzdCByZW1haW4gYWxpdmUgYWZ0ZXIgdGhlIGNhbGwgdG8gdGhpcworICAgKiBj
b25zdHJ1Y3Rvci4KKyAgICogXG5vdGUgVGhpcyB3b3JrcyBvbmx5IGZvciBudWxsLXRlcm1pbmF0
ZWQgc3RyaW5ncy4gKFdlIGNhbm5vdCBjaGFuZ2UgdGhlCisgICAqICAgc2l6ZSBvZiB0aGlzIGNs
YXNzLCBzbyB3ZSBoYXZlIG5vd2hlcmUgdG8gc3RvcmUgdGhlIGxlbmd0aCwKKyAgICogICB3aGlj
aCBtaWdodCBiZSBjb21wdXRlZCBsYXRlciBmb3IgdmFyaW91cyBvcGVyYXRpb25zLikKKyAgICoK
KyAgICogRXhhbXBsZSBvZiB1c2FnZToKKyAgICogXGNvZGUKKyAgICogc3RhdGljIFN0YXRpY1N0
cmluZyBmb28oInNvbWUgdGV4dCIpOworICAgKiBKc29uOjpWYWx1ZSBhVmFsdWUoZm9vKTsKKyAg
ICogXGVuZGNvZGUKKyAgICovCisgIFZhbHVlKGNvbnN0IFN0YXRpY1N0cmluZyYgdmFsdWUpOwor
ICBWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOyAvLy88IENvcHkgZGF0YSgpIHRpbCBz
aXplKCkuIEVtYmVkZGVkIHplcm9lcyB0b28uCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgVmFs
dWUoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiB2YWx1ZSk7CisjZW5kaWYKKyAgVmFsdWUoYm9v
bCB2YWx1ZSk7CisgIC8vLyBEZWVwIGNvcHkuCisgIFZhbHVlKGNvbnN0IFZhbHVlJiBvdGhlcik7
CisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyAgLy8vIE1vdmUgY29uc3RydWN0b3IK
KyAgVmFsdWUoVmFsdWUmJiBvdGhlcik7CisjZW5kaWYKKyAgflZhbHVlKCk7CisKKyAgLy8vIERl
ZXAgY29weSwgdGhlbiBzd2FwKG90aGVyKS4KKyAgLy8vIFxub3RlIE92ZXItd3JpdGUgZXhpc3Rp
bmcgY29tbWVudHMuIFRvIHByZXNlcnZlIGNvbW1lbnRzLCB1c2UgI3N3YXBQYXlsb2FkKCkuCisg
IFZhbHVlJiBvcGVyYXRvcj0oVmFsdWUgb3RoZXIpOworICAvLy8gU3dhcCBldmVyeXRoaW5nLgor
ICB2b2lkIHN3YXAoVmFsdWUmIG90aGVyKTsKKyAgLy8vIFN3YXAgdmFsdWVzIGJ1dCBsZWF2ZSBj
b21tZW50cyBhbmQgc291cmNlIG9mZnNldHMgaW4gcGxhY2UuCisgIHZvaWQgc3dhcFBheWxvYWQo
VmFsdWUmIG90aGVyKTsKKworICBWYWx1ZVR5cGUgdHlwZSgpIGNvbnN0OworCisgIC8vLyBDb21w
YXJlIHBheWxvYWQgb25seSwgbm90IGNvbW1lbnRzIGV0Yy4KKyAgYm9vbCBvcGVyYXRvcjwoY29u
c3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBv
dGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0
OworICBib29sIG9wZXJhdG9yPihjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGludCBjb21wYXJlKGNvbnN0IFZhbHVlJiBvdGhl
cikgY29uc3Q7CisKKyAgY29uc3QgY2hhciogYXNDU3RyaW5nKCkgY29uc3Q7IC8vLzwgRW1iZWRk
ZWQgemVyb2VzIGNvdWxkIGNhdXNlIHlvdSB0cm91YmxlIQorICBzdGQ6OnN0cmluZyBhc1N0cmlu
ZygpIGNvbnN0OyAvLy88IEVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIC8qKiBHZXQg
cmF3IGNoYXIqIG9mIHN0cmluZy12YWx1ZS4KKyAgICogIFxyZXR1cm4gZmFsc2UgaWYgIXN0cmlu
Zy4gKFNlZy1mYXVsdCBpZiBzdHIgb3IgZW5kIGFyZSBOVUxMLikKKyAgICovCisgIGJvb2wgZ2V0
U3RyaW5nKAorICAgICAgY2hhciBjb25zdCoqIGJlZ2luLCBjaGFyIGNvbnN0KiogZW5kKSBjb25z
dDsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICBDcHBUTDo6Q29uc3RTdHJpbmcgYXNDb25zdFN0
cmluZygpIGNvbnN0OworI2VuZGlmCisgIEludCBhc0ludCgpIGNvbnN0OworICBVSW50IGFzVUlu
dCgpIGNvbnN0OworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIEludDY0IGFzSW50NjQo
KSBjb25zdDsKKyAgVUludDY0IGFzVUludDY0KCkgY29uc3Q7CisjZW5kaWYgLy8gaWYgZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKKyAgTGFyZ2VzdEludCBhc0xhcmdlc3RJbnQoKSBjb25zdDsKKyAg
TGFyZ2VzdFVJbnQgYXNMYXJnZXN0VUludCgpIGNvbnN0OworICBmbG9hdCBhc0Zsb2F0KCkgY29u
c3Q7CisgIGRvdWJsZSBhc0RvdWJsZSgpIGNvbnN0OworICBib29sIGFzQm9vbCgpIGNvbnN0Owor
CisgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CisgIGJvb2wgaXNCb29sKCkgY29uc3Q7CisgIGJvb2wg
aXNJbnQoKSBjb25zdDsKKyAgYm9vbCBpc0ludDY0KCkgY29uc3Q7CisgIGJvb2wgaXNVSW50KCkg
Y29uc3Q7CisgIGJvb2wgaXNVSW50NjQoKSBjb25zdDsKKyAgYm9vbCBpc0ludGVncmFsKCkgY29u
c3Q7CisgIGJvb2wgaXNEb3VibGUoKSBjb25zdDsKKyAgYm9vbCBpc051bWVyaWMoKSBjb25zdDsK
KyAgYm9vbCBpc1N0cmluZygpIGNvbnN0OworICBib29sIGlzQXJyYXkoKSBjb25zdDsKKyAgYm9v
bCBpc09iamVjdCgpIGNvbnN0OworCisgIGJvb2wgaXNDb252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBv
dGhlcikgY29uc3Q7CisKKyAgLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0
CisgIEFycmF5SW5kZXggc2l6ZSgpIGNvbnN0OworCisgIC8vLyBcYnJpZWYgUmV0dXJuIHRydWUg
aWYgZW1wdHkgYXJyYXksIGVtcHR5IG9iamVjdCwgb3IgbnVsbDsKKyAgLy8vIG90aGVyd2lzZSwg
ZmFsc2UuCisgIGJvb2wgZW1wdHkoKSBjb25zdDsKKworICAvLy8gUmV0dXJuIGlzTnVsbCgpCisg
IGJvb2wgb3BlcmF0b3IhKCkgY29uc3Q7CisKKyAgLy8vIFJlbW92ZSBhbGwgb2JqZWN0IG1lbWJl
cnMgYW5kIGFycmF5IGVsZW1lbnRzLgorICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlWYWx1ZSwg
b2JqZWN0VmFsdWUsIG9yIG51bGxWYWx1ZQorICAvLy8gXHBvc3QgdHlwZSgpIGlzIHVuY2hhbmdl
ZAorICB2b2lkIGNsZWFyKCk7CisKKyAgLy8vIFJlc2l6ZSB0aGUgYXJyYXkgdG8gc2l6ZSBlbGVt
ZW50cy4KKyAgLy8vIE5ldyBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC4KKyAgLy8v
IE1heSBvbmx5IGJlIGNhbGxlZCBvbiBudWxsVmFsdWUgb3IgYXJyYXlWYWx1ZS4KKyAgLy8vIFxw
cmUgdHlwZSgpIGlzIGFycmF5VmFsdWUgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkg
aXMgYXJyYXlWYWx1ZQorICB2b2lkIHJlc2l6ZShBcnJheUluZGV4IHNpemUpOworCisgIC8vLyBB
Y2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRleCApLgorICAvLy8gSWYgdGhl
IGFycmF5IGNvbnRhaW5zIGxlc3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUg
YXJlCisgIC8vLyBpbnNlcnRlZAorICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUg
aXMgaW5kZXgrMS4KKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdl
dCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVy
YXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgVmFsdWUmIG9wZXJhdG9yW10oQXJyYXlJ
bmRleCBpbmRleCk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2Vk
IGluZGV4ICkuCisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVs
ZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUKKyAgLy8vIGluc2VydGVkCisgIC8vLyBpbiB0aGUg
YXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBpbmRleCsxLgorICAvLy8gKFlvdSBtYXkgbmVlZCB0
byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKKyAg
Ly8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQorICBW
YWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxl
bWVudCAoemVybyBiYXNlZCBpbmRleCApCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFs
dWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMg
ZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIGNvbnN0IFZhbHVl
JiBvcGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpIGNvbnN0OworCisgIC8vLyBBY2Nlc3MgYW4g
YXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBpbmRleCApCisgIC8vLyAoWW91IG1heSBuZWVkIHRv
IHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAv
Ly8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIGNv
bnN0IFZhbHVlJiBvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3Q7CisKKyAgLy8vIElmIHRoZSBh
cnJheSBjb250YWlucyBhdCBsZWFzdCBpbmRleCsxIGVsZW1lbnRzLCByZXR1cm5zIHRoZSBlbGVt
ZW50CisgIC8vLyB2YWx1ZSwKKyAgLy8vIG90aGVyd2lzZSByZXR1cm5zIGRlZmF1bHRWYWx1ZS4K
KyAgVmFsdWUgZ2V0KEFycmF5SW5kZXggaW5kZXgsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUp
IGNvbnN0OworICAvLy8gUmV0dXJuIHRydWUgaWYgaW5kZXggPCBzaXplKCkuCisgIGJvb2wgaXNW
YWxpZEluZGV4KEFycmF5SW5kZXggaW5kZXgpIGNvbnN0OworICAvLy8gXGJyaWVmIEFwcGVuZCB2
YWx1ZSB0byBhcnJheSBhdCB0aGUgZW5kLgorICAvLy8KKyAgLy8vIEVxdWl2YWxlbnQgdG8ganNv
bnZhbHVlW2pzb252YWx1ZS5zaXplKCldID0gdmFsdWU7CisgIFZhbHVlJiBhcHBlbmQoY29uc3Qg
VmFsdWUmIHZhbHVlKTsKKworICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBj
cmVhdGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgLy8vIFxub3RlIEJl
Y2F1c2Ugb2Ygb3VyIGltcGxlbWVudGF0aW9uLCBrZXlzIGFyZSBsaW1pdGVkIHRvIDJeMzAgLTEg
Y2hhcnMuCisgIC8vLyAgRXhjZWVkaW5nIHRoYXQgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24uCisg
IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2Jq
ZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0
aAorICAvLy8gdGhhdCBuYW1lLgorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFy
KiBrZXkpIGNvbnN0OworICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVh
dGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgLy8vIFxwYXJhbSBrZXkg
bWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IHN0
ZDo6c3RyaW5nJiBrZXkpOworICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBy
ZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4K
KyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIGNvbnN0IFZh
bHVlJiBvcGVyYXRvcltdKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpIGNvbnN0OworICAvKiogXGJy
aWVmIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIg
aWYgaXQgZG9lcyBub3QKKyAgIGV4aXN0LgorCisgICAqIElmIHRoZSBvYmplY3QgaGFzIG5vIGVu
dHJ5IGZvciB0aGF0IG5hbWUsIHRoZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8gc3RvcmUKKyAg
ICogdGhlIG5ldyBlbnRyeSBpcyBub3QgZHVwbGljYXRlZC4KKyAgICogRXhhbXBsZSBvZiB1c2U6
CisgICAqIFxjb2RlCisgICAqIEpzb246OlZhbHVlIG9iamVjdDsKKyAgICogc3RhdGljIGNvbnN0
IFN0YXRpY1N0cmluZyBjb2RlKCJjb2RlIik7CisgICAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7Cisg
ICAqIFxlbmRjb2RlCisgICAqLworICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJp
bmcmIGtleSk7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3Qu
CisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5KTsKKyAg
Ly8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJl
IGlzIG5vIG1lbWJlciB3aXRoCisgIC8vLyB0aGF0IG5hbWUuCisgIGNvbnN0IFZhbHVlJiBvcGVy
YXRvcltdKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5KSBjb25zdDsKKyNlbmRpZgorICAv
Ly8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUg
b3RoZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBjb3B5CisgIFZhbHVlIGdldChjb25zdCBjaGFy
KiBrZXksIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJuIHRo
ZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgor
ICAvLy8gXG5vdGUgZGVlcCBjb3B5CisgIC8vLyBcbm90ZSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRk
ZWQgbnVsbHMuCisgIFZhbHVlIGdldChjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5k
LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUgbWVt
YmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAgLy8v
IFxub3RlIGRlZXAgY29weQorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBu
dWxscy4KKyAgVmFsdWUgZ2V0KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNvbnN0IFZhbHVlJiBk
ZWZhdWx0VmFsdWUpIGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4g
dGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2Uu
CisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IENwcFRMOjpDb25zdFN0
cmluZyYga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNlbmRpZgorICAv
Ly8gTW9zdCBnZW5lcmFsIGFuZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBpc01lbWJlcigpY29uc3Qs
IGdldCgpY29uc3QsCisgIC8vLyBhbmQgb3BlcmF0b3JbXWNvbnN0CisgIC8vLyBcbm90ZSBBcyBz
dGF0ZWQgZWxzZXdoZXJlLCBiZWhhdmlvciBpcyB1bmRlZmluZWQgaWYgKGVuZC1iZWdpbikgPj0g
Ml4zMAorICBWYWx1ZSBjb25zdCogZmluZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCog
ZW5kKSBjb25zdDsKKyAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2Yg
b2JqZWN0LW11dGF0b3JzLgorICAvLy8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZp
b3IgaXMgdW5kZWZpbmVkIGlmIChlbmQtYmVnaW4pID49IDJeMzAKKyAgLy8vIFxyZXR1cm4gbm9u
LXplcm8sIGJ1dCBKU09OX0FTU0VSVCBpZiB0aGlzIGlzIG5laXRoZXIgb2JqZWN0IG5vciBudWxs
VmFsdWUuCisgIFZhbHVlIGNvbnN0KiBkZW1hbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29u
c3QqIGVuZCk7CisgIC8vLyBcYnJpZWYgUmVtb3ZlIGFuZCByZXR1cm4gdGhlIG5hbWVkIG1lbWJl
ci4KKyAgLy8vCisgIC8vLyBEbyBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCisgIC8vLyBc
cmV0dXJuIHRoZSByZW1vdmVkIFZhbHVlLCBvciBudWxsLgorICAvLy8gXHByZSB0eXBlKCkgaXMg
b2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2Vk
CisgIC8vLyBcZGVwcmVjYXRlZAorICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5
KTsKKyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqKQorICAvLy8gXHBhcmFt
IGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgLy8vIFxkZXByZWNhdGVkCisgIFZh
bHVlIHJlbW92ZU1lbWJlcihjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKyAgLy8vIFNhbWUgYXMg
cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIFZhbHVlKiBy
ZW1vdmVkKSwKKyAgLy8vIGJ1dCAna2V5JyBpcyBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgcmVt
b3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSwgVmFsdWUqIHJlbW92ZWQpOworICAvKiogXGJyaWVm
IFJlbW92ZSB0aGUgbmFtZWQgbWFwIG1lbWJlci4KKworICAgICAgVXBkYXRlICdyZW1vdmVkJyBp
ZmYgcmVtb3ZlZC4KKyAgICAgIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMu
CisgICAgICBccmV0dXJuIHRydWUgaWZmIHJlbW92ZWQgKG5vIGV4Y2VwdGlvbnMpCisgICovCisg
IGJvb2wgcmVtb3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVk
KTsKKyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZh
bHVlKiByZW1vdmVkKQorICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29u
c3QgY2hhciogZW5kLCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVtb3ZlIHRoZSBp
bmRleGVkIGFycmF5IGVsZW1lbnQuCisKKyAgICAgIE8obikgZXhwZW5zaXZlIG9wZXJhdGlvbnMu
CisgICAgICBVcGRhdGUgJ3JlbW92ZWQnIGlmZiByZW1vdmVkLgorICAgICAgXHJldHVybiB0cnVl
IGlmZiByZW1vdmVkIChubyBleGNlcHRpb25zKQorICAqLworICBib29sIHJlbW92ZUluZGV4KEFy
cmF5SW5kZXggaSwgVmFsdWUqIHJlbW92ZWQpOworCisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUg
b2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisgIC8vLyBcbm90ZSAna2V5JyBtdXN0IGJl
IG51bGwtdGVybWluYXRlZC4KKyAgYm9vbCBpc01lbWJlcihjb25zdCBjaGFyKiBrZXkpIGNvbnN0
OworICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5
LgorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgYm9vbCBp
c01lbWJlcihjb25zdCBzdGQ6OnN0cmluZyYga2V5KSBjb25zdDsKKyAgLy8vIFNhbWUgYXMgaXNN
ZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSljb25zdAorICBib29sIGlzTWVtYmVyKGNvbnN0
IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpIGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQ
UFRMCisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBr
ZXkuCisgIGJvb2wgaXNNZW1iZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0
OworI2VuZGlmCisKKyAgLy8vIFxicmllZiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBtZW1iZXIgbmFt
ZXMuCisgIC8vLworICAvLy8gSWYgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IGxpc3QuCisgIC8vLyBc
cHJlIHR5cGUoKSBpcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IGlmIHR5
cGUoKSB3YXMgbnVsbFZhbHVlLCBpdCByZW1haW5zIG51bGxWYWx1ZQorICBNZW1iZXJzIGdldE1l
bWJlck5hbWVzKCkgY29uc3Q7CisKKyAgLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vICAg
ICAgRW51bU1lbWJlck5hbWVzIGVudW1NZW1iZXJOYW1lcygpIGNvbnN0OworICAvLyAgICAgIEVu
dW1WYWx1ZXMgZW51bVZhbHVlcygpIGNvbnN0OworICAvLyMgZW5kaWYKKworICAvLy8gXGRlcHJl
Y2F0ZWQgQWx3YXlzIHBhc3MgbGVuLgorICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBzZXRDb21t
ZW50KHN0ZDo6c3RyaW5nIGNvbnN0JikgaW5zdGVhZC4iKQorICB2b2lkIHNldENvbW1lbnQoY29u
c3QgY2hhciogY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICAvLy8gQ29t
bWVudHMgbXVzdCBiZSAvLy4uLiBvciAvKiAuLi4gKi8KKyAgdm9pZCBzZXRDb21tZW50KGNvbnN0
IGNoYXIqIGNvbW1lbnQsIHNpemVfdCBsZW4sIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsK
KyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZvaWQgc2V0Q29t
bWVudChjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpOworICBib29sIGhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0
OworICAvLy8gSW5jbHVkZSBkZWxpbWl0ZXJzIGFuZCBlbWJlZGRlZCBuZXdsaW5lcy4KKyAgc3Rk
OjpzdHJpbmcgZ2V0Q29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3Q7CisK
KyAgc3RkOjpzdHJpbmcgdG9TdHlsZWRTdHJpbmcoKSBjb25zdDsKKworICBjb25zdF9pdGVyYXRv
ciBiZWdpbigpIGNvbnN0OworICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsKKworICBpdGVy
YXRvciBiZWdpbigpOworICBpdGVyYXRvciBlbmQoKTsKKworICAvLyBBY2Nlc3NvcnMgZm9yIHRo
ZSBbc3RhcnQsIGxpbWl0KSByYW5nZSBvZiBieXRlcyB3aXRoaW4gdGhlIEpTT04gdGV4dCBmcm9t
CisgIC8vIHdoaWNoIHRoaXMgdmFsdWUgd2FzIHBhcnNlZCwgaWYgYW55LgorICB2b2lkIHNldE9m
ZnNldFN0YXJ0KHNpemVfdCBzdGFydCk7CisgIHZvaWQgc2V0T2Zmc2V0TGltaXQoc2l6ZV90IGxp
bWl0KTsKKyAgc2l6ZV90IGdldE9mZnNldFN0YXJ0KCkgY29uc3Q7CisgIHNpemVfdCBnZXRPZmZz
ZXRMaW1pdCgpIGNvbnN0OworCitwcml2YXRlOgorICB2b2lkIGluaXRCYXNpYyhWYWx1ZVR5cGUg
dHlwZSwgYm9vbCBhbGxvY2F0ZWQgPSBmYWxzZSk7CisKKyAgVmFsdWUmIHJlc29sdmVSZWZlcmVu
Y2UoY29uc3QgY2hhcioga2V5KTsKKyAgVmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hh
cioga2V5LCBjb25zdCBjaGFyKiBlbmQpOworCisgIHN0cnVjdCBDb21tZW50SW5mbyB7CisgICAg
Q29tbWVudEluZm8oKTsKKyAgICB+Q29tbWVudEluZm8oKTsKKworICAgIHZvaWQgc2V0Q29tbWVu
dChjb25zdCBjaGFyKiB0ZXh0LCBzaXplX3QgbGVuKTsKKworICAgIGNoYXIqIGNvbW1lbnRfOwor
ICB9OworCisgIC8vIHN0cnVjdCBNZW1iZXJOYW1lc1RyYW5zZm9ybQorICAvL3sKKyAgLy8gICB0
eXBlZGVmIGNvbnN0IGNoYXIgKnJlc3VsdF90eXBlOworICAvLyAgIGNvbnN0IGNoYXIgKm9wZXJh
dG9yKCkoIGNvbnN0IENaU3RyaW5nICZuYW1lICkgY29uc3QKKyAgLy8gICB7CisgIC8vICAgICAg
cmV0dXJuIG5hbWUuY19zdHIoKTsKKyAgLy8gICB9CisgIC8vfTsKKworICB1bmlvbiBWYWx1ZUhv
bGRlciB7CisgICAgTGFyZ2VzdEludCBpbnRfOworICAgIExhcmdlc3RVSW50IHVpbnRfOworICAg
IGRvdWJsZSByZWFsXzsKKyAgICBib29sIGJvb2xfOworICAgIGNoYXIqIHN0cmluZ187ICAvLyBh
Y3R1YWxseSBwdHIgdG8gdW5zaWduZWQsIGZvbGxvd2VkIGJ5IHN0ciwgdW5sZXNzICFhbGxvY2F0
ZWRfCisgICAgT2JqZWN0VmFsdWVzKiBtYXBfOworICB9IHZhbHVlXzsKKyAgVmFsdWVUeXBlIHR5
cGVfIDogODsKKyAgdW5zaWduZWQgaW50IGFsbG9jYXRlZF8gOiAxOyAvLyBOb3RlczogaWYgZGVj
bGFyZWQgYXMgYm9vbCwgYml0ZmllbGQgaXMgdXNlbGVzcy4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBJZiBub3QgYWxsb2NhdGVkXywgc3RyaW5nXyBtdXN0IGJlIG51bGwtdGVy
bWluYXRlZC4KKyAgQ29tbWVudEluZm8qIGNvbW1lbnRzXzsKKyAgVmFsdWUgKmRlZmF1bHRfdmFs
dWVfOyAgLy8gaWYgdmlhIC5nZXQoICJrZXkiLCBkZWZhdWx0ICksIHRoaXMgd2FzIHRoZSBkZWZh
dWx0CisKKyAgLy8gW3N0YXJ0LCBsaW1pdCkgYnl0ZSBvZmZzZXRzIGluIHRoZSBzb3VyY2UgSlNP
TiB0ZXh0IGZyb20gd2hpY2ggdGhpcyBWYWx1ZQorICAvLyB3YXMgZXh0cmFjdGVkLgorICBzaXpl
X3Qgc3RhcnRfOworICBzaXplX3QgbGltaXRfOworfTsKKworLyoqIFxicmllZiBFeHBlcmltZW50
YWwgYW5kIHVudGVzdGVkOiByZXByZXNlbnRzIGFuIGVsZW1lbnQgb2YgdGhlICJwYXRoIiB0bwor
ICogYWNjZXNzIGEgbm9kZS4KKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aEFyZ3VtZW50IHsKK3B1
YmxpYzoKKyAgZnJpZW5kIGNsYXNzIFBhdGg7CisKKyAgUGF0aEFyZ3VtZW50KCk7CisgIFBhdGhB
cmd1bWVudChBcnJheUluZGV4IGluZGV4KTsKKyAgUGF0aEFyZ3VtZW50KGNvbnN0IGNoYXIqIGtl
eSk7CisgIFBhdGhBcmd1bWVudChjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKworcHJpdmF0ZToK
KyAgZW51bSBLaW5kIHsKKyAgICBraW5kTm9uZSA9IDAsCisgICAga2luZEluZGV4LAorICAgIGtp
bmRLZXkKKyAgfTsKKyAgc3RkOjpzdHJpbmcga2V5XzsKKyAgQXJyYXlJbmRleCBpbmRleF87Cisg
IEtpbmQga2luZF87Cit9OworCisvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6
IHJlcHJlc2VudHMgYSAicGF0aCIgdG8gYWNjZXNzIGEgbm9kZS4KKyAqCisgKiBTeW50YXg6Cisg
KiAtICIuIiA9PiByb290IG5vZGUKKyAqIC0gIi5bbl0iID0+IGVsZW1lbnRzIGF0IGluZGV4ICdu
JyBvZiByb290IG5vZGUgKGFuIGFycmF5IHZhbHVlKQorICogLSAiLm5hbWUiID0+IG1lbWJlciBu
YW1lZCAnbmFtZScgb2Ygcm9vdCBub2RlIChhbiBvYmplY3QgdmFsdWUpCisgKiAtICIubmFtZTEu
bmFtZTIubmFtZTMiCisgKiAtICIuWzBdWzFdWzJdLm5hbWUxWzNdIgorICogLSAiLiUiID0+IG1l
bWJlciBuYW1lIGlzIHByb3ZpZGVkIGFzIHBhcmFtZXRlcgorICogLSAiLlslXSIgPT4gaW5kZXgg
aXMgcHJvdmllZCBhcyBwYXJhbWV0ZXIKKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aCB7CitwdWJs
aWM6CisgIFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsCisgICAgICAgY29uc3QgUGF0aEFy
Z3VtZW50JiBhMSA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYg
YTIgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEzID0gUGF0
aEFyZ3VtZW50KCksCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNCA9IFBhdGhBcmd1bWVu
dCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTUgPSBQYXRoQXJndW1lbnQoKSk7CisK
KyAgY29uc3QgVmFsdWUmIHJlc29sdmUoY29uc3QgVmFsdWUmIHJvb3QpIGNvbnN0OworICBWYWx1
ZSByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBj
b25zdDsKKyAgLy8vIENyZWF0ZXMgdGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBu
b2RlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlIG9uCisgIC8vLyB0aGUgbm9kZS4KKyAgVmFsdWUm
IG1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0OworCitwcml2YXRlOgorICB0eXBlZGVmIHN0ZDo6dmVj
dG9yPGNvbnN0IFBhdGhBcmd1bWVudCo+IEluQXJnczsKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxQ
YXRoQXJndW1lbnQ+IEFyZ3M7CisKKyAgdm9pZCBtYWtlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYg
cGF0aCwgY29uc3QgSW5BcmdzJiBpbik7CisgIHZvaWQgYWRkUGF0aEluQXJnKGNvbnN0IHN0ZDo6
c3RyaW5nJiBwYXRoLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAg
ICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAg
ICAgICAgICAgICAgICBQYXRoQXJndW1lbnQ6OktpbmQga2luZCk7CisgIHZvaWQgaW52YWxpZFBh
dGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGludCBsb2NhdGlvbik7CisKKyAgQXJncyBhcmdz
XzsKK307CisKKy8qKiBcYnJpZWYgYmFzZSBjbGFzcyBmb3IgVmFsdWUgaXRlcmF0b3JzLgorICoK
KyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvckJhc2UgeworcHVibGljOgorICB0eXBl
ZGVmIHN0ZDo6YmlkaXJlY3Rpb25hbF9pdGVyYXRvcl90YWcgaXRlcmF0b3JfY2F0ZWdvcnk7Cisg
IHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90
eXBlOworICB0eXBlZGVmIFZhbHVlSXRlcmF0b3JCYXNlIFNlbGZUeXBlOworCisgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGlzRXF1YWwob3Ro
ZXIpOyB9CisKKyAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gIWlzRXF1YWwob3RoZXIpOyB9CisKKyAgZGlmZmVyZW5jZV90eXBlIG9wZXJhdG9y
LShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gb3RoZXIuY29tcHV0
ZURpc3RhbmNlKCp0aGlzKTsKKyAgfQorCisgIC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBv
ciB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYQorICAvLy8gVmFs
dWUuCisgIFZhbHVlIGtleSgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gdGhlIGluZGV4IG9mIHRo
ZSByZWZlcmVuY2VkIFZhbHVlLCBvciAtMSBpZiBpdCBpcyBub3QgYW4gYXJyYXlWYWx1ZS4KKyAg
VUludCBpbmRleCgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRo
ZSByZWZlcmVuY2VkIFZhbHVlLCBvciAiIiBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZh
bHVlLgorICAvLy8gXG5vdGUgQXZvaWQgYGNfc3RyKClgIG9uIHJlc3VsdCwgYXMgZW1iZWRkZWQg
emVyb2VzIGFyZSBwb3NzaWJsZS4KKyAgc3RkOjpzdHJpbmcgbmFtZSgpIGNvbnN0OworCisgIC8v
LyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBp
dCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXGRlcHJlY2F0ZWQgVGhpcyBj
YW5ub3QgYmUgdXNlZCBmb3IgVVRGLTggc3RyaW5ncywgc2luY2UgdGhlcmUgY2FuIGJlIGVtYmVk
ZGVkIG51bGxzLgorICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBga2V5ID0gbmFtZSgpO2AgaW5z
dGVhZC4iKQorICBjaGFyIGNvbnN0KiBtZW1iZXJOYW1lKCkgY29uc3Q7CisgIC8vLyBSZXR1cm4g
dGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLCBvciBOVUxMIGlmIGl0IGlz
IG5vdCBhbgorICAvLy8gb2JqZWN0VmFsdWUuCisgIC8vLyBcbm90ZSBCZXR0ZXIgdmVyc2lvbiB0
aGFuIG1lbWJlck5hbWUoKS4gQWxsb3dzIGVtYmVkZGVkIG51bGxzLgorICBjaGFyIGNvbnN0KiBt
ZW1iZXJOYW1lKGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgIFZhbHVl
JiBkZXJlZigpIGNvbnN0OworCisgIHZvaWQgaW5jcmVtZW50KCk7CisKKyAgdm9pZCBkZWNyZW1l
bnQoKTsKKworICBkaWZmZXJlbmNlX3R5cGUgY29tcHV0ZURpc3RhbmNlKGNvbnN0IFNlbGZUeXBl
JiBvdGhlcikgY29uc3Q7CisKKyAgYm9vbCBpc0VxdWFsKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikg
Y29uc3Q7CisKKyAgdm9pZCBjb3B5KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7CisKK3ByaXZhdGU6
CisgIFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGN1cnJlbnRfOworICAvLyBJbmRpY2F0
ZXMgdGhhdCBpdGVyYXRvciBpcyBmb3IgYSBudWxsIHZhbHVlLgorICBib29sIGlzTnVsbF87CisK
K3B1YmxpYzoKKyAgLy8gRm9yIHNvbWUgcmVhc29uLCBCT1JMQU5EIG5lZWRzIHRoZXNlIGF0IHRo
ZSBlbmQsIHJhdGhlcgorICAvLyB0aGFuIGVhcmxpZXIuIE5vIGlkZWEgd2h5LgorICBWYWx1ZUl0
ZXJhdG9yQmFzZSgpOworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yQmFzZShjb25zdCBWYWx1ZTo6
T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCk7Cit9OworCisvKiogXGJyaWVmIGNvbnN0
IGl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVlLgorICoKKyAqLworY2xhc3MgSlNP
Tl9BUEkgVmFsdWVDb25zdEl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlIHsKKyAg
ZnJpZW5kIGNsYXNzIFZhbHVlOworCitwdWJsaWM6CisgIHR5cGVkZWYgY29uc3QgVmFsdWUgdmFs
dWVfdHlwZTsKKyAgLy90eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIC8vdHlwZWRlZiBp
bnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIGNvbnN0IFZhbHVlJiByZWZlcmVuY2U7Cisg
IHR5cGVkZWYgY29uc3QgVmFsdWUqIHBvaW50ZXI7CisgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJh
dG9yIFNlbGZUeXBlOworCisgIFZhbHVlQ29uc3RJdGVyYXRvcigpOworICBWYWx1ZUNvbnN0SXRl
cmF0b3IoVmFsdWVJdGVyYXRvciBjb25zdCYgb3RoZXIpOworCitwcml2YXRlOgorLyohIFxpbnRl
cm5hbCBVc2UgYnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgorICovCisgIGV4cGxpY2l0
IFZhbHVlQ29uc3RJdGVyYXRvcihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYg
Y3VycmVudCk7CitwdWJsaWM6CisgIFNlbGZUeXBlJiBvcGVyYXRvcj0oY29uc3QgVmFsdWVJdGVy
YXRvckJhc2UmIG90aGVyKTsKKworICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkgeworICAgIFNl
bGZUeXBlIHRlbXAoKnRoaXMpOworICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0K
KworICBTZWxmVHlwZSBvcGVyYXRvci0tKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMp
OworICAgIC0tKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSYgb3Bl
cmF0b3ItLSgpIHsKKyAgICBkZWNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKwor
ICBTZWxmVHlwZSYgb3BlcmF0b3IrKygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAgICByZXR1cm4g
KnRoaXM7CisgIH0KKworICByZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gZGVy
ZWYoKTsgfQorCisgIHBvaW50ZXIgb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZkZXJlZigp
OyB9Cit9OworCisvKiogXGJyaWVmIEl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVl
LgorICovCitjbGFzcyBKU09OX0FQSSBWYWx1ZUl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0
b3JCYXNlIHsKKyAgZnJpZW5kIGNsYXNzIFZhbHVlOworCitwdWJsaWM6CisgIHR5cGVkZWYgVmFs
dWUgdmFsdWVfdHlwZTsKKyAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OworICB0eXBlZGVm
IGludCBkaWZmZXJlbmNlX3R5cGU7CisgIHR5cGVkZWYgVmFsdWUmIHJlZmVyZW5jZTsKKyAgdHlw
ZWRlZiBWYWx1ZSogcG9pbnRlcjsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIFNlbGZUeXBlOwor
CisgIFZhbHVlSXRlcmF0b3IoKTsKKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1
ZUNvbnN0SXRlcmF0b3ImIG90aGVyKTsKKyAgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUl0ZXJh
dG9yJiBvdGhlcik7CisKK3ByaXZhdGU6CisvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBj
cmVhdGUgYW4gaXRlcmF0b3IuCisgKi8KKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBW
YWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCk7CitwdWJsaWM6CisgIFNlbGZU
eXBlJiBvcGVyYXRvcj0oY29uc3QgU2VsZlR5cGUmIG90aGVyKTsKKworICBTZWxmVHlwZSBvcGVy
YXRvcisrKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgICsrKnRoaXM7Cisg
ICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSBvcGVyYXRvci0tKGludCkgeworICAg
IFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgIC0tKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7Cisg
IH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3ItLSgpIHsKKyAgICBkZWNyZW1lbnQoKTsKKyAgICBy
ZXR1cm4gKnRoaXM7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3IrKygpIHsKKyAgICBpbmNy
ZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICByZWZlcmVuY2Ugb3BlcmF0b3Iq
KCkgY29uc3QgeyByZXR1cm4gZGVyZWYoKTsgfQorCisgIHBvaW50ZXIgb3BlcmF0b3ItPigpIGNv
bnN0IHsgcmV0dXJuICZkZXJlZigpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKwor
bmFtZXNwYWNlIHN0ZCB7CisvLy8gU3BlY2lhbGl6ZSBzdGQ6OnN3YXAoKSBmb3IgSnNvbjo6VmFs
dWUuCit0ZW1wbGF0ZTw+CitpbmxpbmUgdm9pZCBzd2FwKEpzb246OlZhbHVlJiBhLCBKc29uOjpW
YWx1ZSYgYikgeyBhLnN3YXAoYik7IH0KK30KKworCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FC
TEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAv
LyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNl
bmRpZiAvLyBDUFBUTF9KU09OX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5k
IG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZhbHVlLmgKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50
IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9yZWFkZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisj
aWZuZGVmIENQUFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9S
RUFERVJfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisj
aW5jbHVkZSAiZmVhdHVyZXMuaCIKKyNpbmNsdWRlICJ2YWx1ZS5oIgorI2VuZGlmIC8vIGlmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPGRlcXVlPgorI2luY2x1ZGUg
PGlvc2Z3ZD4KKyNpbmNsdWRlIDxzdGFjaz4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8
aXN0cmVhbT4KKworLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1iZXI+OiA8dHlw
ZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1c2VkIGJ5Li4uCisjaWYg
ZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3
YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCisjZW5kaWYgLy8g
aWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCituYW1l
c3BhY2UgSnNvbiB7CisKKy8qKiBcYnJpZWYgVW5zZXJpYWxpemUgYSA8YSBIUkVGPSJodHRwOi8v
d3d3Lmpzb24ub3JnIj5KU09OPC9hPiBkb2N1bWVudCBpbnRvIGEKKyAqVmFsdWUuCisgKgorICog
XGRlcHJlY2F0ZWQgVXNlIENoYXJSZWFkZXIgYW5kIENoYXJSZWFkZXJCdWlsZGVyLgorICovCitj
bGFzcyBKU09OX0FQSSBSZWFkZXIgeworcHVibGljOgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAg
dHlwZWRlZiBjb25zdCBDaGFyKiBMb2NhdGlvbjsKKworICAvKiogXGJyaWVmIEFuIGVycm9yIHRh
Z2dlZCB3aXRoIHdoZXJlIGluIHRoZSBKU09OIHRleHQgaXQgd2FzIGVuY291bnRlcmVkLgorICAg
KgorICAgKiBUaGUgb2Zmc2V0cyBnaXZlIHRoZSBbc3RhcnQsIGxpbWl0KSByYW5nZSBvZiBieXRl
cyB3aXRoaW4gdGhlIHRleHQuIE5vdGUKKyAgICogdGhhdCB0aGlzIGlzIGJ5dGVzLCBub3QgY29k
ZXBvaW50cy4KKyAgICoKKyAgICovCisgIHN0cnVjdCBTdHJ1Y3R1cmVkRXJyb3IgeworICAgIHNp
emVfdCBvZmZzZXRfc3RhcnQ7CisgICAgc2l6ZV90IG9mZnNldF9saW1pdDsKKyAgICBzdGQ6OnN0
cmluZyBtZXNzYWdlOworICB9OworCisgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBh
bGxvd2luZyBhbGwgZmVhdHVyZXMKKyAgICogZm9yIHBhcnNpbmcuCisgICAqLworICBSZWFkZXIo
KTsKKworICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgdGhlIHNwZWNp
ZmllZCBmZWF0dXJlIHNldAorICAgKiBmb3IgcGFyc2luZy4KKyAgICovCisgIFJlYWRlcihjb25z
dCBGZWF0dXJlcyYgZmVhdHVyZXMpOworCisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20g
YSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgorICAgKiBkb2N1bWVudC4K
KyAgICogXHBhcmFtIGRvY3VtZW50IFVURi04IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhl
IGRvY3VtZW50IHRvIHJlYWQuCisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSBy
b290IHZhbHVlIG9mIHRoZSBkb2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3Vj
Y2Vzc2Z1bGx5IHBhcnNlZC4KKyAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRv
IGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICAqIGJhY2sgZHVyaW5n
CisgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbiwgXGMgZmFsc2UgdG8g
ZGlzY2FyZCBjb21tZW50cy4KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFt
ZXRlciBpcyBpZ25vcmVkIGlmCisgICAqIEZlYXR1cmVzOjphbGxvd0NvbW1lbnRzXworICAgKiAg
ICAgICAgICAgICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgorICAgKiBccmV0dXJuIFxjIHRydWUg
aWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgor
ICAgKiBlcnJvciBvY2N1cnJlZC4KKyAgICovCisgIGJvb2wKKyAgcGFyc2UoY29uc3Qgc3RkOjpz
dHJpbmcmIGRvY3VtZW50LCBWYWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVl
KTsKKworICAvKiogXGJyaWVmIFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3
dy5qc29uLm9yZyI+SlNPTjwvYT4KKyAgIGRvY3VtZW50LgorICAgKiBccGFyYW0gYmVnaW5Eb2Mg
UG9pbnRlciBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0
aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqIFxwYXJhbSBlbmREb2MgUG9pbnRlciBvbiB0
aGUgZW5kIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRv
IHJlYWQuCisgICAqICAgICAgICAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KKyAgICogXHBh
cmFtIHJvb3QgW291dF0gQ29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlm
IGl0IHdhcworICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFy
YW0gY29sbGVjdENvbW1lbnRzIFxjIHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3
cml0aW5nIHRoZW0KKyAgIGJhY2sgZHVyaW5nCisgICAqICAgICAgICAgICAgICAgICAgICAgICAg
c2VyaWFsaXphdGlvbiwgXGMgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAgICogICAgICAg
ICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmCisgICBGZWF0dXJl
czo6YWxsb3dDb21tZW50c18KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxz
ZS4KKyAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5
IHBhcnNlZCwgXGMgZmFsc2UgaWYgYW4KKyAgIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgYm9v
bCBwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAgICBjb25zdCBjaGFyKiBl
bmREb2MsCisgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMgPSB0cnVlKTsKKworICAvLy8gXGJyaWVmIFBhcnNlIGZyb20gaW5wdXQgc3Ry
ZWFtLgorICAvLy8gXHNlZSBKc29uOjpvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYsIEpzb246OlZh
bHVlJikuCisgIGJvb2wgcGFyc2Uoc3RkOjppc3RyZWFtJiBpcywgVmFsdWUmIHJvb3QsIGJvb2wg
Y29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBm
cmllbmRseSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3Vt
ZW50LgorICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qg
b2YgZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUg
cGFyc2VkIGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IK
KyAgICogb2NjdXJyZWQKKyAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICogXGRlcHJl
Y2F0ZWQgVXNlIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBpbnN0ZWFkICh0eXBvIGZpeCku
CisgICAqLworICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3Nh
Z2VzKCkgaW5zdGVhZC4iKQorICBzdGQ6OnN0cmluZyBnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMo
KSBjb25zdDsKKworICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0
aGF0IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1
cm4gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0
aGVpciBsb2NhdGlvbgorICAgKiBpbgorICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQu
IEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvcgorICAgKiBvY2N1cnJlZAor
ICAgKiAgICAgICAgIGR1cmluZyBwYXJzaW5nLgorICAgKi8KKyAgc3RkOjpzdHJpbmcgZ2V0Rm9y
bWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OworCisgIC8qKiBcYnJpZWYgUmV0dXJucyBhIHZl
Y3RvciBvZiBzdHJ1Y3R1cmVkIGVycm9zIGVuY291bnRlZCB3aGlsZSBwYXJzaW5nLgorICAgKiBc
cmV0dXJuIEEgKHBvc3NpYmx5IGVtcHR5KSB2ZWN0b3Igb2YgU3RydWN0dXJlZEVycm9yIG9iamVj
dHMuIEN1cnJlbnRseQorICAgKiAgICAgICAgIG9ubHkgb25lIGVycm9yIGNhbiBiZSByZXR1cm5l
ZCwgYnV0IHRoZSBjYWxsZXIgc2hvdWxkIHRvbGVyYXRlCisgICAqIG11bHRpcGxlCisgICAqICAg
ICAgICAgZXJyb3JzLiAgVGhpcyBjYW4gb2NjdXIgaWYgdGhlIHBhcnNlciByZWNvdmVycyBmcm9t
IGEgbm9uLWZhdGFsCisgICAqICAgICAgICAgcGFyc2UgZXJyb3IgYW5kIHRoZW4gZW5jb3VudGVy
cyBhZGRpdGlvbmFsIGVycm9ycy4KKyAgICovCisgIHN0ZDo6dmVjdG9yPFN0cnVjdHVyZWRFcnJv
cj4gZ2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0OworCisgIC8qKiBcYnJpZWYgQWRkIGEgc2Vt
YW50aWMgZXJyb3IgbWVzc2FnZS4KKyAgICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRp
b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvcgorICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJy
b3IgbWVzc2FnZS4KKyAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZSBlcnJvciB3YXMgc3VjY2Vz
c2Z1bGx5IGFkZGVkLCBcYyBmYWxzZSBpZiB0aGUKKyAgICogVmFsdWUgb2Zmc2V0IGV4Y2VlZHMg
dGhlIGRvY3VtZW50IHNpemUuCisgICAqLworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYg
dmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKTsKKworICAvKiogXGJyaWVmIEFkZCBh
IHNlbWFudGljIGVycm9yIG1lc3NhZ2Ugd2l0aCBleHRyYSBjb250ZXh0LgorICAgKiBccGFyYW0g
dmFsdWUgSlNPTiBWYWx1ZSBsb2NhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisgICAq
IFxwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gZXh0cmEgQWRk
aXRpb25hbCBKU09OIFZhbHVlIGxvY2F0aW9uIHRvIGNvbnRleHR1YWxpemUgdGhlIGVycm9yCisg
ICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwg
XGMgZmFsc2UgaWYgZWl0aGVyCisgICAqIFZhbHVlIG9mZnNldCBleGNlZWRzIHRoZSBkb2N1bWVu
dCBzaXplLgorICAgKi8KKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25z
dCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKworICAvKiogXGJy
aWVmIFJldHVybiB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgZXJyb3JzLgorICAgKiBccmV0dXJuIFxj
IHRydWUgaWYgdGhlcmUgYXJlIG5vIGVycm9ycyB0byByZXBvcnQgXGMgZmFsc2UgaWYKKyAgICog
ZXJyb3JzIGhhdmUgb2NjdXJyZWQuCisgICAqLworICBib29sIGdvb2QoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgZW51bSBUb2tlblR5cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAg
IHRva2VuT2JqZWN0QmVnaW4sCisgICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJl
Z2luLAorICAgIHRva2VuQXJyYXlFbmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1i
ZXIsCisgICAgdG9rZW5UcnVlLAorICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAg
IHRva2VuQXJyYXlTZXBhcmF0b3IsCisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9r
ZW5Db21tZW50LAorICAgIHRva2VuRXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1
YmxpYzoKKyAgICBUb2tlblR5cGUgdHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExv
Y2F0aW9uIGVuZF87CisgIH07CisKKyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAg
IFRva2VuIHRva2VuXzsKKyAgICBzdGQ6OnN0cmluZyBtZXNzYWdlXzsKKyAgICBMb2NhdGlvbiBl
eHRyYV87CisgIH07CisKKyAgdHlwZWRlZiBzdGQ6OmRlcXVlPEVycm9ySW5mbz4gRXJyb3JzOwor
CisgIGJvb2wgcmVhZFRva2VuKFRva2VuJiB0b2tlbik7CisgIHZvaWQgc2tpcFNwYWNlcygpOwor
ICBib29sIG1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKTsKKyAgYm9v
bCByZWFkQ29tbWVudCgpOworICBib29sIHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVh
ZENwcFN0eWxlQ29tbWVudCgpOworICBib29sIHJlYWRTdHJpbmcoKTsKKyAgdm9pZCByZWFkTnVt
YmVyKCk7CisgIGJvb2wgcmVhZFZhbHVlKCk7CisgIGJvb2wgcmVhZE9iamVjdChUb2tlbiYgdG9r
ZW4pOworICBib29sIHJlYWRBcnJheShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJl
cihUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVl
JiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBk
ZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCk7CisgIGJvb2wg
ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0
b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9r
ZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJl
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGRl
Y29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgYWRkRXJyb3IoY29uc3Qg
c3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEgPSAwKTsK
KyAgYm9vbCByZWNvdmVyRnJvbUVycm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIGJv
b2wgYWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsK
KyAgVmFsdWUmIGN1cnJlbnRWYWx1ZSgpOworICBDaGFyIGdldE5leHRDaGFyKCk7CisgIHZvaWQK
KyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLCBpbnQmIGxpbmUs
IGludCYgY29sdW1uKSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25MaW5lQW5kQ29s
dW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25T
bmlwcGV0KExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21tZW50KExvY2F0
aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAg
dm9pZCBza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pOworCisgIHR5cGVkZWYgc3RkOjpz
dGFjazxWYWx1ZSo+IE5vZGVzOworICBOb2RlcyBub2Rlc187CisgIEVycm9ycyBlcnJvcnNfOwor
ICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIExvY2F0aW9uIGJlZ2luXzsKKyAgTG9jYXRpb24g
ZW5kXzsKKyAgTG9jYXRpb24gY3VycmVudF87CisgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF87Cisg
IFZhbHVlKiBsYXN0VmFsdWVfOworICBzdGQ6OnN0cmluZyBjb21tZW50c0JlZm9yZV87CisgIEZl
YXR1cmVzIGZlYXR1cmVzXzsKKyAgYm9vbCBjb2xsZWN0Q29tbWVudHNfOworfTsgIC8vIFJlYWRl
cgorCisvKiogSW50ZXJmYWNlIGZvciByZWFkaW5nIEpTT04gZnJvbSBhIGNoYXIgYXJyYXkuCisg
Ki8KK2NsYXNzIEpTT05fQVBJIENoYXJSZWFkZXIgeworcHVibGljOgorICB2aXJ0dWFsIH5DaGFy
UmVhZGVyKCkge30KKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0
dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+CisgICBkb2N1bWVudC4KKyAgICogVGhlIGRvY3Vt
ZW50IG11c3QgYmUgYSBVVEYtOCBlbmNvZGVkIHN0cmluZyBjb250YWluaW5nIHRoZSBkb2N1bWVu
dCB0byByZWFkLgorICAgKgorICAgKiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVn
aW5uaW5nIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRv
IHJlYWQuCisgICAqIFxwYXJhbSBlbmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYt
OCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAg
ICBNdXN0IGJlID49IGJlZ2luRG9jLgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0
aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAgICAgICAg
IHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBlcnJzIFtvdXRdIEZvcm1hdHRlZCBl
cnJvciBtZXNzYWdlcyAoaWYgbm90IE5VTEwpCisgICAqICAgICAgICBhIHVzZXIgZnJpZW5kbHkg
c3RyaW5nIHRoYXQgbGlzdHMgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisg
ICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJz
ZWQsIFxjIGZhbHNlIGlmIGFuCisgICBlcnJvciBvY2N1cnJlZC4KKyAgICovCisgIHZpcnR1YWwg
Ym9vbCBwYXJzZSgKKyAgICAgIGNoYXIgY29uc3QqIGJlZ2luRG9jLCBjaGFyIGNvbnN0KiBlbmRE
b2MsCisgICAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMpID0gMDsKKworICBjbGFz
cyBKU09OX0FQSSBGYWN0b3J5IHsKKyAgcHVibGljOgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKSB7
fQorICAgIC8qKiBcYnJpZWYgQWxsb2NhdGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXco
KS4KKyAgICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcg
KGUuZy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJSZWFkZXIq
IG5ld0NoYXJSZWFkZXIoKSBjb25zdCA9IDA7CisgIH07ICAvLyBGYWN0b3J5Cit9OyAgLy8gQ2hh
clJlYWRlcgorCisvKiogXGJyaWVmIEJ1aWxkIGEgQ2hhclJlYWRlciBpbXBsZW1lbnRhdGlvbi4K
KworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgQ2hhclJlYWRlckJ1
aWxkZXIgYnVpbGRlcjsKKyAgYnVpbGRlclsiY29sbGVjdENvbW1lbnRzIl0gPSBmYWxzZTsKKyAg
VmFsdWUgdmFsdWU7CisgIHN0ZDo6c3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSBwYXJzZUZyb21T
dHJlYW0oYnVpbGRlciwgc3RkOjpjaW4sICZ2YWx1ZSwgJmVycnMpOworXGVuZGNvZGUKKyovCitj
bGFzcyBKU09OX0FQSSBDaGFyUmVhZGVyQnVpbGRlciA6IHB1YmxpYyBDaGFyUmVhZGVyOjpGYWN0
b3J5IHsKK3B1YmxpYzoKKyAgLy8gTm90ZTogV2UgdXNlIGEgSnNvbjo6VmFsdWUgc28gdGhhdCB3
ZSBjYW4gYWRkIGRhdGEtbWVtYmVycyB0byB0aGlzIGNsYXNzCisgIC8vIHdpdGhvdXQgYSBtYWpv
ciB2ZXJzaW9uIGJ1bXAuCisgIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoaXMgYnVpbGRlci4KKyAg
ICBUaGVzZSBhcmUgY2FzZS1zZW5zaXRpdmUuCisgICAgQXZhaWxhYmxlIHNldHRpbmdzIChjYXNl
LXNlbnNpdGl2ZSk6CisgICAgLSBgImNvbGxlY3RDb21tZW50cyI6IGZhbHNlIG9yIHRydWVgCisg
ICAgICAtIHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAg
ICAgICAgYmFjayBkdXJpbmcgc2VyaWFsaXphdGlvbiwgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50
cy4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBhbGxvd0NvbW1lbnRzIGlz
IGZhbHNlLgorICAgIC0gYCJhbGxvd0NvbW1lbnRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0g
dHJ1ZSBpZiBjb21tZW50cyBhcmUgYWxsb3dlZC4KKyAgICAtIGAic3RyaWN0Um9vdCI6IGZhbHNl
IG9yIHRydWVgCisgICAgICAtIHRydWUgaWYgcm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBv
ciBhbiBvYmplY3QgdmFsdWUKKyAgICAtIGAiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyI6
IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgaWYgZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVy
cyBhcmUgYWxsb3dlZC4gKFNlZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLikKKyAgICAtIGAiYWxsb3dO
dW1lcmljS2V5cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgaWYgbnVtZXJpYyBvYmpl
Y3Qga2V5cyBhcmUgYWxsb3dlZC4KKyAgICAtIGAiYWxsb3dTaW5nbGVRdW90ZXMiOiBmYWxzZSBv
ciB0cnVlYAorICAgICAgLSB0cnVlIGlmICcnIGFyZSBhbGxvd2VkIGZvciBzdHJpbmdzIChib3Ro
IGtleXMgYW5kIHZhbHVlcykKKyAgICAtIGAic3RhY2tMaW1pdCI6IGludGVnZXJgCisgICAgICAt
IEV4Y2VlZGluZyBzdGFja0xpbWl0IChyZWN1cnNpdmUgZGVwdGggb2YgYHJlYWRWYWx1ZSgpYCkg
d2lsbAorICAgICAgICBjYXVzZSBhbiBleGNlcHRpb24uCisgICAgICAtIFRoaXMgaXMgYSBzZWN1
cml0eSBpc3N1ZSAoc2VnLWZhdWx0cyBjYXVzZWQgYnkgZGVlcGx5IG5lc3RlZCBKU09OKSwKKyAg
ICAgICAgc28gdGhlIGRlZmF1bHQgaXMgbG93LgorICAgIC0gYCJmYWlsSWZFeHRyYSI6IGZhbHNl
IG9yIHRydWVgCisgICAgICAtIElmIHRydWUsIGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4g
ZXh0cmEgbm9uLXdoaXRlc3BhY2UgdHJhaWxzCisgICAgICAgIHRoZSBKU09OIHZhbHVlIGluIHRo
ZSBpbnB1dCBzdHJpbmcuCisgICAgLSBgInJlamVjdER1cEtleXMiOiBmYWxzZSBvciB0cnVlYAor
ICAgICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0dXJucyBmYWxzZSB3aGVuIGEga2V5IGlzIGR1
cGxpY2F0ZWQgd2l0aGluIGFuIG9iamVjdC4KKyAgICAtIGAiYWxsb3dTcGVjaWFsRmxvYXRzIjog
ZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gSWYgdHJ1ZSwgc3BlY2lhbCBmbG9hdCB2YWx1ZXMgKE5h
TnMgYW5kIGluZmluaXRpZXMpIGFyZSBhbGxvd2VkIAorICAgICAgICBhbmQgdGhlaXIgdmFsdWVz
IGFyZSBsb3NzZnJlZSByZXN0b3JhYmxlLgorCisgICAgWW91IGNhbiBleGFtaW5lICdzZXR0aW5n
c19gIHlvdXJzZWxmCisgICAgdG8gc2VlIHRoZSBkZWZhdWx0cy4gWW91IGNhbiBhbHNvIHdyaXRl
IGFuZCByZWFkIHRoZW0ganVzdCBsaWtlIGFueQorICAgIEpTT04gVmFsdWUuCisgICAgXHNhIHNl
dERlZmF1bHRzKCkKKyAgICAqLworICBKc29uOjpWYWx1ZSBzZXR0aW5nc187CisKKyAgQ2hhclJl
YWRlckJ1aWxkZXIoKTsKKyAgfkNoYXJSZWFkZXJCdWlsZGVyKCk7CisKKyAgQ2hhclJlYWRlciog
bmV3Q2hhclJlYWRlcigpIGNvbnN0OworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdz
JyBhcmUgbGVnYWwgYW5kIGNvbnNpc3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBi
YWQgc2V0dGluZ3MgdmlhICdpbnZhbGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6
VmFsdWUqIGludmFsaWQpIGNvbnN0OworCisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEg
c3BlY2lmaWMgc2V0dGluZy4KKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6c3RyaW5n
IGtleSk7CisKKyAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byBy
ZXNldCBzZXR0aW5nc18uCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6
bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBzcmMv
bGliX2pzb24vanNvbl9yZWFkZXIuY3BwIENoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHMKKyAgICov
CisgIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7CisgIC8q
KiBTYW1lIGFzIG9sZCBGZWF0dXJlczo6c3RyaWN0TW9kZSgpLgorICAgKiBccHJlICdzZXR0aW5n
cycgIT0gTlVMTCAoYnV0IEpzb246Om51bGwgaXMgZmluZSkKKyAgICogXHJlbWFyayBEZWZhdWx0
czoKKyAgICogXHNuaXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVy
QnVpbGRlclN0cmljdE1vZGUKKyAgICovCisgIHN0YXRpYyB2b2lkIHN0cmljdE1vZGUoSnNvbjo6
VmFsdWUqIHNldHRpbmdzKTsKK307CisKKy8qKiBDb25zdW1lIGVudGlyZSBzdHJlYW0gYW5kIHVz
ZSBpdHMgYmVnaW4vZW5kLgorICAqIFNvbWVkYXkgd2UgbWlnaHQgaGF2ZSBhIHJlYWwgU3RyZWFt
UmVhZGVyLCBidXQgZm9yIG5vdyB0aGlzCisgICogaXMgY29udmVuaWVudC4KKyAgKi8KK2Jvb2wg
SlNPTl9BUEkgcGFyc2VGcm9tU3RyZWFtKAorICAgIENoYXJSZWFkZXI6OkZhY3RvcnkgY29uc3Qm
LAorICAgIHN0ZDo6aXN0cmVhbSYsCisgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJz
KTsKKworLyoqIFxicmllZiBSZWFkIGZyb20gJ3NpbicgaW50byAncm9vdCcuCisKKyBBbHdheXMg
a2VlcCBjb21tZW50cyBmcm9tIHRoZSBpbnB1dCBKU09OLgorCisgVGhpcyBjYW4gYmUgdXNlZCB0
byByZWFkIGEgZmlsZSBpbnRvIGEgcGFydGljdWxhciBzdWItb2JqZWN0LgorIEZvciBleGFtcGxl
OgorIFxjb2RlCisgSnNvbjo6VmFsdWUgcm9vdDsKKyBjaW4gPj4gcm9vdFsiZGlyIl1bImZpbGUi
XTsKKyBjb3V0IDw8IHJvb3Q7CisgXGVuZGNvZGUKKyBSZXN1bHQ6CisgXHZlcmJhdGltCisgewor
ICJkaXIiOiB7CisgICAgICJmaWxlIjogeworICAgICAvLyBUaGUgaW5wdXQgc3RyZWFtIEpTT04g
d291bGQgYmUgbmVzdGVkIGhlcmUuCisgICAgIH0KKyB9CisgfQorIFxlbmR2ZXJiYXRpbQorIFx0
aHJvdyBzdGQ6OmV4Y2VwdGlvbiBvbiBwYXJzZSBlcnJvci4KKyBcc2VlIEpzb246Om9wZXJhdG9y
PDwoKQorKi8KK0pTT05fQVBJIHN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0m
LCBWYWx1ZSYpOworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNpZiBkZWZpbmVkKEpTT05DUFBf
RElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2Vu
ZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykK
KworI2VuZGlmIC8vIENQUFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3JlYWRlci5oCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5p
bmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vd3JpdGVyLmgKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERp
c3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQg
YW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElD
RU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0
L0xJQ0VOU0UKKworI2lmbmRlZiBKU09OX1dSSVRFUl9IX0lOQ0xVREVECisjZGVmaW5lIEpTT05f
V1JJVEVSX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQor
I2luY2x1ZGUgInZhbHVlLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FN
QVRJT04pCisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxv
c3RyZWFtPgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBl
PiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBk
ZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdh
cm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBp
ZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKK25hbWVz
cGFjZSBKc29uIHsKKworY2xhc3MgVmFsdWU7CisKKy8qKgorCitVc2FnZToKK1xjb2RlCisgIHVz
aW5nIG5hbWVzcGFjZSBKc29uOworICB2b2lkIHdyaXRlVG9TdGRvdXQoU3RyZWFtV3JpdGVyOjpG
YWN0b3J5IGNvbnN0JiBmYWN0b3J5LCBWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3RyZWFtV3JpdGVyPiBjb25zdCB3cml0ZXIoCisgICAgICBmYWN0b3J5Lm5ld1N0
cmVhbVdyaXRlcigpKTsKKyAgICB3cml0ZXItPndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAg
ICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOyAgLy8gYWRkIGxmIGFuZCBmbHVzaAorICB9CitcZW5k
Y29kZQorKi8KK2NsYXNzIEpTT05fQVBJIFN0cmVhbVdyaXRlciB7Citwcm90ZWN0ZWQ6CisgIHN0
ZDo6b3N0cmVhbSogc291dF87ICAvLyBub3Qgb3duZWQ7IHdpbGwgbm90IGRlbGV0ZQorcHVibGlj
OgorICBTdHJlYW1Xcml0ZXIoKTsKKyAgdmlydHVhbCB+U3RyZWFtV3JpdGVyKCk7CisgIC8qKiBX
cml0ZSBWYWx1ZSBpbnRvIGRvY3VtZW50IGFzIGNvbmZpZ3VyZWQgaW4gc3ViLWNsYXNzLgorICAg
ICAgRG8gbm90IHRha2Ugb3duZXJzaGlwIG9mIHNvdXQsIGJ1dCBtYWludGFpbiBhIHJlZmVyZW5j
ZSBkdXJpbmcgZnVuY3Rpb24uCisgICAgICBccHJlIHNvdXQgIT0gTlVMTAorICAgICAgXHJldHVy
biB6ZXJvIG9uIHN1Y2Nlc3MgKEZvciBub3csIHdlIGFsd2F5cyByZXR1cm4gemVybywgc28gY2hl
Y2sgdGhlIHN0cmVhbSBpbnN0ZWFkLikKKyAgICAgIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBwb3Nz
aWJseSwgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24KKyAgICovCisgIHZpcnR1YWwgaW50IHdy
aXRlKFZhbHVlIGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpID0gMDsKKworICAvKiog
XGJyaWVmIEEgc2ltcGxlIGFic3RyYWN0IGZhY3RvcnkuCisgICAqLworICBjbGFzcyBKU09OX0FQ
SSBGYWN0b3J5IHsKKyAgcHVibGljOgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKTsKKyAgICAvKiog
XGJyaWVmIEFsbG9jYXRlIGEgQ2hhclJlYWRlciB2aWEgb3BlcmF0b3IgbmV3KCkuCisgICAgICog
XHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFs
aWQgc2V0dGluZ3MpCisgICAgICovCisgICAgdmlydHVhbCBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVh
bVdyaXRlcigpIGNvbnN0ID0gMDsKKyAgfTsgIC8vIEZhY3RvcnkKK307ICAvLyBTdHJlYW1Xcml0
ZXIKKworLyoqIFxicmllZiBXcml0ZSBpbnRvIHN0cmluZ3N0cmVhbSwgdGhlbiByZXR1cm4gc3Ry
aW5nLCBmb3IgY29udmVuaWVuY2UuCisgKiBBIFN0cmVhbVdyaXRlciB3aWxsIGJlIGNyZWF0ZWQg
ZnJvbSB0aGUgZmFjdG9yeSwgdXNlZCwgYW5kIHRoZW4gZGVsZXRlZC4KKyAqLworc3RkOjpzdHJp
bmcgSlNPTl9BUEkgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0
b3J5LCBWYWx1ZSBjb25zdCYgcm9vdCk7CisKKworLyoqIFxicmllZiBCdWlsZCBhIFN0cmVhbVdy
aXRlciBpbXBsZW1lbnRhdGlvbi4KKworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2Ug
SnNvbjsKKyAgVmFsdWUgdmFsdWUgPSAuLi47CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRl
cjsKKyAgYnVpbGRlclsiY29tbWVudFN0eWxlIl0gPSAiTm9uZSI7CisgIGJ1aWxkZXJbImluZGVu
dGF0aW9uIl0gPSAiICAgIjsgIC8vIG9yIHdoYXRldmVyIHlvdSBsaWtlCisgIHN0ZDo6dW5pcXVl
X3B0cjxKc29uOjpTdHJlYW1Xcml0ZXI+IHdyaXRlcigKKyAgICAgIGJ1aWxkZXIubmV3U3RyZWFt
V3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgc3RkOjpj
b3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQgZmx1c2gKK1xlbmRjb2RlCisqLworY2xh
c3MgSlNPTl9BUEkgU3RyZWFtV3JpdGVyQnVpbGRlciA6IHB1YmxpYyBTdHJlYW1Xcml0ZXI6OkZh
Y3RvcnkgeworcHVibGljOgorICAvLyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0
IHdlIGNhbiBhZGQgZGF0YS1tZW1iZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1h
am9yIHZlcnNpb24gYnVtcC4KKyAgLyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgor
ICAgIEF2YWlsYWJsZSBzZXR0aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gImNvbW1lbnRT
dHlsZSI6ICJOb25lIiBvciAiQWxsIgorICAgIC0gImluZGVudGF0aW9uIjogICI8YW55dGhpbmc+
IgorICAgIC0gImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5IjogZmFsc2Ugb3IgdHJ1ZQorICAgICAg
LSBzbGlnaHRseSBjaGFuZ2UgdGhlIHdoaXRlc3BhY2UgYXJvdW5kIGNvbG9ucworICAgIC0gImRy
b3BOdWxsUGxhY2Vob2xkZXJzIjogZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBEcm9wIHRoZSAibnVs
bCIgc3RyaW5nIGZyb20gdGhlIHdyaXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVlcy4KKyAgICAg
ICAgU3RyaWN0bHkgc3BlYWtpbmcsIHRoaXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3aGVuIHRo
ZSBvdXRwdXQgaXMgYmVpbmcKKyAgICAgICAgZmVkIHRvIGEgYnJvd3NlcidzIEphdmFzY3JpcHQs
IGl0IG1ha2VzIGZvciBzbWFsbGVyIG91dHB1dCBhbmQgdGhlCisgICAgICAgIGJyb3dzZXIgY2Fu
IGhhbmRsZSB0aGUgb3V0cHV0IGp1c3QgZmluZS4KKyAgICAtICJ1c2VTcGVjaWFsRmxvYXRzIjog
ZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBJZiB0cnVlLCBvdXRwdXRzIG5vbi1maW5pdGUgZmxvYXRp
bmcgcG9pbnQgdmFsdWVzIGluIHRoZSBmb2xsb3dpbmcgd2F5OgorICAgICAgICBOYU4gdmFsdWVz
IGFzICJOYU4iLCBwb3NpdGl2ZSBpbmZpbml0eSBhcyAiSW5maW5pdHkiLCBhbmQgbmVnYXRpdmUg
aW5maW5pdHkKKyAgICAgICAgYXMgIi1JbmZpbml0eSIuCisKKyAgICBZb3UgY2FuIGV4YW1pbmUg
J3NldHRpbmdzX2AgeW91cnNlbGYKKyAgICB0byBzZWUgdGhlIGRlZmF1bHRzLiBZb3UgY2FuIGFs
c28gd3JpdGUgYW5kIHJlYWQgdGhlbSBqdXN0IGxpa2UgYW55CisgICAgSlNPTiBWYWx1ZS4KKyAg
ICBcc2Egc2V0RGVmYXVsdHMoKQorICAgICovCisgIEpzb246OlZhbHVlIHNldHRpbmdzXzsKKwor
ICBTdHJlYW1Xcml0ZXJCdWlsZGVyKCk7CisgIH5TdHJlYW1Xcml0ZXJCdWlsZGVyKCk7CisKKyAg
LyoqCisgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAo
ZS5nLiBpbnZhbGlkIHNldHRpbmdzKQorICAgKi8KKyAgU3RyZWFtV3JpdGVyKiBuZXdTdHJlYW1X
cml0ZXIoKSBjb25zdDsKKworICAvKiogXHJldHVybiB0cnVlIGlmICdzZXR0aW5ncycgYXJlIGxl
Z2FsIGFuZCBjb25zaXN0ZW50OworICAgKiAgIG90aGVyd2lzZSwgaW5kaWNhdGUgYmFkIHNldHRp
bmdzIHZpYSAnaW52YWxpZCcuCisgICAqLworICBib29sIHZhbGlkYXRlKEpzb246OlZhbHVlKiBp
bnZhbGlkKSBjb25zdDsKKyAgLyoqIEEgc2ltcGxlIHdheSB0byB1cGRhdGUgYSBzcGVjaWZpYyBz
ZXR0aW5nLgorICAgKi8KKyAgVmFsdWUmIG9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KTsKKwor
ICAvKiogQ2FsbGVkIGJ5IGN0b3IsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRp
bmdzXy4KKyAgICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZp
bmUpCisgICAqIFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9q
c29uX3dyaXRlci5jcHAgU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRzCisgICAqLworICBzdGF0
aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGluZ3MpOworfTsKKworLyoqIFxi
cmllZiBBYnN0cmFjdCBjbGFzcyBmb3Igd3JpdGVycy4KKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJl
YW1Xcml0ZXIuIChBbmQgcmVhbGx5LCB0aGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4p
CisgKi8KK2NsYXNzIEpTT05fQVBJIFdyaXRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfldyaXRl
cigpOworCisgIHZpcnR1YWwgc3RkOjpzdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpID0g
MDsKK307CisKKy8qKiBcYnJpZWYgT3V0cHV0cyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93
d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdAorICp3aXRob3V0IGZvcm1hdHRpbmcgKG5vdCBo
dW1hbiBmcmllbmRseSkuCisgKgorICogVGhlIEpTT04gZG9jdW1lbnQgaXMgd3JpdHRlbiBpbiBh
IHNpbmdsZSBsaW5lLiBJdCBpcyBub3QgaW50ZW5kZWQgZm9yICdodW1hbicKKyAqY29uc3VtcHRp
b24sCisgKiBidXQgbWF5IGJlIHVzZWZ1bGwgdG8gc3VwcG9ydCBmZWF0dXJlIHN1Y2ggYXMgUlBD
IHdoZXJlIGJhbmR3aXRoIGlzIGxpbWl0ZWQuCisgKiBcc2EgUmVhZGVyLCBWYWx1ZQorICogXGRl
cHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIEZh
c3RXcml0ZXIgOiBwdWJsaWMgV3JpdGVyIHsKKworcHVibGljOgorICBGYXN0V3JpdGVyKCk7Cisg
IH5GYXN0V3JpdGVyKCkge30KKworICB2b2lkIGVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCk7CisK
KyAgLyoqIFxicmllZiBEcm9wIHRoZSAibnVsbCIgc3RyaW5nIGZyb20gdGhlIHdyaXRlcidzIG91
dHB1dCBmb3IgbnVsbFZhbHVlcy4KKyAgICogU3RyaWN0bHkgc3BlYWtpbmcsIHRoaXMgaXMgbm90
IHZhbGlkIEpTT04uIEJ1dCB3aGVuIHRoZSBvdXRwdXQgaXMgYmVpbmcKKyAgICogZmVkIHRvIGEg
YnJvd3NlcidzIEphdmFzY3JpcHQsIGl0IG1ha2VzIGZvciBzbWFsbGVyIG91dHB1dCBhbmQgdGhl
CisgICAqIGJyb3dzZXIgY2FuIGhhbmRsZSB0aGUgb3V0cHV0IGp1c3QgZmluZS4KKyAgICovCisg
IHZvaWQgZHJvcE51bGxQbGFjZWhvbGRlcnMoKTsKKworICB2b2lkIG9taXRFbmRpbmdMaW5lRmVl
ZCgpOworCitwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKKyAgc3RkOjpzdHJpbmcg
d3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUo
Y29uc3QgVmFsdWUmIHZhbHVlKTsKKworICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIGJvb2wg
eWFtbENvbXBhdGlibGl0eUVuYWJsZWRfOworICBib29sIGRyb3BOdWxsUGxhY2Vob2xkZXJzXzsK
KyAgYm9vbCBvbWl0RW5kaW5nTGluZUZlZWRfOworfTsKKworLyoqIFxicmllZiBXcml0ZXMgYSBW
YWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgaW4g
YQorICpodW1hbiBmcmllbmRseSB3YXkuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFr
IGFuZCBpbmRlbnQgYXJlIGFzIGZvbGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0g
aWYgZW1wdHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICog
ICAgIC0gaWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHBy
aW50IG9uZSB2YWx1ZSBwZXIKKyAqbGluZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5k
IGxpbmUgYnJlYWsgYW5kIHByaW50ICd9Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBp
ZiBlbXB0eSB0aGVuIHByaW50IFtdIHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAg
ICAgLSBpZiB0aGUgYXJyYXkgY29udGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBv
ciBzb21lIG90aGVyIHZhbHVlCisgKnR5cGVzLAorICogICAgICAgYW5kIGFsbCB0aGUgdmFsdWVz
IGZpdCBvbiBvbmUgbGluZXMsIHRoZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlCisgKmxp
bmUuCisgKiAgICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUg
bGluZSwgb3IgdGhlIGFycmF5IGNvbnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5
IGFycmF5LCB0aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFs
dWUgaGF2ZSBjb21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVp
cgorICojQ29tbWVudFBsYWNlbWVudC4KKyAqCisgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6
OnNldENvbW1lbnQoKQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisg
Ki8KK2NsYXNzIEpTT05fQVBJIFN0eWxlZFdyaXRlciA6IHB1YmxpYyBXcml0ZXIgeworcHVibGlj
OgorICBTdHlsZWRXcml0ZXIoKTsKKyAgflN0eWxlZFdyaXRlcigpIHt9CisKK3B1YmxpYzogLy8g
b3ZlcnJpZGRlbiBmcm9tIFdyaXRlcgorICAvKiogXGJyaWVmIFNlcmlhbGl6ZSBhIFZhbHVlIGlu
IDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdC4KKyAgICogXHBh
cmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgorICAgKiBccmV0dXJuIFN0cmluZyBjb250YWlu
aW5nIHRoZSBKU09OIGRvY3VtZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgcm9vdCB2YWx1ZS4KKyAg
ICovCisgIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKKworcHJpdmF0ZToK
KyAgdm9pZCB3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJh
eVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aW5lQXJyYXkoY29uc3Qg
VmFsdWUmIHZhbHVlKTsKKyAgdm9pZCBwdXNoVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVl
KTsKKyAgdm9pZCB3cml0ZUluZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChjb25zdCBz
dGQ6OnN0cmluZyYgdmFsdWUpOworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7
CisgIHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpOworICB2
b2lkIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KTsK
KyAgYm9vbCBoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgc3RhdGlj
IHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZUVPTChjb25zdCBzdGQ6OnN0cmluZyYgdGV4dCk7CisKKyAg
dHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRW
YWx1ZXMgY2hpbGRWYWx1ZXNfOworICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIHN0ZDo6c3Ry
aW5nIGluZGVudFN0cmluZ187CisgIGludCByaWdodE1hcmdpbl87CisgIGludCBpbmRlbnRTaXpl
XzsKKyAgYm9vbCBhZGRDaGlsZFZhbHVlc187Cit9OworCisvKiogXGJyaWVmIFdyaXRlcyBhIFZh
bHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBh
CisgaHVtYW4gZnJpZW5kbHkgd2F5LAorICAgICB0byBhIHN0cmVhbSByYXRoZXIgdGhhbiB0byBh
IHN0cmluZy4KKyAqCisgKiBUaGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUg
YXMgZm9sbG93OgorICogLSBPYmplY3QgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHBy
aW50IHt9IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiBub3QgZW1w
dHkgdGhlIHByaW50ICd7JywgbGluZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBl
cgorIGxpbmUKKyAqICAgICAgIGFuZCB0aGVuIHVuaW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBw
cmludCAnfScuCisgKiAtIEFycmF5IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmlu
dCBbXSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICogICAgIC0gaWYgdGhlIGFycmF5
IGNvbnRhaW5zIG5vIG9iamVjdCB2YWx1ZSwgZW1wdHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1
ZQorIHR5cGVzLAorICogICAgICAgYW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMs
IHRoZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlCisgbGluZS4KKyAqICAgICAtIG90aGVy
d2lzZSwgaXQgdGhlIHZhbHVlcyBkbyBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkg
Y29udGFpbnMKKyAqICAgICAgIG9iamVjdCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQg
b25lIHZhbHVlIHBlciBsaW5lLgorICoKKyAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRzIHRo
ZW4gdGhleSBhcmUgb3V0cHV0ZWQgYWNjb3JkaW5nIHRvIHRoZWlyCisgI0NvbW1lbnRQbGFjZW1l
bnQuCisgKgorICogXHBhcmFtIGluZGVudGF0aW9uIEVhY2ggbGV2ZWwgd2lsbCBiZSBpbmRlbnRl
ZCBieSB0aGlzIGFtb3VudCBleHRyYS4KKyAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0
Q29tbWVudCgpCisgKiBcZGVwcmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLwor
Y2xhc3MgSlNPTl9BUEkgU3R5bGVkU3RyZWFtV3JpdGVyIHsKK3B1YmxpYzoKKyAgU3R5bGVkU3Ry
ZWFtV3JpdGVyKHN0ZDo6c3RyaW5nIGluZGVudGF0aW9uID0gIlx0Iik7CisgIH5TdHlsZWRTdHJl
YW1Xcml0ZXIoKSB7fQorCitwdWJsaWM6CisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUg
aW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBc
cGFyYW0gb3V0IFN0cmVhbSB0byB3cml0ZSB0by4gKENhbiBiZSBvc3RyaW5nc3RyZWFtLCBlLmcu
KQorICAgKiBccGFyYW0gcm9vdCBWYWx1ZSB0byBzZXJpYWxpemUuCisgICAqIFxub3RlIFRoZXJl
IGlzIG5vIHBvaW50IGluIGRlcml2aW5nIGZyb20gV3JpdGVyLCBzaW5jZSB3cml0ZSgpIHNob3Vs
ZCBub3QKKyAgICogcmV0dXJuIGEgdmFsdWUuCisgICAqLworICB2b2lkIHdyaXRlKHN0ZDo6b3N0
cmVhbSYgb3V0LCBjb25zdCBWYWx1ZSYgcm9vdCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVW
YWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShjb25zdCBW
YWx1ZSYgdmFsdWUpOworICBib29sIGlzTXVsdGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7
CisgIHZvaWQgcHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgd3Jp
dGVJbmRlbnQoKTsKKyAgdm9pZCB3cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZh
bHVlKTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAgdm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRl
Q29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCk7CisgIGJvb2wgaGFzQ29t
bWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBu
b3JtYWxpemVFT0woY29uc3Qgc3RkOjpzdHJpbmcmIHRleHQpOworCisgIHR5cGVkZWYgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFs
dWVzXzsKKyAgc3RkOjpvc3RyZWFtKiBkb2N1bWVudF87CisgIHN0ZDo6c3RyaW5nIGluZGVudFN0
cmluZ187CisgIGludCByaWdodE1hcmdpbl87CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0aW9uXzsK
KyAgYm9vbCBhZGRDaGlsZFZhbHVlc18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7Cit9Owor
CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoSW50IHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmco
VUludCB2YWx1ZSk7CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK3N0ZDo6
c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSk7CitzdGQ6OnN0
cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKExhcmdlc3RVSW50IHZhbHVlKTsKK3N0ZDo6c3Ry
aW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpT
T05fQVBJIHZhbHVlVG9TdHJpbmcoYm9vbCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2
YWx1ZVRvUXVvdGVkU3RyaW5nKGNvbnN0IGNoYXIqIHZhbHVlKTsKKworLy8vIFxicmllZiBPdXRw
dXQgdXNpbmcgdGhlIFN0eWxlZFN0cmVhbVdyaXRlci4KKy8vLyBcc2VlIEpzb246Om9wZXJhdG9y
Pj4oKQorSlNPTl9BUEkgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYsIGNv
bnN0IFZhbHVlJiByb290KTsKKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisjaWYgZGVmaW5lZChK
U09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHBv
cCkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dB
Uk5JTkcpCisKKyNlbmRpZiAvLyBKU09OX1dSSVRFUl9IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi93cml0ZXIuaAor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5u
aW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaAorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgor
Ly8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVz
aXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmls
ZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3Jn
ZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVE
CisjZGVmaW5lIENQUFRMX0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVECisKKyNpbmNsdWRlIDxz
dGRsaWIuaD4KKyNpbmNsdWRlIDxzc3RyZWFtPgorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFM
R0FNQVRJT04pCisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNP
Tl9JU19BTUFMR0FNQVRJT04pCisKKy8qKiBJdCBzaG91bGQgbm90IGJlIHBvc3NpYmxlIGZvciBh
IG1hbGljaW91c2x5IGRlc2lnbmVkIGZpbGUgdG8KKyAqICBjYXVzZSBhbiBhYm9ydCgpIG9yIHNl
Zy1mYXVsdCwgc28gdGhlc2UgbWFjcm9zIGFyZSB1c2VkIG9ubHkKKyAqICBmb3IgcHJlLWNvbmRp
dGlvbiB2aW9sYXRpb25zIGFuZCBpbnRlcm5hbCBsb2dpYyBlcnJvcnMuCisgKi8KKyNpZiBKU09O
X1VTRV9FWENFUFRJT04KKworLy8gQHRvZG8gPD0gYWRkIGRldGFpbCBhYm91dCBjb25kaXRpb24g
aW4gZXhjZXB0aW9uCisjIGRlZmluZSBKU09OX0FTU0VSVChjb25kaXRpb24pICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7aWYgKCEoY29uZGl0aW9u
KSkge0pzb246OnRocm93TG9naWNFcnJvciggImFzc2VydCBqc29uIGZhaWxlZCIgKTt9fQorCisj
IGRlZmluZSBKU09OX0ZBSUxfTUVTU0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGQ6
Om9zdHJpbmdzdHJlYW0gb3NzOyBvc3MgPDwgbWVzc2FnZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgSnNvbjo6dGhyb3dMb2dpY0Vycm9yKG9zcy5zdHIoKSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGFib3J0KCk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgfQorCisjZWxzZSAvLyBKU09OX1VTRV9FWENFUFRJT04KKworIyBkZWZpbmUg
SlNPTl9BU1NFUlQoY29uZGl0aW9uKSBhc3NlcnQoY29uZGl0aW9uKQorCisvLyBUaGUgY2FsbCB0
byBhc3NlcnQoKSB3aWxsIHNob3cgdGhlIGZhaWx1cmUgbWVzc2FnZSBpbiBkZWJ1ZyBidWlsZHMu
IEluCisvLyByZWxlYXNlIGJ1aWxkcyB3ZSBhYm9ydCwgZm9yIGEgY29yZS1kdW1wIG9yIGRlYnVn
Z2VyLgorIyBkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIGFzc2VydChmYWxzZSAmJiBvc3Muc3RyKCkuY19z
dHIoKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhYm9y
dCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgIH0KKworCisjZW5kaWYKKworI2RlZmluZSBKU09OX0FTU0VSVF9N
RVNTQUdFKGNvbmRpdGlvbiwgbWVzc2FnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgaWYgKCEoY29uZGl0aW9uKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgSlNPTl9GQUlMX01FU1NBR0UobWVzc2Fn
ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9
CisKKyNlbmRpZiAvLyBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAorCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vYXNzZXJ0
aW9ucy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworI2VuZGlmIC8vaWZuZGVmIEpTT05f
QU1BTEdBVEVEX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvanNvbmNwcC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU2MzI4NzMyN2MwZDY2MzIxNTA1ZWFkMmQyZWU0NjdlNzM5ZjE1ZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAu
Y3BwCkBAIC0wLDAgKzEsNTI2NiBAQAorLy8vIEpzb24tY3BwIGFtYWxnYXRlZCBzb3VyY2UgKGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgorLy8vIEl0IGlzIGludGVuZGVkIHRvIGJl
IHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLmgiCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
KworLyoKK1RoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29kZSwgaW5jbHVkaW5nIGFjY29t
cGFueWluZyBkb2N1bWVudGF0aW9uLCAKK3Rlc3RzIGFuZCBkZW1vbnN0cmF0aW9uIGFwcGxpY2F0
aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcKK2NvbmRpdGlvbnMuLi4KKwor
VGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNpdGx5IGRpc2NsYWltcyBjb3B5
cmlnaHQgaW4gYWxsIAoranVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgc3VjaCBhIGRpc2Ns
YWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCit0aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk
IGludG8gdGhlIFB1YmxpYyBEb21haW4uCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggZG8gbm90
IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcuIEdlcm1hbnkgYXMgb2YKKzIw
MTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAwNy0yMDEwIGJ5IEJhcHRpc3Rl
IExlcGlsbGV1ciwgYW5kIGlzCityZWxlYXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBM
aWNlbnNlIChzZWUgYmVsb3cpLgorCitJbiBqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBQ
dWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlzIAorc29mdHdhcmUgbWF5IGNo
b29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBEb21haW4sIDIpIHVuZGVyIHRo
ZSAKK2NvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLCBvciAzKSB1bmRl
ciB0aGUgdGVybXMgb2YgZHVhbCAKK1B1YmxpYyBEb21haW4vTUlUIExpY2Vuc2UgY29uZGl0aW9u
cyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCisKK1RoZSBNSVQgTGljZW5zZSBpcyBh
Ym91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGljZW5zZSBjYW4gZ2V0LCBhbmQg
aXMKK2Rlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBhdDoKKworICAgaHR0cDovL2Vu
Lndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQorICAgCitUaGUgZnVsbCB0ZXh0IG9mIHRo
ZSBNSVQgTGljZW5zZSBmb2xsb3dzOgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NvcHlyaWdodCAoYykg
MjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorb2J0YWluaW5nIGEgY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KK2ZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAorbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzCitvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKK2luY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKK0VYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKK05PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMKK0JFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTgorQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg
T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisoRU5EIExJQ0VOU0UgVEVYVCkKKworVGhlIE1JVCBsaWNlbnNlIGlzIGNvbXBhdGli
bGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKK3NvZnR3YXJlLCBhZmZvcmRpbmcg
b25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4gd2l0aCB0aGUKK21pbm9yIG51
aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UKK2FuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2RlLiBOb3RlIGFsc28gdGhhdCBi
eSBhY2NlcHRpbmcgdGhlCitQdWJsaWMgRG9tYWluICJsaWNlbnNlIiB5b3UgY2FuIHJlLWxpY2Vu
c2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCitsaWNlbnNlIHlvdSBsaWtlLgorCisqLworCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisKKworCisKKworCisjaW5jbHVkZSAianNvbi9qc29uLmgiCisKKyNpZm5k
ZWYgSlNPTl9JU19BTUFMR0FNQVRJT04KKyNlcnJvciAiQ29tcGlsZSB3aXRoIC1JIFBBVEhfVE9f
SlNPTl9ESVJFQ1RPUlkiCisjZW5kaWYKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5p
bmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKKworI2lmbmRlZiBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAor
I2RlZmluZSBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorCisvKiBUaGlzIGhlYWRl
ciBwcm92aWRlcyBjb21tb24gc3RyaW5nIG1hbmlwdWxhdGlvbiBzdXBwb3J0LCBzdWNoIGFzIFVU
Ri04LAorICogcG9ydGFibGUgY29udmVyc2lvbiBmcm9tL3RvIHN0cmluZy4uLgorICoKKyAqIEl0
IGlzIGFuIGludGVybmFsIGhlYWRlciB0aGF0IG11c3Qgbm90IGJlIGV4cG9zZWQuCisgKi8KKwor
bmFtZXNwYWNlIEpzb24geworCisvLy8gQ29udmVydHMgYSB1bmljb2RlIGNvZGUtcG9pbnQgdG8g
VVRGLTguCitzdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIGNvZGVQb2ludFRvVVRGOCh1bnNpZ25l
ZCBpbnQgY3ApIHsKKyAgc3RkOjpzdHJpbmcgcmVzdWx0OworCisgIC8vIGJhc2VkIG9uIGRlc2Ny
aXB0aW9uIGZyb20gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOAorCisgIGlmIChj
cCA8PSAweDdmKSB7CisgICAgcmVzdWx0LnJlc2l6ZSgxKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0
aWNfY2FzdDxjaGFyPihjcCk7CisgIH0gZWxzZSBpZiAoY3AgPD0gMHg3RkYpIHsKKyAgICByZXN1
bHQucmVzaXplKDIpOworICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAo
MHgzZiAmIGNwKSk7CisgICAgcmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhDMCB8ICgw
eDFmICYgKGNwID4+IDYpKSk7CisgIH0gZWxzZSBpZiAoY3AgPD0gMHhGRkZGKSB7CisgICAgcmVz
dWx0LnJlc2l6ZSgzKTsKKyAgICByZXN1bHRbMl0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwg
KDB4M2YgJiBjcCkpOworICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAo
MHgzZiAmIChjcCA+PiA2KSkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4
RTAgfCAoMHhmICYgKGNwID4+IDEyKSkpOworICB9IGVsc2UgaWYgKGNwIDw9IDB4MTBGRkZGKSB7
CisgICAgcmVzdWx0LnJlc2l6ZSg0KTsKKyAgICByZXN1bHRbM10gPSBzdGF0aWNfY2FzdDxjaGFy
PigweDgwIHwgKDB4M2YgJiBjcCkpOworICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+
KDB4ODAgfCAoMHgzZiAmIChjcCA+PiA2KSkpOworICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4ODAgfCAoMHgzZiAmIChjcCA+PiAxMikpKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0
aWNfY2FzdDxjaGFyPigweEYwIHwgKDB4NyAmIChjcCA+PiAxOCkpKTsKKyAgfQorCisgIHJldHVy
biByZXN1bHQ7Cit9CisKKy8vLyBSZXR1cm5zIHRydWUgaWYgY2ggaXMgYSBjb250cm9sIGNoYXJh
Y3RlciAoaW4gcmFuZ2UgWzEsMzFdKS4KK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRyb2xDaGFy
YWN0ZXIoY2hhciBjaCkgeyByZXR1cm4gY2ggPiAwICYmIGNoIDw9IDB4MUY7IH0KKworZW51bSB7
CisgIC8vLyBDb25zdGFudCB0aGF0IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0
IG11c3QgYmUgcGFzc2VkIHRvCisgIC8vLyB1aW50VG9TdHJpbmcuCisgIHVpbnRUb1N0cmluZ0J1
ZmZlclNpemUgPSAzICogc2l6ZW9mKExhcmdlc3RVSW50KSArIDEKK307CisKKy8vIERlZmluZXMg
YSBjaGFyIGJ1ZmZlciBmb3IgdXNlIHdpdGggdWludFRvU3RyaW5nKCkuCit0eXBlZGVmIGNoYXIg
VUludFRvU3RyaW5nQnVmZmVyW3VpbnRUb1N0cmluZ0J1ZmZlclNpemVdOworCisvKiogQ29udmVy
dHMgYW4gdW5zaWduZWQgaW50ZWdlciB0byBzdHJpbmcuCisgKiBAcGFyYW0gdmFsdWUgVW5zaWdu
ZWQgaW50ZXJnZXIgdG8gY29udmVydCB0byBzdHJpbmcKKyAqIEBwYXJhbSBjdXJyZW50IElucHV0
L091dHB1dCBzdHJpbmcgYnVmZmVyLgorICogICAgICAgIE11c3QgaGF2ZSBhdCBsZWFzdCB1aW50
VG9TdHJpbmdCdWZmZXJTaXplIGNoYXJzIGZyZWUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB1
aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUsIGNoYXIqJiBjdXJyZW50KSB7CisgICotLWN1
cnJlbnQgPSAwOworICBkbyB7CisgICAgKi0tY3VycmVudCA9IHN0YXRpY19jYXN0PHNpZ25lZCBj
aGFyPih2YWx1ZSAlIDEwVSArIHN0YXRpY19jYXN0PHVuc2lnbmVkPignMCcpKTsKKyAgICB2YWx1
ZSAvPSAxMDsKKyAgfSB3aGlsZSAodmFsdWUgIT0gMCk7Cit9CisKKy8qKiBDaGFuZ2UgJywnIHRv
ICcuJyBldmVyeXdoZXJlIGluIGJ1ZmZlci4KKyAqCisgKiBXZSBoYWQgYSBzb3BoaXN0aWNhdGVk
IHdheSwgYnV0IGl0IGRpZCBub3Qgd29yayBpbiBXaW5DRS4KKyAqIEBzZWUgaHR0cHM6Ly9naXRo
dWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcC9wdWxsLzkKKyAqLworc3RhdGljIGlu
bGluZSB2b2lkIGZpeE51bWVyaWNMb2NhbGUoY2hhciogYmVnaW4sIGNoYXIqIGVuZCkgeworICB3
aGlsZSAoYmVnaW4gPCBlbmQpIHsKKyAgICBpZiAoKmJlZ2luID09ICcsJykgeworICAgICAgKmJl
Z2luID0gJy4nOworICAgIH0KKyAgICArK2JlZ2luOworICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpzb24geworCisjZW5kaWYgLy8gTElCX0pTT05DUFBfSlNPTl9UT09MX0hfSU5DTFVERUQKKwor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29u
L2pzb25fdG9vbC5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9y
ZWFkZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTEgQmFw
dGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVi
bGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGlj
dGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9q
c29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FN
QUxHQU1BVElPTikKKyNpbmNsdWRlIDxqc29uL2Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxqc29u
L3JlYWRlci5oPgorI2luY2x1ZGUgPGpzb24vdmFsdWUuaD4KKyNpbmNsdWRlICJqc29uX3Rvb2wu
aCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRl
IDx1dGlsaXR5PgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1
ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8bGltaXRzPgorCisjaWYg
ZGVmaW5lZChfTVNDX1ZFUikKKyNpZiAhZGVmaW5lZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENf
U0VDVVJFX0xJQl9fKSAmJiBfTVNDX1ZFUiA+PSAxNTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZSAK
KyNkZWZpbmUgc25wcmludGYgc3ByaW50Zl9zCisjZWxpZiBfTVNDX1ZFUiA+PSAxOTAwIC8vIFZD
KysgMTQuMCBhbmQgYWJvdmUKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2Vsc2UK
KyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX19BTkRS
T0lEX18pIHx8IGRlZmluZWQoX19RTlhOVE9fXykKKyNkZWZpbmUgc25wcmludGYgc25wcmludGYK
KyNlbGlmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnBy
aW50ZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fUU5YTlRPX18pCisjZGVmaW5lIHNzY2FuZiBz
dGQ6OnNzY2FuZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+
PSAxNDAwIC8vIFZDKysgOC4wCisvLyBEaXNhYmxlIHdhcm5pbmcgYWJvdXQgc3RyZHVwIGJlaW5n
IGRlcHJlY2F0ZWQuCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpCisjZW5kaWYKKwor
c3RhdGljIGludCBjb25zdCBzdGFja0xpbWl0X2cgPSAxMDAwOworc3RhdGljIGludCAgICAgICBz
dGFja0RlcHRoX2cgPSAwOyAgLy8gc2VlIHJlYWRWYWx1ZSgpCisKK25hbWVzcGFjZSBKc29uIHsK
KworI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYm
IF9DUFBMSUJfVkVSID49IDUyMCkKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENoYXJSZWFkZXI+
IENoYXJSZWFkZXJQdHI7CisjZWxzZQordHlwZWRlZiBzdGQ6OmF1dG9fcHRyPENoYXJSZWFkZXI+
ICAgQ2hhclJlYWRlclB0cjsKKyNlbmRpZgorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBG
ZWF0dXJlcworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworRmVhdHVyZXM6
OkZlYXR1cmVzKCkKKyAgICA6IGFsbG93Q29tbWVudHNfKHRydWUpLCBzdHJpY3RSb290XyhmYWxz
ZSksCisgICAgICBhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyhmYWxzZSksIGFsbG93TnVt
ZXJpY0tleXNfKGZhbHNlKSB7fQorCitGZWF0dXJlcyBGZWF0dXJlczo6YWxsKCkgeyByZXR1cm4g
RmVhdHVyZXMoKTsgfQorCitGZWF0dXJlcyBGZWF0dXJlczo6c3RyaWN0TW9kZSgpIHsKKyAgRmVh
dHVyZXMgZmVhdHVyZXM7CisgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0gZmFsc2U7CisgIGZl
YXR1cmVzLnN0cmljdFJvb3RfID0gdHJ1ZTsKKyAgZmVhdHVyZXMuYWxsb3dEcm9wcGVkTnVsbFBs
YWNlaG9sZGVyc18gPSBmYWxzZTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBmYWxz
ZTsKKyAgcmV0dXJuIGZlYXR1cmVzOworfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBS
ZWFkZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK3N0YXRpYyBib29s
IGNvbnRhaW5zTmV3TGluZShSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9u
IGVuZCkgeworICBmb3IgKDsgYmVnaW4gPCBlbmQ7ICsrYmVnaW4pCisgICAgaWYgKCpiZWdpbiA9
PSAnXG4nIHx8ICpiZWdpbiA9PSAnXHInKQorICAgICAgcmV0dXJuIHRydWU7CisgIHJldHVybiBm
YWxzZTsKK30KKworLy8gQ2xhc3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworUmVhZGVyOjpSZWFk
ZXIoKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3Vy
cmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAorICAgICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0Jl
Zm9yZV8oKSwgZmVhdHVyZXNfKEZlYXR1cmVzOjphbGwoKSksCisgICAgICBjb2xsZWN0Q29tbWVu
dHNfKCkge30KKworUmVhZGVyOjpSZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKQorICAg
IDogZXJyb3JzXygpLCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwg
bGFzdFZhbHVlRW5kXygpLAorICAgICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwg
ZmVhdHVyZXNfKGZlYXR1cmVzKSwgY29sbGVjdENvbW1lbnRzXygpIHsKK30KKworYm9vbAorUmVh
ZGVyOjpwYXJzZShjb25zdCBzdGQ6OnN0cmluZyYgZG9jdW1lbnQsIFZhbHVlJiByb290LCBib29s
IGNvbGxlY3RDb21tZW50cykgeworICBkb2N1bWVudF8gPSBkb2N1bWVudDsKKyAgY29uc3QgY2hh
ciogYmVnaW4gPSBkb2N1bWVudF8uY19zdHIoKTsKKyAgY29uc3QgY2hhciogZW5kID0gYmVnaW4g
KyBkb2N1bWVudF8ubGVuZ3RoKCk7CisgIHJldHVybiBwYXJzZShiZWdpbiwgZW5kLCByb290LCBj
b2xsZWN0Q29tbWVudHMpOworfQorCitib29sIFJlYWRlcjo6cGFyc2Uoc3RkOjppc3RyZWFtJiBz
aW4sIFZhbHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cykgeworICAvLyBzdGQ6OmlzdHJl
YW1faXRlcmF0b3I8Y2hhcj4gYmVnaW4oc2luKTsKKyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9y
PGNoYXI+IGVuZDsKKyAgLy8gVGhvc2Ugd291bGQgYWxsb3cgc3RyZWFtZWQgaW5wdXQgZnJvbSBh
IGZpbGUsIGlmIHBhcnNlKCkgd2VyZSBhCisgIC8vIHRlbXBsYXRlIGZ1bmN0aW9uLgorCisgIC8v
IFNpbmNlIHN0ZDo6c3RyaW5nIGlzIHJlZmVyZW5jZS1jb3VudGVkLCB0aGlzIGF0IGxlYXN0IGRv
ZXMgbm90CisgIC8vIGNyZWF0ZSBhbiBleHRyYSBjb3B5LgorICBzdGQ6OnN0cmluZyBkb2M7Cisg
IHN0ZDo6Z2V0bGluZShzaW4sIGRvYywgKGNoYXIpRU9GKTsKKyAgcmV0dXJuIHBhcnNlKGRvYywg
cm9vdCwgY29sbGVjdENvbW1lbnRzKTsKK30KKworYm9vbCBSZWFkZXI6OnBhcnNlKGNvbnN0IGNo
YXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAg
ICAgICAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNv
bGxlY3RDb21tZW50cykgeworICBpZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAg
IGNvbGxlY3RDb21tZW50cyA9IGZhbHNlOworICB9CisKKyAgYmVnaW5fID0gYmVnaW5Eb2M7Cisg
IGVuZF8gPSBlbmREb2M7CisgIGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7Cisg
IGN1cnJlbnRfID0gYmVnaW5fOworICBsYXN0VmFsdWVFbmRfID0gMDsKKyAgbGFzdFZhbHVlXyA9
IDA7CisgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOworICBlcnJvcnNfLmNsZWFyKCk7CisgIHdoaWxl
ICghbm9kZXNfLmVtcHR5KCkpCisgICAgbm9kZXNfLnBvcCgpOworICBub2Rlc18ucHVzaCgmcm9v
dCk7CisKKyAgc3RhY2tEZXB0aF9nID0gMDsgIC8vIFllcywgdGhpcyBpcyBiYWQgY29kaW5nLCBi
dXQgb3B0aW9ucyBhcmUgbGltaXRlZC4KKyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7
CisgIFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChjb2xs
ZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENv
bW1lbnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0
cmljdFJvb3RfKSB7CisgICAgaWYgKCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgp
KSB7CisgICAgICAvLyBTZXQgZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5
IHNob3VsZCBiZSBmaXJzdCB0b2tlbiBmb3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tl
bi50eXBlXyA9IHRva2VuRXJyb3I7CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAg
ICAgIHRva2VuLmVuZF8gPSBlbmREb2M7CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2
YWxpZCBKU09OIGRvY3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2
YWx1ZS4iLAorICAgICAgICAgIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
IH0KKyAgcmV0dXJuIHN1Y2Nlc3NmdWw7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkVmFsdWUoKSB7
CisgIC8vIFRoaXMgaXMgYSBub24tcmVlbnRyYW50IHdheSB0byBzdXBwb3J0IGEgc3RhY2tMaW1p
dC4gVGVycmlibGUhCisgIC8vIEJ1dCB0aGlzIGRlcHJlY2F0ZWQgY2xhc3MgaGFzIGEgc2VjdXJp
dHkgcHJvYmxlbTogQmFkIGlucHV0IGNhbgorICAvLyBjYXVzZSBhIHNlZy1mYXVsdC4gVGhpcyBz
ZWVtcyBsaWtlIGEgZmFpciwgYmluYXJ5LWNvbXBhdGlibGUgd2F5CisgIC8vIHRvIHByZXZlbnQg
dGhlIHByb2JsZW0uCisgIGlmIChzdGFja0RlcHRoX2cgPj0gc3RhY2tMaW1pdF9nKSB0aHJvd1J1
bnRpbWVFcnJvcigiRXhjZWVkZWQgc3RhY2tMaW1pdCBpbiByZWFkVmFsdWUoKS4iKTsKKyAgKytz
dGFja0RlcHRoX2c7CisKKyAgVG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2Vu
KTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gdHJ1ZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXyAm
JiAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkpIHsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRDb21t
ZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEJlZm9yZSk7CisgICAgY29tbWVudHNCZWZvcmVf
ID0gIiI7CisgIH0KKworICBzd2l0Y2ggKHRva2VuLnR5cGVfKSB7CisgIGNhc2UgdG9rZW5PYmpl
Y3RCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZE9iamVjdCh0b2tlbik7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOwor
ICBjYXNlIHRva2VuQXJyYXlCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZEFycmF5KHRva2Vu
KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7
CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdW1iZXI6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29k
ZU51bWJlcih0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5TdHJpbmc6CisgICAgc3Vj
Y2Vzc2Z1bCA9IGRlY29kZVN0cmluZyh0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5U
cnVlOgorICAgIHsKKyAgICBWYWx1ZSB2KHRydWUpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQ
YXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5k
XyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2VuRmFsc2U6CisgICAg
eworICAgIFZhbHVlIHYoZmFsc2UpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYp
OworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2lu
Xyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2lu
Xyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVsbDoKKyAgICB7CisgICAgVmFs
dWUgdjsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRW
YWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBi
cmVhazsKKyAgY2FzZSB0b2tlbkFycmF5U2VwYXJhdG9yOgorICBjYXNlIHRva2VuT2JqZWN0RW5k
OgorICBjYXNlIHRva2VuQXJyYXlFbmQ6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWRO
dWxsUGxhY2Vob2xkZXJzXykgeworICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2Vu
IGFuZCBtYXJrIHRoZSBjdXJyZW50IHZhbHVlIGFzIGEgbnVsbAorICAgICAgLy8gdG9rZW4uCisg
ICAgICBjdXJyZW50Xy0tOworICAgICAgVmFsdWUgdjsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3
YXBQYXlsb2FkKHYpOworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVu
dF8gLSBiZWdpbl8gLSAxKTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1
cnJlbnRfIC0gYmVnaW5fKTsKKyAgICAgIGJyZWFrOworICAgIH0gLy8gRWxzZSwgZmFsbCB0aHJv
dWdoLi4uCisgIGRlZmF1bHQ6CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9r
ZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0
b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjog
dmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAo
Y29sbGVjdENvbW1lbnRzXykgeworICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBs
YXN0VmFsdWVfID0gJmN1cnJlbnRWYWx1ZSgpOworICB9CisKKyAgLS1zdGFja0RlcHRoX2c7Cisg
IHJldHVybiBzdWNjZXNzZnVsOworfQorCit2b2lkIFJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMo
VG9rZW4mIHRva2VuKSB7CisgIGlmIChmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKKyAgICBk
byB7CisgICAgICByZWFkVG9rZW4odG9rZW4pOworICAgIH0gd2hpbGUgKHRva2VuLnR5cGVfID09
IHRva2VuQ29tbWVudCk7CisgIH0gZWxzZSB7CisgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgfQor
fQorCitib29sIFJlYWRlcjo6cmVhZFRva2VuKFRva2VuJiB0b2tlbikgeworICBza2lwU3BhY2Vz
KCk7CisgIHRva2VuLnN0YXJ0XyA9IGN1cnJlbnRfOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigp
OworICBib29sIG9rID0gdHJ1ZTsKKyAgc3dpdGNoIChjKSB7CisgIGNhc2UgJ3snOgorICAgIHRv
a2VuLnR5cGVfID0gdG9rZW5PYmplY3RCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnfSc6Cisg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEVuZDsKKyAgICBicmVhazsKKyAgY2FzZSAnWyc6
CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5QmVnaW47CisgICAgYnJlYWs7CisgIGNhc2Ug
J10nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUVuZDsKKyAgICBicmVhazsKKyAgY2Fz
ZSAnIic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblN0cmluZzsKKyAgICBvayA9IHJlYWRTdHJp
bmcoKTsKKyAgICBicmVhazsKKyAgY2FzZSAnLyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkNv
bW1lbnQ7CisgICAgb2sgPSByZWFkQ29tbWVudCgpOworICAgIGJyZWFrOworICBjYXNlICcwJzoK
KyAgY2FzZSAnMSc6CisgIGNhc2UgJzInOgorICBjYXNlICczJzoKKyAgY2FzZSAnNCc6CisgIGNh
c2UgJzUnOgorICBjYXNlICc2JzoKKyAgY2FzZSAnNyc6CisgIGNhc2UgJzgnOgorICBjYXNlICc5
JzoKKyAgY2FzZSAnLSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICByZWFk
TnVtYmVyKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ3QnOgorICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5UcnVlOworICAgIG9rID0gbWF0Y2goInJ1ZSIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdm
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRmFsc2U7CisgICAgb2sgPSBtYXRjaCgiYWxzZSIs
IDQpOworICAgIGJyZWFrOworICBjYXNlICduJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVs
bDsKKyAgICBvayA9IG1hdGNoKCJ1bGwiLCAzKTsKKyAgICBicmVhazsKKyAgY2FzZSAnLCc6Cisg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5U2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNl
ICc6JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOworICAgIGJyZWFr
OworICBjYXNlIDA6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOworICAgIGJy
ZWFrOworICBkZWZhdWx0OgorICAgIG9rID0gZmFsc2U7CisgICAgYnJlYWs7CisgIH0KKyAgaWYg
KCFvaykKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLmVuZF8gPSBjdXJy
ZW50XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUmVhZGVyOjpza2lwU3BhY2VzKCkgewor
ICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50XzsKKyAg
ICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcbicpCisg
ICAgICArK2N1cnJlbnRfOworICAgIGVsc2UKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Jvb2wg
UmVhZGVyOjptYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCkgeworICBp
ZiAoZW5kXyAtIGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7Cisg
IGludCBpbmRleCA9IHBhdHRlcm5MZW5ndGg7CisgIHdoaWxlIChpbmRleC0tKQorICAgIGlmIChj
dXJyZW50X1tpbmRleF0gIT0gcGF0dGVybltpbmRleF0pCisgICAgICByZXR1cm4gZmFsc2U7Cisg
IGN1cnJlbnRfICs9IHBhdHRlcm5MZW5ndGg7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
YWRlcjo6cmVhZENvbW1lbnQoKSB7CisgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRf
IC0gMTsKKyAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gZmFs
c2U7CisgIGlmIChjID09ICcqJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQo
KTsKKyAgZWxzZSBpZiAoYyA9PSAnLycpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNv
bW1lbnQoKTsKKyAgaWYgKCFzdWNjZXNzZnVsKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAo
Y29sbGVjdENvbW1lbnRzXykgeworICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29t
bWVudEJlZm9yZTsKKyAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFpbnNOZXdMaW5lKGxh
c3RWYWx1ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKKyAgICAgIGlmIChjICE9ICcqJyB8fCAhY29u
dGFpbnNOZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQorICAgICAgICBwbGFjZW1lbnQg
PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lOworICAgIH0KKworICAgIGFkZENvbW1lbnQoY29tbWVu
dEJlZ2luLCBjdXJyZW50XywgcGxhY2VtZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwor
c3RhdGljIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZUVPTChSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBS
ZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBzdGQ6OnN0cmluZyBub3JtYWxpemVkOworICBub3Jt
YWxpemVkLnJlc2VydmUoZW5kIC0gYmVnaW4pOworICBSZWFkZXI6OkxvY2F0aW9uIGN1cnJlbnQg
PSBiZWdpbjsKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7CisgICAgY2hhciBjID0gKmN1cnJl
bnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICBpZiAoY3VycmVudCAhPSBlbmQgJiYg
KmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgIC8vIGNvbnZlcnQgZG9zIEVPTAorICAgICAgICAg
KytjdXJyZW50OworICAgICAgLy8gY29udmVydCBNYWMgRU9MCisgICAgICBub3JtYWxpemVkICs9
ICdcbic7CisgICAgfSBlbHNlIHsKKyAgICAgIG5vcm1hbGl6ZWQgKz0gYzsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIG5vcm1hbGl6ZWQ7Cit9CisKK3ZvaWQKK1JlYWRlcjo6YWRkQ29tbWVudChMb2Nh
dGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgewor
ICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBub3JtYWxp
emVkID0gbm9ybWFsaXplRU9MKGJlZ2luLCBlbmQpOworICBpZiAocGxhY2VtZW50ID09IGNvbW1l
bnRBZnRlck9uU2FtZUxpbmUpIHsKKyAgICBhc3NlcnQobGFzdFZhbHVlXyAhPSAwKTsKKyAgICBs
YXN0VmFsdWVfLT5zZXRDb21tZW50KG5vcm1hbGl6ZWQsIHBsYWNlbWVudCk7CisgIH0gZWxzZSB7
CisgICAgY29tbWVudHNCZWZvcmVfICs9IG5vcm1hbGl6ZWQ7CisgIH0KK30KKworYm9vbCBSZWFk
ZXI6OnJlYWRDU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgewor
ICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJyonICYmICpjdXJyZW50
XyA9PSAnLycpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAn
Lyc7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkQ3BwU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAo
Y3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYg
KGMgPT0gJ1xuJykKKyAgICAgIGJyZWFrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIC8v
IENvbnN1bWUgRE9TIEVPTC4gSXQgd2lsbCBiZSBub3JtYWxpemVkIGluIGFkZENvbW1lbnQuCisg
ICAgICBpZiAoY3VycmVudF8gIT0gZW5kXyAmJiAqY3VycmVudF8gPT0gJ1xuJykKKyAgICAgICAg
Z2V0TmV4dENoYXIoKTsKKyAgICAgIC8vIEJyZWFrIG9uIE1vYyBPUyA5IEVPTC4KKyAgICAgIGJy
ZWFrOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZWFkZXI6OnJlYWRO
dW1iZXIoKSB7CisgIGNvbnN0IGNoYXIgKnAgPSBjdXJyZW50XzsKKyAgY2hhciBjID0gJzAnOyAv
LyBzdG9wZ2FwIGZvciBhbHJlYWR5IGNvbnN1bWVkIGNoYXJhY3RlcgorICAvLyBpbnRlZ3JhbCBw
YXJ0CisgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICBjID0gKGN1cnJlbnRfID0g
cCkgPCBlbmRfID8gKnArKyA6IDA7CisgIC8vIGZyYWN0aW9uYWwgcGFydAorICBpZiAoYyA9PSAn
LicpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hp
bGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5k
XyA/ICpwKysgOiAwOworICB9CisgIC8vIGV4cG9uZW50aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2Un
IHx8IGMgPT0gJ0UnKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAw
OworICAgIGlmIChjID09ICcrJyB8fCBjID09ICctJykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBw
KSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisg
ICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgIH0KK30KKworYm9v
bCBSZWFkZXI6OnJlYWRTdHJpbmcoKSB7CisgIENoYXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7CisgICAgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykK
KyAgICAgIGdldE5leHRDaGFyKCk7CisgICAgZWxzZSBpZiAoYyA9PSAnIicpCisgICAgICBicmVh
azsKKyAgfQorICByZXR1cm4gYyA9PSAnIic7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkT2JqZWN0
KFRva2VuJiB0b2tlblN0YXJ0KSB7CisgIFRva2VuIHRva2VuTmFtZTsKKyAgc3RkOjpzdHJpbmcg
bmFtZTsKKyAgVmFsdWUgaW5pdChvYmplY3RWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQ
YXlsb2FkKGluaXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0
LnN0YXJ0XyAtIGJlZ2luXyk7CisgIHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgeworICAg
IGJvb2wgaW5pdGlhbFRva2VuT2sgPSB0cnVlOworICAgIHdoaWxlICh0b2tlbk5hbWUudHlwZV8g
PT0gdG9rZW5Db21tZW50ICYmIGluaXRpYWxUb2tlbk9rKQorICAgICAgaW5pdGlhbFRva2VuT2sg
PSByZWFkVG9rZW4odG9rZW5OYW1lKTsKKyAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQorICAgICAg
YnJlYWs7CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1l
LmVtcHR5KCkpIC8vIGVtcHR5IG9iamVjdAorICAgICAgcmV0dXJuIHRydWU7CisgICAgbmFtZSA9
ICIiOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlm
ICghZGVjb2RlU3RyaW5nKHRva2VuTmFtZSwgbmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVy
RnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKyAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBl
XyA9PSB0b2tlbk51bWJlciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAg
IFZhbHVlIG51bWJlck5hbWU7CisgICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51
bWJlck5hbWUpKQorICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVu
ZCk7CisgICAgICBuYW1lID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOworICAgIH0gZWxzZSB7Cisg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICBUb2tlbiBjb2xvbjsKKyAgICBpZiAoIXJlYWRUb2tl
bihjb2xvbikgfHwgY29sb24udHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKKyAgICAg
IHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJzonIGFmdGVy
IG9iamVjdCBtZW1iZXIgbmFtZSIsIGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAg
IFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW25hbWVdOworICAgIG5vZGVzXy5wdXNoKCZ2
YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAg
ICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9t
RXJyb3IodG9rZW5PYmplY3RFbmQpOworCisgICAgVG9rZW4gY29tbWE7CisgICAgaWYgKCFyZWFk
VG9rZW4oY29tbWEpIHx8CisgICAgICAgIChjb21tYS50eXBlXyAhPSB0b2tlbk9iamVjdEVuZCAm
JiBjb21tYS50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAgICBjb21tYS50
eXBlXyAhPSB0b2tlbkNvbW1lbnQpKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVy
KAorICAgICAgICAgICJNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uIiwg
Y29tbWEsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgYm9vbCBmaW5hbGl6ZVRva2VuT2sg
PSB0cnVlOworICAgIHdoaWxlIChjb21tYS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgZmluYWxp
emVUb2tlbk9rKQorICAgICAgZmluYWxpemVUb2tlbk9rID0gcmVhZFRva2VuKGNvbW1hKTsKKyAg
ICBpZiAoY29tbWEudHlwZV8gPT0gdG9rZW5PYmplY3RFbmQpCisgICAgICByZXR1cm4gdHJ1ZTsK
KyAgfQorICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgIk1pc3NpbmcgJ30nIG9y
IG9iamVjdCBtZW1iZXIgbmFtZSIsIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOworfQorCiti
b29sIFJlYWRlcjo6cmVhZEFycmF5KFRva2VuJiB0b2tlblN0YXJ0KSB7CisgIFZhbHVlIGluaXQo
YXJyYXlWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7Cisg
IHNraXBTcGFjZXMoKTsKKyAgaWYgKCpjdXJyZW50XyA9PSAnXScpIC8vIGVtcHR5IGFycmF5Cisg
IHsKKyAgICBUb2tlbiBlbmRBcnJheTsKKyAgICByZWFkVG9rZW4oZW5kQXJyYXkpOworICAgIHJl
dHVybiB0cnVlOworICB9CisgIGludCBpbmRleCA9IDA7CisgIGZvciAoOzspIHsKKyAgICBWYWx1
ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtpbmRleCsrXTsKKyAgICBub2Rlc18ucHVzaCgmdmFs
dWUpOworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAg
aWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVy
cm9yKHRva2VuQXJyYXlFbmQpOworCisgICAgVG9rZW4gdG9rZW47CisgICAgLy8gQWNjZXB0IENv
bW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KKyAgICBvayA9IHJlYWRUb2tlbih0
b2tlbik7CisgICAgd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBvaykgewor
ICAgICAgb2sgPSByZWFkVG9rZW4odG9rZW4pOworICAgIH0KKyAgICBib29sIGJhZFRva2VuVHlw
ZSA9CisgICAgICAgICh0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmIHRva2Vu
LnR5cGVfICE9IHRva2VuQXJyYXlFbmQpOworICAgIGlmICghb2sgfHwgYmFkVG9rZW5UeXBlKSB7
CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5nICcs
JyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRpb24iLCB0b2tlbiwgdG9rZW5BcnJheUVuZCk7Cisg
ICAgfQorICAgIGlmICh0b2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7
CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9r
ZW4mIHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2Vu
LCBkZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXls
b2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFy
dF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRf
IC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1i
ZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICAvLyBBdHRlbXB0cyB0byBwYXJz
ZSB0aGUgbnVtYmVyIGFzIGFuIGludGVnZXIuIElmIHRoZSBudW1iZXIgaXMKKyAgLy8gbGFyZ2Vy
IHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZhbHVlIG9mIGFuIGludGVnZXIgdGhlbgorICAv
LyB3ZSBkZWNvZGUgdGhlIG51bWJlciBhcyBhIGRvdWJsZS4KKyAgTG9jYXRpb24gY3VycmVudCA9
IHRva2VuLnN0YXJ0XzsKKyAgYm9vbCBpc05lZ2F0aXZlID0gKmN1cnJlbnQgPT0gJy0nOworICBp
ZiAoaXNOZWdhdGl2ZSkKKyAgICArK2N1cnJlbnQ7CisgIC8vIFRPRE86IEhlbHAgdGhlIGNvbXBp
bGVyIGRvIHRoZSBkaXYgYW5kIG1vZCBhdCBjb21waWxlIHRpbWUgb3IgZ2V0IHJpZCBvZiB0aGVt
LgorICBWYWx1ZTo6TGFyZ2VzdFVJbnQgbWF4SW50ZWdlclZhbHVlID0KKyAgICAgIGlzTmVnYXRp
dmUgPyBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMQorICAgICAg
ICAgICAgICAgICA6IFZhbHVlOjptYXhMYXJnZXN0VUludDsKKyAgVmFsdWU6Okxhcmdlc3RVSW50
IHRocmVzaG9sZCA9IG1heEludGVnZXJWYWx1ZSAvIDEwOworICBWYWx1ZTo6TGFyZ2VzdFVJbnQg
dmFsdWUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IHRva2VuLmVuZF8pIHsKKyAgICBDaGFyIGMg
PSAqY3VycmVudCsrOworICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScpCisgICAgICByZXR1cm4g
ZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICBWYWx1ZTo6VUludCBkaWdpdChjIC0g
JzAnKTsKKyAgICBpZiAodmFsdWUgPj0gdGhyZXNob2xkKSB7CisgICAgICAvLyBXZSd2ZSBoaXQg
b3IgZXhjZWVkZWQgdGhlIG1heCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJ
ZgorICAgICAgLy8gYSkgd2UndmUgb25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBiKSB0aGlz
IGlzIHRoZSBsYXN0IGRpZ2l0LCBhbmQKKyAgICAgIC8vIGMpIGl0J3Mgc21hbGwgZW5vdWdoIHRv
IGZpdCBpbiB0aGF0IHJvdW5kaW5nIGRlbHRhLCB3ZSdyZSBva2F5LgorICAgICAgLy8gT3RoZXJ3
aXNlIHRyZWF0IHRoaXMgbnVtYmVyIGFzIGEgZG91YmxlIHRvIGF2b2lkIG92ZXJmbG93LgorICAg
ICAgaWYgKHZhbHVlID4gdGhyZXNob2xkIHx8IGN1cnJlbnQgIT0gdG9rZW4uZW5kXyB8fAorICAg
ICAgICAgIGRpZ2l0ID4gbWF4SW50ZWdlclZhbHVlICUgMTApIHsKKyAgICAgICAgcmV0dXJuIGRl
Y29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgICB9CisgICAgfQorICAgIHZhbHVlID0g
dmFsdWUgKiAxMCArIGRpZ2l0OworICB9CisgIGlmIChpc05lZ2F0aXZlICYmIHZhbHVlID09IG1h
eEludGVnZXJWYWx1ZSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Om1pbkxhcmdlc3RJbnQ7CisgIGVs
c2UgaWYgKGlzTmVnYXRpdmUpCisgICAgZGVjb2RlZCA9IC1WYWx1ZTo6TGFyZ2VzdEludCh2YWx1
ZSk7CisgIGVsc2UgaWYgKHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4SW50
KSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlCisgICAg
ZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29k
ZURvdWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVE
b3VibGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVl
KCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0
KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0
KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6
OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIGRvdWJsZSB2
YWx1ZSA9IDA7CisgIHN0ZDo6c3RyaW5nIGJ1ZmZlcih0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8p
OworICBzdGQ6OmlzdHJpbmdzdHJlYW0gaXMoYnVmZmVyKTsKKyAgaWYgKCEoaXMgPj4gdmFsdWUp
KQorICAgIHJldHVybiBhZGRFcnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0b2tlbi5zdGFydF8sIHRv
a2VuLmVuZF8pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICInIGlzIG5vdCBhIG51bWJlci4i
LAorICAgICAgICAgICAgICAgICAgICB0b2tlbik7CisgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKSB7
CisgIHN0ZDo6c3RyaW5nIGRlY29kZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmluZyh0b2tl
biwgZGVjb2RlZF9zdHJpbmcpKQorICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVjb2RlZChk
ZWNvZGVkX3N0cmluZyk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOwor
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwor
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2Vu
LCBzdGQ6OnN0cmluZyYgZGVjb2RlZCkgeworICBkZWNvZGVkLnJlc2VydmUodG9rZW4uZW5kXyAt
IHRva2VuLnN0YXJ0XyAtIDIpOworICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfICsg
MTsgLy8gc2tpcCAnIicKKyAgTG9jYXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAgIC8v
IGRvIG5vdCBpbmNsdWRlICciJworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBDaGFy
IGMgPSAqY3VycmVudCsrOworICAgIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICAgIGVs
c2UgaWYgKGMgPT0gJ1xcJykgeworICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAgICBy
ZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwg
Y3VycmVudCk7CisgICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0Y2gg
KGVzY2FwZSkgeworICAgICAgY2FzZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0gJyInOworICAg
ICAgICBicmVhazsKKyAgICAgIGNhc2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9ICcvJzsKKyAg
ICAgICAgYnJlYWs7CisgICAgICBjYXNlICdcXCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xcJzsK
KyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGIn
OworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9ICdc
Zic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnbic6CisgICAgICAgIGRlY29kZWQgKz0g
J1xuJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2RlZCAr
PSAnXHInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNvZGVk
ICs9ICdcdCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAgdW5z
aWduZWQgaW50IHVuaWNvZGU7CisgICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2ludCh0
b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBicmVh
azsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2FwZSBz
ZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICB9CisgICAgfSBlbHNl
IHsKKyAgICAgIGRlY29kZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYg
KCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29k
ZSkpCisgICAgcmV0dXJuIGZhbHNlOworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29k
ZSA8PSAweERCRkYpIHsKKyAgICAvLyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3Vy
cmVudCA8IDYpCisgICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwg
c2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4i
LAorICAgICAgICAgIHRva2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICAgIHVuc2lnbmVkIGlu
dCBzdXJyb2dhdGVQYWlyOworICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJl
bnQrKykgPT0gJ3UnKSB7CisgICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRv
a2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAw
eDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgz
RkYpOworICAgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAg
ICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2lu
IHRoZSBzZWNvbmQgaGFsZiBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgImEgdW5pY29kZSBz
dXJyb2dhdGUgcGFpciIsCisgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sCisgICAgICAgICAg
ICAgICAgICAgICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVh
ZGVyOjpkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUp
IHsKKyAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQorICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAg
ICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4
cGVjdGVkLiIsCisgICAgICAgIHRva2VuLAorICAgICAgICBjdXJyZW50KTsKKyAgdW5pY29kZSA9
IDA7CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hh
ciBjID0gKmN1cnJlbnQrKzsKKyAgICB1bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAm
JiBjIDw9ICc5JykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49
ICdhJyAmJiBjIDw9ICdmJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVs
c2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsg
MTA7CisgICAgZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5p
Y29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3Rl
ZC4iLAorICAgICAgICAgIHRva2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVy
biB0cnVlOworfQorCitib29sCitSZWFkZXI6OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBt
ZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4dHJhKSB7CisgIEVycm9ySW5mbyBpbmZv
OworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAg
aW5mby5leHRyYV8gPSBleHRyYTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBSZWFkZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNr
aXBVbnRpbFRva2VuKSB7CisgIGludCBlcnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsK
KyAgVG9rZW4gc2tpcDsKKyAgZm9yICg7OykgeworICAgIGlmICghcmVhZFRva2VuKHNraXApKQor
ICAgICAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNl
ZCBieSByZWNvdmVyeQorICAgIGlmIChza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNr
aXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0cmVhbSkKKyAgICAgIGJyZWFrOworICB9CisgIGVycm9y
c18ucmVzaXplKGVycm9yQ291bnQpOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVhZGVy
OjphZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIGFkZEVycm9yKG1l
c3NhZ2UsIHRva2VuKTsKKyAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9rZW4p
OworfQorCitWYWx1ZSYgUmVhZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5vZGVzXy50
b3AoKSk7IH0KKworUmVhZGVyOjpDaGFyIFJlYWRlcjo6Z2V0TmV4dENoYXIoKSB7CisgIGlmIChj
dXJyZW50XyA9PSBlbmRfKQorICAgIHJldHVybiAwOworICByZXR1cm4gKmN1cnJlbnRfKys7Cit9
CisKK3ZvaWQgUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsK
KyAgTG9jYXRpb24gY3VycmVudCA9IGJlZ2luXzsKKyAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9
IGN1cnJlbnQ7CisgIGxpbmUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1
cnJlbnQgIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0g
J1xyJykgeworICAgICAgaWYgKCpjdXJyZW50ID09ICdcbicpCisgICAgICAgICsrY3VycmVudDsK
KyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5lOworICAgIH0gZWxz
ZSBpZiAoYyA9PSAnXG4nKSB7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAg
ICsrbGluZTsKKyAgICB9CisgIH0KKyAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCisgIGNv
bHVtbiA9IGludChsb2NhdGlvbiAtIGxhc3RMaW5lU3RhcnQpICsgMTsKKyAgKytsaW5lOworfQor
CitzdGQ6OnN0cmluZyBSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBs
b2NhdGlvbikgY29uc3QgeworICBpbnQgbGluZSwgY29sdW1uOworICBnZXRMb2NhdGlvbkxpbmVB
bmRDb2x1bW4obG9jYXRpb24sIGxpbmUsIGNvbHVtbik7CisgIGNoYXIgYnVmZmVyWzE4ICsgMTYg
KyAxNiArIDFdOworICBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwg
Q29sdW1uICVkIiwgbGluZSwgY29sdW1uKTsKKyAgcmV0dXJuIGJ1ZmZlcjsKK30KKworc3RkOjpz
dHJpbmcgUmVhZGVyOjpnZXRMb2NhdGlvblNuaXBwZXQoTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0
IHsKKyAgICAgICBzdGQ6OnN0cmluZyBzbmlwcGV0ID0gIiI7CisgICAgICAgc3RkOjppc3RyaW5n
c3RyZWFtIGRvY1N0cmVhbShkb2N1bWVudF8pOworICAgICAgIGludCBsaW4sIGNvbDsKKyAgICAg
ICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4obG9jYXRpb24sIGxpbiwgY29sKTsKKyAgICAgICBz
dGQ6OnN0cmluZyBsaW5lOworICAgICAgIGZvciAoaW50IGk9MTsgaTxsaW4rMiAmJiBzdGQ6Omdl
dGxpbmUoZG9jU3RyZWFtLCBsaW5lKTsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYg
KGxpbi1pIDwgMikKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc25pcHBl
dCArPSAiICAiICsgc3RkOjp0b19zdHJpbmcoaSkgKyAiOiAiICsgbGluZSArICJcbiI7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJuIHNuaXBwZXQ7Cit9CisKKy8vIERl
cHJlY2F0ZWQuIFByZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorc3RkOjpzdHJp
bmcgUmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHJldHVybiBn
ZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCk7Cit9CisKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0
Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0IHsKKyAgc3RkOjpzdHJpbmcgZm9ybWF0dGVk
TWVzc2FnZTsKKyAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNf
LmJlZ2luKCk7CisgICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRF
cnJvcikgeworICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBmb3Jt
YXR0ZWRNZXNzYWdlICs9CisgICAgICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4o
ZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAiXG4iOworICAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0g
Z2V0TG9jYXRpb25TbmlwcGV0KGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICBmb3Jt
YXR0ZWRNZXNzYWdlICs9ICIgICIgKyBlcnJvci5tZXNzYWdlXyArICJcbiI7CisgICAgaWYgKGVy
cm9yLmV4dHJhXykKKyAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgICAiU2VlICIg
KyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IuZXh0cmFfKSArICIgZm9yIGRldGFpbC5c
biI7CisgIH0KKyAgcmV0dXJuIGZvcm1hdHRlZE1lc3NhZ2U7Cit9CisKK3N0ZDo6dmVjdG9yPFJl
YWRlcjo6U3RydWN0dXJlZEVycm9yPiBSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25z
dCB7CisgIHN0ZDo6dmVjdG9yPFJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBhbGxFcnJvcnM7Cisg
IGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBpdEVycm9yID0gZXJyb3JzXy5iZWdpbigpOwor
ICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQoKTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAg
ICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0RXJyb3I7CisgICAgUmVhZGVyOjpTdHJ1Y3R1
cmVkRXJyb3Igc3RydWN0dXJlZDsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9zdGFydCA9IGVycm9y
LnRva2VuXy5zdGFydF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJlZC5vZmZzZXRfbGltaXQgPSBl
cnJvci50b2tlbl8uZW5kXyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm1lc3NhZ2UgPSBlcnJv
ci5tZXNzYWdlXzsKKyAgICBhbGxFcnJvcnMucHVzaF9iYWNrKHN0cnVjdHVyZWQpOworICB9Cisg
IHJldHVybiBhbGxFcnJvcnM7Cit9CisKK2Jvb2wgUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFs
dWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgeworICBzaXplX3QgbGVuZ3Ro
ID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aAor
ICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNl
OworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5z
dGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0g
ZW5kXyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZv
LnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRy
YV8gPSAwOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0
cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKSB7CisgIHNpemVfdCBsZW5ndGggPSBl
bmRfIC0gYmVnaW5fOworICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAg
fHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aAorICAgIHx8IGV4dHJhLmdldE9mZnNl
dExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAg
dG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1
ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zm
c2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47Cisg
IGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGJlZ2luXyArIGV4dHJh
LmdldE9mZnNldFN0YXJ0KCk7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6Omdvb2QoKSBjb25zdCB7CisgIHJldHVybiAhZXJyb3Jz
Xy5zaXplKCk7Cit9CisKKy8vIGV4YWN0IGNvcHkgb2YgRmVhdHVyZXMKK2NsYXNzIE91ckZlYXR1
cmVzIHsKK3B1YmxpYzoKKyAgc3RhdGljIE91ckZlYXR1cmVzIGFsbCgpOworICBib29sIGFsbG93
Q29tbWVudHNfOworICBib29sIHN0cmljdFJvb3RfOworICBib29sIGFsbG93RHJvcHBlZE51bGxQ
bGFjZWhvbGRlcnNfOworICBib29sIGFsbG93TnVtZXJpY0tleXNfOworICBib29sIGFsbG93U2lu
Z2xlUXVvdGVzXzsKKyAgYm9vbCBmYWlsSWZFeHRyYV87CisgIGJvb2wgcmVqZWN0RHVwS2V5c187
CisgIGJvb2wgYWxsb3dTcGVjaWFsRmxvYXRzXzsKKyAgaW50IHN0YWNrTGltaXRfOworfTsgIC8v
IE91ckZlYXR1cmVzCisKKy8vIGV4YWN0IGNvcHkgb2YgSW1wbGVtZW50YXRpb24gb2YgY2xhc3Mg
RmVhdHVyZXMKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK091ckZlYXR1
cmVzIE91ckZlYXR1cmVzOjphbGwoKSB7IHJldHVybiBPdXJGZWF0dXJlcygpOyB9CisKKy8vIElt
cGxlbWVudGF0aW9uIG9mIGNsYXNzIFJlYWRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gZXhhY3QgY29weSBvZiBSZWFkZXIsIHJlbmFtZWQgdG8gT3VyUmVhZGVy
CitjbGFzcyBPdXJSZWFkZXIgeworcHVibGljOgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAgdHlw
ZWRlZiBjb25zdCBDaGFyKiBMb2NhdGlvbjsKKyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7Cisg
ICAgc2l6ZV90IG9mZnNldF9zdGFydDsKKyAgICBzaXplX3Qgb2Zmc2V0X2xpbWl0OworICAgIHN0
ZDo6c3RyaW5nIG1lc3NhZ2U7CisgIH07CisKKyAgT3VyUmVhZGVyKE91ckZlYXR1cmVzIGNvbnN0
JiBmZWF0dXJlcyk7CisgIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAg
ICAgICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAg
ICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7CisgIHN0ZDo6c3RyaW5nIGdl
dEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJl
ZEVycm9yPiBnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3Q7CisgIGJvb2wgcHVzaEVycm9yKGNv
bnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpOworICBib29sIHB1
c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBWYWx1ZSYgZXh0cmEpOworICBib29sIGdvb2QoKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
T3VyUmVhZGVyKE91clJlYWRlciBjb25zdCYpOyAgLy8gbm8gaW1wbAorICB2b2lkIG9wZXJhdG9y
PShPdXJSZWFkZXIgY29uc3QmKTsgIC8vIG5vIGltcGwKKworICBlbnVtIFRva2VuVHlwZSB7Cisg
ICAgdG9rZW5FbmRPZlN0cmVhbSA9IDAsCisgICAgdG9rZW5PYmplY3RCZWdpbiwKKyAgICB0b2tl
bk9iamVjdEVuZCwKKyAgICB0b2tlbkFycmF5QmVnaW4sCisgICAgdG9rZW5BcnJheUVuZCwKKyAg
ICB0b2tlblN0cmluZywKKyAgICB0b2tlbk51bWJlciwKKyAgICB0b2tlblRydWUsCisgICAgdG9r
ZW5GYWxzZSwKKyAgICB0b2tlbk51bGwsCisgICAgdG9rZW5OYU4sCisgICAgdG9rZW5Qb3NJbmYs
CisgICAgdG9rZW5OZWdJbmYsCisgICAgdG9rZW5BcnJheVNlcGFyYXRvciwKKyAgICB0b2tlbk1l
bWJlclNlcGFyYXRvciwKKyAgICB0b2tlbkNvbW1lbnQsCisgICAgdG9rZW5FcnJvcgorICB9Owor
CisgIGNsYXNzIFRva2VuIHsKKyAgcHVibGljOgorICAgIFRva2VuVHlwZSB0eXBlXzsKKyAgICBM
b2NhdGlvbiBzdGFydF87CisgICAgTG9jYXRpb24gZW5kXzsKKyAgfTsKKworICBjbGFzcyBFcnJv
ckluZm8geworICBwdWJsaWM6CisgICAgVG9rZW4gdG9rZW5fOworICAgIHN0ZDo6c3RyaW5nIG1l
c3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJhXzsKKyAgfTsKKworICB0eXBlZGVmIHN0ZDo6ZGVx
dWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAgYm9vbCByZWFkVG9rZW4oVG9rZW4mIHRva2VuKTsK
KyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJvb2wgbWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50
IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJlYWRDb21tZW50KCk7CisgIGJvb2wgcmVhZENTdHls
ZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZFN0
cmluZygpOworICBib29sIHJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpOworICBib29sIHJlYWROdW1i
ZXIoYm9vbCBjaGVja0luZik7CisgIGJvb2wgcmVhZFZhbHVlKCk7CisgIGJvb2wgcmVhZE9iamVj
dChUb2tlbiYgdG9rZW4pOworICBib29sIHJlYWRBcnJheShUb2tlbiYgdG9rZW4pOworICBib29s
IGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYg
dG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2Vu
KTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2Rl
ZCk7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlRG91
YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVVuaWNvZGVD
b2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j
YXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBl
bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUp
OworICBib29sIGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgYWRk
RXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24g
ZXh0cmEgPSAwKTsKKyAgYm9vbCByZWNvdmVyRnJvbUVycm9yKFRva2VuVHlwZSBza2lwVW50aWxU
b2tlbik7CisgIGJvb2wgYWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIHZvaWQgc2tpcFVu
dGlsU3BhY2UoKTsKKyAgVmFsdWUmIGN1cnJlbnRWYWx1ZSgpOworICBDaGFyIGdldE5leHRDaGFy
KCk7CisgIHZvaWQKKyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9u
LCBpbnQmIGxpbmUsIGludCYgY29sdW1uKSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21t
ZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KTsKKyAgdm9pZCBza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pOworCisgIHR5cGVk
ZWYgc3RkOjpzdGFjazxWYWx1ZSo+IE5vZGVzOworICBOb2RlcyBub2Rlc187CisgIEVycm9ycyBl
cnJvcnNfOworICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIExvY2F0aW9uIGJlZ2luXzsKKyAg
TG9jYXRpb24gZW5kXzsKKyAgTG9jYXRpb24gY3VycmVudF87CisgIExvY2F0aW9uIGxhc3RWYWx1
ZUVuZF87CisgIFZhbHVlKiBsYXN0VmFsdWVfOworICBzdGQ6OnN0cmluZyBjb21tZW50c0JlZm9y
ZV87CisgIGludCBzdGFja0RlcHRoXzsKKworICBPdXJGZWF0dXJlcyBjb25zdCBmZWF0dXJlc187
CisgIGJvb2wgY29sbGVjdENvbW1lbnRzXzsKK307ICAvLyBPdXJSZWFkZXIKKworLy8gY29tcGxl
dGUgY29weSBvZiBSZWFkIGltcGwsIGZvciBPdXJSZWFkZXIKKworT3VyUmVhZGVyOjpPdXJSZWFk
ZXIoT3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVu
dF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAorICAg
ICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwKKyAgICAgIHN0YWNrRGVwdGhfKDAp
LAorICAgICAgZmVhdHVyZXNfKGZlYXR1cmVzKSwgY29sbGVjdENvbW1lbnRzXygpIHsKK30KKwor
Ym9vbCBPdXJSZWFkZXI6OnBhcnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICAgICAgICBWYWx1ZSYgcm9v
dCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cykgeworICBpZiAoIWZl
YXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGNvbGxlY3RDb21tZW50cyA9IGZhbHNlOwor
ICB9CisKKyAgYmVnaW5fID0gYmVnaW5Eb2M7CisgIGVuZF8gPSBlbmREb2M7CisgIGNvbGxlY3RD
b21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7CisgIGN1cnJlbnRfID0gYmVnaW5fOworICBsYXN0
VmFsdWVFbmRfID0gMDsKKyAgbGFzdFZhbHVlXyA9IDA7CisgIGNvbW1lbnRzQmVmb3JlXyA9ICIi
OworICBlcnJvcnNfLmNsZWFyKCk7CisgIHdoaWxlICghbm9kZXNfLmVtcHR5KCkpCisgICAgbm9k
ZXNfLnBvcCgpOworICBub2Rlc18ucHVzaCgmcm9vdCk7CisKKyAgc3RhY2tEZXB0aF8gPSAwOwor
ICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKKyAgVG9rZW4gdG9rZW47CisgIHNraXBD
b21tZW50VG9rZW5zKHRva2VuKTsKKyAgaWYgKGZlYXR1cmVzXy5mYWlsSWZFeHRyYV8pIHsKKyAg
ICBpZiAodG9rZW4udHlwZV8gIT0gdG9rZW5FcnJvciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkVu
ZE9mU3RyZWFtKSB7CisgICAgICBhZGRFcnJvcigiRXh0cmEgbm9uLXdoaXRlc3BhY2UgYWZ0ZXIg
SlNPTiB2YWx1ZS4iLCB0b2tlbik7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9Cisg
IGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICBy
b290LnNldENvbW1lbnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVh
dHVyZXNfLnN0cmljdFJvb3RfKSB7CisgICAgaWYgKCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5p
c09iamVjdCgpKSB7CisgICAgICAvLyBTZXQgZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9j
LCBpZGVhbGx5IHNob3VsZCBiZSBmaXJzdCB0b2tlbiBmb3VuZAorICAgICAgLy8gaW4gZG9jCisg
ICAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdp
bkRvYzsKKyAgICAgIHRva2VuLmVuZF8gPSBlbmREb2M7CisgICAgICBhZGRFcnJvcigKKyAgICAg
ICAgICAiQSB2YWxpZCBKU09OIGRvY3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFu
IG9iamVjdCB2YWx1ZS4iLAorICAgICAgICAgIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgIH0KKyAgcmV0dXJuIHN1Y2Nlc3NmdWw7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpy
ZWFkVmFsdWUoKSB7CisgIGlmIChzdGFja0RlcHRoXyA+PSBmZWF0dXJlc18uc3RhY2tMaW1pdF8p
IHRocm93UnVudGltZUVycm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLiIp
OworICArK3N0YWNrRGVwdGhfOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnMo
dG9rZW4pOworICBib29sIHN1Y2Nlc3NmdWwgPSB0cnVlOworCisgIGlmIChjb2xsZWN0Q29tbWVu
dHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkgeworICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dENvbW1lbnQoY29tbWVudHNCZWZvcmVfLCBjb21tZW50QmVmb3JlKTsKKyAgICBjb21tZW50c0Jl
Zm9yZV8gPSAiIjsKKyAgfQorCisgIHN3aXRjaCAodG9rZW4udHlwZV8pIHsKKyAgY2FzZSB0b2tl
bk9iamVjdEJlZ2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2VuKTsKKyAgICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJl
YWs7CisgIGNhc2UgdG9rZW5BcnJheUJlZ2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQXJyYXko
dG9rZW4pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVn
aW5fKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk51bWJlcjoKKyAgICBzdWNjZXNzZnVsID0g
ZGVjb2RlTnVtYmVyKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblN0cmluZzoKKyAg
ICBzdWNjZXNzZnVsID0gZGVjb2RlU3RyaW5nKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0
b2tlblRydWU6CisgICAgeworICAgIFZhbHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4u
c3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tl
bi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5GYWxzZToK
KyAgICB7CisgICAgVmFsdWUgdihmYWxzZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0g
YmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0g
YmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdWxsOgorICAgIHsKKyAg
ICBWYWx1ZSB2OworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQor
ICAgIGJyZWFrOworICBjYXNlIHRva2VuTmFOOgorICAgIHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3
YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0
YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4u
ZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2VuUG9zSW5mOgor
ICAgIHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJl
YWs7CisgIGNhc2UgdG9rZW5OZWdJbmY6CisgICAgeworICAgIFZhbHVlIHYoLXN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBh
eWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRf
IC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRf
IC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRv
cjoKKyAgY2FzZSB0b2tlbk9iamVjdEVuZDoKKyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlm
IChmZWF0dXJlc18uYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJV
bi1yZWFkIiB0aGUgY3VycmVudCB0b2tlbiBhbmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBh
IG51bGwKKyAgICAgIC8vIHRva2VuLgorICAgICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7
CisgICAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldFN0YXJ0KGN1cnJlbnRfIC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsK
KyAgICB9IC8vIGVsc2UsIGZhbGwgdGhyb3VnaCAuLi4KKyAgZGVmYXVsdDoKKyAgICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIHJldHVy
biBhZGRFcnJvcigiU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVk
LiIsIHRva2VuKTsKKyAgfQorCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgbGFzdFZh
bHVlRW5kXyA9IGN1cnJlbnRfOworICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7Cisg
IH0KKworICAtLXN0YWNrRGVwdGhfOworICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKwordm9pZCBP
dXJSZWFkZXI6OnNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVy
ZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsK
KyAgICB9IHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2Ugewor
ICAgIHJlYWRUb2tlbih0b2tlbik7CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRUb2tl
bihUb2tlbiYgdG9rZW4pIHsKKyAgc2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJy
ZW50XzsKKyAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3
aXRjaCAoYykgeworICBjYXNlICd7JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVn
aW47CisgICAgYnJlYWs7CisgIGNhc2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmpl
Y3RFbmQ7CisgICAgYnJlYWs7CisgIGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5B
cnJheUJlZ2luOworICAgIGJyZWFrOworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRv
a2VuQXJyYXlFbmQ7CisgICAgYnJlYWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0g
dG9rZW5TdHJpbmc7CisgICAgb2sgPSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2Ug
J1wnJzoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93U2luZ2xlUXVvdGVzXykgeworICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5TdHJpbmc7CisgICAgb2sgPSByZWFkU3RyaW5nU2luZ2xlUXVvdGUoKTsK
KyAgICBicmVhazsKKyAgICB9IC8vIGVsc2UgY29udGludWUKKyAgY2FzZSAnLyc6CisgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbkNvbW1lbnQ7CisgICAgb2sgPSByZWFkQ29tbWVudCgpOworICAgIGJy
ZWFrOworICBjYXNlICcwJzoKKyAgY2FzZSAnMSc6CisgIGNhc2UgJzInOgorICBjYXNlICczJzoK
KyAgY2FzZSAnNCc6CisgIGNhc2UgJzUnOgorICBjYXNlICc2JzoKKyAgY2FzZSAnNyc6CisgIGNh
c2UgJzgnOgorICBjYXNlICc5JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAg
IHJlYWROdW1iZXIoZmFsc2UpOworICAgIGJyZWFrOworICBjYXNlICctJzoKKyAgICBpZiAocmVh
ZE51bWJlcih0cnVlKSkgeworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICB9
IGVsc2UgeworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk5lZ0luZjsKKyAgICAgIG9rID0gZmVh
dHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18gJiYgbWF0Y2goIm5maW5pdHkiLCA3KTsKKyAgICB9
CisgICAgYnJlYWs7CisgIGNhc2UgJ3QnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5UcnVlOwor
ICAgIG9rID0gbWF0Y2goInJ1ZSIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdmJzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuRmFsc2U7CisgICAgb2sgPSBtYXRjaCgiYWxzZSIsIDQpOworICAg
IGJyZWFrOworICBjYXNlICduJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVsbDsKKyAgICBv
ayA9IG1hdGNoKCJ1bGwiLCAzKTsKKyAgICBicmVhazsKKyAgY2FzZSAnTic6CisgICAgaWYgKGZl
YXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2Vu
TmFOOworICAgICAgb2sgPSBtYXRjaCgiYU4iLCAyKTsKKyAgICB9IGVsc2UgeworICAgICAgb2sg
PSBmYWxzZTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgJ0knOgorICAgIGlmIChmZWF0dXJl
c18uYWxsb3dTcGVjaWFsRmxvYXRzXykgeworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlblBvc0lu
ZjsKKyAgICAgIG9rID0gbWF0Y2goIm5maW5pdHkiLCA3KTsKKyAgICB9IGVsc2UgeworICAgICAg
b2sgPSBmYWxzZTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgJywnOgorICAgIHRva2VuLnR5
cGVfID0gdG9rZW5BcnJheVNlcGFyYXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAnOic6CisgICAg
dG9rZW4udHlwZV8gPSB0b2tlbk1lbWJlclNlcGFyYXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAw
OgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FbmRPZlN0cmVhbTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBvayA9IGZhbHNlOworICAgIGJyZWFrOworICB9CisgIGlmICghb2spCisgICAg
dG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5lbmRfID0gY3VycmVudF87CisgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIE91clJlYWRlcjo6c2tpcFNwYWNlcygpIHsKKyAgd2hpbGUg
KGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudF87CisgICAgaWYgKGMg
PT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicgfHwgYyA9PSAnXG4nKQorICAgICAgKytj
dXJyZW50XzsKKyAgICBlbHNlCisgICAgICBicmVhazsKKyAgfQorfQorCitib29sIE91clJlYWRl
cjo6bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpIHsKKyAgaWYgKGVu
ZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBpbnQg
aW5kZXggPSBwYXR0ZXJuTGVuZ3RoOworICB3aGlsZSAoaW5kZXgtLSkKKyAgICBpZiAoY3VycmVu
dF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdKQorICAgICAgcmV0dXJuIGZhbHNlOworICBjdXJy
ZW50XyArPSBwYXR0ZXJuTGVuZ3RoOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFk
ZXI6OnJlYWRDb21tZW50KCkgeworICBMb2NhdGlvbiBjb21tZW50QmVnaW4gPSBjdXJyZW50XyAt
IDE7CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNl
OworICBpZiAoYyA9PSAnKicpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDU3R5bGVDb21tZW50KCk7
CisgIGVsc2UgaWYgKGMgPT0gJy8nKQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ3BwU3R5bGVDb21t
ZW50KCk7CisgIGlmICghc3VjY2Vzc2Z1bCkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKGNv
bGxlY3RDb21tZW50c18pIHsKKyAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCA9IGNvbW1l
bnRCZWZvcmU7CisgICAgaWYgKGxhc3RWYWx1ZUVuZF8gJiYgIWNvbnRhaW5zTmV3TGluZShsYXN0
VmFsdWVFbmRfLCBjb21tZW50QmVnaW4pKSB7CisgICAgICBpZiAoYyAhPSAnKicgfHwgIWNvbnRh
aW5zTmV3TGluZShjb21tZW50QmVnaW4sIGN1cnJlbnRfKSkKKyAgICAgICAgcGxhY2VtZW50ID0g
Y29tbWVudEFmdGVyT25TYW1lTGluZTsKKyAgICB9CisKKyAgICBhZGRDb21tZW50KGNvbW1lbnRC
ZWdpbiwgY3VycmVudF8sIHBsYWNlbWVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQKK091clJlYWRlcjo6YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBD
b21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7
CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9MKGJlZ2luLCBl
bmQpOworICBpZiAocGxhY2VtZW50ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHsKKyAgICBh
c3NlcnQobGFzdFZhbHVlXyAhPSAwKTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21tZW50KG5vcm1h
bGl6ZWQsIHBsYWNlbWVudCk7CisgIH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZvcmVfICs9IG5v
cm1hbGl6ZWQ7CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkg
eworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFy
KCk7CisgICAgaWYgKGMgPT0gJyonICYmICpjdXJyZW50XyA9PSAnLycpCisgICAgICBicmVhazsK
KyAgfQorICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAnLyc7Cit9CisKK2Jvb2wgT3VyUmVhZGVy
OjpyZWFkQ3BwU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgewor
ICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xuJykKKyAgICAgIGJy
ZWFrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQg
d2lsbCBiZSBub3JtYWxpemVkIGluIGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0g
ZW5kXyAmJiAqY3VycmVudF8gPT0gJ1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAg
IC8vIEJyZWFrIG9uIE1vYyBPUyA5IEVPTC4KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWROdW1iZXIoYm9vbCBjaGVja0lu
ZikgeworICBjb25zdCBjaGFyICpwID0gY3VycmVudF87CisgIGlmIChjaGVja0luZiAmJiBwICE9
IGVuZF8gJiYgKnAgPT0gJ0knKSB7CisgICAgY3VycmVudF8gPSArK3A7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisgIGNoYXIgYyA9ICcwJzsgLy8gc3RvcGdhcCBmb3IgYWxyZWFkeSBjb25zdW1l
ZCBjaGFyYWN0ZXIKKyAgLy8gaW50ZWdyYWwgcGFydAorICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8
PSAnOScpCisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAvLyBm
cmFjdGlvbmFsIHBhcnQKKyAgaWYgKGMgPT0gJy4nKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHAp
IDwgZW5kXyA/ICpwKysgOiAwOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAg
ICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICAvLyBleHBv
bmVudGlhbCBwYXJ0CisgIGlmIChjID09ICdlJyB8fCBjID09ICdFJykgeworICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICBpZiAoYyA9PSAnKycgfHwgYyA9PSAn
LScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hp
bGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5k
XyA/ICpwKysgOiAwOworICB9CisgIHJldHVybiB0cnVlOworfQorYm9vbCBPdXJSZWFkZXI6OnJl
YWRTdHJpbmcoKSB7CisgIENoYXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7
CisgICAgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykKKyAgICAgIGdldE5l
eHRDaGFyKCk7CisgICAgZWxzZSBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgfQorICBy
ZXR1cm4gYyA9PSAnIic7Cit9CisKKworYm9vbCBPdXJSZWFkZXI6OnJlYWRTdHJpbmdTaW5nbGVR
dW90ZSgpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAg
ICBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENo
YXIoKTsKKyAgICBlbHNlIGlmIChjID09ICdcJycpCisgICAgICBicmVhazsKKyAgfQorICByZXR1
cm4gYyA9PSAnXCcnOworfQorCitib29sIE91clJlYWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9r
ZW5TdGFydCkgeworICBUb2tlbiB0b2tlbk5hbWU7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIFZh
bHVlIGluaXQob2JqZWN0VmFsdWUpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0
KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBi
ZWdpbl8pOworICB3aGlsZSAocmVhZFRva2VuKHRva2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRp
YWxUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29t
bWVudCAmJiBpbml0aWFsVG9rZW5PaykKKyAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2Vu
KHRva2VuTmFtZSk7CisgICAgaWYgKCFpbml0aWFsVG9rZW5PaykKKyAgICAgIGJyZWFrOworICAg
IGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5PYmplY3RFbmQgJiYgbmFtZS5lbXB0eSgpKSAv
LyBlbXB0eSBvYmplY3QKKyAgICAgIHJldHVybiB0cnVlOworICAgIG5hbWUgPSAiIjsKKyAgICBp
ZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuU3RyaW5nKSB7CisgICAgICBpZiAoIWRlY29kZVN0
cmluZyh0b2tlbk5hbWUsIG5hbWUpKQorICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0
b2tlbk9iamVjdEVuZCk7CisgICAgfSBlbHNlIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5O
dW1iZXIgJiYgZmVhdHVyZXNfLmFsbG93TnVtZXJpY0tleXNfKSB7CisgICAgICBWYWx1ZSBudW1i
ZXJOYW1lOworICAgICAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW5OYW1lLCBudW1iZXJOYW1lKSkK
KyAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgICAg
bmFtZSA9IG51bWJlck5hbWUuYXNTdHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgVG9rZW4gY29sb247CisgICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8
IGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2VwYXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRk
RXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVt
YmVyIG5hbWUiLCBjb2xvbiwgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBpZiAobmFtZS5s
ZW5ndGgoKSA+PSAoMVU8PDMwKSkgdGhyb3dSdW50aW1lRXJyb3IoImtleWxlbmd0aCA+PSAyXjMw
Iik7CisgICAgaWYgKGZlYXR1cmVzXy5yZWplY3REdXBLZXlzXyAmJiBjdXJyZW50VmFsdWUoKS5p
c01lbWJlcihuYW1lKSkgeworICAgICAgc3RkOjpzdHJpbmcgbXNnID0gIkR1cGxpY2F0ZSBrZXk6
ICciICsgbmFtZSArICInIjsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAg
ICAgICAgbXNnLCB0b2tlbk5hbWUsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgVmFsdWUm
IHZhbHVlID0gY3VycmVudFZhbHVlKClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsK
KyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICgh
b2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0
b2tlbk9iamVjdEVuZCk7CisKKyAgICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRUb2tlbihj
b21tYSkgfHwKKyAgICAgICAgKGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYmIGNvbW1h
LnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5cGVfICE9
IHRva2VuQ29tbWVudCkpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAg
ICAgICAgIk1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCBjb21tYSwg
dG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBib29sIGZpbmFsaXplVG9rZW5PayA9IHRydWU7
CisgICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBmaW5hbGl6ZVRva2Vu
T2spCisgICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFkVG9rZW4oY29tbWEpOworICAgIGlmIChj
b21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkKKyAgICAgIHJldHVybiB0cnVlOworICB9Cisg
IHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAiTWlzc2luZyAnfScgb3Igb2JqZWN0
IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7Cit9CisKK2Jvb2wgT3Vy
UmVhZGVyOjpyZWFkQXJyYXkoVG9rZW4mIHRva2VuU3RhcnQpIHsKKyAgVmFsdWUgaW5pdChhcnJh
eVZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRW
YWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tp
cFNwYWNlcygpOworICBpZiAoKmN1cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgewor
ICAgIFRva2VuIGVuZEFycmF5OworICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJu
IHRydWU7CisgIH0KKyAgaW50IGluZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2
YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7
CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAo
IW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Io
dG9rZW5BcnJheUVuZCk7CisKKyAgICBUb2tlbiB0b2tlbjsKKyAgICAvLyBBY2NlcHQgQ29tbWVu
dCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgorICAgIG9rID0gcmVhZFRva2VuKHRva2Vu
KTsKKyAgICB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAg
ICBvayA9IHJlYWRUb2tlbih0b2tlbik7CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0K
KyAgICAgICAgKHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYgdG9rZW4udHlw
ZV8gIT0gdG9rZW5BcnJheUVuZCk7CisgICAgaWYgKCFvayB8fCBiYWRUb2tlblR5cGUpIHsKKyAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywnIG9y
ICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIHRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9
CisgICAgaWYgKHRva2VuLnR5cGVfID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tl
biYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4s
IGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0
XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8g
LSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51
bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBh
cnNlIHRoZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBpcworICAvLyBsYXJn
ZXIgdGhhbiB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisg
IC8vIHdlIGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50
ID0gdG9rZW4uc3RhcnRfOworICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9PSAnLSc7Cisg
IGlmIChpc05lZ2F0aXZlKQorICAgICsrY3VycmVudDsKKyAgLy8gVE9ETzogSGVscCB0aGUgY29t
cGlsZXIgZG8gdGhlIGRpdiBhbmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBnZXQgcmlkIG9mIHRo
ZW0uCisgIFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPQorICAgICAgaXNOZWdh
dGl2ZSA/IFZhbHVlOjpMYXJnZXN0VUludCgtVmFsdWU6Om1pbkxhcmdlc3RJbnQpCisgICAgICAg
ICAgICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50OworICBWYWx1ZTo6TGFyZ2VzdFVJbnQg
dGhyZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7CisgIFZhbHVlOjpMYXJnZXN0VUludCB2
YWx1ZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgdG9rZW4uZW5kXykgeworICAgIENoYXIgYyA9
ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKKyAgICAgIHJldHVybiBk
ZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOworICAgIFZhbHVlOjpVSW50IGRpZ2l0KGMgLSAn
MCcpOworICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGQpIHsKKyAgICAgIC8vIFdlJ3ZlIGhpdCBv
ciBleGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElm
CisgICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIGIpIHRoaXMg
aXMgdGhlIGxhc3QgZGlnaXQsIGFuZAorICAgICAgLy8gYykgaXQncyBzbWFsbCBlbm91Z2ggdG8g
Zml0IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCisgICAgICAvLyBPdGhlcndp
c2UgdHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQgb3ZlcmZsb3cuCisgICAg
ICBpZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8CisgICAg
ICAgICAgZGlnaXQgPiBtYXhJbnRlZ2VyVmFsdWUgJSAxMCkgeworICAgICAgICByZXR1cm4gZGVj
b2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICAgIH0KKyAgICB9CisgICAgdmFsdWUgPSB2
YWx1ZSAqIDEwICsgZGlnaXQ7CisgIH0KKyAgaWYgKGlzTmVnYXRpdmUpCisgICAgZGVjb2RlZCA9
IC1WYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UgaWYgKHZhbHVlIDw9IFZhbHVlOjpM
YXJnZXN0VUludChWYWx1ZTo6bWF4SW50KSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJ
bnQodmFsdWUpOworICBlbHNlCisgICAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFs
dWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4s
IFZhbHVlJiBkZWNvZGVkKSB7CisgIGRvdWJsZSB2YWx1ZSA9IDA7CisgIGNvbnN0IGludCBidWZm
ZXJTaXplID0gMzI7CisgIGludCBjb3VudDsKKyAgaW50IGxlbmd0aCA9IGludCh0b2tlbi5lbmRf
IC0gdG9rZW4uc3RhcnRfKTsKKworICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgYnVmZmVyIG92
ZXJmbG93IGV4cGxvaXRzLgorICBpZiAobGVuZ3RoIDwgMCkgeworICAgIHJldHVybiBhZGRFcnJv
cigiVW5hYmxlIHRvIHBhcnNlIHRva2VuIGxlbmd0aCIsIHRva2VuKTsKKyAgfQorCisgIC8vIEF2
b2lkIHVzaW5nIGEgc3RyaW5nIGNvbnN0YW50IGZvciB0aGUgZm9ybWF0IGNvbnRyb2wgc3RyaW5n
IGdpdmVuIHRvCisgIC8vIHNzY2FuZiwgYXMgdGhpcyBjYW4gY2F1c2UgaGFyZCB0byBkZWJ1ZyBj
cmFzaGVzIG9uIE9TIFguIFNlZSBoZXJlIGZvciBtb3JlCisgIC8vIGluZm86CisgIC8vCisgIC8v
ICAgICBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L21hYy8jRE9DVU1FTlRBVElP
Ti9EZXZlbG9wZXJUb29scy9nY2MtNC4wLjEvZ2NjL0luY29tcGF0aWJpbGl0aWVzLmh0bWwKKyAg
Y2hhciBmb3JtYXRbXSA9ICIlbGYiOworCisgIGlmIChsZW5ndGggPD0gYnVmZmVyU2l6ZSkgewor
ICAgIENoYXIgYnVmZmVyW2J1ZmZlclNpemUgKyAxXTsKKyAgICBtZW1jcHkoYnVmZmVyLCB0b2tl
bi5zdGFydF8sIGxlbmd0aCk7CisgICAgYnVmZmVyW2xlbmd0aF0gPSAwOworICAgIGNvdW50ID0g
c3NjYW5mKGJ1ZmZlciwgZm9ybWF0LCAmdmFsdWUpOworICB9IGVsc2UgeworICAgIHN0ZDo6c3Ry
aW5nIGJ1ZmZlcih0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pOworICAgIGNvdW50ID0gc3NjYW5m
KGJ1ZmZlci5jX3N0cigpLCBmb3JtYXQsICZ2YWx1ZSk7CisgIH0KKworICBpZiAoY291bnQgIT0g
MSkKKyAgICByZXR1cm4gYWRkRXJyb3IoIiciICsgc3RkOjpzdHJpbmcodG9rZW4uc3RhcnRfLCB0
b2tlbi5lbmRfKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiJyBpcyBub3QgYSBudW1iZXIu
IiwKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4pOworICBkZWNvZGVkID0gdmFsdWU7CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tl
bikgeworICBzdGQ6OnN0cmluZyBkZWNvZGVkX3N0cmluZzsKKyAgaWYgKCFkZWNvZGVTdHJpbmco
dG9rZW4sIGRlY29kZWRfc3RyaW5nKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIFZhbHVlIGRlY29k
ZWQoZGVjb2RlZF9zdHJpbmcpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVk
KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5f
KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7
CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2Vu
JiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRlY29kZWQpIHsKKyAgZGVjb2RlZC5yZXNlcnZlKHRva2Vu
LmVuZF8gLSB0b2tlbi5zdGFydF8gLSAyKTsKKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0
YXJ0XyArIDE7IC8vIHNraXAgJyInCisgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVuZF8gLSAxOyAg
ICAgICAvLyBkbyBub3QgaW5jbHVkZSAnIicKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7Cisg
ICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsK
KyAgICBlbHNlIGlmIChjID09ICdcXCcpIHsKKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCkKKyAg
ICAgICAgcmV0dXJuIGFkZEVycm9yKCJFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwg
dG9rZW4sIGN1cnJlbnQpOworICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsrOworICAgICAg
c3dpdGNoIChlc2NhcGUpIHsKKyAgICAgIGNhc2UgJyInOgorICAgICAgICBkZWNvZGVkICs9ICci
JzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICcvJzoKKyAgICAgICAgZGVjb2RlZCArPSAn
Lyc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnXFwnOgorICAgICAgICBkZWNvZGVkICs9
ICdcXCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnYic6CisgICAgICAgIGRlY29kZWQg
Kz0gJ1xiJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdmJzoKKyAgICAgICAgZGVjb2Rl
ZCArPSAnXGYnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ24nOgorICAgICAgICBkZWNv
ZGVkICs9ICdcbic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncic6CisgICAgICAgIGRl
Y29kZWQgKz0gJ1xyJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd0JzoKKyAgICAgICAg
ZGVjb2RlZCArPSAnXHQnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3UnOiB7CisgICAg
ICAgIHVuc2lnbmVkIGludCB1bmljb2RlOworICAgICAgICBpZiAoIWRlY29kZVVuaWNvZGVDb2Rl
UG9pbnQodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBkZWNvZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKKyAgICAg
IH0gYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkJhZCBl
c2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICBkZWNvZGVkICs9IGM7CisgICAgfQorICB9CisgIHJldHVybiB0cnVl
OworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9r
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkg
eworCisgIGlmICghZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBl
bmQsIHVuaWNvZGUpKQorICAgIHJldHVybiBmYWxzZTsKKyAgaWYgKHVuaWNvZGUgPj0gMHhEODAw
ICYmIHVuaWNvZGUgPD0gMHhEQkZGKSB7CisgICAgLy8gc3Vycm9nYXRlIHBhaXJzCisgICAgaWYg
KGVuZCAtIGN1cnJlbnQgPCA2KQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJh
ZGRpdGlvbmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUgc3Vycm9n
YXRlIHBhaXIuIiwKKyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsKKyAgICB1
bnNpZ25lZCBpbnQgc3Vycm9nYXRlUGFpcjsKKyAgICBpZiAoKihjdXJyZW50KyspID09ICdcXCcg
JiYgKihjdXJyZW50KyspID09ICd1JykgeworICAgICAgaWYgKGRlY29kZVVuaWNvZGVFc2NhcGVT
ZXF1ZW5jZSh0b2tlbiwgY3VycmVudCwgZW5kLCBzdXJyb2dhdGVQYWlyKSkgeworICAgICAgICB1
bmljb2RlID0gMHgxMDAwMCArICgodW5pY29kZSAmIDB4M0ZGKSA8PCAxMCkgKyAoc3Vycm9nYXRl
UGFpciAmIDB4M0ZGKTsKKyAgICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fSBlbHNlCisgICAgICByZXR1cm4gYWRkRXJyb3IoImV4cGVjdGluZyBhbm90aGVyIFxcdSB0b2tl
biB0byBiZWdpbiB0aGUgc2Vjb25kIGhhbGYgb2YgIgorICAgICAgICAgICAgICAgICAgICAgICJh
IHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIiLAorICAgICAgICAgICAgICAgICAgICAgIHRva2VuLAor
ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQor
Citib29sIE91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tl
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1
cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9u
IGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50JiB1bmljb2RlKSB7CisgIGlmIChlbmQgLSBjdXJyZW50IDwgNCkKKyAgICByZXR1cm4gYWRk
RXJyb3IoCisgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBm
b3VyIGRpZ2l0cyBleHBlY3RlZC4iLAorICAgICAgICB0b2tlbiwKKyAgICAgICAgY3VycmVudCk7
CisgIHVuaWNvZGUgPSAwOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytpbmRl
eCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAgICBp
ZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7CisgICAg
ZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAnYScg
KyAxMDsKKyAgICBlbHNlIGlmIChjID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNvZGUg
Kz0gYyAtICdBJyArIDEwOworICAgIGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAg
ICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwg
ZGlnaXQgZXhwZWN0ZWQuIiwKKyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsK
KyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbAorT3VyUmVhZGVyOjphZGRFcnJvcihjb25z
dCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSkgewor
ICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdl
XyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gZXh0cmE7CisgIGVycm9yc18ucHVzaF9iYWNr
KGluZm8pOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWNvdmVyRnJv
bUVycm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikgeworICBpbnQgZXJyb3JDb3VudCA9IGlu
dChlcnJvcnNfLnNpemUoKSk7CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAo
IXJlYWRUb2tlbihza2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBk
aXNjYXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBz
a2lwVW50aWxUb2tlbiB8fCBza2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCisgICAgICBi
cmVhazsKKyAgfQorICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIE91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9r
ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxU
b2tlbikgeworICBhZGRFcnJvcihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJv
bUVycm9yKHNraXBVbnRpbFRva2VuKTsKK30KKworVmFsdWUmIE91clJlYWRlcjo6Y3VycmVudFZh
bHVlKCkgeyByZXR1cm4gKihub2Rlc18udG9wKCkpOyB9CisKK091clJlYWRlcjo6Q2hhciBPdXJS
ZWFkZXI6OmdldE5leHRDaGFyKCkgeworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1
cm4gMDsKKyAgcmV0dXJuICpjdXJyZW50XysrOworfQorCit2b2lkIE91clJlYWRlcjo6Z2V0TG9j
YXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCYgY29sdW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBi
ZWdpbl87CisgIExvY2F0aW9uIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0gMDsK
KyAgd2hpbGUgKGN1cnJlbnQgPCBsb2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBD
aGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgqY3Vy
cmVudCA9PSAnXG4nKQorICAgICAgICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0g
Y3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAg
ICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfQorICB9Cisg
IC8vIGNvbHVtbiAmIGxpbmUgc3RhcnQgYXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBs
YXN0TGluZVN0YXJ0KSArIDE7CisgICsrbGluZTsKK30KKworc3RkOjpzdHJpbmcgT3VyUmVhZGVy
OjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAg
aW50IGxpbmUsIGNvbHVtbjsKKyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBs
aW5lLCBjb2x1bW4pOworICBjaGFyIGJ1ZmZlclsxOCArIDE2ICsgMTYgKyAxXTsKKyAgc25wcmlu
dGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNv
bHVtbik7CisgIHJldHVybiBidWZmZXI7Cit9CisKK3N0ZDo6c3RyaW5nIE91clJlYWRlcjo6Z2V0
Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0IHsKKyAgc3RkOjpzdHJpbmcgZm9ybWF0dGVk
TWVzc2FnZTsKKyAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNf
LmJlZ2luKCk7CisgICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRF
cnJvcikgeworICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBmb3Jt
YXR0ZWRNZXNzYWdlICs9CisgICAgICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4o
ZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAiXG4iOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAg
IiArIGVycm9yLm1lc3NhZ2VfICsgIlxuIjsKKyAgICBpZiAoZXJyb3IuZXh0cmFfKQorICAgICAg
Zm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFu
ZENvbHVtbihlcnJvci5leHRyYV8pICsgIiBmb3IgZGV0YWlsLlxuIjsKKyAgfQorICByZXR1cm4g
Zm9ybWF0dGVkTWVzc2FnZTsKK30KKworc3RkOjp2ZWN0b3I8T3VyUmVhZGVyOjpTdHJ1Y3R1cmVk
RXJyb3I+IE91clJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsKKyAgc3RkOjp2
ZWN0b3I8T3VyUmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9yIChFcnJv
cnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAgaXRF
cnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0IEVy
cm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
ciBzdHJ1Y3R1cmVkOworICAgIHN0cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9rZW5f
LnN0YXJ0XyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9yLnRv
a2VuXy5lbmRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1lc3Nh
Z2VfOworICAgIGFsbEVycm9ycy5wdXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0dXJu
IGFsbEVycm9yczsKK30KKworYm9vbCBPdXJSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYg
dmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7CisgIHNpemVfdCBsZW5ndGggPSBl
bmRfIC0gYmVnaW5fOworICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAg
fHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7Cisg
IFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0
XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBlbmRf
ICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9r
ZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9
IDA7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBPdXJSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVu
ZF8gLSBiZWdpbl87CisgIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8
fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoCisgICAgfHwgZXh0cmEuZ2V0T2Zmc2V0
TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0
b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVl
LmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZz
ZXRMaW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAg
aW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEu
Z2V0T2Zmc2V0U3RhcnQoKTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0
cnVlOworfQorCitib29sIE91clJlYWRlcjo6Z29vZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFlcnJv
cnNfLnNpemUoKTsKK30KKworCitjbGFzcyBPdXJDaGFyUmVhZGVyIDogcHVibGljIENoYXJSZWFk
ZXIgeworICBib29sIGNvbnN0IGNvbGxlY3RDb21tZW50c187CisgIE91clJlYWRlciByZWFkZXJf
OworcHVibGljOgorICBPdXJDaGFyUmVhZGVyKAorICAgIGJvb2wgY29sbGVjdENvbW1lbnRzLAor
ICAgIE91ckZlYXR1cmVzIGNvbnN0JiBmZWF0dXJlcykKKyAgOiBjb2xsZWN0Q29tbWVudHNfKGNv
bGxlY3RDb21tZW50cykKKyAgLCByZWFkZXJfKGZlYXR1cmVzKQorICB7fQorICBib29sIHBhcnNl
KAorICAgICAgY2hhciBjb25zdCogYmVnaW5Eb2MsIGNoYXIgY29uc3QqIGVuZERvYywKKyAgICAg
IFZhbHVlKiByb290LCBzdGQ6OnN0cmluZyogZXJycykgeworICAgIGJvb2wgb2sgPSByZWFkZXJf
LnBhcnNlKGJlZ2luRG9jLCBlbmREb2MsICpyb290LCBjb2xsZWN0Q29tbWVudHNfKTsKKyAgICBp
ZiAoZXJycykgeworICAgICAgKmVycnMgPSByZWFkZXJfLmdldEZvcm1hdHRlZEVycm9yTWVzc2Fn
ZXMoKTsKKyAgICB9CisgICAgcmV0dXJuIG9rOworICB9Cit9OworCitDaGFyUmVhZGVyQnVpbGRl
cjo6Q2hhclJlYWRlckJ1aWxkZXIoKQoreworICBzZXREZWZhdWx0cygmc2V0dGluZ3NfKTsKK30K
K0NoYXJSZWFkZXJCdWlsZGVyOjp+Q2hhclJlYWRlckJ1aWxkZXIoKQore30KK0NoYXJSZWFkZXIq
IENoYXJSZWFkZXJCdWlsZGVyOjpuZXdDaGFyUmVhZGVyKCkgY29uc3QKK3sKKyAgYm9vbCBjb2xs
ZWN0Q29tbWVudHMgPSBzZXR0aW5nc19bImNvbGxlY3RDb21tZW50cyJdLmFzQm9vbCgpOworICBP
dXJGZWF0dXJlcyBmZWF0dXJlcyA9IE91ckZlYXR1cmVzOjphbGwoKTsKKyAgZmVhdHVyZXMuYWxs
b3dDb21tZW50c18gPSBzZXR0aW5nc19bImFsbG93Q29tbWVudHMiXS5hc0Jvb2woKTsKKyAgZmVh
dHVyZXMuc3RyaWN0Um9vdF8gPSBzZXR0aW5nc19bInN0cmljdFJvb3QiXS5hc0Jvb2woKTsKKyAg
ZmVhdHVyZXMuYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18gPSBzZXR0aW5nc19bImFsbG93
RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1l
cmljS2V5c18gPSBzZXR0aW5nc19bImFsbG93TnVtZXJpY0tleXMiXS5hc0Jvb2woKTsKKyAgZmVh
dHVyZXMuYWxsb3dTaW5nbGVRdW90ZXNfID0gc2V0dGluZ3NfWyJhbGxvd1NpbmdsZVF1b3RlcyJd
LmFzQm9vbCgpOworICBmZWF0dXJlcy5zdGFja0xpbWl0XyA9IHNldHRpbmdzX1sic3RhY2tMaW1p
dCJdLmFzSW50KCk7CisgIGZlYXR1cmVzLmZhaWxJZkV4dHJhXyA9IHNldHRpbmdzX1siZmFpbElm
RXh0cmEiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMucmVqZWN0RHVwS2V5c18gPSBzZXR0aW5nc19b
InJlamVjdER1cEtleXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTcGVjaWFsRmxvYXRz
XyA9IHNldHRpbmdzX1siYWxsb3dTcGVjaWFsRmxvYXRzIl0uYXNCb29sKCk7CisgIHJldHVybiBu
ZXcgT3VyQ2hhclJlYWRlcihjb2xsZWN0Q29tbWVudHMsIGZlYXR1cmVzKTsKK30KK3N0YXRpYyB2
b2lkIGdldFZhbGlkUmVhZGVyS2V5cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tleXMp
Cit7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29sbGVj
dENvbW1lbnRzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dDb21tZW50cyIpOworICB2
YWxpZF9rZXlzLT5pbnNlcnQoInN0cmljdFJvb3QiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJh
bGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxs
b3dOdW1lcmljS2V5cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93U2luZ2xlUXVvdGVz
Iik7CisgIHZhbGlkX2tleXMtPmluc2VydCgic3RhY2tMaW1pdCIpOworICB2YWxpZF9rZXlzLT5p
bnNlcnQoImZhaWxJZkV4dHJhIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgicmVqZWN0RHVwS2V5
cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93U3BlY2lhbEZsb2F0cyIpOworfQorYm9v
bCBDaGFyUmVhZGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0
Cit7CisgIEpzb246OlZhbHVlIG15X2ludmFsaWQ7CisgIGlmICghaW52YWxpZCkgaW52YWxpZCA9
ICZteV9pbnZhbGlkOyAgLy8gc28gd2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3IgTlVMTAorICBK
c29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB2YWxp
ZF9rZXlzOworICBnZXRWYWxpZFJlYWRlcktleXMoJnZhbGlkX2tleXMpOworICBWYWx1ZTo6TWVt
YmVycyBrZXlzID0gc2V0dGluZ3NfLmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVfdCBuID0ga2V5
cy5zaXplKCk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgc3RkOjpz
dHJpbmcgY29uc3QmIGtleSA9IGtleXNbaV07CisgICAgaWYgKHZhbGlkX2tleXMuZmluZChrZXkp
ID09IHZhbGlkX2tleXMuZW5kKCkpIHsKKyAgICAgIGludltrZXldID0gc2V0dGluZ3NfW2tleV07
CisgICAgfQorICB9CisgIHJldHVybiAwdSA9PSBpbnYuc2l6ZSgpOworfQorVmFsdWUmIENoYXJS
ZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGtleSkKK3sKKyAgcmV0dXJuIHNl
dHRpbmdzX1trZXldOworfQorLy8gc3RhdGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzdHJp
Y3RNb2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncykKK3sKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJT
dHJpY3RNb2RlXQorICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50cyJdID0gZmFsc2U7CisgICgq
c2V0dGluZ3MpWyJzdHJpY3RSb290Il0gPSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dEcm9w
cGVkTnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd051bWVy
aWNLZXlzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U2luZ2xlUXVvdGVzIl0gPSBm
YWxzZTsKKyAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEwMDA7CisgICgqc2V0dGluZ3Mp
WyJmYWlsSWZFeHRyYSJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5ncylbInJlamVjdER1cEtleXMiXSA9
IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworLy8h
IFtDaGFyUmVhZGVyQnVpbGRlclN0cmljdE1vZGVdCit9CisvLyBzdGF0aWMKK3ZvaWQgQ2hhclJl
YWRlckJ1aWxkZXI6OnNldERlZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncykKK3sKKy8vISBb
Q2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0c10KKyAgKCpzZXR0aW5ncylbImNvbGxlY3RDb21tZW50
cyJdID0gdHJ1ZTsKKyAgKCpzZXR0aW5ncylbImFsbG93Q29tbWVudHMiXSA9IHRydWU7CisgICgq
c2V0dGluZ3MpWyJzdHJpY3RSb290Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93RHJv
cHBlZE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dOdW1l
cmljS2V5cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd1NpbmdsZVF1b3RlcyJdID0g
ZmFsc2U7CisgICgqc2V0dGluZ3MpWyJzdGFja0xpbWl0Il0gPSAxMDAwOworICAoKnNldHRpbmdz
KVsiZmFpbElmRXh0cmEiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsicmVqZWN0RHVwS2V5cyJd
ID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOwor
Ly8hIFtDaGFyUmVhZGVyQnVpbGRlckRlZmF1bHRzXQorfQorCisvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBnbG9iYWwgZnVuY3Rpb25zCisKK2Jvb2wgcGFyc2VGcm9tU3Ry
ZWFtKAorICAgIENoYXJSZWFkZXI6OkZhY3RvcnkgY29uc3QmIGZhY3QsIHN0ZDo6aXN0cmVhbSYg
c2luLAorICAgIFZhbHVlKiByb290LCBzdGQ6OnN0cmluZyogZXJycykKK3sKKyAgc3RkOjpvc3Ry
aW5nc3RyZWFtIHNzaW47CisgIHNzaW4gPDwgc2luLnJkYnVmKCk7CisgIHN0ZDo6c3RyaW5nIGRv
YyA9IHNzaW4uc3RyKCk7CisgIGNoYXIgY29uc3QqIGJlZ2luID0gZG9jLmRhdGEoKTsKKyAgY2hh
ciBjb25zdCogZW5kID0gYmVnaW4gKyBkb2Muc2l6ZSgpOworICAvLyBOb3RlIHRoYXQgd2UgZG8g
bm90IGFjdHVhbGx5IG5lZWQgYSBudWxsLXRlcm1pbmF0b3IuCisgIENoYXJSZWFkZXJQdHIgY29u
c3QgcmVhZGVyKGZhY3QubmV3Q2hhclJlYWRlcigpKTsKKyAgcmV0dXJuIHJlYWRlci0+cGFyc2Uo
YmVnaW4sIGVuZCwgcm9vdCwgZXJycyk7Cit9CisKK3N0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+Pihz
dGQ6OmlzdHJlYW0mIHNpbiwgVmFsdWUmIHJvb3QpIHsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYjsK
KyAgc3RkOjpzdHJpbmcgZXJyczsKKyAgYm9vbCBvayA9IHBhcnNlRnJvbVN0cmVhbShiLCBzaW4s
ICZyb290LCAmZXJycyk7CisgIGlmICghb2spIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAg
ICAgICAgICJFcnJvciBmcm9tIHJlYWRlcjogJXMiLAorICAgICAgICAgICAgZXJycy5jX3N0cigp
KTsKKworICAgIHRocm93UnVudGltZUVycm9yKGVycnMpOworICB9CisgIHJldHVybiBzaW47Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNv
bnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcAorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRl
bnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFsdWVpdGVyYXRvci5pbmwKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKKworLy8gaW5jbHVkZWQgYnkganNvbl92YWx1ZS5jcHAKKworbmFtZXNwYWNl
IEpzb24geworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBj
bGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCitWYWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoKQorICAgIDog
Y3VycmVudF8oKSwgaXNOdWxsXyh0cnVlKSB7Cit9CisKK1ZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1
ZUl0ZXJhdG9yQmFzZSgKKyAgICBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYg
Y3VycmVudCkKKyAgICA6IGN1cnJlbnRfKGN1cnJlbnQpLCBpc051bGxfKGZhbHNlKSB7fQorCitW
YWx1ZSYgVmFsdWVJdGVyYXRvckJhc2U6OmRlcmVmKCkgY29uc3QgeworICByZXR1cm4gY3VycmVu
dF8tPnNlY29uZDsKK30KKwordm9pZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aW5jcmVtZW50KCkgewor
ICArK2N1cnJlbnRfOworfQorCit2b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpkZWNyZW1lbnQoKSB7
CisgIC0tY3VycmVudF87Cit9CisKK1ZhbHVlSXRlcmF0b3JCYXNlOjpkaWZmZXJlbmNlX3R5cGUK
K1ZhbHVlSXRlcmF0b3JCYXNlOjpjb21wdXRlRGlzdGFuY2UoY29uc3QgU2VsZlR5cGUmIG90aGVy
KSBjb25zdCB7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyAgcmV0dXJuIG90aGVy
LmN1cnJlbnRfIC0gY3VycmVudF87CisjZWxzZQorICAvLyBJdGVyYXRvciBmb3IgbnVsbCB2YWx1
ZSBhcmUgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIGRlZmF1bHQKKyAgLy8gY29uc3RydWN0b3IsIHdo
aWNoIGluaXRpYWxpemUgY3VycmVudF8gdG8gdGhlIGRlZmF1bHQKKyAgLy8gc3RkOjptYXA6Oml0
ZXJhdG9yLiBBcyBiZWdpbigpIGFuZCBlbmQoKSBhcmUgdHdvIGluc3RhbmNlCisgIC8vIG9mIHRo
ZSBkZWZhdWx0IHN0ZDo6bWFwOjppdGVyYXRvciwgdGhleSBjYW4gbm90IGJlIGNvbXBhcmVkLgor
ICAvLyBUbyBhbGxvdyB0aGlzLCB3ZSBoYW5kbGUgdGhpcyBjb21wYXJpc29uIHNwZWNpZmljYWxs
eS4KKyAgaWYgKGlzTnVsbF8gJiYgb3RoZXIuaXNOdWxsXykgeworICAgIHJldHVybiAwOworICB9
CisKKyAgLy8gVXNhZ2Ugb2Ygc3RkOjpkaXN0YW5jZSBpcyBub3QgcG9ydGFibGUgKGRvZXMgbm90
IGNvbXBpbGUgd2l0aCBTdW4gU3R1ZGlvIDEyCisgIC8vIFJvZ3VlV2F2ZSBTVEwsCisgIC8vIHdo
aWNoIGlzIHRoZSBvbmUgdXNlZCBieSBkZWZhdWx0KS4KKyAgLy8gVXNpbmcgYSBwb3J0YWJsZSBo
YW5kLW1hZGUgdmVyc2lvbiBmb3Igbm9uIHJhbmRvbSBpdGVyYXRvciBpbnN0ZWFkOgorICAvLyAg
IHJldHVybiBkaWZmZXJlbmNlX3R5cGUoIHN0ZDo6ZGlzdGFuY2UoIGN1cnJlbnRfLCBvdGhlci5j
dXJyZW50XyApICk7CisgIGRpZmZlcmVuY2VfdHlwZSBteURpc3RhbmNlID0gMDsKKyAgZm9yIChW
YWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IGN1cnJlbnRfOyBpdCAhPSBvdGhlci5j
dXJyZW50XzsKKyAgICAgICArK2l0KSB7CisgICAgKytteURpc3RhbmNlOworICB9CisgIHJldHVy
biBteURpc3RhbmNlOworI2VuZGlmCit9CisKK2Jvb2wgVmFsdWVJdGVyYXRvckJhc2U6OmlzRXF1
YWwoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7CisgIGlmIChpc051bGxfKSB7CisgICAg
cmV0dXJuIG90aGVyLmlzTnVsbF87CisgIH0KKyAgcmV0dXJuIGN1cnJlbnRfID09IG90aGVyLmN1
cnJlbnRfOworfQorCit2b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KGNvbnN0IFNlbGZUeXBl
JiBvdGhlcikgeworICBjdXJyZW50XyA9IG90aGVyLmN1cnJlbnRfOworICBpc051bGxfID0gb3Ro
ZXIuaXNOdWxsXzsKK30KKworVmFsdWUgVmFsdWVJdGVyYXRvckJhc2U6OmtleSgpIGNvbnN0IHsK
KyAgY29uc3QgVmFsdWU6OkNaU3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7Cisg
IGlmIChjenN0cmluZy5kYXRhKCkpIHsKKyAgICBpZiAoY3pzdHJpbmcuaXNTdGF0aWNTdHJpbmco
KSkKKyAgICAgIHJldHVybiBWYWx1ZShTdGF0aWNTdHJpbmcoY3pzdHJpbmcuZGF0YSgpKSk7Cisg
ICAgcmV0dXJuIFZhbHVlKGN6c3RyaW5nLmRhdGEoKSwgY3pzdHJpbmcuZGF0YSgpICsgY3pzdHJp
bmcubGVuZ3RoKCkpOworICB9CisgIHJldHVybiBWYWx1ZShjenN0cmluZy5pbmRleCgpKTsKK30K
KworVUludCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aW5kZXgoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVl
OjpDWlN0cmluZyBjenN0cmluZyA9ICgqY3VycmVudF8pLmZpcnN0OworICBpZiAoIWN6c3RyaW5n
LmRhdGEoKSkKKyAgICByZXR1cm4gY3pzdHJpbmcuaW5kZXgoKTsKKyAgcmV0dXJuIFZhbHVlOjpV
SW50KC0xKTsKK30KKworc3RkOjpzdHJpbmcgVmFsdWVJdGVyYXRvckJhc2U6Om5hbWUoKSBjb25z
dCB7CisgIGNoYXIgY29uc3QqIGtlZXk7CisgIGNoYXIgY29uc3QqIGVuZDsKKyAga2VleSA9IG1l
bWJlck5hbWUoJmVuZCk7CisgIGlmICgha2VleSkgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgIHJl
dHVybiBzdGQ6OnN0cmluZyhrZWV5LCBlbmQpOworfQorCitjaGFyIGNvbnN0KiBWYWx1ZUl0ZXJh
dG9yQmFzZTo6bWVtYmVyTmFtZSgpIGNvbnN0IHsKKyAgY29uc3QgY2hhciogY25hbWUgPSAoKmN1
cnJlbnRfKS5maXJzdC5kYXRhKCk7CisgIHJldHVybiBjbmFtZSA/IGNuYW1lIDogIiI7Cit9CisK
K2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKGNoYXIgY29uc3QqKiBl
bmQpIGNvbnN0IHsKKyAgY29uc3QgY2hhciogY25hbWUgPSAoKmN1cnJlbnRfKS5maXJzdC5kYXRh
KCk7CisgIGlmICghY25hbWUpIHsKKyAgICAqZW5kID0gTlVMTDsKKyAgICByZXR1cm4gTlVMTDsK
KyAgfQorICAqZW5kID0gY25hbWUgKyAoKmN1cnJlbnRfKS5maXJzdC5sZW5ndGgoKTsKKyAgcmV0
dXJuIGNuYW1lOworfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyBjbGFzcyBWYWx1ZUNvbnN0SXRlcmF0b3IKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKworVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3Io
KSB7fQorCitWYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvcigKKyAgICBjb25z
dCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IFZhbHVlSXRl
cmF0b3JCYXNlKGN1cnJlbnQpIHt9CisKK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0
ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVyKQorICAgIDogVmFsdWVJdGVyYXRvckJh
c2Uob3RoZXIpIHt9CisKK1ZhbHVlQ29uc3RJdGVyYXRvciYgVmFsdWVDb25zdEl0ZXJhdG9yOjoK
K29wZXJhdG9yPShjb25zdCBWYWx1ZUl0ZXJhdG9yQmFzZSYgb3RoZXIpIHsKKyAgY29weShvdGhl
cik7CisgIHJldHVybiAqdGhpczsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWVJdGVyYXRvcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworCitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKCkge30K
KworVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVz
OjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKGN1cnJlbnQpIHt9
CisKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9y
JiBvdGhlcikKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKG90aGVyKSB7CisgIHRocm93UnVudGlt
ZUVycm9yKCJDb25zdEl0ZXJhdG9yIHRvIEl0ZXJhdG9yIHNob3VsZCBuZXZlciBiZSBhbGxvd2Vk
LiIpOworfQorCitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlSXRlcmF0
b3ImIG90aGVyKQorICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHt9CisKK1ZhbHVlSXRl
cmF0b3ImIFZhbHVlSXRlcmF0b3I6Om9wZXJhdG9yPShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIHsK
KyAgY29weShvdGhlcik7CisgIHJldHVybiAqdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNv
bgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGli
X2pzb24vanNvbl92YWx1ZWl0ZXJhdG9yLmlubAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisK
KworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3Jj
L2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdo
dCAyMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91
ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBh
dCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+CisjaW5j
bHVkZSA8anNvbi92YWx1ZS5oPgorI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CisjZW5kaWYgLy8g
aWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8bWF0aC5oPgorI2lu
Y2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxjc3RyaW5nPgor
I2luY2x1ZGUgPGNhc3NlcnQ+CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyNpbmNsdWRlIDxjcHB0
bC9jb25zdHN0cmluZy5oPgorI2VuZGlmCisjaW5jbHVkZSA8Y3N0ZGRlZj4gLy8gc2l6ZV90Cisj
aW5jbHVkZSA8YWxnb3JpdGhtPiAvLyBtaW4oKQorCisjZGVmaW5lIEpTT05fQVNTRVJUX1VOUkVB
Q0hBQkxFIGFzc2VydChmYWxzZSkKKworLyoKKy0tIFZhbHZlIDEvNy8xNgorNDcwMiB1bnJlYWNo
YWJsZSBjb2RlCisqLworI3ByYWdtYSB3YXJuaW5nIChwdXNoKQorI3ByYWdtYSB3YXJuaW5nIChk
aXNhYmxlOiA0NzAyKQorCituYW1lc3BhY2UgSnNvbiB7CisKKy8vIFRoaXMgaXMgYSB3YWxrYXJv
dW5kIHRvIGF2b2lkIHRoZSBzdGF0aWMgaW5pdGlhbGl6YXRpb24gb2YgVmFsdWU6Om51bGwuCisv
LyBrTnVsbCBtdXN0IGJlIHdvcmQtYWxpZ25lZCB0byBhdm9pZCBjcmFzaGluZyBvbiBBUk0uICBX
ZSB1c2UgYW4gYWxpZ25tZW50IG9mCisvLyA4IChpbnN0ZWFkIG9mIDQpIGFzIGEgYml0IG9mIGZ1
dHVyZS1wcm9vZmluZy4KKyNpZiBkZWZpbmVkKF9fQVJNRUxfXykKKyNkZWZpbmUgQUxJR05BUyhi
eXRlX2FsaWdubWVudCkgX19hdHRyaWJ1dGVfXygoYWxpZ25lZChieXRlX2FsaWdubWVudCkpKQor
I2Vsc2UKKyNkZWZpbmUgQUxJR05BUyhieXRlX2FsaWdubWVudCkKKyNlbmRpZgorc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGNoYXIgQUxJR05BUyg4KSBrTnVsbFtzaXplb2YoVmFsdWUpXSA9IHsgMCB9
OworY29uc3QgdW5zaWduZWQgY2hhciYga051bGxSZWYgPSBrTnVsbFswXTsKK2NvbnN0IFZhbHVl
JiBWYWx1ZTo6bnVsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVmFsdWUmPihrTnVsbFJlZik7
Citjb25zdCBWYWx1ZSYgVmFsdWU6Om51bGxSZWYgPSBudWxsOworCitjb25zdCBJbnQgVmFsdWU6
Om1pbkludCA9IEludCh+KFVJbnQoLTEpIC8gMikpOworY29uc3QgSW50IFZhbHVlOjptYXhJbnQg
PSBJbnQoVUludCgtMSkgLyAyKTsKK2NvbnN0IFVJbnQgVmFsdWU6Om1heFVJbnQgPSBVSW50KC0x
KTsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorY29uc3QgSW50NjQgVmFsdWU6Om1pbklu
dDY0ID0gSW50NjQofihVSW50NjQoLTEpIC8gMikpOworY29uc3QgSW50NjQgVmFsdWU6Om1heElu
dDY0ID0gSW50NjQoVUludDY0KC0xKSAvIDIpOworY29uc3QgVUludDY0IFZhbHVlOjptYXhVSW50
NjQgPSBVSW50NjQoLTEpOworLy8gVGhlIGNvbnN0YW50IGlzIGhhcmQtY29kZWQgYmVjYXVzZSBz
b21lIGNvbXBpbGVyIGhhdmUgdHJvdWJsZQorLy8gY29udmVydGluZyBWYWx1ZTo6bWF4VUludDY0
IHRvIGEgZG91YmxlIGNvcnJlY3RseSAoQUlYL3hsQykuCisvLyBBc3N1bWVzIHRoYXQgVUludDY0
IGlzIGEgNjQgYml0cyBpbnRlZ2VyLgorc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhVSW50NjRBc0Rv
dWJsZSA9IDE4NDQ2NzQ0MDczNzA5NTUxNjE1LjA7CisjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hB
U19JTlQ2NCkKK2NvbnN0IExhcmdlc3RJbnQgVmFsdWU6Om1pbkxhcmdlc3RJbnQgPSBMYXJnZXN0
SW50KH4oTGFyZ2VzdFVJbnQoLTEpIC8gMikpOworY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWF4
TGFyZ2VzdEludCA9IExhcmdlc3RJbnQoTGFyZ2VzdFVJbnQoLTEpIC8gMik7Citjb25zdCBMYXJn
ZXN0VUludCBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQgPSBMYXJnZXN0VUludCgtMSk7CisKKyNpZiAh
ZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKK3RlbXBsYXRlIDx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPgorc3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQs
IFQgbWluLCBVIG1heCkgeworICByZXR1cm4gZCA+PSBtaW4gJiYgZCA8PSBtYXg7Cit9CisjZWxz
ZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCitzdGF0
aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3VibGUoSnNvbjo6VUludDY0IHZhbHVlKSB7Cisg
IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KEludDY0KHZhbHVlIC8gMikpICogMi4wICsgSW50
NjQodmFsdWUgJiAxKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUg
ZG91YmxlIGludGVnZXJUb0RvdWJsZShUIHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxk
b3VibGU+KHZhbHVlKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Citz
dGF0aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7CisgIHJl
dHVybiBkID49IGludGVnZXJUb0RvdWJsZShtaW4pICYmIGQgPD0gaW50ZWdlclRvRG91YmxlKG1h
eCk7Cit9CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZF
UlNJT04pCisKKy8qKiBEdXBsaWNhdGVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHZhbHVlLgorICog
QHBhcmFtIHZhbHVlIFBvaW50ZXIgdG8gdGhlIHN0cmluZyB0byBkdXBsaWNhdGUuIE11c3QgYmUg
emVyby10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgbGVuZ3RoIGlzICJ1bmtub3duIi4K
KyAqIEBwYXJhbSBsZW5ndGggTGVuZ3RoIG9mIHRoZSB2YWx1ZS4gaWYgZXF1YWxzIHRvIHVua25v
d24sIHRoZW4gaXQgd2lsbCBiZQorICogICAgICAgICAgICAgICBjb21wdXRlZCB1c2luZyBzdHJs
ZW4odmFsdWUpLgorICogQHJldHVybiBQb2ludGVyIG9uIHRoZSBkdXBsaWNhdGUgaW5zdGFuY2Ug
b2Ygc3RyaW5nLgorICovCitzdGF0aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZVN0cmluZ1ZhbHVl
KGNvbnN0IGNoYXIqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgbGVuZ3RoKSB7CisgIC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZsb3cgaW4g
dGhlIGNhbGwgdG8gbWFsbG9jIGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0byBhIHNh
bmUgdmFsdWUuCisgIGlmIChsZW5ndGggPj0gKHNpemVfdClWYWx1ZTo6bWF4SW50KQorICAgIGxl
bmd0aCA9IFZhbHVlOjptYXhJbnQgLSAxOworCisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19j
YXN0PGNoYXIqPihtYWxsb2MobGVuZ3RoICsgMSkpOworICBpZiAobmV3U3RyaW5nID09IE5VTEwp
IHsKKyAgICB0aHJvd1J1bnRpbWVFcnJvcigKKyAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBs
aWNhdGVTdHJpbmdWYWx1ZSgpOiAiCisgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5n
IHZhbHVlIGJ1ZmZlciIpOworICB9CisgIG1lbWNweShuZXdTdHJpbmcsIHZhbHVlLCBsZW5ndGgp
OworICBuZXdTdHJpbmdbbGVuZ3RoXSA9IDA7CisgIHJldHVybiBuZXdTdHJpbmc7Cit9CisKKy8q
IFJlY29yZCB0aGUgbGVuZ3RoIGFzIGEgcHJlZml4LgorICovCitzdGF0aWMgaW5saW5lIGNoYXIq
IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKAorICAgIGNvbnN0IGNoYXIqIHZhbHVlLAor
ICAgIHVuc2lnbmVkIGludCBsZW5ndGgpCit7CisgIC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZs
b3cgaW4gdGhlIGNhbGwgdG8gbWFsbG9jIGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0
byBhIHNhbmUgdmFsdWUuCisgIEpTT05fQVNTRVJUX01FU1NBR0UobGVuZ3RoIDw9ICh1bnNpZ25l
ZClWYWx1ZTo6bWF4SW50IC0gc2l6ZW9mKHVuc2lnbmVkKSAtIDFVLAorICAgICAgICAgICAgICAg
ICAgICAgICJpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTog
IgorICAgICAgICAgICAgICAgICAgICAgICJsZW5ndGggdG9vIGJpZyBmb3IgcHJlZml4aW5nIik7
CisgIHVuc2lnbmVkIGFjdHVhbExlbmd0aCA9IGxlbmd0aCArIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzaXplb2YodW5zaWduZWQpKSArIDFVOworICBjaGFyKiBuZXdTdHJpbmcgPSBzdGF0aWNfY2Fz
dDxjaGFyKj4obWFsbG9jKGFjdHVhbExlbmd0aCkpOworICBpZiAobmV3U3RyaW5nID09IDApIHsK
KyAgICB0aHJvd1J1bnRpbWVFcnJvcigKKyAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNh
dGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpOiAiCisgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUg
c3RyaW5nIHZhbHVlIGJ1ZmZlciIpOworICB9CisgICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4obmV3U3RyaW5nKSA9IGxlbmd0aDsKKyAgbWVtY3B5KG5ld1N0cmluZyArIHNpemVvZih1bnNp
Z25lZCksIHZhbHVlLCBsZW5ndGgpOworICBuZXdTdHJpbmdbYWN0dWFsTGVuZ3RoIC0gMVVdID0g
MDsgLy8gdG8gYXZvaWQgYnVmZmVyIG92ZXItcnVuIGFjY2lkZW50cyBieSB1c2VycyBsYXRlcgor
ICByZXR1cm4gbmV3U3RyaW5nOworfQoraW5saW5lIHN0YXRpYyB2b2lkIGRlY29kZVByZWZpeGVk
U3RyaW5nKAorICAgIGJvb2wgaXNQcmVmaXhlZCwgY2hhciBjb25zdCogcHJlZml4ZWQsCisgICAg
dW5zaWduZWQqIGxlbmd0aCwgY2hhciBjb25zdCoqIHZhbHVlKQoreworICBpZiAoIWlzUHJlZml4
ZWQpIHsKKyAgICAqbGVuZ3RoID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbihwcmVmaXhl
ZCkpOworICAgICp2YWx1ZSA9IHByZWZpeGVkOworICB9IGVsc2UgeworICAgICpsZW5ndGggPSAq
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBjb25zdCo+KHByZWZpeGVkKTsKKyAgICAqdmFsdWUg
PSBwcmVmaXhlZCArIHNpemVvZih1bnNpZ25lZCk7CisgIH0KK30KKy8qKiBGcmVlIHRoZSBzdHJp
bmcgZHVwbGljYXRlZCBieSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSgpL2R1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKCkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlU3RyaW5nVmFs
dWUoY2hhciogdmFsdWUpIHsgZnJlZSh2YWx1ZSk7IH0KKworfSAvLyBuYW1lc3BhY2UgSnNvbgor
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBWYWx1ZUludGVy
bmFscy4uLgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworI2lmICFk
ZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCisjaW5jbHVkZSAianNvbl92YWx1ZWl0ZXJh
dG9yLmlubCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKwor
bmFtZXNwYWNlIEpzb24geworCitFeGNlcHRpb246OkV4Y2VwdGlvbihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKQorICA6IG1zZ18obXNnKQore30KK0V4Y2VwdGlvbjo6fkV4Y2VwdGlvbigpIHRocm93
KCkKK3t9CitjaGFyIGNvbnN0KiBFeGNlcHRpb246OndoYXQoKSBjb25zdCB0aHJvdygpCit7Cisg
IHJldHVybiBtc2dfLmNfc3RyKCk7Cit9CitSdW50aW1lRXJyb3I6OlJ1bnRpbWVFcnJvcihzdGQ6
OnN0cmluZyBjb25zdCYgbXNnKQorICA6IEV4Y2VwdGlvbihtc2cpCit7fQorTG9naWNFcnJvcjo6
TG9naWNFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQorICA6IEV4Y2VwdGlvbihtc2cpCit7
fQordm9pZCB0aHJvd1J1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQoreworICB0
aHJvdyBSdW50aW1lRXJyb3IobXNnKTsKK30KK3ZvaWQgdGhyb3dMb2dpY0Vycm9yKHN0ZDo6c3Ry
aW5nIGNvbnN0JiBtc2cpCit7CisgIHRocm93IExvZ2ljRXJyb3IobXNnKTsKK30KKworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWU6OkNvbW1l
bnRJbmZvCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1ZhbHVl
OjpDb21tZW50SW5mbzo6Q29tbWVudEluZm8oKSA6IGNvbW1lbnRfKDApIHt9CisKK1ZhbHVlOjpD
b21tZW50SW5mbzo6fkNvbW1lbnRJbmZvKCkgeworICBpZiAoY29tbWVudF8pCisgICAgcmVsZWFz
ZVN0cmluZ1ZhbHVlKGNvbW1lbnRfKTsKK30KKwordm9pZCBWYWx1ZTo6Q29tbWVudEluZm86OnNl
dENvbW1lbnQoY29uc3QgY2hhciogdGV4dCwgc2l6ZV90IGxlbikgeworICBpZiAoY29tbWVudF8p
IHsKKyAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29tbWVudF8pOworICAgIGNvbW1lbnRfID0gMDsK
KyAgfQorICBKU09OX0FTU0VSVCh0ZXh0ICE9IDApOworICBKU09OX0FTU0VSVF9NRVNTQUdFKAor
ICAgICAgdGV4dFswXSA9PSAnXDAnIHx8IHRleHRbMF0gPT0gJy8nLAorICAgICAgImluIEpzb246
OlZhbHVlOjpzZXRDb21tZW50KCk6IENvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvIik7CisgIC8v
IEl0IHNlZW1zIHRoYXQgLyoqLyBzdHlsZSBjb21tZW50cyBhcmUgYWNjZXB0YWJsZSBhcyB3ZWxs
LgorICBjb21tZW50XyA9IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKHRleHQsIGxlbik7Cit9CisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlOjpD
WlN0cmluZworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBO
b3RlczogcG9saWN5XyBpbmRpY2F0ZXMgaWYgdGhlIHN0cmluZyB3YXMgYWxsb2NhdGVkIHdoZW4K
Ky8vIGEgc3RyaW5nIGlzIHN0b3JlZC4KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhBcnJh
eUluZGV4IGFpbmRleCkgOiBjc3RyXygwKSwgaW5kZXhfKGFpbmRleCkge30KKworVmFsdWU6OkNa
U3RyaW5nOjpDWlN0cmluZyhjaGFyIGNvbnN0KiBzdHIsIHVuc2lnbmVkIHVsZW5ndGgsIER1cGxp
Y2F0aW9uUG9saWN5IGFsbG9jYXRlKQorICAgIDogY3N0cl8oc3RyKSB7CisgIC8vIGFsbG9jYXRl
ICE9IGR1cGxpY2F0ZQorICBzdG9yYWdlXy5wb2xpY3lfID0gYWxsb2NhdGUgJiAweDM7CisgIHN0
b3JhZ2VfLmxlbmd0aF8gPSB1bGVuZ3RoICYgMHgzRkZGRkZGRjsKK30KKworVmFsdWU6OkNaU3Ry
aW5nOjpDWlN0cmluZyhjb25zdCBDWlN0cmluZyYgb3RoZXIpCisgICAgOiBjc3RyXyhvdGhlci5z
dG9yYWdlXy5wb2xpY3lfICE9IG5vRHVwbGljYXRpb24gJiYgb3RoZXIuY3N0cl8gIT0gMAorICAg
ICAgICAgICAgICAgID8gZHVwbGljYXRlU3RyaW5nVmFsdWUob3RoZXIuY3N0cl8sIG90aGVyLnN0
b3JhZ2VfLmxlbmd0aF8pCisgICAgICAgICAgICAgICAgOiBvdGhlci5jc3RyXykgeworICBzdG9y
YWdlXy5wb2xpY3lfID0gKG90aGVyLmNzdHJfCisgICAgICAgICAgICAgICAgID8gKHN0YXRpY19j
YXN0PER1cGxpY2F0aW9uUG9saWN5PihvdGhlci5zdG9yYWdlXy5wb2xpY3lfKSA9PSBub0R1cGxp
Y2F0aW9uCisgICAgICAgICAgICAgICAgICAgICA/IG5vRHVwbGljYXRpb24gOiBkdXBsaWNhdGUp
CisgICAgICAgICAgICAgICAgIDogc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVy
LnN0b3JhZ2VfLnBvbGljeV8pKTsKKyAgc3RvcmFnZV8ubGVuZ3RoXyA9IG90aGVyLnN0b3JhZ2Vf
Lmxlbmd0aF87Cit9CisKKyNpZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworVmFsdWU6OkNa
U3RyaW5nOjpDWlN0cmluZyhDWlN0cmluZyYmIG90aGVyKQorICA6IGNzdHJfKG90aGVyLmNzdHJf
KSwgaW5kZXhfKG90aGVyLmluZGV4XykgeworICBvdGhlci5jc3RyXyA9IG51bGxwdHI7Cit9Cisj
ZW5kaWYKKworVmFsdWU6OkNaU3RyaW5nOjp+Q1pTdHJpbmcoKSB7CisgIGlmIChjc3RyXyAmJiBz
dG9yYWdlXy5wb2xpY3lfID09IGR1cGxpY2F0ZSkKKyAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29u
c3RfY2FzdDxjaGFyKj4oY3N0cl8pKTsKK30KKwordm9pZCBWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAo
Q1pTdHJpbmcmIG90aGVyKSB7CisgIHN0ZDo6c3dhcChjc3RyXywgb3RoZXIuY3N0cl8pOworICBz
dGQ6OnN3YXAoaW5kZXhfLCBvdGhlci5pbmRleF8pOworfQorCitWYWx1ZTo6Q1pTdHJpbmcmIFZh
bHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9KENaU3RyaW5nIG90aGVyKSB7CisgIHN3YXAob3RoZXIp
OworICByZXR1cm4gKnRoaXM7Cit9CisKK2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwo
Y29uc3QgQ1pTdHJpbmcmIG90aGVyKSBjb25zdCB7CisgIGlmICghY3N0cl8pIHJldHVybiBpbmRl
eF8gPCBvdGhlci5pbmRleF87CisgIC8vcmV0dXJuIHN0cmNtcChjc3RyXywgb3RoZXIuY3N0cl8p
IDwgMDsKKyAgLy8gQXNzdW1lIGJvdGggYXJlIHN0cmluZ3MuCisgIHVuc2lnbmVkIHRoaXNfbGVu
ID0gdGhpcy0+c3RvcmFnZV8ubGVuZ3RoXzsKKyAgdW5zaWduZWQgb3RoZXJfbGVuID0gb3RoZXIu
c3RvcmFnZV8ubGVuZ3RoXzsKKyAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVu
LCBvdGhlcl9sZW4pOworICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzLT5jc3RyXywgb3RoZXIuY3N0
cl8sIG1pbl9sZW4pOworICBpZiAoY29tcCA8IDApIHJldHVybiB0cnVlOworICBpZiAoY29tcCA+
IDApIHJldHVybiBmYWxzZTsKKyAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Cit9CisK
K2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09KGNvbnN0IENaU3RyaW5nJiBvdGhlcikg
Y29uc3QgeworICBpZiAoIWNzdHJfKSByZXR1cm4gaW5kZXhfID09IG90aGVyLmluZGV4XzsKKyAg
Ly9yZXR1cm4gc3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykgPT0gMDsKKyAgLy8gQXNzdW1lIGJv
dGggYXJlIHN0cmluZ3MuCisgIHVuc2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+c3RvcmFnZV8ubGVu
Z3RoXzsKKyAgdW5zaWduZWQgb3RoZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKKyAg
aWYgKHRoaXNfbGVuICE9IG90aGVyX2xlbikgcmV0dXJuIGZhbHNlOworICBpbnQgY29tcCA9IG1l
bWNtcCh0aGlzLT5jc3RyXywgb3RoZXIuY3N0cl8sIHRoaXNfbGVuKTsKKyAgcmV0dXJuIGNvbXAg
PT0gMDsKK30KKworQXJyYXlJbmRleCBWYWx1ZTo6Q1pTdHJpbmc6OmluZGV4KCkgY29uc3QgeyBy
ZXR1cm4gaW5kZXhfOyB9CisKKy8vY29uc3QgY2hhciogVmFsdWU6OkNaU3RyaW5nOjpjX3N0cigp
IGNvbnN0IHsgcmV0dXJuIGNzdHJfOyB9Citjb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmRh
dGEoKSBjb25zdCB7IHJldHVybiBjc3RyXzsgfQordW5zaWduZWQgVmFsdWU6OkNaU3RyaW5nOjps
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBzdG9yYWdlXy5sZW5ndGhfOyB9Citib29sIFZhbHVlOjpD
WlN0cmluZzo6aXNTdGF0aWNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBzdG9yYWdlXy5wb2xpY3lf
ID09IG5vRHVwbGljYXRpb247IH0KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworLy8gY2xhc3MgVmFsdWU6OlZhbHVlCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKy8qISBcaW50ZXJuYWwgRGVmYXVsdCBjb25zdHJ1Y3RvciBpbml0
aWFsaXphdGlvbiBtdXN0IGJlIGVxdWl2YWxlbnQgdG86CisgKiBtZW1zZXQoIHRoaXMsIDAsIHNp
emVvZihWYWx1ZSkgKQorICogVGhpcyBvcHRpbWl6YXRpb24gaXMgdXNlZCBpbiBWYWx1ZUludGVy
bmFsTWFwIGZhc3QgYWxsb2NhdG9yLgorICovCitWYWx1ZTo6VmFsdWUoVmFsdWVUeXBlIHZ0eXBl
KSB7CisgIGluaXRCYXNpYyh2dHlwZSk7CisgIHN3aXRjaCAodnR5cGUpIHsKKyAgY2FzZSBudWxs
VmFsdWU6CisgICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgor
ICAgIHZhbHVlXy5pbnRfID0gMDsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAg
dmFsdWVfLnJlYWxfID0gMC4wOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAg
IHZhbHVlXy5zdHJpbmdfID0gMDsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBj
YXNlIG9iamVjdFZhbHVlOgorICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygpOwor
ICAgIGJyZWFrOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICB2YWx1ZV8uYm9vbF8gPSBmYWxz
ZTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsK
KyAgfQorfQorCitWYWx1ZTo6VmFsdWUoSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRWYWx1
ZSk7CisgIHZhbHVlXy5pbnRfID0gdmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1ZShVSW50IHZhbHVl
KSB7CisgIGluaXRCYXNpYyh1aW50VmFsdWUpOworICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKK30K
KyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorVmFsdWU6OlZhbHVlKEludDY0IHZhbHVlKSB7
CisgIGluaXRCYXNpYyhpbnRWYWx1ZSk7CisgIHZhbHVlXy5pbnRfID0gdmFsdWU7Cit9CitWYWx1
ZTo6VmFsdWUoVUludDY0IHZhbHVlKSB7CisgIGluaXRCYXNpYyh1aW50VmFsdWUpOworICB2YWx1
ZV8udWludF8gPSB2YWx1ZTsKK30KKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQor
CitWYWx1ZTo6VmFsdWUoZG91YmxlIHZhbHVlKSB7CisgIGluaXRCYXNpYyhyZWFsVmFsdWUpOwor
ICB2YWx1ZV8ucmVhbF8gPSB2YWx1ZTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IGNoYXIqIHZh
bHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdf
ID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUodmFsdWUsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihzdHJsZW4odmFsdWUpKSk7Cit9CisKK1ZhbHVlOjpWYWx1ZShjb25zdCBjaGFyKiBiZWdp
blZhbHVlLCBjb25zdCBjaGFyKiBlbmRWYWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUs
IHRydWUpOworICB2YWx1ZV8uc3RyaW5nXyA9CisgICAgICBkdXBsaWNhdGVBbmRQcmVmaXhTdHJp
bmdWYWx1ZShiZWdpblZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kVmFsdWUgLSBiZWdp
blZhbHVlKSk7Cit9CisKK1ZhbHVlOjpWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsK
KyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPQorICAg
ICAgZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUodmFsdWUuZGF0YSgpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4odmFsdWUubGVuZ3RoKCkpKTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IFN0
YXRpY1N0cmluZyYgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlKTsKKyAgdmFsdWVf
LnN0cmluZ18gPSBjb25zdF9jYXN0PGNoYXIqPih2YWx1ZS5jX3N0cigpKTsKK30KKworI2lmZGVm
IEpTT05fVVNFX0NQUFRMCitWYWx1ZTo6VmFsdWUoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiB2
YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3RyaW5n
XyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odmFsdWUubGVuZ3RoKCkpKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6VmFsdWUoYm9vbCB2
YWx1ZSkgeworICBpbml0QmFzaWMoYm9vbGVhblZhbHVlKTsKKyAgdmFsdWVfLmJvb2xfID0gdmFs
dWU7Cit9CisKK1ZhbHVlOjpWYWx1ZShWYWx1ZSBjb25zdCYgb3RoZXIpCisgICAgOiB0eXBlXyhv
dGhlci50eXBlXyksIGFsbG9jYXRlZF8oZmFsc2UpCisgICAgICAsCisgICAgICBjb21tZW50c18o
bnVsbHB0ciksIGRlZmF1bHRfdmFsdWVfKG51bGxwdHIpLCBzdGFydF8ob3RoZXIuc3RhcnRfKSwg
bGltaXRfKG90aGVyLmxpbWl0XykKK3sKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxW
YWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZh
bHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICB2YWx1ZV8gPSBvdGhlci52YWx1ZV87Cisg
ICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgaWYgKG90aGVyLnZhbHVlXy5zdHJp
bmdfICYmIG90aGVyLmFsbG9jYXRlZF8pIHsKKyAgICAgIHVuc2lnbmVkIGxlbjsKKyAgICAgIGNo
YXIgY29uc3QqIHN0cjsKKyAgICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmFsbG9jYXRl
ZF8sIG90aGVyLnZhbHVlXy5zdHJpbmdfLAorICAgICAgICAgICZsZW4sICZzdHIpOworICAgICAg
dmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZShzdHIsIGxlbik7
CisgICAgICBhbGxvY2F0ZWRfID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgdmFsdWVfLnN0
cmluZ18gPSBvdGhlci52YWx1ZV8uc3RyaW5nXzsKKyAgICAgIGFsbG9jYXRlZF8gPSBmYWxzZTsK
KyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1
ZToKKyAgICB2YWx1ZV8ubWFwXyA9IG5ldyBPYmplY3RWYWx1ZXMoKm90aGVyLnZhbHVlXy5tYXBf
KTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsK
KyAgfQorICBpZiAob3RoZXIuY29tbWVudHNfKSB7CisgICAgY29tbWVudHNfID0gbmV3IENvbW1l
bnRJbmZvW251bWJlck9mQ29tbWVudFBsYWNlbWVudF07CisgICAgZm9yIChpbnQgY29tbWVudCA9
IDA7IGNvbW1lbnQgPCBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQ7ICsrY29tbWVudCkgeworICAg
ICAgY29uc3QgQ29tbWVudEluZm8mIG90aGVyQ29tbWVudCA9IG90aGVyLmNvbW1lbnRzX1tjb21t
ZW50XTsKKyAgICAgIGlmIChvdGhlckNvbW1lbnQuY29tbWVudF8pCisgICAgICAgIGNvbW1lbnRz
X1tjb21tZW50XS5zZXRDb21tZW50KAorICAgICAgICAgICAgb3RoZXJDb21tZW50LmNvbW1lbnRf
LCBzdHJsZW4ob3RoZXJDb21tZW50LmNvbW1lbnRfKSk7CisgICAgfQorICB9CisKKyAgaWYgKCBv
dGhlci5kZWZhdWx0X3ZhbHVlXyApCisgIHsKKyAgICAgICAgIGRlZmF1bHRfdmFsdWVfID0gbmV3
IFZhbHVlKCAqb3RoZXIuZGVmYXVsdF92YWx1ZV8gKTsKKyAgfQorCit9CisKKyNpZiBKU09OX0hB
U19SVkFMVUVfUkVGRVJFTkNFUworLy8gTW92ZSBjb25zdHJ1Y3RvcgorVmFsdWU6OlZhbHVlKFZh
bHVlJiYgb3RoZXIpIHsKKyAgaW5pdEJhc2ljKG51bGxWYWx1ZSk7CisgIHN3YXAob3RoZXIpOwor
fQorI2VuZGlmCisKK1ZhbHVlOjp+VmFsdWUoKSB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgIGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICBjYXNl
IHJlYWxWYWx1ZToKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgYnJlYWs7CisgIGNhc2Ugc3Ry
aW5nVmFsdWU6CisgICAgaWYgKGFsbG9jYXRlZF8pCisgICAgICByZWxlYXNlU3RyaW5nVmFsdWUo
dmFsdWVfLnN0cmluZ18pOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ug
b2JqZWN0VmFsdWU6CisgICAgZGVsZXRlIHZhbHVlXy5tYXBfOworICAgIGJyZWFrOworICBkZWZh
dWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9CisKKyAgaWYgKGNvbW1lbnRz
XykKKyAgICBkZWxldGVbXSBjb21tZW50c187CisKKyAgaWYgKCBkZWZhdWx0X3ZhbHVlXykKKyAg
ICAgICAgIGRlbGV0ZSBkZWZhdWx0X3ZhbHVlXzsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRv
cj0oVmFsdWUgb3RoZXIpIHsKKyAgc3dhcChvdGhlcik7CisgIHJldHVybiAqdGhpczsKK30KKwor
dm9pZCBWYWx1ZTo6c3dhcFBheWxvYWQoVmFsdWUmIG90aGVyKSB7CisgIFZhbHVlVHlwZSB0ZW1w
ID0gdHlwZV87CisgIHR5cGVfID0gb3RoZXIudHlwZV87CisgIG90aGVyLnR5cGVfID0gdGVtcDsK
KyAgc3RkOjpzd2FwKHZhbHVlXywgb3RoZXIudmFsdWVfKTsKKyAgaW50IHRlbXAyID0gYWxsb2Nh
dGVkXzsKKyAgYWxsb2NhdGVkXyA9IG90aGVyLmFsbG9jYXRlZF87CisgIG90aGVyLmFsbG9jYXRl
ZF8gPSB0ZW1wMiAmIDB4MTsKK30KKwordm9pZCBWYWx1ZTo6c3dhcChWYWx1ZSYgb3RoZXIpIHsK
KyAgc3dhcFBheWxvYWQob3RoZXIpOworICBzdGQ6OnN3YXAoY29tbWVudHNfLCBvdGhlci5jb21t
ZW50c18pOworICBzdGQ6OnN3YXAoZGVmYXVsdF92YWx1ZV8sIG90aGVyLmRlZmF1bHRfdmFsdWVf
KTsKKyAgc3RkOjpzd2FwKHN0YXJ0Xywgb3RoZXIuc3RhcnRfKTsKKyAgc3RkOjpzd2FwKGxpbWl0
Xywgb3RoZXIubGltaXRfKTsKK30KKworVmFsdWVUeXBlIFZhbHVlOjp0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gdHlwZV87IH0KKworaW50IFZhbHVlOjpjb21wYXJlKGNvbnN0IFZhbHVlJiBvdGhlcikg
Y29uc3QgeworICBpZiAoKnRoaXMgPCBvdGhlcikKKyAgICByZXR1cm4gLTE7CisgIGlmICgqdGhp
cyA+IG90aGVyKQorICAgIHJldHVybiAxOworICByZXR1cm4gMDsKK30KKworYm9vbCBWYWx1ZTo6
b3BlcmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeworICBpbnQgdHlwZURlbHRhID0g
dHlwZV8gLSBvdGhlci50eXBlXzsKKyAgaWYgKHR5cGVEZWx0YSkKKyAgICByZXR1cm4gdHlwZURl
bHRhIDwgMCA/IHRydWUgOiBmYWxzZTsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxW
YWx1ZToKKyAgICByZXR1cm4gZmFsc2U7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZh
bHVlXy5pbnRfIDwgb3RoZXIudmFsdWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJl
dHVybiB2YWx1ZV8udWludF8gPCBvdGhlci52YWx1ZV8udWludF87CisgIGNhc2UgcmVhbFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPCBvdGhlci52YWx1ZV8ucmVhbF87CisgIGNhc2Ug
Ym9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPCBvdGhlci52YWx1ZV8uYm9v
bF87CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09
IDApIHx8IChvdGhlci52YWx1ZV8uc3RyaW5nXyA9PSAwKSkgeworICAgICAgaWYgKG90aGVyLnZh
bHVlXy5zdHJpbmdfKSByZXR1cm4gdHJ1ZTsKKyAgICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgICB1bnNpZ25lZCBvdGhlcl9sZW47CisgICAg
Y2hhciBjb25zdCogdGhpc19zdHI7CisgICAgY2hhciBjb25zdCogb3RoZXJfc3RyOworICAgIGRl
Y29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdf
LCAmdGhpc19sZW4sICZ0aGlzX3N0cik7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3RoZXIu
YWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0cmluZ18sICZvdGhlcl9sZW4sICZvdGhlcl9zdHIp
OworICAgIHVuc2lnbmVkIG1pbl9sZW4gPSBzdGQ6Om1pbih0aGlzX2xlbiwgb3RoZXJfbGVuKTsK
KyAgICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzX3N0ciwgb3RoZXJfc3RyLCBtaW5fbGVuKTsKKyAg
ICBpZiAoY29tcCA8IDApIHJldHVybiB0cnVlOworICAgIGlmIChjb21wID4gMCkgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiAodGhpc19sZW4gPCBvdGhlcl9sZW4pOworICB9CisgIGNhc2UgYXJy
YXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIGludCBkZWx0YSA9IGludCh2YWx1
ZV8ubWFwXy0+c2l6ZSgpIC0gb3RoZXIudmFsdWVfLm1hcF8tPnNpemUoKSk7CisgICAgaWYgKGRl
bHRhKQorICAgICAgcmV0dXJuIGRlbHRhIDwgMDsKKyAgICByZXR1cm4gKCp2YWx1ZV8ubWFwXykg
PCAoKm90aGVyLnZhbHVlXy5tYXBfKTsKKyAgfQorICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJU
X1VOUkVBQ0hBQkxFOworICB9CisgIHJldHVybiBmYWxzZTsgLy8gdW5yZWFjaGFibGUKK30KKwor
Ym9vbCBWYWx1ZTo6b3BlcmF0b3I8PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJu
ICEob3RoZXIgPCAqdGhpcyk7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+PShjb25zdCBWYWx1
ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPCBvdGhlcik7IH0KKworYm9vbCBWYWx1
ZTo6b3BlcmF0b3I+KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIgPCAq
dGhpczsgfQorCitib29sIFZhbHVlOjpvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29u
c3QgeworICAvLyBpZiAoIHR5cGVfICE9IG90aGVyLnR5cGVfICkKKyAgLy8gR0NDIDIuOTUuMyBz
YXlzOgorICAvLyBhdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiBiaXQtZmllbGQgc3RydWN0dXJl
IG1lbWJlciBgSnNvbjo6VmFsdWU6OnR5cGVfJworICAvLyBCZWF0cyBtZSwgYnV0IGEgdGVtcCBz
b2x2ZXMgdGhlIHByb2JsZW0uCisgIGludCB0ZW1wID0gb3RoZXIudHlwZV87CisgIGlmICh0eXBl
XyAhPSB0ZW1wKQorICAgIHJldHVybiBmYWxzZTsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNl
IG51bGxWYWx1ZToKKyAgICByZXR1cm4gdHJ1ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLmludF8gPT0gb3RoZXIudmFsdWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8udWludF8gPT0gb3RoZXIudmFsdWVfLnVpbnRfOworICBjYXNlIHJl
YWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsK
KyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52
YWx1ZV8uYm9vbF87CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICBpZiAoKHZhbHVlXy5z
dHJpbmdfID09IDApIHx8IChvdGhlci52YWx1ZV8uc3RyaW5nXyA9PSAwKSkgeworICAgICAgcmV0
dXJuICh2YWx1ZV8uc3RyaW5nXyA9PSBvdGhlci52YWx1ZV8uc3RyaW5nXyk7CisgICAgfQorICAg
IHVuc2lnbmVkIHRoaXNfbGVuOworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFyIGNv
bnN0KiB0aGlzX3N0cjsKKyAgICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2RlUHJl
Zml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlz
X2xlbiwgJnRoaXNfc3RyKTsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyhvdGhlci5hbGxvY2F0
ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywgJm90aGVyX2xlbiwgJm90aGVyX3N0cik7CisgICAg
aWYgKHRoaXNfbGVuICE9IG90aGVyX2xlbikgcmV0dXJuIGZhbHNlOworICAgIGludCBjb21wID0g
bWVtY21wKHRoaXNfc3RyLCBvdGhlcl9zdHIsIHRoaXNfbGVuKTsKKyAgICByZXR1cm4gY29tcCA9
PSAwOworICB9CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBy
ZXR1cm4gdmFsdWVfLm1hcF8tPnNpemUoKSA9PSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpICYm
CisgICAgICAgICAgICgqdmFsdWVfLm1hcF8pID09ICgqb3RoZXIudmFsdWVfLm1hcF8pOworICBk
ZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9CisgIHJldHVybiBmYWxz
ZTsgLy8gdW5yZWFjaGFibGUKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBWYWx1
ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKK2NvbnN0IGNo
YXIqIFZhbHVlOjphc0NTdHJpbmcoKSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlw
ZV8gPT0gc3RyaW5nVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVl
Ojphc0NTdHJpbmcoKTogcmVxdWlyZXMgc3RyaW5nVmFsdWUiKTsKKyAgaWYgKHZhbHVlXy5zdHJp
bmdfID09IDApIHJldHVybiAwOworICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgY2hhciBjb25zdCog
dGhpc19zdHI7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMt
PnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7CisgIHJldHVybiB0aGlzX3N0
cjsKK30KKworYm9vbCBWYWx1ZTo6Z2V0U3RyaW5nKGNoYXIgY29uc3QqKiBzdHIsIGNoYXIgY29u
c3QqKiBjZW5kKSBjb25zdCB7CisgIGlmICh0eXBlXyAhPSBzdHJpbmdWYWx1ZSkgcmV0dXJuIGZh
bHNlOworICBpZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0dXJuIGZhbHNlOworICB1bnNpZ25l
ZCBsZW5ndGg7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMt
PnZhbHVlXy5zdHJpbmdfLCAmbGVuZ3RoLCBzdHIpOworICAqY2VuZCA9ICpzdHIgKyBsZW5ndGg7
CisgIHJldHVybiB0cnVlOworfQorCitzdGQ6OnN0cmluZyBWYWx1ZTo6YXNTdHJpbmcoKSBjb25z
dCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuICIi
OworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDAp
IHJldHVybiAiIjsKKyAgICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlz
X3N0cjsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52
YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOworICAgIHJldHVybiBzdGQ6OnN0
cmluZyh0aGlzX3N0ciwgdGhpc19sZW4pOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8uYm9vbF8gPyAidHJ1ZSIgOiAiZmFsc2UiOworICBjYXNlIGludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFs
dWU6CisgICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFs
VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVs
dDoKKyAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVy
biBkZWZhdWx0X3ZhbHVlXy0+YXNTdHJpbmcoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICByZXR1cm4gIiI7CisgIH0KK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitDcHBUTDo6
Q29uc3RTdHJpbmcgVmFsdWU6OmFzQ29uc3RTdHJpbmcoKSBjb25zdCB7CisgIHVuc2lnbmVkIGxl
bjsKKyAgY2hhciBjb25zdCogc3RyOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyhhbGxvY2F0ZWRf
LCB2YWx1ZV8uc3RyaW5nXywKKyAgICAgICZsZW4sICZzdHIpOworICByZXR1cm4gQ3BwVEw6OkNv
bnN0U3RyaW5nKHN0ciwgbGVuKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6SW50IFZhbHVlOjphc0lu
dCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpT
T05fQVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIEludCByYW5nZSIp
OworICAgIHJldHVybiBJbnQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBK
U09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50IHJhbmdl
Iik7CisgICAgcmV0dXJuIEludCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAg
ICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heElu
dCksCisgICAgICAgICAgICAgICAgICAgICAgICAiZG91YmxlIG91dCBvZiBJbnQgcmFuZ2UiKTsK
KyAgICByZXR1cm4gSW50KHZhbHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJl
dHVybiAwOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8g
MSA6IDA7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzSW50KCk7CisgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgIH0KK30KKworVmFsdWU6OlVJbnQgVmFsdWU6
OmFzVUludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgor
ICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50
IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1
ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9m
IFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludCh2YWx1ZV8udWludF8pOworICBjYXNlIHJl
YWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAw
LCBtYXhVSW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQg
cmFuZ2UiKTsKKyAgICByZXR1cm4gVUludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1
ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
Xy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVl
XyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1VJbnQoKTsKKyAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gMHU7CisgIH0KK30KKworI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCisKK1ZhbHVlOjpJbnQ2NCBWYWx1ZTo6YXNJbnQ2NCgpIGNv
bnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBJ
bnQ2NCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01F
U1NBR0UoaXNJbnQ2NCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIEludDY0IHJhbmdlIik7CisgICAg
cmV0dXJuIEludDY0KHZhbHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05f
QVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludDY0LCBtYXhJbnQ2NCks
CisgICAgICAgICAgICAgICAgICAgICAgICAiZG91YmxlIG91dCBvZiBJbnQ2NCByYW5nZSIpOwor
ICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICBy
ZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/
IDEgOiAwOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0ludDY0KCk7CisgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIDBsOworICB9Cit9CisKK1ZhbHVlOjpVSW50NjQg
VmFsdWU6OmFzVUludDY0KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50
VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBv
dXQgb2YgVUludDY0IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8uaW50Xyk7Cisg
IGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiBVSW50NjQodmFsdWVfLnVpbnRfKTsKKyAgY2Fz
ZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFs
XywgMCwgbWF4VUludDY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9m
IFVJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBVSW50NjQodmFsdWVfLnJlYWxfKTsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJl
dHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVm
YXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNV
SW50NjQoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gMHVsOworICB9
Cit9CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKworTGFyZ2VzdEludCBW
YWx1ZTo6YXNMYXJnZXN0SW50KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkK
KyAgcmV0dXJuIGFzSW50KCk7CisjZWxzZQorICByZXR1cm4gYXNJbnQ2NCgpOworI2VuZGlmCit9
CisKK0xhcmdlc3RVSW50IFZhbHVlOjphc0xhcmdlc3RVSW50KCkgY29uc3QgeworI2lmIGRlZmlu
ZWQoSlNPTl9OT19JTlQ2NCkKKyAgcmV0dXJuIGFzVUludCgpOworI2Vsc2UKKyAgcmV0dXJuIGFz
VUludDY0KCk7CisjZW5kaWYKK30KKworZG91YmxlIFZhbHVlOjphc0RvdWJsZSgpIGNvbnN0IHsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxkb3VibGU+KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisjaWYgIWRlZmlu
ZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGRvdWJsZT4odmFsdWVfLnVpbnRfKTsKKyNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VT
RV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKHZh
bHVlXy51aW50Xyk7CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxF
X0NPTlZFUlNJT04pCisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF87
CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxLjAgOiAwLjA7CisgIGRlZmF1bHQ6CisgICAg
ICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVs
dF92YWx1ZV8tPmFzRG91YmxlKCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0
dXJuIDAuMDsKKyAgfQorfQorCitmbG9hdCBWYWx1ZTo6YXNGbG9hdCgpIGNvbnN0IHsKKyAgc3dp
dGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxm
bG9hdD4odmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyNpZiAhZGVmaW5lZChKU09O
X1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlXy51aW50Xyk7CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRf
RE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJuIGludGVnZXJUb0RvdWJsZSh2YWx1ZV8udWlu
dF8pOworI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJT
SU9OKQorICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZh
bHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwLjA7CisgIGNhc2Ug
Ym9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsKKyAg
ZGVmYXVsdDoKKyAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgcmV0
dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0Zsb2F0KCk7CisgICAgICAgZWxzZQorICAgICAgICAgICAg
ICByZXR1cm4gMC4wZjsKKyAgfQorfQorCitib29sIFZhbHVlOjphc0Jvb2woKSBjb25zdCB7Cisg
IHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVl
Xy5ib29sXzsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIGZhbHNlOworICBjYXNlIGlu
dFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSB1
aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2Fz
ZSByZWFsVmFsdWU6CisgICAgLy8gVGhpcyBpcyBraW5kIG9mIHN0cmFuZ2UuIE5vdCByZWNvbW1l
bmRlZC4KKyAgICByZXR1cm4gKHZhbHVlXy5yZWFsXyAhPSAwLjApID8gdHJ1ZSA6IGZhbHNlOwor
ICBkZWZhdWx0OgorICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICBy
ZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzQm9vbCgpOworICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICB9Cit9CisKK2Jvb2wgVmFsdWU6OmlzQ29udmVydGlibGVUbyhW
YWx1ZVR5cGUgb3RoZXIpIGNvbnN0IHsKKyAgc3dpdGNoIChvdGhlcikgeworICBjYXNlIG51bGxW
YWx1ZToKKyAgICByZXR1cm4gKGlzTnVtZXJpYygpICYmIGFzRG91YmxlKCkgPT0gMC4wKSB8fAor
ICAgICAgICAgICAodHlwZV8gPT0gYm9vbGVhblZhbHVlICYmIHZhbHVlXy5ib29sXyA9PSBmYWxz
ZSkgfHwKKyAgICAgICAgICAgKHR5cGVfID09IHN0cmluZ1ZhbHVlICYmIGFzU3RyaW5nKCkgPT0g
IiIpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSBhcnJheVZhbHVlICYmIHZhbHVlXy5tYXBfLT5z
aXplKCkgPT0gMCkgfHwKKyAgICAgICAgICAgKHR5cGVfID09IG9iamVjdFZhbHVlICYmIHZhbHVl
Xy5tYXBfLT5zaXplKCkgPT0gMCkgfHwKKyAgICAgICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlOwor
ICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBpc0ludCgpIHx8CisgICAgICAgICAgICh0eXBl
XyA9PSByZWFsVmFsdWUgJiYgSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludCwgbWF4SW50KSkg
fHwKKyAgICAgICAgICAgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1
ZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIGlzVUludCgpIHx8CisgICAgICAgICAg
ICh0eXBlXyA9PSByZWFsVmFsdWUgJiYgSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQp
KSB8fAorICAgICAgICAgICB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZh
bHVlOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8g
PT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSBib29sZWFuVmFs
dWU6CisgICAgcmV0dXJuIGlzTnVtZXJpYygpIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgcmV0dXJuIGlzTnVt
ZXJpYygpIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBzdHJpbmdWYWx1ZSB8
fAorICAgICAgICAgICB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAg
ICByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNh
c2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlIHx8IHR5cGVf
ID09IG51bGxWYWx1ZTsKKyAgfQorICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgcmV0dXJu
IGZhbHNlOworfQorCisvLy8gTnVtYmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKK0Fy
cmF5SW5kZXggVmFsdWU6OnNpemUoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgIGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICBjYXNl
IHJlYWxWYWx1ZToKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgIGNhc2Ugc3RyaW5nVmFsdWU6Cisg
ICAgcmV0dXJuIDA7CisgIGNhc2UgYXJyYXlWYWx1ZTogLy8gc2l6ZSBvZiB0aGUgYXJyYXkgaXMg
aGlnaGVzdCBpbmRleCArIDEKKyAgICBpZiAoIXZhbHVlXy5tYXBfLT5lbXB0eSgpKSB7CisgICAg
ICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5lbmQo
KTsKKyAgICAgIC0taXRMYXN0OworICAgICAgcmV0dXJuICgqaXRMYXN0KS5maXJzdC5pbmRleCgp
ICsgMTsKKyAgICB9CisgICAgcmV0dXJuIDA7CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0
dXJuIEFycmF5SW5kZXgodmFsdWVfLm1hcF8tPnNpemUoKSk7CisgIH0KKyAgSlNPTl9BU1NFUlRf
VU5SRUFDSEFCTEU7CisgIHJldHVybiAwOyAvLyB1bnJlYWNoYWJsZTsKK30KKworYm9vbCBWYWx1
ZTo6ZW1wdHkoKSBjb25zdCB7CisgIGlmIChpc051bGwoKSB8fCBpc0FycmF5KCkgfHwgaXNPYmpl
Y3QoKSkKKyAgICByZXR1cm4gc2l6ZSgpID09IDB1OworICBlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFZhbHVlOjpvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBpc051bGwoKTsg
fQorCit2b2lkIFZhbHVlOjpjbGVhcigpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9
PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gYXJyYXlWYWx1ZSB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4g
SnNvbjo6VmFsdWU6OmNsZWFyKCk6IHJlcXVpcmVzIGNvbXBsZXggdmFsdWUiKTsKKyAgc3RhcnRf
ID0gMDsKKyAgbGltaXRfID0gMDsKKyAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOworICBkZWZhdWx0
X3ZhbHVlXyA9IG51bGxwdHI7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVl
OgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHZhbHVlXy5tYXBfLT5jbGVhcigpOworICAgIGJy
ZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9Cit9CisKK3ZvaWQgVmFsdWU6OnJlc2l6
ZShBcnJheUluZGV4IG5ld1NpemUpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBu
dWxsVmFsdWUgfHwgdHlwZV8gPT0gYXJyYXlWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAi
aW4gSnNvbjo6VmFsdWU6OnJlc2l6ZSgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0
eXBlXyA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShhcnJheVZhbHVlKTsKKyAgQXJy
YXlJbmRleCBvbGRTaXplID0gc2l6ZSgpOworICBpZiAobmV3U2l6ZSA9PSAwKQorICAgIGNsZWFy
KCk7CisgIGVsc2UgaWYgKG5ld1NpemUgPiBvbGRTaXplKQorICAgICgqdGhpcylbbmV3U2l6ZSAt
IDFdOworICBlbHNlIHsKKyAgICBmb3IgKEFycmF5SW5kZXggaW5kZXggPSBuZXdTaXplOyBpbmRl
eCA8IG9sZFNpemU7ICsraW5kZXgpIHsKKyAgICAgIHZhbHVlXy5tYXBfLT5lcmFzZShpbmRleCk7
CisgICAgfQorICAgIGFzc2VydChzaXplKCkgPT0gbmV3U2l6ZSk7CisgIH0KK30KKworVmFsdWUm
IFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpIHsKKyAgSlNPTl9BU1NFUlRfTUVT
U0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAor
ICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXgpOiByZXF1aXJlcyBh
cnJheVZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1
ZShhcnJheVZhbHVlKTsKKyAgQ1pTdHJpbmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjpp
dGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChrZXkpOworICBpZiAoaXQgIT0g
dmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGtleSkKKyAgICByZXR1cm4gKCpp
dCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoa2V5
LCBudWxsUmVmKTsKKyAgaXQgPSB2YWx1ZV8ubWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUp
OworICByZXR1cm4gKCppdCkuc2Vjb25kOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10o
aW50IGluZGV4KSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+PSAwLAor
ICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCk6IGluZGV4IGNhbm5v
dCBiZSBuZWdhdGl2ZSIpOworICByZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9
CisKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25z
dCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwg
dHlwZV8gPT0gYXJyYXlWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShB
cnJheUluZGV4KWNvbnN0OiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBu
dWxsVmFsdWUpCisgICAgcmV0dXJuIG51bGxSZWY7CisgIENaU3RyaW5nIGtleShpbmRleCk7Cisg
IE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChrZXkp
OworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpKQorICAgIHJldHVybiBudWxsUmVmOwor
ICByZXR1cm4gKCppdCkuc2Vjb25kOworfQorCitjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9y
W10oaW50IGluZGV4KSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRl
eCA+PSAwLAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29u
c3Q6IGluZGV4IGNhbm5vdCBiZSBuZWdhdGl2ZSIpOworICByZXR1cm4gKCp0aGlzKVtBcnJheUlu
ZGV4KGluZGV4KV07Cit9CisKK3ZvaWQgVmFsdWU6OmluaXRCYXNpYyhWYWx1ZVR5cGUgdnR5cGUs
IGJvb2wgYWxsb2NhdGVkKSB7CisgIHR5cGVfID0gdnR5cGU7CisgIGFsbG9jYXRlZF8gPSBhbGxv
Y2F0ZWQ7CisgIGNvbW1lbnRzXyA9IDA7CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7Cisg
IGRlZmF1bHRfdmFsdWVfID0gbnVsbHB0cjsKK30KKworLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1
ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKy8v
IEBwcmUgVHlwZSBvZiAnKnRoaXMnIGlzIG9iamVjdCBvciBudWxsLgorLy8gQHBhcmFtIGtleSBp
cyBudWxsLXRlcm1pbmF0ZWQuCitWYWx1ZSYgVmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoY29uc3Qg
Y2hhcioga2V5KSB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxs
VmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJl
c29sdmVSZWZlcmVuY2UoKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09
IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKG9iamVjdFZhbHVlKTsKKyAgQ1pTdHJpbmcg
YWN0dWFsS2V5KAorICAgICAga2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKGtleSkp
LCBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbik7IC8vIE5PVEUhCisgIE9iamVjdFZhbHVlczo6aXRl
cmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsKKyAgaWYgKGl0
ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkpCisgICAg
cmV0dXJuICgqaXQpLnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVs
dFZhbHVlKGFjdHVhbEtleSwgbnVsbFJlZik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChp
dCwgZGVmYXVsdFZhbHVlKTsKKyAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25kOworICByZXR1
cm4gdmFsdWU7Cit9CisKKy8vIEBwYXJhbSBrZXkgaXMgbm90IG51bGwtdGVybWluYXRlZC4KK1Zh
bHVlJiBWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3Qq
IGNlbmQpCit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFs
dWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc29s
dmVSZWZlcmVuY2Uoa2V5LCBlbmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlw
ZV8gPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUpOworICBDWlN0
cmluZyBhY3R1YWxLZXkoCisgICAgICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjZW5kLWtl
eSksIENaU3RyaW5nOjpkdXBsaWNhdGVPbkNvcHkpOworICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9y
IGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCAhPSB2
YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0gYWN0dWFsS2V5KQorICAgIHJldHVy
biAoKml0KS5zZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1
ZShhY3R1YWxLZXksIG51bGxSZWYpOworICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQsIGRl
ZmF1bHRWYWx1ZSk7CisgIFZhbHVlJiB2YWx1ZSA9ICgqaXQpLnNlY29uZDsKKyAgcmV0dXJuIHZh
bHVlOworfQorCitWYWx1ZSBWYWx1ZTo6Z2V0KEFycmF5SW5kZXggaW5kZXgsIGNvbnN0IFZhbHVl
JiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWUqIHZhbHVlID0gJigoKnRoaXMp
W2luZGV4XSk7CisgIGlmICggdmFsdWUgPT0gJm51bGxSZWYgKQorICB7CisgICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOworICB9CisgIGVsc2UKKyAgeworICAgICAgICAgVmFsdWUgcmVzdWx0
ID0gKnZhbHVlOworICAgICAgICAgcmVzdWx0LmRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCBk
ZWZhdWx0VmFsdWUgKTsKKyAgICAgICAgIHJldHVybiByZXN1bHQ7CisgIH0KK30KKworYm9vbCBW
YWx1ZTo6aXNWYWxpZEluZGV4KEFycmF5SW5kZXggaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4
IDwgc2l6ZSgpOyB9CisKK1ZhbHVlIGNvbnN0KiBWYWx1ZTo6ZmluZChjaGFyIGNvbnN0KiBrZXks
IGNoYXIgY29uc3QqIGNlbmQpIGNvbnN0Cit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAg
ICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4g
SnNvbjo6VmFsdWU6OmZpbmQoa2V5LCBlbmQsIGZvdW5kKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUg
b3IgbnVsbFZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpIHJldHVybiBOVUxMOwor
ICBDWlN0cmluZyBhY3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2VuZC1rZXkp
LCBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0
b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0gdmFsdWVf
Lm1hcF8tPmVuZCgpKSByZXR1cm4gTlVMTDsKKyAgcmV0dXJuICYoKml0KS5zZWNvbmQ7Cit9Citj
b25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KSBjb25zdAorewor
ICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworICBp
ZiAoIWZvdW5kKSByZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJuICpmb3VuZDsKK30KK1ZhbHVlIGNv
bnN0JiBWYWx1ZTo6b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBjb25zdCYga2V5KSBjb25zdAorewor
ICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXku
bGVuZ3RoKCkpOworICBpZiAoIWZvdW5kKSByZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJuICpmb3Vu
ZDsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtleSkgeworICBy
ZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXksIGtleSArIHN0cmxlbihrZXkpKTsKK30KKworVmFs
dWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJu
IHJlc29sdmVSZWZlcmVuY2Uoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7
Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJpbmcmIGtleSkg
eworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5jZShrZXkuY19zdHIoKSk7Cit9CisKKyNpZmRlZiBK
U09OX1VTRV9DUFBUTAorVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IENwcFRMOjpDb25z
dFN0cmluZyYga2V5KSB7CisgIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpLCBr
ZXkuZW5kX2Nfc3RyKCkpOworfQorVmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRvcltdKENwcFRM
OjpDb25zdFN0cmluZyBjb25zdCYga2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQg
PSBmaW5kKGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCkpOworICBpZiAoIWZvdW5kKSByZXR1
cm4gbnVsbFJlZjsKKyAgcmV0dXJuICpmb3VuZDsKK30KKyNlbmRpZgorCitWYWx1ZSYgVmFsdWU6
OmFwcGVuZChjb25zdCBWYWx1ZSYgdmFsdWUpIHsgcmV0dXJuICgqdGhpcylbc2l6ZSgpXSA9IHZh
bHVlOyB9CisKK1ZhbHVlIFZhbHVlOjpnZXQoY2hhciBjb25zdCoga2V5LCBjaGFyIGNvbnN0KiBj
ZW5kLCBWYWx1ZSBjb25zdCYgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICBWYWx1ZSBjb25zdCog
Zm91bmQgPSBmaW5kKGtleSwgY2VuZCk7CisgIGlmICggIWZvdW5kICkKKyAgeworICAgICAgICAg
cmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgfQorICBlbHNlCisgIHsKKyAgICAgICAgIFZhbHVlIHJl
c3VsdCA9ICpmb3VuZDsKKyAgICAgICAgIHJlc3VsdC5kZWZhdWx0X3ZhbHVlXyA9IG5ldyBWYWx1
ZSggZGVmYXVsdFZhbHVlICk7CisgICAgICAgICByZXR1cm4gcmVzdWx0OworICB9Cit9CitWYWx1
ZSBWYWx1ZTo6Z2V0KGNoYXIgY29uc3QqIGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkg
Y29uc3QKK3sKKyAgcmV0dXJuIGdldChrZXksIGtleSArIHN0cmxlbihrZXkpLCBkZWZhdWx0VmFs
dWUpOworfQorVmFsdWUgVmFsdWU6OmdldChzdGQ6OnN0cmluZyBjb25zdCYga2V5LCBWYWx1ZSBj
b25zdCYgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICByZXR1cm4gZ2V0KGtleS5kYXRhKCksIGtl
eS5kYXRhKCkgKyBrZXkubGVuZ3RoKCksIGRlZmF1bHRWYWx1ZSk7Cit9CisKKworYm9vbCBWYWx1
ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogY2VuZCwgVmFsdWUq
IHJlbW92ZWQpCit7CisgIGlmICh0eXBlXyAhPSBvYmplY3RWYWx1ZSkgeworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorICBDWlN0cmluZyBhY3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oY2VuZC1rZXkpLCBDWlN0cmluZzo6bm9EdXBsaWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6
aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0g
dmFsdWVfLm1hcF8tPmVuZCgpKQorICAgIHJldHVybiBmYWxzZTsKKyAgKnJlbW92ZWQgPSBpdC0+
c2Vjb25kOworICB2YWx1ZV8ubWFwXy0+ZXJhc2UoaXQpOworICByZXR1cm4gdHJ1ZTsKK30KK2Jv
b2wgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKQor
eworICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSksIHJlbW92ZWQp
OworfQorYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZh
bHVlKiByZW1vdmVkKQoreworICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleS5kYXRhKCksIGtleS5k
YXRhKCkgKyBrZXkubGVuZ3RoKCksIHJlbW92ZWQpOworfQorVmFsdWUgVmFsdWU6OnJlbW92ZU1l
bWJlcihjb25zdCBjaGFyKiBrZXkpCit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZV8gPT0g
bnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICJpbiBKc29uOjpWYWx1ZTo6cmVtb3ZlTWVtYmVyKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7
CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgcmV0dXJuIG51bGxSZWY7CisKKyAgVmFs
dWUgcmVtb3ZlZDsgIC8vIG51bGwKKyAgcmVtb3ZlTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtl
eSksICZyZW1vdmVkKTsKKyAgcmV0dXJuIHJlbW92ZWQ7IC8vIHN0aWxsIG51bGwgaWYgcmVtb3Zl
TWVtYmVyKCkgZGlkIG5vdGhpbmcKK30KK1ZhbHVlIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3Qg
c3RkOjpzdHJpbmcmIGtleSkKK3sKKyAgcmV0dXJuIHJlbW92ZU1lbWJlcihrZXkuY19zdHIoKSk7
Cit9CisKK2Jvb2wgVmFsdWU6OnJlbW92ZUluZGV4KEFycmF5SW5kZXggaW5kZXgsIFZhbHVlKiBy
ZW1vdmVkKSB7CisgIGlmICh0eXBlXyAhPSBhcnJheVZhbHVlKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIENaU3RyaW5nIGtleShpbmRleCk7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3Ig
aXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChrZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVu
ZCgpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgICpyZW1vdmVkID0gaXQtPnNlY29uZDsK
KyAgQXJyYXlJbmRleCBvbGRTaXplID0gc2l6ZSgpOworICAvLyBzaGlmdCBsZWZ0IGFsbCBpdGVt
cyBsZWZ0LCBpbnRvIHRoZSBwbGFjZSBvZiB0aGUgInJlbW92ZWQiCisgIGZvciAoQXJyYXlJbmRl
eCBpID0gaW5kZXg7IGkgPCAob2xkU2l6ZSAtIDEpOyArK2kpeworICAgIENaU3RyaW5nIGtlZXko
aSk7CisgICAgKCp2YWx1ZV8ubWFwXylba2VleV0gPSAoKnRoaXMpW2kgKyAxXTsKKyAgfQorICAv
LyBlcmFzZSB0aGUgbGFzdCBvbmUgKCJsZWZ0b3ZlciIpCisgIENaU3RyaW5nIGtleUxhc3Qob2xk
U2l6ZSAtIDEpOworICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBf
LT5maW5kKGtleUxhc3QpOworICB2YWx1ZV8ubWFwXy0+ZXJhc2UoaXRMYXN0KTsKKyAgcmV0dXJu
IHRydWU7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorVmFsdWUgVmFsdWU6OmdldChjb25z
dCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUm
IGRlZmF1bHRWYWx1ZSkgY29uc3QgeworICByZXR1cm4gZ2V0KGtleS5jX3N0cigpLCBrZXkuZW5k
X2Nfc3RyKCksIGRlZmF1bHRWYWx1ZSk7Cit9CisjZW5kaWYKKworYm9vbCBWYWx1ZTo6aXNNZW1i
ZXIoY2hhciBjb25zdCoga2V5LCBjaGFyIGNvbnN0KiBjZW5kKSBjb25zdAoreworICBWYWx1ZSBj
b25zdCogdmFsdWUgPSBmaW5kKGtleSwgY2VuZCk7CisgIHJldHVybiBOVUxMICE9IHZhbHVlOwor
fQorYm9vbCBWYWx1ZTo6aXNNZW1iZXIoY2hhciBjb25zdCoga2V5KSBjb25zdAoreworICByZXR1
cm4gaXNNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSk7Cit9Citib29sIFZhbHVlOjppc01l
bWJlcihzdGQ6OnN0cmluZyBjb25zdCYga2V5KSBjb25zdAoreworICByZXR1cm4gaXNNZW1iZXIo
a2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Cit9CisKKyNpZmRlZiBKU09O
X1VTRV9DUFBUTAorYm9vbCBWYWx1ZTo6aXNNZW1iZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5n
JiBrZXkpIGNvbnN0IHsKKyAgcmV0dXJuIGlzTWVtYmVyKGtleS5jX3N0cigpLCBrZXkuZW5kX2Nf
c3RyKCkpOworfQorI2VuZGlmCisKK1ZhbHVlOjpNZW1iZXJzIFZhbHVlOjpnZXRNZW1iZXJOYW1l
cygpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxW
YWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6Z2V0
TWVtYmVyTmFtZXMoKSwgdmFsdWUgbXVzdCBiZSBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8g
PT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBWYWx1ZTo6TWVtYmVycygpOworICBNZW1iZXJzIG1l
bWJlcnM7CisgIG1lbWJlcnMucmVzZXJ2ZSh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgT2JqZWN0
VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5iZWdpbigpOworICBPYmpl
Y3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0RW5kID0gdmFsdWVfLm1hcF8tPmVuZCgpOworICBm
b3IgKDsgaXQgIT0gaXRFbmQ7ICsraXQpIHsKKyAgICBtZW1iZXJzLnB1c2hfYmFjayhzdGQ6OnN0
cmluZygoKml0KS5maXJzdC5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCppdCkuZmlyc3QubGVuZ3RoKCkpKTsKKyAgfQorICByZXR1cm4gbWVtYmVyczsKK30KKy8v
CisvLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKy8vIEVudW1NZW1iZXJOYW1lcworLy8gVmFsdWU6
OmVudW1NZW1iZXJOYW1lcygpIGNvbnN0CisvL3sKKy8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RW
YWx1ZSApCisvLyAgIHsKKy8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnkoICBDcHBUTDo6
RW51bTo6dHJhbnNmb3JtKAorLy8gICAgICAgICBDcHBUTDo6RW51bTo6a2V5cyggKih2YWx1ZV8u
bWFwXyksIENwcFRMOjpUeXBlPGNvbnN0IENaU3RyaW5nICY+KCkgKSwKKy8vICAgICAgICAgTWVt
YmVyTmFtZXNUcmFuc2Zvcm0oKSApICk7CisvLyAgIH0KKy8vICAgcmV0dXJuIEVudW1NZW1iZXJO
YW1lcygpOworLy99CisvLworLy8KKy8vIEVudW1WYWx1ZXMKKy8vIFZhbHVlOjplbnVtVmFsdWVz
KCkgY29uc3QKKy8veworLy8gICBpZiAoIHR5cGVfID09IG9iamVjdFZhbHVlICB8fCAgdHlwZV8g
PT0gYXJyYXlWYWx1ZSApCisvLyAgICAgIHJldHVybiBDcHBUTDo6RW51bTo6YW55VmFsdWVzKCAq
KHZhbHVlXy5tYXBfKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENw
cFRMOjpUeXBlPGNvbnN0IFZhbHVlICY+KCkgKTsKKy8vICAgcmV0dXJuIEVudW1WYWx1ZXMoKTsK
Ky8vfQorLy8KKy8vIyBlbmRpZgorCitzdGF0aWMgYm9vbCBJc0ludGVncmFsKGRvdWJsZSBkKSB7
CisgIGRvdWJsZSBpbnRlZ3JhbF9wYXJ0OworICByZXR1cm4gbW9kZihkLCAmaW50ZWdyYWxfcGFy
dCkgPT0gMC4wOworfQorCitib29sIFZhbHVlOjppc051bGwoKSBjb25zdCB7IHJldHVybiB0eXBl
XyA9PSBudWxsVmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNCb29sKCkgY29uc3QgeyByZXR1cm4g
dHlwZV8gPT0gYm9vbGVhblZhbHVlOyB9CisKK2Jvb2wgVmFsdWU6OmlzSW50KCkgY29uc3Qgewor
ICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5p
bnRfID49IG1pbkludCAmJiB2YWx1ZV8uaW50XyA8PSBtYXhJbnQ7CisgIGNhc2UgdWludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludChtYXhJbnQpOworICBjYXNlIHJlYWxW
YWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IG1pbkludCAmJiB2YWx1ZV8ucmVhbF8g
PD0gbWF4SW50ICYmCisgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6
OmlzVUludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwICYmIExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8
PSBMYXJnZXN0VUludChtYXhVSW50KTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZh
bHVlXy51aW50XyA8PSBtYXhVSW50OworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLnJlYWxfID49IDAgJiYgdmFsdWVfLnJlYWxfIDw9IG1heFVJbnQgJiYKKyAgICAgICAgICAg
SXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9Cisg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNJbnQ2NCgpIGNvbnN0IHsKKyNpZiBk
ZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFs
dWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1
ZV8udWludF8gPD0gVUludDY0KG1heEludDY0KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8g
Tm90ZSB0aGF0IG1heEludDY0ICg9IDJeNjMgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRh
YmxlIGFzIGEKKyAgICAvLyBkb3VibGUsIHNvIGRvdWJsZShtYXhJbnQ2NCkgd2lsbCBiZSByb3Vu
ZGVkIHVwIHRvIDJeNjMuIFRoZXJlZm9yZSB3ZQorICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRv
IGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgbGltaXQuCisgICAgcmV0dXJuIHZhbHVlXy5yZWFs
XyA+PSBkb3VibGUobWluSW50NjQpICYmCisgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IGRvdWJs
ZShtYXhJbnQ2NCkgJiYgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAg
IGJyZWFrOworICB9CisjZW5kaWYgLy8gSlNPTl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFZhbHVlOjppc1VJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQorICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy5pbnRfID49IDA7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB0cnVlOwor
ICBjYXNlIHJlYWxWYWx1ZToKKyAgICAvLyBOb3RlIHRoYXQgbWF4VUludDY0ICg9IDJeNjQgLSAx
KSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKKyAgICAvLyBkb3VibGUsIHNvIGRv
dWJsZShtYXhVSW50NjQpIHdpbGwgYmUgcm91bmRlZCB1cCB0byAyXjY0LiBUaGVyZWZvcmUgd2UK
KyAgICAvLyByZXF1aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxp
bWl0LgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPCBtYXhV
SW50NjRBc0RvdWJsZSAmJgorICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7Cisg
IGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAorICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6OmlzSW50ZWdyYWwoKSBjb25zdCB7CisjaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgcmV0dXJuIGlzSW50NjQoKSB8fCBpc1VJbnQ2NCgp
OworI2Vsc2UKKyAgcmV0dXJuIGlzSW50KCkgfHwgaXNVSW50KCk7CisjZW5kaWYKK30KKworYm9v
bCBWYWx1ZTo6aXNEb3VibGUoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSByZWFsVmFsdWUgfHwg
aXNJbnRlZ3JhbCgpOyB9CisKK2Jvb2wgVmFsdWU6OmlzTnVtZXJpYygpIGNvbnN0IHsgcmV0dXJu
IGlzSW50ZWdyYWwoKSB8fCBpc0RvdWJsZSgpOyB9CisKK2Jvb2wgVmFsdWU6OmlzU3RyaW5nKCkg
Y29uc3QgeyByZXR1cm4gdHlwZV8gPT0gc3RyaW5nVmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IGFycmF5VmFsdWU7IH0KKworYm9vbCBWYWx1
ZTo6aXNPYmplY3QoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBvYmplY3RWYWx1ZTsgfQorCit2
b2lkIFZhbHVlOjpzZXRDb21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIHNpemVfdCBsZW4sIENv
bW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIGlmICghY29tbWVudHNfKQorICAgIGNvbW1l
bnRzXyA9IG5ldyBDb21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOworICBpZiAo
KGxlbiA+IDApICYmIChjb21tZW50W2xlbi0xXSA9PSAnXG4nKSkgeworICAgIC8vIEFsd2F5cyBk
aXNjYXJkIHRyYWlsaW5nIG5ld2xpbmUsIHRvIGFpZCBpbmRlbnRhdGlvbi4KKyAgICBsZW4gLT0g
MTsKKyAgfQorICBjb21tZW50c19bcGxhY2VtZW50XS5zZXRDb21tZW50KGNvbW1lbnQsIGxlbik7
Cit9CisKK3ZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwgQ29tbWVu
dFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgc2V0Q29tbWVudChjb21tZW50LCBzdHJsZW4oY29t
bWVudCksIHBsYWNlbWVudCk7Cit9CisKK3ZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3Qgc3Rk
OjpzdHJpbmcmIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIHNldENv
bW1lbnQoY29tbWVudC5jX3N0cigpLCBjb21tZW50Lmxlbmd0aCgpLCBwbGFjZW1lbnQpOworfQor
Citib29sIFZhbHVlOjpoYXNDb21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25z
dCB7CisgIHJldHVybiBjb21tZW50c18gIT0gMCAmJiBjb21tZW50c19bcGxhY2VtZW50XS5jb21t
ZW50XyAhPSAwOworfQorCitzdGQ6OnN0cmluZyBWYWx1ZTo6Z2V0Q29tbWVudChDb21tZW50UGxh
Y2VtZW50IHBsYWNlbWVudCkgY29uc3QgeworICBpZiAoaGFzQ29tbWVudChwbGFjZW1lbnQpKQor
ICAgIHJldHVybiBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XzsKKyAgcmV0dXJuICIiOwor
fQorCit2b2lkIFZhbHVlOjpzZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpIHsgc3RhcnRfID0g
c3RhcnQ7IH0KKwordm9pZCBWYWx1ZTo6c2V0T2Zmc2V0TGltaXQoc2l6ZV90IGxpbWl0KSB7IGxp
bWl0XyA9IGxpbWl0OyB9CisKK3NpemVfdCBWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQoKSBjb25zdCB7
IHJldHVybiBzdGFydF87IH0KKworc2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRMaW1pdCgpIGNvbnN0
IHsgcmV0dXJuIGxpbWl0XzsgfQorCitzdGQ6OnN0cmluZyBWYWx1ZTo6dG9TdHlsZWRTdHJpbmco
KSBjb25zdCB7CisgIFN0eWxlZFdyaXRlciB3cml0ZXI7CisgIHJldHVybiB3cml0ZXIud3JpdGUo
KnRoaXMpOworfQorCitWYWx1ZTo6Y29uc3RfaXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgY29uc3Qg
eworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RW
YWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3Io
dmFsdWVfLm1hcF8tPmJlZ2luKCkpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFr
OworICB9CisgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOworfQorCitWYWx1ZTo6Y29uc3RfaXRl
cmF0b3IgVmFsdWU6OmVuZCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFy
cmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAg
ICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBfLT5lbmQoKSk7CisgICAgYnJlYWs7
CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7
Cit9CisKK1ZhbHVlOjppdGVyYXRvciBWYWx1ZTo6YmVnaW4oKSB7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2YWx1
ZV8ubWFwXykKKyAgICAgIHJldHVybiBpdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4oKSk7Cisg
ICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGl0ZXJhdG9y
KCk7Cit9CisKK1ZhbHVlOjppdGVyYXRvciBWYWx1ZTo6ZW5kKCkgeworICBzd2l0Y2ggKHR5cGVf
KSB7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFs
dWVfLm1hcF8pCisgICAgICByZXR1cm4gaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAg
ICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3Io
KTsKK30KKworLy8gY2xhc3MgUGF0aEFyZ3VtZW50CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworUGF0aEFyZ3Vt
ZW50OjpQYXRoQXJndW1lbnQoKSA6IGtleV8oKSwgaW5kZXhfKCksIGtpbmRfKGtpbmROb25lKSB7
fQorCitQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudChBcnJheUluZGV4IGluZGV4KQorICAgIDog
a2V5XygpLCBpbmRleF8oaW5kZXgpLCBraW5kXyhraW5kSW5kZXgpIHt9CisKK1BhdGhBcmd1bWVu
dDo6UGF0aEFyZ3VtZW50KGNvbnN0IGNoYXIqIGtleSkKKyAgICA6IGtleV8oa2V5KSwgaW5kZXhf
KCksIGtpbmRfKGtpbmRLZXkpIHt9CisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KGNvbnN0
IHN0ZDo6c3RyaW5nJiBrZXkpCisgICAgOiBrZXlfKGtleS5jX3N0cigpKSwgaW5kZXhfKCksIGtp
bmRfKGtpbmRLZXkpIHt9CisKKy8vIGNsYXNzIFBhdGgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitQYXRoOjpQ
YXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1l
bnQmIGExLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEyLAorICAgICAgICAgICBj
b25zdCBQYXRoQXJndW1lbnQmIGEzLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE0
LAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1KSB7CisgIEluQXJncyBpbjsKKyAg
aW4ucHVzaF9iYWNrKCZhMSk7CisgIGluLnB1c2hfYmFjaygmYTIpOworICBpbi5wdXNoX2JhY2so
JmEzKTsKKyAgaW4ucHVzaF9iYWNrKCZhNCk7CisgIGluLnB1c2hfYmFjaygmYTUpOworICBtYWtl
UGF0aChwYXRoLCBpbik7Cit9CisKK3ZvaWQgUGF0aDo6bWFrZVBhdGgoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pIHsKKyAgY29uc3QgY2hhciogY3VycmVudCA9IHBh
dGguY19zdHIoKTsKKyAgY29uc3QgY2hhciogZW5kID0gY3VycmVudCArIHBhdGgubGVuZ3RoKCk7
CisgIEluQXJnczo6Y29uc3RfaXRlcmF0b3IgaXRJbkFyZyA9IGluLmJlZ2luKCk7CisgIHdoaWxl
IChjdXJyZW50ICE9IGVuZCkgeworICAgIGlmICgqY3VycmVudCA9PSAnWycpIHsKKyAgICAgICsr
Y3VycmVudDsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnJScpCisgICAgICAgIGFkZFBhdGhJbkFy
ZyhwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpOworICAgICAgZWxz
ZSB7CisgICAgICAgIEFycmF5SW5kZXggaW5kZXggPSAwOworICAgICAgICBmb3IgKDsgY3VycmVu
dCAhPSBlbmQgJiYgKmN1cnJlbnQgPj0gJzAnICYmICpjdXJyZW50IDw9ICc5JzsgKytjdXJyZW50
KQorICAgICAgICAgIGluZGV4ID0gaW5kZXggKiAxMCArIEFycmF5SW5kZXgoKmN1cnJlbnQgLSAn
MCcpOworICAgICAgICBhcmdzXy5wdXNoX2JhY2soaW5kZXgpOworICAgICAgfQorICAgICAgaWYg
KGN1cnJlbnQgPT0gZW5kIHx8ICpjdXJyZW50KysgIT0gJ10nKQorICAgICAgICBpbnZhbGlkUGF0
aChwYXRoLCBpbnQoY3VycmVudCAtIHBhdGguY19zdHIoKSkpOworICAgIH0gZWxzZSBpZiAoKmN1
cnJlbnQgPT0gJyUnKSB7CisgICAgICBhZGRQYXRoSW5BcmcocGF0aCwgaW4sIGl0SW5BcmcsIFBh
dGhBcmd1bWVudDo6a2luZEtleSk7CisgICAgICArK2N1cnJlbnQ7CisgICAgfSBlbHNlIGlmICgq
Y3VycmVudCA9PSAnLicpIHsKKyAgICAgICsrY3VycmVudDsKKyAgICB9IGVsc2UgeworICAgICAg
Y29uc3QgY2hhciogYmVnaW5OYW1lID0gY3VycmVudDsKKyAgICAgIHdoaWxlIChjdXJyZW50ICE9
IGVuZCAmJiAhc3RyY2hyKCJbLiIsICpjdXJyZW50KSkKKyAgICAgICAgKytjdXJyZW50OworICAg
ICAgYXJnc18ucHVzaF9iYWNrKHN0ZDo6c3RyaW5nKGJlZ2luTmFtZSwgY3VycmVudCkpOworICAg
IH0KKyAgfQorfQorCit2b2lkIFBhdGg6OmFkZFBhdGhJbkFyZyhjb25zdCBzdGQ6OnN0cmluZyYg
LypwYXRoKi8sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAg
ICAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYgaXRJbkFyZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kKSB7CisgIGlmIChp
dEluQXJnID09IGluLmVuZCgpKSB7CisgICAgLy8gRXJyb3I6IG1pc3NpbmcgYXJndW1lbnQgJWQK
KyAgfSBlbHNlIGlmICgoKml0SW5BcmcpLT5raW5kXyAhPSBraW5kKSB7CisgICAgLy8gRXJyb3I6
IGJhZCBhcmd1bWVudCB0eXBlCisgIH0gZWxzZSB7CisgICAgYXJnc18ucHVzaF9iYWNrKCoqaXRJ
bkFyZyk7CisgIH0KK30KKwordm9pZCBQYXRoOjppbnZhbGlkUGF0aChjb25zdCBzdGQ6OnN0cmlu
ZyYgLypwYXRoKi8sIGludCAvKmxvY2F0aW9uKi8pIHsKKyAgLy8gRXJyb3I6IGludmFsaWQgcGF0
aC4KK30KKworY29uc3QgVmFsdWUmIFBhdGg6OnJlc29sdmUoY29uc3QgVmFsdWUmIHJvb3QpIGNv
bnN0IHsKKyAgY29uc3QgVmFsdWUqIG5vZGUgPSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9p
dGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7Cisg
ICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhcmcgPSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQ
YXRoQXJndW1lbnQ6OmtpbmRJbmRleCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwg
IW5vZGUtPmlzVmFsaWRJbmRleChhcmcuaW5kZXhfKSkgeworICAgICAgICAvLyBFcnJvcjogdW5h
YmxlIHRvIHJlc29sdmUgcGF0aCAoYXJyYXkgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4K
KyAgICAgIH0KKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxz
ZSBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFu
b2RlLT5pc09iamVjdCgpKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBw
YXRoIChvYmplY3QgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4pCisgICAgICB9CisgICAg
ICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7CisgICAgICBpZiAobm9kZSA9PSAmVmFsdWU6
Om51bGxSZWYpIHsKKyAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9i
amVjdCBoYXMgbm8gbWVtYmVyIG5hbWVkICcnIGF0CisgICAgICAgIC8vIHBvc2l0aW9uLi4uKQor
ICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7Cit9CisKK1ZhbHVlIFBhdGg6OnJl
c29sdmUoY29uc3QgVmFsdWUmIHJvb3QsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0
IHsKKyAgY29uc3QgVmFsdWUqIG5vZGUgPSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9pdGVy
YXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7CisgICAg
Y29uc3QgUGF0aEFyZ3VtZW50JiBhcmcgPSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRo
QXJndW1lbnQ6OmtpbmRJbmRleCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5v
ZGUtPmlzVmFsaWRJbmRleChhcmcuaW5kZXhfKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsKKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAo
YXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5p
c09iamVjdCgpKQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgbm9kZSA9ICYo
KCpub2RlKVthcmcua2V5X10pOworICAgICAgaWYgKG5vZGUgPT0gJlZhbHVlOjpudWxsUmVmKQor
ICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7
Cit9CisKK1ZhbHVlJiBQYXRoOjptYWtlKFZhbHVlJiByb290KSBjb25zdCB7CisgIFZhbHVlKiBu
b2RlID0gJnJvb3Q7CisgIGZvciAoQXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdp
bigpOyBpdCAhPSBhcmdzXy5lbmQoKTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYg
YXJnID0gKml0OworICAgIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgp
IHsKKyAgICAgIGlmICghbm9kZS0+aXNBcnJheSgpKSB7CisgICAgICAgIC8vIEVycm9yOiBub2Rl
IGlzIG5vdCBhbiBhcnJheSBhdCBwb3NpdGlvbiAuLi4KKyAgICAgIH0KKyAgICAgIG5vZGUgPSAm
KCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhB
cmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKSB7CisgICAg
ICAgIC8vIEVycm9yOiBub2RlIGlzIG5vdCBhbiBvYmplY3QgYXQgcG9zaXRpb24uLi4KKyAgICAg
IH0KKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKKyAgICB9CisgIH0KKyAgcmV0
dXJuICpub2RlOworfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNwcmFnbWEgd2FybmluZyAo
cG9wKQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMv
bGliX2pzb24vanNvbl92YWx1ZS5jcHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJf
anNvbi9qc29uX3dyaXRlci5jcHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIw
MTEgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1
cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09O
X0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxqc29uL3dyaXRlci5oPgorI2luY2x1ZGUgImpz
b25fdG9vbC5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQor
I2luY2x1ZGUgPGlvbWFuaXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNzdHJlYW0+
CisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8Y2Fzc2VydD4K
KyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGNzdGRpbz4KKworI2lmIGRlZmluZWQoX01T
Q19WRVIpICYmIF9NU0NfVkVSID49IDEyMDAgJiYgX01TQ19WRVIgPCAxODAwIC8vIEJldHdlZW4g
VkMrKyA2LjAgYW5kIFZDKysgMTEuMAorI2luY2x1ZGUgPGZsb2F0Lmg+CisjZGVmaW5lIGlzZmlu
aXRlIF9maW5pdGUKKyNlbGlmIGRlZmluZWQoX19zdW4pICYmIGRlZmluZWQoX19TVlI0KSAvL1Nv
bGFyaXMKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpbmNsdWRlIDxpZWVlZnAuaD4KKyNkZWZp
bmUgaXNmaW5pdGUgZmluaXRlCisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX0FJWCkKKyNpZiAhZGVm
aW5lZChpc2Zpbml0ZSkKKyNpbmNsdWRlIDxtYXRoLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0
ZQorI2VuZGlmCisjZWxpZiBkZWZpbmVkKF9faHB1eCkKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkK
KyNpZiBkZWZpbmVkKF9faWE2NCkgJiYgIWRlZmluZWQoZmluaXRlKQorI2RlZmluZSBpc2Zpbml0
ZSh4KSAoKHNpemVvZih4KSA9PSBzaXplb2YoZmxvYXQpID8gXAorICAgICAgICAgICAgICAgICAg
ICAgX0lzZmluaXRlZih4KSA6IF9Jc0Zpbml0ZSh4KSkpCisjZWxzZQorI2luY2x1ZGUgPG1hdGgu
aD4KKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRlCisjZW5kaWYKKyNlbmRpZgorI2Vsc2UKKyNpbmNs
dWRlIDxjbWF0aD4KKyNpZiAhKGRlZmluZWQoX19RTlhOVE9fXykpIC8vIFFOWCBhbHJlYWR5IGRl
ZmluZXMgaXNmaW5pdGUKKyNkZWZpbmUgaXNmaW5pdGUgc3RkOjppc2Zpbml0ZQorI2VuZGlmCisj
ZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWYgIWRlZmluZWQoV0lOQ0UpICYmIGRl
ZmluZWQoX19TVERDX1NFQ1VSRV9MSUJfXykgJiYgX01TQ19WRVIgPj0gMTUwMCAvLyBWQysrIDku
MCBhbmQgYWJvdmUKKyNkZWZpbmUgc25wcmludGYgc3ByaW50Zl9zCisjZWxpZiBfTVNDX1ZFUiA+
PSAxOTAwIC8vIFZDKysgMTQuMCBhbmQgYWJvdmUKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnBy
aW50ZgorI2Vsc2UKKyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisjZW5kaWYKKyNlbGlmIGRl
ZmluZWQoX19BTkRST0lEX18pIHx8IGRlZmluZWQoX19RTlhOVE9fXykKKyNkZWZpbmUgc25wcmlu
dGYgc25wcmludGYKKyNlbGlmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKKyNkZWZpbmUgc25wcmlu
dGYgc3RkOjpzbnByaW50ZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgIAor
I2luY2x1ZGUgPGZsb2F0Lmg+CisjZGVmaW5lIGlzZmluaXRlIF9maW5pdGUKKyNkZWZpbmUgc25w
cmludGYgX3NucHJpbnRmCisjZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0Nf
VkVSID49IDE0MDAgLy8gVkMrKyA4LjAKKy8vIERpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAg
YmVpbmcgZGVwcmVjYXRlZC4KKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRp
ZgorCituYW1lc3BhY2UgSnNvbiB7CisKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChk
ZWZpbmVkKF9DUFBMSUJfVkVSKSAmJiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6
dW5pcXVlX3B0cjxTdHJlYW1Xcml0ZXI+IFN0cmVhbVdyaXRlclB0cjsKKyNlbHNlCit0eXBlZGVm
IHN0ZDo6YXV0b19wdHI8U3RyZWFtV3JpdGVyPiAgIFN0cmVhbVdyaXRlclB0cjsKKyNlbmRpZgor
CitzdGF0aWMgYm9vbCBjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIoY29uc3QgY2hhciogc3RyKSB7
CisgIHdoaWxlICgqc3RyKSB7CisgICAgaWYgKGlzQ29udHJvbENoYXJhY3RlcigqKHN0cisrKSkp
CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBi
b29sIGNvbnRhaW5zQ29udHJvbENoYXJhY3RlcjAoY29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBs
ZW4pIHsKKyAgY2hhciBjb25zdCogZW5kID0gc3RyICsgbGVuOworICB3aGlsZSAoZW5kICE9IHN0
cikgeworICAgIGlmIChpc0NvbnRyb2xDaGFyYWN0ZXIoKnN0cikgfHwgMD09KnN0cikKKyAgICAg
IHJldHVybiB0cnVlOworICAgICsrc3RyOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworc3Rk
OjpzdHJpbmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0SW50IHZhbHVlKSB7CisgIFVJbnRUb1N0cmlu
Z0J1ZmZlciBidWZmZXI7CisgIGNoYXIqIGN1cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVy
KTsKKyAgaWYgKHZhbHVlID09IFZhbHVlOjptaW5MYXJnZXN0SW50KSB7CisgICAgdWludFRvU3Ry
aW5nKExhcmdlc3RVSW50KFZhbHVlOjptYXhMYXJnZXN0SW50KSArIDEsIGN1cnJlbnQpOworICAg
ICotLWN1cnJlbnQgPSAnLSc7CisgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7CisgICAgdWludFRv
U3RyaW5nKExhcmdlc3RVSW50KC12YWx1ZSksIGN1cnJlbnQpOworICAgICotLWN1cnJlbnQgPSAn
LSc7CisgIH0gZWxzZSB7CisgICAgdWludFRvU3RyaW5nKExhcmdlc3RVSW50KHZhbHVlKSwgY3Vy
cmVudCk7CisgIH0KKyAgYXNzZXJ0KGN1cnJlbnQgPj0gYnVmZmVyKTsKKyAgcmV0dXJuIGN1cnJl
bnQ7Cit9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUpIHsK
KyAgVUludFRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAgY2hhciogY3VycmVudCA9IGJ1ZmZlciAr
IHNpemVvZihidWZmZXIpOworICB1aW50VG9TdHJpbmcodmFsdWUsIGN1cnJlbnQpOworICBhc3Nl
cnQoY3VycmVudCA+PSBidWZmZXIpOworICByZXR1cm4gY3VycmVudDsKK30KKworI2lmIGRlZmlu
ZWQoSlNPTl9IQVNfSU5UNjQpCisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoSW50IHZhbHVl
KSB7CisgIHJldHVybiB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQodmFsdWUpKTsKK30KKworc3Rk
OjpzdHJpbmcgdmFsdWVUb1N0cmluZyhVSW50IHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZVRvU3Ry
aW5nKExhcmdlc3RVSW50KHZhbHVlKSk7Cit9CisKKyNlbmRpZiAvLyAjIGlmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlLCBi
b29sIHVzZVNwZWNpYWxGbG9hdHMsIHVuc2lnbmVkIGludCBwcmVjaXNpb24pIHsKKyAgLy8gQWxs
b2NhdGUgYSBidWZmZXIgdGhhdCBpcyBtb3JlIHRoYW4gbGFyZ2UgZW5vdWdoIHRvIHN0b3JlIHRo
ZSAxNiBkaWdpdHMgb2YKKyAgLy8gcHJlY2lzaW9uIHJlcXVlc3RlZCBiZWxvdy4KKyAgY2hhciBi
dWZmZXJbMzJdOworICBpbnQgbGVuID0gLTE7CisKKyAgY2hhciBmb3JtYXRTdHJpbmdbNl07Cisg
IHNwcmludGYoZm9ybWF0U3RyaW5nLCAiJSUuJWRnIiwgcHJlY2lzaW9uKTsKKworICAvLyBQcmlu
dCBpbnRvIHRoZSBidWZmZXIuIFdlIG5lZWQgbm90IHJlcXVlc3QgdGhlIGFsdGVybmF0aXZlIHJl
cHJlc2VudGF0aW9uCisgIC8vIHRoYXQgYWx3YXlzIGhhcyBhIGRlY2ltYWwgcG9pbnQgYmVjYXVz
ZSBKU09OIGRvZXNuJ3QgZGlzdGluZ2lzaCB0aGUKKyAgLy8gY29uY2VwdHMgb2YgcmVhbHMgYW5k
IGludGVnZXJzLgorICBpZiAoaXNmaW5pdGUodmFsdWUpKSB7CisgICAgbGVuID0gc25wcmludGYo
YnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgZm9ybWF0U3RyaW5nLCB2YWx1ZSk7CisgIH0gZWxzZSB7
CisgICAgLy8gSUVFRSBzdGFuZGFyZCBzdGF0ZXMgdGhhdCBOYU4gdmFsdWVzIHdpbGwgbm90IGNv
bXBhcmUgdG8gdGhlbXNlbHZlcworICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgeworICAgICAgbGVu
ID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICJO
YU4iIDogIm51bGwiKTsKKyAgICB9IGVsc2UgaWYgKHZhbHVlIDwgMCkgeworICAgICAgbGVuID0g
c25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICItSW5m
aW5pdHkiIDogIi0xZSs5OTk5Iik7CisgICAgfSBlbHNlIHsKKyAgICAgIGxlbiA9IHNucHJpbnRm
KGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHVzZVNwZWNpYWxGbG9hdHMgPyAiSW5maW5pdHkiIDog
IjFlKzk5OTkiKTsKKyAgICB9CisgICAgLy8gRm9yIHRob3NlLCB3ZSBkbyBub3QgbmVlZCB0byBj
YWxsIGZpeE51bUxvYywgYnV0IGl0IGlzIGZhc3QuCisgIH0KKyAgYXNzZXJ0KGxlbiA+PSAwKTsK
KyAgZml4TnVtZXJpY0xvY2FsZShidWZmZXIsIGJ1ZmZlciArIGxlbik7CisgIHJldHVybiBidWZm
ZXI7Cit9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlKSB7IHJldHVy
biB2YWx1ZVRvU3RyaW5nKHZhbHVlLCBmYWxzZSwgMTcpOyB9CisKK3N0ZDo6c3RyaW5nIHZhbHVl
VG9TdHJpbmcoYm9vbCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9
CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9RdW90ZWRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpIHsK
KyAgaWYgKHZhbHVlID09IE5VTEwpCisgICAgcmV0dXJuICIiOworICAvLyBOb3Qgc3VyZSBob3cg
dG8gaGFuZGxlIHVuaWNvZGUuLi4KKyAgaWYgKHN0cnBicmsodmFsdWUsICJcIlxcXGJcZlxuXHJc
dCIpID09IE5VTEwgJiYKKyAgICAgICFjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIodmFsdWUpKQor
ICAgIHJldHVybiBzdGQ6OnN0cmluZygiXCIiKSArIHZhbHVlICsgIlwiIjsKKyAgLy8gV2UgaGF2
ZSB0byB3YWxrIHZhbHVlIGFuZCBlc2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KKyAgLy8g
QXBwZW5kaW5nIHRvIHN0ZDo6c3RyaW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3Vs
ZCBiZSByYXJlLgorICAvLyAoTm90ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJlLCBi
dXQgSSBhbSBub3QgZXNjYXBpbmcgdGhlbS4pCisgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbWF4
c2l6ZSA9CisgICAgICBzdHJsZW4odmFsdWUpICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVvdGVz
K05VTEwKKyAgc3RkOjpzdHJpbmcgcmVzdWx0OworICByZXN1bHQucmVzZXJ2ZShtYXhzaXplKTsg
Ly8gdG8gYXZvaWQgbG90cyBvZiBtYWxsb2NzCisgIHJlc3VsdCArPSAiXCIiOworICBmb3IgKGNv
bnN0IGNoYXIqIGMgPSB2YWx1ZTsgKmMgIT0gMDsgKytjKSB7CisgICAgc3dpdGNoICgqYykgewor
ICAgIGNhc2UgJ1wiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxcIiI7CisgICAgICBicmVhazsKKyAg
ICBjYXNlICdcXCc6CisgICAgICByZXN1bHQgKz0gIlxcXFwiOworICAgICAgYnJlYWs7CisgICAg
Y2FzZSAnXGInOgorICAgICAgcmVzdWx0ICs9ICJcXGIiOworICAgICAgYnJlYWs7CisgICAgY2Fz
ZSAnXGYnOgorICAgICAgcmVzdWx0ICs9ICJcXGYiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAn
XG4nOgorICAgICAgcmVzdWx0ICs9ICJcXG4iOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXHIn
OgorICAgICAgcmVzdWx0ICs9ICJcXHIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXHQnOgor
ICAgICAgcmVzdWx0ICs9ICJcXHQiOworICAgICAgYnJlYWs7CisgICAgLy8gY2FzZSAnLyc6Cisg
ICAgLy8gRXZlbiB0aG91Z2ggXC8gaXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVzY2FwZSBpbiBKU09O
LCBhIGJhcmUKKyAgICAvLyBzbGFzaCBpcyBhbHNvIGxlZ2FsLCBzbyBJIHNlZSBubyByZWFzb24g
dG8gZXNjYXBlIGl0LgorICAgIC8vIChJIGhvcGUgSSBhbSBub3QgbWlzdW5kZXJzdGFuZGluZyBz
b21ldGhpbmcuCisgICAgLy8gYmxlcCBub3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJl
IHVzZWZ1bCBpbiBqYXZhc2NyaXB0IHRvIGF2b2lkIDwvCisgICAgLy8gc2VxdWVuY2UuCisgICAg
Ly8gU2hvdWxkIGFkZCBhIGZsYWcgdG8gYWxsb3cgdGhpcyBjb21wYXRpYmlsaXR5IG1vZGUgYW5k
IHByZXZlbnQgdGhpcworICAgIC8vIHNlcXVlbmNlIGZyb20gb2NjdXJyaW5nLgorICAgIGRlZmF1
bHQ6CisgICAgICBpZiAoaXNDb250cm9sQ2hhcmFjdGVyKCpjKSkgeworICAgICAgICBzdGQ6Om9z
dHJpbmdzdHJlYW0gb3NzOworICAgICAgICBvc3MgPDwgIlxcdSIgPDwgc3RkOjpoZXggPDwgc3Rk
Ojp1cHBlcmNhc2UgPDwgc3RkOjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAgIDw8IHN0ZDo6c2V0
dyg0KSA8PCBzdGF0aWNfY2FzdDxpbnQ+KCpjKTsKKyAgICAgICAgcmVzdWx0ICs9IG9zcy5zdHIo
KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdCArPSAqYzsKKyAgICAgIH0KKyAgICAg
IGJyZWFrOworICAgIH0KKyAgfQorICByZXN1bHQgKz0gIlwiIjsKKyAgcmV0dXJuIHJlc3VsdDsK
K30KKworLy8gaHR0cHM6Ly9naXRodWIuY29tL3VwY2FzdGUvdXBjYXN0ZS9ibG9iL21hc3Rlci9z
cmMvdXBjb3JlL3NyYy9jc3RyaW5nL3N0cm5wYnJrLmNwcAorc3RhdGljIGNoYXIgY29uc3QqIHN0
cm5wYnJrKGNoYXIgY29uc3QqIHMsIGNoYXIgY29uc3QqIGFjY2VwdCwgc2l6ZV90IG4pIHsKKyAg
YXNzZXJ0KChzIHx8ICFuKSAmJiBhY2NlcHQpOworCisgIGNoYXIgY29uc3QqIGNvbnN0IGVuZCA9
IHMgKyBuOworICBmb3IgKGNoYXIgY29uc3QqIGN1ciA9IHM7IGN1ciA8IGVuZDsgKytjdXIpIHsK
KyAgICBpbnQgY29uc3QgYyA9ICpjdXI7CisgICAgZm9yIChjaGFyIGNvbnN0KiBhID0gYWNjZXB0
OyAqYTsgKythKSB7CisgICAgICBpZiAoKmEgPT0gYykgeworICAgICAgICByZXR1cm4gY3VyOwor
ICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gTlVMTDsKK30KK3N0YXRpYyBzdGQ6OnN0cmlu
ZyB2YWx1ZVRvUXVvdGVkU3RyaW5nTihjb25zdCBjaGFyKiB2YWx1ZSwgdW5zaWduZWQgbGVuZ3Ro
KSB7CisgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgIHJldHVybiAiIjsKKyAgLy8gTm90IHN1cmUg
aG93IHRvIGhhbmRsZSB1bmljb2RlLi4uCisgIGlmIChzdHJucGJyayh2YWx1ZSwgIlwiXFxcYlxm
XG5cclx0IiwgbGVuZ3RoKSA9PSBOVUxMICYmCisgICAgICAhY29udGFpbnNDb250cm9sQ2hhcmFj
dGVyMCh2YWx1ZSwgbGVuZ3RoKSkKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwiIikgKyB2YWx1
ZSArICJcIiI7CisgIC8vIFdlIGhhdmUgdG8gd2FsayB2YWx1ZSBhbmQgZXNjYXBlIGFueSBzcGVj
aWFsIGNoYXJhY3RlcnMuCisgIC8vIEFwcGVuZGluZyB0byBzdGQ6OnN0cmluZyBpcyBub3QgZWZm
aWNpZW50LCBidXQgdGhpcyBzaG91bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xh
c2hlcyBhcmUgKm5vdCogcmFyZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBzdGQ6
OnN0cmluZzo6c2l6ZV90eXBlIG1heHNpemUgPQorICAgICAgbGVuZ3RoICogMiArIDM7IC8vIGFs
bGVzY2FwZWQrcXVvdGVzK05VTEwKKyAgc3RkOjpzdHJpbmcgcmVzdWx0OworICByZXN1bHQucmVz
ZXJ2ZShtYXhzaXplKTsgLy8gdG8gYXZvaWQgbG90cyBvZiBtYWxsb2NzCisgIHJlc3VsdCArPSAi
XCIiOworICBjaGFyIGNvbnN0KiBlbmQgPSB2YWx1ZSArIGxlbmd0aDsKKyAgZm9yIChjb25zdCBj
aGFyKiBjID0gdmFsdWU7IGMgIT0gZW5kOyArK2MpIHsKKyAgICBzd2l0Y2ggKCpjKSB7CisgICAg
Y2FzZSAnXCInOgorICAgICAgcmVzdWx0ICs9ICJcXFwiIjsKKyAgICAgIGJyZWFrOworICAgIGNh
c2UgJ1xcJzoKKyAgICAgIHJlc3VsdCArPSAiXFxcXCI7CisgICAgICBicmVhazsKKyAgICBjYXNl
ICdcYic6CisgICAgICByZXN1bHQgKz0gIlxcYiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdc
Zic6CisgICAgICByZXN1bHQgKz0gIlxcZiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcbic6
CisgICAgICByZXN1bHQgKz0gIlxcbiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdccic6Cisg
ICAgICByZXN1bHQgKz0gIlxcciI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcdCc6CisgICAg
ICByZXN1bHQgKz0gIlxcdCI7CisgICAgICBicmVhazsKKyAgICAvLyBjYXNlICcvJzoKKyAgICAv
LyBFdmVuIHRob3VnaCBcLyBpcyBjb25zaWRlcmVkIGEgbGVnYWwgZXNjYXBlIGluIEpTT04sIGEg
YmFyZQorICAgIC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBl
c2NhcGUgaXQuCisgICAgLy8gKEkgaG9wZSBJIGFtIG5vdCBtaXN1bmRlcnN0YW5kaW5nIHNvbWV0
aGluZy4pCisgICAgLy8gYmxlcCBub3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJlIHVz
ZWZ1bCBpbiBqYXZhc2NyaXB0IHRvIGF2b2lkIDwvCisgICAgLy8gc2VxdWVuY2UuCisgICAgLy8g
U2hvdWxkIGFkZCBhIGZsYWcgdG8gYWxsb3cgdGhpcyBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHBy
ZXZlbnQgdGhpcworICAgIC8vIHNlcXVlbmNlIGZyb20gb2NjdXJyaW5nLgorICAgIGRlZmF1bHQ6
CisgICAgICBpZiAoKGlzQ29udHJvbENoYXJhY3RlcigqYykpIHx8ICgqYyA9PSAwKSkgeworICAg
ICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3NzOworICAgICAgICBvc3MgPDwgIlxcdSIgPDwgc3Rk
OjpoZXggPDwgc3RkOjp1cHBlcmNhc2UgPDwgc3RkOjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAg
IDw8IHN0ZDo6c2V0dyg0KSA8PCBzdGF0aWNfY2FzdDxpbnQ+KCpjKTsKKyAgICAgICAgcmVzdWx0
ICs9IG9zcy5zdHIoKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdCArPSAqYzsKKyAg
ICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICByZXN1bHQgKz0gIlwiIjsKKyAgcmV0
dXJuIHJlc3VsdDsKK30KKworLy8gQ2xhc3MgV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK1dyaXRlcjo6
fldyaXRlcigpIHt9CisKKy8vIENsYXNzIEZhc3RXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitGYXN0
V3JpdGVyOjpGYXN0V3JpdGVyKCkKKyAgICA6IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyhmYWxz
ZSksIGRyb3BOdWxsUGxhY2Vob2xkZXJzXyhmYWxzZSksCisgICAgICBvbWl0RW5kaW5nTGluZUZl
ZWRfKGZhbHNlKSB7fQorCit2b2lkIEZhc3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5
KCkgeyB5YW1sQ29tcGF0aWJsaXR5RW5hYmxlZF8gPSB0cnVlOyB9CisKK3ZvaWQgRmFzdFdyaXRl
cjo6ZHJvcE51bGxQbGFjZWhvbGRlcnMoKSB7IGRyb3BOdWxsUGxhY2Vob2xkZXJzXyA9IHRydWU7
IH0KKwordm9pZCBGYXN0V3JpdGVyOjpvbWl0RW5kaW5nTGluZUZlZWQoKSB7IG9taXRFbmRpbmdM
aW5lRmVlZF8gPSB0cnVlOyB9CisKK3N0ZDo6c3RyaW5nIEZhc3RXcml0ZXI6OndyaXRlKGNvbnN0
IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50XyA9ICIiOworICB3cml0ZVZhbHVlKHJvb3QpOwor
ICBpZiAoIW9taXRFbmRpbmdMaW5lRmVlZF8pCisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgIHJl
dHVybiBkb2N1bWVudF87Cit9CisKK3ZvaWQgRmFzdFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBW
YWx1ZSYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFs
dWU6CisgICAgaWYgKCFkcm9wTnVsbFBsYWNlaG9sZGVyc18pCisgICAgICBkb2N1bWVudF8gKz0g
Im51bGwiOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2
YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1
aW50VmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0
VUludCgpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgZG9jdW1lbnRfICs9
IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3Ry
aW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdf
PworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAgYm9vbCBv
ayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIGRvY3VtZW50XyAr
PSB2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3Ry
KSk7CisgICAgYnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgZG9jdW1lbnRf
ICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNCb29sKCkpOworICAgIGJyZWFrOworICBjYXNlIGFy
cmF5VmFsdWU6IHsKKyAgICBkb2N1bWVudF8gKz0gJ1snOworICAgIGludCBzaXplID0gdmFsdWUu
c2l6ZSgpOworICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7
CisgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOworICAgICAg
d3JpdGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ10nOwor
ICB9IGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVt
YmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsKKyAgICBkb2N1bWVudF8gKz0gJ3snOworICAg
IGZvciAoVmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOyBpdCAh
PSBtZW1iZXJzLmVuZCgpOworICAgICAgICAgKytpdCkgeworICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcmIG5hbWUgPSAqaXQ7CisgICAgICBpZiAoaXQgIT0gbWVtYmVycy5iZWdpbigpKQorICAgICAg
ICBkb2N1bWVudF8gKz0gJywnOworICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJp
bmdOKG5hbWUuZGF0YSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpOwor
ICAgICAgZG9jdW1lbnRfICs9IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyA/ICI6ICIgOiAiOiI7
CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW25hbWVdKTsKKyAgICB9CisgICAgZG9jdW1lbnRfICs9
ICd9JzsKKyAgfSBicmVhazsKKyAgfQorfQorCisvLyBDbGFzcyBTdHlsZWRXcml0ZXIKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCitTdHlsZWRXcml0ZXI6OlN0eWxlZFdyaXRlcigpCisgICAgOiByaWdodE1hcmdp
bl8oNzQpLCBpbmRlbnRTaXplXygzKSwgYWRkQ2hpbGRWYWx1ZXNfKCkge30KKworc3RkOjpzdHJp
bmcgU3R5bGVkV3JpdGVyOjp3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8g
PSAiIjsKKyAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgIGluZGVudFN0cmluZ18gPSAiIjsK
KyAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUocm9vdCk7CisgIHdyaXRlVmFsdWUocm9vdCk7Cisg
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKHJvb3QpOworICBkb2N1bWVudF8gKz0g
IlxuIjsKKyAgcmV0dXJuIGRvY3VtZW50XzsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRl
VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7Cisg
IGNhc2UgbnVsbFZhbHVlOgorICAgIHB1c2hWYWx1ZSgibnVsbCIpOworICAgIGJyZWFrOworICBj
YXNlIGludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2Vz
dEludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2
YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNl
IHJlYWxWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgp
KSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxM
IHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBj
aGFyIGNvbnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5k
KTsKKyAgICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSkpOworICAgIGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAg
ICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6
CisgICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RW
YWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMo
KSk7CisgICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAg
ICBlbHNlIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7Cisg
ICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAg
ICBmb3IgKDs7KSB7CisgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAg
ICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0
ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50
KHZhbHVlVG9RdW90ZWRTdHJpbmcobmFtZS5jX3N0cigpKSk7CisgICAgICAgIGRvY3VtZW50XyAr
PSAiIDogIjsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKCsr
aXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVP
blNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGRvY3VtZW50XyArPSAnLCc7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNh
bWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdy
aXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lkIFN0
eWxlZFdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICB1bnNp
Z25lZCBzaXplID0gdmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1
ZSgiW10iKTsKKyAgZWxzZSB7CisgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNNdWx0aW5l
QXJyYXkodmFsdWUpOworICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdp
dGhJbmRlbnQoIlsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVl
ID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAg
ICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2lu
ZGV4XTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAg
ICAgIGlmIChoYXNDaGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZh
bHVlc19baW5kZXhdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgd3JpdGVJbmRlbnQoKTsK
KyAgICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlm
ICgrK2luZGV4ID09IHNpemUpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25T
YW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBkb2N1bWVudF8gKz0gJywnOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0
ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUK
KyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAgICAg
IGRvY3VtZW50XyArPSAiWyAiOworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4
IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgIGRv
Y3VtZW50XyArPSAiLCAiOworICAgICAgICBkb2N1bWVudF8gKz0gY2hpbGRWYWx1ZXNfW2luZGV4
XTsKKyAgICAgIH0KKyAgICAgIGRvY3VtZW50XyArPSAiIF0iOworICAgIH0KKyAgfQorfQorCiti
b29sIFN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7Cisg
IGludCBzaXplID0gdmFsdWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMg
Pj0gcmlnaHRNYXJnaW5fOworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5k
ZXggPSAwOyBpbmRleCA8IHNpemUgJiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgY29u
c3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAo
KGNoaWxkVmFsdWUuaXNBcnJheSgpIHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoaWxkVmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFp
c011bHRpTGluZSkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAg
eworICAgIGNoaWxkVmFsdWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9
IHRydWU7CisgICAgaW50IGxpbmVMZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcg
KyAnLCAnKm4gKyAnIF0nCisgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsr
aW5kZXgpIHsKKyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgewor
ICAgICAgICBpc011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZh
bHVlW2luZGV4XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhd
Lmxlbmd0aCgpKTsKKyAgICB9CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNN
dWx0aUxpbmUgPSBpc011bHRpTGluZSB8fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAg
fQorICByZXR1cm4gaXNNdWx0aUxpbmU7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjpwdXNoVmFs
dWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisg
ICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICBkb2N1bWVudF8g
Kz0gdmFsdWU7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgaWYg
KCFkb2N1bWVudF8uZW1wdHkoKSkgeworICAgIGNoYXIgbGFzdCA9IGRvY3VtZW50X1tkb2N1bWVu
dF8ubGVuZ3RoKCkgLSAxXTsKKyAgICBpZiAobGFzdCA9PSAnICcpIC8vIGFscmVhZHkgaW5kZW50
ZWQKKyAgICAgIHJldHVybjsKKyAgICBpZiAobGFzdCAhPSAnXG4nKSAvLyBDb21tZW50cyBtYXkg
YWRkIG5ldy1saW5lCisgICAgICBkb2N1bWVudF8gKz0gJ1xuJzsKKyAgfQorICBkb2N1bWVudF8g
Kz0gaW5kZW50U3RyaW5nXzsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVu
dChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgd3JpdGVJbmRlbnQoKTsKKyAgZG9jdW1l
bnRfICs9IHZhbHVlOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRT
dHJpbmdfICs9IHN0ZDo6c3RyaW5nKGluZGVudFNpemVfLCAnICcpOyB9CisKK3ZvaWQgU3R5bGVk
V3JpdGVyOjp1bmluZGVudCgpIHsKKyAgYXNzZXJ0KGludChpbmRlbnRTdHJpbmdfLnNpemUoKSkg
Pj0gaW5kZW50U2l6ZV8pOworICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNp
emUoKSAtIGluZGVudFNpemVfKTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGlmICghcm9vdC5oYXNDb21tZW50
KGNvbW1lbnRCZWZvcmUpKQorICAgIHJldHVybjsKKworICBkb2N1bWVudF8gKz0gIlxuIjsKKyAg
d3JpdGVJbmRlbnQoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENv
bW1lbnQoY29tbWVudEJlZm9yZSk7CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVy
ID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7Cisg
ICAgZG9jdW1lbnRfICs9ICppdGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAg
KGl0ZXIgIT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgd3Jp
dGVJbmRlbnQoKTsKKyAgICArK2l0ZXI7CisgIH0KKworICAvLyBDb21tZW50cyBhcmUgc3RyaXBw
ZWQgb2YgdHJhaWxpbmcgbmV3bGluZXMsIHNvIGFkZCBvbmUgaGVyZQorICBkb2N1bWVudF8gKz0g
IlxuIjsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNh
bWVMaW5lKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVu
dEFmdGVyT25TYW1lTGluZSkpCisgICAgZG9jdW1lbnRfICs9ICIgIiArIHJvb3QuZ2V0Q29tbWVu
dChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1l
bnRBZnRlcikpIHsKKyAgICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgICBkb2N1bWVudF8gKz0gcm9v
dC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7CisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgIH0K
K30KKworYm9vbCBTdHlsZWRXcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAg
ICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAg
ICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKK30KKworLy8gQ2xhc3MgU3R5bGVk
U3RyZWFtV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworU3R5bGVkU3RyZWFtV3JpdGVyOjpTdHlsZWRT
dHJlYW1Xcml0ZXIoc3RkOjpzdHJpbmcgaW5kZW50YXRpb24pCisgICAgOiBkb2N1bWVudF8oTlVM
TCksIHJpZ2h0TWFyZ2luXyg3NCksIGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbiksCisgICAgICBh
ZGRDaGlsZFZhbHVlc18oKSB7fQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoc3Rk
Ojpvc3RyZWFtJiBvdXQsIGNvbnN0IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50XyA9ICZvdXQ7
CisgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICBpbmRlbnRTdHJpbmdfID0gIiI7CisgIGlu
ZGVudGVkXyA9IHRydWU7CisgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAo
IWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVW
YWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7Cisg
ICpkb2N1bWVudF8gPDwgIlxuIjsKKyAgZG9jdW1lbnRfID0gTlVMTDsgLy8gRm9yZ2V0IHRoZSBz
dHJlYW0sIGZvciBzYWZldHkuCit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZh
bHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBj
YXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUoIm51bGwiKTsKKyAgICBicmVhazsKKyAgY2Fz
ZSBpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJ
bnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFs
dWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBy
ZWFsVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSkp
OworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBw
b3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hh
ciBjb25zdCogZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7
CisgICAgaWYgKG9rKSBwdXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oZW5kLXN0cikpKTsKKyAgICBlbHNlIHB1c2hWYWx1ZSgiIik7CisgICAg
YnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9T
dHJpbmcodmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgor
ICAgIHdyaXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7CisgIGNhc2Ugb2JqZWN0VmFs
dWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkp
OworICAgIGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNoVmFsdWUoInt9Iik7CisgICAg
ZWxzZSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAgICAgIGluZGVudCgpOworICAg
ICAgVmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAgICAg
Zm9yICg7OykgeworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKKyAgICAg
ICAgY29uc3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1lXTsKKyAgICAgICAgd3JpdGVD
b21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIHdyaXRlV2l0aEluZGVudCh2
YWx1ZVRvUXVvdGVkU3RyaW5nKG5hbWUuY19zdHIoKSkpOworICAgICAgICAqZG9jdW1lbnRfIDw8
ICIgOiAiOworICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoKytp
dCA9PSBtZW1iZXJzLmVuZCgpKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9u
U2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgKmRvY3VtZW50XyA8PCAiLCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNh
bWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdy
aXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lkIFN0
eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgewor
ICB1bnNpZ25lZCBzaXplID0gdmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1
c2hWYWx1ZSgiW10iKTsKKyAgZWxzZSB7CisgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNN
dWx0aW5lQXJyYXkodmFsdWUpOworICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3
cml0ZVdpdGhJbmRlbnQoIlsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGls
ZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAw
OworICAgICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZh
bHVlW2luZGV4XTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7
CisgICAgICAgIGlmIChoYXNDaGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChj
aGlsZFZhbHVlc19baW5kZXhdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRl
bnRlZF8pIHdyaXRlSW5kZW50KCk7CisgICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgICAg
ICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICAgIGluZGVudGVkXyA9IGZhbHNl
OworICAgICAgICB9CisgICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKKyAgICAgICAgICB3
cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKKyAgICAgICAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAg
ICB1bmluZGVudCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8v
IG91dHB1dCBvbiBhIHNpbmdsZSBsaW5lCisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVz
Xy5zaXplKCkgPT0gc2l6ZSk7CisgICAgICAqZG9jdW1lbnRfIDw8ICJbICI7CisgICAgICBmb3Ig
KHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICAgIGlm
IChpbmRleCA+IDApCisgICAgICAgICAgKmRvY3VtZW50XyA8PCAiLCAiOworICAgICAgICAqZG9j
dW1lbnRfIDw8IGNoaWxkVmFsdWVzX1tpbmRleF07CisgICAgICB9CisgICAgICAqZG9jdW1lbnRf
IDw8ICIgXSI7CisgICAgfQorICB9Cit9CisKK2Jvb2wgU3R5bGVkU3RyZWFtV3JpdGVyOjppc011
bHRpbmVBcnJheShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgaW50IHNpemUgPSB2YWx1ZS5zaXpl
KCk7CisgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87CisgIGNo
aWxkVmFsdWVzXy5jbGVhcigpOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAm
JiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9
IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkg
fHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgY2hp
bGRWYWx1ZS5zaXplKCkgPiAwKTsKKyAgfQorICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBp
ZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAorICB7CisgICAgY2hpbGRWYWx1ZXNfLnJl
c2VydmUoc2l6ZSk7CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKKyAgICBpbnQgbGluZUxl
bmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKKyAgICBm
b3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGhh
c0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVsdGlMaW5lID0g
dHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICAgIGxp
bmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAg
ICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5l
IHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGlu
ZTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0
cmluZyYgdmFsdWUpIHsKKyAgaWYgKGFkZENoaWxkVmFsdWVzXykKKyAgICBjaGlsZFZhbHVlc18u
cHVzaF9iYWNrKHZhbHVlKTsKKyAgZWxzZQorICAgICpkb2N1bWVudF8gPDwgdmFsdWU7Cit9CisK
K3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgLy8gYmxlcCBpbnRl
bmRlZCB0aGlzIHRvIGxvb2sgYXQgdGhlIHNvLWZhci13cml0dGVuIHN0cmluZworICAvLyB0byBk
ZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0CisgIC8vIHdpdGgg
YSBzdHJlYW0gd2UgY2Fubm90IGRvIHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0
ZS4KKyAgLy8gVGhlIGNhbGxlciBjaGVja3MgaW5kZW50ZWRfLgorICAqZG9jdW1lbnRfIDw8ICdc
bicgPDwgaW5kZW50U3RyaW5nXzsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRl
V2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgaWYgKCFpbmRlbnRlZF8p
IHdyaXRlSW5kZW50KCk7CisgICpkb2N1bWVudF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9IGZh
bHNlOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJp
bmdfICs9IGluZGVudGF0aW9uXzsgfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRl
bnQoKSB7CisgIGFzc2VydChpbmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6
ZSgpKTsKKyAgaW5kZW50U3RyaW5nXy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRl
bnRhdGlvbl8uc2l6ZSgpKTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGlmICghcm9vdC5oYXNDb21t
ZW50KGNvbW1lbnRCZWZvcmUpKQorICAgIHJldHVybjsKKworICBpZiAoIWluZGVudGVkXykgd3Jp
dGVJbmRlbnQoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENvbW1l
bnQoY29tbWVudEJlZm9yZSk7CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVyID0g
Y29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7CisgICAg
KmRvY3VtZW50XyA8PCAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgorICAgICAgIChp
dGVyICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKKyAgICAgIC8vIHdy
aXRlSW5kZW50KCk7ICAvLyB3b3VsZCBpbmNsdWRlIG5ld2xpbmUKKyAgICAgICpkb2N1bWVudF8g
PDwgaW5kZW50U3RyaW5nXzsKKyAgICArK2l0ZXI7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7
Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25T
YW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1l
bnRBZnRlck9uU2FtZUxpbmUpKQorICAgICpkb2N1bWVudF8gPDwgJyAnIDw8IHJvb3QuZ2V0Q29t
bWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNv
bW1lbnRBZnRlcikpIHsKKyAgICB3cml0ZUluZGVudCgpOworICAgICpkb2N1bWVudF8gPDwgcm9v
dC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9
CisKK2Jvb2wgU3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFs
dWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8
CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8Cisg
ICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisKKy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcgorCisvLy8gU2NvcGVk
IGVudW1zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIEMrKzExLgorc3RydWN0IENvbW1lbnRTdHls
ZSB7CisgIC8vLyBEZWNpZGUgd2hldGhlciB0byB3cml0ZSBjb21tZW50cy4KKyAgZW51bSBFbnVt
IHsKKyAgICBOb25lLCAgLy8vPCBEcm9wIGFsbCBjb21tZW50cy4KKyAgICBNb3N0LCAgLy8vPCBS
ZWNvdmVyIG9kZCBiZWhhdmlvciBvZiBwcmV2aW91cyB2ZXJzaW9ucyAobm90IGltcGxlbWVudGVk
IHlldCkuCisgICAgQWxsICAvLy88IEtlZXAgYWxsIGNvbW1lbnRzLgorICB9OworfTsKKworc3Ry
dWN0IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyIDogcHVibGljIFN0cmVhbVdyaXRlcgoreworICBC
dWlsdFN0eWxlZFN0cmVhbVdyaXRlcigKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBpbmRlbnRh
dGlvbiwKKyAgICAgIENvbW1lbnRTdHlsZTo6RW51bSBjcywKKyAgICAgIHN0ZDo6c3RyaW5nIGNv
bnN0JiBjb2xvblN5bWJvbCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBudWxsU3ltYm9sLAor
ICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgYm9v
bCB1c2VTcGVjaWFsRmxvYXRzLAorICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbik7CisgIGlu
dCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0KTsKK3ByaXZhdGU6
CisgIHZvaWQgd3JpdGVWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlQXJy
YXlWYWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpOworICBib29sIGlzTXVsdGluZUFycmF5KFZhbHVl
IGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1
ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9pZCB3cml0ZVdpdGhJbmRlbnQoc3RkOjpz
dHJpbmcgY29uc3QmIHZhbHVlKTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAgdm9pZCB1bmluZGVudCgp
OworICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKFZhbHVlIGNvbnN0JiByb290KTsKKyAg
dm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShWYWx1ZSBjb25zdCYgcm9vdCk7
CisgIHN0YXRpYyBib29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwor
CisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOworCisgIENo
aWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5nXzsKKyAg
aW50IHJpZ2h0TWFyZ2luXzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb25fOworICBDb21tZW50
U3R5bGU6OkVudW0gY3NfOworICBzdGQ6OnN0cmluZyBjb2xvblN5bWJvbF87CisgIHN0ZDo6c3Ry
aW5nIG51bGxTeW1ib2xfOworICBzdGQ6OnN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbF87Cisg
IGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKKyAgYm9vbCBpbmRlbnRlZF8gOiAxOworICBib29s
IHVzZVNwZWNpYWxGbG9hdHNfIDogMTsKKyAgdW5zaWduZWQgaW50IHByZWNpc2lvbl87Cit9Owor
QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAorICAgICAg
c3RkOjpzdHJpbmcgY29uc3QmIGluZGVudGF0aW9uLAorICAgICAgQ29tbWVudFN0eWxlOjpFbnVt
IGNzLAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIGNvbG9uU3ltYm9sLAorICAgICAgc3RkOjpz
dHJpbmcgY29uc3QmIG51bGxTeW1ib2wsCisgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5n
TGluZUZlZWRTeW1ib2wsCisgICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCisgICAgICB1bnNp
Z25lZCBpbnQgcHJlY2lzaW9uKQorICA6IHJpZ2h0TWFyZ2luXyg3NCkKKyAgLCBpbmRlbnRhdGlv
bl8oaW5kZW50YXRpb24pCisgICwgY3NfKGNzKQorICAsIGNvbG9uU3ltYm9sXyhjb2xvblN5bWJv
bCkKKyAgLCBudWxsU3ltYm9sXyhudWxsU3ltYm9sKQorICAsIGVuZGluZ0xpbmVGZWVkU3ltYm9s
XyhlbmRpbmdMaW5lRmVlZFN5bWJvbCkKKyAgLCBhZGRDaGlsZFZhbHVlc18oZmFsc2UpCisgICwg
aW5kZW50ZWRfKGZhbHNlKQorICAsIHVzZVNwZWNpYWxGbG9hdHNfKHVzZVNwZWNpYWxGbG9hdHMp
CisgICwgcHJlY2lzaW9uXyhwcmVjaXNpb24pCit7Cit9CitpbnQgQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlKFZhbHVlIGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpCit7Cisg
IHNvdXRfID0gc291dDsKKyAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgIGluZGVudGVkXyA9
IHRydWU7CisgIGluZGVudFN0cmluZ18gPSAiIjsKKyAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
cm9vdCk7CisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICBpbmRlbnRlZF8gPSB0
cnVlOworICB3cml0ZVZhbHVlKHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShyb290KTsKKyAgKnNvdXRfIDw8IGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgc291dF8g
PSBOVUxMOworICByZXR1cm4gMDsKK30KK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Ondy
aXRlVmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7
CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHB1c2hWYWx1ZShudWxsU3ltYm9sXyk7CisgICAgYnJl
YWs7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUu
YXNMYXJnZXN0SW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVz
aFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7
CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFz
RG91YmxlKCksIHVzZVNwZWNpYWxGbG9hdHNfLCBwcmVjaXNpb25fKSk7CisgICAgYnJlYWs7Cisg
IGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxMIGlzIHBvc3NpYmxlIGZvciB2
YWx1ZS5zdHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7
CisgICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2sp
IHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihlbmQtc3RyKSkpOworICAgIGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQor
ICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5h
c0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJh
eVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZh
bHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1l
bWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAg
IHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBWYWx1ZTo6TWVt
YmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7Cisg
ICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBuYW1lID0gKml0OworICAgICAgICBWYWx1ZSBjb25z
dCYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVW
YWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRT
dHJpbmdOKG5hbWUuZGF0YSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkp
KTsKKyAgICAgICAgKnNvdXRfIDw8IGNvbG9uU3ltYm9sXzsKKyAgICAgICAgd3JpdGVWYWx1ZShj
aGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAg
ICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAgIHdy
aXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQorICAg
ICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAgfSBi
cmVhazsKKyAgfQorfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5
VmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXpl
KCk7CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJbXSIpOworICBlbHNlIHsKKyAg
ICBib29sIGlzTXVsdGlMaW5lID0gKGNzXyA9PSBDb21tZW50U3R5bGU6OkFsbCkgfHwgaXNNdWx0
aW5lQXJyYXkodmFsdWUpOworICAgIGlmIChpc011bHRpTGluZSkgeworICAgICAgd3JpdGVXaXRo
SW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9
ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAg
IGZvciAoOzspIHsKKyAgICAgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRl
eF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAg
ICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1
ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgIGlmICghaW5kZW50ZWRfKSB3
cml0ZUluZGVudCgpOworICAgICAgICAgIGluZGVudGVkXyA9IHRydWU7CisgICAgICAgICAgd3Jp
dGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSBmYWxzZTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgKnNvdXRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0
ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgp
OworICAgICAgd3JpdGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBvbiBh
IHNpbmdsZSBsaW5lCisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkgPT0g
c2l6ZSk7CisgICAgICAqc291dF8gPDwgIlsiOworICAgICAgaWYgKCFpbmRlbnRhdGlvbl8uZW1w
dHkoKSkgKnNvdXRfIDw8ICIgIjsKKyAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgICAq
c291dF8gPDwgIiwgIjsKKyAgICAgICAgKnNvdXRfIDw8IGNoaWxkVmFsdWVzX1tpbmRleF07Cisg
ICAgICB9CisgICAgICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAiOwor
ICAgICAgKnNvdXRfIDw8ICJdIjsKKyAgICB9CisgIH0KK30KKworYm9vbCBCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6aXNNdWx0aW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIGludCBz
aXplID0gdmFsdWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmln
aHRNYXJnaW5fOworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAw
OyBpbmRleCA8IHNpemUgJiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgVmFsdWUgY29u
c3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxk
VmFsdWUuaXNBcnJheSgpIHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkVmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRp
TGluZSkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAg
IGNoaWxkVmFsdWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7
CisgICAgaW50IGxpbmVMZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAn
Km4gKyAnIF0nCisgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKKyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAg
ICBpc011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2lu
ZGV4XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0
aCgpKTsKKyAgICB9CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxp
bmUgPSBpc011bHRpTGluZSB8fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICBy
ZXR1cm4gaXNNdWx0aUxpbmU7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1
c2hWYWx1ZShzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUpIHsKKyAgaWYgKGFkZENoaWxkVmFsdWVz
XykKKyAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsKKyAgZWxzZQorICAgICpzb3V0
XyA8PCB2YWx1ZTsKK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRl
bnQoKSB7CisgIC8vIGJsZXAgaW50ZW5kZWQgdGhpcyB0byBsb29rIGF0IHRoZSBzby1mYXItd3Jp
dHRlbiBzdHJpbmcKKyAgLy8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGFscmVhZHkgaW5k
ZW50ZWQsIGJ1dAorICAvLyB3aXRoIGEgc3RyZWFtIHdlIGNhbm5vdCBkbyB0aGF0LiBTbyB3ZSBy
ZWx5IG9uIHNvbWUgc2F2ZWQgc3RhdGUuCisgIC8vIFRoZSBjYWxsZXIgY2hlY2tzIGluZGVudGVk
Xy4KKworICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgpKSB7CisgICAgLy8gSW4gdGhpcyBjYXNl
LCBkcm9wIG5ld2xpbmVzIHRvby4KKyAgICAqc291dF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdf
OworICB9Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVu
dChzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUpIHsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5k
ZW50KCk7CisgICpzb3V0XyA8PCB2YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3Zv
aWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OmluZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBp
bmRlbnRhdGlvbl87IH0KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRlbnQo
KSB7CisgIGFzc2VydChpbmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6ZSgp
KTsKKyAgaW5kZW50U3RyaW5nXy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRh
dGlvbl8uc2l6ZSgpKTsKK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVD
b21tZW50QmVmb3JlVmFsdWUoVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgaWYgKGNzXyA9PSBDb21t
ZW50U3R5bGU6Ok5vbmUpIHJldHVybjsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJl
Zm9yZSkpCisgICAgcmV0dXJuOworCisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOwor
ICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVm
b3JlKTsKKyAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2lu
KCk7CisgIHdoaWxlIChpdGVyICE9IGNvbW1lbnQuZW5kKCkpIHsKKyAgICAqc291dF8gPDwgKml0
ZXI7CisgICAgaWYgKCppdGVyID09ICdcbicgJiYKKyAgICAgICAoaXRlciAhPSBjb21tZW50LmVu
ZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisgICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8g
d291bGQgd3JpdGUgZXh0cmEgbmV3bGluZQorICAgICAgKnNvdXRfIDw8IGluZGVudFN0cmluZ187
CisgICAgKytpdGVyOworICB9CisgIGluZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIEJ1aWx0
U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShWYWx1
ZSBjb25zdCYgcm9vdCkgeworICBpZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0dXJu
OworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgICpz
b3V0XyA8PCAiICIgKyByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisK
KyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpKSB7CisgICAgd3JpdGVJbmRlbnQo
KTsKKyAgICAqc291dF8gPDwgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7CisgIH0KK30K
KworLy8gc3RhdGljCitib29sIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9y
VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNv
bW1lbnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9u
U2FtZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9
CisKKy8vLy8vLy8vLy8vLy8vLworLy8gU3RyZWFtV3JpdGVyCisKK1N0cmVhbVdyaXRlcjo6U3Ry
ZWFtV3JpdGVyKCkKKyAgICA6IHNvdXRfKE5VTEwpCit7Cit9CitTdHJlYW1Xcml0ZXI6On5TdHJl
YW1Xcml0ZXIoKQoreworfQorU3RyZWFtV3JpdGVyOjpGYWN0b3J5Ojp+RmFjdG9yeSgpCit7fQor
U3RyZWFtV3JpdGVyQnVpbGRlcjo6U3RyZWFtV3JpdGVyQnVpbGRlcigpCit7CisgIHNldERlZmF1
bHRzKCZzZXR0aW5nc18pOworfQorU3RyZWFtV3JpdGVyQnVpbGRlcjo6flN0cmVhbVdyaXRlckJ1
aWxkZXIoKQore30KK1N0cmVhbVdyaXRlciogU3RyZWFtV3JpdGVyQnVpbGRlcjo6bmV3U3RyZWFt
V3JpdGVyKCkgY29uc3QKK3sKKyAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb24gPSBzZXR0aW5nc19b
ImluZGVudGF0aW9uIl0uYXNTdHJpbmcoKTsKKyAgc3RkOjpzdHJpbmcgY3Nfc3RyID0gc2V0dGlu
Z3NfWyJjb21tZW50U3R5bGUiXS5hc1N0cmluZygpOworICBib29sIGV5YyA9IHNldHRpbmdzX1si
ZW5hYmxlWUFNTENvbXBhdGliaWxpdHkiXS5hc0Jvb2woKTsKKyAgYm9vbCBkbnAgPSBzZXR0aW5n
c19bImRyb3BOdWxsUGxhY2Vob2xkZXJzIl0uYXNCb29sKCk7CisgIGJvb2wgdXNmID0gc2V0dGlu
Z3NfWyJ1c2VTcGVjaWFsRmxvYXRzIl0uYXNCb29sKCk7IAorICB1bnNpZ25lZCBpbnQgcHJlID0g
c2V0dGluZ3NfWyJwcmVjaXNpb24iXS5hc1VJbnQoKTsKKyAgQ29tbWVudFN0eWxlOjpFbnVtIGNz
ID0gQ29tbWVudFN0eWxlOjpBbGw7CisgIGlmIChjc19zdHIgPT0gIkFsbCIpIHsKKyAgICBjcyA9
IENvbW1lbnRTdHlsZTo6QWxsOworICB9IGVsc2UgaWYgKGNzX3N0ciA9PSAiTm9uZSIpIHsKKyAg
ICBjcyA9IENvbW1lbnRTdHlsZTo6Tm9uZTsKKyAgfSBlbHNlIHsKKyAgICB0aHJvd1J1bnRpbWVF
cnJvcigiY29tbWVudFN0eWxlIG11c3QgYmUgJ0FsbCcgb3IgJ05vbmUnIik7CisgIH0KKyAgc3Rk
OjpzdHJpbmcgY29sb25TeW1ib2wgPSAiIDogIjsKKyAgaWYgKGV5YykgeworICAgIGNvbG9uU3lt
Ym9sID0gIjogIjsKKyAgfSBlbHNlIGlmIChpbmRlbnRhdGlvbi5lbXB0eSgpKSB7CisgICAgY29s
b25TeW1ib2wgPSAiOiI7CisgIH0KKyAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbCA9ICJudWxsIjsK
KyAgaWYgKGRucCkgeworICAgIG51bGxTeW1ib2wgPSAiIjsKKyAgfQorICBpZiAocHJlID4gMTcp
IHByZSA9IDE3OworICBzdGQ6OnN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbCA9ICIiOworICBy
ZXR1cm4gbmV3IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAorICAgICAgaW5kZW50YXRpb24sIGNz
LAorICAgICAgY29sb25TeW1ib2wsIG51bGxTeW1ib2wsIGVuZGluZ0xpbmVGZWVkU3ltYm9sLCB1
c2YsIHByZSk7Cit9CitzdGF0aWMgdm9pZCBnZXRWYWxpZFdyaXRlcktleXMoc3RkOjpzZXQ8c3Rk
OjpzdHJpbmc+KiB2YWxpZF9rZXlzKQoreworICB2YWxpZF9rZXlzLT5jbGVhcigpOworICB2YWxp
ZF9rZXlzLT5pbnNlcnQoImluZGVudGF0aW9uIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29t
bWVudFN0eWxlIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiZW5hYmxlWUFNTENvbXBhdGliaWxp
dHkiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJkcm9wTnVsbFBsYWNlaG9sZGVycyIpOworICB2
YWxpZF9rZXlzLT5pbnNlcnQoInVzZVNwZWNpYWxGbG9hdHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5z
ZXJ0KCJwcmVjaXNpb24iKTsKK30KK2Jvb2wgU3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUo
SnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0Cit7CisgIEpzb246OlZhbHVlIG15X2ludmFsaWQ7
CisgIGlmICghaW52YWxpZCkgaW52YWxpZCA9ICZteV9pbnZhbGlkOyAgLy8gc28gd2UgZG8gbm90
IG5lZWQgdG8gdGVzdCBmb3IgTlVMTAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7Cisg
IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB2YWxpZF9rZXlzOworICBnZXRWYWxpZFdyaXRlcktleXMo
JnZhbGlkX2tleXMpOworICBWYWx1ZTo6TWVtYmVycyBrZXlzID0gc2V0dGluZ3NfLmdldE1lbWJl
ck5hbWVzKCk7CisgIHNpemVfdCBuID0ga2V5cy5zaXplKCk7CisgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbjsgKytpKSB7CisgICAgc3RkOjpzdHJpbmcgY29uc3QmIGtleSA9IGtleXNbaV07Cisg
ICAgaWYgKHZhbGlkX2tleXMuZmluZChrZXkpID09IHZhbGlkX2tleXMuZW5kKCkpIHsKKyAgICAg
IGludltrZXldID0gc2V0dGluZ3NfW2tleV07CisgICAgfQorICB9CisgIHJldHVybiAwdSA9PSBp
bnYuc2l6ZSgpOworfQorVmFsdWUmIFN0cmVhbVdyaXRlckJ1aWxkZXI6Om9wZXJhdG9yW10oc3Rk
OjpzdHJpbmcga2V5KQoreworICByZXR1cm4gc2V0dGluZ3NfW2tleV07Cit9CisvLyBzdGF0aWMK
K3ZvaWQgU3RyZWFtV3JpdGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRp
bmdzKQoreworICAvLyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0c10KKyAgKCpzZXR0aW5n
cylbImNvbW1lbnRTdHlsZSJdID0gIkFsbCI7CisgICgqc2V0dGluZ3MpWyJpbmRlbnRhdGlvbiJd
ID0gIlx0IjsKKyAgKCpzZXR0aW5ncylbImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0gPSBmYWxz
ZTsKKyAgKCpzZXR0aW5ncylbImRyb3BOdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpz
ZXR0aW5ncylbInVzZVNwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsicHJl
Y2lzaW9uIl0gPSAxNzsKKyAgLy8hIFtTdHJlYW1Xcml0ZXJCdWlsZGVyRGVmYXVsdHNdCit9CisK
K3N0ZDo6c3RyaW5nIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgYnVp
bGRlciwgVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgc3RkOjpvc3RyaW5nc3RyZWFtIHNvdXQ7Cisg
IFN0cmVhbVdyaXRlclB0ciBjb25zdCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7
CisgIHdyaXRlci0+d3JpdGUocm9vdCwgJnNvdXQpOworICByZXR1cm4gc291dC5zdHIoKTsKK30K
Kworc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgc291dCwgVmFsdWUgY29u
c3QmIHJvb3QpIHsKKyAgU3RyZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOworICBTdHJlYW1Xcml0
ZXJQdHIgY29uc3Qgd3JpdGVyKGJ1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXIt
PndyaXRlKHJvb3QsICZzb3V0KTsKKyAgcmV0dXJuIHNvdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3Jj
L2xpYl9qc29uL2pzb25fd3JpdGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZyX2FwaV9wdWJsaWMu
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTM5NmU2NzcyMmYzNjk0NzA0ZDNkYWI3YTNkZWFiZmE3NjlhNDc5YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZyX2FwaV9w
dWJsaWMuY3BwCkBAIC0wLDAgKzEsMjk4IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUg
Q29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNkZWZpbmUgVlJfQVBJX0VYUE9SVCAxCisjaW5j
bHVkZSAib3BlbnZyLmgiCisjaW5jbHVkZSAiaXZyY2xpZW50Y29yZS5oIgorI2luY2x1ZGUgInBh
dGh0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCIKKyNp
bmNsdWRlICJlbnZ2YXJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJobWRlcnJvcnNfcHVibGlj
LmgiCisjaW5jbHVkZSAidnJwYXRocmVnaXN0cnlfcHVibGljLmgiCisjaW5jbHVkZSA8bXV0ZXg+
CisKK3VzaW5nIHZyOjpFVlJJbml0RXJyb3I7Cit1c2luZyB2cjo6SVZSU3lzdGVtOwordXNpbmcg
dnI6OklWUkNsaWVudENvcmU7Cit1c2luZyB2cjo6VlJJbml0RXJyb3JfTm9uZTsKKworbmFtZXNw
YWNlIHZyCit7CisKK3N0YXRpYyB2b2lkICpnX3BWUk1vZHVsZSA9IE5VTEw7CitzdGF0aWMgSVZS
Q2xpZW50Q29yZSAqZ19wSG1kU3lzdGVtID0gTlVMTDsKK3N0YXRpYyBzdGQ6OnJlY3Vyc2l2ZV9t
dXRleCBnX211dGV4U3lzdGVtOworCisKK3R5cGVkZWYgdm9pZCogKCpWUkNsaWVudENvcmVGYWN0
b3J5Rm4pKGNvbnN0IGNoYXIgKnBJbnRlcmZhY2VOYW1lLCBpbnQgKnBSZXR1cm5Db2RlKTsKKwor
c3RhdGljIHVpbnQzMl90IGdfblZSVG9rZW4gPSAwOworCit1aW50MzJfdCBWUl9HZXRJbml0VG9r
ZW4oKQoreworICAgICAgIHJldHVybiBnX25WUlRva2VuOworfQorCitFVlJJbml0RXJyb3IgVlJf
TG9hZEhtZFN5c3RlbUludGVybmFsKCk7Cit2b2lkIENsZWFudXBJbnRlcm5hbEludGVyZmFjZXMo
KTsKKworCit1aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwyKCBFVlJJbml0RXJyb3IgKnBlRXJyb3Is
IHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0
YXJ0dXBJbmZvICkKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0
ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBW
Ul9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKKyAgICAgICBpZiAoIGVyciA9PSB2cjo6VlJJbml0
RXJyb3JfTm9uZSApCisgICAgICAgeworICAgICAgICAgICAgICBlcnIgPSBnX3BIbWRTeXN0ZW0t
PkluaXQoIGVBcHBsaWNhdGlvblR5cGUsIHBTdGFydHVwSW5mbyApOworICAgICAgIH0KKworICAg
ICAgIGlmICggcGVFcnJvciApCisgICAgICAgICAgICAgICpwZUVycm9yID0gZXJyOworCisgICAg
ICAgaWYgKCBlcnIgIT0gVlJJbml0RXJyb3JfTm9uZSApCisgICAgICAgeworICAgICAgICAgICAg
ICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOworICAgICAgICAgICAgICBnX3BIbWRT
eXN0ZW0gPSBOVUxMOworICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7CisKKyAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuICsrZ19uVlJUb2tl
bjsKK30KKworVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0luaXRJbnRlcm5h
bCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9u
VHlwZSApOworCit1aW50MzJfdCBWUl9Jbml0SW50ZXJuYWwoIEVWUkluaXRFcnJvciAqcGVFcnJv
ciwgdnI6OkVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlICkKK3sKKyAgICAgICBy
ZXR1cm4gVlJfSW5pdEludGVybmFsMiggcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSwgbnVsbHB0
ciApOworfQorCit2b2lkIFZSX1NodXRkb3duSW50ZXJuYWwoKQoreworICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworICAg
ICAgIAorICAgICAgIGlmICggZ19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IGdfcEhtZFN5c3RlbS0+Q2xlYW51cCgpOworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBO
VUxMOworICAgICAgIH0KKyAgICAgICBpZiAoIGdfcFZSTW9kdWxlICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxlICk7CisgICAgICAgICAgICAg
IGdfcFZSTW9kdWxlID0gTlVMTDsKKyAgICAgICB9CisKKyNpZiAhZGVmaW5lZCggVlJfQVBJX1BV
QkxJQyApCisgICAgICAgQ2xlYW51cEludGVybmFsSW50ZXJmYWNlcygpOworI2VuZGlmCisKKyAg
ICAgICArK2dfblZSVG9rZW47Cit9CisKK0VWUkluaXRFcnJvciBWUl9Mb2FkSG1kU3lzdGVtSW50
ZXJuYWwoKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNSdW50aW1lUGF0aCwgc0NvbmZpZ1BhdGgs
IHNMb2dQYXRoOworCisgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdp
c3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9n
UGF0aCwgTlVMTCwgTlVMTCApOworICAgICAgIGlmKCAhYlJlYWRQYXRoUmVnaXN0cnkgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdp
c3RyeU5vdEZvdW5kOworICAgICAgIH0KKworICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2Un
cmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxsCisgICAgICAgLy8gc2VlIGlmIHRoZSBz
cGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisgICAgICAgaWYoICFQYXRoX0lzRGlyZWN0
b3J5KCBzUnVudGltZVBhdGggKSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gdnI6
OlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQ7CisgICAgICAgfQorCisgICAg
ICAgLy8gQmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHNlbGVjdCBkZWJ1ZyB2cy4gcmVs
ZWFzZSB5ZXQgd2UnbGwganVzdAorICAgICAgIC8vIHVzZSBkZWJ1ZyBpZiBpdCdzIHRoZXJlCisj
aWYgZGVmaW5lZCggTElOVVg2NCApCisgICAgICAgc3RkOjpzdHJpbmcgc1Rlc3RQYXRoID0gUGF0
aF9Kb2luKCBzUnVudGltZVBhdGgsICJiaW4iLCBQTEFUU1VCRElSICk7CisjZWxzZQorICAgICAg
IHN0ZDo6c3RyaW5nIHNUZXN0UGF0aCA9IFBhdGhfSm9pbiggc1J1bnRpbWVQYXRoLCAiYmluIiAp
OworI2VuZGlmCisgICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzVGVzdFBhdGggKSApCisg
ICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5zdGFs
bGF0aW9uQ29ycnVwdDsKKyAgICAgICB9CisKKyNpZiBkZWZpbmVkKCBXSU42NCApCisgICAgICAg
c3RkOjpzdHJpbmcgc0RMTFBhdGggPSBQYXRoX0pvaW4oIHNUZXN0UGF0aCwgInZyY2xpZW50X3g2
NCIgRFlOQU1JQ19MSUJfRVhUICk7CisjZWxzZQorICAgICAgIHN0ZDo6c3RyaW5nIHNETExQYXRo
ID0gUGF0aF9Kb2luKCBzVGVzdFBhdGgsICJ2cmNsaWVudCIgRFlOQU1JQ19MSUJfRVhUICk7Cisj
ZW5kaWYKKworICAgICAgIC8vIG9ubHkgbG9vayBpbiB0aGUgb3ZlcnJpZGUKKyAgICAgICB2b2lk
ICpwTW9kID0gU2hhcmVkTGliX0xvYWQoIHNETExQYXRoLmNfc3RyKCkgKTsKKyAgICAgICAvLyBu
b3RoaW5nIG1vcmUgdG8gZG8gaWYgd2UgY2FuJ3QgbG9hZCB0aGUgRExMCisgICAgICAgaWYoICFw
TW9kICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5p
dF9WUkNsaWVudERMTE5vdEZvdW5kOworICAgICAgIH0KKworICAgICAgIFZSQ2xpZW50Q29yZUZh
Y3RvcnlGbiBmbkZhY3RvcnkgPSAoIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiApKCBTaGFyZWRMaWJf
R2V0RnVuY3Rpb24oIHBNb2QsICJWUkNsaWVudENvcmVGYWN0b3J5IiApICk7CisgICAgICAgaWYo
ICFmbkZhY3RvcnkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCgg
cE1vZCApOworICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfRmFjdG9y
eU5vdEZvdW5kOworICAgICAgIH0KKworICAgICAgIGludCBuUmV0dXJuQ29kZSA9IDA7CisgICAg
ICAgZ19wSG1kU3lzdGVtID0gc3RhdGljX2Nhc3Q8IElWUkNsaWVudENvcmUgKiA+ICggZm5GYWN0
b3J5KCB2cjo6SVZSQ2xpZW50Q29yZV9WZXJzaW9uLCAmblJldHVybkNvZGUgKSApOworICAgICAg
IGlmKCAhZ19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNoYXJlZExpYl9V
bmxvYWQoIHBNb2QgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0
X0ludGVyZmFjZU5vdEZvdW5kOworICAgICAgIH0KKworICAgICAgIGdfcFZSTW9kdWxlID0gcE1v
ZDsKKyAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKK30KKworCit2b2lkICpWUl9HZXRH
ZW5lcmljSW50ZXJmYWNlKGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24sIEVWUkluaXRF
cnJvciAqcGVFcnJvcikKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVf
bXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmICghZ19wSG1kU3lzdGVt
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKHBlRXJyb3IpCisgICAgICAgICAgICAgICAg
ICAgICAqcGVFcnJvciA9IHZyOjpWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOworICAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gZ19wSG1k
U3lzdGVtLT5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHBlRXJyb3Ip
OworfQorCitib29sIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlkKGNvbnN0IGNoYXIgKnBjaElu
dGVyZmFjZVZlcnNpb24pCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZl
X211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBpZiAoIWdfcEhtZFN5c3Rl
bSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAg
ICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRl
cmZhY2VWZXJzaW9uKSA9PSBWUkluaXRFcnJvcl9Ob25lOworfQorCitib29sIFZSX0lzSG1kUHJl
c2VudCgpCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBs
b2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIGp1c3Qg
Y2FsbCB0aHJvdWdoCisgICAgICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkJJc0htZFBy
ZXNlbnQoKTsKKyAgICAgICB9CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Ly8gb3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3b3JrCisgICAgICAgICAgICAg
IEVWUkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKKyAgICAgICAg
ICAgICAgaWYoIGVyciAhPSBWUkluaXRFcnJvcl9Ob25lICkKKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICBib29sIGJIYXNIbWQgPSBnX3BIbWRTeXN0
ZW0tPkJJc0htZFByZXNlbnQoKTsKKworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxM
OworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOworICAgICAg
ICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgcmV0dXJuIGJIYXNI
bWQ7CisgICAgICAgfQorfQorCisvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBPcGVuVlIgcnVudGlt
ZSBpcyBpbnN0YWxsZWQuICovCitib29sIFZSX0lzUnVudGltZUluc3RhbGxlZCgpCit7CisgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lz
dGVtICk7CisKKyAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIE9wZW5WUiBpcyBvYnZpb3VzbHkg
aW5zdGFsbGVkCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKyAgICAgICBl
bHNlCisgICAgICAgeworICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2UgbmVlZCB0byBkbyBh
IGJpdCBtb3JlIHdvcmsKKyAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRoLCBz
Q29uZmlnUGF0aCwgc0xvZ1BhdGg7CisKKyAgICAgICAgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdp
c3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAm
c0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOworICAgICAgICAgICAgICBpZigg
IWJSZWFkUGF0aFJlZ2lzdHJ5ICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gZmln
dXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZvciB2cmNsaWVudC5kbGwKKyAgICAg
ICAgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisg
ICAgICAgICAgICAgIGlmKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAvLyB0aGUgaW5zdGFsbGF0aW9uIG1heSBiZSBjb3Jy
dXB0IGluIHNvbWUgd2F5LCBidXQgaXQgY2VydGFpbmx5IGxvb2tzIGluc3RhbGxlZAorICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9Cit9CisKKworLyoqIFJldHVybnMgd2hlcmUg
T3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworY29uc3QgY2hhciAqVlJfUnVudGltZVBh
dGgoKQoreworICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29y
aworICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBzUnVudGltZVBhdGg7CisgICAgICAgc3RkOjpz
dHJpbmcgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOworCisgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdp
c3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAm
c0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCApOworICAgICAgIGlmICggIWJSZWFk
UGF0aFJlZ2lzdHJ5ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgIH0KKworICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9v
ayBmb3IgdnJjbGllbnQuZGxsCisgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBh
Y3R1YWxseSBleGlzdHMuCisgICAgICAgaWYgKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQ
YXRoICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
fQorCisgICAgICAgcmV0dXJuIHNSdW50aW1lUGF0aC5jX3N0cigpOworfQorCisKKy8qKiBSZXR1
cm5zIHRoZSBzeW1ib2wgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCitjb25zdCBjaGFyICpW
Ul9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKQoreworICAgICAg
IHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3Rl
bSApOworCisgICAgICAgaWYoIGdfcEhtZFN5c3RlbSApCisgICAgICAgICAgICAgIHJldHVybiBn
X3BIbWRTeXN0ZW0tPkdldElERm9yVlJJbml0RXJyb3IoIGVycm9yICk7CisgICAgICAgZWxzZQor
ICAgICAgICAgICAgICByZXR1cm4gR2V0SURGb3JWUkluaXRFcnJvciggZXJyb3IgKTsKK30KKwor
CisvKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3Iu
ICovCitjb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBF
VlJJbml0RXJyb3IgZXJyb3IgKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vy
c2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYgKCBnX3BIbWRT
eXN0ZW0gKQorICAgICAgICAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRFbmdsaXNoU3Ry
aW5nRm9ySG1kRXJyb3IoIGVycm9yICk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1
cm4gR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCBlcnJvciApOworfQorCisKK1ZSX0lOVEVS
RkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggdnI6
OkVWUkluaXRFcnJvciBlcnJvciApOworCisvKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcg
dmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCitjb25zdCBjaGFyICpWUl9HZXRTdHJpbmdGb3JI
bWRFcnJvciggRVZSSW5pdEVycm9yIGVycm9yICkKK3sKKyAgICAgICByZXR1cm4gVlJfR2V0VlJJ
bml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbiggZXJyb3IgKTsKK30KKworfQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1Ymxp
Yy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1
YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhiZDIzZDQwZWU0OWY0MDgwZjcxYjI2NjAzM2Q2NGRhMWNm
ZWZjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZGlydG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAiZGly
dG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAi
cGF0aHRvb2xzX3B1YmxpYy5oIgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJp
bmcuaD4KKworI2lmZGVmIF9XSU4zMgorI2luY2x1ZGUgIndpbmRvd3MuaCIKKyNlbHNlCisjaW5j
bHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5o
PgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBPU1ggKQor
I2luY2x1ZGUgPHN5cy9zeXNsaW1pdHMuaD4KKyNlbmRpZgorCisKKy8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IHV0aWxpdHkgZnVuY3Rpb24gdG8gY3JlYXRlIGRpcnMgJiBzdWJk
aXJzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIEJDcmVhdGVEaXJlY3RvcnlSZWN1cnNp
dmUoIGNvbnN0IGNoYXIgKnBjaFBhdGggKQoreworICAgICAgIC8vIERvZXMgaXQgYWxyZWFkeSBl
eGlzdD8KKyAgICAgICBpZiAoIFBhdGhfSXNEaXJlY3RvcnkoIHBjaFBhdGggKSApCisgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgLy8gY29weSB0aGUgcGF0aCBpbnRvIHNvbWV0
aGluZyB3ZSBjYW4gbXVuZ2UKKyAgICAgICBpbnQgbGVuID0gKGludClzdHJsZW4oIHBjaFBhdGgg
KTsKKyAgICAgICBjaGFyICpwYXRoID0gKGNoYXIgKiltYWxsb2MoIGxlbiArIDEgKTsKKyAgICAg
ICBzdHJjcHkoIHBhdGgsIHBjaFBhdGggKTsKKworICAgICAgIC8vIFdhbGsgYmFja3dhcmRzIHRv
IGZpcnN0IG5vbi1leGlzdGluZyBkaXIgdGhhdCB3ZSBmaW5kCisgICAgICAgY2hhciAqcyA9IHBh
dGggKyBsZW4gLSAxOworCisgICAgICAgY29uc3QgY2hhciBzbGFzaCA9IFBhdGhfR2V0U2xhc2go
KTsKKyAgICAgICB3aGlsZSAoIHMgPiBwYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlm
ICggKnMgPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAq
cyA9ICdcMCc7CisgICAgICAgICAgICAgICAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0lzRGly
ZWN0b3J5KCBwYXRoICk7CisgICAgICAgICAgICAgICAgICAgICAqcyA9IHNsYXNoOworCisgICAg
ICAgICAgICAgICAgICAgICBpZiAoIGJFeGlzdHMgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrczsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAtLXM7CisgICAgICAgfQorCisgICAgICAgLy8gYW5kIHRoZW4gbW92ZSBmb3J3
YXJkcyBmcm9tIHRoZXJlCisKKyAgICAgICB3aGlsZSAoICpzICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIGlmICggKnMgPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAqcyA9ICdcMCc7CisgICAgICAgICAgICAgICAgICAgICBCQ3JlYXRlRGlyZWN0b3J5
KCBwYXRoICk7CisgICAgICAgICAgICAgICAgICAgICAqcyA9IHNsYXNoOworICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgIHMrKzsKKyAgICAgICB9CisKKyAgICAgICBib29sIGJSZXRWYWwg
PSBCQ3JlYXRlRGlyZWN0b3J5KCBwYXRoICk7CisgICAgICAgZnJlZSggcGF0aCApOworICAgICAg
IHJldHVybiBiUmV0VmFsOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBv
c2U6IENyZWF0ZXMgdGhlIGRpcmVjdG9yeSwgcmV0dXJuaW5nIHRydWUgaWYgaXQgaXMgY3JlYXRl
ZCwgb3IgaWYgaXQgYWxyZWFkeSBleGlzdGVkCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29s
IEJDcmVhdGVEaXJlY3RvcnkoIGNvbnN0IGNoYXIgKnBjaFBhdGggKQoreworI2lmZGVmIFdJTjMy
CisgICAgICAgc3RkOjp3c3RyaW5nIHdQYXRoID0gVVRGOHRvMTYoIHBjaFBhdGggKTsKKyAgICAg
ICBpZiAoIDo6Q3JlYXRlRGlyZWN0b3J5Vyggd1BhdGguY19zdHIoKSwgTlVMTCApICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICBpZiAoIDo6R2V0TGFzdEVycm9yKCkgPT0g
RVJST1JfQUxSRUFEWV9FWElTVFMgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgICAgaW50IGkgPSBta2RpciggcGNoUGF0aCwg
U19JUldYVSB8IFNfSVJXWEcgfCBTX0lSV1hPICk7CisgICAgICAgaWYgKCBpID09IDAgKQorICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICBpZiAoIGVycm5vID09IEVFWElTVCApCisg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9u
L2RpcnRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNDhiNDFiNzgxNGZkZTA3Mjc3NjRhZTc5
NGVkZThlMGRmZDRlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTcgQEAKKy8vPT09
PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKKworI2lm
ICFkZWZpbmVkKF9XSU4zMikKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMv
c3RhdC5oPgorI2VuZGlmCisKKworZXh0ZXJuIGJvb2wgQkNyZWF0ZURpcmVjdG9yeVJlY3Vyc2l2
ZSggY29uc3QgY2hhciAqcGNoUGF0aCApOworZXh0ZXJuIGJvb2wgQkNyZWF0ZURpcmVjdG9yeSgg
Y29uc3QgY2hhciAqcGNoUGF0aCApOworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZWQxNmQ5Zjg1NjI2ZmNhMDYwNGM5ZjFlY2Y2NjQwMmM5YmE4YWY3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29s
c19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2
ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1Ymxp
Yy5oIgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaWYgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVk
ZSA8d2luZG93cy5oPgorCisjdW5kZWYgR2V0RW52aXJvbm1lbnRWYXJpYWJsZQorI3VuZGVmIFNl
dEVudmlyb25tZW50VmFyaWFibGUKKyNlbmRpZgorCisKK3N0ZDo6c3RyaW5nIEdldEVudmlyb25t
ZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUgKQoreworI2lmIGRlZmluZWQoX1dJ
TjMyKQorICAgICAgIGNoYXIgcmNoVmFsdWVbMzI3NjddOyAvLyBtYXggc2l6ZSBmb3IgYW4gZW52
IHZhciBvbiBXaW5kb3dzCisgICAgICAgRFdPUkQgY0NoYXJzID0gR2V0RW52aXJvbm1lbnRWYXJp
YWJsZUEoIHBjaFZhck5hbWUsIHJjaFZhbHVlLCBzaXplb2YoIHJjaFZhbHVlICkgKTsKKyAgICAg
ICBpZiggY0NoYXJzID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxz
ZQorICAgICAgICAgICAgICByZXR1cm4gcmNoVmFsdWU7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQor
ICAgICAgIGNoYXIgKnBjaFZhbHVlID0gZ2V0ZW52KCBwY2hWYXJOYW1lICk7CisgICAgICAgaWYo
IHBjaFZhbHVlICkKKyAgICAgICAgICAgICAgcmV0dXJuIHBjaFZhbHVlOworICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgUGxh
dGZvcm0iCisjZW5kaWYKK30KKworCitib29sIFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0
IGNoYXIgKnBjaFZhck5hbWUsIGNvbnN0IGNoYXIgKnBjaFZhclZhbHVlICkKK3sKKyNpZiBkZWZp
bmVkKF9XSU4zMikKKyAgICAgICByZXR1cm4gMCAhPSBTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSgg
cGNoVmFyTmFtZSwgcGNoVmFyVmFsdWUgKTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAgICAg
aWYoIHBjaFZhclZhbHVlID09IE5VTEwgKQorICAgICAgICAgICAgICByZXR1cm4gMCA9PSB1bnNl
dGVudiggcGNoVmFyTmFtZSApOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIDAg
PT0gc2V0ZW52KCBwY2hWYXJOYW1lLCBwY2hWYXJWYWx1ZSwgMSApOworI2Vsc2UKKyNlcnJvciAi
VW5zdXBwb3J0ZWQgUGxhdGZvcm0iCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdkZTk4MWFjM2UzOTcwNmQ1OWEwMGMyYzQxZjg1NThlNGM1ZDIwNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRv
b2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsNyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZl
IENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0
cmluZz4KKworc3RkOjpzdHJpbmcgR2V0RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAq
cGNoVmFyTmFtZSApOworYm9vbCBTZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpw
Y2hWYXJOYW1lLCBjb25zdCBjaGFyICpwY2hWYXJWYWx1ZSApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODEyZTFjNGIzYTgxMzA4YzAxOWQ3MmJjY2NkN2M2YWU3MDk4MTlmNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1k
ZXJyb3JzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSwyMjkgQEAKKy8vPT09PT09PT09IENvcHlyaWdo
dCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgIm9wZW52ci5oIgor
I2luY2x1ZGUgImhtZGVycm9yc19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1
ZGUgPGFsZ29yaXRobT4KKwordXNpbmcgbmFtZXNwYWNlIHZyOworCisjZGVmaW5lIFJFVFVSTl9F
TlVNX0FTX1NUUklORyhlbnVtVmFsdWUpIGNhc2UgZW51bVZhbHVlOiByZXR1cm4gI2VudW1WYWx1
ZTsKKworCitjb25zdCBjaGFyICpHZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIHZyOjpFVlJJ
bml0RXJyb3IgZUVycm9yICkKK3sKKyAgICAgICBzd2l0Y2goIGVFcnJvciApCisgICAgICAgewor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfTm9uZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiTm8gRXJyb3IgKDApIjsKKworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZDogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIkluc3RhbGxhdGlvbiBOb3QgRm91bmQgKDEwMCkiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0OiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIENvcnJ1cHQgKDEwMSkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAidnJjbGllbnQgU2hhcmVkIExpYiBOb3QgRm91bmQgKDEwMikiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIkZpbGUgTm90IEZvdW5kICgxMDMpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkZhY3RvcnkgRnVuY3Rpb24gTm90IEZvdW5kICgxMDQpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJJbnRlcmZhY2UgTm90IEZvdW5kICgxMDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfSW52YWxpZEludGVyZmFjZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICJJbnZhbGlkIEludGVyZmFjZSAoMTA2KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
bml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkOiAgICAgICByZXR1cm4gIlVzZXIgQ29uZmln
IERpcmVjdG9yeSBJbnZhbGlkICgxMDcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRf
SG1kTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkht
ZCBOb3QgRm91bmQgKDEwOCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0
aWFsaXplZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJOb3QgSW5pdGlhbGl6
ZWQgKDEwOSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RG
b3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkluc3RhbGxhdGlvbiBwYXRoIGNvdWxk
IG5vdCBiZSBsb2NhdGVkICgxMTApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9D
b25maWdQYXRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb25m
aWcgcGF0aCBjb3VsZCBub3QgYmUgbG9jYXRlZCAoMTExKSI7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Jbml0X05vTG9nUGF0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiTG9nIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDExMikiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZTogICAgICAgICAgICAgIHJl
dHVybiAiVW5hYmxlIHRvIHdyaXRlIHBhdGggcmVnaXN0cnkgKDExMykiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gIkFwcCBpbmZvIG1hbmFnZXIgaW5pdCBmYWlsZWQgKDExNCkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9SZXRyeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkludGVybmFsIFJldHJ5ICgxMTUpIjsKKyAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2VyOiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiVXNlciBDYW5jZWxlZCBJbml0ICgxMTYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lu
aXRfQW5vdGhlckFwcExhdW5jaGluZzogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkFub3Ro
ZXIgYXBwIHdhcyBhbHJlYWR5IGxhdW5jaGluZyAoMTE3KSI7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IlNldHRpbmdzIG1hbmFnZXIgaW5pdCBmYWlsZWQgKDExOCkiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIlZSIHN5c3RlbSBzaHV0dGluZyBkb3duICgxMTkpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAiVG9vIG1hbnkgdHJhY2tlZCBvYmplY3RzICgxMjApIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwOiAgICAgICAgICAgICAgcmV0
dXJuICJOb3Qgc3RhcnRpbmcgdnJzZXJ2ZXIgZm9yIGJhY2tncm91bmQgYXBwICgxMjEpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3I6ICAg
ICAgIHJldHVybiAiVGhlIHJlcXVlc3RlZCBpbnRlcmZhY2UgaXMgaW5jb21wYXRpYmxlIHdpdGgg
dGhlIGNvbXBvc2l0b3IgYW5kIHRoZSBjb21wb3NpdG9yIGlzIHJ1bm5pbmcgKDEyMikiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzOiAgICAg
ICByZXR1cm4gIlRoaXMgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUgdG8gdXRpbGl0eSBhcHBs
aWNhdGlvbnMgKDEyMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnRlcm5hbDog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gInZyc2VydmVy
IGludGVybmFsIGVycm9yICgxMjQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1k
RHJpdmVySWRJc05vbmU6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJIbWQgRHJpdmVySWQg
aXMgaW52YWxpZCAoMTI1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZv
dW5kUHJlc2VuY2VGYWlsZWQ6ICAgICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCBQcmVzZW5jZSBG
YWlsZWQgKDEyNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RG
b3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIE1vbml0b3IgTm90IEZvdW5kICgx
MjcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxl
ZDogICAgICAgICAgICAgIHJldHVybiAiVlIgTW9uaXRvciBzdGFydHVwIGZhaWxlZCAoMTI4KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0
ZWQ6IHJldHVybiAiTG93IFBvd2VyIFdhdGNoZG9nIE5vdCBTdXBwb3J0ZWQgKDEyOSkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlOiAgICAgICAg
ICAgICAgcmV0dXJuICJJbnZhbGlkIEFwcGxpY2F0aW9uIFR5cGUgKDEzMCkiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwczogICAgICAgcmV0
dXJuICJOb3QgYXZhaWxhYmxlIHRvIHdhdGNoZG9nIGFwcHMgKDEzMSkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5nczogICAgICAgcmV0dXJu
ICJXYXRjaGRvZyBkaXNhYmxlZCBpbiBzZXR0aW5ncyAoMTMyKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICJWUiBEYXNoYm9hcmQgTm90IEZvdW5kICgxMzMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0dXJuICJW
UiBEYXNoYm9hcmQgc3RhcnR1cCBmYWlsZWQgKDEzNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9WUkhvbWVOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJWUiBIb21lIE5vdCBGb3VuZCAoMTM1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0
X1ZSSG9tZVN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBob21l
IHN0YXJ0dXAgZmFpbGVkICgxMzYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUmVi
b290aW5nQnVzeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJSZWJvb3Rpbmcg
SW4gUHJvZ3Jlc3MgKDEzNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2Fy
ZVVwZGF0ZUJ1c3k6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJGaXJtd2FyZSBVcGRhdGUg
SW4gUHJvZ3Jlc3MgKDEzOCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2Fy
ZVJlY292ZXJ5QnVzeTogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFJlY292
ZXJ5IEluIFByb2dyZXNzICgxMzkpIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVy
X0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJEcml2ZXIgRmFpbGVkICgyMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0Ry
aXZlcl9Vbmtub3duOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiRHJpdmVyIE5vdCBLbm93biAoMjAxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9E
cml2ZXJfSG1kVW5rbm93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkhNRCBOb3QgS25vd24gKDIwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
RHJpdmVyX05vdExvYWRlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkRyaXZlciBOb3QgTG9hZGVkICgyMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0RyaXZlcl9SdW50aW1lT3V0T2ZEYXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gIkRyaXZlciBydW50aW1lIGlzIG91dCBvZiBkYXRlICgyMDQpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGFwcGxp
Y2F0aW9uICgyMDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJh
dGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEZXZpY2UgaXMg
bm90IGNhbGlicmF0ZWQgKDIwNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0Nh
bGlicmF0aW9uSW52YWxpZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEZXZp
Y2UgQ2FsaWJyYXRpb24gaXMgaW52YWxpZCAoMjA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gIkhNRCBkZXRlY3RlZCBvdmVyIFVTQiwgYnV0IE1vbml0b3Igbm90IGZvdW5kICgyMDgp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNl
VW5rbm93bjogICAgICAgcmV0dXJuICJEcml2ZXIgVHJhY2tlZCBEZXZpY2UgSW50ZXJmYWNlIHVu
a25vd24gKDIwOSkiOworICAgICAgIC8vIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlOb3RGb3VuZEFmdGVyRml4OiAgICAgICByZXR1cm4gIkhNRCBkZXRlY3RlZCBvdmVyIFVTQiwg
YnV0IE1vbml0b3Igbm90IGZvdW5kIGFmdGVyIGF0dGVtcHQgdG8gZml4ICgyMTApIjsgLy8gdGFr
ZW4gb3V0IHVwb24gQmVuJ3MgcmVxdWVzdDogSGUgdGhpbmtzIHRoYXQgdGhlcmUgaXMgbm8gbmVl
ZCB0byBzZXBhcmF0ZSB0aGF0IGVycm9yIGZyb20gMjA4CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kczogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIkhtZCBEcml2ZXJJZCBpcyBvdXIgb2YgYm91bmRzICgyMTEpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBtYXkgYmUg
bWlycm9yZWQgaW5zdGVhZCBvZiBleHRlbmRlZCAoMjEyKSI7CisKKyAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiVlIgU2VydmVyIEluaXQgRmFpbGVkICgzMDApIjsKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbm5lY3QgdG8gVlIgU2VydmVy
IEZhaWxlZCAoMzAxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJ
bml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFy
ZWQgSVBDIFN0YXRlIEluaXQgRmFpbGVkICgzMDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiU2hhcmVkIElQQyBDb21wb3NpdG9yIEluaXQgRmFpbGVkICgzMDMpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIE11dGV4IEluaXQg
RmFpbGVkICgzMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQ6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IlNoYXJlZCBJUEMgRmFpbGVkICgzMDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19D
b21wb3NpdG9yQ29ubmVjdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJTaGFyZWQgSVBDIENvbXBvc2l0b3IgQ29ubmVjdCBGYWlsZWQgKDMwNikiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlOiAgICAg
ICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIENvbXBvc2l0b3IgSW52YWxpZCBDb25uZWN0IFJl
c3BvbnNlICgzMDcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzOiAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29ubmVjdCBG
YWlsZWQgQWZ0ZXIgTXVsdGlwbGUgQXR0ZW1wdHMgKDMwOCkiOworCisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiQ29tcG9zaXRvciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSAoNDAwKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZDogICAg
ICAgcmV0dXJuICJDb21wb3NpdG9yIGZhaWxlZCB0byBmaW5kIERYMTEgaGFyZHdhcmUgKDQwMSki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBk
YXRlOiAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgcmVxdWlyZXMgbWFuZGF0b3J5IGZpcm13YXJl
IHVwZGF0ZSAoNDAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJs
YXlJbml0RmFpbGVkOiAgICAgICAgICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGluaXRpYWxpemF0
aW9uIHN1Y2NlZWRlZCwgYnV0IG92ZXJsYXkgaW5pdCBmYWlsZWQgKDQwMykiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQ6ICAgICAgIHJl
dHVybiAiQ29tcG9zaXRvciBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIGJ1dCBzY3JlZW5zaG90
IGluaXQgZmFpbGVkICg0MDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
VW5hYmxlVG9DcmVhdGVEZXZpY2U6ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciB1bmFibGUgdG8g
Y3JlYXRlIGdyYXBoaWNzIGRldmljZSAoNDA1KSI7CisKKyAgICAgICAvLyBPY3VsdXMKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVz
UnVudGltZTogICAgICAgcmV0dXJuICJVbmFibGUgdG8gY29ubmVjdCB0byBPY3VsdXMgUnVudGlt
ZSAoMTAwMCkiOworCisgICAgICAgLy8gTGlnaHRob3VzZQorICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2U6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgY2FuIG5vdCBvcGVuIGRldmljZSAo
MTEwMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
VW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQ6ICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQg
dW5hYmxlIHRvIHJlcXVlc3QgY29uZmlnICgxMTAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZzogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBubyBzdG9yZWQgY29uZmlnICgxMTAz
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25m
aWdGYWlsZWRTYW5pdHlDaGVjazogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBmYWlsZWQg
Y29uZmlndXJhdGlvbiBjaGVjayAoMTExMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnOiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIGJpZyAoMTEwNCki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vU21hbGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBi
dXQgY29uZmlnIHRvbyBzbWFsbCAoMTEwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYjogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCB1bmFibGUgdG8gaW5pdCBaTGliICgxMTA2
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50
UmVhZEZpcm13YXJlVmVyc2lvbjogICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQg
cHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEwNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydDogICAgICAg
ICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEw
OCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5h
YmxlVG9HZXRVc2VyRGF0YVN0YXJ0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1
dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTA5KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dDogICAgICAg
ICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEx
MCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNl
ckRhdGFBZGRyZXNzUmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQs
IGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTExKSI7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yOiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRo
IHRoZSBkYXRhICgxMTEyKSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFt
SW5zdGFsbGF0aW9uTm90Rm91bmQ6IHJldHVybiAiVW5hYmxlIHRvIGZpbmQgU3RlYW0gaW5zdGFs
bGF0aW9uICgyMDAwKSI7CisKKyAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWMgY2hhciBidWZbMTI4XTsKKyAgICAgICAgICAgICAgICAg
ICAgIHNwcmludGYoIGJ1ZiwgIlVua25vd24gZXJyb3IgKCVkKSIsIGVFcnJvciApOworICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKwor
fQorCisKK2NvbnN0IGNoYXIgKkdldElERm9yVlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3Ig
ZUVycm9yICkKK3sKKyAgICAgICBzd2l0Y2goIGVFcnJvciApCisgICAgICAgeworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX05vbmUgKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Vbmtub3duICk7CisKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0luc3Rh
bGxhdGlvbk5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5k
ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5p
dF9GaWxlTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludmFs
aWRJbnRlcmZhY2UgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkICk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90
SW5pdGlhbGl6ZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0
aCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lu
aXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9SZXRyeSApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5p
dENhbmNlbGVkQnlVc2VyICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQg
KTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0
X1NodXR0aW5nRG93biApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCAp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
Tm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0lu
dGVybmFsICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTG93UG93
ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxh
YmxlVG9XYXRjaGRvZ0FwcHMgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2Fy
ZE5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZvdW5kICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkhv
bWVTdGFydHVwRmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3kgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Zpcm13
YXJlUmVjb3ZlcnlCdXN5ICk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNl
RmFpbGVkICk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Ecml2ZXJfRmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93bik7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVy
X1J1bnRpbWVPdXRPZkRhdGUpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9DYWxpYnJhdGlv
bkludmFsaWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5r
bm93biApOworICAgICAgICAgICAgICAvLyBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9m
Qm91bmRzICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCApOworCisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQpOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFp
bGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9J
UENfU2hhcmVkU3RhdGVJbml0RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWls
ZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQ
Q19GYWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJl
c3BvbnNlKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9JUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyk7CisKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZCAp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBv
c2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRl
ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9z
aXRvcl9VbmFibGVUb0NyZWF0ZURldmljZSApOworCisgICAgICAgICAgICAgIC8vIE9jdWx1cwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVudGltZSk7CisKKyAgICAgICAgICAgICAg
Ly8gTGlnaHRob3VzZQorICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25maWdTdGFydCk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9T
dG9yZWRDb25maWcpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnICk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vU21hbGwgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24gKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFi
bGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2Vy
RGF0YVN0YXJ0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VzZXJEYXRhRXJyb3IgKTsKKworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsKKworICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBj
aGFyIGJ1ZlsxMjhdOworICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAiVW5rbm93
biBlcnJvciAoJWQpIiwgZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVm
OworICAgICAgICAgICAgICB9CisgICAgICAgfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNjZDZjOGE5NmMxMzBjMGFjZjFmNGIyYjY0ODZmNWIyOTNkMDdiMjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19w
dWJsaWMuaApAQCAtMCwwICsxLDYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jw
b3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKK2NvbnN0IGNoYXIgKkdldEVu
Z2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKK2NvbnN0
IGNoYXIgKkdldElERm9yVlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICk7CisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRv
b2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3Bh
dGh0b29sc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMzQ1OGRkYzFkYWFkOGM4OTc4MTA0NTI4
ODUyMzA4ZWI5MDgwMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsODE5IEBACisv
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNp
bmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgi
CisKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUg
PGRpcmVjdC5oPgorI2luY2x1ZGUgPHNob2JqaWRsLmg+CisjaW5jbHVkZSA8a25vd25mb2xkZXJz
Lmg+CisjaW5jbHVkZSA8c2hsb2JqLmg+CisjaW5jbHVkZSA8c2hhcmUuaD4KKworI3VuZGVmIEdl
dEVudmlyb25tZW50VmFyaWFibGUKKyNlbHNlCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRl
IDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2Vu
ZGlmCisjaWYgZGVmaW5lZCBPU1gKKyNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
KyNpbmNsdWRlIDxBcHBLaXQvQXBwS2l0Lmg+CisjaW5jbHVkZSA8bWFjaC1vL2R5bGQuaD4KKyNk
ZWZpbmUgX1NfSUZESVIgU19JRkRJUiAgICAgLy8gcmVhbGx5IGZyb20gdGllcjAvcGxhdGZvcm0u
aCB3aGljaCB3ZSBkb250IGhhdmUgeWV0CisjZW5kaWYKKworI2luY2x1ZGUgPHN5cy9zdGF0Lmg+
CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIChpbmNsdWRp
bmcgZmlsZW5hbWUpIHRvIHRoZSBjdXJyZW50IGV4ZWN1dGFibGUgKi8KK3N0ZDo6c3RyaW5nIFBh
dGhfR2V0RXhlY3V0YWJsZVBhdGgoKQoreworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAg
d2NoYXJfdCAqcHdjaFBhdGggPSBuZXcgd2NoYXJfdFtNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAg
ICBjaGFyICpwY2hQYXRoID0gbmV3IGNoYXJbTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4XTsKKyAg
ICAgICA6OkdldE1vZHVsZUZpbGVOYW1lVyggTlVMTCwgcHdjaFBhdGgsIE1BWF9VTklDT0RFX1BB
VEggKTsKKyAgICAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKCBDUF9VVEY4LCAwLCBwd2NoUGF0aCwg
LTEsIHBjaFBhdGgsIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCwgTlVMTCwgTlVMTCApOworICAg
ICAgIGRlbGV0ZVtdIHB3Y2hQYXRoOworCisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBwY2hQ
YXRoOworICAgICAgIGRlbGV0ZVtdIHBjaFBhdGg7CisgICAgICAgcmV0dXJuIHNQYXRoOworI2Vs
aWYgZGVmaW5lZCggT1NYICkKKyAgICAgICBjaGFyIHJjaFBhdGhbMTAyNF07CisgICAgICAgdWlu
dDMyX3QgbkJ1ZmYgPSBzaXplb2YoIHJjaFBhdGggKTsKKyAgICAgICBib29sIGJTdWNjZXNzID0g
X05TR2V0RXhlY3V0YWJsZVBhdGgocmNoUGF0aCwgJm5CdWZmKSA9PSAwOworICAgICAgIHJjaFBh
dGhbbkJ1ZmYtMV0gPSAnXDAnOworICAgICAgIGlmKCBiU3VjY2VzcyApCisgICAgICAgICAgICAg
IHJldHVybiByY2hQYXRoOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuICIiOwor
I2VsaWYgZGVmaW5lZCBMSU5VWAorICAgICAgIGNoYXIgcmNoUGF0aFsxMDI0XTsKKyAgICAgICBz
aXplX3QgbkJ1ZmYgPSBzaXplb2YoIHJjaFBhdGggKTsKKyAgICAgICBzc2l6ZV90IG5SZWFkID0g
cmVhZGxpbmsoIi9wcm9jL3NlbGYvZXhlIiwgcmNoUGF0aCwgbkJ1ZmYtMSApOworICAgICAgIGlm
ICggblJlYWQgIT0gLTEgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmNoUGF0aFsgblJlYWQg
XSA9IDA7CisgICAgICAgICAgICAgIHJldHVybiByY2hQYXRoOworICAgICAgIH0KKyAgICAgICBl
bHNlCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorI2Vsc2UK
KyAgICAgICBBc3NlcnRNc2coIGZhbHNlLCAiSW1wbGVtZW50IFBsYXRfR2V0RXhlY3V0YWJsZVBh
dGgiICk7CisgICAgICAgcmV0dXJuICIiOworI2VuZGlmCisKK30KKworLyoqIFJldHVybnMgdGhl
IHBhdGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgKi8KK3N0ZDo6c3RyaW5nIFBh
dGhfR2V0V29ya2luZ0RpcmVjdG9yeSgpCit7CisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGg7Cisj
aWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICB3Y2hhcl90IGJ1ZltNQVhfVU5JQ09ERV9QQVRI
XTsKKyAgICAgICBzUGF0aCA9IFVURjE2dG84KCBfd2dldGN3ZCggYnVmLCBNQVhfVU5JQ09ERV9Q
QVRIICkgKTsKKyNlbHNlCisgICAgICAgY2hhciBidWZbIDEwMjQgXTsKKyAgICAgICBzUGF0aCA9
IGdldGN3ZCggYnVmLCBzaXplb2YoIGJ1ZiApICk7CisjZW5kaWYKKyAgICAgICByZXR1cm4gc1Bh
dGg7Cit9CisKKy8qKiBTZXRzIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0
b3J5LiBSZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KK2Jvb2wgUGF0aF9T
ZXRXb3JraW5nRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAg
ICBib29sIGJTdWNjZXNzOworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgc3RkOjp3c3Ry
aW5nIHdzUGF0aCA9IFVURjh0bzE2KCBzUGF0aC5jX3N0cigpICk7CisgICAgICAgYlN1Y2Nlc3Mg
PSAwID09IF93Y2hkaXIoIHdzUGF0aC5jX3N0cigpICk7CisjZWxzZQorICAgICAgIGJTdWNjZXNz
ID0gMCA9PSBjaGRpciggc1BhdGguY19zdHIoKSApOworI2VuZGlmCisgICAgICAgcmV0dXJuIGJT
dWNjZXNzOworfQorCisvKiogUmV0dXJucyB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aG91dCBpdHMg
ZmlsZW5hbWUgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBGaWxlbmFtZSggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQor
ICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3Ry
aW5nOjpzaXplX3R5cGUgbiA9IHNQYXRoLmZpbmRfbGFzdF9vZiggc2xhc2ggKTsKKyAgICAgICBp
ZiggbiA9PSBzdGQ6OnN0cmluZzo6bnBvcyApCisgICAgICAgICAgICAgIHJldHVybiBzUGF0aDsK
KyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVn
aW4oKSwgc1BhdGguYmVnaW4oKSArIG4gKTsKK30KKworLyoqIHJldHVybnMganVzdCB0aGUgZmls
ZW5hbWUgZnJvbSB0aGUgcHJvdmlkZWQgZnVsbCBvciByZWxhdGl2ZSBwYXRoLiAqLworc3RkOjpz
dHJpbmcgUGF0aF9TdHJpcERpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hh
ciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFz
aCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbiA9
IHNQYXRoLmZpbmRfbGFzdF9vZiggc2xhc2ggKTsKKyAgICAgICBpZiggbiA9PSBzdGQ6OnN0cmlu
Zzo6bnBvcyApCisgICAgICAgICAgICAgIHJldHVybiBzUGF0aDsKKyAgICAgICBlbHNlCisgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVnaW4oKSArIG4gKyAxLCBzUGF0
aC5lbmQoKSApOworfQorCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSB3aXRoIG5vIGV4
dGVuc2lvbiBvZiB0aGUgcHJvdmlkZWQgZmlsZW5hbWUuIAorKiBJZiB0aGVyZSBpcyBhIHBhdGgg
dGhlIHBhdGggaXMgbGVmdCBpbnRhY3QuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRXh0ZW5z
aW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBmb3IoIHN0ZDo6c3Ry
aW5nOjpjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIGkgPSBzUGF0aC5yYmVnaW4oKTsgaSAhPSBzUGF0
aC5yZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggKmkgPT0gJy4nICkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5n
KCBzUGF0aC5iZWdpbigpLCBpLmJhc2UoKSAtIDEgKTsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIC8vIGlmIHdlIGZpbmQgYSBzbGFzaCB0aGVyZSBpcyBubyBleHRlbnNpb24KKyAg
ICAgICAgICAgICAgaWYoICppID09ICdcXCcgfHwgKmkgPT0gJy8nICkKKyAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgIH0KKworICAgICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4
dGVuc2lvbgorICAgICAgIHJldHVybiBzUGF0aDsKK30KKworLyoqIHJldHVybnMganVzdCBleHRl
bnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lIChpZiBhbnkpLiAqLworc3RkOjpzdHJpbmcg
UGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAg
IGZvciAoIHN0ZDo6c3RyaW5nOjpjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIGkgPSBzUGF0aC5yYmVn
aW4oKTsgaSAhPSBzUGF0aC5yZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBp
ZiAoICppID09ICcuJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZyggaS5iYXNlKCksIHNQYXRoLmVuZCgpICk7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMgbm8gZXh0
ZW5zaW9uCisgICAgICAgICAgICAgIGlmICggKmkgPT0gJ1xcJyB8fCAqaSA9PSAnLycgKQorICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgfQorCisgICAgICAgLy8gd2UgZGlkbid0
IGZpbmQgYW4gZXh0ZW5zaW9uCisgICAgICAgcmV0dXJuICIiOworfQorCitib29sIFBhdGhfSXNB
YnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgaWYoIHNQYXRo
LmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKCBX
SU4zMiApCisgICAgICAgaWYgKCBzUGF0aC5zaXplKCkgPCAzICkgLy8gbXVzdCBiZSBjOlx4IG9y
IFxceCBhdCBsZWFzdAorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBpZiAo
IHNQYXRoWzFdID09ICc6JyApIC8vIGRyaXZlIGxldHRlciBwbHVzIHNsYXNoLCBidXQgbXVzdCB0
ZXN0IGJvdGggc2xhc2ggY2FzZXMKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggc1BhdGhb
Ml0gPT0gJ1xcJyB8fCBzUGF0aFsyXSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgfQorICAgICAgIGVsc2UgaWYgKCBzUGF0aFswXSA9PSAnXFwnICYm
IHNQYXRoWzFdID09ICdcXCcgKSAvLyBVTkMgcGF0aAorICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyNlbHNlCisgICAgICAgaWYoIHNQYXRoWzBdID09ICdcXCcgfHwgc1BhdGhbMF0gPT0gJy8n
ICkgLy8gYW55IGxlYWRpbmcgc2xhc2gKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5k
aWYKKworICAgICAgIHJldHVybiBmYWxzZTsKK30KKworCisvKiogTWFrZXMgYW4gYWJzb2x1dGUg
cGF0aCBmcm9tIGEgcmVsYXRpdmUgcGF0aCBhbmQgYSBiYXNlIHBhdGggKi8KK3N0ZDo6c3RyaW5n
IFBhdGhfTWFrZUFic29sdXRlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZigg
c2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisg
ICAgICAgaWYoIFBhdGhfSXNBYnNvbHV0ZSggc1JlbGF0aXZlUGF0aCApICkKKyAgICAgICAgICAg
ICAgcmV0dXJuIHNSZWxhdGl2ZVBhdGg7CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgaWYoICFQYXRoX0lzQWJzb2x1dGUoIHNCYXNlUGF0aCApICkKKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiIjsKKworICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzQ29tcGFjdGVk
ID0gUGF0aF9Db21wYWN0KCBQYXRoX0pvaW4oIHNCYXNlUGF0aCwgc1JlbGF0aXZlUGF0aCwgc2xh
c2ggKSwgc2xhc2ggKTsKKyAgICAgICAgICAgICAgaWYoIFBhdGhfSXNBYnNvbHV0ZSggc0NvbXBh
Y3RlZCApICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzQ29tcGFjdGVkOworICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQor
fQorCisKKy8qKiBGaXhlcyB0aGUgZGlyZWN0b3J5IHNlcGFyYXRvcnMgZm9yIHRoZSBjdXJyZW50
IHBsYXRmb3JtICovCitzdGQ6OnN0cmluZyBQYXRoX0ZpeFNsYXNoZXMoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAg
ICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmlu
ZyBzRml4ZWQgPSBzUGF0aDsKKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjppdGVyYXRvciBpID0g
c0ZpeGVkLmJlZ2luKCk7IGkgIT0gc0ZpeGVkLmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgaWYoICppID09ICcvJyB8fCAqaSA9PSAnXFwnICkKKyAgICAgICAgICAgICAgICAg
ICAgICppID0gc2xhc2g7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNGaXhlZDsKK30KKwor
CitjaGFyIFBhdGhfR2V0U2xhc2goKQoreworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAgIHJl
dHVybiAnXFwnOworI2Vsc2UKKyAgICAgICByZXR1cm4gJy8nOworI2VuZGlmCit9CisKKy8qKiBK
YW1zIHR3byBwYXRocyB0b2dldGhlciB3aXRoIHRoZSByaWdodCBraW5kIG9mIHNsYXNoICovCitz
dGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc2Vjb25kLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0g
MCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgLy8g
b25seSBpbnNlcnQgYSBzbGFzaCBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgb25lCisgICAgICAg
c3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuTGVuID0gZmlyc3QubGVuZ3RoKCk7CisgICAgICAgaWYo
ICFuTGVuICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNlY29uZDsKKyNpZiBkZWZpbmVkKF9XSU4z
MikKKyAgICAgICBpZiggZmlyc3QuYmFjaygpID09ICdcXCcgfHwgZmlyc3QuYmFjaygpID09ICcv
JyApCisgICAgICAgICAgIG5MZW4tLTsKKyNlbHNlCisgICAgICAgY2hhciBsYXN0X2NoYXIgPSBm
aXJzdFtmaXJzdC5sZW5ndGgoKS0xXTsKKyAgICAgICBpZiAobGFzdF9jaGFyID09ICdcXCcgfHwg
bGFzdF9jaGFyID09ICcvJykKKyAgICAgICAgICAgbkxlbi0tOworI2VuZGlmCisKKyAgICAgICBy
ZXR1cm4gZmlyc3Quc3Vic3RyKCAwLCBuTGVuICkgKyBzdGQ6OnN0cmluZyggMSwgc2xhc2ggKSAr
IHNlY29uZDsKK30KKworCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjb25zdCBzdGQ6OnN0cmluZyAm
IHRoaXJkLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pv
aW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJkLCBzbGFzaCApOworfQorCitzdGQ6OnN0
cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc2Vjb25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjb25zdCBzdGQ6OnN0cmlu
ZyAmZm91cnRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRo
X0pvaW4oIFBhdGhfSm9pbiggZmlyc3QsIHNlY29uZCwgc2xhc2ggKSwgdGhpcmQsIHNsYXNoICks
IGZvdXJ0aCwgc2xhc2ggKTsKK30KKworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCAKKyAgICAgICBj
b25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIHNl
Y29uZCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgCisgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcgJiBmb3VydGgsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlmdGgs
IAorICAgICAgIGNoYXIgc2xhc2ggKQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhf
Sm9pbiggUGF0aF9Kb2luKCBQYXRoX0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJk
LCBzbGFzaCApLCBmb3VydGgsIHNsYXNoICksIGZpZnRoLCBzbGFzaCApOworfQorCisKK3N0ZDo6
c3RyaW5nIFBhdGhfUmVtb3ZlVHJhaWxpbmdTbGFzaCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3
UGF0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAgaWYgKCBzbGFzaCA9PSAwICkKKyAgICAgICAg
ICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0
aCA9IHNSYXdQYXRoOworICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbkN1cnJlbnQgPSBz
UmF3UGF0aC5sZW5ndGgoKTsKKyAgICAgICBpZiAoIG5DdXJyZW50ID09IDAgKQorICAgICAgICAg
ICAgICByZXR1cm4gc1BhdGg7CisKKyAgICAgICBpbnQgbkxhc3RGb3VuZCA9IC0xOworICAgICAg
IG5DdXJyZW50LS07CisgICAgICAgd2hpbGUoIG5DdXJyZW50ICE9IDAgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgaWYgKCBzUmF3UGF0aFsgbkN1cnJlbnQgXSA9PSBzbGFzaCApCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIG5MYXN0Rm91bmQgPSAoaW50KW5DdXJyZW50
OworICAgICAgICAgICAgICAgICAgICAgbkN1cnJlbnQtLTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICBp
ZiAoIG5MYXN0Rm91bmQgPj0gMCApCisgICAgICAgeworICAgICAgICAgICAgICBzUGF0aC5lcmFz
ZSggbkxhc3RGb3VuZCwgc3RkOjpzdHJpbmc6Om5wb3MgKTsKKyAgICAgICB9CisgICAgICAgCisg
ICAgICAgcmV0dXJuIHNQYXRoOworfQorCisKKy8qKiBSZW1vdmVzIHJlZHVuZGFudCA8ZGlyPi8u
LiBlbGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRoIGlmIHRoZSAKKyog
c3BlY2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3RvcmllcyBmb3IgaXRz
IG51bWJlciBvZiAuLnMgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfQ29tcGFjdCggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAg
KQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6
c3RyaW5nIHNQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUmF3UGF0aCwgc2xhc2ggKTsKKyAgICAg
ICBzdGQ6OnN0cmluZyBzU2xhc2hTdHJpbmcoIDEsIHNsYXNoICk7CisKKyAgICAgICAvLyBzdHJp
cCBvdXQgYWxsIC8uLworICAgICAgIGZvciggc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpID0gMDsg
KGkgKyAzKSA8IHNQYXRoLmxlbmd0aCgpOyAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYo
IHNQYXRoWyBpIF0gPT0gc2xhc2ggJiYgc1BhdGhbIGkrMSBdID09ICcuJyAmJiBzUGF0aFsgaSsy
IF0gPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzUGF0
aC5yZXBsYWNlKCBpLCAzLCBzU2xhc2hTdHJpbmcgKTsKKyAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICsraTsK
KyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworCisgICAgICAgLy8gZ2V0IHJpZCBvZiB0cmFp
bGluZyAvLiBidXQgbGVhdmUgdGhlIHBhdGggc2VwYXJhdG9yCisgICAgICAgaWYoIHNQYXRoLmxl
bmd0aCgpID4gMiApCisgICAgICAgeworICAgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIGxlbiA9IHNQYXRoLmxlbmd0aCgpOworICAgICAgICAgICAgICBpZiggc1BhdGhbIGxlbi0x
IF0gPT0gJy4nICAmJiBzUGF0aFsgbGVuLTIgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAvLyBzUGF0aC5wb3BfYmFjaygpOworICAgICAgICAgICAgICAgIHNQ
YXRoW2xlbi0xXSA9IDA7ICAvLyBmb3Igbm93LCBhdCBsZWFzdAorICAgICAgICAgICAgICB9Cisg
ICAgICAgfQorCisgICAgICAgLy8gZ2V0IHJpZCBvZiBsZWFkaW5nIC4vIAorICAgICAgIGlmKCBz
UGF0aC5sZW5ndGgoKSA+IDIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIHNQYXRoWyAw
IF0gPT0gJy4nICAmJiBzUGF0aFsgMSBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgc1BhdGgucmVwbGFjZSggMCwgMiwgIiIgKTsKKyAgICAgICAgICAg
ICAgfQorICAgICAgIH0KKworICAgICAgIC8vIGVhY2ggdGltZSB3ZSBlbmNvdW50ZXIgLi4gYmFj
ayB1cCB1bnRpbCB3ZSd2ZSBmb3VuZCB0aGUgcHJldmlvdXMgZGlyZWN0b3J5IG5hbWUKKyAgICAg
ICAvLyB0aGVuIGdldCByaWQgb2YgYm90aAorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUg
aSA9IDA7CisgICAgICAgd2hpbGUoIGkgPCBzUGF0aC5sZW5ndGgoKSApCisgICAgICAgeworICAg
ICAgICAgICAgICBpZiggaSA+IDAgJiYgc1BhdGgubGVuZ3RoKCkgLSBpID49IDIgCisgICAgICAg
ICAgICAgICAgICAgICAmJiBzUGF0aFtpXSA9PSAnLicKKyAgICAgICAgICAgICAgICAgICAgICYm
IHNQYXRoW2krMV0gPT0gJy4nCisgICAgICAgICAgICAgICAgICAgICAmJiAoIGkgKyAyID09IHNQ
YXRoLmxlbmd0aCgpIHx8IHNQYXRoWyBpKzIgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgICAg
ICAgICAmJiBzUGF0aFsgaS0xIF0gPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSd2ZSBoaXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJp
bmcgYW5kIGhhdmUgYSBib2d1cyBwYXRoCisgICAgICAgICAgICAgICAgICAgICBpZiggaSA9PSAx
ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIHNlcGFyYXRvciBiZWZv
cmUgaS0xCisgICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGlEaXJT
dGFydCA9IGktMjsKKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCBpRGlyU3RhcnQgPiAwICYm
IHNQYXRoWyBpRGlyU3RhcnQgLSAxIF0gIT0gc2xhc2ggKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0taURpclN0YXJ0OworCisgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZXZl
cnl0aGluZyBmcm9tIGlEaXJTdGFydCB0byBpKzIKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRo
LnJlcGxhY2UoIGlEaXJTdGFydCwgKGkgLSBpRGlyU3RhcnQpICsgMywgIiIgKTsKKworICAgICAg
ICAgICAgICAgICAgICAgLy8gc3RhcnQgb3ZlcgorICAgICAgICAgICAgICAgICAgICAgaSA9IDA7
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAg
ICAgICByZXR1cm4gc1BhdGg7Cit9CisKKworLyoqIFJldHVybnMgdGhlIHBhdGggdG8gdGhlIGN1
cnJlbnQgRExMIG9yIGV4ZSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCgp
Cit7CisgICAgICAgLy8gZ2V0cyB0aGUgcGF0aCBvZiB2cmNsaWVudC5kbGwgaXRzZWxmCisjaWZk
ZWYgV0lOMzIKKyAgICAgICBITU9EVUxFIGhtb2R1bGUgPSBOVUxMOworCisgICAgICAgOjpHZXRN
b2R1bGVIYW5kbGVFeCggR0VUX01PRFVMRV9IQU5ETEVfRVhfRkxBR19GUk9NX0FERFJFU1MgfCBH
RVRfTU9EVUxFX0hBTkRMRV9FWF9GTEFHX1VOQ0hBTkdFRF9SRUZDT1VOVCwgcmVpbnRlcnByZXRf
Y2FzdDxMUENUU1RSPihQYXRoX0dldFRoaXNNb2R1bGVQYXRoKSwgJmhtb2R1bGUgKTsKKworICAg
ICAgIHdjaGFyX3QgKnB3Y2hQYXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNPREVfUEFUSF07Cisg
ICAgICAgY2hhciAqcGNoUGF0aCA9IG5ldyBjaGFyWyBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgg
XTsKKyAgICAgICA6OkdldE1vZHVsZUZpbGVOYW1lVyggaG1vZHVsZSwgcHdjaFBhdGgsIE1BWF9V
TklDT0RFX1BBVEggKTsKKyAgICAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKCBDUF9VVEY4LCAwLCBw
d2NoUGF0aCwgLTEsIHBjaFBhdGgsIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCwgTlVMTCwgTlVM
TCApOworICAgICAgIGRlbGV0ZVtdIHB3Y2hQYXRoOworCisgICAgICAgc3RkOjpzdHJpbmcgc1Bh
dGggPSBwY2hQYXRoOworICAgICAgIGRlbGV0ZSBbXSBwY2hQYXRoOworICAgICAgIHJldHVybiBz
UGF0aDsKKworI2VsaWYgZGVmaW5lZCggT1NYICkgfHwgZGVmaW5lZCggTElOVVggKQorICAgICAg
IC8vIGdldCB0aGUgYWRkciBvZiBhIGZ1bmN0aW9uIGluIHZyY2xpZW50LnNvIGFuZCB0aGVuIGFz
ayB0aGUgZGxvcGVuIHN5c3RlbSBhYm91dCBpdAorICAgICAgIERsX2luZm8gaW5mbzsKKyAgICAg
ICBkbGFkZHIoICh2b2lkICopUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCwgJmluZm8gKTsKKyAgICAg
ICByZXR1cm4gaW5mby5kbGlfZm5hbWU7CisjZW5kaWYKKworfQorCisKKy8qKiByZXR1cm5zIHRy
dWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGV4aXN0cyBhbmQgaXMgYSBkaXJlY3RvcnkgKi8KK2Jv
b2wgUGF0aF9Jc0RpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAg
ICAgc3RkOjpzdHJpbmcgc0ZpeGVkUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKKyAg
ICAgICBpZiggc0ZpeGVkUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgIGNoYXIgY0xhc3QgPSBzRml4ZWRQYXRoWyBzRml4ZWRQYXRoLmxlbmd0aCgpIC0g
MSBdOworICAgICAgIGlmKCBjTGFzdCA9PSAnLycgfHwgY0xhc3QgPT0gJ1xcJyApCisgICAgICAg
ICAgICAgIHNGaXhlZFBhdGguZXJhc2UoIHNGaXhlZFBhdGguZW5kKCkgLSAxLCBzRml4ZWRQYXRo
LmVuZCgpICk7CisKKyAgICAgICAvLyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVhbGx5
IGV4aXN0cy4KKworI2lmIGRlZmluZWQoUE9TSVgpCisgICAgICAgc3RydWN0ICAgICAgIHN0YXQg
ICAgICAgYnVmOworICAgICAgIGlmICggc3RhdCggc0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkg
PT0gLTEgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0K
KworI2lmIGRlZmluZWQoIExJTlVYICkgfHwgZGVmaW5lZCggT1NYICkKKyAgICAgICByZXR1cm4g
U19JU0RJUiggYnVmLnN0X21vZGUgKTsKKyNlbHNlCisgICAgICAgcmV0dXJuIChidWYuc3RfbW9k
ZSAmIF9TX0lGRElSKSAhPSAwOworI2VuZGlmCisKKyNlbHNlCisgICAgICAgc3RydWN0ICAgICAg
IF9zdGF0ICAgICAgIGJ1ZjsKKyAgICAgICBzdGQ6OndzdHJpbmcgd3NGaXhlZFBhdGggPSBVVEY4
dG8xNiggc0ZpeGVkUGF0aC5jX3N0cigpICk7CisgICAgICAgaWYgKCBfd3N0YXQoIHdzRml4ZWRQ
YXRoLmNfc3RyKCksICZidWYgKSA9PSAtMSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIChidWYuc3RfbW9kZSAmIF9TX0lG
RElSKSAhPSAwOworI2VuZGlmCit9CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmll
ZCBwYXRoIHJlcHJlc2VudHMgYW4gYXBwIGJ1bmRsZSAqLworYm9vbCBQYXRoX0lzQXBwQnVuZGxl
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyNpZiBkZWZpbmVkKE9TWCkKKyAgICAg
ICBOU0J1bmRsZSAqYnVuZGxlID0gWyBOU0J1bmRsZSBidW5kbGVXaXRoUGF0aDogWyBOU1N0cmlu
ZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpzUGF0aC5jX3N0cigpIF0gXTsKKyAgICAgICBib29sIGJp
c0FwcEJ1bmRsZSA9ICggbnVsbHB0ciAhPSBidW5kbGUgKTsKKyAgICAgICBbIGJ1bmRsZSByZWxl
YXNlIF07CisgICAgICAgcmV0dXJuIGJpc0FwcEJ1bmRsZTsKKyNlbHNlCisgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6
IHJldHVybnMgdHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitib29sIFBhdGhfRXhpc3RzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAg
ICAgICBzdGQ6OnN0cmluZyBzRml4ZWRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOwor
ICAgICAgIGlmKCBzRml4ZWRQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyNpZiBkZWZpbmVkKCBXSU4zMiApCisgICAgICAgc3RydWN0ICAgICAgIF9zdGF0ICAg
ICAgIGJ1ZjsKKyAgICAgICBzdGQ6OndzdHJpbmcgd3NGaXhlZFBhdGggPSBVVEY4dG8xNiggc0Zp
eGVkUGF0aC5jX3N0cigpICk7CisgICAgICAgaWYgKCBfd3N0YXQoIHdzRml4ZWRQYXRoLmNfc3Ry
KCksICZidWYgKSA9PSAtMSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorI2Vsc2UKKyAgICAgICBzdHJ1Y3Qgc3RhdCBidWY7CisgICAgICAgaWYgKCBz
dGF0ICggc0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEpCisgICAgICAgeworICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorI2VuZGlmCisKKyAgICAgICByZXR1cm4g
dHJ1ZTsKK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBoZWxwZXIg
dG8gZmluZCBhIGRpcmVjdG9yeSB1cHN0cmVhbSBmcm9tIGEgZ2l2ZW4gcGF0aAorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJz
aXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpz
dHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5k
UGF0aCA9ICIiOworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhT
bGFzaGVzKCBzdHJTdGFydERpcmVjdG9yeSApOworICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgu
bGVuZ3RoKCkgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKworICAgICAgIGJvb2wg
YkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgIHN0ZDo6c3Ry
aW5nIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lID0gUGF0aF9TdHJpcERpcmVjdG9yeSggc3RyQ3Vy
cmVudFBhdGggKTsKKyAgICAgICBpZiAoIGJFeGlzdHMgJiYgc3RyaWNtcCggc3RyQ3VycmVudERp
cmVjdG9yeU5hbWUuY19zdHIoKSwgc3RyRGlyZWN0b3J5TmFtZS5jX3N0cigpICkgPT0gMCApCisg
ICAgICAgICAgICAgIHJldHVybiBzdHJDdXJyZW50UGF0aDsKKworICAgICAgIHdoaWxlKCBiRXhp
c3RzICYmIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpICE9IDAgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc3RyQ3VycmVudFBhdGggPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRo
ICk7CisgICAgICAgICAgICAgIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lID0gUGF0aF9TdHJpcERp
cmVjdG9yeSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAgICAgYkV4aXN0cyA9IFBhdGhf
RXhpc3RzKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgICAgICAgICBpZiAoIGJFeGlzdHMgJiYg
c3RyaWNtcCggc3RyQ3VycmVudERpcmVjdG9yeU5hbWUuY19zdHIoKSwgc3RyRGlyZWN0b3J5TmFt
ZS5jX3N0cigpICkgPT0gMCApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RyQ3VycmVu
dFBhdGg7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuICIiOworfQorCisKKy8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IGhlbHBlciB0byBmaW5kIGEgc3ViZGlyZWN0b3J5IHVw
c3RyZWFtIGZyb20gYSBnaXZlbiBwYXRoCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0
cmluZyBQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSggY29uc3Qgc3RkOjpz
dHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRGlyZWN0b3J5
TmFtZSApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyRm91bmRQYXRoID0gIiI7CisgICAgICAg
c3RkOjpzdHJpbmcgc3RyQ3VycmVudFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHN0clN0YXJ0RGly
ZWN0b3J5ICk7CisgICAgICAgaWYgKCBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSA9PSAwICkKKyAg
ICAgICAgICAgICAgcmV0dXJuICIiOworCisgICAgICAgYm9vbCBiRXhpc3RzID0gUGF0aF9FeGlz
dHMoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgd2hpbGUoIGJFeGlzdHMgJiYgc3RyQ3VycmVu
dFBhdGgubGVuZ3RoKCkgIT0gMCApCisgICAgICAgeworICAgICAgICAgICAgICBzdHJDdXJyZW50
UGF0aCA9IFBhdGhfU3RyaXBGaWxlbmFtZSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAg
ICAgYkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJyZW50UGF0aCApOworCisgICAgICAgICAg
ICAgIGlmKCBQYXRoX0V4aXN0cyggUGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3RyRGlyZWN0
b3J5TmFtZSApICkgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzdHJG
b3VuZFBhdGggPSBQYXRoX0pvaW4oIHN0ckN1cnJlbnRQYXRoLCBzdHJEaXJlY3RvcnlOYW1lICk7
CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0K
KyAgICAgICByZXR1cm4gc3RyRm91bmRQYXRoOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vIFB1cnBvc2U6IHJlYWRpbmcgYW5kIHdyaXRpbmcgZmlsZXMgaW4gdGhlIHZvcnRleCBk
aXJlY3RvcnkKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3Vuc2lnbmVkIGNoYXIgKiBQYXRoX1Jl
YWRCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGludCAqcFNpemUg
KQoreworICAgICAgIEZJTEUgKmY7CisjaWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBm
b3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwgInJiIiApOworI2Vsc2UKKyAgICAgICBzdGQ6Ondz
dHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKKyAg
ICAgICAvLyB0aGUgb3BlbiBvcGVyYXRpb24gbmVlZHMgdG8gYmUgc2hhcmFibGUsIHRoZXJlZm9y
ZSB1c2Ugb2YgX3dmc29wZW4gaW5zdGVhZCBvZiBfd2ZvcGVuX3MKKyAgICAgICBmID0gX3dmc29w
ZW4oIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBMInJiIiwgX1NIX0RFTllOTyApOworI2VuZGlmCisg
ICAgICAgCisgICAgICAgdW5zaWduZWQgY2hhciogYnVmID0gTlVMTDsKKworICAgICAgIGlmICgg
ZiAhPSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNFRUtfRU5E
KTsKKyAgICAgICAgICAgICAgaW50IHNpemUgPSBmdGVsbChmKTsKKyAgICAgICAgICAgICAgZnNl
ZWsoZiwgMCwgU0VFS19TRVQpOworCisgICAgICAgICAgICAgIGJ1ZiA9IG5ldyB1bnNpZ25lZCBj
aGFyW3NpemVdOworICAgICAgICAgICAgICBpZiAoYnVmICYmIGZyZWFkKGJ1Ziwgc2l6ZSwgMSwg
ZikgPT0gMSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKHBTaXpl
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwU2l6ZSA9IHNpemU7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICBkZWxldGVbXSBidWY7CisgICAgICAgICAgICAgICAgICAgICBidWYgPSAwOworICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKworICAg
ICAgIHJldHVybiBidWY7Cit9CisKK3VpbnQzMl90ICBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBCdWZmZXIsIHVpbnQz
Ml90IHVuU2l6ZSApCit7CisgICAgICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisg
ICAgICAgZiA9IGZvcGVuKCBzdHJGaWxlbmFtZS5jX3N0cigpLCAicmIiICk7CisjZWxzZQorICAg
ICAgIHN0ZDo6d3N0cmluZyB3c3RyRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19z
dHIoKSApOworICAgICAgIGVycm5vX3QgZXJyID0gX3dmb3Blbl9zKCAmZiwgd3N0ckZpbGVuYW1l
LmNfc3RyKCksIEwicmIiICk7CisgICAgICAgaWYgKCBlcnIgIT0gMCApCisgICAgICAgeworICAg
ICAgICAgICAgICBmID0gTlVMTDsKKyAgICAgICB9CisjZW5kaWYKKworICAgICAgIHVpbnQzMl90
IHVuU2l6ZVRvUmV0dXJuID0gMDsKKworICAgICAgIGlmICggZiAhPSBOVUxMICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGZzZWVrKCBmLCAwLCBTRUVLX0VORCApOworICAgICAgICAgICAgICB1
aW50MzJfdCBzaXplID0gKHVpbnQzMl90KWZ0ZWxsKCBmICk7CisgICAgICAgICAgICAgIGZzZWVr
KCBmLCAwLCBTRUVLX1NFVCApOworCisgICAgICAgICAgICAgIGlmICggc2l6ZSA+IHVuU2l6ZSB8
fCAhcEJ1ZmZlciApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHVuU2l6
ZVRvUmV0dXJuID0gKHVpbnQzMl90KXNpemU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIGZyZWFk
KCBwQnVmZmVyLCBzaXplLCAxLCBmICkgPT0gMSApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5TaXplVG9SZXR1cm4gPSAodWludDMyX3Qpc2l6
ZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIGZjbG9zZSggZiApOworICAgICAgIH0KKworICAgICAgIHJldHVybiB1blNpemVUb1JldHVy
bjsKK30KKworYm9vbCBQYXRoX1dyaXRlQmluYXJ5RmlsZShjb25zdCBzdGQ6OnN0cmluZyAmc3Ry
RmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSkKK3sKKyAgICAg
ICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lYICkKKyAgICAgICBmID0gZm9wZW4oc3RyRmls
ZW5hbWUuY19zdHIoKSwgIndiIik7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3RyRmls
ZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVycm5vX3Qg
ZXJyID0gX3dmb3Blbl9zKCAmZiwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwid2IiICk7CisgICAg
ICAgaWYgKGVyciAhPSAwKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7CisgICAg
ICAgfQorI2VuZGlmCisKKyAgICAgICBzaXplX3Qgd3JpdHRlbiA9IDA7CisgICAgICAgaWYgKGYg
IT0gTlVMTCkgeworICAgICAgICAgICAgICB3cml0dGVuID0gZndyaXRlKHBEYXRhLCBzaXplb2Yo
dW5zaWduZWQgY2hhciksIG5TaXplLCBmKTsKKyAgICAgICAgICAgICAgZmNsb3NlKGYpOworICAg
ICAgIH0KKworICAgICAgIHJldHVybiB3cml0dGVuID0gblNpemUgPyB0cnVlIDogZmFsc2U7Cit9
CisKK3N0ZDo6c3RyaW5nIFBhdGhfUmVhZFRleHRGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3Ry
RmlsZW5hbWUgKQoreworICAgICAgIC8vIGRvaW5nIGl0IHRoaXMgd2F5IHNlZW1zIGJhY2t3YXJk
cywgYnV0IEkgZG9uJ3QKKyAgICAgICAvLyBzZWUgYW4gZWFzeSB3YXkgdG8gZG8gdGhpcyB3aXRo
IEMvQysrIHN0eWxlIElPCisgICAgICAgLy8gdGhhdCBpc24ndCB3b3JzZS4uLgorICAgICAgIGlu
dCBzaXplOworICAgICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZiA9IFBhdGhfUmVhZEJpbmFyeUZpbGUo
IHN0ckZpbGVuYW1lLCAmc2l6ZSApOworICAgICAgIGlmICghYnVmKQorICAgICAgICAgICAgICBy
ZXR1cm4gIiI7CisKKyAgICAgICAvLyBjb252ZXJ0IENSTEYgLT4gTEYKKyAgICAgICBzaXplX3Qg
b3V0c2l6ZSA9IDE7CisgICAgICAgZm9yIChpbnQgaT0xOyBpIDwgc2l6ZTsgaSsrKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgaWYgKGJ1ZltpXSA9PSAnXG4nICYmIGJ1ZltpLTFdID09ICdccicp
IC8vIENSTEYKKyAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdXRzaXplLTFdID0gJ1xuJzsgLy8g
LT5MRgorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBidWZbb3V0c2l6
ZSsrXSA9IGJ1ZltpXTsgLy8ganVzdCBjb3B5CisgICAgICAgfQorCisgICAgICAgc3RkOjpzdHJp
bmcgcmV0KChjaGFyICopYnVmLCBvdXRzaXplKTsKKyAgICAgICBkZWxldGVbXSBidWY7CisgICAg
ICAgcmV0dXJuIHJldDsKK30KKworCitib29sIFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBj
b25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaERhdGEgKQorewor
ICAgICAgIEZJTEUgKmY7CisjaWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbigg
c3RyRmlsZW5hbWUuY19zdHIoKSwgInciICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3
c3RyRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVy
cm5vX3QgZXJyID0gX3dmb3Blbl9zKCAmZiwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwidyIgKTsK
KyAgICAgICBpZiAoIGVyciAhPSAwICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGYgPSBOVUxM
OworICAgICAgIH0KKyNlbmRpZgorICAgICAgIAorICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKwor
ICAgICAgIGlmICggZiAhPSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIG9rID0gZnB1
dHMoIHBjaERhdGEsIGYpID49IDA7CisgICAgICAgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICB9
CisKKyAgICAgICByZXR1cm4gb2s7Cit9CisKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZp
bGVBdG9taWMoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNo
RGF0YSApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyVG1wRmlsZW5hbWUgPSBzdHJGaWxlbmFt
ZSArICIudG1wIjsKKworICAgICAgIGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBz
dHJUbXBGaWxlbmFtZSwgcGNoRGF0YSApICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgLy8gUGxhdGZvcm0gc3BlY2lmaWMgYXRvbWljIGZpbGUgcmVwbGFjZW1lbnQKKyNp
ZiBkZWZpbmVkKCBfV0lOMzIgKQorICAgICAgIHN0ZDo6d3N0cmluZyB3c0ZpbGVuYW1lID0gVVRG
OHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICBzdGQ6OndzdHJpbmcgd3NUbXBG
aWxlbmFtZSA9IFVURjh0bzE2KCBzdHJUbXBGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgaWYg
KCAhOjpSZXBsYWNlRmlsZVcoIHdzRmlsZW5hbWUuY19zdHIoKSwgd3NUbXBGaWxlbmFtZS5jX3N0
cigpLCBudWxscHRyLCAwLCAwLCAwICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gaWYg
d2UgY291bGRuJ3QgUmVwbGFjZUZpbGUsIHRyeSBhIG5vbi1hdG9taWMgd3JpdGUgYXMgYSBmYWxs
YmFjaworICAgICAgICAgICAgICBpZiAoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggc3Ry
RmlsZW5hbWUsIHBjaERhdGEgKSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorI2VsaWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGlmICggcmVuYW1lKCBz
dHJUbXBGaWxlbmFtZS5jX3N0cigpLCBzdHJGaWxlbmFtZS5jX3N0cigpICkgPT0gLTEgKQorICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorI2Vycm9yIERvIG5vdCBrbm93IGhvdyB0
byB3cml0ZSBhdG9taWMgZmlsZQorI2VuZGlmCisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKwor
CisjaWYgZGVmaW5lZChXSU4zMikKKyNkZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vLyIK
KyNlbHNlCisjZGVmaW5lIEZJTEVfVVJMX1BSRUZJWCAiZmlsZTovLyIKKyNlbmRpZgorCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBQdXJwb3NlOiBUdXJucyBhIHBhdGggdG8gYSBmaWxlIG9uIGRpc2sgaW50
byBhIFVSTCAob3IganVzdCByZXR1cm5zIHRoZSB2YWx1ZSBpZiBpdCdzIGFscmVhZHkgYSBVUkwp
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBQYXRoX0ZpbGVQYXRoVG9VcmwoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1JlbGF0aXZlUGF0aCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzQmFzZVBhdGgg
KQoreworICAgICAgIGlmICggIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRw
Oi8vIiwgNyApCisgICAgICAgICAgICAgIHx8ICFzdHJuaWNtcCggc1JlbGF0aXZlUGF0aC5jX3N0
cigpLCAiaHR0cHM6Ly8iLCA4ICkKKyAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRp
dmVQYXRoLmNfc3RyKCksICJmaWxlOi8vIiwgNyApICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHJldHVybiBzUmVsYXRpdmVQYXRoOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgewor
ICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzQWJzb2x1dGUgPSBQYXRoX01ha2VBYnNvbHV0ZSgg
c1JlbGF0aXZlUGF0aCwgc0Jhc2VQYXRoICk7CisgICAgICAgICAgICAgIGlmICggc0Fic29sdXRl
LmVtcHR5KCkgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNBYnNvbHV0ZTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBGSUxFX1VSTF9QUkVGSVggKSArIHNBYnNvbHV0
ZTsKKyAgICAgICB9Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBQdXJwb3NlOiBTdHJpcHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCBy
ZXR1cm5zIHRoZSBwYXRoLiBGb3Igb3RoZXIga2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcg
aXMgcmV0dXJuZWQKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitzdGQ6OnN0cmluZyBQYXRoX1VybFRvRmlsZVBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c0ZpbGVVcmwgKQoreworICAgICAgIGlmICggIXN0cm5pY21wKCBzRmlsZVVybC5jX3N0cigpLCBG
SUxFX1VSTF9QUkVGSVgsIHN0cmxlbiggRklMRV9VUkxfUFJFRklYICkgKSApCisgICAgICAgewor
ICAgICAgICAgICAgICByZXR1cm4gc0ZpbGVVcmwuY19zdHIoKSArIHN0cmxlbiggRklMRV9VUkxf
UFJFRklYICk7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAg
IHJldHVybiAiIjsKKyAgICAgICB9Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIHJvb3Qgb2YgdGhl
IGRpcmVjdG9yeSB0aGUgc3lzdGVtIHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgZG9jdW1lbnRzIGlu
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpz
dHJpbmcgR2V0VXNlckRvY3VtZW50c1BhdGgoKQoreworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAg
ICAgICBXQ0hBUiByd2NoUGF0aFtNQVhfUEFUSF07CisKKyAgICAgICBpZiAoICFTVUNDRUVERUQo
IFNIR2V0Rm9sZGVyUGF0aFcoIE5VTEwsIENTSURMX01ZRE9DVU1FTlRTIHwgQ1NJRExfRkxBR19D
UkVBVEUsIE5VTEwsIDAsIHJ3Y2hQYXRoICkgKSApCisgICAgICAgeworICAgICAgICAgICAgICBy
ZXR1cm4gIiI7CisgICAgICAgfQorCisgICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBVVEYt
OCBhbmQgc3RvcmUgaW4gdGhlIG91dHB1dAorICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCA9
IFVURjE2dG84KCByd2NoUGF0aCApOworCisgICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKKyNlbGlm
IGRlZmluZWQoIE9TWCApCisgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICAg
IE5TQXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoIE5T
RG9jdW1lbnREaXJlY3RvcnksIE5TVXNlckRvbWFpbk1hc2ssIFlFUyApOworICAgICAgICAgICAg
ICBpZiAoIFtwYXRocyBjb3VudF0gPT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgcmV0dXJuIFtbcGF0aHMgb2JqZWN0QXRJbmRleDowXSBVVEY4U3RyaW5nXTsK
KyAgICAgICB9CisjZWxpZiBkZWZpbmVkKCBMSU5VWCApCisgICAgICAgLy8gQHRvZG86IG5vdCBz
b2x2ZWQvY2hhbmdlZCBhcyBwYXJ0IG9mIE9TWCAtIHN0aWxsIG5vdCByZWFsIC0ganVzdCByZW1v
dmVkIG9sZCBjbGFzcyBiYXNlZCBzdGVhbSBjdXQgYW5kIHBhc3RlCisgICAgICAgY29uc3QgY2hh
ciAqcGNoSG9tZSA9IGdldGVudiggIkhPTUUiICk7CisgICAgICAgaWYgKCBwY2hIb21lID09IE5V
TEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKyAgICAg
ICByZXR1cm4gcGNoSG9tZTsKKyNlbmRpZgorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI5NTdjNjRkNzM3YThjMTE2MDRmYTU4NmE0MjJhYzA4MTIyY2E1NTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJs
aWMuaApAQCAtMCwwICsxLDEzMiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBv
cmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4K
KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBm
aWxlbmFtZSkgdG8gdGhlIGN1cnJlbnQgZXhlY3V0YWJsZSAqLworc3RkOjpzdHJpbmcgUGF0aF9H
ZXRFeGVjdXRhYmxlUGF0aCgpOworCisvKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0
b3J5KCk7CisKKy8qKiBTZXRzIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0
b3J5LiBSZXR1cm5zIHRydWUgaWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KK2Jvb2wgUGF0aF9T
ZXRXb3JraW5nRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBy
ZXR1cm5zIHRoZSBwYXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIG9mIHRoZSBjdXJyZW50IHNoYXJl
ZCBsaWIgb3IgRExMICovCitzdGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCk7CisK
Ky8qKiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZS4KKyog
SWYgc2xhc2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUg
Y3VycmVudCBwbGF0Zm9ybQorKiB3aWxsIGJlIHVzZWQuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0
cmlwRmlsZW5hbWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7
CisKKy8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwg
b3IgcmVsYXRpdmUgcGF0aC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5z
IGp1c3QgdGhlIGZpbGVuYW1lIHdpdGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxl
bmFtZS4gCisqIElmIHRoZXJlIGlzIGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGludGFjdC4gKi8K
K3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGggKTsKKworLyoqIHJldHVybnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVu
YW1lIChpZiBhbnkpLiAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBh
YnNvbHV0ZSAqLworYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGggKTsKKworLyoqIE1ha2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGgg
YW5kIGEgYmFzZSBwYXRoICovCitzdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0
aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9y
cyBmb3IgdGhlIGN1cnJlbnQgcGxhdGZvcm0uCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRo
ZSBuYXRpdmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBi
ZSB1c2VkLiAqLworc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNQYXRoLCBjaGFyIHNsYXNoID0gMCApOworCisvKiogUmV0dXJucyB0aGUgcGF0aCBzZXBh
cmF0b3IgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtICovCitjaGFyIFBhdGhfR2V0U2xhc2goKTsK
KworLyoqIEphbXMgdHdvIHBhdGhzIHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xh
c2ggKi8KK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6OnN0cmlu
ZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgc2Vjb25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoID0gMCApOwor
c3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3Rk
OjpzdHJpbmcgJmZvdXJ0aCwgY2hhciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfSm9p
biggCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgCisgICAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzZWNvbmQsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAor
ICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZm91cnRoLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyAmIGZpZnRoLCAKKyAgICAgICBjaGFyIHNsYXNoID0gMCApOworCisKKy8qKiBSZW1vdmVz
IHJlZHVuZGFudCA8ZGlyPi8uLiBlbGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0
eSBwYXRoIGlmIHRoZSAKKyogc3BlY2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBk
aXJlY3RvcmllcyBmb3IgaXRzIG51bWJlciBvZiAuLnMuCisqIElmIHNsYXNoIGlzIHVuc3BlY2lm
aWVkIHRoZSBuYXRpdmUgcGF0aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyog
d2lsbCBiZSB1c2VkLiAqLworc3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOworCisvLyoqIFJlbW92ZWQgdHJhaWxp
bmcgc2xhc2hlcyAqLworc3RkOjpzdHJpbmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOworCisvKiogcmV0dXJu
cyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICov
Citib29sIFBhdGhfSXNEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKwor
LyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBhbiBhcHAg
YnVuZGxlICovCitib29sIFBhdGhfSXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Bh
dGggKTsKKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzICovCitib29s
IFBhdGhfRXhpc3RzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBIZWxwZXIg
ZnVuY3Rpb25zIHRvIGZpbmQgcGFyZW50IGRpcmVjdG9yaWVzIG9yIHN1YmRpcmVjdG9yaWVzIG9m
IHBhcmVudCBkaXJlY3RvcmllcyAqLworc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0
b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29u
c3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfRmlu
ZFBhcmVudFN1YkRpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3Rh
cnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7CisKKy8q
KiBQYXRoIG9wZXJhdGlvbnMgdG8gcmVhZCBvciB3cml0ZSB0ZXh0L2JpbmFyeSBmaWxlcyAqLwor
dW5zaWduZWQgY2hhciAqIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZz
dHJGaWxlbmFtZSwgaW50ICpwU2l6ZSApOwordWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUo
IGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwg
dWludDMyX3QgdW5TaXplICk7Citib29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKCBjb25zdCBzdGQ6
OnN0cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6
ZSApOworc3RkOjpzdHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZz
dHJGaWxlbmFtZSApOworYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7Citib29sIFBhdGhf
V3JpdGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5h
bWUsIGNvbnN0IGNoYXIgKnBjaERhdGEgKTsKKworLyoqIFJldHVybnMgYSBmaWxlOi8vIHVybCBm
b3IgcGF0aHMsIG9yIGFuIGh0dHAgb3IgaHR0cHMgdXJsIGlmIHRoYXQncyB3aGF0IHdhcyBwcm92
aWRlZCAqLworc3RkOjpzdHJpbmcgUGF0aF9GaWxlUGF0aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNSZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoICk7CisKKy8q
KiBTdHJpcHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Ig
b3RoZXIga2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgKi8KK3N0ZDo6
c3RyaW5nIFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCAp
OworCisvKiogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2Fu
dHMgdXMgdG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4gKi8KK3N0ZDo6c3RyaW5nIEdldFVzZXJE
b2N1bWVudHNQYXRoKCk7CisKKyNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSAorICAgICAgICNkZWZp
bmUgTUFYX1VOSUNPREVfUEFUSCAzMjc2NworI2VuZGlmCisKKyNpZm5kZWYgTUFYX1VOSUNPREVf
UEFUSF9JTl9VVEY4CisgICAgICAgI2RlZmluZSBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggKE1B
WF9VTklDT0RFX1BBVEggKiA0KQorI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNp
ZiBkZWZpbmVkKFdJTjMyKQorI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5kbGwiCisj
ZGVmaW5lIFBST0dSQU1fRVhUICIuZXhlIgorI2lmZGVmIF9XSU42NAorI2RlZmluZSBQTEFUU1VC
RElSICAgICAgICJ3aW42NCIKKyNlbHNlCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjMy
IgorI2VuZGlmCisjZWxpZiBkZWZpbmVkKE9TWCkKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAg
ICAgICIuZHlsaWIiCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIm9zeDMyIgorI2RlZmluZSBQ
Uk9HUkFNX0VYVCAiIgorI2VsaWYgZGVmaW5lZChMSU5VWCkKKyNkZWZpbmUgRFlOQU1JQ19MSUJf
RVhUICAgICAgICIuc28iCisjZGVmaW5lIFBST0dSQU1fRVhUICIiCisjaWYgZGVmaW5lZCggTElO
VVgzMiApCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgImxpbnV4MzIiCisjZWxzZQorI2RlZmlu
ZSBQTEFUU1VCRElSICAgICAgICJsaW51eDY0IgorI2VuZGlmCisjZWxzZQorI3dhcm5pbmcgIlVu
a25vd24gcGxhdGZvcm0gZm9yIFBMQVRTVUJESVIiCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAg
InVua25vd25fcGxhdGZvcm0iCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40OGVlYzI2MDQ1OWM1MWVlYzU2OWEyY2E1YjEwMjlhNTljOWJhY2Q4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFy
ZWRsaWJ0b29sc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8vPT09PT09PT09IENvcHly
aWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgInNoYXJlZGxp
YnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgZGVmaW5lZChfV0lO
MzIpCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBPU0lYKQor
I2luY2x1ZGUgPGRsZmNuLmg+CisjZW5kaWYKKworU2hhcmVkTGliSGFuZGxlIFNoYXJlZExpYl9M
b2FkKCBjb25zdCBjaGFyICpwY2hQYXRoICkKK3sKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAg
ICAgcmV0dXJuIChTaGFyZWRMaWJIYW5kbGUpTG9hZExpYnJhcnlFeCggcGNoUGF0aCwgTlVMTCwg
TE9BRF9XSVRIX0FMVEVSRURfU0VBUkNIX1BBVEggKTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisg
ICAgICAgcmV0dXJuIChTaGFyZWRMaWJIYW5kbGUpZGxvcGVuKHBjaFBhdGgsIFJUTERfTE9DQUx8
UlRMRF9OT1cpOworI2VuZGlmCit9CisKK3ZvaWQgKlNoYXJlZExpYl9HZXRGdW5jdGlvbiggU2hh
cmVkTGliSGFuZGxlIGxpYiwgY29uc3QgY2hhciAqcGNoRnVuY3Rpb25OYW1lKQoreworI2lmIGRl
ZmluZWQoIF9XSU4zMikKKyAgICAgICByZXR1cm4gKHZvaWQqKUdldFByb2NBZGRyZXNzKCAoSE1P
RFVMRSlsaWIsIHBjaEZ1bmN0aW9uTmFtZSApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAg
ICByZXR1cm4gZGxzeW0oIGxpYiwgcGNoRnVuY3Rpb25OYW1lICk7CisjZW5kaWYKK30KKworCit2
b2lkIFNoYXJlZExpYl9VbmxvYWQoIFNoYXJlZExpYkhhbmRsZSBsaWIgKQoreworICAgICAgIGlm
ICggIWxpYiApCisgICAgICAgICAgICAgIHJldHVybjsKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisg
ICAgICAgRnJlZUxpYnJhcnkoIChITU9EVUxFKWxpYiApOworI2VsaWYgZGVmaW5lZChQT1NJWCkK
KyAgICAgICBkbGNsb3NlKCBsaWIgKTsKKyNlbmRpZgorfQorCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1
YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEwMTYzZGJmYWIyYmU4MzYyZjgzYmMyMDkzYzI0MjE0YjI0N2Zi
YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTAgQEAKKy8vPT09PT09PT09
IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNl
CisKK3R5cGVkZWYgdm9pZCAqU2hhcmVkTGliSGFuZGxlOworCitTaGFyZWRMaWJIYW5kbGUgU2hh
cmVkTGliX0xvYWQoIGNvbnN0IGNoYXIgKnBjaFBhdGggKTsKK3ZvaWQgKlNoYXJlZExpYl9HZXRG
dW5jdGlvbiggU2hhcmVkTGliSGFuZGxlIGxpYiwgY29uc3QgY2hhciAqcGNoRnVuY3Rpb25OYW1l
KTsKK3ZvaWQgU2hhcmVkTGliX1VubG9hZCggU2hhcmVkTGliSGFuZGxlIGxpYiApOworCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9v
bHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjkzNzBiMmNkMWI4YzVhYTRmZDcxMDI5NjJhOWQ0
YWJlOGY4ZGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsNDM3IEBACisvLz09PT09
PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRl
ICJzdHJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRp
by5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQ
dXJwb3NlOgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBTdHJpbmdIYXNQcmVmaXgoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICkK
K3sKKyAgICAgICByZXR1cm4gMCA9PSBzdHJuaWNtcCggc1N0cmluZy5jX3N0cigpLCBzUHJlZml4
LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKK30KKworYm9vbCBTdHJpbmdIYXNQcmVmaXhD
YXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1ByZWZpeCApCit7CisgICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0cmluZy5j
X3N0cigpLCBzUHJlZml4LmNfc3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKK30KKworCitib29s
IFN0cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6
c3RyaW5nICZzU3VmZml4ICkKK3sKKyAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVu
Z3RoKCk7CisgICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgpOworCisg
ICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCisgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0
ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4gKTsKKworICAgICAgIHJldHVybiAw
ID09IHN0cmljbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigpICk7Cit9
CisKK2Jvb2wgU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcg
JnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkKK3sKKyAgICAgICBzaXplX3Qg
Y1N0ckxlbiA9IHNTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBz
U3VmZml4Lmxlbmd0aCgpOworCisgICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCisg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdT
dWZmaXggPSBzU3RyaW5nLnN1YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4g
KTsKKworICAgICAgIHJldHVybiAwID09IHN0cm5jbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwg
c1N1ZmZpeC5jX3N0cigpLGNTdWZmaXhMZW4gKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gUHVycG9zZToKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFVURjE2
dG84KGNvbnN0IHdjaGFyX3QgKiBpbikKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBvdXQ7CisgICAg
ICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7CisgICAgICAgZm9yICggOyBpbiAmJiAqaW4g
IT0gMDsgKytpbiApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoKmluID49IDB4ZDgwMCAm
JiAqaW4gPD0gMHhkYmZmKQorICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gKCgqaW4g
LSAweGQ4MDApIDw8IDEwKSArIDB4MTAwMDA7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCppbiA+PSAweGRjMDAgJiYgKmluIDw9
IDB4ZGZmZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgfD0gKmluIC0g
MHhkYzAwOworICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvZGVwb2ludCA9ICppbjsKKworICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVw
b2ludCA8PSAweDdmKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8Y2hhcj4oY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgICBlbHNl
IGlmIChjb2RlcG9pbnQgPD0gMHg3ZmYpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweGMw
IHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDFmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAw
eDNmKSkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoY29kZXBvaW50IDw9IDB4ZmZmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4
ZTAgfCAoKGNvZGVwb2ludCA+PiAxMikgJiAweDBmKSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50
ID4+IDYpICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5k
KDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpKTsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0
YXRpY19jYXN0PGNoYXI+KDB4ZjAgfCAoKGNvZGVwb2ludCA+PiAxOCkgJiAweDA3KSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4o
MHg4MCB8ICgoY29kZXBvaW50ID4+IDEyKSAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChjb2RlcG9p
bnQgPj4gNikgJiAweDNmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBl
bmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gMDsK
KyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICByZXR1cm4gb3V0OworfQorCitzdGQ6
OndzdHJpbmcgVVRGOHRvMTYoY29uc3QgY2hhciAqIGluKQoreworICAgICAgIHN0ZDo6d3N0cmlu
ZyBvdXQ7CisgICAgICAgdW5zaWduZWQgaW50IGNvZGVwb2ludCA9IDA7CisgICAgICAgaW50IGZv
bGxvd2luZyA9IDA7CisgICAgICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiApCisgICAg
ICAgeworICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gKmluOworICAgICAgICAgICAg
ICBpZiAoY2ggPD0gMHg3ZikKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
Y29kZXBvaW50ID0gY2g7CisgICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAwOworICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4YmYpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPiAwKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9
IChjb2RlcG9pbnQgPDwgNikgfCAoY2ggJiAweDNmKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLWZvbGxvd2luZzsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8PSAweGRmKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MWY7CisgICAgICAgICAgICAg
ICAgICAgICBmb2xsb3dpbmcgPSAxOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVs
c2UgaWYgKGNoIDw9IDB4ZWYpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IGNvZGVwb2ludCA9IGNoICYgMHgwZjsKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyA9
IDI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MDc7CisgICAgICAgICAg
ICAgICAgICAgICBmb2xsb3dpbmcgPSAzOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGlmIChmb2xsb3dpbmcgPT0gMCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNvZGVwb2ludCA+IDB4ZmZmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdjaGFyX3Q+
KDB4ZDgwMCArIChjb2RlcG9pbnQgPj4gMTApKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDx3Y2hhcl90PigweGRjMDAgKyAoY29kZXBvaW50
ICYgMHgwM2ZmKSkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGlj
X2Nhc3Q8d2NoYXJfdD4oY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9p
bnQgPSAwOworICAgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBvdXQ7Cit9
CisKKwordm9pZCBzdHJjcHlfc2FmZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJT
aXplQnl0ZXMsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSApCit7CisgICAgICAgcGNoQnVmZmVyWyB1
bkJ1ZmZlclNpemVCeXRlcyAtIDEgXSA9ICdcMCc7CisgICAgICAgc3RybmNweSggcGNoQnVmZmVy
LCBwY2hTb3VyY2UsIHVuQnVmZmVyU2l6ZUJ5dGVzIC0gMSApOworfQorCisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLyBQdXJwb3NlOiBjb252ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorc3RkOjpzdHJpbmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
U3RyaW5nICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzT3V0OworICAgICAgIHNPdXQucmVzZXJ2
ZSggc1N0cmluZy5zaXplKCkgKyAxICk7CisgICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3Rf
aXRlcmF0b3IgaSA9IHNTdHJpbmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBpKysgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvdXBwZXIoICpp
ICkgKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc091dDsKK30KKworCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8gUHVycG9zZTogY29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1N0cmluZyApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc091dDsKKyAgICAgICBzT3V0LnJlc2Vy
dmUoIHNTdHJpbmcuc2l6ZSgpICsgMSApOworICAgICAgIGZvciggc3RkOjpzdHJpbmc6OmNvbnN0
X2l0ZXJhdG9yIGkgPSBzU3RyaW5nLmJlZ2luKCk7IGkgIT0gc1N0cmluZy5lbmQoKTsgaSsrICkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHNPdXQucHVzaF9iYWNrKCAoY2hhcil0b2xvd2VyKCAq
aSApICk7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNPdXQ7Cit9CisKKwordWludDMyX3Qg
UmV0dXJuU3RkU3RyaW5nKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAqcGNoQnVm
ZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApCit7CisgICAgICAgdWludDMyX3QgdW5MZW4gPSAo
dWludDMyX3Qpc1ZhbHVlLmxlbmd0aCgpICsgMTsKKyAgICAgICBpZiggIXBjaEJ1ZmZlciB8fCAh
dW5CdWZmZXJMZW4gKQorICAgICAgICAgICAgICByZXR1cm4gdW5MZW47CisKKyAgICAgICBpZigg
dW5CdWZmZXJMZW4gPCB1bkxlbiApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hCdWZmZXJb
MF0gPSAnXDAnOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAg
ICBtZW1jcHkoIHBjaEJ1ZmZlciwgc1ZhbHVlLmNfc3RyKCksIHVuTGVuICk7CisgICAgICAgfQor
CisgICAgICAgcmV0dXJuIHVuTGVuOworfQorCit2b2lkIEJ1ZmZlclRvU3RkU3RyaW5nKCBzdGQ6
OnN0cmluZyAmIHNEZXN0LCBjb25zdCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVy
TGVuICkKK3sKKyAgICAgICBzRGVzdC5yZXNpemUoIHVuQnVmZmVyTGVuICsgMSApOworICAgICAg
IG1lbWNweSggY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApLCBwY2hCdWZmZXIs
IHVuQnVmZmVyTGVuICk7CisgICAgICAgY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIo
KSApWyB1bkJ1ZmZlckxlbiBdID0gJ1wwJzsKK30KKworLyoqIFJldHVybnMgYSBzdGQ6OnN0cmlu
ZyBmcm9tIGEgdWludDY0X3QgKi8KK3N0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5nKCB1aW50NjRf
dCB1bFZhbHVlICkKK3sKKyAgICAgICBjaGFyIGJ1ZlsgMjIgXTsKKyNpZiBkZWZpbmVkKCBfV0lO
MzIgKQorICAgICAgIHNwcmludGZfcyggYnVmLCAiJWxsdSIsIHVsVmFsdWUgKTsKKyNlbHNlCisg
ICAgc25wcmludGYoIGJ1Ziwgc2l6ZW9mKCBidWYgKSwgIiVsbHUiLCAobG9uZyBsb25nIHVuc2ln
bmVkIGludCApIHVsVmFsdWUgKTsKKyNlbmRpZgorICAgICAgIHJldHVybiBidWY7Cit9CisKKwor
LyoqIHJldHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCit1aW50NjRfdCBTdHJpbmdU
b1VpbnQ2NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKQoreworICAgICAgIHJldHVybiBz
dHJ0b3VsbCggc1ZhbHVlLmNfc3RyKCksIE5VTEwsIDAgKTsKK30KKworLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgbnVtZXJpYyB2YWx1
ZSB0byBhIGhleCBkaWdpdCwgdmFsdWUgc2hvdWxkIGJlIDAtMTUuCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitjaGFyIGNJbnRUb0hleERpZ2l0KCBpbnQgblZhbHVlICkKK3sKKyAgICAgICAvL0Fz
c2VydCggblZhbHVlID49IDAgJiYgblZhbHVlIDw9IDE1ICk7CisgICAgICAgcmV0dXJuICIwMTIz
NDU2Nzg5QUJDREVGIlsgblZhbHVlICYgMTUgXTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gUHVycG9zZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgaGV4IGNoYXIgdmFsdWUgdG8g
bnVtZXJpYywgcmV0dXJuIC0xIGlmIHRoZSBjaGFyCisvLyAgICAgICAgICBpcyBub3QgYSB2YWxp
ZCBoZXggZGlnaXQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitpbnQgaUhleENoYXJUb0ludCgg
Y2hhciBjVmFsdWUgKQoreworICAgICAgIGludDMyX3QgaVZhbHVlID0gY1ZhbHVlOworICAgICAg
IGlmICggKHVpbnQzMl90KSggaVZhbHVlIC0gJzAnICkgPCAxMCApCisgICAgICAgICAgICAgIHJl
dHVybiBpVmFsdWUgLSAnMCc7CisKKyAgICAgICBpVmFsdWUgfD0gMHgyMDsKKyAgICAgICBpZiAo
ICh1aW50MzJfdCkoIGlWYWx1ZSAtICdhJyApIDwgNiApCisgICAgICAgICAgICAgIHJldHVybiBp
VmFsdWUgLSAnYScgKyAxMDsKKworICAgICAgIHJldHVybiAtMTsKK30KKworLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorLy8gUHVycG9zZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgZW5jb2Rl
LCB3b3JrcyBpbiB0aGUgc3RyaWN0IFJGQyBtYW5uZXIsIG9yCisvLyAgICAgICAgICB3aXRoIHNw
YWNlcyB0dXJuZWQgdG8gKyBsaWtlIEhUTUwgZm9ybSBlbmNvZGluZy4KKy8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK3ZvaWQgVl9VUkxFbmNvZGVJbnRlcm5hbCggY2hhciAqcGNoRGVzdCwgaW50IG5E
ZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuLCBib29sIGJVc2VQ
bHVzRm9yU3BhY2UgKQoreworICAgICAgIC8vQXNzZXJ0TXNnKCBuRGVzdExlbiA+IDMqblNvdXJj
ZUxlbiwgIlRhcmdldCBidWZmZXIgZm9yIFZfVVJMRW5jb2RlIHNob3VsZCBiZSAzeCBzb3VyY2Ug
bGVuZ3RoLCBwbHVzIG9uZSBmb3IgdGVybWluYXRpbmcgbnVsbFxuIiApOworICAgICAgIAorICAg
ICAgIGludCBpRGVzdFBvcyA9IDA7CisgICAgICAgZm9yICggaW50IGk9MDsgaSA8IG5Tb3VyY2VM
ZW47ICsraSApCisgICAgICAgeworICAgICAgICAgICAgICAvLyB3b3JzdCBjYXNlIHdlIG5lZWQg
MyBhZGRpdGlvbmFsIGNoYXJzCisgICAgICAgICAgICAgIGlmKCAoaURlc3RQb3MrMykgPiBuRGVz
dExlbiAgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0WzBd
ID0gJ1wwJzsKKy8vICAgICAgICAgICAgICAgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwgIlRhcmdl
dCBidWZmZXIgdG9vIHNob3J0XG4iICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmx5IGEteiwgQS1a
LCAwLTksIHBlcmlvZCwgdW5kZXJzY29yZSwgYW5kIGh5cGhlbiB0byBwYXNzIHRocm91Z2ggdW5l
c2NhcGVkLgorICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMgYWxsb3dl
ZCBieSBib3RoIHRoZSBvcmlnaW5hbCBSRkMgMTczOCBhbmQgdGhlIGxhdGVzdCBSRkMgMzk4Ni4K
KyAgICAgICAgICAgICAgLy8gQ3VycmVudCBzcGVjcyBhbHNvIGFsbG93ICd+JywgYnV0IHRoYXQg
aXMgZm9yYmlkZGVuIHVuZGVyIG9yaWdpbmFsIFJGQyAxNzM4LgorICAgICAgICAgICAgICBpZiAo
ICEoIHBjaFNvdXJjZVtpXSA+PSAnYScgJiYgcGNoU291cmNlW2ldIDw9ICd6JyApICYmICEoIHBj
aFNvdXJjZVtpXSA+PSAnQScgJiYgcGNoU291cmNlW2ldIDw9ICdaJyApICYmICEocGNoU291cmNl
W2ldID49ICcwJyAmJiBwY2hTb3VyY2VbaV0gPD0gJzknICkKKyAgICAgICAgICAgICAgICAgICAg
ICAmJiBwY2hTb3VyY2VbaV0gIT0gJy0nICYmIHBjaFNvdXJjZVtpXSAhPSAnXycgJiYgcGNoU291
cmNlW2ldICE9ICcuJyAgICAgICAKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBpZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoU291cmNlW2ld
ID09ICcgJyApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcrJzsKKyAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJyUnOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaVZhbHVlID0gcGNoU291cmNlW2ldOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlID09IDAgKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNo
RGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9ICcwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjSGV4
RGlnaXQxID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSAlIDE2ICk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAvPSAxNjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQyID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0g
Y0hleERpZ2l0MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtp
RGVzdFBvcysrXSA9IGNIZXhEaWdpdDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBv
cysrXSA9IHBjaFNvdXJjZVtpXTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAg
IGlmKCAoaURlc3RQb3MrMSkgPiBuRGVzdExlbiApCisgICAgICAgeworICAgICAgICAgICAgICBw
Y2hEZXN0WzBdID0gJ1wwJzsKKyAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVGFy
Z2V0IGJ1ZmZlciB0b28gc2hvcnQgdG8gdGVybWluYXRlXG4iICk7CisgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICB9CisKKyAgICAgICAvLyBOdWxsIHRlcm1pbmF0ZQorICAgICAgIHBjaERl
c3RbaURlc3RQb3MrK10gPSAwOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1
cnBvc2U6IEludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGRlY29kZSwgd29ya3MgaW4gdGhlIHN0
cmljdCBSRkMgbWFubmVyLCBvcgorLy8gICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVkIHRvICsg
bGlrZSBIVE1MIGZvcm0gZW5jb2RpbmcuCisvLworLy8gICAgICAgICAgICAgICAgICAgICBSZXR1
cm5zIHRoZSBhbW91bnQgb2Ygc3BhY2UgdXNlZCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4KKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK3NpemVfdCBWX1VSTERlY29kZUludGVybmFsKCBjaGFyICpwY2hE
ZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3Vy
Y2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkKK3sKKyAg
ICAgICBpZiAoIG5EZWNvZGVEZXN0TGVuIDwgbkVuY29kZWRTb3VyY2VMZW4gKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVl9VUkxEZWNvZGUgbmVlZHMgYSBk
ZXN0IGJ1ZmZlciBhdCBsZWFzdCBhcyBsYXJnZSBhcyB0aGUgc291cmNlIiApOworICAgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICB9CisKKyAgICAgICBpbnQgaURlc3RQb3MgPSAwOworICAg
ICAgIGZvciggaW50IGk9MDsgaSA8IG5FbmNvZGVkU291cmNlTGVuOyArK2kgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgaWYgKCBiVXNlUGx1c0ZvclNwYWNlICYmIHBjaEVuY29kZWRTb3VyY2Vb
aV0gPT0gJysnICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcGNoRGVj
b2RlRGVzdFsgaURlc3RQb3MrKyBdID0gJyAnOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGVsc2UgaWYgKCBwY2hFbmNvZGVkU291cmNlW2ldID09ICclJyApCisgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmNlbnQgc2lnbmlmaWVzIGFuIGVuY29kZWQg
dmFsdWUsIGxvb2sgYWhlYWQgZm9yIHRoZSBoZXggY29kZSwgY29udmVydCB0byBudW1lcmljLCBh
bmQgdXNlIHRoYXQKKworICAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIHdl
IGhhdmUgMiBtb3JlIGNoYXJzCisgICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCBuRW5jb2Rl
ZFNvdXJjZUxlbiAtIDIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MSA9IHBjaEVuY29kZWRTb3VyY2VbaSsxXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDIgPSBwY2hFbmNvZGVkU291
cmNlW2krMl07CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUdXJuIHRoZSBjaGFy
cyBpbnRvIGEgaGV4IHZhbHVlLCBpZiB0aGV5IGFyZSBub3QgdmFsaWQsIHRoZW4gd2UnbGwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IHBsYWNlIHRoZSAlIGFuZCB0aGUgZm9s
bG93aW5nIHR3byBjaGFycyBkaXJlY3QgaW50byB0aGUgc3RyaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoaXMgcmVhbGx5IHNob3VsZG4ndCBoYXBwZW4s
IHdobyBrbm93cyB3aGF0IGJhZCBjbGllbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gbWF5IGRvIHdpdGggZW5jb2RpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBiVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaVZhbHVl
ID0gaUhleENoYXJUb0ludCggY0hleERpZ2l0MSApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICggaVZhbHVlICE9IC0xICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSAqPSAxNjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlWYWx1ZTIgPSBpSGV4Q2hhclRvSW50KCBj
SGV4RGlnaXQyICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZh
bHVlMiAhPSAtMSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlWYWx1ZSArPSBpVmFsdWUyOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsg
aURlc3RQb3MrKyBdID0gKGNoYXIpaVZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYlZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICggIWJWYWxpZCApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBp
RGVzdFBvcysrIF0gPSAnJSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBj
aERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdpdDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdp
dDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGFoZWFkCisgICAgICAgICAgICAgICAg
ICAgICBpICs9IDI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysr
IF0gPSBwY2hFbmNvZGVkU291cmNlW2ldOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisg
ICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGV4dHJhIHJvb20gdG8gTlVMTCB0ZXJtaW5hdGUsIHNp
bmNlIHRoaXMgY2FuIGJlIHVzZWQgb24gcmF3IGRhdGEsIGJ1dCBpZiB3ZSBkbworICAgICAgIC8v
IGdvIGFoZWFkIGFuZCBkbyBpdCBhcyB0aGlzIGNhbiBhdm9pZCBidWdzLgorICAgICAgIGlmICgg
aURlc3RQb3MgPCBuRGVjb2RlRGVzdExlbiApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hE
ZWNvZGVEZXN0W2lEZXN0UG9zXSA9IDA7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIChzaXpl
X3QpaURlc3RQb3M7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEVu
Y29kZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQs
IHNlZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2Yg
dGhlIGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZv
ciBzcGFjZSBhcyBpcworLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNv
ZGluZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAg
ICAgIERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVm
ZmVyIHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Cit2b2lkIFZfVVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNo
YXIgKnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4gKQoreworICAgICAgIHJldHVybiBWX1VSTEVu
Y29kZUludGVybmFsKCBwY2hEZXN0LCBuRGVzdExlbiwgcGNoU291cmNlLCBuU291cmNlTGVuLCB0
cnVlICk7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogRGVjb2Rl
cyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1hdCwgc2Vl
IHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKKy8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUg
Y2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNw
YWNlIGFzIGlzCisvLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVuY29kaW5n
LCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCisvLworLy8gICAgICAgICAg
RGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBidWZmZXIg
dG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KKy8vICAgICAgICAgICAgICAgICAgICAgRGVz
dCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIgKGRlY29kZSBpbi1w
bGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc2l6
ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4s
IGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiApCit7
CisgICAgICAgcmV0dXJuIFZfVVJMRGVjb2RlSW50ZXJuYWwoIHBjaERlY29kZURlc3QsIG5EZWNv
ZGVEZXN0TGVuLCBwY2hFbmNvZGVkU291cmNlLCBuRW5jb2RlZFNvdXJjZUxlbiwgdHJ1ZSApOwor
fQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfU3RyaXBFeHRlbnNpb24oIHN0ZDo6
c3RyaW5nICZpbiApCit7CisgICAgICAgLy8gRmluZCB0aGUgbGFzdCBkb3QuIElmIGl0J3MgZm9s
bG93ZWQgYnkgYSBkb3Qgb3IgYSBzbGFzaCwgdGhlbiBpdCdzIHBhcnQgb2YgYSAKKyAgICAgICAv
LyBkaXJlY3Rvcnkgc3BlY2lmaWVyIGxpa2UgLi4vLi4vc29tZWRpci8uL2JsYWguCisgICAgICAg
c3RkOjpzdHJpbmc6OnNpemVfdHlwZSB0ZXN0ID0gaW4ucmZpbmQoICcuJyApOworICAgICAgIGlm
ICggdGVzdCAhPSBzdGQ6OnN0cmluZzo6bnBvcyApCisgICAgICAgeworICAgICAgICAgICAgICAv
LyBUaGlzIGhhbmRsZXMgdGhpbmdzIGxpa2UgIi5cYmxhaCIgb3IgImM6XG15QGVtYWlsLmNvbVxh
YmNcZGVmXGdlaCIKKyAgICAgICAgICAgICAgLy8gV2hpY2ggd291bGQgb3RoZXJ3aXNlIHdpbmQg
dXAgd2l0aCAiIiBhbmQgImM6XG15QGVtYWlsIiwgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgICAg
ICBpZiAoIGluLnJmaW5kKCAnXFwnICkgPCB0ZXN0ICYmIGluLnJmaW5kKCAnLycgKSA8IHRlc3Qg
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpbi5yZXNpemUoIHRlc3Qg
KTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDA2M2U1NGEyOGM3MzRiNzdmOTJmNzc4MzQ2YTNhNmE4NWM2NGYzNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVi
bGljLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jw
b3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxzdHJpbmc+
CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKy8qKiByZXR1
cm5zIHRydWUgaWYgdGhlIHN0cmluZyBoYXMgdGhlIHByZWZpeCAqLworYm9vbCBTdHJpbmdIYXNQ
cmVmaXgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UHJlZml4ICk7Citib29sIFN0cmluZ0hhc1ByZWZpeENhc2VTZW5zaXRpdmUoIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICk7CisKKy8qKiBy
ZXR1cm5zIGlmIHRoZSBzdHJpbmcgaGFzIHRoZSBzdWZmaXggKi8KK2Jvb2wgU3RyaW5nSGFzU3Vm
Zml4KCBjb25zdCBzdGQ6OnN0cmluZyAmc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJnNTdWZm
aXggKTsKK2Jvb2wgU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJp
bmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICk7CisKKy8qKiBjb252ZXJ0
cyBhIFVURi0xNiBzdHJpbmcgdG8gYSBVVEYtOCBzdHJpbmcgKi8KK3N0ZDo6c3RyaW5nIFVURjE2
dG84KGNvbnN0IHdjaGFyX3QgKiBpbik7CisKKy8qKiBjb252ZXJ0cyBhIFVURi04IHN0cmluZyB0
byBhIFVURi0xNiBzdHJpbmcgKi8KK3N0ZDo6d3N0cmluZyBVVEY4dG8xNihjb25zdCBjaGFyICog
aW4pOworI2RlZmluZSBVdGYxNkZyb21VdGY4IFVURjh0bzE2CisKKy8qKiBzYWZlbHkgY29weSBh
IHN0cmluZyBpbnRvIGEgYnVmZmVyICovCit2b2lkIHN0cmNweV9zYWZlKCBjaGFyICpwY2hCdWZm
ZXIsIHNpemVfdCB1bkJ1ZmZlclNpemVCeXRlcywgY29uc3QgY2hhciAqcGNoU291cmNlICk7Cit0
ZW1wbGF0ZTwgc2l6ZV90IGJ1ZmZlclNpemUgPgordm9pZCBzdHJjcHlfc2FmZSggY2hhciAoJiBi
dWZmZXIpIFsgYnVmZmVyU2l6ZSBdLCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKSAKK3sKKyAgICAg
ICBzdHJjcHlfc2FmZSggYnVmZmVyLCBidWZmZXJTaXplLCBwY2hTb3VyY2UgKTsKK30KKworCisv
KiogY29udmVydHMgYSBzdHJpbmcgdG8gdXBwZXIgY2FzZSAqLworc3RkOjpzdHJpbmcgU3RyaW5n
VG9VcHBlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICk7CisKKy8qKiBjb252ZXJ0cyBh
IHN0cmluZyB0byBsb3dlciBjYXNlICovCitzdGQ6OnN0cmluZyBTdHJpbmdUb0xvd2VyKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcgKTsKKworLy8gd2Ugc3RyaWNtcCAoZnJvbSBXSU4pIGJ1
dCBpdCBpc24ndCBQT1NJWCAtIE9TWC9MSU5VWCBoYXZlIHN0cmNhc2VjbXAgc28ganVzdCBpbmxp
bmUgYnJpZGdlIHRvIGl0CisjaWYgZGVmaW5lZCggT1NYICkgfHwgZGVmaW5lZCggTElOVVggKQor
I2luY2x1ZGUgPHN0cmluZ3MuaD4KK2lubGluZSBpbnQgc3RyaWNtcChjb25zdCBjaGFyICpwU3Ry
MSwgY29uc3QgY2hhciAqcFN0cjIpIHsgcmV0dXJuIHN0cmNhc2VjbXAocFN0cjEscFN0cjIpOyB9
CisjZGVmaW5lIF9zdHJpY21wIHN0cmljbXAKK2lubGluZSBpbnQgc3RybmljbXAoIGNvbnN0IGNo
YXIgKnBTdHIxLCBjb25zdCBjaGFyICpwU3RyMiwgc2l6ZV90IHVuQnVmZmVyTGVuICkgeyByZXR1
cm4gc3RybmNhc2VjbXAoIHBTdHIxLHBTdHIyLCB1bkJ1ZmZlckxlbiApOyB9CisjZGVmaW5lIF9z
dHJuaWNtcCBzdHJuaWNtcAorCisjZGVmaW5lIF92c25wcmludGZfcyB2c25wcmludGYKKworI2Rl
ZmluZSBfVFJVTkNBVEUgKChzaXplX3QpLTEpCisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggT1NY
ICkKKy8vIGJlaGF2aW9ycyBlbnN1cmUgTlVMTC10ZXJtaW5hdGlvbiBhdCBsZWFzdCBhcyB3ZWxs
IGFzIF9UUlVOQ0FURSBkb2VzLCBidXQKKy8vIHdjc25jcHlfcy9zdHJuY3B5X3MgY2FuIG5vbi1O
VUxMLXRlcm1pbmF0ZSwgd2NzbGNweS9zdHJsY3B5IGNhbiBub3QuCitpbmxpbmUgZXJybm9fdCB3
Y3NuY3B5X3Mod2NoYXJfdCAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0
IHdjaGFyX3QgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQoreworICAgICAgIHJldHVybiB3Y3Ns
Y3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Cit9CisKK2lubGluZSBl
cnJub190IHN0cm5jcHlfcyhjaGFyICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywg
Y29uc3QgY2hhciAqc3RyU291cmNlLCBzaXplX3QgY291bnQpCit7CisgICAgICAgcmV0dXJuIHN0
cmxjcHkoc3RyRGVzdCwgc3RyU291cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKK30KKworI2VuZGlm
CisKKyNpZiBkZWZpbmVkKCBMSU5VWCApCisvLyB0aGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90
IHJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUgZGVzdGluYXRpb24gd2FzIAorLy8gdHJ1bmNhdGVk
LCBidXQgdGhhdCBpcyBzdHJhaWdodGZvcndhcmQgdG8gZml4IGlmIGFueWJvZHkgYWN0dWFsbHkg
bmVlZHMgdGhlCisvLyByZXR1cm4gY29kZS4gCisjaW5jbHVkZSAic3RyaW5nLmgiCitpbmxpbmUg
dm9pZCB3Y3NuY3B5X3Mod2NoYXJfdCAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMs
IGNvbnN0IHdjaGFyX3QgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQoreworICAgICAgIHdjc25j
cHkoc3RyRGVzdCwgc3RyU291cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKKyAgICAgICBzdHJEZXN0
W251bWJlck9mRWxlbWVudHMtMV0gPSAnXDAnOworfQorCitpbmxpbmUgdm9pZCBzdHJuY3B5X3Mo
Y2hhciAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNv
dXJjZSwgc2l6ZV90IGNvdW50KQoreworICAgICAgIHN0cm5jcHkoc3RyRGVzdCwgc3RyU291cmNl
LCBudW1iZXJPZkVsZW1lbnRzKTsKKyAgICAgICBzdHJEZXN0W251bWJlck9mRWxlbWVudHMtMV0g
PSAnXDAnOworfQorCisjZW5kaWYKKworI2lmIGRlZmluZWQoIF9XSU4zMiApICYmIF9NU0NfVkVS
IDwgMTgwMAoraW5saW5lIHVpbnQ2NF90IHN0cnRvdWxsKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAq
KmVuZHB0ciwgaW50IGJhc2UpIHsgcmV0dXJuIF9zdHJ0b3VpNjQoIHN0ciwgZW5kcHRyLCBiYXNl
ICk7IH0KKyNlbmRpZgorCisvKiBIYW5kbGVzIGNvcHlpbmcgYSBzdGQ6OnN0cmluZyBpbnRvIGEg
YnVmZmVyIGFzIHdvdWxkIGJlIHByb3ZpZGVkIGluIGFuIEFQSSAqLwordWludDMyX3QgUmV0dXJu
U3RkU3RyaW5nKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAqcGNoQnVmZmVyLCB1
aW50MzJfdCB1bkJ1ZmZlckxlbiApOworCisvKiBIYW5kbGVzIGNvcHlpbmcgYSBidWZmZXIgaW50
byBhbiBzdGQ6OnN0cmluZyBhbmQgYXV0byBhZGRzIG51bGwgdGVybWluYXRvciAqLwordm9pZCBC
dWZmZXJUb1N0ZFN0cmluZyggc3RkOjpzdHJpbmcgJiBzRGVzdCwgY29uc3QgY2hhciAqcGNoQnVm
ZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApOworCisvKiogUmV0dXJucyBhIHN0ZDo6c3RyaW5n
IGZyb20gYSB1aW50NjRfdCAqLworc3RkOjpzdHJpbmcgVWludDY0VG9TdHJpbmcoIHVpbnQ2NF90
IHVsVmFsdWUgKTsKKworLyoqIHJldHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCit1
aW50NjRfdCBTdHJpbmdUb1VpbnQ2NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKTsKKwor
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogRW5jb2RlcyBhIHN0cmluZyAob3Ig
YmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlv
biAyLjIuICAKKy8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0
cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAg
ICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5v
dCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hv
dWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJv
b20gZm9yIGRlY29kZS4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9VUkxFbmNvZGUo
IGNoYXIgKnBjaERlc3QsIGludCBuRGVzdExlbiwgY29uc3QgY2hhciAqcGNoU291cmNlLCBpbnQg
blNvdXJjZUxlbiApOworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBEZWNv
ZGVzIGEgc3RyaW5nIChvciBiaW5hcnkgZGF0YSkgZnJvbSBVUkwgZW5jb2RpbmcgZm9ybWF0LCBz
ZWUgcmZjMTczOCBzZWN0aW9uIDIuMi4gIAorLy8gICAgICAgICAgVGhpcyB2ZXJzaW9uIG9mIHRo
ZSBjYWxsIGlzbid0IGEgc3RyaWN0IFJGQyBpbXBsZW1lbnRhdGlvbiwgYnV0IHVzZXMgKyBmb3Ig
c3BhY2UgYXMgaXMKKy8vICAgICAgICAgIHRoZSBzdGFuZGFyZCBpbiBIVE1MIGZvcm0gZW5jb2Rp
bmcsIGRlc3BpdGUgaXQgbm90IGJlaW5nIHBhcnQgb2YgdGhlIFJGQy4KKy8vCisvLyAgICAgICAg
ICBEZXN0IGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc291cmNlIGJ1ZmZl
ciB0byBndWFyYW50ZWUgcm9vbSBmb3IgZGVjb2RlLgorLy8gICAgICAgICAgICAgICAgICAgICBE
ZXN0IGJ1ZmZlciBiZWluZyB0aGUgc2FtZSBhcyB0aGUgc291cmNlIGJ1ZmZlciAoZGVjb2RlIGlu
LXBsYWNlKSBpcyBleHBsaWNpdGx5IGFsbG93ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitz
aXplX3QgVl9VUkxEZWNvZGUoIGNoYXIgKnBjaERlY29kZURlc3QsIGludCBuRGVjb2RlRGVzdExl
biwgY29uc3QgY2hhciAqcGNoRW5jb2RlZFNvdXJjZSwgaW50IG5FbmNvZGVkU291cmNlTGVuICk7
CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IHN0cmlwIGV4dGVuc2lvbiBm
cm9tIGEgcGF0aAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1N0cmlwRXh0ZW5zaW9u
KCBzdGQ6OnN0cmluZyAmaW4gKTsKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzRmMzA0MjRhOWZmMzYxYzgzNmY5YTRjMDhjZmE2ODQ2YWFkMzdiNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRo
cmVnaXN0cnlfcHVibGljLmNwcApAQCAtMCwwICsxLDQxMSBAQAorLy89PT09PT09PT0gQ29weXJp
Z2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisKKyNpbmNsdWRlICJ2cnBhdGhy
ZWdpc3RyeV9wdWJsaWMuaCIKKyNpbmNsdWRlICJqc29uL2pzb24uaCIKKyNpbmNsdWRlICJwYXRo
dG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgiCisjaW5jbHVk
ZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAiZGlydG9vbHNfcHVibGljLmgiCisKKyNp
ZiBkZWZpbmVkKCBXSU4zMiApCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHNobG9i
ai5oPgorCisjdW5kZWYgR2V0RW52aXJvbm1lbnRWYXJpYWJsZQorI2VsaWYgZGVmaW5lZCBPU1gK
KyNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxBcHBLaXQvQXBw
S2l0Lmg+CisjZWxpZiBkZWZpbmVkKExJTlVYKQorI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVk
ZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisjaWZuZGVmIFZS
TG9nCisgICAgICAgI2lmIGRlZmluZWQoIF9fTUlOR1czMl9fICkKKyAgICAgICAgICAgICAgI2Rl
ZmluZSBWUkxvZyhhcmdzLi4uKSAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIGFyZ3MpCisg
ICAgICAgI2VsaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9n
KGZtdCwgLi4uKSAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIGZtdCwgX19WQV9BUkdTX18p
CisgICAgICAgI2Vsc2UKKyAgICAgICAgICAgICAgI2RlZmluZSBWUkxvZyhhcmdzLi4uKSAgICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsIGFyZ3MpCisgICAgICAgI2VuZGlmCisjZW5kaWYKKwor
LyoqIFJldHVybnMgdGhlIHJvb3Qgb2YgdGhlIGRpcmVjdG9yeSB0aGUgc3lzdGVtIHdhbnRzIHVz
IHRvIHN0b3JlIHVzZXIgY29uZmlnIGRhdGEgaW4gKi8KK3N0YXRpYyBzdGQ6OnN0cmluZyBHZXRB
cHBTZXR0aW5nc1BhdGgoKQoreworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBXQ0hBUiBy
d2NoUGF0aFtNQVhfUEFUSF07CisKKyAgICAgICBpZiggIVNVQ0NFRURFRCggU0hHZXRGb2xkZXJQ
YXRoVyggTlVMTCwgQ1NJRExfTE9DQUxfQVBQREFUQSB8IENTSURMX0ZMQUdfQ1JFQVRFLCBOVUxM
LCAwLCByd2NoUGF0aCApICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOwor
ICAgICAgIH0KKworICAgICAgIC8vIENvbnZlcnQgdGhlIHBhdGggdG8gVVRGLTggYW5kIHN0b3Jl
IGluIHRoZSBvdXRwdXQKKyAgICAgICBzdGQ6OnN0cmluZyBzVXNlclBhdGggPSBVVEYxNnRvOCgg
cndjaFBhdGggKTsKKworICAgICAgIHJldHVybiBzVXNlclBhdGg7CisjZWxpZiBkZWZpbmVkKCBP
U1ggKQorICAgICAgIHN0ZDo6c3RyaW5nIHNTZXR0aW5nc0RpcjsKKyAgICAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKKyAgICAgICAgICAgICAgLy8gU2VhcmNoIGZvciB0aGUgcGF0aAorICAgICAgICAg
ICAgICBOU0FycmF5ICpwYXRocyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5z
KCBOU0FwcGxpY2F0aW9uU3VwcG9ydERpcmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7
CisgICAgICAgICAgICAgIGlmICggW3BhdGhzIGNvdW50XSA9PSAwICkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICBOU1N0cmluZyAqcmVzb2x2ZWRQYXRoID0gW3BhdGhz
IG9iamVjdEF0SW5kZXg6MF07CisgICAgICAgICAgICAgIHJlc29sdmVkUGF0aCA9IFtyZXNvbHZl
ZFBhdGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OiBAIk9wZW5WUiJdOworICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgaWYgKCAhW1tOU0ZpbGVNYW5hZ2VyIG5ld10gY3JlYXRl
RGlyZWN0b3J5QXRQYXRoOiByZXNvbHZlZFBhdGggd2l0aEludGVybWVkaWF0ZURpcmVjdG9yaWVz
OllFUyBhdHRyaWJ1dGVzOm5pbCBlcnJvcjpuaWxdICkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICBzU2V0dGluZ3NEaXIuYXNzaWduKCBbcmVzb2x2ZWRQYXRoIFVURjhT
dHJpbmddICk7CisgICAgICAgfQorICAgICAgIHJldHVybiBzU2V0dGluZ3NEaXI7CisjZWxpZiBk
ZWZpbmVkKCBMSU5VWCApCisKKyAgICAgICAvLyBBcyBkZWZpbmVkIGJ5IFhERyBCYXNlIERpcmVj
dG9yeSBTcGVjaWZpY2F0aW9uIAorICAgICAgIC8vIGh0dHBzOi8vc3BlY2lmaWNhdGlvbnMuZnJl
ZWRlc2t0b3Aub3JnL2Jhc2VkaXItc3BlYy9iYXNlZGlyLXNwZWMtbGF0ZXN0Lmh0bWwKKworICAg
ICAgIGNvbnN0IGNoYXIgKnBjaEhvbWUgPSBnZXRlbnYoIlhER19DT05GSUdfSE9NRSIpOworICAg
ICAgIGlmICggKCBwY2hIb21lICE9IE5VTEwpICYmICggcGNoSG9tZVswXSAhPSAnXDAnICkgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHBjaEhvbWU7CisgICAgICAgfQorCisgICAg
ICAgLy8KKyAgICAgICAvLyBYREdfQ09ORklHX0hPTUUgaXMgbm90IGRlZmluZWQsIHVzZSB+Ly5j
b25maWcgaW5zdGVhZAorICAgICAgIC8vIAorICAgICAgIHBjaEhvbWUgPSBnZXRlbnYoICJIT01F
IiApOworICAgICAgIGlmICggcGNoSG9tZSA9PSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHJldHVybiAiIjsKKyAgICAgICB9CisKKyAgICAgICBzdGQ6OnN0cmluZyBzVXNlclBhdGgo
IHBjaEhvbWUgKTsKKyAgICAgICBzVXNlclBhdGggPSBQYXRoX0pvaW4oIHNVc2VyUGF0aCwgIi5j
b25maWciICk7CisgICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKKyNlbHNlCisgICAgICAgI3dhcm5p
bmcgIlVuc3VwcG9ydGVkIHBsYXRmb3JtIgorI2VuZGlmCit9CisKKworLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLyBQdXJwb3NlOiBDb25zdHJ1Y3RvcgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitD
VlJQYXRoUmVnaXN0cnlfUHVibGljOjpDVlJQYXRoUmVnaXN0cnlfUHVibGljKCkKK3sKKworfQor
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IENvbXB1dGVzIHRoZSByZWdpc3Ry
eSBmaWxlbmFtZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVn
aXN0cnlfUHVibGljOjpHZXRPcGVuVlJDb25maWdQYXRoKCkKK3sKKyAgICAgICBzdGQ6OnN0cmlu
ZyBzQ29uZmlnUGF0aCA9IEdldEFwcFNldHRpbmdzUGF0aCgpOworICAgICAgIGlmKCBzQ29uZmln
UGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworCisjaWYgZGVmaW5lZCgg
X1dJTjMyICkgfHwgZGVmaW5lZCggTElOVVggKQorICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9K
b2luKCBzQ29uZmlnUGF0aCwgIm9wZW52ciIgKTsKKyNlbGlmIGRlZmluZWQgKCBPU1ggKSAKKyAg
ICAgICBzQ29uZmlnUGF0aCA9IFBhdGhfSm9pbiggc0NvbmZpZ1BhdGgsICIub3BlbnZyIiApOwor
I2Vsc2UKKyAgICAgICAjd2FybmluZyAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCisjZW5kaWYKKyAg
ICAgICBzQ29uZmlnUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc0NvbmZpZ1BhdGggKTsKKyAgICAg
ICByZXR1cm4gc0NvbmZpZ1BhdGg7Cit9CisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisv
LyBQdXJwb3NlOgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJl
Z2lzdHJ5X1B1YmxpYzo6R2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpCit7CisgICAgICAgc3Rk
OjpzdHJpbmcgc1BhdGggPSBHZXRPcGVuVlJDb25maWdQYXRoKCk7CisgICAgICAgaWYgKCBzUGF0
aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworCisjaWYgZGVmaW5lZCggX1dJ
TjMyICkKKyAgICAgICBzUGF0aCA9IFBhdGhfSm9pbiggc1BhdGgsICJvcGVudnJwYXRocy52cnBh
dGgiICk7CisjZWxpZiBkZWZpbmVkICggUE9TSVggKSAKKyAgICAgICBzUGF0aCA9IFBhdGhfSm9p
biggc1BhdGgsICJvcGVudnJwYXRocy52cnBhdGgiICk7CisjZWxzZQorICAgICAgICNlcnJvciAi
VW5zdXBwb3J0ZWQgcGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICBzUGF0aCA9IFBhdGhfRml4U2xh
c2hlcyggc1BhdGggKTsKKyAgICAgICByZXR1cm4gc1BhdGg7Cit9CisKKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBQdXJwb3NlOiBDb252ZXJ0cyBKU09OIHRvIGEgaGlzdG9yeSBhcnJheQor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGF0aWMgdm9pZCBQYXJzZVN0cmluZ0xpc3RGcm9tSnNv
biggc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4gKnB2ZWNIaXN0b3J5LCBjb25zdCBKc29uOjpW
YWx1ZSAmIHJvb3QsIGNvbnN0IGNoYXIgKnBjaEFycmF5TmFtZSApCit7CisgICAgICAgaWYoICFy
b290LmlzTWVtYmVyKCBwY2hBcnJheU5hbWUgKSApCisgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgIGNvbnN0IEpzb246OlZhbHVlICYgYXJyYXlOb2RlID0gcm9vdFsgcGNoQXJyYXlOYW1l
IF07CisgICAgICAgaWYoICFhcnJheU5vZGUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJM
b2coICJWUiBQYXRoIFJlZ2lzdHJ5IG5vZGUgJXMgaXMgbm90IGFuIGFycmF5XG4iLCBwY2hBcnJh
eU5hbWUgKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgIH0KKworICAgICAgIHB2ZWNI
aXN0b3J5LT5jbGVhcigpOworICAgICAgIHB2ZWNIaXN0b3J5LT5yZXNlcnZlKCBhcnJheU5vZGUu
c2l6ZSgpICk7CisgICAgICAgZm9yKCB1aW50MzJfdCB1bkluZGV4ID0gMDsgdW5JbmRleCA8IGFy
cmF5Tm9kZS5zaXplKCk7IHVuSW5kZXgrKyApCisgICAgICAgeworICAgICAgICAgICAgICBzdGQ6
OnN0cmluZyBzUGF0aCggYXJyYXlOb2RlWyB1bkluZGV4IF0uYXNTdHJpbmcoKSApOworICAgICAg
ICAgICAgICBwdmVjSGlzdG9yeS0+cHVzaF9iYWNrKCBzUGF0aCApOworICAgICAgIH0KK30KKwor
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IENvbnZlcnRzIGEgaGlzdG9yeSBh
cnJheSB0byBKU09OCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0YXRpYyB2b2lkIFN0cmluZ0xp
c3RUb0pzb24oIGNvbnN0IHN0ZDo6dmVjdG9yPCBzdGQ6OnN0cmluZyA+ICYgdmVjSGlzdG9yeSwg
SnNvbjo6VmFsdWUgJiByb290LCBjb25zdCBjaGFyICpwY2hBcnJheU5hbWUgKQoreworICAgICAg
IEpzb246OlZhbHVlICYgYXJyYXlOb2RlID0gcm9vdFsgcGNoQXJyYXlOYW1lIF07CisgICAgICAg
Zm9yKCBhdXRvIGkgPSB2ZWNIaXN0b3J5LmJlZ2luKCk7IGkgIT0gdmVjSGlzdG9yeS5lbmQoKTsg
aSsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGFycmF5Tm9kZS5hcHBlbmQoICppICk7Cisg
ICAgICAgfQorfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OlRvSnNvblN0
cmluZyggc3RkOjpzdHJpbmcgJnNKc29uU3RyaW5nICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBz
UmVnUGF0aCA9IEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBpZiggc1JlZ1Bh
dGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAKKyAgICAg
ICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlDb250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVn
UGF0aCApOworICAgICAgIGlmKCBzUmVnaXN0cnlDb250ZW50cy5lbXB0eSgpICkKKyAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgc0pzb25TdHJpbmcgPSBzUmVnaXN0cnlDb250
ZW50czsKKworICAgICAgIHJldHVybiB0cnVlOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gUHVycG9zZTogTG9hZHMgdGhlIGNvbmZpZyBmaWxlIGZyb20gaXRzIHdlbGwga25vd24g
bG9jYXRpb24KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVi
bGljOjpCTG9hZEZyb21GaWxlKCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnUGF0aCA9IEdl
dFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBpZiggc1JlZ1BhdGguZW1wdHkoKSAp
CisgICAgICAgeworICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBkZXRlcm1pbmUgVlIg
UGF0aCBSZWdpc3RyeSBmaWxlbmFtZVxuIiApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorCisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSBQYXRo
X1JlYWRUZXh0RmlsZSggc1JlZ1BhdGggKTsKKyAgICAgICBpZiggc1JlZ2lzdHJ5Q29udGVudHMu
ZW1wdHkoKSApCisgICAgICAgeworICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byByZWFk
IFZSIFBhdGggUmVnaXN0cnkgZnJvbSAlc1xuIiwgc1JlZ1BhdGguY19zdHIoKSApOworICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisgICAgICAgSnNvbjo6VmFsdWUgcm9v
dDsKKyAgICAgICBKc29uOjpSZWFkZXIgcmVhZGVyOworCisgICAgICAgaWYoICFyZWFkZXIucGFy
c2UoIHNSZWdpc3RyeUNvbnRlbnRzLCByb290ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
VlJMb2coICJVbmFibGUgdG8gcGFyc2UgJXM6ICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpLCByZWFk
ZXIuZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpLmNfc3RyKCkgKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29u
KCAmbV92ZWNSdW50aW1lUGF0aCwgcm9vdCwgInJ1bnRpbWUiICk7CisgICAgICAgUGFyc2VTdHJp
bmdMaXN0RnJvbUpzb24oICZtX3ZlY0NvbmZpZ1BhdGgsIHJvb3QsICJjb25maWciICk7CisgICAg
ICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7
CisgICAgICAgaWYgKHJvb3QuaXNNZW1iZXIoICJleHRlcm5hbF9kcml2ZXJzIiApICYmIHJvb3Rb
ICJleHRlcm5hbF9kcml2ZXJzIiBdLmlzQXJyYXkoKSApCisgICAgICAgeworICAgICAgICAgICAg
ICBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjRXh0ZXJuYWxEcml2ZXJzLCByb290LCAi
ZXh0ZXJuYWxfZHJpdmVycyIgKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30K
KworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFNhdmVzIHRoZSBjb25maWcg
ZmlsZSB0byBpdHMgd2VsbCBrbm93biBsb2NhdGlvbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiti
b29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJTYXZlVG9GaWxlKCkgY29uc3QKK3sKKyNpZiBk
ZWZpbmVkKCBEQVNIQk9BUkRfQlVJTERfTU9ERSApCisgICAgICAgcmV0dXJuIGZhbHNlOworI2Vs
c2UKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnUGF0aCA9IEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5h
bWUoKTsKKyAgICAgICBpZiggc1JlZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAKKyAgICAgICBKc29uOjpWYWx1ZSByb290OworICAgICAgIAorICAg
ICAgIHJvb3RbICJ2ZXJzaW9uIiBdID0gMTsKKyAgICAgICByb290WyAianNvbmlkIiBdID0gInZy
cGF0aHJlZyI7CisKKyAgICAgICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY1J1bnRpbWVQYXRoLCBy
b290LCAicnVudGltZSIgKTsKKyAgICAgICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY0NvbmZpZ1Bh
dGgsIHJvb3QsICJjb25maWciICk7CisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92ZWNMb2dQ
YXRoLCByb290LCAibG9nIiApOworICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjRXh0ZXJu
YWxEcml2ZXJzLCByb290LCAiZXh0ZXJuYWxfZHJpdmVycyIgKTsKKworICAgICAgIEpzb246OlN0
eWxlZFdyaXRlciB3cml0ZXI7CisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMg
PSB3cml0ZXIud3JpdGUoIHJvb3QgKTsKKworICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgZGlyZWN0
b3J5IHdlJ3JlIHdyaXRpbmcgaW50byBhY3R1YWxseSBleGlzdHMKKyAgICAgICBzdGQ6OnN0cmlu
ZyBzUmVnRGlyZWN0b3J5ID0gUGF0aF9TdHJpcEZpbGVuYW1lKCBzUmVnUGF0aCApOworICAgICAg
IGlmKCAhQkNyZWF0ZURpcmVjdG9yeVJlY3Vyc2l2ZSggc1JlZ0RpcmVjdG9yeS5jX3N0cigpICkg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJVbmFibGUgdG8gY3JlYXRlIHBhdGgg
cmVnaXN0cnkgZGlyZWN0b3J5ICVzXG4iLCBzUmVnRGlyZWN0b3J5LmNfc3RyKCkgKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIGlmKCAhUGF0aF9Xcml0
ZVN0cmluZ1RvVGV4dEZpbGUoIHNSZWdQYXRoLCBzUmVnaXN0cnlDb250ZW50cy5jX3N0cigpICkg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJVbmFibGUgdG8gd3JpdGUgVlIgcGF0
aCByZWdpc3RyeSB0byAlc1xuIiwgc1JlZ1BhdGguY19zdHIoKSApOworICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30K
KworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJl
bnQgcnVudGltZSBwYXRoIG9yIE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRS
dW50aW1lUGF0aCgpIGNvbnN0Cit7CisgICAgICAgaWYoIG1fdmVjUnVudGltZVBhdGguZW1wdHko
KSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAg
IHJldHVybiBtX3ZlY1J1bnRpbWVQYXRoLmZyb250KCkuY19zdHIoKTsKK30KKworCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgY29uZmlnIHBh
dGggb3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK3N0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldENvbmZpZ1BhdGgoKSBj
b25zdAoreworICAgICAgIGlmKCBtX3ZlY0NvbmZpZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAg
ICAgIHJldHVybiAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY0Nv
bmZpZ1BhdGguZnJvbnQoKS5jX3N0cigpOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8gUHVycG9zZTogUmV0dXJucyB0aGUgY3VycmVudCBsb2cgcGF0aCBvciBOVUxMIGlmIG5vIHBh
dGggaXMgY29uZmlndXJlZC4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0TG9nUGF0aCgpIGNvbnN0Cit7CisgICAgICAgaWYoIG1f
dmVjTG9nUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjTG9nUGF0aC5mcm9udCgpLmNfc3RyKCk7Cit9
CisKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgcGF0aHMg
dXNpbmcgdGhlIHBhdGggcmVnaXN0cnkgYW5kIHRoZSBwcm92aWRlZCBvdmVycmlkZSAKKy8vICAg
ICAgICAgICAgICAgICAgICAgdmFsdWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9u
J3QgY2FyZSBhYm91dC4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0
cnlfUHVibGljOjpHZXRQYXRocyggc3RkOjpzdHJpbmcgKnBzUnVudGltZVBhdGgsIHN0ZDo6c3Ry
aW5nICpwc0NvbmZpZ1BhdGgsIHN0ZDo6c3RyaW5nICpwc0xvZ1BhdGgsIGNvbnN0IGNoYXIgKnBj
aENvbmZpZ1BhdGhPdmVycmlkZSwgY29uc3QgY2hhciAqcGNoTG9nUGF0aE92ZXJyaWRlLCBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4gKnB2ZWNFeHRlcm5hbERyaXZlcnMgKQoreworICAgICAgIENW
UlBhdGhSZWdpc3RyeV9QdWJsaWMgcGF0aFJlZzsKKyAgICAgICBib29sIGJMb2FkZWRSZWdpc3Ry
eSA9IHBhdGhSZWcuQkxvYWRGcm9tRmlsZSgpOworICAgICAgIGludCBuQ291bnRFbnZpcm9ubWVu
dFZhcmlhYmxlcyA9IDA7CisKKyAgICAgICBpZiggcHNSdW50aW1lUGF0aCApCisgICAgICAgewor
ICAgICAgICAgICAgICBpZiAoIEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoUnVudGltZU92
ZXJyaWRlVmFyICkubGVuZ3RoKCkgIT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hS
dW50aW1lT3ZlcnJpZGVWYXIgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25t
ZW50VmFyaWFibGVzKys7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZigg
IXBhdGhSZWcuR2V0UnVudGltZVBhdGgoKS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgKnBzUnVudGltZVBhdGggPSBwYXRoUmVnLkdldFJ1bnRpbWVQYXRo
KCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9ICIiOworICAgICAgICAgICAg
ICB9CisgICAgICAgfQorCisgICAgICAgaWYoIHBzQ29uZmlnUGF0aCApCisgICAgICAgeworICAg
ICAgICAgICAgICBpZiAoIEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoQ29uZmlnT3ZlcnJp
ZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgKnBzQ29uZmlnUGF0aCA9IEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoQ29uZmln
T3ZlcnJpZGVWYXIgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50VmFy
aWFibGVzKys7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggcGNoQ29u
ZmlnUGF0aE92ZXJyaWRlICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
KnBzQ29uZmlnUGF0aCA9IHBjaENvbmZpZ1BhdGhPdmVycmlkZTsKKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRDb25maWdQYXRoKCkuZW1wdHkoKSAp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBw
YXRoUmVnLkdldENvbmZpZ1BhdGgoKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGgg
PSAiIjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGlmKCBwc0xvZ1BhdGgg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBr
X3BjaExvZ092ZXJyaWRlVmFyICkubGVuZ3RoKCkgIT0gMCApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBr
X3BjaExvZ092ZXJyaWRlVmFyICk7CisgICAgICAgICAgICAgICAgICAgICBuQ291bnRFbnZpcm9u
bWVudFZhcmlhYmxlcysrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYo
IHBjaExvZ1BhdGhPdmVycmlkZSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICpwc0xvZ1BhdGggPSBwY2hMb2dQYXRoT3ZlcnJpZGU7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgZWxzZSBpZiggIXBhdGhSZWcuR2V0TG9nUGF0aCgpLmVtcHR5KCkgKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gcGF0aFJlZy5H
ZXRMb2dQYXRoKCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gIiI7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICBpZiAoIHB2ZWNFeHRlcm5hbERyaXZlcnMgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgKnB2ZWNFeHRlcm5hbERyaXZlcnMgPSBwYXRoUmVnLm1f
dmVjRXh0ZXJuYWxEcml2ZXJzOworICAgICAgIH0KKworICAgICAgIGlmICggbkNvdW50RW52aXJv
bm1lbnRWYXJpYWJsZXMgPT0gMyApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBhbGwgdGhy
ZWUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdoZXJlIHNldCwgc28gd2UgZG9uJ3QgbmVlZCB0aGUg
cGh5c2ljYWwgZmlsZQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisKKyAg
ICAgICByZXR1cm4gYkxvYWRlZFJlZ2lzdHJ5OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNjBkZTU2ZjlkZjQwYWM1NTljODYxYmU1YTQ1MWFiNmRiMGMwOTA5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92
cnBhdGhyZWdpc3RyeV9wdWJsaWMuaApAQCAtMCwwICsxLDQ1IEBACisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxzdGRpbnQuaD4K
Kworc3RhdGljIGNvbnN0IGNoYXIgKmtfcGNoUnVudGltZU92ZXJyaWRlVmFyID0gIlZSX09WRVJS
SURFIjsKK3N0YXRpYyBjb25zdCBjaGFyICprX3BjaENvbmZpZ092ZXJyaWRlVmFyID0gIlZSX0NP
TkZJR19QQVRIIjsKK3N0YXRpYyBjb25zdCBjaGFyICprX3BjaExvZ092ZXJyaWRlVmFyID0gIlZS
X0xPR19QQVRIIjsKKworY2xhc3MgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYworeworcHVibGljOgor
ICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7Cisg
ICAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKKworcHVibGlj
OgorICAgICAgIENWUlBhdGhSZWdpc3RyeV9QdWJsaWMoKTsKKworICAgICAgIC8qKiBSZXR1cm5z
IHBhdGhzIHVzaW5nIHRoZSBwYXRoIHJlZ2lzdHJ5IGFuZCB0aGUgcHJvdmlkZWQgb3ZlcnJpZGUg
dmFsdWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9uJ3QgY2FyZSBhYm91dC4gCisg
ICAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBwYXRoIHJlZ2lzdHJ5IGNvdWxkIG5vdCBiZSBy
ZWFkLiBWYWxpZCBwYXRocyBtaWdodCBzdGlsbCBiZSByZXR1cm5lZCBiYXNlZCBvbiBlbnZpcm9u
bWVudCB2YXJpYWJsZXMuICovCisgICAgICAgc3RhdGljIGJvb2wgR2V0UGF0aHMoIHN0ZDo6c3Ry
aW5nICpwc1J1bnRpbWVQYXRoLCBzdGQ6OnN0cmluZyAqcHNDb25maWdQYXRoLCBzdGQ6OnN0cmlu
ZyAqcHNMb2dQYXRoLCBjb25zdCBjaGFyICpwY2hDb25maWdQYXRoT3ZlcnJpZGUsIGNvbnN0IGNo
YXIgKnBjaExvZ1BhdGhPdmVycmlkZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICpwdmVjRXh0
ZXJuYWxEcml2ZXJzID0gTlVMTCApOworCisgICAgICAgYm9vbCBCTG9hZEZyb21GaWxlKCk7Cisg
ICAgICAgYm9vbCBCU2F2ZVRvRmlsZSgpIGNvbnN0OworCisgICAgICAgYm9vbCBUb0pzb25TdHJp
bmcoIHN0ZDo6c3RyaW5nICZzSnNvblN0cmluZyApOworCisgICAgICAgLy8gbWV0aG9kcyB0byBn
ZXQgdGhlIGN1cnJlbnQgdmFsdWVzCisgICAgICAgc3RkOjpzdHJpbmcgR2V0UnVudGltZVBhdGgo
KSBjb25zdDsKKyAgICAgICBzdGQ6OnN0cmluZyBHZXRDb25maWdQYXRoKCkgY29uc3Q7CisgICAg
ICAgc3RkOjpzdHJpbmcgR2V0TG9nUGF0aCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgICAg
dHlwZWRlZiBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiBTdHJpbmdWZWN0b3JfdDsKKworICAg
ICAgIC8vIGluZGV4IDAgaXMgdGhlIGN1cnJlbnQgc2V0dGluZworICAgICAgIFN0cmluZ1ZlY3Rv
cl90IG1fdmVjUnVudGltZVBhdGg7CisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNMb2dQYXRo
OworICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjQ29uZmlnUGF0aDsKKworICAgICAgIC8vIGZ1
bGwgbGlzdCBvZiBleHRlcm5hbCBkcml2ZXJzCisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNF
eHRlcm5hbERyaXZlcnM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZDljMzMyNjI2YzU1NDJlMDA4MDc0
OGVmMDk5YjNmYTgzZDA1MWU4OC4uZGRjYjdhYWRhMzJhZDM1ZWMyOTMzOGI1YmM1OGY4MDE0YmY4
NmU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMjgyLDQgKzEyODIsOCBAQAogI2RlZmluZSBIQVZFX1NU
QUNLX0JPVU5EU19GT1JfTkVXX1RIUkVBRCAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9PUEVOVlIgMQor
I2VuZGlmCisKICNlbmRpZiAvKiBXVEZfUGxhdGZvcm1faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBkOTBmMWY3ZGU3ZGI2ZjYwODhkYmI3YWM2ZDk5NDIxZjNjYmFkZjdlLi5jMTlmZDk3NmE4
ZWY4ZDIyNjQ4ZWQ1ZGUxYWQzYzRhMTI2ODFiNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MzY1Myw2ICszNjUzLDExIEBAIGlmIChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAg
ICkKIGVuZGlmICgpCiAKK2lmIChVU0VfT1BFTlZSKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVMgIiR7VEhJUkRQQVJUWV9ESVJ9L29wZW52ci9oZWFkZXJzIikKKyAg
bGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgb3BlbnZyX2FwaSkKK2VuZGlmICgpCisKIGlm
IChVU0VfV09GRjIpCiAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAi
JHtUSElSRFBBUlRZX0RJUn0vd29mZjIvc3JjIikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJS
QVJJRVMgd29mZjIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMWNiMTJiZjFlODlkNzZkNGY0MjM1Y2MzODk5NDQ5MWU3OTZhNDU1
Ny4uZjExMzEyNGFhMWQ0ZDUxMDA1MDY3OGNhNWU1ZWNlN2IwZjkxNjk5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzc1OCw2
ICszNzU4LDcgQEAKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGlt
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0
RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0
Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlc3BvbnNlLmNwcCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25z
ZS5oICovOyB9OworCQk4RTc5NDJBNzFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDJBNjFG
NkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUmVxdWlyZWQsICk7IH07IH07CiAJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVu
dFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThGQUM3NzREMTE5ODcyQ0IwMDE1QUU5
NCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5jcHAgKi87IH07CiAJCTkwMDE3NzQwMTJFMDM0NzgwMDY0ODQ2MiAvKiBP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNEMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmNwcCAqLzsgfTsKQEAgLTEyMTEyLDYgKzEyMTEzLDcgQEAKIAkJOEFGNEU1NUEx
MURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBQZXJmb3JtYW5jZVRpbWluZy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCThFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaFJlc3BvbnNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZldGNo
UmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEU3OTQyQTYxRjZCRTdG
QjAwNTdCODAzIC8qIGxpYm9wZW52ci5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgbmFtZSA9IGxpYm9wZW52ci5hOyBwYXRoID0g
Li4vVGhpcmRQYXJ0eS9vcGVudnIvYnVpbGQvRGVidWcvbGlib3BlbnZyLmE7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCThGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UXVldWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzRE
ODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMDIsNiArMTYzMDQsNyBAQAogCQkJCTkz
RjE5QjE2MDgyNDVFNTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLywKIAkJCQk5M0YxOUIxNzA4MjQ1RTU5MDAxRTlBQkMgLyogbGliaWN1Y29yZS5k
eWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBs
aWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJOEU3OTQyQTcxRjZCRTdGQjAwNTdC
ODAzIC8qIGxpYm9wZW52ci5hIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUMwOUQwNTkxRTMxQzZB
OTAwNzI1RjE4IC8qIGxpYlBBTC5hIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJREQ3NjNCQjIwOTky
QzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkzNzk5
MTlCMjEyMDBERTUwMDBFQTA0MUMgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovLApAQCAt
MTY4MTksNiArMTY4MjIsNyBAQAogCQkJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8sCiAJCQkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8q
IGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxp
Ym9iamMuZHlsaWIgKi8sCisJCQkJOEU3OTQyQTYxRjZCRTdGQjAwNTdCODAzIC8qIGxpYm9wZW52
ci5hICovLAogCQkJCURENzYzQkIxMDk5MkMyQzkwMDc0MEI4RSAvKiBsaWJ4bWwyLmR5bGliICov
LAogCQkJCTM3OTkxOUIxMTIwMERFNTAwMEVBMDQxQyAvKiBsaWJ6LmR5bGliICovLAogCQkJCUE4
NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLywKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMTUwNzg4NDJj
Yjc4MTg3ZDViYTNiYTViN2ZhNWRhMmVhMjM3NjkxLi5mOTAzZjU5MjQ5ZTYyNzBhNWQ1NzdkZjg3
NjE3MTYzZTU1ZjU3N2I4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDktMjIgIFNlcmdpbyBWaWxsYXIgU2Vu
aW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRv
IHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6IEJ1aWxkIE9wZW5WUiBi
ZWZvcmUgV2ViQ29yZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHk6IEFkZGVkIG9wZW52ciB0byB0aGUgbGlzdCBvZiB0aGlyZCBwYXJ0eSBsaWJyYXJpZXMKKyAg
ICAgICAgd2l0aCByZWR1Y2VkIHN0eWxlIGNoZWNrcy4KKwogMjAxNy0wOS0yMSAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFkZCB0
aGUgYWJpbGl0eSB0byBza2lwIGEgdGVzdDI2MiB0ZXN0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCBjMzkx
ZWVhOTNmYzZhYTNjOTA4Zjg5MThjMTg4M2U1ZDYxNWY5ZTY4Li42MzNhZTU1Yzk2OWFkNzhmMGIy
OGE5NWU0NGRhZWU2ZTc5NjEzYzM3IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtMTg4LDggKzE4OCw5IEBA
IGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICAgICBwdXNoIEBvcHRpb25zLCAkb3B0
aW9uIHVubGVzcyAkb3B0aW9uIGVxICIiOwogICAgIH0KIAotICAgICMgQU5HTEUgYW5kIGxpYndl
YnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdlYkNvcmUKKyAgICAjIEFOR0xFLCBPcGVuVlIgYW5kIGxp
YndlYnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdlYkNvcmUKICAgICBzcGxpY2UgQHByb2plY3RzLCAw
LCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFIik7CisgICAgc3BsaWNlIEBwcm9qZWN0cywg
MCwgMCwgKCJTb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIiKTsKICAgICBpZiAobm90ICRhcmNoczMy
Yml0IGFuZCAoKHBvcnROYW1lKCkgZXEgTWFjIGFuZCBub3QgYXJjaGl0ZWN0dXJlKCkgZXEgImkz
ODYiKSBvciAKICAgICAgICAgKHBvcnROYW1lKCkgZXEgaU9TIGFuZCAoYXJjaGl0ZWN0dXJlKCkg
ZXEgImFybTY0IiBvciBhcmNoaXRlY3R1cmUoKSBlcSAieDg2XzY0IikpKSkgewogICAgICAgICBz
cGxpY2UgQHByb2plY3RzLCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0YyIpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGJhZDU3NmNkM2Y0NzE1
YWE2OTY4MzVmY2M2YTQ4YTNlNjgxNWEzZTUuLmJlNTIwMzVjNWJjNTg4ODFjMTA0OWY3ZTM1MDll
N2M1ZWFlNTE0OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAg
LTIxNCw2ICsyMTQsNyBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAgKFtvcy5wYXRo
LmpvaW4oJ3dlYmtpdHB5JywgJ3RoaXJkcGFydHknKSwKICAgICAgIG9zLnBhdGguam9pbignU291
cmNlJywgJ1RoaXJkUGFydHknLCAnQU5HTEUnKSwKICAgICAgIG9zLnBhdGguam9pbignU291cmNl
JywgJ1RoaXJkUGFydHknLCAnYnJvdGxpJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScs
ICdUaGlyZFBhcnR5JywgJ29wZW52cicpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAn
VGhpcmRQYXJ0eScsICd3b2ZmMicpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnVGhp
cmRQYXJ0eScsICd4ZGdtaW1lJyldLAogICAgICBbIi0iLApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDAzNDA3NWUxZGZlZjhjNjI5ODk2YzcxMjFhYzE2MmFmZWE0NWIx
YWUuLjA1OTQ5NGRiOGRlODFjY2M4NTIzMTI1YzM2YWQwZGY3ZTAwODFmMzAgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0yMiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
VlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNlZGF0
YToKKwogMjAxNy0wOS0yMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBKU0Mgc2hvdWxkIHVzZSB1bmlmaWVkIHNvdXJjZXMgZm9yIHBsYXRmb3JtIHNw
ZWNpZmljIGZpbGVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhj
d29ya3NwYWNlZGF0YSBiL1dlYktpdC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRh
dGEKaW5kZXggMmU1OTkwZmFiZjI4MWFlOGQ0ZjI1YWE1MzU5MzQxMjRjMTFlZjE2Yy4uMWFiNTU4
MTIyMTM5MzBkMWE4NzliZTBiODc1OWNjZTcyZjA5ODVkMiAxMDA2NDQKLS0tIGEvV2ViS2l0Lnhj
d29ya3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNlZGF0YQorKysgYi9XZWJLaXQueGN3b3Jrc3Bh
Y2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhCkBAIC0xLDYgKzEsOSBAQAogPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDxXb3Jrc3BhY2UKICAgIHZlcnNpb24gPSAiMS4w
Ij4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpTb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvb3BlbnZyLnhjb2RlcHJvaiI+CisgICA8L0ZpbGVSZWY+CiAgICA8RmlsZVJlZgog
ICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6U291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2oi
PgogICAgPC9GaWxlUmVmPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321682</attachid>
            <date>2017-09-25 07:57:58 -0700</date>
            <delta_ts>2018-01-18 07:58:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20170925165742.patch</filename>
            <type>text/plain</type>
            <size>1268725</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggZWQ1ZmE1ODcz
NGYxYTA3Y2EyY2U3M2FjZGM3NWNlMjY0YzI4YTdjYi4uZTMwMDlkZTQ1NGNhNGVjNmRhMDNjNDFl
ZmZhZTFiZDNiNDVhMzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MSBAQAorMjAx
Ny0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRl
ZC4KKyAgICAgICAgKiBvcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICogb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL1JFQURNRTog
QWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAq
IG9wZW52ci9zcmMvanNvbi9qc29uLmg6IEFkZGVkLgorICAgICAgICAoc3RkOjpzd2FwKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL2pzb25jcHAuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpzb246OmNv
ZGVQb2ludFRvVVRGOCk6CisgICAgICAgIChKc29uOjppc0NvbnRyb2xDaGFyYWN0ZXIpOgorICAg
ICAgICAoSnNvbjo6dWludFRvU3RyaW5nKToKKyAgICAgICAgKEpzb246OmZpeE51bWVyaWNMb2Nh
bGUpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OkZlYXR1cmVzKToKKyAgICAgICAgKEpzb246
OkZlYXR1cmVzOjphbGwpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OnN0cmljdE1vZGUpOgor
ICAgICAgICAoSnNvbjo6Y29udGFpbnNOZXdMaW5lKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6
UmVhZGVyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpyZWFkVmFsdWUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpza2lwQ29tbWVudFRv
a2Vucyk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRUb2tlbik6CisgICAgICAgIChKc29u
OjpSZWFkZXI6OnNraXBTcGFjZXMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjptYXRjaCk6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRDb21tZW50KToKKyAgICAgICAgKEpzb246Om5vcm1h
bGl6ZUVPTCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAo
SnNvbjo6UmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6
OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkTnVtYmVy
KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpS
ZWFkZXI6OnJlYWRPYmplY3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQXJyYXkpOgor
ICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpkZWNvZGVEb3VibGUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVTdHJpbmcp
OgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAg
ICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAg
KEpzb246OlJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWNvdmVy
RnJvbUVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvblNu
aXBwZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVz
c2FnZXMgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9y
cyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChK
c29uOjpSZWFkZXI6Omdvb2QgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyRmVhdHVyZXM6OmFs
bCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Ok91clJlYWRlcik6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZFZhbHVl
KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
Ojpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6bWF0Y2gpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFk
ZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29t
bWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRTdHJp
bmdTaW5nbGVRdW90ZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRPYmplY3QpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQXJyYXkpOgorICAgICAgICAoSnNvbjo6T3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVE
b3VibGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWNv
dmVyRnJvbUVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNv
dmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Omdvb2QgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6T3VyQ2hhclJlYWRlcjo6T3VyQ2hhclJlYWRlcik6CisgICAgICAg
IChKc29uOjpPdXJDaGFyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVy
QnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVp
bGRlcjo6bmV3Q2hhclJlYWRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFJlYWRl
cktleXMpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKToKKyAgICAg
ICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKToKKyAgICAgICAgKEpzb246
OkNoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAgIChKc29uOjpwYXJzZUZy
b21TdHJlYW0pOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I+Pik6CisgICAgICAgIChKc29uOjpW
YWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmRlcmVmIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjppbmNyZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmRl
Y3JlbWVudCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3Rh
bmNlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KToKKyAgICAgICAg
KEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjprZXkgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpt
ZW1iZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChKc29uOjpJblJhbmdlKToKKyAgICAgICAg
KEpzb246OmludGVnZXJUb0RvdWJsZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVTdHJpbmdW
YWx1ZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpkZWNvZGVQcmVmaXhlZFN0cmluZyk6CisgICAgICAgIChKc29uOjpyZWxl
YXNlU3RyaW5nVmFsdWUpOgorICAgICAgICAoSnNvbjo6RXhjZXB0aW9uOjpFeGNlcHRpb24pOgor
ICAgICAgICAoSnNvbjo6dGhyb3cpOgorICAgICAgICAoSnNvbjo6UnVudGltZUVycm9yOjpSdW50
aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6TG9naWNFcnJvcjo6TG9naWNFcnJvcik6CisgICAg
ICAgIChKc29uOjp0aHJvd1J1bnRpbWVFcnJvcik6CisgICAgICAgIChKc29uOjp0aHJvd0xvZ2lj
RXJyb3IpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbyk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbyk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pT
dHJpbmc6On5DWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
OjpDWlN0cmluZzo6aW5kZXggY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5n
OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6bGVuZ3RoIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OlZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVl
Ojp+VmFsdWUpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6c3dhcFBheWxvYWQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnN3YXApOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OnR5cGUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmNvbXBhcmUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPCBjb25zdCk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3I+IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjphc0NTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldFN0cmluZyBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNTdHJpbmcgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmFzQ29uc3RTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc1VJbnQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmFzSW50NjQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RJbnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdFVJbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OmFzRG91YmxlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0Jvb2wgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzQ29udmVydGlibGVUbyBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6ZW1wdHkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6Y2xlYXIpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnJlc2l6ZSk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aW5pdEJhc2ljKToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpn
ZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzVmFsaWRJbmRleCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6ZmluZCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
YXBwZW5kKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OnJlbW92ZUluZGV4KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc01lbWJl
ciBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6SXNJbnRlZ3JhbCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdWxs
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0Jvb2wgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1VJbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzSW50NjQgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0lu
dGVncmFsIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0RvdWJsZSBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdW1lcmljIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjppc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNBcnJheSBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNPYmplY3QgY29uc3QpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnNldENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Omhhc0NvbW1lbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldENvbW1lbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OnNldE9mZnNldFN0YXJ0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpz
ZXRPZmZzZXRMaW1pdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldExpbWl0IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjp0b1N0eWxlZFN0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpW
YWx1ZTo6YmVnaW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6YmVnaW4pOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCk6
CisgICAgICAgIChKc29uOjpQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCk6CisgICAgICAgIChK
c29uOjpQYXRoOjpQYXRoKToKKyAgICAgICAgKEpzb246OlBhdGg6Om1ha2VQYXRoKToKKyAgICAg
ICAgKEpzb246OlBhdGg6OmFkZFBhdGhJbkFyZyk6CisgICAgICAgIChKc29uOjpQYXRoOjppbnZh
bGlkUGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjpyZXNvbHZlIGNvbnN0KToKKyAgICAgICAg
KEpzb246OlBhdGg6Om1ha2UgY29uc3QpOgorICAgICAgICAoSnNvbjo6Y29udGFpbnNDb250cm9s
Q2hhcmFjdGVyKToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENoYXJhY3RlcjApOgor
ICAgICAgICAoSnNvbjo6dmFsdWVUb1N0cmluZyk6CisgICAgICAgIChKc29uOjp2YWx1ZVRvUXVv
dGVkU3RyaW5nKToKKyAgICAgICAgKEpzb246OnN0cm5wYnJrKToKKyAgICAgICAgKEpzb246OnZh
bHVlVG9RdW90ZWRTdHJpbmdOKToKKyAgICAgICAgKEpzb246OldyaXRlcjo6fldyaXRlcik6Cisg
ICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpGYXN0V3JpdGVyKToKKyAgICAgICAgKEpzb246OkZh
c3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KToKKyAgICAgICAgKEpzb246OkZhc3RX
cml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKToKKyAgICAgICAgKEpzb246OkZhc3RXcml0ZXI6
Om9taXRFbmRpbmdMaW5lRmVlZCk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZSk6
CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRl
cjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVZhbHVlKToKKyAg
ICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpz
b246OlN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjpwdXNoVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUlu
ZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudCk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHls
ZWRXcml0ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVD
b21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OlN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6
CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAg
ICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp1
bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFt
V3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OkJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNv
bjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAg
IChKc29uOjpTdHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHJl
YW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyOjpG
YWN0b3J5Ojp+RmFjdG9yeSk6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpT
dHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxk
ZXI6Om5ld1N0cmVhbVdyaXRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFdyaXRl
cktleXMpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUgY29u
c3QpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6Cisg
ICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAg
IChKc29uOjp3cml0ZVN0cmluZyk6CisgICAgICAgIChKc29uOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBvcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgICh2
cjo6VlJfR2V0SW5pdFRva2VuKToKKyAgICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwyKToKKyAg
ICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duSW50
ZXJuYWwpOgorICAgICAgICAodnI6OlZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCk6CisgICAgICAg
ICh2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSk6CisgICAgICAgICh2cjo6VlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQpOgorICAgICAgICAodnI6OlZSX0lzSG1kUHJlc2VudCk6CisgICAgICAg
ICh2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKToKKyAgICAgICAgKHZyOjpWUl9SdW50aW1lUGF0
aCk6CisgICAgICAgICh2cjo6VlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCk6CisgICAgICAgICh2
cjo6VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbik6CisgICAgICAgICh2cjo6
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5UmVj
dXJzaXZlKToKKyAgICAgICAgKEJDcmVhdGVEaXJlY3RvcnkpOgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKToKKyAgICAgICAgKFNldEVudmlyb25tZW50VmFyaWFibGUpOgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IEFkZGVk
LgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHA6IEFk
ZGVkLgorICAgICAgICAoR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKEdl
dElERm9yVlJJbml0RXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJy
b3JzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0
b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgp
OgorICAgICAgICAoUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKFBhdGhfU2V0
V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRmlsZW5hbWUpOgorICAgICAg
ICAoUGF0aF9TdHJpcERpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRXh0ZW5zaW9uKToK
KyAgICAgICAgKFBhdGhfR2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFBhdGhfSXNBYnNvbHV0ZSk6
CisgICAgICAgIChQYXRoX01ha2VBYnNvbHV0ZSk6CisgICAgICAgIChQYXRoX0ZpeFNsYXNoZXMp
OgorICAgICAgICAoUGF0aF9HZXRTbGFzaCk6CisgICAgICAgIChQYXRoX0pvaW4pOgorICAgICAg
ICAoUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKToKKyAgICAgICAgKFBhdGhfQ29tcGFjdCk6Cisg
ICAgICAgIChQYXRoX0dldFRoaXNNb2R1bGVQYXRoKToKKyAgICAgICAgKFBhdGhfSXNEaXJlY3Rv
cnkpOgorICAgICAgICAoUGF0aF9Jc0FwcEJ1bmRsZSk6CisgICAgICAgIChQYXRoX0V4aXN0cyk6
CisgICAgICAgIChQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAg
IChQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAgIChQYXRo
X1JlYWRCaW5hcnlGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVCaW5hcnlGaWxlKToKKyAgICAg
ICAgKFBhdGhfUmVhZFRleHRGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRG
aWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKToKKyAgICAg
ICAgKFBhdGhfRmlsZVBhdGhUb1VybCk6CisgICAgICAgIChQYXRoX1VybFRvRmlsZVBhdGgpOgor
ICAgICAgICAoR2V0VXNlckRvY3VtZW50c1BhdGgpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU2hhcmVk
TGliX0xvYWQpOgorICAgICAgICAoU2hhcmVkTGliX0dldEZ1bmN0aW9uKToKKyAgICAgICAgKFNo
YXJlZExpYl9VbmxvYWQpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGli
dG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3Ry
dG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChTdHJpbmdIYXNQcmVmaXgpOgorICAg
ICAgICAoU3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAgIChTdHJpbmdIYXNT
dWZmaXgpOgorICAgICAgICAoU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAg
IChVVEYxNnRvOCk6CisgICAgICAgIChVVEY4dG8xNik6CisgICAgICAgIChzdHJjcHlfc2FmZSk6
CisgICAgICAgIChTdHJpbmdUb1VwcGVyKToKKyAgICAgICAgKFN0cmluZ1RvTG93ZXIpOgorICAg
ICAgICAoUmV0dXJuU3RkU3RyaW5nKToKKyAgICAgICAgKEJ1ZmZlclRvU3RkU3RyaW5nKToKKyAg
ICAgICAgKFVpbnQ2NFRvU3RyaW5nKToKKyAgICAgICAgKFN0cmluZ1RvVWludDY0KToKKyAgICAg
ICAgKGNJbnRUb0hleERpZ2l0KToKKyAgICAgICAgKGlIZXhDaGFyVG9JbnQpOgorICAgICAgICAo
Vl9VUkxFbmNvZGVJbnRlcm5hbCk6CisgICAgICAgIChWX1VSTERlY29kZUludGVybmFsKToKKyAg
ICAgICAgKFZfVVJMRW5jb2RlKToKKyAgICAgICAgKFZfVVJMRGVjb2RlKToKKyAgICAgICAgKFZf
U3RyaXBFeHRlbnNpb24pOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmg6IEFkZGVkLgorICAgICAgICAoc3RyaWNtcCk6CisgICAgICAgIChzdHJuaWNtcCk6
CisgICAgICAgICh3Y3NuY3B5X3MpOgorICAgICAgICAoc3RybmNweV9zKToKKyAgICAgICAgKHN0
cnRvdWxsKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1
YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0QXBwU2V0dGluZ3NQYXRoKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMpOgorICAgICAg
ICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCk6CisgICAgICAg
IChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKToKKyAg
ICAgICAgKFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKToKKyAgICAgICAgKFN0cmluZ0xpc3RUb0pz
b24pOgorICAgICAgICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5nKToKKyAg
ICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUgY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGggY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQ
YXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBhdGhS
ZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9u
L3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBBZGRlZC4KKwogMjAxNy0wOC0wOCAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBQcm9w
ZXJseSB0ZXN0IGlmIGNvbXBpbGVyIHN1cHBvcnRzIGNvbXBpbGVyIGZsYWdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiMGRm
N2NjODJkMzg3NjFkOGE3MTE1ZjExMmRmMTdkM2Q1YzRkMjYuLjliMjBlYTBiZmY4NTNkM2JhZDFh
MDM3OTA2ZjVkZWI5NjMxN2VkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDktMjIgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZS
XSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IERlZmlu
ZSBVU0VfT1BFTlZSIGZvciBHdGssIE1hYyBhbmQgV1BFLgorCiAyMDE3LTA5LTIzICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1hZ2VzIG1h
eSByZW5kZXIgcGFydGlhbCBmcmFtZXMgZXZlbiBhZnRlciBsb2FkaW5nIGFsbCB0aGUgZW5jb2Rl
ZCBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYTdmMzRjMjc3MWQ4OWVkZjgyODk0NDZlZTZkMDM1NTQ1OTcw
ZTAzOS4uNjI1NWE5NWYwNjI5MWRkMzY5ZDUzN2EwM2ExZGNhOWU5ZmViM2I3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTIyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJWUl0gQWRkIE9wZW5WUiB0byB0aGUgdHJl
ZSBhbmQgdG8gdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzcyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBidWlsZCBkZXBlbmRlbmNpZXMgd2l0aCB0aGUgT3BlblZSIGxpYnJh
cnkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDktMjUgIE1hbnVlbCBSZWdvIENhc2Fzbm92
YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBTbWFsbCByZWZhY3Rv
cmluZyBhZGRpbmcgUmVuZGVyR3JpZDo6Y29udGVudEFsaWdubWVudCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKaW5kZXggMzFmY2Q4
OWZjMGIwN2NiNTZhOGNmMzgzZmI3N2UyNGMyMGI1Y2NjOS4uOGQ5MWU2ZmI2YmEyNjU3NzMyNjBk
ODZjOWYwZWNjMDA0YjgwMTZmMyAxMDA2NDQKLS0tIGEvU291cmNlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIsNiArMjIsMTAgQEAgaWYgKFVTRV9XT0ZG
MikKICAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvd29mZjIpCiBlbmRpZiAoKQogCitp
ZiAoVVNFX09QRU5WUikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvb3BlbnZyKQor
ZW5kaWYgKCkKKwogaWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQ
YXJ0eS94ZGdtaW1lKQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3Rz
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMTNhN2Y5MGNmODRjMjFkYTg0ZDBiYTVmYzI4ZjE0ZDY4ZGEyY2Zk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0NNYWtlTGlzdHMu
dHh0CkBAIC0wLDAgKzEsNTggQEAKKyMgU2V0IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHZlcnNpb24g
b2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KK2NtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lP
TiAyLjgpCisKKyMgU2V0dXAgc29tZSBvcHRpb25zLgorb3B0aW9uKEJVSUxEX1NIQVJFRCAiQnVp
bGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYpCitvcHRpb24oVVNFX0xJQkNY
WCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9OKQorb3B0aW9uKFVTRV9DVVNU
T01fTElCQ1hYICJVc2VzIGEgY3VzdG9tIGxpYmMrKyIgT0ZGKQorCithZGRfZGVmaW5pdGlvbnMo
IC1EVlJfQVBJX1BVQkxJQyApCisKKyMgQ2hlY2sgaWYgMzIgb3IgNjQgYml0IHN5c3RlbS4KK3Nl
dChTSVpFT0ZfVk9JRFAgJHtDTUFLRV9TSVpFT0ZfVk9JRF9QfSkKK2lmKENNQUtFX1NJWkVPRl9W
T0lEX1AgRVFVQUwgOCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICI2NCIpCitlbHNlKCkKKyAgc2V0
KFBST0NFU1NPUl9BUkNIICIzMiIpCitlbmRpZigpCisKKyMgR2V0IHBsYXRmb3JtLgoraWYoV0lO
MzIpCisgICAgICAgc2V0KFBMQVRGT1JNX05BTUUgIndpbiIpCitlbHNlaWYoVU5JWCBBTkQgTk9U
IEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKkxpbnV4IikKKyAgICBz
ZXQoUExBVEZPUk1fTkFNRSAibGludXgiKQorICAgIGFkZF9kZWZpbml0aW9ucygtRExJTlVYIC1E
UE9TSVgpCisgICAgaWYoUFJPQ0VTU09SX0FSQ0ggTUFUQ0hFUyAiNjQiKQorICAgICAgICBhZGRf
ZGVmaW5pdGlvbnMoLURMSU5VWDY0KQorICAgIGVuZGlmKCkKKyAgZW5kaWYoKQorZWxzZWlmKEFQ
UExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKkRhcndpbi4qIiBPUiBDTUFL
RV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioiKQorICAgIHNldChQTEFURk9STV9OQU1F
ICJvc3giKQorICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAtRFBPU0lYKQorICBlbmRpZigpCitl
bmRpZigpCisKKyMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KK2lmKENNQUtFX0NPTVBJTEVSX0lT
X0dOVUNDIE9SIENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xhbmciKQorICAgICAgICMg
RW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hvdWxkbid0IGJlIHZpc2libGUK
KyAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLXN0ZD1jKysx
MSAtZlBJQyAtZnZpc2liaWxpdHk9aGlkZGVuIikKKworICAgICAgICMgU2V0IGN1c3RvbSBsaWJj
KysgdXNhZ2UgaGVyZQorICAgICAgIGlmKENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xh
bmciIEFORCBVU0VfTElCQ1hYKQorICAgICAgICAgICAgICBpZihVU0VfQ1VTVE9NX0xJQkNYWCkK
KyAgICAgICAgICAgICAgICAgICAgIGlmKEJVSUxEX1NIQVJFRCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURf
TElOS0VSX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAgICAgICAgICAgICAgICBlbmRp
ZigpCisgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NY
WF9GTEFHU30gLW5vc3RkaW5jKysiKQorICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9kaXJl
Y3RvcmllcyggJHtMSUJDWFhfSU5DTFVERX0gJHtMSUJDWFhfQUJJX0lOQ0xVREV9KQorICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIlVzaW5nIGN1c3RvbSBsaWJjKysiKQorICAg
ICAgICAgICAgICBlbHNlKCkKKyAgICAgICAgICAgICAgICAgICAgIHNldChDTUFLRV9DWFhfRkxB
R1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgbGliYysrIikKKyAgICAgICAgICAgICAgZW5kaWYo
KQorICAgICAgIGVuZGlmKCkKK2VuZGlmKCkKKworYWRkX3N1YmRpcmVjdG9yeShzcmMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRSBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlODMzMzdkN2ZjYjcyNmQxNGNjMTBmN2Rk
MmZkYTY3OTlkOGExMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvTElDRU5TRQpAQCAtMCwwICsxLDI3IEBACitDb3B5cmlnaHQgKGMpIDIwMTUsIFZhbHZlIENv
cnBvcmF0aW9uCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u
LAorYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKK2xpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCit0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vcgorb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKworMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBu
b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKK21heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0Citz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQKK0FOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECitXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCitESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CitMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KK0FOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTc2ZDYyMmY2YWQz
ZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApAQCAtMCwwICsxLDEzIEBACitPcGVuVlIgU0RLCist
LS0KKworT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0IGFsbG93cyBhY2Nlc3MgdG8g
VlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKK3ZlbmRvcnMgd2l0aG91dCByZXF1aXJpbmcgdGhh
dCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ugb2YgdGhlIAoraGFyZHdhcmUg
dGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMgYW4gU0RLIHRoYXQgY29udGFp
bnMgdGhlIEFQSSAKK2FuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBpcyB1bmRlciBTdGVhbVZSIGlu
IFRvb2xzIG9uIFN0ZWFtLiAKKworIyMjIERvY3VtZW50YXRpb24KKworRG9jdW1lbnRhdGlvbiBm
b3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIgV2lraV0oaHR0cHM6Ly9naXRo
dWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURvY3VtZW50YXRpb24pCisKK01v
cmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNhbiBiZSBmb3VuZCBvbiBodHRw
Oi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53ZWJraXQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2ZlZTRjMWRjNDg5NTdkOGMxMTYyMDgzYWI0OTNlNmMxNWQwOGVkNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFETUUud2Via2l0CkBAIC0wLDAg
KzEsMjIgQEAKK1RoaXMgaXMgdGhlIE9wZW5WUiBsaWJyYXJ5IGZyb20KK2h0dHBzOi8vZ2l0aHVi
LmNvbS9WYWx2ZVNvZnR3YXJlL29wZW52cgorCitVcHN0cmVhbSBjb2RlIGNhbiBiZSB2aWV3ZWQg
YXQKKyBodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIvdHJlZS9tYXN0ZXIv
CisKK2FuZCBjbG9uZWQgYnkKKyBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29m
dHdhcmUvb3BlbnZyLmdpdAorCitDdXJyZW50IHZlcnNpb246IFtjb21taXQgZWJkZWExNTJmOGFh
Yzc3ZTlhNmRiMjk2ODJiODFkNzYyMTU5ZGY3ZV0KKword2hpY2ggY29ycmVzcG9uZHMgdG8gMS4w
LjEwIHJlbGVhc2UuCisKK1dlYktpdCBjaGFuZ2VzOgorKiBwYXRjaGVzL2NtYWtlLWJ1aWxkLnBh
dGNoOiBzY3JpcHQgdXNlZCB0byBhbGxvdyBvcGVudnIgQ01ha2UgYnVpbGQgdG8gYmUKK2ludGVn
cmF0ZWQgaW50byBXZWJLaXQgYnVpbGQKKyogUmVtb3ZlZCBiaW4vIGRpcmVjdG9yeS4gTm90IG5l
ZWRlZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJpZXMKKyogUmVtb3ZlZCBsaWIv
IGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJp
ZXMKKyogUmVtb3ZlZCBjb250cm9sbGVyX2NhbGxvdXRzLyBkaXJlY3RvcnkuIFVubmVlZGVkIGRv
Y3MKKyogUmVtb3ZlZCBzYW1wbGVzLyBkaXJlY3RvcnkuCisqIEFkZGVkIG9wZW52ci54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qLiBNYW51YWxseSBnZW5lcmF0ZWQgZm9yIFhjb2RlIGJ1aWxkLgor
KiBSZXBsYWNlZCB0YWJzIGJ5IHdoaXRlc3BhY2VzIHRvIG1ha2UgY2hlY2std2Via2l0LXN0eWxl
IGhhcHB5LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvVG9vbGNoYWluLWNsYW5nLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNmIwYWMwMTc1YTZl
MzRiNTM5MDJmNGY1ZjRhMjI4OWMxOTcxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvVG9vbGNoYWluLWNsYW5nLmNtYWtlCkBAIC0wLDAgKzEsOSBAQAorc2V0
KENNQUtFX1NZU1RFTV9OQU1FIExpbnV4KQorCitzZXQoQ01BS0VfQ19DT01QSUxFUiBjbGFuZykK
K3NldChDTUFLRV9DWFhfQ09NUElMRVIgY2xhbmcrKykKKworc2V0KENNQUtFX0ZJTkRfUk9PVF9Q
QVRIX01PREVfUFJPR1JBTSBORVZFUikKK3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0xJ
QlJBUlkgT05MWSkKK3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX0lOQ0xVREUgT05MWSkK
K3NldChDTUFLRV9GSU5EX1JPT1RfUEFUSF9NT0RFX1BBQ0tBR0UgT05MWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc2ZTQ5YTZhYzUzMTA4
MGM1ZjQzMDNlNWMxNWNmOTNlMTFmYTJkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52ci5oCkBAIC0wLDAgKzEsMzc3NyBAQAorI3ByYWdt
YSBvbmNlCisKKy8vIG9wZW52ci5oCisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9y
YXRpb24gPT09PT09PT09PT09Ly8KKy8vIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmaWxlLiBEbyBu
b3QgbW9kaWZ5IHRoaXMgZmlsZSBkaXJlY3RseS4KKworI2lmbmRlZiBfT1BFTlZSX0FQSQorI2Rl
ZmluZSBfT1BFTlZSX0FQSQorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKworCisvLyB2cnR5cGVz
LmgKKyNpZm5kZWYgX0lOQ0xVREVfVlJUWVBFU19ICisjZGVmaW5lIF9JTkNMVURFX1ZSVFlQRVNf
SAorCisvLyBGb3J3YXJkIGRlY2xhcmF0aW9ucyB0byBhdm9pZCByZXF1aXJpbmcgdnVsa2FuLmgK
K3N0cnVjdCBWa0RldmljZV9UOworc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVDsKK3N0cnVjdCBW
a0luc3RhbmNlX1Q7CitzdHJ1Y3QgVmtRdWV1ZV9UOworCisvLyBGb3J3YXJkIGRlY2xhcmF0aW9u
cyB0byBhdm9pZCByZXF1aXJpbmcgZDNkMTIuaAorc3RydWN0IElEM0QxMlJlc291cmNlOworc3Ry
dWN0IElEM0QxMkNvbW1hbmRRdWV1ZTsKKworbmFtZXNwYWNlIHZyCit7CisjcHJhZ21hIHBhY2so
IHB1c2gsIDggKQorCit0eXBlZGVmIHZvaWQqIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90OwordHlw
ZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90OworCisvLyBy
aWdodC1oYW5kZWQgc3lzdGVtCisvLyAreSBpcyB1cAorLy8gK3ggaXMgdG8gdGhlIHJpZ2h0Cisv
LyAteiBpcyBnb2luZyBhd2F5IGZyb20geW91CisvLyBEaXN0YW5jZSB1bml0IGlzICBtZXRlcnMK
K3N0cnVjdCBIbWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsKK307CisKK3N0
cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQgbVs0XVs0XTsKK307CisKK3N0cnVj
dCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOworfTsKKworc3RydWN0IEhtZFZl
Y3RvcjRfdAoreworICAgICAgIGZsb2F0IHZbNF07Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yM2Rf
dAoreworICAgICAgIGRvdWJsZSB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3RvcjJfdAorewor
ICAgICAgIGZsb2F0IHZbMl07Cit9OworCitzdHJ1Y3QgSG1kUXVhdGVybmlvbl90Cit7CisgICAg
ICAgZG91YmxlIHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgSG1kQ29sb3JfdAoreworICAgICAg
IGZsb2F0IHIsIGcsIGIsIGE7Cit9OworCitzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgSG1k
VmVjdG9yM190IHZDb3JuZXJzWyA0IF07Cit9OworCitzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAg
ICAgIEhtZFZlY3RvcjJfdCB2VG9wTGVmdDsKKyAgICAgICBIbWRWZWN0b3IyX3QgdkJvdHRvbVJp
Z2h0OworfTsKKworLyoqIFVzZWQgdG8gcmV0dXJuIHRoZSBwb3N0LWRpc3RvcnRpb24gVVZzIGZv
ciBlYWNoIGNvbG9yIGNoYW5uZWwuIAorKiBVVnMgcmFuZ2UgZnJvbSAwIHRvIDEgd2l0aCAwLDAg
aW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSAKKyogc291cmNlIHJlbmRlciB0YXJnZXQu
IFRoZSAwLDAgdG8gMSwxIHJhbmdlIGNvdmVycyBhIHNpbmdsZSBleWUuICovCitzdHJ1Y3QgRGlz
dG9ydGlvbkNvb3JkaW5hdGVzX3QKK3sKKyAgICAgICBmbG9hdCByZlJlZFsyXTsKKyAgICAgICBm
bG9hdCByZkdyZWVuWzJdOworICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsKK307CisKK2VudW0gRVZS
RXllCit7CisgICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEKK307CisK
K2VudW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WCA9IDAsIC8v
IEhhbmRsZSBpcyBhbiBJRDNEMTFUZXh0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfT3BlbkdMID0g
MSwgIC8vIEhhbmRsZSBpcyBhbiBPcGVuR0wgdGV4dHVyZSBuYW1lIG9yIGFuIE9wZW5HTCByZW5k
ZXIgYnVmZmVyIG5hbWUsIGRlcGVuZGluZyBvbiBzdWJtaXQgZmxhZ3MKKyAgICAgICBUZXh0dXJl
VHlwZV9WdWxrYW4gPSAyLCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgVlJWdWxrYW5UZXh0
dXJlRGF0YV90IHN0cnVjdHVyZQorICAgICAgIFRleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsIC8v
IEhhbmRsZSBpcyBhIG1hY09TIGNyb3NzLXByb2Nlc3Mtc2hhcmFibGUgSU9TdXJmYWNlUmVmCisg
ICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0
byBhIEQzRDEyVGV4dHVyZURhdGFfdCBzdHJ1Y3R1cmUKK307CisKK2VudW0gRUNvbG9yU3BhY2UK
K3sKKyAgICAgICBDb2xvclNwYWNlX0F1dG8gPSAwLCAgICAgICAvLyBBc3N1bWVzICdnYW1tYScg
Zm9yIDgtYml0IHBlciBjb21wb25lbnQgZm9ybWF0cywgb3RoZXJ3aXNlICdsaW5lYXInLiAgVGhp
cyBtaXJyb3JzIHRoZSBEWEdJIGZvcm1hdHMgd2hpY2ggaGF2ZSBfU1JHQiB2YXJpYW50cy4KKyAg
ICAgICBDb2xvclNwYWNlX0dhbW1hID0gMSwgICAgICAgLy8gVGV4dHVyZSBkYXRhIGNhbiBiZSBk
aXNwbGF5ZWQgZGlyZWN0bHkgb24gdGhlIGRpc3BsYXkgd2l0aG91dCBhbnkgY29udmVyc2lvbiAo
YS5rLmEuIGRpc3BsYXkgbmF0aXZlIGZvcm1hdCkuCisgICAgICAgQ29sb3JTcGFjZV9MaW5lYXIg
PSAyLCAgICAgICAvLyBTYW1lIGFzIGdhbW1hIGJ1dCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBs
aW5lYXIgcmVwcmVzZW50YXRpb24gdXNpbmcgRFhHSSdzIHNSR0IgY29udmVyc2lvbiBhbGdvcml0
aG0uCit9OworCitzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgdm9pZCogaGFuZGxlOyAvLyBT
ZWUgRVRleHR1cmVUeXBlIGRlZmluaXRpb24gYWJvdmUKKyAgICAgICBFVGV4dHVyZVR5cGUgZVR5
cGU7CisgICAgICAgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9OworCisvLyBIYW5kbGUgdG8g
YSBzaGFyZWQgdGV4dHVyZSAoSEFORExFIG9uIFdpbmRvd3Mgb2J0YWluZWQgdXNpbmcgT3BlblNo
YXJlZFJlc291cmNlKS4KK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRsZV90Owor
I2RlZmluZSBJTlZBTElEX1NIQVJFRF9URVhUVVJFX0hBTkRMRSAgICAgICAoKHZyOjpTaGFyZWRU
ZXh0dXJlSGFuZGxlX3QpMCkKKworZW51bSBFVHJhY2tpbmdSZXN1bHQKK3sKKyAgICAgICBUcmFj
a2luZ1Jlc3VsdF9VbmluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAg
ICAgVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyAgICAgICA9IDEwMCwKKyAg
ICAgICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlICAgICAgID0gMTAxLAor
CisgICAgICAgVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgICAg
ICAgICAgICAgID0gMjAxLAorfTsKKwordHlwZWRlZiB1aW50MzJfdCBEcml2ZXJJZF90Oworc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGtfbkRyaXZlck5vbmUgPSAweEZGRkZGRkZGOworCitzdGF0aWMg
Y29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRlYnVnUmVzcG9uc2VTaXplID0gMzI3Njg7CisK
Ky8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0byBBUEkgY2FsbHMgKi8KK3R5cGVkZWYgdWlu
dDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blRy
YWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhU
cmFja2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tl
ZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZFOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtf
dW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gMHhGRkZGRkZGRjsKKworLyoqIERlc2NyaWJl
cyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5nIHRyYWNrZWQgYXQgYSBnaXZlbiBJRCAqLwor
ZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0lu
dmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgSUQgd2FzIG5vdCB2
YWxpZC4KKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0gMSwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91bnRlZCBEaXNwbGF5cworICAgICAgIFRyYWNr
ZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwgICAgICAgICAgICAgICAgICAgICAvLyBUcmFj
a2VkIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2Vy
ID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMgdHJhY2tlcnMsIHNpbWlsYXIgdG8gY29udHJv
bGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LCAg
ICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlvbnMgdGhhdCBzZXJ2ZSBhcyB0cmFja2luZyBy
ZWZlcmVuY2UgcG9pbnRzCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0Rpc3BsYXlSZWRpcmVj
dCA9IDUsICAgICAgICAgICAgICAvLyBBY2Nlc3NvcmllcyB0aGF0IGFyZW4ndCBuZWNlc3Nhcmls
eSB0cmFja2VkIHRoZW1zZWx2ZXMsIGJ1dCBtYXkgcmVkaXJlY3QgdmlkZW8gb3V0cHV0IGZyb20g
b3RoZXIgdHJhY2tlZCBkZXZpY2VzCit9OworCisKKy8qKiBEZXNjcmliZXMgd2hhdCBzcGVjaWZp
YyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2aWNlICovCitlbnVtIEVUcmFja2Vk
Q29udHJvbGxlclJvbGUKK3sKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxpZCA9
IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIHZhbHVlIGZv
ciBjb250cm9sbGVyIHR5cGUKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQg
PSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2Ug
YXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJv
bGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBk
ZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5kCit9OworCisKKy8qKiBkZXNjcmli
ZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVjdCAqLworc3RydWN0IFRyYWNrZWRE
ZXZpY2VQb3NlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJh
Y2tpbmc7CisgICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFjZSBpbiBtL3MKKyAgICAgICBIbWRW
ZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAgICAgIC8vIGFuZ3VsYXIgdmVsb2Np
dHkgaW4gcmFkaWFucy9zICg/KQorICAgICAgIEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tpbmdSZXN1
bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisKKyAgICAgICAvLyBUaGlzIGluZGljYXRl
cyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBmb3IgdGhpcyBzcG90IGluIHRoZSBw
b3NlIGFycmF5LgorICAgICAgIC8vIEl0IGNvdWxkIGdvIGZyb20gdHJ1ZSB0byBmYWxzZSBpZiB0
aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCisgICAgICAgYm9vbCBiRGV2aWNlSXNDb25uZWN0
ZWQ7Cit9OworCisvKiogSWRlbnRpZmllcyB3aGljaCBzdHlsZSBvZiB0cmFja2luZyBvcmlnaW4g
dGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQorKiBmb3IgdGhlIHBvc2VzIGl0IGlzIHJlcXVl
c3RpbmcgKi8KK2VudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBUcmFja2lu
Z1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCBy
ZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQorICAgICAgIFRyYWNraW5nVW5pdmVyc2VT
dGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUg
c2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgorICAgICAgIFRyYWNraW5nVW5pdmVy
c2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgaW4g
dGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlIGRyaXZlci4gIEl0IGhhcyBZIHVw
IGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBzYW1lIGRyaXZlci4gWW91IHVzdWFs
bHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307CisKKy8vIFJlZmVycyB0byBhIHNpbmdsZSBjb250
YWluZXIgb2YgcHJvcGVydGllcwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKKworc3RhdGljIGNv
bnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bEludmFsaWRQcm9wZXJ0eUNvbnRhaW5l
ciA9IDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkludmFsaWRQcm9wZXJ0
eVRhZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0YWdzIHRvIHNldC9nZXQgY29tbW9uIHR5cGVzIGFz
IHN0cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkZs
b2F0UHJvcGVydHlUYWcgPSAxOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5J
bnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3Vu
VWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5Cb29sUHJvcGVydHlUYWcgPSA0Oworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdf
dCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7CitzdGF0aWMgY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGlj
IGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsK
Kworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlU
YWcgPSAzMDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5PcGVuVlJJbnRl
cm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdf
dCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKKworCisvKiogRWFjaCBl
bnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3BlcnR5IHRoYXQgY2FuIGJlIHJldHJp
ZXZlZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2aWNlLiBNYW55IGZpZWxkcyBhcmUgb25seSB2YWxp
ZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCitlbnVtIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkKK3sKKyAgICAgICBQcm9wX0ludmFsaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIC8vIGdlbmVyYWwgcHJv
cGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xhc3NlcworICAgICAgIFByb3BfVHJh
Y2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDAs
CisgICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJpYWxOdW1iZXJfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDIsCisgICAgICAgUHJvcF9S
ZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0
cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDUsCisgICAgICAgUHJvcF9UcmFj
a2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDEwMDYsCisg
ICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19T
dHJpbmcgICAgICAgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVf
U3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAorICAgICAgIFByb3BfRGV2aWNlSXNX
aXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTAsCisg
ICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zs
b2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAwIGlzIGVtcHR5LCAxIGlzIGZ1bGwK
KyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQgICAgICAgICAgICAg
ID0gMTAxMywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sICAgICAg
ICAgICAgICAgICAgICAgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRl
X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE1LAorICAgICAgIFByb3BfRmly
bXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAgICAgICAgPSAxMDE2LAorICAgICAg
IFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDE3LAorICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAorICAgICAgIFByb3BfRlBHQVZlcnNpb25fVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE5LAorICAg
ICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEsCisgICAgICAgUHJvcF9Eb25nbGVW
ZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIyLAor
ICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhI
bWRfQm9vbCAgICAgICA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNv
cl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAorICAgICAgIFByb3BfRGV2aWNlUHJv
dmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAgID0gMTAyNiwKKyAgICAgICBQcm9w
X0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyAg
ICAgICAgICAgICAgPSAxMDI4LAorICAgICAgIFByb3BfRGV2aWNlQ2xhc3NfSW50MzIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjksCisgICAgICAgUHJvcF9I
YXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyAgICAgICAgICAg
ICAgICAgICA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVk
X0Jvb2wgICAgICA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWly
ZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAorICAgICAgIFByb3BfUGFyZW50RHJpdmVyX1Vp
bnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDM0LAorICAgICAgIFBy
b3BfUmVzb3VyY2VSb290X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDM1LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tl
ZERldmljZUNsYXNzX0hNRAorICAgICAgIFByb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAwLAorICAgICAgIFByb3BfU2Vjb25kc0Zy
b21Wc3luY1RvUGhvdG9uc19GbG9hdCAgICAgICAgICAgICAgPSAyMDAxLAorICAgICAgIFByb3Bf
RGlzcGxheUZyZXF1ZW5jeV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDAzLAorICAgICAgIFByb3BfQ3VycmVudFVuaXZlcnNlSWRf
VWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNCwgCisgICAgICAgUHJvcF9Q
cmV2aW91c1VuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAw
NSwgCisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAg
ICAgICAgICAgID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDcsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDgs
CisgICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTAsCisgICAgICAgUHJvcF9FZGlk
VmVuZG9ySURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nICAgICAgICAgICAg
ICA9IDIwMTIsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVJpZ2h0X1N0cmluZyAgICAgICAg
ICAgICA9IDIwMTMsCisgICAgICAgUHJvcF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAxNCwKKyAgICAgICBQcm9wX0VkaWRQcm9kdWN0SURf
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNSwKKyAgICAgICBQ
cm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAgICAgICAgID0g
MjAxNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAxNywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9h
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE4LAorICAgICAgIFByb3Bf
RGlzcGxheUdDU2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAxOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAyMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIxLAorICAgICAgIFByb3BfTGVu
c0NlbnRlckxlZnRVX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MjIsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAyMywKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxv
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyNCwKKyAgICAgICBQcm9w
X0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCAgICAg
ICAgICAgICAgICAgICAgID0gMjAyNiwKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lv
bl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMjcsCisgICAgICAgUHJvcF9DYW1lcmFG
aXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSAyMDI4LAorICAgICAgIFBy
b3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ICAgICAg
ICAgICAgICA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJzaW9uX1VpbnQ2
NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMiwKKyAgICAgICBQcm9wX0Nh
bWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyICAgICAgICAgICAgICAgICAgICAgPSAyMDMzLAor
ICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQg
PSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVz
X0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlB
bGxvd05pZ2h0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNywKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDM4LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM5LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1h
Z2VOdW1DaGFubmVsc19JbnQzMiAgICAgICAgICAgICAgPSAyMDQwLAorICAgICAgIFByb3BfRGlz
cGxheU1DSW1hZ2VEYXRhX0JpbmFyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDEs
CisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVBob3RvbnNUb1ZibGFua19GbG9hdCAgICAgICAgICAg
ICAgPSAyMDQyLAorICAgICAgIFByb3BfRHJpdmVyRGlyZWN0TW9kZVNlbmRzVnN5bmNFdmVudHNf
Qm9vbCAgICAgICA9IDIwNDMsCisgICAgICAgUHJvcF9EaXNwbGF5RGVidWdNb2RlX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0NCwKKyAgICAgICBQcm9wX0dyYXBo
aWNzQWRhcHRlckx1aWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0NSwK
KyAgICAgICBQcm9wX0RyaXZlclByb3ZpZGVkQ2hhcGVyb25lUGF0aF9TdHJpbmcgICAgICAgICAg
ICAgID0gMjA0OCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVlIHRvIFRy
YWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyCisgICAgICAgUHJvcF9BdHRhY2hlZERldmljZUlk
X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDAsCisgICAgICAgUHJvcF9T
dXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDEs
CisgICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwMDIsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRy
b2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczFUeXBlX0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAzLCAvLyBSZXR1cm4gdmFsdWUgaXMgb2Yg
dHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMyVHlwZV9JbnQzMiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNCwgLy8gUmV0dXJu
IHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlz
M1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
MDUsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAg
ICAgIFByb3BfQXhpczRUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAzMDA2LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVy
QXhpc1R5cGUKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwMDcsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVUcmFj
a2VkQ29udHJvbGxlclJvbGUKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVl
IHRvIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZQorICAgICAgIFByb3BfRmll
bGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAwMCwKKyAg
ICAgICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAg
ICAgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgPSA0MDAyLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdCb3R0b21EZWdy
ZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAzLAorICAgICAgIFByb3BfVHJhY2tp
bmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNCwKKyAgICAgICBQ
cm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9IDQwMDUs
CisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA0MDA2LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1
c2VkIGZvciB1c2VyIGludGVyZmFjZSBsaWtlIGljb25zIG5hbWVzCisgICAgICAgUHJvcF9JY29u
UGF0aE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA1MDAwLCAvLyBERVBSRUNBVEVELiBWYWx1ZSBub3QgcmVmZXJlbmNlZC4gTm93IGV4cGVjdGVk
IHRvIGJlIHBhcnQgb2YgaWNvbiBwYXRoIHByb3BlcnRpZXMuCisgICAgICAgUHJvcF9OYW1lZElj
b25QYXRoRGV2aWNlT2ZmX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMDEs
IC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBv
ciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3Ro
ZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAg
ICAgICAgICAgPSA1MDAyLCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJj
aGluZ0FsZXJ0X1N0cmluZyAgICAgICA9IDUwMDMsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmls
ZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlUmVhZHlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA0LCAvLyB7ZHJp
dmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZv
ciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAg
ICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAgICAgICAgICAg
ICA9IDUwMDUsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRp
YyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngz
MiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA2LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2Zp
bGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMy
IGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29u
UGF0aERldmljZVN0YW5kYnlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA3LCAvLyB7
ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lG
IGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycwor
ICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0TG93X1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgID0gNTAwOCwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBm
b3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMg
YW5kIDMyeDMyIGZvciBvdGhlcnMKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNl
ZCBieSBoZWxwZXJzLCBidXQgYXJlIG9wYXF1ZSB0byBhcHBsaWNhdGlvbnMKKyAgICAgICBQcm9w
X0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5kICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNTE1MCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhh
dCBhcmUgdW5pcXVlIHRvIGRyaXZlcnMKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmlu
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAwLAorICAgICAgIFByb3Bf
SW5zdGFsbFBhdGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA2MDAxLAorICAgICAgIFByb3BfSGFzRGlzcGxheUNvbXBvbmVudF9Cb29sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNjAwMiwKKyAgICAgICBQcm9wX0hhc0NvbnRyb2xsZXJDb21w
b25lbnRfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gNjAwMywKKyAgICAgICBQcm9wX0hhc0Nh
bWVyYUNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAwNCwKKyAg
ICAgICBQcm9wX0hhc0RyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfQm9vbCAgICAgICAgICAgICAg
PSA2MDA1LAorICAgICAgIFByb3BfSGFzVmlydHVhbERpc3BsYXlDb21wb25lbnRfQm9vbCAgICAg
ICAgICAgICAgPSA2MDA2LAorCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2Ug
cHJpdmF0ZSBkZWJ1ZyBkYXRhIGluIHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgUHJvcF9W
ZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCAgICAgICAgICAgICAgICAgICAgID0gMTAwMDAs
CisgICAgICAgUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgICAg
ICAgICA9IDEwOTk5LAorfTsKKworLyoqIE5vIHN0cmluZyBwcm9wZXJ0eSB3aWxsIGV2ZXIgYmUg
bG9uZ2VyIHRoYW4gdGhpcyBsZW5ndGggKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4
UHJvcGVydHlTdHJpbmdTaXplID0gMzIgKiAxMDI0OworCisvKiogVXNlZCB0byByZXR1cm4gZXJy
b3JzIHRoYXQgb2NjdXIgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuICovCitlbnVtIEVUcmFja2Vk
UHJvcGVydHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVHJhY2tlZFByb3BfV3Jv
bmdEYXRhVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVHJhY2tl
ZFByb3BfV3JvbmdEZXZpY2VDbGFzcyAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAgICAgICBU
cmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMs
CisgICAgICAgVHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNCwgLy8gRHJpdmVyIGhhcyBub3Qgc2V0IHRoZSBwcm9wZXJ0eSAoYW5kIG1heSBu
b3QgZXZlcikuCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZERldmljZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2Vy
dmVyICAgICAgICAgICAgICA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRl
ZEJ5RGV2aWNlICAgICAgID0gNywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4
aW11bUxlbmd0aCAgICAgICA9IDgsCisgICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOSwgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlz
bid0IGtub3duIHlldCwgYnV0IGlzIGV4cGVjdGVkIHNvb24uIENhbGwgYWdhaW4gbGF0ZXIuCisg
ICAgICAgVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0g
MTAsCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiAgICAgICAgICAgICAgICAg
ICAgID0gMTEsCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjb250cm9sIHdo
YXQgcGFydCBvZiB0aGUgcHJvdmlkZWQgdGV4dHVyZSB3aWxsIGJlIHVzZWQgaW4gdGhlCisqIGZy
YW1lIGJ1ZmZlci4gKi8KK3N0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIGZsb2F0
IHVNaW4sIHZNaW47CisgICAgICAgZmxvYXQgdU1heCwgdk1heDsKK307CisKKy8qKiBBbGxvd3Mg
c3BlY2lmeWluZyBwb3NlIHVzZWQgdG8gcmVuZGVyIHByb3ZpZGVkIHNjZW5lIHRleHR1cmUgKGlm
IGRpZmZlcmVudCBmcm9tIHZhbHVlIHJldHVybmVkIGJ5IFdhaXRHZXRQb3NlcykuICovCitzdHJ1
Y3QgVlJUZXh0dXJlV2l0aFBvc2VfdCA6IHB1YmxpYyBUZXh0dXJlX3QKK3sKKyAgICAgICBIbWRN
YXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7IC8vIEFjdHVhbCBwb3NlIHVzZWQg
dG8gcmVuZGVyIHNjZW5lIHRleHR1cmVzLgorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRp
b24gdG8gY29udHJvbCBob3cgc2NlbmUgdGV4dHVyZXMgYXJlIHVzZWQgYnkgdGhlIGNvbXBvc2l0
b3Igd2hlbiBjYWxsaW5nIFN1Ym1pdC4gKi8KK2VudW0gRVZSU3VibWl0RmxhZ3MKK3sKKyAgICAg
ICAvLyBTaW1wbGUgcmVuZGVyIHBhdGguIEFwcCBzdWJtaXRzIHJlbmRlcmVkIGxlZnQgYW5kIHJp
Z2h0IGV5ZSBpbWFnZXMgd2l0aCBubyBsZW5zIGRpc3RvcnRpb24gY29ycmVjdGlvbiBhcHBsaWVk
LgorICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMHgwMCwKKworICAgICAgIC8vIEFwcCBzdWJtaXRz
IGZpbmFsIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBsZW5zIGRpc3RvcnRpb24gYWxy
ZWFkeSBhcHBsaWVkIChsZW5zIGRpc3RvcnRpb24gbWFrZXMgdGhlIGltYWdlcyBhcHBlYXIKKyAg
ICAgICAvLyBiYXJyZWwgZGlzdG9ydGVkIHdpdGggY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVj
dGlvbiBhcHBsaWVkKS4gVGhlIGFwcCB3b3VsZCBoYXZlIHVzZWQgdGhlIGRhdGEgcmV0dXJuZWQg
YnkKKyAgICAgICAvLyB2cjo6SVZSU3lzdGVtOjpDb21wdXRlRGlzdG9ydGlvbigpIHRvIGFwcGx5
IHRoZSBjb3JyZWN0IGRpc3RvcnRpb24gdG8gdGhlIHJlbmRlcmVkIGltYWdlcyBiZWZvcmUgY2Fs
bGluZyBTdWJtaXQoKS4KKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGll
ZCA9IDB4MDEsCisKKyAgICAgICAvLyBJZiB0aGUgdGV4dHVyZSBwb2ludGVyIHBhc3NlZCBpbiBp
cyBhY3R1YWxseSBhIHJlbmRlcmJ1ZmZlciAoZS5nLiBmb3IgTVNBQSBpbiBPcGVuR0wpIHRoZW4g
c2V0IHRoaXMgZmxhZy4KKyAgICAgICBTdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAweDAyLAorCisg
ICAgICAgLy8gRG8gbm90IHVzZQorICAgICAgIFN1Ym1pdF9SZXNlcnZlZCA9IDB4MDQsCisKKyAg
ICAgICAvLyBTZXQgdG8gaW5kaWNhdGUgdGhhdCBwVGV4dHVyZSBpcyBhIHBvaW50ZXIgdG8gYSBW
UlRleHR1cmVXaXRoUG9zZV90LgorICAgICAgIFN1Ym1pdF9UZXh0dXJlV2l0aFBvc2UgPSAweDA4
LAorfTsKKworLyoqIERhdGEgcmVxdWlyZWQgZm9yIHBhc3NpbmcgVnVsa2FuIHRleHR1cmVzIHRv
IElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0ZG93
biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCitzdHJ1Y3QgVlJWdWxrYW5U
ZXh0dXJlRGF0YV90Cit7CisgICAgICAgdWludDY0X3QgbV9uSW1hZ2U7IC8vIFZrSW1hZ2UKKyAg
ICAgICBWa0RldmljZV9UICptX3BEZXZpY2U7CisgICAgICAgVmtQaHlzaWNhbERldmljZV9UICpt
X3BQaHlzaWNhbERldmljZTsKKyAgICAgICBWa0luc3RhbmNlX1QgKm1fcEluc3RhbmNlOworICAg
ICAgIFZrUXVldWVfVCAqbV9wUXVldWU7CisgICAgICAgdWludDMyX3QgbV9uUXVldWVGYW1pbHlJ
bmRleDsKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aCwgbV9uSGVpZ2h0LCBtX25Gb3JtYXQsIG1f
blNhbXBsZUNvdW50OworfTsKKworLyoqIERhdGEgcmVxdWlyZWQgZm9yIHBhc3NpbmcgRDNEMTIg
dGV4dHVyZXMgdG8gSVZSQ29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3Bl
blZSX1NodXRkb3duIGJlZm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVj
dCBEM0QxMlRleHR1cmVEYXRhX3QKK3sKKyAgICAgICBJRDNEMTJSZXNvdXJjZSAqbV9wUmVzb3Vy
Y2U7CisgICAgICAgSUQzRDEyQ29tbWFuZFF1ZXVlICptX3BDb21tYW5kUXVldWU7CisgICAgICAg
dWludDMyX3QgbV9uTm9kZU1hc2s7Cit9OworCisvKiogU3RhdHVzIG9mIHRoZSBvdmVyYWxsIHN5
c3RlbSBvciB0cmFja2VkIG9iamVjdHMgKi8KK2VudW0gRVZSU3RhdGUKK3sKKyAgICAgICBWUlN0
YXRlX1VuZGVmaW5lZCA9IC0xLAorICAgICAgIFZSU3RhdGVfT2ZmID0gMCwKKyAgICAgICBWUlN0
YXRlX1NlYXJjaGluZyA9IDEsCisgICAgICAgVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQgPSAyLAor
ICAgICAgIFZSU3RhdGVfUmVhZHkgPSAzLAorICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnQgPSA0
LAorICAgICAgIFZSU3RhdGVfTm90UmVhZHkgPSA1LAorICAgICAgIFZSU3RhdGVfU3RhbmRieSA9
IDYsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3LAorfTsKKworLyoqIFRoZSB0
eXBlcyBvZiBldmVudHMgdGhhdCBjb3VsZCBiZSBwb3N0ZWQgKGFuZCB3aGF0IHRoZSBwYXJhbWV0
ZXJzIG1lYW4gZm9yIGVhY2ggZXZlbnQgdHlwZSkgKi8KK2VudW0gRVZSRXZlbnRUeXBlCit7Cisg
ICAgICAgVlJFdmVudF9Ob25lID0gMCwKKworICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZUFj
dGl2YXRlZCAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNl
RGVhY3RpdmF0ZWQgICAgICAgPSAxMDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBk
YXRlZCAgICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNl
ckludGVyYWN0aW9uU3RhcnRlZCAgICAgICA9IDEwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRE
ZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCAgICAgICA9IDEwNCwKKyAgICAgICBWUkV2ZW50X0lw
ZENoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAg
IFZSRXZlbnRfRW50ZXJTdGFuZGJ5TW9kZSAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAg
ICAgIFZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSAgICAgICAgICAgICAgICAgICAgID0gMTA3LAor
ICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkICAgICAgID0gMTA4LAorICAg
ICAgIFZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgICAgICAgICAgICAgID0gMTA5LAor
ICAgICAgIFZSRXZlbnRfTGVuc0Rpc3RvcnRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDExMCwK
KyAgICAgICBWUkV2ZW50X1Byb3BlcnR5Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDExMSwKKyAgICAgICBWUkV2ZW50X1dpcmVsZXNzRGlzY29ubmVjdCAgICAgICAgICAgICAg
ICAgICAgID0gMTEyLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NSZWNvbm5lY3QgICAgICAgICAg
ICAgICAgICAgICA9IDExMywKKworICAgICAgIFZSRXZlbnRfQnV0dG9uUHJlc3MgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwLCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKKyAg
ICAgICBWUkV2ZW50X0J1dHRvblVucHJlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDEsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZlbnRfQnV0dG9uVG91Y2ggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyLCAvLyBkYXRhIGlzIGNvbnRyb2xs
ZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblVudG91Y2ggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDMsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorCisgICAgICAgVlJFdmVudF9Nb3VzZU1v
dmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwLCAvLyBkYXRhIGlzIG1v
dXNlCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDEsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9u
VXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDIsIC8vIGRhdGEgaXMgbW91c2UKKyAg
ICAgICBWUkV2ZW50X0ZvY3VzRW50ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMzAzLCAvLyBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA0LCAvLyBkYXRhIGlzIG92ZXJsYXkK
KyAgICAgICBWUkV2ZW50X1Njcm9sbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzA1LCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1v
dmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDYsIC8vIGRhdGEgaXMgbW91c2UKKyAg
ICAgICBWUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDMw
NywgLy8gZGF0YSBpcyBvdmVybGF5LCBnbG9iYWwgZXZlbnQKKworICAgICAgIFZSRXZlbnRfSW5w
dXRGb2N1c0NhcHR1cmVkICAgICAgICAgICAgICAgICAgICAgPSA0MDAsIC8vIGRhdGEgaXMgcHJv
Y2VzcyBERVBSRUNBVEVECisgICAgICAgVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgICAgICAg
ICAgICAgICAgICAgICA9IDQwMSwgLy8gZGF0YSBpcyBwcm9jZXNzIERFUFJFQ0FURUQKKyAgICAg
ICBWUkV2ZW50X1NjZW5lRm9jdXNMb3N0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNDAy
LCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNHYWluZWQgICAg
ICAgICAgICAgICAgICAgICA9IDQwMywgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVu
dF9TY2VuZUFwcGxpY2F0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSA0MDQsIC8vIGRhdGEgaXMg
cHJvY2VzcyAtIFRoZSBBcHAgYWN0dWFsbHkgZHJhd2luZyB0aGUgc2NlbmUgY2hhbmdlZCAodXN1
YWxseSB0byBvciBmcm9tIHRoZSBjb21wb3NpdG9yKQorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1
c0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNSwgLy8gZGF0YSBpcyBwcm9jZXNzIC0g
TmV3IGFwcCBnb3QgYWNjZXNzIHRvIGRyYXcgdGhlIHNjZW5lCisgICAgICAgVlJFdmVudF9JbnB1
dEZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA2LCAvLyBkYXRhIGlzIHByb2Nl
c3MKKyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFy
dGVkID0gNDA3LCAvLyBkYXRhIGlzIHByb2Nlc3MKKworICAgICAgIFZSRXZlbnRfSGlkZVJlbmRl
ck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDEwLCAvLyBTZW50IHRvIHRoZSBzY2VuZSBh
cHBsaWNhdGlvbiB0byByZXF1ZXN0IGhpZGluZyByZW5kZXIgbW9kZWxzIHRlbXBvcmFyaWx5Cisg
ICAgICAgVlJFdmVudF9TaG93UmVuZGVyTW9kZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTEs
IC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRvIHJlcXVlc3QgcmVzdG9yaW5nIHJl
bmRlciBtb2RlbCB2aXNpYmlsaXR5CisKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDUwMCwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlIaWRk
ZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDEsCisgICAgICAgVlJFdmVudF9EYXNo
Ym9hcmRBY3RpdmF0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwMiwKKyAgICAgICBWUkV2ZW50
X0Rhc2hib2FyZERlYWN0aXZhdGVkICAgICAgICAgICAgICA9IDUwMywKKyAgICAgICBWUkV2ZW50
X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgICAgICAgICAgICAgID0gNTA0LCAvLyBTZW50IHRvIHRo
ZSBvdmVybGF5IG1hbmFnZXIgLSBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X0Rhc2hi
b2FyZFJlcXVlc3RlZCAgICAgICAgICAgICAgICAgICAgID0gNTA1LCAvLyBTZW50IHRvIHRoZSBv
dmVybGF5IG1hbmFnZXIgLSBkYXRhIGlzIG92ZXJsYXkKKyAgICAgICBWUkV2ZW50X1Jlc2V0RGFz
aGJvYXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA2LCAvLyBTZW5kIHRvIHRoZSBv
dmVybGF5IG1hbmFnZXIKKyAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUwNywgLy8gU2VuZCB0byB0aGUgZGFzaGJvYXJkIHRvIHJl
bmRlciBhIHRvYXN0IC0gZGF0YSBpcyB0aGUgbm90aWZpY2F0aW9uIElECisgICAgICAgVlJFdmVu
dF9JbWFnZUxvYWRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDgsIC8v
IFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcgb3IgU2V0T3ZlcmxheUZyb21G
aWxlIGNhbGwgZmluaXNoZXMgbG9hZGluZworICAgICAgIFZSRXZlbnRfU2hvd0tleWJvYXJkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA5LCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRl
cmVyIGluIHRoZSBkYXNoYm9hcmQgdG8gaW52b2tlIGl0CisgICAgICAgVlJFdmVudF9IaWRlS2V5
Ym9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTAsIC8vIFNlbnQgdG8ga2V5Ym9h
cmQgcmVuZGVyZXIgaW4gdGhlIGRhc2hib2FyZCB0byBoaWRlIGl0CisgICAgICAgVlJFdmVudF9P
dmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkICAgICAgID0gNTExLCAvLyBTZW50IHRvIGFuIG92ZXJs
YXkgd2hlbiBJVlJPdmVybGF5OjpTZXRGb2N1c092ZXJsYXkgaXMgY2FsbGVkIG9uIGl0CisgICAg
ICAgVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzTG9zdCAgICAgICAgICAgICAgPSA1MTIsIC8v
IFNlbmQgdG8gYW4gb3ZlcmxheSB3aGVuIGl0IHByZXZpb3VzbHkgaGFkIGZvY3VzIGFuZCBJVlJP
dmVybGF5OjpTZXRGb2N1c092ZXJsYXkgaXMgY2FsbGVkIG9uIHNvbWV0aGluZyBlbHNlCisgICAg
ICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQgPSA1MTMsCisgICAgICAgVlJF
dmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gICAgICAgPSA1MTQsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwICAgICAgICAgICAgICA9IDUxNSwKKyAgICAgICBWUkV2
ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgICAgICAgICAgICAgICAgICAgICA9IDUxNiwgLy8gU2Ny
ZWVuc2hvdCBidXR0b24gY29tYm8gd2FzIHByZXNzZWQsIERhc2hib2FyZCBzaG91bGQgcmVxdWVz
dCBhIHNjcmVlbnNob3QKKyAgICAgICBWUkV2ZW50X0ltYWdlRmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUxNywgLy8gU2VudCB0byBvdmVybGF5cyB3aGVuIGEgU2V0
T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5ZnJvbUZhaWwgZmFpbHMgdG8gbG9hZAorICAgICAgIFZS
RXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgICAgICAgICAgICAgID0gNTE4LAorCisgICAg
ICAgLy8gU2NyZWVuc2hvdCBBUEkKKyAgICAgICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIwLCAvLyBTZW50IGJ5IHZyY2xpZW50IGFwcGxp
Y2F0aW9uIHRvIGNvbXBvc2l0b3IgdG8gdGFrZSBhIHNjcmVlbnNob3QKKyAgICAgICBWUkV2ZW50
X1NjcmVlbnNob3RUYWtlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MjEs
IC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgc2NyZWVu
c2hvdCBoYXMgYmVlbiB0YWtlbgorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDUyMiwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRo
ZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90IGZhaWxlZCB0byBiZSB0YWtlbgorICAg
ICAgIFZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJkICAgICAgICAgICAgICA9IDUy
MywgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQgdGhhdCBhIGNvbXBsZXRl
ZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RQcm9n
cmVzc1RvRGFzaGJvYXJkICAgICAgID0gNTI0LCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhl
IGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNjcmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorCisg
ICAgICAgVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCAgICAgICA9IDUyNSwK
KworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNjAwLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDYwMSwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9C
ZWdpbkludGVyYWN0aW9uICAgICAgID0gNjAyLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9u
X0Rlc3Ryb3llZCAgICAgICAgICAgICAgICAgICAgID0gNjAzLAorCisgICAgICAgVlJFdmVudF9R
dWl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAw
LCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1Byb2Nlc3NRdWl0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDEsIC8vIGRhdGEgaXMgcHJvY2Vz
cworICAgICAgIFZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21wdCAgICAgICAgICAgICAgICAg
ICAgID0gNzAyLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1F1aXRBY2tub3ds
ZWRnZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDMsIC8vIGRhdGEgaXMgcHJvY2Vz
cworICAgICAgIFZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDcwNCwgLy8gVGhlIGRyaXZlciBoYXMgcmVxdWVzdGVkIHRoYXQgU3RlYW1WUiBz
aHV0IGRvd24KKworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lRGF0YUhhc0NoYW5nZWQgICAgICAg
ICAgICAgICAgICAgICA9IDgwMCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFz
Q2hhbmdlZCAgICAgICAgICAgICAgPSA4MDEsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVUZW1w
RGF0YUhhc0NoYW5nZWQgICAgICAgICAgICAgID0gODAyLAorICAgICAgIFZSRXZlbnRfQ2hhcGVy
b25lU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICA9IDgwMywKKyAgICAgICBWUkV2ZW50X1NlYXRl
ZFplcm9Qb3NlUmVzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA4MDQsCisKKyAgICAg
ICBWUkV2ZW50X0F1ZGlvU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MjAsCisK
KyAgICAgICBWUkV2ZW50X0JhY2tncm91bmRTZXR0aW5nSGFzQ2hhbmdlZCAgICAgICAgICAgICAg
PSA4NTAsCisgICAgICAgVlJFdmVudF9DYW1lcmFTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAg
ICAgICA9IDg1MSwKKyAgICAgICBWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2Vk
ICAgICAgID0gODUyLAorICAgICAgIFZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdl
ZCAgICAgICA9IDg1MywKKyAgICAgICBWUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZlQ2hh
bmdlZCAgICAgICA9IDg1NCwKKyAgICAgICBWUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdl
ZCAgICAgICAgICAgICAgPSA4NTUsCisgICAgICAgVlJFdmVudF9FbmFibGVIb21lQXBwU2V0dGlu
Z3NIYXZlQ2hhbmdlZCA9IDg1NiwKKworICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDkwMCwKKworICAgICAgIFZSRXZlbnRfTUNJ
bWFnZVVwZGF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwKKwor
ICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkICAgICAgICAgICAgICAgICAgICAg
PSAxMTAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCAgICAgICAgICAg
ICAgICAgICAgID0gMTEwMSwKKworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMCwKKyAgICAgICBWUkV2ZW50X0tleWJv
YXJkQ2hhcklucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMSwKKyAgICAgICBW
UkV2ZW50X0tleWJvYXJkRG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MjAyLCAvLyBTZW50IHdoZW4gRE9ORSBidXR0b24gY2xpY2tlZCBvbiBrZXlib2FyZAorCisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkICAgICAgICAgICAgICA9IDEz
MDAsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkICAgICAgICAg
ICAgICA9IDEzMDEsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBT
dGFydGVkICAgICAgID0gMTMwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzAzLAorICAgICAgIFZSRXZlbnRfQXBw
bGljYXRpb25NaW1lVHlwZUxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA0LAor
ICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUg
PSAxMzA1LAorICAgICAgIFZSRXZlbnRfUHJvY2Vzc0Nvbm5lY3RlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMzA2LAorICAgICAgIFZSRXZlbnRfUHJvY2Vzc0Rpc2Nvbm5l
Y3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA3LAorCisgICAgICAg
VlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duICAgICAgICAgICAgICA9IDE0MDAs
CisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiAgICAgICAgICAg
ICAgPSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93
biAgICAgICAgICAgICAgPSAxNDEwLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJv
bmVCb3VuZHNIaWRkZW4gICAgICAgPSAxNDExLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1N0YXJ0VmlkZW9TdHJlYW0gID0gMTUwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1l
cmFfU3RvcFZpZGVvU3RyZWFtICAgPSAxNTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9QYXVzZVZpZGVvU3RyZWFtICA9IDE1MDIsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1Jlc3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFf
RWRpdGluZ1N1cmZhY2UgICAgPSAxNTUwLAorCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRW5hYmxlQ2FwdHVyZSAgICAgICA9IDE2MDAsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfRGlzYWJsZUNhcHR1cmUgICAgICAgPSAxNjAxLAorICAgICAgIFZSRXZlbnRfUGVyZm9y
bWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgICAgICAgPSAxNjAyLAorCisgICAgICAgVlJFdmVudF9N
ZXNzYWdlT3ZlcmxheV9DbG9zZWQgICAgICAgICAgICAgICAgICAgICA9IDE2NTAsCisgICAgICAg
VlJFdmVudF9NZXNzYWdlT3ZlcmxheUNsb3NlUmVxdWVzdGVkICAgICAgID0gMTY1MSwKKyAgICAg
ICAKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGV2ZW50cyBp
biB0aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307CisKKworLyoqIExldmVsIG9m
IEhtZCBhY3Rpdml0eSAqLworLy8gVXNlckludGVyYWN0aW9uX1RpbWVvdXQgbWVhbnMgdGhlIGRl
dmljZSBpcyBpbiB0aGUgcHJvY2VzcyBvZiB0aW1pbmcgb3V0LgorLy8gSW5Vc2UgPSAoIGtfRURl
dmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uIHx8IGtfRURldmljZUFjdGl2aXR5TGV2
ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQgKQorLy8gVlJFdmVudF9UcmFja2VkRGV2aWNlVXNl
ckludGVyYWN0aW9uU3RhcnRlZCBmaXJlcyB3aGVuIHRoZSBkZXZpY2VzIHRyYW5zaXRpb25zIGZy
b20gU3RhbmRieSAtPiBVc2VySW50ZXJhY3Rpb24gb3IgSWRsZSAtPiBVc2VySW50ZXJhY3Rpb24u
CisvLyBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCBmaXJlcyB3aGVu
IHRoZSBkZXZpY2VzIHRyYW5zaXRpb25zIGZyb20gVXNlckludGVyYWN0aW9uX1RpbWVvdXQgLT4g
SWRsZQorZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreyAgICAgICAKKyAgICAgICBrX0VEZXZp
Y2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICBrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX0lkbGUgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIE5vIGFjdGl2aXR5IGZvciB0aGUgbGFzdCAxMCBzZWNvbmRzCisgICAgICAga19FRGV2
aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gPSAxLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBBY3Rpdml0eSAobW92ZW1lbnQgb3IgcHJveCBzZW5zb3IpIGlzIGhhcHBlbmlu
ZyBub3cgICAgICAgCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rp
b25fVGltZW91dCA9IDIsICAgICAgICAgICAgICAvLyBObyBhY3Rpdml0eSBmb3IgdGhlIGxhc3Qg
MC41IHNlY29uZHMKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkbGUgZm9yIGF0IGxl
YXN0IDUgc2Vjb25kcyAoY29uZmlndXJhYmxlIGluIFNldHRpbmdzIC0+IFBvd2VyIE1hbmFnZW1l
bnQpCit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJRHMgKi8KK2Vu
dW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAgICAgICAgICAg
ICAgICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAgICAgPSAxLAor
ICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAg
ICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAzLAorICAgICAg
IGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgICAgIGtfRUJ1
dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAgICAga19FQnV0dG9uX0RQYWRf
RG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAgIAorICAgICAgIGtfRUJ1dHRv
bl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19FQnV0dG9uX0F4aXMwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19FQnV0dG9uX0F4aXMxICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19FQnV0dG9uX0F4aXMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19FQnV0dG9uX0F4aXMzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19FQnV0dG9uX0F4aXM0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAvLyBhbGlhc2VzIGZvciB3ZWxs
IGtub3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgICAg
ICAgPSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciAg
ICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1dHRvbl9EYXNoYm9hcmRfQmFj
ayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19FQnV0dG9uX01heCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUgdWludDY0X3QgQnV0dG9uTWFz
a0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9CisKKy8qKiB1
c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X0NvbnRy
b2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9uSWQgZW51bQor
fTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBvdmVybGF5IHNw
YWNlICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgVlJNb3VzZUJ1dHRvbl9MZWZ0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKKyAgICAgICBWUk1v
dXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAw
MiwKKyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMg
aW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIGZs
b2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVmdCBvZiB0aGUg
dGV4dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1vdXNlQnV0dG9u
IGVudW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwgc2Nyb2xsIGlu
IG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxv
YXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRoZSBwYWQgdHJh
dmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCisgICAgICAgdWlu
dDMyX3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBtb3VzZSBpbnB1dCBtb2RlIHlv
dSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVudHMgYXJlIG9u
bHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0aGUgdG91Y2hwYWQgKG9yIGp1
c3QgcmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92ZV90
Cit7CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVjdGVkIG9uIHRo
ZSB0b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworCisgICAgICAgLy8gSG93IGxv
bmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKKyAgICAgICBmbG9hdCBmbFNl
Y29uZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGljYXRlIHRoZSBz
dGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNpYyBzd2lwZSBz
dHVmZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZhbHVlWUZp
cnN0OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRpbmF0ZSB3aXRo
b3V0IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0IGZW
YWx1ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRzLiBEZXRhaWxz
IHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0cnVjdCBWUkV2ZW50X05vdGlm
aWNhdGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7CisgICAgICAgdWludDMy
X3Qgbm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3IgZXZlbnRzIGFib3V0IHByb2Nl
c3NlcyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgdWludDMyX3QgcGlk
OworICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29sIGJGb3JjZWQ7Cit9OworCisK
Ky8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2
ZW50X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cit9OworCisK
Ky8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2
ZW50X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8vIEVWUlN0YXRl
IGVudW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCitzdHJ1Y3QgVlJF
dmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAgICAgIC8vIFVw
IHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2NF90IHVVc2VyVmFsdWU7ICAg
ICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKK307CisKK3N0cnVjdCBW
UkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfTsKKworc3RydWN0IFZS
RXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25QcmV2aW91c1VuaXZlcnNl
OworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKK307CisKKy8qKiBOb3QgYWN0
dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRfdAor
eworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDE7
Cit9OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVpbnQz
Ml90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9z
ZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK307CisKK3N0cnVj
dCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAgICAg
ICB1aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
X3QKK3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0cnVjdCBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3Qg
dW5BcmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2Vf
dAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3QgblZp
c3VhbE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90Cit7CisgICAg
ICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAorewor
ICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOworICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RFISEhIElmIHlvdSBjaGFuZ2Ug
dGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgKi8KK3R5
cGVkZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAg
ICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAgICAgICBWUkV2ZW50X01vdXNl
X3QgbW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7CisgICAgICAgVlJFdmVu
dF9Qcm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFZSRXZl
bnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsK
KyAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNo
YXBlcm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVz
dDsKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAgICBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OworICAgICAg
IFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgVlJFdmVudF9TY3JlZW5z
aG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAgVlJFdmVudF9BcHBsaWNh
dGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAgIFZSRXZlbnRfRWRpdGluZ0Nh
bWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3QgcHJvcGVydHk7
Cit9IFZSRXZlbnRfRGF0YV90OworCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5l
ZChfX0FQUExFX18pIAorLy8gVGhpcyBzdHJ1Y3R1cmUgd2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBt
aXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9yIAorLy8gY29tcGF0aWJpbGl0eS4gCisj
cHJhZ21hIHBhY2soIHB1c2gsIDQgKQorI2VuZGlmCisKKy8qKiBBbiBldmVudCBwb3N0ZWQgYnkg
dGhlIHNlcnZlciB0byBhbGwgcnVubmluZyBhcHBsaWNhdGlvbnMgKi8KK3N0cnVjdCBWUkV2ZW50
X3QKK3sKKyAgICAgICB1aW50MzJfdCBldmVudFR5cGU7IC8vIEVWUkV2ZW50VHlwZSBlbnVtCisg
ICAgICAgVHJhY2tlZERldmljZUluZGV4X3QgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIGZs
b2F0IGV2ZW50QWdlU2Vjb25kczsKKyAgICAgICAvLyBldmVudCBkYXRhIG11c3QgYmUgdGhlIGVu
ZCBvZiB0aGUgc3RydWN0IGFzIGl0cyBzaXplIGlzIHZhcmlhYmxlCisgICAgICAgVlJFdmVudF9E
YXRhX3QgZGF0YTsKK307CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQ
UExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKy8qKiBUaGUgbWVzaCB0byBk
cmF3IGludG8gdGhlIHN0ZW5jaWwgKG9yIGRlcHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKKyogZWFy
bHkgc3RlbmNpbCAob3IgZGVwdGgpIGtpbGxzIG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBw
ZWFyIG9uIHRoZSBITUQuCisqIFRoaXMgbWVzaCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0
IHdpbGwgYmUgaGlkZGVuIGFmdGVyIGRpc3RvcnRpb24uIAorKgorKiBJZiB0aGUgSE1EIGRvZXMg
bm90IHByb3ZpZGUgYSB2aXNpYmxlIGFyZWEgbWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCisqIE5V
TEwgYW5kIHVuVHJpYW5nbGVDb3VudCB3aWxsIGJlIDAuICovCitzdHJ1Y3QgSGlkZGVuQXJlYU1l
c2hfdAoreworICAgICAgIGNvbnN0IEhtZFZlY3RvcjJfdCAqcFZlcnRleERhdGE7CisgICAgICAg
dWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfTsKKworCitlbnVtIEVIaWRkZW5BcmVhTWVzaFR5
cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAga19l
SGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGlu
ZUxvb3AgPSAyLAorCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTWF4ID0gMywKK307CisKKwor
LyoqIElkZW50aWZpZXMgd2hhdCBraW5kIG9mIGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQg
aW5kZXggbi4gUmVhZCB0aGlzIHR5cGUgCisqIHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9s
bGVyRGV2aWNlSW5kZXgsIFByb3BfQXhpczBUeXBlX0ludDMyICsgbiApOworKi8KK2VudW0gRVZS
Q29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAs
CisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJhY2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRy
b2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2Vy
ID0gMywgLy8gQW5hbG9nIHRyaWdnZXIgZGF0YSBpcyBpbiB0aGUgWCBheGlzCit9OworCisKKy8q
KiBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAq
Lworc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAoreworICAgICAgIGZsb2F0IHg7IC8vIFJhbmdl
cyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBm
cm9tIDAuMCB0byAxLjAgZm9yIHRyaWdnZXJzIHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KKyAg
ICAgICBmbG9hdCB5OyAvLyBSYW5nZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFu
ZCB0cmFjayBwYWRzLiBJcyBhbHdheXMgMC4wIGZvciB0cmlnZ2Vycy4KK307CisKKworLyoqIHRo
ZSBudW1iZXIgb2YgYXhlcyBpbiB0aGUgY29udHJvbGxlciBzdGF0ZSAqLworc3RhdGljIGNvbnN0
IHVpbnQzMl90IGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQgPSA1OworCisKKyNpZiBkZWZp
bmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExFX18pIAorLy8gVGhpcyBzdHJ1Y3R1cmUg
d2FzIG9yaWdpbmFsbHkgZGVmaW5lZCBtaXMtcGFja2VkIG9uIExpbnV4LCBwcmVzZXJ2ZWQgZm9y
IAorLy8gY29tcGF0aWJpbGl0eS4gCisjcHJhZ21hIHBhY2soIHB1c2gsIDQgKQorI2VuZGlmCisK
Ky8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEgY29udHJvbGxlciBhdCBvbmUgbW9tZW50IGlu
IHRpbWUuICovCitzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGUwMDFfdAoreworICAgICAgIC8vIElm
IHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlvdXIgcHJpb3IgY2FsbCwgdGhlbiB0aGUgY29u
dHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFuZ2VkIHNpbmNlIAorICAgICAgIC8vIHlvdXIg
bGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgaXQKKyAgICAgICB1aW50
MzJfdCB1blBhY2tldE51bTsKKworICAgICAgIC8vIGJpdCBmbGFncyBmb3IgZWFjaCBvZiB0aGUg
YnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQgdG8gdHVybiBhbiBJRCBpbnRvIGEgbWFzawor
ICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRv
blRvdWNoZWQ7CisKKyAgICAgICAvLyBBeGlzIGRhdGEgZm9yIHRoZSBjb250cm9sbGVyJ3MgYW5h
bG9nIGlucHV0cworICAgICAgIFZSQ29udHJvbGxlckF4aXNfdCByQXhpc1sga191bkNvbnRyb2xs
ZXJTdGF0ZUF4aXNDb3VudCBdOworfTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5l
ZChfX0FQUExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKwordHlwZWRlZiBW
UkNvbnRyb2xsZXJTdGF0ZTAwMV90IFZSQ29udHJvbGxlclN0YXRlX3Q7CisKKworLyoqIGRldGVy
bWluZXMgaG93IHRvIHByb3ZpZGUgb3V0cHV0IHRvIHRoZSBhcHBsaWNhdGlvbiBvZiB2YXJpb3Vz
IGV2ZW50IHByb2Nlc3NpbmcgZnVuY3Rpb25zLiAqLworZW51bSBFVlJDb250cm9sbGVyRXZlbnRP
dXRwdXRUeXBlCit7CisgICAgICAgQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0gMCwK
KyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVudHMgPSAxLAorfTsKKworCisKKy8q
KiBDb2xsaXNpb24gQm91bmRzIFN0eWxlICovCitlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQor
eworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAgIENP
TExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFLAorICAgICAgIENPTExJU0lPTl9CT1VO
RFNfU1RZTEVfU1FVQVJFUywKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VE
LAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSwKKworICAgICAgIENPTExJU0lP
Tl9CT1VORFNfU1RZTEVfQ09VTlQKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRv
IGN1c3RvbWl6ZSBob3cgdGhlIG92ZXJsYXkgYXBwZWFycyBpbiB0aGUgY29tcG9zaXRvciAqLwor
c3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCit7CisgICAgICAgdWludDMyX3Qgc2l6
ZTsgLy8gc2l6ZW9mKENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzKQorICAgICAgIGJvb2wgY3Vy
dmVkLCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGUsIGRpc3RhbmNlLCBhbHBoYTsKKyAg
ICAgICBmbG9hdCB1T2Zmc2V0LCB2T2Zmc2V0LCB1U2NhbGUsIHZTY2FsZTsKKyAgICAgICBmbG9h
dCBncmlkRGl2cywgZ3JpZFdpZHRoLCBncmlkU2NhbGU7CisgICAgICAgSG1kTWF0cml4NDRfdCB0
cmFuc2Zvcm07Cit9OworCisvKiogdXNlZCB0byByZWZlciB0byBhIHNpbmdsZSBWUiBvdmVybGF5
ICovCit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OworCitzdGF0aWMgY29uc3Qg
VlJPdmVybGF5SGFuZGxlX3Qga191bE92ZXJsYXlIYW5kbGVJbnZhbGlkID0gMDsKKworLyoqIEVy
cm9ycyB0aGF0IGNhbiBvY2N1ciBhcm91bmQgVlIgb3ZlcmxheXMgKi8KK2VudW0gRVZST3Zlcmxh
eUVycm9yCit7CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIFZST3ZlcmxheUVycm9yX1Vua25v
d25PdmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMiwKKyAgICAg
ICBWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCAgICAgICAgICAgICAgPSAxMywg
Ly8gTm8gbW9yZSBvdmVybGF5cyBjb3VsZCBiZSBjcmVhdGVkIGJlY2F1c2UgdGhlIG1heGltdW0g
bnVtYmVyIGFscmVhZHkgZXhpc3QKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxp
dHlUeXBlICAgICAgICAgICAgICA9IDE0LAorICAgICAgIFZST3ZlcmxheUVycm9yX0tleVRvb0xv
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9OYW1lVG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgIFZS
T3ZlcmxheUVycm9yX0tleUluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDE3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSAgICAgICAgICAg
ICAgPSAxOCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSAgICAg
ICAgICAgICAgPSAxOSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkUGFyYW1ldGVyICAg
ICAgICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxD
YW50QmVEZXN0cm95ZWQgICAgICAgPSAyMSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9BcnJheVRv
b1NtYWxsICAgICAgICAgICAgICAgICAgICAgPSAyMiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9S
ZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAyMywKKyAgICAgICBWUk92ZXJsYXlF
cnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAgICAgICAgID0gMjQsCisgICAgICAgVlJP
dmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSAgICAgICAgICAgICAgICAgICAgID0gMjUsCisg
ICAgICAgVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgICAgICAgICAgICAgID0g
MjYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDI3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0aXZl
cyAgICAgICA9IDI5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUgICAg
ICAgICAgICAgICAgICAgICA9IDMwLAorfTsKKworLyoqIGVudW0gdmFsdWVzIHRvIHBhc3MgaW4g
dG8gVlJfSW5pdCB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB3aWxsIAorKiBk
cmF3IGEgM0Qgc2NlbmUuICovCitlbnVtIEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZS
QXBwbGljYXRpb25fT3RoZXIgPSAwLCAgICAgICAgICAgICAgLy8gU29tZSBvdGhlciBraW5kIG9m
IGFwcGxpY2F0aW9uIHRoYXQgaXNuJ3QgY292ZXJlZCBieSB0aGUgb3RoZXIgZW50cmllcyAKKyAg
ICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lICAgICAgID0gMSwgICAgICAgICAgICAgIC8vIEFwcGxp
Y2F0aW9uIHdpbGwgc3VibWl0IDNEIGZyYW1lcyAKKyAgICAgICBWUkFwcGxpY2F0aW9uX092ZXJs
YXkgPSAyLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRpb24gb25seSBpbnRlcmFjdHMgd2l0aCBv
dmVybGF5cworICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsICAgICAgIC8vIEFw
cGxpY2F0aW9uIHNob3VsZCBub3Qgc3RhcnQgU3RlYW1WUiBpZiBpdCdzIG5vdCBhbHJlYWR5IHJ1
bm5pbmcsIGFuZCBzaG91bGQgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGl0IHJ1bm5pbmcgaWYgZXZlcnl0
aGluZyBlbHNlIHF1aXRzLgorICAgICAgIFZSQXBwbGljYXRpb25fVXRpbGl0eSA9IDQsICAgICAg
ICAgICAgICAvLyBJbml0IHNob3VsZCBub3QgdHJ5IHRvIGxvYWQgYW55IGRyaXZlcnMuIFRoZSBh
cHBsaWNhdGlvbiBuZWVkcyBhY2Nlc3MgdG8gdXRpbGl0eQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJmYWNlcyAo
bGlrZSBJVlJTZXR0aW5ncyBhbmQgSVZSQXBwbGljYXRpb25zKSBidXQgbm90IGhhcmR3YXJlLgor
ICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwgICAgICAgLy8gUmVzZXJ2ZWQgZm9y
IHZybW9uaXRvcgorICAgICAgIFZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsLy8gUmVz
ZXJ2ZWQgZm9yIFN0ZWFtCisgICAgICAgVlJBcHBsaWNhdGlvbl9Cb290c3RyYXBwZXIgPSA3LCAv
LyBTdGFydCB1cCBTdGVhbVZSCisKKyAgICAgICBWUkFwcGxpY2F0aW9uX01heAorfTsKKworCisv
KiogZXJyb3IgY29kZXMgZm9yIGZpcm13YXJlICovCitlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sK
KyAgICAgICBWUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAgICAgVlJGaXJtd2FyZUVycm9y
X1N1Y2Nlc3MgPSAxLAorICAgICAgIFZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK307CisKKwor
LyoqIGVycm9yIGNvZGVzIGZvciBub3RpZmljYXRpb25zICovCitlbnVtIEVWUk5vdGlmaWNhdGlv
bkVycm9yCit7CisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgVlJO
b3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisgICAgICAgVlJO
b3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgVlJO
b3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAor
fTsKKworCisvKiogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgVnJfSW5pdCAqLworCisvLyBQbGVh
c2UgYWRkIGFkZXF1YXRlIGVycm9yIGRlc2NyaXB0aW9uIHRvIGh0dHBzOi8vZGV2ZWxvcGVyLnZh
bHZlc29mdHdhcmUuY29tL3cvaW5kZXgucGhwP3RpdGxlPUNhdGVnb3J5OlN0ZWFtVlJIZWxwCitl
bnVtIEVWUkluaXRFcnJvcgoreworICAgICAgIFZSSW5pdEVycm9yX05vbmUgICAgICAgPSAwLAor
ICAgICAgIFZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9JbnN0YWxsYXRpb25Ob3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTAwLAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCAgICAgICAgICAgICAgICAgICAg
ID0gMTAxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAg
ICAgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZv
dW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMywKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW52YWxp
ZEludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJlY3RvcnlJbnZhbGlkICAgICAgICAgICAgICA9IDEw
NywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRp
YWxpemVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwOSwKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAg
PSAxMTAsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTExLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9M
b2dQYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTIsCisg
ICAgICAgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSAgICAgICAgICAg
ICAgPSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE1
LCAvLyBVc2VkIGludGVybmFsbHkgdG8gY2F1c2UgcmV0cmllcyB0byB2cnNlcnZlcgorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2VyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkg
ZXhpdC4gVGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAgICAgICBWUkluaXRFcnJvcl9J
bml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgICAgICAgICA9IDExNywgCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMTgsIAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExOSwKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEyMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCAg
ICAgICAgICAgICAgPSAxMjEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRX
aXRoQ29tcG9zaXRvciAgICAgICAgICAgICAgPSAxMjIsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgICAgICAgICA9IDEyMywKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0ludGVybmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTI0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kRHJpdmVySWRJc05v
bmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTI1LAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAgICAgICAgID0gMTI2LAorICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMjcsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVw
RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAxMjgsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkICAgICAgID0gMTI5LCAKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAgICAgICAgICAgICAgICAgICA9
IDEzMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBz
ICAgICAgICAgICAgICA9IDEzMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlz
YWJsZWRJblNldHRpbmdzICAgICAgICAgICAgICA9IDEzMiwKKyAgICAgICBWUkluaXRFcnJvcl9J
bml0X1ZSRGFzaGJvYXJkTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEzMywKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAg
PSAxMzQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVOb3RGb3VuZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzUsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9W
UkhvbWVTdGFydHVwRmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAxMzYsCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9SZWJvb3RpbmdCdXN5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEzNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X0Zpcm13YXJlUmVjb3ZlcnlCdXN5ICAgICAgICAgICAgICAgICAgICAgPSAxMzksCisKKworICAg
ICAgIFZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLAorICAgICAgIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2
ZXJfUnVudGltZU91dE9mRGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNCwKKyAg
ICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwNSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2Fs
aWJyYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNiwKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgICAgICAgICAgICAgICAgPSAyMDcs
CisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCAgICAgICAgICAg
ICAgICAgICAgID0gMjA4LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNl
SW50ZXJmYWNlVW5rbm93biA9IDIwOSwKKyAgICAgICAvLyBWUkluaXRFcnJvcl9Ecml2ZXJfSG1k
RGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXggPSAyMTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhp
c3RvcmljIHJlYXNvbnMKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRP
ZkJvdW5kcyAgICAgICAgICAgICAgPSAyMTEsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0ht
ZERpc3BsYXlNaXJyb3JlZCAgICAgICAgICAgICAgICAgICAgID0gMjEyLAorCisgICAgICAgVlJJ
bml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAzMDAsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzAxLAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFy
ZWRTdGF0ZUluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDMwMiwKKyAgICAgICBWUklu
aXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDMw
MywKKyAgICAgICBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwNCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA1LAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCAgICAgICAgICAg
ICAgICAgICAgID0gMzA2LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52YWxp
ZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZh
aWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKworICAgICAgIFZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMCwK
KyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCAgICAg
ICA9IDQwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNV
cGRhdGUgICAgICAgPSA0MDIsCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9PdmVybGF5
SW5pdEZhaWxlZCAgICAgICAgICAgICAgPSA0MDMsCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9z
aXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgICAgICAgPSA0MDQsCisgICAgICAgVlJJbml0RXJy
b3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0ZURldmljZSAgICAgICAgICAgICAgPSA0MDUsCisK
KyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1
c1J1bnRpbWUgICAgICAgICAgICAgID0gMTAwMCwKKworICAgICAgIFZSSW5pdEVycm9yX1ZlbmRv
clNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExMDEsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
VW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQgICAgICAgPSAxMTAyLAorICAgICAgIFZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDExMDMsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ29uZmlnVG9vQmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMDQs
CisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21h
bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNSwKKyAgICAgICBWUkluaXRFcnJv
cl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliICAgICAgICAgICAgICAg
ICAgICAgID0gMTEwNiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiAgICAgICAgPSAxMTA3LAorICAgICAgIFZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3RhcnQgICAg
ICAgPSAxMTA4LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vu
YWJsZVRvR2V0VXNlckRhdGFTdGFydCAgICAgICA9IDExMDksCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQgICAgICAgICAg
ICAgID0gMTExMCwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
c2VyRGF0YUFkZHJlc3NSYW5nZSAgICAgICAgICAgICAgPSAxMTExLAorICAgICAgIFZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMTEyLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrICAgICAgICAgICAgICA9IDExMTMsCisKKyAg
ICAgICBWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5kID0gMjAwMCwK
K307CisKK2VudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAgICBWUlNjcmVlbnNob3RUeXBl
X05vbmUgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ubyA9IDEsIC8vIGxlZnQgZXll
IG9ubHkKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyA9IDIsCisgICAgICAgVlJTY3Jl
ZW5zaG90VHlwZV9DdWJlbWFwID0gMywKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm9QYW5v
cmFtYSA9IDQsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSA9IDUKK307
CisKK2VudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgVlJTY3Jl
ZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90
UHJvcGVydHlGaWxlbmFtZXNfVlIgPSAxLAorfTsKKworZW51bSBFVlJUcmFja2VkQ2FtZXJhRXJy
b3IKK3sKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAg
ICAgICA9IDAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3BlcmF0aW9uRmFpbGVkICAg
ICAgICAgICAgPSAxMDAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRs
ZSAgICAgICAgICAgICAgPSAxMDEsICAgICAgIAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9y
X0ludmFsaWRGcmFtZUhlYWRlclZlcnNpb24gID0gMTAyLAorICAgICAgIFZSVHJhY2tlZENhbWVy
YUVycm9yX091dE9mSGFuZGxlcyAgICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSVHJhY2tl
ZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUgICAgICAgICAgICAgICAgID0gMTA0LAorICAgICAgIFZS
VHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBvcnRlZEZvclRoaXNEZXZpY2UgID0gMTA1LAorICAg
ICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZE1lbW9yeUZhaWx1cmUgICAgICAgID0gMTA2
LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5nRmFpbHVyZSAgICAg
ID0gMTA3LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX1N0cmVhbVNldHVwRmFpbHVyZSAg
ICAgICAgID0gMTA4LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1
cmVJZCAgICAgICAgID0gMTA5LAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRT
aGFyZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0Zh
aWxlZFRvR2V0R0xUZXh0dXJlSWQgICAgID0gMTExLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVy
cm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlICAgICAgID0gMTEyLAorICAgICAgIFZSVHJhY2tlZENh
bWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUgICAgICAgICAgID0gMTEzLAorICAgICAgIFZSVHJh
Y2tlZENhbWVyYUVycm9yX0ludmFsaWRBcmd1bWVudCAgICAgICAgICAgID0gMTE0LAorICAgICAg
IFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUgICAgID0gMTE1LAor
fTsKKworZW51bSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlCit7CisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCA9IDAsICAgICAgICAgICAgICAgICAgICAgLy8gVGhp
cyBpcyB0aGUgY2FtZXJhIHZpZGVvIGZyYW1lIHNpemUgaW4gcGl4ZWxzLCBzdGlsbCBkaXN0b3J0
ZWQuCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkLCAgICAgICAg
ICAgICAgICAgICAgIC8vIEluIHBpeGVscywgYW4gdW5kaXN0b3J0ZWQgaW5zY3JpYmVkIHJlY3Rh
bmdsZSByZWdpb24gd2l0aG91dCBpbnZhbGlkIHJlZ2lvbnMuIFRoaXMgc2l6ZSBpcyBzdWJqZWN0
IHRvIGNoYW5nZXMgc2hvcnRseS4KKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4
aW11bVVuZGlzdG9ydGVkLCAgICAgICAvLyBJbiBwaXhlbHMsIG1heGltdW0gdW5kaXN0b3J0ZWQg
d2l0aCBpbnZhbGlkIHJlZ2lvbnMuIE5vbiB6ZXJvIGFscGhhIGNvbXBvbmVudCBpZGVudGlmaWVz
IHZhbGlkIHJlZ2lvbnMuCisgICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUworfTsKKwordHlw
ZWRlZiB1aW50NjRfdCBUcmFja2VkQ2FtZXJhSGFuZGxlX3Q7CisjZGVmaW5lIElOVkFMSURfVFJB
Q0tFRF9DQU1FUkFfSEFORExFICAgICAgICgodnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCkwKQor
CitzdHJ1Y3QgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlOworCisgICAgICAgdWludDMyX3QgbldpZHRo
OworICAgICAgIHVpbnQzMl90IG5IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbkJ5dGVzUGVyUGl4
ZWw7CisKKyAgICAgICB1aW50MzJfdCBuRnJhbWVTZXF1ZW5jZTsKKworICAgICAgIFRyYWNrZWRE
ZXZpY2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK307CisKKy8vIFNjcmVlbnNo
b3QgdHlwZXMKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hvdEhhbmRsZV90OworCitzdGF0aWMg
Y29uc3QgdWludDMyX3Qga191blNjcmVlbnNob3RIYW5kbGVJbnZhbGlkID0gMDsKKworI3ByYWdt
YSBwYWNrKCBwb3AgKQorCisvLyBmaWd1cmUgb3V0IGhvdyB0byBpbXBvcnQgZnJvbSB0aGUgVlIg
QVBJIGRsbAorI2lmIGRlZmluZWQoX1dJTjMyKQorCisjaWZkZWYgVlJfQVBJX0VYUE9SVAorI2Rl
ZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxleHBvcnQgKQorI2Vs
c2UKKyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsaW1wb3J0
ICkKKyNlbmRpZgorCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKENPTVBJTEVS
X0dDQykgfHwgZGVmaW5lZChfX0FQUExFX18pCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVm
aW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRl
ZmF1bHQiKSkpCisjZWxzZQorI2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiAKKyNlbmRp
ZgorCisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBQbGF0Zm9ybS4iCisjZW5kaWYKKworCisj
aWYgZGVmaW5lZCggX1dJTjMyICkKKyNkZWZpbmUgVlJfQ0FMTFRZUEUgX19jZGVjbAorI2Vsc2UK
KyNkZWZpbmUgVlJfQ0FMTFRZUEUgCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgdnIKKworI2Vu
ZGlmIC8vIF9JTkNMVURFX1ZSVFlQRVNfSAorCisKKy8vIHZyYW5ub3RhdGlvbi5oCisjaWZkZWYg
QVBJX0dFTgorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKSBfX2F0dHJpYnV0ZV9fKChhbm5v
dGF0ZSggQVRUUiApKSkKKyNlbHNlCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpCisjZW5k
aWYKKworI2RlZmluZSBWUl9NRVRIT0RfREVTQyhERVNDKSBWUl9DTEFOR19BVFRSKCAiZGVzYzoi
ICNERVNDICI7IiApCisjZGVmaW5lIFZSX0lHTk9SRUFUVFIoKSBWUl9DTEFOR19BVFRSKCAiaWdu
b3JlIiApCisjZGVmaW5lIFZSX09VVF9TVFJVQ1QoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cnVj
dDogOyIgKQorI2RlZmluZSBWUl9PVVRfU1RSSU5HKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJp
bmc6IDsiICkKKyNkZWZpbmUgVlJfT1VUX0FSUkFZX0NBTEwoQ09VTlRFUixGVU5DVElPTixQQVJB
TVMpIFZSX0NMQU5HX0FUVFIoICJvdXRfYXJyYXlfY2FsbDoiICNDT1VOVEVSICIsIiAjRlVOQ1RJ
T04gIiwiICNQQVJBTVMgIjsiICkKKyNkZWZpbmUgVlJfT1VUX0FSUkFZX0NPVU5UKENPVU5URVIp
IFZSX0NMQU5HX0FUVFIoICJvdXRfYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmlu
ZSBWUl9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYXJyYXlfY291bnQ6IiAj
Q09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9BUlJBWV9DT1VOVF9EKENPVU5URVIsIERFU0MpIFZS
X0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VOVEVSICI7ZGVzYzoiICNERVNDICkKKyNk
ZWZpbmUgVlJfQlVGRkVSX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJidWZmZXJfY291
bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9PVVRfQlVGRkVSX0NPVU5UKENPVU5URVIp
IFZSX0NMQU5HX0FUVFIoICJvdXRfYnVmZmVyX2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZp
bmUgVlJfT1VUX1NUUklOR19DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmlu
Z19jb3VudDoiICNDT1VOVEVSICI7IiApCisKKy8vIGl2cnN5c3RlbS5oCituYW1lc3BhY2UgdnIK
K3sKKworY2xhc3MgSVZSU3lzdGVtCit7CitwdWJsaWM6CisKKworICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIERpc3BsYXkgTWV0aG9kcwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAg
LyoqIFN1Z2dlc3RlZCBzaXplIGZvciB0aGUgaW50ZXJtZWRpYXRlIHJlbmRlciB0YXJnZXQgdGhh
dCB0aGUgZGlzdG9ydGlvbiBwdWxscyBmcm9tLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXRS
ZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUoIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAq
cG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAvKiogVGhlIHByb2plY3Rpb24gbWF0cml4IGZvciB0
aGUgc3BlY2lmaWVkIGV5ZSAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4NDRfdCBHZXRQcm9q
ZWN0aW9uTWF0cml4KCBFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWiApID0g
MDsKKworICAgICAgIC8qKiBUaGUgY29tcG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBv
d24gcHJvamVjdGlvbiBtYXRyaXggaW4gY2FzZSB5b3VyCisgICAgICAgKiBhcHBsaWNhdGlvbiBp
cyBkb2luZyBzb21ldGhpbmcgZmFuY3kgbGlrZSBpbmZpbml0ZSBaICovCisgICAgICAgdmlydHVh
bCB2b2lkIEdldFByb2plY3Rpb25SYXcoIEVWUkV5ZSBlRXllLCBmbG9hdCAqcGZMZWZ0LCBmbG9h
dCAqcGZSaWdodCwgZmxvYXQgKnBmVG9wLCBmbG9hdCAqcGZCb3R0b20gKSA9IDA7CisKKyAgICAg
ICAvKiogR2V0cyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZvciB0aGUg
c3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4gCisgICAgICAg
KiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAxLDEgaW4gdGhlIGxv
d2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuCisgICAgICAgKiBSZXR1cm5zIHRydWUg
Zm9yIHN1Y2Nlc3MuIE90aGVyd2lzZSwgcmV0dXJucyBmYWxzZSwgYW5kIGRpc3RvcnRpb24gY29v
cmRpbmF0ZXMgYXJlIG5vdCBzdWl0YWJsZS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQ29tcHV0
ZURpc3RvcnRpb24oIEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYsIERpc3RvcnRpb25D
b29yZGluYXRlc190ICpwRGlzdG9ydGlvbkNvb3JkaW5hdGVzICkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgdGhlIHRyYW5zZm9ybSBmcm9tIGV5ZSBzcGFjZSB0byB0aGUgaGVhZCBzcGFjZS4g
RXllIHNwYWNlIGlzIHRoZSBwZXItZXllIGZsYXZvciBvZiBoZWFkCisgICAgICAgKiBzcGFjZSB0
aGF0IHByb3ZpZGVzIHN0ZXJlbyBkaXNwYXJpdHkuIEluc3RlYWQgb2YgTW9kZWwgKiBWaWV3ICog
UHJvamVjdGlvbiB0aGUgc2VxdWVuY2UgaXMgTW9kZWwgKiBWaWV3ICogRXllXi0xICogUHJvamVj
dGlvbi4gCisgICAgICAgKiBOb3JtYWxseSBWaWV3IGFuZCBFeWVeLTEgd2lsbCBiZSBtdWx0aXBs
aWVkIHRvZ2V0aGVyIGFuZCB0cmVhdGVkIGFzIFZpZXcgaW4geW91ciBhcHBsaWNhdGlvbi4gCisg
ICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3QgR2V0RXllVG9IZWFkVHJhbnNm
b3JtKCBFVlJFeWUgZUV5ZSApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgZWxhcHNlZCBzZWNvbmRzIHNpbmNlIHRoZSBsYXN0IHJlY29yZGVkIHZzeW5jIGV2ZW50LiBU
aGlzIAorICAgICAgICogICAgICAgd2lsbCBjb21lIGZyb20gYSB2c3luYyB0aW1lciBldmVudCBp
biB0aGUgdGltZXIgaWYgcG9zc2libGUgb3IgZnJvbSB0aGUgYXBwbGljYXRpb24tcmVwb3J0ZWQK
KyAgICAgICAqICAgdGltZSBpZiB0aGF0IGlzIG5vdCBhdmFpbGFibGUuIElmIG5vIHZzeW5jIHRp
bWVzIGFyZSBhdmFpbGFibGUgdGhlIGZ1bmN0aW9uIHdpbGwgCisgICAgICAgKiAgIHJldHVybiB6
ZXJvIGZvciB2c3luYyB0aW1lIGFuZCBmcmFtZSBjb3VudGVyIGFuZCByZXR1cm4gZmFsc2UgZnJv
bSB0aGUgbWV0aG9kLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRUaW1lU2luY2VMYXN0VnN5
bmMoIGZsb2F0ICpwZlNlY29uZHNTaW5jZUxhc3RWc3luYywgdWludDY0X3QgKnB1bEZyYW1lQ291
bnRlciApID0gMDsKKworICAgICAgIC8qKiBbRDNEOSBPbmx5XQorICAgICAgICogUmV0dXJucyB0
aGUgYWRhcHRlciBpbmRleCB0aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8gQ3JlYXRlRGV2
aWNlIHRvIHNldCB1cCBEM0Q5IGluIHN1Y2gKKyAgICAgICAqIGEgd2F5IHRoYXQgaXQgY2FuIGdv
IGZ1bGwgc2NyZWVuIGV4Y2x1c2l2ZSBvbiB0aGUgSE1ELiBSZXR1cm5zIC0xIGlmIHRoZXJlIHdh
cyBhbiBlcnJvci4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXREM0Q5QWRh
cHRlckluZGV4KCkgPSAwOworCisgICAgICAgLyoqIFtEM0QxMC8xMSBPbmx5XQorICAgICAgICog
UmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCB0aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8g
RW51bUFkYXB0ZXJzIHRvIGNyZWF0ZSB0aGUgZGV2aWNlIAorICAgICAgICogYW5kIHN3YXAgY2hh
aW4gaW4gRFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJzIHRoZSBpbmRleCB3aWxsIGJl
IHNldCB0byAtMS4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXREWEdJT3V0cHV0
SW5mbyggaW50MzJfdCAqcG5BZGFwdGVySW5kZXggKSA9IDA7CisgICAgICAgCisgICAgICAgLyoq
CisgICAgICAgICogUmV0dXJucyBwbGF0Zm9ybS0gYW5kIHRleHR1cmUtdHlwZSBzcGVjaWZpYyBh
ZGFwdGVyIGlkZW50aWZpY2F0aW9uIHNvIHRoYXQgYXBwbGljYXRpb25zIGFuZCB0aGUKKyAgICAg
ICAgKiBjb21wb3NpdG9yIGFyZSBjcmVhdGluZyB0ZXh0dXJlcyBhbmQgc3dhcCBjaGFpbnMgb24g
dGhlIHNhbWUgR1BVLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhlIGRldmljZQorICAgICAgICAqIHdp
bGwgYmUgc2V0IHRvIDAuCisgICAgICAgICogcEluc3RhbmNlIGlzIGFuIG9wdGlvbmFsIHBhcmFt
ZXRlciB0aGF0IGlzIHJlcXVpcmVkIG9ubHkgd2hlbiB0ZXh0dXJlVHlwZSBpcyBUZXh0dXJlVHlw
ZV9WdWxrYW4uCisgICAgICAgICogW0QzRDEwLzExLzEyIE9ubHkgKEQzRDkgTm90IFN1cHBvcnRl
ZCldCisgICAgICAgICogIFJldHVybnMgdGhlIGFkYXB0ZXIgTFVJRCB0aGF0IGlkZW50aWZpZXMg
dGhlIEdQVSBhdHRhY2hlZCB0byB0aGUgSE1ELiBUaGUgdXNlciBzaG91bGQKKyAgICAgICAgKiAg
ZW51bWVyYXRlIGFsbCBhZGFwdGVycyB1c2luZyBJRFhHSUZhY3Rvcnk6OkVudW1BZGFwdGVycyBh
bmQgSURYR0lBZGFwdGVyOjpHZXREZXNjIHRvIGZpbmQKKyAgICAgICAgKiAgdGhlIGFkYXB0ZXIg
d2l0aCB0aGUgbWF0Y2hpbmcgTFVJRCwgb3IgdXNlIElEWEdJRmFjdG9yeTQ6OkVudW1BZGFwdGVy
QnlMdWlkLgorICAgICAgICAqICBUaGUgZGlzY292ZXJlZCBJRFhHSUFkYXB0ZXIgc2hvdWxkIGJl
IHVzZWQgdG8gY3JlYXRlIHRoZSBkZXZpY2UgYW5kIHN3YXAgY2hhaW4uCisgICAgICAgICogW1Z1
bGthbiBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIHRoZSBWa1BoeXNpY2FsRGV2aWNlIHRoYXQg
c2hvdWxkIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAgICAqICBwSW5zdGFuY2Ug
bXVzdCBiZSB0aGUgaW5zdGFuY2UgdGhlIGFwcGxpY2F0aW9uIHdpbGwgdXNlIHRvIHF1ZXJ5IGZv
ciB0aGUgVmtQaHlzaWNhbERldmljZS4gIFRoZSBhcHBsaWNhdGlvbgorICAgICAgICAqICBtdXN0
IGNyZWF0ZSB0aGUgVmtJbnN0YW5jZSB3aXRoIGV4dGVuc2lvbnMgcmV0dXJuZWQgYnkgSVZSQ29t
cG9zaXRvcjo6R2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQgZW5hYmxlZC4KKyAg
ICAgICAgKiBbbWFjT1MgT25seV0KKyAgICAgICAgKiAgUmV0dXJucyBhbiBpZDxNVExEZXZpY2U+
IHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAgICAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBHZXRPdXRwdXREZXZpY2UoIHVpbnQ2NF90ICpwbkRldmljZSwgRVRl
eHR1cmVUeXBlIHRleHR1cmVUeXBlLCBWa0luc3RhbmNlX1QgKnBJbnN0YW5jZSA9IG51bGxwdHIg
KSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBEaXNwbGF5IE1vZGUgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFVzZSB0byBkZXRlcm1pbmUgaWYg
dGhlIGhlYWRzZXQgZGlzcGxheSBpcyBwYXJ0IG9mIHRoZSBkZXNrdG9wIChpLmUuIGV4dGVuZGVk
KSBvciBoaWRkZW4gKGkuZS4gZGlyZWN0IG1vZGUpLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJ
c0Rpc3BsYXlPbkRlc2t0b3AoKSA9IDA7CisKKyAgICAgICAvKiogU2V0IHRoZSBkaXNwbGF5IHZp
c2liaWxpdHkgKHRydWUgPSBleHRlbmRlZCwgZmFsc2UgPSBkaXJlY3QgbW9kZSkuICBSZXR1cm4g
dmFsdWUgb2YgdHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2hhbmdlIHdhcyBzdWNjZXNzZnVsLiAq
LworICAgICAgIHZpcnR1YWwgYm9vbCBTZXREaXNwbGF5VmlzaWJpbGl0eSggYm9vbCBiSXNWaXNp
YmxlT25EZXNrdG9wICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgICAgICAgLy8gVHJhY2tpbmcgTWV0aG9kcworICAgICAgIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFRoZSBwb3NlIHRo
YXQgdGhlIHRyYWNrZXIgdGhpbmtzIHRoYXQgdGhlIEhNRCB3aWxsIGJlIGluIGF0IHRoZSBzcGVj
aWZpZWQgbnVtYmVyIG9mIHNlY29uZHMgaW50byB0aGUgCisgICAgICAgKiBmdXR1cmUuIFBhc3Mg
MCB0byBnZXQgdGhlIHN0YXRlIGF0IHRoZSBpbnN0YW50IHRoZSBtZXRob2QgaXMgY2FsbGVkLiBN
b3N0IG9mIHRoZSB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQKKyAgICAgICAqIGNhbGN1bGF0
ZSB0aGUgdGltZSB1bnRpbCB0aGUgcGhvdG9ucyB3aWxsIGJlIGVtaXR0ZWQgZnJvbSB0aGUgZGlz
cGxheSBhbmQgcGFzcyB0aGF0IHRpbWUgaW50byB0aGUgbWV0aG9kLgorICAgICAgICoKKyAgICAg
ICAqIFRoaXMgaXMgcm91Z2hseSBhbmFsb2dvdXMgdG8gdGhlIGludmVyc2Ugb2YgdGhlIHZpZXcg
bWF0cml4IGluIG1vc3QgYXBwbGljYXRpb25zLCB0aG91Z2ggCisgICAgICAgKiBtYW55IGdhbWVz
IHdpbGwgbmVlZCB0byBkbyBzb21lIGFkZGl0aW9uYWwgcm90YXRpb24gb3IgdHJhbnNsYXRpb24g
b24gdG9wIG9mIHRoZSByb3RhdGlvbgorICAgICAgICogYW5kIHRyYW5zbGF0aW9uIHByb3ZpZGVk
IGJ5IHRoZSBoZWFkIHBvc2UuCisgICAgICAgKgorICAgICAgICogRm9yIGRldmljZXMgd2hlcmUg
YlBvc2VJc1ZhbGlkIGlzIHRydWUgdGhlIGFwcGxpY2F0aW9uIGNhbiB1c2UgdGhlIHBvc2UgdG8g
cG9zaXRpb24gdGhlIGRldmljZQorICAgICAgICogaW4gcXVlc3Rpb24uIFRoZSBwcm92aWRlZCBh
cnJheSBjYW4gYmUgYW55IHNpemUgdXAgdG8ga191bk1heFRyYWNrZWREZXZpY2VDb3VudC4gCisg
ICAgICAgKgorICAgICAgICogU2VhdGVkIGV4cGVyaWVuY2VzIHNob3VsZCBjYWxsIHRoaXMgbWV0
aG9kIHdpdGggVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCBhbmQgcmVjZWl2ZSBwb3NlcyByZWxhdGl2
ZQorICAgICAgICogdG8gdGhlIHNlYXRlZCB6ZXJvIHBvc2UuIFN0YW5kaW5nIGV4cGVyaWVuY2Vz
IHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIHdpdGggVHJhY2tpbmdVbml2ZXJzZVN0YW5kaW5nIAor
ICAgICAgICogYW5kIHJlY2VpdmUgcG9zZXMgcmVsYXRpdmUgdG8gdGhlIENoYXBlcm9uZSBQbGF5
IEFyZWEuIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgc2hvdWxkIAorICAgICAg
ICogcHJvYmFibHkgbm90IGJlIHVzZWQgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbiBpcyB0aGUgQ2hh
cGVyb25lIGNhbGlicmF0aW9uIHRvb2wgaXRzZWxmLCBidXQgd2lsbCBwcm92aWRlCisgICAgICAg
KiBwb3NlcyByZWxhdGl2ZSB0byB0aGUgaGFyZHdhcmUtc3BlY2lmaWMgY29vcmRpbmF0ZSBzeXN0
ZW0gaW4gdGhlIGRyaXZlci4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXREZXZp
Y2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2lu
LCBmbG9hdCBmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3csIFZSX0FSUkFZX0NPVU5U
KHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50KSBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJh
Y2tlZERldmljZVBvc2VBcnJheSwgdWludDMyX3QgdW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291
bnQgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgemVybyBwb3NlIGZvciB0aGUgc2VhdGVk
IHRyYWNrZXIgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIHlh
dyBvZiB0aGUgSE1ELiBBZnRlciAKKyAgICAgICAqIFJlc2V0U2VhdGVkWmVyb1Bvc2UgYWxsIEdl
dERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UgY2FsbHMgdGhhdCBwYXNzIFRyYWNraW5nVW5p
dmVyc2VTZWF0ZWQgYXMgdGhlIG9yaWdpbiAKKyAgICAgICAqIHdpbGwgYmUgcmVsYXRpdmUgdG8g
dGhpcyBuZXcgemVybyBwb3NlLiBUaGUgbmV3IHplcm8gY29vcmRpbmF0ZSBzeXN0ZW0gd2lsbCBu
b3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgdGhlIFkgYXhpcyAKKyAgICAgICAqIGlzIHVwIGluIHRo
ZSByZWFsIHdvcmxkLCBzbyB0aGUgbmV4dCBwb3NlIHJldHVybmVkIGZyb20gR2V0RGV2aWNlVG9B
YnNvbHV0ZVRyYWNraW5nUG9zZSBhZnRlciBhIGNhbGwgdG8gCisgICAgICAgKiBSZXNldFNlYXRl
ZFplcm9Qb3NlIG1heSBub3QgYmUgZXhhY3RseSBhbiBpZGVudGl0eSBtYXRyaXguCisgICAgICAg
KgorICAgICAgICogTk9URTogVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIHVzZXIncyBwcmV2
aW91c2x5IHNhdmVkIHNlYXRlZCB6ZXJvIHBvc2UgYW5kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBh
cyB0aGUgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uIAorICAgICAgICogVXNlcnMgYXJlIGFsc28g
YWJsZSB0byBzZXQgdGhlaXIgc2VhdGVkIHplcm8gcG9zZSB2aWEgdGhlIE9wZW5WUiBEYXNoYm9h
cmQuCisgICAgICAgKiovCisgICAgICAgdmlydHVhbCB2b2lkIFJlc2V0U2VhdGVkWmVyb1Bvc2Uo
KSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gdGhlIHNlYXRl
ZCB6ZXJvIHBvc2UgdG8gdGhlIHN0YW5kaW5nIGFic29sdXRlIHRyYWNraW5nIHN5c3RlbS4gVGhp
cyBhbGxvd3MgCisgICAgICAgKiBhcHBsaWNhdGlvbnMgdG8gcmVwcmVzZW50IHRoZSBzZWF0ZWQg
b3JpZ2luIHRvIHVzZWQgb3IgdHJhbnNmb3JtIG9iamVjdCBwb3NpdGlvbnMgZnJvbSBvbmUgY29v
cmRpbmF0ZQorICAgICAgICogc3lzdGVtIHRvIHRoZSBvdGhlci4gCisgICAgICAgKgorICAgICAg
ICogVGhlIHNlYXRlZCBvcmlnaW4gbWF5IG9yIG1heSBub3QgYmUgaW5zaWRlIHRoZSBQbGF5IEFy
ZWEgb3IgQ29sbGlzaW9uIEJvdW5kcyByZXR1cm5lZCBieSBJVlJDaGFwZXJvbmUuIEl0cyBwb3Np
dGlvbiAKKyAgICAgICAqIGRlcGVuZHMgb24gd2hhdCB0aGUgdXNlciBoYXMgc2V0IGZyb20gdGhl
IERhc2hib2FyZCBzZXR0aW5ncyBhbmQgcHJldmlvdXMgY2FsbHMgdG8gUmVzZXRTZWF0ZWRaZXJv
UG9zZS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3QgR2V0U2VhdGVkWmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyB0aGUgdHJhbnNmb3JtIGZyb20gdGhlIHRyYWNraW5nIG9yaWdpbiB0byB0aGUgc3RhbmRpbmcg
YWJzb2x1dGUgdHJhY2tpbmcgc3lzdGVtLiBUaGlzIGFsbG93cworICAgICAgICogYXBwbGljYXRp
b25zIHRvIGNvbnZlcnQgZnJvbSByYXcgdHJhY2tpbmcgc3BhY2UgdG8gdGhlIGNhbGlicmF0ZWQg
c3RhbmRpbmcgY29vcmRpbmF0ZSBzeXN0ZW0uICovCisgICAgICAgdmlydHVhbCBIbWRNYXRyaXgz
NF90IEdldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkgPSAwOwor
CisgICAgICAgLyoqIEdldCBhIHNvcnRlZCBhcnJheSBvZiBkZXZpY2UgaW5kaWNlcyBvZiBhIGdp
dmVuIGNsYXNzIG9mIHRyYWNrZWQgZGV2aWNlcyAoZS5nLiBjb250cm9sbGVycykuICBEZXZpY2Vz
IGFyZSBzb3J0ZWQgcmlnaHQgdG8gbGVmdAorICAgICAgICogcmVsYXRpdmUgdG8gdGhlIHNwZWNp
ZmllZCB0cmFja2VkIGRldmljZSAoZGVmYXVsdDogaG1kIC0tIHBhc3MgaW4gLTEgZm9yIGFic29s
dXRlIHRyYWNraW5nIHNwYWNlKS4gIFJldHVybnMgdGhlIG51bWJlciBvZiBkZXZpY2VzCisgICAg
ICAgKiBpbiB0aGUgbGlzdCwgb3IgdGhlIHNpemUgb2YgdGhlIGFycmF5IG5lZWRlZCBpZiBub3Qg
bGFyZ2UgZW5vdWdoLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U29ydGVkVHJhY2tl
ZERldmljZUluZGljZXNPZkNsYXNzKCBFVHJhY2tlZERldmljZUNsYXNzIGVUcmFja2VkRGV2aWNl
Q2xhc3MsIFZSX0FSUkFZX0NPVU5UKHVuVHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCkgdnI6
OlRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSwgdWludDMy
X3QgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB2cjo6VHJhY2tlZERldmljZUluZGV4
X3QgdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4ID0ga191blRyYWNrZWREZXZpY2VJbmRl
eF9IbWQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbGV2ZWwgb2YgYWN0aXZpdHkg
b24gdGhlIGRldmljZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVEZXZpY2VBY3Rpdml0eUxldmVsIEdl
dFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5E
ZXZpY2VJZCApID0gMDsKKworICAgICAgIC8qKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGFwcGx5
IHRoZSBzcGVjaWZpZWQgdHJhbnNmb3JtIHRvIHRoZSBzcGVjaWZpZWQgcG9zZS4KKyAgICAgICAq
ICAgVGhpcyBwcm9wZXJseSB0cmFuc2Zvcm1zIGFsbCBwb3NlIGNvbXBvbmVudHMsIGluY2x1ZGlu
ZyB2ZWxvY2l0eSBhbmQgYW5ndWxhciB2ZWxvY2l0eQorICAgICAgICovCisgICAgICAgdmlydHVh
bCB2b2lkIEFwcGx5VHJhbnNmb3JtKCBUcmFja2VkRGV2aWNlUG9zZV90ICpwT3V0cHV0UG9zZSwg
Y29uc3QgVHJhY2tlZERldmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlLCBjb25zdCBIbWRN
YXRyaXgzNF90ICpwVHJhbnNmb3JtICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGRl
dmljZSBpbmRleCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb2xlLCBmb3IgZXhhbXBsZSB0
aGUgbGVmdCBoYW5kIG9yIHRoZSByaWdodCBoYW5kLiAqLworICAgICAgIHZpcnR1YWwgdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xl
KCB2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUgKSA9IDA7CisKKyAgICAg
ICAvKiogUmV0dXJucyB0aGUgY29udHJvbGxlciB0eXBlIGFzc29jaWF0ZWQgd2l0aCBhIGRldmlj
ZSBpbmRleC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdl
dENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFByb3BlcnR5IG1ldGhvZHMKKyAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBkZXZpY2UgY2xhc3Mgb2YgYSB0cmFja2VkIGRldmljZS4gSWYgdGhlcmUgaGFzIG5v
dCBiZWVuIGEgZGV2aWNlIGNvbm5lY3RlZCBpbiB0aGlzIHNsb3QKKyAgICAgICAqIHNpbmNlIHRo
ZSBhcHBsaWNhdGlvbiBzdGFydGVkIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gVHJhY2tlZERl
dmljZV9JbnZhbGlkLiBGb3IgcHJldmlvdXMgZGV0ZWN0ZWQKKyAgICAgICAqIGRldmljZXMgdGhl
IGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBwcmV2aW91c2x5IG9ic2VydmVkIGRldmljZSBjbGFz
cy4gCisgICAgICAgKgorICAgICAgICogVG8gZGV0ZXJtaW5lIHdoaWNoIGRldmljZXMgZXhpc3Qg
b24gdGhlIHN5c3RlbSwganVzdCBsb29wIGZyb20gMCB0byBrX3VuTWF4VHJhY2tlZERldmljZUNv
dW50IGFuZCBjaGVjaworICAgICAgICogdGhlIGRldmljZSBjbGFzcy4gRXZlcnkgZGV2aWNlIHdp
dGggc29tZXRoaW5nIG90aGVyIHRoYW4gVHJhY2tlZERldmljZV9JbnZhbGlkIGlzIGFzc29jaWF0
ZWQgd2l0aCBhbiAKKyAgICAgICAqIGFjdHVhbCB0cmFja2VkIGRldmljZS4gKi8KKyAgICAgICB2
aXJ0dWFsIEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgaWYgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVkIGluIHRoaXMgc2xvdC4gKi8K
KyAgICAgICB2aXJ0dWFsIGJvb2wgSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5z
IGEgYm9vbCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhl
IHByb3BlcnR5IGlzIG5vdCBhIGJvb2wgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGZh
bHNlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOwor
CisgICAgICAgLyoqIFJldHVybnMgYSBmbG9hdCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRl
eCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIGZsb2F0IHR5cGUgdGhpcyBm
dW5jdGlvbiB3aWxsIHJldHVybiAwLiAqLworICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RmxvYXRU
cmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAq
cEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhbiBpbnQgcHJvcGVydHku
IElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3Qg
YSBpbnQgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVh
bCBpbnQzMl90IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9y
IHRoZSBwcm9wZXJ0eSBpcyBub3QgYSB1aW50NjQgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0
dXJuIDAuICovCisgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRVaW50NjRUcmFja2VkRGV2aWNl
UHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwg
KSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIG1hdHJpeCBwcm9wZXJ0eS4gSWYgdGhlIGRl
dmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIG1hdHJpeCB0
eXBlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGlkZW50aXR5LiAqLworICAgICAgIHZpcnR1
YWwgSG1kTWF0cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAgICAg
IC8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5v
dCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgc3RyaW5nIHR5cGUgdGhpcyBmdW5jdGlv
biB3aWxsIAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5n
dGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBp
bmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlz
IGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4g
Ki8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0
eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNl
UHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1
bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisK
KyAgICAgICAvKiogcmV0dXJucyBhIHN0cmluZyB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIHNw
ZWNpZmllZCBwcm9wZXJ0eSBlcnJvci4gVGhlIHN0cmluZyB3aWxsIGJlIHRoZSBuYW1lIAorICAg
ICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAq
LworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKCBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBFdmVudCBtZXRob2RzCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiog
UmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0aGUgbmV4dCBldmVudCBvbiB0
aGUgcXVldWUgaWYgdGhlcmUgaXMgb25lLiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzCisgICAgICAg
KiB0aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNp
emUgaW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgUG9sbE5leHRFdmVudCggVlJFdmVudF90ICpwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50
ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdp
dGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRoZXJlIGlzIG9uZS4gSWYgdGhlcmUg
YXJlIG5vIGV2ZW50cworICAgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS4gRmlsbHMg
aW4gdGhlIHBvc2Ugb2YgdGhlIGFzc29jaWF0ZWQgdHJhY2tlZCBkZXZpY2UgaW4gdGhlIHByb3Zp
ZGVkIHBvc2Ugc3RydWN0LiAKKyAgICAgICAqIFRoaXMgcG9zZSB3aWxsIGFsd2F5cyBiZSBvbGRl
ciB0aGFuIHRoZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgdXNlZCB0
byByZW5kZXIgdGhlIGRldmljZS4gCisgICAgICAgdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBz
aXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCisgICAgICAgdmlydHVhbCBi
b29sIFBvbGxOZXh0RXZlbnRXaXRoUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdp
biwgVlJFdmVudF90ICpwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50LCB2cjo6VHJhY2tlZERl
dmljZVBvc2VfdCAqcFRyYWNrZWREZXZpY2VQb3NlICkgPSAwOworCisgICAgICAgLyoqIHJldHVy
bnMgdGhlIG5hbWUgb2YgYW4gRVZSRXZlbnQgZW51bSB2YWx1ZSAqLworICAgICAgIHZpcnR1YWwg
Y29uc3QgY2hhciAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKCBFVlJFdmVudFR5cGUgZVR5cGUg
KSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBSZW5kZXJpbmcgaGVscGVyIG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBoaWRk
ZW4gYXJlYSBtZXNoIGZvciB0aGUgY3VycmVudCBITUQuIFRoZSBwaXhlbHMgY292ZXJlZCBieSB0
aGlzIG1lc2ggd2lsbCBuZXZlciBiZSBzZWVuIGJ5IHRoZSB1c2VyIGFmdGVyIHRoZSBsZW5zIGRp
c3RvcnRpb24gaXMKKyAgICAgICAqIGFwcGxpZWQgYmFzZWQgb24gdmlzaWJpbGl0eSB0byB0aGUg
cGFuZWxzLiBJZiB0aGlzIEhNRCBkb2VzIG5vdCBoYXZlIGEgaGlkZGVuIGFyZWEgbWVzaCwgdGhl
IHZlcnRleCBkYXRhIGFuZCBjb3VudCB3aWxsIGJlIE5VTEwgYW5kIDAgcmVzcGVjdGl2ZWx5Lgor
ICAgICAgICogVGhpcyBtZXNoIGlzIG1lYW50IHRvIGJlIHJlbmRlcmVkIGludG8gdGhlIHN0ZW5j
aWwgYnVmZmVyIChvciBpbnRvIHRoZSBkZXB0aCBidWZmZXIgc2V0dGluZyBuZWFyeikgYmVmb3Jl
IHJlbmRlcmluZyBlYWNoIGV5ZSdzIHZpZXcuIAorICAgICAgICogVGhpcyB3aWxsIGltcHJvdmUg
cGVyZm9ybWFuY2UgYnkgbGV0dGluZyB0aGUgR1BVIGVhcmx5LXJlamVjdCBwaXhlbHMgdGhlIHVz
ZXIgd2lsbCBuZXZlciBzZWUgYmVmb3JlIHJ1bm5pbmcgdGhlIHBpeGVsIHNoYWRlci4KKyAgICAg
ICAqIE5PVEU6IFJlbmRlciB0aGlzIG1lc2ggd2l0aCBiYWNrZmFjZSBjdWxsaW5nIGRpc2FibGVk
IHNpbmNlIHRoZSB3aW5kaW5nIG9yZGVyIG9mIHRoZSB2ZXJ0aWNlcyBjYW4gYmUgZGlmZmVyZW50
IHBlci1ITUQgb3IgcGVyLWV5ZS4KKyAgICAgICAqIFNldHRpbmcgdGhlIGJJbnZlcnNlIGFyZ3Vt
ZW50IHRvIHRydWUgd2lsbCBwcm9kdWNlIHRoZSB2aXNpYmxlIGFyZWEgbWVzaCB0aGF0IGlzIGNv
bW1vbmx5IHVzZWQgaW4gcGxhY2Ugb2YgZnVsbC1zY3JlZW4gcXVhZHMuIFRoZSB2aXNpYmxlIGFy
ZWEgbWVzaCBjb3ZlcnMgYWxsIG9mIHRoZSBwaXhlbHMgdGhlIGhpZGRlbiBhcmVhIG1lc2ggZG9l
cyBub3QgY292ZXIuCisgICAgICAgKiBTZXR0aW5nIHRoZSBiTGluZUxvb3AgYXJndW1lbnQgd2ls
bCByZXR1cm4gYSBsaW5lIGxvb3Agb2YgdmVydGljZXMgaW4gSGlkZGVuQXJlYU1lc2hfdC0+cFZl
cnRleERhdGEgd2l0aCBIaWRkZW5BcmVhTWVzaF90LT51blRyaWFuZ2xlQ291bnQgc2V0IHRvIHRo
ZSBudW1iZXIgb2YgdmVydGljZXMuCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEhpZGRlbkFy
ZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hU
eXBlIHR5cGUgPSBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCApID0gMDsKKworICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIENvbnRyb2xs
ZXIgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgICAgLyoqIEZpbGxzIHRoZSBzdXBwbGllZCBzdHJ1Y3Qgd2l0aCB0aGUgY3VycmVu
dCBzdGF0ZSBvZiB0aGUgY29udHJvbGxlci4gUmV0dXJucyBmYWxzZSBpZiB0aGUgY29udHJvbGxl
ciBpbmRleAorICAgICAgICogaXMgaW52YWxpZC4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0
Q29udHJvbGxlclN0YXRlKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgsIHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29udHJvbGxlclN0YXRlLCB1aW50
MzJfdCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUgKSA9IDA7CisKKyAgICAgICAvKiogZmlsbHMgdGhl
IHN1cHBsaWVkIHN0cnVjdCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb250cm9sbGVy
IGFuZCB0aGUgcHJvdmlkZWQgcG9zZSB3aXRoIHRoZSBwb3NlIG9mIAorICAgICAgICogdGhlIGNv
bnRyb2xsZXIgd2hlbiB0aGUgY29udHJvbGxlciBzdGF0ZSB3YXMgdXBkYXRlZCBtb3N0IHJlY2Vu
dGx5LiBVc2UgdGhpcyBmb3JtIGlmIHlvdSBuZWVkIGEgcHJlY2lzZSBjb250cm9sbGVyCisgICAg
ICAgKiBwb3NlIGFzIGlucHV0IHRvIHlvdXIgYXBwbGljYXRpb24gd2hlbiB0aGUgdXNlciBwcmVz
c2VzIG9yIHJlbGVhc2VzIGEgYnV0dG9uLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDb250
cm9sbGVyU3RhdGVXaXRoUG9zZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgdnI6
OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB2cjo6VlJDb250
cm9sbGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9sbGVyU3Rh
dGVTaXplLCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UgKSA9IDA7CisK
KyAgICAgICAvKiogVHJpZ2dlciBhIHNpbmdsZSBoYXB0aWMgcHVsc2Ugb24gYSBjb250cm9sbGVy
LiBBZnRlciB0aGlzIGNhbGwgdGhlIGFwcGxpY2F0aW9uIG1heSBub3QgdHJpZ2dlciBhbm90aGVy
IGhhcHRpYyBwdWxzZSBvbiB0aGlzIGNvbnRyb2xsZXIKKyAgICAgICAqIGFuZCBheGlzIGNvbWJp
bmF0aW9uIGZvciA1bXMuICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyaWdnZXJIYXB0aWNQdWxz
ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB1aW50
MzJfdCB1bkF4aXNJZCwgdW5zaWduZWQgc2hvcnQgdXNEdXJhdGlvbk1pY3JvU2VjICkgPSAwOwor
CisgICAgICAgLyoqIHJldHVybnMgdGhlIG5hbWUgb2YgYW4gRVZSQnV0dG9uSWQgZW51bSB2YWx1
ZSAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0QnV0dG9uSWROYW1lRnJvbUVudW0o
IEVWUkJ1dHRvbklkIGVCdXR0b25JZCApID0gMDsKKworICAgICAgIC8qKiByZXR1cm5zIHRoZSBu
YW1lIG9mIGFuIEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlbnVtIHZhbHVlICovCisgICAgICAgdmly
dHVhbCBjb25zdCBjaGFyICpHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oIEVWUkNv
bnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUgKSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgT3Bl
blZSIHRoYXQgdGhpcyBwcm9jZXNzIHdhbnRzIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gY29udHJvbGxl
ciBidXR0b24gc3RhdGVzIGFuZCBidXR0b24gZXZlbnRzLiBPdGhlciBhcHBzIHdpbGwgYmUgbm90
aWZpZWQgdGhhdCAKKyAgICAgICAqIHRoZXkgaGF2ZSBsb3N0IGlucHV0IGZvY3VzIHdpdGggYSBW
UkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCBldmVudC4gUmV0dXJucyBmYWxzZSBpZiBpbnB1dCBm
b2N1cyBjb3VsZCBub3QgYmUgY2FwdHVyZWQgZm9yCisgICAgICAgKiBzb21lIHJlYXNvbi4gKi8K
KyAgICAgICB2aXJ0dWFsIGJvb2wgQ2FwdHVyZUlucHV0Rm9jdXMoKSA9IDA7CisKKyAgICAgICAv
KiogVGVsbHMgT3BlblZSIHRoYXQgdGhpcyBwcm9jZXNzIG5vIGxvbmdlciB3YW50cyBleGNsdXNp
dmUgYWNjZXNzIHRvIGJ1dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBldmVudHMuIE90aGVyIGFwcHMg
d2lsbCBiZSBub3RpZmllZCAKKyAgICAgICAqIHRoYXQgaW5wdXQgZm9jdXMgaGFzIGJlZW4gcmVs
ZWFzZWQgd2l0aCBhIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkIGV2ZW50LiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpID0gMDsKKworICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgaWYgaW5wdXQgZm9jdXMgaXMgY2FwdHVyZWQgYnkgYW5vdGhlciBwcm9jZXNzLiAq
LworICAgICAgIHZpcnR1YWwgYm9vbCBJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nl
c3MoKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvLyBEZWJ1ZyBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogU2VuZHMgYSByZXF1ZXN0IHRvIHRoZSBk
cml2ZXIgZm9yIHRoZSBzcGVjaWZpZWQgZGV2aWNlIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS4g
VGhlIG1heGltdW0gcmVzcG9uc2Ugc2l6ZSBpcyAzMmssCisgICAgICAgKiBidXQgdGhpcyBtZXRo
b2QgY2FuIGJlIGNhbGxlZCB3aXRoIGEgc21hbGxlciBidWZmZXIuIElmIHRoZSByZXNwb25zZSBl
eGNlZWRzIHRoZSBzaXplIG9mIHRoZSBidWZmZXIsIGl0IGlzIHRydW5jYXRlZC4gCisgICAgICAg
KiBUaGUgc2l6ZSBvZiB0aGUgcmVzcG9uc2UgaW5jbHVkaW5nIGl0cyB0ZXJtaW5hdGluZyBudWxs
IGlzIHJldHVybmVkLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgRHJpdmVyRGVidWdSZXF1
ZXN0KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgY29uc3QgY2hhciAq
cGNoUmVxdWVzdCwgY2hhciAqcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VC
dWZmZXJTaXplICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gRmlybXdhcmUgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIC8qKiBQZXJmb3Jt
cyB0aGUgYWN0dWFsIGZpcm13YXJlIHVwZGF0ZSBpZiBhcHBsaWNhYmxlLiAKKyAgICAgICAgKiBU
aGUgZm9sbG93aW5nIGV2ZW50cyB3aWxsIGJlIHNlbnQsIGlmIFZSRmlybXdhcmVFcnJvcl9Ob25l
IHdhcyByZXR1cm5lZDogVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQsIFZSRXZlbnRfRmly
bXdhcmVVcGRhdGVGaW5pc2hlZCAKKyAgICAgICAgKiBVc2UgdGhlIHByb3BlcnRpZXMgUHJvcF9G
aXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCwgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVf
Qm9vbCwgYW5kIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZworICAgICAgICAq
IHRvIGZpZ3VyZSBvdXIgd2hldGhlciBhIGZpcm13YXJlIHVwZGF0ZSBpcyBhdmFpbGFibGUsIGFu
ZCB0byBmaWd1cmUgb3V0IHdoZXRoZXIgaXRzIGEgbWFudWFsIHVwZGF0ZSAKKyAgICAgICAgKiBQ
cm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgc2hvdWxkIHBvaW50IHRvIGFuIFVS
TCBkZXNjcmliaW5nIHRoZSBtYW51YWwgdXBkYXRlIHByb2Nlc3MgKi8KKyAgICAgICB2aXJ0dWFs
IHZyOjpFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZSggdnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXggKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBBcHBsaWNhdGlvbiBsaWZlIGN5
Y2xlIG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8gYWNrbm93bGVkZ2UgdG8gdGhlIHN5c3RlbSB0
aGF0IFZSRXZlbnRfUXVpdCBoYXMgYmVlbiByZWNlaXZlZCBhbmQgdGhhdCB0aGUgcHJvY2VzcyBp
cyBleGl0aW5nLgorICAgICAgICogVGhpcyBleHRlbmRzIHRoZSB0aW1lb3V0IHVudGlsIHRoZSBw
cm9jZXNzIGlzIGtpbGxlZC4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQWNrbm93bGVkZ2VRdWl0
X0V4aXRpbmcoKSA9IDA7CisKKyAgICAgICAvKiogQ2FsbCB0aGlzIHRvIHRlbGwgdGhlIHN5c3Rl
bSB0aGF0IHRoZSB1c2VyIGlzIGJlaW5nIHByb21wdGVkIHRvIHNhdmUgZGF0YS4gVGhpcworICAg
ICAgICogaGFsdHMgdGhlIHRpbWVvdXQgYW5kIGRpc21pc3NlcyB0aGUgZGFzaGJvYXJkIChpZiBp
dCB3YXMgdXApLiBBcHBsaWNhdGlvbnMgc2hvdWxkIGJlIHN1cmUgdG8gYWN0dWFsbHkgCisgICAg
ICAgKiBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSBhbmQgdGhlbiBleGl0IGFmdGVyd2FyZCwgb3Ro
ZXJ3aXNlIHRoZSB1c2VyIHdpbGwgYmUgbGVmdCBpbiBhIGNvbmZ1c2luZyBzdGF0ZS4gKi8KKyAg
ICAgICB2aXJ0dWFsIHZvaWQgQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKSA9IDA7CisKK307
CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU3lzdGVtX1ZlcnNpb24gPSAiSVZSU3lz
dGVtXzAxNyI7CisKK30KKworCisvLyBpdnJhcHBsaWNhdGlvbnMuaAorbmFtZXNwYWNlIHZyCit7
CisKKyAgICAgICAvKiogVXNlZCBmb3IgYWxsIGVycm9ycyByZXBvcnRlZCBieSB0aGUgSVZSQXBw
bGljYXRpb25zIGludGVyZmFjZSAqLworICAgICAgIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgor
ICAgICAgIHsKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgPSAwLAorCisg
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlBbHJlYWR5RXhpc3RzID0gMTAw
LCAgICAgICAvLyBPbmx5IG9uZSBhcHBsaWNhdGlvbiBjYW4gdXNlIGFueSBnaXZlbiBrZXkKKyAg
ICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vTWFuaWZlc3QgPSAxMDEsICAgICAgICAg
ICAgICAgICAgICAgLy8gdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gZG9lcyBub3QgaGF2ZSBhIG1h
bmlmZXN0CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uID0g
MTAyLCAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcKKyAg
ICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRJbmRleCA9IDEwMywKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBsaWNhdGlvbiA9IDEwNCwgICAg
ICAgLy8gdGhlIGFwcGxpY2F0aW9uIGNvdWxkIG5vdCBiZSBmb3VuZAorICAgICAgICAgICAgICBW
UkFwcGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVkID0gMTA1LCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBBbiBJUEMgZmFpbHVyZSBjYXVzZWQgdGhlIHJlcXVlc3QgdG8gZmFpbAorICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEw
NiwgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZlc3QgPSAx
MDcsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkQXBwbGljYXRpb24g
PSAxMDgsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hGYWlsZWQgPSAx
MDksICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHByb2Nlc3MgZGlkbid0IHN0YXJ0CisgICAg
ICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9
IDExMCwgLy8gdGhlIHN5c3RlbSB3YXMgYWxyZWFkeSBzdGFydGluZyB0aGUgc2FtZSBhcHBsaWNh
dGlvbgorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyA9
IDExMSwgICAgICAgICAgICAgIC8vIFRoZSBzeXN0ZW0gd2FzIGFscmVhZHkgc3RhcnRpbmcgYSBk
aWZmZXJlbnQgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX09s
ZEFwcGxpY2F0aW9uUXVpdHRpbmcgPSAxMTIsIAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9u
RXJyb3JfVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRp
b25FcnJvcl9Jc1RlbXBsYXRlID0gMTE0LCAvLyBlcnJvciB3aGVuIHlvdSB0cnkgdG8gY2FsbCBM
YXVuY2hBcHBsaWNhdGlvbigpIG9uIGEgdGVtcGxhdGUgdHlwZSBhcHAgKHVzZSBMYXVuY2hUZW1w
bGF0ZUFwcGxpY2F0aW9uKQorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfU3RlYW1W
UklzRXhpdGluZyA9IDExNSwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfQnVm
ZmVyVG9vU21hbGwgPSAyMDAsICAgICAgICAgICAgICAvLyBUaGUgcHJvdmlkZWQgYnVmZmVyIHdh
cyB0b28gc21hbGwgdG8gZml0IHRoZSByZXF1ZXN0ZWQgZGF0YQorICAgICAgICAgICAgICBWUkFw
cGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQgPSAyMDEsICAgICAgICAgICAgICAvLyBUaGUg
cmVxdWVzdGVkIHByb3BlcnR5IHdhcyBub3Qgc2V0CisgICAgICAgICAgICAgIFZSQXBwbGljYXRp
b25FcnJvcl9Vbmtub3duUHJvcGVydHkgPSAyMDIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRp
b25FcnJvcl9JbnZhbGlkUGFyYW1ldGVyID0gMjAzLAorICAgICAgIH07CisKKyAgICAgICAvKiog
VGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIGFwcGxpY2F0aW9uIGtleSAqLworICAgICAgIHN0YXRp
YyBjb25zdCB1aW50MzJfdCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggPSAxMjg7CisKKyAg
ICAgICAvKiogdGhlc2UgYXJlIHRoZSBwcm9wZXJ0aWVzIGF2YWlsYWJsZSBvbiBhcHBsaWNhdGlv
bnMuICovCisgICAgICAgZW51bSBFVlJBcHBsaWNhdGlvblByb3BlcnR5CisgICAgICAgeworICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFtZV9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9MYXVuY2hUeXBlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTEsCisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyAgICAgICA9
IDEyLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJp
bmcgICAgICAgICAgICAgICAgICAgICA9IDEzLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9u
UHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTQsCisgICAg
ICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTUsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5
X0Rlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSA1MCwKKyAgICAgICAgICAgICAgVlJB
cHBsaWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1
MSwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICA9IDUyLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJv
cGVydHlfU291cmNlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUzLAorCisg
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9v
bCAgICAgICA9IDYwLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1w
bGF0ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MSwKKyAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblByb3BlcnR5X0lzSW5zdGFuY2VkX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYy
LAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnRlcm5hbF9Cb29sICAg
ICAgICAgICAgICAgICAgICAgPSA2MywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3Bl
cnR5X1dhbnRzQ29tcG9zaXRvclBhdXNlSW5TdGFuZGJ5X0Jvb2wgPSA2NCwKKworICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0ICAgICAgICAg
ICAgICA9IDcwLAorICAgICAgIH07CisKKyAgICAgICAvKiogVGhlc2UgYXJlIHN0YXRlcyB0aGUg
c2NlbmUgYXBwbGljYXRpb24gc3RhcnR1cCBwcm9jZXNzIHdpbGwgZ28gdGhyb3VnaC4gKi8KKyAg
ICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlCisgICAgICAgeworICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9Ob25lID0gMCwKKworICAgICAgICAgICAg
ICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCA9IDEwLAorICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2ggPSAx
MSwKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9u
X05ld0FwcExhdW5jaGVkID0gMjAsCisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBBcHBPdmVy
cmlkZUtleXNfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGNoS2V5Owor
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpwY2hWYWx1ZTsKKyAgICAgICB9OworCisgICAgICAg
LyoqIEN1cnJlbnRseSByZWNvZ25pemVkIG1pbWUgdHlwZXMgKi8KKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX01pbWVUeXBlX0hvbWVBcHAgICAgICAgICAgICAgID0gInZy
L2hvbWUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTWltZVR5cGVf
R2FtZVRoZWF0ZXIgICAgICAgPSAidnIvZ2FtZV90aGVhdGVyIjsKKworICAgICAgIGNsYXNzIElW
UkFwcGxpY2F0aW9ucworICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAg
Ly8gLS0tLS0tLS0tLS0tLS0tICBBcHBsaWNhdGlvbiBtYW5hZ2VtZW50ICAtLS0tLS0tLS0tLS0t
LS0gLy8KKworICAgICAgICAgICAgICAvKiogQWRkcyBhbiBhcHBsaWNhdGlvbiBtYW5pZmVzdCB0
byB0aGUgbGlzdCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIGFw
cGxpY2F0aW9ucy4gCisgICAgICAgICAgICAgICogVGVtcG9yYXJ5IG1hbmlmZXN0cyBhcmUgbm90
IGF1dG9tYXRpY2FsbHkgbG9hZGVkICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGlj
YXRpb25FcnJvciBBZGRBcHBsaWNhdGlvbk1hbmlmZXN0KCBjb25zdCBjaGFyICpwY2hBcHBsaWNh
dGlvbk1hbmlmZXN0RnVsbFBhdGgsIGJvb2wgYlRlbXBvcmFyeSA9IGZhbHNlICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZW1vdmVzIGFuIGFwcGxpY2F0aW9uIG1hbmlmZXN0IGZyb20gdGhl
IGxpc3QgdG8gbG9hZCB3aGVuIGJ1aWxkaW5nIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBhcHBsaWNh
dGlvbnMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBSZW1v
dmVBcHBsaWNhdGlvbk1hbmlmZXN0KCBjb25zdCBjaGFyICpwY2hBcHBsaWNhdGlvbk1hbmlmZXN0
RnVsbFBhdGggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBhbiBh
cHBsaWNhdGlvbiBpcyBpbnN0YWxsZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElz
QXBwbGljYXRpb25JbnN0YWxsZWQoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGFwcGxpY2F0aW9ucyBhdmFpbGFi
bGUgaW4gdGhlIGxpc3QgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRBcHBs
aWNhdGlvbkNvdW50KCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBrZXkg
b2YgdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbi4gVGhlIGluZGV4IGlzIGF0IGxlYXN0IDAgYW5k
IGlzIGxlc3MgdGhhbiB0aGUgcmV0dXJuIAorICAgICAgICAgICAgICAqIHZhbHVlIG9mIEdldEFw
cGxpY2F0aW9uQ291bnQoKS4gVGhlIGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3Qga191bk1heEFw
cGxpY2F0aW9uS2V5TGVuZ3RoIGluIG9yZGVyIHRvIAorICAgICAgICAgICAgICAqIGZpdCB0aGUg
a2V5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0QXBw
bGljYXRpb25LZXlCeUluZGV4KCB1aW50MzJfdCB1bkFwcGxpY2F0aW9uSW5kZXgsIFZSX09VVF9T
VFJJTkcoKSBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVu
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGFwcGxp
Y2F0aW9uIGZvciB0aGUgc3BlY2lmaWVkIFByb2Nlc3MgSWQuIFRoZSBidWZmZXIgc2hvdWxkIGJl
IGF0IGxlYXN0IAorICAgICAgICAgICAgICAqIGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCBp
biBvcmRlciB0byBmaXQgdGhlIGtleS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBs
aWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQoIHVpbnQzMl90IHVuUHJv
Y2Vzc0lkLCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVu
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyB0aGUgYXBwbGljYXRpb24uIFRo
ZSBleGlzdGluZyBzY2VuZSBhcHBsaWNhdGlvbiB3aWxsIGV4aXQgYW5kIHRoZW4gdGhlIG5ldyBh
cHBsaWNhdGlvbiB3aWxsIHN0YXJ0LgorICAgICAgICAgICAgICAqIFRoaXMgY2FsbCBpcyBub3Qg
dmFsaWQgZm9yIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9ucy4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxpY2F0aW9uKCBjb25zdCBj
aGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIExhdW5jaGVzIGFuIGlu
c3RhbmNlIG9mIGFuIGFwcGxpY2F0aW9uIG9mIHR5cGUgdGVtcGxhdGUsIHdpdGggaXRzIGFwcCBr
ZXkgYmVpbmcgcGNoTmV3QXBwS2V5ICh3aGljaCBtdXN0IGJlIHVuaXF1ZSkgYW5kIG9wdGlvbmFs
bHkgb3ZlcnJpZGUgc2VjdGlvbnMKKyAgICAgICAgICAgICAgKiBmcm9tIHRoZSBtYW5pZmVzdCBm
aWxlIHZpYSBBcHBPdmVycmlkZUtleXNfdAorICAgICAgICAgICAgICAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbigg
Y29uc3QgY2hhciAqcGNoVGVtcGxhdGVBcHBLZXksIGNvbnN0IGNoYXIgKnBjaE5ld0FwcEtleSwg
VlJfQVJSQVlfQ09VTlQoIHVuS2V5cyApIGNvbnN0IEFwcE92ZXJyaWRlS2V5c190ICpwS2V5cywg
dWludDMyX3QgdW5LZXlzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBsYXVuY2hlcyB0aGUg
YXBwbGljYXRpb24gY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1pbWUgdHlwZSBhbmQg
cGFzc2VzIGl0IHRoZSBvcHRpb24gYXJncywgdHlwaWNhbGx5IHRoZSBmaWxlbmFtZSBvciBvYmpl
Y3QgbmFtZSBvZiB0aGUgaXRlbSBiZWluZyBsYXVuY2hlZCAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBl
KCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSwgY29uc3QgY2hhciAqcGNoQXJncyApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgdGhlIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0
aW9uIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJ1bm5pbmcuIFRoaXMgY2FsbCBpcyBvbmx5IHZhbGlk
IGZvciAKKyAgICAgICAgICAgICAgKiBkYXNoYm9hcmQgb3ZlcmxheSBhcHBsaWNhdGlvbnMuICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hEYXNoYm9h
cmRPdmVybGF5KCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIENhbmNlbCBhIHBlbmRpbmcgbGF1bmNoIGZvciBhbiBhcHBsaWNhdGlvbiAqLworICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgQ2FuY2VsQXBwbGljYXRpb25MYXVuY2goIGNvbnN0IGNoYXIg
KnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogSWRlbnRpZmllcyBhIHJ1bm5p
bmcgYXBwbGljYXRpb24uIE9wZW5WUiBjYW4ndCBhbHdheXMgdGVsbCB3aGljaCBwcm9jZXNzIHN0
YXJ0ZWQgaW4gcmVzcG9uc2UKKyAgICAgICAgICAgICAgKiB0byBhIFVSTC4gVGhpcyBmdW5jdGlv
biBhbGxvd3MgYSBVUkwgaGFuZGxlciAob3IgdGhlIHByb2Nlc3MgaXRzZWxmKSB0byBpZGVudGlm
eSB0aGUgYXBwIGtleSAKKyAgICAgICAgICAgICAgKiBmb3IgdGhlIG5vdyBydW5uaW5nIGFwcGxp
Y2F0aW9uLiBQYXNzaW5nIGEgcHJvY2VzcyBJRCBvZiAwIGlkZW50aWZpZXMgdGhlIGNhbGxpbmcg
cHJvY2Vzcy4gCisgICAgICAgICAgICAgICogVGhlIGFwcGxpY2F0aW9uIG11c3QgYmUgb25lIHRo
YXQncyBrbm93biB0byB0aGUgc3lzdGVtIHZpYSBhIGNhbGwgdG8gQWRkQXBwbGljYXRpb25NYW5p
ZmVzdC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIElkZW50
aWZ5QXBwbGljYXRpb24oIHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjb25zdCBjaGFyICpwY2hBcHBL
ZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHByb2Nlc3MgSUQgZm9y
IGFuIGFwcGxpY2F0aW9uLiBSZXR1cm4gMCBpZiB0aGUgYXBwbGljYXRpb24gd2FzIG5vdCBmb3Vu
ZCBvciBpcyBub3QgcnVubmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXRBcHBsaWNhdGlvblByb2Nlc3NJZCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhbiBhcHBsaWNhdGlvbnMgZXJy
b3IgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRBcHBsaWNhdGlvbnNF
cnJvck5hbWVGcm9tRW51bSggRVZSQXBwbGljYXRpb25FcnJvciBlcnJvciApID0gMDsKKworICAg
ICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0aW9uIHByb3BlcnRpZXMgIC0t
LS0tLS0tLS0tLS0tLSAvLworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgdmFsdWUgZm9y
IGFuIGFwcGxpY2F0aW9uIHByb3BlcnR5LiBUaGUgcmVxdWlyZWQgYnVmZmVyIHNpemUgdG8gZml0
IHRoaXMgdmFsdWUgd2lsbCBiZSByZXR1cm5lZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1
aW50MzJfdCBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKCBjb25zdCBjaGFyICpwY2hBcHBL
ZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoUHJvcGVydHlWYWx1ZUJ1ZmZlciwgdWludDMyX3QgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVy
TGVuLCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogUmV0dXJucyBhIGJvb2wgdmFsdWUgZm9yIGFuIGFwcGxpY2F0aW9uIHBy
b3BlcnR5LiBSZXR1cm5zIGZhbHNlIGluIGFsbCBlcnJvciBjYXNlcy4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBib29sIEdldEFwcGxpY2F0aW9uUHJvcGVydHlCb29sKCBjb25zdCBjaGFyICpw
Y2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlv
bkVycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0
dXJucyBhIHVpbnQ2NCB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24gcHJvcGVydHkuIFJldHVybnMg
MCBpbiBhbGwgZXJyb3IgY2FzZXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDY0X3Qg
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBFVlJB
cHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFwcGxpY2F0
aW9uIGF1dG8tbGF1bmNoIGZsYWcuIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgYXBwbGljYXRpb25z
IHdoaWNoIHJldHVybiB0cnVlIGZvciBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRP
dmVybGF5X0Jvb2wuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2goIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgYm9vbCBi
QXV0b0xhdW5jaCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYXBwbGljYXRp
b24gYXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBhcHBsaWNhdGlvbnMg
d2hpY2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92
ZXJsYXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEFwcGxpY2F0aW9u
QXV0b0xhdW5jaCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBBZGRzIHRoaXMgbWltZS10eXBlIHRvIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBtaW1lIHR5
cGVzIGZvciB0aGlzIGFwcGxpY2F0aW9uKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBs
aWNhdGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKCBjb25zdCBjaGFy
ICpwY2hBcHBLZXksIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiByZXR1cm4gdGhlIGFwcCBrZXkgdGhhdCB3aWxsIG9wZW4gdGhpcyBtaW1lIHR5cGUg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKCBjb25zdCBjaGFyICpwY2hNaW1lVHlwZSwgY2hhciAqcGNoQXBwS2V5QnVmZmVyLCB1
aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0
IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBtaW1lIHR5cGVzIGZvciB0aGlzIGFwcGxpY2F0aW9uLCBj
b21tYS1kZWxpbWl0ZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEFwcGxpY2F0
aW9uU3VwcG9ydGVkTWltZVR5cGVzKCBjb25zdCBjaGFyICpwY2hBcHBLZXksIGNoYXIgKnBjaE1p
bWVUeXBlc0J1ZmZlciwgdWludDMyX3QgdW5NaW1lVHlwZXNCdWZmZXIgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIEdldCB0aGUgbGlzdCBvZiBhcHAta2V5cyB0aGF0IHN1cHBvcnQgdGhpcyBt
aW1lIHR5cGUsIGNvbW1hLWRlbGltaXRlZCwgdGhlIHJldHVybiB2YWx1ZSBpcyBudW1iZXIgb2Yg
Ynl0ZXMgeW91IG5lZWQgdG8gcmV0dXJuIHRoZSBmdWxsIHN0cmluZyAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUoIGNv
bnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIs
IHVpbnQzMl90IHVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBHZXQgdGhlIGFyZ3MgbGlzdCBmcm9tIGFuIGFwcCBsYXVuY2ggdGhhdCBoYWQgdGhl
IHByb2Nlc3MgYWxyZWFkeSBydW5uaW5nLCB5b3UgY2FsbCB0aGlzIHdoZW4geW91IGdldCBhIFZS
RXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1
aW50MzJfdCBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cyggdWludDMyX3QgdW5IYW5kbGUs
IGNoYXIgKnBjaEFyZ3MsIHVpbnQzMl90IHVuQXJncyApID0gMDsKKworICAgICAgICAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0gIFRyYW5zaXRpb24gbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0gLy8K
KworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgYXBwIGtleSBmb3IgdGhlIGFwcGxpY2F0
aW9uIHRoYXQgaXMgc3RhcnRpbmcgdXAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBs
aWNhdGlvbkVycm9yIEdldFN0YXJ0aW5nQXBwbGljYXRpb24oIGNoYXIgKnBjaEFwcEtleUJ1ZmZl
ciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFJldHVybnMgdGhlIGFwcGxpY2F0aW9uIHRyYW5zaXRpb24gc3RhdGUgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9uU3Rh
dGUoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgZXJyb3JzIHRoYXQgd291bGQg
cHJldmVudCB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uIGZyb20gbGF1bmNoaW5nIGltbWVkaWF0
ZWx5LiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICAgICAgICAqIGNhdXNlIHRo
ZSBjdXJyZW50IHNjZW5lIGFwcGxpY2F0aW9uIHRvIHF1aXQsIHNvIG9ubHkgY2FsbCBpdCB3aGVu
IHlvdSBhcmUgYWN0dWFsbHkgYWJvdXQgdG8gbGF1bmNoIHNvbWV0aGluZyBlbHNlLgorICAgICAg
ICAgICAgICAqIFdoYXQgdGhlIGNhbGxlciBzaG91bGQgZG8gYWJvdXQgdGhlc2UgZmFpbHVyZXMg
ZGVwZW5kcyBvbiB0aGUgZmFpbHVyZToKKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25F
cnJvcl9PbGRBcHBsaWNhdGlvblF1aXR0aW5nIC0gQW4gZXhpc3RpbmcgYXBwbGljYXRpb24gaGFz
IGJlZW4gdG9sZCB0byBxdWl0LiBXYWl0IGZvciBhIFZSRXZlbnRfUHJvY2Vzc1F1aXQKKyAgICAg
ICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YW5kIHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBs
aWNhdGlvbkFscmVhZHlTdGFydGluZyAtIFRoaXMgYXBwbGljYXRpb24gaXMgYWxyZWFkeSBzdGFy
dGluZy4gVGhpcyBpcyBhIHBlcm1hbmVudCBmYWlsdXJlLgorICAgICAgICAgICAgICAqICAgVlJB
cHBsaWNhdGlvbkVycm9yX0xhdW5jaEluUHJvZ3Jlc3MgICAgICAgICAgICAgLSBBIGRpZmZlcmVu
dCBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5IHN0YXJ0aW5nLiBUaGlzIGlzIGEgcGVybWFuZW50IGZh
aWx1cmUuCisgICAgICAgICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSAgICAgICAg
ICAgICAgICAgICAtIEdvIGFoZWFkIGFuZCBsYXVuY2guIEV2ZXJ5dGhpbmcgaXMgY2xlYXIuCisg
ICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJv
ciBQZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayggY29uc3QgY2hhciAqcGNoQXBwS2V5
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIGZvciBhbiBhcHBs
aWNhdGlvbiB0cmFuc2l0aW9uIHN0YXRlICovCisgICAgICAgICAgICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKCBFVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0cnVlIGlmIHRoZSBvdXRnb2luZyBzY2VuZSBhcHAgaGFzIHJlcXVlc3RlZCBhIHNh
dmUgcHJvbXB0IGJlZm9yZSBleGl0aW5nICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJ
c1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTdGFy
dHMgYSBzdWJwcm9jZXNzIHdpdGhpbiB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbi4gVGhpcworICAg
ICAgICAgICAgICAqIHN1cHByZXNzZXMgYWxsIGFwcGxpY2F0aW9uIHRyYW5zaXRpb24gVUkgYW5k
IGF1dG9tYXRpY2FsbHkgaWRlbnRpZmllcyB0aGUgbmV3IGV4ZWN1dGFibGUgCisgICAgICAgICAg
ICAgICogYXMgcGFydCBvZiB0aGUgc2FtZSBhcHBsaWNhdGlvbi4gT24gc3VjY2VzcyB0aGUgY2Fs
bGluZyBwcm9jZXNzIHNob3VsZCBleGl0IGltbWVkaWF0ZWx5LiAKKyAgICAgICAgICAgICAgKiBJ
ZiB3b3JraW5nIGRpcmVjdG9yeSBpcyBOVUxMIG9yICIiIHRoZSBkaXJlY3RvcnkgcG9ydGlvbiBv
ZiB0aGUgYmluYXJ5IHBhdGggd2lsbCBiZSAKKyAgICAgICAgICAgICAgKiB0aGUgd29ya2luZyBk
aXJlY3RvcnkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBM
YXVuY2hJbnRlcm5hbFByb2Nlc3MoIGNvbnN0IGNoYXIgKnBjaEJpbmFyeVBhdGgsIGNvbnN0IGNo
YXIgKnBjaEFyZ3VtZW50cywgY29uc3QgY2hhciAqcGNoV29ya2luZ0RpcmVjdG9yeSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgY3VycmVudCBzY2VuZSBwcm9jZXNzIElE
IGFjY29yZGluZyB0byB0aGUgYXBwbGljYXRpb24gc3lzdGVtLiBBIHNjZW5lIHByb2Nlc3Mgd2ls
bCBnZXQgc2NlbmUKKyAgICAgICAgICAgICAgKiBmb2N1cyBvbmNlIGl0IHN0YXJ0cyByZW5kZXJp
bmcsIGJ1dCBpdCB3aWxsIGFwcGVhciBoZXJlIG9uY2UgaXQgY2FsbHMgVlJfSW5pdCB3aXRoIHRo
ZSBTY2VuZSBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAqIHR5cGUuICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKCkgPSAwOworICAg
ICAgIH07CisKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkFwcGxpY2F0aW9u
c19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9uc18wMDYiOworCit9IC8vIG5hbWVzcGFjZSB2cgor
CisvLyBpdnJzZXR0aW5ncy5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICBlbnVtIEVWUlNldHRp
bmdzRXJyb3IKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0g
MCwKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAg
ICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIsCisgICAgICAgICAgICAgIFZS
U2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkID0gMywKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vy
cm9yX0pzb25QYXJzZUZhaWxlZCA9IDQsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9V
bnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYg
dGhlIHNldHRpbmcgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZp
bGUgYW5kIGhhcyBub3QgYmVlbiBzZXQKKyAgICAgICB9OworCisgICAgICAgLy8gVGhlIG1heGlt
dW0gbGVuZ3RoIG9mIGEgc2V0dGluZ3Mga2V5CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKKworICAgICAgIGNsYXNzIElWUlNldHRp
bmdzCisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVF
cnJvciApID0gMDsKKworICAgICAgICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5j
IG9jY3VycmVkIChmb3JjZSBvciBzZXR0aW5ncyBkaXJ0eSkKKyAgICAgICAgICAgICAgdmlydHVh
bCBib29sIFN5bmMoIGJvb2wgYkZvcmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29s
KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9v
bCBiVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24s
IGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NF
cnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBTZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGlu
Z3NLZXksIGZsb2F0IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFy
ICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNo
VmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAg
ICAgICAgICAgIC8vIFVzZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVy
IGRlZmF1bHQgaW4gZGVmYXVsdC52cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3Mv
IGRpcmVjdG9yeQorICAgICAgICAgICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhl
IGRyaXZlcl94eHggZGlyZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxz
ZSwgMCwgMC4wIG9yICIiCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25z
dCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGlu
Z3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwg
aW50MzJfdCBHZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNo
U2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmco
IGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9P
VVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRp
bmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBSZW1vdmVTZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5n
c0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIFJlbW92ZUtleUluU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hh
ciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkg
PSAwOworICAgICAgIH07CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRp
bmdzXzAwMiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gc3Rl
YW12ciBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X1NlY3Rpb24gPSAic3RlYW12ciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3Ry
aW5nID0gImZvcmNlZERyaXZlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wg
PSAiZGlzcGxheURlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRGVidWdQcm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1
Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0
ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbD0gInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQz
MiA9ICJsb2dsZXZlbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9ICJiYWNrZ3JvdW5kIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURv
bWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZENhbWVy
YUhlaWdodF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxv
YXQgPSAiYmFja2dyb3VuZERvbWVSYWRpdXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5nID0gImdyaWRDb2xvciI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1BsYXlBcmVhQ29sb3Jf
U3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3RhZ2UiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJp
dmVyc19Cb29sID0gImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZV9Cb29sID0gImRpcmVjdE1v
ZGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJl
Y3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZpZCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0ludDMy
ID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5nU3BlYWtlcnMiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TcGVha2Vyc0Zvcndh
cmRZYXdPZmZzZXREZWdyZWVzX0Zsb2F0ID0gInNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3Jl
ZXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYXNl
U3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0aW9uUG93ZXJNYW5hZ2VtZW50
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfTmV2ZXJL
aWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2VzIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3VwZXJzYW1wbGVTY2FsZV9GbG9hdCA9
ICJzdXBlcnNhbXBsZVNjYWxlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXBy
b2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9BbGxvd1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24i
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZVJl
cHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9qZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29s
ID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19JbnQzMiA9ICJkZWZhdWx0TWly
cm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X1Nob3dNaXJyb3JWaWV3X0Jvb2wgPSAic2hvd01pcnJvclZpZXciOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5n
ID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2ggPSAic3RhcnRNb25pdG9y
RnJvbUFwcExhdW5jaCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydENvbXBvc2l0
b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9h
cmRGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfU3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJs
YXlBcHBzRnJvbURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAiZW5hYmxlSG9tZUFwcCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdl
VGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAi
cmV0YWlsRGVtbyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1N1cGVyc2FtcGxlRmlsdGVyaW5nX0Jvb2wg
PSAiYWxsb3dTdXBlcnNhbXBsZUZpbHRlcmluZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZUxpbnV4VnVsa2FuQXN5bmNfQm9vbCA9ICJlbmFi
bGVMaW51eFZ1bGthbkFzeW5jIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAvLyBsaWdodGhvdXNlIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9ICJkcml2ZXJfbGlnaHRob3VzZSI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9v
bCA9ICJkaXNhYmxlaW11IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9u
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlz
YW1iaWd1YXRpb25EZWJ1Z19JbnQzMiA9ICJkaXNhbWJpZ3VhdGlvbmRlYnVnIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0
aW9uX0ludDMyID0gInByaW1hcnliYXNlc3RhdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sID0gImRiaGlzdG9yeSI7
CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbnVsbCBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJp
dmVyX251bGwiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9T
ZXJpYWxOdW1iZXJfU3RyaW5nID0gInNlcmlhbE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJl
ciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1hf
SW50MzIgPSAid2luZG93WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2luZG93WSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93SGVpZ2h0
X0ludDMyID0gIndpbmRvd0hlaWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyID0gInJlbmRlcldpZHRoIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMyID0g
InJlbmRlckhlaWdodCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9O
dWxsX1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1Rv
UGhvdG9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX0Rp
c3BsYXlGcmVxdWVuY3lfRmxvYXQgPSAiZGlzcGxheUZyZXF1ZW5jeSI7CisKKyAgICAgICAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gdXNlciBpbnRlcmZhY2Uga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0g
InVzZXJpbnRlcmZhY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
VXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9w
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2Vf
TWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAi
c2NyZWVuc2hvdHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNl
ckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG5vdGlmaWNhdGlvbiBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rp
b24gPSAibm90aWZpY2F0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Ob3RpZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CisK
KyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8ga2V5Ym9hcmQga2V5cwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9
ICJrZXlib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXli
b2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxl
WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2Fs
ZVkgPSAiU2NhbGVZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tl
eWJvYXJkX09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0
WSA9ICJPZmZzZXRZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tl
eWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIHBlcmYga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJp
c3RpY0FjdGl2ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJm
X05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2Ui
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9BbGxvd1RpbWlu
Z1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWlu
Z3NPbkV4aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9U
ZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfUGVyZl9MaW51eEdQVVByb2ZpbGluZ19Cb29sID0gImxpbnV4R1BVUHJv
ZmlsaW5nIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBjb2xs
aXNpb24gYm91bmRzIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxpc2lvbkJvdW5kcyI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIg
PSAiQ29sbGlzaW9uQm91bmRzU3R5bGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29sbGlz
aW9uQm91bmRzR3JvdW5kUGVyaW1ldGVyT24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlz
aW9uQm91bmRzQ2VudGVyTWFya2VyT24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91
bmRzUGxheVNwYWNlT24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0YW5jZV9GbG9hdCA9ICJDb2xsaXNpb25Cb3VuZHNGYWRl
RGlzdGFuY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlz
aW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFS
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Db2xvckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUIiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFBX0lu
dDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsKKworICAgICAgIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAvLyBjYW1lcmEga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJl
bmFibGVDYW1lcmEiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2Ft
ZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9h
cmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJs
ZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lv
bkJvdW5kcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFf
RW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29s
b3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFHX0ludDMy
ID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9ICJjYW1lcmFCb3Vu
ZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9D
YW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUEi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc1N0
cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKKworICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBhdWRpbyBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5n
ID0gIm9uUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfYXVkaW9fT25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09uUGxheWJhY2tNaXJy
b3JEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tNaXJyb3JEZXZpY2UiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5n
ID0gIm9mZlBsYXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX2F1ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2Fp
biA9ICJ2aXZlSERNSUdhaW4iOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIHBvd2VyIG1hbmFnZW1lbnQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sID0gInBvd2VyT2Zm
T25FeGl0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1
cm5PZmZTY3JlZW5zVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xs
ZXJzVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0IjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dUaW1l
b3V0X0Zsb2F0ID0gInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVz
cyA9ICJhdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUGF1c2VDb21wb3NpdG9yT25TdGFuZGJ5X0Jvb2wg
PSAicGF1c2VDb21wb3NpdG9yT25TdGFuZGJ5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRf
Qm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKKworICAg
ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBtb2RlbCBza2luIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9TZWN0aW9uID0g
Im1vZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJpdmVyXzxuYW1l
PiBzZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ecml2ZXJf
RW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworLy8gaXZyY2hh
cGVyb25lLmgKK25hbWVzcGFjZSB2cgoreworCisjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorCitl
bnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKK3sKKyAgICAgICAvLyBPSyEKKyAgICAgICBD
aGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGFwZXJvbmUgaXMgZnVs
bHkgY2FsaWJyYXRlZCBhbmQgd29ya2luZyBjb3JyZWN0bHkKKworICAgICAgIC8vIFdhcm5pbmdz
CisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nID0gMTAwLAorICAgICAg
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvbk1heUhhdmVNb3Zl
ZCA9IDEwMSwgICAgICAgLy8gQSBiYXNlIHN0YXRpb24gdGhpbmtzIHRoYXQgaXQgbWlnaHQgaGF2
ZSBtb3ZlZAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3Rh
dGlvblJlbW92ZWQgPSAxMDIsICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIGxlc3Mg
YmFzZSBzdGF0aW9ucyB0aGFuIHdoZW4gY2FsaWJyYXRlZAorICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGVfV2FybmluZ19TZWF0ZWRCb3VuZHNJbnZhbGlkID0gMTAzLCAgICAgICAgICAg
ICAgLy8gU2VhdGVkIGJvdW5kcyBoYXZlbid0IGJlZW4gY2FsaWJyYXRlZCBmb3IgdGhlIGN1cnJl
bnQgdHJhY2tpbmcgY2VudGVyCisKKyAgICAgICAvLyBFcnJvcnMKKyAgICAgICBDaGFwZXJvbmVD
YWxpYnJhdGlvblN0YXRlX0Vycm9yID0gMjAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIFVuaXZlcnNlSUQgaXMgaW52YWxpZAor
ICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25VbmluaXRp
YWxpemVkID0gMjAxLCAgICAgICAgICAgICAgLy8gVHJhY2tpbmcgY2VudGVyIGhhc24ndCBiZSBj
YWxpYnJhdGVkIGZvciBhdCBsZWFzdCBvbmUgb2YgdGhlIGJhc2Ugc3RhdGlvbnMKKyAgICAgICBD
aGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIs
ICAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2tpbmcgY2VudGVyIGlzIGNhbGlicmF0ZWQsIGJ1
dCBiYXNlIHN0YXRpb25zIGRpc2FncmVlIG9uIHRoZSB0cmFja2luZyBzcGFjZQorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBQbGF5IEFyZWEgaGFzbid0IGJlZW4gY2FsaWJyYXRl
ZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2tpbmcgY2VudGVyCisgICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZhbGlkID0gMjA0LCAgICAgICAgICAg
ICAgLy8gQ29sbGlzaW9uIEJvdW5kcyBoYXZlbid0IGJlZW4gY2FsaWJyYXRlZCBmb3IgdGhlIGN1
cnJlbnQgdHJhY2tpbmcgY2VudGVyCit9OworCisKKy8qKiBISUdIIExFVkVMIFRSQUNLSU5HIFNQ
QUNFIEFTU1VNUFRJT05TOgorKiAwLDAsMCBpcyB0aGUgcHJlZmVycmVkIHN0YW5kaW5nIGFyZWEg
Y2VudGVyLgorKiAwWSBpcyB0aGUgZmxvb3IgaGVpZ2h0LgorKiAtWiBpcyB0aGUgcHJlZmVycmVk
IGZvcndhcmQgZmFjaW5nIGRpcmVjdGlvbi4gKi8KK2NsYXNzIElWUkNoYXBlcm9uZQoreworcHVi
bGljOgorCisgICAgICAgLyoqIEdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiBDaGFwZXJvbmUgY2Fs
aWJyYXRpb24uIFRoaXMgc3RhdGUgY2FuIGNoYW5nZSBhdCBhbnkgdGltZSBkdXJpbmcgYSBzZXNz
aW9uIGR1ZSB0byBwaHlzaWNhbCBiYXNlIHN0YXRpb24gY2hhbmdlcy4gKiovCisgICAgICAgdmly
dHVhbCBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGUoKSA9IDA7
CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggYW5kIGRlcHRoIG9mIHRoZSBQbGF5IEFy
ZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBpbiBYIGFuZCBaLiAKKyAgICAgICAqIFRy
YWNraW5nIHNwYWNlIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJl
YS4gKiovCisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVhU2l6ZSggZmxvYXQgKnBTaXpl
WCwgZmxvYXQgKnBTaXplWiApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSA0IGNvcm5l
ciBwb3NpdGlvbnMgb2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMp
LgorICAgICAgICogQ29ybmVycyBhcmUgaW4gY291bnRlci1jbG9ja3dpc2Ugb3JkZXIuCisgICAg
ICAgKiBTdGFuZGluZyBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFy
ZWEuCisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgorICAgICAgICogMiBzaWRlcyBhcmUgcGFy
YWxsZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8gdGhlIFogYXhp
cy4KKyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3JuZXIgaXMgMFkgKG9uIHRoZSBmbG9vciku
ICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRQbGF5QXJlYVJlY3QoIEhtZFF1YWRfdCAqcmVj
dCApID0gMDsKKworICAgICAgIC8qKiBSZWxvYWQgQ2hhcGVyb25lIGRhdGEgZnJvbSB0aGUgLnZy
Y2hhcCBmaWxlIG9uIGRpc2suICovCisgICAgICAgdmlydHVhbCB2b2lkIFJlbG9hZEluZm8oIHZv
aWQgKSA9IDA7CisKKyAgICAgICAvKiogT3B0aW9uYWxseSBnaXZlIHRoZSBjaGFwZXJvbmUgc3lz
dGVtIGEgaGl0IGFib3V0IHRoZSBjb2xvciBhbmQgYnJpZ2h0bmVzcyBpbiB0aGUgc2NlbmUgKiov
CisgICAgICAgdmlydHVhbCB2b2lkIFNldFNjZW5lQ29sb3IoIEhtZENvbG9yX3QgY29sb3IgKSA9
IDA7CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IGNoYXBlcm9uZSBib3VuZHMgZHJhdyBj
b2xvciBhbmQgYnJpZ2h0bmVzcyAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgR2V0Qm91bmRzQ29s
b3IoIEhtZENvbG9yX3QgKnBPdXRwdXRDb2xvckFycmF5LCBpbnQgbk51bU91dHB1dENvbG9ycywg
ZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIEhtZENvbG9yX3QgKnBPdXRwdXRD
YW1lcmFDb2xvciApID0gMDsKKworICAgICAgIC8qKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgYm91
bmRzIGFyZSBzaG93aW5nIHJpZ2h0IG5vdyAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQXJlQm91
bmRzVmlzaWJsZSgpID0gMDsKKworICAgICAgIC8qKiBGb3JjZSB0aGUgYm91bmRzIHRvIHNob3cs
IG1vc3RseSBmb3IgdXRpbGl0aWVzICoqLworICAgICAgIHZpcnR1YWwgdm9pZCBGb3JjZUJvdW5k
c1Zpc2libGUoIGJvb2wgYkZvcmNlICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBJVlJDaGFwZXJvbmVfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVfMDAzIjsKKworI3ByYWdt
YSBwYWNrKCBwb3AgKQorCit9CisKKy8vIGl2cmNoYXBlcm9uZXNldHVwLmgKK25hbWVzcGFjZSB2
cgoreworCitlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7CisgICAgICAgRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfTGl2ZSA9IDEsICAgICAgICAgICAgICAvLyBUaGUgbGl2ZSBjaGFwZXJvbmUgY29u
ZmlnLCB1c2VkIGJ5IG1vc3QgYXBwbGljYXRpb25zIGFuZCBnYW1lcworICAgICAgIEVDaGFwZXJv
bmVDb25maWdGaWxlX1RlbXAgPSAyLCAgICAgICAgICAgICAgLy8gVGhlIHRlbXBvcmFyeSBjaGFw
ZXJvbmUgY29uZmlnLCB1c2VkIHRvIGxpdmUtcHJldmlldyBjb2xsaXNpb24gYm91bmRzIGluIHJv
b20gc2V0dXAKK307CisKK2VudW0gRUNoYXBlcm9uZUltcG9ydEZsYWdzCit7CisgICAgICAgRUNo
YXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0gMHgwMDAxLAorfTsKKworLyoqIE1hbmFnZXMgdGhl
IHdvcmtpbmcgY29weSBvZiB0aGUgY2hhcGVyb25lIGluZm8uIEJ5IGRlZmF1bHQgdGhpcyB3aWxs
IGJlIHRoZSBzYW1lIGFzIHRoZSAKKyogbGl2ZSBjb3B5LiBBbnkgY2hhbmdlcyBtYWRlIHdpdGgg
dGhpcyBpbnRlcmZhY2Ugd2lsbCBzdGF5IGluIHRoZSB3b3JraW5nIGNvcHkgdW50aWwgCisqIENv
bW1pdFdvcmtpbmdDb3B5KCkgaXMgY2FsbGVkLCBhdCB3aGljaCBwb2ludCB0aGUgd29ya2luZyBj
b3B5IGFuZCB0aGUgbGl2ZSBjb3B5IHdpbGwgYmUgCisqIHRoZSBzYW1lIGFnYWluLiAqLworY2xh
c3MgSVZSQ2hhcGVyb25lU2V0dXAKK3sKK3B1YmxpYzoKKworICAgICAgIC8qKiBTYXZlcyB0aGUg
Y3VycmVudCB3b3JraW5nIGNvcHkgdG8gZGlzayAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDb21t
aXRXb3JraW5nQ29weSggRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSApID0gMDsKKwor
ICAgICAgIC8qKiBSZXZlcnRzIHRoZSB3b3JraW5nIGNvcHkgdG8gbWF0Y2ggdGhlIGxpdmUgY2hh
cGVyb25lIGNhbGlicmF0aW9uLgorICAgICAgICogVG8gbW9kaWZ5IGV4aXN0aW5nIGRhdGEgdGhp
cyBNVVNUIGJlIGRvIFdISUxFIGdldHRpbmcgYSBub24tZXJyb3IgQ2hhcGVyb25lQ2FsaWJyYXRp
b25TdGF0dXMuCisgICAgICAgKiBPbmx5IGFmdGVyIHRoaXMgc2hvdWxkIHlvdSBkbyBnZXRzIGFu
ZCBzZXRzIG9uIHRoZSBleGlzdGluZyBkYXRhLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBSZXZl
cnRXb3JraW5nQ29weSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB3aWR0aCBhbmQg
ZGVwdGggb2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGluIFgg
YW5kIFogZnJvbSB0aGUgd29ya2luZyBjb3B5LgorICAgICAgICogVHJhY2tpbmcgc3BhY2UgY2Vu
dGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLiAqLworICAgICAgIHZp
cnR1YWwgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFTaXplKCBmbG9hdCAqcFNpemVYLCBmbG9hdCAq
cFNpemVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIDQgY29ybmVyIHBvc2l0aW9u
cyBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykgZnJvbSB0aGUg
d29ya2luZyBjb3B5LgorICAgICAgICogQ29ybmVycyBhcmUgaW4gY2xvY2t3aXNlIG9yZGVyLgor
ICAgICAgICogVHJhY2tpbmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0
aGUgUGxheSBBcmVhLgorICAgICAgICogSXQncyBhIHJlY3RhbmdsZS4KKyAgICAgICAqIDIgc2lk
ZXMgYXJlIHBhcmFsbGVsIHRvIHRoZSBYIGF4aXMgYW5kIDIgc2lkZXMgYXJlIHBhcmFsbGVsIHRv
IHRoZSBaIGF4aXMuCisgICAgICAgKiBIZWlnaHQgb2YgZXZlcnkgY29ybmVyIGlzIDBZIChvbiB0
aGUgZmxvb3IpLiAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVj
dCggSG1kUXVhZF90ICpyZWN0ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJl
ciBvZiBRdWFkcyBpZiB0aGUgYnVmZmVyIHBvaW50cyB0byBudWxsLiBPdGhlcndpc2UgaXQgcmV0
dXJucyBRdWFkcyAKKyAgICAgICAqIGludG8gdGhlIGJ1ZmZlciB1cCB0byB0aGUgbWF4IHNwZWNp
ZmllZCBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFdv
cmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9PVVRfQVJSQVlfQ09VTlQocHVuUXVhZHNDb3Vu
dCkgSG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90KiBwdW5RdWFkc0NvdW50ICkgPSAw
OworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBRdWFkcyBpZiB0aGUgYnVmZmVy
IHBvaW50cyB0byBudWxsLiBPdGhlcndpc2UgaXQgcmV0dXJucyBRdWFkcyAKKyAgICAgICAqIGlu
dG8gdGhlIGJ1ZmZlciB1cCB0byB0aGUgbWF4IHNwZWNpZmllZC4gKi8KKyAgICAgICB2aXJ0dWFs
IGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5R
dWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1YWRzQ291
bnQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3Np
dGlvbiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFdv
cmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBIbWRNYXRyaXgzNF90ICpwbWF0
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKKworICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBzdGFuZGluZyBvcmlnaW4gZnJvbSB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAg
IHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3Nl
KCBIbWRNYXRyaXgzNF90ICpwbWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkg
PSAwOworCisgICAgICAgLyoqIFNldHMgdGhlIFBsYXkgQXJlYSBpbiB0aGUgd29ya2luZyBjb3B5
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nUGxheUFyZWFTaXplKCBmbG9hdCBz
aXplWCwgZmxvYXQgc2l6ZVogKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgQ29sbGlzaW9u
IEJvdW5kcyBpbiB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRX
b3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfQVJSQVlfQ09VTlQodW5RdWFkc0NvdW50KSBI
bWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50ICkgPSAwOworCisg
ICAgICAgLyoqIFNldHMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24gaW4gdGhlIHdvcmtp
bmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgU2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UoIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBNYXRTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFNldHMgdGhlIHByZWZlcnJl
ZCBzdGFuZGluZyBwb3NpdGlvbiBpbiB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZpcnR1
YWwgdm9pZCBTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBjb25z
dCBIbWRNYXRyaXgzNF90ICpwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkg
PSAwOworCisgICAgICAgLyoqIFRlYXIgZXZlcnl0aGluZyBkb3duIGFuZCByZWxvYWQgaXQgZnJv
bSB0aGUgZmlsZSBvbiBkaXNrICovCisgICAgICAgdmlydHVhbCB2b2lkIFJlbG9hZEZyb21EaXNr
KCBFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlICkgPSAwOworCisgICAgICAgLyoqIFJl
dHVybnMgdGhlIHByZWZlcnJlZCBzZWF0ZWQgcG9zaXRpb24uICovCisgICAgICAgdmlydHVhbCBi
b29sIEdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKCBIbWRNYXRyaXgzNF90
ICpwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSApID0gMDsKKworICAgICAgIHZp
cnR1YWwgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8oIFZSX0FSUkFZX0NP
VU5UKHVuVGFnQ291bnQpIHVpbnQ4X3QgKnBUYWdzQnVmZmVyLCB1aW50MzJfdCB1blRhZ0NvdW50
ICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0lu
Zm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5UYWdDb3VudCkgdWludDhfdCAqcFRhZ3NCdWZmZXIs
IHVpbnQzMl90ICpwdW5UYWdDb3VudCApID0gMDsKKworICAgICAgIHZpcnR1YWwgYm9vbCBTZXRX
b3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blF1YWRzQ291bnQpIEht
ZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQgKSA9IDA7CisgICAg
ICAgdmlydHVhbCBib29sIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9D
T1VOVChwdW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1
blF1YWRzQ291bnQgKSA9IDA7CisKKyAgICAgICB2aXJ0dWFsIGJvb2wgRXhwb3J0TGl2ZVRvQnVm
ZmVyKCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcEJ1ZmZlciwgdWludDMyX3QgKnBuQnVmZmVyTGVu
Z3RoICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5n
KCBjb25zdCBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCBuSW1wb3J0RmxhZ3MgKSA9IDA7Cit9Owor
CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNoYXBlcm9uZVNldHVwX1ZlcnNpb24gPSAi
SVZSQ2hhcGVyb25lU2V0dXBfMDA1IjsKKworCit9CisKKy8vIGl2cmNvbXBvc2l0b3IuaAorbmFt
ZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKKy8qKiBFcnJvcnMgdGhh
dCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRvciAqLworZW51bSBFVlJDb21wb3NpdG9y
RXJyb3IKK3sKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1Jl
cXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgICAgIFZSQ29t
cG9zaXRvckVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gICAgICAgICAgICAgID0gMTAwLAorICAg
ICAgIFZSQ29tcG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzICAgICAgICAgICAgICAgICAgICAg
PSAxMDEsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUgICAgICAgICAg
ICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9Jc05vdFNjZW5lQXBw
bGljYXRpb24gICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX1Rl
eHR1cmVJc09uV3JvbmdEZXZpY2UgICAgICAgPSAxMDQsCisgICAgICAgVlJDb21wb3NpdG9yRXJy
b3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCA9IDEwNSwKKyAgICAgICBWUkNvbXBvc2l0
b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCA9IDEwNiwKKyAgICAgICBWUkNvbXBv
c2l0b3JFcnJvcl9JbmRleE91dE9mUmFuZ2UgICAgICAgICAgICAgICAgICAgICA9IDEwNywKKyAg
ICAgICBWUkNvbXBvc2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVkICAgICAgICAgICAgICAgICAg
ICAgPSAxMDgsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZEJvdW5kcyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwOSwKK307CisKK2NvbnN0IHVpbnQzMl90IFZSQ29tcG9z
aXRvcl9SZXByb2plY3Rpb25SZWFzb25fQ3B1ID0gMHgwMTsKK2NvbnN0IHVpbnQzMl90IFZSQ29t
cG9zaXRvcl9SZXByb2plY3Rpb25SZWFzb25fR3B1ID0gMHgwMjsKK2NvbnN0IHVpbnQzMl90IFZS
Q29tcG9zaXRvcl9SZXByb2plY3Rpb25Bc3luYyAgICAgID0gMHgwNDsgICAgICAgLy8gVGhpcyBm
bGFnIGluZGljYXRlcyB0aGUgYXN5bmMgcmVwcm9qZWN0aW9uIG1vZGUgaXMgYWN0aXZlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnV0IGRvZXMg
bm90IGluZGljYXRlIGlmIHJlcHJvamVjdGlvbiBhY3R1YWxseSBoYXBwZW5lZCBvciBub3QuCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgdGhl
IFJlcHJvamVjdGlvblJlYXNvbiBmbGFncyBhYm92ZSB0byBjaGVjayBpZiByZXByb2plY3Rpb24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcyBh
Y3R1YWxseSBhcHBsaWVkIChpLmUuIHNjZW5lIHRleHR1cmUgd2FzIHJldXNlZCkuCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1GcmFtZVByZXNl
bnRzID4gMSBhbHNvIGluZGljYXRlcyB0aGUgc2NlbmUgdGV4dHVyZSB3YXMgcmV1c2VkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGFsc28g
dGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IGl0IHdhcyBwcmVzZW50ZWQgaW4gdG90YWwuCisKKy8q
KiBQcm92aWRlcyBhIHNpbmdsZSBmcmFtZSdzIHRpbWluZyBpbmZvcm1hdGlvbiB0byB0aGUgYXBw
ICovCitzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZworeworICAgICAgIHVpbnQzMl90IG1f
blNpemU7IC8vIFNldCB0byBzaXplb2YoIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKQorICAgICAg
IHVpbnQzMl90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVz
ZW50czsgLy8gbnVtYmVyIG9mIHRpbWVzIHRoaXMgZnJhbWUgd2FzIHByZXNlbnRlZAorICAgICAg
IHVpbnQzMl90IG1fbk51bU1pc1ByZXNlbnRlZDsgLy8gbnVtYmVyIG9mIHRpbWVzIHRoaXMgZnJh
bWUgd2FzIHByZXNlbnRlZCBvbiBhIHZzeW5jIG90aGVyIHRoYW4gaXQgd2FzIG9yaWdpbmFsbHkg
cHJlZGljdGVkIHRvCisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lczsgLy8gbnVt
YmVyIG9mIGFkZGl0aW9uYWwgdGltZXMgcHJldmlvdXMgZnJhbWUgd2FzIHNjYW5uZWQgb3V0Cisg
ICAgICAgdWludDMyX3QgbV9uUmVwcm9qZWN0aW9uRmxhZ3M7CisKKyAgICAgICAvKiogQWJzb2x1
dGUgdGltZSByZWZlcmVuY2UgZm9yIGNvbXBhcmluZyBmcmFtZXMuICBUaGlzIGFsaWducyB3aXRo
IHRoZSB2c3luYyB0aGF0IHJ1bm5pbmcgc3RhcnQgaXMgcmVsYXRpdmUgdG8uICovCisgICAgICAg
ZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOworCisgICAgICAgLyoqIFRoZXNlIHRpbWVz
IG1heSBpbmNsdWRlIHdvcmsgZnJvbSBvdGhlciBwcm9jZXNzZXMgZHVlIHRvIE9TIHNjaGVkdWxp
bmcuCisgICAgICAgKiBUaGUgZmV3ZXIgcGFja2V0cyBvZiB3b3JrIHRoZXNlIGFyZSBicm9rZW4g
dXAgaW50bywgdGhlIGxlc3MgbGlrZWx5IHRoaXMgd2lsbCBoYXBwZW4uCisgICAgICAgKiBHUFUg
d29yayBjYW4gYmUgYnJva2VuIHVwIGJ5IGNhbGxpbmcgRmx1c2guICBUaGlzIGNhbiBzb21ldGlt
ZXMgYmUgdXNlZnVsIHRvIGdldCB0aGUgR1BVIHN0YXJ0ZWQKKyAgICAgICAqIHByb2Nlc3Npbmcg
dGhhdCB3b3JrIGVhcmxpZXIgaW4gdGhlIGZyYW1lLiAqLworICAgICAgIGZsb2F0IG1fZmxQcmVT
dWJtaXRHcHVNczsgLy8gdGltZSBzcGVudCByZW5kZXJpbmcgdGhlIHNjZW5lIChncHUgd29yayBz
dWJtaXR0ZWQgYmV0d2VlbiBXYWl0R2V0UG9zZXMgYW5kIHNlY29uZCBTdWJtaXQpCisgICAgICAg
ZmxvYXQgbV9mbFBvc3RTdWJtaXRHcHVNczsgLy8gYWRkaXRpb25hbCB0aW1lIHNwZW50IHJlbmRl
cmluZyBieSBhcHBsaWNhdGlvbiAoZS5nLiBjb21wYW5pb24gd2luZG93KQorICAgICAgIGZsb2F0
IG1fZmxUb3RhbFJlbmRlckdwdU1zOyAvLyB0aW1lIGJldHdlZW4gd29yayBzdWJtaXR0ZWQgaW1t
ZWRpYXRlbHkgYWZ0ZXIgcHJlc2VudCAoaWRlYWxseSB2c3luYykgdW50aWwgdGhlIGVuZCBvZiBj
b21wb3NpdG9yIHN1Ym1pdHRlZCB3b3JrCisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5k
ZXJHcHVNczsgLy8gdGltZSBzcGVuZCBwZXJmb3JtaW5nIGRpc3RvcnRpb24gY29ycmVjdGlvbiwg
cmVuZGVyaW5nIGNoYXBlcm9uZSwgb3ZlcmxheXMsIGV0Yy4KKyAgICAgICBmbG9hdCBtX2ZsQ29t
cG9zaXRvclJlbmRlckNwdU1zOyAvLyB0aW1lIHNwZW50IG9uIGNwdSBzdWJtaXR0aW5nIHRoZSBh
Ym92ZSB3b3JrIGZvciB0aGlzIGZyYW1lCisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxl
Q3B1TXM7IC8vIHRpbWUgc3BlbnQgd2FpdGluZyBmb3IgcnVubmluZyBzdGFydCAoYXBwbGljYXRp
b24gY291bGQgaGF2ZSB1c2VkIHRoaXMgbXVjaCBtb3JlIHRpbWUpCisKKyAgICAgICAvKiogTWlz
Y2VsbGFuZW91cyBtZWFzdXJlZCBpbnRlcnZhbHMuICovCisgICAgICAgZmxvYXQgbV9mbENsaWVu
dEZyYW1lSW50ZXJ2YWxNczsgLy8gdGltZSBiZXR3ZWVuIGNhbGxzIHRvIFdhaXRHZXRQb3Nlcwor
ICAgICAgIGZsb2F0IG1fZmxQcmVzZW50Q2FsbENwdU1zOyAvLyB0aW1lIGJsb2NrZWQgb24gY2Fs
bCB0byBwcmVzZW50ICh1c3VhbGx5IDAuMCwgYnV0IGNhbiBnbyBsb25nKQorICAgICAgIGZsb2F0
IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1zOyAvLyB0aW1lIHNwZW50IHNwaW4td2FpdGluZyBmb3Ig
ZnJhbWUgaW5kZXggdG8gY2hhbmdlIChub3QgbmVhci16ZXJvIGluZGljYXRlcyB3YWl0IG9iamVj
dCBmYWlsdXJlKQorICAgICAgIGZsb2F0IG1fZmxTdWJtaXRGcmFtZU1zOyAvLyB0aW1lIHNwZW50
IGluIElWUkNvbXBvc2l0b3I6OlN1Ym1pdCAobm90IG5lYXItemVybyBpbmRpY2F0ZXMgZHJpdmVy
IGlzc3VlKQorCisgICAgICAgLyoqIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCByZWxhdGl2ZSB0byB0
aGlzIGZyYW1lJ3MgU3lzdGVtVGltZUluU2Vjb25kcyAqLworICAgICAgIGZsb2F0IG1fZmxXYWl0
R2V0UG9zZXNDYWxsZWRNczsKKyAgICAgICBmbG9hdCBtX2ZsTmV3UG9zZXNSZWFkeU1zOworICAg
ICAgIGZsb2F0IG1fZmxOZXdGcmFtZVJlYWR5TXM7IC8vIHNlY29uZCBjYWxsIHRvIElWUkNvbXBv
c2l0b3I6OlN1Ym1pdAorICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRNczsK
KyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOworICAgICAgIGZsb2F0IG1f
ZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKKworICAgICAgIHZyOjpUcmFja2VkRGV2aWNlUG9z
ZV90IG1fSG1kUG9zZTsgLy8gcG9zZSB1c2VkIGJ5IGFwcCB0byByZW5kZXIgdGhpcyBmcmFtZQor
fTsKKworLyoqIEN1bXVsYXRpdmUgc3RhdHMgZm9yIGN1cnJlbnQgYXBwbGljYXRpb24uICBUaGVz
ZSBhcmUgbm90IGNsZWFyZWQgdW50aWwgYSBuZXcgYXBwIGNvbm5lY3RzLAorKiBidXQgdGhleSBk
byBzdG9wIGFjY3VtdWxhdGluZyBvbmNlIHRoZSBhc3NvY2lhdGVkIGFwcCBkaXNjb25uZWN0cy4g
Ki8KK3N0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cworeworICAgICAgIHVpbnQzMl90
IG1fblBpZDsgLy8gUHJvY2VzcyBpZCBhc3NvY2lhdGVkIHdpdGggdGhlc2Ugc3RhdHMgKG1heSBu
byBsb25nZXIgYmUgcnVubmluZykuCisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50
czsgLy8gdG90YWwgbnVtYmVyIG9mIHRpbWVzIHdlIGNhbGxlZCBwcmVzZW50IChpbmNsdWRlcyBy
ZXByb2plY3RlZCBmcmFtZXMpCisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lczsg
Ly8gdG90YWwgbnVtYmVyIG9mIHRpbWVzIGFuIG9sZCBmcmFtZSB3YXMgcmUtc2Nhbm5lZCBvdXQg
KHdpdGhvdXQgcmVwcm9qZWN0aW9uKQorICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVk
RnJhbWVzOyAvLyB0b3RhbCBudW1iZXIgb2YgdGltZXMgYSBmcmFtZSB3YXMgc2Nhbm5lZCBvdXQg
YSBzZWNvbmQgdGltZSAod2l0aCByZXByb2plY3Rpb24pCisKKyAgICAgICAvKiogVmFsdWVzIHJl
Y29yZGVkIGF0IHN0YXJ0dXAgYmVmb3JlIGFwcGxpY2F0aW9uIGhhcyBmdWxseSBmYWRlZCBpbiB0
aGUgZmlyc3QgdGltZS4gKi8KKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzT25T
dGFydHVwOworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7Cisg
ICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisKKyAgICAg
ICAvKiogQXBwbGljYXRpb25zIG1heSBleHBsaWNpdGx5IGZhZGUgdG8gdGhlIGNvbXBvc2l0b3Iu
ICBUaGlzIGlzIHVzdWFsbHkgdG8gaGFuZGxlIGxldmVsIHRyYW5zaXRpb25zLCBhbmQgbG9hZGlu
ZyBvZnRlbiBjYXVzZXMKKyAgICAgICAqIHN5c3RlbSB3aWRlIGhpdGNoZXMuICBUaGUgZm9sbG93
aW5nIHN0YXRzIGFyZSBjb2xsZWN0ZWQgZHVyaW5nIHRoaXMgcGVyaW9kLiAgRG9lcyBub3QgaW5j
bHVkZSB2YWx1ZXMgcmVjb3JkZWQgZHVyaW5nIHN0YXJ0dXAuICovCisgICAgICAgdWludDMyX3Qg
bV9uTnVtTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGlu
ZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICB1
aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisKKyAgICAgICAvKiogSWYg
d2UgZG9uJ3QgZ2V0IGEgbmV3IGZyYW1lIGZyb20gdGhlIGFwcCBpbiBsZXNzIHRoYW4gMi41IGZy
YW1lcywgdGhlbiB3ZSBhc3N1bWUgdGhlIGFwcCBoYXMgaHVuZyBhbmQgc3RhcnQKKyAgICAgICAq
IGZhZGluZyBiYWNrIHRvIHRoZSBjb21wb3NpdG9yLiAgVGhlIGZvbGxvd2luZyBzdGF0cyBhcmUg
YSByZXN1bHQgb2YgdGhpcywgYW5kIGFyZSBhIHN1YnNldCBvZiB0aG9zZSByZWNvcmRlZCBhYm92
ZS4KKyAgICAgICAqIERvZXMgbm90IGluY2x1ZGUgdmFsdWVzIHJlY29yZGVkIGR1cmluZyBzdGFy
dCB1cCBvciBsb2FkaW5nLiAqLworICAgICAgIHVpbnQzMl90IG1fbk51bVRpbWVkT3V0OworICAg
ICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNUaW1lZE91dDsKKyAgICAgICB1aW50MzJf
dCBtX25OdW1Ecm9wcGVkRnJhbWVzVGltZWRPdXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVw
cm9qZWN0ZWRGcmFtZXNUaW1lZE91dDsKK307CisKKyNwcmFnbWEgcGFjayggcG9wICkKKworLyoq
IEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gaW50ZXJhY3Qgd2l0aCB0aGUgY29tcG9zaXRvciAq
LworY2xhc3MgSVZSQ29tcG9zaXRvcgoreworcHVibGljOgorICAgICAgIC8qKiBTZXRzIHRyYWNr
aW5nIHNwYWNlIHJldHVybmVkIGJ5IFdhaXRHZXRQb3NlcyAqLworICAgICAgIHZpcnR1YWwgdm9p
ZCBTZXRUcmFja2luZ1NwYWNlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luICkgPSAw
OworCisgICAgICAgLyoqIEdldHMgY3VycmVudCB0cmFja2luZyBzcGFjZSByZXR1cm5lZCBieSBX
YWl0R2V0UG9zZXMgKi8KKyAgICAgICB2aXJ0dWFsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdl
dFRyYWNraW5nU3BhY2UoKSA9IDA7CisKKyAgICAgICAvKiogU2NlbmUgYXBwbGljYXRpb25zIHNo
b3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHBvc2VzIHRvIHJlbmRlciB3aXRoIChhbmQg
b3B0aW9uYWxseSBwb3NlcyBwcmVkaWN0ZWQgYW4gYWRkaXRpb25hbCBmcmFtZSBvdXQgdG8gdXNl
IGZvciBnYW1lcGxheSkuCisgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmxvY2sgdW50aWwg
InJ1bm5pbmcgc3RhcnQiIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBmcmFt
ZSwgYW5kIHNob3VsZCBiZSBjYWxsZWQgYXQgdGhlIGxhc3QgbW9tZW50IGJlZm9yZSBuZWVkaW5n
IHRvCisgICAgICAgKiBzdGFydCByZW5kZXJpbmcuCisgICAgICAgKgorICAgICAgICogUmV0dXJu
IGNvZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBwbGljYXRpb24gKG1ha2Ugc3Vy
ZSB0byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1NjZW5lKQorICAgICAgICogICAg
ICAgLSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFzIHRha2VuIGZvY3VzIC0gdGhp
cyB3aWxsIHRocm90dGxlIHRoZSBjYWxsIHRvIDEwaHogdG8gcmVkdWNlIHRoZSBpbXBhY3Qgb24g
dGhhdCBhcHApCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBX
YWl0R2V0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKHVuUmVuZGVyUG9zZUFycmF5Q291bnQpIFRyYWNr
ZWREZXZpY2VQb3NlX3QqIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFy
cmF5Q291bnQsCisgICAgICAgICAgICAgIFZSX0FSUkFZX0NPVU5UKHVuR2FtZVBvc2VBcnJheUNv
dW50KSBUcmFja2VkRGV2aWNlUG9zZV90KiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1l
UG9zZUFycmF5Q291bnQgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IHRoZSBsYXN0IHNldCBvZiBw
b3NlcyByZXR1cm5lZCBieSBXYWl0R2V0UG9zZXMuICovCisgICAgICAgdmlydHVhbCBFVlJDb21w
b3NpdG9yRXJyb3IgR2V0TGFzdFBvc2VzKCBWUl9BUlJBWV9DT1VOVCggdW5SZW5kZXJQb3NlQXJy
YXlDb3VudCApIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQzMl90
IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsCisgICAgICAgICAgICAgIFZSX0FSUkFZX0NPVU5UKCB1
bkdhbWVQb3NlQXJyYXlDb3VudCApIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBHYW1lUG9zZUFycmF5
LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBJbnRl
cmZhY2UgZm9yIGFjY2Vzc2luZyBsYXN0IHNldCBvZiBwb3NlcyByZXR1cm5lZCBieSBXYWl0R2V0
UG9zZXMgb25lIGF0IGEgdGltZS4KKyAgICAgICAqIFJldHVybnMgVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlIGlmIHVuRGV2aWNlSW5kZXggbm90IGxlc3MgdGhhbiBrX3VuTWF4VHJh
Y2tlZERldmljZUNvdW50IG90aGVyd2lzZSBWUkNvbXBvc2l0b3JFcnJvcl9Ob25lLgorICAgICAg
ICogSXQgaXMgb2theSB0byBwYXNzIE5VTEwgZm9yIGVpdGhlciBwb3NlIGlmIHlvdSBvbmx5IHdh
bnQgb25lIG9mIHRoZSB2YWx1ZXMuICovCisgICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJy
b3IgR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgoIFRyYWNrZWREZXZpY2VJbmRleF90
IHVuRGV2aWNlSW5kZXgsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBPdXRwdXRQb3NlLCBUcmFja2Vk
RGV2aWNlUG9zZV90ICpwT3V0cHV0R2FtZVBvc2UgKSA9IDA7CisKKyAgICAgICAvKiogVXBkYXRl
ZCBzY2VuZSB0ZXh0dXJlIHRvIGRpc3BsYXkuIElmIHBCb3VuZHMgaXMgTlVMTCB0aGUgZW50aXJl
IHRleHR1cmUgd2lsbCBiZSB1c2VkLiAgSWYgY2FsbGVkIGZyb20gYW4gT3BlbkdMIGFwcCwgY29u
c2lkZXIgYWRkaW5nIGEgZ2xGbHVzaCBhZnRlcgorICAgICAgICogU3VibWl0dGluZyBib3RoIGZy
YW1lcyB0byBzaWduYWwgdGhlIGRyaXZlciB0byBzdGFydCBwcm9jZXNzaW5nLCBvdGhlcndpc2Ug
aXQgbWF5IHdhaXQgdW50aWwgdGhlIGNvbW1hbmQgYnVmZmVyIGZpbGxzIHVwLCBjYXVzaW5nIHRo
ZSBhcHAgdG8gbWlzcyBmcmFtZXMuCisgICAgICAgKgorICAgICAgICogT3BlbkdMIGRpcnR5IHN0
YXRlOgorICAgICAgICogICAgICAgZ2xCaW5kVGV4dHVyZQorICAgICAgICoKKyAgICAgICAqIFJl
dHVybiBjb2RlczoKKyAgICAgICAqICAgICAgIC0gSXNOb3RTY2VuZUFwcGxpY2F0aW9uIChtYWtl
IHN1cmUgdG8gY2FsbCBWUl9Jbml0IHdpdGggVlJBcHBsaWNhaXRvbl9TY2VuZSkKKyAgICAgICAq
ICAgICAgIC0gRG9Ob3RIYXZlRm9jdXMgKHNvbWUgb3RoZXIgYXBwIGhhcyB0YWtlbiBmb2N1cykK
KyAgICAgICAqICAgICAgIC0gVGV4dHVyZUlzT25Xcm9uZ0RldmljZSAoYXBwbGljYXRpb24gZGlk
IG5vdCB1c2UgcHJvcGVyIEFkYXB0ZXJJbmRleCAtIHNlZSBJVlJTeXN0ZW0uR2V0RFhHSU91dHB1
dEluZm8pCisgICAgICAgKiAgICAgICAtIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkIChhcHBs
aWNhdGlvbiBuZWVkcyB0byBjYWxsIENyZWF0ZURYR0lGYWN0b3J5MSBvciBsYXRlciBiZWZvcmUg
Y3JlYXRpbmcgRFggZGV2aWNlKQorICAgICAgICogICAgICAgLSBUZXh0dXJlVXNlc1Vuc3VwcG9y
dGVkRm9ybWF0IChzY2VuZSB0ZXh0dXJlcyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCBEWEdJIHNo
YXJpbmcgcnVsZXMgLSBlLmcuIHVuY29tcHJlc3NlZCwgbm8gbWlwcywgZXRjLikKKyAgICAgICAq
ICAgICAgIC0gSW52YWxpZFRleHR1cmUgKHVzdWFsbHkgbWVhbnMgYmFkIGFyZ3VtZW50cyBwYXNz
ZWQgaW4pCisgICAgICAgKiAgICAgICAtIEFscmVhZHlTdWJtaXR0ZWQgKGFwcCBoYXMgc3VibWl0
dGVkIHR3byBsZWZ0IHRleHR1cmVzIG9yIHR3byByaWdodCB0ZXh0dXJlcyBpbiBhIHNpbmdsZSBm
cmFtZSAtIGkuZS4gYmVmb3JlIGNhbGxpbmcgV2FpdEdldFBvc2VzIGFnYWluKQorICAgICAgICov
CisgICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KCBFVlJFeWUgZUV5ZSwg
Y29uc3QgVGV4dHVyZV90ICpwVGV4dHVyZSwgY29uc3QgVlJUZXh0dXJlQm91bmRzX3QqIHBCb3Vu
ZHMgPSAwLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MgPSBTdWJtaXRfRGVmYXVsdCApID0g
MDsKKworICAgICAgIC8qKiBDbGVhcnMgdGhlIGZyYW1lIHRoYXQgd2FzIHNlbnQgd2l0aCB0aGUg
bGFzdCBjYWxsIHRvIFN1Ym1pdC4gVGhpcyB3aWxsIGNhdXNlIHRoZSAKKyAgICAgICAqIGNvbXBv
c2l0b3IgdG8gc2hvdyB0aGUgZ3JpZCB1bnRpbCBTdWJtaXQgaXMgY2FsbGVkIGFnYWluLiAqLwor
ICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSgpID0gMDsKKworICAg
ICAgIC8qKiBDYWxsIGltbWVkaWF0ZWx5IGFmdGVyIHByZXNlbnRpbmcgeW91ciBhcHAncyB3aW5k
b3cgKGkuZS4gY29tcGFuaW9uIHdpbmRvdykgdG8gdW5ibG9jayB0aGUgY29tcG9zaXRvci4KKyAg
ICAgICAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgY2FsbCwgd2hpY2ggb25seSBuZWVkcyB0byBiZSB1
c2VkIGlmIHlvdSBjYW4ndCBpbnN0ZWFkIGNhbGwgV2FpdEdldFBvc2VzIGltbWVkaWF0ZWx5IGFm
dGVyIFByZXNlbnQuCisgICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91ciBlbmdpbmUncyByZW5k
ZXIgYW5kIGdhbWUgbG9vcCBhcmUgbm90IG9uIHNlcGFyYXRlIHRocmVhZHMsIG9yIGJsb2NraW5n
IHRoZSByZW5kZXIgdGhyZWFkIHVudGlsIDNtcyBiZWZvcmUgdGhlIG5leHQgdnN5bmMgd291bGQK
KyAgICAgICAqIGludHJvZHVjZSBhIGRlYWRsb2NrIG9mIHNvbWUgc29ydC4gIFRoaXMgZnVuY3Rp
b24gdGVsbHMgdGhlIGNvbXBvc2l0b3IgdGhhdCB5b3UgaGF2ZSBmaW5pc2hlZCBhbGwgcmVuZGVy
aW5nIGFmdGVyIGhhdmluZyBTdWJtaXR0ZWQgYnVmZmVycyBmb3IgYm90aAorICAgICAgICogZXll
cywgYW5kIGl0IGlzIGZyZWUgdG8gc3RhcnQgaXRzIHJlbmRlcmluZyB3b3JrLiAgVGhpcyBzaG91
bGQgb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgc2FtZSB0aHJlYWQgeW91IGFyZSByZW5kZXJpbmcg
b24uICovCisgICAgICAgdmlydHVhbCB2b2lkIFBvc3RQcmVzZW50SGFuZG9mZigpID0gMDsKKwor
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGltaW5nIGRhdGEgaXMgZmlsbGVkIGl0LiAgU2V0
cyBvbGRlc3QgdGltaW5nIGluZm8gaWYgbkZyYW1lc0FnbyBpcyBsYXJnZXIgdGhhbiB0aGUgc3Rv
cmVkIGhpc3RvcnkuCisgICAgICAgKiBCZSBzdXJlIHRvIHNldCB0aW1pbmcuc2l6ZSA9IHNpemVv
ZihDb21wb3NpdG9yX0ZyYW1lVGltaW5nKSBvbiBzdHJ1Y3QgcGFzc2VkIGluIGJlZm9yZSBjYWxs
aW5nIHRoaXMgZnVuY3Rpb24uICovCisgICAgICAgdmlydHVhbCBib29sIEdldEZyYW1lVGltaW5n
KCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICpwVGltaW5nLCB1aW50MzJfdCB1bkZyYW1lc0FnbyA9
IDAgKSA9IDA7CisKKyAgICAgICAvKiogSW50ZXJmYWNlIGZvciBjb3B5aW5nIGEgcmFuZ2Ugb2Yg
dGltaW5nIGRhdGEuICBGcmFtZXMgYXJlIHJldHVybmVkIGluIGFzY2VuZGluZyBvcmRlciAob2xk
ZXN0IHRvIG5ld2VzdCkgd2l0aCB0aGUgbGFzdCBiZWluZyB0aGUgbW9zdCByZWNlbnQgZnJhbWUu
CisgICAgICAgKiBPbmx5IHRoZSBmaXJzdCBlbnRyeSdzIG1fblNpemUgbmVlZHMgdG8gYmUgc2V0
LCBhcyB0aGUgcmVzdCB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhhdC4gIFJldHVybnMgdG90YWwg
bnVtYmVyIG9mIGVudHJpZXMgZmlsbGVkIG91dC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90
IEdldEZyYW1lVGltaW5ncyggQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqcFRpbWluZywgdWludDMy
X3QgbkZyYW1lcyApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0aW1lIGluIHNlY29u
ZHMgbGVmdCBpbiB0aGUgY3VycmVudCAoYXMgaWRlbnRpZmllZCBieSBGcmFtZVRpbWluZydzIGZy
YW1lSW5kZXgpIGZyYW1lLgorICAgICAgICogRHVlIHRvICJydW5uaW5nIHN0YXJ0IiwgdGhpcyB2
YWx1ZSBtYXkgcm9sbCBvdmVyIHRvIHRoZSBuZXh0IGZyYW1lIGJlZm9yZSBldmVyIHJlYWNoaW5n
IDAuMC4gKi8KKyAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZyYW1lVGltZVJlbWFpbmluZygpID0g
MDsKKworICAgICAgIC8qKiBGaWxscyBvdXQgc3RhdHMgYWNjdW11bGF0ZWQgZm9yIHRoZSBsYXN0
IGNvbm5lY3RlZCBhcHBsaWNhdGlvbi4gIFBhc3MgaW4gc2l6ZW9mKCBDb21wb3NpdG9yX0N1bXVs
YXRpdmVTdGF0cyApIGFzIHNlY29uZCBwYXJhbWV0ZXIuICovCisgICAgICAgdmlydHVhbCB2b2lk
IEdldEN1bXVsYXRpdmVTdGF0cyggQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgKnBTdGF0cywg
dWludDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMgKSA9IDA7CisKKyAgICAgICAvKiogRmFkZXMgdGhl
IHZpZXcgb24gdGhlIEhNRCB0byB0aGUgc3BlY2lmaWVkIGNvbG9yLiBUaGUgZmFkZSB3aWxsIHRh
a2UgZlNlY29uZHMsIGFuZCB0aGUgY29sb3IgdmFsdWVzIGFyZSBiZXR3ZWVuCisgICAgICAgKiAw
LjAgYW5kIDEuMC4gVGhpcyBjb2xvciBpcyBmYWRlZCBvbiB0b3Agb2YgdGhlIHNjZW5lIGJhc2Vk
IG9uIHRoZSBhbHBoYSBwYXJhbWV0ZXIuIFJlbW92aW5nIHRoZSBmYWRlIGNvbG9yIGluc3RhbnRs
eSAKKyAgICAgICAqIHdvdWxkIGJlIEZhZGVUb0NvbG9yKCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAu
MCApLiAgVmFsdWVzIGFyZSBpbiB1bi1wcmVtdWx0aXBsaWVkIGFscGhhIHNwYWNlLiAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBGYWRlVG9Db2xvciggZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQs
IGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3Vu
ZCA9IGZhbHNlICkgPSAwOworCisgICAgICAgLyoqIEdldCBjdXJyZW50IGZhZGUgY29sb3IgdmFs
dWUuICovCisgICAgICAgdmlydHVhbCBIbWRDb2xvcl90IEdldEN1cnJlbnRGYWRlQ29sb3IoIGJv
b2wgYkJhY2tncm91bmQgPSBmYWxzZSApID0gMDsKKworICAgICAgIC8qKiBGYWRpbmcgdGhlIEdy
aWQgaW4gb3Igb3V0IGluIGZTZWNvbmRzICovCisgICAgICAgdmlydHVhbCB2b2lkIEZhZGVHcmlk
KCBmbG9hdCBmU2Vjb25kcywgYm9vbCBiRmFkZUluICkgPSAwOworCisgICAgICAgLyoqIEdldCBj
dXJyZW50IGFscGhhIHZhbHVlIG9mIGdyaWQuICovCisgICAgICAgdmlydHVhbCBmbG9hdCBHZXRD
dXJyZW50R3JpZEFscGhhKCkgPSAwOworCisgICAgICAgLyoqIE92ZXJyaWRlIHRoZSBza3lib3gg
dXNlZCBpbiB0aGUgY29tcG9zaXRvciAoZS5nLiBmb3IgZHVyaW5nIGxldmVsIGxvYWRzIHdoZW4g
dGhlIGFwcCBjYW4ndCBmZWVkIHNjZW5lIGltYWdlcyBmYXN0IGVub3VnaCkKKyAgICAgICAqIE9y
ZGVyIGlzIEZyb250LCBCYWNrLCBMZWZ0LCBSaWdodCwgVG9wLCBCb3R0b20uICBJZiBvbmx5IGEg
c2luZ2xlIHRleHR1cmUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIGluIGxhdC1sb25nIGZvcm1h
dC4KKyAgICAgICAqIElmIHR3byBhcmUgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIGEgbGF0LWxvbmcg
c3RlcmVvIHBhaXIuICovCisgICAgICAgdmlydHVhbCBFVlJDb21wb3NpdG9yRXJyb3IgU2V0U2t5
Ym94T3ZlcnJpZGUoIFZSX0FSUkFZX0NPVU5UKCB1blRleHR1cmVDb3VudCApIGNvbnN0IFRleHR1
cmVfdCAqcFRleHR1cmVzLCB1aW50MzJfdCB1blRleHR1cmVDb3VudCApID0gMDsKKworICAgICAg
IC8qKiBSZXNldHMgY29tcG9zaXRvciBza3lib3ggYmFjayB0byBkZWZhdWx0cy4gKi8KKyAgICAg
ICB2aXJ0dWFsIHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpID0gMDsKKworICAgICAgIC8qKiBC
cmluZ3MgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBmcm9udC4gVGhpcyBpcyB1c2VmdWwg
Zm9yIGNvdmVyaW5nIGFueSBvdGhlciB3aW5kb3cgdGhhdCBtYXkgYmUgb24gdGhlIEhNRAorICAg
ICAgICogYW5kIGlzIG9ic2N1cmluZyB0aGUgY29tcG9zaXRvciB3aW5kb3cuICovCisgICAgICAg
dmlydHVhbCB2b2lkIENvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKSA9IDA7CisKKyAgICAgICAvKiog
UHVzaGVzIHRoZSBjb21wb3NpdG9yIHdpbmRvdyB0byB0aGUgYmFjay4gVGhpcyBpcyB1c2VmdWwg
Zm9yIGFsbG93aW5nIG90aGVyIGFwcGxpY2F0aW9ucyB0byBkcmF3IGRpcmVjdGx5IHRvIHRoZSBI
TUQuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JHb1RvQmFjaygpID0gMDsKKwor
ICAgICAgIC8qKiBUZWxscyB0aGUgY29tcG9zaXRvciBwcm9jZXNzIHRvIGNsZWFuIHVwIGFuZCBl
eGl0LiBZb3UgZG8gbm90IG5lZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGF0IHNodXRkb3duLiBV
bmRlciBub3JtYWwgCisgICAgICAgKiBjaXJjdW1zdGFuY2VzIHRoZSBjb21wb3NpdG9yIHdpbGwg
bWFuYWdlIGl0cyBvd24gbGlmZSBjeWNsZSBiYXNlZCBvbiB3aGF0IGFwcGxpY2F0aW9ucyBhcmUg
cnVubmluZy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvclF1aXQoKSA9IDA7Cisg
ICAgICAgCisgICAgICAgLyoqIFJldHVybiB3aGV0aGVyIHRoZSBjb21wb3NpdG9yIGlzIGZ1bGxz
Y3JlZW4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgSXNGdWxsc2NyZWVuKCkgPSAwOworCisgICAg
ICAgLyoqIFJldHVybnMgdGhlIHByb2Nlc3MgSUQgb2YgdGhlIHByb2Nlc3MgdGhhdCBpcyBjdXJy
ZW50bHkgcmVuZGVyaW5nIHRoZSBzY2VuZSAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhl
IHByb2Nlc3MgSUQgb2YgdGhlIHByb2Nlc3MgdGhhdCByZW5kZXJlZCB0aGUgbGFzdCBmcmFtZSAo
b3IgMCBpZiB0aGUgY29tcG9zaXRvciBpdHNlbGYgcmVuZGVyZWQgdGhlIGZyYW1lLikKKyAgICAg
ICAqIFJldHVybnMgMCB3aGVuIGZhZGluZyBvdXQgZnJvbSBhbiBhcHAgYW5kIHRoZSBhcHAncyBw
cm9jZXNzIElkIHdoZW4gZmFkaW5nIGludG8gYW4gYXBwLiAqLworICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0TGFzdEZyYW1lUmVuZGVyZXIoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0
cnVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaGFzIHRoZSBzY2VuZSBmb2N1cyAqLworICAgICAg
IHZpcnR1YWwgYm9vbCBDYW5SZW5kZXJTY2VuZSgpID0gMDsKKworICAgICAgIC8qKiBDcmVhdGVz
IGEgd2luZG93IG9uIHRoZSBwcmltYXJ5IG1vbml0b3IgdG8gZGlzcGxheSB3aGF0IGlzIGJlaW5n
IHNob3duIGluIHRoZSBoZWFkc2V0LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTaG93TWlycm9y
V2luZG93KCkgPSAwOworCisgICAgICAgLyoqIENsb3NlcyB0aGUgbWlycm9yIHdpbmRvdy4gKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgSGlkZU1pcnJvcldpbmRvdygpID0gMDsKKworICAgICAgIC8q
KiBSZXR1cm5zIHRydWUgaWYgdGhlIG1pcnJvciB3aW5kb3cgaXMgc2hvd24uICovCisgICAgICAg
dmlydHVhbCBib29sIElzTWlycm9yV2luZG93VmlzaWJsZSgpID0gMDsKKworICAgICAgIC8qKiBX
cml0ZXMgYWxsIGltYWdlcyB0aGF0IHRoZSBjb21wb3NpdG9yIGtub3dzIGFib3V0IChpbmNsdWRp
bmcgb3ZlcmxheXMpIHRvIGEgJ3NjcmVlbnNob3RzJyBmb2xkZXIgaW4gdGhlIFN0ZWFtVlIgcnVu
dGltZSByb290LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygp
ID0gMDsKKworICAgICAgIC8qKiBMZXQgYW4gYXBwIGtub3cgaXQgc2hvdWxkIGJlIHJlbmRlcmlu
ZyB3aXRoIGxvdyByZXNvdXJjZXMuICovCisgICAgICAgdmlydHVhbCBib29sIFNob3VsZEFwcFJl
bmRlcldpdGhMb3dSZXNvdXJjZXMoKSA9IDA7CisKKyAgICAgICAvKiogT3ZlcnJpZGUgaW50ZXJs
ZWF2ZWQgcmVwcm9qZWN0aW9uIGxvZ2ljIHRvIGZvcmNlIG9uLiAqLworICAgICAgIHZpcnR1YWwg
dm9pZCBGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24oIGJvb2wgYk92ZXJyaWRlICkgPSAw
OworCisgICAgICAgLyoqIEZvcmNlIHJlY29ubmVjdGluZyB0byB0aGUgY29tcG9zaXRvciBwcm9j
ZXNzLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGb3JjZVJlY29ubmVjdFByb2Nlc3MoKSA9IDA7
CisKKyAgICAgICAvKiogVGVtcG9yYXJpbHkgc3VzcGVuZHMgcmVuZGVyaW5nICh1c2VmdWwgZm9y
IGZpbmVyIGNvbnRyb2wgb3ZlciBzY2VuZSB0cmFuc2l0aW9ucykuICovCisgICAgICAgdmlydHVh
bCB2b2lkIFN1c3BlbmRSZW5kZXJpbmcoIGJvb2wgYlN1c3BlbmQgKSA9IDA7CisKKyAgICAgICAv
KiogT3BlbnMgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSB3aXRoIHRoZSB1bmRpc3RvcnRlZCBjb21w
b3NpdGVkIGltYWdlIGZvciBlYWNoIGV5ZS4gIFVzZSBSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDEx
IHdoZW4gZmluaXNoZWQKKyAgICAgICAqIGluc3RlYWQgb2YgY2FsbGluZyBSZWxlYXNlIG9uIHRo
ZSByZXNvdXJjZSBpdHNlbGYuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSQ29tcG9zaXRvckVy
cm9yIEdldE1pcnJvclRleHR1cmVEM0QxMSggdnI6OkVWUkV5ZSBlRXllLCB2b2lkICpwRDNEMTFE
ZXZpY2VPclJlc291cmNlLCB2b2lkICoqcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyApID0gMDsK
KyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSggdm9pZCAqcEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3ICkgPSAwOworCisgICAgICAgLyoqIEFjY2VzcyB0byBtaXJy
b3IgdGV4dHVyZXMgZnJvbSBPcGVuR0wuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSQ29tcG9z
aXRvckVycm9yIEdldE1pcnJvclRleHR1cmVHTCggdnI6OkVWUkV5ZSBlRXllLCB2cjo6Z2xVSW50
X3QgKnBnbFRleHR1cmVJZCwgdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90ICpwZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlICkgPSAwOworICAgICAgIHZpcnR1YWwgYm9vbCBSZWxlYXNlU2hhcmVkR0xU
ZXh0dXJlKCB2cjo6Z2xVSW50X3QgZ2xUZXh0dXJlSWQsIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5k
bGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCB2b2lkIExv
Y2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoIHZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCBn
bFNoYXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCB2b2lkIFVubG9ja0dM
U2hhcmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hh
cmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKworICAgICAgIC8qKiBbVnVsa2FuIE9ubHldCisgICAg
ICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbnVt
YmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0aGUg
dHJhaWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdpbGwgYmUgYSBzcGFjZSBzZXBh
cmF0ZWQgbGlzdCBvZi1yZXF1aXJlZCBpbnN0YW5jZSBleHRlbnNpb25zIHRvIGVuYWJsZSBpbiBW
a0NyZWF0ZUluc3RhbmNlICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRWdWxrYW5JbnN0
YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCggVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1
aW50MzJfdCB1bkJ1ZmZlclNpemUgKSA9IDA7CisKKyAgICAgICAvKiogW1Z1bGthbiBvbmx5XQor
ICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhl
IG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcg
dGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiAgVGhlIHN0cmluZyB3aWxsIGJlIGEgc3BhY2Ug
c2VwYXJhdGVkIGxpc3Qgb2YgcmVxdWlyZWQgZGV2aWNlIGV4dGVuc2lvbnMgdG8gZW5hYmxlIGlu
IFZrQ3JlYXRlRGV2aWNlICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRWdWxrYW5EZXZp
Y2VFeHRlbnNpb25zUmVxdWlyZWQoIFZrUGh5c2ljYWxEZXZpY2VfVCAqcFBoeXNpY2FsRGV2aWNl
LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSAp
ID0gMDsKKworICAgICAgIC8qKiBbIFZ1bGthbi9EM0QxMiBPbmx5IF0KKyAgICAgICAqIFRoZXJl
IGFyZSB0d28gcHVycG9zZXMgZm9yIFNldEV4cGxpY2l0VGltaW5nTW9kZToKKyAgICAgICAqICAg
ICAgIDEuIFRvIGdldCBhIG1vcmUgYWNjdXJhdGUgR1BVIHRpbWVzdGFtcCBmb3Igd2hlbiB0aGUg
ZnJhbWUgYmVnaW5zIGluIFZ1bGthbi9EM0QxMiBhcHBsaWNhdGlvbnMuCisgICAgICAgKiAgICAg
ICAyLiAoT3B0aW9uYWwpIFRvIGF2b2lkIGhhdmluZyBXYWl0R2V0UG9zZXMgYWNjZXNzIHRoZSBW
dWxrYW4gcXVldWUgc28gdGhhdCB0aGUgcXVldWUgY2FuIGJlIGFjY2Vzc2VkIGZyb20KKyAgICAg
ICAqICAgICAgIGFub3RoZXIgdGhyZWFkIHdoaWxlIFdhaXRHZXRQb3NlcyBpcyBleGVjdXRpbmcu
CisgICAgICAgKgorICAgICAgICogTW9yZSBhY2N1cmF0ZSBHUFUgdGltZXN0YW1wIGZvciB0aGUg
c3RhcnQgb2YgdGhlIGZyYW1lIGlzIGFjaGlldmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBjYWxsaW5n
CisgICAgICAgKiBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgaW1tZWRpYXRlbHkgYmVmb3JlIGl0
cyBmaXJzdCBzdWJtaXNzaW9uIHRvIHRoZSBWdWxrYW4vRDNEMTIgcXVldWUuCisgICAgICAgKiBU
aGlzIGlzIG1vcmUgYWNjdXJhdGUgYmVjYXVzZSBub3JtYWxseSB0aGlzIEdQVSB0aW1lc3RhbXAg
aXMgcmVjb3JkZWQgZHVyaW5nIFdhaXRHZXRQb3Nlcy4gIEluIEQzRDExLCAKKyAgICAgICAqIFdh
aXRHZXRQb3NlcyBxdWV1ZXMgYSBHUFUgdGltZXN0YW1wIHdyaXRlLCBidXQgaXQgZG9lcyBub3Qg
YWN0dWFsbHkgZ2V0IHN1Ym1pdHRlZCB0byB0aGUgR1BVIHVudGlsIHRoZSAKKyAgICAgICAqIGFw
cGxpY2F0aW9uIGZsdXNoZXMuICBCeSB1c2luZyBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEsIHRo
ZSB0aW1lc3RhbXAgaXMgcmVjb3JkZWQgYXQgdGhlIHNhbWUgcGxhY2UgZm9yIAorICAgICAgICog
VnVsa2FuL0QzRDEyIGFzIGl0IGlzIGZvciBEM0QxMSwgcmVzdWx0aW5nIGluIGEgbW9yZSBhY2N1
cmF0ZSBHUFUgdGltZSBtZWFzdXJlbWVudCBmb3IgdGhlIGZyYW1lLgorICAgICAgICoKKyAgICAg
ICAqIEF2b2lkaW5nIFdhaXRHZXRQb3NlcyBhY2Nlc3NpbmcgdGhlIFZ1bGthbiBxdWV1ZSBjYW4g
YmUgYWNoaWV2ZWQgdXNpbmcgU2V0RXhwbGljaXRUaW1pbmdNb2RlIGFzIHdlbGwuICBJZiB0aGlz
IGlzIGRlc2lyZWQsCisgICAgICAgKiB0aGUgYXBwbGljYXRpb24gKk1VU1QqIGNhbGwgUG9zdFBy
ZXNlbnRIYW5kb2ZmIGl0c2VsZiBwcmlvciB0byBXYWl0R2V0UG9zZXMuICBJZiBTZXRFeHBsaWNp
dFRpbWluZ01vZGUgaXMgdHJ1ZSBhbmQgdGhlCisgICAgICAgKiBhcHBsaWNhdGlvbiBjYWxscyBQ
b3N0UHJlc2VudEhhbmRvZmYsIHRoZW4gV2FpdEdldFBvc2VzIGlzIGd1YXJhbnRlZWQgbm90IHRv
IGFjY2VzcyB0aGUgcXVldWUuICBOb3RlIHRoYXQgUG9zdFByZXNlbnRIYW5kb2ZmCisgICAgICAg
KiBhbmQgU3VibWl0RXhwbGljaXRUaW1pbmdEYXRhIHdpbGwgYWNjZXNzIHRoZSBxdWV1ZSwgc28g
b25seSBXYWl0R2V0UG9zZXMgYmVjb21lcyBzYWZlIGZvciBhY2Nlc3NpbmcgdGhlIHF1ZXVlIGZy
b20gYW5vdGhlcgorICAgICAgICogdGhyZWFkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRF
eHBsaWNpdFRpbWluZ01vZGUoIGJvb2wgYkV4cGxpY2l0VGltaW5nTW9kZSApID0gMDsKKworICAg
ICAgIC8qKiBbIFZ1bGthbi9EM0QxMiBPbmx5IF0KKyAgICAgICAqIFN1Ym1pdCBleHBsaWNpdCB0
aW1pbmcgZGF0YS4gIFdoZW4gU2V0RXhwbGljaXRUaW1pbmdNb2RlIGlzIHRydWUsIHRoaXMgbXVz
dCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICAgKiB0aGUgYXBwbGljYXRpb24n
cyBmaXJzdCB2a1F1ZXVlU3VibWl0IChWdWxrYW4pIG9yIElEM0QxMkNvbW1hbmRRdWV1ZTo6RXhl
Y3V0ZUNvbW1hbmRMaXN0cyAoRDNEMTIpIG9mIGVhY2ggZnJhbWUuCisgICAgICAgKiBUaGlzIGZ1
bmN0aW9uIHdpbGwgaW5zZXJ0IGEgR1BVIHRpbWVzdGFtcCB3cml0ZSBqdXN0IGJlZm9yZSB0aGUg
YXBwbGljYXRpb24gc3RhcnRzIGl0cyByZW5kZXJpbmcuICBUaGlzIGZ1bmN0aW9uCisgICAgICAg
KiB3aWxsIHBlcmZvcm0gYSB2a1F1ZXVlU3VibWl0IG9uIFZ1bGthbiBzbyBtdXN0IG5vdCBiZSBk
b25lIHNpbXVsdGFuZW91c2x5IHdpdGggVmtRdWV1ZSBvcGVyYXRpb25zIG9uIGFub3RoZXIgdGhy
ZWFkLgorICAgICAgICogUmV0dXJucyBWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIGlm
IFNldEV4cGxpY2l0VGltaW5nTW9kZSBpcyBub3QgZW5hYmxlZC4gKi8KKyAgICAgICB2aXJ0dWFs
IEVWUkNvbXBvc2l0b3JFcnJvciBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEoKSA9IDA7Cit9Owor
CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUkNvbXBvc2l0b3JfVmVyc2lvbiA9ICJJVlJD
b21wb3NpdG9yXzAyMSI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKworCisvLyBpdnJub3RpZmlj
YXRpb25zLmgKK25hbWVzcGFjZSB2cgoreworCisjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorCisv
LyBVc2VkIGZvciBwYXNzaW5nIGdyYXBoaWMgZGF0YQorc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1h
cF90Cit7CisgICAgICAgTm90aWZpY2F0aW9uQml0bWFwX3QoKQorICAgICAgICAgICAgICA6IG1f
cEltYWdlRGF0YSggbnVsbHB0ciApCisgICAgICAgICAgICAgICwgbV9uV2lkdGgoIDAgKQorICAg
ICAgICAgICAgICAsIG1fbkhlaWdodCggMCApCisgICAgICAgICAgICAgICwgbV9uQnl0ZXNQZXJQ
aXhlbCggMCApCisgICAgICAgeworICAgICAgIH07CisKKyAgICAgICB2b2lkICptX3BJbWFnZURh
dGE7CisgICAgICAgaW50MzJfdCBtX25XaWR0aDsKKyAgICAgICBpbnQzMl90IG1fbkhlaWdodDsK
KyAgICAgICBpbnQzMl90IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9OworCisKKy8qKiBCZSBhd2FyZSB0
aGF0IHRoZSBub3RpZmljYXRpb24gdHlwZSBpcyB1c2VkIGFzICdwcmlvcml0eScgdG8gcGljayB0
aGUgbmV4dCBub3RpZmljYXRpb24gKi8KK2VudW0gRVZSTm90aWZpY2F0aW9uVHlwZQoreworICAg
ICAgIC8qKiBUcmFuc2llbnQgbm90aWZpY2F0aW9ucyBhcmUgYXV0b21hdGljYWxseSBoaWRkZW4g
YWZ0ZXIgYSBwZXJpb2Qgb2YgdGltZSBzZXQgYnkgdGhlIHVzZXIuIAorICAgICAgICogVGhleSBh
cmUgdXNlZCBmb3IgdGhpbmdzIGxpa2UgaW5mb3JtYXRpb24gYW5kIGNoYXQgbWVzc2FnZXMgdGhh
dCBkbyBub3QgcmVxdWlyZSB1c2VyIGludGVyYWN0aW9uLiAqLworICAgICAgIEVWUk5vdGlmaWNh
dGlvblR5cGVfVHJhbnNpZW50ID0gMCwKKworICAgICAgIC8qKiBQZXJzaXN0ZW50IG5vdGlmaWNh
dGlvbnMgYXJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZXkgYXJlIGhpZGRlbiBieSBjYWxs
aW5nIFJlbW92ZU5vdGlmaWNhdGlvbigpLgorICAgICAgICogVGhleSBhcmUgdXNlZCBmb3IgdGhp
bmdzIGxpa2UgcGhvbmUgY2FsbHMgYW5kIGFsYXJtcyB0aGF0IHJlcXVpcmUgdXNlciBpbnRlcmFj
dGlvbi4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQgPSAxLAorCisg
ICAgICAgLyoqIFN5c3RlbSBub3RpZmljYXRpb25zIGFyZSBzaG93biBubyBtYXR0ZXIgd2hhdC4g
SXQgaXMgZXhwZWN0ZWQsIHRoYXQgdGhlIHVsVXNlclZhbHVlIGlzIHVzZWQgYXMgSUQuCisgICAg
ICAgICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHN5c3RlbSBub3RpZmljYXRpb24gaW4gdGhlIHF1
ZXVlIHdpdGggdGhhdCBJRCBpdCBpcyBub3QgYWNjZXB0ZWQgaW50byB0aGUgcXVldWUKKyAgICAg
ICAgKiB0byBwcmV2ZW50IHNwYW1taW5nIHdpdGggc3lzdGVtIG5vdGlmaWNhdGlvbiAqLworICAg
ICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUgPSAy
LAorfTsKKworZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQoreworICAgICAgIC8qKiBDcmVhdGVz
IGEgbm90aWZpY2F0aW9uIHdpdGggbWluaW1hbCBleHRlcm5hbCBzdHlsaW5nLiAqLworICAgICAg
IEVWUk5vdGlmaWNhdGlvblN0eWxlX05vbmUgPSAwLAorCisgICAgICAgLyoqIFVzZWQgZm9yIG5v
dGlmaWNhdGlvbnMgYWJvdXQgb3ZlcmxheS1sZXZlbCBzdGF0dXMuIEluIFN0ZWFtIHRoaXMgaXMg
dXNlZCBmb3IgZXZlbnRzIGxpa2UgZG93bmxvYWRzIGNvbXBsZXRpbmcuICovCisgICAgICAgRVZS
Tm90aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24gPSAxMDAsCisKKyAgICAgICAvKiogVXNlZCBm
b3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0cyB0aGF0IGFyZSB1bmtub3duIG9yIG5vdCBh
dmFpbGFibGUuIEluIFN0ZWFtIHRoaXMgaXMgdXNlZCBmb3IgZnJpZW5kIGludml0YXRpb25zIGFu
ZCBvZmZsaW5lIGZyaWVuZHMuICovCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFj
dF9EaXNhYmxlZCA9IDIwMCwKKworICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFi
b3V0IGNvbnRhY3RzIHRoYXQgYXJlIGF2YWlsYWJsZSBidXQgaW5hY3RpdmUuIEluIFN0ZWFtIHRo
aXMgaXMgdXNlZCBmb3IgZnJpZW5kcyB0aGF0IGFyZSBvbmxpbmUgYnV0IG5vdCBwbGF5aW5nIGEg
Z2FtZS4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0VuYWJsZWQgPSAy
MDEsCisKKyAgICAgICAvKiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBjb250YWN0cyB0
aGF0IGFyZSBhdmFpbGFibGUgYW5kIGFjdGl2ZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBm
cmllbmRzIHRoYXQgYXJlIG9ubGluZSBhbmQgY3VycmVudGx5IHJ1bm5pbmcgYSBnYW1lLiAqLwor
ICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfQWN0aXZlID0gMjAyLAorfTsKKwor
c3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsK
KwordHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOworCisKKworI3ByYWdtYSBwYWNr
KCBwb3AgKQorCisvKiogQWxsb3dzIG5vdGlmaWNhdGlvbiBzb3VyY2VzIHRvIGludGVyYWN0IHdp
dGggdGhlIFZSIHN5c3RlbQorICAgICAgIFRoaXMgY3VycmVudCBpbnRlcmZhY2UgaXMgbm90IHll
dCBpbXBsZW1lbnRlZC4gRG8gbm90IHVzZSB5ZXQuICovCitjbGFzcyBJVlJOb3RpZmljYXRpb25z
Cit7CitwdWJsaWM6CisgICAgICAgLyoqIENyZWF0ZSBhIG5vdGlmaWNhdGlvbiBhbmQgZW5xdWV1
ZSBpdCB0byBiZSBzaG93biB0byB0aGUgdXNlci4KKyAgICAgICAqIEFuIG92ZXJsYXkgaGFuZGxl
IGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIG5vdGlmaWNhdGlvbiwgYXMgb3RoZXJ3aXNlIGl0IHdv
dWxkIGJlIGltcG9zc2libGUgZm9yIGEgdXNlciB0byBhY3Qgb24gaXQuCisgICAgICAgKiBUbyBj
cmVhdGUgYSB0d28tbGluZSBub3RpZmljYXRpb24sIHVzZSBhIGxpbmUgYnJlYWsgKCdcbicpIHRv
IHNwbGl0IHRoZSB0ZXh0IGludG8gdHdvIGxpbmVzLgorICAgICAgICogVGhlIHBJbWFnZSBhcmd1
bWVudCBtYXkgYmUgTlVMTCwgaW4gd2hpY2ggY2FzZSB0aGUgc3BlY2lmaWVkIG92ZXJsYXkncyBp
Y29uIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLiAqLworICAgICAgIHZpcnR1YWwgRVZSTm90aWZpY2F0
aW9uRXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHVpbnQ2NF90IHVsVXNlclZhbHVlLCBFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsIGNv
bnN0IGNoYXIgKnBjaFRleHQsIEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCBjb25zdCBOb3Rp
ZmljYXRpb25CaXRtYXBfdCAqcEltYWdlLCAvKiBvdXQgKi8gVlJOb3RpZmljYXRpb25JZCAqcE5v
dGlmaWNhdGlvbklkICkgPSAwOworCisgICAgICAgLyoqIERlc3Ryb3kgYSBub3RpZmljYXRpb24s
IGhpZGluZyBpdCBmaXJzdCBpZiBpdCBjdXJyZW50bHkgc2hvd24gdG8gdGhlIHVzZXIuICovCisg
ICAgICAgdmlydHVhbCBFVlJOb3RpZmljYXRpb25FcnJvciBSZW1vdmVOb3RpZmljYXRpb24oIFZS
Tm90aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQgKSA9IDA7CisKK307CisKK3N0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgSVZSTm90aWZpY2F0aW9uc19WZXJzaW9uID0gIklWUk5vdGlmaWNhdGlv
bnNfMDAyIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cm92ZXJsYXkuaAorbmFt
ZXNwYWNlIHZyCit7CisKKyAgICAgICAvKiogVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIG92ZXJs
YXkga2V5IGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIu
ICovCisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5n
dGggPSAxMjg7CisKKyAgICAgICAvKiogVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIG92ZXJsYXkg
bmFtZSBpbiBieXRlcywgY291bnRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLiAq
LworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVlJPdmVybGF5TWF4TmFtZUxlbmd0
aCA9IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3ZlcmxheXMgdGhh
dCBjYW4gZXhpc3QgaW4gdGhlIHN5c3RlbSBhdCBvbmUgdGltZS4gKi8KKyAgICAgICBzdGF0aWMg
Y29uc3QgdWludDMyX3Qga191bk1heE92ZXJsYXlDb3VudCA9IDY0OworCisgICAgICAgLyoqIFRo
ZSBtYXhpbXVtIG51bWJlciBvZiBvdmVybGF5IGludGVyc2VjdGlvbiBtYXNrIHByaW1pdGl2ZXMg
cGVyIG92ZXJsYXkgKi8KKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heE92ZXJs
YXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlc0NvdW50ID0gMzI7CisKKyAgICAgICAvKiogVHlw
ZXMgb2YgaW5wdXQgc3VwcG9ydGVkIGJ5IFZSIE92ZXJsYXlzICovCisgICAgICAgZW51bSBWUk92
ZXJsYXlJbnB1dE1ldGhvZAorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJPdmVybGF5SW5wdXRN
ZXRob2RfTm9uZSAgICAgICAgICAgICAgPSAwLCAvLyBObyBpbnB1dCBldmVudHMgd2lsbCBiZSBn
ZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmb3IgdGhpcyBvdmVybGF5CisgICAgICAgICAgICAgIFZS
T3ZlcmxheUlucHV0TWV0aG9kX01vdXNlICAgICAgICAgICAgICA9IDEsIC8vIFRyYWNrZWQgY29u
dHJvbGxlcnMgd2lsbCBnZXQgbW91c2UgZXZlbnRzIGF1dG9tYXRpY2FsbHkKKyAgICAgICB9Owor
CisgICAgICAgLyoqIEFsbG93cyB0aGUgY2FsbGVyIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb3Zlcmxh
eSB0cmFuc2Zvcm0gZ2V0dGVyIHRvIGNhbGwuICovCisgICAgICAgZW51bSBWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlCisgICAgICAgeworICAgICAgICAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fQWJz
b2x1dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICAgICAg
ICAgVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSAgICAgICA9IDEsCisg
ICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9TeXN0ZW1PdmVybGF5ICAgICAgICAgICAg
ICAgICAgICAgPSAyLAorICAgICAgICAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZENv
bXBvbmVudCAgICAgICAgICAgICAgID0gMywKKyAgICAgICB9OworCisgICAgICAgLyoqIE92ZXJs
YXkgY29udHJvbCBzZXR0aW5ncyAqLworICAgICAgIGVudW0gVlJPdmVybGF5RmxhZ3MKKyAgICAg
ICB7CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05vbmUgICAgICAgICAgICAgICAgICAg
ICA9IDAsCisKKyAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBvbmx5IHRha2UgZWZmZWN0
IHdoZW4gcmVuZGVyZWQgdXNpbmcgdGhlIGhpZ2ggcXVhbGl0eSByZW5kZXIgcGF0aCAoc2VlIFNl
dEhpZ2hRdWFsaXR5T3ZlcmxheSkuCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX0N1cnZl
ZCAgICAgICAgICAgICAgPSAxLAorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19SR1NTNFgg
ICAgICAgICAgICAgID0gMiwKKworICAgICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIG9uIGEg
ZGFzaGJvYXJkIG92ZXJsYXkgdG8gcHJldmVudCBhIHRhYiBmcm9tIHNob3dpbmcgdXAgZm9yIHRo
YXQgb3ZlcmxheQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiA9
IDMsCisKKyAgICAgICAgICAgICAgLy8gU2V0IHRoaXMgZmxhZyBvbiBhIGRhc2hib2FyZCB0aGF0
IGlzIGFibGUgdG8gZGVhbCB3aXRoIGdhbWVwYWQgZm9jdXMgZXZlbnRzCisgICAgICAgICAgICAg
IFZST3ZlcmxheUZsYWdzX0FjY2VwdHNHYW1lcGFkRXZlbnRzID0gNCwKKworICAgICAgICAgICAg
ICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgb3ZlcmxheSBzaG91bGQgZGltL2JyaWdodGVuIHRvIHNo
b3cgZ2FtZXBhZCBmb2N1cworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TaG93R2FtZXBh
ZEZvY3VzID0gNSwKKworICAgICAgICAgICAgICAvLyBXaGVuIGluIFZST3ZlcmxheUlucHV0TWV0
aG9kX01vdXNlIHlvdSBjYW4gb3B0aW9uYWxseSBlbmFibGUgc2VuZGluZyBWUlNjcm9sbF90IAor
ICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3JvbGxFdmVudHMgPSA2LAorICAg
ICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBhZEV2ZW50cyA9IDcsCisKKyAg
ICAgICAgICAgICAgLy8gSWYgc2V0IHRoaXMgd2lsbCByZW5kZXIgYSB2ZXJ0aWNhbCBzY3JvbGwg
d2hlZWwgb24gdGhlIHByaW1hcnkgY29udHJvbGxlciwgCisgICAgICAgICAgICAgIC8vICBvbmx5
IG5lZWRlZCBpZiBub3QgdXNpbmcgVlJPdmVybGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzIGJ1
dCB5b3Ugc3RpbGwgd2FudCB0byByZXByZXNlbnQgYSBzY3JvbGwgd2hlZWwKKyAgICAgICAgICAg
ICAgVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwgPSA4LAorCisgICAgICAg
ICAgICAgIC8vIElmIHRoaXMgaXMgc2V0IG93bmVyc2hpcCBhbmQgcmVuZGVyIGFjY2VzcyB0byB0
aGUgb3ZlcmxheSBhcmUgdHJhbnNmZXJyZWQgCisgICAgICAgICAgICAgIC8vIHRvIHRoZSBuZXcg
c2NlbmUgcHJvY2VzcyBvbiBhIGNhbGwgdG8gSVZSQXBwbGljYXRpb25zOjpMYXVuY2hJbnRlcm5h
bFByb2Nlc3MKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfVHJhbnNmZXJPd25lcnNoaXBU
b0ludGVybmFsUHJvY2VzcyA9IDksCisKKyAgICAgICAgICAgICAgLy8gSWYgc2V0LCByZW5kZXJz
IDUwJSBvZiB0aGUgdGV4dHVyZSBpbiBlYWNoIGV5ZSwgc2lkZSBieSBzaWRlCisgICAgICAgICAg
ICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwgPSAxMCwgLy8gVGV4dHVyZSBp
cyBsZWZ0L3JpZ2h0CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfQ3Jv
c3NlZCA9IDExLCAvLyBUZXh0dXJlIGlzIGNyb3NzZWQgYW5kIHJpZ2h0L2xlZnQKKworICAgICAg
ICAgICAgICBWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSA9IDEyLCAvLyBUZXh0dXJlIGlzIGEgcGFu
b3JhbWEKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU3RlcmVvUGFub3JhbWEgPSAxMywg
Ly8gVGV4dHVyZSBpcyBhIHN0ZXJlbyBwYW5vcmFtYQorCisgICAgICAgICAgICAgIC8vIElmIHRo
aXMgaXMgc2V0IG9uIGFuIG92ZXJsYXkgb3duZWQgYnkgdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRo
YXQgb3ZlcmxheQorICAgICAgICAgICAgICAvLyB3aWxsIGJlIHNvcnRlZCB3aXRoIHRoZSAiT3Ro
ZXIiIG92ZXJsYXlzIG9uIHRvcCBvZiBhbGwgb3RoZXIgc2NlbmUgb3ZlcmxheXMKKyAgICAgICAg
ICAgICAgVlJPdmVybGF5RmxhZ3NfU29ydFdpdGhOb25TY2VuZU92ZXJsYXlzID0gMTQsCisKKyAg
ICAgICAgICAgICAgLy8gSWYgc2V0LCB0aGUgb3ZlcmxheSB3aWxsIGJlIHNob3duIGluIHRoZSBk
YXNoYm9hcmQsIG90aGVyd2lzZSBpdCB3aWxsIGJlIGhpZGRlbi4KKyAgICAgICAgICAgICAgVlJP
dmVybGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkID0gMTUsCisgICAgICAgfTsKKworICAgICAg
IGVudW0gVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlCisgICAgICAgeworICAgICAgICAgICAgICBW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMCA9IDAsCisgICAgICAgICAgICAg
IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18xID0gMSwKKyAgICAgICAgICAg
ICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIgPSAyLAorICAgICAgICAg
ICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMyA9IDMsCisgICAgICAg
ICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZFN5c3RlbU92ZXJsYXkg
PSA0LAorICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRP
ckNyZWF0ZUNsaWVudE92ZXJsYXk9IDUsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlS
ZXNwb25zZV9BcHBsaWNhdGlvblF1aXQgPSA2CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBW
Uk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1k
VmVjdG9yM190IHZTb3VyY2U7CisgICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9u
OworICAgICAgICAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOworICAgICAg
IH07CisKKyAgICAgICBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190CisgICAg
ICAgeworICAgICAgICAgICAgICBIbWRWZWN0b3IzX3QgdlBvaW50OworICAgICAgICAgICAgICBI
bWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICAgICAgICAgSG1kVmVjdG9yMl90IHZVVnM7Cisg
ICAgICAgICAgICAgIGZsb2F0IGZEaXN0YW5jZTsKKyAgICAgICB9OworCisgICAgICAgLy8gSW5w
dXQgbW9kZXMgZm9yIHRoZSBCaWcgUGljdHVyZSBnYW1lcGFkIHRleHQgZW50cnkKKyAgICAgICBl
bnVtIEVHYW1lcGFkVGV4dElucHV0TW9kZQorICAgICAgIHsKKyAgICAgICAgICAgICAga19FR2Ft
ZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgICAgICAgICBrX0VHYW1lcGFkVGV4
dElucHV0TW9kZVBhc3N3b3JkID0gMSwKKyAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1
dE1vZGVTdWJtaXQgPSAyLAorICAgICAgIH07CisKKyAgICAgICAvLyBDb250cm9scyBudW1iZXIg
b2YgYWxsb3dlZCBsaW5lcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdhbWVwYWQgdGV4dCBlbnRyeQor
ICAgICAgIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZQorICAgICAgIHsKKyAgICAgICAg
ICAgICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlU2luZ2xlTGluZSA9IDAsCisgICAgICAg
ICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxCisgICAg
ICAgfTsKKworICAgICAgIC8qKiBEaXJlY3Rpb25zIGZvciBjaGFuZ2luZyBmb2N1cyBiZXR3ZWVu
IG92ZXJsYXlzIHdpdGggdGhlIGdhbWVwYWQgKi8KKyAgICAgICBlbnVtIEVPdmVybGF5RGlyZWN0
aW9uCisgICAgICAgeworICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX1VwID0gMCwKKyAg
ICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9Eb3duID0gMSwKKyAgICAgICAgICAgICAgT3Zl
cmxheURpcmVjdGlvbl9MZWZ0ID0gMiwKKyAgICAgICAgICAgICAgT3ZlcmxheURpcmVjdGlvbl9S
aWdodCA9IDMsCisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9u
X0NvdW50ID0gNCwKKyAgICAgICB9OworCisgICAgICAgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIE92ZXJsYXlJbnRl
cnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSwKKyAgICAgICAgICAgICAgT3ZlcmxheUlu
dGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlLAorICAgICAgIH07CisKKyAgICAgICBzdHJ1
Y3QgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90CisgICAgICAgeworICAgICAgICAgICAgICBm
bG9hdCBtX2ZsVG9wTGVmdFg7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WTsKKyAg
ICAgICAgICAgICAgZmxvYXQgbV9mbFdpZHRoOworICAgICAgICAgICAgICBmbG9hdCBtX2ZsSGVp
Z2h0OworICAgICAgIH07CisKKyAgICAgICBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90
CisgICAgICAgeworICAgICAgICAgICAgICBmbG9hdCBtX2ZsQ2VudGVyWDsKKyAgICAgICAgICAg
ICAgZmxvYXQgbV9mbENlbnRlclk7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxSYWRpdXM7Cisg
ICAgICAgfTsKKworICAgICAgIC8qKiBOT1RFISEhIElmIHlvdSBjaGFuZ2UgdGhpcyB5b3UgTVVT
VCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgYW5kIG9wZW52cl9hcGlfZmxh
dC5oLnB5ICovCisgICAgICAgdHlwZWRlZiB1bmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAg
SW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1fUmVjdGFuZ2xlOworICAgICAgICAgICAgICBJ
bnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QgbV9DaXJjbGU7CisgICAgICAgfSBWUk92ZXJsYXlJbnRl
cnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdDsKKworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZSBtX25QcmltaXRpdmVUeXBlOworICAg
ICAgICAgICAgICBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCBtX1By
aW1pdGl2ZTsKKyAgICAgICB9OworCisgICAgICAgY2xhc3MgSVZST3ZlcmxheQorICAgICAgIHsK
KyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE92ZXJsYXkgbWFuYWdl
bWVudCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBGaW5kcyBhbiBleGlzdGlu
ZyBvdmVybGF5IHdpdGggdGhlIHNwZWNpZmllZCBrZXkuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIEZpbmRPdmVybGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5
LCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBDcmVhdGVzIGEgbmV3IG5hbWVkIG92ZXJsYXkuIEFsbCBvdmVybGF5cyBzdGFydCBo
aWRkZW4gYW5kIHdpdGggZGVmYXVsdCBzZXR0aW5ncy4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlT3ZlcmxheSggY29uc3QgY2hhciAqcGNoT3ZlcmxheUtl
eSwgY29uc3QgY2hhciAqcGNoT3ZlcmxheU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE92ZXJs
YXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIERlc3Ryb3lzIHRoZSBzcGVjaWZp
ZWQgb3ZlcmxheS4gV2hlbiBhbiBhcHBsaWNhdGlvbiBjYWxscyBWUl9TaHV0ZG93biBhbGwgb3Zl
cmxheXMgY3JlYXRlZCBieSB0aGF0IGFwcCBhcmUKKyAgICAgICAgICAgICAgKiBhdXRvbWF0aWNh
bGx5IGRlc3Ryb3llZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
RGVzdHJveU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogU3BlY2lmeSB3aGljaCBvdmVybGF5IHRvIHVzZSB0aGUgaGln
aCBxdWFsaXR5IHJlbmRlciBwYXRoLiAgVGhpcyBvdmVybGF5IHdpbGwgYmUgY29tcG9zaXRlZCBp
biBkdXJpbmcgdGhlIGRpc3RvcnRpb24gcGFzcyB3aGljaAorICAgICAgICAgICAgICAqIHJlc3Vs
dHMgaW4gaXQgZHJhd2luZyBvbiB0b3Agb2YgZXZlcnl0aGluZyBlbHNlLCBidXQgYWxzbyBhdCBh
IGhpZ2hlciBxdWFsaXR5IGFzIGl0IHNhbXBsZXMgdGhlIHNvdXJjZSB0ZXh0dXJlIGRpcmVjdGx5
IHJhdGhlciB0aGFuCisgICAgICAgICAgICAgICogcmFzdGVyaXppbmcgaW50byBlYWNoIGV5ZSdz
IHJlbmRlciB0ZXh0dXJlIGZpcnN0LiAgQmVjYXVzZSBpZiB0aGlzLCBvbmx5IG9uZSBvZiB0aGVz
ZSBpcyBzdXBwb3J0ZWQgYXQgYW55IGdpdmVuIHRpbWUuICBJdCBpcyBtb3N0IHVzZWZ1bAorICAg
ICAgICAgICAgICAqIGZvciBvdmVybGF5cyB0aGF0IGFyZSBleHBlY3RlZCB0byB0YWtlIHVwIG1v
c3Qgb2YgdGhlIHVzZXIncyB2aWV3IChlLmcuIHN0cmVhbWluZyB2aWRlbykuCisgICAgICAgICAg
ICAgICogVGhpcyBtb2RlIGRvZXMgbm90IHN1cHBvcnQgbW91c2UgaW5wdXQgdG8geW91ciBvdmVy
bGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRIaWdoUXVh
bGl0eU92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgb3ZlcmxheSBoYW5kbGUgb2YgdGhlIGN1cnJl
bnQgb3ZlcmxheSBiZWluZyByZW5kZXJlZCB1c2luZyB0aGUgc2luZ2xlIGhpZ2ggcXVhbGl0eSBv
dmVybGF5IHJlbmRlciBwYXRoLgorICAgICAgICAgICAgICAqIE90aGVyd2lzZSBpdCB3aWxsIHJl
dHVybiBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dnI6OlZST3ZlcmxheUhhbmRsZV90IEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpID0gMDsKKworICAg
ICAgICAgICAgICAvKiogRmlsbHMgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3aXRoIHRoZSBzdHJpbmcg
a2V5IG9mIHRoZSBvdmVybGF5LiBSZXR1cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCB0
byBzdG9yZSB0aGUga2V5LCBpbmNsdWRpbmcKKyAgICAgICAgICAgICAgKiB0aGUgdGVybWluYXRp
bmcgbnVsbCBjaGFyYWN0ZXIuIGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggd2lsbCBiZSBlbm91
Z2ggYnl0ZXMgdG8gZml0IHRoZSBzdHJpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0T3ZlcmxheUtleSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBW
Ul9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZS
T3ZlcmxheUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAgICAgICAgICAgICAvKiogRmls
bHMgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3aXRoIHRoZSBmcmllbmRseSBuYW1lIG9mIHRoZSBvdmVy
bGF5LiBSZXR1cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCB0byBzdG9yZSB0aGUga2V5
LCBpbmNsdWRpbmcKKyAgICAgICAgICAgICAgKiB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0
ZXIuIGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoIHdpbGwgYmUgZW5vdWdoIGJ5dGVzIHRvIGZp
dCB0aGUgc3RyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92ZXJs
YXlOYW1lKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSX09VVF9TVFJJTkco
KSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJyb3Ig
KnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBzZXQgdGhlIG5hbWUgdG8g
dXNlIGZvciB0aGlzIG92ZXJsYXkgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheU5hbWUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
Y29uc3QgY2hhciAqcGNoTmFtZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUg
cmF3IGltYWdlIGRhdGEgZnJvbSBhbiBvdmVybGF5LiBPdmVybGF5IGltYWdlIGRhdGEgaXMgYWx3
YXlzIHJldHVybmVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIgcGl4ZWwuIElmIHRoZSBidWZm
ZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgd2lkdGggYW5kIGhlaWdodCAKKyAgICAgICAgICAgICAg
KiB3aWxsIGJlIHNldCBhbmQgVlJPdmVybGF5RXJyb3JfQXJyYXlUb29TbWFsbCBpcyByZXR1cm5l
ZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUlt
YWdlRGF0YSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwdkJ1ZmZl
ciwgdWludDMyX3QgdW5CdWZmZXJTaXplLCB1aW50MzJfdCAqcHVuV2lkdGgsIHVpbnQzMl90ICpw
dW5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHJldHVybnMgYSBzdHJpbmcgdGhh
dCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgb3ZlcmxheSBlcnJvci4gVGhlIHN0cmlu
ZyB3aWxsIGJlIHRoZSBuYW1lIAorICAgICAgICAgICAgICAqIG9mIHRoZSBlcnJvciBlbnVtIHZh
bHVlIGZvciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBj
b25zdCBjaGFyICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oIEVWUk92ZXJsYXlFcnJvciBl
cnJvciApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3ZlcmxheSByZW5kZXJpbmcg
bWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgcGlkIHRoYXQgaXMg
YWxsb3dlZCB0byByZW5kZXIgdG8gdGhpcyBvdmVybGF5ICh0aGUgY3JlYXRvciBwaWQgaXMgYWx3
YXlzIGFsbG93IHRvIHJlbmRlciksCisgICAgICAgICAgICAgICogICAgICAgYnkgZGVmYXVsdCB0
aGlzIGlzIHRoZSBwaWQgb2YgdGhlIHByb2Nlc3MgdGhhdCBtYWRlIHRoZSBvdmVybGF5ICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlSZW5kZXJpbmdQ
aWQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5QSUQgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHBpZCB0aGF0IGlzIGFsbG93ZWQgdG8g
cmVuZGVyIHRvIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90
IEdldE92ZXJsYXlSZW5kZXJpbmdQaWQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU3BlY2lmeSBmbGFnIHNldHRpbmcgZm9yIGEg
Z2l2ZW4gb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBT
ZXRPdmVybGF5RmxhZyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJs
YXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIFNldHMgZmxhZyBzZXR0aW5nIGZvciBhIGdpdmVuIG92ZXJsYXkgKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUZsYWcoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29s
ICpwYkVuYWJsZWQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGNvbG9yIHRp
bnQgb2YgdGhlIG92ZXJsYXkgcXVhZC4gVXNlIDAuMCB0byAxLjAgcGVyIGNoYW5uZWwuICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlDb2xvciggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmUmVkLCBmbG9hdCBmR3JlZW4s
IGZsb2F0IGZCbHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBjb2xvciB0
aW50IG9mIHRoZSBvdmVybGF5IHF1YWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlDb2xvciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBmbG9hdCAqcGZSZWQsIGZsb2F0ICpwZkdyZWVuLCBmbG9hdCAqcGZCbHVlICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmxheSBxdWFkLiBV
c2UgMS4wIGZvciAxMDAgcGVyY2VudCBvcGFjaXR5IHRvIDAuMCBmb3IgMCBwZXJjZW50IG9wYWNp
dHkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlB
bHBoYSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmQWxwaGEgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGFscGhhIG9mIHRoZSBvdmVybGF5IHF1
YWQuIEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmluZyBhdCAxMDAgcGVyY2VudCBhbHBo
YSAoMS4wKS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheUFscGhhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICpwZkFs
cGhhICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBhc3BlY3QgcmF0aW8gb2Yg
dGhlIHRleGVscyBpbiB0aGUgb3ZlcmxheS4gMS4wIG1lYW5zIHRoZSB0ZXhlbHMgYXJlIHNxdWFy
ZS4gMi4wIG1lYW5zIHRoZSB0ZXhlbHMKKyAgICAgICAgICAgICAgKiBhcmUgdHdpY2UgYXMgd2lk
ZSBhcyB0aGV5IGFyZSB0YWxsLiBEZWZhdWx0cyB0byAxLjAuICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXhlbEFzcGVjdCggVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3BlY3QgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIEdldHMgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgdGV4ZWxzIGluIHRoZSBv
dmVybGF5LiBEZWZhdWx0cyB0byAxLjAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0ICpwZlRleGVsQXNwZWN0ICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBTZXRzIHRoZSByZW5kZXJpbmcgc29ydCBvcmRlciBmb3IgdGhlIG92ZXJsYXkuIE92ZXJsYXlz
IGFyZSByZW5kZXJlZCB0aGlzIG9yZGVyOgorICAgICAgICAgICAgICAqICAgICAgT3ZlcmxheXMg
b3duZWQgYnkgdGhlIHNjZW5lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICogICAgICBPdmVy
bGF5cyBvd25lZCBieSBzb21lIG90aGVyIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICoKKyAg
ICAgICAgICAgICAgKiAgICAgICBXaXRoaW4gYSBjYXRlZ29yeSBvdmVybGF5cyBhcmUgcmVuZGVy
ZWQgbG93ZXN0IHNvcnQgb3JkZXIgdG8gaGlnaGVzdCBzb3J0IG9yZGVyLiBPdmVybGF5cyB3aXRo
IHRoZSBzYW1lIAorICAgICAgICAgICAgICAqICAgICAgIHNvcnQgb3JkZXIgYXJlIHJlbmRlcmVk
IGJhY2sgdG8gZnJvbnQgYmFzZSBvbiBkaXN0YW5jZSBmcm9tIHRoZSBITUQuCisgICAgICAgICAg
ICAgICoKKyAgICAgICAgICAgICAgKiAgICAgICBTb3J0IG9yZGVyIGRlZmF1bHRzIHRvIDAuICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlTb3J0T3Jk
ZXIoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5Tb3J0T3Jk
ZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHNvcnQgb3JkZXIgb2YgdGhl
IG92ZXJsYXkuIFNlZSBTZXRPdmVybGF5U29ydE9yZGVyIGZvciBob3cgdGhpcyB3b3Jrcy4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVNvcnRPcmRl
ciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcHVuU29ydE9y
ZGVyICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB3aWR0aCBvZiB0aGUgb3Zl
cmxheSBxdWFkIGluIG1ldGVycy4gQnkgZGVmYXVsdCBvdmVybGF5cyBhcmUgcmVuZGVyZWQgb24g
YSBxdWFkIHRoYXQgaXMgMSBtZXRlciBhY3Jvc3MgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSBvdmVybGF5IHF1YWQgaW4gbWV0ZXJz
LiBCeSBkZWZhdWx0IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBvbiBhIHF1YWQgdGhhdCBpcyAxIG1l
dGVyIGFjcm9zcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRP
dmVybGF5V2lkdGhJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBm
bG9hdCAqcGZXaWR0aEluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGb3IgaGln
aC1xdWFsaXR5IGN1cnZlZCBvdmVybGF5cyBvbmx5LCBzZXRzIHRoZSBkaXN0YW5jZSByYW5nZSBp
biBtZXRlcnMgZnJvbSB0aGUgb3ZlcmxheSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgY3VydmUKKyAg
ICAgICAgICAgICAgKiB0aGUgc3VyZmFjZSBhcm91bmQgdGhlIHZpZXdlci4gIE1pbiBpcyBkaXN0
YW5jZSBpcyB3aGVuIHRoZSBzdXJmYWNlIHdpbGwgYmUgbW9zdCBjdXJ2ZWQuICBNYXggaXMgd2hl
biBsZWFzdCBjdXJ2ZWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0IGZN
YXhEaXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGb3IgaGlnaC1x
dWFsaXR5IGN1cnZlZCBvdmVybGF5cyBvbmx5LCBnZXRzIHRoZSBkaXN0YW5jZSByYW5nZSBpbiBt
ZXRlcnMgZnJvbSB0aGUgb3ZlcmxheSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgY3VydmUKKyAgICAg
ICAgICAgICAgKiB0aGUgc3VyZmFjZSBhcm91bmQgdGhlIHZpZXdlci4gIE1pbiBpcyBkaXN0YW5j
ZSBpcyB3aGVuIHRoZSBzdXJmYWNlIHdpbGwgYmUgbW9zdCBjdXJ2ZWQuICBNYXggaXMgd2hlbiBs
ZWFzdCBjdXJ2ZWQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdl
dE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMoIFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgKnBm
TWF4RGlzdGFuY2VJbk1ldGVycyApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUg
Y29sb3JzcGFjZSB0aGUgb3ZlcmxheSB0ZXh0dXJlJ3MgZGF0YSBpcyBpbi4gIERlZmF1bHRzIHRv
ICdhdXRvJy4KKyAgICAgICAgICAgICAgKiBJZiB0aGUgdGV4dHVyZSBuZWVkcyB0byBiZSByZXNv
bHZlZCwgeW91IHNob3VsZCBjYWxsIFNldE92ZXJsYXlUZXh0dXJlIHdpdGggdGhlIGFwcHJvcHJp
YXRlIGNvbG9yc3BhY2UgaW5zdGVhZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgb3ZlcmxheSdzIGN1cnJlbnQgY29sb3JzcGFjZSBz
ZXR0aW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVy
bGF5VGV4dHVyZUNvbG9yU3BhY2UoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
RUNvbG9yU3BhY2UgKnBlVGV4dHVyZUNvbG9yU3BhY2UgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIFNldHMgdGhlIHBhcnQgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGZvciB0aGUgb3ZlcmxheS4g
VVYgTWluIGlzIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBhbmQgVVYgTWF4IGlzIHRoZSBsb3dlciBy
aWdodCBjb3JuZXIuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlQm91bmRzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IGNvbnN0IFZSVGV4dHVyZUJvdW5kc190ICpwT3ZlcmxheVRleHR1cmVCb3VuZHMgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHBhcnQgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGZv
ciB0aGUgb3ZlcmxheS4gVVYgTWluIGlzIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBhbmQgVVYgTWF4
IGlzIHRoZSBsb3dlciByaWdodCBjb3JuZXIuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQm91bmRzKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIFZSVGV4dHVyZUJvdW5kc190ICpwT3ZlcmxheVRleHR1cmVCb3VuZHMg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgcmVuZGVyIG1vZGVsIHRvIGRyYXcgYmVo
aW5kIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldE92
ZXJsYXlSZW5kZXJNb2RlbCggdnI6OlZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
Y2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgSG1kQ29sb3JfdCAqcENvbG9y
LCB2cjo6RVZST3ZlcmxheUVycm9yICpwRXJyb3IgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFNldHMgcmVuZGVyIG1vZGVsIHRvIGRyYXcgYmVoaW5kIHRoaXMgb3ZlcmxheSBhbmQgdGhlIHZl
cnRleCBjb2xvciB0byB1c2UsIHBhc3MgbnVsbCBmb3IgcENvbG9yIHRvIG1hdGNoIHRoZSBvdmVy
bGF5cyB2ZXJ0ZXggY29sb3IuIAorICAgICAgICAgICAgICAgICAgICAgVGhlIG1vZGVsIGlzIHNj
YWxlZCBieSB0aGUgc2FtZSBhbW91bnQgYXMgdGhlIG92ZXJsYXksIHdpdGggYSBkZWZhdWx0IG9m
IDFtLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBj
b25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbCwgY29uc3QgSG1kQ29sb3JfdCAqcENvbG9yICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gdHlwZSBvZiB0aGlz
IG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92
ZXJsYXlUcmFuc2Zvcm1UeXBlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZS
T3ZlcmxheVRyYW5zZm9ybVR5cGUgKnBlVHJhbnNmb3JtVHlwZSApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIGFic29sdXRlIHRyYWNraW5nIG9yaWdpbi4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5z
Zm9ybUFic29sdXRlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgY29uc3QgSG1kTWF0cml4MzRfdCAqcG1h
dFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBHZXRzIHRoZSB0cmFuc2Zvcm0gaWYgaXQgaXMgYWJzb2x1dGUuIFJldHVybnMgYW4gZXJy
b3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiAq
cGVUcmFja2luZ09yaWdpbiwgSG1kTWF0cml4MzRfdCAqcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVy
bGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zv
cm0gdG8gcmVsYXRpdmUgdG8gdGhlIHRyYW5zZm9ybSBvZiB0aGUgc3BlY2lmaWVkIHRyYWNrZWQg
ZGV2aWNlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVy
bGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuVHJhY2tlZERldmljZSwgY29uc3Qg
SG1kTWF0cml4MzRfdCAqcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyByZWxhdGl2
ZSB0byBhIHRyYWNrZWQgZGV2aWNlLiBSZXR1cm5zIGFuIGVycm9yIGlmIHRoZSB0cmFuc2Zvcm0g
aXMgc29tZSBvdGhlciB0eXBlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90ICpwdW5UcmFja2Vk
RGV2aWNlLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9y
bSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgdHJhbnNmb3JtIHRvIGRyYXcg
dGhlIG92ZXJsYXkgb24gYSByZW5kZXJtb2RlbCBjb21wb25lbnQgbWVzaCBpbnN0ZWFkIG9mIGEg
cXVhZC4gVGhpcyB3aWxsIG9ubHkgZHJhdyB3aGVuIHRoZSBzeXN0ZW0gaXMKKyAgICAgICAgICAg
ICAgKiBkcmF3aW5nIHRoZSBkZXZpY2UuIE92ZXJsYXlzIHdpdGggdGhpcyB0cmFuc2Zvcm0gdHlw
ZSBjYW5ub3QgcmVjZWl2ZSBtb3VzZSBldmVudHMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90
IHVuRGV2aWNlSW5kZXgsIGNvbnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpbmZvcm1hdGlvbiB3aGVuIHRoZSBv
dmVybGF5IGlzIHJlbmRlcmluZyBvbiBhIGNvbXBvbmVudC4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21w
b25lbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUlu
ZGV4X3QgKnB1bkRldmljZUluZGV4LCBjaGFyICpwY2hDb21wb25lbnROYW1lLCB1aW50MzJfdCB1
bkNvbXBvbmVudE5hbWVTaXplICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSB0
cmFuc2Zvcm0gaWYgaXQgaXMgcmVsYXRpdmUgdG8gYW5vdGhlciBvdmVybGF5LiBSZXR1cm5zIGFu
IGVycm9yIGlmIHRoZSB0cmFuc2Zvcm0gaXMgc29tZSBvdGhlciB0eXBlLiAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybU92ZXJs
YXlSZWxhdGl2ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlI
YW5kbGVfdCAqdWxPdmVybGF5SGFuZGxlUGFyZW50LCBIbWRNYXRyaXgzNF90ICpwbWF0UGFyZW50
T3ZlcmxheVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKKyAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gcmVsYXRpdmUgdG8gdGhlIHRyYW5zZm9y
bSBvZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkuIFRoaXMgb3ZlcmxheXMgdmlzaWJpbGl0eSB3aWxs
IGFsc28gdHJhY2sgdGhlIHBhcmVudHMgdmlzaWJpbGl0eSAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHZyOjpFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybU92ZXJsYXlSZWxhdGl2
ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGVQYXJlbnQsIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRQYXJlbnRPdmVy
bGF5VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTaG93cyB0
aGUgVlIgb3ZlcmxheS4gIEZvciBkYXNoYm9hcmQgb3ZlcmxheXMsIG9ubHkgdGhlIERhc2hib2Fy
ZCBNYW5hZ2VyIGlzIGFsbG93ZWQgdG8gY2FsbCB0aGlzLiAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBTaG93T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBIaWRlcyB0aGUgVlIgb3Zlcmxh
eS4gIEZvciBkYXNoYm9hcmQgb3ZlcmxheXMsIG9ubHkgdGhlIERhc2hib2FyZCBNYW5hZ2VyIGlz
IGFsbG93ZWQgdG8gY2FsbCB0aGlzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBIaWRlT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIG92ZXJsYXkgaXMg
dmlzaWJsZS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzT3ZlcmxheVZpc2libGUo
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogR2V0IHRoZSB0cmFuc2Zvcm0gaW4gM2Qgc3BhY2UgYXNzb2NpYXRlZCB3aXRoIGEgc3Bl
Y2lmaWMgMmQgcG9pbnQgaW4gdGhlIG92ZXJsYXkncyBjb29yZGluYXRlIHNwYWNlICh3aGVyZSAw
LDAgaXMgdGhlIGxvd2VyIGxlZnQpLiAtWiBwb2ludHMgb3V0IG9mIHRoZSBvdmVybGF5ICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldFRyYW5zZm9ybUZvck92ZXJs
YXlDb29yZGluYXRlcyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tp
bmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIEhtZFZlY3RvcjJfdCBjb29yZGluYXRl
c0luT3ZlcmxheSwgSG1kTWF0cml4MzRfdCAqcG1hdFRyYW5zZm9ybSApID0gMDsKKworICAgICAg
ICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAgICAgICAgLy8gT3ZlcmxheSBpbnB1dCBtZXRob2RzCisgICAgICAgICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAg
ICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0
IGV2ZW50IG9uIHRoZSBvdmVybGF5J3MgZXZlbnQgcXVldWUsIGlmIHRoZXJlIGlzIG9uZS4gCisg
ICAgICAgICAgICAgICogSWYgdGhlcmUgYXJlIG5vIGV2ZW50cyB0aGlzIG1ldGhvZCByZXR1cm5z
IGZhbHNlLiB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIFZS
RXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0T3Zl
cmxheUV2ZW50KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSRXZlbnRfdCAq
cEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKKworICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0aGUgY3VycmVudCBpbnB1dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBvdmVy
bGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5
SW5wdXRNZXRob2QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5
SW5wdXRNZXRob2QgKnBlSW5wdXRNZXRob2QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIGlucHV0IHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIG92ZXJsYXkuICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlJbnB1dE1ldGhvZCgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCBl
SW5wdXRNZXRob2QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIG1vdXNlIHNj
YWxpbmcgZmFjdG9yIHRoYXQgaXMgdXNlZCBmb3IgbW91c2UgZXZlbnRzLiBUaGUgYWN0dWFsIHRl
eHR1cmUgbWF5IGJlIGEgZGlmZmVyZW50IHNpemUsIGJ1dCB0aGlzIGlzCisgICAgICAgICAgICAg
ICogdHlwaWNhbGx5IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGluIHBpeGVscy4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheU1vdXNlU2Nh
bGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgSG1kVmVjdG9yMl90ICpwdmVj
TW91c2VTY2FsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgbW91c2Ugc2Nh
bGluZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVudHMuIFRoZSBhY3R1YWwgdGV4
dHVyZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMgaXMKKyAgICAgICAgICAgICAg
KiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxzIChub3Qg
aW4gd29ybGQgc3BhY2UpLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5TW91c2VTY2FsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBjb25zdCBIbWRWZWN0b3IyX3QgKnB2ZWNNb3VzZVNjYWxlICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBDb21wdXRlcyB0aGUgb3ZlcmxheS1zcGFjZSBwaXhlbCBjb29yZGluYXRlcyBvZiB3
aGVyZSB0aGUgcmF5IGludGVyc2VjdHMgdGhlIG92ZXJsYXkgd2l0aCB0aGUKKyAgICAgICAgICAg
ICAgKiBzcGVjaWZpZWQgc2V0dGluZ3MuIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgaXMgbm8gaW50
ZXJzZWN0aW9uLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgQ29tcHV0ZU92ZXJsYXlJ
bnRlcnNlY3Rpb24oIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgVlJP
dmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QgKnBQYXJhbXMsIFZST3ZlcmxheUludGVyc2VjdGlv
blJlc3VsdHNfdCAqcFJlc3VsdHMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFByb2Nlc3Nl
cyBtb3VzZSBpbnB1dCBmcm9tIHRoZSBzcGVjaWZpZWQgY29udHJvbGxlciBhcyB0aG91Z2ggaXQg
d2VyZSBhIG1vdXNlIHBvaW50ZWQgYXQgYSBjb21wb3NpdG9yIG92ZXJsYXkgd2l0aCB0aGUKKyAg
ICAgICAgICAgICAgKiBzcGVjaWZpZWQgc2V0dGluZ3MuIFRoZSBjb250cm9sbGVyIGlzIHRyZWF0
ZWQgbGlrZSBhIGxhc2VyIHBvaW50ZXIgb24gdGhlIC16IGF4aXMuIFRoZSBwb2ludCB3aGVyZSB0
aGUgbGFzZXIgcG9pbnRlciB3b3VsZAorICAgICAgICAgICAgICAqIGludGVyc2VjdCB3aXRoIHRo
ZSBvdmVybGF5IGlzIHRoZSBtb3VzZSBwb3NpdGlvbiwgdGhlIHRyaWdnZXIgaXMgbGVmdCBtb3Vz
ZSwgYW5kIHRoZSB0cmFjayBwYWQgaXMgcmlnaHQgbW91c2UuIAorICAgICAgICAgICAgICAqCisg
ICAgICAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNvbnRyb2xsZXIgaXMgcG9pbnRlZCBh
dCB0aGUgb3ZlcmxheSBhbmQgYW4gZXZlbnQgd2FzIGdlbmVyYXRlZC4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBib29sIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNl
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90
IHVuQ29udHJvbGxlckRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBvdmVybGF5IGlzIHRoZSBob3ZlciB0YXJnZXQuIEFu
IG92ZXJsYXkgaXMgdGhlIGhvdmVyIHRhcmdldCB3aGVuIGl0IGlzIHRoZSBsYXN0IG92ZXJsYXkg
Im1vdXNlZCBvdmVyIiAKKyAgICAgICAgICAgICAgKiBieSB0aGUgdmlydHVhbCBtb3VzZSBwb2lu
dGVyICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IEdhbWVwYWQgZm9jdXMgb3ZlcmxheSAqLworICAgICAg
ICAgICAgICB2aXJ0dWFsIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCBHZXRHYW1lcGFkRm9jdXNPdmVy
bGF5KCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjdXJyZW50IEdhbWVwYWQg
Zm9jdXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBT
ZXRHYW1lcGFkRm9jdXNPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE5ld0ZvY3VzT3Zlcmxh
eSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyBhbiBvdmVybGF5J3MgbmVpZ2hib3Iu
IFRoaXMgd2lsbCBhbHNvIHNldCB0aGUgbmVpZ2hib3Igb2YgdGhlICJ0byIgb3ZlcmxheQorICAg
ICAgICAgICAgICAqIHRvIHBvaW50IGJhY2sgdG8gdGhlICJmcm9tIiBvdmVybGF5LiBJZiBhbiBv
dmVybGF5J3MgbmVpZ2hib3IgaXMgc2V0IHRvIGludmFsaWQgYm90aAorICAgICAgICAgICAgICAq
IGVuZHMgd2lsbCBiZSBjbGVhcmVkICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIFNldE92ZXJsYXlOZWlnaGJvciggRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwg
VlJPdmVybGF5SGFuZGxlX3QgdWxGcm9tLCBWUk92ZXJsYXlIYW5kbGVfdCB1bFRvICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBDaGFuZ2VzIHRoZSBHYW1lcGFkIGZvY3VzIGZyb20gb25lIG92
ZXJsYXkgdG8gb25lIG9mIGl0cyBuZWlnaGJvcnMuIFJldHVybnMgVlJPdmVybGF5RXJyb3JfTm9O
ZWlnaGJvciBpZiB0aGVyZSBpcyBubworICAgICAgICAgICAgICAqIG5laWdoYm9yIGluIHRoYXQg
ZGlyZWN0aW9uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIE1vdmVH
YW1lcGFkRm9jdXNUb05laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92
ZXJsYXlIYW5kbGVfdCB1bEZyb20gKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE92
ZXJsYXkgdGV4dHVyZSBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBUZXh0dXJl
IHRvIGRyYXcgZm9yIHRoZSBvdmVybGF5LiBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxl
ZCBieSB0aGUgb3ZlcmxheSdzIGNyZWF0b3Igb3IgcmVuZGVyZXIgcHJvY2VzcyAoc2VlIFNldE92
ZXJsYXlSZW5kZXJpbmdQaWQpIC4KKyAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAqIE9w
ZW5HTCBkaXJ0eSBzdGF0ZToKKyAgICAgICAgICAgICAgKiAgICAgICBnbEJpbmRUZXh0dXJlCisg
ICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlUZXh0dXJlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0
IFRleHR1cmVfdCAqcFRleHR1cmUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFVzZSB0aGlz
IHRvIHRlbGwgdGhlIG92ZXJsYXkgc3lzdGVtIHRvIHJlbGVhc2UgdGhlIHRleHR1cmUgc2V0IGZv
ciB0aGlzIG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IENsZWFyT3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50ZXJmYWNlIGZvciBwcm92aWRp
bmcgdGhlIGRhdGEgYXMgYSBzdHJlYW0gb2YgYnl0ZXMsIGJ1dCB0aGVyZSBpcyBhbiB1cHBlciBi
b3VuZCBvbiBkYXRhIAorICAgICAgICAgICAgICAqIHRoYXQgY2FuIGJlIHNlbnQuIFRoaXMgZnVu
Y3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5J3MgcmVuZGVyZXIgcHJvY2Vz
cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJh
dyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwdkJ1ZmZlciwgdWlu
dDMyX3QgdW5XaWR0aCwgdWludDMyX3QgdW5IZWlnaHQsIHVpbnQzMl90IHVuRGVwdGggKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFNlcGFyYXRlIGludGVyZmFjZSBmb3IgcHJvdmlkaW5nIHRo
ZSBpbWFnZSB0aHJvdWdoIGEgZmlsZW5hbWU6IGNhbiBiZSBwbmcgb3IganBnLCBhbmQgc2hvdWxk
IG5vdCBiZSBiaWdnZXIgdGhhbiAxOTIweDEwODAuCisgICAgICAgICAgICAgICogVGhpcyBmdW5j
dGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkncyByZW5kZXJlciBwcm9jZXNz
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlGcm9t
RmlsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBjaGFyICpwY2hG
aWxlUGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBuYXRpdmUgdGV4dHVy
ZSBoYW5kbGUvZGV2aWNlIGZvciBhbiBvdmVybGF5IHlvdSBoYXZlIGNyZWF0ZWQuCisgICAgICAg
ICAgICAgICogT24gd2luZG93cyB0aGlzIGhhbmRsZSB3aWxsIGJlIGEgSUQzRDExU2hhZGVyUmVz
b3VyY2VWaWV3IHdpdGggYSBJRDNEMTFUZXh0dXJlMkQgYm91bmQuCisgICAgICAgICAgICAgICoK
KyAgICAgICAgICAgICAgKiBUaGUgdGV4dHVyZSB3aWxsIGFsd2F5cyBiZSBzaXplZCB0byBtYXRj
aCB0aGUgYmFja2luZyB0ZXh0dXJlIHlvdSBzdXBwbGllZCBpbiBTZXRPdmVybGF5VGV4dHVyZSBh
Ym92ZS4KKyAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAqIFlvdSBNVVNUIGNhbGwgUmVs
ZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUoKSB3aXRoIHBOYXRpdmVUZXh0dXJlSGFuZGxlIG9uY2Ug
eW91IGFyZSBkb25lIHdpdGggdGhpcyB0ZXh0dXJlLgorICAgICAgICAgICAgICAqCisgICAgICAg
ICAgICAgICogcE5hdGl2ZVRleHR1cmVIYW5kbGUgaXMgYW4gT1VUUFVULCBpdCB3aWxsIGJlIGEg
cG9pbnRlciB0byBhIElEM0QxMVNoYWRlclJlc291cmNlVmlldyAqLgorICAgICAgICAgICAgICAq
IHBOYXRpdmVUZXh0dXJlUmVmIGlzIGFuIElOUFVUIGFuZCBzaG91bGQgYmUgYSBJRDNEMTFSZXNv
dXJjZSAqLiBUaGUgZGV2aWNlIHVzZWQgYnkgcE5hdGl2ZVRleHR1cmVSZWYgd2lsbCBiZSB1c2Vk
IHRvIGJpbmQgcE5hdGl2ZVRleHR1cmVIYW5kbGUuCisgICAgICAgICAgICAgICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKipwTmF0aXZlVGV4dHVyZUhhbmRsZSwg
dm9pZCAqcE5hdGl2ZVRleHR1cmVSZWYsIHVpbnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVp
Z2h0LCB1aW50MzJfdCAqcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVUeXBlICpwQVBJVHlwZSwgRUNv
bG9yU3BhY2UgKnBDb2xvclNwYWNlLCBWUlRleHR1cmVCb3VuZHNfdCAqcFRleHR1cmVCb3VuZHMg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJlbGVhc2UgdGhlIHBOYXRpdmVUZXh0dXJlSGFu
ZGxlIHByb3ZpZGVkIGZyb20gdGhlIEdldE92ZXJsYXlUZXh0dXJlIGNhbGwsIHRoaXMgYWxsb3dz
IHRoZSBzeXN0ZW0gdG8gZnJlZSB0aGUgdW5kZXJseWluZyBHUFUgcmVzb3VyY2VzIGZvciB0aGlz
IG9iamVjdCwKKyAgICAgICAgICAgICAgKiBzbyBvbmx5IGRvIGl0IG9uY2UgeW91IHN0b3AgcmVu
ZGVyaW5nIHRoaXMgdGV4dHVyZS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqcE5hdGl2ZVRleHR1cmVIYW5kbGUgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgc2l6ZSBvZiB0aGUgb3ZlcmxheSB0ZXh0
dXJlICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlU
ZXh0dXJlU2l6ZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAq
cFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg
IC8vIERhc2hib2FyZCBPdmVybGF5IE1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8q
KiBDcmVhdGVzIGEgZGFzaGJvYXJkIG92ZXJsYXkgYW5kIHJldHVybnMgaXRzIGhhbmRsZSAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVEYXNoYm9hcmRPdmVy
bGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5LCBjb25zdCBjaGFyICpwY2hPdmVybGF5RnJp
ZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBNYWluSGFuZGxlLCBWUk92ZXJsYXlIYW5k
bGVfdCAqcFRodW1ibmFpbEhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJu
cyB0cnVlIGlmIHRoZSBkYXNoYm9hcmQgaXMgdmlzaWJsZSAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgSXNEYXNoYm9hcmRWaXNpYmxlKCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBy
ZXR1cm5zIHRydWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxlIGFuZCB0aGUgc3BlY2lmaWVk
IG92ZXJsYXkgaXMgdGhlIGFjdGl2ZSBzeXN0ZW0gT3ZlcmxheSAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGRhc2hi
b2FyZCBvdmVybGF5IHRvIG9ubHkgYXBwZWFyIHdoZW4gdGhlIHNwZWNpZmllZCBwcm9jZXNzIElE
IGhhcyBzY2VuZSBmb2N1cyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUHJvY2Vzc0lkICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBHZXRzIHRoZSBwcm9jZXNzIElEIHRoYXQgdGhpcyBkYXNoYm9hcmQgb3ZlcmxheSByZXF1
aXJlcyB0byBoYXZlIHNjZW5lIGZvY3VzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKnB1blByb2Nlc3NJZCApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogU2hvd3MgdGhlIGRhc2hib2FyZC4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCB2b2lkIFNob3dEYXNoYm9hcmQoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlUb1Nob3cgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYWNrZWQgZGV2aWNlIHRoYXQg
aGFzIHRoZSBsYXNlciBwb2ludGVyIGluIHRoZSBkYXNoYm9hcmQgKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgR2V0UHJpbWFyeURhc2hib2FyZERldmlj
ZSgpID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gS2V5Ym9hcmQgbWV0aG9kcworICAg
ICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIC8qKiBTaG93IHRoZSB2aXJ0dWFsIGtl
eWJvYXJkIHRvIGFjY2VwdCBpbnB1dCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgU2hvd0tleWJvYXJkKCBFR2FtZXBhZFRleHRJbnB1dE1vZGUgZUlucHV0TW9kZSwg
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9kZSwgY29uc3QgY2hhciAqcGNo
RGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY29uc3QgY2hhciAqcGNoRXhpc3RpbmdU
ZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSApID0gMDsKKwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTaG93S2V5Ym9hcmRGb3JPdmVy
bGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVHYW1lcGFkVGV4dElucHV0
TW9kZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2Rl
LCBjb25zdCBjaGFyICpwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjb25zdCBj
aGFyICpwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNl
clZhbHVlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIHRleHQgdGhhdCB3YXMg
ZW50ZXJlZCBpbnRvIHRoZSB0ZXh0IGlucHV0ICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldEtleWJvYXJkVGV4dCggVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFRleHQsIHVp
bnQzMl90IGNjaFRleHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEhpZGUgdGhlIHZpcnR1
YWwga2V5Ym9hcmQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBIaWRlS2V5Ym9hcmQo
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0aGUgcG9zaXRpb24gb2YgdGhlIGtleWJv
YXJkIGluIHdvcmxkIHNwYWNlICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0S2V5
Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSggRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5n
T3JpZ2luLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJk
VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXQgdGhlIHBvc2l0aW9uIG9m
IHRoZSBrZXlib2FyZCBpbiBvdmVybGF5IHNwYWNlIGJ5IHRlbGxpbmcgaXQgdG8gYXZvaWQgYSBy
ZWN0YW5nbGUgaW4gdGhlIG92ZXJsYXkuIFJlY3RhbmdsZSBjb29yZHMgaGF2ZSAoMCwwKSBpbiB0
aGUgYm90dG9tIGxlZnQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRLZXlib2Fy
ZFBvc2l0aW9uRm9yT3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBI
bWRSZWN0Ml90IGF2b2lkUmVjdCApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3Zl
cmxheSBpbnB1dCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTZXRzIGEgbGlz
dCBvZiBwcmltaXRpdmVzIHRvIGJlIHVzZWQgZm9yIGNvbnRyb2xsZXIgcmF5IGludGVyc2VjdGlv
bgorICAgICAgICAgICAgICAqIHR5cGljYWxseSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBV
SSBpbiBwaXhlbHMgKG5vdCBpbiB3b3JsZCBzcGFjZSkuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRp
dmVfdCAqcE1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1bk51bU1hc2tQcmltaXRpdmVzLCB1aW50
MzJfdCB1blByaW1pdGl2ZVNpemUgPSBzaXplb2YoIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQ
cmltaXRpdmVfdCApICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIEdldE92ZXJsYXlGbGFncyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1
aW50MzJfdCAqcEZsYWdzICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBNZXNzYWdl
IGJveCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTaG93IHRoZSBtZXNzYWdl
IG92ZXJsYXkuIFRoaXMgd2lsbCBibG9jayBhbmQgcmV0dXJuIHlvdSBhIHJlc3VsdC4gKiovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIFNob3dNZXNzYWdl
T3ZlcmxheSggY29uc3QgY2hhciogcGNoVGV4dCwgY29uc3QgY2hhciogcGNoQ2FwdGlvbiwgY29u
c3QgY2hhciogcGNoQnV0dG9uMFRleHQsIGNvbnN0IGNoYXIqIHBjaEJ1dHRvbjFUZXh0ID0gbnVs
bHB0ciwgY29uc3QgY2hhciogcGNoQnV0dG9uMlRleHQgPSBudWxscHRyLCBjb25zdCBjaGFyKiBw
Y2hCdXR0b24zVGV4dCA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIElmIHRo
ZSBjYWxsaW5nIHByb2Nlc3Mgb3ducyB0aGUgb3ZlcmxheSBhbmQgaXQncyBvcGVuLCB0aGlzIHdp
bGwgY2xvc2UgaXQuICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgQ2xvc2VNZXNzYWdl
T3ZlcmxheSgpID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBJVlJPdmVybGF5X1ZlcnNpb24gPSAiSVZST3ZlcmxheV8wMTYiOworCit9IC8vIG5hbWVz
cGFjZSB2cgorCisvLyBpdnJyZW5kZXJtb2RlbHMuaAorbmFtZXNwYWNlIHZyCit7CisKK3N0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSA9
ICJnZGMyMDE1IjsgICAvLyBDYW5vbmljYWwgY29vcmRpbmF0ZSBzeXN0ZW0gb2YgdGhlIGdkYyAy
MDE1IHdpcmVkIGNvbnRyb2xsZXIsIHByb3ZpZGVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0
eQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9C
YXNlID0gImJhc2UiOyAgICAgICAgIC8vIEZvciBjb250cm9sbGVycyB3aXRoIGFuIHVuYW1iaWd1
b3VzICdiYXNlJy4KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9D
b21wb25lbnRfVGlwID0gInRpcCI7ICAgICAgICAgICAvLyBGb3IgY29udHJvbGxlcnMgd2l0aCBh
biB1bmFtYmlndW91cyAndGlwJyAodXNlZCBmb3IgJ2xhc2VyLXBvaW50aW5nJykKK3N0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAi
aGFuZGdyaXAiOyAvLyBOZXV0cmFsLCBhbWJpZGV4dHJvdXMgaGFuZC1wb3NlIHdoZW4gaG9sZGlu
ZyBjb250cm9sbGVyLiBPbiBwbGFuZSBiZXR3ZWVuIG5ldXRyYWxseSBwb3NlZCBpbmRleCBmaW5n
ZXIgYW5kIHRodW1iCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJf
Q29tcG9uZW50X1N0YXR1cyA9ICJzdGF0dXMiOyAgICAgICAgICAgICAgLy8gMToxIGFzcGVjdCBy
YXRpbyBzdGF0dXMgYXJlYSwgd2l0aCBjYW5vbmljYWwgWzAsMV0gdXYgbWFwcGluZworCisjcHJh
Z21hIHBhY2soIHB1c2gsIDggKQorCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdpdGggdGhl
IFZSIGNvbXBvc2l0b3IgKi8KK2VudW0gRVZSUmVuZGVyTW9kZWxFcnJvcgoreworICAgICAgIFZS
UmVuZGVyTW9kZWxFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTG9h
ZGluZyA9IDEwMCwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfTm90U3VwcG9ydGVkID0gMjAw
LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkQXJnID0gMzAwLAorICAgICAgIFZS
UmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkTW9kZWwgPSAzMDEsCisgICAgICAgVlJSZW5kZXJNb2Rl
bEVycm9yX05vU2hhcGVzID0gMzAyLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBs
ZVNoYXBlcyA9IDMwMywKKyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfVG9vTWFueVZlcnRpY2Vz
ID0gMzA0LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVRleHR1cmVzID0gMzA1
LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9CdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAg
ICBWUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoTm9ybWFscyA9IDMwNywKKyAgICAgICBWUlJl
bmRlck1vZGVsRXJyb3JfTm90RW5vdWdoVGV4Q29vcmRzID0gMzA4LAorCisgICAgICAgVlJSZW5k
ZXJNb2RlbEVycm9yX0ludmFsaWRUZXh0dXJlID0gNDAwLAorfTsKKwordHlwZWRlZiB1aW50MzJf
dCBWUkNvbXBvbmVudFByb3BlcnRpZXM7CisKK2VudW0gRVZSQ29tcG9uZW50UHJvcGVydHkKK3sK
KyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGljID0gKDEgPDwgMCksCisgICAgICAg
VlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAoMSA8PCAxKSwKKyAgICAgICBWUkNvbXBv
bmVudFByb3BlcnR5X0lzVG91Y2hlZCA9ICgxIDw8IDIpLAorICAgICAgIFZSQ29tcG9uZW50UHJv
cGVydHlfSXNQcmVzc2VkID0gKDEgPDwgMyksCisgICAgICAgVlJDb21wb25lbnRQcm9wZXJ0eV9J
c1Njcm9sbGVkID0gKDEgPDwgNCksCit9OworCisvKiogRGVzY3JpYmVzIHN0YXRlIGluZm9ybWF0
aW9uIGFib3V0IGEgcmVuZGVyLW1vZGVsIGNvbXBvbmVudCwgaW5jbHVkaW5nIHRyYW5zZm9ybXMg
YW5kIG90aGVyIGR5bmFtaWMgcHJvcGVydGllcyAqLworc3RydWN0IFJlbmRlck1vZGVsX0NvbXBv
bmVudFN0YXRlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50
UmVuZGVyTW9kZWw7ICAvLyBUcmFuc2Zvcm0gcmVxdWlyZWQgd2hlbiBkcmF3aW5nIHRoZSBjb21w
b25lbnQgcmVuZGVyIG1vZGVsCisgICAgICAgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBv
bmVudExvY2FsOyAgICAgICAgLy8gVHJhbnNmb3JtIGF2YWlsYWJsZSBmb3IgYXR0YWNoaW5nIHRv
IGEgbG9jYWwgY29tcG9uZW50IGNvb3JkaW5hdGUgc3lzdGVtICgtWiBvdXQgZnJvbSBzdXJmYWNl
ICkKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnRpZXMgdVByb3BlcnRpZXM7Cit9OworCisvKiog
QSBzaW5nbGUgdmVydGV4IGluIGEgcmVuZGVyIG1vZGVsICovCitzdHJ1Y3QgUmVuZGVyTW9kZWxf
VmVydGV4X3QKK3sKKyAgICAgICBIbWRWZWN0b3IzX3QgdlBvc2l0aW9uOyAgICAgICAgICAgICAg
Ly8gcG9zaXRpb24gaW4gbWV0ZXJzIGluIGRldmljZSBzcGFjZQorICAgICAgIEhtZFZlY3RvcjNf
dCB2Tm9ybWFsOworICAgICAgIGZsb2F0IHJmVGV4dHVyZUNvb3JkWzJdOworfTsKKworLyoqIEEg
dGV4dHVyZSBtYXAgZm9yIHVzZSBvbiBhIHJlbmRlciBtb2RlbCAqLworI2lmIGRlZmluZWQoX19s
aW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3Jp
Z2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBj
b21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworc3RydWN0
IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdAoreworICAgICAgIHVpbnQxNl90IHVuV2lkdGgsIHVu
SGVpZ2h0OyAvLyB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB0ZXh0dXJlIG1hcCBpbiBwaXhlbHMK
KyAgICAgICBjb25zdCB1aW50OF90ICpydWJUZXh0dXJlTWFwRGF0YTsgICAgICAgLy8gTWFwIHRl
eHR1cmUgZGF0YS4gQWxsIHRleHR1cmVzIGFyZSBSR0JBIHdpdGggOCBiaXRzIHBlciBjaGFubmVs
IHBlciBwaXhlbC4gRGF0YSBzaXplIGlzIHdpZHRoICogaGVpZ2h0ICogNHViCit9OworI2lmIGRl
ZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBv
cCApCisjZW5kaWYKKworLyoqICBTZXNzaW9uIHVuaXF1ZSB0ZXh0dXJlIGlkZW50aWZpZXIuIFJl
bmRlcm1vZGVscyB3aGljaCBzaGFyZSB0aGUgc2FtZSB0ZXh0dXJlIHdpbGwgaGF2ZSB0aGUgc2Ft
ZSBpZC4KK0lEcyA8MCBkZW5vdGUgdGhlIHRleHR1cmUgaXMgbm90IHByZXNlbnQgKi8KKwordHlw
ZWRlZiBpbnQzMl90IFRleHR1cmVJRF90OworCitjb25zdCBUZXh0dXJlSURfdCBJTlZBTElEX1RF
WFRVUkVfSUQgPSAtMTsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQ
TEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNr
ZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEg
cGFjayggcHVzaCwgNCApCisjZW5kaWYKKworc3RydWN0IFJlbmRlck1vZGVsX3QKK3sKKyAgICAg
ICBjb25zdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqclZlcnRleERhdGE7ICAgICAgIC8vIFZlcnRl
eCBkYXRhIGZvciB0aGUgbWVzaAorICAgICAgIHVpbnQzMl90IHVuVmVydGV4Q291bnQ7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHZlcnRpY2Vz
IGluIHRoZSB2ZXJ0ZXggZGF0YQorICAgICAgIGNvbnN0IHVpbnQxNl90ICpySW5kZXhEYXRhOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5kaWNlcyBpbnRvIHRoZSB2ZXJ0
ZXggZGF0YSBmb3IgZWFjaCB0cmlhbmdsZQorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3Vu
dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlciBvZiB0cmlhbmds
ZXMgaW4gdGhlIG1lc2guIEluZGV4IGNvdW50IGlzIDMgKiBUcmlhbmdsZUNvdW50CisgICAgICAg
VGV4dHVyZUlEX3QgZGlmZnVzZVRleHR1cmVJZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gU2Vzc2lvbiB1bmlxdWUgdGV4dHVyZSBpZGVudGlmaWVyLiBSZW5kZXJtb2RlbHMgd2hpY2gg
c2hhcmUgdGhlIHNhbWUgdGV4dHVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgaWQuIDwwID09IHRleHR1
cmUgbm90IHByZXNlbnQKK307CisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19B
UFBMRV9fKSAKKyNwcmFnbWEgcGFjayggcG9wICkKKyNlbmRpZgorCisKK3N0cnVjdCBSZW5kZXJN
b2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAgYm9vbCBiU2Nyb2xsV2hlZWxW
aXNpYmxlOyAvLyBpcyB0aGlzIGNvbnRyb2xsZXIgY3VycmVudGx5IHNldCB0byBiZSBpbiBhIHNj
cm9sbCB3aGVlbCBtb2RlCit9OworCisjcHJhZ21hIHBhY2soIHBvcCApCisKK2NsYXNzIElWUlJl
bmRlck1vZGVscworeworcHVibGljOgorCisgICAgICAgLyoqIExvYWRzIGFuZCByZXR1cm5zIGEg
cmVuZGVyIG1vZGVsIGZvciB1c2UgaW4gdGhlIGFwcGxpY2F0aW9uLiBwY2hSZW5kZXJNb2RlbE5h
bWUgc2hvdWxkIGJlIGEgcmVuZGVyIG1vZGVsIG5hbWUKKyAgICAgICAqIGZyb20gdGhlIFByb3Bf
UmVuZGVyTW9kZWxOYW1lX1N0cmluZyBwcm9wZXJ0eSBvciBhbiBhYnNvbHV0ZSBwYXRoIG5hbWUg
dG8gYSByZW5kZXIgbW9kZWwgb24gZGlzay4gCisgICAgICAgKgorICAgICAgICogVGhlIHJlc3Vs
dGluZyByZW5kZXIgbW9kZWwgaXMgdmFsaWQgdW50aWwgVlJfU2h1dGRvd24oKSBpcyBjYWxsZWQg
b3IgdW50aWwgRnJlZVJlbmRlck1vZGVsKCkgaXMgY2FsbGVkLiBXaGVuIHRoZSAKKyAgICAgICAq
IGFwcGxpY2F0aW9uIGlzIGZpbmlzaGVkIHdpdGggdGhlIHJlbmRlciBtb2RlbCBpdCBzaG91bGQg
Y2FsbCBGcmVlUmVuZGVyTW9kZWwoKSB0byBmcmVlIHRoZSBtZW1vcnkgYXNzb2NpYXRlZAorICAg
ICAgICogd2l0aCB0aGUgbW9kZWwuCisgICAgICAgKgorICAgICAgICogVGhlIG1ldGhvZCByZXR1
cm5zIFZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5nIHdoaWxlIHRoZSByZW5kZXIgbW9kZWwgaXMg
c3RpbGwgYmVpbmcgbG9hZGVkLgorICAgICAgICogVGhlIG1ldGhvZCByZXR1cm5zIFZSUmVuZGVy
TW9kZWxFcnJvcl9Ob25lIG9uY2UgbG9hZGVkIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIHdpbGwg
cmV0dXJuIGFuIGVycm9yLiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBM
b2FkUmVuZGVyTW9kZWxfQXN5bmMoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgUmVu
ZGVyTW9kZWxfdCAqKnBwUmVuZGVyTW9kZWwgKSA9IDA7CisKKyAgICAgICAvKiogRnJlZXMgYSBw
cmV2aW91c2x5IHJldHVybmVkIHJlbmRlciBtb2RlbAorICAgICAgICogICBJdCBpcyBzYWZlIHRv
IGNhbGwgdGhpcyBvbiBhIG51bGwgcHRyLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlUmVu
ZGVyTW9kZWwoIFJlbmRlck1vZGVsX3QgKnBSZW5kZXJNb2RlbCApID0gMDsKKworICAgICAgIC8q
KiBMb2FkcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgZm9yIHVzZSBpbiB0aGUgYXBwbGljYXRpb24u
ICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRUZXh0dXJlX0FzeW5j
KCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqKnBwVGV4
dHVyZSApID0gMDsKKworICAgICAgIC8qKiBGcmVlcyBhIHByZXZpb3VzbHkgcmV0dXJuZWQgdGV4
dHVyZQorICAgICAgICogICBJdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBvbiBhIG51bGwgcHRyLiAq
LworICAgICAgIHZpcnR1YWwgdm9pZCBGcmVlVGV4dHVyZSggUmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgIC8qKiBDcmVhdGVzIGEgRDNEMTEgdGV4dHVy
ZSBhbmQgbG9hZHMgZGF0YSBpbnRvIGl0LiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9k
ZWxFcnJvciBMb2FkVGV4dHVyZUQzRDExX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZv
aWQgKnBEM0QxMURldmljZSwgdm9pZCAqKnBwRDNEMTFUZXh0dXJlMkQgKSA9IDA7CisKKyAgICAg
ICAvKiogSGVscGVyIGZ1bmN0aW9uIHRvIGNvcHkgdGhlIGJpdHMgaW50byBhbiBleGlzdGluZyB0
ZXh0dXJlLiAqLworICAgICAgIHZpcnR1YWwgRVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkSW50b1Rl
eHR1cmVEM0QxMV9Bc3luYyggVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCB2b2lkICpwRHN0VGV4dHVy
ZSApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBmcmVlIHRleHR1cmVzIGNyZWF0ZWQg
d2l0aCBMb2FkVGV4dHVyZUQzRDExX0FzeW5jIGluc3RlYWQgb2YgY2FsbGluZyBSZWxlYXNlIG9u
IHRoZW0uICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoIHZvaWQgKnBE
M0QxMVRleHR1cmUyRCApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBnZXQgdGhlIG5h
bWVzIG9mIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxzLiAgSW5kZXggZG9lcyBub3QgY29ycmVsYXRl
IHRvIGEgdHJhY2tlZCBkZXZpY2UgaW5kZXgsIGJ1dAorICAgICAgICogaXMgb25seSB1c2VkIGZv
ciBpdGVyYXRpbmcgb3ZlciBhbGwgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICBJZiB0aGUgaW5k
ZXggaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuCisgICAgICAg
KiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgcmVxdWly
ZWQgZm9yIHRoZSBuYW1lLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9k
ZWxOYW1lKCB1aW50MzJfdCB1blJlbmRlck1vZGVsSW5kZXgsIFZSX09VVF9TVFJJTkcoKSBjaGFy
ICpwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxOYW1lTGVuICkgPSAw
OworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgcmVuZGVyIG1v
ZGVscy4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsQ291bnQoKSA9
IDA7CisKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY29tcG9uZW50cyBvZiB0
aGUgc3BlY2lmaWVkIHJlbmRlciBtb2RlbC4KKyAgICAgICAqICBDb21wb25lbnRzIGFyZSB1c2Vm
dWwgd2hlbiBjbGllbnQgYXBwbGljYXRpb24gd2lzaCB0byBkcmF3LCBsYWJlbCwgb3Igb3RoZXJ3
aXNlIGludGVyYWN0IHdpdGggY29tcG9uZW50cyBvZiB0cmFja2VkIG9iamVjdHMuCisgICAgICAg
KiAgRXhhbXBsZXMgY29udHJvbGxlciBjb21wb25lbnRzOgorICAgICAgICogICByZW5kZXJhYmxl
IHRoaW5ncyBzdWNoIGFzIHRyaWdnZXJzLCBidXR0b25zCisgICAgICAgKiAgIG5vbi1yZW5kZXJh
YmxlIHRoaW5ncyB3aGljaCBpbmNsdWRlIGNvb3JkaW5hdGUgc3lzdGVtcyBzdWNoIGFzICd0aXAn
LCAnYmFzZScsIGEgbmV1dHJhbCBjb250cm9sbGVyIGFnbm9zdGljIGhhbmQtcG9zZQorICAgICAg
ICogICBJZiBhbGwgY29udHJvbGxlciBjb21wb25lbnRzIGFyZSBlbnVtZXJhdGVkIGFuZCByZW5k
ZXJlZCwgaXQgd2lsbCBiZSBlcXVpdmFsZW50IHRvIGRyYXdpbmcgdGhlIHRyYWRpdGlvbmFsIHJl
bmRlciBtb2RlbAorICAgICAgICogICBSZXR1cm5zIDAgaWYgY29tcG9uZW50cyBub3Qgc3VwcG9y
dGVkLCA+MCBvdGhlcndpc2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldENvbXBvbmVu
dENvdW50KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUgKSA9IDA7CisKKyAgICAgICAv
KiogVXNlIHRoaXMgdG8gZ2V0IHRoZSBuYW1lcyBvZiBhdmFpbGFibGUgY29tcG9uZW50cy4gIElu
ZGV4IGRvZXMgbm90IGNvcnJlbGF0ZSB0byBhIHRyYWNrZWQgZGV2aWNlIGluZGV4LCBidXQKKyAg
ICAgICAqIGlzIG9ubHkgdXNlZCBmb3IgaXRlcmF0aW5nIG92ZXIgYWxsIGF2YWlsYWJsZSBjb21w
b25lbnRzLiAgSWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxs
IHJldHVybiAwLgorICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBv
ZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldENvbXBvbmVudE5hbWUoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwg
dWludDMyX3QgdW5Db21wb25lbnRJbmRleCwgVlJfT1VUX1NUUklORyggKSBjaGFyICpwY2hDb21w
b25lbnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4gKSA9IDA7CisKKyAgICAgICAv
KiogR2V0IHRoZSBidXR0b24gbWFzayBmb3IgYWxsIGJ1dHRvbnMgYXNzb2NpYXRlZCB3aXRoIHRo
aXMgY29tcG9uZW50CisgICAgICAgKiAgIElmIG5vIGJ1dHRvbnMgKG9yIGF4ZXMpIGFyZSBhc3Nv
Y2lhdGVkIHdpdGggdGhpcyBjb21wb25lbnQsIHJldHVybiAwCisgICAgICAgKiAgIE5vdGU6IG11
bHRpcGxlIGNvbXBvbmVudHMgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSBidXR0b24u
IEV4OiB0d28gZ3JpcCBidXR0b25zIG9uIGEgc2luZ2xlIGNvbnRyb2xsZXIuCisgICAgICAgKiAg
IE5vdGU6IEEgc2luZ2xlIGNvbXBvbmVudCBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRpcGxl
IGJ1dHRvbnMuIEV4OiBBIHRyYWNrcGFkIHdoaWNoIGFsc28gcHJvdmlkZXMgIkQtcGFkIiBmdW5j
dGlvbmFsaXR5ICovCisgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRDb21wb25lbnRCdXR0b25N
YXNrKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNoYXIgKnBjaENvbXBv
bmVudE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8gZ2V0IHRoZSByZW5kZXIg
bW9kZWwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCByZW5kZXJtb2RlL2NvbXBvbmVudCBjb21iaW5h
dGlvbiwgdG8gYmUgcGFzc2VkIHRvIExvYWRSZW5kZXJNb2RlbC4KKyAgICAgICAqIElmIHRoZSBj
b21wb25lbnQgbmFtZSBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4g
MC4KKyAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1
ZmZlciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFt
ZSwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgVlJfT1VUX1NUUklORyggKSBjaGFyICpw
Y2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50UmVuZGVyTW9k
ZWxOYW1lTGVuICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIHF1ZXJ5IGluZm9ybWF0
aW9uIGFib3V0IHRoZSBjb21wb25lbnQsIGFzIGEgZnVuY3Rpb24gb2YgdGhlIGNvbnRyb2xsZXIg
c3RhdGUuCisgICAgICAgKgorICAgICAgICogRm9yIGR5bmFtaWMgY29udHJvbGxlciBjb21wb25l
bnRzIChleDogdHJpZ2dlcikgdmFsdWVzIHdpbGwgcmVmbGVjdCBjb21wb25lbnQgbW90aW9ucwor
ICAgICAgICogRm9yIHN0YXRpYyBjb21wb25lbnRzIHRoaXMgd2lsbCByZXR1cm4gYSBjb25zaXN0
ZW50IHZhbHVlIGluZGVwZW5kZW50IG9mIHRoZSBWUkNvbnRyb2xsZXJTdGF0ZV90CisgICAgICAg
KgorICAgICAgICogSWYgdGhlIHBjaFJlbmRlck1vZGVsTmFtZSBvciBwY2hDb21wb25lbnROYW1l
IGlzIGludmFsaWQsIHRoaXMgd2lsbCByZXR1cm4gZmFsc2UgKGFuZCB0cmFuc2Zvcm1zIHdpbGwg
YmUgc2V0IHRvIGlkZW50aXR5KS4KKyAgICAgICAqIE90aGVyd2lzZSwgcmV0dXJuIHRydWUKKyAg
ICAgICAqIE5vdGU6IEZvciBkeW5hbWljIG9iamVjdHMsIHZpc2liaWxpdHkgbWF5IGJlIGR5bmFt
aWMuIChJLmUuLCB0cnVlL2ZhbHNlIHdpbGwgYmUgcmV0dXJuZWQgYmFzZWQgb24gY29udHJvbGxl
ciBzdGF0ZSBhbmQgY29udHJvbGxlciBtb2RlIHN0YXRlICkgKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0Q29tcG9uZW50U3RhdGUoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29u
c3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSwgY29uc3QgdnI6OlZSQ29udHJvbGxlclN0YXRlX3Qg
KnBDb250cm9sbGVyU3RhdGUsIGNvbnN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRl
X3QgKnBTdGF0ZSwgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqcENvbXBvbmVudFN0YXRl
ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVuZGVyIG1vZGVsIGhh
cyBhIGNvbXBvbmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSAqLworICAgICAgIHZpcnR1YWwg
Ym9vbCBSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxO
YW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lICkgPSAwOworCisgICAgICAgLyoqIFJl
dHVybnMgdGhlIFVSTCBvZiB0aGUgdGh1bWJuYWlsIGltYWdlIGZvciB0aGlzIHJlbmRlcm1vZGVs
ICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTCgg
Y29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNo
VGh1bWJuYWlsVVJMLCB1aW50MzJfdCB1blRodW1ibmFpbFVSTExlbiwgdnI6OkVWUlJlbmRlck1v
ZGVsRXJyb3IgKnBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUHJvdmlkZXMgYSByZW5kZXIg
bW9kZWwgcGF0aCB0aGF0IHdpbGwgbG9hZCB0aGUgdW5za2lubmVkIG1vZGVsIGlmIHRoZSBtb2Rl
bCBuYW1lIHByb3ZpZGVkIGhhcyBiZWVuIHJlcGxhY2UgYnkgdGhlIHVzZXIuIElmIHRoZSBtb2Rl
bAorICAgICAgICogaGFzbid0IGJlZW4gcmVwbGFjZWQgdGhlIHBhdGggdmFsdWUgd2lsbCBzdGls
bCBiZSBhIHZhbGlkIHBhdGggdG8gbG9hZCB0aGUgbW9kZWwuIFBhc3MgdGhpcyB0byBMb2FkUmVu
ZGVyTW9kZWxfQXN5bmMsIGV0Yy4gdG8gbG9hZCB0aGUKKyAgICAgICAqIG1vZGVsLiAqLworICAg
ICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgoIGNvbnN0IGNo
YXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaE9yaWdpbmFs
UGF0aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhMZW4sIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9y
ICpwZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGEgcmVu
ZGVyIG1vZGVsIGVycm9yICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRSZW5kZXJN
b2RlbEVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciBlcnJvciApID0g
MDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSUmVuZGVyTW9kZWxzX1ZlcnNp
b24gPSAiSVZSUmVuZGVyTW9kZWxzXzAwNSI7CisKK30KKworCisvLyBpdnJleHRlbmRlZGRpc3Bs
YXkuaAorbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICAvKiogTk9URTogVXNlIG9mIHRoaXMgaW50
ZXJmYWNlIGlzIG5vdCByZWNvbW1lbmRlZCBpbiBwcm9kdWN0aW9uIGFwcGxpY2F0aW9ucy4gSXQg
d2lsbCBub3Qgd29yayBmb3IgZGlzcGxheXMgd2hpY2ggdXNlCisgICAgICAgKiBkaXJlY3QtdG8t
ZGlzcGxheSBtb2RlLiBDcmVhdGluZyBvdXIgb3duIHdpbmRvdyBpcyBhbHNvIGluY29tcGF0aWJs
ZSB3aXRoIHRoZSBWUiBjb21wb3NpdG9yIGFuZCBpcyBub3QgYXZhaWxhYmxlIHdoZW4gdGhlIGNv
bXBvc2l0b3IgaXMgcnVubmluZy4gKi8KKyAgICAgICBjbGFzcyBJVlJFeHRlbmRlZERpc3BsYXkK
KyAgICAgICB7CisgICAgICAgcHVibGljOgorCisgICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBw
b3NpdGlvbiB0aGF0IHRoZSB3aW5kb3cgbmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBu
WCwgaW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSB2aWV3cG9ydCBpbiB0aGUgZnJhbWUg
YnVmZmVyIHRvIGRyYXcgdGhlIG91dHB1dCBvZiB0aGUgZGlzdG9ydGlvbiBpbnRvICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydCggRVZSRXllIGVFeWUs
IHVpbnQzMl90ICpwblgsIHVpbnQzMl90ICpwblksIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJf
dCAqcG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFtEM0QxMC8xMSBPbmx5XQor
ICAgICAgICAgICAgICAqIFJldHVybnMgdGhlIGFkYXB0ZXIgaW5kZXggYW5kIG91dHB1dCBpbmRl
eCB0aGF0IHRoZSB1c2VyIHNob3VsZCBwYXNzIGludG8gRW51bUFkYXB0ZXJzIGFuZCBFbnVtT3V0
cHV0cworICAgICAgICAgICAgICAqIHRvIGNyZWF0ZSB0aGUgZGV2aWNlIGFuZCBzd2FwIGNoYWlu
IGluIERYMTAgYW5kIERYMTEuIElmIGFuIGVycm9yIG9jY3VycyBib3RoIGluZGljZXMgd2lsbCBi
ZSBzZXQgdG8gLTEuCisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBHZXREWEdJT3V0cHV0SW5mbyggaW50MzJfdCAqcG5BZGFwdGVySW5kZXgsIGludDMyX3QgKnBu
QWRhcHRlck91dHB1dEluZGV4ICkgPSAwOworCisgICAgICAgfTsKKworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3QgSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24gPSAiSVZSRXh0ZW5k
ZWREaXNwbGF5XzAwMSI7CisKK30KKworCisvLyBpdnJ0cmFja2VkY2FtZXJhLmgKK25hbWVzcGFj
ZSB2cgoreworCitjbGFzcyBJVlJUcmFja2VkQ2FtZXJhCit7CitwdWJsaWM6CisgICAgICAgLyoq
IFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGVycm9yICovCisgICAgICAgdmlydHVhbCBjb25zdCBj
aGFyICpHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSggdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJv
ciBlQ2FtZXJhRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogRm9yIGNvbnZlbmllbmNlLCBzYW1l
IGFzIHRyYWNrZWQgcHJvcGVydHkgcmVxdWVzdCBQcm9wX0hhc0NhbWVyYV9Cb29sICovCisgICAg
ICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEhhc0NhbWVyYSggdnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqcEhhc0NhbWVyYSApID0gMDsKKwor
ICAgICAgIC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1lLiAqLworICAgICAgIHZpcnR1
YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFGcmFtZVNpemUoIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQsIHVp
bnQzMl90ICpwbkZyYW1lQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIHZpcnR1YWwgdnI6OkVW
UlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFJbnRyaW5zaWNzKCB2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCB2cjo6SG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIHZyOjpIbWRWZWN0b3IyX3Qg
KnBDZW50ZXIgKSA9IDA7CisKKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJy
b3IgR2V0Q2FtZXJhUHJvamVjdGlvbiggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJ
bmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxa
TmVhciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7
CisKKyAgICAgICAvKiogQWNxdWlyaW5nIHN0cmVhbWluZyBzZXJ2aWNlIHBlcm1pdHMgdmlkZW8g
c3RyZWFtaW5nIGZvciB0aGUgY2FsbGVyLiBSZWxlYXNpbmcgaGludHMgdGhlIHN5c3RlbSB0aGF0
IHZpZGVvIHNlcnZpY2VzIGRvIG5vdCBuZWVkIHRvIGJlIG1haW50YWluZWQgZm9yIHRoaXMgY2xp
ZW50LgorICAgICAgICogSWYgdGhlIGNhbWVyYSBoYXMgbm90IGFscmVhZHkgYmVlbiBhY3RpdmF0
ZWQsIGEgb25lIHRpbWUgc3BpbiB1cCBtYXkgaW5jdXIgc29tZSBhdXRvIGV4cG9zdXJlIGFzIHdl
bGwgYXMgaW5pdGlhbCBzdHJlYW1pbmcgZnJhbWUgZGVsYXlzLgorICAgICAgICogVGhlIGNhbWVy
YSBzaG91bGQgYmUgY29uc2lkZXJlZCBhIGdsb2JhbCByZXNvdXJjZSBhY2Nlc3NpYmxlIGZvciBz
aGFyZWQgY29uc3VtcHRpb24gYnV0IG5vdCBleGNsdXNpdmUgdG8gYW55IGNhbGxlci4KKyAgICAg
ICAqIFRoZSBjYW1lcmEgbWF5IGdvIGluYWN0aXZlIGR1ZSB0byBsYWNrIG9mIGFjdGl2ZSBjb25z
dW1lcnMgb3IgaGVhZHNldCBpZGxlbmVzcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSggdnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqcEhh
bmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVs
ZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJh
Y2tlZENhbWVyYSApID0gMDsKKworICAgICAgIC8qKiBDb3BpZXMgdGhlIGltYWdlIGZyYW1lIGlu
dG8gYSBjYWxsZXIncyBwcm92aWRlZCBidWZmZXIuIFRoZSBpbWFnZSBkYXRhIGlzIGN1cnJlbnRs
eSBwcm92aWRlZCBhcyBSR0JBIGRhdGEsIDQgYnl0ZXMgcGVyIHBpeGVsLgorICAgICAgICogQSBj
YWxsZXIgY2FuIHByb3ZpZGUgbnVsbCBmb3IgdGhlIGZyYW1lYnVmZmVyIG9yIGZyYW1laGVhZGVy
IGlmIG5vdCBkZXNpcmVkLiBSZXF1ZXN0aW5nIHRoZSBmcmFtZSBoZWFkZXIgZmlyc3QsIGZvbGxv
d2VkIGJ5IHRoZSBmcmFtZSBidWZmZXIgYWxsb3dzCisgICAgICAgKiB0aGUgY2FsbGVyIHRvIGRl
dGVybWluZSBpZiB0aGUgZnJhbWUgYXMgYWR2YW5jZWQgcGVyIHRoZSBmcmFtZSBoZWFkZXIgc2Vx
dWVuY2UuIAorICAgICAgICogSWYgdGhlcmUgaXMgbm8gZnJhbWUgYXZhaWxhYmxlIHlldCwgZHVl
IHRvIGluaXRpYWwgY2FtZXJhIHNwaW51cCBvciByZS1hY3RpdmF0aW9uLCB0aGUgZXJyb3Igd2ls
bCBiZSBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0ZyYW1lQXZhaWxhYmxlLgorICAgICAgICogSWRl
YWxseSBhIGNhbGxlciBzaG91bGQgYmUgcG9sbGluZyBhdCB+MTZtcyBpbnRlcnZhbHMgKi8KKyAg
ICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1GcmFt
ZUJ1ZmZlciggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgdnI6OkVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqcEZyYW1lQnVmZmVyLCB1
aW50MzJfdCBuRnJhbWVCdWZmZXJTaXplLCB2cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUgKSA9IDA7CisKKyAg
ICAgICAvKiogR2V0cyBzaXplIG9mIHRoZSBpbWFnZSBmcmFtZS4gKi8KKyAgICAgICB2aXJ0dWFs
IHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSggdnI6
OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSwgdnI6OlZSVGV4dHVyZUJvdW5kc190ICpwVGV4dHVyZUJvdW5k
cywgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsgCisKKyAgICAg
ICAvKiogQWNjZXNzIGEgc2hhcmVkIEQzRDExIHRleHR1cmUgZm9yIHRoZSBzcGVjaWZpZWQgdHJh
Y2tlZCBjYW1lcmEgc3RyZWFtLgorICAgICAgICogVGhlIGNhbWVyYSBmcmFtZSB0eXBlIFZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCBpcyBub3Qgc3VwcG9ydGVkIGRpcmVjdGx5
IGFzIGEgc2hhcmVkIHRleHR1cmUuIEl0IGlzIGFuIGludGVyaW9yIHN1YnJlZ2lvbiBvZiB0aGUg
c2hhcmVkIHRleHR1cmUgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRl
ZC4KKyAgICAgICAqIEluc3RlYWQsIHVzZSBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKCkgd2l0
aCBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQgdG8gZGV0ZXJtaW5lIHRoZSBw
cm9wZXIgaW50ZXJpb3Igc3VicmVnaW9uIGJvdW5kcyBhbG9uZyB3aXRoIEdldFZpZGVvU3RyZWFt
VGV4dHVyZUQzRDExKCkgd2l0aAorICAgICAgICogVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01h
eGltdW1VbmRpc3RvcnRlZCB0byBwcm92aWRlIHRoZSB0ZXh0dXJlLiBUaGUgVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCB3aWxsIHlpZWxkIGFuIGltYWdlIHdoZXJl
IHRoZSBpbnZhbGlkIHJlZ2lvbnMgYXJlIGRlY29kZWQKKyAgICAgICAqIGJ5IHRoZSBhbHBoYSBj
aGFubmVsIGhhdmluZyBhIHplcm8gY29tcG9uZW50LiBUaGUgdmFsaWQgcmVnaW9ucyBhbGwgaGF2
ZSBhIG5vbi16ZXJvIGFscGhhIGNvbXBvbmVudC4gVGhlIHN1YnJlZ2lvbiBhcyBkZXNjcmliZWQg
YnkgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIAorICAgICAgICogZ3VhcmFu
dGVlcyBhIHJlY3RhbmdsZSB3aGVyZSBhbGwgcGl4ZWxzIGFyZSB2YWxpZC4gKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNE
MTEoIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKnBEM0QxMURldmljZU9yUmVzb3Vy
Y2UsIHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCB2cjo6Q2FtZXJhVmlkZW9TdHJl
YW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUg
KSA9IDA7CisKKyAgICAgICAvKiogQWNjZXNzIGEgc2hhcmVkIEdMIHRleHR1cmUgZm9yIHRoZSBz
cGVjaWZpZWQgdHJhY2tlZCBjYW1lcmEgc3RyZWFtICovCisgICAgICAgdmlydHVhbCB2cjo6RVZS
VHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKCB2cjo6VHJhY2tlZENh
bWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSBlRnJhbWVUeXBlLCB2cjo6Z2xVSW50X3QgKnBnbFRleHR1cmVJZCwgdnI6OkNhbWVyYVZpZGVv
U3RyZWFtRnJhbWVIZWFkZXJfdCAqcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVIZWFkZXJT
aXplICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBSZWxl
YXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woIHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNr
ZWRDYW1lcmEsIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCApID0gMDsKK307CisKK3N0YXRpYyBj
b25zdCBjaGFyICogY29uc3QgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRD
YW1lcmFfMDAzIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisvLyBpdnJzY3JlZW5zaG90cy5o
CituYW1lc3BhY2UgdnIKK3sKKworLyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aXRoIHRoZSBW
UiBjb21wb3NpdG9yICovCitlbnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIFZSU2Ny
ZWVuc2hvdEVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9yX1JlcXVlc3RGYWlsZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBWUlNjcmVlbnNob3RF
cnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uICAgICAgICAgICAgICAgICAgICAgPSAxMDAsCisgICAg
ICAgVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMSwKKyAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9CdWZmZXJUb29T
bWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUlNjcmVlbnNo
b3RFcnJvcl9TY3JlZW5zaG90QWxyZWFkeUluUHJvZ3Jlc3MgICAgICAgPSAxMDgsCit9OworCisv
KiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBnZW5lcmF0ZSBzY3JlZW5zaG90cyAqLworY2xh
c3MgSVZSU2NyZWVuc2hvdHMKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogUmVxdWVzdCBhIHNjcmVl
bnNob3Qgb2YgdGhlIHJlcXVlc3RlZCB0eXBlLgorICAgICAgICAqICBBIHJlcXVlc3Qgb2YgdGhl
IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvIHR5cGUgd2lsbCBhbHdheXMKKyAgICAgICAgKiAgd29y
ay4gT3RoZXIgdHlwZXMgd2lsbCBkZXBlbmQgb24gdGhlIHVuZGVybHlpbmcgYXBwbGljYXRpb24K
KyAgICAgICAgKiAgc3VwcG9ydC4KKyAgICAgICAgKiAgVGhlIGZpcnN0IGZpbGUgbmFtZSBpcyBm
b3IgdGhlIHByZXZpZXcgaW1hZ2UgYW5kIHNob3VsZCBiZSBhCisgICAgICAgICogIHJlZ3VsYXIg
c2NyZWVuc2hvdCAoaWRlYWxseSBmcm9tIHRoZSBsZWZ0IGV5ZSkuIFRoZSBzZWNvbmQKKyAgICAg
ICAgKiAgaXMgdGhlIFZSIHNjcmVlbnNob3QgaW4gdGhlIGNvcnJlY3QgZm9ybWF0LiBUaGV5IHNo
b3VsZCBiZQorICAgICAgICAqICBpbiB0aGUgc2FtZSBhc3BlY3QgcmF0aW8uICBGb3JtYXRzIHBl
ciB0eXBlOgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX01vbm86IHRoZSBWUiBmaWxlbmFt
ZSBpcyBpZ25vcmVkIChjYW4gYmUKKyAgICAgICAgKiAgbnVsbHB0ciksIHRoaXMgaXMgYSBub3Jt
YWwgZmxhdCBzaW5nbGUgc2hvdC4KKyAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW86
ICBUaGUgVlIgaW1hZ2Ugc2hvdWxkIGJlIGEKKyAgICAgICAgKiAgc2lkZS1ieS1zaWRlIHdpdGgg
dGhlIGxlZnQgZXllIGltYWdlIG9uIHRoZSBsZWZ0LgorICAgICAgICAqICBWUlNjcmVlbnNob3RU
eXBlX0N1YmVtYXA6IFRoZSBWUiBpbWFnZSBzaG91bGQgYmUgc2l4IHNxdWFyZQorICAgICAgICAq
ICBpbWFnZXMgY29tcG9zaXRlZCBob3Jpem9udGFsbHkuCisgICAgICAgICogIFZSU2NyZWVuc2hv
dFR5cGVfU3RlcmVvUGFub3JhbWE6IGFib3ZlL2JlbG93IHdpdGggbGVmdCBleWUKKyAgICAgICAg
KiAgcGFub3JhbWEgYmVpbmcgdGhlIGFib3ZlIGltYWdlLiAgSW1hZ2UgaXMgdHlwaWNhbGx5IHNx
dWFyZQorICAgICAgICAqICB3aXRoIHRoZSBwYW5vcmFtYSBiZWluZyAyeCBob3Jpem9udGFsLgor
ICAgICAgICAqICAKKyAgICAgICAgKiAgTm90ZSB0aGF0IHRoZSBWUiBkYXNoYm9hcmQgd2lsbCBj
YWxsIHRoaXMgZnVuY3Rpb24gd2hlbgorICAgICAgICAqICB0aGUgdXNlciBwcmVzc2VzIHRoZSBz
Y3JlZW5zaG90IGJpbmRpbmcgKGN1cnJlbnRseSBTeXN0ZW0KKyAgICAgICAgKiAgQnV0dG9uICsg
VHJpZ2dlcikuICBJZiBTdGVhbSBpcyBydW5uaW5nLCB0aGUgZGVzdGluYXRpb24KKyAgICAgICAg
KiAgZmlsZSBuYW1lcyB3aWxsIGJlIGluICVURU1QJSBhbmQgd2lsbCBiZSBjb3BpZWQgaW50bwor
ICAgICAgICAqICBTdGVhbSdzIHNjcmVlbnNob3QgbGlicmFyeSBmb3IgdGhlIHJ1bm5pbmcgYXBw
bGljYXRpb24KKyAgICAgICAgKiAgb25jZSBTdWJtaXRTY3JlZW5zaG90KCkgaXMgY2FsbGVkLgor
ICAgICAgICAqICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhlIHBhdGhzIHdpbGwgYmUgaW4g
dGhlIHVzZXIncworICAgICAgICAqICBkb2N1bWVudHMgZm9sZGVyIHVuZGVyIERvY3VtZW50c1xT
dGVhbVZSXFNjcmVlbnNob3RzLgorICAgICAgICAqICBPdGhlciBWUiBhcHBsaWNhdGlvbnMgY2Fu
IGNhbGwgdGhpcyB0byBpbml0aWF0ZSBhCisgICAgICAgICogIHNjcmVlbnNob3Qgb3V0c2lkZSBv
ZiB1c2VyIGNvbnRyb2wuCisgICAgICAgICogIFRoZSBkZXN0aW5hdGlvbiBmaWxlIG5hbWVzIGRv
IG5vdCBuZWVkIGFuIGV4dGVuc2lvbiwKKyAgICAgICAgKiAgd2lsbCBiZSByZXBsYWNlZCB3aXRo
IHRoZSBjb3JyZWN0IG9uZSBmb3IgdGhlIGZvcm1hdAorICAgICAgICAqICB3aGljaCBpcyBjdXJy
ZW50bHkgLnBuZy4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgUmVx
dWVzdFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKnBPdXRTY3JlZW5zaG90SGFu
ZGxlLCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY29uc3QgY2hhciAqcGNoUHJldmlld0Zp
bGVuYW1lLCBjb25zdCBjaGFyICpwY2hWUkZpbGVuYW1lICkgPSAwOworCisgICAgICAgLyoqIENh
bGxlZCBieSB0aGUgcnVubmluZyBWUiBhcHBsaWNhdGlvbiB0byBpbmRpY2F0ZSB0aGF0IGl0Cisg
ICAgICAgICogIHdpc2hlcyB0byBiZSBpbiBjaGFyZ2Ugb2Ygc2NyZWVuc2hvdHMuICBJZiB0aGUK
KyAgICAgICAgKiAgYXBwbGljYXRpb24gZG9lcyBub3QgY2FsbCB0aGlzLCB0aGUgQ29tcG9zaXRv
ciB3aWxsIG9ubHkKKyAgICAgICAgKiAgc3VwcG9ydCBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyBz
Y3JlZW5zaG90cyB0aGF0IHdpbGwgYmUKKyAgICAgICAgKiAgY2FwdHVyZWQgd2l0aG91dCBub3Rp
ZmljYXRpb24gdG8gdGhlIHJ1bm5pbmcgYXBwLgorICAgICAgICAqICBPbmNlIGhvb2tlZCB5b3Vy
IGFwcGxpY2F0aW9uIHdpbGwgcmVjZWl2ZSBhCisgICAgICAgICogIFZSRXZlbnRfUmVxdWVzdFNj
cmVlbnNob3QgZXZlbnQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZQorICAgICAgICAqICBidXR0
b25zIHRvIHRha2UgYSBzY3JlZW5zaG90LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVl
bnNob3RFcnJvciBIb29rU2NyZWVuc2hvdCggVlJfQVJSQVlfQ09VTlQoIG51bVR5cGVzICkgY29u
c3QgdnI6OkVWUlNjcmVlbnNob3RUeXBlICpwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyAp
ID0gMDsKKworICAgICAgIC8qKiBXaGVuIHlvdXIgYXBwbGljYXRpb24gcmVjZWl2ZXMgYQorICAg
ICAgICAqICBWUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90IGV2ZW50LCBjYWxsIHRoZXNlIGZ1bmN0
aW9ucyB0byBnZXQKKyAgICAgICAgKiAgdGhlIGRldGFpbHMgb2YgdGhlIHNjcmVlbnNob3QgcmVx
dWVzdC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5z
aG90UHJvcGVydHlUeXBlKCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUs
IHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKnBFcnJvciApID0gMDsKKworICAgICAgIC8qKiBHZXQg
dGhlIGZpbGVuYW1lIGZvciB0aGUgcHJldmlldyBvciB2ciBpbWFnZSAoc2VlCisgICAgICAgICog
IHZyOjpFU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzKS4gIFRoZSByZXR1cm4gdmFsdWUgaXMK
KyAgICAgICAgKiAgdGhlIHNpemUgb2YgdGhlIHN0cmluZy4gICAqLworICAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IEdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKCB2cjo6U2NyZWVuc2hvdEhh
bmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIHZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZXMgZmlsZW5hbWVUeXBlLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoRmlsZW5hbWUsIHVpbnQz
Ml90IGNjaEZpbGVuYW1lLCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yICpwRXJyb3IgKSA9IDA7CisK
KyAgICAgICAvKiogQ2FsbCB0aGlzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyB0YWtpbmcgdGhlIHNj
cmVlbiBzaG90CisgICAgICAgICogIHdpbGwgdGFrZSBtb3JlIHRoYW4gYSBmZXcgbXMgcHJvY2Vz
c2luZy4gVGhpcyB3aWxsIHJlc3VsdAorICAgICAgICAqICBpbiBhbiBvdmVybGF5IGJlaW5nIHBy
ZXNlbnRlZCB0aGF0IHNob3dzIGEgY29tcGxldGlvbgorICAgICAgICAqICBiYXIuICovCisgICAg
ICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVz
cyggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCBmbG9hdCBmbFByb2dy
ZXNzICkgPSAwOworCisgICAgICAgLyoqIFRlbGxzIHRoZSBjb21wb3NpdG9yIHRvIHRha2UgYW4g
aW50ZXJuYWwgc2NyZWVuc2hvdCBvZgorICAgICAgICAqICB0eXBlIFZSU2NyZWVuc2hvdFR5cGVf
U3RlcmVvLiBJdCB3aWxsIHRha2UgdGhlIGN1cnJlbnQKKyAgICAgICAgKiAgc3VibWl0dGVkIHNj
ZW5lIHRleHR1cmVzIG9mIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uIGFuZAorICAgICAgICAqICB3
cml0ZSB0aGVtIGludG8gdGhlIHByZXZpZXcgaW1hZ2UgYW5kIGEgc2lkZS1ieS1zaWRlIGZpbGUK
KyAgICAgICAgKiAgZm9yIHRoZSBWUiBpbWFnZS4KKyAgICAgICAgKiAgVGhpcyBpcyBzaW1pbGFy
IHRvIHJlcXVlc3Qgc2NyZWVuc2hvdCwgYnV0IGRvZXNuJ3QgZXZlcgorICAgICAgICAqICB0YWxr
IHRvIHRoZSBhcHBsaWNhdGlvbiwganVzdCB0YWtlcyB0aGUgc2hvdCBhbmQgc3VibWl0cy4gKi8K
KyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNo
b3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKnBPdXRTY3JlZW5zaG90SGFuZGxlLCBjb25zdCBj
aGFyICpwY2hQcmV2aWV3RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFZSRmlsZW5hbWUgKSA9IDA7
CisKKyAgICAgICAvKiogU3VibWl0IHRoZSBjb21wbGV0ZWQgc2NyZWVuc2hvdC4gIElmIFN0ZWFt
IGlzIHJ1bm5pbmcKKyAgICAgICAgKiAgdGhpcyB3aWxsIGNhbGwgaW50byB0aGUgU3RlYW0gY2xp
ZW50IGFuZCB1cGxvYWQgdGhlCisgICAgICAgICogIHNjcmVlbnNob3QgdG8gdGhlIHNjcmVlbnNo
b3RzIHNlY3Rpb24gb2YgdGhlIGxpYnJhcnkgZm9yCisgICAgICAgICogIHRoZSBydW5uaW5nIGFw
cGxpY2F0aW9uLiAgSWYgU3RlYW0gaXMgbm90IHJ1bm5pbmcsIHRoaXMKKyAgICAgICAgKiAgZnVu
Y3Rpb24gd2lsbCBkaXNwbGF5IGEgbm90aWZpY2F0aW9uIHRvIHRoZSB1c2VyIHRoYXQgdGhlCisg
ICAgICAgICogIHNjcmVlbnNob3Qgd2FzIHRha2VuLiBUaGUgcGF0aHMgc2hvdWxkIGJlIGZ1bGwg
cGF0aHMgd2l0aAorICAgICAgICAqICBleHRlbnNpb25zLgorICAgICAgICAqICBGaWxlIHBhdGhz
IHNob3VsZCBiZSBhYnNvbHV0ZSBpbmNsdWRpbmcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiAgc2Ny
ZWVuc2hvdEhhbmRsZSBjYW4gYmUga191blNjcmVlbnNob3RIYW5kbGVJbnZhbGlkIGlmIHRoaXMK
KyAgICAgICAgKiAgd2FzIGEgbmV3IHNob3QgdGFraW5nIGJ5IHRoZSBhcHAgdG8gYmUgc2F2ZWQg
YW5kIG5vdAorICAgICAgICAqICBpbml0aWF0ZWQgYnkgYSB1c2VyIChhY2hpZXZlbWVudCBlYXJu
ZWQgb3Igc29tZXRoaW5nKSAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJv
ciBTdWJtaXRTY3JlZW5zaG90KCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5k
bGUsIHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBjaGFyICpwY2hTb3VyY2VQcmV2
aWV3RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZVZSRmlsZW5hbWUgKSA9IDA7Cit9Owor
CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZS
U2NyZWVuc2hvdHNfMDAxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cnJlc291
cmNlcy5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgSVZSUmVzb3VyY2VzCit7CitwdWJsaWM6
CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAvLyBTaGFyZWQgUmVzb3VyY2UgTWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIExvYWRzIHRoZSBzcGVjaWZpZWQgcmVz
b3VyY2UgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyIGlmIGxhcmdlIGVub3VnaC4KKyAgICAgICAq
IFJldHVybnMgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGJ1ZmZlciByZXF1aXJlZCB0byBob2xk
IHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBMb2Fk
U2hhcmVkUmVzb3VyY2UoIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlTmFtZSwgY2hhciAqcGNoQnVm
ZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbiApID0gMDsKKworICAgICAgIC8qKiBQcm92aWRlcyB0
aGUgZnVsbCBwYXRoIHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuIFJlc291cmNlIG5hbWVzIGNh
biBpbmNsdWRlIG5hbWVkIGRpcmVjdG9yaWVzIGZvcgorICAgICAgICogZHJpdmVycyBhbmQgb3Ro
ZXIgdGhpbmdzLCBhbmQgdGhpcyByZXNvbHZlcyBhbGwgb2YgdGhvc2UgYW5kIHJldHVybnMgdGhl
IGFjdHVhbCBwaHlzaWNhbCBwYXRoLiAKKyAgICAgICAqIHBjaFJlc291cmNlVHlwZURpcmVjdG9y
eSBpcyB0aGUgc3ViZGlyZWN0b3J5IG9mIHJlc291cmNlcyB0byBsb29rIGluLiAqLworICAgICAg
IHZpcnR1YWwgdWludDMyX3QgR2V0UmVzb3VyY2VGdWxsUGF0aCggY29uc3QgY2hhciAqcGNoUmVz
b3VyY2VOYW1lLCBjb25zdCBjaGFyICpwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnksIGNoYXIgKnBj
aFBhdGhCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAwOworfTsKKworc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAx
IjsKKworCit9CisvLyBpdnJkcml2ZXJtYW5hZ2VyLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFz
cyBJVlJEcml2ZXJNYW5hZ2VyCit7CitwdWJsaWM6CisgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXREcml2ZXJDb3VudCgpIGNvbnN0ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsZW5n
dGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBp
bmNsdWRpbmcgdGhlIHRyYWlsaW5nIG51bGwuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXREcml2ZXJOYW1lKCB2cjo6RHJpdmVySWRfdCBuRHJpdmVyLCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSApID0gMDsKK307CisKK3N0YXRpYyBj
b25zdCBjaGFyICogY29uc3QgSVZSRHJpdmVyTWFuYWdlcl9WZXJzaW9uID0gIklWUkRyaXZlck1h
bmFnZXJfMDAxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisvLyBFbmQKKworI2VuZGlmIC8v
IF9PUEVOVlJfQVBJCisKKworbmFtZXNwYWNlIHZyCit7CisgICAgICAgLyoqIEZpbmRzIHRoZSBh
Y3RpdmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBWUiBBUEkgYW5kIGluaXRpYWxpemVzIGl0LiBUaGUg
cHJvdmlkZWQgcGF0aCBtdXN0IGJlIGFic29sdXRlCisgICAgICAgKiBvciByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gVGhlc2UgYXJlIHRoZSBsb2NhbCBpbnN0YWxs
IHZlcnNpb25zIG9mIHRoZSBlcXVpdmFsZW50CisgICAgICAgKiBmdW5jdGlvbnMgaW4gc3RlYW12
ci5oIGFuZCB3aWxsIHdvcmsgd2l0aG91dCBhIGxvY2FsIFN0ZWFtIGluc3RhbGwuCisgICAgICAg
KgorICAgICAgICogVGhpcyBwYXRoIGlzIHRvIHRoZSAicm9vdCIgb2YgdGhlIFZSIEFQSSBpbnN0
YWxsLiBUaGF0J3MgdGhlIGRpcmVjdG9yeSB3aXRoCisgICAgICAgKiB0aGUgImRyaXZlcnMiIGRp
cmVjdG9yeSBhbmQgYSBwbGF0Zm9ybSAoaS5lLiAid2luMzIiKSBkaXJlY3RvcnkgaW4gaXQsIG5v
dCB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIERMTCBpdHNlbGYuCisgICAgICAgKgorICAgICAgICog
cFN0YXJ0dXBJbmZvIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlLgorICAgICAgICovCisgICAg
ICAgaW5saW5lIElWUlN5c3RlbSAqVlJfSW5pdCggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJB
cHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZv
ID0gbnVsbHB0ciApOworCisgICAgICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50
ZXJmYWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQg
YWZ0ZXIgdGhpcyBwb2ludCAqLworICAgICAgIGlubGluZSB2b2lkIFZSX1NodXRkb3duKCk7CisK
KyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGFuIEhNRCBhdHRhY2hlZC4gVGhp
cyBjaGVjayBpcyBhcyBsaWdodHdlaWdodCBhcyBwb3NzaWJsZSBhbmQKKyAgICAgICAqIGNhbiBi
ZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0L1ZSX1NodXRkb3duLiBJdCBzaG91bGQgYmUgdXNl
ZCB3aGVuIGFuIGFwcGxpY2F0aW9uIHdhbnRzCisgICAgICAgKiB0byBrbm93IGlmIGluaXRpYWxp
emluZyBWUiBpcyBhIHBvc3NpYmlsaXR5IGJ1dCBpc24ndCByZWFkeSB0byB0YWtlIHRoYXQgc3Rl
cCB5ZXQuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9vbCBWUl9DQUxMVFlQRSBW
Ul9Jc0htZFByZXNlbnQoKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIE9wZW5W
UiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9vbCBWUl9D
QUxMVFlQRSBWUl9Jc1J1bnRpbWVJbnN0YWxsZWQoKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHdo
ZXJlIHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCisgICAgICAgVlJfSU5URVJG
QUNFIGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX1J1bnRpbWVQYXRoKCk7CisKKyAgICAgICAv
KiogUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZSBmb3IgYW4gRVZSSW5pdEVycm9y
LiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgb3V0c2lkZSBvZiBWUl9Jbml0KCkvVlJfU2h1
dGRvd24oKS4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FMTFRZUEUg
VlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVycm9yICk7CisKKyAgICAg
ICAvKiogUmV0dXJucyBhbiBFbmdsaXNoIHN0cmluZyBmb3IgYW4gRVZSSW5pdEVycm9yLiBBcHBs
aWNhdGlvbnMgc2hvdWxkIGNhbGwgVlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCBpbnN0ZWFkIGFu
ZAorICAgICAgICogdXNlIHRoYXQgYXMgYSBrZXkgdG8gbG9vayB1cCB0aGVpciBvd24gbG9jYWxp
emVkIGVycm9yIG1lc3NhZ2UuIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBvdXRzaWRlIG9m
IFZSX0luaXQoKS9WUl9TaHV0ZG93bigpLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBj
aGFyICpWUl9DQUxMVFlQRSBWUl9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBF
VlJJbml0RXJyb3IgZXJyb3IgKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBpbnRlcmZhY2Ug
b2YgdGhlIHNwZWNpZmllZCB2ZXJzaW9uLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBhZnRl
ciBWUl9Jbml0LiBUaGUKKyAgICAgICAqIHBvaW50ZXIgcmV0dXJuZWQgaXMgdmFsaWQgdW50aWwg
VlJfU2h1dGRvd24gaXMgY2FsbGVkLgorICAgICAgICovCisgICAgICAgVlJfSU5URVJGQUNFIHZv
aWQgKlZSX0NBTExUWVBFIFZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIGNvbnN0IGNoYXIgKnBjaElu
dGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvciApOworCisgICAgICAgLyoqIFJl
dHVybnMgd2hldGhlciB0aGUgaW50ZXJmYWNlIG9mIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBleGlz
dHMuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0UgYm9vbCBWUl9DQUxMVFlQRSBWUl9J
c0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiAp
OworCisgICAgICAgLyoqIFJldHVybnMgYSB0b2tlbiB0aGF0IHJlcHJlc2VudHMgd2hldGhlciB0
aGUgVlIgaW50ZXJmYWNlIGhhbmRsZXMgbmVlZCB0byBiZSByZWxvYWRlZCAqLworICAgICAgIFZS
X0lOVEVSRkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQRSBWUl9HZXRJbml0VG9rZW4oKTsKKworICAg
ICAgIC8vIFRoZXNlIHR5cGVkZWZzIGFsbG93IG9sZCBlbnVtIG5hbWVzIGZyb20gU0RLIDAuOS4x
MSB0byBiZSB1c2VkIGluIGFwcGxpY2F0aW9ucy4KKyAgICAgICAvLyBUaGV5IHdpbGwgZ28gYXdh
eSBpbiB0aGUgZnV0dXJlLgorICAgICAgIHR5cGVkZWYgRVZSSW5pdEVycm9yIEhtZEVycm9yOwor
ICAgICAgIHR5cGVkZWYgRVZSRXllIEhtZF9FeWU7CisgICAgICAgdHlwZWRlZiBFQ29sb3JTcGFj
ZSBDb2xvclNwYWNlOworICAgICAgIHR5cGVkZWYgRVRyYWNraW5nUmVzdWx0IEhtZFRyYWNraW5n
UmVzdWx0OworICAgICAgIHR5cGVkZWYgRVRyYWNrZWREZXZpY2VDbGFzcyBUcmFja2VkRGV2aWNl
Q2xhc3M7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luOworICAgICAgIHR5cGVkZWYgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBUcmFj
a2VkRGV2aWNlUHJvcGVydHk7CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
VHJhY2tlZFByb3BlcnR5RXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJTdWJtaXRGbGFncyBWUlN1
Ym1pdEZsYWdzX3Q7CisgICAgICAgdHlwZWRlZiBFVlJTdGF0ZSBWUlN0YXRlX3Q7CisgICAgICAg
dHlwZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29sbGlzaW9uQm91bmRzU3R5bGVfdDsKKyAg
ICAgICB0eXBlZGVmIEVWUk92ZXJsYXlFcnJvciBWUk92ZXJsYXlFcnJvcjsKKyAgICAgICB0eXBl
ZGVmIEVWUkZpcm13YXJlRXJyb3IgVlJGaXJtd2FyZUVycm9yOworICAgICAgIHR5cGVkZWYgRVZS
Q29tcG9zaXRvckVycm9yIFZSQ29tcG9zaXRvckVycm9yOworICAgICAgIHR5cGVkZWYgRVZSU2Ny
ZWVuc2hvdEVycm9yIFZSU2NyZWVuc2hvdHNFcnJvcjsKKworICAgICAgIGlubGluZSB1aW50MzJf
dCAmVlJUb2tlbigpCisgICAgICAgeworICAgICAgICAgICAgICBzdGF0aWMgdWludDMyX3QgdG9r
ZW47CisgICAgICAgICAgICAgIHJldHVybiB0b2tlbjsKKyAgICAgICB9CisKKyAgICAgICBjbGFz
cyBDT3BlblZSQ29udGV4dAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAg
IENPcGVuVlJDb250ZXh0KCkgeyBDbGVhcigpOyB9CisgICAgICAgICAgICAgIHZvaWQgQ2xlYXIo
KTsKKworICAgICAgICAgICAgICBpbmxpbmUgdm9pZCBDaGVja0NsZWFyKCkKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBWUlRva2VuKCkgIT0gVlJfR2V0SW5pdFRv
a2VuKCkgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlJUb2tlbigpID0gVlJf
R2V0SW5pdFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICBJVlJTeXN0ZW0gKlZSU3lzdGVtKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAg
aWYgKCBtX3BWUlN5c3RlbSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVtID0gKCBJVlJTeXN0ZW0gKiApVlJfR2V0R2Vu
ZXJpY0ludGVyZmFjZSggSVZSU3lzdGVtX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBJVlJDaGFwZXJvbmUgKlZSQ2hhcGVyb25lKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAg
ICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkNoYXBlcm9uZSA9PSBudWxscHRyICkKKyAgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJy
b3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0g
KCBJVlJDaGFwZXJvbmUgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ2hhcGVyb25lX1Zl
cnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIElWUkNoYXBlcm9uZVNldHVwICpWUkNoYXBlcm9uZVNldHVwKCkKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAg
ICAgICAgaWYgKCBtX3BWUkNoYXBlcm9uZVNldHVwID09IG51bGxwdHIgKQorICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9ICgg
SVZSQ2hhcGVyb25lU2V0dXAgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSQ2hhcGVyb25l
U2V0dXBfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBJVlJDb21wb3NpdG9yICpWUkNvbXBvc2l0b3IoKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAoIG1fcFZSQ29tcG9zaXRvciA9PSBudWxscHRyICkKKyAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVy
cm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9ICggSVZS
Q29tcG9zaXRvciAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDb21wb3NpdG9yX1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICBJVlJPdmVybGF5ICpWUk92ZXJsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
T3ZlcmxheSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcFZST3ZlcmxheSA9ICggSVZST3ZlcmxheSAqIClWUl9HZXRHZW5lcmljSW50
ZXJmYWNlKCBJVlJPdmVybGF5X1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUk92ZXJsYXk7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJSZXNvdXJjZXMgKlZSUmVzb3VyY2VzKCkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAg
ICAgICAgICAgICAgICAgaWYgKCBtX3BWUlJlc291cmNlcyA9PSBudWxscHRyICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3Ig
ZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVzb3VyY2VzID0gKElW
UlJlc291cmNlcyAqKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlJlc291cmNlc19WZXJzaW9u
LCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbV9wVlJSZXNvdXJjZXM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICBJVlJTY3JlZW5zaG90cyAqVlJTY3JlZW5zaG90cygpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICgg
bV9wVlJTY3JlZW5zaG90cyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSAoIElWUlNjcmVlbnNob3RzICog
KVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNjcmVlbnNob3RzX1ZlcnNpb24sICZlRXJyb3Ig
KTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBt
X3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSUmVu
ZGVyTW9kZWxzICpWUlJlbmRlck1vZGVscygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJS
ZW5kZXJNb2RlbHMgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3BWUlJlbmRlck1vZGVscyA9ICggSVZSUmVuZGVyTW9kZWxzICogKVZS
X0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUlJlbmRlck1vZGVsc19WZXJzaW9uLCAmZUVycm9yICk7
CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9w
VlJSZW5kZXJNb2RlbHM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJFeHRl
bmRlZERpc3BsYXkgKlZSRXh0ZW5kZWREaXNwbGF5KCkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBt
X3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gKCBJVlJFeHRlbmRl
ZERpc3BsYXkgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSRXh0ZW5kZWREaXNwbGF5X1Zl
cnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBtX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgIElWUlNldHRpbmdzICpWUlNldHRpbmdzKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAg
aWYgKCBtX3BWUlNldHRpbmdzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9ICggSVZSU2V0dGluZ3MgKiApVlJf
R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2V0dGluZ3NfVmVyc2lvbiwgJmVFcnJvciApOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU2V0
dGluZ3M7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJBcHBsaWNhdGlvbnMg
KlZSQXBwbGljYXRpb25zKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
Q2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkFwcGxpY2F0aW9u
cyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcFZSQXBwbGljYXRpb25zID0gKCBJVlJBcHBsaWNhdGlvbnMgKiApVlJfR2V0R2VuZXJp
Y0ludGVyZmFjZSggSVZSQXBwbGljYXRpb25zX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkFwcGxpY2F0
aW9uczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlRyYWNrZWRDYW1lcmEg
KlZSVHJhY2tlZENhbWVyYSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJUcmFja2VkQ2Ft
ZXJhID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gKCBJVlJUcmFja2VkQ2FtZXJhICogKVZSX0dldEdl
bmVyaWNJbnRlcmZhY2UoIElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiwgJmVFcnJvciApOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSVHJh
Y2tlZENhbWVyYTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkRyaXZlck1h
bmFnZXIgKlZSRHJpdmVyTWFuYWdlcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggIW1fcFZSRHJp
dmVyTWFuYWdlciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3BWUkRyaXZlck1hbmFnZXIgPSAoIElWUkRyaXZlck1hbmFnZXIgKiApVlJfR2V0R2VuZXJp
Y0ludGVyZmFjZSggSVZSRHJpdmVyTWFuYWdlcl9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJN
YW5hZ2VyOworICAgICAgICAgICAgICB9CisKKyAgICAgICBwcml2YXRlOgorICAgICAgICAgICAg
ICBJVlJTeXN0ZW0gICAgICAgICAgICAgICAgICAgICAqbV9wVlJTeXN0ZW07CisgICAgICAgICAg
ICAgIElWUkNoYXBlcm9uZSAgICAgICAgICAgICAgKm1fcFZSQ2hhcGVyb25lOworICAgICAgICAg
ICAgICBJVlJDaGFwZXJvbmVTZXR1cCAgICAgICAqbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAg
ICAgICAgICAgSVZSQ29tcG9zaXRvciAgICAgICAgICAgICAgKm1fcFZSQ29tcG9zaXRvcjsKKyAg
ICAgICAgICAgICAgSVZST3ZlcmxheSAgICAgICAgICAgICAgICAgICAgICptX3BWUk92ZXJsYXk7
CisgICAgICAgICAgICAgIElWUlJlc291cmNlcyAgICAgICAgICAgICAgKm1fcFZSUmVzb3VyY2Vz
OworICAgICAgICAgICAgICBJVlJSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICptX3BWUlJlbmRl
ck1vZGVsczsKKyAgICAgICAgICAgICAgSVZSRXh0ZW5kZWREaXNwbGF5ICAgICAgICptX3BWUkV4
dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgICAgICAgICAgICAgICAg
ICAgICAqbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgSVZSQXBwbGljYXRpb25zICAgICAg
ICAgICAgICAqbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAgICAgIElWUlRyYWNrZWRDYW1l
cmEgICAgICAgKm1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICAgICAgICAgSVZSU2NyZWVuc2hv
dHMgICAgICAgICAgICAgICptX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICBJVlJEcml2
ZXJNYW5hZ2VyICAgICAgICptX3BWUkRyaXZlck1hbmFnZXI7CisgICAgICAgfTsKKworICAgICAg
IGlubGluZSBDT3BlblZSQ29udGV4dCAmT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpCisg
ICAgICAgeworICAgICAgICAgICAgICBzdGF0aWMgdm9pZCAqY3R4WyBzaXplb2YoIENPcGVuVlJD
b250ZXh0ICkgLyBzaXplb2YoIHZvaWQgKiApIF07CisgICAgICAgICAgICAgIHJldHVybiAqKCBD
T3BlblZSQ29udGV4dCAqICljdHg7IC8vIGJ5cGFzcyB6ZXJvLWluaXQgY29uc3RydWN0b3IKKyAg
ICAgICB9CisKKyAgICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9DQUxMVFlQRSBWUlN5c3RlbSgp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlN5c3RlbSgpOyB9Cisg
ICAgICAgaW5saW5lIElWUkNoYXBlcm9uZSAqVlJfQ0FMTFRZUEUgVlJDaGFwZXJvbmUoKSB7IHJl
dHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDaGFwZXJvbmUoKTsgfQorICAg
ICAgIGlubGluZSBJVlJDaGFwZXJvbmVTZXR1cCAqVlJfQ0FMTFRZUEUgVlJDaGFwZXJvbmVTZXR1
cCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNoYXBlcm9uZVNl
dHVwKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQ29tcG9zaXRvciAqVlJfQ0FMTFRZUEUgVlJDb21w
b3NpdG9yKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ29tcG9z
aXRvcigpOyB9CisgICAgICAgaW5saW5lIElWUk92ZXJsYXkgKlZSX0NBTExUWVBFIFZST3Zlcmxh
eSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUk92ZXJsYXkoKTsg
fQorICAgICAgIGlubGluZSBJVlJTY3JlZW5zaG90cyAqVlJfQ0FMTFRZUEUgVlJTY3JlZW5zaG90
cygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlNjcmVlbnNob3Rz
KCk7IH0KKyAgICAgICBpbmxpbmUgSVZSUmVuZGVyTW9kZWxzICpWUl9DQUxMVFlQRSBWUlJlbmRl
ck1vZGVscygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlJlbmRl
ck1vZGVscygpOyB9CisgICAgICAgaW5saW5lIElWUkFwcGxpY2F0aW9ucyAqVlJfQ0FMTFRZUEUg
VlJBcHBsaWNhdGlvbnMoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCku
VlJBcHBsaWNhdGlvbnMoKTsgfQorICAgICAgIGlubGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZ
UEUgVlJTZXR0aW5ncygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5W
UlNldHRpbmdzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSUmVzb3VyY2VzICpWUl9DQUxMVFlQRSBW
UlJlc291cmNlcygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlJl
c291cmNlcygpOyB9CisgICAgICAgaW5saW5lIElWUkV4dGVuZGVkRGlzcGxheSAqVlJfQ0FMTFRZ
UEUgVlJFeHRlbmRlZERpc3BsYXkoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250
ZXh0KCkuVlJFeHRlbmRlZERpc3BsYXkoKTsgfQorICAgICAgIGlubGluZSBJVlJUcmFja2VkQ2Ft
ZXJhICpWUl9DQUxMVFlQRSBWUlRyYWNrZWRDYW1lcmEoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5h
bF9Nb2R1bGVDb250ZXh0KCkuVlJUcmFja2VkQ2FtZXJhKCk7IH0KKyAgICAgICBpbmxpbmUgSVZS
RHJpdmVyTWFuYWdlciAqVlJfQ0FMTFRZUEUgVlJEcml2ZXJNYW5hZ2VyKCkgeyByZXR1cm4gT3Bl
blZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSRHJpdmVyTWFuYWdlcigpOyB9CisKKyAgICAg
ICBpbmxpbmUgdm9pZCBDT3BlblZSQ29udGV4dDo6Q2xlYXIoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgbV9wVlJTeXN0ZW0gPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9u
ZSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBudWxscHRy
OworICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxscHRyOworICAgICAgICAgICAg
ICBtX3BWUk92ZXJsYXkgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlJlbmRlck1vZGVs
cyA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG51bGxwdHI7CisgICAgICAgICAgICAg
IG1fcFZSQXBwbGljYXRpb25zID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJUcmFja2Vk
Q2FtZXJhID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJSZXNvdXJjZXMgPSBudWxscHRy
OworICAgICAgICAgICAgICBtX3BWUlNjcmVlbnNob3RzID0gbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgbV9wVlJEcml2ZXJNYW5hZ2VyID0gbnVsbHB0cjsKKyAgICAgICB9CisgICAgICAgCisgICAg
ICAgVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0luaXRJbnRlcm5hbDIoIEVW
UkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUs
IGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApOworICAgICAgIFZSX0lOVEVSRkFDRSB2b2lkIFZS
X0NBTExUWVBFIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKKworICAgICAgIC8qKiBGaW5kcyB0aGUg
YWN0aXZlIGluc3RhbGxhdGlvbiBvZiB2cmNsaWVudC5kbGwgYW5kIGluaXRpYWxpemVzIGl0ICov
CisgICAgICAgaW5saW5lIElWUlN5c3RlbSAqVlJfSW5pdCggRVZSSW5pdEVycm9yICpwZUVycm9y
LCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0
dXBJbmZvICkKKyAgICAgICB7CisgICAgICAgICAgICAgIElWUlN5c3RlbSAqcFZSU3lzdGVtID0g
bnVsbHB0cjsKKworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAg
ICAgICBWUlRva2VuKCkgPSBWUl9Jbml0SW50ZXJuYWwyKCAmZUVycm9yLCBlQXBwbGljYXRpb25U
eXBlLCBwU3RhcnR1cEluZm8gKTsKKyAgICAgICAgICAgICAgQ09wZW5WUkNvbnRleHQgJmN0eCA9
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKTsKKyAgICAgICAgICAgICAgY3R4LkNsZWFy
KCk7CisKKyAgICAgICAgICAgICAgaWYgKCBlRXJyb3IgPT0gVlJJbml0RXJyb3JfTm9uZSApCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggVlJfSXNJbnRlcmZhY2VW
ZXJzaW9uVmFsaWQoIElWUlN5c3RlbV9WZXJzaW9uICkgKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBWUlN5c3RlbSA9IFZSU3lzdGVtKCk7Cisg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlJfU2h1dGRvd25J
bnRlcm5hbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVFcnJvciA9IFZSSW5pdEVy
cm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQ7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICBpZiAoIHBlRXJyb3IgKQorICAgICAgICAgICAg
ICAgICAgICAgKnBlRXJyb3IgPSBlRXJyb3I7CisgICAgICAgICAgICAgIHJldHVybiBwVlJTeXN0
ZW07CisgICAgICAgfQorCisgICAgICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50
ZXJmYWNlIHBvaW50ZXJzIGZyb20gdGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQg
YWZ0ZXIgdGhpcyBwb2ludCAqLworICAgICAgIGlubGluZSB2b2lkIFZSX1NodXRkb3duKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIFZSX1NodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBp
LmNzIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5jcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NTg1YWY0NTM0ZjAyNDgzZmE5Mzc5YTZlNThmYWU4YTE5NWIxMWI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5j
cwpAQCAtMCwwICsxLDQ3ODYgQEAKKy8vPT09PT09PSBDb3B5cmlnaHQgKGMpIFZhbHZlIENvcnBv
cmF0aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVkLiA9PT09PT09PT09PT09PT0KKy8vCisvLyBQdXJw
b3NlOiBUaGlzIGZpbGUgY29udGFpbnMgQyMvbWFuYWdlZCBjb2RlIGJpbmRpbmdzIGZvciB0aGUg
T3BlblZSIGludGVyZmFjZXMKKy8vIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCwgZG8gbm90
IGVkaXQgaXQuCisvLworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCit1c2luZyBTeXN0ZW07Cit1
c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7Cit1c2luZyBWYWx2ZS5WUjsKKwor
bmFtZXNwYWNlIFZhbHZlLlZSCit7CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSU3lzdGVtCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9HZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUocmVmIHVpbnQgcG5X
aWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFy
Z2V0U2l6ZSBHZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemU7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDQ0X3QgX0dldFByb2plY3Rpb25NYXRyaXgoRVZSRXll
IGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclopOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFByb2plY3Rpb25N
YXRyaXggR2V0UHJvamVjdGlvbk1hdHJpeDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfR2V0UHJvamVjdGlvblJhdyhFVlJFeWUgZUV5ZSwgcmVmIGZsb2F0IHBmTGVmdCwg
cmVmIGZsb2F0IHBmUmlnaHQsIHJlZiBmbG9hdCBwZlRvcCwgcmVmIGZsb2F0IHBmQm90dG9tKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRQcm9qZWN0aW9uUmF3IEdldFByb2plY3Rpb25SYXc7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVEaXN0b3J0aW9uKEVWUkV5ZSBlRXllLCBm
bG9hdCBmVSwgZmxvYXQgZlYsIHJlZiBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCBwRGlzdG9ydGlv
bkNvb3JkaW5hdGVzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9Db21wdXRlRGlzdG9ydGlvbiBDb21wdXRlRGlzdG9ydGlv
bjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSG1kTWF0cml4MzRfdCBfR2V0RXll
VG9IZWFkVHJhbnNmb3JtKEVWUkV5ZSBlRXllKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRFeWVUb0hlYWRUcmFuc2Zv
cm0gR2V0RXllVG9IZWFkVHJhbnNmb3JtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9HZXRUaW1lU2luY2VMYXN0VnN5bmMocmVmIGZsb2F0IHBmU2Vjb25kc1NpbmNlTGFz
dFZzeW5jLCByZWYgdWxvbmcgcHVsRnJhbWVDb3VudGVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUaW1lU2luY2VM
YXN0VnN5bmMgR2V0VGltZVNpbmNlTGFzdFZzeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBpbnQgX0dldEQzRDlBZGFwdGVySW5kZXgoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREM0Q5QWRhcHRl
ckluZGV4IEdldEQzRDlBZGFwdGVySW5kZXg7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0dldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldERYR0lPdXRwdXRJbmZvIEdldERYR0lPdXRwdXRJbmZvOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rpc3BsYXlPbkRlc2t0b3AoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0Rp
c3BsYXlPbkRlc2t0b3AgSXNEaXNwbGF5T25EZXNrdG9wOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9TZXREaXNwbGF5VmlzaWJpbGl0eShib29sIGJJc1Zpc2libGVPbkRl
c2t0b3ApOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1NldERpc3BsYXlWaXNpYmlsaXR5IFNldERpc3BsYXlWaXNpYmlsaXR5
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXREZXZpY2VUb0Fic29s
dXRlVHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIGZsb2F0IGZQ
cmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQ
b3NlX3RbXSBwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludCB1blRyYWNrZWREZXZpY2VQb3Nl
QXJyYXlDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBHZXRE
ZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9SZXNldFNlYXRlZFplcm9Qb3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVzZXRTZWF0ZWRaZXJv
UG9zZSBSZXNldFNlYXRlZFplcm9Qb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBIbWRNYXRyaXgzNF90IF9HZXRTZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNr
aW5nUG9zZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJh
Y2tpbmdQb3NlIEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3Nl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRSYXda
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJhd1pl
cm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldFJhd1plcm9Qb3NlVG9TdGFu
ZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1aW50IF9HZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MoRVRyYWNrZWREZXZp
Y2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBbSW4sIE91dF0gdWludFtdIHB1blRyYWNrZWRE
ZXZpY2VJbmRleEFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCwgdWlu
dCB1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNvcnRlZFRyYWNr
ZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyBHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xh
c3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVEZXZpY2VBY3Rpdml0eUxldmVs
IF9HZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCh1aW50IHVuRGV2aWNlSWQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxl
dmVsOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9BcHBseVRyYW5zZm9y
bShyZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9zZSwgcmVmIFRyYWNrZWREZXZpY2VQ
b3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlLCByZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNmb3JtKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9BcHBseVRyYW5zZm9ybSBBcHBseVRyYW5zZm9ybTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJv
bGUoRVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYWNr
ZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlIEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNv
bnRyb2xsZXJSb2xlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVHJhY2tlZENv
bnRyb2xsZXJSb2xlIF9HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50
IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmlj
ZUluZGV4IEdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVHJhY2tlZERldmljZUNsYXNzIF9HZXRUcmFja2VkRGV2
aWNlQ2xhc3ModWludCB1bkRldmljZUluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFja2VkRGV2aWNlQ2xh
c3MgR2V0VHJhY2tlZERldmljZUNsYXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodWludCB1bkRldmljZUluZGV4KTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9Jc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQgSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRCb29sVHJhY2tlZERldmlj
ZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCByZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Qm9vbFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBmbG9hdCBfR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVy
dHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGbG9hdFRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEludDMyVHJhY2tlZERldmljZVByb3Bl
cnR5IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1bG9uZyBfR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5E
ZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5
IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSG1kTWF0cml4MzRfdCBfR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHko
dWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRNYXRyaXgzNFRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5
KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSwgcmVmIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFN0cmluZ1RyYWNrZWREZXZpY2VQ
cm9wZXJ0eSBHZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKEVUcmFja2Vk
UHJvcGVydHlFcnJvciBlcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIEdl
dFByb3BFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfUG9sbE5leHRFdmVudChyZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVu
dCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfUG9sbE5leHRFdmVudCBQb2xsTmV4dEV2ZW50OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZU9yaWdpbiwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5jYlZSRXZl
bnQsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
UG9sbE5leHRFdmVudFdpdGhQb3NlIFBvbGxOZXh0RXZlbnRXaXRoUG9zZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oRVZS
RXZlbnRUeXBlIGVUeXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0gR2V0RXZl
bnRUeXBlTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIaWRk
ZW5BcmVhTWVzaF90IF9HZXRIaWRkZW5BcmVhTWVzaChFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFN
ZXNoVHlwZSB0eXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRIaWRkZW5BcmVhTWVzaCBHZXRIaWRkZW5BcmVhTWVz
aDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29udHJvbGxlclN0
YXRlKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90
IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRDb250cm9sbGVyU3RhdGUgR2V0Q29udHJvbGxlclN0YXRlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShFVHJhY2tpbmdV
bml2ZXJzZU9yaWdpbiBlT3JpZ2luLCB1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LCByZWYg
VlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLCB1aW50IHVuQ29udHJvbGxlclN0
YXRlU2l6ZSwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9z
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfVHJpZ2dlckhhcHRpY1B1
bHNlKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQgdW5BeGlzSWQsIGNoYXIgdXNE
dXJhdGlvbk1pY3JvU2VjKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9UcmlnZ2VySGFwdGljUHVsc2UgVHJpZ2dlckhhcHRp
Y1B1bHNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEJ1dHRv
bklkTmFtZUZyb21FbnVtKEVWUkJ1dHRvbklkIGVCdXR0b25JZCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QnV0dG9u
SWROYW1lRnJvbUVudW0gR2V0QnV0dG9uSWROYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVt
KEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJB
eGlzVHlwZU5hbWVGcm9tRW51bSBHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW07CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhcHR1cmVJbnB1dEZvY3VzKCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfQ2FwdHVyZUlucHV0Rm9jdXMgQ2FwdHVyZUlucHV0Rm9jdXM7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbGVhc2VJbnB1dEZvY3VzKCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
UmVsZWFzZUlucHV0Rm9jdXMgUmVsZWFzZUlucHV0Rm9jdXM7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0lzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2Vzcygp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0lzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcyBJc0lucHV0Rm9j
dXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHVpbnQgX0RyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBw
Y2hSZXF1ZXN0LCBzdHJpbmcgcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQgdW5SZXNwb25zZUJ1ZmZl
clNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0RyaXZlckRlYnVnUmVxdWVzdCBEcml2ZXJEZWJ1Z1JlcXVlc3Q7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkZpcm13YXJlRXJyb3IgX1BlcmZvcm1G
aXJtd2FyZVVwZGF0ZSh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1BlcmZvcm1GaXJtd2Fy
ZVVwZGF0ZSBQZXJmb3JtRmlybXdhcmVVcGRhdGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0Fja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQWNrbm93bGVk
Z2VRdWl0X0V4aXRpbmcgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmc7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0Fja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQgQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQ7
CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0
cnVjdCBJVlJFeHRlbmRlZERpc3BsYXkKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0dldFdpbmRvd0JvdW5kcyhyZWYgaW50IHBuWCwgcmVmIGludCBwblksIHJlZiB1aW50
IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRXaW5kb3dCb3VuZHMgR2V0
V2luZG93Qm91bmRzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRF
eWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSwgcmVmIHVpbnQgcG5YLCByZWYgdWludCBwblks
IHJlZiB1aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRFeWVPdXRw
dXRWaWV3cG9ydCBHZXRFeWVPdXRwdXRWaWV3cG9ydDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCwg
cmVmIGludCBwbkFkYXB0ZXJPdXRwdXRJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RFhHSU91dHB1dEluZm8g
R2V0RFhHSU91dHB1dEluZm87CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJUcmFja2VkQ2FtZXJhCit7CisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKEVWUlRy
YWNrZWRDYW1lcmFFcnJvciBlQ2FtZXJhRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUVycm9yTmFt
ZUZyb21FbnVtIEdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0hhc0NhbWVyYSh1aW50IG5EZXZp
Y2VJbmRleCwgcmVmIGJvb2wgcEhhc0NhbWVyYSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSGFzQ2FtZXJhIEhhc0NhbWVy
YTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9y
IF9HZXRDYW1lcmFGcmFtZVNpemUodWludCBuRGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSwgcmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQs
IHJlZiB1aW50IHBuRnJhbWVCdWZmZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFGcmFtZVNpemUg
R2V0Q2FtZXJhRnJhbWVTaXplOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgX0dldENhbWVyYUludHJpbnNpY3ModWludCBuRGV2aWNlSW5kZXgs
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgcmVmIEhtZFZlY3RvcjJfdCBw
Rm9jYWxMZW5ndGgsIHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcik7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJh
SW50cmluc2ljcyBHZXRDYW1lcmFJbnRyaW5zaWNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dldENhbWVyYVByb2plY3Rpb24odWludCBu
RGV2aWNlSW5kZXgsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQg
ZmxaTmVhciwgZmxvYXQgZmxaRmFyLCByZWYgSG1kTWF0cml4NDRfdCBwUHJvamVjdGlvbik7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0Q2FtZXJhUHJvamVjdGlvbiBHZXRDYW1lcmFQcm9qZWN0aW9uOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0FjcXVpcmVWaWRl
b1N0cmVhbWluZ1NlcnZpY2UodWludCBuRGV2aWNlSW5kZXgsIHJlZiB1bG9uZyBwSGFuZGxlKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9BY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIEFjcXVpcmVWaWRlb1N0cmVhbWlu
Z1NlcnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciBfUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVy
YSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSBSZWxlYXNlVmlkZW9TdHJl
YW1pbmdTZXJ2aWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgX0dldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1l
cmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgSW50UHRyIHBGcmFtZUJ1
ZmZlciwgdWludCBuRnJhbWVCdWZmZXJTaXplLCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhl
YWRlcl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRW
aWRlb1N0cmVhbUZyYW1lQnVmZmVyIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXI7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9T
dHJlYW1UZXh0dXJlU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMsIHJl
ZiB1aW50IHBuV2lkdGgsIHJlZiB1aW50IHBuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVh
bVRleHR1cmVTaXplIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemU7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9TdHJlYW1UZXh0
dXJlRDNEMTEodWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3VyY2UsIHJlZiBJbnRQdHIgcHBE
M0QxMVNoYWRlclJlc291cmNlVmlldywgcmVmIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJf
dCBwRnJhbWVIZWFkZXIsIHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VmlkZW9T
dHJlYW1UZXh0dXJlRDNEMTEgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTE7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9TdHJl
YW1UZXh0dXJlR0wodWxvbmcgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5
cGUgZUZyYW1lVHlwZSwgcmVmIHVpbnQgcGdsVGV4dHVyZUlkLCByZWYgQ2FtZXJhVmlkZW9TdHJl
YW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVHTCBHZXRWaWRlb1N0cmVhbVRleHR1cmVHTDsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9SZWxl
YXNlVmlkZW9TdHJlYW1UZXh0dXJlR0wodWxvbmcgaFRyYWNrZWRDYW1lcmEsIHVpbnQgZ2xUZXh0
dXJlSWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1JlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTCBSZWxlYXNlVmlkZW9T
dHJlYW1UZXh0dXJlR0w7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXQorcHVibGljIHN0cnVjdCBJVlJBcHBsaWNhdGlvbnMKK3sKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0FkZEFwcGxpY2F0aW9uTWFuaWZlc3Qo
c3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5KTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9BZGRBcHBsaWNhdGlvbk1hbmlmZXN0IEFkZEFwcGxpY2F0aW9uTWFuaWZlc3Q7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX1JlbW92
ZUFwcGxpY2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0
aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCBSZW1vdmVBcHBsaWNhdGlvbk1h
bmlmZXN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FwcGxpY2F0
aW9uSW5zdGFsbGVkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzQXBwbGljYXRpb25JbnN0
YWxsZWQgSXNBcHBsaWNhdGlvbkluc3RhbGxlZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25Db3VudCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9u
Q291bnQgR2V0QXBwbGljYXRpb25Db3VudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5B
cHBsaWNhdGlvbkluZGV4LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEFwcEtleUJ1ZmZl
ciwgdWludCB1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25LZXlCeUlu
ZGV4IEdldEFwcGxpY2F0aW9uS2V5QnlJbmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCh1
aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVm
ZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkIEdldEFwcGxpY2F0
aW9uS2V5QnlQcm9jZXNzSWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFw
cGxpY2F0aW9uRXJyb3IgX0xhdW5jaEFwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXkpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0xhdW5jaEFwcGxpY2F0aW9uIExhdW5jaEFwcGxpY2F0aW9uOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9MYXVuY2hUZW1wbGF0ZUFwcGxp
Y2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSwgc3RyaW5nIHBjaE5ld0FwcEtleSwgW0lu
LCBPdXRdIEFwcE92ZXJyaWRlS2V5c190W10gcEtleXMsIHVpbnQgdW5LZXlzKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9M
YXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uIExhdW5jaFRlbXBsYXRlQXBwbGljYXRpb247CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEFw
cGxpY2F0aW9uRnJvbU1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSwgc3RyaW5nIHBjaEFyZ3Mp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0xhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlIExhdW5jaEFwcGxpY2F0aW9u
RnJvbU1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNh
dGlvbkVycm9yIF9MYXVuY2hEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBwY2hBcHBLZXkpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkgTGF1bmNoRGFzaGJvYXJkT3ZlcmxheTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FuY2VsQXBwbGljYXRpb25MYXVuY2go
c3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuY2VsQXBwbGljYXRpb25MYXVuY2ggQ2FuY2Vs
QXBwbGljYXRpb25MYXVuY2g7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFw
cGxpY2F0aW9uRXJyb3IgX0lkZW50aWZ5QXBwbGljYXRpb24odWludCB1blByb2Nlc3NJZCwgc3Ry
aW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSWRlbnRpZnlBcHBsaWNhdGlvbiBJZGVudGlmeUFwcGxp
Y2F0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNh
dGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblBy
b2Nlc3NJZCBHZXRBcHBsaWNhdGlvblByb2Nlc3NJZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgSW50UHRyIF9HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bShFVlJBcHBs
aWNhdGlvbkVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9t
RW51bSBHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyhzdHJpbmcg
cGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1aW50IHVuUHJvcGVydHlWYWx1
ZUJ1ZmZlckxlbiwgcmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvblByb3Bl
cnR5Qm9vbChzdHJpbmcgcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0
eSwgcmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRp
b25Qcm9wZXJ0eUJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2w7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0
cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCByZWYgRVZS
QXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb3BlcnR5
VWludDY0IEdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQ7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX1NldEFwcGxpY2F0aW9uQXV0b0xhdW5j
aChzdHJpbmcgcGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRBcHBsaWNh
dGlvbkF1dG9MYXVuY2ggU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2goc3RyaW5nIHBj
aEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoIEdldEFwcGxpY2F0aW9u
QXV0b0xhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUoc3RyaW5nIHBjaEFwcEtl
eSwgc3RyaW5nIHBjaE1pbWVUeXBlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JN
aW1lVHlwZSBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUo
c3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5
QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSBHZXRE
ZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMoc3RyaW5nIHBjaEFw
cEtleSwgc3RyaW5nIHBjaE1pbWVUeXBlc0J1ZmZlciwgdWludCB1bk1pbWVUeXBlc0J1ZmZlcik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMgR2V0QXBwbGljYXRpb25T
dXBwb3J0ZWRNaW1lVHlwZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBz
dHJpbmcgcGNoQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyLCB1aW50IHVuQXBwS2V5c1RoYXRTdXBw
b3J0QnVmZmVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlIEdl
dEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKHVpbnQgdW5IYW5k
bGUsIHN0cmluZyBwY2hBcmdzLCB1aW50IHVuQXJncyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25M
YXVuY2hBcmd1bWVudHMgR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHM7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0dldFN0YXJ0aW5nQXBw
bGljYXRpb24oc3RyaW5nIHBjaEFwcEtleUJ1ZmZlciwgdWludCB1bkFwcEtleUJ1ZmZlckxlbik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiBHZXRTdGFydGluZ0FwcGxpY2F0aW9uOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25T
dGF0ZSBfR2V0VHJhbnNpdGlvblN0YXRlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VHJhbnNpdGlvblN0YXRlIEdl
dFRyYW5zaXRpb25TdGF0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBw
bGljYXRpb25FcnJvciBfUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBj
aEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2sgUGVyZm9y
bUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2s7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEludFB0ciBfR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKEVW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlv
bnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0gR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0
YXRlTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9J
c1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNRdWl0VXNlclByb21wdFJlcXVl
c3RlZCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9MYXVuY2hJbnRlcm5hbFByb2Nlc3Moc3RyaW5n
IHBjaEJpbmFyeVBhdGgsIHN0cmluZyBwY2hBcmd1bWVudHMsIHN0cmluZyBwY2hXb3JraW5nRGly
ZWN0b3J5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9MYXVuY2hJbnRlcm5hbFByb2Nlc3MgTGF1bmNoSW50ZXJuYWxQcm9j
ZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRDdXJyZW50U2Nl
bmVQcm9jZXNzSWQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQgR2V0Q3VycmVu
dFNjZW5lUHJvY2Vzc0lkOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lCit7CisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIF9HZXRDYWxpYnJhdGlvblN0YXRl
KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0Q2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5QXJlYVNpemUocmVmIGZs
b2F0IHBTaXplWCwgcmVmIGZsb2F0IHBTaXplWik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UGxheUFyZWFTaXplIEdl
dFBsYXlBcmVhU2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0
UGxheUFyZWFSZWN0KHJlZiBIbWRRdWFkX3QgcmVjdCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UGxheUFyZWFSZWN0
IEdldFBsYXlBcmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
UmVsb2FkSW5mbygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1JlbG9hZEluZm8gUmVsb2FkSW5mbzsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9y
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9TZXRTY2VuZUNvbG9yIFNldFNjZW5lQ29sb3I7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEJvdW5kc0NvbG9yKHJlZiBIbWRDb2xvcl90IHBPdXRw
dXRDb2xvckFycmF5LCBpbnQgbk51bU91dHB1dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3Vu
ZHNGYWRlRGlzdGFuY2UsIHJlZiBIbWRDb2xvcl90IHBPdXRwdXRDYW1lcmFDb2xvcik7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0Qm91bmRzQ29sb3IgR2V0Qm91bmRzQ29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0FyZUJvdW5kc1Zpc2libGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9BcmVCb3VuZHNWaXNp
YmxlIEFyZUJvdW5kc1Zpc2libGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX0ZvcmNlQm91bmRzVmlzaWJsZShib29sIGJGb3JjZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRm9yY2VCb3VuZHNW
aXNpYmxlIEZvcmNlQm91bmRzVmlzaWJsZTsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUkNoYXBlcm9uZVNldHVwCit7CisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Db21taXRXb3JraW5nQ29weShFQ2hhcGVy
b25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21taXRXb3JraW5nQ29weSBDb21t
aXRXb3JraW5nQ29weTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmV2
ZXJ0V29ya2luZ0NvcHkoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXZlcnRXb3JraW5nQ29weSBSZXZlcnRXb3JraW5n
Q29weTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1Bs
YXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLCByZWYgZmxvYXQgcFNpemVaKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRXb3JraW5nUGxheUFyZWFTaXplIEdldFdvcmtpbmdQbGF5QXJlYVNpemU7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QocmVmIEht
ZFF1YWRfdCByZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRXb3JraW5nUGxheUFyZWFSZWN0IEdldFdvcmtpbmdQ
bGF5QXJlYVJlY3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdv
cmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBIbWRRdWFkX3RbXSBwUXVhZHNCdWZm
ZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNJbmZvIEdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4sIE91
dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCByZWYgdWludCBwdW5RdWFkc0NvdW50KTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyBHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5m
bzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1NlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlIEdldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFu
ZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdTdGFuZGlu
Z1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0
V29ya2luZ1BsYXlBcmVhU2l6ZShmbG9hdCBzaXplWCwgZmxvYXQgc2l6ZVopOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Nl
dFdvcmtpbmdQbGF5QXJlYVNpemUgU2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8o
W0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwgdWludCB1blF1YWRzQ291bnQpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIFNldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNJbmZvOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3Jr
aW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1NlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdv
cmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3Qg
cE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2lu
Z1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU3RhbmRpbmdaZXJv
UG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2
b2lkIF9SZWxvYWRGcm9tRGlzayhFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9SZWxvYWRGcm9tRGlzayBSZWxvYWRGcm9tRGlzazsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2Uo
cmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIEdldExpdmVTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8oW0luLCBPdXRdIGJ5
dGVbXSBwVGFnc0J1ZmZlciwgdWludCB1blRhZ0NvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlQ29sbGlzaW9uQm91
bmRzVGFnc0luZm8oW0luLCBPdXRdIGJ5dGVbXSBwVGFnc0J1ZmZlciwgcmVmIHVpbnQgcHVuVGFn
Q291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyBHZXRMaXZlQ29s
bGlzaW9uQm91bmRzVGFnc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJv
b2wgX1NldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBR
dWFkc0J1ZmZlciwgdWludCB1blF1YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdQaHlzaWNh
bEJvdW5kc0luZm8gU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbzsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91
dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCByZWYgdWludCBwdW5RdWFkc0NvdW50KTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm87
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0V4cG9ydExpdmVUb0J1ZmZl
cihTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBCdWZmZXIsIHJlZiB1aW50IHBuQnVmZmVyTGVu
Z3RoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9FeHBvcnRMaXZlVG9CdWZmZXIgRXhwb3J0TGl2ZVRvQnVmZmVyOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9JbXBvcnRGcm9tQnVmZmVyVG9Xb3Jr
aW5nKHN0cmluZyBwQnVmZmVyLCB1aW50IG5JbXBvcnRGbGFncyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSW1wb3J0RnJv
bUJ1ZmZlclRvV29ya2luZyBJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nOworCit9CisKK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ29tcG9z
aXRvcgoreworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0VHJhY2tpbmdT
cGFjZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRUcmFja2lu
Z1NwYWNlIFNldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIF9HZXRUcmFja2luZ1NwYWNlKCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
VHJhY2tpbmdTcGFjZSBHZXRUcmFja2luZ1NwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1dhaXRHZXRQb3NlcyhbSW4sIE91dF0gVHJhY2tl
ZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXksIHVpbnQgdW5SZW5kZXJQb3NlQXJyYXlD
b3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3RbXSBwR2FtZVBvc2VBcnJheSwgdWlu
dCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfV2FpdEdldFBvc2VzIFdhaXRHZXRQb3Nl
czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9H
ZXRMYXN0UG9zZXMoW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3NlX3RbXSBwUmVuZGVyUG9zZUFy
cmF5LCB1aW50IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIFtJbiwgT3V0XSBUcmFja2VkRGV2aWNl
UG9zZV90W10gcEdhbWVQb3NlQXJyYXksIHVpbnQgdW5HYW1lUG9zZUFycmF5Q291bnQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldExhc3RQb3NlcyBHZXRMYXN0UG9zZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5k
ZXgodWludCB1bkRldmljZUluZGV4LCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9z
ZSwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRM
YXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJ
bmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQ29tcG9zaXRvckVycm9y
IF9TdWJtaXQoRVZSRXllIGVFeWUsIHJlZiBUZXh0dXJlX3QgcFRleHR1cmUsIHJlZiBWUlRleHR1
cmVCb3VuZHNfdCBwQm91bmRzLCBFVlJTdWJtaXRGbGFncyBuU3VibWl0RmxhZ3MpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1N1Ym1pdCBTdWJtaXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0Ns
ZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUg
Q2xlYXJMYXN0U3VibWl0dGVkRnJhbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1Bvc3RQcmVzZW50SGFuZG9mZigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Bvc3RQcmVzZW50SGFuZG9mZiBQ
b3N0UHJlc2VudEhhbmRvZmY7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0dldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5nIHBUaW1pbmcsIHVpbnQg
dW5GcmFtZXNBZ28pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldEZyYW1lVGltaW5nIEdldEZyYW1lVGltaW5nOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRGcmFtZVRpbWluZ3MocmVmIENv
bXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCBuRnJhbWVzKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRG
cmFtZVRpbWluZ3MgR2V0RnJhbWVUaW1pbmdzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBmbG9hdCBfR2V0RnJhbWVUaW1lUmVtYWluaW5nKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1l
UmVtYWluaW5nIEdldEZyYW1lVGltZVJlbWFpbmluZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21wb3NpdG9yX0N1bXVsYXRp
dmVTdGF0cyBwU3RhdHMsIHVpbnQgblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEN1bXVs
YXRpdmVTdGF0cyBHZXRDdW11bGF0aXZlU3RhdHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0ZhZGVUb0NvbG9yKGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVkLCBmbG9h
dCBmR3JlZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91bmQpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0ZhZGVUb0NvbG9yIEZhZGVUb0NvbG9yOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBIbWRDb2xvcl90IF9HZXRDdXJyZW50RmFkZUNvbG9yKGJvb2wgYkJhY2tncm91bmQp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldEN1cnJlbnRGYWRlQ29sb3IgR2V0Q3VycmVudEZhZGVDb2xvcjsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRmFkZUdyaWQoZmxvYXQgZlNlY29uZHMs
IGJvb2wgYkZhZGVJbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRmFkZUdyaWQgRmFkZUdyaWQ7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRDdXJyZW50R3JpZEFscGhhKCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0Q3VycmVudEdyaWRBbHBoYSBHZXRDdXJyZW50R3JpZEFscGhhOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1NldFNreWJveE92ZXJyaWRlKFtJ
biwgT3V0XSBUZXh0dXJlX3RbXSBwVGV4dHVyZXMsIHVpbnQgdW5UZXh0dXJlQ291bnQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldFNreWJveE92ZXJyaWRlIFNldFNreWJveE92ZXJyaWRlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9DbGVhclNreWJveE92ZXJyaWRlKCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2xl
YXJTa3lib3hPdmVycmlkZSBDbGVhclNreWJveE92ZXJyaWRlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yQnJpbmdUb0Zyb250KCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29t
cG9zaXRvckJyaW5nVG9Gcm9udCBDb21wb3NpdG9yQnJpbmdUb0Zyb250OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yR29Ub0JhY2soKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9D
b21wb3NpdG9yR29Ub0JhY2sgQ29tcG9zaXRvckdvVG9CYWNrOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yUXVpdCgpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0b3JR
dWl0IENvbXBvc2l0b3JRdWl0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29s
IF9Jc0Z1bGxzY3JlZW4oKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0Z1bGxzY3JlZW4gSXNGdWxsc2NyZWVuOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRDdXJyZW50U2NlbmVGb2N1c1By
b2Nlc3MoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MgR2V0Q3VycmVudFNj
ZW5lRm9jdXNQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9H
ZXRMYXN0RnJhbWVSZW5kZXJlcigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExhc3RGcmFtZVJlbmRlcmVyIEdldExh
c3RGcmFtZVJlbmRlcmVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9D
YW5SZW5kZXJTY2VuZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0NhblJlbmRlclNjZW5lIENhblJlbmRlclNjZW5lOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TaG93TWlycm9yV2luZG93KCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2hvd01pcnJvcldpbmRvdyBTaG93TWlycm9yV2luZG93OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9IaWRlTWlycm9yV2luZG93KCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSGlk
ZU1pcnJvcldpbmRvdyBIaWRlTWlycm9yV2luZG93OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBib29sIF9Jc01pcnJvcldpbmRvd1Zpc2libGUoKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc01pcnJvcldp
bmRvd1Zpc2libGUgSXNNaXJyb3JXaW5kb3dWaXNpYmxlOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9Db21wb3NpdG9yRHVtcEltYWdlcygpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXBvc2l0
b3JEdW1wSW1hZ2VzIENvbXBvc2l0b3JEdW1wSW1hZ2VzOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9TaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyBTaG91bGRBcHBSZW5kZXJXaXRoTG93
UmVzb3VyY2VzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Gb3JjZUlu
dGVybGVhdmVkUmVwcm9qZWN0aW9uT24oYm9vbCBiT3ZlcnJpZGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZvcmNlSW50
ZXJsZWF2ZWRSZXByb2plY3Rpb25PbiBGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT247CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlUmVjb25uZWN0UHJvY2Vz
cygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0ZvcmNlUmVjb25uZWN0UHJvY2VzcyBGb3JjZVJlY29ubmVjdFByb2Nlc3M7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1N1c3BlbmRSZW5kZXJpbmco
Ym9vbCBiU3VzcGVuZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU3VzcGVuZFJlbmRlcmluZyBTdXNwZW5kUmVuZGVyaW5n
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dl
dE1pcnJvclRleHR1cmVEM0QxMShFVlJFeWUgZUV5ZSwgSW50UHRyIHBEM0QxMURldmljZU9yUmVz
b3VyY2UsIHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
TWlycm9yVGV4dHVyZUQzRDExIEdldE1pcnJvclRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMShJbnRQdHIg
cEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQz
RDExIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWlycm9yVGV4dHVyZUdMKEVWUkV5ZSBlRXll
LCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRNaXJyb3JUZXh0dXJlR0wgR2V0TWlycm9yVGV4dHVyZUdMOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9SZWxlYXNlU2hhcmVkR0xUZXh0dXJlKHVpbnQg
Z2xUZXh0dXJlSWQsIEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVh
c2VTaGFyZWRHTFRleHR1cmUgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQ
dHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9y
QWNjZXNzIExvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQdHIg
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9VbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JB
Y2Nlc3MgVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChT
eXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuSW5zdGFu
Y2VFeHRlbnNpb25zUmVxdWlyZWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVp
bnQgX0dldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJbnRQdHIgcFBoeXNpY2FsRGV2
aWNlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6
ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkIEdldFZ1bGthbkRl
dmljZUV4dGVuc2lvbnNSZXF1aXJlZDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUk92ZXJsYXkKK3sKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfRmluZE92ZXJsYXkoc3RyaW5nIHBjaE92
ZXJsYXlLZXksIHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRmluZE92ZXJsYXkg
RmluZE92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfQ3JlYXRlT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtleSwgc3RyaW5nIHBjaE92ZXJs
YXlGcmllbmRseU5hbWUsIHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ3JlYXRl
T3ZlcmxheSBDcmVhdGVPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX0Rlc3Ryb3lPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfRGVzdHJveU92ZXJsYXkgRGVzdHJveU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0SGlnaFF1YWxpdHlPdmVybGF5KHVsb25n
IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0SGlnaFF1YWxpdHlPdmVybGF5IFNldEhpZ2hR
dWFsaXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dl
dEhpZ2hRdWFsaXR5T3ZlcmxheSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEhpZ2hRdWFsaXR5T3ZlcmxheSBHZXRI
aWdoUXVhbGl0eU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldE92ZXJsYXlLZXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVyU2l6ZSwgcmVmIEVWUk92ZXJsYXlFcnJvciBw
RXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlLZXkgR2V0T3ZlcmxheUtleTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5
SGFuZGxlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLCB1aW50IHVuQnVmZmVy
U2l6ZSwgcmVmIEVWUk92ZXJsYXlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlOYW1l
IEdldE92ZXJsYXlOYW1lOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX0dldE92ZXJsYXlJbWFnZURhdGEodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQ
dHIgcHZCdWZmZXIsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgdWludCBwdW5XaWR0aCwgcmVmIHVp
bnQgcHVuSGVpZ2h0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW1hZ2VEYXRhIEdldE92ZXJsYXlJbWFn
ZURhdGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0T3Zlcmxh
eUVycm9yTmFtZUZyb21FbnVtKEVWUk92ZXJsYXlFcnJvciBlcnJvcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheUVycm9yTmFtZUZyb21FbnVtIEdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5UmVu
ZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blBJRCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
T3ZlcmxheVJlbmRlcmluZ1BpZCBTZXRPdmVybGF5UmVuZGVyaW5nUGlkOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCBHZXRPdmVybGF5
UmVuZGVyaW5nUGlkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5
RXJyb3IgX1NldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5Rmxh
Z3MgZU92ZXJsYXlGbGFnLCBib29sIGJFbmFibGVkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5RmxhZyBT
ZXRPdmVybGF5RmxhZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zlcmxh
eUVycm9yIF9HZXRPdmVybGF5RmxhZyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZs
YWdzIGVPdmVybGF5RmxhZywgcmVmIGJvb2wgcGJFbmFibGVkKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5
RmxhZyBHZXRPdmVybGF5RmxhZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9TZXRPdmVybGF5Q29sb3IodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBmbG9h
dCBmUmVkLCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5Q29s
b3IgU2V0T3ZlcmxheUNvbG9yOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX0dldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBm
bG9hdCBwZlJlZCwgcmVmIGZsb2F0IHBmR3JlZW4sIHJlZiBmbG9hdCBwZkJsdWUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldE92ZXJsYXlDb2xvciBHZXRPdmVybGF5Q29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUFscGhhKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgZmxvYXQgZkFscGhhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5QWxwaGEgU2V0T3Zlcmxh
eUFscGhhOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X0dldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZkFscGhh
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRPdmVybGF5QWxwaGEgR2V0T3ZlcmxheUFscGhhOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXhlbEFzcGVj
dCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
T3ZlcmxheVRleGVsQXNwZWN0IFNldE92ZXJsYXlUZXhlbEFzcGVjdDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4ZWxBc3BlY3Qo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheVRleGVsQXNwZWN0IEdldE92ZXJsYXlUZXhlbEFzcGVjdDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5U29ydE9yZGVy
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blNvcnRPcmRlcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheVNvcnRPcmRlciBTZXRPdmVybGF5U29ydE9yZGVyOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcgdWxP
dmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5Tb3J0T3JkZXIpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlT
b3J0T3JkZXIgR2V0T3ZlcmxheVNvcnRPcmRlcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5V2lk
dGhJbk1ldGVycyBTZXRPdmVybGF5V2lkdGhJbk1ldGVyczsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZldpZHRoSW5NZXRlcnMpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dE92ZXJsYXlXaWR0aEluTWV0ZXJzIEdldE92ZXJsYXlXaWR0aEluTWV0ZXJzOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlBdXRvQ3Vy
dmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWlu
RGlzdGFuY2VJbk1ldGVycywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Nl
dE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMgU2V0T3ZlcmxheUF1dG9DdXJ2
ZURpc3RhbmNlUmFuZ2VJbk1ldGVyczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycywg
cmVmIGZsb2F0IHBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUF1dG9D
dXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5n
ZUluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1NldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVD
b2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlIFNldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3Bh
Y2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgRUNvbG9yU3BhY2UgcGVUZXh0dXJlQ29sb3JT
cGFjZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlIEdldE92ZXJsYXlUZXh0
dXJlQ29sb3JTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zlcmxh
eUVycm9yIF9TZXRPdmVybGF5VGV4dHVyZUJvdW5kcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJl
ZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92
ZXJsYXlUZXh0dXJlQm91bmRzIFNldE92ZXJsYXlUZXh0dXJlQm91bmRzOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQm91
bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSVGV4dHVyZUJvdW5kc190IHBPdmVybGF5
VGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMgR2V0T3Zlcmxh
eVRleHR1cmVCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBy
ZWYgVlJPdmVybGF5VHJhbnNmb3JtVHlwZSBwZVRyYW5zZm9ybVR5cGUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92
ZXJsYXlUcmFuc2Zvcm1UeXBlIEdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUcmFuc2Zvcm1B
YnNvbHV0ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVU
cmFja2luZ09yaWdpbiwgcmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVy
bGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUgU2V0T3Zl
cmxheVRyYW5zZm9ybUFic29sdXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIHJlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBwZVRyYWNraW5nT3JpZ2luLCBy
ZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBHZXRPdmVybGF5VHJhbnNmb3JtQWJz
b2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHVpbnQgdW5UcmFja2VkRGV2aWNlLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tl
ZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRyYW5zZm9ybVRy
YWNrZWREZXZpY2VSZWxhdGl2ZSBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0
aXZlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCByZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJh
Y2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9y
bVRyYWNrZWREZXZpY2VSZWxhdGl2ZSBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJl
bGF0aXZlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgdWludCB1bkRldmljZUluZGV4LCBzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQgU2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZp
Y2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5EZXZpY2VJbmRl
eCwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHVpbnQgdW5Db21wb25lbnROYW1lU2l6ZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQgR2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd092ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9TaG93T3ZlcmxheSBTaG93T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9IaWRlT3ZlcmxheSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0hpZGVPdmVybGF5IEhpZGVPdmVybGF5OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc092ZXJsYXlWaXNpYmxlKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfSXNPdmVybGF5VmlzaWJsZSBJc092ZXJsYXlWaXNpYmxlOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldFRyYW5zZm9y
bUZvck92ZXJsYXlDb29yZGluYXRlcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5P
dmVybGF5LCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFu
c2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXMgR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5h
dGVzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Qb2xsTmV4dE92ZXJs
YXlFdmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50
IHVuY2JWUkV2ZW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9Qb2xsTmV4dE92ZXJsYXlFdmVudCBQb2xsTmV4dE92ZXJs
YXlFdmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9HZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJPdmVy
bGF5SW5wdXRNZXRob2QgcGVJbnB1dE1ldGhvZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUlucHV0TWV0
aG9kIEdldE92ZXJsYXlJbnB1dE1ldGhvZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5
SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92
ZXJsYXlJbnB1dE1ldGhvZCBTZXRPdmVybGF5SW5wdXRNZXRob2Q7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheU1vdXNlU2NhbGUodWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRPdmVybGF5TW91c2VTY2FsZSBHZXRPdmVybGF5TW91c2VTY2FsZTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5TW91c2VT
Y2FsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2Nh
bGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1NldE92ZXJsYXlNb3VzZVNjYWxlIFNldE92ZXJsYXlNb3VzZVNjYWxlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Db21wdXRlT3ZlcmxheUludGVy
c2VjdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25Q
YXJhbXNfdCBwUGFyYW1zLCByZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1
bHRzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9Db21wdXRlT3ZlcmxheUludGVyc2VjdGlvbiBDb21wdXRlT3ZlcmxheUlu
dGVyc2VjdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSGFuZGxl
Q29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCB1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IYW5kbGVDb250cm9sbGVy
T3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0
aW9uQXNNb3VzZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNIb3Zl
clRhcmdldE92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0hvdmVyVGFy
Z2V0T3ZlcmxheSBJc0hvdmVyVGFyZ2V0T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdWxvbmcgX0dldEdhbWVwYWRGb2N1c092ZXJsYXkoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRHYW1l
cGFkRm9jdXNPdmVybGF5IEdldEdhbWVwYWRGb2N1c092ZXJsYXk7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1
bG9uZyB1bE5ld0ZvY3VzT3ZlcmxheSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSBT
ZXRHYW1lcGFkRm9jdXNPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBlRGly
ZWN0aW9uLCB1bG9uZyB1bEZyb20sIHVsb25nIHVsVG8pOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlOZWln
aGJvciBTZXRPdmVybGF5TmVpZ2hib3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk92ZXJsYXlFcnJvciBfTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoRU92ZXJsYXlEaXJl
Y3Rpb24gZURpcmVjdGlvbiwgdWxvbmcgdWxGcm9tKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Nb3ZlR2FtZXBhZEZvY3Vz
VG9OZWlnaGJvciBNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcjsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBUZXh0dXJlX3QgcFRleHR1cmUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJs
YXlUZXh0dXJlIFNldE92ZXJsYXlUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0NsZWFyT3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5
SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9DbGVhck92ZXJsYXlUZXh0dXJlIENsZWFyT3ZlcmxheVRleHR1cmU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zl
cmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBwdkJ1ZmZlciwgdWludCB1bldp
ZHRoLCB1aW50IHVuSGVpZ2h0LCB1aW50IHVuRGVwdGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlSYXcg
U2V0T3ZlcmxheVJhdzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zlcmxh
eUVycm9yIF9TZXRPdmVybGF5RnJvbUZpbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBzdHJpbmcg
cGNoRmlsZVBhdGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGcm9tRmlsZSBTZXRPdmVybGF5RnJvbUZp
bGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0
T3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgSW50UHRyIHBOYXRpdmVU
ZXh0dXJlSGFuZGxlLCBJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYsIHJlZiB1aW50IHBXaWR0aCwg
cmVmIHVpbnQgcEhlaWdodCwgcmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCwgcmVmIEVUZXh0dXJlVHlw
ZSBwQVBJVHlwZSwgcmVmIEVDb2xvclNwYWNlIHBDb2xvclNwYWNlLCByZWYgVlJUZXh0dXJlQm91
bmRzX3QgcFRleHR1cmVCb3VuZHMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlUZXh0dXJlIEdldE92ZXJs
YXlUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50
UHRyIHBOYXRpdmVUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxlYXNlTmF0aXZlT3ZlcmxheUhh
bmRsZSBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VGV4dHVyZVNpemUodWxvbmcgdWxP
dmVybGF5SGFuZGxlLCByZWYgdWludCBwV2lkdGgsIHJlZiB1aW50IHBIZWlnaHQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldE92ZXJsYXlUZXh0dXJlU2l6ZSBHZXRPdmVybGF5VGV4dHVyZVNpemU7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfQ3JlYXRlRGFzaGJvYXJkT3Zl
cmxheShzdHJpbmcgcGNoT3ZlcmxheUtleSwgc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5hbWUs
IHJlZiB1bG9uZyBwTWFpbkhhbmRsZSwgcmVmIHVsb25nIHBUaHVtYm5haWxIYW5kbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0NyZWF0ZURhc2hib2FyZE92ZXJsYXkgQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNEYXNoYm9hcmRWaXNpYmxlKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfSXNEYXNoYm9hcmRWaXNpYmxlIElzRGFzaGJvYXJkVmlzaWJsZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVsb25n
IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IElzQWN0
aXZlRGFzaGJvYXJkT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9TZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgdWludCB1blByb2Nlc3NJZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0RGFzaGJvYXJkT3Zlcmxh
eVNjZW5lUHJvY2VzcyBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldERhc2hib2FyZE92ZXJs
YXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwdW5Qcm9jZXNz
SWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MgR2V0RGFzaGJvYXJk
T3ZlcmxheVNjZW5lUHJvY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfU2hvd0Rhc2hib2FyZChzdHJpbmcgcGNoT3ZlcmxheVRvU2hvdyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2hvd0Rh
c2hib2FyZCBTaG93RGFzaGJvYXJkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJpbWFyeURhc2hi
b2FyZERldmljZSBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZChpbnQgZUlucHV0TW9k
ZSwgaW50IGVMaW5lSW5wdXRNb2RlLCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFy
TWF4LCBzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcg
dVVzZXJWYWx1ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfU2hvd0tleWJvYXJkIFNob3dLZXlib2FyZDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TaG93S2V5Ym9hcmRGb3JP
dmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgaW50IGVJbnB1dE1vZGUsIGludCBlTGluZUlu
cHV0TW9kZSwgc3RyaW5nIHBjaERlc2NyaXB0aW9uLCB1aW50IHVuQ2hhck1heCwgc3RyaW5nIHBj
aEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVsb25nIHVVc2VyVmFsdWUpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX1Nob3dLZXlib2FyZEZvck92ZXJsYXkgU2hvd0tleWJvYXJkRm9yT3ZlcmxheTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0S2V5Ym9hcmRUZXh0KFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGV4dCwgdWludCBjY2hUZXh0KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRL
ZXlib2FyZFRleHQgR2V0S2V5Ym9hcmRUZXh0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9IaWRlS2V5Ym9hcmQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IaWRlS2V5Ym9hcmQgSGlkZUtleWJv
YXJkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRLZXlib2FyZFRy
YW5zZm9ybUFic29sdXRlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwg
cmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0S2V5Ym9hcmRUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRLZXlib2FyZFRyYW5zZm9y
bUFic29sdXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRLZXli
b2FyZFBvc2l0aW9uRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEhtZFJlY3QyX3Qg
YXZvaWRSZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9TZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSBTZXRLZXli
b2FyZFBvc2l0aW9uRm9yT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QgcE1hc2tQ
cmltaXRpdmVzLCB1aW50IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQgdW5QcmltaXRpdmVTaXpl
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9TZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayBTZXRPdmVybGF5SW50ZXJzZWN0
aW9uTWFzazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9HZXRPdmVybGF5RmxhZ3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgdWludCBwRmxhZ3Mp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldE92ZXJsYXlGbGFncyBHZXRPdmVybGF5RmxhZ3M7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBfU2hvd01lc3NhZ2VP
dmVybGF5KHN0cmluZyBwY2hUZXh0LCBzdHJpbmcgcGNoQ2FwdGlvbiwgc3RyaW5nIHBjaEJ1dHRv
bjBUZXh0LCBzdHJpbmcgcGNoQnV0dG9uMVRleHQsIHN0cmluZyBwY2hCdXR0b24yVGV4dCwgc3Ry
aW5nIHBjaEJ1dHRvbjNUZXh0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93TWVzc2FnZU92ZXJsYXkgU2hvd01lc3Nh
Z2VPdmVybGF5OworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0K
K3B1YmxpYyBzdHJ1Y3QgSVZSUmVuZGVyTW9kZWxzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkUmVuZGVyTW9kZWxfQXN5bmMoc3RyaW5n
IHBjaFJlbmRlck1vZGVsTmFtZSwgcmVmIEludFB0ciBwcFJlbmRlck1vZGVsKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9M
b2FkUmVuZGVyTW9kZWxfQXN5bmMgTG9hZFJlbmRlck1vZGVsX0FzeW5jOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJN
b2RlbCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfRnJlZVJlbmRlck1vZGVsIEZyZWVSZW5kZXJNb2RlbDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSUmVuZGVyTW9kZWxFcnJvciBfTG9hZFRleHR1cmVf
QXN5bmMoaW50IHRleHR1cmVJZCwgcmVmIEludFB0ciBwcFRleHR1cmUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvYWRU
ZXh0dXJlX0FzeW5jIExvYWRUZXh0dXJlX0FzeW5jOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9GcmVlVGV4dHVyZShJbnRQdHIgcFRleHR1cmUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZyZWVU
ZXh0dXJlIEZyZWVUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJS
ZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsIElu
dFB0ciBwRDNEMTFEZXZpY2UsIHJlZiBJbnRQdHIgcHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
TG9hZFRleHR1cmVEM0QxMV9Bc3luYyBMb2FkVGV4dHVyZUQzRDExX0FzeW5jOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkSW50b1RleHR1
cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLCBJbnRQdHIgcERzdFRleHR1cmUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0xvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GcmVlVGV4dHVyZUQzRDExKElu
dFB0ciBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0ZyZWVUZXh0dXJlRDNEMTEgRnJlZVRleHR1
cmVEM0QxMTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVy
TW9kZWxOYW1lKHVpbnQgdW5SZW5kZXJNb2RlbEluZGV4LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWls
ZGVyIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludCB1blJlbmRlck1vZGVsTmFtZUxlbik7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0UmVuZGVyTW9kZWxOYW1lIEdldFJlbmRlck1vZGVsTmFtZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVyTW9kZWxDb3VudCgpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dFJlbmRlck1vZGVsQ291bnQgR2V0UmVuZGVyTW9kZWxDb3VudDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50Q291bnQoc3RyaW5nIHBjaFJlbmRlck1v
ZGVsTmFtZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50Q291bnQgR2V0Q29tcG9uZW50Q291bnQ7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldENvbXBvbmVudE5hbWUoc3Ry
aW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBvbmVudEluZGV4LCBTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudE5hbWUsIHVpbnQgdW5Db21wb25lbnROYW1lTGVu
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRDb21wb25lbnROYW1lIEdldENvbXBvbmVudE5hbWU7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRDb21wb25lbnRCdXR0b25NYXNrKHN0cmlu
ZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRDb21wb25lbnRCdXR0b25NYXNrIEdldENvbXBvbmVudEJ1dHRvbk1hc2s7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShz
dHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSwgU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQgdW5D
b21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbXBvbmVudFJlbmRlck1v
ZGVsTmFtZSBHZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldENvbXBvbmVudFN0YXRlKHN0cmluZyBwY2hSZW5kZXJNb2Rl
bE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCByZWYgVlJDb250cm9sbGVyU3RhdGVfdCBw
Q29udHJvbGxlclN0YXRlLCByZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBw
U3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90IHBDb21wb25lbnRTdGF0ZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0Q29tcG9uZW50U3RhdGUgR2V0Q29tcG9uZW50U3RhdGU7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbmRlck1vZGVsSGFzQ29tcG9uZW50KHN0cmlu
ZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9S
ZW5kZXJNb2RlbEhhc0NvbXBvbmVudCBSZW5kZXJNb2RlbEhhc0NvbXBvbmVudDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwo
c3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hU
aHVtYm5haWxVUkwsIHVpbnQgdW5UaHVtYm5haWxVUkxMZW4sIHJlZiBFVlJSZW5kZXJNb2RlbEVy
cm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMIEdldFJlbmRl
ck1vZGVsVGh1bWJuYWlsVVJMOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50
IF9HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBT
eXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaE9yaWdpbmFsUGF0aCwgdWludCB1bk9yaWdpbmFs
UGF0aExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVu
ZGVyTW9kZWxPcmlnaW5hbFBhdGggR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGg7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVG
cm9tRW51bShFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJNb2Rl
bEVycm9yTmFtZUZyb21FbnVtIEdldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW07CisKK30K
KworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJ
VlJOb3RpZmljYXRpb25zCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJOb3Rp
ZmljYXRpb25FcnJvciBfQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwg
dWxvbmcgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgc3RyaW5nIHBjaFRl
eHQsIEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCByZWYgTm90aWZpY2F0aW9uQml0bWFwX3Qg
cEltYWdlLCByZWYgdWludCBwTm90aWZpY2F0aW9uSWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NyZWF0ZU5vdGlmaWNh
dGlvbiBDcmVhdGVOb3RpZmljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk5vdGlmaWNhdGlvbkVycm9yIF9SZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRp
b25JZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfUmVtb3ZlTm90aWZpY2F0aW9uIFJlbW92ZU5vdGlmaWNhdGlvbjsKKwor
fQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0
IElWUlNldHRpbmdzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dl
dFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0gR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9t
RW51bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfU3luYyhib29sIGJG
b3JjZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU3luYyBTeW5jOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRCb29sKHN0cmluZyBwY2hT
ZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCByZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRCb29sIFNldEJvb2w7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJp
bmcgcGNoU2V0dGluZ3NLZXksIGludCBuVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1NldEludDMyIFNldEludDMyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9TZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRp
bmdzS2V5LCBmbG9hdCBmbFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRGbG9hdCBTZXRGbG9hdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfU2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IHN0cmluZyBwY2hWYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0U3RyaW5nIFNldFN0cmluZzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9v
bCBfR2V0Qm9vbChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYg
RVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCb29sIEdldEJvb2w7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGludCBfR2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rp
b24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0SW50MzIgR2V0SW50MzI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGZsb2F0IF9HZXRGbG9hdChzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdz
S2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGbG9hdCBHZXRG
bG9hdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0U3RyaW5nKHN0
cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5WYWx1ZUxlbiwgcmVmIEVWUlNldHRpbmdzRXJyb3Ig
cGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nIEdldFN0cmluZzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVtb3ZlU2VjdGlvbihzdHJpbmcgcGNoU2VjdGlvbiwgcmVm
IEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3ZlU2VjdGlvbiBSZW1vdmVT
ZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZW1vdmVLZXlJ
blNlY3Rpb24oc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgcmVmIEVW
UlNldHRpbmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVtb3ZlS2V5SW5TZWN0aW9uIFJlbW92
ZUtleUluU2VjdGlvbjsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldCitwdWJsaWMgc3RydWN0IElWUlNjcmVlbnNob3RzCit7CisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1JlcXVlc3RTY3JlZW5zaG90KHJlZiB1aW50
IHBPdXRTY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNo
UHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoVlJGaWxlbmFtZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVxdWVzdFNj
cmVlbnNob3QgUmVxdWVzdFNjcmVlbnNob3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlNjcmVlbnNob3RFcnJvciBfSG9va1NjcmVlbnNob3QoW0luLCBPdXRdIEVWUlNjcmVl
bnNob3RUeXBlW10gcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hvb2tT
Y3JlZW5zaG90IEhvb2tTY3JlZW5zaG90OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJTY3JlZW5zaG90VHlwZSBfR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSh1aW50IHNjcmVl
bnNob3RIYW5kbGUsIHJlZiBFVlJTY3JlZW5zaG90RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRT
Y3JlZW5zaG90UHJvcGVydHlUeXBlIEdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVu
YW1lKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVz
IGZpbGVuYW1lVHlwZSwgU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hGaWxlbmFtZSwgdWlu
dCBjY2hGaWxlbmFtZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lIEdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1Vw
ZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyh1aW50IHNjcmVlbnNob3RIYW5kbGUsIGZsb2F0IGZsUHJv
Z3Jlc3MpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1VwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyBVcGRhdGVTY3JlZW5zaG90
UHJvZ3Jlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RF
cnJvciBfVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUs
IHN0cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9UYWtlU3RlcmVvU2NyZWVuc2hvdCBUYWtlU3RlcmVvU2NyZWVuc2hvdDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9yIF9TdWJtaXRTY3JlZW5zaG90
KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgc3RyaW5nIHBj
aFNvdXJjZVByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5hbWUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1N1Ym1pdFNjcmVlbnNob3QgU3VibWl0U2NyZWVuc2hvdDsKKworfQorCitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUlJlc291cmNlcwor
eworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfTG9hZFNoYXJlZFJlc291cmNl
KHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsIHN0cmluZyBwY2hCdWZmZXIsIHVpbnQgdW5CdWZmZXJM
ZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0xvYWRTaGFyZWRSZXNvdXJjZSBMb2FkU2hhcmVkUmVzb3VyY2U7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFJlc291cmNlRnVsbFBhdGgoc3Ry
aW5nIHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgc3Ry
aW5nIHBjaFBhdGhCdWZmZXIsIHVpbnQgdW5CdWZmZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlc291cmNl
RnVsbFBhdGggR2V0UmVzb3VyY2VGdWxsUGF0aDsKKworfQorCisKK3B1YmxpYyBjbGFzcyBDVlJT
eXN0ZW0KK3sKKyAgICAgICBJVlJTeXN0ZW0gRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJT
eXN0ZW0oSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
ID0gKElWUlN5c3RlbSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJ
VlJTeXN0ZW0pKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0UmVjb21tZW5kZWRS
ZW5kZXJUYXJnZXRTaXplKHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCisgICAg
ICAgeworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQg
PSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6
ZShyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1k
TWF0cml4NDRfdCBHZXRQcm9qZWN0aW9uTWF0cml4KEVWUkV5ZSBlRXllLGZsb2F0IGZOZWFyWixm
bG9hdCBmRmFyWikKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDQ0X3QgcmVzdWx0
ID0gRm5UYWJsZS5HZXRQcm9qZWN0aW9uTWF0cml4KGVFeWUsZk5lYXJaLGZGYXJaKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0
UHJvamVjdGlvblJhdyhFVlJFeWUgZUV5ZSxyZWYgZmxvYXQgcGZMZWZ0LHJlZiBmbG9hdCBwZlJp
Z2h0LHJlZiBmbG9hdCBwZlRvcCxyZWYgZmxvYXQgcGZCb3R0b20pCisgICAgICAgeworICAgICAg
ICAgICAgICBwZkxlZnQgPSAwOworICAgICAgICAgICAgICBwZlJpZ2h0ID0gMDsKKyAgICAgICAg
ICAgICAgcGZUb3AgPSAwOworICAgICAgICAgICAgICBwZkJvdHRvbSA9IDA7CisgICAgICAgICAg
ICAgIEZuVGFibGUuR2V0UHJvamVjdGlvblJhdyhlRXllLHJlZiBwZkxlZnQscmVmIHBmUmlnaHQs
cmVmIHBmVG9wLHJlZiBwZkJvdHRvbSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENv
bXB1dGVEaXN0b3J0aW9uKEVWUkV5ZSBlRXllLGZsb2F0IGZVLGZsb2F0IGZWLHJlZiBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXNfdCBwRGlzdG9ydGlvbkNvb3JkaW5hdGVzKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1dGVEaXN0b3J0aW9uKGVFeWUsZlUs
ZlYscmVmIHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRFeWVUb0hlYWRU
cmFuc2Zvcm0oRVZSRXllIGVFeWUpCisgICAgICAgeworICAgICAgICAgICAgICBIbWRNYXRyaXgz
NF90IHJlc3VsdCA9IEZuVGFibGUuR2V0RXllVG9IZWFkVHJhbnNmb3JtKGVFeWUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRU
aW1lU2luY2VMYXN0VnN5bmMocmVmIGZsb2F0IHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLHJlZiB1
bG9uZyBwdWxGcmFtZUNvdW50ZXIpCisgICAgICAgeworICAgICAgICAgICAgICBwZlNlY29uZHNT
aW5jZUxhc3RWc3luYyA9IDA7CisgICAgICAgICAgICAgIHB1bEZyYW1lQ291bnRlciA9IDA7Cisg
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRUaW1lU2luY2VMYXN0VnN5bmMo
cmVmIHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLHJlZiBwdWxGcmFtZUNvdW50ZXIpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgaW50IEdldEQz
RDlBZGFwdGVySW5kZXgoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50
IHBuQWRhcHRlckluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcG5BZGFwdGVySW5kZXgg
PSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0
ZXJJbmRleCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzRGlzcGxheU9uRGVza3Rv
cCgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNEaXNw
bGF5T25EZXNrdG9wKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9u
RGVza3RvcCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5T
ZXREaXNwbGF5VmlzaWJpbGl0eShiSXNWaXNpYmxlT25EZXNrdG9wKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0RGV2aWNlVG9B
YnNvbHV0ZVRyYWNraW5nUG9zZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLGZsb2F0
IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdyxUcmFja2VkRGV2aWNlUG9zZV90IFtd
IHBUcmFja2VkRGV2aWNlUG9zZUFycmF5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKGVPcmlnaW4sZlByZWRpY3RlZFNlY29u
ZHNUb1Bob3RvbnNGcm9tTm93LHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCh1aW50KSBwVHJhY2tl
ZERldmljZVBvc2VBcnJheS5MZW5ndGgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBS
ZXNldFNlYXRlZFplcm9Qb3NlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVz
ZXRTZWF0ZWRaZXJvUG9zZSgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRf
dCBHZXRTZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCisgICAg
ICAgeworICAgICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0U2Vh
dGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhtZE1hdHJpeDM0X3Qg
R2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBGblRhYmxlLkdldFJhd1plcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFNvcnRlZFRyYWNrZWRE
ZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xh
c3MsdWludCBbXSBwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSx1aW50IHVuUmVsYXRpdmVUb1Ry
YWNrZWREZXZpY2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MoZVRyYWNrZWREZXZp
Y2VDbGFzcyxwdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheSwodWludCkgcHVuVHJhY2tlZERldmlj
ZUluZGV4QXJyYXkuTGVuZ3RoLHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFRGV2aWNl
QWN0aXZpdHlMZXZlbCBHZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCh1aW50IHVuRGV2aWNl
SWQpCisgICAgICAgeworICAgICAgICAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZlbCByZXN1bHQg
PSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVuRGV2aWNlSWQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBB
cHBseVRyYW5zZm9ybShyZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0UG9zZSxyZWYgVHJh
Y2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UscmVmIEhtZE1hdHJpeDM0X3QgcFRy
YW5zZm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQXBwbHlUcmFuc2Zvcm0o
cmVmIHBPdXRwdXRQb3NlLHJlZiBwVHJhY2tlZERldmljZVBvc2UscmVmIHBUcmFuc2Zvcm0pOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250
cm9sbGVyUm9sZShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlSW5k
ZXhGb3JDb250cm9sbGVyUm9sZSh1bkRldmljZVR5cGUpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVRyYWNrZWRDb250cm9sbGVyUm9sZSBH
ZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1aW50IHVuRGV2aWNlSW5kZXgp
CisgICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHJlc3VsdCA9
IEZuVGFibGUuR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJ
bmRleCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVHJhY2tlZERldmljZUNsYXNzIEdldFRyYWNrZWREZXZpY2VDbGFzcyh1aW50IHVuRGV2
aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tlZERldmljZUNsYXNzIHJl
c3VsdCA9IEZuVGFibGUuR2V0VHJhY2tlZERldmljZUNsYXNzKHVuRGV2aWNlSW5kZXgpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJ
c1RyYWNrZWREZXZpY2VDb25uZWN0ZWQodWludCB1bkRldmljZUluZGV4KQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzVHJhY2tlZERldmljZUNvbm5lY3Rl
ZCh1bkRldmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIGJvb2wgR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLkdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJl
ZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgZmxvYXQgR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmlj
ZUluZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IHJlc3VsdCA9IEZuVGFi
bGUuR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBw
RXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgaW50IEdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRl
eCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBw
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJ
bnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJvcik7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1
bG9uZyBHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFibGUuR2V0VWlu
dDY0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEht
ZE1hdHJpeDM0X3QgR2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmlj
ZUluZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0
ID0gRm5UYWJsZS5HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4
LHByb3AscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLFN5c3RlbS5UZXh0LlN0
cmluZ0J1aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVUcmFja2VkUHJvcGVy
dHlFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxw
Y2hWYWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0UHJvcEVycm9yTmFtZUZy
b21FbnVtKEVUcmFja2VkUHJvcGVydHlFcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldFByb3BFcnJvck5hbWVGcm9tRW51bShlcnJv
cik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBQb2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50
X3QgcEV2ZW50LHVpbnQgdW5jYlZSRXZlbnQpCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuUG9sbE5leHRFdmVudChyZWYgcEV2ZW50LHVuY2JWUkV2ZW50KTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJv
b2wgUG9sbE5leHRFdmVudFdpdGhQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
cmVmIFZSRXZlbnRfdCBwRXZlbnQsdWludCB1bmNiVlJFdmVudCxyZWYgVHJhY2tlZERldmljZVBv
c2VfdCBwVHJhY2tlZERldmljZVBvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuUG9sbE5leHRFdmVudFdpdGhQb3NlKGVPcmlnaW4scmVmIHBFdmVudCx1
bmNiVlJFdmVudCxyZWYgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRFdmVudFR5cGVOYW1l
RnJvbUVudW0oRVZSRXZlbnRUeXBlIGVUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50
UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKGVUeXBlKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBIaWRkZW5BcmVhTWVzaF90IEdldEhpZGRlbkFyZWFNZXNoKEVW
UkV5ZSBlRXllLEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEhpZGRlbkFyZWFNZXNoX3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRIaWRkZW5BcmVhTWVzaChl
RXllLHR5cGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKy8vIFRo
aXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHdvcmthcm91bmQgdGhlIGZhY3QgdGhhdCBWUkNvbnRy
b2xsZXJTdGF0ZV90IHdhcworLy8gb3JpZ2luYWxseSBtaXMtY29tcGlsZWQgd2l0aCB0aGUgd3Jv
bmcgcGFja2luZyBmb3IgTGludXggYW5kIE9TWC4KKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVBhY2tlZCh1aW50IHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBwQ29udHJvbGxlclN0YXRlLHVp
bnQgdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3RhdGVVbmlvbgorICAg
ICAgIHsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJs
aWMgSVZSU3lzdGVtLl9HZXRDb250cm9sbGVyU3RhdGUgcEdldENvbnRyb2xsZXJTdGF0ZTsKKyAg
ICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENv
bnRyb2xsZXJTdGF0ZVBhY2tlZCBwR2V0Q29udHJvbGxlclN0YXRlUGFja2VkOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRDb250cm9sbGVyU3RhdGUodWludCB1bkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHVpbnQg
dW5Db250cm9sbGVyU3RhdGVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKChTeXN0
ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELk1h
Y09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3lzdGVtLkVudmlyb25tZW50
Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5Vbml4KSkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29udHJvbGxlclN0YXRlVW5pb24gdTsK
KyAgICAgICAgICAgICAgICAgICAgIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHN0YXRlX3Bh
Y2tlZCA9IG5ldyBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCgpOworICAgICAgICAgICAgICAg
ICAgICAgdS5wR2V0Q29udHJvbGxlclN0YXRlUGFja2VkID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgIHUucEdldENvbnRyb2xsZXJTdGF0ZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRl
OworICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWRfcmVzdWx0ID0gdS5wR2V0Q29udHJv
bGxlclN0YXRlUGFja2VkKHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBzdGF0ZV9wYWNrZWQs
KHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwuU2l6ZU9mKHR5cGVv
ZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpKTsKKworICAgICAgICAgICAgICAgICAgICAg
c3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7CisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlKHVuQ29udHJvbGxl
ckRldmljZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhpcyBpcyBhIHRl
cnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxlclN0YXRl
X3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBwYWNraW5n
IGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBf
R2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4g
ZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0
ZV90X1BhY2tlZCBwQ29udHJvbGxlclN0YXRlLHVpbnQgdW5Db250cm9sbGVyU3RhdGVTaXplLHJl
ZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLkV4cGxpY2l0KV0KKyAgICAgICBzdHJ1Y3QgR2V0Q29udHJvbGxl
clN0YXRlV2l0aFBvc2VVbmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0
KDApXQorICAgICAgICAgICAgICBwdWJsaWMgSVZSU3lzdGVtLl9HZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZSBwR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7CisgICAgICAgICAgICAgIFtGaWVs
ZE9mZnNldCgwKV0KKyAgICAgICAgICAgICAgcHVibGljIF9HZXRDb250cm9sbGVyU3RhdGVXaXRo
UG9zZVBhY2tlZCBwR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VQYWNrZWQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luIGVPcmlnaW4sdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCxyZWYgVlJD
b250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHVpbnQgdW5Db250cm9sbGVyU3RhdGVT
aXplLHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGlmICgoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9y
bSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5NYWNPU1gpIHx8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBs
YXRmb3JtSUQuVW5peCkpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIEdl
dENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlVW5pb24gdTsKKyAgICAgICAgICAgICAgICAgICAgIFZS
Q29udHJvbGxlclN0YXRlX3RfUGFja2VkIHN0YXRlX3BhY2tlZCA9IG5ldyBWUkNvbnRyb2xsZXJT
dGF0ZV90X1BhY2tlZCgpOworICAgICAgICAgICAgICAgICAgICAgdS5wR2V0Q29udHJvbGxlclN0
YXRlV2l0aFBvc2VQYWNrZWQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgdS5wR2V0Q29u
dHJvbGxlclN0YXRlV2l0aFBvc2UgPSBGblRhYmxlLkdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
OworICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWRfcmVzdWx0ID0gdS5wR2V0Q29udHJv
bGxlclN0YXRlV2l0aFBvc2VQYWNrZWQoZU9yaWdpbix1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCxy
ZWYgc3RhdGVfcGFja2VkLCh1aW50KVN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJz
aGFsLlNpemVPZih0eXBlb2YoVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQpKSxyZWYgcFRyYWNr
ZWREZXZpY2VQb3NlKTsKKworICAgICAgICAgICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFj
ayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFj
a2VkX3Jlc3VsdDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoZU9yaWdpbix1bkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCxyZWYgcENvbnRyb2xsZXJTdGF0ZSx1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVm
IHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFRyaWdnZXJIYXB0aWNQdWxzZSh1aW50IHVuQ29udHJv
bGxlckRldmljZUluZGV4LHVpbnQgdW5BeGlzSWQsY2hhciB1c0R1cmF0aW9uTWljcm9TZWMpCisg
ICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlRyaWdnZXJIYXB0aWNQdWxzZSh1bkNvbnRy
b2xsZXJEZXZpY2VJbmRleCx1bkF4aXNJZCx1c0R1cmF0aW9uTWljcm9TZWMpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgc3RyaW5nIEdldEJ1dHRvbklkTmFtZUZyb21FbnVtKEVWUkJ1dHRvbklk
IGVCdXR0b25JZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBGblRh
YmxlLkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKGVCdXR0b25JZCk7CisgICAgICAgICAgICAgIHJl
dHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgc3RyaW5nIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bShFVlJDb250cm9s
bGVyQXhpc1R5cGUgZUF4aXNUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJl
c3VsdCA9IEZuVGFibGUuR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKGVBeGlzVHlw
ZSk7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYXB0dXJlSW5wdXRGb2N1cygpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ2FwdHVyZUlucHV0Rm9j
dXMoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgUmVsZWFzZUlucHV0Rm9jdXMoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5U
YWJsZS5SZWxlYXNlSW5wdXRGb2N1cygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJ
c0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVy
UHJvY2VzcygpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdWludCBEcml2ZXJEZWJ1Z1JlcXVlc3QodWludCB1bkRldmljZUluZGV4LHN0cmlu
ZyBwY2hSZXF1ZXN0LHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlcix1aW50IHVuUmVzcG9uc2VCdWZm
ZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkRy
aXZlckRlYnVnUmVxdWVzdCh1bkRldmljZUluZGV4LHBjaFJlcXVlc3QscGNoUmVzcG9uc2VCdWZm
ZXIsdW5SZXNwb25zZUJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSRmlybXdhcmVFcnJvciBQZXJmb3JtRmlybXdhcmVV
cGRhdGUodWludCB1bkRldmljZUluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSRmly
bXdhcmVFcnJvciByZXN1bHQgPSBGblRhYmxlLlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSh1bkRldmlj
ZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRm5UYWJsZS5BY2tub3dsZWRnZVF1aXRfRXhpdGluZygpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCgpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCk7CisgICAgICAg
fQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJFeHRlbmRlZERpc3BsYXkKK3sKKyAgICAgICBJVlJF
eHRlbmRlZERpc3BsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJFeHRlbmRlZERpc3Bs
YXkoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0g
KElWUkV4dGVuZGVkRGlzcGxheSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5
cGVvZihJVlJFeHRlbmRlZERpc3BsYXkpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
R2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLHJlZiBpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgs
cmVmIHVpbnQgcG5IZWlnaHQpCisgICAgICAgeworICAgICAgICAgICAgICBwblggPSAwOworICAg
ICAgICAgICAgICBwblkgPSAwOworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAg
ICAgICAgcG5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldFdpbmRvd0JvdW5k
cyhyZWYgcG5YLHJlZiBwblkscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoRVZSRXllIGVFeWUscmVmIHVp
bnQgcG5YLHJlZiB1aW50IHBuWSxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcG5YID0gMDsKKyAgICAgICAgICAgICAgcG5ZID0gMDsK
KyAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAgICAgICAgIHBuSGVpZ2h0ID0gMDsK
KyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRFeWVPdXRwdXRWaWV3cG9ydChlRXllLHJlZiBwblgs
cmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBHZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LHJlZiBpbnQg
cG5BZGFwdGVyT3V0cHV0SW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBwbkFkYXB0ZXJJ
bmRleCA9IDA7CisgICAgICAgICAgICAgIHBuQWRhcHRlck91dHB1dEluZGV4ID0gMDsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5HZXREWEdJT3V0cHV0SW5mbyhyZWYgcG5BZGFwdGVySW5kZXgscmVm
IHBuQWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENW
UlRyYWNrZWRDYW1lcmEKK3sKKyAgICAgICBJVlJUcmFja2VkQ2FtZXJhIEZuVGFibGU7CisgICAg
ICAgaW50ZXJuYWwgQ1ZSVHJhY2tlZENhbWVyYShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSVHJhY2tlZENhbWVyYSlNYXJzaGFsLlB0clRv
U3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJUcmFja2VkQ2FtZXJhKSk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJh
Y2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIElu
dFB0ciByZXN1bHQgPSBGblRhYmxlLkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKGVDYW1lcmFF
cnJvcik7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1
bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEhhc0Nh
bWVyYSh1aW50IG5EZXZpY2VJbmRleCxyZWYgYm9vbCBwSGFzQ2FtZXJhKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcEhhc0NhbWVyYSA9IGZhbHNlOworICAgICAgICAgICAgICBFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5IYXNDYW1lcmEobkRldmljZUluZGV4LHJlZiBw
SGFzQ2FtZXJhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFGcmFtZVNpemUodWludCBu
RGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiB1aW50
IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQscmVmIHVpbnQgcG5GcmFtZUJ1ZmZlclNpemUpCisg
ICAgICAgeworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWln
aHQgPSAwOworICAgICAgICAgICAgICBwbkZyYW1lQnVmZmVyU2l6ZSA9IDA7CisgICAgICAgICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldENhbWVyYUZyYW1l
U2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQscmVm
IHBuRnJhbWVCdWZmZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFJbnRyaW5z
aWNzKHVpbnQgbkRldmljZUluZGV4LEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlw
ZSxyZWYgSG1kVmVjdG9yMl90IHBGb2NhbExlbmd0aCxyZWYgSG1kVmVjdG9yMl90IHBDZW50ZXIp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRDYW1lcmFJbnRyaW5zaWNzKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBw
Rm9jYWxMZW5ndGgscmVmIHBDZW50ZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYVBy
b2plY3Rpb24odWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLGZsb2F0IGZsWk5lYXIsZmxvYXQgZmxaRmFyLHJlZiBIbWRNYXRyaXg0NF90IHBQcm9q
ZWN0aW9uKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhUHJvamVjdGlvbihuRGV2aWNlSW5kZXgsZUZyYW1lVHlw
ZSxmbFpOZWFyLGZsWkZhcixyZWYgcFByb2plY3Rpb24pOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEFj
cXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWludCBuRGV2aWNlSW5kZXgscmVmIHVsb25nIHBI
YW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBwSGFuZGxlID0gMDsKKyAgICAgICAgICAg
ICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQWNxdWlyZVZpZGVvU3Ry
ZWFtaW5nU2VydmljZShuRGV2aWNlSW5kZXgscmVmIHBIYW5kbGUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVy
cm9yIFJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UodWxvbmcgaFRyYWNrZWRDYW1lcmEpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKGhUcmFja2VkQ2FtZXJhKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbUZyYW1lQnVmZmVyKHVsb25nIGhUcmFja2VkQ2Ft
ZXJhLEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxJbnRQdHIgcEZyYW1lQnVm
ZmVyLHVpbnQgbkZyYW1lQnVmZmVyU2l6ZSxyZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRl
cl90IHBGcmFtZUhlYWRlcix1aW50IG5GcmFtZUhlYWRlclNpemUpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRWaWRlb1N0
cmVhbUZyYW1lQnVmZmVyKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscEZyYW1lQnVmZmVyLG5G
cmFtZUJ1ZmZlclNpemUscmVmIHBGcmFtZUhlYWRlcixuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4
LEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgVlJUZXh0dXJlQm91bmRz
X3QgcFRleHR1cmVCb3VuZHMscmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdo
dCA9IDA7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVm
IHBUZXh0dXJlQm91bmRzLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJh
RXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEodWxvbmcgaFRyYWNrZWRDYW1lcmEsRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRDNEMTFEZXZpY2VPclJl
c291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYgQ2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlcix1aW50IG5GcmFtZUhlYWRlclNpemUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMShoVHJhY2tlZENhbWVyYSxlRnJhbWVU
eXBlLHBEM0QxMURldmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcs
cmVmIHBGcmFtZUhlYWRlcixuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBH
ZXRWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcGdsVGV4dHVyZUlkLHJlZiBDYW1lcmFW
aWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBnbFRleHR1cmVJZCA9IDA7CisgICAgICAgICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFt
VGV4dHVyZUdMKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUscmVmIHBnbFRleHR1cmVJZCxyZWYg
cEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVh
c2VWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSx1aW50IGdsVGV4dHVy
ZUlkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMKGhUcmFja2VkQ2FtZXJhLGds
VGV4dHVyZUlkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cit9CisK
KworcHVibGljIGNsYXNzIENWUkFwcGxpY2F0aW9ucworeworICAgICAgIElWUkFwcGxpY2F0aW9u
cyBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkFwcGxpY2F0aW9ucyhJbnRQdHIgcEludGVy
ZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQXBwbGljYXRpb25z
KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkFwcGxpY2F0aW9u
cykpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBBZGRBcHBs
aWNhdGlvbk1hbmlmZXN0KHN0cmluZyBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgsYm9v
bCBiVGVtcG9yYXJ5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciByZXN1bHQgPSBGblRhYmxlLkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QocGNoQXBwbGljYXRpb25N
YW5pZmVzdEZ1bGxQYXRoLGJUZW1wb3JhcnkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBSZW1vdmVBcHBs
aWNhdGlvbk1hbmlmZXN0KHN0cmluZyBwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBh
dGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgYm9vbCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAg
eworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNBcHBsaWNhdGlvbkluc3Rh
bGxlZChwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvbkNvdW50KCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbkNvdW50KCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJB
cHBsaWNhdGlvbkVycm9yIEdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCh1aW50IHVuQXBwbGljYXRp
b25JbmRleCxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEFwcEtleUJ1ZmZlcix1aW50IHVu
QXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25F
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCh1bkFwcGxpY2F0
aW9uSW5kZXgscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9u
RXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCh1aW50IHVuUHJvY2Vzc0lkLHN0cmlu
ZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1ZmZlckxlbikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNh
dGlvbktleUJ5UHJvY2Vzc0lkKHVuUHJvY2Vzc0lkLHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtleUJ1
ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEFwcGxpY2F0aW9uKHN0cmluZyBwY2hB
cHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuTGF1bmNoQXBwbGljYXRpb24ocGNoQXBwS2V5KTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbihzdHJpbmcgcGNoVGVtcGxhdGVBcHBLZXksc3Ry
aW5nIHBjaE5ld0FwcEtleSxBcHBPdmVycmlkZUtleXNfdCBbXSBwS2V5cykKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hU
ZW1wbGF0ZUFwcGxpY2F0aW9uKHBjaFRlbXBsYXRlQXBwS2V5LHBjaE5ld0FwcEtleSxwS2V5cywo
dWludCkgcEtleXMuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb25G
cm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcmdzKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5j
aEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFyZ3MpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRp
b25FcnJvciBMYXVuY2hEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1
bmNoRGFzaGJvYXJkT3ZlcmxheShwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5j
aChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQg
PSBGblRhYmxlLkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHBjaEFwcEtleSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlv
bkVycm9yIElkZW50aWZ5QXBwbGljYXRpb24odWludCB1blByb2Nlc3NJZCxzdHJpbmcgcGNoQXBw
S2V5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQg
PSBGblRhYmxlLklkZW50aWZ5QXBwbGljYXRpb24odW5Qcm9jZXNzSWQscGNoQXBwS2V5KTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0QXBwbGljYXRpb25Qcm9jZXNzSWQoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb2Nlc3NJZChw
Y2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgc3RyaW5nIEdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxp
Y2F0aW9uRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0
ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bShlcnJvcik7CisgICAg
ICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmlu
ZyBwY2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLHVpbnQgdW5Qcm9wZXJ0eVZhbHVl
QnVmZmVyTGVuLHJlZiBFVlJBcHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAg
ICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0
cmluZyhwY2hBcHBLZXksZVByb3BlcnR5LHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdW5Qcm9wZXJ0
eVZhbHVlQnVmZmVyTGVuLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJv
b2woc3RyaW5nIHBjaEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxyZWYg
RVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9v
bCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvcGVydHlCb29sKHBjaEFwcEtleSxl
UHJvcGVydHkscmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdWxvbmcgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChz
dHJpbmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJB
cHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1bG9uZyBy
ZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQocGNoQXBwS2V5LGVQ
cm9wZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFNldEFwcGxpY2F0aW9uQXV0
b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5LGJvb2wgYkF1dG9MYXVuY2gpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0QXBwbGlj
YXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSxiQXV0b0xhdW5jaCk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldEFwcGxpY2F0aW9u
QXV0b0xhdW5jaChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9v
bCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChwY2hBcHBLZXkpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
QXBwbGljYXRpb25FcnJvciBTZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcg
cGNoQXBwS2V5LHN0cmluZyBwY2hNaW1lVHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVW
UkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXREZWZhdWx0QXBwbGljYXRpb25G
b3JNaW1lVHlwZShwY2hBcHBLZXkscGNoTWltZVR5cGUpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXREZWZhdWx0QXBwbGljYXRp
b25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFwcEtleUJ1ZmZlcix1
aW50IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHBjaE1pbWVUeXBl
LHBjaEFwcEtleUJ1ZmZlcix1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldEFwcGxpY2F0aW9uU3Vw
cG9ydGVkTWltZVR5cGVzKHN0cmluZyBwY2hBcHBLZXksc3RyaW5nIHBjaE1pbWVUeXBlc0J1ZmZl
cix1aW50IHVuTWltZVR5cGVzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uU3VwcG9ydGVkTWltZVR5cGVzKHBjaEFwcEtl
eSxwY2hNaW1lVHlwZXNCdWZmZXIsdW5NaW1lVHlwZXNCdWZmZXIpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlv
bnNUaGF0U3VwcG9ydE1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5
c1RoYXRTdXBwb3J0QnVmZmVyLHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpCisgICAg
ICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25z
VGhhdFN1cHBvcnRNaW1lVHlwZShwY2hNaW1lVHlwZSxwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZm
ZXIsdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvbkxhdW5jaEFy
Z3VtZW50cyh1aW50IHVuSGFuZGxlLHN0cmluZyBwY2hBcmdzLHVpbnQgdW5BcmdzKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uTGF1
bmNoQXJndW1lbnRzKHVuSGFuZGxlLHBjaEFyZ3MsdW5BcmdzKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
R2V0U3RhcnRpbmdBcHBsaWNhdGlvbihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBL
ZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0U3RhcnRpbmdBcHBsaWNhdGlvbihwY2hBcHBLZXlCdWZmZXIs
dW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgR2V0VHJhbnNp
dGlvblN0YXRlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNp
dGlvblN0YXRlIHJlc3VsdCA9IEZuVGFibGUuR2V0VHJhbnNpdGlvblN0YXRlKCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNh
dGlvbkVycm9yIFBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrKHN0cmluZyBwY2hBcHBL
ZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9
IEZuVGFibGUuUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2socGNoQXBwS2V5KTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmlu
ZyBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRp
b25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIg
cmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVu
dW0oc3RhdGUpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2ko
cmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNRdWl0VXNlclByb21wdFJl
cXVlc3RlZCgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
SXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hJbnRl
cm5hbFByb2Nlc3Moc3RyaW5nIHBjaEJpbmFyeVBhdGgsc3RyaW5nIHBjaEFyZ3VtZW50cyxzdHJp
bmcgcGNoV29ya2luZ0RpcmVjdG9yeSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hJbnRlcm5hbFByb2Nlc3MocGNoQmlu
YXJ5UGF0aCxwY2hBcmd1bWVudHMscGNoV29ya2luZ0RpcmVjdG9yeSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEN1cnJlbnRT
Y2VuZVByb2Nlc3NJZCgpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJDaGFwZXJvbmUKK3sKKyAg
ICAgICBJVlJDaGFwZXJvbmUgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJDaGFwZXJvbmUo
SW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElW
UkNoYXBlcm9uZSlNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJD
aGFwZXJvbmUpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIENoYXBlcm9uZUNhbGlicmF0aW9u
U3RhdGUgR2V0Q2FsaWJyYXRpb25TdGF0ZSgpCisgICAgICAgeworICAgICAgICAgICAgICBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FsaWJyYXRpb25TdGF0
ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgYm9vbCBHZXRQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVa
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsKKyAgICAgICAgICAgICAgcFNp
emVaID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFBsYXlBcmVh
U2l6ZShyZWYgcFNpemVYLHJlZiBwU2l6ZVopOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRQbGF5QXJlYVJlY3QocmVmIEhtZFF1
YWRfdCByZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LkdldFBsYXlBcmVhUmVjdChyZWYgcmVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlbG9hZEluZm8oKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5SZWxvYWRJbmZvKCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIFNldFNjZW5lQ29sb3IoSG1kQ29sb3JfdCBjb2xvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuU2V0U2NlbmVDb2xvcihjb2xvcik7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIEdldEJvdW5kc0NvbG9yKHJlZiBIbWRDb2xvcl90IHBPdXRwdXRDb2xvckFycmF5
LGludCBuTnVtT3V0cHV0Q29sb3JzLGZsb2F0IGZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNl
LHJlZiBIbWRDb2xvcl90IHBPdXRwdXRDYW1lcmFDb2xvcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuR2V0Qm91bmRzQ29sb3IocmVmIHBPdXRwdXRDb2xvckFycmF5LG5OdW1PdXRw
dXRDb2xvcnMsZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVmIHBPdXRwdXRDYW1lcmFD
b2xvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEFyZUJvdW5kc1Zpc2libGUoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkFyZUJvdW5kc1Zp
c2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgRm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUJvdW5kc1Zpc2libGUoYkZvcmNlKTsKKyAgICAgICB9
Cit9CisKKworcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZVNldHVwCit7CisgICAgICAgSVZSQ2hh
cGVyb25lU2V0dXAgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJDaGFwZXJvbmVTZXR1cChJ
bnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
Q2hhcGVyb25lU2V0dXApTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2Yo
SVZSQ2hhcGVyb25lU2V0dXApKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQ29tbWl0
V29ya2luZ0NvcHkoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Db21taXRXb3JraW5nQ29weShjb25m
aWdGaWxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgUmV2ZXJ0V29ya2luZ0NvcHkoKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5SZXZlcnRXb3JraW5nQ29weSgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9v
bCBHZXRXb3JraW5nUGxheUFyZWFTaXplKHJlZiBmbG9hdCBwU2l6ZVgscmVmIGZsb2F0IHBTaXpl
WikKKyAgICAgICB7CisgICAgICAgICAgICAgIHBTaXplWCA9IDA7CisgICAgICAgICAgICAgIHBT
aXplWiA9IDA7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5n
UGxheUFyZWFTaXplKHJlZiBwU2l6ZVgscmVmIHBTaXplWik7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtpbmdQbGF5QXJl
YVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5QXJlYVJlY3QocmVmIHJlY3QpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRX
b3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7CisgICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5m
byhudWxsLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcFF1YWRzQnVmZmVyPSBu
ZXcgSG1kUXVhZF90W3B1blF1YWRzQ291bnRdOworICAgICAgICAgICAgICByZXN1bHQgPSBGblRh
YmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKHBRdWFkc0J1ZmZlcixyZWYgcHVuUXVh
ZHNDb3VudCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10g
cFF1YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50
ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldExpdmVDb2xsaXNp
b25Cb3VuZHNJbmZvKG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVh
ZHNCdWZmZXI9IG5ldyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJl
c3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJl
ZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0V29y
a2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBtYXRTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LkdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBtYXRTdGFu
ZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nUGxheUFyZWFTaXpl
KGZsb2F0IHNpemVYLGZsb2F0IHNpemVaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5TZXRXb3JraW5nUGxheUFyZWFTaXplKHNpemVYLHNpemVaKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oSG1kUXVhZF90IFtdIHBR
dWFkc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3Ro
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcE1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldFdvcmtp
bmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwTWF0U2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtp
bmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcE1h
dFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShy
ZWYgcE1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyB2b2lkIFJlbG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZp
Z0ZpbGUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbG9hZEZyb21EaXNrKGNv
bmZpZ0ZpbGUpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRMaXZlU2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9u
Qm91bmRzVGFnc0luZm8oYnl0ZSBbXSBwVGFnc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKHBUYWdzQnVmZmVy
LCh1aW50KSBwVGFnc0J1ZmZlci5MZW5ndGgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9v
bCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ob3V0IGJ5dGUgW10gcFRhZ3NCdWZmZXIp
CisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blRhZ0NvdW50ID0gMDsKKyAgICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5m
byhudWxsLHJlZiBwdW5UYWdDb3VudCk7CisgICAgICAgICAgICAgIHBUYWdzQnVmZmVyPSBuZXcg
Ynl0ZVtwdW5UYWdDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2
ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKHBUYWdzQnVmZmVyLHJlZiBwdW5UYWdDb3VudCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IFNldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZlcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5TZXRXb3JraW5n
UGh5c2ljYWxCb3VuZHNJbmZvKHBRdWFkc0J1ZmZlciwodWludCkgcFF1YWRzQnVmZmVyLkxlbmd0
aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBib29sIEdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVhZHNC
dWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAwOwor
ICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZVBoeXNpY2FsQm91bmRz
SW5mbyhudWxsLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcFF1YWRzQnVmZmVy
PSBuZXcgSG1kUXVhZF90W3B1blF1YWRzQ291bnRdOworICAgICAgICAgICAgICByZXN1bHQgPSBG
blRhYmxlLkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFk
c0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgRXhwb3J0TGl2ZVRvQnVmZmVyKFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cEJ1ZmZlcixyZWYgdWludCBwbkJ1ZmZlckxlbmd0aCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHBuQnVmZmVyTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxl
LkV4cG9ydExpdmVUb0J1ZmZlcihwQnVmZmVyLHJlZiBwbkJ1ZmZlckxlbmd0aCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEltcG9y
dEZyb21CdWZmZXJUb1dvcmtpbmcoc3RyaW5nIHBCdWZmZXIsdWludCBuSW1wb3J0RmxhZ3MpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSW1wb3J0RnJvbUJ1
ZmZlclRvV29ya2luZyhwQnVmZmVyLG5JbXBvcnRGbGFncyk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJDb21wb3NpdG9yCit7
CisgICAgICAgSVZSQ29tcG9zaXRvciBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNvbXBv
c2l0b3IoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
ID0gKElWUkNvbXBvc2l0b3IpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBl
b2YoSVZSQ29tcG9zaXRvcikpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRUcmFj
a2luZ1NwYWNlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLlNldFRyYWNraW5nU3BhY2UoZU9yaWdpbik7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBHZXRUcmFja2luZ1NwYWNlKCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHJlc3VsdCA9
IEZuVGFibGUuR2V0VHJhY2tpbmdTcGFjZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIFdhaXRHZXRQb3Nl
cyhUcmFja2VkRGV2aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBv
c2VfdCBbXSBwR2FtZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBv
c2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLldhaXRHZXRQb3NlcyhwUmVuZGVyUG9zZUFycmF5
LCh1aW50KSBwUmVuZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdh
bWVQb3NlQXJyYXkuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZXMoVHJhY2tl
ZERldmljZVBvc2VfdCBbXSBwUmVuZGVyUG9zZUFycmF5LFRyYWNrZWREZXZpY2VQb3NlX3QgW10g
cEdhbWVQb3NlQXJyYXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJDb21wb3NpdG9yRXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRMYXN0UG9zZXMocFJlbmRlclBvc2VBcnJheSwodWludCkg
cFJlbmRlclBvc2VBcnJheS5MZW5ndGgscEdhbWVQb3NlQXJyYXksKHVpbnQpIHBHYW1lUG9zZUFy
cmF5Lkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNl
SW5kZXgodWludCB1bkRldmljZUluZGV4LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQ
b3NlLHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRHYW1lUG9zZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldExhc3RQ
b3NlRm9yVHJhY2tlZERldmljZUluZGV4KHVuRGV2aWNlSW5kZXgscmVmIHBPdXRwdXRQb3NlLHJl
ZiBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdChFVlJFeWUgZUV5ZSxy
ZWYgVGV4dHVyZV90IHBUZXh0dXJlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwQm91bmRzLEVWUlN1
Ym1pdEZsYWdzIG5TdWJtaXRGbGFncykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBv
c2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLlN1Ym1pdChlRXllLHJlZiBwVGV4dHVyZSxyZWYg
cEJvdW5kcyxuU3VibWl0RmxhZ3MpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSgpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFBvc3RQcmVzZW50SGFuZG9mZigpCisgICAgICAg
eworICAgICAgICAgICAgICBGblRhYmxlLlBvc3RQcmVzZW50SGFuZG9mZigpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRGcmFtZVRpbWluZyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRp
bWluZyBwVGltaW5nLHVpbnQgdW5GcmFtZXNBZ28pCisgICAgICAgeworICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuR2V0RnJhbWVUaW1pbmcocmVmIHBUaW1pbmcsdW5GcmFtZXNB
Z28pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdWludCBHZXRGcmFtZVRpbWluZ3MocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWlu
Zyx1aW50IG5GcmFtZXMpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZu
VGFibGUuR2V0RnJhbWVUaW1pbmdzKHJlZiBwVGltaW5nLG5GcmFtZXMpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgZmxvYXQgR2V0RnJhbWVU
aW1lUmVtYWluaW5nKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IHJlc3VsdCA9IEZu
VGFibGUuR2V0RnJhbWVUaW1lUmVtYWluaW5nKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldEN1bXVsYXRpdmVTdGF0cyhyZWYg
Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgcFN0YXRzLHVpbnQgblN0YXRzU2l6ZUluQnl0ZXMp
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkdldEN1bXVsYXRpdmVTdGF0cyhyZWYg
cFN0YXRzLG5TdGF0c1NpemVJbkJ5dGVzKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
RmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsZmxvYXQgZlJlZCxmbG9hdCBmR3JlZW4sZmxvYXQg
ZkJsdWUsZmxvYXQgZkFscGhhLGJvb2wgYkJhY2tncm91bmQpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlLkZhZGVUb0NvbG9yKGZTZWNvbmRzLGZSZWQsZkdyZWVuLGZCbHVlLGZBbHBo
YSxiQmFja2dyb3VuZCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRDb2xvcl90IEdldEN1
cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEhtZENvbG9yX3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50RmFkZUNvbG9yKGJCYWNrZ3Jv
dW5kKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgRmFkZUdyaWQoZmxvYXQgZlNlY29uZHMsYm9vbCBiRmFkZUluKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRm5UYWJsZS5GYWRlR3JpZChmU2Vjb25kcyxiRmFkZUluKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIGZsb2F0IEdldEN1cnJlbnRHcmlkQWxwaGEoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50R3JpZEFscGhh
KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJDb21wb3NpdG9yRXJyb3IgU2V0U2t5Ym94T3ZlcnJpZGUoVGV4dHVyZV90IFtdIHBUZXh0
dXJlcykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQg
PSBGblRhYmxlLlNldFNreWJveE92ZXJyaWRlKHBUZXh0dXJlcywodWludCkgcFRleHR1cmVzLkxl
bmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIENsZWFyU2t5Ym94T3ZlcnJpZGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5DbGVhclNreWJveE92ZXJyaWRlKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIENvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5U
YWJsZS5Db21wb3NpdG9yQnJpbmdUb0Zyb250KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIENvbXBvc2l0b3JHb1RvQmFjaygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LkNvbXBvc2l0b3JHb1RvQmFjaygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDb21w
b3NpdG9yUXVpdCgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JR
dWl0KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzRnVsbHNjcmVlbigpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNGdWxsc2NyZWVuKCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1
aW50IEdldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcygpCisgICAgICAgeworICAgICAgICAgICAg
ICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50
IEdldExhc3RGcmFtZVJlbmRlcmVyKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVz
dWx0ID0gRm5UYWJsZS5HZXRMYXN0RnJhbWVSZW5kZXJlcigpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDYW5SZW5kZXJTY2VuZSgp
CisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ2FuUmVuZGVy
U2NlbmUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgU2hvd01pcnJvcldpbmRvdygpCisgICAgICAgeworICAgICAgICAgICAgICBG
blRhYmxlLlNob3dNaXJyb3JXaW5kb3coKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
SGlkZU1pcnJvcldpbmRvdygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkhpZGVN
aXJyb3JXaW5kb3coKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNNaXJyb3JXaW5k
b3dWaXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJs
ZS5Jc01pcnJvcldpbmRvd1Zpc2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgQ29tcG9zaXRvckR1bXBJbWFnZXMoKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Db21wb3NpdG9yRHVtcEltYWdlcygpOworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2Vz
KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5TaG91bGRB
cHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rp
b25Pbihib29sIGJPdmVycmlkZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRm9y
Y2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uKGJPdmVycmlkZSk7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB2b2lkIEZvcmNlUmVjb25uZWN0UHJvY2VzcygpCisgICAgICAgeworICAgICAgICAg
ICAgICBGblRhYmxlLkZvcmNlUmVjb25uZWN0UHJvY2VzcygpOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBTdXNwZW5kUmVuZGVyaW5nKGJvb2wgYlN1c3BlbmQpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLlN1c3BlbmRSZW5kZXJpbmcoYlN1c3BlbmQpOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldE1pcnJvclRleHR1cmVEM0QxMShF
VlJFeWUgZUV5ZSxJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgSW50UHRyIHBwRDNE
MTFTaGFkZXJSZXNvdXJjZVZpZXcpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJDb21wb3Np
dG9yRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRNaXJyb3JUZXh0dXJlRDNEMTEoZUV5ZSxwRDNE
MTFEZXZpY2VPclJlc291cmNlLHJlZiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVs
ZWFzZU1pcnJvclRleHR1cmVEM0QxMShJbnRQdHIgcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDEx
KHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJD
b21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKEVWUkV5ZSBlRXllLHJlZiB1aW50IHBn
bFRleHR1cmVJZCxJbnRQdHIgcGdsU2hhcmVkVGV4dHVyZUhhbmRsZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHBnbFRleHR1cmVJZCA9IDA7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVHTChlRXllLHJlZiBwZ2xUZXh0
dXJlSWQscGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFJlbGVhc2VTaGFyZWRHTFRleHR1cmUo
dWludCBnbFRleHR1cmVJZCxJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VTaGFyZWRHTFRleHR1
cmUoZ2xUZXh0dXJlSWQsZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgTG9ja0dMU2hhcmVkVGV4
dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZS5Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKGdsU2hhcmVk
VGV4dHVyZUhhbmRsZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFVubG9ja0dMU2hh
cmVkVGV4dHVyZUZvckFjY2VzcyhJbnRQdHIgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5VbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3Mo
Z2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVxdWlyZWQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChw
Y2hWYWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWly
ZWQoSW50UHRyIHBQaHlzaWNhbERldmljZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZh
bHVlLHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1
bHQgPSBGblRhYmxlLkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChwUGh5c2ljYWxE
ZXZpY2UscGNoVmFsdWUsdW5CdWZmZXJTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUk92ZXJsYXkKK3sKKyAgICAgICBJ
VlJPdmVybGF5IEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZST3ZlcmxheShJbnRQdHIgcElu
dGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZST3ZlcmxheSlN
YXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJPdmVybGF5KSk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgRmluZE92ZXJsYXkoc3RyaW5n
IHBjaE92ZXJsYXlLZXkscmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcE92ZXJsYXlIYW5kbGUgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5GaW5kT3ZlcmxheShwY2hPdmVybGF5S2V5LHJlZiBwT3Zlcmxh
eUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgQ3JlYXRlT3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtl
eSxzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBwT3ZlcmxheUhhbmRsZSA9IDA7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkNyZWF0ZU92ZXJsYXkocGNoT3Zl
cmxheUtleSxwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiBwT3ZlcmxheUhhbmRsZSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuRGVzdHJveU92
ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRIaWdoUXVhbGl0eU92ZXJs
YXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0SGlnaFF1YWxpdHlPdmVybGF5KHVsT3Zlcmxh
eUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB1bG9uZyBHZXRIaWdoUXVhbGl0eU92ZXJsYXkoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRIaWdoUXVhbGl0eU92ZXJsYXkoKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVZST3ZlcmxheUVycm9yIHBFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5S2V5KHVsT3ZlcmxheUhhbmRsZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBFcnJvcik7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1
aW50IEdldE92ZXJsYXlOYW1lKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJp
bmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3Ig
cEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdl
dE92ZXJsYXlOYW1lKHVsT3ZlcmxheUhhbmRsZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUscmVmIHBF
cnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5CdWZmZXJTaXplLHJlZiB1aW50IHB1bldpZHRo
LHJlZiB1aW50IHB1bkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1bldpZHRoID0g
MDsKKyAgICAgICAgICAgICAgcHVuSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUltYWdlRGF0YSh1bE92ZXJsYXlIYW5k
bGUscHZCdWZmZXIsdW5CdWZmZXJTaXplLHJlZiBwdW5XaWR0aCxyZWYgcHVuSGVpZ2h0KTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmlu
ZyBHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUVy
cm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRy
VG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1
blBJRCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLlNldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxPdmVybGF5SGFuZGxlLHVuUElEKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgewor
ICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVJlbmRlcmluZ1Bp
ZCh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlGbGFnKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSxWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsYm9vbCBiRW5hYmxlZCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LlNldE92ZXJsYXlGbGFnKHVsT3ZlcmxheUhhbmRsZSxlT3ZlcmxheUZsYWcsYkVuYWJsZWQpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxWUk92ZXJs
YXlGbGFncyBlT3ZlcmxheUZsYWcscmVmIGJvb2wgcGJFbmFibGVkKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgcGJFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlGbGFnKHVsT3ZlcmxheUhhbmRsZSxlT3Zlcmxh
eUZsYWcscmVmIHBiRW5hYmxlZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUNvbG9yKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1ZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNl
dE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUsZlJlZCxmR3JlZW4sZkJsdWUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zlcmxh
eUVycm9yIEdldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBm
UmVkLHJlZiBmbG9hdCBwZkdyZWVuLHJlZiBmbG9hdCBwZkJsdWUpCisgICAgICAgeworICAgICAg
ICAgICAgICBwZlJlZCA9IDA7CisgICAgICAgICAgICAgIHBmR3JlZW4gPSAwOworICAgICAgICAg
ICAgICBwZkJsdWUgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRPdmVybGF5Q29sb3IodWxPdmVybGF5SGFuZGxlLHJlZiBwZlJlZCxyZWYgcGZH
cmVlbixyZWYgcGZCbHVlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5QWxwaGEodWxvbmcgdWxP
dmVybGF5SGFuZGxlLGZsb2F0IGZBbHBoYSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlBbHBoYSh1bE92ZXJsYXlIYW5k
bGUsZkFscGhhKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5
SGFuZGxlLHJlZiBmbG9hdCBwZkFscGhhKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGZBbHBo
YSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdl
dE92ZXJsYXlBbHBoYSh1bE92ZXJsYXlIYW5kbGUscmVmIHBmQWxwaGEpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZlRleGVs
QXNwZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsT3ZlcmxheUhhbmRsZSxmVGV4ZWxBc3Bl
Y3QpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIGZsb2F0IHBmVGV4ZWxBc3BlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBw
ZlRleGVsQXNwZWN0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZUZXhl
bEFzcGVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsdWludCB1blNvcnRPcmRlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5
SGFuZGxlLHVuU29ydE9yZGVyKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5U29ydE9yZGVyKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5Tb3J0T3JkZXIpCisgICAgICAgeworICAg
ICAgICAgICAgICBwdW5Tb3J0T3JkZXIgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5U29ydE9yZGVyKHVsT3ZlcmxheUhhbmRsZSxy
ZWYgcHVuU29ydE9yZGVyKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZldpZHRoSW5NZXRlcnMpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5V2lk
dGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUsZldpZHRoSW5NZXRlcnMpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IEdldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQg
cGZXaWR0aEluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGZXaWR0aEluTWV0ZXJz
ID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0
T3ZlcmxheVdpZHRoSW5NZXRlcnModWxPdmVybGF5SGFuZGxlLHJlZiBwZldpZHRoSW5NZXRlcnMp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLGZsb2F0IGZNaW5EaXN0YW5jZUluTWV0ZXJzLGZsb2F0IGZN
YXhEaXN0YW5jZUluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1l
dGVycyh1bE92ZXJsYXlIYW5kbGUsZk1pbkRpc3RhbmNlSW5NZXRlcnMsZk1heERpc3RhbmNlSW5N
ZXRlcnMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5N
ZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZk1pbkRpc3RhbmNlSW5NZXRl
cnMscmVmIGZsb2F0IHBmTWF4RGlzdGFuY2VJbk1ldGVycykKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBmTWluRGlzdGFuY2VJbk1ldGVycyA9IDA7CisgICAgICAgICAgICAgIHBmTWF4RGlzdGFu
Y2VJbk1ldGVycyA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxPdmVybGF5
SGFuZGxlLHJlZiBwZk1pbkRpc3RhbmNlSW5NZXRlcnMscmVmIHBmTWF4RGlzdGFuY2VJbk1ldGVy
cyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSxFQ29sb3JTcGFjZSBlVGV4dHVyZUNvbG9yU3BhY2UpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4
dHVyZUNvbG9yU3BhY2UodWxPdmVybGF5SGFuZGxlLGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgRUNvbG9yU3BhY2UgcGVUZXh0dXJlQ29sb3JTcGFjZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUZXh0dXJl
Q29sb3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBlVGV4dHVyZUNvbG9yU3BhY2UpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIFNldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxy
ZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJlQm91bmRzKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRl
eHR1cmVCb3VuZHModWxPdmVybGF5SGFuZGxlLHJlZiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0dXJlQm91bmRzKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zlcmxh
eVRleHR1cmVCb3VuZHModWxPdmVybGF5SGFuZGxlLHJlZiBwT3ZlcmxheVRleHR1cmVCb3VuZHMp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSxyZWYgVlJPdmVybGF5VHJhbnNmb3JtVHlwZSBwZVRyYW5zZm9ybVR5cGUpCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5VHJhbnNmb3JtVHlwZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBlVHJhbnNmb3JtVHlwZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSxFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4scmVmIEhtZE1hdHJp
eDM0X3QgcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRy
YW5zZm9ybUFic29sdXRlKHVsT3ZlcmxheUhhbmRsZSxlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRU
cmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3Zlcmxh
eVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gcGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tp
bmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJP
dmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUo
dWxPdmVybGF5SGFuZGxlLHJlZiBwZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmln
aW5Ub092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1U
cmFja2VkRGV2aWNlUmVsYXRpdmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQgdW5UcmFja2Vk
RGV2aWNlLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNm
b3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bE92ZXJsYXlI
YW5kbGUsdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5z
Zm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxh
dGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQgcHVuVHJhY2tlZERldmljZSxyZWYg
SG1kTWF0cml4MzRfdCBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHB1blRyYWNrZWREZXZpY2UgPSAwOworICAgICAgICAgICAgICBF
VlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuVHJhY2tlZERldmljZSxyZWYg
cG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSx1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5
VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bE92ZXJsYXlIYW5kbGUsdW5EZXZpY2VJ
bmRleCxwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3Jt
VHJhY2tlZERldmljZUNvbXBvbmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVpbnQgcHVu
RGV2aWNlSW5kZXgsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsdWludCB1bkNvbXBvbmVudE5hbWVT
aXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuRGV2aWNlSW5kZXggPSAwOworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bE92ZXJsYXlIYW5kbGUscmVmIHB1bkRldmljZUlu
ZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lU2l6ZSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
U2hvd092ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2hvd092ZXJsYXkodWxPdmVybGF5
SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBIaWRlT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5IaWRlT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc092ZXJsYXlWaXNpYmxlKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Jc092ZXJsYXlWaXNpYmxlKHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
R2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxF
VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sSG1kVmVjdG9yMl90IGNvb3Jk
aW5hdGVzSW5PdmVybGF5LHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFu
c2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdp
bixjb29yZGluYXRlc0luT3ZlcmxheSxyZWYgcG1hdFRyYW5zZm9ybSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0T3Zl
cmxheUV2ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJFdmVudF90IHBFdmVudCx1aW50
IHVuY2JWUkV2ZW50KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLlBvbGxOZXh0T3ZlcmxheUV2ZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcEV2ZW50LHVuY2JW
UkV2ZW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLHJlZiBWUk92ZXJsYXlJbnB1dE1ldGhvZCBwZUlucHV0TWV0aG9kKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zl
cmxheUlucHV0TWV0aG9kKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVJbnB1dE1ldGhvZCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheUlucHV0TWV0aG9kKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxWUk92
ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QpCisgICAgICAgeworICAgICAgICAgICAgICBF
VlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5SW5wdXRNZXRob2QodWxP
dmVybGF5SGFuZGxlLGVJbnB1dE1ldGhvZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheU1vdXNl
U2NhbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2Nh
bGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRPdmVybGF5TW91c2VTY2FsZSh1bE92ZXJsYXlIYW5kbGUscmVmIHB2ZWNNb3VzZVNj
YWxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlNb3VzZVNj
YWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDb21wdXRlT3Zlcmxh
eUludGVyc2VjdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2Vj
dGlvblBhcmFtc190IHBQYXJhbXMscmVmIFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCBw
UmVzdWx0cykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5D
b21wdXRlT3ZlcmxheUludGVyc2VjdGlvbih1bE92ZXJsYXlIYW5kbGUscmVmIHBQYXJhbXMscmVm
IHBSZXN1bHRzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2Uo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSGFuZGxlQ29udHJvbGxl
ck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UodWxPdmVybGF5SGFuZGxlLHVuQ29udHJvbGxlckRl
dmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgSXNIb3ZlclRhcmdldE92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklzSG92ZXJU
YXJnZXRPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRHYW1lcGFkRm9jdXNPdmVybGF5
KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFibGUuR2V0R2Ft
ZXBhZEZvY3VzT3ZlcmxheSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEdhbWVwYWRGb2N1c092ZXJsYXko
dWxvbmcgdWxOZXdGb2N1c092ZXJsYXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVy
bGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsTmV3Rm9j
dXNPdmVybGF5KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TmVpZ2hib3IoRU92ZXJsYXlEaXJl
Y3Rpb24gZURpcmVjdGlvbix1bG9uZyB1bEZyb20sdWxvbmcgdWxUbykKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlOZWln
aGJvcihlRGlyZWN0aW9uLHVsRnJvbSx1bFRvKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBNb3ZlR2FtZXBhZEZv
Y3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLHVsb25nIHVsRnJvbSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
Lk1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yKGVEaXJlY3Rpb24sdWxGcm9tKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFRleHR1cmVf
dCBwVGV4dHVyZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFRleHR1
cmUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIENsZWFyT3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZu
VGFibGUuQ2xlYXJPdmVybGF5VGV4dHVyZSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlSYXcodWxvbmcgdWxPdmVybGF5SGFuZGxlLEludFB0ciBwdkJ1ZmZlcix1aW50
IHVuV2lkdGgsdWludCB1bkhlaWdodCx1aW50IHVuRGVwdGgpCisgICAgICAgeworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5UmF3KHVsT3Zl
cmxheUhhbmRsZSxwdkJ1ZmZlcix1bldpZHRoLHVuSGVpZ2h0LHVuRGVwdGgpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVy
cm9yIFNldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsc3RyaW5nIHBjaEZp
bGVQYXRoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheUZyb21GaWxlKHVsT3ZlcmxheUhhbmRsZSxwY2hGaWxlUGF0aCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBJbnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUsSW50UHRyIHBOYXRpdmVUZXh0dXJlUmVmLHJl
ZiB1aW50IHBXaWR0aCxyZWYgdWludCBwSGVpZ2h0LHJlZiB1aW50IHBOYXRpdmVGb3JtYXQscmVm
IEVUZXh0dXJlVHlwZSBwQVBJVHlwZSxyZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UscmVmIFZS
VGV4dHVyZUJvdW5kc190IHBUZXh0dXJlQm91bmRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
cFdpZHRoID0gMDsKKyAgICAgICAgICAgICAgcEhlaWdodCA9IDA7CisgICAgICAgICAgICAgIHBO
YXRpdmVGb3JtYXQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBOYXRpdmVUZXh0
dXJlSGFuZGxlLHBOYXRpdmVUZXh0dXJlUmVmLHJlZiBwV2lkdGgscmVmIHBIZWlnaHQscmVmIHBO
YXRpdmVGb3JtYXQscmVmIHBBUElUeXBlLHJlZiBwQ29sb3JTcGFjZSxyZWYgcFRleHR1cmVCb3Vu
ZHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZWxlYXNlTmF0aXZlT3Zl
cmxheUhhbmRsZSh1bE92ZXJsYXlIYW5kbGUscE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zlcmxh
eUVycm9yIEdldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVp
bnQgcFdpZHRoLHJlZiB1aW50IHBIZWlnaHQpCisgICAgICAgeworICAgICAgICAgICAgICBwV2lk
dGggPSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVTaXplKHVsT3Zlcmxh
eUhhbmRsZSxyZWYgcFdpZHRoLHJlZiBwSGVpZ2h0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVEYXNo
Ym9hcmRPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0cmluZyBwY2hPdmVybGF5RnJpZW5k
bHlOYW1lLHJlZiB1bG9uZyBwTWFpbkhhbmRsZSxyZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHBNYWluSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAg
cFRodW1ibmFpbEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1
bHQgPSBGblRhYmxlLkNyZWF0ZURhc2hib2FyZE92ZXJsYXkocGNoT3ZlcmxheUtleSxwY2hPdmVy
bGF5RnJpZW5kbHlOYW1lLHJlZiBwTWFpbkhhbmRsZSxyZWYgcFRodW1ibmFpbEhhbmRsZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IElzRGFzaGJvYXJkVmlzaWJsZSgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuSXNEYXNoYm9hcmRWaXNpYmxlKCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzQWN0aXZlRGFzaGJvYXJkT3Zl
cmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KHVsT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vzcyh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsdWludCB1blByb2Nlc3NJZCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERhc2hib2FyZE92ZXJsYXlTY2Vu
ZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHVuUHJvY2Vzc0lkKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRE
YXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWlu
dCBwdW5Qcm9jZXNzSWQpCisgICAgICAgeworICAgICAgICAgICAgICBwdW5Qcm9jZXNzSWQgPSAw
OworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXREYXNo
Ym9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuUHJvY2Vzc0lk
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgU2hvd0Rhc2hib2FyZChzdHJpbmcgcGNoT3ZlcmxheVRvU2hvdykKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUuU2hvd0Rhc2hib2FyZChwY2hPdmVybGF5VG9TaG93KTsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0UHJpbWFyeURhc2hib2FyZERldmljZSgpCisg
ICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UHJpbWFyeURh
c2hib2FyZERldmljZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZChpbnQgZUlucHV0TW9k
ZSxpbnQgZUxpbmVJbnB1dE1vZGUsc3RyaW5nIHBjaERlc2NyaXB0aW9uLHVpbnQgdW5DaGFyTWF4
LHN0cmluZyBwY2hFeGlzdGluZ1RleHQsYm9vbCBiVXNlTWluaW1hbE1vZGUsdWxvbmcgdVVzZXJW
YWx1ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLlNob3dLZXlib2FyZChlSW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0
aW9uLHVuQ2hhck1heCxwY2hFeGlzdGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZEZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLGludCBlSW5wdXRNb2RlLGludCBlTGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRp
b24sdWludCB1bkNoYXJNYXgsc3RyaW5nIHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFs
TW9kZSx1bG9uZyB1VXNlclZhbHVlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bE92ZXJsYXlI
YW5kbGUsZUlucHV0TW9kZSxlTGluZUlucHV0TW9kZSxwY2hEZXNjcmlwdGlvbix1bkNoYXJNYXgs
cGNoRXhpc3RpbmdUZXh0LGJVc2VNaW5pbWFsTW9kZSx1VXNlclZhbHVlKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0S2V5Ym9h
cmRUZXh0KFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGV4dCx1aW50IGNjaFRleHQpCisg
ICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0S2V5Ym9hcmRU
ZXh0KHBjaFRleHQsY2NoVGV4dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEhpZGVLZXlib2FyZCgpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkhpZGVLZXlib2FyZCgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tl
eWJvYXJkVHJhbnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXli
b2FyZFRyYW5zZm9ybUFic29sdXRlKGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNraW5nT3Jp
Z2luVG9LZXlib2FyZFRyYW5zZm9ybSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNl
dEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxIbWRSZWN0
Ml90IGF2b2lkUmVjdCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0S2V5Ym9h
cmRQb3NpdGlvbkZvck92ZXJsYXkodWxPdmVybGF5SGFuZGxlLGF2b2lkUmVjdCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUludGVyc2VjdGlvbk1h
c2sodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlX3QgcE1hc2tQcmltaXRpdmVzLHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcyx1aW50IHVu
UHJpbWl0aXZlU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsT3ZlcmxheUhhbmRs
ZSxyZWYgcE1hc2tQcmltaXRpdmVzLHVuTnVtTWFza1ByaW1pdGl2ZXMsdW5QcmltaXRpdmVTaXpl
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5RmxhZ3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiB1aW50IHBGbGFncykKKyAgICAgICB7CisgICAgICAgICAgICAgIHBGbGFncyA9IDA7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlGbGFn
cyh1bE92ZXJsYXlIYW5kbGUscmVmIHBGbGFncyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgU2hv
d01lc3NhZ2VPdmVybGF5KHN0cmluZyBwY2hUZXh0LHN0cmluZyBwY2hDYXB0aW9uLHN0cmluZyBw
Y2hCdXR0b24wVGV4dCxzdHJpbmcgcGNoQnV0dG9uMVRleHQsc3RyaW5nIHBjaEJ1dHRvbjJUZXh0
LHN0cmluZyBwY2hCdXR0b24zVGV4dCkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTWVzc2Fn
ZU92ZXJsYXlSZXNwb25zZSByZXN1bHQgPSBGblRhYmxlLlNob3dNZXNzYWdlT3ZlcmxheShwY2hU
ZXh0LHBjaENhcHRpb24scGNoQnV0dG9uMFRleHQscGNoQnV0dG9uMVRleHQscGNoQnV0dG9uMlRl
eHQscGNoQnV0dG9uM1RleHQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSUmVuZGVyTW9kZWxzCit7CisgICAgICAgSVZSUmVu
ZGVyTW9kZWxzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSUmVuZGVyTW9kZWxzKEludFB0
ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJSZW5k
ZXJNb2RlbHMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSUmVu
ZGVyTW9kZWxzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9y
IExvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLHJlZiBJbnRQ
dHIgcHBSZW5kZXJNb2RlbCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlJlbmRlck1vZGVs
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkUmVuZGVyTW9kZWxfQXN5bmMocGNoUmVuZGVyTW9k
ZWxOYW1lLHJlZiBwcFJlbmRlck1vZGVsKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRnJlZVJlbmRlck1vZGVsKEludFB0ciBwUmVu
ZGVyTW9kZWwpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZyZWVSZW5kZXJNb2Rl
bChwUmVuZGVyTW9kZWwpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSUmVuZGVyTW9kZWxF
cnJvciBMb2FkVGV4dHVyZV9Bc3luYyhpbnQgdGV4dHVyZUlkLHJlZiBJbnRQdHIgcHBUZXh0dXJl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBG
blRhYmxlLkxvYWRUZXh0dXJlX0FzeW5jKHRleHR1cmVJZCxyZWYgcHBUZXh0dXJlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRnJl
ZVRleHR1cmUoSW50UHRyIHBUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5GcmVlVGV4dHVyZShwVGV4dHVyZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5k
ZXJNb2RlbEVycm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCxJbnRQdHIg
cEQzRDExRGV2aWNlLHJlZiBJbnRQdHIgcHBEM0QxMVRleHR1cmUyRCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkVGV4dHVy
ZUQzRDExX0FzeW5jKHRleHR1cmVJZCxwRDNEMTFEZXZpY2UscmVmIHBwRDNEMTFUZXh0dXJlMkQp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZSUmVuZGVyTW9kZWxFcnJvciBMb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVy
ZUlkLEludFB0ciBwRHN0VGV4dHVyZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlJlbmRl
ck1vZGVsRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Mb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyh0
ZXh0dXJlSWQscERzdFRleHR1cmUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFU
ZXh0dXJlMkQpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZyZWVUZXh0dXJlRDNE
MTEocEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0UmVu
ZGVyTW9kZWxOYW1lKHVpbnQgdW5SZW5kZXJNb2RlbEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1
aWxkZXIgcGNoUmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5SZW5kZXJNb2RlbE5hbWVMZW4pCisgICAg
ICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxO
YW1lKHVuUmVuZGVyTW9kZWxJbmRleCxwY2hSZW5kZXJNb2RlbE5hbWUsdW5SZW5kZXJNb2RlbE5h
bWVMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdWludCBHZXRSZW5kZXJNb2RlbENvdW50KCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbENvdW50KCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldENvbXBv
bmVudENvdW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUpCisgICAgICAgeworICAgICAgICAg
ICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50Q291bnQocGNoUmVuZGVyTW9k
ZWxOYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHVpbnQgR2V0Q29tcG9uZW50TmFtZShzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLHVp
bnQgdW5Db21wb25lbnRJbmRleCxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVu
dE5hbWUsdWludCB1bkNvbXBvbmVudE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1
aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50TmFtZShwY2hSZW5kZXJNb2RlbE5hbWUs
dW5Db21wb25lbnRJbmRleCxwY2hDb21wb25lbnROYW1lLHVuQ29tcG9uZW50TmFtZUxlbik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9u
ZyBHZXRDb21wb25lbnRCdXR0b25NYXNrKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5n
IHBjaENvbXBvbmVudE5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICB1bG9uZyByZXN1bHQg
PSBGblRhYmxlLkdldENvbXBvbmVudEJ1dHRvbk1hc2socGNoUmVuZGVyTW9kZWxOYW1lLHBjaENv
bXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgdWludCBHZXRDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUoc3RyaW5nIHBjaFJl
bmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxTeXN0ZW0uVGV4dC5TdHJpbmdC
dWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1aW50IHVuQ29tcG9uZW50UmVuZGVy
TW9kZWxOYW1lTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRh
YmxlLkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29t
cG9uZW50TmFtZSxwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsdW5Db21wb25lbnRSZW5kZXJN
b2RlbE5hbWVMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKy8v
IFRoaXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHdvcmthcm91bmQgdGhlIGZhY3QgdGhhdCBWUkNv
bnRyb2xsZXJTdGF0ZV90IHdhcworLy8gb3JpZ2luYWxseSBtaXMtY29tcGlsZWQgd2l0aCB0aGUg
d3JvbmcgcGFja2luZyBmb3IgTGludXggYW5kIE9TWC4KKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0dldENvbXBvbmVudFN0YXRlUGFja2VkKHN0cmluZyBwY2hSZW5kZXJNb2Rl
bE5hbWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFj
a2VkIHBDb250cm9sbGVyU3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRl
X3QgcFN0YXRlLHJlZiBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90IHBDb21wb25lbnRTdGF0
ZSk7CisgICAgICAgW1N0cnVjdExheW91dChMYXlvdXRLaW5kLkV4cGxpY2l0KV0KKyAgICAgICBz
dHJ1Y3QgR2V0Q29tcG9uZW50U3RhdGVVbmlvbgorICAgICAgIHsKKyAgICAgICAgICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgSVZSUmVuZGVyTW9kZWxzLl9HZXRD
b21wb25lbnRTdGF0ZSBwR2V0Q29tcG9uZW50U3RhdGU7CisgICAgICAgICAgICAgIFtGaWVsZE9m
ZnNldCgwKV0KKyAgICAgICAgICAgICAgcHVibGljIF9HZXRDb21wb25lbnRTdGF0ZVBhY2tlZCBw
R2V0Q29tcG9uZW50U3RhdGVQYWNrZWQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdl
dENvbXBvbmVudFN0YXRlKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5nIHBjaENvbXBv
bmVudE5hbWUscmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENvbnRyb2xsZXJTdGF0ZSxyZWYgUmVu
ZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBwU3RhdGUscmVmIFJlbmRlck1vZGVsX0Nv
bXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
aWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0
Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3lzdGVtLkVu
dmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5Vbml4KSkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29tcG9uZW50U3RhdGVV
bmlvbiB1OworICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQg
c3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7CisgICAgICAg
ICAgICAgICAgICAgICB1LnBHZXRDb21wb25lbnRTdGF0ZVBhY2tlZCA9IG51bGw7CisgICAgICAg
ICAgICAgICAgICAgICB1LnBHZXRDb21wb25lbnRTdGF0ZSA9IEZuVGFibGUuR2V0Q29tcG9uZW50
U3RhdGU7CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRD
b21wb25lbnRTdGF0ZVBhY2tlZChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSxy
ZWYgc3RhdGVfcGFja2VkLHJlZiBwU3RhdGUscmVmIHBDb21wb25lbnRTdGF0ZSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlX3BhY2tlZC5VbnBhY2socmVmIHBDb250cm9sbGVyU3RhdGUp
OworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2tlZF9yZXN1bHQ7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldENvbXBvbmVudFN0
YXRlKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBwQ29udHJvbGxlclN0
YXRlLHJlZiBwU3RhdGUscmVmIHBDb21wb25lbnRTdGF0ZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFJlbmRlck1vZGVsSGFzQ29t
cG9uZW50KHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsc3RyaW5nIHBjaENvbXBvbmVudE5hbWUp
CisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVuZGVyTW9k
ZWxIYXNDb21wb25lbnQocGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBH
ZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVGh1bWJuYWlsVVJMLHVpbnQgdW5UaHVtYm5haWxVUkxM
ZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChwY2hS
ZW5kZXJNb2RlbE5hbWUscGNoVGh1bWJuYWlsVVJMLHVuVGh1bWJuYWlsVVJMTGVuLHJlZiBwZUVy
cm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHVpbnQgR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgoc3RyaW5nIHBjaFJlbmRlck1vZGVs
TmFtZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaE9yaWdpbmFsUGF0aCx1aW50IHVuT3Jp
Z2luYWxQYXRoTGVuLHJlZiBFVlJSZW5kZXJNb2RlbEVycm9yIHBlRXJyb3IpCisgICAgICAgewor
ICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxPcmlnaW5h
bFBhdGgocGNoUmVuZGVyTW9kZWxOYW1lLHBjaE9yaWdpbmFsUGF0aCx1bk9yaWdpbmFsUGF0aExl
bixyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bShFVlJS
ZW5kZXJNb2RlbEVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJl
c3VsdCA9IEZuVGFibGUuR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bShlcnJvcik7Cisg
ICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAg
ICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSTm90aWZpY2F0aW9ucworeworICAgICAgIElW
Uk5vdGlmaWNhdGlvbnMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJOb3RpZmljYXRpb25z
KEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJ
VlJOb3RpZmljYXRpb25zKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9m
KElWUk5vdGlmaWNhdGlvbnMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk5vdGlmaWNh
dGlvbkVycm9yIENyZWF0ZU5vdGlmaWNhdGlvbih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWxvbmcg
dWxVc2VyVmFsdWUsRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLHN0cmluZyBwY2hUZXh0LEVWUk5v
dGlmaWNhdGlvblN0eWxlIHN0eWxlLHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1hZ2UscmVm
IHVpbnQgcE5vdGlmaWNhdGlvbklkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcE5vdGlmaWNh
dGlvbklkID0gMDsKKyAgICAgICAgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5DcmVhdGVOb3RpZmljYXRpb24odWxPdmVybGF5SGFuZGxlLHVsVXNlclZhbHVlLHR5
cGUscGNoVGV4dCxzdHlsZSxyZWYgcEltYWdlLHJlZiBwTm90aWZpY2F0aW9uSWQpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSTm90aWZp
Y2F0aW9uRXJyb3IgUmVtb3ZlTm90aWZpY2F0aW9uKHVpbnQgbm90aWZpY2F0aW9uSWQpCisgICAg
ICAgeworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxl
LlJlbW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JZCk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJTZXR0aW5ncworewor
ICAgICAgIElWUlNldHRpbmdzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSU2V0dGluZ3Mo
SW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElW
UlNldHRpbmdzKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlNl
dHRpbmdzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0U2V0dGluZ3NFcnJv
ck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVu
dW0oZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNp
KHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFN5bmMoYm9vbCBiRm9yY2Us
cmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGJv
b2wgcmVzdWx0ID0gRm5UYWJsZS5TeW5jKGJGb3JjZSxyZWYgcGVFcnJvcik7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEJvb2wo
c3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGJvb2wgYlZhbHVlLHJlZiBF
VlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LlNldEJvb2wocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxiVmFsdWUscmVmIHBlRXJyb3IpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbixz
dHJpbmcgcGNoU2V0dGluZ3NLZXksaW50IG5WYWx1ZSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVy
cm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRJbnQzMihwY2hTZWN0aW9u
LHBjaFNldHRpbmdzS2V5LG5WYWx1ZSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIFNldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tl
eSxmbG9hdCBmbFZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLlNldEZsb2F0KHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXks
ZmxWYWx1ZSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFN0
cmluZyhzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksc3RyaW5nIHBjaFZh
bHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlLlNldFN0cmluZyhwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHBjaFZhbHVlLHJl
ZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0Qm9vbChzdHJpbmcg
cGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXkscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVF
cnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRC
b29sKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscmVmIHBlRXJyb3IpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgaW50IEdldEludDMyKHN0
cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJv
ciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IEZuVGFibGUu
R2V0SW50MzIocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBmbG9hdCBHZXRG
bG9hdChzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXkscmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IHJlc3VsdCA9
IEZuVGFibGUuR2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIEdldFN0cmluZyhzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksU3lz
dGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuVmFsdWVMZW4scmVmIEVWUlNl
dHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0
U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUsdW5WYWx1ZUxlbixyZWYg
cGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlbW92ZVNlY3Rpb24oc3Ry
aW5nIHBjaFNlY3Rpb24scmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUuUmVtb3ZlU2VjdGlvbihwY2hTZWN0aW9uLHJlZiBwZUVycm9y
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVtb3ZlS2V5SW5TZWN0aW9uKHN0cmlu
ZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBw
ZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZW1vdmVLZXlJblNlY3Rp
b24ocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgfQorfQor
CisKK3B1YmxpYyBjbGFzcyBDVlJTY3JlZW5zaG90cworeworICAgICAgIElWUlNjcmVlbnNob3Rz
IEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSU2NyZWVuc2hvdHMoSW50UHRyIHBJbnRlcmZh
Y2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlNjcmVlbnNob3RzKU1h
cnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlNjcmVlbnNob3RzKSk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgUmVxdWVzdFNjcmVl
bnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsRVZSU2NyZWVuc2hvdFR5cGUgdHlw
ZSxzdHJpbmcgcGNoUHJldmlld0ZpbGVuYW1lLHN0cmluZyBwY2hWUkZpbGVuYW1lKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcE91dFNjcmVlbnNob3RIYW5kbGUgPSAwOworICAgICAgICAgICAg
ICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZXF1ZXN0U2NyZWVuc2hvdChy
ZWYgcE91dFNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hQcmV2aWV3RmlsZW5hbWUscGNoVlJGaWxl
bmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgSG9va1NjcmVlbnNob3QoRVZSU2NyZWVuc2hvdFR5cGUg
W10gcFN1cHBvcnRlZFR5cGVzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hv
dEVycm9yIHJlc3VsdCA9IEZuVGFibGUuSG9va1NjcmVlbnNob3QocFN1cHBvcnRlZFR5cGVzLChp
bnQpIHBTdXBwb3J0ZWRUeXBlcy5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hvdFR5cGUgR2V0U2NyZWVuc2hv
dFByb3BlcnR5VHlwZSh1aW50IHNjcmVlbnNob3RIYW5kbGUscmVmIEVWUlNjcmVlbnNob3RFcnJv
ciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90VHlwZSByZXN1
bHQgPSBGblRhYmxlLkdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUoc2NyZWVuc2hvdEhhbmRsZSxy
ZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHVpbnQgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUodWludCBzY3JlZW5z
aG90SGFuZGxlLEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFtZVR5cGUsU3lz
dGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hGaWxlbmFtZSx1aW50IGNjaEZpbGVuYW1lLHJlZiBF
VlJTY3JlZW5zaG90RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lKHNjcmVlbnNob3RI
YW5kbGUsZmlsZW5hbWVUeXBlLHBjaEZpbGVuYW1lLGNjaEZpbGVuYW1lLHJlZiBwRXJyb3IpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
U2NyZWVuc2hvdEVycm9yIFVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyh1aW50IHNjcmVlbnNob3RI
YW5kbGUsZmxvYXQgZmxQcm9ncmVzcykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlNjcmVl
bnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcyhzY3Jl
ZW5zaG90SGFuZGxlLGZsUHJvZ3Jlc3MpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSU2NyZWVuc2hvdEVycm9yIFRha2VTdGVyZW9TY3Jl
ZW5zaG90KHJlZiB1aW50IHBPdXRTY3JlZW5zaG90SGFuZGxlLHN0cmluZyBwY2hQcmV2aWV3Rmls
ZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBwT3V0
U2NyZWVuc2hvdEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLlRha2VTdGVyZW9TY3JlZW5zaG90KHJlZiBwT3V0U2NyZWVuc2hvdEhh
bmRsZSxwY2hQcmV2aWV3RmlsZW5hbWUscGNoVlJGaWxlbmFtZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3Ig
U3VibWl0U2NyZWVuc2hvdCh1aW50IHNjcmVlbnNob3RIYW5kbGUsRVZSU2NyZWVuc2hvdFR5cGUg
dHlwZSxzdHJpbmcgcGNoU291cmNlUHJldmlld0ZpbGVuYW1lLHN0cmluZyBwY2hTb3VyY2VWUkZp
bGVuYW1lKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuU3VibWl0U2NyZWVuc2hvdChzY3JlZW5zaG90SGFuZGxlLHR5cGUscGNoU291
cmNlUHJldmlld0ZpbGVuYW1lLHBjaFNvdXJjZVZSRmlsZW5hbWUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSUmVzb3VyY2Vz
Cit7CisgICAgICAgSVZSUmVzb3VyY2VzIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSUmVz
b3VyY2VzKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZSA9IChJVlJSZXNvdXJjZXMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBl
b2YoSVZSUmVzb3VyY2VzKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IExvYWRTaGFy
ZWRSZXNvdXJjZShzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hCdWZmZXIsdWludCB1
bkJ1ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5Mb2FkU2hhcmVkUmVzb3VyY2UocGNoUmVzb3VyY2VOYW1lLHBjaEJ1ZmZlcix1bkJ1ZmZlckxl
bik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB1aW50IEdldFJlc291cmNlRnVsbFBhdGgoc3RyaW5nIHBjaFJlc291cmNlTmFtZSxzdHJpbmcg
cGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LHN0cmluZyBwY2hQYXRoQnVmZmVyLHVpbnQgdW5CdWZm
ZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
UmVzb3VyY2VGdWxsUGF0aChwY2hSZXNvdXJjZU5hbWUscGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5
LHBjaFBhdGhCdWZmZXIsdW5CdWZmZXJMZW4pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgT3BlblZSSW50ZXJvcAoreworICAgICAg
IFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBvaW50ID0gIlZSX0luaXRJ
bnRlcm5hbCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQor
ICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gdWludCBJbml0SW50ZXJuYWwocmVmIEVWUklu
aXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSk7Cisg
ICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJf
U2h1dGRvd25JbnRlcm5hbCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24u
Q2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gdm9pZCBTaHV0ZG93bkludGVy
bmFsKCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9p
bnQgPSAiVlJfSXNIbWRQcmVzZW50IiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVu
dGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzSG1kUHJl
c2VudCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBv
aW50ID0gIlZSX0lzUnVudGltZUluc3RhbGxlZCIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGlu
Z0NvbnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gYm9vbCBJ
c1J1bnRpbWVJbnN0YWxsZWQoKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJf
YXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciIsIENhbGxpbmdDb252
ZW50aW9uID0gQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRp
YyBleHRlcm4gSW50UHRyIEdldFN0cmluZ0ZvckhtZEVycm9yKEVWUkluaXRFcnJvciBlcnJvcik7
CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAi
VlJfR2V0R2VuZXJpY0ludGVyZmFjZSIsIENhbGxpbmdDb252ZW50aW9uID0gQ2FsbGluZ0NvbnZl
bnRpb24uQ2RlY2wpXQorICAgICAgIGludGVybmFsIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldEdl
bmVyaWNJbnRlcmZhY2UoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmlu
ZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IpOworICAgICAg
IFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBvaW50ID0gIlZSX0lzSW50
ZXJmYWNlVmVyc2lvblZhbGlkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlv
bi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzSW50ZXJmYWNl
VmVyc2lvblZhbGlkKFtJbiwgTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuTFBTdHIpXSBzdHJpbmcg
cGNoSW50ZXJmYWNlVmVyc2lvbik7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZy
X2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfR2V0SW5pdFRva2VuIiwgQ2FsbGluZ0NvbnZlbnRpb24g
PSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVy
biB1aW50IEdldEluaXRUb2tlbigpOworfQorCisKK3B1YmxpYyBlbnVtIEVWUkV5ZQoreworICAg
ICAgIEV5ZV9MZWZ0ID0gMCwKKyAgICAgICBFeWVfUmlnaHQgPSAxLAorfQorcHVibGljIGVudW0g
RVRleHR1cmVUeXBlCit7CisgICAgICAgRGlyZWN0WCA9IDAsCisgICAgICAgT3BlbkdMID0gMSwK
KyAgICAgICBWdWxrYW4gPSAyLAorICAgICAgIElPU3VyZmFjZSA9IDMsCisgICAgICAgRGlyZWN0
WDEyID0gNCwKK30KK3B1YmxpYyBlbnVtIEVDb2xvclNwYWNlCit7CisgICAgICAgQXV0byA9IDAs
CisgICAgICAgR2FtbWEgPSAxLAorICAgICAgIExpbmVhciA9IDIsCit9CitwdWJsaWMgZW51bSBF
VHJhY2tpbmdSZXN1bHQKK3sKKyAgICAgICBVbmluaXRpYWxpemVkID0gMSwKKyAgICAgICBDYWxp
YnJhdGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAgIENhbGlicmF0aW5nX091dE9mUmFuZ2Ug
PSAxMDEsCisgICAgICAgUnVubmluZ19PSyA9IDIwMCwKKyAgICAgICBSdW5uaW5nX091dE9mUmFu
Z2UgPSAyMDEsCit9CitwdWJsaWMgZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAg
SW52YWxpZCA9IDAsCisgICAgICAgSE1EID0gMSwKKyAgICAgICBDb250cm9sbGVyID0gMiwKKyAg
ICAgICBHZW5lcmljVHJhY2tlciA9IDMsCisgICAgICAgVHJhY2tpbmdSZWZlcmVuY2UgPSA0LAor
fQorcHVibGljIGVudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQoreworICAgICAgIEludmFsaWQg
PSAwLAorICAgICAgIExlZnRIYW5kID0gMSwKKyAgICAgICBSaWdodEhhbmQgPSAyLAorfQorcHVi
bGljIGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBUcmFja2luZ1VuaXZl
cnNlU2VhdGVkID0gMCwKKyAgICAgICBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLAorICAg
ICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLAorfQorcHVibGljIGVu
dW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eQoreworICAgICAgIFByb3BfSW52YWxpZCA9IDAsCisg
ICAgICAgUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3RyaW5nID0gMTAwMCwKKyAgICAgICBQcm9w
X01vZGVsTnVtYmVyX1N0cmluZyA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJpYWxOdW1iZXJfU3Ry
aW5nID0gMTAwMiwKKyAgICAgICBQcm9wX1JlbmRlck1vZGVsTmFtZV9TdHJpbmcgPSAxMDAzLAor
ICAgICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51
ZmFjdHVyZXJOYW1lX1N0cmluZyA9IDEwMDUsCisgICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJl
VmVyc2lvbl9TdHJpbmcgPSAxMDA2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9TdHJp
bmcgPSAxMDA3LAorICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3Ry
aW5nID0gMTAwOCwKKyAgICAgICBQcm9wX0Nvbm5lY3RlZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyA9
IDEwMDksCisgICAgICAgUHJvcF9EZXZpY2VJc1dpcmVsZXNzX0Jvb2wgPSAxMDEwLAorICAgICAg
IFByb3BfRGV2aWNlSXNDaGFyZ2luZ19Cb29sID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJh
dHRlcnlQZXJjZW50YWdlX0Zsb2F0ID0gMTAxMiwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlU
cmFuc2Zvcm1fTWF0cml4MzQgPSAxMDEzLAorICAgICAgIFByb3BfRmlybXdhcmVfVXBkYXRlQXZh
aWxhYmxlX0Jvb2wgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jv
b2wgPSAxMDE1LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyA9
IDEwMTYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCA9IDEwMTcsCisgICAg
ICAgUHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMTAxOCwKKyAgICAgICBQcm9wX0ZQR0FW
ZXJzaW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgUHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCA9IDEw
MjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ID0gMTAyMSwKKyAgICAgICBQcm9w
X0RvbmdsZVZlcnNpb25fVWludDY0ID0gMTAyMiwKKyAgICAgICBQcm9wX0Jsb2NrU2VydmVyU2h1
dGRvd25fQm9vbCA9IDEwMjMsCisgICAgICAgUHJvcF9DYW5VbmlmeUNvb3JkaW5hdGVTeXN0ZW1X
aXRoSG1kX0Jvb2wgPSAxMDI0LAorICAgICAgIFByb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3Jf
Qm9vbCA9IDEwMjUsCisgICAgICAgUHJvcF9EZXZpY2VQcm92aWRlc0JhdHRlcnlTdGF0dXNfQm9v
bCA9IDEwMjYsCisgICAgICAgUHJvcF9EZXZpY2VDYW5Qb3dlck9mZl9Cb29sID0gMTAyNywKKyAg
ICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyA9IDEwMjgsCisgICAg
ICAgUHJvcF9EZXZpY2VDbGFzc19JbnQzMiA9IDEwMjksCisgICAgICAgUHJvcF9IYXNDYW1lcmFf
Qm9vbCA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyA9IDEwMzEsCisg
ICAgICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgPSAxMDMyLAorICAg
ICAgIFByb3BfVml2ZVN5c3RlbUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgPSAxMDMzLAorICAgICAg
IFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisgICAgICAgUHJvcF9SZXBvcnRzVGlt
ZVNpbmNlVlN5bmNfQm9vbCA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9Q
aG90b25zX0Zsb2F0ID0gMjAwMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQg
PSAyMDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9hdCA9IDIwMDMsCisgICAgICAg
UHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50NjQgPSAyMDA0LAorICAgICAgIFByb3BfUHJldmlv
dXNVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDUsCisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCA9IDIwMDYsCisgICAgICAgUHJvcF9Jc09uRGVza3RvcF9Cb29sID0gMjAw
NywKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1R5cGVfSW50MzIgPSAyMDA4LAorICAgICAgIFByb3Bf
RGlzcGxheU1DT2Zmc2V0X0Zsb2F0ID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1NjYWxl
X0Zsb2F0ID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiA9IDIwMTEsCisg
ICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nID0gMjAxMiwKKyAgICAgICBQcm9w
X0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlH
Q0JsYWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9JbnQz
MiA9IDIwMTUsCisgICAgICAgUHJvcF9DYW1lcmFUb0hlYWRUcmFuc2Zvcm1fTWF0cml4MzQgPSAy
MDE2LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiA9IDIwMTcsCisgICAgICAgUHJv
cF9EaXNwbGF5R0NPZmZzZXRfRmxvYXQgPSAyMDE4LAorICAgICAgIFByb3BfRGlzcGxheUdDU2Nh
bGVfRmxvYXQgPSAyMDE5LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgPSAy
MDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nID0gMjAyMSwKKyAgICAgICBQ
cm9wX0xlbnNDZW50ZXJMZWZ0VV9GbG9hdCA9IDIwMjIsCisgICAgICAgUHJvcF9MZW5zQ2VudGVy
TGVmdFZfRmxvYXQgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCA9
IDIwMjQsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRWX0Zsb2F0ID0gMjAyNSwKKyAgICAg
ICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9IDIwMjYsCisgICAgICAgUHJv
cF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVy
YUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nID0gMjAyOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlG
UEdBVmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAgICAgIFByb3BfRGlzcGxheUJvb3Rsb2FkZXJW
ZXJzaW9uX1VpbnQ2NCA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJzaW9u
X1VpbnQ2NCA9IDIwMzEsCisgICAgICAgUHJvcF9BdWRpb0Zpcm13YXJlVmVyc2lvbl9VaW50NjQg
PSAyMDMyLAorICAgICAgIFByb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgPSAyMDMz
LAorICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdy
ZWVzX0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgPSAy
MDM2LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgPSAyMDM3LAorICAg
ICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIwMzgsCisgICAgICAgUHJvcF9E
aXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJ
bWFnZU51bUNoYW5uZWxzX0ludDMyID0gMjA0MCwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdl
RGF0YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIFByb3BfVXNlc0RyaXZlckRpcmVjdE1vZGVfQm9v
bCA9IDIwNDIsCisgICAgICAgUHJvcF9BdHRhY2hlZERldmljZUlkX1N0cmluZyA9IDMwMDAsCisg
ICAgICAgUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCA9IDMwMDEsCisgICAgICAgUHJvcF9B
eGlzMFR5cGVfSW50MzIgPSAzMDAyLAorICAgICAgIFByb3BfQXhpczFUeXBlX0ludDMyID0gMzAw
MywKKyAgICAgICBQcm9wX0F4aXMyVHlwZV9JbnQzMiA9IDMwMDQsCisgICAgICAgUHJvcF9BeGlz
M1R5cGVfSW50MzIgPSAzMDA1LAorICAgICAgIFByb3BfQXhpczRUeXBlX0ludDMyID0gMzAwNiwK
KyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiA9IDMwMDcsCisgICAgICAgUHJv
cF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ID0gNDAwMCwKKyAgICAgICBQcm9wX0ZpZWxk
T2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ID0gNDAwMSwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3
VG9wRGVncmVlc19GbG9hdCA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURl
Z3JlZXNfRmxvYXQgPSA0MDAzLAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1pbmltdW1NZXRl
cnNfRmxvYXQgPSA0MDA0LAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNf
RmxvYXQgPSA0MDA1LAorICAgICAgIFByb3BfTW9kZUxhYmVsX1N0cmluZyA9IDQwMDYsCisgICAg
ICAgUHJvcF9JY29uUGF0aE5hbWVfU3RyaW5nID0gNTAwMCwKKyAgICAgICBQcm9wX05hbWVkSWNv
blBhdGhEZXZpY2VPZmZfU3RyaW5nID0gNTAwMSwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VTZWFyY2hpbmdfU3RyaW5nID0gNTAwMiwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VTZWFyY2hpbmdBbGVydF9TdHJpbmcgPSA1MDAzLAorICAgICAgIFByb3BfTmFtZWRJY29u
UGF0aERldmljZVJlYWR5X1N0cmluZyA9IDUwMDQsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlUmVhZHlBbGVydF9TdHJpbmcgPSA1MDA1LAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0
aERldmljZU5vdFJlYWR5X1N0cmluZyA9IDUwMDYsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU3RhbmRieV9TdHJpbmcgPSA1MDA3LAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZUFsZXJ0TG93X1N0cmluZyA9IDUwMDgsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJl
YV9CaW5hcnlfU3RhcnQgPSA1MTAwLAorICAgICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmlu
YXJ5X0VuZCA9IDUxNTAsCisgICAgICAgUHJvcF9Vc2VyQ29uZmlnUGF0aF9TdHJpbmcgPSA2MDAw
LAorICAgICAgIFByb3BfSW5zdGFsbFBhdGhfU3RyaW5nID0gNjAwMSwKKyAgICAgICBQcm9wX1Zl
bmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgUHJvcF9WZW5kb3JT
cGVjaWZpY19SZXNlcnZlZF9FbmQgPSAxMDk5OSwKK30KK3B1YmxpYyBlbnVtIEVUcmFja2VkUHJv
cGVydHlFcnJvcgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgPSAwLAorICAgICAgIFRy
YWNrZWRQcm9wX1dyb25nRGF0YVR5cGUgPSAxLAorICAgICAgIFRyYWNrZWRQcm9wX1dyb25nRGV2
aWNlQ2xhc3MgPSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsID0gMywKKyAg
ICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgPSA0LAorICAgICAgIFRyYWNrZWRQcm9w
X0ludmFsaWREZXZpY2UgPSA1LAorICAgICAgIFRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNl
cnZlciA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlID0g
NywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCA9IDgsCisg
ICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwKKyAgICAgICBUcmFja2VkUHJv
cF9QZXJtaXNzaW9uRGVuaWVkID0gMTAsCisgICAgICAgVHJhY2tlZFByb3BfSW52YWxpZE9wZXJh
dGlvbiA9IDExLAorfQorcHVibGljIGVudW0gRVZSU3VibWl0RmxhZ3MKK3sKKyAgICAgICBTdWJt
aXRfRGVmYXVsdCA9IDAsCisgICAgICAgU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxp
ZWQgPSAxLAorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDIsCisgICAgICAgU3VibWl0
X1Jlc2VydmVkID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUlN0YXRlCit7CisgICAgICAgVW5kZWZp
bmVkID0gLTEsCisgICAgICAgT2ZmID0gMCwKKyAgICAgICBTZWFyY2hpbmcgPSAxLAorICAgICAg
IFNlYXJjaGluZ19BbGVydCA9IDIsCisgICAgICAgUmVhZHkgPSAzLAorICAgICAgIFJlYWR5X0Fs
ZXJ0ID0gNCwKKyAgICAgICBOb3RSZWFkeSA9IDUsCisgICAgICAgU3RhbmRieSA9IDYsCisgICAg
ICAgUmVhZHlfQWxlcnRfTG93ID0gNywKK30KK3B1YmxpYyBlbnVtIEVWUkV2ZW50VHlwZQorewor
ICAgICAgIFZSRXZlbnRfTm9uZSA9IDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0
aXZhdGVkID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkID0g
MTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgPSAxMDIsCisgICAgICAg
VlJFdmVudF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uU3RhcnRlZCA9IDEwMywKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCA9IDEwNCwKKyAgICAg
ICBWUkV2ZW50X0lwZENoYW5nZWQgPSAxMDUsCisgICAgICAgVlJFdmVudF9FbnRlclN0YW5kYnlN
b2RlID0gMTA2LAorICAgICAgIFZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSA9IDEwNywKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCA9IDEwOCwKKyAgICAgICBWUkV2ZW50
X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkID0gMTA5LAorICAgICAgIFZSRXZlbnRfTGVuc0Rpc3Rv
cnRpb25DaGFuZ2VkID0gMTEwLAorICAgICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkID0gMTEx
LAorICAgICAgIFZSRXZlbnRfQnV0dG9uUHJlc3MgPSAyMDAsCisgICAgICAgVlJFdmVudF9CdXR0
b25VbnByZXNzID0gMjAxLAorICAgICAgIFZSRXZlbnRfQnV0dG9uVG91Y2ggPSAyMDIsCisgICAg
ICAgVlJFdmVudF9CdXR0b25VbnRvdWNoID0gMjAzLAorICAgICAgIFZSRXZlbnRfTW91c2VNb3Zl
ID0gMzAwLAorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3duID0gMzAxLAorICAgICAgIFZS
RXZlbnRfTW91c2VCdXR0b25VcCA9IDMwMiwKKyAgICAgICBWUkV2ZW50X0ZvY3VzRW50ZXIgPSAz
MDMsCisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlID0gMzA0LAorICAgICAgIFZSRXZlbnRfU2Ny
b2xsID0gMzA1LAorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlID0gMzA2LAorICAgICAgIFZS
RXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCA9IDMwNywKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9j
dXNDYXB0dXJlZCA9IDQwMCwKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCA9IDQw
MSwKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNMb3N0ID0gNDAyLAorICAgICAgIFZSRXZlbnRf
U2NlbmVGb2N1c0dhaW5lZCA9IDQwMywKKyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25D
aGFuZ2VkID0gNDA0LAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQgPSA0MDUsCisg
ICAgICAgVlJFdmVudF9JbnB1dEZvY3VzQ2hhbmdlZCA9IDQwNiwKKyAgICAgICBWUkV2ZW50X1Nj
ZW5lQXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3LAorICAgICAgIFZS
RXZlbnRfSGlkZVJlbmRlck1vZGVscyA9IDQxMCwKKyAgICAgICBWUkV2ZW50X1Nob3dSZW5kZXJN
b2RlbHMgPSA0MTEsCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gPSA1MDAsCisgICAgICAg
VlJFdmVudF9PdmVybGF5SGlkZGVuID0gNTAxLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0
aXZhdGVkID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQgPSA1MDMs
CisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNlbGVjdGVkID0gNTA0LAorICAgICAgIFZS
RXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVkID0gNTA1LAorICAgICAgIFZSRXZlbnRfUmVzZXREYXNo
Ym9hcmQgPSA1MDYsCisgICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCA9IDUwNywKKyAgICAgICBW
UkV2ZW50X0ltYWdlTG9hZGVkID0gNTA4LAorICAgICAgIFZSRXZlbnRfU2hvd0tleWJvYXJkID0g
NTA5LAorICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkID0gNTEwLAorICAgICAgIFZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCA9IDUxMSwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlH
YW1lcGFkRm9jdXNMb3N0ID0gNTEyLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1
cmVDaGFuZ2VkID0gNTEzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25Eb3du
ID0gNTE0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCA9IDUxNSwKKyAg
ICAgICBWUkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQgPSA1MTYsCisgICAgICAgVlJFdmVudF9J
bWFnZUZhaWxlZCA9IDUxNywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVk
ID0gNTE4LAorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgPSA1MjAsCisgICAgICAg
VlJFdmVudF9TY3JlZW5zaG90VGFrZW4gPSA1MjEsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90
RmFpbGVkID0gNTIyLAorICAgICAgIFZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFzaGJvYXJk
ID0gNTIzLAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQgPSA1
MjQsCisgICAgICAgVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCA9IDUyNSwK
KyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biA9IDYwMCwKKyAgICAgICBWUkV2ZW50
X05vdGlmaWNhdGlvbl9IaWRkZW4gPSA2MDEsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25f
QmVnaW5JbnRlcmFjdGlvbiA9IDYwMiwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0
cm95ZWQgPSA2MDMsCisgICAgICAgVlJFdmVudF9RdWl0ID0gNzAwLAorICAgICAgIFZSRXZlbnRf
UHJvY2Vzc1F1aXQgPSA3MDEsCisgICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0
ID0gNzAyLAorICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCA9IDcwMywKKyAgICAgICBW
UkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQsCisgICAgICAgVlJFdmVudF9DaGFwZXJv
bmVEYXRhSGFzQ2hhbmdlZCA9IDgwMCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNl
SGFzQ2hhbmdlZCA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hh
bmdlZCA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQg
PSA4MDMsCisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0ID0gODA0LAorICAgICAg
IFZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODIwLAorICAgICAgIFZSRXZlbnRf
QmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkID0gODUwLAorICAgICAgIFZSRXZlbnRfQ2FtZXJh
U2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MSwKKyAgICAgICBWUkV2ZW50X1JlcHJvamVjdGlvblNl
dHRpbmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAgIFZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NI
YXZlQ2hhbmdlZCA9IDg1MywKKyAgICAgICBWUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZl
Q2hhbmdlZCA9IDg1NCwKKyAgICAgICBWUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCA9
IDg1NSwKKyAgICAgICBWUkV2ZW50X1N0YXR1c1VwZGF0ZSA9IDkwMCwKKyAgICAgICBWUkV2ZW50
X01DSW1hZ2VVcGRhdGVkID0gMTAwMCwKKyAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3Rh
cnRlZCA9IDExMDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkID0gMTEw
MSwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2xvc2VkID0gMTIwMCwKKyAgICAgICBWUkV2ZW50
X0tleWJvYXJkQ2hhcklucHV0ID0gMTIwMSwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkRG9uZSA9
IDEyMDIsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkID0gMTMw
MCwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgPSAxMzAxLAor
ICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwU3RhcnRlZCA9IDEzMDIs
CisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RVcGRhdGVkID0gMTMwMywKKyAgICAgICBW
UkV2ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkID0gMTMwNCwKKyAgICAgICBWUkV2ZW50X0Fw
cGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBsZXRlID0gMTMwNSwKKyAgICAgICBW
UkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gPSAxNDAwLAorICAgICAgIFZSRXZl
bnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gPSAxNDAxLAorICAgICAgIFZSRXZlbnRf
Q29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93biA9IDE0MTAsCisgICAgICAgVlJFdmVudF9D
b21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiA9IDE0MTEsCisgICAgICAgVlJFdmVudF9U
cmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJh
Y2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gPSAxNTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tl
ZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9FZGl0aW5nU3VyZmFjZSA9IDE1NTAsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRl
c3RfRW5hYmxlQ2FwdHVyZSA9IDE2MDAsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3Rf
RGlzYWJsZUNhcHR1cmUgPSAxNjAxLAorICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0Zp
ZGVsaXR5TGV2ZWwgPSAxNjAyLAorICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfQ2xvc2Vk
ID0gMTY1MCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0g
MTAwMDAsCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgPSAxOTk5
OSwKK30KK3B1YmxpYyBlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7CisgICAgICAga19FRGV2
aWNlQWN0aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9JZGxlID0gMCwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFj
dGlvbiA9IDEsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25f
VGltZW91dCA9IDIsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywK
K30KK3B1YmxpYyBlbnVtIEVWUkJ1dHRvbklkCit7CisgICAgICAga19FQnV0dG9uX1N5c3RlbSA9
IDAsCisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSA9IDEsCisgICAgICAga19FQnV0
dG9uX0dyaXAgPSAyLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX0xlZnQgPSAzLAorICAgICAgIGtf
RUJ1dHRvbl9EUGFkX1VwID0gNCwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9SaWdodCA9IDUsCisg
ICAgICAga19FQnV0dG9uX0RQYWRfRG93biA9IDYsCisgICAgICAga19FQnV0dG9uX0EgPSA3LAor
ICAgICAgIGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgPSAzMSwKKyAgICAgICBrX0VCdXR0b25f
QXhpczAgPSAzMiwKKyAgICAgICBrX0VCdXR0b25fQXhpczEgPSAzMywKKyAgICAgICBrX0VCdXR0
b25fQXhpczIgPSAzNCwKKyAgICAgICBrX0VCdXR0b25fQXhpczMgPSAzNSwKKyAgICAgICBrX0VC
dXR0b25fQXhpczQgPSAzNiwKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCA9IDMy
LAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdnZXIgPSAzMywKKyAgICAgICBrX0VCdXR0
b25fRGFzaGJvYXJkX0JhY2sgPSAyLAorICAgICAgIGtfRUJ1dHRvbl9NYXggPSA2NCwKK30KK3B1
YmxpYyBlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgTGVmdCA9IDEsCisgICAgICAgUmln
aHQgPSAyLAorICAgICAgIE1pZGRsZSA9IDQsCit9CitwdWJsaWMgZW51bSBFSGlkZGVuQXJlYU1l
c2hUeXBlCit7CisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAwLAorICAgICAg
IGtfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2UgPSAxLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNo
X0xpbmVMb29wID0gMiwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9NYXggPSAzLAorfQorcHVi
bGljIGVudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAga19lQ29udHJvbGxlckF4
aXNfTm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJhY2tQYWQgPSAxLAorICAg
ICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBrX2VDb250cm9sbGVy
QXhpc19UcmlnZ2VyID0gMywKK30KK3B1YmxpYyBlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1
dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAorICAg
ICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9CitwdWJsaWMgZW51bSBF
Q29sbGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0JF
R0lOTkVSID0gMCwKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSA9
IDEsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTID0gMiwKKyAgICAgICBD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VEID0gMywKKyAgICAgICBDT0xMSVNJT05fQk9V
TkRTX1NUWUxFX05PTkUgPSA0LAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQg
PSA1LAorfQorcHVibGljIGVudW0gRVZST3ZlcmxheUVycm9yCit7CisgICAgICAgTm9uZSA9IDAs
CisgICAgICAgVW5rbm93bk92ZXJsYXkgPSAxMCwKKyAgICAgICBJbnZhbGlkSGFuZGxlID0gMTEs
CisgICAgICAgUGVybWlzc2lvbkRlbmllZCA9IDEyLAorICAgICAgIE92ZXJsYXlMaW1pdEV4Y2Vl
ZGVkID0gMTMsCisgICAgICAgV3JvbmdWaXNpYmlsaXR5VHlwZSA9IDE0LAorICAgICAgIEtleVRv
b0xvbmcgPSAxNSwKKyAgICAgICBOYW1lVG9vTG9uZyA9IDE2LAorICAgICAgIEtleUluVXNlID0g
MTcsCisgICAgICAgV3JvbmdUcmFuc2Zvcm1UeXBlID0gMTgsCisgICAgICAgSW52YWxpZFRyYWNr
ZWREZXZpY2UgPSAxOSwKKyAgICAgICBJbnZhbGlkUGFyYW1ldGVyID0gMjAsCisgICAgICAgVGh1
bWJuYWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgQXJyYXlUb29TbWFsbCA9IDIyLAor
ICAgICAgIFJlcXVlc3RGYWlsZWQgPSAyMywKKyAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDI0LAor
ICAgICAgIFVuYWJsZVRvTG9hZEZpbGUgPSAyNSwKKyAgICAgICBLZXlib2FyZEFscmVhZHlJblVz
ZSA9IDI2LAorICAgICAgIE5vTmVpZ2hib3IgPSAyNywKKyAgICAgICBUb29NYW55TWFza1ByaW1p
dGl2ZXMgPSAyOSwKKyAgICAgICBCYWRNYXNrUHJpbWl0aXZlID0gMzAsCit9CitwdWJsaWMgZW51
bSBFVlJBcHBsaWNhdGlvblR5cGUKK3sKKyAgICAgICBWUkFwcGxpY2F0aW9uX090aGVyID0gMCwK
KyAgICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lID0gMSwKKyAgICAgICBWUkFwcGxpY2F0aW9uX092
ZXJsYXkgPSAyLAorICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsCisgICAgICAg
VlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1ZSTW9uaXRv
ciA9IDUsCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwKKyAgICAgICBW
UkFwcGxpY2F0aW9uX01heCA9IDcsCit9CitwdWJsaWMgZW51bSBFVlJGaXJtd2FyZUVycm9yCit7
CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgU3VjY2VzcyA9IDEsCisgICAgICAgRmFpbCA9IDIs
Cit9CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgoreworICAgICAgIE9LID0gMCwK
KyAgICAgICBJbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisgICAgICAgTm90aWZpY2F0aW9u
UXVldWVGdWxsID0gMTAxLAorICAgICAgIEludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAg
ICAgIFN5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAorfQorcHVibGljIGVu
dW0gRVZSSW5pdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgVW5rbm93biA9IDEs
CisgICAgICAgSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDEwMCwKKyAgICAgICBJbml0X0lu
c3RhbGxhdGlvbkNvcnJ1cHQgPSAxMDEsCisgICAgICAgSW5pdF9WUkNsaWVudERMTE5vdEZvdW5k
ID0gMTAyLAorICAgICAgIEluaXRfRmlsZU5vdEZvdW5kID0gMTAzLAorICAgICAgIEluaXRfRmFj
dG9yeU5vdEZvdW5kID0gMTA0LAorICAgICAgIEluaXRfSW50ZXJmYWNlTm90Rm91bmQgPSAxMDUs
CisgICAgICAgSW5pdF9JbnZhbGlkSW50ZXJmYWNlID0gMTA2LAorICAgICAgIEluaXRfVXNlckNv
bmZpZ0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisgICAgICAgSW5pdF9IbWROb3RGb3VuZCA9IDEw
OCwKKyAgICAgICBJbml0X05vdEluaXRpYWxpemVkID0gMTA5LAorICAgICAgIEluaXRfUGF0aFJl
Z2lzdHJ5Tm90Rm91bmQgPSAxMTAsCisgICAgICAgSW5pdF9Ob0NvbmZpZ1BhdGggPSAxMTEsCisg
ICAgICAgSW5pdF9Ob0xvZ1BhdGggPSAxMTIsCisgICAgICAgSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSA9IDExMywKKyAgICAgICBJbml0X0FwcEluZm9Jbml0RmFpbGVkID0gMTE0LAorICAg
ICAgIEluaXRfUmV0cnkgPSAxMTUsCisgICAgICAgSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgPSAx
MTYsCisgICAgICAgSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nID0gMTE3LAorICAgICAgIEluaXRf
U2V0dGluZ3NJbml0RmFpbGVkID0gMTE4LAorICAgICAgIEluaXRfU2h1dHRpbmdEb3duID0gMTE5
LAorICAgICAgIEluaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisgICAgICAgSW5pdF9Ob1NlcnZl
ckZvckJhY2tncm91bmRBcHAgPSAxMjEsCisgICAgICAgSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29t
cG9zaXRvciA9IDEyMiwKKyAgICAgICBJbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgPSAx
MjMsCisgICAgICAgSW5pdF9JbnRlcm5hbCA9IDEyNCwKKyAgICAgICBJbml0X0htZERyaXZlcklk
SXNOb25lID0gMTI1LAorICAgICAgIEluaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCA9IDEy
NiwKKyAgICAgICBJbml0X1ZSTW9uaXRvck5vdEZvdW5kID0gMTI3LAorICAgICAgIEluaXRfVlJN
b25pdG9yU3RhcnR1cEZhaWxlZCA9IDEyOCwKKyAgICAgICBJbml0X0xvd1Bvd2VyV2F0Y2hkb2dO
b3RTdXBwb3J0ZWQgPSAxMjksCisgICAgICAgSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlID0g
MTMwLAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgPSAxMzEsCisgICAg
ICAgSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEzMiwKKyAgICAgICBJbml0X1ZS
RGFzaGJvYXJkTm90Rm91bmQgPSAxMzMsCisgICAgICAgSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBG
YWlsZWQgPSAxMzQsCisgICAgICAgRHJpdmVyX0ZhaWxlZCA9IDIwMCwKKyAgICAgICBEcml2ZXJf
VW5rbm93biA9IDIwMSwKKyAgICAgICBEcml2ZXJfSG1kVW5rbm93biA9IDIwMiwKKyAgICAgICBE
cml2ZXJfTm90TG9hZGVkID0gMjAzLAorICAgICAgIERyaXZlcl9SdW50aW1lT3V0T2ZEYXRlID0g
MjA0LAorICAgICAgIERyaXZlcl9IbWRJblVzZSA9IDIwNSwKKyAgICAgICBEcml2ZXJfTm90Q2Fs
aWJyYXRlZCA9IDIwNiwKKyAgICAgICBEcml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkID0gMjA3LAor
ICAgICAgIERyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgPSAyMDgsCisgICAgICAgRHJpdmVyX1Ry
YWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIERyaXZlcl9IbWREcml2
ZXJJZE91dE9mQm91bmRzID0gMjExLAorICAgICAgIERyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQg
PSAyMTIsCisgICAgICAgSVBDX1NlcnZlckluaXRGYWlsZWQgPSAzMDAsCisgICAgICAgSVBDX0Nv
bm5lY3RGYWlsZWQgPSAzMDEsCisgICAgICAgSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCA9IDMw
MiwKKyAgICAgICBJUENfQ29tcG9zaXRvckluaXRGYWlsZWQgPSAzMDMsCisgICAgICAgSVBDX011
dGV4SW5pdEZhaWxlZCA9IDMwNCwKKyAgICAgICBJUENfRmFpbGVkID0gMzA1LAorICAgICAgIElQ
Q19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCA9IDMwNiwKKyAgICAgICBJUENfQ29tcG9zaXRvcklu
dmFsaWRDb25uZWN0UmVzcG9uc2UgPSAzMDcsCisgICAgICAgSVBDX0Nvbm5lY3RGYWlsZWRBZnRl
ck11bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCisgICAgICAgQ29tcG9zaXRvcl9GYWlsZWQgPSA0MDAs
CisgICAgICAgQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQgPSA0MDEsCisgICAgICAg
Q29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlID0gNDAyLAorICAgICAgIENvbXBvc2l0
b3JfT3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAgICAgQ29tcG9zaXRvcl9TY3JlZW5zaG90
c0luaXRGYWlsZWQgPSA0MDQsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0
VG9PY3VsdXNSdW50aW1lID0gMTAwMCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
YW50T3BlbkRldmljZSA9IDExMDEsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5h
YmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQgPSAxMTAyLAorICAgICAgIFZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX05vU3RvcmVkQ29uZmlnID0gMTEwMywKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9Db25maWdUb29CaWcgPSAxMTA0LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb1NtYWxsID0gMTEwNSwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb0luaXRaTGliID0gMTEwNiwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
YW50UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCA9IDExMDgsCisgICAgICAgVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ID0gMTEwOSwKKyAgICAgICBW
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCA9IDExMTAsCisg
ICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgPSAxMTEx
LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgPSAxMTEyLAor
ICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrID0g
MTExMywKKyAgICAgICBTdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5kID0gMjAwMCwKK30K
K3B1YmxpYyBlbnVtIEVWUlNjcmVlbnNob3RUeXBlCit7CisgICAgICAgTm9uZSA9IDAsCisgICAg
ICAgTW9ubyA9IDEsCisgICAgICAgU3RlcmVvID0gMiwKKyAgICAgICBDdWJlbWFwID0gMywKKyAg
ICAgICBNb25vUGFub3JhbWEgPSA0LAorICAgICAgIFN0ZXJlb1Bhbm9yYW1hID0gNSwKK30KK3B1
YmxpYyBlbnVtIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcworeworICAgICAgIFByZXZp
ZXcgPSAwLAorICAgICAgIFZSID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUlRyYWNrZWRDYW1lcmFF
cnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIE9wZXJhdGlvbkZhaWxlZCA9IDEwMCwK
KyAgICAgICBJbnZhbGlkSGFuZGxlID0gMTAxLAorICAgICAgIEludmFsaWRGcmFtZUhlYWRlclZl
cnNpb24gPSAxMDIsCisgICAgICAgT3V0T2ZIYW5kbGVzID0gMTAzLAorICAgICAgIElQQ0ZhaWx1
cmUgPSAxMDQsCisgICAgICAgTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSA9IDEwNSwKKyAgICAg
ICBTaGFyZWRNZW1vcnlGYWlsdXJlID0gMTA2LAorICAgICAgIEZyYW1lQnVmZmVyaW5nRmFpbHVy
ZSA9IDEwNywKKyAgICAgICBTdHJlYW1TZXR1cEZhaWx1cmUgPSAxMDgsCisgICAgICAgSW52YWxp
ZEdMVGV4dHVyZUlkID0gMTA5LAorICAgICAgIEludmFsaWRTaGFyZWRUZXh0dXJlSGFuZGxlID0g
MTEwLAorICAgICAgIEZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgPSAxMTEsCisgICAgICAgU2hhcmVk
VGV4dHVyZUZhaWx1cmUgPSAxMTIsCisgICAgICAgTm9GcmFtZUF2YWlsYWJsZSA9IDExMywKKyAg
ICAgICBJbnZhbGlkQXJndW1lbnQgPSAxMTQsCisgICAgICAgSW52YWxpZEZyYW1lQnVmZmVyU2l6
ZSA9IDExNSwKK30KK3B1YmxpYyBlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAg
ICAgICBEaXN0b3J0ZWQgPSAwLAorICAgICAgIFVuZGlzdG9ydGVkID0gMSwKKyAgICAgICBNYXhp
bXVtVW5kaXN0b3J0ZWQgPSAyLAorICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMgPSAzLAor
fQorcHVibGljIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgoreworICAgICAgIE5vbmUgPSAwLAor
ICAgICAgIEFwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAsCisgICAgICAgTm9NYW5pZmVzdCA9IDEw
MSwKKyAgICAgICBOb0FwcGxpY2F0aW9uID0gMTAyLAorICAgICAgIEludmFsaWRJbmRleCA9IDEw
MywKKyAgICAgICBVbmtub3duQXBwbGljYXRpb24gPSAxMDQsCisgICAgICAgSVBDRmFpbGVkID0g
MTA1LAorICAgICAgIEFwcGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsCisgICAgICAgSW52
YWxpZE1hbmlmZXN0ID0gMTA3LAorICAgICAgIEludmFsaWRBcHBsaWNhdGlvbiA9IDEwOCwKKyAg
ICAgICBMYXVuY2hGYWlsZWQgPSAxMDksCisgICAgICAgQXBwbGljYXRpb25BbHJlYWR5U3RhcnRp
bmcgPSAxMTAsCisgICAgICAgTGF1bmNoSW5Qcm9ncmVzcyA9IDExMSwKKyAgICAgICBPbGRBcHBs
aWNhdGlvblF1aXR0aW5nID0gMTEyLAorICAgICAgIFRyYW5zaXRpb25BYm9ydGVkID0gMTEzLAor
ICAgICAgIElzVGVtcGxhdGUgPSAxMTQsCisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAyMDAsCisg
ICAgICAgUHJvcGVydHlOb3RTZXQgPSAyMDEsCisgICAgICAgVW5rbm93blByb3BlcnR5ID0gMjAy
LAorICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCit9CitwdWJsaWMgZW51bSBFVlJBcHBs
aWNhdGlvblByb3BlcnR5Cit7CisgICAgICAgTmFtZV9TdHJpbmcgPSAwLAorICAgICAgIExhdW5j
aFR5cGVfU3RyaW5nID0gMTEsCisgICAgICAgV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgPSAxMiwK
KyAgICAgICBCaW5hcnlQYXRoX1N0cmluZyA9IDEzLAorICAgICAgIEFyZ3VtZW50c19TdHJpbmcg
PSAxNCwKKyAgICAgICBVUkxfU3RyaW5nID0gMTUsCisgICAgICAgRGVzY3JpcHRpb25fU3RyaW5n
ID0gNTAsCisgICAgICAgTmV3c1VSTF9TdHJpbmcgPSA1MSwKKyAgICAgICBJbWFnZVBhdGhfU3Ry
aW5nID0gNTIsCisgICAgICAgU291cmNlX1N0cmluZyA9IDUzLAorICAgICAgIElzRGFzaGJvYXJk
T3ZlcmxheV9Cb29sID0gNjAsCisgICAgICAgSXNUZW1wbGF0ZV9Cb29sID0gNjEsCisgICAgICAg
SXNJbnN0YW5jZWRfQm9vbCA9IDYyLAorICAgICAgIElzSW50ZXJuYWxfQm9vbCA9IDYzLAorICAg
ICAgIExhc3RMYXVuY2hUaW1lX1VpbnQ2NCA9IDcwLAorfQorcHVibGljIGVudW0gRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGUKK3sKKyAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9O
b25lID0gMCwKKyAgICAgICBWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCA9
IDEwLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExh
dW5jaCA9IDExLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05ld0FwcExhdW5jaGVk
ID0gMjAsCit9CitwdWJsaWMgZW51bSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlCit7CisgICAg
ICAgT0sgPSAxLAorICAgICAgIFdhcm5pbmcgPSAxMDAsCisgICAgICAgV2FybmluZ19CYXNlU3Rh
dGlvbk1heUhhdmVNb3ZlZCA9IDEwMSwKKyAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3Zl
ZCA9IDEwMiwKKyAgICAgICBXYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsCisgICAg
ICAgRXJyb3IgPSAyMDAsCisgICAgICAgRXJyb3JfQmFzZVN0YXRpb25VbmluaXRpYWxpemVkID0g
MjAxLAorICAgICAgIEVycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3QgPSAyMDIsCisgICAgICAgRXJy
b3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLAorICAgICAgIEVycm9yX0NvbGxpc2lvbkJvdW5kc0lu
dmFsaWQgPSAyMDQsCit9CitwdWJsaWMgZW51bSBFQ2hhcGVyb25lQ29uZmlnRmlsZQoreworICAg
ICAgIExpdmUgPSAxLAorICAgICAgIFRlbXAgPSAyLAorfQorcHVibGljIGVudW0gRUNoYXBlcm9u
ZUltcG9ydEZsYWdzCit7CisgICAgICAgRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5ID0gMSwK
K30KK3B1YmxpYyBlbnVtIEVWUkNvbXBvc2l0b3JFcnJvcgoreworICAgICAgIE5vbmUgPSAwLAor
ICAgICAgIFJlcXVlc3RGYWlsZWQgPSAxLAorICAgICAgIEluY29tcGF0aWJsZVZlcnNpb24gPSAx
MDAsCisgICAgICAgRG9Ob3RIYXZlRm9jdXMgPSAxMDEsCisgICAgICAgSW52YWxpZFRleHR1cmUg
PSAxMDIsCisgICAgICAgSXNOb3RTY2VuZUFwcGxpY2F0aW9uID0gMTAzLAorICAgICAgIFRleHR1
cmVJc09uV3JvbmdEZXZpY2UgPSAxMDQsCisgICAgICAgVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZv
cm1hdCA9IDEwNSwKKyAgICAgICBTaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRlZCA9IDEwNiwKKyAg
ICAgICBJbmRleE91dE9mUmFuZ2UgPSAxMDcsCisgICAgICAgQWxyZWFkeVN1Ym1pdHRlZCA9IDEw
OCwKK30KK3B1YmxpYyBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9kCit7CisgICAgICAgTm9uZSA9
IDAsCisgICAgICAgTW91c2UgPSAxLAorfQorcHVibGljIGVudW0gVlJPdmVybGF5VHJhbnNmb3Jt
VHlwZQoreworICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9BYnNvbHV0ZSA9IDAsCisgICAgICAg
VlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSA9IDEsCisgICAgICAgVlJP
dmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgPSAyLAorICAgICAgIFZST3ZlcmxheVRyYW5z
Zm9ybV9UcmFja2VkQ29tcG9uZW50ID0gMywKK30KK3B1YmxpYyBlbnVtIFZST3ZlcmxheUZsYWdz
Cit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgQ3VydmVkID0gMSwKKyAgICAgICBSR1NTNFgg
PSAyLAorICAgICAgIE5vRGFzaGJvYXJkVGFiID0gMywKKyAgICAgICBBY2NlcHRzR2FtZXBhZEV2
ZW50cyA9IDQsCisgICAgICAgU2hvd0dhbWVwYWRGb2N1cyA9IDUsCisgICAgICAgU2VuZFZSU2Ny
b2xsRXZlbnRzID0gNiwKKyAgICAgICBTZW5kVlJUb3VjaHBhZEV2ZW50cyA9IDcsCisgICAgICAg
U2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwgPSA4LAorICAgICAgIFRyYW5zZmVyT3duZXJzaGlwVG9J
bnRlcm5hbFByb2Nlc3MgPSA5LAorICAgICAgIFNpZGVCeVNpZGVfUGFyYWxsZWwgPSAxMCwKKyAg
ICAgICBTaWRlQnlTaWRlX0Nyb3NzZWQgPSAxMSwKKyAgICAgICBQYW5vcmFtYSA9IDEyLAorICAg
ICAgIFN0ZXJlb1Bhbm9yYW1hID0gMTMsCisgICAgICAgU29ydFdpdGhOb25TY2VuZU92ZXJsYXlz
ID0gMTQsCisgICAgICAgVmlzaWJsZUluRGFzaGJvYXJkID0gMTUsCit9CitwdWJsaWMgZW51bSBW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKK3sKKyAgICAgICBCdXR0b25QcmVzc18wID0gMCwKKyAg
ICAgICBCdXR0b25QcmVzc18xID0gMSwKKyAgICAgICBCdXR0b25QcmVzc18yID0gMiwKKyAgICAg
ICBCdXR0b25QcmVzc18zID0gMywKKyAgICAgICBDb3VsZG50RmluZFN5c3RlbU92ZXJsYXkgPSA0
LAorICAgICAgIENvdWxkbnRGaW5kT3JDcmVhdGVDbGllbnRPdmVybGF5ID0gNSwKKyAgICAgICBB
cHBsaWNhdGlvblF1aXQgPSA2LAorfQorcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRNb2Rl
Cit7CisgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgIGtf
RUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAorICAgICAgIGtfRUdhbWVwYWRUZXh0
SW5wdXRNb2RlU3VibWl0ID0gMiwKK30KK3B1YmxpYyBlbnVtIEVHYW1lcGFkVGV4dElucHV0TGlu
ZU1vZGUKK3sKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0g
MCwKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMSwK
K30KK3B1YmxpYyBlbnVtIEVPdmVybGF5RGlyZWN0aW9uCit7CisgICAgICAgVXAgPSAwLAorICAg
ICAgIERvd24gPSAxLAorICAgICAgIExlZnQgPSAyLAorICAgICAgIFJpZ2h0ID0gMywKKyAgICAg
ICBDb3VudCA9IDQsCit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1By
aW1pdGl2ZVR5cGUKK3sKKyAgICAgICBPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9S
ZWN0YW5nbGUgPSAwLAorICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX0Np
cmNsZSA9IDEsCit9CitwdWJsaWMgZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7CisgICAgICAg
Tm9uZSA9IDAsCisgICAgICAgTG9hZGluZyA9IDEwMCwKKyAgICAgICBOb3RTdXBwb3J0ZWQgPSAy
MDAsCisgICAgICAgSW52YWxpZEFyZyA9IDMwMCwKKyAgICAgICBJbnZhbGlkTW9kZWwgPSAzMDEs
CisgICAgICAgTm9TaGFwZXMgPSAzMDIsCisgICAgICAgTXVsdGlwbGVTaGFwZXMgPSAzMDMsCisg
ICAgICAgVG9vTWFueVZlcnRpY2VzID0gMzA0LAorICAgICAgIE11bHRpcGxlVGV4dHVyZXMgPSAz
MDUsCisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAzMDYsCisgICAgICAgTm90RW5vdWdoTm9ybWFs
cyA9IDMwNywKKyAgICAgICBOb3RFbm91Z2hUZXhDb29yZHMgPSAzMDgsCisgICAgICAgSW52YWxp
ZFRleHR1cmUgPSA0MDAsCit9CitwdWJsaWMgZW51bSBFVlJDb21wb25lbnRQcm9wZXJ0eQorewor
ICAgICAgIElzU3RhdGljID0gMSwKKyAgICAgICBJc1Zpc2libGUgPSAyLAorICAgICAgIElzVG91
Y2hlZCA9IDQsCisgICAgICAgSXNQcmVzc2VkID0gOCwKKyAgICAgICBJc1Njcm9sbGVkID0gMTYs
Cit9CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25UeXBlCit7CisgICAgICAgVHJhbnNpZW50
ID0gMCwKKyAgICAgICBQZXJzaXN0ZW50ID0gMSwKKyAgICAgICBUcmFuc2llbnRfU3lzdGVtV2l0
aFVzZXJWYWx1ZSA9IDIsCit9CitwdWJsaWMgZW51bSBFVlJOb3RpZmljYXRpb25TdHlsZQorewor
ICAgICAgIE5vbmUgPSAwLAorICAgICAgIEFwcGxpY2F0aW9uID0gMTAwLAorICAgICAgIENvbnRh
Y3RfRGlzYWJsZWQgPSAyMDAsCisgICAgICAgQ29udGFjdF9FbmFibGVkID0gMjAxLAorICAgICAg
IENvbnRhY3RfQWN0aXZlID0gMjAyLAorfQorcHVibGljIGVudW0gRVZSU2V0dGluZ3NFcnJvcgor
eworICAgICAgIE5vbmUgPSAwLAorICAgICAgIElQQ0ZhaWxlZCA9IDEsCisgICAgICAgV3JpdGVG
YWlsZWQgPSAyLAorICAgICAgIFJlYWRGYWlsZWQgPSAzLAorICAgICAgIEpzb25QYXJzZUZhaWxl
ZCA9IDQsCisgICAgICAgVW5zZXRTZXR0aW5nSGFzTm9EZWZhdWx0ID0gNSwKK30KK3B1YmxpYyBl
bnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIE5vbmUgPSAwLAorICAgICAgIFJlcXVl
c3RGYWlsZWQgPSAxLAorICAgICAgIEluY29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAg
Tm90Rm91bmQgPSAxMDEsCisgICAgICAgQnVmZmVyVG9vU21hbGwgPSAxMDIsCisgICAgICAgU2Ny
ZWVuc2hvdEFscmVhZHlJblByb2dyZXNzID0gMTA4LAorfQorCitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuRXhwbGljaXQpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRGF0YV90Cit7CisgICAgICAg
W0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOworICAg
ICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xs
ZXI7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Nb3VzZV90IG1vdXNl
OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xs
OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUHJvY2Vzc190IHByb2Nl
c3M7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Ob3RpZmljYXRpb25f
dCBub3RpZmljYXRpb247CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9P
dmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X0lwZF90IGlwZDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0NoYXBl
cm9uZV90IGNoYXBlcm9uZTsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVzdDsKKyAgICAgICBbRmllbGRPZmZzZXQo
MCldIHB1YmxpYyBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAgICBb
RmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0
ZWRaZXJvUG9zZVJlc2V0OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRf
U2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMg
VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAg
W0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxp
Y2F0aW9uTGF1bmNoOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfRWRp
dGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFtGaWVsZE9mZnNldCgw
KV0gcHVibGljIFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAg
ICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7IC8v
IFRoaXMgaGFzIHRvIGJlIGF0IHRoZSBlbmQgZHVlIHRvIGEgbW9ubyBidWcKK30KKworCitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90Cit7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDAp
XSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90IG1fUmVjdGFuZ2xlOworICAgICAg
IFtGaWVsZE9mZnNldCgwKV0gcHVibGljIEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNs
ZTsKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbTA7IC8vZmxvYXRbM11b
NF0KKyAgICAgICBwdWJsaWMgZmxvYXQgbTE7CisgICAgICAgcHVibGljIGZsb2F0IG0yOworICAg
ICAgIHB1YmxpYyBmbG9hdCBtMzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTQ7CisgICAgICAgcHVi
bGljIGZsb2F0IG01OworICAgICAgIHB1YmxpYyBmbG9hdCBtNjsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbTc7CisgICAgICAgcHVibGljIGZsb2F0IG04OworICAgICAgIHB1YmxpYyBmbG9hdCBtOTsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbTEwOworICAgICAgIHB1YmxpYyBmbG9hdCBtMTE7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kTWF0
cml4NDRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFs0XVs0XQorICAgICAg
IHB1YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTI7CisgICAgICAgcHVibGlj
IGZsb2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bTU7CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAgICAgIHB1YmxpYyBmbG9hdCBtNzsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVibGljIGZsb2F0IG05OworICAgICAgIHB1
YmxpYyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZsb2F0IG0xMTsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbTEyOworICAgICAgIHB1YmxpYyBmbG9hdCBtMTM7CisgICAgICAgcHVibGljIGZsb2F0
IG0xNDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTE1OworfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFZlY3RvcjNfdAoreworICAgICAgIHB1
YmxpYyBmbG9hdCB2MDsgLy9mbG9hdFszXQorICAgICAgIHB1YmxpYyBmbG9hdCB2MTsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgdjI7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IHYw
OyAvL2Zsb2F0WzRdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworICAgICAgIHB1YmxpYyBmbG9h
dCB2MjsKKyAgICAgICBwdWJsaWMgZmxvYXQgdjM7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM2RfdAoreworICAgICAgIHB1
YmxpYyBkb3VibGUgdjA7IC8vZG91YmxlWzNdCisgICAgICAgcHVibGljIGRvdWJsZSB2MTsKKyAg
ICAgICBwdWJsaWMgZG91YmxlIHYyOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAgICAgIHB1YmxpYyBmbG9h
dCB2MDsgLy9mbG9hdFsyXQorICAgICAgIHB1YmxpYyBmbG9hdCB2MTsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRRdWF0ZXJuaW9uX3QK
K3sKKyAgICAgICBwdWJsaWMgZG91YmxlIHc7CisgICAgICAgcHVibGljIGRvdWJsZSB4OworICAg
ICAgIHB1YmxpYyBkb3VibGUgeTsKKyAgICAgICBwdWJsaWMgZG91YmxlIHo7Cit9CitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kQ29sb3JfdAor
eworICAgICAgIHB1YmxpYyBmbG9hdCByOworICAgICAgIHB1YmxpYyBmbG9hdCBnOworICAgICAg
IHB1YmxpYyBmbG9hdCBiOworICAgICAgIHB1YmxpYyBmbG9hdCBhOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YWRfdAoreworICAg
ICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMwOyAvL0htZFZlY3RvcjNfdFs0XQorICAg
ICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMxOworICAgICAgIHB1YmxpYyBIbWRWZWN0
b3IzX3QgdkNvcm5lcnMyOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkNvcm5lcnMzOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEht
ZFJlY3QyX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAg
IHB1YmxpYyBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfQorW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190
Cit7CisgICAgICAgcHVibGljIGZsb2F0IHJmUmVkMDsgLy9mbG9hdFsyXQorICAgICAgIHB1Ymxp
YyBmbG9hdCByZlJlZDE7CisgICAgICAgcHVibGljIGZsb2F0IHJmR3JlZW4wOyAvL2Zsb2F0WzJd
CisgICAgICAgcHVibGljIGZsb2F0IHJmR3JlZW4xOworICAgICAgIHB1YmxpYyBmbG9hdCByZkJs
dWUwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTE7Cit9CitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVGV4dHVyZV90Cit7
CisgICAgICAgcHVibGljIEludFB0ciBoYW5kbGU7IC8vIHZvaWQgKgorICAgICAgIHB1YmxpYyBF
VGV4dHVyZVR5cGUgZVR5cGU7CisgICAgICAgcHVibGljIEVDb2xvclNwYWNlIGVDb2xvclNwYWNl
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBtRGV2
aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlZlbG9j
aXR5OworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsKKyAgICAg
ICBwdWJsaWMgRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJQb3NlSXNWYWxpZDsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29s
IGJEZXZpY2VJc0Nvbm5lY3RlZDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIHB1YmxpYyBm
bG9hdCB1TWluOworICAgICAgIHB1YmxpYyBmbG9hdCB2TWluOworICAgICAgIHB1YmxpYyBmbG9h
dCB1TWF4OworICAgICAgIHB1YmxpYyBmbG9hdCB2TWF4OworfQorW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFfdAor
eworICAgICAgIHB1YmxpYyB1bG9uZyBtX25JbWFnZTsKKyAgICAgICBwdWJsaWMgSW50UHRyIG1f
cERldmljZTsgLy8gc3RydWN0IFZrRGV2aWNlX1QgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9w
UGh5c2ljYWxEZXZpY2U7IC8vIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKgorICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0luc3RhbmNlX1QgKgorICAgICAg
IHB1YmxpYyBJbnRQdHIgbV9wUXVldWU7IC8vIHN0cnVjdCBWa1F1ZXVlX1QgKgorICAgICAgIHB1
YmxpYyB1aW50IG1fblF1ZXVlRmFtaWx5SW5kZXg7CisgICAgICAgcHVibGljIHVpbnQgbV9uV2lk
dGg7CisgICAgICAgcHVibGljIHVpbnQgbV9uSGVpZ2h0OworICAgICAgIHB1YmxpYyB1aW50IG1f
bkZvcm1hdDsKKyAgICAgICBwdWJsaWMgdWludCBtX25TYW1wbGVDb3VudDsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBEM0QxMlRleHR1cmVE
YXRhX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFJlc291cmNlOyAvLyBzdHJ1Y3QgSUQz
RDEyUmVzb3VyY2UgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wQ29tbWFuZFF1ZXVlOyAvLyBz
dHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoKKyAgICAgICBwdWJsaWMgdWludCBtX25Ob2RlTWFz
azsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBWUkV2ZW50X0NvbnRyb2xsZXJfdAoreworICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKK30K
K1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2
ZW50X01vdXNlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgeDsKKyAgICAgICBwdWJsaWMgZmxv
YXQgeTsKKyAgICAgICBwdWJsaWMgdWludCBidXR0b247Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAoreworICAg
ICAgIHB1YmxpYyBmbG9hdCB4ZGVsdGE7CisgICAgICAgcHVibGljIGZsb2F0IHlkZWx0YTsKKyAg
ICAgICBwdWJsaWMgdWludCByZXBlYXRDb3VudDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92ZV90Cit7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBi
RmluZ2VyRG93bjsKKyAgICAgICBwdWJsaWMgZmxvYXQgZmxTZWNvbmRzRmluZ2VyRG93bjsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAgIHB1YmxpYyBmbG9hdCBmVmFs
dWVZRmlyc3Q7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgcHVibGlj
IGZsb2F0IGZWYWx1ZVlSYXc7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHB1Ymxp
YyB1bG9uZyB1bFVzZXJWYWx1ZTsKKyAgICAgICBwdWJsaWMgdWludCBub3RpZmljYXRpb25JZDsK
K30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBW
UkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHB1YmxpYyB1aW50IHBpZDsKKyAgICAgICBwdWJs
aWMgdWludCBvbGRQaWQ7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAg
ICAgICBwdWJsaWMgYm9vbCBiRm9yY2VkOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfT3ZlcmxheV90Cit7CisgICAgICAgcHVi
bGljIHVsb25nIG92ZXJsYXlIYW5kbGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx
dWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHB1Ymxp
YyB1aW50IHN0YXR1c1N0YXRlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRp
YWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfS2V5Ym9hcmRfdAoreworICAgICAgIHB1YmxpYyBi
eXRlIGNOZXdJbnB1dDAsY05ld0lucHV0MSxjTmV3SW5wdXQyLGNOZXdJbnB1dDMsY05ld0lucHV0
NCxjTmV3SW5wdXQ1LGNOZXdJbnB1dDYsY05ld0lucHV0NzsKKyAgICAgICBwdWJsaWMgdWxvbmcg
dVVzZXJWYWx1ZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IGlwZE1ldGVy
czsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBWUkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgcHVibGljIHVsb25nIG1fblByZXZpb3Vz
VW5pdmVyc2U7CisgICAgICAgcHVibGljIHVsb25nIG1fbkN1cnJlbnRVbml2ZXJzZTsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50
X1Jlc2VydmVkX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgcmVzZXJ2ZWQwOworICAgICAgIHB1
YmxpYyB1bG9uZyByZXNlcnZlZDE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAg
IHB1YmxpYyB1aW50IG1fbkZpZGVsaXR5TGV2ZWw7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0
X3QKK3sKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1Ymxp
YyBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAg
IHB1YmxpYyB1aW50IGhhbmRsZTsKKyAgICAgICBwdWJsaWMgdWludCB0eXBlOworfQorW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2Ny
ZWVuc2hvdFByb2dyZXNzX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgcHJvZ3Jlc3M7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVu
dF9BcHBsaWNhdGlvbkxhdW5jaF90Cit7CisgICAgICAgcHVibGljIHVpbnQgcGlkOworICAgICAg
IHB1YmxpYyB1aW50IHVuQXJnc0hhbmRsZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QK
K3sKKyAgICAgICBwdWJsaWMgdWxvbmcgb3ZlcmxheUhhbmRsZTsKKyAgICAgICBwdWJsaWMgdWlu
dCBuVmlzdWFsTW9kZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICBwdWJsaWMg
dWludCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKK3sKKyAg
ICAgICBwdWJsaWMgdWxvbmcgY29udGFpbmVyOworICAgICAgIHB1YmxpYyBFVHJhY2tlZERldmlj
ZVByb3BlcnR5IHByb3A7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAgICAgcHVibGljIHVpbnQgZXZlbnRUeXBl
OworICAgICAgIHB1YmxpYyB1aW50IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIHB1YmxpYyBWUkV2ZW50X0RhdGFfdCBkYXRh
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IEhpZGRlbkFyZWFNZXNoX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIHBWZXJ0ZXhEYXRhOyAv
LyBjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5U
cmlhbmdsZUNvdW50OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4
OworICAgICAgIHB1YmxpYyBmbG9hdCB5OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3QKK3sKKyAgICAgICBw
dWJsaWMgdWludCB1blBhY2tldE51bTsKKyAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25QcmVz
c2VkOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblRvdWNoZWQ7CisgICAgICAgcHVibGlj
IFZSQ29udHJvbGxlckF4aXNfdCByQXhpczA7IC8vVlJDb250cm9sbGVyQXhpc190WzVdCisgICAg
ICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczE7CisgICAgICAgcHVibGljIFZSQ29u
dHJvbGxlckF4aXNfdCByQXhpczI7CisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCBy
QXhpczM7CisgICAgICAgcHVibGljIFZSQ29udHJvbGxlckF4aXNfdCByQXhpczQ7Cit9CisvLyBU
aGlzIHN0cnVjdHVyZSBpcyBmb3IgYmFja3dhcmRzIGJpbmFyeSBjb21wYXRpYmlsaXR5IG9uIExp
bnV4IGFuZCBPU1ggb25seQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwsIFBh
Y2sgPSA0KV0gcHVibGljIHN0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZAoreworICAg
ICAgIHB1YmxpYyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRv
blByZXNzZWQ7CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICBw
dWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0K
KyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKKyAgICAgICBwdWJsaWMg
VlJDb250cm9sbGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhp
c190IHJBeGlzMzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKKyAg
ICAgICBwdWJsaWMgdm9pZCBVbnBhY2socmVmIFZSQ29udHJvbGxlclN0YXRlX3QgdW5wYWNrZWQp
CisgICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tlZC51blBhY2tldE51bSA9IHRoaXMudW5Q
YWNrZXROdW07CisgICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uUHJlc3NlZCA9IHRoaXMu
dWxCdXR0b25QcmVzc2VkOworICAgICAgICAgICAgICB1bnBhY2tlZC51bEJ1dHRvblRvdWNoZWQg
PSB0aGlzLnVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMwID0g
dGhpcy5yQXhpczA7CisgICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzMSA9IHRoaXMuckF4aXMx
OworICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczIgPSB0aGlzLnJBeGlzMjsKKyAgICAgICAg
ICAgICAgdW5wYWNrZWQuckF4aXMzID0gdGhpcy5yQXhpczM7CisgICAgICAgICAgICAgIHVucGFj
a2VkLnJBeGlzNCA9IHRoaXMuckF4aXM0OworICAgICAgIH0KK30KK1tTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBDb21wb3NpdG9yX092ZXJsYXlTZXR0
aW5ncworeworICAgICAgIHB1YmxpYyB1aW50IHNpemU7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBjdXJ2ZWQ7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBhbnRpYWxpYXM7Cisg
ICAgICAgcHVibGljIGZsb2F0IHNjYWxlOworICAgICAgIHB1YmxpYyBmbG9hdCBkaXN0YW5jZTsK
KyAgICAgICBwdWJsaWMgZmxvYXQgYWxwaGE7CisgICAgICAgcHVibGljIGZsb2F0IHVPZmZzZXQ7
CisgICAgICAgcHVibGljIGZsb2F0IHZPZmZzZXQ7CisgICAgICAgcHVibGljIGZsb2F0IHVTY2Fs
ZTsKKyAgICAgICBwdWJsaWMgZmxvYXQgdlNjYWxlOworICAgICAgIHB1YmxpYyBmbG9hdCBncmlk
RGl2czsKKyAgICAgICBwdWJsaWMgZmxvYXQgZ3JpZFdpZHRoOworICAgICAgIHB1YmxpYyBmbG9h
dCBncmlkU2NhbGU7CisgICAgICAgcHVibGljIEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3JtOworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENhbWVy
YVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisgICAgICAgcHVibGljIHVpbnQgbldpZHRoOworICAg
ICAgIHB1YmxpYyB1aW50IG5IZWlnaHQ7CisgICAgICAgcHVibGljIHVpbnQgbkJ5dGVzUGVyUGl4
ZWw7CisgICAgICAgcHVibGljIHVpbnQgbkZyYW1lU2VxdWVuY2U7CisgICAgICAgcHVibGljIFRy
YWNrZWREZXZpY2VQb3NlX3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBBcHBPdmVycmlkZUtl
eXNfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgcGNoS2V5OyAvLyBjb25zdCBjaGFyICoKKyAg
ICAgICBwdWJsaWMgSW50UHRyIHBjaFZhbHVlOyAvLyBjb25zdCBjaGFyICoKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBDb21wb3NpdG9yX0Zy
YW1lVGltaW5nCit7CisgICAgICAgcHVibGljIHVpbnQgbV9uU2l6ZTsKKyAgICAgICBwdWJsaWMg
dWludCBtX25GcmFtZUluZGV4OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2Vu
dHM7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtTWlzUHJlc2VudGVkOworICAgICAgIHB1Ymxp
YyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgcHVibGljIHVpbnQgbV9uUmVwcm9q
ZWN0aW9uRmxhZ3M7CisgICAgICAgcHVibGljIGRvdWJsZSBtX2ZsU3lzdGVtVGltZUluU2Vjb25k
czsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFByZVN1Ym1pdEdwdU1zOworICAgICAgIHB1Ymxp
YyBmbG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsVG90
YWxSZW5kZXJHcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJH
cHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJDcHVNczsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JJZGxlQ3B1TXM7CisgICAgICAgcHVibGlj
IGZsb2F0IG1fZmxDbGllbnRGcmFtZUludGVydmFsTXM7CisgICAgICAgcHVibGljIGZsb2F0IG1f
ZmxQcmVzZW50Q2FsbENwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsV2FpdEZvclByZXNl
bnRDcHVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7CisgICAgICAg
cHVibGljIGZsb2F0IG1fZmxXYWl0R2V0UG9zZXNDYWxsZWRNczsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbV9mbE5ld1Bvc2VzUmVhZHlNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbE5ld0ZyYW1l
UmVhZHlNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1z
OworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zOworICAgICAg
IHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlclN0YXJ0TXM7CisgICAgICAgcHVibGlj
IFRyYWNrZWREZXZpY2VQb3NlX3QgbV9IbWRQb3NlOworfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRz
Cit7CisgICAgICAgcHVibGljIHVpbnQgbV9uUGlkOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51
bUZyYW1lUHJlc2VudHM7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lczsK
KyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsKKyAgICAgICBwdWJs
aWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFydHVwOworICAgICAgIHB1YmxpYyB1aW50
IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVt
UmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtTG9h
ZGluZzsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGluZzsKKyAg
ICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICBwdWJs
aWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgcHVibGljIHVp
bnQgbV9uTnVtVGltZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50
c1RpbWVkT3V0OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91
dDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0Owor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
T3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190Cit7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNf
dCB2U291cmNlOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKKyAgICAg
ICBwdWJsaWMgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbjsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNl
Y3Rpb25SZXN1bHRzX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZQb2ludDsKKyAg
ICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZOb3JtYWw7CisgICAgICAgcHVibGljIEhtZFZlY3Rv
cjJfdCB2VVZzOworICAgICAgIHB1YmxpYyBmbG9hdCBmRGlzdGFuY2U7Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFz
a1JlY3RhbmdsZV90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3BMZWZ0WDsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsV2lk
dGg7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxIZWlnaHQ7Cit9CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNs
ZV90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDZW50ZXJYOworICAgICAgIHB1YmxpYyBm
bG9hdCBtX2ZsQ2VudGVyWTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFJhZGl1czsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUk92ZXJs
YXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QKK3sKKyAgICAgICBwdWJsaWMgRVZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAg
cHVibGljIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJpbWl0
aXZlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kTWF0
cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudFJlbmRlck1vZGVsOworICAgICAgIHB1YmxpYyBI
bWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWw7CisgICAgICAgcHVibGljIHVp
bnQgdVByb3BlcnRpZXM7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAgICAgICBwdWJsaWMgSG1k
VmVjdG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZOb3JtYWw7
CisgICAgICAgcHVibGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMDsgLy9mbG9hdFsyXQorICAgICAg
IHB1YmxpYyBmbG9hdCByZlRleHR1cmVDb29yZDE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90Cit7
CisgICAgICAgcHVibGljIGNoYXIgdW5XaWR0aDsKKyAgICAgICBwdWJsaWMgY2hhciB1bkhlaWdo
dDsKKyAgICAgICBwdWJsaWMgSW50UHRyIHJ1YlRleHR1cmVNYXBEYXRhOyAvLyBjb25zdCB1aW50
OF90ICoKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBh
dGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVN
YXBfdF9QYWNrZWQKK3sKKyAgICAgICBwdWJsaWMgY2hhciB1bldpZHRoOworICAgICAgIHB1Ymxp
YyBjaGFyIHVuSGVpZ2h0OworICAgICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7
IC8vIGNvbnN0IHVpbnQ4X3QgKgorICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVuZGVy
TW9kZWxfVGV4dHVyZU1hcF90IHVucGFja2VkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdW5w
YWNrZWQudW5XaWR0aCA9IHRoaXMudW5XaWR0aDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudW5I
ZWlnaHQgPSB0aGlzLnVuSGVpZ2h0OworICAgICAgICAgICAgICB1bnBhY2tlZC5ydWJUZXh0dXJl
TWFwRGF0YSA9IHRoaXMucnViVGV4dHVyZU1hcERhdGE7CisgICAgICAgfQorfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3QK
K3sKKyAgICAgICBwdWJsaWMgSW50UHRyIHJWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3QgdnI6
OlJlbmRlck1vZGVsX1ZlcnRleF90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blZlcnRleENvdW50
OworICAgICAgIHB1YmxpYyBJbnRQdHIgckluZGV4RGF0YTsgLy8gY29uc3QgdWludDE2X3QgKgor
ICAgICAgIHB1YmxpYyB1aW50IHVuVHJpYW5nbGVDb3VudDsKKyAgICAgICBwdWJsaWMgaW50IGRp
ZmZ1c2VUZXh0dXJlSWQ7Cit9CisvLyBUaGlzIHN0cnVjdHVyZSBpcyBmb3IgYmFja3dhcmRzIGJp
bmFyeSBjb21wYXRpYmlsaXR5IG9uIExpbnV4IGFuZCBPU1ggb25seQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwsIFBhY2sgPSA0KV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2Rl
bF90X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0
IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHB1YmxpYyB1aW50IHVu
VmVydGV4Q291bnQ7CisgICAgICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1
aW50MTZfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworICAgICAgIHB1
YmxpYyBpbnQgZGlmZnVzZVRleHR1cmVJZDsKKyAgICAgICBwdWJsaWMgdm9pZCBVbnBhY2socmVm
IFJlbmRlck1vZGVsX3QgdW5wYWNrZWQpCisgICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tl
ZC5yVmVydGV4RGF0YSA9IHRoaXMuclZlcnRleERhdGE7CisgICAgICAgICAgICAgIHVucGFja2Vk
LnVuVmVydGV4Q291bnQgPSB0aGlzLnVuVmVydGV4Q291bnQ7CisgICAgICAgICAgICAgIHVucGFj
a2VkLnJJbmRleERhdGEgPSB0aGlzLnJJbmRleERhdGE7CisgICAgICAgICAgICAgIHVucGFja2Vk
LnVuVHJpYW5nbGVDb3VudCA9IHRoaXMudW5UcmlhbmdsZUNvdW50OworICAgICAgICAgICAgICB1
bnBhY2tlZC5kaWZmdXNlVGV4dHVyZUlkID0gdGhpcy5kaWZmdXNlVGV4dHVyZUlkOworICAgICAg
IH0KK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkkxKV0KKyAgICAgICBwdWJsaWMgYm9vbCBiU2Nyb2xsV2hlZWxWaXNp
YmxlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3Ry
dWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgcHVibGljIEludFB0ciBtX3BJbWFn
ZURhdGE7IC8vIHZvaWQgKgorICAgICAgIHB1YmxpYyBpbnQgbV9uV2lkdGg7CisgICAgICAgcHVi
bGljIGludCBtX25IZWlnaHQ7CisgICAgICAgcHVibGljIGludCBtX25CeXRlc1BlclBpeGVsOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENP
cGVuVlJDb250ZXh0Cit7CisgICAgICAgcHVibGljIEludFB0ciBtX3BWUlN5c3RlbTsgLy8gY2xh
c3MgdnI6OklWUlN5c3RlbSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkNoYXBlcm9uZTsg
Ly8gY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkNo
YXBlcm9uZVNldHVwOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVyb25lU2V0dXAgKgorICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wVlJDb21wb3NpdG9yOyAvLyBjbGFzcyB2cjo6SVZSQ29tcG9zaXRvciAq
CisgICAgICAgcHVibGljIEludFB0ciBtX3BWUk92ZXJsYXk7IC8vIGNsYXNzIHZyOjpJVlJPdmVy
bGF5ICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSUmVzb3VyY2VzOyAvLyBjbGFzcyB2cjo6
SVZSUmVzb3VyY2VzICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSUmVuZGVyTW9kZWxzOyAv
LyBjbGFzcyB2cjo6SVZSUmVuZGVyTW9kZWxzICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZS
RXh0ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5ICoKKyAgICAg
ICBwdWJsaWMgSW50UHRyIG1fcFZSU2V0dGluZ3M7IC8vIGNsYXNzIHZyOjpJVlJTZXR0aW5ncyAq
CisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkFwcGxpY2F0aW9uczsgLy8gY2xhc3MgdnI6OklW
UkFwcGxpY2F0aW9ucyAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUlRyYWNrZWRDYW1lcmE7
IC8vIGNsYXNzIHZyOjpJVlJUcmFja2VkQ2FtZXJhICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1f
cFZSU2NyZWVuc2hvdHM7IC8vIGNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqCit9CisKK3B1Ymxp
YyBjbGFzcyBPcGVuVlIKK3sKKworICAgICAgIHB1YmxpYyBzdGF0aWMgdWludCBJbml0SW50ZXJu
YWwocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0
aW9uVHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklu
aXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSk7CisgICAgICAgfQorCisg
ICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duSW50ZXJuYWwoKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgT3BlblZSSW50ZXJvcC5TaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgfQor
CisgICAgICAgcHVibGljIHN0YXRpYyBib29sIElzSG1kUHJlc2VudCgpCisgICAgICAgeworICAg
ICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0htZFByZXNlbnQoKTsKKyAgICAgICB9
CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNSdW50aW1lSW5zdGFsbGVkKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzUnVudGltZUluc3RhbGxl
ZCgpOworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nIEdldFN0cmluZ0Zv
ckhtZEVycm9yKEVWUkluaXRFcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHJl
dHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShPcGVuVlJJbnRlcm9wLkdldFN0cmluZ0Zvckht
ZEVycm9yKGVycm9yKSk7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBJbnRQdHIg
R2V0R2VuZXJpY0ludGVyZmFjZShzdHJpbmcgcGNoSW50ZXJmYWNlVmVyc2lvbiwgcmVmIEVWUklu
aXRFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUklu
dGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgcGVFcnJv
cik7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBib29sIElzSW50ZXJmYWNlVmVy
c2lvblZhbGlkKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQocGNoSW50
ZXJmYWNlVmVyc2lvbik7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyB1aW50IEdl
dEluaXRUb2tlbigpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJv
cC5HZXRJbml0VG9rZW4oKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBr
X3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAzMjc2ODsKKyAgICAgICBwdWJsaWMgY29u
c3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4X0htZCA9IDA7CisgICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191bk1heFRyYWNrZWREZXZpY2VDb3VudCA9IDE2OworICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhPdGhlciA9IDQyOTQ5NjcyOTQ7CisgICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191blRyYWNrZWREZXZpY2VJbmRleEludmFsaWQgPSA0Mjk0
OTY3Mjk1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsSW52YWxpZFByb3BlcnR5Q29u
dGFpbmVyID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW52YWxpZFByb3BlcnR5
VGFnID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyA9
IDE7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkludDMyUHJvcGVydHlUYWcgPSAyOwor
ICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5VaW50NjRQcm9wZXJ0eVRhZyA9IDM7CisgICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191bkJvb2xQcm9wZXJ0eVRhZyA9IDQ7CisgICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191blN0cmluZ1Byb3BlcnR5VGFnID0gNTsKKyAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworICAgICAgIHB1Ymxp
YyBjb25zdCB1aW50IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7CisgICAgICAgcHVi
bGljIGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworICAgICAgIHB1
YmxpYyBjb25zdCB1aW50IGtfdW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CisgICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAw
OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0Vu
ZCA9IDEwMDAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhQcm9wZXJ0eVN0cmlu
Z1NpemUgPSAzMjc2ODsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuQ29udHJvbGxlclN0
YXRlQXhpc0NvdW50ID0gNTsKKyAgICAgICBwdWJsaWMgY29uc3QgdWxvbmcga191bE92ZXJsYXlI
YW5kbGVJbnZhbGlkID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuU2NyZWVuc2hv
dEhhbmRsZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSU3lzdGVt
X1ZlcnNpb24gPSAiSVZSU3lzdGVtXzAxNSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJ
VlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJU
cmFja2VkQ2FtZXJhXzAwMyI7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heEFwcGxp
Y2F0aW9uS2V5TGVuZ3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
TWltZVR5cGVfSG9tZUFwcCA9ICJ2ci9ob21lIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX01pbWVUeXBlX0dhbWVUaGVhdGVyID0gInZyL2dhbWVfdGhlYXRlciI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJBcHBsaWNh
dGlvbnNfMDA2IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkNoYXBlcm9uZV9WZXJz
aW9uID0gIklWUkNoYXBlcm9uZV8wMDMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZS
Q2hhcGVyb25lU2V0dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVTZXR1cF8wMDUiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBvc2l0
b3JfMDIwIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuVlJPdmVybGF5TWF4S2V5TGVu
Z3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhOYW1l
TGVuZ3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5Q291
bnQgPSA2NDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4T3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNCI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1ID0gImdkYzIwMTUi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRf
QmFzZSA9ICJiYXNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbnRyb2xs
ZXJfQ29tcG9uZW50X1RpcCA9ICJ0aXAiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAiaGFuZGdyaXAiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfU3RhdHVzID0gInN0
YXR1cyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJSZW5kZXJNb2RlbHNfVmVyc2lv
biA9ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3Vu
Tm90aWZpY2F0aW9uVGV4dE1heFNpemUgPSAyNTY7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18wMDIiOworICAg
ICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGlu
Z3NfMDAyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2VjdGlv
biA9ICJzdGVhbXZyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJf
UmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUhtZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmcgPSAiZm9yY2VkRHJpdmVy
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5
X1N0cmluZyA9ICJmb3JjZWRIbWQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
U3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVidWciOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJk
ZWJ1Z1Byb2Nlc3NQaXBlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sID0gImVuYWJsZURpc3RvcnRpb24iOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdYX0ludDMyID0gImRp
c3BsYXlEZWJ1Z1giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9E
aXNwbGF5RGVidWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzX0Jvb2wgPSAi
c2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tn
cm91bmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3Jv
dW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24i
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2Ft
ZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9
ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENvbG9yIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFy
ZWFDb2xvciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1Nob3dT
dGFnZV9Cb29sID0gInNob3dTdGFnZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBs
ZURyaXZlcnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJl
Y3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlk
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVk
aWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2Fy
ZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVl
cyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9u
UG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNf
Qm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdl
dE11bHRpcGxpZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9B
bGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9u
X0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VS
ZXByb2plY3Rpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9G
b3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3
X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdHZW9tZXRy
eV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0
b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZy
b21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9T
dGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBM
YXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFydE92
ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJv
YXJkIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9t
ZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9t
ZUFwcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFj
a2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jv
b2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVh
bVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29s
ID0gImRpc2FibGVpbXUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRo
b3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRl
YnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFy
eWJhc2VzdGF0aW9uIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0xpZ2h0aG91
c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVy
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3Ry
aW5nID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051
bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIg
PSAid2luZG93SGVpZ2h0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxf
UmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhv
dG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5
RnJlcXVlbmN5IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZh
Y2VfU2VjdGlvbiA9ICJ1c2VyaW50ZXJmYWNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdh
eXNPblRvcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNl
X01pbmltaXplVG9UcmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90c19Cb29sID0gInNjcmVl
bnNob3RzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2Vf
U2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0
dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21wbGV0aW9ucyA9ICJUdXRvcmlhbENvbXBs
ZXRpb25zIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1NjYWxl
WCA9ICJTY2FsZVgiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRf
U2NhbGVZID0gIlNjYWxlWSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXli
b2FyZF9PZmZzZXRMZWZ0WCA9ICJPZmZzZXRMZWZ0WCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9LZXlib2FyZF9PZmZzZXRSaWdodFggPSAiT2Zmc2V0UmlnaHRYIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0WSI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TbW9vdGhpbmcgPSAi
U21vb3RoaW5nIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfU2VjdGlv
biA9ICJwZXJmY2hlY2siOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9I
ZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29sID0gIndhcm5JbkhNRCI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX05vdGlmeU9ubHlPbmNlX0Jvb2wg
PSAid2Fybk9ubHlPbmNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZf
QWxsb3dUaW1pbmdTdG9yZV9Cb29sID0gImFsbG93VGltaW5nU3RvcmUiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVU
aW1pbmdzT25FeGl0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfVGVz
dERhdGFfRmxvYXQgPSAicGVyZlRlc3REYXRhIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxpc2lvbkJvdW5kcyI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIg
PSAiQ29sbGlzaW9uQm91bmRzU3R5bGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ29sbGlzaW9uQm91bmRzX0dyb3VuZFBlcmltZXRlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91
bmRzR3JvdW5kUGVyaW1ldGVyT24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzQ2Vu
dGVyTWFya2VyT24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9u
Qm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24iOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0ZhZGVEaXN0
YW5jZV9GbG9hdCA9ICJDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0g
IkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3Vu
ZHNDb2xvckdhbW1hRyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfQ29sb3JHYW1tYUJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUIi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9y
R2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5h
YmxlQ2FtZXJhIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JDb2xs
aXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvclJvb21W
aWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJv
dW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVy
YV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJf
SW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5k
c0NvbG9yR2FtbWFBIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9C
b3VuZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19TZWN0aW9uID0gImF1ZGlvIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5nID0g
Im9uUGxheWJhY2tEZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVk
aW9fT25SZWNvcmREZXZpY2VfU3RyaW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tNaXJyb3JEZXZpY2VfU3RyaW5n
ID0gIm9uUGxheWJhY2tNaXJyb3JEZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5nID0gIm9mZlBsYXliYWNrRGV2aWNl
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX09mZlJlY29yZERldmlj
ZV9TdHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX2F1ZGlvX1ZJVkVIRE1JR2FpbiA9ICJ2aXZlSERNSUdhaW4iOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sID0gInBvd2Vy
T2ZmT25FeGl0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1R1cm5P
ZmZTY3JlZW5zVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmU2NyZWVuc1RpbWVvdXQiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91
dF9GbG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0IjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0ID0gInJl
dHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1Bvd2VyX0F1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyA9ICJhdXRvTGF1bmNoU3RlYW1W
Uk9uQnV0dG9uUHJlc3MiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFzaGJv
YXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtf
cGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9v
bCA9ICJhcmNhZGVNb2RlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX21vZGVs
c2tpbl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBJVlJTY3JlZW5zaG90c19WZXJzaW9uID0gIklWUlNjcmVlbnNob3RzXzAwMSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNv
dXJjZXNfMDAxIjsKKworICAgICAgIHN0YXRpYyB1aW50IFZSVG9rZW4geyBnZXQ7IHNldDsgfQor
CisgICAgICAgY29uc3Qgc3RyaW5nIEZuVGFibGVfUHJlZml4ID0gIkZuVGFibGU6IjsKKworICAg
ICAgIGNsYXNzIENPcGVuVlJDb250ZXh0CisgICAgICAgeworICAgICAgICAgICAgICBwdWJsaWMg
Q09wZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKworICAgICAgICAgICAgICBwdWJsaWMgdm9p
ZCBDbGVhcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lz
dGVtID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0gbnVsbDsK
KyAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJDb21wb3NpdG9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICAg
ICAgIG1fcFZST3ZlcmxheSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUlJlbmRl
ck1vZGVscyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxh
eSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgIG1fcFZSQXBwbGljYXRpb25zID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAg
bV9wVlJUcmFja2VkQ2FtZXJhID0gbnVsbDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIHZvaWQgQ2hlY2tDbGVhcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgIGlmIChWUlRva2VuICE9IEdldEluaXRUb2tlbigpKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsZWFyKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVlJUb2tlbiA9IEdldEluaXRUb2tlbigpOworICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlN5c3RlbSBW
UlN5c3RlbSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xl
YXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlN5c3RlbSA9PSBudWxsKQorICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJy
b3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
cEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1By
ZWZpeCtJVlJTeXN0ZW1fVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUklu
aXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlN5
c3RlbSA9IG5ldyBDVlJTeXN0ZW0ocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTeXN0ZW07CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSQ2hhcGVyb25lIFZSQ2hhcGVyb25lKCkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAg
ICAgICAgICAgICAgICAgaWYgKG1fcFZSQ2hhcGVyb25lID09IG51bGwpCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUklu
aXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNl
ID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUkNo
YXBlcm9uZV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9y
Lk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25l
ID0gbmV3IENWUkNoYXBlcm9uZShwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmVTZXR1cCBWUkNoYXBlcm9u
ZVNldHVwKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVh
cigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSQ2hhcGVyb25lU2V0dXAgPT0gbnVs
bCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5U
YWJsZV9QcmVmaXgrSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYg
ZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gbmV3IENWUkNoYXBlcm9uZVNldHVwKHBJbnRl
cmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICBwdWJsaWMgQ1ZSQ29tcG9zaXRvciBWUkNvbXBvc2l0b3IoKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAobV9wVlJDb21wb3NpdG9yID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJv
cC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUkNvbXBvc2l0b3JfVmVyc2lv
biwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZh
Y2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBuZXcgQ1ZSQ29t
cG9zaXRvcihwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICBwdWJsaWMgQ1ZST3ZlcmxheSBWUk92ZXJsYXkoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAg
ICBpZiAobV9wVlJPdmVybGF5ID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJv
cC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUk92ZXJsYXlfVmVyc2lvbiwg
cmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2Ug
IT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUk92ZXJsYXkgPSBuZXcgQ1ZST3ZlcmxheShw
SW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBtX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBw
dWJsaWMgQ1ZSUmVuZGVyTW9kZWxzIFZSUmVuZGVyTW9kZWxzKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAg
aWYgKG1fcFZSUmVuZGVyTW9kZWxzID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25l
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50
ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlJlbmRlck1vZGVsc19W
ZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocElu
dGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gbmV3
IENWUlJlbmRlck1vZGVscyhwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlJlbmRlck1vZGVsczsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJFeHRlbmRlZERpc3BsYXkgVlJFeHRlbmRl
ZERpc3BsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0Ns
ZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJFeHRlbmRlZERpc3BsYXkgPT0g
bnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2Uo
Rm5UYWJsZV9QcmVmaXgrSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24sIHJlZiBlRXJyb3IpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJv
ICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSBuZXcgQ1ZSRXh0ZW5kZWREaXNwbGF5
KHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgcHVibGljIENWUlNldHRpbmdzIFZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAg
ICBpZiAobV9wVlJTZXR0aW5ncyA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVy
b3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJTZXR0aW5nc19WZXJzaW9u
LCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFj
ZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBuZXcgQ1ZSU2V0dGlu
Z3MocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIHB1YmxpYyBDVlJBcHBsaWNhdGlvbnMgVlJBcHBsaWNhdGlvbnMoKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAg
ICAgICBpZiAobV9wVlJBcHBsaWNhdGlvbnMgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9y
Lk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVu
VlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQXBwbGljYXRp
b25zX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9u
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMg
PSBuZXcgQ1ZSQXBwbGljYXRpb25zKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQXBwbGljYXRpb25zOworICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlNjcmVlbnNob3RzIFZSU2NyZWVu
c2hvdHMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFy
KCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJTY3JlZW5zaG90cyA9PSBudWxsKQor
ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBl
RXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxl
X1ByZWZpeCtJVlJTY3JlZW5zaG90c19WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3Ig
PT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcFZSU2NyZWVuc2hvdHMgPSBuZXcgQ1ZSU2NyZWVuc2hvdHMocEludGVyZmFjZSk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTY3Jl
ZW5zaG90czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJUcmFj
a2VkQ2FtZXJhIFZSVHJhY2tlZENhbWVyYSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlRy
YWNrZWRDYW1lcmEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdl
bmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uLCBy
ZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAh
PSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSVHJhY2tlZENhbWVyYSA9IG5ldyBDVlJUcmFj
a2VkQ2FtZXJhKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZSU3lzdGVtIG1fcFZSU3lzdGVtOworICAgICAgICAg
ICAgICBwcml2YXRlIENWUkNoYXBlcm9uZSBtX3BWUkNoYXBlcm9uZTsKKyAgICAgICAgICAgICAg
cHJpdmF0ZSBDVlJDaGFwZXJvbmVTZXR1cCBtX3BWUkNoYXBlcm9uZVNldHVwOworICAgICAgICAg
ICAgICBwcml2YXRlIENWUkNvbXBvc2l0b3IgbV9wVlJDb21wb3NpdG9yOworICAgICAgICAgICAg
ICBwcml2YXRlIENWUk92ZXJsYXkgbV9wVlJPdmVybGF5OworICAgICAgICAgICAgICBwcml2YXRl
IENWUlJlbmRlck1vZGVscyBtX3BWUlJlbmRlck1vZGVsczsKKyAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJFeHRlbmRlZERpc3BsYXkgbV9wVlJFeHRlbmRlZERpc3BsYXk7CisgICAgICAgICAgICAg
IHByaXZhdGUgQ1ZSU2V0dGluZ3MgbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJBcHBsaWNhdGlvbnMgbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAgICAgIHByaXZh
dGUgQ1ZSU2NyZWVuc2hvdHMgbV9wVlJTY3JlZW5zaG90czsKKyAgICAgICAgICAgICAgcHJpdmF0
ZSBDVlJUcmFja2VkQ2FtZXJhIG1fcFZSVHJhY2tlZENhbWVyYTsKKyAgICAgICB9OworCisgICAg
ICAgcHJpdmF0ZSBzdGF0aWMgQ09wZW5WUkNvbnRleHQgX09wZW5WUkludGVybmFsX01vZHVsZUNv
bnRleHQgPSBudWxsOworICAgICAgIHN0YXRpYyBDT3BlblZSQ29udGV4dCBPcGVuVlJJbnRlcm5h
bF9Nb2R1bGVDb250ZXh0CisgICAgICAgeworICAgICAgICAgICAgICBnZXQKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250
ZXh0ID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX09wZW5WUkludGVybmFs
X01vZHVsZUNvbnRleHQgPSBuZXcgQ09wZW5WUkNvbnRleHQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dDsKKyAgICAgICAgICAgICAg
fQorICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIFN5c3RlbSB7IGdl
dCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU3lzdGVtKCk7IH0gfQor
ICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ2hhcGVyb25lIENoYXBlcm9uZSB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lKCk7IH0gfQorICAgICAg
IHB1YmxpYyBzdGF0aWMgQ1ZSQ2hhcGVyb25lU2V0dXAgQ2hhcGVyb25lU2V0dXAgeyBnZXQgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNoYXBlcm9uZVNldHVwKCk7IH0g
fQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSQ29tcG9zaXRvciBDb21wb3NpdG9yIHsgZ2V0IHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDb21wb3NpdG9yKCk7IH0gfQor
ICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZST3ZlcmxheSBPdmVybGF5IHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJPdmVybGF5KCk7IH0gfQorICAgICAgIHB1Ymxp
YyBzdGF0aWMgQ1ZSUmVuZGVyTW9kZWxzIFJlbmRlck1vZGVscyB7IGdldCB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSUmVuZGVyTW9kZWxzKCk7IH0gfQorICAgICAgIHB1
YmxpYyBzdGF0aWMgQ1ZSRXh0ZW5kZWREaXNwbGF5IEV4dGVuZGVkRGlzcGxheSB7IGdldCB7IHJl
dHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSRXh0ZW5kZWREaXNwbGF5KCk7IH0g
fQorICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU2V0dGluZ3MgU2V0dGluZ3MgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlNldHRpbmdzKCk7IH0gfQorICAgICAg
IHB1YmxpYyBzdGF0aWMgQ1ZSQXBwbGljYXRpb25zIEFwcGxpY2F0aW9ucyB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQXBwbGljYXRpb25zKCk7IH0gfQorICAg
ICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU2NyZWVuc2hvdHMgU2NyZWVuc2hvdHMgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlNjcmVlbnNob3RzKCk7IH0gfQorICAg
ICAgIHB1YmxpYyBzdGF0aWMgQ1ZSVHJhY2tlZENhbWVyYSBUcmFja2VkQ2FtZXJhIHsgZ2V0IHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJUcmFja2VkQ2FtZXJhKCk7IH0g
fQorCisgICAgICAgLyoqIEZpbmRzIHRoZSBhY3RpdmUgaW5zdGFsbGF0aW9uIG9mIHZyY2xpZW50
LmRsbCBhbmQgaW5pdGlhbGl6ZXMgaXQgKi8KKyAgICAgICBwdWJsaWMgc3RhdGljIENWUlN5c3Rl
bSBJbml0KHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvciwgRVZSQXBwbGljYXRpb25UeXBlIGVBcHBs
aWNhdGlvblR5cGUgPSBFVlJBcHBsaWNhdGlvblR5cGUuVlJBcHBsaWNhdGlvbl9TY2VuZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIFZSVG9rZW4gPSBJbml0SW50ZXJuYWwocmVmIHBlRXJyb3Is
IGVBcHBsaWNhdGlvblR5cGUpOworICAgICAgICAgICAgICBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVD
b250ZXh0LkNsZWFyKCk7CisKKyAgICAgICAgICAgICAgaWYgKHBlRXJyb3IgIT0gRVZSSW5pdEVy
cm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICAg
ICAgICBib29sIGJJbnRlcmZhY2VWYWxpZCA9IElzSW50ZXJmYWNlVmVyc2lvblZhbGlkKElWUlN5
c3RlbV9WZXJzaW9uKTsKKyAgICAgICAgICAgICAgaWYgKCFiSW50ZXJmYWNlVmFsaWQpCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFNodXRkb3duSW50ZXJuYWwoKTsKKyAg
ICAgICAgICAgICAgICAgICAgIHBlRXJyb3IgPSBFVlJJbml0RXJyb3IuSW5pdF9JbnRlcmZhY2VO
b3RGb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUi5TeXN0ZW07CisgICAgICAgfQorCisg
ICAgICAgLyoqIHVubG9hZHMgdnJjbGllbnQuZGxsLiBBbnkgaW50ZXJmYWNlIHBvaW50ZXJzIGZy
b20gdGhlIGludGVyZmFjZSBhcmUKKyAgICAgICAqIGludmFsaWQgYWZ0ZXIgdGhpcyBwb2ludCAq
LworICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBTaHV0ZG93bigpCisgICAgICAgeworICAgICAg
ICAgICAgICBTaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgfQorCit9CisKKworCit9CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNv
biBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuanNvbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTcxZWMzN2QxMTNkMWFjZDZlOGNjNDIwMTRhY2M2MGY3YTQxOGQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5q
c29uCkBAIC0wLDAgKzEsMzc4OSBAQAoreyJ0eXBlZGVmcyI6W3sidHlwZWRlZiI6ICJ2cjo6Z2xT
aGFyZWRUZXh0dXJlSGFuZGxlX3QiLCJ0eXBlIjogInZvaWQgKiJ9CisseyJ0eXBlZGVmIjogInZy
OjpnbEludF90IiwidHlwZSI6ICJpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OmdsVUludF90
IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpTaGFyZWRUZXh0dXJlSGFu
ZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZp
Y2VJbmRleF90IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZy
OjpQcm9wZXJ0eVR5cGVUYWdfdCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2
cjo6VlJFdmVudF9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZSRXZlbnRfRGF0YV90In0KKyx7InR5
cGVkZWYiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QiLCJ0eXBlIjogInN0cnVjdCB2cjo6VlJD
b250cm9sbGVyU3RhdGUwMDFfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCIsInR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZENhbWVyYUhh
bmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpTY3JlZW5zaG90
SGFuZGxlX3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IiwidHlwZSI6ICJ1bmlvbiBWUk92ZXJs
YXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpW
UkNvbXBvbmVudFByb3BlcnRpZXMiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAi
dnI6OlRleHR1cmVJRF90IiwidHlwZSI6ICJpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlZS
Tm90aWZpY2F0aW9uSWQiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6Okht
ZEVycm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJJbml0RXJyb3IifQorLHsidHlwZWRlZiI6ICJ2
cjo6SG1kX0V5ZSIsInR5cGUiOiAiZW51bSB2cjo6RVZSRXllIn0KKyx7InR5cGVkZWYiOiAidnI6
OkNvbG9yU3BhY2UiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn0KKyx7InR5cGVkZWYi
OiAidnI6OkhtZFRyYWNraW5nUmVzdWx0IiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1
bHQifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUNsYXNzIiwidHlwZSI6ICJlbnVt
IHZyOjpFVHJhY2tlZERldmljZUNsYXNzIn0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNraW5nVW5p
dmVyc2VPcmlnaW4iLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0K
Kyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsInR5cGUiOiAiZW51bSB2
cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkUHJv
cGVydHlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIn0KKyx7
InR5cGVkZWYiOiAidnI6OlZSU3VibWl0RmxhZ3NfdCIsInR5cGUiOiAiZW51bSB2cjo6RVZSU3Vi
bWl0RmxhZ3MifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJTdGF0ZV90IiwidHlwZSI6ICJlbnVtIHZy
OjpFVlJTdGF0ZSJ9CisseyJ0eXBlZGVmIjogInZyOjpDb2xsaXNpb25Cb3VuZHNTdHlsZV90Iiwi
dHlwZSI6ICJlbnVtIHZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUifQorLHsidHlwZWRlZiI6ICJ2
cjo6VlJPdmVybGF5RXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUk92ZXJsYXlFcnJvciJ9Ciss
eyJ0eXBlZGVmIjogInZyOjpWUkZpcm13YXJlRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkZp
cm13YXJlRXJyb3IifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJDb21wb3NpdG9yRXJyb3IiLCJ0eXBl
IjogImVudW0gdnI6OkVWUkNvbXBvc2l0b3JFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUlNj
cmVlbnNob3RzRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUlNjcmVlbnNob3RFcnJvciJ9Citd
LAorImVudW1zIjpbCisgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXllIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiRXllX0xlZnQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIkV5ZV9SaWdodCIsInZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RVRleHR1cmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVGV4dHVy
ZVR5cGVfRGlyZWN0WCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5
cGVfT3BlbkdMIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9W
dWxrYW4iLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX0lPU3Vy
ZmFjZSIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfRGlyZWN0
WDEyIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sb3JT
cGFjZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIkNvbG9yU3BhY2VfQXV0byIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9HYW1tYSIsInZhbHVlIjog
IjEifQorICAgICAgICx7Im5hbWUiOiAiQ29sb3JTcGFjZV9MaW5lYXIiLCJ2YWx1ZSI6ICIyIn0K
K119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2luZ1Jlc3VsdCIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQiLCJ2YWx1
ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX0lu
UHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1
bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAs
eyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSIsInZhbHVlIjogIjIw
MSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwi
dmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQi
LCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19ITUQi
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19Db250
cm9sbGVyIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xh
c3NfR2VuZXJpY1RyYWNrZXIiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
ZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSIsInZhbHVlIjogIjQifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9sZSIsInZhbHVlcyI6IFsg
CisgICAgICAgeyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkIiwidmFsdWUi
OiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQi
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9S
aWdodEhhbmQiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJh
Y2tpbmdVbml2ZXJzZVNlYXRlZCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJh
Y2tpbmdVbml2ZXJzZVN0YW5kaW5nIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJU
cmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkIiwidmFsdWUiOiAiMiJ9CitdfQorLCAg
ICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5IiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiUHJvcF9JbnZhbGlkIiwidmFsdWUiOiAiMCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAw
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTW9kZWxOdW1iZXJfU3RyaW5nIiwidmFsdWUiOiAi
MTAwMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmciLCJ2YWx1
ZSI6ICIxMDAyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmlu
ZyIsInZhbHVlIjogIjEwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9XaWxsRHJpZnRJbllh
d19Cb29sIiwidmFsdWUiOiAiMTAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX01hbnVmYWN0
dXJlck5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X1RyYWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDYifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyIsInZhbHVlIjogIjEwMDci
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19T
dHJpbmciLCJ2YWx1ZSI6ICIxMDA4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ29ubmVjdGVk
V2lyZWxlc3NEb25nbGVfU3RyaW5nIiwidmFsdWUiOiAiMTAwOSJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCIsInZhbHVlIjogIjEwMTAifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wiLCJ2YWx1ZSI6ICIxMDExIn0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQiLCJ2YWx1
ZSI6ICIxMDEyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9y
bV9NYXRyaXgzNCIsInZhbHVlIjogIjEwMTMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJt
d2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCIsInZhbHVlIjogIjEwMTQifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCIsInZhbHVlIjogIjEwMTUifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nIiwi
dmFsdWUiOiAiMTAxNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25f
VWludDY0IiwidmFsdWUiOiAiMTAxNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJl
VmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE4In0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
RlBHQVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAxOSJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX1ZSQ1ZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMTAyMCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIxIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIyIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sIiwidmFsdWUiOiAiMTAy
MyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhI
bWRfQm9vbCIsInZhbHVlIjogIjEwMjQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250YWlu
c1Byb3hpbWl0eVNlbnNvcl9Cb29sIiwidmFsdWUiOiAiMTAyNSJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sIiwidmFsdWUiOiAiMTAyNiJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wiLCJ2YWx1ZSI6
ICIxMDI3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJn
ZXRfU3RyaW5nIiwidmFsdWUiOiAiMTAyOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rldmlj
ZUNsYXNzX0ludDMyIiwidmFsdWUiOiAiMTAyOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0hh
c0NhbWVyYV9Cb29sIiwidmFsdWUiOiAiMTAzMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Ry
aXZlclZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAzMSJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCIsInZhbHVlIjogIjEwMzIifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCIs
InZhbHVlIjogIjEwMzMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9QYXJlbnREcml2ZXJfVWlu
dDY0IiwidmFsdWUiOiAiMTAzNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1JlcG9ydHNUaW1l
U2luY2VWU3luY19Cb29sIiwidmFsdWUiOiAiMjAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X1NlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAxIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsInZhbHVlIjogIjIwMDIi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAi
MjAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCIs
InZhbHVlIjogIjIwMDQifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9QcmV2aW91c1VuaXZlcnNl
SWRfVWludDY0IiwidmFsdWUiOiAiMjAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3Bs
YXlGaXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAwNiJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0lzT25EZXNrdG9wX0Jvb2wiLCJ2YWx1ZSI6ICIyMDA3In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiIsInZhbHVlIjogIjIwMDgifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQiLCJ2YWx1ZSI6ICIyMDA5In0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQiLCJ2YWx1ZSI6ICIy
MDEwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRWRpZFZlbmRvcklEX0ludDMyIiwidmFsdWUi
OiAiMjAxMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJp
bmciLCJ2YWx1ZSI6ICIyMDEyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1h
Z2VSaWdodF9TdHJpbmciLCJ2YWx1ZSI6ICIyMDEzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
RGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCIsInZhbHVlIjogIjIwMTQifQorICAgICAgICx7Im5h
bWUiOiAiUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyIiwidmFsdWUiOiAiMjAxNSJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCIsInZhbHVlIjog
IjIwMTYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyIiwidmFs
dWUiOiAiMjAxNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9h
dCIsInZhbHVlIjogIjIwMTgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NTY2Fs
ZV9GbG9hdCIsInZhbHVlIjogIjIwMTkifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5
R0NQcmVzY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMjAifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9EaXNwbGF5R0NJbWFnZV9TdHJpbmciLCJ2YWx1ZSI6ICIyMDIxIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0IiwidmFsdWUiOiAiMjAyMiJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCIsInZhbHVlIjogIjIwMjMifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0IiwidmFsdWUiOiAi
MjAyNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQiLCJ2
YWx1ZSI6ICIyMDI1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckhlYWRUb0V5ZURlcHRo
TWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiMjAyNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Nh
bWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDI3In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmciLCJ2YWx1ZSI6ICIy
MDI4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCIs
InZhbHVlIjogIjIwMjkifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5Qm9vdGxvYWRl
clZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMSJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIw
MzIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQz
MiIsInZhbHVlIjogIjIwMzMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90SG9y
aXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjIwMzQifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQiLCJ2YWx1ZSI6ICIyMDM1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheVN1cHBy
ZXNzZWRfQm9vbCIsInZhbHVlIjogIjIwMzYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNw
bGF5QWxsb3dOaWdodE1vZGVfQm9vbCIsInZhbHVlIjogIjIwMzcifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyIiwidmFsdWUiOiAiMjAzOCJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyIiwidmFsdWUiOiAi
MjAzOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNf
SW50MzIiLCJ2YWx1ZSI6ICIyMDQwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1D
SW1hZ2VEYXRhX0JpbmFyeSIsInZhbHVlIjogIjIwNDEifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjA0MiJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nIiwidmFsdWUiOiAiMzAwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0IiwidmFsdWUiOiAi
MzAwMSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMwVHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMVR5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIzMDAzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczJUeXBlX0ludDMyIiwidmFsdWUi
OiAiMzAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMzVHlwZV9JbnQzMiIsInZhbHVl
IjogIjMwMDUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzNFR5cGVfSW50MzIiLCJ2YWx1
ZSI6ICIzMDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ29udHJvbGxlclJvbGVIaW50X0lu
dDMyIiwidmFsdWUiOiAiMzAwNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3
TGVmdERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAwIn0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAxIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAi
NDAwMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19G
bG9hdCIsInZhbHVlIjogIjQwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9UcmFja2luZ1Jh
bmdlTWluaW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDQifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9hdCIsInZhbHVlIjogIjQwMDUi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlTGFiZWxfU3RyaW5nIiwidmFsdWUiOiAiNDAw
NiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmciLCJ2YWx1ZSI6
ICI1MDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9T
dHJpbmciLCJ2YWx1ZSI6ICI1MDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29u
UGF0aERldmljZVNlYXJjaGluZ19TdHJpbmciLCJ2YWx1ZSI6ICI1MDAyIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyIsInZh
bHVlIjogIjUwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
UmVhZHlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyIsInZhbHVlIjogIjUwMDUifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nIiwi
dmFsdWUiOiAiNTAwNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VTdGFuZGJ5X1N0cmluZyIsInZhbHVlIjogIjUwMDcifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nIiwidmFsdWUiOiAiNTAwOCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCIsInZh
bHVlIjogIjUxMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9C
aW5hcnlfRW5kIiwidmFsdWUiOiAiNTE1MCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJD
b25maWdQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9JbnN0YWxsUGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICI2MDAxIn0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVl
IjogIjEwOTk5In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkUHJvcGVy
dHlFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlRyYWNrZWRQcm9wX1N1Y2Nl
c3MiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25nRGF0
YVR5cGUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1dyb25n
RGV2aWNlQ2xhc3MiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9w
X0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2Vk
UHJvcF9Vbmtub3duUHJvcGVydHkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlRy
YWNrZWRQcm9wX0ludmFsaWREZXZpY2UiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjog
IlRyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciIsInZhbHVlIjogIjYifQorICAgICAg
ICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlIiwidmFsdWUi
OiAiNyJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11
bUxlbmd0aCIsInZhbHVlIjogIjgifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfTm90
WWV0QXZhaWxhYmxlIiwidmFsdWUiOiAiOSJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJv
cF9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTAifQorICAgICAgICx7Im5hbWUiOiAiVHJh
Y2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiIsInZhbHVlIjogIjExIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5h
bWUiOiAiU3VibWl0X0RlZmF1bHQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlN1
Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAg
LHsibmFtZSI6ICJTdWJtaXRfR2xSZW5kZXJCdWZmZXIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAs
eyJuYW1lIjogIlN1Ym1pdF9SZXNlcnZlZCIsInZhbHVlIjogIjQifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSU3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJW
UlN0YXRlX1VuZGVmaW5lZCIsInZhbHVlIjogIi0xIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3Rh
dGVfT2ZmIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGlu
ZyIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TZWFyY2hpbmdfQWxl
cnQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHkiLCJ2YWx1
ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfUmVhZHlfQWxlcnQiLCJ2YWx1ZSI6
ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfTm90UmVhZHkiLCJ2YWx1ZSI6ICI1In0K
KyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfU3RhbmRieSIsInZhbHVlIjogIjYifQorICAgICAg
ICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3ciLCJ2YWx1ZSI6ICI3In0KK119Ciss
ICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkV2ZW50VHlwZSIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogIlZSRXZlbnRfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVkIiwidmFsdWUiOiAiMTAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVkIiwidmFsdWUiOiAi
MTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQiLCJ2
YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXNl
ckludGVyYWN0aW9uU3RhcnRlZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCIsInZhbHVlIjogIjEwNCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lwZENoYW5nZWQiLCJ2YWx1ZSI6ICIxMDUifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA2
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSIsInZhbHVlIjog
IjEwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdl
ZCIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1dhdGNoZG9nV2Fr
ZVVwUmVxdWVzdGVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
TGVuc0Rpc3RvcnRpb25DaGFuZ2VkIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkIiwidmFsdWUiOiAiMTExIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfQnV0dG9uUHJlc3MiLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9CdXR0b25VbnByZXNzIiwidmFsdWUiOiAiMjAxIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfQnV0dG9uVG91Y2giLCJ2YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9CdXR0b25VbnRvdWNoIiwidmFsdWUiOiAiMjAzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfTW91c2VNb3ZlIiwidmFsdWUiOiAiMzAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfTW91c2VCdXR0b25Eb3duIiwidmFsdWUiOiAiMzAxIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfTW91c2VCdXR0b25VcCIsInZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0ZvY3VzRW50ZXIiLCJ2YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9Gb2N1c0xlYXZlIiwidmFsdWUiOiAiMzA0In0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfU2Nyb2xsIiwidmFsdWUiOiAiMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfVG91Y2hQYWRNb3ZlIiwidmFsdWUiOiAiMzA2In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjMwNyJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCIsInZhbHVlIjogIjQwMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCIsInZhbHVlIjogIjQwMSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lRm9jdXNMb3N0IiwidmFsdWUiOiAiNDAyIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCIsInZhbHVlIjogIjQwMyJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkIiwidmFs
dWUiOiAiNDA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0NoYW5nZWQi
LCJ2YWx1ZSI6ICI0MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9JbnB1dEZvY3VzQ2hh
bmdlZCIsInZhbHVlIjogIjQwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjZW5lQXBw
bGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkIiwidmFsdWUiOiAiNDA3In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfSGlkZVJlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMiLCJ2YWx1ZSI6ICI0MTEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hvd24iLCJ2YWx1ZSI6ICI1MDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5SGlkZGVuIiwidmFsdWUiOiAiNTAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkIiwidmFsdWUi
OiAiNTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQi
LCJ2YWx1ZSI6ICI1MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRUaHVt
YlNlbGVjdGVkIiwidmFsdWUiOiAiNTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFz
aGJvYXJkUmVxdWVzdGVkIiwidmFsdWUiOiAiNTA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfUmVzZXREYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MDYifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9SZW5kZXJUb2FzdCIsInZhbHVlIjogIjUwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0ltYWdlTG9hZGVkIiwidmFsdWUiOiAiNTA4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfU2hvd0tleWJvYXJkIiwidmFsdWUiOiAiNTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfSGlkZUtleWJvYXJkIiwidmFsdWUiOiAiNTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfT3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCIsInZhbHVlIjogIjUxMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0IiwidmFsdWUiOiAiNTEyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkIiwi
dmFsdWUiOiAiNTEzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkR3VpZGVC
dXR0b25Eb3duIiwidmFsdWUiOiAiNTE0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFz
aGJvYXJkR3VpZGVCdXR0b25VcCIsInZhbHVlIjogIjUxNSJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1NjcmVlbnNob3RUcmlnZ2VyZWQiLCJ2YWx1ZSI6ICI1MTYifQorICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9JbWFnZUZhaWxlZCIsInZhbHVlIjogIjUxNyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkIiwidmFsdWUiOiAiNTE4In0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QiLCJ2YWx1ZSI6ICI1MjAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90VGFrZW4iLCJ2YWx1ZSI6ICI1
MjEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkIiwidmFsdWUi
OiAiNTIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3VibWl0U2NyZWVuc2hvdFRvRGFz
aGJvYXJkIiwidmFsdWUiOiAiNTIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NyZWVu
c2hvdFByb2dyZXNzVG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjQifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCIsInZhbHVlIjogIjUyNSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biIsInZhbHVlIjog
IjYwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4iLCJ2
YWx1ZSI6ICI2MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Ob3RpZmljYXRpb25fQmVn
aW5JbnRlcmFjdGlvbiIsInZhbHVlIjogIjYwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQiLCJ2YWx1ZSI6ICI2MDMifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9RdWl0IiwidmFsdWUiOiAiNzAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfUHJvY2Vzc1F1aXQiLCJ2YWx1ZSI6ICI3MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0IiwidmFsdWUiOiAiNzAyIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCIsInZhbHVlIjogIjcwMyJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQiLCJ2YWx1ZSI6ICI3MDQifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjog
IjgwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hh
bmdlZCIsInZhbHVlIjogIjgwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9u
ZVRlbXBEYXRhSGFzQ2hhbmdlZCIsInZhbHVlIjogIjgwMiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1ZSI6ICI4MDMifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0IiwidmFsdWUiOiAiODA0
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkIiwi
dmFsdWUiOiAiODIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQmFja2dyb3VuZFNldHRp
bmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
Q2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1MSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODUy
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTW9kZWxTa2luU2V0dGluZ3NIYXZlQ2hhbmdl
ZCIsInZhbHVlIjogIjg1MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Vudmlyb25tZW50
U2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjg1NSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1N0YXR1c1VwZGF0ZSIsInZhbHVlIjogIjkwMCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X01DSW1hZ2VVcGRhdGVkIiwidmFsdWUiOiAiMTAwMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCIsInZhbHVlIjogIjEx
MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkIiwi
dmFsdWUiOiAiMTEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2xvc2Vk
IiwidmFsdWUiOiAiMTIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJvYXJkQ2hh
cklucHV0IiwidmFsdWUiOiAiMTIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0tleWJv
YXJkRG9uZSIsInZhbHVlIjogIjEyMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBs
aWNhdGlvblRyYW5zaXRpb25TdGFydGVkIiwidmFsdWUiOiAiMTMwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1ZSI6ICIxMzAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBw
U3RhcnRlZCIsInZhbHVlIjogIjEzMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBs
aWNhdGlvbkxpc3RVcGRhdGVkIiwidmFsdWUiOiAiMTMwMyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkIiwidmFsdWUiOiAiMTMwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcExhdW5jaENvbXBs
ZXRlIiwidmFsdWUiOiAiMTMwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0
b3JfTWlycm9yV2luZG93U2hvd24iLCJ2YWx1ZSI6ICIxNDAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4iLCJ2YWx1ZSI6ICIxNDAxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3VuZHNTaG93
biIsInZhbHVlIjogIjE0MTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9y
X0NoYXBlcm9uZUJvdW5kc0hpZGRlbiIsInZhbHVlIjogIjE0MTEifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAw
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJl
YW0iLCJ2YWx1ZSI6ICIxNTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENh
bWVyYV9QYXVzZVZpZGVvU3RyZWFtIiwidmFsdWUiOiAiMTUwMiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAz
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFj
ZSIsInZhbHVlIjogIjE1NTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfRW5hYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUiLCJ2YWx1ZSI6ICIxNjAxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwi
LCJ2YWx1ZSI6ICIxNjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfQ2xvc2VkIiwidmFsdWUiOiAiMTY1MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1Zl
bmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0IiwidmFsdWUiOiAiMTAwMDAifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQiLCJ2YWx1ZSI6ICIx
OTk5OSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFRGV2aWNlQWN0aXZpdHlMZXZl
bCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxf
VW5rbm93biIsInZhbHVlIjogIi0xIn0KKyAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2
aXR5TGV2ZWxfSWRsZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24iLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJu
YW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQiLCJ2
YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogImtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3Rh
bmRieSIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQnV0
dG9uSWQiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJrX0VCdXR0b25fU3lzdGVtIiwi
dmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQXBwbGljYXRpb25NZW51
IiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fR3JpcCIsInZhbHVl
IjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfTGVmdCIsInZhbHVlIjog
IjMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfVXAiLCJ2YWx1ZSI6ICI0In0K
KyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX1JpZ2h0IiwidmFsdWUiOiAiNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9Eb3duIiwidmFsdWUiOiAiNiJ9CisgICAg
ICAgLHsibmFtZSI6ICJrX0VCdXR0b25fQSIsInZhbHVlIjogIjcifQorICAgICAgICx7Im5hbWUi
OiAia19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciIsInZhbHVlIjogIjMxIn0KKyAgICAgICAseyJu
YW1lIjogImtfRUJ1dHRvbl9BeGlzMCIsInZhbHVlIjogIjMyIn0KKyAgICAgICAseyJuYW1lIjog
ImtfRUJ1dHRvbl9BeGlzMSIsInZhbHVlIjogIjMzIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1
dHRvbl9BeGlzMiIsInZhbHVlIjogIjM0In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9B
eGlzMyIsInZhbHVlIjogIjM1In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BeGlzNCIs
InZhbHVlIjogIjM2In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNo
cGFkIiwidmFsdWUiOiAiMzIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJf
VHJpZ2dlciIsInZhbHVlIjogIjMzIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EYXNo
Ym9hcmRfQmFjayIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX01h
eCIsInZhbHVlIjogIjY0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk1vdXNl
QnV0dG9uIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJNb3VzZUJ1dHRvbl9MZWZ0
IiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX1JpZ2h0Iiwi
dmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX01pZGRsZSIsInZh
bHVlIjogIjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUhpZGRlbkFyZWFNZXNo
VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX1N0
YW5kYXJkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVhTWVz
aF9JbnZlcnNlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVh
TWVzaF9MaW5lTG9vcCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19lSGlkZGVu
QXJlYU1lc2hfTWF4IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJDb250cm9sbGVyQXhpc1R5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJr
X2VDb250cm9sbGVyQXhpc19Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJr
X2VDb250cm9sbGVyQXhpc19UcmFja1BhZCIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUi
OiAia19lQ29udHJvbGxlckF4aXNfSm95c3RpY2siLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJu
YW1lIjogImtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIiLCJ2YWx1ZSI6ICIzIn0KK119CissICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUiLCJ2YWx1
ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMi
LCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9W
UkV2ZW50cyIsInZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNv
bGxpc2lvbkJvdW5kc1N0eWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUi
OiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUiLCJ2YWx1ZSI6ICIxIn0KKyAg
ICAgICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVfU1FVQVJFUyIsInZhbHVlIjog
IjIifQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCIs
InZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9O
T05FIiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0NPVU5UIiwidmFsdWUiOiAiNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9Vbmtub3duT3ZlcmxheSIsInZhbHVlIjogIjEwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3Zl
cmxheUVycm9yX0ludmFsaWRIYW5kbGUiLCJ2YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkIiwidmFsdWUiOiAiMTIifQorICAgICAg
ICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQiLCJ2YWx1ZSI6
ICIxMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlU
eXBlIiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5
VG9vTG9uZyIsInZhbHVlIjogIjE1In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X05hbWVUb29Mb25nIiwidmFsdWUiOiAiMTYifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RXJyb3JfS2V5SW5Vc2UiLCJ2YWx1ZSI6ICIxNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJs
YXlFcnJvcl9Xcm9uZ1RyYW5zZm9ybVR5cGUiLCJ2YWx1ZSI6ICIxOCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSIsInZhbHVlIjogIjE5In0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIiLCJ2YWx1
ZSI6ICIyMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9UaHVtYm5haWxDYW50
QmVEZXN0cm95ZWQiLCJ2YWx1ZSI6ICIyMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlF
cnJvcl9BcnJheVRvb1NtYWxsIiwidmFsdWUiOiAiMjIifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RXJyb3JfUmVxdWVzdEZhaWxlZCIsInZhbHVlIjogIjIzIn0KKyAgICAgICAseyJuYW1l
IjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMjQifQorICAgICAg
ICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSIsInZhbHVlIjogIjI1
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNl
IiwidmFsdWUiOiAiMjYifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTm9OZWln
aGJvciIsInZhbHVlIjogIjI3In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Rv
b01hbnlNYXNrUHJpbWl0aXZlcyIsInZhbHVlIjogIjI5In0KKyAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUiLCJ2YWx1ZSI6ICIzMCJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlvblR5cGUiLCJ2YWx1ZXMiOiBbIAorICAg
ICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX090aGVyIiwidmFsdWUiOiAiMCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX1NjZW5lIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX092ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25fQmFja2dyb3VuZCIsInZhbHVlIjogIjMifQorICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvbl9VdGlsaXR5IiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uX1ZSTW9uaXRvciIsInZhbHVlIjogIjUifQorICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nIiwidmFsdWUiOiAiNiJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX01heCIsInZhbHVlIjogIjcifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRmlybXdhcmVFcnJvciIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfU3VjY2VzcyIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX0ZhaWwiLCJ2YWx1ZSI6ICIyIn0KK119CissICAg
ICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9PSyIsInZhbHVlIjogIjAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9u
SWQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJOb3RpZmljYXRpb25FcnJv
cl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUi
OiAiVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSIsInZhbHVlIjogIjEw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2Vy
VmFsdWVBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAzIn0KK119CissICAgICAgIHsiZW51bW5h
bWUiOiAidnI6OkVWUkluaXRFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZS
SW5pdEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX1Vua25vd24iLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0IiwidmFsdWUiOiAiMTAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3Vu
ZCIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0Zp
bGVOb3RGb3VuZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJv
cl9Jbml0X0ZhY3RvcnlOb3RGb3VuZCIsInZhbHVlIjogIjEwNCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kIiwidmFsdWUiOiAiMTA1In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSIsInZhbHVl
IjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdE
aXJlY3RvcnlJbnZhbGlkIiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfSG1kTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCIsInZhbHVlIjogIjEwOSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kIiwidmFs
dWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQ
YXRoIiwidmFsdWUiOiAiMTExIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
Tm9Mb2dQYXRoIiwidmFsdWUiOiAiMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGUiLCJ2YWx1ZSI6ICIxMTMifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxlZCIsInZhbHVlIjogIjEx
NCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1JldHJ5IiwidmFsdWUiOiAi
MTE1In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlV
c2VyIiwidmFsdWUiOiAiMTE2In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRf
QW5vdGhlckFwcExhdW5jaGluZyIsInZhbHVlIjogIjExNyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCIsInZhbHVlIjogIjExOCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biIsInZhbHVlIjogIjEx
OSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzIiwi
dmFsdWUiOiAiMTIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfTm9TZXJ2
ZXJGb3JCYWNrZ3JvdW5kQXBwIiwidmFsdWUiOiAiMTIxIn0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IiLCJ2YWx1ZSI6ICIxMjIi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxp
dHlBcHBzIiwidmFsdWUiOiAiMTIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfSW50ZXJuYWwiLCJ2YWx1ZSI6ICIxMjQifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSIsInZhbHVlIjogIjEyNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQiLCJ2YWx1ZSI6
ICIxMjYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RG
b3VuZCIsInZhbHVlIjogIjEyNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0
X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMjgifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkIiwidmFsdWUi
OiAiMTI5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxp
Y2F0aW9uVHlwZSIsInZhbHVlIjogIjEzMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzIiwidmFsdWUiOiAiMTMxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3Mi
LCJ2YWx1ZSI6ICIxMzIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkRh
c2hib2FyZE5vdEZvdW5kIiwidmFsdWUiOiAiMTMzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkIiwidmFsdWUiOiAiMTM0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9GYWlsZWQiLCJ2YWx1ZSI6ICIyMDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24iLCJ2YWx1ZSI6
ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24i
LCJ2YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05v
dExvYWRlZCIsInZhbHVlIjogIjIwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9E
cml2ZXJfUnVudGltZU91dE9mRGF0ZSIsInZhbHVlIjogIjIwNCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UiLCJ2YWx1ZSI6ICIyMDUifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyMDYi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxp
ZCIsInZhbHVlIjogIjIwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJf
SG1kRGlzcGxheU5vdEZvdW5kIiwidmFsdWUiOiAiMjA4In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biIsInZhbHVlIjog
IjIwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRP
dXRPZkJvdW5kcyIsInZhbHVlIjogIjIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkIiwidmFsdWUiOiAiMjEyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkIiwidmFsdWUi
OiAiMzAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUlu
aXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkIiwidmFsdWUiOiAiMzAzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDQifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCIsInZhbHVlIjogIjMwNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQi
LCJ2YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0NvbXBv
c2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlIiwidmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJu
YW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRz
IiwidmFsdWUiOiAiMzA4In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfRmFpbGVkIiwidmFsdWUiOiAiNDAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkIiwidmFsdWUiOiAiNDAxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0
ZSIsInZhbHVlIjogIjQwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Db21wb3Np
dG9yX092ZXJsYXlJbml0RmFpbGVkIiwidmFsdWUiOiAiNDAzIn0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkIiwidmFsdWUiOiAi
NDA0In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJs
ZVRvQ29ubmVjdFRvT2N1bHVzUnVudGltZSIsInZhbHVlIjogIjEwMDAifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2Ui
LCJ2YWx1ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0IiwidmFsdWUiOiAiMTEw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Ob1N0b3JlZENvbmZpZyIsInZhbHVlIjogIjExMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vQmlnIiwidmFsdWUiOiAi
MTEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9Db25maWdUb29TbWFsbCIsInZhbHVlIjogIjExMDUifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiIsInZh
bHVlIjogIjExMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMTA3In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJs
ZVRvU2VuZFVzZXJEYXRhU3RhcnQiLCJ2YWx1ZSI6ICIxMTA4In0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFT
dGFydCIsInZhbHVlIjogIjExMDkifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQiLCJ2YWx1ZSI6ICIx
MTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZv
dW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlIiwidmFsdWUiOiAiMTExMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yIiwi
dmFsdWUiOiAiMTExMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayIsInZhbHVlIjogIjExMTMifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RG
b3VuZCIsInZhbHVlIjogIjIwMDAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZS
U2NyZWVuc2hvdFR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNo
b3RUeXBlX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hv
dFR5cGVfTW9ubyIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90
VHlwZV9TdGVyZW8iLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hv
dFR5cGVfQ3ViZW1hcCIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5z
aG90VHlwZV9Nb25vUGFub3JhbWEiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZS
U2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyIsInZhbHVl
cyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1By
ZXZpZXciLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdFByb3Bl
cnR5RmlsZW5hbWVzX1ZSIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6
ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQiLCJ2YWx1ZSI6ICIxMDAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEhhbmRsZSIs
InZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9J
bnZhbGlkRnJhbWVIZWFkZXJWZXJzaW9uIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1l
IjogIlZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyIsInZhbHVlIjogIjEwMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlIiwidmFsdWUi
OiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1cHBv
cnRlZEZvclRoaXNEZXZpY2UiLCJ2YWx1ZSI6ICIxMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJU
cmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSIsInZhbHVlIjogIjEwNiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1
cmUiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJy
b3JfU3RyZWFtU2V0dXBGYWlsdXJlIiwidmFsdWUiOiAiMTA4In0KKyAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCIsInZhbHVlIjogIjEwOSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4
dHVyZUhhbmRsZSIsInZhbHVlIjogIjExMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRD
YW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTExIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWlsdXJlIiwi
dmFsdWUiOiAiMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05v
RnJhbWVBdmFpbGFibGUiLCJ2YWx1ZSI6ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50IiwidmFsdWUiOiAiMTE0In0KKyAgICAgICAs
eyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZlclNpemUiLCJ2
YWx1ZSI6ICIxMTUifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCIsInZhbHVlIjogIjEifQorICAg
ICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRl
ZCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiTUFYX0NBTUVSQV9GUkFNRV9UWVBF
UyIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGlj
YXRpb25FcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25F
cnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
RXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0cyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCIsInZhbHVlIjogIjEwMSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTm9BcHBsaWNhdGlvbiIsInZhbHVlIjog
IjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4
IiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9V
bmtub3duQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJB
cHBsaWNhdGlvbkVycm9yX0lQQ0ZhaWxlZCIsInZhbHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyIsInZhbHVl
IjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1h
bmlmZXN0IiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25F
cnJvcl9JbnZhbGlkQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUi
OiAiVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCIsInZhbHVlIjogIjEwOSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRp
bmciLCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X0xhdW5jaEluUHJvZ3Jlc3MiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJB
cHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmciLCJ2YWx1ZSI6ICIxMTIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1RyYW5zaXRpb25BYm9ydGVkIiwi
dmFsdWUiOiAiMTEzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Jc1Rl
bXBsYXRlIiwidmFsdWUiOiAiMTE0In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25F
cnJvcl9CdWZmZXJUb29TbWFsbCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkFwcGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjog
IjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZFBhcmFt
ZXRlciIsInZhbHVlIjogIjIwMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJB
cHBsaWNhdGlvblByb3BlcnR5IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvblByb3BlcnR5X05hbWVfU3RyaW5nIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9TdHJpbmciLCJ2YWx1ZSI6ICIx
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfV29ya2luZ0RpcmVj
dG9yeV9TdHJpbmciLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0
aW9uUHJvcGVydHlfQmluYXJ5UGF0aF9TdHJpbmciLCJ2YWx1ZSI6ICIxMyJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyIsInZhbHVlIjog
IjE0In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5n
IiwidmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5
X0Rlc2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjUwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
QXBwbGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyIsInZhbHVlIjogIjUxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nIiwidmFs
dWUiOiAiNTIifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1NvdXJj
ZV9TdHJpbmciLCJ2YWx1ZSI6ICI1MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wiLCJ2YWx1ZSI6ICI2MCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sIiwidmFsdWUi
OiAiNjEifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzSW5zdGFu
Y2VkX0Jvb2wiLCJ2YWx1ZSI6ICI2MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfSXNJbnRlcm5hbF9Cb29sIiwidmFsdWUiOiAiNjMifQorICAgICAgICx7Im5hbWUi
OiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCIsInZhbHVlIjog
IjcwIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHJhbnNp
dGlvblN0YXRlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25fTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25fT2xkQXBwUXVpdFNlbnQiLCJ2YWx1ZSI6ICIxMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9XYWl0aW5nRm9yRXh0ZXJuYWxMYXVuY2gi
LCJ2YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
bl9OZXdBcHBMYXVuY2hlZCIsInZhbHVlIjogIjIwIn0KK119CissICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX09LIiwidmFsdWUiOiAiMSJ9CisgICAg
ICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmciLCJ2YWx1ZSI6
ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJu
aW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJu
YW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvblJlbW92
ZWQiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRp
b25TdGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQiLCJ2YWx1ZSI6ICIxMDMifQorICAg
ICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvciIsInZhbHVlIjog
IjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9y
X0Jhc2VTdGF0aW9uVW5pbml0aWFsaXplZCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0Jhc2VTdGF0aW9uQ29uZmxpY3Qi
LCJ2YWx1ZSI6ICIyMDIifQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25T
dGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQiLCJ2YWx1ZSI6ICIyMDMifQorICAgICAgICx7Im5h
bWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9Db2xsaXNpb25Cb3VuZHNJbnZh
bGlkIiwidmFsdWUiOiAiMjA0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDaGFw
ZXJvbmVDb25maWdGaWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRUNoYXBlcm9u
ZUNvbmZpZ0ZpbGVfTGl2ZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiRUNoYXBl
cm9uZUNvbmZpZ0ZpbGVfVGVtcCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RUNoYXBlcm9uZUltcG9ydEZsYWdzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5h
bWUiOiAiRUNoYXBlcm9uZUltcG9ydF9Cb3VuZHNPbmx5IiwidmFsdWUiOiAiMSJ9CitdfQorLCAg
ICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUi
OiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9JbmNvbXBhdGlibGVW
ZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVy
cm9yX0RvTm90SGF2ZUZvY3VzIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZS
Q29tcG9zaXRvckVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlvbiIsInZhbHVl
IjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlSXNP
bldyb25nRGV2aWNlIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9z
aXRvckVycm9yX1RleHR1cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQiLCJ2YWx1ZSI6ICIxMDUifQor
ICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RTdXBw
b3J0ZWQiLCJ2YWx1ZSI6ICIxMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJy
b3JfSW5kZXhPdXRPZlJhbmdlIiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZS
Q29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQiLCJ2YWx1ZSI6ICIxMDgifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QiLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lIiwidmFsdWUiOiAi
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlJbnB1dE1ldGhvZF9Nb3VzZSIsInZhbHVl
IjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3Jt
VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9B
YnNvbHV0ZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNm
b3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUi
OiAiVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICIyIn0KKyAgICAg
ICAseyJuYW1lIjogIlZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9uZW50IiwidmFsdWUi
OiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlGbGFncyIsInZh
bHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vbmUiLCJ2YWx1ZSI6
ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX0N1cnZlZCIsInZhbHVlIjog
IjEifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUkdTUzRYIiwidmFsdWUiOiAi
MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiIsInZh
bHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVw
YWRFdmVudHMiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdz
X1Nob3dHYW1lcGFkRm9jdXMiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlZST3Zl
cmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyIsInZhbHVlIjogIjYifQorICAgICAgICx7Im5h
bWUiOiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRFdmVudHMiLCJ2YWx1ZSI6ICI3In0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVs
IiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19UcmFuc2Zl
ck93bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzIiwidmFsdWUiOiAiOSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsIiwidmFsdWUiOiAiMTAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkIiwidmFs
dWUiOiAiMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEiLCJ2
YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5v
cmFtYSIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1Nv
cnRXaXRoTm9uU2NlbmVPdmVybGF5cyIsInZhbHVlIjogIjE0In0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2FyZCIsInZhbHVlIjogIjE1In0KK119Ciss
ICAgICAgIHsiZW51bW5hbWUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsInZhbHVl
cyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25Q
cmVzc18wIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5
UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAi
VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIiLCJ2YWx1ZSI6ICIyIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zIiwi
dmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2Vf
Q291bGRudEZpbmRTeXN0ZW1PdmVybGF5IiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJs
YXkiLCJ2YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZV9BcHBsaWNhdGlvblF1aXQiLCJ2YWx1ZSI6ICI2In0KK119CissICAgICAgIHsiZW51bW5h
bWUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJu
YW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsIiwidmFsdWUiOiAiMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkIiwidmFsdWUiOiAi
MSJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VHYW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCIsInZh
bHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5w
dXRMaW5lTW9kZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUdhbWVwYWRUZXh0
SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
ImtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMiLCJ2YWx1ZSI6ICIxIn0K
K119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9VcCIsInZhbHVlIjogIjAi
fQorICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Eb3duIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0xlZnQiLCJ2YWx1ZSI6ICIyIn0K
KyAgICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fUmlnaHQiLCJ2YWx1ZSI6ICIzIn0K
KyAgICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fQ291bnQiLCJ2YWx1ZSI6ICI0In0K
K119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
UHJpbWl0aXZlVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIk92ZXJsYXlJbnRl
cnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSIsInZhbHVlIjogIjAifQorICAgICAgICx7
Im5hbWUiOiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xlIiwidmFsdWUi
OiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9y
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vbmUi
LCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Mb2Fk
aW5nIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJv
cl9Ob3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5k
ZXJNb2RlbEVycm9yX0ludmFsaWRBcmciLCJ2YWx1ZSI6ICIzMDAifQorICAgICAgICx7Im5hbWUi
OiAiVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCIsInZhbHVlIjogIjMwMSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMiLCJ2YWx1ZSI6ICIzMDIi
fQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hhcGVzIiwi
dmFsdWUiOiAiMzAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ub29N
YW55VmVydGljZXMiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX011bHRpcGxlVGV4dHVyZXMiLCJ2YWx1ZSI6ICIzMDUifQorICAgICAgICx7Im5h
bWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMzA2In0K
KyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzIiwi
dmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RF
bm91Z2hUZXhDb29yZHMiLCJ2YWx1ZSI6ICIzMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5k
ZXJNb2RlbEVycm9yX0ludmFsaWRUZXh0dXJlIiwidmFsdWUiOiAiNDAwIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvbmVudFByb3BlcnR5IiwidmFsdWVzIjogWyAKKyAg
ICAgICB7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyIsInZhbHVlIjogIjEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUiLCJ2YWx1
ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVk
IiwidmFsdWUiOiAiNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lz
UHJlc3NlZCIsInZhbHVlIjogIjgifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9w
ZXJ0eV9Jc1Njcm9sbGVkIiwidmFsdWUiOiAiMTYifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RVZSTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjog
IkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50IiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQiLCJ2YWx1ZSI6ICIxIn0KKyAg
ICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhV
c2VyVmFsdWUiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVW
Uk5vdGlmaWNhdGlvblN0eWxlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRVZSTm90
aWZpY2F0aW9uU3R5bGVfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiRVZS
Tm90aWZpY2F0aW9uU3R5bGVfQXBwbGljYXRpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7
Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9EaXNhYmxlZCIsInZhbHVlIjog
IjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Vu
YWJsZWQiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9u
U3R5bGVfQ29udGFjdF9BY3RpdmUiLCJ2YWx1ZSI6ICIyMDIifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIlZSU2V0dGluZ3NFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUlNldHRpbmdzRXJyb3JfV3JpdGVGYWlsZWQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVkIiwidmFsdWUiOiAiMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFpbGVkIiwidmFsdWUiOiAi
NCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9E
ZWZhdWx0IiwidmFsdWUiOiAiNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJT
Y3JlZW5zaG90RXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlNjcmVlbnNo
b3RFcnJvcl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNo
b3RFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
UlNjcmVlbnNob3RFcnJvcl9JbmNvbXBhdGlibGVWZXJzaW9uIiwidmFsdWUiOiAiMTAwIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kIiwidmFsdWUiOiAiMTAx
In0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsIiwi
dmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX1NjcmVl
bnNob3RBbHJlYWR5SW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwOCJ9CitdfQorXSwKKyJjb25zdHMi
Olt7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUi
LCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kIiwiY29uc3R0
eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3Qg
dWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5UcmFja2VkRGV2aWNlSW5kZXhPdGhlciIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIs
ICJjb25zdHZhbCI6ICI0Mjk0OTY3Mjk0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
VHJhY2tlZERldmljZUluZGV4SW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIs
ICJjb25zdHZhbCI6ICI0Mjk0OTY3Mjk1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vs
SW52YWxpZFByb3BlcnR5Q29udGFpbmVyIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia191bkludmFsaWRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
RmxvYXRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIs
ICJjb25zdHZhbCI6ICIxIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSW50MzJQcm9w
ZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZh
bCI6ICIyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVWludDY0UHJvcGVydHlUYWci
LCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMyJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bkJvb2xQcm9wZXJ0eVRhZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI0In0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3VuU3RyaW5nUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29u
c3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiNSJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjAifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIxIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjIzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjMwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
T3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJv
cGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMTAwMDAifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWlu
dDMyX3QiLCAiY29uc3R2YWwiOiAiMzI3NjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3Qi
LCAiY29uc3R2YWwiOiAiNSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bE92ZXJsYXlI
YW5kbGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IFZST3ZlcmxheUhhbmRsZV90IiwgImNv
bnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5TY3JlZW5zaG90SGFu
ZGxlSW52YWxpZCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIw
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJTeXN0ZW1fVmVyc2lvbiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTeXN0ZW1fMDE1In0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJFeHRlbmRlZERpc3Bs
YXlfMDAxIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJUcmFja2VkQ2FtZXJhX1ZlcnNp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSVHJh
Y2tlZENhbWVyYV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhBcHBsaWNh
dGlvbktleUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6
ICIxMjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX01pbWVUeXBlX0hvbWVBcHAi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvaG9tZSJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidnIvZ2FtZV90aGVh
dGVyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJBcHBsaWNh
dGlvbnNfMDA2In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVfVmVyc2lv
biIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJDaGFw
ZXJvbmVfMDAzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDaGFwZXJvbmVTZXR1cF9W
ZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklW
UkNoYXBlcm9uZVNldHVwXzAwNSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAiSVZSQ29tcG9z
aXRvcl9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIklWUkNvbXBvc2l0b3JfMDIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJP
dmVybGF5TWF4S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0
dmFsIjogIjEyOCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blZST3ZlcmxheU1heE5h
bWVMZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMTI4
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUNvdW50IiwiY29uc3R0
eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjY0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQi
LCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMzIifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogIklWUk92ZXJsYXlfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJPdmVybGF5XzAxNCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfR0RDMjAxNSIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJnZGMyMDE1In0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2UifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0aXAifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0hhbmRHcmlwIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhhbmRncmlwIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhdHVzIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJSZW5kZXJNb2RlbHNf
MDA1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuTm90aWZpY2F0aW9uVGV4dE1heFNp
emUiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMjU2In0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24iLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSTm90aWZpY2F0aW9uc18w
MDIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhTZXR0aW5nc0tleUxlbmd0aCIs
ImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogIklWUlNldHRpbmdzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSU2V0dGluZ3NfMDAyIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RlYW12ciJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXF1aXJlSG1kIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmciLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VkRHJpdmVyIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJp
bmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2Vk
SG1kIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1
Z19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRp
c3BsYXlEZWJ1ZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EZWJ1
Z1Byb2Nlc3NQaXBlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJkZWJ1Z1Byb2Nlc3NQaXBlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEaXN0b3J0aW9uIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVnWCJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMy
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc3BsYXlE
ZWJ1Z1kifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VuZFN5c3Rl
bUJ1dHRvblRvQWxsQXBwc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogInNlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHMifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibG9nbGV2ZWwifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImlwZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRVc2VE
b21lUHJvamVjdGlvbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9C
YWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmRDYW1lcmFIZWlnaHQifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZERvbWVSYWRpdXNfRmxvYXQiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZERv
bWVSYWRpdXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfR3JpZENv
bG9yX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJncmlkQ29sb3IifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfUGxh
eUFyZWFDb2xvcl9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAicGxheUFyZWFDb2xvciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9TaG93U3RhZ2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzaG93U3RhZ2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhY3RpdmF0ZU11bHRpcGxlRHJpdmVycyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlyZWN0TW9kZSJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZp
ZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJk
aXJlY3RNb2RlRWRpZFZpZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1W
Ul9EaXJlY3RNb2RlRWRpZFBpZF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlRWRpZFBpZCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNpbmdTcGVha2VycyJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdy
ZWVzX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InNwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXMifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYXNlc3RhdGlvblBvd2Vy
TWFuYWdlbWVudCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9OZXZl
cktpbGxQcm9jZXNzZXNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJuZXZlcktpbGxQcm9jZXNzZXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFyZ2V0TXVsdGlwbGllcl9GbG9hdCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVy
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXBy
b2plY3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlv
bl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImZv
cmNlUmVwcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZS
X0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRlZmF1bHRNaXJyb3JW
aWV3In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JW
aWV3X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
c2hvd01pcnJvclZpZXcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJf
TWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJtaXJyb3JWaWV3R2VvbWV0cnkifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGFydE1vbml0b3JGcm9tQXBw
TGF1bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0Q29t
cG9zaXRvckZyb21BcHBMYXVuY2hfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5j
aF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0
YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0T3ZlcmxheUFwcHNGcm9t
RGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0VuYWJs
ZUhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
ZW5hYmxlSG9tZUFwcCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9T
ZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQz
MiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDeWNsZUJh
Y2tncm91bmRJbWFnZVRpbWVTZWMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfUmV0YWlsRGVtb19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogInJldGFpbERlbW8ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImlwZE9mZnNldCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfTGlnaHRob3VzZV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImRyaXZlcl9saWdodGhvdXNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNhYmxlaW11In0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2VkaXNhbWJpZ3VhdGlv
biJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3Vh
dGlvbkRlYnVnX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogImRpc2FtYmlndWF0aW9uZGVidWcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInByaW1hcnliYXNlc3RhdGlvbiJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkYmhpc3RvcnkifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2VjdGlvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkcml2ZXJfbnVsbCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlcmlhbE51bWJlciJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmciLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxOdW1iZXIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WF9JbnQzMiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dYIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93WSJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dXaWR0aCJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAid2luZG93SGVpZ2h0In0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlcldpZHRo
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQz
MiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJyZW5kZXJI
ZWlnaHQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfU2Vjb25kc0Zyb21W
c3luY1RvUGhvdG9uc19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheUZyZXF1ZW5jeSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZXJpbnRlcmZhY2UifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlz
T25Ub3BfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJTdGF0dXNBbHdheXNPblRvcCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNl
ckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogIk1pbmltaXplVG9UcmF5In0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdHMifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNjcmVlbnNo
b3RUeXBlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX1Nl
Y3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibm90
aWZpY2F0aW9ucyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTm90aWZpY2F0aW9u
c19Eb05vdERpc3R1cmJfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJEb05vdERpc3R1cmIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X0tleWJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAia2V5Ym9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJv
YXJkX1R1dG9yaWFsQ29tcGxldGlvbnMiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiVHV0b3JpYWxDb21wbGV0aW9ucyJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfS2V5Ym9hcmRfU2NhbGVYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIlNjYWxlWCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfS2V5Ym9hcmRfU2NhbGVZIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogIlNjYWxlWSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9h
cmRfT2Zmc2V0TGVmdFgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiT2Zmc2V0TGVmdFgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tleWJv
YXJkX09mZnNldFJpZ2h0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJPZmZzZXRSaWdodFgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0tl
eWJvYXJkX09mZnNldFkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiT2Zmc2V0WSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
U21vb3RoaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IlNtb290aGluZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9TZWN0aW9u
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZjaGVj
ayJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVf
Qm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJoZXVy
aXN0aWNBY3RpdmUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5
SW5ITURfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ3YXJuSW5ITUQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZfTm90aWZ5
T25seU9uY2VfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJ3YXJuT25seU9uY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1BlcmZf
QWxsb3dUaW1pbmdTdG9yZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImFsbG93VGltaW5nU3RvcmUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzYXZlVGltaW5nc09uRXhpdCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJwZXJmVGVzdERhdGEifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNvbGxpc2lvbkJvdW5kcyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMy
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lv
bkJvdW5kc1N0eWxlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25C
b3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtl
ck9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
Q29sbGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9u
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURp
c3RhbmNlX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2Ft
bWFSIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29s
b3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUcifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdh
bW1hQiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0Nv
bG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9DYW1lcmFfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJjYW1lcmEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUluRGFzaGJvYXJk
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9y
Q29sbGlzaW9uQm91bmRzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1l
cmFGb3JSb29tVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0Jv
dW5kc0NvbG9yR2FtbWFSX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1t
YUcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdh
bW1hQl9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRz
U3RyZW5ndGgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX1NlY3Rpb24i
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXVkaW8ifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3Ry
aW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9uUGxh
eWJhY2tEZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09uUmVj
b3JkRGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJvblJlY29yZERldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
YXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFja01pcnJvckRldmljZSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5n
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm9mZlBsYXli
YWNrRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZSZWNv
cmREZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIm9mZlJlY29yZERldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
YXVkaW9fVklWRUhETUlHYWluIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInZpdmVIRE1JR2FpbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
UG93ZXJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJwb3dlciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfUG93ZXJP
ZmZPbkV4aXRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJwb3dlck9mZk9uRXhpdCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93
ZXJfVHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZTY3JlZW5zVGltZW91dCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9h
dCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ0dXJuT2Zm
Q29udHJvbGxlcnNUaW1lb3V0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dl
cl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblBy
ZXNzIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImF1dG9M
YXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfRGFzaGJvYXJkX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiZGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9E
YXNoYm9hcmRfRW5hYmxlRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlRGFzaGJvYXJkIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFyY2FkZU1vZGUifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX21vZGVsc2tpbl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1vZGVsc2tpbnMifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGUifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogIklWUlNjcmVlbnNob3RzX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiSVZSU2NyZWVuc2hvdHNfMDAxIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJJVlJSZXNvdXJjZXNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJJVlJSZXNvdXJjZXNfMDAxIn0KK10sCisic3RydWN0cyI6W3si
c3RydWN0IjogInZyOjpIbWRNYXRyaXgzNF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjog
Im0iLCAiZmllbGR0eXBlIjogImZsb2F0IFszXVs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1k
TWF0cml4NDRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtIiwgImZpZWxkdHlwZSI6
ICJmbG9hdCBbNF1bNF0ifV19CisseyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjNfdCIsImZpZWxk
cyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbM10ifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OkhtZFZlY3RvcjRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6
ICJ2IiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbNF0ifV19CisseyJzdHJ1Y3QiOiAidnI6OkhtZFZl
Y3RvcjNkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAi
ZG91YmxlIFszXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yMl90IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6SG1kUXVhdGVybmlvbl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjog
InciLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9LAoreyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0
eXBlIjogImRvdWJsZSJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImRvdWJs
ZSJ9LAoreyAiZmllbGRuYW1lIjogInoiLCAiZmllbGR0eXBlIjogImRvdWJsZSJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6SG1kQ29sb3JfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImciLCAiZmllbGR0eXBlIjog
ImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiYiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sg
ImZpZWxkbmFtZSI6ICJhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6SG1kUXVhZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInZDb3JuZXJzIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCBbNF0ifV19CisseyJzdHJ1Y3QiOiAi
dnI6OkhtZFJlY3QyX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlRvcExlZnQiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCit7ICJmaWVsZG5hbWUiOiAi
dkJvdHRvbVJpZ2h0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9XX0K
Kyx7InN0cnVjdCI6ICJ2cjo6RGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAicmZSZWQiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoreyAiZmll
bGRuYW1lIjogInJmR3JlZW4iLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9LAoreyAiZmllbGRu
YW1lIjogInJmQmx1ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQorLHsic3RydWN0Ijog
InZyOjpUZXh0dXJlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZp
ZWxkdHlwZSI6ICJ2b2lkICoifSwKK3sgImZpZWxkbmFtZSI6ICJlVHlwZSIsICJmaWVsZHR5cGUi
OiAiZW51bSB2cjo6RVRleHR1cmVUeXBlIn0sCit7ICJmaWVsZG5hbWUiOiAiZUNvbG9yU3BhY2Ui
LCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVDb2xvclNwYWNlIn1dfQorLHsic3RydWN0IjogInZy
OjpUcmFja2VkRGV2aWNlUG9zZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1EZXZp
Y2VUb0Fic29sdXRlVHJhY2tpbmciLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4
MzRfdCJ9LAoreyAiZmllbGRuYW1lIjogInZWZWxvY2l0eSIsICJmaWVsZHR5cGUiOiAic3RydWN0
IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2QW5ndWxhclZlbG9jaXR5Iiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjog
ImVUcmFja2luZ1Jlc3VsdCIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nUmVzdWx0
In0sCit7ICJmaWVsZG5hbWUiOiAiYlBvc2VJc1ZhbGlkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9
LAoreyAiZmllbGRuYW1lIjogImJEZXZpY2VJc0Nvbm5lY3RlZCIsICJmaWVsZHR5cGUiOiAiX0Jv
b2wifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVGV4dHVyZUJvdW5kc190IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogInVNaW4iLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5h
bWUiOiAidk1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ1TWF4
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInZNYXgiLCAiZmllbGR0
eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpWUlZ1bGthblRleHR1cmVEYXRhX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9uSW1hZ2UiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9wRGV2aWNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1
Y3QgVmtEZXZpY2VfVCAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wUGh5c2ljYWxEZXZpY2UiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiJ9LAoreyAiZmllbGRuYW1l
IjogIm1fcEluc3RhbmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtJbnN0YW5jZV9UICoifSwK
K3sgImZpZWxkbmFtZSI6ICJtX3BRdWV1ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IFZrUXVldWVf
VCAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9uUXVldWVGYW1pbHlJbmRleCIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25IZWlnaHQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uRm9ybWF0IiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fblNhbXBsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6RDNEMTJUZXh0dXJlRGF0YV90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogIm1fcFJlc291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
SUQzRDEyUmVzb3VyY2UgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcENvbW1hbmRRdWV1ZSIsICJm
aWVsZHR5cGUiOiAic3RydWN0IElEM0QxMkNvbW1hbmRRdWV1ZSAqIn0sCit7ICJmaWVsZG5hbWUi
OiAibV9uTm9kZU1hc2siLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0Ijog
InZyOjpWUkV2ZW50X0NvbnRyb2xsZXJfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJi
dXR0b24iLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2
ZW50X01vdXNlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAor
eyAiZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJz
dHJ1Y3QiOiAidnI6OlZSRXZlbnRfU2Nyb2xsX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUi
OiAieGRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInlkZWx0
YSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJyZXBlYXRDb3VudCIs
ICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfVG91
Y2hQYWRNb3ZlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiYkZpbmdlckRvd24iLCAi
ZmllbGR0eXBlIjogIl9Cb29sIn0sCit7ICJmaWVsZG5hbWUiOiAiZmxTZWNvbmRzRmluZ2VyRG93
biIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVYRmlyc3Qi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWUZpcnN0Iiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImZWYWx1ZVhSYXciLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWVJhdyIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidWxVc2VyVmFsdWUiLCAiZmllbGR0eXBlIjog
InVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uSWQiLCAiZmllbGR0eXBl
IjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1Byb2Nlc3NfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJwaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0s
Cit7ICJmaWVsZG5hbWUiOiAib2xkUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAi
ZmllbGRuYW1lIjogImJGb3JjZWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0
IjogInZyOjpWUkV2ZW50X092ZXJsYXlfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJv
dmVybGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6VlJFdmVudF9TdGF0dXNfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJzdGF0dXNT
dGF0ZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZl
bnRfS2V5Ym9hcmRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJjTmV3SW5wdXQiLCAi
ZmllbGR0eXBlIjogImNoYXIgWzhdIn0sCit7ICJmaWVsZG5hbWUiOiAidVVzZXJWYWx1ZSIsICJm
aWVsZHR5cGUiOiAidWludDY0X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfSXBkX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaXBkTWV0ZXJzIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9DaGFwZXJvbmVfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QcmV2aW91c1VuaXZlcnNlIiwgImZpZWxkdHlwZSI6ICJ1
aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkN1cnJlbnRVbml2ZXJzZSIsICJmaWVsZHR5
cGUiOiAidWludDY0X3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDAiLCAiZmllbGR0eXBlIjogInVp
bnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAicmVzZXJ2ZWQxIiwgImZpZWxkdHlwZSI6ICJ1aW50
NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25GaWRlbGl0eUxldmVsIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiYlJlc2V0QnlTeXN0ZW1NZW51Iiwg
ImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JlZW5z
aG90X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiaGFuZGxlIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInR5cGUiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Iiwi
ZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJ1bkFyZ3NIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1d
fQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJmYWNlX3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAib3ZlcmxheUhhbmRsZSIsICJmaWVsZHR5cGUiOiAidWlu
dDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJuVmlzdWFsTW9kZSIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvcGVy
dHlfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJjb250YWluZXIiLCAiZmllbGR0eXBl
IjogIlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJwcm9wIiwg
ImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In1dfQorLHsic3Ry
dWN0IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyZXNl
cnZlZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1Jlc2VydmVkX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJjb250cm9sbGVyIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZl
bnRfQ29udHJvbGxlcl90In0sCit7ICJmaWVsZG5hbWUiOiAibW91c2UiLCAiZmllbGR0eXBlIjog
InN0cnVjdCB2cjo6VlJFdmVudF9Nb3VzZV90In0sCit7ICJmaWVsZG5hbWUiOiAic2Nyb2xsIiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2Nyb2xsX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJwcm9jZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvY2Vzc190
In0sCit7ICJmaWVsZG5hbWUiOiAibm90aWZpY2F0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
dnI6OlZSRXZlbnRfTm90aWZpY2F0aW9uX3QifSwKK3sgImZpZWxkbmFtZSI6ICJvdmVybGF5Iiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfT3ZlcmxheV90In0sCit7ICJmaWVsZG5h
bWUiOiAic3RhdHVzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU3RhdHVzX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJrZXlib2FyZCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpW
UkV2ZW50X0tleWJvYXJkX3QifSwKK3sgImZpZWxkbmFtZSI6ICJpcGQiLCAiZmllbGR0eXBlIjog
InN0cnVjdCB2cjo6VlJFdmVudF9JcGRfdCJ9LAoreyAiZmllbGRuYW1lIjogImNoYXBlcm9uZSIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0NoYXBlcm9uZV90In0sCit7ICJmaWVs
ZG5hbWUiOiAicGVyZm9ybWFuY2VUZXN0IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZl
bnRfUGVyZm9ybWFuY2VUZXN0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJ0b3VjaFBhZE1vdmUiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCJ9LAoreyAiZmll
bGRuYW1lIjogInNlYXRlZFplcm9Qb3NlUmVzZXQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
VlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJzY3JlZW5z
aG90IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfU2NyZWVuc2hvdF90In0sCit7
ICJmaWVsZG5hbWUiOiAic2NyZWVuc2hvdFByb2dyZXNzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
dnI6OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJhcHBs
aWNhdGlvbkxhdW5jaCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0FwcGxpY2F0
aW9uTGF1bmNoX3QifSwKK3sgImZpZWxkbmFtZSI6ICJjYW1lcmFTdXJmYWNlIiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCJ9LAoreyAiZmll
bGRuYW1lIjogIm1lc3NhZ2VPdmVybGF5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZl
bnRfTWVzc2FnZU92ZXJsYXlfdCJ9LAoreyAiZmllbGRuYW1lIjogInByb3BlcnR5IiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUHJvcGVydHlfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6VlJFdmVudF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImV2ZW50VHlwZSIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ0cmFja2VkRGV2aWNlSW5k
ZXgiLCAiZmllbGR0eXBlIjogIlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICJmaWVsZG5hbWUi
OiAiZXZlbnRBZ2VTZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogImRhdGEiLCAiZmllbGR0eXBlIjogIlZSRXZlbnRfRGF0YV90In1dfQorLHsic3RydWN0Ijog
InZyOjpIaWRkZW5BcmVhTWVzaF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInBWZXJ0
ZXhEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqIn0s
Cit7ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVyQXhpc190IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogIngiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAieSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSQ29udHJv
bGxlclN0YXRlMDAxX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidW5QYWNrZXROdW0i
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAidWxCdXR0b25QcmVz
c2VkIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogInVsQnV0dG9u
VG91Y2hlZCIsICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJyQXhp
cyIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3QgWzVdIn1dfQor
LHsic3RydWN0IjogInZyOjpDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncyIsImZpZWxkcyI6IFsK
K3sgImZpZWxkbmFtZSI6ICJzaXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmll
bGRuYW1lIjogImN1cnZlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6
ICJhbnRpYWxpYXMiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCit7ICJmaWVsZG5hbWUiOiAic2Nh
bGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZGlzdGFuY2UiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiYWxwaGEiLCAiZmllbGR0eXBl
IjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidU9mZnNldCIsICJmaWVsZHR5cGUiOiAiZmxv
YXQifSwKK3sgImZpZWxkbmFtZSI6ICJ2T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAor
eyAiZmllbGRuYW1lIjogInVTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJ2U2NhbGUiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAi
Z3JpZERpdnMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZ3JpZFdp
ZHRoIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImdyaWRTY2FsZSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ0cmFuc2Zvcm0iLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4NDRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1l
IjogImVGcmFtZVR5cGUiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJuV2lkdGgiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCit7ICJmaWVsZG5hbWUiOiAibkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJuQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJuRnJhbWVTZXF1ZW5jZSIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QifV19CisseyJzdHJ1Y3Qi
OiAidnI6OkFwcE92ZXJyaWRlS2V5c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInBj
aEtleSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICJmaWVsZG5hbWUiOiAicGNo
VmFsdWUiLCAiZmllbGR0eXBlIjogImNvbnN0IGNoYXIgKiJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
Q29tcG9zaXRvcl9GcmFtZVRpbWluZyIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25T
aXplIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkZyYW1l
SW5kZXgiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVt
RnJhbWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJtX25OdW1NaXNQcmVzZW50ZWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJtX25SZXByb2plY3Rpb25GbGFncyIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsU3lzdGVtVGltZUluU2Vjb25kcyIsICJmaWVs
ZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFByZVN1Ym1pdEdwdU1zIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxQb3N0U3VibWl0R3B1
TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFRvdGFsUmVu
ZGVyR3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENv
bXBvc2l0b3JSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFt
ZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAor
eyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9ySWRsZUNwdU1zIiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDbGllbnRGcmFtZUludGVydmFsTXMiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFByZXNlbnRDYWxsQ3B1TXMi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFdhaXRGb3JQcmVz
ZW50Q3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFN1
Ym1pdEZyYW1lTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9m
bFdhaXRHZXRQb3Nlc0NhbGxlZE1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRu
YW1lIjogIm1fZmxOZXdQb3Nlc1JlYWR5TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAibV9mbE5ld0ZyYW1lUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwK
K3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXMiLCAiZmllbGR0eXBl
IjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNcyIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJl
bmRlclN0YXJ0TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9I
bWRQb3NlIiwgImZpZWxkdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6Q29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAibV9uUGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRu
YW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHMiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7
ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lcyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lcyIsICJmaWVsZHR5
cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzT25T
dGFydHVwIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51
bURyb3BwZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJm
aWVsZG5hbWUiOiAibV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXAiLCAiZmllbGR0eXBl
IjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtTG9hZGluZyIsICJmaWVsZHR5
cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzTG9h
ZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1E
cm9wcGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmciLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtVGltZWRPdXQiLCAiZmllbGR0eXBlIjog
InVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bURyb3Bw
ZWRGcmFtZXNUaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlNvdXJjZSIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2RGlyZWN0aW9uIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogImVP
cmlnaW4iLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn1d
fQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlBvaW50IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjog
InN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAidlVWcyIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJmRGlz
dGFuY2UiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpJbnRlcnNl
Y3Rpb25NYXNrUmVjdGFuZ2xlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9mbFRv
cExlZnRYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxUb3BM
ZWZ0WSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2lkdGgi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbEhlaWdodCIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlvbk1hc2tD
aXJjbGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWCIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ2VudGVyWSIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUmFkaXVzIiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6KGFub255bW91cykiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAibV9SZWN0YW5nbGUiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50
ZXJzZWN0aW9uTWFza1JlY3RhbmdsZV90In0sCit7ICJmaWVsZG5hbWUiOiAibV9DaXJjbGUiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNsZV90In1dfQorLHsi
c3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9uUHJpbWl0aXZlVHlwZSIsICJmaWVsZHR5cGUiOiAi
ZW51bSB2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIn0sCit7ICJm
aWVsZG5hbWUiOiAibV9QcmltaXRpdmUiLCAiZmllbGR0eXBlIjogIlZST3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVfRGF0YV90In1dfQorLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2Rl
bF9Db21wb25lbnRTdGF0ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1UcmFja2lu
Z1RvQ29tcG9uZW50UmVuZGVyTW9kZWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0
cml4MzRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1UcmFja2luZ1RvQ29tcG9uZW50TG9jYWwiLCAi
ZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCJ9LAoreyAiZmllbGRuYW1lIjog
InVQcm9wZXJ0aWVzIiwgImZpZWxkdHlwZSI6ICJWUkNvbXBvbmVudFByb3BlcnRpZXMifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1ZlcnRleF90IiwiZmllbGRzIjogWworeyAiZmll
bGRuYW1lIjogInZQb3NpdGlvbiIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3Iz
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2Tm9ybWFsIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInJmVGV4dHVyZUNvb3JkIiwgImZpZWxk
dHlwZSI6ICJmbG9hdCBbMl0ifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX1RleHR1
cmVNYXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1bldpZHRoIiwgImZpZWxkdHlw
ZSI6ICJ1aW50MTZfdCJ9LAoreyAiZmllbGRuYW1lIjogInVuSGVpZ2h0IiwgImZpZWxkdHlwZSI6
ICJ1aW50MTZfdCJ9LAoreyAiZmllbGRuYW1lIjogInJ1YlRleHR1cmVNYXBEYXRhIiwgImZpZWxk
dHlwZSI6ICJjb25zdCB1aW50OF90ICoifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVs
X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiclZlcnRleERhdGEiLCAiZmllbGR0eXBl
IjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKiJ9LAoreyAiZmllbGRu
YW1lIjogInVuVmVydGV4Q291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAickluZGV4RGF0YSIsICJmaWVsZHR5cGUiOiAiY29uc3QgdWludDE2X3QgKiJ9LAor
eyAiZmllbGRuYW1lIjogInVuVHJpYW5nbGVDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJkaWZmdXNlVGV4dHVyZUlkIiwgImZpZWxkdHlwZSI6ICJUZXh0
dXJlSURfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVf
U3RhdGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiU2Nyb2xsV2hlZWxWaXNpYmxl
IiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Tm90aWZpY2F0aW9u
Qml0bWFwX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9wSW1hZ2VEYXRhIiwgImZp
ZWxkdHlwZSI6ICJ2b2lkICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX25XaWR0aCIsICJmaWVsZHR5
cGUiOiAiaW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkJ5dGVzUGVyUGl4ZWwiLCAiZmllbGR0
eXBlIjogImludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OkNPcGVuVlJDb250ZXh0IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fcFZSU3lzdGVtIiwgImZpZWxkdHlwZSI6ICJjbGFz
cyB2cjo6SVZSU3lzdGVtICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUkNoYXBlcm9uZSIsICJm
aWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAi
bV9wVlJDaGFwZXJvbmVTZXR1cCIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNoYXBlcm9u
ZVNldHVwICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUkNvbXBvc2l0b3IiLCAiZmllbGR0eXBl
IjogImNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUk92
ZXJsYXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJPdmVybGF5ICoifSwKK3sgImZpZWxk
bmFtZSI6ICJtX3BWUlJlc291cmNlcyIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlJlc291
cmNlcyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJSZW5kZXJNb2RlbHMiLCAiZmllbGR0eXBl
IjogImNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZS
RXh0ZW5kZWREaXNwbGF5IiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNw
bGF5ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlNldHRpbmdzIiwgImZpZWxkdHlwZSI6ICJj
bGFzcyB2cjo6SVZSU2V0dGluZ3MgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQXBwbGljYXRp
b25zIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQXBwbGljYXRpb25zICoifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX3BWUlRyYWNrZWRDYW1lcmEiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJ
VlJUcmFja2VkQ2FtZXJhICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlNjcmVlbnNob3RzIiwg
ImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKiJ9XX0KK10sCisibWV0aG9k
cyI6W3sKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicG5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBuSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldFByb2plY3Rpb25NYXRyaXgiLAorICAgICAgICJyZXR1cm50eXBlIjogInN0
cnVjdCB2cjo6SG1kTWF0cml4NDRfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImZOZWFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJmRmFyWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UHJvamVjdGlvblJhdyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5
cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmTGVmdCIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmUmlnaHQiICwicGFy
YW10eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZlRvcCIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmQm90dG9tIiAsInBh
cmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVEaXN0b3J0
aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZlYiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicERpc3RvcnRpb25Db29yZGluYXRlcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dEV5ZVRvSGVhZFRyYW5zZm9ybSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpI
bWRNYXRyaXgzNF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldFRpbWVTaW5jZUxhc3RWc3luYyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZTZWNvbmRzU2luY2VM
YXN0VnN5bmMiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwdWxGcmFtZUNvdW50ZXIiICwicGFyYW10eXBlIjogInVpbnQ2NF90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RDNEOUFkYXB0ZXJJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
aW50MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXREWEdJT3V0cHV0SW5mbyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cG5BZGFwdGVySW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJJc0Rpc3BsYXlPbkRlc2t0b3AiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wi
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0RGlzcGxheVZpc2liaWxpdHkiLAorICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImJJc1Zp
c2libGVPbkRlc2t0b3AiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZU9y
aWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93IiAsInBh
cmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNl
UG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50
IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50IiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZXNldFNlYXRlZFplcm9Q
b3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNlYXRlZFpl
cm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmF3WmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInN0
cnVjdCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTb3J0ZWRUcmFja2VkRGV2aWNl
SW5kaWNlc09mQ2xhc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tlZERldmljZUNsYXNz
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VDbGFzcyJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5IiAsImFycmF5X2NvdW50IjogInVu
VHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blRyYWNrZWREZXZpY2VJ
bmRleEFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tl
ZERldmljZUFjdGl2aXR5TGV2ZWwiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFRGV2aWNl
QWN0aXZpdHlMZXZlbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5EZXZpY2VJZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkFwcGx5VHJhbnNmb3JtIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
T3V0cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10
eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZy
OjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tlZERldmlj
ZUluZGV4Rm9yQ29udHJvbGxlclJvbGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5EZXZpY2VUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVy
Um9sZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lz
dGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWRE
ZXZpY2VJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2VkQ29udHJvbGxl
clJvbGUiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2
aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlQ2xhc3MiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNUcmFja2VkRGV2aWNl
Q29ubmVjdGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9v
bFRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIg
LCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHki
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGbG9hdFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQ
cm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SW50MzJUcmFja2VkRGV2
aWNlUHJvcGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9w
ZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VWludDY0VHJhY2tlZERldmlj
ZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRNYXRyaXgzNFRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgz
NF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmlj
ZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0
cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMy
X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNl
SW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVBy
b3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6
ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1
ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0
eUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
eXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnQiLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4dEV2ZW50V2l0aFBvc2UiLAorICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3Ry
dWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFj
a2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0iLAorICAgICAg
ICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJFdmVudFR5cGUi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlkZGVuQXJlYU1lc2giLAorICAgICAgICJyZXR1
cm50eXBlIjogInN0cnVjdCB2cjo6SGlkZGVuQXJlYU1lc2hfdCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5
ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFSGlk
ZGVuQXJlYU1lc2hUeXBlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwicGFyYW10eXBl
IjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBD
b250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogInZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJTdGF0ZVNpemUiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJTdGF0
ZVdpdGhQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRy
b2xsZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
Q29udHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwVHJhY2tlZERldmljZVBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2
cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlRyaWdnZXJI
YXB0aWNQdWxzZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250cm9sbGVyRGV2aWNlSW5kZXgiICwi
cGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuQXhpc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVzRHVyYXRpb25NaWNyb1NlYyIgLCJwYXJhbXR5cGUiOiAidW5zaWduZWQgc2hv
cnQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QnV0dG9uSWROYW1lRnJvbUVudW0iLAorICAg
ICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZUJ1dHRvbklkIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQnV0
dG9uSWQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5
c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZy
b21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVBeGlzVHlwZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYXB0
dXJlSW5wdXRGb2N1cyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJS
ZWxlYXNlSW5wdXRGb2N1cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJJc0lucHV0Rm9jdXNDYXB0dXJlZEJ5QW5vdGhlclByb2Nlc3MiLAorICAgICAgICJyZXR1cm50
eXBlIjogImJvb2wiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiRHJpdmVyRGVidWdSZXF1ZXN0IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVxdWVzdCIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzcG9uc2VCdWZm
ZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUmVz
cG9uc2VCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJQZXJmb3JtRmlybXdhcmVVcGRhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJGaXJtd2FyZUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5
c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmciLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQWNrbm93bGVkZ2VRdWl0X1Vz
ZXJQcm9tcHQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0V2luZG93Qm91bmRzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjog
ImludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuWSIgLCJwYXJhbXR5cGUiOiAi
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEV5
ZU91dHB1dFZpZXdwb3J0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5YIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJFeHRlbmRlZERpc3BsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERY
R0lPdXRwdXRJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5
cGUiOiAiaW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5BZGFwdGVyT3V0cHV0
SW5kZXgiICwicGFyYW10eXBlIjogImludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjog
ImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiZUNhbWVyYUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9y
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2Vk
Q2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIYXNDYW1lcmEiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6
OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhhc0NhbWVy
YSIgLCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRDYW1lcmFGcmFtZVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
Im5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5I
ZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwbkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FtZXJhSW50cmluc2ljcyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBGb2NhbExlbmd0aCIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZFZlY3Rv
cjJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENlbnRlciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkhtZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1l
cmFQcm9qZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVy
YUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2
aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxaTmVhciIgLCJw
YXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFpGYXIiICwicGFy
YW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFByb2plY3Rpb24iICwi
cGFyYW10eXBlIjogInZyOjpIbWRNYXRyaXg0NF90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkFjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6
OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRy
YWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFu
ZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBGcmFtZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAibkZyYW1lQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBlIjogInZyOjpDYW1lcmFW
aWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5GcmFt
ZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwi
cGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicFRleHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInZyOjpWUlRleHR1cmVC
b3VuZHNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5XaWR0aCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuSGVpZ2h0IiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRl
b1N0cmVhbVRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBE
M0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXciICwicGFyYW10eXBlIjogInZv
aWQgKioifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwicGFyYW10eXBl
IjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJh
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlw
ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OmdsVUludF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRnJhbWVIZWFkZXIiICwi
cGFyYW10eXBlIjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogIm5GcmFtZUhlYWRlclNpemUiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFj
a2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlVmlkZW9TdHJlYW1UZXh0
dXJlR0wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2Ft
ZXJhIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBZGRBcHBsaWNhdGlvbk1hbmlmZXN0IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1
bGxQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJiVGVtcG9yYXJ5IiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgiICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc0FwcGxp
Y2F0aW9uSW5zdGFsbGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNh
dGlvbkNvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkFwcGxpY2F0aW9uSW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBL
ZXlCdWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nlc3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10eXBlIjog
ImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVuIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hB
cHBsaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtl
eSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hUZW1wbGF0ZUFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTmV3QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwS2V5cyIgLCJhcnJheV9jb3Vu
dCI6ICJ1bktleXMiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6QXBwT3ZlcnJpZGVL
ZXlzX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoQXBwbGljYXRpb25G
cm9tTWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1l
VHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkxhdW5jaERhc2hib2FyZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9u
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSWRlbnRpZnlBcHBsaWNhdGlvbiIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0
aW9uUHJvY2Vzc0lkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGlj
YXRpb25zRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNo
YXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZXJyb3Ii
ICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmciLAorICAgICAgICJyZXR1
cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVQcm9wZXJ0eSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0
aW9uUHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hQcm9wZXJ0eVZhbHVlQnVm
ZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVBy
b3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNh
dGlvbkVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Q
cm9wZXJ0eVVpbnQ2NCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiQXV0b0xhdW5j
aCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRB
cHBsaWNhdGlvbkF1dG9MYXVuY2giLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldERl
ZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNh
dGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBh
cmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZl
ckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMiLAorICAgICAgICJyZXR1cm50eXBl
IjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bk1pbWVUeXBlc0J1ZmZlciIgLCJwYXJhbXR5cGUiOiAidWludDMy
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxp
Y2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVGhhdFN1cHBv
cnRNaW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlzVGhh
dFN1cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuQXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGlj
YXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3Vt
ZW50cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3MiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXJncyIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFw
cGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RhcnRpbmdBcHBsaWNhdGlv
biIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlC
dWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFRyYW5zaXRpb25TdGF0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBlcmZvcm1BcHBs
aWNhdGlvblByZWxhdW5jaENoZWNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVt
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
SXNRdWl0VXNlclByb21wdFJlcXVlc3RlZCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIK
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJMYXVuY2hJbnRlcm5hbFByb2Nlc3MiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hCaW5hcnlQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcmd1bWVudHMiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFdvcmtpbmdEaXJl
Y3RvcnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbGlicmF0aW9uU3RhdGUiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldFBsYXlBcmVhU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6
ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6
ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFBsYXlBcmVhUmVjdCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVy
b25lIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRJbmZvIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFNjZW5lQ29sb3IiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogImNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm91bmRzQ29sb3IiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdXRw
dXRDb2xvckFycmF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogIm5OdW1PdXRwdXRDb2xvcnMiICwicGFyYW10eXBlIjogImlu
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNl
IiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdXRwdXRD
YW1lcmFDb2xvciIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRDb2xvcl90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiQXJlQm91bmRzVmlzaWJsZSIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUJvdW5kc1Zpc2libGUiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogImJGb3JjZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkNvbW1pdFdvcmtpbmdDb3B5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJjb25maWdGaWxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0ZpbGUifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJSZXZlcnRXb3JraW5nQ29weSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0
dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVNpemUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBTaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBTaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdQbGF5QXJlYVJlY3QiLAorICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJwdW5RdWFk
c0NvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
U2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZv
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1
blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFw
ZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1NlYXRlZFplcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0
X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hh
cGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0
cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BsYXlB
cmVhU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVgiICwicGFyYW10eXBlIjogImZsb2F0In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAic2l6ZVoiICwicGFyYW10eXBlIjogImZsb2F0In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1
cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8i
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJhcnJheV9jb3VudCI6ICJ1blF1YWRz
Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1
cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVy
b25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBNYXRTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1k
TWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsb2FkRnJvbURp
c2siLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwicGFyYW10eXBlIjogInZyOjpFQ2hh
cGVyb25lQ29uZmlnRmlsZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0U2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpI
bWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5n
Q29sbGlzaW9uQm91bmRzVGFnc0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAs
ImFycmF5X2NvdW50IjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1Rh
Z3NJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGFnc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQi
OiAicHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQ4X3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInB1blRhZ0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3Vu
dCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1
cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRXhwb3J0TGl2ZVRvQnVmZmVyIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwQnVmZmVyIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5CdWZmZXJMZW5ndGgiICwicGFyYW10eXBlIjog
InVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJbXBvcnRGcm9tQnVm
ZmVyVG9Xb3JraW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuSW1wb3J0RmxhZ3MiICwicGFy
YW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRUcmFja2lu
Z1NwYWNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4ifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYWNr
aW5nU3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiV2FpdEdldFBvc2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVy
UG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBv
c2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBv
c2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5
cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3Ii
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlcyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicFJlbmRlclBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1blJl
bmRlclBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZp
Y2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUmVuZGVyUG9zZUFycmF5Q291
bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEdh
bWVQb3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFy
YW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5HYW1lUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3Np
dG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJ
bmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIg
LCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicE91dHB1dFBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERl
dmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dEdhbWVQb3NlIiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiU3VibWl0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
Q29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicFRleHR1cmUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQm91bmRzIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJuU3VibWl0RmxhZ3MiICwicGFyYW10eXBlIjogInZyOjpFVlJTdWJtaXRGbGFncyJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNv
bXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvc3RQcmVzZW50SGFuZG9mZiIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RnJhbWVUaW1pbmci
LAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6Q29t
cG9zaXRvcl9GcmFtZVRpbWluZyAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5GcmFtZXNB
Z28iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRGcmFtZVRpbWluZ3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGltaW5nIiAsInBhcmFtdHlw
ZSI6ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogIm5GcmFtZXMiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWVSZW1haW5pbmciLAorICAgICAgICJyZXR1cm50eXBl
IjogImZsb2F0IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdW11bGF0aXZlU3RhdHMiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBTdGF0cyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3NpdG9yX0N1bXVs
YXRpdmVTdGF0cyAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiblN0YXRzU2l6ZUluQnl0ZXMi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRl
VG9Db2xvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29uZHMiICwicGFyYW10eXBlIjogImZsb2F0
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50RmFkZUNvbG9yIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImJCYWNrZ3JvdW5kIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJGYWRlR3JpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlNlY29u
ZHMiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYkZhZGVJ
biIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3Vy
cmVudEdyaWRBbHBoYSIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1l
IjogIlNldFNreWJveE92ZXJyaWRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29t
cG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwVGV4dHVyZXMiICwiYXJyYXlfY291bnQiOiAidW5UZXh0dXJlQ291bnQiICwicGFyYW10eXBl
IjogImNvbnN0IHN0cnVjdCB2cjo6VGV4dHVyZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkNsZWFyU2t5Ym94T3ZlcnJpZGUiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNv
bXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0b3JHb1RvQmFjayIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvclF1aXQi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIklzRnVsbHNjcmVl
biIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q3VycmVu
dFNjZW5lRm9jdXNQcm9jZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0TGFzdEZyYW1lUmVuZGVyZXIiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDYW5SZW5kZXJTY2VuZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2hvd01pcnJvcldpbmRvdyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU1pcnJvcldpbmRvdyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNNaXJyb3JXaW5kb3dW
aXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDb21w
b3NpdG9yRHVtcEltYWdlcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcyIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9u
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJiT3ZlcnJpZGUiICwicGFyYW10eXBlIjogImJvb2wifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkZvcmNlUmVjb25uZWN0UHJvY2VzcyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29t
cG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3VzcGVuZFJlbmRlcmluZyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiYlN1c3BlbmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBEM0QxMURldmljZU9yUmVzb3VyY2UiICwicGFyYW10eXBlIjogInZv
aWQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXci
ICwicGFyYW10eXBlIjogInZvaWQgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VNaXJyb3JUZXh0dXJlRDNEMTEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMVNoYWRlclJlc291
cmNlVmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRNaXJyb3JUZXh0dXJlR0wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21w
b3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwZ2xUZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGdsU2hhcmVkVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJl
bGVhc2VTaGFyZWRHTFRleHR1cmUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImdsVGV4dHVyZUlkIiAsInBh
cmFtdHlwZSI6ICJ2cjo6Z2xVSW50X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJl
ZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2Vz
cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjog
IlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxl
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBv
c2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9u
c1JlcXVpcmVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6
ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1
ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQiLAorICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwUGh5c2ljYWxEZXZpY2UiICwicGFyYW10eXBlIjogInN0cnVjdCBWa1BoeXNpY2FsRGV2
aWNlX1QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmci
OiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5C
dWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiRmluZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE92ZXJs
YXlLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlT3ZlcmxheSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUZyaWVuZGx5TmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJEZXN0cm95T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEhpZ2hRdWFsaXR5T3ZlcmxheSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEhp
Z2hRdWFsaXR5T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5S2V5IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFy
YW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3Ii
ICwicGFyYW10eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0T3ZlcmxheU5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVy
bGF5SW1hZ2VEYXRhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInB2QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicHVuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51
bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJlbmRlcmlu
Z1BpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1blBJRCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldE92ZXJsYXlSZW5kZXJpbmdQaWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQz
Ml90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZsYWciLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRW5hYmxlZCIg
LCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUZs
YWciLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiZU92ZXJsYXlGbGFnIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5RmxhZ3MifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwYkVuYWJsZWQiICwicGFyYW10eXBlIjogImJvb2wgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUNvbG9yIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZSZWQiICwicGFyYW10eXBlIjog
ImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkdyZWVuIiAsInBhcmFtdHlwZSI6ICJm
bG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZCbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUNvbG9yIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmUmVkIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZHcmVlbiIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmQmx1ZSIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUFscGhh
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImZBbHBoYSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dE92ZXJsYXlBbHBoYSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4ZWxBc3BlY3QiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zlcmxh
eUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlRleGVsQXNwZWN0IiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRleGVsQXNw
ZWN0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlTb3J0T3JkZXIiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Tb3J0T3JkZXIiICwicGFyYW10eXBlIjog
InVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5U29ydE9yZGVyIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1
blNvcnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBl
IjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5V2lkdGhJbk1ldGVy
cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwZldpZHRoSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZk1pbkRp
c3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiZk1heERpc3RhbmNlSW5NZXRlcnMiICwicGFyYW10eXBlIjogImZsb2F0In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBmTWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxv
YXQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVUZXh0dXJlQ29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVUZXh0dXJl
Q29sb3JTcGFjZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVyZUJvdW5k
cyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZUJvdW5kcyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheVRl
eHR1cmVCb3VuZHMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFu
c2Zvcm1UeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVRyYWNr
aW5nT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zv
cm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVUcmFja2lu
Z09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zv
cm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
VHJhY2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zv
cm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0
aXZlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInB1blRyYWNrZWREZXZpY2UiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNrZWREZXZpY2VUb092ZXJs
YXlUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNv
bXBvbmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlU
cmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1bkRldmljZUluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuQ29tcG9uZW50TmFtZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5
SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhpZGVPdmVybGF5IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNPdmVybGF5Vmlz
aWJsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYW5zZm9y
bUZvck92ZXJsYXlDb29yZGluYXRlcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZy
OjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNvb3Jk
aW5hdGVzSW5PdmVybGF5IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogInN0
cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJQb2xsTmV4
dE92ZXJsYXlFdmVudCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
RXZlbnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bmNiVlJFdmVudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJbnB1dE1ldGhvZCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUlucHV0TWV0aG9kIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1ldGhvZCIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUlucHV0TWV0aG9kIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRP
dmVybGF5TW91c2VTY2FsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVy
bGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpIbWRWZWN0b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU1vdXNl
U2NhbGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicHZlY01vdXNlU2NhbGUiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1k
VmVjdG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBQYXJhbXMi
ICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUGFy
YW1zX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBSZXN1bHRzIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZp
Y2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJJc0hvdmVyVGFyZ2V0T3ZlcmxheSIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldEdhbWVwYWRGb2N1c092ZXJsYXkiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCIKK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0R2FtZXBh
ZEZvY3VzT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxOZXdGb2N1
c092ZXJsYXkiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheU5laWdoYm9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlRGlyZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rp
b24ifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bEZyb20iICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsVG8iICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTW92
ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJP
dmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVEaXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVy
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiQ2xlYXJPdmVybGF5VGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5
SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlSYXciLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHZCdWZmZXIi
ICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuV2lkdGgi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5IZWln
aHQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5E
ZXB0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNl
dE92ZXJsYXlGcm9tRmlsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVy
bGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlUGF0aCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlVGV4dHVy
ZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBOYXRpdmVUZXh0dXJlUmVmIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicE5hdGl2ZUZvcm1hdCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBBUElUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVRleHR1cmVUeXBlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29sb3JTcGFjZSIgLCJw
YXJhbXR5cGUiOiAidnI6OkVDb2xvclNwYWNlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
VGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
TmF0aXZlVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4dHVyZVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFdpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEhlaWdodCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlRGFzaGJvYXJkT3Zl
cmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtleSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3Zl
cmxheUZyaWVuZGx5TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicE1haW5IYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlI
YW5kbGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRodW1ibmFpbEhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1l
IjogIklzRGFzaGJvYXJkVmlzaWJsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb2Nl
c3NJZCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93RGFzaGJvYXJkIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hPdmVybGF5VG9TaG93IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFByaW1hcnlEYXNoYm9hcmREZXZpY2UiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCIKK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiU2hvd0tleWJvYXJkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlSW5wdXRN
b2RlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZUxpbmVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBh
ZFRleHRJbnB1dExpbmVNb2RlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoRGVzY3JpcHRp
b24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuQ2hhck1heCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hFeGlzdGluZ1RleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImJVc2VNaW5pbWFsTW9kZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2
NF90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9hcmRGb3JPdmVybGF5IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1
dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1l
cGFkVGV4dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlw
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29s
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWlu
dDY0X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEtleWJvYXJkVGV4dCIsCisgICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFRleHQiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJjY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZUtleWJvYXJkIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXlib2FyZFRyYW5zZm9ybUFic29s
dXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZy
OjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRU
cmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0iICwicGFyYW10eXBlIjogImNvbnN0IHN0
cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRLZXli
b2FyZFBvc2l0aW9uRm9yT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJhdm9pZFJlY3QiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUmVjdDJfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2siLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hc2tQ
cmltaXRpdmVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZST3ZlcmxheUludGVyc2VjdGlv
bk1hc2tQcmltaXRpdmVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5OdW1NYXNrUHJp
bWl0aXZlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1blByaW1pdGl2ZVNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRPdmVybGF5RmxhZ3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEZsYWdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWVzc2FnZU92ZXJsYXkiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFRleHQiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENhcHRpb24iICwicGFy
YW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRv
bjBUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hCdXR0b24xVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMlRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjNUZXh0IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFJlbmRl
ck1vZGVsX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVu
ZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwcFJlbmRlck1vZGVsIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRl
ck1vZGVsX3QgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVJlbmRlck1vZGVs
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2
cjo6UmVuZGVyTW9kZWxfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0
dXJlX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJv
ciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidGV4dHVyZUlk
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwcFRleHR1cmUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVGV4dHVy
ZU1hcF90ICoqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZyZWVUZXh0dXJlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJN
b2RlbF9UZXh0dXJlTWFwX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkVGV4
dHVyZUQzRDExX0FzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9k
ZWxFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidGV4
dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VGV4dHVyZUlEX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwRDNEMTFEZXZpY2UiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBlIjogInZvaWQgKioifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVs
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBl
IjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBEc3RUZXh0dXJl
IiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJl
ZVRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExVGV4dHVyZTJEIiAsInBhcmFt
dHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9k
ZWxOYW1lIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbEluZGV4IiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVs
TmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuUmVuZGVyTW9kZWxOYW1lTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVu
ZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbENvdW50IiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21w
b25lbnRDb3VudCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dENvbXBvbmVudE5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUi
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
Q29tcG9uZW50SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBl
IjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29tcG9uZW50TmFtZUxlbiIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
Q29tcG9uZW50QnV0dG9uTWFzayIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDY0X3QiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVs
TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29tcG9u
ZW50UmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVM
ZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldENvbXBvbmVudFN0YXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUi
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBDb250cm9sbGVyU3RhdGUiICwicGFyYW10eXBlIjogImNvbnN0IHZyOjpW
UkNvbnRyb2xsZXJTdGF0ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU3RhdGUiICwi
cGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVf
U3RhdGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbXBvbmVudFN0YXRlIiAsInBh
cmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxz
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVy
TW9kZWxUaHVtYm5haWxVUkwiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5h
bWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaFRodW1ibmFpbFVSTCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVGh1bWJuYWlsVVJMTGVuIiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10
eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaE9yaWdpbmFsUGF0aCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFy
YW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuT3JpZ2luYWxQYXRo
TGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBl
RXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRl
ck1vZGVsRXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNyZWF0ZU5vdGlmaWNh
dGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsVXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJOb3RpZmljYXRpb25U
eXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAic3R5bGUiICwicGFyYW10eXBlIjog
InZyOjpFVlJOb3RpZmljYXRpb25TdHlsZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBJbWFn
ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpOb3RpZmljYXRpb25CaXRtYXBfdCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE5vdGlmaWNhdGlvbklkIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJOb3RpZmljYXRpb25JZCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJOb3RpZmljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJS
ZW1vdmVOb3RpZmljYXRpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJOb3RpZmlj
YXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
bm90aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZyOjpWUk5vdGlmaWNhdGlvbklkIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5n
c0Vycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
ZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU3luYyIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
YkZvcmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlNldEJvb2wiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFy
YW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRp
bmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJiVmFsdWUiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0SW50MzIiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24i
ICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJuVmFsdWUiICwicGFyYW10eXBlIjogImludDMyX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5n
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RmxvYXQiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJmbFZhbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5n
c0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRTdHJpbmciLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEJv
b2wiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0SW50MzIiLAorICAgICAgICJyZXR1cm50eXBlIjogImludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRpbmdzS2V5
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
ZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0RmxvYXQiLAorICAgICAgICJyZXR1cm50eXBlIjogImZsb2F0IiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hT
ZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3Mi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFN0cmluZyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
U2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5
cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5WYWx1ZUxlbiIgLCJwYXJh
bXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBh
cmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiUmVtb3ZlU2VjdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1l
IjogIlJlbW92ZUtleUluU2VjdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0
dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3Rz
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZXF1ZXN0U2NyZWVuc2hvdCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5
cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSG9va1NjcmVlbnNob3Qi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBTdXBwb3J0ZWRUeXBlcyIgLCJh
cnJheV9jb3VudCI6ICJudW1UeXBlcyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OkVWUlNjcmVl
bnNob3RUeXBlICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJudW1UeXBlcyIgLCJwYXJhbXR5
cGUiOiAiaW50In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2NyZWVuc2hvdFByb3Bl
cnR5VHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9y
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVl
bnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxl
bmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmaWxl
bmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZXMifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hGaWxlbmFtZSIgLCJvdXRfc3RyaW5nIjog
IiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNjaEZp
bGVuYW1lIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxQcm9n
cmVzcyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJU
YWtlU3RlcmVvU2NyZWVuc2hvdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cE91dFNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxl
X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByZXZpZXdGaWxlbmFtZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVlJGaWxl
bmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTY3JlZW5zaG90cyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU3VibWl0U2NyZWVuc2hvdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNj
cmVlbnNob3RFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAic2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJT
Y3JlZW5zaG90VHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNvdXJjZVByZXZpZXdG
aWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoU291cmNlVlJGaWxlbmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZXNvdXJjZXMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRTaGFyZWRSZXNvdXJjZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJl
c291cmNlcyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVzb3VyY2VGdWxsUGF0aCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFJlc291cmNlTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hQYXRoQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CitdCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ExMGY5NTFkYzU2Mzkz
ZGNhYzliYjgwZTgzNDIwYmM0YTkxNTNiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmgKQEAgLTAsMCArMSwxODY5IEBACisv
Lz09PT09PT0gQ29weXJpZ2h0IChjKSBWYWx2ZSBDb3Jwb3JhdGlvbiwgQWxsIHJpZ2h0cyByZXNl
cnZlZC4gPT09PT09PT09PT09PT09CisvLworLy8gUHVycG9zZTogSGVhZGVyIGZvciBmbGF0dGVk
IFN0ZWFtQVBJLiBVc2UgdGhpcyBmb3IgYmluZGluZyB0byBvdGhlciBsYW5ndWFnZXMuCisvLyBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQsIGRvIG5vdCBlZGl0IGl0LgorLy8KKy8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworI2lmbmRlZiBfX09QRU5WUl9BUElfRkxBVF9IX18KKyNkZWZpbmUg
X19PUEVOVlJfQVBJX0ZMQVRfSF9fCisjaWYgZGVmaW5lZCggX1dJTjMyICkgfHwgZGVmaW5lZCgg
X19jbGFuZ19fICkKKyNwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
I2RlZmluZSBFWFRFUk5fQyBleHRlcm4gIkMiCisjZWxzZQorI2RlZmluZSBFWFRFUk5fQworI2Vu
ZGlmCisKKyNkZWZpbmUgT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgX19zdGRjYWxsCisKKy8vIE9Q
RU5WUiBBUEkgZXhwb3J0IG1hY3JvCisjaWYgZGVmaW5lZCggX1dJTjMyICkgJiYgIWRlZmluZWQo
IF9YMzYwICkKKyAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9FWFBPUlRTICkKKyAgICAg
ICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisgICAgICAg
I2VsaWYgZGVmaW5lZCggT1BFTlZSX0FQSV9OT0RMTCApCisgICAgICAgI2RlZmluZSBTX0FQSSBF
WFRFUk5fQworICAgICAgICNlbHNlCisgICAgICAgI2RlZmluZSBTX0FQSSBleHRlcm4gIkMiIF9f
ZGVjbHNwZWMoIGRsbGltcG9ydCApIAorICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9S
VFMKKyNlbGlmIGRlZmluZWQoIF9fR05VQ19fICkKKyAgICAgICAjaWYgZGVmaW5lZCggT1BFTlZS
X0FQSV9FWFBPUlRTICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DIF9fYXR0cmlidXRl
X18gKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICAgICNlbHNlCisgICAgICAgI2RlZmlu
ZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9SVFMKKyNl
bHNlIC8vICFXSU4zMgorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX0VYUE9SVFMgKQor
ICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MKKyAgICAgICAjZWxzZQorICAgICAgICNkZWZp
bmUgU19BUEkgRVhURVJOX0MKKyAgICAgICAjZW5kaWYgLy8gT1BFTlZSX0FQSV9FWFBPUlRTCisj
ZW5kaWYKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWYgZGVmaW5lZCggX19XSU4zMiApCit0
eXBlZGVmIGNoYXIgYm9vbDsKKyNlbHNlCisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2VuZGlmCisK
K3R5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWlu
dDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7CisKKworLy8gT3BlblZSIENvbnN0YW50cworCitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMy
NzY4Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERldmljZUluZGV4X0ht
ZCA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291
bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNrZWREZXZpY2VJbmRl
eE90aGVyID0gNDI5NDk2NzI5NDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blRyYWNr
ZWREZXZpY2VJbmRleEludmFsaWQgPSA0Mjk0OTY3Mjk1Oworc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGxvbmcga191bEludmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgaW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGludCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyA9IDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQg
aW50IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191
bkJvb2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5TdHJp
bmdQcm9wZXJ0eVRhZyA9IDU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5IbWRNYXRy
aXgzNFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5IbWRN
YXRyaXg0NFByb3BlcnR5VGFnID0gMjE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5I
bWRWZWN0b3IzUHJvcGVydHlUYWcgPSAyMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191
bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBr
X3VuSGlkZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50
IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCB1
bnNpZ25lZCBpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgPSAzMjc2ODsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCA9
IDU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQg
PSAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFs
aWQgPSAwOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJTeXN0ZW1fVmVyc2lvbiA9ICJJVlJTeXN0
ZW1fMDE1IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSRXh0ZW5kZWREaXNwbGF5X1ZlcnNpb24g
PSAiSVZSRXh0ZW5kZWREaXNwbGF5XzAwMSI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlRyYWNr
ZWRDYW1lcmFfVmVyc2lvbiA9ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyI7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCA9IDEyODsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfTWltZVR5cGVfSG9tZUFwcCA9ICJ2ci9ob21lIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVy
IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSQXBwbGljYXRpb25zX1ZlcnNpb24gPSAiSVZSQXBw
bGljYXRpb25zXzAwNiI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUkNoYXBlcm9uZV9WZXJzaW9u
ID0gIklWUkNoYXBlcm9uZV8wMDMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJDaGFwZXJvbmVT
ZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIElWUkNvbXBvc2l0b3JfVmVyc2lvbiA9ICJJVlJDb21wb3NpdG9yXzAyMCI7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGggPSAxMjg7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoID0gMTI4Owor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4T3ZlcmxheUNvdW50ID0gNjQ7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZXNDb3VudCA9IDMyOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJPdmVybGF5X1ZlcnNpb24g
PSAiSVZST3ZlcmxheV8wMTQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVy
X0NvbXBvbmVudF9HREMyMDE1ID0gImdkYzIwMTUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNlID0gImJhc2UiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9UaXAgPSAidGlwIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAgPSAiaGFuZGdyaXAiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAi
c3RhdHVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24gPSAi
SVZSUmVuZGVyTW9kZWxzXzAwNSI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5Ob3Rp
ZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSTm90aWZp
Y2F0aW9uc19WZXJzaW9uID0gIklWUk5vdGlmaWNhdGlvbnNfMDAyIjsKK3N0YXRpYyBjb25zdCB1
bnNpZ25lZCBpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4Oworc3RhdGljIGNvbnN0
IGNoYXIgKiBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2VjdGlvbiA9ICJzdGVhbXZyIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1k
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3Ry
aW5nID0gImZvcmNlZERyaXZlciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJf
Rm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVi
dWdQcm9jZXNzUGlwZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRW5hYmxl
RGlzdG9ydGlvbl9Cb29sID0gImVuYWJsZURpc3RvcnRpb24iOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJk
aXNwbGF5RGVidWdZIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TZW5kU3lz
dGVtQnV0dG9uVG9BbGxBcHBzX0Jvb2wgPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2
ZWwiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0g
ImJhY2tncm91bmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91
bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZENhbWVyYUhlaWdo
dF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9t
ZVJhZGl1cyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfR3JpZENvbG9yX1N0
cmluZyA9ICJncmlkQ29sb3IiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1Bs
YXlBcmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJh
Y3RpdmF0ZU11bHRpcGxlRHJpdmVycyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFt
VlJfRGlyZWN0TW9kZV9Cb29sID0gImRpcmVjdE1vZGUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlk
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBpZF9J
bnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5nU3BlYWtlcnMiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxv
YXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNl
c3RhdGlvblBvd2VyTWFuYWdlbWVudCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFt
VlJfTmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2VzIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0
ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0
aW9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9BbGxvd1JlcHJvamVjdGlv
bl9Cb29sID0gImFsbG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24iOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2pl
Y3Rpb24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFk
VHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9EZWZhdWx0TWlycm9yVmlld19JbnQzMiA9ICJkZWZhdWx0TWly
cm9yVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZp
ZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2ggPSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29t
cG9zaXRvckZyb21BcHBMYXVuY2giOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZS
X1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFw
cExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRPdmVybGF5
QXBwc0Zyb21EYXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZCI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFi
bGVIb21lQXBwIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TZXRJbml0aWFs
RGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBwIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9DeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50MzIg
PSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9ICJkcml2ZXJfbGlnaHRo
b3VzZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9C
b29sID0gImRpc2FibGVpbXUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNl
X1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1YXRpb25EZWJ1Z19JbnQzMiA9
ICJkaXNhbWJpZ3VhdGlvbmRlYnVnIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRo
b3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhp
c3RvcnkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJpdmVy
X251bGwiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJp
bmcgPSAic2VyaWFsTnVtYmVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9Nb2Rl
bE51bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9OdWxsX1dpbmRvd1hfSW50MzIgPSAid2luZG93WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0ludDMyID0gIndpbmRvd0hlaWdodCI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVu
ZGVyV2lkdGgiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9J
bnQzMiA9ICJyZW5kZXJIZWlnaHQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1Nl
Y29uZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9u
cyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9h
dCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfVXNlcklu
dGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlz
T25Ub3AiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXpl
VG9UcmF5X0Jvb2wgPSAiTWluaW1pemVUb1RyYXkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9ICJz
Y3JlZW5zaG90VHlwZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX05vdGlmaWNhdGlvbnNf
U2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTm90
aWZpY2F0aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21wbGV0aW9ucyA9ICJUdXRvcmlh
bENvbXBsZXRpb25zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2NhbGVY
ID0gIlNjYWxlWCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9
ICJTY2FsZVkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9PZmZzZXRMZWZ0
WCA9ICJPZmZzZXRMZWZ0WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX09m
ZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9L
ZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9L
ZXlib2FyZF9TbW9vdGhpbmcgPSAiU21vb3RoaW5nIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29sID0gIndhcm5JbkhNRCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3YXJu
T25seU9uY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3Rv
cmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
UGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sID0gInNhdmVUaW1pbmdzT25FeGl0IjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJj
b2xsaXNpb25Cb3VuZHMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfU3R5bGVfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzU3R5bGUiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xs
aXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0Nl
bnRlck1hcmtlck9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRz
X1BsYXlTcGFjZU9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24iOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0g
IkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xv
ckdhbW1hUiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xv
ckdhbW1hR19JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xs
aXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxp
c2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1h
QSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJl
bmFibGVDYW1lcmEiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2Ft
ZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2FyZCI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNf
Qm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdfQm9vbCA9ICJlbmFibGVD
YW1lcmFGb3JSb29tVmlldyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3Vu
ZHNDb2xvckdhbW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1l
cmFCb3VuZHNDb2xvckdhbW1hRyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9C
b3VuZHNDb2xvckdhbW1hQl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJj
YW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVy
YV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNr
RGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fT25SZWNvcmREZXZpY2Vf
U3RyaW5nID0gIm9uUmVjb3JkRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVk
aW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmlj
ZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0
cmluZyA9ICJvZmZQbGF5YmFja0RldmljZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1
ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmcgPSAib2ZmUmVjb3JkRGV2aWNlIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sID0gInBvd2VyT2Zm
T25FeGl0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfVHVybk9mZlNjcmVlbnNU
aW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVvdXRfRmxvYXQgPSAidHVybk9m
ZkNvbnRyb2xsZXJzVGltZW91dCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1Jl
dHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0ID0gInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0IjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRv
blByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVE
YXNoYm9hcmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9k
ZV9Cb29sID0gImFyY2FkZU1vZGUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9tb2RlbHNr
aW5fU2VjdGlvbiA9ICJtb2RlbHNraW5zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRHJp
dmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlNjcmVl
bnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICogSVZSUmVzb3VyY2VzX1ZlcnNpb24gPSAiSVZSUmVzb3VyY2VzXzAwMSI7CisKKy8vIE9wZW5W
UiBFbnVtcworCit0eXBlZGVmIGVudW0gRVZSRXllCit7CisgICAgICAgRVZSRXllX0V5ZV9MZWZ0
ID0gMCwKKyAgICAgICBFVlJFeWVfRXllX1JpZ2h0ID0gMSwKK30gRVZSRXllOworCit0eXBlZGVm
IGVudW0gRVRleHR1cmVUeXBlCit7CisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX0Rp
cmVjdFggPSAwLAorICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9PcGVuR0wgPSAxLAor
ICAgICAgIEVUZXh0dXJlVHlwZV9UZXh0dXJlVHlwZV9WdWxrYW4gPSAyLAorICAgICAgIEVUZXh0
dXJlVHlwZV9UZXh0dXJlVHlwZV9JT1N1cmZhY2UgPSAzLAorICAgICAgIEVUZXh0dXJlVHlwZV9U
ZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LAorfSBFVGV4dHVyZVR5cGU7CisKK3R5cGVkZWYgZW51
bSBFQ29sb3JTcGFjZQoreworICAgICAgIEVDb2xvclNwYWNlX0NvbG9yU3BhY2VfQXV0byA9IDAs
CisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9HYW1tYSA9IDEsCisgICAgICAgRUNvbG9y
U3BhY2VfQ29sb3JTcGFjZV9MaW5lYXIgPSAyLAorfSBFQ29sb3JTcGFjZTsKKwordHlwZWRlZiBl
bnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jl
c3VsdF9VbmluaXRpYWxpemVkID0gMSwKKyAgICAgICBFVHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdS
ZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyA9IDEwMCwKKyAgICAgICBFVHJhY2tpbmdSZXN1
bHRfVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEwMSwKKyAgICAgICBF
VHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyA9IDIwMCwKKyAgICAgICBF
VHJhY2tpbmdSZXN1bHRfVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlID0gMjAxLAor
fSBFVHJhY2tpbmdSZXN1bHQ7CisKK3R5cGVkZWYgZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7
CisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxpZCA9
IDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0g
MSwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19Db250cm9s
bGVyID0gMiwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19H
ZW5lcmljVHJhY2tlciA9IDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzc19UcmFja2VkRGV2
aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LAorfSBFVHJhY2tlZERldmljZUNsYXNzOwor
Cit0eXBlZGVmIGVudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQoreworICAgICAgIEVUcmFja2Vk
Q29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQgPSAwLAorICAgICAg
IEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX0xlZnRIYW5kID0g
MSwKKyAgICAgICBFVHJhY2tlZENvbnRyb2xsZXJSb2xlX1RyYWNrZWRDb250cm9sbGVyUm9sZV9S
aWdodEhhbmQgPSAyLAorfSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlOworCit0eXBlZGVmIGVudW0g
RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
bl9UcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwKKyAgICAgICBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbl9UcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLAorICAgICAgIEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luX1RyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLAorfSBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbjsKKwordHlwZWRlZiBlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkKK3sKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSW52YWxpZCA9IDAsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJp
bmcgPSAxMDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Nb2RlbE51bWJl
cl9TdHJpbmcgPSAxMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TZXJp
YWxOdW1iZXJfU3RyaW5nID0gMTAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgPSAxMDA0LAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyA9IDEwMDUsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9uX1N0
cmluZyA9IDEwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhcmR3YXJl
UmV2aXNpb25fU3RyaW5nID0gMTAwNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfQWxsV2lyZWxlc3NEb25nbGVEZXNjcmlwdGlvbnNfU3RyaW5nID0gMTAwOCwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5n
ID0gMTAwOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlSXNXaXJl
bGVzc19Cb29sID0gMTAxMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2
aWNlSXNDaGFyZ2luZ19Cb29sID0gMTAxMSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0ID0g
MTAxMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfVXBkYXRl
QXZhaWxhYmxlX0Jvb2wgPSAxMDE0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9IDEwMTUsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgPSAxMDE2LAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2
NCA9IDEwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlVmVy
c2lvbl9VaW50NjQgPSAxMDE4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9G
UEdBVmVyc2lvbl9VaW50NjQgPSAxMDE5LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCA9IDEwMjAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCA9IDEwMjIsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCA9IDEwMjMs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5
c3RlbVdpdGhIbWRfQm9vbCA9IDEwMjQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0NvbnRhaW5zUHJveGltaXR5U2Vuc29yX0Jvb2wgPSAxMDI1LAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VQcm92aWRlc0JhdHRlcnlTdGF0dXNfQm9vbCA9IDEw
MjYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZUNhblBvd2VyT2Zm
X0Jvb2wgPSAxMDI3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2Fy
ZV9Qcm9ncmFtbWluZ1RhcmdldF9TdHJpbmcgPSAxMDI4LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EZXZpY2VDbGFzc19JbnQzMiA9IDEwMjksCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhc0NhbWVyYV9Cb29sID0gMTAzMCwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfRHJpdmVyVmVyc2lvbl9TdHJpbmcgPSAxMDMxLAorICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVk
X0Jvb2wgPSAxMDMyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WaXZlU3lz
dGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX1BhcmVudERyaXZlcl9VaW50NjQgPSAxMDM0LAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCA9IDIwMDAsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnNfRmxvYXQgPSAyMDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNw
bGF5RnJlcXVlbmN5X0Zsb2F0ID0gMjAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfVXNlcklwZE1ldGVyc19GbG9hdCA9IDIwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgPSAyMDA1
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCA9IDIwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0lz
T25EZXNrdG9wX0Jvb2wgPSAyMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5TUNUeXBlX0ludDMyID0gMjAwOCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfRGlzcGxheU1DT2Zmc2V0X0Zsb2F0ID0gMjAwOSwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgPSAyMDEwLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9FZGlkVmVuZG9ySURfSW50MzIgPSAyMDExLAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5n
ID0gMjAxMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1h
Z2VSaWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ID0gMjAxNCwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRWRpZFByb2R1Y3RJRF9JbnQzMiA9IDIwMTUsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIw
MTYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ1R5cGVfSW50
MzIgPSAyMDE3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NP
ZmZzZXRfRmxvYXQgPSAyMDE4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9E
aXNwbGF5R0NTY2FsZV9GbG9hdCA9IDIwMTksCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ID0gMjAyMCwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nID0gMjAyMSwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0
ID0gMjAyMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0NlbnRlclJp
Z2h0VV9GbG9hdCA9IDIwMjQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0xl
bnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQgPSAyMDI2LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFGaXJtd2FyZVZlcnNpb25fVWludDY0ID0g
MjAyNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhRmlybXdhcmVE
ZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ID0gMjAyOSwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUJvb3Rsb2FkZXJWZXJzaW9uX1VpbnQ2NCA9IDIwMzAs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNp
b25fVWludDY0ID0gMjAzMSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXVk
aW9GaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAzMiwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgPSAyMDMzLAorICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZW
aWV3RGVncmVlc19GbG9hdCA9IDIwMzQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIwMzUsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wg
PSAyMDM2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5QWxsb3dO
aWdodE1vZGVfQm9vbCA9IDIwMzcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgPSAyMDM4LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiA9IDIwMzksCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50
MzIgPSAyMDQwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJ
bWFnZURhdGFfQmluYXJ5ID0gMjA0MSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfVXNlc0RyaXZlckRpcmVjdE1vZGVfQm9vbCA9IDIwNDIsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU3VwcG9ydGVkQnV0dG9uc19VaW50NjQgPSAzMDAx
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzMFR5cGVfSW50MzIgPSAz
MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzMVR5cGVfSW50MzIg
PSAzMDAzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzMlR5cGVfSW50
MzIgPSAzMDA0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzM1R5cGVf
SW50MzIgPSAzMDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BeGlzNFR5
cGVfSW50MzIgPSAzMDA2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Db250
cm9sbGVyUm9sZUhpbnRfSW50MzIgPSAzMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ID0gNDAwMCwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgPSA0
MDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld1RvcERl
Z3JlZXNfRmxvYXQgPSA0MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9G
aWVsZE9mVmlld0JvdHRvbURlZ3JlZXNfRmxvYXQgPSA0MDAzLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCA9IDQwMDQs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVt
TWV0ZXJzX0Zsb2F0ID0gNDAwNSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
TW9kZUxhYmVsX1N0cmluZyA9IDQwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0cmluZyA9IDUwMDEsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdf
U3RyaW5nID0gNTAwMiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJ
Y29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeV9TdHJpbmcgPSA1
MDA0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlUmVhZHlBbGVydF9TdHJpbmcgPSA1MDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nID0gNTAwNiwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVN0YW5kYnlf
U3RyaW5nID0gNTAwNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJ
Y29uUGF0aERldmljZUFsZXJ0TG93X1N0cmluZyA9IDUwMDgsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCA9IDUxMDAsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9FbmQgPSA1MTUwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Vc2VyQ29u
ZmlnUGF0aF9TdHJpbmcgPSA2MDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCA9IDEwMDAwLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgPSAx
MDk5OSwKK30gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKwordHlwZWRlZiBlbnVtIEVUcmFja2Vk
UHJvcGVydHlFcnJvcgoreworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJv
cF9TdWNjZXNzID0gMCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3Bf
V3JvbmdEYXRhVHlwZSA9IDEsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQ
cm9wX1dyb25nRGV2aWNlQ2xhc3MgPSAyLAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9U
cmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCA9IDMsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yX1RyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisgICAgICAgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0ludmFsaWREZXZpY2UgPSA1LAorICAgICAgIEVUcmFja2Vk
UHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgPSA2LAorICAg
ICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlE
ZXZpY2UgPSA3LAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9TdHJp
bmdFeGNlZWRzTWF4aW11bUxlbmd0aCA9IDgsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
X1RyYWNrZWRQcm9wX05vdFlldEF2YWlsYWJsZSA9IDksCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yX1RyYWNrZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgPSAxMCwKKyAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiA9IDExLAorfSBFVHJh
Y2tlZFByb3BlcnR5RXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJTdWJtaXRGbGFncworeworICAg
ICAgIEVWUlN1Ym1pdEZsYWdzX1N1Ym1pdF9EZWZhdWx0ID0gMCwKKyAgICAgICBFVlJTdWJtaXRG
bGFnc19TdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9IDEsCisgICAgICAgRVZS
U3VibWl0RmxhZ3NfU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKKyAgICAgICBFVlJTdWJtaXRG
bGFnc19TdWJtaXRfUmVzZXJ2ZWQgPSA0LAorfSBFVlJTdWJtaXRGbGFnczsKKwordHlwZWRlZiBl
bnVtIEVWUlN0YXRlCit7CisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9VbmRlZmluZWQgPSAtMSwK
KyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX09mZiA9IDAsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0
ZV9TZWFyY2hpbmcgPSAxLAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0
ID0gMiwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1JlYWR5ID0gMywKKyAgICAgICBFVlJTdGF0
ZV9WUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX05vdFJl
YWR5ID0gNSwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1N0YW5kYnkgPSA2LAorICAgICAgIEVW
UlN0YXRlX1ZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK30gRVZSU3RhdGU7CisKK3R5cGVk
ZWYgZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob25l
ID0gMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZhdGVk
ID0gMTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFjdGl2
YXRlZCA9IDEwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlVXBk
YXRlZCA9IDEwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2aWNlVXNl
ckludGVyYWN0aW9uU3RhcnRlZCA9IDEwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9U
cmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgPSAxMDQsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9FbnRlclN0YW5kYnlNb2RlID0gMTA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0xl
YXZlU3RhbmRieU1vZGUgPSAxMDcsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tl
ZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1dh
dGNoZG9nV2FrZVVwUmVxdWVzdGVkID0gMTA5LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCA9IDExMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0
dG9uUHJlc3MgPSAyMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQnV0dG9uVW5wcmVz
cyA9IDIwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25VbnRvdWNoID0gMjAzLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X01vdXNlTW92ZSA9IDMwMCwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfTW91c2VCdXR0b25VcCA9IDMwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9G
b2N1c0VudGVyID0gMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ZvY3VzTGVhdmUg
PSAzMDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2Nyb2xsID0gMzA1LAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RvdWNoUGFkTW92ZSA9IDMwNiwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCA9IDQwMCwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgPSA0MDEsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfU2NlbmVGb2N1c0dhaW5lZCA9IDQwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9T
Y2VuZUFwcGxpY2F0aW9uQ2hhbmdlZCA9IDQwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9J
bnB1dEZvY3VzQ2hhbmdlZCA9IDQwNiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY2Vu
ZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzID0gNDEwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgPSA0MTEsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfT3ZlcmxheVNob3duID0gNTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X092ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJv
YXJkQWN0aXZhdGVkID0gNTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2Fy
ZERlYWN0aXZhdGVkID0gNTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2Fy
ZFRodW1iU2VsZWN0ZWQgPSA1MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJv
YXJkUmVxdWVzdGVkID0gNTA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Jlc2V0RGFz
aGJvYXJkID0gNTA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1JlbmRlclRvYXN0ID0g
NTA3LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdlTG9hZGVkID0gNTA4LAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nob3dLZXlib2FyZCA9IDUwOSwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCA9IDUxMSwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzTG9zdCA9IDUxMiwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQgPSA1MTMsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25Eb3duID0gNTE0LAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uVXAgPSA1MTUs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JbWFnZUZhaWxlZCA9IDUxNywKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCA9IDUxOCwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VGFrZW4gPSA1MjEsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdEZhaWxlZCA9IDUyMiwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1MjMsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQgPSA1MjQsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQg
PSA1MjUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0g
NjAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gPSA2
MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0JlZ2luSW50ZXJh
Y3Rpb24gPSA2MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0Rl
c3Ryb3llZCA9IDYwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9RdWl0ID0gNzAwLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Byb2Nlc3NRdWl0ID0gNzAxLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3MDIsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCA9IDcwMywKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ID0gNzA0LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkID0gODAwLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVVuaXZlcnNlSGFzQ2hhbmdlZCA9IDgwMSwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVUZW1wRGF0YUhhc0NoYW5nZWQgPSA4
MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hh
bmdlZCA9IDgwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJl
c2V0ID0gODA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0F1ZGlvU2V0dGluZ3NIYXZl
Q2hhbmdlZCA9IDgyMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CYWNrZ3JvdW5kU2V0
dGluZ0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2FtZXJh
U2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1MSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9S
ZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCA9IDg1MiwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUzLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0Vudmlyb25tZW50U2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NCwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTUs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X01DSW1hZ2VVcGRhdGVkID0gMTAwMCwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgPSAxMTAwLAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2xvc2VkID0gMTIwMCwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9LZXlib2FyZENoYXJJbnB1dCA9IDEyMDEsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIwMiwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkID0gMTMwMCwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkID0gMTMwMSwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFy
dGVkID0gMTMwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvbkxpc3RV
cGRhdGVkID0gMTMwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvbk1p
bWVUeXBlTG9hZCA9IDEzMDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXBwbGljYXRp
b25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gPSAxNDAwLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuID0gMTQw
MSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5k
c1Nob3duID0gMTQxMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Db21wb3NpdG9yX0No
YXBlcm9uZUJvdW5kc0hpZGRlbiA9IDE0MTEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
VHJhY2tlZENhbWVyYV9TdGFydFZpZGVvU3RyZWFtID0gMTUwMCwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtID0gMTUw
MiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1Jlc3VtZVZpZGVv
U3RyZWFtID0gMTUwMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJh
X0VkaXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9QZXJm
b3JtYW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSA9IDE2MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfUGVyZm9ybWFuY2VUZXN0X0Rpc2FibGVDYXB0dXJlID0gMTYwMSwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCA9IDE2MDIsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfQ2xvc2VkID0gMTY1MCwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFy
dCA9IDEwMDAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX0VuZCA9IDE5OTk5LAorfSBFVlJFdmVudFR5cGU7CisKK3R5cGVkZWYgZW51bSBFRGV2
aWNlQWN0aXZpdHlMZXZlbAoreworICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmlj
ZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVs
X2tfRURldmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAgICAgRURldmljZUFjdGl2aXR5
TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gPSAxLAorICAgICAg
IEVEZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0
aW9uX1RpbWVvdXQgPSAyLAorICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsX2tfRURldmljZUFj
dGl2aXR5TGV2ZWxfU3RhbmRieSA9IDMsCit9IEVEZXZpY2VBY3Rpdml0eUxldmVsOworCit0eXBl
ZGVmIGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3lz
dGVtID0gMCwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0g
MSwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fR3JpcCA9IDIsCisgICAgICAgRVZSQnV0
dG9uSWRfa19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0
dG9uX0RQYWRfVXAgPSA0LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EUGFkX1JpZ2h0
ID0gNSwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBhZF9Eb3duID0gNiwKKyAgICAg
ICBFVlJCdXR0b25JZF9rX0VCdXR0b25fQSA9IDcsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0
dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9B
eGlzMCA9IDMyLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzMSA9IDMzLAorICAg
ICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlzMiA9IDM0LAorICAgICAgIEVWUkJ1dHRvbklk
X2tfRUJ1dHRvbl9BeGlzMyA9IDM1LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BeGlz
NCA9IDM2LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0g
MzIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAor
ICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EYXNoYm9hcmRfQmFjayA9IDIsCisgICAgICAg
RVZSQnV0dG9uSWRfa19FQnV0dG9uX01heCA9IDY0LAorfSBFVlJCdXR0b25JZDsKKwordHlwZWRl
ZiBlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgRVZSTW91c2VCdXR0b25fVlJNb3VzZUJ1
dHRvbl9MZWZ0ID0gMSwKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0dG9uX1JpZ2h0
ID0gMiwKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0dG9uX01pZGRsZSA9IDQsCit9
IEVWUk1vdXNlQnV0dG9uOworCit0eXBlZGVmIGVudW0gRUhpZGRlbkFyZWFNZXNoVHlwZQorewor
ICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfU3RhbmRhcmQgPSAw
LAorICAgICAgIEVIaWRkZW5BcmVhTWVzaFR5cGVfa19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9
IDEsCisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9MaW5lTG9v
cCA9IDIsCisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9NYXgg
PSAzLAorfSBFSGlkZGVuQXJlYU1lc2hUeXBlOworCit0eXBlZGVmIGVudW0gRVZSQ29udHJvbGxl
ckF4aXNUeXBlCit7CisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRyb2xsZXJB
eGlzX05vbmUgPSAwLAorICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250cm9sbGVy
QXhpc19UcmFja1BhZCA9IDEsCisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRy
b2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19l
Q29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsCit9IEVWUkNvbnRyb2xsZXJBeGlzVHlwZTsKKwor
dHlwZWRlZiBlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUKK3sKKyAgICAgICBFVlJD
b250cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0NvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9
IDAsCisgICAgICAgRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZV9Db250cm9sbGVyRXZlbnRP
dXRwdXRfVlJFdmVudHMgPSAxLAorfSBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlOworCit0
eXBlZGVmIGVudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7CisgICAgICAgRUNvbGxpc2lvbkJv
dW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAgIEVD
b2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSA9
IDEsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVf
U1FVQVJFUyA9IDIsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VO
RFNfU1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHlsZV9DT0xM
SVNJT05fQk9VTkRTX1NUWUxFX05PTkUgPSA0LAorICAgICAgIEVDb2xsaXNpb25Cb3VuZHNTdHls
ZV9DT0xMSVNJT05fQk9VTkRTX1NUWUxFX0NPVU5UID0gNSwKK30gRUNvbGxpc2lvbkJvdW5kc1N0
eWxlOworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUVycm9yCit7CisgICAgICAgRVZST3Zlcmxh
eUVycm9yX1ZST3ZlcmxheUVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9W
Uk92ZXJsYXlFcnJvcl9Vbmtub3duT3ZlcmxheSA9IDEwLAorICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlkSGFuZGxlID0gMTEsCisgICAgICAgRVZST3ZlcmxheUVy
cm9yX1ZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgPSAxMiwKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfT3ZlcmxheUxpbWl0RXhjZWVkZWQgPSAxMywKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdWaXNpYmlsaXR5VHlwZSA9IDE0
LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlUb29Mb25nID0gMTUs
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05hbWVUb29Mb25nID0gMTYs
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleUluVXNlID0gMTcsCisg
ICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSA9
IDE4LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tl
ZERldmljZSA9IDE5LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9JbnZh
bGlkUGFyYW1ldGVyID0gMjAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9y
X1RodW1ibmFpbENhbnRCZURlc3Ryb3llZCA9IDIxLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9W
Uk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsID0gMjIsCisgICAgICAgRVZST3ZlcmxheUVycm9y
X1ZST3ZlcmxheUVycm9yX1JlcXVlc3RGYWlsZWQgPSAyMywKKyAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUgPSAyNCwKKyAgICAgICBFVlJPdmVybGF5
RXJyb3JfVlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAorICAgICAgIEVWUk92
ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSA9IDI2LAorICAg
ICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yID0gMjcsCisgICAg
ICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0aXZlcyA9
IDI5LAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9CYWRNYXNrUHJpbWl0
aXZlID0gMzAsCit9IEVWUk92ZXJsYXlFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0
aW9uVHlwZQoreworICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX090aGVy
ID0gMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9TY2VuZSA9IDEs
CisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fT3ZlcmxheSA9IDIsCisg
ICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsCisg
ICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fVXRpbGl0eSA9IDQsCisgICAg
ICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9NYXggPSA3LAorfSBFVlJBcHBs
aWNhdGlvblR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJGaXJtd2FyZUVycm9yCit7CisgICAgICAg
RVZSRmlybXdhcmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZSRmly
bXdhcmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfU3VjY2VzcyA9IDEsCisgICAgICAgRVZSRmlybXdh
cmVFcnJvcl9WUkZpcm13YXJlRXJyb3JfRmFpbCA9IDIsCit9IEVWUkZpcm13YXJlRXJyb3I7CisK
K3R5cGVkZWYgZW51bSBFVlJOb3RpZmljYXRpb25FcnJvcgoreworICAgICAgIEVWUk5vdGlmaWNh
dGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfT0sgPSAwLAorICAgICAgIEVWUk5vdGlmaWNh
dGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfSW52YWxpZE5vdGlmaWNhdGlvbklkID0gMTAw
LAorICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90aWZpY2F0aW9uRXJyb3JfTm90aWZp
Y2F0aW9uUXVldWVGdWxsID0gMTAxLAorICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yX1ZSTm90
aWZpY2F0aW9uRXJyb3JfSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCisgICAgICAgRVZSTm90
aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9TeXN0ZW1XaXRoVXNlclZhbHVlQWxy
ZWFkeUV4aXN0cyA9IDEwMywKK30gRVZSTm90aWZpY2F0aW9uRXJyb3I7CisKK3R5cGVkZWYgZW51
bSBFVlJJbml0RXJyb3IKK3sKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfTm9uZSA9
IDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAw
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1
cHQgPSAxMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRE
TExOb3RGb3VuZCA9IDEwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9G
aWxlTm90Rm91bmQgPSAxMDMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
RmFjdG9yeU5vdEZvdW5kID0gMTA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X0ludGVyZmFjZU5vdEZvdW5kID0gMTA1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQgPSAxMDgsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgPSAx
MTAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoID0g
MTExLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCA9IDEx
MiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RX
cml0YWJsZSA9IDExMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9BcHBJ
bmZvSW5pdEZhaWxlZCA9IDExNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5p
dF9SZXRyeSA9IDExNSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Jbml0
Q2FuY2VsZWRCeVVzZXIgPSAxMTYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfQW5vdGhlckFwcExhdW5jaGluZyA9IDExNywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgPSAxMTgsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duID0gMTE5LAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzID0gMTIwLAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCA9IDEyMSwKKyAg
ICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9z
aXRvciA9IDEyMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFp
bGFibGVUb1V0aWxpdHlBcHBzID0gMTIzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X0ludGVybmFsID0gMTI0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
bml0X0htZERyaXZlcklkSXNOb25lID0gMTI1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQgPSAxMjYsCisgICAgICAgRVZSSW5p
dEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCA9IDEy
OCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9n
Tm90U3VwcG9ydGVkID0gMTI5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0
X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgPSAxMzEsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgPSAx
MzIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmROb3RG
b3VuZCA9IDEzMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZFN0YXJ0dXBGYWlsZWQgPSAxMzQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0RyaXZlcl9GYWlsZWQgPSAyMDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Ry
aXZlcl9Vbmtub3duID0gMjAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2
ZXJfSG1kVW5rbm93biA9IDIwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX05vdExvYWRlZCA9IDIwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX0RyaXZlcl9IbWRJblVzZSA9IDIwNSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfRHJpdmVyX05vdENhbGlicmF0ZWQgPSAyMDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgPSAyMDgsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5r
bm93biA9IDIwOSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX0htZERy
aXZlcklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQgPSAyMTIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkID0gMzAwLAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCA9IDMwMSwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCA9IDMwMiwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkID0gMzAzLAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVkID0gMzA0
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfRmFpbGVkID0gMzA1LAorICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQg
PSAzMDYsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52
YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMgPSAzMDgsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkID0gNDAwLAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJl
ZCA9IDQwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJt
d2FyZVJlcXVpcmVzVXBkYXRlID0gNDAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkID0gNDAzLAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCA9IDQwNCwKKyAg
ICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25u
ZWN0VG9PY3VsdXNSdW50aW1lID0gMTAwMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgPSAxMTAxLAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVU
b1JlcXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnID0gMTEwMywKKyAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
VG9vQmlnID0gMTEwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwgPSAxMTA1LAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliID0g
MTEwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24gPSAxMTA3LAorICAgICAgIEVWUkluaXRFcnJv
cl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0
YVN0YXJ0ID0gMTEwOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ID0gMTEwOSwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9H
ZXRVc2VyRGF0YU5leHQgPSAxMTEwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJE
YXRhRXJyb3IgPSAxMTEyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayA9IDExMTMsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQg
PSAyMDAwLAorfSBFVlJJbml0RXJyb3I7CisKK3R5cGVkZWYgZW51bSBFVlJTY3JlZW5zaG90VHlw
ZQoreworICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTm9uZSA9IDAs
CisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwKKyAg
ICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyA9IDIsCisgICAg
ICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFwID0gMywKKyAgICAg
ICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX01vbm9QYW5vcmFtYSA9IDQsCisg
ICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSA9
IDUsCit9IEVWUlNjcmVlbnNob3RUeXBlOworCit0eXBlZGVmIGVudW0gRVZSU2NyZWVuc2hvdFBy
b3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVz
X1ZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAorICAgICAgIEVWUlNj
cmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19WUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19W
UiA9IDEsCit9IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lczsKKwordHlwZWRlZiBlbnVt
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcgoreworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9W
UlRyYWNrZWRDYW1lcmFFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJy
b3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3BlcmF0aW9uRmFpbGVkID0gMTAwLAorICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlID0g
MTAxLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9J
bnZhbGlkRnJhbWVIZWFkZXJWZXJzaW9uID0gMTAyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRPZkhhbmRsZXMgPSAxMDMsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUgPSAxMDQs
CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX05vdFN1
cHBvcnRlZEZvclRoaXNEZXZpY2UgPSAxMDUsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9y
X1ZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZE1lbW9yeUZhaWx1cmUgPSAxMDYsCisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5n
RmFpbHVyZSA9IDEwNywKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlID0gMTA4LAorICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgPSAxMDksCisg
ICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRT
aGFyZWRUZXh0dXJlSGFuZGxlID0gMTEwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9W
UlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVyZUlkID0gMTExLAorICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRUZXh0dXJl
RmFpbHVyZSA9IDExMiwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZSA9IDExMywKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJh
RXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ID0gMTE0LAorICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVC
dWZmZXJTaXplID0gMTE1LAorfSBFVlJUcmFja2VkQ2FtZXJhRXJyb3I7CisKK3R5cGVkZWYgZW51
bSBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlCit7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZV9WUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwKKyAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3Rv
cnRlZCA9IDEsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9WUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkID0gMiwKKyAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlX01BWF9DQU1FUkFfRlJBTUVfVFlQRVMgPSAzLAorfSBFVlJUcmFja2VkQ2Ft
ZXJhRnJhbWVUeXBlOworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25FcnJvcgoreworICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX05vbmUgPSAwLAorICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0FwcEtleUFscmVhZHlF
eGlzdHMgPSAxMDAsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJy
b3JfTm9NYW5pZmVzdCA9IDEwMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGlj
YXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uID0gMTAyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRJbmRleCA9IDEwMywKKyAgICAgICBFVlJBcHBs
aWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3duQXBwbGljYXRpb24gPSAxMDQs
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVk
ID0gMTA1LAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0Fw
cGxpY2F0aW9uQWxyZWFkeVJ1bm5pbmcgPSAxMDYsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
cl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZE1hbmlmZXN0ID0gMTA3LAorICAgICAgIEVWUkFw
cGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRBcHBsaWNhdGlvbiA9IDEw
OCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hG
YWlsZWQgPSAxMDksCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJy
b3JfQXBwbGljYXRpb25BbHJlYWR5U3RhcnRpbmcgPSAxMTAsCisgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyA9IDExMSwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9PbGRBcHBsaWNhdGlvblF1
aXR0aW5nID0gMTEyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVy
cm9yX1RyYW5zaXRpb25BYm9ydGVkID0gMTEzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3Jf
VlJBcHBsaWNhdGlvbkVycm9yX0lzVGVtcGxhdGUgPSAxMTQsCisgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAyMDAsCisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfUHJvcGVydHlOb3RTZXQgPSAy
MDEsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93
blByb3BlcnR5ID0gMjAyLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlv
bkVycm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCit9IEVWUkFwcGxpY2F0aW9uRXJyb3I7CisK
K3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvblByb3BlcnR5Cit7CisgICAgICAgRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFtZV9TdHJpbmcgPSAwLAorICAg
ICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0xhdW5jaFR5
cGVfU3RyaW5nID0gMTEsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0
aW9uUHJvcGVydHlfV29ya2luZ0RpcmVjdG9yeV9TdHJpbmcgPSAxMiwKKyAgICAgICBFVlJBcHBs
aWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyA9
IDEzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5
X0FyZ3VtZW50c19TdHJpbmcgPSAxNCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZS
QXBwbGljYXRpb25Qcm9wZXJ0eV9VUkxfU3RyaW5nID0gMTUsCisgICAgICAgRVZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVzY3JpcHRpb25fU3RyaW5nID0gNTAs
CisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTmV3
c1VSTF9TdHJpbmcgPSA1MSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGlj
YXRpb25Qcm9wZXJ0eV9JbWFnZVBhdGhfU3RyaW5nID0gNTIsCisgICAgICAgRVZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNlX1N0cmluZyA9IDUzLAorICAg
ICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJv
YXJkT3ZlcmxheV9Cb29sID0gNjAsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFw
cGxpY2F0aW9uUHJvcGVydHlfSXNUZW1wbGF0ZV9Cb29sID0gNjEsCisgICAgICAgRVZSQXBwbGlj
YXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRfQm9vbCA9IDYy
LAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0lz
SW50ZXJuYWxfQm9vbCA9IDYzLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBs
aWNhdGlvblByb3BlcnR5X0xhc3RMYXVuY2hUaW1lX1VpbnQ2NCA9IDcwLAorfSBFVlJBcHBsaWNh
dGlvblByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGUKK3sKKyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZV9WUkFwcGxpY2F0aW9u
VHJhbnNpdGlvbl9Ob25lID0gMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0
ZV9WUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCA9IDEwLAorICAgICAgIEVW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRp
bmdGb3JFeHRlcm5hbExhdW5jaCA9IDExLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXRlX1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05ld0FwcExhdW5jaGVkID0gMjAsCit9IEVW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlOworCit0eXBlZGVmIGVudW0gQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZQoreworICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0sgPSAx
LAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyA9IDEwMCwKKyAgICAg
ICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25NYXlIYXZlTW92
ZWQgPSAxMDEsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VT
dGF0aW9uUmVtb3ZlZCA9IDEwMiwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dh
cm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJh
dGlvblN0YXRlX0Vycm9yID0gMjAwLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVf
RXJyb3JfQmFzZVN0YXRpb25VbmluaXRpYWxpemVkID0gMjAxLAorICAgICAgIENoYXBlcm9uZUNh
bGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKKyAgICAgICBD
aGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCA9IDIwMywKKyAg
ICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFs
aWQgPSAyMDQsCit9IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGU7CisKK3R5cGVkZWYgZW51bSBF
Q2hhcGVyb25lQ29uZmlnRmlsZQoreworICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX0xpdmUg
PSAxLAorICAgICAgIEVDaGFwZXJvbmVDb25maWdGaWxlX1RlbXAgPSAyLAorfSBFQ2hhcGVyb25l
Q29uZmlnRmlsZTsKKwordHlwZWRlZiBlbnVtIEVDaGFwZXJvbmVJbXBvcnRGbGFncworeworICAg
ICAgIEVDaGFwZXJvbmVJbXBvcnRGbGFnc19FQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAx
LAorfSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3M7CisKK3R5cGVkZWYgZW51bSBFVlJDb21wb3NpdG9y
RXJyb3IKK3sKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfTm9u
ZSA9IDAsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX1JlcXVl
c3RGYWlsZWQgPSAxLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJv
cl9JbmNvbXBhdGlibGVWZXJzaW9uID0gMTAwLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9W
UkNvbXBvc2l0b3JFcnJvcl9Eb05vdEhhdmVGb2N1cyA9IDEwMSwKKyAgICAgICBFVlJDb21wb3Np
dG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUgPSAxMDIsCisgICAgICAg
RVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNhdGlv
biA9IDEwMywKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfVGV4
dHVyZUlzT25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJD
b21wb3NpdG9yRXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCA9IDEwNSwKKyAgICAg
ICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfU2hhcmVkVGV4dHVyZXNOb3RT
dXBwb3J0ZWQgPSAxMDYsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVy
cm9yX0luZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJD
b21wb3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCA9IDEwOCwKK30gRVZSQ29tcG9zaXRvckVy
cm9yOworCit0eXBlZGVmIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKK3sKKyAgICAgICBWUk92
ZXJsYXlJbnB1dE1ldGhvZF9Ob25lID0gMCwKKyAgICAgICBWUk92ZXJsYXlJbnB1dE1ldGhvZF9N
b3VzZSA9IDEsCit9IFZST3ZlcmxheUlucHV0TWV0aG9kOworCit0eXBlZGVmIGVudW0gVlJPdmVy
bGF5VHJhbnNmb3JtVHlwZQoreworICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVy
bGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKKyAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBl
X1ZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkRGV2aWNlUmVsYXRpdmUgPSAxLAorICAgICAgIFZS
T3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgPSAy
LAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNr
ZWRDb21wb25lbnQgPSAzLAorfSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlOworCit0eXBlZGVmIGVu
dW0gVlJPdmVybGF5RmxhZ3MKK3sKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Ob25lID0gMCwKKyAg
ICAgICBWUk92ZXJsYXlGbGFnc19DdXJ2ZWQgPSAxLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1JH
U1M0WCA9IDIsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9EYXNoYm9hcmRUYWIgPSAzLAorICAg
ICAgIFZST3ZlcmxheUZsYWdzX0FjY2VwdHNHYW1lcGFkRXZlbnRzID0gNCwKKyAgICAgICBWUk92
ZXJsYXlGbGFnc19TaG93R2FtZXBhZEZvY3VzID0gNSwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19T
ZW5kVlJTY3JvbGxFdmVudHMgPSA2LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlRvdWNo
cGFkRXZlbnRzID0gNywKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaG93VG91Y2hQYWRTY3JvbGxX
aGVlbCA9IDgsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfVHJhbnNmZXJPd25lcnNoaXBUb0ludGVy
bmFsUHJvY2VzcyA9IDksCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9QYXJhbGxl
bCA9IDEwLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAor
ICAgICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsCisgICAgICAgVlJPdmVybGF5Rmxh
Z3NfU3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Tb3J0V2l0aE5v
blNjZW5lT3ZlcmxheXMgPSAxNCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19WaXNpYmxlSW5EYXNo
Ym9hcmQgPSAxNSwKK30gVlJPdmVybGF5RmxhZ3M7CisKK3R5cGVkZWYgZW51bSBWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2UKK3sKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9u
UHJlc3NfMCA9IDAsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNz
XzEgPSAxLAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18yID0g
MiwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMyA9IDMsCisg
ICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9
IDQsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kT3JDcmVhdGVD
bGllbnRPdmVybGF5ID0gNSwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQXBwbGlj
YXRpb25RdWl0ID0gNiwKK30gVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOworCit0eXBlZGVmIGVu
dW0gRUdhbWVwYWRUZXh0SW5wdXRNb2RlCit7CisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRNb2Rl
X2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlTm9ybWFsID0gMCwKKyAgICAgICBFR2FtZXBhZFRleHRJ
bnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCisgICAgICAgRUdh
bWVwYWRUZXh0SW5wdXRNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0ID0gMiwKK30g
RUdhbWVwYWRUZXh0SW5wdXRNb2RlOworCit0eXBlZGVmIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRM
aW5lTW9kZQoreworICAgICAgIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGVfa19FR2FtZXBhZFRl
eHRJbnB1dExpbmVNb2RlU2luZ2xlTGluZSA9IDAsCisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRM
aW5lTW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVNdWx0aXBsZUxpbmVzID0gMSwKK30g
RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZTsKKwordHlwZWRlZiBlbnVtIEVPdmVybGF5RGlyZWN0
aW9uCit7CisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9VcCA9IDAs
CisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9Eb3duID0gMSwKKyAg
ICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0xlZnQgPSAyLAorICAgICAg
IEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fUmlnaHQgPSAzLAorICAgICAgIEVP
dmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fQ291bnQgPSA0LAorfSBFT3ZlcmxheURp
cmVjdGlvbjsKKwordHlwZWRlZiBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0
aXZlVHlwZQoreworICAgICAgIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlw
ZV9PdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9SZWN0YW5nbGUgPSAwLAorICAgICAg
IEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZV9PdmVybGF5SW50ZXJzZWN0
aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUgPSAxLAorfSBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7Cisg
ICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTm9uZSA9IDAsCisg
ICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTG9hZGluZyA9IDEw
MCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RTdXBw
b3J0ZWQgPSAyMDAsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJy
b3JfSW52YWxpZEFyZyA9IDMwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVy
TW9kZWxFcnJvcl9JbnZhbGlkTW9kZWwgPSAzMDEsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJv
cl9WUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMgPSAzMDIsCisgICAgICAgRVZSUmVuZGVyTW9k
ZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMgPSAzMDMsCisgICAgICAg
RVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfVG9vTWFueVZlcnRpY2VzID0g
MzA0LAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX011bHRp
cGxlVGV4dHVyZXMgPSAzMDUsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1v
ZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwgPSAzMDYsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJv
cl9WUlJlbmRlck1vZGVsRXJyb3JfTm90RW5vdWdoTm9ybWFscyA9IDMwNywKKyAgICAgICBFVlJS
ZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMgPSAz
MDgsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfSW52YWxp
ZFRleHR1cmUgPSA0MDAsCit9IEVWUlJlbmRlck1vZGVsRXJyb3I7CisKK3R5cGVkZWYgZW51bSBF
VlJDb21wb25lbnRQcm9wZXJ0eQoreworICAgICAgIEVWUkNvbXBvbmVudFByb3BlcnR5X1ZSQ29t
cG9uZW50UHJvcGVydHlfSXNTdGF0aWMgPSAxLAorICAgICAgIEVWUkNvbXBvbmVudFByb3BlcnR5
X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNWaXNpYmxlID0gMiwKKyAgICAgICBFVlJDb21wb25lbnRQ
cm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzVG91Y2hlZCA9IDQsCisgICAgICAgRVZSQ29t
cG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1ByZXNzZWQgPSA4LAorICAgICAg
IEVWUkNvbXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNTY3JvbGxlZCA9IDE2
LAorfSBFVlJDb21wb25lbnRQcm9wZXJ0eTsKKwordHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlv
blR5cGUKK3sKKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1RyYW5zaWVudCA9IDAsCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uVHlwZV9QZXJzaXN0ZW50ID0gMSwKKyAgICAgICBFVlJOb3RpZmlj
YXRpb25UeXBlX1RyYW5zaWVudF9TeXN0ZW1XaXRoVXNlclZhbHVlID0gMiwKK30gRVZSTm90aWZp
Y2F0aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAg
ICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9u
U3R5bGVfQXBwbGljYXRpb24gPSAxMDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29u
dGFjdF9EaXNhYmxlZCA9IDIwMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0
X0VuYWJsZWQgPSAyMDEsCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3Rp
dmUgPSAyMDIsCit9IEVWUk5vdGlmaWNhdGlvblN0eWxlOworCit0eXBlZGVmIGVudW0gRVZSU2V0
dGluZ3NFcnJvcgoreworICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX05v
bmUgPSAwLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxl
ZCA9IDEsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfV3JpdGVGYWls
ZWQgPSAyLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWls
ZWQgPSAzLAorICAgICAgIEVWUlNldHRpbmdzRXJyb3JfVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJz
ZUZhaWxlZCA9IDQsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfVW5z
ZXRTZXR0aW5nSGFzTm9EZWZhdWx0ID0gNSwKK30gRVZSU2V0dGluZ3NFcnJvcjsKKwordHlwZWRl
ZiBlbnVtIEVWUlNjcmVlbnNob3RFcnJvcgoreworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9W
UlNjcmVlbnNob3RFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJT
Y3JlZW5zaG90RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgRVZSU2NyZWVuc2hvdEVy
cm9yX1ZSU2NyZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAg
RVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX05vdEZvdW5kID0gMTAxLAorICAg
ICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9CdWZmZXJUb29TbWFsbCA9
IDEwMiwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfU2NyZWVu
c2hvdEFscmVhZHlJblByb2dyZXNzID0gMTA4LAorfSBFVlJTY3JlZW5zaG90RXJyb3I7CisKKwor
Ly8gT3BlblZSIHR5cGVkZWZzCisKK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4
X3Q7Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7Cit0eXBlZGVmIHVpbnQ2NF90
IFZST3ZlcmxheUhhbmRsZV90OworCit0eXBlZGVmIHZvaWQgKiBnbFNoYXJlZFRleHR1cmVIYW5k
bGVfdDsKK3R5cGVkZWYgaW50MzJfdCBnbEludF90OwordHlwZWRlZiB1aW50MzJfdCBnbFVJbnRf
dDsKK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRsZV90OwordHlwZWRlZiB1aW50
MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3R5cGVkZWYgdWludDY0X3QgUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFnX3Q7Cit0eXBl
ZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OwordHlwZWRlZiB1aW50NjRfdCBUcmFja2Vk
Q2FtZXJhSGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKK3R5
cGVkZWYgdWludDMyX3QgVlJDb21wb25lbnRQcm9wZXJ0aWVzOwordHlwZWRlZiBpbnQzMl90IFRl
eHR1cmVJRF90OwordHlwZWRlZiB1aW50MzJfdCBWUk5vdGlmaWNhdGlvbklkOwordHlwZWRlZiBF
VlJJbml0RXJyb3IgSG1kRXJyb3I7Cit0eXBlZGVmIEVWUkV5ZSBIbWRfRXllOwordHlwZWRlZiBF
Q29sb3JTcGFjZSBDb2xvclNwYWNlOwordHlwZWRlZiBFVHJhY2tpbmdSZXN1bHQgSG1kVHJhY2tp
bmdSZXN1bHQ7Cit0eXBlZGVmIEVUcmFja2VkRGV2aWNlQ2xhc3MgVHJhY2tlZERldmljZUNsYXNz
OwordHlwZWRlZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
OwordHlwZWRlZiBFVHJhY2tlZERldmljZVByb3BlcnR5IFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsK
K3R5cGVkZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFRyYWNrZWRQcm9wZXJ0eUVycm9yOwordHlw
ZWRlZiBFVlJTdWJtaXRGbGFncyBWUlN1Ym1pdEZsYWdzX3Q7Cit0eXBlZGVmIEVWUlN0YXRlIFZS
U3RhdGVfdDsKK3R5cGVkZWYgRUNvbGxpc2lvbkJvdW5kc1N0eWxlIENvbGxpc2lvbkJvdW5kc1N0
eWxlX3Q7Cit0eXBlZGVmIEVWUk92ZXJsYXlFcnJvciBWUk92ZXJsYXlFcnJvcjsKK3R5cGVkZWYg
RVZSRmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7Cit0eXBlZGVmIEVWUkNvbXBvc2l0b3JF
cnJvciBWUkNvbXBvc2l0b3JFcnJvcjsKK3R5cGVkZWYgRVZSU2NyZWVuc2hvdEVycm9yIFZSU2Ny
ZWVuc2hvdHNFcnJvcjsKKworLy8gT3BlblZSIFN0cnVjdHMKKwordHlwZWRlZiBzdHJ1Y3QgSG1k
TWF0cml4MzRfdAoreworICAgICAgIGZsb2F0IG1bM11bNF07IC8vZmxvYXRbM11bNF0KK30gSG1k
TWF0cml4MzRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kTWF0cml4NDRfdAoreworICAgICAgIGZs
b2F0IG1bNF1bNF07IC8vZmxvYXRbNF1bNF0KK30gSG1kTWF0cml4NDRfdDsKKwordHlwZWRlZiBz
dHJ1Y3QgSG1kVmVjdG9yM190Cit7CisgICAgICAgZmxvYXQgdlszXTsgLy9mbG9hdFszXQorfSBI
bWRWZWN0b3IzX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZlY3RvcjRfdAoreworICAgICAgIGZs
b2F0IHZbNF07IC8vZmxvYXRbNF0KK30gSG1kVmVjdG9yNF90OworCit0eXBlZGVmIHN0cnVjdCBI
bWRWZWN0b3IzZF90Cit7CisgICAgICAgZG91YmxlIHZbM107IC8vZG91YmxlWzNdCit9IEhtZFZl
Y3RvcjNkX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAgICAgIGZsb2F0
IHZbMl07IC8vZmxvYXRbMl0KK30gSG1kVmVjdG9yMl90OworCit0eXBlZGVmIHN0cnVjdCBIbWRR
dWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdzsKKyAgICAgICBkb3VibGUgeDsKKyAgICAg
ICBkb3VibGUgeTsKKyAgICAgICBkb3VibGUgejsKK30gSG1kUXVhdGVybmlvbl90OworCit0eXBl
ZGVmIHN0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxvYXQgcjsKKyAgICAgICBmbG9hdCBn
OworICAgICAgIGZsb2F0IGI7CisgICAgICAgZmxvYXQgYTsKK30gSG1kQ29sb3JfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Q29y
bmVyc1s0XTsgLy9zdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdFs0XQorfSBIbWRRdWFkX3Q7CisKK3R5
cGVkZWYgc3RydWN0IEhtZFJlY3QyX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZU
b3BMZWZ0OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0OworfSBIbWRS
ZWN0Ml90OworCit0eXBlZGVmIHN0cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdAoreworICAg
ICAgIGZsb2F0IHJmUmVkWzJdOyAvL2Zsb2F0WzJdCisgICAgICAgZmxvYXQgcmZHcmVlblsyXTsg
Ly9mbG9hdFsyXQorICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsgLy9mbG9hdFsyXQorfSBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAg
dm9pZCAqIGhhbmRsZTsgLy8gdm9pZCAqCisgICAgICAgZW51bSBFVGV4dHVyZVR5cGUgZVR5cGU7
CisgICAgICAgZW51bSBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK30gVGV4dHVyZV90OworCit0
eXBlZGVmIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90Cit7CisgICAgICAgc3RydWN0IEhtZE1h
dHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsKKyAgICAgICBzdHJ1Y3QgSG1kVmVj
dG9yM190IHZWZWxvY2l0eTsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZBbmd1bGFyVmVs
b2NpdHk7CisgICAgICAgZW51bSBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OworICAg
ICAgIGJvb2wgYlBvc2VJc1ZhbGlkOworICAgICAgIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOwor
fSBUcmFja2VkRGV2aWNlUG9zZV90OworCit0eXBlZGVmIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNf
dAoreworICAgICAgIGZsb2F0IHVNaW47CisgICAgICAgZmxvYXQgdk1pbjsKKyAgICAgICBmbG9h
dCB1TWF4OworICAgICAgIGZsb2F0IHZNYXg7Cit9IFZSVGV4dHVyZUJvdW5kc190OworCit0eXBl
ZGVmIHN0cnVjdCBWUlZ1bGthblRleHR1cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25J
bWFnZTsKKyAgICAgICBzdHJ1Y3QgVmtEZXZpY2VfVCAqIG1fcERldmljZTsgLy8gc3RydWN0IFZr
RGV2aWNlX1QgKgorICAgICAgIHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiBtX3BQaHlzaWNh
bERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCisgICAgICAgc3RydWN0IFZr
SW5zdGFuY2VfVCAqIG1fcEluc3RhbmNlOyAvLyBzdHJ1Y3QgVmtJbnN0YW5jZV9UICoKKyAgICAg
ICBzdHJ1Y3QgVmtRdWV1ZV9UICogbV9wUXVldWU7IC8vIHN0cnVjdCBWa1F1ZXVlX1QgKgorICAg
ICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uV2lk
dGg7CisgICAgICAgdWludDMyX3QgbV9uSGVpZ2h0OworICAgICAgIHVpbnQzMl90IG1fbkZvcm1h
dDsKKyAgICAgICB1aW50MzJfdCBtX25TYW1wbGVDb3VudDsKK30gVlJWdWxrYW5UZXh0dXJlRGF0
YV90OworCit0eXBlZGVmIHN0cnVjdCBEM0QxMlRleHR1cmVEYXRhX3QKK3sKKyAgICAgICBzdHJ1
Y3QgSUQzRDEyUmVzb3VyY2UgKiBtX3BSZXNvdXJjZTsgLy8gc3RydWN0IElEM0QxMlJlc291cmNl
ICoKKyAgICAgICBzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICogbV9wQ29tbWFuZFF1ZXVlOyAv
LyBzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoKKyAgICAgICB1aW50MzJfdCBtX25Ob2RlTWFz
azsKK30gRDNEMTJUZXh0dXJlRGF0YV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0NvbnRy
b2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsKK30gVlJFdmVudF9Db250cm9sbGVy
X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIGZsb2F0IHg7
CisgICAgICAgZmxvYXQgeTsKKyAgICAgICB1aW50MzJfdCBidXR0b247Cit9IFZSRXZlbnRfTW91
c2VfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAoreworICAgICAgIGZsb2F0
IHhkZWx0YTsKKyAgICAgICBmbG9hdCB5ZGVsdGE7CisgICAgICAgdWludDMyX3QgcmVwZWF0Q291
bnQ7Cit9IFZSRXZlbnRfU2Nyb2xsX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfVG91Y2hQ
YWRNb3ZlX3QKK3sKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworICAgICAgIGZsb2F0IGZsU2Vj
b25kc0ZpbmdlckRvd247CisgICAgICAgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAgIGZsb2F0
IGZWYWx1ZVlGaXJzdDsKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0IGZW
YWx1ZVlSYXc7Cit9IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZS
RXZlbnRfTm90aWZpY2F0aW9uX3QKK3sKKyAgICAgICB1aW50NjRfdCB1bFVzZXJWYWx1ZTsKKyAg
ICAgICB1aW50MzJfdCBub3RpZmljYXRpb25JZDsKK30gVlJFdmVudF9Ob3RpZmljYXRpb25fdDsK
KwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sKKyAgICAgICB1aW50MzJfdCBw
aWQ7CisgICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJvb2wgYkZvcmNlZDsKK30gVlJF
dmVudF9Qcm9jZXNzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfT3ZlcmxheV90Cit7Cisg
ICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKK30gVlJFdmVudF9PdmVybGF5X3Q7CisKK3R5
cGVkZWYgc3RydWN0IFZSRXZlbnRfU3RhdHVzX3QKK3sKKyAgICAgICB1aW50MzJfdCBzdGF0dXNT
dGF0ZTsKK30gVlJFdmVudF9TdGF0dXNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9LZXli
b2FyZF90Cit7CisgICAgICAgY2hhciAqIGNOZXdJbnB1dFs4XTsgLy9jaGFyWzhdCisgICAgICAg
dWludDY0X3QgdVVzZXJWYWx1ZTsKK30gVlJFdmVudF9LZXlib2FyZF90OworCit0eXBlZGVmIHN0
cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfSBWUkV2ZW50
X0lwZF90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAg
dWludDY0X3QgbV9uUHJldmlvdXNVbml2ZXJzZTsKKyAgICAgICB1aW50NjRfdCBtX25DdXJyZW50
VW5pdmVyc2U7Cit9IFZSRXZlbnRfQ2hhcGVyb25lX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZl
bnRfUmVzZXJ2ZWRfdAoreworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50
NjRfdCByZXNlcnZlZDE7Cit9IFZSRXZlbnRfUmVzZXJ2ZWRfdDsKKwordHlwZWRlZiBzdHJ1Y3Qg
VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5
TGV2ZWw7Cit9IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZS
RXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90Cit7CisgICAgICAgYm9vbCBiUmVzZXRCeVN5c3Rl
bU1lbnU7Cit9IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90OworCit0eXBlZGVmIHN0cnVj
dCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAgICAg
ICB1aW50MzJfdCB0eXBlOworfSBWUkV2ZW50X1NjcmVlbnNob3RfdDsKKwordHlwZWRlZiBzdHJ1
Y3QgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdAoreworICAgICAgIGZsb2F0IHByb2dyZXNz
OworfSBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190OworCit0eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAg
dWludDMyX3QgdW5BcmdzSGFuZGxlOworfSBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3Q7CisK
K3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAoreworICAgICAg
IHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3QgblZpc3VhbE1vZGU7Cit9
IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVu
dF9NZXNzYWdlT3ZlcmxheV90Cit7CisgICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5
UmVzcG9uc2U7Cit9IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdDsKKwordHlwZWRlZiBzdHJ1Y3Qg
VlJFdmVudF9Qcm9wZXJ0eV90Cit7CisgICAgICAgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBj
b250YWluZXI7CisgICAgICAgZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Cit9IFZS
RXZlbnRfUHJvcGVydHlfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAorewor
ICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwVmVydGV4RGF0YTsgLy8gY29uc3Qgc3RydWN0
IHZyOjpIbWRWZWN0b3IyX3QgKgorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsKK30g
SGlkZGVuQXJlYU1lc2hfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7
CisgICAgICAgZmxvYXQgeDsKKyAgICAgICBmbG9hdCB5OworfSBWUkNvbnRyb2xsZXJBeGlzX3Q7
CisKK3R5cGVkZWYgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3QKK3sKKyAgICAgICB1aW50MzJf
dCB1blBhY2tldE51bTsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblByZXNzZWQ7CisgICAgICAg
dWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOworICAgICAgIHN0cnVjdCBWUkNvbnRyb2xsZXJBeGlz
X3QgckF4aXNbNV07IC8vc3RydWN0IHZyOjpWUkNvbnRyb2xsZXJBeGlzX3RbNV0KK30gVlJDb250
cm9sbGVyU3RhdGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGlu
Z3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXplOworICAgICAgIGJvb2wgY3VydmVkOworICAgICAg
IGJvb2wgYW50aWFsaWFzOworICAgICAgIGZsb2F0IHNjYWxlOworICAgICAgIGZsb2F0IGRpc3Rh
bmNlOworICAgICAgIGZsb2F0IGFscGhhOworICAgICAgIGZsb2F0IHVPZmZzZXQ7CisgICAgICAg
ZmxvYXQgdk9mZnNldDsKKyAgICAgICBmbG9hdCB1U2NhbGU7CisgICAgICAgZmxvYXQgdlNjYWxl
OworICAgICAgIGZsb2F0IGdyaWREaXZzOworICAgICAgIGZsb2F0IGdyaWRXaWR0aDsKKyAgICAg
ICBmbG9hdCBncmlkU2NhbGU7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDQ0X3QgdHJhbnNmb3Jt
OworfSBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5nczsKKwordHlwZWRlZiBzdHJ1Y3QgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgZW51bSBFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGU7CisgICAgICAgdWludDMyX3QgbldpZHRoOworICAgICAgIHVp
bnQzMl90IG5IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbkJ5dGVzUGVyUGl4ZWw7CisgICAgICAg
dWludDMyX3QgbkZyYW1lU2VxdWVuY2U7CisgICAgICAgc3RydWN0IFRyYWNrZWREZXZpY2VQb3Nl
X3Qgc3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsKK30gQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhl
YWRlcl90OworCit0eXBlZGVmIHN0cnVjdCBBcHBPdmVycmlkZUtleXNfdAoreworICAgICAgIGNo
YXIgKiBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgorICAgICAgIGNoYXIgKiBwY2hWYWx1ZTsgLy8g
Y29uc3QgY2hhciAqCit9IEFwcE92ZXJyaWRlS2V5c190OworCit0eXBlZGVmIHN0cnVjdCBDb21w
b3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgdWludDMyX3QgbV9uU2l6ZTsKKyAgICAgICB1
aW50MzJfdCBtX25GcmFtZUluZGV4OworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2Vu
dHM7CisgICAgICAgdWludDMyX3QgbV9uTnVtTWlzUHJlc2VudGVkOworICAgICAgIHVpbnQzMl90
IG1fbk51bURyb3BwZWRGcmFtZXM7CisgICAgICAgdWludDMyX3QgbV9uUmVwcm9qZWN0aW9uRmxh
Z3M7CisgICAgICAgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOworICAgICAgIGZsb2F0
IG1fZmxQcmVTdWJtaXRHcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOwor
ICAgICAgIGZsb2F0IG1fZmxUb3RhbFJlbmRlckdwdU1zOworICAgICAgIGZsb2F0IG1fZmxDb21w
b3NpdG9yUmVuZGVyR3B1TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJDcHVN
czsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKKyAgICAgICBmbG9hdCBt
X2ZsQ2xpZW50RnJhbWVJbnRlcnZhbE1zOworICAgICAgIGZsb2F0IG1fZmxQcmVzZW50Q2FsbENw
dU1zOworICAgICAgIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENwdU1zOworICAgICAgIGZsb2F0
IG1fZmxTdWJtaXRGcmFtZU1zOworICAgICAgIGZsb2F0IG1fZmxXYWl0R2V0UG9zZXNDYWxsZWRN
czsKKyAgICAgICBmbG9hdCBtX2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAgIGZsb2F0IG1fZmxO
ZXdGcmFtZVJlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1z
OworICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgZmxvYXQg
bV9mbENvbXBvc2l0b3JSZW5kZXJTdGFydE1zOworICAgICAgIFRyYWNrZWREZXZpY2VQb3NlX3Qg
bV9IbWRQb3NlOworfSBDb21wb3NpdG9yX0ZyYW1lVGltaW5nOworCit0eXBlZGVmIHN0cnVjdCBD
b21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cworeworICAgICAgIHVpbnQzMl90IG1fblBpZDsKKyAg
ICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzOworICAgICAgIHVpbnQzMl90IG1fbk51
bURyb3BwZWRGcmFtZXM7CisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXM7
CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c09uU3RhcnR1cDsKKyAgICAgICB1
aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzT25TdGFydHVwOworICAgICAgIHVpbnQzMl90IG1f
bk51bVJlcHJvamVjdGVkRnJhbWVzT25TdGFydHVwOworICAgICAgIHVpbnQzMl90IG1fbk51bUxv
YWRpbmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c0xvYWRpbmc7CisgICAg
ICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgdWludDMyX3Qg
bV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bVRp
bWVkT3V0OworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNUaW1lZE91dDsKKyAg
ICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzVGltZWRPdXQ7CisgICAgICAgdWludDMy
X3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNUaW1lZE91dDsKK30gQ29tcG9zaXRvcl9DdW11bGF0
aXZlU3RhdHM7CisKK3R5cGVkZWYgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190
Cit7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2U291cmNlOworICAgICAgIHN0cnVjdCBI
bWRWZWN0b3IzX3QgdkRpcmVjdGlvbjsKKyAgICAgICBlbnVtIEVUcmFja2luZ1VuaXZlcnNlT3Jp
Z2luIGVPcmlnaW47Cit9IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190OworCit0eXBlZGVm
IHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QKK3sKKyAgICAgICBzdHJ1Y3Qg
SG1kVmVjdG9yM190IHZQb2ludDsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZOb3JtYWw7
CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2VVZzOworICAgICAgIGZsb2F0IGZEaXN0YW5j
ZTsKK30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190OworCit0eXBlZGVmIHN0cnVjdCBJ
bnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKK3sKKyAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFg7
CisgICAgICAgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAgIGZsb2F0IG1fZmxXaWR0aDsKKyAg
ICAgICBmbG9hdCBtX2ZsSGVpZ2h0OworfSBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3Q7CisK
K3R5cGVkZWYgc3RydWN0IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdAoreworICAgICAgIGZsb2F0
IG1fZmxDZW50ZXJYOworICAgICAgIGZsb2F0IG1fZmxDZW50ZXJZOworICAgICAgIGZsb2F0IG1f
ZmxSYWRpdXM7Cit9IEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdDsKKwordHlwZWRlZiBzdHJ1Y3Qg
UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAgIHN0cnVjdCBIbWRNYXRyaXgz
NF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7CisgICAgICAgc3RydWN0IEhtZE1h
dHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAgICAgICBWUkNvbXBvbmVudFBy
b3BlcnRpZXMgdVByb3BlcnRpZXM7Cit9IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3Q7CisK
K3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90Cit7CisgICAgICAgc3RydWN0IEht
ZFZlY3RvcjNfdCB2UG9zaXRpb247CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2Tm9ybWFs
OworICAgICAgIGZsb2F0IHJmVGV4dHVyZUNvb3JkWzJdOyAvL2Zsb2F0WzJdCit9IFJlbmRlck1v
ZGVsX1ZlcnRleF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QK
K3sKKyAgICAgICB1aW50MTZfdCB1bldpZHRoOworICAgICAgIHVpbnQxNl90IHVuSGVpZ2h0Owor
ICAgICAgIHVpbnQ4X3QgKiBydWJUZXh0dXJlTWFwRGF0YTsgLy8gY29uc3QgdWludDhfdCAqCit9
IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdDsKKwordHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxf
dAoreworICAgICAgIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqIHJWZXJ0ZXhEYXRhOyAv
LyBjb25zdCBzdHJ1Y3QgdnI6OlJlbmRlck1vZGVsX1ZlcnRleF90ICoKKyAgICAgICB1aW50MzJf
dCB1blZlcnRleENvdW50OworICAgICAgIHVpbnQxNl90ICogckluZGV4RGF0YTsgLy8gY29uc3Qg
dWludDE2X3QgKgorICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsKKyAgICAgICBUZXh0
dXJlSURfdCBkaWZmdXNlVGV4dHVyZUlkOworfSBSZW5kZXJNb2RlbF90OworCit0eXBlZGVmIHN0
cnVjdCBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90Cit7CisgICAgICAgYm9vbCBi
U2Nyb2xsV2hlZWxWaXNpYmxlOworfSBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90
OworCit0eXBlZGVmIHN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdAoreworICAgICAgIHZvaWQg
KiBtX3BJbWFnZURhdGE7IC8vIHZvaWQgKgorICAgICAgIGludDMyX3QgbV9uV2lkdGg7CisgICAg
ICAgaW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgaW50MzJfdCBtX25CeXRlc1BlclBpeGVsOwor
fSBOb3RpZmljYXRpb25CaXRtYXBfdDsKKwordHlwZWRlZiBzdHJ1Y3QgQ09wZW5WUkNvbnRleHQK
K3sKKyAgICAgICBpbnRwdHJfdCBtX3BWUlN5c3RlbTsgLy8gY2xhc3MgdnI6OklWUlN5c3RlbSAq
CisgICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmU7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJv
bmUgKgorICAgICAgIGludHB0cl90IG1fcFZSQ2hhcGVyb25lU2V0dXA7IC8vIGNsYXNzIHZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCAqCisgICAgICAgaW50cHRyX3QgbV9wVlJDb21wb3NpdG9yOyAvLyBj
bGFzcyB2cjo6SVZSQ29tcG9zaXRvciAqCisgICAgICAgaW50cHRyX3QgbV9wVlJPdmVybGF5OyAv
LyBjbGFzcyB2cjo6SVZST3ZlcmxheSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJSZXNvdXJjZXM7
IC8vIGNsYXNzIHZyOjpJVlJSZXNvdXJjZXMgKgorICAgICAgIGludHB0cl90IG1fcFZSUmVuZGVy
TW9kZWxzOyAvLyBjbGFzcyB2cjo6SVZSUmVuZGVyTW9kZWxzICoKKyAgICAgICBpbnRwdHJfdCBt
X3BWUkV4dGVuZGVkRGlzcGxheTsgLy8gY2xhc3MgdnI6OklWUkV4dGVuZGVkRGlzcGxheSAqCisg
ICAgICAgaW50cHRyX3QgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoK
KyAgICAgICBpbnRwdHJfdCBtX3BWUkFwcGxpY2F0aW9uczsgLy8gY2xhc3MgdnI6OklWUkFwcGxp
Y2F0aW9ucyAqCisgICAgICAgaW50cHRyX3QgbV9wVlJUcmFja2VkQ2FtZXJhOyAvLyBjbGFzcyB2
cjo6SVZSVHJhY2tlZENhbWVyYSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJTY3JlZW5zaG90czsg
Ly8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKK30gQ09wZW5WUkNvbnRleHQ7CisKKwordHlw
ZWRlZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRfdCByZXNlcnZlZDsKKyAgICAg
ICBWUkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAgICAgIFZSRXZlbnRfTW91c2Vf
dCBtb3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9sbDsKKyAgICAgICBWUkV2ZW50
X1Byb2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX3Qgbm90aWZp
Y2F0aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJsYXk7CisgICAgICAgVlJFdmVu
dF9TdGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXlib2FyZF90IGtleWJvYXJkOwor
ICAgICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lX3QgY2hh
cGVyb25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0
OworICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFZS
RXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Qb3NlUmVzZXQ7Cit9IFZSRXZl
bnRfRGF0YV90OworCisvKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIgdG8gYWxsIHJ1
bm5pbmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAgICAgdWludDMy
X3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQorICAgICAgIFRyYWNrZWREZXZpY2VJ
bmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBmbG9hdCBldmVudEFnZVNlY29uZHM7
CisgICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0cnVjdCBhcyBp
dHMgc2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7Cit9OworCisK
K3R5cGVkZWYgdW5pb24KK3sKKyAgICAgICBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9S
ZWN0YW5nbGU7CisgICAgICAgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOworfSBW
Uk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlX0RhdGFfdDsKKworc3RydWN0IFZST3Zl
cmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAgICAgIEVWUk92ZXJsYXlJbnRl
cnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZSBtX25QcmltaXRpdmVUeXBlOworICAgICAgIFZST3Zl
cmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJpbWl0aXZlOworfTsKKwor
CisvLyBPcGVuVlIgRnVuY3Rpb24gUG9pbnRlciBUYWJsZXMKKworc3RydWN0IFZSX0lWUlN5c3Rl
bV9GblRhYmxlCit7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJl
Y29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSkodWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAq
IHBuSGVpZ2h0KTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4NDRfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldFByb2plY3Rpb25NYXRyaXgpKEVWUkV5ZSBlRXllLCBmbG9hdCBmTmVhclos
IGZsb2F0IGZGYXJaKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
UHJvamVjdGlvblJhdykoRVZSRXllIGVFeWUsIGZsb2F0ICogcGZMZWZ0LCBmbG9hdCAqIHBmUmln
aHQsIGZsb2F0ICogcGZUb3AsIGZsb2F0ICogcGZCb3R0b20pOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDb21wdXRlRGlzdG9ydGlvbikoRVZSRXllIGVFeWUsIGZsb2F0
IGZVLCBmbG9hdCBmViwgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190ICogcERpc3RvcnRp
b25Db29yZGluYXRlcyk7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRFeWVUb0hlYWRUcmFuc2Zvcm0pKEVWUkV5ZSBlRXllKTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VGltZVNpbmNlTGFzdFZzeW5jKShm
bG9hdCAqIHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRfdCAqIHB1bEZyYW1lQ291bnRl
cik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEQzRDlBZGFw
dGVySW5kZXgpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERY
R0lPdXRwdXRJbmZvKShpbnQzMl90ICogcG5BZGFwdGVySW5kZXgpOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Rpc3BsYXlPbkRlc2t0b3ApKCk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERpc3BsYXlWaXNpYmlsaXR5KShib29sIGJJ
c1Zpc2libGVPbkRlc2t0b3ApOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biBlT3JpZ2luLCBmbG9hdCBmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3csIHN0cnVj
dCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFRyYWNrZWREZXZpY2VQb3NlQXJyYXksIHVpbnQzMl90
IHVuVHJhY2tlZERldmljZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqUmVzZXRTZWF0ZWRaZXJvUG9zZSkoKTsKKyAgICAgICBzdHJ1Y3QgSG1k
TWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNlYXRlZFplcm9Qb3NlVG9T
dGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKSgpOworICAgICAgIHN0cnVjdCBIbWRNYXRyaXgz
NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJz
b2x1dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MpKEVUcmFja2VkRGV2
aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcywgVHJhY2tlZERldmljZUluZGV4X3QgKiBwdW5U
cmFja2VkRGV2aWNlSW5kZXhBcnJheSwgdWludDMyX3QgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJh
eUNvdW50LCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5k
ZXgpOworICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwpKFRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSWQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBcHBseVRy
YW5zZm9ybSkoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0UG9zZSwgc3RydWN0
IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2UsIHN0cnVjdCBIbWRNYXRy
aXgzNF90ICogcFRyYW5zZm9ybSk7CisgICAgICAgVHJhY2tlZERldmljZUluZGV4X3QgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9s
ZSkoRVRyYWNrZWRDb250cm9sbGVyUm9sZSB1bkRldmljZVR5cGUpOworICAgICAgIEVUcmFja2Vk
Q29udHJvbGxlclJvbGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb250cm9sbGVyUm9s
ZUZvclRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRl
eCk7CisgICAgICAgRVRyYWNrZWREZXZpY2VDbGFzcyAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldFRyYWNrZWREZXZpY2VDbGFzcykoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRl
eCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzVHJhY2tlZERldmlj
ZUNvbm5lY3RlZCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVy
dHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBmbG9h
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5
KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgaW50MzJf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5
KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgdWludDY0
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVy
dHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBzdHJ1
Y3QgSG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1hdHJpeDM0VHJh
Y2tlZERldmljZVByb3BlcnR5KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJv
cik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTdHJpbmdU
cmFja2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1
bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqIHBFcnJvcik7CisgICAgICAgY2hh
ciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKShF
VHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpQb2xsTmV4dEV2ZW50KShzdHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50
MzJfdCB1bmNiVlJFdmVudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlBvbGxOZXh0RXZlbnRXaXRoUG9zZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwg
c3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQsIFRyYWNrZWRE
ZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAgIGNoYXIgKiAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSkoRVZSRXZlbnRUeXBl
IGVUeXBlKTsKKyAgICAgICBzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldEhpZGRlbkFyZWFNZXNoKShFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNo
VHlwZSB0eXBlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29u
dHJvbGxlclN0YXRlKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRl
eCwgVlJDb250cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29u
dHJvbGxlclN0YXRlU2l6ZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3Jp
Z2luLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgVlJDb250
cm9sbGVyU3RhdGVfdCAqIHBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0
YXRlU2l6ZSwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2Up
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpUcmlnZ2VySGFwdGljUHVs
c2UpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCB1aW50MzJf
dCB1bkF4aXNJZCwgdW5zaWduZWQgc2hvcnQgdXNEdXJhdGlvbk1pY3JvU2VjKTsKKyAgICAgICBj
aGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCdXR0b25JZE5hbWVGcm9tRW51bSko
RVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0pKEVWUkNvbnRyb2xsZXJB
eGlzVHlwZSBlQXhpc1R5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDYXB0dXJlSW5wdXRGb2N1cykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqUmVsZWFzZUlucHV0Rm9jdXMpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcykoKTsKKyAgICAg
ICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkRyaXZlckRlYnVnUmVxdWVzdCko
VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgY2hhciAqIHBjaFJlcXVlc3QsIGNo
YXIgKiBwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMyX3QgdW5SZXNwb25zZUJ1ZmZlclNpemUpOwor
ICAgICAgIEVWUkZpcm13YXJlRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQZXJmb3Jt
RmlybXdhcmVVcGRhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgpOworICAg
ICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY2tub3dsZWRnZVF1aXRfRXhpdGlu
ZykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNrbm93bGVkZ2VR
dWl0X1VzZXJQcm9tcHQpKCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSRXh0ZW5kZWREaXNwbGF5X0Zu
VGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V2luZG93
Qm91bmRzKShpbnQzMl90ICogcG5YLCBpbnQzMl90ICogcG5ZLCB1aW50MzJfdCAqIHBuV2lkdGgs
IHVpbnQzMl90ICogcG5IZWlnaHQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRFeWVPdXRwdXRWaWV3cG9ydCkoRVZSRXllIGVFeWUsIHVpbnQzMl90ICogcG5YLCB1
aW50MzJfdCAqIHBuWSwgdWludDMyX3QgKiBwbldpZHRoLCB1aW50MzJfdCAqIHBuSGVpZ2h0KTsK
KyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RFhHSU91dHB1dEluZm8p
KGludDMyX3QgKiBwbkFkYXB0ZXJJbmRleCwgaW50MzJfdCAqIHBuQWRhcHRlck91dHB1dEluZGV4
KTsKK307CisKK3N0cnVjdCBWUl9JVlJUcmFja2VkQ2FtZXJhX0ZuVGFibGUKK3sKKyAgICAgICBj
aGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51
bSkoRVZSVHJhY2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7CisgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGFzQ2FtZXJhKShUcmFja2Vk
RGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIGJvb2wgKiBwSGFzQ2FtZXJhKTsKKyAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYW1lcmFG
cmFtZVNpemUpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICog
cG5IZWlnaHQsIHVpbnQzMl90ICogcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUludHJpbnNp
Y3MpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZSBlRnJhbWVUeXBlLCBIbWRWZWN0b3IyX3QgKiBwRm9jYWxMZW5ndGgsIEhtZFZlY3Rv
cjJfdCAqIHBDZW50ZXIpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYVByb2plY3Rpb24pKFRyYWNrZWREZXZpY2VJbmRleF90
IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9h
dCBmbFpOZWFyLCBmbG9hdCBmbFpGYXIsIEhtZE1hdHJpeDQ0X3QgKiBwUHJvamVjdGlvbik7Cisg
ICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQWNx
dWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUlu
ZGV4LCBUcmFja2VkQ2FtZXJhSGFuZGxlX3QgKiBwSGFuZGxlKTsKKyAgICAgICBFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlVmlkZW9TdHJlYW1p
bmdTZXJ2aWNlKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEpOworICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZpZGVv
U3RyZWFtRnJhbWVCdWZmZXIpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICogcEZyYW1lQnVmZmVy
LCB1aW50MzJfdCBuRnJhbWVCdWZmZXJTaXplLCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3QgKiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZpZGVvU3Ry
ZWFtVGV4dHVyZVNpemUpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBWUlRleHR1cmVCb3VuZHNfdCAqIHBUZXh0
dXJlQm91bmRzLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOworICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZp
ZGVvU3RyZWFtVGV4dHVyZUQzRDExKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1l
cmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqIHBEM0QxMURl
dmljZU9yUmVzb3VyY2UsIHZvaWQgKiogcHBEM0QxMVNoYWRlclJlc291cmNlVmlldywgQ2FtZXJh
VmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICogcEZyYW1lSGVhZGVyLCB1aW50MzJfdCBuRnJhbWVI
ZWFkZXJTaXplKTsKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRWaWRlb1N0cmVhbVRleHR1cmVHTCkoVHJhY2tlZENhbWVyYUhhbmRsZV90
IGhUcmFja2VkQ2FtZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGds
VUludF90ICogcGdsVGV4dHVyZUlkLCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBw
RnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VWaWRlb1N0cmVh
bVRleHR1cmVHTCkoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCBnbFVJbnRf
dCBnbFRleHR1cmVJZCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQXBwbGljYXRpb25zX0ZuVGFibGUK
K3sKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
QWRkQXBwbGljYXRpb25NYW5pZmVzdCkoY2hhciAqIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxs
UGF0aCwgYm9vbCBiVGVtcG9yYXJ5KTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCkoY2hhciAqIHBj
aEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKklzQXBwbGljYXRpb25JbnN0YWxsZWQpKGNoYXIgKiBwY2hBcHBLZXkpOwor
ICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25D
b3VudCkoKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KSh1aW50MzJfdCB1bkFwcGxpY2F0aW9uSW5k
ZXgsIGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCkodWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKiBw
Y2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoQXBwbGljYXRp
b24pKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKShjaGFyICogcGNo
VGVtcGxhdGVBcHBLZXksIGNoYXIgKiBwY2hOZXdBcHBLZXksIHN0cnVjdCBBcHBPdmVycmlkZUtl
eXNfdCAqIHBLZXlzLCB1aW50MzJfdCB1bktleXMpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hBcHBsaWNhdGlvbkZyb21NaW1lVHlw
ZSkoY2hhciAqIHBjaE1pbWVUeXBlLCBjaGFyICogcGNoQXJncyk7CisgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaERhc2hib2FyZE92ZXJs
YXkpKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCkoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklkZW50aWZ5QXBw
bGljYXRpb24pKHVpbnQzMl90IHVuUHJvY2Vzc0lkLCBjaGFyICogcGNoQXBwS2V5KTsKKyAgICAg
ICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uUHJvY2Vz
c0lkKShjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bSkoRVZSQXBwbGljYXRpb25F
cnJvciBlcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNh
dGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgY2hhciAqIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVp
bnQzMl90IHVuUHJvcGVydHlWYWx1ZUJ1ZmZlckxlbiwgRVZSQXBwbGljYXRpb25FcnJvciAqIHBl
RXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNh
dGlvblByb3BlcnR5Qm9vbCkoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0
eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB1aW50
NjRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50
NjQpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBF
VlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJvcik7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCkoY2hh
ciAqIHBjaEFwcEtleSwgYm9vbCBiQXV0b0xhdW5jaCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCkoY2hhciAqIHBjaEFwcEtl
eSk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFyICogcGNoQXBwS2V5LCBjaGFy
ICogcGNoTWltZVR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZSkoY2hhciAqIHBjaE1pbWVUeXBlLCBjaGFy
ICogcGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAg
Ym9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uU3VwcG9ydGVkTWlt
ZVR5cGVzKShjaGFyICogcGNoQXBwS2V5LCBjaGFyICogcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50
MzJfdCB1bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKShjaGFyICogcGNo
TWltZVR5cGUsIGNoYXIgKiBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQzMl90IHVu
QXBwS2V5c1RoYXRTdXBwb3J0QnVmZmVyKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKSh1aW50MzJfdCB1bkhh
bmRsZSwgY2hhciAqIHBjaEFyZ3MsIHVpbnQzMl90IHVuQXJncyk7CisgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFN0YXJ0aW5nQXBwbGljYXRp
b24pKGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsK
KyAgICAgICBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFRyYW5zaXRpb25TdGF0ZSkoKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hl
Y2spKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSkoRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKSgpOworICAgICAgIEVWUkFw
cGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hJbnRlcm5hbFBy
b2Nlc3MpKGNoYXIgKiBwY2hCaW5hcnlQYXRoLCBjaGFyICogcGNoQXJndW1lbnRzLCBjaGFyICog
cGNoV29ya2luZ0RpcmVjdG9yeSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQpKCk7Cit9OworCitzdHJ1Y3QgVlJfSVZS
Q2hhcGVyb25lX0ZuVGFibGUKK3sKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FsaWJyYXRpb25TdGF0ZSkoKTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UGxheUFyZWFTaXplKShmbG9hdCAqIHBT
aXplWCwgZmxvYXQgKiBwU2l6ZVopOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRQbGF5QXJlYVJlY3QpKHN0cnVjdCBIbWRRdWFkX3QgKiByZWN0KTsKKyAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsb2FkSW5mbykoKTsKKyAgICAgICB2b2lk
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U2NlbmVDb2xvcikoc3RydWN0IEhtZENvbG9y
X3QgY29sb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb3Vu
ZHNDb2xvcikoc3RydWN0IEhtZENvbG9yX3QgKiBwT3V0cHV0Q29sb3JBcnJheSwgaW50IG5OdW1P
dXRwdXRDb2xvcnMsIGZsb2F0IGZsQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlLCBzdHJ1Y3Qg
SG1kQ29sb3JfdCAqIHBPdXRwdXRDYW1lcmFDb2xvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkFyZUJvdW5kc1Zpc2libGUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkZvcmNlQm91bmRzVmlzaWJsZSkoYm9vbCBiRm9yY2UpOworfTsK
Kworc3RydWN0IFZSX0lWUkNoYXBlcm9uZVNldHVwX0ZuVGFibGUKK3sKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tbWl0V29ya2luZ0NvcHkpKEVDaGFwZXJvbmVDb25m
aWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZXZlcnRXb3JraW5nQ29weSkoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0V29ya2luZ1BsYXlBcmVhU2l6ZSkoZmxvYXQgKiBwU2l6ZVgsIGZsb2F0ICogcFNp
emVaKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1Bs
YXlBcmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJlY3QpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbykoc3RydWN0
IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0NvdW50KTsKKyAg
ICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGl2ZUNvbGxpc2lvbkJvdW5k
c0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVh
ZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtp
bmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAq
IHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
V29ya2luZ1BsYXlBcmVhU2l6ZSkoZmxvYXQgc2l6ZVgsIGZsb2F0IHNpemVaKTsKKyAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0lu
Zm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3Vu
dCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBNYXRT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsb2FkRnJv
bURpc2spKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5n
UG9zZSkoc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbykodWludDhfdCAqIHBUYWdzQnVmZmVyLCB1aW50MzJf
dCB1blRhZ0NvdW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICogcFRhZ3NCdWZmZXIsIHVpbnQz
Ml90ICogcHVuVGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRz
QnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90
ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1YWRzQ291bnQpOworICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpFeHBvcnRMaXZlVG9CdWZmZXIpKGNoYXIgKiBwQnVm
ZmVyLCB1aW50MzJfdCAqIHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZykoY2hhciAqIHBCdWZmZXIs
IHVpbnQzMl90IG5JbXBvcnRGbGFncyk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQ29tcG9zaXRvcl9G
blRhYmxlCit7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldFRyYWNr
aW5nU3BhY2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOworICAgICAgIEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tpbmdT
cGFjZSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpXYWl0R2V0UG9zZXMpKHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcFJlbmRlclBv
c2VBcnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgc3RydWN0IFRyYWNrZWRE
ZXZpY2VQb3NlX3QgKiBwR2FtZVBvc2VBcnJheSwgdWludDMyX3QgdW5HYW1lUG9zZUFycmF5Q291
bnQpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldExhc3RQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwUmVuZGVyUG9zZUFy
cmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBzdHJ1Y3QgVHJhY2tlZERldmlj
ZVBvc2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7
CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2
aWNlSW5kZXgsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dFBvc2UsIHN0cnVj
dCBUcmFja2VkRGV2aWNlUG9zZV90ICogcE91dHB1dEdhbWVQb3NlKTsKKyAgICAgICBFVlJDb21w
b3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdWJtaXQpKEVWUkV5ZSBlRXll
LCBzdHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmUsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAq
IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7CisgICAgICAgdm9pZCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKSgpOworICAgICAg
IHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQb3N0UHJlc2VudEhhbmRvZmYpKCk7Cisg
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZyYW1lVGltaW5nKShzdHJ1
Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1pbmcsIHVpbnQzMl90IHVuRnJhbWVzQWdv
KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZyYW1lVGlt
aW5ncykoc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKiBwVGltaW5nLCB1aW50MzJfdCBu
RnJhbWVzKTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEZyYW1l
VGltZVJlbWFpbmluZykoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0Q3VtdWxhdGl2ZVN0YXRzKShzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMgKiBw
U3RhdHMsIHVpbnQzMl90IG5TdGF0c1NpemVJbkJ5dGVzKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqRmFkZVRvQ29sb3IpKGZsb2F0IGZTZWNvbmRzLCBmbG9hdCBmUmVk
LCBmbG9hdCBmR3JlZW4sIGZsb2F0IGZCbHVlLCBmbG9hdCBmQWxwaGEsIGJvb2wgYkJhY2tncm91
bmQpOworICAgICAgIHN0cnVjdCBIbWRDb2xvcl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0Q3VycmVudEZhZGVDb2xvcikoYm9vbCBiQmFja2dyb3VuZCk7CisgICAgICAgdm9pZCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZhZGVHcmlkKShmbG9hdCBmU2Vjb25kcywgYm9vbCBiRmFk
ZUluKTsKKyAgICAgICBmbG9hdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEN1cnJlbnRH
cmlkQWxwaGEpKCk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqU2V0U2t5Ym94T3ZlcnJpZGUpKHN0cnVjdCBUZXh0dXJlX3QgKiBwVGV4dHVyZXMs
IHVpbnQzMl90IHVuVGV4dHVyZUNvdW50KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqQ2xlYXJTa3lib3hPdmVycmlkZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckJyaW5nVG9Gcm9udCkoKTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckdvVG9CYWNrKSgpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yUXVpdCkoKTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNGdWxsc2NyZWVuKSgpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9j
ZXNzKSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TGFz
dEZyYW1lUmVuZGVyZXIpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkNhblJlbmRlclNjZW5lKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTaG93TWlycm9yV2luZG93KSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpIaWRlTWlycm9yV2luZG93KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpJc01pcnJvcldpbmRvd1Zpc2libGUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JEdW1wSW1hZ2VzKSgpOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzKSgp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGb3JjZUludGVybGVhdmVk
UmVwcm9qZWN0aW9uT24pKGJvb2wgYk92ZXJyaWRlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqRm9yY2VSZWNvbm5lY3RQcm9jZXNzKSgpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTdXNwZW5kUmVuZGVyaW5nKShib29sIGJTdXNwZW5kKTsK
KyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRN
aXJyb3JUZXh0dXJlRDNEMTEpKEVWUkV5ZSBlRXllLCB2b2lkICogcEQzRDExRGV2aWNlT3JSZXNv
dXJjZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSkodm9pZCAq
IHBEM0QxMVNoYWRlclJlc291cmNlVmlldyk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TWlycm9yVGV4dHVyZUdMKShFVlJFeWUgZUV5ZSwg
Z2xVSW50X3QgKiBwZ2xUZXh0dXJlSWQsIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90ICogcGdsU2hh
cmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlJlbGVhc2VTaGFyZWRHTFRleHR1cmUpKGdsVUludF90IGdsVGV4dHVyZUlkLCBnbFNoYXJlZFRl
eHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpMb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKShnbFNoYXJl
ZFRleHR1cmVIYW5kbGVfdCBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpVbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MpKGds
U2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdWlu
dDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lv
bnNSZXF1aXJlZCkoY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUpOworICAg
ICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VnVsa2FuRGV2aWNlRXh0
ZW5zaW9uc1JlcXVpcmVkKShzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICogcFBoeXNpY2FsRGV2
aWNlLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSk7Cit9OworCitzdHJ1
Y3QgVlJfSVZST3ZlcmxheV9GblRhYmxlCit7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqRmluZE92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5S2V5LCBW
Uk92ZXJsYXlIYW5kbGVfdCAqIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDcmVhdGVPdmVybGF5KShjaGFyICogcGNoT3Zl
cmxheUtleSwgY2hhciAqIHBjaE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90
ICogcE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkRlc3Ryb3lPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldEhpZ2hRdWFsaXR5T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
KTsKKyAgICAgICBWUk92ZXJsYXlIYW5kbGVfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dEhpZ2hRdWFsaXR5T3ZlcmxheSkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE92ZXJsYXlLZXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgY2hhciAqIHBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJv
ciAqIHBFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRPdmVybGF5TmFtZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjaGFyICog
cGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICogcEVycm9y
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRP
dmVybGF5SW1hZ2VEYXRhKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQg
KiBwdkJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJTaXplLCB1aW50MzJfdCAqIHB1bldpZHRoLCB1
aW50MzJfdCAqIHB1bkhlaWdodCk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtKShFVlJPdmVybGF5RXJyb3IgZXJyb3Ip
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlSZW5kZXJpbmdQaWQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWlu
dDMyX3QgdW5QSUQpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0T3ZlcmxheVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5RmxhZykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlG
bGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlGbGFnKShWUk92ZXJsYXlIYW5k
bGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCAq
IHBiRW5hYmxlZCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0T3ZlcmxheUNvbG9yKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOworICAgICAgIEVWUk92ZXJs
YXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlDb2xvcikoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBmUmVkLCBmbG9hdCAqIHBmR3Jl
ZW4sIGZsb2F0ICogcGZCbHVlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpTZXRPdmVybGF5QWxwaGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgZmxvYXQgZkFscGhhKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5QWxwaGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgZmxvYXQgKiBwZkFscGhhKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VGV4ZWxBc3BlY3QpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKKyAgICAgICBFVlJP
dmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4ZWxBc3Bl
Y3QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZlRleGVsQXNw
ZWN0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5U29ydE9yZGVyKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQzMl90IHVuU29ydE9yZGVyKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRPdmVybGF5U29ydE9yZGVyKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICogcHVuU29ydE9yZGVyKTsKKyAgICAgICBFVlJPdmVybGF5
RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5V2lkdGhJbk1ldGVycyko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmV2lkdGhJbk1ldGVycyk7
CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxv
YXQgKiBwZldpZHRoSW5NZXRlcnMpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZk1pbkRpc3RhbmNlSW5N
ZXRlcnMsIGZsb2F0IGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VS
YW5nZUluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICog
cGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCAqIHBmTWF4RGlzdGFuY2VJbk1ldGVycyk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zlcmxh
eVRleHR1cmVDb2xvclNwYWNlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVD
b2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVDb2xvclNwYWNlICogcGVUZXh0dXJlQ29s
b3JTcGFjZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcE92ZXJsYXlUZXh0dXJlQm91bmRzKTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVy
bGF5VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1
Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zv
cm1UeXBlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheVRyYW5z
Zm9ybVR5cGUgKiBwZVRyYW5zZm9ybVR5cGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSkoVlJPdmVy
bGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJh
Y2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3JpZ2luVG9P
dmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKiBwZVRyYWNraW5nT3Jp
Z2luLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRy
YW5zZm9ybSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSkoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1blRyYWNrZWREZXZp
Y2UsIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFu
c2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgKiBwdW5UcmFja2VkRGV2
aWNlLCBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJh
bnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCkoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
LCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21w
b25lbnQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUlu
ZGV4X3QgKiBwdW5EZXZpY2VJbmRleCwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUsIHVpbnQzMl90
IHVuQ29tcG9uZW50TmFtZVNpemUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkhpZGVPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc092ZXJsYXlWaXNpYmxlKShWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biBlVHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJs
YXksIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYW5zZm9ybSk7CisgICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvbGxOZXh0T3ZlcmxheUV2ZW50KShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQz
Ml90IHVuY2JWUkV2ZW50KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRPdmVybGF5SW5wdXRNZXRob2QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgVlJPdmVybGF5SW5wdXRNZXRob2QgKiBwZUlucHV0TWV0aG9kKTsKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5SW5w
dXRNZXRob2QpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW5w
dXRNZXRob2QgZUlucHV0TWV0aG9kKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5TW91c2VTY2FsZSkoVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgSG1kVmVjdG9yMl90ICogcHZlY01vdXNlU2NhbGUpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlNb3VzZVNjYWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBI
bWRWZWN0b3IyX3QgKiBwdmVjTW91c2VTY2FsZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCAq
IHBQYXJhbXMsIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgKiBwUmVzdWx0
cyk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhhbmRsZUNvbnRyb2xs
ZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4KTsKKyAg
ICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNIb3ZlclRhcmdldE92ZXJsYXkp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgVlJPdmVybGF5SGFu
ZGxlX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRHYW1lcGFkRm9jdXNPdmVybGF5KSgp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEdh
bWVwYWRGb2N1c092ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsTmV3Rm9jdXNPdmVybGF5KTsK
KyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVy
bGF5TmVpZ2hib3IpKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhhbmRs
ZV90IHVsRnJvbSwgVlJPdmVybGF5SGFuZGxlX3QgdWxUbyk7CisgICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3Ip
KEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3ZlcmxheUhhbmRsZV90IHVsRnJvbSk7
CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zl
cmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFRl
eHR1cmVfdCAqIHBUZXh0dXJlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpDbGVhck92ZXJsYXlUZXh0dXJlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlNldE92ZXJsYXlSYXcpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
dm9pZCAqIHB2QnVmZmVyLCB1aW50MzJfdCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdWlu
dDMyX3QgdW5EZXB0aCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqU2V0T3ZlcmxheUZyb21GaWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGNoYXIgKiBwY2hGaWxlUGF0aCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSwgdm9pZCAqIHBO
YXRpdmVUZXh0dXJlUmVmLCB1aW50MzJfdCAqIHBXaWR0aCwgdWludDMyX3QgKiBwSGVpZ2h0LCB1
aW50MzJfdCAqIHBOYXRpdmVGb3JtYXQsIEVUZXh0dXJlVHlwZSAqIHBBUElUeXBlLCBFQ29sb3JT
cGFjZSAqIHBDb2xvclNwYWNlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwVGV4dHVyZUJv
dW5kcyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
UmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgdm9pZCAqIHBOYXRpdmVUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJy
b3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZVNpemUpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKiBwV2lkdGgsIHVpbnQzMl90
ICogcEhlaWdodCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSkoY2hhciAqIHBjaE92ZXJsYXlLZXksIGNoYXIg
KiBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBNYWluSGFuZGxl
LCBWUk92ZXJsYXlIYW5kbGVfdCAqIHBUaHVtYm5haWxIYW5kbGUpOworICAgICAgIGJvb2wgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Rhc2hib2FyZFZpc2libGUpKCk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzQWN0aXZlRGFzaGJvYXJkT3ZlcmxheSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNz
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90IHVuUHJvY2Vzc0lk
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRE
YXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIHVpbnQzMl90ICogcHVuUHJvY2Vzc0lkKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2hvd0Rhc2hib2FyZCkoY2hhciAqIHBjaE92ZXJsYXlUb1Nob3cpOwor
ICAgICAgIFRyYWNrZWREZXZpY2VJbmRleF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
UHJpbWFyeURhc2hib2FyZERldmljZSkoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTaG93S2V5Ym9hcmQpKEVHYW1lcGFkVGV4dElucHV0TW9kZSBl
SW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBjaGFy
ICogcGNoRGVzY3JpcHRpb24sIHVpbnQzMl90IHVuQ2hhck1heCwgY2hhciAqIHBjaEV4aXN0aW5n
VGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFsdWUpOworICAgICAg
IEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dLZXlib2FyZEZv
ck92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUdhbWVwYWRUZXh0
SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1
dE1vZGUsIGNoYXIgKiBwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjaGFyICog
cGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1
ZSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRLZXlib2Fy
ZFRleHQpKGNoYXIgKiBwY2hUZXh0LCB1aW50MzJfdCBjY2hUZXh0KTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGlkZUtleWJvYXJkKSgpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKShFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90
ICogcG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSk7CisgICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KShW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRSZWN0Ml90IGF2b2lk
UmVjdCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2spKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCAqIHBNYXNr
UHJpbWl0aXZlcywgdWludDMyX3QgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludDMyX3QgdW5Qcmlt
aXRpdmVTaXplKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRPdmVybGF5RmxhZ3MpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
dWludDMyX3QgKiBwRmxhZ3MpOworICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dNZXNzYWdlT3ZlcmxheSkoY2hhciAqIHBjaFRleHQs
IGNoYXIgKiBwY2hDYXB0aW9uLCBjaGFyICogcGNoQnV0dG9uMFRleHQsIGNoYXIgKiBwY2hCdXR0
b24xVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjJUZXh0LCBjaGFyICogcGNoQnV0dG9uM1RleHQpOwor
fTsKKworc3RydWN0IFZSX0lWUlJlbmRlck1vZGVsc19GblRhYmxlCit7CisgICAgICAgRVZSUmVu
ZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRSZW5kZXJNb2RlbF9B
c3luYykoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgc3RydWN0IFJlbmRlck1vZGVsX3QgKiog
cHBSZW5kZXJNb2RlbCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZy
ZWVSZW5kZXJNb2RlbCkoc3RydWN0IFJlbmRlck1vZGVsX3QgKiBwUmVuZGVyTW9kZWwpOworICAg
ICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMb2FkVGV4
dHVyZV9Bc3luYykoVGV4dHVyZUlEX3QgdGV4dHVyZUlkLCBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4
dHVyZU1hcF90ICoqIHBwVGV4dHVyZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkZyZWVUZXh0dXJlKShzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICogcFRl
eHR1cmUpOworICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpMb2FkVGV4dHVyZUQzRDExX0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQg
KiBwRDNEMTFEZXZpY2UsIHZvaWQgKiogcHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgRVZSUmVu
ZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRJbnRvVGV4dHVyZUQz
RDExX0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQgKiBwRHN0VGV4dHVyZSk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZyZWVUZXh0dXJlRDNEMTEpKHZv
aWQgKiBwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxOYW1lKSh1aW50MzJfdCB1blJlbmRlck1vZGVsSW5kZXgs
IGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxOYW1lTGVu
KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlbmRlck1v
ZGVsQ291bnQpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRDb21wb25lbnRDb3VudCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSk7CisgICAgICAgdWlu
dDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnROYW1lKShjaGFyICog
cGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudEluZGV4LCBjaGFyICogcGNo
Q29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnROYW1lTGVuKTsKKyAgICAgICB1aW50
NjRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudEJ1dHRvbk1hc2spKGNo
YXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAgICAg
ICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudFJlbmRlck1v
ZGVsTmFtZSkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5h
bWUsIGNoYXIgKiBwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9u
ZW50UmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0Q29tcG9uZW50U3RhdGUpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIg
KiBwY2hDb21wb25lbnROYW1lLCBWUkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0
ZSwgc3RydWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QgKiBwU3RhdGUsIHN0
cnVjdCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICogcENvbXBvbmVudFN0YXRlKTsKKyAg
ICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVuZGVyTW9kZWxIYXNDb21wb25l
bnQpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFJlbmRlck1vZGVs
VGh1bWJuYWlsVVJMKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoVGh1bWJu
YWlsVVJMLCB1aW50MzJfdCB1blRodW1ibmFpbFVSTExlbiwgRVZSUmVuZGVyTW9kZWxFcnJvciAq
IHBlRXJyb3IpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
UmVuZGVyTW9kZWxPcmlnaW5hbFBhdGgpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIg
KiBwY2hPcmlnaW5hbFBhdGgsIHVpbnQzMl90IHVuT3JpZ2luYWxQYXRoTGVuLCBFVlJSZW5kZXJN
b2RlbEVycm9yICogcGVFcnJvcik7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bSkoRVZSUmVuZGVyTW9kZWxFcnJv
ciBlcnJvcik7Cit9OworCitzdHJ1Y3QgVlJfSVZSTm90aWZpY2F0aW9uc19GblRhYmxlCit7Cisg
ICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDcmVh
dGVOb3RpZmljYXRpb24pKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDY0
X3QgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgY2hhciAqIHBjaFRleHQs
IEVWUk5vdGlmaWNhdGlvblN0eWxlIHN0eWxlLCBzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3Qg
KiBwSW1hZ2UsIFZSTm90aWZpY2F0aW9uSWQgKiBwTm90aWZpY2F0aW9uSWQpOworICAgICAgIEVW
Uk5vdGlmaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlTm90aWZp
Y2F0aW9uKShWUk5vdGlmaWNhdGlvbklkIG5vdGlmaWNhdGlvbklkKTsKK307CisKK3N0cnVjdCBW
Ul9JVlJTZXR0aW5nc19GblRhYmxlCit7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSkoRVZSU2V0dGluZ3NFcnJvciBl
RXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTeW5jKShib29s
IGJGb3JjZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRCb29sKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBj
aFNldHRpbmdzS2V5LCBib29sIGJWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRJbnQzMikoY2hhciAqIHBj
aFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRp
bmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0RmxvYXQpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGZs
b2F0IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0U3RyaW5nKShjaGFyICogcGNoU2VjdGlvbiwgY2hh
ciAqIHBjaFNldHRpbmdzS2V5LCBjaGFyICogcGNoVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKiBw
ZUVycm9yKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm9vbCko
Y2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJv
ciAqIHBlRXJyb3IpOworICAgICAgIGludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRJbnQzMikoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZSU2V0
dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0RmxvYXQpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXks
IEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0U3RyaW5nKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRp
bmdzS2V5LCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdz
RXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
UmVtb3ZlU2VjdGlvbikoY2hhciAqIHBjaFNlY3Rpb24sIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVy
cm9yKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVtb3ZlS2V5SW5T
ZWN0aW9uKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0
aW5nc0Vycm9yICogcGVFcnJvcik7Cit9OworCitzdHJ1Y3QgVlJfSVZSU2NyZWVuc2hvdHNfRm5U
YWJsZQoreworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlJlcXVlc3RTY3JlZW5zaG90KShTY3JlZW5zaG90SGFuZGxlX3QgKiBwT3V0U2NyZWVuc2hv
dEhhbmRsZSwgRVZSU2NyZWVuc2hvdFR5cGUgdHlwZSwgY2hhciAqIHBjaFByZXZpZXdGaWxlbmFt
ZSwgY2hhciAqIHBjaFZSRmlsZW5hbWUpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkhvb2tTY3JlZW5zaG90KShFVlJTY3JlZW5zaG90VHlwZSAq
IHBTdXBwb3J0ZWRUeXBlcywgaW50IG51bVR5cGVzKTsKKyAgICAgICBFVlJTY3JlZW5zaG90VHlw
ZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUpKFNj
cmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90RXJyb3IgKiBw
RXJyb3IpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2Ny
ZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUpKFNjcmVlbnNob3RIYW5kbGVfdCBzY3JlZW5zaG90SGFu
ZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmlsZW5hbWVUeXBlLCBjaGFyICog
cGNoRmlsZW5hbWUsIHVpbnQzMl90IGNjaEZpbGVuYW1lLCBFVlJTY3JlZW5zaG90RXJyb3IgKiBw
RXJyb3IpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlVwZGF0ZVNjcmVlbnNob3RQcm9ncmVzcykoU2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNo
b3RIYW5kbGUsIGZsb2F0IGZsUHJvZ3Jlc3MpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRha2VTdGVyZW9TY3JlZW5zaG90KShTY3JlZW5zaG90
SGFuZGxlX3QgKiBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgY2hhciAqIHBjaFByZXZpZXdGaWxlbmFt
ZSwgY2hhciAqIHBjaFZSRmlsZW5hbWUpOworICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1pdFNjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5kbGVf
dCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjaGFyICogcGNoU291
cmNlUHJldmlld0ZpbGVuYW1lLCBjaGFyICogcGNoU291cmNlVlJGaWxlbmFtZSk7Cit9OworCitz
dHJ1Y3QgVlJfSVZSUmVzb3VyY2VzX0ZuVGFibGUKK3sKKyAgICAgICB1aW50MzJfdCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRTaGFyZWRSZXNvdXJjZSkoY2hhciAqIHBjaFJlc291cmNl
TmFtZSwgY2hhciAqIHBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4pOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVzb3VyY2VGdWxsUGF0aCkoY2hh
ciAqIHBjaFJlc291cmNlTmFtZSwgY2hhciAqIHBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgY2hh
ciAqIHBjaFBhdGhCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuKTsKK307CisKKworI2lmIDAK
Ky8vIEdsb2JhbCBlbnRyeSBwb2ludHMKK1NfQVBJIGludHB0cl90IFZSX0luaXRJbnRlcm5hbCgg
RVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZVR5cGUgKTsKK1NfQVBJ
IHZvaWQgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworU19BUEkgYm9vbCBWUl9Jc0htZFByZXNlbnQo
KTsKK1NfQVBJIGludHB0cl90IFZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIGNvbnN0IGNoYXIgKnBj
aEludGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvciApOworU19BUEkgYm9vbCBW
Ul9Jc1J1bnRpbWVJbnN0YWxsZWQoKTsKK1NfQVBJIGNvbnN0IGNoYXIgKiBWUl9HZXRWUkluaXRF
cnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKK1NfQVBJIGNvbnN0IGNoYXIgKiBW
Ul9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3Ig
KTsKKyNlbmRpZgorCisjZW5kaWYgLy8gX19PUEVOVlJfQVBJX0ZMQVRfSF9fCisKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA4ZDFmNzExNTlkYzM3ODVjMDllY2RlZDliZjQwZTU5MzllMjQ2NzAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgK
QEAgLTAsMCArMSwyNTQxIEBACisjcHJhZ21hIG9uY2UKKworLy8gb3BlbnZyX2RyaXZlci5oCisv
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKy8v
IER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmaWxlLiBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZSBkaXJl
Y3RseS4KKworI2lmbmRlZiBfT1BFTlZSX0RSSVZFUl9BUEkKKyNkZWZpbmUgX09QRU5WUl9EUklW
RVJfQVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisKKy8vIHZydHlwZXMuaAorI2lmbmRl
ZiBfSU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lOQ0xVREVfVlJUWVBFU19ICisKKy8vIEZv
cndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyB2dWxrYW4uaAorc3RydWN0IFZr
RGV2aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UOworc3RydWN0IFZrSW5zdGFuY2Vf
VDsKK3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lk
IHJlcXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEyUmVzb3VyY2U7CitzdHJ1Y3QgSUQzRDEy
Q29tbWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sKKworI2lmIGRlZmluZWQoX19saW51eF9f
KSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisgICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9m
IGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUg
c2V0IHRvCisgICAgICAgLy8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4
KSB0aGVzZSB0eXBlcyB3aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCisgICAgICAgLy8g
VGhlIDY0LWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBm
b3IgdGhlc2UgdHlwZXMgc2V0IHRvCisgICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdl
IHVzZSAjcHJhZ21hIHBhY2soNCkgb3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgorICAg
ICAgIC8vIFRoZSA2NC1iaXQgc3RydWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1i
aXQgc3RydWN0dXJlIHBhY2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0uCisgICAgICAgI3ByYWdtYSBw
YWNrKCBwdXNoLCA0ICkKKyNlbHNlCisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKyNl
bmRpZgorCit0eXBlZGVmIHZvaWQqIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90OwordHlwZWRlZiBp
bnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90OworCisvLyByaWdodC1o
YW5kZWQgc3lzdGVtCisvLyAreSBpcyB1cAorLy8gK3ggaXMgdG8gdGhlIHJpZ2h0CisvLyAteiBp
cyBnb2luZyBhd2F5IGZyb20geW91CisvLyBEaXN0YW5jZSB1bml0IGlzICBtZXRlcnMKK3N0cnVj
dCBIbWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsKK307CisKK3N0cnVjdCBI
bWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQgbVs0XVs0XTsKK307CisKK3N0cnVjdCBIbWRW
ZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3RvcjRf
dAoreworICAgICAgIGZsb2F0IHZbNF07Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yM2RfdAorewor
ICAgICAgIGRvdWJsZSB2WzNdOworfTsKKworc3RydWN0IEhtZFZlY3RvcjJfdAoreworICAgICAg
IGZsb2F0IHZbMl07Cit9OworCitzdHJ1Y3QgSG1kUXVhdGVybmlvbl90Cit7CisgICAgICAgZG91
YmxlIHcsIHgsIHksIHo7Cit9OworCitzdHJ1Y3QgSG1kQ29sb3JfdAoreworICAgICAgIGZsb2F0
IHIsIGcsIGIsIGE7Cit9OworCitzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAgSG1kVmVjdG9y
M190IHZDb3JuZXJzWyA0IF07Cit9OworCitzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIEht
ZFZlY3RvcjJfdCB2VG9wTGVmdDsKKyAgICAgICBIbWRWZWN0b3IyX3QgdkJvdHRvbVJpZ2h0Owor
fTsKKworLyoqIFVzZWQgdG8gcmV0dXJuIHRoZSBwb3N0LWRpc3RvcnRpb24gVVZzIGZvciBlYWNo
IGNvbG9yIGNoYW5uZWwuIAorKiBVVnMgcmFuZ2UgZnJvbSAwIHRvIDEgd2l0aCAwLDAgaW4gdGhl
IHVwcGVyIGxlZnQgY29ybmVyIG9mIHRoZSAKKyogc291cmNlIHJlbmRlciB0YXJnZXQuIFRoZSAw
LDAgdG8gMSwxIHJhbmdlIGNvdmVycyBhIHNpbmdsZSBleWUuICovCitzdHJ1Y3QgRGlzdG9ydGlv
bkNvb3JkaW5hdGVzX3QKK3sKKyAgICAgICBmbG9hdCByZlJlZFsyXTsKKyAgICAgICBmbG9hdCBy
ZkdyZWVuWzJdOworICAgICAgIGZsb2F0IHJmQmx1ZVsyXTsKK307CisKK2VudW0gRVZSRXllCit7
CisgICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEKK307CisKK2VudW0g
RVRleHR1cmVUeXBlCit7CisgICAgICAgVGV4dHVyZVR5cGVfRGlyZWN0WCA9IDAsIC8vIEhhbmRs
ZSBpcyBhbiBJRDNEMTFUZXh0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfT3BlbkdMID0gMSwgIC8v
IEhhbmRsZSBpcyBhbiBPcGVuR0wgdGV4dHVyZSBuYW1lIG9yIGFuIE9wZW5HTCByZW5kZXIgYnVm
ZmVyIG5hbWUsIGRlcGVuZGluZyBvbiBzdWJtaXQgZmxhZ3MKKyAgICAgICBUZXh0dXJlVHlwZV9W
dWxrYW4gPSAyLCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgVlJWdWxrYW5UZXh0dXJlRGF0
YV90IHN0cnVjdHVyZQorICAgICAgIFRleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsIC8vIEhhbmRs
ZSBpcyBhIG1hY09TIGNyb3NzLXByb2Nlc3Mtc2hhcmFibGUgSU9TdXJmYWNlCisgICAgICAgVGV4
dHVyZVR5cGVfRGlyZWN0WDEyID0gNCwgLy8gSGFuZGxlIGlzIGEgcG9pbnRlciB0byBhIEQzRDEy
VGV4dHVyZURhdGFfdCBzdHJ1Y3R1cmUKK307CisKK2VudW0gRUNvbG9yU3BhY2UKK3sKKyAgICAg
ICBDb2xvclNwYWNlX0F1dG8gPSAwLCAgICAgICAvLyBBc3N1bWVzICdnYW1tYScgZm9yIDgtYml0
IHBlciBjb21wb25lbnQgZm9ybWF0cywgb3RoZXJ3aXNlICdsaW5lYXInLiAgVGhpcyBtaXJyb3Jz
IHRoZSBEWEdJIGZvcm1hdHMgd2hpY2ggaGF2ZSBfU1JHQiB2YXJpYW50cy4KKyAgICAgICBDb2xv
clNwYWNlX0dhbW1hID0gMSwgICAgICAgLy8gVGV4dHVyZSBkYXRhIGNhbiBiZSBkaXNwbGF5ZWQg
ZGlyZWN0bHkgb24gdGhlIGRpc3BsYXkgd2l0aG91dCBhbnkgY29udmVyc2lvbiAoYS5rLmEuIGRp
c3BsYXkgbmF0aXZlIGZvcm1hdCkuCisgICAgICAgQ29sb3JTcGFjZV9MaW5lYXIgPSAyLCAgICAg
ICAvLyBTYW1lIGFzIGdhbW1hIGJ1dCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBsaW5lYXIgcmVw
cmVzZW50YXRpb24gdXNpbmcgRFhHSSdzIHNSR0IgY29udmVyc2lvbiBhbGdvcml0aG0uCit9Owor
CitzdHJ1Y3QgVGV4dHVyZV90Cit7CisgICAgICAgdm9pZCogaGFuZGxlOyAvLyBTZWUgRVRleHR1
cmVUeXBlIGRlZmluaXRpb24gYWJvdmUKKyAgICAgICBFVGV4dHVyZVR5cGUgZVR5cGU7CisgICAg
ICAgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9OworCisvLyBIYW5kbGUgdG8gYSBzaGFyZWQg
dGV4dHVyZSAoSEFORExFIG9uIFdpbmRvd3Mgb2J0YWluZWQgdXNpbmcgT3BlblNoYXJlZFJlc291
cmNlKS4KK3R5cGVkZWYgdWludDY0X3QgU2hhcmVkVGV4dHVyZUhhbmRsZV90OworI2RlZmluZSBJ
TlZBTElEX1NIQVJFRF9URVhUVVJFX0hBTkRMRSAgICAgICAoKHZyOjpTaGFyZWRUZXh0dXJlSGFu
ZGxlX3QpMCkKKworZW51bSBFVHJhY2tpbmdSZXN1bHQKK3sKKyAgICAgICBUcmFja2luZ1Jlc3Vs
dF9VbmluaXRpYWxpemVkICAgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgICAgVHJhY2tp
bmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyAgICAgICA9IDEwMCwKKyAgICAgICBUcmFj
a2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlICAgICAgID0gMTAxLAorCisgICAgICAg
VHJhY2tpbmdSZXN1bHRfUnVubmluZ19PSyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MCwKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgICAgICAgICAgICAg
ID0gMjAxLAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jl
c3BvbnNlU2l6ZSA9IDMyNzY4OworCisvKiogVXNlZCB0byBwYXNzIGRldmljZSBJRHMgdG8gQVBJ
IGNhbGxzICovCit0eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZpY2VJbmRleF90Oworc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKK3N0YXRpYyBj
b25zdCB1aW50MzJfdCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7CitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gMHhGRkZGRkZGRTsKK3N0
YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDB4RkZG
RkZGRkY7CisKKy8qKiBEZXNjcmliZXMgd2hhdCBraW5kIG9mIG9iamVjdCBpcyBiZWluZyB0cmFj
a2VkIGF0IGEgZ2l2ZW4gSUQgKi8KK2VudW0gRVRyYWNrZWREZXZpY2VDbGFzcworeworICAgICAg
IFRyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gdGhlIElEIHdhcyBub3QgdmFsaWQuCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0hN
RCA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIZWFkLU1vdW50ZWQg
RGlzcGxheXMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfQ29udHJvbGxlciA9IDIsICAgICAg
ICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBjb250cm9sbGVycworICAgICAgIFRyYWNrZWREZXZp
Y2VDbGFzc19HZW5lcmljVHJhY2tlciA9IDMsICAgICAgICAgICAgICAvLyBHZW5lcmljIHRyYWNr
ZXJzLCBzaW1pbGFyIHRvIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX1Ry
YWNraW5nUmVmZXJlbmNlID0gNCwgICAgICAgLy8gQ2FtZXJhIGFuZCBiYXNlIHN0YXRpb25zIHRo
YXQgc2VydmUgYXMgdHJhY2tpbmcgcmVmZXJlbmNlIHBvaW50cworfTsKKworCisvKiogRGVzY3Jp
YmVzIHdoYXQgc3BlY2lmaWMgcm9sZSBhc3NvY2lhdGVkIHdpdGggYSB0cmFja2VkIGRldmljZSAq
LworZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgVHJhY2tlZENvbnRyb2xs
ZXJSb2xlX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
SW52YWxpZCB2YWx1ZSBmb3IgY29udHJvbGxlciB0eXBlCisgICAgICAgVHJhY2tlZENvbnRyb2xs
ZXJSb2xlX0xlZnRIYW5kID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVmdCBoYW5kCisgICAgICAgVHJh
Y2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0SGFuZCA9IDIsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFRyYWNrZWQgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmlnaHQgaGFuZAorfTsK
KworCisvKiogZGVzY3JpYmVzIGEgc2luZ2xlIHBvc2UgZm9yIGEgdHJhY2tlZCBvYmplY3QgKi8K
K3N0cnVjdCBUcmFja2VkRGV2aWNlUG9zZV90Cit7CisgICAgICAgSG1kTWF0cml4MzRfdCBtRGV2
aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlbG9jaXR5IGluIHRyYWNrZXIgc3BhY2UgaW4g
bS9zCisgICAgICAgSG1kVmVjdG9yM190IHZBbmd1bGFyVmVsb2NpdHk7ICAgICAgICAgICAgICAv
LyBhbmd1bGFyIHZlbG9jaXR5IGluIHJhZGlhbnMvcyAoPykKKyAgICAgICBFVHJhY2tpbmdSZXN1
bHQgZVRyYWNraW5nUmVzdWx0OworICAgICAgIGJvb2wgYlBvc2VJc1ZhbGlkOworCisgICAgICAg
Ly8gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgZm9yIHRo
aXMgc3BvdCBpbiB0aGUgcG9zZSBhcnJheS4KKyAgICAgICAvLyBJdCBjb3VsZCBnbyBmcm9tIHRy
dWUgdG8gZmFsc2UgaWYgdGhlIHVzZXIgdW5wbHVncyB0aGUgZGV2aWNlLgorICAgICAgIGJvb2wg
YkRldmljZUlzQ29ubmVjdGVkOworfTsKKworLyoqIElkZW50aWZpZXMgd2hpY2ggc3R5bGUgb2Yg
dHJhY2tpbmcgb3JpZ2luIHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byB1c2UKKyogZm9yIHRoZSBw
b3NlcyBpdCBpcyByZXF1ZXN0aW5nICovCitlbnVtIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luCit7
CisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCA9IDAsICAgICAgICAgICAgICAvLyBQb3Nl
cyBhcmUgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNlYXRlZCB6ZXJvIHBvc2UKKyAgICAgICBU
cmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgPSAxLCAgICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQg
cmVsYXRpdmUgdG8gdGhlIHNhZmUgYm91bmRzIGNvbmZpZ3VyZWQgYnkgdGhlIHVzZXIKKyAgICAg
ICBUcmFja2luZ1VuaXZlcnNlUmF3QW5kVW5jYWxpYnJhdGVkID0gMiwgICAgICAgLy8gUG9zZXMg
YXJlIHByb3ZpZGVkIGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBkZWZpbmVkIGJ5IHRoZSBkcml2
ZXIuICBJdCBoYXMgWSB1cCBhbmQgaXMgdW5pZmllZCBmb3IgZGV2aWNlcyBvZiB0aGUgc2FtZSBk
cml2ZXIuIFlvdSB1c3VhbGx5IGRvbid0IHdhbnQgdGhpcyBvbmUuCit9OworCisvLyBSZWZlcnMg
dG8gYSBzaW5nbGUgY29udGFpbmVyIG9mIHByb3BlcnRpZXMKK3R5cGVkZWYgdWludDY0X3QgUHJv
cGVydHlDb250YWluZXJIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgUHJvcGVydHlUeXBlVGFn
X3Q7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGtfdWxJbnZhbGlk
UHJvcGVydHlDb250YWluZXIgPSAwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5JbnZhbGlkUHJvcGVydHlUYWcgPSAwOworCisvLyBVc2UgdGhlc2UgdGFncyB0byBzZXQvZ2V0
IGNvbW1vbiB0eXBlcyBhcyBzdHJ1Y3QgcHJvcGVydGllcworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7CitzdGF0aWMgY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3Qga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OworCitzdGF0aWMgY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3Qga191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWcgPSAyMDsKK3N0YXRp
YyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4NDRQcm9wZXJ0eVRhZyA9IDIx
Oworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3IzUHJvcGVydHlU
YWcgPSAyMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yNFBy
b3BlcnR5VGFnID0gMjM7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSGlk
ZGVuQXJlYVByb3BlcnR5VGFnID0gMzA7CisKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdf
dCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7CitzdGF0aWMgY29uc3Qg
UHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7
CisKKworLyoqIEVhY2ggZW50cnkgaW4gdGhpcyBlbnVtIHJlcHJlc2VudHMgYSBwcm9wZXJ0eSB0
aGF0IGNhbiBiZSByZXRyaWV2ZWQgYWJvdXQgYQorKiB0cmFja2VkIGRldmljZS4gTWFueSBmaWVs
ZHMgYXJlIG9ubHkgdmFsaWQgZm9yIG9uZSBFVHJhY2tlZERldmljZUNsYXNzLiAqLworZW51bSBF
VHJhY2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9JbnZhbGlkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAg
ICAvLyBnZW5lcmFsIHByb3BlcnRpZXMgdGhhdCBhcHBseSB0byBhbGwgZGV2aWNlIGNsYXNzZXMK
KyAgICAgICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMDAwLAorICAgICAgIFByb3BfTW9kZWxOdW1iZXJfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAxLAorICAgICAgIFByb3BfU2Vy
aWFsTnVtYmVyX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAy
LAorICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDAzLAorICAgICAgIFByb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA0LAorICAgICAgIFByb3BfTWFu
dWZhY3R1cmVyTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDA1LAor
ICAgICAgIFByb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgPSAxMDA2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDA3LAorICAgICAgIFByb3BfQWxsV2lyZWxlc3NEb25n
bGVEZXNjcmlwdGlvbnNfU3RyaW5nICAgICAgID0gMTAwOCwKKyAgICAgICBQcm9wX0Nvbm5lY3Rl
ZFdpcmVsZXNzRG9uZ2xlX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTAwOSwKKyAgICAg
ICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDEwLAorICAgICAgIFByb3BfRGV2aWNlSXNDaGFyZ2luZ19Cb29sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTEsCisgICAgICAgUHJvcF9EZXZpY2VCYXR0
ZXJ5UGVyY2VudGFnZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gMTAxMiwgLy8gMCBpcyBl
bXB0eSwgMSBpcyBmdWxsCisgICAgICAgUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01hdHJp
eDM0ICAgICAgICAgICAgICA9IDEwMTMsCisgICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFp
bGFibGVfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gMTAxNCwKKyAgICAgICBQcm9wX0Zpcm13
YXJlX01hbnVhbFVwZGF0ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxNSwK
KyAgICAgICBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmcgICAgICAgICAgICAg
ID0gMTAxNiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTAxNywKKyAgICAgICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxOCwKKyAgICAgICBQcm9w
X0ZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIwLAorICAgICAgIFByb3BfUmFkaW9WZXJz
aW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDIxLAorICAg
ICAgIFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAyMiwKKyAgICAgICBQcm9wX0Jsb2NrU2VydmVyU2h1dGRvd25fQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjMsCisgICAgICAgUHJvcF9DYW5VbmlmeUNvb3Jk
aW5hdGVTeXN0ZW1XaXRoSG1kX0Jvb2wgICAgICAgPSAxMDI0LAorICAgICAgIFByb3BfQ29udGFp
bnNQcm94aW1pdHlTZW5zb3JfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gMTAyNSwKKyAgICAg
ICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sICAgICAgICAgICAgICA9IDEw
MjYsCisgICAgICAgUHJvcF9EZXZpY2VDYW5Qb3dlck9mZl9Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMjcsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWlu
Z1RhcmdldF9TdHJpbmcgICAgICAgICAgICAgID0gMTAyOCwKKyAgICAgICBQcm9wX0RldmljZUNs
YXNzX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDI5
LAorICAgICAgIFByb3BfSGFzQ2FtZXJhX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDMwLAorICAgICAgIFByb3BfRHJpdmVyVmVyc2lvbl9T
dHJpbmcgICAgICAgICAgICAgICAgICAgPSAxMDMxLAorICAgICAgIFByb3BfRmlybXdhcmVfRm9y
Y2VVcGRhdGVSZXF1aXJlZF9Cb29sICAgICAgPSAxMDMyLAorICAgICAgIFByb3BfVml2ZVN5c3Rl
bUJ1dHRvbkZpeFJlcXVpcmVkX0Jvb2wgICAgICAgICAgICAgID0gMTAzMywKKyAgICAgICBQcm9w
X1BhcmVudERyaXZlcl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTAzNCwKKworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tl
ZERldmljZUNsYXNzX0hNRAorICAgICAgIFByb3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAwLAorICAgICAgIFByb3BfU2Vjb25kc0Zy
b21Wc3luY1RvUGhvdG9uc19GbG9hdCAgICAgICAgICAgICAgPSAyMDAxLAorICAgICAgIFByb3Bf
RGlzcGxheUZyZXF1ZW5jeV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAyMDAyLAorICAgICAgIFByb3BfVXNlcklwZE1ldGVyc19GbG9hdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDAzLAorICAgICAgIFByb3BfQ3VycmVudFVuaXZlcnNlSWRf
VWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNCwgCisgICAgICAgUHJvcF9Q
cmV2aW91c1VuaXZlcnNlSWRfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAw
NSwgCisgICAgICAgUHJvcF9EaXNwbGF5RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAg
ICAgICAgICAgID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDcsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDgs
CisgICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAwOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ1NjYWxlX0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTAsCisgICAgICAgUHJvcF9FZGlk
VmVuZG9ySURfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMTEsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUxlZnRfU3RyaW5nICAgICAgICAgICAg
ICA9IDIwMTIsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVJpZ2h0X1N0cmluZyAgICAgICAg
ICAgICA9IDIwMTMsCisgICAgICAgUHJvcF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAxNCwKKyAgICAgICBQcm9wX0VkaWRQcm9kdWN0SURf
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxNSwKKyAgICAgICBQ
cm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAgICAgICAgID0g
MjAxNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAxNywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9h
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE4LAorICAgICAgIFByb3Bf
RGlzcGxheUdDU2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAxOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAyMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIxLAorICAgICAgIFByb3BfTGVu
c0NlbnRlckxlZnRVX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MjIsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMjAyMywKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxv
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyNCwKKyAgICAgICBQcm9w
X0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyNSwKKyAgICAgICBQcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCAgICAg
ICAgICAgICAgICAgICAgID0gMjAyNiwKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lv
bl9VaW50NjQgICAgICAgICAgICAgICAgICAgICA9IDIwMjcsCisgICAgICAgUHJvcF9DYW1lcmFG
aXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyAgICAgICAgICAgICAgPSAyMDI4LAorICAgICAgIFBy
b3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ICAgICAg
ICAgICAgICA9IDIwMzAsCisgICAgICAgUHJvcF9EaXNwbGF5SGFyZHdhcmVWZXJzaW9uX1VpbnQ2
NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAzMiwKKyAgICAgICBQcm9wX0Nh
bWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyICAgICAgICAgICAgICAgICAgICAgPSAyMDMzLAor
ICAgICAgIFByb3BfU2NyZWVuc2hvdEhvcml6b250YWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQg
PSAyMDM0LAorICAgICAgIFByb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVz
X0Zsb2F0ID0gMjAzNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlTdXBwcmVzc2VkX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNiwKKyAgICAgICBQcm9wX0Rpc3BsYXlB
bGxvd05pZ2h0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzNywKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDM4LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM5LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1h
Z2VOdW1DaGFubmVsc19JbnQzMiAgICAgICAgICAgICAgPSAyMDQwLAorICAgICAgIFByb3BfRGlz
cGxheU1DSW1hZ2VEYXRhX0JpbmFyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNDEs
CisgICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjA0MiwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdW5pcXVl
IHRvIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyCisgICAgICAgUHJvcF9BdHRhY2hlZERl
dmljZUlkX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDAsCisgICAgICAg
UHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDMwMDEsCisgICAgICAgUHJvcF9BeGlzMFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMDIsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVW
UkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczFUeXBlX0ludDMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAzLCAvLyBSZXR1cm4gdmFsdWUg
aXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMyVHlwZV9J
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNCwgLy8g
UmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJv
cF9BeGlzM1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDMwMDUsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlw
ZQorICAgICAgIFByb3BfQXhpczRUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAzMDA2LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250
cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDcsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBl
IEVUcmFja2VkQ29udHJvbGxlclJvbGUKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUg
dW5pcXVlIHRvIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZQorICAgICAgIFBy
b3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCAgICAgICAgICAgICAgICAgICAgID0gNDAw
MCwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3UmlnaHREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAg
ICAgICAgICAgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0
ICAgICAgICAgICAgICAgICAgICAgPSA0MDAyLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdCb3R0
b21EZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAzLAorICAgICAgIFByb3Bf
VHJhY2tpbmdSYW5nZU1pbmltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNCwKKyAg
ICAgICBQcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICA9
IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA0MDA2LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1c2VkIGZvciB1c2VyIGludGVyZmFjZSBsaWtlIGljb25zIG5hbWVzCisgICAgICAgUHJv
cF9JY29uUGF0aE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MDAwLCAvLyB1c3VhbGx5IGEgZGlyZWN0b3J5IG5hbWVkICJpY29ucyIKKyAgICAg
ICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNTAwMSwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRp
b24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3Bf
TmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgICAgICAgICAgICAgID0gNTAwMiwg
Ly8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBo
ZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERl
dmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyAgICAgICA9IDUwMDMsIC8vIFBORyBmb3Igc3RhdGlj
IGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMy
IGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeV9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICA9IDUwMDQsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJ
RiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMK
KyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyAgICAgICAg
ICAgICAgPSA1MDA1LCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlv
biwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSA1
MDA2LCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDcsIC8vIFBO
RyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNl
dHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VB
bGVydExvd19TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDgsIC8vIFBORyBmb3Igc3Rh
dGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMy
eDMyIGZvciBvdGhlcnMKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBieSBo
ZWxwZXJzLCBidXQgYXJlIG9wYXF1ZSB0byBhcHBsaWNhdGlvbnMKKyAgICAgICBQcm9wX0Rpc3Bs
YXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUx
MDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfRW5kICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTE1MCwKKworICAgICAgIC8vIFByb3BlcnRpZXMgdGhhdCBhcmUg
dW5pcXVlIHRvIGRyaXZlcnMKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAwLAorICAgICAgIFByb3BfSW5zdGFs
bFBhdGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2
MDAxLAorCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBkZWJ1
ZyBkYXRhIGluIHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgUHJvcF9WZW5kb3JTcGVjaWZp
Y19SZXNlcnZlZF9TdGFydCAgICAgICAgICAgICAgICAgICAgID0gMTAwMDAsCisgICAgICAgUHJv
cF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgICAgICAgICA9IDEwOTk5
LAorfTsKKworLyoqIE5vIHN0cmluZyBwcm9wZXJ0eSB3aWxsIGV2ZXIgYmUgbG9uZ2VyIHRoYW4g
dGhpcyBsZW5ndGggKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4UHJvcGVydHlTdHJp
bmdTaXplID0gMzIgKiAxMDI0OworCisvKiogVXNlZCB0byByZXR1cm4gZXJyb3JzIHRoYXQgb2Nj
dXIgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuICovCitlbnVtIEVUcmFja2VkUHJvcGVydHlFcnJv
cgoreworICAgICAgIFRyYWNrZWRQcm9wX1N1Y2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdE
ZXZpY2VDbGFzcyAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAgICAgICBUcmFja2VkUHJvcF9C
dWZmZXJUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMsCisgICAgICAgVHJh
Y2tlZFByb3BfVW5rbm93blByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNCwg
Ly8gRHJpdmVyIGhhcyBub3Qgc2V0IHRoZSBwcm9wZXJ0eSAoYW5kIG1heSBub3QgZXZlcikuCisg
ICAgICAgVHJhY2tlZFByb3BfSW52YWxpZERldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyICAgICAgICAg
ICAgICA9IDYsCisgICAgICAgVHJhY2tlZFByb3BfVmFsdWVOb3RQcm92aWRlZEJ5RGV2aWNlICAg
ICAgID0gNywKKyAgICAgICBUcmFja2VkUHJvcF9TdHJpbmdFeGNlZWRzTWF4aW11bUxlbmd0aCAg
ICAgICA9IDgsCisgICAgICAgVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gOSwgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzbid0IGtub3duIHll
dCwgYnV0IGlzIGV4cGVjdGVkIHNvb24uIENhbGwgYWdhaW4gbGF0ZXIuCisgICAgICAgVHJhY2tl
ZFByb3BfUGVybWlzc2lvbkRlbmllZCAgICAgICAgICAgICAgICAgICAgID0gMTAsCisgICAgICAg
VHJhY2tlZFByb3BfSW52YWxpZE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgID0gMTEsCit9
OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjb250cm9sIHdoYXQgcGFydCBvZiB0
aGUgcHJvdmlkZWQgdGV4dHVyZSB3aWxsIGJlIHVzZWQgaW4gdGhlCisqIGZyYW1lIGJ1ZmZlci4g
Ki8KK3N0cnVjdCBWUlRleHR1cmVCb3VuZHNfdAoreworICAgICAgIGZsb2F0IHVNaW4sIHZNaW47
CisgICAgICAgZmxvYXQgdU1heCwgdk1heDsKK307CisKKworLyoqIEFsbG93cyB0aGUgYXBwbGlj
YXRpb24gdG8gY29udHJvbCBob3cgc2NlbmUgdGV4dHVyZXMgYXJlIHVzZWQgYnkgdGhlIGNvbXBv
c2l0b3Igd2hlbiBjYWxsaW5nIFN1Ym1pdC4gKi8KK2VudW0gRVZSU3VibWl0RmxhZ3MKK3sKKyAg
ICAgICAvLyBTaW1wbGUgcmVuZGVyIHBhdGguIEFwcCBzdWJtaXRzIHJlbmRlcmVkIGxlZnQgYW5k
IHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBubyBsZW5zIGRpc3RvcnRpb24gY29ycmVjdGlvbiBhcHBs
aWVkLgorICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMHgwMCwKKworICAgICAgIC8vIEFwcCBzdWJt
aXRzIGZpbmFsIGxlZnQgYW5kIHJpZ2h0IGV5ZSBpbWFnZXMgd2l0aCBsZW5zIGRpc3RvcnRpb24g
YWxyZWFkeSBhcHBsaWVkIChsZW5zIGRpc3RvcnRpb24gbWFrZXMgdGhlIGltYWdlcyBhcHBlYXIK
KyAgICAgICAvLyBiYXJyZWwgZGlzdG9ydGVkIHdpdGggY2hyb21hdGljIGFiZXJyYXRpb24gY29y
cmVjdGlvbiBhcHBsaWVkKS4gVGhlIGFwcCB3b3VsZCBoYXZlIHVzZWQgdGhlIGRhdGEgcmV0dXJu
ZWQgYnkKKyAgICAgICAvLyB2cjo6SVZSU3lzdGVtOjpDb21wdXRlRGlzdG9ydGlvbigpIHRvIGFw
cGx5IHRoZSBjb3JyZWN0IGRpc3RvcnRpb24gdG8gdGhlIHJlbmRlcmVkIGltYWdlcyBiZWZvcmUg
Y2FsbGluZyBTdWJtaXQoKS4KKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBw
bGllZCA9IDB4MDEsCisKKyAgICAgICAvLyBJZiB0aGUgdGV4dHVyZSBwb2ludGVyIHBhc3NlZCBp
biBpcyBhY3R1YWxseSBhIHJlbmRlcmJ1ZmZlciAoZS5nLiBmb3IgTVNBQSBpbiBPcGVuR0wpIHRo
ZW4gc2V0IHRoaXMgZmxhZy4KKyAgICAgICBTdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAweDAyLAor
CisgICAgICAgLy8gRG8gbm90IHVzZQorICAgICAgIFN1Ym1pdF9SZXNlcnZlZCA9IDB4MDQsCit9
OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxrYW4gdGV4dHVyZXMgdG8gSVZS
Q29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3BlblZSX1NodXRkb3duIGJl
Zm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVjdCBWUlZ1bGthblRleHR1
cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsgLy8gVmtJbWFnZQorICAgICAg
IFZrRGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNpY2FsRGV2aWNlX1QgKm1fcFBo
eXNpY2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9wSW5zdGFuY2U7CisgICAgICAg
VmtRdWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4
OworICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQsIG1fbkZvcm1hdCwgbV9uU2Ft
cGxlQ291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBEM0QxMiB0ZXh0
dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJf
U2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IEQz
RDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291cmNlICptX3BSZXNvdXJjZTsK
KyAgICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRRdWV1ZTsKKyAgICAgICB1aW50
MzJfdCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2YgdGhlIG92ZXJhbGwgc3lzdGVt
IG9yIHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQoreworICAgICAgIFZSU3RhdGVf
VW5kZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAwLAorICAgICAgIFZSU3RhdGVf
U2VhcmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGluZ19BbGVydCA9IDIsCisgICAg
ICAgVlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCisg
ICAgICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJTdGF0ZV9TdGFuZGJ5ID0gNiwK
KyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9OworCisvKiogVGhlIHR5cGVz
IG9mIGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdoYXQgdGhlIHBhcmFtZXRlcnMg
bWVhbiBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAg
ICBWUkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZh
dGVkICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFj
dGl2YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRhdGVk
ICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmlj
ZVVzZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAgICAgIFZSRXZlbnRfSXBkQ2hh
bmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJF
dmVudF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAgICAg
VlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCisgICAg
ICAgVlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAgICAgPSAxMDgsCisgICAgICAg
VlJFdmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAgICAgICAgPSAxMDksCisgICAg
ICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gMTEwLAorICAg
ICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTExLAorCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZlbnRf
QnV0dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwgLy8gZGF0YSBp
cyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAgIFZS
RXZlbnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMywgLy8g
ZGF0YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBWUkV2ZW50X01vdXNlTW92ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBW
UkV2ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMSwg
Ly8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25VcCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRf
Rm9jdXNFbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDMsIC8vIGRh
dGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRm9jdXNMZWF2ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZl
bnRfU2Nyb2xsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDUs
IC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRf
T3ZlcmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gMzA3LCAvLyBkYXRhIGlz
IG92ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAgICAgVlJFdmVudF9JbnB1dEZvY3VzQ2FwdHVy
ZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMCwgLy8gZGF0YSBpcyBwcm9jZXNzIERFUFJFQ0FU
RUQKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCAgICAgICAgICAgICAgICAgICAg
ID0gNDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAorICAgICAgIFZSRXZlbnRfU2Nl
bmVGb2N1c0xvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDIsIC8vIGRhdGEgaXMg
cHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCAgICAgICAgICAgICAgICAg
ICAgID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGlj
YXRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDQwNCwgLy8gZGF0YSBpcyBwcm9jZXNzIC0gVGhl
IEFwcCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2VuZSBjaGFuZ2VkICh1c3VhbGx5IHRvIG9yIGZy
b20gdGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCAgICAg
ICAgICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBOZXcgYXBwIGdvdCBh
Y2Nlc3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgICAgPSA0MDYsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZS
RXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsIC8v
IGRhdGEgaXMgcHJvY2VzcworCisgICAgICAgVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzICAgICAg
ICAgICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRv
IHJlcXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMgdGVtcG9yYXJpbHkKKyAgICAgICBWUkV2ZW50
X1Nob3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9IDQxMSwgLy8gU2VudCB0byB0
aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCByZXN0b3JpbmcgcmVuZGVyIG1vZGVsIHZp
c2liaWxpdHkKKworICAgICAgIFZSRXZlbnRfT3ZlcmxheVNob3duICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gNTAwLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUhpZGRlbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwMSwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEFjdGl2YXRl
ZCAgICAgICAgICAgICAgICAgICAgID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkRGVh
Y3RpdmF0ZWQgICAgICAgICAgICAgID0gNTAzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkVGh1
bWJTZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQsIC8vIFNlbnQgdG8gdGhlIG92ZXJsYXkgbWFu
YWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVk
ICAgICAgICAgICAgICAgICAgICAgPSA1MDUsIC8vIFNlbnQgdG8gdGhlIG92ZXJsYXkgbWFuYWdl
ciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfUmVzZXREYXNoYm9hcmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MDYsIC8vIFNlbmQgdG8gdGhlIG92ZXJsYXkgbWFuYWdl
cgorICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBkYXNoYm9hcmQgdG8gcmVuZGVyIGEgdG9hc3Qg
LSBkYXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQKKyAgICAgICBWUkV2ZW50X0ltYWdlTG9hZGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwOCwgLy8gU2VudCB0byBvdmVy
bGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5RnJvbUZpbGUgY2FsbCBmaW5p
c2hlcyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8ga2V5Ym9hcmQgcmVuZGVyZXIgaW4gdGhlIGRh
c2hib2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBWUkV2ZW50X0hpZGVLZXlib2FyZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUxMCwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBp
biB0aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAgICAgICBWUkV2ZW50X092ZXJsYXlHYW1lcGFk
Rm9jdXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNlbnQgdG8gYW4gb3ZlcmxheSB3aGVuIElWUk92
ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gaXQKKyAgICAgICBWUkV2ZW50X092
ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAgICAgICA9IDUxMiwgLy8gU2VuZCB0byBhbiBv
dmVybGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQgZm9jdXMgYW5kIElWUk92ZXJsYXk6OlNldEZv
Y3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRoaW5nIGVsc2UKKyAgICAgICBWUkV2ZW50X092
ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2Fy
ZEd1aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEd1
aWRlQnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1LAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hv
dFRyaWdnZXJlZCAgICAgICAgICAgICAgICAgICAgID0gNTE2LCAvLyBTY3JlZW5zaG90IGJ1dHRv
biBjb21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJkIHNob3VsZCByZXF1ZXN0IGEgc2NyZWVuc2hv
dAorICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9y
IFNldE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBsb2FkCisgICAgICAgVlJFdmVudF9EYXNoYm9h
cmRPdmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAgPSA1MTgsCisKKyAgICAgICAvLyBTY3JlZW5z
aG90IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkgdnJjbGllbnQgYXBwbGljYXRpb24gdG8gY29t
cG9zaXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRh
a2VuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMSwgLy8gU2VudCBieSBj
b21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90IGhhcyBiZWVu
IHRha2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9u
IHRoYXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRvIGJlIHRha2VuCisgICAgICAgVlJFdmVudF9T
dWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAgICAgICAgICAgID0gNTIzLCAvLyBTZW50IGJ5
IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNjcmVlbnNob3Qg
d2FzIHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9h
cmQgICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRo
YXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVkCisKKyAgICAgICBWUkV2ZW50
X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkICAgICAgID0gNTI1LAorCisgICAgICAgVlJF
dmVudF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAs
CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0JlZ2luSW50ZXJhY3Rp
b24gICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fRGVzdHJveWVkICAg
ICAgICAgICAgICAgICAgICAgPSA2MDMsCisKKyAgICAgICBWUkV2ZW50X1F1aXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDAsIC8vIGRhdGEgaXMg
cHJvY2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDcwMSwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJF
dmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAgICAgICAgICAgICAgICAgICAgPSA3MDIsIC8v
IGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDcwMywgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJF
dmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNzA0
LCAvLyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQgdGhhdCBTdGVhbVZSIHNodXQgZG93bgorCisg
ICAgICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAg
ID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2VkICAgICAg
ICAgICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdl
ZCAgICAgICAgICAgICAgPSA4MDIsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVTZXR0aW5nc0hh
dmVDaGFuZ2VkICAgICAgID0gODAzLAorICAgICAgIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNl
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgwNCwKKworICAgICAgIFZSRXZlbnRfQXVk
aW9TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDgyMCwKKworICAgICAgIFZSRXZl
bnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDg1MCwKKyAgICAg
ICBWUkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODUxLAor
ICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgPSA4NTIs
CisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODUz
LAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0g
ODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAg
ICA9IDg1NSwKKworICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDkwMCwKKworICAgICAgIFZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwKKworICAgICAgIFZSRXZl
bnRfRmlybXdhcmVVcGRhdGVTdGFydGVkICAgICAgICAgICAgICAgICAgICAgPSAxMTAwLAorICAg
ICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCAgICAgICAgICAgICAgICAgICAgID0g
MTEwMSwKKworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTIwMCwKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwMSwKKyAgICAgICBWUkV2ZW50X0tleWJv
YXJkRG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAyLCAvLyBTZW50
IHdoZW4gRE9ORSBidXR0b24gY2xpY2tlZCBvbiBrZXlib2FyZAorCisgICAgICAgVlJFdmVudF9B
cHBsaWNhdGlvblRyYW5zaXRpb25TdGFydGVkICAgICAgICAgICAgICA9IDEzMDAsCisgICAgICAg
VlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25BYm9ydGVkICAgICAgICAgICAgICA9IDEzMDEs
CisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkICAgICAg
ID0gMTMwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMzAzLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25NaW1l
VHlwZUxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzA0LAorICAgICAgIFZSRXZl
bnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorCisg
ICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd1Nob3duICAgICAgICAgICAgICA9
IDE0MDAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiAgICAg
ICAgICAgICAgPSAxNDAxLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9DaGFwZXJvbmVCb3Vu
ZHNTaG93biAgICAgICAgICAgICAgPSAxNDEwLAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9D
aGFwZXJvbmVCb3VuZHNIaWRkZW4gICAgICAgPSAxNDExLAorCisgICAgICAgVlJFdmVudF9UcmFj
a2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gID0gMTUwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNr
ZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtICAgPSAxNTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tl
ZENhbWVyYV9QYXVzZVZpZGVvU3RyZWFtICA9IDE1MDIsCisgICAgICAgVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1Jlc3VtZVZpZGVvU3RyZWFtID0gMTUwMywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfRWRpdGluZ1N1cmZhY2UgICAgPSAxNTUwLAorCisgICAgICAgVlJFdmVudF9QZXJmb3Jt
YW5jZVRlc3RfRW5hYmxlQ2FwdHVyZSAgICAgICA9IDE2MDAsCisgICAgICAgVlJFdmVudF9QZXJm
b3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgICAgICAgPSAxNjAxLAorICAgICAgIFZSRXZlbnRf
UGVyZm9ybWFuY2VUZXN0X0ZpZGVsaXR5TGV2ZWwgICAgICAgPSAxNjAyLAorCisgICAgICAgVlJF
dmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgICAgICAgICAgICAgICAgICAgICA9IDE2NTAsCisg
ICAgICAgCisgICAgICAgLy8gVmVuZG9ycyBhcmUgZnJlZSB0byBleHBvc2UgcHJpdmF0ZSBldmVu
dHMgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX1N0YXJ0ICAgICAgID0gMTAwMDAsCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVj
aWZpY19SZXNlcnZlZF9FbmQgICAgICAgICAgICAgID0gMTk5OTksCit9OworCisKKy8qKiBMZXZl
bCBvZiBIbWQgYWN0aXZpdHkgKi8KK2VudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKK3sKKyAgICAg
ICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX0lkbGUgPSAwLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNl
ckludGVyYWN0aW9uID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRl
cmFjdGlvbl9UaW1lb3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5k
YnkgPSAzLAorfTsKKworCisvKiogVlIgY29udHJvbGxlciBidXR0b24gYW5kIGF4aXMgSURzICov
CitlbnVtIEVWUkJ1dHRvbklkCit7CisgICAgICAga19FQnV0dG9uX1N5c3RlbSAgICAgICAgICAg
ICAgICAgICAgID0gMCwKKyAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ICAgICAgID0g
MSwKKyAgICAgICBrX0VCdXR0b25fR3JpcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIs
CisgICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCAgICAgICAgICAgICAgICAgICAgID0gMywKKyAg
ICAgICBrX0VCdXR0b25fRFBhZF9VcCAgICAgICAgICAgICAgICAgICAgID0gNCwKKyAgICAgICBr
X0VCdXR0b25fRFBhZF9SaWdodCAgICAgICAgICAgICAgPSA1LAorICAgICAgIGtfRUJ1dHRvbl9E
UGFkX0Rvd24gICAgICAgICAgICAgICAgICAgICA9IDYsCisgICAgICAga19FQnV0dG9uX0EgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNywKKyAgICAgICAKKyAgICAgICBrX0VC
dXR0b25fUHJveGltaXR5U2Vuc29yICAgPSAzMSwKKworICAgICAgIGtfRUJ1dHRvbl9BeGlzMCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMzLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM0LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM1LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzNCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM2LAorCisgICAgICAgLy8gYWxpYXNlcyBmb3Ig
d2VsbCBrbm93biBjb250cm9sbGVycworICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFk
ICAgICAgID0ga19FQnV0dG9uX0F4aXMwLAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RyaWdn
ZXIgICAgICAgPSBrX0VCdXR0b25fQXhpczEsCisKKyAgICAgICBrX0VCdXR0b25fRGFzaGJvYXJk
X0JhY2sgICAgICAgPSBrX0VCdXR0b25fR3JpcCwKKworICAgICAgIGtfRUJ1dHRvbl9NYXggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA2NAorfTsKKworaW5saW5lIHVpbnQ2NF90IEJ1dHRv
bk1hc2tGcm9tSWQoIEVWUkJ1dHRvbklkIGlkICkgeyByZXR1cm4gMXVsbCA8PCBpZDsgfQorCisv
KiogdXNlZCBmb3IgY29udHJvbGxlciBidXR0b24gZXZlbnRzICovCitzdHJ1Y3QgVlJFdmVudF9D
b250cm9sbGVyX3QKK3sKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUkJ1dHRvbklkIGVu
dW0KK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgaW4gb3Zlcmxh
eSBzcGFjZSAqLworZW51bSBFVlJNb3VzZUJ1dHRvbgoreworICAgICAgIFZSTW91c2VCdXR0b25f
TGVmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEsCisgICAgICAg
VlJNb3VzZUJ1dHRvbl9SaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAw
eDAwMDIsCisgICAgICAgVlJNb3VzZUJ1dHRvbl9NaWRkbGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAweDAwMDQsCit9OworCisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZl
bnRzIGluIG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X01vdXNlX3QKK3sKKyAgICAg
ICBmbG9hdCB4LCB5OyAvLyBjby1vcmRzIGFyZSBpbiBHTCBzcGFjZSwgYm90dG9tIGxlZnQgb2Yg
dGhlIHRleHR1cmUgaXMgMCwwCisgICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJNb3VzZUJ1
dHRvbiBlbnVtCit9OworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIHdoZWVsIHNjcm9s
bCBpbiBvdmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9TY3JvbGxfdAoreworICAgICAg
IGZsb2F0IHhkZWx0YSwgeWRlbHRhOyAvLyBtb3ZlbWVudCBpbiBmcmFjdGlvbiBvZiB0aGUgcGFk
IHRyYXZlcnNlZCBzaW5jZSBsYXN0IGRlbHRhLCAxLjAgZm9yIGEgZnVsbCBzd2lwZQorICAgICAg
IHVpbnQzMl90IHJlcGVhdENvdW50OworfTsKKworLyoqIHdoZW4gaW4gbW91c2UgaW5wdXQgbW9k
ZSB5b3UgY2FuIHJlY2VpdmUgZGF0YSBmcm9tIHRoZSB0b3VjaHBhZCwgdGhlc2UgZXZlbnRzIGFy
ZSBvbmx5IHNlbnQgaWYgdGhlIHVzZXJzIGZpbmdlcgorICAgaXMgb24gdGhlIHRvdWNocGFkIChv
ciBqdXN0IHJlbGVhc2VkIGZyb20gaXQpIAorKiovCitzdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1v
dmVfdAoreworICAgICAgIC8vIHRydWUgaWYgdGhlIHVzZXJzIGZpbmdlciBpcyBkZXRlY3RlZCBv
biB0aGUgdG91Y2ggcGFkCisgICAgICAgYm9vbCBiRmluZ2VyRG93bjsKKworICAgICAgIC8vIEhv
dyBsb25nIHRoZSBmaW5nZXIgaGFzIGJlZW4gZG93biBpbiBzZWNvbmRzCisgICAgICAgZmxvYXQg
ZmxTZWNvbmRzRmluZ2VyRG93bjsKKworICAgICAgIC8vIFRoZXNlIHZhbHVlcyBpbmRpY2F0ZSB0
aGUgc3RhcnRpbmcgZmluZ2VyIHBvc2l0aW9uIChzbyB5b3UgY2FuIGRvIHNvbWUgYmFzaWMgc3dp
cGUgc3R1ZmYpCisgICAgICAgZmxvYXQgZlZhbHVlWEZpcnN0OworICAgICAgIGZsb2F0IGZWYWx1
ZVlGaXJzdDsKKworICAgICAgIC8vIFRoaXMgaXMgdGhlIHJhdyBzYW1wbGVkIGNvb3JkaW5hdGUg
d2l0aG91dCBkZWFkem9uaW5nCisgICAgICAgZmxvYXQgZlZhbHVlWFJhdzsKKyAgICAgICBmbG9h
dCBmVmFsdWVZUmF3OworfTsKKworLyoqIG5vdGlmaWNhdGlvbiByZWxhdGVkIGV2ZW50cy4gRGV0
YWlscyB3aWxsIHN0aWxsIGNoYW5nZSBhdCB0aGlzIHBvaW50ICovCitzdHJ1Y3QgVlJFdmVudF9O
b3RpZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOworICAgICAgIHVp
bnQzMl90IG5vdGlmaWNhdGlvbklkOworfTsKKworLyoqIFVzZWQgZm9yIGV2ZW50cyBhYm91dCBw
cm9jZXNzZXMgKi8KK3N0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHVpbnQzMl90
IHBpZDsKKyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAgYm9vbCBiRm9yY2VkOworfTsK
KworCisvKiogVXNlZCBmb3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCitzdHJ1Y3Qg
VlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworfTsK
KworCisvKiogVXNlZCBmb3IgYSBmZXcgZXZlbnRzIGFib3V0IG92ZXJsYXlzICovCitzdHJ1Y3Qg
VlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRlOyAvLyBFVlJT
dGF0ZSBlbnVtCit9OworCisvKiogVXNlZCBmb3Iga2V5Ym9hcmQgZXZlbnRzICoqLworc3RydWN0
IFZSRXZlbnRfS2V5Ym9hcmRfdAoreworICAgICAgIGNoYXIgY05ld0lucHV0WzhdOyAgICAgICAv
LyBVcCB0byAxMSBieXRlcyBvZiBuZXcgaW5wdXQKKyAgICAgICB1aW50NjRfdCB1VXNlclZhbHVl
OyAgICAgICAvLyBQb3NzaWJsZSBmbGFncyBhYm91dCB0aGUgbmV3IGlucHV0Cit9OworCitzdHJ1
Y3QgVlJFdmVudF9JcGRfdAoreworICAgICAgIGZsb2F0IGlwZE1ldGVyczsKK307CisKK3N0cnVj
dCBWUkV2ZW50X0NoYXBlcm9uZV90Cit7CisgICAgICAgdWludDY0X3QgbV9uUHJldmlvdXNVbml2
ZXJzZTsKKyAgICAgICB1aW50NjRfdCBtX25DdXJyZW50VW5pdmVyc2U7Cit9OworCisvKiogTm90
IGFjdHVhbGx5IHVzZWQgZm9yIGFueSBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X1Jlc2VydmVk
X3QKK3sKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDA7CisgICAgICAgdWludDY0X3QgcmVzZXJ2
ZWQxOworfTsKKworc3RydWN0IFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QKK3sKKyAgICAgICB1
aW50MzJfdCBtX25GaWRlbGl0eUxldmVsOworfTsKKworc3RydWN0IFZSRXZlbnRfU2VhdGVkWmVy
b1Bvc2VSZXNldF90Cit7CisgICAgICAgYm9vbCBiUmVzZXRCeVN5c3RlbU1lbnU7Cit9OworCitz
dHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90X3QKK3sKKyAgICAgICB1aW50MzJfdCBoYW5kbGU7Cisg
ICAgICAgdWludDMyX3QgdHlwZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RQcm9n
cmVzc190Cit7CisgICAgICAgZmxvYXQgcHJvZ3Jlc3M7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9B
cHBsaWNhdGlvbkxhdW5jaF90Cit7CisgICAgICAgdWludDMyX3QgcGlkOworICAgICAgIHVpbnQz
Ml90IHVuQXJnc0hhbmRsZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X0VkaXRpbmdDYW1lcmFTdXJm
YWNlX3QKK3sKKyAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworICAgICAgIHVpbnQzMl90
IG5WaXN1YWxNb2RlOworfTsKKworc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAorewor
ICAgICAgIHVpbnQzMl90IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOyAvLyB2cjo6VlJNZXNz
YWdlT3ZlcmxheVJlc3BvbnNlIGVudW0KK307CisKK3N0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QK
K3sKKyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRhaW5lcjsKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7Cit9OworCisvKiogTk9URSEhISBJZiB5b3UgY2hh
bmdlIHRoaXMgeW91IE1VU1QgbWFudWFsbHkgdXBkYXRlIG9wZW52cl9pbnRlcm9wLmNzLnB5ICov
Cit0eXBlZGVmIHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOwor
ICAgICAgIFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAgVlJFdmVudF9N
b3VzZV90IG1vdXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOworICAgICAgIFZS
RXZlbnRfUHJvY2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBu
b3RpZmljYXRpb247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBW
UkV2ZW50X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9h
cmQ7CisgICAgICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVf
dCBjaGFwZXJvbmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5j
ZVRlc3Q7CisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7CisgICAg
ICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKKyAg
ICAgICBWUkV2ZW50X1NjcmVlbnNob3RfdCBzY3JlZW5zaG90OworICAgICAgIFZSRXZlbnRfU2Ny
ZWVuc2hvdFByb2dyZXNzX3Qgc2NyZWVuc2hvdFByb2dyZXNzOworICAgICAgIFZSRXZlbnRfQXBw
bGljYXRpb25MYXVuY2hfdCBhcHBsaWNhdGlvbkxhdW5jaDsKKyAgICAgICBWUkV2ZW50X0VkaXRp
bmdDYW1lcmFTdXJmYWNlX3QgY2FtZXJhU3VyZmFjZTsKKyAgICAgICBWUkV2ZW50X01lc3NhZ2VP
dmVybGF5X3QgbWVzc2FnZU92ZXJsYXk7CisgICAgICAgVlJFdmVudF9Qcm9wZXJ0eV90IHByb3Bl
cnR5OworfSBWUkV2ZW50X0RhdGFfdDsKKworLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUgc2Vy
dmVyIHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLworc3RydWN0IFZSRXZlbnRfdAorewor
ICAgICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KKyAgICAgICBU
cmFja2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7CisgICAgICAgZmxvYXQgZXZl
bnRBZ2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9mIHRo
ZSBzdHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAgICAgICBWUkV2ZW50X0RhdGFfdCBk
YXRhOworfTsKKworCisvKiogVGhlIG1lc2ggdG8gZHJhdyBpbnRvIHRoZSBzdGVuY2lsIChvciBk
ZXB0aCkgYnVmZmVyIHRvIHBlcmZvcm0gCisqIGVhcmx5IHN0ZW5jaWwgKG9yIGRlcHRoKSBraWxs
cyBvZiBwaXhlbHMgdGhhdCB3aWxsIG5ldmVyIGFwcGVhciBvbiB0aGUgSE1ELgorKiBUaGlzIG1l
c2ggZHJhd3Mgb24gYWxsIHRoZSBwaXhlbHMgdGhhdCB3aWxsIGJlIGhpZGRlbiBhZnRlciBkaXN0
b3J0aW9uLiAKKyoKKyogSWYgdGhlIEhNRCBkb2VzIG5vdCBwcm92aWRlIGEgdmlzaWJsZSBhcmVh
IG1lc2ggcFZlcnRleERhdGEgd2lsbCBiZQorKiBOVUxMIGFuZCB1blRyaWFuZ2xlQ291bnQgd2ls
bCBiZSAwLiAqLworc3RydWN0IEhpZGRlbkFyZWFNZXNoX3QKK3sKKyAgICAgICBjb25zdCBIbWRW
ZWN0b3IyX3QgKnBWZXJ0ZXhEYXRhOworICAgICAgIHVpbnQzMl90IHVuVHJpYW5nbGVDb3VudDsK
K307CisKKworZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7CisgICAgICAga19lSGlkZGVuQXJl
YU1lc2hfU3RhbmRhcmQgPSAwLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0ludmVyc2UgPSAx
LAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0gMiwKKworICAgICAgIGtfZUhp
ZGRlbkFyZWFNZXNoX01heCA9IDMsCit9OworCisKKy8qKiBJZGVudGlmaWVzIHdoYXQga2luZCBv
ZiBheGlzIGlzIG9uIHRoZSBjb250cm9sbGVyIGF0IGluZGV4IG4uIFJlYWQgdGhpcyB0eXBlIAor
KiB3aXRoIHBWUlN5c3RlbS0+R2V0KCBuQ29udHJvbGxlckRldmljZUluZGV4LCBQcm9wX0F4aXMw
VHlwZV9JbnQzMiArIG4gKTsKKyovCitlbnVtIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQoreworICAg
ICAgIGtfZUNvbnRyb2xsZXJBeGlzX05vbmUgPSAwLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlz
X1RyYWNrUGFkID0gMSwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19Kb3lzdGljayA9IDIsCisg
ICAgICAga19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciA9IDMsIC8vIEFuYWxvZyB0cmlnZ2VyIGRh
dGEgaXMgaW4gdGhlIFggYXhpcworfTsKKworCisvKiogY29udGFpbnMgaW5mb3JtYXRpb24gYWJv
dXQgb25lIGF4aXMgb24gdGhlIGNvbnRyb2xsZXIgKi8KK3N0cnVjdCBWUkNvbnRyb2xsZXJBeGlz
X3QKK3sKKyAgICAgICBmbG9hdCB4OyAvLyBSYW5nZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95
c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBSYW5nZXMgZnJvbSAwLjAgdG8gMS4wIGZvciB0cmlnZ2Vy
cyB3ZXJlIDAgaXMgZnVsbHkgcmVsZWFzZWQuCisgICAgICAgZmxvYXQgeTsgLy8gUmFuZ2VzIGZy
b20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFkcy4gSXMgYWx3YXlzIDAu
MCBmb3IgdHJpZ2dlcnMuCit9OworCisKKy8qKiB0aGUgbnVtYmVyIG9mIGF4ZXMgaW4gdGhlIGNv
bnRyb2xsZXIgc3RhdGUgKi8KK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuQ29udHJvbGxlclN0
YXRlQXhpc0NvdW50ID0gNTsKKworCisvKiogSG9sZHMgYWxsIHRoZSBzdGF0ZSBvZiBhIGNvbnRy
b2xsZXIgYXQgb25lIG1vbWVudCBpbiB0aW1lLiAqLworc3RydWN0IFZSQ29udHJvbGxlclN0YXRl
MDAxX3QKK3sKKyAgICAgICAvLyBJZiBwYWNrZXQgbnVtIG1hdGNoZXMgdGhhdCBvbiB5b3VyIHBy
aW9yIGNhbGwsIHRoZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgaGFzbid0IGJlZW4gY2hhbmdlZCBz
aW5jZSAKKyAgICAgICAvLyB5b3VyIGxhc3QgY2FsbCBhbmQgdGhlcmUgaXMgbm8gbmVlZCB0byBw
cm9jZXNzIGl0CisgICAgICAgdWludDMyX3QgdW5QYWNrZXROdW07CisKKyAgICAgICAvLyBiaXQg
ZmxhZ3MgZm9yIGVhY2ggb2YgdGhlIGJ1dHRvbnMuIFVzZSBCdXR0b25NYXNrRnJvbUlkIHRvIHR1
cm4gYW4gSUQgaW50byBhIG1hc2sKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblByZXNzZWQ7Cisg
ICAgICAgdWludDY0X3QgdWxCdXR0b25Ub3VjaGVkOworCisgICAgICAgLy8gQXhpcyBkYXRhIGZv
ciB0aGUgY29udHJvbGxlcidzIGFuYWxvZyBpbnB1dHMKKyAgICAgICBWUkNvbnRyb2xsZXJBeGlz
X3QgckF4aXNbIGtfdW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQgXTsKK307CisKKwordHlwZWRl
ZiBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90IFZSQ29udHJvbGxlclN0YXRlX3Q7CisKKworLyoqIGRl
dGVybWluZXMgaG93IHRvIHByb3ZpZGUgb3V0cHV0IHRvIHRoZSBhcHBsaWNhdGlvbiBvZiB2YXJp
b3VzIGV2ZW50IHByb2Nlc3NpbmcgZnVuY3Rpb25zLiAqLworZW51bSBFVlJDb250cm9sbGVyRXZl
bnRPdXRwdXRUeXBlCit7CisgICAgICAgQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0g
MCwKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfVlJFdmVudHMgPSAxLAorfTsKKworCisK
Ky8qKiBDb2xsaXNpb24gQm91bmRzIFN0eWxlICovCitlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHls
ZQoreworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAg
IENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFLAorICAgICAgIENPTExJU0lPTl9C
T1VORFNfU1RZTEVfU1FVQVJFUywKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFO
Q0VELAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSwKKworICAgICAgIENPTExJ
U0lPTl9CT1VORFNfU1RZTEVfQ09VTlQKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9u
IHRvIGN1c3RvbWl6ZSBob3cgdGhlIG92ZXJsYXkgYXBwZWFycyBpbiB0aGUgY29tcG9zaXRvciAq
Lworc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzCit7CisgICAgICAgdWludDMyX3Qg
c2l6ZTsgLy8gc2l6ZW9mKENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzKQorICAgICAgIGJvb2wg
Y3VydmVkLCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGUsIGRpc3RhbmNlLCBhbHBoYTsK
KyAgICAgICBmbG9hdCB1T2Zmc2V0LCB2T2Zmc2V0LCB1U2NhbGUsIHZTY2FsZTsKKyAgICAgICBm
bG9hdCBncmlkRGl2cywgZ3JpZFdpZHRoLCBncmlkU2NhbGU7CisgICAgICAgSG1kTWF0cml4NDRf
dCB0cmFuc2Zvcm07Cit9OworCisvKiogdXNlZCB0byByZWZlciB0byBhIHNpbmdsZSBWUiBvdmVy
bGF5ICovCit0eXBlZGVmIHVpbnQ2NF90IFZST3ZlcmxheUhhbmRsZV90OworCitzdGF0aWMgY29u
c3QgVlJPdmVybGF5SGFuZGxlX3Qga191bE92ZXJsYXlIYW5kbGVJbnZhbGlkID0gMDsKKworLyoq
IEVycm9ycyB0aGF0IGNhbiBvY2N1ciBhcm91bmQgVlIgb3ZlcmxheXMgKi8KK2VudW0gRVZST3Zl
cmxheUVycm9yCit7CisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIFZST3ZlcmxheUVycm9yX1Vu
a25vd25PdmVybGF5ICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBWUk92ZXJsYXlF
cnJvcl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICBWUk92
ZXJsYXlFcnJvcl9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMiwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCAgICAgICAgICAgICAgPSAx
MywgLy8gTm8gbW9yZSBvdmVybGF5cyBjb3VsZCBiZSBjcmVhdGVkIGJlY2F1c2UgdGhlIG1heGlt
dW0gbnVtYmVyIGFscmVhZHkgZXhpc3QKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2li
aWxpdHlUeXBlICAgICAgICAgICAgICA9IDE0LAorICAgICAgIFZST3ZlcmxheUVycm9yX0tleVRv
b0xvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwKKyAgICAgICBWUk92ZXJsYXlF
cnJvcl9OYW1lVG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAg
IFZST3ZlcmxheUVycm9yX0tleUluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDE3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSAgICAgICAg
ICAgICAgPSAxOCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkVHJhY2tlZERldmljZSAg
ICAgICAgICAgICAgPSAxOSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9JbnZhbGlkUGFyYW1ldGVy
ICAgICAgICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9UaHVtYm5h
aWxDYW50QmVEZXN0cm95ZWQgICAgICAgPSAyMSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9BcnJh
eVRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgPSAyMiwKKyAgICAgICBWUk92ZXJsYXlFcnJv
cl9SZXF1ZXN0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgPSAyMywKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAgICAgICAgID0gMjQsCisgICAgICAg
VlJPdmVybGF5RXJyb3JfVW5hYmxlVG9Mb2FkRmlsZSAgICAgICAgICAgICAgICAgICAgID0gMjUs
CisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UgICAgICAgICAgICAg
ID0gMjYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfTm9OZWlnaGJvciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDI3LAorICAgICAgIFZST3ZlcmxheUVycm9yX1Rvb01hbnlNYXNrUHJpbWl0
aXZlcyAgICAgICA9IDI5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUg
ICAgICAgICAgICAgICAgICAgICA9IDMwLAorfTsKKworLyoqIGVudW0gdmFsdWVzIHRvIHBhc3Mg
aW4gdG8gVlJfSW5pdCB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB3aWxsIAor
KiBkcmF3IGEgM0Qgc2NlbmUuICovCitlbnVtIEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAg
IFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLCAgICAgICAgICAgICAgLy8gU29tZSBvdGhlciBraW5k
IG9mIGFwcGxpY2F0aW9uIHRoYXQgaXNuJ3QgY292ZXJlZCBieSB0aGUgb3RoZXIgZW50cmllcyAK
KyAgICAgICBWUkFwcGxpY2F0aW9uX1NjZW5lICAgICAgID0gMSwgICAgICAgICAgICAgIC8vIEFw
cGxpY2F0aW9uIHdpbGwgc3VibWl0IDNEIGZyYW1lcyAKKyAgICAgICBWUkFwcGxpY2F0aW9uX092
ZXJsYXkgPSAyLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRpb24gb25seSBpbnRlcmFjdHMgd2l0
aCBvdmVybGF5cworICAgICAgIFZSQXBwbGljYXRpb25fQmFja2dyb3VuZCA9IDMsICAgICAgIC8v
IEFwcGxpY2F0aW9uIHNob3VsZCBub3Qgc3RhcnQgU3RlYW1WUiBpZiBpdCdzIG5vdCBhbHJlYWR5
IHJ1bm5pbmcsIGFuZCBzaG91bGQgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZWVwIGl0IHJ1bm5pbmcgaWYgZXZl
cnl0aGluZyBlbHNlIHF1aXRzLgorICAgICAgIFZSQXBwbGljYXRpb25fVXRpbGl0eSA9IDQsICAg
ICAgICAgICAgICAvLyBJbml0IHNob3VsZCBub3QgdHJ5IHRvIGxvYWQgYW55IGRyaXZlcnMuIFRo
ZSBhcHBsaWNhdGlvbiBuZWVkcyBhY2Nlc3MgdG8gdXRpbGl0eQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJmYWNl
cyAobGlrZSBJVlJTZXR0aW5ncyBhbmQgSVZSQXBwbGljYXRpb25zKSBidXQgbm90IGhhcmR3YXJl
LgorICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0gNSwgICAgICAgLy8gUmVzZXJ2ZWQg
Zm9yIHZybW9uaXRvcgorICAgICAgIFZSQXBwbGljYXRpb25fU3RlYW1XYXRjaGRvZyA9IDYsLy8g
UmVzZXJ2ZWQgZm9yIFN0ZWFtCisKKyAgICAgICBWUkFwcGxpY2F0aW9uX01heAorfTsKKworCisv
KiogZXJyb3IgY29kZXMgZm9yIGZpcm13YXJlICovCitlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sK
KyAgICAgICBWUkZpcm13YXJlRXJyb3JfTm9uZSA9IDAsCisgICAgICAgVlJGaXJtd2FyZUVycm9y
X1N1Y2Nlc3MgPSAxLAorICAgICAgIFZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK307CisKKwor
LyoqIGVycm9yIGNvZGVzIGZvciBub3RpZmljYXRpb25zICovCitlbnVtIEVWUk5vdGlmaWNhdGlv
bkVycm9yCit7CisgICAgICAgVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgVlJO
b3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisgICAgICAgVlJO
b3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgVlJO
b3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBWUk5v
dGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAor
fTsKKworCisvKiogZXJyb3IgY29kZXMgcmV0dXJuZWQgYnkgVnJfSW5pdCAqLworCisvLyBQbGVh
c2UgYWRkIGFkZXF1YXRlIGVycm9yIGRlc2NyaXB0aW9uIHRvIGh0dHBzOi8vZGV2ZWxvcGVyLnZh
bHZlc29mdHdhcmUuY29tL3cvaW5kZXgucGhwP3RpdGxlPUNhdGVnb3J5OlN0ZWFtVlJIZWxwCitl
bnVtIEVWUkluaXRFcnJvcgoreworICAgICAgIFZSSW5pdEVycm9yX05vbmUgICAgICAgPSAwLAor
ICAgICAgIFZSSW5pdEVycm9yX1Vua25vd24gPSAxLAorCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9JbnN0YWxsYXRpb25Ob3RGb3VuZCAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAgICAgICAgICA9IDEwMSwKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgICAgICAgICAgICAgID0gMTAy
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5kICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5k
ICAgICAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnRl
cmZhY2VOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTA1LAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfSW52YWxpZEludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgPSAxMDcsCisg
ICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0
aFJlZ2lzdHJ5Tm90Rm91bmQgICAgICAgICAgICAgID0gMTEwLAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfTm9Db25maWdQYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTExLAorICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDExMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdy
aXRhYmxlICAgICAgID0gMTEzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRG
YWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X1JldHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTUsIC8v
IFVzZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZyc2VydmVyCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAgICAgICAgICAgICAgICA9IDEx
NiwgLy8gVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gc2hvdWxkIHNpbGVudGx5IGV4aXQuIFRoZSB1
c2VyIGNhbmNlbGVkIGFwcCBzdGFydHVwCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Bbm90aGVy
QXBwTGF1bmNoaW5nICAgICAgICAgICAgICA9IDExNywgCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9TZXR0aW5nc0luaXRGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDExOCwgCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMTksCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEyMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVy
Rm9yQmFja2dyb3VuZEFwcCAgICAgICA9IDEyMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05v
dFN1cHBvcnRlZFdpdGhDb21wb3NpdG9yICAgICAgID0gMTIyLAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyAgICAgICA9IDEyMywKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X0ludGVybmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSAgICAgICAg
ICAgICAgICAgICAgICA9IDEyNSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5k
UHJlc2VuY2VGYWlsZWQgICAgICAgID0gMTI2LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJN
b25pdG9yTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEyNywKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgID0gMTI4LAorICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZCA9IDEyOSwg
CisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICAgICAgICAg
ICAgICA9IDEzMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hk
b2dBcHBzID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZElu
U2V0dGluZ3MgPSAxMzIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZv
dW5kICAgICAgICAgICAgICA9IDEzMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkU3RhcnR1cEZhaWxlZCAgICAgICA9IDEzNCwKKworICAgICAgIFZSSW5pdEVycm9yX0RyaXZl
cl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAsCisgICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX1Vua25vd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDEsCisg
ICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAgICAgICAgICAgICAgICAgICA9
IDIwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkICAgICAgICAgICAgICAg
ICAgICAgPSAyMDMsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUg
ICAgICAgICAgICAgID0gMjA0LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwNSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2
ZXJfTm90Q2FsaWJyYXRlZCAgICAgICAgICAgICAgPSAyMDYsCisgICAgICAgVlJJbml0RXJyb3Jf
RHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCAgICAgICA9IDIwNywKKyAgICAgICBWUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kICAgICAgID0gMjA4LAorICAgICAgIFZSSW5pdEVy
cm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biA9IDIwOSwKKyAgICAgICAv
LyBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXggICAgICAgID0g
MjEwLCAvLyBub3QgbmVlZGVkOiBoZXJlIGZvciBoaXN0b3JpYyByZWFzb25zCisgICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCAgPSAyMTIsCisKKyAgICAgICBWUklu
aXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAgICAgPSAzMDAsCisgICAgICAg
VlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDMwMSwK
KyAgICAgICBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkICAgICAgID0gMzAy
LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCAgICAgICA9IDMw
MywKKyAgICAgICBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgPSAzMDQsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzMDUsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBv
c2l0b3JDb25uZWN0RmFpbGVkICAgICAgID0gMzA2LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19D
b21wb3NpdG9ySW52YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBWUkluaXRFcnJv
cl9JUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKworICAgICAg
IFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDQwMCwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdh
cmVSZXF1aXJlZCAgICAgICA9IDQwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zp
cm13YXJlUmVxdWlyZXNVcGRhdGUgICAgICAgPSA0MDIsCisgICAgICAgVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCAgICAgICAgICAgICAgPSA0MDMsCisgICAgICAgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgICAgICAgPSA0MDQsCisK
KyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1
c1J1bnRpbWUgPSAxMDAwLAorCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwMSwK
KyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVl
c3RDb25maWdTdGFydCAgICAgICA9IDExMDIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25m
aWdUb29CaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNCwKKyAgICAgICBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMTA1LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgICAgICAgICAgICAgICAgICAgICAgPSAxMTA2
LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmly
bXdhcmVWZXJzaW9uICAgICAgICA9IDExMDcsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCAgICAgICA9IDExMDgsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2Vy
RGF0YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCAgICAgICAgICAgICAgPSAxMTEwLAor
ICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVz
c1JhbmdlICAgICAgICAgICAgICA9IDExMTEsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDExMTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmln
RmFpbGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAgID0gMTExMywKKworICAgICAgIFZSSW5pdEVy
cm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfTsKKworZW51bSBF
VlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTm9uZSA9IDAsCisg
ICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwgLy8gbGVmdCBleWUgb25seQorICAgICAg
IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX0N1
YmVtYXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1hID0gNCwKKyAg
ICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNQorfTsKKworZW51bSBFVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBWUlNjcmVlbnNob3RQcm9wZXJ0
eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAgICBWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVu
YW1lc19WUiA9IDEsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJvcgoreworICAgICAg
IFZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgICAgICAgICAgICA9IDEw
MCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAg
ICA9IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1l
SGVhZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZI
YW5kbGVzICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SVBDRmFpbHVyZSAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSAgPSAxMDUsCisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSAgICAgICAgPSAxMDYsCisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWlsdXJlICAgICAgPSAxMDcsCisgICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlICAgICAgICAgPSAxMDgs
CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkICAgICAgICAg
PSAxMDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNoYXJlZFRleHR1cmVI
YW5kbGUgPSAxMTAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVkVG9HZXRHTFRl
eHR1cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4
dHVyZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9G
cmFtZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJy
b3JfSW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAgPSAxMTQsCisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSAgICAgPSAxMTUsCit9OworCitlbnVtIEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5
cGVfRGlzdG9ydGVkID0gMCwgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYW1l
cmEgdmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMsIHN0aWxsIGRpc3RvcnRlZC4KKyAgICAgICBW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQsICAgICAgICAgICAgICAgICAgICAg
Ly8gSW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBpbnNjcmliZWQgcmVjdGFuZ2xlIHJlZ2lvbiB3
aXRob3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBzaXplIGlzIHN1YmplY3QgdG8gY2hhbmdlcyBz
aG9ydGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0
ZWQsICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11bSB1bmRpc3RvcnRlZCB3aXRoIGludmFsaWQg
cmVnaW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9uZW50IGlkZW50aWZpZXMgdmFsaWQgcmVnaW9u
cy4KKyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTCit9OworCit0eXBlZGVmIHVpbnQ2NF90
IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZpbmUgSU5WQUxJRF9UUkFDS0VEX0NBTUVSQV9I
QU5ETEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90KTApCisKK3N0cnVjdCBDYW1l
cmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJh
bWVUeXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7CisgICAgICAgdWlu
dDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsKKworICAgICAg
IHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisgICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBz
dGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsKKworLy8gU2NyZWVuc2hvdCB0eXBlcwordHlw
ZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCB1aW50MzJf
dCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworCisjcHJhZ21hIHBhY2soIHBvcCAp
CisKKy8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9ydCBmcm9tIHRoZSBWUiBBUEkgZGxsCisjaWYg
ZGVmaW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVmaW5lIFZSX0lOVEVS
RkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisjZWxzZQorI2RlZmluZSBW
Ul9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxpbXBvcnQgKQorI2VuZGlmCisK
KyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoQ09NUElMRVJfR0NDKSB8fCBkZWZp
bmVkKF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUgVlJfSU5URVJG
QUNFIGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNl
bHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIAorI2VuZGlmCisKKyNlbHNlCisj
ZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIKKyNlbmRpZgorCisKKyNpZiBkZWZpbmVkKCBf
V0lOMzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBfX2NkZWNsCisjZWxzZQorI2RlZmluZSBWUl9D
QUxMVFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB2cgorCisjZW5kaWYgLy8gX0lOQ0xV
REVfVlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0aW9uLmgKKyNpZmRlZiBBUElfR0VOCisjIGRl
ZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0cmlidXRlX18oKGFubm90YXRlKCBBVFRSICkp
KQorI2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikKKyNlbmRpZgorCisjZGVmaW5l
IFZSX01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5HX0FUVFIoICJkZXNjOiIgI0RFU0MgIjsiICkK
KyNkZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NMQU5HX0FUVFIoICJpZ25vcmUiICkKKyNkZWZp
bmUgVlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RydWN0OiA7IiApCisjZGVm
aW5lIFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmluZzogOyIgKQorI2Rl
ZmluZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVSLEZVTkNUSU9OLFBBUkFNUykgVlJfQ0xBTkdf
QVRUUiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5URVIgIiwiICNGVU5DVElPTiAiLCIgI1BBUkFN
UyAiOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRU
UiggIm91dF9hcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NP
VU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiAp
CisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09VTlRFUiwgREVTQykgVlJfQ0xBTkdfQVRUUigg
ImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNjOiIgI0RFU0MgKQorI2RlZmluZSBWUl9CVUZG
RVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImJ1ZmZlcl9jb3VudDoiICNDT1VOVEVS
ICI7IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRU
UiggIm91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBWUl9PVVRfU1RS
SU5HX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nX2NvdW50OiIgI0NP
VU5URVIgIjsiICkKKworLy8gdnJ0cmFja2VkY2FtZXJhdHlwZXMuaAorI2lmbmRlZiBfVlJUUkFD
S0VEQ0FNRVJBVFlQRVNfSAorI2RlZmluZSBfVlJUUkFDS0VEQ0FNRVJBVFlQRVNfSCAKKworbmFt
ZXNwYWNlIHZyCit7CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExF
X18pIAorICAgICAgIC8vIFRoZSAzMi1iaXQgdmVyc2lvbiBvZiBnY2MgaGFzIHRoZSBhbGlnbm1l
bnQgcmVxdWlyZW1lbnQgZm9yIHVpbnQ2NCBhbmQgZG91YmxlIHNldCB0bworICAgICAgIC8vIDQg
bWVhbmluZyB0aGF0IGV2ZW4gd2l0aCAjcHJhZ21hIHBhY2soOCkgdGhlc2UgdHlwZXMgd2lsbCBv
bmx5IGJlIGZvdXItYnl0ZSBhbGlnbmVkLgorICAgICAgIC8vIFRoZSA2NC1iaXQgdmVyc2lvbiBv
ZiBnY2MgaGFzIHRoZSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgZm9yIHRoZXNlIHR5cGVzIHNldCB0
bworICAgICAgIC8vIDggbWVhbmluZyB0aGF0IHVubGVzcyB3ZSB1c2UgI3ByYWdtYSBwYWNrKDQp
IG91ciBzdHJ1Y3R1cmVzIHdpbGwgZ2V0IGJpZ2dlci4KKyAgICAgICAvLyBUaGUgNjQtYml0IHN0
cnVjdHVyZSBwYWNraW5nIGhhcyB0byBtYXRjaCB0aGUgMzItYml0IHN0cnVjdHVyZSBwYWNraW5n
IGZvciBlYWNoIHBsYXRmb3JtLgorICAgICAgICNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZWxz
ZQorICAgICAgICNwcmFnbWEgcGFjayggcHVzaCwgOCApCisjZW5kaWYKKworZW51bSBFQ2FtZXJh
VmlkZW9TdHJlYW1Gb3JtYXQKK3sKKyAgICAgICBDVlNfRk9STUFUX1VOS05PV04gPSAwLAorICAg
ICAgIENWU19GT1JNQVRfUkFXMTAgPSAxLCAgICAgICAgICAgICAgLy8gMTAgYml0cyBwZXIgcGl4
ZWwKKyAgICAgICBDVlNfRk9STUFUX05WMTIgPSAyLCAgICAgICAgICAgICAgLy8gMTIgYml0cyBw
ZXIgcGl4ZWwKKyAgICAgICBDVlNfRk9STUFUX1JHQjI0ID0gMywgICAgICAgICAgICAgIC8vIDI0
IGJpdHMgcGVyIHBpeGVsCisgICAgICAgQ1ZTX01BWF9GT1JNQVRTCit9OworCitlbnVtIEVDYW1l
cmFDb21wYXRpYmlsaXR5TW9kZQoreworICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9CVUxLX0RF
RkFVTFQgPSAwLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9CVUxLXzY0S19ETUEsCisgICAg
ICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfMTZLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFU
X01PREVfQlVMS184S19ETUEsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT181MkZQUywK
KyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUwRlBTLAorICAgICAgIENBTUVSQV9DT01Q
QVRfTU9ERV9JU09fNDhGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT180NkZQUywK
KyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ0RlBTLAorICAgICAgIENBTUVSQV9DT01Q
QVRfTU9ERV9JU09fNDJGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT180MEZQUywK
KyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzM1RlBTLAorICAgICAgIENBTUVSQV9DT01Q
QVRfTU9ERV9JU09fMzBGUFMsCisgICAgICAgTUFYX0NBTUVSQV9DT01QQVRfTU9ERVMKK307CisK
KyNpZmRlZiBfTVNDX1ZFUgorI2RlZmluZSBWUl9DQU1FUkFfREVDTF9BTElHTiggeCApIF9fZGVj
bHNwZWMoIGFsaWduKCB4ICkgKQorI2Vsc2UKKyNkZWZpbmUgVlJfQ0FNRVJBX0RFQ0xfQUxJR04o
IHggKSAvLworI2VuZGlmCisKKyNkZWZpbmUgTUFYX0NBTUVSQV9GUkFNRV9TSEFSRURfSEFORExF
UyAgICAgICA0CisKK1ZSX0NBTUVSQV9ERUNMX0FMSUdOKCA4ICkgc3RydWN0IENhbWVyYVZpZGVv
U3RyZWFtRnJhbWVfdAoreworICAgICAgIEVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBtX25TdHJl
YW1Gb3JtYXQ7CisKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aDsKKyAgICAgICB1aW50MzJfdCBt
X25IZWlnaHQ7CisKKyAgICAgICB1aW50MzJfdCBtX25JbWFnZURhdGFTaXplOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJhc2VkIG9uIHN0cmVhbSBmb3JtYXQs
IHdpZHRoLCBoZWlnaHQKKworICAgICAgIHVpbnQzMl90IG1fbkZyYW1lU2VxdWVuY2U7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRzIGZyb20gMCB3aGVu
IHN0cmVhbSBzdGFydHMuCisKKyAgICAgICB1aW50MzJfdCBtX25CdWZmZXJJbmRleDsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZGVudGlmaWVzIHdoaWNoIGJ1
ZmZlciB0aGUgaW1hZ2UgZGF0YSBpcyBob3N0ZWQKKyAgICAgICB1aW50MzJfdCBtX25CdWZmZXJD
b3VudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb3RhbCBu
dW1iZXIgb2YgY29uZmlndXJlZCBidWZmZXJzCisKKyAgICAgICB1aW50MzJfdCBtX25FeHBvc3Vy
ZVRpbWU7CisKKyAgICAgICB1aW50MzJfdCBtX25JU1BGcmFtZVRpbWVTdGFtcDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERyaXZlciBwcm92aWRlZCB0aW1lIHN0YW1wIHBl
ciBkcml2ZXIgY2VudHJpYyB0aW1lIGJhc2UKKyAgICAgICB1aW50MzJfdCBtX25JU1BSZWZlcmVu
Y2VUaW1lU3RhbXA7CisgICAgICAgdWludDMyX3QgbV9uU3luY0NvdW50ZXI7CisKKyAgICAgICB1
aW50MzJfdCBtX25DYW1TeW5jRXZlbnRzOworICAgICAgIHVpbnQzMl90IG1fbklTUFN5bmNFdmVu
dHM7CisKKyAgICAgICBkb3VibGUgbV9mbFJlZmVyZW5jZUNhbVN5bmNUaW1lOworCisgICAgICAg
ZG91YmxlIG1fZmxGcmFtZUVsYXBzZWRUaW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gU3RhcnRzIGZyb20gMCB3aGVuIHN0cmVhbSBzdGFydHMuIEluIHNlY29uZHMuCisg
ICAgICAgZG91YmxlIG1fZmxGcmFtZURlbGl2ZXJ5UmF0ZTsKKworICAgICAgIGRvdWJsZSBtX2Zs
RnJhbWVDYXB0dXJlVGltZV9Ecml2ZXJBYnNvbHV0ZTsgICAgICAgICAgICAgIC8vIEluIFVTQiB0
aW1lLCB2aWEgQXV4RXZlbnQKKyAgICAgICBkb3VibGUgbV9mbEZyYW1lQ2FwdHVyZVRpbWVfU2Vy
dmVyUmVsYXRpdmU7ICAgICAgICAgICAgICAvLyBJbiBTeXN0ZW0gdGltZSB3aXRoaW4gdGhlIHNl
cnZlcgorICAgICAgIHVpbnQ2NF90IG1fbkZyYW1lQ2FwdHVyZVRpY2tzX1NlcnZlckFic29sdXRl
OyAgICAgICAvLyBJbiBzeXN0ZW0gdGlja3Mgd2l0aGluIHRoZSBzZXJ2ZXIKKyAgICAgICBkb3Vi
bGUgbV9mbEZyYW1lQ2FwdHVyZVRpbWVfQ2xpZW50UmVsYXRpdmU7ICAgICAgICAgICAgICAvLyBB
dCB0aGUgY2xpZW50LCByZWxhdGl2ZSB0byB3aGVuIHRoZSBmcmFtZSB3YXMgZXhwb3NlZC9jYXB0
dXJlZC4KKworICAgICAgIGRvdWJsZSBtX2ZsU3luY01hcmtlckVycm9yOworCisgICAgICAgVHJh
Y2tlZERldmljZVBvc2VfdCBtX1N0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7ICAgICAgIC8vIFN1
cHBsaWVkIGJ5IEhNRCBsYXllciB3aGVuIHVzZWQgYXMgYSB0cmFja2VkIGNhbWVyYQorCisgICAg
ICAgdWludDY0X3QgbV9wSW1hZ2VEYXRhOworfTsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCit9
CisKKyNlbmRpZiAvLyBfVlJUUkFDS0VEQ0FNRVJBVFlQRVNfSAorLy8gaXZyc2V0dGluZ3MuaAor
bmFtZXNwYWNlIHZyCit7CisgICAgICAgZW51bSBFVlJTZXR0aW5nc0Vycm9yCisgICAgICAgewor
ICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfTm9uZSA9IDAsCisgICAgICAgICAgICAgIFZS
U2V0dGluZ3NFcnJvcl9JUENGYWlsZWQgPSAxLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJy
b3JfV3JpdGVGYWlsZWQgPSAyLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfUmVhZEZh
aWxlZCA9IDMsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Kc29uUGFyc2VGYWlsZWQg
PSA0LAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfVW5zZXRTZXR0aW5nSGFzTm9EZWZh
dWx0ID0gNSwgLy8gVGhpcyB3aWxsIGJlIHJldHVybmVkIGlmIHRoZSBzZXR0aW5nIGRvZXMgbm90
IGFwcGVhciBpbiB0aGUgYXBwcm9wcmlhdGUgZGVmYXVsdCBmaWxlIGFuZCBoYXMgbm90IGJlZW4g
c2V0CisgICAgICAgfTsKKworICAgICAgIC8vIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHNldHRp
bmdzIGtleQorICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4U2V0dGluZ3NLZXlM
ZW5ndGggPSAxMjg7CisKKyAgICAgICBjbGFzcyBJVlJTZXR0aW5ncworICAgICAgIHsKKyAgICAg
ICBwdWJsaWM6CisgICAgICAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0U2V0dGluZ3NF
cnJvck5hbWVGcm9tRW51bSggRVZSU2V0dGluZ3NFcnJvciBlRXJyb3IgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZpbGUgc3luYyBvY2N1cnJlZCAoZm9yY2Ugb3Ig
c2V0dGluZ3MgZGlydHkpCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTeW5jKCBib29sIGJG
b3JjZSA9IGZhbHNlLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsK
KworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0Qm9vbCggY29uc3QgY2hhciAqcGNoU2Vj
dGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBFVlJTZXR0aW5n
c0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIFNldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0
aW5nc0tleSwgaW50MzJfdCBuVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxs
cHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0RmxvYXQoIGNvbnN0IGNo
YXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBmbG9hdCBmbFZhbHVl
LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAg
ICAgdmlydHVhbCB2b2lkIFNldFN0cmluZyggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3Qg
Y2hhciAqcGNoU2V0dGluZ3NLZXksIGNvbnN0IGNoYXIgKnBjaFZhbHVlLCBFVlJTZXR0aW5nc0Vy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvLyBVc2VycyBv
ZiB0aGUgc3lzdGVtIG5lZWQgdG8gcHJvdmlkZSBhIHByb3BlciBkZWZhdWx0IGluIGRlZmF1bHQu
dnJzZXR0aW5ncyBpbiB0aGUgcmVzb3VyY2VzL3NldHRpbmdzLyBkaXJlY3RvcnkKKyAgICAgICAg
ICAgICAgLy8gb2YgZWl0aGVyIHRoZSBydW50aW1lIG9yIHRoZSBkcml2ZXJfeHh4IGRpcmVjdG9y
eS4gT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHdpbGwgYmUgZmFsc2UsIDAsIDAuMCBvciAiIgorICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Qm9vbCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwg
Y29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBu
dWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0SW50MzIoIGNv
bnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0
aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVh
bCBmbG9hdCBHZXRGbG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNo
U2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwor
ICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBj
aFZhbHVlLCB1aW50MzJfdCB1blZhbHVlTGVuLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0g
bnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVtb3ZlU2VjdGlv
biggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51
bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVLZXlJblNlY3Rp
b24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBF
VlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICB9OworCisg
ICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3QgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18wMDIiOworCisgICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHN0ZWFtdnIga2V5cworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0ZWFtdnIi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXF1aXJl
SG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWRI
bWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vz
c1BpcGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9FbmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxl
RGlzdG9ydGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAi
ZGlzcGxheURlYnVnWSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbD0gInNlbmRTeXN0ZW1CdXR0b25U
b0FsbEFwcHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9Mb2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZlbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0lQRF9GbG9hdCA9ICJpcGQiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kX1N0cmluZyA9ICJiYWNr
Z3JvdW5kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
QmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9q
ZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
QmFja2dyb3VuZENhbWVyYUhlaWdodF9GbG9hdCA9ICJiYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0IjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQmFja2dyb3Vu
ZERvbWVSYWRpdXNfRmxvYXQgPSAiYmFja2dyb3VuZERvbWVSYWRpdXMiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5nID0gImdy
aWRDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X1BsYXlBcmVhQ29sb3JfU3RyaW5nID0gInBsYXlBcmVhQ29sb3IiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TaG93U3RhZ2VfQm9vbCA9ICJzaG93U3Rh
Z2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BY3Rp
dmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZV9C
b29sID0gImRpcmVjdE1vZGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFZpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFZpZCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1v
ZGVFZGlkUGlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfVXNpbmdTcGVha2Vyc19Cb29sID0gInVzaW5n
U3BlYWtlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9TcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzX0Zsb2F0ID0gInNwZWFrZXJzRm9yd2Fy
ZFlhd09mZnNldERlZ3JlZXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0aW9u
UG93ZXJNYW5hZ2VtZW50IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfTmV2ZXJLaWxsUHJvY2Vzc2VzX0Jvb2wgPSAibmV2ZXJLaWxsUHJvY2Vzc2VzIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmVuZGVyVGFy
Z2V0TXVsdGlwbGllcl9GbG9hdCA9ICJyZW5kZXJUYXJnZXRNdWx0aXBsaWVyIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVj
dGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd1JlcHJvamVjdGlvbl9Cb29sID0gImFs
bG93SW50ZXJsZWF2ZWRSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZVJlcHJvamVjdGlvbl9Cb29sID0gImZvcmNlUmVwcm9q
ZWN0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
Rm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EZWZhdWx0TWly
cm9yVmlld19JbnQzMiA9ICJkZWZhdWx0TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dNaXJyb3JWaWV3X0Jvb2wgPSAic2hvd01p
cnJvclZpZXciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0TW9uaXRvckZy
b21BcHBMYXVuY2ggPSAic3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1N0YXJ0Q29tcG9zaXRvckZyb21BcHBM
YXVuY2hfQm9vbCA9ICJzdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBw
TGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRPdmVybGF5QXBwc0Zyb21E
YXNoYm9hcmRfQm9vbCA9ICJzdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZUhvbWVBcHAgPSAi
ZW5hYmxlSG9tZUFwcCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1NldEluaXRpYWxEZWZhdWx0SG9tZUFwcCA9ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVB
cHAiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9DeWNs
ZUJhY2tncm91bmRJbWFnZVRpbWVTZWNfSW50MzIgPSAiQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1l
U2VjIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmV0
YWlsRGVtb19Cb29sID0gInJldGFpbERlbW8iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKKworICAg
ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBsaWdodGhvdXNlIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfU2VjdGlvbiA9
ICJkcml2ZXJfbGlnaHRob3VzZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9MaWdodGhvdXNlX0Rpc2FibGVJTVVfQm9vbCA9ICJkaXNhYmxlaW11IjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRp
b25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYW1iaWd1YXRpb25EZWJ1Z19JbnQzMiA9ICJk
aXNhbWJpZ3VhdGlvbmRlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0xpZ2h0aG91c2VfUHJpbWFyeUJhc2VzdGF0aW9uX0ludDMyID0gInByaW1hcnliYXNlc3Rh
dGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9MaWdodGhvdXNl
X0RCSGlzdG9yeV9Cb29sID0gImRiaGlzdG9yeSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gbnVsbCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9OdWxsX1NlY3Rpb24gPSAiZHJpdmVyX251bGwiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9TZXJpYWxOdW1iZXJfU3RyaW5nID0gInNlcmlh
bE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX01v
ZGVsTnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1hfSW50MzIgPSAid2luZG93WCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRvd1lfSW50MzIgPSAid2lu
ZG93WSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1dpbmRv
d1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX051bGxfV2luZG93SGVpZ2h0X0ludDMyID0gIndpbmRvd0hlaWdodCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1JlbmRlcldpZHRoX0lu
dDMyID0gInJlbmRlcldpZHRoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMyID0gInJlbmRlckhlaWdodCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnNfRmxvYXQgPSAic2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9ucyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQgPSAiZGlz
cGxheUZyZXF1ZW5jeSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Ly8gdXNlciBpbnRlcmZhY2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNP
blRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09uVG9wIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5p
bWl6ZVRvVHJheSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2Vy
SW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hvdHMiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9J
bnQgPSAic2NyZWVuc2hvdFR5cGUiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIG5vdGlmaWNhdGlvbiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX1NlY3Rpb24gPSAibm90aWZpY2F0aW9ucyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ob3RpZmljYXRpb25zX0RvTm90RGlz
dHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8ga2V5Ym9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0g
IlR1dG9yaWFsQ29tcGxldGlvbnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfS2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxlWCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVkgPSAiU2NhbGVZIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRYID0gIk9mZnNl
dExlZnRYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJk
X09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhp
bmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIHBlcmYga2V5
cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9TZWN0aW9uID0g
InBlcmZjaGVjayI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJm
X0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2Fybklu
SE1EIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5
T25seU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdT
dG9yZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NhdmVU
aW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERh
dGEiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNvbGxpc2lv
biBib3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29s
bGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25C
b3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25C
b3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQ
bGF5U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0
YW5jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0Nv
bG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1h
Ql9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIg
PSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVuYWJs
ZUNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFf
RW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2FyZCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2Ft
ZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91
bmRzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVyYUZvclJvb21WaWV3IjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdh
bW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVy
YV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5n
dGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisgICAgICAgLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b25QbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRl
dmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b2ZmUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0g
InZpdmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Ly8gcG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVybk9m
ZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNU
aW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRf
RmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0g
ImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gZGFzaGJvYXJkIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9TZWN0aW9uID0gImRhc2hib2FyZCI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfRW5hYmxlRGFzaGJv
YXJkX0Jvb2wgPSAiZW5hYmxlRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wgPSAiYXJjYWRlTW9kZSI7CisK
KyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbW9kZWwgc2tpbiBrZXlz
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9tb2RlbHNraW5fU2VjdGlv
biA9ICJtb2RlbHNraW5zIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAvLyBkcml2ZXIga2V5cyAtIFRoZXNlIGNvdWxkIGJlIGNoZWNrZWQgaW4gYW55IGRyaXZlcl88
bmFtZT4gc2VjdGlvbgorICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRHJp
dmVyX0VuYWJsZV9Cb29sID0gImVuYWJsZSI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKy8vIGlz
ZXJ2ZXJ0cmFja2VkZGV2aWNlZHJpdmVyLmgKK25hbWVzcGFjZSB2cgoreworCisKK3N0cnVjdCBE
cml2ZXJQb3NlUXVhdGVybmlvbl90Cit7CisgICAgICAgZG91YmxlIHcsIHgsIHksIHo7Cit9Owor
CitzdHJ1Y3QgRHJpdmVyUG9zZV90Cit7CisgICAgICAgLyogVGltZSBvZmZzZXQgb2YgdGhpcyBw
b3NlLCBpbiBzZWNvbmRzIGZyb20gdGhlIGFjdHVhbCB0aW1lIG9mIHRoZSBwb3NlLAorICAgICAg
ICAqIHJlbGF0aXZlIHRvIHRoZSB0aW1lIG9mIHRoZSBQb3NlVXBkYXRlZCgpIGNhbGwgbWFkZSBi
eSB0aGUgZHJpdmVyLgorICAgICAgICAqLworICAgICAgIGRvdWJsZSBwb3NlVGltZU9mZnNldDsK
KworICAgICAgIC8qIEdlbmVyYWxseSwgdGhlIHBvc2UgbWFpbnRhaW5lZCBieSBhIGRyaXZlcgor
ICAgICAgICAqIGlzIGluIGFuIGluZXJ0aWFsIGNvb3JkaW5hdGUgc3lzdGVtIGRpZmZlcmVudAor
ICAgICAgICAqIGZyb20gdGhlIHdvcmxkIHN5c3RlbSBvZiB4KyByaWdodCwgeSsgdXAsIHorIGJh
Y2suCisgICAgICAgICogQWxzbywgdGhlIGRyaXZlciBpcyBub3QgdXN1YWxseSB0cmFja2luZyB0
aGUgImhlYWQiIHBvc2l0aW9uLAorICAgICAgICAqIGJ1dCBpbnN0ZWFkIGFuIGludGVybmFsIElN
VSBvciBhbm90aGVyIHJlZmVyZW5jZSBwb2ludCBpbiB0aGUgSE1ELgorICAgICAgICAqIFRoZSBm
b2xsb3dpbmcgdHdvIHRyYW5zZm9ybXMgdHJhbnNmb3JtIHBvc2l0aW9ucyBhbmQgb3JpZW50YXRp
b25zCisgICAgICAgICogdG8gYXBwIHdvcmxkIHNwYWNlIGZyb20gZHJpdmVyIHdvcmxkIHNwYWNl
LAorICAgICAgICAqIGFuZCB0byBITUQgaGVhZCBzcGFjZSBmcm9tIGRyaXZlciBsb2NhbCBib2R5
IHNwYWNlLiAKKyAgICAgICAgKgorICAgICAgICAqIFdlIG1haW50YWluIHRoZSBkcml2ZXIgcG9z
ZSBzdGF0ZSBpbiBpdHMgaW50ZXJuYWwgY29vcmRpbmF0ZSBzeXN0ZW0sCisgICAgICAgICogc28g
d2UgY2FuIGRvIHRoZSBwb3NlIHByZWRpY3Rpb24gbWF0aCB3aXRob3V0IGhhdmluZyB0bworICAg
ICAgICAqIHVzZSBhbmd1bGFyIGFjY2VsZXJhdGlvbi4gIEEgZHJpdmVyJ3MgYW5ndWxhciBhY2Nl
bGVyYXRpb24gaXMgZ2VuZXJhbGx5IG5vdCBtZWFzdXJlZCwKKyAgICAgICAgKiBhbmQgaXMgaW5z
dGVhZCBjYWxjdWxhdGVkIGZyb20gc3VjY2Vzc2l2ZSBzYW1wbGVzIG9mIGFuZ3VsYXIgdmVsb2Np
dHkuCisgICAgICAgICogVGhpcyBsZWFkcyB0byBhIG5vaXN5IGFuZ3VsYXIgYWNjZWxlcmF0aW9u
IHZhbHVlcywgd2hpY2ggYXJlIGFsc28KKyAgICAgICAgKiBsYWdnZWQgZHVlIHRvIHRoZSBmaWx0
ZXJpbmcgcmVxdWlyZWQgdG8gcmVkdWNlIG5vaXNlIHRvIGFuIGFjY2VwdGFibGUgbGV2ZWwuCisg
ICAgICAgICovCisgICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxV29ybGRGcm9tRHJpdmVyUm90
YXRpb247CisgICAgICAgZG91YmxlIHZlY1dvcmxkRnJvbURyaXZlclRyYW5zbGF0aW9uWyAzIF07
CisKKyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFEcml2ZXJGcm9tSGVhZFJvdGF0aW9uOwor
ICAgICAgIGRvdWJsZSB2ZWNEcml2ZXJGcm9tSGVhZFRyYW5zbGF0aW9uWyAzIF07CisKKyAgICAg
ICAvKiBTdGF0ZSBvZiBkcml2ZXIgcG9zZSwgaW4gbWV0ZXJzIGFuZCByYWRpYW5zLiAqLworICAg
ICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBkcml2ZXIgdHJhY2tpbmcgcmVmZXJlbmNlIGluIGRyaXZl
ciB3b3JsZCBzcGFjZQorICAgICAgICogK1swXSAoeCkgaXMgcmlnaHQKKyAgICAgICAqICtbMV0g
KHkpIGlzIHVwCisgICAgICAgKiAtWzJdICh6KSBpcyBmb3J3YXJkCisgICAgICAgKi8KKyAgICAg
ICBkb3VibGUgdmVjUG9zaXRpb25bIDMgXTsKKworICAgICAgIC8qIFZlbG9jaXR5IG9mIHRoZSBw
b3NlIGluIG1ldGVycy9zZWNvbmQgKi8KKyAgICAgICBkb3VibGUgdmVjVmVsb2NpdHlbIDMgXTsK
KworICAgICAgIC8qIEFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBtZXRlcnMvc2Vjb25kICov
CisgICAgICAgZG91YmxlIHZlY0FjY2VsZXJhdGlvblsgMyBdOworCisgICAgICAgLyogT3JpZW50
YXRpb24gb2YgdGhlIHRyYWNrZXIsIHJlcHJlc2VudGVkIGFzIGEgcXVhdGVybmlvbiAqLworICAg
ICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcVJvdGF0aW9uOworCisgICAgICAgLyogQW5ndWxhciB2
ZWxvY2l0eSBvZiB0aGUgcG9zZSBpbiBheGlzLWFuZ2xlIAorICAgICAgICogcmVwcmVzZW50YXRp
b24uIFRoZSBkaXJlY3Rpb24gaXMgdGhlIGFuZ2xlIG9mCisgICAgICAgKiByb3RhdGlvbiBhbmQg
dGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5nbGUgYXJvdW5kCisgICAgICAgKiB0aGF0IGF4aXMgaW4g
cmFkaWFucy9zZWNvbmQuICovCisgICAgICAgZG91YmxlIHZlY0FuZ3VsYXJWZWxvY2l0eVsgMyBd
OworCisgICAgICAgLyogQW5ndWxhciBhY2NlbGVyYXRpb24gb2YgdGhlIHBvc2UgaW4gYXhpcy1h
bmdsZSAKKyAgICAgICAqIHJlcHJlc2VudGF0aW9uLiBUaGUgZGlyZWN0aW9uIGlzIHRoZSBhbmds
ZSBvZgorICAgICAgICogcm90YXRpb24gYW5kIHRoZSBtYWduaXR1ZGUgaXMgdGhlIGFuZ2xlIGFy
b3VuZAorICAgICAgICogdGhhdCBheGlzIGluIHJhZGlhbnMvc2Vjb25kXjIuICovCisgICAgICAg
ZG91YmxlIHZlY0FuZ3VsYXJBY2NlbGVyYXRpb25bIDMgXTsKKworICAgICAgIEVUcmFja2luZ1Jl
c3VsdCByZXN1bHQ7CisKKyAgICAgICBib29sIHBvc2VJc1ZhbGlkOworICAgICAgIGJvb2wgd2ls
bERyaWZ0SW5ZYXc7CisgICAgICAgYm9vbCBzaG91bGRBcHBseUhlYWRNb2RlbDsKKyAgICAgICBi
b29sIGRldmljZUlzQ29ubmVjdGVkOworfTsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXByZXNlbnRzIGEgc2luZ2xlIHRyYWNrZWQg
ZGV2aWNlIGluIGEgZHJpdmVyCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitjbGFzcyBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcgoreworcHVibGljOgorCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gTWFu
YWdlbWVudCBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLyoqIFRoaXMgaXMgY2FsbGVkIGJlZm9yZSBhbiBITUQgaXMgcmV0dXJu
ZWQgdG8gdGhlIGFwcGxpY2F0aW9uLiBJdCB3aWxsIGFsd2F5cyBiZQorICAgICAgICogY2FsbGVk
IGJlZm9yZSBhbnkgZGlzcGxheSBvciB0cmFja2luZyBtZXRob2RzLiBNZW1vcnkgYW5kIHByb2Nl
c3NvciB1c2UgYnkgdGhlCisgICAgICAgKiBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlciBvYmpl
Y3Qgc2hvdWxkIGJlIGtlcHQgdG8gYSBtaW5pbXVtIHVudGlsIGl0IGlzIGFjdGl2YXRlZC4KKyAg
ICAgICAqIFRoZSBwb3NlIGxpc3RlbmVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgdW50aWwg
RGVhY3RpdmF0ZSBpcyBjYWxsZWQsIGJ1dAorICAgICAgICogc2hvdWxkIG5vdCBiZSB1c2VkIGFm
dGVyIHRoYXQgcG9pbnQuICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3IgQWN0aXZhdGUo
IHVpbnQzMl90IHVuT2JqZWN0SWQgKSA9IDA7CisKKyAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQg
d2hlbiBUaGUgVlIgc3lzdGVtIGlzIHN3aXRjaGluZyBmcm9tIHRoaXMgSG1kIGJlaW5nIHRoZSBh
Y3RpdmUgZGlzcGxheQorICAgICAgICogdG8gYW5vdGhlciBIbWQgYmVpbmcgdGhlIGFjdGl2ZSBk
aXNwbGF5LiBUaGUgZHJpdmVyIHNob3VsZCBjbGVhbiB3aGF0ZXZlciBtZW1vcnkKKyAgICAgICAq
IGFuZCB0aHJlYWQgdXNlIGl0IGNhbiB3aGVuIGl0IGlzIGRlYWN0aXZhdGVkICovCisgICAgICAg
dmlydHVhbCB2b2lkIERlYWN0aXZhdGUoKSA9IDA7CisKKyAgICAgICAvKiogSGFuZGxlcyBhIHJl
cXVlc3QgZnJvbSB0aGUgc3lzdGVtIHRvIHB1dCB0aGlzIGRldmljZSBpbnRvIHN0YW5kYnkgbW9k
ZS4gV2hhdCB0aGF0IG1lYW5zIGlzIGRlZmluZWQgcGVyLWRldmljZS4gKi8KKyAgICAgICB2aXJ0
dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOworCisgICAgICAgLyoqIFJlcXVlc3RzIGEgY29t
cG9uZW50IGludGVyZmFjZSBvZiB0aGUgZHJpdmVyIGZvciBkZXZpY2Utc3BlY2lmaWMgZnVuY3Rp
b25hbGl0eS4gVGhlIGRyaXZlciBzaG91bGQgcmV0dXJuIE5VTEwKKyAgICAgICAqIGlmIHRoZSBy
ZXF1ZXN0ZWQgaW50ZXJmYWNlIG9yIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZC4gKi8KKyAgICAg
ICB2aXJ0dWFsIHZvaWQgKkdldENvbXBvbmVudCggY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFt
ZUFuZFZlcnNpb24gKSA9IDA7CisKKyAgICAgICAvKiogQSBWUiBDbGllbnQgaGFzIG1hZGUgdGhp
cyBkZWJ1ZyByZXF1ZXN0IG9mIHRoZSBkcml2ZXIuIFRoZSBzZXQgb2YgdmFsaWQgcmVxdWVzdHMg
aXMgZW50aXJlbHkKKyAgICAgICAqIHVwIHRvIHRoZSBkcml2ZXIgYW5kIHRoZSBjbGllbnQgdG8g
ZmlndXJlIG91dCwgYXMgaXMgdGhlIGZvcm1hdCBvZiB0aGUgcmVzcG9uc2UuIFJlc3BvbnNlcyB0
aGF0CisgICAgICAgKiBleGNlZWQgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgYnVmZmVyIHNo
b3VsZCBiZSB0cnVuY2F0ZWQgYW5kIG51bGwgdGVybWluYXRlZCAqLworICAgICAgIHZpcnR1YWwg
dm9pZCBEZWJ1Z1JlcXVlc3QoIGNvbnN0IGNoYXIgKnBjaFJlcXVlc3QsIGNoYXIgKnBjaFJlc3Bv
bnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFRyYWNr
aW5nIE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICB2aXJ0dWFsIERyaXZlclBvc2VfdCBHZXRQb3NlKCkgPSAwOworfTsKKworCisK
K3N0YXRpYyBjb25zdCBjaGFyICpJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJzaW9uID0g
IklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyXzAwNSI7CisKK30KKy8vIGl2cmRpc3BsYXljb21w
b25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3NlOiBUaGUgZGlzcGxheSBjb21w
b25lbnQgb24gYSBzaW5nbGUgdHJhY2tlZCBkZXZpY2UKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSRGlzcGxheUNvbXBvbmVu
dAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIERpc3BsYXkgTWV0
aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworICAgICAgICAgICAgICAvKiogU2l6ZSBhbmQgcG9zaXRpb24gdGhhdCB0aGUgd2luZG93
IG5lZWRzIHRvIGJlIG9uIHRoZSBWUiBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0V2luZG93Qm91bmRzKCBpbnQzMl90ICpwblgsIGludDMyX3QgKnBuWSwgdWludDMy
X3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAv
KiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlzIGV4dGVuZGluZyB0aGUgZGVza3RvcC4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzRGlzcGxheU9uRGVza3RvcCggKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZGlzcGxheSBpcyByZWFs
IGFuZCBub3QgYSBmaWN0aW9uYWwgZGlzcGxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBi
b29sIElzRGlzcGxheVJlYWxEaXNwbGF5KCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU3Vn
Z2VzdGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVuZGVyIHRhcmdldCB0aGF0IHRoZSBk
aXN0b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRS
ZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUoIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAq
cG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHZpZXdwb3J0IGlu
IHRoZSBmcmFtZSBidWZmZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9mIHRoZSBkaXN0b3J0aW9uIGlu
dG8gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldEV5ZU91dHB1dFZpZXdwb3J0KCBF
VlJFeWUgZUV5ZSwgdWludDMyX3QgKnBuWCwgdWludDMyX3QgKnBuWSwgdWludDMyX3QgKnBuV2lk
dGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogVGhlIGNv
bXBvbmVudHMgbmVjZXNzYXJ5IHRvIGJ1aWxkIHlvdXIgb3duIHByb2plY3Rpb24gbWF0cml4IGlu
IGNhc2UgeW91cgorICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9uIGlzIGRvaW5nIHNvbWV0aGlu
ZyBmYW5jeSBsaWtlIGluZmluaXRlIFogKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdl
dFByb2plY3Rpb25SYXcoIEVWUkV5ZSBlRXllLCBmbG9hdCAqcGZMZWZ0LCBmbG9hdCAqcGZSaWdo
dCwgZmxvYXQgKnBmVG9wLCBmbG9hdCAqcGZCb3R0b20gKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgZGlzdG9ydGlvbiBmdW5jdGlvbiBmb3IgdGhl
IHNwZWNpZmllZCBleWUgYW5kIGlucHV0IFVWcy4gVVZzIGdvIGZyb20gMCwwIGluCisgICAgICAg
ICAgICAgICogdGhlIHVwcGVyIGxlZnQgb2YgdGhhdCBleWUncyB2aWV3cG9ydCBhbmQgMSwxIGlu
IHRoZSBsb3dlciByaWdodCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0LiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIERpc3RvcnRpb25Db29yZGluYXRlc190IENvbXB1dGVEaXN0b3J0aW9uKCBFVlJF
eWUgZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWICkgPSAwOworCisgICAgICAgfTsKKworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICpJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24gPSAiSVZSRGlz
cGxheUNvbXBvbmVudF8wMDIiOworCit9CisKKy8vIGl2cmRyaXZlcmRpcmVjdG1vZGVjb21wb25l
bnQuaAorbmFtZXNwYWNlIHZyCit7CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBQdXJwb3NlOiBUaGlzIGNvbXBvbmVudCBpcyB1
c2VkIGZvciBkcml2ZXJzIHRoYXQgaW1wbGVtZW50IGRpcmVjdCBtb2RlIGVudGlyZWx5IG9uIHRo
ZWlyIG93bgorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgd2l0aG91dCBhbGxvd2luZyB0
aGUgVlIgQ29tcG9zaXRvciB0byBvd24gdGhlIHdpbmRvdy9kZXZpY2UuIENoYW5jZXMgYXJlIHlv
dSBkb24ndAorICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgbmVlZCB0byBpbXBsZW1lbnQg
dGhpcyBjb21wb25lbnQgaW4geW91ciBkcml2ZXIuCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIGNsYXNzIElWUkRyaXZlckRpcmVjdE1vZGVD
b21wb25lbnQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorCisgICAgICAgICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIERpcmVj
dCBtb2RlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogU3BlY2lmaWMgdG8gT2N1bHVzIGNvbXBv
c2l0b3Igc3VwcG9ydCwgdGV4dHVyZXMgc3VwcGxpZWQgbXVzdCBiZSBjcmVhdGVkIHVzaW5nIHRo
aXMgbWV0aG9kLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgQ3JlYXRlU3dhcFRleHR1
cmVTZXQoIHVpbnQzMl90IHVuUGlkLCB1aW50MzJfdCB1bkZvcm1hdCwgdWludDMyX3QgdW5XaWR0
aCwgdWludDMyX3QgdW5IZWlnaHQsIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3QoICpwU2hhcmVk
VGV4dHVyZUhhbmRsZXMgKVsgMyBdICkge30KKworICAgICAgICAgICAgICAvKiogVXNlZCB0byB0
ZXh0dXJlcyBjcmVhdGVkIHVzaW5nIENyZWF0ZVN3YXBUZXh0dXJlU2V0LiAgT25seSBvbmUgb2Yg
dGhlIHNldCdzIGhhbmRsZXMgbmVlZHMgdG8gYmUgdXNlZCB0byBkZXN0cm95IHRoZSBlbnRpcmUg
c2V0LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveVN3YXBUZXh0dXJlU2V0
KCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1cmVIYW5kbGUgKSB7fQorCisg
ICAgICAgICAgICAgIC8qKiBVc2VkIHRvIHB1cmdlIGFsbCB0ZXh0dXJlIHNldHMgZm9yIGEgZ2l2
ZW4gcHJvY2Vzcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIERlc3Ryb3lBbGxTd2Fw
VGV4dHVyZVNldHMoIHVpbnQzMl90IHVuUGlkICkge30KKworICAgICAgICAgICAgICAvKiogQWZ0
ZXIgUHJlc2VudCByZXR1cm5zLCBjYWxscyB0aGlzIHRvIGdldCB0aGUgbmV4dCBpbmRleCB0byB1
c2UgZm9yIHJlbmRlcmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldE5leHRT
d2FwVGV4dHVyZVNldEluZGV4KCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1
cmVIYW5kbGVzWyAyIF0sIHVpbnQzMl90KCAqcEluZGljZXMgKVsgMiBdICkge30KKworICAgICAg
ICAgICAgICAvKiogQ2FsbCBvbmNlIHBlciBsYXllciB0byBkcmF3IGZvciB0aGlzIGZyYW1lLiAg
T25lIHNoYXJlZCB0ZXh0dXJlIGhhbmRsZSBwZXIgZXllLiAgVGV4dHVyZXMgbXVzdCBiZSBjcmVh
dGVkCisgICAgICAgICAgICAgICogdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQgYW5kIHNob3Vs
ZCBiZSBhbHRlcm5hdGVkIHBlciBmcmFtZS4gIENhbGwgUHJlc2VudCBvbmNlIGFsbCBsYXllcnMg
aGF2ZSBiZWVuIHN1Ym1pdHRlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFN1Ym1p
dExheWVyKCB2cjo6U2hhcmVkVGV4dHVyZUhhbmRsZV90IHNoYXJlZFRleHR1cmVIYW5kbGVzWyAy
IF0sIGNvbnN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCggJmJvdW5kcyApWyAyIF0sIGNvbnN0IHZy
OjpIbWRNYXRyaXgzNF90ICpwUG9zZSApIHt9CisKKyAgICAgICAgICAgICAgLyoqIFN1Ym1pdHMg
cXVldWVkIGxheWVycyBmb3IgZGlzcGxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IFByZXNlbnQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc3luY1RleHR1cmUgKSB7fQorCisg
ICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJEcml2ZXJEaXJlY3RNb2Rl
Q29tcG9uZW50X1ZlcnNpb24gPSAiSVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudF8wMDIiOwor
Cit9CisKKy8vIGl2cmNvbnRyb2xsZXJjb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisKKwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAv
LyBQdXJwb3NlOiBDb250cm9sbGVyIGFjY2VzcyBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZS4K
KyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Y2xhc3MgSVZSQ29udHJvbGxlckNvbXBvbmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisK
KyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
ICAgICAgICAgICAgIC8vIENvbnRyb2xsZXIgTWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgICAvKiogR2V0
cyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhIGNvbnRyb2xsZXIuICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgVlJDb250cm9sbGVyU3RhdGVfdCBHZXRDb250cm9sbGVyU3RhdGUoICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0IHByb3BlcnR5LiBJZiB0aGUgcHJvcGVy
dHkgaXMgbm90IGF2YWlsYWJsZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBUcmlnZ2VySGFwdGljUHVsc2UoIHVpbnQzMl90IHVuQXhp
c0lkLCB1aW50MTZfdCB1c1B1bHNlRHVyYXRpb25NaWNyb3NlY29uZHMgKSA9IDA7CisKKyAgICAg
ICB9OworCisKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJDb250cm9sbGVyQ29tcG9u
ZW50X1ZlcnNpb24gPSAiSVZSQ29udHJvbGxlckNvbXBvbmVudF8wMDEiOworCit9CisvLyBpdnJj
YW1lcmFjb21wb25lbnQuaAorbmFtZXNwYWNlIHZyCit7CisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBJQ2Ft
ZXJhVmlkZW9TaW5rQ2FsbGJhY2sKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgT25DYW1lcmFWaWRlb1NpbmtDYWxsYmFjaygpID0gMDsKKyAgICAg
ICB9OworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIFB1cnBvc2U6IFRoZSBjYW1lcmEgb24gYSBzaW5nbGUgdHJhY2tlZCBkZXZpY2UK
KyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Y2xhc3MgSVZSQ2FtZXJhQ29tcG9uZW50CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAg
ICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
ICAgICAgIC8vIENhbWVyYSBNZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2Ft
ZXJhRnJhbWVEaW1lbnNpb25zKCB2cjo6RUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG5WaWRlb1N0
cmVhbUZvcm1hdCwgdWludDMyX3QgKnBXaWR0aCwgdWludDMyX3QgKnBIZWlnaHQgKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFGcmFtZUJ1ZmZlcmluZ1JlcXVpcmVt
ZW50cyggaW50ICpwRGVmYXVsdEZyYW1lUXVldWVTaXplLCB1aW50MzJfdCAqcEZyYW1lQnVmZmVy
RGF0YVNpemUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFGcmFt
ZUJ1ZmZlcmluZyggaW50IG5GcmFtZUJ1ZmZlckNvdW50LCB2b2lkICoqcHBGcmFtZUJ1ZmZlcnMs
IHVpbnQzMl90IG5GcmFtZUJ1ZmZlckRhdGFTaXplICkgPSAwOworICAgICAgICAgICAgICB2aXJ0
dWFsIGJvb2wgU2V0Q2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQoIHZyOjpFQ2FtZXJhVmlkZW9TdHJl
YW1Gb3JtYXQgblZpZGVvU3RyZWFtRm9ybWF0ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgR2V0Q2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQo
KSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTdGFydFZpZGVvU3RyZWFtKCkgPSAw
OworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU3RvcFZpZGVvU3RyZWFtKCkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNWaWRlb1N0cmVhbUFjdGl2ZSggYm9vbCAqcGJQYXVz
ZWQsIGZsb2F0ICpwZmxFbGFwc2VkVGltZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBj
b25zdCB2cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZV90ICpHZXRWaWRlb1N0cmVhbUZyYW1lKCkg
PSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUmVsZWFzZVZpZGVvU3RyZWFtRnJhbWUo
IGNvbnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKnBGcmFtZUltYWdlICkgPSAwOwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0QXV0b0V4cG9zdXJlKCBib29sIGJFbmFibGUg
KSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBQYXVzZVZpZGVvU3RyZWFtKCkgPSAw
OworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgUmVzdW1lVmlkZW9TdHJlYW0oKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFEaXN0b3J0aW9uKCBmbG9hdCBmbElu
cHV0VSwgZmxvYXQgZmxJbnB1dFYsIGZsb2F0ICpwZmxPdXRwdXRVLCBmbG9hdCAqcGZsT3V0cHV0
ViApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYVByb2plY3Rpb24o
IHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZsWk5lYXIs
IGZsb2F0IGZsWkZhciwgdnI6OkhtZE1hdHJpeDQ0X3QgKnBQcm9qZWN0aW9uICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0RnJhbWVSYXRlKCBpbnQgbklTUEZyYW1lUmF0ZSwg
aW50IG5TZW5zb3JGcmFtZVJhdGUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBT
ZXRDYW1lcmFWaWRlb1NpbmtDYWxsYmFjayggdnI6OklDYW1lcmFWaWRlb1NpbmtDYWxsYmFjayAq
cENhbWVyYVZpZGVvU2lua0NhbGxiYWNrICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0aWJpbGl0eU1v
ZGUgKnBDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVh
bCBib29sIFNldENhbWVyYUNvbXBhdGliaWxpdHlNb2RlKCB2cjo6RUNhbWVyYUNvbXBhdGliaWxp
dHlNb2RlIG5DYW1lcmFDb21wYXRpYmlsaXR5TW9kZSApID0gMDsKKyAgICAgICAgICAgICAgdmly
dHVhbCBib29sIEdldENhbWVyYUZyYW1lQm91bmRzKCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCB1aW50MzJfdCAqcExlZnQsIHVpbnQzMl90ICpwVG9wLCB1aW50MzJf
dCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVh
bCBib29sIEdldENhbWVyYUludHJpbnNpY3MoIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqcEZvY2FsTGVuZ3RoLCBIbWRWZWN0b3IyX3QgKnBD
ZW50ZXIgKSA9IDA7CisgICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpJVlJD
YW1lcmFDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJDYW1lcmFDb21wb25lbnRfMDAyIjsKK30KKy8v
IGl0cmFja2VkZGV2aWNlZHJpdmVycHJvdmlkZXIuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNz
IElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRyYWNrZWREZXZpY2VEcml2ZXJJ
bmZvX3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OwordHlwZWRlZiBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IERyaXZlckhhbmRsZV90OworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJvdmlkZWQg
YnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkgCisqIHRoZSBzeXN0ZW0g
d2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhlc2UgY2hhbmdlcyBtdXN0
CisqIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mgb2YgdGhlIGRldmljZSBi
ZWNhdXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFuZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBkZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUkRyaXZlckNvbnRleHQKK3sKK3B1YmxpYzoK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgcmVxdWVzdGVkIGludGVyZmFjZS4gSWYgdGhlIGludGVy
ZmFjZSB3YXMgbm90IGF2YWlsYWJsZSBpdCB3aWxsIHJldHVybiBOVUxMIGFuZCBmaWxsCisgICAg
ICAgKiBvdXQgdGhlIGVycm9yLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2VuZXJpY0lu
dGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpw
ZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9wZXJ0
eSBjb250YWluZXIgaGFuZGxlIGZvciB0aGlzIGRyaXZlciAqLworICAgICAgIHZpcnR1YWwgRHJp
dmVySGFuZGxlX3QgR2V0RHJpdmVySGFuZGxlKCkgPSAwOworfTsKKworCisvKiogVGhpcyBpbnRl
cmZhY2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBlYWNoIGRyaXZlci4gSXQgd2lsbCBiZSBsb2Fk
ZWQgaW4gdnJzZXJ2ZXIuZXhlICovCitjbGFzcyBJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVy
Cit7CitwdWJsaWM6CisgICAgICAgLyoqIGluaXRpYWxpemVzIHRoZSBkcml2ZXIuIFRoaXMgd2ls
bCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBtZXRob2RzIGFyZSBjYWxsZWQuCisgICAgICAg
KiBJZiBJbml0IHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiBWUkluaXRFcnJvcl9Ob25lIHRo
ZSBkcml2ZXIgRExMIHdpbGwgYmUgdW5sb2FkZWQuCisgICAgICAgKgorICAgICAgICogcERyaXZl
ckhvc3Qgd2lsbCBuZXZlciBiZSBOVUxMLCBhbmQgd2lsbCBhbHdheXMgYmUgYSBwb2ludGVyIHRv
IGEgSVNlcnZlckRyaXZlckhvc3QgaW50ZXJmYWNlCisgICAgICAgKgorICAgICAgICogcGNoVXNl
ckRyaXZlckNvbmZpZ0RpciAtIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgd2hl
cmUgdGhlIGRyaXZlciBzaG91bGQgc3RvcmUgdXNlcgorICAgICAgICogICAgICAgY29uZmlnIGZp
bGVzLgorICAgICAgICogcGNoRHJpdmVySW5zdGFsbERpciAtIFRoZSBhYnNvbHV0ZSBwYXRoIG9m
IHRoZSByb290IGRpcmVjdG9yeSBmb3IgdGhlIGRyaXZlci4KKyAgICAgICAqLworICAgICAgIHZp
cnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZlckNvbnRleHQgKnBEcml2ZXJDb250ZXh0
ICkgPSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCB0aGUgZHJpdmVyIHJpZ2h0IGJlZm9yZSBp
dCBpcyB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkgPSAwOworCisg
ICAgICAgLyoqIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIElUcmFja2VkRGV2aWNlU2VydmVy
RHJpdmVyIGludGVyZmFjZSB1c2VkIGJ5IHRoaXMgZHJpdmVyICovCisgICAgICAgdmlydHVhbCBj
b25zdCBjaGFyICogY29uc3QgKkdldEludGVyZmFjZVZlcnNpb25zKCkgPSAwOworCisgICAgICAg
LyoqIEFsbG93cyB0aGUgZHJpdmVyIGRvIHRvIHNvbWUgd29yayBpbiB0aGUgbWFpbiBsb29wIG9m
IHRoZSBzZXJ2ZXIuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJ1bkZyYW1lKCkgPSAwOworCisK
KyAgICAgICAvLyAtLS0tLS0tLS0tLS0gIFBvd2VyIFN0YXRlIEZ1bmN0aW9ucyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAvLworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZHJpdmVy
IHdhbnRzIHRvIGJsb2NrIFN0YW5kYnkgbW9kZS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgU2hv
dWxkQmxvY2tTdGFuZGJ5TW9kZSgpID0gMDsKKworICAgICAgIC8qKiBDYWxsZWQgd2hlbiB0aGUg
c3lzdGVtIGlzIGVudGVyaW5nIFN0YW5kYnkgbW9kZS4gVGhlIGRyaXZlciBzaG91bGQgc3dpdGNo
IGl0c2VsZiBpbnRvIHdoYXRldmVyIHNvcnQgb2YgbG93LXBvd2VyCisgICAgICAgKiBzdGF0ZSBp
dCBoYXMuICovCisgICAgICAgdmlydHVhbCB2b2lkIEVudGVyU3RhbmRieSgpID0gMDsKKworICAg
ICAgIC8qKiBDYWxsZWQgd2hlbiB0aGUgc3lzdGVtIGlzIGxlYXZpbmcgU3RhbmRieSBtb2RlLiBU
aGUgZHJpdmVyIHNob3VsZCBzd2l0Y2ggaXRzZWxmIGJhY2sgdG8KKyAgICAgICBmdWxsIG9wZXJh
dGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgTGVhdmVTdGFuZGJ5KCkgPSAwOworCit9Owor
CisKK3N0YXRpYyBjb25zdCBjaGFyICpJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyX1ZlcnNp
b24gPSAiSVNlcnZlclRyYWNrZWREZXZpY2VQcm92aWRlcl8wMDQiOworCisKKworCisvKiogVGhp
cyBpbnRlcmZhY2UgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBlYWNoIGRyaXZlci4gSXQgd2lsbCBi
ZSBsb2FkZWQgaW4gdnJjbGllbnQuZGxsICovCitjbGFzcyBJVlJXYXRjaGRvZ1Byb3ZpZGVyCit7
CitwdWJsaWM6CisgICAgICAgLyoqIGluaXRpYWxpemVzIHRoZSBkcml2ZXIgaW4gd2F0Y2hkb2cg
bW9kZS4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBJbml0KCBJVlJEcml2ZXJDb250
ZXh0ICpwRHJpdmVyQ29udGV4dCApID0gMDsKKworICAgICAgIC8qKiBjbGVhbnMgdXAgdGhlIGRy
aXZlciByaWdodCBiZWZvcmUgaXQgaXMgdW5sb2FkZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQg
Q2xlYW51cCgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpJVlJXYXRjaGRvZ1Byb3Zp
ZGVyX1ZlcnNpb24gPSAiSVZSV2F0Y2hkb2dQcm92aWRlcl8wMDEiOworCit9CisvLyBpdnJwcm9w
ZXJ0aWVzLmgKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZSB2cgoreworCisgICAgICAg
ZW51bSBFUHJvcGVydHlXcml0ZVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIFByb3BlcnR5
V3JpdGVfU2V0ID0gMCwKKyAgICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9FcmFzZSA9IDEsCisg
ICAgICAgICAgICAgIFByb3BlcnR5V3JpdGVfU2V0RXJyb3IgPSAyCisgICAgICAgfTsKKworICAg
ICAgIHN0cnVjdCBQcm9wZXJ0eVdyaXRlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKKyAgICAgICAgICAgICAgRVByb3BlcnR5V3JpdGVUeXBl
IHdyaXRlVHlwZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVTZXRFcnJv
cjsKKyAgICAgICAgICAgICAgdm9pZCAqcHZCdWZmZXI7CisgICAgICAgICAgICAgIHVpbnQzMl90
IHVuQnVmZmVyU2l6ZTsKKyAgICAgICAgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5UYWc7Cisg
ICAgICAgICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAgICAgfTsKKwor
ICAgICAgIHN0cnVjdCBQcm9wZXJ0eVJlYWRfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsK
KyAgICAgICAgICAgICAgdWludDMyX3QgdW5CdWZmZXJTaXplOworICAgICAgICAgICAgICBQcm9w
ZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAgICAgICAgICAgICAgdWludDMyX3QgdW5SZXF1aXJlZEJ1
ZmZlclNpemU7CisgICAgICAgICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7Cisg
ICAgICAgfTsKKworCitjbGFzcyBJVlJQcm9wZXJ0aWVzCit7CitwdWJsaWM6CisKKyAgICAgICAv
KiogUmVhZHMgYSBzZXQgb2YgcHJvcGVydGllcyBhdG9taWNhbGx5LiBTZWUgdGhlIFByb3BlcnR5
UmVhZEJhdGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLworICAgICAgIHZpcnR1
YWwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFJlYWRQcm9wZXJ0eUJhdGNoKCBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBQcm9wZXJ0eVJlYWRfdCAqcEJhdGNoLCB1
aW50MzJfdCB1bkJhdGNoRW50cnlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBXcml0ZXMgYSBz
ZXQgb2YgcHJvcGVydGllcyBhdG9taWNhbGx5LiBTZWUgdGhlIFByb3BlcnR5V3JpdGVCYXRjaF90
IHN0cnVjdCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBXcml0ZVByb3BlcnR5QmF0Y2goIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5V3JpdGVfdCAqcEJhdGNoLCB1aW50MzJfdCB1
bkJhdGNoRW50cnlDb3VudCApID0gMDsKKworICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRo
YXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGVycm9yLiBUaGUgc3Ry
aW5nIHdpbGwgYmUgdGhlIG5hbWUKKyAgICAgICAqIG9mIHRoZSBlcnJvciBlbnVtIHZhbHVlIGZv
ciBhbGwgdmFsaWQgZXJyb3IgY29kZXMgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdl
dFByb3BFcnJvck5hbWVGcm9tRW51bSggRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yICkgPSAw
OworCisgICAgICAgLyoqIFJldHVybnMgYSBjb250YWluZXIgaGFuZGxlIGdpdmVuIGEgdHJhY2tl
ZCBkZXZpY2UgaW5kZXggKi8KKyAgICAgICB2aXJ0dWFsIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRyYWNrZWREZXZpY2VJbmRleF90
IG5EZXZpY2UgKSA9IDA7CisKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSUHJv
cGVydGllc19WZXJzaW9uID0gIklWUlByb3BlcnRpZXNfMDAxIjsKKworY2xhc3MgQ1ZSUHJvcGVy
dHlIZWxwZXJzCit7CitwdWJsaWM6CisgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzKCBJVlJQcm9w
ZXJ0aWVzICogcFByb3BlcnRpZXMgKSA6IG1fcFByb3BlcnRpZXMoIHBQcm9wZXJ0aWVzICkge30K
KworICAgICAgIC8qKiBSZXR1cm5zIGEgc2NhbGVyIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGlu
ZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgdmFsdWUgdHlwZSBkb2VzIG5vdCBtYXRj
aCwKKyAgICAgICAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gZmFsc2UuICovCisgICAgICAg
Ym9vbCBHZXRCb29sUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yICpwRXJyb3IgPSAwTCApOworICAgICAgIGZsb2F0IEdldEZsb2F0UHJvcGVydHkoIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOworICAgICAg
IGludDMyX3QgR2V0SW50MzJQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENv
bnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgdWludDY0X3QgR2V0VWludDY0UHJvcGVy
dHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCAp
OworCisgICAgICAgLyoqIFJldHVybnMgYSBzaW5nbGUgdHlwZWQgcHJvcGVydHkuIElmIHRoZSBk
ZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcg
dHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQg
cmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhv
bGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGluZworICAgICAgICogbnVsbC4gU3Ry
aW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVmZmVycyBvZiBrX3VuTWF4UHJvcGVydHlTdHJpbmdT
aXplIGNoYXJhY3RlcnMuICovCisgICAgICAgdWludDMyX3QgR2V0UHJvcGVydHkoIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgVlJfT1VUX1NUUklORygpIHZvaWQgKnB2QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZl
clNpemUsIFByb3BlcnR5VHlwZVRhZ190ICpwdW5UYWcsIEVUcmFja2VkUHJvcGVydHlFcnJvciAq
cEVycm9yID0gMEwgKTsKKworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHku
IElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3Qg
YSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVybiAwLiBPdGhl
cndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVjZXNz
YXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGluZworICAgICAgICog
bnVsbC4gU3RyaW5ncyB3aWxsIGFsd2F5cyBmaXQgaW4gYnVmZmVycyBvZiBrX3VuTWF4UHJvcGVy
dHlTdHJpbmdTaXplIGNoYXJhY3RlcnMuICovCisgICAgICAgdWludDMyX3QgR2V0U3RyaW5nUHJv
cGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1
aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwg
KTsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgc3RyaW5nIHByb3BlcnR5IGFzIGEgc3RkOjpzdHJp
bmcuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBu
b3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyAgICAgICAqIHJldHVybiBhbiBl
bXB0eSBzdHJpbmcuICovCisgICAgICAgc3RkOjpzdHJpbmcgR2V0U3RyaW5nUHJvcGVydHkoIHZy
OjpQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yID0gbnVs
bHB0ciApOworCisgICAgICAgLyoqIFNldHMgYSBzY2FsZXIgcHJvcGVydHkuIFRoZSBuZXcgdmFs
dWUgd2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRvIGdldCB0aGlzIHBy
b3BlcnR5IGluIGFueSBwcm9jZXNzLiAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBT
ZXRCb29sUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5k
bGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgYm9vbCBiTmV3VmFsdWUgKTsKKyAgICAg
ICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCBmbG9hdCBmTmV3VmFsdWUgKTsKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0SW50
MzJQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBpbnQzMl90IG5OZXdWYWx1ZSApOworICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRVaW50NjRQcm9wZXJ0eSggUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCB1aW50NjRfdCB1bE5ld1ZhbHVlICk7CisKKyAgICAgICAvKiogU2V0cyBhIHN0cmluZyBwcm9w
ZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNh
bGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yIFNldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNvbnN0
IGNoYXIgKnBjaE5ld1ZhbHVlICk7CisKKyAgICAgICAvKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBw
cm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50
IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIFNldFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHZvaWQgKnB2
TmV3VmFsdWUsIHVpbnQzMl90IHVuTmV3VmFsdWVTaXplLCBQcm9wZXJ0eVR5cGVUYWdfdCB1blRh
ZyApOworCisgICAgICAgLyoqIFNldHMgdGhlIGVycm9yIHJldHVybiB2YWx1ZSBmb3IgYSBwcm9w
ZXJ0eS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFsbCBzdWJzZXF1ZW50IHJlcXVl
c3RzIHRvIGdldCB0aGUgcHJvcGVydHkgKi8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
U2V0UHJvcGVydHlFcnJvciggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
ZUVycm9yICk7CisKKyAgICAgICAvKiogQ2xlYXJzIGFueSB2YWx1ZSBvciBlcnJvciBzZXQgZm9y
IHRoZSBwcm9wZXJ0eS4gKi8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgRXJhc2VQcm9w
ZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wICk7CisKKyAgICAgICAvKiBUdXJucyBhIGRldmljZSBpbmRl
eCBpbnRvIGEgcHJvcGVydHkgY29udGFpbmVyIGhhbmRsZS4gKi8KKyAgICAgICBQcm9wZXJ0eUNv
bnRhaW5lckhhbmRsZV90IFRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBUcmFja2Vk
RGV2aWNlSW5kZXhfdCBuRGV2aWNlICkgeyByZXR1cm4gbV9wUHJvcGVydGllcy0+VHJhY2tlZERl
dmljZVRvUHJvcGVydHlDb250YWluZXIoIG5EZXZpY2UgKTsgIH0KKworcHJpdmF0ZToKKyAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgIFQgR2V0UHJvcGVydHlIZWxwZXIoIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IsIFQgYkRlZmF1bHQsIFBy
b3BlcnR5VHlwZVRhZ190IHVuVHlwZVRhZyApOworCisgICAgICAgSVZSUHJvcGVydGllcyAqbV9w
UHJvcGVydGllczsKK307CisKKworaW5saW5lIHVpbnQzMl90IENWUlByb3BlcnR5SGVscGVyczo6
R2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklORygpIHZvaWQgKnB2QnVm
ZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIFByb3BlcnR5VHlwZVRhZ190ICpwdW5UYWcsIEVU
cmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBQcm9wZXJ0eVJlYWRfdCBi
YXRjaDsKKyAgICAgICBiYXRjaC5wcm9wID0gcHJvcDsKKyAgICAgICBiYXRjaC5wdkJ1ZmZlciA9
IHB2QnVmZmVyOworICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6ZSA9IHVuQnVmZmVyU2l6ZTsKKwor
ICAgICAgIG1fcFByb3BlcnRpZXMtPlJlYWRQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRs
ZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICBpZiAoIHBFcnJvciApCisgICAgICAgeworICAgICAg
ICAgICAgICAqcEVycm9yID0gYmF0Y2guZUVycm9yOworICAgICAgIH0KKworICAgICAgIGlmICgg
cHVuVGFnICkKKyAgICAgICB7CisgICAgICAgICAgICAgICpwdW5UYWcgPSBiYXRjaC51blRhZzsK
KyAgICAgICB9CisKKyAgICAgICByZXR1cm4gYmF0Y2gudW5SZXF1aXJlZEJ1ZmZlclNpemU7Cit9
CisKKworLyoqIFNldHMgYSBzaW5nbGUgdHlwZWQgcHJvcGVydHkuIFRoZSBuZXcgdmFsdWUgd2ls
bCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRvIGdldCB0aGlzIHByb3BlcnR5
IGluIGFueSBwcm9jZXNzLiAqLworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9w
ZXJ0eUhlbHBlcnM6OlNldFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29u
dGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHZvaWQgKnB2TmV3VmFs
dWUsIHVpbnQzMl90IHVuTmV3VmFsdWVTaXplLCBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZyApCit7
CisgICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOworICAgICAgIGJhdGNoLndyaXRlVHlwZSA9
IFByb3BlcnR5V3JpdGVfU2V0OworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJh
dGNoLnB2QnVmZmVyID0gcHZOZXdWYWx1ZTsKKyAgICAgICBiYXRjaC51bkJ1ZmZlclNpemUgPSB1
bk5ld1ZhbHVlU2l6ZTsKKyAgICAgICBiYXRjaC51blRhZyA9IHVuVGFnOworCisgICAgICAgbV9w
UHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNo
LCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworfQorCisKKy8qKiBSZXR1cm5z
IGEgc3RyaW5nIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0
aGUgcHJvcGVydHkgaXMgbm90IGEgc3RyaW5nIHR5cGUgdGhpcyBmdW5jdGlvbiB3aWxsCisqIHJl
dHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFpbGlu
ZworKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQ
cm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KK2lubGluZSB1aW50MzJfdCBDVlJQcm9w
ZXJ0eUhlbHBlcnM6OkdldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFZSX09VVF9T
VFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVHJhY2tlZFBy
b3BlcnR5RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5UYWc7
CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yOworICAgICAgIHVpbnQzMl90IHVu
UmVxdWlyZWRTaXplID0gR2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwY2hW
YWx1ZSwgdW5CdWZmZXJTaXplLCAmdW5UYWcsICZlcnJvciApOworICAgICAgIGlmICggdW5UYWcg
IT0ga191blN0cmluZ1Byb3BlcnR5VGFnICYmIGVycm9yID09IFRyYWNrZWRQcm9wX1N1Y2Nlc3Mg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgZXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFU
eXBlOworICAgICAgIH0KKworICAgICAgIGlmICggcEVycm9yICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgICpwRXJyb3IgPSBlcnJvcjsKKyAgICAgICB9CisKKyAgICAgICBpZiAoIGVycm9yICE9
IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBwY2hW
YWx1ZSAmJiB1bkJ1ZmZlclNpemUgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAqcGNoVmFsdWUgPSAnXDAnOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAg
ICAgcmV0dXJuIHVuUmVxdWlyZWRTaXplOworfQorCisKKy8qKiBSZXR1cm5zIGEgc3RyaW5nIHBy
b3BlcnR5IGFzIGEgc3RkOjpzdHJpbmcuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlk
IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwK
KyogcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4gKi8KK2lubGluZSBzdGQ6OnN0cmluZyBDVlJQcm9w
ZXJ0eUhlbHBlcnM6OkdldFN0cmluZ1Byb3BlcnR5KCB2cjo6UHJvcGVydHlDb250YWluZXJIYW5k
bGVfdCB1bENvbnRhaW5lciwgdnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdnI6OkVU
cmFja2VkUHJvcGVydHlFcnJvciAqcGVFcnJvciApCit7CisgICAgICAgY2hhciBidWZbMTAyNF07
CisgICAgICAgdnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciBlcnI7CisgICAgICAgdWludDMyX3Qg
dW5SZXF1aXJlZEJ1ZmZlckxlbiA9IEdldFN0cmluZ1Byb3BlcnR5KCB1bENvbnRhaW5lciwgcHJv
cCwgYnVmLCBzaXplb2YoYnVmKSwgJmVyciApOworCisgICAgICAgc3RkOjpzdHJpbmcgc1Jlc3Vs
dDsKKworICAgICAgIGlmICggZXJyID09IFRyYWNrZWRQcm9wX1N1Y2Nlc3MgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgc1Jlc3VsdCA9IGJ1ZjsKKyAgICAgICB9CisgICAgICAgZWxzZSBpZiAo
IGVyciA9PSBUcmFja2VkUHJvcF9CdWZmZXJUb29TbWFsbCApCisgICAgICAgeworICAgICAgICAg
ICAgICBjaGFyICpwY2hCdWZmZXIgPSBuZXcgY2hhclt1blJlcXVpcmVkQnVmZmVyTGVuXTsKKyAg
ICAgICAgICAgICAgdW5SZXF1aXJlZEJ1ZmZlckxlbiA9IEdldFN0cmluZ1Byb3BlcnR5KCB1bENv
bnRhaW5lciwgcHJvcCwgcGNoQnVmZmVyLCB1blJlcXVpcmVkQnVmZmVyTGVuLCAmZXJyICk7Cisg
ICAgICAgICAgICAgIHNSZXN1bHQgPSBwY2hCdWZmZXI7CisgICAgICAgICAgICAgIGRlbGV0ZVtd
IHBjaEJ1ZmZlcjsKKyAgICAgICB9CisKKyAgICAgICBpZiAoIHBlRXJyb3IgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgKnBlRXJyb3IgPSBlcnI7CisgICAgICAgfQorCisgICAgICAgcmV0dXJu
IHNSZXN1bHQ7Cit9CisKKworLyoqIFNldHMgYSBzdHJpbmcgcHJvcGVydHkuIFRoZSBuZXcgdmFs
dWUgd2lsbCBiZSByZXR1cm5lZCBvbiBhbnkgc3Vic2VxdWVudCBjYWxsIHRvIGdldCB0aGlzIHBy
b3BlcnR5IGluIGFueSBwcm9jZXNzLiAqLworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldFN0cmluZ1Byb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGNv
bnN0IGNoYXIgKnBjaE5ld1ZhbHVlICkKK3sKKyAgICAgICBpZiAoICFwY2hOZXdWYWx1ZSApCisg
ICAgICAgICAgICAgIHJldHVybiBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uOworCisgICAg
ICAgLy8gdGhpcyBpcyBzdHJsZW4gd2l0aG91dCB0aGUgZGVwZW5kZW5jeSBvbiBzdHJpbmcuaAor
ICAgICAgIGNvbnN0IGNoYXIgKnBjaEN1cnIgPSBwY2hOZXdWYWx1ZTsKKyAgICAgICB3aGlsZSAo
ICpwY2hDdXJyICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaEN1cnIrKzsKKyAgICAgICB9
CisKKyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAo
dm9pZCAqKXBjaE5ld1ZhbHVlLCAodWludDMyX3QpKHBjaEN1cnIgLSBwY2hOZXdWYWx1ZSkgKyAx
LCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgKTsKK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
aW5saW5lIFQgQ1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eUhlbHBlciggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVsdCwgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UeXBlVGFnICkKK3sKKyAgICAgICBUIGJWYWx1ZTsKKyAgICAgICBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgZUVycm9yOworICAgICAgIFByb3BlcnR5VHlwZVRhZ190IHVuUmVh
ZFRhZzsKKyAgICAgICBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZiVmFs
dWUsIHNpemVvZiggYlZhbHVlICksICZ1blJlYWRUYWcsICZlRXJyb3IgKTsKKyAgICAgICBpZiAo
IHVuUmVhZFRhZyAhPSB1blR5cGVUYWcgJiYgZUVycm9yID09IFRyYWNrZWRQcm9wX1N1Y2Nlc3Mg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgZUVycm9yID0gVHJhY2tlZFByb3BfV3JvbmdEYXRh
VHlwZTsKKyAgICAgICB9OworCisgICAgICAgaWYgKCBwRXJyb3IgKQorICAgICAgICAgICAgICAq
cEVycm9yID0gZUVycm9yOworICAgICAgIGlmICggZUVycm9yICE9IFRyYWNrZWRQcm9wX1N1Y2Nl
c3MgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGJEZWZhdWx0OworICAgICAgIH0K
KyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gYlZhbHVlOworICAg
ICAgIH0KK30KKworCitpbmxpbmUgYm9vbCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEJvb2xQcm9w
ZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7
CisgICAgICAgcmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGJvb2w+KCB1bENvbnRhaW5lckhhbmRs
ZSwgcHJvcCwgcEVycm9yLCBmYWxzZSwga191bkJvb2xQcm9wZXJ0eVRhZyApOworfQorCisKK2lu
bGluZSBmbG9hdCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEZsb2F0UHJvcGVydHkoIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVy
biBHZXRQcm9wZXJ0eUhlbHBlcjxmbG9hdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJy
b3IsIDAuZiwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIGludDMyX3QgQ1ZS
UHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRs
ZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFj
a2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICByZXR1cm4gR2V0UHJvcGVydHlI
ZWxwZXI8aW50MzJfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5J
bnQzMlByb3BlcnR5VGFnICk7Cit9CisKK2lubGluZSB1aW50NjRfdCBDVlJQcm9wZXJ0eUhlbHBl
cnM6OkdldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciAqcEVycm9yICkKK3sKKyAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8dWludDY0
X3Q+KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgcEVycm9yLCAwLCBrX3VuVWludDY0UHJvcGVy
dHlUYWcgKTsKK30KKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhl
bHBlcnM6OlNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRh
aW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSAp
Cit7CisgICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwg
JmJOZXdWYWx1ZSwgc2l6ZW9mKCBiTmV3VmFsdWUgKSwga191bkJvb2xQcm9wZXJ0eVRhZyApOwor
fQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0
RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRs
ZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBmbG9hdCBmTmV3VmFsdWUgKQoreworICAg
ICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZmTmV3VmFs
dWUsIHNpemVvZiggZk5ld1ZhbHVlICksIGtfdW5GbG9hdFByb3BlcnR5VGFnICk7Cit9CisKK2lu
bGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRJbnQzMlBy
b3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJh
Y2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICkKK3sKKyAgICAgICBy
ZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmbk5ld1ZhbHVlLCBz
aXplb2YoIG5OZXdWYWx1ZSApLCBrX3VuSW50MzJQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVy
dHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCwgdWludDY0X3QgdWxOZXdWYWx1ZSApCit7CisgICAgICAgcmV0
dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJnVsTmV3VmFsdWUsIHNp
emVvZiggdWxOZXdWYWx1ZSApLCBrX3VuVWludDY0UHJvcGVydHlUYWcgKTsKK30KKworLyoqIFNl
dHMgdGhlIGVycm9yIHJldHVybiB2YWx1ZSBmb3IgYSBwcm9wZXJ0eS4gVGhpcyB2YWx1ZSB3aWxs
IGJlIHJldHVybmVkIG9uIGFsbCBzdWJzZXF1ZW50IHJlcXVlc3RzIHRvIGdldCB0aGUgcHJvcGVy
dHkgKi8KK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpT
ZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFu
ZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciBl
RXJyb3IgKQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKKyAgICAgICBiYXRjaC53
cml0ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX1NldEVycm9yOworICAgICAgIGJhdGNoLnByb3AgPSBw
cm9wOworICAgICAgIGJhdGNoLmVTZXRFcnJvciA9IGVFcnJvcjsKKworICAgICAgIG1fcFByb3Bl
cnRpZXMtPldyaXRlUHJvcGVydHlCYXRjaCggdWxDb250YWluZXJIYW5kbGUsICZiYXRjaCwgMSAp
OworCisgICAgICAgcmV0dXJuIGJhdGNoLmVFcnJvcjsKK30KKworLyoqIENsZWFycyBhbnkgdmFs
dWUgb3IgZXJyb3Igc2V0IGZvciB0aGUgcHJvcGVydHkuICovCitpbmxpbmUgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6RXJhc2VQcm9wZXJ0eSggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wICkKK3sKKyAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7CisgICAgICAgYmF0Y2gud3Jp
dGVUeXBlID0gUHJvcGVydHlXcml0ZV9FcmFzZTsKKyAgICAgICBiYXRjaC5wcm9wID0gcHJvcDsK
KworICAgICAgIG1fcFByb3BlcnRpZXMtPldyaXRlUHJvcGVydHlCYXRjaCggdWxDb250YWluZXJI
YW5kbGUsICZiYXRjaCwgMSApOworCisgICAgICAgcmV0dXJuIGJhdGNoLmVFcnJvcjsKKworfQor
Cit9CisKKworLy8gaXZyZHJpdmVybG9nLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJE
cml2ZXJMb2cKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogV3JpdGVzIGEgbG9nIG1lc3NhZ2UgdG8g
dGhlIGxvZyBmaWxlIHByZWZpeGVkIHdpdGggdGhlIGRyaXZlciBuYW1lICovCisgICAgICAgdmly
dHVhbCB2b2lkIExvZyggY29uc3QgY2hhciAqcGNoTG9nTWVzc2FnZSApID0gMDsKK307CisKKwor
c3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckxvZ19WZXJzaW9uID0gIklWUkRyaXZlckxvZ18w
MDEiOworCit9CisvLyBpdnJzZXJ2ZXJkcml2ZXJob3N0LmgKK25hbWVzcGFjZSB2cgoreworCitj
bGFzcyBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcjsKK3N0cnVjdCBUcmFja2VkRGV2aWNlRHJp
dmVySW5mb190Oworc3RydWN0IERyaXZlclBvc2VfdDsKKworLyoqIFRoaXMgaW50ZXJmYWNlIGlz
IHByb3ZpZGVkIGJ5IHZyc2VydmVyIHRvIGFsbG93IHRoZSBkcml2ZXIgdG8gbm90aWZ5IAorKiB0
aGUgc3lzdGVtIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMgYWJvdXQgYSBkZXZpY2UuIFRoZXNlIGNo
YW5nZXMgbXVzdAorKiBub3QgY2hhbmdlIHRoZSBzZXJpYWwgbnVtYmVyIG9yIGNsYXNzIG9mIHRo
ZSBkZXZpY2UgYmVjYXVzZSB0aG9zZSB2YWx1ZXMKKyogYXJlIHBlcm1hbmVudGx5IGFzc29jaWF0
ZWQgd2l0aCB0aGUgZGV2aWNlJ3MgaW5kZXguICovCitjbGFzcyBJVlJTZXJ2ZXJEcml2ZXJIb3N0
Cit7CitwdWJsaWM6CisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCBhIHRyYWNr
ZWQgZGV2aWNlIGhhcyBiZWVuIGFkZGVkLiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZQor
ICAgICAgICogdGhlIHNlcnZlciB3aWxsIGNhbGwgQWN0aXZhdGUgb24gdGhlIGRldmljZS4gSWYg
aXQgcmV0dXJucyBmYWxzZSBzb21lIGtpbmQgb2YgZXJyb3IKKyAgICAgICAqIGhhcyBvY2N1cnJl
ZCBhbmQgdGhlIGRldmljZSB3aWxsIG5vdCBiZSBhY3RpdmF0ZWQuICovCisgICAgICAgdmlydHVh
bCBib29sIFRyYWNrZWREZXZpY2VBZGRlZCggY29uc3QgY2hhciAqcGNoRGV2aWNlU2VyaWFsTnVt
YmVyLCBFVHJhY2tlZERldmljZUNsYXNzIGVEZXZpY2VDbGFzcywgSVRyYWNrZWREZXZpY2VTZXJ2
ZXJEcml2ZXIgKnBEcml2ZXIgKSA9IDA7CisKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZl
ciB0aGF0IGEgdHJhY2tlZCBkZXZpY2UncyBwb3NlIGhhcyBiZWVuIHVwZGF0ZWQgKi8KKyAgICAg
ICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZVBvc2VVcGRhdGVkKCB1aW50MzJfdCB1bldoaWNo
RGV2aWNlLCBjb25zdCBEcml2ZXJQb3NlX3QgJiBuZXdQb3NlLCB1aW50MzJfdCB1blBvc2VTdHJ1
Y3RTaXplICkgPSAwOworCisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB2c3lu
YyBoYXMgb2NjdXJyZWQgb24gdGhlIHRoZSBkaXNwbGF5IGF0dGFjaGVkIHRvIHRoZSBkZXZpY2Uu
IFRoaXMgaXMKKyAgICAgICAqIG9ubHkgcGVybWl0dGVkIG9uIGRldmljZXMgb2YgdGhlIEhNRCBj
bGFzcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVnN5bmNFdmVudCggZG91YmxlIHZzeW5jVGlt
ZU9mZnNldFNlY29uZHMgKSA9IDA7CisKKyAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0
aGF0IHRoZSBidXR0b24gd2FzIHByZXNzZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tl
ZERldmljZUJ1dHRvblByZXNzZWQoIHVpbnQzMl90IHVuV2hpY2hEZXZpY2UsIEVWUkJ1dHRvbklk
IGVCdXR0b25JZCwgZG91YmxlIGV2ZW50VGltZU9mZnNldCApID0gMDsKKworICAgICAgIC8qKiBu
b3RpZmllcyB0aGUgc2VydmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgdW5wcmVzc2VkICovCisgICAg
ICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VCdXR0b25VbnByZXNzZWQoIHVpbnQzMl90IHVu
V2hpY2hEZXZpY2UsIEVWUkJ1dHRvbklkIGVCdXR0b25JZCwgZG91YmxlIGV2ZW50VGltZU9mZnNl
dCApID0gMDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2VydmVyIHRoYXQgdGhlIGJ1dHRv
biB3YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9u
VG91Y2hlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBk
b3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBz
ZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgVHJhY2tlZERldmljZUJ1dHRvblVudG91Y2hlZCggdWludDMyX3QgdW5XaGljaERldmljZSwg
RVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisg
ICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhbiBhIGNvbnRyb2xsZXIgYXhpcyBjaGFu
Z2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VBeGlzVXBkYXRlZCggdWlu
dDMyX3QgdW5XaGljaERldmljZSwgdWludDMyX3QgdW5XaGljaEF4aXMsIGNvbnN0IFZSQ29udHJv
bGxlckF4aXNfdCAmIGF4aXNTdGF0ZSApID0gMDsKKworICAgICAgIC8qKiBOb3RpZmllcyB0aGUg
c2VydmVyIHRoYXQgdGhlIHByb3hpbWl0eSBzZW5zb3Igb24gdGhlIHNwZWNpZmllZCBkZXZpY2Ug
ICovCisgICAgICAgdmlydHVhbCB2b2lkIFByb3hpbWl0eVNlbnNvclN0YXRlKCB1aW50MzJfdCB1
bldoaWNoRGV2aWNlLCBib29sIGJQcm94aW1pdHlTZW5zb3JUcmlnZ2VyZWQgKSA9IDA7CisKKyAg
ICAgICAvKiogU2VuZHMgYSB2ZW5kb3Igc3BlY2lmaWMgZXZlbnQgKFZSRXZlbnRfVmVuZG9yU3Bl
Y2lmaWNfUmVzZXJ2ZWRfU3RhcnQuLlZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5k
ICovCisgICAgICAgdmlydHVhbCB2b2lkIFZlbmRvclNwZWNpZmljRXZlbnQoIHVpbnQzMl90IHVu
V2hpY2hEZXZpY2UsIHZyOjpFVlJFdmVudFR5cGUgZXZlbnRUeXBlLCBjb25zdCBWUkV2ZW50X0Rh
dGFfdCAmIGV2ZW50RGF0YSwgZG91YmxlIGV2ZW50VGltZU9mZnNldCApID0gMDsKKworICAgICAg
IC8qKiBSZXR1cm5zIHRydWUgaWYgU3RlYW1WUiBpcyBleGl0aW5nICovCisgICAgICAgdmlydHVh
bCBib29sIElzRXhpdGluZygpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZp
bGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRoZSBxdWV1ZSBpZiB0aGVyZSBp
cyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVudHMKKyAgICAgICAqIHRoaXMgbWV0aG9kIHJldHVy
bnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUg
VlJFdmVudF90IHN0cnVjdCAqLworICAgICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4dEV2ZW50KCBW
UkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQgKSA9IDA7Cit9OworCitzdGF0
aWMgY29uc3QgY2hhciAqSVZSU2VydmVyRHJpdmVySG9zdF9WZXJzaW9uID0gIklWUlNlcnZlckRy
aXZlckhvc3RfMDA0IjsKKworfQorLy8gaXZyaGlkZGVuYXJlYS5oCituYW1lc3BhY2UgdnIKK3sK
KworY2xhc3MgQ1ZSSGlkZGVuQXJlYUhlbHBlcnMKK3sKK3B1YmxpYzoKKyAgICAgICBDVlJIaWRk
ZW5BcmVhSGVscGVycyggSVZSUHJvcGVydGllcyAqcFByb3BlcnRpZXMgKSA6IG1fcFByb3BlcnRp
ZXMoIHBQcm9wZXJ0aWVzICkge30KKworICAgICAgIC8qKiBTdG9yZXMgYSBoaWRkZW4gYXJlYSBt
ZXNoIGluIGEgcHJvcGVydHkgKi8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0SGlk
ZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9y
Ml90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICk7CisKKyAgICAgICAvKiogcmV0cmll
dmVzIGEgaGlkZGVuIGFyZWEgbWVzaCBmcm9tIGEgcHJvcGVydHkuIFJldHVybnMgdGhlIHZlcnQg
Y291bnQgcmVhZCBvdXQgb2YgdGhlIHByb3BlcnR5LiAgKi8KKyAgICAgICB1aW50MzJfdCBHZXRI
aWRkZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRWZWN0
b3IyX3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQsIEVUcmFja2VkUHJvcGVydHlFcnJv
ciAqcGVFcnJvciApOworCitwcml2YXRlOgorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
R2V0UHJvcGVydHlFbnVtKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlICkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAoRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSko
UHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlfU3RhcnQgKyAoKGludCl0eXBlICogMikgKyAo
aW50KWVFeWUpOworICAgICAgIH0KKworICAgICAgIElWUlByb3BlcnRpZXMgKm1fcFByb3BlcnRp
ZXM7Cit9OworCisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSSGlkZGVuQXJlYUhl
bHBlcnM6OlNldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5
cGUsIEhtZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCApCit7CisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wID0gR2V0UHJvcGVydHlFbnVtKCBlRXllLCB0
eXBlICk7CisgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzIHByb3BIZWxwZXJzKCBtX3BQcm9wZXJ0
aWVzICk7CisgICAgICAgcmV0dXJuIHByb3BIZWxwZXJzLlNldFByb3BlcnR5KCBwcm9wSGVscGVy
cy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcigga191blRyYWNrZWREZXZpY2VJbmRl
eF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXplb2YoIEhtZFZlY3RvcjJfdCApICogdW5WZXJ0Q291
bnQsIGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKTsKK30KKworCitpbmxpbmUgdWludDMyX3Qg
Q1ZSSGlkZGVuQXJlYUhlbHBlcnM6OkdldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVu
QXJlYU1lc2hUeXBlIHR5cGUsIEhtZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRD
b3VudCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKK3sKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVFeWUsIHR5cGUgKTsKKyAg
ICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFByb3BlcnRpZXMgKTsKKyAg
ICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcHJvcEVycm9yOworICAgICAgIFByb3BlcnR5VHlw
ZVRhZ190IHVuVGFnOworICAgICAgIHVpbnQzMl90IHVuQnl0ZXNOZWVkZWQgPSBwcm9wSGVscGVy
cy5HZXRQcm9wZXJ0eSggcHJvcEhlbHBlcnMuVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWlu
ZXIoIGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kICksIHByb3AsIHBWZXJ0cywgc2l6ZW9mKCBI
bWRWZWN0b3IyX3QgKSp1blZlcnRDb3VudCwgJnVuVGFnLCAmcHJvcEVycm9yICk7CisgICAgICAg
aWYgKCBwcm9wRXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyAmJiB1blRhZyAhPSBrX3VuSGlk
ZGVuQXJlYVByb3BlcnR5VGFnICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHByb3BFcnJvciA9
IFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGU7CisgICAgICAgICAgICAgIHVuQnl0ZXNOZWVkZWQg
PSAwOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgeworICAgICAg
ICAgICAgICAqcGVFcnJvciA9IHByb3BFcnJvcjsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4g
dW5CeXRlc05lZWRlZCAvIHNpemVvZiggSG1kVmVjdG9yMl90ICk7Cit9CisKK30KKy8vIGl2cndh
dGNoZG9naG9zdC5oCituYW1lc3BhY2UgdnIKK3sKKworLyoqIFRoaXMgaW50ZXJmYWNlIGlzIHBy
b3ZpZGVkIGJ5IHZyY2xpZW50IHRvIGFsbG93IHRoZSBkcml2ZXIgdG8gbWFrZSBldmVyeXRoaW5n
IHdha2UgdXAgKi8KK2NsYXNzIElWUldhdGNoZG9nSG9zdAoreworcHVibGljOgorICAgICAgIC8q
KiBDbGllbnQgZHJpdmVycyBpbiB3YXRjaGRvZyBtb2RlIHNob3VsZCBjYWxsIHRoaXMgd2hlbiB0
aGV5IGhhdmUgcmVjZWl2ZWQgYSBzaWduYWwgZnJvbSBoYXJkd2FyZSB0aGF0IHNob3VsZAorICAg
ICAgICogY2F1c2UgU3RlYW1WUiB0byBzdGFydCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBXYXRj
aGRvZ1dha2VVcCgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpJVlJXYXRjaGRvZ0hv
c3RfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ0hvc3RfMDAxIjsKKworfTsKKworCisKKworCisKKwor
bmFtZXNwYWNlIHZyCit7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX0ludGVy
ZmFjZVZlcnNpb25zW10gPQorICAgICAgIHsKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3NfVmVy
c2lvbiwKKyAgICAgICAgICAgICAgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfVmVyc2lvbiwK
KyAgICAgICAgICAgICAgSVZSRGlzcGxheUNvbXBvbmVudF9WZXJzaW9uLAorICAgICAgICAgICAg
ICBJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElW
UkNvbnRyb2xsZXJDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSQ2FtZXJhQ29t
cG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlk
ZXJfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dQcm92aWRlcl9WZXJzaW9uLAor
ICAgICAgICAgICAgICBudWxscHRyCisgICAgICAgfTsKKworICAgICAgIGlubGluZSBJVlJEcml2
ZXJDb250ZXh0IComVlJEcml2ZXJDb250ZXh0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0
YXRpYyBJVlJEcml2ZXJDb250ZXh0ICpwSG9zdDsKKyAgICAgICAgICAgICAgcmV0dXJuIHBIb3N0
OworICAgICAgIH0KKworICAgICAgIGNsYXNzIENPcGVuVlJEcml2ZXJDb250ZXh0CisgICAgICAg
eworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgQ09wZW5WUkRyaXZlckNvbnRleHQoKSA6
IG1fcHJvcGVydHlIZWxwZXJzKG51bGxwdHIpLCBtX2hpZGRlbkFyZWFIZWxwZXJzKG51bGxwdHIp
IHsgQ2xlYXIoKTsgfQorICAgICAgICAgICAgICB2b2lkIENsZWFyKCk7CisKKyAgICAgICAgICAg
ICAgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXIoKTsKKyAgICAgICAgICAgICAgRVZSSW5pdEVycm9y
IEluaXRXYXRjaGRvZygpOworCisgICAgICAgICAgICAgIElWUlNldHRpbmdzICpWUlNldHRpbmdz
KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlNldHRp
bmdzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJTZXR0aW5ncyA9IChJVlJTZXR0aW5ncyAqKVZSRHJpdmVyQ29udGV4dCgpLT5H
ZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXR0
aW5nczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlByb3BlcnRpZXMgKlZS
UHJvcGVydGllc1JhdygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlm
ICggbV9wVlJQcm9wZXJ0aWVzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gKElWUlByb3BlcnRpZXMgKilW
UkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUHJvcGVydGllc19WZXJz
aW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eUhl
bHBlcnMgPSBDVlJQcm9wZXJ0eUhlbHBlcnMoIG1fcFZSUHJvcGVydGllcyApOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1faGlkZGVuQXJlYUhlbHBlcnMgPSBDVlJIaWRkZW5BcmVhSGVs
cGVycyggbV9wVlJQcm9wZXJ0aWVzICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbV9wVlJQcm9wZXJ0aWVzOworICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgQ1ZSUHJvcGVydHlIZWxwZXJzICpWUlByb3BlcnRpZXMoKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNSYXcoKTsKKyAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAmbV9wcm9wZXJ0eUhlbHBlcnM7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBDVlJIaWRkZW5BcmVhSGVscGVycyAqVlJIaWRkZW5BcmVhKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgVlJQcm9wZXJ0aWVzUmF3KCk7
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJm1faGlkZGVuQXJlYUhlbHBlcnM7CisgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJTZXJ2ZXJEcml2ZXJIb3N0ICpWUlNlcnZl
ckRyaXZlckhvc3QoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
IG1fcFZSU2VydmVyRHJpdmVySG9zdCA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2VydmVyRHJpdmVySG9zdCA9IChJVlJTZXJ2
ZXJEcml2ZXJIb3N0ICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElW
UlNlcnZlckRyaXZlckhvc3RfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU2VydmVyRHJpdmVySG9zdDsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUldhdGNoZG9nSG9zdCAqVlJXYXRj
aGRvZ0hvc3QoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1f
cFZSV2F0Y2hkb2dIb3N0ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJXYXRjaGRvZ0hvc3QgPSAoSVZSV2F0Y2hkb2dIb3N0ICop
VlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUldhdGNoZG9nSG9zdF9W
ZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9wVlJXYXRjaGRvZ0hvc3Q7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICBJVlJEcml2ZXJMb2cgKlZSRHJpdmVyTG9nKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUkRyaXZlckxvZyA9PSBudWxscHRyICkKKyAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0
RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSRHJpdmVyTG9n
ID0gKElWUkRyaXZlckxvZyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNl
KCBJVlJEcml2ZXJMb2dfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRHJpdmVyTG9nOworICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2
ZXJIYW5kbGUoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
VlJEcml2ZXJDb250ZXh0KCktPkdldERyaXZlckhhbmRsZSgpOworICAgICAgICAgICAgICB9CisK
KyAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICBJVlJTZXR0aW5ncyAgICAgICAgICAgICAg
ICAgICAgICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJVlJQcm9wZXJ0aWVzICAgICAg
ICAgICAgICAqbV9wVlJQcm9wZXJ0aWVzOworICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBl
cnMgICAgICAgbV9wcm9wZXJ0eUhlbHBlcnM7CisgICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFI
ZWxwZXJzICAgICAgIG1faGlkZGVuQXJlYUhlbHBlcnM7CisgICAgICAgICAgICAgIElWUlNlcnZl
ckRyaXZlckhvc3QgICAgICAgKm1fcFZSU2VydmVyRHJpdmVySG9zdDsKKyAgICAgICAgICAgICAg
SVZSV2F0Y2hkb2dIb3N0ICAgICAgICAgICAgICAqbV9wVlJXYXRjaGRvZ0hvc3Q7CisgICAgICAg
ICAgICAgIElWUkRyaXZlckxvZyAgICAgICAgICAgICAgKm1fcFZSRHJpdmVyTG9nOworICAgICAg
IH07CisKKyAgICAgICBpbmxpbmUgQ09wZW5WUkRyaXZlckNvbnRleHQgJk9wZW5WUkludGVybmFs
X01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3Rh
dGljIHZvaWQgKmN0eFtzaXplb2YoIENPcGVuVlJEcml2ZXJDb250ZXh0ICkgLyBzaXplb2YoIHZv
aWQgKiApXTsKKyAgICAgICAgICAgICAgcmV0dXJuICooQ09wZW5WUkRyaXZlckNvbnRleHQgKilj
dHg7IC8vIGJ5cGFzcyB6ZXJvLWluaXQgY29uc3RydWN0b3IKKyAgICAgICB9CisKKyAgICAgICBp
bmxpbmUgSVZSU2V0dGluZ3MgKlZSX0NBTExUWVBFIFZSU2V0dGluZ3MoKSB7IHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJTZXR0aW5ncygpOyB9Cisg
ICAgICAgaW5saW5lIElWUlByb3BlcnRpZXMgKlZSX0NBTExUWVBFIFZSUHJvcGVydGllc1Jhdygp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlBy
b3BlcnRpZXNSYXcoKTsgfQorICAgICAgIGlubGluZSBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSX0NB
TExUWVBFIFZSUHJvcGVydGllcygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZl
ckRyaXZlckNvbnRleHQoKS5WUlByb3BlcnRpZXMoKTsgfQorICAgICAgIGlubGluZSBDVlJIaWRk
ZW5BcmVhSGVscGVycyAqVlJfQ0FMTFRZUEUgVlJIaWRkZW5BcmVhKCkgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSSGlkZGVuQXJlYSgpOyB9Cisg
ICAgICAgaW5saW5lIElWUkRyaXZlckxvZyAqVlJfQ0FMTFRZUEUgVlJEcml2ZXJMb2coKSB7IHJl
dHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJEcml2ZXJM
b2coKTsgfQorICAgICAgIGlubGluZSBJVlJTZXJ2ZXJEcml2ZXJIb3N0ICpWUl9DQUxMVFlQRSBW
UlNlcnZlckRyaXZlckhvc3QoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJE
cml2ZXJDb250ZXh0KCkuVlJTZXJ2ZXJEcml2ZXJIb3N0KCk7IH0KKyAgICAgICBpbmxpbmUgSVZS
V2F0Y2hkb2dIb3N0ICpWUl9DQUxMVFlQRSBWUldhdGNoZG9nSG9zdCgpIHsgcmV0dXJuIE9wZW5W
UkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUldhdGNoZG9nSG9zdCgpOyB9
CisgICAgICAgaW5saW5lIERyaXZlckhhbmRsZV90IFZSX0NBTExUWVBFIFZSRHJpdmVySGFuZGxl
KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZS
RHJpdmVySGFuZGxlKCk7IH0KKyAgICAgICBpbmxpbmUgdm9pZCBDT3BlblZSRHJpdmVyQ29udGV4
dDo6Q2xlYXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG51bGxw
dHI7CisgICAgICAgICAgICAgIG1fcFZSUHJvcGVydGllcyA9IG51bGxwdHI7CisgICAgICAgICAg
ICAgIG1fcFZSU2VydmVyRHJpdmVySG9zdCA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZS
RHJpdmVyTG9nID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJXYXRjaGRvZ0hvc3QgPSBu
dWxscHRyOworICAgICAgIH0KKworICAgICAgIGlubGluZSBFVlJJbml0RXJyb3IgQ09wZW5WUkRy
aXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgQ2xlYXIo
KTsKKyAgICAgICAgICAgICAgaWYgKCAhVlJTZXJ2ZXJEcml2ZXJIb3N0KCkKKyAgICAgICAgICAg
ICAgICAgICAgIHx8ICFWUlNldHRpbmdzKCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlBy
b3BlcnRpZXMoKQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZSRHJpdmVyTG9nKCkgKQorICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91
bmQ7CisgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Ob25lOworICAgICAgIH0KKwor
ICAgICAgIGlubGluZSBFVlJJbml0RXJyb3IgQ09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRXYXRj
aGRvZygpCisgICAgICAgeworICAgICAgICAgICAgICBDbGVhcigpOworICAgICAgICAgICAgICBp
ZiAoICFWUldhdGNoZG9nSG9zdCgpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJTZXR0aW5n
cygpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSApCisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAg
ICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7CisgICAgICAgfQorCisgICAgICAg
aW5saW5lIEVWUkluaXRFcnJvciBJbml0U2VydmVyRHJpdmVyQ29udGV4dCggSVZSRHJpdmVyQ29u
dGV4dCAqcENvbnRleHQgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJEcml2ZXJDb250ZXh0
KCkgPSBwQ29udGV4dDsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVs
ZVNlcnZlckRyaXZlckNvbnRleHQoKS5Jbml0U2VydmVyKCk7CisgICAgICAgfQorCisgICAgICAg
aW5saW5lIEVWUkluaXRFcnJvciBJbml0V2F0Y2hkb2dEcml2ZXJDb250ZXh0KCBJVlJEcml2ZXJD
b250ZXh0ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAgICAgICBWUkRyaXZlckNvbnRl
eHQoKSA9IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9k
dWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRXYXRjaGRvZygpOworICAgICAgIH0KKworICAg
ICAgIGlubGluZSB2b2lkIENsZWFudXBEcml2ZXJDb250ZXh0KCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIFZSRHJpdmVyQ29udGV4dCgpID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgT3BlblZS
SW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkNsZWFyKCk7CisgICAgICAgfQor
CisgICAgICAgI2RlZmluZSBWUl9JTklUX1NFUlZFUl9EUklWRVJfQ09OVEVYVCggcENvbnRleHQg
KSBcCisgICAgICAgICAgICAgICAgICAgICB7IFwKKyAgICAgICAgICAgICAgICAgICAgIHZyOjpF
VlJJbml0RXJyb3IgZUVycm9yID0gdnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBwQ29udGV4
dCApOyBcCisgICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9yICE9IHZyOjpWUkluaXRFcnJv
cl9Ob25lICkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlRXJyb3I7IFwK
KyAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICNkZWZpbmUgVlJfQ0xFQU5VUF9TRVJW
RVJfRFJJVkVSX0NPTlRFWFQoKSBcCisgICAgICAgICAgICAgIHZyOjpDbGVhbnVwRHJpdmVyQ29u
dGV4dCgpOworCisgICAgICAgI2RlZmluZSBWUl9JTklUX1dBVENIRE9HX0RSSVZFUl9DT05URVhU
KCBwQ29udGV4dCApIFwKKyAgICAgICAgICAgICAgICAgICAgIHsgXAorICAgICAgICAgICAgICAg
ICAgICAgdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFdhdGNoZG9nRHJpdmVyQ29u
dGV4dCggcENvbnRleHQgKTsgXAorICAgICAgICAgICAgICAgICAgICAgaWYoIGVFcnJvciAhPSB2
cjo6VlJJbml0RXJyb3JfTm9uZSApIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZUVycm9yOyBcCisgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAjZGVmaW5lIFZS
X0NMRUFOVVBfV0FUQ0hET0dfRFJJVkVSX0NPTlRFWFQoKSBcCisgICAgICAgICAgICAgIHZyOjpD
bGVhbnVwRHJpdmVyQ29udGV4dCgpOworfQorLy8gRW5kCisKKyNlbmRpZiAvLyBfT1BFTlZSX0RS
SVZFUl9BUEkKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvb3BlbnZy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvb3Bl
bnZyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJlMzkyNzNkN2MzNGQx
MTFjMjE0YzZhOTI1ODZlNThkNWFkYWRmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9vcGVudnIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMCwwICsx
LDQxNyBAQAorLy8gISQqVVRGOCokIQoreworICAgICAgIGFyY2hpdmVWZXJzaW9uID0gMTsKKyAg
ICAgICBjbGFzc2VzID0geworICAgICAgIH07CisgICAgICAgb2JqZWN0VmVyc2lvbiA9IDQ2Owor
ICAgICAgIG9iamVjdHMgPSB7CisKKy8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisg
ICAgICAgICAgICAgIDhFNTMxNDJFMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICov
OyB9OworICAgICAgICAgICAgICA4RTUzMTQzMjFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0LmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNTMxNDMxMUY2RkVDQUUwMDczQjg5NyAvKiBBcHBLaXQuZnJhbWV3b3JrICovOyB9OworICAg
ICAgICAgICAgICA4RTUzMTQzNTFGNzJENTg0MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTUz
MTQyRjFGNkZFQkM4MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisgICAg
ICAgICAgICAgIDhFNzk0Mjg5MUY2QUY2RDMwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNkMx
RjZBRTlBQjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjhBMUY2QUY2RDMwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNkUxRjZB
RTlBQjAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjhCMUY2QUY2RDMwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjcwMUY2QUU5
QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCAqLzsgfTsKKyAgICAgICAgICAgICAg
OEU3OTQyOEMxRjZBRjZEMzAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzIxRjZBRTlBQjAw
NTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5
NDI4RDFGNkFGNkQzMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc0MUY2QUU5QUIw
MDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAg
ICA4RTc5NDI4RTFGNkFGNkQzMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc2MUY2QUU5QUIw
MDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5
NDI4RjFGNkFGNkQzMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc4MUY2QUU5QUIw
MDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAg
ICA4RTc5NDI5MDFGNkFGNkVFMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2ODFGNkFFOUFCMDA1N0I4MDMg
LyoganNvbmNwcC5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0MjkxMUY2QUY2RUUwMDU3
QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2OTFGNkFFOUFCMDA1N0I4MDMgLyogb3BlbnZyX2Fw
aV9wdWJsaWMuY3BwICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5MjFGNkFGNzFEMDA1N0I4
MDMgLyogb3BlbnZyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4RTc5NDI3QjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworICAgICAgICAgICAgICA4RTc5NDI5MzFG
NkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjdFMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJf
Y2FwaS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKyAg
ICAgICAgICAgICAgOEU3OTQyOTQxRjZBRjcxRDAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjdGMUY2
QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfZHJpdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OworICAgICAgICAgICAgICA4RTc5NDI5NTFGNkFGNzhEMDA1
N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEU3OTQyNjQxRjZBRTlBQjAwNTdCODAzIC8qIGl2cmNsaWVudGNvcmUu
aCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTYxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24t
Zm9yd2FyZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNzk0MjY2MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRzLmggKi87IH07CisgICAg
ICAgICAgICAgIDhFNzk0Mjk3MUY2QUY3OEQwMDU3QjgwMyAvKiBqc29uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2NzFGNkFFOUFCMDA1N0I4
MDMgLyoganNvbi5oICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5ODFGNkFGNzhEMDA1N0I4
MDMgLyogZGlydG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4RTc5NDI2RDFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGlj
LmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk5MUY2QUY3OEQwMDU3QjgwMyAvKiBlbnZ2
YXJ0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhFNzk0MjZGMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCAq
LzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOUExRjZBRjc4RDAwNTdCODAzIC8qIGhtZGVycm9y
c19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmggKi87IH07Cisg
ICAgICAgICAgICAgIDhFNzk0MjlCMUY2QUY3OEQwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGlj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3
MzFGNkFFOUFCMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5oICovOyB9OworICAgICAgICAg
ICAgICA4RTc5NDI5QzFGNkFGNzhEMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI3NTFG
NkFFOUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmggKi87IH07CisgICAgICAg
ICAgICAgIDhFNzk0MjlEMUY2QUY3OEQwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0Mjc3MUY2QUU5
QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3
OTQyOUUxRjZBRjc4RDAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNzkxRjZBRTlBQjAw
NTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oICovOyB9OworLyogRW5kIFBCWEJ1aWxk
RmlsZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwor
ICAgICAgICAgICAgICA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24u
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHBh
dGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsg
c291cmNlVHJlZSA9IFNES1JPT1Q7IH07CisgICAgICAgICAgICAgIDhFNTMxNDJGMUY2RkVCQzgw
MDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gRm91bmRh
dGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRp
b24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKyAgICAgICAgICAgICAgOEU1
MzE0MzExRjZGRUNBRTAwNzNCODk3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFt
ZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw
cEtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworICAgICAgICAgICAgICA4
RTc5NDI2MjFGNkFFOUFCMDA1N0I4MDMgLyogQ01ha2VMaXN0cy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ01ha2VMaXN0
cy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjYz
MUY2QUU5QUIwMDU3QjgwMyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2NDFGNkFF
OUFCMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBpdnJjbGllbnRj
b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjY2
MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJqc29u
LWZvcndhcmRzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4
RTc5NDI2NzFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBqc29uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjY4MUY2QUU5
QUIwMDU3QjgwMyAvKiBqc29uY3BwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzb25jcHAuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI2OTFGNkFF
OUFCMDA1N0I4MDMgLyogb3BlbnZyX2FwaV9wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
b3BlbnZyX2FwaV9wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI2QTFGNkFFOUFCMDA1N0I4MDMgLyogUkVBRE1FICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJFQURNRTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNkMxRjZBRTlB
QjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBkaXJ0
b29sc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAg
ICA4RTc5NDI2RDFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IGRpcnRvb2xzX3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI2RTFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGlj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGVudnZhcnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjZGMUY2QUU5QUIwMDU3Qjgw
MyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZW52dmFydG9vbHNfcHVi
bGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjcw
MUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IGhtZGVycm9yc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI3MTFGNkFFOUFCMDA1N0I4MDMgLyogaG1kZXJyb3JzX3B1YmxpYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBobWRlcnJvcnNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjcyMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9v
bHNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gcGF0aHRvb2xzX3B1YmxpYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjczMUY2QUU5
QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhdGh0b29s
c19wdWJsaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3
OTQyNzQxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBzaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3NTFGNkFFOUFCMDA1N0I4MDMgLyogc2hh
cmVkbGlidG9vbHNfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHNoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3NjFG
NkFFOUFCMDA1N0I4MDMgLyogc3RydG9vbHNfcHVibGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IHN0cnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAg
ICAgICAgIDhFNzk0Mjc3MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gc3RydG9vbHNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisgICAgICAgICAgICAgIDhFNzk0Mjc4MUY2QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3Ry
eV9wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSB2cnBhdGhyZWdpc3RyeV9wdWJsaWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3OTFG
NkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI3QjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IG9wZW52ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAg
ICA4RTc5NDI3QzFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5jcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBvcGVudnJf
YXBpLmNzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3
RDFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5qc29uICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5qc29uOyBwYXRoID0gb3BlbnZyX2Fw
aS5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4RTc5NDI3
RTFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3BlbnZy
X2NhcGkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQy
N0YxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gb3Bl
bnZyX2RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4
RTc5NDI4NDFGNkFGNjJFMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IGxpYm9wZW52ci5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgxMUY2
QUY2MkUwMDU3QjgwMyAvKiBGcmFtZXdvcmtzICovID0geworICAgICAgICAgICAgICAgICAgICAg
aXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisgICAgICAgICAgICAgICAgICAgICBidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgPSAo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0MzIxRjZGRUNBRTAwNzNCODk3IC8q
IEFwcEtpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTUzMTQyRTFGNkZERUIwMDA3M0I4OTcgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0
MzUxRjcyRDU4NDAwNzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAgICAgICAgICAgIH07CisvKiBF
bmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhHcm91
cCBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNTMxNDJDMUY2RkRFQjAwMDczQjg5NyAvKiBG
cmFtZXdvcmtzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7Cisg
ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4RTUzMTQzMTFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0LmZyYW1ld29yayAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQyRDFGNkZERUIwMDA3M0I4OTcgLyogQ29y
ZUZvdW5kYXRpb24uZnJhbWV3b3JrICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhF
NTMxNDJGMUY2RkVCQzgwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gRnJhbWV3b3Jr
czsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjVBMUY2QUU5NjYwMDU3QjgwMyA9IHsKKyAg
ICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOworICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU1MzE0MkMxRjZGREVC
MDAwNzNCODk3IC8qIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OEU3OTQyN0ExRjZBRjA1RTAwNTdCODAzIC8qIGhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU3OTQyODUxRjZBRjYyRTAwNTdCODAzIC8qIFByb2R1Y3RzICovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjYxMUY2QUU5QUIwMDU3QjgwMyAvKiBzcmMg
Ki8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQy
NjExRjZBRTlBQjAwNTdCODAzIC8qIHNyYyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlz
YSA9IFBCWEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjUxRjZBRTlBQjAwNTdCODAzIC8qIGpzb24gKi8s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNkExRjZBRTlBQjAwNTdCODAzIC8q
IFJFQURNRSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2QjFGNkFFOUFC
MDA1N0I4MDMgLyogdnJjb21tb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyNjIxRjZBRTlBQjAwNTdCODAzIC8qIENNYWtlTGlzdHMudHh0ICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0MjYzMUY2QUU5QUIwMDU3QjgwMyAvKiBJbmZvLnBsaXN0ICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjY0MUY2QUU5QUIwMDU3QjgwMyAv
KiBpdnJjbGllbnRjb3JlLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQy
NjgxRjZBRTlBQjAwNTdCODAzIC8qIGpzb25jcHAuY3BwICovLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDhFNzk0MjY5MUY2QUU5QUIwMDU3QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5j
cHAgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0
aCA9IHNyYzsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Cisg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjY1MUY2QUU5QUIwMDU3QjgwMyAv
KiBqc29uICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7CisgICAg
ICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI2NjFGNkFFOUFCMDA1N0I4MDMgLyoganNvbi1mb3J3YXJkcy5oICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjY3MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLmgg
Ki8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9
IGpzb247CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAg
ICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI2QjFGNkFFOUFCMDA1N0I4MDMgLyog
dnJjb21tb24gKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAg
ICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjZDMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuY3BwICovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZEMUY2QUU5QUIwMDU3QjgwMyAvKiBk
aXJ0b29sc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2
RTFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNwcCAqLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4RTc5NDI2RjFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9v
bHNfcHVibGljLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzAxRjZB
RTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGlj
LmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzIxRjZBRTlBQjAwNTdC
ODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjczMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzQxRjZBRTlBQjAwNTdCODAzIC8qIHNo
YXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OEU3OTQyNzUxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oICovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjc2MUY2QUU5QUIwMDU3QjgwMyAvKiBz
dHJ0b29sc19wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0
Mjc3MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4RTc5NDI3ODFGNkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0
cnlfcHVibGljLmNwcCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3OTFG
NkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggKi8sCisgICAgICAgICAg
ICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHZyY29tbW9uOworICAg
ICAgICAgICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKyAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgICAgOEU3OTQyN0ExRjZBRjA1RTAwNTdCODAzIC8qIGhlYWRlcnMgKi8g
PSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdC
MUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnIuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4RTc5NDI3QzFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2FwaS5jcyAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3RDFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZy
X2FwaS5qc29uICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdFMUY2QUYw
NUUwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjdGMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfZHJpdmVyLmggKi8sCisgICAg
ICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IGhlYWRlcnM7
CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI4NTFGNkFGNjJFMDA1N0I4MDMgLyogUHJvZHVj
dHMgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhHcm91cDsKKyAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhF
Nzk0Mjg0MUY2QUY2MkUwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLywKKyAgICAgICAgICAgICAg
ICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gUHJvZHVjdHM7CisgICAgICAg
ICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAgICAgICAgICB9Owor
LyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MjFGNkFGNjJFMDA1N0I4MDMgLyog
SGVhZGVycyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEhlYWRlcnNCdWls
ZFBoYXNlOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzID0gKAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0Mjk4MUY2QUY3OEQwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuaCBpbiBI
ZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjk5MUY2QUY3OEQw
MDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0MjlBMUY2QUY3OEQwMDU3QjgwMyAvKiBobWRlcnJvcnNf
cHVibGljLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5
NDI5NTFGNkFGNzhEMDA1N0I4MDMgLyogaXZyY2xpZW50Y29yZS5oIGluIEhlYWRlcnMgKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOTYxRjZBRjc4RDAwNTdCODAzIC8qIGpz
b24tZm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDhFNzk0Mjk3MUY2QUY3OEQwMDU3QjgwMyAvKiBqc29uLmggaW4gSGVhZGVycyAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MjFGNkFGNzFEMDA1N0I4MDMgLyogb3BlbnZy
LmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MzFG
NkFGNzFEMDA1N0I4MDMgLyogb3BlbnZyX2NhcGkuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0Mjk0MUY2QUY3MUQwMDU3QjgwMyAvKiBvcGVudnJfZHJp
dmVyLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5
QjFGNkFGNzhEMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUMxRjZBRjc4RDAwNTdCODAzIC8qIHNo
YXJlZGxpYnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyOUQxRjZBRjc4RDAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oIGlu
IEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUUxRjZBRjc4
RDAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAg
ICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgUEJYSGVh
ZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2Vj
dGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MzFGNkFGNjJFMDA1N0I4MDMgLyogb3BlbnZy
ICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworICAg
ICAgICAgICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDhFNzk0Mjg2MUY2QUY2
MkUwMDU3QjgwMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdl
dCAib3BlbnZyIiAqLzsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUGhhc2VzID0gKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgwMUY2QUY2MkUwMDU3QjgwMyAvKiBTb3Vy
Y2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgxMUY2QUY2MkUwMDU3
QjgwMyAvKiBGcmFtZXdvcmtzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0
MjgyMUY2QUY2MkUwMDU3QjgwMyAvKiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAg
KTsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUnVsZXMgPSAoCisgICAgICAgICAgICAgICAg
ICAgICApOworICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzID0gKAorICAgICAgICAg
ICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBvcGVudnI7CisgICAg
ICAgICAgICAgICAgICAgICBwcm9kdWN0TmFtZSA9IG9wZW52cjsKKyAgICAgICAgICAgICAgICAg
ICAgIHByb2R1Y3RSZWZlcmVuY2UgPSA4RTc5NDI4NDFGNkFGNjJFMDA1N0I4MDMgLyogbGlib3Bl
bnZyLmEgKi87CisgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUu
cHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKKyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBQ
QlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24g
Ki8KKyAgICAgICAgICAgICAgOEU3OTQyNUIxRjZBRTk2NjAwNTdCODAzIC8qIFByb2plY3Qgb2Jq
ZWN0ICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYUHJvamVjdDsKKyAgICAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTGFzdFVwZ3JhZGVDaGVjayA9IDA4MzA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGFyZ2V0QXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OEU3OTQyODMxRjZBRjYyRTAwNTdCODAzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gOC4zLjM7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aXNpb25pbmdTdHlsZSA9IEF1dG9t
YXRpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA4RTc5NDI1RTFGNkFFOTY2MDA1N0I4
MDMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJvcGVudnIiICov
OworICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4y
IjsKKyAgICAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKKyAg
ICAgICAgICAgICAgICAgICAgIGhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAwOworICAgICAgICAg
ICAgICAgICAgICAga25vd25SZWdpb25zID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVuLAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG1haW5H
cm91cCA9IDhFNzk0MjVBMUY2QUU5NjYwMDU3QjgwMzsKKyAgICAgICAgICAgICAgICAgICAgIHBy
b2R1Y3RSZWZHcm91cCA9IDhFNzk0Mjg1MUY2QUY2MkUwMDU3QjgwMyAvKiBQcm9kdWN0cyAqLzsK
KyAgICAgICAgICAgICAgICAgICAgIHByb2plY3REaXJQYXRoID0gIiI7CisgICAgICAgICAgICAg
ICAgICAgICBwcm9qZWN0Um9vdCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0cyA9
ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4MzFGNkFGNjJFMDA1N0I4MDMg
Lyogb3BlbnZyICovLAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgfTsK
Ky8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYU291cmNlc0J1aWxk
UGhhc2Ugc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI4MDFGNkFGNjJFMDA1N0I4MDMg
LyogU291cmNlcyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWFNvdXJjZXNC
dWlsZFBoYXNlOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzID0gKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDhFNzk0Mjg5MUY2QUY2RDMwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOEExRjZB
RjZEMzAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4QjFGNkFGNkQzMDA1N0I4MDMgLyogaG1k
ZXJyb3JzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4RTc5NDI5MDFGNkFGNkVFMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgaW4gU291cmNlcyAq
LywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5MTFGNkFGNkVFMDA1N0I4MDMg
Lyogb3BlbnZyX2FwaV9wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU3OTQyOEMxRjZBRjZEMzAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMu
Y3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOEQx
RjZBRjZEMzAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAq
LywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4RTFGNkFGNkQzMDA1N0I4MDMg
Lyogc3RydG9vbHNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDhFNzk0MjhGMUY2QUY2RDMwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAg
ICAgICAgICAgICAgcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisgICAg
ICAgICAgICAgIH07CisvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisv
KiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhF
Nzk0MjVGMUY2QUU5NjYwMDU3QjgwMyAvKiBEZWJ1ZyAqLyA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgIGlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworICAgICAgICAgICAgICAgICAgICAgYnVp
bGRTZXR0aW5ncyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfU0VBUkNI
X1BBVEhTID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAg
ICAgICBuYW1lID0gRGVidWc7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0
MjYwMUY2QUU5NjYwMDU3QjgwMyAvKiBSZWxlYXNlICovID0geworICAgICAgICAgICAgICAgICAg
ICAgaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAgICAgICAgICAgICAgICAgICBidWls
ZFNldHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9TRUFSQ0hf
UEFUSFMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAg
ICAgIG5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5
NDI4NzFGNkFGNjJFMDA1N0I4MDMgLyogRGVidWcgKi8gPSB7CisgICAgICAgICAgICAgICAgICAg
ICBpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxk
U2V0dGluZ3MgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxXQVlTX1NFQVJDSF9V
U0VSX1BBVEhTID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQU5BTFla
RVJfTk9OTlVMTCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19BTkFM
WVpFUl9OVU1CRVJfT0JKRUNUX0NPTlZFUlNJT04gPSBZRVNfQUdHUkVTU0lWRTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251Kysw
eCI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGli
YysrIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19FTkFCTEVfTU9EVUxFUyA9
IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19FTkFCTEVfT0JKQ19BUkMg
PSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0JPT0xfQ09OVkVS
U0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0NPTlNU
QU5UX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdf
V0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ0xBTkdfV0FSTl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlF
UzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0lORklOSVRFX1JFQ1VS
U0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0lOVF9D
T05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5f
T0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENMQU5HX1dBUk5fU1VTUElDSU9VU19NT1ZFID0gWUVTOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPREVfU0lHTl9JREVOVElUWSA9ICItIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDT1BZX1BIQVNFX1NUUklQID0gTk87CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gZHdhcmY7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZ
RVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1RFU1RBQklMSVRZID0gWUVT
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUNVVEFCTEVfUFJFRklYID0gbGliOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251
OTk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX0RZTkFNSUNfTk9fUElDID0gTk87
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX05PX0NPTU1PTl9CTE9DS1MgPSBZRVM7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9O
UyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBPU0lYPTEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT1NYPTEiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiVlJfQVBJX1BVQkxJQz0xIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlBMQVRGT1JNX05BTUU9b3N4IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOXzY0X1RP
XzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
Q19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFU19BR0dS
RVNTSVZFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOVVNFRF9GVU5D
VElPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTlVTRURf
VkFSSUFCTEUgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUID0gMTAuMTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRMX0VO
QUJMRV9ERUJVR19JTkZPID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9OTFlf
QUNUSVZFX0FSQ0ggPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1RIRVJfQ1BM
VVNQTFVTRkxBR1MgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkKE9U
SEVSX0NGTEFHUykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLWZleGNl
cHRpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0RLUk9PVCA9IG1hY29zeDsKKyAgICAgICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgICAgICAgICBuYW1lID0gRGVidWc7CisgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgIDhFNzk0Mjg4MUY2QUY2MkUwMDU3QjgwMyAvKiBSZWxlYXNlICovID0g
eworICAgICAgICAgICAgICAgICAgICAgaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAg
ICAgICAgICAgICAgICAgICBidWlsZFNldHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ0xBTkdfQU5BTFlaRVJfTlVNQkVSX09CSkVDVF9DT05WRVJTSU9OID0gWUVT
X0FHR1JFU1NJVkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQ1hYX0xBTkdV
QUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENM
QU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q0xBTkdfRU5BQkxFX09CSkNfQVJDID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVTX0VS
Uk9SOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRE9DVU1FTlRBVElP
Tl9DT01NRU5UUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJO
X0VNUFRZX0JPRFkgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FS
Tl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xB
TkdfV0FSTl9JTkZJTklURV9SRUNVUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX1NVU1BJQ0lPVVNfTU9WRSA9IFlFUzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NPREUg
PSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9fRFVQTElDQVRF
X01FVEhPRF9NQVRDSCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0RFX1NJ
R05fSURFTlRJVFkgPSAiLSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09QWV9QSEFT
RV9TVFJJUCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQlVHX0lORk9STUFU
SU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiUE9TSVg9MSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJPU1g9MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJWUl9BUElfUFVCTElDPTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
UExBVEZPUk1fTkFNRT1vc3giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04g
PSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fQUJPVVRfUkVUVVJO
X1RZUEUgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5f
VU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
Q0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JFU1NJVkU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4x
MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVExfRU5BQkxFX0RFQlVHX0lORk8gPSBO
TzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICgK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQoT1RIRVJfQ0ZMQUdTKSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItZmV4Y2VwdGlvbnMiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJP
RFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTREtST09UID0gbWFjb3N4OworICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgIG5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9OworLyogRW5kIFhDQnVp
bGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKworLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlz
dCBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjVFMUY2QUU5NjYwMDU3QjgwMyAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIm9wZW52ciIgKi8gPSB7Cisg
ICAgICAgICAgICAgICAgICAgICBpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworICAgICAgICAg
ICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTc5NDI1RjFGNkFFOTY2MDA1N0I4MDMgLyogRGVidWcgKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyNjAxRjZBRTk2NjAwNTdCODAzIC8qIFJlbGVhc2UgKi8s
CisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENv
bmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENv
bmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgOEU3OTQyODYxRjZBRjYyRTAwNTdCODAzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYTmF0aXZlVGFyZ2V0ICJvcGVudnIiICovID0geworICAgICAgICAgICAgICAgICAgICAg
aXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ29u
ZmlndXJhdGlvbnMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODcxRjZB
RjYyRTAwNTdCODAzIC8qIERlYnVnICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhF
Nzk0Mjg4MUY2QUY2MkUwMDU3QjgwMyAvKiBSZWxlYXNlICovLAorICAgICAgICAgICAgICAgICAg
ICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJl
bGVhc2U7CisgICAgICAgICAgICAgIH07CisvKiBFbmQgWENDb25maWd1cmF0aW9uTGlzdCBzZWN0
aW9uICovCisgICAgICAgfTsKKyAgICAgICByb290T2JqZWN0ID0gOEU3OTQyNUIxRjZBRTk2NjAw
NTdCODAzIC8qIFByb2plY3Qgb2JqZWN0ICovOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2ggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODk2M2MyMGVh
NzMwZTlmNjhiNzllM2I5ZDZmYWE5MzgzNGQ1OTVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSw5
NCBAQAorZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4
IDk0ZGUzY2UuLjZkZWNlZGQgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01h
a2VMaXN0cy50eHQKK0BAIC0xLDE0ICsxLDggQEAKKyAjIFNldCB0aGUgbWluaW11bSByZXF1aXJl
ZCB2ZXJzaW9uIG9mIENNYWtlIGZvciB0aGlzIHByb2plY3QuCisgY21ha2VfbWluaW11bV9yZXF1
aXJlZChWRVJTSU9OIDIuOCkKKyAKKy0jIFNldCBwcm9qZWN0IG5hbWUuCistcHJvamVjdChPcGVu
VlJTREspCistCisgIyBTZXR1cCBzb21lIG9wdGlvbnMuCisgb3B0aW9uKEJVSUxEX1NIQVJFRCAi
QnVpbGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYpCistb3B0aW9uKEJVSUxE
X0ZSQU1FV09SSyAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIGFuIGFwcGxlIEZyYW1ld29yayIgT0ZG
KQorLW9wdGlvbihCVUlMRF9VTklWRVJTQUwgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1ld29y
ayBhcyBhIHVuaXZlcnNhbCAoZmF0LCAzMi0gJiA2NC1iaXQpIGJpbmFyeSIgT04pCistb3B0aW9u
KEJVSUxEX09TWF9JMzg2ICJCdWlsZHMgdGhlIHNoYXJlZCBvciBmcmFtZXdvcmsgYXMgYSAzMi1i
aXQgYmluYXJ5LCBldmVuIG9uIGEgNjQtYml0IHBsYXRmb3JtIiBPRkYpCisgb3B0aW9uKFVTRV9M
SUJDWFggIlVzZXMgbGliYysrIGluc3RlYWQgb2YgbGlic3RkYysrIiBPTikKKyBvcHRpb24oVVNF
X0NVU1RPTV9MSUJDWFggIlVzZXMgYSBjdXN0b20gbGliYysrIiBPRkYpCisgCitAQCAtMzcsMjEg
KzMxLDkgQEAgZWxzZWlmKEFQUExFKQorICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAi
LipEYXJ3aW4uKiIgT1IgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiLipNYWNPUy4qIikKKyAg
ICAgc2V0KFBMQVRGT1JNX05BTUUgIm9zeCIpCisgICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAt
RFBPU0lYKQorLSAgICBpZihCVUlMRF9VTklWRVJTQUwpCistICAgICAgc2V0KENNQUtFX09TWF9B
UkNISVRFQ1RVUkVTICJpMzg2O3g4Nl82NCIpCistICAgIGVuZGlmKCkKKy0gICAgaWYoQlVJTERf
T1NYX0kzODYpCistICAgICAgc2V0KFBST0NFU1NPUl9BUkNIICIzMiIpCistICAgICAgc2V0KENN
QUtFX09TWF9BUkNISVRFQ1RVUkVTICJpMzg2IikKKy0gICAgZW5kaWYoKQorICAgZW5kaWYoKQor
IGVuZGlmKCkKKyAKKy0jIFNldCBvdXRwdXQgZm9sZGVyIGZvciBzdGF0aWMgYW5kIHNoYXJlZCBs
aWJyYXJpZXMKKy1zZXQoQ01BS0VfTElCUkFSWV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfU09V
UkNFX0RJUn0vYmluLyR7UExBVEZPUk1fTkFNRX0ke1BST0NFU1NPUl9BUkNIfSkKKy1zZXQoQ01B
S0VfQVJDSElWRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfU09VUkNFX0RJUn0vYmluLyR7UExB
VEZPUk1fTkFNRX0ke1BST0NFU1NPUl9BUkNIfSkKKy1zZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRf
RElSRUNUT1JZICR7Q01BS0VfU09VUkNFX0RJUn0vYmluLyR7UExBVEZPUk1fTkFNRX0ke1BST0NF
U1NPUl9BUkNIfSkKKy0KKyAjIEVuYWJsZSBzb21lIHByb3BlcnRpZXMuCisgaWYoQ01BS0VfQ09N
UElMRVJfSVNfR05VQ0MgT1IgQ01BS0VfQ19DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFuZyIpCisg
ICAgICAgICMgRW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hvdWxkbid0IGJl
IHZpc2libGUKK2RpZmYgLS1naXQgYS9zcmMvQ01ha2VMaXN0cy50eHQgYi9zcmMvQ01ha2VMaXN0
cy50eHQKK2luZGV4IDU4OTU0ZDYuLjhiNTM3YWYgMTAwNjQ0CistLS0gYS9zcmMvQ01ha2VMaXN0
cy50eHQKKysrKyBiL3NyYy9DTWFrZUxpc3RzLnR4dAorQEAgLTMsNiArMyw5IEBAIHByb2plY3Qo
b3BlbnZyX2FwaSkKKyAKKyBzZXQoIExJQk5BTUUgIm9wZW52cl9hcGkiICkKKyAKKytzZXQoRVhD
RVBUSU9OX0ZMQUdTICItZmV4Y2VwdGlvbnMiKQorK2FkZF9kZWZpbml0aW9ucygke0VYQ0VQVElP
Tl9GTEFHU30pCisrCisgIyBTZXQgc29tZSBwcm9wZXJpZXMgZm9yIHNwZWNpZmljIGZpbGVzLgor
IGlmKEFQUExFKQorICAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQorQEAgLTIyLDcgKzI1LDcg
QEAgZWxzZWlmKFdJTjMyKQorIGVuZGlmKCkKKyAKKyAjIEFkZCBpbmNsdWRlIGZvbGRlcnMuCist
aW5jbHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYyAke0NNQUtFX1NPVVJD
RV9ESVJ9L2hlYWRlcnMgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvdnJjb21tb24pCisraW5jbHVk
ZV9kaXJlY3Rvcmllcygke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjICR7UFJPSkVDVF9TT1VS
Q0VfRElSfS8uLi9oZWFkZXJzICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMvdnJjb21tb24p
CisgCisgaWYoVVNFX0NVU1RPTV9MSUJDWFgpCisgICAgICAgIGxpbmtfZGlyZWN0b3JpZXMoCitA
QCAtNjUsMjIgKzY4LDIyIEBAIGVsc2VpZihCVUlMRF9GUkFNRVdPUkspCisgICAgICAgIHNldCgg
TElCTkFNRSAiT3BlblZSIiApCisgICAgICAgIGFkZF9saWJyYXJ5KCAke0xJQk5BTUV9IAorICAg
ICAgICAgICAgIFNIQVJFRCAke1NPVVJDRV9GSUxFU30KKy0gICAgICAgICAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyLmgKKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9E
SVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5jcworLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9E
SVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGkuaAorLSAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKKysgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNF
X0RJUn0vLi4vaGVhZGVycy9vcGVudnIuaAorKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuY3MKKysgICAgICAgICAgICAke1BST0pFQ1RfU09V
UkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKysgICAgICAgICAgICAke1BST0pF
Q1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5oCisrICAgICAgICAgICAgJHtQ
Uk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oCisgICAgICAgICkK
KyAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKE9wZW5WUiBQUk9QRVJUSUVTCisgICAgICAg
ICAgICAgICBGUkFNRVdPUksgVFJVRQorICAgICAgICAgICAgICAgRlJBTUVXT1JLX1ZFUlNJT04g
QQorICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JREVOVElGSUVSIGNvbS52YWx2ZXNv
ZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKKy0gICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdPUktf
SU5GT19QTElTVCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9JbmZvLnBsaXN0CisrICAgICAgICAg
ICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4u
L3NyYy9JbmZvLnBsaXN0CisgICAgICAgICAgICAgICAjICJjdXJyZW50IHZlcnNpb24iIGluIHNl
bWFudGljIGZvcm1hdCBpbiBNYWNoLU8gYmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgIFZFUlNJ
T04gMS4wLjYKKyAgICAgICAgICAgICAgICMgImNvbXBhdGliaWxpdHkgdmVyc2lvbiIgaW4gc2Vt
YW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQorICAgICAgICAgICAgICAgU09WRVJT
SU9OIDEuMC4wCistICAgICAgICAgICAgICBQVUJMSUNfSEVBREVSICIke0NNQUtFX1NPVVJDRV9E
SVJ9L2hlYWRlcnMvb3BlbnZyLmg7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9h
cGkuY3M7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuanNvbjske0NNQUtF
X1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2NhcGkuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hl
YWRlcnMvb3BlbnZyX2RyaXZlci5oIgorKyAgICAgICAgICAgICAgUFVCTElDX0hFQURFUiAiJHtQ
Uk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmg7JHtQUk9KRUNUX1NPVVJDRV9E
SVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jczske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVh
ZGVycy9vcGVudnJfYXBpLmpzb247JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3Bl
bnZyX2NhcGkuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfZHJpdmVy
LmgiCisgICAgICAgICAgICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCisgICAgICAgICkKKyBlbHNl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ1MGU2ODk4ZjllM2JmYWQzNmQ3OGU5M2Y4NmMwMzU5YTA0NjAzZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0CkBAIC0w
LDAgKzEsOTkgQEAKKyMgUHJvamVjdCBuYW1lLgorcHJvamVjdChvcGVudnJfYXBpKQorCitzZXQo
IExJQk5BTUUgIm9wZW52cl9hcGkiICkKKworc2V0KEVYQ0VQVElPTl9GTEFHUyAiLWZleGNlcHRp
b25zIikKK2FkZF9kZWZpbml0aW9ucygke0VYQ0VQVElPTl9GTEFHU30pCisKKyMgU2V0IHNvbWUg
cHJvcGVyaWVzIGZvciBzcGVjaWZpYyBmaWxlcy4KK2lmKEFQUExFKQorICBzZXQoQ01BS0VfTUFD
T1NYX1JQQVRIIDEpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkRhcndpbiIpCisg
ICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKHZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMu
Y3BwIHZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgUFJPUEVSVElFUyBDT01QSUxF
X0ZMQUdTICIteCBvYmplY3RpdmUtYysrIikKKyAgZW5kaWYoKQorICBpZihCVUlMRF9TSEFSRUQg
T1IgQlVJTERfRlJBTUVXT1JLKQorICAgIGZpbmRfbGlicmFyeShGT1VOREFUSU9OX0ZSQU1FV09S
SyBGb3VuZGF0aW9uKQorICAgIG1hcmtfYXNfYWR2YW5jZWQoRk9VTkRBVElPTl9GUkFNRVdPUksp
CisgICAgc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJTfSAke0ZPVU5EQVRJT05fRlJBTUVXT1JL
fSkKKyAgZW5kaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09SSykKK2Vsc2VpZihXSU4z
MikKKyAgaWYoQ01BS0VfU0laRU9GX1ZPSURfUCBFUVVBTCA4KQorICAgIGFkZF9kZWZpbml0aW9u
cyggLURXSU42NCApCisgICAgc2V0KCBMSUJOQU1FICJvcGVudnJfYXBpNjQiICkKKyAgZW5kaWYo
KQorZW5kaWYoKQorCisjIEFkZCBpbmNsdWRlIGZvbGRlcnMuCitpbmNsdWRlX2RpcmVjdG9yaWVz
KCR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hl
YWRlcnMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy92cmNvbW1vbikKKworaWYoVVNFX0NV
U1RPTV9MSUJDWFgpCisgICAgICAgbGlua19kaXJlY3RvcmllcygKKyAgICAgICAgICAgICAgJHtM
SUJDWFhfTElCX0RJUn0KKyAgICAgICApCitlbmRpZigpCisKKyMgU2V0IHRoZSBzb3VyY2UgZ3Jv
dXAgYW5kIGZpbGVzLgorc2V0KENPUkVfRklMRVMKKyAgICAgICBvcGVudnJfYXBpX3B1YmxpYy5j
cHAKKyAgICAgICBqc29uY3BwLmNwcAorKQorc2V0KFZSQ09NTU9OX0ZJTEVTCisgICAgICAgdnJj
b21tb24vZGlydG9vbHNfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL2VudnZhcnRvb2xzX3B1
YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcAorICAgICAgIHZy
Y29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9obWRlcnJv
cnNfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAK
KyAgICAgICB2cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuY3BwCispCisKK3NldChTT1VSQ0VfRklM
RVMKKyAgICAgICAke0NPUkVfRklMRVN9CisgICAgICAgJHtWUkNPTU1PTl9GSUxFU30KKykKKwor
c291cmNlX2dyb3VwKCJTcmMiIEZJTEVTCisgICAgICAgJHtDT1JFX0ZJTEVTfQorKQorCitzb3Vy
Y2VfZ3JvdXAoIlZSQ29tbW9uIiBGSUxFUworICAgICAgICR7VlJDT01NT05fRklMRVN9CispCisK
KyMgQnVpbGQgdGhlIGxpYnJhcnkuCitpZihCVUlMRF9TSEFSRUQpCisgICAgICAgYWRkX2xpYnJh
cnkoJHtMSUJOQU1FfSBTSEFSRUQgJHtTT1VSQ0VfRklMRVN9KQorZWxzZWlmKEJVSUxEX0ZSQU1F
V09SSykKKyAgICAgICBzZXQoIExJQk5BTUUgIk9wZW5WUiIgKQorICAgICAgIGFkZF9saWJyYXJ5
KCAke0xJQk5BTUV9IAorICAgICAgICAgICAgU0hBUkVEICR7U09VUkNFX0ZJTEVTfQorICAgICAg
ICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmgKKyAgICAgICAg
ICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuY3MKKyAgICAg
ICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbgor
ICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2NhcGku
aAorICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2Ry
aXZlci5oCisgICAgICAgKQorICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhPcGVuVlIgUFJP
UEVSVElFUworICAgICAgICAgICAgICBGUkFNRVdPUksgVFJVRQorICAgICAgICAgICAgICBGUkFN
RVdPUktfVkVSU0lPTiBBCisgICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdPUktfSURFTlRJRklF
UiBjb20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3JrCisgICAgICAgICAgICAgIE1BQ09T
WF9GUkFNRVdPUktfSU5GT19QTElTVCAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjL0luZm8u
cGxpc3QKKyAgICAgICAgICAgICAgIyAiY3VycmVudCB2ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3Jt
YXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgIFZFUlNJT04gMS4wLjYKKyAg
ICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQg
aW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgIFNPVkVSU0lPTiAxLjAuMAorICAg
ICAgICAgICAgICBQVUJMSUNfSEVBREVSICIke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVy
cy9vcGVudnIuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmNz
OyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbjske1BST0pF
Q1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCIKKyAgICAgICAgICAgICAgTElOS0VSX0xB
TkdVQUdFIENYWAorICAgICAgICkKK2Vsc2UoKQorICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFN
RX0gU1RBVElDICR7U09VUkNFX0ZJTEVTfSkKK2VuZGlmKCkKKworaWYoVVNFX0NVU1RPTV9MSUJD
WFgpCisgICAgICAgc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJTfSBjKysgYysrYWJpKQorZW5k
aWYoKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoJHtMSUJOQU1FfSAke0VYVFJBX0xJQlN9KQor
CitpbnN0YWxsKFRBUkdFVFMgJHtMSUJOQU1FfSBERVNUSU5BVElPTiBsaWIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0luZm8ucGxpc3QgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL0luZm8ucGxpc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlNTY5ODA4N2YwOTM5MTQ1
OGJiMTk3YWQ4ZDgxN2VlZGViODI2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBw
bGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0
eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorICAgICAgIDxr
ZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisgICAgICAgPHN0cmluZz5jb20udmFsdmVzb2Z0
d2FyZS5PcGVuVlIuZnJhbWV3b3JrPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZUluZm9E
aWN0aW9uYXJ5VmVyc2lvbjwva2V5PgorICAgICAgIDxzdHJpbmc+Ni4wPC9zdHJpbmc+CisgICAg
ICAgPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKyAgICAgICA8c3RyaW5nPk9wZW5WUjwvc3RyaW5n
PgorICAgICAgIDxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgorICAgICAgIDxzdHJpbmc+
Rk1XSzwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tl
eT4KKyAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVWZXJz
aW9uPC9rZXk+CisgICAgICAgPHN0cmluZz4xLjA8L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL1JFQURNRSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNmM1OGRhNzlmYjk0
ZTAyZGNmZWNkMjZhNWU1NTJkOWFhNThhYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL1JFQURNRQpAQCAtMCwwICsxLDM5IEBACitUaGlzIGlzIHRoZSBz
b3VyY2UgY29kZSBmb3IgdGhlIE9wZW5WUiBBUEkgY2xpZW50IGJpbmRpbmcgbGlicmFyeSB3aGlj
aCBjb25uZWN0cworT3BlblZSIGFwcGxpY2F0aW9ucyB0byB0aGUgU3RlYW1WUiBydW50aW1lLCB0
YWtpbmcgaW50byBhY2NvdW50IHRoZSB2ZXJzaW9uCitvZiB0aGUgT3BlblZSIGludGVyZmFjZSB0
aGV5IHdlcmUgY29tcGlsZWQgYWdhaW5zdC4KKworVGhlIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkg
LSBvcGVudnJfYXBpLmRsbCBvbiBXaW5kb3dzLCBvcGVudnJfYXBpLnNvIG9uCitMaW51eCwgYW5k
IG9wZW52cl9hcGkuZHlsaWIgb3IgT3BlblZSLmZyYW1ld29yayBvbiBtYWNPUyAtIGtub3dzIGhv
dyB0byBmaW5kCithbmQgcmVhZCB0aGUgU3RlYW1WUiBydW50aW1lIGluc3RhbGxhdGlvbiBpbmZv
cm1hdGlvbiB3aGljaCBhbGxvd3MgaXQgdG8KK2ZpbmQgYW5kIGR5bmFtaWNhbGx5IGNvbm5lY3Qg
dG8gdGhlIGluc3RhbGxlZCBydW50aW1lLiBJbiBjb21iaW5hdGlvbiB3aXRoIHRoZQoraW50ZXJm
YWNlIHZlcnNpb24gaWRlbnRpZmllcnMgZnJvbSAvaW5jbHVkZS9vcGVudnIuaCB3aGljaCBhcmUg
YmFrZWQKK2ludG8gYXBwbGljYXRpb25zIGF0IHRoZSB0aW1lIHRoZXkgYXJlIGJ1aWx0LCB0aGUg
T3BlblZSIEFQSSBjbGllbnQKK2JpbmRpbmcgbGlicmFyeSBjYXB0dXJlcyBhbmQgY29udmV5cyB0
byB0aGUgU3RlYW1WUiBydW50aW1lIHRoZSB2ZXJzaW9uCitvZiB0aGUgT3BlblZSIEFQSSBpbnRl
cmZhY2UgYmVoYXZpb3IgdGhhdCB0aGUgYXBwbGljYXRpb24gZXhwZWN0cy4KKworQXBwbGljYXRp
b25zIGNhcnJ5IHdpdGggdGhlbSBhIHByaXZhdGUvbG9jYWwgY29weSBvZiB0aGUgY2xpZW50IGJp
bmRpbmcKK2xpYnJhcnkgd2hlbiB0aGV5IHNoaXAsIGFuZCB0aGV5IHNob3VsZCBpbnN0YWxsIGl0
IGxvY2FsbHkgdG8gdGhlaXIKK2FwcGxpY2F0aW9uLiAgQXBwbGljYXRpb25zIHNob3VsZCBub3Qg
aW5zdGFsbCB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQorZ2xvYmFsbHkgb3IgYXR0ZW1wdCB0
byBsaW5rIHRvIGEgZ2xvYmFsbHkgaW5zdGFsbGVkIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkuCitE
b2luZyBzbyBuZWdhdGVzIGF0IGxlYXN0IHBhcnQgb2YgdGhlIGFiaWxpdHkgZm9yIHRoZSBjbGll
bnQgYmluZGluZyBsaWJyYXJ5Cit0byBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhlIHZlcnNpb24gb2Yg
dGhlIE9wZW5WUiBBUEkgdGhhdCB0aGUgYXBwbGljYXRpb24KK3dhcyBidWlsdCBhZ2FpbnN0LCBh
bmQgc28gaGluZGVycyBjb21wYXRpYmlsaXR5IHN1cHBvcnQgaW4gdGhlIGZhY2Ugb2YKK0FQSSBj
aGFuZ2VzLgorCitNb3N0IGFwcGxpY2F0aW9ucyBzaG91bGQgc2ltcGx5IGxpbmsgdG8gYW5kIHJl
ZGlzdHJpYnV0ZSB3aXRoIHRoZWlyIGFwcGxpY2F0aW9uCit0aGUgcHJlLWJ1aWx0IGNsaWVudCBi
aW5kaW5nIGxpYnJhcnkgZm91bmQgaW4gdGhlIC9iaW4gZGlyZWN0b3J5IG9mIHRoaXMKK3JlcG9z
aXRvcnkuIFNvbWUgc21hbGwgbnVtYmVyIG9mIGFwcGxpY2F0aW9ucyB3aGljaCBoYXZlIHNwZWNp
ZmljIHJlcXVpcmVtZW50cworYXJvdW5kIHJlZGlzdHJpYnV0aW5nIG9ubHkgYmluYXJpZXMgdGhl
eSBidWlsZCB0aGVtc2VsdmVzIHNob3VsZCBidWlsZAordGhlIGNsaWVudCBsaWJyYXJ5IGZyb20g
dGhpcyBzb3VyY2UgYW5kIGVpdGhlciBzdGF0aWNhbGx5IGxpbmsgaXQgaW50bwordGhlaXIgYXBw
bGljYXRpb24gb3IgcmVkaXN0cmlidXRlIHRoZSBiaW5hcnkgdGhleSBidWlsZC4KKworVGhpcyBp
cyBhIGNtYWtlIHByb2plY3QsIHRvIGJ1aWxkIGl0IHVzZSB0aGUgdmVyc2lvbiBvZiBjbWFrZSBh
cHByb3ByaWF0ZQorZm9yIHlvdXIgcGxhdGZvcm0uIEZvciBleGFtcGxlLCB0byBidWlsZCBvbiBh
IFBPU0lYIHN5c3RlbSBzaW1wbHkgcGVyZm9ybQorCisgIGNkIHNyYzsgbWtkaXIgX2J1aWxkOyBj
ZCBfYnVpbGQ7IGNtYWtlIC4uOyBtYWtlCisKK2FuZCB5b3Ugd2lsbCBlbmQgdXAgd2l0aCB0aGUg
c3RhdGljIGxpYnJhcnkgL3NyYy9iaW4vPGFyY2g+L2xpYm9wZW52cl9hcGkuYQorCitUbyBidWls
ZCBhIHNoYXJlZCBsaWJyYXJ5LCBwYXNzIC1EQlVJTERfU0hBUkVEPTEgdG8gY21ha2UuCitUbyBi
dWlsZCBhcyBhIGZyYW1ld29yayBvbiBhcHBsZSBwbGF0Zm9ybXMsIHBhc3MgLURCVUlMRF9GUkFN
RVdPUks9MSB0byBjbWFrZS4KK1RvIHNlZSBhIGNvbXBsZXRlIGxpc3Qgb2YgY29uZmlndXJhYmxl
IGJ1aWxkIG9wdGlvbnMsIHVzZSBgY21ha2UgLUxBSGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9pdnJjbGllbnRjb3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFmZTM2MGVlNGFkNTJjODc5OTBj
MjUxNzQ2ZjAxY2I4OWJiZjAwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8vPT09PT09PT09
IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJDbGllbnRDb3JlCit7CitwdWJsaWM6Cisg
ICAgICAgLyoqIEluaXRpYWxpemVzIHRoZSBzeXN0ZW0gKi8KKyAgICAgICB2aXJ0dWFsIEVWUklu
aXRFcnJvciBJbml0KCB2cjo6RVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUsIGNv
bnN0IGNoYXIgKnBTdGFydHVwSW5mbyApID0gMDsKKworICAgICAgIC8qKiBjbGVhbnMgdXAgZXZl
cnl0aGluZyBpbiB2cmNsaWVudC5kbGwgYW5kIHByZXBhcmVzIHRoZSBETEwgdG8gYmUgdW5sb2Fk
ZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ2xlYW51cCgpID0gMDsKKworICAgICAgIC8qKiBj
aGVja3MgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgaW50ZXJmYWNlL3ZlcnNpb24gaXMgc3VwcG9y
dGVkIGluIHRoaXMgdnJjbGllbnQuZGxsICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3Ig
SXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoIGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24g
KSA9IDA7CisKKyAgICAgICAvKiogUmV0cmlldmVzIGFueSBpbnRlcmZhY2UgZnJvbSB2cmNsaWVu
dC5kbGwgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgKkdldEdlbmVyaWNJbnRlcmZhY2UoIGNvbnN0
IGNoYXIgKnBjaE5hbWVBbmRWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIGFueSBkcml2ZXIgaGFzIGFuIEhNRCBhdHRhY2hl
ZC4gQ2FuIGJlIGNhbGxlZCBvdXRzaWRlIG9mIEluaXQvQ2xlYW51cCAqLworICAgICAgIHZpcnR1
YWwgYm9vbCBCSXNIbWRQcmVzZW50KCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYW4gRW5n
bGlzaCBlcnJvciBzdHJpbmcgZnJvbSBpbnNpZGUgdnJjbGllbnQuZGxsIHdoaWNoIG1pZ2h0IGJl
IG5ld2VyIHRoYW4gdGhlIEFQSSBETEwgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdl
dEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKSA9IDA7
CisKKyAgICAgICAvKiogUmV0dXJucyBhbiBlcnJvciBzeW1ib2wgZnJvbSBpbnNpZGUgdnJjbGll
bnQuZGxsIHdoaWNoIG1pZ2h0IGJlIG5ld2VyIHRoYW4gdGhlIEFQSSBETEwgKi8KKyAgICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIgKkdldElERm9yVlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3Ig
ZUVycm9yICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJDbGllbnRD
b3JlX1ZlcnNpb24gPSAiSVZSQ2xpZW50Q29yZV8wMDMiOworCisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJkcy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkx
MGM3ZGU5NzY0YjQyMTgyYjAxN2Y3MGVlMDA5MzFiZjZlNDkwNDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJkcy5oCkBAIC0w
LDAgKzEsMjg0IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGZvcndhcmQgaGVhZGVyIChodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1
c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi1mb3J3YXJkcy5oIgorLy8vIFRoaXMgaGVhZGVy
IHByb3ZpZGVzIGZvcndhcmQgZGVjbGFyYXRpb24gZm9yIGFsbCBKc29uQ3BwIHR5cGVzLgorCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNF
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisKKy8qCitUaGUgSnNvbkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNv
ZGUsIGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiwgCit0ZXN0cyBhbmQgZGVt
b25zdHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5n
Citjb25kaXRpb25zLi4uCisKK1RoZSBhdXRob3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGlj
aXRseSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK2p1cmlzZGljdGlvbnMgd2hpY2ggcmVj
b2duaXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1cmlzZGljdGlvbnMsIAordGhpcyBz
b2Z0d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMgRG9tYWluLgorCitJbiBqdXJpc2Rp
Y3Rpb25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSAoZS5n
LiBHZXJtYW55IGFzIG9mCisyMDEwKSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIw
MDctMjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBpcworcmVsZWFzZWQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KKworSW4ganVyaXNkaWN0aW9u
cyB3aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhp
cyAKK3NvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMg
RG9tYWluLCAyKSB1bmRlciB0aGUgCitjb25kaXRpb25zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2Vl
IGJlbG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9mIGR1YWwgCitQdWJsaWMgRG9tYWluL01J
VCBMaWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhlcmUsIGFzIHRoZXkgY2hvb3NlLgorCitU
aGUgTUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2UgdG8gUHVibGljIERvbWFpbiBhcyBhIGxp
Y2Vuc2UgY2FuIGdldCwgYW5kIGlzCitkZXNjcmliZWQgaW4gY2xlYXIsIGNvbmNpc2UgdGVybXMg
YXQ6CisKKyAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKKyAgIAor
VGhlIGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9sbG93czoKKworPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKworUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KK29i
dGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uCitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo
b3V0CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwKK21vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhF
IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCitCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KK0FDVElPTiBPRiBDT05UUkFDVCwg
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCitDT05ORUNUSU9O
IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitT
T0ZUV0FSRS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorKEVORCBMSUNFTlNFIFRFWFQpCisKK1RoZSBNSVQg
bGljZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0aGUgR1BMIGFuZCBjb21tZXJjaWFsCitz
b2Z0d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhlIHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWlu
IHdpdGggdGhlCittaW5vciBudWlzYW5jZSBvZiBiZWluZyByZXF1aXJlZCB0byBrZWVwIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlCithbmQgbGljZW5zZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29k
ZS4gTm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRoZQorUHVibGljIERvbWFpbiAibGljZW5z
ZSIgeW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1c2luZyB3aGF0ZXZlcgorbGljZW5zZSB5
b3UgbGlrZS4KKworKi8KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2Yg
ZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKyNpZm5kZWYgSlNPTl9G
T1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECisjIGRlZmluZSBKU09OX0ZPUldBUkRfQU1BTEdB
VEVEX0hfSU5DTFVERUQKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNl
IGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNp
b24uCisjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25maWcuaAorLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1
cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYg
ZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUg
ZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vm
b3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fQ09ORklHX0hfSU5DTFVERUQKKyNkZWZp
bmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRo
YXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJhcnkuCisvLyMgZGVmaW5l
IEpTT05fSU5fQ1BQVEwgMQorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQganNvbiBt
YXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQor
Ly8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3RvciBiYXNlZCBtYXAgc2hv
dWxkIGJlIHVzZWQgaW5zdGVhZCBvZgorLy8vIHN0ZDo6bWFwCisvLy8gYXMgVmFsdWUgY29udGFp
bmVyLgorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAgMQorCisvLyBJZiBub24t
emVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9ydCBiYWQgaW5wdXQgaW5z
dGVhZCBvZiBDCisvLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVsdCBpcyB0byB1c2UgZXhj
ZXB0aW9ucy4KKyNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCisjZGVmaW5lIEpTT05fVVNFX0VY
Q0VQVElPTiAxCisjZW5kaWYKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IHRoZSBz
b3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHByaXZhdGUgaGVhZGVyIGlu
Y2x1c2lvbi4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5IGRlZmluZWQgaW4gdGhl
IGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgorLy8gI2RlZmluZSBKU09OX0lTX0FNQUxHQU1B
VElPTgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2NvbmZpZy5oPgor
I2lmbmRlZiBKU09OX1VTRV9DUFBUTAorI2RlZmluZSBKU09OX1VTRV9DUFBUTCAxCisjZW5kaWYK
KyNlbmRpZgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2RlZmluZSBKU09OX0FQSSBDUFBUTF9B
UEkKKyNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikK
KyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisjZGVmaW5lIEpTT05DUFBf
RElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0Nf
VkVSKQorI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2Rl
ZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNB
QkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIp
CisjZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAorI2lmICFkZWZpbmVkKEpTT05fQVBJKQor
I2RlZmluZSBKU09OX0FQSQorI2VuZGlmCisKKy8vIElmIEpTT05fTk9fSU5UNjQgaXMgZGVmaW5l
ZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBmb3IKKy8vIGludGVnZXIK
Ky8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQgaXMgZGlzYWJsZWQuCisv
LyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTVNW
QworIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKKyAgICAvLyBNaWNyb3NvZnQgVmlz
dWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20gX19pbnQ2NCB0byBkb3Vi
bGUKKyAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9faW50NjQpLgorIyAgICBk
ZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQorICAgIC8vIERpc2FibGUg
d2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRpZmllciB3YXMgdHJ1bmNh
dGVkIHRvICcyNTUnCisgICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVidWcgaW5mb3JtYXRpb24p
CisgICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGggVlM2IHdlcmUgdXNpbmcg
dGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZworICAgIC8vIHdpdGggcHJhZ21hIHB1c2gvcG9w
KS4KKyMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCisjICBlbmRpZiAvLyBNU1ZD
IDYKKworIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgKKyAgICAvLy8gSW5kaWNh
dGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgorIyAgICBkZWZp
bmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMoZGVwcmVjYXRlZChtZXNz
YWdlKSkKKyMgIGVuZGlmCisKKyNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQorCisKKyNpZm5k
ZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYm
IF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCisjZGVmaW5lIEpTT05fSEFTX1JWQUxV
RV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAvLyBNU1ZDID49IDIwMTAKKworI2lmZGVmIF9fY2xhbmdf
XworI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2VzKQorI2RlZmluZSBKU09O
X0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIGhhc19mZWF0dXJlCisKKyNlbGlm
IGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2UgY2xh
bmcgZW11bGF0ZXMgZ2NjKQorI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18p
IHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUyAxCisjZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKKworI2VuZGlmIC8vIF9fY2xh
bmdfXyB8fCBfX0dOVUNfXworCisjZW5kaWYgLy8gbm90IGRlZmluZWQgSlNPTl9IQVNfUlZBTFVF
X1JFRkVSRU5DRVMKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworI2RlZmlu
ZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCisjZW5kaWYKKworI2lmZGVmIF9fY2xhbmdf
XworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBz
aW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjICBpZiAoX19HTlVDX18gPiA0IHx8IChfX0dOVUNf
XyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQorIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBS
RUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRlZChtZXNzYWdlKSkpCisj
ICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18g
Pj0gMSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgIF9fYXR0cmli
dXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKKyMgIGVuZGlmICAvLyBHTlVDIHZlcnNpb24KKyNlbmRp
ZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2lmICFkZWZpbmVkKEpTT05DUFBfREVQUkVD
QVRFRCkKKyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpCisjZW5kaWYgLy8gaWYg
IWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorCituYW1lc3BhY2UgSnNvbiB7Cit0eXBlZGVm
IGludCBJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OworI2lmIGRlZmluZWQoSlNPTl9O
T19JTlQ2NCkKK3R5cGVkZWYgaW50IExhcmdlc3RJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBM
YXJnZXN0VUludDsKKyN1bmRlZiBKU09OX0hBU19JTlQ2NAorI2Vsc2UgICAgICAgICAgICAgICAg
IC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKy8vIEZvciBNaWNyb3NvZnQgVmlzdWFsIHVz
ZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBvcnRlZAorI2lmIGRlZmlu
ZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCit0eXBlZGVmIF9faW50NjQg
SW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0OworI2Vsc2UgICAgICAgICAg
ICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBsYXRmb3JtcywgdXNlIGxv
bmcgbG9uZwordHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwordHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgaW50IFVJbnQ2NDsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQordHlw
ZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwordHlwZWRlZiBVSW50NjQgTGFyZ2VzdFVJbnQ7CisjZGVm
aW5lIEpTT05fSEFTX0lOVDY0CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQor
fSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05fQ09ORklHX0hfSU5DTFVE
RUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVk
ZS9qc29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZm9y
d2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRp
c3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1Ymxp
YyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rp
b24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNv
bmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fRk9SV0FSRFNfSF9J
TkNMVURFRAorI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVk
KEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmIC8vIGlm
ICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1lc3BhY2UgSnNvbiB7CisKKy8v
IHdyaXRlci5oCitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5bGVkV3JpdGVyOworCisvLyBy
ZWFkZXIuaAorY2xhc3MgUmVhZGVyOworCisvLyBmZWF0dXJlcy5oCitjbGFzcyBGZWF0dXJlczsK
KworLy8gdmFsdWUuaAordHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJbmRleDsKK2NsYXNzIFN0
YXRpY1N0cmluZzsKK2NsYXNzIFBhdGg7CitjbGFzcyBQYXRoQXJndW1lbnQ7CitjbGFzcyBWYWx1
ZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworY2xhc3MgVmFsdWVJdGVyYXRvcjsKK2NsYXNz
IFZhbHVlQ29uc3RJdGVyYXRvcjsKKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisjZW5kaWYgLy8g
SlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBj
b250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKKworCisKKworI2VuZGlmIC8vaWZuZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FURURfSF9JTkNM
VURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24u
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDI3ZjY1ZDlkZmE4NTM2YzM1ZmY0N2RlMDg0ZmVjZTc4OThhYjFlMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLmgKQEAgLTAsMCArMSwy
MDc3IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291
cmNlZm9yZ2UubmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNs
dWRlICJqc29uL2pzb24uaCIKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNv
bnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKgorVGhlIEpzb25D
cHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55aW5nIGRvY3VtZW50
YXRpb24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGljYXRpb25zLCBhcmUgbGljZW5z
ZWQgdW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgorCitUaGUgYXV0aG9yIChCYXB0
aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNvcHlyaWdodCBpbiBhbGwgCitq
dXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1lci4gSW4gc3VjaCBq
dXJpc2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50byB0aGUgUHVibGlj
IERvbWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVjb2duaXplIFB1Ymxp
YyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgorMjAxMCksIHRoaXMgc29mdHdh
cmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVwaWxsZXVyLCBhbmQg
aXMKK3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxv
dykuCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIFB1YmxpYyBEb21haW4gcHJv
cGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkgY2hvb3NlIHRvIGFjY2VwdCBp
dCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIgdGhlIAorY29uZGl0aW9ucyBv
ZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiBk
dWFsIAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRpb25zIGRlc2NyaWJlZCBoZXJl
LCBhcyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlzIGFib3V0IGFzIGNsb3NlIHRv
IFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFuZCBpcworZGVzY3JpYmVkIGlu
IGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93
aWtpL01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2YgdGhlIE1JVCBMaWNlbnNlIGZv
bGxvd3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVh
bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCittb2RpZnksIG1lcmdlLCBwdWJs
aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKK29mIHRoZSBT
b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor
CitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcg
QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklOR0VNRU5ULiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworQkUgTElBQkxF
IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
CitBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U
SEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyhFTkQgTElD
RU5TRSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggdGhl
IEdQTCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGluZyBvbmUgYWxsIG9mIHRoZSBy
aWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3IgbnVpc2FuY2Ugb2YgYmVpbmcg
cmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZQorYW5kIGxpY2Vuc2Ug
dGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0IGJ5IGFjY2VwdGluZyB0aGUK
K1B1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGljZW5zZSB5b3VyIGNvcHkgdXNp
bmcgd2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
CisKKworCisjaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVERUQKKyMgZGVmaW5lIEpTT05f
QU1BTEdBVEVEX0hfSU5DTFVERUQKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUg
c291cmNlIGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBp
bmNsdXNpb24uCisjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92ZXJzaW9u
LmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gRE8gTk9UIEVESVQuIFRoaXMgZmlsZSAoYW5kICJ2
ZXJzaW9uIikgaXMgZ2VuZXJhdGVkIGJ5IENNYWtlLgorLy8gUnVuIENNYWtlIGNvbmZpZ3VyZSBz
dGVwIHRvIHVwZGF0ZSBpdC4KKyNpZm5kZWYgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKyMgZGVm
aW5lIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisKKyMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9T
VFJJTkcgIjEuNi41IgorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX01BSk9SIDEKKyMgZGVmaW5l
IEpTT05DUFBfVkVSU0lPTl9NSU5PUiA2CisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fUEFUQ0gg
NQorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1FVQUxJRklFUgorIyBkZWZpbmUgSlNPTkNQUF9W
RVJTSU9OX0hFWEEgKChKU09OQ1BQX1ZFUlNJT05fTUFKT1IgPDwgMjQpIHwgKEpTT05DUFBfVkVS
U0lPTl9NSU5PUiA8PCAxNikgfCAoSlNPTkNQUF9WRVJTSU9OX1BBVENIIDw8IDgpKQorCisjZW5k
aWYgLy8gSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5k
IG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZlcnNpb24uaAorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRl
bnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8v
IENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVj
b2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRl
dGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisK
KyNpZm5kZWYgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0NPTkZJR19IX0lO
Q0xVREVECisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIGxpYnJhcnkgaXMg
ZW1iZWRkZWQgaW4gQ3BwVEwgbGlicmFyeS4KKy8vIyBkZWZpbmUgSlNPTl9JTl9DUFBUTCAxCisK
Ky8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBqc29uIG1heSBsZXZlcmFnZSBDcHBUTCBs
aWJyYXJ5CisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTCAxCisvLy8gSWYgZGVmaW5lZCwgaW5k
aWNhdGVzIHRoYXQgY3BwdGwgdmVjdG9yIGJhc2VkIG1hcCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFk
IG9mCisvLy8gc3RkOjptYXAKKy8vLyBhcyBWYWx1ZSBjb250YWluZXIuCisvLyMgIGRlZmluZSBK
U09OX1VTRV9DUFBUTF9TTUFMTE1BUCAxCisKKy8vIElmIG5vbi16ZXJvLCB0aGUgbGlicmFyeSB1
c2VzIGV4Y2VwdGlvbnMgdG8gcmVwb3J0IGJhZCBpbnB1dCBpbnN0ZWFkIG9mIEMKKy8vIGFzc2Vy
dGlvbiBtYWNyb3MuIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSBleGNlcHRpb25zLgorI2lmbmRlZiBK
U09OX1VTRV9FWENFUFRJT04KKyNkZWZpbmUgSlNPTl9VU0VfRVhDRVBUSU9OIDEKKyNlbmRpZgor
CisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxn
YXRlZAorLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorLy8vIFJlbWFy
a3M6IGl0IGlzIGF1dG9tYXRpY2FsbHkgZGVmaW5lZCBpbiB0aGUgZ2VuZXJhdGVkIGFtYWxnYXRl
ZCBoZWFkZXIuCisvLyAjZGVmaW5lIEpTT05fSVNfQU1BTEdBTUFUSU9OCisKKyNpZmRlZiBKU09O
X0lOX0NQUFRMCisjaW5jbHVkZSA8Y3BwdGwvY29uZmlnLmg+CisjaWZuZGVmIEpTT05fVVNFX0NQ
UFRMCisjZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBK
U09OX0lOX0NQUFRMCisjZGVmaW5lIEpTT05fQVBJIENQUFRMX0FQSQorI2VsaWYgZGVmaW5lZChK
U09OX0RMTF9CVUlMRCkKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2RlZmluZSBKU09OX0FQSSBf
X2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNkZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZB
Q0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCisjZWxpZiBkZWZpbmVk
KEpTT05fRExMKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEpTT05fQVBJIF9fZGVj
bHNwZWMoZGxsaW1wb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNlbmRpZiAvLyBpZmRlZiBK
U09OX0lOX0NQUFRMCisjaWYgIWRlZmluZWQoSlNPTl9BUEkpCisjZGVmaW5lIEpTT05fQVBJCisj
ZW5kaWYKKworLy8gSWYgSlNPTl9OT19JTlQ2NCBpcyBkZWZpbmVkLCB0aGVuIEpzb24gb25seSBz
dXBwb3J0IEMrKyAiaW50IiB0eXBlIGZvcgorLy8gaW50ZWdlcgorLy8gU3RvcmFnZXMsIGFuZCA2
NCBiaXRzIGludGVnZXIgc3VwcG9ydCBpcyBkaXNhYmxlZC4KKy8vICNkZWZpbmUgSlNPTl9OT19J
TlQ2NCAxCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNU1ZDCisjICBpZiBfTVNDX1ZFUiA8
PSAxMjAwIC8vIE1TVkMgNgorICAgIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYgb25seSBz
dXBwb3J0IGNvbnZlcnNpb24gZnJvbSBfX2ludDY0IHRvIGRvdWJsZQorICAgIC8vIChubyBjb252
ZXJzaW9uIGZyb20gdW5zaWduZWQgX19pbnQ2NCkuCisjICAgIGRlZmluZSBKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTiAxCisgICAgLy8gRGlzYWJsZSB3YXJuaW5nIDQ3ODYgZm9yIFZT
NiBjYXVzZWQgYnkgU1RMIChpZGVudGlmaWVyIHdhcyB0cnVuY2F0ZWQgdG8gJzI1NScKKyAgICAv
LyBjaGFyYWN0ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbikKKyAgICAvLyBBbGwgcHJvamVj
dHMgSSd2ZSBldmVyIHNlZW4gd2l0aCBWUzYgd2VyZSB1c2luZyB0aGlzIGdsb2JhbGx5IChub3Qg
Ym90aGVyaW5nCisgICAgLy8gd2l0aCBwcmFnbWEgcHVzaC9wb3ApLgorIyAgICBwcmFnbWEgd2Fy
bmluZyhkaXNhYmxlIDogNDc4NikKKyMgIGVuZGlmIC8vIE1TVkMgNgorCisjICBpZiBfTVNDX1ZF
UiA+PSAxNTAwIC8vIE1TVkMgMjAwOAorICAgIC8vLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZm9sbG93
aW5nIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FU
RUQobWVzc2FnZSkgX19kZWNsc3BlYyhkZXByZWNhdGVkKG1lc3NhZ2UpKQorIyAgZW5kaWYKKwor
I2VuZGlmIC8vIGRlZmluZWQoX01TQ19WRVIpCisKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVf
UkVGRVJFTkNFUworCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTYwMCAv
LyBNU1ZDID49IDIwMTAKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMQorI2Vu
ZGlmIC8vIE1TVkMgPj0gMjAxMAorCisjaWZkZWYgX19jbGFuZ19fCisjaWYgX19oYXNfZmVhdHVy
ZShjeHhfcnZhbHVlX3JlZmVyZW5jZXMpCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVO
Q0VTIDEKKyNlbmRpZiAgLy8gaGFzX2ZlYXR1cmUKKworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAv
LyBub3QgY2xhbmcgKGdjYyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisj
aWYgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykgfHwgKF9fY3BsdXNwbHVzID49
IDIwMTEwM0wpCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAg
Ly8gR1hYX0VYUEVSSU1FTlRBTAorCisjZW5kaWYgLy8gX19jbGFuZ19fIHx8IF9fR05VQ19fCisK
KyNlbmRpZiAvLyBub3QgZGVmaW5lZCBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworCisjaWZu
ZGVmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9S
RUZFUkVOQ0VTIDAKKyNlbmRpZgorCisjaWZkZWYgX19jbGFuZ19fCisjZWxpZiBkZWZpbmVkIF9f
R05VQ19fIC8vIG5vdCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVtdWxhdGVz
IGdjYykKKyMgIGlmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01J
Tk9SX18gPj0gNSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgIF9f
YXR0cmlidXRlX18gKChkZXByZWNhdGVkKG1lc3NhZ2UpKSkKKyMgIGVsaWYgKF9fR05VQ19fID4g
MyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSkKKyMgICAgZGVmaW5l
IEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVk
X18pKQorIyAgZW5kaWYgIC8vIEdOVUMgdmVyc2lvbgorI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBf
X0dOVUNfXworCisjaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorI2RlZmluZSBKU09O
Q1BQX0RFUFJFQ0FURUQobWVzc2FnZSkKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OQ1BQX0RF
UFJFQ0FURUQpCisKK25hbWVzcGFjZSBKc29uIHsKK3R5cGVkZWYgaW50IEludDsKK3R5cGVkZWYg
dW5zaWduZWQgaW50IFVJbnQ7CisjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQordHlwZWRlZiBp
bnQgTGFyZ2VzdEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IExhcmdlc3RVSW50OworI3VuZGVm
IEpTT05fSEFTX0lOVDY0CisjZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChKU09O
X05PX0lOVDY0KQorLy8gRm9yIE1pY3Jvc29mdCBWaXN1YWwgdXNlIHNwZWNpZmljIHR5cGVzIGFz
IGxvbmcgbG9uZyBpcyBub3Qgc3VwcG9ydGVkCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTWlj
cm9zb2Z0IFZpc3VhbCBTdHVkaW8KK3R5cGVkZWYgX19pbnQ2NCBJbnQ2NDsKK3R5cGVkZWYgdW5z
aWduZWQgX19pbnQ2NCBVSW50NjQ7CisjZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5l
ZChfTVNDX1ZFUikgLy8gT3RoZXIgcGxhdGZvcm1zLCB1c2UgbG9uZyBsb25nCit0eXBlZGVmIGxv
bmcgbG9uZyBpbnQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgVUludDY0
OworI2VuZGlmIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpCit0eXBlZGVmIEludDY0IExhcmdlc3RJ
bnQ7Cit0eXBlZGVmIFVJbnQ2NCBMYXJnZXN0VUludDsKKyNkZWZpbmUgSlNPTl9IQVNfSU5UNjQK
KyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit9IC8vIGVuZCBuYW1lc3BhY2Ug
SnNvbgorCisjZW5kaWYgLy8gSlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmlu
ZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBE
aXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVk
IGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJ
Q0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5l
dC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisjZGVmaW5lIEpT
T05fRk9SV0FSRFNfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJ
T04pCisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8gd3JpdGVyLmgKK2NsYXNzIEZh
c3RXcml0ZXI7CitjbGFzcyBTdHlsZWRXcml0ZXI7CisKKy8vIHJlYWRlci5oCitjbGFzcyBSZWFk
ZXI7CisKKy8vIGZlYXR1cmVzLmgKK2NsYXNzIEZlYXR1cmVzOworCisvLyB2YWx1ZS5oCit0eXBl
ZGVmIHVuc2lnbmVkIGludCBBcnJheUluZGV4OworY2xhc3MgU3RhdGljU3RyaW5nOworY2xhc3Mg
UGF0aDsKK2NsYXNzIFBhdGhBcmd1bWVudDsKK2NsYXNzIFZhbHVlOworY2xhc3MgVmFsdWVJdGVy
YXRvckJhc2U7CitjbGFzcyBWYWx1ZUl0ZXJhdG9yOworY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9y
OworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBKU09OX0ZPUldBUkRTX0hfSU5D
TFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5j
bHVkZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNv
bi9mZWF0dXJlcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAg
QmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3Ig
cHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlz
ZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6
Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQVExfSlNPTl9G
RUFUVVJFU19IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURF
RAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiZm9yd2Fy
ZHMuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworbmFt
ZXNwYWNlIEpzb24geworCisvKiogXGJyaWVmIENvbmZpZ3VyYXRpb24gcGFzc2VkIHRvIHJlYWRl
ciBhbmQgd3JpdGVyLgorICogVGhpcyBjb25maWd1cmF0aW9uIG9iamVjdCBjYW4gYmUgdXNlZCB0
byBmb3JjZSB0aGUgUmVhZGVyIG9yIFdyaXRlcgorICogdG8gYmVoYXZlIGluIGEgc3RhbmRhcmQg
Y29uZm9ybWluZyB3YXkuCisgKi8KK2NsYXNzIEpTT05fQVBJIEZlYXR1cmVzIHsKK3B1YmxpYzoK
KyAgLyoqIFxicmllZiBBIGNvbmZpZ3VyYXRpb24gdGhhdCBhbGxvd3MgYWxsIGZlYXR1cmVzIGFu
ZCBhc3N1bWVzIGFsbCBzdHJpbmdzCisgICAqIGFyZSBVVEYtOC4KKyAgICogLSBDICYgQysrIGNv
bW1lbnRzIGFyZSBhbGxvd2VkCisgICAqIC0gUm9vdCBvYmplY3QgY2FuIGJlIGFueSBKU09OIHZh
bHVlCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdzIGFyZSBlbmNvZGVkIGluIFVURi04Cisg
ICAqLworICBzdGF0aWMgRmVhdHVyZXMgYWxsKCk7CisKKyAgLyoqIFxicmllZiBBIGNvbmZpZ3Vy
YXRpb24gdGhhdCBpcyBzdHJpY3RseSBjb21wYXRpYmxlIHdpdGggdGhlIEpTT04KKyAgICogc3Bl
Y2lmaWNhdGlvbi4KKyAgICogLSBDb21tZW50cyBhcmUgZm9yYmlkZGVuLgorICAgKiAtIFJvb3Qg
b2JqZWN0IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4KKyAgICog
LSBBc3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVuY29kZWQgaW4gVVRGLTgKKyAgICovCisgIHN0
YXRpYyBGZWF0dXJlcyBzdHJpY3RNb2RlKCk7CisKKyAgLyoqIFxicmllZiBJbml0aWFsaXplIHRo
ZSBjb25maWd1cmF0aW9uIGxpa2UgSnNvbkNvbmZpZzo6YWxsRmVhdHVyZXM7CisgICAqLworICBG
ZWF0dXJlcygpOworCisgIC8vLyBcYyB0cnVlIGlmIGNvbW1lbnRzIGFyZSBhbGxvd2VkLiBEZWZh
dWx0OiBcYyB0cnVlLgorICBib29sIGFsbG93Q29tbWVudHNfOworCisgIC8vLyBcYyB0cnVlIGlm
IHJvb3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLiBEZWZhdWx0
OiBcYworICAvLy8gZmFsc2UuCisgIGJvb2wgc3RyaWN0Um9vdF87CisKKyAgLy8vIFxjIHRydWUg
aWYgZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVycyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgZmFs
c2UuCisgIGJvb2wgYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc187CisKKyAgLy8vIFxjIHRy
dWUgaWYgbnVtZXJpYyBvYmplY3Qga2V5IGFyZSBhbGxvd2VkLiBEZWZhdWx0OiBcYyBmYWxzZS4K
KyAgYm9vbCBhbGxvd051bWVyaWNLZXlzXzsKK307CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKwor
I2VuZGlmIC8vIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5u
aW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3ZhbHVlLmgKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERp
c3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQg
YW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElD
RU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0
L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExf
SlNPTl9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNp
bmNsdWRlICJmb3J3YXJkcy5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8
ZXhjZXB0aW9uPgorCisjaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisjaW5jbHVkZSA8
bWFwPgorI2Vsc2UKKyNpbmNsdWRlIDxjcHB0bC9zbWFsbG1hcC5oPgorI2VuZGlmCisjaWZkZWYg
SlNPTl9VU0VfQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9mb3J3YXJkcy5oPgorI2VuZGlmCisKKy8v
IERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVtYmVyPjogPHR5cGU+IG5lZWRzIHRvIGhh
dmUgZGxsLWludGVyZmFjZSB0bworLy8gYmUgdXNlZCBieS4uLgorI2lmIGRlZmluZWQoSlNPTkNQ
UF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQor
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNP
TkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworLyoqIFxicmllZiBKU09OIChK
YXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbikuCisgKi8KK25hbWVzcGFjZSBKc29uIHsKKworLyoq
IEJhc2UgY2xhc3MgZm9yIGFsbCBleGNlcHRpb25zIHdlIHRocm93LgorICoKKyAqIFdlIHVzZSBu
b3RoaW5nIGJ1dCB0aGVzZSBpbnRlcm5hbGx5LiBPZiBjb3Vyc2UsIFNUTCBjYW4gdGhyb3cgb3Ro
ZXJzLgorICovCitjbGFzcyBKU09OX0FQSSBFeGNlcHRpb24gOiBwdWJsaWMgc3RkOjpleGNlcHRp
b24geworcHVibGljOgorICBFeGNlcHRpb24oc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7CisgIH5F
eGNlcHRpb24oKSB0aHJvdygpOworICBjaGFyIGNvbnN0KiB3aGF0KCkgY29uc3QgdGhyb3coKTsK
K3Byb3RlY3RlZDoKKyAgc3RkOjpzdHJpbmcgbXNnXzsKK307CisKKy8qKiBFeGNlcHRpb25zIHdo
aWNoIHRoZSB1c2VyIGNhbm5vdCBlYXNpbHkgYXZvaWQuCisgKgorICogRS5nLiBvdXQtb2YtbWVt
b3J5ICh3aGVuIHdlIHVzZSBtYWxsb2MpLCBzdGFjay1vdmVyZmxvdywgbWFsaWNpb3VzIGlucHV0
CisgKiAKKyAqIFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgorICovCitjbGFz
cyBKU09OX0FQSSBSdW50aW1lRXJyb3IgOiBwdWJsaWMgRXhjZXB0aW9uIHsKK3B1YmxpYzoKKyAg
UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworfTsKKworLyoqIEV4Y2VwdGlv
bnMgdGhyb3duIGJ5IEpTT05fQVNTRVJUL0pTT05fRkFJTCBtYWNyb3MuCisgKgorICogVGhlc2Ug
YXJlIHByZWNvbmRpdGlvbi12aW9sYXRpb25zICh1c2VyIGJ1Z3MpIGFuZCBpbnRlcm5hbCBlcnJv
cnMgKG91ciBidWdzKS4KKyAqIAorICogXHJlbWFyayBkZXJpdmVkIGZyb20gSnNvbjo6RXhjZXB0
aW9uCisgKi8KK2NsYXNzIEpTT05fQVBJIExvZ2ljRXJyb3IgOiBwdWJsaWMgRXhjZXB0aW9uIHsK
K3B1YmxpYzoKKyAgTG9naWNFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKTsKK307CisKKy8v
LyB1c2VkIGludGVybmFsbHkKK3ZvaWQgdGhyb3dSdW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29u
c3QmIG1zZyk7CisvLy8gdXNlZCBpbnRlcm5hbGx5Cit2b2lkIHRocm93TG9naWNFcnJvcihzdGQ6
OnN0cmluZyBjb25zdCYgbXNnKTsKKworLyoqIFxicmllZiBUeXBlIG9mIHRoZSB2YWx1ZSBoZWxk
IGJ5IGEgVmFsdWUgb2JqZWN0LgorICovCitlbnVtIFZhbHVlVHlwZSB7CisgIG51bGxWYWx1ZSA9
IDAsIC8vLzwgJ251bGwnIHZhbHVlCisgIGludFZhbHVlLCAgICAgIC8vLzwgc2lnbmVkIGludGVn
ZXIgdmFsdWUKKyAgdWludFZhbHVlLCAgICAgLy8vPCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlCisg
IHJlYWxWYWx1ZSwgICAgIC8vLzwgZG91YmxlIHZhbHVlCisgIHN0cmluZ1ZhbHVlLCAgIC8vLzwg
VVRGLTggc3RyaW5nIHZhbHVlCisgIGJvb2xlYW5WYWx1ZSwgIC8vLzwgYm9vbCB2YWx1ZQorICBh
cnJheVZhbHVlLCAgICAvLy88IGFycmF5IHZhbHVlIChvcmRlcmVkIGxpc3QpCisgIG9iamVjdFZh
bHVlICAgIC8vLzwgb2JqZWN0IHZhbHVlIChjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMp
LgorfTsKKworZW51bSBDb21tZW50UGxhY2VtZW50IHsKKyAgY29tbWVudEJlZm9yZSA9IDAsICAg
ICAgLy8vPCBhIGNvbW1lbnQgcGxhY2VkIG9uIHRoZSBsaW5lIGJlZm9yZSBhIHZhbHVlCisgIGNv
bW1lbnRBZnRlck9uU2FtZUxpbmUsIC8vLzwgYSBjb21tZW50IGp1c3QgYWZ0ZXIgYSB2YWx1ZSBv
biB0aGUgc2FtZSBsaW5lCisgIGNvbW1lbnRBZnRlciwgLy8vPCBhIGNvbW1lbnQgb24gdGhlIGxp
bmUgYWZ0ZXIgYSB2YWx1ZSAob25seSBtYWtlIHNlbnNlIGZvcgorICAvLy8gcm9vdCB2YWx1ZSkK
KyAgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50Cit9OworCisvLyMgaWZkZWYgSlNPTl9VU0VfQ1BQ
VEwKKy8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBjaGFyICo+IEVudW1N
ZW1iZXJOYW1lczsKKy8vICAgdHlwZWRlZiBDcHBUTDo6QW55RW51bWVyYXRvcjxjb25zdCBWYWx1
ZSAmPiBFbnVtVmFsdWVzOworLy8jIGVuZGlmCisKKy8qKiBcYnJpZWYgTGlnaHR3ZWlnaHQgd3Jh
cHBlciB0byB0YWcgc3RhdGljIHN0cmluZy4KKyAqCisgKiBWYWx1ZSBjb25zdHJ1Y3RvciBhbmQg
b2JqZWN0VmFsdWUgbWVtYmVyIGFzc2lnbmVtZW50IHRha2VzIGFkdmFudGFnZSBvZiB0aGUKKyAq
IFN0YXRpY1N0cmluZyBhbmQgYXZvaWQgdGhlIGNvc3Qgb2Ygc3RyaW5nIGR1cGxpY2F0aW9uIHdo
ZW4gc3RvcmluZyB0aGUKKyAqIHN0cmluZyBvciB0aGUgbWVtYmVyIG5hbWUuCisgKgorICogRXhh
bXBsZSBvZiB1c2FnZToKKyAqIFxjb2RlCisgKiBKc29uOjpWYWx1ZSBhVmFsdWUoIFN0YXRpY1N0
cmluZygic29tZSB0ZXh0IikgKTsKKyAqIEpzb246OlZhbHVlIG9iamVjdDsKKyAqIHN0YXRpYyBj
b25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOworICogb2JqZWN0W2NvZGVdID0gMTIzNDsK
KyAqIFxlbmRjb2RlCisgKi8KK2NsYXNzIEpTT05fQVBJIFN0YXRpY1N0cmluZyB7CitwdWJsaWM6
CisgIGV4cGxpY2l0IFN0YXRpY1N0cmluZyhjb25zdCBjaGFyKiBjenN0cmluZykgOiBjX3N0cl8o
Y3pzdHJpbmcpIHt9CisKKyAgb3BlcmF0b3IgY29uc3QgY2hhciooKSBjb25zdCB7IHJldHVybiBj
X3N0cl87IH0KKworICBjb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0IHsgcmV0dXJuIGNfc3RyXzsg
fQorCitwcml2YXRlOgorICBjb25zdCBjaGFyKiBjX3N0cl87Cit9OworCisvKiogXGJyaWVmIFJl
cHJlc2VudHMgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiB2YWx1ZS4K
KyAqCisgKiBUaGlzIGNsYXNzIGlzIGEgZGlzY3JpbWluYXRlZCB1bmlvbiB3cmFwcGVyIHRoYXQg
Y2FuIHJlcHJlc2VudHMgYToKKyAqIC0gc2lnbmVkIGludGVnZXIgW3JhbmdlOiBWYWx1ZTo6bWlu
SW50IC0gVmFsdWU6Om1heEludF0KKyAqIC0gdW5zaWduZWQgaW50ZWdlciAocmFuZ2U6IDAgLSBW
YWx1ZTo6bWF4VUludCkKKyAqIC0gZG91YmxlCisgKiAtIFVURi04IHN0cmluZworICogLSBib29s
ZWFuCisgKiAtICdudWxsJworICogLSBhbiBvcmRlcmVkIGxpc3Qgb2YgVmFsdWUKKyAqIC0gY29s
bGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzIChqYXZhc2NyaXB0IG9iamVjdCkKKyAqCisgKiBU
aGUgdHlwZSBvZiB0aGUgaGVsZCB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBhICNWYWx1ZVR5cGUg
YW5kCisgKiBjYW4gYmUgb2J0YWluZWQgdXNpbmcgdHlwZSgpLgorICoKKyAqIFZhbHVlcyBvZiBh
biAjb2JqZWN0VmFsdWUgb3IgI2FycmF5VmFsdWUgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIG9wZXJh
dG9yW10oKQorICogbWV0aG9kcy4KKyAqIE5vbi1jb25zdCBtZXRob2RzIHdpbGwgYXV0b21hdGlj
YWxseSBjcmVhdGUgdGhlIGEgI251bGxWYWx1ZSBlbGVtZW50CisgKiBpZiBpdCBkb2VzIG5vdCBl
eGlzdC4KKyAqIFRoZSBzZXF1ZW5jZSBvZiBhbiAjYXJyYXlWYWx1ZSB3aWxsIGJlIGF1dG9tYXRp
Y2FsbHkgcmVzaXplZCBhbmQgaW5pdGlhbGl6ZWQKKyAqIHdpdGggI251bGxWYWx1ZS4gcmVzaXpl
KCkgY2FuIGJlIHVzZWQgdG8gZW5sYXJnZSBvciB0cnVuY2F0ZSBhbiAjYXJyYXlWYWx1ZS4KKyAq
CisgKiBUaGUgZ2V0KCkgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBvYnRhaW4gZGVmYXVsdCB2YWx1
ZSBpbiB0aGUgY2FzZSB0aGUKKyAqIHJlcXVpcmVkIGVsZW1lbnQgZG9lcyBub3QgZXhpc3QuCisg
KgorICogSXQgaXMgcG9zc2libGUgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIGEgI29iamVj
dFZhbHVlIHZhbHVlcyB1c2luZworICogdGhlIGdldE1lbWJlck5hbWVzKCkgbWV0aG9kLgorICoK
KyAqIFxub3RlICNWYWx1ZSBzdHJpbmctbGVuZ3RoIGZpdCBpbiBzaXplX3QsIGJ1dCBrZXlzIG11
c3QgYmUgPCAyXjMwLgorICogKFRoZSByZWFzb24gaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWls
LikgQSAjQ2hhclJlYWRlciB3aWxsIHJhaXNlIGFuCisgKiBleGNlcHRpb24gaWYgYSBib3VuZCBp
cyBleGNlZWRlZCB0byBhdm9pZCBzZWN1cml0eSBob2xlcyBpbiB5b3VyIGFwcCwKKyAqIGJ1dCB0
aGUgVmFsdWUgQVBJIGRvZXMgKm5vdCogY2hlY2sgYm91bmRzLiBUaGF0IGlzIHRoZSByZXNwb25z
aWJpbGl0eQorICogb2YgdGhlIGNhbGxlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWUgewor
ICBmcmllbmQgY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitwdWJsaWM6CisgIHR5cGVkZWYgc3Rk
Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+IE1lbWJlcnM7CisgIHR5cGVkZWYgVmFsdWVJdGVyYXRvciBp
dGVyYXRvcjsKKyAgdHlwZWRlZiBWYWx1ZUNvbnN0SXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Cisg
IHR5cGVkZWYgSnNvbjo6VUludCBVSW50OworICB0eXBlZGVmIEpzb246OkludCBJbnQ7CisjaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgdHlwZWRlZiBKc29uOjpVSW50NjQgVUludDY0Owor
ICB0eXBlZGVmIEpzb246OkludDY0IEludDY0OworI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCisgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdEludCBMYXJnZXN0SW50OworICB0eXBlZGVm
IEpzb246Okxhcmdlc3RVSW50IExhcmdlc3RVSW50OworICB0eXBlZGVmIEpzb246OkFycmF5SW5k
ZXggQXJyYXlJbmRleDsKKworICBzdGF0aWMgY29uc3QgVmFsdWUmIG51bGw7ICAvLy88IFdlIHJl
Z3JldCB0aGlzIHJlZmVyZW5jZSB0byBhIGdsb2JhbCBpbnN0YW5jZTsgcHJlZmVyIHRoZSBzaW1w
bGVyIFZhbHVlKCkuCisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVsbFJlZjsgIC8vLzwganVzdCBh
IGtsdWRnZSBmb3IgYmluYXJ5LWNvbXBhdGliaWxpdHk7IHNhbWUgYXMgbnVsbAorICAvLy8gTWlu
aW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpW
YWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWluTGFyZ2VzdEludDsKKyAgLy8vIE1h
eGltdW0gc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6
VmFsdWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0SW50IG1heExhcmdlc3RJbnQ7CisgIC8vLyBN
YXhpbXVtIHVuc2lnbmVkIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNv
bjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBMYXJnZXN0VUludCBtYXhMYXJnZXN0VUludDsKKwor
ICAvLy8gTWluaW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpz
b246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50IG1pbkludDsKKyAgLy8vIE1heGltdW0gc2ln
bmVkIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3Rh
dGljIGNvbnN0IEludCBtYXhJbnQ7CisgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIGludCB2YWx1ZSB0
aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IFVJbnQg
bWF4VUludDsKKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIC8vLyBNaW5pbXVtIHNp
Z25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1
ZS4KKyAgc3RhdGljIGNvbnN0IEludDY0IG1pbkludDY0OworICAvLy8gTWF4aW11bSBzaWduZWQg
NjQgYml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisg
IHN0YXRpYyBjb25zdCBJbnQ2NCBtYXhJbnQ2NDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQgNjQg
Yml0cyBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0
YXRpYyBjb25zdCBVSW50NjQgbWF4VUludDY0OworI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNf
SU5UNjQpCisKK3ByaXZhdGU6CisjaWZuZGVmIEpTT05DUFBfRE9DX0VYQ0xVREVfSU1QTEVNRU5U
QVRJT04KKyAgY2xhc3MgQ1pTdHJpbmcgeworICBwdWJsaWM6CisgICAgZW51bSBEdXBsaWNhdGlv
blBvbGljeSB7CisgICAgICBub0R1cGxpY2F0aW9uID0gMCwKKyAgICAgIGR1cGxpY2F0ZSwKKyAg
ICAgIGR1cGxpY2F0ZU9uQ29weQorICAgIH07CisgICAgQ1pTdHJpbmcoQXJyYXlJbmRleCBpbmRl
eCk7CisgICAgQ1pTdHJpbmcoY2hhciBjb25zdCogc3RyLCB1bnNpZ25lZCBsZW5ndGgsIER1cGxp
Y2F0aW9uUG9saWN5IGFsbG9jYXRlKTsKKyAgICBDWlN0cmluZyhDWlN0cmluZyBjb25zdCYgb3Ro
ZXIpOworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgQ1pTdHJpbmcoQ1pTdHJp
bmcmJiBvdGhlcik7CisjZW5kaWYKKyAgICB+Q1pTdHJpbmcoKTsKKyAgICBDWlN0cmluZyYgb3Bl
cmF0b3I9KENaU3RyaW5nIG90aGVyKTsKKyAgICBib29sIG9wZXJhdG9yPChDWlN0cmluZyBjb25z
dCYgb3RoZXIpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3I9PShDWlN0cmluZyBjb25zdCYgb3Ro
ZXIpIGNvbnN0OworICAgIEFycmF5SW5kZXggaW5kZXgoKSBjb25zdDsKKyAgICAvL2NvbnN0IGNo
YXIqIGNfc3RyKCkgY29uc3Q7IC8vLzwgXGRlcHJlY2F0ZWQKKyAgICBjaGFyIGNvbnN0KiBkYXRh
KCkgY29uc3Q7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgYm9vbCBpc1N0YXRp
Y1N0cmluZygpIGNvbnN0OworCisgIHByaXZhdGU6CisgICAgdm9pZCBzd2FwKENaU3RyaW5nJiBv
dGhlcik7CisKKyAgICBzdHJ1Y3QgU3RyaW5nU3RvcmFnZSB7CisgICAgICB1bnNpZ25lZCBwb2xp
Y3lfOiAyOworICAgICAgdW5zaWduZWQgbGVuZ3RoXzogMzA7IC8vIDFHQiBtYXgKKyAgICB9Owor
CisgICAgY2hhciBjb25zdCogY3N0cl87ICAvLyBhY3R1YWxseSwgYSBwcmVmaXhlZCBzdHJpbmcs
IHVubGVzcyBwb2xpY3kgaXMgbm9EdXAKKyAgICB1bmlvbiB7CisgICAgICBBcnJheUluZGV4IGlu
ZGV4XzsKKyAgICAgIFN0cmluZ1N0b3JhZ2Ugc3RvcmFnZV87CisgICAgfTsKKyAgfTsKKworcHVi
bGljOgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICB0eXBlZGVmIHN0ZDo6bWFw
PENaU3RyaW5nLCBWYWx1ZT4gT2JqZWN0VmFsdWVzOworI2Vsc2UKKyAgdHlwZWRlZiBDcHBUTDo6
U21hbGxNYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7CisjZW5kaWYgLy8gaWZuZGVm
IEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisjZW5kaWYgLy8gaWZuZGVmIEpTT05DUFBfRE9DX0VY
Q0xVREVfSU1QTEVNRU5UQVRJT04KKworcHVibGljOgorICAvKiogXGJyaWVmIENyZWF0ZSBhIGRl
ZmF1bHQgVmFsdWUgb2YgdGhlIGdpdmVuIHR5cGUuCisKKyAgICBUaGlzIGlzIGEgdmVyeSB1c2Vm
dWwgY29uc3RydWN0b3IuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5IGFycmF5LCBwYXNzIGFycmF5
VmFsdWUuCisgICAgVG8gY3JlYXRlIGFuIGVtcHR5IG9iamVjdCwgcGFzcyBvYmplY3RWYWx1ZS4K
KyAgICBBbm90aGVyIFZhbHVlIGNhbiB0aGVuIGJlIHNldCB0byB0aGlzIG9uZSBieSBhc3NpZ25t
ZW50LgorVGhpcyBpcyB1c2VmdWwgc2luY2UgY2xlYXIoKSBhbmQgcmVzaXplKCkgd2lsbCBub3Qg
YWx0ZXIgdHlwZXMuCisKKyAgICBFeGFtcGxlczoKK1xjb2RlCitKc29uOjpWYWx1ZSBudWxsX3Zh
bHVlOyAvLyBudWxsCitKc29uOjpWYWx1ZSBhcnJfdmFsdWUoSnNvbjo6YXJyYXlWYWx1ZSk7IC8v
IFtdCitKc29uOjpWYWx1ZSBvYmpfdmFsdWUoSnNvbjo6b2JqZWN0VmFsdWUpOyAvLyB7fQorXGVu
ZGNvZGUKKyAgKi8KKyAgVmFsdWUoVmFsdWVUeXBlIHR5cGUgPSBudWxsVmFsdWUpOworICBWYWx1
ZShJbnQgdmFsdWUpOworICBWYWx1ZShVSW50IHZhbHVlKTsKKyNpZiBkZWZpbmVkKEpTT05fSEFT
X0lOVDY0KQorICBWYWx1ZShJbnQ2NCB2YWx1ZSk7CisgIFZhbHVlKFVJbnQ2NCB2YWx1ZSk7Cisj
ZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgVmFsdWUoZG91YmxlIHZhbHVl
KTsKKyAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUpOyAvLy88IENvcHkgdGlsIGZpcnN0IDAuIChO
VUxMIGNhdXNlcyB0byBzZWctZmF1bHQuKQorICBWYWx1ZShjb25zdCBjaGFyKiBiZWdpbiwgY29u
c3QgY2hhciogZW5kKTsgLy8vPCBDb3B5IGFsbCwgaW5jbCB6ZXJvZXMuCisgIC8qKiBcYnJpZWYg
Q29uc3RydWN0cyBhIHZhbHVlIGZyb20gYSBzdGF0aWMgc3RyaW5nLgorCisgICAqIExpa2Ugb3Ro
ZXIgdmFsdWUgc3RyaW5nIGNvbnN0cnVjdG9yIGJ1dCBkbyBub3QgZHVwbGljYXRlIHRoZSBzdHJp
bmcgZm9yCisgICAqIGludGVybmFsIHN0b3JhZ2UuIFRoZSBnaXZlbiBzdHJpbmcgbXVzdCByZW1h
aW4gYWxpdmUgYWZ0ZXIgdGhlIGNhbGwgdG8gdGhpcworICAgKiBjb25zdHJ1Y3Rvci4KKyAgICog
XG5vdGUgVGhpcyB3b3JrcyBvbmx5IGZvciBudWxsLXRlcm1pbmF0ZWQgc3RyaW5ncy4gKFdlIGNh
bm5vdCBjaGFuZ2UgdGhlCisgICAqICAgc2l6ZSBvZiB0aGlzIGNsYXNzLCBzbyB3ZSBoYXZlIG5v
d2hlcmUgdG8gc3RvcmUgdGhlIGxlbmd0aCwKKyAgICogICB3aGljaCBtaWdodCBiZSBjb21wdXRl
ZCBsYXRlciBmb3IgdmFyaW91cyBvcGVyYXRpb25zLikKKyAgICoKKyAgICogRXhhbXBsZSBvZiB1
c2FnZToKKyAgICogXGNvZGUKKyAgICogc3RhdGljIFN0YXRpY1N0cmluZyBmb28oInNvbWUgdGV4
dCIpOworICAgKiBKc29uOjpWYWx1ZSBhVmFsdWUoZm9vKTsKKyAgICogXGVuZGNvZGUKKyAgICov
CisgIFZhbHVlKGNvbnN0IFN0YXRpY1N0cmluZyYgdmFsdWUpOworICBWYWx1ZShjb25zdCBzdGQ6
OnN0cmluZyYgdmFsdWUpOyAvLy88IENvcHkgZGF0YSgpIHRpbCBzaXplKCkuIEVtYmVkZGVkIHpl
cm9lcyB0b28uCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgVmFsdWUoY29uc3QgQ3BwVEw6OkNv
bnN0U3RyaW5nJiB2YWx1ZSk7CisjZW5kaWYKKyAgVmFsdWUoYm9vbCB2YWx1ZSk7CisgIC8vLyBE
ZWVwIGNvcHkuCisgIFZhbHVlKGNvbnN0IFZhbHVlJiBvdGhlcik7CisjaWYgSlNPTl9IQVNfUlZB
TFVFX1JFRkVSRU5DRVMKKyAgLy8vIE1vdmUgY29uc3RydWN0b3IKKyAgVmFsdWUoVmFsdWUmJiBv
dGhlcik7CisjZW5kaWYKKyAgflZhbHVlKCk7CisKKyAgLy8vIERlZXAgY29weSwgdGhlbiBzd2Fw
KG90aGVyKS4KKyAgLy8vIFxub3RlIE92ZXItd3JpdGUgZXhpc3RpbmcgY29tbWVudHMuIFRvIHBy
ZXNlcnZlIGNvbW1lbnRzLCB1c2UgI3N3YXBQYXlsb2FkKCkuCisgIFZhbHVlJiBvcGVyYXRvcj0o
VmFsdWUgb3RoZXIpOworICAvLy8gU3dhcCBldmVyeXRoaW5nLgorICB2b2lkIHN3YXAoVmFsdWUm
IG90aGVyKTsKKyAgLy8vIFN3YXAgdmFsdWVzIGJ1dCBsZWF2ZSBjb21tZW50cyBhbmQgc291cmNl
IG9mZnNldHMgaW4gcGxhY2UuCisgIHZvaWQgc3dhcFBheWxvYWQoVmFsdWUmIG90aGVyKTsKKwor
ICBWYWx1ZVR5cGUgdHlwZSgpIGNvbnN0OworCisgIC8vLyBDb21wYXJlIHBheWxvYWQgb25seSwg
bm90IGNvbW1lbnRzIGV0Yy4KKyAgYm9vbCBvcGVyYXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBj
b25zdDsKKyAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJv
b2wgb3BlcmF0b3I+PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9y
Pihjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPT0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZhbHVlJiBvdGhlcikg
Y29uc3Q7CisgIGludCBjb21wYXJlKGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisKKyAgY29u
c3QgY2hhciogYXNDU3RyaW5nKCkgY29uc3Q7IC8vLzwgRW1iZWRkZWQgemVyb2VzIGNvdWxkIGNh
dXNlIHlvdSB0cm91YmxlIQorICBzdGQ6OnN0cmluZyBhc1N0cmluZygpIGNvbnN0OyAvLy88IEVt
YmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIC8qKiBHZXQgcmF3IGNoYXIqIG9mIHN0cmlu
Zy12YWx1ZS4KKyAgICogIFxyZXR1cm4gZmFsc2UgaWYgIXN0cmluZy4gKFNlZy1mYXVsdCBpZiBz
dHIgb3IgZW5kIGFyZSBOVUxMLikKKyAgICovCisgIGJvb2wgZ2V0U3RyaW5nKAorICAgICAgY2hh
ciBjb25zdCoqIGJlZ2luLCBjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKKyNpZmRlZiBKU09OX1VT
RV9DUFBUTAorICBDcHBUTDo6Q29uc3RTdHJpbmcgYXNDb25zdFN0cmluZygpIGNvbnN0OworI2Vu
ZGlmCisgIEludCBhc0ludCgpIGNvbnN0OworICBVSW50IGFzVUludCgpIGNvbnN0OworI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIEludDY0IGFzSW50NjQoKSBjb25zdDsKKyAgVUludDY0
IGFzVUludDY0KCkgY29uc3Q7CisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkK
KyAgTGFyZ2VzdEludCBhc0xhcmdlc3RJbnQoKSBjb25zdDsKKyAgTGFyZ2VzdFVJbnQgYXNMYXJn
ZXN0VUludCgpIGNvbnN0OworICBmbG9hdCBhc0Zsb2F0KCkgY29uc3Q7CisgIGRvdWJsZSBhc0Rv
dWJsZSgpIGNvbnN0OworICBib29sIGFzQm9vbCgpIGNvbnN0OworCisgIGJvb2wgaXNOdWxsKCkg
Y29uc3Q7CisgIGJvb2wgaXNCb29sKCkgY29uc3Q7CisgIGJvb2wgaXNJbnQoKSBjb25zdDsKKyAg
Ym9vbCBpc0ludDY0KCkgY29uc3Q7CisgIGJvb2wgaXNVSW50KCkgY29uc3Q7CisgIGJvb2wgaXNV
SW50NjQoKSBjb25zdDsKKyAgYm9vbCBpc0ludGVncmFsKCkgY29uc3Q7CisgIGJvb2wgaXNEb3Vi
bGUoKSBjb25zdDsKKyAgYm9vbCBpc051bWVyaWMoKSBjb25zdDsKKyAgYm9vbCBpc1N0cmluZygp
IGNvbnN0OworICBib29sIGlzQXJyYXkoKSBjb25zdDsKKyAgYm9vbCBpc09iamVjdCgpIGNvbnN0
OworCisgIGJvb2wgaXNDb252ZXJ0aWJsZVRvKFZhbHVlVHlwZSBvdGhlcikgY29uc3Q7CisKKyAg
Ly8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJyYXkgb3Igb2JqZWN0CisgIEFycmF5SW5kZXggc2l6
ZSgpIGNvbnN0OworCisgIC8vLyBcYnJpZWYgUmV0dXJuIHRydWUgaWYgZW1wdHkgYXJyYXksIGVt
cHR5IG9iamVjdCwgb3IgbnVsbDsKKyAgLy8vIG90aGVyd2lzZSwgZmFsc2UuCisgIGJvb2wgZW1w
dHkoKSBjb25zdDsKKworICAvLy8gUmV0dXJuIGlzTnVsbCgpCisgIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3Q7CisKKyAgLy8vIFJlbW92ZSBhbGwgb2JqZWN0IG1lbWJlcnMgYW5kIGFycmF5IGVsZW1l
bnRzLgorICAvLy8gXHByZSB0eXBlKCkgaXMgYXJyYXlWYWx1ZSwgb2JqZWN0VmFsdWUsIG9yIG51
bGxWYWx1ZQorICAvLy8gXHBvc3QgdHlwZSgpIGlzIHVuY2hhbmdlZAorICB2b2lkIGNsZWFyKCk7
CisKKyAgLy8vIFJlc2l6ZSB0aGUgYXJyYXkgdG8gc2l6ZSBlbGVtZW50cy4KKyAgLy8vIE5ldyBl
bGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQgdG8gbnVsbC4KKyAgLy8vIE1heSBvbmx5IGJlIGNhbGxl
ZCBvbiBudWxsVmFsdWUgb3IgYXJyYXlWYWx1ZS4KKyAgLy8vIFxwcmUgdHlwZSgpIGlzIGFycmF5
VmFsdWUgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgYXJyYXlWYWx1ZQorICB2
b2lkIHJlc2l6ZShBcnJheUluZGV4IHNpemUpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxl
bWVudCAoemVybyBiYXNlZCBpbmRleCApLgorICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxl
c3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCisgIC8vLyBpbnNlcnRl
ZAorICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KKyAgLy8v
IChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRv
IGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2Vz
IGEgc3RyaW5nLikKKyAgVmFsdWUmIG9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCk7CisKKyAg
Ly8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCisgIC8vLyBJ
ZiB0aGUgYXJyYXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2
YWx1ZSBhcmUKKyAgLy8vIGluc2VydGVkCisgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMg
c2l6ZSBpcyBpbmRleCsxLgorICAvLy8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScg
dG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhl
IG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQorICBWYWx1ZSYgb3BlcmF0b3JbXShp
bnQgaW5kZXgpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVybyBiYXNlZCBp
bmRleCApCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0byBnZXQgeW91
ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0aGUgb3BlcmF0b3Jb
XSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKEFycmF5
SW5kZXggaW5kZXgpIGNvbnN0OworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxlbWVudCAoemVy
byBiYXNlZCBpbmRleCApCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAndmFsdWVbMHVdJyB0
byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRoaXMgZnJvbSB0aGUg
b3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRv
cltdKGludCBpbmRleCkgY29uc3Q7CisKKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBhdCBs
ZWFzdCBpbmRleCsxIGVsZW1lbnRzLCByZXR1cm5zIHRoZSBlbGVtZW50CisgIC8vLyB2YWx1ZSwK
KyAgLy8vIG90aGVyd2lzZSByZXR1cm5zIGRlZmF1bHRWYWx1ZS4KKyAgVmFsdWUgZ2V0KEFycmF5
SW5kZXggaW5kZXgsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0
dXJuIHRydWUgaWYgaW5kZXggPCBzaXplKCkuCisgIGJvb2wgaXNWYWxpZEluZGV4KEFycmF5SW5k
ZXggaW5kZXgpIGNvbnN0OworICAvLy8gXGJyaWVmIEFwcGVuZCB2YWx1ZSB0byBhcnJheSBhdCB0
aGUgZW5kLgorICAvLy8KKyAgLy8vIEVxdWl2YWxlbnQgdG8ganNvbnZhbHVlW2pzb252YWx1ZS5z
aXplKCldID0gdmFsdWU7CisgIFZhbHVlJiBhcHBlbmQoY29uc3QgVmFsdWUmIHZhbHVlKTsKKwor
ICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJl
ciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgLy8vIFxub3RlIEJlY2F1c2Ugb2Ygb3VyIGltcGxl
bWVudGF0aW9uLCBrZXlzIGFyZSBsaW1pdGVkIHRvIDJeMzAgLTEgY2hhcnMuCisgIC8vLyAgRXhj
ZWVkaW5nIHRoYXQgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24uCisgIFZhbHVlJiBvcGVyYXRvcltd
KGNvbnN0IGNoYXIqIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUs
IHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1l
LgorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpIGNvbnN0OworICAv
Ly8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBp
ZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRk
ZWQgbnVsbHMuCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpOwor
ICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhl
cmUgaXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgLy8vIFxwYXJhbSBrZXkg
bWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNv
bnN0IHN0ZDo6c3RyaW5nJiBrZXkpIGNvbnN0OworICAvKiogXGJyaWVmIEFjY2VzcyBhbiBvYmpl
Y3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QKKyAg
IGV4aXN0LgorCisgICAqIElmIHRoZSBvYmplY3QgaGFzIG5vIGVudHJ5IGZvciB0aGF0IG5hbWUs
IHRoZW4gdGhlIG1lbWJlciBuYW1lIHVzZWQgdG8gc3RvcmUKKyAgICogdGhlIG5ldyBlbnRyeSBp
cyBub3QgZHVwbGljYXRlZC4KKyAgICogRXhhbXBsZSBvZiB1c2U6CisgICAqIFxjb2RlCisgICAq
IEpzb246OlZhbHVlIG9iamVjdDsKKyAgICogc3RhdGljIGNvbnN0IFN0YXRpY1N0cmluZyBjb2Rl
KCJjb2RlIik7CisgICAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7CisgICAqIFxlbmRjb2RlCisgICAq
LworICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJpbmcmIGtleSk7CisjaWZkZWYg
SlNPTl9VU0VfQ1BQVEwKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3Jl
YXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisgIFZhbHVlJiBvcGVyYXRv
cltdKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmpl
Y3QgdmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRo
CisgIC8vLyB0aGF0IG5hbWUuCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IENwcFRM
OjpDb25zdFN0cmluZyYga2V5KSBjb25zdDsKKyNlbmRpZgorICAvLy8gUmV0dXJuIHRoZSBtZW1i
ZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8g
XG5vdGUgZGVlcCBjb3B5CisgIFZhbHVlIGdldChjb25zdCBjaGFyKiBrZXksIGNvbnN0IFZhbHVl
JiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5
IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBj
b3B5CisgIC8vLyBcbm90ZSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIFZhbHVl
IGdldChjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kLCBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBp
dCBleGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQor
ICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUgZ2V0
KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0
OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBr
ZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVw
IGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5LCBjb25zdCBW
YWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNlbmRpZgorICAvLy8gTW9zdCBnZW5lcmFsIGFu
ZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBpc01lbWJlcigpY29uc3QsIGdldCgpY29uc3QsCisgIC8v
LyBhbmQgb3BlcmF0b3JbXWNvbnN0CisgIC8vLyBcbm90ZSBBcyBzdGF0ZWQgZWxzZXdoZXJlLCBi
ZWhhdmlvciBpcyB1bmRlZmluZWQgaWYgKGVuZC1iZWdpbikgPj0gMl4zMAorICBWYWx1ZSBjb25z
dCogZmluZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCogZW5kKSBjb25zdDsKKyAgLy8v
IE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2Ygb2JqZWN0LW11dGF0b3JzLgor
ICAvLy8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlm
IChlbmQtYmVnaW4pID49IDJeMzAKKyAgLy8vIFxyZXR1cm4gbm9uLXplcm8sIGJ1dCBKU09OX0FT
U0VSVCBpZiB0aGlzIGlzIG5laXRoZXIgb2JqZWN0IG5vciBudWxsVmFsdWUuCisgIFZhbHVlIGNv
bnN0KiBkZW1hbmQoY2hhciBjb25zdCogYmVnaW4sIGNoYXIgY29uc3QqIGVuZCk7CisgIC8vLyBc
YnJpZWYgUmVtb3ZlIGFuZCByZXR1cm4gdGhlIG5hbWVkIG1lbWJlci4KKyAgLy8vCisgIC8vLyBE
byBub3RoaW5nIGlmIGl0IGRpZCBub3QgZXhpc3QuCisgIC8vLyBccmV0dXJuIHRoZSByZW1vdmVk
IFZhbHVlLCBvciBudWxsLgorICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVs
bFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCisgIC8vLyBcZGVwcmVjYXRl
ZAorICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KTsKKyAgLy8vIFNhbWUgYXMg
cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqKQorICAvLy8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBl
bWJlZGRlZCBudWxscy4KKyAgLy8vIFxkZXByZWNhdGVkCisgIFZhbHVlIHJlbW92ZU1lbWJlcihj
b25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKyAgLy8vIFNhbWUgYXMgcmVtb3ZlTWVtYmVyKGNvbnN0
IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIFZhbHVlKiByZW1vdmVkKSwKKyAgLy8vIGJ1
dCAna2V5JyBpcyBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgcmVtb3ZlTWVtYmVyKGNvbnN0IGNo
YXIqIGtleSwgVmFsdWUqIHJlbW92ZWQpOworICAvKiogXGJyaWVmIFJlbW92ZSB0aGUgbmFtZWQg
bWFwIG1lbWJlci4KKworICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KKyAgICAg
IFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgICAgICBccmV0dXJuIHRy
dWUgaWZmIHJlbW92ZWQgKG5vIGV4Y2VwdGlvbnMpCisgICovCisgIGJvb2wgcmVtb3ZlTWVtYmVy
KHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKTsKKyAgLy8vIFNhbWUgYXMg
cmVtb3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKQorICBi
b29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kLCBWYWx1
ZSogcmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVtb3ZlIHRoZSBpbmRleGVkIGFycmF5IGVsZW1l
bnQuCisKKyAgICAgIE8obikgZXhwZW5zaXZlIG9wZXJhdGlvbnMuCisgICAgICBVcGRhdGUgJ3Jl
bW92ZWQnIGlmZiByZW1vdmVkLgorICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBl
eGNlcHRpb25zKQorICAqLworICBib29sIHJlbW92ZUluZGV4KEFycmF5SW5kZXggaSwgVmFsdWUq
IHJlbW92ZWQpOworCisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJl
ciBuYW1lZCBrZXkuCisgIC8vLyBcbm90ZSAna2V5JyBtdXN0IGJlIG51bGwtdGVybWluYXRlZC4K
KyAgYm9vbCBpc01lbWJlcihjb25zdCBjaGFyKiBrZXkpIGNvbnN0OworICAvLy8gUmV0dXJuIHRy
dWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgorICAvLy8gXHBhcmFtIGtl
eSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgYm9vbCBpc01lbWJlcihjb25zdCBzdGQ6
OnN0cmluZyYga2V5KSBjb25zdDsKKyAgLy8vIFNhbWUgYXMgaXNNZW1iZXIoc3RkOjpzdHJpbmcg
Y29uc3QmIGtleSljb25zdAorICBib29sIGlzTWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25z
dCBjaGFyKiBlbmQpIGNvbnN0OworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBSZXR1cm4g
dHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisgIGJvb2wgaXNNZW1i
ZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0OworI2VuZGlmCisKKyAgLy8v
IFxicmllZiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBtZW1iZXIgbmFtZXMuCisgIC8vLworICAvLy8g
SWYgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IGxpc3QuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmpl
Y3RWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IGlmIHR5cGUoKSB3YXMgbnVsbFZhbHVl
LCBpdCByZW1haW5zIG51bGxWYWx1ZQorICBNZW1iZXJzIGdldE1lbWJlck5hbWVzKCkgY29uc3Q7
CisKKyAgLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vICAgICAgRW51bU1lbWJlck5hbWVz
IGVudW1NZW1iZXJOYW1lcygpIGNvbnN0OworICAvLyAgICAgIEVudW1WYWx1ZXMgZW51bVZhbHVl
cygpIGNvbnN0OworICAvLyMgZW5kaWYKKworICAvLy8gXGRlcHJlY2F0ZWQgQWx3YXlzIHBhc3Mg
bGVuLgorICBKU09OQ1BQX0RFUFJFQ0FURUQoIlVzZSBzZXRDb21tZW50KHN0ZDo6c3RyaW5nIGNv
bnN0JikgaW5zdGVhZC4iKQorICB2b2lkIHNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwg
Q29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICAvLy8gQ29tbWVudHMgbXVzdCBiZSAvLy4u
LiBvciAvKiAuLi4gKi8KKyAgdm9pZCBzZXRDb21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIHNp
emVfdCBsZW4sIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgLy8vIENvbW1lbnRzIG11
c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZvaWQgc2V0Q29tbWVudChjb25zdCBzdGQ6OnN0
cmluZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICBib29sIGhhc0Nv
bW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0OworICAvLy8gSW5jbHVkZSBk
ZWxpbWl0ZXJzIGFuZCBlbWJlZGRlZCBuZXdsaW5lcy4KKyAgc3RkOjpzdHJpbmcgZ2V0Q29tbWVu
dChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3Q7CisKKyAgc3RkOjpzdHJpbmcgdG9T
dHlsZWRTdHJpbmcoKSBjb25zdDsKKworICBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0Owor
ICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdDsKKworICBpdGVyYXRvciBiZWdpbigpOworICBp
dGVyYXRvciBlbmQoKTsKKworICAvLyBBY2Nlc3NvcnMgZm9yIHRoZSBbc3RhcnQsIGxpbWl0KSBy
YW5nZSBvZiBieXRlcyB3aXRoaW4gdGhlIEpTT04gdGV4dCBmcm9tCisgIC8vIHdoaWNoIHRoaXMg
dmFsdWUgd2FzIHBhcnNlZCwgaWYgYW55LgorICB2b2lkIHNldE9mZnNldFN0YXJ0KHNpemVfdCBz
dGFydCk7CisgIHZvaWQgc2V0T2Zmc2V0TGltaXQoc2l6ZV90IGxpbWl0KTsKKyAgc2l6ZV90IGdl
dE9mZnNldFN0YXJ0KCkgY29uc3Q7CisgIHNpemVfdCBnZXRPZmZzZXRMaW1pdCgpIGNvbnN0Owor
Citwcml2YXRlOgorICB2b2lkIGluaXRCYXNpYyhWYWx1ZVR5cGUgdHlwZSwgYm9vbCBhbGxvY2F0
ZWQgPSBmYWxzZSk7CisKKyAgVmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5
KTsKKyAgVmFsdWUmIHJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFy
KiBlbmQpOworCisgIHN0cnVjdCBDb21tZW50SW5mbyB7CisgICAgQ29tbWVudEluZm8oKTsKKyAg
ICB+Q29tbWVudEluZm8oKTsKKworICAgIHZvaWQgc2V0Q29tbWVudChjb25zdCBjaGFyKiB0ZXh0
LCBzaXplX3QgbGVuKTsKKworICAgIGNoYXIqIGNvbW1lbnRfOworICB9OworCisgIC8vIHN0cnVj
dCBNZW1iZXJOYW1lc1RyYW5zZm9ybQorICAvL3sKKyAgLy8gICB0eXBlZGVmIGNvbnN0IGNoYXIg
KnJlc3VsdF90eXBlOworICAvLyAgIGNvbnN0IGNoYXIgKm9wZXJhdG9yKCkoIGNvbnN0IENaU3Ry
aW5nICZuYW1lICkgY29uc3QKKyAgLy8gICB7CisgIC8vICAgICAgcmV0dXJuIG5hbWUuY19zdHIo
KTsKKyAgLy8gICB9CisgIC8vfTsKKworICB1bmlvbiBWYWx1ZUhvbGRlciB7CisgICAgTGFyZ2Vz
dEludCBpbnRfOworICAgIExhcmdlc3RVSW50IHVpbnRfOworICAgIGRvdWJsZSByZWFsXzsKKyAg
ICBib29sIGJvb2xfOworICAgIGNoYXIqIHN0cmluZ187ICAvLyBhY3R1YWxseSBwdHIgdG8gdW5z
aWduZWQsIGZvbGxvd2VkIGJ5IHN0ciwgdW5sZXNzICFhbGxvY2F0ZWRfCisgICAgT2JqZWN0VmFs
dWVzKiBtYXBfOworICB9IHZhbHVlXzsKKyAgVmFsdWVUeXBlIHR5cGVfIDogODsKKyAgdW5zaWdu
ZWQgaW50IGFsbG9jYXRlZF8gOiAxOyAvLyBOb3RlczogaWYgZGVjbGFyZWQgYXMgYm9vbCwgYml0
ZmllbGQgaXMgdXNlbGVzcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBu
b3QgYWxsb2NhdGVkXywgc3RyaW5nXyBtdXN0IGJlIG51bGwtdGVybWluYXRlZC4KKyAgQ29tbWVu
dEluZm8qIGNvbW1lbnRzXzsKKyAgVmFsdWUgKmRlZmF1bHRfdmFsdWVfOyAgLy8gaWYgdmlhIC5n
ZXQoICJrZXkiLCBkZWZhdWx0ICksIHRoaXMgd2FzIHRoZSBkZWZhdWx0CisKKyAgLy8gW3N0YXJ0
LCBsaW1pdCkgYnl0ZSBvZmZzZXRzIGluIHRoZSBzb3VyY2UgSlNPTiB0ZXh0IGZyb20gd2hpY2gg
dGhpcyBWYWx1ZQorICAvLyB3YXMgZXh0cmFjdGVkLgorICBzaXplX3Qgc3RhcnRfOworICBzaXpl
X3QgbGltaXRfOworfTsKKworLyoqIFxicmllZiBFeHBlcmltZW50YWwgYW5kIHVudGVzdGVkOiBy
ZXByZXNlbnRzIGFuIGVsZW1lbnQgb2YgdGhlICJwYXRoIiB0bworICogYWNjZXNzIGEgbm9kZS4K
KyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aEFyZ3VtZW50IHsKK3B1YmxpYzoKKyAgZnJpZW5kIGNs
YXNzIFBhdGg7CisKKyAgUGF0aEFyZ3VtZW50KCk7CisgIFBhdGhBcmd1bWVudChBcnJheUluZGV4
IGluZGV4KTsKKyAgUGF0aEFyZ3VtZW50KGNvbnN0IGNoYXIqIGtleSk7CisgIFBhdGhBcmd1bWVu
dChjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKworcHJpdmF0ZToKKyAgZW51bSBLaW5kIHsKKyAg
ICBraW5kTm9uZSA9IDAsCisgICAga2luZEluZGV4LAorICAgIGtpbmRLZXkKKyAgfTsKKyAgc3Rk
OjpzdHJpbmcga2V5XzsKKyAgQXJyYXlJbmRleCBpbmRleF87CisgIEtpbmQga2luZF87Cit9Owor
CisvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBhbmQgdW50ZXN0ZWQ6IHJlcHJlc2VudHMgYSAicGF0
aCIgdG8gYWNjZXNzIGEgbm9kZS4KKyAqCisgKiBTeW50YXg6CisgKiAtICIuIiA9PiByb290IG5v
ZGUKKyAqIC0gIi5bbl0iID0+IGVsZW1lbnRzIGF0IGluZGV4ICduJyBvZiByb290IG5vZGUgKGFu
IGFycmF5IHZhbHVlKQorICogLSAiLm5hbWUiID0+IG1lbWJlciBuYW1lZCAnbmFtZScgb2Ygcm9v
dCBub2RlIChhbiBvYmplY3QgdmFsdWUpCisgKiAtICIubmFtZTEubmFtZTIubmFtZTMiCisgKiAt
ICIuWzBdWzFdWzJdLm5hbWUxWzNdIgorICogLSAiLiUiID0+IG1lbWJlciBuYW1lIGlzIHByb3Zp
ZGVkIGFzIHBhcmFtZXRlcgorICogLSAiLlslXSIgPT4gaW5kZXggaXMgcHJvdmllZCBhcyBwYXJh
bWV0ZXIKKyAqLworY2xhc3MgSlNPTl9BUEkgUGF0aCB7CitwdWJsaWM6CisgIFBhdGgoY29uc3Qg
c3RkOjpzdHJpbmcmIHBhdGgsCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMSA9IFBhdGhB
cmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIgPSBQYXRoQXJndW1lbnQo
KSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGEzID0gUGF0aEFyZ3VtZW50KCksCisgICAg
ICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNCA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTUgPSBQYXRoQXJndW1lbnQoKSk7CisKKyAgY29uc3QgVmFsdWUmIHJl
c29sdmUoY29uc3QgVmFsdWUmIHJvb3QpIGNvbnN0OworICBWYWx1ZSByZXNvbHZlKGNvbnN0IFZh
bHVlJiByb290LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIENyZWF0
ZXMgdGhlICJwYXRoIiB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlIGFuZCByZXR1cm5zIGEg
cmVmZXJlbmNlIG9uCisgIC8vLyB0aGUgbm9kZS4KKyAgVmFsdWUmIG1ha2UoVmFsdWUmIHJvb3Qp
IGNvbnN0OworCitwcml2YXRlOgorICB0eXBlZGVmIHN0ZDo6dmVjdG9yPGNvbnN0IFBhdGhBcmd1
bWVudCo+IEluQXJnczsKKyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxQYXRoQXJndW1lbnQ+IEFyZ3M7
CisKKyAgdm9pZCBtYWtlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgY29uc3QgSW5Bcmdz
JiBpbik7CisgIHZvaWQgYWRkUGF0aEluQXJnKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAorICAg
ICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAgICAgICAgICAgICAgICAgICBJ
bkFyZ3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAgICAgICAgICAgICAgICBQYXRo
QXJndW1lbnQ6OktpbmQga2luZCk7CisgIHZvaWQgaW52YWxpZFBhdGgoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGgsIGludCBsb2NhdGlvbik7CisKKyAgQXJncyBhcmdzXzsKK307CisKKy8qKiBcYnJp
ZWYgYmFzZSBjbGFzcyBmb3IgVmFsdWUgaXRlcmF0b3JzLgorICoKKyAqLworY2xhc3MgSlNPTl9B
UEkgVmFsdWVJdGVyYXRvckJhc2UgeworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6YmlkaXJlY3Rp
b25hbF9pdGVyYXRvcl90YWcgaXRlcmF0b3JfY2F0ZWdvcnk7CisgIHR5cGVkZWYgdW5zaWduZWQg
aW50IHNpemVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZh
bHVlSXRlcmF0b3JCYXNlIFNlbGZUeXBlOworCisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZWxm
VHlwZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGlzRXF1YWwob3RoZXIpOyB9CisKKyAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gIWlzRXF1YWwo
b3RoZXIpOyB9CisKKyAgZGlmZmVyZW5jZV90eXBlIG9wZXJhdG9yLShjb25zdCBTZWxmVHlwZSYg
b3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gb3RoZXIuY29tcHV0ZURpc3RhbmNlKCp0aGlzKTsK
KyAgfQorCisgIC8vLyBSZXR1cm4gZWl0aGVyIHRoZSBpbmRleCBvciB0aGUgbWVtYmVyIG5hbWUg
b2YgdGhlIHJlZmVyZW5jZWQgdmFsdWUgYXMgYQorICAvLy8gVmFsdWUuCisgIFZhbHVlIGtleSgp
IGNvbnN0OworCisgIC8vLyBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSByZWZlcmVuY2VkIFZhbHVl
LCBvciAtMSBpZiBpdCBpcyBub3QgYW4gYXJyYXlWYWx1ZS4KKyAgVUludCBpbmRleCgpIGNvbnN0
OworCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVl
LCBvciAiIiBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXG5vdGUg
QXZvaWQgYGNfc3RyKClgIG9uIHJlc3VsdCwgYXMgZW1iZWRkZWQgemVyb2VzIGFyZSBwb3NzaWJs
ZS4KKyAgc3RkOjpzdHJpbmcgbmFtZSgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gdGhlIG1lbWJl
ciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIFZhbHVlLiAiIiBpZiBpdCBpcyBub3QgYW4KKyAgLy8v
IG9iamVjdFZhbHVlLgorICAvLy8gXGRlcHJlY2F0ZWQgVGhpcyBjYW5ub3QgYmUgdXNlZCBmb3Ig
VVRGLTggc3RyaW5ncywgc2luY2UgdGhlcmUgY2FuIGJlIGVtYmVkZGVkIG51bGxzLgorICBKU09O
Q1BQX0RFUFJFQ0FURUQoIlVzZSBga2V5ID0gbmFtZSgpO2AgaW5zdGVhZC4iKQorICBjaGFyIGNv
bnN0KiBtZW1iZXJOYW1lKCkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lIG9m
IHRoZSByZWZlcmVuY2VkIFZhbHVlLCBvciBOVUxMIGlmIGl0IGlzIG5vdCBhbgorICAvLy8gb2Jq
ZWN0VmFsdWUuCisgIC8vLyBcbm90ZSBCZXR0ZXIgdmVyc2lvbiB0aGFuIG1lbWJlck5hbWUoKS4g
QWxsb3dzIGVtYmVkZGVkIG51bGxzLgorICBjaGFyIGNvbnN0KiBtZW1iZXJOYW1lKGNoYXIgY29u
c3QqKiBlbmQpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgIFZhbHVlJiBkZXJlZigpIGNvbnN0Owor
CisgIHZvaWQgaW5jcmVtZW50KCk7CisKKyAgdm9pZCBkZWNyZW1lbnQoKTsKKworICBkaWZmZXJl
bmNlX3R5cGUgY29tcHV0ZURpc3RhbmNlKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3Q7CisK
KyAgYm9vbCBpc0VxdWFsKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3Q7CisKKyAgdm9pZCBj
b3B5KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7CisKK3ByaXZhdGU6CisgIFZhbHVlOjpPYmplY3RW
YWx1ZXM6Oml0ZXJhdG9yIGN1cnJlbnRfOworICAvLyBJbmRpY2F0ZXMgdGhhdCBpdGVyYXRvciBp
cyBmb3IgYSBudWxsIHZhbHVlLgorICBib29sIGlzTnVsbF87CisKK3B1YmxpYzoKKyAgLy8gRm9y
IHNvbWUgcmVhc29uLCBCT1JMQU5EIG5lZWRzIHRoZXNlIGF0IHRoZSBlbmQsIHJhdGhlcgorICAv
LyB0aGFuIGVhcmxpZXIuIE5vIGlkZWEgd2h5LgorICBWYWx1ZUl0ZXJhdG9yQmFzZSgpOworICBl
eHBsaWNpdCBWYWx1ZUl0ZXJhdG9yQmFzZShjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVy
YXRvciYgY3VycmVudCk7Cit9OworCisvKiogXGJyaWVmIGNvbnN0IGl0ZXJhdG9yIGZvciBvYmpl
Y3QgYW5kIGFycmF5IHZhbHVlLgorICoKKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWVDb25zdEl0
ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlIHsKKyAgZnJpZW5kIGNsYXNzIFZhbHVl
OworCitwdWJsaWM6CisgIHR5cGVkZWYgY29uc3QgVmFsdWUgdmFsdWVfdHlwZTsKKyAgLy90eXBl
ZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIC8vdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBl
OworICB0eXBlZGVmIGNvbnN0IFZhbHVlJiByZWZlcmVuY2U7CisgIHR5cGVkZWYgY29uc3QgVmFs
dWUqIHBvaW50ZXI7CisgIHR5cGVkZWYgVmFsdWVDb25zdEl0ZXJhdG9yIFNlbGZUeXBlOworCisg
IFZhbHVlQ29uc3RJdGVyYXRvcigpOworICBWYWx1ZUNvbnN0SXRlcmF0b3IoVmFsdWVJdGVyYXRv
ciBjb25zdCYgb3RoZXIpOworCitwcml2YXRlOgorLyohIFxpbnRlcm5hbCBVc2UgYnkgVmFsdWUg
dG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgorICovCisgIGV4cGxpY2l0IFZhbHVlQ29uc3RJdGVyYXRv
cihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCk7CitwdWJsaWM6
CisgIFNlbGZUeXBlJiBvcGVyYXRvcj0oY29uc3QgVmFsdWVJdGVyYXRvckJhc2UmIG90aGVyKTsK
KworICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMp
OworICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSBvcGVy
YXRvci0tKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgIC0tKnRoaXM7Cisg
ICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0b3ItLSgpIHsKKyAgICBk
ZWNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBTZWxmVHlwZSYgb3BlcmF0
b3IrKygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKworICBy
ZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gZGVyZWYoKTsgfQorCisgIHBvaW50
ZXIgb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZkZXJlZigpOyB9Cit9OworCisvKiogXGJy
aWVmIEl0ZXJhdG9yIGZvciBvYmplY3QgYW5kIGFycmF5IHZhbHVlLgorICovCitjbGFzcyBKU09O
X0FQSSBWYWx1ZUl0ZXJhdG9yIDogcHVibGljIFZhbHVlSXRlcmF0b3JCYXNlIHsKKyAgZnJpZW5k
IGNsYXNzIFZhbHVlOworCitwdWJsaWM6CisgIHR5cGVkZWYgVmFsdWUgdmFsdWVfdHlwZTsKKyAg
dHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OworICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5
cGU7CisgIHR5cGVkZWYgVmFsdWUmIHJlZmVyZW5jZTsKKyAgdHlwZWRlZiBWYWx1ZSogcG9pbnRl
cjsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yIFNlbGZUeXBlOworCisgIFZhbHVlSXRlcmF0b3Io
KTsKKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3ImIG90
aGVyKTsKKyAgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUl0ZXJhdG9yJiBvdGhlcik7CisKK3By
aXZhdGU6CisvKiEgXGludGVybmFsIFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3Iu
CisgKi8KKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVz
OjppdGVyYXRvciYgY3VycmVudCk7CitwdWJsaWM6CisgIFNlbGZUeXBlJiBvcGVyYXRvcj0oY29u
c3QgU2VsZlR5cGUmIG90aGVyKTsKKworICBTZWxmVHlwZSBvcGVyYXRvcisrKGludCkgeworICAg
IFNlbGZUeXBlIHRlbXAoKnRoaXMpOworICAgICsrKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7Cisg
IH0KKworICBTZWxmVHlwZSBvcGVyYXRvci0tKGludCkgeworICAgIFNlbGZUeXBlIHRlbXAoKnRo
aXMpOworICAgIC0tKnRoaXM7CisgICAgcmV0dXJuIHRlbXA7CisgIH0KKworICBTZWxmVHlwZSYg
b3BlcmF0b3ItLSgpIHsKKyAgICBkZWNyZW1lbnQoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0K
KworICBTZWxmVHlwZSYgb3BlcmF0b3IrKygpIHsKKyAgICBpbmNyZW1lbnQoKTsKKyAgICByZXR1
cm4gKnRoaXM7CisgIH0KKworICByZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4g
ZGVyZWYoKTsgfQorCisgIHBvaW50ZXIgb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZkZXJl
ZigpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKworbmFtZXNwYWNlIHN0ZCB7Cisv
Ly8gU3BlY2lhbGl6ZSBzdGQ6OnN3YXAoKSBmb3IgSnNvbjo6VmFsdWUuCit0ZW1wbGF0ZTw+Citp
bmxpbmUgdm9pZCBzd2FwKEpzb246OlZhbHVlJiBhLCBKc29uOjpWYWx1ZSYgYikgeyBhLnN3YXAo
Yik7IH0KK30KKworCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05D
UFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNlbmRpZiAvLyBDUFBUTF9KU09O
X0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL3ZhbHVlLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi9yZWFkZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEw
IEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9y
IHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJp
c2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05f
UkVBREVSX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURFRAor
CisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiZmVhdHVyZXMu
aCIKKyNpbmNsdWRlICJ2YWx1ZS5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQorI2luY2x1ZGUgPGRlcXVlPgorI2luY2x1ZGUgPGlvc2Z3ZD4KKyNpbmNsdWRl
IDxzdGFjaz4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8aXN0cmVhbT4KKworLy8gRGlz
YWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1iZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBk
bGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1c2VkIGJ5Li4uCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJ
U0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJh
Z21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQ
X0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCituYW1lc3BhY2UgSnNvbiB7CisKKy8q
KiBcYnJpZWYgVW5zZXJpYWxpemUgYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09O
PC9hPiBkb2N1bWVudCBpbnRvIGEKKyAqVmFsdWUuCisgKgorICogXGRlcHJlY2F0ZWQgVXNlIENo
YXJSZWFkZXIgYW5kIENoYXJSZWFkZXJCdWlsZGVyLgorICovCitjbGFzcyBKU09OX0FQSSBSZWFk
ZXIgeworcHVibGljOgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAgdHlwZWRlZiBjb25zdCBDaGFy
KiBMb2NhdGlvbjsKKworICAvKiogXGJyaWVmIEFuIGVycm9yIHRhZ2dlZCB3aXRoIHdoZXJlIGlu
IHRoZSBKU09OIHRleHQgaXQgd2FzIGVuY291bnRlcmVkLgorICAgKgorICAgKiBUaGUgb2Zmc2V0
cyBnaXZlIHRoZSBbc3RhcnQsIGxpbWl0KSByYW5nZSBvZiBieXRlcyB3aXRoaW4gdGhlIHRleHQu
IE5vdGUKKyAgICogdGhhdCB0aGlzIGlzIGJ5dGVzLCBub3QgY29kZXBvaW50cy4KKyAgICoKKyAg
ICovCisgIHN0cnVjdCBTdHJ1Y3R1cmVkRXJyb3IgeworICAgIHNpemVfdCBvZmZzZXRfc3RhcnQ7
CisgICAgc2l6ZV90IG9mZnNldF9saW1pdDsKKyAgICBzdGQ6OnN0cmluZyBtZXNzYWdlOworICB9
OworCisgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyBhbGwgZmVhdHVy
ZXMKKyAgICogZm9yIHBhcnNpbmcuCisgICAqLworICBSZWFkZXIoKTsKKworICAvKiogXGJyaWVm
IENvbnN0cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgdGhlIHNwZWNpZmllZCBmZWF0dXJlIHNldAor
ICAgKiBmb3IgcGFyc2luZy4KKyAgICovCisgIFJlYWRlcihjb25zdCBGZWF0dXJlcyYgZmVhdHVy
ZXMpOworCisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8YSBIUkVGPSJodHRwOi8v
d3d3Lmpzb24ub3JnIj5KU09OPC9hPgorICAgKiBkb2N1bWVudC4KKyAgICogXHBhcmFtIGRvY3Vt
ZW50IFVURi04IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRvIHJlYWQu
CisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9mIHRoZSBk
b2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBhcnNlZC4K
KyAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBh
bmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICAqIGJhY2sgZHVyaW5nCisgICAqICAgICAgICAgICAg
ICAgICAgICAgICAgc2VyaWFsaXphdGlvbiwgXGMgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4K
KyAgICogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlm
CisgICAqIEZlYXR1cmVzOjphbGxvd0NvbW1lbnRzXworICAgKiAgICAgICAgICAgICAgICAgICAg
ICAgIGlzIFxjIGZhbHNlLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdh
cyBzdWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgorICAgKiBlcnJvciBvY2N1cnJl
ZC4KKyAgICovCisgIGJvb2wKKyAgcGFyc2UoY29uc3Qgc3RkOjpzdHJpbmcmIGRvY3VtZW50LCBW
YWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKKworICAvKiogXGJyaWVm
IFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwv
YT4KKyAgIGRvY3VtZW50LgorICAgKiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVn
aW5uaW5nIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRv
IHJlYWQuCisgICAqIFxwYXJhbSBlbmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYt
OCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAg
ICAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KKyAgICogXHBhcmFtIHJvb3QgW291dF0gQ29u
dGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcworICAgKiAgICAg
ICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gY29sbGVjdENvbW1lbnRz
IFxjIHRydWUgdG8gY29sbGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgIGJh
Y2sgZHVyaW5nCisgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbiwgXGMg
ZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBU
aGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmCisgICBGZWF0dXJlczo6YWxsb3dDb21tZW50c18K
KyAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KKyAgICogXHJldHVybiBc
YyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwgXGMgZmFsc2Ug
aWYgYW4KKyAgIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbCBwYXJzZShjb25zdCBjaGFy
KiBiZWdpbkRvYywKKyAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAgICAg
ICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVl
KTsKKworICAvLy8gXGJyaWVmIFBhcnNlIGZyb20gaW5wdXQgc3RyZWFtLgorICAvLy8gXHNlZSBK
c29uOjpvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYsIEpzb246OlZhbHVlJikuCisgIGJvb2wgcGFy
c2Uoc3RkOjppc3RyZWFtJiBpcywgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzID0g
dHJ1ZSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBmcmllbmRseSBzdHJpbmcgdGhh
dCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3VtZW50LgorICAgKiBccmV0dXJu
IEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qgb2YgZXJyb3JzIHdpdGggdGhl
aXIgbG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUgcGFyc2VkIGRvY3VtZW50LiBB
biBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IKKyAgICogb2NjdXJyZWQKKyAg
ICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICogXGRlcHJlY2F0ZWQgVXNlIGdldEZvcm1h
dHRlZEVycm9yTWVzc2FnZXMoKSBpbnN0ZWFkICh0eXBvIGZpeCkuCisgICAqLworICBKU09OQ1BQ
X0RFUFJFQ0FURUQoIlVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5zdGVhZC4iKQor
ICBzdGQ6OnN0cmluZyBnZXRGb3JtYXRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKworICAvKiog
XGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3QgZXJyb3JzIGlu
IHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1cm4gRm9ybWF0dGVkIGVycm9y
IG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBlcnJvcnMgd2l0aCB0aGVpciBsb2NhdGlvbgorICAg
KiBpbgorICAgKiAgICAgICAgIHRoZSBwYXJzZWQgZG9jdW1lbnQuIEFuIGVtcHR5IHN0cmluZyBp
cyByZXR1cm5lZCBpZiBubyBlcnJvcgorICAgKiBvY2N1cnJlZAorICAgKiAgICAgICAgIGR1cmlu
ZyBwYXJzaW5nLgorICAgKi8KKyAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdl
cygpIGNvbnN0OworCisgIC8qKiBcYnJpZWYgUmV0dXJucyBhIHZlY3RvciBvZiBzdHJ1Y3R1cmVk
IGVycm9zIGVuY291bnRlZCB3aGlsZSBwYXJzaW5nLgorICAgKiBccmV0dXJuIEEgKHBvc3NpYmx5
IGVtcHR5KSB2ZWN0b3Igb2YgU3RydWN0dXJlZEVycm9yIG9iamVjdHMuIEN1cnJlbnRseQorICAg
KiAgICAgICAgIG9ubHkgb25lIGVycm9yIGNhbiBiZSByZXR1cm5lZCwgYnV0IHRoZSBjYWxsZXIg
c2hvdWxkIHRvbGVyYXRlCisgICAqIG11bHRpcGxlCisgICAqICAgICAgICAgZXJyb3JzLiAgVGhp
cyBjYW4gb2NjdXIgaWYgdGhlIHBhcnNlciByZWNvdmVycyBmcm9tIGEgbm9uLWZhdGFsCisgICAq
ICAgICAgICAgcGFyc2UgZXJyb3IgYW5kIHRoZW4gZW5jb3VudGVycyBhZGRpdGlvbmFsIGVycm9y
cy4KKyAgICovCisgIHN0ZDo6dmVjdG9yPFN0cnVjdHVyZWRFcnJvcj4gZ2V0U3RydWN0dXJlZEVy
cm9ycygpIGNvbnN0OworCisgIC8qKiBcYnJpZWYgQWRkIGEgc2VtYW50aWMgZXJyb3IgbWVzc2Fn
ZS4KKyAgICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRo
IHRoZSBlcnJvcgorICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZSBlcnJvciB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBcYyBm
YWxzZSBpZiB0aGUKKyAgICogVmFsdWUgb2Zmc2V0IGV4Y2VlZHMgdGhlIGRvY3VtZW50IHNpemUu
CisgICAqLworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6
c3RyaW5nJiBtZXNzYWdlKTsKKworICAvKiogXGJyaWVmIEFkZCBhIHNlbWFudGljIGVycm9yIG1l
c3NhZ2Ugd2l0aCBleHRyYSBjb250ZXh0LgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1ZSBs
b2NhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdlIFRo
ZSBlcnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gZXh0cmEgQWRkaXRpb25hbCBKU09OIFZhbHVl
IGxvY2F0aW9uIHRvIGNvbnRleHR1YWxpemUgdGhlIGVycm9yCisgICAqIFxyZXR1cm4gXGMgdHJ1
ZSBpZiB0aGUgZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgZWl0aGVy
CisgICAqIFZhbHVlIG9mZnNldCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgorICAgKi8KKyAg
Ym9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKworICAvKiogXGJyaWVmIFJldHVybiB3aGV0aGVy
IHRoZXJlIGFyZSBhbnkgZXJyb3JzLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlcmUgYXJl
IG5vIGVycm9ycyB0byByZXBvcnQgXGMgZmFsc2UgaWYKKyAgICogZXJyb3JzIGhhdmUgb2NjdXJy
ZWQuCisgICAqLworICBib29sIGdvb2QoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgZW51bSBUb2tl
blR5cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAgIHRva2VuT2JqZWN0QmVnaW4s
CisgICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJlZ2luLAorICAgIHRva2VuQXJy
YXlFbmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1iZXIsCisgICAgdG9rZW5UcnVl
LAorICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAgIHRva2VuQXJyYXlTZXBhcmF0
b3IsCisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9rZW5Db21tZW50LAorICAgIHRv
a2VuRXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1YmxpYzoKKyAgICBUb2tlblR5
cGUgdHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExvY2F0aW9uIGVuZF87CisgIH07
CisKKyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAgIFRva2VuIHRva2VuXzsKKyAg
ICBzdGQ6OnN0cmluZyBtZXNzYWdlXzsKKyAgICBMb2NhdGlvbiBleHRyYV87CisgIH07CisKKyAg
dHlwZWRlZiBzdGQ6OmRlcXVlPEVycm9ySW5mbz4gRXJyb3JzOworCisgIGJvb2wgcmVhZFRva2Vu
KFRva2VuJiB0b2tlbik7CisgIHZvaWQgc2tpcFNwYWNlcygpOworICBib29sIG1hdGNoKExvY2F0
aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKTsKKyAgYm9vbCByZWFkQ29tbWVudCgpOwor
ICBib29sIHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZENwcFN0eWxlQ29tbWVudCgp
OworICBib29sIHJlYWRTdHJpbmcoKTsKKyAgdm9pZCByZWFkTnVtYmVyKCk7CisgIGJvb2wgcmVh
ZFZhbHVlKCk7CisgIGJvb2wgcmVhZE9iamVjdChUb2tlbiYgdG9rZW4pOworICBib29sIHJlYWRB
cnJheShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pOwor
ICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9v
bCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4m
IHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2Vu
JiB0b2tlbik7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29k
ZWQpOworICBib29sIGRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGRlY29kZVVuaWNvZGVFc2NhcGVT
ZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCYgdW5pY29kZSk7CisgIGJvb2wgYWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3Nh
Z2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEgPSAwKTsKKyAgYm9vbCByZWNvdmVyRnJv
bUVycm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIGJvb2wgYWRkRXJyb3JBbmRSZWNv
dmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lw
VW50aWxUb2tlbik7CisgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsKKyAgVmFsdWUmIGN1cnJlbnRW
YWx1ZSgpOworICBDaGFyIGdldE5leHRDaGFyKCk7CisgIHZvaWQKKyAgZ2V0TG9jYXRpb25MaW5l
QW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLCBpbnQmIGxpbmUsIGludCYgY29sdW1uKSBjb25z
dDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0
aW9uKSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25TbmlwcGV0KExvY2F0aW9uIGxv
Y2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlv
biBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgdm9pZCBza2lwQ29tbWVudFRv
a2VucyhUb2tlbiYgdG9rZW4pOworCisgIHR5cGVkZWYgc3RkOjpzdGFjazxWYWx1ZSo+IE5vZGVz
OworICBOb2RlcyBub2Rlc187CisgIEVycm9ycyBlcnJvcnNfOworICBzdGQ6OnN0cmluZyBkb2N1
bWVudF87CisgIExvY2F0aW9uIGJlZ2luXzsKKyAgTG9jYXRpb24gZW5kXzsKKyAgTG9jYXRpb24g
Y3VycmVudF87CisgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF87CisgIFZhbHVlKiBsYXN0VmFsdWVf
OworICBzdGQ6OnN0cmluZyBjb21tZW50c0JlZm9yZV87CisgIEZlYXR1cmVzIGZlYXR1cmVzXzsK
KyAgYm9vbCBjb2xsZWN0Q29tbWVudHNfOworfTsgIC8vIFJlYWRlcgorCisvKiogSW50ZXJmYWNl
IGZvciByZWFkaW5nIEpTT04gZnJvbSBhIGNoYXIgYXJyYXkuCisgKi8KK2NsYXNzIEpTT05fQVBJ
IENoYXJSZWFkZXIgeworcHVibGljOgorICB2aXJ0dWFsIH5DaGFyUmVhZGVyKCkge30KKyAgLyoq
IFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmci
PkpTT048L2E+CisgICBkb2N1bWVudC4KKyAgICogVGhlIGRvY3VtZW50IG11c3QgYmUgYSBVVEYt
OCBlbmNvZGVkIHN0cmluZyBjb250YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgorICAgKgor
ICAgKiBccGFyYW0gYmVnaW5Eb2MgUG9pbnRlciBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBVVEYt
OCBlbmNvZGVkIHN0cmluZyBvZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqIFxwYXJh
bSBlbmREb2MgUG9pbnRlciBvbiB0aGUgZW5kIG9mIHRoZSBVVEYtOCBlbmNvZGVkIHN0cmluZyBv
ZiB0aGUKKyAgIGRvY3VtZW50IHRvIHJlYWQuCisgICAqICAgICAgICBNdXN0IGJlID49IGJlZ2lu
RG9jLgorICAgKiBccGFyYW0gcm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0
aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAqICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJz
ZWQuCisgICAqIFxwYXJhbSBlcnJzIFtvdXRdIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlcyAoaWYg
bm90IE5VTEwpCisgICAqICAgICAgICBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdHMg
ZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQuCisgICAqIFxyZXR1cm4gXGMgdHJ1
ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFu
CisgICBlcnJvciBvY2N1cnJlZC4KKyAgICovCisgIHZpcnR1YWwgYm9vbCBwYXJzZSgKKyAgICAg
IGNoYXIgY29uc3QqIGJlZ2luRG9jLCBjaGFyIGNvbnN0KiBlbmREb2MsCisgICAgICBWYWx1ZSog
cm9vdCwgc3RkOjpzdHJpbmcqIGVycnMpID0gMDsKKworICBjbGFzcyBKU09OX0FQSSBGYWN0b3J5
IHsKKyAgcHVibGljOgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKSB7fQorICAgIC8qKiBcYnJpZWYg
QWxsb2NhdGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4KKyAgICAgKiBcdGhyb3cg
c3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0
aW5ncykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBj
b25zdCA9IDA7CisgIH07ICAvLyBGYWN0b3J5Cit9OyAgLy8gQ2hhclJlYWRlcgorCisvKiogXGJy
aWVmIEJ1aWxkIGEgQ2hhclJlYWRlciBpbXBsZW1lbnRhdGlvbi4KKworVXNhZ2U6CitcY29kZQor
ICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYnVpbGRlcjsKKyAg
YnVpbGRlclsiY29sbGVjdENvbW1lbnRzIl0gPSBmYWxzZTsKKyAgVmFsdWUgdmFsdWU7CisgIHN0
ZDo6c3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSBwYXJzZUZyb21TdHJlYW0oYnVpbGRlciwgc3Rk
OjpjaW4sICZ2YWx1ZSwgJmVycnMpOworXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBDaGFy
UmVhZGVyQnVpbGRlciA6IHB1YmxpYyBDaGFyUmVhZGVyOjpGYWN0b3J5IHsKK3B1YmxpYzoKKyAg
Ly8gTm90ZTogV2UgdXNlIGEgSnNvbjo6VmFsdWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVt
YmVycyB0byB0aGlzIGNsYXNzCisgIC8vIHdpdGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCisg
IC8qKiBDb25maWd1cmF0aW9uIG9mIHRoaXMgYnVpbGRlci4KKyAgICBUaGVzZSBhcmUgY2FzZS1z
ZW5zaXRpdmUuCisgICAgQXZhaWxhYmxlIHNldHRpbmdzIChjYXNlLXNlbnNpdGl2ZSk6CisgICAg
LSBgImNvbGxlY3RDb21tZW50cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIHRydWUgdG8gY29s
bGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgICAgICAgYmFjayBkdXJpbmcg
c2VyaWFsaXphdGlvbiwgZmFsc2UgdG8gZGlzY2FyZCBjb21tZW50cy4KKyAgICAgICAgVGhpcyBw
YXJhbWV0ZXIgaXMgaWdub3JlZCBpZiBhbGxvd0NvbW1lbnRzIGlzIGZhbHNlLgorICAgIC0gYCJh
bGxvd0NvbW1lbnRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBjb21tZW50cyBh
cmUgYWxsb3dlZC4KKyAgICAtIGAic3RyaWN0Um9vdCI6IGZhbHNlIG9yIHRydWVgCisgICAgICAt
IHRydWUgaWYgcm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUK
KyAgICAtIGAiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWVgCisg
ICAgICAtIHRydWUgaWYgZHJvcHBlZCBudWxsIHBsYWNlaG9sZGVycyBhcmUgYWxsb3dlZC4gKFNl
ZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLikKKyAgICAtIGAiYWxsb3dOdW1lcmljS2V5cyI6IGZhbHNl
IG9yIHRydWVgCisgICAgICAtIHRydWUgaWYgbnVtZXJpYyBvYmplY3Qga2V5cyBhcmUgYWxsb3dl
ZC4KKyAgICAtIGAiYWxsb3dTaW5nbGVRdW90ZXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0
cnVlIGlmICcnIGFyZSBhbGxvd2VkIGZvciBzdHJpbmdzIChib3RoIGtleXMgYW5kIHZhbHVlcykK
KyAgICAtIGAic3RhY2tMaW1pdCI6IGludGVnZXJgCisgICAgICAtIEV4Y2VlZGluZyBzdGFja0xp
bWl0IChyZWN1cnNpdmUgZGVwdGggb2YgYHJlYWRWYWx1ZSgpYCkgd2lsbAorICAgICAgICBjYXVz
ZSBhbiBleGNlcHRpb24uCisgICAgICAtIFRoaXMgaXMgYSBzZWN1cml0eSBpc3N1ZSAoc2VnLWZh
dWx0cyBjYXVzZWQgYnkgZGVlcGx5IG5lc3RlZCBKU09OKSwKKyAgICAgICAgc28gdGhlIGRlZmF1
bHQgaXMgbG93LgorICAgIC0gYCJmYWlsSWZFeHRyYSI6IGZhbHNlIG9yIHRydWVgCisgICAgICAt
IElmIHRydWUsIGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gZXh0cmEgbm9uLXdoaXRlc3Bh
Y2UgdHJhaWxzCisgICAgICAgIHRoZSBKU09OIHZhbHVlIGluIHRoZSBpbnB1dCBzdHJpbmcuCisg
ICAgLSBgInJlamVjdER1cEtleXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBg
cGFyc2UoKWAgcmV0dXJucyBmYWxzZSB3aGVuIGEga2V5IGlzIGR1cGxpY2F0ZWQgd2l0aGluIGFu
IG9iamVjdC4KKyAgICAtIGAiYWxsb3dTcGVjaWFsRmxvYXRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAg
ICAgIC0gSWYgdHJ1ZSwgc3BlY2lhbCBmbG9hdCB2YWx1ZXMgKE5hTnMgYW5kIGluZmluaXRpZXMp
IGFyZSBhbGxvd2VkIAorICAgICAgICBhbmQgdGhlaXIgdmFsdWVzIGFyZSBsb3NzZnJlZSByZXN0
b3JhYmxlLgorCisgICAgWW91IGNhbiBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCisgICAg
dG8gc2VlIHRoZSBkZWZhdWx0cy4gWW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVz
dCBsaWtlIGFueQorICAgIEpTT04gVmFsdWUuCisgICAgXHNhIHNldERlZmF1bHRzKCkKKyAgICAq
LworICBKc29uOjpWYWx1ZSBzZXR0aW5nc187CisKKyAgQ2hhclJlYWRlckJ1aWxkZXIoKTsKKyAg
fkNoYXJSZWFkZXJCdWlsZGVyKCk7CisKKyAgQ2hhclJlYWRlciogbmV3Q2hhclJlYWRlcigpIGNv
bnN0OworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwgYW5kIGNv
bnNpc3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3MgdmlhICdp
bnZhbGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNv
bnN0OworCisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBkYXRlIGEgc3BlY2lmaWMgc2V0dGluZy4K
KyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGtleSk7CisKKyAgLyoqIENh
bGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhpcyB0byByZXNldCBzZXR0aW5nc18uCisg
ICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQgSnNvbjo6bnVsbCBpcyBmaW5lKQorICAg
KiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBldCBzcmMvbGliX2pzb24vanNvbl9yZWFk
ZXIuY3BwIENoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHMKKyAgICovCisgIHN0YXRpYyB2b2lkIHNl
dERlZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7CisgIC8qKiBTYW1lIGFzIG9sZCBGZWF0
dXJlczo6c3RyaWN0TW9kZSgpLgorICAgKiBccHJlICdzZXR0aW5ncycgIT0gTlVMTCAoYnV0IEpz
b246Om51bGwgaXMgZmluZSkKKyAgICogXHJlbWFyayBEZWZhdWx0czoKKyAgICogXHNuaXBwZXQg
c3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRlclN0cmljdE1vZGUK
KyAgICovCisgIHN0YXRpYyB2b2lkIHN0cmljdE1vZGUoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsK
K307CisKKy8qKiBDb25zdW1lIGVudGlyZSBzdHJlYW0gYW5kIHVzZSBpdHMgYmVnaW4vZW5kLgor
ICAqIFNvbWVkYXkgd2UgbWlnaHQgaGF2ZSBhIHJlYWwgU3RyZWFtUmVhZGVyLCBidXQgZm9yIG5v
dyB0aGlzCisgICogaXMgY29udmVuaWVudC4KKyAgKi8KK2Jvb2wgSlNPTl9BUEkgcGFyc2VGcm9t
U3RyZWFtKAorICAgIENoYXJSZWFkZXI6OkZhY3RvcnkgY29uc3QmLAorICAgIHN0ZDo6aXN0cmVh
bSYsCisgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKTsKKworLyoqIFxicmllZiBS
ZWFkIGZyb20gJ3NpbicgaW50byAncm9vdCcuCisKKyBBbHdheXMga2VlcCBjb21tZW50cyBmcm9t
IHRoZSBpbnB1dCBKU09OLgorCisgVGhpcyBjYW4gYmUgdXNlZCB0byByZWFkIGEgZmlsZSBpbnRv
IGEgcGFydGljdWxhciBzdWItb2JqZWN0LgorIEZvciBleGFtcGxlOgorIFxjb2RlCisgSnNvbjo6
VmFsdWUgcm9vdDsKKyBjaW4gPj4gcm9vdFsiZGlyIl1bImZpbGUiXTsKKyBjb3V0IDw8IHJvb3Q7
CisgXGVuZGNvZGUKKyBSZXN1bHQ6CisgXHZlcmJhdGltCisgeworICJkaXIiOiB7CisgICAgICJm
aWxlIjogeworICAgICAvLyBUaGUgaW5wdXQgc3RyZWFtIEpTT04gd291bGQgYmUgbmVzdGVkIGhl
cmUuCisgICAgIH0KKyB9CisgfQorIFxlbmR2ZXJiYXRpbQorIFx0aHJvdyBzdGQ6OmV4Y2VwdGlv
biBvbiBwYXJzZSBlcnJvci4KKyBcc2VlIEpzb246Om9wZXJhdG9yPDwoKQorKi8KK0pTT05fQVBJ
IHN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mLCBWYWx1ZSYpOworCit9IC8v
IG5hbWVzcGFjZSBKc29uCisKKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJG
QUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmIC8vIGlmIGRlZmluZWQo
SlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworI2VuZGlmIC8vIENQUFRM
X0pTT05fUkVBREVSX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNv
bnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3JlYWRlci5oCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
KworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBm
aWxlOiBpbmNsdWRlL2pzb24vd3JpdGVyLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJp
Z2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRl
ZiBKU09OX1dSSVRFUl9IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fV1JJVEVSX0hfSU5DTFVERUQK
KworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgInZhbHVlLmgi
CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8
dmVjdG9yPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxvc3RyZWFtPgorCisvLyBEaXNh
YmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRs
bC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElT
QUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFn
bWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBf
RElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKK25hbWVzcGFjZSBKc29uIHsKKworY2xh
c3MgVmFsdWU7CisKKy8qKgorCitVc2FnZToKK1xjb2RlCisgIHVzaW5nIG5hbWVzcGFjZSBKc29u
OworICB2b2lkIHdyaXRlVG9TdGRvdXQoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0
b3J5LCBWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RyZWFtV3Jp
dGVyPiBjb25zdCB3cml0ZXIoCisgICAgICBmYWN0b3J5Lm5ld1N0cmVhbVdyaXRlcigpKTsKKyAg
ICB3cml0ZXItPndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgICBzdGQ6OmNvdXQgPDwgc3Rk
OjplbmRsOyAgLy8gYWRkIGxmIGFuZCBmbHVzaAorICB9CitcZW5kY29kZQorKi8KK2NsYXNzIEpT
T05fQVBJIFN0cmVhbVdyaXRlciB7Citwcm90ZWN0ZWQ6CisgIHN0ZDo6b3N0cmVhbSogc291dF87
ICAvLyBub3Qgb3duZWQ7IHdpbGwgbm90IGRlbGV0ZQorcHVibGljOgorICBTdHJlYW1Xcml0ZXIo
KTsKKyAgdmlydHVhbCB+U3RyZWFtV3JpdGVyKCk7CisgIC8qKiBXcml0ZSBWYWx1ZSBpbnRvIGRv
Y3VtZW50IGFzIGNvbmZpZ3VyZWQgaW4gc3ViLWNsYXNzLgorICAgICAgRG8gbm90IHRha2Ugb3du
ZXJzaGlwIG9mIHNvdXQsIGJ1dCBtYWludGFpbiBhIHJlZmVyZW5jZSBkdXJpbmcgZnVuY3Rpb24u
CisgICAgICBccHJlIHNvdXQgIT0gTlVMTAorICAgICAgXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mg
KEZvciBub3csIHdlIGFsd2F5cyByZXR1cm4gemVybywgc28gY2hlY2sgdGhlIHN0cmVhbSBpbnN0
ZWFkLikKKyAgICAgIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBwb3NzaWJseSwgZGVwZW5kaW5nIG9u
IGNvbmZpZ3VyYXRpb24KKyAgICovCisgIHZpcnR1YWwgaW50IHdyaXRlKFZhbHVlIGNvbnN0JiBy
b290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpID0gMDsKKworICAvKiogXGJyaWVmIEEgc2ltcGxlIGFi
c3RyYWN0IGZhY3RvcnkuCisgICAqLworICBjbGFzcyBKU09OX0FQSSBGYWN0b3J5IHsKKyAgcHVi
bGljOgorICAgIHZpcnR1YWwgfkZhY3RvcnkoKTsKKyAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEg
Q2hhclJlYWRlciB2aWEgb3BlcmF0b3IgbmV3KCkuCisgICAgICogXHRocm93IHN0ZDo6ZXhjZXB0
aW9uIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCisgICAg
ICovCisgICAgdmlydHVhbCBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVhbVdyaXRlcigpIGNvbnN0ID0g
MDsKKyAgfTsgIC8vIEZhY3RvcnkKK307ICAvLyBTdHJlYW1Xcml0ZXIKKworLyoqIFxicmllZiBX
cml0ZSBpbnRvIHN0cmluZ3N0cmVhbSwgdGhlbiByZXR1cm4gc3RyaW5nLCBmb3IgY29udmVuaWVu
Y2UuCisgKiBBIFN0cmVhbVdyaXRlciB3aWxsIGJlIGNyZWF0ZWQgZnJvbSB0aGUgZmFjdG9yeSwg
dXNlZCwgYW5kIHRoZW4gZGVsZXRlZC4KKyAqLworc3RkOjpzdHJpbmcgSlNPTl9BUEkgd3JpdGVT
dHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0b3J5LCBWYWx1ZSBjb25zdCYg
cm9vdCk7CisKKworLyoqIFxicmllZiBCdWlsZCBhIFN0cmVhbVdyaXRlciBpbXBsZW1lbnRhdGlv
bi4KKworVXNhZ2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgVmFsdWUgdmFs
dWUgPSAuLi47CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRlcjsKKyAgYnVpbGRlclsiY29t
bWVudFN0eWxlIl0gPSAiTm9uZSI7CisgIGJ1aWxkZXJbImluZGVudGF0aW9uIl0gPSAiICAgIjsg
IC8vIG9yIHdoYXRldmVyIHlvdSBsaWtlCisgIHN0ZDo6dW5pcXVlX3B0cjxKc29uOjpTdHJlYW1X
cml0ZXI+IHdyaXRlcigKKyAgICAgIGJ1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0
ZXItPndyaXRlKHZhbHVlLCAmc3RkOjpjb3V0KTsKKyAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsg
IC8vIGFkZCBsZiBhbmQgZmx1c2gKK1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgU3RyZWFt
V3JpdGVyQnVpbGRlciA6IHB1YmxpYyBTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgeworcHVibGljOgor
ICAvLyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0IHdlIGNhbiBhZGQgZGF0YS1t
ZW1iZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1ham9yIHZlcnNpb24gYnVtcC4K
KyAgLyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgorICAgIEF2YWlsYWJsZSBzZXR0
aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gImNvbW1lbnRTdHlsZSI6ICJOb25lIiBvciAi
QWxsIgorICAgIC0gImluZGVudGF0aW9uIjogICI8YW55dGhpbmc+IgorICAgIC0gImVuYWJsZVlB
TUxDb21wYXRpYmlsaXR5IjogZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBzbGlnaHRseSBjaGFuZ2Ug
dGhlIHdoaXRlc3BhY2UgYXJvdW5kIGNvbG9ucworICAgIC0gImRyb3BOdWxsUGxhY2Vob2xkZXJz
IjogZmFsc2Ugb3IgdHJ1ZQorICAgICAgLSBEcm9wIHRoZSAibnVsbCIgc3RyaW5nIGZyb20gdGhl
IHdyaXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVlcy4KKyAgICAgICAgU3RyaWN0bHkgc3BlYWtp
bmcsIHRoaXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3aGVuIHRoZSBvdXRwdXQgaXMgYmVpbmcK
KyAgICAgICAgZmVkIHRvIGEgYnJvd3NlcidzIEphdmFzY3JpcHQsIGl0IG1ha2VzIGZvciBzbWFs
bGVyIG91dHB1dCBhbmQgdGhlCisgICAgICAgIGJyb3dzZXIgY2FuIGhhbmRsZSB0aGUgb3V0cHV0
IGp1c3QgZmluZS4KKyAgICAtICJ1c2VTcGVjaWFsRmxvYXRzIjogZmFsc2Ugb3IgdHJ1ZQorICAg
ICAgLSBJZiB0cnVlLCBvdXRwdXRzIG5vbi1maW5pdGUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGlu
IHRoZSBmb2xsb3dpbmcgd2F5OgorICAgICAgICBOYU4gdmFsdWVzIGFzICJOYU4iLCBwb3NpdGl2
ZSBpbmZpbml0eSBhcyAiSW5maW5pdHkiLCBhbmQgbmVnYXRpdmUgaW5maW5pdHkKKyAgICAgICAg
YXMgIi1JbmZpbml0eSIuCisKKyAgICBZb3UgY2FuIGV4YW1pbmUgJ3NldHRpbmdzX2AgeW91cnNl
bGYKKyAgICB0byBzZWUgdGhlIGRlZmF1bHRzLiBZb3UgY2FuIGFsc28gd3JpdGUgYW5kIHJlYWQg
dGhlbSBqdXN0IGxpa2UgYW55CisgICAgSlNPTiBWYWx1ZS4KKyAgICBcc2Egc2V0RGVmYXVsdHMo
KQorICAgICovCisgIEpzb246OlZhbHVlIHNldHRpbmdzXzsKKworICBTdHJlYW1Xcml0ZXJCdWls
ZGVyKCk7CisgIH5TdHJlYW1Xcml0ZXJCdWlsZGVyKCk7CisKKyAgLyoqCisgICAqIFx0aHJvdyBz
dGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoZS5nLiBpbnZhbGlkIHNldHRp
bmdzKQorICAgKi8KKyAgU3RyZWFtV3JpdGVyKiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdDsKKwor
ICAvKiogXHJldHVybiB0cnVlIGlmICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50
OworICAgKiAgIG90aGVyd2lzZSwgaW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcu
CisgICAqLworICBib29sIHZhbGlkYXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKKyAg
LyoqIEEgc2ltcGxlIHdheSB0byB1cGRhdGUgYSBzcGVjaWZpYyBzZXR0aW5nLgorICAgKi8KKyAg
VmFsdWUmIG9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KTsKKworICAvKiogQ2FsbGVkIGJ5IGN0
b3IsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0IHNldHRpbmdzXy4KKyAgICogXHByZSAn
c2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCisgICAqIFxyZW1hcmsg
RGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAgU3Ry
ZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRzCisgICAqLworICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0
cyhKc29uOjpWYWx1ZSogc2V0dGluZ3MpOworfTsKKworLyoqIFxicmllZiBBYnN0cmFjdCBjbGFz
cyBmb3Igd3JpdGVycy4KKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXIuIChBbmQgcmVh
bGx5LCB0aGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pCisgKi8KK2NsYXNzIEpTT05f
QVBJIFdyaXRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfldyaXRlcigpOworCisgIHZpcnR1YWwg
c3RkOjpzdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpID0gMDsKK307CisKKy8qKiBcYnJp
ZWYgT3V0cHV0cyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048
L2E+IGZvcm1hdAorICp3aXRob3V0IGZvcm1hdHRpbmcgKG5vdCBodW1hbiBmcmllbmRseSkuCisg
KgorICogVGhlIEpTT04gZG9jdW1lbnQgaXMgd3JpdHRlbiBpbiBhIHNpbmdsZSBsaW5lLiBJdCBp
cyBub3QgaW50ZW5kZWQgZm9yICdodW1hbicKKyAqY29uc3VtcHRpb24sCisgKiBidXQgbWF5IGJl
IHVzZWZ1bGwgdG8gc3VwcG9ydCBmZWF0dXJlIHN1Y2ggYXMgUlBDIHdoZXJlIGJhbmR3aXRoIGlz
IGxpbWl0ZWQuCisgKiBcc2EgUmVhZGVyLCBWYWx1ZQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVh
bVdyaXRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIEZhc3RXcml0ZXIgOiBwdWJsaWMg
V3JpdGVyIHsKKworcHVibGljOgorICBGYXN0V3JpdGVyKCk7CisgIH5GYXN0V3JpdGVyKCkge30K
KworICB2b2lkIGVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCk7CisKKyAgLyoqIFxicmllZiBEcm9w
IHRoZSAibnVsbCIgc3RyaW5nIGZyb20gdGhlIHdyaXRlcidzIG91dHB1dCBmb3IgbnVsbFZhbHVl
cy4KKyAgICogU3RyaWN0bHkgc3BlYWtpbmcsIHRoaXMgaXMgbm90IHZhbGlkIEpTT04uIEJ1dCB3
aGVuIHRoZSBvdXRwdXQgaXMgYmVpbmcKKyAgICogZmVkIHRvIGEgYnJvd3NlcidzIEphdmFzY3Jp
cHQsIGl0IG1ha2VzIGZvciBzbWFsbGVyIG91dHB1dCBhbmQgdGhlCisgICAqIGJyb3dzZXIgY2Fu
IGhhbmRsZSB0aGUgb3V0cHV0IGp1c3QgZmluZS4KKyAgICovCisgIHZvaWQgZHJvcE51bGxQbGFj
ZWhvbGRlcnMoKTsKKworICB2b2lkIG9taXRFbmRpbmdMaW5lRmVlZCgpOworCitwdWJsaWM6IC8v
IG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKKyAgc3RkOjpzdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUm
IHJvb3QpOworCitwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVl
KTsKKworICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIGJvb2wgeWFtbENvbXBhdGlibGl0eUVu
YWJsZWRfOworICBib29sIGRyb3BOdWxsUGxhY2Vob2xkZXJzXzsKKyAgYm9vbCBvbWl0RW5kaW5n
TGluZUZlZWRfOworfTsKKworLyoqIFxicmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJo
dHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQgaW4gYQorICpodW1hbiBmcmllbmRs
eSB3YXkuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFrIGFuZCBpbmRlbnQgYXJlIGFz
IGZvbGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmlu
dCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICogICAgIC0gaWYgbm90IGVtcHR5
IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHByaW50IG9uZSB2YWx1ZSBwZXIK
KyAqbGluZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHBy
aW50ICd9Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50
IFtdIHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkg
Y29udGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVl
CisgKnR5cGVzLAorICogICAgICAgYW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMs
IHRoZW4gcHJpbnQgdGhlIGFycmF5IG9uIGEgc2luZ2xlCisgKmxpbmUuCisgKiAgICAgLSBvdGhl
cndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGluZSwgb3IgdGhlIGFycmF5
IGNvbnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFycmF5LCB0aGVuIHByaW50
IG9uZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFsdWUgaGF2ZSBjb21tZW50cyB0
aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgorICojQ29tbWVudFBsYWNl
bWVudC4KKyAqCisgKiBcc2EgUmVhZGVyLCBWYWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICog
XGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRlckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJ
IFN0eWxlZFdyaXRlciA6IHB1YmxpYyBXcml0ZXIgeworcHVibGljOgorICBTdHlsZWRXcml0ZXIo
KTsKKyAgflN0eWxlZFdyaXRlcigpIHt9CisKK3B1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFdy
aXRlcgorICAvKiogXGJyaWVmIFNlcmlhbGl6ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93
d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdC4KKyAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8g
c2VyaWFsaXplLgorICAgKiBccmV0dXJuIFN0cmluZyBjb250YWluaW5nIHRoZSBKU09OIGRvY3Vt
ZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgcm9vdCB2YWx1ZS4KKyAgICovCisgIHN0ZDo6c3RyaW5n
IHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKKworcHJpdmF0ZToKKyAgdm9pZCB3cml0ZVZhbHVl
KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVl
JiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAg
dm9pZCBwdXNoVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUlu
ZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
OworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21t
ZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KTsKKyAgYm9vbCBoYXNDb21tZW50
Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgc3RhdGljIHN0ZDo6c3RyaW5nIG5vcm1h
bGl6ZUVPTChjb25zdCBzdGQ6OnN0cmluZyYgdGV4dCk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3Rv
cjxzdGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNf
OworICBzdGQ6OnN0cmluZyBkb2N1bWVudF87CisgIHN0ZDo6c3RyaW5nIGluZGVudFN0cmluZ187
CisgIGludCByaWdodE1hcmdpbl87CisgIGludCBpbmRlbnRTaXplXzsKKyAgYm9vbCBhZGRDaGls
ZFZhbHVlc187Cit9OworCisvKiogXGJyaWVmIFdyaXRlcyBhIFZhbHVlIGluIDxhIEhSRUY9Imh0
dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBhCisgaHVtYW4gZnJpZW5kbHkg
d2F5LAorICAgICB0byBhIHN0cmVhbSByYXRoZXIgdGhhbiB0byBhIHN0cmluZy4KKyAqCisgKiBU
aGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5kIGluZGVudCBhcmUgYXMgZm9sbG93OgorICogLSBP
YmplY3QgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IHt9IHdpdGhvdXQgaW5k
ZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiBub3QgZW1wdHkgdGhlIHByaW50ICd7Jywg
bGluZSBicmVhayAmIGluZGVudCwgcHJpbnQgb25lIHZhbHVlIHBlcgorIGxpbmUKKyAqICAgICAg
IGFuZCB0aGVuIHVuaW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCisgKiAtIEFy
cmF5IHZhbHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVu
dCBhbmQgbGluZSBicmVhaworICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVj
dCB2YWx1ZSwgZW1wdHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQorIHR5cGVzLAorICogICAg
ICAgYW5kIGFsbCB0aGUgdmFsdWVzIGZpdCBvbiBvbmUgbGluZXMsIHRoZW4gcHJpbnQgdGhlIGFy
cmF5IG9uIGEgc2luZ2xlCisgbGluZS4KKyAqICAgICAtIG90aGVyd2lzZSwgaXQgdGhlIHZhbHVl
cyBkbyBub3QgZml0IG9uIG9uZSBsaW5lLCBvciB0aGUgYXJyYXkgY29udGFpbnMKKyAqICAgICAg
IG9iamVjdCBvciBub24gZW1wdHkgYXJyYXksIHRoZW4gcHJpbnQgb25lIHZhbHVlIHBlciBsaW5l
LgorICoKKyAqIElmIHRoZSBWYWx1ZSBoYXZlIGNvbW1lbnRzIHRoZW4gdGhleSBhcmUgb3V0cHV0
ZWQgYWNjb3JkaW5nIHRvIHRoZWlyCisgI0NvbW1lbnRQbGFjZW1lbnQuCisgKgorICogXHBhcmFt
IGluZGVudGF0aW9uIEVhY2ggbGV2ZWwgd2lsbCBiZSBpbmRlbnRlZCBieSB0aGlzIGFtb3VudCBl
eHRyYS4KKyAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0Q29tbWVudCgpCisgKiBcZGVw
cmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgU3R5
bGVkU3RyZWFtV3JpdGVyIHsKK3B1YmxpYzoKKyAgU3R5bGVkU3RyZWFtV3JpdGVyKHN0ZDo6c3Ry
aW5nIGluZGVudGF0aW9uID0gIlx0Iik7CisgIH5TdHlsZWRTdHJlYW1Xcml0ZXIoKSB7fQorCitw
dWJsaWM6CisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDov
L3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0gb3V0IFN0cmVhbSB0
byB3cml0ZSB0by4gKENhbiBiZSBvc3RyaW5nc3RyZWFtLCBlLmcuKQorICAgKiBccGFyYW0gcm9v
dCBWYWx1ZSB0byBzZXJpYWxpemUuCisgICAqIFxub3RlIFRoZXJlIGlzIG5vIHBvaW50IGluIGRl
cml2aW5nIGZyb20gV3JpdGVyLCBzaW5jZSB3cml0ZSgpIHNob3VsZCBub3QKKyAgICogcmV0dXJu
IGEgdmFsdWUuCisgICAqLworICB2b2lkIHdyaXRlKHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBW
YWx1ZSYgcm9vdCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpOworICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBi
b29sIGlzTXVsdGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVl
KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9p
ZCB3cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCBpbmRl
bnQoKTsKKyAgdm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVl
KGNvbnN0IFZhbHVlJiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShjb25zdCBWYWx1ZSYgcm9vdCk7CisgIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0
IFZhbHVlJiB2YWx1ZSk7CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qg
c3RkOjpzdHJpbmcmIHRleHQpOworCisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+
IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgc3RkOjpvc3Ry
ZWFtKiBkb2N1bWVudF87CisgIHN0ZDo6c3RyaW5nIGluZGVudFN0cmluZ187CisgIGludCByaWdo
dE1hcmdpbl87CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0aW9uXzsKKyAgYm9vbCBhZGRDaGlsZFZh
bHVlc18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7Cit9OworCisjaWYgZGVmaW5lZChKU09O
X0hBU19JTlQ2NCkKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoSW50IHZhbHVl
KTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoVUludCB2YWx1ZSk7CisjZW5k
aWYgLy8gaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZh
bHVlVG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1
ZVRvU3RyaW5nKExhcmdlc3RVSW50IHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9TdHJpbmcoZG91YmxlIHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVlVG9TdHJp
bmcoYm9vbCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvUXVvdGVkU3RyaW5n
KGNvbnN0IGNoYXIqIHZhbHVlKTsKKworLy8vIFxicmllZiBPdXRwdXQgdXNpbmcgdGhlIFN0eWxl
ZFN0cmVhbVdyaXRlci4KKy8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oKQorSlNPTl9BUEkgc3Rk
Ojpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IFZhbHVlJiByb290KTsK
KworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExM
X0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBk
ZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKKyNlbmRpZiAv
LyBKU09OX1dSSVRFUl9IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBj
b250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi93cml0ZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
CisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2Yg
ZmlsZTogaW5jbHVkZS9qc29uL2Fzc2VydGlvbnMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBD
b3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisj
aWZuZGVmIENQUFRMX0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pT
T05fQVNTRVJUSU9OU19IX0lOQ0xVREVECisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRl
IDxzc3RyZWFtPgorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04p
CisKKy8qKiBJdCBzaG91bGQgbm90IGJlIHBvc3NpYmxlIGZvciBhIG1hbGljaW91c2x5IGRlc2ln
bmVkIGZpbGUgdG8KKyAqICBjYXVzZSBhbiBhYm9ydCgpIG9yIHNlZy1mYXVsdCwgc28gdGhlc2Ug
bWFjcm9zIGFyZSB1c2VkIG9ubHkKKyAqICBmb3IgcHJlLWNvbmRpdGlvbiB2aW9sYXRpb25zIGFu
ZCBpbnRlcm5hbCBsb2dpYyBlcnJvcnMuCisgKi8KKyNpZiBKU09OX1VTRV9FWENFUFRJT04KKwor
Ly8gQHRvZG8gPD0gYWRkIGRldGFpbCBhYm91dCBjb25kaXRpb24gaW4gZXhjZXB0aW9uCisjIGRl
ZmluZSBKU09OX0FTU0VSVChjb25kaXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICB7aWYgKCEoY29uZGl0aW9uKSkge0pzb246OnRocm93TG9n
aWNFcnJvciggImFzc2VydCBqc29uIGZhaWxlZCIgKTt9fQorCisjIGRlZmluZSBKU09OX0ZBSUxf
TUVTU0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3Nz
OyBvc3MgPDwgbWVzc2FnZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgSnNvbjo6dGhyb3dMb2dpY0Vycm9yKG9zcy5zdHIoKSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIGFib3J0KCk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCisj
ZWxzZSAvLyBKU09OX1VTRV9FWENFUFRJT04KKworIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0
aW9uKSBhc3NlcnQoY29uZGl0aW9uKQorCisvLyBUaGUgY2FsbCB0byBhc3NlcnQoKSB3aWxsIHNo
b3cgdGhlIGZhaWx1cmUgbWVzc2FnZSBpbiBkZWJ1ZyBidWlsZHMuIEluCisvLyByZWxlYXNlIGJ1
aWxkcyB3ZSBhYm9ydCwgZm9yIGEgY29yZS1kdW1wIG9yIGRlYnVnZ2VyLgorIyBkZWZpbmUgSlNP
Tl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RkOjpvc3RyaW5nc3Ry
ZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIGFzc2VydChmYWxzZSAmJiBvc3Muc3RyKCkuY19zdHIoKSk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhYm9ydCgpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
IH0KKworCisjZW5kaWYKKworI2RlZmluZSBKU09OX0FTU0VSVF9NRVNTQUdFKGNvbmRpdGlvbiwg
bWVzc2FnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgaWYgKCEoY29uZGl0
aW9uKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKyNlbmRpZiAvLyBDUFBU
TF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQg
b2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisKKworCisKKworI2VuZGlmIC8vaWZuZGVmIEpTT05fQU1BTEdBVEVEX0hfSU5DTFVE
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbmNwcC5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
MzI4NzMyN2MwZDY2MzIxNTA1ZWFkMmQyZWU0NjdlNzM5ZjE1ZTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwCkBAIC0wLDAgKzEsNTI2
NiBAQAorLy8vIEpzb24tY3BwIGFtYWxnYXRlZCBzb3VyY2UgKGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC8pLgorLy8vIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVk
ZSAianNvbi9qc29uLmgiCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250
ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLyoKK1RoZSBKc29uQ3Bw
IGxpYnJhcnkncyBzb3VyY2UgY29kZSwgaW5jbHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0
aW9uLCAKK3Rlc3RzIGFuZCBkZW1vbnN0cmF0aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2Vk
IHVuZGVyIHRoZSBmb2xsb3dpbmcKK2NvbmRpdGlvbnMuLi4KKworVGhlIGF1dGhvciAoQmFwdGlz
dGUgTGVwaWxsZXVyKSBleHBsaWNpdGx5IGRpc2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAoranVy
aXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgc3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVy
aXNkaWN0aW9ucywgCit0aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBE
b21haW4uCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMg
RG9tYWluIHByb3BlcnR5IChlLmcuIEdlcm1hbnkgYXMgb2YKKzIwMTApLCB0aGlzIHNvZnR3YXJl
IGlzIENvcHlyaWdodCAoYykgMjAwNy0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlz
CityZWxlYXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cp
LgorCitJbiBqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3Bl
cnR5LCB0aGUgdXNlciBvZiB0aGlzIAorc29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQg
ZWl0aGVyIGFzIDEpIFB1YmxpYyBEb21haW4sIDIpIHVuZGVyIHRoZSAKK2NvbmRpdGlvbnMgb2Yg
dGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVh
bCAKK1B1YmxpYyBEb21haW4vTUlUIExpY2Vuc2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwg
YXMgdGhleSBjaG9vc2UuCisKK1RoZSBNSVQgTGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQ
dWJsaWMgRG9tYWluIGFzIGEgbGljZW5zZSBjYW4gZ2V0LCBhbmQgaXMKK2Rlc2NyaWJlZCBpbiBj
bGVhciwgY29uY2lzZSB0ZXJtcyBhdDoKKworICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9NSVRfTGljZW5zZQorICAgCitUaGUgZnVsbCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xs
b3dzOgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3Rl
IExlcGlsbGV1cgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbgorb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwg
aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAorbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCitvZiB0aGUgU29m
dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKwor
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUKK2luY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKK0JFIExJQUJMRSBG
T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgor
QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQg
T0YgT1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisoRU5EIExJQ0VO
U0UgVEVYVCkKKworVGhlIE1JVCBsaWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBH
UEwgYW5kIGNvbW1lcmNpYWwKK3NvZnR3YXJlLCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmln
aHRzIG9mIFB1YmxpYyBEb21haW4gd2l0aCB0aGUKK21pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJl
cXVpcmVkIHRvIGtlZXAgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UKK2FuZCBsaWNlbnNlIHRl
eHQgaW4gdGhlIHNvdXJjZSBjb2RlLiBOb3RlIGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCitQ
dWJsaWMgRG9tYWluICJsaWNlbnNlIiB5b3UgY2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5n
IHdoYXRldmVyCitsaWNlbnNlIHlvdSBsaWtlLgorCisqLworCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKwor
CisKKworCisjaW5jbHVkZSAianNvbi9qc29uLmgiCisKKyNpZm5kZWYgSlNPTl9JU19BTUFMR0FN
QVRJT04KKyNlcnJvciAiQ29tcGlsZSB3aXRoIC1JIFBBVEhfVE9fSlNPTl9ESVJFQ1RPUlkiCisj
ZW5kaWYKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBm
aWxlOiBzcmMvbGliX2pzb24vanNvbl90b29sLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29w
eXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lm
bmRlZiBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorI2RlZmluZSBMSUJfSlNPTkNQ
UF9KU09OX1RPT0xfSF9JTkNMVURFRAorCisvKiBUaGlzIGhlYWRlciBwcm92aWRlcyBjb21tb24g
c3RyaW5nIG1hbmlwdWxhdGlvbiBzdXBwb3J0LCBzdWNoIGFzIFVURi04LAorICogcG9ydGFibGUg
Y29udmVyc2lvbiBmcm9tL3RvIHN0cmluZy4uLgorICoKKyAqIEl0IGlzIGFuIGludGVybmFsIGhl
YWRlciB0aGF0IG11c3Qgbm90IGJlIGV4cG9zZWQuCisgKi8KKworbmFtZXNwYWNlIEpzb24gewor
CisvLy8gQ29udmVydHMgYSB1bmljb2RlIGNvZGUtcG9pbnQgdG8gVVRGLTguCitzdGF0aWMgaW5s
aW5lIHN0ZDo6c3RyaW5nIGNvZGVQb2ludFRvVVRGOCh1bnNpZ25lZCBpbnQgY3ApIHsKKyAgc3Rk
OjpzdHJpbmcgcmVzdWx0OworCisgIC8vIGJhc2VkIG9uIGRlc2NyaXB0aW9uIGZyb20gaHR0cDov
L2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOAorCisgIGlmIChjcCA8PSAweDdmKSB7CisgICAg
cmVzdWx0LnJlc2l6ZSgxKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPihjcCk7
CisgIH0gZWxzZSBpZiAoY3AgPD0gMHg3RkYpIHsKKyAgICByZXN1bHQucmVzaXplKDIpOworICAg
IHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIGNwKSk7CisgICAg
cmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhDMCB8ICgweDFmICYgKGNwID4+IDYpKSk7
CisgIH0gZWxzZSBpZiAoY3AgPD0gMHhGRkZGKSB7CisgICAgcmVzdWx0LnJlc2l6ZSgzKTsKKyAg
ICByZXN1bHRbMl0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiBjcCkpOworICAg
IHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIChjcCA+PiA2KSkp
OworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4RTAgfCAoMHhmICYgKGNwID4+
IDEyKSkpOworICB9IGVsc2UgaWYgKGNwIDw9IDB4MTBGRkZGKSB7CisgICAgcmVzdWx0LnJlc2l6
ZSg0KTsKKyAgICByZXN1bHRbM10gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiBj
cCkpOworICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgzZiAmIChj
cCA+PiA2KSkpOworICAgIHJlc3VsdFsxXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgz
ZiAmIChjcCA+PiAxMikpKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigweEYw
IHwgKDB4NyAmIChjcCA+PiAxOCkpKTsKKyAgfQorCisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8v
LyBSZXR1cm5zIHRydWUgaWYgY2ggaXMgYSBjb250cm9sIGNoYXJhY3RlciAoaW4gcmFuZ2UgWzEs
MzFdKS4KK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRyb2xDaGFyYWN0ZXIoY2hhciBjaCkgeyBy
ZXR1cm4gY2ggPiAwICYmIGNoIDw9IDB4MUY7IH0KKworZW51bSB7CisgIC8vLyBDb25zdGFudCB0
aGF0IHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0IG11c3QgYmUgcGFzc2VkIHRv
CisgIC8vLyB1aW50VG9TdHJpbmcuCisgIHVpbnRUb1N0cmluZ0J1ZmZlclNpemUgPSAzICogc2l6
ZW9mKExhcmdlc3RVSW50KSArIDEKK307CisKKy8vIERlZmluZXMgYSBjaGFyIGJ1ZmZlciBmb3Ig
dXNlIHdpdGggdWludFRvU3RyaW5nKCkuCit0eXBlZGVmIGNoYXIgVUludFRvU3RyaW5nQnVmZmVy
W3VpbnRUb1N0cmluZ0J1ZmZlclNpemVdOworCisvKiogQ29udmVydHMgYW4gdW5zaWduZWQgaW50
ZWdlciB0byBzdHJpbmcuCisgKiBAcGFyYW0gdmFsdWUgVW5zaWduZWQgaW50ZXJnZXIgdG8gY29u
dmVydCB0byBzdHJpbmcKKyAqIEBwYXJhbSBjdXJyZW50IElucHV0L091dHB1dCBzdHJpbmcgYnVm
ZmVyLgorICogICAgICAgIE11c3QgaGF2ZSBhdCBsZWFzdCB1aW50VG9TdHJpbmdCdWZmZXJTaXpl
IGNoYXJzIGZyZWUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB1aW50VG9TdHJpbmcoTGFyZ2Vz
dFVJbnQgdmFsdWUsIGNoYXIqJiBjdXJyZW50KSB7CisgICotLWN1cnJlbnQgPSAwOworICBkbyB7
CisgICAgKi0tY3VycmVudCA9IHN0YXRpY19jYXN0PHNpZ25lZCBjaGFyPih2YWx1ZSAlIDEwVSAr
IHN0YXRpY19jYXN0PHVuc2lnbmVkPignMCcpKTsKKyAgICB2YWx1ZSAvPSAxMDsKKyAgfSB3aGls
ZSAodmFsdWUgIT0gMCk7Cit9CisKKy8qKiBDaGFuZ2UgJywnIHRvICcuJyBldmVyeXdoZXJlIGlu
IGJ1ZmZlci4KKyAqCisgKiBXZSBoYWQgYSBzb3BoaXN0aWNhdGVkIHdheSwgYnV0IGl0IGRpZCBu
b3Qgd29yayBpbiBXaW5DRS4KKyAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNl
LXBhcnNlcnMvanNvbmNwcC9wdWxsLzkKKyAqLworc3RhdGljIGlubGluZSB2b2lkIGZpeE51bWVy
aWNMb2NhbGUoY2hhciogYmVnaW4sIGNoYXIqIGVuZCkgeworICB3aGlsZSAoYmVnaW4gPCBlbmQp
IHsKKyAgICBpZiAoKmJlZ2luID09ICcsJykgeworICAgICAgKmJlZ2luID0gJy4nOworICAgIH0K
KyAgICArK2JlZ2luOworICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIEpzb24geworCisjZW5kaWYg
Ly8gTElCX0pTT05DUFBfSlNPTl9UT09MX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
Ly8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdG9vbC5oCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcg
b2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTEgQmFwdGlzdGUgTGVwaWxsZXVyCisv
LyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNp
cmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxl
IExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdl
Lm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNs
dWRlIDxqc29uL2Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxqc29uL3JlYWRlci5oPgorI2luY2x1
ZGUgPGpzb24vdmFsdWUuaD4KKyNpbmNsdWRlICJqc29uX3Rvb2wuaCIKKyNlbmRpZiAvLyBpZiAh
ZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1
ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5j
bHVkZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8bGltaXRzPgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikK
KyNpZiAhZGVmaW5lZChXSU5DRSkgJiYgZGVmaW5lZChfX1NURENfU0VDVVJFX0xJQl9fKSAmJiBf
TVNDX1ZFUiA+PSAxNTAwIC8vIFZDKysgOS4wIGFuZCBhYm92ZSAKKyNkZWZpbmUgc25wcmludGYg
c3ByaW50Zl9zCisjZWxpZiBfTVNDX1ZFUiA+PSAxOTAwIC8vIFZDKysgMTQuMCBhbmQgYWJvdmUK
KyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2Vsc2UKKyNkZWZpbmUgc25wcmludGYg
X3NucHJpbnRmCisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX19BTkRST0lEX18pIHx8IGRlZmluZWQo
X19RTlhOVE9fXykKKyNkZWZpbmUgc25wcmludGYgc25wcmludGYKKyNlbGlmIF9fY3BsdXNwbHVz
ID49IDIwMTEwM0wKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2VuZGlmCisKKyNp
ZiBkZWZpbmVkKF9fUU5YTlRPX18pCisjZGVmaW5lIHNzY2FuZiBzdGQ6OnNzY2FuZgorI2VuZGlm
CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNDAwIC8vIFZDKysgOC4w
CisvLyBEaXNhYmxlIHdhcm5pbmcgYWJvdXQgc3RyZHVwIGJlaW5nIGRlcHJlY2F0ZWQuCisjcHJh
Z21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ5OTYpCisjZW5kaWYKKworc3RhdGljIGludCBjb25zdCBz
dGFja0xpbWl0X2cgPSAxMDAwOworc3RhdGljIGludCAgICAgICBzdGFja0RlcHRoX2cgPSAwOyAg
Ly8gc2VlIHJlYWRWYWx1ZSgpCisKK25hbWVzcGFjZSBKc29uIHsKKworI2lmIF9fY3BsdXNwbHVz
ID49IDIwMTEwM0wgfHwgKGRlZmluZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49IDUy
MCkKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENoYXJSZWFkZXI+IENoYXJSZWFkZXJQdHI7Cisj
ZWxzZQordHlwZWRlZiBzdGQ6OmF1dG9fcHRyPENoYXJSZWFkZXI+ICAgQ2hhclJlYWRlclB0cjsK
KyNlbmRpZgorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBGZWF0dXJlcworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworRmVhdHVyZXM6OkZlYXR1cmVzKCkKKyAgICA6
IGFsbG93Q29tbWVudHNfKHRydWUpLCBzdHJpY3RSb290XyhmYWxzZSksCisgICAgICBhbGxvd0Ry
b3BwZWROdWxsUGxhY2Vob2xkZXJzXyhmYWxzZSksIGFsbG93TnVtZXJpY0tleXNfKGZhbHNlKSB7
fQorCitGZWF0dXJlcyBGZWF0dXJlczo6YWxsKCkgeyByZXR1cm4gRmVhdHVyZXMoKTsgfQorCitG
ZWF0dXJlcyBGZWF0dXJlczo6c3RyaWN0TW9kZSgpIHsKKyAgRmVhdHVyZXMgZmVhdHVyZXM7Cisg
IGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0gZmFsc2U7CisgIGZlYXR1cmVzLnN0cmljdFJvb3Rf
ID0gdHJ1ZTsKKyAgZmVhdHVyZXMuYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18gPSBmYWxz
ZTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBmYWxzZTsKKyAgcmV0dXJuIGZlYXR1
cmVzOworfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK3N0YXRpYyBib29sIGNvbnRhaW5zTmV3TGluZShS
ZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9uIGVuZCkgeworICBmb3IgKDsg
YmVnaW4gPCBlbmQ7ICsrYmVnaW4pCisgICAgaWYgKCpiZWdpbiA9PSAnXG4nIHx8ICpiZWdpbiA9
PSAnXHInKQorICAgICAgcmV0dXJuIHRydWU7CisgIHJldHVybiBmYWxzZTsKK30KKworLy8gQ2xh
c3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworUmVhZGVyOjpSZWFkZXIoKQorICAgIDogZXJyb3Jz
XygpLCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVl
RW5kXygpLAorICAgICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwgZmVhdHVyZXNf
KEZlYXR1cmVzOjphbGwoKSksCisgICAgICBjb2xsZWN0Q29tbWVudHNfKCkge30KKworUmVhZGVy
OjpSZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKQorICAgIDogZXJyb3JzXygpLCBkb2N1
bWVudF8oKSwgYmVnaW5fKCksIGVuZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAor
ICAgICAgbGFzdFZhbHVlXygpLCBjb21tZW50c0JlZm9yZV8oKSwgZmVhdHVyZXNfKGZlYXR1cmVz
KSwgY29sbGVjdENvbW1lbnRzXygpIHsKK30KKworYm9vbAorUmVhZGVyOjpwYXJzZShjb25zdCBz
dGQ6OnN0cmluZyYgZG9jdW1lbnQsIFZhbHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cykg
eworICBkb2N1bWVudF8gPSBkb2N1bWVudDsKKyAgY29uc3QgY2hhciogYmVnaW4gPSBkb2N1bWVu
dF8uY19zdHIoKTsKKyAgY29uc3QgY2hhciogZW5kID0gYmVnaW4gKyBkb2N1bWVudF8ubGVuZ3Ro
KCk7CisgIHJldHVybiBwYXJzZShiZWdpbiwgZW5kLCByb290LCBjb2xsZWN0Q29tbWVudHMpOwor
fQorCitib29sIFJlYWRlcjo6cGFyc2Uoc3RkOjppc3RyZWFtJiBzaW4sIFZhbHVlJiByb290LCBi
b29sIGNvbGxlY3RDb21tZW50cykgeworICAvLyBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hhcj4g
YmVnaW4oc2luKTsKKyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGVuZDsKKyAgLy8g
VGhvc2Ugd291bGQgYWxsb3cgc3RyZWFtZWQgaW5wdXQgZnJvbSBhIGZpbGUsIGlmIHBhcnNlKCkg
d2VyZSBhCisgIC8vIHRlbXBsYXRlIGZ1bmN0aW9uLgorCisgIC8vIFNpbmNlIHN0ZDo6c3RyaW5n
IGlzIHJlZmVyZW5jZS1jb3VudGVkLCB0aGlzIGF0IGxlYXN0IGRvZXMgbm90CisgIC8vIGNyZWF0
ZSBhbiBleHRyYSBjb3B5LgorICBzdGQ6OnN0cmluZyBkb2M7CisgIHN0ZDo6Z2V0bGluZShzaW4s
IGRvYywgKGNoYXIpRU9GKTsKKyAgcmV0dXJuIHBhcnNlKGRvYywgcm9vdCwgY29sbGVjdENvbW1l
bnRzKTsKK30KKworYm9vbCBSZWFkZXI6OnBhcnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICAgICAgICBW
YWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cykgewor
ICBpZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGNvbGxlY3RDb21tZW50cyA9
IGZhbHNlOworICB9CisKKyAgYmVnaW5fID0gYmVnaW5Eb2M7CisgIGVuZF8gPSBlbmREb2M7Cisg
IGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0Q29tbWVudHM7CisgIGN1cnJlbnRfID0gYmVnaW5f
OworICBsYXN0VmFsdWVFbmRfID0gMDsKKyAgbGFzdFZhbHVlXyA9IDA7CisgIGNvbW1lbnRzQmVm
b3JlXyA9ICIiOworICBlcnJvcnNfLmNsZWFyKCk7CisgIHdoaWxlICghbm9kZXNfLmVtcHR5KCkp
CisgICAgbm9kZXNfLnBvcCgpOworICBub2Rlc18ucHVzaCgmcm9vdCk7CisKKyAgc3RhY2tEZXB0
aF9nID0gMDsgIC8vIFllcywgdGhpcyBpcyBiYWQgY29kaW5nLCBidXQgb3B0aW9ucyBhcmUgbGlt
aXRlZC4KKyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7CisgIFRva2VuIHRva2VuOwor
ICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFj
b21tZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENvbW1lbnQoY29tbWVudHNCZWZv
cmVfLCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0cmljdFJvb3RfKSB7CisgICAg
aWYgKCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgpKSB7CisgICAgICAvLyBTZXQg
ZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNob3VsZCBiZSBmaXJzdCB0
b2tlbiBmb3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuRXJy
b3I7CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAgICAgIHRva2VuLmVuZF8gPSBl
bmREb2M7CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2YWxpZCBKU09OIGRvY3VtZW50
IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAorICAgICAgICAg
IHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHN1Y2Nl
c3NmdWw7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkVmFsdWUoKSB7CisgIC8vIFRoaXMgaXMgYSBu
b24tcmVlbnRyYW50IHdheSB0byBzdXBwb3J0IGEgc3RhY2tMaW1pdC4gVGVycmlibGUhCisgIC8v
IEJ1dCB0aGlzIGRlcHJlY2F0ZWQgY2xhc3MgaGFzIGEgc2VjdXJpdHkgcHJvYmxlbTogQmFkIGlu
cHV0IGNhbgorICAvLyBjYXVzZSBhIHNlZy1mYXVsdC4gVGhpcyBzZWVtcyBsaWtlIGEgZmFpciwg
YmluYXJ5LWNvbXBhdGlibGUgd2F5CisgIC8vIHRvIHByZXZlbnQgdGhlIHByb2JsZW0uCisgIGlm
IChzdGFja0RlcHRoX2cgPj0gc3RhY2tMaW1pdF9nKSB0aHJvd1J1bnRpbWVFcnJvcigiRXhjZWVk
ZWQgc3RhY2tMaW1pdCBpbiByZWFkVmFsdWUoKS4iKTsKKyAgKytzdGFja0RlcHRoX2c7CisKKyAg
VG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgYm9vbCBzdWNjZXNz
ZnVsID0gdHJ1ZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVf
LmVtcHR5KCkpIHsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3Jl
XywgY29tbWVudEJlZm9yZSk7CisgICAgY29tbWVudHNCZWZvcmVfID0gIiI7CisgIH0KKworICBz
d2l0Y2ggKHRva2VuLnR5cGVfKSB7CisgIGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKKyAgICBzdWNj
ZXNzZnVsID0gcmVhZE9iamVjdCh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQoY3VycmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuQXJyYXlC
ZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZEFycmF5KHRva2VuKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNh
c2UgdG9rZW5OdW1iZXI6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZU51bWJlcih0b2tlbik7Cisg
ICAgYnJlYWs7CisgIGNhc2UgdG9rZW5TdHJpbmc6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0
cmluZyh0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5UcnVlOgorICAgIHsKKyAgICBW
YWx1ZSB2KHRydWUpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAg
Y3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAg
fQorICAgIGJyZWFrOworICBjYXNlIHRva2VuRmFsc2U6CisgICAgeworICAgIFZhbHVlIHYoZmFs
c2UpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZh
bHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJy
ZWFrOworICBjYXNlIHRva2VuTnVsbDoKKyAgICB7CisgICAgVmFsdWUgdjsKKyAgICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFy
dCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExp
bWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tl
bkFycmF5U2VwYXJhdG9yOgorICBjYXNlIHRva2VuT2JqZWN0RW5kOgorICBjYXNlIHRva2VuQXJy
YXlFbmQ6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykg
eworICAgICAgLy8gIlVuLXJlYWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJy
ZW50IHZhbHVlIGFzIGEgbnVsbAorICAgICAgLy8gdG9rZW4uCisgICAgICBjdXJyZW50Xy0tOwor
ICAgICAgVmFsdWUgdjsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsK
KyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsK
KyAgICAgIGJyZWFrOworICAgIH0gLy8gRWxzZSwgZmFsbCB0aHJvdWdoLi4uCisgIGRlZmF1bHQ6
CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5f
KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5f
KTsKKyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBh
cnJheSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAoY29sbGVjdENvbW1lbnRzXykg
eworICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBsYXN0VmFsdWVfID0gJmN1cnJl
bnRWYWx1ZSgpOworICB9CisKKyAgLS1zdGFja0RlcHRoX2c7CisgIHJldHVybiBzdWNjZXNzZnVs
OworfQorCit2b2lkIFJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7Cisg
IGlmIChmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKKyAgICBkbyB7CisgICAgICByZWFkVG9r
ZW4odG9rZW4pOworICAgIH0gd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7Cisg
IH0gZWxzZSB7CisgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgfQorfQorCitib29sIFJlYWRlcjo6
cmVhZFRva2VuKFRva2VuJiB0b2tlbikgeworICBza2lwU3BhY2VzKCk7CisgIHRva2VuLnN0YXJ0
XyA9IGN1cnJlbnRfOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIG9rID0gdHJ1
ZTsKKyAgc3dpdGNoIChjKSB7CisgIGNhc2UgJ3snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5P
YmplY3RCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnfSc6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbk9iamVjdEVuZDsKKyAgICBicmVhazsKKyAgY2FzZSAnWyc6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlbkFycmF5QmVnaW47CisgICAgYnJlYWs7CisgIGNhc2UgJ10nOgorICAgIHRva2VuLnR5
cGVfID0gdG9rZW5BcnJheUVuZDsKKyAgICBicmVhazsKKyAgY2FzZSAnIic6CisgICAgdG9rZW4u
dHlwZV8gPSB0b2tlblN0cmluZzsKKyAgICBvayA9IHJlYWRTdHJpbmcoKTsKKyAgICBicmVhazsK
KyAgY2FzZSAnLyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkNvbW1lbnQ7CisgICAgb2sgPSBy
ZWFkQ29tbWVudCgpOworICAgIGJyZWFrOworICBjYXNlICcwJzoKKyAgY2FzZSAnMSc6CisgIGNh
c2UgJzInOgorICBjYXNlICczJzoKKyAgY2FzZSAnNCc6CisgIGNhc2UgJzUnOgorICBjYXNlICc2
JzoKKyAgY2FzZSAnNyc6CisgIGNhc2UgJzgnOgorICBjYXNlICc5JzoKKyAgY2FzZSAnLSc6Cisg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICByZWFkTnVtYmVyKCk7CisgICAgYnJl
YWs7CisgIGNhc2UgJ3QnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5UcnVlOworICAgIG9rID0g
bWF0Y2goInJ1ZSIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdmJzoKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuRmFsc2U7CisgICAgb2sgPSBtYXRjaCgiYWxzZSIsIDQpOworICAgIGJyZWFrOwor
ICBjYXNlICduJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVsbDsKKyAgICBvayA9IG1hdGNo
KCJ1bGwiLCAzKTsKKyAgICBicmVhazsKKyAgY2FzZSAnLCc6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbkFycmF5U2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlICc6JzoKKyAgICB0b2tlbi50
eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlIDA6CisgICAg
dG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOworICAgIGJyZWFrOworICBkZWZhdWx0Ogor
ICAgIG9rID0gZmFsc2U7CisgICAgYnJlYWs7CisgIH0KKyAgaWYgKCFvaykKKyAgICB0b2tlbi50
eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKKyAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgUmVhZGVyOjpza2lwU3BhY2VzKCkgeworICB3aGlsZSAoY3VycmVudF8g
IT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50XzsKKyAgICBpZiAoYyA9PSAnICcgfHwg
YyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcbicpCisgICAgICArK2N1cnJlbnRfOwor
ICAgIGVsc2UKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Jvb2wgUmVhZGVyOjptYXRjaChMb2Nh
dGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCkgeworICBpZiAoZW5kXyAtIGN1cnJlbnRf
IDwgcGF0dGVybkxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIGludCBpbmRleCA9IHBhdHRl
cm5MZW5ndGg7CisgIHdoaWxlIChpbmRleC0tKQorICAgIGlmIChjdXJyZW50X1tpbmRleF0gIT0g
cGF0dGVybltpbmRleF0pCisgICAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRfICs9IHBhdHRl
cm5MZW5ndGg7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6cmVhZENvbW1lbnQo
KSB7CisgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRfIC0gMTsKKyAgQ2hhciBjID0g
Z2V0TmV4dENoYXIoKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gZmFsc2U7CisgIGlmIChjID09ICcq
JykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgZWxzZSBpZiAoYyA9
PSAnLycpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgaWYgKCFz
dWNjZXNzZnVsKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoY29sbGVjdENvbW1lbnRzXykg
eworICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29tbWVudEJlZm9yZTsKKyAgICBp
ZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFpbnNOZXdMaW5lKGxhc3RWYWx1ZUVuZF8sIGNvbW1l
bnRCZWdpbikpIHsKKyAgICAgIGlmIChjICE9ICcqJyB8fCAhY29udGFpbnNOZXdMaW5lKGNvbW1l
bnRCZWdpbiwgY3VycmVudF8pKQorICAgICAgICBwbGFjZW1lbnQgPSBjb21tZW50QWZ0ZXJPblNh
bWVMaW5lOworICAgIH0KKworICAgIGFkZENvbW1lbnQoY29tbWVudEJlZ2luLCBjdXJyZW50Xywg
cGxhY2VtZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHN0ZDo6c3RyaW5n
IG5vcm1hbGl6ZUVPTChSZWFkZXI6OkxvY2F0aW9uIGJlZ2luLCBSZWFkZXI6OkxvY2F0aW9uIGVu
ZCkgeworICBzdGQ6OnN0cmluZyBub3JtYWxpemVkOworICBub3JtYWxpemVkLnJlc2VydmUoZW5k
IC0gYmVnaW4pOworICBSZWFkZXI6OkxvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbjsKKyAgd2hpbGUg
KGN1cnJlbnQgIT0gZW5kKSB7CisgICAgY2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9
PSAnXHInKSB7CisgICAgICBpZiAoY3VycmVudCAhPSBlbmQgJiYgKmN1cnJlbnQgPT0gJ1xuJykK
KyAgICAgICAgIC8vIGNvbnZlcnQgZG9zIEVPTAorICAgICAgICAgKytjdXJyZW50OworICAgICAg
Ly8gY29udmVydCBNYWMgRU9MCisgICAgICBub3JtYWxpemVkICs9ICdcbic7CisgICAgfSBlbHNl
IHsKKyAgICAgIG5vcm1hbGl6ZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG5vcm1hbGl6
ZWQ7Cit9CisKK3ZvaWQKK1JlYWRlcjo6YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRp
b24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENv
bW1lbnRzXyk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9M
KGJlZ2luLCBlbmQpOworICBpZiAocGxhY2VtZW50ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUp
IHsKKyAgICBhc3NlcnQobGFzdFZhbHVlXyAhPSAwKTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21t
ZW50KG5vcm1hbGl6ZWQsIHBsYWNlbWVudCk7CisgIH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZv
cmVfICs9IG5vcm1hbGl6ZWQ7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRDU3R5bGVDb21t
ZW50KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5l
eHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJyonICYmICpjdXJyZW50XyA9PSAnLycpCisgICAgICBi
cmVhazsKKyAgfQorICByZXR1cm4gZ2V0TmV4dENoYXIoKSA9PSAnLyc7Cit9CisKK2Jvb2wgUmVh
ZGVyOjpyZWFkQ3BwU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykg
eworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xuJykKKyAgICAg
IGJyZWFrOworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4g
SXQgd2lsbCBiZSBub3JtYWxpemVkIGluIGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8g
IT0gZW5kXyAmJiAqY3VycmVudF8gPT0gJ1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAg
ICAgIC8vIEJyZWFrIG9uIE1vYyBPUyA5IEVPTC4KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQor
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZWFkZXI6OnJlYWROdW1iZXIoKSB7CisgIGNvbnN0
IGNoYXIgKnAgPSBjdXJyZW50XzsKKyAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBhbHJl
YWR5IGNvbnN1bWVkIGNoYXJhY3RlcgorICAvLyBpbnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChjID49
ICcwJyAmJiBjIDw9ICc5JykKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6
IDA7CisgIC8vIGZyYWN0aW9uYWwgcGFydAorICBpZiAoYyA9PSAnLicpIHsKKyAgICBjID0gKGN1
cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMg
PD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICB9
CisgIC8vIGV4cG9uZW50aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7Cisg
ICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAgIGlmIChjID09ICcr
JyB8fCBjID09ICctJykKKyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDog
MDsKKyAgICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRf
ID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRTdHJp
bmcoKSB7CisgIENoYXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAg
YyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykKKyAgICAgIGdldE5leHRDaGFy
KCk7CisgICAgZWxzZSBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4g
YyA9PSAnIic7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkT2JqZWN0KFRva2VuJiB0b2tlblN0YXJ0
KSB7CisgIFRva2VuIHRva2VuTmFtZTsKKyAgc3RkOjpzdHJpbmcgbmFtZTsKKyAgVmFsdWUgaW5p
dChvYmplY3RWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7
CisgIHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgeworICAgIGJvb2wgaW5pdGlhbFRva2Vu
T2sgPSB0cnVlOworICAgIHdoaWxlICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50ICYm
IGluaXRpYWxUb2tlbk9rKQorICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4odG9rZW5O
YW1lKTsKKyAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQorICAgICAgYnJlYWs7CisgICAgaWYgKHRv
a2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVtcHR5
IG9iamVjdAorICAgICAgcmV0dXJuIHRydWU7CisgICAgbmFtZSA9ICIiOworICAgIGlmICh0b2tl
bk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5nKHRv
a2VuTmFtZSwgbmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2Jq
ZWN0RW5kKTsKKyAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJlciAm
JiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5hbWU7
CisgICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAgICAg
ICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1lID0g
bnVtYmVyTmFtZS5hc1N0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBUb2tlbiBjb2xvbjsKKyAgICBpZiAoIXJlYWRUb2tlbihjb2xvbikgfHwgY29sb24u
dHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFu
ZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJzonIGFmdGVyIG9iamVjdCBtZW1iZXIgbmFt
ZSIsIGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIFZhbHVlJiB2YWx1ZSA9IGN1
cnJlbnRWYWx1ZSgpW25hbWVdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBv
ayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJv
ciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RF
bmQpOworCisgICAgVG9rZW4gY29tbWE7CisgICAgaWYgKCFyZWFkVG9rZW4oY29tbWEpIHx8Cisg
ICAgICAgIChjb21tYS50eXBlXyAhPSB0b2tlbk9iamVjdEVuZCAmJiBjb21tYS50eXBlXyAhPSB0
b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAgICBjb21tYS50eXBlXyAhPSB0b2tlbkNvbW1l
bnQpKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJNaXNz
aW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uIiwgY29tbWEsIHRva2VuT2JqZWN0
RW5kKTsKKyAgICB9CisgICAgYm9vbCBmaW5hbGl6ZVRva2VuT2sgPSB0cnVlOworICAgIHdoaWxl
IChjb21tYS50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgZmluYWxpemVUb2tlbk9rKQorICAgICAg
ZmluYWxpemVUb2tlbk9rID0gcmVhZFRva2VuKGNvbW1hKTsKKyAgICBpZiAoY29tbWEudHlwZV8g
PT0gdG9rZW5PYmplY3RFbmQpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gYWRk
RXJyb3JBbmRSZWNvdmVyKAorICAgICAgIk1pc3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFt
ZSIsIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOworfQorCitib29sIFJlYWRlcjo6cmVhZEFy
cmF5KFRva2VuJiB0b2tlblN0YXJ0KSB7CisgIFZhbHVlIGluaXQoYXJyYXlWYWx1ZSk7CisgIGN1
cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2luXyk7CisgIHNraXBTcGFjZXMoKTsKKyAg
aWYgKCpjdXJyZW50XyA9PSAnXScpIC8vIGVtcHR5IGFycmF5CisgIHsKKyAgICBUb2tlbiBlbmRB
cnJheTsKKyAgICByZWFkVG9rZW4oZW5kQXJyYXkpOworICAgIHJldHVybiB0cnVlOworICB9Cisg
IGludCBpbmRleCA9IDA7CisgIGZvciAoOzspIHsKKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50
VmFsdWUoKVtpbmRleCsrXTsKKyAgICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sg
PSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3Ig
YWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuQXJyYXlFbmQp
OworCisgICAgVG9rZW4gdG9rZW47CisgICAgLy8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBp
dGVtIGluIHRoZSBhcnJheS4KKyAgICBvayA9IHJlYWRUb2tlbih0b2tlbik7CisgICAgd2hpbGUg
KHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBvaykgeworICAgICAgb2sgPSByZWFkVG9r
ZW4odG9rZW4pOworICAgIH0KKyAgICBib29sIGJhZFRva2VuVHlwZSA9CisgICAgICAgICh0b2tl
bi50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmIHRva2VuLnR5cGVfICE9IHRva2VuQXJy
YXlFbmQpOworICAgIGlmICghb2sgfHwgYmFkVG9rZW5UeXBlKSB7CisgICAgICByZXR1cm4gYWRk
RXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkg
ZGVjbGFyYXRpb24iLCB0b2tlbiwgdG9rZW5BcnJheUVuZCk7CisgICAgfQorICAgIGlmICh0b2tl
bi50eXBlXyA9PSB0b2tlbkFycmF5RW5kKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKSB7CisgIFZh
bHVlIGRlY29kZWQ7CisgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuLCBkZWNvZGVkKSkKKyAgICBy
ZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBW
YWx1ZSYgZGVjb2RlZCkgeworICAvLyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFu
IGludGVnZXIuIElmIHRoZSBudW1iZXIgaXMKKyAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0g
c3VwcG9ydGVkIHZhbHVlIG9mIGFuIGludGVnZXIgdGhlbgorICAvLyB3ZSBkZWNvZGUgdGhlIG51
bWJlciBhcyBhIGRvdWJsZS4KKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsKKyAg
Ym9vbCBpc05lZ2F0aXZlID0gKmN1cnJlbnQgPT0gJy0nOworICBpZiAoaXNOZWdhdGl2ZSkKKyAg
ICArK2N1cnJlbnQ7CisgIC8vIFRPRE86IEhlbHAgdGhlIGNvbXBpbGVyIGRvIHRoZSBkaXYgYW5k
IG1vZCBhdCBjb21waWxlIHRpbWUgb3IgZ2V0IHJpZCBvZiB0aGVtLgorICBWYWx1ZTo6TGFyZ2Vz
dFVJbnQgbWF4SW50ZWdlclZhbHVlID0KKyAgICAgIGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2Vz
dFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMQorICAgICAgICAgICAgICAgICA6IFZhbHVl
OjptYXhMYXJnZXN0VUludDsKKyAgVmFsdWU6Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heElu
dGVnZXJWYWx1ZSAvIDEwOworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGls
ZSAoY3VycmVudCA8IHRva2VuLmVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAg
IGlmIChjIDwgJzAnIHx8IGMgPiAnOScpCisgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2Vu
LCBkZWNvZGVkKTsKKyAgICBWYWx1ZTo6VUludCBkaWdpdChjIC0gJzAnKTsKKyAgICBpZiAodmFs
dWUgPj0gdGhyZXNob2xkKSB7CisgICAgICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1h
eCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChyb3VuZGVkIGRvd24pLiBJZgorICAgICAgLy8gYSkgd2Un
dmUgb25seSBqdXN0IHRvdWNoZWQgdGhlIGxpbWl0LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0
LCBhbmQKKyAgICAgIC8vIGMpIGl0J3Mgc21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5k
aW5nIGRlbHRhLCB3ZSdyZSBva2F5LgorICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVt
YmVyIGFzIGEgZG91YmxlIHRvIGF2b2lkIG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhy
ZXNob2xkIHx8IGN1cnJlbnQgIT0gdG9rZW4uZW5kXyB8fAorICAgICAgICAgIGRpZ2l0ID4gbWF4
SW50ZWdlclZhbHVlICUgMTApIHsKKyAgICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwg
ZGVjb2RlZCk7CisgICAgICB9CisgICAgfQorICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0
OworICB9CisgIGlmIChpc05lZ2F0aXZlICYmIHZhbHVlID09IG1heEludGVnZXJWYWx1ZSkKKyAg
ICBkZWNvZGVkID0gVmFsdWU6Om1pbkxhcmdlc3RJbnQ7CisgIGVsc2UgaWYgKGlzTmVnYXRpdmUp
CisgICAgZGVjb2RlZCA9IC1WYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UgaWYgKHZh
bHVlIDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4SW50KSkKKyAgICBkZWNvZGVkID0g
VmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlCisgICAgZGVjb2RlZCA9IHZhbHVlOwor
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9r
ZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVEb3VibGUodG9rZW4sIGRlY29k
ZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVj
b2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJl
Z2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdp
bl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZURvdWJsZShUb2tl
biYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIGRvdWJsZSB2YWx1ZSA9IDA7CisgIHN0ZDo6
c3RyaW5nIGJ1ZmZlcih0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pOworICBzdGQ6OmlzdHJpbmdz
dHJlYW0gaXMoYnVmZmVyKTsKKyAgaWYgKCEoaXMgPj4gdmFsdWUpKQorICAgIHJldHVybiBhZGRF
cnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0b2tlbi5zdGFydF8sIHRva2VuLmVuZF8pICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICInIGlzIG5vdCBhIG51bWJlci4iLAorICAgICAgICAgICAgICAg
ICAgICB0b2tlbik7CisgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKSB7CisgIHN0ZDo6c3RyaW5nIGRl
Y29kZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbiwgZGVjb2RlZF9zdHJpbmcp
KQorICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVjb2RlZChkZWNvZGVkX3N0cmluZyk7Cisg
IGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVj
b2RlZCkgeworICBkZWNvZGVkLnJlc2VydmUodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0XyAtIDIp
OworICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfICsgMTsgLy8gc2tpcCAnIicKKyAg
TG9jYXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAgIC8vIGRvIG5vdCBpbmNsdWRlICci
JworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOwor
ICAgIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykg
eworICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkVt
cHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICBD
aGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0Y2ggKGVzY2FwZSkgeworICAgICAg
Y2FzZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0gJyInOworICAgICAgICBicmVhazsKKyAgICAg
IGNhc2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9ICcvJzsKKyAgICAgICAgYnJlYWs7CisgICAg
ICBjYXNlICdcXCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xcJzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGInOworICAgICAgICBicmVhazsK
KyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9ICdcZic7CisgICAgICAgIGJyZWFr
OworICAgICAgY2FzZSAnbic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xuJzsKKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHInOworICAgICAgICBi
cmVhazsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNvZGVkICs9ICdcdCc7CisgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHVuaWNvZGU7
CisgICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2ludCh0b2tlbiwgY3VycmVudCwgZW5k
LCB1bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlY29kZWQgKz0g
Y29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBicmVhazsKKyAgICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmci
LCB0b2tlbiwgY3VycmVudCk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGRlY29kZWQg
Kz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNv
ZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisKKyAgaWYgKCFkZWNvZGVVbmljb2RlRXNj
YXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgcmV0dXJuIGZh
bHNlOworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYgdW5pY29kZSA8PSAweERCRkYpIHsKKyAg
ICAvLyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5kIC0gY3VycmVudCA8IDYpCisgICAgICBy
ZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhw
ZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4iLAorICAgICAgICAgIHRva2Vu
LAorICAgICAgICAgIGN1cnJlbnQpOworICAgIHVuc2lnbmVkIGludCBzdXJyb2dhdGVQYWlyOwor
ICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAqKGN1cnJlbnQrKykgPT0gJ3UnKSB7Cisg
ICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQs
IHN1cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNvZGUgPSAweDEwMDAwICsgKCh1bmljb2Rl
ICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWlyICYgMHgzRkYpOworICAgICAgfSBlbHNl
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJv
cigiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBv
ZiAiCisgICAgICAgICAgICAgICAgICAgICAgImEgdW5pY29kZSBzdXJyb2dhdGUgcGFpciIsCisg
ICAgICAgICAgICAgICAgICAgICAgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgY3VycmVu
dCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVVbmljb2Rl
RXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKKyAgaWYgKGVuZCAtIGN1
cnJlbnQgPCA0KQorICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgIkJhZCB1bmljb2RlIGVz
Y2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLiIsCisgICAgICAg
IHRva2VuLAorICAgICAgICBjdXJyZW50KTsKKyAgdW5pY29kZSA9IDA7CisgIGZvciAoaW50IGlu
ZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsK
KyAgICB1bmljb2RlICo9IDE2OworICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAg
IHVuaWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNlIGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykK
KyAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEwOworICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYm
IGMgPD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ0EnICsgMTA7CisgICAgZWxzZQorICAg
ICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVu
Y2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4iLAorICAgICAgICAgIHRv
a2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29s
CitSZWFkZXI6OmFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9r
ZW4sIExvY2F0aW9uIGV4dHJhKSB7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9
IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBleHRy
YTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBSZWFkZXI6OnJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7Cisg
IGludCBlcnJvckNvdW50ID0gaW50KGVycm9yc18uc2l6ZSgpKTsKKyAgVG9rZW4gc2tpcDsKKyAg
Zm9yICg7OykgeworICAgIGlmICghcmVhZFRva2VuKHNraXApKQorICAgICAgZXJyb3JzXy5yZXNp
emUoZXJyb3JDb3VudCk7IC8vIGRpc2NhcmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQorICAg
IGlmIChza2lwLnR5cGVfID09IHNraXBVbnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5F
bmRPZlN0cmVhbSkKKyAgICAgIGJyZWFrOworICB9CisgIGVycm9yc18ucmVzaXplKGVycm9yQ291
bnQpOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVhZGVyOjphZGRFcnJvckFuZFJlY292
ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9r
ZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKKyAg
cmV0dXJuIHJlY292ZXJGcm9tRXJyb3Ioc2tpcFVudGlsVG9rZW4pOworfQorCitWYWx1ZSYgUmVh
ZGVyOjpjdXJyZW50VmFsdWUoKSB7IHJldHVybiAqKG5vZGVzXy50b3AoKSk7IH0KKworUmVhZGVy
OjpDaGFyIFJlYWRlcjo6Z2V0TmV4dENoYXIoKSB7CisgIGlmIChjdXJyZW50XyA9PSBlbmRfKQor
ICAgIHJldHVybiAwOworICByZXR1cm4gKmN1cnJlbnRfKys7Cit9CisKK3ZvaWQgUmVhZGVyOjpn
ZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsKKyAgTG9jYXRpb24gY3VycmVu
dCA9IGJlZ2luXzsKKyAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgIGxpbmUg
PSAwOworICB3aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0gZW5kXykgewor
ICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYg
KCpjdXJyZW50ID09ICdcbicpCisgICAgICAgICsrY3VycmVudDsKKyAgICAgIGxhc3RMaW5lU3Rh
cnQgPSBjdXJyZW50OworICAgICAgKytsaW5lOworICAgIH0gZWxzZSBpZiAoYyA9PSAnXG4nKSB7
CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9Cisg
IH0KKyAgLy8gY29sdW1uICYgbGluZSBzdGFydCBhdCAxCisgIGNvbHVtbiA9IGludChsb2NhdGlv
biAtIGxhc3RMaW5lU3RhcnQpICsgMTsKKyAgKytsaW5lOworfQorCitzdGQ6OnN0cmluZyBSZWFk
ZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Qgewor
ICBpbnQgbGluZSwgY29sdW1uOworICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4obG9jYXRpb24s
IGxpbmUsIGNvbHVtbik7CisgIGNoYXIgYnVmZmVyWzE4ICsgMTYgKyAxNiArIDFdOworICBzbnBy
aW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwgQ29sdW1uICVkIiwgbGluZSwg
Y29sdW1uKTsKKyAgcmV0dXJuIGJ1ZmZlcjsKK30KKworc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRM
b2NhdGlvblNuaXBwZXQoTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgICAgICBzdGQ6OnN0
cmluZyBzbmlwcGV0ID0gIiI7CisgICAgICAgc3RkOjppc3RyaW5nc3RyZWFtIGRvY1N0cmVhbShk
b2N1bWVudF8pOworICAgICAgIGludCBsaW4sIGNvbDsKKyAgICAgICBnZXRMb2NhdGlvbkxpbmVB
bmRDb2x1bW4obG9jYXRpb24sIGxpbiwgY29sKTsKKyAgICAgICBzdGQ6OnN0cmluZyBsaW5lOwor
ICAgICAgIGZvciAoaW50IGk9MTsgaTxsaW4rMiAmJiBzdGQ6OmdldGxpbmUoZG9jU3RyZWFtLCBs
aW5lKTsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKGxpbi1pIDwgMikKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc25pcHBldCArPSAiICAiICsgc3RkOjp0
b19zdHJpbmcoaSkgKyAiOiAiICsgbGluZSArICJcbiI7CisgICAgICAgICAgICAgIH0KKyAgICAg
ICB9CisgICAgICAgcmV0dXJuIHNuaXBwZXQ7Cit9CisKKy8vIERlcHJlY2F0ZWQuIFByZXNlcnZl
ZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRGb3Jt
YXRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHJldHVybiBnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzKCk7Cit9CisKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNz
YWdlcygpIGNvbnN0IHsKKyAgc3RkOjpzdHJpbmcgZm9ybWF0dGVkTWVzc2FnZTsKKyAgZm9yIChF
cnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAg
aXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0
IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Cisg
ICAgICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IudG9rZW5fLnN0YXJ0
XykgKyAiXG4iOworICAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gZ2V0TG9jYXRpb25TbmlwcGV0
KGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9ICIg
ICIgKyBlcnJvci5tZXNzYWdlXyArICJcbiI7CisgICAgaWYgKGVycm9yLmV4dHJhXykKKyAgICAg
IGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgICAiU2VlICIgKyBnZXRMb2NhdGlvbkxpbmVB
bmRDb2x1bW4oZXJyb3IuZXh0cmFfKSArICIgZm9yIGRldGFpbC5cbiI7CisgIH0KKyAgcmV0dXJu
IGZvcm1hdHRlZE1lc3NhZ2U7Cit9CisKK3N0ZDo6dmVjdG9yPFJlYWRlcjo6U3RydWN0dXJlZEVy
cm9yPiBSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdCB7CisgIHN0ZDo6dmVjdG9y
PFJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBhbGxFcnJvcnM7CisgIGZvciAoRXJyb3JzOjpjb25z
dF9pdGVyYXRvciBpdEVycm9yID0gZXJyb3JzXy5iZWdpbigpOworICAgICAgIGl0RXJyb3IgIT0g
ZXJyb3JzXy5lbmQoKTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAgICBjb25zdCBFcnJvckluZm8m
IGVycm9yID0gKml0RXJyb3I7CisgICAgUmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3Igc3RydWN0dXJl
ZDsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9zdGFydCA9IGVycm9yLnRva2VuXy5zdGFydF8gLSBi
ZWdpbl87CisgICAgc3RydWN0dXJlZC5vZmZzZXRfbGltaXQgPSBlcnJvci50b2tlbl8uZW5kXyAt
IGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlXzsKKyAgICBh
bGxFcnJvcnMucHVzaF9iYWNrKHN0cnVjdHVyZWQpOworICB9CisgIHJldHVybiBhbGxFcnJvcnM7
Cit9CisKK2Jvb2wgUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBz
dGQ6OnN0cmluZyYgbWVzc2FnZSkgeworICBzaXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsK
KyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9m
ZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsK
KyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2
YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0gZW5kXyArIHZhbHVlLmdldE9m
ZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOwor
ICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSAwOworICBlcnJvcnNf
LnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpwdXNo
RXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgY29u
c3QgVmFsdWUmIGV4dHJhKSB7CisgIHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBp
Zih2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zmc2V0
TGltaXQoKSA+IGxlbmd0aAorICAgIHx8IGV4dHJhLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgp
CisgICAgcmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tl
bkVycm9yOworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgp
OworICB0b2tlbi5lbmRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJy
b3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBt
ZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGJlZ2luXyArIGV4dHJhLmdldE9mZnNldFN0YXJ0KCk7
CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBS
ZWFkZXI6Omdvb2QoKSBjb25zdCB7CisgIHJldHVybiAhZXJyb3JzXy5zaXplKCk7Cit9CisKKy8v
IGV4YWN0IGNvcHkgb2YgRmVhdHVyZXMKK2NsYXNzIE91ckZlYXR1cmVzIHsKK3B1YmxpYzoKKyAg
c3RhdGljIE91ckZlYXR1cmVzIGFsbCgpOworICBib29sIGFsbG93Q29tbWVudHNfOworICBib29s
IHN0cmljdFJvb3RfOworICBib29sIGFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfOworICBi
b29sIGFsbG93TnVtZXJpY0tleXNfOworICBib29sIGFsbG93U2luZ2xlUXVvdGVzXzsKKyAgYm9v
bCBmYWlsSWZFeHRyYV87CisgIGJvb2wgcmVqZWN0RHVwS2V5c187CisgIGJvb2wgYWxsb3dTcGVj
aWFsRmxvYXRzXzsKKyAgaW50IHN0YWNrTGltaXRfOworfTsgIC8vIE91ckZlYXR1cmVzCisKKy8v
IGV4YWN0IGNvcHkgb2YgSW1wbGVtZW50YXRpb24gb2YgY2xhc3MgRmVhdHVyZXMKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK091ckZlYXR1cmVzIE91ckZlYXR1cmVzOjph
bGwoKSB7IHJldHVybiBPdXJGZWF0dXJlcygpOyB9CisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNs
YXNzIFJlYWRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gZXhh
Y3QgY29weSBvZiBSZWFkZXIsIHJlbmFtZWQgdG8gT3VyUmVhZGVyCitjbGFzcyBPdXJSZWFkZXIg
eworcHVibGljOgorICB0eXBlZGVmIGNoYXIgQ2hhcjsKKyAgdHlwZWRlZiBjb25zdCBDaGFyKiBM
b2NhdGlvbjsKKyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgc2l6ZV90IG9mZnNldF9z
dGFydDsKKyAgICBzaXplX3Qgb2Zmc2V0X2xpbWl0OworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2U7
CisgIH07CisKKyAgT3VyUmVhZGVyKE91ckZlYXR1cmVzIGNvbnN0JiBmZWF0dXJlcyk7CisgIGJv
b2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAgICAgY29uc3QgY2hhciog
ZW5kRG9jLAorICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgIGJvb2wgY29s
bGVjdENvbW1lbnRzID0gdHJ1ZSk7CisgIHN0ZDo6c3RyaW5nIGdldEZvcm1hdHRlZEVycm9yTWVz
c2FnZXMoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBnZXRTdHJ1Y3R1
cmVkRXJyb3JzKCkgY29uc3Q7CisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwg
Y29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpOworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1
ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEp
OworICBib29sIGdvb2QoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgT3VyUmVhZGVyKE91clJlYWRl
ciBjb25zdCYpOyAgLy8gbm8gaW1wbAorICB2b2lkIG9wZXJhdG9yPShPdXJSZWFkZXIgY29uc3Qm
KTsgIC8vIG5vIGltcGwKKworICBlbnVtIFRva2VuVHlwZSB7CisgICAgdG9rZW5FbmRPZlN0cmVh
bSA9IDAsCisgICAgdG9rZW5PYmplY3RCZWdpbiwKKyAgICB0b2tlbk9iamVjdEVuZCwKKyAgICB0
b2tlbkFycmF5QmVnaW4sCisgICAgdG9rZW5BcnJheUVuZCwKKyAgICB0b2tlblN0cmluZywKKyAg
ICB0b2tlbk51bWJlciwKKyAgICB0b2tlblRydWUsCisgICAgdG9rZW5GYWxzZSwKKyAgICB0b2tl
bk51bGwsCisgICAgdG9rZW5OYU4sCisgICAgdG9rZW5Qb3NJbmYsCisgICAgdG9rZW5OZWdJbmYs
CisgICAgdG9rZW5BcnJheVNlcGFyYXRvciwKKyAgICB0b2tlbk1lbWJlclNlcGFyYXRvciwKKyAg
ICB0b2tlbkNvbW1lbnQsCisgICAgdG9rZW5FcnJvcgorICB9OworCisgIGNsYXNzIFRva2VuIHsK
KyAgcHVibGljOgorICAgIFRva2VuVHlwZSB0eXBlXzsKKyAgICBMb2NhdGlvbiBzdGFydF87Cisg
ICAgTG9jYXRpb24gZW5kXzsKKyAgfTsKKworICBjbGFzcyBFcnJvckluZm8geworICBwdWJsaWM6
CisgICAgVG9rZW4gdG9rZW5fOworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2VfOworICAgIExvY2F0
aW9uIGV4dHJhXzsKKyAgfTsKKworICB0eXBlZGVmIHN0ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJv
cnM7CisKKyAgYm9vbCByZWFkVG9rZW4oVG9rZW4mIHRva2VuKTsKKyAgdm9pZCBza2lwU3BhY2Vz
KCk7CisgIGJvb2wgbWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpOwor
ICBib29sIHJlYWRDb21tZW50KCk7CisgIGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9v
bCByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZFN0cmluZygpOworICBib29sIHJl
YWRTdHJpbmdTaW5nbGVRdW90ZSgpOworICBib29sIHJlYWROdW1iZXIoYm9vbCBjaGVja0luZik7
CisgIGJvb2wgcmVhZFZhbHVlKCk7CisgIGJvb2wgcmVhZE9iamVjdChUb2tlbiYgdG9rZW4pOwor
ICBib29sIHJlYWRBcnJheShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tl
biYgdG9rZW4pOworICBib29sIGRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNv
ZGVkKTsKKyAgYm9vbCBkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVT
dHJpbmcoVG9rZW4mIHRva2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2Rl
RG91YmxlKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwg
VmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRv
a2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29sIGRlY29kZVVu
aWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgYWRkRXJyb3IoY29uc3Qgc3RkOjpz
dHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEgPSAwKTsKKyAgYm9v
bCByZWNvdmVyRnJvbUVycm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIGJvb2wgYWRk
RXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRv
a2VuVHlwZSBza2lwVW50aWxUb2tlbik7CisgIHZvaWQgc2tpcFVudGlsU3BhY2UoKTsKKyAgVmFs
dWUmIGN1cnJlbnRWYWx1ZSgpOworICBDaGFyIGdldE5leHRDaGFyKCk7CisgIHZvaWQKKyAgZ2V0
TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0aW9uLCBpbnQmIGxpbmUsIGludCYg
Y29sdW1uKSBjb25zdDsKKyAgc3RkOjpzdHJpbmcgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExv
Y2F0aW9uIGxvY2F0aW9uKSBjb25zdDsKKyAgdm9pZCBhZGRDb21tZW50KExvY2F0aW9uIGJlZ2lu
LCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgdm9pZCBza2lw
Q29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4pOworCisgIHR5cGVkZWYgc3RkOjpzdGFjazxWYWx1
ZSo+IE5vZGVzOworICBOb2RlcyBub2Rlc187CisgIEVycm9ycyBlcnJvcnNfOworICBzdGQ6OnN0
cmluZyBkb2N1bWVudF87CisgIExvY2F0aW9uIGJlZ2luXzsKKyAgTG9jYXRpb24gZW5kXzsKKyAg
TG9jYXRpb24gY3VycmVudF87CisgIExvY2F0aW9uIGxhc3RWYWx1ZUVuZF87CisgIFZhbHVlKiBs
YXN0VmFsdWVfOworICBzdGQ6OnN0cmluZyBjb21tZW50c0JlZm9yZV87CisgIGludCBzdGFja0Rl
cHRoXzsKKworICBPdXJGZWF0dXJlcyBjb25zdCBmZWF0dXJlc187CisgIGJvb2wgY29sbGVjdENv
bW1lbnRzXzsKK307ICAvLyBPdXJSZWFkZXIKKworLy8gY29tcGxldGUgY29weSBvZiBSZWFkIGlt
cGwsIGZvciBPdXJSZWFkZXIKKworT3VyUmVhZGVyOjpPdXJSZWFkZXIoT3VyRmVhdHVyZXMgY29u
c3QmIGZlYXR1cmVzKQorICAgIDogZXJyb3JzXygpLCBkb2N1bWVudF8oKSwgYmVnaW5fKCksIGVu
ZF8oKSwgY3VycmVudF8oKSwgbGFzdFZhbHVlRW5kXygpLAorICAgICAgbGFzdFZhbHVlXygpLCBj
b21tZW50c0JlZm9yZV8oKSwKKyAgICAgIHN0YWNrRGVwdGhfKDApLAorICAgICAgZmVhdHVyZXNf
KGZlYXR1cmVzKSwgY29sbGVjdENvbW1lbnRzXygpIHsKK30KKworYm9vbCBPdXJSZWFkZXI6OnBh
cnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IGVuZERvYywKKyAgICAgICAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICAg
ICAgICBib29sIGNvbGxlY3RDb21tZW50cykgeworICBpZiAoIWZlYXR1cmVzXy5hbGxvd0NvbW1l
bnRzXykgeworICAgIGNvbGxlY3RDb21tZW50cyA9IGZhbHNlOworICB9CisKKyAgYmVnaW5fID0g
YmVnaW5Eb2M7CisgIGVuZF8gPSBlbmREb2M7CisgIGNvbGxlY3RDb21tZW50c18gPSBjb2xsZWN0
Q29tbWVudHM7CisgIGN1cnJlbnRfID0gYmVnaW5fOworICBsYXN0VmFsdWVFbmRfID0gMDsKKyAg
bGFzdFZhbHVlXyA9IDA7CisgIGNvbW1lbnRzQmVmb3JlXyA9ICIiOworICBlcnJvcnNfLmNsZWFy
KCk7CisgIHdoaWxlICghbm9kZXNfLmVtcHR5KCkpCisgICAgbm9kZXNfLnBvcCgpOworICBub2Rl
c18ucHVzaCgmcm9vdCk7CisKKyAgc3RhY2tEZXB0aF8gPSAwOworICBib29sIHN1Y2Nlc3NmdWwg
PSByZWFkVmFsdWUoKTsKKyAgVG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2Vu
KTsKKyAgaWYgKGZlYXR1cmVzXy5mYWlsSWZFeHRyYV8pIHsKKyAgICBpZiAodG9rZW4udHlwZV8g
IT0gdG9rZW5FcnJvciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkVuZE9mU3RyZWFtKSB7CisgICAg
ICBhZGRFcnJvcigiRXh0cmEgbm9uLXdoaXRlc3BhY2UgYWZ0ZXIgSlNPTiB2YWx1ZS4iLCB0b2tl
bik7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIGlmIChjb2xsZWN0Q29tbWVu
dHNfICYmICFjb21tZW50c0JlZm9yZV8uZW1wdHkoKSkKKyAgICByb290LnNldENvbW1lbnQoY29t
bWVudHNCZWZvcmVfLCBjb21tZW50QWZ0ZXIpOworICBpZiAoZmVhdHVyZXNfLnN0cmljdFJvb3Rf
KSB7CisgICAgaWYgKCFyb290LmlzQXJyYXkoKSAmJiAhcm9vdC5pc09iamVjdCgpKSB7CisgICAg
ICAvLyBTZXQgZXJyb3IgbG9jYXRpb24gdG8gc3RhcnQgb2YgZG9jLCBpZGVhbGx5IHNob3VsZCBi
ZSBmaXJzdCB0b2tlbiBmb3VuZAorICAgICAgLy8gaW4gZG9jCisgICAgICB0b2tlbi50eXBlXyA9
IHRva2VuRXJyb3I7CisgICAgICB0b2tlbi5zdGFydF8gPSBiZWdpbkRvYzsKKyAgICAgIHRva2Vu
LmVuZF8gPSBlbmREb2M7CisgICAgICBhZGRFcnJvcigKKyAgICAgICAgICAiQSB2YWxpZCBKU09O
IGRvY3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4iLAor
ICAgICAgICAgIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0
dXJuIHN1Y2Nlc3NmdWw7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkVmFsdWUoKSB7CisgIGlm
IChzdGFja0RlcHRoXyA+PSBmZWF0dXJlc18uc3RhY2tMaW1pdF8pIHRocm93UnVudGltZUVycm9y
KCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLiIpOworICArK3N0YWNrRGVwdGhf
OworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOworICBib29sIHN1
Y2Nlc3NmdWwgPSB0cnVlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFjb21tZW50c0Jl
Zm9yZV8uZW1wdHkoKSkgeworICAgIGN1cnJlbnRWYWx1ZSgpLnNldENvbW1lbnQoY29tbWVudHNC
ZWZvcmVfLCBjb21tZW50QmVmb3JlKTsKKyAgICBjb21tZW50c0JlZm9yZV8gPSAiIjsKKyAgfQor
CisgIHN3aXRjaCAodG9rZW4udHlwZV8pIHsKKyAgY2FzZSB0b2tlbk9iamVjdEJlZ2luOgorICAg
IHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRP
ZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5B
cnJheUJlZ2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQXJyYXkodG9rZW4pOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsK
KyAgY2FzZSB0b2tlbk51bWJlcjoKKyAgICBzdWNjZXNzZnVsID0gZGVjb2RlTnVtYmVyKHRva2Vu
KTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblN0cmluZzoKKyAgICBzdWNjZXNzZnVsID0gZGVj
b2RlU3RyaW5nKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblRydWU6CisgICAgewor
ICAgIFZhbHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsK
KyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsK
KyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5GYWxzZToKKyAgICB7CisgICAgVmFsdWUg
dihmYWxzZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9Cisg
ICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdWxsOgorICAgIHsKKyAgICBWYWx1ZSB2OworICAgIGN1
cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zm
c2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNl
IHRva2VuTmFOOgorICAgIHsKKyAgICBWYWx1ZSB2KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCkpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAg
IGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7Cisg
ICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2VuUG9zSW5mOgorICAgIHsKKyAgICBWYWx1ZSB2
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgY3VycmVudFZh
bHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQo
dG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1p
dCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5O
ZWdJbmY6CisgICAgeworICAgIFZhbHVlIHYoLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
aW5maW5pdHkoKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3Vy
cmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBj
dXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9
CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRvcjoKKyAgY2FzZSB0b2tlbk9i
amVjdEVuZDoKKyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dE
cm9wcGVkTnVsbFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJVbi1yZWFkIiB0aGUgY3VycmVu
dCB0b2tlbiBhbmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBhIG51bGwKKyAgICAgIC8vIHRv
a2VuLgorICAgICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7CisgICAgICBjdXJyZW50VmFs
dWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0
KGN1cnJlbnRfIC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsKKyAgICB9IC8vIGVsc2UsIGZh
bGwgdGhyb3VnaCAuLi4KKyAgZGVmYXVsdDoKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIHJldHVybiBhZGRFcnJvcigiU3ludGF4
IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLiIsIHRva2VuKTsKKyAgfQor
CisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgbGFzdFZhbHVlRW5kXyA9IGN1cnJlbnRf
OworICAgIGxhc3RWYWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7CisgIH0KKworICAtLXN0YWNrRGVw
dGhfOworICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKwordm9pZCBPdXJSZWFkZXI6OnNraXBDb21t
ZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVyZXNfLmFsbG93Q29tbWVudHNf
KSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgICB9IHdoaWxlICh0b2tl
bi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2UgeworICAgIHJlYWRUb2tlbih0b2tl
bik7CisgIH0KK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRUb2tlbihUb2tlbiYgdG9rZW4pIHsK
KyAgc2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKKyAgQ2hhciBjID0g
Z2V0TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3aXRjaCAoYykgeworICBjYXNl
ICd7JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47CisgICAgYnJlYWs7Cisg
IGNhc2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7CisgICAgYnJlYWs7
CisgIGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2luOworICAgIGJy
ZWFrOworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlFbmQ7CisgICAg
YnJlYWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7CisgICAg
b2sgPSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJ1wnJzoKKyAgICBpZiAoZmVh
dHVyZXNfLmFsbG93U2luZ2xlUXVvdGVzXykgeworICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJp
bmc7CisgICAgb2sgPSByZWFkU3RyaW5nU2luZ2xlUXVvdGUoKTsKKyAgICBicmVhazsKKyAgICB9
IC8vIGVsc2UgY29udGludWUKKyAgY2FzZSAnLyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkNv
bW1lbnQ7CisgICAgb2sgPSByZWFkQ29tbWVudCgpOworICAgIGJyZWFrOworICBjYXNlICcwJzoK
KyAgY2FzZSAnMSc6CisgIGNhc2UgJzInOgorICBjYXNlICczJzoKKyAgY2FzZSAnNCc6CisgIGNh
c2UgJzUnOgorICBjYXNlICc2JzoKKyAgY2FzZSAnNyc6CisgIGNhc2UgJzgnOgorICBjYXNlICc5
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAgIHJlYWROdW1iZXIoZmFsc2Up
OworICAgIGJyZWFrOworICBjYXNlICctJzoKKyAgICBpZiAocmVhZE51bWJlcih0cnVlKSkgewor
ICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbk51bWJlcjsKKyAgICB9IGVsc2UgeworICAgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbk5lZ0luZjsKKyAgICAgIG9rID0gZmVhdHVyZXNfLmFsbG93U3BlY2lh
bEZsb2F0c18gJiYgbWF0Y2goIm5maW5pdHkiLCA3KTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNh
c2UgJ3QnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5UcnVlOworICAgIG9rID0gbWF0Y2goInJ1
ZSIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdmJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2Vu
RmFsc2U7CisgICAgb2sgPSBtYXRjaCgiYWxzZSIsIDQpOworICAgIGJyZWFrOworICBjYXNlICdu
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVsbDsKKyAgICBvayA9IG1hdGNoKCJ1bGwiLCAz
KTsKKyAgICBicmVhazsKKyAgY2FzZSAnTic6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NwZWNp
YWxGbG9hdHNfKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmFOOworICAgICAgb2sgPSBt
YXRjaCgiYU4iLCAyKTsKKyAgICB9IGVsc2UgeworICAgICAgb2sgPSBmYWxzZTsKKyAgICB9Cisg
ICAgYnJlYWs7CisgIGNhc2UgJ0knOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxv
YXRzXykgeworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlblBvc0luZjsKKyAgICAgIG9rID0gbWF0
Y2goIm5maW5pdHkiLCA3KTsKKyAgICB9IGVsc2UgeworICAgICAgb2sgPSBmYWxzZTsKKyAgICB9
CisgICAgYnJlYWs7CisgIGNhc2UgJywnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheVNl
cGFyYXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAnOic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tl
bk1lbWJlclNlcGFyYXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAwOgorICAgIHRva2VuLnR5cGVf
ID0gdG9rZW5FbmRPZlN0cmVhbTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBvayA9IGZh
bHNlOworICAgIGJyZWFrOworICB9CisgIGlmICghb2spCisgICAgdG9rZW4udHlwZV8gPSB0b2tl
bkVycm9yOworICB0b2tlbi5lbmRfID0gY3VycmVudF87CisgIHJldHVybiB0cnVlOworfQorCit2
b2lkIE91clJlYWRlcjo6c2tpcFNwYWNlcygpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8p
IHsKKyAgICBDaGFyIGMgPSAqY3VycmVudF87CisgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0
JyB8fCBjID09ICdccicgfHwgYyA9PSAnXG4nKQorICAgICAgKytjdXJyZW50XzsKKyAgICBlbHNl
CisgICAgICBicmVhazsKKyAgfQorfQorCitib29sIE91clJlYWRlcjo6bWF0Y2goTG9jYXRpb24g
cGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpIHsKKyAgaWYgKGVuZF8gLSBjdXJyZW50XyA8IHBh
dHRlcm5MZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVu
Z3RoOworICB3aGlsZSAoaW5kZXgtLSkKKyAgICBpZiAoY3VycmVudF9baW5kZXhdICE9IHBhdHRl
cm5baW5kZXhdKQorICAgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50XyArPSBwYXR0ZXJuTGVu
Z3RoOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRDb21tZW50KCkg
eworICBMb2NhdGlvbiBjb21tZW50QmVnaW4gPSBjdXJyZW50XyAtIDE7CisgIENoYXIgYyA9IGdl
dE5leHRDaGFyKCk7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IGZhbHNlOworICBpZiAoYyA9PSAnKicp
CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGVsc2UgaWYgKGMgPT0g
Jy8nKQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGlmICghc3Vj
Y2Vzc2Z1bCkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsK
KyAgICBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7CisgICAgaWYg
KGxhc3RWYWx1ZUVuZF8gJiYgIWNvbnRhaW5zTmV3TGluZShsYXN0VmFsdWVFbmRfLCBjb21tZW50
QmVnaW4pKSB7CisgICAgICBpZiAoYyAhPSAnKicgfHwgIWNvbnRhaW5zTmV3TGluZShjb21tZW50
QmVnaW4sIGN1cnJlbnRfKSkKKyAgICAgICAgcGxhY2VtZW50ID0gY29tbWVudEFmdGVyT25TYW1l
TGluZTsKKyAgICB9CisKKyAgICBhZGRDb21tZW50KGNvbW1lbnRCZWdpbiwgY3VycmVudF8sIHBs
YWNlbWVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQKK091clJlYWRlcjo6YWRk
Q29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50IHBs
YWNlbWVudCkgeworICBhc3NlcnQoY29sbGVjdENvbW1lbnRzXyk7CisgIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBub3JtYWxpemVkID0gbm9ybWFsaXplRU9MKGJlZ2luLCBlbmQpOworICBpZiAocGxhY2Vt
ZW50ID09IGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHsKKyAgICBhc3NlcnQobGFzdFZhbHVlXyAh
PSAwKTsKKyAgICBsYXN0VmFsdWVfLT5zZXRDb21tZW50KG5vcm1hbGl6ZWQsIHBsYWNlbWVudCk7
CisgIH0gZWxzZSB7CisgICAgY29tbWVudHNCZWZvcmVfICs9IG5vcm1hbGl6ZWQ7CisgIH0KK30K
KworYm9vbCBPdXJSZWFkZXI6OnJlYWRDU3R5bGVDb21tZW50KCkgeworICB3aGlsZSAoY3VycmVu
dF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0g
JyonICYmICpjdXJyZW50XyA9PSAnLycpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gZ2V0
TmV4dENoYXIoKSA9PSAnLyc7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ3BwU3R5bGVDb21t
ZW50KCkgeworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9IGdldE5l
eHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xuJykKKyAgICAgIGJyZWFrOworICAgIGlmIChjID09
ICdccicpIHsKKyAgICAgIC8vIENvbnN1bWUgRE9TIEVPTC4gSXQgd2lsbCBiZSBub3JtYWxpemVk
IGluIGFkZENvbW1lbnQuCisgICAgICBpZiAoY3VycmVudF8gIT0gZW5kXyAmJiAqY3VycmVudF8g
PT0gJ1xuJykKKyAgICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICAgIC8vIEJyZWFrIG9uIE1vYyBP
UyA5IEVPTC4KKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBPdXJSZWFkZXI6OnJlYWROdW1iZXIoYm9vbCBjaGVja0luZikgeworICBjb25zdCBjaGFy
ICpwID0gY3VycmVudF87CisgIGlmIChjaGVja0luZiAmJiBwICE9IGVuZF8gJiYgKnAgPT0gJ0kn
KSB7CisgICAgY3VycmVudF8gPSArK3A7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGNoYXIg
YyA9ICcwJzsgLy8gc3RvcGdhcCBmb3IgYWxyZWFkeSBjb25zdW1lZCBjaGFyYWN0ZXIKKyAgLy8g
aW50ZWdyYWwgcGFydAorICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgYyA9IChj
dXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAvLyBmcmFjdGlvbmFsIHBhcnQKKyAg
aWYgKGMgPT0gJy4nKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAw
OworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3VycmVudF8g
PSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICAvLyBleHBvbmVudGlhbCBwYXJ0CisgIGlm
IChjID09ICdlJyB8fCBjID09ICdFJykgeworICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8g
PyAqcCsrIDogMDsKKyAgICBpZiAoYyA9PSAnKycgfHwgYyA9PSAnLScpCisgICAgICBjID0gKGN1
cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMg
PD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICB9
CisgIHJldHVybiB0cnVlOworfQorYm9vbCBPdXJSZWFkZXI6OnJlYWRTdHJpbmcoKSB7CisgIENo
YXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgYyA9IGdldE5leHRD
aGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykKKyAgICAgIGdldE5leHRDaGFyKCk7CisgICAgZWxz
ZSBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gYyA9PSAnIic7Cit9
CisKKworYm9vbCBPdXJSZWFkZXI6OnJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpIHsKKyAgQ2hhciBj
ID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBjID0gZ2V0TmV4dENoYXIo
KTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENoYXIoKTsKKyAgICBlbHNlIGlm
IChjID09ICdcJycpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gYyA9PSAnXCcnOworfQor
Citib29sIE91clJlYWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9rZW5TdGFydCkgeworICBUb2tl
biB0b2tlbk5hbWU7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIFZhbHVlIGluaXQob2JqZWN0VmFs
dWUpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBiZWdpbl8pOworICB3aGlsZSAo
cmVhZFRva2VuKHRva2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsK
KyAgICB3aGlsZSAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBpbml0aWFsVG9r
ZW5PaykKKyAgICAgIGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFtZSk7CisgICAg
aWYgKCFpbml0aWFsVG9rZW5PaykKKyAgICAgIGJyZWFrOworICAgIGlmICh0b2tlbk5hbWUudHlw
ZV8gPT0gdG9rZW5PYmplY3RFbmQgJiYgbmFtZS5lbXB0eSgpKSAvLyBlbXB0eSBvYmplY3QKKyAg
ICAgIHJldHVybiB0cnVlOworICAgIG5hbWUgPSAiIjsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVf
ID09IHRva2VuU3RyaW5nKSB7CisgICAgICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbk5hbWUsIG5h
bWUpKQorICAgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7Cisg
ICAgfSBlbHNlIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5OdW1iZXIgJiYgZmVhdHVyZXNf
LmFsbG93TnVtZXJpY0tleXNfKSB7CisgICAgICBWYWx1ZSBudW1iZXJOYW1lOworICAgICAgaWYg
KCFkZWNvZGVOdW1iZXIodG9rZW5OYW1lLCBudW1iZXJOYW1lKSkKKyAgICAgICAgcmV0dXJuIHJl
Y292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgICAgbmFtZSA9IG51bWJlck5hbWUu
YXNTdHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgYnJlYWs7CisgICAgfQorCisgICAgVG9r
ZW4gY29sb247CisgICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8IGNvbG9uLnR5cGVfICE9IHRv
a2VuTWVtYmVyU2VwYXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAor
ICAgICAgICAgICJNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCBjb2xvbiwg
dG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBpZiAobmFtZS5sZW5ndGgoKSA+PSAoMVU8PDMw
KSkgdGhyb3dSdW50aW1lRXJyb3IoImtleWxlbmd0aCA+PSAyXjMwIik7CisgICAgaWYgKGZlYXR1
cmVzXy5yZWplY3REdXBLZXlzXyAmJiBjdXJyZW50VmFsdWUoKS5pc01lbWJlcihuYW1lKSkgewor
ICAgICAgc3RkOjpzdHJpbmcgbXNnID0gIkR1cGxpY2F0ZSBrZXk6ICciICsgbmFtZSArICInIjsK
KyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgbXNnLCB0b2tlbk5h
bWUsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZh
bHVlKClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9rID0gcmVh
ZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9yIGFscmVh
ZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisK
KyAgICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRUb2tlbihjb21tYSkgfHwKKyAgICAgICAg
KGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYmIGNvbW1hLnR5cGVfICE9IHRva2VuQXJy
YXlTZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5cGVfICE9IHRva2VuQ29tbWVudCkpIHsK
KyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywn
IG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCBjb21tYSwgdG9rZW5PYmplY3RFbmQpOwor
ICAgIH0KKyAgICBib29sIGZpbmFsaXplVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUgKGNvbW1h
LnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBmaW5hbGl6ZVRva2VuT2spCisgICAgICBmaW5hbGl6
ZVRva2VuT2sgPSByZWFkVG9rZW4oY29tbWEpOworICAgIGlmIChjb21tYS50eXBlXyA9PSB0b2tl
bk9iamVjdEVuZCkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBhZGRFcnJvckFu
ZFJlY292ZXIoCisgICAgICAiTWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lIiwgdG9r
ZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQXJyYXko
VG9rZW4mIHRva2VuU3RhcnQpIHsKKyAgVmFsdWUgaW5pdChhcnJheVZhbHVlKTsKKyAgY3VycmVu
dFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tpcFNwYWNlcygpOworICBpZiAo
KmN1cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgeworICAgIFRva2VuIGVuZEFycmF5
OworICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgaW50
IGluZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1
ZSgpW2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJl
YWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJl
YWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3IodG9rZW5BcnJheUVuZCk7CisK
KyAgICBUb2tlbiB0b2tlbjsKKyAgICAvLyBBY2NlcHQgQ29tbWVudCBhZnRlciBsYXN0IGl0ZW0g
aW4gdGhlIGFycmF5LgorICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKKyAgICB3aGlsZSAodG9r
ZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAgICBvayA9IHJlYWRUb2tlbih0
b2tlbik7CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0KKyAgICAgICAgKHRva2VuLnR5
cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYgdG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheUVu
ZCk7CisgICAgaWYgKCFvayB8fCBiYWRUb2tlblR5cGUpIHsKKyAgICAgIHJldHVybiBhZGRFcnJv
ckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNs
YXJhdGlvbiIsIHRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9CisgICAgaWYgKHRva2VuLnR5
cGVfID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAgfQorICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4pIHsKKyAgVmFs
dWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRlY29kZWQpKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYgdG9rZW4s
IFZhbHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBudW1iZXIgYXMg
YW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBpcworICAvLyBsYXJnZXIgdGhhbiB0aGUgbWF4aW11
bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisgIC8vIHdlIGRlY29kZSB0aGUg
bnVtYmVyIGFzIGEgZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRfOwor
ICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9PSAnLSc7CisgIGlmIChpc05lZ2F0aXZlKQor
ICAgICsrY3VycmVudDsKKyAgLy8gVE9ETzogSGVscCB0aGUgY29tcGlsZXIgZG8gdGhlIGRpdiBh
bmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBnZXQgcmlkIG9mIHRoZW0uCisgIFZhbHVlOjpMYXJn
ZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPQorICAgICAgaXNOZWdhdGl2ZSA/IFZhbHVlOjpMYXJn
ZXN0VUludCgtVmFsdWU6Om1pbkxhcmdlc3RJbnQpCisgICAgICAgICAgICAgICAgIDogVmFsdWU6
Om1heExhcmdlc3RVSW50OworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhyZXNob2xkID0gbWF4SW50
ZWdlclZhbHVlIC8gMTA7CisgIFZhbHVlOjpMYXJnZXN0VUludCB2YWx1ZSA9IDA7CisgIHdoaWxl
IChjdXJyZW50IDwgdG9rZW4uZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAg
aWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKKyAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4s
IGRlY29kZWQpOworICAgIFZhbHVlOjpVSW50IGRpZ2l0KGMgLSAnMCcpOworICAgIGlmICh2YWx1
ZSA+PSB0aHJlc2hvbGQpIHsKKyAgICAgIC8vIFdlJ3ZlIGhpdCBvciBleGNlZWRlZCB0aGUgbWF4
IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElmCisgICAgICAvLyBhKSB3ZSd2
ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIGIpIHRoaXMgaXMgdGhlIGxhc3QgZGlnaXQs
IGFuZAorICAgICAgLy8gYykgaXQncyBzbWFsbCBlbm91Z2ggdG8gZml0IGluIHRoYXQgcm91bmRp
bmcgZGVsdGEsIHdlJ3JlIG9rYXkuCisgICAgICAvLyBPdGhlcndpc2UgdHJlYXQgdGhpcyBudW1i
ZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQgb3ZlcmZsb3cuCisgICAgICBpZiAodmFsdWUgPiB0aHJl
c2hvbGQgfHwgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8CisgICAgICAgICAgZGlnaXQgPiBtYXhJ
bnRlZ2VyVmFsdWUgJSAxMCkgeworICAgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBk
ZWNvZGVkKTsKKyAgICAgIH0KKyAgICB9CisgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7
CisgIH0KKyAgaWYgKGlzTmVnYXRpdmUpCisgICAgZGVjb2RlZCA9IC1WYWx1ZTo6TGFyZ2VzdElu
dCh2YWx1ZSk7CisgIGVsc2UgaWYgKHZhbHVlIDw9IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6
bWF4SW50KSkKKyAgICBkZWNvZGVkID0gVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNl
CisgICAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFk
ZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYg
KCFkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3Vy
cmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBPdXJSZWFkZXI6OmRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7
CisgIGRvdWJsZSB2YWx1ZSA9IDA7CisgIGNvbnN0IGludCBidWZmZXJTaXplID0gMzI7CisgIGlu
dCBjb3VudDsKKyAgaW50IGxlbmd0aCA9IGludCh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfKTsK
KworICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93IGV4cGxvaXRzLgor
ICBpZiAobGVuZ3RoIDwgMCkgeworICAgIHJldHVybiBhZGRFcnJvcigiVW5hYmxlIHRvIHBhcnNl
IHRva2VuIGxlbmd0aCIsIHRva2VuKTsKKyAgfQorCisgIC8vIEF2b2lkIHVzaW5nIGEgc3RyaW5n
IGNvbnN0YW50IGZvciB0aGUgZm9ybWF0IGNvbnRyb2wgc3RyaW5nIGdpdmVuIHRvCisgIC8vIHNz
Y2FuZiwgYXMgdGhpcyBjYW4gY2F1c2UgaGFyZCB0byBkZWJ1ZyBjcmFzaGVzIG9uIE9TIFguIFNl
ZSBoZXJlIGZvciBtb3JlCisgIC8vIGluZm86CisgIC8vCisgIC8vICAgICBodHRwOi8vZGV2ZWxv
cGVyLmFwcGxlLmNvbS9saWJyYXJ5L21hYy8jRE9DVU1FTlRBVElPTi9EZXZlbG9wZXJUb29scy9n
Y2MtNC4wLjEvZ2NjL0luY29tcGF0aWJpbGl0aWVzLmh0bWwKKyAgY2hhciBmb3JtYXRbXSA9ICIl
bGYiOworCisgIGlmIChsZW5ndGggPD0gYnVmZmVyU2l6ZSkgeworICAgIENoYXIgYnVmZmVyW2J1
ZmZlclNpemUgKyAxXTsKKyAgICBtZW1jcHkoYnVmZmVyLCB0b2tlbi5zdGFydF8sIGxlbmd0aCk7
CisgICAgYnVmZmVyW2xlbmd0aF0gPSAwOworICAgIGNvdW50ID0gc3NjYW5mKGJ1ZmZlciwgZm9y
bWF0LCAmdmFsdWUpOworICB9IGVsc2UgeworICAgIHN0ZDo6c3RyaW5nIGJ1ZmZlcih0b2tlbi5z
dGFydF8sIHRva2VuLmVuZF8pOworICAgIGNvdW50ID0gc3NjYW5mKGJ1ZmZlci5jX3N0cigpLCBm
b3JtYXQsICZ2YWx1ZSk7CisgIH0KKworICBpZiAoY291bnQgIT0gMSkKKyAgICByZXR1cm4gYWRk
RXJyb3IoIiciICsgc3RkOjpzdHJpbmcodG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKSArCisgICAg
ICAgICAgICAgICAgICAgICAgICAiJyBpcyBub3QgYSBudW1iZXIuIiwKKyAgICAgICAgICAgICAg
ICAgICAgdG9rZW4pOworICBkZWNvZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCiti
b29sIE91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbikgeworICBzdGQ6OnN0cmlu
ZyBkZWNvZGVkX3N0cmluZzsKKyAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW4sIGRlY29kZWRfc3Ry
aW5nKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIFZhbHVlIGRlY29kZWQoZGVjb2RlZF9zdHJpbmcp
OworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOwor
fQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJp
bmcmIGRlY29kZWQpIHsKKyAgZGVjb2RlZC5yZXNlcnZlKHRva2VuLmVuZF8gLSB0b2tlbi5zdGFy
dF8gLSAyKTsKKyAgTG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAg
JyInCisgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVuZF8gLSAxOyAgICAgICAvLyBkbyBub3QgaW5j
bHVkZSAnIicKKyAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kKSB7CisgICAgQ2hhciBjID0gKmN1cnJl
bnQrKzsKKyAgICBpZiAoYyA9PSAnIicpCisgICAgICBicmVhazsKKyAgICBlbHNlIGlmIChjID09
ICdcXCcpIHsKKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCkKKyAgICAgICAgcmV0dXJuIGFkZEVy
cm9yKCJFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOwor
ICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsrOworICAgICAgc3dpdGNoIChlc2NhcGUpIHsK
KyAgICAgIGNhc2UgJyInOgorICAgICAgICBkZWNvZGVkICs9ICciJzsKKyAgICAgICAgYnJlYWs7
CisgICAgICBjYXNlICcvJzoKKyAgICAgICAgZGVjb2RlZCArPSAnLyc7CisgICAgICAgIGJyZWFr
OworICAgICAgY2FzZSAnXFwnOgorICAgICAgICBkZWNvZGVkICs9ICdcXCc7CisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSAnYic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xiJzsKKyAgICAgICAg
YnJlYWs7CisgICAgICBjYXNlICdmJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXGYnOworICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ24nOgorICAgICAgICBkZWNvZGVkICs9ICdcbic7CisgICAg
ICAgIGJyZWFrOworICAgICAgY2FzZSAncic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xyJzsKKyAg
ICAgICAgYnJlYWs7CisgICAgICBjYXNlICd0JzoKKyAgICAgICAgZGVjb2RlZCArPSAnXHQnOwor
ICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3UnOiB7CisgICAgICAgIHVuc2lnbmVkIGludCB1
bmljb2RlOworICAgICAgICBpZiAoIWRlY29kZVVuaWNvZGVDb2RlUG9pbnQodG9rZW4sIGN1cnJl
bnQsIGVuZCwgdW5pY29kZSkpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWNv
ZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2RlKTsKKyAgICAgIH0gYnJlYWs7CisgICAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gYWRkRXJyb3IoIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4g
c3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICBk
ZWNvZGVkICs9IGM7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJl
YWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkgeworCisgIGlmICghZGVjb2Rl
VW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQorICAg
IHJldHVybiBmYWxzZTsKKyAgaWYgKHVuaWNvZGUgPj0gMHhEODAwICYmIHVuaWNvZGUgPD0gMHhE
QkZGKSB7CisgICAgLy8gc3Vycm9nYXRlIHBhaXJzCisgICAgaWYgKGVuZCAtIGN1cnJlbnQgPCA2
KQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAgICJhZGRpdGlvbmFsIHNpeCBjaGFy
YWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIuIiwKKyAgICAg
ICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsKKyAgICB1bnNpZ25lZCBpbnQgc3Vycm9n
YXRlUGFpcjsKKyAgICBpZiAoKihjdXJyZW50KyspID09ICdcXCcgJiYgKihjdXJyZW50KyspID09
ICd1JykgeworICAgICAgaWYgKGRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3Vy
cmVudCwgZW5kLCBzdXJyb2dhdGVQYWlyKSkgeworICAgICAgICB1bmljb2RlID0gMHgxMDAwMCAr
ICgodW5pY29kZSAmIDB4M0ZGKSA8PCAxMCkgKyAoc3Vycm9nYXRlUGFpciAmIDB4M0ZGKTsKKyAg
ICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlCisgICAgICByZXR1
cm4gYWRkRXJyb3IoImV4cGVjdGluZyBhbm90aGVyIFxcdSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vj
b25kIGhhbGYgb2YgIgorICAgICAgICAgICAgICAgICAgICAgICJhIHVuaWNvZGUgc3Vycm9nYXRl
IHBhaXIiLAorICAgICAgICAgICAgICAgICAgICAgIHRva2VuLAorICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6
ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7Cisg
IGlmIChlbmQgLSBjdXJyZW50IDwgNCkKKyAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICJC
YWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBmb3VyIGRpZ2l0cyBleHBlY3Rl
ZC4iLAorICAgICAgICB0b2tlbiwKKyAgICAgICAgY3VycmVudCk7CisgIHVuaWNvZGUgPSAwOwor
ICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytpbmRleCkgeworICAgIENoYXIgYyA9
ICpjdXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAgICBpZiAoYyA+PSAnMCcgJiYgYyA8
PSAnOScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7CisgICAgZWxzZSBpZiAoYyA+PSAnYScg
JiYgYyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAnYScgKyAxMDsKKyAgICBlbHNlIGlm
IChjID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdBJyArIDEwOwor
ICAgIGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgICAiQmFkIHVuaWNvZGUg
ZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwgZGlnaXQgZXhwZWN0ZWQuIiwK
KyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsKKyAgfQorICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbAorT3VyUmVhZGVyOjphZGRFcnJvcihjb25zdCBzdGQ6OnN0cmluZyYgbWVz
c2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSkgeworICBFcnJvckluZm8gaW5mbzsK
KyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGlu
Zm8uZXh0cmFfID0gZXh0cmE7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWNvdmVyRnJvbUVycm9yKFRva2VuVHlwZSBz
a2lwVW50aWxUb2tlbikgeworICBpbnQgZXJyb3JDb3VudCA9IGludChlcnJvcnNfLnNpemUoKSk7
CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAoIXJlYWRUb2tlbihza2lwKSkK
KyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBkaXNjYXJkIGVycm9ycyBjYXVz
ZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBza2lwVW50aWxUb2tlbiB8fCBz
a2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCisgICAgICBicmVhazsKKyAgfQorICBlcnJv
cnNfLnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIE91clJl
YWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikgeworICBhZGRFcnJv
cihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHNraXBVbnRpbFRv
a2VuKTsKK30KKworVmFsdWUmIE91clJlYWRlcjo6Y3VycmVudFZhbHVlKCkgeyByZXR1cm4gKihu
b2Rlc18udG9wKCkpOyB9CisKK091clJlYWRlcjo6Q2hhciBPdXJSZWFkZXI6OmdldE5leHRDaGFy
KCkgeworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4gMDsKKyAgcmV0dXJuICpj
dXJyZW50XysrOworfQorCit2b2lkIE91clJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1u
KExvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYg
Y29sdW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbl87CisgIExvY2F0aW9u
IGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQg
PCBsb2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsr
OworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnXG4nKQorICAg
ICAgICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsr
bGluZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAgICAgbGFzdExpbmVTdGFydCA9
IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfQorICB9CisgIC8vIGNvbHVtbiAmIGxpbmUg
c3RhcnQgYXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7
CisgICsrbGluZTsKK30KKworc3RkOjpzdHJpbmcgT3VyUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVB
bmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgaW50IGxpbmUsIGNvbHVtbjsK
KyAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4pOworICBj
aGFyIGJ1ZmZlclsxOCArIDE2ICsgMTYgKyAxXTsKKyAgc25wcmludGYoYnVmZmVyLCBzaXplb2Yo
YnVmZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBi
dWZmZXI7Cit9CisKK3N0ZDo6c3RyaW5nIE91clJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNz
YWdlcygpIGNvbnN0IHsKKyAgc3RkOjpzdHJpbmcgZm9ybWF0dGVkTWVzc2FnZTsKKyAgZm9yIChF
cnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAg
aXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0
IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Cisg
ICAgICAgICIqICIgKyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IudG9rZW5fLnN0YXJ0
XykgKyAiXG4iOworICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2Vf
ICsgIlxuIjsKKyAgICBpZiAoZXJyb3IuZXh0cmFfKQorICAgICAgZm9ybWF0dGVkTWVzc2FnZSAr
PQorICAgICAgICAgICJTZWUgIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRy
YV8pICsgIiBmb3IgZGV0YWlsLlxuIjsKKyAgfQorICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsK
K30KKworc3RkOjp2ZWN0b3I8T3VyUmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IE91clJlYWRlcjo6
Z2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsKKyAgc3RkOjp2ZWN0b3I8T3VyUmVhZGVyOjpT
dHJ1Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9yIChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9y
IGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAgICAgaXRFcnJvciAhPSBlcnJvcnNfLmVu
ZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNvbnN0IEVycm9ySW5mbyYgZXJyb3IgPSAq
aXRFcnJvcjsKKyAgICBPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvciBzdHJ1Y3R1cmVkOworICAg
IHN0cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9rZW5fLnN0YXJ0XyAtIGJlZ2luXzsK
KyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9yLnRva2VuXy5lbmRfIC0gYmVnaW5f
OworICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2VfOworICAgIGFsbEVycm9y
cy5wdXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0dXJuIGFsbEVycm9yczsKK30KKwor
Ym9vbCBPdXJSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6
c3RyaW5nJiBtZXNzYWdlKSB7CisgIHNpemVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBp
Zih2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zmc2V0
TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0
b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVl
LmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBlbmRfICsgdmFsdWUuZ2V0T2Zmc2V0
TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47CisgIGlu
Zm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IDA7CisgIGVycm9yc18ucHVz
aF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnB1c2hF
cnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBWYWx1ZSYgZXh0cmEpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlm
KHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2YWx1ZS5nZXRPZmZzZXRM
aW1pdCgpID4gbGVuZ3RoCisgICAgfHwgZXh0cmEuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkK
KyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2Vu
RXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7
CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJv
ckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1l
c3NhZ2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91
clJlYWRlcjo6Z29vZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFlcnJvcnNfLnNpemUoKTsKK30KKwor
CitjbGFzcyBPdXJDaGFyUmVhZGVyIDogcHVibGljIENoYXJSZWFkZXIgeworICBib29sIGNvbnN0
IGNvbGxlY3RDb21tZW50c187CisgIE91clJlYWRlciByZWFkZXJfOworcHVibGljOgorICBPdXJD
aGFyUmVhZGVyKAorICAgIGJvb2wgY29sbGVjdENvbW1lbnRzLAorICAgIE91ckZlYXR1cmVzIGNv
bnN0JiBmZWF0dXJlcykKKyAgOiBjb2xsZWN0Q29tbWVudHNfKGNvbGxlY3RDb21tZW50cykKKyAg
LCByZWFkZXJfKGZlYXR1cmVzKQorICB7fQorICBib29sIHBhcnNlKAorICAgICAgY2hhciBjb25z
dCogYmVnaW5Eb2MsIGNoYXIgY29uc3QqIGVuZERvYywKKyAgICAgIFZhbHVlKiByb290LCBzdGQ6
OnN0cmluZyogZXJycykgeworICAgIGJvb2wgb2sgPSByZWFkZXJfLnBhcnNlKGJlZ2luRG9jLCBl
bmREb2MsICpyb290LCBjb2xsZWN0Q29tbWVudHNfKTsKKyAgICBpZiAoZXJycykgeworICAgICAg
KmVycnMgPSByZWFkZXJfLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKKyAgICB9CisgICAg
cmV0dXJuIG9rOworICB9Cit9OworCitDaGFyUmVhZGVyQnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxk
ZXIoKQoreworICBzZXREZWZhdWx0cygmc2V0dGluZ3NfKTsKK30KK0NoYXJSZWFkZXJCdWlsZGVy
Ojp+Q2hhclJlYWRlckJ1aWxkZXIoKQore30KK0NoYXJSZWFkZXIqIENoYXJSZWFkZXJCdWlsZGVy
OjpuZXdDaGFyUmVhZGVyKCkgY29uc3QKK3sKKyAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSBzZXR0
aW5nc19bImNvbGxlY3RDb21tZW50cyJdLmFzQm9vbCgpOworICBPdXJGZWF0dXJlcyBmZWF0dXJl
cyA9IE91ckZlYXR1cmVzOjphbGwoKTsKKyAgZmVhdHVyZXMuYWxsb3dDb21tZW50c18gPSBzZXR0
aW5nc19bImFsbG93Q29tbWVudHMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuc3RyaWN0Um9vdF8g
PSBzZXR0aW5nc19bInN0cmljdFJvb3QiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dEcm9w
cGVkTnVsbFBsYWNlaG9sZGVyc18gPSBzZXR0aW5nc19bImFsbG93RHJvcHBlZE51bGxQbGFjZWhv
bGRlcnMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dOdW1lcmljS2V5c18gPSBzZXR0aW5n
c19bImFsbG93TnVtZXJpY0tleXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTaW5nbGVR
dW90ZXNfID0gc2V0dGluZ3NfWyJhbGxvd1NpbmdsZVF1b3RlcyJdLmFzQm9vbCgpOworICBmZWF0
dXJlcy5zdGFja0xpbWl0XyA9IHNldHRpbmdzX1sic3RhY2tMaW1pdCJdLmFzSW50KCk7CisgIGZl
YXR1cmVzLmZhaWxJZkV4dHJhXyA9IHNldHRpbmdzX1siZmFpbElmRXh0cmEiXS5hc0Jvb2woKTsK
KyAgZmVhdHVyZXMucmVqZWN0RHVwS2V5c18gPSBzZXR0aW5nc19bInJlamVjdER1cEtleXMiXS5h
c0Jvb2woKTsKKyAgZmVhdHVyZXMuYWxsb3dTcGVjaWFsRmxvYXRzXyA9IHNldHRpbmdzX1siYWxs
b3dTcGVjaWFsRmxvYXRzIl0uYXNCb29sKCk7CisgIHJldHVybiBuZXcgT3VyQ2hhclJlYWRlcihj
b2xsZWN0Q29tbWVudHMsIGZlYXR1cmVzKTsKK30KK3N0YXRpYyB2b2lkIGdldFZhbGlkUmVhZGVy
S2V5cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4qIHZhbGlkX2tleXMpCit7CisgIHZhbGlkX2tleXMt
PmNsZWFyKCk7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29sbGVjdENvbW1lbnRzIik7CisgIHZh
bGlkX2tleXMtPmluc2VydCgiYWxsb3dDb21tZW50cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQo
InN0cmljdFJvb3QiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0Ryb3BwZWROdWxsUGxh
Y2Vob2xkZXJzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dOdW1lcmljS2V5cyIpOwor
ICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93U2luZ2xlUXVvdGVzIik7CisgIHZhbGlkX2tleXMt
Pmluc2VydCgic3RhY2tMaW1pdCIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImZhaWxJZkV4dHJh
Iik7CisgIHZhbGlkX2tleXMtPmluc2VydCgicmVqZWN0RHVwS2V5cyIpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoImFsbG93U3BlY2lhbEZsb2F0cyIpOworfQorYm9vbCBDaGFyUmVhZGVyQnVpbGRl
cjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFsaWQpIGNvbnN0Cit7CisgIEpzb246OlZhbHVl
IG15X2ludmFsaWQ7CisgIGlmICghaW52YWxpZCkgaW52YWxpZCA9ICZteV9pbnZhbGlkOyAgLy8g
c28gd2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3IgTlVMTAorICBKc29uOjpWYWx1ZSYgaW52ID0g
KmludmFsaWQ7CisgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiB2YWxpZF9rZXlzOworICBnZXRWYWxp
ZFJlYWRlcktleXMoJnZhbGlkX2tleXMpOworICBWYWx1ZTo6TWVtYmVycyBrZXlzID0gc2V0dGlu
Z3NfLmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVfdCBuID0ga2V5cy5zaXplKCk7CisgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgc3RkOjpzdHJpbmcgY29uc3QmIGtleSA9
IGtleXNbaV07CisgICAgaWYgKHZhbGlkX2tleXMuZmluZChrZXkpID09IHZhbGlkX2tleXMuZW5k
KCkpIHsKKyAgICAgIGludltrZXldID0gc2V0dGluZ3NfW2tleV07CisgICAgfQorICB9CisgIHJl
dHVybiAwdSA9PSBpbnYuc2l6ZSgpOworfQorVmFsdWUmIENoYXJSZWFkZXJCdWlsZGVyOjpvcGVy
YXRvcltdKHN0ZDo6c3RyaW5nIGtleSkKK3sKKyAgcmV0dXJuIHNldHRpbmdzX1trZXldOworfQor
Ly8gc3RhdGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKEpzb246OlZhbHVl
KiBzZXR0aW5ncykKK3sKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlXQorICAoKnNl
dHRpbmdzKVsiYWxsb3dDb21tZW50cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJzdHJpY3RS
b290Il0gPSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVy
cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd051bWVyaWNLZXlzIl0gPSBmYWxzZTsK
KyAgKCpzZXR0aW5ncylbImFsbG93U2luZ2xlUXVvdGVzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5n
cylbInN0YWNrTGltaXQiXSA9IDEwMDA7CisgICgqc2V0dGluZ3MpWyJmYWlsSWZFeHRyYSJdID0g
dHJ1ZTsKKyAgKCpzZXR0aW5ncylbInJlamVjdER1cEtleXMiXSA9IHRydWU7CisgICgqc2V0dGlu
Z3MpWyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworLy8hIFtDaGFyUmVhZGVyQnVpbGRl
clN0cmljdE1vZGVdCit9CisvLyBzdGF0aWMKK3ZvaWQgQ2hhclJlYWRlckJ1aWxkZXI6OnNldERl
ZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncykKK3sKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJE
ZWZhdWx0c10KKyAgKCpzZXR0aW5ncylbImNvbGxlY3RDb21tZW50cyJdID0gdHJ1ZTsKKyAgKCpz
ZXR0aW5ncylbImFsbG93Q29tbWVudHMiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJzdHJpY3RS
b290Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRl
cnMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dOdW1lcmljS2V5cyJdID0gZmFsc2U7
CisgICgqc2V0dGluZ3MpWyJhbGxvd1NpbmdsZVF1b3RlcyJdID0gZmFsc2U7CisgICgqc2V0dGlu
Z3MpWyJzdGFja0xpbWl0Il0gPSAxMDAwOworICAoKnNldHRpbmdzKVsiZmFpbElmRXh0cmEiXSA9
IGZhbHNlOworICAoKnNldHRpbmdzKVsicmVqZWN0RHVwS2V5cyJdID0gZmFsc2U7CisgICgqc2V0
dGluZ3MpWyJhbGxvd1NwZWNpYWxGbG9hdHMiXSA9IGZhbHNlOworLy8hIFtDaGFyUmVhZGVyQnVp
bGRlckRlZmF1bHRzXQorfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyBnbG9iYWwgZnVuY3Rpb25zCisKK2Jvb2wgcGFyc2VGcm9tU3RyZWFtKAorICAgIENoYXJSZWFk
ZXI6OkZhY3RvcnkgY29uc3QmIGZhY3QsIHN0ZDo6aXN0cmVhbSYgc2luLAorICAgIFZhbHVlKiBy
b290LCBzdGQ6OnN0cmluZyogZXJycykKK3sKKyAgc3RkOjpvc3RyaW5nc3RyZWFtIHNzaW47Cisg
IHNzaW4gPDwgc2luLnJkYnVmKCk7CisgIHN0ZDo6c3RyaW5nIGRvYyA9IHNzaW4uc3RyKCk7Cisg
IGNoYXIgY29uc3QqIGJlZ2luID0gZG9jLmRhdGEoKTsKKyAgY2hhciBjb25zdCogZW5kID0gYmVn
aW4gKyBkb2Muc2l6ZSgpOworICAvLyBOb3RlIHRoYXQgd2UgZG8gbm90IGFjdHVhbGx5IG5lZWQg
YSBudWxsLXRlcm1pbmF0b3IuCisgIENoYXJSZWFkZXJQdHIgY29uc3QgcmVhZGVyKGZhY3QubmV3
Q2hhclJlYWRlcigpKTsKKyAgcmV0dXJuIHJlYWRlci0+cGFyc2UoYmVnaW4sIGVuZCwgcm9vdCwg
ZXJycyk7Cit9CisKK3N0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mIHNpbiwg
VmFsdWUmIHJvb3QpIHsKKyAgQ2hhclJlYWRlckJ1aWxkZXIgYjsKKyAgc3RkOjpzdHJpbmcgZXJy
czsKKyAgYm9vbCBvayA9IHBhcnNlRnJvbVN0cmVhbShiLCBzaW4sICZyb290LCAmZXJycyk7Cisg
IGlmICghb2spIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICJFcnJvciBmcm9t
IHJlYWRlcjogJXMiLAorICAgICAgICAgICAgZXJycy5jX3N0cigpKTsKKworICAgIHRocm93UnVu
dGltZUVycm9yKGVycnMpOworICB9CisgIHJldHVybiBzaW47Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3Jj
L2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKwor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xp
Yl9qc29uL2pzb25fdmFsdWVpdGVyYXRvci5pbmwKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29w
eXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworLy8g
aW5jbHVkZWQgYnkganNvbl92YWx1ZS5jcHAKKworbmFtZXNwYWNlIEpzb24geworCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBWYWx1ZUl0ZXJhdG9y
QmFzZQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitWYWx1ZUl0
ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoKQorICAgIDogY3VycmVudF8oKSwgaXNOdWxs
Xyh0cnVlKSB7Cit9CisKK1ZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSgKKyAg
ICBjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IGN1
cnJlbnRfKGN1cnJlbnQpLCBpc051bGxfKGZhbHNlKSB7fQorCitWYWx1ZSYgVmFsdWVJdGVyYXRv
ckJhc2U6OmRlcmVmKCkgY29uc3QgeworICByZXR1cm4gY3VycmVudF8tPnNlY29uZDsKK30KKwor
dm9pZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aW5jcmVtZW50KCkgeworICArK2N1cnJlbnRfOworfQor
Cit2b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjpkZWNyZW1lbnQoKSB7CisgIC0tY3VycmVudF87Cit9
CisKK1ZhbHVlSXRlcmF0b3JCYXNlOjpkaWZmZXJlbmNlX3R5cGUKK1ZhbHVlSXRlcmF0b3JCYXNl
Ojpjb21wdXRlRGlzdGFuY2UoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7CisjaWZkZWYg
SlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyAgcmV0dXJuIG90aGVyLmN1cnJlbnRfIC0gY3VycmVu
dF87CisjZWxzZQorICAvLyBJdGVyYXRvciBmb3IgbnVsbCB2YWx1ZSBhcmUgaW5pdGlhbGl6ZWQg
dXNpbmcgdGhlIGRlZmF1bHQKKyAgLy8gY29uc3RydWN0b3IsIHdoaWNoIGluaXRpYWxpemUgY3Vy
cmVudF8gdG8gdGhlIGRlZmF1bHQKKyAgLy8gc3RkOjptYXA6Oml0ZXJhdG9yLiBBcyBiZWdpbigp
IGFuZCBlbmQoKSBhcmUgdHdvIGluc3RhbmNlCisgIC8vIG9mIHRoZSBkZWZhdWx0IHN0ZDo6bWFw
OjppdGVyYXRvciwgdGhleSBjYW4gbm90IGJlIGNvbXBhcmVkLgorICAvLyBUbyBhbGxvdyB0aGlz
LCB3ZSBoYW5kbGUgdGhpcyBjb21wYXJpc29uIHNwZWNpZmljYWxseS4KKyAgaWYgKGlzTnVsbF8g
JiYgb3RoZXIuaXNOdWxsXykgeworICAgIHJldHVybiAwOworICB9CisKKyAgLy8gVXNhZ2Ugb2Yg
c3RkOjpkaXN0YW5jZSBpcyBub3QgcG9ydGFibGUgKGRvZXMgbm90IGNvbXBpbGUgd2l0aCBTdW4g
U3R1ZGlvIDEyCisgIC8vIFJvZ3VlV2F2ZSBTVEwsCisgIC8vIHdoaWNoIGlzIHRoZSBvbmUgdXNl
ZCBieSBkZWZhdWx0KS4KKyAgLy8gVXNpbmcgYSBwb3J0YWJsZSBoYW5kLW1hZGUgdmVyc2lvbiBm
b3Igbm9uIHJhbmRvbSBpdGVyYXRvciBpbnN0ZWFkOgorICAvLyAgIHJldHVybiBkaWZmZXJlbmNl
X3R5cGUoIHN0ZDo6ZGlzdGFuY2UoIGN1cnJlbnRfLCBvdGhlci5jdXJyZW50XyApICk7CisgIGRp
ZmZlcmVuY2VfdHlwZSBteURpc3RhbmNlID0gMDsKKyAgZm9yIChWYWx1ZTo6T2JqZWN0VmFsdWVz
OjppdGVyYXRvciBpdCA9IGN1cnJlbnRfOyBpdCAhPSBvdGhlci5jdXJyZW50XzsKKyAgICAgICAr
K2l0KSB7CisgICAgKytteURpc3RhbmNlOworICB9CisgIHJldHVybiBteURpc3RhbmNlOworI2Vu
ZGlmCit9CisKK2Jvb2wgVmFsdWVJdGVyYXRvckJhc2U6OmlzRXF1YWwoY29uc3QgU2VsZlR5cGUm
IG90aGVyKSBjb25zdCB7CisgIGlmIChpc051bGxfKSB7CisgICAgcmV0dXJuIG90aGVyLmlzTnVs
bF87CisgIH0KKyAgcmV0dXJuIGN1cnJlbnRfID09IG90aGVyLmN1cnJlbnRfOworfQorCit2b2lk
IFZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgeworICBjdXJy
ZW50XyA9IG90aGVyLmN1cnJlbnRfOworICBpc051bGxfID0gb3RoZXIuaXNOdWxsXzsKK30KKwor
VmFsdWUgVmFsdWVJdGVyYXRvckJhc2U6OmtleSgpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWU6OkNa
U3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmIChjenN0cmluZy5kYXRh
KCkpIHsKKyAgICBpZiAoY3pzdHJpbmcuaXNTdGF0aWNTdHJpbmcoKSkKKyAgICAgIHJldHVybiBW
YWx1ZShTdGF0aWNTdHJpbmcoY3pzdHJpbmcuZGF0YSgpKSk7CisgICAgcmV0dXJuIFZhbHVlKGN6
c3RyaW5nLmRhdGEoKSwgY3pzdHJpbmcuZGF0YSgpICsgY3pzdHJpbmcubGVuZ3RoKCkpOworICB9
CisgIHJldHVybiBWYWx1ZShjenN0cmluZy5pbmRleCgpKTsKK30KKworVUludCBWYWx1ZUl0ZXJh
dG9yQmFzZTo6aW5kZXgoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmlu
ZyA9ICgqY3VycmVudF8pLmZpcnN0OworICBpZiAoIWN6c3RyaW5nLmRhdGEoKSkKKyAgICByZXR1
cm4gY3pzdHJpbmcuaW5kZXgoKTsKKyAgcmV0dXJuIFZhbHVlOjpVSW50KC0xKTsKK30KKworc3Rk
OjpzdHJpbmcgVmFsdWVJdGVyYXRvckJhc2U6Om5hbWUoKSBjb25zdCB7CisgIGNoYXIgY29uc3Qq
IGtlZXk7CisgIGNoYXIgY29uc3QqIGVuZDsKKyAga2VleSA9IG1lbWJlck5hbWUoJmVuZCk7Cisg
IGlmICgha2VleSkgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgIHJldHVybiBzdGQ6OnN0cmluZyhr
ZWV5LCBlbmQpOworfQorCitjaGFyIGNvbnN0KiBWYWx1ZUl0ZXJhdG9yQmFzZTo6bWVtYmVyTmFt
ZSgpIGNvbnN0IHsKKyAgY29uc3QgY2hhciogY25hbWUgPSAoKmN1cnJlbnRfKS5maXJzdC5kYXRh
KCk7CisgIHJldHVybiBjbmFtZSA/IGNuYW1lIDogIiI7Cit9CisKK2NoYXIgY29uc3QqIFZhbHVl
SXRlcmF0b3JCYXNlOjptZW1iZXJOYW1lKGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0IHsKKyAgY29u
c3QgY2hhciogY25hbWUgPSAoKmN1cnJlbnRfKS5maXJzdC5kYXRhKCk7CisgIGlmICghY25hbWUp
IHsKKyAgICAqZW5kID0gTlVMTDsKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorICAqZW5kID0gY25h
bWUgKyAoKmN1cnJlbnRfKS5maXJzdC5sZW5ndGgoKTsKKyAgcmV0dXJuIGNuYW1lOworfQorCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBWYWx1ZUNv
bnN0SXRlcmF0b3IKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
VmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0b3IoKSB7fQorCitWYWx1ZUNvbnN0
SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvcigKKyAgICBjb25zdCBWYWx1ZTo6T2JqZWN0VmFs
dWVzOjppdGVyYXRvciYgY3VycmVudCkKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKGN1cnJlbnQp
IHt9CisKK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0
b3IgY29uc3QmIG90aGVyKQorICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHt9CisKK1Zh
bHVlQ29uc3RJdGVyYXRvciYgVmFsdWVDb25zdEl0ZXJhdG9yOjoKK29wZXJhdG9yPShjb25zdCBW
YWx1ZUl0ZXJhdG9yQmFzZSYgb3RoZXIpIHsKKyAgY29weShvdGhlcik7CisgIHJldHVybiAqdGhp
czsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xh
c3MgVmFsdWVJdGVyYXRvcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKCkge30KKworVmFsdWVJdGVyYXRvcjo6
VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciYgY3VycmVu
dCkKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKGN1cnJlbnQpIHt9CisKK1ZhbHVlSXRlcmF0b3I6
OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcikKKyAgICA6IFZh
bHVlSXRlcmF0b3JCYXNlKG90aGVyKSB7CisgIHRocm93UnVudGltZUVycm9yKCJDb25zdEl0ZXJh
dG9yIHRvIEl0ZXJhdG9yIHNob3VsZCBuZXZlciBiZSBhbGxvd2VkLiIpOworfQorCitWYWx1ZUl0
ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlSXRlcmF0b3ImIG90aGVyKQorICAgIDog
VmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHt9CisKK1ZhbHVlSXRlcmF0b3ImIFZhbHVlSXRlcmF0
b3I6Om9wZXJhdG9yPShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIHsKKyAgY29weShvdGhlcik7Cisg
IHJldHVybiAqdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZWl0
ZXJhdG9yLmlubAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFs
dWUuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDExIEJhcHRpc3RlIExl
cGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21h
aW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisv
LyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5z
b3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJ
T04pCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8anNvbi92YWx1ZS5o
PgorI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9J
U19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHNzdHJlYW0+Cisj
aW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGNhc3NlcnQ+
CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25zdHN0cmluZy5oPgor
I2VuZGlmCisjaW5jbHVkZSA8Y3N0ZGRlZj4gLy8gc2l6ZV90CisjaW5jbHVkZSA8YWxnb3JpdGht
PiAvLyBtaW4oKQorCisjZGVmaW5lIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFIGFzc2VydChmYWxz
ZSkKKworLyoKKy0tIFZhbHZlIDEvNy8xNgorNDcwMiB1bnJlYWNoYWJsZSBjb2RlCisqLworI3By
YWdtYSB3YXJuaW5nIChwdXNoKQorI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0NzAyKQorCitu
YW1lc3BhY2UgSnNvbiB7CisKKy8vIFRoaXMgaXMgYSB3YWxrYXJvdW5kIHRvIGF2b2lkIHRoZSBz
dGF0aWMgaW5pdGlhbGl6YXRpb24gb2YgVmFsdWU6Om51bGwuCisvLyBrTnVsbCBtdXN0IGJlIHdv
cmQtYWxpZ25lZCB0byBhdm9pZCBjcmFzaGluZyBvbiBBUk0uICBXZSB1c2UgYW4gYWxpZ25tZW50
IG9mCisvLyA4IChpbnN0ZWFkIG9mIDQpIGFzIGEgYml0IG9mIGZ1dHVyZS1wcm9vZmluZy4KKyNp
ZiBkZWZpbmVkKF9fQVJNRUxfXykKKyNkZWZpbmUgQUxJR05BUyhieXRlX2FsaWdubWVudCkgX19h
dHRyaWJ1dGVfXygoYWxpZ25lZChieXRlX2FsaWdubWVudCkpKQorI2Vsc2UKKyNkZWZpbmUgQUxJ
R05BUyhieXRlX2FsaWdubWVudCkKKyNlbmRpZgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg
QUxJR05BUyg4KSBrTnVsbFtzaXplb2YoVmFsdWUpXSA9IHsgMCB9OworY29uc3QgdW5zaWduZWQg
Y2hhciYga051bGxSZWYgPSBrTnVsbFswXTsKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6bnVsbCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVmFsdWUmPihrTnVsbFJlZik7Citjb25zdCBWYWx1ZSYgVmFs
dWU6Om51bGxSZWYgPSBudWxsOworCitjb25zdCBJbnQgVmFsdWU6Om1pbkludCA9IEludCh+KFVJ
bnQoLTEpIC8gMikpOworY29uc3QgSW50IFZhbHVlOjptYXhJbnQgPSBJbnQoVUludCgtMSkgLyAy
KTsKK2NvbnN0IFVJbnQgVmFsdWU6Om1heFVJbnQgPSBVSW50KC0xKTsKKyNpZiBkZWZpbmVkKEpT
T05fSEFTX0lOVDY0KQorY29uc3QgSW50NjQgVmFsdWU6Om1pbkludDY0ID0gSW50NjQofihVSW50
NjQoLTEpIC8gMikpOworY29uc3QgSW50NjQgVmFsdWU6Om1heEludDY0ID0gSW50NjQoVUludDY0
KC0xKSAvIDIpOworY29uc3QgVUludDY0IFZhbHVlOjptYXhVSW50NjQgPSBVSW50NjQoLTEpOwor
Ly8gVGhlIGNvbnN0YW50IGlzIGhhcmQtY29kZWQgYmVjYXVzZSBzb21lIGNvbXBpbGVyIGhhdmUg
dHJvdWJsZQorLy8gY29udmVydGluZyBWYWx1ZTo6bWF4VUludDY0IHRvIGEgZG91YmxlIGNvcnJl
Y3RseSAoQUlYL3hsQykuCisvLyBBc3N1bWVzIHRoYXQgVUludDY0IGlzIGEgNjQgYml0cyBpbnRl
Z2VyLgorc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhVSW50NjRBc0RvdWJsZSA9IDE4NDQ2NzQ0MDcz
NzA5NTUxNjE1LjA7CisjZW5kaWYgLy8gZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK2NvbnN0IExh
cmdlc3RJbnQgVmFsdWU6Om1pbkxhcmdlc3RJbnQgPSBMYXJnZXN0SW50KH4oTGFyZ2VzdFVJbnQo
LTEpIC8gMikpOworY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWF4TGFyZ2VzdEludCA9IExhcmdl
c3RJbnQoTGFyZ2VzdFVJbnQoLTEpIC8gMik7Citjb25zdCBMYXJnZXN0VUludCBWYWx1ZTo6bWF4
TGFyZ2VzdFVJbnQgPSBMYXJnZXN0VUludCgtMSk7CisKKyNpZiAhZGVmaW5lZChKU09OX1VTRV9J
TlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
Pgorc3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWluLCBVIG1heCkgewor
ICByZXR1cm4gZCA+PSBtaW4gJiYgZCA8PSBtYXg7Cit9CisjZWxzZSAgLy8gaWYgIWRlZmluZWQo
SlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCitzdGF0aWMgaW5saW5lIGRvdWJsZSBp
bnRlZ2VyVG9Eb3VibGUoSnNvbjo6VUludDY0IHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KEludDY0KHZhbHVlIC8gMikpICogMi4wICsgSW50NjQodmFsdWUgJiAxKTsKK30K
KwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgZG91YmxlIGludGVnZXJUb0Rv
dWJsZShUIHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKK30K
KwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CitzdGF0aWMgaW5saW5lIGJvb2wg
SW5SYW5nZShkb3VibGUgZCwgVCBtaW4sIFUgbWF4KSB7CisgIHJldHVybiBkID49IGludGVnZXJU
b0RvdWJsZShtaW4pICYmIGQgPD0gaW50ZWdlclRvRG91YmxlKG1heCk7Cit9CisjZW5kaWYgLy8g
aWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisKKy8qKiBEdXBs
aWNhdGVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHZhbHVlLgorICogQHBhcmFtIHZhbHVlIFBvaW50
ZXIgdG8gdGhlIHN0cmluZyB0byBkdXBsaWNhdGUuIE11c3QgYmUgemVyby10ZXJtaW5hdGVkIGlm
CisgKiAgICAgICAgICAgICAgbGVuZ3RoIGlzICJ1bmtub3duIi4KKyAqIEBwYXJhbSBsZW5ndGgg
TGVuZ3RoIG9mIHRoZSB2YWx1ZS4gaWYgZXF1YWxzIHRvIHVua25vd24sIHRoZW4gaXQgd2lsbCBi
ZQorICogICAgICAgICAgICAgICBjb21wdXRlZCB1c2luZyBzdHJsZW4odmFsdWUpLgorICogQHJl
dHVybiBQb2ludGVyIG9uIHRoZSBkdXBsaWNhdGUgaW5zdGFuY2Ugb2Ygc3RyaW5nLgorICovCitz
dGF0aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKGNvbnN0IGNoYXIqIHZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3Ro
KSB7CisgIC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8gbWFsbG9j
IGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0byBhIHNhbmUgdmFsdWUuCisgIGlmIChs
ZW5ndGggPj0gKHNpemVfdClWYWx1ZTo6bWF4SW50KQorICAgIGxlbmd0aCA9IFZhbHVlOjptYXhJ
bnQgLSAxOworCisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2Mo
bGVuZ3RoICsgMSkpOworICBpZiAobmV3U3RyaW5nID09IE5VTEwpIHsKKyAgICB0aHJvd1J1bnRp
bWVFcnJvcigKKyAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVTdHJpbmdWYWx1ZSgp
OiAiCisgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlciIpOwor
ICB9CisgIG1lbWNweShuZXdTdHJpbmcsIHZhbHVlLCBsZW5ndGgpOworICBuZXdTdHJpbmdbbGVu
Z3RoXSA9IDA7CisgIHJldHVybiBuZXdTdHJpbmc7Cit9CisKKy8qIFJlY29yZCB0aGUgbGVuZ3Ro
IGFzIGEgcHJlZml4LgorICovCitzdGF0aWMgaW5saW5lIGNoYXIqIGR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKAorICAgIGNvbnN0IGNoYXIqIHZhbHVlLAorICAgIHVuc2lnbmVkIGludCBs
ZW5ndGgpCit7CisgIC8vIEF2b2lkIGFuIGludGVnZXIgb3ZlcmZsb3cgaW4gdGhlIGNhbGwgdG8g
bWFsbG9jIGJlbG93IGJ5IGxpbWl0aW5nIGxlbmd0aAorICAvLyB0byBhIHNhbmUgdmFsdWUuCisg
IEpTT05fQVNTRVJUX01FU1NBR0UobGVuZ3RoIDw9ICh1bnNpZ25lZClWYWx1ZTo6bWF4SW50IC0g
c2l6ZW9mKHVuc2lnbmVkKSAtIDFVLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpW
YWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogIgorICAgICAgICAgICAgICAg
ICAgICAgICJsZW5ndGggdG9vIGJpZyBmb3IgcHJlZml4aW5nIik7CisgIHVuc2lnbmVkIGFjdHVh
bExlbmd0aCA9IGxlbmd0aCArIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXplb2YodW5zaWduZWQp
KSArIDFVOworICBjaGFyKiBuZXdTdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKGFj
dHVhbExlbmd0aCkpOworICBpZiAobmV3U3RyaW5nID09IDApIHsKKyAgICB0aHJvd1J1bnRpbWVF
cnJvcigKKyAgICAgICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdW
YWx1ZSgpOiAiCisgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZl
ciIpOworICB9CisgICpyZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4obmV3U3RyaW5nKSA9IGxl
bmd0aDsKKyAgbWVtY3B5KG5ld1N0cmluZyArIHNpemVvZih1bnNpZ25lZCksIHZhbHVlLCBsZW5n
dGgpOworICBuZXdTdHJpbmdbYWN0dWFsTGVuZ3RoIC0gMVVdID0gMDsgLy8gdG8gYXZvaWQgYnVm
ZmVyIG92ZXItcnVuIGFjY2lkZW50cyBieSB1c2VycyBsYXRlcgorICByZXR1cm4gbmV3U3RyaW5n
OworfQoraW5saW5lIHN0YXRpYyB2b2lkIGRlY29kZVByZWZpeGVkU3RyaW5nKAorICAgIGJvb2wg
aXNQcmVmaXhlZCwgY2hhciBjb25zdCogcHJlZml4ZWQsCisgICAgdW5zaWduZWQqIGxlbmd0aCwg
Y2hhciBjb25zdCoqIHZhbHVlKQoreworICBpZiAoIWlzUHJlZml4ZWQpIHsKKyAgICAqbGVuZ3Ro
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmxlbihwcmVmaXhlZCkpOworICAgICp2YWx1ZSA9
IHByZWZpeGVkOworICB9IGVsc2UgeworICAgICpsZW5ndGggPSAqcmVpbnRlcnByZXRfY2FzdDx1
bnNpZ25lZCBjb25zdCo+KHByZWZpeGVkKTsKKyAgICAqdmFsdWUgPSBwcmVmaXhlZCArIHNpemVv
Zih1bnNpZ25lZCk7CisgIH0KK30KKy8qKiBGcmVlIHRoZSBzdHJpbmcgZHVwbGljYXRlZCBieSBk
dXBsaWNhdGVTdHJpbmdWYWx1ZSgpL2R1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCkuCisg
Ki8KK3N0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlU3RyaW5nVmFsdWUoY2hhciogdmFsdWUpIHsg
ZnJlZSh2YWx1ZSk7IH0KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBWYWx1ZUludGVybmFscy4uLgorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQorCisjaW5jbHVkZSAianNvbl92YWx1ZWl0ZXJhdG9yLmlubCIKKyNlbmRpZiAv
LyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworbmFtZXNwYWNlIEpzb24gewor
CitFeGNlcHRpb246OkV4Y2VwdGlvbihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQorICA6IG1zZ18o
bXNnKQore30KK0V4Y2VwdGlvbjo6fkV4Y2VwdGlvbigpIHRocm93KCkKK3t9CitjaGFyIGNvbnN0
KiBFeGNlcHRpb246OndoYXQoKSBjb25zdCB0aHJvdygpCit7CisgIHJldHVybiBtc2dfLmNfc3Ry
KCk7Cit9CitSdW50aW1lRXJyb3I6OlJ1bnRpbWVFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNn
KQorICA6IEV4Y2VwdGlvbihtc2cpCit7fQorTG9naWNFcnJvcjo6TG9naWNFcnJvcihzdGQ6OnN0
cmluZyBjb25zdCYgbXNnKQorICA6IEV4Y2VwdGlvbihtc2cpCit7fQordm9pZCB0aHJvd1J1bnRp
bWVFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQoreworICB0aHJvdyBSdW50aW1lRXJyb3Io
bXNnKTsKK30KK3ZvaWQgdGhyb3dMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCit7
CisgIHRocm93IExvZ2ljRXJyb3IobXNnKTsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWU6OkNvbW1lbnRJbmZvCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1ZhbHVlOjpDb21tZW50SW5mbzo6Q29t
bWVudEluZm8oKSA6IGNvbW1lbnRfKDApIHt9CisKK1ZhbHVlOjpDb21tZW50SW5mbzo6fkNvbW1l
bnRJbmZvKCkgeworICBpZiAoY29tbWVudF8pCisgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKGNvbW1l
bnRfKTsKK30KKwordm9pZCBWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQoY29uc3QgY2hh
ciogdGV4dCwgc2l6ZV90IGxlbikgeworICBpZiAoY29tbWVudF8pIHsKKyAgICByZWxlYXNlU3Ry
aW5nVmFsdWUoY29tbWVudF8pOworICAgIGNvbW1lbnRfID0gMDsKKyAgfQorICBKU09OX0FTU0VS
VCh0ZXh0ICE9IDApOworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdGV4dFswXSA9PSAn
XDAnIHx8IHRleHRbMF0gPT0gJy8nLAorICAgICAgImluIEpzb246OlZhbHVlOjpzZXRDb21tZW50
KCk6IENvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvIik7CisgIC8vIEl0IHNlZW1zIHRoYXQgLyoq
LyBzdHlsZSBjb21tZW50cyBhcmUgYWNjZXB0YWJsZSBhcyB3ZWxsLgorICBjb21tZW50XyA9IGR1
cGxpY2F0ZVN0cmluZ1ZhbHVlKHRleHQsIGxlbik7Cit9CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlOjpDWlN0cmluZworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBOb3RlczogcG9saWN5XyBpbmRp
Y2F0ZXMgaWYgdGhlIHN0cmluZyB3YXMgYWxsb2NhdGVkIHdoZW4KKy8vIGEgc3RyaW5nIGlzIHN0
b3JlZC4KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhBcnJheUluZGV4IGFpbmRleCkgOiBj
c3RyXygwKSwgaW5kZXhfKGFpbmRleCkge30KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhj
aGFyIGNvbnN0KiBzdHIsIHVuc2lnbmVkIHVsZW5ndGgsIER1cGxpY2F0aW9uUG9saWN5IGFsbG9j
YXRlKQorICAgIDogY3N0cl8oc3RyKSB7CisgIC8vIGFsbG9jYXRlICE9IGR1cGxpY2F0ZQorICBz
dG9yYWdlXy5wb2xpY3lfID0gYWxsb2NhdGUgJiAweDM7CisgIHN0b3JhZ2VfLmxlbmd0aF8gPSB1
bGVuZ3RoICYgMHgzRkZGRkZGRjsKK30KKworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhjb25z
dCBDWlN0cmluZyYgb3RoZXIpCisgICAgOiBjc3RyXyhvdGhlci5zdG9yYWdlXy5wb2xpY3lfICE9
IG5vRHVwbGljYXRpb24gJiYgb3RoZXIuY3N0cl8gIT0gMAorICAgICAgICAgICAgICAgID8gZHVw
bGljYXRlU3RyaW5nVmFsdWUob3RoZXIuY3N0cl8sIG90aGVyLnN0b3JhZ2VfLmxlbmd0aF8pCisg
ICAgICAgICAgICAgICAgOiBvdGhlci5jc3RyXykgeworICBzdG9yYWdlXy5wb2xpY3lfID0gKG90
aGVyLmNzdHJfCisgICAgICAgICAgICAgICAgID8gKHN0YXRpY19jYXN0PER1cGxpY2F0aW9uUG9s
aWN5PihvdGhlci5zdG9yYWdlXy5wb2xpY3lfKSA9PSBub0R1cGxpY2F0aW9uCisgICAgICAgICAg
ICAgICAgICAgICA/IG5vRHVwbGljYXRpb24gOiBkdXBsaWNhdGUpCisgICAgICAgICAgICAgICAg
IDogc3RhdGljX2Nhc3Q8RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGljeV8p
KTsKKyAgc3RvcmFnZV8ubGVuZ3RoXyA9IG90aGVyLnN0b3JhZ2VfLmxlbmd0aF87Cit9CisKKyNp
ZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworVmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyhD
WlN0cmluZyYmIG90aGVyKQorICA6IGNzdHJfKG90aGVyLmNzdHJfKSwgaW5kZXhfKG90aGVyLmlu
ZGV4XykgeworICBvdGhlci5jc3RyXyA9IG51bGxwdHI7Cit9CisjZW5kaWYKKworVmFsdWU6OkNa
U3RyaW5nOjp+Q1pTdHJpbmcoKSB7CisgIGlmIChjc3RyXyAmJiBzdG9yYWdlXy5wb2xpY3lfID09
IGR1cGxpY2F0ZSkKKyAgICByZWxlYXNlU3RyaW5nVmFsdWUoY29uc3RfY2FzdDxjaGFyKj4oY3N0
cl8pKTsKK30KKwordm9pZCBWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAoQ1pTdHJpbmcmIG90aGVyKSB7
CisgIHN0ZDo6c3dhcChjc3RyXywgb3RoZXIuY3N0cl8pOworICBzdGQ6OnN3YXAoaW5kZXhfLCBv
dGhlci5pbmRleF8pOworfQorCitWYWx1ZTo6Q1pTdHJpbmcmIFZhbHVlOjpDWlN0cmluZzo6b3Bl
cmF0b3I9KENaU3RyaW5nIG90aGVyKSB7CisgIHN3YXAob3RoZXIpOworICByZXR1cm4gKnRoaXM7
Cit9CisKK2Jvb2wgVmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwoY29uc3QgQ1pTdHJpbmcmIG90
aGVyKSBjb25zdCB7CisgIGlmICghY3N0cl8pIHJldHVybiBpbmRleF8gPCBvdGhlci5pbmRleF87
CisgIC8vcmV0dXJuIHN0cmNtcChjc3RyXywgb3RoZXIuY3N0cl8pIDwgMDsKKyAgLy8gQXNzdW1l
IGJvdGggYXJlIHN0cmluZ3MuCisgIHVuc2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+c3RvcmFnZV8u
bGVuZ3RoXzsKKyAgdW5zaWduZWQgb3RoZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsK
KyAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVuLCBvdGhlcl9sZW4pOworICBp
bnQgY29tcCA9IG1lbWNtcCh0aGlzLT5jc3RyXywgb3RoZXIuY3N0cl8sIG1pbl9sZW4pOworICBp
ZiAoY29tcCA8IDApIHJldHVybiB0cnVlOworICBpZiAoY29tcCA+IDApIHJldHVybiBmYWxzZTsK
KyAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7Cit9CisKK2Jvb2wgVmFsdWU6OkNaU3Ry
aW5nOjpvcGVyYXRvcj09KGNvbnN0IENaU3RyaW5nJiBvdGhlcikgY29uc3QgeworICBpZiAoIWNz
dHJfKSByZXR1cm4gaW5kZXhfID09IG90aGVyLmluZGV4XzsKKyAgLy9yZXR1cm4gc3RyY21wKGNz
dHJfLCBvdGhlci5jc3RyXykgPT0gMDsKKyAgLy8gQXNzdW1lIGJvdGggYXJlIHN0cmluZ3MuCisg
IHVuc2lnbmVkIHRoaXNfbGVuID0gdGhpcy0+c3RvcmFnZV8ubGVuZ3RoXzsKKyAgdW5zaWduZWQg
b3RoZXJfbGVuID0gb3RoZXIuc3RvcmFnZV8ubGVuZ3RoXzsKKyAgaWYgKHRoaXNfbGVuICE9IG90
aGVyX2xlbikgcmV0dXJuIGZhbHNlOworICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzLT5jc3RyXywg
b3RoZXIuY3N0cl8sIHRoaXNfbGVuKTsKKyAgcmV0dXJuIGNvbXAgPT0gMDsKK30KKworQXJyYXlJ
bmRleCBWYWx1ZTo6Q1pTdHJpbmc6OmluZGV4KCkgY29uc3QgeyByZXR1cm4gaW5kZXhfOyB9CisK
Ky8vY29uc3QgY2hhciogVmFsdWU6OkNaU3RyaW5nOjpjX3N0cigpIGNvbnN0IHsgcmV0dXJuIGNz
dHJfOyB9Citjb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmRhdGEoKSBjb25zdCB7IHJldHVy
biBjc3RyXzsgfQordW5zaWduZWQgVmFsdWU6OkNaU3RyaW5nOjpsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBzdG9yYWdlXy5sZW5ndGhfOyB9Citib29sIFZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNT
dHJpbmcoKSBjb25zdCB7IHJldHVybiBzdG9yYWdlXy5wb2xpY3lfID09IG5vRHVwbGljYXRpb247
IH0KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3Mg
VmFsdWU6OlZhbHVlCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
Ky8qISBcaW50ZXJuYWwgRGVmYXVsdCBjb25zdHJ1Y3RvciBpbml0aWFsaXphdGlvbiBtdXN0IGJl
IGVxdWl2YWxlbnQgdG86CisgKiBtZW1zZXQoIHRoaXMsIDAsIHNpemVvZihWYWx1ZSkgKQorICog
VGhpcyBvcHRpbWl6YXRpb24gaXMgdXNlZCBpbiBWYWx1ZUludGVybmFsTWFwIGZhc3QgYWxsb2Nh
dG9yLgorICovCitWYWx1ZTo6VmFsdWUoVmFsdWVUeXBlIHZ0eXBlKSB7CisgIGluaXRCYXNpYyh2
dHlwZSk7CisgIHN3aXRjaCAodnR5cGUpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgYnJlYWs7
CisgIGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICAgIHZhbHVlXy5pbnRfID0g
MDsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgdmFsdWVfLnJlYWxfID0gMC4w
OworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIHZhbHVlXy5zdHJpbmdfID0g
MDsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgor
ICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygpOworICAgIGJyZWFrOworICBjYXNl
IGJvb2xlYW5WYWx1ZToKKyAgICB2YWx1ZV8uYm9vbF8gPSBmYWxzZTsKKyAgICBicmVhazsKKyAg
ZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorfQorCitWYWx1ZTo6
VmFsdWUoSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRWYWx1ZSk7CisgIHZhbHVlXy5pbnRf
ID0gdmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1ZShVSW50IHZhbHVlKSB7CisgIGluaXRCYXNpYyh1
aW50VmFsdWUpOworICB2YWx1ZV8udWludF8gPSB2YWx1ZTsKK30KKyNpZiBkZWZpbmVkKEpTT05f
SEFTX0lOVDY0KQorVmFsdWU6OlZhbHVlKEludDY0IHZhbHVlKSB7CisgIGluaXRCYXNpYyhpbnRW
YWx1ZSk7CisgIHZhbHVlXy5pbnRfID0gdmFsdWU7Cit9CitWYWx1ZTo6VmFsdWUoVUludDY0IHZh
bHVlKSB7CisgIGluaXRCYXNpYyh1aW50VmFsdWUpOworICB2YWx1ZV8udWludF8gPSB2YWx1ZTsK
K30KKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitWYWx1ZTo6VmFsdWUoZG91
YmxlIHZhbHVlKSB7CisgIGluaXRCYXNpYyhyZWFsVmFsdWUpOworICB2YWx1ZV8ucmVhbF8gPSB2
YWx1ZTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSB7CisgIGluaXRCYXNp
YyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJl
Zml4U3RyaW5nVmFsdWUodmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdHJsZW4odmFsdWUp
KSk7Cit9CisKK1ZhbHVlOjpWYWx1ZShjb25zdCBjaGFyKiBiZWdpblZhbHVlLCBjb25zdCBjaGFy
KiBlbmRWYWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8u
c3RyaW5nXyA9CisgICAgICBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZShiZWdpblZhbHVl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kVmFsdWUgLSBiZWdpblZhbHVlKSk7Cit9CisKK1Zh
bHVlOjpWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmlu
Z1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPQorICAgICAgZHVwbGljYXRlQW5kUHJl
Zml4U3RyaW5nVmFsdWUodmFsdWUuZGF0YSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUu
bGVuZ3RoKCkpKTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IFN0YXRpY1N0cmluZyYgdmFsdWUp
IHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBjb25zdF9j
YXN0PGNoYXIqPih2YWx1ZS5jX3N0cigpKTsKK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitW
YWx1ZTo6VmFsdWUoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFz
aWMoc3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFBy
ZWZpeFN0cmluZ1ZhbHVlKHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUubGVuZ3Ro
KCkpKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6VmFsdWUoYm9vbCB2YWx1ZSkgeworICBpbml0QmFz
aWMoYm9vbGVhblZhbHVlKTsKKyAgdmFsdWVfLmJvb2xfID0gdmFsdWU7Cit9CisKK1ZhbHVlOjpW
YWx1ZShWYWx1ZSBjb25zdCYgb3RoZXIpCisgICAgOiB0eXBlXyhvdGhlci50eXBlXyksIGFsbG9j
YXRlZF8oZmFsc2UpCisgICAgICAsCisgICAgICBjb21tZW50c18obnVsbHB0ciksIGRlZmF1bHRf
dmFsdWVfKG51bGxwdHIpLCBzdGFydF8ob3RoZXIuc3RhcnRfKSwgbGltaXRfKG90aGVyLmxpbWl0
XykKK3sKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgY2FzZSBpbnRW
YWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVhbFZhbHVlOgorICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICB2YWx1ZV8gPSBvdGhlci52YWx1ZV87CisgICAgYnJlYWs7CisgIGNhc2Ug
c3RyaW5nVmFsdWU6CisgICAgaWYgKG90aGVyLnZhbHVlXy5zdHJpbmdfICYmIG90aGVyLmFsbG9j
YXRlZF8pIHsKKyAgICAgIHVuc2lnbmVkIGxlbjsKKyAgICAgIGNoYXIgY29uc3QqIHN0cjsKKyAg
ICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5z
dHJpbmdfLAorICAgICAgICAgICZsZW4sICZzdHIpOworICAgICAgdmFsdWVfLnN0cmluZ18gPSBk
dXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZShzdHIsIGxlbik7CisgICAgICBhbGxvY2F0ZWRf
ID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgdmFsdWVfLnN0cmluZ18gPSBvdGhlci52YWx1
ZV8uc3RyaW5nXzsKKyAgICAgIGFsbG9jYXRlZF8gPSBmYWxzZTsKKyAgICB9CisgICAgYnJlYWs7
CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFw
XyA9IG5ldyBPYmplY3RWYWx1ZXMoKm90aGVyLnZhbHVlXy5tYXBfKTsKKyAgICBicmVhazsKKyAg
ZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICBpZiAob3RoZXIu
Y29tbWVudHNfKSB7CisgICAgY29tbWVudHNfID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29t
bWVudFBsYWNlbWVudF07CisgICAgZm9yIChpbnQgY29tbWVudCA9IDA7IGNvbW1lbnQgPCBudW1i
ZXJPZkNvbW1lbnRQbGFjZW1lbnQ7ICsrY29tbWVudCkgeworICAgICAgY29uc3QgQ29tbWVudElu
Zm8mIG90aGVyQ29tbWVudCA9IG90aGVyLmNvbW1lbnRzX1tjb21tZW50XTsKKyAgICAgIGlmIChv
dGhlckNvbW1lbnQuY29tbWVudF8pCisgICAgICAgIGNvbW1lbnRzX1tjb21tZW50XS5zZXRDb21t
ZW50KAorICAgICAgICAgICAgb3RoZXJDb21tZW50LmNvbW1lbnRfLCBzdHJsZW4ob3RoZXJDb21t
ZW50LmNvbW1lbnRfKSk7CisgICAgfQorICB9CisKKyAgaWYgKCBvdGhlci5kZWZhdWx0X3ZhbHVl
XyApCisgIHsKKyAgICAgICAgIGRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCAqb3RoZXIuZGVm
YXVsdF92YWx1ZV8gKTsKKyAgfQorCit9CisKKyNpZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNF
UworLy8gTW92ZSBjb25zdHJ1Y3RvcgorVmFsdWU6OlZhbHVlKFZhbHVlJiYgb3RoZXIpIHsKKyAg
aW5pdEJhc2ljKG51bGxWYWx1ZSk7CisgIHN3YXAob3RoZXIpOworfQorI2VuZGlmCisKK1ZhbHVl
Ojp+VmFsdWUoKSB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgIGNh
c2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICBjYXNlIHJlYWxWYWx1ZToKKyAgY2Fz
ZSBib29sZWFuVmFsdWU6CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgaWYg
KGFsbG9jYXRlZF8pCisgICAgICByZWxlYXNlU3RyaW5nVmFsdWUodmFsdWVfLnN0cmluZ18pOwor
ICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAg
ZGVsZXRlIHZhbHVlXy5tYXBfOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05fQVNT
RVJUX1VOUkVBQ0hBQkxFOworICB9CisKKyAgaWYgKGNvbW1lbnRzXykKKyAgICBkZWxldGVbXSBj
b21tZW50c187CisKKyAgaWYgKCBkZWZhdWx0X3ZhbHVlXykKKyAgICAgICAgIGRlbGV0ZSBkZWZh
dWx0X3ZhbHVlXzsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcj0oVmFsdWUgb3RoZXIpIHsK
KyAgc3dhcChvdGhlcik7CisgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBWYWx1ZTo6c3dhcFBh
eWxvYWQoVmFsdWUmIG90aGVyKSB7CisgIFZhbHVlVHlwZSB0ZW1wID0gdHlwZV87CisgIHR5cGVf
ID0gb3RoZXIudHlwZV87CisgIG90aGVyLnR5cGVfID0gdGVtcDsKKyAgc3RkOjpzd2FwKHZhbHVl
Xywgb3RoZXIudmFsdWVfKTsKKyAgaW50IHRlbXAyID0gYWxsb2NhdGVkXzsKKyAgYWxsb2NhdGVk
XyA9IG90aGVyLmFsbG9jYXRlZF87CisgIG90aGVyLmFsbG9jYXRlZF8gPSB0ZW1wMiAmIDB4MTsK
K30KKwordm9pZCBWYWx1ZTo6c3dhcChWYWx1ZSYgb3RoZXIpIHsKKyAgc3dhcFBheWxvYWQob3Ro
ZXIpOworICBzdGQ6OnN3YXAoY29tbWVudHNfLCBvdGhlci5jb21tZW50c18pOworICBzdGQ6OnN3
YXAoZGVmYXVsdF92YWx1ZV8sIG90aGVyLmRlZmF1bHRfdmFsdWVfKTsKKyAgc3RkOjpzd2FwKHN0
YXJ0Xywgb3RoZXIuc3RhcnRfKTsKKyAgc3RkOjpzd2FwKGxpbWl0Xywgb3RoZXIubGltaXRfKTsK
K30KKworVmFsdWVUeXBlIFZhbHVlOjp0eXBlKCkgY29uc3QgeyByZXR1cm4gdHlwZV87IH0KKwor
aW50IFZhbHVlOjpjb21wYXJlKGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeworICBpZiAoKnRo
aXMgPCBvdGhlcikKKyAgICByZXR1cm4gLTE7CisgIGlmICgqdGhpcyA+IG90aGVyKQorICAgIHJl
dHVybiAxOworICByZXR1cm4gMDsKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I8KGNvbnN0IFZh
bHVlJiBvdGhlcikgY29uc3QgeworICBpbnQgdHlwZURlbHRhID0gdHlwZV8gLSBvdGhlci50eXBl
XzsKKyAgaWYgKHR5cGVEZWx0YSkKKyAgICByZXR1cm4gdHlwZURlbHRhIDwgMCA/IHRydWUgOiBm
YWxzZTsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4g
ZmFsc2U7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfIDwgb3RoZXIu
dmFsdWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8g
PCBvdGhlci52YWx1ZV8udWludF87CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1
ZV8ucmVhbF8gPCBvdGhlci52YWx1ZV8ucmVhbF87CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8uYm9vbF8gPCBvdGhlci52YWx1ZV8uYm9vbF87CisgIGNhc2Ugc3RyaW5n
VmFsdWU6CisgIHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09IDApIHx8IChvdGhlci52YWx1
ZV8uc3RyaW5nXyA9PSAwKSkgeworICAgICAgaWYgKG90aGVyLnZhbHVlXy5zdHJpbmdfKSByZXR1
cm4gdHJ1ZTsKKyAgICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICB1bnNpZ25lZCB0
aGlzX2xlbjsKKyAgICB1bnNpZ25lZCBvdGhlcl9sZW47CisgICAgY2hhciBjb25zdCogdGhpc19z
dHI7CisgICAgY2hhciBjb25zdCogb3RoZXJfc3RyOworICAgIGRlY29kZVByZWZpeGVkU3RyaW5n
KHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlz
X3N0cik7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3RoZXIuYWxsb2NhdGVkXywgb3RoZXIu
dmFsdWVfLnN0cmluZ18sICZvdGhlcl9sZW4sICZvdGhlcl9zdHIpOworICAgIHVuc2lnbmVkIG1p
bl9sZW4gPSBzdGQ6Om1pbih0aGlzX2xlbiwgb3RoZXJfbGVuKTsKKyAgICBpbnQgY29tcCA9IG1l
bWNtcCh0aGlzX3N0ciwgb3RoZXJfc3RyLCBtaW5fbGVuKTsKKyAgICBpZiAoY29tcCA8IDApIHJl
dHVybiB0cnVlOworICAgIGlmIChjb21wID4gMCkgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAo
dGhpc19sZW4gPCBvdGhlcl9sZW4pOworICB9CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBv
YmplY3RWYWx1ZTogeworICAgIGludCBkZWx0YSA9IGludCh2YWx1ZV8ubWFwXy0+c2l6ZSgpIC0g
b3RoZXIudmFsdWVfLm1hcF8tPnNpemUoKSk7CisgICAgaWYgKGRlbHRhKQorICAgICAgcmV0dXJu
IGRlbHRhIDwgMDsKKyAgICByZXR1cm4gKCp2YWx1ZV8ubWFwXykgPCAoKm90aGVyLnZhbHVlXy5t
YXBfKTsKKyAgfQorICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9
CisgIHJldHVybiBmYWxzZTsgLy8gdW5yZWFjaGFibGUKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0
b3I8PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEob3RoZXIgPCAqdGhpcyk7
IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuICEoKnRoaXMgPCBvdGhlcik7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I+KGNvbnN0
IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gb3RoZXIgPCAqdGhpczsgfQorCitib29sIFZh
bHVlOjpvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeworICAvLyBpZiAoIHR5
cGVfICE9IG90aGVyLnR5cGVfICkKKyAgLy8gR0NDIDIuOTUuMyBzYXlzOgorICAvLyBhdHRlbXB0
IHRvIHRha2UgYWRkcmVzcyBvZiBiaXQtZmllbGQgc3RydWN0dXJlIG1lbWJlciBgSnNvbjo6VmFs
dWU6OnR5cGVfJworICAvLyBCZWF0cyBtZSwgYnV0IGEgdGVtcCBzb2x2ZXMgdGhlIHByb2JsZW0u
CisgIGludCB0ZW1wID0gb3RoZXIudHlwZV87CisgIGlmICh0eXBlXyAhPSB0ZW1wKQorICAgIHJl
dHVybiBmYWxzZTsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBy
ZXR1cm4gdHJ1ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPT0g
b3RoZXIudmFsdWVfLmludF87CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
dWludF8gPT0gb3RoZXIudmFsdWVfLnVpbnRfOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLnJlYWxfID09IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBib29sZWFuVmFs
dWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA9PSBvdGhlci52YWx1ZV8uYm9vbF87CisgIGNh
c2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICBpZiAoKHZhbHVlXy5zdHJpbmdfID09IDApIHx8IChv
dGhlci52YWx1ZV8uc3RyaW5nXyA9PSAwKSkgeworICAgICAgcmV0dXJuICh2YWx1ZV8uc3RyaW5n
XyA9PSBvdGhlci52YWx1ZV8uc3RyaW5nXyk7CisgICAgfQorICAgIHVuc2lnbmVkIHRoaXNfbGVu
OworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAg
ICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+
YWxsb2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsK
KyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8u
c3RyaW5nXywgJm90aGVyX2xlbiwgJm90aGVyX3N0cik7CisgICAgaWYgKHRoaXNfbGVuICE9IG90
aGVyX2xlbikgcmV0dXJuIGZhbHNlOworICAgIGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBv
dGhlcl9zdHIsIHRoaXNfbGVuKTsKKyAgICByZXR1cm4gY29tcCA9PSAwOworICB9CisgIGNhc2Ug
YXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLm1hcF8t
PnNpemUoKSA9PSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpICYmCisgICAgICAgICAgICgqdmFs
dWVfLm1hcF8pID09ICgqb3RoZXIudmFsdWVfLm1hcF8pOworICBkZWZhdWx0OgorICAgIEpTT05f
QVNTRVJUX1VOUkVBQ0hBQkxFOworICB9CisgIHJldHVybiBmYWxzZTsgLy8gdW5yZWFjaGFibGUK
K30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKK2NvbnN0IGNoYXIqIFZhbHVlOjphc0NTdHJp
bmcoKSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZV8gPT0gc3RyaW5nVmFsdWUs
CisgICAgICAgICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjphc0NTdHJpbmcoKTogcmVx
dWlyZXMgc3RyaW5nVmFsdWUiKTsKKyAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDApIHJldHVybiAw
OworICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgY2hhciBjb25zdCogdGhpc19zdHI7CisgIGRlY29k
ZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAm
dGhpc19sZW4sICZ0aGlzX3N0cik7CisgIHJldHVybiB0aGlzX3N0cjsKK30KKworYm9vbCBWYWx1
ZTo6Z2V0U3RyaW5nKGNoYXIgY29uc3QqKiBzdHIsIGNoYXIgY29uc3QqKiBjZW5kKSBjb25zdCB7
CisgIGlmICh0eXBlXyAhPSBzdHJpbmdWYWx1ZSkgcmV0dXJuIGZhbHNlOworICBpZiAodmFsdWVf
LnN0cmluZ18gPT0gMCkgcmV0dXJuIGZhbHNlOworICB1bnNpZ25lZCBsZW5ndGg7CisgIGRlY29k
ZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVlXy5zdHJpbmdfLCAm
bGVuZ3RoLCBzdHIpOworICAqY2VuZCA9ICpzdHIgKyBsZW5ndGg7CisgIHJldHVybiB0cnVlOwor
fQorCitzdGQ6OnN0cmluZyBWYWx1ZTo6YXNTdHJpbmcoKSBjb25zdCB7CisgIHN3aXRjaCAodHlw
ZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuICIiOworICBjYXNlIHN0cmluZ1Zh
bHVlOgorICB7CisgICAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDApIHJldHVybiAiIjsKKyAgICB1
bnNpZ25lZCB0aGlzX2xlbjsKKyAgICBjaGFyIGNvbnN0KiB0aGlzX3N0cjsKKyAgICBkZWNvZGVQ
cmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRo
aXNfbGVuLCAmdGhpc19zdHIpOworICAgIHJldHVybiBzdGQ6OnN0cmluZyh0aGlzX3N0ciwgdGhp
c19sZW4pOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9v
bF8gPyAidHJ1ZSIgOiAiZmFsc2UiOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1
ZVRvU3RyaW5nKHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZh
bHVlVG9TdHJpbmcodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlVG9TdHJpbmcodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICgg
ZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+
YXNTdHJpbmcoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gIiI7Cisg
IH0KK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitDcHBUTDo6Q29uc3RTdHJpbmcgVmFsdWU6
OmFzQ29uc3RTdHJpbmcoKSBjb25zdCB7CisgIHVuc2lnbmVkIGxlbjsKKyAgY2hhciBjb25zdCog
c3RyOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyhhbGxvY2F0ZWRfLCB2YWx1ZV8uc3RyaW5nXywK
KyAgICAgICZsZW4sICZzdHIpOworICByZXR1cm4gQ3BwVEw6OkNvbnN0U3RyaW5nKHN0ciwgbGVu
KTsKK30KKyNlbmRpZgorCitWYWx1ZTo6SW50IFZhbHVlOjphc0ludCgpIGNvbnN0IHsKKyAgc3dp
dGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0Uo
aXNJbnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQo
dmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdF
KGlzSW50KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIElu
dCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNT
QUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5JbnQsIG1heEludCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAiZG91YmxlIG91dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZh
bHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJv
b2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6
CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZGVmYXVsdF92YWx1ZV8tPmFzSW50KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmV0dXJuIDA7CisgIH0KK30KKworVmFsdWU6OlVJbnQgVmFsdWU6OmFzVUludCgpIGNvbnN0IHsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01F
U1NBR0UoaXNVSW50KCksICJMYXJnZXN0SW50IG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0
dXJuIFVJbnQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VS
VF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2VzdFVJbnQgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAg
ICByZXR1cm4gVUludCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBKU09O
X0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAwLCBtYXhVSW50KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQgcmFuZ2UiKTsKKyAgICByZXR1
cm4gVUludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsK
KyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOwor
ICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1VJbnQoKTsKKyAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByZXR1cm4gMHU7CisgIH0KK30KKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCisKK1ZhbHVlOjpJbnQ2NCBWYWx1ZTo6YXNJbnQ2NCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0
eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8uaW50Xyk7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNJbnQ2NCgpLCAi
TGFyZ2VzdFVJbnQgb3V0IG9mIEludDY0IHJhbmdlIik7CisgICAgcmV0dXJuIEludDY0KHZhbHVl
Xy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5S
YW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludDY0LCBtYXhJbnQ2NCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAiZG91YmxlIG91dCBvZiBJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBJbnQ2NCh2
YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBi
b29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0
OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJu
IGRlZmF1bHRfdmFsdWVfLT5hc0ludDY0KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgcmV0dXJuIDBsOworICB9Cit9CisKK1ZhbHVlOjpVSW50NjQgVmFsdWU6OmFzVUludDY0KCkg
Y29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9B
U1NFUlRfTUVTU0FHRShpc1VJbnQ2NCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgVUludDY0IHJhbmdl
Iik7CisgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgor
ICAgIHJldHVybiBVSW50NjQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludDY0KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOwor
ICAgIHJldHVybiBVSW50NjQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAg
cmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8g
PyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAg
ICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNVSW50NjQoKTsKKyAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gMHVsOworICB9Cit9CisjZW5kaWYgLy8gaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKworTGFyZ2VzdEludCBWYWx1ZTo6YXNMYXJnZXN0SW50
KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKyAgcmV0dXJuIGFzSW50KCk7
CisjZWxzZQorICByZXR1cm4gYXNJbnQ2NCgpOworI2VuZGlmCit9CisKK0xhcmdlc3RVSW50IFZh
bHVlOjphc0xhcmdlc3RVSW50KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkK
KyAgcmV0dXJuIGFzVUludCgpOworI2Vsc2UKKyAgcmV0dXJuIGFzVUludDY0KCk7CisjZW5kaWYK
K30KKworZG91YmxlIFZhbHVlOjphc0RvdWJsZSgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykg
eworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVl
Xy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRf
RE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWVf
LnVpbnRfKTsKKyNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKKyAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKHZhbHVlXy51aW50Xyk7CisjZW5k
aWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgIGNh
c2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF87CisgIGNhc2UgbnVsbFZhbHVl
OgorICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1
ZV8uYm9vbF8gPyAxLjAgOiAwLjA7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRf
dmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzRG91Ymxl
KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIDAuMDsKKyAgfQorfQor
CitmbG9hdCBWYWx1ZTo6YXNGbG9hdCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBj
YXNlIGludFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVfLmludF8p
OworICBjYXNlIHVpbnRWYWx1ZToKKyNpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVf
Q09OVkVSU0lPTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy51aW50Xyk7
CisjZWxzZSAgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04p
CisgICAgcmV0dXJuIGludGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pOworI2VuZGlmIC8vIGlm
ICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICBjYXNlIHJlYWxW
YWx1ZToKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5yZWFsXyk7CisgIGNh
c2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwLjA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxLjBmIDogMC4wZjsKKyAgZGVmYXVsdDoKKyAgICAgICBp
ZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVf
LT5hc0Zsb2F0KCk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gMC4wZjsKKyAg
fQorfQorCitib29sIFZhbHVlOjphc0Jvb2woKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsK
KyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXzsKKyAgY2FzZSBu
dWxsVmFsdWU6CisgICAgcmV0dXJuIGZhbHNlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVy
biB2YWx1ZV8uaW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0
dXJuIHZhbHVlXy51aW50XyA/IHRydWUgOiBmYWxzZTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAg
Ly8gVGhpcyBpcyBraW5kIG9mIHN0cmFuZ2UuIE5vdCByZWNvbW1lbmRlZC4KKyAgICByZXR1cm4g
KHZhbHVlXy5yZWFsXyAhPSAwLjApID8gdHJ1ZSA6IGZhbHNlOworICBkZWZhdWx0OgorICAgICAg
IGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1
ZV8tPmFzQm9vbCgpOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICB9Cit9CisKK2Jvb2wgVmFsdWU6OmlzQ29udmVydGlibGVUbyhWYWx1ZVR5cGUgb3RoZXIpIGNv
bnN0IHsKKyAgc3dpdGNoIChvdGhlcikgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4g
KGlzTnVtZXJpYygpICYmIGFzRG91YmxlKCkgPT0gMC4wKSB8fAorICAgICAgICAgICAodHlwZV8g
PT0gYm9vbGVhblZhbHVlICYmIHZhbHVlXy5ib29sXyA9PSBmYWxzZSkgfHwKKyAgICAgICAgICAg
KHR5cGVfID09IHN0cmluZ1ZhbHVlICYmIGFzU3RyaW5nKCkgPT0gIiIpIHx8CisgICAgICAgICAg
ICh0eXBlXyA9PSBhcnJheVZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gMCkgfHwKKyAg
ICAgICAgICAgKHR5cGVfID09IG9iamVjdFZhbHVlICYmIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0g
MCkgfHwKKyAgICAgICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIGludFZhbHVlOgor
ICAgIHJldHVybiBpc0ludCgpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSByZWFsVmFsdWUgJiYg
SW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludCwgbWF4SW50KSkgfHwKKyAgICAgICAgICAgdHlw
ZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSB1aW50VmFs
dWU6CisgICAgcmV0dXJuIGlzVUludCgpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSByZWFsVmFs
dWUgJiYgSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQpKSB8fAorICAgICAgICAgICB0
eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIHJlYWxW
YWx1ZToKKyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8
IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJuIGlz
TnVtZXJpYygpIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7
CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgcmV0dXJuIGlzTnVtZXJpYygpIHx8IHR5cGVfID09
IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBzdHJpbmdWYWx1ZSB8fAorICAgICAgICAgICB0eXBl
XyA9PSBudWxsVmFsdWU7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICByZXR1cm4gdHlwZV8gPT0g
YXJyYXlWYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2Ugb2JqZWN0VmFsdWU6Cisg
ICAgcmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAg
fQorICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgcmV0dXJuIGZhbHNlOworfQorCisvLy8g
TnVtYmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKK0FycmF5SW5kZXggVmFsdWU6OnNp
emUoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgIGNh
c2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVlOgorICBjYXNlIHJlYWxWYWx1ZToKKyAgY2Fz
ZSBib29sZWFuVmFsdWU6CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNh
c2UgYXJyYXlWYWx1ZTogLy8gc2l6ZSBvZiB0aGUgYXJyYXkgaXMgaGlnaGVzdCBpbmRleCArIDEK
KyAgICBpZiAoIXZhbHVlXy5tYXBfLT5lbXB0eSgpKSB7CisgICAgICBPYmplY3RWYWx1ZXM6OmNv
bnN0X2l0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5lbmQoKTsKKyAgICAgIC0taXRMYXN0
OworICAgICAgcmV0dXJuICgqaXRMYXN0KS5maXJzdC5pbmRleCgpICsgMTsKKyAgICB9CisgICAg
cmV0dXJuIDA7CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgcmV0dXJuIEFycmF5SW5kZXgodmFs
dWVfLm1hcF8tPnNpemUoKSk7CisgIH0KKyAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIHJl
dHVybiAwOyAvLyB1bnJlYWNoYWJsZTsKK30KKworYm9vbCBWYWx1ZTo6ZW1wdHkoKSBjb25zdCB7
CisgIGlmIChpc051bGwoKSB8fCBpc0FycmF5KCkgfHwgaXNPYmplY3QoKSkKKyAgICByZXR1cm4g
c2l6ZSgpID09IDB1OworICBlbHNlCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVl
OjpvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBpc051bGwoKTsgfQorCit2b2lkIFZhbHVlOjpj
bGVhcigpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlw
ZV8gPT0gYXJyYXlWYWx1ZSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlXyA9PSBv
YmplY3RWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmNsZWFy
KCk6IHJlcXVpcmVzIGNvbXBsZXggdmFsdWUiKTsKKyAgc3RhcnRfID0gMDsKKyAgbGltaXRfID0g
MDsKKyAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOworICBkZWZhdWx0X3ZhbHVlXyA9IG51bGxwdHI7
CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZh
bHVlOgorICAgIHZhbHVlXy5tYXBfLT5jbGVhcigpOworICAgIGJyZWFrOworICBkZWZhdWx0Ogor
ICAgIGJyZWFrOworICB9Cit9CisKK3ZvaWQgVmFsdWU6OnJlc2l6ZShBcnJheUluZGV4IG5ld1Np
emUpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8g
PT0gYXJyYXlWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJl
c2l6ZSgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUp
CisgICAgKnRoaXMgPSBWYWx1ZShhcnJheVZhbHVlKTsKKyAgQXJyYXlJbmRleCBvbGRTaXplID0g
c2l6ZSgpOworICBpZiAobmV3U2l6ZSA9PSAwKQorICAgIGNsZWFyKCk7CisgIGVsc2UgaWYgKG5l
d1NpemUgPiBvbGRTaXplKQorICAgICgqdGhpcylbbmV3U2l6ZSAtIDFdOworICBlbHNlIHsKKyAg
ICBmb3IgKEFycmF5SW5kZXggaW5kZXggPSBuZXdTaXplOyBpbmRleCA8IG9sZFNpemU7ICsraW5k
ZXgpIHsKKyAgICAgIHZhbHVlXy5tYXBfLT5lcmFzZShpbmRleCk7CisgICAgfQorICAgIGFzc2Vy
dChzaXplKCkgPT0gbmV3U2l6ZSk7CisgIH0KK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltd
KEFycmF5SW5kZXggaW5kZXgpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVf
ID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAorICAgICAgImluIEpzb246OlZh
bHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXgpOiByZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlm
ICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShhcnJheVZhbHVlKTsKKyAg
Q1pTdHJpbmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVl
Xy5tYXBfLT5sb3dlcl9ib3VuZChrZXkpOworICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgp
ICYmICgqaXQpLmZpcnN0ID09IGtleSkKKyAgICByZXR1cm4gKCppdCkuc2Vjb25kOworCisgIE9i
amVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFsdWUoa2V5LCBudWxsUmVmKTsKKyAgaXQg
PSB2YWx1ZV8ubWFwXy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOworICByZXR1cm4gKCppdCku
c2Vjb25kOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSB7CisgIEpT
T05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+PSAwLAorICAgICAgImluIEpzb246OlZh
bHVlOjpvcGVyYXRvcltdKGludCBpbmRleCk6IGluZGV4IGNhbm5vdCBiZSBuZWdhdGl2ZSIpOwor
ICByZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9CisKK2NvbnN0IFZhbHVlJiBW
YWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdCB7CisgIEpTT05fQVNTRVJU
X01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gYXJyYXlWYWx1
ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4KWNvbnN0OiBy
ZXF1aXJlcyBhcnJheVZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgcmV0
dXJuIG51bGxSZWY7CisgIENaU3RyaW5nIGtleShpbmRleCk7CisgIE9iamVjdFZhbHVlczo6Y29u
c3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+ZmluZChrZXkpOworICBpZiAoaXQgPT0gdmFs
dWVfLm1hcF8tPmVuZCgpKQorICAgIHJldHVybiBudWxsUmVmOworICByZXR1cm4gKCppdCkuc2Vj
b25kOworfQorCitjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSBjb25z
dCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICBpbmRleCA+PSAwLAorICAgICAgImlu
IEpzb246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3Q6IGluZGV4IGNhbm5vdCBi
ZSBuZWdhdGl2ZSIpOworICByZXR1cm4gKCp0aGlzKVtBcnJheUluZGV4KGluZGV4KV07Cit9CisK
K3ZvaWQgVmFsdWU6OmluaXRCYXNpYyhWYWx1ZVR5cGUgdnR5cGUsIGJvb2wgYWxsb2NhdGVkKSB7
CisgIHR5cGVfID0gdnR5cGU7CisgIGFsbG9jYXRlZF8gPSBhbGxvY2F0ZWQ7CisgIGNvbW1lbnRz
XyA9IDA7CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7CisgIGRlZmF1bHRfdmFsdWVfID0g
bnVsbHB0cjsKK30KKworLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUg
YSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKy8vIEBwcmUgVHlwZSBvZiAnKnRo
aXMnIGlzIG9iamVjdCBvciBudWxsLgorLy8gQHBhcmFtIGtleSBpcyBudWxsLXRlcm1pbmF0ZWQu
CitWYWx1ZSYgVmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoY29uc3QgY2hhcioga2V5KSB7CisgIEpT
T05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0g
b2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoKTog
cmVxdWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICAq
dGhpcyA9IFZhbHVlKG9iamVjdFZhbHVlKTsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KAorICAgICAg
a2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKGtleSkpLCBDWlN0cmluZzo6bm9EdXBs
aWNhdGlvbik7IC8vIE5PVEUhCisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8u
bWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsKKyAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5l
bmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkpCisgICAgcmV0dXJuICgqaXQpLnNlY29u
ZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKGFjdHVhbEtleSwg
bnVsbFJlZik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChpdCwgZGVmYXVsdFZhbHVlKTsK
KyAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25kOworICByZXR1cm4gdmFsdWU7Cit9CisKKy8v
IEBwYXJhbSBrZXkgaXMgbm90IG51bGwtdGVybWluYXRlZC4KK1ZhbHVlJiBWYWx1ZTo6cmVzb2x2
ZVJlZmVyZW5jZShjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpCit7CisgIEpTT05f
QVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2Jq
ZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2Uoa2V5LCBl
bmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQor
ICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUpOworICBDWlN0cmluZyBhY3R1YWxLZXkoCisg
ICAgICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENaU3RyaW5nOjpkdXBs
aWNhdGVPbkNvcHkpOworICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8t
Pmxvd2VyX2JvdW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkg
JiYgKCppdCkuZmlyc3QgPT0gYWN0dWFsS2V5KQorICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisK
KyAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShhY3R1YWxLZXksIG51bGxS
ZWYpOworICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIFZh
bHVlJiB2YWx1ZSA9ICgqaXQpLnNlY29uZDsKKyAgcmV0dXJuIHZhbHVlOworfQorCitWYWx1ZSBW
YWx1ZTo6Z2V0KEFycmF5SW5kZXggaW5kZXgsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNv
bnN0IHsKKyAgY29uc3QgVmFsdWUqIHZhbHVlID0gJigoKnRoaXMpW2luZGV4XSk7CisgIGlmICgg
dmFsdWUgPT0gJm51bGxSZWYgKQorICB7CisgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwor
ICB9CisgIGVsc2UKKyAgeworICAgICAgICAgVmFsdWUgcmVzdWx0ID0gKnZhbHVlOworICAgICAg
ICAgcmVzdWx0LmRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCBkZWZhdWx0VmFsdWUgKTsKKyAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgIH0KK30KKworYm9vbCBWYWx1ZTo6aXNWYWxpZEluZGV4
KEFycmF5SW5kZXggaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgc2l6ZSgpOyB9CisKK1Zh
bHVlIGNvbnN0KiBWYWx1ZTo6ZmluZChjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQp
IGNvbnN0Cit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFs
dWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6OmZpbmQo
a2V5LCBlbmQsIGZvdW5kKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlIik7Cisg
IGlmICh0eXBlXyA9PSBudWxsVmFsdWUpIHJldHVybiBOVUxMOworICBDWlN0cmluZyBhY3R1YWxL
ZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2VuZC1rZXkpLCBDWlN0cmluZzo6bm9EdXBs
aWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFw
Xy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpKSByZXR1
cm4gTlVMTDsKKyAgcmV0dXJuICYoKml0KS5zZWNvbmQ7Cit9Citjb25zdCBWYWx1ZSYgVmFsdWU6
Om9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91
bmQgPSBmaW5kKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworICBpZiAoIWZvdW5kKSByZXR1cm4g
bnVsbFJlZjsKKyAgcmV0dXJuICpmb3VuZDsKK30KK1ZhbHVlIGNvbnN0JiBWYWx1ZTo6b3BlcmF0
b3JbXShzdGQ6OnN0cmluZyBjb25zdCYga2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91
bmQgPSBmaW5kKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCkpOworICBpZiAo
IWZvdW5kKSByZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJuICpmb3VuZDsKK30KKworVmFsdWUmIFZh
bHVlOjpvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVy
ZW5jZShrZXksIGtleSArIHN0cmxlbihrZXkpKTsKK30KKworVmFsdWUmIFZhbHVlOjpvcGVyYXRv
cltdKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uo
a2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5ndGgoKSk7Cit9CisKK1ZhbHVlJiBWYWx1
ZTo6b3BlcmF0b3JbXShjb25zdCBTdGF0aWNTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2
ZVJlZmVyZW5jZShrZXkuY19zdHIoKSk7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorVmFs
dWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYga2V5KSB7Cisg
IHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCkpOwor
fQorVmFsdWUgY29uc3QmIFZhbHVlOjpvcGVyYXRvcltdKENwcFRMOjpDb25zdFN0cmluZyBjb25z
dCYga2V5KSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleS5jX3N0cigp
LCBrZXkuZW5kX2Nfc3RyKCkpOworICBpZiAoIWZvdW5kKSByZXR1cm4gbnVsbFJlZjsKKyAgcmV0
dXJuICpmb3VuZDsKK30KKyNlbmRpZgorCitWYWx1ZSYgVmFsdWU6OmFwcGVuZChjb25zdCBWYWx1
ZSYgdmFsdWUpIHsgcmV0dXJuICgqdGhpcylbc2l6ZSgpXSA9IHZhbHVlOyB9CisKK1ZhbHVlIFZh
bHVlOjpnZXQoY2hhciBjb25zdCoga2V5LCBjaGFyIGNvbnN0KiBjZW5kLCBWYWx1ZSBjb25zdCYg
ZGVmYXVsdFZhbHVlKSBjb25zdAoreworICBWYWx1ZSBjb25zdCogZm91bmQgPSBmaW5kKGtleSwg
Y2VuZCk7CisgIGlmICggIWZvdW5kICkKKyAgeworICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsKKyAgfQorICBlbHNlCisgIHsKKyAgICAgICAgIFZhbHVlIHJlc3VsdCA9ICpmb3VuZDsKKyAg
ICAgICAgIHJlc3VsdC5kZWZhdWx0X3ZhbHVlXyA9IG5ldyBWYWx1ZSggZGVmYXVsdFZhbHVlICk7
CisgICAgICAgICByZXR1cm4gcmVzdWx0OworICB9Cit9CitWYWx1ZSBWYWx1ZTo6Z2V0KGNoYXIg
Y29uc3QqIGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAgcmV0dXJu
IGdldChrZXksIGtleSArIHN0cmxlbihrZXkpLCBkZWZhdWx0VmFsdWUpOworfQorVmFsdWUgVmFs
dWU6OmdldChzdGQ6OnN0cmluZyBjb25zdCYga2V5LCBWYWx1ZSBjb25zdCYgZGVmYXVsdFZhbHVl
KSBjb25zdAoreworICByZXR1cm4gZ2V0KGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVu
Z3RoKCksIGRlZmF1bHRWYWx1ZSk7Cit9CisKKworYm9vbCBWYWx1ZTo6cmVtb3ZlTWVtYmVyKGNv
bnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogY2VuZCwgVmFsdWUqIHJlbW92ZWQpCit7CisgIGlm
ICh0eXBlXyAhPSBvYmplY3RWYWx1ZSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDWlN0
cmluZyBhY3R1YWxLZXkoa2V5LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2VuZC1rZXkpLCBDWlN0
cmluZzo6bm9EdXBsaWNhdGlvbik7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1
ZV8ubWFwXy0+ZmluZChhY3R1YWxLZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgp
KQorICAgIHJldHVybiBmYWxzZTsKKyAgKnJlbW92ZWQgPSBpdC0+c2Vjb25kOworICB2YWx1ZV8u
bWFwXy0+ZXJhc2UoaXQpOworICByZXR1cm4gdHJ1ZTsKK30KK2Jvb2wgVmFsdWU6OnJlbW92ZU1l
bWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVkKQoreworICByZXR1cm4gcmVtb3Zl
TWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSksIHJlbW92ZWQpOworfQorYm9vbCBWYWx1ZTo6
cmVtb3ZlTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlKiByZW1vdmVkKQorewor
ICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3Ro
KCksIHJlbW92ZWQpOworfQorVmFsdWUgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBr
ZXkpCit7CisgIEpTT05fQVNTRVJUX01FU1NBR0UodHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVf
ID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29uOjpWYWx1ZTo6
cmVtb3ZlTWVtYmVyKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBu
dWxsVmFsdWUpCisgICAgcmV0dXJuIG51bGxSZWY7CisKKyAgVmFsdWUgcmVtb3ZlZDsgIC8vIG51
bGwKKyAgcmVtb3ZlTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSksICZyZW1vdmVkKTsKKyAg
cmV0dXJuIHJlbW92ZWQ7IC8vIHN0aWxsIG51bGwgaWYgcmVtb3ZlTWVtYmVyKCkgZGlkIG5vdGhp
bmcKK30KK1ZhbHVlIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkK
K3sKKyAgcmV0dXJuIHJlbW92ZU1lbWJlcihrZXkuY19zdHIoKSk7Cit9CisKK2Jvb2wgVmFsdWU6
OnJlbW92ZUluZGV4KEFycmF5SW5kZXggaW5kZXgsIFZhbHVlKiByZW1vdmVkKSB7CisgIGlmICh0
eXBlXyAhPSBhcnJheVZhbHVlKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIENaU3RyaW5n
IGtleShpbmRleCk7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+
ZmluZChrZXkpOworICBpZiAoaXQgPT0gdmFsdWVfLm1hcF8tPmVuZCgpKSB7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisgICpyZW1vdmVkID0gaXQtPnNlY29uZDsKKyAgQXJyYXlJbmRleCBvbGRT
aXplID0gc2l6ZSgpOworICAvLyBzaGlmdCBsZWZ0IGFsbCBpdGVtcyBsZWZ0LCBpbnRvIHRoZSBw
bGFjZSBvZiB0aGUgInJlbW92ZWQiCisgIGZvciAoQXJyYXlJbmRleCBpID0gaW5kZXg7IGkgPCAo
b2xkU2l6ZSAtIDEpOyArK2kpeworICAgIENaU3RyaW5nIGtlZXkoaSk7CisgICAgKCp2YWx1ZV8u
bWFwXylba2VleV0gPSAoKnRoaXMpW2kgKyAxXTsKKyAgfQorICAvLyBlcmFzZSB0aGUgbGFzdCBv
bmUgKCJsZWZ0b3ZlciIpCisgIENaU3RyaW5nIGtleUxhc3Qob2xkU2l6ZSAtIDEpOworICBPYmpl
Y3RWYWx1ZXM6Oml0ZXJhdG9yIGl0TGFzdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleUxhc3QpOwor
ICB2YWx1ZV8ubWFwXy0+ZXJhc2UoaXRMYXN0KTsKKyAgcmV0dXJuIHRydWU7Cit9CisKKyNpZmRl
ZiBKU09OX1VTRV9DUFBUTAorVmFsdWUgVmFsdWU6OmdldChjb25zdCBDcHBUTDo6Q29uc3RTdHJp
bmcmIGtleSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29u
c3QgeworICByZXR1cm4gZ2V0KGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCksIGRlZmF1bHRW
YWx1ZSk7Cit9CisjZW5kaWYKKworYm9vbCBWYWx1ZTo6aXNNZW1iZXIoY2hhciBjb25zdCoga2V5
LCBjaGFyIGNvbnN0KiBjZW5kKSBjb25zdAoreworICBWYWx1ZSBjb25zdCogdmFsdWUgPSBmaW5k
KGtleSwgY2VuZCk7CisgIHJldHVybiBOVUxMICE9IHZhbHVlOworfQorYm9vbCBWYWx1ZTo6aXNN
ZW1iZXIoY2hhciBjb25zdCoga2V5KSBjb25zdAoreworICByZXR1cm4gaXNNZW1iZXIoa2V5LCBr
ZXkgKyBzdHJsZW4oa2V5KSk7Cit9Citib29sIFZhbHVlOjppc01lbWJlcihzdGQ6OnN0cmluZyBj
b25zdCYga2V5KSBjb25zdAoreworICByZXR1cm4gaXNNZW1iZXIoa2V5LmRhdGEoKSwga2V5LmRh
dGEoKSArIGtleS5sZW5ndGgoKSk7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorYm9vbCBW
YWx1ZTo6aXNNZW1iZXIoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0IHsKKyAg
cmV0dXJuIGlzTWVtYmVyKGtleS5jX3N0cigpLCBrZXkuZW5kX2Nfc3RyKCkpOworfQorI2VuZGlm
CisKK1ZhbHVlOjpNZW1iZXJzIFZhbHVlOjpnZXRNZW1iZXJOYW1lcygpIGNvbnN0IHsKKyAgSlNP
Tl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBv
YmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMoKSwgdmFs
dWUgbXVzdCBiZSBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAg
IHJldHVybiBWYWx1ZTo6TWVtYmVycygpOworICBNZW1iZXJzIG1lbWJlcnM7CisgIG1lbWJlcnMu
cmVzZXJ2ZSh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVy
YXRvciBpdCA9IHZhbHVlXy5tYXBfLT5iZWdpbigpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0
ZXJhdG9yIGl0RW5kID0gdmFsdWVfLm1hcF8tPmVuZCgpOworICBmb3IgKDsgaXQgIT0gaXRFbmQ7
ICsraXQpIHsKKyAgICBtZW1iZXJzLnB1c2hfYmFjayhzdGQ6OnN0cmluZygoKml0KS5maXJzdC5k
YXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCppdCkuZmlyc3QubGVu
Z3RoKCkpKTsKKyAgfQorICByZXR1cm4gbWVtYmVyczsKK30KKy8vCisvLyMgaWZkZWYgSlNPTl9V
U0VfQ1BQVEwKKy8vIEVudW1NZW1iZXJOYW1lcworLy8gVmFsdWU6OmVudW1NZW1iZXJOYW1lcygp
IGNvbnN0CisvL3sKKy8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RWYWx1ZSApCisvLyAgIHsKKy8v
ICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnkoICBDcHBUTDo6RW51bTo6dHJhbnNmb3JtKAor
Ly8gICAgICAgICBDcHBUTDo6RW51bTo6a2V5cyggKih2YWx1ZV8ubWFwXyksIENwcFRMOjpUeXBl
PGNvbnN0IENaU3RyaW5nICY+KCkgKSwKKy8vICAgICAgICAgTWVtYmVyTmFtZXNUcmFuc2Zvcm0o
KSApICk7CisvLyAgIH0KKy8vICAgcmV0dXJuIEVudW1NZW1iZXJOYW1lcygpOworLy99CisvLwor
Ly8KKy8vIEVudW1WYWx1ZXMKKy8vIFZhbHVlOjplbnVtVmFsdWVzKCkgY29uc3QKKy8veworLy8g
ICBpZiAoIHR5cGVfID09IG9iamVjdFZhbHVlICB8fCAgdHlwZV8gPT0gYXJyYXlWYWx1ZSApCisv
LyAgICAgIHJldHVybiBDcHBUTDo6RW51bTo6YW55VmFsdWVzKCAqKHZhbHVlXy5tYXBfKSwKKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENwcFRMOjpUeXBlPGNvbnN0IFZh
bHVlICY+KCkgKTsKKy8vICAgcmV0dXJuIEVudW1WYWx1ZXMoKTsKKy8vfQorLy8KKy8vIyBlbmRp
ZgorCitzdGF0aWMgYm9vbCBJc0ludGVncmFsKGRvdWJsZSBkKSB7CisgIGRvdWJsZSBpbnRlZ3Jh
bF9wYXJ0OworICByZXR1cm4gbW9kZihkLCAmaW50ZWdyYWxfcGFydCkgPT0gMC4wOworfQorCiti
b29sIFZhbHVlOjppc051bGwoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBudWxsVmFsdWU7IH0K
KworYm9vbCBWYWx1ZTo6aXNCb29sKCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gYm9vbGVhblZh
bHVlOyB9CisKK2Jvb2wgVmFsdWU6OmlzSW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7
CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IG1pbkludCAmJiB2
YWx1ZV8uaW50XyA8PSBtYXhJbnQ7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1
ZV8udWludF8gPD0gVUludChtYXhJbnQpOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4g
dmFsdWVfLnJlYWxfID49IG1pbkludCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4SW50ICYmCisgICAg
ICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsK
KyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6OmlzVUludCgpIGNvbnN0IHsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
aW50XyA+PSAwICYmIExhcmdlc3RVSW50KHZhbHVlXy5pbnRfKSA8PSBMYXJnZXN0VUludChtYXhV
SW50KTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBtYXhV
SW50OworICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYg
dmFsdWVfLnJlYWxfIDw9IG1heFVJbnQgJiYKKyAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8u
cmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBWYWx1ZTo6aXNJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQorICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHRy
dWU7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gVUludDY0
KG1heEludDY0KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8gTm90ZSB0aGF0IG1heEludDY0
ICg9IDJeNjMgLSAxKSBpcyBub3QgZXhhY3RseSByZXByZXNlbnRhYmxlIGFzIGEKKyAgICAvLyBk
b3VibGUsIHNvIGRvdWJsZShtYXhJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjMuIFRo
ZXJlZm9yZSB3ZQorICAgIC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3Mg
dGhhbiB0aGUgbGltaXQuCisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBkb3VibGUobWluSW50
NjQpICYmCisgICAgICAgICAgIHZhbHVlXy5yZWFsXyA8IGRvdWJsZShtYXhJbnQ2NCkgJiYgSXNJ
bnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisjZW5k
aWYgLy8gSlNPTl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjpp
c1VJbnQ2NCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBzd2l0Y2gg
KHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID49IDA7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB0cnVlOworICBjYXNlIHJlYWxWYWx1ZToK
KyAgICAvLyBOb3RlIHRoYXQgbWF4VUludDY0ICg9IDJeNjQgLSAxKSBpcyBub3QgZXhhY3RseSBy
ZXByZXNlbnRhYmxlIGFzIGEKKyAgICAvLyBkb3VibGUsIHNvIGRvdWJsZShtYXhVSW50NjQpIHdp
bGwgYmUgcm91bmRlZCB1cCB0byAyXjY0LiBUaGVyZWZvcmUgd2UKKyAgICAvLyByZXF1aXJlIHRo
ZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgorICAgIHJldHVybiB2
YWx1ZV8ucmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPCBtYXhVSW50NjRBc0RvdWJsZSAmJgor
ICAgICAgICAgICBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJl
YWs7CisgIH0KKyNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAorICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgVmFsdWU6OmlzSW50ZWdyYWwoKSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX0hBU19J
TlQ2NCkKKyAgcmV0dXJuIGlzSW50NjQoKSB8fCBpc1VJbnQ2NCgpOworI2Vsc2UKKyAgcmV0dXJu
IGlzSW50KCkgfHwgaXNVSW50KCk7CisjZW5kaWYKK30KKworYm9vbCBWYWx1ZTo6aXNEb3VibGUo
KSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSByZWFsVmFsdWUgfHwgaXNJbnRlZ3JhbCgpOyB9CisK
K2Jvb2wgVmFsdWU6OmlzTnVtZXJpYygpIGNvbnN0IHsgcmV0dXJuIGlzSW50ZWdyYWwoKSB8fCBp
c0RvdWJsZSgpOyB9CisKK2Jvb2wgVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gdHlw
ZV8gPT0gc3RyaW5nVmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNBcnJheSgpIGNvbnN0IHsgcmV0
dXJuIHR5cGVfID09IGFycmF5VmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNPYmplY3QoKSBjb25z
dCB7IHJldHVybiB0eXBlXyA9PSBvYmplY3RWYWx1ZTsgfQorCit2b2lkIFZhbHVlOjpzZXRDb21t
ZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIHNpemVfdCBsZW4sIENvbW1lbnRQbGFjZW1lbnQgcGxh
Y2VtZW50KSB7CisgIGlmICghY29tbWVudHNfKQorICAgIGNvbW1lbnRzXyA9IG5ldyBDb21tZW50
SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOworICBpZiAoKGxlbiA+IDApICYmIChjb21t
ZW50W2xlbi0xXSA9PSAnXG4nKSkgeworICAgIC8vIEFsd2F5cyBkaXNjYXJkIHRyYWlsaW5nIG5l
d2xpbmUsIHRvIGFpZCBpbmRlbnRhdGlvbi4KKyAgICBsZW4gLT0gMTsKKyAgfQorICBjb21tZW50
c19bcGxhY2VtZW50XS5zZXRDb21tZW50KGNvbW1lbnQsIGxlbik7Cit9CisKK3ZvaWQgVmFsdWU6
OnNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1l
bnQpIHsKKyAgc2V0Q29tbWVudChjb21tZW50LCBzdHJsZW4oY29tbWVudCksIHBsYWNlbWVudCk7
Cit9CisKK3ZvaWQgVmFsdWU6OnNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQs
IENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIHNldENvbW1lbnQoY29tbWVudC5jX3N0
cigpLCBjb21tZW50Lmxlbmd0aCgpLCBwbGFjZW1lbnQpOworfQorCitib29sIFZhbHVlOjpoYXND
b21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdCB7CisgIHJldHVybiBjb21t
ZW50c18gIT0gMCAmJiBjb21tZW50c19bcGxhY2VtZW50XS5jb21tZW50XyAhPSAwOworfQorCitz
dGQ6OnN0cmluZyBWYWx1ZTo6Z2V0Q29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkg
Y29uc3QgeworICBpZiAoaGFzQ29tbWVudChwbGFjZW1lbnQpKQorICAgIHJldHVybiBjb21tZW50
c19bcGxhY2VtZW50XS5jb21tZW50XzsKKyAgcmV0dXJuICIiOworfQorCit2b2lkIFZhbHVlOjpz
ZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpIHsgc3RhcnRfID0gc3RhcnQ7IH0KKwordm9pZCBW
YWx1ZTo6c2V0T2Zmc2V0TGltaXQoc2l6ZV90IGxpbWl0KSB7IGxpbWl0XyA9IGxpbWl0OyB9CisK
K3NpemVfdCBWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQoKSBjb25zdCB7IHJldHVybiBzdGFydF87IH0K
Kworc2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIGxpbWl0Xzsg
fQorCitzdGQ6OnN0cmluZyBWYWx1ZTo6dG9TdHlsZWRTdHJpbmcoKSBjb25zdCB7CisgIFN0eWxl
ZFdyaXRlciB3cml0ZXI7CisgIHJldHVybiB3cml0ZXIud3JpdGUoKnRoaXMpOworfQorCitWYWx1
ZTo6Y29uc3RfaXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVf
KSB7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFs
dWVfLm1hcF8pCisgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmJlZ2lu
KCkpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBj
b25zdF9pdGVyYXRvcigpOworfQorCitWYWx1ZTo6Y29uc3RfaXRlcmF0b3IgVmFsdWU6OmVuZCgp
IGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ug
b2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGNvbnN0X2l0
ZXJhdG9yKHZhbHVlXy5tYXBfLT5lbmQoKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAg
YnJlYWs7CisgIH0KKyAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Cit9CisKK1ZhbHVlOjppdGVy
YXRvciBWYWx1ZTo6YmVnaW4oKSB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZh
bHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2YWx1ZV8ubWFwXykKKyAgICAgIHJl
dHVybiBpdGVyYXRvcih2YWx1ZV8ubWFwXy0+YmVnaW4oKSk7CisgICAgYnJlYWs7CisgIGRlZmF1
bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGl0ZXJhdG9yKCk7Cit9CisKK1ZhbHVlOjpp
dGVyYXRvciBWYWx1ZTo6ZW5kKCkgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlW
YWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICBy
ZXR1cm4gaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAgICBicmVhazsKKyAgZGVmYXVs
dDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3IoKTsKK30KKworLy8gY2xhc3Mg
UGF0aEFyZ3VtZW50CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQo
KSA6IGtleV8oKSwgaW5kZXhfKCksIGtpbmRfKGtpbmROb25lKSB7fQorCitQYXRoQXJndW1lbnQ6
OlBhdGhBcmd1bWVudChBcnJheUluZGV4IGluZGV4KQorICAgIDoga2V5XygpLCBpbmRleF8oaW5k
ZXgpLCBraW5kXyhraW5kSW5kZXgpIHt9CisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KGNv
bnN0IGNoYXIqIGtleSkKKyAgICA6IGtleV8oa2V5KSwgaW5kZXhfKCksIGtpbmRfKGtpbmRLZXkp
IHt9CisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkp
CisgICAgOiBrZXlfKGtleS5jX3N0cigpKSwgaW5kZXhfKCksIGtpbmRfKGtpbmRLZXkpIHt9CisK
Ky8vIGNsYXNzIFBhdGgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitQYXRoOjpQYXRoKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBwYXRoLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGExLAorICAgICAgICAg
ICBjb25zdCBQYXRoQXJndW1lbnQmIGEyLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQm
IGEzLAorICAgICAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE0LAorICAgICAgICAgICBjb25z
dCBQYXRoQXJndW1lbnQmIGE1KSB7CisgIEluQXJncyBpbjsKKyAgaW4ucHVzaF9iYWNrKCZhMSk7
CisgIGluLnB1c2hfYmFjaygmYTIpOworICBpbi5wdXNoX2JhY2soJmEzKTsKKyAgaW4ucHVzaF9i
YWNrKCZhNCk7CisgIGluLnB1c2hfYmFjaygmYTUpOworICBtYWtlUGF0aChwYXRoLCBpbik7Cit9
CisKK3ZvaWQgUGF0aDo6bWFrZVBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IElu
QXJncyYgaW4pIHsKKyAgY29uc3QgY2hhciogY3VycmVudCA9IHBhdGguY19zdHIoKTsKKyAgY29u
c3QgY2hhciogZW5kID0gY3VycmVudCArIHBhdGgubGVuZ3RoKCk7CisgIEluQXJnczo6Y29uc3Rf
aXRlcmF0b3IgaXRJbkFyZyA9IGluLmJlZ2luKCk7CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkg
eworICAgIGlmICgqY3VycmVudCA9PSAnWycpIHsKKyAgICAgICsrY3VycmVudDsKKyAgICAgIGlm
ICgqY3VycmVudCA9PSAnJScpCisgICAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFy
ZywgUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpOworICAgICAgZWxzZSB7CisgICAgICAgIEFycmF5
SW5kZXggaW5kZXggPSAwOworICAgICAgICBmb3IgKDsgY3VycmVudCAhPSBlbmQgJiYgKmN1cnJl
bnQgPj0gJzAnICYmICpjdXJyZW50IDw9ICc5JzsgKytjdXJyZW50KQorICAgICAgICAgIGluZGV4
ID0gaW5kZXggKiAxMCArIEFycmF5SW5kZXgoKmN1cnJlbnQgLSAnMCcpOworICAgICAgICBhcmdz
Xy5wdXNoX2JhY2soaW5kZXgpOworICAgICAgfQorICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kIHx8
ICpjdXJyZW50KysgIT0gJ10nKQorICAgICAgICBpbnZhbGlkUGF0aChwYXRoLCBpbnQoY3VycmVu
dCAtIHBhdGguY19zdHIoKSkpOworICAgIH0gZWxzZSBpZiAoKmN1cnJlbnQgPT0gJyUnKSB7Cisg
ICAgICBhZGRQYXRoSW5BcmcocGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZEtl
eSk7CisgICAgICArK2N1cnJlbnQ7CisgICAgfSBlbHNlIGlmICgqY3VycmVudCA9PSAnLicpIHsK
KyAgICAgICsrY3VycmVudDsKKyAgICB9IGVsc2UgeworICAgICAgY29uc3QgY2hhciogYmVnaW5O
YW1lID0gY3VycmVudDsKKyAgICAgIHdoaWxlIChjdXJyZW50ICE9IGVuZCAmJiAhc3RyY2hyKCJb
LiIsICpjdXJyZW50KSkKKyAgICAgICAgKytjdXJyZW50OworICAgICAgYXJnc18ucHVzaF9iYWNr
KHN0ZDo6c3RyaW5nKGJlZ2luTmFtZSwgY3VycmVudCkpOworICAgIH0KKyAgfQorfQorCit2b2lk
IFBhdGg6OmFkZFBhdGhJbkFyZyhjb25zdCBzdGQ6OnN0cmluZyYgLypwYXRoKi8sCisgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBJbkFyZ3MmIGluLAorICAgICAgICAgICAgICAgICAgICAg
ICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYgaXRJbkFyZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kKSB7CisgIGlmIChpdEluQXJnID09IGluLmVuZCgp
KSB7CisgICAgLy8gRXJyb3I6IG1pc3NpbmcgYXJndW1lbnQgJWQKKyAgfSBlbHNlIGlmICgoKml0
SW5BcmcpLT5raW5kXyAhPSBraW5kKSB7CisgICAgLy8gRXJyb3I6IGJhZCBhcmd1bWVudCB0eXBl
CisgIH0gZWxzZSB7CisgICAgYXJnc18ucHVzaF9iYWNrKCoqaXRJbkFyZyk7CisgIH0KK30KKwor
dm9pZCBQYXRoOjppbnZhbGlkUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgLypwYXRoKi8sIGludCAv
KmxvY2F0aW9uKi8pIHsKKyAgLy8gRXJyb3I6IGludmFsaWQgcGF0aC4KK30KKworY29uc3QgVmFs
dWUmIFBhdGg6OnJlc29sdmUoY29uc3QgVmFsdWUmIHJvb3QpIGNvbnN0IHsKKyAgY29uc3QgVmFs
dWUqIG5vZGUgPSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3Nf
LmJlZ2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7CisgICAgY29uc3QgUGF0aEFyZ3Vt
ZW50JiBhcmcgPSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJ
bmRleCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRl
eChhcmcuaW5kZXhfKSkgeworICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0
aCAoYXJyYXkgdmFsdWUgZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4KKyAgICAgIH0KKyAgICAgIG5v
ZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09
IFBhdGhBcmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKSB7
CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoIChvYmplY3QgdmFsdWUg
ZXhwZWN0ZWQgYXQgcG9zaXRpb24uLi4pCisgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUp
W2FyZy5rZXlfXSk7CisgICAgICBpZiAobm9kZSA9PSAmVmFsdWU6Om51bGxSZWYpIHsKKyAgICAg
ICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKG9iamVjdCBoYXMgbm8gbWVtYmVy
IG5hbWVkICcnIGF0CisgICAgICAgIC8vIHBvc2l0aW9uLi4uKQorICAgICAgfQorICAgIH0KKyAg
fQorICByZXR1cm4gKm5vZGU7Cit9CisKK1ZhbHVlIFBhdGg6OnJlc29sdmUoY29uc3QgVmFsdWUm
IHJvb3QsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWUq
IG5vZGUgPSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJl
Z2luKCk7IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7CisgICAgY29uc3QgUGF0aEFyZ3VtZW50
JiBhcmcgPSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRl
eCkgeworICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkgfHwgIW5vZGUtPmlzVmFsaWRJbmRleChh
cmcuaW5kZXhfKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgIG5vZGUgPSAm
KCgqbm9kZSlbYXJnLmluZGV4X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhB
cmd1bWVudDo6a2luZEtleSkgeworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKQorICAgICAg
ICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10p
OworICAgICAgaWYgKG5vZGUgPT0gJlZhbHVlOjpudWxsUmVmKQorICAgICAgICByZXR1cm4gZGVm
YXVsdFZhbHVlOworICAgIH0KKyAgfQorICByZXR1cm4gKm5vZGU7Cit9CisKK1ZhbHVlJiBQYXRo
OjptYWtlKFZhbHVlJiByb290KSBjb25zdCB7CisgIFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZv
ciAoQXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5l
bmQoKTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYXJnID0gKml0OworICAgIGlm
IChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9k
ZS0+aXNBcnJheSgpKSB7CisgICAgICAgIC8vIEVycm9yOiBub2RlIGlzIG5vdCBhbiBhcnJheSBh
dCBwb3NpdGlvbiAuLi4KKyAgICAgIH0KKyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmluZGV4
X10pOworICAgIH0gZWxzZSBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1bWVudDo6a2luZEtleSkg
eworICAgICAgaWYgKCFub2RlLT5pc09iamVjdCgpKSB7CisgICAgICAgIC8vIEVycm9yOiBub2Rl
IGlzIG5vdCBhbiBvYmplY3QgYXQgcG9zaXRpb24uLi4KKyAgICAgIH0KKyAgICAgIG5vZGUgPSAm
KCgqbm9kZSlbYXJnLmtleV9dKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuICpub2RlOworfQorCit9
IC8vIG5hbWVzcGFjZSBKc29uCisKKyNwcmFnbWEgd2FybmluZyAocG9wKQorCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1
ZS5jcHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3dyaXRlci5j
cHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMTEgQmFwdGlzdGUgTGVwaWxs
ZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBp
ZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJj
ZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
KyNpbmNsdWRlIDxqc29uL3dyaXRlci5oPgorI2luY2x1ZGUgImpzb25fdG9vbC5oIgorI2VuZGlm
IC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPGlvbWFuaXA+
CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVkZSA8dXRpbGl0
eT4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8Y2Fzc2VydD4KKyNpbmNsdWRlIDxjc3RyaW5n
PgorI2luY2x1ZGUgPGNzdGRpbz4KKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVS
ID49IDEyMDAgJiYgX01TQ19WRVIgPCAxODAwIC8vIEJldHdlZW4gVkMrKyA2LjAgYW5kIFZDKysg
MTEuMAorI2luY2x1ZGUgPGZsb2F0Lmg+CisjZGVmaW5lIGlzZmluaXRlIF9maW5pdGUKKyNlbGlm
IGRlZmluZWQoX19zdW4pICYmIGRlZmluZWQoX19TVlI0KSAvL1NvbGFyaXMKKyNpZiAhZGVmaW5l
ZChpc2Zpbml0ZSkKKyNpbmNsdWRlIDxpZWVlZnAuaD4KKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRl
CisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX0FJWCkKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNp
bmNsdWRlIDxtYXRoLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0ZQorI2VuZGlmCisjZWxpZiBk
ZWZpbmVkKF9faHB1eCkKKyNpZiAhZGVmaW5lZChpc2Zpbml0ZSkKKyNpZiBkZWZpbmVkKF9faWE2
NCkgJiYgIWRlZmluZWQoZmluaXRlKQorI2RlZmluZSBpc2Zpbml0ZSh4KSAoKHNpemVvZih4KSA9
PSBzaXplb2YoZmxvYXQpID8gXAorICAgICAgICAgICAgICAgICAgICAgX0lzZmluaXRlZih4KSA6
IF9Jc0Zpbml0ZSh4KSkpCisjZWxzZQorI2luY2x1ZGUgPG1hdGguaD4KKyNkZWZpbmUgaXNmaW5p
dGUgZmluaXRlCisjZW5kaWYKKyNlbmRpZgorI2Vsc2UKKyNpbmNsdWRlIDxjbWF0aD4KKyNpZiAh
KGRlZmluZWQoX19RTlhOVE9fXykpIC8vIFFOWCBhbHJlYWR5IGRlZmluZXMgaXNmaW5pdGUKKyNk
ZWZpbmUgaXNmaW5pdGUgc3RkOjppc2Zpbml0ZQorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmlu
ZWQoX01TQ19WRVIpCisjaWYgIWRlZmluZWQoV0lOQ0UpICYmIGRlZmluZWQoX19TVERDX1NFQ1VS
RV9MSUJfXykgJiYgX01TQ19WRVIgPj0gMTUwMCAvLyBWQysrIDkuMCBhbmQgYWJvdmUKKyNkZWZp
bmUgc25wcmludGYgc3ByaW50Zl9zCisjZWxpZiBfTVNDX1ZFUiA+PSAxOTAwIC8vIFZDKysgMTQu
MCBhbmQgYWJvdmUKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50ZgorI2Vsc2UKKyNkZWZp
bmUgc25wcmludGYgX3NucHJpbnRmCisjZW5kaWYKKyNlbGlmIGRlZmluZWQoX19BTkRST0lEX18p
IHx8IGRlZmluZWQoX19RTlhOVE9fXykKKyNkZWZpbmUgc25wcmludGYgc25wcmludGYKKyNlbGlm
IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKKyNkZWZpbmUgc25wcmludGYgc3RkOjpzbnByaW50Zgor
I2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgIAorI2luY2x1ZGUgPGZsb2F0Lmg+
CisjZGVmaW5lIGlzZmluaXRlIF9maW5pdGUKKyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisj
ZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE0MDAgLy8gVkMr
KyA4LjAKKy8vIERpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVwcmVjYXRlZC4K
KyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRpZgorCituYW1lc3BhY2UgSnNv
biB7CisKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZpbmVkKF9DUFBMSUJfVkVS
KSAmJiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxTdHJlYW1X
cml0ZXI+IFN0cmVhbVdyaXRlclB0cjsKKyNlbHNlCit0eXBlZGVmIHN0ZDo6YXV0b19wdHI8U3Ry
ZWFtV3JpdGVyPiAgIFN0cmVhbVdyaXRlclB0cjsKKyNlbmRpZgorCitzdGF0aWMgYm9vbCBjb250
YWluc0NvbnRyb2xDaGFyYWN0ZXIoY29uc3QgY2hhciogc3RyKSB7CisgIHdoaWxlICgqc3RyKSB7
CisgICAgaWYgKGlzQ29udHJvbENoYXJhY3RlcigqKHN0cisrKSkpCisgICAgICByZXR1cm4gdHJ1
ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGNvbnRhaW5zQ29udHJv
bENoYXJhY3RlcjAoY29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBsZW4pIHsKKyAgY2hhciBjb25z
dCogZW5kID0gc3RyICsgbGVuOworICB3aGlsZSAoZW5kICE9IHN0cikgeworICAgIGlmIChpc0Nv
bnRyb2xDaGFyYWN0ZXIoKnN0cikgfHwgMD09KnN0cikKKyAgICAgIHJldHVybiB0cnVlOworICAg
ICsrc3RyOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0
cmluZyhMYXJnZXN0SW50IHZhbHVlKSB7CisgIFVJbnRUb1N0cmluZ0J1ZmZlciBidWZmZXI7Cisg
IGNoYXIqIGN1cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVyKTsKKyAgaWYgKHZhbHVlID09
IFZhbHVlOjptaW5MYXJnZXN0SW50KSB7CisgICAgdWludFRvU3RyaW5nKExhcmdlc3RVSW50KFZh
bHVlOjptYXhMYXJnZXN0SW50KSArIDEsIGN1cnJlbnQpOworICAgICotLWN1cnJlbnQgPSAnLSc7
CisgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7CisgICAgdWludFRvU3RyaW5nKExhcmdlc3RVSW50
KC12YWx1ZSksIGN1cnJlbnQpOworICAgICotLWN1cnJlbnQgPSAnLSc7CisgIH0gZWxzZSB7Cisg
ICAgdWludFRvU3RyaW5nKExhcmdlc3RVSW50KHZhbHVlKSwgY3VycmVudCk7CisgIH0KKyAgYXNz
ZXJ0KGN1cnJlbnQgPj0gYnVmZmVyKTsKKyAgcmV0dXJuIGN1cnJlbnQ7Cit9CisKK3N0ZDo6c3Ry
aW5nIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUpIHsKKyAgVUludFRvU3RyaW5nQnVm
ZmVyIGJ1ZmZlcjsKKyAgY2hhciogY3VycmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOwor
ICB1aW50VG9TdHJpbmcodmFsdWUsIGN1cnJlbnQpOworICBhc3NlcnQoY3VycmVudCA+PSBidWZm
ZXIpOworICByZXR1cm4gY3VycmVudDsKK30KKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoSW50IHZhbHVlKSB7CisgIHJldHVybiB2YWx1
ZVRvU3RyaW5nKExhcmdlc3RJbnQodmFsdWUpKTsKK30KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0
cmluZyhVSW50IHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZVRvU3RyaW5nKExhcmdlc3RVSW50KHZh
bHVlKSk7Cit9CisKKyNlbmRpZiAvLyAjIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisKK3N0
ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlLCBib29sIHVzZVNwZWNpYWxGbG9h
dHMsIHVuc2lnbmVkIGludCBwcmVjaXNpb24pIHsKKyAgLy8gQWxsb2NhdGUgYSBidWZmZXIgdGhh
dCBpcyBtb3JlIHRoYW4gbGFyZ2UgZW5vdWdoIHRvIHN0b3JlIHRoZSAxNiBkaWdpdHMgb2YKKyAg
Ly8gcHJlY2lzaW9uIHJlcXVlc3RlZCBiZWxvdy4KKyAgY2hhciBidWZmZXJbMzJdOworICBpbnQg
bGVuID0gLTE7CisKKyAgY2hhciBmb3JtYXRTdHJpbmdbNl07CisgIHNwcmludGYoZm9ybWF0U3Ry
aW5nLCAiJSUuJWRnIiwgcHJlY2lzaW9uKTsKKworICAvLyBQcmludCBpbnRvIHRoZSBidWZmZXIu
IFdlIG5lZWQgbm90IHJlcXVlc3QgdGhlIGFsdGVybmF0aXZlIHJlcHJlc2VudGF0aW9uCisgIC8v
IHRoYXQgYWx3YXlzIGhhcyBhIGRlY2ltYWwgcG9pbnQgYmVjYXVzZSBKU09OIGRvZXNuJ3QgZGlz
dGluZ2lzaCB0aGUKKyAgLy8gY29uY2VwdHMgb2YgcmVhbHMgYW5kIGludGVnZXJzLgorICBpZiAo
aXNmaW5pdGUodmFsdWUpKSB7CisgICAgbGVuID0gc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgZm9ybWF0U3RyaW5nLCB2YWx1ZSk7CisgIH0gZWxzZSB7CisgICAgLy8gSUVFRSBzdGFu
ZGFyZCBzdGF0ZXMgdGhhdCBOYU4gdmFsdWVzIHdpbGwgbm90IGNvbXBhcmUgdG8gdGhlbXNlbHZl
cworICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgeworICAgICAgbGVuID0gc25wcmludGYoYnVmZmVy
LCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICJOYU4iIDogIm51bGwiKTsKKyAg
ICB9IGVsc2UgaWYgKHZhbHVlIDwgMCkgeworICAgICAgbGVuID0gc25wcmludGYoYnVmZmVyLCBz
aXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICItSW5maW5pdHkiIDogIi0xZSs5OTk5
Iik7CisgICAgfSBlbHNlIHsKKyAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1
ZmZlciksIHVzZVNwZWNpYWxGbG9hdHMgPyAiSW5maW5pdHkiIDogIjFlKzk5OTkiKTsKKyAgICB9
CisgICAgLy8gRm9yIHRob3NlLCB3ZSBkbyBub3QgbmVlZCB0byBjYWxsIGZpeE51bUxvYywgYnV0
IGl0IGlzIGZhc3QuCisgIH0KKyAgYXNzZXJ0KGxlbiA+PSAwKTsKKyAgZml4TnVtZXJpY0xvY2Fs
ZShidWZmZXIsIGJ1ZmZlciArIGxlbik7CisgIHJldHVybiBidWZmZXI7Cit9CisKK3N0ZDo6c3Ry
aW5nIHZhbHVlVG9TdHJpbmcoZG91YmxlIHZhbHVlKSB7IHJldHVybiB2YWx1ZVRvU3RyaW5nKHZh
bHVlLCBmYWxzZSwgMTcpOyB9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoYm9vbCB2YWx1
ZSkgeyByZXR1cm4gdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CisKK3N0ZDo6c3RyaW5nIHZh
bHVlVG9RdW90ZWRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpIHsKKyAgaWYgKHZhbHVlID09IE5V
TEwpCisgICAgcmV0dXJuICIiOworICAvLyBOb3Qgc3VyZSBob3cgdG8gaGFuZGxlIHVuaWNvZGUu
Li4KKyAgaWYgKHN0cnBicmsodmFsdWUsICJcIlxcXGJcZlxuXHJcdCIpID09IE5VTEwgJiYKKyAg
ICAgICFjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIodmFsdWUpKQorICAgIHJldHVybiBzdGQ6OnN0
cmluZygiXCIiKSArIHZhbHVlICsgIlwiIjsKKyAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFu
ZCBlc2NhcGUgYW55IHNwZWNpYWwgY2hhcmFjdGVycy4KKyAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6
c3RyaW5nIGlzIG5vdCBlZmZpY2llbnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgorICAvLyAo
Tm90ZTogZm9yd2FyZCBzbGFzaGVzIGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBp
bmcgdGhlbS4pCisgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbWF4c2l6ZSA9CisgICAgICBzdHJs
ZW4odmFsdWUpICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVvdGVzK05VTEwKKyAgc3RkOjpzdHJp
bmcgcmVzdWx0OworICByZXN1bHQucmVzZXJ2ZShtYXhzaXplKTsgLy8gdG8gYXZvaWQgbG90cyBv
ZiBtYWxsb2NzCisgIHJlc3VsdCArPSAiXCIiOworICBmb3IgKGNvbnN0IGNoYXIqIGMgPSB2YWx1
ZTsgKmMgIT0gMDsgKytjKSB7CisgICAgc3dpdGNoICgqYykgeworICAgIGNhc2UgJ1wiJzoKKyAg
ICAgIHJlc3VsdCArPSAiXFxcIiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcXCc6CisgICAg
ICByZXN1bHQgKz0gIlxcXFwiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXGInOgorICAgICAg
cmVzdWx0ICs9ICJcXGIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXGYnOgorICAgICAgcmVz
dWx0ICs9ICJcXGYiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXG4nOgorICAgICAgcmVzdWx0
ICs9ICJcXG4iOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXHInOgorICAgICAgcmVzdWx0ICs9
ICJcXHIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnXHQnOgorICAgICAgcmVzdWx0ICs9ICJc
XHQiOworICAgICAgYnJlYWs7CisgICAgLy8gY2FzZSAnLyc6CisgICAgLy8gRXZlbiB0aG91Z2gg
XC8gaXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVzY2FwZSBpbiBKU09OLCBhIGJhcmUKKyAgICAvLyBz
bGFzaCBpcyBhbHNvIGxlZ2FsLCBzbyBJIHNlZSBubyByZWFzb24gdG8gZXNjYXBlIGl0LgorICAg
IC8vIChJIGhvcGUgSSBhbSBub3QgbWlzdW5kZXJzdGFuZGluZyBzb21ldGhpbmcuCisgICAgLy8g
YmxlcCBub3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJlIHVzZWZ1bCBpbiBqYXZhc2Ny
aXB0IHRvIGF2b2lkIDwvCisgICAgLy8gc2VxdWVuY2UuCisgICAgLy8gU2hvdWxkIGFkZCBhIGZs
YWcgdG8gYWxsb3cgdGhpcyBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHByZXZlbnQgdGhpcworICAg
IC8vIHNlcXVlbmNlIGZyb20gb2NjdXJyaW5nLgorICAgIGRlZmF1bHQ6CisgICAgICBpZiAoaXND
b250cm9sQ2hhcmFjdGVyKCpjKSkgeworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gb3NzOwor
ICAgICAgICBvc3MgPDwgIlxcdSIgPDwgc3RkOjpoZXggPDwgc3RkOjp1cHBlcmNhc2UgPDwgc3Rk
OjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAgIDw8IHN0ZDo6c2V0dyg0KSA8PCBzdGF0aWNfY2Fz
dDxpbnQ+KCpjKTsKKyAgICAgICAgcmVzdWx0ICs9IG9zcy5zdHIoKTsKKyAgICAgIH0gZWxzZSB7
CisgICAgICAgIHJlc3VsdCArPSAqYzsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAg
fQorICByZXN1bHQgKz0gIlwiIjsKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gaHR0cHM6Ly9n
aXRodWIuY29tL3VwY2FzdGUvdXBjYXN0ZS9ibG9iL21hc3Rlci9zcmMvdXBjb3JlL3NyYy9jc3Ry
aW5nL3N0cm5wYnJrLmNwcAorc3RhdGljIGNoYXIgY29uc3QqIHN0cm5wYnJrKGNoYXIgY29uc3Qq
IHMsIGNoYXIgY29uc3QqIGFjY2VwdCwgc2l6ZV90IG4pIHsKKyAgYXNzZXJ0KChzIHx8ICFuKSAm
JiBhY2NlcHQpOworCisgIGNoYXIgY29uc3QqIGNvbnN0IGVuZCA9IHMgKyBuOworICBmb3IgKGNo
YXIgY29uc3QqIGN1ciA9IHM7IGN1ciA8IGVuZDsgKytjdXIpIHsKKyAgICBpbnQgY29uc3QgYyA9
ICpjdXI7CisgICAgZm9yIChjaGFyIGNvbnN0KiBhID0gYWNjZXB0OyAqYTsgKythKSB7CisgICAg
ICBpZiAoKmEgPT0gYykgeworICAgICAgICByZXR1cm4gY3VyOworICAgICAgfQorICAgIH0KKyAg
fQorICByZXR1cm4gTlVMTDsKK30KK3N0YXRpYyBzdGQ6OnN0cmluZyB2YWx1ZVRvUXVvdGVkU3Ry
aW5nTihjb25zdCBjaGFyKiB2YWx1ZSwgdW5zaWduZWQgbGVuZ3RoKSB7CisgIGlmICh2YWx1ZSA9
PSBOVUxMKQorICAgIHJldHVybiAiIjsKKyAgLy8gTm90IHN1cmUgaG93IHRvIGhhbmRsZSB1bmlj
b2RlLi4uCisgIGlmIChzdHJucGJyayh2YWx1ZSwgIlwiXFxcYlxmXG5cclx0IiwgbGVuZ3RoKSA9
PSBOVUxMICYmCisgICAgICAhY29udGFpbnNDb250cm9sQ2hhcmFjdGVyMCh2YWx1ZSwgbGVuZ3Ro
KSkKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwiIikgKyB2YWx1ZSArICJcIiI7CisgIC8vIFdl
IGhhdmUgdG8gd2FsayB2YWx1ZSBhbmQgZXNjYXBlIGFueSBzcGVjaWFsIGNoYXJhY3RlcnMuCisg
IC8vIEFwcGVuZGluZyB0byBzdGQ6OnN0cmluZyBpcyBub3QgZWZmaWNpZW50LCBidXQgdGhpcyBz
aG91bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xhc2hlcyBhcmUgKm5vdCogcmFy
ZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBl
IG1heHNpemUgPQorICAgICAgbGVuZ3RoICogMiArIDM7IC8vIGFsbGVzY2FwZWQrcXVvdGVzK05V
TEwKKyAgc3RkOjpzdHJpbmcgcmVzdWx0OworICByZXN1bHQucmVzZXJ2ZShtYXhzaXplKTsgLy8g
dG8gYXZvaWQgbG90cyBvZiBtYWxsb2NzCisgIHJlc3VsdCArPSAiXCIiOworICBjaGFyIGNvbnN0
KiBlbmQgPSB2YWx1ZSArIGxlbmd0aDsKKyAgZm9yIChjb25zdCBjaGFyKiBjID0gdmFsdWU7IGMg
IT0gZW5kOyArK2MpIHsKKyAgICBzd2l0Y2ggKCpjKSB7CisgICAgY2FzZSAnXCInOgorICAgICAg
cmVzdWx0ICs9ICJcXFwiIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xcJzoKKyAgICAgIHJl
c3VsdCArPSAiXFxcXCI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcYic6CisgICAgICByZXN1
bHQgKz0gIlxcYiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcZic6CisgICAgICByZXN1bHQg
Kz0gIlxcZiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcbic6CisgICAgICByZXN1bHQgKz0g
IlxcbiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdccic6CisgICAgICByZXN1bHQgKz0gIlxc
ciI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcdCc6CisgICAgICByZXN1bHQgKz0gIlxcdCI7
CisgICAgICBicmVhazsKKyAgICAvLyBjYXNlICcvJzoKKyAgICAvLyBFdmVuIHRob3VnaCBcLyBp
cyBjb25zaWRlcmVkIGEgbGVnYWwgZXNjYXBlIGluIEpTT04sIGEgYmFyZQorICAgIC8vIHNsYXNo
IGlzIGFsc28gbGVnYWwsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBlc2NhcGUgaXQuCisgICAgLy8g
KEkgaG9wZSBJIGFtIG5vdCBtaXN1bmRlcnN0YW5kaW5nIHNvbWV0aGluZy4pCisgICAgLy8gYmxl
cCBub3RlczogYWN0dWFsbHkgZXNjYXBpbmcgXC8gbWF5IGJlIHVzZWZ1bCBpbiBqYXZhc2NyaXB0
IHRvIGF2b2lkIDwvCisgICAgLy8gc2VxdWVuY2UuCisgICAgLy8gU2hvdWxkIGFkZCBhIGZsYWcg
dG8gYWxsb3cgdGhpcyBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHByZXZlbnQgdGhpcworICAgIC8v
IHNlcXVlbmNlIGZyb20gb2NjdXJyaW5nLgorICAgIGRlZmF1bHQ6CisgICAgICBpZiAoKGlzQ29u
dHJvbENoYXJhY3RlcigqYykpIHx8ICgqYyA9PSAwKSkgeworICAgICAgICBzdGQ6Om9zdHJpbmdz
dHJlYW0gb3NzOworICAgICAgICBvc3MgPDwgIlxcdSIgPDwgc3RkOjpoZXggPDwgc3RkOjp1cHBl
cmNhc2UgPDwgc3RkOjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAgIDw8IHN0ZDo6c2V0dyg0KSA8
PCBzdGF0aWNfY2FzdDxpbnQ+KCpjKTsKKyAgICAgICAgcmVzdWx0ICs9IG9zcy5zdHIoKTsKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdCArPSAqYzsKKyAgICAgIH0KKyAgICAgIGJyZWFr
OworICAgIH0KKyAgfQorICByZXN1bHQgKz0gIlwiIjsKKyAgcmV0dXJuIHJlc3VsdDsKK30KKwor
Ly8gQ2xhc3MgV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK1dyaXRlcjo6fldyaXRlcigpIHt9CisKKy8v
IENsYXNzIEZhc3RXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitGYXN0V3JpdGVyOjpGYXN0V3JpdGVy
KCkKKyAgICA6IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyhmYWxzZSksIGRyb3BOdWxsUGxhY2Vo
b2xkZXJzXyhmYWxzZSksCisgICAgICBvbWl0RW5kaW5nTGluZUZlZWRfKGZhbHNlKSB7fQorCit2
b2lkIEZhc3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KCkgeyB5YW1sQ29tcGF0aWJs
aXR5RW5hYmxlZF8gPSB0cnVlOyB9CisKK3ZvaWQgRmFzdFdyaXRlcjo6ZHJvcE51bGxQbGFjZWhv
bGRlcnMoKSB7IGRyb3BOdWxsUGxhY2Vob2xkZXJzXyA9IHRydWU7IH0KKwordm9pZCBGYXN0V3Jp
dGVyOjpvbWl0RW5kaW5nTGluZUZlZWQoKSB7IG9taXRFbmRpbmdMaW5lRmVlZF8gPSB0cnVlOyB9
CisKK3N0ZDo6c3RyaW5nIEZhc3RXcml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7Cisg
IGRvY3VtZW50XyA9ICIiOworICB3cml0ZVZhbHVlKHJvb3QpOworICBpZiAoIW9taXRFbmRpbmdM
aW5lRmVlZF8pCisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgIHJldHVybiBkb2N1bWVudF87Cit9
CisKK3ZvaWQgRmFzdFdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAg
c3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgaWYgKCFkcm9w
TnVsbFBsYWNlaG9sZGVyc18pCisgICAgICBkb2N1bWVudF8gKz0gIm51bGwiOworICAgIGJyZWFr
OworICBjYXNlIGludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVl
LmFzTGFyZ2VzdEludCgpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgZG9j
dW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKTsKKyAgICBicmVh
azsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmcodmFs
dWUuYXNEb3VibGUoKSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAg
ICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPworICAgIGNoYXIgY29uc3Qq
IHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmlu
Zygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIGRvY3VtZW50XyArPSB2YWx1ZVRvUXVvdGVkU3Ry
aW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSk7CisgICAgYnJlYWs7Cisg
IH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNCb29sKCkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6IHsKKyAgICBk
b2N1bWVudF8gKz0gJ1snOworICAgIGludCBzaXplID0gdmFsdWUuc2l6ZSgpOworICAgIGZvciAo
aW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaW5kZXgg
PiAwKQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOworICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtp
bmRleF0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ10nOworICB9IGJyZWFrOworICBjYXNl
IG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1i
ZXJOYW1lcygpKTsKKyAgICBkb2N1bWVudF8gKz0gJ3snOworICAgIGZvciAoVmFsdWU6Ok1lbWJl
cnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOyBpdCAhPSBtZW1iZXJzLmVuZCgpOwor
ICAgICAgICAgKytpdCkgeworICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUgPSAqaXQ7Cisg
ICAgICBpZiAoaXQgIT0gbWVtYmVycy5iZWdpbigpKQorICAgICAgICBkb2N1bWVudF8gKz0gJywn
OworICAgICAgZG9jdW1lbnRfICs9IHZhbHVlVG9RdW90ZWRTdHJpbmdOKG5hbWUuZGF0YSgpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpOworICAgICAgZG9jdW1lbnRfICs9
IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyA/ICI6ICIgOiAiOiI7CisgICAgICB3cml0ZVZhbHVl
KHZhbHVlW25hbWVdKTsKKyAgICB9CisgICAgZG9jdW1lbnRfICs9ICd9JzsKKyAgfSBicmVhazsK
KyAgfQorfQorCisvLyBDbGFzcyBTdHlsZWRXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitTdHlsZWRX
cml0ZXI6OlN0eWxlZFdyaXRlcigpCisgICAgOiByaWdodE1hcmdpbl8oNzQpLCBpbmRlbnRTaXpl
XygzKSwgYWRkQ2hpbGRWYWx1ZXNfKCkge30KKworc3RkOjpzdHJpbmcgU3R5bGVkV3JpdGVyOjp3
cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8gPSAiIjsKKyAgYWRkQ2hpbGRW
YWx1ZXNfID0gZmFsc2U7CisgIGluZGVudFN0cmluZ18gPSAiIjsKKyAgd3JpdGVDb21tZW50QmVm
b3JlVmFsdWUocm9vdCk7CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIHdyaXRlQ29tbWVudEFmdGVy
VmFsdWVPblNhbWVMaW5lKHJvb3QpOworICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgcmV0dXJuIGRv
Y3VtZW50XzsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlVmFsdWUoY29uc3QgVmFsdWUm
IHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVlOgor
ICAgIHB1c2hWYWx1ZSgibnVsbCIpOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAg
IHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJl
YWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVl
LmFzTGFyZ2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBw
dXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKSk7CisgICAgYnJlYWs7Cisg
IGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxMIHBvc3NpYmxlIGZvciB2YWx1
ZS5zdHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7Cisg
ICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIHB1
c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihl
bmQtc3RyKSkpOworICAgIGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQorICBj
YXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jv
b2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJheVZh
bHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVl
OjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1lbWJl
cnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAgIHdy
aXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBWYWx1ZTo6TWVtYmVy
czo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAgICAgICBjb25zdCBWYWx1ZSYg
Y2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJp
bmcobmFtZS5jX3N0cigpKSk7CisgICAgICAgIGRvY3VtZW50XyArPSAiIDogIjsKKyAgICAgICAg
d3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQo
KSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFs
dWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50XyArPSAn
LCc7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIp
OworICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVB
cnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICB1bnNpZ25lZCBzaXplID0gdmFsdWUu
c2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10iKTsKKyAgZWxzZSB7
CisgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNNdWx0aW5lQXJyYXkodmFsdWUpOworICAg
IGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIlsiKTsKKyAg
ICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFsdWVzXy5l
bXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7OykgeworICAg
ICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAgICAgd3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmIChoYXNDaGlsZFZh
bHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5kZXhdKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICB3cml0ZVZh
bHVlKGNoaWxkVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGlmICgrK2luZGV4ID09IHNpemUp
IHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVl
KTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudF8gKz0gJywn
OworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsK
KyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsK
KyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2luZ2xlIGxpbmUKKyAgICB7CisgICAgICBhc3Nl
cnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXplKTsKKyAgICAgIGRvY3VtZW50XyArPSAiWyAi
OworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkg
eworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgIGRvY3VtZW50XyArPSAiLCAiOwor
ICAgICAgICBkb2N1bWVudF8gKz0gY2hpbGRWYWx1ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAg
IGRvY3VtZW50XyArPSAiIF0iOworICAgIH0KKyAgfQorfQorCitib29sIFN0eWxlZFdyaXRlcjo6
aXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIGludCBzaXplID0gdmFsdWUu
c2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5fOwor
ICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNp
emUgJiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgY29uc3QgVmFsdWUmIGNoaWxkVmFs
dWUgPSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxkVmFsdWUuaXNBcnJh
eSgpIHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoaWxkVmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8gY2hl
Y2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFsdWVz
Xy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7CisgICAgaW50IGxp
bmVMZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAnKm4gKyAnIF0nCisg
ICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlm
IChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAgICBpc011bHRpTGlu
ZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAg
ICBsaW5lTGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0aCgpKTsKKyAgICB9
CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxpbmUgPSBpc011bHRp
TGluZSB8fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICByZXR1cm4gaXNNdWx0
aUxpbmU7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjpwdXNoVmFsdWUoY29uc3Qgc3RkOjpzdHJp
bmcmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisgICAgY2hpbGRWYWx1ZXNfLnB1
c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICBkb2N1bWVudF8gKz0gdmFsdWU7Cit9CisKK3Zv
aWQgU3R5bGVkV3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgaWYgKCFkb2N1bWVudF8uZW1wdHko
KSkgeworICAgIGNoYXIgbGFzdCA9IGRvY3VtZW50X1tkb2N1bWVudF8ubGVuZ3RoKCkgLSAxXTsK
KyAgICBpZiAobGFzdCA9PSAnICcpIC8vIGFscmVhZHkgaW5kZW50ZWQKKyAgICAgIHJldHVybjsK
KyAgICBpZiAobGFzdCAhPSAnXG4nKSAvLyBDb21tZW50cyBtYXkgYWRkIG5ldy1saW5lCisgICAg
ICBkb2N1bWVudF8gKz0gJ1xuJzsKKyAgfQorICBkb2N1bWVudF8gKz0gaW5kZW50U3RyaW5nXzsK
K30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmlu
ZyYgdmFsdWUpIHsKKyAgd3JpdGVJbmRlbnQoKTsKKyAgZG9jdW1lbnRfICs9IHZhbHVlOworfQor
Cit2b2lkIFN0eWxlZFdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IHN0ZDo6c3Ry
aW5nKGluZGVudFNpemVfLCAnICcpOyB9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp1bmluZGVudCgp
IHsKKyAgYXNzZXJ0KGludChpbmRlbnRTdHJpbmdfLnNpemUoKSkgPj0gaW5kZW50U2l6ZV8pOwor
ICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudFNpemVf
KTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0
IFZhbHVlJiByb290KSB7CisgIGlmICghcm9vdC5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpKQor
ICAgIHJldHVybjsKKworICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgd3JpdGVJbmRlbnQoKTsKKyAg
Y29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENvbW1lbnQoY29tbWVudEJlZm9y
ZSk7CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVyID0gY29tbWVudC5iZWdpbigp
OworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7CisgICAgZG9jdW1lbnRfICs9ICpp
dGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAgKGl0ZXIgIT0gY29tbWVudC5l
bmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAr
K2l0ZXI7CisgIH0KKworICAvLyBDb21tZW50cyBhcmUgc3RyaXBwZWQgb2YgdHJhaWxpbmcgbmV3
bGluZXMsIHNvIGFkZCBvbmUgaGVyZQorICBkb2N1bWVudF8gKz0gIlxuIjsKK30KKwordm9pZCBT
dHlsZWRXcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVl
JiByb290KSB7CisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkp
CisgICAgZG9jdW1lbnRfICs9ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNh
bWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICBk
b2N1bWVudF8gKz0gIlxuIjsKKyAgICBkb2N1bWVudF8gKz0gcm9vdC5nZXRDb21tZW50KGNvbW1l
bnRBZnRlcik7CisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgIH0KK30KKworYm9vbCBTdHlsZWRX
cml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0dXJu
IHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0Nv
bW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1l
bnQoY29tbWVudEFmdGVyKTsKK30KKworLy8gQ2xhc3MgU3R5bGVkU3RyZWFtV3JpdGVyCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworU3R5bGVkU3RyZWFtV3JpdGVyOjpTdHlsZWRTdHJlYW1Xcml0ZXIoc3RkOjpz
dHJpbmcgaW5kZW50YXRpb24pCisgICAgOiBkb2N1bWVudF8oTlVMTCksIHJpZ2h0TWFyZ2luXyg3
NCksIGluZGVudGF0aW9uXyhpbmRlbnRhdGlvbiksCisgICAgICBhZGRDaGlsZFZhbHVlc18oKSB7
fQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUoc3RkOjpvc3RyZWFtJiBvdXQsIGNv
bnN0IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50XyA9ICZvdXQ7CisgIGFkZENoaWxkVmFsdWVz
XyA9IGZhbHNlOworICBpbmRlbnRTdHJpbmdfID0gIiI7CisgIGluZGVudGVkXyA9IHRydWU7Cisg
IHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAoIWluZGVudGVkXykgd3JpdGVJ
bmRlbnQoKTsKKyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpkb2N1bWVudF8gPDwgIlxu
IjsKKyAgZG9jdW1lbnRfID0gTlVMTDsgLy8gRm9yZ2V0IHRoZSBzdHJlYW0sIGZvciBzYWZldHku
Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2
YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAg
ICBwdXNoVmFsdWUoIm51bGwiKTsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBw
dXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOworICAgIGJyZWFr
OworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5h
c0xhcmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcHVz
aFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJyZWFrOworICBj
YXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUu
c3RyaW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCogZW5kOworICAg
IGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYgKG9rKSBwdXNo
VmFsdWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5k
LXN0cikpKTsKKyAgICBlbHNlIHB1c2hWYWx1ZSgiIik7CisgICAgYnJlYWs7CisgIH0KKyAgY2Fz
ZSBib29sZWFuVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNCb29s
KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICAgIHdyaXRlQXJyYXlWYWx1
ZSh2YWx1ZSk7CisgICAgYnJlYWs7CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6
TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOworICAgIGlmIChtZW1iZXJz
LmVtcHR5KCkpCisgICAgICBwdXNoVmFsdWUoInt9Iik7CisgICAgZWxzZSB7CisgICAgICB3cml0
ZVdpdGhJbmRlbnQoInsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgVmFsdWU6Ok1lbWJlcnM6
Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAg
ICBjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSA9ICppdDsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNo
aWxkVmFsdWUgPSB2YWx1ZVtuYW1lXTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
Y2hpbGRWYWx1ZSk7CisgICAgICAgIHdyaXRlV2l0aEluZGVudCh2YWx1ZVRvUXVvdGVkU3RyaW5n
KG5hbWUuY19zdHIoKSkpOworICAgICAgICAqZG9jdW1lbnRfIDw8ICIgOiAiOworICAgICAgICB3
cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgp
KSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1
ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8PCAi
LCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgifSIp
OworICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6
d3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICB1bnNpZ25lZCBzaXplID0g
dmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10iKTsKKyAg
ZWxzZSB7CisgICAgYm9vbCBpc0FycmF5TXVsdGlMaW5lID0gaXNNdWx0aW5lQXJyYXkodmFsdWUp
OworICAgIGlmIChpc0FycmF5TXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIlsi
KTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNoaWxkVmFs
dWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9yICg7Oykg
eworICAgICAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICAg
ICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmIChoYXND
aGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19baW5kZXhd
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50
KCk7CisgICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgICAgICAgICB3cml0ZVZhbHVlKGNo
aWxkVmFsdWUpOworICAgICAgICAgIGluZGVudGVkXyA9IGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZh
bHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICAqZG9jdW1lbnRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1
ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAg
ICAgd3JpdGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBvbiBhIHNpbmds
ZSBsaW5lCisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkgPT0gc2l6ZSk7
CisgICAgICAqZG9jdW1lbnRfIDw8ICJbICI7CisgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0g
MDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+IDApCisgICAg
ICAgICAgKmRvY3VtZW50XyA8PCAiLCAiOworICAgICAgICAqZG9jdW1lbnRfIDw8IGNoaWxkVmFs
dWVzX1tpbmRleF07CisgICAgICB9CisgICAgICAqZG9jdW1lbnRfIDw8ICIgXSI7CisgICAgfQor
ICB9Cit9CisKK2Jvb2wgU3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheShjb25zdCBW
YWx1ZSYgdmFsdWUpIHsKKyAgaW50IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGJvb2wgaXNNdWx0
aUxpbmUgPSBzaXplICogMyA+PSByaWdodE1hcmdpbl87CisgIGNoaWxkVmFsdWVzXy5jbGVhcigp
OworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsr
aW5kZXgpIHsKKyAgICBjb25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAg
ICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09i
amVjdCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAw
KTsKKyAgfQorICBpZiAoIWlzTXVsdGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1h
eCBsaW5lIGxlbmd0aAorICB7CisgICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7CisgICAg
YWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKKyAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAt
IDEpICogMjsgLy8gJ1sgJyArICcsICcqbiArICcgXScKKyAgICBmb3IgKGludCBpbmRleCA9IDA7
IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2
YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAg
ICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNo
aWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkpOworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVlc18g
PSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0g
cmlnaHRNYXJnaW5fOworICB9CisgIHJldHVybiBpc011bHRpTGluZTsKK30KKwordm9pZCBTdHls
ZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAg
aWYgKGFkZENoaWxkVmFsdWVzXykKKyAgICBjaGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsK
KyAgZWxzZQorICAgICpkb2N1bWVudF8gPDwgdmFsdWU7Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp3cml0ZUluZGVudCgpIHsKKyAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sg
YXQgdGhlIHNvLWZhci13cml0dGVuIHN0cmluZworICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3
ZSBhcmUgYWxyZWFkeSBpbmRlbnRlZCwgYnV0CisgIC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90
IGRvIHRoYXQuIFNvIHdlIHJlbHkgb24gc29tZSBzYXZlZCBzdGF0ZS4KKyAgLy8gVGhlIGNhbGxl
ciBjaGVja3MgaW5kZW50ZWRfLgorICAqZG9jdW1lbnRfIDw8ICdcbicgPDwgaW5kZW50U3RyaW5n
XzsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChjb25zdCBz
dGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7Cisg
ICpkb2N1bWVudF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIFN0
eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IGluZGVudGF0aW9u
XzsgfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChp
bmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKKyAgaW5kZW50U3Ry
aW5nXy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsK
K30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNv
bnN0IFZhbHVlJiByb290KSB7CisgIGlmICghcm9vdC5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUp
KQorICAgIHJldHVybjsKKworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAgY29u
c3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENvbW1lbnQoY29tbWVudEJlZm9yZSk7
CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVyID0gY29tbWVudC5iZWdpbigpOwor
ICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7CisgICAgKmRvY3VtZW50XyA8PCAqaXRl
cjsKKyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgorICAgICAgIChpdGVyICE9IGNvbW1lbnQuZW5k
KCkgJiYgKihpdGVyICsgMSkgPT0gJy8nKSkKKyAgICAgIC8vIHdyaXRlSW5kZW50KCk7ICAvLyB3
b3VsZCBpbmNsdWRlIG5ld2xpbmUKKyAgICAgICpkb2N1bWVudF8gPDwgaW5kZW50U3RyaW5nXzsK
KyAgICArK2l0ZXI7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgU3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1
ZSYgcm9vdCkgeworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUp
KQorICAgICpkb2N1bWVudF8gPDwgJyAnIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJP
blNhbWVMaW5lKTsKKworICBpZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAg
ICB3cml0ZUluZGVudCgpOworICAgICpkb2N1bWVudF8gPDwgcm9vdC5nZXRDb21tZW50KGNvbW1l
bnRBZnRlcik7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK2Jvb2wgU3R5bGVkU3Ry
ZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJl
dHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5o
YXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXND
b21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcgorCisvLy8gU2NvcGVkIGVudW1zIGFyZSBub3QgYXZh
aWxhYmxlIHVudGlsIEMrKzExLgorc3RydWN0IENvbW1lbnRTdHlsZSB7CisgIC8vLyBEZWNpZGUg
d2hldGhlciB0byB3cml0ZSBjb21tZW50cy4KKyAgZW51bSBFbnVtIHsKKyAgICBOb25lLCAgLy8v
PCBEcm9wIGFsbCBjb21tZW50cy4KKyAgICBNb3N0LCAgLy8vPCBSZWNvdmVyIG9kZCBiZWhhdmlv
ciBvZiBwcmV2aW91cyB2ZXJzaW9ucyAobm90IGltcGxlbWVudGVkIHlldCkuCisgICAgQWxsICAv
Ly88IEtlZXAgYWxsIGNvbW1lbnRzLgorICB9OworfTsKKworc3RydWN0IEJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyIDogcHVibGljIFN0cmVhbVdyaXRlcgoreworICBCdWlsdFN0eWxlZFN0cmVhbVdy
aXRlcigKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBpbmRlbnRhdGlvbiwKKyAgICAgIENvbW1l
bnRTdHlsZTo6RW51bSBjcywKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBjb2xvblN5bWJvbCwK
KyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBudWxsU3ltYm9sLAorICAgICAgc3RkOjpzdHJpbmcg
Y29uc3QmIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgYm9vbCB1c2VTcGVjaWFsRmxvYXRz
LAorICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbik7CisgIGludCB3cml0ZShWYWx1ZSBjb25z
dCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0KTsKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1
ZShWYWx1ZSBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShWYWx1ZSBjb25z
dCYgdmFsdWUpOworICBib29sIGlzTXVsdGluZUFycmF5KFZhbHVlIGNvbnN0JiB2YWx1ZSk7Cisg
IHZvaWQgcHVzaFZhbHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJ
bmRlbnQoKTsKKyAgdm9pZCB3cml0ZVdpdGhJbmRlbnQoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVl
KTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAgdm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKFZhbHVlIGNvbnN0JiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRB
ZnRlclZhbHVlT25TYW1lTGluZShWYWx1ZSBjb25zdCYgcm9vdCk7CisgIHN0YXRpYyBib29sIGhh
c0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworCisgIHR5cGVkZWYgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFsdWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFs
dWVzXzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5nXzsKKyAgaW50IHJpZ2h0TWFyZ2luXzsK
KyAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb25fOworICBDb21tZW50U3R5bGU6OkVudW0gY3NfOwor
ICBzdGQ6OnN0cmluZyBjb2xvblN5bWJvbF87CisgIHN0ZDo6c3RyaW5nIG51bGxTeW1ib2xfOwor
ICBzdGQ6OnN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbF87CisgIGJvb2wgYWRkQ2hpbGRWYWx1
ZXNfIDogMTsKKyAgYm9vbCBpbmRlbnRlZF8gOiAxOworICBib29sIHVzZVNwZWNpYWxGbG9hdHNf
IDogMTsKKyAgdW5zaWduZWQgaW50IHByZWNpc2lvbl87Cit9OworQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKAorICAgICAgc3RkOjpzdHJpbmcgY29uc3Qm
IGluZGVudGF0aW9uLAorICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNzLAorICAgICAgc3RkOjpz
dHJpbmcgY29uc3QmIGNvbG9uU3ltYm9sLAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG51bGxT
eW1ib2wsCisgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5nTGluZUZlZWRTeW1ib2wsCisg
ICAgICBib29sIHVzZVNwZWNpYWxGbG9hdHMsCisgICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9u
KQorICA6IHJpZ2h0TWFyZ2luXyg3NCkKKyAgLCBpbmRlbnRhdGlvbl8oaW5kZW50YXRpb24pCisg
ICwgY3NfKGNzKQorICAsIGNvbG9uU3ltYm9sXyhjb2xvblN5bWJvbCkKKyAgLCBudWxsU3ltYm9s
XyhudWxsU3ltYm9sKQorICAsIGVuZGluZ0xpbmVGZWVkU3ltYm9sXyhlbmRpbmdMaW5lRmVlZFN5
bWJvbCkKKyAgLCBhZGRDaGlsZFZhbHVlc18oZmFsc2UpCisgICwgaW5kZW50ZWRfKGZhbHNlKQor
ICAsIHVzZVNwZWNpYWxGbG9hdHNfKHVzZVNwZWNpYWxGbG9hdHMpCisgICwgcHJlY2lzaW9uXyhw
cmVjaXNpb24pCit7Cit9CitpbnQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlKFZhbHVl
IGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpCit7CisgIHNvdXRfID0gc291dDsKKyAg
YWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgIGluZGVudGVkXyA9IHRydWU7CisgIGluZGVudFN0
cmluZ18gPSAiIjsKKyAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUocm9vdCk7CisgIGlmICghaW5k
ZW50ZWRfKSB3cml0ZUluZGVudCgpOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZVZhbHVl
KHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsKKyAgKnNv
dXRfIDw8IGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgc291dF8gPSBOVUxMOworICByZXR1cm4g
MDsKK30KK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUoVmFsdWUgY29u
c3QmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2UgbnVsbFZhbHVl
OgorICAgIHB1c2hWYWx1ZShudWxsU3ltYm9sXyk7CisgICAgYnJlYWs7CisgIGNhc2UgaW50VmFs
dWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpKTsK
KyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJp
bmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVl
OgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCksIHVzZVNwZWNp
YWxGbG9hdHNfLCBwcmVjaXNpb25fKSk7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6
CisgIHsKKyAgICAvLyBJcyBOVUxMIGlzIHBvc3NpYmxlIGZvciB2YWx1ZS5zdHJpbmdfPworICAg
IGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNvbnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZh
bHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAgICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRv
UXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQtc3RyKSkpOworICAg
IGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1
ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJy
ZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAgd3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAg
ICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJl
cnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAg
ICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNlIHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgi
eyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQg
PSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAgIHN0ZDo6c3RyaW5n
IGNvbnN0JiBuYW1lID0gKml0OworICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZh
bHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsK
KyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVlVG9RdW90ZWRTdHJpbmdOKG5hbWUuZGF0YSgp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obmFtZS5sZW5ndGgoKSkpKTsKKyAgICAgICAgKnNvdXRf
IDw8IGNvbG9uU3ltYm9sXzsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAg
ICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFs
dWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAg
ICAgIHdyaXRlV2l0aEluZGVudCgifSIpOworICAgIH0KKyAgfSBicmVhazsKKyAgfQorfQorCit2
b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoVmFsdWUgY29uc3Qm
IHZhbHVlKSB7CisgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGlmIChzaXplID09
IDApCisgICAgcHVzaFZhbHVlKCJbXSIpOworICBlbHNlIHsKKyAgICBib29sIGlzTXVsdGlMaW5l
ID0gKGNzXyA9PSBDb21tZW50U3R5bGU6OkFsbCkgfHwgaXNNdWx0aW5lQXJyYXkodmFsdWUpOwor
ICAgIGlmIChpc011bHRpTGluZSkgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAg
ICBpbmRlbnQoKTsKKyAgICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1w
dHkoKTsKKyAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAg
ICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRl
Q29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1
ZSkKKyAgICAgICAgICB3cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAg
ICAgICAgIGluZGVudGVkXyA9IHRydWU7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVl
KTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
KytpbmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2Ft
ZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
KnNvdXRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUo
Y2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVXaXRo
SW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBvbiBhIHNpbmdsZSBsaW5lCisgICAg
eworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkgPT0gc2l6ZSk7CisgICAgICAqc291
dF8gPDwgIlsiOworICAgICAgaWYgKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkgKnNvdXRfIDw8ICIg
IjsKKyAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKKyAgICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgICAqc291dF8gPDwgIiwgIjsKKyAg
ICAgICAgKnNvdXRfIDw8IGNoaWxkVmFsdWVzX1tpbmRleF07CisgICAgICB9CisgICAgICBpZiAo
IWluZGVudGF0aW9uXy5lbXB0eSgpKSAqc291dF8gPDwgIiAiOworICAgICAgKnNvdXRfIDw8ICJd
IjsKKyAgICB9CisgIH0KK30KKworYm9vbCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aXNNdWx0
aW5lQXJyYXkoVmFsdWUgY29uc3QmIHZhbHVlKSB7CisgIGludCBzaXplID0gdmFsdWUuc2l6ZSgp
OworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmlnaHRNYXJnaW5fOworICBjaGls
ZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemUgJiYg
IWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2
YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxkVmFsdWUuaXNBcnJheSgpIHx8
IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
VmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRpTGluZSkgLy8gY2hlY2sgaWYg
bGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAgIGNoaWxkVmFsdWVzXy5yZXNl
cnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7CisgICAgaW50IGxpbmVMZW5n
dGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAnKm4gKyAnIF0nCisgICAgZm9y
IChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgIGlmIChoYXND
b21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAgICBpc011bHRpTGluZSA9IHRy
dWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAgICBsaW5l
TGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0aCgpKTsKKyAgICB9CisgICAg
YWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxpbmUgPSBpc011bHRpTGluZSB8
fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICByZXR1cm4gaXNNdWx0aUxpbmU7
Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZShzdGQ6OnN0cmlu
ZyBjb25zdCYgdmFsdWUpIHsKKyAgaWYgKGFkZENoaWxkVmFsdWVzXykKKyAgICBjaGlsZFZhbHVl
c18ucHVzaF9iYWNrKHZhbHVlKTsKKyAgZWxzZQorICAgICpzb3V0XyA8PCB2YWx1ZTsKK30KKwor
dm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQoKSB7CisgIC8vIGJsZXAg
aW50ZW5kZWQgdGhpcyB0byBsb29rIGF0IHRoZSBzby1mYXItd3JpdHRlbiBzdHJpbmcKKyAgLy8g
dG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGFscmVhZHkgaW5kZW50ZWQsIGJ1dAorICAvLyB3
aXRoIGEgc3RyZWFtIHdlIGNhbm5vdCBkbyB0aGF0LiBTbyB3ZSByZWx5IG9uIHNvbWUgc2F2ZWQg
c3RhdGUuCisgIC8vIFRoZSBjYWxsZXIgY2hlY2tzIGluZGVudGVkXy4KKworICBpZiAoIWluZGVu
dGF0aW9uXy5lbXB0eSgpKSB7CisgICAgLy8gSW4gdGhpcyBjYXNlLCBkcm9wIG5ld2xpbmVzIHRv
by4KKyAgICAqc291dF8gPDwgJ1xuJyA8PCBpbmRlbnRTdHJpbmdfOworICB9Cit9CisKK3ZvaWQg
QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlV2l0aEluZGVudChzdGQ6OnN0cmluZyBjb25z
dCYgdmFsdWUpIHsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgICpzb3V0XyA8
PCB2YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXI6OmluZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBpbmRlbnRhdGlvbl87IH0KKwor
dm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChpbmRl
bnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKKyAgaW5kZW50U3RyaW5n
Xy5yZXNpemUoaW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRhdGlvbl8uc2l6ZSgpKTsKK30K
Kwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QmVmb3JlVmFsdWUo
VmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgaWYgKGNzXyA9PSBDb21tZW50U3R5bGU6Ok5vbmUpIHJl
dHVybjsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJu
OworCisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICBjb25zdCBzdGQ6OnN0cmlu
ZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QmVmb3JlKTsKKyAgc3RkOjpzdHJp
bmc6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBjb21tZW50LmJlZ2luKCk7CisgIHdoaWxlIChpdGVy
ICE9IGNvbW1lbnQuZW5kKCkpIHsKKyAgICAqc291dF8gPDwgKml0ZXI7CisgICAgaWYgKCppdGVy
ID09ICdcbicgJiYKKyAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEp
ID09ICcvJykpCisgICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgd3JpdGUgZXh0cmEg
bmV3bGluZQorICAgICAgKnNvdXRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVyOworICB9
CisgIGluZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShWYWx1ZSBjb25zdCYgcm9vdCkgewor
ICBpZiAoY3NfID09IENvbW1lbnRTdHlsZTo6Tm9uZSkgcmV0dXJuOworICBpZiAocm9vdC5oYXND
b21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgICpzb3V0XyA8PCAiICIgKyByb290
LmdldENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJvb3QuaGFzQ29t
bWVudChjb21tZW50QWZ0ZXIpKSB7CisgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAqc291dF8gPDwg
cm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRlcik7CisgIH0KK30KKworLy8gc3RhdGljCitib29s
IEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUoY29uc3QgVmFsdWUm
IHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRCZWZvcmUpIHx8Cisg
ICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpIHx8CisgICAg
ICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisKKy8vLy8vLy8vLy8vLy8v
LworLy8gU3RyZWFtV3JpdGVyCisKK1N0cmVhbVdyaXRlcjo6U3RyZWFtV3JpdGVyKCkKKyAgICA6
IHNvdXRfKE5VTEwpCit7Cit9CitTdHJlYW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIoKQoreworfQor
U3RyZWFtV3JpdGVyOjpGYWN0b3J5Ojp+RmFjdG9yeSgpCit7fQorU3RyZWFtV3JpdGVyQnVpbGRl
cjo6U3RyZWFtV3JpdGVyQnVpbGRlcigpCit7CisgIHNldERlZmF1bHRzKCZzZXR0aW5nc18pOwor
fQorU3RyZWFtV3JpdGVyQnVpbGRlcjo6flN0cmVhbVdyaXRlckJ1aWxkZXIoKQore30KK1N0cmVh
bVdyaXRlciogU3RyZWFtV3JpdGVyQnVpbGRlcjo6bmV3U3RyZWFtV3JpdGVyKCkgY29uc3QKK3sK
KyAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb24gPSBzZXR0aW5nc19bImluZGVudGF0aW9uIl0uYXNT
dHJpbmcoKTsKKyAgc3RkOjpzdHJpbmcgY3Nfc3RyID0gc2V0dGluZ3NfWyJjb21tZW50U3R5bGUi
XS5hc1N0cmluZygpOworICBib29sIGV5YyA9IHNldHRpbmdzX1siZW5hYmxlWUFNTENvbXBhdGli
aWxpdHkiXS5hc0Jvb2woKTsKKyAgYm9vbCBkbnAgPSBzZXR0aW5nc19bImRyb3BOdWxsUGxhY2Vo
b2xkZXJzIl0uYXNCb29sKCk7CisgIGJvb2wgdXNmID0gc2V0dGluZ3NfWyJ1c2VTcGVjaWFsRmxv
YXRzIl0uYXNCb29sKCk7IAorICB1bnNpZ25lZCBpbnQgcHJlID0gc2V0dGluZ3NfWyJwcmVjaXNp
b24iXS5hc1VJbnQoKTsKKyAgQ29tbWVudFN0eWxlOjpFbnVtIGNzID0gQ29tbWVudFN0eWxlOjpB
bGw7CisgIGlmIChjc19zdHIgPT0gIkFsbCIpIHsKKyAgICBjcyA9IENvbW1lbnRTdHlsZTo6QWxs
OworICB9IGVsc2UgaWYgKGNzX3N0ciA9PSAiTm9uZSIpIHsKKyAgICBjcyA9IENvbW1lbnRTdHls
ZTo6Tm9uZTsKKyAgfSBlbHNlIHsKKyAgICB0aHJvd1J1bnRpbWVFcnJvcigiY29tbWVudFN0eWxl
IG11c3QgYmUgJ0FsbCcgb3IgJ05vbmUnIik7CisgIH0KKyAgc3RkOjpzdHJpbmcgY29sb25TeW1i
b2wgPSAiIDogIjsKKyAgaWYgKGV5YykgeworICAgIGNvbG9uU3ltYm9sID0gIjogIjsKKyAgfSBl
bHNlIGlmIChpbmRlbnRhdGlvbi5lbXB0eSgpKSB7CisgICAgY29sb25TeW1ib2wgPSAiOiI7Cisg
IH0KKyAgc3RkOjpzdHJpbmcgbnVsbFN5bWJvbCA9ICJudWxsIjsKKyAgaWYgKGRucCkgeworICAg
IG51bGxTeW1ib2wgPSAiIjsKKyAgfQorICBpZiAocHJlID4gMTcpIHByZSA9IDE3OworICBzdGQ6
OnN0cmluZyBlbmRpbmdMaW5lRmVlZFN5bWJvbCA9ICIiOworICByZXR1cm4gbmV3IEJ1aWx0U3R5
bGVkU3RyZWFtV3JpdGVyKAorICAgICAgaW5kZW50YXRpb24sIGNzLAorICAgICAgY29sb25TeW1i
b2wsIG51bGxTeW1ib2wsIGVuZGluZ0xpbmVGZWVkU3ltYm9sLCB1c2YsIHByZSk7Cit9CitzdGF0
aWMgdm9pZCBnZXRWYWxpZFdyaXRlcktleXMoc3RkOjpzZXQ8c3RkOjpzdHJpbmc+KiB2YWxpZF9r
ZXlzKQoreworICB2YWxpZF9rZXlzLT5jbGVhcigpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImlu
ZGVudGF0aW9uIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiY29tbWVudFN0eWxlIik7CisgIHZh
bGlkX2tleXMtPmluc2VydCgiZW5hYmxlWUFNTENvbXBhdGliaWxpdHkiKTsKKyAgdmFsaWRfa2V5
cy0+aW5zZXJ0KCJkcm9wTnVsbFBsYWNlaG9sZGVycyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQo
InVzZVNwZWNpYWxGbG9hdHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJwcmVjaXNpb24iKTsK
K30KK2Jvb2wgU3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFs
aWQpIGNvbnN0Cit7CisgIEpzb246OlZhbHVlIG15X2ludmFsaWQ7CisgIGlmICghaW52YWxpZCkg
aW52YWxpZCA9ICZteV9pbnZhbGlkOyAgLy8gc28gd2UgZG8gbm90IG5lZWQgdG8gdGVzdCBmb3Ig
TlVMTAorICBKc29uOjpWYWx1ZSYgaW52ID0gKmludmFsaWQ7CisgIHN0ZDo6c2V0PHN0ZDo6c3Ry
aW5nPiB2YWxpZF9rZXlzOworICBnZXRWYWxpZFdyaXRlcktleXMoJnZhbGlkX2tleXMpOworICBW
YWx1ZTo6TWVtYmVycyBrZXlzID0gc2V0dGluZ3NfLmdldE1lbWJlck5hbWVzKCk7CisgIHNpemVf
dCBuID0ga2V5cy5zaXplKCk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7Cisg
ICAgc3RkOjpzdHJpbmcgY29uc3QmIGtleSA9IGtleXNbaV07CisgICAgaWYgKHZhbGlkX2tleXMu
ZmluZChrZXkpID09IHZhbGlkX2tleXMuZW5kKCkpIHsKKyAgICAgIGludltrZXldID0gc2V0dGlu
Z3NfW2tleV07CisgICAgfQorICB9CisgIHJldHVybiAwdSA9PSBpbnYuc2l6ZSgpOworfQorVmFs
dWUmIFN0cmVhbVdyaXRlckJ1aWxkZXI6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KQorewor
ICByZXR1cm4gc2V0dGluZ3NfW2tleV07Cit9CisvLyBzdGF0aWMKK3ZvaWQgU3RyZWFtV3JpdGVy
QnVpbGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQoreworICAvLyEgW1N0
cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0c10KKyAgKCpzZXR0aW5ncylbImNvbW1lbnRTdHlsZSJd
ID0gIkFsbCI7CisgICgqc2V0dGluZ3MpWyJpbmRlbnRhdGlvbiJdID0gIlx0IjsKKyAgKCpzZXR0
aW5ncylbImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylb
ImRyb3BOdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbInVzZVNwZWNp
YWxGbG9hdHMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsicHJlY2lzaW9uIl0gPSAxNzsKKyAg
Ly8hIFtTdHJlYW1Xcml0ZXJCdWlsZGVyRGVmYXVsdHNdCit9CisKK3N0ZDo6c3RyaW5nIHdyaXRl
U3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgYnVpbGRlciwgVmFsdWUgY29uc3Qm
IHJvb3QpIHsKKyAgc3RkOjpvc3RyaW5nc3RyZWFtIHNvdXQ7CisgIFN0cmVhbVdyaXRlclB0ciBj
b25zdCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRlci0+d3JpdGUo
cm9vdCwgJnNvdXQpOworICByZXR1cm4gc291dC5zdHIoKTsKK30KKworc3RkOjpvc3RyZWFtJiBv
cGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgc291dCwgVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgU3Ry
ZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qgd3JpdGVy
KGJ1aWxkZXIubmV3U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3QsICZzb3V0
KTsKKyAgcmV0dXJuIHNvdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fd3Jp
dGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZyX2FwaV9wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM5NmU2
NzcyMmYzNjk0NzA0ZDNkYWI3YTNkZWFiZmE3NjlhNDc5YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZyX2FwaV9wdWJsaWMuY3BwCkBAIC0wLDAg
KzEsMjk4IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09
PT09PT09Ly8KKyNkZWZpbmUgVlJfQVBJX0VYUE9SVCAxCisjaW5jbHVkZSAib3BlbnZyLmgiCisj
aW5jbHVkZSAiaXZyY2xpZW50Y29yZS5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIK
KyNpbmNsdWRlICJzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJlbnZ2YXJ0b29s
c19wdWJsaWMuaCIKKyNpbmNsdWRlICJobWRlcnJvcnNfcHVibGljLmgiCisjaW5jbHVkZSAidnJw
YXRocmVnaXN0cnlfcHVibGljLmgiCisjaW5jbHVkZSA8bXV0ZXg+CisKK3VzaW5nIHZyOjpFVlJJ
bml0RXJyb3I7Cit1c2luZyB2cjo6SVZSU3lzdGVtOwordXNpbmcgdnI6OklWUkNsaWVudENvcmU7
Cit1c2luZyB2cjo6VlJJbml0RXJyb3JfTm9uZTsKKworbmFtZXNwYWNlIHZyCit7CisKK3N0YXRp
YyB2b2lkICpnX3BWUk1vZHVsZSA9IE5VTEw7CitzdGF0aWMgSVZSQ2xpZW50Q29yZSAqZ19wSG1k
U3lzdGVtID0gTlVMTDsKK3N0YXRpYyBzdGQ6OnJlY3Vyc2l2ZV9tdXRleCBnX211dGV4U3lzdGVt
OworCisKK3R5cGVkZWYgdm9pZCogKCpWUkNsaWVudENvcmVGYWN0b3J5Rm4pKGNvbnN0IGNoYXIg
KnBJbnRlcmZhY2VOYW1lLCBpbnQgKnBSZXR1cm5Db2RlKTsKKworc3RhdGljIHVpbnQzMl90IGdf
blZSVG9rZW4gPSAwOworCit1aW50MzJfdCBWUl9HZXRJbml0VG9rZW4oKQoreworICAgICAgIHJl
dHVybiBnX25WUlRva2VuOworfQorCitFVlJJbml0RXJyb3IgVlJfTG9hZEhtZFN5c3RlbUludGVy
bmFsKCk7Cit2b2lkIENsZWFudXBJbnRlcm5hbEludGVyZmFjZXMoKTsKKworCit1aW50MzJfdCBW
Ul9Jbml0SW50ZXJuYWwyKCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlv
blR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkKK3sKKyAg
ICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhT
eXN0ZW0gKTsKKworICAgICAgIEVWUkluaXRFcnJvciBlcnIgPSBWUl9Mb2FkSG1kU3lzdGVtSW50
ZXJuYWwoKTsKKyAgICAgICBpZiAoIGVyciA9PSB2cjo6VlJJbml0RXJyb3JfTm9uZSApCisgICAg
ICAgeworICAgICAgICAgICAgICBlcnIgPSBnX3BIbWRTeXN0ZW0tPkluaXQoIGVBcHBsaWNhdGlv
blR5cGUsIHBTdGFydHVwSW5mbyApOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciAp
CisgICAgICAgICAgICAgICpwZUVycm9yID0gZXJyOworCisgICAgICAgaWYgKCBlcnIgIT0gVlJJ
bml0RXJyb3JfTm9uZSApCisgICAgICAgeworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2Fk
KCBnX3BWUk1vZHVsZSApOworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOworICAg
ICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuICsrZ19uVlJUb2tlbjsKK30KKworVlJfSU5URVJG
QUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpw
ZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSApOworCit1aW50MzJf
dCBWUl9Jbml0SW50ZXJuYWwoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgdnI6OkVWUkFwcGxpY2F0
aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlICkKK3sKKyAgICAgICByZXR1cm4gVlJfSW5pdEludGVy
bmFsMiggcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSwgbnVsbHB0ciApOworfQorCit2b2lkIFZS
X1NodXRkb3duSW50ZXJuYWwoKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vy
c2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworICAgICAgIAorICAgICAgIGlmICgg
Z19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbS0+Q2xl
YW51cCgpOworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOworICAgICAgIH0KKyAg
ICAgICBpZiAoIGdfcFZSTW9kdWxlICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNoYXJlZExp
Yl9VbmxvYWQoIGdfcFZSTW9kdWxlICk7CisgICAgICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVM
TDsKKyAgICAgICB9CisKKyNpZiAhZGVmaW5lZCggVlJfQVBJX1BVQkxJQyApCisgICAgICAgQ2xl
YW51cEludGVybmFsSW50ZXJmYWNlcygpOworI2VuZGlmCisKKyAgICAgICArK2dfblZSVG9rZW47
Cit9CisKK0VWUkluaXRFcnJvciBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKQoreworICAgICAg
IHN0ZDo6c3RyaW5nIHNSdW50aW1lUGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOworCisgICAg
ICAgYm9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFBh
dGhzKCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9nUGF0aCwgTlVMTCwgTlVMTCAp
OworICAgICAgIGlmKCAhYlJlYWRQYXRoUmVnaXN0cnkgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5kOworICAg
ICAgIH0KKworICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBm
b3IgdnJjbGllbnQuZGxsCisgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1
YWxseSBleGlzdHMuCisgICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGgg
KSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRf
SW5zdGFsbGF0aW9uTm90Rm91bmQ7CisgICAgICAgfQorCisgICAgICAgLy8gQmVjYXVzZSB3ZSBk
b24ndCBoYXZlIGEgd2F5IHRvIHNlbGVjdCBkZWJ1ZyB2cy4gcmVsZWFzZSB5ZXQgd2UnbGwganVz
dAorICAgICAgIC8vIHVzZSBkZWJ1ZyBpZiBpdCdzIHRoZXJlCisjaWYgZGVmaW5lZCggTElOVVg2
NCApCisgICAgICAgc3RkOjpzdHJpbmcgc1Rlc3RQYXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBh
dGgsICJiaW4iLCBQTEFUU1VCRElSICk7CisjZWxzZQorICAgICAgIHN0ZDo6c3RyaW5nIHNUZXN0
UGF0aCA9IFBhdGhfSm9pbiggc1J1bnRpbWVQYXRoLCAiYmluIiApOworI2VuZGlmCisgICAgICAg
aWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzVGVzdFBhdGggKSApCisgICAgICAgeworICAgICAgICAg
ICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdDsKKyAg
ICAgICB9CisKKyNpZiBkZWZpbmVkKCBXSU42NCApCisgICAgICAgc3RkOjpzdHJpbmcgc0RMTFBh
dGggPSBQYXRoX0pvaW4oIHNUZXN0UGF0aCwgInZyY2xpZW50X3g2NCIgRFlOQU1JQ19MSUJfRVhU
ICk7CisjZWxzZQorICAgICAgIHN0ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVz
dFBhdGgsICJ2cmNsaWVudCIgRFlOQU1JQ19MSUJfRVhUICk7CisjZW5kaWYKKworICAgICAgIC8v
IG9ubHkgbG9vayBpbiB0aGUgb3ZlcnJpZGUKKyAgICAgICB2b2lkICpwTW9kID0gU2hhcmVkTGli
X0xvYWQoIHNETExQYXRoLmNfc3RyKCkgKTsKKyAgICAgICAvLyBub3RoaW5nIG1vcmUgdG8gZG8g
aWYgd2UgY2FuJ3QgbG9hZCB0aGUgRExMCisgICAgICAgaWYoICFwTW9kICkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZv
dW5kOworICAgICAgIH0KKworICAgICAgIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiBmbkZhY3Rvcnkg
PSAoIFZSQ2xpZW50Q29yZUZhY3RvcnlGbiApKCBTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIHBNb2Qs
ICJWUkNsaWVudENvcmVGYWN0b3J5IiApICk7CisgICAgICAgaWYoICFmbkZhY3RvcnkgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggcE1vZCApOworICAgICAgICAg
ICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kOworICAgICAg
IH0KKworICAgICAgIGludCBuUmV0dXJuQ29kZSA9IDA7CisgICAgICAgZ19wSG1kU3lzdGVtID0g
c3RhdGljX2Nhc3Q8IElWUkNsaWVudENvcmUgKiA+ICggZm5GYWN0b3J5KCB2cjo6SVZSQ2xpZW50
Q29yZV9WZXJzaW9uLCAmblJldHVybkNvZGUgKSApOworICAgICAgIGlmKCAhZ19wSG1kU3lzdGVt
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5k
OworICAgICAgIH0KKworICAgICAgIGdfcFZSTW9kdWxlID0gcE1vZDsKKyAgICAgICByZXR1cm4g
VlJJbml0RXJyb3JfTm9uZTsKK30KKworCit2b2lkICpWUl9HZXRHZW5lcmljSW50ZXJmYWNlKGNv
bnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVFcnJvcikKK3sK
KyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0
ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmICghZ19wSG1kU3lzdGVtKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgaWYgKHBlRXJyb3IpCisgICAgICAgICAgICAgICAgICAgICAqcGVFcnJvciA9IHZy
OjpWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkOworICAgICAgICAgICAgICByZXR1cm4g
TlVMTDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRHZW5lcmlj
SW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHBlRXJyb3IpOworfQorCitib29sIFZSX0lz
SW50ZXJmYWNlVmVyc2lvblZhbGlkKGNvbnN0IGNoYXIgKnBjaEludGVyZmFjZVZlcnNpb24pCit7
CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211
dGV4U3lzdGVtICk7CisKKyAgICAgICBpZiAoIWdfcEhtZFN5c3RlbSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gZ19wSG1k
U3lzdGVtLT5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZhY2VWZXJzaW9uKSA9PSBW
UkluaXRFcnJvcl9Ob25lOworfQorCitib29sIFZSX0lzSG1kUHJlc2VudCgpCit7CisgICAgICAg
c3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVt
ICk7CisKKyAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IC8vIGlmIHdlJ3JlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIGp1c3QgY2FsbCB0aHJvdWdoCisgICAg
ICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQoKTsKKyAgICAgICB9
CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIG5l
ZWQgdG8gZG8gYSBiaXQgbW9yZSB3b3JrCisgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlcnIg
PSBWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwoKTsKKyAgICAgICAgICAgICAgaWYoIGVyciAhPSBW
UkluaXRFcnJvcl9Ob25lICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICAgICAgICBib29sIGJIYXNIbWQgPSBnX3BIbWRTeXN0ZW0tPkJJc0htZFByZXNlbnQo
KTsKKworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0gPSBOVUxMOworICAgICAgICAgICAgICBT
aGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSApOworICAgICAgICAgICAgICBnX3BWUk1vZHVs
ZSA9IE5VTEw7CisKKyAgICAgICAgICAgICAgcmV0dXJuIGJIYXNIbWQ7CisgICAgICAgfQorfQor
CisvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBPcGVuVlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICov
Citib29sIFZSX0lzUnVudGltZUluc3RhbGxlZCgpCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJk
PHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBp
ZiggZ19wSG1kU3lzdGVtICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFs
cmVhZHkgaW5pdGlhbGl6ZWQsIE9wZW5WUiBpcyBvYnZpb3VzbHkgaW5zdGFsbGVkCisgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAg
ICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2UgbmVlZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKKyAg
ICAgICAgICAgICAgc3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xvZ1Bh
dGg7CisKKyAgICAgICAgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdp
c3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9n
UGF0aCwgTlVMTCwgTlVMTCApOworICAgICAgICAgICAgICBpZiggIWJSZWFkUGF0aFJlZ2lzdHJ5
ICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdy
ZSBnb2luZyB0byBsb29rIGZvciB2cmNsaWVudC5kbGwKKyAgICAgICAgICAgICAgLy8gc2VlIGlm
IHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisgICAgICAgICAgICAgIGlmKCAh
UGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAvLyB0aGUgaW5zdGFsbGF0aW9uIG1heSBiZSBjb3JydXB0IGluIHNvbWUgd2F5LCBi
dXQgaXQgY2VydGFpbmx5IGxvb2tzIGluc3RhbGxlZAorICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICB9Cit9CisKKworLyoqIFJldHVybnMgd2hlcmUgT3BlblZSIHJ1bnRpbWUgaXMg
aW5zdGFsbGVkLiAqLworY29uc3QgY2hhciAqVlJfUnVudGltZVBhdGgoKQoreworICAgICAgIC8v
IG90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29yaworICAgICAgIHN0YXRpYyBz
dGQ6OnN0cmluZyBzUnVudGltZVBhdGg7CisgICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGgs
IHNMb2dQYXRoOworCisgICAgICAgYm9vbCBiUmVhZFBhdGhSZWdpc3RyeSA9IENWUlBhdGhSZWdp
c3RyeV9QdWJsaWM6OkdldFBhdGhzKCAmc1J1bnRpbWVQYXRoLCAmc0NvbmZpZ1BhdGgsICZzTG9n
UGF0aCwgTlVMTCwgTlVMTCApOworICAgICAgIGlmICggIWJSZWFkUGF0aFJlZ2lzdHJ5ICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgIH0KKworICAgICAg
IC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJjbGllbnQuZGxs
CisgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisg
ICAgICAgaWYgKCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgfQorCisgICAgICAgcmV0dXJu
IHNSdW50aW1lUGF0aC5jX3N0cigpOworfQorCisKKy8qKiBSZXR1cm5zIHRoZSBzeW1ib2wgdmVy
c2lvbiBvZiBhbiBITUQgZXJyb3IuICovCitjb25zdCBjaGFyICpWUl9HZXRWUkluaXRFcnJvckFz
U3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxz
dGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYo
IGdfcEhtZFN5c3RlbSApCisgICAgICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldElE
Rm9yVlJJbml0RXJyb3IoIGVycm9yICk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1
cm4gR2V0SURGb3JWUkluaXRFcnJvciggZXJyb3IgKTsKK30KKworCisvKiogUmV0dXJucyB0aGUg
ZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQgZXJyb3IuICovCitjb25zdCBjaGFyICpW
Ul9HZXRWUkluaXRFcnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBFVlJJbml0RXJyb3IgZXJyb3Ig
KQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jaygg
Z19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYgKCBnX3BIbWRTeXN0ZW0gKQorICAgICAgICAg
ICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIGVy
cm9yICk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gR2V0RW5nbGlzaFN0cmlu
Z0ZvckhtZEVycm9yKCBlcnJvciApOworfQorCisKK1ZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpW
Ul9DQUxMVFlQRSBWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlcnJv
ciApOworCisvKiogUmV0dXJucyB0aGUgZW5nbGlzaCBzdHJpbmcgdmVyc2lvbiBvZiBhbiBITUQg
ZXJyb3IuICovCitjb25zdCBjaGFyICpWUl9HZXRTdHJpbmdGb3JIbWRFcnJvciggRVZSSW5pdEVy
cm9yIGVycm9yICkKK3sKKyAgICAgICByZXR1cm4gVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hE
ZXNjcmlwdGlvbiggZXJyb3IgKTsKK30KKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjhiZDIzZDQwZWU0OWY0MDgwZjcxYjI2NjAzM2Q2NGRhMWNmZWZjMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVi
bGljLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENv
cnBvcmF0aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAiZGlydG9vbHNfcHVibGljLmgiCisj
aW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5o
IgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmZGVmIF9X
SU4zMgorI2luY2x1ZGUgIndpbmRvd3MuaCIKKyNlbHNlCisjaW5jbHVkZSA8c3RkbGliLmg+Cisj
aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90
eXBlcy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBPU1ggKQorI2luY2x1ZGUgPHN5cy9zeXNs
aW1pdHMuaD4KKyNlbmRpZgorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6
IHV0aWxpdHkgZnVuY3Rpb24gdG8gY3JlYXRlIGRpcnMgJiBzdWJkaXJzCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitib29sIEJDcmVhdGVEaXJlY3RvcnlSZWN1cnNpdmUoIGNvbnN0IGNoYXIgKnBj
aFBhdGggKQoreworICAgICAgIC8vIERvZXMgaXQgYWxyZWFkeSBleGlzdD8KKyAgICAgICBpZiAo
IFBhdGhfSXNEaXJlY3RvcnkoIHBjaFBhdGggKSApCisgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgICAgLy8gY29weSB0aGUgcGF0aCBpbnRvIHNvbWV0aGluZyB3ZSBjYW4gbXVuZ2UK
KyAgICAgICBpbnQgbGVuID0gKGludClzdHJsZW4oIHBjaFBhdGggKTsKKyAgICAgICBjaGFyICpw
YXRoID0gKGNoYXIgKiltYWxsb2MoIGxlbiArIDEgKTsKKyAgICAgICBzdHJjcHkoIHBhdGgsIHBj
aFBhdGggKTsKKworICAgICAgIC8vIFdhbGsgYmFja3dhcmRzIHRvIGZpcnN0IG5vbi1leGlzdGlu
ZyBkaXIgdGhhdCB3ZSBmaW5kCisgICAgICAgY2hhciAqcyA9IHBhdGggKyBsZW4gLSAxOworCisg
ICAgICAgY29uc3QgY2hhciBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKyAgICAgICB3aGlsZSAo
IHMgPiBwYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggKnMgPT0gc2xhc2ggKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcyA9ICdcMCc7CisgICAgICAg
ICAgICAgICAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0lzRGlyZWN0b3J5KCBwYXRoICk7Cisg
ICAgICAgICAgICAgICAgICAgICAqcyA9IHNsYXNoOworCisgICAgICAgICAgICAgICAgICAgICBp
ZiAoIGJFeGlzdHMgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICsrczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAtLXM7Cisg
ICAgICAgfQorCisgICAgICAgLy8gYW5kIHRoZW4gbW92ZSBmb3J3YXJkcyBmcm9tIHRoZXJlCisK
KyAgICAgICB3aGlsZSAoICpzICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggKnMgPT0g
c2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcyA9ICdcMCc7
CisgICAgICAgICAgICAgICAgICAgICBCQ3JlYXRlRGlyZWN0b3J5KCBwYXRoICk7CisgICAgICAg
ICAgICAgICAgICAgICAqcyA9IHNsYXNoOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IHMrKzsKKyAgICAgICB9CisKKyAgICAgICBib29sIGJSZXRWYWwgPSBCQ3JlYXRlRGlyZWN0b3J5
KCBwYXRoICk7CisgICAgICAgZnJlZSggcGF0aCApOworICAgICAgIHJldHVybiBiUmV0VmFsOwor
fQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IENyZWF0ZXMgdGhlIGRp
cmVjdG9yeSwgcmV0dXJuaW5nIHRydWUgaWYgaXQgaXMgY3JlYXRlZCwgb3IgaWYgaXQgYWxyZWFk
eSBleGlzdGVkCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIEJDcmVhdGVEaXJlY3Rvcnko
IGNvbnN0IGNoYXIgKnBjaFBhdGggKQoreworI2lmZGVmIFdJTjMyCisgICAgICAgc3RkOjp3c3Ry
aW5nIHdQYXRoID0gVVRGOHRvMTYoIHBjaFBhdGggKTsKKyAgICAgICBpZiAoIDo6Q3JlYXRlRGly
ZWN0b3J5Vyggd1BhdGguY19zdHIoKSwgTlVMTCApICkKKyAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICAgICBpZiAoIDo6R2V0TGFzdEVycm9yKCkgPT0gRVJST1JfQUxSRUFEWV9FWElT
VFMgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIHJldHVybiBmYWxzZTsK
KyNlbHNlCisgICAgICAgaW50IGkgPSBta2RpciggcGNoUGF0aCwgU19JUldYVSB8IFNfSVJXWEcg
fCBTX0lSV1hPICk7CisgICAgICAgaWYgKCBpID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICBpZiAoIGVycm5vID09IEVFWElTVCApCisgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwNDhiNDFiNzgxNGZkZTA3Mjc3NjRhZTc5NGVkZThlMGRmZDRlNjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2Rp
cnRvb2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTcgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBW
YWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKKworI2lmICFkZWZpbmVkKF9XSU4zMikK
KyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCisK
KworZXh0ZXJuIGJvb2wgQkNyZWF0ZURpcmVjdG9yeVJlY3Vyc2l2ZSggY29uc3QgY2hhciAqcGNo
UGF0aCApOworZXh0ZXJuIGJvb2wgQkNyZWF0ZURpcmVjdG9yeSggY29uc3QgY2hhciAqcGNoUGF0
aCApOworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vZW52dmFydG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWQxNmQ5Zjg1NjI2
ZmNhMDYwNGM5ZjFlY2Y2NjQwMmM5YmE4YWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCkBAIC0w
LDAgKzEsNDYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09
PT09PT09PT0vLworI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgPHN0
ZGxpYi5oPgorCisjaWYgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8d2luZG93cy5oPgorCisj
dW5kZWYgR2V0RW52aXJvbm1lbnRWYXJpYWJsZQorI3VuZGVmIFNldEVudmlyb25tZW50VmFyaWFi
bGUKKyNlbmRpZgorCisKK3N0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0
IGNoYXIgKnBjaFZhck5hbWUgKQoreworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAgIGNoYXIg
cmNoVmFsdWVbMzI3NjddOyAvLyBtYXggc2l6ZSBmb3IgYW4gZW52IHZhciBvbiBXaW5kb3dzCisg
ICAgICAgRFdPUkQgY0NoYXJzID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUs
IHJjaFZhbHVlLCBzaXplb2YoIHJjaFZhbHVlICkgKTsKKyAgICAgICBpZiggY0NoYXJzID09IDAg
KQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICBy
ZXR1cm4gcmNoVmFsdWU7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIGNoYXIgKnBjaFZh
bHVlID0gZ2V0ZW52KCBwY2hWYXJOYW1lICk7CisgICAgICAgaWYoIHBjaFZhbHVlICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIHBjaFZhbHVlOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0
dXJuICIiOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0iCisjZW5kaWYKK30K
KworCitib29sIFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUs
IGNvbnN0IGNoYXIgKnBjaFZhclZhbHVlICkKK3sKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyAgICAg
ICByZXR1cm4gMCAhPSBTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSggcGNoVmFyTmFtZSwgcGNoVmFy
VmFsdWUgKTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAgICAgaWYoIHBjaFZhclZhbHVlID09
IE5VTEwgKQorICAgICAgICAgICAgICByZXR1cm4gMCA9PSB1bnNldGVudiggcGNoVmFyTmFtZSAp
OworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIDAgPT0gc2V0ZW52KCBwY2hWYXJO
YW1lLCBwY2hWYXJWYWx1ZSwgMSApOworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZv
cm0iCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkZTk4MWFjM2Uz
OTcwNmQ1OWEwMGMyYzQxZjg1NThlNGM1ZDIwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oCkBAIC0w
LDAgKzEsNyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09
PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKworc3RkOjpzdHJp
bmcgR2V0RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSApOworYm9v
bCBTZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lLCBjb25zdCBj
aGFyICpwY2hWYXJWYWx1ZSApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyZTFj
NGIzYTgxMzA4YzAxOWQ3MmJjY2NkN2M2YWU3MDk4MTlmNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAK
QEAgLTAsMCArMSwyMjkgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlv
biA9PT09PT09PT09PT0vLworI2luY2x1ZGUgIm9wZW52ci5oIgorI2luY2x1ZGUgImhtZGVycm9y
c19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwor
dXNpbmcgbmFtZXNwYWNlIHZyOworCisjZGVmaW5lIFJFVFVSTl9FTlVNX0FTX1NUUklORyhlbnVt
VmFsdWUpIGNhc2UgZW51bVZhbHVlOiByZXR1cm4gI2VudW1WYWx1ZTsKKworCitjb25zdCBjaGFy
ICpHZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkK
K3sKKyAgICAgICBzd2l0Y2goIGVFcnJvciApCisgICAgICAgeworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfTm9uZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiTm8gRXJyb3IgKDApIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ikluc3RhbGxhdGlvbiBOb3QgRm91bmQgKDEwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SW5pdF9JbnN0YWxsYXRpb25Db3JydXB0OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW5z
dGFsbGF0aW9uIENvcnJ1cHQgKDEwMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9W
UkNsaWVudERMTE5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJjbGllbnQg
U2hhcmVkIExpYiBOb3QgRm91bmQgKDEwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5p
dF9GaWxlTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkZpbGUgTm90IEZvdW5kICgxMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfRmFj
dG9yeU5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkZhY3Rvcnkg
RnVuY3Rpb24gTm90IEZvdW5kICgxMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRf
SW50ZXJmYWNlTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnRlcmZhY2Ug
Tm90IEZvdW5kICgxMDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZElu
dGVyZmFjZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkIEludGVy
ZmFjZSAoMTA2KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1VzZXJDb25maWdEaXJl
Y3RvcnlJbnZhbGlkOiAgICAgICByZXR1cm4gIlVzZXIgQ29uZmlnIERpcmVjdG9yeSBJbnZhbGlk
ICgxMDcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQ6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBOb3QgRm91bmQgKDEwOCki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJOb3QgSW5pdGlhbGl6ZWQgKDEwOSkiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZDogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkluc3RhbGxhdGlvbiBwYXRoIGNvdWxkIG5vdCBiZSBsb2NhdGVkICgx
MTApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9Db25maWdQYXRoOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb25maWcgcGF0aCBjb3VsZCBub3Qg
YmUgbG9jYXRlZCAoMTExKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0
aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiTG9nIHBhdGggY291
bGQgbm90IGJlIGxvY2F0ZWQgKDExMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Q
YXRoUmVnaXN0cnlOb3RXcml0YWJsZTogICAgICAgICAgICAgIHJldHVybiAiVW5hYmxlIHRvIHdy
aXRlIHBhdGggcmVnaXN0cnkgKDExMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9B
cHBJbmZvSW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkFwcCBpbmZvIG1h
bmFnZXIgaW5pdCBmYWlsZWQgKDExNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9S
ZXRyeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIklu
dGVybmFsIFJldHJ5ICgxMTUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW5pdENh
bmNlbGVkQnlVc2VyOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVXNlciBDYW5jZWxlZCBJ
bml0ICgxMTYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5j
aGluZzogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkFub3RoZXIgYXBwIHdhcyBhbHJlYWR5
IGxhdW5jaGluZyAoMTE3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdz
SW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNldHRpbmdzIG1hbmFnZXIg
aW5pdCBmYWlsZWQgKDExOCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9TaHV0dGlu
Z0Rvd246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIHN5c3Rl
bSBzaHV0dGluZyBkb3duICgxMTkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVG9v
TWFueU9iamVjdHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVG9vIG1hbnkg
dHJhY2tlZCBvYmplY3RzICgxMjApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm9T
ZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwOiAgICAgICAgICAgICAgcmV0dXJuICJOb3Qgc3RhcnRpbmcg
dnJzZXJ2ZXIgZm9yIGJhY2tncm91bmQgYXBwICgxMjEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3I6ICAgICAgIHJldHVybiAiVGhlIHJl
cXVlc3RlZCBpbnRlcmZhY2UgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGNvbXBvc2l0b3IgYW5k
IHRoZSBjb21wb3NpdG9yIGlzIHJ1bm5pbmcgKDEyMikiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzOiAgICAgICByZXR1cm4gIlRoaXMgaW50
ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUgdG8gdXRpbGl0eSBhcHBsaWNhdGlvbnMgKDEyMykiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9JbnRlcm5hbDogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gInZyc2VydmVyIGludGVybmFsIGVycm9yICgx
MjQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kRHJpdmVySWRJc05vbmU6ICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJIbWQgRHJpdmVySWQgaXMgaW52YWxpZCAoMTI1KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWlsZWQ6
ICAgICAgIHJldHVybiAiSG1kIE5vdCBGb3VuZCBQcmVzZW5jZSBGYWlsZWQgKDEyNikiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZDogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIlZSIE1vbml0b3IgTm90IEZvdW5kICgxMjcpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZDogICAgICAgICAgICAgIHJl
dHVybiAiVlIgTW9uaXRvciBzdGFydHVwIGZhaWxlZCAoMTI4KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQ6IHJldHVybiAiTG93IFBv
d2VyIFdhdGNoZG9nIE5vdCBTdXBwb3J0ZWQgKDEyOSkiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlOiAgICAgICAgICAgICAgcmV0dXJuICJJbnZh
bGlkIEFwcGxpY2F0aW9uIFR5cGUgKDEzMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5p
dF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwczogICAgICAgcmV0dXJuICJOb3QgYXZhaWxhYmxl
IHRvIHdhdGNoZG9nIGFwcHMgKDEzMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9X
YXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5nczogICAgICAgcmV0dXJuICJXYXRjaGRvZyBkaXNhYmxl
ZCBpbiBzZXR0aW5ncyAoMTMyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSRGFz
aGJvYXJkTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBEYXNoYm9hcmQg
Tm90IEZvdW5kICgxMzMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9h
cmRTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgcmV0dXJuICJWUiBEYXNoYm9hcmQgc3RhcnR1
cCBmYWlsZWQgKDEzNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVOb3RG
b3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBIb21lIE5vdCBGb3Vu
ZCAoMTM1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWls
ZWQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBob21lIHN0YXJ0dXAgZmFpbGVkICgx
MzYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUmVib290aW5nQnVzeTogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJSZWJvb3RpbmcgSW4gUHJvZ3Jlc3MgKDEzNyki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3k6ICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJGaXJtd2FyZSBVcGRhdGUgSW4gUHJvZ3Jlc3MgKDEzOCki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9GaXJtd2FyZVJlY292ZXJ5QnVzeTogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFJlY292ZXJ5IEluIFByb2dyZXNzICgx
MzkpIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgRmFp
bGVkICgyMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIE5vdCBL
bm93biAoMjAxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93bjog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBOb3Qg
S25vd24gKDIwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZDog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBO
b3QgTG9hZGVkICgyMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9SdW50aW1l
T3V0T2ZEYXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBydW50
aW1lIGlzIG91dCBvZiBkYXRlICgyMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZl
cl9IbWRJblVzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIkhNRCBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGFwcGxpY2F0aW9uICgyMDUpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJhdGVkOiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEZXZpY2UgaXMgbm90IGNhbGlicmF0ZWQgKDIw
NikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZDog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJEZXZpY2UgQ2FsaWJyYXRpb24gaXMg
aW52YWxpZCAoMjA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxh
eU5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBkZXRlY3Rl
ZCBvdmVyIFVTQiwgYnV0IE1vbml0b3Igbm90IGZvdW5kICgyMDgpIjsKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93bjogICAgICAgcmV0
dXJuICJEcml2ZXIgVHJhY2tlZCBEZXZpY2UgSW50ZXJmYWNlIHVua25vd24gKDIwOSkiOworICAg
ICAgIC8vIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZEFmdGVyRml4
OiAgICAgICByZXR1cm4gIkhNRCBkZXRlY3RlZCBvdmVyIFVTQiwgYnV0IE1vbml0b3Igbm90IGZv
dW5kIGFmdGVyIGF0dGVtcHQgdG8gZml4ICgyMTApIjsgLy8gdGFrZW4gb3V0IHVwb24gQmVuJ3Mg
cmVxdWVzdDogSGUgdGhpbmtzIHRoYXQgdGhlcmUgaXMgbm8gbmVlZCB0byBzZXBhcmF0ZSB0aGF0
IGVycm9yIGZyb20gMjA4CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVy
SWRPdXRPZkJvdW5kczogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBp
cyBvdXIgb2YgYm91bmRzICgyMTEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZlcl9I
bWREaXNwbGF5TWlycm9yZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1E
IGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBtYXkgYmUgbWlycm9yZWQgaW5zdGVhZCBv
ZiBleHRlbmRlZCAoMjEyKSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJ
bml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiVlIgU2VydmVyIEluaXQgRmFpbGVkICgzMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0lQQ19Db25uZWN0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIkNvbm5lY3QgdG8gVlIgU2VydmVyIEZhaWxlZCAoMzAxKSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIFN0YXRlIEluaXQg
RmFpbGVkICgzMDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5p
dEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVk
IElQQyBDb21wb3NpdG9yIEluaXQgRmFpbGVkICgzMDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0lQQ19NdXRleEluaXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIE11dGV4IEluaXQgRmFpbGVkICgzMDQpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgRmFpbGVk
ICgzMDUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZh
aWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIENvbXBv
c2l0b3IgQ29ubmVjdCBGYWlsZWQgKDMwNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlOiAgICAgICAgICAgICAgcmV0dXJuICJT
aGFyZWQgSVBDIENvbXBvc2l0b3IgSW52YWxpZCBDb25uZWN0IFJlc3BvbnNlICgzMDcpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVt
cHRzOiAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29ubmVjdCBGYWlsZWQgQWZ0ZXIgTXVsdGlw
bGUgQXR0ZW1wdHMgKDMwOCkiOworCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9y
X0ZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQ29tcG9z
aXRvciBmYWlsZWQgdG8gaW5pdGlhbGl6ZSAoNDAwKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZDogICAgICAgcmV0dXJuICJDb21wb3Np
dG9yIGZhaWxlZCB0byBmaW5kIERYMTEgaGFyZHdhcmUgKDQwMSkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlOiAgICAgICByZXR1cm4g
IkNvbXBvc2l0b3IgcmVxdWlyZXMgbWFuZGF0b3J5IGZpcm13YXJlIHVwZGF0ZSAoNDAyKSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkOiAgICAg
ICAgICAgICAgcmV0dXJuICJDb21wb3NpdG9yIGluaXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0
IG92ZXJsYXkgaW5pdCBmYWlsZWQgKDQwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQ6ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciBp
bml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIGJ1dCBzY3JlZW5zaG90IGluaXQgZmFpbGVkICg0MDQp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfVW5hYmxlVG9DcmVhdGVEZXZp
Y2U6ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciB1bmFibGUgdG8gY3JlYXRlIGdyYXBoaWNzIGRl
dmljZSAoNDA1KSI7CisKKyAgICAgICAvLyBPY3VsdXMKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVudGltZTogICAgICAgcmV0
dXJuICJVbmFibGUgdG8gY29ubmVjdCB0byBPY3VsdXMgUnVudGltZSAoMTAwMCkiOworCisgICAg
ICAgLy8gTGlnaHRob3VzZQorICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfQ2FudE9wZW5EZXZpY2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSE1EIGZvdW5kLCBidXQgY2FuIG5vdCBvcGVuIGRldmljZSAoMTEwMSkiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29u
ZmlnU3RhcnQ6ICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgdW5hYmxlIHRvIHJlcXVlc3Qg
Y29uZmlnICgxMTAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9Ob1N0b3JlZENvbmZpZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJITUQgZm91bmQsIGJ1dCBubyBzdG9yZWQgY29uZmlnICgxMTAzKSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVj
azogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBmYWlsZWQgY29uZmlndXJhdGlvbiBjaGVj
ayAoMTExMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ29uZmlnVG9vQmlnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJITUQgZm91bmQsIGJ1dCBjb25maWcgdG9vIGJpZyAoMTEwNCkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGw6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgY29uZmlnIHRvbyBzbWFs
bCAoMTEwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfVW5hYmxlVG9Jbml0WkxpYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJI
TUQgZm91bmQsIGJ1dCB1bmFibGUgdG8gaW5pdCBaTGliICgxMTA2KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lv
bjogICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUg
ZGF0YSAoMTEwNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1k
Rm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydDogICAgICAgICAgICAgIHJldHVybiAiSE1E
IGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEwOCkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0
YXJ0OiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRo
ZSBkYXRhICgxMTA5KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dDogICAgICAgICAgICAgIHJldHVybiAiSE1E
IGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTExMCkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2U6
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRo
IHRoZSBkYXRhICgxMTExKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEyKSI7
CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91
bmQ6IHJldHVybiAiVW5hYmxlIHRvIGZpbmQgU3RlYW0gaW5zdGFsbGF0aW9uICgyMDAwKSI7CisK
KyAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBz
dGF0aWMgY2hhciBidWZbMTI4XTsKKyAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoIGJ1Ziwg
IlVua25vd24gZXJyb3IgKCVkKSIsIGVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJ1ZjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworfQorCisKK2NvbnN0IGNoYXIg
KkdldElERm9yVlJJbml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkKK3sKKyAgICAg
ICBzd2l0Y2goIGVFcnJvciApCisgICAgICAgeworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX05vbmUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Vbmtub3duICk7CisKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9J
bnN0YWxsYXRpb25Db3JydXB0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kICk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Zh
Y3RvcnlOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2UgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1VzZXJD
b25maWdEaXJlY3RvcnlJbnZhbGlkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1BhdGhS
ZWdpc3RyeU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X05vTG9nUGF0aCApOworICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90
V3JpdGFibGUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9SZXRyeSApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5pdENhbmNlbGVkQnlVc2VyICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9B
bm90aGVyQXBwTGF1bmNoaW5nICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVG9v
TWFueU9iamVjdHMgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENv
bXBvc2l0b3IgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JO
b3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBv
cnRlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMg
KTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0
X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5kICk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hi
b2FyZFN0YXJ0dXBGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkhvbWVTdGFydHVwRmFpbGVkICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9S
ZWJvb3RpbmdCdXN5ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9GaXJtd2FyZVVwZGF0ZUJ1c3kgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVjb3ZlcnlCdXN5ICk7
CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0
X0htZERyaXZlcklkSXNOb25lICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkICk7CisKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfRmFpbGVk
ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJp
dmVyX1Vua25vd24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93bik7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX05vdExvYWRlZCk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZl
cl9IbWRJblVzZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQpOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNw
bGF5Tm90Rm91bmQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0RyaXZlcl9UcmFja2VkRGV2aWNlSW50ZXJmYWNlVW5rbm93biApOworICAgICAgICAg
ICAgICAvLyBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNw
bGF5Tm90Rm91bmRBZnRlckZpeCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJ
TkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9mQm91bmRzICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3Bs
YXlNaXJyb3JlZCApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0
RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQpOworICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQpOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9y
Q29ubmVjdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxl
ZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0ZhaWxlZCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2Fy
ZVJlcXVpcmVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlICk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9PdmVybGF5SW5p
dEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFibGVUb0NyZWF0
ZURldmljZSApOworCisgICAgICAgICAgICAgIC8vIE9jdWx1cworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29u
bmVjdFRvT2N1bHVzUnVudGltZSk7CisKKyAgICAgICAgICAgICAgLy8gTGlnaHRob3VzZQorICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1Jl
cXVlc3RDb25maWdTdGFydCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcpOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrICk7CisgICAgICAgICAgICAgIFJF
VFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
Q29uZmlnVG9vQmlnICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRG
aXJtd2FyZVZlcnNpb24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0
YXJ0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ICk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YU5leHQgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
c2VyRGF0YUFkZHJlc3NSYW5nZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJ
TkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IgKTsK
KworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1N0ZWFt
X1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgKTsKKworICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjaGFyIGJ1ZlsxMjhdOworICAg
ICAgICAgICAgICAgICAgICAgc3ByaW50ZiggYnVmLCAiVW5rbm93biBlcnJvciAoJWQpIiwgZUVy
cm9yICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZDZjOGE5NmMxMzBj
MGFjZjFmNGIyYjY0ODZmNWIyOTNkMDdiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuaApAQCAtMCwwICsx
LDYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09
PT0vLworI3ByYWdtYSBvbmNlCisKK2NvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRF
cnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKK2NvbnN0IGNoYXIgKkdldElERm9yVlJJ
bml0RXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICk7CisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdkMzQ1OGRkYzFkYWFkOGM4OTc4MTA0NTI4ODUyMzA4ZWI5MDgwMTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3Bh
dGh0b29sc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsODE5IEBACisvLz09PT09PT09PSBDb3B5cmln
aHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJzdHJ0b29sc19w
dWJsaWMuaCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgiCisKKyNpZiBkZWZpbmVkKCBf
V0lOMzIpCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPGRpcmVjdC5oPgorI2luY2x1
ZGUgPHNob2JqaWRsLmg+CisjaW5jbHVkZSA8a25vd25mb2xkZXJzLmg+CisjaW5jbHVkZSA8c2hs
b2JqLmg+CisjaW5jbHVkZSA8c2hhcmUuaD4KKworI3VuZGVmIEdldEVudmlyb25tZW50VmFyaWFi
bGUKKyNlbHNlCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1
ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmCisjaWYgZGVmaW5lZCBP
U1gKKyNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxBcHBLaXQv
QXBwS2l0Lmg+CisjaW5jbHVkZSA8bWFjaC1vL2R5bGQuaD4KKyNkZWZpbmUgX1NfSUZESVIgU19J
RkRJUiAgICAgLy8gcmVhbGx5IGZyb20gdGllcjAvcGxhdGZvcm0uaCB3aGljaCB3ZSBkb250IGhh
dmUgeWV0CisjZW5kaWYKKworI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNpbmNsdWRlIDxhbGdv
cml0aG0+CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIHRvIHRo
ZSBjdXJyZW50IGV4ZWN1dGFibGUgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0RXhlY3V0YWJsZVBh
dGgoKQoreworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgd2NoYXJfdCAqcHdjaFBhdGgg
PSBuZXcgd2NoYXJfdFtNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAgICBjaGFyICpwY2hQYXRoID0g
bmV3IGNoYXJbTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4XTsKKyAgICAgICA6OkdldE1vZHVsZUZp
bGVOYW1lVyggTlVMTCwgcHdjaFBhdGgsIE1BWF9VTklDT0RFX1BBVEggKTsKKyAgICAgICBXaWRl
Q2hhclRvTXVsdGlCeXRlKCBDUF9VVEY4LCAwLCBwd2NoUGF0aCwgLTEsIHBjaFBhdGgsIE1BWF9V
TklDT0RFX1BBVEhfSU5fVVRGOCwgTlVMTCwgTlVMTCApOworICAgICAgIGRlbGV0ZVtdIHB3Y2hQ
YXRoOworCisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBwY2hQYXRoOworICAgICAgIGRlbGV0
ZVtdIHBjaFBhdGg7CisgICAgICAgcmV0dXJuIHNQYXRoOworI2VsaWYgZGVmaW5lZCggT1NYICkK
KyAgICAgICBjaGFyIHJjaFBhdGhbMTAyNF07CisgICAgICAgdWludDMyX3QgbkJ1ZmYgPSBzaXpl
b2YoIHJjaFBhdGggKTsKKyAgICAgICBib29sIGJTdWNjZXNzID0gX05TR2V0RXhlY3V0YWJsZVBh
dGgocmNoUGF0aCwgJm5CdWZmKSA9PSAwOworICAgICAgIHJjaFBhdGhbbkJ1ZmYtMV0gPSAnXDAn
OworICAgICAgIGlmKCBiU3VjY2VzcyApCisgICAgICAgICAgICAgIHJldHVybiByY2hQYXRoOwor
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworI2VsaWYgZGVmaW5lZCBMSU5V
WAorICAgICAgIGNoYXIgcmNoUGF0aFsxMDI0XTsKKyAgICAgICBzaXplX3QgbkJ1ZmYgPSBzaXpl
b2YoIHJjaFBhdGggKTsKKyAgICAgICBzc2l6ZV90IG5SZWFkID0gcmVhZGxpbmsoIi9wcm9jL3Nl
bGYvZXhlIiwgcmNoUGF0aCwgbkJ1ZmYtMSApOworICAgICAgIGlmICggblJlYWQgIT0gLTEgKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmNoUGF0aFsgblJlYWQgXSA9IDA7CisgICAgICAgICAg
ICAgIHJldHVybiByY2hQYXRoOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAg
ICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorI2Vsc2UKKyAgICAgICBBc3NlcnRNc2co
IGZhbHNlLCAiSW1wbGVtZW50IFBsYXRfR2V0RXhlY3V0YWJsZVBhdGgiICk7CisgICAgICAgcmV0
dXJuICIiOworI2VuZGlmCisKK30KKworLyoqIFJldHVybnMgdGhlIHBhdGggb2YgdGhlIGN1cnJl
bnQgd29ya2luZyBkaXJlY3RvcnkgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0V29ya2luZ0RpcmVj
dG9yeSgpCit7CisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGg7CisjaWYgZGVmaW5lZCggX1dJTjMy
ICkKKyAgICAgICB3Y2hhcl90IGJ1ZltNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAgICBzUGF0aCA9
IFVURjE2dG84KCBfd2dldGN3ZCggYnVmLCBNQVhfVU5JQ09ERV9QQVRIICkgKTsKKyNlbHNlCisg
ICAgICAgY2hhciBidWZbIDEwMjQgXTsKKyAgICAgICBzUGF0aCA9IGdldGN3ZCggYnVmLCBzaXpl
b2YoIGJ1ZiApICk7CisjZW5kaWYKKyAgICAgICByZXR1cm4gc1BhdGg7Cit9CisKKy8qKiBTZXRz
IHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBSZXR1cm5zIHRydWUg
aWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KK2Jvb2wgUGF0aF9TZXRXb3JraW5nRGlyZWN0b3J5
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBib29sIGJTdWNjZXNzOwor
I2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgc3RkOjp3c3RyaW5nIHdzUGF0aCA9IFVURjh0
bzE2KCBzUGF0aC5jX3N0cigpICk7CisgICAgICAgYlN1Y2Nlc3MgPSAwID09IF93Y2hkaXIoIHdz
UGF0aC5jX3N0cigpICk7CisjZWxzZQorICAgICAgIGJTdWNjZXNzID0gMCA9PSBjaGRpciggc1Bh
dGguY19zdHIoKSApOworI2VuZGlmCisgICAgICAgcmV0dXJuIGJTdWNjZXNzOworfQorCisvKiog
UmV0dXJucyB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aG91dCBpdHMgZmlsZW5hbWUgKi8KK3N0ZDo6
c3RyaW5nIFBhdGhfU3RyaXBGaWxlbmFtZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hh
ciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFz
aCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbiA9
IHNQYXRoLmZpbmRfbGFzdF9vZiggc2xhc2ggKTsKKyAgICAgICBpZiggbiA9PSBzdGQ6OnN0cmlu
Zzo6bnBvcyApCisgICAgICAgICAgICAgIHJldHVybiBzUGF0aDsKKyAgICAgICBlbHNlCisgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVnaW4oKSwgc1BhdGguYmVnaW4o
KSArIG4gKTsKK30KKworLyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUgZnJvbSB0aGUgcHJv
dmlkZWQgZnVsbCBvciByZWxhdGl2ZSBwYXRoLiAqLworc3RkOjpzdHJpbmcgUGF0aF9TdHJpcERp
cmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCApCit7CisgICAg
ICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2go
KTsKKworICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbiA9IHNQYXRoLmZpbmRfbGFzdF9v
Ziggc2xhc2ggKTsKKyAgICAgICBpZiggbiA9PSBzdGQ6OnN0cmluZzo6bnBvcyApCisgICAgICAg
ICAgICAgIHJldHVybiBzUGF0aDsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBz
dGQ6OnN0cmluZyggc1BhdGguYmVnaW4oKSArIG4gKyAxLCBzUGF0aC5lbmQoKSApOworfQorCisv
KiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSB3aXRoIG5vIGV4dGVuc2lvbiBvZiB0aGUgcHJv
dmlkZWQgZmlsZW5hbWUuIAorKiBJZiB0aGVyZSBpcyBhIHBhdGggdGhlIHBhdGggaXMgbGVmdCBp
bnRhY3QuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRXh0ZW5zaW9uKCBjb25zdCBzdGQ6OnN0
cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpjb25zdF9yZXZlcnNl
X2l0ZXJhdG9yIGkgPSBzUGF0aC5yYmVnaW4oKTsgaSAhPSBzUGF0aC5yZW5kKCk7IGkrKyApCisg
ICAgICAgeworICAgICAgICAgICAgICBpZiggKmkgPT0gJy4nICkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBzUGF0aC5iZWdpbigpLCBp
LmJhc2UoKSAtIDEgKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIGlmIHdl
IGZpbmQgYSBzbGFzaCB0aGVyZSBpcyBubyBleHRlbnNpb24KKyAgICAgICAgICAgICAgaWYoICpp
ID09ICdcXCcgfHwgKmkgPT0gJy8nICkKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgIH0KKworICAgICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4dGVuc2lvbgorICAgICAgIHJl
dHVybiBzUGF0aDsKK30KKworLyoqIHJldHVybnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3Zp
ZGVkIGZpbGVuYW1lIChpZiBhbnkpLiAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24o
IGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAgIGZvciAoIHN0ZDo6c3RyaW5n
Ojpjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIGkgPSBzUGF0aC5yYmVnaW4oKTsgaSAhPSBzUGF0aC5y
ZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoICppID09ICcuJyApCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygg
aS5iYXNlKCksIHNQYXRoLmVuZCgpICk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAvLyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMgbm8gZXh0ZW5zaW9uCisgICAgICAgICAg
ICAgIGlmICggKmkgPT0gJ1xcJyB8fCAqaSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgfQorCisgICAgICAgLy8gd2UgZGlkbid0IGZpbmQgYW4gZXh0ZW5zaW9u
CisgICAgICAgcmV0dXJuICIiOworfQorCitib29sIFBhdGhfSXNBYnNvbHV0ZSggY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgaWYoIHNQYXRoLmVtcHR5KCkgKQorICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKCBXSU4zMiApCisgICAgICAgaWYg
KCBzUGF0aC5zaXplKCkgPCAzICkgLy8gbXVzdCBiZSBjOlx4IG9yIFxceCBhdCBsZWFzdAorICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBpZiAoIHNQYXRoWzFdID09ICc6JyAp
IC8vIGRyaXZlIGxldHRlciBwbHVzIHNsYXNoLCBidXQgbXVzdCB0ZXN0IGJvdGggc2xhc2ggY2Fz
ZXMKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggc1BhdGhbMl0gPT0gJ1xcJyB8fCBzUGF0
aFsyXSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
fQorICAgICAgIGVsc2UgaWYgKCBzUGF0aFswXSA9PSAnXFwnICYmIHNQYXRoWzFdID09ICdcXCcg
KSAvLyBVTkMgcGF0aAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgICAg
aWYoIHNQYXRoWzBdID09ICdcXCcgfHwgc1BhdGhbMF0gPT0gJy8nICkgLy8gYW55IGxlYWRpbmcg
c2xhc2gKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworICAgICAgIHJldHVy
biBmYWxzZTsKK30KKworCisvKiogTWFrZXMgYW4gYWJzb2x1dGUgcGF0aCBmcm9tIGEgcmVsYXRp
dmUgcGF0aCBhbmQgYSBiYXNlIHBhdGggKi8KK3N0ZDo6c3RyaW5nIFBhdGhfTWFrZUFic29sdXRl
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c0Jhc2VQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAg
ICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgaWYoIFBhdGhfSXNB
YnNvbHV0ZSggc1JlbGF0aXZlUGF0aCApICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNSZWxhdGl2
ZVBhdGg7CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoICFQYXRoX0lz
QWJzb2x1dGUoIHNCYXNlUGF0aCApICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsK
KworICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzQ29tcGFjdGVkID0gUGF0aF9Db21wYWN0KCBQ
YXRoX0pvaW4oIHNCYXNlUGF0aCwgc1JlbGF0aXZlUGF0aCwgc2xhc2ggKSwgc2xhc2ggKTsKKyAg
ICAgICAgICAgICAgaWYoIFBhdGhfSXNBYnNvbHV0ZSggc0NvbXBhY3RlZCApICkKKyAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBzQ29tcGFjdGVkOworICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorfQorCisKKy8qKiBGaXhlcyB0
aGUgZGlyZWN0b3J5IHNlcGFyYXRvcnMgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtICovCitzdGQ6
OnN0cmluZyBQYXRoX0ZpeFNsYXNoZXMoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIg
c2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2gg
PSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzRml4ZWQgPSBzUGF0aDsK
KyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjppdGVyYXRvciBpID0gc0ZpeGVkLmJlZ2luKCk7IGkg
IT0gc0ZpeGVkLmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoICppID09
ICcvJyB8fCAqaSA9PSAnXFwnICkKKyAgICAgICAgICAgICAgICAgICAgICppID0gc2xhc2g7Cisg
ICAgICAgfQorCisgICAgICAgcmV0dXJuIHNGaXhlZDsKK30KKworCitjaGFyIFBhdGhfR2V0U2xh
c2goKQoreworI2lmIGRlZmluZWQoX1dJTjMyKQorICAgICAgIHJldHVybiAnXFwnOworI2Vsc2UK
KyAgICAgICByZXR1cm4gJy8nOworI2VuZGlmCit9CisKKy8qKiBKYW1zIHR3byBwYXRocyB0b2dl
dGhlciB3aXRoIHRoZSByaWdodCBraW5kIG9mIHNsYXNoICovCitzdGQ6OnN0cmluZyBQYXRoX0pv
aW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25k
LCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAgICAgICAgICAg
IHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgLy8gb25seSBpbnNlcnQgYSBzbGFz
aCBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgb25lCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVf
dHlwZSBuTGVuID0gZmlyc3QubGVuZ3RoKCk7CisgICAgICAgaWYoICFuTGVuICkKKyAgICAgICAg
ICAgICAgcmV0dXJuIHNlY29uZDsKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyAgICAgICBpZiggZmly
c3QuYmFjaygpID09ICdcXCcgfHwgZmlyc3QuYmFjaygpID09ICcvJyApCisgICAgICAgICAgIG5M
ZW4tLTsKKyNlbHNlCisgICAgICAgY2hhciBsYXN0X2NoYXIgPSBmaXJzdFtmaXJzdC5sZW5ndGgo
KS0xXTsKKyAgICAgICBpZiAobGFzdF9jaGFyID09ICdcXCcgfHwgbGFzdF9jaGFyID09ICcvJykK
KyAgICAgICAgICAgbkxlbi0tOworI2VuZGlmCisKKyAgICAgICByZXR1cm4gZmlyc3Quc3Vic3Ry
KCAwLCBuTGVuICkgKyBzdGQ6OnN0cmluZyggMSwgc2xhc2ggKSArIHNlY29uZDsKK30KKworCitz
dGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc2Vjb25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNo
ICkKK3sKKyAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIGZpcnN0LCBzZWNvbmQs
IHNsYXNoICksIHRoaXJkLCBzbGFzaCApOworfQorCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNv
bnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjb25z
dCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjb25zdCBzdGQ6OnN0cmluZyAmZm91cnRoLCBjaGFyIHNs
YXNoICkKK3sKKyAgICAgICByZXR1cm4gUGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhfSm9pbigg
Zmlyc3QsIHNlY29uZCwgc2xhc2ggKSwgdGhpcmQsIHNsYXNoICksIGZvdXJ0aCwgc2xhc2ggKTsK
K30KKworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAm
IGZpcnN0LCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgCisgICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmb3Vy
dGgsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlmdGgsIAorICAgICAgIGNoYXIgc2xh
c2ggKQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQ
YXRoX0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICksIHRoaXJkLCBzbGFzaCApLCBmb3VydGgs
IHNsYXNoICksIGZpZnRoLCBzbGFzaCApOworfQorCisKK3N0ZDo6c3RyaW5nIFBhdGhfUmVtb3Zl
VHJhaWxpbmdTbGFzaCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCAp
Cit7CisgICAgICAgaWYgKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRo
X0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IHNSYXdQYXRoOworICAg
ICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbkN1cnJlbnQgPSBzUmF3UGF0aC5sZW5ndGgoKTsK
KyAgICAgICBpZiAoIG5DdXJyZW50ID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7
CisKKyAgICAgICBpbnQgbkxhc3RGb3VuZCA9IC0xOworICAgICAgIG5DdXJyZW50LS07CisgICAg
ICAgd2hpbGUoIG5DdXJyZW50ICE9IDAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBz
UmF3UGF0aFsgbkN1cnJlbnQgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgIG5MYXN0Rm91bmQgPSAoaW50KW5DdXJyZW50OworICAgICAgICAgICAgICAg
ICAgICAgbkN1cnJlbnQtLTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICB9CisgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICBpZiAoIG5MYXN0Rm91bmQgPj0g
MCApCisgICAgICAgeworICAgICAgICAgICAgICBzUGF0aC5lcmFzZSggbkxhc3RGb3VuZCwgc3Rk
OjpzdHJpbmc6Om5wb3MgKTsKKyAgICAgICB9CisgICAgICAgCisgICAgICAgcmV0dXJuIHNQYXRo
OworfQorCisKKy8qKiBSZW1vdmVzIHJlZHVuZGFudCA8ZGlyPi8uLiBlbGVtZW50cyBpbiB0aGUg
cGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRoIGlmIHRoZSAKKyogc3BlY2lmaWVkIHBhdGggaGFz
IGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3RvcmllcyBmb3IgaXRzIG51bWJlciBvZiAuLnMgKi8K
K3N0ZDo6c3RyaW5nIFBhdGhfQ29tcGFjdCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwg
Y2hhciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBz
bGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gUGF0
aF9GaXhTbGFzaGVzKCBzUmF3UGF0aCwgc2xhc2ggKTsKKyAgICAgICBzdGQ6OnN0cmluZyBzU2xh
c2hTdHJpbmcoIDEsIHNsYXNoICk7CisKKyAgICAgICAvLyBzdHJpcCBvdXQgYWxsIC8uLworICAg
ICAgIGZvciggc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpID0gMDsgKGkgKyAzKSA8IHNQYXRoLmxl
bmd0aCgpOyAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIHNQYXRoWyBpIF0gPT0gc2xh
c2ggJiYgc1BhdGhbIGkrMSBdID09ICcuJyAmJiBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBpLCAzLCBz
U2xhc2hTdHJpbmcgKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgfQor
ICAgICAgIH0KKworCisgICAgICAgLy8gZ2V0IHJpZCBvZiB0cmFpbGluZyAvLiBidXQgbGVhdmUg
dGhlIHBhdGggc2VwYXJhdG9yCisgICAgICAgaWYoIHNQYXRoLmxlbmd0aCgpID4gMiApCisgICAg
ICAgeworICAgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGxlbiA9IHNQYXRoLmxl
bmd0aCgpOworICAgICAgICAgICAgICBpZiggc1BhdGhbIGxlbi0xIF0gPT0gJy4nICAmJiBzUGF0
aFsgbGVuLTIgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAv
LyBzUGF0aC5wb3BfYmFjaygpOworICAgICAgICAgICAgICAgIHNQYXRoW2xlbi0xXSA9IDA7ICAv
LyBmb3Igbm93LCBhdCBsZWFzdAorICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAg
Ly8gZ2V0IHJpZCBvZiBsZWFkaW5nIC4vIAorICAgICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIHNQYXRoWyAwIF0gPT0gJy4nICAmJiBzUGF0
aFsgMSBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
c1BhdGgucmVwbGFjZSggMCwgMiwgIiIgKTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKwor
ICAgICAgIC8vIGVhY2ggdGltZSB3ZSBlbmNvdW50ZXIgLi4gYmFjayB1cCB1bnRpbCB3ZSd2ZSBm
b3VuZCB0aGUgcHJldmlvdXMgZGlyZWN0b3J5IG5hbWUKKyAgICAgICAvLyB0aGVuIGdldCByaWQg
b2YgYm90aAorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7CisgICAgICAgd2hp
bGUoIGkgPCBzUGF0aC5sZW5ndGgoKSApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggaSA+
IDAgJiYgc1BhdGgubGVuZ3RoKCkgLSBpID49IDIgCisgICAgICAgICAgICAgICAgICAgICAmJiBz
UGF0aFtpXSA9PSAnLicKKyAgICAgICAgICAgICAgICAgICAgICYmIHNQYXRoW2krMV0gPT0gJy4n
CisgICAgICAgICAgICAgICAgICAgICAmJiAoIGkgKyAyID09IHNQYXRoLmxlbmd0aCgpIHx8IHNQ
YXRoWyBpKzIgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgICAgICAgICAmJiBzUGF0aFsgaS0x
IF0gPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAvLyBj
aGVjayBpZiB3ZSd2ZSBoaXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcgYW5kIGhhdmUgYSBib2d1
cyBwYXRoCisgICAgICAgICAgICAgICAgICAgICBpZiggaSA9PSAxICkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgIC8vIGZpbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgaS0xCisgICAgICAgICAg
ICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGlEaXJTdGFydCA9IGktMjsKKyAgICAg
ICAgICAgICAgICAgICAgIHdoaWxlKCBpRGlyU3RhcnQgPiAwICYmIHNQYXRoWyBpRGlyU3RhcnQg
LSAxIF0gIT0gc2xhc2ggKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0taURpclN0YXJ0
OworCisgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZXZlcnl0aGluZyBmcm9tIGlEaXJT
dGFydCB0byBpKzIKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRoLnJlcGxhY2UoIGlEaXJTdGFy
dCwgKGkgLSBpRGlyU3RhcnQpICsgMywgIiIgKTsKKworICAgICAgICAgICAgICAgICAgICAgLy8g
c3RhcnQgb3ZlcgorICAgICAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICArK2k7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc1BhdGg7
Cit9CisKKworLyoqIFJldHVybnMgdGhlIHBhdGggdG8gdGhlIGN1cnJlbnQgRExMIG9yIGV4ZSAq
Lworc3RkOjpzdHJpbmcgUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCgpCit7CisgICAgICAgLy8gZ2V0
cyB0aGUgcGF0aCBvZiB2cmNsaWVudC5kbGwgaXRzZWxmCisjaWZkZWYgV0lOMzIKKyAgICAgICBI
TU9EVUxFIGhtb2R1bGUgPSBOVUxMOworCisgICAgICAgOjpHZXRNb2R1bGVIYW5kbGVFeCggR0VU
X01PRFVMRV9IQU5ETEVfRVhfRkxBR19GUk9NX0FERFJFU1MgfCBHRVRfTU9EVUxFX0hBTkRMRV9F
WF9GTEFHX1VOQ0hBTkdFRF9SRUZDT1VOVCwgcmVpbnRlcnByZXRfY2FzdDxMUENUU1RSPihQYXRo
X0dldFRoaXNNb2R1bGVQYXRoKSwgJmhtb2R1bGUgKTsKKworICAgICAgIHdjaGFyX3QgKnB3Y2hQ
YXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNPREVfUEFUSF07CisgICAgICAgY2hhciAqcGNoUGF0
aCA9IG5ldyBjaGFyWyBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggXTsKKyAgICAgICA6OkdldE1v
ZHVsZUZpbGVOYW1lVyggaG1vZHVsZSwgcHdjaFBhdGgsIE1BWF9VTklDT0RFX1BBVEggKTsKKyAg
ICAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKCBDUF9VVEY4LCAwLCBwd2NoUGF0aCwgLTEsIHBjaFBh
dGgsIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCwgTlVMTCwgTlVMTCApOworICAgICAgIGRlbGV0
ZVtdIHB3Y2hQYXRoOworCisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBwY2hQYXRoOworICAg
ICAgIGRlbGV0ZSBbXSBwY2hQYXRoOworICAgICAgIHJldHVybiBzUGF0aDsKKworI2VsaWYgZGVm
aW5lZCggT1NYICkgfHwgZGVmaW5lZCggTElOVVggKQorICAgICAgIC8vIGdldCB0aGUgYWRkciBv
ZiBhIGZ1bmN0aW9uIGluIHZyY2xpZW50LnNvIGFuZCB0aGVuIGFzayB0aGUgZGxvcGVuIHN5c3Rl
bSBhYm91dCBpdAorICAgICAgIERsX2luZm8gaW5mbzsKKyAgICAgICBkbGFkZHIoICh2b2lkICop
UGF0aF9HZXRUaGlzTW9kdWxlUGF0aCwgJmluZm8gKTsKKyAgICAgICByZXR1cm4gaW5mby5kbGlf
Zm5hbWU7CisjZW5kaWYKKworfQorCisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmll
ZCBwYXRoIGV4aXN0cyBhbmQgaXMgYSBkaXJlY3RvcnkgKi8KK2Jvb2wgUGF0aF9Jc0RpcmVjdG9y
eSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc0Zp
eGVkUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKKyAgICAgICBpZiggc0ZpeGVkUGF0
aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIGNoYXIgY0xh
c3QgPSBzRml4ZWRQYXRoWyBzRml4ZWRQYXRoLmxlbmd0aCgpIC0gMSBdOworICAgICAgIGlmKCBj
TGFzdCA9PSAnLycgfHwgY0xhc3QgPT0gJ1xcJyApCisgICAgICAgICAgICAgIHNGaXhlZFBhdGgu
ZXJhc2UoIHNGaXhlZFBhdGguZW5kKCkgLSAxLCBzRml4ZWRQYXRoLmVuZCgpICk7CisKKyAgICAg
ICAvLyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVhbGx5IGV4aXN0cy4KKworI2lmIGRl
ZmluZWQoUE9TSVgpCisgICAgICAgc3RydWN0ICAgICAgIHN0YXQgICAgICAgYnVmOworICAgICAg
IGlmICggc3RhdCggc0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworI2lmIGRlZmluZWQoIExJ
TlVYICkgfHwgZGVmaW5lZCggT1NYICkKKyAgICAgICByZXR1cm4gU19JU0RJUiggYnVmLnN0X21v
ZGUgKTsKKyNlbHNlCisgICAgICAgcmV0dXJuIChidWYuc3RfbW9kZSAmIF9TX0lGRElSKSAhPSAw
OworI2VuZGlmCisKKyNlbHNlCisgICAgICAgc3RydWN0ICAgICAgIF9zdGF0ICAgICAgIGJ1ZjsK
KyAgICAgICBzdGQ6OndzdHJpbmcgd3NGaXhlZFBhdGggPSBVVEY4dG8xNiggc0ZpeGVkUGF0aC5j
X3N0cigpICk7CisgICAgICAgaWYgKCBfd3N0YXQoIHdzRml4ZWRQYXRoLmNfc3RyKCksICZidWYg
KSA9PSAtMSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
fQorCisgICAgICAgcmV0dXJuIChidWYuc3RfbW9kZSAmIF9TX0lGRElSKSAhPSAwOworI2VuZGlm
Cit9CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIHJlcHJlc2VudHMg
YW4gYXBwIGJ1bmRsZSAqLworYm9vbCBQYXRoX0lzQXBwQnVuZGxlKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNQYXRoICkKK3sKKyNpZiBkZWZpbmVkKE9TWCkKKyAgICAgICBOU0J1bmRsZSAqYnVuZGxl
ID0gWyBOU0J1bmRsZSBidW5kbGVXaXRoUGF0aDogWyBOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0
cmluZzpzUGF0aC5jX3N0cigpIF0gXTsKKyAgICAgICBib29sIGJpc0FwcEJ1bmRsZSA9ICggbnVs
bHB0ciAhPSBidW5kbGUgKTsKKyAgICAgICBbIGJ1bmRsZSByZWxlYXNlIF07CisgICAgICAgcmV0
dXJuIGJpc0FwcEJ1bmRsZTsKKyNlbHNlCisgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IHJldHVybnMgdHJ1ZSBpZiB0
aGUgdGhlIHBhdGggZXhpc3RzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIFBhdGhfRXhp
c3RzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBz
Rml4ZWRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOworICAgICAgIGlmKCBzRml4ZWRQ
YXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVk
KCBXSU4zMiApCisgICAgICAgc3RydWN0ICAgICAgIF9zdGF0ICAgICAgIGJ1ZjsKKyAgICAgICBz
dGQ6OndzdHJpbmcgd3NGaXhlZFBhdGggPSBVVEY4dG8xNiggc0ZpeGVkUGF0aC5jX3N0cigpICk7
CisgICAgICAgaWYgKCBfd3N0YXQoIHdzRml4ZWRQYXRoLmNfc3RyKCksICZidWYgKSA9PSAtMSAp
CisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorI2Vsc2UK
KyAgICAgICBzdHJ1Y3Qgc3RhdCBidWY7CisgICAgICAgaWYgKCBzdGF0ICggc0ZpeGVkUGF0aC5j
X3N0cigpLCAmYnVmICkgPT0gLTEpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgfQorI2VuZGlmCisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBhIGRpcmVjdG9y
eSB1cHN0cmVhbSBmcm9tIGEgZ2l2ZW4gcGF0aAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3Rk
OjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6
c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9y
eU5hbWUgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0aCA9ICIiOworICAgICAg
IHN0ZDo6c3RyaW5nIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzdHJTdGFydERp
cmVjdG9yeSApOworICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgPT0gMCApCisg
ICAgICAgICAgICAgIHJldHVybiAiIjsKKworICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfRXhp
c3RzKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckN1cnJlbnREaXJl
Y3RvcnlOYW1lID0gUGF0aF9TdHJpcERpcmVjdG9yeSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAg
ICBpZiAoIGJFeGlzdHMgJiYgc3RyaWNtcCggc3RyQ3VycmVudERpcmVjdG9yeU5hbWUuY19zdHIo
KSwgc3RyRGlyZWN0b3J5TmFtZS5jX3N0cigpICkgPT0gMCApCisgICAgICAgICAgICAgIHJldHVy
biBzdHJDdXJyZW50UGF0aDsKKworICAgICAgIHdoaWxlKCBiRXhpc3RzICYmIHN0ckN1cnJlbnRQ
YXRoLmxlbmd0aCgpICE9IDAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RyQ3VycmVudFBh
dGggPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgICAgICAg
IHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lID0gUGF0aF9TdHJpcERpcmVjdG9yeSggc3RyQ3VycmVu
dFBhdGggKTsKKyAgICAgICAgICAgICAgYkV4aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJyZW50
UGF0aCApOworICAgICAgICAgICAgICBpZiAoIGJFeGlzdHMgJiYgc3RyaWNtcCggc3RyQ3VycmVu
dERpcmVjdG9yeU5hbWUuY19zdHIoKSwgc3RyRGlyZWN0b3J5TmFtZS5jX3N0cigpICkgPT0gMCAp
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RyQ3VycmVudFBhdGg7CisgICAgICAgfQor
CisgICAgICAgcmV0dXJuICIiOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1
cnBvc2U6IGhlbHBlciB0byBmaW5kIGEgc3ViZGlyZWN0b3J5IHVwc3RyZWFtIGZyb20gYSBnaXZl
biBwYXRoCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBQYXRoX0ZpbmRQYXJl
bnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0clN0YXJ0RGly
ZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRGlyZWN0b3J5TmFtZSApCit7CisgICAgICAg
c3RkOjpzdHJpbmcgc3RyRm91bmRQYXRoID0gIiI7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyQ3Vy
cmVudFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHN0clN0YXJ0RGlyZWN0b3J5ICk7CisgICAgICAg
aWYgKCBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJu
ICIiOworCisgICAgICAgYm9vbCBiRXhpc3RzID0gUGF0aF9FeGlzdHMoIHN0ckN1cnJlbnRQYXRo
ICk7CisgICAgICAgd2hpbGUoIGJFeGlzdHMgJiYgc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgIT0g
MCApCisgICAgICAgeworICAgICAgICAgICAgICBzdHJDdXJyZW50UGF0aCA9IFBhdGhfU3RyaXBG
aWxlbmFtZSggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAgICAgYkV4aXN0cyA9IFBhdGhf
RXhpc3RzKCBzdHJDdXJyZW50UGF0aCApOworCisgICAgICAgICAgICAgIGlmKCBQYXRoX0V4aXN0
cyggUGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3RyRGlyZWN0b3J5TmFtZSApICkgKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzdHJGb3VuZFBhdGggPSBQYXRoX0pv
aW4oIHN0ckN1cnJlbnRQYXRoLCBzdHJEaXJlY3RvcnlOYW1lICk7CisgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICByZXR1cm4gc3Ry
Rm91bmRQYXRoOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IHJl
YWRpbmcgYW5kIHdyaXRpbmcgZmlsZXMgaW4gdGhlIHZvcnRleCBkaXJlY3RvcnkKKy8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK3Vuc2lnbmVkIGNoYXIgKiBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGludCAqcFNpemUgKQoreworICAgICAgIEZJTEUg
KmY7CisjaWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbiggc3RyRmlsZW5hbWUu
Y19zdHIoKSwgInJiIiApOworI2Vsc2UKKyAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1l
ID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICAvLyB0aGUgb3BlbiBv
cGVyYXRpb24gbmVlZHMgdG8gYmUgc2hhcmFibGUsIHRoZXJlZm9yZSB1c2Ugb2YgX3dmc29wZW4g
aW5zdGVhZCBvZiBfd2ZvcGVuX3MKKyAgICAgICBmID0gX3dmc29wZW4oIHdzdHJGaWxlbmFtZS5j
X3N0cigpLCBMInJiIiwgX1NIX0RFTllOTyApOworI2VuZGlmCisgICAgICAgCisgICAgICAgdW5z
aWduZWQgY2hhciogYnVmID0gTlVMTDsKKworICAgICAgIGlmICggZiAhPSBOVUxMICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNFRUtfRU5EKTsKKyAgICAgICAgICAgICAg
aW50IHNpemUgPSBmdGVsbChmKTsKKyAgICAgICAgICAgICAgZnNlZWsoZiwgMCwgU0VFS19TRVQp
OworCisgICAgICAgICAgICAgIGJ1ZiA9IG5ldyB1bnNpZ25lZCBjaGFyW3NpemVdOworICAgICAg
ICAgICAgICBpZiAoYnVmICYmIGZyZWFkKGJ1Ziwgc2l6ZSwgMSwgZikgPT0gMSkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKHBTaXplKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICpwU2l6ZSA9IHNpemU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBkZWxldGVbXSBi
dWY7CisgICAgICAgICAgICAgICAgICAgICBidWYgPSAwOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKworICAgICAgIHJldHVybiBidWY7Cit9
CisKK3VpbnQzMl90ICBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3Ry
RmlsZW5hbWUsIHVuc2lnbmVkIGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IHVuU2l6ZSApCit7Cisg
ICAgICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgZiA9IGZvcGVuKCBz
dHJGaWxlbmFtZS5jX3N0cigpLCAicmIiICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3
c3RyRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVy
cm5vX3QgZXJyID0gX3dmb3Blbl9zKCAmZiwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwicmIiICk7
CisgICAgICAgaWYgKCBlcnIgIT0gMCApCisgICAgICAgeworICAgICAgICAgICAgICBmID0gTlVM
TDsKKyAgICAgICB9CisjZW5kaWYKKworICAgICAgIHVpbnQzMl90IHVuU2l6ZVRvUmV0dXJuID0g
MDsKKworICAgICAgIGlmICggZiAhPSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGZz
ZWVrKCBmLCAwLCBTRUVLX0VORCApOworICAgICAgICAgICAgICB1aW50MzJfdCBzaXplID0gKHVp
bnQzMl90KWZ0ZWxsKCBmICk7CisgICAgICAgICAgICAgIGZzZWVrKCBmLCAwLCBTRUVLX1NFVCAp
OworCisgICAgICAgICAgICAgIGlmICggc2l6ZSA+IHVuU2l6ZSB8fCAhcEJ1ZmZlciApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJuID0gKHVpbnQz
Ml90KXNpemU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIGZyZWFkKCBwQnVmZmVyLCBzaXplLCAx
LCBmICkgPT0gMSApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5TaXplVG9SZXR1cm4gPSAodWludDMyX3Qpc2l6ZTsKKyAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGZjbG9zZSggZiApOwor
ICAgICAgIH0KKworICAgICAgIHJldHVybiB1blNpemVUb1JldHVybjsKK30KKworYm9vbCBQYXRo
X1dyaXRlQmluYXJ5RmlsZShjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVk
IGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRl
ZmluZWQoIFBPU0lYICkKKyAgICAgICBmID0gZm9wZW4oc3RyRmlsZW5hbWUuY19zdHIoKSwgIndi
Iik7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3RyRmlsZW5hbWUgPSBVVEY4dG8xNigg
c3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVycm5vX3QgZXJyID0gX3dmb3Blbl9zKCAm
Ziwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwid2IiICk7CisgICAgICAgaWYgKGVyciAhPSAwKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7CisgICAgICAgfQorI2VuZGlmCisKKyAg
ICAgICBzaXplX3Qgd3JpdHRlbiA9IDA7CisgICAgICAgaWYgKGYgIT0gTlVMTCkgeworICAgICAg
ICAgICAgICB3cml0dGVuID0gZndyaXRlKHBEYXRhLCBzaXplb2YodW5zaWduZWQgY2hhciksIG5T
aXplLCBmKTsKKyAgICAgICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKworICAgICAgIHJl
dHVybiB3cml0dGVuID0gblNpemUgPyB0cnVlIDogZmFsc2U7Cit9CisKK3N0ZDo6c3RyaW5nIFBh
dGhfUmVhZFRleHRGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUgKQoreworICAg
ICAgIC8vIGRvaW5nIGl0IHRoaXMgd2F5IHNlZW1zIGJhY2t3YXJkcywgYnV0IEkgZG9uJ3QKKyAg
ICAgICAvLyBzZWUgYW4gZWFzeSB3YXkgdG8gZG8gdGhpcyB3aXRoIEMvQysrIHN0eWxlIElPCisg
ICAgICAgLy8gdGhhdCBpc24ndCB3b3JzZS4uLgorICAgICAgIGludCBzaXplOworICAgICAgIHVu
c2lnbmVkIGNoYXIqIGJ1ZiA9IFBhdGhfUmVhZEJpbmFyeUZpbGUoIHN0ckZpbGVuYW1lLCAmc2l6
ZSApOworICAgICAgIGlmICghYnVmKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAg
ICAvLyBjb252ZXJ0IENSTEYgLT4gTEYKKyAgICAgICBzaXplX3Qgb3V0c2l6ZSA9IDE7CisgICAg
ICAgZm9yIChpbnQgaT0xOyBpIDwgc2l6ZTsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
aWYgKGJ1ZltpXSA9PSAnXG4nICYmIGJ1ZltpLTFdID09ICdccicpIC8vIENSTEYKKyAgICAgICAg
ICAgICAgICAgICAgIGJ1ZltvdXRzaXplLTFdID0gJ1xuJzsgLy8gLT5MRgorICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICBidWZbb3V0c2l6ZSsrXSA9IGJ1ZltpXTsgLy8g
anVzdCBjb3B5CisgICAgICAgfQorCisgICAgICAgc3RkOjpzdHJpbmcgcmV0KChjaGFyICopYnVm
LCBvdXRzaXplKTsKKyAgICAgICBkZWxldGVbXSBidWY7CisgICAgICAgcmV0dXJuIHJldDsKK30K
KworCitib29sIFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAm
c3RyRmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaERhdGEgKQoreworICAgICAgIEZJTEUgKmY7Cisj
aWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbiggc3RyRmlsZW5hbWUuY19zdHIo
KSwgInciICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmluZyB3c3RyRmlsZW5hbWUgPSBVVEY4
dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIGVycm5vX3QgZXJyID0gX3dmb3Bl
bl9zKCAmZiwgd3N0ckZpbGVuYW1lLmNfc3RyKCksIEwidyIgKTsKKyAgICAgICBpZiAoIGVyciAh
PSAwICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGYgPSBOVUxMOworICAgICAgIH0KKyNlbmRp
ZgorICAgICAgIAorICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKworICAgICAgIGlmICggZiAhPSBO
VUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIG9rID0gZnB1dHMoIHBjaERhdGEsIGYpID49
IDA7CisgICAgICAgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4g
b2s7Cit9CisKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGVBdG9taWMoIGNvbnN0IHN0
ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCit7CisgICAgICAg
c3RkOjpzdHJpbmcgc3RyVG1wRmlsZW5hbWUgPSBzdHJGaWxlbmFtZSArICIudG1wIjsKKworICAg
ICAgIGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJUbXBGaWxlbmFtZSwgcGNo
RGF0YSApICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgLy8gUGxhdGZv
cm0gc3BlY2lmaWMgYXRvbWljIGZpbGUgcmVwbGFjZW1lbnQKKyNpZiBkZWZpbmVkKCBfV0lOMzIg
KQorICAgICAgIHN0ZDo6d3N0cmluZyB3c0ZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1l
LmNfc3RyKCkgKTsKKyAgICAgICBzdGQ6OndzdHJpbmcgd3NUbXBGaWxlbmFtZSA9IFVURjh0bzE2
KCBzdHJUbXBGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgaWYgKCAhOjpSZXBsYWNlRmlsZVco
IHdzRmlsZW5hbWUuY19zdHIoKSwgd3NUbXBGaWxlbmFtZS5jX3N0cigpLCBudWxscHRyLCAwLCAw
LCAwICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gaWYgd2UgY291bGRuJ3QgUmVwbGFj
ZUZpbGUsIHRyeSBhIG5vbi1hdG9taWMgd3JpdGUgYXMgYSBmYWxsYmFjaworICAgICAgICAgICAg
ICBpZiAoICFQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggc3RyRmlsZW5hbWUsIHBjaERhdGEg
KSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorI2VsaWYg
ZGVmaW5lZCggUE9TSVggKQorICAgICAgIGlmICggcmVuYW1lKCBzdHJUbXBGaWxlbmFtZS5jX3N0
cigpLCBzdHJGaWxlbmFtZS5jX3N0cigpICkgPT0gLTEgKQorICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisjZWxzZQorI2Vycm9yIERvIG5vdCBrbm93IGhvdyB0byB3cml0ZSBhdG9taWMgZmls
ZQorI2VuZGlmCisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisjaWYgZGVmaW5lZChXSU4z
MikKKyNkZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vLyIKKyNlbHNlCisjZGVmaW5lIEZJ
TEVfVVJMX1BSRUZJWCAiZmlsZTovLyIKKyNlbmRpZgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJw
b3NlOiBUdXJucyBhIHBhdGggdG8gYSBmaWxlIG9uIGRpc2sgaW50byBhIFVSTCAob3IganVzdCBy
ZXR1cm5zIHRoZSB2YWx1ZSBpZiBpdCdzIGFscmVhZHkgYSBVUkwpCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitz
dGQ6OnN0cmluZyBQYXRoX0ZpbGVQYXRoVG9VcmwoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0
aXZlUGF0aCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzQmFzZVBhdGggKQoreworICAgICAgIGlmICgg
IXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJodHRwOi8vIiwgNyApCisgICAgICAg
ICAgICAgIHx8ICFzdHJuaWNtcCggc1JlbGF0aXZlUGF0aC5jX3N0cigpLCAiaHR0cHM6Ly8iLCA4
ICkKKyAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCksICJm
aWxlOi8vIiwgNyApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBzUmVsYXRpdmVQ
YXRoOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICBzdGQ6
OnN0cmluZyBzQWJzb2x1dGUgPSBQYXRoX01ha2VBYnNvbHV0ZSggc1JlbGF0aXZlUGF0aCwgc0Jh
c2VQYXRoICk7CisgICAgICAgICAgICAgIGlmICggc0Fic29sdXRlLmVtcHR5KCkgKQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHNBYnNvbHV0ZTsKKyAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6c3RyaW5nKCBGSUxFX1VSTF9QUkVGSVggKSArIHNBYnNvbHV0ZTsKKyAgICAgICB9Cit9CisK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJw
b3NlOiBTdHJpcHMgb2ZmIGZpbGU6Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBG
b3Igb3RoZXIga2luZHMgb2YgVVJMcyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQKKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBQ
YXRoX1VybFRvRmlsZVBhdGgoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0ZpbGVVcmwgKQoreworICAg
ICAgIGlmICggIXN0cm5pY21wKCBzRmlsZVVybC5jX3N0cigpLCBGSUxFX1VSTF9QUkVGSVgsIHN0
cmxlbiggRklMRV9VUkxfUFJFRklYICkgKSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1
cm4gc0ZpbGVVcmwuY19zdHIoKSArIHN0cmxlbiggRklMRV9VUkxfUFJFRklYICk7CisgICAgICAg
fQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICB9Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIHJvb3Qgb2YgdGhlIGRpcmVjdG9yeSB0aGUgc3lz
dGVtIHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgZG9jdW1lbnRzIGluCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgR2V0VXNlckRvY3Vt
ZW50c1BhdGgoKQoreworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBXQ0hBUiByd2NoUGF0
aFtNQVhfUEFUSF07CisKKyAgICAgICBpZiAoICFTVUNDRUVERUQoIFNIR2V0Rm9sZGVyUGF0aFco
IE5VTEwsIENTSURMX01ZRE9DVU1FTlRTIHwgQ1NJRExfRkxBR19DUkVBVEUsIE5VTEwsIDAsIHJ3
Y2hQYXRoICkgKSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAg
fQorCisgICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBVVEYtOCBhbmQgc3RvcmUgaW4gdGhl
IG91dHB1dAorICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCA9IFVURjE2dG84KCByd2NoUGF0
aCApOworCisgICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKKyNlbGlmIGRlZmluZWQoIE9TWCApCisg
ICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICAgIE5TQXJyYXkgKnBhdGhzID0g
TlNTZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoIE5TRG9jdW1lbnREaXJlY3Rvcnks
IE5TVXNlckRvbWFpbk1hc2ssIFlFUyApOworICAgICAgICAgICAgICBpZiAoIFtwYXRocyBjb3Vu
dF0gPT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
IjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgcmV0dXJu
IFtbcGF0aHMgb2JqZWN0QXRJbmRleDowXSBVVEY4U3RyaW5nXTsKKyAgICAgICB9CisjZWxpZiBk
ZWZpbmVkKCBMSU5VWCApCisgICAgICAgLy8gQHRvZG86IG5vdCBzb2x2ZWQvY2hhbmdlZCBhcyBw
YXJ0IG9mIE9TWCAtIHN0aWxsIG5vdCByZWFsIC0ganVzdCByZW1vdmVkIG9sZCBjbGFzcyBiYXNl
ZCBzdGVhbSBjdXQgYW5kIHBhc3RlCisgICAgICAgY29uc3QgY2hhciAqcGNoSG9tZSA9IGdldGVu
diggIkhPTUUiICk7CisgICAgICAgaWYgKCBwY2hIb21lID09IE5VTEwgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKyAgICAgICByZXR1cm4gcGNoSG9tZTsK
KyNlbmRpZgorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL3BhdGh0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
dnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5NTdjNjRkNzM3YThjMTE2
MDRmYTU4NmE0MjJhYzA4MTIyY2E1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDEz
MiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09
PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxzdGRpbnQu
aD4KKworLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFtZSkgdG8gdGhlIGN1
cnJlbnQgZXhlY3V0YWJsZSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRFeGVjdXRhYmxlUGF0aCgp
OworCisvKiogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9y
eSAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KCk7CisKKy8qKiBTZXRz
IHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBSZXR1cm5zIHRydWUg
aWYgdGhpcyB3YXMgc3VjY2Vzc2Z1bC4gKi8KK2Jvb2wgUGF0aF9TZXRXb3JraW5nRGlyZWN0b3J5
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIHRoZSBwYXRoIChp
bmNsdWRpbmcgZmlsZW5hbWUpIG9mIHRoZSBjdXJyZW50IHNoYXJlZCBsaWIgb3IgRExMICovCitz
dGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCk7CisKKy8qKiBSZXR1cm5zIHRoZSBz
cGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxlbmFtZS4KKyogSWYgc2xhc2ggaXMgdW5zcGVj
aWZpZWQgdGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybQor
KiB3aWxsIGJlIHVzZWQuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5hbWUoIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5zIGp1
c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUgcGF0aC4g
Ki8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1l
IHdpdGggbm8gZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZS4gCisqIElmIHRoZXJl
IGlzIGEgcGF0aCB0aGUgcGF0aCBpcyBsZWZ0IGludGFjdC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhf
U3RyaXBFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVy
bnMganVzdCBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lIChpZiBhbnkpLiAqLwor
c3RkOjpzdHJpbmcgUGF0aF9HZXRFeHRlbnNpb24oIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgg
KTsKKworLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0ZSAqLworYm9vbCBQ
YXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIE1ha2Vz
IGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRoICov
CitzdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVs
YXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCA9IDAg
KTsKKworLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3IgdGhlIGN1cnJlbnQg
cGxhdGZvcm0uCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRpdmUgcGF0aCBzZXBh
cmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBiZSB1c2VkLiAqLworc3RkOjpz
dHJpbmcgUGF0aF9GaXhTbGFzaGVzKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNs
YXNoID0gMCApOworCisvKiogUmV0dXJucyB0aGUgcGF0aCBzZXBhcmF0b3IgZm9yIHRoZSBjdXJy
ZW50IHBsYXRmb3JtICovCitjaGFyIFBhdGhfR2V0U2xhc2goKTsKKworLyoqIEphbXMgdHdvIHBh
dGhzIHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8KK3N0ZDo6c3RyaW5n
IFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcg
JiBzZWNvbmQsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0
IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjb25zdCBz
dGQ6OnN0cmluZyAmIHRoaXJkLCBjaGFyIHNsYXNoID0gMCApOworc3RkOjpzdHJpbmcgUGF0aF9K
b2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29u
ZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwg
Y2hhciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggCisgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcgJiBmaXJzdCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQs
IAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIAorICAgICAgIGNvbnN0IHN0ZDo6
c3RyaW5nICYgZm91cnRoLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZpZnRoLCAKKyAg
ICAgICBjaGFyIHNsYXNoID0gMCApOworCisKKy8qKiBSZW1vdmVzIHJlZHVuZGFudCA8ZGlyPi8u
LiBlbGVtZW50cyBpbiB0aGUgcGF0aC4gUmV0dXJucyBhbiBlbXB0eSBwYXRoIGlmIHRoZSAKKyog
c3BlY2lmaWVkIHBhdGggaGFzIGEgYnJva2VuIG51bWJlciBvZiBkaXJlY3RvcmllcyBmb3IgaXRz
IG51bWJlciBvZiAuLnMuCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRpdmUgcGF0
aCBzZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBiZSB1c2VkLiAqLwor
c3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSYXdQYXRoLCBj
aGFyIHNsYXNoID0gMCApOworCisvLyoqIFJlbW92ZWQgdHJhaWxpbmcgc2xhc2hlcyAqLworc3Rk
OjpzdHJpbmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNS
YXdQYXRoLCBjaGFyIHNsYXNoID0gMCApOworCisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVj
aWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEgZGlyZWN0b3J5ICovCitib29sIFBhdGhfSXNEaXJl
Y3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVybnMgdHJ1ZSBp
ZiB0aGUgc3BlY2lmaWVkIHBhdGggcmVwcmVzZW50cyBhbiBhcHAgYnVuZGxlICovCitib29sIFBh
dGhfSXNBcHBCdW5kbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVy
bnMgdHJ1ZSBpZiB0aGUgdGhlIHBhdGggZXhpc3RzICovCitib29sIFBhdGhfRXhpc3RzKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGZpbmQg
cGFyZW50IGRpcmVjdG9yaWVzIG9yIHN1YmRpcmVjdG9yaWVzIG9mIHBhcmVudCBkaXJlY3Rvcmll
cyAqLworc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNv
bnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0
ckRpcmVjdG9yeU5hbWUgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVudFN1YkRpcmVjdG9y
eVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3RvcnksIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7CisKKy8qKiBQYXRoIG9wZXJhdGlvbnMg
dG8gcmVhZCBvciB3cml0ZSB0ZXh0L2JpbmFyeSBmaWxlcyAqLwordW5zaWduZWQgY2hhciAqIFBh
dGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgaW50ICpw
U2l6ZSApOwordWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5n
ICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMyX3QgdW5TaXplICk7
Citib29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5h
bWUsIHVuc2lnbmVkIGNoYXIgKnBEYXRhLCB1bnNpZ25lZCBuU2l6ZSApOworc3RkOjpzdHJpbmcg
UGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSApOworYm9v
bCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVu
YW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7Citib29sIFBhdGhfV3JpdGVTdHJpbmdUb1RleHRG
aWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBj
aERhdGEgKTsKKworLyoqIFJldHVybnMgYSBmaWxlOi8vIHVybCBmb3IgcGF0aHMsIG9yIGFuIGh0
dHAgb3IgaHR0cHMgdXJsIGlmIHRoYXQncyB3aGF0IHdhcyBwcm92aWRlZCAqLworc3RkOjpzdHJp
bmcgUGF0aF9GaWxlUGF0aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgs
IGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoICk7CisKKy8qKiBTdHJpcHMgb2ZmIGZpbGU6
Ly8gb2ZmIGEgVVJMIGFuZCByZXR1cm5zIHRoZSBwYXRoLiBGb3Igb3RoZXIga2luZHMgb2YgVVJM
cyBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfVXJsVG9G
aWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmlsZVVybCApOworCisvKiogUmV0dXJucyB0
aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNl
ciBkb2N1bWVudHMgaW4gKi8KK3N0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVudHNQYXRoKCk7CisK
KyNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSAorICAgICAgICNkZWZpbmUgTUFYX1VOSUNPREVfUEFU
SCAzMjc2NworI2VuZGlmCisKKyNpZm5kZWYgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4CisgICAg
ICAgI2RlZmluZSBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjggKE1BWF9VTklDT0RFX1BBVEggKiA0
KQorI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpZiBkZWZpbmVkKFdJTjMyKQor
I2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAgIi5kbGwiCisjZGVmaW5lIFBST0dSQU1fRVhU
ICIuZXhlIgorI2lmZGVmIF9XSU42NAorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJ3aW42NCIK
KyNlbHNlCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgIndpbjMyIgorI2VuZGlmCisjZWxpZiBk
ZWZpbmVkKE9TWCkKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIuZHlsaWIiCisjZGVm
aW5lIFBMQVRTVUJESVIgICAgICAgIm9zeDMyIgorI2RlZmluZSBQUk9HUkFNX0VYVCAiIgorI2Vs
aWYgZGVmaW5lZChMSU5VWCkKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhUICAgICAgICIuc28iCisj
ZGVmaW5lIFBST0dSQU1fRVhUICIiCisjaWYgZGVmaW5lZCggTElOVVgzMiApCisjZGVmaW5lIFBM
QVRTVUJESVIgICAgICAgImxpbnV4MzIiCisjZWxzZQorI2RlZmluZSBQTEFUU1VCRElSICAgICAg
ICJsaW51eDY0IgorI2VuZGlmCisjZWxzZQorI3dhcm5pbmcgIlVua25vd24gcGxhdGZvcm0gZm9y
IFBMQVRTVUJESVIiCisjZGVmaW5lIFBMQVRTVUJESVIgICAgICAgInVua25vd25fcGxhdGZvcm0i
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21t
b24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGVlYzI2
MDQ1OWM1MWVlYzU2OWEyY2E1YjEwMjlhNTljOWJhY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3Jh
dGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgInNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIgor
I2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8d2lu
ZG93cy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBPU0lYKQorI2luY2x1ZGUgPGRsZmNuLmg+
CisjZW5kaWYKKworU2hhcmVkTGliSGFuZGxlIFNoYXJlZExpYl9Mb2FkKCBjb25zdCBjaGFyICpw
Y2hQYXRoICkKK3sKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAgICAgcmV0dXJuIChTaGFyZWRM
aWJIYW5kbGUpTG9hZExpYnJhcnlFeCggcGNoUGF0aCwgTlVMTCwgTE9BRF9XSVRIX0FMVEVSRURf
U0VBUkNIX1BBVEggKTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAgICAgcmV0dXJuIChTaGFy
ZWRMaWJIYW5kbGUpZGxvcGVuKHBjaFBhdGgsIFJUTERfTE9DQUx8UlRMRF9OT1cpOworI2VuZGlm
Cit9CisKK3ZvaWQgKlNoYXJlZExpYl9HZXRGdW5jdGlvbiggU2hhcmVkTGliSGFuZGxlIGxpYiwg
Y29uc3QgY2hhciAqcGNoRnVuY3Rpb25OYW1lKQoreworI2lmIGRlZmluZWQoIF9XSU4zMikKKyAg
ICAgICByZXR1cm4gKHZvaWQqKUdldFByb2NBZGRyZXNzKCAoSE1PRFVMRSlsaWIsIHBjaEZ1bmN0
aW9uTmFtZSApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICByZXR1cm4gZGxzeW0oIGxp
YiwgcGNoRnVuY3Rpb25OYW1lICk7CisjZW5kaWYKK30KKworCit2b2lkIFNoYXJlZExpYl9Vbmxv
YWQoIFNoYXJlZExpYkhhbmRsZSBsaWIgKQoreworICAgICAgIGlmICggIWxpYiApCisgICAgICAg
ICAgICAgIHJldHVybjsKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAgICAgRnJlZUxpYnJhcnko
IChITU9EVUxFKWxpYiApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICBkbGNsb3NlKCBs
aWIgKTsKKyNlbmRpZgorfQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEwMTYzZGJmYWIyYmU4MzYyZjgzYmMyMDkzYzI0MjE0YjI0N2ZiYWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xz
X3B1YmxpYy5oCkBAIC0wLDAgKzEsMTAgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBD
b3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKK3R5cGVkZWYgdm9pZCAq
U2hhcmVkTGliSGFuZGxlOworCitTaGFyZWRMaWJIYW5kbGUgU2hhcmVkTGliX0xvYWQoIGNvbnN0
IGNoYXIgKnBjaFBhdGggKTsKK3ZvaWQgKlNoYXJlZExpYl9HZXRGdW5jdGlvbiggU2hhcmVkTGli
SGFuZGxlIGxpYiwgY29uc3QgY2hhciAqcGNoRnVuY3Rpb25OYW1lKTsKK3ZvaWQgU2hhcmVkTGli
X1VubG9hZCggU2hhcmVkTGliSGFuZGxlIGxpYiApOworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmNwcCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNjkzNzBiMmNkMWI4YzVhYTRmZDcxMDI5NjJhOWQ0YWJlOGY4ZGIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29s
c19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsNDM3IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFs
dmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMu
aCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0
ZGxpYi5oPgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOgorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorYm9vbCBTdHJpbmdIYXNQcmVmaXgoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICkKK3sKKyAgICAgICByZXR1cm4g
MCA9PSBzdHJuaWNtcCggc1N0cmluZy5jX3N0cigpLCBzUHJlZml4LmNfc3RyKCksIHNQcmVmaXgu
bGVuZ3RoKCkgKTsKK30KKworYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0aXZlKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCApCit7
CisgICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0cmluZy5jX3N0cigpLCBzUHJlZml4LmNf
c3RyKCksIHNQcmVmaXgubGVuZ3RoKCkgKTsKK30KKworCitib29sIFN0cmluZ0hhc1N1ZmZpeCgg
Y29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3VmZml4ICkK
K3sKKyAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgc2l6
ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgpOworCisgICAgICAgaWYgKCBjU3VmZml4
TGVuID4gY1N0ckxlbiApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIHN0
ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1YnN0ciggY1N0ckxlbiAtIGNTdWZm
aXhMZW4sIGNTdWZmaXhMZW4gKTsKKworICAgICAgIHJldHVybiAwID09IHN0cmljbXAoIHNTdHJp
bmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigpICk7Cit9CisKK2Jvb2wgU3RyaW5nSGFz
U3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICZzU3VmZml4ICkKK3sKKyAgICAgICBzaXplX3QgY1N0ckxlbiA9IHNTdHJpbmcu
bGVuZ3RoKCk7CisgICAgICAgc2l6ZV90IGNTdWZmaXhMZW4gPSBzU3VmZml4Lmxlbmd0aCgpOwor
CisgICAgICAgaWYgKCBjU3VmZml4TGVuID4gY1N0ckxlbiApCisgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNTdHJpbmdTdWZmaXggPSBzU3RyaW5nLnN1
YnN0ciggY1N0ckxlbiAtIGNTdWZmaXhMZW4sIGNTdWZmaXhMZW4gKTsKKworICAgICAgIHJldHVy
biAwID09IHN0cm5jbXAoIHNTdHJpbmdTdWZmaXguY19zdHIoKSwgc1N1ZmZpeC5jX3N0cigpLGNT
dWZmaXhMZW4gKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFVURjE2dG84KGNvbnN0IHdjaGFyX3Qg
KiBpbikKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBvdXQ7CisgICAgICAgdW5zaWduZWQgaW50IGNv
ZGVwb2ludCA9IDA7CisgICAgICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiApCisgICAg
ICAgeworICAgICAgICAgICAgICBpZiAoKmluID49IDB4ZDgwMCAmJiAqaW4gPD0gMHhkYmZmKQor
ICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gKCgqaW4gLSAweGQ4MDApIDw8IDEwKSAr
IDB4MTAwMDA7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgaWYgKCppbiA+PSAweGRjMDAgJiYgKmluIDw9IDB4ZGZmZikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgfD0gKmluIC0gMHhkYzAwOworICAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9
ICppbjsKKworICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVwb2ludCA8PSAweDdmKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4o
Y29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2RlcG9pbnQgPD0g
MHg3ZmYpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweGMwIHwgKChjb2RlcG9pbnQgPj4g
NikgJiAweDFmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29kZXBvaW50IDw9
IDB4ZmZmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZTAgfCAoKGNvZGVwb2ludCA+
PiAxMikgJiAweDBmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQo
MSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgzZikpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNo
YXI+KDB4ODAgfCAoY29kZXBvaW50ICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4
ZjAgfCAoKGNvZGVwb2ludCA+PiAxOCkgJiAweDA3KSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgoY29kZXBvaW50
ID4+IDEyKSAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVu
ZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChjb2RlcG9pbnQgPj4gNikgJiAweDNmKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8
Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gMDsKKyAgICAgICAgICAgICAgfQor
ICAgICAgIH0KKyAgICAgICByZXR1cm4gb3V0OworfQorCitzdGQ6OndzdHJpbmcgVVRGOHRvMTYo
Y29uc3QgY2hhciAqIGluKQoreworICAgICAgIHN0ZDo6d3N0cmluZyBvdXQ7CisgICAgICAgdW5z
aWduZWQgaW50IGNvZGVwb2ludCA9IDA7CisgICAgICAgaW50IGZvbGxvd2luZyA9IDA7CisgICAg
ICAgZm9yICggOyBpbiAmJiAqaW4gIT0gMDsgKytpbiApCisgICAgICAgeworICAgICAgICAgICAg
ICB1bnNpZ25lZCBjaGFyIGNoID0gKmluOworICAgICAgICAgICAgICBpZiAoY2ggPD0gMHg3ZikK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2g7Cisg
ICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgPSAwOworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4YmYpCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPiAwKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IChjb2RlcG9pbnQgPDwgNikg
fCAoY2ggJiAweDNmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWZvbGxvd2luZzsK
KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBl
bHNlIGlmIChjaCA8PSAweGRmKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICBjb2RlcG9pbnQgPSBjaCAmIDB4MWY7CisgICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcg
PSAxOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4ZWYp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IGNoICYg
MHgwZjsKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyA9IDI7CisgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MDc7CisgICAgICAgICAgICAgICAgICAgICBmb2xsb3dp
bmcgPSAzOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmIChmb2xsb3dpbmcgPT0g
MCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVwb2ludCA+
IDB4ZmZmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4ZDgwMCArIChjb2RlcG9p
bnQgPj4gMTApKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBz
dGF0aWNfY2FzdDx3Y2hhcl90PigweGRjMDAgKyAoY29kZXBvaW50ICYgMHgwM2ZmKSkpOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8d2NoYXJfdD4oY29k
ZXBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAwOworICAgICAgICAg
ICAgICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBvdXQ7Cit9CisKKwordm9pZCBzdHJjcHlf
c2FmZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNo
YXIgKnBjaFNvdXJjZSApCit7CisgICAgICAgcGNoQnVmZmVyWyB1bkJ1ZmZlclNpemVCeXRlcyAt
IDEgXSA9ICdcMCc7CisgICAgICAgc3RybmNweSggcGNoQnVmZmVyLCBwY2hTb3VyY2UsIHVuQnVm
ZmVyU2l6ZUJ5dGVzIC0gMSApOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBj
b252ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJp
bmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICkKK3sKKyAgICAg
ICBzdGQ6OnN0cmluZyBzT3V0OworICAgICAgIHNPdXQucmVzZXJ2ZSggc1N0cmluZy5zaXplKCkg
KyAxICk7CisgICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaSA9IHNTdHJp
bmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvdXBwZXIoICppICkgKTsKKyAgICAgICB9CisK
KyAgICAgICByZXR1cm4gc091dDsKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTog
Y29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3Ry
aW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApCit7CisgICAg
ICAgc3RkOjpzdHJpbmcgc091dDsKKyAgICAgICBzT3V0LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgp
ICsgMSApOworICAgICAgIGZvciggc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3Ry
aW5nLmJlZ2luKCk7IGkgIT0gc1N0cmluZy5lbmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHNPdXQucHVzaF9iYWNrKCAoY2hhcil0b2xvd2VyKCAqaSApICk7CisgICAgICAgfQor
CisgICAgICAgcmV0dXJuIHNPdXQ7Cit9CisKKwordWludDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1
ZmZlckxlbiApCit7CisgICAgICAgdWludDMyX3QgdW5MZW4gPSAodWludDMyX3Qpc1ZhbHVlLmxl
bmd0aCgpICsgMTsKKyAgICAgICBpZiggIXBjaEJ1ZmZlciB8fCAhdW5CdWZmZXJMZW4gKQorICAg
ICAgICAgICAgICByZXR1cm4gdW5MZW47CisKKyAgICAgICBpZiggdW5CdWZmZXJMZW4gPCB1bkxl
biApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hCdWZmZXJbMF0gPSAnXDAnOworICAgICAg
IH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICBtZW1jcHkoIHBjaEJ1ZmZl
ciwgc1ZhbHVlLmNfc3RyKCksIHVuTGVuICk7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHVu
TGVuOworfQorCit2b2lkIEJ1ZmZlclRvU3RkU3RyaW5nKCBzdGQ6OnN0cmluZyAmIHNEZXN0LCBj
b25zdCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkKK3sKKyAgICAgICBz
RGVzdC5yZXNpemUoIHVuQnVmZmVyTGVuICsgMSApOworICAgICAgIG1lbWNweSggY29uc3RfY2Fz
dDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApLCBwY2hCdWZmZXIsIHVuQnVmZmVyTGVuICk7Cisg
ICAgICAgY29uc3RfY2FzdDwgY2hhciogPiggc0Rlc3QuY19zdHIoKSApWyB1bkJ1ZmZlckxlbiBd
ID0gJ1wwJzsKK30KKworLyoqIFJldHVybnMgYSBzdGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3Qg
Ki8KK3N0ZDo6c3RyaW5nIFVpbnQ2NFRvU3RyaW5nKCB1aW50NjRfdCB1bFZhbHVlICkKK3sKKyAg
ICAgICBjaGFyIGJ1ZlsgMjIgXTsKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQorICAgICAgIHNwcmlu
dGZfcyggYnVmLCAiJWxsdSIsIHVsVmFsdWUgKTsKKyNlbHNlCisgICAgc25wcmludGYoIGJ1Ziwg
c2l6ZW9mKCBidWYgKSwgIiVsbHUiLCAobG9uZyBsb25nIHVuc2lnbmVkIGludCApIHVsVmFsdWUg
KTsKKyNlbmRpZgorICAgICAgIHJldHVybiBidWY7Cit9CisKKworLyoqIHJldHVybnMgYSB1aW50
NjRfdCBmcm9tIGEgc3RyaW5nICovCit1aW50NjRfdCBTdHJpbmdUb1VpbnQ2NCggY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzVmFsdWUgKQoreworICAgICAgIHJldHVybiBzdHJ0b3VsbCggc1ZhbHVlLmNf
c3RyKCksIE5VTEwsIDAgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9z
ZTogSGVscGVyIGZvciBjb252ZXJ0aW5nIGEgbnVtZXJpYyB2YWx1ZSB0byBhIGhleCBkaWdpdCwg
dmFsdWUgc2hvdWxkIGJlIDAtMTUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjaGFyIGNJbnRU
b0hleERpZ2l0KCBpbnQgblZhbHVlICkKK3sKKyAgICAgICAvL0Fzc2VydCggblZhbHVlID49IDAg
JiYgblZhbHVlIDw9IDE1ICk7CisgICAgICAgcmV0dXJuICIwMTIzNDU2Nzg5QUJDREVGIlsgblZh
bHVlICYgMTUgXTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogSGVs
cGVyIGZvciBjb252ZXJ0aW5nIGEgaGV4IGNoYXIgdmFsdWUgdG8gbnVtZXJpYywgcmV0dXJuIC0x
IGlmIHRoZSBjaGFyCisvLyAgICAgICAgICBpcyBub3QgYSB2YWxpZCBoZXggZGlnaXQuCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitpbnQgaUhleENoYXJUb0ludCggY2hhciBjVmFsdWUgKQorewor
ICAgICAgIGludDMyX3QgaVZhbHVlID0gY1ZhbHVlOworICAgICAgIGlmICggKHVpbnQzMl90KSgg
aVZhbHVlIC0gJzAnICkgPCAxMCApCisgICAgICAgICAgICAgIHJldHVybiBpVmFsdWUgLSAnMCc7
CisKKyAgICAgICBpVmFsdWUgfD0gMHgyMDsKKyAgICAgICBpZiAoICh1aW50MzJfdCkoIGlWYWx1
ZSAtICdhJyApIDwgNiApCisgICAgICAgICAgICAgIHJldHVybiBpVmFsdWUgLSAnYScgKyAxMDsK
KworICAgICAgIHJldHVybiAtMTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVy
cG9zZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgZW5jb2RlLCB3b3JrcyBpbiB0aGUgc3Ry
aWN0IFJGQyBtYW5uZXIsIG9yCisvLyAgICAgICAgICB3aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBs
aWtlIEhUTUwgZm9ybSBlbmNvZGluZy4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9V
UkxFbmNvZGVJbnRlcm5hbCggY2hhciAqcGNoRGVzdCwgaW50IG5EZXN0TGVuLCBjb25zdCBjaGFy
ICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuLCBib29sIGJVc2VQbHVzRm9yU3BhY2UgKQorewor
ICAgICAgIC8vQXNzZXJ0TXNnKCBuRGVzdExlbiA+IDMqblNvdXJjZUxlbiwgIlRhcmdldCBidWZm
ZXIgZm9yIFZfVVJMRW5jb2RlIHNob3VsZCBiZSAzeCBzb3VyY2UgbGVuZ3RoLCBwbHVzIG9uZSBm
b3IgdGVybWluYXRpbmcgbnVsbFxuIiApOworICAgICAgIAorICAgICAgIGludCBpRGVzdFBvcyA9
IDA7CisgICAgICAgZm9yICggaW50IGk9MDsgaSA8IG5Tb3VyY2VMZW47ICsraSApCisgICAgICAg
eworICAgICAgICAgICAgICAvLyB3b3JzdCBjYXNlIHdlIG5lZWQgMyBhZGRpdGlvbmFsIGNoYXJz
CisgICAgICAgICAgICAgIGlmKCAoaURlc3RQb3MrMykgPiBuRGVzdExlbiAgKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0WzBdID0gJ1wwJzsKKy8vICAgICAg
ICAgICAgICAgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwgIlRhcmdldCBidWZmZXIgdG9vIHNob3J0
XG4iICk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmx5IGEteiwgQS1aLCAwLTksIHBlcmlvZCwgdW5k
ZXJzY29yZSwgYW5kIGh5cGhlbiB0byBwYXNzIHRocm91Z2ggdW5lc2NhcGVkLgorICAgICAgICAg
ICAgICAvLyBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMgYWxsb3dlZCBieSBib3RoIHRoZSBvcmln
aW5hbCBSRkMgMTczOCBhbmQgdGhlIGxhdGVzdCBSRkMgMzk4Ni4KKyAgICAgICAgICAgICAgLy8g
Q3VycmVudCBzcGVjcyBhbHNvIGFsbG93ICd+JywgYnV0IHRoYXQgaXMgZm9yYmlkZGVuIHVuZGVy
IG9yaWdpbmFsIFJGQyAxNzM4LgorICAgICAgICAgICAgICBpZiAoICEoIHBjaFNvdXJjZVtpXSA+
PSAnYScgJiYgcGNoU291cmNlW2ldIDw9ICd6JyApICYmICEoIHBjaFNvdXJjZVtpXSA+PSAnQScg
JiYgcGNoU291cmNlW2ldIDw9ICdaJyApICYmICEocGNoU291cmNlW2ldID49ICcwJyAmJiBwY2hT
b3VyY2VbaV0gPD0gJzknICkKKyAgICAgICAgICAgICAgICAgICAgICAmJiBwY2hTb3VyY2VbaV0g
IT0gJy0nICYmIHBjaFNvdXJjZVtpXSAhPSAnXycgJiYgcGNoU291cmNlW2ldICE9ICcuJyAgICAg
ICAKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICBpZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoU291cmNlW2ldID09ICcgJyApCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVz
dFBvcysrXSA9ICcrJzsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJyUnOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQ4X3QgaVZhbHVlID0gcGNoU291cmNlW2ldOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICggaVZhbHVlID09IDAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9
ICcwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBv
cysrXSA9ICcwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQxID0gY0ludFRvSGV4
RGlnaXQoIGlWYWx1ZSAlIDE2ICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlWYWx1ZSAvPSAxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBj
SGV4RGlnaXQyID0gY0ludFRvSGV4RGlnaXQoIGlWYWx1ZSApOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gY0hleERpZ2l0MjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9IGNIZXhE
aWdpdDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysrXSA9IHBjaFNvdXJjZVtp
XTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGlmKCAoaURlc3RQb3MrMSkg
PiBuRGVzdExlbiApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hEZXN0WzBdID0gJ1wwJzsK
KyAgICAgICAgICAgICAgLy9Bc3NlcnRNc2coIGZhbHNlLCAiVGFyZ2V0IGJ1ZmZlciB0b28gc2hv
cnQgdG8gdGVybWluYXRlXG4iICk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9CisK
KyAgICAgICAvLyBOdWxsIHRlcm1pbmF0ZQorICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAw
OworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEludGVybmFsIGlt
cGxlbWVudGF0aW9uIG9mIGRlY29kZSwgd29ya3MgaW4gdGhlIHN0cmljdCBSRkMgbWFubmVyLCBv
cgorLy8gICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVkIHRvICsgbGlrZSBIVE1MIGZvcm0gZW5j
b2RpbmcuCisvLworLy8gICAgICAgICAgICAgICAgICAgICBSZXR1cm5zIHRoZSBhbW91bnQgb2Yg
c3BhY2UgdXNlZCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K3NpemVfdCBWX1VSTERlY29kZUludGVybmFsKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRl
Y29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNv
dXJjZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkKK3sKKyAgICAgICBpZiAoIG5EZWNvZGVE
ZXN0TGVuIDwgbkVuY29kZWRTb3VyY2VMZW4gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy9B
c3NlcnRNc2coIGZhbHNlLCAiVl9VUkxEZWNvZGUgbmVlZHMgYSBkZXN0IGJ1ZmZlciBhdCBsZWFz
dCBhcyBsYXJnZSBhcyB0aGUgc291cmNlIiApOworICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICB9CisKKyAgICAgICBpbnQgaURlc3RQb3MgPSAwOworICAgICAgIGZvciggaW50IGk9MDsg
aSA8IG5FbmNvZGVkU291cmNlTGVuOyArK2kgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYg
KCBiVXNlUGx1c0ZvclNwYWNlICYmIHBjaEVuY29kZWRTb3VyY2VbaV0gPT0gJysnICkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsgaURlc3RQb3Mr
KyBdID0gJyAnOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKCBwY2hF
bmNvZGVkU291cmNlW2ldID09ICclJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIC8vIFBlcmNlbnQgc2lnbmlmaWVzIGFuIGVuY29kZWQgdmFsdWUsIGxvb2sgYWhlYWQg
Zm9yIHRoZSBoZXggY29kZSwgY29udmVydCB0byBudW1lcmljLCBhbmQgdXNlIHRoYXQKKworICAg
ICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIHdlIGhhdmUgMiBtb3JlIGNoYXJz
CisgICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCBuRW5jb2RlZFNvdXJjZUxlbiAtIDIgKQor
ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIg
Y0hleERpZ2l0MSA9IHBjaEVuY29kZWRTb3VyY2VbaSsxXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFyIGNIZXhEaWdpdDIgPSBwY2hFbmNvZGVkU291cmNlW2krMl07CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBUdXJuIHRoZSBjaGFycyBpbnRvIGEgaGV4IHZhbHVl
LCBpZiB0aGV5IGFyZSBub3QgdmFsaWQsIHRoZW4gd2UnbGwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBqdXN0IHBsYWNlIHRoZSAlIGFuZCB0aGUgZm9sbG93aW5nIHR3byBjaGFycyBk
aXJlY3QgaW50byB0aGUgc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2
ZW4gdGhvdWdoIHRoaXMgcmVhbGx5IHNob3VsZG4ndCBoYXBwZW4sIHdobyBrbm93cyB3aGF0IGJh
ZCBjbGllbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF5IGRvIHdpdGggZW5j
b2RpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBiVmFsaWQgPSBmYWxzZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaVZhbHVlID0gaUhleENoYXJUb0ludCgg
Y0hleERpZ2l0MSApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlICE9
IC0xICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlWYWx1ZSAqPSAxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGlWYWx1ZTIgPSBpSGV4Q2hhclRvSW50KCBjSGV4RGlnaXQyICk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaVZhbHVlMiAhPSAtMSApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlWYWx1ZSArPSBpVmFsdWUyOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gKGNo
YXIpaVZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlZh
bGlkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICggIWJWYWxpZCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSAnJSc7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0
UG9zKysgXSA9IGNIZXhEaWdpdDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IGNIZXhEaWdpdDI7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgICAgICAvLyBTa2lwIGFoZWFkCisgICAgICAgICAgICAgICAgICAgICBpICs9IDI7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSBwY2hFbmNvZGVkU291
cmNlW2ldOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgLy8gV2UgbWF5IG5v
dCBoYXZlIGV4dHJhIHJvb20gdG8gTlVMTCB0ZXJtaW5hdGUsIHNpbmNlIHRoaXMgY2FuIGJlIHVz
ZWQgb24gcmF3IGRhdGEsIGJ1dCBpZiB3ZSBkbworICAgICAgIC8vIGdvIGFoZWFkIGFuZCBkbyBp
dCBhcyB0aGlzIGNhbiBhdm9pZCBidWdzLgorICAgICAgIGlmICggaURlc3RQb3MgPCBuRGVjb2Rl
RGVzdExlbiApCisgICAgICAgeworICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0W2lEZXN0UG9z
XSA9IDA7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIChzaXplX3QpaURlc3RQb3M7Cit9CisK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEVuY29kZXMgYSBzdHJpbmcgKG9y
IGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rp
b24gMi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBz
dHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFjZSBhcyBpcworLy8g
ICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywgZGVzcGl0ZSBpdCBu
b3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAgICAgIERlc3QgYnVmZmVyIHNo
b3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRvIGd1YXJhbnRlZSBy
b29tIGZvciBkZWNvZGUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfVVJMRW5jb2Rl
KCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSwgaW50
IG5Tb3VyY2VMZW4gKQoreworICAgICAgIHJldHVybiBWX1VSTEVuY29kZUludGVybmFsKCBwY2hE
ZXN0LCBuRGVzdExlbiwgcGNoU291cmNlLCBuU291cmNlTGVuLCB0cnVlICk7Cit9CisKKworLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmlu
YXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAy
LjIuICAKKy8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmlj
dCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAgICAg
ICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBi
ZWluZyBwYXJ0IG9mIHRoZSBSRkMuCisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxk
IGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20g
Zm9yIGRlY29kZS4KKy8vICAgICAgICAgICAgICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhl
IHNhbWUgYXMgdGhlIHNvdXJjZSBidWZmZXIgKGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRs
eSBhbGxvd2VkLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc2l6ZV90IFZfVVJMRGVjb2RlKCBj
aGFyICpwY2hEZWNvZGVEZXN0LCBpbnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVu
Y29kZWRTb3VyY2UsIGludCBuRW5jb2RlZFNvdXJjZUxlbiApCit7CisgICAgICAgcmV0dXJuIFZf
VVJMRGVjb2RlSW50ZXJuYWwoIHBjaERlY29kZURlc3QsIG5EZWNvZGVEZXN0TGVuLCBwY2hFbmNv
ZGVkU291cmNlLCBuRW5jb2RlZFNvdXJjZUxlbiwgdHJ1ZSApOworfQorCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCit2b2lkIFZfU3RyaXBFeHRlbnNpb24oIHN0ZDo6c3RyaW5nICZpbiApCit7Cisg
ICAgICAgLy8gRmluZCB0aGUgbGFzdCBkb3QuIElmIGl0J3MgZm9sbG93ZWQgYnkgYSBkb3Qgb3Ig
YSBzbGFzaCwgdGhlbiBpdCdzIHBhcnQgb2YgYSAKKyAgICAgICAvLyBkaXJlY3Rvcnkgc3BlY2lm
aWVyIGxpa2UgLi4vLi4vc29tZWRpci8uL2JsYWguCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVf
dHlwZSB0ZXN0ID0gaW4ucmZpbmQoICcuJyApOworICAgICAgIGlmICggdGVzdCAhPSBzdGQ6OnN0
cmluZzo6bnBvcyApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBUaGlzIGhhbmRsZXMgdGhp
bmdzIGxpa2UgIi5cYmxhaCIgb3IgImM6XG15QGVtYWlsLmNvbVxhYmNcZGVmXGdlaCIKKyAgICAg
ICAgICAgICAgLy8gV2hpY2ggd291bGQgb3RoZXJ3aXNlIHdpbmQgdXAgd2l0aCAiIiBhbmQgImM6
XG15QGVtYWlsIiwgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgICAgICBpZiAoIGluLnJmaW5kKCAn
XFwnICkgPCB0ZXN0ICYmIGluLnJmaW5kKCAnLycgKSA8IHRlc3QgKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBpbi5yZXNpemUoIHRlc3QgKTsKKyAgICAgICAgICAgICAg
fQorICAgICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA2M2U1NGEyOGM3MzRi
NzdmOTJmNzc4MzQ2YTNhNmE4NWM2NGYzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwx
MjYgQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09
PT0vLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8c3RkaW50
Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHN0
cmluZyBoYXMgdGhlIHByZWZpeCAqLworYm9vbCBTdHJpbmdIYXNQcmVmaXgoIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICk7Citib29sIFN0
cmluZ0hhc1ByZWZpeENhc2VTZW5zaXRpdmUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUHJlZml4ICk7CisKKy8qKiByZXR1cm5zIGlmIHRoZSBzdHJp
bmcgaGFzIHRoZSBzdWZmaXggKi8KK2Jvb2wgU3RyaW5nSGFzU3VmZml4KCBjb25zdCBzdGQ6OnN0
cmluZyAmc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJnNTdWZmaXggKTsKK2Jvb2wgU3RyaW5n
SGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0
IHN0ZDo6c3RyaW5nICZzU3VmZml4ICk7CisKKy8qKiBjb252ZXJ0cyBhIFVURi0xNiBzdHJpbmcg
dG8gYSBVVEYtOCBzdHJpbmcgKi8KK3N0ZDo6c3RyaW5nIFVURjE2dG84KGNvbnN0IHdjaGFyX3Qg
KiBpbik7CisKKy8qKiBjb252ZXJ0cyBhIFVURi04IHN0cmluZyB0byBhIFVURi0xNiBzdHJpbmcg
Ki8KK3N0ZDo6d3N0cmluZyBVVEY4dG8xNihjb25zdCBjaGFyICogaW4pOworI2RlZmluZSBVdGYx
NkZyb21VdGY4IFVURjh0bzE2CisKKy8qKiBzYWZlbHkgY29weSBhIHN0cmluZyBpbnRvIGEgYnVm
ZmVyICovCit2b2lkIHN0cmNweV9zYWZlKCBjaGFyICpwY2hCdWZmZXIsIHNpemVfdCB1bkJ1ZmZl
clNpemVCeXRlcywgY29uc3QgY2hhciAqcGNoU291cmNlICk7Cit0ZW1wbGF0ZTwgc2l6ZV90IGJ1
ZmZlclNpemUgPgordm9pZCBzdHJjcHlfc2FmZSggY2hhciAoJiBidWZmZXIpIFsgYnVmZmVyU2l6
ZSBdLCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKSAKK3sKKyAgICAgICBzdHJjcHlfc2FmZSggYnVm
ZmVyLCBidWZmZXJTaXplLCBwY2hTb3VyY2UgKTsKK30KKworCisvKiogY29udmVydHMgYSBzdHJp
bmcgdG8gdXBwZXIgY2FzZSAqLworc3RkOjpzdHJpbmcgU3RyaW5nVG9VcHBlciggY29uc3Qgc3Rk
OjpzdHJpbmcgJiBzU3RyaW5nICk7CisKKy8qKiBjb252ZXJ0cyBhIHN0cmluZyB0byBsb3dlciBj
YXNlICovCitzdGQ6OnN0cmluZyBTdHJpbmdUb0xvd2VyKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNT
dHJpbmcgKTsKKworLy8gd2Ugc3RyaWNtcCAoZnJvbSBXSU4pIGJ1dCBpdCBpc24ndCBQT1NJWCAt
IE9TWC9MSU5VWCBoYXZlIHN0cmNhc2VjbXAgc28ganVzdCBpbmxpbmUgYnJpZGdlIHRvIGl0Cisj
aWYgZGVmaW5lZCggT1NYICkgfHwgZGVmaW5lZCggTElOVVggKQorI2luY2x1ZGUgPHN0cmluZ3Mu
aD4KK2lubGluZSBpbnQgc3RyaWNtcChjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0
cjIpIHsgcmV0dXJuIHN0cmNhc2VjbXAocFN0cjEscFN0cjIpOyB9CisjZGVmaW5lIF9zdHJpY21w
IHN0cmljbXAKK2lubGluZSBpbnQgc3RybmljbXAoIGNvbnN0IGNoYXIgKnBTdHIxLCBjb25zdCBj
aGFyICpwU3RyMiwgc2l6ZV90IHVuQnVmZmVyTGVuICkgeyByZXR1cm4gc3RybmNhc2VjbXAoIHBT
dHIxLHBTdHIyLCB1bkJ1ZmZlckxlbiApOyB9CisjZGVmaW5lIF9zdHJuaWNtcCBzdHJuaWNtcAor
CisjZGVmaW5lIF92c25wcmludGZfcyB2c25wcmludGYKKworI2RlZmluZSBfVFJVTkNBVEUgKChz
aXplX3QpLTEpCisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggT1NYICkKKy8vIGJlaGF2aW9ycyBl
bnN1cmUgTlVMTC10ZXJtaW5hdGlvbiBhdCBsZWFzdCBhcyB3ZWxsIGFzIF9UUlVOQ0FURSBkb2Vz
LCBidXQKKy8vIHdjc25jcHlfcy9zdHJuY3B5X3MgY2FuIG5vbi1OVUxMLXRlcm1pbmF0ZSwgd2Nz
bGNweS9zdHJsY3B5IGNhbiBub3QuCitpbmxpbmUgZXJybm9fdCB3Y3NuY3B5X3Mod2NoYXJfdCAq
c3RyRGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IHdjaGFyX3QgKnN0clNvdXJj
ZSwgc2l6ZV90IGNvdW50KQoreworICAgICAgIHJldHVybiB3Y3NsY3B5KHN0ckRlc3QsIHN0clNv
dXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7Cit9CisKK2lubGluZSBlcnJub190IHN0cm5jcHlfcyhj
aGFyICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3QgY2hhciAqc3RyU291
cmNlLCBzaXplX3QgY291bnQpCit7CisgICAgICAgcmV0dXJuIHN0cmxjcHkoc3RyRGVzdCwgc3Ry
U291cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKK30KKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBM
SU5VWCApCisvLyB0aGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHJldHVybiB3aGV0aGVyIG9y
IG5vdCB0aGUgZGVzdGluYXRpb24gd2FzIAorLy8gdHJ1bmNhdGVkLCBidXQgdGhhdCBpcyBzdHJh
aWdodGZvcndhcmQgdG8gZml4IGlmIGFueWJvZHkgYWN0dWFsbHkgbmVlZHMgdGhlCisvLyByZXR1
cm4gY29kZS4gCisjaW5jbHVkZSAic3RyaW5nLmgiCitpbmxpbmUgdm9pZCB3Y3NuY3B5X3Mod2No
YXJfdCAqc3RyRGVzdCwgc2l6ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IHdjaGFyX3QgKnN0
clNvdXJjZSwgc2l6ZV90IGNvdW50KQoreworICAgICAgIHdjc25jcHkoc3RyRGVzdCwgc3RyU291
cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKKyAgICAgICBzdHJEZXN0W251bWJlck9mRWxlbWVudHMt
MV0gPSAnXDAnOworfQorCitpbmxpbmUgdm9pZCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6
ZV90IG51bWJlck9mRWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50
KQoreworICAgICAgIHN0cm5jcHkoc3RyRGVzdCwgc3RyU291cmNlLCBudW1iZXJPZkVsZW1lbnRz
KTsKKyAgICAgICBzdHJEZXN0W251bWJlck9mRWxlbWVudHMtMV0gPSAnXDAnOworfQorCisjZW5k
aWYKKworI2lmIGRlZmluZWQoIF9XSU4zMiApICYmIF9NU0NfVkVSIDwgMTgwMAoraW5saW5lIHVp
bnQ2NF90IHN0cnRvdWxsKGNvbnN0IGNoYXIgKnN0ciwgY2hhciAqKmVuZHB0ciwgaW50IGJhc2Up
IHsgcmV0dXJuIF9zdHJ0b3VpNjQoIHN0ciwgZW5kcHRyLCBiYXNlICk7IH0KKyNlbmRpZgorCisv
KiBIYW5kbGVzIGNvcHlpbmcgYSBzdGQ6OnN0cmluZyBpbnRvIGEgYnVmZmVyIGFzIHdvdWxkIGJl
IHByb3ZpZGVkIGluIGFuIEFQSSAqLwordWludDMyX3QgUmV0dXJuU3RkU3RyaW5nKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNWYWx1ZSwgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxl
biApOworCisvKiBIYW5kbGVzIGNvcHlpbmcgYSBidWZmZXIgaW50byBhbiBzdGQ6OnN0cmluZyBh
bmQgYXV0byBhZGRzIG51bGwgdGVybWluYXRvciAqLwordm9pZCBCdWZmZXJUb1N0ZFN0cmluZygg
c3RkOjpzdHJpbmcgJiBzRGVzdCwgY29uc3QgY2hhciAqcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1
ZmZlckxlbiApOworCisvKiogUmV0dXJucyBhIHN0ZDo6c3RyaW5nIGZyb20gYSB1aW50NjRfdCAq
Lworc3RkOjpzdHJpbmcgVWludDY0VG9TdHJpbmcoIHVpbnQ2NF90IHVsVmFsdWUgKTsKKworLyoq
IHJldHVybnMgYSB1aW50NjRfdCBmcm9tIGEgc3RyaW5nICovCit1aW50NjRfdCBTdHJpbmdUb1Vp
bnQ2NCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUgKTsKKworLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8gUHVycG9zZTogRW5jb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20g
VVJMIGVuY29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKKy8vICAgICAg
ICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50
YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAgICAgICAgICB0aGUgc3RhbmRh
cmQgaW4gSFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRo
ZSBSRkMuCisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFz
IGxhcmdlIGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KKy8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9VUkxFbmNvZGUoIGNoYXIgKnBjaERlc3QsIGlu
dCBuRGVzdExlbiwgY29uc3QgY2hhciAqcGNoU291cmNlLCBpbnQgblNvdXJjZUxlbiApOworCisv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBEZWNvZGVzIGEgc3RyaW5nIChvciBi
aW5hcnkgZGF0YSkgZnJvbSBVUkwgZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9u
IDIuMi4gIAorLy8gICAgICAgICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3Ry
aWN0IFJGQyBpbXBsZW1lbnRhdGlvbiwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAg
ICAgICAgIHRoZSBzdGFuZGFyZCBpbiBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90
IGJlaW5nIHBhcnQgb2YgdGhlIFJGQy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91
bGQgYmUgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9v
bSBmb3IgZGVjb2RlLgorLy8gICAgICAgICAgICAgICAgICAgICBEZXN0IGJ1ZmZlciBiZWluZyB0
aGUgc2FtZSBhcyB0aGUgc291cmNlIGJ1ZmZlciAoZGVjb2RlIGluLXBsYWNlKSBpcyBleHBsaWNp
dGx5IGFsbG93ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzaXplX3QgVl9VUkxEZWNvZGUo
IGNoYXIgKnBjaERlY29kZURlc3QsIGludCBuRGVjb2RlRGVzdExlbiwgY29uc3QgY2hhciAqcGNo
RW5jb2RlZFNvdXJjZSwgaW50IG5FbmNvZGVkU291cmNlTGVuICk7CisKKy8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vIFB1cnBvc2U6IHN0cmlwIGV4dGVuc2lvbiBmcm9tIGEgcGF0aAorLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1N0cmlwRXh0ZW5zaW9uKCBzdGQ6OnN0cmluZyAmaW4g
KTsKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9u
L3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRmMzA0MjRh
OWZmMzYxYzgzNmY5YTRjMDhjZmE2ODQ2YWFkMzdiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNw
cApAQCAtMCwwICsxLDQxMSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCisKKyNpbmNsdWRlICJ2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCIK
KyNpbmNsdWRlICJqc29uL2pzb24uaCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgiCisj
aW5jbHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGlj
LmgiCisjaW5jbHVkZSAiZGlydG9vbHNfcHVibGljLmgiCisKKyNpZiBkZWZpbmVkKCBXSU4zMiAp
CisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHNobG9iai5oPgorCisjdW5kZWYgR2V0
RW52aXJvbm1lbnRWYXJpYWJsZQorI2VsaWYgZGVmaW5lZCBPU1gKKyNpbmNsdWRlIDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDxBcHBLaXQvQXBwS2l0Lmg+CisjZWxpZiBkZWZp
bmVkKExJTlVYKQorI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRp
ZgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisjaWZuZGVmIFZSTG9nCisgICAgICAgI2lmIGRl
ZmluZWQoIF9fTUlOR1czMl9fICkKKyAgICAgICAgICAgICAgI2RlZmluZSBWUkxvZyhhcmdzLi4u
KSAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIGFyZ3MpCisgICAgICAgI2VsaWYgZGVmaW5l
ZCggV0lOMzIgKQorICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGZtdCwgLi4uKSAgICAgICAg
ICAgICAgZnByaW50ZihzdGRlcnIsIGZtdCwgX19WQV9BUkdTX18pCisgICAgICAgI2Vsc2UKKyAg
ICAgICAgICAgICAgI2RlZmluZSBWUkxvZyhhcmdzLi4uKSAgICAgICAgICAgICAgZnByaW50Zihz
dGRlcnIsIGFyZ3MpCisgICAgICAgI2VuZGlmCisjZW5kaWYKKworLyoqIFJldHVybnMgdGhlIHJv
b3Qgb2YgdGhlIGRpcmVjdG9yeSB0aGUgc3lzdGVtIHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgY29u
ZmlnIGRhdGEgaW4gKi8KK3N0YXRpYyBzdGQ6OnN0cmluZyBHZXRBcHBTZXR0aW5nc1BhdGgoKQor
eworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBXQ0hBUiByd2NoUGF0aFtNQVhfUEFUSF07
CisKKyAgICAgICBpZiggIVNVQ0NFRURFRCggU0hHZXRGb2xkZXJQYXRoVyggTlVMTCwgQ1NJRExf
TE9DQUxfQVBQREFUQSB8IENTSURMX0ZMQUdfQ1JFQVRFLCBOVUxMLCAwLCByd2NoUGF0aCApICkg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKworICAgICAg
IC8vIENvbnZlcnQgdGhlIHBhdGggdG8gVVRGLTggYW5kIHN0b3JlIGluIHRoZSBvdXRwdXQKKyAg
ICAgICBzdGQ6OnN0cmluZyBzVXNlclBhdGggPSBVVEYxNnRvOCggcndjaFBhdGggKTsKKworICAg
ICAgIHJldHVybiBzVXNlclBhdGg7CisjZWxpZiBkZWZpbmVkKCBPU1ggKQorICAgICAgIHN0ZDo6
c3RyaW5nIHNTZXR0aW5nc0RpcjsKKyAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAg
ICAgICAgLy8gU2VhcmNoIGZvciB0aGUgcGF0aAorICAgICAgICAgICAgICBOU0FycmF5ICpwYXRo
cyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKCBOU0FwcGxpY2F0aW9uU3Vw
cG9ydERpcmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7CisgICAgICAgICAgICAgIGlm
ICggW3BhdGhzIGNvdW50XSA9PSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICIiOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICBOU1N0cmluZyAqcmVzb2x2ZWRQYXRoID0gW3BhdGhzIG9iamVjdEF0SW5kZXg6MF07
CisgICAgICAgICAgICAgIHJlc29sdmVkUGF0aCA9IFtyZXNvbHZlZFBhdGggc3RyaW5nQnlBcHBl
bmRpbmdQYXRoQ29tcG9uZW50OiBAIk9wZW5WUiJdOworICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgaWYgKCAhW1tOU0ZpbGVNYW5hZ2VyIG5ld10gY3JlYXRlRGlyZWN0b3J5QXRQYXRoOiBy
ZXNvbHZlZFBhdGggd2l0aEludGVybWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5p
bCBlcnJvcjpuaWxdICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICIiOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICBz
U2V0dGluZ3NEaXIuYXNzaWduKCBbcmVzb2x2ZWRQYXRoIFVURjhTdHJpbmddICk7CisgICAgICAg
fQorICAgICAgIHJldHVybiBzU2V0dGluZ3NEaXI7CisjZWxpZiBkZWZpbmVkKCBMSU5VWCApCisK
KyAgICAgICAvLyBBcyBkZWZpbmVkIGJ5IFhERyBCYXNlIERpcmVjdG9yeSBTcGVjaWZpY2F0aW9u
IAorICAgICAgIC8vIGh0dHBzOi8vc3BlY2lmaWNhdGlvbnMuZnJlZWRlc2t0b3Aub3JnL2Jhc2Vk
aXItc3BlYy9iYXNlZGlyLXNwZWMtbGF0ZXN0Lmh0bWwKKworICAgICAgIGNvbnN0IGNoYXIgKnBj
aEhvbWUgPSBnZXRlbnYoIlhER19DT05GSUdfSE9NRSIpOworICAgICAgIGlmICggKCBwY2hIb21l
ICE9IE5VTEwpICYmICggcGNoSG9tZVswXSAhPSAnXDAnICkgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHBjaEhvbWU7CisgICAgICAgfQorCisgICAgICAgLy8KKyAgICAgICAvLyBY
REdfQ09ORklHX0hPTUUgaXMgbm90IGRlZmluZWQsIHVzZSB+Ly5jb25maWcgaW5zdGVhZAorICAg
ICAgIC8vIAorICAgICAgIHBjaEhvbWUgPSBnZXRlbnYoICJIT01FIiApOworICAgICAgIGlmICgg
cGNoSG9tZSA9PSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAg
ICAgICB9CisKKyAgICAgICBzdGQ6OnN0cmluZyBzVXNlclBhdGgoIHBjaEhvbWUgKTsKKyAgICAg
ICBzVXNlclBhdGggPSBQYXRoX0pvaW4oIHNVc2VyUGF0aCwgIi5jb25maWciICk7CisgICAgICAg
cmV0dXJuIHNVc2VyUGF0aDsKKyNlbHNlCisgICAgICAgI3dhcm5pbmcgIlVuc3VwcG9ydGVkIHBs
YXRmb3JtIgorI2VuZGlmCit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBDb25zdHJ1Y3RvcgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDVlJQYXRoUmVnaXN0cnlfUHVi
bGljOjpDVlJQYXRoUmVnaXN0cnlfUHVibGljKCkKK3sKKworfQorCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IENvbXB1dGVzIHRoZSByZWdpc3RyeSBmaWxlbmFtZQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRP
cGVuVlJDb25maWdQYXRoKCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzQ29uZmlnUGF0aCA9IEdl
dEFwcFNldHRpbmdzUGF0aCgpOworICAgICAgIGlmKCBzQ29uZmlnUGF0aC5lbXB0eSgpICkKKyAg
ICAgICAgICAgICAgcmV0dXJuICIiOworCisjaWYgZGVmaW5lZCggX1dJTjMyICkgfHwgZGVmaW5l
ZCggTElOVVggKQorICAgICAgIHNDb25maWdQYXRoID0gUGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwg
Im9wZW52ciIgKTsKKyNlbGlmIGRlZmluZWQgKCBPU1ggKSAKKyAgICAgICBzQ29uZmlnUGF0aCA9
IFBhdGhfSm9pbiggc0NvbmZpZ1BhdGgsICIub3BlbnZyIiApOworI2Vsc2UKKyAgICAgICAjd2Fy
bmluZyAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCisjZW5kaWYKKyAgICAgICBzQ29uZmlnUGF0aCA9
IFBhdGhfRml4U2xhc2hlcyggc0NvbmZpZ1BhdGggKTsKKyAgICAgICByZXR1cm4gc0NvbmZpZ1Bh
dGg7Cit9CisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOgorLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0
VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpCit7CisgICAgICAgc3RkOjpzdHJpbmcgc1BhdGggPSBH
ZXRPcGVuVlJDb25maWdQYXRoKCk7CisgICAgICAgaWYgKCBzUGF0aC5lbXB0eSgpICkKKyAgICAg
ICAgICAgICAgcmV0dXJuICIiOworCisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzUGF0
aCA9IFBhdGhfSm9pbiggc1BhdGgsICJvcGVudnJwYXRocy52cnBhdGgiICk7CisjZWxpZiBkZWZp
bmVkICggUE9TSVggKSAKKyAgICAgICBzUGF0aCA9IFBhdGhfSm9pbiggc1BhdGgsICJvcGVudnJw
YXRocy52cnBhdGgiICk7CisjZWxzZQorICAgICAgICNlcnJvciAiVW5zdXBwb3J0ZWQgcGxhdGZv
cm0iCisjZW5kaWYKKyAgICAgICBzUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1BhdGggKTsKKyAg
ICAgICByZXR1cm4gc1BhdGg7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJw
b3NlOiBDb252ZXJ0cyBKU09OIHRvIGEgaGlzdG9yeSBhcnJheQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitzdGF0aWMgdm9pZCBQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggc3RkOjp2ZWN0b3I8IHN0
ZDo6c3RyaW5nID4gKnB2ZWNIaXN0b3J5LCBjb25zdCBKc29uOjpWYWx1ZSAmIHJvb3QsIGNvbnN0
IGNoYXIgKnBjaEFycmF5TmFtZSApCit7CisgICAgICAgaWYoICFyb290LmlzTWVtYmVyKCBwY2hB
cnJheU5hbWUgKSApCisgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgIGNvbnN0IEpzb246
OlZhbHVlICYgYXJyYXlOb2RlID0gcm9vdFsgcGNoQXJyYXlOYW1lIF07CisgICAgICAgaWYoICFh
cnJheU5vZGUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJWUiBQYXRoIFJlZ2lz
dHJ5IG5vZGUgJXMgaXMgbm90IGFuIGFycmF5XG4iLCBwY2hBcnJheU5hbWUgKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgIH0KKworICAgICAgIHB2ZWNIaXN0b3J5LT5jbGVhcigpOwor
ICAgICAgIHB2ZWNIaXN0b3J5LT5yZXNlcnZlKCBhcnJheU5vZGUuc2l6ZSgpICk7CisgICAgICAg
Zm9yKCB1aW50MzJfdCB1bkluZGV4ID0gMDsgdW5JbmRleCA8IGFycmF5Tm9kZS5zaXplKCk7IHVu
SW5kZXgrKyApCisgICAgICAgeworICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCggYXJy
YXlOb2RlWyB1bkluZGV4IF0uYXNTdHJpbmcoKSApOworICAgICAgICAgICAgICBwdmVjSGlzdG9y
eS0+cHVzaF9iYWNrKCBzUGF0aCApOworICAgICAgIH0KK30KKworCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IENvbnZlcnRzIGEgaGlzdG9yeSBhcnJheSB0byBKU09OCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK3N0YXRpYyB2b2lkIFN0cmluZ0xpc3RUb0pzb24oIGNvbnN0IHN0
ZDo6dmVjdG9yPCBzdGQ6OnN0cmluZyA+ICYgdmVjSGlzdG9yeSwgSnNvbjo6VmFsdWUgJiByb290
LCBjb25zdCBjaGFyICpwY2hBcnJheU5hbWUgKQoreworICAgICAgIEpzb246OlZhbHVlICYgYXJy
YXlOb2RlID0gcm9vdFsgcGNoQXJyYXlOYW1lIF07CisgICAgICAgZm9yKCBhdXRvIGkgPSB2ZWNI
aXN0b3J5LmJlZ2luKCk7IGkgIT0gdmVjSGlzdG9yeS5lbmQoKTsgaSsrICkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGFycmF5Tm9kZS5hcHBlbmQoICppICk7CisgICAgICAgfQorfQorCisKKy8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Citib29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OlRvSnNvblN0cmluZyggc3RkOjpzdHJpbmcg
JnNKc29uU3RyaW5nICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnUGF0aCA9IEdldFZSUGF0
aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBpZiggc1JlZ1BhdGguZW1wdHkoKSApCisgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVn
aXN0cnlDb250ZW50cyA9IFBhdGhfUmVhZFRleHRGaWxlKCBzUmVnUGF0aCApOworICAgICAgIGlm
KCBzUmVnaXN0cnlDb250ZW50cy5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgc0pzb25TdHJpbmcgPSBzUmVnaXN0cnlDb250ZW50czsKKworICAgICAgIHJl
dHVybiB0cnVlOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogTG9h
ZHMgdGhlIGNvbmZpZyBmaWxlIGZyb20gaXRzIHdlbGwga25vd24gbG9jYXRpb24KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpCTG9hZEZyb21GaWxl
KCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnUGF0aCA9IEdldFZSUGF0aFJlZ2lzdHJ5Rmls
ZW5hbWUoKTsKKyAgICAgICBpZiggc1JlZ1BhdGguZW1wdHkoKSApCisgICAgICAgeworICAgICAg
ICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBkZXRlcm1pbmUgVlIgUGF0aCBSZWdpc3RyeSBmaWxl
bmFtZVxuIiApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisgICAg
ICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSBQYXRoX1JlYWRUZXh0RmlsZSggc1Jl
Z1BhdGggKTsKKyAgICAgICBpZiggc1JlZ2lzdHJ5Q29udGVudHMuZW1wdHkoKSApCisgICAgICAg
eworICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byByZWFkIFZSIFBhdGggUmVnaXN0cnkg
ZnJvbSAlc1xuIiwgc1JlZ1BhdGguY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgfQorCisgICAgICAgSnNvbjo6VmFsdWUgcm9vdDsKKyAgICAgICBKc29uOjpS
ZWFkZXIgcmVhZGVyOworCisgICAgICAgaWYoICFyZWFkZXIucGFyc2UoIHNSZWdpc3RyeUNvbnRl
bnRzLCByb290ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJVbmFibGUgdG8g
cGFyc2UgJXM6ICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpLCByZWFkZXIuZ2V0Rm9ybWF0dGVkRXJy
b3JNZXNzYWdlcygpLmNfc3RyKCkgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgIH0KKworICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNSdW50aW1lUGF0
aCwgcm9vdCwgInJ1bnRpbWUiICk7CisgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZt
X3ZlY0NvbmZpZ1BhdGgsIHJvb3QsICJjb25maWciICk7CisgICAgICAgUGFyc2VTdHJpbmdMaXN0
RnJvbUpzb24oICZtX3ZlY0xvZ1BhdGgsIHJvb3QsICJsb2ciICk7CisgICAgICAgaWYgKHJvb3Qu
aXNNZW1iZXIoICJleHRlcm5hbF9kcml2ZXJzIiApICYmIHJvb3RbICJleHRlcm5hbF9kcml2ZXJz
IiBdLmlzQXJyYXkoKSApCisgICAgICAgeworICAgICAgICAgICAgICBQYXJzZVN0cmluZ0xpc3RG
cm9tSnNvbiggJm1fdmVjRXh0ZXJuYWxEcml2ZXJzLCByb290LCAiZXh0ZXJuYWxfZHJpdmVycyIg
KTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vIFB1cnBvc2U6IFNhdmVzIHRoZSBjb25maWcgZmlsZSB0byBpdHMgd2VsbCBr
bm93biBsb2NhdGlvbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkJTYXZlVG9GaWxlKCkgY29uc3QKK3sKKyNpZiBkZWZpbmVkKCBEQVNIQk9BUkRf
QlVJTERfTU9ERSApCisgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICAgICBzdGQ6OnN0
cmluZyBzUmVnUGF0aCA9IEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAgICBpZigg
c1JlZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAK
KyAgICAgICBKc29uOjpWYWx1ZSByb290OworICAgICAgIAorICAgICAgIHJvb3RbICJ2ZXJzaW9u
IiBdID0gMTsKKyAgICAgICByb290WyAianNvbmlkIiBdID0gInZycGF0aHJlZyI7CisKKyAgICAg
ICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY1J1bnRpbWVQYXRoLCByb290LCAicnVudGltZSIgKTsK
KyAgICAgICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY0NvbmZpZ1BhdGgsIHJvb3QsICJjb25maWci
ICk7CisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92ZWNMb2dQYXRoLCByb290LCAibG9nIiAp
OworICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjRXh0ZXJuYWxEcml2ZXJzLCByb290LCAi
ZXh0ZXJuYWxfZHJpdmVycyIgKTsKKworICAgICAgIEpzb246OlN0eWxlZFdyaXRlciB3cml0ZXI7
CisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSB3cml0ZXIud3JpdGUoIHJv
b3QgKTsKKworICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IHdlJ3JlIHdyaXRpbmcg
aW50byBhY3R1YWxseSBleGlzdHMKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnRGlyZWN0b3J5ID0g
UGF0aF9TdHJpcEZpbGVuYW1lKCBzUmVnUGF0aCApOworICAgICAgIGlmKCAhQkNyZWF0ZURpcmVj
dG9yeVJlY3Vyc2l2ZSggc1JlZ0RpcmVjdG9yeS5jX3N0cigpICkgKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgVlJMb2coICJVbmFibGUgdG8gY3JlYXRlIHBhdGggcmVnaXN0cnkgZGlyZWN0b3J5
ICVzXG4iLCBzUmVnRGlyZWN0b3J5LmNfc3RyKCkgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgIH0KKworICAgICAgIGlmKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUo
IHNSZWdQYXRoLCBzUmVnaXN0cnlDb250ZW50cy5jX3N0cigpICkgKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgVlJMb2coICJVbmFibGUgdG8gd3JpdGUgVlIgcGF0aCByZWdpc3RyeSB0byAlc1xu
Iiwgc1JlZ1BhdGguY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgfQorCisgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgcnVudGltZSBwYXRoIG9y
IE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitz
dGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRSdW50aW1lUGF0aCgpIGNvbnN0
Cit7CisgICAgICAgaWYoIG1fdmVjUnVudGltZVBhdGguZW1wdHkoKSApCisgICAgICAgICAgICAg
IHJldHVybiAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY1J1bnRp
bWVQYXRoLmZyb250KCkuY19zdHIoKTsKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8v
IFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgY29uZmlnIHBhdGggb3IgTlVMTCBpZiBubyBw
YXRoIGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIENW
UlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldENvbmZpZ1BhdGgoKSBjb25zdAoreworICAgICAgIGlm
KCBtX3ZlY0NvbmZpZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAg
ICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY0NvbmZpZ1BhdGguZnJvbnQoKS5j
X3N0cigpOworfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJu
cyB0aGUgY3VycmVudCBsb2cgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29uZmlndXJlZC4K
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1Ymxp
Yzo6R2V0TG9nUGF0aCgpIGNvbnN0Cit7CisgICAgICAgaWYoIG1fdmVjTG9nUGF0aC5lbXB0eSgp
ICkKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
cmV0dXJuIG1fdmVjTG9nUGF0aC5mcm9udCgpLmNfc3RyKCk7Cit9CisKKworCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgcGF0aHMgdXNpbmcgdGhlIHBhdGggcmVn
aXN0cnkgYW5kIHRoZSBwcm92aWRlZCBvdmVycmlkZSAKKy8vICAgICAgICAgICAgICAgICAgICAg
dmFsdWVzLiBQYXNzIE5VTEwgZm9yIGFueSBwYXRocyB5b3UgZG9uJ3QgY2FyZSBhYm91dC4KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRo
cyggc3RkOjpzdHJpbmcgKnBzUnVudGltZVBhdGgsIHN0ZDo6c3RyaW5nICpwc0NvbmZpZ1BhdGgs
IHN0ZDo6c3RyaW5nICpwc0xvZ1BhdGgsIGNvbnN0IGNoYXIgKnBjaENvbmZpZ1BhdGhPdmVycmlk
ZSwgY29uc3QgY2hhciAqcGNoTG9nUGF0aE92ZXJyaWRlLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu
Zz4gKnB2ZWNFeHRlcm5hbERyaXZlcnMgKQoreworICAgICAgIENWUlBhdGhSZWdpc3RyeV9QdWJs
aWMgcGF0aFJlZzsKKyAgICAgICBib29sIGJMb2FkZWRSZWdpc3RyeSA9IHBhdGhSZWcuQkxvYWRG
cm9tRmlsZSgpOworICAgICAgIGludCBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9IDA7CisK
KyAgICAgICBpZiggcHNSdW50aW1lUGF0aCApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAo
IEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoUnVudGltZU92ZXJyaWRlVmFyICkubGVuZ3Ro
KCkgIT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRp
bWVQYXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hSdW50aW1lT3ZlcnJpZGVWYXIg
KTsKKyAgICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggIXBhdGhSZWcuR2V0UnVudGlt
ZVBhdGgoKS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
KnBzUnVudGltZVBhdGggPSBwYXRoUmVnLkdldFJ1bnRpbWVQYXRoKCk7CisgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAqcHNSdW50aW1lUGF0aCA9ICIiOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisg
ICAgICAgaWYoIHBzQ29uZmlnUGF0aCApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIEdl
dEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoQ29uZmlnT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAh
PSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0
aCA9IEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNoQ29uZmlnT3ZlcnJpZGVWYXIgKTsKKyAg
ICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzKys7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggcGNoQ29uZmlnUGF0aE92ZXJyaWRlICkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9IHBj
aENvbmZpZ1BhdGhPdmVycmlkZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNl
IGlmKCAhcGF0aFJlZy5HZXRDb25maWdQYXRoKCkuZW1wdHkoKSApCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBwYXRoUmVnLkdldENvbmZpZ1Bh
dGgoKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSAiIjsKKyAgICAgICAgICAg
ICAgfQorICAgICAgIH0KKworICAgICAgIGlmKCBwc0xvZ1BhdGggKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBrX3BjaExvZ092ZXJyaWRlVmFy
ICkubGVuZ3RoKCkgIT0gMCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICpwc0xvZ1BhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBrX3BjaExvZ092ZXJyaWRlVmFy
ICk7CisgICAgICAgICAgICAgICAgICAgICBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcysrOwor
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYoIHBjaExvZ1BhdGhPdmVycmlk
ZSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGggPSBw
Y2hMb2dQYXRoT3ZlcnJpZGU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBp
ZiggIXBhdGhSZWcuR2V0TG9nUGF0aCgpLmVtcHR5KCkgKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gcGF0aFJlZy5HZXRMb2dQYXRoKCk7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9
CisKKyAgICAgICBpZiAoIHB2ZWNFeHRlcm5hbERyaXZlcnMgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgKnB2ZWNFeHRlcm5hbERyaXZlcnMgPSBwYXRoUmVnLm1fdmVjRXh0ZXJuYWxEcml2ZXJz
OworICAgICAgIH0KKworICAgICAgIGlmICggbkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMgPT0g
MyApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBhbGwgdGhyZWUgZW52aXJvbm1lbnQgdmFy
aWFibGVzIHdoZXJlIHNldCwgc28gd2UgZG9uJ3QgbmVlZCB0aGUgcGh5c2ljYWwgZmlsZQorICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gYkxvYWRl
ZFJlZ2lzdHJ5OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjBk
ZTU2ZjlkZjQwYWM1NTljODYxYmU1YTQ1MWFiNmRiMGMwOTA5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJs
aWMuaApAQCAtMCwwICsxLDQ1IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9y
YXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RyaW5nPgor
I2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworc3RhdGljIGNvbnN0IGNo
YXIgKmtfcGNoUnVudGltZU92ZXJyaWRlVmFyID0gIlZSX09WRVJSSURFIjsKK3N0YXRpYyBjb25z
dCBjaGFyICprX3BjaENvbmZpZ092ZXJyaWRlVmFyID0gIlZSX0NPTkZJR19QQVRIIjsKK3N0YXRp
YyBjb25zdCBjaGFyICprX3BjaExvZ092ZXJyaWRlVmFyID0gIlZSX0xPR19QQVRIIjsKKworY2xh
c3MgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYworeworcHVibGljOgorICAgICAgIHN0YXRpYyBzdGQ6
OnN0cmluZyBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7CisgICAgICAgc3RhdGljIHN0ZDo6
c3RyaW5nIEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKKworcHVibGljOgorICAgICAgIENWUlBhdGhS
ZWdpc3RyeV9QdWJsaWMoKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBw
YXRoIHJlZ2lzdHJ5IGFuZCB0aGUgcHJvdmlkZWQgb3ZlcnJpZGUgdmFsdWVzLiBQYXNzIE5VTEwg
Zm9yIGFueSBwYXRocyB5b3UgZG9uJ3QgY2FyZSBhYm91dC4gCisgICAgICAgKiBSZXR1cm5zIGZh
bHNlIGlmIHRoZSBwYXRoIHJlZ2lzdHJ5IGNvdWxkIG5vdCBiZSByZWFkLiBWYWxpZCBwYXRocyBt
aWdodCBzdGlsbCBiZSByZXR1cm5lZCBiYXNlZCBvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICov
CisgICAgICAgc3RhdGljIGJvb2wgR2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRpbWVQYXRo
LCBzdGQ6OnN0cmluZyAqcHNDb25maWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRoLCBjb25z
dCBjaGFyICpwY2hDb25maWdQYXRoT3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1BhdGhPdmVy
cmlkZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJzID0gTlVM
TCApOworCisgICAgICAgYm9vbCBCTG9hZEZyb21GaWxlKCk7CisgICAgICAgYm9vbCBCU2F2ZVRv
RmlsZSgpIGNvbnN0OworCisgICAgICAgYm9vbCBUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZz
SnNvblN0cmluZyApOworCisgICAgICAgLy8gbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgdmFs
dWVzCisgICAgICAgc3RkOjpzdHJpbmcgR2V0UnVudGltZVBhdGgoKSBjb25zdDsKKyAgICAgICBz
dGQ6OnN0cmluZyBHZXRDb25maWdQYXRoKCkgY29uc3Q7CisgICAgICAgc3RkOjpzdHJpbmcgR2V0
TG9nUGF0aCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgICAgdHlwZWRlZiBzdGQ6OnZlY3Rv
cjwgc3RkOjpzdHJpbmcgPiBTdHJpbmdWZWN0b3JfdDsKKworICAgICAgIC8vIGluZGV4IDAgaXMg
dGhlIGN1cnJlbnQgc2V0dGluZworICAgICAgIFN0cmluZ1ZlY3Rvcl90IG1fdmVjUnVudGltZVBh
dGg7CisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNMb2dQYXRoOworICAgICAgIFN0cmluZ1Zl
Y3Rvcl90IG1fdmVjQ29uZmlnUGF0aDsKKworICAgICAgIC8vIGZ1bGwgbGlzdCBvZiBleHRlcm5h
bCBkcml2ZXJzCisgICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNFeHRlcm5hbERyaXZlcnM7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKaW5kZXggZDljMzMyNjI2YzU1NDJlMDA4MDc0OGVmMDk5YjNmYTgzZDA1MWU4
OC4uZGRjYjdhYWRhMzJhZDM1ZWMyOTMzOGI1YmM1OGY4MDE0YmY4NmU2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CkBAIC0xMjgyLDQgKzEyODIsOCBAQAogI2RlZmluZSBIQVZFX1NUQUNLX0JPVU5EU19GT1JfTkVX
X1RIUkVBRCAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9PUEVOVlIgMQorI2VuZGlmCisKICNlbmRpZiAv
KiBXVEZfUGxhdGZvcm1faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5Y2ZkNDM0N2I4MWQ5
MWRlODMwMzJlMDdiZDEyYmQxMzcwMDVjOWQ5Li45Y2E3MDk4Zjg1MzQ0MjMzMGNiMTc5MzgxY2Y5
Nzc2MWMxNmRkNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzY1Myw2ICszNjUzLDExIEBA
IGlmIChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgICkKIGVuZGlmICgpCiAKK2lm
IChVU0VfT1BFTlZSKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMg
IiR7VEhJUkRQQVJUWV9ESVJ9L29wZW52ci9oZWFkZXJzIikKKyAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9MSUJSQVJJRVMgb3BlbnZyX2FwaSkKK2VuZGlmICgpCisKIGlmIChVU0VfV09GRjIpCiAgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtUSElSRFBBUlRZX0RJUn0v
d29mZjIvc3JjIikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgd29mZjIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MGYxNDQ1ZTYzNzBmMDZlNjM1YzM3YTk3Y2E2NTBhOGVkNDg2ZTYyMy4uYWRmMDhhMzc4N2JhNzBi
NTVhMTc0N2IxZTY3MDc4OGQ3N2E5ZmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzc1OSw2ICszNzU5LDcgQEAKIAkJOEFG
NEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1OTExREM1QTYzMDAwRUQz
REUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsKIAkJOEU0Qzk2REMxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3Bv
bnNlLmNwcCAqLzsgfTsKIAkJOEU0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0
Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oICovOyB9OworCQk4RTc5
NDJBNzFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDJBNjFGNkJFN0ZCMDA1N0I4MDMgLyog
bGlib3BlbnZyLmEgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoV2VhaywgKTsgfTsgfTsK
IAkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNB
MyAvKiBFdmVudFF1ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOEZBQzc3NEQxMTk4NzJDQjAwMTVBRTk0IC8qIEpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLzsg
fTsKIAkJOTAwMTc3NDAxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwpA
QCAtMTIxMTQsNiArMTIxMTUsNyBAQAogCQk4QUY0RTU1QTExREM1QTYzMDAwRUQzREUgLyogUGVy
Zm9ybWFuY2VUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlVGlt
aW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEU0Qzk2RDgxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNwb25zZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4RTc5NDJBNjFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZy
LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNo
aXZlLmFyOyBuYW1lID0gbGlib3BlbnZyLmE7IHBhdGggPSAuLi9UaGlyZFBhcnR5L29wZW52ci9i
dWlsZC9EZWJ1Zy9saWJvcGVudnIuYTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY2
NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXZlbnRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyog
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjMwNCw2ICsxNjMwNiw3IEBACiAJCQkJOTNGMTlCMTYwODI0NUU1OTAwMUU5QUJD
IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzRjE5
QjE3MDgyNDVFNTkwMDFFOUFCQyAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8s
CiAJCQkJMUNGQUUzMjMwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3
b3JrcyAqLywKKwkJCQk4RTc5NDJBNzFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgaW4g
RnJhbWV3b3JrcyAqLywKIAkJCQkxQzA5RDA1OTFFMzFDNkE5MDA3MjVGMTggLyogbGliUEFMLmEg
aW4gRnJhbWV3b3JrcyAqLywKIAkJCQlERDc2M0JCMjA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1s
Mi5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTM3OTkxOUIyMTIwMERFNTAwMEVBMDQxQyAv
KiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8sCkBAIC0xNjgyMSw2ICsxNjgyNCw3IEBACiAJ
CQkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAq
LywKIAkJCQk5M0YxRDMxQTA1NThDQzVDMDA4MjFCQzAgLyogbGliaWN1Y29yZS5keWxpYiAqLywK
IAkJCQkxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLywKKwkJCQk4
RTc5NDJBNjFGNkJFN0ZCMDA1N0I4MDMgLyogbGlib3BlbnZyLmEgKi8sCiAJCQkJREQ3NjNCQjEw
OTkyQzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgKi8sCiAJCQkJMzc5OTE5QjExMjAwREU1
MDAwRUEwNDFDIC8qIGxpYnouZHlsaWIgKi8sCiAJCQkJQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcy
IC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU5ZTczZTZlZGJjMTczZGM1YTAyYWJmZjZiMjg3OTky
ZDdhODQ0OWYuLjk5NWZlYzFmOGUzYmU2MGVjMWJjNjE3NmUwY2JjZWRmNjEzZWFlMjAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNy0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KKworICAgICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBi
dWlsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3
Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL2J1aWxkLXdlYmtpdDogQnVpbGQgT3BlblZSIGJlZm9yZSBXZWJDb3JlLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weTogQWRkZWQgb3BlbnZyIHRvIHRo
ZSBsaXN0IG9mIHRoaXJkIHBhcnR5IGxpYnJhcmllcworICAgICAgICB3aXRoIHJlZHVjZWQgc3R5
bGUgY2hlY2tzLgorCiAyMDE3LTA5LTI0ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIFtHVEtdIEluY3JlbWVudGFsIGJ1aWxkcyBmYWlsIGV2ZXJ5
IHRpbWUgV2ViIEluc3BlY3RvciBpY29ucyBhcmUgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCBj
MzkxZWVhOTNmYzZhYTNjOTA4Zjg5MThjMTg4M2U1ZDYxNWY5ZTY4Li42MzNhZTU1Yzk2OWFkNzhm
MGIyOGE5NWU0NGRhZWU2ZTc5NjEzYzM3IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtMTg4LDggKzE4OCw5
IEBAIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICAgICBwdXNoIEBvcHRpb25zLCAk
b3B0aW9uIHVubGVzcyAkb3B0aW9uIGVxICIiOwogICAgIH0KIAotICAgICMgQU5HTEUgYW5kIGxp
YndlYnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdlYkNvcmUKKyAgICAjIEFOR0xFLCBPcGVuVlIgYW5k
IGxpYndlYnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdlYkNvcmUKICAgICBzcGxpY2UgQHByb2plY3Rz
LCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFIik7CisgICAgc3BsaWNlIEBwcm9qZWN0
cywgMCwgMCwgKCJTb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIiKTsKICAgICBpZiAobm90ICRhcmNo
czMyYml0IGFuZCAoKHBvcnROYW1lKCkgZXEgTWFjIGFuZCBub3QgYXJjaGl0ZWN0dXJlKCkgZXEg
ImkzODYiKSBvciAKICAgICAgICAgKHBvcnROYW1lKCkgZXEgaU9TIGFuZCAoYXJjaGl0ZWN0dXJl
KCkgZXEgImFybTY0IiBvciBhcmNoaXRlY3R1cmUoKSBlcSAieDg2XzY0IikpKSkgewogICAgICAg
ICBzcGxpY2UgQHByb2plY3RzLCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0YyIp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGJhZDU3NmNkM2Y0
NzE1YWE2OTY4MzVmY2M2YTQ4YTNlNjgxNWEzZTUuLmJlNTIwMzVjNWJjNTg4ODFjMTA0OWY3ZTM1
MDllN2M1ZWFlNTE0OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkK
QEAgLTIxNCw2ICsyMTQsNyBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAgKFtvcy5w
YXRoLmpvaW4oJ3dlYmtpdHB5JywgJ3RoaXJkcGFydHknKSwKICAgICAgIG9zLnBhdGguam9pbign
U291cmNlJywgJ1RoaXJkUGFydHknLCAnQU5HTEUnKSwKICAgICAgIG9zLnBhdGguam9pbignU291
cmNlJywgJ1RoaXJkUGFydHknLCAnYnJvdGxpJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJj
ZScsICdUaGlyZFBhcnR5JywgJ29wZW52cicpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2Un
LCAnVGhpcmRQYXJ0eScsICd3b2ZmMicpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAn
VGhpcmRQYXJ0eScsICd4ZGdtaW1lJyldLAogICAgICBbIi0iLApkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IGM4ZGYyZjE5MWQ3NjYzMWY3NDIxNjY0Nzk0YjNjNTBhYmFk
OTNmNDUuLjQ5NjJjYWRlZWQ0N2JjMDQ1MTk4NGEwNWE2Y2ViZjY4YWI1MDM2YTMgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0y
MiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNl
ZGF0YToKKwogMjAxNy0wOS0yMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dpbl0gV2ViS2l0IGlzIGJ1aWx0IGFzIGEgc3RhdGljIGxpYnJhcnksIGFu
ZCBub3QgYXMgYSBkbGwuCmRpZmYgLS1naXQgYS9XZWJLaXQueGN3b3Jrc3BhY2UvY29udGVudHMu
eGN3b3Jrc3BhY2VkYXRhIGIvV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNl
ZGF0YQppbmRleCAyZTU5OTBmYWJmMjgxYWU4ZDRmMjVhYTUzNTkzNDEyNGMxMWVmMTZjLi4xYWI1
NTgxMjIxMzkzMGQxYTg3OWJlMGI4NzU5Y2NlNzJmMDk4NWQyIDEwMDY0NAotLS0gYS9XZWJLaXQu
eGN3b3Jrc3BhY2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhCisrKyBiL1dlYktpdC54Y3dvcmtz
cGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEKQEAgLTEsNiArMSw5IEBACiA8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPFdvcmtzcGFjZQogICAgdmVyc2lvbiA9ICIx
LjAiPgorICAgPEZpbGVSZWYKKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOlNvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9vcGVudnIueGNvZGVwcm9qIj4KKyAgIDwvRmlsZVJlZj4KICAgIDxGaWxlUmVm
CiAgICAgICBsb2NhdGlvbiA9ICJncm91cDpTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJv
aiI+CiAgICA8L0ZpbGVSZWY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331621</attachid>
            <date>2018-01-18 07:58:34 -0800</date>
            <delta_ts>2018-01-18 08:48:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20180118165817.patch</filename>
            <type>text/plain</type>
            <size>1269923</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggMDhhYTcyOTRj
ZDIyMDIxNmFjMWQ1ZGU4ODZiNjI2Y2FjNmNlM2Q5Mi4uOTZjMjg3MzAwOGUwMDQ3ODYzMThmYjg5
Y2ZjMDU4M2JmODJkMzllNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MSBAQAorMjAx
Ny0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRl
ZC4KKyAgICAgICAgKiBvcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICogb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL1JFQURNRTog
QWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmg6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmg6IEFkZGVkLgorICAgICAgICAq
IG9wZW52ci9zcmMvanNvbi9qc29uLmg6IEFkZGVkLgorICAgICAgICAoc3RkOjpzd2FwKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL2pzb25jcHAuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpzb246OmNv
ZGVQb2ludFRvVVRGOCk6CisgICAgICAgIChKc29uOjppc0NvbnRyb2xDaGFyYWN0ZXIpOgorICAg
ICAgICAoSnNvbjo6dWludFRvU3RyaW5nKToKKyAgICAgICAgKEpzb246OmZpeE51bWVyaWNMb2Nh
bGUpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OkZlYXR1cmVzKToKKyAgICAgICAgKEpzb246
OkZlYXR1cmVzOjphbGwpOgorICAgICAgICAoSnNvbjo6RmVhdHVyZXM6OnN0cmljdE1vZGUpOgor
ICAgICAgICAoSnNvbjo6Y29udGFpbnNOZXdMaW5lKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6
UmVhZGVyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpyZWFkVmFsdWUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpza2lwQ29tbWVudFRv
a2Vucyk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRUb2tlbik6CisgICAgICAgIChKc29u
OjpSZWFkZXI6OnNraXBTcGFjZXMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjptYXRjaCk6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRDb21tZW50KToKKyAgICAgICAgKEpzb246Om5vcm1h
bGl6ZUVPTCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAo
SnNvbjo6UmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6
OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkTnVtYmVy
KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpS
ZWFkZXI6OnJlYWRPYmplY3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQXJyYXkpOgor
ICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpkZWNvZGVEb3VibGUpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVTdHJpbmcp
OgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAg
ICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAg
KEpzb246OlJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWNvdmVy
RnJvbUVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRMb2NhdGlvblNu
aXBwZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXRlZEVycm9yTWVz
c2FnZXMgY29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1l
c3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9y
cyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChK
c29uOjpSZWFkZXI6Omdvb2QgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyRmVhdHVyZXM6OmFs
bCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Ok91clJlYWRlcik6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZFZhbHVl
KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6c2tpcENvbW1lbnRUb2tlbnMpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
Ojpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6bWF0Y2gpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFk
ZXI6OmFkZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ1N0eWxlQ29t
bWVudCk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6cmVhZFN0cmluZyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRTdHJp
bmdTaW5nbGVRdW90ZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRPYmplY3QpOgor
ICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQXJyYXkpOgorICAgICAgICAoSnNvbjo6T3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVE
b3VibGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcpOgorICAgICAg
ICAoSnNvbjo6T3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKToKKyAgICAgICAgKEpz
b246Ok91clJlYWRlcjo6YWRkRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWNv
dmVyRnJvbUVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6YWRkRXJyb3JBbmRSZWNv
dmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6Y3VycmVudFZhbHVlKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6Z2V0TmV4dENoYXIpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjpnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91
clJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnB1c2hFcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Omdvb2QgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6T3VyQ2hhclJlYWRlcjo6T3VyQ2hhclJlYWRlcik6CisgICAgICAg
IChKc29uOjpPdXJDaGFyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVy
QnVpbGRlcjo6Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVp
bGRlcjo6bmV3Q2hhclJlYWRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFJlYWRl
cktleXMpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpvcGVyYXRvcltdKToKKyAgICAg
ICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjpzdHJpY3RNb2RlKToKKyAgICAgICAgKEpzb246
OkNoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAgIChKc29uOjpwYXJzZUZy
b21TdHJlYW0pOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I+Pik6CisgICAgICAgIChKc29uOjpW
YWx1ZUl0ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmRlcmVmIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjppbmNyZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmRl
Y3JlbWVudCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3Rh
bmNlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjppc0VxdWFsIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpjb3B5KToKKyAgICAgICAg
KEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjprZXkgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0
b3JCYXNlOjpuYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpt
ZW1iZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChKc29uOjpJblJhbmdlKToKKyAgICAgICAg
KEpzb246OmludGVnZXJUb0RvdWJsZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVTdHJpbmdW
YWx1ZSk6CisgICAgICAgIChKc29uOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpkZWNvZGVQcmVmaXhlZFN0cmluZyk6CisgICAgICAgIChKc29uOjpyZWxl
YXNlU3RyaW5nVmFsdWUpOgorICAgICAgICAoSnNvbjo6RXhjZXB0aW9uOjpFeGNlcHRpb24pOgor
ICAgICAgICAoSnNvbjo6dGhyb3cpOgorICAgICAgICAoSnNvbjo6UnVudGltZUVycm9yOjpSdW50
aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6TG9naWNFcnJvcjo6TG9naWNFcnJvcik6CisgICAg
ICAgIChKc29uOjp0aHJvd1J1bnRpbWVFcnJvcik6CisgICAgICAgIChKc29uOjp0aHJvd0xvZ2lj
RXJyb3IpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpDb21tZW50SW5mbyk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbyk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6Q29tbWVudEluZm86OnNldENvbW1lbnQpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OkNaU3RyaW5nOjpDWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pT
dHJpbmc6On5DWlN0cmluZyk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OnN3YXAp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj0pOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OkNaU3RyaW5nOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
OjpDWlN0cmluZzo6aW5kZXggY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5n
OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6bGVuZ3RoIGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6aXNTdGF0aWNTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OlZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVl
Ojp+VmFsdWUpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPSk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6c3dhcFBheWxvYWQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnN3YXApOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OnR5cGUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmNvbXBhcmUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPCBjb25zdCk6
CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3I+IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjphc0NTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldFN0cmluZyBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNTdHJpbmcgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmFzQ29uc3RTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc1VJbnQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmFzSW50NjQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6
OmFzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RJbnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzTGFyZ2VzdFVJbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OmFzRG91YmxlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0Jvb2wgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzQ29udmVydGlibGVUbyBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6ZW1wdHkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChKc29u
OjpWYWx1ZTo6Y2xlYXIpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OnJlc2l6ZSk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aW5pdEJhc2ljKToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpn
ZXQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzVmFsaWRJbmRleCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6ZmluZCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
YXBwZW5kKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OnJlbW92ZUluZGV4KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc01lbWJl
ciBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6SXNJbnRlZ3JhbCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdWxs
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0Jvb2wgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzSW50IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1VJbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzSW50NjQgY29uc3QpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6OmlzVUludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0lu
dGVncmFsIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0RvdWJsZSBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6aXNOdW1lcmljIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjppc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNBcnJheSBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNPYmplY3QgY29uc3QpOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnNldENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Omhhc0NvbW1lbnQg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldENvbW1lbnQgY29uc3QpOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OnNldE9mZnNldFN0YXJ0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpz
ZXRPZmZzZXRMaW1pdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0T2Zmc2V0U3RhcnQgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldExpbWl0IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjp0b1N0eWxlZFN0cmluZyBjb25zdCk6CisgICAgICAgIChKc29uOjpW
YWx1ZTo6YmVnaW4gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCBjb25zdCk6Cisg
ICAgICAgIChKc29uOjpWYWx1ZTo6YmVnaW4pOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVuZCk6
CisgICAgICAgIChKc29uOjpQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudCk6CisgICAgICAgIChK
c29uOjpQYXRoOjpQYXRoKToKKyAgICAgICAgKEpzb246OlBhdGg6Om1ha2VQYXRoKToKKyAgICAg
ICAgKEpzb246OlBhdGg6OmFkZFBhdGhJbkFyZyk6CisgICAgICAgIChKc29uOjpQYXRoOjppbnZh
bGlkUGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjpyZXNvbHZlIGNvbnN0KToKKyAgICAgICAg
KEpzb246OlBhdGg6Om1ha2UgY29uc3QpOgorICAgICAgICAoSnNvbjo6Y29udGFpbnNDb250cm9s
Q2hhcmFjdGVyKToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENoYXJhY3RlcjApOgor
ICAgICAgICAoSnNvbjo6dmFsdWVUb1N0cmluZyk6CisgICAgICAgIChKc29uOjp2YWx1ZVRvUXVv
dGVkU3RyaW5nKToKKyAgICAgICAgKEpzb246OnN0cm5wYnJrKToKKyAgICAgICAgKEpzb246OnZh
bHVlVG9RdW90ZWRTdHJpbmdOKToKKyAgICAgICAgKEpzb246OldyaXRlcjo6fldyaXRlcik6Cisg
ICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpGYXN0V3JpdGVyKToKKyAgICAgICAgKEpzb246OkZh
c3RXcml0ZXI6OmVuYWJsZVlBTUxDb21wYXRpYmlsaXR5KToKKyAgICAgICAgKEpzb246OkZhc3RX
cml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKToKKyAgICAgICAgKEpzb246OkZhc3RXcml0ZXI6
Om9taXRFbmRpbmdMaW5lRmVlZCk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZSk6
CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRl
cjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVZhbHVlKToKKyAg
ICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpz
b246OlN0eWxlZFdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjpwdXNoVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUlu
ZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlV2l0aEluZGVudCk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHls
ZWRXcml0ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVD
b21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OlN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6
CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6Cisg
ICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAg
ICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246
OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp1
bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVu
dEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFt
V3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OkJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVBcnJheVZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxl
ZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZUluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXI6OnVuaW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNv
bjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZSk6CisgICAgICAg
IChKc29uOjpTdHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHJl
YW1Xcml0ZXI6On5TdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyOjpG
YWN0b3J5Ojp+RmFjdG9yeSk6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpT
dHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxk
ZXI6Om5ld1N0cmVhbVdyaXRlciBjb25zdCk6CisgICAgICAgIChKc29uOjpnZXRWYWxpZFdyaXRl
cktleXMpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6dmFsaWRhdGUgY29u
c3QpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6Cisg
ICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyk6CisgICAgICAg
IChKc29uOjp3cml0ZVN0cmluZyk6CisgICAgICAgIChKc29uOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKiBvcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgICh2
cjo6VlJfR2V0SW5pdFRva2VuKToKKyAgICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwyKToKKyAg
ICAgICAgKHZyOjpWUl9Jbml0SW50ZXJuYWwpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duSW50
ZXJuYWwpOgorICAgICAgICAodnI6OlZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCk6CisgICAgICAg
ICh2cjo6VlJfR2V0R2VuZXJpY0ludGVyZmFjZSk6CisgICAgICAgICh2cjo6VlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQpOgorICAgICAgICAodnI6OlZSX0lzSG1kUHJlc2VudCk6CisgICAgICAg
ICh2cjo6VlJfSXNSdW50aW1lSW5zdGFsbGVkKToKKyAgICAgICAgKHZyOjpWUl9SdW50aW1lUGF0
aCk6CisgICAgICAgICh2cjo6VlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCk6CisgICAgICAgICh2
cjo6VlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xpc2hEZXNjcmlwdGlvbik6CisgICAgICAgICh2cjo6
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24v
ZGlydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5UmVj
dXJzaXZlKToKKyAgICAgICAgKEJDcmVhdGVEaXJlY3RvcnkpOgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9z
cmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChHZXRF
bnZpcm9ubWVudFZhcmlhYmxlKToKKyAgICAgICAgKFNldEVudmlyb25tZW50VmFyaWFibGUpOgor
ICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmg6IEFkZGVk
LgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHA6IEFk
ZGVkLgorICAgICAgICAoR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKEdl
dElERm9yVlJJbml0RXJyb3IpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vaG1kZXJy
b3JzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0
b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgp
OgorICAgICAgICAoUGF0aF9HZXRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKFBhdGhfU2V0
V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRmlsZW5hbWUpOgorICAgICAg
ICAoUGF0aF9TdHJpcERpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1N0cmlwRXh0ZW5zaW9uKToK
KyAgICAgICAgKFBhdGhfR2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFBhdGhfSXNBYnNvbHV0ZSk6
CisgICAgICAgIChQYXRoX01ha2VBYnNvbHV0ZSk6CisgICAgICAgIChQYXRoX0ZpeFNsYXNoZXMp
OgorICAgICAgICAoUGF0aF9HZXRTbGFzaCk6CisgICAgICAgIChQYXRoX0pvaW4pOgorICAgICAg
ICAoUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKToKKyAgICAgICAgKFBhdGhfQ29tcGFjdCk6Cisg
ICAgICAgIChQYXRoX0dldFRoaXNNb2R1bGVQYXRoKToKKyAgICAgICAgKFBhdGhfSXNEaXJlY3Rv
cnkpOgorICAgICAgICAoUGF0aF9Jc0FwcEJ1bmRsZSk6CisgICAgICAgIChQYXRoX0V4aXN0cyk6
CisgICAgICAgIChQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAg
IChQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSk6CisgICAgICAgIChQYXRo
X1JlYWRCaW5hcnlGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVCaW5hcnlGaWxlKToKKyAgICAg
ICAgKFBhdGhfUmVhZFRleHRGaWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRG
aWxlKToKKyAgICAgICAgKFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKToKKyAgICAg
ICAgKFBhdGhfRmlsZVBhdGhUb1VybCk6CisgICAgICAgIChQYXRoX1VybFRvRmlsZVBhdGgpOgor
ICAgICAgICAoR2V0VXNlckRvY3VtZW50c1BhdGgpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJj
b21tb24vcGF0aHRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3Zy
Y29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU2hhcmVk
TGliX0xvYWQpOgorICAgICAgICAoU2hhcmVkTGliX0dldEZ1bmN0aW9uKToKKyAgICAgICAgKFNo
YXJlZExpYl9VbmxvYWQpOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGli
dG9vbHNfcHVibGljLmg6IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3Ry
dG9vbHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChTdHJpbmdIYXNQcmVmaXgpOgorICAg
ICAgICAoU3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAgIChTdHJpbmdIYXNT
dWZmaXgpOgorICAgICAgICAoU3RyaW5nSGFzU3VmZml4Q2FzZVNlbnNpdGl2ZSk6CisgICAgICAg
IChVVEYxNnRvOCk6CisgICAgICAgIChVVEY4dG8xNik6CisgICAgICAgIChzdHJjcHlfc2FmZSk6
CisgICAgICAgIChTdHJpbmdUb1VwcGVyKToKKyAgICAgICAgKFN0cmluZ1RvTG93ZXIpOgorICAg
ICAgICAoUmV0dXJuU3RkU3RyaW5nKToKKyAgICAgICAgKEJ1ZmZlclRvU3RkU3RyaW5nKToKKyAg
ICAgICAgKFVpbnQ2NFRvU3RyaW5nKToKKyAgICAgICAgKFN0cmluZ1RvVWludDY0KToKKyAgICAg
ICAgKGNJbnRUb0hleERpZ2l0KToKKyAgICAgICAgKGlIZXhDaGFyVG9JbnQpOgorICAgICAgICAo
Vl9VUkxFbmNvZGVJbnRlcm5hbCk6CisgICAgICAgIChWX1VSTERlY29kZUludGVybmFsKToKKyAg
ICAgICAgKFZfVVJMRW5jb2RlKToKKyAgICAgICAgKFZfVVJMRGVjb2RlKToKKyAgICAgICAgKFZf
U3RyaXBFeHRlbnNpb24pOgorICAgICAgICAqIG9wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNf
cHVibGljLmg6IEFkZGVkLgorICAgICAgICAoc3RyaWNtcCk6CisgICAgICAgIChzdHJuaWNtcCk6
CisgICAgICAgICh3Y3NuY3B5X3MpOgorICAgICAgICAoc3RybmNweV9zKToKKyAgICAgICAgKHN0
cnRvdWxsKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1
YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0QXBwU2V0dGluZ3NQYXRoKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMpOgorICAgICAg
ICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCk6CisgICAgICAg
IChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKToKKyAg
ICAgICAgKFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKToKKyAgICAgICAgKFN0cmluZ0xpc3RUb0pz
b24pOgorICAgICAgICAoQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5nKToKKyAg
ICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJMb2FkRnJvbUZpbGUpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUgY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGggY29uc3QpOgorICAgICAgICAoQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQ
YXRoUmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBhdGhS
ZWdpc3RyeV9QdWJsaWM6OkdldFBhdGhzKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9u
L3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oOiBBZGRlZC4KKwogMjAxNy0xMi0xNCAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSAtV3N0cmljdC1wcm90
b3R5cGVzIGZvciBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNDNiYTk2NDYwZTZlNDY3MTI4ZmY5NTU1YjI4NTUyNDMw
NzA3OWQ4NC4uM2Q0NTgyMTQwNjYzZmUxMDgyM2YwNTNkOGQzNThiNTZmY2EyZTcxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxNy0wOS0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5k
IHRvIHRoZSBidWlsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc3Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDogRGVmaW5lIFVTRV9PUEVOVlIgZm9yIEd0aywgTWFjIGFu
ZCBXUEUuCisKIDIwMTgtMDEtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyMjI3OTUpOiBDYXJkaW9ncmFtIG5ldmVyIHNpZ25zIGlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNWZiZmI0MjgxYzcyMjk0NmI4ODE2ZWM1YzhjMGYwMTA5ZWVjOTUyNy4u
OTViNTU4MjNiMmU1YmM1Y2ViMTJmNzhlZDdlNDQxNTk4YTAwYWVlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE3LTA5LTIyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXZWJWUl0gQWRkIE9wZW5WUiB0byB0aGUgdHJlZSBhbmQg
dG8gdGhlIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzcyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCBidWlsZCBkZXBlbmRlbmNpZXMgd2l0aCB0aGUgT3BlblZSIGxpYnJhcnkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMTgtMDEtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gU3BlY2lmeSAtW05TVVJMIF90aXRsZV0gZm9y
IHRoZSBhc3NvY2lhdGVkIFVSTCB3aGVuIGNvcHlpbmcgYW4gaW1hZ2UgZWxlbWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDhhMjZiZTJjMjZmNGFiNDFhZTBlNWU2MDBkNDE3ZDI0MjVkOTczNjAuLjE0MGJmMGJkNDQyNDQy
MjA4NjA5MTQ5Mzk0MGMwZmVkN2RkNWRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKQEAgLTE3LDYgKzE3LDEwIEBAIGlmIChF
TkFCTEVfQVBJX1RFU1RTKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS9ndGVzdCkK
IGVuZGlmICgpCiAKK2lmIChVU0VfT1BFTlZSKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoVGhpcmRQ
YXJ0eS9vcGVudnIpCitlbmRpZiAoKQorCiBpZiAoVVNFX1hER01JTUUpCiAgICAgYWRkX3N1YmRp
cmVjdG9yeShUaGlyZFBhcnR5L3hkZ21pbWUpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxM2E3ZjkwY2Y4NGMyMWRhODRkMGJhNWZj
MjhmMTRkNjhkYTJjZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSw1OCBAQAorIyBTZXQgdGhlIG1pbmltdW0gcmVx
dWlyZWQgdmVyc2lvbiBvZiBDTWFrZSBmb3IgdGhpcyBwcm9qZWN0LgorY21ha2VfbWluaW11bV9y
ZXF1aXJlZChWRVJTSU9OIDIuOCkKKworIyBTZXR1cCBzb21lIG9wdGlvbnMuCitvcHRpb24oQlVJ
TERfU0hBUkVEICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikKK29w
dGlvbihVU0VfTElCQ1hYICJVc2VzIGxpYmMrKyBpbnN0ZWFkIG9mIGxpYnN0ZGMrKyIgT04pCitv
cHRpb24oVVNFX0NVU1RPTV9MSUJDWFggIlVzZXMgYSBjdXN0b20gbGliYysrIiBPRkYpCisKK2Fk
ZF9kZWZpbml0aW9ucyggLURWUl9BUElfUFVCTElDICkKKworIyBDaGVjayBpZiAzMiBvciA2NCBi
aXQgc3lzdGVtLgorc2V0KFNJWkVPRl9WT0lEUCAke0NNQUtFX1NJWkVPRl9WT0lEX1B9KQoraWYo
Q01BS0VfU0laRU9GX1ZPSURfUCBFUVVBTCA4KQorICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjY0IikK
K2Vsc2UoKQorICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjMyIikKK2VuZGlmKCkKKworIyBHZXQgcGxh
dGZvcm0uCitpZihXSU4zMikKKyAgICAgICBzZXQoUExBVEZPUk1fTkFNRSAid2luIikKK2Vsc2Vp
ZihVTklYIEFORCBOT1QgQVBQTEUpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4q
TGludXgiKQorICAgIHNldChQTEFURk9STV9OQU1FICJsaW51eCIpCisgICAgYWRkX2RlZmluaXRp
b25zKC1ETElOVVggLURQT1NJWCkKKyAgICBpZihQUk9DRVNTT1JfQVJDSCBNQVRDSEVTICI2NCIp
CisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRExJTlVYNjQpCisgICAgZW5kaWYoKQorICBlbmRp
ZigpCitlbHNlaWYoQVBQTEUpCisgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qRGFy
d2luLioiIE9SIENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qTWFjT1MuKiIpCisgICAgc2V0
KFBMQVRGT1JNX05BTUUgIm9zeCIpCisgICAgYWRkX2RlZmluaXRpb25zKC1ET1NYIC1EUE9TSVgp
CisgIGVuZGlmKCkKK2VuZGlmKCkKKworIyBFbmFibGUgc29tZSBwcm9wZXJ0aWVzLgoraWYoQ01B
S0VfQ09NUElMRVJfSVNfR05VQ0MgT1IgQ01BS0VfQ19DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFu
ZyIpCisgICAgICAgIyBFbmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGljaCBzaG91bGRu
J3QgYmUgdmlzaWJsZQorICAgICAgIHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZM
QUdTfSAtc3RkPWMrKzExIC1mUElDIC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorCisgICAgICAgIyBT
ZXQgY3VzdG9tIGxpYmMrKyB1c2FnZSBoZXJlCisgICAgICAgaWYoQ01BS0VfQ19DT01QSUxFUl9J
RCBNQVRDSEVTICJDbGFuZyIgQU5EIFVTRV9MSUJDWFgpCisgICAgICAgICAgICAgIGlmKFVTRV9D
VVNUT01fTElCQ1hYKQorICAgICAgICAgICAgICAgICAgICAgaWYoQlVJTERfU0hBUkVEKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIk
e0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9IC1zdGRsaWI9bGliYysrIikKKyAgICAgICAgICAg
ICAgICAgICAgIGVuZGlmKCkKKyAgICAgICAgICAgICAgICAgICAgIHNldChDTUFLRV9DWFhfRkxB
R1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtbm9zdGRpbmMrKyIpCisgICAgICAgICAgICAgICAgICAg
ICBpbmNsdWRlX2RpcmVjdG9yaWVzKCAke0xJQkNYWF9JTkNMVURFfSAke0xJQkNYWF9BQklfSU5D
TFVERX0pCisgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgY3VzdG9t
IGxpYmMrKyIpCisgICAgICAgICAgICAgIGVsc2UoKQorICAgICAgICAgICAgICAgICAgICAgc2V0
KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGRsaWI9bGliYysrIikKKyAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UoU1RBVFVTICJVc2luZyBsaWJjKysiKQorICAgICAg
ICAgICAgICBlbmRpZigpCisgICAgICAgZW5kaWYoKQorZW5kaWYoKQorCithZGRfc3ViZGlyZWN0
b3J5KHNyYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9MSUNFTlNFIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU4MzMzN2Q3ZmNi
NzI2ZDE0Y2MxMGY3ZGQyZmRhNjc5OWQ4YTEzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L29wZW52ci9MSUNFTlNFCkBAIC0wLDAgKzEsMjcgQEAKK0NvcHlyaWdodCAoYykg
MjAxNSwgVmFsdmUgQ29ycG9yYXRpb24KK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dCBtb2RpZmljYXRpb24sCithcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisKKzEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcworbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKzIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwKK3RoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCitvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCiszLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5
cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQKK3NwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORAorQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKK1dBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKK0RJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCitBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyhJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKK0xPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyhJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCitTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9S
RUFETUUubWQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5NzZkNjIyZjZhZDNkNDE4NjRjZTM2ZTVkMmRiOTRiZDFiMGJjYmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTMgQEAK
K09wZW5WUiBTREsKKy0tLQorCitPcGVuVlIgaXMgYW4gQVBJIGFuZCBydW50aW1lIHRoYXQgYWxs
b3dzIGFjY2VzcyB0byBWUiBoYXJkd2FyZSBmcm9tIG11bHRpcGxlIAordmVuZG9ycyB3aXRob3V0
IHJlcXVpcmluZyB0aGF0IGFwcGxpY2F0aW9ucyBoYXZlIHNwZWNpZmljIGtub3dsZWRnZSBvZiB0
aGUgCitoYXJkd2FyZSB0aGV5IGFyZSB0YXJnZXRpbmcuIFRoaXMgcmVwb3NpdG9yeSBpcyBhbiBT
REsgdGhhdCBjb250YWlucyB0aGUgQVBJIAorYW5kIHNhbXBsZXMuIFRoZSBydW50aW1lIGlzIHVu
ZGVyIFN0ZWFtVlIgaW4gVG9vbHMgb24gU3RlYW0uIAorCisjIyMgRG9jdW1lbnRhdGlvbgorCitE
b2N1bWVudGF0aW9uIGZvciB0aGUgQVBJIGlzIGF2YWlsYWJsZSBvbiB0aGUgW0dpdGh1YiBXaWtp
XShodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIvd2lraS9BUEktRG9jdW1l
bnRhdGlvbikKKworTW9yZSBpbmZvcm1hdGlvbiBvbiBPcGVuVlIgYW5kIFN0ZWFtVlIgY2FuIGJl
IGZvdW5kIG9uIGh0dHA6Ly9zdGVhbXZyLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL1JFQURNRS53ZWJraXQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvUkVBRE1F
LndlYmtpdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZmVlNGMxZGM0ODk1N2Q4YzExNjIwODNhYjQ5M2U2YzE1ZDA4
ZWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS53
ZWJraXQKQEAgLTAsMCArMSwyMiBAQAorVGhpcyBpcyB0aGUgT3BlblZSIGxpYnJhcnkgZnJvbQor
aHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyCisKK1Vwc3RyZWFtIGNvZGUg
Y2FuIGJlIHZpZXdlZCBhdAorIGh0dHBzOi8vZ2l0aHViLmNvbS9WYWx2ZVNvZnR3YXJlL29wZW52
ci90cmVlL21hc3Rlci8KKworYW5kIGNsb25lZCBieQorIGdpdCBjbG9uZSBodHRwczovL2dpdGh1
Yi5jb20vVmFsdmVTb2Z0d2FyZS9vcGVudnIuZ2l0CisKK0N1cnJlbnQgdmVyc2lvbjogW2NvbW1p
dCBlYmRlYTE1MmY4YWFjNzdlOWE2ZGIyOTY4MmI4MWQ3NjIxNTlkZjdlXQorCit3aGljaCBjb3Jy
ZXNwb25kcyB0byAxLjAuMTAgcmVsZWFzZS4KKworV2ViS2l0IGNoYW5nZXM6CisqIHBhdGNoZXMv
Y21ha2UtYnVpbGQucGF0Y2g6IHNjcmlwdCB1c2VkIHRvIGFsbG93IG9wZW52ciBDTWFrZSBidWls
ZCB0byBiZQoraW50ZWdyYXRlZCBpbnRvIFdlYktpdCBidWlsZAorKiBSZW1vdmVkIGJpbi8gZGly
ZWN0b3J5LiBOb3QgbmVlZGVkIGFzIGl0IGluY2x1ZGVzIHByZWNvbXBpbGVkIGxpYnJhcmllcwor
KiBSZW1vdmVkIGxpYi8gZGlyZWN0b3J5LiBOb3QgbmVlZGVkIGFzIGl0IGluY2x1ZGVzIHByZWNv
bXBpbGVkIGxpYnJhcmllcworKiBSZW1vdmVkIGNvbnRyb2xsZXJfY2FsbG91dHMvIGRpcmVjdG9y
eS4gVW5uZWVkZWQgZG9jcworKiBSZW1vdmVkIHNhbXBsZXMvIGRpcmVjdG9yeS4KKyogQWRkZWQg
b3BlbnZyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ouIE1hbnVhbGx5IGdlbmVyYXRlZCBmb3Ig
WGNvZGUgYnVpbGQuCisqIFJlcGxhY2VkIHRhYnMgYnkgd2hpdGVzcGFjZXMgdG8gbWFrZSBjaGVj
ay13ZWJraXQtc3R5bGUgaGFwcHkuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmI2YjBhYzAxNzVhNmUzNGI1MzkwMmY0ZjVmNGEyMjg5YzE5NzE4YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKQEAgLTAs
MCArMSw5IEBACitzZXQoQ01BS0VfU1lTVEVNX05BTUUgTGludXgpCisKK3NldChDTUFLRV9DX0NP
TVBJTEVSIGNsYW5nKQorc2V0KENNQUtFX0NYWF9DT01QSUxFUiBjbGFuZysrKQorCitzZXQoQ01B
S0VfRklORF9ST09UX1BBVEhfTU9ERV9QUk9HUkFNIE5FVkVSKQorc2V0KENNQUtFX0ZJTkRfUk9P
VF9QQVRIX01PREVfTElCUkFSWSBPTkxZKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVf
SU5DTFVERSBPTkxZKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUEFDS0FHRSBPTkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NzZlNDlhNmFjNTMxMDgwYzVmNDMwM2U1YzE1Y2Y5M2UxMWZhMmQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKQEAgLTAsMCArMSwz
Nzc3IEBACisjcHJhZ21hIG9uY2UKKworLy8gb3BlbnZyLmgKKy8vPT09PT09PT09IENvcHlyaWdo
dCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworLy8gRHluYW1pY2FsbHkgZ2VuZXJh
dGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5LgorCisjaWZuZGVmIF9P
UEVOVlJfQVBJCisjZGVmaW5lIF9PUEVOVlJfQVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKwor
CisKKy8vIHZydHlwZXMuaAorI2lmbmRlZiBfSU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lO
Q0xVREVfVlJUWVBFU19ICisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVp
cmluZyB2dWxrYW4uaAorc3RydWN0IFZrRGV2aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmlj
ZV9UOworc3RydWN0IFZrSW5zdGFuY2VfVDsKK3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndh
cmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEy
UmVzb3VyY2U7CitzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sK
KyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJl
SGFuZGxlX3Q7Cit0eXBlZGVmIGludDMyX3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xV
SW50X3Q7CisKKy8vIHJpZ2h0LWhhbmRlZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0
byB0aGUgcmlnaHQKKy8vIC16IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVu
aXQgaXMgIG1ldGVycworc3RydWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNd
WzRdOworfTsKKworc3RydWN0IEhtZE1hdHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRd
OworfTsKKworc3RydWN0IEhtZFZlY3RvcjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9Owor
CitzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVj
dCBIbWRWZWN0b3IzZF90Cit7CisgICAgICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1k
VmVjdG9yMl90Cit7CisgICAgICAgZmxvYXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJu
aW9uX3QKK3sKKyAgICAgICBkb3VibGUgdywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xv
cl90Cit7CisgICAgICAgZmxvYXQgciwgZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QK
K3sKKyAgICAgICBIbWRWZWN0b3IzX3QgdkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRS
ZWN0Ml90Cit7CisgICAgICAgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3Rv
cjJfdCB2Qm90dG9tUmlnaHQ7Cit9OworCisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlz
dG9ydGlvbiBVVnMgZm9yIGVhY2ggY29sb3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAg
dG8gMSB3aXRoIDAsMCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2Ug
cmVuZGVyIHRhcmdldC4gVGhlIDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4g
Ki8KK3N0cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVk
WzJdOworICAgICAgIGZsb2F0IHJmR3JlZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOwor
fTsKKworZW51bSBFVlJFeWUKK3sKKyAgICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1Jp
Z2h0ID0gMQorfTsKKworZW51bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9E
aXJlY3RYID0gMCwgLy8gSGFuZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJl
VHlwZV9PcGVuR0wgPSAxLCAgLy8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3Ig
YW4gT3BlbkdMIHJlbmRlciBidWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncwor
ICAgICAgIFRleHR1cmVUeXBlX1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8g
YSBWUlZ1bGthblRleHR1cmVEYXRhX3Qgc3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9T
dXJmYWNlID0gMywgLy8gSGFuZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJ
T1N1cmZhY2VSZWYKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUg
aXMgYSBwb2ludGVyIHRvIGEgRDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51
bSBFQ29sb3JTcGFjZQoreworICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFz
c3VtZXMgJ2dhbW1hJyBmb3IgOC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2Ug
J2xpbmVhcicuICBUaGlzIG1pcnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdC
IHZhcmlhbnRzLgorICAgICAgIENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJl
IGRhdGEgY2FuIGJlIGRpc3BsYXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFu
eSBjb252ZXJzaW9uIChhLmsuYS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xv
clNwYWNlX0xpbmVhciA9IDIsICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNv
bnZlcnRlZCB0byBhIGxpbmVhciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252
ZXJzaW9uIGFsZ29yaXRobS4KK307CisKK3N0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lk
KiBoYW5kbGU7IC8vIFNlZSBFVGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVU
ZXh0dXJlVHlwZSBlVHlwZTsKKyAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisK
Ky8vIEhhbmRsZSB0byBhIHNoYXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5l
ZCB1c2luZyBPcGVuU2hhcmVkUmVzb3VyY2UpLgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0
dXJlSGFuZGxlX3Q7CisjZGVmaW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAg
ICgodnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAor
eworICAgICAgIFRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAg
ICA9IDEsCisKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAg
ICAgID0gMTAwLAorICAgICAgIFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2Ug
ICAgICAgPSAxMDEsCisKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMjAwLAorICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdf
T3V0T2ZSYW5nZSAgICAgICAgICAgICAgPSAyMDEsCit9OworCit0eXBlZGVmIHVpbnQzMl90IERy
aXZlcklkX3Q7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga19uRHJpdmVyTm9uZSA9IDB4RkZGRkZG
RkY7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNp
emUgPSAzMjc2ODsKKworLyoqIFVzZWQgdG8gcGFzcyBkZXZpY2UgSURzIHRvIEFQSSBjYWxscyAq
LwordHlwZWRlZiB1aW50MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3N0YXRpYyBjb25zdCB1
aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4X0htZCA9IDA7CitzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bk1heFRyYWNrZWREZXZpY2VDb3VudCA9IDE2Oworc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhPdGhlciA9IDB4RkZGRkZGRkU7CitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleEludmFsaWQgPSAweEZGRkZGRkZGOwor
CisvKiogRGVzY3JpYmVzIHdoYXQga2luZCBvZiBvYmplY3QgaXMgYmVpbmcgdHJhY2tlZCBhdCBh
IGdpdmVuIElEICovCitlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBUcmFja2Vk
RGV2aWNlQ2xhc3NfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo
ZSBJRCB3YXMgbm90IHZhbGlkLgorICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAxLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGVhZC1Nb3VudGVkIERpc3BsYXlz
CisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIgPSAyLCAgICAgICAgICAgICAg
ICAgICAgIC8vIFRyYWNrZWQgY29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3Nf
R2VuZXJpY1RyYWNrZXIgPSAzLCAgICAgICAgICAgICAgLy8gR2VuZXJpYyB0cmFja2Vycywgc2lt
aWxhciB0byBjb250cm9sbGVycworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1Jl
ZmVyZW5jZSA9IDQsICAgICAgIC8vIENhbWVyYSBhbmQgYmFzZSBzdGF0aW9ucyB0aGF0IHNlcnZl
IGFzIHRyYWNraW5nIHJlZmVyZW5jZSBwb2ludHMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3Nf
RGlzcGxheVJlZGlyZWN0ID0gNSwgICAgICAgICAgICAgIC8vIEFjY2Vzc29yaWVzIHRoYXQgYXJl
bid0IG5lY2Vzc2FyaWx5IHRyYWNrZWQgdGhlbXNlbHZlcywgYnV0IG1heSByZWRpcmVjdCB2aWRl
byBvdXRwdXQgZnJvbSBvdGhlciB0cmFja2VkIGRldmljZXMKK307CisKKworLyoqIERlc2NyaWJl
cyB3aGF0IHNwZWNpZmljIHJvbGUgYXNzb2NpYXRlZCB3aXRoIGEgdHJhY2tlZCBkZXZpY2UgKi8K
K2VudW0gRVRyYWNrZWRDb250cm9sbGVyUm9sZQoreworICAgICAgIFRyYWNrZWRDb250cm9sbGVy
Um9sZV9JbnZhbGlkID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElu
dmFsaWQgdmFsdWUgZm9yIGNvbnRyb2xsZXIgdHlwZQorICAgICAgIFRyYWNrZWRDb250cm9sbGVy
Um9sZV9MZWZ0SGFuZCA9IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBU
cmFja2VkIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxlZnQgaGFuZAorICAgICAgIFRyYWNr
ZWRDb250cm9sbGVyUm9sZV9SaWdodEhhbmQgPSAyLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBUcmFja2VkIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJpZ2h0IGhhbmQKK307CisK
KworLyoqIGRlc2NyaWJlcyBhIHNpbmdsZSBwb3NlIGZvciBhIHRyYWNrZWQgb2JqZWN0ICovCitz
dHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbURldmlj
ZVRvQWJzb2x1dGVUcmFja2luZzsKKyAgICAgICBIbWRWZWN0b3IzX3QgdlZlbG9jaXR5OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWxvY2l0eSBpbiB0cmFja2VyIHNwYWNlIGluIG0v
cworICAgICAgIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OyAgICAgICAgICAgICAgLy8g
YW5ndWxhciB2ZWxvY2l0eSBpbiByYWRpYW5zL3MgKD8pCisgICAgICAgRVRyYWNraW5nUmVzdWx0
IGVUcmFja2luZ1Jlc3VsdDsKKyAgICAgICBib29sIGJQb3NlSXNWYWxpZDsKKworICAgICAgIC8v
IFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVkIGZvciB0aGlz
IHNwb3QgaW4gdGhlIHBvc2UgYXJyYXkuCisgICAgICAgLy8gSXQgY291bGQgZ28gZnJvbSB0cnVl
IHRvIGZhbHNlIGlmIHRoZSB1c2VyIHVucGx1Z3MgdGhlIGRldmljZS4KKyAgICAgICBib29sIGJE
ZXZpY2VJc0Nvbm5lY3RlZDsKK307CisKKy8qKiBJZGVudGlmaWVzIHdoaWNoIHN0eWxlIG9mIHRy
YWNraW5nIG9yaWdpbiB0aGUgYXBwbGljYXRpb24gd2FudHMgdG8gdXNlCisqIGZvciB0aGUgcG9z
ZXMgaXQgaXMgcmVxdWVzdGluZyAqLworZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgorewor
ICAgICAgIFRyYWNraW5nVW5pdmVyc2VTZWF0ZWQgPSAwLCAgICAgICAgICAgICAgLy8gUG9zZXMg
YXJlIHByb3ZpZGVkIHJlbGF0aXZlIHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlCisgICAgICAgVHJh
Y2tpbmdVbml2ZXJzZVN0YW5kaW5nID0gMSwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJl
bGF0aXZlIHRvIHRoZSBzYWZlIGJvdW5kcyBjb25maWd1cmVkIGJ5IHRoZSB1c2VyCisgICAgICAg
VHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsICAgICAgIC8vIFBvc2VzIGFy
ZSBwcm92aWRlZCBpbiB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZGVmaW5lZCBieSB0aGUgZHJpdmVy
LiAgSXQgaGFzIFkgdXAgYW5kIGlzIHVuaWZpZWQgZm9yIGRldmljZXMgb2YgdGhlIHNhbWUgZHJp
dmVyLiBZb3UgdXN1YWxseSBkb24ndCB3YW50IHRoaXMgb25lLgorfTsKKworLy8gUmVmZXJzIHRv
IGEgc2luZ2xlIGNvbnRhaW5lciBvZiBwcm9wZXJ0aWVzCit0eXBlZGVmIHVpbnQ2NF90IFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190
OworCitzdGF0aWMgY29uc3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBrX3VsSW52YWxpZFBy
b3BlcnR5Q29udGFpbmVyID0gMDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3Vu
SW52YWxpZFByb3BlcnR5VGFnID0gMDsKKworLy8gVXNlIHRoZXNlIHRhZ3MgdG8gc2V0L2dldCBj
b21tb24gdHlwZXMgYXMgc3RydWN0IHByb3BlcnRpZXMKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyA9IDE7CitzdGF0aWMgY29uc3QgUHJvcGVydHlU
eXBlVGFnX3Qga191bkludDMyUHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5VaW50NjRQcm9wZXJ0eVRhZyA9IDM7CitzdGF0aWMgY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3Qga191bkJvb2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3Qga191blN0cmluZ1Byb3BlcnR5VGFnID0gNTsKKworc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMg
Y29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsK
K3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFn
ID0gMjI7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjRQcm9w
ZXJ0eVRhZyA9IDIzOworCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhpZGRl
bkFyZWFQcm9wZXJ0eVRhZyA9IDMwOworCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qg
a191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOwor
CisKKy8qKiBFYWNoIGVudHJ5IGluIHRoaXMgZW51bSByZXByZXNlbnRzIGEgcHJvcGVydHkgdGhh
dCBjYW4gYmUgcmV0cmlldmVkIGFib3V0IGEKKyogdHJhY2tlZCBkZXZpY2UuIE1hbnkgZmllbGRz
IGFyZSBvbmx5IHZhbGlkIGZvciBvbmUgRVRyYWNrZWREZXZpY2VDbGFzcy4gKi8KK2VudW0gRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eQoreworICAgICAgIFByb3BfSW52YWxpZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAg
Ly8gZ2VuZXJhbCBwcm9wZXJ0aWVzIHRoYXQgYXBwbHkgdG8gYWxsIGRldmljZSBjbGFzc2VzCisg
ICAgICAgUHJvcF9UcmFja2luZ1N5c3RlbU5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAwMCwKKyAgICAgICBQcm9wX01vZGVsTnVtYmVyX1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMSwKKyAgICAgICBQcm9wX1Nlcmlh
bE51bWJlcl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMiwK
KyAgICAgICBQcm9wX1JlbmRlck1vZGVsTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAwMywKKyAgICAgICBQcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVm
YWN0dXJlck5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwNSwKKyAg
ICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgID0gMTAwNiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTAwNywKKyAgICAgICBQcm9wX0FsbFdpcmVsZXNzRG9uZ2xl
RGVzY3JpcHRpb25zX1N0cmluZyAgICAgICA9IDEwMDgsCisgICAgICAgUHJvcF9Db25uZWN0ZWRX
aXJlbGVzc0RvbmdsZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDEwMDksCisgICAgICAg
UHJvcF9EZXZpY2VJc1dpcmVsZXNzX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTAxMCwKKyAgICAgICBQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0dGVy
eVBlcmNlbnRhZ2VfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDEwMTIsIC8vIDAgaXMgZW1w
dHksIDEgaXMgZnVsbAorICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgz
NCAgICAgICAgICAgICAgPSAxMDEzLAorICAgICAgIFByb3BfRmlybXdhcmVfVXBkYXRlQXZhaWxh
YmxlX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2Fy
ZV9NYW51YWxVcGRhdGVfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTUsCisg
ICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nICAgICAgICAgICAgICA9
IDEwMTYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMTcsCisgICAgICAgUHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTgsCisgICAgICAgUHJvcF9G
UEdBVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMTksCisgICAgICAgUHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMCwKKyAgICAgICBQcm9wX1JhZGlvVmVyc2lv
bl9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMSwKKyAgICAg
ICBQcm9wX0RvbmdsZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMjIsCisgICAgICAgUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDIzLAorICAgICAgIFByb3BfQ2FuVW5pZnlDb29yZGlu
YXRlU3lzdGVtV2l0aEhtZF9Cb29sICAgICAgID0gMTAyNCwKKyAgICAgICBQcm9wX0NvbnRhaW5z
UHJveGltaXR5U2Vuc29yX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDEwMjUsCisgICAgICAg
UHJvcF9EZXZpY2VQcm92aWRlc0JhdHRlcnlTdGF0dXNfQm9vbCAgICAgICAgICAgICAgPSAxMDI2
LAorICAgICAgIFByb3BfRGV2aWNlQ2FuUG93ZXJPZmZfQm9vbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDI3LAorICAgICAgIFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdU
YXJnZXRfU3RyaW5nICAgICAgICAgICAgICA9IDEwMjgsCisgICAgICAgUHJvcF9EZXZpY2VDbGFz
c19JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyOSwK
KyAgICAgICBQcm9wX0hhc0NhbWVyYV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3Ry
aW5nICAgICAgICAgICAgICAgICAgID0gMTAzMSwKKyAgICAgICBQcm9wX0Zpcm13YXJlX0ZvcmNl
VXBkYXRlUmVxdWlyZWRfQm9vbCAgICAgID0gMTAzMiwKKyAgICAgICBQcm9wX1ZpdmVTeXN0ZW1C
dXR0b25GaXhSZXF1aXJlZF9Cb29sICAgICAgICAgICAgICA9IDEwMzMsCisgICAgICAgUHJvcF9Q
YXJlbnREcml2ZXJfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MzQsCisgICAgICAgUHJvcF9SZXNvdXJjZVJvb3RfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwMzUsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVu
aXF1ZSB0byBUcmFja2VkRGV2aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNp
bmNlVlN5bmNfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAg
UHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEs
CisgICAgICAgUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJy
ZW50VW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAK
KyAgICAgICBQcm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA1LCAKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3Bf
Qm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAwOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1D
U2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAg
ICAgICBQcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAxMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJp
bmcgICAgICAgICAgICAgID0gMjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRf
U3RyaW5nICAgICAgICAgICAgID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xh
bXBfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3Bf
RWRpZFByb2R1Y3RJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDE1LAorICAgICAgIFByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE2LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxh
eUdDT2Zmc2V0X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgs
CisgICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE5LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdD
SW1hZ2VfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisg
ICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAyMiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0Nl
bnRlclJpZ2h0VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0
LAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0
ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJh
RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAg
ICBQcm9wX0NhbWVyYUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIw
MjgsCisgICAgICAgUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAyOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lv
bl9VaW50NjQgICAgICAgICAgICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2Fy
ZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3Bf
QXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAor
ICAgICAgIFByb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAg
ICAgICA9IDIwMzMsCisgICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3
RGVncmVlc19GbG9hdCA9IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVs
ZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNz
ZWRfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAg
IFByb3BfRGlzcGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDM3LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhl
aWdodF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisg
ICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjA0MSwKKyAgICAgICBQcm9wX1NlY29uZHNGcm9tUGhvdG9uc1RvVmJsYW5rX0Zs
b2F0ICAgICAgICAgICAgICA9IDIwNDIsCisgICAgICAgUHJvcF9Ecml2ZXJEaXJlY3RNb2RlU2Vu
ZHNWc3luY0V2ZW50c19Cb29sICAgICAgID0gMjA0MywKKyAgICAgICBQcm9wX0Rpc3BsYXlEZWJ1
Z01vZGVfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ0LAorICAg
ICAgIFByb3BfR3JhcGhpY3NBZGFwdGVyTHVpZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDQ1LAorICAgICAgIFByb3BfRHJpdmVyUHJvdmlkZWRDaGFwZXJvbmVQYXRoX1N0
cmluZyAgICAgICAgICAgICAgPSAyMDQ4LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFy
ZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0
dGFjaGVkRGV2aWNlSWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwK
KyAgICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzAwMSwKKyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9m
IHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVy
biB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhp
czJUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAz
MDA0LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAg
ICAgICBQcm9wX0F4aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxl
ckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBl
IEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0lu
dDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlz
IG9mIHR5cGUgRVRyYWNrZWRDb250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0
aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisg
ICAgICAgUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAg
ICAgPSA0MDAwLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICA9IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3Jl
ZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9m
Vmlld0JvdHRvbURlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAg
ICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0
MDA0LAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAg
ICAgICAgID0gNDAwNSwKKyAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0
aWVzIHRoYXQgYXJlIHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAg
ICAgICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDUwMDAsIC8vIERFUFJFQ0FURUQuIFZhbHVlIG5vdCByZWZlcmVuY2Vk
LiBOb3cgZXhwZWN0ZWQgdG8gYmUgcGFydCBvZiBpY29uIHBhdGggcHJvcGVydGllcy4KKyAgICAg
ICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNTAwMSwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Ig
c3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5k
IDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hp
bmdfU3RyaW5nICAgICAgICAgICAgICA9IDUwMDIsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmls
ZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIg
Zm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8ge2RyaXZlcn0v
aWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5p
bWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9
IDUwMDQsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBp
Y29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBm
b3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlBbGVydF9TdHJp
bmcgICAgICAgICAgICAgID0gNTAwNSwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAt
IFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVh
ZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDYsIC8vIHtkcml2ZXJ9
L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFu
aW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICA9IDUwMDcsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRp
YyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngz
MiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgPSA1MDA4LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2Zp
bGVuYW1lIC0gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMy
IGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGll
cyB0aGF0IGFyZSB1c2VkIGJ5IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9u
cworICAgICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTEwMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0Jp
bmFyeV9FbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8g
UHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNv
bmZpZ1BhdGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAs
CisgICAgICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDYwMDEsCisgICAgICAgUHJvcF9IYXNEaXNwbGF5Q29tcG9uZW50
X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDAyLAorICAgICAgIFByb3BfSGFz
Q29udHJvbGxlckNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MDAzLAorICAg
ICAgIFByb3BfSGFzQ2FtZXJhQ29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA2MDA0LAorICAgICAgIFByb3BfSGFzRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudF9Cb29s
ICAgICAgICAgICAgICA9IDYwMDUsCisgICAgICAgUHJvcF9IYXNWaXJ0dWFsRGlzcGxheUNvbXBv
bmVudF9Cb29sICAgICAgICAgICAgICA9IDYwMDYsCisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBm
cmVlIHRvIGV4cG9zZSBwcml2YXRlIGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24K
KyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAg
ICAgICAgPSAxMDAwMCwKKyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAg
ICAgICAgICAgICAgICAgICAgID0gMTA5OTksCit9OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5
IHdpbGwgZXZlciBiZSBsb25nZXIgdGhhbiB0aGlzIGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVp
bnQzMl90IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2Vk
IHRvIHJldHVybiBlcnJvcnMgdGhhdCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8K
K2VudW0gRVRyYWNrZWRQcm9wZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2Vz
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBU
cmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwK
KyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAg
PSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMywKKyAgICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3Bl
cnR5IChhbmQgbWF5IG5vdCBldmVyKS4KKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3Vs
ZE5vdENvbnRhY3RTZXJ2ZXIgICAgICAgICAgICAgID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9W
YWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgICAgICAgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0
cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoICAgICAgID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9O
b3RZZXRBdmFpbGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJv
cGVydHkgdmFsdWUgaXNuJ3Qga25vd24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBh
Z2FpbiBsYXRlci4KKyAgICAgICBUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAg
ICAgICAgICAgICAgPSAxMCwKKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAg
ICAgICAgICAgICAgICAgICAgPSAxMSwKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9u
IHRvIGNvbnRyb2wgd2hhdCBwYXJ0IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNl
ZCBpbiB0aGUKKyogZnJhbWUgYnVmZmVyLiAqLworc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7
CisgICAgICAgZmxvYXQgdU1pbiwgdk1pbjsKKyAgICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsK
KworLyoqIEFsbG93cyBzcGVjaWZ5aW5nIHBvc2UgdXNlZCB0byByZW5kZXIgcHJvdmlkZWQgc2Nl
bmUgdGV4dHVyZSAoaWYgZGlmZmVyZW50IGZyb20gdmFsdWUgcmV0dXJuZWQgYnkgV2FpdEdldFBv
c2VzKS4gKi8KK3N0cnVjdCBWUlRleHR1cmVXaXRoUG9zZV90IDogcHVibGljIFRleHR1cmVfdAor
eworICAgICAgIEhtZE1hdHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsgLy8gQWN0
dWFsIHBvc2UgdXNlZCB0byByZW5kZXIgc2NlbmUgdGV4dHVyZXMuCit9OworCisvKiogQWxsb3dz
IHRoZSBhcHBsaWNhdGlvbiB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBi
eSB0aGUgY29tcG9zaXRvciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRG
bGFncworeworICAgICAgIC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVy
ZWQgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3Jy
ZWN0aW9uIGFwcGxpZWQuCisgICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAg
Ly8gQXBwIHN1Ym1pdHMgZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMg
ZGlzdG9ydGlvbiBhbHJlYWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1h
Z2VzIGFwcGVhcgorICAgICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJl
cnJhdGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUg
ZGF0YSByZXR1cm5lZCBieQorICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0
aW9uKCkgdG8gYXBwbHkgdGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1h
Z2VzIGJlZm9yZSBjYWxsaW5nIFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlv
bkFscmVhZHlBcHBsaWVkID0gMHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50
ZXIgcGFzc2VkIGluIGlzIGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGlu
IE9wZW5HTCkgdGhlbiBzZXQgdGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZl
ciA9IDB4MDIsCisKKyAgICAgICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVk
ID0gMHgwNCwKKworICAgICAgIC8vIFNldCB0byBpbmRpY2F0ZSB0aGF0IHBUZXh0dXJlIGlzIGEg
cG9pbnRlciB0byBhIFZSVGV4dHVyZVdpdGhQb3NlX3QuCisgICAgICAgU3VibWl0X1RleHR1cmVX
aXRoUG9zZSA9IDB4MDgsCit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxr
YW4gdGV4dHVyZXMgdG8gSVZSQ29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwg
T3BlblZSX1NodXRkb3duIGJlZm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0
cnVjdCBWUlZ1bGthblRleHR1cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsg
Ly8gVmtJbWFnZQorICAgICAgIFZrRGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNp
Y2FsRGV2aWNlX1QgKm1fcFBoeXNpY2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9w
SW5zdGFuY2U7CisgICAgICAgVmtRdWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBt
X25RdWV1ZUZhbWlseUluZGV4OworICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQs
IG1fbkZvcm1hdCwgbV9uU2FtcGxlQ291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3Ig
cGFzc2luZyBEM0QxMiB0ZXh0dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1
cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3Vy
Y2VzLiAqLworc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291
cmNlICptX3BSZXNvdXJjZTsKKyAgICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRR
dWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2Yg
dGhlIG92ZXJhbGwgc3lzdGVtIG9yIHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQor
eworICAgICAgIFZSU3RhdGVfVW5kZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAw
LAorICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGlu
Z19BbGVydCA9IDIsCisgICAgICAgVlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9S
ZWFkeV9BbGVydCA9IDQsCisgICAgICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJT
dGF0ZV9TdGFuZGJ5ID0gNiwKKyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9
OworCisvKiogVGhlIHR5cGVzIG9mIGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdo
YXQgdGhlIHBhcmFtZXRlcnMgbWVhbiBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJF
dmVudFR5cGUKK3sKKyAgICAgICBWUkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9U
cmFja2VkRGV2aWNlQWN0aXZhdGVkICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50
X1RyYWNrZWREZXZpY2VEZWFjdGl2YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1Ry
YWNrZWREZXZpY2VVcGRhdGVkICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1Ry
YWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAg
ICAgIFZSRXZlbnRfSXBkQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDUsCisgICAgICAgVlJFdmVudF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAg
ICAgPSAxMDYsCisgICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAg
ICAgICAgPSAxMDcsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAg
ICAgPSAxMDgsCisgICAgICAgVlJFdmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAg
ICAgICAgPSAxMDksCisgICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAg
ICAgICAgID0gMTEwLAorICAgICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTExLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NEaXNjb25uZWN0
ICAgICAgICAgICAgICAgICAgICAgPSAxMTIsCisgICAgICAgVlJFdmVudF9XaXJlbGVzc1JlY29u
bmVjdCAgICAgICAgICAgICAgICAgICAgID0gMTEzLAorCisgICAgICAgVlJFdmVudF9CdXR0b25Q
cmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMg
Y29udHJvbGxlcgorICAgICAgIFZSRXZlbnRfQnV0dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDIwMSwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9C
dXR0b25Ub3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRh
dGEgaXMgY29udHJvbGxlcgorICAgICAgIFZSRXZlbnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDIwMywgLy8gZGF0YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBW
UkV2ZW50X01vdXNlTW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAs
IC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMSwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZl
bnRfTW91c2VCdXR0b25VcCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0
YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAzMDMsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRf
Rm9jdXNMZWF2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRh
dGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfU2Nyb2xsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAzMDUsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2
ZW50X1RvdWNoUGFkTW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0
YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgID0gMzA3LCAvLyBkYXRhIGlzIG92ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAg
ICAgVlJFdmVudF9JbnB1dEZvY3VzQ2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMCwg
Ly8gZGF0YSBpcyBwcm9jZXNzIERFUFJFQ0FURUQKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNS
ZWxlYXNlZCAgICAgICAgICAgICAgICAgICAgID0gNDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQ
UkVDQVRFRAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA0MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVG
b2N1c0dhaW5lZCAgICAgICAgICAgICAgICAgICAgID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MK
KyAgICAgICBWUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDQw
NCwgLy8gZGF0YSBpcyBwcm9jZXNzIC0gVGhlIEFwcCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2Vu
ZSBjaGFuZ2VkICh1c3VhbGx5IHRvIG9yIGZyb20gdGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJF
dmVudF9TY2VuZUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRh
IGlzIHByb2Nlc3MgLSBOZXcgYXBwIGdvdCBhY2Nlc3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAg
ICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA0MDYsIC8v
IGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFy
eVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsIC8vIGRhdGEgaXMgcHJvY2VzcworCisgICAgICAgVlJF
dmVudF9IaWRlUmVuZGVyTW9kZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQg
dG8gdGhlIHNjZW5lIGFwcGxpY2F0aW9uIHRvIHJlcXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMg
dGVtcG9yYXJpbHkKKyAgICAgICBWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAg
ICAgICAgICA9IDQxMSwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVz
dCByZXN0b3JpbmcgcmVuZGVyIG1vZGVsIHZpc2liaWxpdHkKKworICAgICAgIFZSRXZlbnRfT3Zl
cmxheVNob3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwLAorICAgICAgIFZSRXZl
bnRfT3ZlcmxheUhpZGRlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMSwKKyAgICAg
ICBWUkV2ZW50X0Rhc2hib2FyZEFjdGl2YXRlZCAgICAgICAgICAgICAgICAgICAgID0gNTAyLAor
ICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQgICAgICAgICAgICAgID0gNTAzLAor
ICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkVGh1bWJTZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQs
IC8vIFNlbnQgdG8gdGhlIG92ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAg
IFZSRXZlbnRfRGFzaGJvYXJkUmVxdWVzdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDUsIC8v
IFNlbnQgdG8gdGhlIG92ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZS
RXZlbnRfUmVzZXREYXNoYm9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDYsIC8v
IFNlbmQgdG8gdGhlIG92ZXJsYXkgbWFuYWdlcgorICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBk
YXNoYm9hcmQgdG8gcmVuZGVyIGEgdG9hc3QgLSBkYXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQK
KyAgICAgICBWUkV2ZW50X0ltYWdlTG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDUwOCwgLy8gU2VudCB0byBvdmVybGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBT
ZXRPdmVybGF5RnJvbUZpbGUgY2FsbCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9T
aG93S2V5Ym9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8g
a2V5Ym9hcmQgcmVuZGVyZXIgaW4gdGhlIGRhc2hib2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBW
UkV2ZW50X0hpZGVLZXlib2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxMCwgLy8g
U2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAg
ICAgICBWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNl
bnQgdG8gYW4gb3ZlcmxheSB3aGVuIElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxs
ZWQgb24gaXQKKyAgICAgICBWUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAg
ICAgICA9IDUxMiwgLy8gU2VuZCB0byBhbiBvdmVybGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQg
Zm9jdXMgYW5kIElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRo
aW5nIGVsc2UKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUx
MywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwK
KyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZEd1aWRlQnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1
LAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCAgICAgICAgICAgICAgICAgICAg
ID0gNTE2LCAvLyBTY3JlZW5zaG90IGJ1dHRvbiBjb21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJk
IHNob3VsZCByZXF1ZXN0IGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJs
YXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBs
b2FkCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAg
PSA1MTgsCisKKyAgICAgICAvLyBTY3JlZW5zaG90IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVz
dFNjcmVlbnNob3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkg
dnJjbGllbnQgYXBwbGljYXRpb24gdG8gY29tcG9zaXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAor
ICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRha2VuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDUyMSwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0
aGF0IHRoZSBzY3JlZW5zaG90IGhhcyBiZWVuIHRha2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5z
aG90RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNv
bXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRv
IGJlIHRha2VuCisgICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAg
ICAgICAgICAgID0gNTIzLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0
aGF0IGEgY29tcGxldGVkIHNjcmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRf
U2NyZWVuc2hvdFByb2dyZXNzVG9EYXNoYm9hcmQgICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29t
cG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMg
c3VibWl0dGVkCisKKyAgICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2Vk
ICAgICAgID0gNTI1LAorCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA2MDAsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25f
SGlkZGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRf
Tm90aWZpY2F0aW9uX0JlZ2luSW50ZXJhY3Rpb24gICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVu
dF9Ob3RpZmljYXRpb25fRGVzdHJveWVkICAgICAgICAgICAgICAgICAgICAgPSA2MDMsCisKKyAg
ICAgICBWUkV2ZW50X1F1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA3MDAsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vz
c1F1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMSwgLy8g
ZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAg
ICAgICAgICAgICAgICAgICAgPSA3MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZl
bnRfUXVpdEFja25vd2xlZGdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMywgLy8g
ZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNzA0LCAvLyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQg
dGhhdCBTdGVhbVZSIHNodXQgZG93bgorCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFz
Q2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVy
b25lVW5pdmVyc2VIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50
X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MDIsCisgICAgICAg
VlJFdmVudF9DaGFwZXJvbmVTZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODAzLAorICAgICAg
IFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDgwNCwKKworICAgICAgIFZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAg
ICAgICA9IDgyMCwKKworICAgICAgIFZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2Vk
ICAgICAgICAgICAgICA9IDg1MCwKKyAgICAgICBWUkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNo
YW5nZWQgICAgICAgICAgICAgID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0
dGluZ0hhc0NoYW5nZWQgICAgICAgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0
aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRT
ZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0
aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDg1NSwKKyAgICAgICBWUkV2ZW50X0VuYWJs
ZUhvbWVBcHBTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU2LAorCisgICAgICAgVlJFdmVudF9TdGF0
dXNVcGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAorCisgICAg
ICAgVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDAwLAorCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAg
ICAgICAgICAgICAgICA9IDExMDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlz
aGVkICAgICAgICAgICAgICAgICAgICAgPSAxMTAxLAorCisgICAgICAgVlJFdmVudF9LZXlib2Fy
ZENsb3NlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAorICAgICAg
IFZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEyMDIsIC8vIFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtl
eWJvYXJkCisKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAg
ICAgICAgICAgID0gMTMwMCwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFi
b3J0ZWQgICAgICAgICAgICAgID0gMTMwMSwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJh
bnNpdGlvbk5ld0FwcFN0YXJ0ZWQgICAgICAgPSAxMzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGlj
YXRpb25MaXN0VXBkYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvbk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEzMDQsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBM
YXVuY2hDb21wbGV0ZSA9IDEzMDUsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzQ29ubmVjdGVkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDYsCisgICAgICAgVlJFdmVudF9Q
cm9jZXNzRGlzY29ubmVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEz
MDcsCisKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAg
ICAgICAgID0gMTQwMCwKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlk
ZGVuICAgICAgICAgICAgICA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBl
cm9uZUJvdW5kc1Nob3duICAgICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2
ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZl
bnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVu
dF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50
X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRf
VHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50
X1BlcmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2
ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAg
VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAg
ICAgICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0g
MTY1MCwKKyAgICAgICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5Q2xvc2VSZXF1ZXN0ZWQgICAgICAg
PSAxNjUxLAorICAgICAgIAorICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHBy
aXZhdGUgZXZlbnRzIGluIHRoaXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgVlJFdmVudF9WZW5k
b3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCAgICAgICA9IDEwMDAwLAorICAgICAgIFZSRXZlbnRf
VmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kICAgICAgICAgICAgICA9IDE5OTk5LAorfTsKKwor
CisvKiogTGV2ZWwgb2YgSG1kIGFjdGl2aXR5ICovCisvLyBVc2VySW50ZXJhY3Rpb25fVGltZW91
dCBtZWFucyB0aGUgZGV2aWNlIGlzIGluIHRoZSBwcm9jZXNzIG9mIHRpbWluZyBvdXQuCisvLyBJ
blVzZSA9ICgga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gfHwga19FRGV2
aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCApCisvLyBWUkV2ZW50X1Ry
YWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkIGZpcmVzIHdoZW4gdGhlIGRldmljZXMg
dHJhbnNpdGlvbnMgZnJvbSBTdGFuZGJ5IC0+IFVzZXJJbnRlcmFjdGlvbiBvciBJZGxlIC0+IFVz
ZXJJbnRlcmFjdGlvbi4KKy8vIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVu
ZGVkIGZpcmVzIHdoZW4gdGhlIGRldmljZXMgdHJhbnNpdGlvbnMgZnJvbSBVc2VySW50ZXJhY3Rp
b25fVGltZW91dCAtPiBJZGxlCitlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7ICAgICAgIAor
ICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAg
IGtfRURldmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDEwIHNlY29uZHMK
KyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEFjdGl2aXR5IChtb3ZlbWVudCBvciBwcm94IHNlbnNv
cikgaXMgaGFwcGVuaW5nIG5vdyAgICAgICAKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVs
X1VzZXJJbnRlcmFjdGlvbl9UaW1lb3V0ID0gMiwgICAgICAgICAgICAgIC8vIE5vIGFjdGl2aXR5
IGZvciB0aGUgbGFzdCAwLjUgc2Vjb25kcworICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxf
U3RhbmRieSA9IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
SWRsZSBmb3IgYXQgbGVhc3QgNSBzZWNvbmRzIChjb25maWd1cmFibGUgaW4gU2V0dGluZ3MgLT4g
UG93ZXIgTWFuYWdlbWVudCkKK307CisKKworLyoqIFZSIGNvbnRyb2xsZXIgYnV0dG9uIGFuZCBh
eGlzIElEcyAqLworZW51bSBFVlJCdXR0b25JZAoreworICAgICAgIGtfRUJ1dHRvbl9TeXN0ZW0g
ICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVu
dSAgICAgICA9IDEsCisgICAgICAga19FQnV0dG9uX0dyaXAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX0xlZnQgICAgICAgICAgICAgICAgICAg
ICA9IDMsCisgICAgICAga19FQnV0dG9uX0RQYWRfVXAgICAgICAgICAgICAgICAgICAgICA9IDQs
CisgICAgICAga19FQnV0dG9uX0RQYWRfUmlnaHQgICAgICAgICAgICAgID0gNSwKKyAgICAgICBr
X0VCdXR0b25fRFBhZF9Eb3duICAgICAgICAgICAgICAgICAgICAgPSA2LAorICAgICAgIGtfRUJ1
dHRvbl9BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcsCisgICAgICAgCisg
ICAgICAga19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciAgID0gMzEsCisKKyAgICAgICBrX0VCdXR0
b25fQXhpczAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMiwKKyAgICAgICBrX0VCdXR0
b25fQXhpczEgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMywKKyAgICAgICBrX0VCdXR0
b25fQXhpczIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzNCwKKyAgICAgICBrX0VCdXR0
b25fQXhpczMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzNSwKKyAgICAgICBrX0VCdXR0
b25fQXhpczQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzNiwKKworICAgICAgIC8vIGFs
aWFzZXMgZm9yIHdlbGwga25vd24gY29udHJvbGxlcnMKKyAgICAgICBrX0VCdXR0b25fU3RlYW1W
Ul9Ub3VjaHBhZCAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMCwKKyAgICAgICBrX0VCdXR0b25fU3Rl
YW1WUl9UcmlnZ2VyICAgICAgID0ga19FQnV0dG9uX0F4aXMxLAorCisgICAgICAga19FQnV0dG9u
X0Rhc2hib2FyZF9CYWNrICAgICAgID0ga19FQnV0dG9uX0dyaXAsCisKKyAgICAgICBrX0VCdXR0
b25fTWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNjQKK307CisKK2lubGluZSB1aW50
NjRfdCBCdXR0b25NYXNrRnJvbUlkKCBFVlJCdXR0b25JZCBpZCApIHsgcmV0dXJuIDF1bGwgPDwg
aWQ7IH0KKworLyoqIHVzZWQgZm9yIGNvbnRyb2xsZXIgYnV0dG9uIGV2ZW50cyAqLworc3RydWN0
IFZSRXZlbnRfQ29udHJvbGxlcl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJC
dXR0b25JZCBlbnVtCit9OworCisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRz
IGluIG92ZXJsYXkgc3BhY2UgKi8KK2VudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBWUk1v
dXNlQnV0dG9uX0xlZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAx
LAorICAgICAgIFZSTW91c2VCdXR0b25fUmlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHgwMDAyLAorICAgICAgIFZSTW91c2VCdXR0b25fTWlkZGxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMHgwMDA0LAorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVk
IG1vdXNlIGV2ZW50cyBpbiBvdmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90
Cit7CisgICAgICAgZmxvYXQgeCwgeTsgLy8gY28tb3JkcyBhcmUgaW4gR0wgc3BhY2UsIGJvdHRv
bSBsZWZ0IG9mIHRoZSB0ZXh0dXJlIGlzIDAsMAorICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8g
RVZSTW91c2VCdXR0b24gZW51bQorfTsKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSB3
aGVlbCBzY3JvbGwgaW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QK
K3sKKyAgICAgICBmbG9hdCB4ZGVsdGEsIHlkZWx0YTsgLy8gbW92ZW1lbnQgaW4gZnJhY3Rpb24g
b2YgdGhlIHBhZCB0cmF2ZXJzZWQgc2luY2UgbGFzdCBkZWx0YSwgMS4wIGZvciBhIGZ1bGwgc3dp
cGUKKyAgICAgICB1aW50MzJfdCByZXBlYXRDb3VudDsKK307CisKKy8qKiB3aGVuIGluIG1vdXNl
IGlucHV0IG1vZGUgeW91IGNhbiByZWNlaXZlIGRhdGEgZnJvbSB0aGUgdG91Y2hwYWQsIHRoZXNl
IGV2ZW50cyBhcmUgb25seSBzZW50IGlmIHRoZSB1c2VycyBmaW5nZXIKKyAgIGlzIG9uIHRoZSB0
b3VjaHBhZCAob3IganVzdCByZWxlYXNlZCBmcm9tIGl0KSAKKyoqLworc3RydWN0IFZSRXZlbnRf
VG91Y2hQYWRNb3ZlX3QKK3sKKyAgICAgICAvLyB0cnVlIGlmIHRoZSB1c2VycyBmaW5nZXIgaXMg
ZGV0ZWN0ZWQgb24gdGhlIHRvdWNoIHBhZAorICAgICAgIGJvb2wgYkZpbmdlckRvd247CisKKyAg
ICAgICAvLyBIb3cgbG9uZyB0aGUgZmluZ2VyIGhhcyBiZWVuIGRvd24gaW4gc2Vjb25kcworICAg
ICAgIGZsb2F0IGZsU2Vjb25kc0ZpbmdlckRvd247CisKKyAgICAgICAvLyBUaGVzZSB2YWx1ZXMg
aW5kaWNhdGUgdGhlIHN0YXJ0aW5nIGZpbmdlciBwb3NpdGlvbiAoc28geW91IGNhbiBkbyBzb21l
IGJhc2ljIHN3aXBlIHN0dWZmKQorICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKKyAgICAgICBm
bG9hdCBmVmFsdWVZRmlyc3Q7CisKKyAgICAgICAvLyBUaGlzIGlzIHRoZSByYXcgc2FtcGxlZCBj
b29yZGluYXRlIHdpdGhvdXQgZGVhZHpvbmluZworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7Cisg
ICAgICAgZmxvYXQgZlZhbHVlWVJhdzsKK307CisKKy8qKiBub3RpZmljYXRpb24gcmVsYXRlZCBl
dmVudHMuIERldGFpbHMgd2lsbCBzdGlsbCBjaGFuZ2UgYXQgdGhpcyBwb2ludCAqLworc3RydWN0
IFZSRXZlbnRfTm90aWZpY2F0aW9uX3QKK3sKKyAgICAgICB1aW50NjRfdCB1bFVzZXJWYWx1ZTsK
KyAgICAgICB1aW50MzJfdCBub3RpZmljYXRpb25JZDsKK307CisKKy8qKiBVc2VkIGZvciBldmVu
dHMgYWJvdXQgcHJvY2Vzc2VzICovCitzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sKKyAgICAg
ICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJvb2wgYkZv
cmNlZDsKK307CisKKworLyoqIFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAq
Lworc3RydWN0IFZSRXZlbnRfT3ZlcmxheV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhh
bmRsZTsKK307CisKKworLyoqIFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAq
Lworc3RydWN0IFZSRXZlbnRfU3RhdHVzX3QKK3sKKyAgICAgICB1aW50MzJfdCBzdGF0dXNTdGF0
ZTsgLy8gRVZSU3RhdGUgZW51bQorfTsKKworLyoqIFVzZWQgZm9yIGtleWJvYXJkIGV2ZW50cyAq
Ki8KK3N0cnVjdCBWUkV2ZW50X0tleWJvYXJkX3QKK3sKKyAgICAgICBjaGFyIGNOZXdJbnB1dFs4
XTsgICAgICAgLy8gVXAgdG8gMTEgYnl0ZXMgb2YgbmV3IGlucHV0CisgICAgICAgdWludDY0X3Qg
dVVzZXJWYWx1ZTsgICAgICAgLy8gUG9zc2libGUgZmxhZ3MgYWJvdXQgdGhlIG5ldyBpbnB1dAor
fTsKKworc3RydWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9
OworCitzdHJ1Y3QgVlJFdmVudF9DaGFwZXJvbmVfdAoreworICAgICAgIHVpbnQ2NF90IG1fblBy
ZXZpb3VzVW5pdmVyc2U7CisgICAgICAgdWludDY0X3QgbV9uQ3VycmVudFVuaXZlcnNlOworfTsK
KworLyoqIE5vdCBhY3R1YWxseSB1c2VkIGZvciBhbnkgZXZlbnRzICovCitzdHJ1Y3QgVlJFdmVu
dF9SZXNlcnZlZF90Cit7CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2
NF90IHJlc2VydmVkMTsKK307CisKK3N0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7
CisgICAgICAgdWludDMyX3QgbV9uRmlkZWxpdHlMZXZlbDsKK307CisKK3N0cnVjdCBWUkV2ZW50
X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAoreworICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0ZW1NZW51
OworfTsKKworc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3Qg
aGFuZGxlOworICAgICAgIHVpbnQzMl90IHR5cGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TY3Jl
ZW5zaG90UHJvZ3Jlc3NfdAoreworICAgICAgIGZsb2F0IHByb2dyZXNzOworfTsKKworc3RydWN0
IFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAg
ICAgICB1aW50MzJfdCB1bkFyZ3NIYW5kbGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9FZGl0aW5n
Q2FtZXJhU3VyZmFjZV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAg
ICB1aW50MzJfdCBuVmlzdWFsTW9kZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVy
bGF5X3QKK3sKKyAgICAgICB1aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsgLy8g
dnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBlbnVtCit9OworCitzdHJ1Y3QgVlJFdmVudF9Q
cm9wZXJ0eV90Cit7CisgICAgICAgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBjb250YWluZXI7
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworfTsKKworLyoqIE5PVEUhISEg
SWYgeW91IGNoYW5nZSB0aGlzIHlvdSBNVVNUIG1hbnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJv
cC5jcy5weSAqLwordHlwZWRlZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRfdCBy
ZXNlcnZlZDsKKyAgICAgICBWUkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAgICAg
IFZSRXZlbnRfTW91c2VfdCBtb3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9sbDsK
KyAgICAgICBWUkV2ZW50X1Byb2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90aWZp
Y2F0aW9uX3Qgbm90aWZpY2F0aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJsYXk7
CisgICAgICAgVlJFdmVudF9TdGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXlib2Fy
ZF90IGtleWJvYXJkOworICAgICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZlbnRf
Q2hhcGVyb25lX3QgY2hhcGVyb25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3Qg
cGVyZm9ybWFuY2VUZXN0OworICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRN
b3ZlOworICAgICAgIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Qb3Nl
UmVzZXQ7CisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBW
UkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBW
UkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGljYXRpb25MYXVuY2g7CisgICAgICAgVlJF
dmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgVlJFdmVu
dF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OworICAgICAgIFZSRXZlbnRfUHJvcGVy
dHlfdCBwcm9wZXJ0eTsKK30gVlJFdmVudF9EYXRhX3Q7CisKKworI2lmIGRlZmluZWQoX19saW51
eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2lu
YWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21w
YXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworLyoqIEFuIGV2
ZW50IHBvc3RlZCBieSB0aGUgc2VydmVyIHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLwor
c3RydWN0IFZSRXZlbnRfdAoreworICAgICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZl
bnRUeXBlIGVudW0KKyAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5k
ZXg7CisgICAgICAgZmxvYXQgZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEg
bXVzdCBiZSB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAg
ICAgICBWUkV2ZW50X0RhdGFfdCBkYXRhOworfTsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8
fCBkZWZpbmVkKF9fQVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworLyoq
IFRoZSBtZXNoIHRvIGRyYXcgaW50byB0aGUgc3RlbmNpbCAob3IgZGVwdGgpIGJ1ZmZlciB0byBw
ZXJmb3JtIAorKiBlYXJseSBzdGVuY2lsIChvciBkZXB0aCkga2lsbHMgb2YgcGl4ZWxzIHRoYXQg
d2lsbCBuZXZlciBhcHBlYXIgb24gdGhlIEhNRC4KKyogVGhpcyBtZXNoIGRyYXdzIG9uIGFsbCB0
aGUgcGl4ZWxzIHRoYXQgd2lsbCBiZSBoaWRkZW4gYWZ0ZXIgZGlzdG9ydGlvbi4gCisqCisqIElm
IHRoZSBITUQgZG9lcyBub3QgcHJvdmlkZSBhIHZpc2libGUgYXJlYSBtZXNoIHBWZXJ0ZXhEYXRh
IHdpbGwgYmUKKyogTlVMTCBhbmQgdW5UcmlhbmdsZUNvdW50IHdpbGwgYmUgMC4gKi8KK3N0cnVj
dCBIaWRkZW5BcmVhTWVzaF90Cit7CisgICAgICAgY29uc3QgSG1kVmVjdG9yMl90ICpwVmVydGV4
RGF0YTsKKyAgICAgICB1aW50MzJfdCB1blRyaWFuZ2xlQ291bnQ7Cit9OworCisKK2VudW0gRUhp
ZGRlbkFyZWFNZXNoVHlwZQoreworICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0g
MCwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9JbnZlcnNlID0gMSwKKyAgICAgICBrX2VIaWRk
ZW5BcmVhTWVzaF9MaW5lTG9vcCA9IDIsCisKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9NYXgg
PSAzLAorfTsKKworCisvKiogSWRlbnRpZmllcyB3aGF0IGtpbmQgb2YgYXhpcyBpcyBvbiB0aGUg
Y29udHJvbGxlciBhdCBpbmRleCBuLiBSZWFkIHRoaXMgdHlwZSAKKyogd2l0aCBwVlJTeXN0ZW0t
PkdldCggbkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgUHJvcF9BeGlzMFR5cGVfSW50MzIgKyBuICk7
CisqLworZW51bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVy
QXhpc19Ob25lID0gMCwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisg
ICAgICAga19lQ29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xs
ZXJBeGlzX1RyaWdnZXIgPSAzLCAvLyBBbmFsb2cgdHJpZ2dlciBkYXRhIGlzIGluIHRoZSBYIGF4
aXMKK307CisKKworLyoqIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IG9uZSBheGlzIG9uIHRo
ZSBjb250cm9sbGVyICovCitzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgZmxv
YXQgeDsgLy8gUmFuZ2VzIGZyb20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sg
cGFkcy4gUmFuZ2VzIGZyb20gMC4wIHRvIDEuMCBmb3IgdHJpZ2dlcnMgd2VyZSAwIGlzIGZ1bGx5
IHJlbGVhc2VkLgorICAgICAgIGZsb2F0IHk7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZv
ciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIElzIGFsd2F5cyAwLjAgZm9yIHRyaWdnZXJzLgor
fTsKKworCisvKiogdGhlIG51bWJlciBvZiBheGVzIGluIHRoZSBjb250cm9sbGVyIHN0YXRlICov
CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCA9IDU7
CisKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBU
aGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgs
IHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwg
NCApCisjZW5kaWYKKworLyoqIEhvbGRzIGFsbCB0aGUgc3RhdGUgb2YgYSBjb250cm9sbGVyIGF0
IG9uZSBtb21lbnQgaW4gdGltZS4gKi8KK3N0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90Cit7
CisgICAgICAgLy8gSWYgcGFja2V0IG51bSBtYXRjaGVzIHRoYXQgb24geW91ciBwcmlvciBjYWxs
LCB0aGVuIHRoZSBjb250cm9sbGVyIHN0YXRlIGhhc24ndCBiZWVuIGNoYW5nZWQgc2luY2UgCisg
ICAgICAgLy8geW91ciBsYXN0IGNhbGwgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyBp
dAorICAgICAgIHVpbnQzMl90IHVuUGFja2V0TnVtOworCisgICAgICAgLy8gYml0IGZsYWdzIGZv
ciBlYWNoIG9mIHRoZSBidXR0b25zLiBVc2UgQnV0dG9uTWFza0Zyb21JZCB0byB0dXJuIGFuIElE
IGludG8gYSBtYXNrCisgICAgICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOworICAgICAgIHVp
bnQ2NF90IHVsQnV0dG9uVG91Y2hlZDsKKworICAgICAgIC8vIEF4aXMgZGF0YSBmb3IgdGhlIGNv
bnRyb2xsZXIncyBhbmFsb2cgaW5wdXRzCisgICAgICAgVlJDb250cm9sbGVyQXhpc190IHJBeGlz
WyBrX3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50IF07Cit9OworI2lmIGRlZmluZWQoX19saW51
eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYK
KworCit0eXBlZGVmIFZSQ29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsK
KworCisvKiogZGV0ZXJtaW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0
aW9uIG9mIHZhcmlvdXMgZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNv
bnRyb2xsZXJFdmVudE91dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRf
T1NFdmVudHMgPSAwLAorICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEs
Cit9OworCisKKworLyoqIENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lv
bkJvdW5kc1N0eWxlCit7CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9
IDAsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAg
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNf
U1RZTEVfQURWQU5DRUQsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisg
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUg
YXBwbGljYXRpb24gdG8gY3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBj
b21wb3NpdG9yICovCitzdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAg
ICB1aW50MzJfdCBzaXplOyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisg
ICAgICAgYm9vbCBjdXJ2ZWQsIGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFu
Y2UsIGFscGhhOworICAgICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxl
OworICAgICAgIGZsb2F0IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBI
bWRNYXRyaXg0NF90IHRyYW5zZm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2lu
Z2xlIFZSIG92ZXJsYXkgKi8KK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisK
K3N0YXRpYyBjb25zdCBWUk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQg
PSAwOworCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLwor
ZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVy
bGF5RXJyb3JfVW5rbm93bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAg
IFZST3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAor
ICAgICAgIFZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAg
ICA9IDEyLAorICAgICAgIFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAg
ICAgICAgICA9IDEzLCAvLyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVz
ZSB0aGUgbWF4aW11bSBudW1iZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9y
X1dyb25nVmlzaWJpbGl0eVR5cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5
RXJyb3JfS2V5VG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAg
IFZST3ZlcmxheUVycm9yX05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1U
eXBlICAgICAgICAgICAgICA9IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFj
a2VkRGV2aWNlICAgICAgICAgICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFs
aWRQYXJhbWV0ZXIgICAgICAgICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX1RodW1ibmFpbENhbnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3Zlcmxh
eUVycm9yX0FycmF5VG9vU21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZS
T3ZlcmxheUVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAg
ICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAy
NCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAg
ICAgICAgPSAyNSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAg
ICAgICAgICAgICAgPSAyNiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFu
eU1hc2tQcmltaXRpdmVzICAgICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFz
a1ByaW1pdGl2ZSAgICAgICAgICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1
ZXMgdG8gcGFzcyBpbiB0byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0
aW9uIHdpbGwgCisqIGRyYXcgYSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBl
Cit7CisgICAgICAgVlJBcHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21l
IG90aGVyIGtpbmQgb2YgYXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhl
ciBlbnRyaWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAg
ICAgICAgLy8gQXBwbGljYXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBw
bGljYXRpb25fT3ZlcmxheSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGlu
dGVyYWN0cyB3aXRoIG92ZXJsYXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0g
MywgICAgICAgLy8gQXBwbGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mg
bm90IGFscmVhZHkgcnVubmluZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVu
bmluZyBpZiBldmVyeXRoaW5nIGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGls
aXR5ID0gNCwgICAgICAgICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkg
ZHJpdmVycy4gVGhlIGFwcGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBpbnRlcmZhY2VzIChsaWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBu
b3QgaGFyZHdhcmUuCisgICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAv
LyBSZXNlcnZlZCBmb3IgdnJtb25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNo
ZG9nID0gNiwvLyBSZXNlcnZlZCBmb3IgU3RlYW0KKyAgICAgICBWUkFwcGxpY2F0aW9uX0Jvb3Rz
dHJhcHBlciA9IDcsIC8vIFN0YXJ0IHVwIFN0ZWFtVlIKKworICAgICAgIFZSQXBwbGljYXRpb25f
TWF4Cit9OworCisKKy8qKiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmly
bXdhcmVFcnJvcgoreworICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBW
UkZpcm13YXJlRXJyb3JfU3VjY2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwg
PSAyLAorfTsKKworCisvKiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0g
RVZSTm90aWZpY2F0aW9uRXJyb3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0g
MCwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEw
MCwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEw
MSwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAy
LAorICAgICAgIFZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlF
eGlzdHMgPSAxMDMsCit9OworCisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0
ICovCisKKy8vIFBsZWFzZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6
Ly9kZXZlbG9wZXIudmFsdmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6
U3RlYW1WUkhlbHAKK2VudW0gRVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9u
ZSAgICAgICA9IDAsCisgICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAg
PSAxMDAsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAg
ICAgICAgICAgICAgICAgPSAxMDEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERM
TE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAz
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTA0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90
Rm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJy
b3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA2
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgICAg
ICAgICAgICAgID0gMTA3LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfTm90SW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTA5LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgICAgICAg
ICAgICAgICAgICAgICA9IDExMCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRh
YmxlICAgICAgICAgICAgICA9IDExMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9J
bml0RmFpbGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfUmV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMTUsIC8vIFVzZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZy
c2VydmVyCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTYsIC8vIFRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIHNo
b3VsZCBzaWxlbnRseSBleGl0LiBUaGUgdXNlciBjYW5jZWxlZCBhcHAgc3RhcnR1cAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5jaGluZyAgICAgICAgICAgICAgICAgICAg
ID0gMTE3LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDExOCwgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9T
aHV0dGluZ0Rvd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE5LAorICAg
ICAgIFZSSW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTIwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JC
YWNrZ3JvdW5kQXBwICAgICAgICAgICAgICA9IDEyMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0
X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9yICAgICAgICAgICAgICA9IDEyMiwKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgICAgICAgICAgICAgID0g
MTIzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9I
bWREcml2ZXJJZElzTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjUsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkICAgICAgICAgICAg
ICAgPSAxMjYsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEyNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZS
TW9uaXRvclN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDEyOCwKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgICAgICAgPSAxMjks
IAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSAgICAgICAg
ICAgICAgICAgICAgID0gMTMwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxl
VG9XYXRjaGRvZ0FwcHMgICAgICAgICAgICAgID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgICAgICAgICAgICAgID0gMTMyLAorICAgICAg
IFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAg
ID0gMTMzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVk
ICAgICAgICAgICAgICA9IDEzNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZv
dW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzNSwKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X1ZSSG9tZVN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDEz
NiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1JlYm9vdGluZ0J1c3kgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTM3LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlybXdh
cmVVcGRhdGVCdXN5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTM4LAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3kgICAgICAgICAgICAgICAgICAgICA9
IDEzOSwKKworCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwLAorICAgICAgIFZSSW5pdEVycm9yX0Ry
aXZlcl9Vbmtub3duICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDEsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMjAyLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RM
b2FkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLAorICAgICAgIFZS
SW5pdEVycm9yX0RyaXZlcl9SdW50aW1lT3V0T2ZEYXRlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjA0LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9Ob3RDYWxpYnJhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA2LAor
ICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgICAgICAgICAgICAg
ICAgICAgICA9IDIwNywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZv
dW5kICAgICAgICAgICAgICAgICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVy
X1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8vIFZSSW5pdEVy
cm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCA9IDIxMCwgLy8gbm90IG5lZWRl
ZDogaGVyZSBmb3IgaGlzdG9yaWMgcmVhc29ucworICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9I
bWREcml2ZXJJZE91dE9mQm91bmRzICAgICAgICAgICAgICA9IDIxMSwKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICAgICAgICAgICAgICAgICAgICAgPSAyMTIs
CisKKyAgICAgICBWUkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwMCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDEsCisgICAgICAgVlJJbml0
RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAy
LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCAgICAgICAgICAg
ICAgICAgICAgID0gMzAzLAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA0LAorICAgICAgIFZSSW5pdEVy
cm9yX0lQQ19GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAzMDUsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFp
bGVkICAgICAgICAgICAgICAgICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0Nv
bXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9y
X0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAg
VlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNDAwLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2Fy
ZVJlcXVpcmVkICAgICAgID0gNDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21w
b3NpdG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUklu
aXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKyAg
ICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRlRGV2aWNlICAgICAgICAg
ICAgICA9IDQwNSwKKworICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRv
Q29ubmVjdFRvT2N1bHVzUnVudGltZSAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTEwMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25maWdTdGFydCAgICAgICA9IDExMDIsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29CaWcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9Db25maWdUb29TbWFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA1LAorICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTA2LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uICAgICAgICA9IDExMDcsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNl
ckRhdGFTdGFydCAgICAgICA9IDExMDgsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAg
ICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRh
TmV4dCAgICAgICAgICAgICAgPSAxMTEwLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlICAgICAgICAgICAgICA9IDExMTEsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAg
ID0gMTExMywKKworICAgICAgIFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90
Rm91bmQgPSAyMDAwLAorfTsKKworZW51bSBFVlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIFZS
U2NyZWVuc2hvdFR5cGVfTm9uZSA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0g
MSwgLy8gbGVmdCBleWUgb25seQorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwK
KyAgICAgICBWUlNjcmVlbnNob3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hv
dFR5cGVfTW9ub1Bhbm9yYW1hID0gNCwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bh
bm9yYW1hID0gNQorfTsKKworZW51bSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sK
KyAgICAgICBWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAg
ICBWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lc19WUiA9IDEsCit9OworCitlbnVtIEVWUlRy
YWNrZWRDYW1lcmFFcnJvcgoreworICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAg
ICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVy
YXRpb25GYWlsZWQgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JbnZhbGlkSGFuZGxlICAgICAgICAgICAgICA9IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzICAgICAgICAgICAgICAgPSAxMDMsCisg
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSVBDRmFpbHVyZSAgICAgICAgICAgICAgICAgPSAx
MDQsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0Rldmlj
ZSAgPSAxMDUsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVy
ZSAgICAgICAgPSAxMDYsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJp
bmdGYWlsdXJlICAgICAgPSAxMDcsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFt
U2V0dXBGYWlsdXJlICAgICAgICAgPSAxMDgsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
SW52YWxpZEdMVGV4dHVyZUlkICAgICAgICAgPSAxMDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfRmFpbGVkVG9HZXRHTFRleHR1cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVyZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAg
ICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMs
CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAg
PSAxMTQsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6
ZSAgICAgPSAxMTUsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAg
ICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwgICAgICAgICAgICAg
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYW1lcmEgdmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMs
IHN0aWxsIGRpc3RvcnRlZC4KKyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0
b3J0ZWQsICAgICAgICAgICAgICAgICAgICAgLy8gSW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBp
bnNjcmliZWQgcmVjdGFuZ2xlIHJlZ2lvbiB3aXRob3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBz
aXplIGlzIHN1YmplY3QgdG8gY2hhbmdlcyBzaG9ydGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVy
YUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQsICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11
bSB1bmRpc3RvcnRlZCB3aXRoIGludmFsaWQgcmVnaW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9u
ZW50IGlkZW50aWZpZXMgdmFsaWQgcmVnaW9ucy4KKyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZ
UEVTCit9OworCit0eXBlZGVmIHVpbnQ2NF90IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZp
bmUgSU5WQUxJRF9UUkFDS0VEX0NBTUVSQV9IQU5ETEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVy
YUhhbmRsZV90KTApCisKK3N0cnVjdCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sK
KyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1
aW50MzJfdCBuV2lkdGg7CisgICAgICAgdWludDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJf
dCBuQnl0ZXNQZXJQaXhlbDsKKworICAgICAgIHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisg
ICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsK
KworLy8gU2NyZWVuc2hvdCB0eXBlcwordHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxl
X3Q7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQg
PSAwOworCisjcHJhZ21hIHBhY2soIHBvcCApCisKKy8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9y
dCBmcm9tIHRoZSBWUiBBUEkgZGxsCisjaWYgZGVmaW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9B
UElfRVhQT1JUCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRs
bGV4cG9ydCApCisjZWxzZQorI2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xz
cGVjKCBkbGxpbXBvcnQgKQorI2VuZGlmCisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRl
ZmluZWQoQ09NUElMRVJfR0NDKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQ
SV9FWFBPUlQKKyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygo
dmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRl
cm4gIkMiIAorI2VuZGlmCisKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIK
KyNlbmRpZgorCisKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBf
X2NkZWNsCisjZWxzZQorI2RlZmluZSBWUl9DQUxMVFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVz
cGFjZSB2cgorCisjZW5kaWYgLy8gX0lOQ0xVREVfVlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0
aW9uLmgKKyNpZmRlZiBBUElfR0VOCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0
cmlidXRlX18oKGFubm90YXRlKCBBVFRSICkpKQorI2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FU
VFIoQVRUUikKKyNlbmRpZgorCisjZGVmaW5lIFZSX01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5H
X0FUVFIoICJkZXNjOiIgI0RFU0MgIjsiICkKKyNkZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NM
QU5HX0FUVFIoICJpZ25vcmUiICkKKyNkZWZpbmUgVlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FU
VFIoICJvdXRfc3RydWN0OiA7IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19B
VFRSKCAib3V0X3N0cmluZzogOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVS
LEZVTkNUSU9OLFBBUkFNUykgVlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5U
RVIgIiwiICNGVU5DVElPTiAiLCIgI1BBUkFNUyAiOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jb3VudDoiICNDT1VOVEVS
ICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJh
cnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09V
TlRFUiwgREVTQykgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNj
OiIgI0RFU0MgKQorI2RlZmluZSBWUl9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRU
UiggImJ1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRF
UiAiOyIgKQorI2RlZmluZSBWUl9PVVRfU1RSSU5HX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FU
VFIoICJvdXRfc3RyaW5nX2NvdW50OiIgI0NPVU5URVIgIjsiICkKKworLy8gaXZyc3lzdGVtLmgK
K25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJTeXN0ZW0KK3sKK3B1YmxpYzoKKworCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gRGlz
cGxheSBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKKyAgICAgICAvKiogU3VnZ2VzdGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVu
ZGVyIHRhcmdldCB0aGF0IHRoZSBkaXN0b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgdmly
dHVhbCB2b2lkIEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lk
dGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgIC8qKiBUaGUgcHJvamVjdGlv
biBtYXRyaXggZm9yIHRoZSBzcGVjaWZpZWQgZXllICovCisgICAgICAgdmlydHVhbCBIbWRNYXRy
aXg0NF90IEdldFByb2plY3Rpb25NYXRyaXgoIEVWUkV5ZSBlRXllLCBmbG9hdCBmTmVhclosIGZs
b2F0IGZGYXJaICkgPSAwOworCisgICAgICAgLyoqIFRoZSBjb21wb25lbnRzIG5lY2Vzc2FyeSB0
byBidWlsZCB5b3VyIG93biBwcm9qZWN0aW9uIG1hdHJpeCBpbiBjYXNlIHlvdXIKKyAgICAgICAq
IGFwcGxpY2F0aW9uIGlzIGRvaW5nIHNvbWV0aGluZyBmYW5jeSBsaWtlIGluZmluaXRlIFogKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0
ICpwZkxlZnQsIGZsb2F0ICpwZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSAp
ID0gMDsKKworICAgICAgIC8qKiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIGRpc3RvcnRpb24gZnVu
Y3Rpb24gZm9yIHRoZSBzcGVjaWZpZWQgZXllIGFuZCBpbnB1dCBVVnMuIFVWcyBnbyBmcm9tIDAs
MCBpbiAKKyAgICAgICAqIHRoZSB1cHBlciBsZWZ0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQgYW5k
IDEsMSBpbiB0aGUgbG93ZXIgcmlnaHQgb2YgdGhhdCBleWUncyB2aWV3cG9ydC4KKyAgICAgICAq
IFJldHVybnMgdHJ1ZSBmb3Igc3VjY2Vzcy4gT3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLCBhbmQg
ZGlzdG9ydGlvbiBjb29yZGluYXRlcyBhcmUgbm90IHN1aXRhYmxlLiAqLworICAgICAgIHZpcnR1
YWwgYm9vbCBDb21wdXRlRGlzdG9ydGlvbiggRVZSRXllIGVFeWUsIGZsb2F0IGZVLCBmbG9hdCBm
ViwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgKnBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMgKSA9IDA7
CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gZXllIHNwYWNlIHRvIHRo
ZSBoZWFkIHNwYWNlLiBFeWUgc3BhY2UgaXMgdGhlIHBlci1leWUgZmxhdm9yIG9mIGhlYWQKKyAg
ICAgICAqIHNwYWNlIHRoYXQgcHJvdmlkZXMgc3RlcmVvIGRpc3Bhcml0eS4gSW5zdGVhZCBvZiBN
b2RlbCAqIFZpZXcgKiBQcm9qZWN0aW9uIHRoZSBzZXF1ZW5jZSBpcyBNb2RlbCAqIFZpZXcgKiBF
eWVeLTEgKiBQcm9qZWN0aW9uLiAKKyAgICAgICAqIE5vcm1hbGx5IFZpZXcgYW5kIEV5ZV4tMSB3
aWxsIGJlIG11bHRpcGxpZWQgdG9nZXRoZXIgYW5kIHRyZWF0ZWQgYXMgVmlldyBpbiB5b3VyIGFw
cGxpY2F0aW9uLiAKKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRF
eWVUb0hlYWRUcmFuc2Zvcm0oIEVWUkV5ZSBlRXllICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIG51bWJlciBvZiBlbGFwc2VkIHNlY29uZHMgc2luY2UgdGhlIGxhc3QgcmVjb3JkZWQg
dnN5bmMgZXZlbnQuIFRoaXMgCisgICAgICAgKiAgICAgICB3aWxsIGNvbWUgZnJvbSBhIHZzeW5j
IHRpbWVyIGV2ZW50IGluIHRoZSB0aW1lciBpZiBwb3NzaWJsZSBvciBmcm9tIHRoZSBhcHBsaWNh
dGlvbi1yZXBvcnRlZAorICAgICAgICogICB0aW1lIGlmIHRoYXQgaXMgbm90IGF2YWlsYWJsZS4g
SWYgbm8gdnN5bmMgdGltZXMgYXJlIGF2YWlsYWJsZSB0aGUgZnVuY3Rpb24gd2lsbCAKKyAgICAg
ICAqICAgcmV0dXJuIHplcm8gZm9yIHZzeW5jIHRpbWUgYW5kIGZyYW1lIGNvdW50ZXIgYW5kIHJl
dHVybiBmYWxzZSBmcm9tIHRoZSBtZXRob2QuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFRp
bWVTaW5jZUxhc3RWc3luYyggZmxvYXQgKnBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRf
dCAqcHVsRnJhbWVDb3VudGVyICkgPSAwOworCisgICAgICAgLyoqIFtEM0Q5IE9ubHldCisgICAg
ICAgKiBSZXR1cm5zIHRoZSBhZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3Mg
aW50byBDcmVhdGVEZXZpY2UgdG8gc2V0IHVwIEQzRDkgaW4gc3VjaAorICAgICAgICogYSB3YXkg
dGhhdCBpdCBjYW4gZ28gZnVsbCBzY3JlZW4gZXhjbHVzaXZlIG9uIHRoZSBITUQuIFJldHVybnMg
LTEgaWYgdGhlcmUgd2FzIGFuIGVycm9yLgorICAgICAgICovCisgICAgICAgdmlydHVhbCBpbnQz
Ml90IEdldEQzRDlBZGFwdGVySW5kZXgoKSA9IDA7CisKKyAgICAgICAvKiogW0QzRDEwLzExIE9u
bHldCisgICAgICAgKiBSZXR1cm5zIHRoZSBhZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hv
dWxkIHBhc3MgaW50byBFbnVtQWRhcHRlcnMgdG8gY3JlYXRlIHRoZSBkZXZpY2UgCisgICAgICAg
KiBhbmQgc3dhcCBjaGFpbiBpbiBEWDEwIGFuZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhl
IGluZGV4IHdpbGwgYmUgc2V0IHRvIC0xLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lk
IEdldERYR0lPdXRwdXRJbmZvKCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCApID0gMDsKKyAgICAg
ICAKKyAgICAgICAvKioKKyAgICAgICAgKiBSZXR1cm5zIHBsYXRmb3JtLSBhbmQgdGV4dHVyZS10
eXBlIHNwZWNpZmljIGFkYXB0ZXIgaWRlbnRpZmljYXRpb24gc28gdGhhdCBhcHBsaWNhdGlvbnMg
YW5kIHRoZQorICAgICAgICAqIGNvbXBvc2l0b3IgYXJlIGNyZWF0aW5nIHRleHR1cmVzIGFuZCBz
d2FwIGNoYWlucyBvbiB0aGUgc2FtZSBHUFUuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgZGV2aWNl
CisgICAgICAgICogd2lsbCBiZSBzZXQgdG8gMC4KKyAgICAgICAgKiBwSW5zdGFuY2UgaXMgYW4g
b3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgaXMgcmVxdWlyZWQgb25seSB3aGVuIHRleHR1cmVUeXBl
IGlzIFRleHR1cmVUeXBlX1Z1bGthbi4KKyAgICAgICAgKiBbRDNEMTAvMTEvMTIgT25seSAoRDNE
OSBOb3QgU3VwcG9ydGVkKV0KKyAgICAgICAgKiAgUmV0dXJucyB0aGUgYWRhcHRlciBMVUlEIHRo
YXQgaWRlbnRpZmllcyB0aGUgR1BVIGF0dGFjaGVkIHRvIHRoZSBITUQuIFRoZSB1c2VyIHNob3Vs
ZAorICAgICAgICAqICBlbnVtZXJhdGUgYWxsIGFkYXB0ZXJzIHVzaW5nIElEWEdJRmFjdG9yeTo6
RW51bUFkYXB0ZXJzIGFuZCBJRFhHSUFkYXB0ZXI6OkdldERlc2MgdG8gZmluZAorICAgICAgICAq
ICB0aGUgYWRhcHRlciB3aXRoIHRoZSBtYXRjaGluZyBMVUlELCBvciB1c2UgSURYR0lGYWN0b3J5
NDo6RW51bUFkYXB0ZXJCeUx1aWQuCisgICAgICAgICogIFRoZSBkaXNjb3ZlcmVkIElEWEdJQWRh
cHRlciBzaG91bGQgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbi4K
KyAgICAgICAgKiBbVnVsa2FuIE9ubHldCisgICAgICAgICogIFJldHVybnMgdGhlIFZrUGh5c2lj
YWxEZXZpY2UgdGhhdCBzaG91bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAg
ICogIHBJbnN0YW5jZSBtdXN0IGJlIHRoZSBpbnN0YW5jZSB0aGUgYXBwbGljYXRpb24gd2lsbCB1
c2UgdG8gcXVlcnkgZm9yIHRoZSBWa1BoeXNpY2FsRGV2aWNlLiAgVGhlIGFwcGxpY2F0aW9uCisg
ICAgICAgICogIG11c3QgY3JlYXRlIHRoZSBWa0luc3RhbmNlIHdpdGggZXh0ZW5zaW9ucyByZXR1
cm5lZCBieSBJVlJDb21wb3NpdG9yOjpHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJl
ZCBlbmFibGVkLgorICAgICAgICAqIFttYWNPUyBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIGFu
IGlkPE1UTERldmljZT4gdGhhdCBzaG91bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisg
ICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldE91dHB1dERldmljZSggdWludDY0X3Qg
KnBuRGV2aWNlLCBFVGV4dHVyZVR5cGUgdGV4dHVyZVR5cGUsIFZrSW5zdGFuY2VfVCAqcEluc3Rh
bmNlID0gbnVsbHB0ciApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgIC8vIERpc3BsYXkgTW9kZSBtZXRob2RzCisgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVXNlIHRv
IGRldGVybWluZSBpZiB0aGUgaGVhZHNldCBkaXNwbGF5IGlzIHBhcnQgb2YgdGhlIGRlc2t0b3Ag
KGkuZS4gZXh0ZW5kZWQpIG9yIGhpZGRlbiAoaS5lLiBkaXJlY3QgbW9kZSkuICovCisgICAgICAg
dmlydHVhbCBib29sIElzRGlzcGxheU9uRGVza3RvcCgpID0gMDsKKworICAgICAgIC8qKiBTZXQg
dGhlIGRpc3BsYXkgdmlzaWJpbGl0eSAodHJ1ZSA9IGV4dGVuZGVkLCBmYWxzZSA9IGRpcmVjdCBt
b2RlKS4gIFJldHVybiB2YWx1ZSBvZiB0cnVlIGluZGljYXRlcyB0aGF0IHRoZSBjaGFuZ2Ugd2Fz
IHN1Y2Nlc3NmdWwuICovCisgICAgICAgdmlydHVhbCBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5
KCBib29sIGJJc1Zpc2libGVPbkRlc2t0b3AgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBUcmFja2luZyBNZXRob2RzCisg
ICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAv
KiogVGhlIHBvc2UgdGhhdCB0aGUgdHJhY2tlciB0aGlua3MgdGhhdCB0aGUgSE1EIHdpbGwgYmUg
aW4gYXQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kcyBpbnRvIHRoZSAKKyAgICAgICAq
IGZ1dHVyZS4gUGFzcyAwIHRvIGdldCB0aGUgc3RhdGUgYXQgdGhlIGluc3RhbnQgdGhlIG1ldGhv
ZCBpcyBjYWxsZWQuIE1vc3Qgb2YgdGhlIHRpbWUgdGhlIGFwcGxpY2F0aW9uIHNob3VsZAorICAg
ICAgICogY2FsY3VsYXRlIHRoZSB0aW1lIHVudGlsIHRoZSBwaG90b25zIHdpbGwgYmUgZW1pdHRl
ZCBmcm9tIHRoZSBkaXNwbGF5IGFuZCBwYXNzIHRoYXQgdGltZSBpbnRvIHRoZSBtZXRob2QuCisg
ICAgICAgKgorICAgICAgICogVGhpcyBpcyByb3VnaGx5IGFuYWxvZ291cyB0byB0aGUgaW52ZXJz
ZSBvZiB0aGUgdmlldyBtYXRyaXggaW4gbW9zdCBhcHBsaWNhdGlvbnMsIHRob3VnaCAKKyAgICAg
ICAqIG1hbnkgZ2FtZXMgd2lsbCBuZWVkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCByb3RhdGlvbiBv
ciB0cmFuc2xhdGlvbiBvbiB0b3Agb2YgdGhlIHJvdGF0aW9uCisgICAgICAgKiBhbmQgdHJhbnNs
YXRpb24gcHJvdmlkZWQgYnkgdGhlIGhlYWQgcG9zZS4KKyAgICAgICAqCisgICAgICAgKiBGb3Ig
ZGV2aWNlcyB3aGVyZSBiUG9zZUlzVmFsaWQgaXMgdHJ1ZSB0aGUgYXBwbGljYXRpb24gY2FuIHVz
ZSB0aGUgcG9zZSB0byBwb3NpdGlvbiB0aGUgZGV2aWNlCisgICAgICAgKiBpbiBxdWVzdGlvbi4g
VGhlIHByb3ZpZGVkIGFycmF5IGNhbiBiZSBhbnkgc2l6ZSB1cCB0byBrX3VuTWF4VHJhY2tlZERl
dmljZUNvdW50LiAKKyAgICAgICAqCisgICAgICAgKiBTZWF0ZWQgZXhwZXJpZW5jZXMgc2hvdWxk
IGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBUcmFja2luZ1VuaXZlcnNlU2VhdGVkIGFuZCByZWNlaXZl
IHBvc2VzIHJlbGF0aXZlCisgICAgICAgKiB0byB0aGUgc2VhdGVkIHplcm8gcG9zZS4gU3RhbmRp
bmcgZXhwZXJpZW5jZXMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBUcmFja2luZ1VuaXZl
cnNlU3RhbmRpbmcgCisgICAgICAgKiBhbmQgcmVjZWl2ZSBwb3NlcyByZWxhdGl2ZSB0byB0aGUg
Q2hhcGVyb25lIFBsYXkgQXJlYS4gVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCBz
aG91bGQgCisgICAgICAgKiBwcm9iYWJseSBub3QgYmUgdXNlZCB1bmxlc3MgdGhlIGFwcGxpY2F0
aW9uIGlzIHRoZSBDaGFwZXJvbmUgY2FsaWJyYXRpb24gdG9vbCBpdHNlbGYsIGJ1dCB3aWxsIHBy
b3ZpZGUKKyAgICAgICAqIHBvc2VzIHJlbGF0aXZlIHRvIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBj
b29yZGluYXRlIHN5c3RlbSBpbiB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmlydHVh
bCB2b2lkIEdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoIEVUcmFja2luZ1VuaXZlcnNl
T3JpZ2luIGVPcmlnaW4sIGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywg
VlJfQVJSQVlfQ09VTlQodW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpIFRyYWNrZWREZXZp
Y2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZp
Y2VQb3NlQXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSB6ZXJvIHBvc2Ug
Zm9yIHRoZSBzZWF0ZWQgdHJhY2tlciBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY3VycmVudCBw
b3NpdGlvbiBhbmQgeWF3IG9mIHRoZSBITUQuIEFmdGVyIAorICAgICAgICogUmVzZXRTZWF0ZWRa
ZXJvUG9zZSBhbGwgR2V0RGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBjYWxscyB0aGF0IHBh
c3MgVHJhY2tpbmdVbml2ZXJzZVNlYXRlZCBhcyB0aGUgb3JpZ2luIAorICAgICAgICogd2lsbCBi
ZSByZWxhdGl2ZSB0byB0aGlzIG5ldyB6ZXJvIHBvc2UuIFRoZSBuZXcgemVybyBjb29yZGluYXRl
IHN5c3RlbSB3aWxsIG5vdCBjaGFuZ2UgdGhlIGZhY3QgdGhhdCB0aGUgWSBheGlzIAorICAgICAg
ICogaXMgdXAgaW4gdGhlIHJlYWwgd29ybGQsIHNvIHRoZSBuZXh0IHBvc2UgcmV0dXJuZWQgZnJv
bSBHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIGFmdGVyIGEgY2FsbCB0byAKKyAgICAg
ICAqIFJlc2V0U2VhdGVkWmVyb1Bvc2UgbWF5IG5vdCBiZSBleGFjdGx5IGFuIGlkZW50aXR5IG1h
dHJpeC4KKyAgICAgICAqCisgICAgICAgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0
aGUgdXNlcidzIHByZXZpb3VzbHkgc2F2ZWQgc2VhdGVkIHplcm8gcG9zZSBhbmQgc2hvdWxkIG9u
bHkgYmUgY2FsbGVkIGFzIHRoZSByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gCisgICAgICAgKiBV
c2VycyBhcmUgYWxzbyBhYmxlIHRvIHNldCB0aGVpciBzZWF0ZWQgemVybyBwb3NlIHZpYSB0aGUg
T3BlblZSIERhc2hib2FyZC4KKyAgICAgICAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVzZXRT
ZWF0ZWRaZXJvUG9zZSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0g
ZnJvbSB0aGUgc2VhdGVkIHplcm8gcG9zZSB0byB0aGUgc3RhbmRpbmcgYWJzb2x1dGUgdHJhY2tp
bmcgc3lzdGVtLiBUaGlzIGFsbG93cyAKKyAgICAgICAqIGFwcGxpY2F0aW9ucyB0byByZXByZXNl
bnQgdGhlIHNlYXRlZCBvcmlnaW4gdG8gdXNlZCBvciB0cmFuc2Zvcm0gb2JqZWN0IHBvc2l0aW9u
cyBmcm9tIG9uZSBjb29yZGluYXRlCisgICAgICAgKiBzeXN0ZW0gdG8gdGhlIG90aGVyLiAKKyAg
ICAgICAqCisgICAgICAgKiBUaGUgc2VhdGVkIG9yaWdpbiBtYXkgb3IgbWF5IG5vdCBiZSBpbnNp
ZGUgdGhlIFBsYXkgQXJlYSBvciBDb2xsaXNpb24gQm91bmRzIHJldHVybmVkIGJ5IElWUkNoYXBl
cm9uZS4gSXRzIHBvc2l0aW9uIAorICAgICAgICogZGVwZW5kcyBvbiB3aGF0IHRoZSB1c2VyIGhh
cyBzZXQgZnJvbSB0aGUgRGFzaGJvYXJkIHNldHRpbmdzIGFuZCBwcmV2aW91cyBjYWxscyB0byBS
ZXNldFNlYXRlZFplcm9Qb3NlLiAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRT
ZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKKworICAg
ICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gZnJvbSB0aGUgdHJhY2tpbmcgb3JpZ2luIHRv
IHRoZSBzdGFuZGluZyBhYnNvbHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzCisgICAg
ICAgKiBhcHBsaWNhdGlvbnMgdG8gY29udmVydCBmcm9tIHJhdyB0cmFja2luZyBzcGFjZSB0byB0
aGUgY2FsaWJyYXRlZCBzdGFuZGluZyBjb29yZGluYXRlIHN5c3RlbS4gKi8KKyAgICAgICB2aXJ0
dWFsIEhtZE1hdHJpeDM0X3QgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2lu
Z1Bvc2UoKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGEgc29ydGVkIGFycmF5IG9mIGRldmljZSBp
bmRpY2VzIG9mIGEgZ2l2ZW4gY2xhc3Mgb2YgdHJhY2tlZCBkZXZpY2VzIChlLmcuIGNvbnRyb2xs
ZXJzKS4gIERldmljZXMgYXJlIHNvcnRlZCByaWdodCB0byBsZWZ0CisgICAgICAgKiByZWxhdGl2
ZSB0byB0aGUgc3BlY2lmaWVkIHRyYWNrZWQgZGV2aWNlIChkZWZhdWx0OiBobWQgLS0gcGFzcyBp
biAtMSBmb3IgYWJzb2x1dGUgdHJhY2tpbmcgc3BhY2UpLiAgUmV0dXJucyB0aGUgbnVtYmVyIG9m
IGRldmljZXMKKyAgICAgICAqIGluIHRoZSBsaXN0LCBvciB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkg
bmVlZGVkIGlmIG5vdCBsYXJnZSBlbm91Z2guICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBH
ZXRTb3J0ZWRUcmFja2VkRGV2aWNlSW5kaWNlc09mQ2xhc3MoIEVUcmFja2VkRGV2aWNlQ2xhc3Mg
ZVRyYWNrZWREZXZpY2VDbGFzcywgVlJfQVJSQVlfQ09VTlQodW5UcmFja2VkRGV2aWNlSW5kZXhB
cnJheUNvdW50KSB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWREZXZpY2VJbmRl
eEFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQsIHZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXggPSBrX3VuVHJh
Y2tlZERldmljZUluZGV4X0htZCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsZXZl
bCBvZiBhY3Rpdml0eSBvbiB0aGUgZGV2aWNlLiAqLworICAgICAgIHZpcnR1YWwgRURldmljZUFj
dGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwoIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCB1bkRldmljZUlkICkgPSAwOworCisgICAgICAgLyoqIENvbnZlbmllbmNlIHV0
aWxpdHkgdG8gYXBwbHkgdGhlIHNwZWNpZmllZCB0cmFuc2Zvcm0gdG8gdGhlIHNwZWNpZmllZCBw
b3NlLgorICAgICAgICogICBUaGlzIHByb3Blcmx5IHRyYW5zZm9ybXMgYWxsIHBvc2UgY29tcG9u
ZW50cywgaW5jbHVkaW5nIHZlbG9jaXR5IGFuZCBhbmd1bGFyIHZlbG9jaXR5CisgICAgICAgKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgQXBwbHlUcmFuc2Zvcm0oIFRyYWNrZWREZXZpY2VQb3NlX3Qg
KnBPdXRwdXRQb3NlLCBjb25zdCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBv
c2UsIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAvKiog
UmV0dXJucyB0aGUgZGV2aWNlIGluZGV4IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvbGUs
IGZvciBleGFtcGxlIHRoZSBsZWZ0IGhhbmQgb3IgdGhlIHJpZ2h0IGhhbmQuICovCisgICAgICAg
dmlydHVhbCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgR2V0VHJhY2tlZERldmljZUluZGV4Rm9y
Q29udHJvbGxlclJvbGUoIHZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSAp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjb250cm9sbGVyIHR5cGUgYXNzb2NpYXRl
ZCB3aXRoIGEgZGV2aWNlIGluZGV4LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVUcmFja2VkQ29u
dHJvbGxlclJvbGUgR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgoIHZyOjpU
cmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gUHJvcGVydHkgbWV0
aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisg
ICAgICAgLyoqIFJldHVybnMgdGhlIGRldmljZSBjbGFzcyBvZiBhIHRyYWNrZWQgZGV2aWNlLiBJ
ZiB0aGVyZSBoYXMgbm90IGJlZW4gYSBkZXZpY2UgY29ubmVjdGVkIGluIHRoaXMgc2xvdAorICAg
ICAgICogc2luY2UgdGhlIGFwcGxpY2F0aW9uIHN0YXJ0ZWQgdGhpcyBmdW5jdGlvbiB3aWxsIHJl
dHVybiBUcmFja2VkRGV2aWNlX0ludmFsaWQuIEZvciBwcmV2aW91cyBkZXRlY3RlZAorICAgICAg
ICogZGV2aWNlcyB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHByZXZpb3VzbHkgb2JzZXJ2
ZWQgZGV2aWNlIGNsYXNzLiAKKyAgICAgICAqCisgICAgICAgKiBUbyBkZXRlcm1pbmUgd2hpY2gg
ZGV2aWNlcyBleGlzdCBvbiB0aGUgc3lzdGVtLCBqdXN0IGxvb3AgZnJvbSAwIHRvIGtfdW5NYXhU
cmFja2VkRGV2aWNlQ291bnQgYW5kIGNoZWNrCisgICAgICAgKiB0aGUgZGV2aWNlIGNsYXNzLiBF
dmVyeSBkZXZpY2Ugd2l0aCBzb21ldGhpbmcgb3RoZXIgdGhhbiBUcmFja2VkRGV2aWNlX0ludmFs
aWQgaXMgYXNzb2NpYXRlZCB3aXRoIGFuIAorICAgICAgICogYWN0dWFsIHRyYWNrZWQgZGV2aWNl
LiAqLworICAgICAgIHZpcnR1YWwgRVRyYWNrZWREZXZpY2VDbGFzcyBHZXRUcmFja2VkRGV2aWNl
Q2xhc3MoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisg
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgaW4g
dGhpcyBzbG90LiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc1RyYWNrZWREZXZpY2VDb25uZWN0
ZWQoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAg
ICAgLyoqIFJldHVybnMgYSBib29sIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5v
dCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgYm9vbCB0eXBlIHRoaXMgZnVuY3Rpb24g
d2lsbCByZXR1cm4gZmFsc2UuICovCisgICAgICAgdmlydHVhbCBib29sIEdldEJvb2xUcmFja2Vk
RGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9y
ID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIGZsb2F0IHByb3BlcnR5LiBJZiB0
aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgZmxv
YXQgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVhbCBm
bG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFu
IGludCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHBy
b3BlcnR5IGlzIG5vdCBhIGludCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8K
KyAgICAgICB2aXJ0dWFsIGludDMyX3QgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAg
ICAgICAvKiogUmV0dXJucyBhIHVpbnQ2NCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBp
cyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHVpbnQ2NCB0eXBlIHRoaXMgZnVu
Y3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldFVpbnQ2
NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNl
SW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
ICpwRXJyb3IgPSAwTCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgbWF0cml4IHByb3Bl
cnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMg
bm90IGEgbWF0cml4IHR5cGUsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaWRlbnRpdHkuICov
CisgICAgICAgdmlydHVhbCBIbWRNYXRyaXgzNF90IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVBy
b3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkg
PSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZp
Y2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlw
ZSB0aGlzIGZ1bmN0aW9uIHdpbGwgCisgICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJl
dHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xk
IHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuIFN0cmlu
Z3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191bk1heFByb3BlcnR5U3RyaW5nU2l6
ZSBjaGFyYWN0ZXJzLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U3RyaW5nVHJhY2tl
ZERldmljZVByb3BlcnR5KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFs
dWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3Ig
PSAwTCApID0gMDsKKworICAgICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9u
ZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGVycm9yLiBUaGUgc3RyaW5nIHdpbGwgYmUg
dGhlIG5hbWUgCisgICAgICAgKiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxsIHZhbGlk
IGVycm9yIGNvZGVzICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRQcm9wRXJyb3JO
YW1lRnJvbUVudW0oIEVUcmFja2VkUHJvcGVydHlFcnJvciBlcnJvciApID0gMDsKKworICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEV2ZW50
IG1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBu
ZXh0IGV2ZW50IG9uIHRoZSBxdWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBl
dmVudHMKKyAgICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNo
b3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBQb2xsTmV4dEV2ZW50KCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMy
X3QgdW5jYlZSRXZlbnQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGFuZCBmaWxs
cyB0aGUgZXZlbnQgd2l0aCB0aGUgbmV4dCBldmVudCBvbiB0aGUgcXVldWUgaWYgdGhlcmUgaXMg
b25lLiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzCisgICAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5z
IGZhbHNlLiBGaWxscyBpbiB0aGUgcG9zZSBvZiB0aGUgYXNzb2NpYXRlZCB0cmFja2VkIGRldmlj
ZSBpbiB0aGUgcHJvdmlkZWQgcG9zZSBzdHJ1Y3QuIAorICAgICAgICogVGhpcyBwb3NlIHdpbGwg
YWx3YXlzIGJlIG9sZGVyIHRoYW4gdGhlIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBhbmQgc2hvdWxk
IG5vdCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgZGV2aWNlLiAKKyAgICAgICB1bmNiVlJFdmVudCBz
aG91bGQgYmUgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAg
ICAgICB2aXJ0dWFsIGJvb2wgUG9sbE5leHRFdmVudFdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiBlT3JpZ2luLCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQs
IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UgKSA9IDA7CisKKyAg
ICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBFVlJFdmVudCBlbnVtIHZhbHVlICovCisg
ICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oIEVWUkV2
ZW50VHlwZSBlVHlwZSApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFJlbmRlcmluZyBoZWxwZXIgbWV0aG9kcworICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJl
dHVybnMgdGhlIGhpZGRlbiBhcmVhIG1lc2ggZm9yIHRoZSBjdXJyZW50IEhNRC4gVGhlIHBpeGVs
cyBjb3ZlcmVkIGJ5IHRoaXMgbWVzaCB3aWxsIG5ldmVyIGJlIHNlZW4gYnkgdGhlIHVzZXIgYWZ0
ZXIgdGhlIGxlbnMgZGlzdG9ydGlvbiBpcworICAgICAgICogYXBwbGllZCBiYXNlZCBvbiB2aXNp
YmlsaXR5IHRvIHRoZSBwYW5lbHMuIElmIHRoaXMgSE1EIGRvZXMgbm90IGhhdmUgYSBoaWRkZW4g
YXJlYSBtZXNoLCB0aGUgdmVydGV4IGRhdGEgYW5kIGNvdW50IHdpbGwgYmUgTlVMTCBhbmQgMCBy
ZXNwZWN0aXZlbHkuCisgICAgICAgKiBUaGlzIG1lc2ggaXMgbWVhbnQgdG8gYmUgcmVuZGVyZWQg
aW50byB0aGUgc3RlbmNpbCBidWZmZXIgKG9yIGludG8gdGhlIGRlcHRoIGJ1ZmZlciBzZXR0aW5n
IG5lYXJ6KSBiZWZvcmUgcmVuZGVyaW5nIGVhY2ggZXllJ3Mgdmlldy4gCisgICAgICAgKiBUaGlz
IHdpbGwgaW1wcm92ZSBwZXJmb3JtYW5jZSBieSBsZXR0aW5nIHRoZSBHUFUgZWFybHktcmVqZWN0
IHBpeGVscyB0aGUgdXNlciB3aWxsIG5ldmVyIHNlZSBiZWZvcmUgcnVubmluZyB0aGUgcGl4ZWwg
c2hhZGVyLgorICAgICAgICogTk9URTogUmVuZGVyIHRoaXMgbWVzaCB3aXRoIGJhY2tmYWNlIGN1
bGxpbmcgZGlzYWJsZWQgc2luY2UgdGhlIHdpbmRpbmcgb3JkZXIgb2YgdGhlIHZlcnRpY2VzIGNh
biBiZSBkaWZmZXJlbnQgcGVyLUhNRCBvciBwZXItZXllLgorICAgICAgICogU2V0dGluZyB0aGUg
YkludmVyc2UgYXJndW1lbnQgdG8gdHJ1ZSB3aWxsIHByb2R1Y2UgdGhlIHZpc2libGUgYXJlYSBt
ZXNoIHRoYXQgaXMgY29tbW9ubHkgdXNlZCBpbiBwbGFjZSBvZiBmdWxsLXNjcmVlbiBxdWFkcy4g
VGhlIHZpc2libGUgYXJlYSBtZXNoIGNvdmVycyBhbGwgb2YgdGhlIHBpeGVscyB0aGUgaGlkZGVu
IGFyZWEgbWVzaCBkb2VzIG5vdCBjb3Zlci4KKyAgICAgICAqIFNldHRpbmcgdGhlIGJMaW5lTG9v
cCBhcmd1bWVudCB3aWxsIHJldHVybiBhIGxpbmUgbG9vcCBvZiB2ZXJ0aWNlcyBpbiBIaWRkZW5B
cmVhTWVzaF90LT5wVmVydGV4RGF0YSB3aXRoIEhpZGRlbkFyZWFNZXNoX3QtPnVuVHJpYW5nbGVD
b3VudCBzZXQgdG8gdGhlIG51bWJlciBvZiB2ZXJ0aWNlcy4KKyAgICAgICAqLworICAgICAgIHZp
cnR1YWwgSGlkZGVuQXJlYU1lc2hfdCBHZXRIaWRkZW5BcmVhTWVzaCggRVZSRXllIGVFeWUsIEVI
aWRkZW5BcmVhTWVzaFR5cGUgdHlwZSA9IGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkICkgPSAw
OworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gQ29udHJvbGxlciBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogRmlsbHMgdGhlIHN1cHBsaWVkIHN0cnVjdCB3
aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb250cm9sbGVyLiBSZXR1cm5zIGZhbHNlIGlm
IHRoZSBjb250cm9sbGVyIGluZGV4CisgICAgICAgKiBpcyBpbnZhbGlkLiAqLworICAgICAgIHZp
cnR1YWwgYm9vbCBHZXRDb250cm9sbGVyU3RhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1
bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKnBDb250cm9s
bGVyU3RhdGUsIHVpbnQzMl90IHVuQ29udHJvbGxlclN0YXRlU2l6ZSApID0gMDsKKworICAgICAg
IC8qKiBmaWxscyB0aGUgc3VwcGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
dGhlIGNvbnRyb2xsZXIgYW5kIHRoZSBwcm92aWRlZCBwb3NlIHdpdGggdGhlIHBvc2Ugb2YgCisg
ICAgICAgKiB0aGUgY29udHJvbGxlciB3aGVuIHRoZSBjb250cm9sbGVyIHN0YXRlIHdhcyB1cGRh
dGVkIG1vc3QgcmVjZW50bHkuIFVzZSB0aGlzIGZvcm0gaWYgeW91IG5lZWQgYSBwcmVjaXNlIGNv
bnRyb2xsZXIKKyAgICAgICAqIHBvc2UgYXMgaW5wdXQgdG8geW91ciBhcHBsaWNhdGlvbiB3aGVu
IHRoZSB1c2VyIHByZXNzZXMgb3IgcmVsZWFzZXMgYSBidXR0b24uICovCisgICAgICAgdmlydHVh
bCBib29sIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdp
biBlT3JpZ2luLCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgsIHZyOjpWUkNvbnRyb2xsZXJTdGF0ZV90ICpwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1
bkNvbnRyb2xsZXJTdGF0ZVNpemUsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNl
UG9zZSApID0gMDsKKworICAgICAgIC8qKiBUcmlnZ2VyIGEgc2luZ2xlIGhhcHRpYyBwdWxzZSBv
biBhIGNvbnRyb2xsZXIuIEFmdGVyIHRoaXMgY2FsbCB0aGUgYXBwbGljYXRpb24gbWF5IG5vdCB0
cmlnZ2VyIGFub3RoZXIgaGFwdGljIHB1bHNlIG9uIHRoaXMgY29udHJvbGxlcgorICAgICAgICog
YW5kIGF4aXMgY29tYmluYXRpb24gZm9yIDVtcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJp
Z2dlckhhcHRpY1B1bHNlKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgsIHVpbnQzMl90IHVuQXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWlj
cm9TZWMgKSA9IDA7CisKKyAgICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBFVlJCdXR0
b25JZCBlbnVtIHZhbHVlICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRCdXR0b25J
ZE5hbWVGcm9tRW51bSggRVZSQnV0dG9uSWQgZUJ1dHRvbklkICkgPSAwOworCisgICAgICAgLyoq
IHJldHVybnMgdGhlIG5hbWUgb2YgYW4gRVZSQ29udHJvbGxlckF4aXNUeXBlIGVudW0gdmFsdWUg
Ki8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVG
cm9tRW51bSggRVZSQ29udHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSApID0gMDsKKworICAgICAg
IC8qKiBUZWxscyBPcGVuVlIgdGhhdCB0aGlzIHByb2Nlc3Mgd2FudHMgZXhjbHVzaXZlIGFjY2Vz
cyB0byBjb250cm9sbGVyIGJ1dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBldmVudHMuIE90aGVyIGFw
cHMgd2lsbCBiZSBub3RpZmllZCB0aGF0IAorICAgICAgICogdGhleSBoYXZlIGxvc3QgaW5wdXQg
Zm9jdXMgd2l0aCBhIFZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkIGV2ZW50LiBSZXR1cm5zIGZh
bHNlIGlmIGlucHV0IGZvY3VzIGNvdWxkIG5vdCBiZSBjYXB0dXJlZCBmb3IKKyAgICAgICAqIHNv
bWUgcmVhc29uLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDYXB0dXJlSW5wdXRGb2N1cygpID0g
MDsKKworICAgICAgIC8qKiBUZWxscyBPcGVuVlIgdGhhdCB0aGlzIHByb2Nlc3Mgbm8gbG9uZ2Vy
IHdhbnRzIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gYnV0dG9uIHN0YXRlcyBhbmQgYnV0dG9uIGV2ZW50
cy4gT3RoZXIgYXBwcyB3aWxsIGJlIG5vdGlmaWVkIAorICAgICAgICogdGhhdCBpbnB1dCBmb2N1
cyBoYXMgYmVlbiByZWxlYXNlZCB3aXRoIGEgVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgZXZl
bnQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJlbGVhc2VJbnB1dEZvY3VzKCkgPSAwOworCisg
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBpbnB1dCBmb2N1cyBpcyBjYXB0dXJlZCBieSBhbm90
aGVyIHByb2Nlc3MuICovCisgICAgICAgdmlydHVhbCBib29sIElzSW5wdXRGb2N1c0NhcHR1cmVk
QnlBbm90aGVyUHJvY2VzcygpID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIERlYnVnIE1ldGhvZHMKKyAgICAgICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBTZW5kcyBhIHJl
cXVlc3QgdG8gdGhlIGRyaXZlciBmb3IgdGhlIHNwZWNpZmllZCBkZXZpY2UgYW5kIHJldHVybnMg
dGhlIHJlc3BvbnNlLiBUaGUgbWF4aW11bSByZXNwb25zZSBzaXplIGlzIDMyaywKKyAgICAgICAq
IGJ1dCB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIHdpdGggYSBzbWFsbGVyIGJ1ZmZlci4gSWYg
dGhlIHJlc3BvbnNlIGV4Y2VlZHMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciwgaXQgaXMgdHJ1bmNh
dGVkLiAKKyAgICAgICAqIFRoZSBzaXplIG9mIHRoZSByZXNwb25zZSBpbmNsdWRpbmcgaXRzIHRl
cm1pbmF0aW5nIG51bGwgaXMgcmV0dXJuZWQuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBE
cml2ZXJEZWJ1Z1JlcXVlc3QoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4
LCBjb25zdCBjaGFyICpwY2hSZXF1ZXN0LCBjaGFyICpwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMy
X3QgdW5SZXNwb25zZUJ1ZmZlclNpemUgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBGaXJtd2FyZSBtZXRob2RzCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAg
ICAgLyoqIFBlcmZvcm1zIHRoZSBhY3R1YWwgZmlybXdhcmUgdXBkYXRlIGlmIGFwcGxpY2FibGUu
IAorICAgICAgICAqIFRoZSBmb2xsb3dpbmcgZXZlbnRzIHdpbGwgYmUgc2VudCwgaWYgVlJGaXJt
d2FyZUVycm9yX05vbmUgd2FzIHJldHVybmVkOiBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRl
ZCwgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkIAorICAgICAgICAqIFVzZSB0aGUgcHJv
cGVydGllcyBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sLCBQcm9wX0Zpcm13YXJl
X01hbnVhbFVwZGF0ZV9Cb29sLCBhbmQgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3Ry
aW5nCisgICAgICAgICogdG8gZmlndXJlIG91ciB3aGV0aGVyIGEgZmlybXdhcmUgdXBkYXRlIGlz
IGF2YWlsYWJsZSwgYW5kIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdHMgYSBtYW51YWwgdXBkYXRl
IAorICAgICAgICAqIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyBzaG91bGQg
cG9pbnQgdG8gYW4gVVJMIGRlc2NyaWJpbmcgdGhlIG1hbnVhbCB1cGRhdGUgcHJvY2VzcyAqLwor
ICAgICAgIHZpcnR1YWwgdnI6OkVWUkZpcm13YXJlRXJyb3IgUGVyZm9ybUZpcm13YXJlVXBkYXRl
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEFwcGxp
Y2F0aW9uIGxpZmUgY3ljbGUgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIENhbGwgdGhpcyB0byBhY2tub3dsZWRnZSB0
byB0aGUgc3lzdGVtIHRoYXQgVlJFdmVudF9RdWl0IGhhcyBiZWVuIHJlY2VpdmVkIGFuZCB0aGF0
IHRoZSBwcm9jZXNzIGlzIGV4aXRpbmcuCisgICAgICAgKiBUaGlzIGV4dGVuZHMgdGhlIHRpbWVv
dXQgdW50aWwgdGhlIHByb2Nlc3MgaXMga2lsbGVkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBB
Y2tub3dsZWRnZVF1aXRfRXhpdGluZygpID0gMDsKKworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8g
dGVsbCB0aGUgc3lzdGVtIHRoYXQgdGhlIHVzZXIgaXMgYmVpbmcgcHJvbXB0ZWQgdG8gc2F2ZSBk
YXRhLiBUaGlzCisgICAgICAgKiBoYWx0cyB0aGUgdGltZW91dCBhbmQgZGlzbWlzc2VzIHRoZSBk
YXNoYm9hcmQgKGlmIGl0IHdhcyB1cCkuIEFwcGxpY2F0aW9ucyBzaG91bGQgYmUgc3VyZSB0byBh
Y3R1YWxseSAKKyAgICAgICAqIHByb21wdCB0aGUgdXNlciB0byBzYXZlIGFuZCB0aGVuIGV4aXQg
YWZ0ZXJ3YXJkLCBvdGhlcndpc2UgdGhlIHVzZXIgd2lsbCBiZSBsZWZ0IGluIGEgY29uZnVzaW5n
IHN0YXRlLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21w
dCgpID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTeXN0ZW1fVmVy
c2lvbiA9ICJJVlJTeXN0ZW1fMDE3IjsKKworfQorCisKKy8vIGl2cmFwcGxpY2F0aW9ucy5oCitu
YW1lc3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBVc2VkIGZvciBhbGwgZXJyb3JzIHJlcG9ydGVk
IGJ5IHRoZSBJVlJBcHBsaWNhdGlvbnMgaW50ZXJmYWNlICovCisgICAgICAgZW51bSBFVlJBcHBs
aWNhdGlvbkVycm9yCisgICAgICAgeworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3Jf
Tm9uZSA9IDAsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcEtleUFscmVh
ZHlFeGlzdHMgPSAxMDAsICAgICAgIC8vIE9ubHkgb25lIGFwcGxpY2F0aW9uIGNhbiB1c2UgYW55
IGdpdmVuIGtleQorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCA9
IDEwMSwgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBkb2Vz
IG5vdCBoYXZlIGEgbWFuaWZlc3QKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05v
QXBwbGljYXRpb24gPSAxMDIsICAgICAgICAgICAgICAgICAgICAgLy8gTm8gYXBwbGljYXRpb24g
aXMgcnVubmluZworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4
ID0gMTAzLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0
aW9uID0gMTA0LCAgICAgICAvLyB0aGUgYXBwbGljYXRpb24gY291bGQgbm90IGJlIGZvdW5kCisg
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9JUENGYWlsZWQgPSAxMDUsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEFuIElQQyBmYWlsdXJlIGNhdXNlZCB0aGUgcmVxdWVzdCB0
byBmYWlsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVh
ZHlSdW5uaW5nID0gMTA2LCAKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFs
aWRNYW5pZmVzdCA9IDEwNywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFs
aWRBcHBsaWNhdGlvbiA9IDEwOCwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xh
dW5jaEZhaWxlZCA9IDEwOSwgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHJvY2VzcyBkaWRu
J3Qgc3RhcnQKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxy
ZWFkeVN0YXJ0aW5nID0gMTEwLCAvLyB0aGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIHRo
ZSBzYW1lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9MYXVu
Y2hJblByb2dyZXNzID0gMTExLCAgICAgICAgICAgICAgLy8gVGhlIHN5c3RlbSB3YXMgYWxyZWFk
eSBzdGFydGluZyBhIGRpZmZlcmVudCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25RdWl0dGluZyA9IDExMiwgCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25FcnJvcl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKKyAgICAgICAgICAg
ICAgVlJBcHBsaWNhdGlvbkVycm9yX0lzVGVtcGxhdGUgPSAxMTQsIC8vIGVycm9yIHdoZW4geW91
IHRyeSB0byBjYWxsIExhdW5jaEFwcGxpY2F0aW9uKCkgb24gYSB0ZW1wbGF0ZSB0eXBlIGFwcCAo
dXNlIExhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24pCisgICAgICAgICAgICAgIFZSQXBwbGljYXRp
b25FcnJvcl9TdGVhbVZSSXNFeGl0aW5nID0gMTE1LAorCisgICAgICAgICAgICAgIFZSQXBwbGlj
YXRpb25FcnJvcl9CdWZmZXJUb29TbWFsbCA9IDIwMCwgICAgICAgICAgICAgIC8vIFRoZSBwcm92
aWRlZCBidWZmZXIgd2FzIHRvbyBzbWFsbCB0byBmaXQgdGhlIHJlcXVlc3RlZCBkYXRhCisgICAg
ICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIwMSwgICAgICAg
ICAgICAgIC8vIFRoZSByZXF1ZXN0ZWQgcHJvcGVydHkgd2FzIG5vdCBzZXQKKyAgICAgICAgICAg
ICAgVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25Qcm9wZXJ0eSA9IDIwMiwKKyAgICAgICAgICAg
ICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCisgICAgICAgfTsK
KworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gYXBwbGljYXRpb24ga2V5ICov
CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0
aCA9IDEyODsKKworICAgICAgIC8qKiB0aGVzZSBhcmUgdGhlIHByb3BlcnRpZXMgYXZhaWxhYmxl
IG9uIGFwcGxpY2F0aW9ucy4gKi8KKyAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkK
KyAgICAgICB7CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmlu
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAgICAgICAgICAgVlJBcHBs
aWNhdGlvblByb3BlcnR5X0xhdW5jaFR5cGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAx
MSwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3Rvcnlf
U3RyaW5nICAgICAgID0gMTIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9C
aW5hcnlQYXRoX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTMsCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Bcmd1bWVudHNfU3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgPSAxNCwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNSwKKworICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDUwLAorICAg
ICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfTmV3c1VSTF9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICA9IDUxLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSW1h
Z2VQYXRoX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTIsCisgICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25Qcm9wZXJ0eV9Tb3VyY2VfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNTMsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJv
YXJkT3ZlcmxheV9Cb29sICAgICAgID0gNjAsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYxLAorICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRfQm9vbCAgICAgICAgICAg
ICAgICAgICAgID0gNjIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0lu
dGVybmFsX0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYzLAorICAgICAgICAgICAgICBWUkFw
cGxpY2F0aW9uUHJvcGVydHlfV2FudHNDb21wb3NpdG9yUGF1c2VJblN0YW5kYnlfQm9vbCA9IDY0
LAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9V
aW50NjQgICAgICAgICAgICAgID0gNzAsCisgICAgICAgfTsKKworICAgICAgIC8qKiBUaGVzZSBh
cmUgc3RhdGVzIHRoZSBzY2VuZSBhcHBsaWNhdGlvbiBzdGFydHVwIHByb2Nlc3Mgd2lsbCBnbyB0
aHJvdWdoLiAqLworICAgICAgIGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUKKyAg
ICAgICB7CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAwLAor
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0g
MTAsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRl
cm5hbExhdW5jaCA9IDExLAorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwKKyAgICAgICB9OworCisgICAgICAg
c3RydWN0IEFwcE92ZXJyaWRlS2V5c190CisgICAgICAgeworICAgICAgICAgICAgICBjb25zdCBj
aGFyICpwY2hLZXk7CisgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaFZhbHVlOworICAgICAg
IH07CisKKyAgICAgICAvKiogQ3VycmVudGx5IHJlY29nbml6ZWQgbWltZSB0eXBlcyAqLworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTWltZVR5cGVfSG9tZUFwcCAgICAg
ICAgICAgICAgPSAidnIvaG9tZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciAgICAgICA9ICJ2ci9nYW1lX3RoZWF0ZXIiOworCisg
ICAgICAgY2xhc3MgSVZSQXBwbGljYXRpb25zCisgICAgICAgeworICAgICAgIHB1YmxpYzoKKwor
ICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0aW9uIG1hbmFnZW1lbnQg
IC0tLS0tLS0tLS0tLS0tLSAvLworCisgICAgICAgICAgICAgIC8qKiBBZGRzIGFuIGFwcGxpY2F0
aW9uIG1hbmlmZXN0IHRvIHRoZSBsaXN0IHRvIGxvYWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBv
ZiBpbnN0YWxsZWQgYXBwbGljYXRpb25zLiAKKyAgICAgICAgICAgICAgKiBUZW1wb3JhcnkgbWFu
aWZlc3RzIGFyZSBub3QgYXV0b21hdGljYWxseSBsb2FkZWQgKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNo
YXIgKnBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5ID0gZmFs
c2UgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJlbW92ZXMgYW4gYXBwbGljYXRpb24gbWFu
aWZlc3QgZnJvbSB0aGUgbGlzdCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgaW5z
dGFsbGVkIGFwcGxpY2F0aW9ucy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNh
dGlvbkVycm9yIFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxp
Y2F0aW9uTWFuaWZlc3RGdWxsUGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJu
cyB0cnVlIGlmIGFuIGFwcGxpY2F0aW9uIGlzIGluc3RhbGxlZCAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgSXNBcHBsaWNhdGlvbkluc3RhbGxlZCggY29uc3QgY2hhciAqcGNoQXBwS2V5
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXBwbGlj
YXRpb25zIGF2YWlsYWJsZSBpbiB0aGUgbGlzdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVp
bnQzMl90IEdldEFwcGxpY2F0aW9uQ291bnQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJl
dHVybnMgdGhlIGtleSBvZiB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uLiBUaGUgaW5kZXggaXMg
YXQgbGVhc3QgMCBhbmQgaXMgbGVzcyB0aGFuIHRoZSByZXR1cm4gCisgICAgICAgICAgICAgICog
dmFsdWUgb2YgR2V0QXBwbGljYXRpb25Db3VudCgpLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBs
ZWFzdCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8gCisgICAgICAgICAg
ICAgICogZml0IHRoZSBrZXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRp
b25FcnJvciBHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgoIHVpbnQzMl90IHVuQXBwbGljYXRpb25J
bmRleCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5B
cHBLZXlCdWZmZXJMZW4gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtl
eSBvZiB0aGUgYXBwbGljYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgUHJvY2VzcyBJZC4gVGhlIGJ1
ZmZlciBzaG91bGQgYmUgYXQgbGVhc3QgCisgICAgICAgICAgICAgICoga191bk1heEFwcGxpY2F0
aW9uS2V5TGVuZ3RoIGluIG9yZGVyIHRvIGZpdCB0aGUga2V5LiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCgg
dWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5B
cHBLZXlCdWZmZXJMZW4gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIExhdW5jaGVzIHRoZSBh
cHBsaWNhdGlvbi4gVGhlIGV4aXN0aW5nIHNjZW5lIGFwcGxpY2F0aW9uIHdpbGwgZXhpdCBhbmQg
dGhlbiB0aGUgbmV3IGFwcGxpY2F0aW9uIHdpbGwgc3RhcnQuCisgICAgICAgICAgICAgICogVGhp
cyBjYWxsIGlzIG5vdCB2YWxpZCBmb3IgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGlj
YXRpb24oIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
TGF1bmNoZXMgYW4gaW5zdGFuY2Ugb2YgYW4gYXBwbGljYXRpb24gb2YgdHlwZSB0ZW1wbGF0ZSwg
d2l0aCBpdHMgYXBwIGtleSBiZWluZyBwY2hOZXdBcHBLZXkgKHdoaWNoIG11c3QgYmUgdW5pcXVl
KSBhbmQgb3B0aW9uYWxseSBvdmVycmlkZSBzZWN0aW9ucworICAgICAgICAgICAgICAqIGZyb20g
dGhlIG1hbmlmZXN0IGZpbGUgdmlhIEFwcE92ZXJyaWRlS2V5c190CisgICAgICAgICAgICAgICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hUZW1wbGF0
ZUFwcGxpY2F0aW9uKCBjb25zdCBjaGFyICpwY2hUZW1wbGF0ZUFwcEtleSwgY29uc3QgY2hhciAq
cGNoTmV3QXBwS2V5LCBWUl9BUlJBWV9DT1VOVCggdW5LZXlzICkgY29uc3QgQXBwT3ZlcnJpZGVL
ZXlzX3QgKnBLZXlzLCB1aW50MzJfdCB1bktleXMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IGxhdW5jaGVzIHRoZSBhcHBsaWNhdGlvbiBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
bWltZSB0eXBlIGFuZCBwYXNzZXMgaXQgdGhlIG9wdGlvbiBhcmdzLCB0eXBpY2FsbHkgdGhlIGZp
bGVuYW1lIG9yIG9iamVjdCBuYW1lIG9mIHRoZSBpdGVtIGJlaW5nIGxhdW5jaGVkICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRp
b25Gcm9tTWltZVR5cGUoIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjb25zdCBjaGFyICpwY2hB
cmdzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBMYXVuY2hlcyB0aGUgZGFzaGJvYXJkIG92
ZXJsYXkgYXBwbGljYXRpb24gaWYgaXQgaXMgbm90IGFscmVhZHkgcnVubmluZy4gVGhpcyBjYWxs
IGlzIG9ubHkgdmFsaWQgZm9yIAorICAgICAgICAgICAgICAqIGRhc2hib2FyZCBvdmVybGF5IGFw
cGxpY2F0aW9ucy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9y
IExhdW5jaERhc2hib2FyZE92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogQ2FuY2VsIGEgcGVuZGluZyBsYXVuY2ggZm9yIGFuIGFwcGxpY2F0
aW9uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5j
aCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBJZGVu
dGlmaWVzIGEgcnVubmluZyBhcHBsaWNhdGlvbi4gT3BlblZSIGNhbid0IGFsd2F5cyB0ZWxsIHdo
aWNoIHByb2Nlc3Mgc3RhcnRlZCBpbiByZXNwb25zZQorICAgICAgICAgICAgICAqIHRvIGEgVVJM
LiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIFVSTCBoYW5kbGVyIChvciB0aGUgcHJvY2VzcyBpdHNl
bGYpIHRvIGlkZW50aWZ5IHRoZSBhcHAga2V5IAorICAgICAgICAgICAgICAqIGZvciB0aGUgbm93
IHJ1bm5pbmcgYXBwbGljYXRpb24uIFBhc3NpbmcgYSBwcm9jZXNzIElEIG9mIDAgaWRlbnRpZmll
cyB0aGUgY2FsbGluZyBwcm9jZXNzLiAKKyAgICAgICAgICAgICAgKiBUaGUgYXBwbGljYXRpb24g
bXVzdCBiZSBvbmUgdGhhdCdzIGtub3duIHRvIHRoZSBzeXN0ZW0gdmlhIGEgY2FsbCB0byBBZGRB
cHBsaWNhdGlvbk1hbmlmZXN0LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgSWRlbnRpZnlBcHBsaWNhdGlvbiggdWludDMyX3QgdW5Qcm9jZXNzSWQsIGNvbnN0
IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUg
cHJvY2VzcyBJRCBmb3IgYW4gYXBwbGljYXRpb24uIFJldHVybiAwIGlmIHRoZSBhcHBsaWNhdGlv
biB3YXMgbm90IGZvdW5kIG9yIGlzIG5vdCBydW5uaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKCBjb25zdCBjaGFyICpwY2hBcHBL
ZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFw
cGxpY2F0aW9ucyBlcnJvciAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdl
dEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJBcHBsaWNhdGlvbkVycm9yIGVycm9y
ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLSAgQXBwbGljYXRpb24g
cHJvcGVydGllcyAgLS0tLS0tLS0tLS0tLS0tIC8vCisKKyAgICAgICAgICAgICAgLyoqIFJldHVy
bnMgYSB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24gcHJvcGVydHkuIFRoZSByZXF1aXJlZCBidWZm
ZXIgc2l6ZSB0byBmaXQgdGhpcyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLiAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoIGNvbnN0
IGNoYXIgKnBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIFZSX09V
VF9TVFJJTkcoKSBjaGFyICpwY2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1aW50MzJfdCB1blByb3Bl
cnR5VmFsdWVCdWZmZXJMZW4sIEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIGEgYm9vbCB2YWx1ZSBmb3IgYW4g
YXBwbGljYXRpb24gcHJvcGVydHkuIFJldHVybnMgZmFsc2UgaW4gYWxsIGVycm9yIGNhc2VzLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wo
IGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHks
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBSZXR1cm5zIGEgdWludDY0IHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9w
ZXJ0eS4gUmV0dXJucyAwIGluIGFsbCBlcnJvciBjYXNlcy4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCB1aW50NjRfdCBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KCBjb25zdCBjaGFyICpw
Y2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlv
bkVycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0
cyB0aGUgYXBwbGljYXRpb24gYXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlkIGZv
ciBhcHBsaWNhdGlvbnMgd2hpY2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJB
cHBsaWNhdGlvbkVycm9yIFNldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCggY29uc3QgY2hhciAqcGNo
QXBwS2V5LCBib29sIGJBdXRvTGF1bmNoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRz
IHRoZSBhcHBsaWNhdGlvbiBhdXRvLWxhdW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9y
IGFwcGxpY2F0aW9ucyB3aGljaCByZXR1cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5
X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29sLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIEFkZHMgdGhpcyBtaW1lLXR5cGUgdG8gdGhlIGxpc3Qgb2Ygc3Vw
cG9ydGVkIG1pbWUgdHlwZXMgZm9yIHRoaXMgYXBwbGljYXRpb24qLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgY29uc3QgY2hhciAqcGNoTWltZVR5cGUgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIHJldHVybiB0aGUgYXBwIGtleSB0aGF0IHdpbGwgb3BlbiB0
aGlzIG1pbWUgdHlwZSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RGVmYXVsdEFw
cGxpY2F0aW9uRm9yTWltZVR5cGUoIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hB
cHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBHZXQgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlwZXMgZm9yIHRoaXMg
YXBwbGljYXRpb24sIGNvbW1hLWRlbGltaXRlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMoIGNvbnN0IGNoYXIgKnBjaEFwcEtl
eSwgY2hhciAqcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50MzJfdCB1bk1pbWVUeXBlc0J1ZmZlciAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBsaXN0IG9mIGFwcC1rZXlzIHRoYXQg
c3VwcG9ydCB0aGlzIG1pbWUgdHlwZSwgY29tbWEtZGVsaW1pdGVkLCB0aGUgcmV0dXJuIHZhbHVl
IGlzIG51bWJlciBvZiBieXRlcyB5b3UgbmVlZCB0byByZXR1cm4gdGhlIGZ1bGwgc3RyaW5nICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25zVGhhdFN1cHBv
cnRNaW1lVHlwZSggY29uc3QgY2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleXNUaGF0
U3VwcG9ydEJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgYXJncyBsaXN0IGZyb20gYW4gYXBwIGxhdW5j
aCB0aGF0IGhhZCB0aGUgcHJvY2VzcyBhbHJlYWR5IHJ1bm5pbmcsIHlvdSBjYWxsIHRoaXMgd2hl
biB5b3UgZ2V0IGEgVlJFdmVudF9BcHBsaWNhdGlvbk1pbWVUeXBlTG9hZCAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKCB1aW50
MzJfdCB1bkhhbmRsZSwgY2hhciAqcGNoQXJncywgdWludDMyX3QgdW5BcmdzICkgPSAwOworCisg
ICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLSAgVHJhbnNpdGlvbiBtZXRob2RzIC0tLS0t
LS0tLS0tLS0tLSAvLworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBhcHAga2V5IGZv
ciB0aGUgYXBwbGljYXRpb24gdGhhdCBpcyBzdGFydGluZyB1cCAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiggY2hhciAq
cGNoQXBwS2V5QnVmZmVyLCB1aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBzdGF0ZSAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIEdl
dFRyYW5zaXRpb25TdGF0ZSgpID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyBlcnJv
cnMgdGhhdCB3b3VsZCBwcmV2ZW50IHRoZSBzcGVjaWZpZWQgYXBwbGljYXRpb24gZnJvbSBsYXVu
Y2hpbmcgaW1tZWRpYXRlbHkuIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICAgICAg
ICAgICogY2F1c2UgdGhlIGN1cnJlbnQgc2NlbmUgYXBwbGljYXRpb24gdG8gcXVpdCwgc28gb25s
eSBjYWxsIGl0IHdoZW4geW91IGFyZSBhY3R1YWxseSBhYm91dCB0byBsYXVuY2ggc29tZXRoaW5n
IGVsc2UuCisgICAgICAgICAgICAgICogV2hhdCB0aGUgY2FsbGVyIHNob3VsZCBkbyBhYm91dCB0
aGVzZSBmYWlsdXJlcyBkZXBlbmRzIG9uIHRoZSBmYWlsdXJlOgorICAgICAgICAgICAgICAqICAg
VlJBcHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRpbmcgLSBBbiBleGlzdGluZyBh
cHBsaWNhdGlvbiBoYXMgYmVlbiB0b2xkIHRvIHF1aXQuIFdhaXQgZm9yIGEgVlJFdmVudF9Qcm9j
ZXNzUXVpdAorICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbmQgdHJ5IGFnYWluLgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNh
dGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nIC0gVGhpcyBhcHBsaWNhdGlvbiBp
cyBhbHJlYWR5IHN0YXJ0aW5nLiBUaGlzIGlzIGEgcGVybWFuZW50IGZhaWx1cmUuCisgICAgICAg
ICAgICAgICogICBWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyAgICAgICAgICAg
ICAtIEEgZGlmZmVyZW50IGFwcGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMgaXMg
YSBwZXJtYW5lbnQgZmFpbHVyZS4KKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJv
cl9Ob25lICAgICAgICAgICAgICAgICAgIC0gR28gYWhlYWQgYW5kIGxhdW5jaC4gRXZlcnl0aGlu
ZyBpcyBjbGVhci4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJB
cHBsaWNhdGlvbkVycm9yIFBlcmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrKCBjb25zdCBj
aGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJp
bmcgZm9yIGFuIGFwcGxpY2F0aW9uIHRyYW5zaXRpb24gc3RhdGUgKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBjb25zdCBjaGFyICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJv
bUVudW0oIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIG91dGdvaW5nIHNjZW5lIGFwcCBoYXMg
cmVxdWVzdGVkIGEgc2F2ZSBwcm9tcHQgYmVmb3JlIGV4aXRpbmcgKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBib29sIElzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIFN0YXJ0cyBhIHN1YnByb2Nlc3Mgd2l0aGluIHRoZSBjYWxsaW5nIGFwcGxpY2F0
aW9uLiBUaGlzCisgICAgICAgICAgICAgICogc3VwcHJlc3NlcyBhbGwgYXBwbGljYXRpb24gdHJh
bnNpdGlvbiBVSSBhbmQgYXV0b21hdGljYWxseSBpZGVudGlmaWVzIHRoZSBuZXcgZXhlY3V0YWJs
ZSAKKyAgICAgICAgICAgICAgKiBhcyBwYXJ0IG9mIHRoZSBzYW1lIGFwcGxpY2F0aW9uLiBPbiBz
dWNjZXNzIHRoZSBjYWxsaW5nIHByb2Nlc3Mgc2hvdWxkIGV4aXQgaW1tZWRpYXRlbHkuIAorICAg
ICAgICAgICAgICAqIElmIHdvcmtpbmcgZGlyZWN0b3J5IGlzIE5VTEwgb3IgIiIgdGhlIGRpcmVj
dG9yeSBwb3J0aW9uIG9mIHRoZSBiaW5hcnkgcGF0aCB3aWxsIGJlIAorICAgICAgICAgICAgICAq
IHRoZSB3b3JraW5nIGRpcmVjdG9yeS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBs
aWNhdGlvbkVycm9yIExhdW5jaEludGVybmFsUHJvY2VzcyggY29uc3QgY2hhciAqcGNoQmluYXJ5
UGF0aCwgY29uc3QgY2hhciAqcGNoQXJndW1lbnRzLCBjb25zdCBjaGFyICpwY2hXb3JraW5nRGly
ZWN0b3J5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNj
ZW5lIHByb2Nlc3MgSUQgYWNjb3JkaW5nIHRvIHRoZSBhcHBsaWNhdGlvbiBzeXN0ZW0uIEEgc2Nl
bmUgcHJvY2VzcyB3aWxsIGdldCBzY2VuZQorICAgICAgICAgICAgICAqIGZvY3VzIG9uY2UgaXQg
c3RhcnRzIHJlbmRlcmluZywgYnV0IGl0IHdpbGwgYXBwZWFyIGhlcmUgb25jZSBpdCBjYWxscyBW
Ul9Jbml0IHdpdGggdGhlIFNjZW5lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICogdHlwZS4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRDdXJyZW50U2NlbmVQcm9jZXNz
SWQoKSA9IDA7CisgICAgICAgfTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
SVZSQXBwbGljYXRpb25zX1ZlcnNpb24gPSAiSVZSQXBwbGljYXRpb25zXzAwNiI7CisKK30gLy8g
bmFtZXNwYWNlIHZyCisKKy8vIGl2cnNldHRpbmdzLmgKK25hbWVzcGFjZSB2cgoreworICAgICAg
IGVudW0gRVZSU2V0dGluZ3NFcnJvcgorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJTZXR0aW5n
c0Vycm9yX05vbmUgPSAwLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVk
ID0gMSwKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFpbGVkID0gMiwKKyAg
ICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQgPSAzLAorICAgICAgICAgICAg
ICBWUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFpbGVkID0gNCwKKyAgICAgICAgICAgICAgVlJT
ZXR0aW5nc0Vycm9yX1Vuc2V0U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsIC8vIFRoaXMgd2lsbCBi
ZSByZXR1cm5lZCBpZiB0aGUgc2V0dGluZyBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGFwcHJvcHJp
YXRlIGRlZmF1bHQgZmlsZSBhbmQgaGFzIG5vdCBiZWVuIHNldAorICAgICAgIH07CisKKyAgICAg
ICAvLyBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBzZXR0aW5ncyBrZXkKKyAgICAgICBzdGF0aWMg
Y29uc3QgdWludDMyX3Qga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworCisgICAgICAg
Y2xhc3MgSVZSU2V0dGluZ3MKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAgICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oIEVWUlNl
dHRpbmdzRXJyb3IgZUVycm9yICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiBmaWxlIHN5bmMgb2NjdXJyZWQgKGZvcmNlIG9yIHNldHRpbmdzIGRpcnR5KQorICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgU3luYyggYm9vbCBiRm9yY2UgPSBmYWxzZSwgRVZSU2V0dGlu
Z3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVh
bCB2b2lkIFNldEJvb2woIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNl
dHRpbmdzS2V5LCBib29sIGJWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxw
dHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRJbnQzMiggY29uc3QgY2hh
ciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVl
LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAg
ICAgdmlydHVhbCB2b2lkIFNldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBj
aGFyICpwY2hTZXR0aW5nc0tleSwgZmxvYXQgZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVF
cnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRTdHJp
bmcoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBj
b25zdCBjaGFyICpwY2hWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gVXNlcnMgb2YgdGhlIHN5c3RlbSBuZWVkIHRvIHBy
b3ZpZGUgYSBwcm9wZXIgZGVmYXVsdCBpbiBkZWZhdWx0LnZyc2V0dGluZ3MgaW4gdGhlIHJlc291
cmNlcy9zZXR0aW5ncy8gZGlyZWN0b3J5CisgICAgICAgICAgICAgIC8vIG9mIGVpdGhlciB0aGUg
cnVudGltZSBvciB0aGUgZHJpdmVyX3h4eCBkaXJlY3RvcnkuIE90aGVyd2lzZSB0aGUgZGVmYXVs
dCB3aWxsIGJlIGZhbHNlLCAwLCAwLjAgb3IgIiIKKyAgICAgICAgICAgICAgdmlydHVhbCBib29s
IEdldEJvb2woIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdz
S2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAg
ICAgICAgdmlydHVhbCBpbnQzMl90IEdldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51
bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RmxvYXQoIGNvbnN0
IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5n
c0Vycm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIEdldFN0cmluZyggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0
dGluZ3NLZXksIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1
ZUxlbiwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZVNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rp
b24sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgUmVtb3ZlS2V5SW5TZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0
aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJv
ciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgfTsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNldHRpbmdzX1ZlcnNp
b24gPSAiSVZSU2V0dGluZ3NfMDAyIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBzdGVhbXZyIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfU2VjdGlvbiA9ICJzdGVhbXZyIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUht
ZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNl
ZERyaXZlcktleV9TdHJpbmcgPSAiZm9yY2VkRHJpdmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRI
bWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNw
bGF5RGVidWdfQm9vbCA9ICJkaXNwbGF5RGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1By
b2Nlc3NQaXBlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJk
aXNwbGF5RGVidWdZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRv
QWxsQXBwcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tn
cm91bmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9C
YWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2pl
Y3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9C
YWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5k
RG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3Jp
ZENvbG9yIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
UGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFn
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2
YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jv
b2wgPSAiZGlyZWN0TW9kZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9k
ZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdT
cGVha2VycyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZS
X1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJk
WWF3T2Zmc2V0RGVncmVlcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Q
b3dlck1hbmFnZW1lbnQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdXBlcnNhbXBs
ZVNjYWxlX0Zsb2F0ID0gInN1cGVyc2FtcGxlU2NhbGUiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAi
YWxsb3dBc3luY1JlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZl
ZFJlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rpb24iOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJh
ZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMy
ID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdH
ZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9
ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0g
InN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9
ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29s
ID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBw
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQ3ljbGVC
YWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNl
YyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JldGFp
bERlbW9fQm9vbCA9ICJyZXRhaWxEZW1vIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93U3VwZXJzYW1wbGVG
aWx0ZXJpbmdfQm9vbCA9ICJhbGxvd1N1cGVyc2FtcGxlRmlsdGVyaW5nIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlTGludXhWdWxrYW5Bc3lu
Y19Cb29sID0gImVuYWJsZUxpbnV4VnVsa2FuQXN5bmMiOworCisgICAgICAgLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5cworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhv
dXNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2Vf
RGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNl
ZGlzYW1iaWd1YXRpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
TGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVi
dWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Q
cmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wg
PSAiZGJoaXN0b3J5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAv
LyBudWxsIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
U2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVyIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3RyaW5n
ID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAi
d2luZG93V2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVs
bF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lk
dGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9SZW5kZXJI
ZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNv
bmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsK
KworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyB1c2VyIGludGVyZmFj
ZSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJm
YWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3Rh
dHVzQWx3YXlzT25Ub3AiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
VXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVu
c2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9ICJzY3JlZW5zaG90
VHlwZSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbm90aWZp
Y2F0aW9uIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlm
aWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9O
b3REaXN0dXJiIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBr
ZXlib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXli
b2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3JpYWxDb21wbGV0
aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9T
Y2FsZVggPSAiU2NhbGVYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0TGVmdFgiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYID0g
Ik9mZnNldFJpZ2h0WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9L
ZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7CisKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gcGVyZiBrZXlzCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfSGV1cmlzdGljQWN0aXZl
X0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0g
Indhcm5Pbmx5T25jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Q
ZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9v
bCA9ICJzYXZlVGltaW5nc09uRXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0xpbnV4R1BVUHJvZmlsaW5nX0Jvb2wg
PSAibGludXhHUFVQcm9maWxpbmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIGNvbGxpc2lvbiBib3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRz
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19TdHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25f
Qm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25f
Qm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9
ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxp
c2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91
bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
Q29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9y
R2FtbWFHIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lv
bkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNf
Q29sb3JHYW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAg
ICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYV9Cb29sID0gImVuYWJsZUNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVD
YW1lcmFJbkRhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2Ft
ZXJhRm9yQ29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVy
YUZvclJvb21WaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9Cb3VuZHNDb2xvckdhbW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29s
b3JHYW1tYUdfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMy
ID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3Vu
ZHNDb2xvckdhbW1hQSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9D
YW1lcmFfQm91bmRzU3RyZW5ndGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisg
ICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8i
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFj
a0RldmljZV9TdHJpbmcgPSAib25QbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNv
cmREZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9f
T25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFj
a0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZS
ZWNvcmREZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVk
aW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgLy8gcG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jv
b2wgPSAicG93ZXJPZmZPbkV4aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfUG93ZXJfVHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5z
VGltZW91dCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9U
dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVv
dXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJu
VG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFt
VlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9QYXVzZUNvbXBvc2l0b3JP
blN0YW5kYnlfQm9vbCA9ICJwYXVzZUNvbXBvc2l0b3JPblN0YW5kYnkiOworCisgICAgICAgLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGRhc2hib2FyZCBrZXlzCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9h
cmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0Vu
YWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFyY2Fk
ZU1vZGUiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG1vZGVs
IHNraW4ga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfbW9kZWxz
a2luX1NlY3Rpb24gPSAibW9kZWxza2lucyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gZHJpdmVyIGtleXMgLSBUaGVzZSBjb3VsZCBiZSBjaGVja2VkIGluIGFu
eSBkcml2ZXJfPG5hbWU+IHNlY3Rpb24KKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0RyaXZlcl9FbmFibGVfQm9vbCA9ICJlbmFibGUiOworCit9IC8vIG5hbWVzcGFjZSB2
cgorCisvLyBpdnJjaGFwZXJvbmUuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjaygg
cHVzaCwgOCApCisKK2VudW0gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZQoreworICAgICAgIC8v
IE9LIQorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0sgPSAxLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENo
YXBlcm9uZSBpcyBmdWxseSBjYWxpYnJhdGVkIGFuZCB3b3JraW5nIGNvcnJlY3RseQorCisgICAg
ICAgLy8gV2FybmluZ3MKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcg
PSAxMDAsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0
aW9uTWF5SGF2ZU1vdmVkID0gMTAxLCAgICAgICAvLyBBIGJhc2Ugc3RhdGlvbiB0aGlua3MgdGhh
dCBpdCBtaWdodCBoYXZlIG1vdmVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9X
YXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3ZlZCA9IDEwMiwgICAgICAgICAgICAgICAgICAgICAvLyBU
aGVyZSBhcmUgbGVzcyBiYXNlIHN0YXRpb25zIHRoYW4gd2hlbiBjYWxpYnJhdGVkCisgICAgICAg
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAx
MDMsICAgICAgICAgICAgICAvLyBTZWF0ZWQgYm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVk
IGZvciB0aGUgY3VycmVudCB0cmFja2luZyBjZW50ZXIKKworICAgICAgIC8vIEVycm9ycworICAg
ICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3IgPSAyMDAsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgVW5pdmVyc2VJ
RCBpcyBpbnZhbGlkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNl
U3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50
ZXIgaGFzbid0IGJlIGNhbGlicmF0ZWQgZm9yIGF0IGxlYXN0IG9uZSBvZiB0aGUgYmFzZSBzdGF0
aW9ucworICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25D
b25mbGljdCA9IDIwMiwgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaXMg
Y2FsaWJyYXRlZCwgYnV0IGJhc2Ugc3RhdGlvbnMgZGlzYWdyZWUgb24gdGhlIHRyYWNraW5nIHNw
YWNlCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFs
aWQgPSAyMDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBsYXkgQXJlYSBoYXNuJ3Qg
YmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3VycmVudCB0cmFja2luZyBjZW50ZXIKKyAgICAgICBD
aGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQgPSAy
MDQsICAgICAgICAgICAgICAvLyBDb2xsaXNpb24gQm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJh
dGVkIGZvciB0aGUgY3VycmVudCB0cmFja2luZyBjZW50ZXIKK307CisKKworLyoqIEhJR0ggTEVW
RUwgVFJBQ0tJTkcgU1BBQ0UgQVNTVU1QVElPTlM6CisqIDAsMCwwIGlzIHRoZSBwcmVmZXJyZWQg
c3RhbmRpbmcgYXJlYSBjZW50ZXIuCisqIDBZIGlzIHRoZSBmbG9vciBoZWlnaHQuCisqIC1aIGlz
IHRoZSBwcmVmZXJyZWQgZm9yd2FyZCBmYWNpbmcgZGlyZWN0aW9uLiAqLworY2xhc3MgSVZSQ2hh
cGVyb25lCit7CitwdWJsaWM6CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9m
IENoYXBlcm9uZSBjYWxpYnJhdGlvbi4gVGhpcyBzdGF0ZSBjYW4gY2hhbmdlIGF0IGFueSB0aW1l
IGR1cmluZyBhIHNlc3Npb24gZHVlIHRvIHBoeXNpY2FsIGJhc2Ugc3RhdGlvbiBjaGFuZ2VzLiAq
Ki8KKyAgICAgICB2aXJ0dWFsIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgR2V0Q2FsaWJyYXRp
b25TdGF0ZSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB3aWR0aCBhbmQgZGVwdGgg
b2YgdGhlIFBsYXkgQXJlYSAoZm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGluIFggYW5kIFou
IAorICAgICAgICogVHJhY2tpbmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBv
ZiB0aGUgUGxheSBBcmVhLiAqKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFTaXpl
KCBmbG9hdCAqcFNpemVYLCBmbG9hdCAqcFNpemVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIDQgY29ybmVyIHBvc2l0aW9ucyBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1l
ZCBTb2Z0IEJvdW5kcykuCisgICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjb3VudGVyLWNsb2Nrd2lz
ZSBvcmRlci4KKyAgICAgICAqIFN0YW5kaW5nIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIg
b2YgdGhlIFBsYXkgQXJlYS4KKyAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCisgICAgICAgKiAy
IHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxl
bCB0byB0aGUgWiBheGlzLgorICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAo
b24gdGhlIGZsb29yKS4gKiovCisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVhUmVjdCgg
SG1kUXVhZF90ICpyZWN0ICkgPSAwOworCisgICAgICAgLyoqIFJlbG9hZCBDaGFwZXJvbmUgZGF0
YSBmcm9tIHRoZSAudnJjaGFwIGZpbGUgb24gZGlzay4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQg
UmVsb2FkSW5mbyggdm9pZCApID0gMDsKKworICAgICAgIC8qKiBPcHRpb25hbGx5IGdpdmUgdGhl
IGNoYXBlcm9uZSBzeXN0ZW0gYSBoaXQgYWJvdXQgdGhlIGNvbG9yIGFuZCBicmlnaHRuZXNzIGlu
IHRoZSBzY2VuZSAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U2NlbmVDb2xvciggSG1kQ29s
b3JfdCBjb2xvciApID0gMDsKKworICAgICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgY2hhcGVyb25l
IGJvdW5kcyBkcmF3IGNvbG9yIGFuZCBicmlnaHRuZXNzICoqLworICAgICAgIHZpcnR1YWwgdm9p
ZCBHZXRCb3VuZHNDb2xvciggSG1kQ29sb3JfdCAqcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVt
T3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgSG1kQ29s
b3JfdCAqcE91dHB1dENhbWVyYUNvbG9yICkgPSAwOworCisgICAgICAgLyoqIERldGVybWluZSB3
aGV0aGVyIHRoZSBib3VuZHMgYXJlIHNob3dpbmcgcmlnaHQgbm93ICoqLworICAgICAgIHZpcnR1
YWwgYm9vbCBBcmVCb3VuZHNWaXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIEZvcmNlIHRoZSBi
b3VuZHMgdG8gc2hvdywgbW9zdGx5IGZvciB1dGlsaXRpZXMgKiovCisgICAgICAgdmlydHVhbCB2
b2lkIEZvcmNlQm91bmRzVmlzaWJsZSggYm9vbCBiRm9yY2UgKSA9IDA7Cit9OworCitzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IElWUkNoYXBlcm9uZV9WZXJzaW9uID0gIklWUkNoYXBlcm9uZV8w
MDMiOworCisjcHJhZ21hIHBhY2soIHBvcCApCisKK30KKworLy8gaXZyY2hhcGVyb25lc2V0dXAu
aAorbmFtZXNwYWNlIHZyCit7CisKK2VudW0gRUNoYXBlcm9uZUNvbmZpZ0ZpbGUKK3sKKyAgICAg
ICBFQ2hhcGVyb25lQ29uZmlnRmlsZV9MaXZlID0gMSwgICAgICAgICAgICAgIC8vIFRoZSBsaXZl
IGNoYXBlcm9uZSBjb25maWcsIHVzZWQgYnkgbW9zdCBhcHBsaWNhdGlvbnMgYW5kIGdhbWVzCisg
ICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfVGVtcCA9IDIsICAgICAgICAgICAgICAvLyBUaGUg
dGVtcG9yYXJ5IGNoYXBlcm9uZSBjb25maWcsIHVzZWQgdG8gbGl2ZS1wcmV2aWV3IGNvbGxpc2lv
biBib3VuZHMgaW4gcm9vbSBzZXR1cAorfTsKKworZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MK
K3sKKyAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAweDAwMDEsCit9OworCisv
KiogTWFuYWdlcyB0aGUgd29ya2luZyBjb3B5IG9mIHRoZSBjaGFwZXJvbmUgaW5mby4gQnkgZGVm
YXVsdCB0aGlzIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIAorKiBsaXZlIGNvcHkuIEFueSBjaGFu
Z2VzIG1hZGUgd2l0aCB0aGlzIGludGVyZmFjZSB3aWxsIHN0YXkgaW4gdGhlIHdvcmtpbmcgY29w
eSB1bnRpbCAKKyogQ29tbWl0V29ya2luZ0NvcHkoKSBpcyBjYWxsZWQsIGF0IHdoaWNoIHBvaW50
IHRoZSB3b3JraW5nIGNvcHkgYW5kIHRoZSBsaXZlIGNvcHkgd2lsbCBiZSAKKyogdGhlIHNhbWUg
YWdhaW4uICovCitjbGFzcyBJVlJDaGFwZXJvbmVTZXR1cAoreworcHVibGljOgorCisgICAgICAg
LyoqIFNhdmVzIHRoZSBjdXJyZW50IHdvcmtpbmcgY29weSB0byBkaXNrICovCisgICAgICAgdmly
dHVhbCBib29sIENvbW1pdFdvcmtpbmdDb3B5KCBFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdG
aWxlICkgPSAwOworCisgICAgICAgLyoqIFJldmVydHMgdGhlIHdvcmtpbmcgY29weSB0byBtYXRj
aCB0aGUgbGl2ZSBjaGFwZXJvbmUgY2FsaWJyYXRpb24uCisgICAgICAgKiBUbyBtb2RpZnkgZXhp
c3RpbmcgZGF0YSB0aGlzIE1VU1QgYmUgZG8gV0hJTEUgZ2V0dGluZyBhIG5vbi1lcnJvciBDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXR1cy4KKyAgICAgICAqIE9ubHkgYWZ0ZXIgdGhpcyBzaG91bGQg
eW91IGRvIGdldHMgYW5kIHNldHMgb24gdGhlIGV4aXN0aW5nIGRhdGEuICovCisgICAgICAgdmly
dHVhbCB2b2lkIFJldmVydFdvcmtpbmdDb3B5KCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dGhlIHdpZHRoIGFuZCBkZXB0aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0
IEJvdW5kcykgaW4gWCBhbmQgWiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuCisgICAgICAgKiBUcmFj
a2luZyBzcGFjZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEu
ICovCisgICAgICAgdmlydHVhbCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0ICpw
U2l6ZVgsIGZsb2F0ICpwU2l6ZVogKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgNCBj
b3JuZXIgcG9zaXRpb25zIG9mIHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91
bmRzKSBmcm9tIHRoZSB3b3JraW5nIGNvcHkuCisgICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjbG9j
a3dpc2Ugb3JkZXIuCisgICAgICAgKiBUcmFja2luZyBzcGFjZSBjZW50ZXIgKDAsMCwwKSBpcyB0
aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuCisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgor
ICAgICAgICogMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBh
cmUgcGFyYWxsZWwgdG8gdGhlIFogYXhpcy4KKyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3Ju
ZXIgaXMgMFkgKG9uIHRoZSBmbG9vcikuICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3Jr
aW5nUGxheUFyZWFSZWN0KCBIbWRRdWFkX3QgKnJlY3QgKSA9IDA7CisKKyAgICAgICAvKiogUmV0
dXJucyB0aGUgbnVtYmVyIG9mIFF1YWRzIGlmIHRoZSBidWZmZXIgcG9pbnRzIHRvIG51bGwuIE90
aGVyd2lzZSBpdCByZXR1cm5zIFF1YWRzIAorICAgICAgICogaW50byB0aGUgYnVmZmVyIHVwIHRv
IHRoZSBtYXggc3BlY2lmaWVkIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0
dWFsIGJvb2wgR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VO
VChwdW5RdWFkc0NvdW50KSBIbWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1
YWRzQ291bnQgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIFF1YWRz
IGlmIHRoZSBidWZmZXIgcG9pbnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1cm5zIFF1YWRz
IAorICAgICAgICogaW50byB0aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lmaWVkLiAqLwor
ICAgICAgIHZpcnR1YWwgYm9vbCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfT1VUX0FS
UkFZX0NPVU5UKHB1blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJf
dCogcHVuUXVhZHNDb3VudCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcmVmZXJy
ZWQgc2VhdGVkIHBvc2l0aW9uIGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0
dWFsIGJvb2wgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1h
dHJpeDM0X3QgKnBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisg
ICAgICAgLyoqIFJldHVybnMgdGhlIHN0YW5kaW5nIG9yaWdpbiBmcm9tIHRoZSB3b3JraW5nIGNv
cHkuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3QgKnBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgUGxheSBBcmVhIGluIHRo
ZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdQbGF5QXJl
YVNpemUoIGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWiApID0gMDsKKworICAgICAgIC8qKiBTZXRz
IHRoZSBDb2xsaXNpb24gQm91bmRzIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmly
dHVhbCB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VOVCh1
blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291
bnQgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlv
biBpbiB0aGUgd29ya2luZyBjb3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5n
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4MzRfdCAqcE1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7CisKKyAgICAgICAvKiogU2V0
cyB0aGUgcHJlZmVycmVkIHN0YW5kaW5nIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICov
CisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UoIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdU
cmFja2luZ1Bvc2UgKSA9IDA7CisKKyAgICAgICAvKiogVGVhciBldmVyeXRoaW5nIGRvd24gYW5k
IHJlbG9hZCBpdCBmcm9tIHRoZSBmaWxlIG9uIGRpc2sgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQg
UmVsb2FkRnJvbURpc2soIEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbi4gKi8KKyAg
ICAgICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2Uo
IEhtZE1hdHJpeDM0X3QgKnBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAw
OworCisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5m
byggVlJfQVJSQVlfQ09VTlQodW5UYWdDb3VudCkgdWludDhfdCAqcFRhZ3NCdWZmZXIsIHVpbnQz
Ml90IHVuVGFnQ291bnQgKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEdldExpdmVDb2xsaXNp
b25Cb3VuZHNUYWdzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blRhZ0NvdW50KSB1aW50OF90
ICpwVGFnc0J1ZmZlciwgdWludDMyX3QgKnB1blRhZ0NvdW50ICkgPSAwOworCisgICAgICAgdmly
dHVhbCBib29sIFNldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVu
UXVhZHNDb3VudCkgSG1kUXVhZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3Vu
dCApID0gMDsKKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbygg
VlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVy
LCB1aW50MzJfdCogcHVuUXVhZHNDb3VudCApID0gMDsKKworICAgICAgIHZpcnR1YWwgYm9vbCBF
eHBvcnRMaXZlVG9CdWZmZXIoIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwQnVmZmVyLCB1aW50MzJf
dCAqcG5CdWZmZXJMZW5ndGggKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEltcG9ydEZyb21C
dWZmZXJUb1dvcmtpbmcoIGNvbnN0IGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IG5JbXBvcnRGbGFn
cyApID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hhcGVyb25lU2V0
dXBfVmVyc2lvbiA9ICJJVlJDaGFwZXJvbmVTZXR1cF8wMDUiOworCisKK30KKworLy8gaXZyY29t
cG9zaXRvci5oCituYW1lc3BhY2UgdnIKK3sKKworI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKwor
LyoqIEVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3NpdG9yICovCitlbnVt
IEVWUkNvbXBvc2l0b3JFcnJvcgoreworICAgICAgIFZSQ29tcG9zaXRvckVycm9yX05vbmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVlJDb21w
b3NpdG9yRXJyb3JfUmVxdWVzdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEs
CisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiAgICAgICAgICAg
ICAgPSAxMDAsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgICAgICAg
ICAgICAgICAgICAgICA9IDEwMSwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4
dHVyZSAgICAgICAgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9y
X0lzTm90U2NlbmVBcHBsaWNhdGlvbiAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJDb21w
b3NpdG9yRXJyb3JfVGV4dHVyZUlzT25Xcm9uZ0RldmljZSAgICAgICA9IDEwNCwKKyAgICAgICBW
UkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAg
ICAgIFZSQ29tcG9zaXRvckVycm9yX1NoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAor
ICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0luZGV4T3V0T2ZSYW5nZSAgICAgICAgICAgICAgICAg
ICAgID0gMTA3LAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgICAg
ICAgICAgICAgICAgICAgICA9IDEwOCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlk
Qm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorfTsKKworY29uc3QgdWlu
dDMyX3QgVlJDb21wb3NpdG9yX1JlcHJvamVjdGlvblJlYXNvbl9DcHUgPSAweDAxOworY29uc3Qg
dWludDMyX3QgVlJDb21wb3NpdG9yX1JlcHJvamVjdGlvblJlYXNvbl9HcHUgPSAweDAyOworY29u
c3QgdWludDMyX3QgVlJDb21wb3NpdG9yX1JlcHJvamVjdGlvbkFzeW5jICAgICAgPSAweDA0OyAg
ICAgICAvLyBUaGlzIGZsYWcgaW5kaWNhdGVzIHRoZSBhc3luYyByZXByb2plY3Rpb24gbW9kZSBp
cyBhY3RpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBidXQgZG9lcyBub3QgaW5kaWNhdGUgaWYgcmVwcm9qZWN0aW9uIGFjdHVhbGx5IGhhcHBl
bmVkIG9yIG5vdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFVzZSB0aGUgUmVwcm9qZWN0aW9uUmVhc29uIGZsYWdzIGFib3ZlIHRvIGNoZWNrIGlm
IHJlcHJvamVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gd2FzIGFjdHVhbGx5IGFwcGxpZWQgKGkuZS4gc2NlbmUgdGV4dHVyZSB3YXMgcmV1
c2VkKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IE51bUZyYW1lUHJlc2VudHMgPiAxIGFsc28gaW5kaWNhdGVzIHRoZSBzY2VuZSB0ZXh0dXJlIHdh
cyByZXVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBhbmQgYWxzbyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgaXQgd2FzIHByZXNlbnRlZCBp
biB0b3RhbC4KKworLyoqIFByb3ZpZGVzIGEgc2luZ2xlIGZyYW1lJ3MgdGltaW5nIGluZm9ybWF0
aW9uIHRvIHRoZSBhcHAgKi8KK3N0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAg
ICAgdWludDMyX3QgbV9uU2l6ZTsgLy8gU2V0IHRvIHNpemVvZiggQ29tcG9zaXRvcl9GcmFtZVRp
bWluZyApCisgICAgICAgdWludDMyX3QgbV9uRnJhbWVJbmRleDsKKyAgICAgICB1aW50MzJfdCBt
X25OdW1GcmFtZVByZXNlbnRzOyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFtZSB3YXMgcHJl
c2VudGVkCisgICAgICAgdWludDMyX3QgbV9uTnVtTWlzUHJlc2VudGVkOyAvLyBudW1iZXIgb2Yg
dGltZXMgdGhpcyBmcmFtZSB3YXMgcHJlc2VudGVkIG9uIGEgdnN5bmMgb3RoZXIgdGhhbiBpdCB3
YXMgb3JpZ2luYWxseSBwcmVkaWN0ZWQgdG8KKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVk
RnJhbWVzOyAvLyBudW1iZXIgb2YgYWRkaXRpb25hbCB0aW1lcyBwcmV2aW91cyBmcmFtZSB3YXMg
c2Nhbm5lZCBvdXQKKyAgICAgICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFnczsKKworICAg
ICAgIC8qKiBBYnNvbHV0ZSB0aW1lIHJlZmVyZW5jZSBmb3IgY29tcGFyaW5nIGZyYW1lcy4gIFRo
aXMgYWxpZ25zIHdpdGggdGhlIHZzeW5jIHRoYXQgcnVubmluZyBzdGFydCBpcyByZWxhdGl2ZSB0
by4gKi8KKyAgICAgICBkb3VibGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisKKyAgICAgICAv
KiogVGhlc2UgdGltZXMgbWF5IGluY2x1ZGUgd29yayBmcm9tIG90aGVyIHByb2Nlc3NlcyBkdWUg
dG8gT1Mgc2NoZWR1bGluZy4KKyAgICAgICAqIFRoZSBmZXdlciBwYWNrZXRzIG9mIHdvcmsgdGhl
c2UgYXJlIGJyb2tlbiB1cCBpbnRvLCB0aGUgbGVzcyBsaWtlbHkgdGhpcyB3aWxsIGhhcHBlbi4K
KyAgICAgICAqIEdQVSB3b3JrIGNhbiBiZSBicm9rZW4gdXAgYnkgY2FsbGluZyBGbHVzaC4gIFRo
aXMgY2FuIHNvbWV0aW1lcyBiZSB1c2VmdWwgdG8gZ2V0IHRoZSBHUFUgc3RhcnRlZAorICAgICAg
ICogcHJvY2Vzc2luZyB0aGF0IHdvcmsgZWFybGllciBpbiB0aGUgZnJhbWUuICovCisgICAgICAg
ZmxvYXQgbV9mbFByZVN1Ym1pdEdwdU1zOyAvLyB0aW1lIHNwZW50IHJlbmRlcmluZyB0aGUgc2Nl
bmUgKGdwdSB3b3JrIHN1Ym1pdHRlZCBiZXR3ZWVuIFdhaXRHZXRQb3NlcyBhbmQgc2Vjb25kIFN1
Ym1pdCkKKyAgICAgICBmbG9hdCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOyAvLyBhZGRpdGlvbmFsIHRp
bWUgc3BlbnQgcmVuZGVyaW5nIGJ5IGFwcGxpY2F0aW9uIChlLmcuIGNvbXBhbmlvbiB3aW5kb3cp
CisgICAgICAgZmxvYXQgbV9mbFRvdGFsUmVuZGVyR3B1TXM7IC8vIHRpbWUgYmV0d2VlbiB3b3Jr
IHN1Ym1pdHRlZCBpbW1lZGlhdGVseSBhZnRlciBwcmVzZW50IChpZGVhbGx5IHZzeW5jKSB1bnRp
bCB0aGUgZW5kIG9mIGNvbXBvc2l0b3Igc3VibWl0dGVkIHdvcmsKKyAgICAgICBmbG9hdCBtX2Zs
Q29tcG9zaXRvclJlbmRlckdwdU1zOyAvLyB0aW1lIHNwZW5kIHBlcmZvcm1pbmcgZGlzdG9ydGlv
biBjb3JyZWN0aW9uLCByZW5kZXJpbmcgY2hhcGVyb25lLCBvdmVybGF5cywgZXRjLgorICAgICAg
IGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1TXM7IC8vIHRpbWUgc3BlbnQgb24gY3B1IHN1
Ym1pdHRpbmcgdGhlIGFib3ZlIHdvcmsgZm9yIHRoaXMgZnJhbWUKKyAgICAgICBmbG9hdCBtX2Zs
Q29tcG9zaXRvcklkbGVDcHVNczsgLy8gdGltZSBzcGVudCB3YWl0aW5nIGZvciBydW5uaW5nIHN0
YXJ0IChhcHBsaWNhdGlvbiBjb3VsZCBoYXZlIHVzZWQgdGhpcyBtdWNoIG1vcmUgdGltZSkKKwor
ICAgICAgIC8qKiBNaXNjZWxsYW5lb3VzIG1lYXN1cmVkIGludGVydmFscy4gKi8KKyAgICAgICBm
bG9hdCBtX2ZsQ2xpZW50RnJhbWVJbnRlcnZhbE1zOyAvLyB0aW1lIGJldHdlZW4gY2FsbHMgdG8g
V2FpdEdldFBvc2VzCisgICAgICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7IC8vIHRpbWUg
YmxvY2tlZCBvbiBjYWxsIHRvIHByZXNlbnQgKHVzdWFsbHkgMC4wLCBidXQgY2FuIGdvIGxvbmcp
CisgICAgICAgZmxvYXQgbV9mbFdhaXRGb3JQcmVzZW50Q3B1TXM7IC8vIHRpbWUgc3BlbnQgc3Bp
bi13YWl0aW5nIGZvciBmcmFtZSBpbmRleCB0byBjaGFuZ2UgKG5vdCBuZWFyLXplcm8gaW5kaWNh
dGVzIHdhaXQgb2JqZWN0IGZhaWx1cmUpCisgICAgICAgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7
IC8vIHRpbWUgc3BlbnQgaW4gSVZSQ29tcG9zaXRvcjo6U3VibWl0IChub3QgbmVhci16ZXJvIGlu
ZGljYXRlcyBkcml2ZXIgaXNzdWUpCisKKyAgICAgICAvKiogVGhlIGZvbGxvd2luZyBhcmUgYWxs
IHJlbGF0aXZlIHRvIHRoaXMgZnJhbWUncyBTeXN0ZW1UaW1lSW5TZWNvbmRzICovCisgICAgICAg
ZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOworICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nl
c1JlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbE5ld0ZyYW1lUmVhZHlNczsgLy8gc2Vjb25kIGNh
bGwgdG8gSVZSQ29tcG9zaXRvcjo6U3VibWl0CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JV
cGRhdGVTdGFydE1zOworICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7Cisg
ICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJTdGFydE1zOworCisgICAgICAgdnI6OlRy
YWNrZWREZXZpY2VQb3NlX3QgbV9IbWRQb3NlOyAvLyBwb3NlIHVzZWQgYnkgYXBwIHRvIHJlbmRl
ciB0aGlzIGZyYW1lCit9OworCisvKiogQ3VtdWxhdGl2ZSBzdGF0cyBmb3IgY3VycmVudCBhcHBs
aWNhdGlvbi4gIFRoZXNlIGFyZSBub3QgY2xlYXJlZCB1bnRpbCBhIG5ldyBhcHAgY29ubmVjdHMs
CisqIGJ1dCB0aGV5IGRvIHN0b3AgYWNjdW11bGF0aW5nIG9uY2UgdGhlIGFzc29jaWF0ZWQgYXBw
IGRpc2Nvbm5lY3RzLiAqLworc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7Cisg
ICAgICAgdWludDMyX3QgbV9uUGlkOyAvLyBQcm9jZXNzIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGVz
ZSBzdGF0cyAobWF5IG5vIGxvbmdlciBiZSBydW5uaW5nKS4KKyAgICAgICB1aW50MzJfdCBtX25O
dW1GcmFtZVByZXNlbnRzOyAvLyB0b3RhbCBudW1iZXIgb2YgdGltZXMgd2UgY2FsbGVkIHByZXNl
bnQgKGluY2x1ZGVzIHJlcHJvamVjdGVkIGZyYW1lcykKKyAgICAgICB1aW50MzJfdCBtX25OdW1E
cm9wcGVkRnJhbWVzOyAvLyB0b3RhbCBudW1iZXIgb2YgdGltZXMgYW4gb2xkIGZyYW1lIHdhcyBy
ZS1zY2FubmVkIG91dCAod2l0aG91dCByZXByb2plY3Rpb24pCisgICAgICAgdWludDMyX3QgbV9u
TnVtUmVwcm9qZWN0ZWRGcmFtZXM7IC8vIHRvdGFsIG51bWJlciBvZiB0aW1lcyBhIGZyYW1lIHdh
cyBzY2FubmVkIG91dCBhIHNlY29uZCB0aW1lICh3aXRoIHJlcHJvamVjdGlvbikKKworICAgICAg
IC8qKiBWYWx1ZXMgcmVjb3JkZWQgYXQgc3RhcnR1cCBiZWZvcmUgYXBwbGljYXRpb24gaGFzIGZ1
bGx5IGZhZGVkIGluIHRoZSBmaXJzdCB0aW1lLiAqLworICAgICAgIHVpbnQzMl90IG1fbk51bUZy
YW1lUHJlc2VudHNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1l
c09uU3RhcnR1cDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3Rh
cnR1cDsKKworICAgICAgIC8qKiBBcHBsaWNhdGlvbnMgbWF5IGV4cGxpY2l0bHkgZmFkZSB0byB0
aGUgY29tcG9zaXRvci4gIFRoaXMgaXMgdXN1YWxseSB0byBoYW5kbGUgbGV2ZWwgdHJhbnNpdGlv
bnMsIGFuZCBsb2FkaW5nIG9mdGVuIGNhdXNlcworICAgICAgICogc3lzdGVtIHdpZGUgaGl0Y2hl
cy4gIFRoZSBmb2xsb3dpbmcgc3RhdHMgYXJlIGNvbGxlY3RlZCBkdXJpbmcgdGhpcyBwZXJpb2Qu
ICBEb2VzIG5vdCBpbmNsdWRlIHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnR1cC4gKi8KKyAg
ICAgICB1aW50MzJfdCBtX25OdW1Mb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1l
UHJlc2VudHNMb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2Fk
aW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKwor
ICAgICAgIC8qKiBJZiB3ZSBkb24ndCBnZXQgYSBuZXcgZnJhbWUgZnJvbSB0aGUgYXBwIGluIGxl
c3MgdGhhbiAyLjUgZnJhbWVzLCB0aGVuIHdlIGFzc3VtZSB0aGUgYXBwIGhhcyBodW5nIGFuZCBz
dGFydAorICAgICAgICogZmFkaW5nIGJhY2sgdG8gdGhlIGNvbXBvc2l0b3IuICBUaGUgZm9sbG93
aW5nIHN0YXRzIGFyZSBhIHJlc3VsdCBvZiB0aGlzLCBhbmQgYXJlIGEgc3Vic2V0IG9mIHRob3Nl
IHJlY29yZGVkIGFib3ZlLgorICAgICAgICogRG9lcyBub3QgaW5jbHVkZSB2YWx1ZXMgcmVjb3Jk
ZWQgZHVyaW5nIHN0YXJ0IHVwIG9yIGxvYWRpbmcuICovCisgICAgICAgdWludDMyX3QgbV9uTnVt
VGltZWRPdXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0Owor
ICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50
MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0OworfTsKKworI3ByYWdtYSBwYWNr
KCBwb3AgKQorCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBpbnRlcmFjdCB3aXRoIHRo
ZSBjb21wb3NpdG9yICovCitjbGFzcyBJVlJDb21wb3NpdG9yCit7CitwdWJsaWM6CisgICAgICAg
LyoqIFNldHMgdHJhY2tpbmcgc3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzICovCisgICAg
ICAgdmlydHVhbCB2b2lkIFNldFRyYWNraW5nU3BhY2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVPcmlnaW4gKSA9IDA7CisKKyAgICAgICAvKiogR2V0cyBjdXJyZW50IHRyYWNraW5nIHNwYWNl
IHJldHVybmVkIGJ5IFdhaXRHZXRQb3NlcyAqLworICAgICAgIHZpcnR1YWwgRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gR2V0VHJhY2tpbmdTcGFjZSgpID0gMDsKKworICAgICAgIC8qKiBTY2VuZSBh
cHBsaWNhdGlvbnMgc2hvdWxkIGNhbGwgdGhpcyBmdW5jdGlvbiB0byBnZXQgcG9zZXMgdG8gcmVu
ZGVyIHdpdGggKGFuZCBvcHRpb25hbGx5IHBvc2VzIHByZWRpY3RlZCBhbiBhZGRpdGlvbmFsIGZy
YW1lIG91dCB0byB1c2UgZm9yIGdhbWVwbGF5KS4KKyAgICAgICAqIFRoaXMgZnVuY3Rpb24gd2ls
bCBibG9jayB1bnRpbCAicnVubmluZyBzdGFydCIgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgc3Rh
cnQgb2YgdGhlIGZyYW1lLCBhbmQgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgbGFzdCBtb21lbnQg
YmVmb3JlIG5lZWRpbmcgdG8KKyAgICAgICAqIHN0YXJ0IHJlbmRlcmluZy4KKyAgICAgICAqCisg
ICAgICAgKiBSZXR1cm4gY29kZXM6CisgICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNh
dGlvbiAobWFrZSBzdXJlIHRvIGNhbGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUp
CisgICAgICAgKiAgICAgICAtIERvTm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFr
ZW4gZm9jdXMgLSB0aGlzIHdpbGwgdGhyb3R0bGUgdGhlIGNhbGwgdG8gMTBoeiB0byByZWR1Y2Ug
dGhlIGltcGFjdCBvbiB0aGF0IGFwcCkKKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgRVZSQ29t
cG9zaXRvckVycm9yIFdhaXRHZXRQb3NlcyggVlJfQVJSQVlfQ09VTlQodW5SZW5kZXJQb3NlQXJy
YXlDb3VudCkgVHJhY2tlZERldmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3Qg
dW5SZW5kZXJQb3NlQXJyYXlDb3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQodW5H
YW1lUG9zZUFycmF5Q291bnQpIFRyYWNrZWREZXZpY2VQb3NlX3QqIHBHYW1lUG9zZUFycmF5LCB1
aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBHZXQgdGhl
IGxhc3Qgc2V0IG9mIHBvc2VzIHJldHVybmVkIGJ5IFdhaXRHZXRQb3Nlcy4gKi8KKyAgICAgICB2
aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKCB1
blJlbmRlclBvc2VBcnJheUNvdW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcFJlbmRlclBvc2VB
cnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwKKyAgICAgICAgICAgICAgVlJf
QVJSQVlfQ09VTlQoIHVuR2FtZVBvc2VBcnJheUNvdW50ICkgVHJhY2tlZERldmljZVBvc2VfdCog
cEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50ICkgPSAwOworCisg
ICAgICAgLyoqIEludGVyZmFjZSBmb3IgYWNjZXNzaW5nIGxhc3Qgc2V0IG9mIHBvc2VzIHJldHVy
bmVkIGJ5IFdhaXRHZXRQb3NlcyBvbmUgYXQgYSB0aW1lLgorICAgICAgICogUmV0dXJucyBWUkNv
bXBvc2l0b3JFcnJvcl9JbmRleE91dE9mUmFuZ2UgaWYgdW5EZXZpY2VJbmRleCBub3QgbGVzcyB0
aGFuIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgb3RoZXJ3aXNlIFZSQ29tcG9zaXRvckVycm9y
X05vbmUuCisgICAgICAgKiBJdCBpcyBva2F5IHRvIHBhc3MgTlVMTCBmb3IgZWl0aGVyIHBvc2Ug
aWYgeW91IG9ubHkgd2FudCBvbmUgb2YgdGhlIHZhbHVlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVW
UkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCggVHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1
dFBvc2UsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBPdXRwdXRHYW1lUG9zZSApID0gMDsKKworICAg
ICAgIC8qKiBVcGRhdGVkIHNjZW5lIHRleHR1cmUgdG8gZGlzcGxheS4gSWYgcEJvdW5kcyBpcyBO
VUxMIHRoZSBlbnRpcmUgdGV4dHVyZSB3aWxsIGJlIHVzZWQuICBJZiBjYWxsZWQgZnJvbSBhbiBP
cGVuR0wgYXBwLCBjb25zaWRlciBhZGRpbmcgYSBnbEZsdXNoIGFmdGVyCisgICAgICAgKiBTdWJt
aXR0aW5nIGJvdGggZnJhbWVzIHRvIHNpZ25hbCB0aGUgZHJpdmVyIHRvIHN0YXJ0IHByb2Nlc3Np
bmcsIG90aGVyd2lzZSBpdCBtYXkgd2FpdCB1bnRpbCB0aGUgY29tbWFuZCBidWZmZXIgZmlsbHMg
dXAsIGNhdXNpbmcgdGhlIGFwcCB0byBtaXNzIGZyYW1lcy4KKyAgICAgICAqCisgICAgICAgKiBP
cGVuR0wgZGlydHkgc3RhdGU6CisgICAgICAgKiAgICAgICBnbEJpbmRUZXh0dXJlCisgICAgICAg
KgorICAgICAgICogUmV0dXJuIGNvZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBw
bGljYXRpb24gKG1ha2Ugc3VyZSB0byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1Nj
ZW5lKQorICAgICAgICogICAgICAgLSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFz
IHRha2VuIGZvY3VzKQorICAgICAgICogICAgICAgLSBUZXh0dXJlSXNPbldyb25nRGV2aWNlIChh
cHBsaWNhdGlvbiBkaWQgbm90IHVzZSBwcm9wZXIgQWRhcHRlckluZGV4IC0gc2VlIElWUlN5c3Rl
bS5HZXREWEdJT3V0cHV0SW5mbykKKyAgICAgICAqICAgICAgIC0gU2hhcmVkVGV4dHVyZXNOb3RT
dXBwb3J0ZWQgKGFwcGxpY2F0aW9uIG5lZWRzIHRvIGNhbGwgQ3JlYXRlRFhHSUZhY3RvcnkxIG9y
IGxhdGVyIGJlZm9yZSBjcmVhdGluZyBEWCBkZXZpY2UpCisgICAgICAgKiAgICAgICAtIFRleHR1
cmVVc2VzVW5zdXBwb3J0ZWRGb3JtYXQgKHNjZW5lIHRleHR1cmVzIG11c3QgYmUgY29tcGF0aWJs
ZSB3aXRoIERYR0kgc2hhcmluZyBydWxlcyAtIGUuZy4gdW5jb21wcmVzc2VkLCBubyBtaXBzLCBl
dGMuKQorICAgICAgICogICAgICAgLSBJbnZhbGlkVGV4dHVyZSAodXN1YWxseSBtZWFucyBiYWQg
YXJndW1lbnRzIHBhc3NlZCBpbikKKyAgICAgICAqICAgICAgIC0gQWxyZWFkeVN1Ym1pdHRlZCAo
YXBwIGhhcyBzdWJtaXR0ZWQgdHdvIGxlZnQgdGV4dHVyZXMgb3IgdHdvIHJpZ2h0IHRleHR1cmVz
IGluIGEgc2luZ2xlIGZyYW1lIC0gaS5lLiBiZWZvcmUgY2FsbGluZyBXYWl0R2V0UG9zZXMgYWdh
aW4pCisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTdWJtaXQo
IEVWUkV5ZSBlRXllLCBjb25zdCBUZXh0dXJlX3QgKnBUZXh0dXJlLCBjb25zdCBWUlRleHR1cmVC
b3VuZHNfdCogcEJvdW5kcyA9IDAsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyA9IFN1Ym1p
dF9EZWZhdWx0ICkgPSAwOworCisgICAgICAgLyoqIENsZWFycyB0aGUgZnJhbWUgdGhhdCB3YXMg
c2VudCB3aXRoIHRoZSBsYXN0IGNhbGwgdG8gU3VibWl0LiBUaGlzIHdpbGwgY2F1c2UgdGhlIAor
ICAgICAgICogY29tcG9zaXRvciB0byBzaG93IHRoZSBncmlkIHVudGlsIFN1Ym1pdCBpcyBjYWxs
ZWQgYWdhaW4uICovCisgICAgICAgdmlydHVhbCB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1l
KCkgPSAwOworCisgICAgICAgLyoqIENhbGwgaW1tZWRpYXRlbHkgYWZ0ZXIgcHJlc2VudGluZyB5
b3VyIGFwcCdzIHdpbmRvdyAoaS5lLiBjb21wYW5pb24gd2luZG93KSB0byB1bmJsb2NrIHRoZSBj
b21wb3NpdG9yLgorICAgICAgICogVGhpcyBpcyBhbiBvcHRpb25hbCBjYWxsLCB3aGljaCBvbmx5
IG5lZWRzIHRvIGJlIHVzZWQgaWYgeW91IGNhbid0IGluc3RlYWQgY2FsbCBXYWl0R2V0UG9zZXMg
aW1tZWRpYXRlbHkgYWZ0ZXIgUHJlc2VudC4KKyAgICAgICAqIEZvciBleGFtcGxlLCBpZiB5b3Vy
IGVuZ2luZSdzIHJlbmRlciBhbmQgZ2FtZSBsb29wIGFyZSBub3Qgb24gc2VwYXJhdGUgdGhyZWFk
cywgb3IgYmxvY2tpbmcgdGhlIHJlbmRlciB0aHJlYWQgdW50aWwgM21zIGJlZm9yZSB0aGUgbmV4
dCB2c3luYyB3b3VsZAorICAgICAgICogaW50cm9kdWNlIGEgZGVhZGxvY2sgb2Ygc29tZSBzb3J0
LiAgVGhpcyBmdW5jdGlvbiB0ZWxscyB0aGUgY29tcG9zaXRvciB0aGF0IHlvdSBoYXZlIGZpbmlz
aGVkIGFsbCByZW5kZXJpbmcgYWZ0ZXIgaGF2aW5nIFN1Ym1pdHRlZCBidWZmZXJzIGZvciBib3Ro
CisgICAgICAgKiBleWVzLCBhbmQgaXQgaXMgZnJlZSB0byBzdGFydCBpdHMgcmVuZGVyaW5nIHdv
cmsuICBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZCB5b3Ug
YXJlIHJlbmRlcmluZyBvbi4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUG9zdFByZXNlbnRIYW5k
b2ZmKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aW1pbmcgZGF0YSBpcyBm
aWxsZWQgaXQuICBTZXRzIG9sZGVzdCB0aW1pbmcgaW5mbyBpZiBuRnJhbWVzQWdvIGlzIGxhcmdl
ciB0aGFuIHRoZSBzdG9yZWQgaGlzdG9yeS4KKyAgICAgICAqIEJlIHN1cmUgdG8gc2V0IHRpbWlu
Zy5zaXplID0gc2l6ZW9mKENvbXBvc2l0b3JfRnJhbWVUaW1pbmcpIG9uIHN0cnVjdCBwYXNzZWQg
aW4gYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0RnJhbWVUaW1pbmcoIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90
IHVuRnJhbWVzQWdvID0gMCApID0gMDsKKworICAgICAgIC8qKiBJbnRlcmZhY2UgZm9yIGNvcHlp
bmcgYSByYW5nZSBvZiB0aW1pbmcgZGF0YS4gIEZyYW1lcyBhcmUgcmV0dXJuZWQgaW4gYXNjZW5k
aW5nIG9yZGVyIChvbGRlc3QgdG8gbmV3ZXN0KSB3aXRoIHRoZSBsYXN0IGJlaW5nIHRoZSBtb3N0
IHJlY2VudCBmcmFtZS4KKyAgICAgICAqIE9ubHkgdGhlIGZpcnN0IGVudHJ5J3MgbV9uU2l6ZSBu
ZWVkcyB0byBiZSBzZXQsIGFzIHRoZSByZXN0IHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGF0LiAg
UmV0dXJucyB0b3RhbCBudW1iZXIgb2YgZW50cmllcyBmaWxsZWQgb3V0LiAqLworICAgICAgIHZp
cnR1YWwgdWludDMyX3QgR2V0RnJhbWVUaW1pbmdzKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICpw
VGltaW5nLCB1aW50MzJfdCBuRnJhbWVzICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhl
IHRpbWUgaW4gc2Vjb25kcyBsZWZ0IGluIHRoZSBjdXJyZW50IChhcyBpZGVudGlmaWVkIGJ5IEZy
YW1lVGltaW5nJ3MgZnJhbWVJbmRleCkgZnJhbWUuCisgICAgICAgKiBEdWUgdG8gInJ1bm5pbmcg
c3RhcnQiLCB0aGlzIHZhbHVlIG1heSByb2xsIG92ZXIgdG8gdGhlIG5leHQgZnJhbWUgYmVmb3Jl
IGV2ZXIgcmVhY2hpbmcgMC4wLiAqLworICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RnJhbWVUaW1l
UmVtYWluaW5nKCkgPSAwOworCisgICAgICAgLyoqIEZpbGxzIG91dCBzdGF0cyBhY2N1bXVsYXRl
ZCBmb3IgdGhlIGxhc3QgY29ubmVjdGVkIGFwcGxpY2F0aW9uLiAgUGFzcyBpbiBzaXplb2YoIENv
bXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICkgYXMgc2Vjb25kIHBhcmFtZXRlci4gKi8KKyAgICAg
ICB2aXJ0dWFsIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKCBDb21wb3NpdG9yX0N1bXVsYXRpdmVT
dGF0cyAqcFN0YXRzLCB1aW50MzJfdCBuU3RhdHNTaXplSW5CeXRlcyApID0gMDsKKworICAgICAg
IC8qKiBGYWRlcyB0aGUgdmlldyBvbiB0aGUgSE1EIHRvIHRoZSBzcGVjaWZpZWQgY29sb3IuIFRo
ZSBmYWRlIHdpbGwgdGFrZSBmU2Vjb25kcywgYW5kIHRoZSBjb2xvciB2YWx1ZXMgYXJlIGJldHdl
ZW4KKyAgICAgICAqIDAuMCBhbmQgMS4wLiBUaGlzIGNvbG9yIGlzIGZhZGVkIG9uIHRvcCBvZiB0
aGUgc2NlbmUgYmFzZWQgb24gdGhlIGFscGhhIHBhcmFtZXRlci4gUmVtb3ZpbmcgdGhlIGZhZGUg
Y29sb3IgaW5zdGFudGx5IAorICAgICAgICogd291bGQgYmUgRmFkZVRvQ29sb3IoIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wICkuICBWYWx1ZXMgYXJlIGluIHVuLXByZW11bHRpcGxpZWQgYWxwaGEg
c3BhY2UuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZhZGVUb0NvbG9yKCBmbG9hdCBmU2Vjb25k
cywgZmxvYXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBi
b29sIGJCYWNrZ3JvdW5kID0gZmFsc2UgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1cnJlbnQg
ZmFkZSBjb2xvciB2YWx1ZS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZENvbG9yX3QgR2V0Q3VycmVu
dEZhZGVDb2xvciggYm9vbCBiQmFja2dyb3VuZCA9IGZhbHNlICkgPSAwOworCisgICAgICAgLyoq
IEZhZGluZyB0aGUgR3JpZCBpbiBvciBvdXQgaW4gZlNlY29uZHMgKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgRmFkZUdyaWQoIGZsb2F0IGZTZWNvbmRzLCBib29sIGJGYWRlSW4gKSA9IDA7CisKKyAg
ICAgICAvKiogR2V0IGN1cnJlbnQgYWxwaGEgdmFsdWUgb2YgZ3JpZC4gKi8KKyAgICAgICB2aXJ0
dWFsIGZsb2F0IEdldEN1cnJlbnRHcmlkQWxwaGEoKSA9IDA7CisKKyAgICAgICAvKiogT3ZlcnJp
ZGUgdGhlIHNreWJveCB1c2VkIGluIHRoZSBjb21wb3NpdG9yIChlLmcuIGZvciBkdXJpbmcgbGV2
ZWwgbG9hZHMgd2hlbiB0aGUgYXBwIGNhbid0IGZlZWQgc2NlbmUgaW1hZ2VzIGZhc3QgZW5vdWdo
KQorICAgICAgICogT3JkZXIgaXMgRnJvbnQsIEJhY2ssIExlZnQsIFJpZ2h0LCBUb3AsIEJvdHRv
bS4gIElmIG9ubHkgYSBzaW5nbGUgdGV4dHVyZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgaW4g
bGF0LWxvbmcgZm9ybWF0LgorICAgICAgICogSWYgdHdvIGFyZSBwYXNzZWQsIGl0IGlzIGFzc3Vt
ZWQgYSBsYXQtbG9uZyBzdGVyZW8gcGFpci4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0
b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZSggVlJfQVJSQVlfQ09VTlQoIHVuVGV4dHVyZUNvdW50
ICkgY29uc3QgVGV4dHVyZV90ICpwVGV4dHVyZXMsIHVpbnQzMl90IHVuVGV4dHVyZUNvdW50ICkg
PSAwOworCisgICAgICAgLyoqIFJlc2V0cyBjb21wb3NpdG9yIHNreWJveCBiYWNrIHRvIGRlZmF1
bHRzLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhclNreWJveE92ZXJyaWRlKCkgPSAwOwor
CisgICAgICAgLyoqIEJyaW5ncyB0aGUgY29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGZyb250LiBU
aGlzIGlzIHVzZWZ1bCBmb3IgY292ZXJpbmcgYW55IG90aGVyIHdpbmRvdyB0aGF0IG1heSBiZSBv
biB0aGUgSE1ECisgICAgICAgKiBhbmQgaXMgb2JzY3VyaW5nIHRoZSBjb21wb3NpdG9yIHdpbmRv
dy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckJyaW5nVG9Gcm9udCgpID0gMDsK
KworICAgICAgIC8qKiBQdXNoZXMgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBiYWNrLiBU
aGlzIGlzIHVzZWZ1bCBmb3IgYWxsb3dpbmcgb3RoZXIgYXBwbGljYXRpb25zIHRvIGRyYXcgZGly
ZWN0bHkgdG8gdGhlIEhNRC4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckdvVG9C
YWNrKCkgPSAwOworCisgICAgICAgLyoqIFRlbGxzIHRoZSBjb21wb3NpdG9yIHByb2Nlc3MgdG8g
Y2xlYW4gdXAgYW5kIGV4aXQuIFlvdSBkbyBub3QgbmVlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24g
YXQgc2h1dGRvd24uIFVuZGVyIG5vcm1hbCAKKyAgICAgICAqIGNpcmN1bXN0YW5jZXMgdGhlIGNv
bXBvc2l0b3Igd2lsbCBtYW5hZ2UgaXRzIG93biBsaWZlIGN5Y2xlIGJhc2VkIG9uIHdoYXQgYXBw
bGljYXRpb25zIGFyZSBydW5uaW5nLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9y
UXVpdCgpID0gMDsKKyAgICAgICAKKyAgICAgICAvKiogUmV0dXJuIHdoZXRoZXIgdGhlIGNvbXBv
c2l0b3IgaXMgZnVsbHNjcmVlbiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc0Z1bGxzY3JlZW4o
KSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcHJvY2Vz
cyB0aGF0IGlzIGN1cnJlbnRseSByZW5kZXJpbmcgdGhlIHNjZW5lICovCisgICAgICAgdmlydHVh
bCB1aW50MzJfdCBHZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKSA9IDA7CisKKyAgICAgICAv
KiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IHJlbmRlcmVkIHRo
ZSBsYXN0IGZyYW1lIChvciAwIGlmIHRoZSBjb21wb3NpdG9yIGl0c2VsZiByZW5kZXJlZCB0aGUg
ZnJhbWUuKQorICAgICAgICogUmV0dXJucyAwIHdoZW4gZmFkaW5nIG91dCBmcm9tIGFuIGFwcCBh
bmQgdGhlIGFwcCdzIHByb2Nlc3MgSWQgd2hlbiBmYWRpbmcgaW50byBhbiBhcHAuICovCisgICAg
ICAgdmlydHVhbCB1aW50MzJfdCBHZXRMYXN0RnJhbWVSZW5kZXJlcigpID0gMDsKKworICAgICAg
IC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBoYXMgdGhlIHNjZW5lIGZv
Y3VzICovCisgICAgICAgdmlydHVhbCBib29sIENhblJlbmRlclNjZW5lKCkgPSAwOworCisgICAg
ICAgLyoqIENyZWF0ZXMgYSB3aW5kb3cgb24gdGhlIHByaW1hcnkgbW9uaXRvciB0byBkaXNwbGF5
IHdoYXQgaXMgYmVpbmcgc2hvd24gaW4gdGhlIGhlYWRzZXQuICovCisgICAgICAgdmlydHVhbCB2
b2lkIFNob3dNaXJyb3JXaW5kb3coKSA9IDA7CisKKyAgICAgICAvKiogQ2xvc2VzIHRoZSBtaXJy
b3Igd2luZG93LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBIaWRlTWlycm9yV2luZG93KCkgPSAw
OworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgbWlycm9yIHdpbmRvdyBpcyBzaG93
bi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgSXNNaXJyb3JXaW5kb3dWaXNpYmxlKCkgPSAwOwor
CisgICAgICAgLyoqIFdyaXRlcyBhbGwgaW1hZ2VzIHRoYXQgdGhlIGNvbXBvc2l0b3Iga25vd3Mg
YWJvdXQgKGluY2x1ZGluZyBvdmVybGF5cykgdG8gYSAnc2NyZWVuc2hvdHMnIGZvbGRlciBpbiB0
aGUgU3RlYW1WUiBydW50aW1lIHJvb3QuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0
b3JEdW1wSW1hZ2VzKCkgPSAwOworCisgICAgICAgLyoqIExldCBhbiBhcHAga25vdyBpdCBzaG91
bGQgYmUgcmVuZGVyaW5nIHdpdGggbG93IHJlc291cmNlcy4gKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgU2hvdWxkQXBwUmVuZGVyV2l0aExvd1Jlc291cmNlcygpID0gMDsKKworICAgICAgIC8qKiBP
dmVycmlkZSBpbnRlcmxlYXZlZCByZXByb2plY3Rpb24gbG9naWMgdG8gZm9yY2Ugb24uICovCisg
ICAgICAgdmlydHVhbCB2b2lkIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbiggYm9vbCBi
T3ZlcnJpZGUgKSA9IDA7CisKKyAgICAgICAvKiogRm9yY2UgcmVjb25uZWN0aW5nIHRvIHRoZSBj
b21wb3NpdG9yIHByb2Nlc3MuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlUmVjb25uZWN0
UHJvY2VzcygpID0gMDsKKworICAgICAgIC8qKiBUZW1wb3JhcmlseSBzdXNwZW5kcyByZW5kZXJp
bmcgKHVzZWZ1bCBmb3IgZmluZXIgY29udHJvbCBvdmVyIHNjZW5lIHRyYW5zaXRpb25zKS4gKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgU3VzcGVuZFJlbmRlcmluZyggYm9vbCBiU3VzcGVuZCApID0g
MDsKKworICAgICAgIC8qKiBPcGVucyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIHdpdGggdGhlIHVu
ZGlzdG9ydGVkIGNvbXBvc2l0ZWQgaW1hZ2UgZm9yIGVhY2ggZXllLiAgVXNlIFJlbGVhc2VNaXJy
b3JUZXh0dXJlRDNEMTEgd2hlbiBmaW5pc2hlZAorICAgICAgICogaW5zdGVhZCBvZiBjYWxsaW5n
IFJlbGVhc2Ugb24gdGhlIHJlc291cmNlIGl0c2VsZi4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpF
VlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKCB2cjo6RVZSRXllIGVFeWUs
IHZvaWQgKnBEM0QxMURldmljZU9yUmVzb3VyY2UsIHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3Vy
Y2VWaWV3ICkgPSAwOworICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlTWlycm9yVGV4dHVyZUQz
RDExKCB2b2lkICpwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7CisKKyAgICAgICAvKiog
QWNjZXNzIHRvIG1pcnJvciB0ZXh0dXJlcyBmcm9tIE9wZW5HTC4gKi8KKyAgICAgICB2aXJ0dWFs
IHZyOjpFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKCB2cjo6RVZSRXllIGVF
eWUsIHZyOjpnbFVJbnRfdCAqcGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxl
X3QgKnBnbFNoYXJlZFRleHR1cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIFJl
bGVhc2VTaGFyZWRHTFRleHR1cmUoIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCwgdnI6OmdsU2hh
cmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2
aXJ0dWFsIHZvaWQgTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4
dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFs
IHZvaWQgVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJl
SGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlICkgPSAwOworCisgICAgICAgLyoqIFtWdWxr
YW4gT25seV0KKyAgICAgICAqIHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVu
Z3RoIG9mIHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcg
aW5jbHVkaW5nIHRoZSB0cmFpbGluZworICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBi
ZSBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mLXJlcXVpcmVkIGluc3RhbmNlIGV4dGVuc2lvbnMg
dG8gZW5hYmxlIGluIFZrQ3JlYXRlSW5zdGFuY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90
IEdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBb
VnVsa2FuIG9ubHldCisgICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhl
IGxlbmd0aCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3Ry
aW5nIGluY2x1ZGluZyB0aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdp
bGwgYmUgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiByZXF1aXJlZCBkZXZpY2UgZXh0ZW5zaW9u
cyB0byBlbmFibGUgaW4gVmtDcmVhdGVEZXZpY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90
IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZCggVmtQaHlzaWNhbERldmljZV9UICpw
UGh5c2ljYWxEZXZpY2UsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3Qg
dW5CdWZmZXJTaXplICkgPSAwOworCisgICAgICAgLyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQor
ICAgICAgICogVGhlcmUgYXJlIHR3byBwdXJwb3NlcyBmb3IgU2V0RXhwbGljaXRUaW1pbmdNb2Rl
OgorICAgICAgICogICAgICAgMS4gVG8gZ2V0IGEgbW9yZSBhY2N1cmF0ZSBHUFUgdGltZXN0YW1w
IGZvciB3aGVuIHRoZSBmcmFtZSBiZWdpbnMgaW4gVnVsa2FuL0QzRDEyIGFwcGxpY2F0aW9ucy4K
KyAgICAgICAqICAgICAgIDIuIChPcHRpb25hbCkgVG8gYXZvaWQgaGF2aW5nIFdhaXRHZXRQb3Nl
cyBhY2Nlc3MgdGhlIFZ1bGthbiBxdWV1ZSBzbyB0aGF0IHRoZSBxdWV1ZSBjYW4gYmUgYWNjZXNz
ZWQgZnJvbQorICAgICAgICogICAgICAgYW5vdGhlciB0aHJlYWQgd2hpbGUgV2FpdEdldFBvc2Vz
IGlzIGV4ZWN1dGluZy4KKyAgICAgICAqCisgICAgICAgKiBNb3JlIGFjY3VyYXRlIEdQVSB0aW1l
c3RhbXAgZm9yIHRoZSBzdGFydCBvZiB0aGUgZnJhbWUgaXMgYWNoaWV2ZWQgYnkgdGhlIGFwcGxp
Y2F0aW9uIGNhbGxpbmcKKyAgICAgICAqIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSBpbW1lZGlh
dGVseSBiZWZvcmUgaXRzIGZpcnN0IHN1Ym1pc3Npb24gdG8gdGhlIFZ1bGthbi9EM0QxMiBxdWV1
ZS4KKyAgICAgICAqIFRoaXMgaXMgbW9yZSBhY2N1cmF0ZSBiZWNhdXNlIG5vcm1hbGx5IHRoaXMg
R1BVIHRpbWVzdGFtcCBpcyByZWNvcmRlZCBkdXJpbmcgV2FpdEdldFBvc2VzLiAgSW4gRDNEMTEs
IAorICAgICAgICogV2FpdEdldFBvc2VzIHF1ZXVlcyBhIEdQVSB0aW1lc3RhbXAgd3JpdGUsIGJ1
dCBpdCBkb2VzIG5vdCBhY3R1YWxseSBnZXQgc3VibWl0dGVkIHRvIHRoZSBHUFUgdW50aWwgdGhl
IAorICAgICAgICogYXBwbGljYXRpb24gZmx1c2hlcy4gIEJ5IHVzaW5nIFN1Ym1pdEV4cGxpY2l0
VGltaW5nRGF0YSwgdGhlIHRpbWVzdGFtcCBpcyByZWNvcmRlZCBhdCB0aGUgc2FtZSBwbGFjZSBm
b3IgCisgICAgICAgKiBWdWxrYW4vRDNEMTIgYXMgaXQgaXMgZm9yIEQzRDExLCByZXN1bHRpbmcg
aW4gYSBtb3JlIGFjY3VyYXRlIEdQVSB0aW1lIG1lYXN1cmVtZW50IGZvciB0aGUgZnJhbWUuCisg
ICAgICAgKgorICAgICAgICogQXZvaWRpbmcgV2FpdEdldFBvc2VzIGFjY2Vzc2luZyB0aGUgVnVs
a2FuIHF1ZXVlIGNhbiBiZSBhY2hpZXZlZCB1c2luZyBTZXRFeHBsaWNpdFRpbWluZ01vZGUgYXMg
d2VsbC4gIElmIHRoaXMgaXMgZGVzaXJlZCwKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbiAqTVVT
VCogY2FsbCBQb3N0UHJlc2VudEhhbmRvZmYgaXRzZWxmIHByaW9yIHRvIFdhaXRHZXRQb3Nlcy4g
IElmIFNldEV4cGxpY2l0VGltaW5nTW9kZSBpcyB0cnVlIGFuZCB0aGUKKyAgICAgICAqIGFwcGxp
Y2F0aW9uIGNhbGxzIFBvc3RQcmVzZW50SGFuZG9mZiwgdGhlbiBXYWl0R2V0UG9zZXMgaXMgZ3Vh
cmFudGVlZCBub3QgdG8gYWNjZXNzIHRoZSBxdWV1ZS4gIE5vdGUgdGhhdCBQb3N0UHJlc2VudEhh
bmRvZmYKKyAgICAgICAqIGFuZCBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgd2lsbCBhY2Nlc3Mg
dGhlIHF1ZXVlLCBzbyBvbmx5IFdhaXRHZXRQb3NlcyBiZWNvbWVzIHNhZmUgZm9yIGFjY2Vzc2lu
ZyB0aGUgcXVldWUgZnJvbSBhbm90aGVyCisgICAgICAgKiB0aHJlYWQuICovCisgICAgICAgdmly
dHVhbCB2b2lkIFNldEV4cGxpY2l0VGltaW5nTW9kZSggYm9vbCBiRXhwbGljaXRUaW1pbmdNb2Rl
ICkgPSAwOworCisgICAgICAgLyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogU3Vi
bWl0IGV4cGxpY2l0IHRpbWluZyBkYXRhLiAgV2hlbiBTZXRFeHBsaWNpdFRpbWluZ01vZGUgaXMg
dHJ1ZSwgdGhpcyBtdXN0IGJlIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUKKyAgICAgICAqIHRo
ZSBhcHBsaWNhdGlvbidzIGZpcnN0IHZrUXVldWVTdWJtaXQgKFZ1bGthbikgb3IgSUQzRDEyQ29t
bWFuZFF1ZXVlOjpFeGVjdXRlQ29tbWFuZExpc3RzIChEM0QxMikgb2YgZWFjaCBmcmFtZS4KKyAg
ICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBpbnNlcnQgYSBHUFUgdGltZXN0YW1wIHdyaXRlIGp1
c3QgYmVmb3JlIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgaXRzIHJlbmRlcmluZy4gIFRoaXMgZnVu
Y3Rpb24KKyAgICAgICAqIHdpbGwgcGVyZm9ybSBhIHZrUXVldWVTdWJtaXQgb24gVnVsa2FuIHNv
IG11c3Qgbm90IGJlIGRvbmUgc2ltdWx0YW5lb3VzbHkgd2l0aCBWa1F1ZXVlIG9wZXJhdGlvbnMg
b24gYW5vdGhlciB0aHJlYWQuCisgICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX1Jl
cXVlc3RGYWlsZWQgaWYgU2V0RXhwbGljaXRUaW1pbmdNb2RlIGlzIG5vdCBlbmFibGVkLiAqLwor
ICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0
YSgpID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ29tcG9zaXRvcl9W
ZXJzaW9uID0gIklWUkNvbXBvc2l0b3JfMDIxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisK
Ky8vIGl2cm5vdGlmaWNhdGlvbnMuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjaygg
cHVzaCwgOCApCisKKy8vIFVzZWQgZm9yIHBhc3NpbmcgZ3JhcGhpYyBkYXRhCitzdHJ1Y3QgTm90
aWZpY2F0aW9uQml0bWFwX3QKK3sKKyAgICAgICBOb3RpZmljYXRpb25CaXRtYXBfdCgpCisgICAg
ICAgICAgICAgIDogbV9wSW1hZ2VEYXRhKCBudWxscHRyICkKKyAgICAgICAgICAgICAgLCBtX25X
aWR0aCggMCApCisgICAgICAgICAgICAgICwgbV9uSGVpZ2h0KCAwICkKKyAgICAgICAgICAgICAg
LCBtX25CeXRlc1BlclBpeGVsKCAwICkKKyAgICAgICB7CisgICAgICAgfTsKKworICAgICAgIHZv
aWQgKm1fcEltYWdlRGF0YTsKKyAgICAgICBpbnQzMl90IG1fbldpZHRoOworICAgICAgIGludDMy
X3QgbV9uSGVpZ2h0OworICAgICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsKK307CisKKwor
LyoqIEJlIGF3YXJlIHRoYXQgdGhlIG5vdGlmaWNhdGlvbiB0eXBlIGlzIHVzZWQgYXMgJ3ByaW9y
aXR5JyB0byBwaWNrIHRoZSBuZXh0IG5vdGlmaWNhdGlvbiAqLworZW51bSBFVlJOb3RpZmljYXRp
b25UeXBlCit7CisgICAgICAgLyoqIFRyYW5zaWVudCBub3RpZmljYXRpb25zIGFyZSBhdXRvbWF0
aWNhbGx5IGhpZGRlbiBhZnRlciBhIHBlcmlvZCBvZiB0aW1lIHNldCBieSB0aGUgdXNlci4gCisg
ICAgICAgKiBUaGV5IGFyZSB1c2VkIGZvciB0aGluZ3MgbGlrZSBpbmZvcm1hdGlvbiBhbmQgY2hh
dCBtZXNzYWdlcyB0aGF0IGRvIG5vdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQgPSAwLAorCisgICAgICAgLyoqIFBlcnNp
c3RlbnQgbm90aWZpY2F0aW9ucyBhcmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhleSBhcmUg
aGlkZGVuIGJ5IGNhbGxpbmcgUmVtb3ZlTm90aWZpY2F0aW9uKCkuCisgICAgICAgKiBUaGV5IGFy
ZSB1c2VkIGZvciB0aGluZ3MgbGlrZSBwaG9uZSBjYWxscyBhbmQgYWxhcm1zIHRoYXQgcmVxdWly
ZSB1c2VyIGludGVyYWN0aW9uLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lz
dGVudCA9IDEsCisKKyAgICAgICAvKiogU3lzdGVtIG5vdGlmaWNhdGlvbnMgYXJlIHNob3duIG5v
IG1hdHRlciB3aGF0LiBJdCBpcyBleHBlY3RlZCwgdGhhdCB0aGUgdWxVc2VyVmFsdWUgaXMgdXNl
ZCBhcyBJRC4KKyAgICAgICAgKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc3lzdGVtIG5vdGlmaWNh
dGlvbiBpbiB0aGUgcXVldWUgd2l0aCB0aGF0IElEIGl0IGlzIG5vdCBhY2NlcHRlZCBpbnRvIHRo
ZSBxdWV1ZQorICAgICAgICAqIHRvIHByZXZlbnQgc3BhbW1pbmcgd2l0aCBzeXN0ZW0gbm90aWZp
Y2F0aW9uICovCisgICAgICAgRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0
aFVzZXJWYWx1ZSA9IDIsCit9OworCitlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAg
ICAgLyoqIENyZWF0ZXMgYSBub3RpZmljYXRpb24gd2l0aCBtaW5pbWFsIGV4dGVybmFsIHN0eWxp
bmcuICovCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisKKyAgICAgICAv
KiogVXNlZCBmb3Igbm90aWZpY2F0aW9ucyBhYm91dCBvdmVybGF5LWxldmVsIHN0YXR1cy4gSW4g
U3RlYW0gdGhpcyBpcyB1c2VkIGZvciBldmVudHMgbGlrZSBkb3dubG9hZHMgY29tcGxldGluZy4g
Ki8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiA9IDEwMCwKKworICAg
ICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQgYXJlIHVu
a25vd24gb3Igbm90IGF2YWlsYWJsZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBmcmllbmQg
aW52aXRhdGlvbnMgYW5kIG9mZmxpbmUgZnJpZW5kcy4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRp
b25TdHlsZV9Db250YWN0X0Rpc2FibGVkID0gMjAwLAorCisgICAgICAgLyoqIFVzZWQgZm9yIG5v
dGlmaWNhdGlvbnMgYWJvdXQgY29udGFjdHMgdGhhdCBhcmUgYXZhaWxhYmxlIGJ1dCBpbmFjdGl2
ZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBmcmllbmRzIHRoYXQgYXJlIG9ubGluZSBidXQg
bm90IHBsYXlpbmcgYSBnYW1lLiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRh
Y3RfRW5hYmxlZCA9IDIwMSwKKworICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFi
b3V0IGNvbnRhY3RzIHRoYXQgYXJlIGF2YWlsYWJsZSBhbmQgYWN0aXZlLiBJbiBTdGVhbSB0aGlz
IGlzIHVzZWQgZm9yIGZyaWVuZHMgdGhhdCBhcmUgb25saW5lIGFuZCBjdXJyZW50bHkgcnVubmlu
ZyBhIGdhbWUuICovCisgICAgICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3RpdmUg
PSAyMDIsCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk5vdGlmaWNhdGlvblRleHRN
YXhTaXplID0gMjU2OworCit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7CisKKwor
CisjcHJhZ21hIHBhY2soIHBvcCApCisKKy8qKiBBbGxvd3Mgbm90aWZpY2F0aW9uIHNvdXJjZXMg
dG8gaW50ZXJhY3Qgd2l0aCB0aGUgVlIgc3lzdGVtCisgICAgICAgVGhpcyBjdXJyZW50IGludGVy
ZmFjZSBpcyBub3QgeWV0IGltcGxlbWVudGVkLiBEbyBub3QgdXNlIHlldC4gKi8KK2NsYXNzIElW
Uk5vdGlmaWNhdGlvbnMKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogQ3JlYXRlIGEgbm90aWZpY2F0
aW9uIGFuZCBlbnF1ZXVlIGl0IHRvIGJlIHNob3duIHRvIHRoZSB1c2VyLgorICAgICAgICogQW4g
b3ZlcmxheSBoYW5kbGUgaXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgbm90aWZpY2F0aW9uLCBhcyBv
dGhlcndpc2UgaXQgd291bGQgYmUgaW1wb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGFjdCBvbiBpdC4K
KyAgICAgICAqIFRvIGNyZWF0ZSBhIHR3by1saW5lIG5vdGlmaWNhdGlvbiwgdXNlIGEgbGluZSBi
cmVhayAoJ1xuJykgdG8gc3BsaXQgdGhlIHRleHQgaW50byB0d28gbGluZXMuCisgICAgICAgKiBU
aGUgcEltYWdlIGFyZ3VtZW50IG1heSBiZSBOVUxMLCBpbiB3aGljaCBjYXNlIHRoZSBzcGVjaWZp
ZWQgb3ZlcmxheSdzIGljb24gd2lsbCBiZSB1c2VkIGluc3RlYWQuICovCisgICAgICAgdmlydHVh
bCBFVlJOb3RpZmljYXRpb25FcnJvciBDcmVhdGVOb3RpZmljYXRpb24oIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDY0X3QgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlv
blR5cGUgdHlwZSwgY29uc3QgY2hhciAqcGNoVGV4dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5
bGUsIGNvbnN0IE5vdGlmaWNhdGlvbkJpdG1hcF90ICpwSW1hZ2UsIC8qIG91dCAqLyBWUk5vdGlm
aWNhdGlvbklkICpwTm90aWZpY2F0aW9uSWQgKSA9IDA7CisKKyAgICAgICAvKiogRGVzdHJveSBh
IG5vdGlmaWNhdGlvbiwgaGlkaW5nIGl0IGZpcnN0IGlmIGl0IGN1cnJlbnRseSBzaG93biB0byB0
aGUgdXNlci4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIFJlbW92ZU5v
dGlmaWNhdGlvbiggVlJOb3RpZmljYXRpb25JZCBub3RpZmljYXRpb25JZCApID0gMDsKKworfTsK
Kworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAi
SVZSTm90aWZpY2F0aW9uc18wMDIiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZy
b3ZlcmxheS5oCituYW1lc3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5n
dGggb2YgYW4gb3ZlcmxheSBrZXkgaW4gYnl0ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBu
dWxsIGNoYXJhY3Rlci4gKi8KKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3Zl
cmxheU1heEtleUxlbmd0aCA9IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGgg
b2YgYW4gb3ZlcmxheSBuYW1lIGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVs
bCBjaGFyYWN0ZXIuICovCisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5WUk92ZXJs
YXlNYXhOYW1lTGVuZ3RoID0gMTI4OworCisgICAgICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBv
ZiBvdmVybGF5cyB0aGF0IGNhbiBleGlzdCBpbiB0aGUgc3lzdGVtIGF0IG9uZSB0aW1lLiAqLwor
ICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4T3ZlcmxheUNvdW50ID0gNjQ7CisK
KyAgICAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIG92ZXJsYXkgaW50ZXJzZWN0aW9uIG1h
c2sgcHJpbWl0aXZlcyBwZXIgb3ZlcmxheSAqLworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBrX3VuTWF4T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKwor
ICAgICAgIC8qKiBUeXBlcyBvZiBpbnB1dCBzdXBwb3J0ZWQgYnkgVlIgT3ZlcmxheXMgKi8KKyAg
ICAgICBlbnVtIFZST3ZlcmxheUlucHV0TWV0aG9kCisgICAgICAgeworICAgICAgICAgICAgICBW
Uk92ZXJsYXlJbnB1dE1ldGhvZF9Ob25lICAgICAgICAgICAgICA9IDAsIC8vIE5vIGlucHV0IGV2
ZW50cyB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGlzIG92ZXJsYXkKKyAg
ICAgICAgICAgICAgVlJPdmVybGF5SW5wdXRNZXRob2RfTW91c2UgICAgICAgICAgICAgID0gMSwg
Ly8gVHJhY2tlZCBjb250cm9sbGVycyB3aWxsIGdldCBtb3VzZSBldmVudHMgYXV0b21hdGljYWxs
eQorICAgICAgIH07CisKKyAgICAgICAvKiogQWxsb3dzIHRoZSBjYWxsZXIgdG8gZmlndXJlIG91
dCB3aGljaCBvdmVybGF5IHRyYW5zZm9ybSBnZXR0ZXIgdG8gY2FsbC4gKi8KKyAgICAgICBlbnVt
IFZST3ZlcmxheVRyYW5zZm9ybVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIFZST3Zlcmxh
eVRyYW5zZm9ybV9BYnNvbHV0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAw
LAorICAgICAgICAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZl
ICAgICAgID0gMSwKKyAgICAgICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJs
YXkgICAgICAgICAgICAgICAgICAgICA9IDIsCisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5z
Zm9ybV9UcmFja2VkQ29tcG9uZW50ICAgICAgICAgICAgICAgPSAzLAorICAgICAgIH07CisKKyAg
ICAgICAvKiogT3ZlcmxheSBjb250cm9sIHNldHRpbmdzICovCisgICAgICAgZW51bSBWUk92ZXJs
YXlGbGFncworICAgICAgIHsKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSAgICAg
ICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIG9u
bHkgdGFrZSBlZmZlY3Qgd2hlbiByZW5kZXJlZCB1c2luZyB0aGUgaGlnaCBxdWFsaXR5IHJlbmRl
ciBwYXRoIChzZWUgU2V0SGlnaFF1YWxpdHlPdmVybGF5KS4KKyAgICAgICAgICAgICAgVlJPdmVy
bGF5RmxhZ3NfQ3VydmVkICAgICAgICAgICAgICA9IDEsCisgICAgICAgICAgICAgIFZST3Zlcmxh
eUZsYWdzX1JHU1M0WCAgICAgICAgICAgICAgPSAyLAorCisgICAgICAgICAgICAgIC8vIFNldCB0
aGlzIGZsYWcgb24gYSBkYXNoYm9hcmQgb3ZlcmxheSB0byBwcmV2ZW50IGEgdGFiIGZyb20gc2hv
d2luZyB1cCBmb3IgdGhhdCBvdmVybGF5CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05v
RGFzaGJvYXJkVGFiID0gMywKKworICAgICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIG9uIGEg
ZGFzaGJvYXJkIHRoYXQgaXMgYWJsZSB0byBkZWFsIHdpdGggZ2FtZXBhZCBmb2N1cyBldmVudHMK
KyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAor
CisgICAgICAgICAgICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBvdmVybGF5IHNob3VsZCBkaW0v
YnJpZ2h0ZW4gdG8gc2hvdyBnYW1lcGFkIGZvY3VzCisgICAgICAgICAgICAgIFZST3ZlcmxheUZs
YWdzX1Nob3dHYW1lcGFkRm9jdXMgPSA1LAorCisgICAgICAgICAgICAgIC8vIFdoZW4gaW4gVlJP
dmVybGF5SW5wdXRNZXRob2RfTW91c2UgeW91IGNhbiBvcHRpb25hbGx5IGVuYWJsZSBzZW5kaW5n
IFZSU2Nyb2xsX3QgCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2
ZW50cyA9IDYsCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlRvdWNocGFkRXZl
bnRzID0gNywKKworICAgICAgICAgICAgICAvLyBJZiBzZXQgdGhpcyB3aWxsIHJlbmRlciBhIHZl
cnRpY2FsIHNjcm9sbCB3aGVlbCBvbiB0aGUgcHJpbWFyeSBjb250cm9sbGVyLCAKKyAgICAgICAg
ICAgICAgLy8gIG9ubHkgbmVlZGVkIGlmIG5vdCB1c2luZyBWUk92ZXJsYXlGbGFnc19TZW5kVlJT
Y3JvbGxFdmVudHMgYnV0IHlvdSBzdGlsbCB3YW50IHRvIHJlcHJlc2VudCBhIHNjcm9sbCB3aGVl
bAorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TaG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9
IDgsCisKKyAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBzZXQgb3duZXJzaGlwIGFuZCByZW5k
ZXIgYWNjZXNzIHRvIHRoZSBvdmVybGF5IGFyZSB0cmFuc2ZlcnJlZCAKKyAgICAgICAgICAgICAg
Ly8gdG8gdGhlIG5ldyBzY2VuZSBwcm9jZXNzIG9uIGEgY2FsbCB0byBJVlJBcHBsaWNhdGlvbnM6
OkxhdW5jaEludGVybmFsUHJvY2VzcworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFu
c2Zlck93bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzID0gOSwKKworICAgICAgICAgICAgICAvLyBJ
ZiBzZXQsIHJlbmRlcnMgNTAlIG9mIHRoZSB0ZXh0dXJlIGluIGVhY2ggZXllLCBzaWRlIGJ5IHNp
ZGUKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEw
LCAvLyBUZXh0dXJlIGlzIGxlZnQvcmlnaHQKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3Nf
U2lkZUJ5U2lkZV9Dcm9zc2VkID0gMTEsIC8vIFRleHR1cmUgaXMgY3Jvc3NlZCBhbmQgcmlnaHQv
bGVmdAorCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsIC8vIFRl
eHR1cmUgaXMgYSBwYW5vcmFtYQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TdGVyZW9Q
YW5vcmFtYSA9IDEzLCAvLyBUZXh0dXJlIGlzIGEgc3RlcmVvIHBhbm9yYW1hCisKKyAgICAgICAg
ICAgICAgLy8gSWYgdGhpcyBpcyBzZXQgb24gYW4gb3ZlcmxheSBvd25lZCBieSB0aGUgc2NlbmUg
YXBwbGljYXRpb24gdGhhdCBvdmVybGF5CisgICAgICAgICAgICAgIC8vIHdpbGwgYmUgc29ydGVk
IHdpdGggdGhlICJPdGhlciIgb3ZlcmxheXMgb24gdG9wIG9mIGFsbCBvdGhlciBzY2VuZSBvdmVy
bGF5cworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19Tb3J0V2l0aE5vblNjZW5lT3Zlcmxh
eXMgPSAxNCwKKworICAgICAgICAgICAgICAvLyBJZiBzZXQsIHRoZSBvdmVybGF5IHdpbGwgYmUg
c2hvd24gaW4gdGhlIGRhc2hib2FyZCwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgaGlkZGVuLgorICAg
ICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19WaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKKyAgICAg
ICB9OworCisgICAgICAgZW51bSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18wID0gMCwK
KyAgICAgICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzEgPSAx
LAorICAgICAgICAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9
IDIsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18z
ID0gMywKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5k
U3lzdGVtT3ZlcmxheSA9IDQsCisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZV9Db3VsZG50RmluZE9yQ3JlYXRlQ2xpZW50T3ZlcmxheT0gNSwKKyAgICAgICAgICAgICAgVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0FwcGxpY2F0aW9uUXVpdCA9IDYKKyAgICAgICB9OworCisg
ICAgICAgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190CisgICAgICAgeworICAg
ICAgICAgICAgICBIbWRWZWN0b3IzX3QgdlNvdXJjZTsKKyAgICAgICAgICAgICAgSG1kVmVjdG9y
M190IHZEaXJlY3Rpb247CisgICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVP
cmlnaW47CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25S
ZXN1bHRzX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2UG9pbnQ7Cisg
ICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2Tm9ybWFsOworICAgICAgICAgICAgICBIbWRWZWN0
b3IyX3QgdlVWczsKKyAgICAgICAgICAgICAgZmxvYXQgZkRpc3RhbmNlOworICAgICAgIH07CisK
KyAgICAgICAvLyBJbnB1dCBtb2RlcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdhbWVwYWQgdGV4dCBl
bnRyeQorICAgICAgIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRNb2RlCisgICAgICAgeworICAgICAg
ICAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAgICAgICAg
IGtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQgPSAxLAorICAgICAgICAgICAgICBrX0VH
YW1lcGFkVGV4dElucHV0TW9kZVN1Ym1pdCA9IDIsCisgICAgICAgfTsKKworICAgICAgIC8vIENv
bnRyb2xzIG51bWJlciBvZiBhbGxvd2VkIGxpbmVzIGZvciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBh
ZCB0ZXh0IGVudHJ5CisgICAgICAgZW51bSBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlCisgICAg
ICAgeworICAgICAgICAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5l
ID0gMCwKKyAgICAgICAgICAgICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVM
aW5lcyA9IDEKKyAgICAgICB9OworCisgICAgICAgLyoqIERpcmVjdGlvbnMgZm9yIGNoYW5naW5n
IGZvY3VzIGJldHdlZW4gb3ZlcmxheXMgd2l0aCB0aGUgZ2FtZXBhZCAqLworICAgICAgIGVudW0g
RU92ZXJsYXlEaXJlY3Rpb24KKyAgICAgICB7CisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rp
b25fVXAgPSAwLAorICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAg
ICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX0xlZnQgPSAyLAorICAgICAgICAgICAgICBPdmVy
bGF5RGlyZWN0aW9uX1JpZ2h0ID0gMywKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIE92
ZXJsYXlEaXJlY3Rpb25fQ291bnQgPSA0LAorICAgICAgIH07CisKKyAgICAgICBlbnVtIEVWUk92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlLAorICAgICAgICAg
ICAgICBPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUsCisgICAgICAgfTsK
KworICAgICAgIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WDsKKyAgICAgICAgICAgICAgZmxvYXQgbV9m
bFRvcExlZnRZOworICAgICAgICAgICAgICBmbG9hdCBtX2ZsV2lkdGg7CisgICAgICAgICAgICAg
IGZsb2F0IG1fZmxIZWlnaHQ7CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBJbnRlcnNlY3Rp
b25NYXNrQ2lyY2xlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxDZW50ZXJY
OworICAgICAgICAgICAgICBmbG9hdCBtX2ZsQ2VudGVyWTsKKyAgICAgICAgICAgICAgZmxvYXQg
bV9mbFJhZGl1czsKKyAgICAgICB9OworCisgICAgICAgLyoqIE5PVEUhISEgSWYgeW91IGNoYW5n
ZSB0aGlzIHlvdSBNVVNUIG1hbnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSBhbmQg
b3BlbnZyX2FwaV9mbGF0LmgucHkgKi8KKyAgICAgICB0eXBlZGVmIHVuaW9uCisgICAgICAgewor
ICAgICAgICAgICAgICBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7Cisg
ICAgICAgICAgICAgIEludGVyc2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKKyAgICAgICB9
IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCisgICAgICAgc3Ry
dWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1p
dGl2ZVR5cGU7CisgICAgICAgICAgICAgIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRp
dmVfRGF0YV90IG1fUHJpbWl0aXZlOworICAgICAgIH07CisKKyAgICAgICBjbGFzcyBJVlJPdmVy
bGF5CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8g
T3ZlcmxheSBtYW5hZ2VtZW50IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIEZp
bmRzIGFuIGV4aXN0aW5nIG92ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgRmluZE92ZXJsYXkoIGNvbnN0IGNoYXIg
KnBjaE92ZXJsYXlLZXksIFZST3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIENyZWF0ZXMgYSBuZXcgbmFtZWQgb3ZlcmxheS4gQWxsIG92
ZXJsYXlzIHN0YXJ0IGhpZGRlbiBhbmQgd2l0aCBkZWZhdWx0IHNldHRpbmdzLiAqLworICAgICAg
ICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KCBjb25zdCBjaGFy
ICpwY2hPdmVybGF5S2V5LCBjb25zdCBjaGFyICpwY2hPdmVybGF5TmFtZSwgVlJPdmVybGF5SGFu
ZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogRGVzdHJv
eXMgdGhlIHNwZWNpZmllZCBvdmVybGF5LiBXaGVuIGFuIGFwcGxpY2F0aW9uIGNhbGxzIFZSX1No
dXRkb3duIGFsbCBvdmVybGF5cyBjcmVhdGVkIGJ5IHRoYXQgYXBwIGFyZQorICAgICAgICAgICAg
ICAqIGF1dG9tYXRpY2FsbHkgZGVzdHJveWVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBEZXN0cm95T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IHdoaWNoIG92ZXJsYXkg
dG8gdXNlIHRoZSBoaWdoIHF1YWxpdHkgcmVuZGVyIHBhdGguICBUaGlzIG92ZXJsYXkgd2lsbCBi
ZSBjb21wb3NpdGVkIGluIGR1cmluZyB0aGUgZGlzdG9ydGlvbiBwYXNzIHdoaWNoCisgICAgICAg
ICAgICAgICogcmVzdWx0cyBpbiBpdCBkcmF3aW5nIG9uIHRvcCBvZiBldmVyeXRoaW5nIGVsc2Us
IGJ1dCBhbHNvIGF0IGEgaGlnaGVyIHF1YWxpdHkgYXMgaXQgc2FtcGxlcyB0aGUgc291cmNlIHRl
eHR1cmUgZGlyZWN0bHkgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgICAgKiByYXN0ZXJpemluZyBp
bnRvIGVhY2ggZXllJ3MgcmVuZGVyIHRleHR1cmUgZmlyc3QuICBCZWNhdXNlIGlmIHRoaXMsIG9u
bHkgb25lIG9mIHRoZXNlIGlzIHN1cHBvcnRlZCBhdCBhbnkgZ2l2ZW4gdGltZS4gIEl0IGlzIG1v
c3QgdXNlZnVsCisgICAgICAgICAgICAgICogZm9yIG92ZXJsYXlzIHRoYXQgYXJlIGV4cGVjdGVk
IHRvIHRha2UgdXAgbW9zdCBvZiB0aGUgdXNlcidzIHZpZXcgKGUuZy4gc3RyZWFtaW5nIHZpZGVv
KS4KKyAgICAgICAgICAgICAgKiBUaGlzIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBtb3VzZSBpbnB1
dCB0byB5b3VyIG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBvdmVybGF5IGhhbmRs
ZSBvZiB0aGUgY3VycmVudCBvdmVybGF5IGJlaW5nIHJlbmRlcmVkIHVzaW5nIHRoZSBzaW5nbGUg
aGlnaCBxdWFsaXR5IG92ZXJsYXkgcmVuZGVyIHBhdGguCisgICAgICAgICAgICAgICogT3RoZXJ3
aXNlIGl0IHdpbGwgcmV0dXJuIGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZC4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgR2V0SGlnaFF1YWxpdHlPdmVybGF5
KCkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGaWxscyB0aGUgcHJvdmlkZWQgYnVmZmVyIHdp
dGggdGhlIHN0cmluZyBrZXkgb2YgdGhlIG92ZXJsYXkuIFJldHVybnMgdGhlIHNpemUgb2YgYnVm
ZmVyIHJlcXVpcmVkIHRvIHN0b3JlIHRoZSBrZXksIGluY2x1ZGluZworICAgICAgICAgICAgICAq
IHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4ga191blZST3ZlcmxheU1heEtleUxlbmd0
aCB3aWxsIGJlIGVub3VnaCBieXRlcyB0byBmaXQgdGhlIHN0cmluZy4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCB1aW50MzJfdCBHZXRPdmVybGF5S2V5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5C
dWZmZXJTaXplLCBFVlJPdmVybGF5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBGaWxscyB0aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIGZyaWVuZGx5IG5h
bWUgb2YgdGhlIG92ZXJsYXkuIFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRv
IHN0b3JlIHRoZSBrZXksIGluY2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGlu
ZyBudWxsIGNoYXJhY3Rlci4ga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggd2lsbCBiZSBlbm91
Z2ggYnl0ZXMgdG8gZml0IHRoZSBzdHJpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0T3ZlcmxheU5hbWUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
VlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVW
Uk92ZXJsYXlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHNl
dCB0aGUgbmFtZSB0byB1c2UgZm9yIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5TmFtZSggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBjb25zdCBjaGFyICpwY2hOYW1lICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBHZXRzIHRoZSByYXcgaW1hZ2UgZGF0YSBmcm9tIGFuIG92ZXJsYXkuIE92ZXJsYXkgaW1h
Z2UgZGF0YSBpcyBhbHdheXMgcmV0dXJuZWQgYXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhl
bC4gSWYgdGhlIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCB3aWR0aCBhbmQgaGVpZ2h0IAor
ICAgICAgICAgICAgICAqIHdpbGwgYmUgc2V0IGFuZCBWUk92ZXJsYXlFcnJvcl9BcnJheVRvb1Nt
YWxsIGlzIHJldHVybmVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBHZXRPdmVybGF5SW1hZ2VEYXRhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IHZvaWQgKnB2QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICpwdW5XaWR0
aCwgdWludDMyX3QgKnB1bkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogcmV0dXJu
cyBhIHN0cmluZyB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIHNwZWNpZmllZCBvdmVybGF5IGVy
cm9yLiBUaGUgc3RyaW5nIHdpbGwgYmUgdGhlIG5hbWUgCisgICAgICAgICAgICAgICogb2YgdGhl
IGVycm9yIGVudW0gdmFsdWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSggRVZS
T3ZlcmxheUVycm9yIGVycm9yICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVy
bGF5IHJlbmRlcmluZyBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRo
ZSBwaWQgdGhhdCBpcyBhbGxvd2VkIHRvIHJlbmRlciB0byB0aGlzIG92ZXJsYXkgKHRoZSBjcmVh
dG9yIHBpZCBpcyBhbHdheXMgYWxsb3cgdG8gcmVuZGVyKSwKKyAgICAgICAgICAgICAgKiAgICAg
ICBieSBkZWZhdWx0IHRoaXMgaXMgdGhlIHBpZCBvZiB0aGUgcHJvY2VzcyB0aGF0IG1hZGUgdGhl
IG92ZXJsYXkgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVJlbmRlcmluZ1BpZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
MzJfdCB1blBJRCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcGlkIHRoYXQg
aXMgYWxsb3dlZCB0byByZW5kZXIgdG8gdGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgdWludDMyX3QgR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IGZsYWcg
c2V0dGluZyBmb3IgYSBnaXZlbiBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
T3ZlcmxheUVycm9yIFNldE92ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCApID0gMDsK
KworICAgICAgICAgICAgICAvKiogU2V0cyBmbGFnIHNldHRpbmcgZm9yIGEgZ2l2ZW4gb3Zlcmxh
eSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5Rmxh
ZyggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3Zl
cmxheUZsYWcsIGJvb2wgKnBiRW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0
cyB0aGUgY29sb3IgdGludCBvZiB0aGUgb3ZlcmxheSBxdWFkLiBVc2UgMC4wIHRvIDEuMCBwZXIg
Y2hhbm5lbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheUNvbG9yKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQs
IGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdl
dHMgdGhlIGNvbG9yIHRpbnQgb2YgdGhlIG92ZXJsYXkgcXVhZC4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUNvbG9yKCBWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICpwZlJlZCwgZmxvYXQgKnBmR3JlZW4sIGZsb2F0ICpw
ZkJsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFscGhhIG9mIHRoZSBv
dmVybGF5IHF1YWQuIFVzZSAxLjAgZm9yIDEwMCBwZXJjZW50IG9wYWNpdHkgdG8gMC4wIGZvciAw
IHBlcmNlbnQgb3BhY2l0eS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheUFscGhhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZs
b2F0IGZBbHBoYSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYWxwaGEgb2Yg
dGhlIG92ZXJsYXkgcXVhZC4gQnkgZGVmYXVsdCBvdmVybGF5cyBhcmUgcmVuZGVyaW5nIGF0IDEw
MCBwZXJjZW50IGFscGhhICgxLjApLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJs
YXlFcnJvciBHZXRPdmVybGF5QWxwaGEoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgZmxvYXQgKnBmQWxwaGEgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFz
cGVjdCByYXRpbyBvZiB0aGUgdGV4ZWxzIGluIHRoZSBvdmVybGF5LiAxLjAgbWVhbnMgdGhlIHRl
eGVscyBhcmUgc3F1YXJlLiAyLjAgbWVhbnMgdGhlIHRleGVscworICAgICAgICAgICAgICAqIGFy
ZSB0d2ljZSBhcyB3aWRlIGFzIHRoZXkgYXJlIHRhbGwuIERlZmF1bHRzIHRvIDEuMC4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleGVsQXNwZWN0
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0
ZXhlbHMgaW4gdGhlIG92ZXJsYXkuIERlZmF1bHRzIHRvIDEuMCAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmVGV4ZWxBc3BlY3QgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFNldHMgdGhlIHJlbmRlcmluZyBzb3J0IG9yZGVyIGZvciB0aGUgb3Zl
cmxheS4gT3ZlcmxheXMgYXJlIHJlbmRlcmVkIHRoaXMgb3JkZXI6CisgICAgICAgICAgICAgICog
ICAgICBPdmVybGF5cyBvd25lZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24KKyAgICAgICAgICAg
ICAgKiAgICAgIE92ZXJsYXlzIG93bmVkIGJ5IHNvbWUgb3RoZXIgYXBwbGljYXRpb24KKyAgICAg
ICAgICAgICAgKgorICAgICAgICAgICAgICAqICAgICAgIFdpdGhpbiBhIGNhdGVnb3J5IG92ZXJs
YXlzIGFyZSByZW5kZXJlZCBsb3dlc3Qgc29ydCBvcmRlciB0byBoaWdoZXN0IHNvcnQgb3JkZXIu
IE92ZXJsYXlzIHdpdGggdGhlIHNhbWUgCisgICAgICAgICAgICAgICogICAgICAgc29ydCBvcmRl
ciBhcmUgcmVuZGVyZWQgYmFjayB0byBmcm9udCBiYXNlIG9uIGRpc3RhbmNlIGZyb20gdGhlIEhN
RC4KKyAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAqICAgICAgIFNvcnQgb3JkZXIgZGVm
YXVsdHMgdG8gMC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVNvcnRPcmRlciggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
MzJfdCB1blNvcnRPcmRlciApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgc29y
dCBvcmRlciBvZiB0aGUgb3ZlcmxheS4gU2VlIFNldE92ZXJsYXlTb3J0T3JkZXIgZm9yIGhvdyB0
aGlzIHdvcmtzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRP
dmVybGF5U29ydE9yZGVyKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQz
Ml90ICpwdW5Tb3J0T3JkZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHdp
ZHRoIG9mIHRoZSBvdmVybGF5IHF1YWQgaW4gbWV0ZXJzLiBCeSBkZWZhdWx0IG92ZXJsYXlzIGFy
ZSByZW5kZXJlZCBvbiBhIHF1YWQgdGhhdCBpcyAxIG1ldGVyIGFjcm9zcyAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5V2lkdGhJbk1ldGVycyggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmV2lkdGhJbk1ldGVycyApID0g
MDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkg
cXVhZCBpbiBtZXRlcnMuIEJ5IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVh
ZCB0aGF0IGlzIDEgbWV0ZXIgYWNyb3NzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zl
cmxheUVycm9yIEdldE92ZXJsYXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIGZsb2F0ICpwZldpZHRoSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIEZvciBoaWdoLXF1YWxpdHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIHNldHMgdGhlIGRp
c3RhbmNlIHJhbmdlIGluIG1ldGVycyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGlj
YWxseSBjdXJ2ZQorICAgICAgICAgICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2Vy
LiAgTWluIGlzIGRpc3RhbmNlIGlzIHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZl
ZC4gIE1heCBpcyB3aGVuIGxlYXN0IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycygg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1l
dGVycywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEZvciBoaWdoLXF1YWxpdHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIGdldHMgdGhlIGRpc3Rh
bmNlIHJhbmdlIGluIG1ldGVycyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxs
eSBjdXJ2ZQorICAgICAgICAgICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAg
TWluIGlzIGRpc3RhbmNlIGlzIHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4g
IE1heCBpcyB3aGVuIGxlYXN0IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqcGZNaW5EaXN0YW5jZUluTWV0
ZXJzLCBmbG9hdCAqcGZNYXhEaXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBTZXRzIHRoZSBjb2xvcnNwYWNlIHRoZSBvdmVybGF5IHRleHR1cmUncyBkYXRhIGlzIGlu
LiAgRGVmYXVsdHMgdG8gJ2F1dG8nLgorICAgICAgICAgICAgICAqIElmIHRoZSB0ZXh0dXJlIG5l
ZWRzIHRvIGJlIHJlc29sdmVkLCB5b3Ugc2hvdWxkIGNhbGwgU2V0T3ZlcmxheVRleHR1cmUgd2l0
aCB0aGUgYXBwcm9wcmlhdGUgY29sb3JzcGFjZSBpbnN0ZWFkLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgZVRleHR1cmVDb2xvclNw
YWNlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBvdmVybGF5J3MgY3VycmVu
dCBjb2xvcnNwYWNlIHNldHRpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIEdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBFQ29sb3JTcGFjZSAqcGVUZXh0dXJlQ29sb3JTcGFjZSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9y
IHRoZSBvdmVybGF5LiBVViBNaW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXgg
aXMgdGhlIGxvd2VyIHJpZ2h0IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgY29uc3QgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJv
dW5kcyApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4
dHVyZSB0byB1c2UgZm9yIHRoZSBvdmVybGF5LiBVViBNaW4gaXMgdGhlIHVwcGVyIGxlZnQgY29y
bmVyIGFuZCBVViBNYXggaXMgdGhlIGxvd2VyIHJpZ2h0IGNvcm5lci4gKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5
VGV4dHVyZUJvdW5kcyApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyByZW5kZXIgbW9k
ZWwgdG8gZHJhdyBiZWhpbmQgdGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dWludDMyX3QgR2V0T3ZlcmxheVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBIbWRD
b2xvcl90ICpwQ29sb3IsIHZyOjpFVlJPdmVybGF5RXJyb3IgKnBFcnJvciApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogU2V0cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhpbmQgdGhpcyBvdmVy
bGF5IGFuZCB0aGUgdmVydGV4IGNvbG9yIHRvIHVzZSwgcGFzcyBudWxsIGZvciBwQ29sb3IgdG8g
bWF0Y2ggdGhlIG92ZXJsYXlzIHZlcnRleCBjb2xvci4gCisgICAgICAgICAgICAgICAgICAgICBU
aGUgbW9kZWwgaXMgc2NhbGVkIGJ5IHRoZSBzYW1lIGFtb3VudCBhcyB0aGUgb3ZlcmxheSwgd2l0
aCBhIGRlZmF1bHQgb2YgMW0uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5UmVuZGVyTW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsLCBjb25zdCBIbWRDb2xvcl90
ICpwQ29sb3IgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9y
bSB0eXBlIG9mIHRoaXMgb3ZlcmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgVlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqcGVUcmFuc2Zvcm1UeXBlICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gYWJzb2x1dGUgdHJh
Y2tpbmcgb3JpZ2luLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBT
ZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBjb25zdCBIbWRN
YXRyaXgzNF90ICpwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyBhYnNvbHV0ZS4g
UmV0dXJucyBhbiBlcnJvciBpZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9y
bUFic29sdXRlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luICpwZVRyYWNraW5nT3JpZ2luLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tp
bmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIHRyYW5zZm9ybSB0byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3JtIG9mIHRoZSBzcGVj
aWZpZWQgdHJhY2tlZCBkZXZpY2UuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3Zlcmxh
eUVycm9yIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2Vk
RGV2aWNlLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRy
YW5zZm9ybSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlm
IGl0IGlzIHJlbGF0aXZlIHRvIGEgdHJhY2tlZCBkZXZpY2UuIFJldHVybnMgYW4gZXJyb3IgaWYg
dGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRp
dmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4
X3QgKnB1blRyYWNrZWREZXZpY2UsIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9P
dmVybGF5VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFu
c2Zvcm0gdG8gZHJhdyB0aGUgb3ZlcmxheSBvbiBhIHJlbmRlcm1vZGVsIGNvbXBvbmVudCBtZXNo
IGluc3RlYWQgb2YgYSBxdWFkLiBUaGlzIHdpbGwgb25seSBkcmF3IHdoZW4gdGhlIHN5c3RlbSBp
cworICAgICAgICAgICAgICAqIGRyYXdpbmcgdGhlIGRldmljZS4gT3ZlcmxheXMgd2l0aCB0aGlz
IHRyYW5zZm9ybSB0eXBlIGNhbm5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWRE
ZXZpY2VDb21wb25lbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFt
ZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGluZm9ybWF0
aW9uIHdoZW4gdGhlIG92ZXJsYXkgaXMgcmVuZGVyaW5nIG9uIGEgY29tcG9uZW50LiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZUNvbXBvbmVudCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBU
cmFja2VkRGV2aWNlSW5kZXhfdCAqcHVuRGV2aWNlSW5kZXgsIGNoYXIgKnBjaENvbXBvbmVudE5h
bWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZVNpemUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyByZWxhdGl2ZSB0byBhbm90aGVyIG92ZXJs
YXkuIFJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUu
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5
VHJhbnNmb3JtT3ZlcmxheVJlbGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIFZST3ZlcmxheUhhbmRsZV90ICp1bE92ZXJsYXlIYW5kbGVQYXJlbnQsIEhtZE1hdHJpeDM0
X3QgKnBtYXRQYXJlbnRPdmVybGF5VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byByZWxhdGl2ZSB0
byB0aGUgdHJhbnNmb3JtIG9mIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gVGhpcyBvdmVybGF5cyB2
aXNpYmlsaXR5IHdpbGwgYWxzbyB0cmFjayB0aGUgcGFyZW50cyB2aXNpYmlsaXR5ICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3Jt
T3ZlcmxheVJlbGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZVBhcmVudCwgY29uc3QgSG1kTWF0cml4MzRfdCAq
cG1hdFBhcmVudE92ZXJsYXlUb092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAg
ICAgLyoqIFNob3dzIHRoZSBWUiBvdmVybGF5LiAgRm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25s
eSB0aGUgRGFzaGJvYXJkIE1hbmFnZXIgaXMgYWxsb3dlZCB0byBjYWxsIHRoaXMuICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNob3dPdmVybGF5KCBWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEhpZGVz
IHRoZSBWUiBvdmVybGF5LiAgRm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJv
YXJkIE1hbmFnZXIgaXMgYWxsb3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgb3ZlcmxheSBpcyB2aXNpYmxlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNP
dmVybGF5VmlzaWJsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOwor
CisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIHRyYW5zZm9ybSBpbiAzZCBzcGFjZSBhc3NvY2lh
dGVkIHdpdGggYSBzcGVjaWZpYyAyZCBwb2ludCBpbiB0aGUgb3ZlcmxheSdzIGNvb3JkaW5hdGUg
c3BhY2UgKHdoZXJlIDAsMCBpcyB0aGUgbG93ZXIgbGVmdCkuIC1aIHBvaW50cyBvdXQgb2YgdGhl
IG92ZXJsYXkgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0VHJh
bnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9y
Ml90IGNvb3JkaW5hdGVzSW5PdmVybGF5LCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhbnNmb3JtICkg
PSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVybGF5IGlucHV0IG1ldGhvZHMKKyAg
ICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50
IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIG92ZXJsYXkncyBldmVudCBxdWV1ZSwgaWYgdGhl
cmUgaXMgb25lLiAKKyAgICAgICAgICAgICAgKiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzIHRoaXMg
bWV0aG9kIHJldHVybnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBi
eXRlcyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgUG9sbE5leHRPdmVybGF5RXZlbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgVlJFdmVudF90ICpwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50ICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IGlucHV0IHNldHRpbmdzIGZvciB0aGUg
c3BlY2lmaWVkIG92ZXJsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCAqcGVJbnB1dE1ldGhvZCApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogU2V0cyB0aGUgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3Zl
cmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eUlucHV0TWV0aG9kKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3Zlcmxh
eUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0
cyB0aGUgbW91c2Ugc2NhbGluZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVudHMu
IFRoZSBhY3R1YWwgdGV4dHVyZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMgaXMK
KyAgICAgICAgICAgICAgKiB0eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkg
aW4gcGl4ZWxzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRP
dmVybGF5TW91c2VTY2FsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBIbWRW
ZWN0b3IyX3QgKnB2ZWNNb3VzZVNjYWxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRz
IHRoZSBtb3VzZSBzY2FsaW5nIGZhY3RvciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4g
VGhlIGFjdHVhbCB0ZXh0dXJlIG1heSBiZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcwor
ICAgICAgICAgICAgICAqIHR5cGljYWxseSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBp
biBwaXhlbHMgKG5vdCBpbiB3b3JsZCBzcGFjZSkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUsIGNvbnN0IEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIENvbXB1dGVzIHRoZSBvdmVybGF5LXNwYWNlIHBpeGVsIGNv
b3JkaW5hdGVzIG9mIHdoZXJlIHRoZSByYXkgaW50ZXJzZWN0cyB0aGUgb3ZlcmxheSB3aXRoIHRo
ZQorICAgICAgICAgICAgICAqIHNwZWNpZmllZCBzZXR0aW5ncy4gUmV0dXJucyBmYWxzZSBpZiB0
aGVyZSBpcyBubyBpbnRlcnNlY3Rpb24uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBD
b21wdXRlT3ZlcmxheUludGVyc2VjdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBjb25zdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCAqcFBhcmFtcywgVlJPdmVy
bGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICpwUmVzdWx0cyApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogUHJvY2Vzc2VzIG1vdXNlIGlucHV0IGZyb20gdGhlIHNwZWNpZmllZCBjb250cm9sbGVy
IGFzIHRob3VnaCBpdCB3ZXJlIGEgbW91c2UgcG9pbnRlZCBhdCBhIGNvbXBvc2l0b3Igb3Zlcmxh
eSB3aXRoIHRoZQorICAgICAgICAgICAgICAqIHNwZWNpZmllZCBzZXR0aW5ncy4gVGhlIGNvbnRy
b2xsZXIgaXMgdHJlYXRlZCBsaWtlIGEgbGFzZXIgcG9pbnRlciBvbiB0aGUgLXogYXhpcy4gVGhl
IHBvaW50IHdoZXJlIHRoZSBsYXNlciBwb2ludGVyIHdvdWxkCisgICAgICAgICAgICAgICogaW50
ZXJzZWN0IHdpdGggdGhlIG92ZXJsYXkgaXMgdGhlIG1vdXNlIHBvc2l0aW9uLCB0aGUgdHJpZ2dl
ciBpcyBsZWZ0IG1vdXNlLCBhbmQgdGhlIHRyYWNrIHBhZCBpcyByaWdodCBtb3VzZS4gCisgICAg
ICAgICAgICAgICoKKyAgICAgICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY29udHJvbGxl
ciBpcyBwb2ludGVkIGF0IHRoZSBvdmVybGF5IGFuZCBhbiBldmVudCB3YXMgZ2VuZXJhdGVkLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRl
cmFjdGlvbkFzTW91c2UoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tl
ZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXggKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgaXMgdGhlIGhv
dmVyIHRhcmdldC4gQW4gb3ZlcmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0IHdoZW4gaXQgaXMgdGhl
IGxhc3Qgb3ZlcmxheSAibW91c2VkIG92ZXIiIAorICAgICAgICAgICAgICAqIGJ5IHRoZSB2aXJ0
dWFsIG1vdXNlIHBvaW50ZXIgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzSG92ZXJU
YXJnZXRPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGN1cnJlbnQgR2FtZXBhZCBmb2N1cyBvdmVy
bGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6OlZST3ZlcmxheUhhbmRsZV90IEdldEdh
bWVwYWRGb2N1c092ZXJsYXkoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGN1
cnJlbnQgR2FtZXBhZCBmb2N1cyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZS
T3ZlcmxheUVycm9yIFNldEdhbWVwYWRGb2N1c092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVs
TmV3Rm9jdXNPdmVybGF5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIGFuIG92ZXJs
YXkncyBuZWlnaGJvci4gVGhpcyB3aWxsIGFsc28gc2V0IHRoZSBuZWlnaGJvciBvZiB0aGUgInRv
IiBvdmVybGF5CisgICAgICAgICAgICAgICogdG8gcG9pbnQgYmFjayB0byB0aGUgImZyb20iIG92
ZXJsYXkuIElmIGFuIG92ZXJsYXkncyBuZWlnaGJvciBpcyBzZXQgdG8gaW52YWxpZCBib3RoCisg
ICAgICAgICAgICAgICogZW5kcyB3aWxsIGJlIGNsZWFyZWQgKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheU5laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlv
biBlRGlyZWN0aW9uLCBWUk92ZXJsYXlIYW5kbGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90
IHVsVG8gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIENoYW5nZXMgdGhlIEdhbWVwYWQgZm9j
dXMgZnJvbSBvbmUgb3ZlcmxheSB0byBvbmUgb2YgaXRzIG5laWdoYm9ycy4gUmV0dXJucyBWUk92
ZXJsYXlFcnJvcl9Ob05laWdoYm9yIGlmIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICogbmVp
Z2hib3IgaW4gdGhhdCBkaXJlY3Rpb24gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVE
aXJlY3Rpb24sIFZST3ZlcmxheUhhbmRsZV90IHVsRnJvbSApID0gMDsKKworICAgICAgICAgICAg
ICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAgICAgICAgLy8gT3ZlcmxheSB0ZXh0dXJlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAg
ICAgLyoqIFRleHR1cmUgdG8gZHJhdyBmb3IgdGhlIG92ZXJsYXkuIFRoaXMgZnVuY3Rpb24gY2Fu
IG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVybGF5J3MgY3JlYXRvciBvciByZW5kZXJlciBwcm9j
ZXNzIChzZWUgU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCkgLgorICAgICAgICAgICAgICAqCisgICAg
ICAgICAgICAgICogT3BlbkdMIGRpcnR5IHN0YXRlOgorICAgICAgICAgICAgICAqICAgICAgIGds
QmluZFRleHR1cmUKKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgY29uc3QgVGV4dHVyZV90ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogVXNlIHRoaXMgdG8gdGVsbCB0aGUgb3ZlcmxheSBzeXN0ZW0gdG8gcmVsZWFzZSB0aGUg
dGV4dHVyZSBzZXQgZm9yIHRoaXMgb3ZlcmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZh
Y2UgZm9yIHByb3ZpZGluZyB0aGUgZGF0YSBhcyBhIHN0cmVhbSBvZiBieXRlcywgYnV0IHRoZXJl
IGlzIGFuIHVwcGVyIGJvdW5kIG9uIGRhdGEgCisgICAgICAgICAgICAgICogdGhhdCBjYW4gYmUg
c2VudC4gVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkncyBy
ZW5kZXJlciBwcm9jZXNzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5UmF3KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQg
KnB2QnVmZmVyLCB1aW50MzJfdCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdWludDMyX3Qg
dW5EZXB0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50ZXJmYWNlIGZv
ciBwcm92aWRpbmcgdGhlIGltYWdlIHRocm91Z2ggYSBmaWxlbmFtZTogY2FuIGJlIHBuZyBvciBq
cGcsIGFuZCBzaG91bGQgbm90IGJlIGJpZ2dlciB0aGFuIDE5MjB4MTA4MC4KKyAgICAgICAgICAg
ICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJl
bmRlcmVyIHByb2Nlc3MgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
U2V0T3ZlcmxheUZyb21GaWxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNv
bnN0IGNoYXIgKnBjaEZpbGVQYXRoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhl
IG5hdGl2ZSB0ZXh0dXJlIGhhbmRsZS9kZXZpY2UgZm9yIGFuIG92ZXJsYXkgeW91IGhhdmUgY3Jl
YXRlZC4KKyAgICAgICAgICAgICAgKiBPbiB3aW5kb3dzIHRoaXMgaGFuZGxlIHdpbGwgYmUgYSBJ
RDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcgd2l0aCBhIElEM0QxMVRleHR1cmUyRCBib3VuZC4KKyAg
ICAgICAgICAgICAgKgorICAgICAgICAgICAgICAqIFRoZSB0ZXh0dXJlIHdpbGwgYWx3YXlzIGJl
IHNpemVkIHRvIG1hdGNoIHRoZSBiYWNraW5nIHRleHR1cmUgeW91IHN1cHBsaWVkIGluIFNldE92
ZXJsYXlUZXh0dXJlIGFib3ZlLgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogWW91
IE1VU1QgY2FsbCBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSgpIHdpdGggcE5hdGl2ZVRleHR1
cmVIYW5kbGUgb25jZSB5b3UgYXJlIGRvbmUgd2l0aCB0aGlzIHRleHR1cmUuCisgICAgICAgICAg
ICAgICoKKyAgICAgICAgICAgICAgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSBpcyBhbiBPVVRQVVQs
IGl0IHdpbGwgYmUgYSBwb2ludGVyIHRvIGEgSUQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICouCisg
ICAgICAgICAgICAgICogcE5hdGl2ZVRleHR1cmVSZWYgaXMgYW4gSU5QVVQgYW5kIHNob3VsZCBi
ZSBhIElEM0QxMVJlc291cmNlICouIFRoZSBkZXZpY2UgdXNlZCBieSBwTmF0aXZlVGV4dHVyZVJl
ZiB3aWxsIGJlIHVzZWQgdG8gYmluZCBwTmF0aXZlVGV4dHVyZUhhbmRsZS4KKyAgICAgICAgICAg
ICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRl
eHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqKnBOYXRpdmVU
ZXh0dXJlSGFuZGxlLCB2b2lkICpwTmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKnBXaWR0aCwg
dWludDMyX3QgKnBIZWlnaHQsIHVpbnQzMl90ICpwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUg
KnBBUElUeXBlLCBFQ29sb3JTcGFjZSAqcENvbG9yU3BhY2UsIFZSVGV4dHVyZUJvdW5kc190ICpw
VGV4dHVyZUJvdW5kcyApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmVsZWFzZSB0aGUgcE5h
dGl2ZVRleHR1cmVIYW5kbGUgcHJvdmlkZWQgZnJvbSB0aGUgR2V0T3ZlcmxheVRleHR1cmUgY2Fs
bCwgdGhpcyBhbGxvd3MgdGhlIHN5c3RlbSB0byBmcmVlIHRoZSB1bmRlcmx5aW5nIEdQVSByZXNv
dXJjZXMgZm9yIHRoaXMgb2JqZWN0LAorICAgICAgICAgICAgICAqIHNvIG9ubHkgZG8gaXQgb25j
ZSB5b3Ugc3RvcCByZW5kZXJpbmcgdGhpcyB0ZXh0dXJlLgorICAgICAgICAgICAgICAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBSZWxlYXNlTmF0aXZlT3ZlcmxheUhh
bmRsZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwTmF0aXZlVGV4
dHVyZUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBzaXplIG9mIHRo
ZSBvdmVybGF5IHRleHR1cmUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheVRleHR1cmVTaXplKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIHVpbnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAgICAgICAgLy8gRGFzaGJvYXJkIE92ZXJsYXkgTWV0aG9kcworICAgICAgICAgICAg
ICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAg
ICAgICAgICAgICAgLyoqIENyZWF0ZXMgYSBkYXNoYm9hcmQgb3ZlcmxheSBhbmQgcmV0dXJucyBp
dHMgaGFuZGxlICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIENyZWF0
ZURhc2hib2FyZE92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNoYXIg
KnBjaE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUs
IFZST3ZlcmxheUhhbmRsZV90ICpwVGh1bWJuYWlsSGFuZGxlICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxlICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0Rhc2hib2FyZFZpc2libGUoKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgYW5k
IHRoZSBzcGVjaWZpZWQgb3ZlcmxheSBpcyB0aGUgYWN0aXZlIHN5c3RlbSBPdmVybGF5ICovCisg
ICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkoIFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgZGFzaGJvYXJkIG92ZXJsYXkgdG8gb25seSBhcHBlYXIgd2hlbiB0aGUgc3BlY2lm
aWVkIHByb2Nlc3MgSUQgaGFzIHNjZW5lIGZvY3VzICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MoIFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHByb2Nlc3MgSUQgdGhhdCB0aGlzIGRhc2hib2Fy
ZCBvdmVybGF5IHJlcXVpcmVzIHRvIGhhdmUgc2NlbmUgZm9jdXMgKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vzcygg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcHVuUHJvY2Vzc0lk
ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTaG93cyB0aGUgZGFzaGJvYXJkLiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2hvd0Rhc2hib2FyZCggY29uc3QgY2hhciAqcGNoT3Zl
cmxheVRvU2hvdyApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhY2tl
ZCBkZXZpY2UgdGhhdCBoYXMgdGhlIGxhc2VyIHBvaW50ZXIgaW4gdGhlIGRhc2hib2FyZCAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBHZXRQcmltYXJ5
RGFzaGJvYXJkRGV2aWNlKCkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBLZXlib2Fy
ZCBtZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyoqIFNob3cg
dGhlIHZpcnR1YWwga2V5Ym9hcmQgdG8gYWNjZXB0IGlucHV0ICoqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTaG93S2V5Ym9hcmQoIEVHYW1lcGFkVGV4dElucHV0TW9k
ZSBlSW5wdXRNb2RlLCBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBj
b25zdCBjaGFyICpwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjb25zdCBjaGFy
ICpwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZh
bHVlICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNob3dL
ZXlib2FyZEZvck92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUdh
bWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUg
ZUxpbmVJbnB1dE1vZGUsIGNvbnN0IGNoYXIgKnBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNo
YXJNYXgsIGNvbnN0IGNoYXIgKnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUs
IHVpbnQ2NF90IHVVc2VyVmFsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUg
dGV4dCB0aGF0IHdhcyBlbnRlcmVkIGludG8gdGhlIHRleHQgaW5wdXQgKiovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgdWludDMyX3QgR2V0S2V5Ym9hcmRUZXh0KCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVGV4dCwgdWludDMyX3QgY2NoVGV4dCApID0gMDsKKworICAgICAgICAgICAgICAvKiog
SGlkZSB0aGUgdmlydHVhbCBrZXlib2FyZCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IEhpZGVLZXlib2FyZCgpID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlv
biBvZiB0aGUga2V5Ym9hcmQgaW4gd29ybGQgc3BhY2UgKiovCisgICAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBTZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlKCBFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlVHJhY2tpbmdPcmlnaW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09y
aWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0
aGUgcG9zaXRpb24gb2YgdGhlIGtleWJvYXJkIGluIG92ZXJsYXkgc3BhY2UgYnkgdGVsbGluZyBp
dCB0byBhdm9pZCBhIHJlY3RhbmdsZSBpbiB0aGUgb3ZlcmxheS4gUmVjdGFuZ2xlIGNvb3JkcyBo
YXZlICgwLDApIGluIHRoZSBib3R0b20gbGVmdCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIFNldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIEhtZFJlY3QyX3QgYXZvaWRSZWN0ICkgPSAwOworCisgICAgICAgICAgICAg
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
ICAgICAgICAvLyBPdmVybGF5IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAg
LyoqIFNldHMgYSBsaXN0IG9mIHByaW1pdGl2ZXMgdG8gYmUgdXNlZCBmb3IgY29udHJvbGxlciBy
YXkgaW50ZXJzZWN0aW9uCisgICAgICAgICAgICAgICogdHlwaWNhbGx5IHRoZSBzaXplIG9mIHRo
ZSB1bmRlcmx5aW5nIFVJIGluIHBpeGVscyAobm90IGluIHdvcmxkIHNwYWNlKS4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUludGVyc2VjdGlvbk1h
c2soIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW50ZXJzZWN0
aW9uTWFza1ByaW1pdGl2ZV90ICpwTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1By
aW1pdGl2ZXMsIHVpbnQzMl90IHVuUHJpbWl0aXZlU2l6ZSA9IHNpemVvZiggVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90ICkgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUZsYWdzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpwRmxhZ3MgKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg
ICAgIC8vIE1lc3NhZ2UgYm94IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNo
b3cgdGhlIG1lc3NhZ2Ugb3ZlcmxheS4gVGhpcyB3aWxsIGJsb2NrIGFuZCByZXR1cm4geW91IGEg
cmVzdWx0LiAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBWUk1lc3NhZ2VPdmVybGF5UmVzcG9u
c2UgU2hvd01lc3NhZ2VPdmVybGF5KCBjb25zdCBjaGFyKiBwY2hUZXh0LCBjb25zdCBjaGFyKiBw
Y2hDYXB0aW9uLCBjb25zdCBjaGFyKiBwY2hCdXR0b24wVGV4dCwgY29uc3QgY2hhciogcGNoQnV0
dG9uMVRleHQgPSBudWxscHRyLCBjb25zdCBjaGFyKiBwY2hCdXR0b24yVGV4dCA9IG51bGxwdHIs
IGNvbnN0IGNoYXIqIHBjaEJ1dHRvbjNUZXh0ID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogSWYgdGhlIGNhbGxpbmcgcHJvY2VzcyBvd25zIHRoZSBvdmVybGF5IGFuZCBpdCdz
IG9wZW4sIHRoaXMgd2lsbCBjbG9zZSBpdC4gKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBDbG9zZU1lc3NhZ2VPdmVybGF5KCkgPSAwOworICAgICAgIH07CisKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNiI7
CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKy8vIGl2cnJlbmRlcm1vZGVscy5oCituYW1lc3BhY2Ug
dnIKK3sKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBv
bmVudF9HREMyMDE1ID0gImdkYzIwMTUiOyAgIC8vIENhbm9uaWNhbCBjb29yZGluYXRlIHN5c3Rl
bSBvZiB0aGUgZ2RjIDIwMTUgd2lyZWQgY29udHJvbGxlciwgcHJvdmlkZWQgZm9yIGJhY2t3YXJk
cyBjb21wYXRpYmlsaXR5CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xs
ZXJfQ29tcG9uZW50X0Jhc2UgPSAiYmFzZSI7ICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdp
dGggYW4gdW5hbWJpZ3VvdXMgJ2Jhc2UnLgorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Db250cm9sbGVyX0NvbXBvbmVudF9UaXAgPSAidGlwIjsgICAgICAgICAgIC8vIEZvciBjb250
cm9sbGVycyB3aXRoIGFuIHVuYW1iaWd1b3VzICd0aXAnICh1c2VkIGZvciAnbGFzZXItcG9pbnRp
bmcnKQorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVu
dF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7IC8vIE5ldXRyYWwsIGFtYmlkZXh0cm91cyBoYW5kLXBv
c2Ugd2hlbiBob2xkaW5nIGNvbnRyb2xsZXIuIE9uIHBsYW5lIGJldHdlZW4gbmV1dHJhbGx5IHBv
c2VkIGluZGV4IGZpbmdlciBhbmQgdGh1bWIKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfQ29udHJvbGxlcl9Db21wb25lbnRfU3RhdHVzID0gInN0YXR1cyI7ICAgICAgICAgICAgICAv
LyAxOjEgYXNwZWN0IHJhdGlvIHN0YXR1cyBhcmVhLCB3aXRoIGNhbm9uaWNhbCBbMCwxXSB1diBt
YXBwaW5nCisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKKy8qKiBFcnJvcnMgdGhhdCBjYW4g
b2NjdXIgd2l0aCB0aGUgVlIgY29tcG9zaXRvciAqLworZW51bSBFVlJSZW5kZXJNb2RlbEVycm9y
Cit7CisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX05vbmUgPSAwLAorICAgICAgIFZSUmVuZGVy
TW9kZWxFcnJvcl9Mb2FkaW5nID0gMTAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RT
dXBwb3J0ZWQgPSAyMDAsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRBcmcgPSAz
MDAsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAg
ICBWUlJlbmRlck1vZGVsRXJyb3JfTm9TaGFwZXMgPSAzMDIsCisgICAgICAgVlJSZW5kZXJNb2Rl
bEVycm9yX011bHRpcGxlU2hhcGVzID0gMzAzLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9U
b29NYW55VmVydGljZXMgPSAzMDQsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxl
VGV4dHVyZXMgPSAzMDUsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxs
ID0gMzA2LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3
LAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMgPSAzMDgsCisK
KyAgICAgICBWUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZFRleHR1cmUgPSA0MDAsCit9OworCit0
eXBlZGVmIHVpbnQzMl90IFZSQ29tcG9uZW50UHJvcGVydGllczsKKworZW51bSBFVlJDb21wb25l
bnRQcm9wZXJ0eQoreworICAgICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTdGF0aWMgPSAoMSA8
PCAwKSwKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9ICgxIDw8IDEpLAor
ICAgICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkID0gKDEgPDwgMiksCisgICAgICAg
VlJDb21wb25lbnRQcm9wZXJ0eV9Jc1ByZXNzZWQgPSAoMSA8PCAzKSwKKyAgICAgICBWUkNvbXBv
bmVudFByb3BlcnR5X0lzU2Nyb2xsZWQgPSAoMSA8PCA0KSwKK307CisKKy8qKiBEZXNjcmliZXMg
c3RhdGUgaW5mb3JtYXRpb24gYWJvdXQgYSByZW5kZXItbW9kZWwgY29tcG9uZW50LCBpbmNsdWRp
bmcgdHJhbnNmb3JtcyBhbmQgb3RoZXIgZHluYW1pYyBwcm9wZXJ0aWVzICovCitzdHJ1Y3QgUmVu
ZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNr
aW5nVG9Db21wb25lbnRSZW5kZXJNb2RlbDsgIC8vIFRyYW5zZm9ybSByZXF1aXJlZCB3aGVuIGRy
YXdpbmcgdGhlIGNvbXBvbmVudCByZW5kZXIgbW9kZWwKKyAgICAgICBIbWRNYXRyaXgzNF90IG1U
cmFja2luZ1RvQ29tcG9uZW50TG9jYWw7ICAgICAgICAvLyBUcmFuc2Zvcm0gYXZhaWxhYmxlIGZv
ciBhdHRhY2hpbmcgdG8gYSBsb2NhbCBjb21wb25lbnQgY29vcmRpbmF0ZSBzeXN0ZW0gKC1aIG91
dCBmcm9tIHN1cmZhY2UgKQorICAgICAgIFZSQ29tcG9uZW50UHJvcGVydGllcyB1UHJvcGVydGll
czsKK307CisKKy8qKiBBIHNpbmdsZSB2ZXJ0ZXggaW4gYSByZW5kZXIgbW9kZWwgKi8KK3N0cnVj
dCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAoreworICAgICAgIEhtZFZlY3RvcjNfdCB2UG9zaXRpb247
ICAgICAgICAgICAgICAvLyBwb3NpdGlvbiBpbiBtZXRlcnMgaW4gZGV2aWNlIHNwYWNlCisgICAg
ICAgSG1kVmVjdG9yM190IHZOb3JtYWw7CisgICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07
Cit9OworCisvKiogQSB0ZXh0dXJlIG1hcCBmb3IgdXNlIG9uIGEgcmVuZGVyIG1vZGVsICovCisj
aWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKy8vIFRoaXMgc3Ry
dWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2Vy
dmVkIGZvciAKKy8vIGNvbXBhdGliaWxpdHkuIAorI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNl
bmRpZgorCitzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90Cit7CisgICAgICAgdWludDE2
X3QgdW5XaWR0aCwgdW5IZWlnaHQ7IC8vIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHRleHR1cmUg
bWFwIGluIHBpeGVscworICAgICAgIGNvbnN0IHVpbnQ4X3QgKnJ1YlRleHR1cmVNYXBEYXRhOyAg
ICAgICAvLyBNYXAgdGV4dHVyZSBkYXRhLiBBbGwgdGV4dHVyZXMgYXJlIFJHQkEgd2l0aCA4IGJp
dHMgcGVyIGNoYW5uZWwgcGVyIHBpeGVsLiBEYXRhIHNpemUgaXMgd2lkdGggKiBoZWlnaHQgKiA0
dWIKK307CisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyNw
cmFnbWEgcGFjayggcG9wICkKKyNlbmRpZgorCisvKiogIFNlc3Npb24gdW5pcXVlIHRleHR1cmUg
aWRlbnRpZmllci4gUmVuZGVybW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBzYW1lIHRleHR1cmUgd2ls
bCBoYXZlIHRoZSBzYW1lIGlkLgorSURzIDwwIGRlbm90ZSB0aGUgdGV4dHVyZSBpcyBub3QgcHJl
c2VudCAqLworCit0eXBlZGVmIGludDMyX3QgVGV4dHVyZUlEX3Q7CisKK2NvbnN0IFRleHR1cmVJ
RF90IElOVkFMSURfVEVYVFVSRV9JRCA9IC0xOworCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8
IGRlZmluZWQoX19BUFBMRV9fKSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRl
ZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNvbXBhdGliaWxp
dHkuIAorI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3QgUmVuZGVyTW9k
ZWxfdAoreworICAgICAgIGNvbnN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICpyVmVydGV4RGF0YTsg
ICAgICAgLy8gVmVydGV4IGRhdGEgZm9yIHRoZSBtZXNoCisgICAgICAgdWludDMyX3QgdW5WZXJ0
ZXhDb3VudDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1i
ZXIgb2YgdmVydGljZXMgaW4gdGhlIHZlcnRleCBkYXRhCisgICAgICAgY29uc3QgdWludDE2X3Qg
KnJJbmRleERhdGE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2Vz
IGludG8gdGhlIHZlcnRleCBkYXRhIGZvciBlYWNoIHRyaWFuZ2xlCisgICAgICAgdWludDMyX3Qg
dW5UcmlhbmdsZUNvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVt
YmVyIG9mIHRyaWFuZ2xlcyBpbiB0aGUgbWVzaC4gSW5kZXggY291bnQgaXMgMyAqIFRyaWFuZ2xl
Q291bnQKKyAgICAgICBUZXh0dXJlSURfdCBkaWZmdXNlVGV4dHVyZUlkOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBTZXNzaW9uIHVuaXF1ZSB0ZXh0dXJlIGlkZW50aWZpZXIuIFJlbmRl
cm1vZGVscyB3aGljaCBzaGFyZSB0aGUgc2FtZSB0ZXh0dXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSBp
ZC4gPDAgPT0gdGV4dHVyZSBub3QgcHJlc2VudAorfTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykg
fHwgZGVmaW5lZChfX0FQUExFX18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKwor
c3RydWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29s
IGJTY3JvbGxXaGVlbFZpc2libGU7IC8vIGlzIHRoaXMgY29udHJvbGxlciBjdXJyZW50bHkgc2V0
IHRvIGJlIGluIGEgc2Nyb2xsIHdoZWVsIG1vZGUKK307CisKKyNwcmFnbWEgcGFjayggcG9wICkK
KworY2xhc3MgSVZSUmVuZGVyTW9kZWxzCit7CitwdWJsaWM6CisKKyAgICAgICAvKiogTG9hZHMg
YW5kIHJldHVybnMgYSByZW5kZXIgbW9kZWwgZm9yIHVzZSBpbiB0aGUgYXBwbGljYXRpb24uIHBj
aFJlbmRlck1vZGVsTmFtZSBzaG91bGQgYmUgYSByZW5kZXIgbW9kZWwgbmFtZQorICAgICAgICog
ZnJvbSB0aGUgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nIHByb3BlcnR5IG9yIGFuIGFic29s
dXRlIHBhdGggbmFtZSB0byBhIHJlbmRlciBtb2RlbCBvbiBkaXNrLiAKKyAgICAgICAqCisgICAg
ICAgKiBUaGUgcmVzdWx0aW5nIHJlbmRlciBtb2RlbCBpcyB2YWxpZCB1bnRpbCBWUl9TaHV0ZG93
bigpIGlzIGNhbGxlZCBvciB1bnRpbCBGcmVlUmVuZGVyTW9kZWwoKSBpcyBjYWxsZWQuIFdoZW4g
dGhlIAorICAgICAgICogYXBwbGljYXRpb24gaXMgZmluaXNoZWQgd2l0aCB0aGUgcmVuZGVyIG1v
ZGVsIGl0IHNob3VsZCBjYWxsIEZyZWVSZW5kZXJNb2RlbCgpIHRvIGZyZWUgdGhlIG1lbW9yeSBh
c3NvY2lhdGVkCisgICAgICAgKiB3aXRoIHRoZSBtb2RlbC4KKyAgICAgICAqCisgICAgICAgKiBU
aGUgbWV0aG9kIHJldHVybnMgVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgd2hpbGUgdGhlIHJl
bmRlciBtb2RlbCBpcyBzdGlsbCBiZWluZyBsb2FkZWQuCisgICAgICAgKiBUaGUgbWV0aG9kIHJl
dHVybnMgVlJSZW5kZXJNb2RlbEVycm9yX05vbmUgb25jZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LCBv
dGhlcndpc2Ugd2lsbCByZXR1cm4gYW4gZXJyb3IuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5k
ZXJNb2RlbEVycm9yIExvYWRSZW5kZXJNb2RlbF9Bc3luYyggY29uc3QgY2hhciAqcGNoUmVuZGVy
TW9kZWxOYW1lLCBSZW5kZXJNb2RlbF90ICoqcHBSZW5kZXJNb2RlbCApID0gMDsKKworICAgICAg
IC8qKiBGcmVlcyBhIHByZXZpb3VzbHkgcmV0dXJuZWQgcmVuZGVyIG1vZGVsCisgICAgICAgKiAg
IEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG9uIGEgbnVsbCBwdHIuICovCisgICAgICAgdmlydHVh
bCB2b2lkIEZyZWVSZW5kZXJNb2RlbCggUmVuZGVyTW9kZWxfdCAqcFJlbmRlck1vZGVsICkgPSAw
OworCisgICAgICAgLyoqIExvYWRzIGFuZCByZXR1cm5zIGEgdGV4dHVyZSBmb3IgdXNlIGluIHRo
ZSBhcHBsaWNhdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9h
ZFRleHR1cmVfQXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgUmVuZGVyTW9kZWxfVGV4dHVy
ZU1hcF90ICoqcHBUZXh0dXJlICkgPSAwOworCisgICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNs
eSByZXR1cm5lZCB0ZXh0dXJlCisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG9u
IGEgbnVsbCBwdHIuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0dXJlKCBSZW5kZXJN
b2RlbF9UZXh0dXJlTWFwX3QgKnBUZXh0dXJlICkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMg
YSBEM0QxMSB0ZXh0dXJlIGFuZCBsb2FkcyBkYXRhIGludG8gaXQuICovCisgICAgICAgdmlydHVh
bCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoIFRleHR1cmVJRF90
IHRleHR1cmVJZCwgdm9pZCAqcEQzRDExRGV2aWNlLCB2b2lkICoqcHBEM0QxMVRleHR1cmUyRCAp
ID0gMDsKKworICAgICAgIC8qKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29weSB0aGUgYml0cyBpbnRv
IGFuIGV4aXN0aW5nIHRleHR1cmUuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVy
cm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZv
aWQgKnBEc3RUZXh0dXJlICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGZyZWUgdGV4
dHVyZXMgY3JlYXRlZCB3aXRoIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMgaW5zdGVhZCBvZiBjYWxs
aW5nIFJlbGVhc2Ugb24gdGhlbS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmVE
M0QxMSggdm9pZCAqcEQzRDExVGV4dHVyZTJEICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlz
IHRvIGdldCB0aGUgbmFtZXMgb2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICBJbmRleCBkb2Vz
IG5vdCBjb3JyZWxhdGUgdG8gYSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0CisgICAgICAgKiBp
cyBvbmx5IHVzZWQgZm9yIGl0ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgcmVuZGVyIG1vZGVs
cy4gIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1
cm4gMC4KKyAgICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhl
IGJ1ZmZlciByZXF1aXJlZCBmb3IgdGhlIG5hbWUuICovCisgICAgICAgdmlydHVhbCB1aW50MzJf
dCBHZXRSZW5kZXJNb2RlbE5hbWUoIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwgVlJfT1VU
X1NUUklORygpIGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2Rl
bE5hbWVMZW4gKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGF2YWls
YWJsZSByZW5kZXIgbW9kZWxzLiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVy
TW9kZWxDb3VudCgpID0gMDsKKworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBj
b21wb25lbnRzIG9mIHRoZSBzcGVjaWZpZWQgcmVuZGVyIG1vZGVsLgorICAgICAgICogIENvbXBv
bmVudHMgYXJlIHVzZWZ1bCB3aGVuIGNsaWVudCBhcHBsaWNhdGlvbiB3aXNoIHRvIGRyYXcsIGxh
YmVsLCBvciBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBjb21wb25lbnRzIG9mIHRyYWNrZWQgb2Jq
ZWN0cy4KKyAgICAgICAqICBFeGFtcGxlcyBjb250cm9sbGVyIGNvbXBvbmVudHM6CisgICAgICAg
KiAgIHJlbmRlcmFibGUgdGhpbmdzIHN1Y2ggYXMgdHJpZ2dlcnMsIGJ1dHRvbnMKKyAgICAgICAq
ICAgbm9uLXJlbmRlcmFibGUgdGhpbmdzIHdoaWNoIGluY2x1ZGUgY29vcmRpbmF0ZSBzeXN0ZW1z
IHN1Y2ggYXMgJ3RpcCcsICdiYXNlJywgYSBuZXV0cmFsIGNvbnRyb2xsZXIgYWdub3N0aWMgaGFu
ZC1wb3NlCisgICAgICAgKiAgIElmIGFsbCBjb250cm9sbGVyIGNvbXBvbmVudHMgYXJlIGVudW1l
cmF0ZWQgYW5kIHJlbmRlcmVkLCBpdCB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gZHJhd2luZyB0aGUg
dHJhZGl0aW9uYWwgcmVuZGVyIG1vZGVsCisgICAgICAgKiAgIFJldHVybnMgMCBpZiBjb21wb25l
bnRzIG5vdCBzdXBwb3J0ZWQsID4wIG90aGVyd2lzZSAqLworICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0Q29tcG9uZW50Q291bnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSApID0g
MDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBnZXQgdGhlIG5hbWVzIG9mIGF2YWlsYWJsZSBj
b21wb25lbnRzLiAgSW5kZXggZG9lcyBub3QgY29ycmVsYXRlIHRvIGEgdHJhY2tlZCBkZXZpY2Ug
aW5kZXgsIGJ1dAorICAgICAgICogaXMgb25seSB1c2VkIGZvciBpdGVyYXRpbmcgb3ZlciBhbGwg
YXZhaWxhYmxlIGNvbXBvbmVudHMuICBJZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLCB0aGlz
IGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDAuCisgICAgICAgKiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0
dXJuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgcmVxdWlyZWQgZm9yIHRoZSBuYW1lLiAqLworICAg
ICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50TmFtZSggY29uc3QgY2hhciAqcGNoUmVu
ZGVyTW9kZWxOYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudEluZGV4LCBWUl9PVVRfU1RSSU5HKCAp
IGNoYXIgKnBjaENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbiApID0g
MDsKKworICAgICAgIC8qKiBHZXQgdGhlIGJ1dHRvbiBtYXNrIGZvciBhbGwgYnV0dG9ucyBhc3Nv
Y2lhdGVkIHdpdGggdGhpcyBjb21wb25lbnQKKyAgICAgICAqICAgSWYgbm8gYnV0dG9ucyAob3Ig
YXhlcykgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvbmVudCwgcmV0dXJuIDAKKyAgICAg
ICAqICAgTm90ZTogbXVsdGlwbGUgY29tcG9uZW50cyBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBzYW1lIGJ1dHRvbi4gRXg6IHR3byBncmlwIGJ1dHRvbnMgb24gYSBzaW5nbGUgY29udHJvbGxl
ci4KKyAgICAgICAqICAgTm90ZTogQSBzaW5nbGUgY29tcG9uZW50IG1heSBiZSBhc3NvY2lhdGVk
IHdpdGggbXVsdGlwbGUgYnV0dG9ucy4gRXg6IEEgdHJhY2twYWQgd2hpY2ggYWxzbyBwcm92aWRl
cyAiRC1wYWQiIGZ1bmN0aW9uYWxpdHkgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldENv
bXBvbmVudEJ1dHRvbk1hc2soIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3Qg
Y2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBn
ZXQgdGhlIHJlbmRlciBtb2RlbCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIHJlbmRlcm1vZGUvY29t
cG9uZW50IGNvbWJpbmF0aW9uLCB0byBiZSBwYXNzZWQgdG8gTG9hZFJlbmRlck1vZGVsLgorICAg
ICAgICogSWYgdGhlIGNvbXBvbmVudCBuYW1lIGlzIG91dCBvZiByYW5nZSwgdGhpcyBmdW5jdGlv
biB3aWxsIHJldHVybiAwLgorICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUg
c2l6ZSBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8KKyAgICAgICB2aXJ0
dWFsIHVpbnQzMl90IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSggY29uc3QgY2hhciAqcGNo
UmVuZGVyTW9kZWxOYW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lLCBWUl9PVVRfU1RS
SU5HKCApIGNoYXIgKnBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21w
b25lbnRSZW5kZXJNb2RlbE5hbWVMZW4gKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8g
cXVlcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBvbmVudCwgYXMgYSBmdW5jdGlvbiBvZiB0
aGUgY29udHJvbGxlciBzdGF0ZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZHluYW1pYyBjb250
cm9sbGVyIGNvbXBvbmVudHMgKGV4OiB0cmlnZ2VyKSB2YWx1ZXMgd2lsbCByZWZsZWN0IGNvbXBv
bmVudCBtb3Rpb25zCisgICAgICAgKiBGb3Igc3RhdGljIGNvbXBvbmVudHMgdGhpcyB3aWxsIHJl
dHVybiBhIGNvbnNpc3RlbnQgdmFsdWUgaW5kZXBlbmRlbnQgb2YgdGhlIFZSQ29udHJvbGxlclN0
YXRlX3QKKyAgICAgICAqCisgICAgICAgKiBJZiB0aGUgcGNoUmVuZGVyTW9kZWxOYW1lIG9yIHBj
aENvbXBvbmVudE5hbWUgaXMgaW52YWxpZCwgdGhpcyB3aWxsIHJldHVybiBmYWxzZSAoYW5kIHRy
YW5zZm9ybXMgd2lsbCBiZSBzZXQgdG8gaWRlbnRpdHkpLgorICAgICAgICogT3RoZXJ3aXNlLCBy
ZXR1cm4gdHJ1ZQorICAgICAgICogTm90ZTogRm9yIGR5bmFtaWMgb2JqZWN0cywgdmlzaWJpbGl0
eSBtYXkgYmUgZHluYW1pYy4gKEkuZS4sIHRydWUvZmFsc2Ugd2lsbCBiZSByZXR1cm5lZCBiYXNl
ZCBvbiBjb250cm9sbGVyIHN0YXRlIGFuZCBjb250cm9sbGVyIG1vZGUgc3RhdGUgKSAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBHZXRDb21wb25lbnRTdGF0ZSggY29uc3QgY2hhciAqcGNoUmVuZGVy
TW9kZWxOYW1lLCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lLCBjb25zdCB2cjo6VlJDb250
cm9sbGVyU3RhdGVfdCAqcENvbnRyb2xsZXJTdGF0ZSwgY29uc3QgUmVuZGVyTW9kZWxfQ29udHJv
bGxlck1vZGVfU3RhdGVfdCAqcFN0YXRlLCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICpw
Q29tcG9uZW50U3RhdGUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBy
ZW5kZXIgbW9kZWwgaGFzIGEgY29tcG9uZW50IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lICovCisg
ICAgICAgdmlydHVhbCBib29sIFJlbmRlck1vZGVsSGFzQ29tcG9uZW50KCBjb25zdCBjaGFyICpw
Y2hSZW5kZXJNb2RlbE5hbWUsIGNvbnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgVVJMIG9mIHRoZSB0aHVtYm5haWwgaW1hZ2UgZm9yIHRo
aXMgcmVuZGVybW9kZWwgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVs
VGh1bWJuYWlsVVJMKCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJ
TkcoKSBjaGFyICpwY2hUaHVtYm5haWxVUkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCB2
cjo6RVZSUmVuZGVyTW9kZWxFcnJvciAqcGVFcnJvciApID0gMDsKKworICAgICAgIC8qKiBQcm92
aWRlcyBhIHJlbmRlciBtb2RlbCBwYXRoIHRoYXQgd2lsbCBsb2FkIHRoZSB1bnNraW5uZWQgbW9k
ZWwgaWYgdGhlIG1vZGVsIG5hbWUgcHJvdmlkZWQgaGFzIGJlZW4gcmVwbGFjZSBieSB0aGUgdXNl
ci4gSWYgdGhlIG1vZGVsCisgICAgICAgKiBoYXNuJ3QgYmVlbiByZXBsYWNlZCB0aGUgcGF0aCB2
YWx1ZSB3aWxsIHN0aWxsIGJlIGEgdmFsaWQgcGF0aCB0byBsb2FkIHRoZSBtb2RlbC4gUGFzcyB0
aGlzIHRvIExvYWRSZW5kZXJNb2RlbF9Bc3luYywgZXRjLiB0byBsb2FkIHRoZQorICAgICAgICog
bW9kZWwuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFs
UGF0aCggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoT3JpZ2luYWxQYXRoLCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgdnI6OkVWUlJl
bmRlck1vZGVsRXJyb3IgKnBlRXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0
cmluZyBmb3IgYSByZW5kZXIgbW9kZWwgZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIgKkdldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJSZW5kZXJNb2RlbEVy
cm9yIGVycm9yICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJSZW5k
ZXJNb2RlbHNfVmVyc2lvbiA9ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKworfQorCisKKy8vIGl2
cmV4dGVuZGVkZGlzcGxheS5oCituYW1lc3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBOT1RFOiBV
c2Ugb2YgdGhpcyBpbnRlcmZhY2UgaXMgbm90IHJlY29tbWVuZGVkIGluIHByb2R1Y3Rpb24gYXBw
bGljYXRpb25zLiBJdCB3aWxsIG5vdCB3b3JrIGZvciBkaXNwbGF5cyB3aGljaCB1c2UKKyAgICAg
ICAqIGRpcmVjdC10by1kaXNwbGF5IG1vZGUuIENyZWF0aW5nIG91ciBvd24gd2luZG93IGlzIGFs
c28gaW5jb21wYXRpYmxlIHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgYW5kIGlzIG5vdCBhdmFpbGFi
bGUgd2hlbiB0aGUgY29tcG9zaXRvciBpcyBydW5uaW5nLiAqLworICAgICAgIGNsYXNzIElWUkV4
dGVuZGVkRGlzcGxheQorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAg
LyoqIFNpemUgYW5kIHBvc2l0aW9uIHRoYXQgdGhlIHdpbmRvdyBuZWVkcyB0byBiZSBvbiB0aGUg
VlIgZGlzcGxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFdpbmRvd0JvdW5k
cyggaW50MzJfdCAqcG5YLCBpbnQzMl90ICpwblksIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJf
dCAqcG5IZWlnaHQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHZpZXdwb3J0
IGluIHRoZSBmcmFtZSBidWZmZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9mIHRoZSBkaXN0b3J0aW9u
IGludG8gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldEV5ZU91dHB1dFZpZXdwb3J0
KCBFVlJFeWUgZUV5ZSwgdWludDMyX3QgKnBuWCwgdWludDMyX3QgKnBuWSwgdWludDMyX3QgKnBu
V2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogW0Qz
RDEwLzExIE9ubHldCisgICAgICAgICAgICAgICogUmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCBh
bmQgb3V0cHV0IGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBFbnVtQWRhcHRl
cnMgYW5kIEVudW1PdXRwdXRzCisgICAgICAgICAgICAgICogdG8gY3JlYXRlIHRoZSBkZXZpY2Ug
YW5kIHN3YXAgY2hhaW4gaW4gRFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJzIGJvdGgg
aW5kaWNlcyB3aWxsIGJlIHNldCB0byAtMS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCB2b2lkIEdldERYR0lPdXRwdXRJbmZvKCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRl
eCwgaW50MzJfdCAqcG5BZGFwdGVyT3V0cHV0SW5kZXggKSA9IDA7CisKKyAgICAgICB9OworCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lv
biA9ICJJVlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKKworfQorCisKKy8vIGl2cnRyYWNrZWRjYW1l
cmEuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElWUlRyYWNrZWRDYW1lcmEKK3sKK3B1Ymxp
YzoKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYW4gZXJyb3IgKi8KKyAgICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIgKkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvciApID0gMDsKKworICAgICAgIC8qKiBGb3IgY29u
dmVuaWVuY2UsIHNhbWUgYXMgdHJhY2tlZCBwcm9wZXJ0eSByZXF1ZXN0IFByb3BfSGFzQ2FtZXJh
X0Jvb2wgKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2Ft
ZXJhKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICpwSGFzQ2Ft
ZXJhICkgPSAwOworCisgICAgICAgLyoqIEdldHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICov
CisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1l
U2l6ZSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNr
ZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90
ICpwbkhlaWdodCwgdWludDMyX3QgKnBuRnJhbWVCdWZmZXJTaXplICkgPSAwOworCisgICAgICAg
dmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3MoIHZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZyOjpIbWRWZWN0b3IyX3QgKnBGb2NhbExlbmd0aCwgdnI6
OkhtZFZlY3RvcjJfdCAqcENlbnRlciApID0gMDsKKworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRy
YWNrZWRDYW1lcmFFcnJvciBHZXRDYW1lcmFQcm9qZWN0aW9uKCB2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVU
eXBlLCBmbG9hdCBmbFpOZWFyLCBmbG9hdCBmbFpGYXIsIHZyOjpIbWRNYXRyaXg0NF90ICpwUHJv
amVjdGlvbiApID0gMDsKKworICAgICAgIC8qKiBBY3F1aXJpbmcgc3RyZWFtaW5nIHNlcnZpY2Ug
cGVybWl0cyB2aWRlbyBzdHJlYW1pbmcgZm9yIHRoZSBjYWxsZXIuIFJlbGVhc2luZyBoaW50cyB0
aGUgc3lzdGVtIHRoYXQgdmlkZW8gc2VydmljZXMgZG8gbm90IG5lZWQgdG8gYmUgbWFpbnRhaW5l
ZCBmb3IgdGhpcyBjbGllbnQuCisgICAgICAgKiBJZiB0aGUgY2FtZXJhIGhhcyBub3QgYWxyZWFk
eSBiZWVuIGFjdGl2YXRlZCwgYSBvbmUgdGltZSBzcGluIHVwIG1heSBpbmN1ciBzb21lIGF1dG8g
ZXhwb3N1cmUgYXMgd2VsbCBhcyBpbml0aWFsIHN0cmVhbWluZyBmcmFtZSBkZWxheXMuCisgICAg
ICAgKiBUaGUgY2FtZXJhIHNob3VsZCBiZSBjb25zaWRlcmVkIGEgZ2xvYmFsIHJlc291cmNlIGFj
Y2Vzc2libGUgZm9yIHNoYXJlZCBjb25zdW1wdGlvbiBidXQgbm90IGV4Y2x1c2l2ZSB0byBhbnkg
Y2FsbGVyLgorICAgICAgICogVGhlIGNhbWVyYSBtYXkgZ28gaW5hY3RpdmUgZHVlIHRvIGxhY2sg
b2YgYWN0aXZlIGNvbnN1bWVycyBvciBoZWFkc2V0IGlkbGVuZXNzLiAqLworICAgICAgIHZpcnR1
YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBBY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNl
KCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6VHJhY2tlZENhbWVy
YUhhbmRsZV90ICpwSGFuZGxlICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciBSZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZENhbWVy
YUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhICkgPSAwOworCisgICAgICAgLyoqIENvcGllcyB0aGUg
aW1hZ2UgZnJhbWUgaW50byBhIGNhbGxlcidzIHByb3ZpZGVkIGJ1ZmZlci4gVGhlIGltYWdlIGRh
dGEgaXMgY3VycmVudGx5IHByb3ZpZGVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIgcGl4ZWwu
CisgICAgICAgKiBBIGNhbGxlciBjYW4gcHJvdmlkZSBudWxsIGZvciB0aGUgZnJhbWVidWZmZXIg
b3IgZnJhbWVoZWFkZXIgaWYgbm90IGRlc2lyZWQuIFJlcXVlc3RpbmcgdGhlIGZyYW1lIGhlYWRl
ciBmaXJzdCwgZm9sbG93ZWQgYnkgdGhlIGZyYW1lIGJ1ZmZlciBhbGxvd3MKKyAgICAgICAqIHRo
ZSBjYWxsZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmcmFtZSBhcyBhZHZhbmNlZCBwZXIgdGhlIGZy
YW1lIGhlYWRlciBzZXF1ZW5jZS4gCisgICAgICAgKiBJZiB0aGVyZSBpcyBubyBmcmFtZSBhdmFp
bGFibGUgeWV0LCBkdWUgdG8gaW5pdGlhbCBjYW1lcmEgc3BpbnVwIG9yIHJlLWFjdGl2YXRpb24s
IHRoZSBlcnJvciB3aWxsIGJlIFZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUu
CisgICAgICAgKiBJZGVhbGx5IGEgY2FsbGVyIHNob3VsZCBiZSBwb2xsaW5nIGF0IH4xNm1zIGlu
dGVydmFscyAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRW
aWRlb1N0cmVhbUZyYW1lQnVmZmVyKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2Vk
Q2FtZXJhLCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpw
RnJhbWVCdWZmZXIsIHVpbnQzMl90IG5GcmFtZUJ1ZmZlclNpemUsIHZyOjpDYW1lcmFWaWRlb1N0
cmVhbUZyYW1lSGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6
ZSApID0gMDsKKworICAgICAgIC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1lLiAqLwor
ICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRl
eHR1cmVTaXplKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2cjo6VlJUZXh0dXJlQm91bmRzX3Qg
KnBUZXh0dXJlQm91bmRzLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkg
PSAwOyAKKworICAgICAgIC8qKiBBY2Nlc3MgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSBmb3IgdGhl
IHNwZWNpZmllZCB0cmFja2VkIGNhbWVyYSBzdHJlYW0uCisgICAgICAgKiBUaGUgY2FtZXJhIGZy
YW1lIHR5cGUgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIGlzIG5vdCBzdXBw
b3J0ZWQgZGlyZWN0bHkgYXMgYSBzaGFyZWQgdGV4dHVyZS4gSXQgaXMgYW4gaW50ZXJpb3Igc3Vi
cmVnaW9uIG9mIHRoZSBzaGFyZWQgdGV4dHVyZSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4
aW11bVVuZGlzdG9ydGVkLgorICAgICAgICogSW5zdGVhZCwgdXNlIEdldFZpZGVvU3RyZWFtVGV4
dHVyZVNpemUoKSB3aXRoIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCB0byBk
ZXRlcm1pbmUgdGhlIHByb3BlciBpbnRlcmlvciBzdWJyZWdpb24gYm91bmRzIGFsb25nIHdpdGgg
R2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEoKSB3aXRoCisgICAgICAgKiBWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIHRvIHByb3ZpZGUgdGhlIHRleHR1cmUuIFRo
ZSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIHdpbGwgeWllbGQg
YW4gaW1hZ2Ugd2hlcmUgdGhlIGludmFsaWQgcmVnaW9ucyBhcmUgZGVjb2RlZAorICAgICAgICog
YnkgdGhlIGFscGhhIGNoYW5uZWwgaGF2aW5nIGEgemVybyBjb21wb25lbnQuIFRoZSB2YWxpZCBy
ZWdpb25zIGFsbCBoYXZlIGEgbm9uLXplcm8gYWxwaGEgY29tcG9uZW50LiBUaGUgc3VicmVnaW9u
IGFzIGRlc2NyaWJlZCBieSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQgCisg
ICAgICAgKiBndWFyYW50ZWVzIGEgcmVjdGFuZ2xlIHdoZXJlIGFsbCBwaXhlbHMgYXJlIHZhbGlk
LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0
cmVhbVRleHR1cmVEM0QxMSggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVy
YSwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqcEQzRDEx
RGV2aWNlT3JSZXNvdXJjZSwgdm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIHZyOjpD
YW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZy
YW1lSGVhZGVyU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBBY2Nlc3MgYSBzaGFyZWQgR0wgdGV4
dHVyZSBmb3IgdGhlIHNwZWNpZmllZCB0cmFja2VkIGNhbWVyYSBzdHJlYW0gKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0wo
IHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZyOjpnbFVJbnRfdCAqcGdsVGV4dHVyZUlkLCB2
cjo6Q2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90
IG5GcmFtZUhlYWRlclNpemUgKSA9IDA7CisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENh
bWVyYUVycm9yIFJlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFI
YW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgdnI6OmdsVUludF90IGdsVGV4dHVyZUlkICkgPSAwOwor
fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24g
PSAiSVZSVHJhY2tlZENhbWVyYV8wMDMiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIGl2
cnNjcmVlbnNob3RzLmgKK25hbWVzcGFjZSB2cgoreworCisvKiogRXJyb3JzIHRoYXQgY2FuIG9j
Y3VyIHdpdGggdGhlIFZSIGNvbXBvc2l0b3IgKi8KK2VudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7
CisgICAgICAgVlJTY3JlZW5zaG90RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90RXJyb3JfUmVx
dWVzdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgICAg
IFZSU2NyZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gICAgICAgICAgICAgICAgICAg
ICA9IDEwMCwKKyAgICAgICBWUlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVy
cm9yX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyLAorICAg
ICAgIFZSU2NyZWVuc2hvdEVycm9yX1NjcmVlbnNob3RBbHJlYWR5SW5Qcm9ncmVzcyAgICAgICA9
IDEwOCwKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGdlbmVyYXRlIHNjcmVl
bnNob3RzICovCitjbGFzcyBJVlJTY3JlZW5zaG90cworeworcHVibGljOgorICAgICAgIC8qKiBS
ZXF1ZXN0IGEgc2NyZWVuc2hvdCBvZiB0aGUgcmVxdWVzdGVkIHR5cGUuCisgICAgICAgICogIEEg
cmVxdWVzdCBvZiB0aGUgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gdHlwZSB3aWxsIGFsd2F5cwor
ICAgICAgICAqICB3b3JrLiBPdGhlciB0eXBlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdW5kZXJseWlu
ZyBhcHBsaWNhdGlvbgorICAgICAgICAqICBzdXBwb3J0LgorICAgICAgICAqICBUaGUgZmlyc3Qg
ZmlsZSBuYW1lIGlzIGZvciB0aGUgcHJldmlldyBpbWFnZSBhbmQgc2hvdWxkIGJlIGEKKyAgICAg
ICAgKiAgcmVndWxhciBzY3JlZW5zaG90IChpZGVhbGx5IGZyb20gdGhlIGxlZnQgZXllKS4gVGhl
IHNlY29uZAorICAgICAgICAqICBpcyB0aGUgVlIgc2NyZWVuc2hvdCBpbiB0aGUgY29ycmVjdCBm
b3JtYXQuIFRoZXkgc2hvdWxkIGJlCisgICAgICAgICogIGluIHRoZSBzYW1lIGFzcGVjdCByYXRp
by4gIEZvcm1hdHMgcGVyIHR5cGU6CisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfTW9ubzog
dGhlIFZSIGZpbGVuYW1lIGlzIGlnbm9yZWQgKGNhbiBiZQorICAgICAgICAqICBudWxscHRyKSwg
dGhpcyBpcyBhIG5vcm1hbCBmbGF0IHNpbmdsZSBzaG90LgorICAgICAgICAqICBWUlNjcmVlbnNo
b3RUeXBlX1N0ZXJlbzogIFRoZSBWUiBpbWFnZSBzaG91bGQgYmUgYQorICAgICAgICAqICBzaWRl
LWJ5LXNpZGUgd2l0aCB0aGUgbGVmdCBleWUgaW1hZ2Ugb24gdGhlIGxlZnQuCisgICAgICAgICog
IFZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1hcDogVGhlIFZSIGltYWdlIHNob3VsZCBiZSBzaXggc3F1
YXJlCisgICAgICAgICogIGltYWdlcyBjb21wb3NpdGVkIGhvcml6b250YWxseS4KKyAgICAgICAg
KiAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYTogYWJvdmUvYmVsb3cgd2l0aCBsZWZ0
IGV5ZQorICAgICAgICAqICBwYW5vcmFtYSBiZWluZyB0aGUgYWJvdmUgaW1hZ2UuICBJbWFnZSBp
cyB0eXBpY2FsbHkgc3F1YXJlCisgICAgICAgICogIHdpdGggdGhlIHBhbm9yYW1hIGJlaW5nIDJ4
IGhvcml6b250YWwuCisgICAgICAgICogIAorICAgICAgICAqICBOb3RlIHRoYXQgdGhlIFZSIGRh
c2hib2FyZCB3aWxsIGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuCisgICAgICAgICogIHRoZSB1c2Vy
IHByZXNzZXMgdGhlIHNjcmVlbnNob3QgYmluZGluZyAoY3VycmVudGx5IFN5c3RlbQorICAgICAg
ICAqICBCdXR0b24gKyBUcmlnZ2VyKS4gIElmIFN0ZWFtIGlzIHJ1bm5pbmcsIHRoZSBkZXN0aW5h
dGlvbgorICAgICAgICAqICBmaWxlIG5hbWVzIHdpbGwgYmUgaW4gJVRFTVAlIGFuZCB3aWxsIGJl
IGNvcGllZCBpbnRvCisgICAgICAgICogIFN0ZWFtJ3Mgc2NyZWVuc2hvdCBsaWJyYXJ5IGZvciB0
aGUgcnVubmluZyBhcHBsaWNhdGlvbgorICAgICAgICAqICBvbmNlIFN1Ym1pdFNjcmVlbnNob3Qo
KSBpcyBjYWxsZWQuCisgICAgICAgICogIElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGUgcGF0
aHMgd2lsbCBiZSBpbiB0aGUgdXNlcidzCisgICAgICAgICogIGRvY3VtZW50cyBmb2xkZXIgdW5k
ZXIgRG9jdW1lbnRzXFN0ZWFtVlJcU2NyZWVuc2hvdHMuCisgICAgICAgICogIE90aGVyIFZSIGFw
cGxpY2F0aW9ucyBjYW4gY2FsbCB0aGlzIHRvIGluaXRpYXRlIGEKKyAgICAgICAgKiAgc2NyZWVu
c2hvdCBvdXRzaWRlIG9mIHVzZXIgY29udHJvbC4KKyAgICAgICAgKiAgVGhlIGRlc3RpbmF0aW9u
IGZpbGUgbmFtZXMgZG8gbm90IG5lZWQgYW4gZXh0ZW5zaW9uLAorICAgICAgICAqICB3aWxsIGJl
IHJlcGxhY2VkIHdpdGggdGhlIGNvcnJlY3Qgb25lIGZvciB0aGUgZm9ybWF0CisgICAgICAgICog
IHdoaWNoIGlzIGN1cnJlbnRseSAucG5nLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVl
bnNob3RFcnJvciBSZXF1ZXN0U2NyZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91
dFNjcmVlbnNob3RIYW5kbGUsIHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBjaGFy
ICpwY2hQcmV2aWV3RmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaFZSRmlsZW5hbWUgKSA9IDA7CisK
KyAgICAgICAvKiogQ2FsbGVkIGJ5IHRoZSBydW5uaW5nIFZSIGFwcGxpY2F0aW9uIHRvIGluZGlj
YXRlIHRoYXQgaXQKKyAgICAgICAgKiAgd2lzaGVzIHRvIGJlIGluIGNoYXJnZSBvZiBzY3JlZW5z
aG90cy4gIElmIHRoZQorICAgICAgICAqICBhcHBsaWNhdGlvbiBkb2VzIG5vdCBjYWxsIHRoaXMs
IHRoZSBDb21wb3NpdG9yIHdpbGwgb25seQorICAgICAgICAqICBzdXBwb3J0IFZSU2NyZWVuc2hv
dFR5cGVfU3RlcmVvIHNjcmVlbnNob3RzIHRoYXQgd2lsbCBiZQorICAgICAgICAqICBjYXB0dXJl
ZCB3aXRob3V0IG5vdGlmaWNhdGlvbiB0byB0aGUgcnVubmluZyBhcHAuCisgICAgICAgICogIE9u
Y2UgaG9va2VkIHlvdXIgYXBwbGljYXRpb24gd2lsbCByZWNlaXZlIGEKKyAgICAgICAgKiAgVlJF
dmVudF9SZXF1ZXN0U2NyZWVuc2hvdCBldmVudCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlCisg
ICAgICAgICogIGJ1dHRvbnMgdG8gdGFrZSBhIHNjcmVlbnNob3QuICovCisgICAgICAgdmlydHVh
bCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIEhvb2tTY3JlZW5zaG90KCBWUl9BUlJBWV9DT1VOVCgg
bnVtVHlwZXMgKSBjb25zdCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgKnBTdXBwb3J0ZWRUeXBlcywg
aW50IG51bVR5cGVzICkgPSAwOworCisgICAgICAgLyoqIFdoZW4geW91ciBhcHBsaWNhdGlvbiBy
ZWNlaXZlcyBhCisgICAgICAgICogIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgZXZlbnQsIGNh
bGwgdGhlc2UgZnVuY3Rpb25zIHRvIGdldAorICAgICAgICAqICB0aGUgZGV0YWlscyBvZiB0aGUg
c2NyZWVuc2hvdCByZXF1ZXN0LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RU
eXBlIEdldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2Ny
ZWVuc2hvdEhhbmRsZSwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOworCisg
ICAgICAgLyoqIEdldCB0aGUgZmlsZW5hbWUgZm9yIHRoZSBwcmV2aWV3IG9yIHZyIGltYWdlIChz
ZWUKKyAgICAgICAgKiAgdnI6OkVTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMpLiAgVGhlIHJl
dHVybiB2YWx1ZSBpcworICAgICAgICAqICB0aGUgc2l6ZSBvZiB0aGUgc3RyaW5nLiAgICovCisg
ICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoIHZy
OjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVWUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFtZVR5cGUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hG
aWxlbmFtZSwgdWludDMyX3QgY2NoRmlsZW5hbWUsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKnBF
cnJvciApID0gMDsKKworICAgICAgIC8qKiBDYWxsIHRoaXMgaWYgdGhlIGFwcGxpY2F0aW9uIGlz
IHRha2luZyB0aGUgc2NyZWVuIHNob3QKKyAgICAgICAgKiAgd2lsbCB0YWtlIG1vcmUgdGhhbiBh
IGZldyBtcyBwcm9jZXNzaW5nLiBUaGlzIHdpbGwgcmVzdWx0CisgICAgICAgICogIGluIGFuIG92
ZXJsYXkgYmVpbmcgcHJlc2VudGVkIHRoYXQgc2hvd3MgYSBjb21wbGV0aW9uCisgICAgICAgICog
IGJhci4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgVXBkYXRlU2Ny
ZWVuc2hvdFByb2dyZXNzKCB2cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUs
IGZsb2F0IGZsUHJvZ3Jlc3MgKSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgdGhlIGNvbXBvc2l0
b3IgdG8gdGFrZSBhbiBpbnRlcm5hbCBzY3JlZW5zaG90IG9mCisgICAgICAgICogIHR5cGUgVlJT
Y3JlZW5zaG90VHlwZV9TdGVyZW8uIEl0IHdpbGwgdGFrZSB0aGUgY3VycmVudAorICAgICAgICAq
ICBzdWJtaXR0ZWQgc2NlbmUgdGV4dHVyZXMgb2YgdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gYW5k
CisgICAgICAgICogIHdyaXRlIHRoZW0gaW50byB0aGUgcHJldmlldyBpbWFnZSBhbmQgYSBzaWRl
LWJ5LXNpZGUgZmlsZQorICAgICAgICAqICBmb3IgdGhlIFZSIGltYWdlLgorICAgICAgICAqICBU
aGlzIGlzIHNpbWlsYXIgdG8gcmVxdWVzdCBzY3JlZW5zaG90LCBidXQgZG9lc24ndCBldmVyCisg
ICAgICAgICogIHRhbGsgdG8gdGhlIGFwcGxpY2F0aW9uLCBqdXN0IHRha2VzIHRoZSBzaG90IGFu
ZCBzdWJtaXRzLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBUYWtl
U3RlcmVvU2NyZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RI
YW5kbGUsIGNvbnN0IGNoYXIgKnBjaFByZXZpZXdGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoVlJG
aWxlbmFtZSApID0gMDsKKworICAgICAgIC8qKiBTdWJtaXQgdGhlIGNvbXBsZXRlZCBzY3JlZW5z
aG90LiAgSWYgU3RlYW0gaXMgcnVubmluZworICAgICAgICAqICB0aGlzIHdpbGwgY2FsbCBpbnRv
IHRoZSBTdGVhbSBjbGllbnQgYW5kIHVwbG9hZCB0aGUKKyAgICAgICAgKiAgc2NyZWVuc2hvdCB0
byB0aGUgc2NyZWVuc2hvdHMgc2VjdGlvbiBvZiB0aGUgbGlicmFyeSBmb3IKKyAgICAgICAgKiAg
dGhlIHJ1bm5pbmcgYXBwbGljYXRpb24uICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhpcwor
ICAgICAgICAqICBmdW5jdGlvbiB3aWxsIGRpc3BsYXkgYSBub3RpZmljYXRpb24gdG8gdGhlIHVz
ZXIgdGhhdCB0aGUKKyAgICAgICAgKiAgc2NyZWVuc2hvdCB3YXMgdGFrZW4uIFRoZSBwYXRocyBz
aG91bGQgYmUgZnVsbCBwYXRocyB3aXRoCisgICAgICAgICogIGV4dGVuc2lvbnMuCisgICAgICAg
ICogIEZpbGUgcGF0aHMgc2hvdWxkIGJlIGFic29sdXRlIGluY2x1ZGluZyBleHRlbnNpb25zLgor
ICAgICAgICAqICBzY3JlZW5zaG90SGFuZGxlIGNhbiBiZSBrX3VuU2NyZWVuc2hvdEhhbmRsZUlu
dmFsaWQgaWYgdGhpcworICAgICAgICAqICB3YXMgYSBuZXcgc2hvdCB0YWtpbmcgYnkgdGhlIGFw
cCB0byBiZSBzYXZlZCBhbmQgbm90CisgICAgICAgICogIGluaXRpYXRlZCBieSBhIHVzZXIgKGFj
aGlldmVtZW50IGVhcm5lZCBvciBzb21ldGhpbmcpICovCisgICAgICAgdmlydHVhbCB2cjo6RVZS
U2NyZWVuc2hvdEVycm9yIFN1Ym1pdFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qg
c2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZVByZXZpZXdGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoU291cmNlVlJGaWxlbmFt
ZSApID0gMDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU2NyZWVuc2hvdHNf
VmVyc2lvbiA9ICJJVlJTY3JlZW5zaG90c18wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisK
KworLy8gaXZycmVzb3VyY2VzLmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJSZXNvdXJj
ZXMKK3sKK3B1YmxpYzoKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIFNoYXJlZCBSZXNvdXJjZSBNZXRob2RzCisgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogTG9hZHMgdGhl
IHNwZWNpZmllZCByZXNvdXJjZSBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIgaWYgbGFyZ2UgZW5v
dWdoLgorICAgICAgICogUmV0dXJucyB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYnVmZmVyIHJl
cXVpcmVkIHRvIGhvbGQgdGhlIHNwZWNpZmllZCByZXNvdXJjZS4gKi8KKyAgICAgICB2aXJ0dWFs
IHVpbnQzMl90IExvYWRTaGFyZWRSZXNvdXJjZSggY29uc3QgY2hhciAqcGNoUmVzb3VyY2VOYW1l
LCBjaGFyICpwY2hCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAwOworCisgICAgICAg
LyoqIFByb3ZpZGVzIHRoZSBmdWxsIHBhdGggdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZS4gUmVz
b3VyY2UgbmFtZXMgY2FuIGluY2x1ZGUgbmFtZWQgZGlyZWN0b3JpZXMgZm9yCisgICAgICAgKiBk
cml2ZXJzIGFuZCBvdGhlciB0aGluZ3MsIGFuZCB0aGlzIHJlc29sdmVzIGFsbCBvZiB0aG9zZSBh
bmQgcmV0dXJucyB0aGUgYWN0dWFsIHBoeXNpY2FsIHBhdGguIAorICAgICAgICogcGNoUmVzb3Vy
Y2VUeXBlRGlyZWN0b3J5IGlzIHRoZSBzdWJkaXJlY3Rvcnkgb2YgcmVzb3VyY2VzIHRvIGxvb2sg
aW4uICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZXNvdXJjZUZ1bGxQYXRoKCBjb25z
dCBjaGFyICpwY2hSZXNvdXJjZU5hbWUsIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlVHlwZURpcmVj
dG9yeSwgY2hhciAqcGNoUGF0aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKSA9IDA7Cit9
OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlJlc291cmNlc19WZXJzaW9uID0gIklW
UlJlc291cmNlc18wMDEiOworCisKK30KKy8vIGl2cmRyaXZlcm1hbmFnZXIuaAorbmFtZXNwYWNl
IHZyCit7CisKK2NsYXNzIElWUkRyaXZlck1hbmFnZXIKK3sKK3B1YmxpYzoKKyAgICAgICB2aXJ0
dWFsIHVpbnQzMl90IEdldERyaXZlckNvdW50KCkgY29uc3QgPSAwOworCisgICAgICAgLyoqIFJl
dHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xk
IHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0aGUgdHJhaWxpbmcgbnVsbC4gKi8KKyAgICAgICB2aXJ0
dWFsIHVpbnQzMl90IEdldERyaXZlck5hbWUoIHZyOjpEcml2ZXJJZF90IG5Ecml2ZXIsIFZSX09V
VF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkgPSAwOwor
fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24g
PSAiSVZSRHJpdmVyTWFuYWdlcl8wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIEVu
ZAorCisjZW5kaWYgLy8gX09QRU5WUl9BUEkKKworCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAv
KiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdGhlIFZSIEFQSSBhbmQgaW5pdGlh
bGl6ZXMgaXQuIFRoZSBwcm92aWRlZCBwYXRoIG11c3QgYmUgYWJzb2x1dGUKKyAgICAgICAqIG9y
IHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBUaGVzZSBhcmUgdGhl
IGxvY2FsIGluc3RhbGwgdmVyc2lvbnMgb2YgdGhlIGVxdWl2YWxlbnQKKyAgICAgICAqIGZ1bmN0
aW9ucyBpbiBzdGVhbXZyLmggYW5kIHdpbGwgd29yayB3aXRob3V0IGEgbG9jYWwgU3RlYW0gaW5z
dGFsbC4KKyAgICAgICAqCisgICAgICAgKiBUaGlzIHBhdGggaXMgdG8gdGhlICJyb290IiBvZiB0
aGUgVlIgQVBJIGluc3RhbGwuIFRoYXQncyB0aGUgZGlyZWN0b3J5IHdpdGgKKyAgICAgICAqIHRo
ZSAiZHJpdmVycyIgZGlyZWN0b3J5IGFuZCBhIHBsYXRmb3JtIChpLmUuICJ3aW4zMiIpIGRpcmVj
dG9yeSBpbiBpdCwgbm90IHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgRExMIGl0c2VsZi4KKyAgICAg
ICAqCisgICAgICAgKiBwU3RhcnR1cEluZm8gaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisg
ICAgICAgKi8KKyAgICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3Ig
KnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFy
ICpwU3RhcnR1cEluZm8gPSBudWxscHRyICk7CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVu
dC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAg
ICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJf
U2h1dGRvd24oKTsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gSE1E
IGF0dGFjaGVkLiBUaGlzIGNoZWNrIGlzIGFzIGxpZ2h0d2VpZ2h0IGFzIHBvc3NpYmxlIGFuZAor
ICAgICAgICogY2FuIGJlIGNhbGxlZCBvdXRzaWRlIG9mIFZSX0luaXQvVlJfU2h1dGRvd24uIEl0
IHNob3VsZCBiZSB1c2VkIHdoZW4gYW4gYXBwbGljYXRpb24gd2FudHMKKyAgICAgICAqIHRvIGtu
b3cgaWYgaW5pdGlhbGl6aW5nIFZSIGlzIGEgcG9zc2liaWxpdHkgYnV0IGlzbid0IHJlYWR5IHRv
IHRha2UgdGhhdCBzdGVwIHlldC4KKyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29s
IFZSX0NBTExUWVBFIFZSX0lzSG1kUHJlc2VudCgpOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgT3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworICAgICAgIFZSX0lOVEVS
RkFDRSBib29sIFZSX0NBTExUWVBFIFZSX0lzUnVudGltZUluc3RhbGxlZCgpOworCisgICAgICAg
LyoqIFJldHVybnMgd2hlcmUgdGhlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAg
ICAgICBWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJfUnVudGltZVBhdGgo
KTsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlIGZvciBh
biBFVlJJbml0RXJyb3IuIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBvdXRzaWRlIG9mIFZS
X0luaXQoKS9WUl9TaHV0ZG93bigpLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBjaGFy
ICpWUl9DQUxMVFlQRSBWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJy
b3IgKTsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIEVuZ2xpc2ggc3RyaW5nIGZvciBhbiBFVlJJ
bml0RXJyb3IuIEFwcGxpY2F0aW9ucyBzaG91bGQgY2FsbCBWUl9HZXRWUkluaXRFcnJvckFzU3lt
Ym9sIGluc3RlYWQgYW5kCisgICAgICAgKiB1c2UgdGhhdCBhcyBhIGtleSB0byBsb29rIHVwIHRo
ZWlyIG93biBsb2NhbGl6ZWQgZXJyb3IgbWVzc2FnZS4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2Fs
bGVkIG91dHNpZGUgb2YgVlJfSW5pdCgpL1ZSX1NodXRkb3duKCkuICovCisgICAgICAgVlJfSU5U
RVJGQUNFIGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNo
RGVzY3JpcHRpb24oIEVWUkluaXRFcnJvciBlcnJvciApOworCisgICAgICAgLyoqIFJldHVybnMg
dGhlIGludGVyZmFjZSBvZiB0aGUgc3BlY2lmaWVkIHZlcnNpb24uIFRoaXMgbWV0aG9kIG11c3Qg
YmUgY2FsbGVkIGFmdGVyIFZSX0luaXQuIFRoZQorICAgICAgICogcG9pbnRlciByZXR1cm5lZCBp
cyB2YWxpZCB1bnRpbCBWUl9TaHV0ZG93biBpcyBjYWxsZWQuCisgICAgICAgKi8KKyAgICAgICBW
Ul9JTlRFUkZBQ0Ugdm9pZCAqVlJfQ0FMTFRZUEUgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29u
c3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CisK
KyAgICAgICAvKiogUmV0dXJucyB3aGV0aGVyIHRoZSBpbnRlcmZhY2Ugb2YgdGhlIHNwZWNpZmll
ZCB2ZXJzaW9uIGV4aXN0cy4KKyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZS
X0NBTExUWVBFIFZSX0lzSW50ZXJmYWNlVmVyc2lvblZhbGlkKCBjb25zdCBjaGFyICpwY2hJbnRl
cmZhY2VWZXJzaW9uICk7CisKKyAgICAgICAvKiogUmV0dXJucyBhIHRva2VuIHRoYXQgcmVwcmVz
ZW50cyB3aGV0aGVyIHRoZSBWUiBpbnRlcmZhY2UgaGFuZGxlcyBuZWVkIHRvIGJlIHJlbG9hZGVk
ICovCisgICAgICAgVlJfSU5URVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0dldEluaXRU
b2tlbigpOworCisgICAgICAgLy8gVGhlc2UgdHlwZWRlZnMgYWxsb3cgb2xkIGVudW0gbmFtZXMg
ZnJvbSBTREsgMC45LjExIHRvIGJlIHVzZWQgaW4gYXBwbGljYXRpb25zLgorICAgICAgIC8vIFRo
ZXkgd2lsbCBnbyBhd2F5IGluIHRoZSBmdXR1cmUuCisgICAgICAgdHlwZWRlZiBFVlJJbml0RXJy
b3IgSG1kRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKKyAgICAgICB0eXBl
ZGVmIEVDb2xvclNwYWNlIENvbG9yU3BhY2U7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdSZXN1
bHQgSG1kVHJhY2tpbmdSZXN1bHQ7CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNz
IFRyYWNrZWREZXZpY2VDbGFzczsKKyAgICAgICB0eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3Jp
Z2luIFRyYWNraW5nVW5pdmVyc2VPcmlnaW47CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmlj
ZVByb3BlcnR5IFRyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKyAgICAgICB0eXBlZGVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBUcmFja2VkUHJvcGVydHlFcnJvcjsKKyAgICAgICB0eXBlZGVmIEVWUlN1
Ym1pdEZsYWdzIFZSU3VibWl0RmxhZ3NfdDsKKyAgICAgICB0eXBlZGVmIEVWUlN0YXRlIFZSU3Rh
dGVfdDsKKyAgICAgICB0eXBlZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3Vu
ZHNTdHlsZV90OworICAgICAgIHR5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9y
OworICAgICAgIHR5cGVkZWYgRVZSRmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7CisgICAg
ICAgdHlwZWRlZiBFVlJDb21wb3NpdG9yRXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7CisgICAgICAg
dHlwZWRlZiBFVlJTY3JlZW5zaG90RXJyb3IgVlJTY3JlZW5zaG90c0Vycm9yOworCisgICAgICAg
aW5saW5lIHVpbnQzMl90ICZWUlRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRp
YyB1aW50MzJfdCB0b2tlbjsKKyAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOworICAgICAgIH0K
KworICAgICAgIGNsYXNzIENPcGVuVlJDb250ZXh0CisgICAgICAgeworICAgICAgIHB1YmxpYzoK
KyAgICAgICAgICAgICAgQ09wZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKyAgICAgICAgICAg
ICAgdm9pZCBDbGVhcigpOworCisgICAgICAgICAgICAgIGlubGluZSB2b2lkIENoZWNrQ2xlYXIo
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIFZSVG9rZW4oKSAh
PSBWUl9HZXRJbml0VG9rZW4oKSApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
UlRva2VuKCkgPSBWUl9HZXRJbml0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlN5c3RlbSAqVlJTeXN0ZW0oKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAoIG1fcFZSU3lzdGVtID09IG51bGxwdHIgKQorICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSAoIElWUlN5c3Rl
bSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJTeXN0ZW1fVmVyc2lvbiwgJmVFcnJvciAp
OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1f
cFZSU3lzdGVtOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZSAq
VlJDaGFwZXJvbmUoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVj
a0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQ2hhcGVyb25lID09IG51
bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9w
VlJDaGFwZXJvbmUgPSAoIElWUkNoYXBlcm9uZSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJ
VlJDaGFwZXJvbmVfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgSVZSQ2hhcGVyb25lU2V0dXAgKlZSQ2hhcGVyb25lU2V0dXAo
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7Cisg
ICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQ2hhcGVyb25lU2V0dXAgPT0gbnVsbHB0ciAp
CisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZS
SW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBl
cm9uZVNldHVwID0gKCBJVlJDaGFwZXJvbmVTZXR1cCAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNl
KCBJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJDaGFwZXJvbmVTZXR1cDsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkNvbXBvc2l0b3IgKlZSQ29tcG9z
aXRvcigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJDb21wb3NpdG9yID09IG51bGxwdHIg
KQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVW
UkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDb21w
b3NpdG9yID0gKCBJVlJDb21wb3NpdG9yICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNv
bXBvc2l0b3JfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIElWUk92ZXJsYXkgKlZST3ZlcmxheSgpCisgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAg
ICAgIGlmICggbV9wVlJPdmVybGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJPdmVybGF5ID0gKCBJVlJPdmVybGF5ICogKVZS
X0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUk92ZXJsYXlfVmVyc2lvbiwgJmVFcnJvciApOworICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZST3Zl
cmxheTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlJlc291cmNlcyAqVlJS
ZXNvdXJjZXMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0Ns
ZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSUmVzb3VyY2VzID09IG51bGxw
dHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJS
ZXNvdXJjZXMgPSAoSVZSUmVzb3VyY2VzICopVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUmVz
b3VyY2VzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlJlc291cmNlczsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIElWUlNjcmVlbnNob3RzICpWUlNjcmVlbnNob3RzKCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAg
ICAgICAgICAgaWYgKCBtX3BWUlNjcmVlbnNob3RzID09IG51bGxwdHIgKQorICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9ICggSVZS
U2NyZWVuc2hvdHMgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2NyZWVuc2hvdHNfVmVy
c2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fcFZSU2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICBJVlJSZW5kZXJNb2RlbHMgKlZSUmVuZGVyTW9kZWxzKCkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAg
ICAgaWYgKCBtX3BWUlJlbmRlck1vZGVscyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gKCBJVlJSZW5k
ZXJNb2RlbHMgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUmVuZGVyTW9kZWxzX1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUlJlbmRlck1vZGVsczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIElWUkV4dGVuZGVkRGlzcGxheSAqVlJFeHRlbmRlZERpc3BsYXkoKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAg
ICAgICAgICBpZiAoIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID09IG51bGxwdHIgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBl
RXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkg
PSAoIElWUkV4dGVuZGVkRGlzcGxheSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJFeHRl
bmRlZERpc3BsYXlfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3MoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAoIG1fcFZSU2V0dGluZ3MgPT0gbnVsbHB0ciApCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVF
cnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKCBJVlJT
ZXR0aW5ncyAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9uLCAm
ZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9wVlJTZXR0aW5nczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElW
UkFwcGxpY2F0aW9ucyAqVlJBcHBsaWNhdGlvbnMoKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1f
cFZSQXBwbGljYXRpb25zID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSAoIElWUkFwcGxpY2F0aW9ucyAq
IClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiwgJmVFcnJv
ciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1fcFZSQXBwbGljYXRpb25zOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZS
VHJhY2tlZENhbWVyYSAqVlJUcmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBt
X3BWUlRyYWNrZWRDYW1lcmEgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3BWUlRyYWNrZWRDYW1lcmEgPSAoIElWUlRyYWNrZWRDYW1l
cmEgKiApVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uLCAm
ZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgSVZSRHJpdmVyTWFuYWdlciAqVlJEcml2ZXJNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAg
aWYgKCAhbV9wVlJEcml2ZXJNYW5hZ2VyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fcFZSRHJpdmVyTWFuYWdlciA9ICggSVZSRHJpdmVyTWFuYWdlciAq
IClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24sICZlRXJy
b3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBtX3BWUkRyaXZlck1hbmFnZXI7CisgICAgICAgICAgICAgIH0KKworICAgICAgIHByaXZhdGU6
CisgICAgICAgICAgICAgIElWUlN5c3RlbSAgICAgICAgICAgICAgICAgICAgICptX3BWUlN5c3Rl
bTsKKyAgICAgICAgICAgICAgSVZSQ2hhcGVyb25lICAgICAgICAgICAgICAqbV9wVlJDaGFwZXJv
bmU7CisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZVNldHVwICAgICAgICptX3BWUkNoYXBlcm9u
ZVNldHVwOworICAgICAgICAgICAgICBJVlJDb21wb3NpdG9yICAgICAgICAgICAgICAqbV9wVlJD
b21wb3NpdG9yOworICAgICAgICAgICAgICBJVlJPdmVybGF5ICAgICAgICAgICAgICAgICAgICAg
Km1fcFZST3ZlcmxheTsKKyAgICAgICAgICAgICAgSVZSUmVzb3VyY2VzICAgICAgICAgICAgICAq
bV9wVlJSZXNvdXJjZXM7CisgICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAgICAgICAgICAg
ICAgKm1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAgICBJVlJFeHRlbmRlZERpc3BsYXkg
ICAgICAgKm1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICBJVlJTZXR0aW5ncyAg
ICAgICAgICAgICAgICAgICAgICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJVlJBcHBs
aWNhdGlvbnMgICAgICAgICAgICAgICptX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAg
SVZSVHJhY2tlZENhbWVyYSAgICAgICAqbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAg
ICBJVlJTY3JlZW5zaG90cyAgICAgICAgICAgICAgKm1fcFZSU2NyZWVuc2hvdHM7CisgICAgICAg
ICAgICAgIElWUkRyaXZlck1hbmFnZXIgICAgICAgKm1fcFZSRHJpdmVyTWFuYWdlcjsKKyAgICAg
ICB9OworCisgICAgICAgaW5saW5lIENPcGVuVlJDb250ZXh0ICZPcGVuVlJJbnRlcm5hbF9Nb2R1
bGVDb250ZXh0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRpYyB2b2lkICpjdHhbIHNp
emVvZiggQ09wZW5WUkNvbnRleHQgKSAvIHNpemVvZiggdm9pZCAqICkgXTsKKyAgICAgICAgICAg
ICAgcmV0dXJuICooIENPcGVuVlJDb250ZXh0ICogKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBj
b25zdHJ1Y3RvcgorICAgICAgIH0KKworICAgICAgIGlubGluZSBJVlJTeXN0ZW0gKlZSX0NBTExU
WVBFIFZSU3lzdGVtKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZS
U3lzdGVtKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQ2hhcGVyb25lICpWUl9DQUxMVFlQRSBWUkNo
YXBlcm9uZSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNoYXBl
cm9uZSgpOyB9CisgICAgICAgaW5saW5lIElWUkNoYXBlcm9uZVNldHVwICpWUl9DQUxMVFlQRSBW
UkNoYXBlcm9uZVNldHVwKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgp
LlZSQ2hhcGVyb25lU2V0dXAoKTsgfQorICAgICAgIGlubGluZSBJVlJDb21wb3NpdG9yICpWUl9D
QUxMVFlQRSBWUkNvbXBvc2l0b3IoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250
ZXh0KCkuVlJDb21wb3NpdG9yKCk7IH0KKyAgICAgICBpbmxpbmUgSVZST3ZlcmxheSAqVlJfQ0FM
TFRZUEUgVlJPdmVybGF5KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgp
LlZST3ZlcmxheSgpOyB9CisgICAgICAgaW5saW5lIElWUlNjcmVlbnNob3RzICpWUl9DQUxMVFlQ
RSBWUlNjcmVlbnNob3RzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgp
LlZSU2NyZWVuc2hvdHMoKTsgfQorICAgICAgIGlubGluZSBJVlJSZW5kZXJNb2RlbHMgKlZSX0NB
TExUWVBFIFZSUmVuZGVyTW9kZWxzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29u
dGV4dCgpLlZSUmVuZGVyTW9kZWxzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQXBwbGljYXRpb25z
ICpWUl9DQUxMVFlQRSBWUkFwcGxpY2F0aW9ucygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQoKS5WUkFwcGxpY2F0aW9ucygpOyB9CisgICAgICAgaW5saW5lIElWUlNldHRp
bmdzICpWUl9DQUxMVFlQRSBWUlNldHRpbmdzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCgpLlZSU2V0dGluZ3MoKTsgfQorICAgICAgIGlubGluZSBJVlJSZXNvdXJjZXMg
KlZSX0NBTExUWVBFIFZSUmVzb3VyY2VzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxl
Q29udGV4dCgpLlZSUmVzb3VyY2VzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSRXh0ZW5kZWREaXNw
bGF5ICpWUl9DQUxMVFlQRSBWUkV4dGVuZGVkRGlzcGxheSgpIHsgcmV0dXJuIE9wZW5WUkludGVy
bmFsX01vZHVsZUNvbnRleHQoKS5WUkV4dGVuZGVkRGlzcGxheSgpOyB9CisgICAgICAgaW5saW5l
IElWUlRyYWNrZWRDYW1lcmEgKlZSX0NBTExUWVBFIFZSVHJhY2tlZENhbWVyYSgpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUlRyYWNrZWRDYW1lcmEoKTsgfQorICAg
ICAgIGlubGluZSBJVlJEcml2ZXJNYW5hZ2VyICpWUl9DQUxMVFlQRSBWUkRyaXZlck1hbmFnZXIo
KSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJEcml2ZXJNYW5hZ2Vy
KCk7IH0KKworICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJDb250ZXh0OjpDbGVhcigpCisgICAg
ICAgeworICAgICAgICAgICAgICBtX3BWUlN5c3RlbSA9IG51bGxwdHI7CisgICAgICAgICAgICAg
IG1fcFZSQ2hhcGVyb25lID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVT
ZXR1cCA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG51bGxwdHI7
CisgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1f
cFZSUmVuZGVyTW9kZWxzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERp
c3BsYXkgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxscHRyOworICAgICAgICAgICAg
ICBtX3BWUlRyYWNrZWRDYW1lcmEgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlJlc291
cmNlcyA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxscHRy
OworICAgICAgICAgICAgICBtX3BWUkRyaXZlck1hbmFnZXIgPSBudWxscHRyOworICAgICAgIH0K
KyAgICAgICAKKyAgICAgICBWUl9JTlRFUkZBQ0UgdWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfSW5p
dEludGVybmFsMiggRVZSSW5pdEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFw
cGxpY2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICk7CisgICAgICAgVlJfSU5U
RVJGQUNFIHZvaWQgVlJfQ0FMTFRZUEUgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworCisgICAgICAg
LyoqIEZpbmRzIHRoZSBhY3RpdmUgaW5zdGFsbGF0aW9uIG9mIHZyY2xpZW50LmRsbCBhbmQgaW5p
dGlhbGl6ZXMgaXQgKi8KKyAgICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0
RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25z
dCBjaGFyICpwU3RhcnR1cEluZm8gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSVZSU3lzdGVt
ICpwVlJTeXN0ZW0gPSBudWxscHRyOworCisgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgIFZSVG9rZW4oKSA9IFZSX0luaXRJbnRlcm5hbDIoICZlRXJyb3Is
IGVBcHBsaWNhdGlvblR5cGUsIHBTdGFydHVwSW5mbyApOworICAgICAgICAgICAgICBDT3BlblZS
Q29udGV4dCAmY3R4ID0gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpOworICAgICAgICAg
ICAgICBjdHguQ2xlYXIoKTsKKworICAgICAgICAgICAgICBpZiAoIGVFcnJvciA9PSBWUkluaXRF
cnJvcl9Ob25lICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBW
Ul9Jc0ludGVyZmFjZVZlcnNpb25WYWxpZCggSVZSU3lzdGVtX1ZlcnNpb24gKSApCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFZSU3lzdGVtID0g
VlJTeXN0ZW0oKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWUl9TaHV0ZG93bkludGVybmFsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZUVy
cm9yID0gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGlmICggcGVFcnJvciAp
CisgICAgICAgICAgICAgICAgICAgICAqcGVFcnJvciA9IGVFcnJvcjsKKyAgICAgICAgICAgICAg
cmV0dXJuIHBWUlN5c3RlbTsKKyAgICAgICB9CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVu
dC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAg
ICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJf
U2h1dGRvd24oKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJfU2h1dGRvd25JbnRlcm5hbCgp
OworICAgICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFk
ZXJzL29wZW52cl9hcGkuY3MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVu
dnJfYXBpLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1
YjExYjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzCkBAIC0wLDAgKzEsNDc4NiBAQAorLy89PT09PT09IENvcHlyaWdodCAo
YykgVmFsdmUgQ29ycG9yYXRpb24sIEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09
PQorLy8KKy8vIFB1cnBvc2U6IFRoaXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmlu
ZGluZ3MgZm9yIHRoZSBPcGVuVlIgaW50ZXJmYWNlcworLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2Vu
ZXJhdGVkLCBkbyBub3QgZWRpdCBpdC4KKy8vCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3Vz
aW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKK3VzaW5n
IFZhbHZlLlZSOworCituYW1lc3BhY2UgVmFsdmUuVlIKK3sKKworW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KK3sKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6
ZShyZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21t
ZW5kZWRSZW5kZXJUYXJnZXRTaXplIEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlv
bk1hdHJpeChFVlJFeWUgZUV5ZSwgZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0UHJvamVjdGlvbk1hdHJpeCBHZXRQcm9qZWN0aW9uTWF0cml4OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYg
ZmxvYXQgcGZMZWZ0LCByZWYgZmxvYXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxv
YXQgcGZCb3R0b20pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24o
RVZSRXllIGVFeWUsIGZsb2F0IGZVLCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRl
c190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENv
bXB1dGVEaXN0b3J0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRy
aXgzNF90IF9HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oRVZSRXllIGVFeWUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5
ZVRvSGVhZFRyYW5zZm9ybSBHZXRFeWVUb0hlYWRUcmFuc2Zvcm07CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZT
ZWNvbmRzU2luY2VMYXN0VnN5bmMsIHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFRpbWVTaW5jZUxhc3RWc3luYyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldEQzRDlBZGFwdGVySW5kZXggR2V0RDNEOUFkYXB0ZXJJbmRleDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0
ZXJJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0lzRGlzcGxheU9uRGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wg
YklzVmlzaWJsZU9uRGVza3RvcCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlz
cGxheVZpc2liaWxpdHk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dl
dERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9y
aWdpbiwgZmxvYXQgZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0g
VHJhY2tlZERldmljZVBvc2VfdFtdIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJh
Y2tlZERldmljZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJh
Y2tpbmdQb3NlIEdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9S
ZXNldFNlYXRlZFplcm9Qb3NlIFJlc2V0U2VhdGVkWmVyb1Bvc2U7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGlu
Z0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5k
aW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1
dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJp
eDM0X3QgX0dldFJhd1plcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3
WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFz
cyhFVHJhY2tlZERldmljZUNsYXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50
W10gcHVuVHJhY2tlZERldmljZUluZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhB
cnJheUNvdW50LCB1aW50IHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0U29ydGVkVHJhY2tlZERldmljZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZp
Y2VJbmRpY2VzT2ZDbGFzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmlj
ZUFjdGl2aXR5TGV2ZWwgX0dldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZp
Y2VJZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERl
dmljZUFjdGl2aXR5TGV2ZWw7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQg
X0FwcGx5VHJhbnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYg
VHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90
IHBUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhG
b3JDb250cm9sbGVyUm9sZShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERl
dmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVUcmFja2VkQ29udHJvbGxlclJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERl
dmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVG
b3JUcmFja2VkRGV2aWNlSW5kZXggR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5k
ZXg7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3Mg
X0dldFRyYWNrZWREZXZpY2VDbGFzcyh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRy
YWNrZWREZXZpY2VDbGFzcyBHZXRUcmFja2VkRGV2aWNlQ2xhc3M7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2
aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZp
Y2VDb25uZWN0ZWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJv
b2xUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmlj
ZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVy
dHk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgcmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZs
b2F0VHJhY2tlZERldmljZVByb3BlcnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5Owor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmlj
ZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCByZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFj
a2VkRGV2aWNlUHJvcGVydHkgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJv
cGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJl
ZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2Vk
RGV2aWNlUHJvcGVydHkgR2V0VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgcmVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE1hdHJp
eDM0VHJhY2tlZERldmljZVByb3BlcnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2Vk
RGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5
IHByb3AsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJT
aXplLCByZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5n
VHJhY2tlZERldmljZVByb3BlcnR5IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJv
bUVudW0oRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JO
YW1lRnJvbUVudW0gR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9Qb2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1
aW50IHVuY2JWUkV2ZW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9z
ZShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwg
dWludCB1bmNiVlJFdmVudCwgcmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQ
b3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9Qb2xsTmV4dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3Nl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5h
bWVGcm9tRW51bShFVlJFdmVudFR5cGUgZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVG
cm9tRW51bSBHZXRFdmVudFR5cGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEhpZGRlbkFyZWFNZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXll
LCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdl
dEhpZGRlbkFyZWFNZXNoOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRDb250cm9sbGVyU3RhdGUodWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29u
dHJvbGxlclN0YXRlX3QgcENvbnRyb2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNp
emUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQ
b3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQg
dW5Db250cm9sbGVyU3RhdGVTaXplLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERl
dmljZVBvc2UpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xs
ZXJTdGF0ZVdpdGhQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9U
cmlnZ2VySGFwdGljUHVsc2UodWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4
aXNJZCwgY2hhciB1c0R1cmF0aW9uTWljcm9TZWMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxz
ZSBUcmlnZ2VySGFwdGljUHVsc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIElu
dFB0ciBfR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRCdXR0b25JZE5hbWVGcm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5
cGVOYW1lRnJvbUVudW0oRVZSQ29udHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5h
bWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVy
ZUlucHV0Rm9jdXMoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1
czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9j
dXMoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9SZWxlYXNlSW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFu
b3RoZXJQcm9jZXNzKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9j
ZXNzIElzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzczsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJ
bmRleCwgc3RyaW5nIHBjaFJlcXVlc3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1
blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRl
YnVnUmVxdWVzdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVF
cnJvciBfUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
UGVyZm9ybUZpcm13YXJlVXBkYXRlIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9BY2tub3dsZWRnZVF1aXRfRXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQ
cm9tcHQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9BY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1
aXRfVXNlclByb21wdDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldCitwdWJsaWMgc3RydWN0IElWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50
IHBuWSwgcmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdp
bmRvd0JvdW5kcyBHZXRXaW5kb3dCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0dldEV5ZU91dHB1dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgs
IHJlZiB1aW50IHBuWSwgcmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldEV5ZU91dHB1dFZpZXdwb3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBu
QWRhcHRlckluZGV4LCByZWYgaW50IHBuQWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRE
WEdJT3V0cHV0SW5mbyBHZXREWEdJT3V0cHV0SW5mbzsKKworfQorCitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKK3sK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1l
RnJvbUVudW0oRVZSVHJhY2tlZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2Ft
ZXJhKHVpbnQgbkRldmljZUluZGV4LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IYXND
YW1lcmEgSGFzQ2FtZXJhOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgX0dldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYg
dWludCBwbkhlaWdodCwgcmVmIHVpbnQgcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENh
bWVyYUZyYW1lU2l6ZSBHZXRDYW1lcmFGcmFtZVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50
IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYg
SG1kVmVjdG9yMl90IHBGb2NhbExlbmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRDYW1lcmFJbnRyaW5zaWNzIEdldENhbWVyYUludHJpbnNpY3M7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJv
amVjdGlvbih1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCBmbG9hdCBmbFpOZWFyLCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQ
cm9qZWN0aW9uKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rp
b247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJv
ciBfQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVs
b25nIHBIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWly
ZVZpZGVvU3RyZWFtaW5nU2VydmljZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSVHJhY2tlZENhbWVyYUVycm9yIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25n
IGhUcmFja2VkQ2FtZXJhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJl
bGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9u
ZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJ
bnRQdHIgcEZyYW1lQnVmZmVyLCB1aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1
ZmZlcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVy
cm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4
dHVyZUJvdW5kcywgcmVmIHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRW
aWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENh
bWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwg
cmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJl
YW1GcmFtZUhlYWRlcl90IHBGcmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0Qx
MTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9y
IF9HZXRWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBD
YW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhl
YWRlclNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFt
VGV4dHVyZUdMOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgX1JlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVy
YSwgdWludCBnbFRleHR1cmVJZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdM
IFJlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVHTDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucworeworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGlj
YXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29s
IGJUZW1wb3JhcnkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRp
b25NYW5pZmVzdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRp
b25FcnJvciBfUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25N
YW5pZmVzdEZ1bGxQYXRoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92
ZUFwcGxpY2F0aW9uTWFuaWZlc3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJv
b2wgX0lzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNB
cHBsaWNhdGlvbkluc3RhbGxlZCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0QXBwbGljYXRpb25Db3VudCBHZXRBcHBsaWNhdGlvbkNvdW50OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5
SW5kZXgodWludCB1bkFwcGxpY2F0aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBs
aWNhdGlvbktleUJ5SW5kZXggR2V0QXBwbGljYXRpb25LZXlCeUluZGV4OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktl
eUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVp
bnQgdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNz
SWQgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBj
aEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfTGF1bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5j
aFRlbXBsYXRlQXBwbGljYXRpb24oc3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNo
TmV3QXBwS2V5LCBbSW4sIE91dF0gQXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktl
eXMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0xhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBs
aWNhdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25F
cnJvciBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBz
dHJpbmcgcGNoQXJncyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1
bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBj
aEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRP
dmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBs
aWNhdGlvbkxhdW5jaChzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlv
bkxhdW5jaCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVu
UHJvY2Vzc0lkLCBzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9u
IElkZW50aWZ5QXBwbGljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVp
bnQgX0dldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dl
dEFwcGxpY2F0aW9uUHJvY2Vzc0lkIEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZy
b21FbnVtKEVWUkFwcGxpY2F0aW9uRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9u
c0Vycm9yTmFtZUZyb21FbnVtIEdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5
U3RyaW5nKHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5
LCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQg
dW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9y
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJv
cGVydHlTdHJpbmc7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFw
cGxpY2F0aW9uUHJvcGVydHlCb29sKHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJv
cGVydHkgZVByb3BlcnR5LCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJv
cGVydHlVaW50NjQoc3RyaW5nIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJv
cGVydHksIHJlZiBFVlJBcHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxp
Y2F0aW9uUHJvcGVydHlVaW50NjQgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGlj
YXRpb25BdXRvTGF1bmNoKHN0cmluZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xh
dW5jaChzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gg
R2V0QXBwbGljYXRpb25BdXRvTGF1bmNoOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShz
dHJpbmcgcGNoQXBwS2V5LCBzdHJpbmcgcGNoTWltZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRB
cHBsaWNhdGlvbkZvck1pbWVUeXBlIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRp
b25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIs
IHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZv
ck1pbWVUeXBlIEdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBl
cyhzdHJpbmcgcGNoQXBwS2V5LCBzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWlt
ZVR5cGVzQnVmZmVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBH
ZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcg
cGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5B
cHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBw
b3J0TWltZVR5cGUgR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVu
dHModWludCB1bkhhbmRsZSwgc3RyaW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50
czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBf
R2V0U3RhcnRpbmdBcHBsaWNhdGlvbihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBw
S2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5n
QXBwbGljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0
aW9uVHJhbnNpdGlvblN0YXRlIF9HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFu
c2l0aW9uU3RhdGUgR2V0VHJhbnNpdGlvblN0YXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hD
aGVjayhzdHJpbmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVu
Y2hDaGVjayBQZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjazsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVO
YW1lRnJvbUVudW0oRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlv
bnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0lzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc1F1aXRV
c2VyUHJvbXB0UmVxdWVzdGVkIElzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFs
UHJvY2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5n
IHBjaFdvcmtpbmdEaXJlY3RvcnkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVu
Y2hJbnRlcm5hbFByb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nl
c3NJZCBHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQ7CisKK30KKworW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKK3sKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENh
bGlicmF0aW9uU3RhdGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0
aW9uU3RhdGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlB
cmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLCByZWYgZmxvYXQgcFNpemVaKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQ
bGF5QXJlYVNpemUgR2V0UGxheUFyZWFTaXplOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBib29sIF9HZXRQbGF5QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRQbGF5QXJlYVJlY3QgR2V0UGxheUFyZWFSZWN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSB2b2lkIF9SZWxvYWRJbmZvKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZv
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEht
ZENvbG9yX3QgY29sb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEht
ZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBm
bENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVy
YUNvbG9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRCb3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0FyZUJvdW5kc1Zpc2libGUgQXJlQm91bmRzVmlzaWJsZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9Gb3JjZUJvdW5kc1Zpc2libGUgRm9yY2VCb3VuZHNWaXNpYmxlOworCit9CisKK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25l
U2V0dXAKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtp
bmdDb3B5KEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbW1pdFdv
cmtpbmdDb3B5IENvbW1pdFdvcmtpbmdDb3B5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9SZXZlcnRXb3JraW5nQ29weSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5
IFJldmVydFdvcmtpbmdDb3B5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29s
IF9HZXRXb3JraW5nUGxheUFyZWFTaXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6
ZVopOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlB
cmVhUmVjdChyZWYgSG1kUXVhZF90IHJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJl
Y3QgR2V0V29ya2luZ1BsYXlBcmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRf
dFtdIHBRdWFkc0J1ZmZlciwgcmVmIHVpbnQgcHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29y
a2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3Vu
ZHNJbmZvKFtJbiwgT3V0XSBIbWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1
YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xs
aXNpb25Cb3VuZHNJbmZvOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRf
dCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2lu
Z1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X0dldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJp
eDM0X3QgcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRp
bmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9TZXRXb3JraW5nUGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXpl
Wik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0V29ya2luZ1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXpl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVu
UXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29y
a2luZ0NvbGxpc2lvbkJvdW5kc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldFdvcmtpbmdTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRN
YXRyaXgzNF90IHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9T
ZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYg
SG1kTWF0cml4MzRfdCBwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtp
bmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX1JlbG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNv
bmZpZ0ZpbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1JlbG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UgR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5m
byhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91
bmRzVGFnc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExp
dmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCBy
ZWYgdWludCBwdW5UYWdDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJ
bmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgYm9vbCBfU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0g
SG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0
V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3Vu
ZHNJbmZvKFtJbiwgT3V0XSBIbWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1
YWRzQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNp
Y2FsQm91bmRzSW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhw
b3J0TGl2ZVRvQnVmZmVyKFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVp
bnQgcG5CdWZmZXJMZW5ndGgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZl
VG9CdWZmZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZy
b21CdWZmZXJUb1dvcmtpbmcoc3RyaW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9JbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7
CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0
cnVjdCBJVlJDb21wb3NpdG9yCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9TZXRUcmFja2luZ1NwYWNlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX1NldFRyYWNraW5nU3BhY2UgU2V0VHJhY2tpbmdTcGFjZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2Uo
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRUcmFja2luZ1NwYWNlIEdldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJ
biwgT3V0XSBUcmFja2VkRGV2aWNlUG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJl
bmRlclBvc2VBcnJheUNvdW50LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1l
UG9zZUFycmF5LCB1aW50IHVuR2FtZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9z
ZXMgV2FpdEdldFBvc2VzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21w
b3NpdG9yRXJyb3IgX0dldExhc3RQb3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtd
IHBSZW5kZXJQb3NlQXJyYXksIHVpbnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRd
IFRyYWNrZWREZXZpY2VQb3NlX3RbXSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJy
YXlDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0TGFzdFBvc2VzIEdldExhc3RQb3NlczsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRy
YWNrZWREZXZpY2VJbmRleCh1aW50IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9z
ZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2Up
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9y
VHJhY2tlZERldmljZUluZGV4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJD
b21wb3NpdG9yRXJyb3IgX1N1Ym1pdChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVy
ZSwgcmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRG
bGFncyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfU3VibWl0IFN1Ym1pdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdm9pZCBfQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhckxhc3RT
dWJtaXR0ZWRGcmFtZSBDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZTsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUG9zdFBy
ZXNlbnRIYW5kb2ZmIFBvc3RQcmVzZW50SGFuZG9mZjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfR2V0RnJhbWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcg
cFRpbWluZywgdWludCB1bkZyYW1lc0Fnbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJh
bWVUaW1pbmc7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1l
VGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldEZyYW1lVGltaW5ncyBHZXRGcmFtZVRpbWluZ3M7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBv
c2l0b3JfQ3VtdWxhdGl2ZVN0YXRzIHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0Q3VtdWxhdGl2ZVN0YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZs
b2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBi
QmFja2dyb3VuZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfRmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9v
bCBiQmFja2dyb3VuZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFk
ZUNvbG9yOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChm
bG9hdCBmU2Vjb25kcywgYm9vbCBiRmFkZUluKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxw
aGEoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRDdXJyZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5
Ym94T3ZlcnJpZGUoW0luLCBPdXRdIFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1
cmVDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfU2V0U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUo
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9DbGVhclNreWJveE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQo
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9Db21wb3NpdG9yQnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFj
aygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0NvbXBvc2l0b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfQ29tcG9zaXRvclF1aXQgQ29tcG9zaXRvclF1aXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0lzRnVsbHNjcmVlbigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1
bGxzY3JlZW47CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJl
bnRTY2VuZUZvY3VzUHJvY2VzcygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2Vz
cyBHZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVpbnQgX0dldExhc3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1l
UmVuZGVyZXIgR2V0TGFzdEZyYW1lUmVuZGVyZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX0NhblJlbmRlclNjZW5lKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2Fu
UmVuZGVyU2NlbmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dN
aXJyb3JXaW5kb3coKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3co
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9IaWRlTWlycm9yV2luZG93IEhpZGVNaXJyb3JXaW5kb3c7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0lzTWlycm9yV2luZG93VmlzaWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfQ29tcG9zaXRvckR1bXBJbWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNv
dXJjZXMoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9TaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFw
cFJlbmRlcldpdGhMb3dSZXNvdXJjZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0ZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXBy
b2plY3Rpb25PbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VS
ZWNvbm5lY3RQcm9jZXNzKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVj
b25uZWN0UHJvY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3Vz
cGVuZFJlbmRlcmluZyhib29sIGJTdXNwZW5kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1
c3BlbmRSZW5kZXJpbmc7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBv
c2l0b3JFcnJvciBfR2V0TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQz
RDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRNaXJyb3JUZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVy
ZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VN
aXJyb3JUZXh0dXJlRDNEMTEgUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJl
R0woRVZSRXllIGVFeWUsIHJlZiB1aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRl
eHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJl
R0w7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRH
TFRleHR1cmUodWludCBnbFRleHR1cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJl
Rm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvY2tHTFNo
YXJlZFRleHR1cmVGb3JBY2Nlc3MgTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9y
QWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hh
cmVkVGV4dHVyZUZvckFjY2VzcyBVbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5z
aW9uc1JlcXVpcmVkKFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5C
dWZmZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBH
ZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZDsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdWludCBfR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0
ciBwUGh5c2ljYWxEZXZpY2UsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVp
bnQgdW5CdWZmZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWly
ZWQgR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkOworCit9CisKK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQorewor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3Zlcmxh
eShzdHJpbmcgcGNoT3ZlcmxheUtleSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9GaW5kT3ZlcmxheSBGaW5kT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBz
dHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9DcmVhdGVPdmVybGF5IENyZWF0ZU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9EZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0
eU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92
ZXJsYXkgU2V0SGlnaFF1YWxpdHlPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB1bG9uZyBfR2V0SGlnaFF1YWxpdHlPdmVybGF5KCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxp
dHlPdmVybGF5IEdldEhpZ2hRdWFsaXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdWludCBfR2V0T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZS
T3ZlcmxheUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUs
IHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0T3ZlcmxheU5hbWUgR2V0T3ZlcmxheU5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIEludFB0ciBwdkJ1ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1
bldpZHRoLCByZWYgdWludCBwdW5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEg
R2V0T3ZlcmxheUltYWdlRGF0YTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50
UHRyIF9HZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZy
b21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3Ig
X1NldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElE
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9TZXRPdmVybGF5UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJp
bmdQaWQodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5n
UGlkIEdldE92ZXJsYXlSZW5kZXJpbmdQaWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxl
LCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Nl
dE92ZXJsYXlGbGFnIFNldE92ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldE92ZXJsYXlGbGFnIEdldE92ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldE92ZXJsYXlDb2xvciBTZXRPdmVybGF5Q29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgcmVmIGZsb2F0IHBmUmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBm
Qmx1ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlB
bHBoYSBTZXRPdmVybGF5QWxwaGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVm
IGZsb2F0IHBmQWxwaGEpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zl
cmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9TZXRPdmVybGF5VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0Owor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJs
YXlUZXhlbEFzcGVjdCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNw
ZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92
ZXJsYXlTb3J0T3JkZXIodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TZXRPdmVybGF5U29ydE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRP
cmRlcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheVNvcnRPcmRlciBHZXRPdmVybGF5U29ydE9yZGVyOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0
ZXJzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0
aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVy
cyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRl
cnM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIGZsb2F0IGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVy
cyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRP
dmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5j
ZVJhbmdlSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0
YW5jZUluTWV0ZXJzLCByZWYgZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3Vy
dmVEaXN0YW5jZVJhbmdlSW5NZXRlcnM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRP
dmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlU
ZXh0dXJlQ29sb3JTcGFjZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBw
ZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2Ug
R2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgcmVmIFZSVGV4dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91
bmRzX3QgcE92ZXJsYXlUZXh0dXJlQm91bmRzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJv
dW5kcyBHZXRPdmVybGF5VGV4dHVyZUJvdW5kczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3Zl
cmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tp
bmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1B
YnNvbHV0ZSBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJh
Y2tpbmdPcmlnaW4sIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3Zlcmxh
eVRyYW5zZm9ybSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJs
YXlUcmFuc2Zvcm1BYnNvbHV0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgdWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgz
NF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlUmVsYXRpdmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRy
aXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRP
dmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1U
cmFja2VkRGV2aWNlUmVsYXRpdmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
Uk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21w
b25lbnROYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCBTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNm
b3JtVHJhY2tlZERldmljZUNvbXBvbmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50
IHB1bkRldmljZUluZGV4LCBzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVu
dE5hbWVTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBv
bmVudCBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUo
dWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3Zlcmxh
eVZpc2libGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3Qg
Y29vcmRpbmF0ZXNJbk92ZXJsYXksIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JP
dmVybGF5Q29vcmRpbmF0ZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wg
X1BvbGxOZXh0T3ZlcmxheUV2ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRf
dCBwRXZlbnQsIHVpbnQgdW5jYlZSRXZlbnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50
IFBvbGxOZXh0T3ZlcmxheUV2ZW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIHJlZiBWUk92ZXJsYXlJbnB1dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRP
dmVybGF5SW5wdXRNZXRob2QgR2V0T3ZlcmxheUlucHV0TWV0aG9kOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0T3ZlcmxheUlucHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5
TW91c2VTY2FsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01v
dXNlU2NhbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNj
YWxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nl
dE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJf
dCBwdmVjTW91c2VTY2FsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3Zlcmxh
eU1vdXNlU2NhbGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1
dGVPdmVybGF5SW50ZXJzZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3Zlcmxh
eUludGVyc2VjdGlvblBhcmFtc190IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25S
ZXN1bHRzX3QgcFJlc3VsdHMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENv
bXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9IYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hh
bmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJP
dmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9Jc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0lzSG92ZXJUYXJnZXRPdmVybGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldEdhbWVwYWRGb2N1c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFk
Rm9jdXNPdmVybGF5KHVsb25nIHVsTmV3Rm9jdXNPdmVybGF5KTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFk
Rm9jdXNPdmVybGF5IFNldEdhbWVwYWRGb2N1c092ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5
RGlyZWN0aW9uIGVEaXJlY3Rpb24sIHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0T3ZlcmxheU5laWdoYm9yIFNldE92ZXJsYXlOZWlnaGJvcjsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJv
cihFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX01v
dmVHYW1lcGFkRm9jdXNUb05laWdoYm9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlU
ZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfU2V0T3ZlcmxheVRleHR1cmUgU2V0T3ZlcmxheVRleHR1cmU7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJP
dmVybGF5VGV4dHVyZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zlcmxh
eUVycm9yIF9TZXRPdmVybGF5UmF3KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVm
ZmVyLCB1aW50IHVuV2lkdGgsIHVpbnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0T3ZlcmxheVJhdyBTZXRPdmVybGF5UmF3OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUsIHN0cmluZyBwY2hGaWxlUGF0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNl
dE92ZXJsYXlGcm9tRmlsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3Zl
cmxheUVycm9yIF9HZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJ
bnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVm
IHVpbnQgcFdpZHRoLCByZWYgdWludCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCBy
ZWYgRVRleHR1cmVUeXBlIHBBUElUeXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJl
ZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRl
eHR1cmUgR2V0T3ZlcmxheVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk92ZXJsYXlFcnJvciBfUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLCBJbnRQdHIgcE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VO
YXRpdmVPdmVybGF5SGFuZGxlIFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJl
U2l6ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhl
aWdodCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVh
dGVEYXNoYm9hcmRPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3Zlcmxh
eUZyaWVuZGx5TmFtZSwgcmVmIHVsb25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFp
bEhhbmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRP
dmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2Fy
ZFZpc2libGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9Jc0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxl
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2Fy
ZE92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2Fy
ZE92ZXJsYXkgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nl
c3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRE
YXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nl
c3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0
RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1
aW50IHB1blByb2Nlc3NJZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2Vz
cyBHZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9TaG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9TaG93RGFzaGJvYXJkIFNob3dEYXNoYm9hcmQ7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHVpbnQgX0dldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJk
KGludCBlSW5wdXRNb2RlLCBpbnQgZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlv
biwgdWludCB1bkNoYXJNYXgsIHN0cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmlt
YWxNb2RlLCB1bG9uZyB1VXNlclZhbHVlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJv
YXJkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1No
b3dLZXlib2FyZEZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9k
ZSwgaW50IGVMaW5lSW5wdXRNb2RlLCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFy
TWF4LCBzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcg
dVVzZXJWYWx1ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfU2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRG
b3JPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXli
b2FyZFRleHQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldEtleWJvYXJkVGV4dCBHZXRLZXlib2FyZFRleHQ7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVLZXlib2FyZCgpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hpZGVLZXli
b2FyZCBIaWRlS2V5Ym9hcmQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQg
X1NldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJv
YXJkVHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtl
eWJvYXJkVHJhbnNmb3JtQWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgSG1kUmVjdDJfdCBhdm9pZFJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JP
dmVybGF5IFNldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNr
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVfdCBwTWFza1ByaW1pdGl2ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1
blByaW1pdGl2ZVNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92
ZXJsYXlJbnRlcnNlY3Rpb25NYXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJl
ZiB1aW50IHBGbGFncyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9u
UHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNl
IF9TaG93TWVzc2FnZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBz
dHJpbmcgcGNoQnV0dG9uMFRleHQsIHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1
dHRvbjJUZXh0LCBzdHJpbmcgcGNoQnV0dG9uM1RleHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3Zl
cmxheSBTaG93TWVzc2FnZU92ZXJsYXk7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2Rl
bF9Bc3luYyhzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9k
ZWwpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJ
bnRQdHIgcFJlbmRlck1vZGVsKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1v
ZGVsOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9y
IF9Mb2FkVGV4dHVyZV9Bc3luYyhpbnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfTG9hZFRleHR1cmVfQXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfRnJlZVRleHR1cmUgRnJlZVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50
IHRleHR1cmVJZCwgSW50UHRyIHBEM0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVy
ZTJEKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9Mb2FkVGV4dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5
bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3Ig
X0xvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4
dHVyZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJl
RDNEMTFfQXN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVU
ZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVE
M0QxMSBGcmVlVGV4dHVyZUQzRDExOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1
aW50IF9HZXRSZW5kZXJNb2RlbE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5U
ZXh0LlN0cmluZ0J1aWxkZXIgcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxO
YW1lTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50
KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJp
bmcgcGNoUmVuZGVyTW9kZWxOYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21w
b25lbnRDb3VudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29t
cG9uZW50TmFtZShzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5k
ZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNv
bXBvbmVudE5hbWVMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFt
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1
dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5h
bWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldENvbXBvbmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFz
azsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVu
ZGVyTW9kZWxOYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25l
bnROYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVs
TmFtZSwgdWludCB1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29t
cG9uZW50UmVuZGVyTW9kZWxOYW1lIEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5n
IHBjaFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRy
b2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVy
TW9kZV9TdGF0ZV90IHBTdGF0ZSwgcmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENv
bXBvbmVudFN0YXRlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXND
b21wb25lbnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5h
bWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX1JlbmRlck1vZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9u
ZW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJp
bmdCdWlsZGVyIHBjaFRodW1ibmFpbFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVW
UlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5h
aWxVUkwgR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkw7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHVpbnQgX0dldFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5k
ZXJNb2RlbE5hbWUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1
aW50IHVuT3JpZ2luYWxQYXRoTGVuLCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFs
UGF0aDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJN
b2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFJlbmRlck1vZGVsRXJyb3JOYW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVG
cm9tRW51bTsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitw
dWJsaWMgc3RydWN0IElWUk5vdGlmaWNhdGlvbnMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk5vdGlmaWNhdGlvbkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxP
dmVybGF5SGFuZGxlLCB1bG9uZyB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBl
LCBzdHJpbmcgcGNoVGV4dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmlj
YXRpb25CaXRtYXBfdCBwSW1hZ2UsIHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
Q3JlYXRlTm90aWZpY2F0aW9uIENyZWF0ZU5vdGlmaWNhdGlvbjsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgRVZSTm90aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1
aW50IG5vdGlmaWNhdGlvbklkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90
aWZpY2F0aW9uOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0K
K3B1YmxpYyBzdHJ1Y3QgSVZSU2V0dGluZ3MKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEludFB0ciBfR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9y
IGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5n
c0Vycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29s
IF9TeW5jKGJvb2wgYkZvcmNlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9TeW5jIFN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJv
b2woc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUs
IHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBj
aFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRp
bmdzRXJyb3IgcGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0SW50MzIgU2V0SW50MzI7CisKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBz
dHJpbmcgcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9y
IHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1NldEZsb2F0IFNldEZsb2F0OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBw
Y2hTZXR0aW5nc0tleSwgc3RyaW5nIHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVy
cm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9TZXRTdHJpbmcgU2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBib29sIF9HZXRCb29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0
dGluZ3NLZXksIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEJvb2wg
R2V0Qm9vbDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihz
dHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRJbnQzMiBHZXRJbnQzMjsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgZmxvYXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJp
bmcgcGNoU2V0dGluZ3NLZXksIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldEZsb2F0IEdldEZsb2F0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9HZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lz
dGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOworCisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBw
Y2hTZWN0aW9uLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVT
ZWN0aW9uIFJlbW92ZVNlY3Rpb247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZv
aWQgX1JlbW92ZUtleUluU2VjdGlvbihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRp
bmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJ
blNlY3Rpb24gUmVtb3ZlS2V5SW5TZWN0aW9uOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKK3sKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVl
bnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5
cGUsIHN0cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9SZXF1ZXN0U2NyZWVuc2hvdCBSZXF1ZXN0U2NyZWVuc2hvdDsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4s
IE91dF0gRVZSU2NyZWVuc2hvdFR5cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfSG9va1NjcmVlbnNob3QgSG9va1NjcmVlbnNob3Q7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlU
eXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3Ip
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0dldFNjcmVlbnNob3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5
VHlwZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hv
dFByb3BlcnR5RmlsZW5hbWUodWludCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJv
cGVydHlGaWxlbmFtZXMgZmlsZW5hbWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBj
aEZpbGVuYW1lLCB1aW50IGNjaEZpbGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJv
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFBy
b3BlcnR5RmlsZW5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVl
bnNob3RFcnJvciBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRs
ZSwgZmxvYXQgZmxQcm9ncmVzcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVw
ZGF0ZVNjcmVlbnNob3RQcm9ncmVzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSU2NyZWVuc2hvdEVycm9yIF9UYWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2Ny
ZWVuc2hvdEhhbmRsZSwgc3RyaW5nIHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmls
ZW5hbWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1Rha2VTdGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1
Ym1pdFNjcmVlbnNob3QodWludCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0
eXBlLCBzdHJpbmcgcGNoU291cmNlUHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJG
aWxlbmFtZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfU3VibWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OworCit9
CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3Qg
SVZSUmVzb3VyY2VzCit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2Fk
U2hhcmVkUmVzb3VyY2Uoc3RyaW5nIHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwg
dWludCB1bkJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRS
ZXNvdXJjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3Vy
Y2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBl
RGlyZWN0b3J5LCBzdHJpbmcgcGNoUGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0UmVzb3VyY2VGdWxsUGF0aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOworCit9CisKKworcHVi
bGljIGNsYXNzIENWUlN5c3RlbQoreworICAgICAgIElWUlN5c3RlbSBGblRhYmxlOworICAgICAg
IGludGVybmFsIENWUlN5c3RlbShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUgPSAoSVZSU3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVy
ZmFjZSwgdHlwZW9mKElWUlN5c3RlbSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBH
ZXRSZWNvbW1lbmRlZFJlbmRlclRhcmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBw
bkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAg
ICAgICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRS
ZW5kZXJUYXJnZXRTaXplKHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBIbWRNYXRyaXg0NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUs
ZmxvYXQgZk5lYXJaLGZsb2F0IGZGYXJaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0
cml4NDRfdCByZXN1bHQgPSBGblRhYmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclos
ZkZhclopOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBHZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQs
cmVmIGZsb2F0IHBmUmlnaHQscmVmIGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBmTGVmdCA9IDA7CisgICAgICAgICAgICAgIHBmUmlnaHQg
PSAwOworICAgICAgICAgICAgICBwZlRvcCA9IDA7CisgICAgICAgICAgICAgIHBmQm90dG9tID0g
MDsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVm
dCxyZWYgcGZSaWdodCxyZWYgcGZUb3AscmVmIHBmQm90dG9tKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQg
ZlYscmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3Rv
cnRpb24oZUV5ZSxmVSxmVixyZWYgcERpc3RvcnRpb25Db29yZGluYXRlcyk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90
IEdldEV5ZVRvSGVhZFRyYW5zZm9ybShFVlJFeWUgZUV5ZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0o
ZUV5ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBib29sIEdldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VM
YXN0VnN5bmMscmVmIHVsb25nIHB1bEZyYW1lQ291bnRlcikKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jID0gMDsKKyAgICAgICAgICAgICAgcHVsRnJhbWVD
b3VudGVyID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVT
aW5jZUxhc3RWc3luYyhyZWYgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291
bnRlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBpbnQgR2V0RDNEOUFkYXB0ZXJJbmRleCgpCisgICAgICAgeworICAgICAgICAgICAgICBp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXREM0Q5QWRhcHRlckluZGV4KCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRw
dXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBw
bkFkYXB0ZXJJbmRleCA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dElu
Zm8ocmVmIHBuQWRhcHRlckluZGV4KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNE
aXNwbGF5T25EZXNrdG9wKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Jc0Rpc3BsYXlPbkRlc2t0b3AoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9v
bCBiSXNWaXNpYmxlT25EZXNrdG9wKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLlNldERpc3BsYXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9p
ZCBHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IGVPcmlnaW4sZmxvYXQgZlByZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWRE
ZXZpY2VQb3NlX3QgW10gcFRyYWNrZWREZXZpY2VQb3NlQXJyYXkpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixm
UHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXks
KHVpbnQpIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5Lkxlbmd0aCk7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB2b2lkIFJlc2V0U2VhdGVkWmVyb1Bvc2UoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5SZXNldFNlYXRlZFplcm9Qb3NlKCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBIbWRNYXRyaXgzNF90IEdldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tp
bmdQb3NlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRTZWF0ZWRaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
SG1kTWF0cml4MzRfdCBHZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9z
ZSgpCisgICAgICAgeworICAgICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFi
bGUuR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
U29ydGVkVHJhY2tlZERldmljZUluZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRy
YWNrZWREZXZpY2VDbGFzcyx1aW50IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQg
dW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAg
dWludCByZXN1bHQgPSBGblRhYmxlLkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFz
cyhlVHJhY2tlZERldmljZUNsYXNzLHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBw
dW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmlj
ZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVEZXZpY2VBY3Rpdml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVs
KHVpbnQgdW5EZXZpY2VJZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0
eUxldmVsIHJlc3VsdCA9IEZuVGFibGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5E
ZXZpY2VJZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB2b2lkIEFwcGx5VHJhbnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRw
dXRQb3NlLHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1k
TWF0cml4MzRfdCBwVHJhbnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5B
cHBseVRyYW5zZm9ybShyZWYgcE91dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYg
cFRyYW5zZm9ybSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZp
Y2VJbmRleEZvckNvbnRyb2xsZXJSb2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VU
eXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRy
YWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVHJhY2tlZENv
bnRyb2xsZXJSb2xlIEdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQg
dW5EZXZpY2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxl
clJvbGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJ
bmRleCh1bkRldmljZUluZGV4KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNs
YXNzKHVpbnQgdW5EZXZpY2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2Vk
RGV2aWNlQ2xhc3MgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZp
Y2VJbmRleCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBib29sIElzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgp
CisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2Vk
RGV2aWNlQ29ubmVjdGVkKHVuRGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVBy
b3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVm
IEVUcmFja2VkUHJvcGVydHlFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBi
b29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmlj
ZUluZGV4LHByb3AscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUlu
ZGV4LHByb3AscmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWlu
dCB1bkRldmljZUluZGV4LEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIGludCByZXN1bHQg
PSBGblRhYmxlLkdldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJv
cCxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVsb25nIEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVu
RGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9w
LHJlZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0
eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0
cml4MzRfdCByZXN1bHQgPSBGblRhYmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5
KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmlj
ZVByb3BlcnR5KHVpbnQgdW5EZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3As
U3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZp
Y2VJbmRleCxwcm9wLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRQ
cm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFt
ZUZyb21FbnVtKGVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJp
bmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZl
bnQocmVmIFZSRXZlbnRfdCBwRXZlbnQsdWludCB1bmNiVlJFdmVudCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQs
dW5jYlZSRXZlbnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBQb2xsTmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gZU9yaWdpbixyZWYgVlJFdmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBU
cmFja2VkRGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdp
bixyZWYgcEV2ZW50LHVuY2JWUkV2ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdl
dEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJFdmVudFR5cGUgZVR5cGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVu
dW0oZVR5cGUpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2ko
cmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlk
ZGVuQXJlYU1lc2goRVZSRXllIGVFeWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgSGlkZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhp
ZGRlbkFyZWFNZXNoKGVFeWUsdHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorLy8gVGhpcyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFj
dCB0aGF0IFZSQ29udHJvbGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxl
ZCB3aXRoIHRoZSB3cm9uZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5D
b250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250
cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5FeHBsaWNpdCldCisgICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJT
dGF0ZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAg
ICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJv
bGxlclN0YXRlOworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAg
IHB1YmxpYyBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNr
ZWQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50
IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9s
bGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpCisgICAgICAgeworICAgICAgICAg
ICAgICBpZiAoKFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVt
LlBsYXRmb3JtSUQuTWFjT1NYKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0
ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVu
aXgpKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVy
U3RhdGVVbmlvbiB1OworICAgICAgICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9Q
YWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7Cisg
ICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOwor
ICAgICAgICAgICAgICAgICAgICAgdS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRD
b250cm9sbGVyU3RhdGU7CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQg
PSB1LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVm
IHN0YXRlX3BhY2tlZCwodWludClTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hh
bC5TaXplT2YodHlwZW9mKFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOworCisgICAgICAg
ICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsK
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNrZWRfcmVzdWx0OworICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3Rh
dGUodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9s
bGVyU3RhdGVTaXplKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisv
LyBUaGlzIGlzIGEgdGVycmlibGUgaGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJD
b250cm9sbGVyU3RhdGVfdCB3YXMKKy8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhl
IHdyb25nIHBhY2tpbmcgZm9yIExpbnV4IGFuZCBPU1guCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdV
bml2ZXJzZU9yaWdpbiBlT3JpZ2luLHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZS
Q29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xs
ZXJTdGF0ZVNpemUscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsK
KyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVj
dCBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAg
ICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENv
bnRyb2xsZXJTdGF0ZVdpdGhQb3NlIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKKyAgICAg
ICAgICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRy
b2xsZXJTdGF0ZVdpdGhQb3NlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tl
ZDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBv
c2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQ
b3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NW
ZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9y
bSA9PSBTeXN0ZW0uUGxhdGZvcm1JRC5Vbml4KSkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OworICAgICAgICAg
ICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3
IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAgICB1LnBH
ZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZCA9IG51bGw7CisgICAgICAgICAgICAgICAg
ICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxl
clN0YXRlV2l0aFBvc2U7CisgICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQg
PSB1LnBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxl
ckRldmljZUluZGV4LHJlZiBzdGF0ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJv
cFNlcnZpY2VzLk1hcnNoYWwuU2l6ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tl
ZCkpLHJlZiBwVHJhY2tlZERldmljZVBvc2UpOworCisgICAgICAgICAgICAgICAgICAgICBzdGF0
ZV9wYWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBwYWNrZWRfcmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2lu
LHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxl
clN0YXRlU2l6ZSxyZWYgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNl
KHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRp
b25NaWNyb1NlYykKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRp
Y1B1bHNlKHVuQ29udHJvbGxlckRldmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1Nl
Yyk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVu
dW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRy
IHJlc3VsdCA9IEZuVGFibGUuR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21F
bnVtKEVWUkNvbnRyb2xsZXJBeGlzVHlwZSBlQXhpc1R5cGUpCisgICAgICAgeworICAgICAgICAg
ICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJv
bUVudW0oZUF4aXNUeXBlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJp
bmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1
dEZvY3VzKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5D
YXB0dXJlSW5wdXRGb2N1cygpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VJbnB1dEZvY3VzKCk7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBib29sIElzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2Fw
dHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2
aWNlSW5kZXgsc3RyaW5nIHBjaFJlcXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQg
dW5SZXNwb25zZUJ1ZmZlclNpemUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3Vs
dCA9IEZuVGFibGUuRHJpdmVyRGVidWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxw
Y2hSZXNwb25zZUJ1ZmZlcix1blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBl
cmZvcm1GaXJtd2FyZVVwZGF0ZSh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJGaXJtd2FyZUVycm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJl
VXBkYXRlKHVuRGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9t
cHQoKTsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQor
eworICAgICAgIElWUkV4dGVuZGVkRGlzcGxheSBGblRhYmxlOworICAgICAgIGludGVybmFsIENW
UkV4dGVuZGVkRGlzcGxheShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUgPSAoSVZSRXh0ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUo
cEludGVyZmFjZSwgdHlwZW9mKElWUkV4dGVuZGVkRGlzcGxheSkpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBHZXRXaW5kb3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVm
IHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHBuWCA9IDA7CisgICAgICAgICAgICAgIHBuWSA9IDA7CisgICAgICAgICAgICAgIHBuV2lkdGgg
PSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUu
R2V0V2luZG93Qm91bmRzKHJlZiBwblgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQp
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJF
eWUgZUV5ZSxyZWYgdWludCBwblgscmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVp
bnQgcG5IZWlnaHQpCisgICAgICAgeworICAgICAgICAgICAgICBwblggPSAwOworICAgICAgICAg
ICAgICBwblkgPSAwOworICAgICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAg
cG5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0
KGVFeWUscmVmIHBuWCxyZWYgcG5ZLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVy
SW5kZXgscmVmIGludCBwbkFkYXB0ZXJPdXRwdXRJbmRleCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBuQWRhcHRlckluZGV4ID0gMDsKKyAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5k
ZXggPSAwOworICAgICAgICAgICAgICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFk
YXB0ZXJJbmRleCxyZWYgcG5BZGFwdGVyT3V0cHV0SW5kZXgpOworICAgICAgIH0KK30KKworCitw
dWJsaWMgY2xhc3MgQ1ZSVHJhY2tlZENhbWVyYQoreworICAgICAgIElWUlRyYWNrZWRDYW1lcmEg
Rm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJm
YWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJh
KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1l
cmEpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVG
cm9tRW51bShFVlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJv
bUVudW0oZUNhbWVyYUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9T
dHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgSGFzQ2FtZXJhKHVpbnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEp
CisgICAgICAgeworICAgICAgICAgICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7CisgICAgICAgICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2
aWNlSW5kZXgscmVmIHBIYXNDYW1lcmEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZy
YW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFt
ZVR5cGUscmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1l
QnVmZmVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAg
ICAgICAgICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0g
MDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0Q2FtZXJhRnJhbWVTaXplKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJl
ZiBwbkhlaWdodCxyZWYgcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdl
dENhbWVyYUludHJpbnNpY3ModWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLHJlZiBIbWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0
b3IyX3QgcENlbnRlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVG
cmFtZVR5cGUscmVmIHBGb2NhbExlbmd0aCxyZWYgcENlbnRlcik7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJy
b3IgR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1h
dHJpeDQ0X3QgcFByb2plY3Rpb24pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJ
bmRleCxlRnJhbWVUeXBlLGZsWk5lYXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRl
eCxyZWYgdWxvbmcgcEhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBIYW5kbGUgPSAw
OworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5B
Y3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJU
cmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJh
Y2tlZENhbWVyYSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
ciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRD
YW1lcmEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxv
bmcgaFRyYWNrZWRDYW1lcmEsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLElu
dFB0ciBwRnJhbWVCdWZmZXIsdWludCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0
cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxw
RnJhbWVCdWZmZXIsbkZyYW1lQnVmZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRl
clNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWlu
dCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50
IHBuSGVpZ2h0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAg
ICAgICAgIHBuSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgs
ZUZyYW1lVHlwZSxyZWYgcFRleHR1cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
UlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJh
Y2tlZENhbWVyYSxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBE
M0QxMURldmljZU9yUmVzb3VyY2UscmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3
LHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZy
YW1lSGVhZGVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2Vk
Q2FtZXJhLGVGcmFtZVR5cGUscEQzRDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRl
clJlc291cmNlVmlldyxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tl
ZENhbWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJh
LEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJl
SWQscmVmIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBu
RnJhbWVIZWFkZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0g
MDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0VmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGds
VGV4dHVyZUlkLHJlZiBwRnJhbWVIZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJh
LHVpbnQgZ2xUZXh0dXJlSWQpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRy
YWNrZWRDYW1lcmEsZ2xUZXh0dXJlSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCit7CisgICAgICAg
SVZSQXBwbGljYXRpb25zIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25z
KEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJ
VlJBcHBsaWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2Yo
SVZSQXBwbGljYXRpb25zKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlv
bkVycm9yIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZl
c3RGdWxsUGF0aCxib29sIGJUZW1wb3JhcnkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChw
Y2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBhdGgsYlRlbXBvcmFyeSk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVy
cm9yIFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZl
c3RGdWxsUGF0aCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9u
TWFuaWZlc3RGdWxsUGF0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBib29sIElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFw
cEtleSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Fw
cGxpY2F0aW9uSW5zdGFsbGVkKHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0
aW9uQ291bnQoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVp
bnQgdW5BcHBsaWNhdGlvbkluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5
QnVmZmVyLHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBF
VlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUlu
ZGV4KHVuQXBwbGljYXRpb25JbmRleCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4p
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZSQXBwbGljYXRpb25FcnJvciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Q
cm9jZXNzSWQsc3RyaW5nIHBjaEFwcEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVm
ZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRp
b24oc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
QXBwbGljYXRpb25FcnJvciBMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1w
bGF0ZUFwcEtleSxzdHJpbmcgcGNoTmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlz
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBG
blRhYmxlLkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3
QXBwS2V5LHBLZXlzLCh1aW50KSBwS2V5cy5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVu
Y2hBcHBsaWNhdGlvbkZyb21NaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFy
Z3MpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9
IEZuVGFibGUuTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJn
cyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFw
cEtleSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5MYXVuY2hEYXNoYm9hcmRPdmVybGF5KHBjaEFwcEtleSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFw
cGxpY2F0aW9uTGF1bmNoKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUkFwcGxpY2F0aW9uRXJyb3IgSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lk
LHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yIHJlc3VsdCA9IEZuVGFibGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxw
Y2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdWludCBHZXRBcHBsaWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0
aW9uUHJvY2Vzc0lkKHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJv
bUVudW0oRVZSQXBwbGljYXRpb25FcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAg
IEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVt
KGVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJl
c3VsdCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVy
dHlTdHJpbmcoc3RyaW5nIHBjaEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0
eSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1
blByb3BlcnR5VmFsdWVCdWZmZXJMZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNh
dGlvblByb3BlcnR5U3RyaW5nKHBjaEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1
ZmZlcix1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4scmVmIHBlRXJyb3IpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNh
dGlvblByb3BlcnR5Qm9vbChzdHJpbmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkg
ZVByb3BlcnR5LHJlZiBFVlJBcHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJv
b2wocGNoQXBwS2V5LGVQcm9wZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblBy
b3BlcnR5VWludDY0KHN0cmluZyBwY2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJv
cGVydHkscmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHVsb25nIHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2
NChwY2hBcHBLZXksZVByb3BlcnR5LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0
QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wg
R2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNo
KHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHN0cmluZyBwY2hBcHBLZXksc3RyaW5nIHBjaE1pbWVUeXBlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldERl
ZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNo
QXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUocGNoTWltZVR5cGUscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0
QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNo
TWltZVR5cGVzQnVmZmVyLHVpbnQgdW5NaW1lVHlwZXNCdWZmZXIpCisgICAgICAgeworICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1l
VHlwZXMocGNoQXBwS2V5LHBjaE1pbWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50
IEdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0
cmluZyBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9y
dEJ1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNU
aGF0U3VwcG9ydEJ1ZmZlcix1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxp
Y2F0aW9uTGF1bmNoQXJndW1lbnRzKHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1
bkFyZ3MpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0
QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBw
bGljYXRpb25FcnJvciBHZXRTdGFydGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZm
ZXIsdWludCB1bkFwcEtleUJ1ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFw
cGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBj
aEFwcEtleUJ1ZmZlcix1bkFwcEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25T
dGF0ZSBHZXRUcmFuc2l0aW9uU3RhdGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3Rh
dGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2so
c3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9u
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhw
Y2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgc3RyaW5nIEdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51
bShFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEludFB0ciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25T
dGF0ZU5hbWVGcm9tRW51bShzdGF0ZSk7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0
clRvU3RyaW5nQW5zaShyZXN1bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVy
cm9yIExhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNo
QXJndW1lbnRzLHN0cmluZyBwY2hXb3JraW5nRGlyZWN0b3J5KQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFs
UHJvY2VzcyhwY2hCaW5hcnlQYXRoLHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVp
bnQgR2V0Q3VycmVudFNjZW5lUHJvY2Vzc0lkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNo
YXBlcm9uZQoreworICAgICAgIElWUkNoYXBlcm9uZSBGblRhYmxlOworICAgICAgIGludGVybmFs
IENWUkNoYXBlcm9uZShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUgPSAoSVZSQ2hhcGVyb25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFj
ZSwgdHlwZW9mKElWUkNoYXBlcm9uZSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgQ2hhcGVy
b25lQ2FsaWJyYXRpb25TdGF0ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRD
YWxpYnJhdGlvblN0YXRlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJl
ZiBmbG9hdCBwU2l6ZVopCisgICAgICAgeworICAgICAgICAgICAgICBwU2l6ZVggPSAwOworICAg
ICAgICAgICAgICBwU2l6ZVogPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuR2V0UGxheUFyZWFTaXplKHJlZiBwU2l6ZVgscmVmIHBTaXplWik7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVh
UmVjdChyZWYgSG1kUXVhZF90IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFSZWN0KHJlZiByZWN0KTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygp
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHZvaWQgU2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91
dHB1dENvbG9yQXJyYXksaW50IG5OdW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3Vu
ZHNGYWRlRGlzdGFuY2UscmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9y
QXJyYXksbk51bU91dHB1dENvbG9ycyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYg
cE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQXJlQm91
bmRzVmlzaWJsZSgpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuQXJlQm91bmRzVmlzaWJsZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2Up
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9y
Y2UpOworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKK3sK
KyAgICAgICBJVlJDaGFwZXJvbmVTZXR1cCBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNo
YXBlcm9uZVNldHVwKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZSA9IChJVlJDaGFwZXJvbmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRl
cmZhY2UsIHR5cGVvZihJVlJDaGFwZXJvbmVTZXR1cCkpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgYm9vbCBDb21taXRXb3JraW5nQ29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdv
cmtpbmdDb3B5KGNvbmZpZ0ZpbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLlJldmVydFdvcmtpbmdDb3B5KCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldFdvcmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxy
ZWYgZmxvYXQgcFNpemVaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsKKyAg
ICAgICAgICAgICAgcFNpemVaID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLkdldFdvcmtpbmdQbGF5QXJlYVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0
V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90IHJlY3QpCisgICAgICAgeworICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYg
cmVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBib29sIEdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10g
cFF1YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50
ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xs
aXNpb25Cb3VuZHNJbmZvKG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBw
UXVhZHNCdWZmZXI9IG5ldyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAg
IHJlc3VsdCA9IEZuVGFibGUuR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVm
ZmVyLHJlZiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0
IEhtZFF1YWRfdCBbXSBwUXVhZHNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50
IHB1blF1YWRzQ291bnQgPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7CisgICAg
ICAgICAgICAgIHBRdWFkc0J1ZmZlcj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKKyAg
ICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhw
UXVhZHNCdWZmZXIscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmda
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1pl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZShyZWYgcG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtp
bmdQbGF5QXJlYVNpemUoZmxvYXQgc2l6ZVgsZmxvYXQgc2l6ZVopCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLlNldFdvcmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhI
bWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJs
ZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFk
c0J1ZmZlci5MZW5ndGgpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5n
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZu
VGFibGUuU2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1k
TWF0cml4MzRfdCBwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKHJlZiBwTWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNv
bmZpZ0ZpbGUgY29uZmlnRmlsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVs
b2FkRnJvbURpc2soY29uZmlnRmlsZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdl
dExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBt
YXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKHJlZiBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdv
cmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0lu
Zm8ocFRhZ3NCdWZmZXIsKHVpbnQpIHBUYWdzQnVmZmVyLkxlbmd0aCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBb
XSBwVGFnc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQg
PSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lv
bkJvdW5kc1RhZ3NJbmZvKG51bGwscmVmIHB1blRhZ0NvdW50KTsKKyAgICAgICAgICAgICAgcFRh
Z3NCdWZmZXI9IG5ldyBieXRlW3B1blRhZ0NvdW50XTsKKyAgICAgICAgICAgICAgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1
blRhZ0NvdW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgU2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10g
cFF1YWRzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLlNldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVh
ZHNCdWZmZXIuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIGJvb2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVh
ZF90IFtdIHBRdWFkc0J1ZmZlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVh
ZHNDb3VudCA9IDA7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZl
UGh5c2ljYWxCb3VuZHNJbmZvKG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAg
ICBwUXVhZHNCdWZmZXI9IG5ldyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAg
ICAgIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZm
ZXIscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQu
U3RyaW5nQnVpbGRlciBwQnVmZmVyLHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcG5CdWZmZXJMZW5ndGggPSAwOworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuRXhwb3J0TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVu
Z3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIGJvb2wgSW1wb3J0RnJvbUJ1ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5J
bXBvcnRGbGFncykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJs
ZS5JbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENW
UkNvbXBvc2l0b3IKK3sKKyAgICAgICBJVlJDb21wb3NpdG9yIEZuVGFibGU7CisgICAgICAgaW50
ZXJuYWwgQ1ZSQ29tcG9zaXRvcihJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUgPSAoSVZSQ29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJ
bnRlcmZhY2UsIHR5cGVvZihJVlJDb21wb3NpdG9yKSk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIFNldFRyYWNraW5nU3BhY2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2lu
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRy
YWNraW5nU3BhY2UoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4gcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFja2luZ1NwYWNlKCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJy
b3IgV2FpdEdldFBvc2VzKFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxU
cmFja2VkRGV2aWNlUG9zZV90IFtdIHBHYW1lUG9zZUFycmF5KQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBS
ZW5kZXJQb3NlQXJyYXksKHVpbnQpIHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFy
cmF5LCh1aW50KSBwR2FtZVBvc2VBcnJheS5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExh
c3RQb3NlcyhUcmFja2VkRGV2aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERl
dmljZVBvc2VfdCBbXSBwR2FtZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVW
UkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9z
ZUFycmF5LCh1aW50KSBwUmVuZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWlu
dCkgcEdhbWVQb3NlQXJyYXkuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZv
clRyYWNrZWREZXZpY2VJbmRleCh1aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQ
b3NlX3QgcE91dHB1dFBvc2UscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3Nl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZu
VGFibGUuR2V0TGFzdFBvc2VGb3JUcmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYg
cE91dHB1dFBvc2UscmVmIHBPdXRwdXRHYW1lUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0
KEVWUkV5ZSBlRXllLHJlZiBUZXh0dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190
IHBCb3VuZHMsRVZSU3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVm
IHBUZXh0dXJlLHJlZiBwQm91bmRzLG5TdWJtaXRGbGFncyk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRl
ZEZyYW1lKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0
dGVkRnJhbWUoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5k
b2ZmKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2Zm
KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21w
b3NpdG9yX0ZyYW1lVGltaW5nIHBUaW1pbmcsdWludCB1bkZyYW1lc0FnbykKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRp
bWluZyx1bkZyYW1lc0Fnbyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFt
ZVRpbWluZyBwVGltaW5nLHVpbnQgbkZyYW1lcykKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBm
bG9hdCBHZXRGcmFtZVRpbWVSZW1haW5pbmcoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxv
YXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxh
dGl2ZVN0YXRzKHJlZiBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3Rh
dHNTaXplSW5CeXRlcykKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxh
dGl2ZVN0YXRzKHJlZiBwU3RhdHMsblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBGYWRlVG9Db2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0
IGZHcmVlbixmbG9hdCBmQmx1ZSxmbG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3Jl
ZW4sZkJsdWUsZkFscGhhLGJCYWNrZ3JvdW5kKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEht
ZENvbG9yX3QgR2V0Q3VycmVudEZhZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgSG1kQ29sb3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRl
Q29sb3IoYkJhY2tncm91bmQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdm9pZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRl
SW4pCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJG
YWRlSW4pOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBo
YSgpCisgICAgICAgeworICAgICAgICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1
cnJlbnRHcmlkQWxwaGEoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0
dXJlX3QgW10gcFRleHR1cmVzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRv
ckVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50
KSBwVGV4dHVyZXMuTGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgQ29tcG9zaXRvckJyaW5nVG9Gcm9udCgpCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgQ29tcG9zaXRvckdvVG9CYWNrKCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuQ29tcG9zaXRvckdvVG9CYWNrKCk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIENvbXBvc2l0b3JRdWl0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFi
bGUuQ29tcG9zaXRvclF1aXQoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNGdWxs
c2NyZWVuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5J
c0Z1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1
c1Byb2Nlc3MoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHVpbnQgR2V0TGFzdEZyYW1lUmVuZGVyZXIoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENh
blJlbmRlclNjZW5lKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5DYW5SZW5kZXJTY2VuZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTaG93TWlycm9yV2luZG93KCkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUuU2hvd01pcnJvcldpbmRvdygpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBIaWRlTWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuSGlkZU1pcnJvcldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9v
bCBJc01pcnJvcldpbmRvd1Zpc2libGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLklzTWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVt
cEltYWdlcygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1w
SW1hZ2VzKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldp
dGhMb3dSZXNvdXJjZXMoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLlNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxl
YXZlZFJlcHJvamVjdGlvbk9uKGJvb2wgYk92ZXJyaWRlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5Gb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVu
ZCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9y
VGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJl
ZiBJbnRQdHIgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldykKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUkNvbXBvc2l0b3JFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVE
M0QxMShlRXllLHBEM0QxMURldmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJj
ZVZpZXcpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJS
ZXNvdXJjZVZpZXcpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJy
b3JUZXh0dXJlRDNEMTEocEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVF
eWUscmVmIHVpbnQgcGdsVGV4dHVyZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAgICAg
RVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVF
eWUscmVmIHBnbFRleHR1cmVJZCxwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNo
YXJlZEdMVGV4dHVyZSh1aW50IGdsVGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5k
bGUpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFz
ZVNoYXJlZEdMVGV4dHVyZShnbFRleHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBM
b2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JB
Y2Nlc3MoZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVI
YW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4
dHVyZUZvckFjY2VzcyhnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdWludCBHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5z
aW9uc1JlcXVpcmVkKHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4
dGVuc2lvbnNSZXF1aXJlZChJbnRQdHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmlu
Z0J1aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUpCisgICAgICAgeworICAgICAgICAg
ICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVp
cmVkKHBQaHlzaWNhbERldmljZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZST3Zlcmxh
eQoreworICAgICAgIElWUk92ZXJsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJPdmVy
bGF5KEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9
IChJVlJPdmVybGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElW
Uk92ZXJsYXkpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5k
T3ZlcmxheShzdHJpbmcgcGNoT3ZlcmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCisg
ICAgICAgeworICAgICAgICAgICAgICBwT3ZlcmxheUhhbmRsZSA9IDA7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlL
ZXkscmVmIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmlu
ZyBwY2hPdmVybGF5S2V5LHN0cmluZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBw
T3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0g
MDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRl
T3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5
SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5EZXN0cm95T3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhp
Z2hRdWFsaXR5T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92
ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCisgICAg
ICAgeworICAgICAgICAgICAgICB1bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5
T3ZlcmxheSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdWludCBHZXRPdmVybGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVy
bGF5RXJyb3IgcEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBG
blRhYmxlLkdldE92ZXJsYXlLZXkodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6
ZSxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVW
Uk92ZXJsYXlFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3Vs
dCA9IEZuVGFibGUuR2V0T3ZlcmxheU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVm
ZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxJbnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVm
IHVpbnQgcHVuV2lkdGgscmVmIHVpbnQgcHVuSGVpZ2h0KQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcHVuV2lkdGggPSAwOworICAgICAgICAgICAgICBwdW5IZWlnaHQgPSAwOworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRh
KHVsT3ZlcmxheUhhbmRsZSxwdkJ1ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBw
dW5IZWlnaHQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgc3RyaW5nIEdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJy
b3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0oZXJyb3IpOworICAgICAgICAgICAgICByZXR1
cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSx1aW50IHVuUElEKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5k
bGUsdW5QSUQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdWludCBHZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5UmVuZGVyaW5nUGlkKHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxi
b29sIGJFbmFibGVkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5Rmxh
ZyxiRW5hYmxlZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5
SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCisg
ICAgICAgeworICAgICAgICAgICAgICBwYkVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5
SGFuZGxlLGVPdmVybGF5RmxhZyxyZWYgcGJFbmFibGVkKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVy
bGF5Q29sb3IodWxvbmcgdWxPdmVybGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZs
b2F0IGZCbHVlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuU2V0T3ZlcmxheUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixm
Qmx1ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgZmxvYXQgcGZSZWQscmVmIGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBmUmVkID0gMDsKKyAgICAgICAgICAgICAgcGZHcmVlbiA9
IDA7CisgICAgICAgICAgICAgIHBmQmx1ZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVm
IHBmUmVkLHJlZiBwZkdyZWVuLHJlZiBwZkJsdWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlB
bHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZkFscGhhKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhh
KHVsT3ZlcmxheUhhbmRsZSxmQWxwaGEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmQWxwaGEpCisgICAgICAgeworICAgICAg
ICAgICAgICBwZkFscGhhID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuR2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxmbG9hdCBmVGV4ZWxBc3BlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFu
ZGxlLGZUZXhlbEFzcGVjdCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIHBmVGV4ZWxBc3BlY3QgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFu
ZGxlLHJlZiBwZlRleGVsQXNwZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVy
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuU29ydE9yZGVyKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRP
cmRlcih1bE92ZXJsYXlIYW5kbGUsdW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJs
YXlTb3J0T3JkZXIodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikK
KyAgICAgICB7CisgICAgICAgICAgICAgIHB1blNvcnRPcmRlciA9IDA7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxP
dmVybGF5SGFuZGxlLHJlZiBwdW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlX
aWR0aEluTWV0ZXJzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LlNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFu
ZGxlLHJlZiBmbG9hdCBwZldpZHRoSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBw
ZldpZHRoSW5NZXRlcnMgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRPdmVybGF5V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBm
V2lkdGhJbk1ldGVycyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNl
UmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5N
ZXRlcnMsZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAg
ICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzKHVsT3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxm
TWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURp
c3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWlu
RGlzdGFuY2VJbk1ldGVycyxyZWYgZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcGZNaW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKKyAgICAgICAgICAg
ICAgcGZNYXhEaXN0YW5jZUluTWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1l
dGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhE
aXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3Bh
Y2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LlNldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xv
clNwYWNlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcg
dWxPdmVybGF5SGFuZGxlLHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0
T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29s
b3JTcGFjZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxP
dmVybGF5SGFuZGxlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VGV4dHVyZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4
dHVyZUJvdW5kcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcg
dWxPdmVybGF5SGFuZGxlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3Vu
ZHMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5
VGV4dHVyZUJvdW5kcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxv
bmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3Jt
VHlwZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFu
c2Zvcm1UeXBlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxv
bmcgdWxPdmVybGF5SGFuZGxlLEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdp
bixyZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0p
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09y
aWdpbixyZWYgcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBHZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgz
NF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFu
c2Zvcm1BYnNvbHV0ZSh1bE92ZXJsYXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBt
YXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
dWludCB1blRyYWNrZWREZXZpY2UscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VU
b092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0
aXZlKHVsT3ZlcmxheUhhbmRsZSx1blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNl
VG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFj
a2VkRGV2aWNlLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJh
bnNmb3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlU
cmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFj
a2VkRGV2aWNlLHJlZiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcg
dWxPdmVybGF5SGFuZGxlLHVpbnQgdW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFt
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhh
bmRsZSx1bkRldmljZUluZGV4LHBjaENvbXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92
ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgdWludCBwdW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVu
Q29tcG9uZW50TmFtZVNpemUpCisgICAgICAgeworICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRl
eCA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxy
ZWYgcHVuRGV2aWNlSW5kZXgscGNoQ29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBTaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAg
eworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3Zl
cmxheSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVs
T3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkhpZGVPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzT3Zlcmxh
eVZpc2libGUodWxvbmcgdWxPdmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Ym9vbCByZXN1bHQgPSBGblRhYmxlLklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxP
dmVybGF5SGFuZGxlLEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRW
ZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5z
Zm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldFRyYW5zZm9ybUZvck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUs
ZVRyYWNraW5nT3JpZ2luLGNvb3JkaW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJv
b2wgUG9sbE5leHRPdmVybGF5RXZlbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50
X3QgcEV2ZW50LHVpbnQgdW5jYlZSRXZlbnQpCisgICAgICAgeworICAgICAgICAgICAgICBib29s
IHJlc3VsdCA9IEZuVGFibGUuUG9sbE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJl
ZiBwRXZlbnQsdW5jYlZSRXZlbnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhv
ZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRN
ZXRob2QpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRPdmVybGF5SW5wdXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0
TWV0aG9kKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJ
bnB1dE1ldGhvZCh1bE92ZXJsYXlIYW5kbGUsZUlucHV0TWV0aG9kKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBH
ZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJf
dCBwdmVjTW91c2VTY2FsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxy
ZWYgcHZlY01vdXNlU2NhbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVs
b25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0
T3ZlcmxheU1vdXNlU2NhbGUodWxPdmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29s
IENvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJP
dmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0
aW9uUmVzdWx0c190IHBSZXN1bHRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1
bHQgPSBGblRhYmxlLkNvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxy
ZWYgcFBhcmFtcyxyZWYgcFJlc3VsdHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVy
YWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZp
Y2VJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5I
YW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUs
dW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuSXNIb3ZlclRhcmdldE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdldEdhbWVw
YWRGb2N1c092ZXJsYXkoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0g
Rm5UYWJsZS5HZXRHYW1lcGFkRm9jdXNPdmVybGF5KCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBh
ZEZvY3VzT3ZlcmxheSh1bG9uZyB1bE5ld0ZvY3VzT3ZlcmxheSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092
ZXJsYXkodWxOZXdGb2N1c092ZXJsYXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJv
cihFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
U2V0T3ZlcmxheU5laWdoYm9yKGVEaXJlY3Rpb24sdWxGcm9tLHVsVG8pOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24s
dWxvbmcgdWxGcm9tKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuTW92ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZy
b20pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgVGV4dHVyZV90IHBUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFu
ZGxlLHJlZiBwVGV4dHVyZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5DbGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRy
IHB2QnVmZmVyLHVpbnQgdW5XaWR0aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92
ZXJsYXlSYXcodWxPdmVybGF5SGFuZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0
aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxzdHJpbmcgcGNoRmlsZVBhdGgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxl
LHBjaEZpbGVQYXRoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUscmVmIEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2
ZVRleHR1cmVSZWYscmVmIHVpbnQgcFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5h
dGl2ZUZvcm1hdCxyZWYgRVRleHR1cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29s
b3JTcGFjZSxyZWYgVlJUZXh0dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCisgICAgICAgewor
ICAgICAgICAgICAgICBwV2lkdGggPSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAg
ICAgICAgICAgICAgcE5hdGl2ZUZvcm1hdCA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxy
ZWYgcE5hdGl2ZVRleHR1cmVIYW5kbGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYg
cEhlaWdodCxyZWYgcE5hdGl2ZUZvcm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJl
ZiBwVGV4dHVyZUJvdW5kcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5k
bGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJl
bGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhh
bmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSxyZWYgdWludCBwV2lkdGgscmVmIHVpbnQgcEhlaWdodCkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHBXaWR0aCA9IDA7CisgICAgICAgICAgICAgIHBIZWlnaHQgPSAwOworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVy
ZVNpemUodWxPdmVybGF5SGFuZGxlLHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVy
cm9yIENyZWF0ZURhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBj
aE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1
bWJuYWlsSGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOwor
ICAgICAgICAgICAgICBwVGh1bWJuYWlsSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZST3Zl
cmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVy
bGF5S2V5LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJu
YWlsSGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgSXNEYXNoYm9hcmRWaXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNBY3Rp
dmVEYXNoYm9hcmRPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXko
dWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJv
YXJkT3ZlcmxheVNjZW5lUHJvY2Vzcyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3Zl
cmxheUVycm9yIEdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5
SGFuZGxlLHJlZiB1aW50IHB1blByb2Nlc3NJZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1
blByb2Nlc3NJZCA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBG
blRhYmxlLkdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJl
ZiBwdW5Qcm9jZXNzSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgdm9pZCBTaG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJs
YXlUb1Nob3cpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJv
YXJkRGV2aWNlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJk
KGludCBlSW5wdXRNb2RlLGludCBlTGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24s
dWludCB1bkNoYXJNYXgsc3RyaW5nIHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9k
ZSx1bG9uZyB1VXNlclZhbHVlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuU2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1v
ZGUscGNoRGVzY3JpcHRpb24sdW5DaGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1v
ZGUsdVVzZXJWYWx1ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsaW50IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmlu
ZyBwY2hEZXNjcmlwdGlvbix1aW50IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJv
b2wgYlVzZU1pbmltYWxNb2RlLHVsb25nIHVVc2VyVmFsdWUpCisgICAgICAgeworICAgICAgICAg
ICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVy
bGF5KHVsT3ZlcmxheUhhbmRsZSxlSW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0
aW9uLHVuQ2hhck1heCxwY2hFeGlzdGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dWludCBHZXRLZXlib2FyZFRleHQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVp
bnQgY2NoVGV4dCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRLZXlib2FyZFRleHQocGNoVGV4dCxjY2hUZXh0KTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuSGlkZUtleWJvYXJkKCk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB2b2lkIFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5n
VW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFj
a2luZ09yaWdpblRvS2V5Ym9hcmRUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBG
blRhYmxlLlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBw
bWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgU2V0S2V5Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5
SGFuZGxlLEhtZFJlY3QyX3QgYXZvaWRSZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5U
YWJsZS5TZXRLZXlib2FyZFBvc2l0aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRS
ZWN0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
SW50ZXJzZWN0aW9uTWFzayh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmlt
aXRpdmVzLHVpbnQgdW5QcmltaXRpdmVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZS
T3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2so
dWxPdmVybGF5SGFuZGxlLHJlZiBwTWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1
blByaW1pdGl2ZVNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92
ZXJsYXlIYW5kbGUscmVmIHVpbnQgcEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcEZs
YWdzID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0T3ZlcmxheUZsYWdzKHVsT3ZlcmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZSBTaG93TWVzc2FnZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENh
cHRpb24sc3RyaW5nIHBjaEJ1dHRvbjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcg
cGNoQnV0dG9uMlRleHQsc3RyaW5nIHBjaEJ1dHRvbjNUZXh0KQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3Nh
Z2VPdmVybGF5KHBjaFRleHQscGNoQ2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4
dCxwY2hCdXR0b24yVGV4dCxwY2hCdXR0b24zVGV4dCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKK3sK
KyAgICAgICBJVlJSZW5kZXJNb2RlbHMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZW5k
ZXJNb2RlbHMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlID0gKElWUlJlbmRlck1vZGVscylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2Us
IHR5cGVvZihJVlJSZW5kZXJNb2RlbHMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJl
bmRlck1vZGVsRXJyb3IgTG9hZFJlbmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2Rl
bE5hbWUscmVmIEludFB0ciBwcFJlbmRlck1vZGVsKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
RVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3lu
YyhwY2hSZW5kZXJNb2RlbE5hbWUscmVmIHBwUmVuZGVyTW9kZWwpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9k
ZWwoSW50UHRyIHBSZW5kZXJNb2RlbCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUu
RnJlZVJlbmRlck1vZGVsKHBSZW5kZXJNb2RlbCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJSZW5kZXJNb2RlbEVycm9yIExvYWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIElu
dFB0ciBwcFRleHR1cmUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVy
cm9yIHJlc3VsdCA9IEZuVGFibGUuTG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRl
eHR1cmUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdm9pZCBGcmVlVGV4dHVyZShJbnRQdHIgcFRleHR1cmUpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkZyZWVUZXh0dXJlKHBUZXh0dXJlKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4
dHVyZUlkLEludFB0ciBwRDNEMTFEZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRh
YmxlLkxvYWRUZXh0dXJlRDNEMTFfQXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBE
M0QxMVRleHR1cmUyRCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0Fz
eW5jKGludCB0ZXh0dXJlSWQsSW50UHRyIHBEc3RUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVy
ZUQzRDExX0FzeW5jKHRleHR1cmVJZCxwRHN0VGV4dHVyZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEo
SW50UHRyIHBEM0QxMVRleHR1cmUyRCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUu
RnJlZVRleHR1cmVEM0QxMShwRDNEMTFUZXh0dXJlMkQpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdWludCBHZXRSZW5kZXJNb2RlbE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVt
LlRleHQuU3RyaW5nQnVpbGRlciBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVs
TmFtZUxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRSZW5kZXJNb2RlbE5hbWUodW5SZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1
blJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQo
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHVpbnQgR2V0Q29tcG9uZW50Q291bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3Vu
dChwY2hSZW5kZXJNb2RlbE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5k
ZXJNb2RlbE5hbWUsdWludCB1bkNvbXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZUxlbikKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJl
bmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25l
bnROYW1lTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHVsb25nIEdldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1v
ZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVsb25nIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJN
b2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFt
ZShzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5D
b21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50
IHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1v
ZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNv
bXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorLy8gVGhpcyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUg
ZmFjdCB0aGF0IFZSQ29udHJvbGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21w
aWxlZCB3aXRoIHRoZSB3cm9uZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5n
IHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9s
bGVyU3RhdGVfdF9QYWNrZWQgcENvbnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJv
bGxlck1vZGVfU3RhdGVfdCBwU3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3Qg
cENvbXBvbmVudFN0YXRlKTsKKyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGlj
aXQpXQorICAgICAgIHN0cnVjdCBHZXRDb21wb25lbnRTdGF0ZVVuaW9uCisgICAgICAgeworICAg
ICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5k
ZXJNb2RlbHMuX0dldENvbXBvbmVudFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKKyAgICAgICAg
ICAgICAgW0ZpZWxkT2Zmc2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVu
dFN0YXRlUGFja2VkIHBHZXRDb21wb25lbnRTdGF0ZVBhY2tlZDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIGJvb2wgR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxz
dHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxl
clN0YXRlLHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYg
UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBpZiAoKFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0g
PT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFjT1NYKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0
Zm9ybUlELlVuaXgpKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRD
b21wb25lbnRTdGF0ZVVuaW9uIHU7CisgICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJT
dGF0ZV90X1BhY2tlZCBzdGF0ZV9wYWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNr
ZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJs
ZS5HZXRDb21wb25lbnRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jl
c3VsdCA9IHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hD
b21wb25lbnROYW1lLHJlZiBzdGF0ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0
YXRlKTsKKworICAgICAgICAgICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENv
bnRyb2xsZXJTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3Vs
dDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
R2V0Q29tcG9uZW50U3RhdGUocGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVm
IHBDb250cm9sbGVyU3RhdGUscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVu
ZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNo
Q29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5SZW5kZXJNb2RlbEhhc0NvbXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9u
ZW50TmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB1aW50IEdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJN
b2RlbE5hbWUsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1
blRodW1ibmFpbFVSTExlbixyZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1
bWJuYWlsVVJMKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxV
UkxMZW4scmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQ
YXRoLHVpbnQgdW5PcmlnaW5hbFBhdGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5k
ZXJNb2RlbE9yaWdpbmFsUGF0aChwY2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVu
T3JpZ2luYWxQYXRoTGVuLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFt
ZUZyb21FbnVtKEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAg
ICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21F
bnVtKGVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNp
KHJlc3VsdCk7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25z
Cit7CisgICAgICAgSVZSTm90aWZpY2F0aW9ucyBGblRhYmxlOworICAgICAgIGludGVybmFsIENW
Uk5vdGlmaWNhdGlvbnMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlID0gKElWUk5vdGlmaWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50
ZXJmYWNlLCB0eXBlb2YoSVZSTm90aWZpY2F0aW9ucykpOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZSTm90aWZpY2F0aW9uRXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSx1bG9uZyB1bFVzZXJWYWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5n
IHBjaFRleHQsRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1h
cF90IHBJbWFnZSxyZWYgdWludCBwTm90aWZpY2F0aW9uSWQpCisgICAgICAgeworICAgICAgICAg
ICAgICBwTm90aWZpY2F0aW9uSWQgPSAwOworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25F
cnJvciByZXN1bHQgPSBGblRhYmxlLkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUs
dWxVc2VyVmFsdWUsdHlwZSxwY2hUZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRp
b25JZCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBFVlJOb3RpZmljYXRpb25FcnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmlj
YXRpb25JZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuUmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENW
UlNldHRpbmdzCit7CisgICAgICAgSVZSU2V0dGluZ3MgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5h
bCBDVlJTZXR0aW5ncyhJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUgPSAoSVZSU2V0dGluZ3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNl
LCB0eXBlb2YoSVZSU2V0dGluZ3MpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBH
ZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NF
cnJvck5hbWVGcm9tRW51bShlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5Q
dHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU3lu
Yyhib29sIGJGb3JjZSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgU2V0Qm9vbChzdHJpbmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9v
bCBiVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuU2V0Qm9vbChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxy
ZWYgcGVFcnJvcik7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmlu
ZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0
aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldElu
dDMyKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5n
IHBjaFNldHRpbmdzS2V5LGZsb2F0IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixw
Y2hTZXR0aW5nc0tleSxmbFZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgU2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tl
eSxzdHJpbmcgcGNoVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7
CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NL
ZXkscGNoVmFsdWUscmVmIHBlRXJyb3IpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBH
ZXRCb29sKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQg
PSBGblRhYmxlLkdldEJvb2wocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBp
bnQgR2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBF
VlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gRm5UYWJsZS5HZXRJbnQzMihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVy
cm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIGZsb2F0IEdldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tl
eSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
ZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5
LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHZvaWQgR2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hT
ZXR0aW5nc0tleSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1
ZUxlbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5HZXRTdHJpbmcocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1
blZhbHVlTGVuLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVt
b3ZlU2VjdGlvbihzdHJpbmcgcGNoU2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rp
b24scmVmIHBlRXJyb3IpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJ
blNlY3Rpb24oc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJT
ZXR0aW5nc0Vycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJl
bW92ZUtleUluU2VjdGlvbihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsK
KyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUlNjcmVlbnNob3RzCit7CisgICAgICAg
SVZSU2NyZWVuc2hvdHMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJ
bnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
U2NyZWVuc2hvdHMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZS
U2NyZWVuc2hvdHMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJv
ciBSZXF1ZXN0U2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3Jl
ZW5zaG90VHlwZSB0eXBlLHN0cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmls
ZW5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7
CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVl
c3RTY3JlZW5zaG90KHJlZiBwT3V0U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxl
bmFtZSxwY2hWUkZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJT
Y3JlZW5zaG90VHlwZSBbXSBwU3VwcG9ydGVkVHlwZXMpCisgICAgICAgeworICAgICAgICAgICAg
ICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3Vw
cG9ydGVkVHlwZXMsKGludCkgcFN1cHBvcnRlZFR5cGVzLkxlbmd0aCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlw
ZSBHZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZS
U2NyZWVuc2hvdEVycm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlNjcmVl
bnNob3RUeXBlIHJlc3VsdCA9IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3Jl
ZW5zaG90SGFuZGxlLHJlZiBwRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFt
ZSh1aW50IHNjcmVlbnNob3RIYW5kbGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZp
bGVuYW1lVHlwZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2No
RmlsZW5hbWUscmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAg
ICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5h
bWUoc2NyZWVuc2hvdEhhbmRsZSxmaWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUs
cmVmIHBFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVp
bnQgc2NyZWVuc2hvdEhhbmRsZSxmbG9hdCBmbFByb2dyZXNzKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hv
dFByb2dyZXNzKHNjcmVlbnNob3RIYW5kbGUsZmxQcm9ncmVzcyk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3Ig
VGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5n
IHBjaFByZXZpZXdGaWxlbmFtZSxzdHJpbmcgcGNoVlJGaWxlbmFtZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHBPdXRTY3JlZW5zaG90SGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZSU2Ny
ZWVuc2hvdEVycm9yIHJlc3VsdCA9IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBP
dXRTY3JlZW5zaG90SGFuZGxlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlNj
cmVlbnNob3RFcnJvciBTdWJtaXRTY3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJT
Y3JlZW5zaG90VHlwZSB0eXBlLHN0cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5n
IHBjaFNvdXJjZVZSRmlsZW5hbWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5z
aG90RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5k
bGUsdHlwZSxwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFz
cyBDVlJSZXNvdXJjZXMKK3sKKyAgICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKKyAgICAgICBp
bnRlcm5hbCBDVlJSZXNvdXJjZXMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlID0gKElWUlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJ
bnRlcmZhY2UsIHR5cGVvZihJVlJSZXNvdXJjZXMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHVpbnQgTG9hZFNoYXJlZFJlc291cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBj
aEJ1ZmZlcix1aW50IHVuQnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkxvYWRTaGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVm
ZmVyLHVuQnVmZmVyTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHVpbnQgR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3Vy
Y2VOYW1lLHN0cmluZyBwY2hSZXNvdXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZm
ZXIsdWludCB1bkJ1ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0
ID0gRm5UYWJsZS5HZXRSZXNvdXJjZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJj
ZVR5cGVEaXJlY3RvcnkscGNoUGF0aEJ1ZmZlcix1bkJ1ZmZlckxlbik7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBPcGVuVlJJbnRl
cm9wCit7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9p
bnQgPSAiVlJfSW5pdEludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVu
dGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRl
cm5hbChyZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGlj
YXRpb25UeXBlKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50
cnlQb2ludCA9ICJWUl9TaHV0ZG93bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxs
aW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lk
IFNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJf
YXBpIiwgRW50cnlQb2ludCA9ICJWUl9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9
IENhbGxpbmdDb252ZW50aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJu
IGJvb2wgSXNIbWRQcmVzZW50KCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZy
X2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZl
bnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGlj
IGV4dGVybiBib29sIElzUnVudGltZUluc3RhbGxlZCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRy
aWJ1dGUoIm9wZW52cl9hcGkiLCBFbnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9y
IiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAg
aW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5p
dEVycm9yIGVycm9yKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwg
RW50cnlQb2ludCA9ICJWUl9HZXRHZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24g
PSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVy
biBJbnRQdHIgR2V0R2VuZXJpY0ludGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkxQU3RyKV0gc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVF
cnJvcik7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9p
bnQgPSAiVlJfSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENh
bGxpbmdDb252ZW50aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJv
b2wgSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5M
UFN0cildIHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0
cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxs
aW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5h
bCBzdGF0aWMgZXh0ZXJuIHVpbnQgR2V0SW5pdFRva2VuKCk7Cit9CisKKworcHVibGljIGVudW0g
RVZSRXllCit7CisgICAgICAgRXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEsCit9
CitwdWJsaWMgZW51bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBEaXJlY3RYID0gMCwKKyAgICAg
ICBPcGVuR0wgPSAxLAorICAgICAgIFZ1bGthbiA9IDIsCisgICAgICAgSU9TdXJmYWNlID0gMywK
KyAgICAgICBEaXJlY3RYMTIgPSA0LAorfQorcHVibGljIGVudW0gRUNvbG9yU3BhY2UKK3sKKyAg
ICAgICBBdXRvID0gMCwKKyAgICAgICBHYW1tYSA9IDEsCisgICAgICAgTGluZWFyID0gMiwKK30K
K3B1YmxpYyBlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAx
LAorICAgICAgIENhbGlicmF0aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCisgICAgICAgQ2FsaWJyYXRp
bmdfT3V0T2ZSYW5nZSA9IDEwMSwKKyAgICAgICBSdW5uaW5nX09LID0gMjAwLAorICAgICAgIFJ1
bm5pbmdfT3V0T2ZSYW5nZSA9IDIwMSwKK30KK3B1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xh
c3MKK3sKKyAgICAgICBJbnZhbGlkID0gMCwKKyAgICAgICBITUQgPSAxLAorICAgICAgIENvbnRy
b2xsZXIgPSAyLAorICAgICAgIEdlbmVyaWNUcmFja2VyID0gMywKKyAgICAgICBUcmFja2luZ1Jl
ZmVyZW5jZSA9IDQsCit9CitwdWJsaWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7Cisg
ICAgICAgSW52YWxpZCA9IDAsCisgICAgICAgTGVmdEhhbmQgPSAxLAorICAgICAgIFJpZ2h0SGFu
ZCA9IDIsCit9CitwdWJsaWMgZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAg
IFRyYWNraW5nVW5pdmVyc2VTZWF0ZWQgPSAwLAorICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFu
ZGluZyA9IDEsCisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIs
Cit9CitwdWJsaWMgZW51bSBFVHJhY2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9J
bnZhbGlkID0gMCwKKyAgICAgICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAw
LAorICAgICAgIFByb3BfTW9kZWxOdW1iZXJfU3RyaW5nID0gMTAwMSwKKyAgICAgICBQcm9wX1Nl
cmlhbE51bWJlcl9TdHJpbmcgPSAxMDAyLAorICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0
cmluZyA9IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKKyAg
ICAgICBQcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAgICBQcm9wX1Ry
YWNraW5nRmlybXdhcmVWZXJzaW9uX1N0cmluZyA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2Fy
ZVJldmlzaW9uX1N0cmluZyA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURl
c2NyaXB0aW9uc19TdHJpbmcgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NE
b25nbGVfU3RyaW5nID0gMTAwOSwKKyAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9
IDEwMTAsCisgICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAg
IFByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAorICAgICAgIFByb3Bf
U3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCA9IDEwMTMsCisgICAgICAgUHJvcF9GaXJt
d2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9N
YW51YWxVcGRhdGVfQm9vbCA9IDEwMTUsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRh
dGVVUkxfU3RyaW5nID0gMTAxNiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0
ID0gMTAxNywKKyAgICAgICBQcm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAorICAg
ICAgIFByb3BfRlBHQVZlcnNpb25fVWludDY0ID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNp
b25fVWludDY0ID0gMTAyMCwKKyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIx
LAorICAgICAgIFByb3BfRG9uZ2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAorICAgICAgIFByb3Bf
QmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29v
cmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sID0gMTAyNSwKKyAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0
dGVyeVN0YXR1c19Cb29sID0gMTAyNiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jv
b2wgPSAxMDI3LAorICAgICAgIFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5n
ID0gMTAyOCwKKyAgICAgICBQcm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBQ
cm9wX0hhc0NhbWVyYV9Cb29sID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3Ry
aW5nID0gMTAzMSwKKyAgICAgICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9v
bCA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9
IDEwMzMsCisgICAgICAgUHJvcF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKKyAgICAgICBQ
cm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sID0gMjAwMCwKKyAgICAgICBQcm9wX1NlY29u
ZHNGcm9tVnN5bmNUb1Bob3RvbnNfRmxvYXQgPSAyMDAxLAorICAgICAgIFByb3BfRGlzcGxheUZy
ZXF1ZW5jeV9GbG9hdCA9IDIwMDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0g
MjAwMywKKyAgICAgICBQcm9wX0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCisgICAg
ICAgUHJvcF9QcmV2aW91c1VuaXZlcnNlSWRfVWludDY0ID0gMjAwNSwKKyAgICAgICBQcm9wX0Rp
c3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNr
dG9wX0Jvb2wgPSAyMDA3LAorICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgs
CisgICAgICAgUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIFByb3Bf
RGlzcGxheU1DU2NhbGVfRmxvYXQgPSAyMDEwLAorICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0lu
dDMyID0gMjAxMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEy
LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAg
IFByb3BfRGlzcGxheUdDQmxhY2tDbGFtcF9GbG9hdCA9IDIwMTQsCisgICAgICAgUHJvcF9FZGlk
UHJvZHVjdElEX0ludDMyID0gMjAxNSwKKyAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9y
bV9NYXRyaXgzNCA9IDIwMTYsCisgICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAx
NywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCisgICAgICAgUHJv
cF9EaXNwbGF5R0NTY2FsZV9GbG9hdCA9IDIwMTksCisgICAgICAgUHJvcF9EaXNwbGF5R0NQcmVz
Y2FsZV9GbG9hdCA9IDIwMjAsCisgICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAy
MDIxLAorICAgICAgIFByb3BfTGVuc0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKKyAgICAgICBQ
cm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCA9IDIwMjMsCisgICAgICAgUHJvcF9MZW5zQ2VudGVy
UmlnaHRVX0Zsb2F0ID0gMjAyNCwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQg
PSAyMDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAy
NiwKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAorICAg
ICAgIFByb3BfQ2FtZXJhRmlybXdhcmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAg
IFByb3BfRGlzcGxheUZQR0FWZXJzaW9uX1VpbnQ2NCA9IDIwMjksCisgICAgICAgUHJvcF9EaXNw
bGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlI
YXJkd2FyZVZlcnNpb25fVWludDY0ID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVW
ZXJzaW9uX1VpbnQ2NCA9IDIwMzIsCisgICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9k
ZV9JbnQzMiA9IDIwMzMsCisgICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZW
aWV3RGVncmVlc19GbG9hdCA9IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxG
aWVsZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHBy
ZXNzZWRfQm9vbCA9IDIwMzYsCisgICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9v
bCA9IDIwMzcsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwK
KyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBQ
cm9wX0Rpc3BsYXlNQ0ltYWdlTnVtQ2hhbm5lbHNfSW50MzIgPSAyMDQwLAorICAgICAgIFByb3Bf
RGlzcGxheU1DSW1hZ2VEYXRhX0JpbmFyeSA9IDIwNDEsCisgICAgICAgUHJvcF9Vc2VzRHJpdmVy
RGlyZWN0TW9kZV9Cb29sID0gMjA0MiwKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3Ry
aW5nID0gMzAwMCwKKyAgICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwK
KyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiA9IDMwMDIsCisgICAgICAgUHJvcF9BeGlzMVR5
cGVfSW50MzIgPSAzMDAzLAorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKKyAg
ICAgICBQcm9wX0F4aXMzVHlwZV9JbnQzMiA9IDMwMDUsCisgICAgICAgUHJvcF9BeGlzNFR5cGVf
SW50MzIgPSAzMDA2LAorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAw
NywKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAg
ICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAorICAgICAgIFBy
b3BfRmllbGRPZlZpZXdUb3BEZWdyZWVzX0Zsb2F0ID0gNDAwMiwKKyAgICAgICBQcm9wX0ZpZWxk
T2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2luZ1Jh
bmdlTWluaW11bU1ldGVyc19GbG9hdCA9IDQwMDQsCisgICAgICAgUHJvcF9UcmFja2luZ1Jhbmdl
TWF4aW11bU1ldGVyc19GbG9hdCA9IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5n
ID0gNDAwNiwKKyAgICAgICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAg
IFByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAorICAgICAgIFByb3Bf
TmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJpbmcgPSA1MDAyLAorICAgICAgIFByb3Bf
TmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCisgICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKKyAgICAgICBQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgUHJv
cF9OYW1lZEljb25QYXRoRGV2aWNlTm90UmVhZHlfU3RyaW5nID0gNTAwNiwKKyAgICAgICBQcm9w
X05hbWVkSWNvblBhdGhEZXZpY2VTdGFuZGJ5X1N0cmluZyA9IDUwMDcsCisgICAgICAgUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBQcm9wX0Rp
c3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5
SGlkZGVuQXJlYV9CaW5hcnlfRW5kID0gNTE1MCwKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRo
X1N0cmluZyA9IDYwMDAsCisgICAgICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAor
ICAgICAgIFByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKKyAgICAg
ICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDEwOTk5LAorfQorcHVibGljIGVu
dW0gRVRyYWNrZWRQcm9wZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9
IDAsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZSA9IDEsCisgICAgICAgVHJhY2tl
ZFByb3BfV3JvbmdEZXZpY2VDbGFzcyA9IDIsCisgICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9v
U21hbGwgPSAzLAorICAgICAgIFRyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisgICAg
ICAgVHJhY2tlZFByb3BfSW52YWxpZERldmljZSA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291
bGROb3RDb250YWN0U2VydmVyID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3Zp
ZGVkQnlEZXZpY2UgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVt
TGVuZ3RoID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAorICAg
ICAgIFRyYWNrZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQgPSAxMCwKKyAgICAgICBUcmFja2VkUHJv
cF9JbnZhbGlkT3BlcmF0aW9uID0gMTEsCit9CitwdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncwor
eworICAgICAgIFN1Ym1pdF9EZWZhdWx0ID0gMCwKKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRp
b25BbHJlYWR5QXBwbGllZCA9IDEsCisgICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwK
KyAgICAgICBTdWJtaXRfUmVzZXJ2ZWQgPSA0LAorfQorcHVibGljIGVudW0gRVZSU3RhdGUKK3sK
KyAgICAgICBVbmRlZmluZWQgPSAtMSwKKyAgICAgICBPZmYgPSAwLAorICAgICAgIFNlYXJjaGlu
ZyA9IDEsCisgICAgICAgU2VhcmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBSZWFkeSA9IDMsCisg
ICAgICAgUmVhZHlfQWxlcnQgPSA0LAorICAgICAgIE5vdFJlYWR5ID0gNSwKKyAgICAgICBTdGFu
ZGJ5ID0gNiwKKyAgICAgICBSZWFkeV9BbGVydF9Mb3cgPSA3LAorfQorcHVibGljIGVudW0gRVZS
RXZlbnRUeXBlCit7CisgICAgICAgVlJFdmVudF9Ob25lID0gMCwKKyAgICAgICBWUkV2ZW50X1Ry
YWNrZWREZXZpY2VBY3RpdmF0ZWQgPSAxMDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNl
RGVhY3RpdmF0ZWQgPSAxMDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9
IDEwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVk
ID0gMTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVk
ID0gMTA0LAorICAgICAgIFZSRXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBWUkV2ZW50
X0VudGVyU3RhbmRieU1vZGUgPSAxMDYsCisgICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2Rl
ID0gMTA3LAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAor
ICAgICAgIFZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgVlJF
dmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgPSAxMTAsCisgICAgICAgVlJFdmVudF9Qcm9wZXJ0
eUNoYW5nZWQgPSAxMTEsCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKKyAgICAg
ICBWUkV2ZW50X0J1dHRvblVucHJlc3MgPSAyMDEsCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3Vj
aCA9IDIwMiwKKyAgICAgICBWUkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAgVlJF
dmVudF9Nb3VzZU1vdmUgPSAzMDAsCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAz
MDEsCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIFZSRXZlbnRf
Rm9jdXNFbnRlciA9IDMwMywKKyAgICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCisgICAg
ICAgVlJFdmVudF9TY3JvbGwgPSAzMDUsCisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAz
MDYsCisgICAgICAgVlJFdmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAorICAgICAgIFZS
RXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkID0gNDAwLAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1
c1JlbGVhc2VkID0gNDAxLAorICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisg
ICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIFZSRXZlbnRfU2Nl
bmVBcHBsaWNhdGlvbkNoYW5nZWQgPSA0MDQsCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hh
bmdlZCA9IDQwNSwKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAg
ICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0
MDcsCisgICAgICAgVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzID0gNDEwLAorICAgICAgIFZSRXZl
bnRfU2hvd1JlbmRlck1vZGVscyA9IDQxMSwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9
IDUwMCwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRBY3RpdmF0ZWQgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFj
dGl2YXRlZCA9IDUwMywKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1
MDQsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgVlJF
dmVudF9SZXNldERhc2hib2FyZCA9IDUwNiwKKyAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0g
NTA3LAorICAgICAgIFZSRXZlbnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAgICAgVlJFdmVudF9T
aG93S2V5Ym9hcmQgPSA1MDksCisgICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisg
ICAgICAgVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIFZS
RXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgPSA1MTIsCisgICAgICAgVlJFdmVudF9PdmVy
bGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQgPSA1MTMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRH
dWlkZUJ1dHRvbkRvd24gPSA1MTQsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRv
blVwID0gNTE1LAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKKyAg
ICAgICBWUkV2ZW50X0ltYWdlRmFpbGVkID0gNTE3LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
T3ZlcmxheUNyZWF0ZWQgPSA1MTgsCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9
IDUyMCwKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBWUkV2
ZW50X1NjcmVlbnNob3RGYWlsZWQgPSA1MjIsCisgICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5z
aG90VG9EYXNoYm9hcmQgPSA1MjMsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NU
b0Rhc2hib2FyZCA9IDUyNCwKKyAgICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VD
aGFuZ2VkID0gNTI1LAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAor
ICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiA9IDYwMSwKKyAgICAgICBWUkV2ZW50
X05vdGlmaWNhdGlvbl9CZWdpbkludGVyYWN0aW9uID0gNjAyLAorICAgICAgIFZSRXZlbnRfTm90
aWZpY2F0aW9uX0Rlc3Ryb3llZCA9IDYwMywKKyAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCisg
ICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCA9IDcwMSwKKyAgICAgICBWUkV2ZW50X1F1aXRBYm9y
dGVkX1VzZXJQcm9tcHQgPSA3MDIsCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0g
NzAzLAorICAgICAgIFZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKKyAgICAgICBW
UkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hh
cGVyb25lVW5pdmVyc2VIYXNDaGFuZ2VkID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25l
VGVtcERhdGFIYXNDaGFuZ2VkID0gODAyLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGlu
Z3NIYXZlQ2hhbmdlZCA9IDgwMywKKyAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQg
PSA4MDQsCisgICAgICAgVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCisg
ICAgICAgVlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAg
VlJFdmVudF9DYW1lcmFTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIFZSRXZlbnRf
UmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2Rl
bFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1l
bnRTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5n
c0hhdmVDaGFuZ2VkID0gODU1LAorICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAor
ICAgICAgIFZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIFZSRXZlbnRfRmly
bXdhcmVVcGRhdGVTdGFydGVkID0gMTEwMCwKKyAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRl
RmluaXNoZWQgPSAxMTAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAor
ICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAorICAgICAgIFZSRXZlbnRf
S2V5Ym9hcmREb25lID0gMTIwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlv
blN0YXJ0ZWQgPSAxMzAwLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJv
cnRlZCA9IDEzMDEsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBT
dGFydGVkID0gMTMwMiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAx
MzAzLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAorICAg
ICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAx
MzA1LAorICAgICAgIFZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAs
CisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCisg
ICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKKyAg
ICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAg
ICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCisgICAg
ICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCisgICAgICAg
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCisgICAgICAgVlJF
dmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBWUkV2ZW50
X1BlcmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1Bl
cmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJm
b3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCA9IDE2MDIsCisgICAgICAgVlJFdmVudF9NZXNzYWdl
T3ZlcmxheV9DbG9zZWQgPSAxNjUwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2Vy
dmVkX0VuZCA9IDE5OTk5LAorfQorcHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKK3sK
KyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKKyAgICAgICBrX0VE
ZXZpY2VBY3Rpdml0eUxldmVsX0lkbGUgPSAwLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2
ZWxfVXNlckludGVyYWN0aW9uID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1Vz
ZXJJbnRlcmFjdGlvbl9UaW1lb3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVs
X1N0YW5kYnkgPSAzLAorfQorcHVibGljIGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VC
dXR0b25fU3lzdGVtID0gMCwKKyAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwK
KyAgICAgICBrX0VCdXR0b25fR3JpcCA9IDIsCisgICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9
IDMsCisgICAgICAga19FQnV0dG9uX0RQYWRfVXAgPSA0LAorICAgICAgIGtfRUJ1dHRvbl9EUGFk
X1JpZ2h0ID0gNSwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9Eb3duID0gNiwKKyAgICAgICBrX0VC
dXR0b25fQSA9IDcsCisgICAgICAga19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAg
ICAgIGtfRUJ1dHRvbl9BeGlzMCA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAor
ICAgICAgIGtfRUJ1dHRvbl9BeGlzMiA9IDM0LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1
LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzNCA9IDM2LAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZS
X1RvdWNocGFkID0gMzIsCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAor
ICAgICAgIGtfRUJ1dHRvbl9EYXNoYm9hcmRfQmFjayA9IDIsCisgICAgICAga19FQnV0dG9uX01h
eCA9IDY0LAorfQorcHVibGljIGVudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBMZWZ0ID0g
MSwKKyAgICAgICBSaWdodCA9IDIsCisgICAgICAgTWlkZGxlID0gNCwKK30KK3B1YmxpYyBlbnVt
IEVIaWRkZW5BcmVhTWVzaFR5cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFy
ZCA9IDAsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19l
SGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01h
eCA9IDMsCit9CitwdWJsaWMgZW51bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBr
X2VDb250cm9sbGVyQXhpc19Ob25lID0gMCwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFj
a1BhZCA9IDEsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAg
IGtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIgPSAzLAorfQorcHVibGljIGVudW0gRVZSQ29udHJv
bGxlckV2ZW50T3V0cHV0VHlwZQoreworICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2
ZW50cyA9IDAsCisgICAgICAgQ29udHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKK30K
K3B1YmxpYyBlbnVtIEVDb2xsaXNpb25Cb3VuZHNTdHlsZQoreworICAgICAgIENPTExJU0lPTl9C
T1VORFNfU1RZTEVfQkVHSU5ORVIgPSAwLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVf
SU5URVJNRURJQVRFID0gMSwKKyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMg
PSAyLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAg
IENPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSA9IDQsCisgICAgICAgQ09MTElTSU9OX0JPVU5E
U19TVFlMRV9DT1VOVCA9IDUsCit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAg
ICAgICBOb25lID0gMCwKKyAgICAgICBVbmtub3duT3ZlcmxheSA9IDEwLAorICAgICAgIEludmFs
aWRIYW5kbGUgPSAxMSwKKyAgICAgICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCisgICAgICAgT3Zl
cmxheUxpbWl0RXhjZWVkZWQgPSAxMywKKyAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQs
CisgICAgICAgS2V5VG9vTG9uZyA9IDE1LAorICAgICAgIE5hbWVUb29Mb25nID0gMTYsCisgICAg
ICAgS2V5SW5Vc2UgPSAxNywKKyAgICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKKyAgICAg
ICBJbnZhbGlkVHJhY2tlZERldmljZSA9IDE5LAorICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAy
MCwKKyAgICAgICBUaHVtYm5haWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKKyAgICAgICBBcnJheVRv
b1NtYWxsID0gMjIsCisgICAgICAgUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEludmFsaWRU
ZXh0dXJlID0gMjQsCisgICAgICAgVW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAorICAgICAgIEtleWJv
YXJkQWxyZWFkeUluVXNlID0gMjYsCisgICAgICAgTm9OZWlnaGJvciA9IDI3LAorICAgICAgIFRv
b01hbnlNYXNrUHJpbWl0aXZlcyA9IDI5LAorICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwK
K30KK3B1YmxpYyBlbnVtIEVWUkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZSQXBwbGljYXRp
b25fT3RoZXIgPSAwLAorICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAorICAgICAgIFZS
QXBwbGljYXRpb25fT3ZlcmxheSA9IDIsCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5k
ID0gMywKKyAgICAgICBWUkFwcGxpY2F0aW9uX1V0aWxpdHkgPSA0LAorICAgICAgIFZSQXBwbGlj
YXRpb25fVlJNb25pdG9yID0gNSwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cg
PSA2LAorICAgICAgIFZSQXBwbGljYXRpb25fTWF4ID0gNywKK30KK3B1YmxpYyBlbnVtIEVWUkZp
cm13YXJlRXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBTdWNjZXNzID0gMSwKKyAg
ICAgICBGYWlsID0gMiwKK30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7Cisg
ICAgICAgT0sgPSAwLAorICAgICAgIEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAg
ICBOb3RpZmljYXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgSW52YWxpZE92ZXJsYXlIYW5k
bGUgPSAxMDIsCisgICAgICAgU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMs
Cit9CitwdWJsaWMgZW51bSBFVlJJbml0RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAg
ICBVbmtub3duID0gMSwKKyAgICAgICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAor
ICAgICAgIEluaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCA9IDEwMSwKKyAgICAgICBJbml0X1ZSQ2xp
ZW50RExMTm90Rm91bmQgPSAxMDIsCisgICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCisg
ICAgICAgSW5pdF9GYWN0b3J5Tm90Rm91bmQgPSAxMDQsCisgICAgICAgSW5pdF9JbnRlcmZhY2VO
b3RGb3VuZCA9IDEwNSwKKyAgICAgICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAg
ICAgSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBJbml0X0ht
ZE5vdEZvdW5kID0gMTA4LAorICAgICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCisgICAg
ICAgSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCA9IDExMCwKKyAgICAgICBJbml0X05vQ29uZmln
UGF0aCA9IDExMSwKKyAgICAgICBJbml0X05vTG9nUGF0aCA9IDExMiwKKyAgICAgICBJbml0X1Bh
dGhSZWdpc3RyeU5vdFdyaXRhYmxlID0gMTEzLAorICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWls
ZWQgPSAxMTQsCisgICAgICAgSW5pdF9SZXRyeSA9IDExNSwKKyAgICAgICBJbml0X0luaXRDYW5j
ZWxlZEJ5VXNlciA9IDExNiwKKyAgICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcs
CisgICAgICAgSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQgPSAxMTgsCisgICAgICAgSW5pdF9TaHV0
dGluZ0Rvd24gPSAxMTksCisgICAgICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKKyAgICAg
ICBJbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcCA9IDEyMSwKKyAgICAgICBJbml0X05vdFN1
cHBvcnRlZFdpdGhDb21wb3NpdG9yID0gMTIyLAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9V
dGlsaXR5QXBwcyA9IDEyMywKKyAgICAgICBJbml0X0ludGVybmFsID0gMTI0LAorICAgICAgIElu
aXRfSG1kRHJpdmVySWRJc05vbmUgPSAxMjUsCisgICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNl
bmNlRmFpbGVkID0gMTI2LAorICAgICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCisg
ICAgICAgSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkID0gMTI4LAorICAgICAgIEluaXRfTG93
UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZCA9IDEyOSwKKyAgICAgICBJbml0X0ludmFsaWRBcHBs
aWNhdGlvblR5cGUgPSAxMzAsCisgICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBw
cyA9IDEzMSwKKyAgICAgICBJbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAor
ICAgICAgIEluaXRfVlJEYXNoYm9hcmROb3RGb3VuZCA9IDEzMywKKyAgICAgICBJbml0X1ZSRGFz
aGJvYXJkU3RhcnR1cEZhaWxlZCA9IDEzNCwKKyAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAor
ICAgICAgIERyaXZlcl9Vbmtub3duID0gMjAxLAorICAgICAgIERyaXZlcl9IbWRVbmtub3duID0g
MjAyLAorICAgICAgIERyaXZlcl9Ob3RMb2FkZWQgPSAyMDMsCisgICAgICAgRHJpdmVyX1J1bnRp
bWVPdXRPZkRhdGUgPSAyMDQsCisgICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAg
IERyaXZlcl9Ob3RDYWxpYnJhdGVkID0gMjA2LAorICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbklu
dmFsaWQgPSAyMDcsCisgICAgICAgRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAg
ICAgICBEcml2ZXJfVHJhY2tlZERldmljZUludGVyZmFjZVVua25vd24gPSAyMDksCisgICAgICAg
RHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRHJpdmVyX0htZERp
c3BsYXlNaXJyb3JlZCA9IDIxMiwKKyAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwK
KyAgICAgICBJUENfQ29ubmVjdEZhaWxlZCA9IDMwMSwKKyAgICAgICBJUENfU2hhcmVkU3RhdGVJ
bml0RmFpbGVkID0gMzAyLAorICAgICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywK
KyAgICAgICBJUENfTXV0ZXhJbml0RmFpbGVkID0gMzA0LAorICAgICAgIElQQ19GYWlsZWQgPSAz
MDUsCisgICAgICAgSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAorICAgICAgIElQ
Q19Db21wb3NpdG9ySW52YWxpZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBJUENfQ29u
bmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBDb21wb3NpdG9y
X0ZhaWxlZCA9IDQwMCwKKyAgICAgICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9
IDQwMSwKKyAgICAgICBDb21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCisg
ICAgICAgQ29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZCA9IDQwMywKKyAgICAgICBDb21wb3Np
dG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCA9IDQwNCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19V
bmFibGVUb0Nvbm5lY3RUb09jdWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIFZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNlID0gMTEwMSwKKyAgICAgICBWZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb1JlcXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgVmVu
ZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAgIFZlbmRv
clNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb0JpZyA9IDExMDQsCisgICAgICAgVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfQ29uZmlnVG9vU21hbGwgPSAxMTA1LAorICAgICAgIFZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgPSAxMTA2LAorICAgICAgIFZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKKyAgICAgICBWZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKKyAg
ICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAx
MTA5LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFO
ZXh0ID0gMTExMCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJl
c3NSYW5nZSA9IDExMTEsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFF
cnJvciA9IDExMTIsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVk
U2FuaXR5Q2hlY2sgPSAxMTEzLAorICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91
bmQgPSAyMDAwLAorfQorcHVibGljIGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAgICBO
b25lID0gMCwKKyAgICAgICBNb25vID0gMSwKKyAgICAgICBTdGVyZW8gPSAyLAorICAgICAgIEN1
YmVtYXAgPSAzLAorICAgICAgIE1vbm9QYW5vcmFtYSA9IDQsCisgICAgICAgU3RlcmVvUGFub3Jh
bWEgPSA1LAorfQorcHVibGljIGVudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7
CisgICAgICAgUHJldmlldyA9IDAsCisgICAgICAgVlIgPSAxLAorfQorcHVibGljIGVudW0gRVZS
VHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgT3BlcmF0aW9u
RmFpbGVkID0gMTAwLAorICAgICAgIEludmFsaWRIYW5kbGUgPSAxMDEsCisgICAgICAgSW52YWxp
ZEZyYW1lSGVhZGVyVmVyc2lvbiA9IDEwMiwKKyAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCisg
ICAgICAgSVBDRmFpbHVyZSA9IDEwNCwKKyAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNl
ID0gMTA1LAorICAgICAgIFNoYXJlZE1lbW9yeUZhaWx1cmUgPSAxMDYsCisgICAgICAgRnJhbWVC
dWZmZXJpbmdGYWlsdXJlID0gMTA3LAorICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwK
KyAgICAgICBJbnZhbGlkR0xUZXh0dXJlSWQgPSAxMDksCisgICAgICAgSW52YWxpZFNoYXJlZFRl
eHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwK
KyAgICAgICBTaGFyZWRUZXh0dXJlRmFpbHVyZSA9IDExMiwKKyAgICAgICBOb0ZyYW1lQXZhaWxh
YmxlID0gMTEzLAorICAgICAgIEludmFsaWRBcmd1bWVudCA9IDExNCwKKyAgICAgICBJbnZhbGlk
RnJhbWVCdWZmZXJTaXplID0gMTE1LAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZQoreworICAgICAgIERpc3RvcnRlZCA9IDAsCisgICAgICAgVW5kaXN0b3J0ZWQgPSAx
LAorICAgICAgIE1heGltdW1VbmRpc3RvcnRlZCA9IDIsCisgICAgICAgTUFYX0NBTUVSQV9GUkFN
RV9UWVBFUyA9IDMsCit9CitwdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAg
ICAgTm9uZSA9IDAsCisgICAgICAgQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKKyAgICAgICBO
b01hbmlmZXN0ID0gMTAxLAorICAgICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgSW52
YWxpZEluZGV4ID0gMTAzLAorICAgICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKKyAgICAg
ICBJUENGYWlsZWQgPSAxMDUsCisgICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEw
NiwKKyAgICAgICBJbnZhbGlkTWFuaWZlc3QgPSAxMDcsCisgICAgICAgSW52YWxpZEFwcGxpY2F0
aW9uID0gMTA4LAorICAgICAgIExhdW5jaEZhaWxlZCA9IDEwOSwKKyAgICAgICBBcHBsaWNhdGlv
bkFscmVhZHlTdGFydGluZyA9IDExMCwKKyAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAor
ICAgICAgIE9sZEFwcGxpY2F0aW9uUXVpdHRpbmcgPSAxMTIsCisgICAgICAgVHJhbnNpdGlvbkFi
b3J0ZWQgPSAxMTMsCisgICAgICAgSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBCdWZmZXJUb29T
bWFsbCA9IDIwMCwKKyAgICAgICBQcm9wZXJ0eU5vdFNldCA9IDIwMSwKKyAgICAgICBVbmtub3du
UHJvcGVydHkgPSAyMDIsCisgICAgICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30KK3B1Ymxp
YyBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKK3sKKyAgICAgICBOYW1lX1N0cmluZyA9IDAs
CisgICAgICAgTGF1bmNoVHlwZV9TdHJpbmcgPSAxMSwKKyAgICAgICBXb3JraW5nRGlyZWN0b3J5
X1N0cmluZyA9IDEyLAorICAgICAgIEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCisgICAgICAgQXJn
dW1lbnRzX1N0cmluZyA9IDE0LAorICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBEZXNj
cmlwdGlvbl9TdHJpbmcgPSA1MCwKKyAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAorICAgICAg
IEltYWdlUGF0aF9TdHJpbmcgPSA1MiwKKyAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCisgICAg
ICAgSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wgPSA2MCwKKyAgICAgICBJc1RlbXBsYXRlX0Jvb2wg
PSA2MSwKKyAgICAgICBJc0luc3RhbmNlZF9Cb29sID0gNjIsCisgICAgICAgSXNJbnRlcm5hbF9C
b29sID0gNjMsCisgICAgICAgTGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9CitwdWJsaWMg
ZW51bSBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZQoreworICAgICAgIFZSQXBwbGljYXRp
b25UcmFuc2l0aW9uX05vbmUgPSAwLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09s
ZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGlu
Z0ZvckV4dGVybmFsTGF1bmNoID0gMTEsCisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25f
TmV3QXBwTGF1bmNoZWQgPSAyMCwKK30KK3B1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9u
U3RhdGUKK3sKKyAgICAgICBPSyA9IDEsCisgICAgICAgV2FybmluZyA9IDEwMCwKKyAgICAgICBX
YXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkID0gMTAxLAorICAgICAgIFdhcm5pbmdfQmFz
ZVN0YXRpb25SZW1vdmVkID0gMTAyLAorICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxp
ZCA9IDEwMywKKyAgICAgICBFcnJvciA9IDIwMCwKKyAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVu
aW5pdGlhbGl6ZWQgPSAyMDEsCisgICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIw
MiwKKyAgICAgICBFcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsCisgICAgICAgRXJyb3JfQ29s
bGlzaW9uQm91bmRzSW52YWxpZCA9IDIwNCwKK30KK3B1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25m
aWdGaWxlCit7CisgICAgICAgTGl2ZSA9IDEsCisgICAgICAgVGVtcCA9IDIsCit9CitwdWJsaWMg
ZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0Jv
dW5kc09ubHkgPSAxLAorfQorcHVibGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCit7CisgICAg
ICAgTm9uZSA9IDAsCisgICAgICAgUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRp
YmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKKyAgICAgICBJ
bnZhbGlkVGV4dHVyZSA9IDEwMiwKKyAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMs
CisgICAgICAgVGV4dHVyZUlzT25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBUZXh0dXJlVXNl
c1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9y
dGVkID0gMTA2LAorICAgICAgIEluZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBBbHJlYWR5
U3VibWl0dGVkID0gMTA4LAorfQorcHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKK3sK
KyAgICAgICBOb25lID0gMCwKKyAgICAgICBNb3VzZSA9IDEsCit9CitwdWJsaWMgZW51bSBWUk92
ZXJsYXlUcmFuc2Zvcm1UeXBlCit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRl
ID0gMCwKKyAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0g
MSwKKyAgICAgICBWUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCisgICAgICAg
VlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQgPSAzLAorfQorcHVibGljIGVudW0g
VlJPdmVybGF5RmxhZ3MKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBDdXJ2ZWQgPSAxLAor
ICAgICAgIFJHU1M0WCA9IDIsCisgICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAorICAgICAgIEFj
Y2VwdHNHYW1lcGFkRXZlbnRzID0gNCwKKyAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKKyAg
ICAgICBTZW5kVlJTY3JvbGxFdmVudHMgPSA2LAorICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRz
ID0gNywKKyAgICAgICBTaG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisgICAgICAgVHJhbnNm
ZXJPd25lcnNoaXBUb0ludGVybmFsUHJvY2VzcyA9IDksCisgICAgICAgU2lkZUJ5U2lkZV9QYXJh
bGxlbCA9IDEwLAorICAgICAgIFNpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAorICAgICAgIFBhbm9y
YW1hID0gMTIsCisgICAgICAgU3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBTb3J0V2l0aE5v
blNjZW5lT3ZlcmxheXMgPSAxNCwKKyAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKK30K
K3B1YmxpYyBlbnVtIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZQoreworICAgICAgIEJ1dHRvblBy
ZXNzXzAgPSAwLAorICAgICAgIEJ1dHRvblByZXNzXzEgPSAxLAorICAgICAgIEJ1dHRvblByZXNz
XzIgPSAyLAorICAgICAgIEJ1dHRvblByZXNzXzMgPSAzLAorICAgICAgIENvdWxkbnRGaW5kU3lz
dGVtT3ZlcmxheSA9IDQsCisgICAgICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkg
PSA1LAorICAgICAgIEFwcGxpY2F0aW9uUXVpdCA9IDYsCit9CitwdWJsaWMgZW51bSBFR2FtZXBh
ZFRleHRJbnB1dE1vZGUKK3sKKyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9
IDAsCisgICAgICAga19FR2FtZXBhZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCisgICAgICAg
a19FR2FtZXBhZFRleHRJbnB1dE1vZGVTdWJtaXQgPSAyLAorfQorcHVibGljIGVudW0gRUdhbWVw
YWRUZXh0SW5wdXRMaW5lTW9kZQoreworICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9k
ZVNpbmdsZUxpbmUgPSAwLAorICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRp
cGxlTGluZXMgPSAxLAorfQorcHVibGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KK3sKKyAgICAg
ICBVcCA9IDAsCisgICAgICAgRG93biA9IDEsCisgICAgICAgTGVmdCA9IDIsCisgICAgICAgUmln
aHQgPSAzLAorICAgICAgIENvdW50ID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRl
cnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZQoreworICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25Q
cmltaXRpdmVUeXBlX1JlY3RhbmdsZSA9IDAsCisgICAgICAgT3ZlcmxheUludGVyc2VjdGlvblBy
aW1pdGl2ZVR5cGVfQ2lyY2xlID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJy
b3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBMb2FkaW5nID0gMTAwLAorICAgICAgIE5v
dFN1cHBvcnRlZCA9IDIwMCwKKyAgICAgICBJbnZhbGlkQXJnID0gMzAwLAorICAgICAgIEludmFs
aWRNb2RlbCA9IDMwMSwKKyAgICAgICBOb1NoYXBlcyA9IDMwMiwKKyAgICAgICBNdWx0aXBsZVNo
YXBlcyA9IDMwMywKKyAgICAgICBUb29NYW55VmVydGljZXMgPSAzMDQsCisgICAgICAgTXVsdGlw
bGVUZXh0dXJlcyA9IDMwNSwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBO
b3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwK
KyAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDQwMCwKK30KK3B1YmxpYyBlbnVtIEVWUkNvbXBvbmVu
dFByb3BlcnR5Cit7CisgICAgICAgSXNTdGF0aWMgPSAxLAorICAgICAgIElzVmlzaWJsZSA9IDIs
CisgICAgICAgSXNUb3VjaGVkID0gNCwKKyAgICAgICBJc1ByZXNzZWQgPSA4LAorICAgICAgIElz
U2Nyb2xsZWQgPSAxNiwKK30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKK3sKKyAg
ICAgICBUcmFuc2llbnQgPSAwLAorICAgICAgIFBlcnNpc3RlbnQgPSAxLAorICAgICAgIFRyYW5z
aWVudF9TeXN0ZW1XaXRoVXNlclZhbHVlID0gMiwKK30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNh
dGlvblN0eWxlCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgQXBwbGljYXRpb24gPSAxMDAs
CisgICAgICAgQ29udGFjdF9EaXNhYmxlZCA9IDIwMCwKKyAgICAgICBDb250YWN0X0VuYWJsZWQg
PSAyMDEsCisgICAgICAgQ29udGFjdF9BY3RpdmUgPSAyMDIsCit9CitwdWJsaWMgZW51bSBFVlJT
ZXR0aW5nc0Vycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgSVBDRmFpbGVkID0gMSwK
KyAgICAgICBXcml0ZUZhaWxlZCA9IDIsCisgICAgICAgUmVhZEZhaWxlZCA9IDMsCisgICAgICAg
SnNvblBhcnNlRmFpbGVkID0gNCwKKyAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1
LAorfQorcHVibGljIGVudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAs
CisgICAgICAgUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9
IDEwMCwKKyAgICAgICBOb3RGb3VuZCA9IDEwMSwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEw
MiwKKyAgICAgICBTY3JlZW5zaG90QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9CisKK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRh
X3QKK3sKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3Qg
cmVzZXJ2ZWQ7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9s
bGVyX3QgY29udHJvbGxlcjsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X01vdXNlX3QgbW91c2U7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9T
Y3JvbGxfdCBzY3JvbGw7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Q
cm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50
X05vdGlmaWNhdGlvbl90IG5vdGlmaWNhdGlvbjsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1
YmxpYyBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGlj
IFZSRXZlbnRfQ2hhcGVyb25lX3QgY2hhcGVyb25lOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OworICAgICAg
IFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRN
b3ZlOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bv
c2VSZXNldF90IHNlYXRlZFplcm9Qb3NlUmVzZXQ7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBw
dWJsaWMgVlJFdmVudF9TY3JlZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBbRmllbGRPZmZz
ZXQoMCldIHB1YmxpYyBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9n
cmVzczsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QgYXBwbGljYXRpb25MYXVuY2g7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJs
aWMgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAg
W0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VP
dmVybGF5OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRf
dCBrZXlib2FyZDsgLy8gVGhpcyBoYXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1
ZworfQorCisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1
Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKK3sKKyAgICAgICBb
RmllbGRPZmZzZXQoMCldIHB1YmxpYyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0
YW5nbGU7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0Np
cmNsZV90IG1fQ2lyY2xlOworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgSG1kTWF0cml4MzRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBt
MDsgLy9mbG9hdFszXVs0XQorICAgICAgIHB1YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbTI7CisgICAgICAgcHVibGljIGZsb2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBt
NDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTU7CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAg
ICAgIHB1YmxpYyBmbG9hdCBtNzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVi
bGljIGZsb2F0IG05OworICAgICAgIHB1YmxpYyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZs
b2F0IG0xMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0
WzRdWzRdCisgICAgICAgcHVibGljIGZsb2F0IG0xOworICAgICAgIHB1YmxpYyBmbG9hdCBtMjsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbTM7CisgICAgICAgcHVibGljIGZsb2F0IG00OworICAgICAg
IHB1YmxpYyBmbG9hdCBtNTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTY7CisgICAgICAgcHVibGlj
IGZsb2F0IG03OworICAgICAgIHB1YmxpYyBmbG9hdCBtODsKKyAgICAgICBwdWJsaWMgZmxvYXQg
bTk7CisgICAgICAgcHVibGljIGZsb2F0IG0xMDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTExOwor
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTI7CisgICAgICAgcHVibGljIGZsb2F0IG0xMzsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgbTE0OworICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Cit9CitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190
Cit7CisgICAgICAgcHVibGljIGZsb2F0IHYwOyAvL2Zsb2F0WzNdCisgICAgICAgcHVibGljIGZs
b2F0IHYxOworICAgICAgIHB1YmxpYyBmbG9hdCB2MjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKK3sKKyAgICAgICBw
dWJsaWMgZmxvYXQgdjA7IC8vZmxvYXRbNF0KKyAgICAgICBwdWJsaWMgZmxvYXQgdjE7CisgICAg
ICAgcHVibGljIGZsb2F0IHYyOworICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90
Cit7CisgICAgICAgcHVibGljIGRvdWJsZSB2MDsgLy9kb3VibGVbM10KKyAgICAgICBwdWJsaWMg
ZG91YmxlIHYxOworICAgICAgIHB1YmxpYyBkb3VibGUgdjI7Cit9CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAg
ICAgcHVibGljIGZsb2F0IHYwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHYxOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEht
ZFF1YXRlcm5pb25fdAoreworICAgICAgIHB1YmxpYyBkb3VibGUgdzsKKyAgICAgICBwdWJsaWMg
ZG91YmxlIHg7CisgICAgICAgcHVibGljIGRvdWJsZSB5OworICAgICAgIHB1YmxpYyBkb3VibGUg
ejsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBIbWRDb2xvcl90Cit7CisgICAgICAgcHVibGljIGZsb2F0IHI7CisgICAgICAgcHVibGljIGZs
b2F0IGc7CisgICAgICAgcHVibGljIGZsb2F0IGI7CisgICAgICAgcHVibGljIGZsb2F0IGE7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1k
UXVhZF90Cit7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVj
dG9yM190WzRdCisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7CisgICAgICAg
cHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczI7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNf
dCB2Q29ybmVyczM7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRv
cExlZnQ7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlv
bkNvb3JkaW5hdGVzX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJd
CisgICAgICAgcHVibGljIGZsb2F0IHJmUmVkMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVl
bjA7IC8vZmxvYXRbMl0KKyAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7CisgICAgICAgcHVi
bGljIGZsb2F0IHJmQmx1ZTA7IC8vZmxvYXRbMl0KKyAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVl
MTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVj
dCBUZXh0dXJlX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCisg
ICAgICAgcHVibGljIEVUZXh0dXJlVHlwZSBlVHlwZTsKKyAgICAgICBwdWJsaWMgRUNvbG9yU3Bh
Y2UgZUNvbG9yU3BhY2U7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdAoreworICAgICAgIHB1YmxpYyBIbWRN
YXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgcHVibGljIEhtZFZl
Y3RvcjNfdCB2VmVsb2NpdHk7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZl
bG9jaXR5OworICAgICAgIHB1YmxpYyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0Owor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wg
YlBvc2VJc1ZhbGlkOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAg
ICAgcHVibGljIGJvb2wgYkRldmljZUlzQ29ubmVjdGVkOworfQorW1N0cnVjdExheW91dChMYXlv
dXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7Cisg
ICAgICAgcHVibGljIGZsb2F0IHVNaW47CisgICAgICAgcHVibGljIGZsb2F0IHZNaW47CisgICAg
ICAgcHVibGljIGZsb2F0IHVNYXg7CisgICAgICAgcHVibGljIGZsb2F0IHZNYXg7Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5U
ZXh0dXJlRGF0YV90Cit7CisgICAgICAgcHVibGljIHVsb25nIG1fbkltYWdlOworICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wRGV2aWNlOyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCisgICAgICAgcHVi
bGljIEludFB0ciBtX3BQaHlzaWNhbERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2Vf
VCAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFu
Y2VfVCAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVf
VCAqCisgICAgICAgcHVibGljIHVpbnQgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICBwdWJs
aWMgdWludCBtX25XaWR0aDsKKyAgICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7CisgICAgICAg
cHVibGljIHVpbnQgbV9uRm9ybWF0OworICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7
IC8vIHN0cnVjdCBJRDNEMTJSZXNvdXJjZSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BDb21t
YW5kUXVldWU7IC8vIHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHB1YmxpYyB1
aW50IG1fbk5vZGVNYXNrOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfQ29udHJvbGxlcl90Cit7CisgICAgICAgcHVibGljIHVp
bnQgYnV0dG9uOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJs
aWMgc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4OworICAg
ICAgIHB1YmxpYyBmbG9hdCB5OworICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Nj
cm9sbF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IHhkZWx0YTsKKyAgICAgICBwdWJsaWMgZmxv
YXQgeWRlbHRhOworICAgICAgIHB1YmxpYyB1aW50IHJlcGVhdENvdW50OworfQorW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQ
YWRNb3ZlX3QKK3sKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAg
IHB1YmxpYyBib29sIGJGaW5nZXJEb3duOworICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNG
aW5nZXJEb3duOworICAgICAgIHB1YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgcHVi
bGljIGZsb2F0IGZWYWx1ZVlGaXJzdDsKKyAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsK
KyAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWVJhdzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Cit7
CisgICAgICAgcHVibGljIHVsb25nIHVsVXNlclZhbHVlOworICAgICAgIHB1YmxpYyB1aW50IG5v
dGlmaWNhdGlvbklkOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBw
dWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgcHVibGljIHVpbnQgcGlk
OworICAgICAgIHB1YmxpYyB1aW50IG9sZFBpZDsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJGb3JjZWQ7Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QK
K3sKKyAgICAgICBwdWJsaWMgdWxvbmcgb3ZlcmxheUhhbmRsZTsKK30KK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Cit7
CisgICAgICAgcHVibGljIHVpbnQgc3RhdHVzU3RhdGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7Cisg
ICAgICAgcHVibGljIGJ5dGUgY05ld0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lu
cHV0MyxjTmV3SW5wdXQ0LGNOZXdJbnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OworICAgICAg
IHB1YmxpYyB1bG9uZyB1VXNlclZhbHVlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBwdWJsaWMg
ZmxvYXQgaXBkTWV0ZXJzOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICBwdWJsaWMgdWxv
bmcgbV9uUHJldmlvdXNVbml2ZXJzZTsKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVu
aXZlcnNlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZl
ZDA7CisgICAgICAgcHVibGljIHVsb25nIHJlc2VydmVkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5
b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF90Cit7CisgICAgICAgcHVibGljIHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRl
ZFplcm9Qb3NlUmVzZXRfdAoreworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSld
CisgICAgICAgcHVibGljIGJvb2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hv
dF90Cit7CisgICAgICAgcHVibGljIHVpbnQgaGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50IHR5
cGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1
Y3QgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBw
cm9ncmVzczsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGlj
IHN0cnVjdCBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICBwdWJsaWMgdWlu
dCBwaWQ7CisgICAgICAgcHVibGljIHVpbnQgdW5BcmdzSGFuZGxlOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0Nh
bWVyYVN1cmZhY2VfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOworICAg
ICAgIHB1YmxpYyB1aW50IG5WaXN1YWxNb2RlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAorewor
ICAgICAgIHB1YmxpYyB1aW50IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOworfQorW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJv
cGVydHlfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyBjb250YWluZXI7CisgICAgICAgcHVibGlj
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICBwdWJsaWMg
dWludCBldmVudFR5cGU7CisgICAgICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4Owor
ICAgICAgIHB1YmxpYyBmbG9hdCBldmVudEFnZVNlY29uZHM7CisgICAgICAgcHVibGljIFZSRXZl
bnRfRGF0YV90IGRhdGE7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIg
cFZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKKyAgICAgICBw
dWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAg
cHVibGljIGZsb2F0IHg7CisgICAgICAgcHVibGljIGZsb2F0IHk7Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVf
dAoreworICAgICAgIHB1YmxpYyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1YmxpYyB1bG9u
ZyB1bEJ1dHRvblByZXNzZWQ7CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsK
KyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJB
eGlzX3RbNV0KKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKKyAgICAg
ICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJsaWMgVlJDb250
cm9sbGVyQXhpc190IHJBeGlzMzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJB
eGlzNDsKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBh
dGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkCit7CisgICAgICAgcHVibGljIHVpbnQgdW5QYWNrZXROdW07CisgICAgICAgcHVibGlj
IHVsb25nIHVsQnV0dG9uUHJlc3NlZDsKKyAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3Vj
aGVkOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJv
bGxlckF4aXNfdFs1XQorICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOwor
ICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMyOworICAgICAgIHB1YmxpYyBW
UkNvbnRyb2xsZXJBeGlzX3QgckF4aXMzOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlz
X3QgckF4aXM0OworICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3Rh
dGVfdCB1bnBhY2tlZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0
TnVtID0gdGhpcy51blBhY2tldE51bTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25Q
cmVzc2VkID0gdGhpcy51bEJ1dHRvblByZXNzZWQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnVs
QnV0dG9uVG91Y2hlZCA9IHRoaXMudWxCdXR0b25Ub3VjaGVkOworICAgICAgICAgICAgICB1bnBh
Y2tlZC5yQXhpczAgPSB0aGlzLnJBeGlzMDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMx
ID0gdGhpcy5yQXhpczE7CisgICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4
aXMyOworICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKKyAgICAg
ICAgICAgICAgdW5wYWNrZWQuckF4aXM0ID0gdGhpcy5yQXhpczQ7CisgICAgICAgfQorfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0
b3JfT3ZlcmxheVNldHRpbmdzCit7CisgICAgICAgcHVibGljIHVpbnQgc2l6ZTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29s
IGFudGlhbGlhczsKKyAgICAgICBwdWJsaWMgZmxvYXQgc2NhbGU7CisgICAgICAgcHVibGljIGZs
b2F0IGRpc3RhbmNlOworICAgICAgIHB1YmxpYyBmbG9hdCBhbHBoYTsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgdU9mZnNldDsKKyAgICAgICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKKyAgICAgICBwdWJs
aWMgZmxvYXQgdVNjYWxlOworICAgICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7CisgICAgICAgcHVi
bGljIGZsb2F0IGdyaWREaXZzOworICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7CisgICAg
ICAgcHVibGljIGZsb2F0IGdyaWRTY2FsZTsKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0
cmFuc2Zvcm07Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1Ymxp
YyBzdHJ1Y3QgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgcHVibGlj
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICBwdWJsaWMgdWlu
dCBuV2lkdGg7CisgICAgICAgcHVibGljIHVpbnQgbkhlaWdodDsKKyAgICAgICBwdWJsaWMgdWlu
dCBuQnl0ZXNQZXJQaXhlbDsKKyAgICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKKyAg
ICAgICBwdWJsaWMgVHJhY2tlZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3Nl
OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IEFwcE92ZXJyaWRlS2V5c190Cit7CisgICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNv
bnN0IGNoYXIgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIg
KgorfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0
IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcKK3sKKyAgICAgICBwdWJsaWMgdWludCBtX25TaXplOwor
ICAgICAgIHB1YmxpYyB1aW50IG1fbkZyYW1lSW5kZXg7CisgICAgICAgcHVibGljIHVpbnQgbV9u
TnVtRnJhbWVQcmVzZW50czsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7
CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICBwdWJsaWMg
dWludCBtX25SZXByb2plY3Rpb25GbGFnczsKKyAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0
ZW1UaW1lSW5TZWNvbmRzOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7
CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7CisgICAgICAgcHVibGlj
IGZsb2F0IG1fZmxUb3RhbFJlbmRlckdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29t
cG9zaXRvclJlbmRlckdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJl
bmRlckNwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKKyAgICAgICBw
dWJsaWMgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1f
ZmxXYWl0Rm9yUHJlc2VudENwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJh
bWVNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOworICAg
ICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAgIHB1YmxpYyBmbG9h
dCBtX2ZsTmV3RnJhbWVSZWFkeU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRv
clVwZGF0ZVN0YXJ0TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRl
RW5kTXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsK
KyAgICAgICBwdWJsaWMgVHJhY2tlZERldmljZVBvc2VfdCBtX0htZFBvc2U7Cit9CitbU3RydWN0
TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9D
dW11bGF0aXZlU3RhdHMKK3sKKyAgICAgICBwdWJsaWMgdWludCBtX25QaWQ7CisgICAgICAgcHVi
bGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50czsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1E
cm9wcGVkRnJhbWVzOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVz
OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7CisgICAg
ICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJs
aWMgdWludCBtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMg
dWludCBtX25OdW1Mb2FkaW5nOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2Vu
dHNMb2FkaW5nOworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5n
OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKyAg
ICAgICBwdWJsaWMgdWludCBtX25OdW1UaW1lZE91dDsKKyAgICAgICBwdWJsaWMgdWludCBtX25O
dW1GcmFtZVByZXNlbnRzVGltZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBl
ZEZyYW1lc1RpbWVkT3V0OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJh
bWVzVGltZWRPdXQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QKK3sKKyAgICAgICBwdWJs
aWMgSG1kVmVjdG9yM190IHZTb3VyY2U7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGly
ZWN0aW9uOworICAgICAgIHB1YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
T3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3Iz
X3QgdlBvaW50OworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICBw
dWJsaWMgSG1kVmVjdG9yMl90IHZVVnM7CisgICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsK
K30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJ
bnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRv
cExlZnRYOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgcHVibGlj
IGZsb2F0IG1fZmxXaWR0aDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKK30KK1tT
dHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNl
Y3Rpb25NYXNrQ2lyY2xlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7Cisg
ICAgICAgcHVibGljIGZsb2F0IG1fZmxDZW50ZXJZOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2Zs
UmFkaXVzOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAgICAgIHB1
YmxpYyBFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZl
VHlwZTsKKyAgICAgICBwdWJsaWMgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9E
YXRhX3QgbV9QcmltaXRpdmU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAg
IHB1YmxpYyBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7Cisg
ICAgICAgcHVibGljIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAg
ICAgICBwdWJsaWMgdWludCB1UHJvcGVydGllczsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAoreworICAg
ICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvc2l0aW9uOworICAgICAgIHB1YmxpYyBIbWRWZWN0
b3IzX3Qgdk5vcm1hbDsKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zs
b2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKK30KK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9U
ZXh0dXJlTWFwX3QKK3sKKyAgICAgICBwdWJsaWMgY2hhciB1bldpZHRoOworICAgICAgIHB1Ymxp
YyBjaGFyIHVuSGVpZ2h0OworICAgICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7
IC8vIGNvbnN0IHVpbnQ4X3QgKgorfQorLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJk
cyBiaW5hcnkgY29tcGF0aWJpbGl0eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVy
TW9kZWxfVGV4dHVyZU1hcF90X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7
CisgICAgICAgcHVibGljIGNoYXIgdW5IZWlnaHQ7CisgICAgICAgcHVibGljIEludFB0ciBydWJU
ZXh0dXJlTWFwRGF0YTsgLy8gY29uc3QgdWludDhfdCAqCisgICAgICAgcHVibGljIHZvaWQgVW5w
YWNrKHJlZiBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgdW5wYWNrZWQpCisgICAgICAgeworICAg
ICAgICAgICAgICB1bnBhY2tlZC51bldpZHRoID0gdGhpcy51bldpZHRoOworICAgICAgICAgICAg
ICB1bnBhY2tlZC51bkhlaWdodCA9IHRoaXMudW5IZWlnaHQ7CisgICAgICAgICAgICAgIHVucGFj
a2VkLnJ1YlRleHR1cmVNYXBEYXRhID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKKyAgICAgICB9
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
UmVuZGVyTW9kZWxfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNv
bnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHB1YmxpYyB1aW50
IHVuVmVydGV4Q291bnQ7CisgICAgICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25z
dCB1aW50MTZfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworICAgICAg
IHB1YmxpYyBpbnQgZGlmZnVzZVRleHR1cmVJZDsKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZv
ciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3Ry
dWN0IFJlbmRlck1vZGVsX3RfUGFja2VkCit7CisgICAgICAgcHVibGljIEludFB0ciByVmVydGV4
RGF0YTsgLy8gY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCisgICAgICAg
cHVibGljIHVpbnQgdW5WZXJ0ZXhDb3VudDsKKyAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERh
dGE7IC8vIGNvbnN0IHVpbnQxNl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291
bnQ7CisgICAgICAgcHVibGljIGludCBkaWZmdXNlVGV4dHVyZUlkOworICAgICAgIHB1YmxpYyB2
b2lkIFVucGFjayhyZWYgUmVuZGVyTW9kZWxfdCB1bnBhY2tlZCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHVucGFja2VkLnJWZXJ0ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKKyAgICAgICAg
ICAgICAgdW5wYWNrZWQudW5WZXJ0ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKKyAgICAg
ICAgICAgICAgdW5wYWNrZWQuckluZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKKyAgICAgICAg
ICAgICAgdW5wYWNrZWQudW5UcmlhbmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7Cisg
ICAgICAgICAgICAgIHVucGFja2VkLmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0
dXJlSWQ7CisgICAgICAgfQorfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJT
Y3JvbGxXaGVlbFZpc2libGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QKK3sKKyAgICAgICBwdWJsaWMg
SW50UHRyIG1fcEltYWdlRGF0YTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIGludCBtX25XaWR0
aDsKKyAgICAgICBwdWJsaWMgaW50IG1fbkhlaWdodDsKKyAgICAgICBwdWJsaWMgaW50IG1fbkJ5
dGVzUGVyUGl4ZWw7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1
YmxpYyBzdHJ1Y3QgQ09wZW5WUkNvbnRleHQKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZS
U3lzdGVtOyAvLyBjbGFzcyB2cjo6SVZSU3lzdGVtICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1f
cFZSQ2hhcGVyb25lOyAvLyBjbGFzcyB2cjo6SVZSQ2hhcGVyb25lICoKKyAgICAgICBwdWJsaWMg
SW50UHRyIG1fcFZSQ2hhcGVyb25lU2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1
cCAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJ
VlJDb21wb3NpdG9yICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xh
c3MgdnI6OklWUk92ZXJsYXkgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7
IC8vIGNsYXNzIHZyOjpJVlJSZXNvdXJjZXMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJS
ZW5kZXJNb2RlbHM7IC8vIGNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIHB1Ymxp
YyBJbnRQdHIgbV9wVlJFeHRlbmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERp
c3BsYXkgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6
OklWUlNldHRpbmdzICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAv
LyBjbGFzcyB2cjo6SVZSQXBwbGljYXRpb25zICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZS
VHJhY2tlZENhbWVyYTsgLy8gY2xhc3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgorICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wVlJTY3JlZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3Rz
ICoKK30KKworcHVibGljIGNsYXNzIE9wZW5WUgoreworCisgICAgICAgcHVibGljIHN0YXRpYyB1
aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9u
VHlwZSBlQXBwbGljYXRpb25UeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9w
ZW5WUkludGVyb3AuSW5pdEludGVybmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsK
KyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgp
CisgICAgICAgeworICAgICAgICAgICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwo
KTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2Vu
dCgpOworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0
YWxsZWQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNS
dW50aW1lSW5zdGFsbGVkKCk7CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBzdHJp
bmcgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3Au
R2V0U3RyaW5nRm9ySG1kRXJyb3IoZXJyb3IpKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMg
c3RhdGljIEludFB0ciBHZXRHZW5lcmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJz
aW9uLCByZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBy
ZXR1cm4gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNp
b24sIHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wg
SXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCisgICAg
ICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNp
b25WYWxpZChwY2hJbnRlcmZhY2VWZXJzaW9uKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMg
c3RhdGljIHVpbnQgR2V0SW5pdFRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVy
biBPcGVuVlJJbnRlcm9wLkdldEluaXRUb2tlbigpOworICAgICAgIH0KKworICAgICAgIHB1Ymxp
YyBjb25zdCB1aW50IGtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OworICAg
ICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKKyAg
ICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7Cisg
ICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5
NDk2NzI5NDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4
SW52YWxpZCA9IDQyOTQ5NjcyOTU7CisgICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZh
bGlkUHJvcGVydHlDb250YWluZXIgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5J
bnZhbGlkUHJvcGVydHlUYWcgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9h
dFByb3BlcnR5VGFnID0gMTsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9w
ZXJ0eVRhZyA9IDI7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5
VGFnID0gMzsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0g
NDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1Owor
ICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7
CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAy
MTsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0g
MjI7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9
IDIzOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcg
PSAzMDsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZl
ZF9TdGFydCA9IDEwMDA7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVy
bmFsUmVzZXJ2ZWRfRW5kID0gMTAwMDA7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1h
eFByb3BlcnR5U3RyaW5nU2l6ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtf
dW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQgPSA1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9u
ZyBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50
IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBJVlJTeXN0ZW1fVmVyc2lvbiA9ICJJVlJTeXN0ZW1fMDE1IjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIElWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlz
cGxheV8wMDEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9W
ZXJzaW9uID0gIklWUlRyYWNrZWRDYW1lcmFfMDAzIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWlu
dCBrX3VuTWF4QXBwbGljYXRpb25LZXlMZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVh
dGVyIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9u
ID0gIklWUkFwcGxpY2F0aW9uc18wMDYiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZS
Q2hhcGVyb25lX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lXzAwMyI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVw
XzAwNSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24g
PSAiSVZSQ29tcG9zaXRvcl8wMjAiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92
ZXJsYXlNYXhLZXlMZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZS
T3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191
bk1heE92ZXJsYXlDb3VudCA9IDY0OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhP
dmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcgSVZST3ZlcmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIw
MTUgPSAiZ2RjMjAxNSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9s
bGVyX0NvbXBvbmVudF9CYXNlID0gImJhc2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwID0gInRpcCI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3Jp
cCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVu
dF9TdGF0dXMgPSAic3RhdHVzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRl
ck1vZGVsc19WZXJzaW9uID0gIklWUlJlbmRlck1vZGVsc18wMDUiOworICAgICAgIHB1YmxpYyBj
b25zdCB1aW50IGtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIElWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRp
b25zXzAwMiI7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVu
Z3RoID0gMTI4OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lv
biA9ICJJVlJTZXR0aW5nc18wMDIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
U3RlYW1WUl9TZWN0aW9uID0gInN0ZWFtdnIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfU3RlYW1WUl9SZXF1aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9
ICJmb3JjZWREcml2ZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9Gb3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1Bp
cGVfU3RyaW5nID0gImRlYnVnUHJvY2Vzc1BpcGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9FbmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlv
biI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1
Z1hfSW50MzIgPSAiZGlzcGxheURlYnVnWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0Fs
bEFwcHNfQm9vbCA9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBk
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9T
dHJpbmcgPSAiYmFja2dyb3VuZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX0JhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VE
b21lUHJvamVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X0JhY2tncm91bmRDYW1lcmFIZWlnaHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21l
UmFkaXVzX0Zsb2F0ID0gImJhY2tncm91bmREb21lUmFkaXVzIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0
cmluZyA9ICJwbGF5QXJlYUNvbG9yIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKKyAgICAgICBwdWJsaWMgY29u
c3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJh
Y3RpdmF0ZU11bHRpcGxlRHJpdmVycyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGly
ZWN0TW9kZUVkaWRWaWQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1W
Ul9EaXJlY3RNb2RlRWRpZFBpZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1
c2luZ1NwZWFrZXJzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJf
U3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZ
YXdPZmZzZXREZWdyZWVzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFt
VlJfQmFzZVN0YXRpb25Qb3dlck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFu
YWdlbWVudCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVy
S2lsbFByb2Nlc3Nlc19Cb29sID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQg
PSAicmVuZGVyVGFyZ2V0TXVsdGlwbGllciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX0FsbG93QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVw
cm9qZWN0aW9uIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxs
b3dSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25f
Qm9vbCA9ICJmb3JjZVJlcHJvamVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX0ZvcmNlRmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJh
ZFRyYWNraW5nIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVm
YXVsdE1pcnJvclZpZXdfSW50MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dN
aXJyb3JWaWV3IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWly
cm9yVmlld0dlb21ldHJ5X1N0cmluZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNo
ID0gInN0YXJ0TW9uaXRvckZyb21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfU3RlYW1WUl9TdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3Rh
cnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9TdGVhbVZSX1N0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFz
aGJvYXJkRnJvbUFwcExhdW5jaCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9T
dGVhbVZSX1N0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5
QXBwc0Zyb21EYXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3Rl
YW1WUl9FbmFibGVIb21lQXBwID0gImVuYWJsZUhvbWVBcHAiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5p
dGlhbERlZmF1bHRIb21lQXBwIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3Vu
ZEltYWdlVGltZVNlYyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZS
X1JldGFpbERlbW9fQm9vbCA9ICJyZXRhaWxEZW1vIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX1N0ZWFtVlJfSXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xp
Z2h0aG91c2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9E
aXNhYmxlSU1VX0Jvb2wgPSAiZGlzYWJsZWltdSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9MaWdodGhvdXNlX1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJp
Z3VhdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rp
c2FtYmlndWF0aW9uRGVidWdfSW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9J
bnQzMiA9ICJwcmltYXJ5YmFzZXN0YXRpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfTGlnaHRob3VzZV9EQkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9
ICJzZXJpYWxOdW1iZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9N
b2RlbE51bWJlcl9TdHJpbmcgPSAibW9kZWxOdW1iZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9XaW5kb3dYX0ludDMyID0gIndpbmRvd1giOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3
aW5kb3dXaWR0aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRv
d0hlaWdodF9JbnQzMiA9ICJ3aW5kb3dIZWlnaHQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfTnVsbF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5k
ZXJIZWlnaHQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRz
RnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zs
b2F0ID0gImRpc3BsYXlGcmVxdWVuY3kiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfVXNlckludGVyZmFjZV9TZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29s
ID0gIlN0YXR1c0Fsd2F5c09uVG9wIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1VzZXJJbnRlcmZhY2VfTWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3Rz
X0Jvb2wgPSAic2NyZWVuc2hvdHMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
VXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5v
dGlmaWNhdGlvbnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0
aW9uc19Eb05vdERpc3R1cmJfQm9vbCA9ICJEb05vdERpc3R1cmIiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0g
IlR1dG9yaWFsQ29tcGxldGlvbnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
S2V5Ym9hcmRfU2NhbGVYID0gIlNjYWxlWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9LZXlib2FyZF9TY2FsZVkgPSAiU2NhbGVZIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRS
aWdodFgiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0
WSA9ICJPZmZzZXRZIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJk
X1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfUGVyZl9TZWN0aW9uID0gInBlcmZjaGVjayI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAi
d2FybkluSE1EIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5
T25seU9uY2VfQm9vbCA9ICJ3YXJuT25seU9uY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0
X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfUGVyZl9UZXN0RGF0YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9u
Qm91bmRzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19TdHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9
ICJDb2xsaXNpb25Cb3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xs
aXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQ
bGF5U3BhY2VPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0g
IkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3Vu
ZHNDb2xvckdhbW1hQiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2Ft
ZXJhIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1l
cmFfQm9vbCA9ICJlbmFibGVDYW1lcmEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5E
YXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJs
ZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lv
bkJvdW5kcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxl
Q2FtZXJhRm9yUm9vbVZpZXdfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50
MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFHIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3Vu
ZHNDb2xvckdhbW1hQl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIg
PSAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfQ2FtZXJhX0JvdW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3Ro
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVk
aW8iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0Rl
dmljZV9TdHJpbmcgPSAib25QbGF5YmFja0RldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2Ui
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJv
ckRldmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2Zm
UGxheWJhY2tEZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9f
T2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7
CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2Vy
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0
X0Jvb2wgPSAicG93ZXJPZmZPbkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfUG93ZXJfVHVybk9mZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGlt
ZW91dCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVv
dXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1
dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJs
ZURhc2hib2FyZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRf
QXJjYWRlTW9kZV9Cb29sID0gImFyY2FkZU1vZGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJp
bmcga19wY2hfbW9kZWxza2luX1NlY3Rpb24gPSAibW9kZWxza2lucyI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVu
c2hvdHNfMDAxIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJz
aW9uID0gIklWUlJlc291cmNlc18wMDEiOworCisgICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7
IGdldDsgc2V0OyB9CisKKyAgICAgICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5U
YWJsZToiOworCisgICAgICAgY2xhc3MgQ09wZW5WUkNvbnRleHQKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHB1YmxpYyBDT3BlblZSQ29udGV4dCgpIHsgQ2xlYXIoKTsgfQorCisgICAgICAgICAg
ICAgIHB1YmxpYyB2b2lkIENsZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJTeXN0ZW0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFw
ZXJvbmUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9
IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJPdmVybGF5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAg
ICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZS
RXh0ZW5kZWREaXNwbGF5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGlu
Z3MgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxs
OworICAgICAgICAgICAgICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7CisgICAgICAg
ICAgICAgICAgICAgICBtX3BWUlRyYWNrZWRDYW1lcmEgPSBudWxsOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgdm9pZCBDaGVja0NsZWFyKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgaWYgKFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJs
aWMgQ1ZSU3lzdGVtIFZSU3lzdGVtKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVt
ID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJm
YWNlKEZuVGFibGVfUHJlZml4K0lWUlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBl
RXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fcFZSU3lzdGVtID0gbmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJD
aGFwZXJvbmUoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0Ns
ZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkK
KyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
ZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJs
ZV9QcmVmaXgrSVZSQ2hhcGVyb25lX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9
PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wVlJDaGFwZXJvbmUgPSBuZXcgQ1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOworICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25l
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNl
dHVwIFZSQ2hhcGVyb25lU2V0dXAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJv
bmVTZXR1cCA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJp
Y0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVy
b25lU2V0dXAocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAg
ICAgICAgICAgICAgIGlmIChtX3BWUkNvbXBvc2l0b3IgPT0gbnVsbCkKKyAgICAgICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5p
dEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2Ug
PSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29t
cG9zaXRvcl9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9y
Lk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRv
ciA9IG5ldyBDVlJDb21wb3NpdG9yKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAg
ICAgICAgICAgICAgICAgIGlmIChtX3BWUk92ZXJsYXkgPT0gbnVsbCkKKyAgICAgICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5p
dEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2Ug
PSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3Zl
cmxheV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5v
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5l
dyBDVlJPdmVybGF5KHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgIHB1YmxpYyBDVlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAobV9wVlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKKyAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZS
SW5pdEVycm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZh
Y2UgPSBPcGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZS
UmVuZGVyTW9kZWxzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0
RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5k
ZXJNb2RlbHMgPSBuZXcgQ1ZSUmVuZGVyTW9kZWxzKHBJbnRlcmZhY2UpOworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxz
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlz
cGxheSBWUkV4dGVuZGVkRGlzcGxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVu
ZGVkRGlzcGxheSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2Vu
ZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwg
cmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2Ug
IT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJF
eHRlbmRlZERpc3BsYXkocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7CisgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAg
ICAgICAgICAgICAgICAgIGlmIChtX3BWUlNldHRpbmdzID09IG51bGwpCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUklu
aXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNl
ID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNl
dHRpbmdzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3Iu
Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9
IG5ldyBDVlJTZXR0aW5ncyhwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3Ig
PSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcElu
dGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZp
eCtJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVW
UkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BW
UkFwcGxpY2F0aW9ucyA9IG5ldyBDVlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNh
dGlvbnM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVu
c2hvdHMgVlJTY3JlZW5zaG90cygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNo
b3RzID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50
ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3Ip
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5a
ZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50
ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
cHVibGljIENWUlRyYWNrZWRDYW1lcmEgVlJUcmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fcFZSVHJhY2tlZENhbWVyYSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3Iu
Tm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5W
UkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2Ft
ZXJhX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9u
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJh
ID0gbmV3IENWUlRyYWNrZWRDYW1lcmEocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOworICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0
ZW07CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOwor
ICAgICAgICAgICAgICBwcml2YXRlIENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0
dXA7CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7
CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7CisgICAgICAg
ICAgICAgIHByaXZhdGUgQ1ZSUmVuZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAg
ICAgICAgICBwcml2YXRlIENWUkV4dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsK
KyAgICAgICAgICAgICAgcHJpdmF0ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOworICAgICAg
ICAgICAgICBwcml2YXRlIENWUkFwcGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKKyAgICAg
ICAgICAgICAgcHJpdmF0ZSBDVlJTY3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOworICAgICAg
ICAgICAgICBwcml2YXRlIENWUlRyYWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOworICAg
ICAgIH07CisKKyAgICAgICBwcml2YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50
ZXJuYWxfTW9kdWxlQ29udGV4dCA9IG51bGw7CisgICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIGdl
dAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVy
bmFsX01vZHVsZUNvbnRleHQgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
T3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOworICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0Owor
ICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0
ZW0gU3lzdGVtIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJT
eXN0ZW0oKTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25l
IHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUo
KTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVT
ZXR1cCB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVy
b25lU2V0dXAoKTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBv
c2l0b3IgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBv
c2l0b3IoKTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBn
ZXQgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9
CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsg
fSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNw
bGF5IHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRl
ZERpc3BsYXkoKTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5n
cyB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3Mo
KTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25z
IHsgZ2V0IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlv
bnMoKTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90
cyB7IGdldCB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hv
dHMoKTsgfSB9CisgICAgICAgcHVibGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRD
YW1lcmEgeyBnZXQgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNr
ZWRDYW1lcmEoKTsgfSB9CisKKyAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRp
b24gb2YgdnJjbGllbnQuZGxsIGFuZCBpbml0aWFsaXplcyBpdCAqLworICAgICAgIHB1YmxpYyBz
dGF0aWMgQ1ZSU3lzdGVtIEluaXQocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNh
dGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0
aW9uX1NjZW5lKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5h
bChyZWYgcGVFcnJvciwgZUFwcGxpY2F0aW9uVHlwZSk7CisgICAgICAgICAgICAgIE9wZW5WUklu
dGVybmFsX01vZHVsZUNvbnRleHQuQ2xlYXIoKTsKKworICAgICAgICAgICAgICBpZiAocGVFcnJv
ciAhPSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxs
OworCisgICAgICAgICAgICAgIGJvb2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQoSVZSU3lzdGVtX1ZlcnNpb24pOworICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZh
Y2VWYWxpZCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25J
bnRlcm5hbCgpOworICAgICAgICAgICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5J
bml0X0ludGVyZmFjZU5vdEZvdW5kOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsK
KyAgICAgICB9CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZh
Y2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRl
ciB0aGlzIHBvaW50ICovCisgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIFNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisKK30K
KworCisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMv
b3BlbnZyX2FwaS5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZy
X2FwaS5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNzFlYzM3ZDExM2QxYWNkNmU4Y2M0MjAxNGFjYzYwZjdh
NDE4ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmpzb24KQEAgLTAsMCArMSwzNzg5IEBACit7InR5cGVkZWZzIjpbeyJ0eXBl
ZGVmIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCIsInR5cGUiOiAidm9pZCAqIn0KKyx7
InR5cGVkZWYiOiAidnI6OmdsSW50X3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6
ICJ2cjo6Z2xVSW50X3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlNo
YXJlZFRleHR1cmVIYW5kbGVfdCIsInR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2
cjo6VHJhY2tlZERldmljZUluZGV4X3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYi
OiAidnI6OlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7
InR5cGVkZWYiOiAidnI6OlByb3BlcnR5VHlwZVRhZ190IiwidHlwZSI6ICJ1aW50MzJfdCJ9Ciss
eyJ0eXBlZGVmIjogInZyOjpWUkV2ZW50X0RhdGFfdCIsInR5cGUiOiAidW5pb24gVlJFdmVudF9E
YXRhX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJDb250cm9sbGVyU3RhdGVfdCIsInR5cGUiOiAi
c3RydWN0IHZyOjpWUkNvbnRyb2xsZXJTdGF0ZTAwMV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZS
T3ZlcmxheUhhbmRsZV90IiwidHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpU
cmFja2VkQ2FtZXJhSGFuZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAi
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6
ICJ2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QiLCJ0eXBlIjog
InVuaW9uIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90In0KKyx7InR5
cGVkZWYiOiAidnI6OlZSQ29tcG9uZW50UHJvcGVydGllcyIsInR5cGUiOiAidWludDMyX3QifQor
LHsidHlwZWRlZiI6ICJ2cjo6VGV4dHVyZUlEX3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlw
ZWRlZiI6ICJ2cjo6VlJOb3RpZmljYXRpb25JZCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlw
ZWRlZiI6ICJ2cjo6SG1kRXJyb3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkluaXRFcnJvciJ9Ciss
eyJ0eXBlZGVmIjogInZyOjpIbWRfRXllIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJFeWUifQorLHsi
dHlwZWRlZiI6ICJ2cjo6Q29sb3JTcGFjZSIsInR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2Ui
fQorLHsidHlwZWRlZiI6ICJ2cjo6SG1kVHJhY2tpbmdSZXN1bHQiLCJ0eXBlIjogImVudW0gdnI6
OkVUcmFja2luZ1Jlc3VsdCJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkRGV2aWNlQ2xhc3Mi
LCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MifQorLHsidHlwZWRlZiI6ICJ2
cjo6VHJhY2tpbmdVbml2ZXJzZU9yaWdpbiIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4ifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZVByb3BlcnR5Iiwi
dHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZERldmljZVByb3BlcnR5In0KKyx7InR5cGVkZWYiOiAi
dnI6OlRyYWNrZWRQcm9wZXJ0eUVycm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZFByb3Bl
cnR5RXJyb3IifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJTdWJtaXRGbGFnc190IiwidHlwZSI6ICJl
bnVtIHZyOjpFVlJTdWJtaXRGbGFncyJ9CisseyJ0eXBlZGVmIjogInZyOjpWUlN0YXRlX3QiLCJ0
eXBlIjogImVudW0gdnI6OkVWUlN0YXRlIn0KKyx7InR5cGVkZWYiOiAidnI6OkNvbGxpc2lvbkJv
dW5kc1N0eWxlX3QiLCJ0eXBlIjogImVudW0gdnI6OkVDb2xsaXNpb25Cb3VuZHNTdHlsZSJ9Ciss
eyJ0eXBlZGVmIjogInZyOjpWUk92ZXJsYXlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZST3Zl
cmxheUVycm9yIn0KKyx7InR5cGVkZWYiOiAidnI6OlZSRmlybXdhcmVFcnJvciIsInR5cGUiOiAi
ZW51bSB2cjo6RVZSRmlybXdhcmVFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUkNvbXBvc2l0
b3JFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSQ29tcG9zaXRvckVycm9yIn0KKyx7InR5cGVk
ZWYiOiAidnI6OlZSU2NyZWVuc2hvdHNFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSU2NyZWVu
c2hvdEVycm9yIn0KK10sCisiZW51bXMiOlsKKyAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJF
eWUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFeWVfTGVmdCIsInZhbHVlIjogIjAi
fQorICAgICAgICx7Im5hbWUiOiAiRXllX1JpZ2h0IiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVGV4dHVyZVR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJUZXh0dXJlVHlwZV9EaXJlY3RYIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJUZXh0dXJlVHlwZV9PcGVuR0wiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjog
IlRleHR1cmVUeXBlX1Z1bGthbiIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVGV4
dHVyZVR5cGVfSU9TdXJmYWNlIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0
dXJlVHlwZV9EaXJlY3RYMTIiLCJ2YWx1ZSI6ICI0In0KK119CissICAgICAgIHsiZW51bW5hbWUi
OiAidnI6OkVDb2xvclNwYWNlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiQ29sb3JT
cGFjZV9BdXRvIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0dh
bW1hIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0xpbmVhciIs
InZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNraW5nUmVz
dWx0IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfVW5pbml0
aWFsaXplZCIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRf
Q2FsaWJyYXRpbmdfSW5Qcm9ncmVzcyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMTAxIn0K
KyAgICAgICAseyJuYW1lIjogIlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0siLCJ2YWx1ZSI6ICIy
MDAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdl
IiwidmFsdWUiOiAiMjAxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2Vk
RGV2aWNlQ2xhc3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFja2VkRGV2aWNl
Q2xhc3NfSW52YWxpZCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERl
dmljZUNsYXNzX0hNRCIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERl
dmljZUNsYXNzX0NvbnRyb2xsZXIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRy
YWNrZWREZXZpY2VDbGFzc19HZW5lcmljVHJhY2tlciIsInZhbHVlIjogIjMifQorICAgICAgICx7
Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlIiwidmFsdWUiOiAi
NCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX0lu
dmFsaWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVy
Um9sZV9MZWZ0SGFuZCIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZENv
bnRyb2xsZXJSb2xlX1JpZ2h0SGFuZCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4iLCJ2YWx1ZXMiOiBbIAorICAgICAg
IHsibmFtZSI6ICJUcmFja2luZ1VuaXZlcnNlU2VhdGVkIiwidmFsdWUiOiAiMCJ9CisgICAgICAg
LHsibmFtZSI6ICJUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmciLCJ2YWx1ZSI6ICIxIn0KKyAgICAg
ICAseyJuYW1lIjogIlRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQiLCJ2YWx1ZSI6
ICIyIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVy
dHkiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJQcm9wX0ludmFsaWQiLCJ2YWx1ZSI6
ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyIs
InZhbHVlIjogIjEwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlbE51bWJlcl9TdHJp
bmciLCJ2YWx1ZSI6ICIxMDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU2VyaWFsTnVtYmVy
X1N0cmluZyIsInZhbHVlIjogIjEwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9SZW5kZXJN
b2RlbE5hbWVfU3RyaW5nIiwidmFsdWUiOiAiMTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X1dpbGxEcmlmdEluWWF3X0Jvb2wiLCJ2YWx1ZSI6ICIxMDA0In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfTWFudWZhY3R1cmVyTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA1In0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAi
MTAwNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nIiwi
dmFsdWUiOiAiMTAwNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0FsbFdpcmVsZXNzRG9uZ2xl
RGVzY3JpcHRpb25zX1N0cmluZyIsInZhbHVlIjogIjEwMDgifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA5In0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sIiwidmFsdWUiOiAiMTAx
MCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCIsInZhbHVl
IjogIjEwMTEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFn
ZV9GbG9hdCIsInZhbHVlIjogIjEwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TdGF0dXNE
aXNwbGF5VHJhbnNmb3JtX01hdHJpeDM0IiwidmFsdWUiOiAiMTAxMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sIiwidmFsdWUiOiAiMTAxNCJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sIiwidmFs
dWUiOiAiMTAxNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0
ZVVSTF9TdHJpbmciLCJ2YWx1ZSI6ICIxMDE2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFy
ZHdhcmVSZXZpc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE3In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMTgifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9GUEdBVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE5In0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfVlJDVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIwIn0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjEi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjog
IjEwMjIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wi
LCJ2YWx1ZSI6ICIxMDIzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FuVW5pZnlDb29yZGlu
YXRlU3lzdGVtV2l0aEhtZF9Cb29sIiwidmFsdWUiOiAiMTAyNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0NvbnRhaW5zUHJveGltaXR5U2Vuc29yX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI1In0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wiLCJ2
YWx1ZSI6ICIxMDI2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQ2FuUG93ZXJPZmZf
Qm9vbCIsInZhbHVlIjogIjEwMjcifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9Q
cm9ncmFtbWluZ1RhcmdldF9TdHJpbmciLCJ2YWx1ZSI6ICIxMDI4In0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfRGV2aWNlQ2xhc3NfSW50MzIiLCJ2YWx1ZSI6ICIxMDI5In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfSGFzQ2FtZXJhX0Jvb2wiLCJ2YWx1ZSI6ICIxMDMwIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfRHJpdmVyVmVyc2lvbl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDMxIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sIiwidmFs
dWUiOiAiMTAzMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhS
ZXF1aXJlZF9Cb29sIiwidmFsdWUiOiAiMTAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1Bh
cmVudERyaXZlcl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDM0In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfUmVwb3J0c1RpbWVTaW5jZVZTeW5jX0Jvb2wiLCJ2YWx1ZSI6ICIyMDAwIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCIsInZhbHVlIjog
IjIwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0Iiwi
dmFsdWUiOiAiMjAwMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJJcGRNZXRlcnNfRmxv
YXQiLCJ2YWx1ZSI6ICIyMDAzIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ3VycmVudFVuaXZl
cnNlSWRfVWludDY0IiwidmFsdWUiOiAiMjAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1By
ZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQiLCJ2YWx1ZSI6ICIyMDA1In0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfRGlzcGxheUZpcm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDA2In0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfSXNPbkRlc2t0b3BfQm9vbCIsInZhbHVlIjogIjIwMDci
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyIiwidmFsdWUiOiAi
MjAwOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCIsInZh
bHVlIjogIjIwMDkifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9h
dCIsInZhbHVlIjogIjIwMTAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9FZGlkVmVuZG9ySURf
SW50MzIiLCJ2YWx1ZSI6ICIyMDExIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1D
SW1hZ2VMZWZ0X1N0cmluZyIsInZhbHVlIjogIjIwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9EaXNwbGF5TUNJbWFnZVJpZ2h0X1N0cmluZyIsInZhbHVlIjogIjIwMTMifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5R0NCbGFja0NsYW1wX0Zsb2F0IiwidmFsdWUiOiAiMjAxNCJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0VkaWRQcm9kdWN0SURfSW50MzIiLCJ2YWx1ZSI6ICIy
MDE1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJp
eDM0IiwidmFsdWUiOiAiMjAxNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1R5
cGVfSW50MzIiLCJ2YWx1ZSI6ICIyMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxh
eUdDT2Zmc2V0X0Zsb2F0IiwidmFsdWUiOiAiMjAxOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X0Rpc3BsYXlHQ1NjYWxlX0Zsb2F0IiwidmFsdWUiOiAiMjAxOSJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0Rpc3BsYXlHQ1ByZXNjYWxlX0Zsb2F0IiwidmFsdWUiOiAiMjAyMCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ0ltYWdlX1N0cmluZyIsInZhbHVlIjogIjIwMjEifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQiLCJ2YWx1ZSI6ICIy
MDIyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0IiwidmFs
dWUiOiAiMjAyMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxv
YXQiLCJ2YWx1ZSI6ICIyMDI0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTGVuc0NlbnRlclJp
Z2h0Vl9GbG9hdCIsInZhbHVlIjogIjIwMjUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2Vy
SGVhZFRvRXllRGVwdGhNZXRlcnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI2In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMjci
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9DYW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmlu
ZyIsInZhbHVlIjogIjIwMjgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5RlBHQVZl
cnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAyOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMwIn0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIy
MDMxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0
IiwidmFsdWUiOiAiMjAzMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVyYUNvbXBhdGli
aWxpdHlNb2RlX0ludDMyIiwidmFsdWUiOiAiMjAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9w
X1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAi
MjAzNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZW
aWV3RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjIwMzUifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9EaXNwbGF5U3VwcHJlc3NlZF9Cb29sIiwidmFsdWUiOiAiMjAzNiJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0Rpc3BsYXlBbGxvd05pZ2h0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjAzNyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIiLCJ2YWx1ZSI6
ICIyMDM4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50
MzIiLCJ2YWx1ZSI6ICIyMDM5In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1h
Z2VOdW1DaGFubmVsc19JbnQzMiIsInZhbHVlIjogIjIwNDAifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5IiwidmFsdWUiOiAiMjA0MSJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wiLCJ2YWx1ZSI6ICIyMDQy
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmciLCJ2YWx1
ZSI6ICIzMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU3VwcG9ydGVkQnV0dG9uc19VaW50
NjQiLCJ2YWx1ZSI6ICIzMDAxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczBUeXBlX0lu
dDMyIiwidmFsdWUiOiAiMzAwMiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMxVHlwZV9J
bnQzMiIsInZhbHVlIjogIjMwMDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMlR5cGVf
SW50MzIiLCJ2YWx1ZSI6ICIzMDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczNUeXBl
X0ludDMyIiwidmFsdWUiOiAiMzAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXM0VHlw
ZV9JbnQzMiIsInZhbHVlIjogIjMwMDYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250cm9s
bGVyUm9sZUhpbnRfSW50MzIiLCJ2YWx1ZSI6ICIzMDA3In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRmllbGRPZlZpZXdMZWZ0RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDAifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9GaWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCIsInZhbHVlIjog
IjQwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxv
YXQiLCJ2YWx1ZSI6ICI0MDAyIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdC
b3R0b21EZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiNDAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX1RyYWNraW5nUmFuZ2VNaW5pbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0Iiwi
dmFsdWUiOiAiNDAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX01vZGVMYWJlbF9TdHJpbmci
LCJ2YWx1ZSI6ICI0MDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSWNvblBhdGhOYW1lX1N0
cmluZyIsInZhbHVlIjogIjUwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlT2ZmX1N0cmluZyIsInZhbHVlIjogIjUwMDEifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyIsInZhbHVlIjogIjUwMDIi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nQWxl
cnRfU3RyaW5nIiwidmFsdWUiOiAiNTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VSZWFkeV9TdHJpbmciLCJ2YWx1ZSI6ICI1MDA0In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nIiwidmFsdWUi
OiAiNTAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RS
ZWFkeV9TdHJpbmciLCJ2YWx1ZSI6ICI1MDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFt
ZWRJY29uUGF0aERldmljZVN0YW5kYnlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNyJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmciLCJ2YWx1
ZSI6ICI1MDA4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmlu
YXJ5X1N0YXJ0IiwidmFsdWUiOiAiNTEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3Bs
YXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQiLCJ2YWx1ZSI6ICI1MTUwIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5nIiwidmFsdWUiOiAiNjAwMCJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX0luc3RhbGxQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDEifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCIsInZhbHVl
IjogIjEwMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2
ZWRfRW5kIiwidmFsdWUiOiAiMTA5OTkifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6
RVRyYWNrZWRQcm9wZXJ0eUVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJh
Y2tlZFByb3BfU3VjY2VzcyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfV3JvbmdEYXRhVHlwZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJh
Y2tlZFByb3BfV3JvbmdEZXZpY2VDbGFzcyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUi
OiAiVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJu
YW1lIjogIlRyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjQifQorICAgICAg
ICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfSW52YWxpZERldmljZSIsInZhbHVlIjogIjUifQorICAg
ICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyIiwidmFsdWUi
OiAiNiJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlE
ZXZpY2UiLCJ2YWx1ZSI6ICI3In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1N0cmlu
Z0V4Y2VlZHNNYXhpbXVtTGVuZ3RoIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJU
cmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1l
IjogIlRyYWNrZWRQcm9wX1Blcm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMCJ9CisgICAgICAg
LHsibmFtZSI6ICJUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uIiwidmFsdWUiOiAiMTEifQor
XX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU3VibWl0RmxhZ3MiLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJTdWJtaXRfRGVmYXVsdCIsInZhbHVlIjogIjAifQorICAgICAg
ICx7Im5hbWUiOiAiU3VibWl0X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQiLCJ2YWx1ZSI6
ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlN1Ym1pdF9HbFJlbmRlckJ1ZmZlciIsInZhbHVlIjog
IjIifQorICAgICAgICx7Im5hbWUiOiAiU3VibWl0X1Jlc2VydmVkIiwidmFsdWUiOiAiNCJ9Citd
fQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTdGF0ZSIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogIlZSU3RhdGVfVW5kZWZpbmVkIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7
Im5hbWUiOiAiVlJTdGF0ZV9PZmYiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
U3RhdGVfU2VhcmNoaW5nIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRl
X1NlYXJjaGluZ19BbGVydCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0
ZV9SZWFkeSIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9B
bGVydCIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9Ob3RSZWFkeSIs
InZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TdGFuZGJ5IiwidmFsdWUi
OiAiNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyIsInZhbHVl
IjogIjcifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXZlbnRUeXBlIiwidmFs
dWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJFdmVudF9Ob25lIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQiLCJ2YWx1ZSI6
ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0
ZWQiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2
aWNlVXBkYXRlZCIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1Ry
YWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkIiwidmFsdWUiOiAiMTAzIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIiwi
dmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfSXBkQ2hhbmdlZCIsInZh
bHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUi
LCJ2YWx1ZSI6ICIxMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9MZWF2ZVN0YW5kYnlN
b2RlIiwidmFsdWUiOiAiMTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERl
dmljZVJvbGVDaGFuZ2VkIiwidmFsdWUiOiAiMTA4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfV2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICIxMDkifQorICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CdXR0b25QcmVzcyIsInZhbHVlIjogIjIwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0J1dHRvblVucHJlc3MiLCJ2YWx1ZSI6ICIyMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CdXR0b25Ub3VjaCIsInZhbHVlIjogIjIwMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0J1dHRvblVudG91Y2giLCJ2YWx1ZSI6ICIyMDMifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb3VzZU1vdmUiLCJ2YWx1ZSI6ICIzMDAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24iLCJ2YWx1ZSI6ICIzMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb3VzZUJ1dHRvblVwIiwidmFsdWUiOiAiMzAyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRm9jdXNFbnRlciIsInZhbHVlIjogIjMwMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0ZvY3VzTGVhdmUiLCJ2YWx1ZSI6ICIzMDQifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JvbGwiLCJ2YWx1ZSI6ICIzMDUifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9Ub3VjaFBhZE1vdmUiLCJ2YWx1ZSI6ICIzMDYifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkIiwidmFsdWUiOiAiMzA3In0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkIiwidmFsdWUiOiAiNDAw
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkIiwidmFsdWUi
OiAiNDAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0xvc3QiLCJ2YWx1
ZSI6ICI0MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkIiwi
dmFsdWUiOiAiNDAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBsaWNhdGlv
bkNoYW5nZWQiLCJ2YWx1ZSI6ICI0MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY2Vu
ZUZvY3VzQ2hhbmdlZCIsInZhbHVlIjogIjQwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X0lucHV0Rm9jdXNDaGFuZ2VkIiwidmFsdWUiOiAiNDA2In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQiLCJ2YWx1ZSI6
ICI0MDcifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzIiwidmFs
dWUiOiAiNDEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyIs
InZhbHVlIjogIjQxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlTaG93biIs
InZhbHVlIjogIjUwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlIaWRkZW4i
LCJ2YWx1ZSI6ICI1MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRBY3Rp
dmF0ZWQiLCJ2YWx1ZSI6ICI1MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9h
cmREZWFjdGl2YXRlZCIsInZhbHVlIjogIjUwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQiLCJ2YWx1ZSI6ICI1MDQifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICI1MDUifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9SZXNldERhc2hib2FyZCIsInZhbHVlIjogIjUwNiJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1JlbmRlclRvYXN0IiwidmFsdWUiOiAiNTA3In0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfSW1hZ2VMb2FkZWQiLCJ2YWx1ZSI6ICI1MDgifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9TaG93S2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MDkifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9IaWRlS2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MTAifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNTEx
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QiLCJ2
YWx1ZSI6ICI1MTIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4
dHVyZUNoYW5nZWQiLCJ2YWx1ZSI6ICI1MTMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9E
YXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24iLCJ2YWx1ZSI6ICI1MTQifQorICAgICAgICx7Im5hbWUi
OiAiVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwIiwidmFsdWUiOiAiNTE1In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCIsInZhbHVlIjogIjUxNiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0ltYWdlRmFpbGVkIiwidmFsdWUiOiAiNTE3In0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQiLCJ2YWx1
ZSI6ICI1MTgifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCIs
InZhbHVlIjogIjUyMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RUYWtl
biIsInZhbHVlIjogIjUyMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RG
YWlsZWQiLCJ2YWx1ZSI6ICI1MjIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TdWJtaXRT
Y3JlZW5zaG90VG9EYXNoYm9hcmQiLCJ2YWx1ZSI6ICI1MjMifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCIsInZhbHVlIjogIjUyNCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkIiwi
dmFsdWUiOiAiNTI1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX1No
b3duIiwidmFsdWUiOiAiNjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0
aW9uX0hpZGRlbiIsInZhbHVlIjogIjYwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05v
dGlmaWNhdGlvbl9CZWdpbkludGVyYWN0aW9uIiwidmFsdWUiOiAiNjAyIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3llZCIsInZhbHVlIjogIjYwMyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1F1aXQiLCJ2YWx1ZSI6ICI3MDAifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9Qcm9jZXNzUXVpdCIsInZhbHVlIjogIjcwMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQiLCJ2YWx1ZSI6ICI3MDIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkIiwidmFsdWUiOiAiNzAz
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCIsInZhbHVl
IjogIjcwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFu
Z2VkIiwidmFsdWUiOiAiODAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25l
VW5pdmVyc2VIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAxIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAyIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVl
IjogIjgwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQi
LCJ2YWx1ZSI6ICI4MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BdWRpb1NldHRpbmdz
SGF2ZUNoYW5nZWQiLCJ2YWx1ZSI6ICI4MjAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9C
YWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTAifQorICAgICAgICx7Im5h
bWUiOiAiVlJFdmVudF9DYW1lcmFTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODUxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQi
LCJ2YWx1ZSI6ICI4NTIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb2RlbFNraW5TZXR0
aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU0In0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAi
ODU1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU3RhdHVzVXBkYXRlIiwidmFsdWUiOiAi
OTAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQiLCJ2YWx1ZSI6
ICIxMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVk
IiwidmFsdWUiOiAiMTEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBk
YXRlRmluaXNoZWQiLCJ2YWx1ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
S2V5Ym9hcmRDbG9zZWQiLCJ2YWx1ZSI6ICIxMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfS2V5Ym9hcmRDaGFySW5wdXQiLCJ2YWx1ZSI6ICIxMjAxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfS2V5Ym9hcmREb25lIiwidmFsdWUiOiAiMTIwMiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQiLCJ2YWx1ZSI6ICIxMzAwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCIs
InZhbHVlIjogIjEzMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNhdGlvblRy
YW5zaXRpb25OZXdBcHBTdGFydGVkIiwidmFsdWUiOiAiMTMwMiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMzAzIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQiLCJ2YWx1ZSI6ICIx
MzA0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3
QXBwTGF1bmNoQ29tcGxldGUiLCJ2YWx1ZSI6ICIxMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biIsInZhbHVlIjogIjE0MDAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiIsInZh
bHVlIjogIjE0MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0NoYXBl
cm9uZUJvdW5kc1Nob3duIiwidmFsdWUiOiAiMTQxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuIiwidmFsdWUiOiAiMTQxMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSIs
InZhbHVlIjogIjE1MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1N0b3BWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAyIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRlb1N0cmVhbSIs
InZhbHVlIjogIjE1MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJh
X0VkaXRpbmdTdXJmYWNlIiwidmFsdWUiOiAiMTU1MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1BlcmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlIiwidmFsdWUiOiAiMTYwMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSIsInZh
bHVlIjogIjE2MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRlc3Rf
RmlkZWxpdHlMZXZlbCIsInZhbHVlIjogIjE2MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVu
dF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQiLCJ2YWx1ZSI6ICIxNjUwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0Vu
ZCIsInZhbHVlIjogIjE5OTk5In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVEZXZp
Y2VBY3Rpdml0eUxldmVsIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vbmtub3duIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAi
a19FRGV2aWNlQWN0aXZpdHlMZXZlbF9JZGxlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiIsInZhbHVlIjogIjEi
fQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rp
b25fVGltZW91dCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9TdGFuZGJ5IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1l
IjogInZyOjpFVlJCdXR0b25JZCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUJ1
dHRvbl9TeXN0ZW0iLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9B
cHBsaWNhdGlvbk1lbnUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRv
bl9HcmlwIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9M
ZWZ0IiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9VcCIs
InZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfUmlnaHQiLCJ2
YWx1ZSI6ICI1In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX0Rvd24iLCJ2YWx1
ZSI6ICI2In0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BIiwidmFsdWUiOiAiNyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fUHJveGltaXR5U2Vuc29yIiwidmFsdWUiOiAiMzEi
fQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXMwIiwidmFsdWUiOiAiMzIifQorICAg
ICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXMxIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7
Im5hbWUiOiAia19FQnV0dG9uX0F4aXMyIiwidmFsdWUiOiAiMzQifQorICAgICAgICx7Im5hbWUi
OiAia19FQnV0dG9uX0F4aXMzIiwidmFsdWUiOiAiMzUifQorICAgICAgICx7Im5hbWUiOiAia19F
QnV0dG9uX0F4aXM0IiwidmFsdWUiOiAiMzYifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9u
X1N0ZWFtVlJfVG91Y2hwYWQiLCJ2YWx1ZSI6ICIzMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VC
dXR0b25fU3RlYW1WUl9UcmlnZ2VyIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAi
a19FQnV0dG9uX0Rhc2hib2FyZF9CYWNrIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6
ICJrX0VCdXR0b25fTWF4IiwidmFsdWUiOiAiNjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RVZSTW91c2VCdXR0b24iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk1v
dXNlQnV0dG9uX0xlZnQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VC
dXR0b25fUmlnaHQiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0
b25fTWlkZGxlIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
SGlkZGVuQXJlYU1lc2hUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19lSGlk
ZGVuQXJlYU1lc2hfU3RhbmRhcmQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtf
ZUhpZGRlbkFyZWFNZXNoX0ludmVyc2UiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjog
ImtfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFt
ZSI6ICJrX2VIaWRkZW5BcmVhTWVzaF9NYXgiLCJ2YWx1ZSI6ICIzIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkNvbnRyb2xsZXJBeGlzVHlwZSIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogImtfZUNvbnRyb2xsZXJBeGlzX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAg
ICAseyJuYW1lIjogImtfZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJrX2VDb250cm9sbGVyQXhpc19Kb3lzdGljayIsInZhbHVlIjogIjIi
fQorICAgICAgICx7Im5hbWUiOiAia19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciIsInZhbHVlIjog
IjMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQ29udHJvbGxlckV2ZW50T3V0
cHV0VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91
dHB1dF9PU0V2ZW50cyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29udHJvbGxl
ckV2ZW50T3V0cHV0X1ZSRXZlbnRzIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1u
YW1lIjogInZyOjpFQ29sbGlzaW9uQm91bmRzU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0JFR0lOTkVSIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVB
UkVTIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NU
WUxFX0FEVkFOQ0VEIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05f
Qk9VTkRTX1NUWUxFX05PTkUiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIkNPTExJ
U0lPTl9CT1VORFNfU1RZTEVfQ09VTlQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51
bW5hbWUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIlZST3ZlcmxheUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX1Vua25vd25PdmVybGF5IiwidmFsdWUiOiAiMTAifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZEhhbmRsZSIsInZhbHVlIjogIjExIn0KKyAg
ICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6
ICIxMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNl
ZWRlZCIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1dy
b25nVmlzaWJpbGl0eVR5cGUiLCJ2YWx1ZSI6ICIxNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92
ZXJsYXlFcnJvcl9LZXlUb29Mb25nIiwidmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5RXJyb3JfTmFtZVRvb0xvbmciLCJ2YWx1ZSI6ICIxNiJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUk92ZXJsYXlFcnJvcl9LZXlJblVzZSIsInZhbHVlIjogIjE3In0KKyAgICAgICAseyJu
YW1lIjogIlZST3ZlcmxheUVycm9yX1dyb25nVHJhbnNmb3JtVHlwZSIsInZhbHVlIjogIjE4In0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlIiwi
dmFsdWUiOiAiMTkifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZFBh
cmFtZXRlciIsInZhbHVlIjogIjIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X1RodW1ibmFpbENhbnRCZURlc3Ryb3llZCIsInZhbHVlIjogIjIxIn0KKyAgICAgICAseyJuYW1l
IjogIlZST3ZlcmxheUVycm9yX0FycmF5VG9vU21hbGwiLCJ2YWx1ZSI6ICIyMiJ9CisgICAgICAg
LHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMjMifQor
ICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6
ICIyNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxl
IiwidmFsdWUiOiAiMjUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5Ym9h
cmRBbHJlYWR5SW5Vc2UiLCJ2YWx1ZSI6ICIyNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJs
YXlFcnJvcl9Ob05laWdoYm9yIiwidmFsdWUiOiAiMjcifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVzIiwidmFsdWUiOiAiMjkifQorICAgICAg
ICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSIsInZhbHVlIjogIjMw
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHlwZSIsInZh
bHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSQXBwbGljYXRpb25fT3RoZXIiLCJ2YWx1ZSI6
ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25fU2NlbmUiLCJ2YWx1ZSI6ICIx
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25fT3ZlcmxheSIsInZhbHVlIjogIjIi
fQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kIiwidmFsdWUiOiAi
MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX1V0aWxpdHkiLCJ2YWx1ZSI6ICI0
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25fVlJNb25pdG9yIiwidmFsdWUiOiAi
NSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2ciLCJ2YWx1
ZSI6ICI2In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25fTWF4IiwidmFsdWUiOiAi
NyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJGaXJtd2FyZUVycm9yIiwidmFs
dWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX05vbmUiLCJ2YWx1ZSI6
ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRmlybXdhcmVFcnJvcl9TdWNjZXNzIiwidmFsdWUi
OiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfRmFpbCIsInZhbHVlIjog
IjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3Ii
LCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX09LIiwi
dmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFs
aWROb3RpZmljYXRpb25JZCIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5v
dGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCIsInZhbHVlIjogIjEwMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxl
IiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSTm90aWZpY2F0aW9uRXJyb3Jf
U3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMiLCJ2YWx1ZSI6ICIxMDMifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSSW5pdEVycm9yIiwidmFsdWVzIjogWyAKKyAgICAg
ICB7Im5hbWUiOiAiVlJJbml0RXJyb3JfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5h
bWUiOiAiVlJJbml0RXJyb3JfVW5rbm93biIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCIsInZhbHVlIjogIjEwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQi
LCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkNs
aWVudERMTE5vdEZvdW5kIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfRmlsZU5vdEZvdW5kIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kIiwidmFsdWUiOiAiMTA0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQiLCJ2YWx1
ZSI6ICIxMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlIiwidmFsdWUiOiAiMTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCIsInZhbHVlIjogIjEwOCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkIiwidmFsdWUi
OiAiMTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5
Tm90Rm91bmQiLCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
SW5pdF9Ob0NvbmZpZ1BhdGgiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGgiLCJ2YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSIsInZhbHVlIjogIjEx
MyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVk
IiwidmFsdWUiOiAiMTE0In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUmV0
cnkiLCJ2YWx1ZSI6ICIxMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9J
bml0Q2FuY2VsZWRCeVVzZXIiLCJ2YWx1ZSI6ICIxMTYifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nIiwidmFsdWUiOiAiMTE3In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkIiwidmFsdWUi
OiAiMTE4In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3du
IiwidmFsdWUiOiAiMTE5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVG9v
TWFueU9iamVjdHMiLCJ2YWx1ZSI6ICIxMjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHAiLCJ2YWx1ZSI6ICIxMjEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvciIs
InZhbHVlIjogIjEyMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X05vdEF2
YWlsYWJsZVRvVXRpbGl0eUFwcHMiLCJ2YWx1ZSI6ICIxMjMifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSW5pdF9JbnRlcm5hbCIsInZhbHVlIjogIjEyNCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lIiwidmFsdWUiOiAiMTI1In0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZh
aWxlZCIsInZhbHVlIjogIjEyNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0
X1ZSTW9uaXRvck5vdEZvdW5kIiwidmFsdWUiOiAiMTI3In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCIsInZhbHVlIjogIjEyOCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBw
b3J0ZWQiLCJ2YWx1ZSI6ICIxMjkifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5p
dF9JbnZhbGlkQXBwbGljYXRpb25UeXBlIiwidmFsdWUiOiAiMTMwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMiLCJ2YWx1ZSI6
ICIxMzEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2Fi
bGVkSW5TZXR0aW5ncyIsInZhbHVlIjogIjEzMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRF
cnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMzMifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQiLCJ2YWx1
ZSI6ICIxMzQifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCIs
InZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfVW5r
bm93biIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2
ZXJfSG1kVW5rbm93biIsInZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRF
cnJvcl9Ecml2ZXJfTm90TG9hZGVkIiwidmFsdWUiOiAiMjAzIn0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0RyaXZlcl9SdW50aW1lT3V0T2ZEYXRlIiwidmFsdWUiOiAiMjA0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSIsInZhbHVlIjogIjIw
NSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCIs
InZhbHVlIjogIjIwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfQ2Fs
aWJyYXRpb25JbnZhbGlkIiwidmFsdWUiOiAiMjA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQiLCJ2YWx1ZSI6ICIyMDgifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtu
b3duIiwidmFsdWUiOiAiMjA5In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZl
cl9IbWREcml2ZXJJZE91dE9mQm91bmRzIiwidmFsdWUiOiAiMjExIn0KKyAgICAgICAseyJuYW1l
IjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQiLCJ2YWx1ZSI6ICIyMTIi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQiLCJ2
YWx1ZSI6ICIzMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RG
YWlsZWQiLCJ2YWx1ZSI6ICIzMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBD
X1NoYXJlZFN0YXRlSW5pdEZhaWxlZCIsInZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDMifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCIsInZhbHVl
IjogIjMwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfRmFpbGVkIiwidmFs
dWUiOiAiMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9y
Q29ubmVjdEZhaWxlZCIsInZhbHVlIjogIjMwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRF
cnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2UiLCJ2YWx1ZSI6ICIzMDci
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11
bHRpcGxlQXR0ZW1wdHMiLCJ2YWx1ZSI6ICIzMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQiLCJ2YWx1ZSI6ICI0MDAifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQiLCJ2YWx1ZSI6
ICI0MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2Fy
ZVJlcXVpcmVzVXBkYXRlIiwidmFsdWUiOiAiNDAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0MDMifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWls
ZWQiLCJ2YWx1ZSI6ICI0MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lIiwidmFsdWUiOiAiMTAwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9D
YW50T3BlbkRldmljZSIsInZhbHVlIjogIjExMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQi
LCJ2YWx1ZSI6ICIxMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnIiwidmFsdWUiOiAiMTEwMyJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29C
aWciLCJ2YWx1ZSI6ICIxMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRv
clNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsIiwidmFsdWUiOiAiMTEwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVU
b0luaXRaTGliIiwidmFsdWUiOiAiMTEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJv
cl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiIsInZhbHVl
IjogIjExMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCIsInZhbHVlIjogIjExMDgifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9HZXRVc2VyRGF0YVN0YXJ0IiwidmFsdWUiOiAiMTEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4
dCIsInZhbHVlIjogIjExMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9y
U3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UiLCJ2YWx1ZSI6ICIxMTExIn0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1Vz
ZXJEYXRhRXJyb3IiLCJ2YWx1ZSI6ICIxMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrIiwidmFs
dWUiOiAiMTExMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUlu
c3RhbGxhdGlvbk5vdEZvdW5kIiwidmFsdWUiOiAiMjAwMCJ9CitdfQorLCAgICAgICB7ImVudW1u
YW1lIjogInZyOjpFVlJTY3JlZW5zaG90VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIlZSU2NyZWVuc2hvdFR5cGVfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUi
OiAiVlJTY3JlZW5zaG90VHlwZV9Nb25vIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUi
OiAiVlJTY3JlZW5zaG90VHlwZV9DdWJlbWFwIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUlNjcmVlbnNob3RUeXBlX01vbm9QYW5vcmFtYSIsInZhbHVlIjogIjQifQorICAgICAg
ICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSIsInZhbHVlIjogIjUi
fQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWVzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVy
dHlGaWxlbmFtZXNfUHJldmlldyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlIiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsInZhbHVlcyI6IFsgCisg
ICAgICAgeyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCIs
InZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9J
bnZhbGlkSGFuZGxlIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tl
ZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUhlYWRlclZlcnNpb24iLCJ2YWx1ZSI6ICIxMDIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzIiwidmFs
dWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0Zh
aWx1cmUiLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJh
RXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSIsInZhbHVlIjogIjEwNSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlIiwidmFs
dWUiOiAiMTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1l
QnVmZmVyaW5nRmFpbHVyZSIsInZhbHVlIjogIjEwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRy
YWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUiLCJ2YWx1ZSI6ICIxMDgifQorICAg
ICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkIiwi
dmFsdWUiOiAiMTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0lu
dmFsaWRTaGFyZWRUZXh0dXJlSGFuZGxlIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQiLCJ2YWx1ZSI6
ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4
dHVyZUZhaWx1cmUiLCJ2YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfTm9GcmFtZUF2YWlsYWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQiLCJ2YWx1ZSI6ICIx
MTQifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1l
QnVmZmVyU2l6ZSIsInZhbHVlIjogIjExNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX0Rpc3RvcnRlZCIsInZhbHVlIjogIjAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIiwidmFs
dWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4
aW11bVVuZGlzdG9ydGVkIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJNQVhfQ0FN
RVJBX0ZSQU1FX1RZUEVTIiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjog
InZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25FcnJvcl9BcHBLZXlBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0IiwidmFsdWUi
OiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0
aW9uIiwidmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9JbnZhbGlkSW5kZXgiLCJ2YWx1ZSI6ICIxMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvbkVycm9yX1Vua25vd25BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMTA1In0K
KyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlS
dW5uaW5nIiwidmFsdWUiOiAiMTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25F
cnJvcl9JbnZhbGlkTWFuaWZlc3QiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRBcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwOCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkIiwidmFsdWUi
OiAiMTA5In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlv
bkFscmVhZHlTdGFydGluZyIsInZhbHVlIjogIjExMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFw
cGxpY2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyIsInZhbHVlIjogIjExMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25RdWl0dGluZyIsInZh
bHVlIjogIjExMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVHJhbnNp
dGlvbkFib3J0ZWQiLCJ2YWx1ZSI6ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNh
dGlvbkVycm9yX0lzVGVtcGxhdGUiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7Im5hbWUiOiAi
VlJBcHBsaWNhdGlvbkVycm9yX0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMjAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCIsInZhbHVlIjog
IjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93blByb3Bl
cnR5IiwidmFsdWUiOiAiMjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9JbnZhbGlkUGFyYW1ldGVyIiwidmFsdWUiOiAiMjAzIn0KK119CissICAgICAgIHsiZW51bW5h
bWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uUHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIwIn0K
KyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hUeXBlX1N0cmlu
ZyIsInZhbHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyIsInZhbHVlIjogIjEyIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyIsInZhbHVlIjogIjEz
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Bcmd1bWVudHNfU3Ry
aW5nIiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3Bl
cnR5X1VSTF9TdHJpbmciLCJ2YWx1ZSI6ICIxNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfRGVzY3JpcHRpb25fU3RyaW5nIiwidmFsdWUiOiAiNTAifQorICAgICAg
ICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nIiwidmFsdWUi
OiAiNTEifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0
aF9TdHJpbmciLCJ2YWx1ZSI6ICI1MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
UHJvcGVydHlfU291cmNlX1N0cmluZyIsInZhbHVlIjogIjUzIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbCIsInZhbHVlIjog
IjYwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRl
X0Jvb2wiLCJ2YWx1ZSI6ICI2MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNJbnN0YW5jZWRfQm9vbCIsInZhbHVlIjogIjYyIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0ludGVybmFsX0Jvb2wiLCJ2YWx1ZSI6ICI2MyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWlu
dDY0IiwidmFsdWUiOiAiNzAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJW
UkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCIsInZhbHVlIjogIjEw
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JF
eHRlcm5hbExhdW5jaCIsInZhbHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uX05ld0FwcExhdW5jaGVkIiwidmFsdWUiOiAiMjAifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0siLCJ2YWx1
ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2Fy
bmluZyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJh
dGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRpb25NYXlIYXZlTW92ZWQiLCJ2YWx1ZSI6ICIxMDEi
fQorICAgICAgICx7Im5hbWUiOiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jh
c2VTdGF0aW9uUmVtb3ZlZCIsInZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFw
ZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCIsInZhbHVl
IjogIjEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vy
cm9yIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0
aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25VbmluaXRpYWxpemVkIiwidmFsdWUiOiAiMjAxIn0K
KyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0
YXRpb25Db25mbGljdCIsInZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJv
bmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX1BsYXlBcmVhSW52YWxpZCIsInZhbHVlIjogIjIwMyJ9
CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxp
c2lvbkJvdW5kc0ludmFsaWQiLCJ2YWx1ZSI6ICIyMDQifQorXX0KKywgICAgICAgeyJlbnVtbmFt
ZSI6ICJ2cjo6RUNoYXBlcm9uZUNvbmZpZ0ZpbGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFt
ZSI6ICJFQ2hhcGVyb25lQ29uZmlnRmlsZV9MaXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJFQ2hhcGVyb25lQ29uZmlnRmlsZV9UZW1wIiwidmFsdWUiOiAiMiJ9CitdfQorLCAg
ICAgICB7ImVudW1uYW1lIjogInZyOjpFQ2hhcGVyb25lSW1wb3J0RmxhZ3MiLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkiLCJ2YWx1ZSI6
ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIs
InZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX05vbmUiLCJ2
YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RG
YWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9y
X0luY29tcGF0aWJsZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAi
VlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAg
ICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIx
MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxp
Y2F0aW9uIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVy
cm9yX1RleHR1cmVJc09uV3JvbmdEZXZpY2UiLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5h
bWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCIsInZh
bHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRU
ZXh0dXJlc05vdFN1cHBvcnRlZCIsInZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkNvbXBvc2l0b3JFcnJvcl9JbmRleE91dE9mUmFuZ2UiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAg
ICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCIsInZhbHVlIjog
IjEwOCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhv
ZCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX05v
bmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9k
X01vdXNlIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92
ZXJsYXlUcmFuc2Zvcm1UeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVy
bGF5VHJhbnNmb3JtX0Fic29sdXRlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSIsInZhbHVl
IjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21w
b25lbnQiLCJ2YWx1ZSI6ICIzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OlZST3Zl
cmxheUZsYWdzIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3Nf
Tm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQ3Vy
dmVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19SR1NT
NFgiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vRGFz
aGJvYXJkVGFiIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFn
c19BY2NlcHRzR2FtZXBhZEV2ZW50cyIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5RmxhZ3NfU2hvd0dhbWVwYWRGb2N1cyIsInZhbHVlIjogIjUifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzIiwidmFsdWUiOiAiNiJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBhZEV2ZW50cyIs
InZhbHVlIjogIjcifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNo
UGFkU2Nyb2xsV2hlZWwiLCJ2YWx1ZSI6ICI4In0KKyAgICAgICAseyJuYW1lIjogIlZST3Zlcmxh
eUZsYWdzX1RyYW5zZmVyT3duZXJzaGlwVG9JbnRlcm5hbFByb2Nlc3MiLCJ2YWx1ZSI6ICI5In0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwiLCJ2
YWx1ZSI6ICIxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRl
X0Nyb3NzZWQiLCJ2YWx1ZSI6ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFn
c19QYW5vcmFtYSIsInZhbHVlIjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZs
YWdzX1N0ZXJlb1Bhbm9yYW1hIiwidmFsdWUiOiAiMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RmxhZ3NfU29ydFdpdGhOb25TY2VuZU92ZXJsYXlzIiwidmFsdWUiOiAiMTQifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkIiwidmFsdWUi
OiAiMTUifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJNZXNzYWdlT3ZlcmxheVJl
c3BvbnNlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJl
c3BvbnNlX0J1dHRvblByZXNzXzAiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18xIiwidmFsdWUiOiAiMSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiIsInZh
bHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1
dHRvblByZXNzXzMiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92
ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZFN5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICI0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3Jl
YXRlQ2xpZW50T3ZlcmxheSIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJNZXNz
YWdlT3ZlcmxheVJlc3BvbnNlX0FwcGxpY2F0aW9uUXVpdCIsInZhbHVlIjogIjYifQorXX0KKywg
ICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAia19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwiLCJ2YWx1
ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dv
cmQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRN
b2RlU3VibWl0IiwidmFsdWUiOiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpF
R2FtZXBhZFRleHRJbnB1dExpbmVNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAi
a19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlU2luZ2xlTGluZSIsInZhbHVlIjogIjAifQorICAg
ICAgICx7Im5hbWUiOiAia19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyIs
InZhbHVlIjogIjEifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RU92ZXJsYXlEaXJl
Y3Rpb24iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX1Vw
IiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0Rvd24i
LCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fTGVmdCIs
InZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9SaWdodCIs
InZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Db3VudCIs
InZhbHVlIjogIjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAiT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlIiwidmFsdWUiOiAi
MCJ9CisgICAgICAgLHsibmFtZSI6ICJPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9D
aXJjbGUiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlJl
bmRlck1vZGVsRXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlJlbmRlck1v
ZGVsRXJyb3JfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX0xvYWRpbmciLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJS
ZW5kZXJNb2RlbEVycm9yX05vdFN1cHBvcnRlZCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZEFyZyIsInZhbHVlIjogIjMwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsIiwidmFsdWUi
OiAiMzAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyIs
InZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTXVs
dGlwbGVTaGFwZXMiLCJ2YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX1Rvb01hbnlWZXJ0aWNlcyIsInZhbHVlIjogIjMwNCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVUZXh0dXJlcyIsInZhbHVlIjogIjMwNSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2
YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVu
b3VnaE5vcm1hbHMiLCJ2YWx1ZSI6ICIzMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJN
b2RlbEVycm9yX05vdEVub3VnaFRleENvb3JkcyIsInZhbHVlIjogIjMwOCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICI0MDAi
fQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQ29tcG9uZW50UHJvcGVydHkiLCJ2
YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGlj
IiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lz
VmlzaWJsZSIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9w
ZXJ0eV9Jc1RvdWNoZWQiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9u
ZW50UHJvcGVydHlfSXNQcmVzc2VkIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkNvbXBvbmVudFByb3BlcnR5X0lzU2Nyb2xsZWQiLCJ2YWx1ZSI6ICIxNiJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpFVlJOb3RpZmljYXRpb25UeXBlIiwidmFsdWVzIjogWyAKKyAg
ICAgICB7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQiLCJ2YWx1ZSI6ICIw
In0KKyAgICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2ll
bnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsi
bmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAg
LHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Rpc2Fi
bGVkIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblN0
eWxlX0NvbnRhY3RfRW5hYmxlZCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJF
VlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2ZSIsInZhbHVlIjogIjIwMiJ9CitdfQor
LCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yIiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiVlJTZXR0aW5nc0Vycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9JUENGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0K
KyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCIsInZhbHVlIjog
IjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQiLCJ2YWx1
ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9Kc29uUGFyc2VGYWls
ZWQiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9VbnNl
dFNldHRpbmdIYXNOb0RlZmF1bHQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5h
bWUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIlZSU2NyZWVuc2hvdEVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSU2NyZWVuc2hvdEVycm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24iLCJ2YWx1
ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQi
LCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfQnVm
ZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5z
aG90RXJyb3JfU2NyZWVuc2hvdEFscmVhZHlJblByb2dyZXNzIiwidmFsdWUiOiAiMTA4In0KK119
CitdLAorImNvbnN0cyI6W3sKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhEcml2ZXJEZWJ1
Z1Jlc3BvbnNlU2l6ZSIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6
ICIzMjc2OCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blRyYWNrZWREZXZpY2VJbmRl
eF9IbWQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMCJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heFRyYWNrZWREZXZpY2VDb3VudCIsImNvbnN0
dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxNiJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia191blRyYWNrZWREZXZpY2VJbmRleE90aGVyIiwiY29uc3R0eXBlIjogImNv
bnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjQyOTQ5NjcyOTQifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkIiwiY29uc3R0eXBlIjogImNv
bnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjQyOTQ5NjcyOTUifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfdWxJbnZhbGlkUHJvcGVydHlDb250YWluZXIiLCJjb25zdHR5cGUiOiAiY29u
c3QgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3VuSW52YWxpZFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNv
bnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfdW5GbG9hdFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3Bl
cnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfdW5JbnQzMlByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5VaW50
NjRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJj
b25zdHZhbCI6ICIzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuQm9vbFByb3BlcnR5
VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjog
IjQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5TdHJpbmdQcm9wZXJ0eVRhZyIsImNv
bnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI1In0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIyMCJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWciLCJjb25zdHR5
cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjEifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWciLCJjb25zdHR5cGUi
OiAiY29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjIifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfdW5IbWRWZWN0b3I0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAi
Y29uc3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjMifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29u
c3QgUHJvcGVydHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMzAifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0IiwiY29uc3R0eXBlIjog
ImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjEwMDAifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCIsImNvbnN0dHlw
ZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwMCJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSIsImNvbnN0dHlw
ZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCIsImNvbnN0dHlwZSI6ICJj
b25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQiLCJjb25zdHR5cGUiOiAiY29uc3QgVlJPdmVybGF5
SGFuZGxlX3QiLCAiY29uc3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191
blNjcmVlbnNob3RIYW5kbGVJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90Iiwg
ImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlN5c3RlbV9WZXJz
aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlN5
c3RlbV8wMTUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkV4dGVuZGVkRGlzcGxheV9W
ZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklW
UkV4dGVuZGVkRGlzcGxheV8wMDEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlRyYWNr
ZWRDYW1lcmFfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJJVlJUcmFja2VkQ2FtZXJhXzAwMyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90
IiwgImNvbnN0dmFsIjogIjEyOCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWlt
ZVR5cGVfSG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJ2ci9ob21lIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9NaW1lVHlwZV9H
YW1lVGhlYXRlciIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJ2ci9nYW1lX3RoZWF0ZXIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkFwcGxpY2F0
aW9uc19WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIklWUkFwcGxpY2F0aW9uc18wMDYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNo
YXBlcm9uZV9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIklWUkNoYXBlcm9uZV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNo
YXBlcm9uZVNldHVwX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiSVZSQ2hhcGVyb25lU2V0dXBfMDA1In0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJJVlJDb21wb3NpdG9yX1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiSVZSQ29tcG9zaXRvcl8wMjAifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWlu
dDMyX3QiLCAiY29uc3R2YWwiOiAiMTI4In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Vu
VlJPdmVybGF5TWF4TmFtZUxlbmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICIxMjgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhPdmVybGF5
Q291bnQiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiNjQifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFza1By
aW1pdGl2ZXNDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6
ICIzMiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAiSVZST3ZlcmxheV9WZXJzaW9uIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUk92ZXJsYXlfMDE0
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9H
REMyMDE1IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImdk
YzIwMTUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9u
ZW50X0Jhc2UiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
YmFzZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25l
bnRfVGlwIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInRp
cCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRf
SGFuZEdyaXAiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
aGFuZGdyaXAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29t
cG9uZW50X1N0YXR1cyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJzdGF0dXMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlJlbmRlck1vZGVsc19W
ZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklW
UlJlbmRlck1vZGVsc18wMDUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5Ob3RpZmlj
YXRpb25UZXh0TWF4U2l6ZSIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZh
bCI6ICIyNTYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUk5vdGlmaWNhdGlvbnNfVmVy
c2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJO
b3RpZmljYXRpb25zXzAwMiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heFNldHRp
bmdzS2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjog
IjEyOCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAiSVZSU2V0dGluZ3NfVmVyc2lvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTZXR0aW5nc18w
MDIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VjdGlvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGVhbXZyIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlcXVpcmVIbWQi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5
X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJm
b3JjZWREcml2ZXIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9y
Y2VkSG1kS2V5X1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJmb3JjZWRIbWQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFt
VlJfRGlzcGxheURlYnVnX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiZGlzcGxheURlYnVnIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRlYnVnUHJvY2Vzc1BpcGUifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZURpc3RvcnRpb24i
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNw
bGF5RGVidWdYIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3Bs
YXlEZWJ1Z1lfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiZGlzcGxheURlYnVnWSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9TZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJsb2dsZXZlbCJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9JUERfRmxvYXQiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiaXBkIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmQifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0
aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
YmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFIZWlnaHRfRmxvYXQiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZENhbWVyYUhlaWdodCJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJh
ZGl1c19GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
U3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImdyaWRDb2xvciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJwbGF5QXJlYUNvbG9yIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNob3dTdGFnZSJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFjdGl2YXRlTXVsdGlw
bGVEcml2ZXJzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVj
dE1vZGVfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJkaXJlY3RNb2RlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rp
cmVjdE1vZGVFZGlkVmlkX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImRpcmVjdE1vZGVFZGlkVmlkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpcmVjdE1vZGVFZGlkUGlkIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2luZ1NwZWFrZXJz
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2Fy
ZFlhd09mZnNldERlZ3JlZXNfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVu
dF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJh
c2VzdGF0aW9uUG93ZXJNYW5hZ2VtZW50In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm5ldmVyS2lsbFByb2Nlc3NlcyJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlclRh
cmdldE11bHRpcGxpZXIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJf
QWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogImFsbG93QXN5bmNSZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhbGxvd0ludGVybGVhdmVk
UmVwcm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Zv
cmNlUmVwcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiZm9yY2VSZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImZvcmNlRmFkZU9uQmFkVHJhY2tpbmci
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZp
ZXdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
ZGVmYXVsdE1pcnJvclZpZXcifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFt
VlJfU2hvd01pcnJvclZpZXdfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJzaG93TWlycm9yVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIm1pcnJvclZpZXdHZW9tZXRyeSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1
bmNoIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0
TW9uaXRvckZyb21BcHBMYXVuY2gifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0
ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVu
Y2gifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9h
cmRGcm9tQXBwTGF1bmNoX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1N0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhcnRP
dmVybGF5QXBwc0Zyb21EYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJlbmFibGVIb21lQXBwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9TdGVhbVZSX1NldEluaXRpYWxEZWZhdWx0SG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1h
Z2VUaW1lU2VjX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicmV0YWlsRGVtbyJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiaXBkT2Zmc2V0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZHJpdmVyX2xpZ2h0aG91c2UifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpc2FibGVpbXUifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25f
U3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVz
ZWRpc2FtYmlndWF0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhv
dXNlX0Rpc2FtYmlndWF0aW9uRGVidWdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiZGlzYW1iaWd1YXRpb25kZWJ1ZyJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicHJpbWFyeWJhc2Vz
dGF0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0RCSGlz
dG9yeV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
ImRiaGlzdG9yeSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWN0aW9u
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRyaXZlcl9u
dWxsIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9T
dHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2Vy
aWFsTnVtYmVyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX01vZGVsTnVt
YmVyX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJtb2RlbE51bWJlciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5k
b3dYX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
IndpbmRvd1gifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WV9J
bnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5k
b3dZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0lu
dDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRv
d1dpZHRoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd0hlaWdo
dF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3
aW5kb3dIZWlnaHQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVy
V2lkdGhfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAicmVuZGVyV2lkdGgifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVu
ZGVySGVpZ2h0X0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInJlbmRlckhlaWdodCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVs
bF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RnJl
cXVlbmN5In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1Nl
Y3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNl
cmludGVyZmFjZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFj
ZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIlN0YXR1c0Fsd2F5c09uVG9wIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX01pbmltaXplVG9UcmF5X0Jvb2wiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiTWluaW1pemVUb1RyYXkifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9v
bCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzY3JlZW5z
aG90cyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TY3Jl
ZW5zaG90VHlwZV9JbnQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAic2NyZWVuc2hvdFR5cGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX05v
dGlmaWNhdGlvbnNfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJub3RpZmljYXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9Ob3RpZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkRvTm90RGlzdHVyYiJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfS2V5Ym9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJrZXlib2FyZCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfVHV0b3JpYWxDb21wbGV0aW9ucyIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJUdXRvcmlhbENvbXBsZXRpb25zIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9TY2FsZVgiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiU2NhbGVYIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9TY2FsZVkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAiU2NhbGVZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9LZXlib2FyZF9PZmZzZXRMZWZ0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJPZmZzZXRMZWZ0WCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogIk9mZnNldFJpZ2h0WCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJPZmZzZXRZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9LZXlib2FyZF9TbW9vdGhpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiU21vb3RoaW5nIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9QZXJmX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAicGVyZmNoZWNrIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX0hl
dXJpc3RpY0FjdGl2ZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogImhldXJpc3RpY0FjdGl2ZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfUGVyZl9Ob3RpZnlJbkhNRF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIndhcm5JbkhNRCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogIndhcm5Pbmx5T25jZSJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfUGVyZl9BbGxvd1RpbWluZ1N0b3JlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYWxsb3dUaW1pbmdTdG9yZSJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInNhdmVUaW1pbmdzT25FeGl0
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZUZXN0RGF0
YSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY29sbGlz
aW9uQm91bmRzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfU3R5bGVfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiQ29sbGlzaW9uQm91bmRzU3R5bGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0dyb3VuZFBl
cmltZXRlck9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfQ2VudGVyTWFya2VyT25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91
bmRzUGxheVNwYWNlT24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lv
bkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9u
Qm91bmRzQ29sb3JHYW1tYVIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxp
c2lvbkJvdW5kc19Db2xvckdhbW1hR19JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpj
b25zdCIsICJjb25zdHZhbCI6ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMy
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lv
bkJvdW5kc0NvbG9yR2FtbWFCIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNhbWVyYSJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYSJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlQ2Ft
ZXJhSW5EYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9F
bmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JS
b29tVmlld19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogImVuYWJsZUNhbWVyYUZvclJvb21WaWV3In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQz
MiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFC
b3VuZHNDb2xvckdhbW1hRyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJh
X0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JH
YW1tYUEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJl
bmd0aF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
YXVkaW9fU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJhdWRpbyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25QbGF5
YmFja0RldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAib25QbGF5YmFja0RldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfYXVkaW9fT25SZWNvcmREZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogIm9uUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJvblBsYXliYWNrTWlycm9y
RGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZQbGF5YmFj
a0RldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAib2ZmUGxheWJhY2tEZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X2F1ZGlvX09mZlJlY29yZERldmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAib2ZmUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAidml2ZUhETUlHYWluIn0KKyx7CisgICAgICAgImNvbnN0
bmFtZSI6ICJrX3BjaF9Qb3dlcl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInBvd2VyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9Qb3dlcl9Qb3dlck9mZk9uRXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInBvd2VyT2ZmT25FeGl0In0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQiLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidHVybk9mZlNjcmVlbnNUaW1lb3V0
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxl
cnNUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1Bvd2VyX1JldHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJldHVyblRvV2F0Y2hkb2dUaW1l
b3V0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3Rl
YW1WUk9uQnV0dG9uUHJlc3MiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFibGVEYXNoYm9hcmQifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXJjYWRlTW9kZSJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfbW9kZWxza2luX1NlY3Rpb24iLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxza2lucyJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZSJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAiSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTY3JlZW5zaG90c18wMDEifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogIklWUlJlc291cmNlc19WZXJzaW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlJlc291cmNlc18wMDEifQorXSwK
KyJzdHJ1Y3RzIjpbeyJzdHJ1Y3QiOiAidnI6OkhtZE1hdHJpeDM0X3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAibSIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzNdWzRdIn1dfQorLHsic3Ry
dWN0IjogInZyOjpIbWRNYXRyaXg0NF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm0i
LCAiZmllbGR0eXBlIjogImZsb2F0IFs0XVs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVj
dG9yM190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZs
b2F0IFszXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yNF90IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFs0XSJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6SG1kVmVjdG9yM2RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2Iiwg
ImZpZWxkdHlwZSI6ICJkb3VibGUgWzNdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRWZWN0b3Iy
X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZmxvYXQg
WzJdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRRdWF0ZXJuaW9uX3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAidyIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUi
OiAieCIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieSIsICJmaWVs
ZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieiIsICJmaWVsZHR5cGUiOiAiZG91
YmxlIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRDb2xvcl90IiwiZmllbGRzIjogWworeyAiZmll
bGRuYW1lIjogInIiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZyIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJiIiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImEiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQor
LHsic3RydWN0IjogInZyOjpIbWRRdWFkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
dkNvcm5lcnMiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190IFs0XSJ9XX0K
Kyx7InN0cnVjdCI6ICJ2cjo6SG1kUmVjdDJfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6
ICJ2VG9wTGVmdCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJ2Qm90dG9tUmlnaHQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1k
VmVjdG9yMl90In1dfQorLHsic3RydWN0IjogInZyOjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyZlJlZCIsICJmaWVsZHR5cGUiOiAiZmxvYXQg
WzJdIn0sCit7ICJmaWVsZG5hbWUiOiAicmZHcmVlbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJd
In0sCit7ICJmaWVsZG5hbWUiOiAicmZCbHVlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbMl0ifV19
CisseyJzdHJ1Y3QiOiAidnI6OlRleHR1cmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6
ICJoYW5kbGUiLCAiZmllbGR0eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogImVUeXBl
IiwgImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVGV4dHVyZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6
ICJlQ29sb3JTcGFjZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OlRyYWNrZWREZXZpY2VQb3NlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVs
ZG5hbWUiOiAibURldmljZVRvQWJzb2x1dGVUcmFja2luZyIsICJmaWVsZHR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90In0sCit7ICJmaWVsZG5hbWUiOiAidlZlbG9jaXR5IiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZBbmd1
bGFyVmVsb2NpdHkiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7
ICJmaWVsZG5hbWUiOiAiZVRyYWNraW5nUmVzdWx0IiwgImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpF
VHJhY2tpbmdSZXN1bHQifSwKK3sgImZpZWxkbmFtZSI6ICJiUG9zZUlzVmFsaWQiLCAiZmllbGR0
eXBlIjogIl9Cb29sIn0sCit7ICJmaWVsZG5hbWUiOiAiYkRldmljZUlzQ29ubmVjdGVkIiwgImZp
ZWxkdHlwZSI6ICJfQm9vbCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJUZXh0dXJlQm91bmRzX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidU1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQi
fSwKK3sgImZpZWxkbmFtZSI6ICJ2TWluIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmll
bGRuYW1lIjogInVNYXgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAi
dk1heCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVnVsa2Fu
VGV4dHVyZURhdGFfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25JbWFnZSIsICJm
aWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BEZXZpY2UiLCAiZmll
bGR0eXBlIjogInN0cnVjdCBWa0RldmljZV9UICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BQaHlz
aWNhbERldmljZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIn0s
Cit7ICJmaWVsZG5hbWUiOiAibV9wSW5zdGFuY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBWa0lu
c3RhbmNlX1QgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFF1ZXVlIiwgImZpZWxkdHlwZSI6ICJz
dHJ1Y3QgVmtRdWV1ZV9UICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX25RdWV1ZUZhbWlseUluZGV4
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwg
ImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25Gb3JtYXQiLCAiZmll
bGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uU2FtcGxlQ291bnQiLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpEM0QxMlRleHR1cmVE
YXRhX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9wUmVzb3VyY2UiLCAiZmllbGR0
eXBlIjogInN0cnVjdCBJRDNEMTJSZXNvdXJjZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wQ29t
bWFuZFF1ZXVlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoifSwK
K3sgImZpZWxkbmFtZSI6ICJtX25Ob2RlTWFzayIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19
CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfQ29udHJvbGxlcl90IiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogImJ1dHRvbiIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1
Y3QiOiAidnI6OlZSRXZlbnRfTW91c2VfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ4
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBl
IjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiYnV0dG9uIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9TY3JvbGxfdCIsImZpZWxkcyI6IFsK
K3sgImZpZWxkbmFtZSI6ICJ4ZGVsdGEiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVs
ZG5hbWUiOiAieWRlbHRhIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
InJlcGVhdENvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6VlJFdmVudF9Ub3VjaFBhZE1vdmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJi
RmluZ2VyRG93biIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJmbFNl
Y29uZHNGaW5nZXJEb3duIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
ImZWYWx1ZVhGaXJzdCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJm
VmFsdWVZRmlyc3QiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZh
bHVlWFJhdyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZ
UmF3IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9O
b3RpZmljYXRpb25fdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1bFVzZXJWYWx1ZSIs
ICJmaWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb25J
ZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
UHJvY2Vzc190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJvbGRQaWQiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAiYkZvcmNlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wi
fV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfT3ZlcmxheV90IiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogIm92ZXJsYXlIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In1dfQor
LHsic3RydWN0IjogInZyOjpWUkV2ZW50X1N0YXR1c190IiwiZmllbGRzIjogWworeyAiZmllbGRu
YW1lIjogInN0YXR1c1N0YXRlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6VlJFdmVudF9LZXlib2FyZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjog
ImNOZXdJbnB1dCIsICJmaWVsZHR5cGUiOiAiY2hhciBbOF0ifSwKK3sgImZpZWxkbmFtZSI6ICJ1
VXNlclZhbHVlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF9JcGRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJpcGRNZXRlcnMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0NoYXBlcm9u
ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fblByZXZpb3VzVW5pdmVyc2UiLCAi
ZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQ3VycmVudFVuaXZl
cnNlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVu
dF9SZXNlcnZlZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2VydmVkMCIsICJm
aWVsZHR5cGUiOiAidWludDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDEiLCAiZmll
bGR0eXBlIjogInVpbnQ2NF90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1BlcmZvcm1h
bmNlVGVzdF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fbkZpZGVsaXR5TGV2ZWwi
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1Nl
YXRlZFplcm9Qb3NlUmVzZXRfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiUmVzZXRC
eVN5c3RlbU1lbnUiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpW
UkV2ZW50X1NjcmVlbnNob3RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUi
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAidHlwZSIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfU2NyZWVuc2hv
dFByb2dyZXNzX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicHJvZ3Jlc3MiLCAiZmll
bGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicGlkIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInVuQXJnc0hhbmRsZSIsICJmaWVsZHR5cGUi
OiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1
cmZhY2VfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJvdmVybGF5SGFuZGxlIiwgImZp
ZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogIm5WaXN1YWxNb2RlIiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9NZXNzYWdl
T3ZlcmxheV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInVuVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
VlJFdmVudF9Qcm9wZXJ0eV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNvbnRhaW5l
ciIsICJmaWVsZHR5cGUiOiAiUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCJ9LAoreyAiZmllbGRu
YW1lIjogInByb3AiLCAiZmllbGR0eXBlIjogImVudW0gdnI6OkVUcmFja2VkRGV2aWNlUHJvcGVy
dHkifV19CisseyJzdHJ1Y3QiOiAidnI6Oihhbm9ueW1vdXMpIiwiZmllbGRzIjogWworeyAiZmll
bGRuYW1lIjogInJlc2VydmVkIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUmVz
ZXJ2ZWRfdCJ9LAoreyAiZmllbGRuYW1lIjogImNvbnRyb2xsZXIiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9Db250cm9sbGVyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtb3VzZSIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X01vdXNlX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJzY3JvbGwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JvbGxfdCJ9
LAoreyAiZmllbGRuYW1lIjogInByb2Nlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJF
dmVudF9Qcm9jZXNzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb24iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Ob3RpZmljYXRpb25fdCJ9LAoreyAiZmllbGRuYW1l
IjogIm92ZXJsYXkiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9PdmVybGF5X3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJzdGF0dXMiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJF
dmVudF9TdGF0dXNfdCJ9LAoreyAiZmllbGRuYW1lIjogImtleWJvYXJkIiwgImZpZWxkdHlwZSI6
ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfS2V5Ym9hcmRfdCJ9LAoreyAiZmllbGRuYW1lIjogImlwZCIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X0lwZF90In0sCit7ICJmaWVsZG5hbWUi
OiAiY2hhcGVyb25lIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQ2hhcGVyb25l
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJwZXJmb3JtYW5jZVRlc3QiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCJ9LAoreyAiZmllbGRuYW1lIjogInRv
dWNoUGFkTW92ZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1RvdWNoUGFkTW92
ZV90In0sCit7ICJmaWVsZG5hbWUiOiAic2VhdGVkWmVyb1Bvc2VSZXNldCIsICJmaWVsZHR5cGUi
OiAic3RydWN0IHZyOjpWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCJ9LAoreyAiZmllbGRu
YW1lIjogInNjcmVlbnNob3QiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3Jl
ZW5zaG90X3QifSwKK3sgImZpZWxkbmFtZSI6ICJzY3JlZW5zaG90UHJvZ3Jlc3MiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCJ9LAoreyAiZmll
bGRuYW1lIjogImFwcGxpY2F0aW9uTGF1bmNoIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZS
RXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdCJ9LAoreyAiZmllbGRuYW1lIjogImNhbWVyYVN1cmZh
Y2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFj
ZV90In0sCit7ICJmaWVsZG5hbWUiOiAibWVzc2FnZU92ZXJsYXkiLCAiZmllbGR0eXBlIjogInN0
cnVjdCB2cjo6VlJFdmVudF9NZXNzYWdlT3ZlcmxheV90In0sCit7ICJmaWVsZG5hbWUiOiAicHJv
cGVydHkiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9wZXJ0eV90In1dfQor
LHsic3RydWN0IjogInZyOjpWUkV2ZW50X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
ZXZlbnRUeXBlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInRy
YWNrZWREZXZpY2VJbmRleCIsICJmaWVsZHR5cGUiOiAiVHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgImZpZWxkbmFtZSI6ICJldmVudEFnZVNlY29uZHMiLCAiZmllbGR0eXBlIjogImZsb2F0In0s
Cit7ICJmaWVsZG5hbWUiOiAiZGF0YSIsICJmaWVsZHR5cGUiOiAiVlJFdmVudF9EYXRhX3QifV19
CisseyJzdHJ1Y3QiOiAidnI6OkhpZGRlbkFyZWFNZXNoX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVs
ZG5hbWUiOiAicFZlcnRleERhdGEiLCAiZmllbGR0eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1k
VmVjdG9yMl90ICoifSwKK3sgImZpZWxkbmFtZSI6ICJ1blRyaWFuZ2xlQ291bnQiLCAiZmllbGR0
eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkNvbnRyb2xsZXJBeGlzX3Qi
LCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwK
K3sgImZpZWxkbmFtZSI6ICJ5IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6
ICJ2cjo6VlJDb250cm9sbGVyU3RhdGUwMDFfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6
ICJ1blBhY2tldE51bSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJ1bEJ1dHRvblByZXNzZWQiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5h
bWUiOiAidWxCdXR0b25Ub3VjaGVkIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmll
bGRuYW1lIjogInJBeGlzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4
aXNfdCBbNV0ifV19CisseyJzdHJ1Y3QiOiAidnI6OkNvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdz
IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInNpemUiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In0sCit7ICJmaWVsZG5hbWUiOiAiY3VydmVkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAor
eyAiZmllbGRuYW1lIjogImFudGlhbGlhcyIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZp
ZWxkbmFtZSI6ICJzY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJkaXN0YW5jZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJhbHBo
YSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ1T2Zmc2V0IiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInZPZmZzZXQiLCAiZmllbGR0eXBl
IjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidVNjYWxlIiwgImZpZWxkdHlwZSI6ICJmbG9h
dCJ9LAoreyAiZmllbGRuYW1lIjogInZTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sg
ImZpZWxkbmFtZSI6ICJncmlkRGl2cyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJncmlkV2lkdGgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAiZ3JpZFNjYWxlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInRy
YW5zZm9ybSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXg0NF90In1dfQorLHsi
c3RydWN0IjogInZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QiLCJmaWVsZHMiOiBb
Cit7ICJmaWVsZG5hbWUiOiAiZUZyYW1lVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAiZmllbGRuYW1lIjogIm5XaWR0aCIsICJmaWVs
ZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJuSGVpZ2h0IiwgImZpZWxkdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm5CeXRlc1BlclBpeGVsIiwgImZpZWxk
dHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm5GcmFtZVNlcXVlbmNlIiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInN0YW5kaW5nVHJhY2tlZERl
dmljZVBvc2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6QXBwT3ZlcnJpZGVLZXlzX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAicGNoS2V5IiwgImZpZWxkdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgImZp
ZWxkbmFtZSI6ICJwY2hWYWx1ZSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn1dfQorLHsi
c3RydWN0IjogInZyOjpDb21wb3NpdG9yX0ZyYW1lVGltaW5nIiwiZmllbGRzIjogWworeyAiZmll
bGRuYW1lIjogIm1fblNpemUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAibV9uRnJhbWVJbmRleCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogIm1fbk51bU1pc1ByZXNlbnRlZCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fblJlcHJvamVjdGlvbkZsYWdzIiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxTeXN0ZW1UaW1lSW5T
ZWNvbmRzIiwgImZpZWxkdHlwZSI6ICJkb3VibGUifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJl
U3VibWl0R3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9m
bFBvc3RTdWJtaXRHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJtX2ZsVG90YWxSZW5kZXJHcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJtX2ZsQ29tcG9zaXRvclJlbmRlckdwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
LAoreyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1TXMiLCAiZmllbGR0eXBl
IjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JJZGxlQ3B1TXMiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENsaWVudEZyYW1lSW50
ZXJ2YWxNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJl
c2VudENhbGxDcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJt
X2ZsV2FpdEZvclByZXNlbnRDcHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJtX2ZsU3VibWl0RnJhbWVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX2ZsV2FpdEdldFBvc2VzQ2FsbGVkTXMiLCAiZmllbGR0eXBlIjogImZsb2F0
In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbE5ld1Bvc2VzUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsTmV3RnJhbWVSZWFkeU1zIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRN
cyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRv
clVwZGF0ZUVuZE1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1f
ZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX0htZFBvc2UiLCAiZmllbGR0eXBlIjogInZyOjpUcmFja2VkRGV2aWNlUG9z
ZV90In1dfQorLHsic3RydWN0IjogInZyOjpDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRnJhbWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxk
dHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJh
bWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZy
YW1lUHJlc2VudHNPblN0YXJ0dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1
cCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Mb2Fk
aW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZy
YW1lUHJlc2VudHNMb2FkaW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRu
YW1lIjogIm1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZyIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1UaW1lZE91dCIs
ICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVBy
ZXNlbnRzVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUi
OiAibV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQiLCAiZmll
bGR0eXBlIjogInVpbnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNl
Y3Rpb25QYXJhbXNfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2U291cmNlIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZE
aXJlY3Rpb24iLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJm
aWVsZG5hbWUiOiAiZU9yaWdpbiIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4ifV19CisseyJzdHJ1Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJl
c3VsdHNfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2UG9pbnQiLCAiZmllbGR0eXBl
IjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAidk5vcm1hbCIs
ICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJ2VVZzIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAoreyAiZmll
bGRuYW1lIjogImZEaXN0YW5jZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3Qi
OiAidnI6OkludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxk
bmFtZSI6ICJtX2ZsVG9wTGVmdFgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5h
bWUiOiAibV9mbFRvcExlZnRZIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fZmxXaWR0aCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJt
X2ZsSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SW50
ZXJzZWN0aW9uTWFza0NpcmNsZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fZmxD
ZW50ZXJYIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDZW50
ZXJZIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxSYWRpdXMi
LCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjooYW5vbnltb3VzKSIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX1JlY3RhbmdsZSIsICJmaWVsZHR5cGUiOiAi
c3RydWN0IHZyOjpJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QifSwKK3sgImZpZWxkbmFtZSI6
ICJtX0NpcmNsZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpJbnRlcnNlY3Rpb25NYXNrQ2ly
Y2xlX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QcmltaXRpdmVUeXBlIiwg
ImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2
ZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJtX1ByaW1pdGl2ZSIsICJmaWVsZHR5cGUiOiAiVlJP
dmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5h
bWUiOiAibVRyYWNraW5nVG9Db21wb25lbnRSZW5kZXJNb2RlbCIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRNYXRyaXgzNF90In0sCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5nVG9Db21w
b25lbnRMb2NhbCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90In0sCit7
ICJmaWVsZG5hbWUiOiAidVByb3BlcnRpZXMiLCAiZmllbGR0eXBlIjogIlZSQ29tcG9uZW50UHJv
cGVydGllcyJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidlBvc2l0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBl
IjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAicmZUZXh0dXJl
Q29vcmQiLCAiZmllbGR0eXBlIjogImZsb2F0IFsyXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVu
ZGVyTW9kZWxfVGV4dHVyZU1hcF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInVuV2lk
dGgiLCAiZmllbGR0eXBlIjogInVpbnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAidW5IZWlnaHQi
LCAiZmllbGR0eXBlIjogInVpbnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAicnViVGV4dHVyZU1h
cERhdGEiLCAiZmllbGR0eXBlIjogImNvbnN0IHVpbnQ4X3QgKiJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6UmVuZGVyTW9kZWxfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyVmVydGV4RGF0
YSIsICJmaWVsZHR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAq
In0sCit7ICJmaWVsZG5hbWUiOiAidW5WZXJ0ZXhDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJySW5kZXhEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCB1
aW50MTZfdCAqIn0sCit7ICJmaWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogImRpZmZ1c2VUZXh0dXJlSWQiLCAiZmll
bGR0eXBlIjogIlRleHR1cmVJRF90In1dfQorLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9D
b250cm9sbGVyTW9kZV9TdGF0ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJTY3Jv
bGxXaGVlbFZpc2libGUiLCAiZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZy
OjpOb3RpZmljYXRpb25CaXRtYXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX3BJ
bWFnZURhdGEiLCAiZmllbGR0eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldp
ZHRoIiwgImZpZWxkdHlwZSI6ICJpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uSGVpZ2h0
IiwgImZpZWxkdHlwZSI6ICJpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQnl0ZXNQZXJQ
aXhlbCIsICJmaWVsZHR5cGUiOiAiaW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q09wZW5W
UkNvbnRleHQiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibV9wVlJTeXN0ZW0iLCAiZmll
bGR0eXBlIjogImNsYXNzIHZyOjpJVlJTeXN0ZW0gKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZS
Q2hhcGVyb25lIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25lICoifSwKK3sg
ImZpZWxkbmFtZSI6ICJtX3BWUkNoYXBlcm9uZVNldHVwIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2
cjo6SVZSQ2hhcGVyb25lU2V0dXAgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ29tcG9zaXRv
ciIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKiJ9LAoreyAiZmllbGRu
YW1lIjogIm1fcFZST3ZlcmxheSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUk92ZXJsYXkg
KiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSUmVzb3VyY2VzIiwgImZpZWxkdHlwZSI6ICJjbGFz
cyB2cjo6SVZSUmVzb3VyY2VzICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlJlbmRlck1vZGVs
cyIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqIn0sCit7ICJmaWVs
ZG5hbWUiOiAibV9wVlJFeHRlbmRlZERpc3BsYXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJ
VlJFeHRlbmRlZERpc3BsYXkgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2V0dGluZ3MiLCAi
ZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJTZXR0aW5ncyAqIn0sCit7ICJmaWVsZG5hbWUiOiAi
bV9wVlJBcHBsaWNhdGlvbnMiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJBcHBsaWNhdGlv
bnMgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSVHJhY2tlZENhbWVyYSIsICJmaWVsZHR5cGUi
OiAiY2xhc3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZS
U2NyZWVuc2hvdHMiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqIn1d
fQorXSwKKyJtZXRob2RzIjpbeworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJvamVjdGlvbk1hdHJpeCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXg0NF90IiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXll
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZk5lYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogImZGYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRQcm9qZWN0aW9uUmF3IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
RXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZMZWZ0IiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZSaWdodCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBmVG9wIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZCb3R0b20iICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
Q29tcHV0ZURpc3RvcnRpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjog
InZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmVSIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmViIgLCJwYXJhbXR5cGUiOiAiZmxvYXQi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRGlzdG9ydGlvbkNvb3JkaW5hdGVzIiAsInBhcmFt
dHlwZSI6ICJzdHJ1Y3QgdnI6OkRpc3RvcnRpb25Db29yZGluYXRlc190ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RXllVG9IZWFkVHJhbnNmb3JtIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0VGltZVNpbmNlTGFzdFZzeW5jIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
ZlNlY29uZHNTaW5jZUxhc3RWc3luYyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInB1bEZyYW1lQ291bnRlciIgLCJwYXJhbXR5cGUiOiAidWludDY0X3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXREM0Q5QWRhcHRlckluZGV4IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldERYR0lPdXRwdXRJbmZvIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAor
ICAgICAgICJtZXRob2RuYW1lIjogIklzRGlzcGxheU9uRGVza3RvcCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXREaXNwbGF5VmlzaWJpbGl0eSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiYklzVmlzaWJsZU9uRGVza3RvcCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VP
cmlnaW4ifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9u
c0Zyb21Ob3ciICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cFRyYWNrZWREZXZpY2VQb3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5UcmFja2VkRGV2aWNl
UG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBv
c2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5
Q291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJl
c2V0U2VhdGVkWmVyb1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90IgorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNvcnRl
ZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVUcmFj
a2VkRGV2aWNlQ2xhc3MiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuVHJhY2tlZERldmljZUluZGV4QXJyYXkiICwiYXJy
YXlfY291bnQiOiAidW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
VHJhY2tlZERldmljZUluZGV4QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgiICwi
cGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVEZXZpY2VBY3Rpdml0eUxldmVsIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQXBwbHlUcmFuc2Zvcm0iLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBPdXRwdXRQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNr
ZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNl
UG9zZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVHJhbnNmb3JtIiAsInBhcmFtdHlwZSI6ICJj
b25zdCBzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZSIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVHJh
Y2tlZENvbnRyb2xsZXJSb2xlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJS
b2xlRm9yVHJhY2tlZERldmljZUluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVRy
YWNrZWRDb250cm9sbGVyUm9sZSIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
eXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFRyYWNrZWREZXZpY2VDbGFzcyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10
eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c1RyYWNrZWREZXZpY2VDb25uZWN0ZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgi
ICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5
cGUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJm
bG9hdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZp
Y2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNl
UHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjog
InZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRJ
bnQzMlRyYWNrZWREZXZpY2VQcm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJf
dCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJv
cGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZy
OjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRVaW50
NjRUcmFja2VkRGV2aWNlUHJvcGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQ2NF90
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVUcmFja2VkUHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE1hdHJp
eDM0VHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZE1hdHJpeDM0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tlZERldmljZVByb3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAs
InBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVU
cmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIg
LCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRQcm9wRXJyb3JOYW1lRnJvbUVu
dW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZXJyb3IiICwicGFyYW10eXBlIjogInZyOjpF
VHJhY2tlZFByb3BlcnR5RXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9sbE5leHRFdmVu
dCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZS
RXZlbnRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnRXaXRo
UG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZU9yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEV2ZW50IiAsInBh
cmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5jYlZSRXZlbnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicFRyYWNrZWREZXZpY2VQb3NlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZVBvc2VfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEV2ZW50VHlwZU5hbWVGcm9t
RW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6
OkVWUkV2ZW50VHlwZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRIaWRkZW5BcmVhTWVzaCIs
CisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0IHZyOjpIaWRkZW5BcmVhTWVzaF90IiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5
cGUiOiAidnI6OkVIaWRkZW5BcmVhTWVzaFR5cGUifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
Q29udHJvbGxlclN0YXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRl
eCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZSQ29udHJv
bGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlclN0YXRl
U2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
Q29udHJvbGxlclN0YXRlV2l0aFBvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFy
YW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuQ29udHJvbGxlckRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29udHJvbGxlclN0YXRl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5Db250cm9sbGVyU3RhdGVTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5
cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiVHJpZ2dlckhhcHRpY1B1bHNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5BeGlzSWQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidXNEdXJhdGlvbk1pY3JvU2VjIiAsInBhcmFtdHlwZSI6
ICJ1bnNpZ25lZCBzaG9ydCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCdXR0b25JZE5hbWVG
cm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlQnV0dG9uSWQiICwicGFyYW10eXBl
IjogInZyOjpFVlJCdXR0b25JZCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVy
QXhpc1R5cGVOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIg
KiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUF4aXNUeXBl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQ29udHJvbGxlckF4aXNUeXBlIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkNhcHR1cmVJbnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlJlbGVhc2VJbnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAg
ICJtZXRob2RuYW1lIjogIklzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJEcml2ZXJEZWJ1Z1JlcXVlc3Qi
LAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6
VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXF1ZXN0
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hSZXNwb25zZUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidW5SZXNwb25zZUJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkZpcm13YXJlRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpU
cmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1
aXRfRXhpdGluZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tu
b3dsZWRnZVF1aXRfVXNlclByb21wdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSRXh0ZW5kZWREaXNwbGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRXaW5kb3dCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuWCIg
LCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAs
InBhcmFtdHlwZSI6ICJpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5I
ZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0RXllT3V0cHV0Vmlld3BvcnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZv
aWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVFeWUiICwi
cGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblkiICwi
cGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5I
ZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0RFhHSU91dHB1dEluZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuQWRhcHRlcklu
ZGV4IiAsInBhcmFtdHlwZSI6ICJpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
bkFkYXB0ZXJPdXRwdXRJbmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlQ2FtZXJhRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhhc0NhbWVyYSIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwSGFzQ2FtZXJhIiAsInBhcmFtdHlwZSI6ICJib29sICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldENhbWVyYUZyYW1lU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBuV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwbkhlaWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBuRnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFj
a2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFJbnRyaW5zaWNzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFy
YW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEZvY2FsTGVuZ3RoIiAsInBhcmFtdHlwZSI6
ICJ2cjo6SG1kVmVjdG9yMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ2VudGVyIiAs
InBhcmFtdHlwZSI6ICJ2cjo6SG1kVmVjdG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldENhbWVyYVByb2plY3Rpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJ
bmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJmbFpOZWFyIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImZsWkZhciIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
UHJvamVjdGlvbiIgLCJwYXJhbXR5cGUiOiAidnI6OkhtZE1hdHJpeDQ0X3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEi
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJhIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRWaWRlb1N0cmVhbUZyYW1lQnVmZmVyIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWRDYW1lcmFIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUi
ICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicEZyYW1lQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJuRnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUi
OiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
ZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZSVGV4dHVyZUJvdW5kc190ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5I
ZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNr
ZWRDYW1lcmFIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwi
cGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicEQzRDExRGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJw
YXJhbXR5cGUiOiAidm9pZCAqKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRl
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3RyZWFtVGV4
dHVyZUdMIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENh
bWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGdsVGV4dHVyZUlkIiAs
InBhcmFtdHlwZSI6ICJ2cjo6Z2xVSW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBG
cmFtZUhlYWRlciIgLCJwYXJhbXR5cGUiOiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFk
ZXJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJh
bXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VW
aWRlb1N0cmVhbVRleHR1cmVHTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNr
ZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiaFRyYWNrZWRDYW1lcmEiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OmdsVUludF90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkFkZEFwcGxpY2F0aW9u
TWFuaWZlc3QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBsaWNh
dGlvbk1hbmlmZXN0RnVsbFBhdGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImJUZW1wb3JhcnkiICwicGFyYW10eXBlIjogImJvb2wifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxs
UGF0aCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIklzQXBwbGljYXRpb25JbnN0YWxsZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtl
eSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldEFwcGxpY2F0aW9uQ291bnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90
IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwbGljYXRpb25JbmRleCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwi
b3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkFwcEtleUJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlC
dWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkxhdW5jaEFwcGxpY2F0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZS
QXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbiIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFRlbXBsYXRlQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hOZXdBcHBLZXkiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBLZXlz
IiAsImFycmF5X2NvdW50IjogInVuS2V5cyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZy
OjpBcHBPdmVycmlkZUtleXNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5LZXlzIiAs
InBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVu
Y2hBcHBsaWNhdGlvbkZyb21NaW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hBcmdzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9u
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNhbmNlbEFwcGxpY2F0
aW9uTGF1bmNoIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNv
bnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJZGVudGlmeUFwcGxpY2F0
aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Qcm9jZXNzSWQiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0QXBwbGljYXRpb25Qcm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQz
Ml90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRBcHBsaWNhdGlvbnNFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5
cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJlcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9u
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFBy
b3BlcnR5VmFsdWVCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4iICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIg
LCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlUHJvcGVydHkiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblBy
b3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50
NjRfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBw
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJlUHJvcGVydHkiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFw
cGxpY2F0aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRBcHBsaWNh
dGlvbkF1dG9MYXVuY2giLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hB
cHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImJBdXRvTGF1bmNoIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEFwcGxpY2F0aW9uQXV0b0xhdW5jaCIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
QXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGVmYXVsdEFw
cGxpY2F0aW9uRm9yTWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBL
ZXlCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuQXBwS2V5QnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hNaW1lVHlwZXNCdWZmZXIiICwicGFyYW10eXBlIjogImNo
YXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuTWltZVR5cGVzQnVmZmVyIiAsInBhcmFt
dHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNh
dGlvbnNUaGF0U3VwcG9ydE1pbWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJf
dCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTWltZVR5
cGUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIiICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0
aW9uTGF1bmNoQXJndW1lbnRzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5IYW5kbGUiICwicGFy
YW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXJncyIgLCJw
YXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcmdzIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTdGFy
dGluZ0FwcGxpY2F0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRp
b25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
QXBwS2V5QnVmZmVyIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkFwcEtleUJ1ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhbnNpdGlvblN0YXRlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUiCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2siLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3Rh
dGVOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAic3RhdGUiICwicGFyYW10
eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJJc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVkIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNh
dGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxhdW5jaEludGVybmFsUHJvY2VzcyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEJpbmFyeVBhdGgiICwicGFyYW10
eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3VtZW50
cyIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoV29ya2luZ0RpcmVjdG9yeSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCIsCisgICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FsaWJyYXRpb25TdGF0
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUi
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0UGxheUFyZWFTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJi
b29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVgi
ICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVoi
ICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UGxh
eUFyZWFSZWN0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJyZWN0IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZFF1YWRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbG9hZEluZm8iLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0U2NlbmVDb2xvciIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiY29sb3IiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29s
b3JfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hh
cGVyb25lIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCb3VuZHNDb2xvciIsCisgICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicE91dHB1dENvbG9yQXJyYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1k
Q29sb3JfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAibk51bU91dHB1dENvbG9ycyIgLCJw
YXJhbXR5cGUiOiAiaW50In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxDb2xsaXNpb25Cb3Vu
ZHNGYWRlRGlzdGFuY2UiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicE91dHB1dENhbWVyYUNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENv
bG9yX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q2hhcGVyb25lIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBcmVCb3VuZHNWaXNpYmxlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmUiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZvcmNlQm91bmRzVmlzaWJs
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAiYkZvcmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tbWl0V29ya2luZ0NvcHkiLAorICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogImNvbmZpZ0ZpbGUiICwicGFyYW10eXBlIjogInZyOjpFQ2hhcGVyb25lQ29uZmlnRmlsZSJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25l
U2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJldmVydFdvcmtpbmdDb3B5IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlB
cmVhU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhUmVjdCIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFk
X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hh
cGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdDb2xsaXNpb25C
b3VuZHNJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2Nv
dW50IjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxp
c2lvbkJvdW5kc0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJy
YXlfY291bnQiOiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRR
dWFkX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10
eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3Jr
aW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2
cjo6SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29y
a2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cG1hdFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJT
ZXRXb3JraW5nUGxheUFyZWFTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzaXplWCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzaXplWiIgLCJwYXJhbXR5cGUi
OiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2Nv
dW50IjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nU2VhdGVk
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFNlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6
SG1kTWF0cml4MzRfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2lu
Z1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1h
dFN0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
c3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJSZWxvYWRGcm9tRGlzayIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY29uZmlnRmlsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OkVDaGFwZXJvbmVDb25maWdGaWxlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1l
IjogIlNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cFRhZ3NCdWZmZXIiICwiYXJyYXlfY291bnQiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAi
dWludDhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsIm91
dF9hcnJheV9jb3VudCI6ICJwdW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNo
YXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGh5c2ljYWxC
b3VuZHNJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwiYXJyYXlfY291bnQi
OiAidW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hh
cGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExpdmVQaHlzaWNhbEJvdW5k
c0luZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQi
OiAicHVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJFeHBvcnRMaXZlVG9CdWZm
ZXIiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFt
dHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkJ1ZmZlckxlbmd0aCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmciLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBCdWZmZXIiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5JbXBv
cnRGbGFncyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1l
IjogIlNldFRyYWNraW5nU3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10
eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0VHJhY2tpbmdTcGFjZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
b21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJXYWl0R2V0UG9zZXMiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBSZW5kZXJQb3NlQXJyYXkiICwiYXJyYXlfY291
bnQiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpU
cmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlclBv
c2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBHYW1lUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuR2FtZVBvc2VBcnJheUNv
dW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6
ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGFzdFBvc2VzIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5
X2NvdW50IjogInVuUmVuZGVyUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2
cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5k
ZXJQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwR2FtZVBvc2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJy
YXlDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlRm9y
VHJhY2tlZERldmljZUluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9z
aXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
cHV0R2FtZVBvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2Vf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21w
b3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTdWJtaXQiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0
IHZyOjpUZXh0dXJlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBCb3VuZHMiICwicGFy
YW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogIm5TdWJtaXRGbGFncyIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlN1Ym1p
dEZsYWdzIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJD
b21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDbGVhckxhc3RTdWJtaXR0ZWRGcmFt
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9zdFByZXNl
bnRIYW5kb2ZmIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRGcmFtZVRpbWluZyIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRpbWluZyIgLCJwYXJhbXR5cGUiOiAi
c3RydWN0IHZyOjpDb21wb3NpdG9yX0ZyYW1lVGltaW5nICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkZyYW1lc0FnbyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldEZyYW1lVGltaW5ncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUaW1p
bmciICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1lcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0
b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEZyYW1lVGltZVJlbWFpbmluZyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAiZmxvYXQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEN1bXVsYXRpdmVTdGF0
cyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicFN0YXRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkNv
bXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuU3Rh
dHNTaXplSW5CeXRlcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkZhZGVUb0NvbG9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25kcyIgLCJwYXJh
bXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmUmVkIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZHcmVlbiIgLCJwYXJhbXR5cGUi
OiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmQmx1ZSIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmQWxwaGEiICwicGFyYW10eXBlIjogImZs
b2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjog
ImJvb2wifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNv
bXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEN1cnJlbnRGYWRlQ29sb3IiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBl
IjogImJvb2wifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZhZGVHcmlkIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJmU2Vjb25kcyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJiRmFkZUluIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRDdXJyZW50R3JpZEFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9h
dCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiU2V0U2t5Ym94T3ZlcnJpZGUiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBUZXh0dXJlcyIgLCJhcnJheV9jb3VudCI6ICJ1blRleHR1cmVDb3Vu
dCIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuVGV4dHVyZUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ2xlYXJTa3lib3hPdmVycmlkZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckJyaW5nVG9Gcm9u
dCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRv
ckdvVG9CYWNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJD
b21wb3NpdG9yUXVpdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiSXNGdWxsc2NyZWVuIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBlIjog
InVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMYXN0RnJhbWVSZW5kZXJlciIsCisgICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNhblJlbmRlclNjZW5lIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWlycm9yV2lu
ZG93IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlTWly
cm9yV2luZG93IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJ
c01pcnJvcldpbmRvd1Zpc2libGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkNvbXBvc2l0b3JEdW1wSW1hZ2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUludGVybGVhdmVk
UmVwcm9qZWN0aW9uT24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImJPdmVycmlkZSIgLCJwYXJhbXR5cGUi
OiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VSZWNvbm5lY3RQcm9jZXNz
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTdXNwZW5kUmVu
ZGVyaW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiU3VzcGVuZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TWlycm9yVGV4dHVyZUQzRDExIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZS
RXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExRGV2aWNlT3JSZXNvdXJjZSIgLCJw
YXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHBEM0QxMVNoYWRl
clJlc291cmNlVmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiUmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3IiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE1pcnJvclRleHR1cmVHTCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZUV5ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xU
ZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpnbFVJbnRfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogImdsU2hhcmVkVGV4dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OmdsU2hhcmVk
VGV4dHVyZUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2NrR0xTaGFyZWRU
ZXh0dXJlRm9yQWNjZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRleHR1cmVIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJnbFNoYXJlZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJl
ZFRleHR1cmVIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VnVsa2FuSW5z
dGFuY2VFeHRlbnNpb25zUmVxdWlyZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIg
LCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBQaHlzaWNhbERldmljZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IFZrUGh5c2ljYWxEZXZpY2VfVCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUi
ICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJGaW5kT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoT3ZlcmxheUtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVPdmVybGF5IiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5RnJp
ZW5kbHlOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkRlc3Ryb3lPdmVybGF5IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0SGlnaFF1YWxp
dHlPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0SGlnaFF1YWxpdHlPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlLZXkiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJp
bmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5CdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5TmFtZSIsCisgICAgICAgInJldHVybnR5cGUi
OiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBh
cmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUi
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9y
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldE92ZXJsYXlJbWFnZURhdGEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHZCdWZmZXIiICwicGFyYW10eXBlIjogInZvaWQg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAi
dWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5XaWR0aCIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1bkhlaWdodCIgLCJwYXJh
bXR5cGUiOiAidWludDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUVy
cm9yTmFtZUZyb21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRP
dmVybGF5UmVuZGVyaW5nUGlkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuUElEIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVJlbmRlcmluZ1BpZCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5RmxhZyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3ZlcmxheUZsYWci
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlGbGFncyJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImJFbmFibGVkIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRPdmVybGF5RmxhZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVy
bGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlT3ZlcmxheUZsYWciICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlGbGFncyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBiRW5hYmxlZCIgLCJwYXJhbXR5cGUi
OiAiYm9vbCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5Q29sb3IiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIg
LCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwi
cGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFy
YW10eXBlIjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5Q29sb3Ii
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZSZWQiICwicGFyYW10eXBlIjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
ZkdyZWVuIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZCbHVlIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJT
ZXRPdmVybGF5QWxwaGEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZkFscGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0T3ZlcmxheUFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXhlbEFzcGVjdCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6
ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmVGV4ZWxB
c3BlY3QiICwicGFyYW10eXBlIjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRP
dmVybGF5VGV4ZWxBc3BlY3QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5
RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zl
cmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGZUZXhlbEFzcGVjdCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVNvcnRPcmRlciIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blNvcnRPcmRlciIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJs
YXlTb3J0T3JkZXIiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHVuU29ydE9yZGVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5V2lkdGhJbk1ldGVycyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmV2lkdGhJbk1ldGVy
cyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJs
YXlXaWR0aEluTWV0ZXJzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJs
YXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBmV2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJ
bk1ldGVycyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJmTWluRGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5j
ZVJhbmdlSW5NZXRlcnMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGZNaW5EaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9h
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZNYXhEaXN0YW5jZUluTWV0ZXJzIiAsInBh
cmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4
dHVyZUNvbG9yU3BhY2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZVRleHR1cmVDb2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNv
bG9yU3BhY2UifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQ29sb3JT
cGFjZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZVRleHR1cmVDb2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2Ug
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJs
YXlUZXh0dXJlQm91bmRzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlZSVGV4dHVy
ZUJvdW5kc190ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQm91
bmRzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBPdmVybGF5VGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRl
eHR1cmVCb3VuZHNfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNm
b3JtVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwZVRyYW5zZm9ybVR5cGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlUcmFu
c2Zvcm1UeXBlICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1B
YnNvbHV0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJlVHJhY2tpbmdPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2
ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRy
aXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNv
bHV0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZVRyYWNraW5nT3JpZ2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2
aWNlUmVsYXRpdmUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5UcmFja2VkRGV2aWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRv
T3ZlcmxheVRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRy
aXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlUmVsYXRpdmUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5
RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zl
cmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicHVuVHJhY2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRy
YWNrZWREZXZpY2VJbmRleF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tl
ZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRN
YXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1U
cmFja2VkRGV2aWNlQ29tcG9uZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zl
cmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpU
cmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVu
dE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnROYW1lU2l6ZSIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dPdmVybGF5IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU92ZXJs
YXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJw
YXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJJc092ZXJsYXlWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJw
YXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiY29vcmRpbmF0ZXNJbk92ZXJsYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6
SG1kVmVjdG9yMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYW5zZm9ybSIgLCJw
YXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlBvbGxOZXh0T3ZlcmxheUV2ZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29s
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBFdmVudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUlucHV0TWV0aG9kIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBl
SW5wdXRNZXRob2QiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5SW5wdXRNZXRob2QiLAorICAgICAgICJy
ZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0TWV0aG9k
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SW5wdXRNZXRob2QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldE92ZXJsYXlNb3VzZVNjYWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB2ZWNNb3VzZVNjYWxlIiAsInBhcmFtdHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJT
ZXRPdmVybGF5TW91c2VTY2FsZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxP
dmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
c3RydWN0IHZyOjpIbWRWZWN0b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0
ZU92ZXJsYXlJbnRlcnNlY3Rpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicFBhcmFtcyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25QYXJhbXNfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFJlc3VsdHMi
ICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJh
Y3Rpb25Bc01vdXNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
Q29udHJvbGxlckRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIklzSG92ZXJUYXJnZXRPdmVybGF5IiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0R2FtZXBhZEZvY3VzT3Zlcmxh
eSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90IgorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJTZXRHYW1lcGFkRm9jdXNPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE5ld0ZvY3VzT3ZlcmxheSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5TmVpZ2hib3IiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImVEaXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpF
T3ZlcmxheURpcmVjdGlvbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxUbyIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvciIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZURpcmVjdGlvbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVPdmVybGF5RGly
ZWN0aW9uIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxGcm9tIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlU
ZXh0dXJlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBUZXh0dXJlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlRleHR1cmVf
dCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDbGVhck92ZXJsYXlUZXh0dXJlIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3Zlcmxh
eVJhdyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAs
InBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwdkJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkhlaWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1bkRlcHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiU2V0T3ZlcmxheUZyb21GaWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEZpbGVQYXRoIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBOYXRpdmVUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicE5hdGl2ZVRleHR1cmVSZWYiICwicGFyYW10eXBlIjogInZvaWQgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBXaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBIZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTmF0aXZlRm9ybWF0IiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEFQSVR5cGUiICwicGFy
YW10eXBlIjogInZyOjpFVGV4dHVyZVR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBD
b2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBUZXh0dXJlQm91bmRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZS
VGV4dHVyZUJvdW5kc190ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VOYXRpdmVP
dmVybGF5SGFuZGxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBOYXRpdmVUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlU2l6ZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGVpZ2h0
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVh
dGVEYXNoYm9hcmRPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hP
dmVybGF5S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hPdmVybGF5RnJpZW5kbHlOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTWFpbkhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGh1bWJu
YWlsSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiSXNEYXNoYm9hcmRWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkiLAorICAgICAg
ICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJP
dmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQ
cm9jZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAg
ICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5Qcm9jZXNzSWQi
ICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dE
YXNoYm9hcmQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE92ZXJsYXlUb1Nob3ciICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJpbWFyeURhc2hi
b2FyZERldmljZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRl
eF90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJTaG93S2V5Ym9hcmQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogImVJbnB1dE1vZGUiICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1v
ZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUi
OiAidnI6OkVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hEZXNjcmlwdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5DaGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFt
dHlwZSI6ICJib29sIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJh
bXR5cGUiOiAidWludDY0X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dLZXlib2FyZEZv
ck92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0
TW9kZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVMaW5lSW5wdXRNb2RlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaERlc2NyaXB0aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkNoYXJNYXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoRXhpc3RpbmdUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiVXNlTWluaW1hbE1vZGUiICwicGFy
YW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1VXNlclZhbHVlIiAsInBh
cmFtdHlwZSI6ICJ1aW50NjRfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0S2V5Ym9hcmRU
ZXh0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJvdXRfc3RyaW5nIjogIiAiICwi
cGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNjaFRleHQiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlS2V5Ym9h
cmQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJvYXJk
VHJhbnNmb3JtQWJzb2x1dGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJw
YXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicG1hdFRyYWNraW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSIgLCJwYXJhbXR5
cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlNldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogImF2b2lkUmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZy
OjpIbWRSZWN0Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5SW50ZXJzZWN0
aW9uTWFzayIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxl
IiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwTWFza1ByaW1pdGl2ZXMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJPdmVy
bGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bk51bU1hc2tQcmltaXRpdmVzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuUHJpbWl0aXZlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlGbGFncyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJP
dmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRmxhZ3MiICwicGFyYW10
eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dNZXNzYWdlT3Zl
cmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25z
ZSIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
Q2FwdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoQnV0dG9uMFRleHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaEJ1dHRvbjFUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hCdXR0b24yVGV4dCIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uM1Rl
eHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJMb2FkUmVuZGVyTW9kZWxfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJSZW5kZXJNb2RlbEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0
cnVjdCB2cjo6UmVuZGVyTW9kZWxfdCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJG
cmVlUmVuZGVyTW9kZWwiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBSZW5kZXJNb2RlbCIgLCJwYXJhbXR5
cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2RlbF90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiTG9hZFRleHR1cmVfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJS
ZW5kZXJNb2RlbEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5k
ZXJNb2RlbF9UZXh0dXJlTWFwX3QgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJl
ZVRleHR1cmUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUZXh0dXJlIiAsInBhcmFtdHlwZSI6ICJzdHJ1
Y3QgdnI6OlJlbmRlck1vZGVsX1RleHR1cmVNYXBfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkxvYWRUZXh0dXJlRDNEMTFfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJSZW5kZXJNb2RlbEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBEM0QxMURldmljZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHBEM0QxMVRleHR1cmUyRCIgLCJwYXJhbXR5cGUi
OiAidm9pZCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkSW50b1RleHR1cmVE
M0QxMV9Bc3luYyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInRleHR1cmVJ
ZCIgLCJwYXJhbXR5cGUiOiAidnI6OlRleHR1cmVJRF90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicERzdFRleHR1cmUiICwicGFyYW10eXBlIjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJGcmVlVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lk
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRDNEMTFUZXh0
dXJlMkQiICwicGFyYW10eXBlIjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRSZW5kZXJNb2RlbE5hbWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlck1vZGVs
SW5kZXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoUmVuZGVyTW9kZWxOYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbE5hbWVMZW4iICwicGFy
YW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFJlbmRl
ck1vZGVsQ291bnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldENvbXBvbmVudENvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJf
dCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVy
TW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1l
dGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJl
bmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5Db21wb25lbnRJbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsIm91dF9zdHJpbmciOiAi
ICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21w
b25lbnROYW1lTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRDb21wb25lbnRCdXR0b25NYXNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ1aW50NjRfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJl
bmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50UmVuZGVyTW9k
ZWxOYW1lIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25l
bnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hDb21wb25lbnRSZW5kZXJNb2RlbE5hbWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBh
cmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbXBvbmVudFJl
bmRlck1vZGVsTmFtZUxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50U3RhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjog
ImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJl
bmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoQ29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgdnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBTdGF0ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9D
b250cm9sbGVyTW9kZV9TdGF0ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29tcG9u
ZW50U3RhdGUiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29tcG9uZW50
U3RhdGVfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbmRlck1vZGVsSGFzQ29t
cG9uZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5h
bWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJHZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBj
aFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoVGh1bWJuYWlsVVJMIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJh
bXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UaHVtYm5haWxVUkxM
ZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVF
cnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCIsCisgICAgICAg
InJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3JpZ2luYWxQYXRoIiAsIm91dF9zdHJp
bmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dW5PcmlnaW5hbFBhdGhMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJy
b3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVu
ZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbEVycm9yTmFt
ZUZyb21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZSUmVuZGVyTW9kZWxFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSTm90aWZpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
Q3JlYXRlTm90aWZpY2F0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSTm90aWZp
Y2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2
NF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVW
Uk5vdGlmaWNhdGlvblR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hUZXh0IiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzdHlsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvblN0eWxlIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicEltYWdlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6Ok5vdGlmaWNh
dGlvbkJpdG1hcF90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTm90aWZpY2F0aW9uSWQi
ICwicGFyYW10eXBlIjogInZyOjpWUk5vdGlmaWNhdGlvbklkICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlJlbW92ZU5vdGlmaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk5vdGlmaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJub3RpZmljYXRpb25JZCIgLCJwYXJhbXR5cGUiOiAidnI6OlZSTm90aWZp
Y2F0aW9uSWQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTZXR0aW5nc0Vycm9yTmFtZUZy
b21FbnVtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUlNldHRpbmdzRXJyb3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTeW5jIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJiRm9yY2UiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5n
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
U2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vy
cm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNl
dHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRJbnQzMiIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5WYWx1ZSIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJT
ZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRGbG9hdCIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsVmFsdWUiICwicGFyYW10eXBlIjog
ImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2V0dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFN0cmlu
ZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9y
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJf
dCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlv
biIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9y
ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRp
bmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5
cGUiOiAiZmxvYXQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaFNlY3Rpb24iICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaFNldHRpbmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0
dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RyaW5nIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qg
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6
ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blZh
bHVlTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJSZW1vdmVTZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0
aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiUmVtb3ZlS2V5SW5TZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hTZWN0aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hTZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRp
bmdzRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU2NyZWVuc2hvdHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlcXVlc3RTY3JlZW5zaG90
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0U2NyZWVuc2hvdEhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVuYW1lIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJI
b29rU2NyZWVuc2hvdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RF
cnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFN1cHBv
cnRlZFR5cGVzIiAsImFycmF5X2NvdW50IjogIm51bVR5cGVzIiAsInBhcmFtdHlwZSI6ICJjb25z
dCB2cjo6RVZSU2NyZWVuc2hvdFR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm51bVR5
cGVzIiAsInBhcmFtdHlwZSI6ICJpbnQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRT
Y3JlZW5zaG90UHJvcGVydHlUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2Ny
ZWVuc2hvdFR5cGUiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJT
Y3JlZW5zaG90RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNjcmVlbnNo
b3RQcm9wZXJ0eUZpbGVuYW1lIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAic2NyZWVuc2hvdEhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogImZpbGVuYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RQ
cm9wZXJ0eUZpbGVuYW1lcyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEZpbGVuYW1lIiAs
Im91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiY2NoRmlsZW5hbWUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVy
cm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNj
cmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJVcGRhdGVTY3JlZW5zaG90UHJvZ3Jl
c3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJmbFByb2dyZXNzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlRha2VTdGVyZW9TY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwT3V0U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNj
cmVlbnNob3RIYW5kbGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUHJldmlld0Zp
bGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTdWJtaXRTY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJzY3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2Ny
ZWVuc2hvdEhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5
cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
U291cmNlUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hTb3VyY2VWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlJlc291cmNlcyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFNoYXJlZFJlc291cmNl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hCdWZmZXIiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyTGVuIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVzb3VyY2VzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZXNvdXJj
ZUZ1bGxQYXRoIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNvdXJj
ZVR5cGVEaXJlY3RvcnkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaFBhdGhCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
CisgICAgICAgIF0KK30KK10KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfY2FwaS5oIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YTEwZjk1MWRjNTYzOTNkY2FjOWJiODBlODM0MjBiYzRhOTE1M2IxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApAQCAtMCww
ICsxLDE4NjkgQEAKKy8vPT09PT09PSBDb3B5cmlnaHQgKGMpIFZhbHZlIENvcnBvcmF0aW9uLCBB
bGwgcmlnaHRzIHJlc2VydmVkLiA9PT09PT09PT09PT09PT0KKy8vCisvLyBQdXJwb3NlOiBIZWFk
ZXIgZm9yIGZsYXR0ZWQgU3RlYW1BUEkuIFVzZSB0aGlzIGZvciBiaW5kaW5nIHRvIG90aGVyIGxh
bmd1YWdlcy4KKy8vIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCwgZG8gbm90IGVkaXQgaXQu
CisvLworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIF9fT1BFTlZSX0FQSV9GTEFU
X0hfXworI2RlZmluZSBfX09QRU5WUl9BUElfRkxBVF9IX18KKyNpZiBkZWZpbmVkKCBfV0lOMzIg
KSB8fCBkZWZpbmVkKCBfX2NsYW5nX18gKQorI3ByYWdtYSBvbmNlCisjZW5kaWYKKworI2lmZGVm
IF9fY3BsdXNwbHVzCisjZGVmaW5lIEVYVEVSTl9DIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5l
IEVYVEVSTl9DCisjZW5kaWYKKworI2RlZmluZSBPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSBfX3N0
ZGNhbGwKKworLy8gT1BFTlZSIEFQSSBleHBvcnQgbWFjcm8KKyNpZiBkZWZpbmVkKCBfV0lOMzIg
KSAmJiAhZGVmaW5lZCggX1gzNjAgKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX0VY
UE9SVFMgKQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MgX19kZWNsc3BlYyggZGxsZXhw
b3J0ICkKKyAgICAgICAjZWxpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX05PRExMICkKKyAgICAgICAj
ZGVmaW5lIFNfQVBJIEVYVEVSTl9DCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5lIFNfQVBJ
IGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsaW1wb3J0ICkgCisgICAgICAgI2VuZGlmIC8vIE9Q
RU5WUl9BUElfRVhQT1JUUworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKQorICAgICAgICNpZiBk
ZWZpbmVkKCBPUEVOVlJfQVBJX0VYUE9SVFMgKQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJO
X0MgX19hdHRyaWJ1dGVfXyAoKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgICAgI2Vsc2UK
KyAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVSTl9DCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9B
UElfRVhQT1JUUworI2Vsc2UgLy8gIVdJTjMyCisgICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9B
UElfRVhQT1JUUyApCisgICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbHNl
CisgICAgICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVOVlJf
QVBJX0VYUE9SVFMKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZiBkZWZpbmVk
KCBfX1dJTjMyICkKK3R5cGVkZWYgY2hhciBib29sOworI2Vsc2UKKyNpbmNsdWRlIDxzdGRib29s
Lmg+CisjZW5kaWYKKwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKKworCisvLyBPcGVuVlIgQ29u
c3RhbnRzCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heERyaXZlckRlYnVnUmVz
cG9uc2VTaXplID0gMzI3Njg7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2Vk
RGV2aWNlSW5kZXhfSG1kID0gMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFRy
YWNrZWREZXZpY2VDb3VudCA9IDE2Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJh
Y2tlZERldmljZUluZGV4T3RoZXIgPSA0Mjk0OTY3Mjk0Oworc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbG9uZyBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0gMDsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bkludDMyUHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGludCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbnQga191blN0cmluZ1Byb3BlcnR5VGFnID0gNTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBp
bnQga191bkhtZE1hdHJpeDM0UHJvcGVydHlUYWcgPSAyMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGludCBrX3VuSG1kVmVjdG9yNFByb3BlcnR5VGFnID0gMjM7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOwor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQg
PSAxMDAwMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFByb3BlcnR5U3RyaW5n
U2l6ZSA9IDMyNzY4Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuQ29udHJvbGxlclN0
YXRlQXhpc0NvdW50ID0gNTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGtfdWxPdmVybGF5
SGFuZGxlSW52YWxpZCA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5TY3JlZW5z
aG90SGFuZGxlSW52YWxpZCA9IDA7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlN5c3RlbV9WZXJz
aW9uID0gIklWUlN5c3RlbV8wMTUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJFeHRlbmRlZERp
c3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKK3N0YXRpYyBjb25zdCBj
aGFyICogSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRDYW1lcmFfMDAzIjsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0g
MTI4Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwID0gInZyL2hv
bWUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciA9ICJ2
ci9nYW1lX3RoZWF0ZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJBcHBsaWNhdGlvbnNfVmVy
c2lvbiA9ICJJVlJBcHBsaWNhdGlvbnNfMDA2IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hh
cGVyb25lX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lXzAwMyI7CitzdGF0aWMgY29uc3QgY2hhciAq
IElWUkNoYXBlcm9uZVNldHVwX1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lU2V0dXBfMDA1IjsKK3N0
YXRpYyBjb25zdCBjaGFyICogSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBvc2l0b3Jf
MDIwIjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heEtleUxlbmd0
aCA9IDEyODsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heE5hbWVM
ZW5ndGggPSAxMjg7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5Q291
bnQgPSA2NDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlJbnRlcnNl
Y3Rpb25NYXNrUHJpbWl0aXZlc0NvdW50ID0gMzI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUk92
ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UgPSAiYmFzZSI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCA9ICJ0aXAiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9
ICJoYW5kZ3JpcCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9u
ZW50X1N0YXR1cyA9ICJzdGF0dXMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJSZW5kZXJNb2Rl
bHNfVmVyc2lvbiA9ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbnQga191bk5vdGlmaWNhdGlvblRleHRNYXhTaXplID0gMjU2Oworc3RhdGljIGNvbnN0IGNo
YXIgKiBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18wMDIiOwor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuTWF4U2V0dGluZ3NLZXlMZW5ndGggPSAxMjg7
CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3Nf
MDAyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0ZWFt
dnIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5n
ID0gInJlcXVpcmVIbWQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNl
ZERyaXZlcktleV9TdHJpbmcgPSAiZm9yY2VkRHJpdmVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURl
YnVnIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBl
X1N0cmluZyA9ICJkZWJ1Z1Byb2Nlc3NQaXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9FbmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNw
bGF5RGVidWdYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVi
dWdZX0ludDMyID0gImRpc3BsYXlEZWJ1Z1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lzdGVtQnV0dG9u
VG9BbGxBcHBzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9J
bnQzMiA9ICJsb2dsZXZlbCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfSVBE
X0Zsb2F0ID0gImlwZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dy
b3VuZF9TdHJpbmcgPSAiYmFja2dyb3VuZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0
ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURv
bWVQcm9qZWN0aW9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3Jv
dW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0g
ImJhY2tncm91bmREb21lUmFkaXVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9HcmlkQ29sb3JfU3RyaW5nID0gImdyaWRDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdl
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJp
dmVyc19Cb29sID0gImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGly
ZWN0TW9kZUVkaWRWaWQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RpcmVj
dE1vZGVFZGlkUGlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zm
c2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVu
dF9Cb29sID0gImJhc2VzdGF0aW9uUG93ZXJNYW5hZ2VtZW50IjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9j
ZXNzZXMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlbmRlclRhcmdldE11
bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0TXVsdGlwbGllciI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93
QXN5bmNSZXByb2plY3Rpb24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0Fs
bG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9
ICJmb3JjZVJlcHJvamVjdGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJf
Rm9yY2VGYWRlT25CYWRUcmFja2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMy
ID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZp
ZXdHZW9tZXRyeSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25p
dG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jv
b2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRE
YXNoYm9hcmRGcm9tQXBwTGF1bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNG
cm9tRGFzaGJvYXJkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVI
b21lQXBwID0gImVuYWJsZUhvbWVBcHAiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVh
bVZSX1NldEluaXRpYWxEZWZhdWx0SG9tZUFwcCA9ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAi
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdl
VGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJyZXRhaWxEZW1vIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAiaXBk
T2Zmc2V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0g
ImRyaXZlcl9saWdodGhvdXNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3Vz
ZV9EaXNhYmxlSU1VX0Jvb2wgPSAiZGlzYWJsZWltdSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0
aW9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlv
bkRlYnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFz
ZXN0YXRpb24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9y
eV9Cb29sID0gImRiaGlzdG9yeSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2Vj
dGlvbiA9ICJkcml2ZXJfbnVsbCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2Vy
aWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBr
X3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfTnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRo
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAi
d2luZG93SGVpZ2h0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJXaWR0
aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxf
UmVuZGVySGVpZ2h0X0ludDMyID0gInJlbmRlckhlaWdodCI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJv
bVZzeW5jVG9QaG90b25zIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9EaXNwbGF5
RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVxdWVuY3kiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CitzdGF0aWMg
Y29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9
ICJTdGF0dXNBbHdheXNPblRvcCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRl
cmZhY2VfTWluaW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5z
aG90cyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hv
dFR5cGVfSW50ID0gInNjcmVlbnNob3RUeXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
Tm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Ob3RpZmljYXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVy
YiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9h
cmQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRp
b25zID0gIlR1dG9yaWFsQ29tcGxldGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9L
ZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5
Ym9hcmRfU2NhbGVZID0gIlNjYWxlWSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJv
YXJkX09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0tleWJvYXJkX09mZnNldFkgPSAiT2Zmc2V0WSI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfUGVyZl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3Rp
dmUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAi
d2FybkluSE1EIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25j
ZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZf
QWxsb3dUaW1pbmdTdG9yZV9Cb29sID0gImFsbG93VGltaW5nU3RvcmUiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NP
bkV4aXQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0g
InBlcmZUZXN0RGF0YSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19TZWN0aW9uID0gImNvbGxpc2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJP
bl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29s
bGlzaW9uQm91bmRzQ2VudGVyTWFya2VyT24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9D
b2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3Bh
Y2VPbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlz
dGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxp
c2lvbkJvdW5kc0NvbG9yR2FtbWFSIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlz
aW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFH
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFC
X0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJv
dW5kc0NvbG9yR2FtbWFBIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX1NlY3Rp
b24gPSAiY2FtZXJhIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYV9Cb29sID0gImVuYWJsZUNhbWVyYSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJv
YXJkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNv
bGxpc2lvbkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19C
b29sID0gImVuYWJsZUNhbWVyYUZvclJvb21WaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19w
Y2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2Ft
bWFSIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFH
X0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9y
R2FtbWFCIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2Ft
bWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfQ2FtZXJhX0JvdW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVu
Z3RoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5n
ID0gIm9uUGxheWJhY2tEZXZpY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19P
blJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXli
YWNrTWlycm9yRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fT2ZmUGxh
eWJhY2tEZXZpY2VfU3RyaW5nID0gIm9mZlBsYXliYWNrRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZp
Y2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2
ZUhETUlHYWluIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJw
b3dlciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jv
b2wgPSAicG93ZXJPZmZPbkV4aXQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9U
dXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9G
bG9hdCA9ICJ0dXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9XYXRj
aGRvZ1RpbWVvdXQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNo
U3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJk
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9C
b29sID0gImVuYWJsZURhc2hib2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Rhc2hi
b2FyZF9BcmNhZGVNb2RlX0Jvb2wgPSAiYXJjYWRlTW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX21vZGVsc2tpbl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKK3N0YXRpYyBjb25zdCBj
aGFyICogSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiA9ICJJVlJTY3JlZW5zaG90c18wMDEiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBJVlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAx
IjsKKworLy8gT3BlblZSIEVudW1zCisKK3R5cGVkZWYgZW51bSBFVlJFeWUKK3sKKyAgICAgICBF
VlJFeWVfRXllX0xlZnQgPSAwLAorICAgICAgIEVWUkV5ZV9FeWVfUmlnaHQgPSAxLAorfSBFVlJF
eWU7CisKK3R5cGVkZWYgZW51bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBFVGV4dHVyZVR5cGVf
VGV4dHVyZVR5cGVfRGlyZWN0WCA9IDAsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBl
X09wZW5HTCA9IDEsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX1Z1bGthbiA9IDIs
CisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsCisgICAgICAg
RVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX0RpcmVjdFgxMiA9IDQsCit9IEVUZXh0dXJlVHlwZTsK
KwordHlwZWRlZiBlbnVtIEVDb2xvclNwYWNlCit7CisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JT
cGFjZV9BdXRvID0gMCwKKyAgICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0dhbW1hID0gMSwK
KyAgICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0xpbmVhciA9IDIsCit9IEVDb2xvclNwYWNl
OworCit0eXBlZGVmIGVudW0gRVRyYWNraW5nUmVzdWx0Cit7CisgICAgICAgRVRyYWNraW5nUmVz
dWx0X1RyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIEVUcmFja2luZ1Jl
c3VsdF9UcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAg
IEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlID0g
MTAxLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LID0g
MjAwLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9m
UmFuZ2UgPSAyMDEsCit9IEVUcmFja2luZ1Jlc3VsdDsKKwordHlwZWRlZiBlbnVtIEVUcmFja2Vk
RGV2aWNlQ2xhc3MKK3sKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VD
bGFzc19JbnZhbGlkID0gMCwKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZp
Y2VDbGFzc19ITUQgPSAxLAorICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmlj
ZUNsYXNzX0NvbnRyb2xsZXIgPSAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tl
ZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2VyID0gMywKKyAgICAgICBFVHJhY2tlZERldmljZUNs
YXNzX1RyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9IEVUcmFja2Vk
RGV2aWNlQ2xhc3M7CisKK3R5cGVkZWYgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7Cisg
ICAgICAgRVRyYWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxp
ZCA9IDAsCisgICAgICAgRVRyYWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJv
bGVfTGVmdEhhbmQgPSAxLAorICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENv
bnRyb2xsZXJSb2xlX1JpZ2h0SGFuZCA9IDIsCit9IEVUcmFja2VkQ29udHJvbGxlclJvbGU7CisK
K3R5cGVkZWYgZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luX1RyYWNraW5nVW5pdmVyc2VTZWF0ZWQgPSAwLAorICAgICAgIEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luX1RyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAgICAg
RVRyYWNraW5nVW5pdmVyc2VPcmlnaW5fVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRl
ZCA9IDIsCit9IEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luOworCit0eXBlZGVmIGVudW0gRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eQoreworICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9J
bnZhbGlkID0gMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdT
eXN0ZW1OYW1lX1N0cmluZyA9IDEwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX01vZGVsTnVtYmVyX1N0cmluZyA9IDEwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAxMDAyLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nID0gMTAwMywKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5n
ID0gMTAwNSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdGaXJt
d2FyZVZlcnNpb25fU3RyaW5nID0gMTAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfSGFyZHdhcmVSZXZpc2lvbl9TdHJpbmcgPSAxMDA3LAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAx
MDA4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Db25uZWN0ZWRXaXJlbGVz
c0RvbmdsZV9TdHJpbmcgPSAxMDA5LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EZXZpY2VJc1dpcmVsZXNzX0Jvb2wgPSAxMDEwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCA9IDEwMTIs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zv
cm1fTWF0cml4MzQgPSAxMDEzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9G
aXJtd2FyZV9VcGRhdGVBdmFpbGFibGVfQm9vbCA9IDEwMTQsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sID0gMTAxNSwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0
cmluZyA9IDEwMTYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhcmR3YXJl
UmV2aXNpb25fVWludDY0ID0gMTAxNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDEwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0ZQR0FWZXJzaW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCA9IDEwMjEsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RvbmdsZVZlcnNpb25fVWludDY0ID0gMTAy
MiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93
bl9Cb29sID0gMTAyMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FuVW5p
ZnlDb29yZGluYXRlU3lzdGVtV2l0aEhtZF9Cb29sID0gMTAyNCwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfQ29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCA9IDEwMjUsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0
YXR1c19Cb29sID0gMTAyNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2
aWNlQ2FuUG93ZXJPZmZfQm9vbCA9IDEwMjcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyA9IDEwMjgsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFzQ2FtZXJhX0Jvb2wgPSAxMDMwLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyA9
IDEwMzEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX0ZvcmNl
VXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJlZF9Cb29sID0gMTAzMywKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19C
b29sID0gMjAwMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vjb25kc0Zy
b21Wc3luY1RvUGhvdG9uc19GbG9hdCA9IDIwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0Rpc3BsYXlGcmVxdWVuY3lfRmxvYXQgPSAyMDAyLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0ID0gMjAw
NCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfUHJldmlvdXNVbml2ZXJzZUlk
X1VpbnQ2NCA9IDIwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3Bs
YXlGaXJtd2FyZVZlcnNpb25fVWludDY0ID0gMjAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfSXNPbkRlc2t0b3BfQm9vbCA9IDIwMDcsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ1R5cGVfSW50MzIgPSAyMDA4LAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCA9IDIw
MTAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0VkaWRWZW5kb3JJRF9JbnQz
MiA9IDIwMTEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0lt
YWdlTGVmdF9TdHJpbmcgPSAyMDEyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EaXNwbGF5TUNJbWFnZVJpZ2h0X1N0cmluZyA9IDIwMTMsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAg
IEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAxNSwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3Jt
X01hdHJpeDM0ID0gMjAxNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlz
cGxheUdDVHlwZV9JbnQzMiA9IDIwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0Rpc3BsYXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ1NjYWxlX0Zsb2F0ID0gMjAxOSwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgPSAyMDIwLAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAy
MDIxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFVf
RmxvYXQgPSAyMDIyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2Vu
dGVyTGVmdFZfRmxvYXQgPSAyMDIzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0gMjAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCA9IDIwMjUsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9IDIw
MjYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJlVmVy
c2lvbl9VaW50NjQgPSAyMDI3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9D
YW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyA9IDIwMjgsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlGUEdBVmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25f
VWludDY0ID0gMjAzMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxh
eUhhcmR3YXJlVmVyc2lvbl9VaW50NjQgPSAyMDMxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9BdWRpb0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDMyLAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9
IDIwMzMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NjcmVlbnNob3RIb3Jp
em9udGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNCwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfU2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zs
b2F0ID0gMjAzNSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheVN1
cHByZXNzZWRfQm9vbCA9IDIwMzYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlBbGxvd05pZ2h0TW9kZV9Cb29sID0gMjAzNywKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIwMzgsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0g
MjAzOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VO
dW1DaGFubmVsc19JbnQzMiA9IDIwNDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0Rpc3BsYXlNQ0ltYWdlRGF0YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0MiwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgPSAz
MDAwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TdXBwb3J0ZWRCdXR0b25z
X1VpbnQ2NCA9IDMwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMw
VHlwZV9JbnQzMiA9IDMwMDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4
aXMxVHlwZV9JbnQzMiA9IDMwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0F4aXMyVHlwZV9JbnQzMiA9IDMwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0F4aXMzVHlwZV9JbnQzMiA9IDMwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX0F4aXM0VHlwZV9JbnQzMiA9IDMwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0NvbnRyb2xsZXJSb2xlSGludF9JbnQzMiA9IDMwMDcsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAw
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld1JpZ2h0RGVn
cmVlc19GbG9hdCA9IDQwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zp
ZWxkT2ZWaWV3VG9wRGVncmVlc19GbG9hdCA9IDQwMDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCA9IDQwMDMsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1RyYWNraW5nUmFuZ2VNaW5pbXVtTWV0ZXJz
X0Zsb2F0ID0gNDAwNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tp
bmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgPSA0MDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfSWNvblBhdGhOYW1lX1N0cmluZyA9IDUwMDAsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nID0g
NTAwMSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERl
dmljZVNlYXJjaGluZ19TdHJpbmcgPSA1MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nID0gNTAwMywK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVJl
YWR5X1N0cmluZyA9IDUwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VSZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcg
PSA1MDA2LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU3RhbmRieV9TdHJpbmcgPSA1MDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0
YXJ0ID0gNTEwMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhp
ZGRlbkFyZWFfQmluYXJ5X0VuZCA9IDUxNTAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0luc3RhbGxQYXRoX1N0cmluZyA9IDYwMDEsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAw
MDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX0VuZCA9IDEwOTk5LAorfSBFVHJhY2tlZERldmljZVByb3BlcnR5OworCit0eXBlZGVm
IGVudW0gRVRyYWNrZWRQcm9wZXJ0eUVycm9yCit7CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yX1RyYWNrZWRQcm9wX1N1Y2Nlc3MgPSAwLAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJv
cl9UcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBlID0gMSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5
RXJyb3JfVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VDbGFzcyA9IDIsCisgICAgICAgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsID0gMywKKyAgICAgICBFVHJh
Y2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ID0gNCwKKyAgICAg
ICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZERldmljZSA9IDUsCisg
ICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNl
cnZlciA9IDYsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1ZhbHVl
Tm90UHJvdmlkZWRCeURldmljZSA9IDcsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1Ry
YWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwKKyAgICAgICBF
VHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCA9IDEwLAor
ICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9u
ID0gMTEsCit9IEVUcmFja2VkUHJvcGVydHlFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlN1Ym1p
dEZsYWdzCit7CisgICAgICAgRVZSU3VibWl0RmxhZ3NfU3VibWl0X0RlZmF1bHQgPSAwLAorICAg
ICAgIEVWUlN1Ym1pdEZsYWdzX1N1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkID0g
MSwKKyAgICAgICBFVlJTdWJtaXRGbGFnc19TdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAyLAorICAg
ICAgIEVWUlN1Ym1pdEZsYWdzX1N1Ym1pdF9SZXNlcnZlZCA9IDQsCit9IEVWUlN1Ym1pdEZsYWdz
OworCit0eXBlZGVmIGVudW0gRVZSU3RhdGUKK3sKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1Vu
ZGVmaW5lZCA9IC0xLAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfT2ZmID0gMCwKKyAgICAgICBF
VlJTdGF0ZV9WUlN0YXRlX1NlYXJjaGluZyA9IDEsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9T
ZWFyY2hpbmdfQWxlcnQgPSAyLAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfUmVhZHkgPSAzLAor
ICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfUmVhZHlfQWxlcnQgPSA0LAorICAgICAgIEVWUlN0YXRl
X1ZSU3RhdGVfTm90UmVhZHkgPSA1LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfU3RhbmRieSA9
IDYsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3LAorfSBFVlJT
dGF0ZTsKKwordHlwZWRlZiBlbnVtIEVWUkV2ZW50VHlwZQoreworICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X05vbmUgPSAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRE
ZXZpY2VBY3RpdmF0ZWQgPSAxMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tl
ZERldmljZURlYWN0aXZhdGVkID0gMTAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Ry
YWNrZWREZXZpY2VVcGRhdGVkID0gMTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Ry
YWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCA9IDEwNCwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9JcGRDaGFuZ2VkID0gMTA1LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgPSAxMDYsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfTGVhdmVTdGFuZGJ5TW9kZSA9IDEwNywKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgPSAxMDgsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfTGVuc0Rpc3RvcnRpb25DaGFuZ2VkID0gMTEwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1Byb3BlcnR5Q2hhbmdlZCA9IDExMSwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9CdXR0b25VbnByZXNzID0gMjAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRv
blRvdWNoID0gMjAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVudG91Y2gg
PSAyMDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTW91c2VNb3ZlID0gMzAwLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X01vdXNlQnV0dG9uRG93biA9IDMwMSwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0ZvY3VzRW50ZXIgPSAzMDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZl
bnRfRm9jdXNMZWF2ZSA9IDMwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JvbGwg
PSAzMDUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVG91Y2hQYWRNb3ZlID0gMzA2LAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgPSAzMDcsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkID0gNDAwLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCA9IDQwMSwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY2VuZUZvY3VzTG9zdCA9IDQwMiwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X1NjZW5lQXBwbGljYXRpb25DaGFuZ2VkID0gNDA0LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkID0gNDA1LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1NjZW5lQXBwbGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgPSA0MTAsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9IDQxMSwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9PdmVybGF5U2hvd24gPSA1MDAsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfT3ZlcmxheUhpZGRlbiA9IDUwMSwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQgPSA1MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfRGFzaGJvYXJkRGVhY3RpdmF0ZWQgPSA1MDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfRGFzaGJvYXJkVGh1bWJTZWxlY3RlZCA9IDUwNCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZS
RXZlbnRfUmVzZXREYXNoYm9hcmQgPSA1MDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRf
UmVuZGVyVG9hc3QgPSA1MDcsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VMb2Fk
ZWQgPSA1MDgsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2hvd0tleWJvYXJkID0gNTA5
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0hpZGVLZXlib2FyZCA9IDUxMCwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ID0gNTEy
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdl
ZCA9IDUxMywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRv
bkRvd24gPSA1MTQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVC
dXR0b25VcCA9IDUxNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VHJp
Z2dlcmVkID0gNTE2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdlRmFpbGVkID0g
NTE3LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVk
ID0gNTE4LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90ID0g
NTIwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkID0gNTIyLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCA9IDUy
MywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hi
b2FyZCA9IDUyNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJk
RGV2aWNlQ2hhbmdlZCA9IDUyNSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmlj
YXRpb25fU2hvd24gPSA2MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0
aW9uX0hpZGRlbiA9IDYwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRp
b25fQmVnaW5JbnRlcmFjdGlvbiA9IDYwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9O
b3RpZmljYXRpb25fRGVzdHJveWVkID0gNjAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1F1aXQgPSA3MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJvY2Vzc1F1aXQgPSA3
MDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21wdCA9
IDcwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAz
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lRGF0YUhhc0NoYW5nZWQgPSA4
MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkID0gODAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRh
SGFzQ2hhbmdlZCA9IDgwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVT
ZXR0aW5nc0hhdmVDaGFuZ2VkID0gODAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nl
YXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXVk
aW9TZXR0aW5nc0hhdmVDaGFuZ2VkID0gODIwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X0JhY2tncm91bmRTZXR0aW5nSGFzQ2hhbmdlZCA9IDg1MCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9DYW1lcmFTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X1JlcHJvamVjdGlvblNldHRpbmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTMs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODU0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZl
Q2hhbmdlZCA9IDg1NSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TdGF0dXNVcGRhdGUg
PSA5MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgPSAxMDAw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCA9IDEx
MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCA9
IDExMDEsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ID0gMTIwMSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9LZXlib2FyZERvbmUgPSAxMjAyLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0
ZWQgPSAxMzAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNp
dGlvbk5ld0FwcFN0YXJ0ZWQgPSAxMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Fw
cGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X0FwcGxpY2F0aW9uTWltZVR5cGVMb2FkID0gMTMwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisg
ICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9
IDE0MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5k
b3dIaWRkZW4gPSAxNDAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3Jf
Q2hhcGVyb25lQm91bmRzU2hvd24gPSAxNDEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtID0g
MTUwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlk
ZW9TdHJlYW0gPSAxNTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1l
cmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50
X1RyYWNrZWRDYW1lcmFfRWRpdGluZ1N1cmZhY2UgPSAxNTUwLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgPSAxNjAx
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9GaWRlbGl0eUxl
dmVsID0gMTYwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9D
bG9zZWQgPSAxNjUwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVu
ZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kID0gMTk5OTksCit9IEVWUkV2ZW50VHlwZTsKKwordHlw
ZWRlZiBlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7CisgICAgICAgRURldmljZUFjdGl2aXR5
TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAgRURldmlj
ZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9JZGxlID0gMCwKKyAgICAgICBF
RGV2aWNlQWN0aXZpdHlMZXZlbF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlv
biA9IDEsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZl
bF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCA9IDIsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2
ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5ID0gMywKK30gRURldmljZUFjdGl2aXR5
TGV2ZWw7CisKK3R5cGVkZWYgZW51bSBFVlJCdXR0b25JZAoreworICAgICAgIEVWUkJ1dHRvbklk
X2tfRUJ1dHRvbl9TeXN0ZW0gPSAwLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BcHBs
aWNhdGlvbk1lbnUgPSAxLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9HcmlwID0gMiwK
KyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fRFBhZF9MZWZ0ID0gMywKKyAgICAgICBFVlJC
dXR0b25JZF9rX0VCdXR0b25fRFBhZF9VcCA9IDQsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0
dG9uX0RQYWRfUmlnaHQgPSA1LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0Rv
d24gPSA2LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BID0gNywKKyAgICAgICBFVlJC
dXR0b25JZF9rX0VCdXR0b25fUHJveGltaXR5U2Vuc29yID0gMzEsCisgICAgICAgRVZSQnV0dG9u
SWRfa19FQnV0dG9uX0F4aXMwID0gMzIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4
aXMxID0gMzMsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMyID0gMzQsCisgICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMzID0gMzUsCisgICAgICAgRVZSQnV0dG9uSWRf
a19FQnV0dG9uX0F4aXM0ID0gMzYsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFt
VlJfVG91Y2hwYWQgPSAzMiwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9U
cmlnZ2VyID0gMzMsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0Rhc2hib2FyZF9CYWNr
ID0gMiwKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fTWF4ID0gNjQsCit9IEVWUkJ1dHRv
bklkOworCit0eXBlZGVmIGVudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBFVlJNb3VzZUJ1
dHRvbl9WUk1vdXNlQnV0dG9uX0xlZnQgPSAxLAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91
c2VCdXR0b25fUmlnaHQgPSAyLAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25f
TWlkZGxlID0gNCwKK30gRVZSTW91c2VCdXR0b247CisKK3R5cGVkZWYgZW51bSBFSGlkZGVuQXJl
YU1lc2hUeXBlCit7CisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVz
aF9TdGFuZGFyZCA9IDAsCisgICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVh
TWVzaF9JbnZlcnNlID0gMSwKKyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFy
ZWFNZXNoX0xpbmVMb29wID0gMiwKKyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRl
bkFyZWFNZXNoX01heCA9IDMsCit9IEVIaWRkZW5BcmVhTWVzaFR5cGU7CisKK3R5cGVkZWYgZW51
bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVf
a19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBl
X2tfZUNvbnRyb2xsZXJBeGlzX1RyYWNrUGFkID0gMSwKKyAgICAgICBFVlJDb250cm9sbGVyQXhp
c1R5cGVfa19lQ29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZV9rX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywKK30gRVZSQ29udHJvbGxl
ckF4aXNUeXBlOworCit0eXBlZGVmIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQor
eworICAgICAgIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50T3V0
cHV0X09TRXZlbnRzID0gMCwKKyAgICAgICBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0Nv
bnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9IEVWUkNvbnRyb2xsZXJFdmVudE91
dHB1dFR5cGU7CisKK3R5cGVkZWYgZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAg
ICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9
IDAsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVf
SU5URVJNRURJQVRFID0gMSwKKyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9TUVVBUkVTID0gMiwKKyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVf
Q09MTElTSU9OX0JPVU5EU19TVFlMRV9BRFZBTkNFRCA9IDMsCisgICAgICAgRUNvbGxpc2lvbkJv
dW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfTk9ORSA9IDQsCisgICAgICAgRUNvbGxp
c2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQgPSA1LAorfSBFQ29s
bGlzaW9uQm91bmRzU3R5bGU7CisKK3R5cGVkZWYgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZS
T3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX1Vua25vd25PdmVybGF5ID0gMTAsCisgICAgICAg
RVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUgPSAxMSwKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfUGVybWlzc2lvbkRlbmllZCA9IDEyLAor
ICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRl
ZCA9IDEzLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2li
aWxpdHlUeXBlID0gMTQsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tl
eVRvb0xvbmcgPSAxNSwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTmFt
ZVRvb0xvbmcgPSAxNiwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5
SW5Vc2UgPSAxNywKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdU
cmFuc2Zvcm1UeXBlID0gMTgsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9y
X0ludmFsaWRUcmFja2VkRGV2aWNlID0gMTksCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3Zl
cmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMCwKKyAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfVGh1bWJuYWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgRVZS
T3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0FycmF5VG9vU21hbGwgPSAyMiwKKyAgICAgICBF
VlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAg
IEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDI0LAorICAg
ICAgIEVWUk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlID0gMjUs
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUlu
VXNlID0gMjYsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05vTmVpZ2hi
b3IgPSAyNywKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVG9vTWFueU1h
c2tQcmltaXRpdmVzID0gMjksCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9y
X0JhZE1hc2tQcmltaXRpdmUgPSAzMCwKK30gRVZST3ZlcmxheUVycm9yOworCit0eXBlZGVmIGVu
dW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBw
bGljYXRpb25fT3RoZXIgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0
aW9uX1NjZW5lID0gMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9P
dmVybGF5ID0gMiwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9CYWNr
Z3JvdW5kID0gMywKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9VdGls
aXR5ID0gNCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9WUk1vbml0
b3IgPSA1LAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1N0ZWFtV2F0
Y2hkb2cgPSA2LAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX01heCA9
IDcsCit9IEVWUkFwcGxpY2F0aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUkZpcm13YXJlRXJy
b3IKK3sKKyAgICAgICBFVlJGaXJtd2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwK
KyAgICAgICBFVlJGaXJtd2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0gMSwKKyAg
ICAgICBFVlJGaXJtd2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK30gRVZSRmly
bXdhcmVFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAg
ICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZp
Y2F0aW9uSWQgPSAxMDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRp
b25FcnJvcl9Ob3RpZmljYXRpb25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgRVZSTm90aWZpY2F0
aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwK
KyAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdp
dGhVc2VyVmFsdWVBbHJlYWR5RXhpc3RzID0gMTAzLAorfSBFVlJOb3RpZmljYXRpb25FcnJvcjsK
KwordHlwZWRlZiBlbnVtIEVWUkluaXRFcnJvcgoreworICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVW5rbm93
biA9IDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9u
Tm90Rm91bmQgPSAxMDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5z
dGFsbGF0aW9uQ29ycnVwdCA9IDEwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
SW5pdF9WUkNsaWVudERMTE5vdEZvdW5kID0gMTAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUklu
aXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZCA9IDEwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQgPSAxMDQsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgPSAxMDUsCisgICAgICAgRVZSSW5p
dEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW52YWxpZEludGVyZmFjZSA9IDEwNiwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9
IDEwNywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCA9
IDEwOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXpl
ZCA9IDEwOSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0
cnlOb3RGb3VuZCA9IDExMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9O
b0NvbmZpZ1BhdGggPSAxMTEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
Tm9Mb2dQYXRoID0gMTEyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1Bh
dGhSZWdpc3RyeU5vdFdyaXRhYmxlID0gMTEzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkID0gMTE0LAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Jbml0X1JldHJ5ID0gMTE1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDExNiwKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfSW5pdF9Bbm90aGVyQXBwTGF1bmNoaW5nID0gMTE3LAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCA9IDExOCwKKyAgICAg
ICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5k
QXBwID0gMTIxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdFN1cHBv
cnRlZFdpdGhDb21wb3NpdG9yID0gMTIyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgPSAxMjMsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgPSAxMjQsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfSG1kRHJpdmVySWRJc05vbmUgPSAxMjUsCisgICAgICAgRVZSSW5p
dEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCA9IDEyNiwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCA9
IDEyNywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFy
dHVwRmFpbGVkID0gMTI4LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0xv
d1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgPSAxMjksCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSA9IDEzMCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEz
MSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVk
SW5TZXR0aW5ncyA9IDEzMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9W
UkRhc2hib2FyZE5vdEZvdW5kID0gMTMzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCA9IDEzNCwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCA9IDIwMCwKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfRHJpdmVyX1Vua25vd24gPSAyMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duID0gMjAyLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkID0gMjAzLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSA9IDIwNCwKKyAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCA9IDIwNiwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCA9IDIwNywKKyAg
ICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9
IDIwOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZp
Y2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgPSAzMDAsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkID0gMzAxLAorICAg
ICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0g
MzAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRG
YWlsZWQgPSAzMDMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19NdXRleElu
aXRGYWlsZWQgPSAzMDQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19GYWls
ZWQgPSAzMDUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9y
Q29ubmVjdEZhaWxlZCA9IDMwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9
IDMwOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQg
PSA0MDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFI
YXJkd2FyZVJlcXVpcmVkID0gNDAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9D
b21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgRVZSSW5pdEVy
cm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFp
bGVkID0gNDA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19VbmFibGVUb0Nvbm5lY3RUb09jdWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIEVWUkluaXRF
cnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSA9
IDExMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0ID0gMTEwMiwKKyAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcg
PSAxMTAzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9Db25maWdUb29CaWcgPSAxMTA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCA9IDExMDUsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJs
ZVRvSW5pdFpMaWIgPSAxMTA2LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJs
ZVRvU2VuZFVzZXJEYXRhU3RhcnQgPSAxMTA4LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAx
MTA5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCA9IDExMTAsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1Jhbmdl
ID0gMTExMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5p
dEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrID0g
MTExMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxs
YXRpb25Ob3RGb3VuZCA9IDIwMDAsCit9IEVWUkluaXRFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVW
UlNjcmVlbnNob3RUeXBlCit7CisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90
VHlwZV9Ob25lID0gMCwKKyAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBl
X01vbm8gPSAxLAorICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3Rl
cmVvID0gMiwKKyAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX0N1YmVt
YXAgPSAzLAorICAgICAgIEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bh
bm9yYW1hID0gNCwKKyAgICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX1N0
ZXJlb1Bhbm9yYW1hID0gNSwKK30gRVZSU2NyZWVuc2hvdFR5cGU7CisKK3R5cGVkZWYgZW51bSBF
VlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBFVlJTY3JlZW5zaG90UHJv
cGVydHlGaWxlbmFtZXNfVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAs
CisgICAgICAgRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSU2NyZWVuc2hvdFByb3Bl
cnR5RmlsZW5hbWVzX1ZSID0gMSwKK30gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzOwor
Cit0eXBlZGVmIGVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgPSAx
MDAsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0lu
dmFsaWRIYW5kbGUgPSAxMDEsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tl
ZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUhlYWRlclZlcnNpb24gPSAxMDIsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyA9IDEw
MywKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSVBD
RmFpbHVyZSA9IDEwNCwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSA9IDEwNSwKKyAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSA9
IDEwNiwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
RnJhbWVCdWZmZXJpbmdGYWlsdXJlID0gMTA3LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgPSAxMDgsCisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1
cmVJZCA9IDEwOSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJh
RXJyb3JfSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgRVZSVHJhY2tl
ZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQg
PSAxMTEsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9y
X1NoYXJlZFRleHR1cmVGYWlsdXJlID0gMTEyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAgICAgIEVW
UlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQg
PSAxMTQsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9y
X0ludmFsaWRGcmFtZUJ1ZmZlclNpemUgPSAxMTUsCit9IEVWUlRyYWNrZWRDYW1lcmFFcnJvcjsK
KwordHlwZWRlZiBlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQg
PSAwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJh
bWVUeXBlX1VuZGlzdG9ydGVkID0gMSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
X1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQgPSAyLAorICAgICAg
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9
IEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlv
bkVycm9yCit7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
Tm9uZSA9IDAsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
QXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZS
QXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0ID0gMTAxLAorICAgICAgIEVWUkFwcGxpY2F0aW9u
RXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX05vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgRVZS
QXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAor
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBs
aWNhdGlvbiA9IDEwNCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25F
cnJvcl9JUENGYWlsZWQgPSAxMDUsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxp
Y2F0aW9uRXJyb3JfQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZlc3QgPSAxMDcs
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFw
cGxpY2F0aW9uID0gMTA4LAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlv
bkVycm9yX0xhdW5jaEZhaWxlZCA9IDEwOSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZS
QXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDExMCwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNz
ID0gMTExLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX09s
ZEFwcGxpY2F0aW9uUXVpdHRpbmcgPSAxMTIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9W
UkFwcGxpY2F0aW9uRXJyb3JfVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAgRVZSQXBw
bGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJUb29TbWFsbCA9
IDIwMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Qcm9w
ZXJ0eU5vdFNldCA9IDIwMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRp
b25FcnJvcl9Vbmtub3duUHJvcGVydHkgPSAyMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJv
cl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30gRVZSQXBwbGlj
YXRpb25FcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKK3sKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0
cmluZyA9IDAsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJv
cGVydHlfTGF1bmNoVHlwZV9TdHJpbmcgPSAxMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3Bl
cnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAor
ICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFy
eVBhdGhfU3RyaW5nID0gMTMsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxp
Y2F0aW9uUHJvcGVydHlfQXJndW1lbnRzX1N0cmluZyA9IDE0LAorICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgPSAxNSwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlv
bl9TdHJpbmcgPSA1MCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRp
b25Qcm9wZXJ0eV9OZXdzVVJMX1N0cmluZyA9IDUxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJv
cGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmcgPSA1MiwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Tb3VyY2VfU3Ry
aW5nID0gNTMsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJv
cGVydHlfSXNEYXNoYm9hcmRPdmVybGF5X0Jvb2wgPSA2MCwKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0luc3Rh
bmNlZF9Cb29sID0gNjIsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0
aW9uUHJvcGVydHlfSXNJbnRlcm5hbF9Cb29sID0gNjMsCisgICAgICAgRVZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAs
Cit9IEVWUkFwcGxpY2F0aW9uUHJvcGVydHk7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25TdGF0ZQoreworICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRl
X1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9u
VHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0g
MTAsCisgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNoID0gMTEsCisgICAgICAgRVZSQXBwbGlj
YXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNo
ZWQgPSAyMCwKK30gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGU7CisKK3R5cGVkZWYgZW51
bSBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlCit7CisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRp
b25TdGF0ZV9PSyA9IDEsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5n
ID0gMTAwLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3Rh
dGlvbk1heUhhdmVNb3ZlZCA9IDEwMSwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X1dhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVkID0gMTAyLAorICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGVfV2FybmluZ19TZWF0ZWRCb3VuZHNJbnZhbGlkID0gMTAzLAorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3IgPSAyMDAsCisgICAgICAgQ2hhcGVyb25lQ2Fs
aWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCisgICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0g
MjAyLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJbnZh
bGlkID0gMjAzLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQ29sbGlz
aW9uQm91bmRzSW52YWxpZCA9IDIwNCwKK30gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZTsKKwor
dHlwZWRlZiBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7CisgICAgICAgRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfTGl2ZSA9IDEsCisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfVGVtcCA9IDIs
Cit9IEVDaGFwZXJvbmVDb25maWdGaWxlOworCit0eXBlZGVmIGVudW0gRUNoYXBlcm9uZUltcG9y
dEZsYWdzCit7CisgICAgICAgRUNoYXBlcm9uZUltcG9ydEZsYWdzX0VDaGFwZXJvbmVJbXBvcnRf
Qm91bmRzT25seSA9IDEsCit9IEVDaGFwZXJvbmVJbXBvcnRGbGFnczsKKwordHlwZWRlZiBlbnVt
IEVWUkNvbXBvc2l0b3JFcnJvcgoreworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBv
c2l0b3JFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3Np
dG9yRXJyb3JfUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZS
Q29tcG9zaXRvckVycm9yX0luY29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgRVZSQ29t
cG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzID0gMTAxLAorICAg
ICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSA9
IDEwMiwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RT
Y2VuZUFwcGxpY2F0aW9uID0gMTAzLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBv
c2l0b3JFcnJvcl9UZXh0dXJlSXNPbldyb25nRGV2aWNlID0gMTA0LAorICAgICAgIEVWUkNvbXBv
c2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0
ID0gMTA1LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9TaGFy
ZWRUZXh0dXJlc05vdFN1cHBvcnRlZCA9IDEwNiwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3Jf
VlJDb21wb3NpdG9yRXJyb3JfSW5kZXhPdXRPZlJhbmdlID0gMTA3LAorICAgICAgIEVWUkNvbXBv
c2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVkID0gMTA4LAorfSBF
VlJDb21wb3NpdG9yRXJyb3I7CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlJbnB1dE1ldGhvZAor
eworICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUgPSAwLAorICAgICAgIFZST3Zlcmxh
eUlucHV0TWV0aG9kX01vdXNlID0gMSwKK30gVlJPdmVybGF5SW5wdXRNZXRob2Q7CisKK3R5cGVk
ZWYgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlCit7CisgICAgICAgVlJPdmVybGF5VHJhbnNm
b3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fQWJzb2x1dGUgPSAwLAorICAgICAgIFZST3Zlcmxh
eVRyYW5zZm9ybVR5cGVfVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSA9
IDEsCisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fU3lz
dGVtT3ZlcmxheSA9IDIsCisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlU
cmFuc2Zvcm1fVHJhY2tlZENvbXBvbmVudCA9IDMsCit9IFZST3ZlcmxheVRyYW5zZm9ybVR5cGU7
CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlGbGFncworeworICAgICAgIFZST3ZlcmxheUZsYWdz
X05vbmUgPSAwLAorICAgICAgIFZST3ZlcmxheUZsYWdzX0N1cnZlZCA9IDEsCisgICAgICAgVlJP
dmVybGF5RmxhZ3NfUkdTUzRYID0gMiwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2Fy
ZFRhYiA9IDMsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0
LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dHYW1lcGFkRm9jdXMgPSA1LAorICAgICAgIFZS
T3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyA9IDYsCisgICAgICAgVlJPdmVybGF5Rmxh
Z3NfU2VuZFZSVG91Y2hwYWRFdmVudHMgPSA3LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dU
b3VjaFBhZFNjcm9sbFdoZWVsID0gOCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93
bmVyc2hpcFRvSW50ZXJuYWxQcm9jZXNzID0gOSwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRl
QnlTaWRlX1BhcmFsbGVsID0gMTAsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9D
cm9zc2VkID0gMTEsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwKKyAgICAg
ICBWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFtYSA9IDEzLAorICAgICAgIFZST3ZlcmxheUZs
YWdzX1NvcnRXaXRoTm9uU2NlbmVPdmVybGF5cyA9IDE0LAorICAgICAgIFZST3ZlcmxheUZsYWdz
X1Zpc2libGVJbkRhc2hib2FyZCA9IDE1LAorfSBWUk92ZXJsYXlGbGFnczsKKwordHlwZWRlZiBl
bnVtIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZQoreworICAgICAgIFZSTWVzc2FnZU92ZXJsYXlS
ZXNwb25zZV9CdXR0b25QcmVzc18wID0gMCwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9u
c2VfQnV0dG9uUHJlc3NfMSA9IDEsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1
dHRvblByZXNzXzIgPSAyLAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25Q
cmVzc18zID0gMywKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRT
eXN0ZW1PdmVybGF5ID0gNCwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRu
dEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlS
ZXNwb25zZV9BcHBsaWNhdGlvblF1aXQgPSA2LAorfSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7
CisKK3R5cGVkZWYgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKK3sKKyAgICAgICBFR2FtZXBh
ZFRleHRJbnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAg
IEVHYW1lcGFkVGV4dElucHV0TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkID0g
MSwKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVT
dWJtaXQgPSAyLAorfSBFR2FtZXBhZFRleHRJbnB1dE1vZGU7CisKK3R5cGVkZWYgZW51bSBFR2Ft
ZXBhZFRleHRJbnB1dExpbmVNb2RlCit7CisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9k
ZV9rX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICBFR2Ft
ZXBhZFRleHRJbnB1dExpbmVNb2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxl
TGluZXMgPSAxLAorfSBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlOworCit0eXBlZGVmIGVudW0g
RU92ZXJsYXlEaXJlY3Rpb24KK3sKKyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGly
ZWN0aW9uX1VwID0gMCwKKyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9u
X0Rvd24gPSAxLAorICAgICAgIEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fTGVm
dCA9IDIsCisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9SaWdodCA9
IDMsCisgICAgICAgRU92ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQs
Cit9IEVPdmVybGF5RGlyZWN0aW9uOworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVUeXBlCit7CisgICAgICAgRVZST3ZlcmxheUludGVyc2VjdGlvbk1h
c2tQcmltaXRpdmVUeXBlX092ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3Rhbmds
ZSA9IDAsCisgICAgICAgRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlX092
ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX0NpcmNsZSA9IDEsCit9IEVWUk92ZXJsYXlJ
bnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZlVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUlJlbmRlck1v
ZGVsRXJyb3IKK3sKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJv
cl9Ob25lID0gMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJv
cl9Mb2FkaW5nID0gMTAwLAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2Rl
bEVycm9yX05vdFN1cHBvcnRlZCA9IDIwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZS
UmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkQXJnID0gMzAwLAorICAgICAgIEVWUlJlbmRlck1vZGVs
RXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBFVlJS
ZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyA9IDMwMiwKKyAgICAg
ICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVNoYXBlcyA9
IDMwMywKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ub29N
YW55VmVydGljZXMgPSAzMDQsCisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1v
ZGVsRXJyb3JfTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVy
cm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9CdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBFVlJS
ZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3
LAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3Vn
aFRleENvb3JkcyA9IDMwOCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9k
ZWxFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDQwMCwKK30gRVZSUmVuZGVyTW9kZWxFcnJvcjsKKwor
dHlwZWRlZiBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Cit7CisgICAgICAgRVZSQ29tcG9uZW50
UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1N0YXRpYyA9IDEsCisgICAgICAgRVZSQ29t
cG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAyLAorICAgICAg
IEVWUkNvbXBvbmVudFByb3BlcnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkID0gNCwK
KyAgICAgICBFVlJDb21wb25lbnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzUHJlc3Nl
ZCA9IDgsCisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9J
c1Njcm9sbGVkID0gMTYsCit9IEVWUkNvbXBvbmVudFByb3BlcnR5OworCit0eXBlZGVmIGVudW0g
RVZSTm90aWZpY2F0aW9uVHlwZQoreworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNp
ZW50ID0gMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQgPSAxLAorICAg
ICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUgPSAy
LAorfSBFVlJOb3RpZmljYXRpb25UeXBlOworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9u
U3R5bGUKK3sKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Ob25lID0gMCwKKyAgICAgICBF
VlJOb3RpZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiA9IDEwMCwKKyAgICAgICBFVlJOb3RpZmlj
YXRpb25TdHlsZV9Db250YWN0X0Rpc2FibGVkID0gMjAwLAorICAgICAgIEVWUk5vdGlmaWNhdGlv
blN0eWxlX0NvbnRhY3RfRW5hYmxlZCA9IDIwMSwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHls
ZV9Db250YWN0X0FjdGl2ZSA9IDIwMiwKK30gRVZSTm90aWZpY2F0aW9uU3R5bGU7CisKK3R5cGVk
ZWYgZW51bSBFVlJTZXR0aW5nc0Vycm9yCit7CisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNl
dHRpbmdzRXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdz
RXJyb3JfSVBDRmFpbGVkID0gMSwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NF
cnJvcl9Xcml0ZUZhaWxlZCA9IDIsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdz
RXJyb3JfUmVhZEZhaWxlZCA9IDMsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdz
RXJyb3JfSnNvblBhcnNlRmFpbGVkID0gNCwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0
dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfSBFVlJTZXR0aW5nc0Vy
cm9yOworCit0eXBlZGVmIGVudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgRVZSU2Ny
ZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlNjcmVl
bnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMSwKKyAgICAgICBF
VlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9
IDEwMCwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91
bmQgPSAxMDEsCisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX0J1
ZmZlclRvb1NtYWxsID0gMTAyLAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNo
b3RFcnJvcl9TY3JlZW5zaG90QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9IEVWUlNjcmVlbnNo
b3RFcnJvcjsKKworCisvLyBPcGVuVlIgdHlwZWRlZnMKKwordHlwZWRlZiB1aW50MzJfdCBUcmFj
a2VkRGV2aWNlSW5kZXhfdDsKK3R5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKK3R5
cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3R5cGVkZWYgdm9pZCAqIGdsU2hh
cmVkVGV4dHVyZUhhbmRsZV90OwordHlwZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVp
bnQzMl90IGdsVUludF90OwordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7
Cit0eXBlZGVmIHVpbnQzMl90IFRyYWNrZWREZXZpY2VJbmRleF90OwordHlwZWRlZiB1aW50NjRf
dCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5
cGVUYWdfdDsKK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Cit0eXBlZGVmIHVp
bnQ2NF90IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hv
dEhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBWUkNvbXBvbmVudFByb3BlcnRpZXM7Cit0eXBl
ZGVmIGludDMyX3QgVGV4dHVyZUlEX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9u
SWQ7Cit0eXBlZGVmIEVWUkluaXRFcnJvciBIbWRFcnJvcjsKK3R5cGVkZWYgRVZSRXllIEhtZF9F
eWU7Cit0eXBlZGVmIEVDb2xvclNwYWNlIENvbG9yU3BhY2U7Cit0eXBlZGVmIEVUcmFja2luZ1Jl
c3VsdCBIbWRUcmFja2luZ1Jlc3VsdDsKK3R5cGVkZWYgRVRyYWNrZWREZXZpY2VDbGFzcyBUcmFj
a2VkRGV2aWNlQ2xhc3M7Cit0eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5n
VW5pdmVyc2VPcmlnaW47Cit0eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERl
dmljZVByb3BlcnR5OwordHlwZWRlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgVHJhY2tlZFByb3Bl
cnR5RXJyb3I7Cit0eXBlZGVmIEVWUlN1Ym1pdEZsYWdzIFZSU3VibWl0RmxhZ3NfdDsKK3R5cGVk
ZWYgRVZSU3RhdGUgVlJTdGF0ZV90OwordHlwZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29s
bGlzaW9uQm91bmRzU3R5bGVfdDsKK3R5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVy
cm9yOwordHlwZWRlZiBFVlJGaXJtd2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKK3R5cGVkZWYg
RVZSQ29tcG9zaXRvckVycm9yIFZSQ29tcG9zaXRvckVycm9yOwordHlwZWRlZiBFVlJTY3JlZW5z
aG90RXJyb3IgVlJTY3JlZW5zaG90c0Vycm9yOworCisvLyBPcGVuVlIgU3RydWN0cworCit0eXBl
ZGVmIHN0cnVjdCBIbWRNYXRyaXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsgLy9mbG9h
dFszXVs0XQorfSBIbWRNYXRyaXgzNF90OworCit0eXBlZGVmIHN0cnVjdCBIbWRNYXRyaXg0NF90
Cit7CisgICAgICAgZmxvYXQgbVs0XVs0XTsgLy9mbG9hdFs0XVs0XQorfSBIbWRNYXRyaXg0NF90
OworCit0eXBlZGVmIHN0cnVjdCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOyAv
L2Zsb2F0WzNdCit9IEhtZFZlY3RvcjNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yNF90
Cit7CisgICAgICAgZmxvYXQgdls0XTsgLy9mbG9hdFs0XQorfSBIbWRWZWN0b3I0X3Q7CisKK3R5
cGVkZWYgc3RydWN0IEhtZFZlY3RvcjNkX3QKK3sKKyAgICAgICBkb3VibGUgdlszXTsgLy9kb3Vi
bGVbM10KK30gSG1kVmVjdG9yM2RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7
CisgICAgICAgZmxvYXQgdlsyXTsgLy9mbG9hdFsyXQorfSBIbWRWZWN0b3IyX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IEhtZFF1YXRlcm5pb25fdAoreworICAgICAgIGRvdWJsZSB3OworICAgICAgIGRv
dWJsZSB4OworICAgICAgIGRvdWJsZSB5OworICAgICAgIGRvdWJsZSB6OworfSBIbWRRdWF0ZXJu
aW9uX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZENvbG9yX3QKK3sKKyAgICAgICBmbG9hdCByOwor
ICAgICAgIGZsb2F0IGc7CisgICAgICAgZmxvYXQgYjsKKyAgICAgICBmbG9hdCBhOworfSBIbWRD
b2xvcl90OworCit0eXBlZGVmIHN0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1k
VmVjdG9yM190IHZDb3JuZXJzWzRdOyAvL3N0cnVjdCB2cjo6SG1kVmVjdG9yM190WzRdCit9IEht
ZFF1YWRfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIHN0cnVjdCBI
bWRWZWN0b3IyX3QgdlRvcExlZnQ7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2Qm90dG9t
UmlnaHQ7Cit9IEhtZFJlY3QyX3Q7CisKK3R5cGVkZWYgc3RydWN0IERpc3RvcnRpb25Db29yZGlu
YXRlc190Cit7CisgICAgICAgZmxvYXQgcmZSZWRbMl07IC8vZmxvYXRbMl0KKyAgICAgICBmbG9h
dCByZkdyZWVuWzJdOyAvL2Zsb2F0WzJdCisgICAgICAgZmxvYXQgcmZCbHVlWzJdOyAvL2Zsb2F0
WzJdCit9IERpc3RvcnRpb25Db29yZGluYXRlc190OworCit0eXBlZGVmIHN0cnVjdCBUZXh0dXJl
X3QKK3sKKyAgICAgICB2b2lkICogaGFuZGxlOyAvLyB2b2lkICoKKyAgICAgICBlbnVtIEVUZXh0
dXJlVHlwZSBlVHlwZTsKKyAgICAgICBlbnVtIEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOworfSBU
ZXh0dXJlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAg
ICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAg
IHN0cnVjdCBIbWRWZWN0b3IzX3QgdlZlbG9jaXR5OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3Iz
X3QgdkFuZ3VsYXJWZWxvY2l0eTsKKyAgICAgICBlbnVtIEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tp
bmdSZXN1bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCBiRGV2aWNl
SXNDb25uZWN0ZWQ7Cit9IFRyYWNrZWREZXZpY2VQb3NlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZS
VGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQgdU1pbjsKKyAgICAgICBmbG9hdCB2TWlu
OworICAgICAgIGZsb2F0IHVNYXg7CisgICAgICAgZmxvYXQgdk1heDsKK30gVlJUZXh0dXJlQm91
bmRzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFfdAoreworICAgICAg
IHVpbnQ2NF90IG1fbkltYWdlOworICAgICAgIHN0cnVjdCBWa0RldmljZV9UICogbV9wRGV2aWNl
OyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCisgICAgICAgc3RydWN0IFZrUGh5c2ljYWxEZXZpY2Vf
VCAqIG1fcFBoeXNpY2FsRGV2aWNlOyAvLyBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICoKKyAg
ICAgICBzdHJ1Y3QgVmtJbnN0YW5jZV9UICogbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0luc3Rh
bmNlX1QgKgorICAgICAgIHN0cnVjdCBWa1F1ZXVlX1QgKiBtX3BRdWV1ZTsgLy8gc3RydWN0IFZr
UXVldWVfVCAqCisgICAgICAgdWludDMyX3QgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICB1
aW50MzJfdCBtX25XaWR0aDsKKyAgICAgICB1aW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgdWlu
dDMyX3QgbV9uRm9ybWF0OworICAgICAgIHVpbnQzMl90IG1fblNhbXBsZUNvdW50OworfSBWUlZ1
bGthblRleHR1cmVEYXRhX3Q7CisKK3R5cGVkZWYgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAor
eworICAgICAgIHN0cnVjdCBJRDNEMTJSZXNvdXJjZSAqIG1fcFJlc291cmNlOyAvLyBzdHJ1Y3Qg
SUQzRDEyUmVzb3VyY2UgKgorICAgICAgIHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKiBtX3BD
b21tYW5kUXVldWU7IC8vIHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHVpbnQz
Ml90IG1fbk5vZGVNYXNrOworfSBEM0QxMlRleHR1cmVEYXRhX3Q7CisKK3R5cGVkZWYgc3RydWN0
IFZSRXZlbnRfQ29udHJvbGxlcl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOworfSBWUkV2
ZW50X0NvbnRyb2xsZXJfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7Cisg
ICAgICAgZmxvYXQgeDsKKyAgICAgICBmbG9hdCB5OworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsK
K30gVlJFdmVudF9Nb3VzZV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7
CisgICAgICAgZmxvYXQgeGRlbHRhOworICAgICAgIGZsb2F0IHlkZWx0YTsKKyAgICAgICB1aW50
MzJfdCByZXBlYXRDb3VudDsKK30gVlJFdmVudF9TY3JvbGxfdDsKKwordHlwZWRlZiBzdHJ1Y3Qg
VlJFdmVudF9Ub3VjaFBhZE1vdmVfdAoreworICAgICAgIGJvb2wgYkZpbmdlckRvd247CisgICAg
ICAgZmxvYXQgZmxTZWNvbmRzRmluZ2VyRG93bjsKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7
CisgICAgICAgZmxvYXQgZlZhbHVlWUZpcnN0OworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7Cisg
ICAgICAgZmxvYXQgZlZhbHVlWVJhdzsKK30gVlJFdmVudF9Ub3VjaFBhZE1vdmVfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgVlJFdmVudF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVs
VXNlclZhbHVlOworICAgICAgIHVpbnQzMl90IG5vdGlmaWNhdGlvbklkOworfSBWUkV2ZW50X05v
dGlmaWNhdGlvbl90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAg
ICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAgYm9vbCBi
Rm9yY2VkOworfSBWUkV2ZW50X1Byb2Nlc3NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9P
dmVybGF5X3QKK3sKKyAgICAgICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworfSBWUkV2ZW50X092
ZXJsYXlfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHVp
bnQzMl90IHN0YXR1c1N0YXRlOworfSBWUkV2ZW50X1N0YXR1c190OworCit0eXBlZGVmIHN0cnVj
dCBWUkV2ZW50X0tleWJvYXJkX3QKK3sKKyAgICAgICBjaGFyICogY05ld0lucHV0WzhdOyAvL2No
YXJbOF0KKyAgICAgICB1aW50NjRfdCB1VXNlclZhbHVlOworfSBWUkV2ZW50X0tleWJvYXJkX3Q7
CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRl
cnM7Cit9IFZSRXZlbnRfSXBkX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25l
X3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25QcmV2aW91c1VuaXZlcnNlOworICAgICAgIHVpbnQ2
NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKK30gVlJFdmVudF9DaGFwZXJvbmVfdDsKKwordHlwZWRl
ZiBzdHJ1Y3QgVlJFdmVudF9SZXNlcnZlZF90Cit7CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQw
OworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMTsKK30gVlJFdmVudF9SZXNlcnZlZF90OworCit0
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMy
X3QgbV9uRmlkZWxpdHlMZXZlbDsKK30gVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29s
IGJSZXNldEJ5U3lzdGVtTWVudTsKK30gVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Q7CisK
K3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3Qg
aGFuZGxlOworICAgICAgIHVpbnQzMl90IHR5cGU7Cit9IFZSRXZlbnRfU2NyZWVuc2hvdF90Owor
Cit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Cit7CisgICAgICAg
ZmxvYXQgcHJvZ3Jlc3M7Cit9IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90
IHBpZDsKKyAgICAgICB1aW50MzJfdCB1bkFyZ3NIYW5kbGU7Cit9IFZSRXZlbnRfQXBwbGljYXRp
b25MYXVuY2hfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFj
ZV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBu
VmlzdWFsTW9kZTsKK30gVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90OworCit0eXBlZGVm
IHN0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICB1aW50MzJfdCB1blZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZTsKK30gVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90OworCit0
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Byb3BlcnR5X3QKK3sKKyAgICAgICBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IGNvbnRhaW5lcjsKKyAgICAgICBlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcDsKK30gVlJFdmVudF9Qcm9wZXJ0eV90OworCit0eXBlZGVmIHN0cnVjdCBIaWRkZW5B
cmVhTWVzaF90Cit7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHBWZXJ0ZXhEYXRhOyAv
LyBjb25zdCBzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCAqCisgICAgICAgdWludDMyX3QgdW5Ucmlh
bmdsZUNvdW50OworfSBIaWRkZW5BcmVhTWVzaF90OworCit0eXBlZGVmIHN0cnVjdCBWUkNvbnRy
b2xsZXJBeGlzX3QKK3sKKyAgICAgICBmbG9hdCB4OworICAgICAgIGZsb2F0IHk7Cit9IFZSQ29u
dHJvbGxlckF4aXNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAorewor
ICAgICAgIHVpbnQzMl90IHVuUGFja2V0TnVtOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJl
c3NlZDsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisgICAgICAgc3RydWN0IFZS
Q29udHJvbGxlckF4aXNfdCByQXhpc1s1XTsgLy9zdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNf
dFs1XQorfSBWUkNvbnRyb2xsZXJTdGF0ZV90OworCit0eXBlZGVmIHN0cnVjdCBDb21wb3NpdG9y
X092ZXJsYXlTZXR0aW5ncworeworICAgICAgIHVpbnQzMl90IHNpemU7CisgICAgICAgYm9vbCBj
dXJ2ZWQ7CisgICAgICAgYm9vbCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGU7CisgICAg
ICAgZmxvYXQgZGlzdGFuY2U7CisgICAgICAgZmxvYXQgYWxwaGE7CisgICAgICAgZmxvYXQgdU9m
ZnNldDsKKyAgICAgICBmbG9hdCB2T2Zmc2V0OworICAgICAgIGZsb2F0IHVTY2FsZTsKKyAgICAg
ICBmbG9hdCB2U2NhbGU7CisgICAgICAgZmxvYXQgZ3JpZERpdnM7CisgICAgICAgZmxvYXQgZ3Jp
ZFdpZHRoOworICAgICAgIGZsb2F0IGdyaWRTY2FsZTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
NDRfdCB0cmFuc2Zvcm07Cit9IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzOworCit0eXBlZGVm
IHN0cnVjdCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBlbnVtIEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICB1aW50MzJfdCBuV2lk
dGg7CisgICAgICAgdWludDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQ
aXhlbDsKKyAgICAgICB1aW50MzJfdCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBzdHJ1Y3QgVHJh
Y2tlZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfSBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3Q7CisKK3R5cGVkZWYgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190
Cit7CisgICAgICAgY2hhciAqIHBjaEtleTsgLy8gY29uc3QgY2hhciAqCisgICAgICAgY2hhciAq
IHBjaFZhbHVlOyAvLyBjb25zdCBjaGFyICoKK30gQXBwT3ZlcnJpZGVLZXlzX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IENvbXBvc2l0b3JfRnJhbWVUaW1pbmcKK3sKKyAgICAgICB1aW50MzJfdCBtX25T
aXplOworICAgICAgIHVpbnQzMl90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMyX3QgbV9u
TnVtRnJhbWVQcmVzZW50czsKKyAgICAgICB1aW50MzJfdCBtX25OdW1NaXNQcmVzZW50ZWQ7Cisg
ICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25S
ZXByb2plY3Rpb25GbGFnczsKKyAgICAgICBkb3VibGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7
CisgICAgICAgZmxvYXQgbV9mbFByZVN1Ym1pdEdwdU1zOworICAgICAgIGZsb2F0IG1fZmxQb3N0
U3VibWl0R3B1TXM7CisgICAgICAgZmxvYXQgbV9mbFRvdGFsUmVuZGVyR3B1TXM7CisgICAgICAg
ZmxvYXQgbV9mbENvbXBvc2l0b3JSZW5kZXJHcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9z
aXRvclJlbmRlckNwdU1zOworICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOwor
ICAgICAgIGZsb2F0IG1fZmxDbGllbnRGcmFtZUludGVydmFsTXM7CisgICAgICAgZmxvYXQgbV9m
bFByZXNlbnRDYWxsQ3B1TXM7CisgICAgICAgZmxvYXQgbV9mbFdhaXRGb3JQcmVzZW50Q3B1TXM7
CisgICAgICAgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7CisgICAgICAgZmxvYXQgbV9mbFdhaXRH
ZXRQb3Nlc0NhbGxlZE1zOworICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAg
ICAgZmxvYXQgbV9mbE5ld0ZyYW1lUmVhZHlNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRv
clVwZGF0ZVN0YXJ0TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsK
KyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlclN0YXJ0TXM7CisgICAgICAgVHJhY2tl
ZERldmljZVBvc2VfdCBtX0htZFBvc2U7Cit9IENvbXBvc2l0b3JfRnJhbWVUaW1pbmc7CisKK3R5
cGVkZWYgc3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMy
X3QgbV9uUGlkOworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAg
dWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXBy
b2plY3RlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFy
dHVwOworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAg
ICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWlu
dDMyX3QgbV9uTnVtTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRz
TG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAg
ICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgdWlu
dDMyX3QgbV9uTnVtVGltZWRPdXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50
c1RpbWVkT3V0OworICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsK
KyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0OworfSBDb21w
b3NpdG9yX0N1bXVsYXRpdmVTdGF0czsKKwordHlwZWRlZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJz
ZWN0aW9uUGFyYW1zX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZTb3VyY2U7Cisg
ICAgICAgc3RydWN0IEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgIGVudW0gRVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbjsKK30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1z
X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAorewor
ICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdlBvaW50OworICAgICAgIHN0cnVjdCBIbWRWZWN0
b3IzX3Qgdk5vcm1hbDsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZVVnM7CisgICAgICAg
ZmxvYXQgZkRpc3RhbmNlOworfSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Q7CisKK3R5
cGVkZWYgc3RydWN0IEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdAoreworICAgICAgIGZsb2F0
IG1fZmxUb3BMZWZ0WDsKKyAgICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgZmxvYXQg
bV9mbFdpZHRoOworICAgICAgIGZsb2F0IG1fZmxIZWlnaHQ7Cit9IEludGVyc2VjdGlvbk1hc2tS
ZWN0YW5nbGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90Cit7
CisgICAgICAgZmxvYXQgbV9mbENlbnRlclg7CisgICAgICAgZmxvYXQgbV9mbENlbnRlclk7Cisg
ICAgICAgZmxvYXQgbV9mbFJhZGl1czsKK30gSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90OworCit0
eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Cit7CisgICAgICAgc3Ry
dWN0IEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRSZW5kZXJNb2RlbDsKKyAgICAg
ICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudExvY2FsOworICAgICAg
IFZSQ29tcG9uZW50UHJvcGVydGllcyB1UHJvcGVydGllczsKK30gUmVuZGVyTW9kZWxfQ29tcG9u
ZW50U3RhdGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAg
ICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBzdHJ1Y3QgSG1kVmVj
dG9yM190IHZOb3JtYWw7CisgICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07IC8vZmxvYXRb
Ml0KK30gUmVuZGVyTW9kZWxfVmVydGV4X3Q7CisKK3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVs
X1RleHR1cmVNYXBfdAoreworICAgICAgIHVpbnQxNl90IHVuV2lkdGg7CisgICAgICAgdWludDE2
X3QgdW5IZWlnaHQ7CisgICAgICAgdWludDhfdCAqIHJ1YlRleHR1cmVNYXBEYXRhOyAvLyBjb25z
dCB1aW50OF90ICoKK30gUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90OworCit0eXBlZGVmIHN0cnVj
dCBSZW5kZXJNb2RlbF90Cit7CisgICAgICAgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICog
clZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgor
ICAgICAgIHVpbnQzMl90IHVuVmVydGV4Q291bnQ7CisgICAgICAgdWludDE2X3QgKiBySW5kZXhE
YXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50
OworICAgICAgIFRleHR1cmVJRF90IGRpZmZ1c2VUZXh0dXJlSWQ7Cit9IFJlbmRlck1vZGVsX3Q7
CisKK3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sK
KyAgICAgICBib29sIGJTY3JvbGxXaGVlbFZpc2libGU7Cit9IFJlbmRlck1vZGVsX0NvbnRyb2xs
ZXJNb2RlX1N0YXRlX3Q7CisKK3R5cGVkZWYgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7
CisgICAgICAgdm9pZCAqIG1fcEltYWdlRGF0YTsgLy8gdm9pZCAqCisgICAgICAgaW50MzJfdCBt
X25XaWR0aDsKKyAgICAgICBpbnQzMl90IG1fbkhlaWdodDsKKyAgICAgICBpbnQzMl90IG1fbkJ5
dGVzUGVyUGl4ZWw7Cit9IE5vdGlmaWNhdGlvbkJpdG1hcF90OworCit0eXBlZGVmIHN0cnVjdCBD
T3BlblZSQ29udGV4dAoreworICAgICAgIGludHB0cl90IG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2
cjo6SVZSU3lzdGVtICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZTsgLy8gY2xhc3Mg
dnI6OklWUkNoYXBlcm9uZSAqCisgICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmVTZXR1cDsg
Ly8gY2xhc3MgdnI6OklWUkNoYXBlcm9uZVNldHVwICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUkNv
bXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoKKyAgICAgICBpbnRwdHJfdCBt
X3BWUk92ZXJsYXk7IC8vIGNsYXNzIHZyOjpJVlJPdmVybGF5ICoKKyAgICAgICBpbnRwdHJfdCBt
X3BWUlJlc291cmNlczsgLy8gY2xhc3MgdnI6OklWUlJlc291cmNlcyAqCisgICAgICAgaW50cHRy
X3QgbV9wVlJSZW5kZXJNb2RlbHM7IC8vIGNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAg
ICAgIGludHB0cl90IG1fcFZSRXh0ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5k
ZWREaXNwbGF5ICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlNldHRpbmdzOyAvLyBjbGFzcyB2cjo6
SVZSU2V0dGluZ3MgKgorICAgICAgIGludHB0cl90IG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFz
cyB2cjo6SVZSQXBwbGljYXRpb25zICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlRyYWNrZWRDYW1l
cmE7IC8vIGNsYXNzIHZyOjpJVlJUcmFja2VkQ2FtZXJhICoKKyAgICAgICBpbnRwdHJfdCBtX3BW
UlNjcmVlbnNob3RzOyAvLyBjbGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKgorfSBDT3BlblZSQ29u
dGV4dDsKKworCit0eXBlZGVmIHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJl
c2VydmVkOworICAgICAgIFZSRXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAg
VlJFdmVudF9Nb3VzZV90IG1vdXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOwor
ICAgICAgIFZSRXZlbnRfUHJvY2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVudF9Ob3RpZmlj
YXRpb25fdCBub3RpZmljYXRpb247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsK
KyAgICAgICBWUkV2ZW50X1N0YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50X0tleWJvYXJk
X3Qga2V5Ym9hcmQ7CisgICAgICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAgVlJFdmVudF9D
aGFwZXJvbmVfdCBjaGFwZXJvbmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBw
ZXJmb3JtYW5jZVRlc3Q7CisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1v
dmU7CisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VS
ZXNldDsKK30gVlJFdmVudF9EYXRhX3Q7CisKKy8qKiBBbiBldmVudCBwb3N0ZWQgYnkgdGhlIHNl
cnZlciB0byBhbGwgcnVubmluZyBhcHBsaWNhdGlvbnMgKi8KK3N0cnVjdCBWUkV2ZW50X3QKK3sK
KyAgICAgICB1aW50MzJfdCBldmVudFR5cGU7IC8vIEVWUkV2ZW50VHlwZSBlbnVtCisgICAgICAg
VHJhY2tlZERldmljZUluZGV4X3QgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIGZsb2F0IGV2
ZW50QWdlU2Vjb25kczsKKyAgICAgICAvLyBldmVudCBkYXRhIG11c3QgYmUgdGhlIGVuZCBvZiB0
aGUgc3RydWN0IGFzIGl0cyBzaXplIGlzIHZhcmlhYmxlCisgICAgICAgVlJFdmVudF9EYXRhX3Qg
ZGF0YTsKK307CisKKwordHlwZWRlZiB1bmlvbgoreworICAgICAgIEludGVyc2VjdGlvbk1hc2tS
ZWN0YW5nbGVfdCBtX1JlY3RhbmdsZTsKKyAgICAgICBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3Qg
bV9DaXJjbGU7Cit9IFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90Owor
CitzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90Cit7CisgICAgICAg
RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7
CisgICAgICAgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9Qcmlt
aXRpdmU7Cit9OworCisKKy8vIE9wZW5WUiBGdW5jdGlvbiBQb2ludGVyIFRhYmxlcworCitzdHJ1
Y3QgVlJfSVZSU3lzdGVtX0ZuVGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKSh1aW50MzJfdCAqIHBuV2lk
dGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOworICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UHJvamVjdGlvbk1hdHJpeCkoRVZSRXllIGVFeWUs
IGZsb2F0IGZOZWFyWiwgZmxvYXQgZkZhclopOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRQcm9qZWN0aW9uUmF3KShFVlJFeWUgZUV5ZSwgZmxvYXQgKiBwZkxlZnQs
IGZsb2F0ICogcGZSaWdodCwgZmxvYXQgKiBwZlRvcCwgZmxvYXQgKiBwZkJvdHRvbSk7CisgICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXB1dGVEaXN0b3J0aW9uKShFVlJF
eWUgZUV5ZSwgZmxvYXQgZlUsIGZsb2F0IGZWLCBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVz
X3QgKiBwRGlzdG9ydGlvbkNvb3JkaW5hdGVzKTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4MzRf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEV5ZVRvSGVhZFRyYW5zZm9ybSkoRVZSRXll
IGVFeWUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUaW1lU2lu
Y2VMYXN0VnN5bmMpKGZsb2F0ICogcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICog
cHVsRnJhbWVDb3VudGVyKTsKKyAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0RDNEOUFkYXB0ZXJJbmRleCkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0RFhHSU91dHB1dEluZm8pKGludDMyX3QgKiBwbkFkYXB0ZXJJbmRleCk7Cisg
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGlzcGxheU9uRGVza3RvcCko
KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGlzcGxheVZpc2li
aWxpdHkpKGJvb2wgYklzVmlzaWJsZU9uRGVza3RvcCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UpKEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25z
RnJvbU5vdywgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2VB
cnJheSwgdWludDMyX3QgdW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZXNldFNlYXRlZFplcm9Qb3NlKSgpOworICAg
ICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2Vh
dGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgc3Ry
dWN0IEhtZE1hdHJpeDM0X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSYXdaZXJvUG9z
ZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFz
cykoRVRyYWNrZWREZXZpY2VDbGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBUcmFja2VkRGV2aWNl
SW5kZXhfdCAqIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJfdCB1blRyYWNrZWRE
ZXZpY2VJbmRleEFycmF5Q291bnQsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRpdmVUb1Ry
YWNrZWREZXZpY2VJbmRleCk7CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWwgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCkoVHJhY2tlZERl
dmljZUluZGV4X3QgdW5EZXZpY2VJZCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkFwcGx5VHJhbnNmb3JtKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRw
dXRQb3NlLCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSwg
c3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwVHJhbnNmb3JtKTsKKyAgICAgICBUcmFja2VkRGV2aWNl
SW5kZXhfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNrZWREZXZpY2VJbmRleEZv
ckNvbnRyb2xsZXJSb2xlKShFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7Cisg
ICAgICAgRVRyYWNrZWRDb250cm9sbGVyUm9sZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4KTsKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0VHJhY2tlZERldmljZUNsYXNzKShUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
SXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUlu
ZGV4KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm9vbFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3Ip
OworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RmxvYXRUcmFja2Vk
RGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsK
KyAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SW50MzJUcmFja2Vk
RGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsK
KyAgICAgICB1aW50NjRfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFVpbnQ2NFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3Ip
OworICAgICAgIHN0cnVjdCBIbWRNYXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0TWF0cml4MzRUcmFja2VkRGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVu
RGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yICogcEVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3Qg
dW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBjaGFyICogcGNoVmFs
dWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9y
KTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcm9wRXJyb3JO
YW1lRnJvbUVudW0pKEVUcmFja2VkUHJvcGVydHlFcnJvciBlcnJvcik7CisgICAgICAgYm9vbCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvbGxOZXh0RXZlbnQpKHN0cnVjdCBWUkV2ZW50X3Qg
KiBwRXZlbnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqUG9sbE5leHRFdmVudFdpdGhQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9y
aWdpbiBlT3JpZ2luLCBzdHJ1Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJF
dmVudCwgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAg
Y2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVt
KShFVlJFdmVudFR5cGUgZVR5cGUpOworICAgICAgIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SGlkZGVuQXJlYU1lc2gpKEVWUkV5ZSBlRXllLCBF
SGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRDb250cm9sbGVyU3RhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJv
bGxlckRldmljZUluZGV4LCBWUkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwg
dWludDMyX3QgdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UpKEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVPcmlnaW4sIFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LCBWUkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3Qg
dW5Db250cm9sbGVyU3RhdGVTaXplLCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFj
a2VkRGV2aWNlUG9zZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRy
aWdnZXJIYXB0aWNQdWxzZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNl
SW5kZXgsIHVpbnQzMl90IHVuQXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9T
ZWMpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJ1dHRvbklk
TmFtZUZyb21FbnVtKShFVlJCdXR0b25JZCBlQnV0dG9uSWQpOworICAgICAgIGNoYXIgKiAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSko
RVZSQ29udHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNhcHR1cmVJbnB1dEZvY3VzKSgpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlSW5wdXRGb2N1cykoKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9j
ZXNzKSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRHJpdmVy
RGVidWdSZXF1ZXN0KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjaGFyICog
cGNoUmVxdWVzdCwgY2hhciAqIHBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNl
QnVmZmVyU2l6ZSk7CisgICAgICAgRVZSRmlybXdhcmVFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZp
Y2VJbmRleCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xl
ZGdlUXVpdF9FeGl0aW5nKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJFeHRl
bmRlZERpc3BsYXlfRm5UYWJsZQoreworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRXaW5kb3dCb3VuZHMpKGludDMyX3QgKiBwblgsIGludDMyX3QgKiBwblksIHVpbnQz
Ml90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEV5ZU91dHB1dFZpZXdwb3J0KShFVlJFeWUgZUV5ZSwgdWlu
dDMyX3QgKiBwblgsIHVpbnQzMl90ICogcG5ZLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90
ICogcG5IZWlnaHQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRE
WEdJT3V0cHV0SW5mbykoaW50MzJfdCAqIHBuQWRhcHRlckluZGV4LCBpbnQzMl90ICogcG5BZGFw
dGVyT3V0cHV0SW5kZXgpOworfTsKKworc3RydWN0IFZSX0lWUlRyYWNrZWRDYW1lcmFfRm5UYWJs
ZQoreworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUVy
cm9yTmFtZUZyb21FbnVtKShFVlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKTsKKyAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYXND
YW1lcmEpKFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqIHBIYXNDYW1l
cmEpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldENhbWVyYUZyYW1lU2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4
LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICogcG5XaWR0
aCwgdWludDMyX3QgKiBwbkhlaWdodCwgdWludDMyX3QgKiBwbkZyYW1lQnVmZmVyU2l6ZSk7Cisg
ICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
Q2FtZXJhSW50cmluc2ljcykoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqIHBGb2NhbExl
bmd0aCwgSG1kVmVjdG9yMl90ICogcENlbnRlcik7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhUHJvamVjdGlvbikoVHJhY2tl
ZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIGZsb2F0IGZsWk5lYXIsIGZsb2F0IGZsWkZhciwgSG1kTWF0cml4NDRfdCAqIHBQ
cm9qZWN0aW9uKTsKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpBY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKShUcmFja2VkRGV2aWNlSW5k
ZXhfdCBuRGV2aWNlSW5kZXgsIFRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIHBIYW5kbGUpOworICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVh
c2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENh
bWVyYSk7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcikoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhU
cmFja2VkQ2FtZXJhLCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQg
KiBwRnJhbWVCdWZmZXIsIHVpbnQzMl90IG5GcmFtZUJ1ZmZlclNpemUsIENhbWVyYVZpZGVvU3Ry
ZWFtRnJhbWVIZWFkZXJfdCAqIHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6
ZSk7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmlj
ZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIFZSVGV4dHVyZUJv
dW5kc190ICogcFRleHR1cmVCb3VuZHMsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBw
bkhlaWdodCk7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0VmlkZW9TdHJlYW1UZXh0dXJlRDNEMTEpKFRyYWNrZWRDYW1lcmFIYW5kbGVf
dCBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2
b2lkICogcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3Vy
Y2VWaWV3LCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBwRnJhbWVIZWFkZXIsIHVp
bnQzMl90IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKShUcmFja2Vk
Q2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgZ2xVSW50X3QgKiBwZ2xUZXh0dXJlSWQsIENhbWVyYVZpZGVvU3RyZWFtRnJh
bWVIZWFkZXJfdCAqIHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7Cisg
ICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVs
ZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRD
YW1lcmEsIGdsVUludF90IGdsVGV4dHVyZUlkKTsKK307CisKK3N0cnVjdCBWUl9JVlJBcHBsaWNh
dGlvbnNfRm5UYWJsZQoreworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpBZGRBcHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNoQXBwbGljYXRp
b25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOworICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVBcHBsaWNhdGlvbk1hbmlm
ZXN0KShjaGFyICogcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNBcHBsaWNhdGlvbkluc3RhbGxlZCkoY2hhciAq
IHBjaEFwcEtleSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRBcHBsaWNhdGlvbkNvdW50KSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgpKHVpbnQzMl90IHVu
QXBwbGljYXRpb25JbmRleCwgY2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBL
ZXlCdWZmZXJMZW4pOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKSh1aW50MzJfdCB1blByb2Nl
c3NJZCwgY2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4p
OworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpM
YXVuY2hBcHBsaWNhdGlvbikoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaFRlbXBsYXRlQXBwbGljYXRp
b24pKGNoYXIgKiBwY2hUZW1wbGF0ZUFwcEtleSwgY2hhciAqIHBjaE5ld0FwcEtleSwgc3RydWN0
IEFwcE92ZXJyaWRlS2V5c190ICogcEtleXMsIHVpbnQzMl90IHVuS2V5cyk7CisgICAgICAgRVZS
QXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0
aW9uRnJvbU1pbWVUeXBlKShjaGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBwY2hBcmdzKTsKKyAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNo
RGFzaGJvYXJkT3ZlcmxheSkoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKShjaGFyICogcGNoQXBw
S2V5KTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqSWRlbnRpZnlBcHBsaWNhdGlvbikodWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKiBwY2hB
cHBLZXkpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBw
bGljYXRpb25Qcm9jZXNzSWQpKGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKShF
VlJBcHBsaWNhdGlvbkVycm9yIGVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcpKGNoYXIgKiBwY2hBcHBL
ZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBjaGFyICogcGNoUHJvcGVydHlW
YWx1ZUJ1ZmZlciwgdWludDMyX3QgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLCBFVlJBcHBsaWNh
dGlvbkVycm9yICogcGVFcnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEFwcGxpY2F0aW9uUHJvcGVydHlCb29sKShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBs
aWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3Ip
OworICAgICAgIHVpbnQ2NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRp
b25Qcm9wZXJ0eVVpbnQ2NCkoY2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0
eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0QXBwbGljYXRpb25B
dXRvTGF1bmNoKShjaGFyICogcGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShj
aGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBw
Y2hBcHBLZXksIGNoYXIgKiBwY2hNaW1lVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFyICogcGNo
TWltZVR5cGUsIGNoYXIgKiBwY2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVy
TGVuKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRp
b25TdXBwb3J0ZWRNaW1lVHlwZXMpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIgKiBwY2hNaW1lVHlw
ZXNCdWZmZXIsIHVpbnQzMl90IHVuTWltZVR5cGVzQnVmZmVyKTsKKyAgICAgICB1aW50MzJfdCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5
cGUpKGNoYXIgKiBwY2hNaW1lVHlwZSwgY2hhciAqIHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZl
ciwgdWludDMyX3QgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgIHVpbnQzMl90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMp
KHVpbnQzMl90IHVuSGFuZGxlLCBjaGFyICogcGNoQXJncywgdWludDMyX3QgdW5BcmdzKTsKKyAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3Rh
cnRpbmdBcHBsaWNhdGlvbikoY2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBL
ZXlCdWZmZXJMZW4pOworICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhbnNpdGlvblN0YXRlKSgpOworICAgICAgIEVWUkFw
cGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpQZXJmb3JtQXBwbGljYXRp
b25QcmVsYXVuY2hDaGVjaykoY2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgY2hhciAqIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZy
b21FbnVtKShFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQpKCk7
CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxh
dW5jaEludGVybmFsUHJvY2VzcykoY2hhciAqIHBjaEJpbmFyeVBhdGgsIGNoYXIgKiBwY2hBcmd1
bWVudHMsIGNoYXIgKiBwY2hXb3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICB1aW50MzJfdCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCkoKTsKK307CisK
K3N0cnVjdCBWUl9JVlJDaGFwZXJvbmVfRm5UYWJsZQoreworICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGUgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDYWxpYnJhdGlvblN0YXRl
KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQbGF5QXJlYVNp
emUpKGZsb2F0ICogcFNpemVYLCBmbG9hdCAqIHBTaXplWik7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFBsYXlBcmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJl
Y3QpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRJbmZvKSgp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTY2VuZUNvbG9yKShz
dHJ1Y3QgSG1kQ29sb3JfdCBjb2xvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEJvdW5kc0NvbG9yKShzdHJ1Y3QgSG1kQ29sb3JfdCAqIHBPdXRwdXRDb2xvckFy
cmF5LCBpbnQgbk51bU91dHB1dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlz
dGFuY2UsIHN0cnVjdCBIbWRDb2xvcl90ICogcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICBi
b29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQXJlQm91bmRzVmlzaWJsZSkoKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRm9yY2VCb3VuZHNWaXNpYmxlKShib29s
IGJGb3JjZSk7Cit9OworCitzdHJ1Y3QgVlJfSVZSQ2hhcGVyb25lU2V0dXBfRm5UYWJsZQorewor
ICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21taXRXb3JraW5nQ29weSko
RUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlJldmVydFdvcmtpbmdDb3B5KSgpOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nUGxheUFyZWFTaXplKShmbG9hdCAqIHBTaXpl
WCwgZmxvYXQgKiBwU2l6ZVopOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRXb3JraW5nUGxheUFyZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7CisgICAg
ICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdDb2xsaXNpb25Cb3Vu
ZHNJbmZvKShzdHJ1Y3QgSG1kUXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1
YWRzQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZl
Q29sbGlzaW9uQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWlu
dDMyX3QgKiBwdW5RdWFkc0NvdW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBI
bWRNYXRyaXgzNF90ICogcG1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAg
ICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nU3RhbmRpbmdaZXJv
UG9zZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTdGFuZGlu
Z1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTZXRXb3JraW5nUGxheUFyZWFTaXplKShmbG9hdCBzaXplWCwgZmxvYXQgc2l6
ZVopOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nQ29s
bGlzaW9uQm91bmRzSW5mbykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMy
X3QgdW5RdWFkc0NvdW50KTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRy
aXgzNF90ICogcE1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBNYXRTdGFuZGluZ1plcm9Q
b3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpSZWxvYWRGcm9tRGlzaykoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSk7Cisg
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTZWF0ZWRaZXJv
UG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICogcFRhZ3NC
dWZmZXIsIHVpbnQzMl90IHVuVGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFn
c0J1ZmZlciwgdWludDMyX3QgKiBwdW5UYWdDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRR
dWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8pKHN0
cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7
CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkV4cG9ydExpdmVUb0J1ZmZl
cikoY2hhciAqIHBCdWZmZXIsIHVpbnQzMl90ICogcG5CdWZmZXJMZW5ndGgpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nKShj
aGFyICogcEJ1ZmZlciwgdWludDMyX3QgbkltcG9ydEZsYWdzKTsKK307CisKK3N0cnVjdCBWUl9J
VlJDb21wb3NpdG9yX0ZuVGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0VHJhY2tpbmdTcGFjZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbik7
CisgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRUcmFja2luZ1NwYWNlKSgpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKldhaXRHZXRQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3Nl
X3QgKiBwUmVuZGVyUG9zZUFycmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBz
dHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdh
bWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0TGFzdFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAq
IHBSZW5kZXJQb3NlQXJyYXksIHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVj
dCBUcmFja2VkRGV2aWNlUG9zZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBv
c2VBcnJheUNvdW50KTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmlj
ZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0
cHV0UG9zZSwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0R2FtZVBvc2UpOwor
ICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1p
dCkoRVZSRXllIGVFeWUsIHN0cnVjdCBUZXh0dXJlX3QgKiBwVGV4dHVyZSwgc3RydWN0IFZSVGV4
dHVyZUJvdW5kc190ICogcEJvdW5kcywgRVZSU3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzKTsKKyAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ2xlYXJMYXN0U3VibWl0dGVkRnJh
bWUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvc3RQcmVzZW50
SGFuZG9mZikoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJh
bWVUaW1pbmcpKHN0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMy
X3QgdW5GcmFtZXNBZ28pOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0RnJhbWVUaW1pbmdzKShzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1p
bmcsIHVpbnQzMl90IG5GcmFtZXMpOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0RnJhbWVUaW1lUmVtYWluaW5nKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRDdW11bGF0aXZlU3RhdHMpKHN0cnVjdCBDb21wb3NpdG9yX0N1bXVs
YXRpdmVTdGF0cyAqIHBTdGF0cywgdWludDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAg
IHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGYWRlVG9Db2xvcikoZmxvYXQgZlNlY29u
ZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwg
Ym9vbCBiQmFja2dyb3VuZCk7CisgICAgICAgc3RydWN0IEhtZENvbG9yX3QgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRDdXJyZW50RmFkZUNvbG9yKShib29sIGJCYWNrZ3JvdW5kKTsKKyAg
ICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRmFkZUdyaWQpKGZsb2F0IGZTZWNv
bmRzLCBib29sIGJGYWRlSW4pOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0Q3VycmVudEdyaWRBbHBoYSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTa3lib3hPdmVycmlkZSkoc3RydWN0IFRleHR1cmVf
dCAqIHBUZXh0dXJlcywgdWludDMyX3QgdW5UZXh0dXJlQ291bnQpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpDbGVhclNreWJveE92ZXJyaWRlKSgpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yQnJpbmdUb0Zyb250KSgpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yR29Ub0JhY2sp
KCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JRdWl0
KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Z1bGxzY3JlZW4p
KCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50
U2NlbmVGb2N1c1Byb2Nlc3MpKCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRMYXN0RnJhbWVSZW5kZXJlcikoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqQ2FuUmVuZGVyU2NlbmUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkhpZGVNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzTWlycm9yV2luZG93VmlzaWJsZSkoKTsKKyAgICAgICB2
b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcG9zaXRvckR1bXBJbWFnZXMpKCk7Cisg
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3VsZEFwcFJlbmRlcldpdGhM
b3dSZXNvdXJjZXMpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZv
cmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbikoYm9vbCBiT3ZlcnJpZGUpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGb3JjZVJlY29ubmVjdFByb2Nlc3MpKCk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1c3BlbmRSZW5kZXJpbmcpKGJv
b2wgYlN1c3BlbmQpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE1pcnJvclRleHR1cmVEM0QxMSkoRVZSRXllIGVFeWUsIHZvaWQgKiBwRDNE
MTFEZXZpY2VPclJlc291cmNlLCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlTWlycm9yVGV4dHVy
ZUQzRDExKSh2b2lkICogcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBFVlJDb21w
b3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRNaXJyb3JUZXh0dXJlR0wp
KEVWUkV5ZSBlRXllLCBnbFVJbnRfdCAqIHBnbFRleHR1cmVJZCwgZ2xTaGFyZWRUZXh0dXJlSGFu
ZGxlX3QgKiBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSkoZ2xVSW50X3QgZ2xUZXh0dXJl
SWQsIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvY2tHTFNoYXJlZFRleHR1cmVGb3JB
Y2Nlc3MpKGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlVubG9ja0dMU2hhcmVkVGV4dHVy
ZUZvckFjY2VzcykoZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxl
KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbklu
c3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKShjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVm
ZmVyU2l6ZSk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRW
dWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQpKHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Qg
KiBwUGh5c2ljYWxEZXZpY2UsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXpl
KTsKK307CisKK3N0cnVjdCBWUl9JVlJPdmVybGF5X0ZuVGFibGUKK3sKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpGaW5kT3ZlcmxheSkoY2hhciAqIHBj
aE92ZXJsYXlLZXksIFZST3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUpOworICAgICAg
IEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0ZU92ZXJsYXkp
KGNoYXIgKiBwY2hPdmVybGF5S2V5LCBjaGFyICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJP
dmVybGF5SGFuZGxlX3QgKiBwT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9y
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRGVzdHJveU92ZXJsYXkpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqU2V0SGlnaFF1YWxpdHlPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFZST3ZlcmxheUhhbmRsZV90IChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0SGlnaFF1YWxpdHlPdmVybGF5KSgpOworICAgICAgIHVpbnQzMl90IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUtleSkoVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwg
RVZST3ZlcmxheUVycm9yICogcEVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlOYW1lKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUsIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5
RXJyb3IgKiBwRXJyb3IpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE92ZXJsYXlJbWFnZURhdGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgdm9pZCAqIHB2QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90
ICogcHVuV2lkdGgsIHVpbnQzMl90ICogcHVuSGVpZ2h0KTsKKyAgICAgICBjaGFyICogKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0pKEVWUk92ZXJs
YXlFcnJvciBlcnJvcik7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCB1aW50MzJfdCB1blBJRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpHZXRPdmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1
bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlGbGFnKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5k
bGUsIFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCk7CisgICAgICAg
RVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUZsYWcp
KFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJs
YXlGbGFnLCBib29sICogcGJFbmFibGVkKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5Q29sb3IpKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgZmxvYXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3Zlcmxh
eUNvbG9yKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZSZWQs
IGZsb2F0ICogcGZHcmVlbiwgZmxvYXQgKiBwZkJsdWUpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBmQWxwaGEpOworICAgICAgIEVWUk92
ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUZXhlbEFzcGVj
dCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3BlY3Qp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlUZXhlbEFzcGVjdCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9h
dCAqIHBmVGV4ZWxBc3BlY3QpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgdWludDMyX3QgdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlTb3J0T3JkZXIpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKiBwdW5Tb3J0T3JkZXIpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlX
aWR0aEluTWV0ZXJzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZX
aWR0aEluTWV0ZXJzKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRPdmVybGF5V2lkdGhJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVy
bGF5SGFuZGxlLCBmbG9hdCAqIHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNl
UmFuZ2VJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBm
TWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAg
IEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBdXRv
Q3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgKiBwZk1pbkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICogcGZNYXhEaXN0YW5j
ZUluTWV0ZXJzKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBFVlJP
dmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZUNv
bG9yU3BhY2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2Ug
KiBwZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRl
eHR1cmVCb3VuZHMpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJs
YXlIYW5kbGUsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5k
cyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheVRyYW5zZm9ybVR5cGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwg
VlJPdmVybGF5VHJhbnNmb3JtVHlwZSAqIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgRVZST3Zl
cmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRyYW5zZm9ybUFi
c29sdXRlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJh
Y2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiAq
IHBlVHJhY2tpbmdPcmlnaW4sIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3Jp
Z2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90
IHVuVHJhY2tlZERldmljZSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmlj
ZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAq
IHB1blRyYWNrZWREZXZpY2UsIHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWREZXZp
Y2VUb092ZXJsYXlUcmFuc2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50
KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90
IHVuRGV2aWNlSW5kZXgsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZUNvbXBvbmVudCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBU
cmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1bkRldmljZUluZGV4LCBjaGFyICogcGNoQ29tcG9uZW50
TmFtZSwgdWludDMyX3QgdW5Db21wb25lbnROYW1lU2l6ZSk7CisgICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd092ZXJsYXkpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqSGlkZU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzT3ZlcmxheVZp
c2libGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3Zl
cmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhbnNmb3JtRm9yT3Zlcmxh
eUNvb3JkaW5hdGVzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgc3RydWN0IEhtZFZlY3RvcjJfdCBjb29y
ZGluYXRlc0luT3ZlcmxheSwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhbnNmb3JtKTsK
KyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9sbE5leHRPdmVybGF5RXZl
bnQpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZSRXZlbnRfdCAq
IHBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlJbnB1dE1ldGhvZCkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIHBlSW5wdXRN
ZXRob2QpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KlNldE92ZXJsYXlJbnB1dE1ldGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBWUk92ZXJsYXlJbnB1dE1ldGhvZCBlSW5wdXRNZXRob2QpOworICAgICAgIEVWUk92ZXJsYXlF
cnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlNb3VzZVNjYWxlKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwdmVj
TW91c2VTY2FsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqU2V0T3ZlcmxheU1vdXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rpb24pKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2Vj
dGlvblBhcmFtc190ICogcFBhcmFtcywgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3Vs
dHNfdCAqIHBSZXN1bHRzKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
SGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2
aWNlSW5kZXgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0hvdmVy
VGFyZ2V0T3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAg
ICBWUk92ZXJsYXlIYW5kbGVfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEdhbWVwYWRG
b2N1c092ZXJsYXkpKCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdG
b2N1c092ZXJsYXkpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlNldE92ZXJsYXlOZWlnaGJvcikoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwg
VlJPdmVybGF5SGFuZGxlX3QgdWxGcm9tLCBWUk92ZXJsYXlIYW5kbGVfdCB1bFRvKTsKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpNb3ZlR2FtZXBhZEZv
Y3VzVG9OZWlnaGJvcikoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFu
ZGxlX3QgdWxGcm9tKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpTZXRPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBzdHJ1Y3QgVGV4dHVyZV90ICogcFRleHR1cmUpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNsZWFyT3ZlcmxheVRleHR1cmUpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVJhdykoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB2b2lkICogcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lkdGgsIHVpbnQzMl90
IHVuSGVpZ2h0LCB1aW50MzJfdCB1bkRlcHRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5RnJvbUZpbGUpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgY2hhciAqIHBjaEZpbGVQYXRoKTsKKyAgICAgICBFVlJPdmVy
bGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICoqIHBOYXRpdmVUZXh0dXJlSGFu
ZGxlLCB2b2lkICogcE5hdGl2ZVRleHR1cmVSZWYsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJf
dCAqIHBIZWlnaHQsIHVpbnQzMl90ICogcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVUeXBlICogcEFQ
SVR5cGUsIEVDb2xvclNwYWNlICogcENvbG9yU3BhY2UsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNf
dCAqIHBUZXh0dXJlQm91bmRzKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICogcE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAg
IEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0
dXJlU2l6ZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHBX
aWR0aCwgdWludDMyX3QgKiBwSGVpZ2h0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDcmVhdGVEYXNoYm9hcmRPdmVybGF5KShjaGFyICogcGNoT3Zl
cmxheUtleSwgY2hhciAqIHBjaE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90
ICogcE1haW5IYW5kbGUsIFZST3ZlcmxheUhhbmRsZV90ICogcFRodW1ibmFpbEhhbmRsZSk7Cisg
ICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGFzaGJvYXJkVmlzaWJsZSko
KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNBY3RpdmVEYXNoYm9h
cmRPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERhc2hib2FyZE92ZXJs
YXlTY2VuZVByb2Nlc3MpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMy
X3QgdW5Qcm9jZXNzSWQpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgKiBwdW5Qcm9jZXNzSWQpOworICAgICAgIHZv
aWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTaG93RGFzaGJvYXJkKShjaGFyICogcGNoT3Zl
cmxheVRvU2hvdyk7CisgICAgICAgVHJhY2tlZERldmljZUluZGV4X3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKSgpOworICAgICAgIEVWUk92ZXJs
YXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3dLZXlib2FyZCkoRUdhbWVwYWRU
ZXh0SW5wdXRNb2RlIGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJ
bnB1dE1vZGUsIGNoYXIgKiBwY2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjaGFy
ICogcGNoRXhpc3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJW
YWx1ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
U2hvd0tleWJvYXJkRm9yT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBFR2FtZXBhZFRleHRJbnB1dE1vZGUgZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5l
TW9kZSBlTGluZUlucHV0TW9kZSwgY2hhciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNo
YXJNYXgsIGNoYXIgKiBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50
NjRfdCB1VXNlclZhbHVlKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEtleWJvYXJkVGV4dCkoY2hhciAqIHBjaFRleHQsIHVpbnQzMl90IGNjaFRleHQpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIaWRlS2V5Ym9hcmQpKCk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkVHJhbnNmb3Jt
QWJzb2x1dGUpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgc3RydWN0
IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsK
KyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRQb3NpdGlv
bkZvck92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEht
ZFJlY3QyX3QgYXZvaWRSZWN0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzaykoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZV90ICogcE1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1bk51bU1hc2tQcmltaXRpdmVzLCB1
aW50MzJfdCB1blByaW1pdGl2ZVNpemUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlGbGFncykoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHBGbGFncyk7CisgICAgICAgVlJNZXNzYWdlT3Zlcmxh
eVJlc3BvbnNlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd01lc3NhZ2VPdmVybGF5KShj
aGFyICogcGNoVGV4dCwgY2hhciAqIHBjaENhcHRpb24sIGNoYXIgKiBwY2hCdXR0b24wVGV4dCwg
Y2hhciAqIHBjaEJ1dHRvbjFUZXh0LCBjaGFyICogcGNoQnV0dG9uMlRleHQsIGNoYXIgKiBwY2hC
dXR0b24zVGV4dCk7Cit9OworCitzdHJ1Y3QgVlJfSVZSUmVuZGVyTW9kZWxzX0ZuVGFibGUKK3sK
KyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9h
ZFJlbmRlck1vZGVsX0FzeW5jKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJ1Y3QgUmVu
ZGVyTW9kZWxfdCAqKiBwcFJlbmRlck1vZGVsKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqRnJlZVJlbmRlck1vZGVsKShzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqIHBSZW5k
ZXJNb2RlbCk7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkxvYWRUZXh0dXJlX0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHN0cnVjdCBS
ZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKiogcHBUZXh0dXJlKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVRleHR1cmUpKHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0
dXJlTWFwX3QgKiBwVGV4dHVyZSk7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRUZXh0dXJlRDNEMTFfQXN5bmMpKFRleHR1cmVJRF90IHRl
eHR1cmVJZCwgdm9pZCAqIHBEM0QxMURldmljZSwgdm9pZCAqKiBwcEQzRDExVGV4dHVyZTJEKTsK
KyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9h
ZEludG9UZXh0dXJlRDNEMTFfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqIHBE
c3RUZXh0dXJlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVRl
eHR1cmVEM0QxMSkodm9pZCAqIHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgdWludDMyX3QgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJNb2RlbE5hbWUpKHVpbnQzMl90IHVuUmVu
ZGVyTW9kZWxJbmRleCwgY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5k
ZXJNb2RlbE5hbWVMZW4pOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0UmVuZGVyTW9kZWxDb3VudCkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudENvdW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1l
KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVu
dE5hbWUpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50SW5k
ZXgsIGNoYXIgKiBwY2hDb21wb25lbnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4p
OworICAgICAgIHVpbnQ2NF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50
QnV0dG9uTWFzaykoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVu
dE5hbWUpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29t
cG9uZW50UmVuZGVyTW9kZWxOYW1lKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICog
cGNoQ29tcG9uZW50TmFtZSwgY2hhciAqIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWlu
dDMyX3QgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRDb21wb25lbnRTdGF0ZSkoY2hhciAqIHBjaFJlbmRlck1v
ZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBw
Q29udHJvbGxlclN0YXRlLCBzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVf
dCAqIHBTdGF0ZSwgc3RydWN0IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiBwQ29tcG9u
ZW50U3RhdGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW5kZXJN
b2RlbEhhc0NvbXBvbmVudCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENv
bXBvbmVudE5hbWUpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
R2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNo
YXIgKiBwY2hUaHVtYm5haWxVUkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCBFVlJSZW5k
ZXJNb2RlbEVycm9yICogcGVFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCkoY2hhciAqIHBjaFJlbmRlck1v
ZGVsTmFtZSwgY2hhciAqIHBjaE9yaWdpbmFsUGF0aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhM
ZW4sIEVWUlJlbmRlck1vZGVsRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBjaGFyICogKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKShFVlJS
ZW5kZXJNb2RlbEVycm9yIGVycm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJOb3RpZmljYXRpb25z
X0ZuVGFibGUKK3sKKyAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNyZWF0ZU5vdGlmaWNhdGlvbikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCB1aW50NjRfdCB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBj
aGFyICogcGNoVGV4dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHN0cnVjdCBOb3RpZmlj
YXRpb25CaXRtYXBfdCAqIHBJbWFnZSwgVlJOb3RpZmljYXRpb25JZCAqIHBOb3RpZmljYXRpb25J
ZCk7CisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZW1vdmVOb3RpZmljYXRpb24pKFZSTm90aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQpOwor
fTsKKworc3RydWN0IFZSX0lWUlNldHRpbmdzX0ZuVGFibGUKK3sKKyAgICAgICBjaGFyICogKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKShFVlJT
ZXR0aW5nc0Vycm9yIGVFcnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKlN5bmMpKGJvb2wgYkZvcmNlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEJvb2wpKGNoYXIgKiBwY2hTZWN0
aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBFVlJTZXR0aW5nc0Vycm9y
ICogcGVFcnJvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldElu
dDMyKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5W
YWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpTZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hT
ZXR0aW5nc0tleSwgZmxvYXQgZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOwor
ICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTdHJpbmcpKGNoYXIgKiBw
Y2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIGNoYXIgKiBwY2hWYWx1ZSwgRVZSU2V0
dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRCb29sKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBF
VlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldEludDMyKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRp
bmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAgICAgZmxvYXQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBw
Y2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBj
aGFyICogcGNoU2V0dGluZ3NLZXksIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxl
biwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpSZW1vdmVTZWN0aW9uKShjaGFyICogcGNoU2VjdGlvbiwgRVZSU2V0dGlu
Z3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZW1vdmVLZXlJblNlY3Rpb24pKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGlu
Z3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKiBwZUVycm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJT
Y3JlZW5zaG90c19GblRhYmxlCit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqUmVxdWVzdFNjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5kbGVfdCAq
IHBPdXRTY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjaGFyICogcGNo
UHJldmlld0ZpbGVuYW1lLCBjaGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVu
c2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSG9va1NjcmVlbnNob3QpKEVWUlNj
cmVlbnNob3RUeXBlICogcFN1cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMpOworICAgICAgIEVW
UlNjcmVlbnNob3RUeXBlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2NyZWVuc2hvdFBy
b3BlcnR5VHlwZSkoU2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVl
bnNob3RFcnJvciAqIHBFcnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSkoU2NyZWVuc2hvdEhhbmRsZV90
IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFt
ZVR5cGUsIGNoYXIgKiBwY2hGaWxlbmFtZSwgdWludDMyX3QgY2NoRmlsZW5hbWUsIEVWUlNjcmVl
bnNob3RFcnJvciAqIHBFcnJvcik7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKShTY3JlZW5zaG90SGFu
ZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7CisgICAgICAgRVZSU2Ny
ZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqVGFrZVN0ZXJlb1NjcmVlbnNo
b3QpKFNjcmVlbnNob3RIYW5kbGVfdCAqIHBPdXRTY3JlZW5zaG90SGFuZGxlLCBjaGFyICogcGNo
UHJldmlld0ZpbGVuYW1lLCBjaGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVu
c2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0U2NyZWVuc2hvdCkoU2Ny
ZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUs
IGNoYXIgKiBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsIGNoYXIgKiBwY2hTb3VyY2VWUkZpbGVu
YW1lKTsKK307CisKK3N0cnVjdCBWUl9JVlJSZXNvdXJjZXNfRm5UYWJsZQoreworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFNoYXJlZFJlc291cmNlKShjaGFy
ICogcGNoUmVzb3VyY2VOYW1lLCBjaGFyICogcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxl
bik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZXNvdXJj
ZUZ1bGxQYXRoKShjaGFyICogcGNoUmVzb3VyY2VOYW1lLCBjaGFyICogcGNoUmVzb3VyY2VUeXBl
RGlyZWN0b3J5LCBjaGFyICogcGNoUGF0aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4pOwor
fTsKKworCisjaWYgMAorLy8gR2xvYmFsIGVudHJ5IHBvaW50cworU19BUEkgaW50cHRyX3QgVlJf
SW5pdEludGVybmFsKCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBl
VHlwZSApOworU19BUEkgdm9pZCBWUl9TaHV0ZG93bkludGVybmFsKCk7CitTX0FQSSBib29sIFZS
X0lzSG1kUHJlc2VudCgpOworU19BUEkgaW50cHRyX3QgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSgg
Y29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7
CitTX0FQSSBib29sIFZSX0lzUnVudGltZUluc3RhbGxlZCgpOworU19BUEkgY29uc3QgY2hhciAq
IFZSX0dldFZSSW5pdEVycm9yQXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOworU19BUEkg
Y29uc3QgY2hhciAqIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUklu
aXRFcnJvciBlcnJvciApOworI2VuZGlmCisKKyNlbmRpZiAvLyBfX09QRU5WUl9BUElfRkxBVF9I
X18KKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVu
dnJfZHJpdmVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJp
dmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkzOWUyNDY3
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29w
ZW52cl9kcml2ZXIuaApAQCAtMCwwICsxLDI1NDEgQEAKKyNwcmFnbWEgb25jZQorCisvLyBvcGVu
dnJfZHJpdmVyLmgKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09
PT09PT09PT0vLworLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkg
dGhpcyBmaWxlIGRpcmVjdGx5LgorCisjaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQorI2RlZmlu
ZSBfT1BFTlZSX0RSSVZFUl9BUEkKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisKKworLy8gdnJ0
eXBlcy5oCisjaWZuZGVmIF9JTkNMVURFX1ZSVFlQRVNfSAorI2RlZmluZSBfSU5DTFVERV9WUlRZ
UEVTX0gKKworLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGth
bi5oCitzdHJ1Y3QgVmtEZXZpY2VfVDsKK3N0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7CitzdHJ1
Y3QgVmtJbnN0YW5jZV9UOworc3RydWN0IFZrUXVldWVfVDsKKworLy8gRm9yd2FyZCBkZWNsYXJh
dGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIGQzZDEyLmgKK3N0cnVjdCBJRDNEMTJSZXNvdXJjZTsK
K3N0cnVjdCBJRDNEMTJDb21tYW5kUXVldWU7CisKK25hbWVzcGFjZSB2cgoreworCisjaWYgZGVm
aW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyAgICAgICAvLyBUaGUgMzIt
Yml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50
NjQgYW5kIGRvdWJsZSBzZXQgdG8KKyAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGgg
I3ByYWdtYSBwYWNrKDgpIHRoZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25l
ZC4KKyAgICAgICAvLyBUaGUgNjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50
IHJlcXVpcmVtZW50IGZvciB0aGVzZSB0eXBlcyBzZXQgdG8KKyAgICAgICAvLyA4IG1lYW5pbmcg
dGhhdCB1bmxlc3Mgd2UgdXNlICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdl
dCBiaWdnZXIuCisgICAgICAgLy8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8g
bWF0Y2ggdGhlIDMyLWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KKyAg
ICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDQgKQorI2Vsc2UKKyAgICAgICAjcHJhZ21hIHBhY2so
IHB1c2gsIDggKQorI2VuZGlmCisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxl
X3Q7Cit0eXBlZGVmIGludDMyX3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7
CisKKy8vIHJpZ2h0LWhhbmRlZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUg
cmlnaHQKKy8vIC16IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMg
IG1ldGVycworc3RydWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOwor
fTsKKworc3RydWN0IEhtZE1hdHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsK
Kworc3RydWN0IEhtZFZlY3RvcjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1
Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRW
ZWN0b3IzZF90Cit7CisgICAgICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9y
Ml90Cit7CisgICAgICAgZmxvYXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QK
K3sKKyAgICAgICBkb3VibGUgdywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7
CisgICAgICAgZmxvYXQgciwgZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAg
ICAgICBIbWRWZWN0b3IzX3QgdkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90
Cit7CisgICAgICAgSG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2
Qm90dG9tUmlnaHQ7Cit9OworCisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlv
biBVVnMgZm9yIGVhY2ggY29sb3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3
aXRoIDAsMCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVy
IHRhcmdldC4gVGhlIDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0
cnVjdCBEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOwor
ICAgICAgIGZsb2F0IHJmR3JlZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKwor
ZW51bSBFVlJFeWUKK3sKKyAgICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0g
MQorfTsKKworZW51bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RY
ID0gMCwgLy8gSGFuZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9P
cGVuR0wgPSAxLCAgLy8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3Bl
bkdMIHJlbmRlciBidWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAg
IFRleHR1cmVUeXBlX1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1
bGthblRleHR1cmVEYXRhX3Qgc3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNl
ID0gMywgLy8gSGFuZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZh
Y2UKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2lu
dGVyIHRvIGEgRDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JT
cGFjZQoreworICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dh
bW1hJyBmb3IgOC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicu
ICBUaGlzIG1pcnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRz
LgorICAgICAgIENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2Fu
IGJlIGRpc3BsYXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJz
aW9uIChhLmsuYS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xp
bmVhciA9IDIsICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0
byBhIGxpbmVhciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFs
Z29yaXRobS4KK307CisKK3N0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7
IC8vIFNlZSBFVGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlw
ZSBlVHlwZTsKKyAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRs
ZSB0byBhIHNoYXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBP
cGVuU2hhcmVkUmVzb3VyY2UpLgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxl
X3Q7CisjZGVmaW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNo
YXJlZFRleHR1cmVIYW5kbGVfdCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAg
IFRyYWNraW5nUmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisK
KyAgICAgICBUcmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAw
LAorICAgICAgIFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAx
MDEsCisKKyAgICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAwLAorICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5n
ZSAgICAgICAgICAgICAgPSAyMDEsCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1h
eERyaXZlckRlYnVnUmVzcG9uc2VTaXplID0gMzI3Njg7CisKKy8qKiBVc2VkIHRvIHBhc3MgZGV2
aWNlIElEcyB0byBBUEkgY2FsbHMgKi8KK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUlu
ZGV4X3Q7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQg
PSAwOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAx
NjsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAw
eEZGRkZGRkZFOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJ
bnZhbGlkID0gMHhGRkZGRkZGRjsKKworLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0
IGlzIGJlaW5nIHRyYWNrZWQgYXQgYSBnaXZlbiBJRCAqLworZW51bSBFVHJhY2tlZERldmljZUNs
YXNzCit7CisgICAgICAgVHJhY2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KKyAgICAgICBUcmFja2Vk
RGV2aWNlQ2xhc3NfSE1EID0gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEhlYWQtTW91bnRlZCBEaXNwbGF5cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9s
bGVyID0gMiwgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCisgICAg
ICAgVHJhY2tlZERldmljZUNsYXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8v
IEdlbmVyaWMgdHJhY2tlcnMsIHNpbWlsYXIgdG8gY29udHJvbGxlcnMKKyAgICAgICBUcmFja2Vk
RGV2aWNlQ2xhc3NfVHJhY2tpbmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJh
c2Ugc3RhdGlvbnMgdGhhdCBzZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCit9Owor
CisKKy8qKiBEZXNjcmliZXMgd2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRy
YWNrZWQgZGV2aWNlICovCitlbnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKK3sKKyAgICAgICBU
cmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBJbnZhbGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKKyAgICAgICBU
cmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhh
bmQKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBy
aWdodCBoYW5kCit9OworCisKKy8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFj
a2VkIG9iamVjdCAqLworc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBIbWRN
YXRyaXgzNF90IG1EZXZpY2VUb0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgSG1kVmVjdG9yM190
IHZWZWxvY2l0eTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJh
Y2tlciBzcGFjZSBpbiBtL3MKKyAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsg
ICAgICAgICAgICAgIC8vIGFuZ3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQorICAgICAg
IEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFs
aWQ7CisKKyAgICAgICAvLyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNv
bm5lY3RlZCBmb3IgdGhpcyBzcG90IGluIHRoZSBwb3NlIGFycmF5LgorICAgICAgIC8vIEl0IGNv
dWxkIGdvIGZyb20gdHJ1ZSB0byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2Uu
CisgICAgICAgYm9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisvKiogSWRlbnRpZmllcyB3
aGljaCBzdHlsZSBvZiB0cmFja2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVz
ZQorKiBmb3IgdGhlIHBvc2VzIGl0IGlzIHJlcXVlc3RpbmcgKi8KK2VudW0gRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4KK3sKKyAgICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAg
ICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8g
cG9zZQorICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2Vz
IGFyZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0
aGUgdXNlcgorICAgICAgIFRyYWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAg
ICAgICAvLyBQb3NlcyBhcmUgcHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmlu
ZWQgYnkgdGhlIGRyaXZlci4gIEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2Vz
IG9mIHRoZSBzYW1lIGRyaXZlci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307
CisKKy8vIFJlZmVycyB0byBhIHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwordHlwZWRl
ZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQ
cm9wZXJ0eVR5cGVUYWdfdDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3Qga191bEludmFsaWRQcm9wZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3Qga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0
YWdzIHRvIHNldC9nZXQgY29tbW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMg
Y29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOworc3RhdGlj
IGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRp
YyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Oworc3Rh
dGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisK
K3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRh
ZyA9IDIwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFBy
b3BlcnR5VGFnID0gMjE7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZl
Y3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5IbWRWZWN0b3I0UHJvcGVydHlUYWcgPSAyMzsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKKworc3RhdGljIGNvbnN0IFBy
b3BlcnR5VHlwZVRhZ190IGtfdW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsK
K3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZl
ZF9FbmQgPSAxMDAwMDsKKworCisvKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50
cyBhIHByb3BlcnR5IHRoYXQgY2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2
aWNlLiBNYW55IGZpZWxkcyBhcmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xh
c3MuICovCitlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkKK3sKKyAgICAgICBQcm9wX0ludmFs
aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMCwKKworICAgICAgIC8vIGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBk
ZXZpY2UgY2xhc3NlcworICAgICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDAsCisgICAgICAgUHJvcF9Nb2RlbE51bWJlcl9T
dHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCisg
ICAgICAgUHJvcF9TZXJpYWxOdW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwMDIsCisgICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJp
ZnRJbllhd19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCisg
ICAgICAgUHJvcF9NYW51ZmFjdHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMDUsCisgICAgICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9u
X1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDcsCisgICAgICAgUHJvcF9B
bGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAorICAgICAg
IFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAg
PSAxMDA5LAorICAgICAgIFByb3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwMTAsCisgICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5n
X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKKyAgICAgICBQ
cm9wX0RldmljZUJhdHRlcnlQZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAx
MDEyLCAvLyAwIGlzIGVtcHR5LCAxIGlzIGZ1bGwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlU
cmFuc2Zvcm1fTWF0cml4MzQgICAgICAgICAgICAgID0gMTAxMywKKyAgICAgICBQcm9wX0Zpcm13
YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAorICAg
ICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDE1LAorICAgICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmlu
ZyAgICAgICAgICAgICAgPSAxMDE2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE3LAorICAgICAgIFByb3BfRmlybXdh
cmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4
LAorICAgICAgIFByb3BfRlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDE5LAorICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCisgICAgICAg
UHJvcF9SYWRpb1ZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMjEsCisgICAgICAgUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0
ZG93bl9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMywKKyAgICAgICBQcm9w
X0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCisgICAg
ICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAg
PSAxMDI1LAorICAgICAgIFByb3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAg
ICAgICAgICAgID0gMTAyNiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13
YXJlX1Byb2dyYW1taW5nVGFyZ2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAorICAgICAg
IFByb3BfRGV2aWNlQ2xhc3NfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwMjksCisgICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzAsCisgICAgICAgUHJvcF9E
cml2ZXJWZXJzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCisgICAgICAgUHJv
cF9GaXJtd2FyZV9Gb3JjZVVwZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCisgICAgICAg
UHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMz
LAorICAgICAgIFByb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDM0LAorCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVu
aXF1ZSB0byBUcmFja2VkRGV2aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNp
bmNlVlN5bmNfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAg
UHJvcF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEs
CisgICAgICAgUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJy
ZW50VW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAK
KyAgICAgICBQcm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA1LCAKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWlu
dDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3Bf
Qm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjAwOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1D
U2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAg
ICAgICBQcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAxMSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJp
bmcgICAgICAgICAgICAgID0gMjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRf
U3RyaW5nICAgICAgICAgICAgID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xh
bXBfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3Bf
RWRpZFByb2R1Y3RJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDE1LAorICAgICAgIFByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE2LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxh
eUdDT2Zmc2V0X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgs
CisgICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE5LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdD
SW1hZ2VfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisg
ICAgICAgUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAyMiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0Nl
bnRlclJpZ2h0VV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0
LAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAyMDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0
ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJh
RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAg
ICBQcm9wX0NhbWVyYUZpcm13YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIw
MjgsCisgICAgICAgUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjAyOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lv
bl9VaW50NjQgICAgICAgICAgICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2Fy
ZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3Bf
QXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAor
ICAgICAgIFByb3BfQ2FtZXJhQ29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAg
ICAgICA9IDIwMzMsCisgICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3
RGVncmVlc19GbG9hdCA9IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVs
ZE9mVmlld0RlZ3JlZXNfRmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNz
ZWRfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAg
IFByb3BfRGlzcGxheUFsbG93TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAyMDM3LAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhl
aWdodF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJv
cF9EaXNwbGF5TUNJbWFnZU51bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisg
ICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjA0MSwKKyAgICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQyLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0
aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQ
cm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwMCwKKyAgICAgICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzAwMSwKKyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVl
IGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVf
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8v
IFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFBy
b3BfQXhpczJUeXBlX0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDA0LCAvLyBSZXR1cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5
cGUKKyAgICAgICBQcm9wX0F4aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29u
dHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBv
ZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVI
aW50X0ludDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZh
bHVlIGlzIG9mIHR5cGUgRVRyYWNrZWRDb250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVy
dGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJl
bmNlCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAg
ICAgICAgICAgPSA0MDAwLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxv
YXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1Rv
cERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9G
aWVsZE9mVmlld0JvdHRvbURlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMs
CisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAg
ICAgPSA0MDA0LAorICAgICAgIFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQg
ICAgICAgICAgICAgID0gNDAwNSwKKyAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQ
cm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFt
ZXMKKyAgICAgICBQcm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQg
Imljb25zIgorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBH
SUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJz
CisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAg
ICAgICAgPSA1MDAyLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlv
biwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9O
YW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8g
UE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFk
c2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVJlYWR5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0
aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4
MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRf
U3RyaW5nICAgICAgICAgICAgICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJ
RiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMK
KyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICA9IDUwMDYsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5p
bWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQ
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAg
ID0gNTAwNywgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUw
eDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJ
Y29uUGF0aERldmljZUFsZXJ0TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwg
Ly8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBo
ZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0
IGFyZSB1c2VkIGJ5IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAg
ICAgIFByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gNTEwMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9F
bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVy
dGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1Bh
dGhfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAg
ICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDYwMDEsCisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9z
ZSBwcml2YXRlIGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9w
X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAw
MCwKKyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAg
ICAgICAgID0gMTA5OTksCit9OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBi
ZSBsb25nZXIgdGhhbiB0aGlzIGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5N
YXhQcm9wZXJ0eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBl
cnJvcnMgdGhhdCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9X
cm9uZ0RhdGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFj
a2VkUHJvcF9Xcm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAg
IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MywKKyAgICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5
IG5vdCBldmVyKS4KKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RT
ZXJ2ZXIgICAgICAgICAgICAgID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3Zp
ZGVkQnlEZXZpY2UgICAgICAgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNN
YXhpbXVtTGVuZ3RoICAgICAgID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFi
bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUg
aXNuJ3Qga25vd24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4K
KyAgICAgICBUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAg
PSAxMCwKKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAg
ICAgICAgPSAxMSwKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wg
d2hhdCBwYXJ0IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyog
ZnJhbWUgYnVmZmVyLiAqLworc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxv
YXQgdU1pbiwgdk1pbjsKKyAgICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworCisvKiogQWxs
b3dzIHRoZSBhcHBsaWNhdGlvbiB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNl
ZCBieSB0aGUgY29tcG9zaXRvciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJt
aXRGbGFncworeworICAgICAgIC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVu
ZGVyZWQgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBj
b3JyZWN0aW9uIGFwcGxpZWQuCisgICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAg
ICAgLy8gQXBwIHN1Ym1pdHMgZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxl
bnMgZGlzdG9ydGlvbiBhbHJlYWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUg
aW1hZ2VzIGFwcGVhcgorICAgICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMg
YWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0
aGUgZGF0YSByZXR1cm5lZCBieQorICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0
b3J0aW9uKCkgdG8gYXBwbHkgdGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQg
aW1hZ2VzIGJlZm9yZSBjYWxsaW5nIFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9y
dGlvbkFscmVhZHlBcHBsaWVkID0gMHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBv
aW50ZXIgcGFzc2VkIGluIGlzIGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FB
IGluIE9wZW5HTCkgdGhlbiBzZXQgdGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1
ZmZlciA9IDB4MDIsCisKKyAgICAgICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2Vy
dmVkID0gMHgwNCwKK307CisKKy8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0
ZXh0dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVu
VlJfU2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0
IFZSVnVsa2FuVGV4dHVyZURhdGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBW
a0ltYWdlCisgICAgICAgVmtEZXZpY2VfVCAqbV9wRGV2aWNlOworICAgICAgIFZrUGh5c2ljYWxE
ZXZpY2VfVCAqbV9wUGh5c2ljYWxEZXZpY2U7CisgICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0
YW5jZTsKKyAgICAgICBWa1F1ZXVlX1QgKm1fcFF1ZXVlOworICAgICAgIHVpbnQzMl90IG1fblF1
ZXVlRmFtaWx5SW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9u
Rm9ybWF0LCBtX25TYW1wbGVDb3VudDsKK307CisKKy8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNz
aW5nIEQzRDEyIHRleHR1cmVzIHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0
byBjYWxsIE9wZW5WUl9TaHV0ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMu
ICovCitzdHJ1Y3QgRDNEMTJUZXh0dXJlRGF0YV90Cit7CisgICAgICAgSUQzRDEyUmVzb3VyY2Ug
Km1fcFJlc291cmNlOworICAgICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVl
OworICAgICAgIHVpbnQzMl90IG1fbk5vZGVNYXNrOworfTsKKworLyoqIFN0YXR1cyBvZiB0aGUg
b3ZlcmFsbCBzeXN0ZW0gb3IgdHJhY2tlZCBvYmplY3RzICovCitlbnVtIEVWUlN0YXRlCit7Cisg
ICAgICAgVlJTdGF0ZV9VbmRlZmluZWQgPSAtMSwKKyAgICAgICBWUlN0YXRlX09mZiA9IDAsCisg
ICAgICAgVlJTdGF0ZV9TZWFyY2hpbmcgPSAxLAorICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0Fs
ZXJ0ID0gMiwKKyAgICAgICBWUlN0YXRlX1JlYWR5ID0gMywKKyAgICAgICBWUlN0YXRlX1JlYWR5
X0FsZXJ0ID0gNCwKKyAgICAgICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKKyAgICAgICBWUlN0YXRl
X1N0YW5kYnkgPSA2LAorICAgICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK307CisK
Ky8qKiBUaGUgdHlwZXMgb2YgZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0
aGUgcGFyYW1ldGVycyBtZWFuIGZvciBlYWNoIGV2ZW50IHR5cGUpICovCitlbnVtIEVWUkV2ZW50
VHlwZQoreworICAgICAgIFZSRXZlbnRfTm9uZSA9IDAsCisKKyAgICAgICBWUkV2ZW50X1RyYWNr
ZWREZXZpY2VBY3RpdmF0ZWQgICAgICAgICAgICAgID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJh
Y2tlZERldmljZURlYWN0aXZhdGVkICAgICAgID0gMTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tl
ZERldmljZVVwZGF0ZWQgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tl
ZERldmljZVVzZXJJbnRlcmFjdGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCisgICAgICAgVlJFdmVu
dF9UcmFja2VkRGV2aWNlVXNlckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCisgICAgICAg
VlJFdmVudF9JcGRDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
NSwKKyAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9
IDEwNiwKKyAgICAgICBWUkV2ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAg
ICA9IDEwNywKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9
IDEwOCwKKyAgICAgICBWUkV2ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAg
ICA9IDEwOSwKKyAgICAgICBWUkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAg
ICAgPSAxMTAsCisgICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMTEsCisKKyAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisg
ICAgICAgVlJFdmVudF9CdXR0b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MjAxLCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9s
bGVyCisgICAgICAgVlJFdmVudF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjAzLCAvLyBkYXRhIGlzIGNvbnRyb2xsZXIKKworICAgICAgIFZSRXZlbnRfTW91c2VN
b3ZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBt
b3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMzAxLCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRv
blVwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCisg
ICAgICAgVlJFdmVudF9Gb2N1c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDMwMywgLy8gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5
CisgICAgICAgVlJFdmVudF9TY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDMwNSwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRN
b3ZlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCisg
ICAgICAgVlJFdmVudF9PdmVybGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAz
MDcsIC8vIGRhdGEgaXMgb3ZlcmxheSwgZ2xvYmFsIGV2ZW50CisKKyAgICAgICBWUkV2ZW50X0lu
cHV0Rm9jdXNDYXB0dXJlZCAgICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHBy
b2Nlc3MgREVQUkVDQVRFRAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAg
ICAgICAgICAgICAgICAgPSA0MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECisgICAg
ICAgVlJFdmVudF9TY2VuZUZvY3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQw
MiwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAg
ICAgICAgICAgICAgICAgICAgPSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZl
bnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlz
IHByb2Nlc3MgLSBUaGUgQXBwIGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVz
dWFsbHkgdG8gb3IgZnJvbSB0aGUgY29tcG9zaXRvcikKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9j
dXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAt
IE5ldyBhcHAgZ290IGFjY2VzcyB0byBkcmF3IHRoZSBzY2VuZQorICAgICAgIFZSRXZlbnRfSW5w
dXRGb2N1c0NoYW5nZWQgICAgICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9j
ZXNzCisgICAgICAgVlJFdmVudF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3Rh
cnRlZCA9IDQwNywgLy8gZGF0YSBpcyBwcm9jZXNzCisKKyAgICAgICBWUkV2ZW50X0hpZGVSZW5k
ZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUg
YXBwbGljYXRpb24gdG8gcmVxdWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQor
ICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDEx
LCAvLyBTZW50IHRvIHRoZSBzY2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyBy
ZW5kZXIgbW9kZWwgdmlzaWJpbGl0eQorCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDAsCisgICAgICAgVlJFdmVudF9PdmVybGF5SGlk
ZGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAxLAorICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkQWN0aXZhdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDIsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmREZWFjdGl2YXRlZCAgICAgICAgICAgICAgPSA1MDMsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRUaHVtYlNlbGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0
aGUgb3ZlcmxheSBtYW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9EYXNo
Ym9hcmRSZXF1ZXN0ZWQgICAgICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUg
b3ZlcmxheSBtYW5hZ2VyIC0gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9SZXNldERh
c2hib2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUg
b3ZlcmxheSBtYW5hZ2VyCisgICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byBy
ZW5kZXIgYSB0b2FzdCAtIGRhdGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAorICAgICAgIFZSRXZl
bnRfSW1hZ2VMb2FkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAv
LyBTZW50IHRvIG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9t
RmlsZSBjYWxsIGZpbmlzaGVzIGxvYWRpbmcKKyAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5k
ZXJlciBpbiB0aGUgZGFzaGJvYXJkIHRvIGludm9rZSBpdAorICAgICAgIFZSRXZlbnRfSGlkZUtl
eWJvYXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJv
YXJkIHJlbmRlcmVyIGluIHRoZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAorICAgICAgIFZSRXZlbnRf
T3ZlcmxheUdhbWVwYWRGb2N1c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVy
bGF5IHdoZW4gSVZST3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAorICAg
ICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAv
LyBTZW5kIHRvIGFuIG92ZXJsYXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZS
T3ZlcmxheTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQorICAg
ICAgIFZSRXZlbnRfT3ZlcmxheVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAorICAgICAgIFZS
RXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAorICAgICAgIFZSRXZl
bnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCisgICAgICAgVlJF
dmVudF9TY3JlZW5zaG90VHJpZ2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNj
cmVlbnNob3QgYnV0dG9uIGNvbWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVl
c3QgYSBzY3JlZW5zaG90CisgICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNl
dE92ZXJsYXlSYXcgb3IgU2V0T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKKyAgICAgICBW
UkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKKworICAg
ICAgIC8vIFNjcmVlbnNob3QgQVBJCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBs
aWNhdGlvbiB0byBjb21wb3NpdG9yIHRvIHRha2UgYSBzY3JlZW5zaG90CisgICAgICAgVlJFdmVu
dF9TY3JlZW5zaG90VGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIx
LCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVl
bnNob3QgaGFzIGJlZW4gdGFrZW4KKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0
aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KKyAg
ICAgICBWUkV2ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1
MjMsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0
ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVkCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJv
Z3Jlc3NUb0Rhc2hib2FyZCAgICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRo
ZSBkYXNoYm9hcmQgdGhhdCBhIGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKwor
ICAgICAgIFZSRXZlbnRfUHJpbWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUs
CisKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDYwMCwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA2MDEsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25f
QmVnaW5JbnRlcmFjdGlvbiAgICAgICA9IDYwMiwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlv
bl9EZXN0cm95ZWQgICAgICAgICAgICAgICAgICAgICA9IDYwMywKKworICAgICAgIFZSRXZlbnRf
UXVpdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcw
MCwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nl
c3MKKyAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAg
ICAgICA9IDcwMiwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93
bGVkZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nl
c3MKKyAgICAgICBWUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSA3MDQsIC8vIFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIg
c2h1dCBkb3duCisKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAg
ICAgICAgICAgICAgICAgPSA4MDAsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhh
c0NoYW5nZWQgICAgICAgICAgICAgID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVt
cERhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBl
cm9uZVNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4MDMsCisgICAgICAgVlJFdmVudF9TZWF0
ZWRaZXJvUG9zZVJlc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAorCisgICAg
ICAgVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAor
CisgICAgICAgVlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAg
ID0gODUwLAorICAgICAgIFZSRXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAg
ICAgICAgPSA4NTEsCisgICAgICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdl
ZCAgICAgICA9IDg1MiwKKyAgICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5n
ZWQgICAgICAgPSA4NTMsCisgICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNo
YW5nZWQgICAgICAgPSA4NTQsCisgICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5n
ZWQgICAgICAgICAgICAgID0gODU1LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9N
Q0ltYWdlVXBkYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAor
CisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAg
ICA9IDExMDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAg
ICAgICAgICAgICAgPSAxMTAxLAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5
Ym9hcmRDaGFySW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAg
IFZSRXZlbnRfS2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDEyMDIsIC8vIFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0g
MTMwMCwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAg
ICAgICAgID0gMTMwMSwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0Fw
cFN0YXJ0ZWQgICAgICAgPSAxMzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBk
YXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9B
cHBsaWNhdGlvbk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQs
CisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0
ZSA9IDEzMDUsCisKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24g
ICAgICAgICAgICAgID0gMTQwMCwKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2lu
ZG93SGlkZGVuICAgICAgICAgICAgICA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9y
X0NoYXBlcm9uZUJvdW5kc1Nob3duICAgICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVu
dF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAg
ICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAg
IFZSRXZlbnRfVHJhY2tlZENhbWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAg
VlJFdmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBW
UkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAg
ICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisg
ICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIs
CisKKyAgICAgICBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAg
ICAgID0gMTY1MCwKKyAgICAgICAKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9z
ZSBwcml2YXRlIGV2ZW50cyBpbiB0aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRf
VmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2
ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307
CisKKworLyoqIExldmVsIG9mIEhtZCBhY3Rpdml0eSAqLworZW51bSBFRGV2aWNlQWN0aXZpdHlM
ZXZlbAoreworICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAg
ICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAgICAga19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gPSAxLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5
TGV2ZWxfVXNlckludGVyYWN0aW9uX1RpbWVvdXQgPSAyLAorICAgICAgIGtfRURldmljZUFjdGl2
aXR5TGV2ZWxfU3RhbmRieSA9IDMsCit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBh
bmQgYXhpcyBJRHMgKi8KK2VudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lz
dGVtICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlv
bk1lbnUgICAgICAgPSAxLAorICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMiwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAg
ICAgICAgPSAzLAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAg
PSA0LAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAg
ICAga19FQnV0dG9uX0RQYWRfRG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBr
X0VCdXR0b25fQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAg
IAorICAgICAgIGtfRUJ1dHRvbl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19F
QnV0dG9uX0F4aXMwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19F
QnV0dG9uX0F4aXMxICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19F
QnV0dG9uX0F4aXMyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19F
QnV0dG9uX0F4aXMzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19F
QnV0dG9uX0F4aXM0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAv
LyBhbGlhc2VzIGZvciB3ZWxsIGtub3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0
ZWFtVlJfVG91Y2hwYWQgICAgICAgPSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9u
X1N0ZWFtVlJfVHJpZ2dlciAgICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1
dHRvbl9EYXNoYm9hcmRfQmFjayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19F
QnV0dG9uX01heCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUg
dWludDY0X3QgQnV0dG9uTWFza0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxs
IDw8IGlkOyB9CisKKy8qKiB1c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0
cnVjdCBWUkV2ZW50X0NvbnRyb2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8g
RVZSQnV0dG9uSWQgZW51bQorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2
ZW50cyBpbiBvdmVybGF5IHNwYWNlICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAg
VlJNb3VzZUJ1dHRvbl9MZWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4
MDAwMSwKKyAgICAgICBWUk1vdXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4MDAwMiwKKyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVs
YXRlZCBtb3VzZSBldmVudHMgaW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91
c2VfdAoreworICAgICAgIGZsb2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBi
b3R0b20gbGVmdCBvZiB0aGUgdGV4dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247
IC8vIEVWUk1vdXNlQnV0dG9uIGVudW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91
c2Ugd2hlZWwgc2Nyb2xsIGluIG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9s
bF90Cit7CisgICAgICAgZmxvYXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0
aW9uIG9mIHRoZSBwYWQgdHJhdmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxs
IHN3aXBlCisgICAgICAgdWludDMyX3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBt
b3VzZSBpbnB1dCBtb2RlIHlvdSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0
aGVzZSBldmVudHMgYXJlIG9ubHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0
aGUgdG91Y2hwYWQgKG9yIGp1c3QgcmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2
ZW50X1RvdWNoUGFkTW92ZV90Cit7CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2Vy
IGlzIGRldGVjdGVkIG9uIHRoZSB0b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOwor
CisgICAgICAgLy8gSG93IGxvbmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMK
KyAgICAgICBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFs
dWVzIGluZGljYXRlIHRoZSBzdGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8g
c29tZSBiYXNpYyBzd2lwZSBzdHVmZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAg
ICAgZmxvYXQgZlZhbHVlWUZpcnN0OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBs
ZWQgY29vcmRpbmF0ZSB3aXRob3V0IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3
OworICAgICAgIGZsb2F0IGZWYWx1ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0
ZWQgZXZlbnRzLiBEZXRhaWxzIHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0
cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFs
dWU7CisgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3Ig
ZXZlbnRzIGFib3V0IHByb2Nlc3NlcyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7Cisg
ICAgICAgdWludDMyX3QgcGlkOworICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29s
IGJGb3JjZWQ7Cit9OworCisKKy8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3Zlcmxh
eXMgKi8KK3N0cnVjdCBWUkV2ZW50X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJs
YXlIYW5kbGU7Cit9OworCisKKy8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3Zlcmxh
eXMgKi8KK3N0cnVjdCBWUkV2ZW50X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVz
U3RhdGU7IC8vIEVWUlN0YXRlIGVudW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVu
dHMgKiovCitzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5w
dXRbOF07ICAgICAgIC8vIFVwIHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2
NF90IHVVc2VyVmFsdWU7ICAgICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5w
dXQKK307CisKK3N0cnVjdCBWUkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJz
OworfTsKKworc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBt
X25QcmV2aW91c1VuaXZlcnNlOworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsK
K307CisKKy8qKiBOb3QgYWN0dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZS
RXZlbnRfUmVzZXJ2ZWRfdAoreworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1
aW50NjRfdCByZXNlcnZlZDE7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3Rf
dAoreworICAgICAgIHVpbnQzMl90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJF
dmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVt
TWVudTsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQz
Ml90IGhhbmRsZTsKKyAgICAgICB1aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRf
U2NyZWVuc2hvdFByb2dyZXNzX3QKK3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0
cnVjdCBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7
CisgICAgICAgdWludDMyX3QgdW5BcmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRp
dGluZ0NhbWVyYVN1cmZhY2VfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cisg
ICAgICAgdWludDMyX3QgblZpc3VhbE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdl
T3ZlcmxheV90Cit7CisgICAgICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7
IC8vIHZyOjpWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZl
bnRfUHJvcGVydHlfdAoreworICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFp
bmVyOworICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RF
ISEhIElmIHlvdSBjaGFuZ2UgdGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2lu
dGVyb3AuY3MucHkgKi8KK3R5cGVkZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVk
X3QgcmVzZXJ2ZWQ7CisgICAgICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAg
ICAgICBWUkV2ZW50X01vdXNlX3QgbW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3Jv
bGw7CisgICAgICAgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05v
dGlmaWNhdGlvbl90IG5vdGlmaWNhdGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVy
bGF5OworICAgICAgIFZSRXZlbnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5
Ym9hcmRfdCBrZXlib2FyZDsKKyAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2
ZW50X0NoYXBlcm9uZV90IGNoYXBlcm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF90IHBlcmZvcm1hbmNlVGVzdDsKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNo
UGFkTW92ZTsKKyAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJv
UG9zZVJlc2V0OworICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAg
ICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAg
IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZS
RXZlbnRfTWVzc2FnZU92ZXJsYXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1By
b3BlcnR5X3QgcHJvcGVydHk7Cit9IFZSRXZlbnRfRGF0YV90OworCisvKiogQW4gZXZlbnQgcG9z
dGVkIGJ5IHRoZSBzZXJ2ZXIgdG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3Qg
VlJFdmVudF90Cit7CisgICAgICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUg
ZW51bQorICAgICAgIFRyYWNrZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAg
ICAgICBmbG9hdCBldmVudEFnZVNlY29uZHM7CisgICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJl
IHRoZSBlbmQgb2YgdGhlIHN0cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZS
RXZlbnRfRGF0YV90IGRhdGE7Cit9OworCisKKy8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhl
IHN0ZW5jaWwgKG9yIGRlcHRoKSBidWZmZXIgdG8gcGVyZm9ybSAKKyogZWFybHkgc3RlbmNpbCAo
b3IgZGVwdGgpIGtpbGxzIG9mIHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBI
TUQuCisqIFRoaXMgbWVzaCBkcmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlk
ZGVuIGFmdGVyIGRpc3RvcnRpb24uIAorKgorKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUg
YSB2aXNpYmxlIGFyZWEgbWVzaCBwVmVydGV4RGF0YSB3aWxsIGJlCisqIE5VTEwgYW5kIHVuVHJp
YW5nbGVDb3VudCB3aWxsIGJlIDAuICovCitzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAg
ICAgIGNvbnN0IEhtZFZlY3RvcjJfdCAqcFZlcnRleERhdGE7CisgICAgICAgdWludDMyX3QgdW5U
cmlhbmdsZUNvdW50OworfTsKKworCitlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKK3sKKyAgICAg
ICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAga19lSGlkZGVuQXJlYU1l
c2hfSW52ZXJzZSA9IDEsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAor
CisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTWF4ID0gMywKK307CisKKworLyoqIElkZW50aWZp
ZXMgd2hhdCBraW5kIG9mIGF4aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVh
ZCB0aGlzIHR5cGUgCisqIHdpdGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5k
ZXgsIFByb3BfQXhpczBUeXBlX0ludDMyICsgbiApOworKi8KK2VudW0gRVZSQ29udHJvbGxlckF4
aXNUeXBlCit7CisgICAgICAga19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAga19l
Q29udHJvbGxlckF4aXNfVHJhY2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pv
eXN0aWNrID0gMiwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5h
bG9nIHRyaWdnZXIgZGF0YSBpcyBpbiB0aGUgWCBheGlzCit9OworCisKKy8qKiBjb250YWlucyBp
bmZvcm1hdGlvbiBhYm91dCBvbmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLworc3RydWN0IFZS
Q29udHJvbGxlckF4aXNfdAoreworICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAg
dG8gMS4wIGZvciBqb3lzdGlja3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAx
LjAgZm9yIHRyaWdnZXJzIHdlcmUgMCBpcyBmdWxseSByZWxlYXNlZC4KKyAgICAgICBmbG9hdCB5
OyAvLyBSYW5nZXMgZnJvbSAtMS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRz
LiBJcyBhbHdheXMgMC4wIGZvciB0cmlnZ2Vycy4KK307CisKKworLyoqIHRoZSBudW1iZXIgb2Yg
YXhlcyBpbiB0aGUgY29udHJvbGxlciBzdGF0ZSAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtf
dW5Db250cm9sbGVyU3RhdGVBeGlzQ291bnQgPSA1OworCisKKy8qKiBIb2xkcyBhbGwgdGhlIHN0
YXRlIG9mIGEgY29udHJvbGxlciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCitzdHJ1Y3QgVlJD
b250cm9sbGVyU3RhdGUwMDFfdAoreworICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0
aGF0IG9uIHlvdXIgcHJpb3IgY2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3Qg
YmVlbiBjaGFuZ2VkIHNpbmNlIAorICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBp
cyBubyBuZWVkIHRvIHByb2Nlc3MgaXQKKyAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKKwor
ICAgICAgIC8vIGJpdCBmbGFncyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1h
c2tGcm9tSWQgdG8gdHVybiBhbiBJRCBpbnRvIGEgbWFzaworICAgICAgIHVpbnQ2NF90IHVsQnV0
dG9uUHJlc3NlZDsKKyAgICAgICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisKKyAgICAgICAv
LyBBeGlzIGRhdGEgZm9yIHRoZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cworICAgICAgIFZS
Q29udHJvbGxlckF4aXNfdCByQXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOwor
fTsKKworCit0eXBlZGVmIFZSQ29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVf
dDsKKworCisvKiogZGV0ZXJtaW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxp
Y2F0aW9uIG9mIHZhcmlvdXMgZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVW
UkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRw
dXRfT1NFdmVudHMgPSAwLAorICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9
IDEsCit9OworCisKKworLyoqIENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxp
c2lvbkJvdW5kc1N0eWxlCit7CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5F
UiA9IDAsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAg
ICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VO
RFNfU1RZTEVfQURWQU5DRUQsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAor
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0
aGUgYXBwbGljYXRpb24gdG8gY3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRo
ZSBjb21wb3NpdG9yICovCitzdHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAg
ICAgICB1aW50MzJfdCBzaXplOyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3Mp
CisgICAgICAgYm9vbCBjdXJ2ZWQsIGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlz
dGFuY2UsIGFscGhhOworICAgICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNj
YWxlOworICAgICAgIGZsb2F0IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAg
ICBIbWRNYXRyaXg0NF90IHRyYW5zZm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEg
c2luZ2xlIFZSIG92ZXJsYXkgKi8KK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7
CisKK3N0YXRpYyBjb25zdCBWUk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFs
aWQgPSAwOworCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAq
LworZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJP
dmVybGF5RXJyb3JfVW5rbm93bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAg
ICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDEx
LAorICAgICAgIFZST3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAg
ICAgICA9IDEyLAorICAgICAgIFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAg
ICAgICAgICAgICA9IDEzLCAvLyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVj
YXVzZSB0aGUgbWF4aW11bSBudW1iZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVy
cm9yX1dyb25nVmlzaWJpbGl0eVR5cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVy
bGF5RXJyb3JfS2V5VG9vTG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAg
ICAgIFZST3ZlcmxheUVycm9yX05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTYsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zv
cm1UeXBlICAgICAgICAgICAgICA9IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRU
cmFja2VkRGV2aWNlICAgICAgICAgICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0lu
dmFsaWRQYXJhbWV0ZXIgICAgICAgICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3Zlcmxh
eUVycm9yX1RodW1ibmFpbENhbnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3Zl
cmxheUVycm9yX0FycmF5VG9vU21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAg
IFZST3ZlcmxheUVycm9yX1JlcXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAor
ICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAg
PSAyNCwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAg
ICAgICAgICAgPSAyNSwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVz
ZSAgICAgICAgICAgICAgPSAyNiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9v
TWFueU1hc2tQcmltaXRpdmVzICAgICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFk
TWFza1ByaW1pdGl2ZSAgICAgICAgICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2
YWx1ZXMgdG8gcGFzcyBpbiB0byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxp
Y2F0aW9uIHdpbGwgCisqIGRyYXcgYSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25U
eXBlCit7CisgICAgICAgVlJBcHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBT
b21lIG90aGVyIGtpbmQgb2YgYXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBv
dGhlciBlbnRyaWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAg
ICAgICAgICAgLy8gQXBwbGljYXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZS
QXBwbGljYXRpb25fT3ZlcmxheSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5
IGludGVyYWN0cyB3aXRoIG92ZXJsYXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5k
ID0gMywgICAgICAgLy8gQXBwbGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0
J3Mgbm90IGFscmVhZHkgcnVubmluZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQg
cnVubmluZyBpZiBldmVyeXRoaW5nIGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9V
dGlsaXR5ID0gNCwgICAgICAgICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBh
bnkgZHJpdmVycy4gVGhlIGFwcGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBpbnRlcmZhY2VzIChsaWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1
dCBub3QgaGFyZHdhcmUuCisgICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAg
ICAvLyBSZXNlcnZlZCBmb3IgdnJtb25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdh
dGNoZG9nID0gNiwvLyBSZXNlcnZlZCBmb3IgU3RlYW0KKworICAgICAgIFZSQXBwbGljYXRpb25f
TWF4Cit9OworCisKKy8qKiBlcnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmly
bXdhcmVFcnJvcgoreworICAgICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBW
UkZpcm13YXJlRXJyb3JfU3VjY2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwg
PSAyLAorfTsKKworCisvKiogZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0g
RVZSTm90aWZpY2F0aW9uRXJyb3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0g
MCwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEw
MCwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEw
MSwKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAy
LAorICAgICAgIFZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlF
eGlzdHMgPSAxMDMsCit9OworCisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0
ICovCisKKy8vIFBsZWFzZSBhZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6
Ly9kZXZlbG9wZXIudmFsdmVzb2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6
U3RlYW1WUkhlbHAKK2VudW0gRVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9u
ZSAgICAgICA9IDAsCisgICAgICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwK
KyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAg
ID0gMTAxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAg
ICAgICAgICAgPSAxMDIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9G
YWN0b3J5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisg
ICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAg
ICAgPSAxMDYsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52
YWxpZCA9IDEwNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5p
dGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDksCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTEyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0
aFJlZ2lzdHJ5Tm90V3JpdGFibGUgICAgICAgPSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9BcHBJbmZvSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfUmV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExNSwgLy8gVXNlZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2
ZXIKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAg
ICAgICAgICAgID0gMTE2LCAvLyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50
bHkgZXhpdC4gVGhlIHVzZXIgY2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0g
MTE4LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDExOSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmpl
Y3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwLAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfTm90U3VwcG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCisgICAg
ICAgVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIz
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEyNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklk
SXNOb25lICAgICAgICAgICAgICAgICAgICAgID0gMTI1LAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCisgICAgICAgVlJJbml0
RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAg
ICAgPSAxMjgsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3Vw
cG9ydGVkID0gMTI5LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlv
blR5cGUgICAgICAgICAgICAgID0gMTMwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZh
aWxhYmxlVG9XYXRjaGRvZ0FwcHMgPSAxMzEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRj
aGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEzMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZS
RGFzaGJvYXJkTm90Rm91bmQgICAgICAgICAgICAgID0gMTMzLAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgID0gMTM0LAorCisgICAgICAgVlJJ
bml0RXJyb3JfRHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwK
KyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDIwMSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAg
ICAgICAgICAgICAgID0gMjAyLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQg
ICAgICAgICAgICAgICAgICAgICA9IDIwMywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVu
dGltZU91dE9mRGF0ZSAgICAgICAgICAgICAgPSAyMDQsCisgICAgICAgVlJJbml0RXJyb3JfRHJp
dmVyX0htZEluVXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZS
SW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKKyAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAorICAg
ICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCisg
ICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0g
MjA5LAorICAgICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRl
ckZpeCAgICAgICAgPSAyMTAsIC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNv
bnMKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIx
MSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwK
KworICAgICAgIFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9
IDMwMCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAg
ICAgICAgID0gMzAxLAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWls
ZWQgICAgICAgPSAzMDIsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFp
bGVkICAgICAgID0gMzAzLAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQg
ICAgICAgICAgICAgICAgICAgICA9IDMwNCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwKKyAgICAgICBWUkluaXRF
cnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCisgICAgICAgVlJJ
bml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0g
MzA4LAorCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gNDAwLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0
b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkICAgICAgID0gNDAxLAorICAgICAgIFZSSW5pdEVycm9y
X0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKKyAgICAgICBW
UkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQw
MywKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAg
ICAgICA9IDQwNCwKKworICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRv
Q29ubmVjdFRvT2N1bHVzUnVudGltZSA9IDEwMDAsCisKKyAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAxLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKKyAgICAgICBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMTAzLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ1Rvb0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0
LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1Nt
YWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMDUsCisgICAgICAgVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAg
ICAgICAgICA9IDExMDYsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb24gICAgICAgID0gMTEwNywKKyAgICAgICBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAg
ICAgID0gMTEwOCwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9V
bmFibGVUb0dldFVzZXJEYXRhU3RhcnQgICAgICAgPSAxMTA5LAorICAgICAgIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAg
ICAgICA9IDExMTAsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
VXNlckRhdGFBZGRyZXNzUmFuZ2UgICAgICAgICAgICAgID0gMTExMSwKKyAgICAgICBWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTExMiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9Db25maWdGYWlsZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAorCisg
ICAgICAgVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAs
Cit9OworCitlbnVtIEVWUlNjcmVlbnNob3RUeXBlCit7CisgICAgICAgVlJTY3JlZW5zaG90VHlw
ZV9Ob25lID0gMCwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5
ZSBvbmx5CisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAorICAgICAgIFZSU2Ny
ZWVuc2hvdFR5cGVfQ3ViZW1hcCA9IDMsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFu
b3JhbWEgPSA0LAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Cit9
OworCitlbnVtIEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcworeworICAgICAgIFZSU2Ny
ZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ByZXZpZXcgPSAwLAorICAgICAgIFZSU2NyZWVuc2hv
dFByb3BlcnR5RmlsZW5hbWVzX1ZSID0gMSwKK307CisKK2VudW0gRVZSVHJhY2tlZENhbWVyYUVy
cm9yCit7CisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAg
ICAgICAgPSAwLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAg
ICAgICAgICAgID0gMTAwLAorICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5k
bGUgICAgICAgICAgICAgID0gMTAxLCAgICAgICAKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9JbnZhbGlkRnJhbWVIZWFkZXJWZXJzaW9uICA9IDEwMiwKKyAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9PdXRPZkhhbmRsZXMgICAgICAgICAgICAgICA9IDEwMywKKyAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9JUENGYWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBW
UlRyYWNrZWRDYW1lcmFFcnJvcl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKKyAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEw
NiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAg
ICA9IDEwNywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUg
ICAgICAgICA9IDEwOCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0
dXJlSWQgICAgICAgICA9IDEwOSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlk
U2hhcmVkVGV4dHVyZUhhbmRsZSA9IDExMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9G
YWlsZWRUb0dldEdMVGV4dHVyZUlkICAgICA9IDExMSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9TaGFyZWRUZXh0dXJlRmFpbHVyZSAgICAgICA9IDExMiwKKyAgICAgICBWUlRyYWNrZWRD
YW1lcmFFcnJvcl9Ob0ZyYW1lQXZhaWxhYmxlICAgICAgICAgICA9IDExMywKKyAgICAgICBWUlRy
YWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKKyAgICAg
ICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwK
K307CisKK2VudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQoreworICAgICAgIFZSVHJhY2tl
ZENhbWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRo
aXMgaXMgdGhlIGNhbWVyYSB2aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9y
dGVkLgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAg
ICAgICAgICAgICAgICAvLyBJbiBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0
YW5nbGUgcmVnaW9uIHdpdGhvdXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVj
dCB0byBjaGFuZ2VzIHNob3J0bHkuCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01h
eGltdW1VbmRpc3RvcnRlZCwgICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVk
IHdpdGggaW52YWxpZCByZWdpb25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmll
cyB2YWxpZCByZWdpb25zLgorICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKK307CisKK3R5
cGVkZWYgdWludDY0X3QgVHJhY2tlZENhbWVyYUhhbmRsZV90OworI2RlZmluZSBJTlZBTElEX1RS
QUNLRURfQ0FNRVJBX0hBTkRMRSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkK
Kworc3RydWN0IENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZTsKKworICAgICAgIHVpbnQzMl90IG5XaWR0
aDsKKyAgICAgICB1aW50MzJfdCBuSGVpZ2h0OworICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBp
eGVsOworCisgICAgICAgdWludDMyX3QgbkZyYW1lU2VxdWVuY2U7CisKKyAgICAgICBUcmFja2Vk
RGV2aWNlUG9zZV90IHN0YW5kaW5nVHJhY2tlZERldmljZVBvc2U7Cit9OworCisvLyBTY3JlZW5z
aG90IHR5cGVzCit0eXBlZGVmIHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKKworc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7CisKKyNwcmFn
bWEgcGFjayggcG9wICkKKworLy8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZS
IEFQSSBkbGwKKyNpZiBkZWZpbmVkKF9XSU4zMikKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNk
ZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyNl
bHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9y
dCApCisjZW5kaWYKKworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxF
Ul9HQ0MpIHx8IGRlZmluZWQoX19BUFBMRV9fKQorCisjaWZkZWYgVlJfQVBJX0VYUE9SVAorI2Rl
ZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJk
ZWZhdWx0IikpKQorI2Vsc2UKKyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCisjZW5k
aWYKKworI2Vsc2UKKyNlcnJvciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgorI2VuZGlmCisKKwor
I2lmIGRlZmluZWQoIF9XSU4zMiApCisjZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKKyNlbHNl
CisjZGVmaW5lIFZSX0NBTExUWVBFIAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIHZyCisKKyNl
bmRpZiAvLyBfSU5DTFVERV9WUlRZUEVTX0gKKworCisvLyB2cmFubm90YXRpb24uaAorI2lmZGVm
IEFQSV9HRU4KKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5u
b3RhdGUoIEFUVFIgKSkpCisjZWxzZQorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQorI2Vu
ZGlmCisKKyNkZWZpbmUgVlJfTUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6
IiAjREVTQyAiOyIgKQorI2RlZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImln
bm9yZSIgKQorI2RlZmluZSBWUl9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1
Y3Q6IDsiICkKKyNkZWZpbmUgVlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3Ry
aW5nOiA7IiApCisjZGVmaW5lIFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFS
QU1TKSBWUl9DTEFOR19BVFRSKCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNU
SU9OICIsIiAjUEFSQU1TICI7IiApCisjZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVS
KSBWUl9DTEFOR19BVFRSKCAib3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZp
bmUgVlJfQVJSQVlfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIg
I0NPVU5URVIgIjsiICkKKyNkZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBW
Ul9DTEFOR19BVFRSKCAiYXJyYXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCisj
ZGVmaW5lIFZSX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2Nv
dW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVS
KSBWUl9DTEFOR19BVFRSKCAib3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVm
aW5lIFZSX09VVF9TVFJJTkdfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJp
bmdfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorCisvLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCisj
aWZuZGVmIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICisjZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFU
WVBFU19IIAorCituYW1lc3BhY2UgdnIKK3sKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBk
ZWZpbmVkKF9fQVBQTEVfXykgCisgICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBo
YXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRv
CisgICAgICAgLy8gNCBtZWFuaW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVz
ZSB0eXBlcyB3aWxsIG9ubHkgYmUgZm91ci1ieXRlIGFsaWduZWQuCisgICAgICAgLy8gVGhlIDY0
LWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhl
c2UgdHlwZXMgc2V0IHRvCisgICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAj
cHJhZ21hIHBhY2soNCkgb3VyIHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgorICAgICAgIC8v
IFRoZSA2NC1iaXQgc3RydWN0dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3Ry
dWN0dXJlIHBhY2tpbmcgZm9yIGVhY2ggcGxhdGZvcm0uCisgICAgICAgI3ByYWdtYSBwYWNrKCBw
dXNoLCA0ICkKKyNlbHNlCisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKyNlbmRpZgor
CitlbnVtIEVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdAoreworICAgICAgIENWU19GT1JNQVRfVU5L
Tk9XTiA9IDAsCisgICAgICAgQ1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAx
MCBiaXRzIHBlciBwaXhlbAorICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAg
ICAvLyAxMiBiaXRzIHBlciBwaXhlbAorICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAg
ICAgICAgICAgLy8gMjQgYml0cyBwZXIgcGl4ZWwKKyAgICAgICBDVlNfTUFYX0ZPUk1BVFMKK307
CisKK2VudW0gRUNhbWVyYUNvbXBhdGliaWxpdHlNb2RlCit7CisgICAgICAgQ0FNRVJBX0NPTVBB
VF9NT0RFX0JVTEtfREVGQVVMVCA9IDAsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtf
NjRLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAorICAgICAg
IENBTUVSQV9DT01QQVRfTU9ERV9CVUxLXzhLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFUX01P
REVfSVNPXzUyRlBTLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCisgICAg
ICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT180OEZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01P
REVfSVNPXzQ2RlBTLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCisgICAg
ICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT180MkZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01P
REVfSVNPXzQwRlBTLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCisgICAg
ICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0lTT18zMEZQUywKKyAgICAgICBNQVhfQ0FNRVJBX0NPTVBB
VF9NT0RFUworfTsKKworI2lmZGVmIF9NU0NfVkVSCisjZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FM
SUdOKCB4ICkgX19kZWNsc3BlYyggYWxpZ24oIHggKSApCisjZWxzZQorI2RlZmluZSBWUl9DQU1F
UkFfREVDTF9BTElHTiggeCApIC8vCisjZW5kaWYKKworI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1F
X1NIQVJFRF9IQU5ETEVTICAgICAgIDQKKworVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1
Y3QgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZV90Cit7CisgICAgICAgRUNhbWVyYVZpZGVvU3RyZWFt
Rm9ybWF0IG1fblN0cmVhbUZvcm1hdDsKKworICAgICAgIHVpbnQzMl90IG1fbldpZHRoOworICAg
ICAgIHVpbnQzMl90IG1fbkhlaWdodDsKKworICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNp
emU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24g
c3RyZWFtIGZvcm1hdCwgd2lkdGgsIGhlaWdodAorCisgICAgICAgdWludDMyX3QgbV9uRnJhbWVT
ZXF1ZW5jZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFy
dHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4KKworICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZl
ckluZGV4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50
aWZpZXMgd2hpY2ggYnVmZmVyIHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAorICAgICAgIHVpbnQz
Ml90IG1fbkJ1ZmZlckNvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFRvdGFsIG51bWJlciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKKworICAgICAgIHVpbnQz
Ml90IG1fbkV4cG9zdXJlVGltZTsKKworICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0
YW1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVk
IHRpbWUgc3RhbXAgcGVyIGRyaXZlciBjZW50cmljIHRpbWUgYmFzZQorICAgICAgIHVpbnQzMl90
IG1fbklTUFJlZmVyZW5jZVRpbWVTdGFtcDsKKyAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRl
cjsKKworICAgICAgIHVpbnQzMl90IG1fbkNhbVN5bmNFdmVudHM7CisgICAgICAgdWludDMyX3Qg
bV9uSVNQU3luY0V2ZW50czsKKworICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1Rp
bWU7CisKKyAgICAgICBkb3VibGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4g
SW4gc2Vjb25kcy4KKyAgICAgICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOworCisgICAg
ICAgZG91YmxlIG1fZmxGcmFtZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAg
ICAgLy8gSW4gVVNCIHRpbWUsIHZpYSBBdXhFdmVudAorICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVD
YXB0dXJlVGltZV9TZXJ2ZXJSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1l
IHdpdGhpbiB0aGUgc2VydmVyCisgICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3Nf
U2VydmVyQWJzb2x1dGU7ICAgICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZl
cgorICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAg
ICAgICAgICAgIC8vIEF0IHRoZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdh
cyBleHBvc2VkL2NhcHR1cmVkLgorCisgICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7
CisKKyAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9z
ZTsgICAgICAgLy8gU3VwcGxpZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQg
Y2FtZXJhCisKKyAgICAgICB1aW50NjRfdCBtX3BJbWFnZURhdGE7Cit9OworCisjcHJhZ21hIHBh
Y2soIHBvcCApCisKK30KKworI2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICisvLyBp
dnJzZXR0aW5ncy5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJy
b3IKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKKyAg
ICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAgICAgICAg
IFZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCA9IDIsCisgICAgICAgICAgICAgIFZSU2V0dGlu
Z3NFcnJvcl9SZWFkRmFpbGVkID0gMywKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pz
b25QYXJzZUZhaWxlZCA9IDQsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNl
dHRpbmdIYXNOb0RlZmF1bHQgPSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNl
dHRpbmcgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5k
IGhhcyBub3QgYmVlbiBzZXQKKyAgICAgICB9OworCisgICAgICAgLy8gVGhlIG1heGltdW0gbGVu
Z3RoIG9mIGEgc2V0dGluZ3Mga2V5CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5N
YXhTZXR0aW5nc0tleUxlbmd0aCA9IDEyODsKKworICAgICAgIGNsYXNzIElWUlNldHRpbmdzCisg
ICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFy
ICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciAp
ID0gMDsKKworICAgICAgICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3Vy
cmVkIChmb3JjZSBvciBzZXR0aW5ncyBkaXJ0eSkKKyAgICAgICAgICAgICAgdmlydHVhbCBib29s
IFN5bmMoIGJvb2wgYkZvcmNlID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBu
dWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25z
dCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFs
dWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgU2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0
IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAq
cGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRG
bG9hdCggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXks
IGZsb2F0IGZsVmFsdWUsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAw
OworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hT
ZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUs
IEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAg
ICAgIC8vIFVzZXJzIG9mIHRoZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1
bHQgaW4gZGVmYXVsdC52cnNldHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVj
dG9yeQorICAgICAgICAgICAgICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZl
cl94eHggZGlyZWN0b3J5LiBPdGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwg
MC4wIG9yICIiCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFy
ICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJv
ciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJf
dCBHZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGlu
Z3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBj
b25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51
bGxwdHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0
IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RS
SU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBSZW1vdmVTZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9y
ICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJl
bW92ZUtleUluU2VjdGlvbiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNo
U2V0dGluZ3NLZXksIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOwor
ICAgICAgIH07CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAw
MiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gc3RlYW12ciBr
ZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rp
b24gPSAic3RlYW12ciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0g
ImZvcmNlZERyaXZlciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0ZvcmNlZEhtZEtleV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlz
cGxheURlYnVnIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfRGVidWdQcm9jZXNzUGlwZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25f
Qm9vbCA9ICJlbmFibGVEaXN0b3J0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURl
YnVnWV9JbnQzMiA9ICJkaXNwbGF5RGVidWdZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2Vu
ZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRf
U3RyaW5nID0gImJhY2tncm91bmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3Jv
dW5kVXNlRG9tZVByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRD
YW1lcmFIZWlnaHQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xv
cl9TdHJpbmcgPSAiZ3JpZENvbG9yIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9C
b29sID0gInNob3dTdGFnZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBs
ZURyaXZlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1W
Ul9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVj
dE1vZGVFZGlkVmlkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0
ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJz
X0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAi
c3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wg
PSAiYmFzZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfU3RlYW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktp
bGxQcm9jZXNzZXMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxp
ZXIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxv
d0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0
aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wg
PSAiZm9yY2VSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25C
YWRUcmFja2luZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVh
bVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdf
Qm9vbCA9ICJzaG93TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dl
b21ldHJ5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
U3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21w
b3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2gi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERh
c2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2gi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92
ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJv
YXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5h
YmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRp
YWxEZWZhdWx0SG9tZUFwcCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tn
cm91bmRJbWFnZVRpbWVTZWMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9SZXRhaWxEZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRP
ZmZzZXQiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGxpZ2h0
aG91c2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRo
b3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVp
bXUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9V
c2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRl
YnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAi
cHJpbWFyeWJhc2VzdGF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKworICAgICAgIC8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9T
dHJpbmcgPSAic2VyaWFsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5k
b3dYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93
WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2lu
ZG93SGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
UmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zy
b21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5j
eV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFj
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNl
X1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJh
eV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1Nj
cmVlbnNob3RUeXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAgICAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmlj
YXRpb25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNh
dGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKworICAgICAgIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFs
Q29tcGxldGlvbnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVki
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0
TGVmdFggPSAiT2Zmc2V0TGVmdFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFki
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3Ro
aW5nID0gIlNtb290aGluZyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gcGVyZiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Q
ZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURf
Qm9vbCA9ICJ3YXJuSW5ITUQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9
ICJhbGxvd1RpbWluZ1N0b3JlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0
ID0gInBlcmZUZXN0RGF0YSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gY29sbGlzaW9uIGJvdW5kcyBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0
eWxlX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc1N0eWxlIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29s
ID0gIkNvbGxpc2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29s
ID0gIkNvbGxpc2lvbkJvdW5kc0NlbnRlck1hcmtlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNv
bGxpc2lvbkJvdW5kc1BsYXlTcGFjZU9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9u
Qm91bmRzRmFkZURpc3RhbmNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHND
b2xvckdhbW1hUiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ29sb3JHYW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1t
YUciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91
bmRzX0NvbG9yR2FtbWFCX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xv
ckdhbW1hQV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7CisKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gY2FtZXJhIGtleXMKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJh
X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVy
YUluRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Nh
bWVyYV9FbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFG
b3JDb2xsaXNpb25Cb3VuZHMiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9y
Um9vbVZpZXciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJh
X0JvdW5kc0NvbG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdh
bW1hR19JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFBIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVy
YV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CisKKyAgICAg
ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gYXVkaW8ga2V5cworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2
aWNlX1N0cmluZyA9ICJvblBsYXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERl
dmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBs
YXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2
aWNlX1N0cmluZyA9ICJvZmZQbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29y
ZERldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19W
SVZFSERNSUdhaW4gPSAidml2ZUhETUlHYWluIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBwb3dlciBtYW5hZ2VtZW50IGtleXMKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9
ICJwb3dlck9mZk9uRXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Qb3dlcl9UdXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1l
b3V0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5P
ZmZDb250cm9sbGVyc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dh
dGNoZG9nVGltZW91dF9GbG9hdCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9u
QnV0dG9uUHJlc3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKKworICAgICAg
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFz
aGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2Fy
ZF9FbmFibGVEYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJh
cmNhZGVNb2RlIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBt
b2RlbCBza2luIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21v
ZGVsc2tpbl9TZWN0aW9uID0gIm1vZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBp
biBhbnkgZHJpdmVyXzxuYW1lPiBzZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3Bh
Y2UgdnIKKworLy8gaXNlcnZlcnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAorbmFtZXNwYWNlIHZyCit7
CisKKworc3RydWN0IERyaXZlclBvc2VRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdywg
eCwgeSwgejsKK307CisKK3N0cnVjdCBEcml2ZXJQb3NlX3QKK3sKKyAgICAgICAvKiBUaW1lIG9m
ZnNldCBvZiB0aGlzIHBvc2UsIGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhl
IHBvc2UsCisgICAgICAgICogcmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVk
KCkgY2FsbCBtYWRlIGJ5IHRoZSBkcml2ZXIuCisgICAgICAgICovCisgICAgICAgZG91YmxlIHBv
c2VUaW1lT2Zmc2V0OworCisgICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVk
IGJ5IGEgZHJpdmVyCisgICAgICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0
ZW0gZGlmZmVyZW50CisgICAgICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0
LCB5KyB1cCwgeisgYmFjay4KKyAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3Vh
bGx5IHRyYWNraW5nIHRoZSAiaGVhZCIgcG9zaXRpb24sCisgICAgICAgICogYnV0IGluc3RlYWQg
YW4gaW50ZXJuYWwgSU1VIG9yIGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCisg
ICAgICAgICogVGhlIGZvbGxvd2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25z
IGFuZCBvcmllbnRhdGlvbnMKKyAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2
ZXIgd29ybGQgc3BhY2UsCisgICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJp
dmVyIGxvY2FsIGJvZHkgc3BhY2UuIAorICAgICAgICAqCisgICAgICAgICogV2UgbWFpbnRhaW4g
dGhlIGRyaXZlciBwb3NlIHN0YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwK
KyAgICAgICAgKiBzbyB3ZSBjYW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQg
aGF2aW5nIHRvCisgICAgICAgICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIn
cyBhbmd1bGFyIGFjY2VsZXJhdGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAorICAgICAg
ICAqIGFuZCBpcyBpbnN0ZWFkIGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2Yg
YW5ndWxhciB2ZWxvY2l0eS4KKyAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxh
ciBhY2NlbGVyYXRpb24gdmFsdWVzLCB3aGljaCBhcmUgYWxzbworICAgICAgICAqIGxhZ2dlZCBk
dWUgdG8gdGhlIGZpbHRlcmluZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0
YWJsZSBsZXZlbC4KKyAgICAgICAgKi8KKyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3Js
ZEZyb21Ecml2ZXJSb3RhdGlvbjsKKyAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJh
bnNsYXRpb25bIDMgXTsKKworICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21I
ZWFkUm90YXRpb247CisgICAgICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25b
IDMgXTsKKworICAgICAgIC8qIFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJh
ZGlhbnMuICovCisgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZl
cmVuY2UgaW4gZHJpdmVyIHdvcmxkIHNwYWNlCisgICAgICAgKiArWzBdICh4KSBpcyByaWdodAor
ICAgICAgICogK1sxXSAoeSkgaXMgdXAKKyAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKKyAg
ICAgICAqLworICAgICAgIGRvdWJsZSB2ZWNQb3NpdGlvblsgMyBdOworCisgICAgICAgLyogVmVs
b2NpdHkgb2YgdGhlIHBvc2UgaW4gbWV0ZXJzL3NlY29uZCAqLworICAgICAgIGRvdWJsZSB2ZWNW
ZWxvY2l0eVsgMyBdOworCisgICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1l
dGVycy9zZWNvbmQgKi8KKyAgICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07CisKKyAg
ICAgICAvKiBPcmllbnRhdGlvbiBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0
ZXJuaW9uICovCisgICAgICAgdnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247CisKKyAgICAg
ICAvKiBBbmd1bGFyIHZlbG9jaXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCisgICAgICAg
KiByZXByZXNlbnRhdGlvbi4gVGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKKyAgICAgICAq
IHJvdGF0aW9uIGFuZCB0aGUgbWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKKyAgICAgICAq
IHRoYXQgYXhpcyBpbiByYWRpYW5zL3NlY29uZC4gKi8KKyAgICAgICBkb3VibGUgdmVjQW5ndWxh
clZlbG9jaXR5WyAzIF07CisKKyAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUg
cG9zZSBpbiBheGlzLWFuZ2xlIAorICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rp
b24gaXMgdGhlIGFuZ2xlIG9mCisgICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBp
cyB0aGUgYW5nbGUgYXJvdW5kCisgICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmRe
Mi4gKi8KKyAgICAgICBkb3VibGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOworCisgICAg
ICAgRVRyYWNraW5nUmVzdWx0IHJlc3VsdDsKKworICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7Cisg
ICAgICAgYm9vbCB3aWxsRHJpZnRJbllhdzsKKyAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1v
ZGVsOworICAgICAgIGJvb2wgZGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBz
aW5nbGUgdHJhY2tlZCBkZXZpY2UgaW4gYSBkcml2ZXIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK2NsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCit7Citw
dWJsaWM6CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBNYW5hZ2VtZW50IE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFu
IEhNRCBpcyByZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCisg
ICAgICAgKiBjYWxsZWQgYmVmb3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1l
bW9yeSBhbmQgcHJvY2Vzc29yIHVzZSBieSB0aGUKKyAgICAgICAqIElUcmFja2VkRGV2aWNlU2Vy
dmVyRHJpdmVyIG9iamVjdCBzaG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMg
YWN0aXZhdGVkLgorICAgICAgICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBi
ZSB2YWxpZCB1bnRpbCBEZWFjdGl2YXRlIGlzIGNhbGxlZCwgYnV0CisgICAgICAgKiBzaG91bGQg
bm90IGJlIHVzZWQgYWZ0ZXIgdGhhdCBwb2ludC4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRF
cnJvciBBY3RpdmF0ZSggdWludDMyX3QgdW5PYmplY3RJZCApID0gMDsKKworICAgICAgIC8qKiBU
aGlzIGlzIGNhbGxlZCB3aGVuIFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBI
bWQgYmVpbmcgdGhlIGFjdGl2ZSBkaXNwbGF5CisgICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWlu
ZyB0aGUgYWN0aXZlIGRpc3BsYXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1l
bW9yeQorICAgICAgICogYW5kIHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0
ZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKKworICAgICAgIC8q
KiBIYW5kbGVzIGEgcmVxdWVzdCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGlu
dG8gc3RhbmRieSBtb2RlLiBXaGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAq
LworICAgICAgIHZpcnR1YWwgdm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7CisKKyAgICAgICAvKiog
UmVxdWVzdHMgYSBjb21wb25lbnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1z
cGVjaWZpYyBmdW5jdGlvbmFsaXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAorICAg
ICAgICogaWYgdGhlIHJlcXVlc3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9y
dGVkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpw
Y2hDb21wb25lbnROYW1lQW5kVmVyc2lvbiApID0gMDsKKworICAgICAgIC8qKiBBIFZSIENsaWVu
dCBoYXMgbWFkZSB0aGlzIGRlYnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2
YWxpZCByZXF1ZXN0cyBpcyBlbnRpcmVseQorICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQg
dGhlIGNsaWVudCB0byBmaWd1cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25z
ZS4gUmVzcG9uc2VzIHRoYXQKKyAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBw
bGllZCBidWZmZXIgc2hvdWxkIGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCisg
ICAgICAgdmlydHVhbCB2b2lkIERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwg
Y2hhciAqcGNoUmVzcG9uc2VCdWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkg
PSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
ICAgICAgLy8gVHJhY2tpbmcgTWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9
IDA7Cit9OworCisKKworc3RhdGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJp
dmVyX1ZlcnNpb24gPSAiSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKKworfQorLy8g
aXZyZGlzcGxheWNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRo
ZSBkaXNwbGF5IGNvbXBvbmVudCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQorICAgICAgIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBJVlJE
aXNwbGF5Q29tcG9uZW50CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAg
ICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg
Ly8gRGlzcGxheSBNZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0
aGF0IHRoZSB3aW5kb3cgbmVlZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCisgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJf
dCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5n
IHRoZSBkZXNrdG9wLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25E
ZXNrdG9wKCApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBk
aXNwbGF5IGlzIHJlYWwgYW5kIG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLworICAgICAgICAg
ICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBTdWdnZXN0ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFy
Z2V0IHRoYXQgdGhlIGRpc3RvcnRpb24gcHVsbHMgZnJvbS4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCB2b2lkIEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lk
dGgsIHVpbnQzMl90ICpwbkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0
aGUgdmlld3BvcnQgaW4gdGhlIGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhl
IGRpc3RvcnRpb24gaW50byAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0
cHV0Vmlld3BvcnQoIEVWUkV5ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1
aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAg
ICAgIC8qKiBUaGUgY29tcG9uZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVj
dGlvbiBtYXRyaXggaW4gY2FzZSB5b3VyCisgICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMg
ZG9pbmcgc29tZXRoaW5nIGZhbmN5IGxpa2UgaW5maW5pdGUgWiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQs
IGZsb2F0ICpwZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1
bmN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAw
LDAgaW4KKyAgICAgICAgICAgICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdw
b3J0IGFuZCAxLDEgaW4gdGhlIGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICov
CisgICAgICAgICAgICAgIHZpcnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURp
c3RvcnRpb24oIEVWUkV5ZSBlRXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7CisKKyAgICAg
ICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVy
c2lvbiA9ICJJVlJEaXNwbGF5Q29tcG9uZW50XzAwMiI7CisKK30KKworLy8gaXZyZHJpdmVyZGly
ZWN0bW9kZWNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoaXMg
Y29tcG9uZW50IGlzIHVzZWQgZm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUg
ZW50aXJlbHkgb24gdGhlaXIgb3duCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRo
b3V0IGFsbG93aW5nIHRoZSBWUiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4g
Q2hhbmNlcyBhcmUgeW91IGRvbid0CisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVk
IHRvIGltcGxlbWVudCB0aGlzIGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KKyAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSRHJp
dmVyRGlyZWN0TW9kZUNvbXBvbmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAg
ICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg
ICAgICAgLy8gRGlyZWN0IG1vZGUgbWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0
byBPY3VsdXMgY29tcG9zaXRvciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNy
ZWF0ZWQgdXNpbmcgdGhpcyBtZXRob2QuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBD
cmVhdGVTd2FwVGV4dHVyZVNldCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1
aW50MzJfdCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5k
bGVfdCggKnBTaGFyZWRUZXh0dXJlSGFuZGxlcyApWyAzIF0gKSB7fQorCisgICAgICAgICAgICAg
IC8qKiBVc2VkIHRvIHRleHR1cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQu
ICBPbmx5IG9uZSBvZiB0aGUgc2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ry
b3kgdGhlIGVudGlyZSBzZXQuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95
U3dhcFRleHR1cmVTZXQoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhh
bmRsZSApIHt9CisKKyAgICAgICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUg
c2V0cyBmb3IgYSBnaXZlbiBwcm9jZXNzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
RGVzdHJveUFsbFN3YXBUZXh0dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQorCisgICAgICAg
ICAgICAgIC8qKiBBZnRlciBQcmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBu
ZXh0IGluZGV4IHRvIHVzZSBmb3IgcmVuZGVyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgR2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxl
X3Qgc2hhcmVkVGV4dHVyZUhhbmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0g
KSB7fQorCisgICAgICAgICAgICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9y
IHRoaXMgZnJhbWUuICBPbmUgc2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJl
cyBtdXN0IGJlIGNyZWF0ZWQKKyAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVy
ZVNldCBhbmQgc2hvdWxkIGJlIGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9u
Y2UgYWxsIGxheWVycyBoYXZlIGJlZW4gc3VibWl0dGVkLiAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHZvaWQgU3VibWl0TGF5ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4
dHVyZUhhbmRsZXNbIDIgXSwgY29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClb
IDIgXSwgY29uc3QgdnI6OkhtZE1hdHJpeDM0X3QgKnBQb3NlICkge30KKworICAgICAgICAgICAg
ICAvKiogU3VibWl0cyBxdWV1ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIHZvaWQgUHJlc2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4
dHVyZSApIHt9CisKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRy
aXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29t
cG9uZW50XzAwMiI7CisKK30KKworLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCituYW1lc3Bh
Y2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgICAgIC8vIFB1cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRy
YWNrZWQgZGV2aWNlLgorICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICBjbGFzcyBJVlJDb250cm9sbGVyQ29tcG9uZW50CisgICAgICAgeworICAg
ICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAg
ICAgICAgIC8qKiBHZXRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0
ZSggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHku
IElmIHRoZSBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1
cm4gMC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSgg
dWludDMyX3QgdW5BeGlzSWQsIHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyAp
ID0gMDsKKworICAgICAgIH07CisKKworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNv
bnRyb2xsZXJDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7
CisKK30KKy8vIGl2cmNhbWVyYWNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIGNsYXNzIElDYW1lcmFWaWRlb1NpbmtDYWxsYmFjaworICAgICAgIHsKKyAgICAgICBwdWJs
aWM6CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNr
KCkgPSAwOworICAgICAgIH07CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgICAgICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0
cmFja2VkIGRldmljZQorICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICBjbGFzcyBJVlJDYW1lcmFDb21wb25lbnQKKyAgICAgICB7CisgICAgICAg
cHVibGljOgorICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAgICAgICAgLy8gQ2FtZXJhIE1ldGhvZHMKKyAgICAgICAgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBHZXRDYW1lcmFGcmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1G
b3JtYXQgblZpZGVvU3RyZWFtRm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhl
aWdodCApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVm
ZmVyaW5nUmVxdWlyZW1lbnRzKCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90
ICpwRnJhbWVCdWZmZXJEYXRhU2l6ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29s
IFNldENhbWVyYUZyYW1lQnVmZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipw
cEZyYW1lQnVmZmVycywgdWludDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVD
YW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgdnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRl
b1N0cmVhbUZvcm1hdCgpID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0Vmlk
ZW9TdHJlYW0oKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJl
YW0oKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZl
KCBib29sICpwYlBhdXNlZCwgZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOworICAgICAgICAg
ICAgICB2aXJ0dWFsIGNvbnN0IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVv
U3RyZWFtRnJhbWUoKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlk
ZW9TdHJlYW1GcmFtZSggY29uc3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1l
SW1hZ2UgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUo
IGJvb2wgYkVuYWJsZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlk
ZW9TdHJlYW0oKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0
cmVhbSgpID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRp
b24oIGZsb2F0IGZsSW5wdXRVLCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZs
b2F0ICpwZmxPdXRwdXRWICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2Ft
ZXJhUHJvamVjdGlvbiggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwg
ZmxvYXQgZmxaTmVhciwgZmxvYXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rp
b24gKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBu
SVNQRnJhbWVSYXRlLCBpbnQgblNlbnNvckZyYW1lUmF0ZSApID0gMDsKKyAgICAgICAgICAgICAg
dmlydHVhbCBib29sIFNldENhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVv
U2lua0NhbGxiYWNrICpwQ2FtZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7CisgICAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFD
b21wYXRpYmlsaXR5TW9kZSAqcENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2Ft
ZXJhQ29tcGF0aWJpbGl0eU1vZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAg
ICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3Qg
KnBUb3AsIHVpbnQzMl90ICpwV2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworICAgICAg
ICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEht
ZFZlY3RvcjJfdCAqcENlbnRlciApID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKklWUkNhbWVyYUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVu
dF8wMDIiOworfQorLy8gaXRyYWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCituYW1lc3BhY2Ug
dnIKK3sKKworY2xhc3MgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7CitzdHJ1Y3QgVHJhY2tl
ZERldmljZURyaXZlckluZm9fdDsKK3N0cnVjdCBEcml2ZXJQb3NlX3Q7Cit0eXBlZGVmIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgRHJpdmVySGFuZGxlX3Q7CisKKy8qKiBUaGlzIGludGVyZmFj
ZSBpcyBwcm92aWRlZCBieSB2cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAK
KyogdGhlIHN5c3RlbSB3aGVuIHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVz
ZSBjaGFuZ2VzIG11c3QKKyogbm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBv
ZiB0aGUgZGV2aWNlIGJlY2F1c2UgdGhvc2UgdmFsdWVzCisqIGFyZSBwZXJtYW5lbnRseSBhc3Nv
Y2lhdGVkIHdpdGggdGhlIGRldmljZSdzIGluZGV4LiAqLworY2xhc3MgSVZSRHJpdmVyQ29udGV4
dAoreworcHVibGljOgorICAgICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNl
LiBJZiB0aGUgaW50ZXJmYWNlIHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwg
YW5kIGZpbGwKKyAgICAgICAqIG91dCB0aGUgZXJyb3IuICovCisgICAgICAgdmlydHVhbCB2b2lk
ICpHZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBF
VlJJbml0RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdGhlIHByb3BlcnR5IGNvbnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCisgICAg
ICAgdmlydHVhbCBEcml2ZXJIYW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Cit9OworCisK
Ky8qKiBUaGlzIGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJ
dCB3aWxsIGJlIGxvYWRlZCBpbiB2cnNlcnZlci5leGUgKi8KK2NsYXNzIElTZXJ2ZXJUcmFja2Vk
RGV2aWNlUHJvdmlkZXIKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRy
aXZlci4gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNh
bGxlZC4KKyAgICAgICAqIElmIEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5p
dEVycm9yX05vbmUgdGhlIGRyaXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KKyAgICAgICAqCisg
ICAgICAgKiBwRHJpdmVySG9zdCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBi
ZSBhIHBvaW50ZXIgdG8gYSBJU2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKKyAgICAgICAqCisg
ICAgICAgKiBwY2hVc2VyRHJpdmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhl
IGRpcmVjdG9yeSB3aGVyZSB0aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCisgICAgICAgKiAg
ICAgICBjb25maWcgZmlsZXMuCisgICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFi
c29sdXRlIHBhdGggb2YgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgorICAgICAg
ICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAq
cERyaXZlckNvbnRleHQgKSA9IDA7CisKKyAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIg
cmlnaHQgYmVmb3JlIGl0IGlzIHVubG9hZGVkICovCisgICAgICAgdmlydHVhbCB2b2lkIENsZWFu
dXAoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNr
ZWREZXZpY2VTZXJ2ZXJEcml2ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KKyAg
ICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9
IDA7CisKKyAgICAgICAvKiogQWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRo
ZSBtYWluIGxvb3Agb2YgdGhlIHNlcnZlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJh
bWUoKSA9IDA7CisKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rp
b25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vCisKKyAgICAgICAvKiogUmV0dXJucyB0cnVl
IGlmIHRoZSBkcml2ZXIgd2FudHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLworICAgICAgIHZp
cnR1YWwgYm9vbCBTaG91bGRCbG9ja1N0YW5kYnlNb2RlKCkgPSAwOworCisgICAgICAgLyoqIENh
bGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVy
IHNob3VsZCBzd2l0Y2ggaXRzZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKKyAg
ICAgICAqIHN0YXRlIGl0IGhhcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5
KCkgPSAwOworCisgICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBT
dGFuZGJ5IG1vZGUuIFRoZSBkcml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bworICAg
ICAgIGZ1bGwgb3BlcmF0aW9uLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnko
KSA9IDA7CisKK307CisKKworc3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNl
UHJvdmlkZXJfVmVyc2lvbiA9ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7CisK
KworCisKKy8qKiBUaGlzIGludGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJp
dmVyLiBJdCB3aWxsIGJlIGxvYWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KK2NsYXNzIElWUldhdGNo
ZG9nUHJvdmlkZXIKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZl
ciBpbiB3YXRjaGRvZyBtb2RlLiAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQo
IElWUkRyaXZlckNvbnRleHQgKnBEcml2ZXJDb250ZXh0ICkgPSAwOworCisgICAgICAgLyoqIGNs
ZWFucyB1cCB0aGUgZHJpdmVyIHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklW
UldhdGNoZG9nUHJvdmlkZXJfVmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7CisK
K30KKy8vIGl2cnByb3BlcnRpZXMuaAorI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHZy
Cit7CisKKyAgICAgICBlbnVtIEVQcm9wZXJ0eVdyaXRlVHlwZQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgUHJvcGVydHlXcml0ZV9TZXQgPSAwLAorICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRl
X0VyYXNlID0gMSwKKyAgICAgICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKKyAg
ICAgICB9OworCisgICAgICAgc3RydWN0IFByb3BlcnR5V3JpdGVfdAorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAgICBFUHJv
cGVydHlXcml0ZVR5cGUgd3JpdGVUeXBlOworICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgZVNldEVycm9yOworICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKKyAgICAgICAg
ICAgICAgdWludDMyX3QgdW5CdWZmZXJTaXplOworICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVU
YWdfdCB1blRhZzsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsK
KyAgICAgICB9OworCisgICAgICAgc3RydWN0IFByb3BlcnR5UmVhZF90CisgICAgICAgeworICAg
ICAgICAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3A7CisgICAgICAgICAgICAgIHZv
aWQgKnB2QnVmZmVyOworICAgICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7CisgICAg
ICAgICAgICAgIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnOworICAgICAgICAgICAgICB1aW50MzJf
dCB1blJlcXVpcmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIGVFcnJvcjsKKyAgICAgICB9OworCisKK2NsYXNzIElWUlByb3BlcnRpZXMKK3sKK3B1Ymxp
YzoKKworICAgICAgIC8qKiBSZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNl
ZSB0aGUgUHJvcGVydHlSZWFkQmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICov
CisgICAgICAgdmlydHVhbCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2go
IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVh
ZF90ICpwQmF0Y2gsIHVpbnQzMl90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAg
LyoqIFdyaXRlcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVy
dHlXcml0ZUJhdGNoX3Qgc3RydWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLworICAgICAgIHZp
cnR1YWwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0
Y2gsIHVpbnQzMl90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIHJldHVy
bnMgYSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkg
ZXJyb3IuIFRoZSBzdHJpbmcgd2lsbCBiZSB0aGUgbmFtZQorICAgICAgICogb2YgdGhlIGVycm9y
IGVudW0gdmFsdWUgZm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgIHZpcnR1YWwg
Y29uc3QgY2hhciAqR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJy
b3IgZXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUg
Z2l2ZW4gYSB0cmFja2VkIGRldmljZSBpbmRleCAqLworICAgICAgIHZpcnR1YWwgUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCBUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tl
ZERldmljZUluZGV4X3QgbkRldmljZSApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBJVlJQcm9wZXJ0aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOworCitj
bGFzcyBDVlJQcm9wZXJ0eUhlbHBlcnMKK3sKK3B1YmxpYzoKKyAgICAgICBDVlJQcm9wZXJ0eUhl
bHBlcnMoIElWUlByb3BlcnRpZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFBy
b3BlcnRpZXMgKSB7fQorCisgICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElm
IHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBl
IGRvZXMgbm90IG1hdGNoLAorICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxz
ZS4gKi8KKyAgICAgICBib29sIEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5k
bGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgZmxvYXQgR2V0RmxvYXRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9
IDBMICk7CisgICAgICAgaW50MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3As
IEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKTsKKyAgICAgICB1aW50NjRfdCBH
ZXRVaW50NjRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
KnBFcnJvciA9IDBMICk7CisKKyAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9w
ZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlz
IG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAu
IE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBu
ZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAg
ICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQ
cm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRQcm9w
ZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVp
bnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOworCisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0
cmluZyBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHBy
b3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICog
cmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBv
ZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWls
aW5nCisgICAgICAgKiBudWxsLiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9m
IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJf
dCBHZXRTdHJpbmdQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5l
ckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hh
ciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
ICpwRXJyb3IgPSAwTCApOworCisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkg
YXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhl
IHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAg
ICogcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4gKi8KKyAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJp
bmdQcm9wZXJ0eSggdnI6OlByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZy
OjpFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
KnBlRXJyb3IgPSBudWxscHRyICk7CisKKyAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0
eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwg
dG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIFNldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1
bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdW
YWx1ZSApOworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQ
cm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmlj
ZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApOworICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvciBTZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29u
dGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1Zh
bHVlICk7CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQ
cm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmlj
ZVByb3BlcnR5IHByb3AsIHVpbnQ2NF90IHVsTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRz
IGEgc3RyaW5nIHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55
IHN1YnNlcXVlbnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8K
KyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgY29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEg
c2luZ2xlIHR5cGVkIHByb3BlcnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24g
YW55IHN1YnNlcXVlbnQgY2FsbCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4g
Ki8KKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgdm9pZCAqcHZOZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5
VHlwZVRhZ190IHVuVGFnICk7CisKKyAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZh
bHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1
YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBTZXRQcm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBlRXJyb3IgKTsKKworICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9y
IGVycm9yIHNldCBmb3IgdGhlIHByb3BlcnR5LiAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlF
cnJvciBFcmFzZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgKTsKKworICAgICAgIC8qIFR1cm5z
IGEgZGV2aWNlIGluZGV4IGludG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLworICAg
ICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250
YWluZXIoIFRyYWNrZWREZXZpY2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0
aWVzLT5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQorCitw
cml2YXRlOgorICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgVCBHZXRQcm9wZXJ0
eUhlbHBlciggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwg
VCBiRGVmYXVsdCwgUHJvcGVydHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7CisKKyAgICAgICBJVlJQ
cm9wZXJ0aWVzICptX3BQcm9wZXJ0aWVzOworfTsKKworCitpbmxpbmUgdWludDMyX3QgQ1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENv
bnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5H
KCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFn
X3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIFBy
b3BlcnR5UmVhZF90IGJhdGNoOworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJh
dGNoLnB2QnVmZmVyID0gcHZCdWZmZXI7CisgICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5C
dWZmZXJTaXplOworCisgICAgICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVs
Q29udGFpbmVySGFuZGxlLCAmYmF0Y2gsIDEgKTsKKworICAgICAgIGlmICggcEVycm9yICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7CisgICAgICAgfQor
CisgICAgICAgaWYgKCBwdW5UYWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgKnB1blRhZyA9
IGJhdGNoLnVuVGFnOworICAgICAgIH0KKworICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVk
QnVmZmVyU2l6ZTsKK30KKworCisvKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhl
IG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0
IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0
eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwg
dm9pZCAqcHZOZXdWYWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRh
Z190IHVuVGFnICkKK3sKKyAgICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7CisgICAgICAgYmF0
Y2gud3JpdGVUeXBlID0gUHJvcGVydHlXcml0ZV9TZXQ7CisgICAgICAgYmF0Y2gucHJvcCA9IHBy
b3A7CisgICAgICAgYmF0Y2gucHZCdWZmZXIgPSBwdk5ld1ZhbHVlOworICAgICAgIGJhdGNoLnVu
QnVmZmVyU2l6ZSA9IHVuTmV3VmFsdWVTaXplOworICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7
CisKKyAgICAgICBtX3BQcm9wZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVy
SGFuZGxlLCAmYmF0Y2gsIDEgKTsKKworICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Cit9CisK
KworLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMg
bm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0
aW9uIHdpbGwKKyogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2Yg
dGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRp
bmcgdGhlIHRyYWlsaW5nCisqIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZl
cnMgb2Yga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLworaW5saW5lIHVp
bnQzMl90IENWUlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNp
emUsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBQcm9wZXJ0eVR5
cGVUYWdfdCB1blRhZzsKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7CisgICAg
ICAgdWludDMyX3QgdW5SZXF1aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5k
bGUsIHByb3AsIHBjaFZhbHVlLCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7CisgICAg
ICAgaWYgKCB1blRhZyAhPSBrX3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tl
ZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQ
cm9wX1dyb25nRGF0YVR5cGU7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwRXJyb3IgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgKnBFcnJvciA9IGVycm9yOworICAgICAgIH0KKworICAgICAg
IGlmICggZXJyb3IgIT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAg
ICAgICBpZiAoIHBjaFZhbHVlICYmIHVuQnVmZmVyU2l6ZSApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICpwY2hWYWx1ZSA9ICdcMCc7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICB9CisKKyAgICAgICByZXR1cm4gdW5SZXF1aXJlZFNpemU7Cit9CisKKworLyoqIFJldHVy
bnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRl
eCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMg
ZnVuY3Rpb24gd2lsbAorKiByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLworaW5saW5lIHN0ZDo6
c3RyaW5nIENWUlByb3BlcnR5SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKK3sKKyAgICAgICBj
aGFyIGJ1ZlsxMDI0XTsKKyAgICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKKyAg
ICAgICB1aW50MzJfdCB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVs
Q29udGFpbmVyLCBwcm9wLCBidWYsIHNpemVvZihidWYpLCAmZXJyICk7CisKKyAgICAgICBzdGQ6
OnN0cmluZyBzUmVzdWx0OworCisgICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2Vz
cyApCisgICAgICAgeworICAgICAgICAgICAgICBzUmVzdWx0ID0gYnVmOworICAgICAgIH0KKyAg
ICAgICBlbHNlIGlmICggZXJyID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRC
dWZmZXJMZW5dOworICAgICAgICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5n
UHJvcGVydHkoIHVsQ29udGFpbmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJM
ZW4sICZlcnIgKTsKKyAgICAgICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKKyAgICAgICAg
ICAgICAgZGVsZXRlW10gcGNoQnVmZmVyOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJv
ciApCisgICAgICAgeworICAgICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKKyAgICAgICB9CisK
KyAgICAgICByZXR1cm4gc1Jlc3VsdDsKK30KKworCisvKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0
eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwg
dG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4gYW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3Bl
cnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcCwgY29uc3QgY2hhciAqcGNoTmV3VmFsdWUgKQoreworICAgICAgIGlmICggIXBj
aE5ld1ZhbHVlICkKKyAgICAgICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVy
YXRpb247CisKKyAgICAgICAvLyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5
IG9uIHN0cmluZy5oCisgICAgICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOwor
ICAgICAgIHdoaWxlICggKnBjaEN1cnIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGNoQ3Vy
cisrOworICAgICAgIH0KKworICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJI
YW5kbGUsIHByb3AsICh2b2lkICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBj
aE5ld1ZhbHVlKSArIDEsIGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyApOworfQorCisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CitpbmxpbmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVs
cGVyKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJE
ZWZhdWx0LCBQcm9wZXJ0eVR5cGVUYWdfdCB1blR5cGVUYWcgKQoreworICAgICAgIFQgYlZhbHVl
OworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAgICAgUHJvcGVydHlU
eXBlVGFnX3QgdW5SZWFkVGFnOworICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRs
ZSwgcHJvcCwgJmJWYWx1ZSwgc2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciAp
OworICAgICAgIGlmICggdW5SZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tl
ZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2Vk
UHJvcF9Xcm9uZ0RhdGFUeXBlOworICAgICAgIH07CisKKyAgICAgICBpZiAoIHBFcnJvciApCisg
ICAgICAgICAgICAgICpwRXJyb3IgPSBlRXJyb3I7CisgICAgICAgaWYgKCBlRXJyb3IgIT0gVHJh
Y2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1
bHQ7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVy
biBiVmFsdWU7CisgICAgICAgfQorfQorCisKK2lubGluZSBib29sIENWUlByb3BlcnR5SGVscGVy
czo6R2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJv
ciAqcEVycm9yICkKK3sKKyAgICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVs
Q29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFn
ICk7Cit9CisKKworaW5saW5lIGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9w
ZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7
CisgICAgICAgcmV0dXJuIEdldFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5k
bGUsIHByb3AsIHBFcnJvciwgMC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOworfQorCitpbmxp
bmUgaW50MzJfdCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5
Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVy
biBHZXRQcm9wZXJ0eUhlbHBlcjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBF
cnJvciwgMCwga191bkludDMyUHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIHVpbnQ2NF90IENW
UlByb3BlcnR5SGVscGVyczo6R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFu
ZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0
eUhlbHBlcjx1aW50NjRfdD4oIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtf
dW5VaW50NjRQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
IENWUlByb3BlcnR5SGVscGVyczo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJv
b2wgYk5ld1ZhbHVlICkKK3sKKyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVy
SGFuZGxlLCBwcm9wLCAmYk5ld1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFBy
b3BlcnR5VGFnICk7Cit9CisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVy
dHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVs
Q29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdW
YWx1ZSApCit7CisgICAgICAgcmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwg
cHJvcCwgJmZOZXdWYWx1ZSwgc2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlU
YWcgKTsKK30KKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBl
cnM6OlNldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUg
KQoreworICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3As
ICZuTmV3VmFsdWUsIHNpemVvZiggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7
Cit9CisKK2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpT
ZXRVaW50NjRQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkK
K3sKKyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAm
dWxOZXdWYWx1ZSwgc2l6ZW9mKCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyAp
OworfQorCisvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBU
aGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8g
Z2V0IHRoZSBwcm9wZXJ0eSAqLworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9w
ZXJ0eUhlbHBlcnM6OlNldFByb3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIGVFcnJvciApCit7CisgICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOwor
ICAgICAgIGJhdGNoLndyaXRlVHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7CisgICAgICAg
YmF0Y2gucHJvcCA9IHByb3A7CisgICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOworCisg
ICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRs
ZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworfQorCisvKiog
Q2xlYXJzIGFueSB2YWx1ZSBvciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KK2lubGlu
ZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5
KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AgKQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKKyAg
ICAgICBiYXRjaC53cml0ZVR5cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOworICAgICAgIGJhdGNo
LnByb3AgPSBwcm9wOworCisgICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNo
KCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2gu
ZUVycm9yOworCit9CisKK30KKworCisvLyBpdnJkcml2ZXJsb2cuaAorbmFtZXNwYWNlIHZyCit7
CisKK2NsYXNzIElWUkRyaXZlckxvZworeworcHVibGljOgorICAgICAgIC8qKiBXcml0ZXMgYSBs
b2cgbWVzc2FnZSB0byB0aGUgbG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUg
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkg
PSAwOworfTsKKworCitzdGF0aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAi
SVZSRHJpdmVyTG9nXzAwMSI7CisKK30KKy8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAorbmFtZXNw
YWNlIHZyCit7CisKK2NsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRy
YWNrZWREZXZpY2VEcml2ZXJJbmZvX3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OworCisvKiogVGhp
cyBpbnRlcmZhY2UgaXMgcHJvdmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0
byBub3RpZnkgCisqIHRoZSBzeXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRl
dmljZS4gVGhlc2UgY2hhbmdlcyBtdXN0CisqIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIg
b3IgY2xhc3Mgb2YgdGhlIGRldmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFu
ZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUlNl
cnZlckRyaXZlckhvc3QKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZl
ciB0aGF0IGEgdHJhY2tlZCBkZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24g
cmV0dXJucyB0cnVlCisgICAgICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0
aGUgZGV2aWNlLiBJZiBpdCByZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgorICAgICAg
ICogaGFzIG9jY3VycmVkIGFuZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8K
KyAgICAgICB2aXJ0dWFsIGJvb2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hE
ZXZpY2VTZXJpYWxOdW1iZXIsIEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJh
Y2tlZERldmljZVNlcnZlckRyaXZlciAqcERyaXZlciApID0gMDsKKworICAgICAgIC8qKiBOb3Rp
ZmllcyB0aGUgc2VydmVyIHRoYXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBk
YXRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVp
bnQzMl90IHVuV2hpY2hEZXZpY2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQz
Ml90IHVuUG9zZVN0cnVjdFNpemUgKSA9IDA7CisKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNl
cnZlciB0aGF0IHZzeW5jIGhhcyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQg
dG8gdGhlIGRldmljZS4gVGhpcyBpcworICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNl
cyBvZiB0aGUgSE1EIGNsYXNzLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBk
b3VibGUgdnN5bmNUaW1lT2Zmc2V0U2Vjb25kcyApID0gMDsKKworICAgICAgIC8qKiBub3RpZmll
cyB0aGUgc2VydmVyIHRoYXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1
YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmlj
ZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOwor
CisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnBy
ZXNzZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3Nl
ZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUg
ZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIg
dGhhdCB0aGUgYnV0dG9uIHdhcyBwcmVzc2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNr
ZWREZXZpY2VCdXR0b25Ub3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25J
ZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAgICAgICAvKiog
bm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1
bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZz
ZXQgKSA9IDA7CisKKyAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJv
bGxlciBheGlzIGNoYW5nZWQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4
aXNVcGRhdGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywg
Y29uc3QgVlJDb250cm9sbGVyQXhpc190ICYgYXhpc1N0YXRlICkgPSAwOworCisgICAgICAgLyoq
IE5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3Bl
Y2lmaWVkIGRldmljZSAgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3Rh
dGUoIHVpbnQzMl90IHVuV2hpY2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJl
ZCApID0gMDsKKworICAgICAgIC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJF
dmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZp
Y19SZXNlcnZlZF9FbmQgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVu
dCggdWludDMyX3QgdW5XaGljaERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNv
bnN0IFZSRXZlbnRfRGF0YV90ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkg
PSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8K
KyAgICAgICB2aXJ0dWFsIGJvb2wgSXNFeGl0aW5nKCkgPSAwOworCisgICAgICAgLyoqIFJldHVy
bnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1
ZXVlIGlmIHRoZXJlIGlzIG9uZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cworICAgICAgICogdGhp
cyBtZXRob2QgcmV0dXJucyBmYWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGlu
IGJ5dGVzIG9mIHRoZSBWUkV2ZW50X3Qgc3RydWN0ICovCisgICAgICAgdmlydHVhbCBib29sIFBv
bGxOZXh0RXZlbnQoIFZSRXZlbnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0g
MDsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24g
PSAiSVZSU2VydmVyRHJpdmVySG9zdF8wMDQiOworCit9CisvLyBpdnJoaWRkZW5hcmVhLmgKK25h
bWVzcGFjZSB2cgoreworCitjbGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycworeworcHVibGljOgor
ICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyAp
IDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMgKSB7fQorCisgICAgICAgLyoqIFN0b3JlcyBh
IGhpZGRlbiBhcmVhIG1lc2ggaW4gYSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVy
dHlFcnJvciBTZXRIaWRkZW5BcmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0
eXBlLCBIbWRWZWN0b3IyX3QgKnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKKworICAg
ICAgIC8qKiByZXRyaWV2ZXMgYSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0
dXJucyB0aGUgdmVydCBjb3VudCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLworICAgICAg
IHVpbnQzMl90IEdldEhpZGRlbkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUsIEhtZFZlY3RvcjJfdCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICk7CisKK3ByaXZhdGU6CisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBHZXRQcm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1l
c2hUeXBlIHR5cGUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERl
dmljZVByb3BlcnR5KShQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50
KXR5cGUgKiAyKSArIChpbnQpZUV5ZSk7CisgICAgICAgfQorCisgICAgICAgSVZSUHJvcGVydGll
cyAqbV9wUHJvcGVydGllczsKK307CisKKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBD
VlJIaWRkZW5BcmVhSGVscGVyczo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5B
cmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENv
dW50ICkKK3sKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0
eUVudW0oIGVFeWUsIHR5cGUgKTsKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBl
cnMoIG1fcFByb3BlcnRpZXMgKTsKKyAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVy
dHkoIHByb3BIZWxwZXJzLlRyYWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJh
Y2tlZERldmljZUluZGV4X0htZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90
ICkgKiB1blZlcnRDb3VudCwga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOworfQorCisKK2lu
bGluZSB1aW50MzJfdCBDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXll
IGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVp
bnQzMl90IHVuVmVydENvdW50LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQorewor
ICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5
ZSwgdHlwZSApOworICAgICAgIENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJv
cGVydGllcyApOworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7CisgICAg
ICAgUHJvcGVydHlUeXBlVGFnX3QgdW5UYWc7CisgICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRl
ZCA9IHByb3BIZWxwZXJzLkdldFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Q
cm9wZXJ0eUNvbnRhaW5lcigga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZl
cnRzLCBzaXplb2YoIEhtZFZlY3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJy
b3IgKTsKKyAgICAgICBpZiAoIHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVu
VGFnICE9IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcHJvcEVycm9yID0gVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKKyAgICAgICAgICAgICAg
dW5CeXRlc05lZWRlZCA9IDA7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwZUVycm9yICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgICpwZUVycm9yID0gcHJvcEVycm9yOworICAgICAgIH0KKwor
ICAgICAgIHJldHVybiB1bkJ5dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKK30K
KworfQorLy8gaXZyd2F0Y2hkb2dob3N0LmgKK25hbWVzcGFjZSB2cgoreworCisvKiogVGhpcyBp
bnRlcmZhY2UgaXMgcHJvdmlkZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBt
YWtlIGV2ZXJ5dGhpbmcgd2FrZSB1cCAqLworY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Cit7CitwdWJs
aWM6CisgICAgICAgLyoqIENsaWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNh
bGwgdGhpcyB3aGVuIHRoZXkgaGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRo
YXQgc2hvdWxkCisgICAgICAgKiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCisgICAgICAgdmly
dHVhbCB2b2lkIFdhdGNoZG9nV2FrZVVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIg
KklWUldhdGNoZG9nSG9zdF9WZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOworCit9Owor
CisKKworCisKKworCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfSW50ZXJmYWNlVmVyc2lvbnNbXSA9CisgICAgICAgeworICAgICAgICAgICAgICBJ
VlJTZXR0aW5nc19WZXJzaW9uLAorICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRy
aXZlcl9WZXJzaW9uLAorICAgICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24s
CisgICAgICAgICAgICAgIElWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKKyAg
ICAgICAgICAgICAgSVZSQ29udHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAorICAgICAgICAgICAg
ICBJVlJDYW1lcmFDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVNlcnZlclRyYWNr
ZWREZXZpY2VQcm92aWRlcl9WZXJzaW9uLAorICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3Zp
ZGVyX1ZlcnNpb24sCisgICAgICAgICAgICAgIG51bGxwdHIKKyAgICAgICB9OworCisgICAgICAg
aW5saW5lIElWUkRyaXZlckNvbnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgc3RhdGljIElWUkRyaXZlckNvbnRleHQgKnBIb3N0OworICAgICAgICAgICAg
ICByZXR1cm4gcEhvc3Q7CisgICAgICAgfQorCisgICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNv
bnRleHQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAgICAgICBDT3BlblZSRHJp
dmVyQ29udGV4dCgpIDogbV9wcm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhl
bHBlcnMobnVsbHB0cikgeyBDbGVhcigpOyB9CisgICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsK
KworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOworICAgICAgICAgICAg
ICBFVlJJbml0RXJyb3IgSW5pdFdhdGNoZG9nKCk7CisKKyAgICAgICAgICAgICAgSVZSU2V0dGlu
Z3MgKlZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAoIG1fcFZSU2V0dGluZ3MgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2
ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZl
RXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZS
UHJvcGVydGllcyAqVlJQcm9wZXJ0aWVzUmF3KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgaWYgKCBtX3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVF
cnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZS
UHJvcGVydGllcyAqKVZSRHJpdmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQ
cm9wZXJ0aWVzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3Byb3BlcnR5SGVscGVycyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVz
ICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENW
UkhpZGRlbkFyZWFIZWxwZXJzKCBtX3BWUlByb3BlcnRpZXMgKTsKKyAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7CisgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVy
dGllcygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGll
c1JhdygpOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpW
UkhpZGRlbkFyZWEoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlBy
b3BlcnRpZXNSYXcoKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVh
SGVscGVyczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUlNlcnZlckRyaXZl
ckhvc3QgKlZSU2VydmVyRHJpdmVySG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIGlmICggbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJv
ciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJI
b3N0ID0gKElWUlNlcnZlckRyaXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJp
Y0ludGVyZmFjZSggSVZSU2VydmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2
ZXJEcml2ZXJIb3N0OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSV2F0Y2hk
b2dIb3N0ICpWUldhdGNoZG9nSG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJXYXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJv
cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJX
YXRjaGRvZ0hvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZS
V2F0Y2hkb2dIb3N0X1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09
IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wVlJEcml2ZXJMb2cgPSAoSVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdl
bmVyaWNJbnRlcmZhY2UoIElWUkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJM
b2c7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9D
QUxMVFlQRSBWUkRyaXZlckhhbmRsZSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBWUkRyaXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7CisgICAg
ICAgICAgICAgIH0KKworICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgIElWUlNldHRpbmdz
ICAgICAgICAgICAgICAgICAgICAgKm1fcFZSU2V0dGluZ3M7CisgICAgICAgICAgICAgIElWUlBy
b3BlcnRpZXMgICAgICAgICAgICAgICptX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIENW
UlByb3BlcnR5SGVscGVycyAgICAgICBtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAg
Q1ZSSGlkZGVuQXJlYUhlbHBlcnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAgICAg
ICAgICAgSVZSU2VydmVyRHJpdmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0Owor
ICAgICAgICAgICAgICBJVlJXYXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9n
SG9zdDsKKyAgICAgICAgICAgICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2
ZXJMb2c7CisgICAgICAgfTsKKworICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAm
T3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCisgICAgICAgeworICAg
ICAgICAgICAgICBzdGF0aWMgdm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQg
KSAvIHNpemVvZiggdm9pZCAqICldOworICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJp
dmVyQ29udGV4dCAqKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAgICAg
IH0KKworICAgICAgIGlubGluZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygp
IHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNl
dHRpbmdzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQ
cm9wZXJ0aWVzUmF3KCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVy
Q29udGV4dCgpLlZSUHJvcGVydGllc1JhdygpOyB9CisgICAgICAgaW5saW5lIENWUlByb3BlcnR5
SGVscGVycyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJu
YWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9CisgICAgICAg
aW5saW5lIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRk
ZW5BcmVhKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRy
aXZlckxvZygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRl
eHQoKS5WUkRyaXZlckxvZygpOyB9CisgICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3Qg
KlZSX0NBTExUWVBFIFZSU2VydmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFs
X01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQorICAg
ICAgIGlubGluZSBJVlJXYXRjaGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0
Y2hkb2dIb3N0KCk7IH0KKyAgICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUg
VlJEcml2ZXJIYW5kbGUoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2
ZXJDb250ZXh0KCkuVlJEcml2ZXJIYW5kbGUoKTsgfQorICAgICAgIGlubGluZSB2b2lkIENPcGVu
VlJEcml2ZXJDb250ZXh0OjpDbGVhcigpCisgICAgICAgeworICAgICAgICAgICAgICBtX3BWUlNl
dHRpbmdzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgICAgbV9wVlJEcml2ZXJMb2cgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUldh
dGNoZG9nSG9zdCA9IG51bGxwdHI7CisgICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRF
cnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5pdFNlcnZlcigpCisgICAgICAgeworICAgICAg
ICAgICAgICBDbGVhcigpOworICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3Qo
KQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICAg
ICAgICAgfHwgIVZSUHJvcGVydGllcygpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2
ZXJMb2coKSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9J
bnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7
CisgICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29u
dGV4dDo6SW5pdFdhdGNoZG9nKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENsZWFyKCk7Cisg
ICAgICAgICAgICAgIGlmICggIVZSV2F0Y2hkb2dIb3N0KCkKKyAgICAgICAgICAgICAgICAgICAg
IHx8ICFWUlNldHRpbmdzKCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygp
ICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFj
ZU5vdEZvdW5kOworICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKKyAgICAg
ICB9CisKKyAgICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0
KCBJVlJEcml2ZXJDb250ZXh0ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAgICAgICBW
UkRyaXZlckNvbnRleHQoKSA9IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKKyAgICAg
ICB9CisKKyAgICAgICBpbmxpbmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRl
eHQoIElWUkRyaXZlckNvbnRleHQgKnBDb250ZXh0ICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IFZSRHJpdmVyQ29udGV4dCgpID0gcENvbnRleHQ7CisgICAgICAgICAgICAgIHJldHVybiBPcGVu
VlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7Cisg
ICAgICAgfQorCisgICAgICAgaW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOworICAgICAg
ICAgICAgICBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIo
KTsKKyAgICAgICB9CisKKyAgICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05U
RVhUKCBwQ29udGV4dCApIFwKKyAgICAgICAgICAgICAgICAgICAgIHsgXAorICAgICAgICAgICAg
ICAgICAgICAgdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNv
bnRleHQoIHBDb250ZXh0ICk7IFwKKyAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0g
dnI6OlZSSW5pdEVycm9yX05vbmUgKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGVFcnJvcjsgXAorICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgI2RlZmluZSBW
Ul9DTEVBTlVQX1NFUlZFUl9EUklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNs
ZWFudXBEcml2ZXJDb250ZXh0KCk7CisKKyAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0df
RFJJVkVSX0NPTlRFWFQoIHBDb250ZXh0ICkgXAorICAgICAgICAgICAgICAgICAgICAgeyBcCisg
ICAgICAgICAgICAgICAgICAgICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KCBwQ29udGV4dCApOyBcCisgICAgICAgICAgICAgICAgICAgICBp
ZiggZUVycm9yICE9IHZyOjpWUkluaXRFcnJvcl9Ob25lICkgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBlRXJyb3I7IFwKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICNkZWZpbmUgVlJfQ0xFQU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKKyAgICAg
ICAgICAgICAgdnI6OkNsZWFudXBEcml2ZXJDb250ZXh0KCk7Cit9CisvLyBFbmQKKworI2VuZGlm
IC8vIF9PUEVOVlJfRFJJVkVSX0FQSQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9vcGVudnIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9vcGVudnIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YmUzOTI3M2Q3YzM0ZDExMWMyMTRjNmE5MjU4NmU1OGQ1YWRhZGY3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL29wZW52ci54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0wLDAgKzEsNDE3IEBACisvLyAhJCpVVEY4KiQhCit7CisgICAgICAgYXJjaGl2ZVZl
cnNpb24gPSAxOworICAgICAgIGNsYXNzZXMgPSB7CisgICAgICAgfTsKKyAgICAgICBvYmplY3RW
ZXJzaW9uID0gNDY7CisgICAgICAgb2JqZWN0cyA9IHsKKworLyogQmVnaW4gUEJYQnVpbGRGaWxl
IHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU1MzE0MkUxRjZGREVCMDAwNzNCODk3IC8qIENv
cmVGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhFNTMxNDJEMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi87IH07CisgICAgICAgICAgICAgIDhFNTMxNDMyMUY2RkVDQUUwMDczQjg5
NyAvKiBBcHBLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEU1MzE0MzExRjZGRUNBRTAwNzNCODk3IC8qIEFwcEtpdC5mcmFtZXdv
cmsgKi87IH07CisgICAgICAgICAgICAgIDhFNTMxNDM1MUY3MkQ1ODQwMDczQjg5NyAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhFNTMxNDJGMUY2RkVCQzgwMDczQjg5NyAvKiBGb3VuZGF0aW9uLmZyYW1ld29y
ayAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyODkxRjZBRjZEMzAwNTdCODAzIC8qIGRpcnRv
b2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4RTc5NDI2QzFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmNwcCAqLzsg
fTsKKyAgICAgICAgICAgICAgOEU3OTQyOEExRjZBRjZEMzAwNTdCODAzIC8qIGVudnZhcnRvb2xz
X3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4RTc5NDI2RTFGNkFFOUFCMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNwcCAqLzsg
fTsKKyAgICAgICAgICAgICAgOEU3OTQyOEIxRjZBRjZEMzAwNTdCODAzIC8qIGhtZGVycm9yc19w
dWJsaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU3OTQyNzAxRjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICovOyB9Owor
ICAgICAgICAgICAgICA4RTc5NDI4QzFGNkFGNkQzMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1Ymxp
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5
NDI3MjFGNkFFOUFCMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjhEMUY2QUY2RDMwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJs
aWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3
OTQyNzQxRjZBRTlBQjAwNTdCODAzIC8qIHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHAgKi87IH07
CisgICAgICAgICAgICAgIDhFNzk0MjhFMUY2QUY2RDMwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJs
aWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3
OTQyNzYxRjZBRTlBQjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5jcHAgKi87IH07CisgICAg
ICAgICAgICAgIDhFNzk0MjhGMUY2QUY2RDMwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3
OTQyNzgxRjZBRTlBQjAwNTdCODAzIC8qIHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgKi87IH07
CisgICAgICAgICAgICAgIDhFNzk0MjkwMUY2QUY2RUUwMDU3QjgwMyAvKiBqc29uY3BwLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY4MUY2
QUU5QUIwMDU3QjgwMyAvKiBqc29uY3BwLmNwcCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQy
OTExRjZBRjZFRTAwNTdCODAzIC8qIG9wZW52cl9hcGlfcHVibGljLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY5MUY2QUU5QUIwMDU3Qjgw
MyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjky
MUY2QUY3MUQwMDU3QjgwMyAvKiBvcGVudnIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjdCMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisgICAgICAgICAg
ICAgIDhFNzk0MjkzMUY2QUY3MUQwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyN0UxRjZBRjA1RTAwNTdC
ODAzIC8qIG9wZW52cl9jYXBpLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGlj
LCApOyB9OyB9OworICAgICAgICAgICAgICA4RTc5NDI5NDFGNkFGNzFEMDA1N0I4MDMgLyogb3Bl
bnZyX2RyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEU3OTQyN0YxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisgICAgICAgICAgICAgIDhFNzk0
Mjk1MUY2QUY3OEQwMDU3QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5NDI2NDFGNkFFOUFCMDA1N0I4MDMgLyog
aXZyY2xpZW50Y29yZS5oICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5NjFGNkFGNzhEMDA1
N0I4MDMgLyoganNvbi1mb3J3YXJkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEU3OTQyNjYxRjZBRTlBQjAwNTdCODAzIC8qIGpzb24tZm9yd2FyZHMu
aCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTcxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjY3
MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLmggKi87IH07CisgICAgICAgICAgICAgIDhFNzk0Mjk4
MUY2QUY3OEQwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFNzk0MjZEMUY2QUU5QUIwMDU3QjgwMyAvKiBk
aXJ0b29sc19wdWJsaWMuaCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOTkxRjZBRjc4RDAw
NTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEU3OTQyNkYxRjZBRTlBQjAwNTdCODAzIC8qIGVudnZhcnRv
b2xzX3B1YmxpYy5oICovOyB9OworICAgICAgICAgICAgICA4RTc5NDI5QTFGNkFGNzhEMDA1N0I4
MDMgLyogaG1kZXJyb3JzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEU3OTQyNzExRjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJs
aWMuaCAqLzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOUIxRjZBRjc4RDAwNTdCODAzIC8qIHBh
dGh0b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhFNzk0MjczMUY2QUU5QUIwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggKi87
IH07CisgICAgICAgICAgICAgIDhFNzk0MjlDMUY2QUY3OEQwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0
b29sc19wdWJsaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhFNzk0Mjc1MUY2QUU5QUIwMDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCAq
LzsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyOUQxRjZBRjc4RDAwNTdCODAzIC8qIHN0cnRvb2xz
X3B1YmxpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEU3OTQyNzcxRjZBRTlBQjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oICovOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI5RTFGNkFGNzhEMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVi
bGljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTc5
NDI3OTFGNkFFOUFCMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggKi87IH07Cisv
KiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5j
ZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNTMxNDJEMUY2RkRFQjAwMDczQjg5NyAvKiBD
b3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvcmVGb3VuZGF0aW9u
LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRp
b24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKyAgICAgICAgICAgICAgOEU1
MzE0MkYxRjZGRUJDODAwNzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworICAg
ICAgICAgICAgICA4RTUzMTQzMTFGNkZFQ0FFMDA3M0I4OTcgLyogQXBwS2l0LmZyYW1ld29yayAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIu
ZnJhbWV3b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07Cisg
ICAgICAgICAgICAgIDhFNzk0MjYyMUY2QUU5QUIwMDU3QjgwMyAvKiBDTWFrZUxpc3RzLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBDTWFrZUxpc3RzLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAg
ICAgICAgOEU3OTQyNjMxRjZBRTlBQjAwNTdCODAzIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0
aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAg
IDhFNzk0MjY0MUY2QUU5QUIwMDU3QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGl2cmNsaWVudGNvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAg
ICAgICAgOEU3OTQyNjYxRjZBRTlBQjAwNTdCODAzIC8qIGpzb24tZm9yd2FyZHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gImpzb24tZm9yd2FyZHMuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Cisg
ICAgICAgICAgICAgIDhFNzk0MjY3MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IGpzb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAg
OEU3OTQyNjgxRjZBRTlBQjAwNTdCODAzIC8qIGpzb25jcHAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0ganNvbmNwcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAg
IDhFNzk0MjY5MUY2QUU5QUIwMDU3QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBvcGVudnJfYXBpX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjZBMUY2QUU5QUIwMDU3QjgwMyAvKiBSRUFETUUg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUkVBRE1FOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAgICAgICAgICA4
RTc5NDI2QzFGNkFFOUFCMDA1N0I4MDMgLyogZGlydG9vbHNfcHVibGljLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IGRpcnRvb2xzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisgICAgICAgICAgICAgIDhFNzk0MjZEMUY2QUU5QUIwMDU3QjgwMyAvKiBkaXJ0b29sc19wdWJs
aWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gZGlydG9vbHNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjZFMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2
YXJ0b29sc19wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZW52dmFydG9vbHNfcHVibGlj
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNkYx
RjZBRTlBQjAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBl
bnZ2YXJ0b29sc19wdWJsaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAg
ICAgICAgOEU3OTQyNzAxRjZBRTlBQjAwNTdCODAzIC8qIGhtZGVycm9yc19wdWJsaWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gaG1kZXJyb3JzX3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjcxMUY2QUU5QUIwMDU3QjgwMyAvKiBobWRl
cnJvcnNfcHVibGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGhtZGVycm9yc19wdWJsaWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNzIxRjZBRTlBQjAwNTdC
ODAzIC8qIHBhdGh0b29sc19wdWJsaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBwYXRodG9v
bHNfcHVibGljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAg
OEU3OTQyNzMxRjZBRTlBQjAwNTdCODAzIC8qIHBhdGh0b29sc19wdWJsaWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGF0aHRvb2xzX3B1YmxpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAg
ICAgICAgICAgICA4RTc5NDI3NDFGNkFFOUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVi
bGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHNoYXJlZGxpYnRvb2xzX3B1YmxpYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0Mjc1MUY2QUU5QUIw
MDU3QjgwMyAvKiBzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc2hhcmVk
bGlidG9vbHNfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAg
ICAgIDhFNzk0Mjc2MUY2QUU5QUIwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gc3RydG9vbHNfcHVibGljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNzcxRjZBRTlBQjAwNTdCODAzIC8qIHN0cnRvb2xz
X3B1YmxpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBzdHJ0b29sc19wdWJsaWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNzgxRjZBRTlBQjAwNTdCODAzIC8q
IHZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IHZycGF0aHJl
Z2lzdHJ5X3B1YmxpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgICAg
ICAgIDhFNzk0Mjc5MUY2QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gdnJwYXRocmVnaXN0cnlfcHVibGljLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgICAgICAgIDhFNzk0MjdCMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVu
dnIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gb3BlbnZyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisgICAgICAgICAgICAgIDhFNzk0MjdDMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpLmNz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IG9wZW52cl9hcGkuY3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAg
ICAgICAgIDhFNzk0MjdEMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpLmpzb24gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247IHBh
dGggPSBvcGVudnJfYXBpLmpzb247IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAg
ICAgICAgIDhFNzk0MjdFMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBvcGVudnJfY2FwaS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworICAgICAg
ICAgICAgICA4RTc5NDI3RjFGNkFGMDVFMDA1N0I4MDMgLyogb3BlbnZyX2RyaXZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBvcGVudnJfZHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Cisg
ICAgICAgICAgICAgIDhFNzk0Mjg0MUY2QUY2MkUwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGlib3BlbnZyLmE7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisK
Ky8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKyAgICAgICAgICAg
ICAgOEU3OTQyODExRjZBRjYyRTAwNTdCODAzIC8qIEZyYW1ld29ya3MgKi8gPSB7CisgICAgICAg
ICAgICAgICAgICAgICBpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKKyAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisgICAgICAgICAgICAgICAg
ICAgICBmaWxlcyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTUzMTQzMjFGNkZF
Q0FFMDA3M0I4OTcgLyogQXBwS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNTMxNDJFMUY2RkRFQjAwMDczQjg5NyAvKiBDb3JlRm91
bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTUzMTQzNTFGNzJENTg0MDA3M0I4OTcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAg
ICAgICAgICBydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKyAgICAgICAg
ICAgICAgfTsKKy8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8q
IEJlZ2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU1MzE0MkMxRjZGREVC
MDAwNzNCODk3IC8qIEZyYW1ld29ya3MgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2Eg
PSBQQlhHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNTMxNDMxMUY2RkVDQUUwMDczQjg5NyAvKiBBcHBLaXQuZnJh
bWV3b3JrICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNTMxNDJEMUY2RkRFQjAw
MDczQjg5NyAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU1MzE0MkYxRjZGRUJDODAwNzNCODk3IC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrICovLAorICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5h
bWUgPSBGcmFtZXdvcmtzOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNUExRjZBRTk2NjAw
NTdCODAzID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7CisgICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbiA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
RTUzMTQyQzFGNkZERUIwMDA3M0I4OTcgLyogRnJhbWV3b3JrcyAqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4RTc5NDI3QTFGNkFGMDVFMDA1N0I4MDMgLyogaGVhZGVycyAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4NTFGNkFGNjJFMDA1N0I4MDMgLyogUHJv
ZHVjdHMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjExRjZBRTlBQjAw
NTdCODAzIC8qIHNyYyAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOworICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICA4RTc5NDI2MTFGNkFFOUFCMDA1N0I4MDMgLyogc3JjICovID0geworICAgICAgICAg
ICAgICAgICAgICAgaXNhID0gUEJYR3JvdXA7CisgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl
biA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2NTFGNkFFOUFCMDA1N0I4
MDMgLyoganNvbiAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2QTFGNkFF
OUFCMDA1N0I4MDMgLyogUkVBRE1FICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhF
Nzk0MjZCMUY2QUU5QUIwMDU3QjgwMyAvKiB2cmNvbW1vbiAqLywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4RTc5NDI2MjFGNkFFOUFCMDA1N0I4MDMgLyogQ01ha2VMaXN0cy50eHQgKi8s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjMxRjZBRTlBQjAwNTdCODAzIC8q
IEluZm8ucGxpc3QgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjQxRjZB
RTlBQjAwNTdCODAzIC8qIGl2cmNsaWVudGNvcmUuaCAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4RTc5NDI2ODFGNkFFOUFCMDA1N0I4MDMgLyoganNvbmNwcC5jcHAgKi8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjkxRjZBRTlBQjAwNTdCODAzIC8qIG9wZW52
cl9hcGlfcHVibGljLmNwcCAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAg
ICAgICAgICAgICBwYXRoID0gc3JjOworICAgICAgICAgICAgICAgICAgICAgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyNjUxRjZB
RTlBQjAwNTdCODAzIC8qIGpzb24gKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQ
QlhHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDhFNzk0MjY2MUY2QUU5QUIwMDU3QjgwMyAvKiBqc29uLWZvcndhcmRz
LmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNjcxRjZBRTlBQjAwNTdC
ODAzIC8qIGpzb24uaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAg
ICAgICAgICBwYXRoID0ganNvbjsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0MjZCMUY2QUU5
QUIwMDU3QjgwMyAvKiB2cmNvbW1vbiAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9
IFBCWEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyNkMxRjZBRTlBQjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1
YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNkQxRjZBRTlB
QjAwNTdCODAzIC8qIGRpcnRvb2xzX3B1YmxpYy5oICovLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0MjZFMUY2QUU5QUIwMDU3QjgwMyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuY3Bw
ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjZGMUY2QUU5QUIwMDU3Qjgw
MyAvKiBlbnZ2YXJ0b29sc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI3MDFGNkFFOUFCMDA1N0I4MDMgLyogaG1kZXJyb3JzX3B1YmxpYy5jcHAgKi8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzExRjZBRTlBQjAwNTdCODAzIC8qIGht
ZGVycm9yc19wdWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3
MjFGNkFFOUFCMDA1N0I4MDMgLyogcGF0aHRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyNzMxRjZBRTlBQjAwNTdCODAzIC8qIHBhdGh0b29sc19w
dWJsaWMuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI3NDFGNkFFOUFC
MDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcCAqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4RTc5NDI3NTFGNkFFOUFCMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNf
cHVibGljLmggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyNzYxRjZBRTlB
QjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5jcHAgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyNzcxRjZBRTlBQjAwNTdCODAzIC8qIHN0cnRvb2xzX3B1YmxpYy5oICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0Mjc4MUY2QUU5QUIwMDU3QjgwMyAv
KiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0Mjc5MUY2QUU5QUIwMDU3QjgwMyAvKiB2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCAq
LywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBwYXRoID0g
dnJjb21tb247CisgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICA4RTc5NDI3QTFGNkFGMDVFMDA1N0I4MDMg
LyogaGVhZGVycyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdyb3VwOwor
ICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOEU3OTQyN0IxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52ci5oICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0MjdDMUY2QUYwNUUwMDU3QjgwMyAvKiBvcGVudnJfYXBp
LmNzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjdEMUY2QUYwNUUwMDU3
QjgwMyAvKiBvcGVudnJfYXBpLmpzb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OEU3OTQyN0UxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9jYXBpLmggKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOEU3OTQyN0YxRjZBRjA1RTAwNTdCODAzIC8qIG9wZW52cl9kcml2
ZXIuaCAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBw
YXRoID0gaGVhZGVyczsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIDhFNzk0Mjg1MUY2QUY2MkUwMDU3
QjgwMyAvKiBQcm9kdWN0cyAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFBCWEdy
b3VwOworICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSAoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU3OTQyODQxRjZBRjYyRTAwNTdCODAzIC8qIGxpYm9wZW52ci5hICovLAor
ICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBQcm9k
dWN0czsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisgICAg
ICAgICAgICAgIH07CisvKiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhI
ZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgyMUY2QUY2
MkUwMDU3QjgwMyAvKiBIZWFkZXJzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNhID0g
UEJYSGVhZGVyc0J1aWxkUGhhc2U7CisgICAgICAgICAgICAgICAgICAgICBidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgPSAoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOTgxRjZBRjc4RDAwNTdCODAzIC8qIGRpcnRvb2xz
X3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3
OTQyOTkxRjZBRjc4RDAwNTdCODAzIC8qIGVudnZhcnRvb2xzX3B1YmxpYy5oIGluIEhlYWRlcnMg
Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOUExRjZBRjc4RDAwNTdCODAz
IC8qIGhtZGVycm9yc19wdWJsaWMuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDhFNzk0Mjk1MUY2QUY3OEQwMDU3QjgwMyAvKiBpdnJjbGllbnRjb3JlLmggaW4g
SGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5NjFGNkFGNzhE
MDA1N0I4MDMgLyoganNvbi1mb3J3YXJkcy5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOEU3OTQyOTcxRjZBRjc4RDAwNTdCODAzIC8qIGpzb24uaCBpbiBIZWFk
ZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjkyMUY2QUY3MUQwMDU3
QjgwMyAvKiBvcGVudnIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDhFNzk0MjkzMUY2QUY3MUQwMDU3QjgwMyAvKiBvcGVudnJfY2FwaS5oIGluIEhlYWRlcnMg
Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOTQxRjZBRjcxRDAwNTdCODAz
IC8qIG9wZW52cl9kcml2ZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDhFNzk0MjlCMUY2QUY3OEQwMDU3QjgwMyAvKiBwYXRodG9vbHNfcHVibGljLmggaW4g
SGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5QzFGNkFGNzhE
MDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmggaW4gSGVhZGVycyAqLywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI5RDFGNkFGNzhEMDA1N0I4MDMgLyogc3RydG9v
bHNfcHVibGljLmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
RTc5NDI5RTFGNkFGNzhEMDA1N0I4MDMgLyogdnJwYXRocmVnaXN0cnlfcHVibGljLmggaW4gSGVh
ZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBy
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKyAgICAgICAgICAgICAgfTsK
Ky8qIEVuZCBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWE5h
dGl2ZVRhcmdldCBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgzMUY2QUY2MkUwMDU3
QjgwMyAvKiBvcGVudnIgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhOYXRp
dmVUYXJnZXQ7CisgICAgICAgICAgICAgICAgICAgICBidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
OEU3OTQyODYxRjZBRjYyRTAwNTdCODAzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJvcGVudnIiICovOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRQ
aGFzZXMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODAxRjZBRjYyRTAw
NTdCODAzIC8qIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQy
ODExRjZBRjYyRTAwNTdCODAzIC8qIEZyYW1ld29ya3MgKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOEU3OTQyODIxRjZBRjYyRTAwNTdCODAzIC8qIEhlYWRlcnMgKi8sCisgICAgICAg
ICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgYnVpbGRSdWxlcyA9ICgKKyAg
ICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMg
PSAoCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgbmFtZSA9
IG9wZW52cjsKKyAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3ROYW1lID0gb3BlbnZyOworICAg
ICAgICAgICAgICAgICAgICAgcHJvZHVjdFJlZmVyZW5jZSA9IDhFNzk0Mjg0MUY2QUY2MkUwMDU3
QjgwMyAvKiBsaWJvcGVudnIuYSAqLzsKKyAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RUeXBl
ID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUubGlicmFyeS5zdGF0aWMiOworICAgICAgICAgICAg
ICB9OworLyogRW5kIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWFBy
b2plY3Qgc2VjdGlvbiAqLworICAgICAgICAgICAgICA4RTc5NDI1QjFGNkFFOTY2MDA1N0I4MDMg
LyogUHJvamVjdCBvYmplY3QgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBQQlhQ
cm9qZWN0OworICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMYXN0VXBncmFkZUNoZWNrID0gMDgzMDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUYXJnZXRBdHRyaWJ1dGVzID0geworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4RTc5NDI4MzFGNkFGNjJFMDA1N0I4MDMgPSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVkT25Ub29sc1ZlcnNpb24gPSA4LjMu
MzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3Zpc2lvbmlu
Z1N0eWxlID0gQXV0b21hdGljOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDhFNzk0MjVF
MUY2QUU5NjYwMDU3QjgwMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2pl
Y3QgIm9wZW52ciIgKi87CisgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmlsaXR5VmVyc2lv
biA9ICJYY29kZSAzLjIiOworICAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnRSZWdpb24g
PSBFbmdsaXNoOworICAgICAgICAgICAgICAgICAgICAgaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9
IDA7CisgICAgICAgICAgICAgICAgICAgICBrbm93blJlZ2lvbnMgPSAoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW4sCisgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAg
ICAgICAgICAgbWFpbkdyb3VwID0gOEU3OTQyNUExRjZBRTk2NjAwNTdCODAzOworICAgICAgICAg
ICAgICAgICAgICAgcHJvZHVjdFJlZkdyb3VwID0gOEU3OTQyODUxRjZBRjYyRTAwNTdCODAzIC8q
IFByb2R1Y3RzICovOworICAgICAgICAgICAgICAgICAgICAgcHJvamVjdERpclBhdGggPSAiIjsK
KyAgICAgICAgICAgICAgICAgICAgIHByb2plY3RSb290ID0gIiI7CisgICAgICAgICAgICAgICAg
ICAgICB0YXJnZXRzID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjgzMUY2
QUY2MkUwMDU3QjgwMyAvKiBvcGVudnIgKi8sCisgICAgICAgICAgICAgICAgICAgICApOworICAg
ICAgICAgICAgICB9OworLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQ
QlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCisgICAgICAgICAgICAgIDhFNzk0MjgwMUY2
QUY2MkUwMDU3QjgwMyAvKiBTb3VyY2VzICovID0geworICAgICAgICAgICAgICAgICAgICAgaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisgICAgICAgICAgICAgICAgICAgICBidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgPSAoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyODkxRjZBRjZEMzAwNTdCODAzIC8qIGRpcnRv
b2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI4QTFGNkFGNkQzMDA1N0I4MDMgLyogZW52dmFydG9vbHNfcHVibGljLmNwcCBpbiBT
b3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjhCMUY2QUY2RDMw
MDU3QjgwMyAvKiBobWRlcnJvcnNfcHVibGljLmNwcCBpbiBTb3VyY2VzICovLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDhFNzk0MjkwMUY2QUY2RUUwMDU3QjgwMyAvKiBqc29uY3BwLmNw
cCBpbiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjkxMUY2
QUY2RUUwMDU3QjgwMyAvKiBvcGVudnJfYXBpX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI4QzFGNkFGNkQzMDA1N0I4MDMgLyogcGF0
aHRvb2xzX3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4RTc5NDI4RDFGNkFGNkQzMDA1N0I4MDMgLyogc2hhcmVkbGlidG9vbHNfcHVibGljLmNw
cCBpbiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjhFMUY2
QUY2RDMwMDU3QjgwMyAvKiBzdHJ0b29sc19wdWJsaWMuY3BwIGluIFNvdXJjZXMgKi8sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOEU3OTQyOEYxRjZBRjZEMzAwNTdCODAzIC8qIHZycGF0
aHJlZ2lzdHJ5X3B1YmxpYy5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICk7CisgICAgICAgICAgICAgICAgICAgICBydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKKyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCisKKy8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKyAg
ICAgICAgICAgICAgOEU3OTQyNUYxRjZBRTk2NjAwNTdCODAzIC8qIERlYnVnICovID0geworICAg
ICAgICAgICAgICAgICAgICAgaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisgICAgICAgICAg
ICAgICAgICAgICBidWlsZFNldHRpbmdzID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgICAgICAgIG5hbWUgPSBEZWJ1ZzsKKyAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICAgOEU3OTQyNjAxRjZBRTk2NjAwNTdCODAzIC8qIFJlbGVhc2UgKi8gPSB7CisgICAg
ICAgICAgICAgICAgICAgICBpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKyAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkU2V0dGluZ3MgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SEVBREVSX1NFQVJDSF9QQVRIUyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgICAgICAgICAgbmFtZSA9IFJlbGVhc2U7CisgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICAgIDhFNzk0Mjg3MUY2QUY2MkUwMDU3QjgwMyAvKiBEZWJ1ZyAqLyA9IHsKKyAgICAg
ICAgICAgICAgICAgICAgIGlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworICAgICAgICAgICAg
ICAgICAgICAgYnVpbGRTZXR0aW5ncyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
TFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENMQU5HX0FOQUxZWkVSX05VTUJFUl9PQkpFQ1RfQ09OVkVSU0lPTiA9IFlFU19BR0dSRVNT
SVZFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0NYWF9MQU5HVUFHRV9TVEFO
REFSRCA9ICJnbnUrKzB4IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19DWFhf
TElCUkFSWSA9ICJsaWJjKysiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0VO
QUJMRV9NT0RVTEVTID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX0VO
QUJMRV9PQkpDX0FSQyA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dB
Uk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENM
QU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDTEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0RPQ1VNRU5UQVRJT05fQ09NTUVO
VFMgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9FTVBUWV9C
T0RZID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fRU5VTV9D
T05WRVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5f
SU5GSU5JVEVfUkVDVVJTSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENM
QU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ0xBTkdfV0FSTl9PQkpDX1JPT1RfQ0xBU1MgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9TVVNQSUNJT1VTX01PVkUgPSBZRVM7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVTOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0Rf
TUFUQ0ggPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09ERV9TSUdOX0lERU5U
SVRZID0gIi0iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUFlfUEhBU0VfU1RSSVAg
PSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUJVR19JTkZPUk1BVElPTl9GT1JN
QVQgPSBkd2FyZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkFCTEVfU1RSSUNUX09C
SkNfTVNHU0VORCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkFCTEVfVEVT
VEFCSUxJVFkgPSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhFQ1VUQUJMRV9Q
UkVGSVggPSBsaWI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX0NfTEFOR1VBR0Vf
U1RBTkRBUkQgPSBnbnU5OTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfRFlOQU1J
Q19OT19QSUMgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfTk9fQ09NTU9O
X0JMT0NLUyA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfT1BUSU1JWkFU
SU9OX0xFVkVMID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfUFJFUFJPQ0VT
U09SX0RFRklOSVRJT05TID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
UE9TSVg9MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPU1g9MSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWUl9BUElfUFVCTElDPTEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUExBVEZPUk1fTkFNRT1vc3giLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBZRVM7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlF
UzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FV
VE9TID0gWUVTX0FHR1JFU1NJVkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dB
Uk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
Q19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMjsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNVExfRU5BQkxFX0RFQlVHX0lORk8gPSBZRVM7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiQoT1RIRVJfQ0ZMQUdTKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItZmV4Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTREtST09UID0gbWFjb3N4OworICAgICAg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBEZWJ1ZzsKKyAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgOEU3OTQyODgxRjZBRjYyRTAwNTdCODAzIC8q
IFJlbGVhc2UgKi8gPSB7CisgICAgICAgICAgICAgICAgICAgICBpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgIGJ1aWxkU2V0dGluZ3MgPSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfQU5BTFlaRVJfTk9OTlVMTCA9IFlFUzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19BTkFMWVpFUl9OVU1CRVJfT0JKRUNUX0NP
TlZFUlNJT04gPSBZRVNfQUdHUkVTU0lWRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
TEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBOTzsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0Ff
VVNBR0UgPSBZRVNfRVJST1I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xBTkdfV0FS
Tl9ET0NVTUVOVEFUSU9OX0NPTU1FTlRTID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDTEFOR19XQVJOX0lORklOSVRFX1JFQ1VSU0lPTiA9IFlFUzsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVT
X0VSUk9SOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fU1VTUElDSU9V
U19NT1ZFID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMQU5HX1dBUk5fVU5S
RUFDSEFCTEVfQ09ERSA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFOR19X
QVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENPREVfU0lHTl9JREVOVElUWSA9ICItIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDT1BZX1BIQVNFX1NUUklQID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
REVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gImR3YXJmLXdpdGgtZHN5bSI7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRU5BQkxFX05TX0FTU0VSVElPTlMgPSBOTzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFTkFCTEVfU1RSSUNUX09CSkNfTVNHU0VORCA9IFlFUzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFWEVDVVRBQkxFX1BSRUZJWCA9IGxpYjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19OT19DT01NT05fQkxPQ0tTID0gWUVTOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQT1NJWD0xIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9TWD0xIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlZSX0FQSV9QVUJMSUM9MSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJQTEFURk9STV9OQU1FPW9zeCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl82NF9UT18zMl9C
SVRfQ09OVkVSU0lPTiA9IFlFUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FS
Tl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lW
RTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04g
PSBZRVM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NDX1dBUk5fVU5VU0VEX1ZBUklB
QkxFID0gWUVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVCA9IDEwLjEyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UTF9FTkFCTEVf
REVCVUdfSU5GTyA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9USEVSX0NQTFVT
UExVU0ZMQUdTID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJChPVEhF
Ul9DRkxBR1MpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1mZXhjZXB0
aW9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNES1JPT1QgPSBtYWNvc3g7CisgICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFJlbGVhc2U7CisgICAgICAgICAgICAgIH07
CisvKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0Nv
bmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KKyAgICAgICAgICAgICAgOEU3OTQyNUUxRjZBRTk2
NjAwNTdCODAzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAib3Bl
bnZyIiAqLyA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlzYSA9IFhDQ29uZmlndXJhdGlvbkxp
c3Q7CisgICAgICAgICAgICAgICAgICAgICBidWlsZENvbmZpZ3VyYXRpb25zID0gKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDhFNzk0MjVGMUY2QUU5NjYwMDU3QjgwMyAvKiBEZWJ1ZyAq
LywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4RTc5NDI2MDFGNkFFOTY2MDA1N0I4MDMg
LyogUmVsZWFzZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICA4RTc5NDI4NjFGNkFGNjJFMDA1N0I4MDMgLyogQnVpbGQgY29uZmln
dXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIm9wZW52ciIgKi8gPSB7CisgICAgICAg
ICAgICAgICAgICAgICBpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworICAgICAgICAgICAgICAg
ICAgICAgYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4RTc5NDI4NzFGNkFGNjJFMDA1N0I4MDMgLyogRGVidWcgKi8sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOEU3OTQyODgxRjZBRjYyRTAwNTdCODAzIC8qIFJlbGVhc2UgKi8sCisgICAg
ICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbmZpZ3Vy
YXRpb25Jc1Zpc2libGUgPSAwOworICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbmZpZ3Vy
YXRpb25OYW1lID0gUmVsZWFzZTsKKyAgICAgICAgICAgICAgfTsKKy8qIEVuZCBYQ0NvbmZpZ3Vy
YXRpb25MaXN0IHNlY3Rpb24gKi8KKyAgICAgICB9OworICAgICAgIHJvb3RPYmplY3QgPSA4RTc5
NDI1QjFGNkFFOTY2MDA1N0I4MDMgLyogUHJvamVjdCBvYmplY3QgKi87Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRjaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9wYXRjaGVzL2NtYWtlLWJ1aWxkLnBhdGNoCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU4OTYzYzIwZWE3MzBlOWY2OGI3OWUzYjlkNmZhYTkzODM0ZDU5NWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvcGF0Y2hlcy9jbWFrZS1idWlsZC5wYXRj
aApAQCAtMCwwICsxLDk0IEBACitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxp
c3RzLnR4dAoraW5kZXggOTRkZTNjZS4uNmRlY2VkZCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMu
dHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTEsMTQgKzEsOCBAQAorICMgU2V0IHRoZSBt
aW5pbXVtIHJlcXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KKyBjbWFr
ZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44KQorIAorLSMgU2V0IHByb2plY3QgbmFtZS4K
Ky1wcm9qZWN0KE9wZW5WUlNESykKKy0KKyAjIFNldHVwIHNvbWUgb3B0aW9ucy4KKyBvcHRpb24o
QlVJTERfU0hBUkVEICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgc2hhcmVkIGxpYnJhcnkiIE9GRikK
Ky1vcHRpb24oQlVJTERfRlJBTUVXT1JLICJCdWlsZHMgdGhlIGxpYnJhcnkgYXMgYW4gYXBwbGUg
RnJhbWV3b3JrIiBPRkYpCistb3B0aW9uKEJVSUxEX1VOSVZFUlNBTCAiQnVpbGRzIHRoZSBzaGFy
ZWQgb3IgZnJhbWV3b3JrIGFzIGEgdW5pdmVyc2FsIChmYXQsIDMyLSAmIDY0LWJpdCkgYmluYXJ5
IiBPTikKKy1vcHRpb24oQlVJTERfT1NYX0kzODYgIkJ1aWxkcyB0aGUgc2hhcmVkIG9yIGZyYW1l
d29yayBhcyBhIDMyLWJpdCBiaW5hcnksIGV2ZW4gb24gYSA2NC1iaXQgcGxhdGZvcm0iIE9GRikK
KyBvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9O
KQorIG9wdGlvbihVU0VfQ1VTVE9NX0xJQkNYWCAiVXNlcyBhIGN1c3RvbSBsaWJjKysiIE9GRikK
KyAKK0BAIC0zNywyMSArMzEsOSBAQCBlbHNlaWYoQVBQTEUpCisgICBpZihDTUFLRV9TWVNURU1f
TkFNRSBNQVRDSEVTICIuKkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIu
Kk1hY09TLioiKQorICAgICBzZXQoUExBVEZPUk1fTkFNRSAib3N4IikKKyAgICAgYWRkX2RlZmlu
aXRpb25zKC1ET1NYIC1EUE9TSVgpCistICAgIGlmKEJVSUxEX1VOSVZFUlNBTCkKKy0gICAgICBz
ZXQoQ01BS0VfT1NYX0FSQ0hJVEVDVFVSRVMgImkzODY7eDg2XzY0IikKKy0gICAgZW5kaWYoKQor
LSAgICBpZihCVUlMRF9PU1hfSTM4NikKKy0gICAgICBzZXQoUFJPQ0VTU09SX0FSQ0ggIjMyIikK
Ky0gICAgICBzZXQoQ01BS0VfT1NYX0FSQ0hJVEVDVFVSRVMgImkzODYiKQorLSAgICBlbmRpZigp
CisgICBlbmRpZigpCisgZW5kaWYoKQorIAorLSMgU2V0IG91dHB1dCBmb2xkZXIgZm9yIHN0YXRp
YyBhbmQgc2hhcmVkIGxpYnJhcmllcworLXNldChDTUFLRV9MSUJSQVJZX09VVFBVVF9ESVJFQ1RP
UlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FS
Q0h9KQorLXNldChDTUFLRV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9iaW4vJHtQTEFURk9STV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQorLXNldChDTUFLRV9S
VU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9TT1VSQ0VfRElSfS9iaW4vJHtQTEFURk9S
TV9OQU1FfSR7UFJPQ0VTU09SX0FSQ0h9KQorLQorICMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4K
KyBpZihDTUFLRV9DT01QSUxFUl9JU19HTlVDQyBPUiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENI
RVMgIkNsYW5nIikKKyAgICAgICAgIyBFbmFibGUgYysrMTEgYW5kIGhpZGUgc3ltYm9scyB3aGlj
aCBzaG91bGRuJ3QgYmUgdmlzaWJsZQorZGlmZiAtLWdpdCBhL3NyYy9DTWFrZUxpc3RzLnR4dCBi
L3NyYy9DTWFrZUxpc3RzLnR4dAoraW5kZXggNTg5NTRkNi4uOGI1MzdhZiAxMDA2NDQKKy0tLSBh
L3NyYy9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL0NNYWtlTGlzdHMudHh0CitAQCAtMyw2ICsz
LDkgQEAgcHJvamVjdChvcGVudnJfYXBpKQorIAorIHNldCggTElCTkFNRSAib3BlbnZyX2FwaSIg
KQorIAorK3NldChFWENFUFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCisrYWRkX2RlZmluaXRp
b25zKCR7RVhDRVBUSU9OX0ZMQUdTfSkKKysKKyAjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3Bl
Y2lmaWMgZmlsZXMuCisgaWYoQVBQTEUpCisgICBzZXQoQ01BS0VfTUFDT1NYX1JQQVRIIDEpCitA
QCAtMjIsNyArMjUsNyBAQCBlbHNlaWYoV0lOMzIpCisgZW5kaWYoKQorIAorICMgQWRkIGluY2x1
ZGUgZm9sZGVycy4KKy1pbmNsdWRlX2RpcmVjdG9yaWVzKCR7Q01BS0VfU09VUkNFX0RJUn0vc3Jj
ICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycyAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy92cmNv
bW1vbikKKytpbmNsdWRlX2RpcmVjdG9yaWVzKCR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMg
JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4u
L3NyYy92cmNvbW1vbikKKyAKKyBpZihVU0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICAgbGlua19k
aXJlY3RvcmllcygKK0BAIC02NSwyMiArNjgsMjIgQEAgZWxzZWlmKEJVSUxEX0ZSQU1FV09SSykK
KyAgICAgICAgc2V0KCBMSUJOQU1FICJPcGVuVlIiICkKKyAgICAgICAgYWRkX2xpYnJhcnkoICR7
TElCTkFNRX0gCisgICAgICAgICAgICAgU0hBUkVEICR7U09VUkNFX0ZJTEVTfQorLSAgICAgICAg
ICAgICR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnIuaAorLSAgICAgICAgICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmNzCistICAgICAgICAgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorLSAgICAgICAgICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oCistICAgICAgICAgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9kcml2ZXIuaAorKyAgICAgICAgICAgICR7
UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52ci5oCisrICAgICAgICAgICAgJHtQ
Uk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jcworKyAgICAgICAgICAg
ICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbgorKyAgICAg
ICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmgKKysg
ICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfZHJpdmVy
LmgKKyAgICAgICAgKQorICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoT3BlblZSIFBST1BF
UlRJRVMKKyAgICAgICAgICAgICAgIEZSQU1FV09SSyBUUlVFCisgICAgICAgICAgICAgICBGUkFN
RVdPUktfVkVSU0lPTiBBCisgICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lERU5USUZJ
RVIgY29tLnZhbHZlc29mdHdhcmUuT3BlblZSLmZyYW1ld29yaworLSAgICAgICAgICAgICAgTUFD
T1NYX0ZSQU1FV09SS19JTkZPX1BMSVNUICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL0luZm8ucGxp
c3QKKysgICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdPUktfSU5GT19QTElTVCAke1BST0pFQ1Rf
U09VUkNFX0RJUn0vLi4vc3JjL0luZm8ucGxpc3QKKyAgICAgICAgICAgICAgICMgImN1cnJlbnQg
dmVyc2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQorICAgICAg
ICAgICAgICAgVkVSU0lPTiAxLjAuNgorICAgICAgICAgICAgICAgIyAiY29tcGF0aWJpbGl0eSB2
ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1PIGJpbmFyeSBmaWxlCisgICAgICAg
ICAgICAgICBTT1ZFUlNJT04gMS4wLjAKKy0gICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7
Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnIuaDske0NNQUtFX1NPVVJDRV9ESVJ9L2hl
YWRlcnMvb3BlbnZyX2FwaS5jczske0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2Fw
aS5qc29uOyR7Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7Q01BS0Vf
U09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfZHJpdmVyLmgiCisrICAgICAgICAgICAgICBQVUJM
SUNfSEVBREVSICIke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnIuaDske1BS
T0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmNzOyR7UFJPSkVDVF9TT1VS
Q0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9hcGkuanNvbjske1BST0pFQ1RfU09VUkNFX0RJUn0v
Li4vaGVhZGVycy9vcGVudnJfY2FwaS5oOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJz
L29wZW52cl9kcml2ZXIuaCIKKyAgICAgICAgICAgICAgIExJTktFUl9MQU5HVUFHRSBDWFgKKyAg
ICAgICAgKQorIGVsc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvQ01ha2VMaXN0
cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDUwZTY4OThmOWUzYmZhZDM2ZDc4ZTkzZjg2YzAzNTlhMDQ2MDNl
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvQ01ha2VM
aXN0cy50eHQKQEAgLTAsMCArMSw5OSBAQAorIyBQcm9qZWN0IG5hbWUuCitwcm9qZWN0KG9wZW52
cl9hcGkpCisKK3NldCggTElCTkFNRSAib3BlbnZyX2FwaSIgKQorCitzZXQoRVhDRVBUSU9OX0ZM
QUdTICItZmV4Y2VwdGlvbnMiKQorYWRkX2RlZmluaXRpb25zKCR7RVhDRVBUSU9OX0ZMQUdTfSkK
KworIyBTZXQgc29tZSBwcm9wZXJpZXMgZm9yIHNwZWNpZmljIGZpbGVzLgoraWYoQVBQTEUpCisg
IHNldChDTUFLRV9NQUNPU1hfUlBBVEggMSkKKyAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hF
UyAiRGFyd2luIikKKyAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXModnJjb21tb24vcGF0
aHRvb2xzX3B1YmxpYy5jcHAgdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCBQUk9Q
RVJUSUVTIENPTVBJTEVfRkxBR1MgIi14IG9iamVjdGl2ZS1jKysiKQorICBlbmRpZigpCisgIGlm
KEJVSUxEX1NIQVJFRCBPUiBCVUlMRF9GUkFNRVdPUkspCisgICAgZmluZF9saWJyYXJ5KEZPVU5E
QVRJT05fRlJBTUVXT1JLIEZvdW5kYXRpb24pCisgICAgbWFya19hc19hZHZhbmNlZChGT1VOREFU
SU9OX0ZSQU1FV09SSykKKyAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9ICR7Rk9VTkRB
VElPTl9GUkFNRVdPUkt9KQorICBlbmRpZihCVUlMRF9TSEFSRUQgT1IgQlVJTERfRlJBTUVXT1JL
KQorZWxzZWlmKFdJTjMyKQorICBpZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDgpCisgICAg
YWRkX2RlZmluaXRpb25zKCAtRFdJTjY0ICkKKyAgICBzZXQoIExJQk5BTUUgIm9wZW52cl9hcGk2
NCIgKQorICBlbmRpZigpCitlbmRpZigpCisKKyMgQWRkIGluY2x1ZGUgZm9sZGVycy4KK2luY2x1
ZGVfZGlyZWN0b3JpZXMoJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYyAke1BST0pFQ1RfU09V
UkNFX0RJUn0vLi4vaGVhZGVycyAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjL3ZyY29tbW9u
KQorCitpZihVU0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICBsaW5rX2RpcmVjdG9yaWVzKAorICAg
ICAgICAgICAgICAke0xJQkNYWF9MSUJfRElSfQorICAgICAgICkKK2VuZGlmKCkKKworIyBTZXQg
dGhlIHNvdXJjZSBncm91cCBhbmQgZmlsZXMuCitzZXQoQ09SRV9GSUxFUworICAgICAgIG9wZW52
cl9hcGlfcHVibGljLmNwcAorICAgICAgIGpzb25jcHAuY3BwCispCitzZXQoVlJDT01NT05fRklM
RVMKKyAgICAgICB2cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCisgICAgICAgdnJjb21tb24v
ZW52dmFydG9vbHNfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMu
Y3BwCisgICAgICAgdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcAorICAgICAgIHZy
Y29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vdnJwYXRocmVnaXN0
cnlfcHVibGljLmNwcAorICAgICAgIHZyY29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAKKykKKwor
c2V0KFNPVVJDRV9GSUxFUworICAgICAgICR7Q09SRV9GSUxFU30KKyAgICAgICAke1ZSQ09NTU9O
X0ZJTEVTfQorKQorCitzb3VyY2VfZ3JvdXAoIlNyYyIgRklMRVMKKyAgICAgICAke0NPUkVfRklM
RVN9CispCisKK3NvdXJjZV9ncm91cCgiVlJDb21tb24iIEZJTEVTCisgICAgICAgJHtWUkNPTU1P
Tl9GSUxFU30KKykKKworIyBCdWlsZCB0aGUgbGlicmFyeS4KK2lmKEJVSUxEX1NIQVJFRCkKKyAg
ICAgICBhZGRfbGlicmFyeSgke0xJQk5BTUV9IFNIQVJFRCAke1NPVVJDRV9GSUxFU30pCitlbHNl
aWYoQlVJTERfRlJBTUVXT1JLKQorICAgICAgIHNldCggTElCTkFNRSAiT3BlblZSIiApCisgICAg
ICAgYWRkX2xpYnJhcnkoICR7TElCTkFNRX0gCisgICAgICAgICAgICBTSEFSRUQgJHtTT1VSQ0Vf
RklMRVN9CisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVu
dnIuaAorICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZy
X2FwaS5jcworICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3Bl
bnZyX2FwaS5qc29uCisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVy
cy9vcGVudnJfY2FwaS5oCisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVh
ZGVycy9vcGVudnJfZHJpdmVyLmgKKyAgICAgICApCisgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0
aWVzKE9wZW5WUiBQUk9QRVJUSUVTCisgICAgICAgICAgICAgIEZSQU1FV09SSyBUUlVFCisgICAg
ICAgICAgICAgIEZSQU1FV09SS19WRVJTSU9OIEEKKyAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1F
V09SS19JREVOVElGSUVSIGNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcmsKKyAgICAg
ICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19JTkZPX1BMSVNUICR7UFJPSkVDVF9TT1VSQ0VfRElS
fS8uLi9zcmMvSW5mby5wbGlzdAorICAgICAgICAgICAgICAjICJjdXJyZW50IHZlcnNpb24iIGlu
IHNlbWFudGljIGZvcm1hdCBpbiBNYWNoLU8gYmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgVkVS
U0lPTiAxLjAuNgorICAgICAgICAgICAgICAjICJjb21wYXRpYmlsaXR5IHZlcnNpb24iIGluIHNl
bWFudGljIGZvcm1hdCBpbiBNYWNoLU8gYmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgU09WRVJT
SU9OIDEuMC4wCisgICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzL29wZW52ci5oOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJz
L29wZW52cl9hcGkuY3M7JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2Fw
aS5qc29uOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmg7JHtQ
Uk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIgorICAgICAgICAg
ICAgICBMSU5LRVJfTEFOR1VBR0UgQ1hYCisgICAgICAgKQorZWxzZSgpCisgICAgICAgYWRkX2xp
YnJhcnkoJHtMSUJOQU1FfSBTVEFUSUMgJHtTT1VSQ0VfRklMRVN9KQorZW5kaWYoKQorCitpZihV
U0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICBzZXQoRVhUUkFfTElCUyAke0VYVFJBX0xJQlN9IGMr
KyBjKythYmkpCitlbmRpZigpCisKK3RhcmdldF9saW5rX2xpYnJhcmllcygke0xJQk5BTUV9ICR7
RVhUUkFfTElCU30pCisKK2luc3RhbGwoVEFSR0VUUyAke0xJQk5BTUV9IERFU1RJTkFUSU9OIGxp
YikKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdCBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvSW5mby5wbGlzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWU1
Njk4MDg3ZjA5MzkxNDU4YmIxOTdhZDhkODE3ZWVkZWI4MjY5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9JbmZvLnBsaXN0CkBAIC0wLDAgKzEsMTggQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3Qg
UFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNv
bS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRp
Y3Q+CisgICAgICAgPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKyAgICAgICA8c3RyaW5n
PmNvbS52YWx2ZXNvZnR3YXJlLk9wZW5WUi5mcmFtZXdvcms8L3N0cmluZz4KKyAgICAgICA8a2V5
PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisgICAgICAgPHN0cmluZz42LjA8
L3N0cmluZz4KKyAgICAgICA8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorICAgICAgIDxzdHJpbmc+
T3BlblZSPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Cisg
ICAgICAgPHN0cmluZz5GTVdLPC9zdHJpbmc+CisgICAgICAgPGtleT5DRkJ1bmRsZVNob3J0VmVy
c2lvblN0cmluZzwva2V5PgorICAgICAgIDxzdHJpbmc+MS4wPC9zdHJpbmc+CisgICAgICAgPGtl
eT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKyAgICAgICA8c3RyaW5nPjEuMDwvc3RyaW5nPgorPC9k
aWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMv
UkVBRE1FIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9SRUFETUUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODI2YzU4ZGE3OWZiOTRlMDJkY2ZlY2QyNmE1ZTU1MmQ5YWE1OGFjMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvUkVBRE1FCkBAIC0wLDAgKzEsMzkgQEAK
K1RoaXMgaXMgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgT3BlblZSIEFQSSBjbGllbnQgYmluZGlu
ZyBsaWJyYXJ5IHdoaWNoIGNvbm5lY3RzCitPcGVuVlIgYXBwbGljYXRpb25zIHRvIHRoZSBTdGVh
bVZSIHJ1bnRpbWUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHZlcnNpb24KK29mIHRoZSBPcGVu
VlIgaW50ZXJmYWNlIHRoZXkgd2VyZSBjb21waWxlZCBhZ2FpbnN0LgorCitUaGUgY2xpZW50IGJp
bmRpbmcgbGlicmFyeSAtIG9wZW52cl9hcGkuZGxsIG9uIFdpbmRvd3MsIG9wZW52cl9hcGkuc28g
b24KK0xpbnV4LCBhbmQgb3BlbnZyX2FwaS5keWxpYiBvciBPcGVuVlIuZnJhbWV3b3JrIG9uIG1h
Y09TIC0ga25vd3MgaG93IHRvIGZpbmQKK2FuZCByZWFkIHRoZSBTdGVhbVZSIHJ1bnRpbWUgaW5z
dGFsbGF0aW9uIGluZm9ybWF0aW9uIHdoaWNoIGFsbG93cyBpdCB0bworZmluZCBhbmQgZHluYW1p
Y2FsbHkgY29ubmVjdCB0byB0aGUgaW5zdGFsbGVkIHJ1bnRpbWUuIEluIGNvbWJpbmF0aW9uIHdp
dGggdGhlCitpbnRlcmZhY2UgdmVyc2lvbiBpZGVudGlmaWVycyBmcm9tIC9pbmNsdWRlL29wZW52
ci5oIHdoaWNoIGFyZSBiYWtlZAoraW50byBhcHBsaWNhdGlvbnMgYXQgdGhlIHRpbWUgdGhleSBh
cmUgYnVpbHQsIHRoZSBPcGVuVlIgQVBJIGNsaWVudAorYmluZGluZyBsaWJyYXJ5IGNhcHR1cmVz
IGFuZCBjb252ZXlzIHRvIHRoZSBTdGVhbVZSIHJ1bnRpbWUgdGhlIHZlcnNpb24KK29mIHRoZSBP
cGVuVlIgQVBJIGludGVyZmFjZSBiZWhhdmlvciB0aGF0IHRoZSBhcHBsaWNhdGlvbiBleHBlY3Rz
LgorCitBcHBsaWNhdGlvbnMgY2Fycnkgd2l0aCB0aGVtIGEgcHJpdmF0ZS9sb2NhbCBjb3B5IG9m
IHRoZSBjbGllbnQgYmluZGluZworbGlicmFyeSB3aGVuIHRoZXkgc2hpcCwgYW5kIHRoZXkgc2hv
dWxkIGluc3RhbGwgaXQgbG9jYWxseSB0byB0aGVpcgorYXBwbGljYXRpb24uICBBcHBsaWNhdGlv
bnMgc2hvdWxkIG5vdCBpbnN0YWxsIHRoZSBjbGllbnQgYmluZGluZyBsaWJyYXJ5CitnbG9iYWxs
eSBvciBhdHRlbXB0IHRvIGxpbmsgdG8gYSBnbG9iYWxseSBpbnN0YWxsZWQgY2xpZW50IGJpbmRp
bmcgbGlicmFyeS4KK0RvaW5nIHNvIG5lZ2F0ZXMgYXQgbGVhc3QgcGFydCBvZiB0aGUgYWJpbGl0
eSBmb3IgdGhlIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkKK3RvIGFjY3VyYXRlbHkgcmVmbGVjdCB0
aGUgdmVyc2lvbiBvZiB0aGUgT3BlblZSIEFQSSB0aGF0IHRoZSBhcHBsaWNhdGlvbgord2FzIGJ1
aWx0IGFnYWluc3QsIGFuZCBzbyBoaW5kZXJzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBpbiB0aGUg
ZmFjZSBvZgorQVBJIGNoYW5nZXMuCisKK01vc3QgYXBwbGljYXRpb25zIHNob3VsZCBzaW1wbHkg
bGluayB0byBhbmQgcmVkaXN0cmlidXRlIHdpdGggdGhlaXIgYXBwbGljYXRpb24KK3RoZSBwcmUt
YnVpbHQgY2xpZW50IGJpbmRpbmcgbGlicmFyeSBmb3VuZCBpbiB0aGUgL2JpbiBkaXJlY3Rvcnkg
b2YgdGhpcworcmVwb3NpdG9yeS4gU29tZSBzbWFsbCBudW1iZXIgb2YgYXBwbGljYXRpb25zIHdo
aWNoIGhhdmUgc3BlY2lmaWMgcmVxdWlyZW1lbnRzCithcm91bmQgcmVkaXN0cmlidXRpbmcgb25s
eSBiaW5hcmllcyB0aGV5IGJ1aWxkIHRoZW1zZWx2ZXMgc2hvdWxkIGJ1aWxkCit0aGUgY2xpZW50
IGxpYnJhcnkgZnJvbSB0aGlzIHNvdXJjZSBhbmQgZWl0aGVyIHN0YXRpY2FsbHkgbGluayBpdCBp
bnRvCit0aGVpciBhcHBsaWNhdGlvbiBvciByZWRpc3RyaWJ1dGUgdGhlIGJpbmFyeSB0aGV5IGJ1
aWxkLgorCitUaGlzIGlzIGEgY21ha2UgcHJvamVjdCwgdG8gYnVpbGQgaXQgdXNlIHRoZSB2ZXJz
aW9uIG9mIGNtYWtlIGFwcHJvcHJpYXRlCitmb3IgeW91ciBwbGF0Zm9ybS4gRm9yIGV4YW1wbGUs
IHRvIGJ1aWxkIG9uIGEgUE9TSVggc3lzdGVtIHNpbXBseSBwZXJmb3JtCisKKyAgY2Qgc3JjOyBt
a2RpciBfYnVpbGQ7IGNkIF9idWlsZDsgY21ha2UgLi47IG1ha2UKKworYW5kIHlvdSB3aWxsIGVu
ZCB1cCB3aXRoIHRoZSBzdGF0aWMgbGlicmFyeSAvc3JjL2Jpbi88YXJjaD4vbGlib3BlbnZyX2Fw
aS5hCisKK1RvIGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnksIHBhc3MgLURCVUlMRF9TSEFSRUQ9MSB0
byBjbWFrZS4KK1RvIGJ1aWxkIGFzIGEgZnJhbWV3b3JrIG9uIGFwcGxlIHBsYXRmb3JtcywgcGFz
cyAtREJVSUxEX0ZSQU1FV09SSz0xIHRvIGNtYWtlLgorVG8gc2VlIGEgY29tcGxldGUgbGlzdCBv
ZiBjb25maWd1cmFibGUgYnVpbGQgb3B0aW9ucywgdXNlIGBjbWFrZSAtTEFIYApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNsaWVudGNvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWZlMzYw
ZWU0YWQ1MmM4Nzk5MGMyNTE3NDZmMDFjYjg5YmJmMDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9pdnJjbGllbnRjb3JlLmgKQEAgLTAsMCArMSwzNSBA
QAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8v
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElWUkNsaWVudENvcmUK
K3sKK3B1YmxpYzoKKyAgICAgICAvKiogSW5pdGlhbGl6ZXMgdGhlIHN5c3RlbSAqLworICAgICAg
IHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxp
Y2F0aW9uVHlwZSwgY29uc3QgY2hhciAqcFN0YXJ0dXBJbmZvICkgPSAwOworCisgICAgICAgLyoq
IGNsZWFucyB1cCBldmVyeXRoaW5nIGluIHZyY2xpZW50LmRsbCBhbmQgcHJlcGFyZXMgdGhlIERM
TCB0byBiZSB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVhbnVwKCkgPSAwOwor
CisgICAgICAgLyoqIGNoZWNrcyB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBpbnRlcmZhY2UvdmVy
c2lvbiBpcyBzdXBwb3J0ZWQgaW4gdGhpcyB2cmNsaWVudC5kbGwgKi8KKyAgICAgICB2aXJ0dWFs
IEVWUkluaXRFcnJvciBJc0ludGVyZmFjZVZlcnNpb25WYWxpZCggY29uc3QgY2hhciAqcGNoSW50
ZXJmYWNlVmVyc2lvbiApID0gMDsKKworICAgICAgIC8qKiBSZXRyaWV2ZXMgYW55IGludGVyZmFj
ZSBmcm9tIHZyY2xpZW50LmRsbCAqLworICAgICAgIHZpcnR1YWwgdm9pZCAqR2V0R2VuZXJpY0lu
dGVyZmFjZSggY29uc3QgY2hhciAqcGNoTmFtZUFuZFZlcnNpb24sIEVWUkluaXRFcnJvciAqcGVF
cnJvciApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgYW55IGRyaXZlciBoYXMg
YW4gSE1EIGF0dGFjaGVkLiBDYW4gYmUgY2FsbGVkIG91dHNpZGUgb2YgSW5pdC9DbGVhbnVwICov
CisgICAgICAgdmlydHVhbCBib29sIEJJc0htZFByZXNlbnQoKSA9IDA7CisKKyAgICAgICAvKiog
UmV0dXJucyBhbiBFbmdsaXNoIGVycm9yIHN0cmluZyBmcm9tIGluc2lkZSB2cmNsaWVudC5kbGwg
d2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUgQVBJIERMTCAqLworICAgICAgIHZpcnR1YWwg
Y29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5pdEVycm9y
IGVFcnJvciApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIGVycm9yIHN5bWJvbCBmcm9t
IGluc2lkZSB2cmNsaWVudC5kbGwgd2hpY2ggbWlnaHQgYmUgbmV3ZXIgdGhhbiB0aGUgQVBJIERM
TCAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0SURGb3JWUkluaXRFcnJvciggdnI6
OkVWUkluaXRFcnJvciBlRXJyb3IgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IElWUkNsaWVudENvcmVfVmVyc2lvbiA9ICJJVlJDbGllbnRDb3JlXzAwMyI7CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24tZm9yd2Fy
ZHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZvcndhcmRzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTEwYzdkZTk3NjRiNDIxODJiMDE3ZjcwZWUwMDkzMWJmNmU0OTA0OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLWZv
cndhcmRzLmgKQEAgLTAsMCArMSwyODQgQEAKKy8vLyBKc29uLWNwcCBhbWFsZ2F0ZWQgZm9yd2Fy
ZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgorLy8vIEl0IGlzIGlu
dGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLWZvcndhcmRzLmgiCisv
Ly8gVGhpcyBoZWFkZXIgcHJvdmlkZXMgZm9yd2FyZCBkZWNsYXJhdGlvbiBmb3IgYWxsIEpzb25D
cHAgdHlwZXMuCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9m
IGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLyoKK1RoZSBKc29uQ3BwIGxpYnJh
cnkncyBzb3VyY2UgY29kZSwgaW5jbHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAK
K3Rlc3RzIGFuZCBkZW1vbnN0cmF0aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVy
IHRoZSBmb2xsb3dpbmcKK2NvbmRpdGlvbnMuLi4KKworVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVw
aWxsZXVyKSBleHBsaWNpdGx5IGRpc2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAoranVyaXNkaWN0
aW9ucyB3aGljaCByZWNvZ25pemUgc3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0
aW9ucywgCit0aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4u
CisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWlu
IHByb3BlcnR5IChlLmcuIEdlcm1hbnkgYXMgb2YKKzIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENv
cHlyaWdodCAoYykgMjAwNy0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCityZWxl
YXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgorCitJ
biBqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0
aGUgdXNlciBvZiB0aGlzIAorc29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVy
IGFzIDEpIFB1YmxpYyBEb21haW4sIDIpIHVuZGVyIHRoZSAKK2NvbmRpdGlvbnMgb2YgdGhlIE1J
VCBMaWNlbnNlIChzZWUgYmVsb3cpLCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKK1B1
YmxpYyBEb21haW4vTUlUIExpY2Vuc2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhl
eSBjaG9vc2UuCisKK1RoZSBNSVQgTGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMg
RG9tYWluIGFzIGEgbGljZW5zZSBjYW4gZ2V0LCBhbmQgaXMKK2Rlc2NyaWJlZCBpbiBjbGVhciwg
Y29uY2lzZSB0ZXJtcyBhdDoKKworICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRf
TGljZW5zZQorICAgCitUaGUgZnVsbCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgor
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGls
bGV1cgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbgorb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhl
IFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LAorbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCitvZiB0aGUgU29mdHdhcmUs
IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUK
K2luY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv
ZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg
TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKK0JFIExJQUJMRSBGT1IgQU5Z
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorQUNUSU9O
IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUKK1NPRlRXQVJFLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisoRU5EIExJQ0VOU0UgVEVY
VCkKKworVGhlIE1JVCBsaWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5k
IGNvbW1lcmNpYWwKK3NvZnR3YXJlLCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9m
IFB1YmxpYyBEb21haW4gd2l0aCB0aGUKK21pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVk
IHRvIGtlZXAgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UKK2FuZCBsaWNlbnNlIHRleHQgaW4g
dGhlIHNvdXJjZSBjb2RlLiBOb3RlIGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCitQdWJsaWMg
RG9tYWluICJsaWNlbnNlIiB5b3UgY2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRl
dmVyCitsaWNlbnNlIHlvdSBsaWtlLgorCisqLworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQg
b2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKwor
I2lmbmRlZiBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKKyMgZGVmaW5lIEpTT05f
Rk9SV0FSRF9BTUFMR0FURURfSF9JTkNMVURFRAorLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0
aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHByaXZhdGUg
aGVhZGVyIGluY2x1c2lvbi4KKyNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29u
L2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFw
dGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVi
bGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGlj
dGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9q
c29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9DT05GSUdfSF9J
TkNMVURFRAorI2RlZmluZSBKU09OX0NPTkZJR19IX0lOQ0xVREVECisKKy8vLyBJZiBkZWZpbmVk
LCBpbmRpY2F0ZXMgdGhhdCBqc29uIGxpYnJhcnkgaXMgZW1iZWRkZWQgaW4gQ3BwVEwgbGlicmFy
eS4KKy8vIyBkZWZpbmUgSlNPTl9JTl9DUFBUTCAxCisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0
ZXMgdGhhdCBqc29uIG1heSBsZXZlcmFnZSBDcHBUTCBsaWJyYXJ5CisvLyMgIGRlZmluZSBKU09O
X1VTRV9DUFBUTCAxCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgY3BwdGwgdmVjdG9y
IGJhc2VkIG1hcCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mCisvLy8gc3RkOjptYXAKKy8vLyBh
cyBWYWx1ZSBjb250YWluZXIuCisvLyMgIGRlZmluZSBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUCAx
CisKKy8vIElmIG5vbi16ZXJvLCB0aGUgbGlicmFyeSB1c2VzIGV4Y2VwdGlvbnMgdG8gcmVwb3J0
IGJhZCBpbnB1dCBpbnN0ZWFkIG9mIEMKKy8vIGFzc2VydGlvbiBtYWNyb3MuIFRoZSBkZWZhdWx0
IGlzIHRvIHVzZSBleGNlcHRpb25zLgorI2lmbmRlZiBKU09OX1VTRV9FWENFUFRJT04KKyNkZWZp
bmUgSlNPTl9VU0VfRVhDRVBUSU9OIDEKKyNlbmRpZgorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNh
dGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZAorLy8vIHRvIHByZXZlbnQgcHJp
dmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorLy8vIFJlbWFya3M6IGl0IGlzIGF1dG9tYXRpY2FsbHkg
ZGVmaW5lZCBpbiB0aGUgZ2VuZXJhdGVkIGFtYWxnYXRlZCBoZWFkZXIuCisvLyAjZGVmaW5lIEpT
T05fSVNfQU1BTEdBTUFUSU9OCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjaW5jbHVkZSA8Y3Bw
dGwvY29uZmlnLmg+CisjaWZuZGVmIEpTT05fVVNFX0NQUFRMCisjZGVmaW5lIEpTT05fVVNFX0NQ
UFRMIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBKU09OX0lOX0NQUFRMCisjZGVmaW5lIEpT
T05fQVBJIENQUFRMX0FQSQorI2VsaWYgZGVmaW5lZChKU09OX0RMTF9CVUlMRCkKKyNpZiBkZWZp
bmVkKF9NU0NfVkVSKQorI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNk
ZWZpbmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlm
IGRlZmluZWQoX01TQ19WRVIpCisjZWxpZiBkZWZpbmVkKEpTT05fRExMKQorI2lmIGRlZmluZWQo
X01TQ19WRVIpCisjZGVmaW5lIEpTT05fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2RlZmlu
ZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HCisjZW5kaWYgLy8gaWYgZGVm
aW5lZChfTVNDX1ZFUikKKyNlbmRpZiAvLyBpZmRlZiBKU09OX0lOX0NQUFRMCisjaWYgIWRlZmlu
ZWQoSlNPTl9BUEkpCisjZGVmaW5lIEpTT05fQVBJCisjZW5kaWYKKworLy8gSWYgSlNPTl9OT19J
TlQ2NCBpcyBkZWZpbmVkLCB0aGVuIEpzb24gb25seSBzdXBwb3J0IEMrKyAiaW50IiB0eXBlIGZv
cgorLy8gaW50ZWdlcgorLy8gU3RvcmFnZXMsIGFuZCA2NCBiaXRzIGludGVnZXIgc3VwcG9ydCBp
cyBkaXNhYmxlZC4KKy8vICNkZWZpbmUgSlNPTl9OT19JTlQ2NCAxCisKKyNpZiBkZWZpbmVkKF9N
U0NfVkVSKSAvLyBNU1ZDCisjICBpZiBfTVNDX1ZFUiA8PSAxMjAwIC8vIE1TVkMgNgorICAgIC8v
IE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYgb25seSBzdXBwb3J0IGNvbnZlcnNpb24gZnJvbSBf
X2ludDY0IHRvIGRvdWJsZQorICAgIC8vIChubyBjb252ZXJzaW9uIGZyb20gdW5zaWduZWQgX19p
bnQ2NCkuCisjICAgIGRlZmluZSBKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTiAxCisg
ICAgLy8gRGlzYWJsZSB3YXJuaW5nIDQ3ODYgZm9yIFZTNiBjYXVzZWQgYnkgU1RMIChpZGVudGlm
aWVyIHdhcyB0cnVuY2F0ZWQgdG8gJzI1NScKKyAgICAvLyBjaGFyYWN0ZXJzIGluIHRoZSBkZWJ1
ZyBpbmZvcm1hdGlvbikKKyAgICAvLyBBbGwgcHJvamVjdHMgSSd2ZSBldmVyIHNlZW4gd2l0aCBW
UzYgd2VyZSB1c2luZyB0aGlzIGdsb2JhbGx5IChub3QgYm90aGVyaW5nCisgICAgLy8gd2l0aCBw
cmFnbWEgcHVzaC9wb3ApLgorIyAgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDc4NikKKyMg
IGVuZGlmIC8vIE1TVkMgNgorCisjICBpZiBfTVNDX1ZFUiA+PSAxNTAwIC8vIE1TVkMgMjAwOAor
ICAgIC8vLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIGRlcHJlY2F0
ZWQuCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgX19kZWNsc3BlYyhk
ZXByZWNhdGVkKG1lc3NhZ2UpKQorIyAgZW5kaWYKKworI2VuZGlmIC8vIGRlZmluZWQoX01TQ19W
RVIpCisKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworCisjaWYgZGVmaW5l
ZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTYwMCAvLyBNU1ZDID49IDIwMTAKKyNkZWZpbmUg
SlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMQorI2VuZGlmIC8vIE1TVkMgPj0gMjAxMAorCisj
aWZkZWYgX19jbGFuZ19fCisjaWYgX19oYXNfZmVhdHVyZShjeHhfcnZhbHVlX3JlZmVyZW5jZXMp
CisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAgLy8gaGFzX2Zl
YXR1cmUKKworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdjYyBjb21lcyBs
YXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjaWYgZGVmaW5lZChfX0dYWF9FWFBFUklN
RU5UQUxfQ1hYMFhfXykgfHwgKF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCisjZGVmaW5lIEpTT05f
SEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAgLy8gR1hYX0VYUEVSSU1FTlRBTAorCisj
ZW5kaWYgLy8gX19jbGFuZ19fIHx8IF9fR05VQ19fCisKKyNlbmRpZiAvLyBub3QgZGVmaW5lZCBK
U09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworCisjaWZuZGVmIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTCisjZGVmaW5lIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDAKKyNlbmRpZgorCisj
aWZkZWYgX19jbGFuZ19fCisjZWxpZiBkZWZpbmVkIF9fR05VQ19fIC8vIG5vdCBjbGFuZyAoZ2Nj
IGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVtdWxhdGVzIGdjYykKKyMgIGlmIChfX0dOVUNfXyA+
IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gNSkpCisjICAgIGRlZmlu
ZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkgIF9fYXR0cmlidXRlX18gKChkZXByZWNhdGVk
KG1lc3NhZ2UpKSkKKyMgIGVsaWYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBf
X0dOVUNfTUlOT1JfXyA+PSAxKSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNz
YWdlKSAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18pKQorIyAgZW5kaWYgIC8vIEdOVUMg
dmVyc2lvbgorI2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXworCisjaWYgIWRlZmluZWQo
SlNPTkNQUF9ERVBSRUNBVEVEKQorI2RlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVzc2FnZSkK
KyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCisKK25hbWVzcGFjZSBK
c29uIHsKK3R5cGVkZWYgaW50IEludDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFVJbnQ7CisjaWYg
ZGVmaW5lZChKU09OX05PX0lOVDY0KQordHlwZWRlZiBpbnQgTGFyZ2VzdEludDsKK3R5cGVkZWYg
dW5zaWduZWQgaW50IExhcmdlc3RVSW50OworI3VuZGVmIEpTT05fSEFTX0lOVDY0CisjZWxzZSAg
ICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorLy8gRm9yIE1pY3Jv
c29mdCBWaXN1YWwgdXNlIHNwZWNpZmljIHR5cGVzIGFzIGxvbmcgbG9uZyBpcyBub3Qgc3VwcG9y
dGVkCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KK3R5
cGVkZWYgX19pbnQ2NCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBVSW50NjQ7Cisj
ZWxzZSAgICAgICAgICAgICAgICAgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikgLy8gT3RoZXIgcGxh
dGZvcm1zLCB1c2UgbG9uZyBsb25nCit0eXBlZGVmIGxvbmcgbG9uZyBpbnQgSW50NjQ7Cit0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgVUludDY0OworI2VuZGlmIC8vIGlmIGRlZmluZWQo
X01TQ19WRVIpCit0eXBlZGVmIEludDY0IExhcmdlc3RJbnQ7Cit0eXBlZGVmIFVJbnQ2NCBMYXJn
ZXN0VUludDsKKyNkZWZpbmUgSlNPTl9IQVNfSU5UNjQKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpT
T05fTk9fSU5UNjQpCit9IC8vIGVuZCBuYW1lc3BhY2UgSnNvbgorCisjZW5kaWYgLy8gSlNPTl9D
T05GSUdfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKwor
CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi9mb3J3YXJkcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAy
MDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5
b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5
IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNP
Tl9GT1JXQVJEU19IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fRk9SV0FSRFNfSF9JTkNMVURFRAor
CisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKK25hbWVzcGFj
ZSBKc29uIHsKKworLy8gd3JpdGVyLmgKK2NsYXNzIEZhc3RXcml0ZXI7CitjbGFzcyBTdHlsZWRX
cml0ZXI7CisKKy8vIHJlYWRlci5oCitjbGFzcyBSZWFkZXI7CisKKy8vIGZlYXR1cmVzLmgKK2Ns
YXNzIEZlYXR1cmVzOworCisvLyB2YWx1ZS5oCit0eXBlZGVmIHVuc2lnbmVkIGludCBBcnJheUlu
ZGV4OworY2xhc3MgU3RhdGljU3RyaW5nOworY2xhc3MgUGF0aDsKK2NsYXNzIFBhdGhBcmd1bWVu
dDsKK2NsYXNzIFZhbHVlOworY2xhc3MgVmFsdWVJdGVyYXRvckJhc2U7CitjbGFzcyBWYWx1ZUl0
ZXJhdG9yOworY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yOworCit9IC8vIG5hbWVzcGFjZSBKc29u
CisKKyNlbmRpZiAvLyBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKworCisKKworCisjZW5kaWYgLy9pZm5kZWYgSlNPTl9GT1JXQVJEX0FN
QUxHQVRFRF9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL2pzb24vanNvbi5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMjdmNjVkOWRmYTg1MzZjMzVmZjQ3ZGUwODRmZWNlNzg5OGFiMWUxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9qc29uL2pzb24u
aApAQCAtMCwwICsxLDIwNzcgQEAKKy8vLyBKc29uLWNwcCBhbWFsZ2F0ZWQgaGVhZGVyIChodHRw
Oi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBpcyBpbnRlbmRlZCB0byBiZSB1
c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi5oIgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBC
ZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
Ky8qCitUaGUgSnNvbkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUsIGluY2x1ZGluZyBhY2NvbXBh
bnlpbmcgZG9jdW1lbnRhdGlvbiwgCit0ZXN0cyBhbmQgZGVtb25zdHJhdGlvbiBhcHBsaWNhdGlv
bnMsIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCitjb25kaXRpb25zLi4uCisKK1Ro
ZSBhdXRob3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRseSBkaXNjbGFpbXMgY29weXJp
Z2h0IGluIGFsbCAKK2p1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIHN1Y2ggYSBkaXNjbGFp
bWVyLiBJbiBzdWNoIGp1cmlzZGljdGlvbnMsIAordGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCBp
bnRvIHRoZSBQdWJsaWMgRG9tYWluLgorCitJbiBqdXJpc2RpY3Rpb25zIHdoaWNoIGRvIG5vdCBy
ZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBHZXJtYW55IGFzIG9mCisyMDEw
KSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBieSBCYXB0aXN0ZSBM
ZXBpbGxldXIsIGFuZCBpcworcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGlj
ZW5zZSAoc2VlIGJlbG93KS4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCByZWNvZ25pemUgUHVi
bGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAKK3NvZnR3YXJlIG1heSBjaG9v
c2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9tYWluLCAyKSB1bmRlciB0aGUg
Citjb25kaXRpb25zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KSwgb3IgMykgdW5kZXIg
dGhlIHRlcm1zIG9mIGR1YWwgCitQdWJsaWMgRG9tYWluL01JVCBMaWNlbnNlIGNvbmRpdGlvbnMg
ZGVzY3JpYmVkIGhlcmUsIGFzIHRoZXkgY2hvb3NlLgorCitUaGUgTUlUIExpY2Vuc2UgaXMgYWJv
dXQgYXMgY2xvc2UgdG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vuc2UgY2FuIGdldCwgYW5kIGlz
CitkZXNjcmliZWQgaW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6CisKKyAgIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKKyAgIAorVGhlIGZ1bGwgdGV4dCBvZiB0aGUg
TUlUIExpY2Vuc2UgZm9sbG93czoKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDb3B5cmlnaHQgKGMpIDIw
MDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KK29idGFpbmluZyBhIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCitmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0CityZXN0cmljdGlvbiwgaW5j
bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKK21vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcworb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
U29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKK01FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECitOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTCitCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4KK0FDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCitDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorKEVORCBMSUNFTlNFIFRFWFQpCisKK1RoZSBNSVQgbGljZW5zZSBpcyBjb21wYXRpYmxl
IHdpdGggYm90aCB0aGUgR1BMIGFuZCBjb21tZXJjaWFsCitzb2Z0d2FyZSwgYWZmb3JkaW5nIG9u
ZSBhbGwgb2YgdGhlIHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdpdGggdGhlCittaW5vciBudWlz
YW5jZSBvZiBiZWluZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
CithbmQgbGljZW5zZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4gTm90ZSBhbHNvIHRoYXQgYnkg
YWNjZXB0aW5nIHRoZQorUHVibGljIERvbWFpbiAibGljZW5zZSIgeW91IGNhbiByZS1saWNlbnNl
IHlvdXIgY29weSB1c2luZyB3aGF0ZXZlcgorbGljZW5zZSB5b3UgbGlrZS4KKworKi8KKworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworCisKKworCisKKyNpZm5kZWYgSlNPTl9BTUFMR0FURURfSF9JTkNMVURFRAor
IyBkZWZpbmUgSlNPTl9BTUFMR0FURURfSF9JTkNMVURFRAorLy8vIElmIGRlZmluZWQsIGluZGlj
YXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHBy
aXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KKyNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKwor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVk
ZS9qc29uL3ZlcnNpb24uaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBETyBOT1QgRURJVC4gVGhp
cyBmaWxlIChhbmQgInZlcnNpb24iKSBpcyBnZW5lcmF0ZWQgYnkgQ01ha2UuCisvLyBSdW4gQ01h
a2UgY29uZmlndXJlIHN0ZXAgdG8gdXBkYXRlIGl0LgorI2lmbmRlZiBKU09OX1ZFUlNJT05fSF9J
TkNMVURFRAorIyBkZWZpbmUgSlNPTl9WRVJTSU9OX0hfSU5DTFVERUQKKworIyBkZWZpbmUgSlNP
TkNQUF9WRVJTSU9OX1NUUklORyAiMS42LjUiCisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUFK
T1IgMQorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX01JTk9SIDYKKyMgZGVmaW5lIEpTT05DUFBf
VkVSU0lPTl9QQVRDSCA1CisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fUVVBTElGSUVSCisjIGRl
ZmluZSBKU09OQ1BQX1ZFUlNJT05fSEVYQSAoKEpTT05DUFBfVkVSU0lPTl9NQUpPUiA8PCAyNCkg
fCAoSlNPTkNQUF9WRVJTSU9OX01JTk9SIDw8IDE2KSB8IChKU09OQ1BQX1ZFUlNJT05fUEFUQ0gg
PDwgOCkpCisKKyNlbmRpZiAvLyBKU09OX1ZFUlNJT05fSF9JTkNMVURFRAorCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5o
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdp
bm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKKworI2lmbmRlZiBKU09OX0NPTkZJR19IX0lOQ0xVREVECisjZGVmaW5lIEpT
T05fQ09ORklHX0hfSU5DTFVERUQKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpz
b24gbGlicmFyeSBpcyBlbWJlZGRlZCBpbiBDcHBUTCBsaWJyYXJ5LgorLy8jIGRlZmluZSBKU09O
X0lOX0NQUFRMIDEKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbWF5IGxl
dmVyYWdlIENwcFRMIGxpYnJhcnkKKy8vIyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKy8vLyBJ
ZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCBjcHB0bCB2ZWN0b3IgYmFzZWQgbWFwIHNob3VsZCBi
ZSB1c2VkIGluc3RlYWQgb2YKKy8vLyBzdGQ6Om1hcAorLy8vIGFzIFZhbHVlIGNvbnRhaW5lci4K
Ky8vIyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQIDEKKworLy8gSWYgbm9uLXplcm8s
IHRoZSBsaWJyYXJ5IHVzZXMgZXhjZXB0aW9ucyB0byByZXBvcnQgYmFkIGlucHV0IGluc3RlYWQg
b2YgQworLy8gYXNzZXJ0aW9uIG1hY3Jvcy4gVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGV4Y2VwdGlv
bnMuCisjaWZuZGVmIEpTT05fVVNFX0VYQ0VQVElPTgorI2RlZmluZSBKU09OX1VTRV9FWENFUFRJ
T04gMQorI2VuZGlmCisKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNl
IGZpbGUgaXMgYW1hbGdhdGVkCisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNp
b24uCisvLy8gUmVtYXJrczogaXQgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkIGluIHRoZSBnZW5l
cmF0ZWQgYW1hbGdhdGVkIGhlYWRlci4KKy8vICNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04K
KworI2lmZGVmIEpTT05fSU5fQ1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25maWcuaD4KKyNpZm5k
ZWYgSlNPTl9VU0VfQ1BQVEwKKyNkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQorI2VuZGlmCisjZW5k
aWYKKworI2lmZGVmIEpTT05fSU5fQ1BQVEwKKyNkZWZpbmUgSlNPTl9BUEkgQ1BQVExfQVBJCisj
ZWxpZiBkZWZpbmVkKEpTT05fRExMX0JVSUxEKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVm
aW5lIEpTT05fQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FC
TEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikK
KyNlbGlmIGRlZmluZWQoSlNPTl9ETEwpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUg
SlNPTl9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElTQUJMRV9E
TExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2Vu
ZGlmIC8vIGlmZGVmIEpTT05fSU5fQ1BQVEwKKyNpZiAhZGVmaW5lZChKU09OX0FQSSkKKyNkZWZp
bmUgSlNPTl9BUEkKKyNlbmRpZgorCisvLyBJZiBKU09OX05PX0lOVDY0IGlzIGRlZmluZWQsIHRo
ZW4gSnNvbiBvbmx5IHN1cHBvcnQgQysrICJpbnQiIHR5cGUgZm9yCisvLyBpbnRlZ2VyCisvLyBT
dG9yYWdlcywgYW5kIDY0IGJpdHMgaW50ZWdlciBzdXBwb3J0IGlzIGRpc2FibGVkLgorLy8gI2Rl
ZmluZSBKU09OX05PX0lOVDY0IDEKKworI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1TVkMKKyMg
IGlmIF9NU0NfVkVSIDw9IDEyMDAgLy8gTVNWQyA2CisgICAgLy8gTWljcm9zb2Z0IFZpc3VhbCBT
dHVkaW8gNiBvbmx5IHN1cHBvcnQgY29udmVyc2lvbiBmcm9tIF9faW50NjQgdG8gZG91YmxlCisg
ICAgLy8gKG5vIGNvbnZlcnNpb24gZnJvbSB1bnNpZ25lZCBfX2ludDY0KS4KKyMgICAgZGVmaW5l
IEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OIDEKKyAgICAvLyBEaXNhYmxlIHdhcm5p
bmcgNDc4NiBmb3IgVlM2IGNhdXNlZCBieSBTVEwgKGlkZW50aWZpZXIgd2FzIHRydW5jYXRlZCB0
byAnMjU1JworICAgIC8vIGNoYXJhY3RlcnMgaW4gdGhlIGRlYnVnIGluZm9ybWF0aW9uKQorICAg
IC8vIEFsbCBwcm9qZWN0cyBJJ3ZlIGV2ZXIgc2VlbiB3aXRoIFZTNiB3ZXJlIHVzaW5nIHRoaXMg
Z2xvYmFsbHkgKG5vdCBib3RoZXJpbmcKKyAgICAvLyB3aXRoIHByYWdtYSBwdXNoL3BvcCkuCisj
ICAgIHByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0Nzg2KQorIyAgZW5kaWYgLy8gTVNWQyA2CisK
KyMgIGlmIF9NU0NfVkVSID49IDE1MDAgLy8gTVNWQyAyMDA4CisgICAgLy8vIEluZGljYXRlcyB0
aGF0IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KKyMgICAgZGVmaW5lIEpT
T05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQobWVzc2FnZSkp
CisjICBlbmRpZgorCisjZW5kaWYgLy8gZGVmaW5lZChfTVNDX1ZFUikKKworCisjaWZuZGVmIEpT
T05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVND
X1ZFUiA+PSAxNjAwIC8vIE1TVkMgPj0gMjAxMAorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUyAxCisjZW5kaWYgLy8gTVNWQyA+PSAyMDEwCisKKyNpZmRlZiBfX2NsYW5nX18KKyNp
ZiBfX2hhc19mZWF0dXJlKGN4eF9ydmFsdWVfcmVmZXJlbmNlcykKKyNkZWZpbmUgSlNPTl9IQVNf
UlZBTFVFX1JFRkVSRU5DRVMgMQorI2VuZGlmICAvLyBoYXNfZmVhdHVyZQorCisjZWxpZiBkZWZp
bmVkIF9fR05VQ19fIC8vIG5vdCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVt
dWxhdGVzIGdjYykKKyNpZiBkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKSB8fCAo
X19jcGx1c3BsdXMgPj0gMjAxMTAzTCkKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5D
RVMgMQorI2VuZGlmICAvLyBHWFhfRVhQRVJJTUVOVEFMCisKKyNlbmRpZiAvLyBfX2NsYW5nX18g
fHwgX19HTlVDX18KKworI2VuZGlmIC8vIG5vdCBkZWZpbmVkIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTCisKKyNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgSlNP
Tl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMAorI2VuZGlmCisKKyNpZmRlZiBfX2NsYW5nX18KKyNl
bGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2Ug
Y2xhbmcgZW11bGF0ZXMgZ2NjKQorIyAgaWYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0g
NCAmJiBfX0dOVUNfTUlOT1JfXyA+PSA1KSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRF
RChtZXNzYWdlKSAgX19hdHRyaWJ1dGVfXyAoKGRlcHJlY2F0ZWQobWVzc2FnZSkpKQorIyAgZWxp
ZiAoX19HTlVDX18gPiAzIHx8IChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDEp
KQorIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9f
KChfX2RlcHJlY2F0ZWRfXykpCisjICBlbmRpZiAgLy8gR05VQyB2ZXJzaW9uCisjZW5kaWYgLy8g
X19jbGFuZ19fIHx8IF9fR05VQ19fCisKKyNpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQp
CisjZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKQorI2VuZGlmIC8vIGlmICFkZWZp
bmVkKEpTT05DUFBfREVQUkVDQVRFRCkKKworbmFtZXNwYWNlIEpzb24gewordHlwZWRlZiBpbnQg
SW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgVUludDsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5U
NjQpCit0eXBlZGVmIGludCBMYXJnZXN0SW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgTGFyZ2Vz
dFVJbnQ7CisjdW5kZWYgSlNPTl9IQVNfSU5UNjQKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBp
ZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCisvLyBGb3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3Bl
Y2lmaWMgdHlwZXMgYXMgbG9uZyBsb25nIGlzIG5vdCBzdXBwb3J0ZWQKKyNpZiBkZWZpbmVkKF9N
U0NfVkVSKSAvLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbwordHlwZWRlZiBfX2ludDY0IEludDY0
OwordHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IFVJbnQ2NDsKKyNlbHNlICAgICAgICAgICAgICAg
ICAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBPdGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxv
bmcKK3R5cGVkZWYgbG9uZyBsb25nIGludCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBs
b25nIGludCBVSW50NjQ7CisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKK3R5cGVkZWYg
SW50NjQgTGFyZ2VzdEludDsKK3R5cGVkZWYgVUludDY0IExhcmdlc3RVSW50OworI2RlZmluZSBK
U09OX0hBU19JTlQ2NAorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK30gLy8g
ZW5kIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBKU09OX0NPTkZJR19IX0lOQ0xVREVECisK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNv
bi9jb25maWcuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRz
LmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBM
ZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9t
YWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgor
Ly8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAu
c291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRlZiBKU09OX0ZPUldBUkRTX0hfSU5DTFVE
RUQKKyNkZWZpbmUgSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09O
X0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZiAvLyBpZiAhZGVm
aW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworbmFtZXNwYWNlIEpzb24geworCisvLyB3cml0
ZXIuaAorY2xhc3MgRmFzdFdyaXRlcjsKK2NsYXNzIFN0eWxlZFdyaXRlcjsKKworLy8gcmVhZGVy
LmgKK2NsYXNzIFJlYWRlcjsKKworLy8gZmVhdHVyZXMuaAorY2xhc3MgRmVhdHVyZXM7CisKKy8v
IHZhbHVlLmgKK3R5cGVkZWYgdW5zaWduZWQgaW50IEFycmF5SW5kZXg7CitjbGFzcyBTdGF0aWNT
dHJpbmc7CitjbGFzcyBQYXRoOworY2xhc3MgUGF0aEFyZ3VtZW50OworY2xhc3MgVmFsdWU7Citj
bGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3I7CitjbGFzcyBWYWx1
ZUNvbnN0SXRlcmF0b3I7CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05f
Rk9SV0FSRFNfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVu
dCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisK
KworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmls
ZTogaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJp
Z2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1J
VCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVk
IGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9y
IGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRl
ZiBDUFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKKyNkZWZpbmUgQ1BQVExfSlNPTl9GRUFU
VVJFU19IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNp
bmNsdWRlICJmb3J3YXJkcy5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQorCituYW1lc3BhY2UgSnNvbiB7CisKKy8qKiBcYnJpZWYgQ29uZmlndXJhdGlvbiBw
YXNzZWQgdG8gcmVhZGVyIGFuZCB3cml0ZXIuCisgKiBUaGlzIGNvbmZpZ3VyYXRpb24gb2JqZWN0
IGNhbiBiZSB1c2VkIHRvIGZvcmNlIHRoZSBSZWFkZXIgb3IgV3JpdGVyCisgKiB0byBiZWhhdmUg
aW4gYSBzdGFuZGFyZCBjb25mb3JtaW5nIHdheS4KKyAqLworY2xhc3MgSlNPTl9BUEkgRmVhdHVy
ZXMgeworcHVibGljOgorICAvKiogXGJyaWVmIEEgY29uZmlndXJhdGlvbiB0aGF0IGFsbG93cyBh
bGwgZmVhdHVyZXMgYW5kIGFzc3VtZXMgYWxsIHN0cmluZ3MKKyAgICogYXJlIFVURi04LgorICAg
KiAtIEMgJiBDKysgY29tbWVudHMgYXJlIGFsbG93ZWQKKyAgICogLSBSb290IG9iamVjdCBjYW4g
YmUgYW55IEpTT04gdmFsdWUKKyAgICogLSBBc3N1bWVzIFZhbHVlIHN0cmluZ3MgYXJlIGVuY29k
ZWQgaW4gVVRGLTgKKyAgICovCisgIHN0YXRpYyBGZWF0dXJlcyBhbGwoKTsKKworICAvKiogXGJy
aWVmIEEgY29uZmlndXJhdGlvbiB0aGF0IGlzIHN0cmljdGx5IGNvbXBhdGlibGUgd2l0aCB0aGUg
SlNPTgorICAgKiBzcGVjaWZpY2F0aW9uLgorICAgKiAtIENvbW1lbnRzIGFyZSBmb3JiaWRkZW4u
CisgICAqIC0gUm9vdCBvYmplY3QgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0
IHZhbHVlLgorICAgKiAtIEFzc3VtZXMgVmFsdWUgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYt
OAorICAgKi8KKyAgc3RhdGljIEZlYXR1cmVzIHN0cmljdE1vZGUoKTsKKworICAvKiogXGJyaWVm
IEluaXRpYWxpemUgdGhlIGNvbmZpZ3VyYXRpb24gbGlrZSBKc29uQ29uZmlnOjphbGxGZWF0dXJl
czsKKyAgICovCisgIEZlYXR1cmVzKCk7CisKKyAgLy8vIFxjIHRydWUgaWYgY29tbWVudHMgYXJl
IGFsbG93ZWQuIERlZmF1bHQ6IFxjIHRydWUuCisgIGJvb2wgYWxsb3dDb21tZW50c187CisKKyAg
Ly8vIFxjIHRydWUgaWYgcm9vdCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3Qg
dmFsdWUuIERlZmF1bHQ6IFxjCisgIC8vLyBmYWxzZS4KKyAgYm9vbCBzdHJpY3RSb290XzsKKwor
ICAvLy8gXGMgdHJ1ZSBpZiBkcm9wcGVkIG51bGwgcGxhY2Vob2xkZXJzIGFyZSBhbGxvd2VkLiBE
ZWZhdWx0OiBcYyBmYWxzZS4KKyAgYm9vbCBhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXzsK
KworICAvLy8gXGMgdHJ1ZSBpZiBudW1lcmljIG9iamVjdCBrZXkgYXJlIGFsbG93ZWQuIERlZmF1
bHQ6IFxjIGZhbHNlLgorICBib29sIGFsbG93TnVtZXJpY0tleXNfOworfTsKKworfSAvLyBuYW1l
c3BhY2UgSnNvbgorCisjZW5kaWYgLy8gQ1BQVExfSlNPTl9GRUFUVVJFU19IX0lOQ0xVREVECisK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNv
bi9mZWF0dXJlcy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmFsdWUu
aAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExl
cGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21h
aW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisv
LyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5z
b3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fSF9JTkNMVURFRAor
I2RlZmluZSBDUFBUTF9KU09OX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1B
TEdBTUFUSU9OKQorI2luY2x1ZGUgImZvcndhcmRzLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQo
SlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rv
cj4KKyNpbmNsdWRlIDxleGNlcHRpb24+CisKKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExN
QVAKKyNpbmNsdWRlIDxtYXA+CisjZWxzZQorI2luY2x1ZGUgPGNwcHRsL3NtYWxsbWFwLmg+Cisj
ZW5kaWYKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2ZvcndhcmRzLmg+
CisjZW5kaWYKKworLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0YSBtZW1iZXI+OiA8dHlw
ZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1c2VkIGJ5Li4uCisjaWYg
ZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3
YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQyNTEpCisjZW5kaWYgLy8g
aWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisvKiog
XGJyaWVmIEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKS4KKyAqLworbmFtZXNwYWNl
IEpzb24geworCisvKiogQmFzZSBjbGFzcyBmb3IgYWxsIGV4Y2VwdGlvbnMgd2UgdGhyb3cuCisg
KgorICogV2UgdXNlIG5vdGhpbmcgYnV0IHRoZXNlIGludGVybmFsbHkuIE9mIGNvdXJzZSwgU1RM
IGNhbiB0aHJvdyBvdGhlcnMuCisgKi8KK2NsYXNzIEpTT05fQVBJIEV4Y2VwdGlvbiA6IHB1Ymxp
YyBzdGQ6OmV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIEV4Y2VwdGlvbihzdGQ6OnN0cmluZyBjb25z
dCYgbXNnKTsKKyAgfkV4Y2VwdGlvbigpIHRocm93KCk7CisgIGNoYXIgY29uc3QqIHdoYXQoKSBj
b25zdCB0aHJvdygpOworcHJvdGVjdGVkOgorICBzdGQ6OnN0cmluZyBtc2dfOworfTsKKworLyoq
IEV4Y2VwdGlvbnMgd2hpY2ggdGhlIHVzZXIgY2Fubm90IGVhc2lseSBhdm9pZC4KKyAqCisgKiBF
LmcuIG91dC1vZi1tZW1vcnkgKHdoZW4gd2UgdXNlIG1hbGxvYyksIHN0YWNrLW92ZXJmbG93LCBt
YWxpY2lvdXMgaW5wdXQKKyAqIAorICogXHJlbWFyayBkZXJpdmVkIGZyb20gSnNvbjo6RXhjZXB0
aW9uCisgKi8KK2NsYXNzIEpTT05fQVBJIFJ1bnRpbWVFcnJvciA6IHB1YmxpYyBFeGNlcHRpb24g
eworcHVibGljOgorICBSdW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Cit9Owor
CisvKiogRXhjZXB0aW9ucyB0aHJvd24gYnkgSlNPTl9BU1NFUlQvSlNPTl9GQUlMIG1hY3Jvcy4K
KyAqCisgKiBUaGVzZSBhcmUgcHJlY29uZGl0aW9uLXZpb2xhdGlvbnMgKHVzZXIgYnVncykgYW5k
IGludGVybmFsIGVycm9ycyAob3VyIGJ1Z3MpLgorICogCisgKiBccmVtYXJrIGRlcml2ZWQgZnJv
bSBKc29uOjpFeGNlcHRpb24KKyAqLworY2xhc3MgSlNPTl9BUEkgTG9naWNFcnJvciA6IHB1Ymxp
YyBFeGNlcHRpb24geworcHVibGljOgorICBMb2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBt
c2cpOworfTsKKworLy8vIHVzZWQgaW50ZXJuYWxseQordm9pZCB0aHJvd1J1bnRpbWVFcnJvcihz
dGQ6OnN0cmluZyBjb25zdCYgbXNnKTsKKy8vLyB1c2VkIGludGVybmFsbHkKK3ZvaWQgdGhyb3dM
b2dpY0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworCisvKiogXGJyaWVmIFR5cGUgb2Yg
dGhlIHZhbHVlIGhlbGQgYnkgYSBWYWx1ZSBvYmplY3QuCisgKi8KK2VudW0gVmFsdWVUeXBlIHsK
KyAgbnVsbFZhbHVlID0gMCwgLy8vPCAnbnVsbCcgdmFsdWUKKyAgaW50VmFsdWUsICAgICAgLy8v
PCBzaWduZWQgaW50ZWdlciB2YWx1ZQorICB1aW50VmFsdWUsICAgICAvLy88IHVuc2lnbmVkIGlu
dGVnZXIgdmFsdWUKKyAgcmVhbFZhbHVlLCAgICAgLy8vPCBkb3VibGUgdmFsdWUKKyAgc3RyaW5n
VmFsdWUsICAgLy8vPCBVVEYtOCBzdHJpbmcgdmFsdWUKKyAgYm9vbGVhblZhbHVlLCAgLy8vPCBi
b29sIHZhbHVlCisgIGFycmF5VmFsdWUsICAgIC8vLzwgYXJyYXkgdmFsdWUgKG9yZGVyZWQgbGlz
dCkKKyAgb2JqZWN0VmFsdWUgICAgLy8vPCBvYmplY3QgdmFsdWUgKGNvbGxlY3Rpb24gb2YgbmFt
ZS92YWx1ZSBwYWlycykuCit9OworCitlbnVtIENvbW1lbnRQbGFjZW1lbnQgeworICBjb21tZW50
QmVmb3JlID0gMCwgICAgICAvLy88IGEgY29tbWVudCBwbGFjZWQgb24gdGhlIGxpbmUgYmVmb3Jl
IGEgdmFsdWUKKyAgY29tbWVudEFmdGVyT25TYW1lTGluZSwgLy8vPCBhIGNvbW1lbnQganVzdCBh
ZnRlciBhIHZhbHVlIG9uIHRoZSBzYW1lIGxpbmUKKyAgY29tbWVudEFmdGVyLCAvLy88IGEgY29t
bWVudCBvbiB0aGUgbGluZSBhZnRlciBhIHZhbHVlIChvbmx5IG1ha2Ugc2Vuc2UgZm9yCisgIC8v
LyByb290IHZhbHVlKQorICBudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnQKK307CisKKy8vIyBpZmRl
ZiBKU09OX1VTRV9DUFBUTAorLy8gICB0eXBlZGVmIENwcFRMOjpBbnlFbnVtZXJhdG9yPGNvbnN0
IGNoYXIgKj4gRW51bU1lbWJlck5hbWVzOworLy8gICB0eXBlZGVmIENwcFRMOjpBbnlFbnVtZXJh
dG9yPGNvbnN0IFZhbHVlICY+IEVudW1WYWx1ZXM7CisvLyMgZW5kaWYKKworLyoqIFxicmllZiBM
aWdodHdlaWdodCB3cmFwcGVyIHRvIHRhZyBzdGF0aWMgc3RyaW5nLgorICoKKyAqIFZhbHVlIGNv
bnN0cnVjdG9yIGFuZCBvYmplY3RWYWx1ZSBtZW1iZXIgYXNzaWduZW1lbnQgdGFrZXMgYWR2YW50
YWdlIG9mIHRoZQorICogU3RhdGljU3RyaW5nIGFuZCBhdm9pZCB0aGUgY29zdCBvZiBzdHJpbmcg
ZHVwbGljYXRpb24gd2hlbiBzdG9yaW5nIHRoZQorICogc3RyaW5nIG9yIHRoZSBtZW1iZXIgbmFt
ZS4KKyAqCisgKiBFeGFtcGxlIG9mIHVzYWdlOgorICogXGNvZGUKKyAqIEpzb246OlZhbHVlIGFW
YWx1ZSggU3RhdGljU3RyaW5nKCJzb21lIHRleHQiKSApOworICogSnNvbjo6VmFsdWUgb2JqZWN0
OworICogc3RhdGljIGNvbnN0IFN0YXRpY1N0cmluZyBjb2RlKCJjb2RlIik7CisgKiBvYmplY3Rb
Y29kZV0gPSAxMjM0OworICogXGVuZGNvZGUKKyAqLworY2xhc3MgSlNPTl9BUEkgU3RhdGljU3Ry
aW5nIHsKK3B1YmxpYzoKKyAgZXhwbGljaXQgU3RhdGljU3RyaW5nKGNvbnN0IGNoYXIqIGN6c3Ry
aW5nKSA6IGNfc3RyXyhjenN0cmluZykge30KKworICBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNv
bnN0IHsgcmV0dXJuIGNfc3RyXzsgfQorCisgIGNvbnN0IGNoYXIqIGNfc3RyKCkgY29uc3QgeyBy
ZXR1cm4gY19zdHJfOyB9CisKK3ByaXZhdGU6CisgIGNvbnN0IGNoYXIqIGNfc3RyXzsKK307CisK
Ky8qKiBcYnJpZWYgUmVwcmVzZW50cyBhIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpT
T048L2E+IHZhbHVlLgorICoKKyAqIFRoaXMgY2xhc3MgaXMgYSBkaXNjcmltaW5hdGVkIHVuaW9u
IHdyYXBwZXIgdGhhdCBjYW4gcmVwcmVzZW50cyBhOgorICogLSBzaWduZWQgaW50ZWdlciBbcmFu
Z2U6IFZhbHVlOjptaW5JbnQgLSBWYWx1ZTo6bWF4SW50XQorICogLSB1bnNpZ25lZCBpbnRlZ2Vy
IChyYW5nZTogMCAtIFZhbHVlOjptYXhVSW50KQorICogLSBkb3VibGUKKyAqIC0gVVRGLTggc3Ry
aW5nCisgKiAtIGJvb2xlYW4KKyAqIC0gJ251bGwnCisgKiAtIGFuIG9yZGVyZWQgbGlzdCBvZiBW
YWx1ZQorICogLSBjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMgKGphdmFzY3JpcHQgb2Jq
ZWN0KQorICoKKyAqIFRoZSB0eXBlIG9mIHRoZSBoZWxkIHZhbHVlIGlzIHJlcHJlc2VudGVkIGJ5
IGEgI1ZhbHVlVHlwZSBhbmQKKyAqIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0eXBlKCkuCisgKgor
ICogVmFsdWVzIG9mIGFuICNvYmplY3RWYWx1ZSBvciAjYXJyYXlWYWx1ZSBjYW4gYmUgYWNjZXNz
ZWQgdXNpbmcgb3BlcmF0b3JbXSgpCisgKiBtZXRob2RzLgorICogTm9uLWNvbnN0IG1ldGhvZHMg
d2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aGUgYSAjbnVsbFZhbHVlIGVsZW1lbnQKKyAqIGlm
IGl0IGRvZXMgbm90IGV4aXN0LgorICogVGhlIHNlcXVlbmNlIG9mIGFuICNhcnJheVZhbHVlIHdp
bGwgYmUgYXV0b21hdGljYWxseSByZXNpemVkIGFuZCBpbml0aWFsaXplZAorICogd2l0aCAjbnVs
bFZhbHVlLiByZXNpemUoKSBjYW4gYmUgdXNlZCB0byBlbmxhcmdlIG9yIHRydW5jYXRlIGFuICNh
cnJheVZhbHVlLgorICoKKyAqIFRoZSBnZXQoKSBtZXRob2RzIGNhbiBiZSB1c2VkIHRvIG9idGFp
biBkZWZhdWx0IHZhbHVlIGluIHRoZSBjYXNlIHRoZQorICogcmVxdWlyZWQgZWxlbWVudCBkb2Vz
IG5vdCBleGlzdC4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0byBpdGVyYXRlIG92ZXIgdGhlIGxp
c3Qgb2YgYSAjb2JqZWN0VmFsdWUgdmFsdWVzIHVzaW5nCisgKiB0aGUgZ2V0TWVtYmVyTmFtZXMo
KSBtZXRob2QuCisgKgorICogXG5vdGUgI1ZhbHVlIHN0cmluZy1sZW5ndGggZml0IGluIHNpemVf
dCwgYnV0IGtleXMgbXVzdCBiZSA8IDJeMzAuCisgKiAoVGhlIHJlYXNvbiBpcyBhbiBpbXBsZW1l
bnRhdGlvbiBkZXRhaWwuKSBBICNDaGFyUmVhZGVyIHdpbGwgcmFpc2UgYW4KKyAqIGV4Y2VwdGlv
biBpZiBhIGJvdW5kIGlzIGV4Y2VlZGVkIHRvIGF2b2lkIHNlY3VyaXR5IGhvbGVzIGluIHlvdXIg
YXBwLAorICogYnV0IHRoZSBWYWx1ZSBBUEkgZG9lcyAqbm90KiBjaGVjayBib3VuZHMuIFRoYXQg
aXMgdGhlIHJlc3BvbnNpYmlsaXR5CisgKiBvZiB0aGUgY2FsbGVyLgorICovCitjbGFzcyBKU09O
X0FQSSBWYWx1ZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZUl0ZXJhdG9yQmFzZTsKK3B1YmxpYzoK
KyAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gTWVtYmVyczsKKyAgdHlwZWRlZiBW
YWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yOworICB0eXBlZGVmIFZhbHVlQ29uc3RJdGVyYXRvciBjb25z
dF9pdGVyYXRvcjsKKyAgdHlwZWRlZiBKc29uOjpVSW50IFVJbnQ7CisgIHR5cGVkZWYgSnNvbjo6
SW50IEludDsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICB0eXBlZGVmIEpzb246OlVJ
bnQ2NCBVSW50NjQ7CisgIHR5cGVkZWYgSnNvbjo6SW50NjQgSW50NjQ7CisjZW5kaWYgLy8gZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKKyAgdHlwZWRlZiBKc29uOjpMYXJnZXN0SW50IExhcmdlc3RJ
bnQ7CisgIHR5cGVkZWYgSnNvbjo6TGFyZ2VzdFVJbnQgTGFyZ2VzdFVJbnQ7CisgIHR5cGVkZWYg
SnNvbjo6QXJyYXlJbmRleCBBcnJheUluZGV4OworCisgIHN0YXRpYyBjb25zdCBWYWx1ZSYgbnVs
bDsgIC8vLzwgV2UgcmVncmV0IHRoaXMgcmVmZXJlbmNlIHRvIGEgZ2xvYmFsIGluc3RhbmNlOyBw
cmVmZXIgdGhlIHNpbXBsZXIgVmFsdWUoKS4KKyAgc3RhdGljIGNvbnN0IFZhbHVlJiBudWxsUmVm
OyAgLy8vPCBqdXN0IGEga2x1ZGdlIGZvciBiaW5hcnktY29tcGF0aWJpbGl0eTsgc2FtZSBhcyBu
dWxsCisgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3Jl
ZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgTGFyZ2VzdEludCBtaW5MYXJnZXN0
SW50OworICAvLy8gTWF4aW11bSBzaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9y
ZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RJbnQgbWF4TGFyZ2Vz
dEludDsKKyAgLy8vIE1heGltdW0gdW5zaWduZWQgaW50ZWdlciB2YWx1ZSB0aGF0IGNhbiBiZSBz
dG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IExhcmdlc3RVSW50IG1heExh
cmdlc3RVSW50OworCisgIC8vLyBNaW5pbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUg
c3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQgbWluSW50OworICAv
Ly8gTWF4aW11bSBzaWduZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246
OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50IG1heEludDsKKyAgLy8vIE1heGltdW0gdW5zaWdu
ZWQgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0
aWMgY29uc3QgVUludCBtYXhVSW50OworCisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAg
Ly8vIE1pbmltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBp
biBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50NjQgbWluSW50NjQ7CisgIC8vLyBN
YXhpbXVtIHNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBK
c29uOjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IEludDY0IG1heEludDY0OworICAvLy8gTWF4aW11
bSB1bnNpZ25lZCA2NCBiaXRzIGludCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29u
OjpWYWx1ZS4KKyAgc3RhdGljIGNvbnN0IFVJbnQ2NCBtYXhVSW50NjQ7CisjZW5kaWYgLy8gZGVm
aW5lZChKU09OX0hBU19JTlQ2NCkKKworcHJpdmF0ZToKKyNpZm5kZWYgSlNPTkNQUF9ET0NfRVhD
TFVERV9JTVBMRU1FTlRBVElPTgorICBjbGFzcyBDWlN0cmluZyB7CisgIHB1YmxpYzoKKyAgICBl
bnVtIER1cGxpY2F0aW9uUG9saWN5IHsKKyAgICAgIG5vRHVwbGljYXRpb24gPSAwLAorICAgICAg
ZHVwbGljYXRlLAorICAgICAgZHVwbGljYXRlT25Db3B5CisgICAgfTsKKyAgICBDWlN0cmluZyhB
cnJheUluZGV4IGluZGV4KTsKKyAgICBDWlN0cmluZyhjaGFyIGNvbnN0KiBzdHIsIHVuc2lnbmVk
IGxlbmd0aCwgRHVwbGljYXRpb25Qb2xpY3kgYWxsb2NhdGUpOworICAgIENaU3RyaW5nKENaU3Ry
aW5nIGNvbnN0JiBvdGhlcik7CisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBD
WlN0cmluZyhDWlN0cmluZyYmIG90aGVyKTsKKyNlbmRpZgorICAgIH5DWlN0cmluZygpOworICAg
IENaU3RyaW5nJiBvcGVyYXRvcj0oQ1pTdHJpbmcgb3RoZXIpOworICAgIGJvb2wgb3BlcmF0b3I8
KENaU3RyaW5nIGNvbnN0JiBvdGhlcikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvcj09KENaU3Ry
aW5nIGNvbnN0JiBvdGhlcikgY29uc3Q7CisgICAgQXJyYXlJbmRleCBpbmRleCgpIGNvbnN0Owor
ICAgIC8vY29uc3QgY2hhciogY19zdHIoKSBjb25zdDsgLy8vPCBcZGVwcmVjYXRlZAorICAgIGNo
YXIgY29uc3QqIGRhdGEoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAg
ICBib29sIGlzU3RhdGljU3RyaW5nKCkgY29uc3Q7CisKKyAgcHJpdmF0ZToKKyAgICB2b2lkIHN3
YXAoQ1pTdHJpbmcmIG90aGVyKTsKKworICAgIHN0cnVjdCBTdHJpbmdTdG9yYWdlIHsKKyAgICAg
IHVuc2lnbmVkIHBvbGljeV86IDI7CisgICAgICB1bnNpZ25lZCBsZW5ndGhfOiAzMDsgLy8gMUdC
IG1heAorICAgIH07CisKKyAgICBjaGFyIGNvbnN0KiBjc3RyXzsgIC8vIGFjdHVhbGx5LCBhIHBy
ZWZpeGVkIHN0cmluZywgdW5sZXNzIHBvbGljeSBpcyBub0R1cAorICAgIHVuaW9uIHsKKyAgICAg
IEFycmF5SW5kZXggaW5kZXhfOworICAgICAgU3RyaW5nU3RvcmFnZSBzdG9yYWdlXzsKKyAgICB9
OworICB9OworCitwdWJsaWM6CisjaWZuZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQCisgIHR5
cGVkZWYgc3RkOjptYXA8Q1pTdHJpbmcsIFZhbHVlPiBPYmplY3RWYWx1ZXM7CisjZWxzZQorICB0
eXBlZGVmIENwcFRMOjpTbWFsbE1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVjdFZhbHVlczsKKyNl
bmRpZiAvLyBpZm5kZWYgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAKKyNlbmRpZiAvLyBpZm5kZWYg
SlNPTkNQUF9ET0NfRVhDTFVERV9JTVBMRU1FTlRBVElPTgorCitwdWJsaWM6CisgIC8qKiBcYnJp
ZWYgQ3JlYXRlIGEgZGVmYXVsdCBWYWx1ZSBvZiB0aGUgZ2l2ZW4gdHlwZS4KKworICAgIFRoaXMg
aXMgYSB2ZXJ5IHVzZWZ1bCBjb25zdHJ1Y3Rvci4KKyAgICBUbyBjcmVhdGUgYW4gZW1wdHkgYXJy
YXksIHBhc3MgYXJyYXlWYWx1ZS4KKyAgICBUbyBjcmVhdGUgYW4gZW1wdHkgb2JqZWN0LCBwYXNz
IG9iamVjdFZhbHVlLgorICAgIEFub3RoZXIgVmFsdWUgY2FuIHRoZW4gYmUgc2V0IHRvIHRoaXMg
b25lIGJ5IGFzc2lnbm1lbnQuCitUaGlzIGlzIHVzZWZ1bCBzaW5jZSBjbGVhcigpIGFuZCByZXNp
emUoKSB3aWxsIG5vdCBhbHRlciB0eXBlcy4KKworICAgIEV4YW1wbGVzOgorXGNvZGUKK0pzb246
OlZhbHVlIG51bGxfdmFsdWU7IC8vIG51bGwKK0pzb246OlZhbHVlIGFycl92YWx1ZShKc29uOjph
cnJheVZhbHVlKTsgLy8gW10KK0pzb246OlZhbHVlIG9ial92YWx1ZShKc29uOjpvYmplY3RWYWx1
ZSk7IC8vIHt9CitcZW5kY29kZQorICAqLworICBWYWx1ZShWYWx1ZVR5cGUgdHlwZSA9IG51bGxW
YWx1ZSk7CisgIFZhbHVlKEludCB2YWx1ZSk7CisgIFZhbHVlKFVJbnQgdmFsdWUpOworI2lmIGRl
ZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIFZhbHVlKEludDY0IHZhbHVlKTsKKyAgVmFsdWUoVUlu
dDY0IHZhbHVlKTsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICBWYWx1
ZShkb3VibGUgdmFsdWUpOworICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSk7IC8vLzwgQ29weSB0
aWwgZmlyc3QgMC4gKE5VTEwgY2F1c2VzIHRvIHNlZy1mYXVsdC4pCisgIFZhbHVlKGNvbnN0IGNo
YXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpOyAvLy88IENvcHkgYWxsLCBpbmNsIHplcm9lcy4K
KyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgdmFsdWUgZnJvbSBhIHN0YXRpYyBzdHJpbmcuCisK
KyAgICogTGlrZSBvdGhlciB2YWx1ZSBzdHJpbmcgY29uc3RydWN0b3IgYnV0IGRvIG5vdCBkdXBs
aWNhdGUgdGhlIHN0cmluZyBmb3IKKyAgICogaW50ZXJuYWwgc3RvcmFnZS4gVGhlIGdpdmVuIHN0
cmluZyBtdXN0IHJlbWFpbiBhbGl2ZSBhZnRlciB0aGUgY2FsbCB0byB0aGlzCisgICAqIGNvbnN0
cnVjdG9yLgorICAgKiBcbm90ZSBUaGlzIHdvcmtzIG9ubHkgZm9yIG51bGwtdGVybWluYXRlZCBz
dHJpbmdzLiAoV2UgY2Fubm90IGNoYW5nZSB0aGUKKyAgICogICBzaXplIG9mIHRoaXMgY2xhc3Ms
IHNvIHdlIGhhdmUgbm93aGVyZSB0byBzdG9yZSB0aGUgbGVuZ3RoLAorICAgKiAgIHdoaWNoIG1p
Z2h0IGJlIGNvbXB1dGVkIGxhdGVyIGZvciB2YXJpb3VzIG9wZXJhdGlvbnMuKQorICAgKgorICAg
KiBFeGFtcGxlIG9mIHVzYWdlOgorICAgKiBcY29kZQorICAgKiBzdGF0aWMgU3RhdGljU3RyaW5n
IGZvbygic29tZSB0ZXh0Iik7CisgICAqIEpzb246OlZhbHVlIGFWYWx1ZShmb28pOworICAgKiBc
ZW5kY29kZQorICAgKi8KKyAgVmFsdWUoY29uc3QgU3RhdGljU3RyaW5nJiB2YWx1ZSk7CisgIFZh
bHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7IC8vLzwgQ29weSBkYXRhKCkgdGlsIHNpemUo
KS4gRW1iZWRkZWQgemVyb2VzIHRvby4KKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICBWYWx1ZShj
b25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIHZhbHVlKTsKKyNlbmRpZgorICBWYWx1ZShib29sIHZh
bHVlKTsKKyAgLy8vIERlZXAgY29weS4KKyAgVmFsdWUoY29uc3QgVmFsdWUmIG90aGVyKTsKKyNp
ZiBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUworICAvLy8gTW92ZSBjb25zdHJ1Y3RvcgorICBW
YWx1ZShWYWx1ZSYmIG90aGVyKTsKKyNlbmRpZgorICB+VmFsdWUoKTsKKworICAvLy8gRGVlcCBj
b3B5LCB0aGVuIHN3YXAob3RoZXIpLgorICAvLy8gXG5vdGUgT3Zlci13cml0ZSBleGlzdGluZyBj
b21tZW50cy4gVG8gcHJlc2VydmUgY29tbWVudHMsIHVzZSAjc3dhcFBheWxvYWQoKS4KKyAgVmFs
dWUmIG9wZXJhdG9yPShWYWx1ZSBvdGhlcik7CisgIC8vLyBTd2FwIGV2ZXJ5dGhpbmcuCisgIHZv
aWQgc3dhcChWYWx1ZSYgb3RoZXIpOworICAvLy8gU3dhcCB2YWx1ZXMgYnV0IGxlYXZlIGNvbW1l
bnRzIGFuZCBzb3VyY2Ugb2Zmc2V0cyBpbiBwbGFjZS4KKyAgdm9pZCBzd2FwUGF5bG9hZChWYWx1
ZSYgb3RoZXIpOworCisgIFZhbHVlVHlwZSB0eXBlKCkgY29uc3Q7CisKKyAgLy8vIENvbXBhcmUg
cGF5bG9hZCBvbmx5LCBub3QgY29tbWVudHMgZXRjLgorICBib29sIG9wZXJhdG9yPChjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPD0oY29uc3QgVmFsdWUmIG90aGVy
KSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcj49KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7Cisg
IGJvb2wgb3BlcmF0b3I+KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
VmFsdWUmIG90aGVyKSBjb25zdDsKKyAgaW50IGNvbXBhcmUoY29uc3QgVmFsdWUmIG90aGVyKSBj
b25zdDsKKworICBjb25zdCBjaGFyKiBhc0NTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6
ZXJvZXMgY291bGQgY2F1c2UgeW91IHRyb3VibGUhCisgIHN0ZDo6c3RyaW5nIGFzU3RyaW5nKCkg
Y29uc3Q7IC8vLzwgRW1iZWRkZWQgemVyb2VzIGFyZSBwb3NzaWJsZS4KKyAgLyoqIEdldCByYXcg
Y2hhciogb2Ygc3RyaW5nLXZhbHVlLgorICAgKiAgXHJldHVybiBmYWxzZSBpZiAhc3RyaW5nLiAo
U2VnLWZhdWx0IGlmIHN0ciBvciBlbmQgYXJlIE5VTEwuKQorICAgKi8KKyAgYm9vbCBnZXRTdHJp
bmcoCisgICAgICBjaGFyIGNvbnN0KiogYmVnaW4sIGNoYXIgY29uc3QqKiBlbmQpIGNvbnN0Owor
I2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIENwcFRMOjpDb25zdFN0cmluZyBhc0NvbnN0U3RyaW5n
KCkgY29uc3Q7CisjZW5kaWYKKyAgSW50IGFzSW50KCkgY29uc3Q7CisgIFVJbnQgYXNVSW50KCkg
Y29uc3Q7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgSW50NjQgYXNJbnQ2NCgpIGNv
bnN0OworICBVSW50NjQgYXNVSW50NjQoKSBjb25zdDsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpT
T05fSEFTX0lOVDY0KQorICBMYXJnZXN0SW50IGFzTGFyZ2VzdEludCgpIGNvbnN0OworICBMYXJn
ZXN0VUludCBhc0xhcmdlc3RVSW50KCkgY29uc3Q7CisgIGZsb2F0IGFzRmxvYXQoKSBjb25zdDsK
KyAgZG91YmxlIGFzRG91YmxlKCkgY29uc3Q7CisgIGJvb2wgYXNCb29sKCkgY29uc3Q7CisKKyAg
Ym9vbCBpc051bGwoKSBjb25zdDsKKyAgYm9vbCBpc0Jvb2woKSBjb25zdDsKKyAgYm9vbCBpc0lu
dCgpIGNvbnN0OworICBib29sIGlzSW50NjQoKSBjb25zdDsKKyAgYm9vbCBpc1VJbnQoKSBjb25z
dDsKKyAgYm9vbCBpc1VJbnQ2NCgpIGNvbnN0OworICBib29sIGlzSW50ZWdyYWwoKSBjb25zdDsK
KyAgYm9vbCBpc0RvdWJsZSgpIGNvbnN0OworICBib29sIGlzTnVtZXJpYygpIGNvbnN0OworICBi
b29sIGlzU3RyaW5nKCkgY29uc3Q7CisgIGJvb2wgaXNBcnJheSgpIGNvbnN0OworICBib29sIGlz
T2JqZWN0KCkgY29uc3Q7CisKKyAgYm9vbCBpc0NvbnZlcnRpYmxlVG8oVmFsdWVUeXBlIG90aGVy
KSBjb25zdDsKKworICAvLy8gTnVtYmVyIG9mIHZhbHVlcyBpbiBhcnJheSBvciBvYmplY3QKKyAg
QXJyYXlJbmRleCBzaXplKCkgY29uc3Q7CisKKyAgLy8vIFxicmllZiBSZXR1cm4gdHJ1ZSBpZiBl
bXB0eSBhcnJheSwgZW1wdHkgb2JqZWN0LCBvciBudWxsOworICAvLy8gb3RoZXJ3aXNlLCBmYWxz
ZS4KKyAgYm9vbCBlbXB0eSgpIGNvbnN0OworCisgIC8vLyBSZXR1cm4gaXNOdWxsKCkKKyAgYm9v
bCBvcGVyYXRvciEoKSBjb25zdDsKKworICAvLy8gUmVtb3ZlIGFsbCBvYmplY3QgbWVtYmVycyBh
bmQgYXJyYXkgZWxlbWVudHMuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlLCBvYmpl
Y3RWYWx1ZSwgb3IgbnVsbFZhbHVlCisgIC8vLyBccG9zdCB0eXBlKCkgaXMgdW5jaGFuZ2VkCisg
IHZvaWQgY2xlYXIoKTsKKworICAvLy8gUmVzaXplIHRoZSBhcnJheSB0byBzaXplIGVsZW1lbnRz
LgorICAvLy8gTmV3IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZCB0byBudWxsLgorICAvLy8gTWF5
IG9ubHkgYmUgY2FsbGVkIG9uIG51bGxWYWx1ZSBvciBhcnJheVZhbHVlLgorICAvLy8gXHByZSB0
eXBlKCkgaXMgYXJyYXlWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5cGUoKSBpcyBh
cnJheVZhbHVlCisgIHZvaWQgcmVzaXplKEFycmF5SW5kZXggc2l6ZSk7CisKKyAgLy8vIEFjY2Vz
cyBhbiBhcnJheSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkuCisgIC8vLyBJZiB0aGUgYXJy
YXkgY29udGFpbnMgbGVzcyB0aGFuIGluZGV4IGVsZW1lbnQsIHRoZW4gbnVsbCB2YWx1ZSBhcmUK
KyAgLy8vIGluc2VydGVkCisgIC8vLyBpbiB0aGUgYXJyYXkgc28gdGhhdCBpdHMgc2l6ZSBpcyBp
bmRleCsxLgorICAvLy8gKFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlv
dXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9y
W10gd2hpY2ggdGFrZXMgYSBzdHJpbmcuKQorICBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4
IGluZGV4KTsKKworICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5k
ZXggKS4KKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVu
dCwgdGhlbiBudWxsIHZhbHVlIGFyZQorICAvLy8gaW5zZXJ0ZWQKKyAgLy8vIGluIHRoZSBhcnJh
eSBzbyB0aGF0IGl0cyBzaXplIGlzIGluZGV4KzEuCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNh
eSAndmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8g
IHRoaXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIFZhbHVl
JiBvcGVyYXRvcltdKGludCBpbmRleCk7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJheSBlbGVtZW50
ICh6ZXJvIGJhc2VkIGluZGV4ICkKKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVsw
dV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9t
IHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgY29uc3QgVmFsdWUmIG9w
ZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCkgY29uc3Q7CisKKyAgLy8vIEFjY2VzcyBhbiBhcnJh
eSBlbGVtZW50ICh6ZXJvIGJhc2VkIGluZGV4ICkKKyAgLy8vIChZb3UgbWF5IG5lZWQgdG8gc2F5
ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRvIGRpc3Rpbmd1aXNoCisgIC8vLyAg
dGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2VzIGEgc3RyaW5nLikKKyAgY29uc3Qg
VmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KSBjb25zdDsKKworICAvLy8gSWYgdGhlIGFycmF5
IGNvbnRhaW5zIGF0IGxlYXN0IGluZGV4KzEgZWxlbWVudHMsIHJldHVybnMgdGhlIGVsZW1lbnQK
KyAgLy8vIHZhbHVlLAorICAvLy8gb3RoZXJ3aXNlIHJldHVybnMgZGVmYXVsdFZhbHVlLgorICBW
YWx1ZSBnZXQoQXJyYXlJbmRleCBpbmRleCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29u
c3Q7CisgIC8vLyBSZXR1cm4gdHJ1ZSBpZiBpbmRleCA8IHNpemUoKS4KKyAgYm9vbCBpc1ZhbGlk
SW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3Q7CisgIC8vLyBcYnJpZWYgQXBwZW5kIHZhbHVl
IHRvIGFycmF5IGF0IHRoZSBlbmQuCisgIC8vLworICAvLy8gRXF1aXZhbGVudCB0byBqc29udmFs
dWVbanNvbnZhbHVlLnNpemUoKV0gPSB2YWx1ZTsKKyAgVmFsdWUmIGFwcGVuZChjb25zdCBWYWx1
ZSYgdmFsdWUpOworCisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0
ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorICAvLy8gXG5vdGUgQmVjYXVz
ZSBvZiBvdXIgaW1wbGVtZW50YXRpb24sIGtleXMgYXJlIGxpbWl0ZWQgdG8gMl4zMCAtMSBjaGFy
cy4KKyAgLy8vICBFeGNlZWRpbmcgdGhhdCB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbi4KKyAgVmFs
dWUmIG9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCisg
IC8vLyB0aGF0IG5hbWUuCisgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IGNoYXIqIGtl
eSkgY29uc3Q7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBh
IG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorICAvLy8gXHBhcmFtIGtleSBtYXkg
Y29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgVmFsdWUmIG9wZXJhdG9yW10oY29uc3Qgc3RkOjpz
dHJpbmcmIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVy
bnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgorICAv
Ly8gXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAgY29uc3QgVmFsdWUm
IG9wZXJhdG9yW10oY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7CisgIC8qKiBcYnJpZWYg
QWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBp
dCBkb2VzIG5vdAorICAgZXhpc3QuCisKKyAgICogSWYgdGhlIG9iamVjdCBoYXMgbm8gZW50cnkg
Zm9yIHRoYXQgbmFtZSwgdGhlbiB0aGUgbWVtYmVyIG5hbWUgdXNlZCB0byBzdG9yZQorICAgKiB0
aGUgbmV3IGVudHJ5IGlzIG5vdCBkdXBsaWNhdGVkLgorICAgKiBFeGFtcGxlIG9mIHVzZToKKyAg
ICogXGNvZGUKKyAgICogSnNvbjo6VmFsdWUgb2JqZWN0OworICAgKiBzdGF0aWMgY29uc3QgU3Rh
dGljU3RyaW5nIGNvZGUoImNvZGUiKTsKKyAgICogb2JqZWN0W2NvZGVdID0gMTIzNDsKKyAgICog
XGVuZGNvZGUKKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKGNvbnN0IFN0YXRpY1N0cmluZyYg
a2V5KTsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorICAvLy8gQWNjZXNzIGFuIG9iamVjdCB2YWx1
ZSBieSBuYW1lLCBjcmVhdGUgYSBudWxsIG1lbWJlciBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAg
VmFsdWUmIG9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpOworICAvLy8g
QWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMg
bm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3QgVmFsdWUmIG9wZXJhdG9y
W10oY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXkpIGNvbnN0OworI2VuZGlmCisgIC8vLyBS
ZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhl
cndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgVmFsdWUgZ2V0KGNvbnN0IGNoYXIqIGtl
eSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBSZXR1cm4gdGhlIG1l
bWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBvdGhlcndpc2UuCisgIC8v
LyBcbm90ZSBkZWVwIGNvcHkKKyAgLy8vIFxub3RlIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBu
dWxscy4KKyAgVmFsdWUgZ2V0KGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQsIGNv
bnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIg
bmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5v
dGUgZGVlcCBjb3B5CisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxz
LgorICBWYWx1ZSBnZXQoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1
bHRWYWx1ZSkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8vIFJldHVybiB0aGUg
bWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAg
Ly8vIFxub3RlIGRlZXAgY29weQorICBWYWx1ZSBnZXQoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5n
JiBrZXksIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0OworI2VuZGlmCisgIC8vLyBN
b3N0IGdlbmVyYWwgYW5kIGVmZmljaWVudCB2ZXJzaW9uIG9mIGlzTWVtYmVyKCljb25zdCwgZ2V0
KCljb25zdCwKKyAgLy8vIGFuZCBvcGVyYXRvcltdY29uc3QKKyAgLy8vIFxub3RlIEFzIHN0YXRl
ZCBlbHNld2hlcmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMw
CisgIFZhbHVlIGNvbnN0KiBmaW5kKGNoYXIgY29uc3QqIGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQp
IGNvbnN0OworICAvLy8gTW9zdCBnZW5lcmFsIGFuZCBlZmZpY2llbnQgdmVyc2lvbiBvZiBvYmpl
Y3QtbXV0YXRvcnMuCisgIC8vLyBcbm90ZSBBcyBzdGF0ZWQgZWxzZXdoZXJlLCBiZWhhdmlvciBp
cyB1bmRlZmluZWQgaWYgKGVuZC1iZWdpbikgPj0gMl4zMAorICAvLy8gXHJldHVybiBub24temVy
bywgYnV0IEpTT05fQVNTRVJUIGlmIHRoaXMgaXMgbmVpdGhlciBvYmplY3Qgbm9yIG51bGxWYWx1
ZS4KKyAgVmFsdWUgY29uc3QqIGRlbWFuZChjaGFyIGNvbnN0KiBiZWdpbiwgY2hhciBjb25zdCog
ZW5kKTsKKyAgLy8vIFxicmllZiBSZW1vdmUgYW5kIHJldHVybiB0aGUgbmFtZWQgbWVtYmVyLgor
ICAvLy8KKyAgLy8vIERvIG5vdGhpbmcgaWYgaXQgZGlkIG5vdCBleGlzdC4KKyAgLy8vIFxyZXR1
cm4gdGhlIHJlbW92ZWQgVmFsdWUsIG9yIG51bGwuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBvYmpl
Y3RWYWx1ZSBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5cGUoKSBpcyB1bmNoYW5nZWQKKyAg
Ly8vIFxkZXByZWNhdGVkCisgIFZhbHVlIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXkpOwor
ICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoY29uc3QgY2hhciopCisgIC8vLyBccGFyYW0ga2V5
IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICAvLy8gXGRlcHJlY2F0ZWQKKyAgVmFsdWUg
cmVtb3ZlTWVtYmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpOworICAvLy8gU2FtZSBhcyByZW1v
dmVNZW1iZXIoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92
ZWQpLAorICAvLy8gYnV0ICdrZXknIGlzIG51bGwtdGVybWluYXRlZC4KKyAgYm9vbCByZW1vdmVN
ZW1iZXIoY29uc3QgY2hhcioga2V5LCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8qKiBcYnJpZWYgUmVt
b3ZlIHRoZSBuYW1lZCBtYXAgbWVtYmVyLgorCisgICAgICBVcGRhdGUgJ3JlbW92ZWQnIGlmZiBy
ZW1vdmVkLgorICAgICAgXHBhcmFtIGtleSBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxscy4KKyAg
ICAgIFxyZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKKyAgKi8KKyAgYm9v
bCByZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSwgVmFsdWUqIHJlbW92ZWQpOwor
ICAvLy8gU2FtZSBhcyByZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSwgVmFsdWUq
IHJlbW92ZWQpCisgIGJvb2wgcmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBj
aGFyKiBlbmQsIFZhbHVlKiByZW1vdmVkKTsKKyAgLyoqIFxicmllZiBSZW1vdmUgdGhlIGluZGV4
ZWQgYXJyYXkgZWxlbWVudC4KKworICAgICAgTyhuKSBleHBlbnNpdmUgb3BlcmF0aW9ucy4KKyAg
ICAgIFVwZGF0ZSAncmVtb3ZlZCcgaWZmIHJlbW92ZWQuCisgICAgICBccmV0dXJuIHRydWUgaWZm
IHJlbW92ZWQgKG5vIGV4Y2VwdGlvbnMpCisgICovCisgIGJvb2wgcmVtb3ZlSW5kZXgoQXJyYXlJ
bmRleCBpLCBWYWx1ZSogcmVtb3ZlZCk7CisKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmpl
Y3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtleS4KKyAgLy8vIFxub3RlICdrZXknIG11c3QgYmUgbnVs
bC10ZXJtaW5hdGVkLgorICBib29sIGlzTWVtYmVyKGNvbnN0IGNoYXIqIGtleSkgY29uc3Q7Cisg
IC8vLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIG1lbWJlciBuYW1lZCBrZXkuCisg
IC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBib29sIGlzTWVt
YmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpIGNvbnN0OworICAvLy8gU2FtZSBhcyBpc01lbWJl
cihzdGQ6OnN0cmluZyBjb25zdCYga2V5KWNvbnN0CisgIGJvb2wgaXNNZW1iZXIoY29uc3QgY2hh
ciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwK
KyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgbWVtYmVyIG5hbWVkIGtleS4K
KyAgYm9vbCBpc01lbWJlcihjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29uc3Q7Cisj
ZW5kaWYKKworICAvLy8gXGJyaWVmIFJldHVybiBhIGxpc3Qgb2YgdGhlIG1lbWJlciBuYW1lcy4K
KyAgLy8vCisgIC8vLyBJZiBudWxsLCByZXR1cm4gYW4gZW1wdHkgbGlzdC4KKyAgLy8vIFxwcmUg
dHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQorICAvLy8gXHBvc3QgaWYgdHlwZSgp
IHdhcyBudWxsVmFsdWUsIGl0IHJlbWFpbnMgbnVsbFZhbHVlCisgIE1lbWJlcnMgZ2V0TWVtYmVy
TmFtZXMoKSBjb25zdDsKKworICAvLyMgaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgLy8gICAgICBF
bnVtTWVtYmVyTmFtZXMgZW51bU1lbWJlck5hbWVzKCkgY29uc3Q7CisgIC8vICAgICAgRW51bVZh
bHVlcyBlbnVtVmFsdWVzKCkgY29uc3Q7CisgIC8vIyBlbmRpZgorCisgIC8vLyBcZGVwcmVjYXRl
ZCBBbHdheXMgcGFzcyBsZW4uCisgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIHNldENvbW1lbnQo
c3RkOjpzdHJpbmcgY29uc3QmKSBpbnN0ZWFkLiIpCisgIHZvaWQgc2V0Q29tbWVudChjb25zdCBj
aGFyKiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCk7CisgIC8vLyBDb21tZW50
cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAqLworICB2b2lkIHNldENvbW1lbnQoY29uc3QgY2hh
ciogY29tbWVudCwgc2l6ZV90IGxlbiwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICAv
Ly8gQ29tbWVudHMgbXVzdCBiZSAvLy4uLiBvciAvKiAuLi4gKi8KKyAgdm9pZCBzZXRDb21tZW50
KGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCk7
CisgIGJvb2wgaGFzQ29tbWVudChDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgY29uc3Q7Cisg
IC8vLyBJbmNsdWRlIGRlbGltaXRlcnMgYW5kIGVtYmVkZGVkIG5ld2xpbmVzLgorICBzdGQ6OnN0
cmluZyBnZXRDb21tZW50KENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSBjb25zdDsKKworICBz
dGQ6OnN0cmluZyB0b1N0eWxlZFN0cmluZygpIGNvbnN0OworCisgIGNvbnN0X2l0ZXJhdG9yIGJl
Z2luKCkgY29uc3Q7CisgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0OworCisgIGl0ZXJhdG9y
IGJlZ2luKCk7CisgIGl0ZXJhdG9yIGVuZCgpOworCisgIC8vIEFjY2Vzc29ycyBmb3IgdGhlIFtz
dGFydCwgbGltaXQpIHJhbmdlIG9mIGJ5dGVzIHdpdGhpbiB0aGUgSlNPTiB0ZXh0IGZyb20KKyAg
Ly8gd2hpY2ggdGhpcyB2YWx1ZSB3YXMgcGFyc2VkLCBpZiBhbnkuCisgIHZvaWQgc2V0T2Zmc2V0
U3RhcnQoc2l6ZV90IHN0YXJ0KTsKKyAgdm9pZCBzZXRPZmZzZXRMaW1pdChzaXplX3QgbGltaXQp
OworICBzaXplX3QgZ2V0T2Zmc2V0U3RhcnQoKSBjb25zdDsKKyAgc2l6ZV90IGdldE9mZnNldExp
bWl0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIHZvaWQgaW5pdEJhc2ljKFZhbHVlVHlwZSB0eXBl
LCBib29sIGFsbG9jYXRlZCA9IGZhbHNlKTsKKworICBWYWx1ZSYgcmVzb2x2ZVJlZmVyZW5jZShj
b25zdCBjaGFyKiBrZXkpOworICBWYWx1ZSYgcmVzb2x2ZVJlZmVyZW5jZShjb25zdCBjaGFyKiBr
ZXksIGNvbnN0IGNoYXIqIGVuZCk7CisKKyAgc3RydWN0IENvbW1lbnRJbmZvIHsKKyAgICBDb21t
ZW50SW5mbygpOworICAgIH5Db21tZW50SW5mbygpOworCisgICAgdm9pZCBzZXRDb21tZW50KGNv
bnN0IGNoYXIqIHRleHQsIHNpemVfdCBsZW4pOworCisgICAgY2hhciogY29tbWVudF87CisgIH07
CisKKyAgLy8gc3RydWN0IE1lbWJlck5hbWVzVHJhbnNmb3JtCisgIC8veworICAvLyAgIHR5cGVk
ZWYgY29uc3QgY2hhciAqcmVzdWx0X3R5cGU7CisgIC8vICAgY29uc3QgY2hhciAqb3BlcmF0b3Io
KSggY29uc3QgQ1pTdHJpbmcgJm5hbWUgKSBjb25zdAorICAvLyAgIHsKKyAgLy8gICAgICByZXR1
cm4gbmFtZS5jX3N0cigpOworICAvLyAgIH0KKyAgLy99OworCisgIHVuaW9uIFZhbHVlSG9sZGVy
IHsKKyAgICBMYXJnZXN0SW50IGludF87CisgICAgTGFyZ2VzdFVJbnQgdWludF87CisgICAgZG91
YmxlIHJlYWxfOworICAgIGJvb2wgYm9vbF87CisgICAgY2hhciogc3RyaW5nXzsgIC8vIGFjdHVh
bGx5IHB0ciB0byB1bnNpZ25lZCwgZm9sbG93ZWQgYnkgc3RyLCB1bmxlc3MgIWFsbG9jYXRlZF8K
KyAgICBPYmplY3RWYWx1ZXMqIG1hcF87CisgIH0gdmFsdWVfOworICBWYWx1ZVR5cGUgdHlwZV8g
OiA4OworICB1bnNpZ25lZCBpbnQgYWxsb2NhdGVkXyA6IDE7IC8vIE5vdGVzOiBpZiBkZWNsYXJl
ZCBhcyBib29sLCBiaXRmaWVsZCBpcyB1c2VsZXNzLgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIElmIG5vdCBhbGxvY2F0ZWRfLCBzdHJpbmdfIG11c3QgYmUgbnVsbC10ZXJtaW5h
dGVkLgorICBDb21tZW50SW5mbyogY29tbWVudHNfOworICBWYWx1ZSAqZGVmYXVsdF92YWx1ZV87
ICAvLyBpZiB2aWEgLmdldCggImtleSIsIGRlZmF1bHQgKSwgdGhpcyB3YXMgdGhlIGRlZmF1bHQK
KworICAvLyBbc3RhcnQsIGxpbWl0KSBieXRlIG9mZnNldHMgaW4gdGhlIHNvdXJjZSBKU09OIHRl
eHQgZnJvbSB3aGljaCB0aGlzIFZhbHVlCisgIC8vIHdhcyBleHRyYWN0ZWQuCisgIHNpemVfdCBz
dGFydF87CisgIHNpemVfdCBsaW1pdF87Cit9OworCisvKiogXGJyaWVmIEV4cGVyaW1lbnRhbCBh
bmQgdW50ZXN0ZWQ6IHJlcHJlc2VudHMgYW4gZWxlbWVudCBvZiB0aGUgInBhdGgiIHRvCisgKiBh
Y2Nlc3MgYSBub2RlLgorICovCitjbGFzcyBKU09OX0FQSSBQYXRoQXJndW1lbnQgeworcHVibGlj
OgorICBmcmllbmQgY2xhc3MgUGF0aDsKKworICBQYXRoQXJndW1lbnQoKTsKKyAgUGF0aEFyZ3Vt
ZW50KEFycmF5SW5kZXggaW5kZXgpOworICBQYXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KTsK
KyAgUGF0aEFyZ3VtZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpOworCitwcml2YXRlOgorICBl
bnVtIEtpbmQgeworICAgIGtpbmROb25lID0gMCwKKyAgICBraW5kSW5kZXgsCisgICAga2luZEtl
eQorICB9OworICBzdGQ6OnN0cmluZyBrZXlfOworICBBcnJheUluZGV4IGluZGV4XzsKKyAgS2lu
ZCBraW5kXzsKK307CisKKy8qKiBcYnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVw
cmVzZW50cyBhICJwYXRoIiB0byBhY2Nlc3MgYSBub2RlLgorICoKKyAqIFN5bnRheDoKKyAqIC0g
Ii4iID0+IHJvb3Qgbm9kZQorICogLSAiLltuXSIgPT4gZWxlbWVudHMgYXQgaW5kZXggJ24nIG9m
IHJvb3Qgbm9kZSAoYW4gYXJyYXkgdmFsdWUpCisgKiAtICIubmFtZSIgPT4gbWVtYmVyIG5hbWVk
ICduYW1lJyBvZiByb290IG5vZGUgKGFuIG9iamVjdCB2YWx1ZSkKKyAqIC0gIi5uYW1lMS5uYW1l
Mi5uYW1lMyIKKyAqIC0gIi5bMF1bMV1bMl0ubmFtZTFbM10iCisgKiAtICIuJSIgPT4gbWVtYmVy
IG5hbWUgaXMgcHJvdmlkZWQgYXMgcGFyYW1ldGVyCisgKiAtICIuWyVdIiA9PiBpbmRleCBpcyBw
cm92aWVkIGFzIHBhcmFtZXRlcgorICovCitjbGFzcyBKU09OX0FQSSBQYXRoIHsKK3B1YmxpYzoK
KyAgUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKKyAgICAgICBjb25zdCBQYXRoQXJndW1l
bnQmIGExID0gUGF0aEFyZ3VtZW50KCksCisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMiA9
IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTMgPSBQYXRoQXJn
dW1lbnQoKSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE0ID0gUGF0aEFyZ3VtZW50KCks
CisgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNSA9IFBhdGhBcmd1bWVudCgpKTsKKworICBj
b25zdCBWYWx1ZSYgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCkgY29uc3Q7CisgIFZhbHVlIHJl
c29sdmUoY29uc3QgVmFsdWUmIHJvb3QsIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0
OworICAvLy8gQ3JlYXRlcyB0aGUgInBhdGgiIHRvIGFjY2VzcyB0aGUgc3BlY2lmaWVkIG5vZGUg
YW5kIHJldHVybnMgYSByZWZlcmVuY2Ugb24KKyAgLy8vIHRoZSBub2RlLgorICBWYWx1ZSYgbWFr
ZShWYWx1ZSYgcm9vdCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8
Y29uc3QgUGF0aEFyZ3VtZW50Kj4gSW5BcmdzOworICB0eXBlZGVmIHN0ZDo6dmVjdG9yPFBhdGhB
cmd1bWVudD4gQXJnczsKKworICB2b2lkIG1ha2VQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRo
LCBjb25zdCBJbkFyZ3MmIGluKTsKKyAgdm9pZCBhZGRQYXRoSW5BcmcoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGgsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyYgaW4sCisgICAgICAg
ICAgICAgICAgICAgIEluQXJnczo6Y29uc3RfaXRlcmF0b3ImIGl0SW5BcmcsCisgICAgICAgICAg
ICAgICAgICAgIFBhdGhBcmd1bWVudDo6S2luZCBraW5kKTsKKyAgdm9pZCBpbnZhbGlkUGF0aChj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aCwgaW50IGxvY2F0aW9uKTsKKworICBBcmdzIGFyZ3NfOwor
fTsKKworLyoqIFxicmllZiBiYXNlIGNsYXNzIGZvciBWYWx1ZSBpdGVyYXRvcnMuCisgKgorICov
CitjbGFzcyBKU09OX0FQSSBWYWx1ZUl0ZXJhdG9yQmFzZSB7CitwdWJsaWM6CisgIHR5cGVkZWYg
c3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9yX3RhZyBpdGVyYXRvcl9jYXRlZ29yeTsKKyAgdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OworICB0eXBlZGVmIGludCBkaWZmZXJlbmNlX3R5cGU7
CisgIHR5cGVkZWYgVmFsdWVJdGVyYXRvckJhc2UgU2VsZlR5cGU7CisKKyAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gaXNFcXVhbChvdGhlcik7
IH0KKworICBib29sIG9wZXJhdG9yIT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiAhaXNFcXVhbChvdGhlcik7IH0KKworICBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3ItKGNv
bnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeworICAgIHJldHVybiBvdGhlci5jb21wdXRlRGlz
dGFuY2UoKnRoaXMpOworICB9CisKKyAgLy8vIFJldHVybiBlaXRoZXIgdGhlIGluZGV4IG9yIHRo
ZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCB2YWx1ZSBhcyBhCisgIC8vLyBWYWx1ZS4K
KyAgVmFsdWUga2V5KCkgY29uc3Q7CisKKyAgLy8vIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHJl
ZmVyZW5jZWQgVmFsdWUsIG9yIC0xIGlmIGl0IGlzIG5vdCBhbiBhcnJheVZhbHVlLgorICBVSW50
IGluZGV4KCkgY29uc3Q7CisKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJl
ZmVyZW5jZWQgVmFsdWUsIG9yICIiIGlmIGl0IGlzIG5vdCBhbgorICAvLy8gb2JqZWN0VmFsdWUu
CisgIC8vLyBcbm90ZSBBdm9pZCBgY19zdHIoKWAgb24gcmVzdWx0LCBhcyBlbWJlZGRlZCB6ZXJv
ZXMgYXJlIHBvc3NpYmxlLgorICBzdGQ6OnN0cmluZyBuYW1lKCkgY29uc3Q7CisKKyAgLy8vIFJl
dHVybiB0aGUgbWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUuICIiIGlmIGl0IGlz
IG5vdCBhbgorICAvLy8gb2JqZWN0VmFsdWUuCisgIC8vLyBcZGVwcmVjYXRlZCBUaGlzIGNhbm5v
dCBiZSB1c2VkIGZvciBVVEYtOCBzdHJpbmdzLCBzaW5jZSB0aGVyZSBjYW4gYmUgZW1iZWRkZWQg
bnVsbHMuCisgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIGBrZXkgPSBuYW1lKCk7YCBpbnN0ZWFk
LiIpCisgIGNoYXIgY29uc3QqIG1lbWJlck5hbWUoKSBjb25zdDsKKyAgLy8vIFJldHVybiB0aGUg
bWVtYmVyIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgVmFsdWUsIG9yIE5VTEwgaWYgaXQgaXMgbm90
IGFuCisgIC8vLyBvYmplY3RWYWx1ZS4KKyAgLy8vIFxub3RlIEJldHRlciB2ZXJzaW9uIHRoYW4g
bWVtYmVyTmFtZSgpLiBBbGxvd3MgZW1iZWRkZWQgbnVsbHMuCisgIGNoYXIgY29uc3QqIG1lbWJl
ck5hbWUoY2hhciBjb25zdCoqIGVuZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgVmFsdWUmIGRl
cmVmKCkgY29uc3Q7CisKKyAgdm9pZCBpbmNyZW1lbnQoKTsKKworICB2b2lkIGRlY3JlbWVudCgp
OworCisgIGRpZmZlcmVuY2VfdHlwZSBjb21wdXRlRGlzdGFuY2UoY29uc3QgU2VsZlR5cGUmIG90
aGVyKSBjb25zdDsKKworICBib29sIGlzRXF1YWwoY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25z
dDsKKworICB2b2lkIGNvcHkoY29uc3QgU2VsZlR5cGUmIG90aGVyKTsKKworcHJpdmF0ZToKKyAg
VmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgY3VycmVudF87CisgIC8vIEluZGljYXRlcyB0
aGF0IGl0ZXJhdG9yIGlzIGZvciBhIG51bGwgdmFsdWUuCisgIGJvb2wgaXNOdWxsXzsKKworcHVi
bGljOgorICAvLyBGb3Igc29tZSByZWFzb24sIEJPUkxBTkQgbmVlZHMgdGhlc2UgYXQgdGhlIGVu
ZCwgcmF0aGVyCisgIC8vIHRoYW4gZWFybGllci4gTm8gaWRlYSB3aHkuCisgIFZhbHVlSXRlcmF0
b3JCYXNlKCk7CisgIGV4cGxpY2l0IFZhbHVlSXRlcmF0b3JCYXNlKGNvbnN0IFZhbHVlOjpPYmpl
Y3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KTsKK307CisKKy8qKiBcYnJpZWYgY29uc3QgaXRl
cmF0b3IgZm9yIG9iamVjdCBhbmQgYXJyYXkgdmFsdWUuCisgKgorICovCitjbGFzcyBKU09OX0FQ
SSBWYWx1ZUNvbnN0SXRlcmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJhc2UgeworICBmcmll
bmQgY2xhc3MgVmFsdWU7CisKK3B1YmxpYzoKKyAgdHlwZWRlZiBjb25zdCBWYWx1ZSB2YWx1ZV90
eXBlOworICAvL3R5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKKyAgLy90eXBlZGVmIGludCBk
aWZmZXJlbmNlX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVmFsdWUmIHJlZmVyZW5jZTsKKyAgdHlw
ZWRlZiBjb25zdCBWYWx1ZSogcG9pbnRlcjsKKyAgdHlwZWRlZiBWYWx1ZUNvbnN0SXRlcmF0b3Ig
U2VsZlR5cGU7CisKKyAgVmFsdWVDb25zdEl0ZXJhdG9yKCk7CisgIFZhbHVlQ29uc3RJdGVyYXRv
cihWYWx1ZUl0ZXJhdG9yIGNvbnN0JiBvdGhlcik7CisKK3ByaXZhdGU6CisvKiEgXGludGVybmFs
IFVzZSBieSBWYWx1ZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IuCisgKi8KKyAgZXhwbGljaXQgVmFs
dWVDb25zdEl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJy
ZW50KTsKK3B1YmxpYzoKKyAgU2VsZlR5cGUmIG9wZXJhdG9yPShjb25zdCBWYWx1ZUl0ZXJhdG9y
QmFzZSYgb3RoZXIpOworCisgIFNlbGZUeXBlIG9wZXJhdG9yKysoaW50KSB7CisgICAgU2VsZlR5
cGUgdGVtcCgqdGhpcyk7CisgICAgKysqdGhpczsKKyAgICByZXR1cm4gdGVtcDsKKyAgfQorCisg
IFNlbGZUeXBlIG9wZXJhdG9yLS0oaW50KSB7CisgICAgU2VsZlR5cGUgdGVtcCgqdGhpcyk7Cisg
ICAgLS0qdGhpczsKKyAgICByZXR1cm4gdGVtcDsKKyAgfQorCisgIFNlbGZUeXBlJiBvcGVyYXRv
ci0tKCkgeworICAgIGRlY3JlbWVudCgpOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIFNl
bGZUeXBlJiBvcGVyYXRvcisrKCkgeworICAgIGluY3JlbWVudCgpOworICAgIHJldHVybiAqdGhp
czsKKyAgfQorCisgIHJlZmVyZW5jZSBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiBkZXJlZigp
OyB9CisKKyAgcG9pbnRlciBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gJmRlcmVmKCk7IH0K
K307CisKKy8qKiBcYnJpZWYgSXRlcmF0b3IgZm9yIG9iamVjdCBhbmQgYXJyYXkgdmFsdWUuCisg
Ki8KK2NsYXNzIEpTT05fQVBJIFZhbHVlSXRlcmF0b3IgOiBwdWJsaWMgVmFsdWVJdGVyYXRvckJh
c2UgeworICBmcmllbmQgY2xhc3MgVmFsdWU7CisKK3B1YmxpYzoKKyAgdHlwZWRlZiBWYWx1ZSB2
YWx1ZV90eXBlOworICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIHR5cGVkZWYgaW50
IGRpZmZlcmVuY2VfdHlwZTsKKyAgdHlwZWRlZiBWYWx1ZSYgcmVmZXJlbmNlOworICB0eXBlZGVm
IFZhbHVlKiBwb2ludGVyOworICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgU2VsZlR5cGU7CisKKyAg
VmFsdWVJdGVyYXRvcigpOworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlQ29u
c3RJdGVyYXRvciYgb3RoZXIpOworICBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlSXRlcmF0b3Im
IG90aGVyKTsKKworcHJpdmF0ZToKKy8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0
ZSBhbiBpdGVyYXRvci4KKyAqLworICBleHBsaWNpdCBWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVl
OjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KTsKK3B1YmxpYzoKKyAgU2VsZlR5cGUm
IG9wZXJhdG9yPShjb25zdCBTZWxmVHlwZSYgb3RoZXIpOworCisgIFNlbGZUeXBlIG9wZXJhdG9y
KysoaW50KSB7CisgICAgU2VsZlR5cGUgdGVtcCgqdGhpcyk7CisgICAgKysqdGhpczsKKyAgICBy
ZXR1cm4gdGVtcDsKKyAgfQorCisgIFNlbGZUeXBlIG9wZXJhdG9yLS0oaW50KSB7CisgICAgU2Vs
ZlR5cGUgdGVtcCgqdGhpcyk7CisgICAgLS0qdGhpczsKKyAgICByZXR1cm4gdGVtcDsKKyAgfQor
CisgIFNlbGZUeXBlJiBvcGVyYXRvci0tKCkgeworICAgIGRlY3JlbWVudCgpOworICAgIHJldHVy
biAqdGhpczsKKyAgfQorCisgIFNlbGZUeXBlJiBvcGVyYXRvcisrKCkgeworICAgIGluY3JlbWVu
dCgpOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCisgIHJlZmVyZW5jZSBvcGVyYXRvciooKSBj
b25zdCB7IHJldHVybiBkZXJlZigpOyB9CisKKyAgcG9pbnRlciBvcGVyYXRvci0+KCkgY29uc3Qg
eyByZXR1cm4gJmRlcmVmKCk7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworCituYW1l
c3BhY2Ugc3RkIHsKKy8vLyBTcGVjaWFsaXplIHN0ZDo6c3dhcCgpIGZvciBKc29uOjpWYWx1ZS4K
K3RlbXBsYXRlPD4KK2lubGluZSB2b2lkIHN3YXAoSnNvbjo6VmFsdWUmIGEsIEpzb246OlZhbHVl
JiBiKSB7IGEuc3dhcChiKTsgfQorfQorCisKKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9E
TExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmIC8vIGlm
IGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworI2VuZGlm
IC8vIENQUFRMX0pTT05fSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2Yg
Y29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmFsdWUuaAorLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
CisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2Yg
ZmlsZTogaW5jbHVkZS9qc29uL3JlYWRlci5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHly
aWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBN
SVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXpl
ZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBv
ciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5k
ZWYgQ1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX1JFQURF
Ul9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNs
dWRlICJmZWF0dXJlcy5oIgorI2luY2x1ZGUgInZhbHVlLmgiCisjZW5kaWYgLy8gaWYgIWRlZmlu
ZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8aW9z
ZndkPgorI2luY2x1ZGUgPHN0YWNrPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxpc3Ry
ZWFtPgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBu
ZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8vIGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZp
bmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5p
bmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDI1MSkKKyNlbmRpZiAvLyBpZiBk
ZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisKK25hbWVzcGFj
ZSBKc29uIHsKKworLyoqIFxicmllZiBVbnNlcmlhbGl6ZSBhIDxhIEhSRUY9Imh0dHA6Ly93d3cu
anNvbi5vcmciPkpTT048L2E+IGRvY3VtZW50IGludG8gYQorICpWYWx1ZS4KKyAqCisgKiBcZGVw
cmVjYXRlZCBVc2UgQ2hhclJlYWRlciBhbmQgQ2hhclJlYWRlckJ1aWxkZXIuCisgKi8KK2NsYXNz
IEpTT05fQVBJIFJlYWRlciB7CitwdWJsaWM6CisgIHR5cGVkZWYgY2hhciBDaGFyOworICB0eXBl
ZGVmIGNvbnN0IENoYXIqIExvY2F0aW9uOworCisgIC8qKiBcYnJpZWYgQW4gZXJyb3IgdGFnZ2Vk
IHdpdGggd2hlcmUgaW4gdGhlIEpTT04gdGV4dCBpdCB3YXMgZW5jb3VudGVyZWQuCisgICAqCisg
ICAqIFRoZSBvZmZzZXRzIGdpdmUgdGhlIFtzdGFydCwgbGltaXQpIHJhbmdlIG9mIGJ5dGVzIHdp
dGhpbiB0aGUgdGV4dC4gTm90ZQorICAgKiB0aGF0IHRoaXMgaXMgYnl0ZXMsIG5vdCBjb2RlcG9p
bnRzLgorICAgKgorICAgKi8KKyAgc3RydWN0IFN0cnVjdHVyZWRFcnJvciB7CisgICAgc2l6ZV90
IG9mZnNldF9zdGFydDsKKyAgICBzaXplX3Qgb2Zmc2V0X2xpbWl0OworICAgIHN0ZDo6c3RyaW5n
IG1lc3NhZ2U7CisgIH07CisKKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFsbG93
aW5nIGFsbCBmZWF0dXJlcworICAgKiBmb3IgcGFyc2luZy4KKyAgICovCisgIFJlYWRlcigpOwor
CisgIC8qKiBcYnJpZWYgQ29uc3RydWN0cyBhIFJlYWRlciBhbGxvd2luZyB0aGUgc3BlY2lmaWVk
IGZlYXR1cmUgc2V0CisgICAqIGZvciBwYXJzaW5nLgorICAgKi8KKyAgUmVhZGVyKGNvbnN0IEZl
YXR1cmVzJiBmZWF0dXJlcyk7CisKKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxh
IEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+CisgICAqIGRvY3VtZW50LgorICAg
KiBccGFyYW0gZG9jdW1lbnQgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgZG9j
dW1lbnQgdG8gcmVhZC4KKyAgICogXHBhcmFtIHJvb3QgW291dF0gQ29udGFpbnMgdGhlIHJvb3Qg
dmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcworICAgKiAgICAgICAgICAgICBzdWNjZXNz
ZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gY29sbGVjdENvbW1lbnRzIFxjIHRydWUgdG8gY29s
bGVjdCBjb21tZW50IGFuZCBhbGxvdyB3cml0aW5nIHRoZW0KKyAgICogYmFjayBkdXJpbmcKKyAg
ICogICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemF0aW9uLCBcYyBmYWxzZSB0byBkaXNj
YXJkIGNvbW1lbnRzLgorICAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVy
IGlzIGlnbm9yZWQgaWYKKyAgICogRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCisgICAqICAgICAg
ICAgICAgICAgICAgICAgICAgaXMgXGMgZmFsc2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0
aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisgICAq
IGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbAorICBwYXJzZShjb25zdCBzdGQ6OnN0cmlu
ZyYgZG9jdW1lbnQsIFZhbHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOwor
CisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZyb20gYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpz
b24ub3JnIj5KU09OPC9hPgorICAgZG9jdW1lbnQuCisgICAqIFxwYXJhbSBiZWdpbkRvYyBQb2lu
dGVyIG9uIHRoZSBiZWdpbm5pbmcgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQor
ICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogXHBhcmFtIGVuZERvYyBQb2ludGVyIG9uIHRoZSBl
bmQgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVh
ZC4KKyAgICogICAgICAgICAgICAgICBNdXN0IGJlID49IGJlZ2luRG9jLgorICAgKiBccGFyYW0g
cm9vdCBbb3V0XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQg
d2FzCisgICAqICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBj
b2xsZWN0Q29tbWVudHMgXGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRp
bmcgdGhlbQorICAgYmFjayBkdXJpbmcKKyAgICogICAgICAgICAgICAgICAgICAgICAgICBzZXJp
YWxpemF0aW9uLCBcYyBmYWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgorICAgKiAgICAgICAgICAg
ICAgICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYKKyAgIEZlYXR1cmVzOjph
bGxvd0NvbW1lbnRzXworICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGlzIFxjIGZhbHNlLgor
ICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgcGFy
c2VkLCBcYyBmYWxzZSBpZiBhbgorICAgZXJyb3Igb2NjdXJyZWQuCisgICAqLworICBib29sIHBh
cnNlKGNvbnN0IGNoYXIqIGJlZ2luRG9jLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERv
YywKKyAgICAgICAgICAgICBWYWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICBib29sIGNvbGxlY3RD
b21tZW50cyA9IHRydWUpOworCisgIC8vLyBcYnJpZWYgUGFyc2UgZnJvbSBpbnB1dCBzdHJlYW0u
CisgIC8vLyBcc2VlIEpzb246Om9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiwgSnNvbjo6VmFsdWUm
KS4KKyAgYm9vbCBwYXJzZShzdGQ6OmlzdHJlYW0mIGlzLCBWYWx1ZSYgcm9vdCwgYm9vbCBjb2xs
ZWN0Q29tbWVudHMgPSB0cnVlKTsKKworICAvKiogXGJyaWVmIFJldHVybnMgYSB1c2VyIGZyaWVu
ZGx5IHN0cmluZyB0aGF0IGxpc3QgZXJyb3JzIGluIHRoZSBwYXJzZWQKKyAgICogZG9jdW1lbnQu
CisgICAqIFxyZXR1cm4gRm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgbGlzdCBvZiBl
cnJvcnMgd2l0aCB0aGVpciBsb2NhdGlvbgorICAgKiBpbgorICAgKiAgICAgICAgIHRoZSBwYXJz
ZWQgZG9jdW1lbnQuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBlcnJvcgorICAg
KiBvY2N1cnJlZAorICAgKiAgICAgICAgIGR1cmluZyBwYXJzaW5nLgorICAgKiBcZGVwcmVjYXRl
ZCBVc2UgZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpIGluc3RlYWQgKHR5cG8gZml4KS4KKyAg
ICovCisgIEpTT05DUFBfREVQUkVDQVRFRCgiVXNlIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMo
KSBpbnN0ZWFkLiIpCisgIHN0ZDo6c3RyaW5nIGdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNv
bnN0OworCisgIC8qKiBcYnJpZWYgUmV0dXJucyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQg
bGlzdCBlcnJvcnMgaW4gdGhlIHBhcnNlZAorICAgKiBkb2N1bWVudC4KKyAgICogXHJldHVybiBG
b3JtYXR0ZWQgZXJyb3IgbWVzc2FnZSB3aXRoIHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWly
IGxvY2F0aW9uCisgICAqIGluCisgICAqICAgICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4g
ZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlmIG5vIGVycm9yCisgICAqIG9jY3VycmVkCisgICAq
ICAgICAgICAgZHVyaW5nIHBhcnNpbmcuCisgICAqLworICBzdGQ6OnN0cmluZyBnZXRGb3JtYXR0
ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdmVjdG9y
IG9mIHN0cnVjdHVyZWQgZXJyb3MgZW5jb3VudGVkIHdoaWxlIHBhcnNpbmcuCisgICAqIFxyZXR1
cm4gQSAocG9zc2libHkgZW1wdHkpIHZlY3RvciBvZiBTdHJ1Y3R1cmVkRXJyb3Igb2JqZWN0cy4g
Q3VycmVudGx5CisgICAqICAgICAgICAgb25seSBvbmUgZXJyb3IgY2FuIGJlIHJldHVybmVkLCBi
dXQgdGhlIGNhbGxlciBzaG91bGQgdG9sZXJhdGUKKyAgICogbXVsdGlwbGUKKyAgICogICAgICAg
ICBlcnJvcnMuICBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgcGFyc2VyIHJlY292ZXJzIGZyb20gYSBu
b24tZmF0YWwKKyAgICogICAgICAgICBwYXJzZSBlcnJvciBhbmQgdGhlbiBlbmNvdW50ZXJzIGFk
ZGl0aW9uYWwgZXJyb3JzLgorICAgKi8KKyAgc3RkOjp2ZWN0b3I8U3RydWN0dXJlZEVycm9yPiBn
ZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBBZGQgYSBzZW1hbnRp
YyBlcnJvciBtZXNzYWdlLgorICAgKiBccGFyYW0gdmFsdWUgSlNPTiBWYWx1ZSBsb2NhdGlvbiBh
c3NvY2lhdGVkIHdpdGggdGhlIGVycm9yCisgICAqIFxwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBt
ZXNzYWdlLgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNjZXNzZnVs
bHkgYWRkZWQsIFxjIGZhbHNlIGlmIHRoZQorICAgKiBWYWx1ZSBvZmZzZXQgZXhjZWVkcyB0aGUg
ZG9jdW1lbnQgc2l6ZS4KKyAgICovCisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1
ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpOworCisgIC8qKiBcYnJpZWYgQWRkIGEgc2Vt
YW50aWMgZXJyb3IgbWVzc2FnZSB3aXRoIGV4dHJhIGNvbnRleHQuCisgICAqIFxwYXJhbSB2YWx1
ZSBKU09OIFZhbHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKKyAgICogXHBh
cmFtIG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCisgICAqIFxwYXJhbSBleHRyYSBBZGRpdGlv
bmFsIEpTT04gVmFsdWUgbG9jYXRpb24gdG8gY29udGV4dHVhbGl6ZSB0aGUgZXJyb3IKKyAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZSBlcnJvciB3YXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBcYyBm
YWxzZSBpZiBlaXRoZXIKKyAgICogVmFsdWUgb2Zmc2V0IGV4Y2VlZHMgdGhlIGRvY3VtZW50IHNp
emUuCisgICAqLworICBib29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0
ZDo6c3RyaW5nJiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpOworCisgIC8qKiBcYnJpZWYg
UmV0dXJuIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBlcnJvcnMuCisgICAqIFxyZXR1cm4gXGMgdHJ1
ZSBpZiB0aGVyZSBhcmUgbm8gZXJyb3JzIHRvIHJlcG9ydCBcYyBmYWxzZSBpZgorICAgKiBlcnJv
cnMgaGF2ZSBvY2N1cnJlZC4KKyAgICovCisgIGJvb2wgZ29vZCgpIGNvbnN0OworCitwcml2YXRl
OgorICBlbnVtIFRva2VuVHlwZSB7CisgICAgdG9rZW5FbmRPZlN0cmVhbSA9IDAsCisgICAgdG9r
ZW5PYmplY3RCZWdpbiwKKyAgICB0b2tlbk9iamVjdEVuZCwKKyAgICB0b2tlbkFycmF5QmVnaW4s
CisgICAgdG9rZW5BcnJheUVuZCwKKyAgICB0b2tlblN0cmluZywKKyAgICB0b2tlbk51bWJlciwK
KyAgICB0b2tlblRydWUsCisgICAgdG9rZW5GYWxzZSwKKyAgICB0b2tlbk51bGwsCisgICAgdG9r
ZW5BcnJheVNlcGFyYXRvciwKKyAgICB0b2tlbk1lbWJlclNlcGFyYXRvciwKKyAgICB0b2tlbkNv
bW1lbnQsCisgICAgdG9rZW5FcnJvcgorICB9OworCisgIGNsYXNzIFRva2VuIHsKKyAgcHVibGlj
OgorICAgIFRva2VuVHlwZSB0eXBlXzsKKyAgICBMb2NhdGlvbiBzdGFydF87CisgICAgTG9jYXRp
b24gZW5kXzsKKyAgfTsKKworICBjbGFzcyBFcnJvckluZm8geworICBwdWJsaWM6CisgICAgVG9r
ZW4gdG9rZW5fOworICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2VfOworICAgIExvY2F0aW9uIGV4dHJh
XzsKKyAgfTsKKworICB0eXBlZGVmIHN0ZDo6ZGVxdWU8RXJyb3JJbmZvPiBFcnJvcnM7CisKKyAg
Ym9vbCByZWFkVG9rZW4oVG9rZW4mIHRva2VuKTsKKyAgdm9pZCBza2lwU3BhY2VzKCk7CisgIGJv
b2wgbWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgpOworICBib29sIHJl
YWRDb21tZW50KCk7CisgIGJvb2wgcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ3Bw
U3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZFN0cmluZygpOworICB2b2lkIHJlYWROdW1iZXIo
KTsKKyAgYm9vbCByZWFkVmFsdWUoKTsKKyAgYm9vbCByZWFkT2JqZWN0KFRva2VuJiB0b2tlbik7
CisgIGJvb2wgcmVhZEFycmF5KFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRv
a2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRl
Y29kZWQpOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29k
ZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNv
ZGVEb3VibGUoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2Vu
LCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tlbiYg
dG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7CisgIGJvb2wgZGVjb2Rl
VW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKTsKKyAgYm9vbCBhZGRFcnJvcihjb25zdCBzdGQ6
OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSA9IDApOworICBi
b29sIHJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgYm9vbCBh
ZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
VG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgdm9pZCBza2lwVW50aWxTcGFjZSgpOworICBW
YWx1ZSYgY3VycmVudFZhbHVlKCk7CisgIENoYXIgZ2V0TmV4dENoYXIoKTsKKyAgdm9pZAorICBn
ZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sIGludCYgbGluZSwgaW50
JiBjb2x1bW4pIGNvbnN0OworICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4o
TG9jYXRpb24gbG9jYXRpb24pIGNvbnN0OworICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvblNuaXBw
ZXQoTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0OworICB2b2lkIGFkZENvbW1lbnQoTG9jYXRpb24g
YmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpOworICB2b2lk
IHNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbik7CisKKyAgdHlwZWRlZiBzdGQ6OnN0YWNr
PFZhbHVlKj4gTm9kZXM7CisgIE5vZGVzIG5vZGVzXzsKKyAgRXJyb3JzIGVycm9yc187CisgIHN0
ZDo6c3RyaW5nIGRvY3VtZW50XzsKKyAgTG9jYXRpb24gYmVnaW5fOworICBMb2NhdGlvbiBlbmRf
OworICBMb2NhdGlvbiBjdXJyZW50XzsKKyAgTG9jYXRpb24gbGFzdFZhbHVlRW5kXzsKKyAgVmFs
dWUqIGxhc3RWYWx1ZV87CisgIHN0ZDo6c3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsKKyAgRmVhdHVy
ZXMgZmVhdHVyZXNfOworICBib29sIGNvbGxlY3RDb21tZW50c187Cit9OyAgLy8gUmVhZGVyCisK
Ky8qKiBJbnRlcmZhY2UgZm9yIHJlYWRpbmcgSlNPTiBmcm9tIGEgY2hhciBhcnJheS4KKyAqLwor
Y2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlciB7CitwdWJsaWM6CisgIHZpcnR1YWwgfkNoYXJSZWFk
ZXIoKSB7fQorICAvKiogXGJyaWVmIFJlYWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDov
L3d3dy5qc29uLm9yZyI+SlNPTjwvYT4KKyAgIGRvY3VtZW50LgorICAgKiBUaGUgZG9jdW1lbnQg
bXVzdCBiZSBhIFVURi04IGVuY29kZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRvY3VtZW50IHRv
IHJlYWQuCisgICAqCisgICAqIFxwYXJhbSBiZWdpbkRvYyBQb2ludGVyIG9uIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIFVURi04IGVuY29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVh
ZC4KKyAgICogXHBhcmFtIGVuZERvYyBQb2ludGVyIG9uIHRoZSBlbmQgb2YgdGhlIFVURi04IGVu
Y29kZWQgc3RyaW5nIG9mIHRoZQorICAgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICogICAgICAgIE11
c3QgYmUgPj0gYmVnaW5Eb2MuCisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSBy
b290IHZhbHVlIG9mIHRoZSBkb2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3Vj
Y2Vzc2Z1bGx5IHBhcnNlZC4KKyAgICogXHBhcmFtIGVycnMgW291dF0gRm9ybWF0dGVkIGVycm9y
IG1lc3NhZ2VzIChpZiBub3QgTlVMTCkKKyAgICogICAgICAgIGEgdXNlciBmcmllbmRseSBzdHJp
bmcgdGhhdCBsaXN0cyBlcnJvcnMgaW4gdGhlIHBhcnNlZAorICAgKiBkb2N1bWVudC4KKyAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwg
XGMgZmFsc2UgaWYgYW4KKyAgIGVycm9yIG9jY3VycmVkLgorICAgKi8KKyAgdmlydHVhbCBib29s
IHBhcnNlKAorICAgICAgY2hhciBjb25zdCogYmVnaW5Eb2MsIGNoYXIgY29uc3QqIGVuZERvYywK
KyAgICAgIFZhbHVlKiByb290LCBzdGQ6OnN0cmluZyogZXJycykgPSAwOworCisgIGNsYXNzIEpT
T05fQVBJIEZhY3RvcnkgeworICBwdWJsaWM6CisgICAgdmlydHVhbCB+RmFjdG9yeSgpIHt9Cisg
ICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9yIG5ldygpLgor
ICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoZS5n
LiBpbnZhbGlkIHNldHRpbmdzKQorICAgICAqLworICAgIHZpcnR1YWwgQ2hhclJlYWRlciogbmV3
Q2hhclJlYWRlcigpIGNvbnN0ID0gMDsKKyAgfTsgIC8vIEZhY3RvcnkKK307ICAvLyBDaGFyUmVh
ZGVyCisKKy8qKiBcYnJpZWYgQnVpbGQgYSBDaGFyUmVhZGVyIGltcGxlbWVudGF0aW9uLgorCitV
c2FnZToKK1xjb2RlCisgIHVzaW5nIG5hbWVzcGFjZSBKc29uOworICBDaGFyUmVhZGVyQnVpbGRl
ciBidWlsZGVyOworICBidWlsZGVyWyJjb2xsZWN0Q29tbWVudHMiXSA9IGZhbHNlOworICBWYWx1
ZSB2YWx1ZTsKKyAgc3RkOjpzdHJpbmcgZXJyczsKKyAgYm9vbCBvayA9IHBhcnNlRnJvbVN0cmVh
bShidWlsZGVyLCBzdGQ6OmNpbiwgJnZhbHVlLCAmZXJycyk7CitcZW5kY29kZQorKi8KK2NsYXNz
IEpTT05fQVBJIENoYXJSZWFkZXJCdWlsZGVyIDogcHVibGljIENoYXJSZWFkZXI6OkZhY3Rvcnkg
eworcHVibGljOgorICAvLyBOb3RlOiBXZSB1c2UgYSBKc29uOjpWYWx1ZSBzbyB0aGF0IHdlIGNh
biBhZGQgZGF0YS1tZW1iZXJzIHRvIHRoaXMgY2xhc3MKKyAgLy8gd2l0aG91dCBhIG1ham9yIHZl
cnNpb24gYnVtcC4KKyAgLyoqIENvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWlsZGVyLgorICAgIFRo
ZXNlIGFyZSBjYXNlLXNlbnNpdGl2ZS4KKyAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vu
c2l0aXZlKToKKyAgICAtIGAiY29sbGVjdENvbW1lbnRzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAg
IC0gdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQorICAgICAg
ICBiYWNrIGR1cmluZyBzZXJpYWxpemF0aW9uLCBmYWxzZSB0byBkaXNjYXJkIGNvbW1lbnRzLgor
ICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIGFsbG93Q29tbWVudHMgaXMgZmFs
c2UuCisgICAgLSBgImFsbG93Q29tbWVudHMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVl
IGlmIGNvbW1lbnRzIGFyZSBhbGxvd2VkLgorICAgIC0gYCJzdHJpY3RSb290IjogZmFsc2Ugb3Ig
dHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFu
IG9iamVjdCB2YWx1ZQorICAgIC0gYCJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIjogZmFs
c2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBkcm9wcGVkIG51bGwgcGxhY2Vob2xkZXJzIGFy
ZSBhbGxvd2VkLiAoU2VlIFN0cmVhbVdyaXRlckJ1aWxkZXIuKQorICAgIC0gYCJhbGxvd051bWVy
aWNLZXlzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiBudW1lcmljIG9iamVjdCBr
ZXlzIGFyZSBhbGxvd2VkLgorICAgIC0gYCJhbGxvd1NpbmdsZVF1b3RlcyI6IGZhbHNlIG9yIHRy
dWVgCisgICAgICAtIHRydWUgaWYgJycgYXJlIGFsbG93ZWQgZm9yIHN0cmluZ3MgKGJvdGgga2V5
cyBhbmQgdmFsdWVzKQorICAgIC0gYCJzdGFja0xpbWl0IjogaW50ZWdlcmAKKyAgICAgIC0gRXhj
ZWVkaW5nIHN0YWNrTGltaXQgKHJlY3Vyc2l2ZSBkZXB0aCBvZiBgcmVhZFZhbHVlKClgKSB3aWxs
CisgICAgICAgIGNhdXNlIGFuIGV4Y2VwdGlvbi4KKyAgICAgIC0gVGhpcyBpcyBhIHNlY3VyaXR5
IGlzc3VlIChzZWctZmF1bHRzIGNhdXNlZCBieSBkZWVwbHkgbmVzdGVkIEpTT04pLAorICAgICAg
ICBzbyB0aGUgZGVmYXVsdCBpcyBsb3cuCisgICAgLSBgImZhaWxJZkV4dHJhIjogZmFsc2Ugb3Ig
dHJ1ZWAKKyAgICAgIC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ugd2hlbiBleHRy
YSBub24td2hpdGVzcGFjZSB0cmFpbHMKKyAgICAgICAgdGhlIEpTT04gdmFsdWUgaW4gdGhlIGlu
cHV0IHN0cmluZy4KKyAgICAtIGAicmVqZWN0RHVwS2V5cyI6IGZhbHNlIG9yIHRydWVgCisgICAg
ICAtIElmIHRydWUsIGBwYXJzZSgpYCByZXR1cm5zIGZhbHNlIHdoZW4gYSBrZXkgaXMgZHVwbGlj
YXRlZCB3aXRoaW4gYW4gb2JqZWN0LgorICAgIC0gYCJhbGxvd1NwZWNpYWxGbG9hdHMiOiBmYWxz
ZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBzcGVjaWFsIGZsb2F0IHZhbHVlcyAoTmFOcyBh
bmQgaW5maW5pdGllcykgYXJlIGFsbG93ZWQgCisgICAgICAgIGFuZCB0aGVpciB2YWx1ZXMgYXJl
IGxvc3NmcmVlIHJlc3RvcmFibGUuCisKKyAgICBZb3UgY2FuIGV4YW1pbmUgJ3NldHRpbmdzX2Ag
eW91cnNlbGYKKyAgICB0byBzZWUgdGhlIGRlZmF1bHRzLiBZb3UgY2FuIGFsc28gd3JpdGUgYW5k
IHJlYWQgdGhlbSBqdXN0IGxpa2UgYW55CisgICAgSlNPTiBWYWx1ZS4KKyAgICBcc2Egc2V0RGVm
YXVsdHMoKQorICAgICovCisgIEpzb246OlZhbHVlIHNldHRpbmdzXzsKKworICBDaGFyUmVhZGVy
QnVpbGRlcigpOworICB+Q2hhclJlYWRlckJ1aWxkZXIoKTsKKworICBDaGFyUmVhZGVyKiBuZXdD
aGFyUmVhZGVyKCkgY29uc3Q7CisKKyAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAnc2V0dGluZ3MnIGFy
ZSBsZWdhbCBhbmQgY29uc2lzdGVudDsKKyAgICogICBvdGhlcndpc2UsIGluZGljYXRlIGJhZCBz
ZXR0aW5ncyB2aWEgJ2ludmFsaWQnLgorICAgKi8KKyAgYm9vbCB2YWxpZGF0ZShKc29uOjpWYWx1
ZSogaW52YWxpZCkgY29uc3Q7CisKKyAgLyoqIEEgc2ltcGxlIHdheSB0byB1cGRhdGUgYSBzcGVj
aWZpYyBzZXR0aW5nLgorICAgKi8KKyAgVmFsdWUmIG9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5
KTsKKworICAvKiogQ2FsbGVkIGJ5IGN0b3IsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHRvIHJlc2V0
IHNldHRpbmdzXy4KKyAgICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxs
IGlzIGZpbmUpCisgICAqIFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJf
anNvbi9qc29uX3JlYWRlci5jcHAgQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0cworICAgKi8KKyAg
c3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKTsKKyAgLyoqIFNh
bWUgYXMgb2xkIEZlYXR1cmVzOjpzdHJpY3RNb2RlKCkuCisgICAqIFxwcmUgJ3NldHRpbmdzJyAh
PSBOVUxMIChidXQgSnNvbjo6bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgor
ICAgKiBcc25pcHBldCBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwIENoYXJSZWFkZXJCdWls
ZGVyU3RyaWN0TW9kZQorICAgKi8KKyAgc3RhdGljIHZvaWQgc3RyaWN0TW9kZShKc29uOjpWYWx1
ZSogc2V0dGluZ3MpOworfTsKKworLyoqIENvbnN1bWUgZW50aXJlIHN0cmVhbSBhbmQgdXNlIGl0
cyBiZWdpbi9lbmQuCisgICogU29tZWRheSB3ZSBtaWdodCBoYXZlIGEgcmVhbCBTdHJlYW1SZWFk
ZXIsIGJ1dCBmb3Igbm93IHRoaXMKKyAgKiBpcyBjb252ZW5pZW50LgorICAqLworYm9vbCBKU09O
X0FQSSBwYXJzZUZyb21TdHJlYW0oCisgICAgQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYsCisg
ICAgc3RkOjppc3RyZWFtJiwKKyAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMpOwor
CisvKiogXGJyaWVmIFJlYWQgZnJvbSAnc2luJyBpbnRvICdyb290Jy4KKworIEFsd2F5cyBrZWVw
IGNvbW1lbnRzIGZyb20gdGhlIGlucHV0IEpTT04uCisKKyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJl
YWQgYSBmaWxlIGludG8gYSBwYXJ0aWN1bGFyIHN1Yi1vYmplY3QuCisgRm9yIGV4YW1wbGU6Cisg
XGNvZGUKKyBKc29uOjpWYWx1ZSByb290OworIGNpbiA+PiByb290WyJkaXIiXVsiZmlsZSJdOwor
IGNvdXQgPDwgcm9vdDsKKyBcZW5kY29kZQorIFJlc3VsdDoKKyBcdmVyYmF0aW0KKyB7CisgImRp
ciI6IHsKKyAgICAgImZpbGUiOiB7CisgICAgIC8vIFRoZSBpbnB1dCBzdHJlYW0gSlNPTiB3b3Vs
ZCBiZSBuZXN0ZWQgaGVyZS4KKyAgICAgfQorIH0KKyB9CisgXGVuZHZlcmJhdGltCisgXHRocm93
IHN0ZDo6ZXhjZXB0aW9uIG9uIHBhcnNlIGVycm9yLgorIFxzZWUgSnNvbjo6b3BlcmF0b3I8PCgp
CisqLworSlNPTl9BUEkgc3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KHN0ZDo6aXN0cmVhbSYsIFZh
bHVlJik7CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNB
QkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYg
Ly8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisj
ZW5kaWYgLy8gQ1BQVExfSlNPTl9SRUFERVJfSF9JTkNMVURFRAorCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBv
ZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi93cml0ZXIuaAorLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQK
Ky8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNF
IGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElD
RU5TRQorCisjaWZuZGVmIEpTT05fV1JJVEVSX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9XUklU
RVJfSF9JTkNMVURFRAorCisjaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5j
bHVkZSAidmFsdWUuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElP
TikKKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPG9zdHJl
YW0+CisKKy8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRhdGEgbWVtYmVyPjogPHR5cGU+IG5l
ZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bworLy8gYmUgdXNlZCBieS4uLgorI2lmIGRlZmlu
ZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2Fybmlu
ZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MjUxKQorI2VuZGlmIC8vIGlmIGRl
ZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKworbmFtZXNwYWNl
IEpzb24geworCitjbGFzcyBWYWx1ZTsKKworLyoqCisKK1VzYWdlOgorXGNvZGUKKyAgdXNpbmcg
bmFtZXNwYWNlIEpzb247CisgIHZvaWQgd3JpdGVUb1N0ZG91dChTdHJlYW1Xcml0ZXI6OkZhY3Rv
cnkgY29uc3QmIGZhY3RvcnksIFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICAgIHN0ZDo6dW5pcXVl
X3B0cjxTdHJlYW1Xcml0ZXI+IGNvbnN0IHdyaXRlcigKKyAgICAgIGZhY3RvcnkubmV3U3RyZWFt
V3JpdGVyKCkpOworICAgIHdyaXRlci0+d3JpdGUodmFsdWUsICZzdGQ6OmNvdXQpOworICAgIHN0
ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCisgIH0KK1xlbmRjb2Rl
CisqLworY2xhc3MgSlNPTl9BUEkgU3RyZWFtV3JpdGVyIHsKK3Byb3RlY3RlZDoKKyAgc3RkOjpv
c3RyZWFtKiBzb3V0XzsgIC8vIG5vdCBvd25lZDsgd2lsbCBub3QgZGVsZXRlCitwdWJsaWM6Cisg
IFN0cmVhbVdyaXRlcigpOworICB2aXJ0dWFsIH5TdHJlYW1Xcml0ZXIoKTsKKyAgLyoqIFdyaXRl
IFZhbHVlIGludG8gZG9jdW1lbnQgYXMgY29uZmlndXJlZCBpbiBzdWItY2xhc3MuCisgICAgICBE
byBub3QgdGFrZSBvd25lcnNoaXAgb2Ygc291dCwgYnV0IG1haW50YWluIGEgcmVmZXJlbmNlIGR1
cmluZyBmdW5jdGlvbi4KKyAgICAgIFxwcmUgc291dCAhPSBOVUxMCisgICAgICBccmV0dXJuIHpl
cm8gb24gc3VjY2VzcyAoRm9yIG5vdywgd2UgYWx3YXlzIHJldHVybiB6ZXJvLCBzbyBjaGVjayB0
aGUgc3RyZWFtIGluc3RlYWQuKQorICAgICAgXHRocm93IHN0ZDo6ZXhjZXB0aW9uIHBvc3NpYmx5
LCBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbgorICAgKi8KKyAgdmlydHVhbCBpbnQgd3JpdGUo
VmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVhbSogc291dCkgPSAwOworCisgIC8qKiBcYnJp
ZWYgQSBzaW1wbGUgYWJzdHJhY3QgZmFjdG9yeS4KKyAgICovCisgIGNsYXNzIEpTT05fQVBJIEZh
Y3RvcnkgeworICBwdWJsaWM6CisgICAgdmlydHVhbCB+RmFjdG9yeSgpOworICAgIC8qKiBcYnJp
ZWYgQWxsb2NhdGUgYSBDaGFyUmVhZGVyIHZpYSBvcGVyYXRvciBuZXcoKS4KKyAgICAgKiBcdGhy
b3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBz
ZXR0aW5ncykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFN0cmVhbVdyaXRlciogbmV3U3RyZWFtV3Jp
dGVyKCkgY29uc3QgPSAwOworICB9OyAgLy8gRmFjdG9yeQorfTsgIC8vIFN0cmVhbVdyaXRlcgor
CisvKiogXGJyaWVmIFdyaXRlIGludG8gc3RyaW5nc3RyZWFtLCB0aGVuIHJldHVybiBzdHJpbmcs
IGZvciBjb252ZW5pZW5jZS4KKyAqIEEgU3RyZWFtV3JpdGVyIHdpbGwgYmUgY3JlYXRlZCBmcm9t
IHRoZSBmYWN0b3J5LCB1c2VkLCBhbmQgdGhlbiBkZWxldGVkLgorICovCitzdGQ6OnN0cmluZyBK
U09OX0FQSSB3cml0ZVN0cmluZyhTdHJlYW1Xcml0ZXI6OkZhY3RvcnkgY29uc3QmIGZhY3Rvcnks
IFZhbHVlIGNvbnN0JiByb290KTsKKworCisvKiogXGJyaWVmIEJ1aWxkIGEgU3RyZWFtV3JpdGVy
IGltcGxlbWVudGF0aW9uLgorCitVc2FnZToKK1xjb2RlCisgIHVzaW5nIG5hbWVzcGFjZSBKc29u
OworICBWYWx1ZSB2YWx1ZSA9IC4uLjsKKyAgU3RyZWFtV3JpdGVyQnVpbGRlciBidWlsZGVyOwor
ICBidWlsZGVyWyJjb21tZW50U3R5bGUiXSA9ICJOb25lIjsKKyAgYnVpbGRlclsiaW5kZW50YXRp
b24iXSA9ICIgICAiOyAgLy8gb3Igd2hhdGV2ZXIgeW91IGxpa2UKKyAgc3RkOjp1bmlxdWVfcHRy
PEpzb246OlN0cmVhbVdyaXRlcj4gd3JpdGVyKAorICAgICAgYnVpbGRlci5uZXdTdHJlYW1Xcml0
ZXIoKSk7CisgIHdyaXRlci0+d3JpdGUodmFsdWUsICZzdGQ6OmNvdXQpOworICBzdGQ6OmNvdXQg
PDwgc3RkOjplbmRsOyAgLy8gYWRkIGxmIGFuZCBmbHVzaAorXGVuZGNvZGUKKyovCitjbGFzcyBK
U09OX0FQSSBTdHJlYW1Xcml0ZXJCdWlsZGVyIDogcHVibGljIFN0cmVhbVdyaXRlcjo6RmFjdG9y
eSB7CitwdWJsaWM6CisgIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246OlZhbHVlIHNvIHRoYXQgd2Ug
Y2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcworICAvLyB3aXRob3V0IGEgbWFqb3Ig
dmVyc2lvbiBidW1wLgorICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGlzIGJ1aWxkZXIuCisgICAg
QXZhaWxhYmxlIHNldHRpbmdzIChjYXNlLXNlbnNpdGl2ZSk6CisgICAgLSAiY29tbWVudFN0eWxl
IjogIk5vbmUiIG9yICJBbGwiCisgICAgLSAiaW5kZW50YXRpb24iOiAgIjxhbnl0aGluZz4iCisg
ICAgLSAiZW5hYmxlWUFNTENvbXBhdGliaWxpdHkiOiBmYWxzZSBvciB0cnVlCisgICAgICAtIHNs
aWdodGx5IGNoYW5nZSB0aGUgd2hpdGVzcGFjZSBhcm91bmQgY29sb25zCisgICAgLSAiZHJvcE51
bGxQbGFjZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlCisgICAgICAtIERyb3AgdGhlICJudWxsIiBz
dHJpbmcgZnJvbSB0aGUgd3JpdGVyJ3Mgb3V0cHV0IGZvciBudWxsVmFsdWVzLgorICAgICAgICBT
dHJpY3RseSBzcGVha2luZywgdGhpcyBpcyBub3QgdmFsaWQgSlNPTi4gQnV0IHdoZW4gdGhlIG91
dHB1dCBpcyBiZWluZworICAgICAgICBmZWQgdG8gYSBicm93c2VyJ3MgSmF2YXNjcmlwdCwgaXQg
bWFrZXMgZm9yIHNtYWxsZXIgb3V0cHV0IGFuZCB0aGUKKyAgICAgICAgYnJvd3NlciBjYW4gaGFu
ZGxlIHRoZSBvdXRwdXQganVzdCBmaW5lLgorICAgIC0gInVzZVNwZWNpYWxGbG9hdHMiOiBmYWxz
ZSBvciB0cnVlCisgICAgICAtIElmIHRydWUsIG91dHB1dHMgbm9uLWZpbml0ZSBmbG9hdGluZyBw
b2ludCB2YWx1ZXMgaW4gdGhlIGZvbGxvd2luZyB3YXk6CisgICAgICAgIE5hTiB2YWx1ZXMgYXMg
Ik5hTiIsIHBvc2l0aXZlIGluZmluaXR5IGFzICJJbmZpbml0eSIsIGFuZCBuZWdhdGl2ZSBpbmZp
bml0eQorICAgICAgICBhcyAiLUluZmluaXR5Ii4KKworICAgIFlvdSBjYW4gZXhhbWluZSAnc2V0
dGluZ3NfYCB5b3Vyc2VsZgorICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlvdSBjYW4gYWxzbyB3
cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKKyAgICBKU09OIFZhbHVlLgorICAgIFxz
YSBzZXREZWZhdWx0cygpCisgICAgKi8KKyAgSnNvbjo6VmFsdWUgc2V0dGluZ3NfOworCisgIFN0
cmVhbVdyaXRlckJ1aWxkZXIoKTsKKyAgflN0cmVhbVdyaXRlckJ1aWxkZXIoKTsKKworICAvKioK
KyAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIChlLmcu
IGludmFsaWQgc2V0dGluZ3MpCisgICAqLworICBTdHJlYW1Xcml0ZXIqIG5ld1N0cmVhbVdyaXRl
cigpIGNvbnN0OworCisgIC8qKiBccmV0dXJuIHRydWUgaWYgJ3NldHRpbmdzJyBhcmUgbGVnYWwg
YW5kIGNvbnNpc3RlbnQ7CisgICAqICAgb3RoZXJ3aXNlLCBpbmRpY2F0ZSBiYWQgc2V0dGluZ3Mg
dmlhICdpbnZhbGlkJy4KKyAgICovCisgIGJvb2wgdmFsaWRhdGUoSnNvbjo6VmFsdWUqIGludmFs
aWQpIGNvbnN0OworICAvKiogQSBzaW1wbGUgd2F5IHRvIHVwZGF0ZSBhIHNwZWNpZmljIHNldHRp
bmcuCisgICAqLworICBWYWx1ZSYgb3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkpOworCisgIC8q
KiBDYWxsZWQgYnkgY3RvciwgYnV0IHlvdSBjYW4gdXNlIHRoaXMgdG8gcmVzZXQgc2V0dGluZ3Nf
LgorICAgKiBccHJlICdzZXR0aW5ncycgIT0gTlVMTCAoYnV0IEpzb246Om51bGwgaXMgZmluZSkK
KyAgICogXHJlbWFyayBEZWZhdWx0czoKKyAgICogXHNuaXBwZXQgc3JjL2xpYl9qc29uL2pzb25f
d3JpdGVyLmNwcCBTdHJlYW1Xcml0ZXJCdWlsZGVyRGVmYXVsdHMKKyAgICovCisgIHN0YXRpYyB2
b2lkIHNldERlZmF1bHRzKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Cit9OworCisvKiogXGJyaWVm
IEFic3RyYWN0IGNsYXNzIGZvciB3cml0ZXJzLgorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdy
aXRlci4gKEFuZCByZWFsbHksIHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLikKKyAq
LworY2xhc3MgSlNPTl9BUEkgV3JpdGVyIHsKK3B1YmxpYzoKKyAgdmlydHVhbCB+V3JpdGVyKCk7
CisKKyAgdmlydHVhbCBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgPSAwOwor
fTsKKworLyoqIFxicmllZiBPdXRwdXRzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5q
c29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0CisgKndpdGhvdXQgZm9ybWF0dGluZyAobm90IGh1bWFu
IGZyaWVuZGx5KS4KKyAqCisgKiBUaGUgSlNPTiBkb2N1bWVudCBpcyB3cml0dGVuIGluIGEgc2lu
Z2xlIGxpbmUuIEl0IGlzIG5vdCBpbnRlbmRlZCBmb3IgJ2h1bWFuJworICpjb25zdW1wdGlvbiwK
KyAqIGJ1dCBtYXkgYmUgdXNlZnVsbCB0byBzdXBwb3J0IGZlYXR1cmUgc3VjaCBhcyBSUEMgd2hl
cmUgYmFuZHdpdGggaXMgbGltaXRlZC4KKyAqIFxzYSBSZWFkZXIsIFZhbHVlCisgKiBcZGVwcmVj
YXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgRmFzdFdy
aXRlciA6IHB1YmxpYyBXcml0ZXIgeworCitwdWJsaWM6CisgIEZhc3RXcml0ZXIoKTsKKyAgfkZh
c3RXcml0ZXIoKSB7fQorCisgIHZvaWQgZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKTsKKworICAv
KiogXGJyaWVmIERyb3AgdGhlICJudWxsIiBzdHJpbmcgZnJvbSB0aGUgd3JpdGVyJ3Mgb3V0cHV0
IGZvciBudWxsVmFsdWVzLgorICAgKiBTdHJpY3RseSBzcGVha2luZywgdGhpcyBpcyBub3QgdmFs
aWQgSlNPTi4gQnV0IHdoZW4gdGhlIG91dHB1dCBpcyBiZWluZworICAgKiBmZWQgdG8gYSBicm93
c2VyJ3MgSmF2YXNjcmlwdCwgaXQgbWFrZXMgZm9yIHNtYWxsZXIgb3V0cHV0IGFuZCB0aGUKKyAg
ICogYnJvd3NlciBjYW4gaGFuZGxlIHRoZSBvdXRwdXQganVzdCBmaW5lLgorICAgKi8KKyAgdm9p
ZCBkcm9wTnVsbFBsYWNlaG9sZGVycygpOworCisgIHZvaWQgb21pdEVuZGluZ0xpbmVGZWVkKCk7
CisKK3B1YmxpYzogLy8gb3ZlcnJpZGRlbiBmcm9tIFdyaXRlcgorICBzdGQ6OnN0cmluZyB3cml0
ZShjb25zdCBWYWx1ZSYgcm9vdCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25z
dCBWYWx1ZSYgdmFsdWUpOworCisgIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKKyAgYm9vbCB5YW1s
Q29tcGF0aWJsaXR5RW5hYmxlZF87CisgIGJvb2wgZHJvcE51bGxQbGFjZWhvbGRlcnNfOworICBi
b29sIG9taXRFbmRpbmdMaW5lRmVlZF87Cit9OworCisvKiogXGJyaWVmIFdyaXRlcyBhIFZhbHVl
IGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+IGZvcm1hdCBpbiBhCisg
Kmh1bWFuIGZyaWVuZGx5IHdheS4KKyAqCisgKiBUaGUgcnVsZXMgZm9yIGxpbmUgYnJlYWsgYW5k
IGluZGVudCBhcmUgYXMgZm9sbG93OgorICogLSBPYmplY3QgdmFsdWU6CisgKiAgICAgLSBpZiBl
bXB0eSB0aGVuIHByaW50IHt9IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAg
LSBpZiBub3QgZW1wdHkgdGhlIHByaW50ICd7JywgbGluZSBicmVhayAmIGluZGVudCwgcHJpbnQg
b25lIHZhbHVlIHBlcgorICpsaW5lCisgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQgbGlu
ZSBicmVhayBhbmQgcHJpbnQgJ30nLgorICogLSBBcnJheSB2YWx1ZToKKyAqICAgICAtIGlmIGVt
cHR5IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAt
IGlmIHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9yIHNv
bWUgb3RoZXIgdmFsdWUKKyAqdHlwZXMsCisgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0
IG9uIG9uZSBsaW5lcywgdGhlbiBwcmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUKKyAqbGluZS4K
KyAqICAgICAtIG90aGVyd2lzZSwgaXQgdGhlIHZhbHVlcyBkbyBub3QgZml0IG9uIG9uZSBsaW5l
LCBvciB0aGUgYXJyYXkgY29udGFpbnMKKyAqICAgICAgIG9iamVjdCBvciBub24gZW1wdHkgYXJy
YXksIHRoZW4gcHJpbnQgb25lIHZhbHVlIHBlciBsaW5lLgorICoKKyAqIElmIHRoZSBWYWx1ZSBo
YXZlIGNvbW1lbnRzIHRoZW4gdGhleSBhcmUgb3V0cHV0ZWQgYWNjb3JkaW5nIHRvIHRoZWlyCisg
KiNDb21tZW50UGxhY2VtZW50LgorICoKKyAqIFxzYSBSZWFkZXIsIFZhbHVlLCBWYWx1ZTo6c2V0
Q29tbWVudCgpCisgKiBcZGVwcmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyQnVpbGRlci4KKyAqLwor
Y2xhc3MgSlNPTl9BUEkgU3R5bGVkV3JpdGVyIDogcHVibGljIFdyaXRlciB7CitwdWJsaWM6Cisg
IFN0eWxlZFdyaXRlcigpOworICB+U3R5bGVkV3JpdGVyKCkge30KKworcHVibGljOiAvLyBvdmVy
cmlkZGVuIGZyb20gV3JpdGVyCisgIC8qKiBcYnJpZWYgU2VyaWFsaXplIGEgVmFsdWUgaW4gPGEg
SFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0LgorICAgKiBccGFyYW0g
cm9vdCBWYWx1ZSB0byBzZXJpYWxpemUuCisgICAqIFxyZXR1cm4gU3RyaW5nIGNvbnRhaW5pbmcg
dGhlIEpTT04gZG9jdW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSByb290IHZhbHVlLgorICAgKi8K
KyAgc3RkOjpzdHJpbmcgd3JpdGUoY29uc3QgVmFsdWUmIHJvb3QpOworCitwcml2YXRlOgorICB2
b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFycmF5VmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbmVBcnJheShjb25zdCBWYWx1
ZSYgdmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpOwor
ICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0IHN0ZDo6
c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7CisgIHZvaWQgdW5pbmRlbnQoKTsKKyAg
dm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7CisgIHZvaWQg
d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpOworICBi
b29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBzdGF0aWMgc3Rk
OjpzdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKKworICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKKworICBDaGlsZFZhbHVl
cyBjaGlsZFZhbHVlc187CisgIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKKyAgc3RkOjpzdHJpbmcg
aW5kZW50U3RyaW5nXzsKKyAgaW50IHJpZ2h0TWFyZ2luXzsKKyAgaW50IGluZGVudFNpemVfOwor
ICBib29sIGFkZENoaWxkVmFsdWVzXzsKK307CisKKy8qKiBcYnJpZWYgV3JpdGVzIGEgVmFsdWUg
aW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZm9ybWF0IGluIGEKKyBo
dW1hbiBmcmllbmRseSB3YXksCisgICAgIHRvIGEgc3RyZWFtIHJhdGhlciB0aGFuIHRvIGEgc3Ry
aW5nLgorICoKKyAqIFRoZSBydWxlcyBmb3IgbGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBm
b2xsb3c6CisgKiAtIE9iamVjdCB2YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQg
e30gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIG5vdCBlbXB0eSB0
aGUgcHJpbnQgJ3snLCBsaW5lIGJyZWFrICYgaW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCisg
bGluZQorICogICAgICAgYW5kIHRoZW4gdW5pbmRlbnQgYW5kIGxpbmUgYnJlYWsgYW5kIHByaW50
ICd9Jy4KKyAqIC0gQXJyYXkgdmFsdWU6CisgKiAgICAgLSBpZiBlbXB0eSB0aGVuIHByaW50IFtd
IHdpdGhvdXQgaW5kZW50IGFuZCBsaW5lIGJyZWFrCisgKiAgICAgLSBpZiB0aGUgYXJyYXkgY29u
dGFpbnMgbm8gb2JqZWN0IHZhbHVlLCBlbXB0eSBhcnJheSBvciBzb21lIG90aGVyIHZhbHVlCisg
dHlwZXMsCisgKiAgICAgICBhbmQgYWxsIHRoZSB2YWx1ZXMgZml0IG9uIG9uZSBsaW5lcywgdGhl
biBwcmludCB0aGUgYXJyYXkgb24gYSBzaW5nbGUKKyBsaW5lLgorICogICAgIC0gb3RoZXJ3aXNl
LCBpdCB0aGUgdmFsdWVzIGRvIG5vdCBmaXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250
YWlucworICogICAgICAgb2JqZWN0IG9yIG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUg
dmFsdWUgcGVyIGxpbmUuCisgKgorICogSWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0
aGV5IGFyZSBvdXRwdXRlZCBhY2NvcmRpbmcgdG8gdGhlaXIKKyAjQ29tbWVudFBsYWNlbWVudC4K
KyAqCisgKiBccGFyYW0gaW5kZW50YXRpb24gRWFjaCBsZXZlbCB3aWxsIGJlIGluZGVudGVkIGJ5
IHRoaXMgYW1vdW50IGV4dHJhLgorICogXHNhIFJlYWRlciwgVmFsdWUsIFZhbHVlOjpzZXRDb21t
ZW50KCkKKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgorICovCitjbGFz
cyBKU09OX0FQSSBTdHlsZWRTdHJlYW1Xcml0ZXIgeworcHVibGljOgorICBTdHlsZWRTdHJlYW1X
cml0ZXIoc3RkOjpzdHJpbmcgaW5kZW50YXRpb24gPSAiXHQiKTsKKyAgflN0eWxlZFN0cmVhbVdy
aXRlcigpIHt9CisKK3B1YmxpYzoKKyAgLyoqIFxicmllZiBTZXJpYWxpemUgYSBWYWx1ZSBpbiA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQuCisgICAqIFxwYXJh
bSBvdXQgU3RyZWFtIHRvIHdyaXRlIHRvLiAoQ2FuIGJlIG9zdHJpbmdzdHJlYW0sIGUuZy4pCisg
ICAqIFxwYXJhbSByb290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KKyAgICogXG5vdGUgVGhlcmUgaXMg
bm8gcG9pbnQgaW4gZGVyaXZpbmcgZnJvbSBXcml0ZXIsIHNpbmNlIHdyaXRlKCkgc2hvdWxkIG5v
dAorICAgKiByZXR1cm4gYSB2YWx1ZS4KKyAgICovCisgIHZvaWQgd3JpdGUoc3RkOjpvc3RyZWFt
JiBvdXQsIGNvbnN0IFZhbHVlJiByb290KTsKKworcHJpdmF0ZToKKyAgdm9pZCB3cml0ZVZhbHVl
KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZhbHVlKGNvbnN0IFZhbHVl
JiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAg
dm9pZCBwdXNoVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUlu
ZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
OworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7CisgIHZvaWQgd3JpdGVDb21t
ZW50QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpOworICB2b2lkIHdyaXRlQ29tbWVudEFm
dGVyVmFsdWVPblNhbWVMaW5lKGNvbnN0IFZhbHVlJiByb290KTsKKyAgYm9vbCBoYXNDb21tZW50
Rm9yVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgc3RhdGljIHN0ZDo6c3RyaW5nIG5vcm1h
bGl6ZUVPTChjb25zdCBzdGQ6OnN0cmluZyYgdGV4dCk7CisKKyAgdHlwZWRlZiBzdGQ6OnZlY3Rv
cjxzdGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRWYWx1ZXMgY2hpbGRWYWx1ZXNf
OworICBzdGQ6Om9zdHJlYW0qIGRvY3VtZW50XzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50U3RyaW5n
XzsKKyAgaW50IHJpZ2h0TWFyZ2luXzsKKyAgc3RkOjpzdHJpbmcgaW5kZW50YXRpb25fOworICBi
b29sIGFkZENoaWxkVmFsdWVzXyA6IDE7CisgIGJvb2wgaW5kZW50ZWRfIDogMTsKK307CisKKyNp
ZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0
cmluZyhJbnQgdmFsdWUpOworc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhVSW50
IHZhbHVlKTsKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorc3RkOjpzdHJp
bmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0SW50IHZhbHVlKTsKK3N0ZDo6c3RyaW5n
IEpTT05fQVBJIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdFVJbnQgdmFsdWUpOworc3RkOjpzdHJpbmcg
SlNPTl9BUEkgdmFsdWVUb1N0cmluZyhkb3VibGUgdmFsdWUpOworc3RkOjpzdHJpbmcgSlNPTl9B
UEkgdmFsdWVUb1N0cmluZyhib29sIHZhbHVlKTsKK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHZhbHVl
VG9RdW90ZWRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpOworCisvLy8gXGJyaWVmIE91dHB1dCB1
c2luZyB0aGUgU3R5bGVkU3RyZWFtV3JpdGVyLgorLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+Pigp
CitKU09OX0FQSSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiwgY29uc3Qg
VmFsdWUmIHJvb3QpOworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNpZiBkZWZpbmVkKEpTT05D
UFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocG9wKQor
I2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklO
RykKKworI2VuZGlmIC8vIEpTT05fV1JJVEVSX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRlci5oCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcg
b2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vYXNzZXJ0aW9ucy5oCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBE
aXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVk
IGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJ
Q0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5l
dC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQKKyNk
ZWZpbmUgQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5DTFVERUQKKworI2luY2x1ZGUgPHN0ZGxp
Yi5oPgorI2luY2x1ZGUgPHNzdHJlYW0+CisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1B
VElPTikKKyNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKworLyoqIEl0IHNob3VsZCBub3QgYmUgcG9zc2libGUgZm9yIGEgbWFs
aWNpb3VzbHkgZGVzaWduZWQgZmlsZSB0bworICogIGNhdXNlIGFuIGFib3J0KCkgb3Igc2VnLWZh
dWx0LCBzbyB0aGVzZSBtYWNyb3MgYXJlIHVzZWQgb25seQorICogIGZvciBwcmUtY29uZGl0aW9u
IHZpb2xhdGlvbnMgYW5kIGludGVybmFsIGxvZ2ljIGVycm9ycy4KKyAqLworI2lmIEpTT05fVVNF
X0VYQ0VQVElPTgorCisvLyBAdG9kbyA8PSBhZGQgZGV0YWlsIGFib3V0IGNvbmRpdGlvbiBpbiBl
eGNlcHRpb24KKyMgZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHtpZiAoIShjb25kaXRpb24pKSB7
SnNvbjo6dGhyb3dMb2dpY0Vycm9yKCAiYXNzZXJ0IGpzb24gZmFpbGVkIiApO319CisKKyMgZGVm
aW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2UpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0ZDo6b3N0
cmluZ3N0cmVhbSBvc3M7IG9zcyA8PCBtZXNzYWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBKc29uOjp0aHJvd0xvZ2ljRXJyb3Iob3NzLnN0cigpKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgYWJvcnQoKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICB9CisKKyNlbHNlIC8vIEpTT05fVVNFX0VYQ0VQVElPTgorCisjIGRlZmluZSBKU09O
X0FTU0VSVChjb25kaXRpb24pIGFzc2VydChjb25kaXRpb24pCisKKy8vIFRoZSBjYWxsIHRvIGFz
c2VydCgpIHdpbGwgc2hvdyB0aGUgZmFpbHVyZSBtZXNzYWdlIGluIGRlYnVnIGJ1aWxkcy4gSW4K
Ky8vIHJlbGVhc2UgYnVpbGRzIHdlIGFib3J0LCBmb3IgYSBjb3JlLWR1bXAgb3IgZGVidWdnZXIu
CisjIGRlZmluZSBKU09OX0ZBSUxfTUVTU0FHRShtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBz
dGQ6Om9zdHJpbmdzdHJlYW0gb3NzOyBvc3MgPDwgbWVzc2FnZTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgYXNzZXJ0KGZhbHNlICYmIG9zcy5zdHIoKS5jX3N0cigp
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGFib3J0KCk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgfQorCisKKyNlbmRpZgorCisjZGVmaW5lIEpTT05fQVNTRVJUX01FU1NB
R0UoY29uZGl0aW9uLCBtZXNzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICBpZiAoIShjb25kaXRpb24pKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBKU09OX0ZBSUxfTUVTU0FHRShtZXNzYWdlKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKwor
I2VuZGlmIC8vIENQUFRMX0pTT05fQVNTRVJUSU9OU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3NlcnRpb25z
LmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisjZW5kaWYgLy9pZm5kZWYgSlNPTl9BTUFM
R0FURURfSF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3Ny
Yy9qc29uY3BwLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbmNwcC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTYzMjg3MzI3YzBkNjYzMjE1MDVlYWQyZDJlZTQ2N2U3MzlmMTVlNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbmNwcC5jcHAK
QEAgLTAsMCArMSw1MjY2IEBACisvLy8gSnNvbi1jcHAgYW1hbGdhdGVkIHNvdXJjZSAoaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNl
ZCB3aXRoICNpbmNsdWRlICJqc29uL2pzb24uaCIKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVn
aW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisv
KgorVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55
aW5nIGRvY3VtZW50YXRpb24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGljYXRpb25z
LCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgorCitUaGUg
YXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNvcHlyaWdo
dCBpbiBhbGwgCitqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1l
ci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50
byB0aGUgUHVibGljIERvbWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVj
b2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgorMjAxMCks
IHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVw
aWxsZXVyLCBhbmQgaXMKK3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vu
c2UgKHNlZSBiZWxvdykuCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIFB1Ymxp
YyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkgY2hvb3Nl
IHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIgdGhlIAor
Y29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVuZGVyIHRo
ZSB0ZXJtcyBvZiBkdWFsIAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRpb25zIGRl
c2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlzIGFib3V0
IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFuZCBpcwor
ZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2YgdGhlIE1J
VCBMaWNlbnNlIGZvbGxvd3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChjKSAyMDA3
LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24sIGluY2x1
ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCittb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMKK29mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv
ZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UworQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOCitBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sIE9VVCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyhFTkQgTElDRU5TRSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0aWJsZSB3
aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGluZyBvbmUg
YWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3IgbnVpc2Fu
Y2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZQor
YW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0IGJ5IGFj
Y2VwdGluZyB0aGUKK1B1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGljZW5zZSB5
b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworCisKKworCisKKyNpbmNsdWRlICJqc29uL2pzb24uaCIKKworI2lmbmRlZiBK
U09OX0lTX0FNQUxHQU1BVElPTgorI2Vycm9yICJDb21waWxlIHdpdGggLUkgUEFUSF9UT19KU09O
X0RJUkVDVE9SWSIKKyNlbmRpZgorCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBv
ZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3Rvb2wuaAorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlz
dHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBh
bmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNF
TlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQv
TElDRU5TRQorCisjaWZuZGVmIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECisjZGVm
aW5lIExJQl9KU09OQ1BQX0pTT05fVE9PTF9IX0lOQ0xVREVECisKKy8qIFRoaXMgaGVhZGVyIHBy
b3ZpZGVzIGNvbW1vbiBzdHJpbmcgbWFuaXB1bGF0aW9uIHN1cHBvcnQsIHN1Y2ggYXMgVVRGLTgs
CisgKiBwb3J0YWJsZSBjb252ZXJzaW9uIGZyb20vdG8gc3RyaW5nLi4uCisgKgorICogSXQgaXMg
YW4gaW50ZXJuYWwgaGVhZGVyIHRoYXQgbXVzdCBub3QgYmUgZXhwb3NlZC4KKyAqLworCituYW1l
c3BhY2UgSnNvbiB7CisKKy8vLyBDb252ZXJ0cyBhIHVuaWNvZGUgY29kZS1wb2ludCB0byBVVEYt
OC4KK3N0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgY29kZVBvaW50VG9VVEY4KHVuc2lnbmVkIGlu
dCBjcCkgeworICBzdGQ6OnN0cmluZyByZXN1bHQ7CisKKyAgLy8gYmFzZWQgb24gZGVzY3JpcHRp
b24gZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi04CisKKyAgaWYgKGNwIDw9
IDB4N2YpIHsKKyAgICByZXN1bHQucmVzaXplKDEpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19j
YXN0PGNoYXI+KGNwKTsKKyAgfSBlbHNlIGlmIChjcCA8PSAweDdGRikgeworICAgIHJlc3VsdC5y
ZXNpemUoMik7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNm
ICYgY3ApKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0aWNfY2FzdDxjaGFyPigweEMwIHwgKDB4MWYg
JiAoY3AgPj4gNikpKTsKKyAgfSBlbHNlIGlmIChjcCA8PSAweEZGRkYpIHsKKyAgICByZXN1bHQu
cmVzaXplKDMpOworICAgIHJlc3VsdFsyXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoMHgz
ZiAmIGNwKSk7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNm
ICYgKGNwID4+IDYpKSk7CisgICAgcmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhFMCB8
ICgweGYgJiAoY3AgPj4gMTIpKSk7CisgIH0gZWxzZSBpZiAoY3AgPD0gMHgxMEZGRkYpIHsKKyAg
ICByZXN1bHQucmVzaXplKDQpOworICAgIHJlc3VsdFszXSA9IHN0YXRpY19jYXN0PGNoYXI+KDB4
ODAgfCAoMHgzZiAmIGNwKSk7CisgICAgcmVzdWx0WzJdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHg4
MCB8ICgweDNmICYgKGNwID4+IDYpKSk7CisgICAgcmVzdWx0WzFdID0gc3RhdGljX2Nhc3Q8Y2hh
cj4oMHg4MCB8ICgweDNmICYgKGNwID4+IDEyKSkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19j
YXN0PGNoYXI+KDB4RjAgfCAoMHg3ICYgKGNwID4+IDE4KSkpOworICB9CisKKyAgcmV0dXJuIHJl
c3VsdDsKK30KKworLy8vIFJldHVybnMgdHJ1ZSBpZiBjaCBpcyBhIGNvbnRyb2wgY2hhcmFjdGVy
IChpbiByYW5nZSBbMSwzMV0pLgorc3RhdGljIGlubGluZSBib29sIGlzQ29udHJvbENoYXJhY3Rl
cihjaGFyIGNoKSB7IHJldHVybiBjaCA+IDAgJiYgY2ggPD0gMHgxRjsgfQorCitlbnVtIHsKKyAg
Ly8vIENvbnN0YW50IHRoYXQgc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRoYXQgbXVz
dCBiZSBwYXNzZWQgdG8KKyAgLy8vIHVpbnRUb1N0cmluZy4KKyAgdWludFRvU3RyaW5nQnVmZmVy
U2l6ZSA9IDMgKiBzaXplb2YoTGFyZ2VzdFVJbnQpICsgMQorfTsKKworLy8gRGVmaW5lcyBhIGNo
YXIgYnVmZmVyIGZvciB1c2Ugd2l0aCB1aW50VG9TdHJpbmcoKS4KK3R5cGVkZWYgY2hhciBVSW50
VG9TdHJpbmdCdWZmZXJbdWludFRvU3RyaW5nQnVmZmVyU2l6ZV07CisKKy8qKiBDb252ZXJ0cyBh
biB1bnNpZ25lZCBpbnRlZ2VyIHRvIHN0cmluZy4KKyAqIEBwYXJhbSB2YWx1ZSBVbnNpZ25lZCBp
bnRlcmdlciB0byBjb252ZXJ0IHRvIHN0cmluZworICogQHBhcmFtIGN1cnJlbnQgSW5wdXQvT3V0
cHV0IHN0cmluZyBidWZmZXIuCisgKiAgICAgICAgTXVzdCBoYXZlIGF0IGxlYXN0IHVpbnRUb1N0
cmluZ0J1ZmZlclNpemUgY2hhcnMgZnJlZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHVpbnRU
b1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSwgY2hhciomIGN1cnJlbnQpIHsKKyAgKi0tY3VycmVu
dCA9IDA7CisgIGRvIHsKKyAgICAqLS1jdXJyZW50ID0gc3RhdGljX2Nhc3Q8c2lnbmVkIGNoYXI+
KHZhbHVlICUgMTBVICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KCcwJykpOworICAgIHZhbHVlIC89
IDEwOworICB9IHdoaWxlICh2YWx1ZSAhPSAwKTsKK30KKworLyoqIENoYW5nZSAnLCcgdG8gJy4n
IGV2ZXJ5d2hlcmUgaW4gYnVmZmVyLgorICoKKyAqIFdlIGhhZCBhIHNvcGhpc3RpY2F0ZWQgd2F5
LCBidXQgaXQgZGlkIG5vdCB3b3JrIGluIFdpbkNFLgorICogQHNlZSBodHRwczovL2dpdGh1Yi5j
b20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwL3B1bGwvOQorICovCitzdGF0aWMgaW5saW5l
IHZvaWQgZml4TnVtZXJpY0xvY2FsZShjaGFyKiBiZWdpbiwgY2hhciogZW5kKSB7CisgIHdoaWxl
IChiZWdpbiA8IGVuZCkgeworICAgIGlmICgqYmVnaW4gPT0gJywnKSB7CisgICAgICAqYmVnaW4g
PSAnLic7CisgICAgfQorICAgICsrYmVnaW47CisgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSnNv
biB7CisKKyNlbmRpZiAvLyBMSUJfSlNPTkNQUF9KU09OX1RPT0xfSF9JTkNMVURFRAorCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNv
bl90b29sLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3JlYWRl
ci5jcHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMSBCYXB0aXN0
ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMg
ZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9u
LgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25j
cHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdB
TUFUSU9OKQorI2luY2x1ZGUgPGpzb24vYXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPGpzb24vcmVh
ZGVyLmg+CisjaW5jbHVkZSA8anNvbi92YWx1ZS5oPgorI2luY2x1ZGUgImpzb25fdG9vbC5oIgor
I2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPHV0
aWxpdHk+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8
Y3N0cmluZz4KKyNpbmNsdWRlIDxpc3RyZWFtPgorI2luY2x1ZGUgPHNzdHJlYW0+CisjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxsaW1pdHM+CisKKyNpZiBkZWZp
bmVkKF9NU0NfVkVSKQorI2lmICFkZWZpbmVkKFdJTkNFKSAmJiBkZWZpbmVkKF9fU1REQ19TRUNV
UkVfTElCX18pICYmIF9NU0NfVkVSID49IDE1MDAgLy8gVkMrKyA5LjAgYW5kIGFib3ZlIAorI2Rl
ZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKKyNlbGlmIF9NU0NfVkVSID49IDE5MDAgLy8gVkMrKyAx
NC4wIGFuZCBhYm92ZQorI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRmCisjZWxzZQorI2Rl
ZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX0FORFJPSURf
XykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQorI2RlZmluZSBzbnByaW50ZiBzbnByaW50ZgorI2Vs
aWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAorI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRm
CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19RTlhOVE9fXykKKyNkZWZpbmUgc3NjYW5mIHN0ZDo6
c3NjYW5mCisjZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE0
MDAgLy8gVkMrKyA4LjAKKy8vIERpc2FibGUgd2FybmluZyBhYm91dCBzdHJkdXAgYmVpbmcgZGVw
cmVjYXRlZC4KKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikKKyNlbmRpZgorCitzdGF0
aWMgaW50IGNvbnN0IHN0YWNrTGltaXRfZyA9IDEwMDA7CitzdGF0aWMgaW50ICAgICAgIHN0YWNr
RGVwdGhfZyA9IDA7ICAvLyBzZWUgcmVhZFZhbHVlKCkKKworbmFtZXNwYWNlIEpzb24geworCisj
aWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8fCAoZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgX0NQ
UExJQl9WRVIgPj0gNTIwKQordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8Q2hhclJlYWRlcj4gQ2hh
clJlYWRlclB0cjsKKyNlbHNlCit0eXBlZGVmIHN0ZDo6YXV0b19wdHI8Q2hhclJlYWRlcj4gICBD
aGFyUmVhZGVyUHRyOworI2VuZGlmCisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIEZlYXR1
cmVzCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitGZWF0dXJlczo6RmVh
dHVyZXMoKQorICAgIDogYWxsb3dDb21tZW50c18odHJ1ZSksIHN0cmljdFJvb3RfKGZhbHNlKSwK
KyAgICAgIGFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfKGZhbHNlKSwgYWxsb3dOdW1lcmlj
S2V5c18oZmFsc2UpIHt9CisKK0ZlYXR1cmVzIEZlYXR1cmVzOjphbGwoKSB7IHJldHVybiBGZWF0
dXJlcygpOyB9CisKK0ZlYXR1cmVzIEZlYXR1cmVzOjpzdHJpY3RNb2RlKCkgeworICBGZWF0dXJl
cyBmZWF0dXJlczsKKyAgZmVhdHVyZXMuYWxsb3dDb21tZW50c18gPSBmYWxzZTsKKyAgZmVhdHVy
ZXMuc3RyaWN0Um9vdF8gPSB0cnVlOworICBmZWF0dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vo
b2xkZXJzXyA9IGZhbHNlOworICBmZWF0dXJlcy5hbGxvd051bWVyaWNLZXlzXyA9IGZhbHNlOwor
ICByZXR1cm4gZmVhdHVyZXM7Cit9CisKKy8vIEltcGxlbWVudGF0aW9uIG9mIGNsYXNzIFJlYWRl
cgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworc3RhdGljIGJvb2wgY29u
dGFpbnNOZXdMaW5lKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJlYWRlcjo6TG9jYXRpb24gZW5k
KSB7CisgIGZvciAoOyBiZWdpbiA8IGVuZDsgKytiZWdpbikKKyAgICBpZiAoKmJlZ2luID09ICdc
bicgfHwgKmJlZ2luID09ICdccicpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgcmV0dXJuIGZhbHNl
OworfQorCisvLyBDbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitSZWFkZXI6OlJlYWRlcigp
CisgICAgOiBlcnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50
XygpLCBsYXN0VmFsdWVFbmRfKCksCisgICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3Jl
XygpLCBmZWF0dXJlc18oRmVhdHVyZXM6OmFsbCgpKSwKKyAgICAgIGNvbGxlY3RDb21tZW50c18o
KSB7fQorCitSZWFkZXI6OlJlYWRlcihjb25zdCBGZWF0dXJlcyYgZmVhdHVyZXMpCisgICAgOiBl
cnJvcnNfKCksIGRvY3VtZW50XygpLCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0
VmFsdWVFbmRfKCksCisgICAgICBsYXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLCBmZWF0
dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgeworfQorCitib29sCitSZWFkZXI6
OnBhcnNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29s
bGVjdENvbW1lbnRzKSB7CisgIGRvY3VtZW50XyA9IGRvY3VtZW50OworICBjb25zdCBjaGFyKiBi
ZWdpbiA9IGRvY3VtZW50Xy5jX3N0cigpOworICBjb25zdCBjaGFyKiBlbmQgPSBiZWdpbiArIGRv
Y3VtZW50Xy5sZW5ndGgoKTsKKyAgcmV0dXJuIHBhcnNlKGJlZ2luLCBlbmQsIHJvb3QsIGNvbGxl
Y3RDb21tZW50cyk7Cit9CisKK2Jvb2wgUmVhZGVyOjpwYXJzZShzdGQ6OmlzdHJlYW0mIHNpbiwg
VmFsdWUmIHJvb3QsIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7CisgIC8vIHN0ZDo6aXN0cmVhbV9p
dGVyYXRvcjxjaGFyPiBiZWdpbihzaW4pOworICAvLyBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8Y2hh
cj4gZW5kOworICAvLyBUaG9zZSB3b3VsZCBhbGxvdyBzdHJlYW1lZCBpbnB1dCBmcm9tIGEgZmls
ZSwgaWYgcGFyc2UoKSB3ZXJlIGEKKyAgLy8gdGVtcGxhdGUgZnVuY3Rpb24uCisKKyAgLy8gU2lu
Y2Ugc3RkOjpzdHJpbmcgaXMgcmVmZXJlbmNlLWNvdW50ZWQsIHRoaXMgYXQgbGVhc3QgZG9lcyBu
b3QKKyAgLy8gY3JlYXRlIGFuIGV4dHJhIGNvcHkuCisgIHN0ZDo6c3RyaW5nIGRvYzsKKyAgc3Rk
OjpnZXRsaW5lKHNpbiwgZG9jLCAoY2hhcilFT0YpOworICByZXR1cm4gcGFyc2UoZG9jLCByb290
LCBjb2xsZWN0Q29tbWVudHMpOworfQorCitib29sIFJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciog
YmVnaW5Eb2MsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAg
ICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVj
dENvbW1lbnRzKSB7CisgIGlmICghZmVhdHVyZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgY29s
bGVjdENvbW1lbnRzID0gZmFsc2U7CisgIH0KKworICBiZWdpbl8gPSBiZWdpbkRvYzsKKyAgZW5k
XyA9IGVuZERvYzsKKyAgY29sbGVjdENvbW1lbnRzXyA9IGNvbGxlY3RDb21tZW50czsKKyAgY3Vy
cmVudF8gPSBiZWdpbl87CisgIGxhc3RWYWx1ZUVuZF8gPSAwOworICBsYXN0VmFsdWVfID0gMDsK
KyAgY29tbWVudHNCZWZvcmVfID0gIiI7CisgIGVycm9yc18uY2xlYXIoKTsKKyAgd2hpbGUgKCFu
b2Rlc18uZW1wdHkoKSkKKyAgICBub2Rlc18ucG9wKCk7CisgIG5vZGVzXy5wdXNoKCZyb290KTsK
KworICBzdGFja0RlcHRoX2cgPSAwOyAgLy8gWWVzLCB0aGlzIGlzIGJhZCBjb2RpbmcsIGJ1dCBv
cHRpb25zIGFyZSBsaW1pdGVkLgorICBib29sIHN1Y2Nlc3NmdWwgPSByZWFkVmFsdWUoKTsKKyAg
VG9rZW4gdG9rZW47CisgIHNraXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgaWYgKGNvbGxlY3RD
b21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQorICAgIHJvb3Quc2V0Q29tbWVu
dChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7CisgIGlmIChmZWF0dXJlc18uc3RyaWN0
Um9vdF8pIHsKKyAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFyb290LmlzT2JqZWN0KCkpIHsK
KyAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlkZWFsbHkgc2hv
dWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCisgICAgICAvLyBpbiBkb2MKKyAgICAgIHRva2VuLnR5
cGVfID0gdG9rZW5FcnJvcjsKKyAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9jOworICAgICAg
dG9rZW4uZW5kXyA9IGVuZERvYzsKKyAgICAgIGFkZEVycm9yKAorICAgICAgICAgICJBIHZhbGlk
IEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVl
LiIsCisgICAgICAgICAgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQor
ICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRWYWx1ZSgpIHsKKyAg
Ly8gVGhpcyBpcyBhIG5vbi1yZWVudHJhbnQgd2F5IHRvIHN1cHBvcnQgYSBzdGFja0xpbWl0LiBU
ZXJyaWJsZSEKKyAgLy8gQnV0IHRoaXMgZGVwcmVjYXRlZCBjbGFzcyBoYXMgYSBzZWN1cml0eSBw
cm9ibGVtOiBCYWQgaW5wdXQgY2FuCisgIC8vIGNhdXNlIGEgc2VnLWZhdWx0LiBUaGlzIHNlZW1z
IGxpa2UgYSBmYWlyLCBiaW5hcnktY29tcGF0aWJsZSB3YXkKKyAgLy8gdG8gcHJldmVudCB0aGUg
cHJvYmxlbS4KKyAgaWYgKHN0YWNrRGVwdGhfZyA+PSBzdGFja0xpbWl0X2cpIHRocm93UnVudGlt
ZUVycm9yKCJFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLiIpOworICArK3N0YWNr
RGVwdGhfZzsKKworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9rZW4pOwor
ICBib29sIHN1Y2Nlc3NmdWwgPSB0cnVlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfICYmICFj
b21tZW50c0JlZm9yZV8uZW1wdHkoKSkgeworICAgIGN1cnJlbnRWYWx1ZSgpLnNldENvbW1lbnQo
Y29tbWVudHNCZWZvcmVfLCBjb21tZW50QmVmb3JlKTsKKyAgICBjb21tZW50c0JlZm9yZV8gPSAi
IjsKKyAgfQorCisgIHN3aXRjaCAodG9rZW4udHlwZV8pIHsKKyAgY2FzZSB0b2tlbk9iamVjdEJl
Z2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkT2JqZWN0KHRva2VuKTsKKyAgICBjdXJyZW50VmFs
dWUoKS5zZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNh
c2UgdG9rZW5BcnJheUJlZ2luOgorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQXJyYXkodG9rZW4pOwor
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAg
ICBicmVhazsKKyAgY2FzZSB0b2tlbk51bWJlcjoKKyAgICBzdWNjZXNzZnVsID0gZGVjb2RlTnVt
YmVyKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblN0cmluZzoKKyAgICBzdWNjZXNz
ZnVsID0gZGVjb2RlU3RyaW5nKHRva2VuKTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlblRydWU6
CisgICAgeworICAgIFZhbHVlIHYodHJ1ZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0g
YmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0g
YmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5GYWxzZToKKyAgICB7Cisg
ICAgVmFsdWUgdihmYWxzZSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Cisg
ICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsK
KyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsK
KyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdWxsOgorICAgIHsKKyAgICBWYWx1ZSB2
OworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgp
LnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFr
OworICBjYXNlIHRva2VuQXJyYXlTZXBhcmF0b3I6CisgIGNhc2UgdG9rZW5PYmplY3RFbmQ6Cisg
IGNhc2UgdG9rZW5BcnJheUVuZDoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93RHJvcHBlZE51bGxQ
bGFjZWhvbGRlcnNfKSB7CisgICAgICAvLyAiVW4tcmVhZCIgdGhlIGN1cnJlbnQgdG9rZW4gYW5k
IG1hcmsgdGhlIGN1cnJlbnQgdmFsdWUgYXMgYSBudWxsCisgICAgICAvLyB0b2tlbi4KKyAgICAg
IGN1cnJlbnRfLS07CisgICAgICBWYWx1ZSB2OworICAgICAgY3VycmVudFZhbHVlKCkuc3dhcFBh
eWxvYWQodik7CisgICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydChjdXJyZW50XyAt
IGJlZ2luXyAtIDEpOworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVu
dF8gLSBiZWdpbl8pOworICAgICAgYnJlYWs7CisgICAgfSAvLyBFbHNlLCBmYWxsIHRocm91Z2gu
Li4KKyAgZGVmYXVsdDoKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5z
dGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2Vu
LmVuZF8gLSBiZWdpbl8pOworICAgIHJldHVybiBhZGRFcnJvcigiU3ludGF4IGVycm9yOiB2YWx1
ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLiIsIHRva2VuKTsKKyAgfQorCisgIGlmIChjb2xs
ZWN0Q29tbWVudHNfKSB7CisgICAgbGFzdFZhbHVlRW5kXyA9IGN1cnJlbnRfOworICAgIGxhc3RW
YWx1ZV8gPSAmY3VycmVudFZhbHVlKCk7CisgIH0KKworICAtLXN0YWNrRGVwdGhfZzsKKyAgcmV0
dXJuIHN1Y2Nlc3NmdWw7Cit9CisKK3ZvaWQgUmVhZGVyOjpza2lwQ29tbWVudFRva2VucyhUb2tl
biYgdG9rZW4pIHsKKyAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGRvIHsK
KyAgICAgIHJlYWRUb2tlbih0b2tlbik7CisgICAgfSB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9r
ZW5Db21tZW50KTsKKyAgfSBlbHNlIHsKKyAgICByZWFkVG9rZW4odG9rZW4pOworICB9Cit9CisK
K2Jvb2wgUmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7CisgIHNraXBTcGFjZXMoKTsK
KyAgdG9rZW4uc3RhcnRfID0gY3VycmVudF87CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7Cisg
IGJvb2wgb2sgPSB0cnVlOworICBzd2l0Y2ggKGMpIHsKKyAgY2FzZSAneyc6CisgICAgdG9rZW4u
dHlwZV8gPSB0b2tlbk9iamVjdEJlZ2luOworICAgIGJyZWFrOworICBjYXNlICd9JzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0RW5kOworICAgIGJyZWFrOworICBjYXNlICdbJzoKKyAg
ICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnXSc6
CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOworICAgIGJyZWFrOworICBjYXNlICci
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmluZygp
OworICAgIGJyZWFrOworICBjYXNlICcvJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQ29tbWVu
dDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7CisgICAgYnJlYWs7CisgIGNhc2UgJzAnOgorICBj
YXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNhc2UgJzMnOgorICBjYXNlICc0JzoKKyAgY2FzZSAn
NSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3JzoKKyAgY2FzZSAnOCc6CisgIGNhc2UgJzknOgor
ICBjYXNlICctJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAgIHJlYWROdW1i
ZXIoKTsKKyAgICBicmVhazsKKyAgY2FzZSAndCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblRy
dWU7CisgICAgb2sgPSBtYXRjaCgicnVlIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2UgJ2YnOgor
ICAgIHRva2VuLnR5cGVfID0gdG9rZW5GYWxzZTsKKyAgICBvayA9IG1hdGNoKCJhbHNlIiwgNCk7
CisgICAgYnJlYWs7CisgIGNhc2UgJ24nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOwor
ICAgIG9rID0gbWF0Y2goInVsbCIsIDMpOworICAgIGJyZWFrOworICBjYXNlICcsJzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7CisgICAgYnJlYWs7CisgIGNhc2UgJzon
OgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgICAgYnJlYWs7Cisg
IGNhc2UgMDoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07CisgICAgYnJlYWs7
CisgIGRlZmF1bHQ6CisgICAgb2sgPSBmYWxzZTsKKyAgICBicmVhazsKKyAgfQorICBpZiAoIW9r
KQorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uZW5kXyA9IGN1cnJlbnRf
OworICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZWFkZXI6OnNraXBTcGFjZXMoKSB7CisgIHdo
aWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnRfOworICAgIGlm
IChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1xuJykKKyAgICAg
ICsrY3VycmVudF87CisgICAgZWxzZQorICAgICAgYnJlYWs7CisgIH0KK30KKworYm9vbCBSZWFk
ZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKSB7CisgIGlmIChl
bmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgaW50
IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKKyAgd2hpbGUgKGluZGV4LS0pCisgICAgaWYgKGN1cnJl
bnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgY3Vy
cmVudF8gKz0gcGF0dGVybkxlbmd0aDsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVy
OjpyZWFkQ29tbWVudCgpIHsKKyAgTG9jYXRpb24gY29tbWVudEJlZ2luID0gY3VycmVudF8gLSAx
OworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIHN1Y2Nlc3NmdWwgPSBmYWxzZTsK
KyAgaWYgKGMgPT0gJyonKQorICAgIHN1Y2Nlc3NmdWwgPSByZWFkQ1N0eWxlQ29tbWVudCgpOwor
ICBlbHNlIGlmIChjID09ICcvJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENwcFN0eWxlQ29tbWVu
dCgpOworICBpZiAoIXN1Y2Nlc3NmdWwpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGlmIChjb2xs
ZWN0Q29tbWVudHNfKSB7CisgICAgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQgPSBjb21tZW50
QmVmb3JlOworICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250YWluc05ld0xpbmUobGFzdFZh
bHVlRW5kXywgY29tbWVudEJlZ2luKSkgeworICAgICAgaWYgKGMgIT0gJyonIHx8ICFjb250YWlu
c05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCisgICAgICAgIHBsYWNlbWVudCA9IGNv
bW1lbnRBZnRlck9uU2FtZUxpbmU7CisgICAgfQorCisgICAgYWRkQ29tbWVudChjb21tZW50QmVn
aW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitzdGF0
aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKFJlYWRlcjo6TG9jYXRpb24gYmVnaW4sIFJlYWRl
cjo6TG9jYXRpb24gZW5kKSB7CisgIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZWQ7CisgIG5vcm1hbGl6
ZWQucmVzZXJ2ZShlbmQgLSBiZWdpbik7CisgIFJlYWRlcjo6TG9jYXRpb24gY3VycmVudCA9IGJl
Z2luOworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBjaGFyIGMgPSAqY3VycmVudCsr
OworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmIChjdXJyZW50ICE9IGVuZCAmJiAqY3Vy
cmVudCA9PSAnXG4nKQorICAgICAgICAgLy8gY29udmVydCBkb3MgRU9MCisgICAgICAgICArK2N1
cnJlbnQ7CisgICAgICAvLyBjb252ZXJ0IE1hYyBFT0wKKyAgICAgIG5vcm1hbGl6ZWQgKz0gJ1xu
JzsKKyAgICB9IGVsc2UgeworICAgICAgbm9ybWFsaXplZCArPSBjOworICAgIH0KKyAgfQorICBy
ZXR1cm4gbm9ybWFsaXplZDsKK30KKwordm9pZAorUmVhZGVyOjphZGRDb21tZW50KExvY2F0aW9u
IGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIGFz
c2VydChjb2xsZWN0Q29tbWVudHNfKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIG5vcm1hbGl6ZWQg
PSBub3JtYWxpemVFT0woYmVnaW4sIGVuZCk7CisgIGlmIChwbGFjZW1lbnQgPT0gY29tbWVudEFm
dGVyT25TYW1lTGluZSkgeworICAgIGFzc2VydChsYXN0VmFsdWVfICE9IDApOworICAgIGxhc3RW
YWx1ZV8tPnNldENvbW1lbnQobm9ybWFsaXplZCwgcGxhY2VtZW50KTsKKyAgfSBlbHNlIHsKKyAg
ICBjb21tZW50c0JlZm9yZV8gKz0gbm9ybWFsaXplZDsKKyAgfQorfQorCitib29sIFJlYWRlcjo6
cmVhZENTdHlsZUNvbW1lbnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAg
Q2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09
ICcvJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsK
K30KKworYm9vbCBSZWFkZXI6OnJlYWRDcHBTdHlsZUNvbW1lbnQoKSB7CisgIHdoaWxlIChjdXJy
ZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9
PSAnXG4nKQorICAgICAgYnJlYWs7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgLy8gQ29u
c3VtZSBET1MgRU9MLiBJdCB3aWxsIGJlIG5vcm1hbGl6ZWQgaW4gYWRkQ29tbWVudC4KKyAgICAg
IGlmIChjdXJyZW50XyAhPSBlbmRfICYmICpjdXJyZW50XyA9PSAnXG4nKQorICAgICAgICBnZXRO
ZXh0Q2hhcigpOworICAgICAgLy8gQnJlYWsgb24gTW9jIE9TIDkgRU9MLgorICAgICAgYnJlYWs7
CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlYWRlcjo6cmVhZE51bWJl
cigpIHsKKyAgY29uc3QgY2hhciAqcCA9IGN1cnJlbnRfOworICBjaGFyIGMgPSAnMCc7IC8vIHN0
b3BnYXAgZm9yIGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCisgIC8vIGludGVncmFsIHBhcnQK
KyAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgIGMgPSAoY3VycmVudF8gPSBwKSA8
IGVuZF8gPyAqcCsrIDogMDsKKyAgLy8gZnJhY3Rpb25hbCBwYXJ0CisgIGlmIChjID09ICcuJykg
eworICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAo
YyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8g
KnArKyA6IDA7CisgIH0KKyAgLy8gZXhwb25lbnRpYWwgcGFydAorICBpZiAoYyA9PSAnZScgfHwg
YyA9PSAnRScpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7Cisg
ICAgaWYgKGMgPT0gJysnIHx8IGMgPT0gJy0nKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwg
ZW5kXyA/ICpwKysgOiAwOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAg
IGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorfQorCitib29sIFJl
YWRlcjo6cmVhZFN0cmluZygpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9
IGVuZF8pIHsKKyAgICBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAg
ICAgZ2V0TmV4dENoYXIoKTsKKyAgICBlbHNlIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOwor
ICB9CisgIHJldHVybiBjID09ICciJzsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRPYmplY3QoVG9r
ZW4mIHRva2VuU3RhcnQpIHsKKyAgVG9rZW4gdG9rZW5OYW1lOworICBzdGQ6OnN0cmluZyBuYW1l
OworICBWYWx1ZSBpbml0KG9iamVjdFZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxv
YWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3Rh
cnRfIC0gYmVnaW5fKTsKKyAgd2hpbGUgKHJlYWRUb2tlbih0b2tlbk5hbWUpKSB7CisgICAgYm9v
bCBpbml0aWFsVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUgKHRva2VuTmFtZS50eXBlXyA9PSB0
b2tlbkNvbW1lbnQgJiYgaW5pdGlhbFRva2VuT2spCisgICAgICBpbml0aWFsVG9rZW5PayA9IHJl
YWRUb2tlbih0b2tlbk5hbWUpOworICAgIGlmICghaW5pdGlhbFRva2VuT2spCisgICAgICBicmVh
azsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5kICYmIG5hbWUuZW1w
dHkoKSkgLy8gZW1wdHkgb2JqZWN0CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBuYW1lID0gIiI7
CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmluZykgeworICAgICAgaWYgKCFk
ZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9t
RXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgIH0gZWxzZSBpZiAodG9rZW5OYW1lLnR5cGVfID09
IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNLZXlzXykgeworICAgICAgVmFs
dWUgbnVtYmVyTmFtZTsKKyAgICAgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuTmFtZSwgbnVtYmVy
TmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsK
KyAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAg
IGJyZWFrOworICAgIH0KKworICAgIFRva2VuIGNvbG9uOworICAgIGlmICghcmVhZFRva2VuKGNv
bG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFyYXRvcikgeworICAgICAgcmV0
dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnOicgYWZ0ZXIgb2Jq
ZWN0IG1lbWJlciBuYW1lIiwgY29sb24sIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgVmFs
dWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbbmFtZV07CisgICAgbm9kZXNfLnB1c2goJnZhbHVl
KTsKKyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlm
ICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJv
cih0b2tlbk9iamVjdEVuZCk7CisKKyAgICBUb2tlbiBjb21tYTsKKyAgICBpZiAoIXJlYWRUb2tl
bihjb21tYSkgfHwKKyAgICAgICAgKGNvbW1hLnR5cGVfICE9IHRva2VuT2JqZWN0RW5kICYmIGNv
bW1hLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYKKyAgICAgICAgIGNvbW1hLnR5cGVf
ICE9IHRva2VuQ29tbWVudCkpIHsKKyAgICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisg
ICAgICAgICAgIk1pc3NpbmcgJywnIG9yICd9JyBpbiBvYmplY3QgZGVjbGFyYXRpb24iLCBjb21t
YSwgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBib29sIGZpbmFsaXplVG9rZW5PayA9IHRy
dWU7CisgICAgd2hpbGUgKGNvbW1hLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBmaW5hbGl6ZVRv
a2VuT2spCisgICAgICBmaW5hbGl6ZVRva2VuT2sgPSByZWFkVG9rZW4oY29tbWEpOworICAgIGlm
IChjb21tYS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCkKKyAgICAgIHJldHVybiB0cnVlOworICB9
CisgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAiTWlzc2luZyAnfScgb3Igb2Jq
ZWN0IG1lbWJlciBuYW1lIiwgdG9rZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7Cit9CisKK2Jvb2wg
UmVhZGVyOjpyZWFkQXJyYXkoVG9rZW4mIHRva2VuU3RhcnQpIHsKKyAgVmFsdWUgaW5pdChhcnJh
eVZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRW
YWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuU3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgc2tp
cFNwYWNlcygpOworICBpZiAoKmN1cnJlbnRfID09ICddJykgLy8gZW1wdHkgYXJyYXkKKyAgewor
ICAgIFRva2VuIGVuZEFycmF5OworICAgIHJlYWRUb2tlbihlbmRBcnJheSk7CisgICAgcmV0dXJu
IHRydWU7CisgIH0KKyAgaW50IGluZGV4ID0gMDsKKyAgZm9yICg7OykgeworICAgIFZhbHVlJiB2
YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW2luZGV4KytdOworICAgIG5vZGVzXy5wdXNoKCZ2YWx1ZSk7
CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5wb3AoKTsKKyAgICBpZiAo
IW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJyb3Io
dG9rZW5BcnJheUVuZCk7CisKKyAgICBUb2tlbiB0b2tlbjsKKyAgICAvLyBBY2NlcHQgQ29tbWVu
dCBhZnRlciBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgorICAgIG9rID0gcmVhZFRva2VuKHRva2Vu
KTsKKyAgICB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIG9rKSB7CisgICAg
ICBvayA9IHJlYWRUb2tlbih0b2tlbik7CisgICAgfQorICAgIGJvb2wgYmFkVG9rZW5UeXBlID0K
KyAgICAgICAgKHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlTZXBhcmF0b3IgJiYgdG9rZW4udHlw
ZV8gIT0gdG9rZW5BcnJheUVuZCk7CisgICAgaWYgKCFvayB8fCBiYWRUb2tlblR5cGUpIHsKKyAg
ICAgIHJldHVybiBhZGRFcnJvckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJywnIG9y
ICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbiIsIHRva2VuLCB0b2tlbkFycmF5RW5kKTsKKyAgICB9
CisgICAgaWYgKHRva2VuLnR5cGVfID09IHRva2VuQXJyYXlFbmQpCisgICAgICBicmVhazsKKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZU51bWJlcihUb2tlbiYg
dG9rZW4pIHsKKyAgVmFsdWUgZGVjb2RlZDsKKyAgaWYgKCFkZWNvZGVOdW1iZXIodG9rZW4sIGRl
Y29kZWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQo
ZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAt
IGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBi
ZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZU51bWJlcihU
b2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKSB7CisgIC8vIEF0dGVtcHRzIHRvIHBhcnNlIHRo
ZSBudW1iZXIgYXMgYW4gaW50ZWdlci4gSWYgdGhlIG51bWJlciBpcworICAvLyBsYXJnZXIgdGhh
biB0aGUgbWF4aW11bSBzdXBwb3J0ZWQgdmFsdWUgb2YgYW4gaW50ZWdlciB0aGVuCisgIC8vIHdl
IGRlY29kZSB0aGUgbnVtYmVyIGFzIGEgZG91YmxlLgorICBMb2NhdGlvbiBjdXJyZW50ID0gdG9r
ZW4uc3RhcnRfOworICBib29sIGlzTmVnYXRpdmUgPSAqY3VycmVudCA9PSAnLSc7CisgIGlmIChp
c05lZ2F0aXZlKQorICAgICsrY3VycmVudDsKKyAgLy8gVE9ETzogSGVscCB0aGUgY29tcGlsZXIg
ZG8gdGhlIGRpdiBhbmQgbW9kIGF0IGNvbXBpbGUgdGltZSBvciBnZXQgcmlkIG9mIHRoZW0uCisg
IFZhbHVlOjpMYXJnZXN0VUludCBtYXhJbnRlZ2VyVmFsdWUgPQorICAgICAgaXNOZWdhdGl2ZSA/
IFZhbHVlOjpMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdEludCkgKyAxCisgICAgICAgICAg
ICAgICAgIDogVmFsdWU6Om1heExhcmdlc3RVSW50OworICBWYWx1ZTo6TGFyZ2VzdFVJbnQgdGhy
ZXNob2xkID0gbWF4SW50ZWdlclZhbHVlIC8gMTA7CisgIFZhbHVlOjpMYXJnZXN0VUludCB2YWx1
ZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgdG9rZW4uZW5kXykgeworICAgIENoYXIgYyA9ICpj
dXJyZW50Kys7CisgICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKKyAgICAgIHJldHVybiBkZWNv
ZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOworICAgIFZhbHVlOjpVSW50IGRpZ2l0KGMgLSAnMCcp
OworICAgIGlmICh2YWx1ZSA+PSB0aHJlc2hvbGQpIHsKKyAgICAgIC8vIFdlJ3ZlIGhpdCBvciBl
eGNlZWRlZCB0aGUgbWF4IHZhbHVlIGRpdmlkZWQgYnkgMTAgKHJvdW5kZWQgZG93bikuIElmCisg
ICAgICAvLyBhKSB3ZSd2ZSBvbmx5IGp1c3QgdG91Y2hlZCB0aGUgbGltaXQsIGIpIHRoaXMgaXMg
dGhlIGxhc3QgZGlnaXQsIGFuZAorICAgICAgLy8gYykgaXQncyBzbWFsbCBlbm91Z2ggdG8gZml0
IGluIHRoYXQgcm91bmRpbmcgZGVsdGEsIHdlJ3JlIG9rYXkuCisgICAgICAvLyBPdGhlcndpc2Ug
dHJlYXQgdGhpcyBudW1iZXIgYXMgYSBkb3VibGUgdG8gYXZvaWQgb3ZlcmZsb3cuCisgICAgICBp
ZiAodmFsdWUgPiB0aHJlc2hvbGQgfHwgY3VycmVudCAhPSB0b2tlbi5lbmRfIHx8CisgICAgICAg
ICAgZGlnaXQgPiBtYXhJbnRlZ2VyVmFsdWUgJSAxMCkgeworICAgICAgICByZXR1cm4gZGVjb2Rl
RG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICAgIH0KKyAgICB9CisgICAgdmFsdWUgPSB2YWx1
ZSAqIDEwICsgZGlnaXQ7CisgIH0KKyAgaWYgKGlzTmVnYXRpdmUgJiYgdmFsdWUgPT0gbWF4SW50
ZWdlclZhbHVlKQorICAgIGRlY29kZWQgPSBWYWx1ZTo6bWluTGFyZ2VzdEludDsKKyAgZWxzZSBp
ZiAoaXNOZWdhdGl2ZSkKKyAgICBkZWNvZGVkID0gLVZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsK
KyAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhJbnQpKQor
ICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2YWx1ZSk7CisgIGVsc2UKKyAgICBkZWNv
ZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlRG91
YmxlKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRlY29kZURvdWJs
ZSh0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5z
d2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9r
ZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9r
ZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVj
b2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgZG91YmxlIHZhbHVl
ID0gMDsKKyAgc3RkOjpzdHJpbmcgYnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyk7Cisg
IHN0ZDo6aXN0cmluZ3N0cmVhbSBpcyhidWZmZXIpOworICBpZiAoIShpcyA+PiB2YWx1ZSkpCisg
ICAgcmV0dXJuIGFkZEVycm9yKCInIiArIHN0ZDo6c3RyaW5nKHRva2VuLnN0YXJ0XywgdG9rZW4u
ZW5kXykgKworICAgICAgICAgICAgICAgICAgICAgICAgIicgaXMgbm90IGEgbnVtYmVyLiIsCisg
ICAgICAgICAgICAgICAgICAgIHRva2VuKTsKKyAgZGVjb2RlZCA9IHZhbHVlOworICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pIHsKKyAg
c3RkOjpzdHJpbmcgZGVjb2RlZF9zdHJpbmc7CisgIGlmICghZGVjb2RlU3RyaW5nKHRva2VuLCBk
ZWNvZGVkX3N0cmluZykpCisgICAgcmV0dXJuIGZhbHNlOworICBWYWx1ZSBkZWNvZGVkKGRlY29k
ZWRfc3RyaW5nKTsKKyAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQoZGVjb2RlZCk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1
cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6OmRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0
ZDo6c3RyaW5nJiBkZWNvZGVkKSB7CisgIGRlY29kZWQucmVzZXJ2ZSh0b2tlbi5lbmRfIC0gdG9r
ZW4uc3RhcnRfIC0gMik7CisgIExvY2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF8gKyAxOyAv
LyBza2lwICciJworICBMb2NhdGlvbiBlbmQgPSB0b2tlbi5lbmRfIC0gMTsgICAgICAgLy8gZG8g
bm90IGluY2x1ZGUgJyInCisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAgIENoYXIgYyA9
ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJyInKQorICAgICAgYnJlYWs7CisgICAgZWxzZSBp
ZiAoYyA9PSAnXFwnKSB7CisgICAgICBpZiAoY3VycmVudCA9PSBlbmQpCisgICAgICAgIHJldHVy
biBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJy
ZW50KTsKKyAgICAgIENoYXIgZXNjYXBlID0gKmN1cnJlbnQrKzsKKyAgICAgIHN3aXRjaCAoZXNj
YXBlKSB7CisgICAgICBjYXNlICciJzoKKyAgICAgICAgZGVjb2RlZCArPSAnIic7CisgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSAnLyc6CisgICAgICAgIGRlY29kZWQgKz0gJy8nOworICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXFwnOworICAg
ICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2InOgorICAgICAgICBkZWNvZGVkICs9ICdcYic7Cisg
ICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnZic6CisgICAgICAgIGRlY29kZWQgKz0gJ1xmJzsK
KyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICduJzoKKyAgICAgICAgZGVjb2RlZCArPSAnXG4n
OworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3InOgorICAgICAgICBkZWNvZGVkICs9ICdc
cic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndCc6CisgICAgICAgIGRlY29kZWQgKz0g
J1x0JzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd1JzogeworICAgICAgICB1bnNpZ25l
ZCBpbnQgdW5pY29kZTsKKyAgICAgICAgaWYgKCFkZWNvZGVVbmljb2RlQ29kZVBvaW50KHRva2Vu
LCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgodW5pY29kZSk7CisgICAgICB9IGJyZWFrOwor
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGFkZEVycm9yKCJCYWQgZXNjYXBlIHNlcXVl
bmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKKyAgICAgIH0KKyAgICB9IGVsc2Ugewor
ICAgICAgZGVjb2RlZCArPSBjOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2RlUG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpIHsKKworICBpZiAoIWRl
Y29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkK
KyAgICByZXR1cm4gZmFsc2U7CisgIGlmICh1bmljb2RlID49IDB4RDgwMCAmJiB1bmljb2RlIDw9
IDB4REJGRikgeworICAgIC8vIHN1cnJvZ2F0ZSBwYWlycworICAgIGlmIChlbmQgLSBjdXJyZW50
IDwgNikKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAgICAgICAgICAiYWRkaXRpb25hbCBzaXgg
Y2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLiIsCisg
ICAgICAgICAgdG9rZW4sCisgICAgICAgICAgY3VycmVudCk7CisgICAgdW5zaWduZWQgaW50IHN1
cnJvZ2F0ZVBhaXI7CisgICAgaWYgKCooY3VycmVudCsrKSA9PSAnXFwnICYmICooY3VycmVudCsr
KSA9PSAndScpIHsKKyAgICAgIGlmIChkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4s
IGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFpcikpIHsKKyAgICAgICAgdW5pY29kZSA9IDB4MTAw
MDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwgMTApICsgKHN1cnJvZ2F0ZVBhaXIgJiAweDNGRik7
CisgICAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZQorICAgICAg
cmV0dXJuIGFkZEVycm9yKCJleHBlY3RpbmcgYW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4gdGhl
IHNlY29uZCBoYWxmIG9mICIKKyAgICAgICAgICAgICAgICAgICAgICAiYSB1bmljb2RlIHN1cnJv
Z2F0ZSBwYWlyIiwKKyAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICBjdXJyZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSZWFkZXI6
OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkgewor
ICBpZiAoZW5kIC0gY3VycmVudCA8IDQpCisgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAi
QmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0
ZWQuIiwKKyAgICAgICAgdG9rZW4sCisgICAgICAgIGN1cnJlbnQpOworICB1bmljb2RlID0gMDsK
KyAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKKyAgICBDaGFyIGMg
PSAqY3VycmVudCsrOworICAgIHVuaWNvZGUgKj0gMTY7CisgICAgaWYgKGMgPj0gJzAnICYmIGMg
PD0gJzknKQorICAgICAgdW5pY29kZSArPSBjIC0gJzAnOworICAgIGVsc2UgaWYgKGMgPj0gJ2En
ICYmIGMgPD0gJ2YnKQorICAgICAgdW5pY29kZSArPSBjIC0gJ2EnICsgMTA7CisgICAgZWxzZSBp
ZiAoYyA+PSAnQScgJiYgYyA8PSAnRicpCisgICAgICB1bmljb2RlICs9IGMgLSAnQScgKyAxMDsK
KyAgICBlbHNlCisgICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgIkJhZCB1bmljb2Rl
IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkLiIs
CisgICAgICAgICAgdG9rZW4sCisgICAgICAgICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wKK1JlYWRlcjo6YWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3Nh
Z2UsIFRva2VuJiB0b2tlbiwgTG9jYXRpb24gZXh0cmEpIHsKKyAgRXJyb3JJbmZvIGluZm87Cisg
IGluZm8udG9rZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZv
LmV4dHJhXyA9IGV4dHJhOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIFJlYWRlcjo6cmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVu
dGlsVG9rZW4pIHsKKyAgaW50IGVycm9yQ291bnQgPSBpbnQoZXJyb3JzXy5zaXplKCkpOworICBU
b2tlbiBza2lwOworICBmb3IgKDs7KSB7CisgICAgaWYgKCFyZWFkVG9rZW4oc2tpcCkpCisgICAg
ICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsgLy8gZGlzY2FyZCBlcnJvcnMgY2F1c2VkIGJ5
IHJlY292ZXJ5CisgICAgaWYgKHNraXAudHlwZV8gPT0gc2tpcFVudGlsVG9rZW4gfHwgc2tpcC50
eXBlXyA9PSB0b2tlbkVuZE9mU3RyZWFtKQorICAgICAgYnJlYWs7CisgIH0KKyAgZXJyb3JzXy5y
ZXNpemUoZXJyb3JDb3VudCk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZWFkZXI6OmFk
ZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgYWRkRXJyb3IobWVzc2Fn
ZSwgdG9rZW4pOworICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcihza2lwVW50aWxUb2tlbik7Cit9
CisKK1ZhbHVlJiBSZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0dXJuICoobm9kZXNfLnRvcCgp
KTsgfQorCitSZWFkZXI6OkNoYXIgUmVhZGVyOjpnZXROZXh0Q2hhcigpIHsKKyAgaWYgKGN1cnJl
bnRfID09IGVuZF8pCisgICAgcmV0dXJuIDA7CisgIHJldHVybiAqY3VycmVudF8rKzsKK30KKwor
dm9pZCBSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBsaW5lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNvbHVtbikgY29uc3QgeworICBM
b2NhdGlvbiBjdXJyZW50ID0gYmVnaW5fOworICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3Vy
cmVudDsKKyAgbGluZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgbG9jYXRpb24gJiYgY3VycmVu
dCAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHIn
KSB7CisgICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgKytjdXJyZW50OworICAg
ICAgbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfSBlbHNlIGlm
IChjID09ICdcbicpIHsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKyts
aW5lOworICAgIH0KKyAgfQorICAvLyBjb2x1bW4gJiBsaW5lIHN0YXJ0IGF0IDEKKyAgY29sdW1u
ID0gaW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOworICArK2xpbmU7Cit9CisKK3N0
ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0
aW9uKSBjb25zdCB7CisgIGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0aW9uTGluZUFuZENv
bHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJbMTggKyAxNiArIDE2
ICsgMV07CisgIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICJMaW5lICVkLCBDb2x1
bW4gJWQiLCBsaW5lLCBjb2x1bW4pOworICByZXR1cm4gYnVmZmVyOworfQorCitzdGQ6OnN0cmlu
ZyBSZWFkZXI6OmdldExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Qgewor
ICAgICAgIHN0ZDo6c3RyaW5nIHNuaXBwZXQgPSAiIjsKKyAgICAgICBzdGQ6OmlzdHJpbmdzdHJl
YW0gZG9jU3RyZWFtKGRvY3VtZW50Xyk7CisgICAgICAgaW50IGxpbiwgY29sOworICAgICAgIGdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihsb2NhdGlvbiwgbGluLCBjb2wpOworICAgICAgIHN0ZDo6
c3RyaW5nIGxpbmU7CisgICAgICAgZm9yIChpbnQgaT0xOyBpPGxpbisyICYmIHN0ZDo6Z2V0bGlu
ZShkb2NTdHJlYW0sIGxpbmUpOyBpKyspCisgICAgICAgeworICAgICAgICAgICAgICBpZiAobGlu
LWkgPCAyKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBzbmlwcGV0ICs9
ICIgICIgKyBzdGQ6OnRvX3N0cmluZyhpKSArICI6ICIgKyBsaW5lICsgIlxuIjsKKyAgICAgICAg
ICAgICAgfQorICAgICAgIH0KKyAgICAgICByZXR1cm4gc25pcHBldDsKK30KKworLy8gRGVwcmVj
YXRlZC4gUHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CitzdGQ6OnN0cmluZyBS
ZWFkZXI6OmdldEZvcm1hdGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0IHsKKyAgcmV0dXJuIGdldEZv
cm1hdHRlZEVycm9yTWVzc2FnZXMoKTsKK30KKworc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRGb3Jt
YXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgeworICBzdGQ6OnN0cmluZyBmb3JtYXR0ZWRNZXNz
YWdlOworICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVn
aW4oKTsKKyAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7CisgICAgICAgKytpdEVycm9y
KSB7CisgICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOworICAgIGZvcm1hdHRl
ZE1lc3NhZ2UgKz0KKyAgICAgICAgIiogIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJv
ci50b2tlbl8uc3RhcnRfKSArICJcbiI7CisgICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPSBnZXRM
b2NhdGlvblNuaXBwZXQoZXJyb3IudG9rZW5fLnN0YXJ0XykgKyAiXG4iOworICAgIGZvcm1hdHRl
ZE1lc3NhZ2UgKz0gIiAgIiArIGVycm9yLm1lc3NhZ2VfICsgIlxuIjsKKyAgICBpZiAoZXJyb3Iu
ZXh0cmFfKQorICAgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAgICJTZWUgIiArIGdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJvci5leHRyYV8pICsgIiBmb3IgZGV0YWlsLlxuIjsK
KyAgfQorICByZXR1cm4gZm9ybWF0dGVkTWVzc2FnZTsKK30KKworc3RkOjp2ZWN0b3I8UmVhZGVy
OjpTdHJ1Y3R1cmVkRXJyb3I+IFJlYWRlcjo6Z2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0IHsK
KyAgc3RkOjp2ZWN0b3I8UmVhZGVyOjpTdHJ1Y3R1cmVkRXJyb3I+IGFsbEVycm9yczsKKyAgZm9y
IChFcnJvcnM6OmNvbnN0X2l0ZXJhdG9yIGl0RXJyb3IgPSBlcnJvcnNfLmJlZ2luKCk7CisgICAg
ICAgaXRFcnJvciAhPSBlcnJvcnNfLmVuZCgpOworICAgICAgICsraXRFcnJvcikgeworICAgIGNv
bnN0IEVycm9ySW5mbyYgZXJyb3IgPSAqaXRFcnJvcjsKKyAgICBSZWFkZXI6OlN0cnVjdHVyZWRF
cnJvciBzdHJ1Y3R1cmVkOworICAgIHN0cnVjdHVyZWQub2Zmc2V0X3N0YXJ0ID0gZXJyb3IudG9r
ZW5fLnN0YXJ0XyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9saW1pdCA9IGVycm9y
LnRva2VuXy5lbmRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQubWVzc2FnZSA9IGVycm9yLm1l
c3NhZ2VfOworICAgIGFsbEVycm9ycy5wdXNoX2JhY2soc3RydWN0dXJlZCk7CisgIH0KKyAgcmV0
dXJuIGFsbEVycm9yczsKK30KKworYm9vbCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYg
dmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlKSB7CisgIHNpemVfdCBsZW5ndGggPSBl
bmRfIC0gYmVnaW5fOworICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFydCgpID4gbGVuZ3RoCisgICAg
fHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7Cisg
IFRva2VuIHRva2VuOworICB0b2tlbi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0
XyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBlbmRf
ICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9r
ZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9
IDA7CisgIGVycm9yc18ucHVzaF9iYWNrKGluZm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBSZWFkZXI6OnB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBWYWx1ZSYgZXh0cmEpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8g
LSBiZWdpbl87CisgIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2
YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoCisgICAgfHwgZXh0cmEuZ2V0T2Zmc2V0TGlt
aXQoKSA+IGxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIFRva2VuIHRva2VuOworICB0b2tl
bi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLnN0YXJ0XyA9IGJlZ2luXyArIHZhbHVlLmdl
dE9mZnNldFN0YXJ0KCk7CisgIHRva2VuLmVuZF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRM
aW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5m
by5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gYmVnaW5fICsgZXh0cmEuZ2V0
T2Zmc2V0U3RhcnQoKTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVl
OworfQorCitib29sIFJlYWRlcjo6Z29vZCgpIGNvbnN0IHsKKyAgcmV0dXJuICFlcnJvcnNfLnNp
emUoKTsKK30KKworLy8gZXhhY3QgY29weSBvZiBGZWF0dXJlcworY2xhc3MgT3VyRmVhdHVyZXMg
eworcHVibGljOgorICBzdGF0aWMgT3VyRmVhdHVyZXMgYWxsKCk7CisgIGJvb2wgYWxsb3dDb21t
ZW50c187CisgIGJvb2wgc3RyaWN0Um9vdF87CisgIGJvb2wgYWxsb3dEcm9wcGVkTnVsbFBsYWNl
aG9sZGVyc187CisgIGJvb2wgYWxsb3dOdW1lcmljS2V5c187CisgIGJvb2wgYWxsb3dTaW5nbGVR
dW90ZXNfOworICBib29sIGZhaWxJZkV4dHJhXzsKKyAgYm9vbCByZWplY3REdXBLZXlzXzsKKyAg
Ym9vbCBhbGxvd1NwZWNpYWxGbG9hdHNfOworICBpbnQgc3RhY2tMaW1pdF87Cit9OyAgLy8gT3Vy
RmVhdHVyZXMKKworLy8gZXhhY3QgY29weSBvZiBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBGZWF0
dXJlcworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworT3VyRmVhdHVyZXMg
T3VyRmVhdHVyZXM6OmFsbCgpIHsgcmV0dXJuIE91ckZlYXR1cmVzKCk7IH0KKworLy8gSW1wbGVt
ZW50YXRpb24gb2YgY2xhc3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCisvLyBleGFjdCBjb3B5IG9mIFJlYWRlciwgcmVuYW1lZCB0byBPdXJSZWFkZXIKK2Ns
YXNzIE91clJlYWRlciB7CitwdWJsaWM6CisgIHR5cGVkZWYgY2hhciBDaGFyOworICB0eXBlZGVm
IGNvbnN0IENoYXIqIExvY2F0aW9uOworICBzdHJ1Y3QgU3RydWN0dXJlZEVycm9yIHsKKyAgICBz
aXplX3Qgb2Zmc2V0X3N0YXJ0OworICAgIHNpemVfdCBvZmZzZXRfbGltaXQ7CisgICAgc3RkOjpz
dHJpbmcgbWVzc2FnZTsKKyAgfTsKKworICBPdXJSZWFkZXIoT3VyRmVhdHVyZXMgY29uc3QmIGZl
YXR1cmVzKTsKKyAgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAg
ICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAg
ICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMgPSB0cnVlKTsKKyAgc3RkOjpzdHJpbmcgZ2V0Rm9y
bWF0dGVkRXJyb3JNZXNzYWdlcygpIGNvbnN0OworICBzdGQ6OnZlY3RvcjxTdHJ1Y3R1cmVkRXJy
b3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3Qg
VmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7CisgIGJvb2wgcHVzaEVy
cm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFZhbHVlJiBleHRyYSk7CisgIGJvb2wgZ29vZCgpIGNvbnN0OworCitwcml2YXRlOgorICBPdXJS
ZWFkZXIoT3VyUmVhZGVyIGNvbnN0Jik7ICAvLyBubyBpbXBsCisgIHZvaWQgb3BlcmF0b3I9KE91
clJlYWRlciBjb25zdCYpOyAgLy8gbm8gaW1wbAorCisgIGVudW0gVG9rZW5UeXBlIHsKKyAgICB0
b2tlbkVuZE9mU3RyZWFtID0gMCwKKyAgICB0b2tlbk9iamVjdEJlZ2luLAorICAgIHRva2VuT2Jq
ZWN0RW5kLAorICAgIHRva2VuQXJyYXlCZWdpbiwKKyAgICB0b2tlbkFycmF5RW5kLAorICAgIHRv
a2VuU3RyaW5nLAorICAgIHRva2VuTnVtYmVyLAorICAgIHRva2VuVHJ1ZSwKKyAgICB0b2tlbkZh
bHNlLAorICAgIHRva2VuTnVsbCwKKyAgICB0b2tlbk5hTiwKKyAgICB0b2tlblBvc0luZiwKKyAg
ICB0b2tlbk5lZ0luZiwKKyAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAorICAgIHRva2VuTWVtYmVy
U2VwYXJhdG9yLAorICAgIHRva2VuQ29tbWVudCwKKyAgICB0b2tlbkVycm9yCisgIH07CisKKyAg
Y2xhc3MgVG9rZW4geworICBwdWJsaWM6CisgICAgVG9rZW5UeXBlIHR5cGVfOworICAgIExvY2F0
aW9uIHN0YXJ0XzsKKyAgICBMb2NhdGlvbiBlbmRfOworICB9OworCisgIGNsYXNzIEVycm9ySW5m
byB7CisgIHB1YmxpYzoKKyAgICBUb2tlbiB0b2tlbl87CisgICAgc3RkOjpzdHJpbmcgbWVzc2Fn
ZV87CisgICAgTG9jYXRpb24gZXh0cmFfOworICB9OworCisgIHR5cGVkZWYgc3RkOjpkZXF1ZTxF
cnJvckluZm8+IEVycm9yczsKKworICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOworICB2
b2lkIHNraXBTcGFjZXMoKTsKKyAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0
dGVybkxlbmd0aCk7CisgIGJvb2wgcmVhZENvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ1N0eWxlQ29t
bWVudCgpOworICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkU3RyaW5n
KCk7CisgIGJvb2wgcmVhZFN0cmluZ1NpbmdsZVF1b3RlKCk7CisgIGJvb2wgcmVhZE51bWJlcihi
b29sIGNoZWNrSW5mKTsKKyAgYm9vbCByZWFkVmFsdWUoKTsKKyAgYm9vbCByZWFkT2JqZWN0KFRv
a2VuJiB0b2tlbik7CisgIGJvb2wgcmVhZEFycmF5KFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVj
b2RlTnVtYmVyKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tl
biwgVmFsdWUmIGRlY29kZWQpOworICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4pOwor
ICBib29sIGRlY29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKTsK
KyAgYm9vbCBkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVEb3VibGUo
VG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlVW5pY29kZUNvZGVQ
b2ludChUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlv
biYgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSk7Cisg
IGJvb2wgZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0b2tlbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKTsKKyAgYm9vbCBhZGRFcnJv
cihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRy
YSA9IDApOworICBib29sIHJlY292ZXJGcm9tRXJyb3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2Vu
KTsKKyAgYm9vbCBhZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKTsKKyAgdm9pZCBza2lwVW50aWxT
cGFjZSgpOworICBWYWx1ZSYgY3VycmVudFZhbHVlKCk7CisgIENoYXIgZ2V0TmV4dENoYXIoKTsK
KyAgdm9pZAorICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sIGlu
dCYgbGluZSwgaW50JiBjb2x1bW4pIGNvbnN0OworICBzdGQ6OnN0cmluZyBnZXRMb2NhdGlvbkxp
bmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0OworICB2b2lkIGFkZENvbW1lbnQo
TG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQp
OworICB2b2lkIHNraXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbik7CisKKyAgdHlwZWRlZiBz
dGQ6OnN0YWNrPFZhbHVlKj4gTm9kZXM7CisgIE5vZGVzIG5vZGVzXzsKKyAgRXJyb3JzIGVycm9y
c187CisgIHN0ZDo6c3RyaW5nIGRvY3VtZW50XzsKKyAgTG9jYXRpb24gYmVnaW5fOworICBMb2Nh
dGlvbiBlbmRfOworICBMb2NhdGlvbiBjdXJyZW50XzsKKyAgTG9jYXRpb24gbGFzdFZhbHVlRW5k
XzsKKyAgVmFsdWUqIGxhc3RWYWx1ZV87CisgIHN0ZDo6c3RyaW5nIGNvbW1lbnRzQmVmb3JlXzsK
KyAgaW50IHN0YWNrRGVwdGhfOworCisgIE91ckZlYXR1cmVzIGNvbnN0IGZlYXR1cmVzXzsKKyAg
Ym9vbCBjb2xsZWN0Q29tbWVudHNfOworfTsgIC8vIE91clJlYWRlcgorCisvLyBjb21wbGV0ZSBj
b3B5IG9mIFJlYWQgaW1wbCwgZm9yIE91clJlYWRlcgorCitPdXJSZWFkZXI6Ok91clJlYWRlcihP
dXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCisgICAgOiBlcnJvcnNfKCksIGRvY3VtZW50Xygp
LCBiZWdpbl8oKSwgZW5kXygpLCBjdXJyZW50XygpLCBsYXN0VmFsdWVFbmRfKCksCisgICAgICBs
YXN0VmFsdWVfKCksIGNvbW1lbnRzQmVmb3JlXygpLAorICAgICAgc3RhY2tEZXB0aF8oMCksCisg
ICAgICBmZWF0dXJlc18oZmVhdHVyZXMpLCBjb2xsZWN0Q29tbWVudHNfKCkgeworfQorCitib29s
IE91clJlYWRlcjo6cGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgICAgICAgIFZhbHVlJiByb290LAor
ICAgICAgICAgICAgICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzKSB7CisgIGlmICghZmVhdHVy
ZXNfLmFsbG93Q29tbWVudHNfKSB7CisgICAgY29sbGVjdENvbW1lbnRzID0gZmFsc2U7CisgIH0K
KworICBiZWdpbl8gPSBiZWdpbkRvYzsKKyAgZW5kXyA9IGVuZERvYzsKKyAgY29sbGVjdENvbW1l
bnRzXyA9IGNvbGxlY3RDb21tZW50czsKKyAgY3VycmVudF8gPSBiZWdpbl87CisgIGxhc3RWYWx1
ZUVuZF8gPSAwOworICBsYXN0VmFsdWVfID0gMDsKKyAgY29tbWVudHNCZWZvcmVfID0gIiI7Cisg
IGVycm9yc18uY2xlYXIoKTsKKyAgd2hpbGUgKCFub2Rlc18uZW1wdHkoKSkKKyAgICBub2Rlc18u
cG9wKCk7CisgIG5vZGVzXy5wdXNoKCZyb290KTsKKworICBzdGFja0RlcHRoXyA9IDA7CisgIGJv
b2wgc3VjY2Vzc2Z1bCA9IHJlYWRWYWx1ZSgpOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1l
bnRUb2tlbnModG9rZW4pOworICBpZiAoZmVhdHVyZXNfLmZhaWxJZkV4dHJhXykgeworICAgIGlm
ICh0b2tlbi50eXBlXyAhPSB0b2tlbkVycm9yICYmIHRva2VuLnR5cGVfICE9IHRva2VuRW5kT2ZT
dHJlYW0pIHsKKyAgICAgIGFkZEVycm9yKCJFeHRyYSBub24td2hpdGVzcGFjZSBhZnRlciBKU09O
IHZhbHVlLiIsIHRva2VuKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgaWYg
KGNvbGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKQorICAgIHJvb3Qu
c2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRBZnRlcik7CisgIGlmIChmZWF0dXJl
c18uc3RyaWN0Um9vdF8pIHsKKyAgICBpZiAoIXJvb3QuaXNBcnJheSgpICYmICFyb290LmlzT2Jq
ZWN0KCkpIHsKKyAgICAgIC8vIFNldCBlcnJvciBsb2NhdGlvbiB0byBzdGFydCBvZiBkb2MsIGlk
ZWFsbHkgc2hvdWxkIGJlIGZpcnN0IHRva2VuIGZvdW5kCisgICAgICAvLyBpbiBkb2MKKyAgICAg
IHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgICAgIHRva2VuLnN0YXJ0XyA9IGJlZ2luRG9j
OworICAgICAgdG9rZW4uZW5kXyA9IGVuZERvYzsKKyAgICAgIGFkZEVycm9yKAorICAgICAgICAg
ICJBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2Jq
ZWN0IHZhbHVlLiIsCisgICAgICAgICAgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgfQorICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRW
YWx1ZSgpIHsKKyAgaWYgKHN0YWNrRGVwdGhfID49IGZlYXR1cmVzXy5zdGFja0xpbWl0XykgdGhy
b3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZhbHVlKCkuIik7Cisg
ICsrc3RhY2tEZXB0aF87CisgIFRva2VuIHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tl
bik7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18g
JiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7CisgICAgY3VycmVudFZhbHVlKCkuc2V0Q29t
bWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOworICAgIGNvbW1lbnRzQmVmb3Jl
XyA9ICIiOworICB9CisKKyAgc3dpdGNoICh0b2tlbi50eXBlXykgeworICBjYXNlIHRva2VuT2Jq
ZWN0QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QodG9rZW4pOworICAgIGN1cnJl
bnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICBicmVhazsK
KyAgY2FzZSB0b2tlbkFycmF5QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRBcnJheSh0b2tl
bik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8p
OworICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVtYmVyOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNv
ZGVOdW1iZXIodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuU3RyaW5nOgorICAgIHN1
Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2Vu
VHJ1ZToKKyAgICB7CisgICAgVmFsdWUgdih0cnVlKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2Fw
UGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFy
dF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVu
ZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkZhbHNlOgorICAg
IHsKKyAgICBWYWx1ZSB2KGZhbHNlKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2
KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdp
bl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdp
bl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk51bGw6CisgICAgeworICAgIFZh
bHVlIHY7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7CisgICAgY3VycmVudFZh
bHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgICBjdXJyZW50
VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgICB9CisgICAg
YnJlYWs7CisgIGNhc2UgdG9rZW5OYU46CisgICAgeworICAgIFZhbHVlIHYoc3RkOjpudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSk7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBh
eWxvYWQodik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRf
IC0gYmVnaW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRf
IC0gYmVnaW5fKTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5Qb3NJbmY6CisgICAg
eworICAgIFZhbHVlIHYoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsK
KyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgp
LnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsK
KyAgY2FzZSB0b2tlbk5lZ0luZjoKKyAgICB7CisgICAgVmFsdWUgdigtc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9h
ZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBi
ZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBi
ZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5U2VwYXJhdG9yOgor
ICBjYXNlIHRva2VuT2JqZWN0RW5kOgorICBjYXNlIHRva2VuQXJyYXlFbmQ6CisgICAgaWYgKGZl
YXR1cmVzXy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXykgeworICAgICAgLy8gIlVuLXJl
YWQiIHRoZSBjdXJyZW50IHRva2VuIGFuZCBtYXJrIHRoZSBjdXJyZW50IHZhbHVlIGFzIGEgbnVs
bAorICAgICAgLy8gdG9rZW4uCisgICAgICBjdXJyZW50Xy0tOworICAgICAgVmFsdWUgdjsKKyAg
ICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgICAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0U3RhcnQoY3VycmVudF8gLSBiZWdpbl8gLSAxKTsKKyAgICAgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5fKTsKKyAgICAgIGJyZWFrOworICAg
IH0gLy8gZWxzZSwgZmFsbCB0aHJvdWdoIC4uLgorICBkZWZhdWx0OgorICAgIGN1cnJlbnRWYWx1
ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZh
bHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgcmV0dXJuIGFk
ZEVycm9yKCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwg
dG9rZW4pOworICB9CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBsYXN0VmFsdWVF
bmRfID0gY3VycmVudF87CisgICAgbGFzdFZhbHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKKyAgfQor
CisgIC0tc3RhY2tEZXB0aF87CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCit2b2lkIE91clJl
YWRlcjo6c2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKSB7CisgIGlmIChmZWF0dXJlc18u
YWxsb3dDb21tZW50c18pIHsKKyAgICBkbyB7CisgICAgICByZWFkVG9rZW4odG9rZW4pOworICAg
IH0gd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVudCk7CisgIH0gZWxzZSB7CisgICAg
cmVhZFRva2VuKHRva2VuKTsKKyAgfQorfQorCitib29sIE91clJlYWRlcjo6cmVhZFRva2VuKFRv
a2VuJiB0b2tlbikgeworICBza2lwU3BhY2VzKCk7CisgIHRva2VuLnN0YXJ0XyA9IGN1cnJlbnRf
OworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIG9rID0gdHJ1ZTsKKyAgc3dpdGNo
IChjKSB7CisgIGNhc2UgJ3snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RCZWdpbjsK
KyAgICBicmVhazsKKyAgY2FzZSAnfSc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk9iamVjdEVu
ZDsKKyAgICBicmVhazsKKyAgY2FzZSAnWyc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkFycmF5
QmVnaW47CisgICAgYnJlYWs7CisgIGNhc2UgJ10nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5B
cnJheUVuZDsKKyAgICBicmVhazsKKyAgY2FzZSAnIic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tl
blN0cmluZzsKKyAgICBvayA9IHJlYWRTdHJpbmcoKTsKKyAgICBicmVhazsKKyAgY2FzZSAnXCcn
OgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dTaW5nbGVRdW90ZXNfKSB7CisgICAgdG9rZW4udHlw
ZV8gPSB0b2tlblN0cmluZzsKKyAgICBvayA9IHJlYWRTdHJpbmdTaW5nbGVRdW90ZSgpOworICAg
IGJyZWFrOworICAgIH0gLy8gZWxzZSBjb250aW51ZQorICBjYXNlICcvJzoKKyAgICB0b2tlbi50
eXBlXyA9IHRva2VuQ29tbWVudDsKKyAgICBvayA9IHJlYWRDb21tZW50KCk7CisgICAgYnJlYWs7
CisgIGNhc2UgJzAnOgorICBjYXNlICcxJzoKKyAgY2FzZSAnMic6CisgIGNhc2UgJzMnOgorICBj
YXNlICc0JzoKKyAgY2FzZSAnNSc6CisgIGNhc2UgJzYnOgorICBjYXNlICc3JzoKKyAgY2FzZSAn
OCc6CisgIGNhc2UgJzknOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdW1iZXI7CisgICAgcmVh
ZE51bWJlcihmYWxzZSk7CisgICAgYnJlYWs7CisgIGNhc2UgJy0nOgorICAgIGlmIChyZWFkTnVt
YmVyKHRydWUpKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTnVtYmVyOworICAgIH0gZWxz
ZSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuTmVnSW5mOworICAgICAgb2sgPSBmZWF0dXJl
c18uYWxsb3dTcGVjaWFsRmxvYXRzXyAmJiBtYXRjaCgibmZpbml0eSIsIDcpOworICAgIH0KKyAg
ICBicmVhazsKKyAgY2FzZSAndCc6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlblRydWU7CisgICAg
b2sgPSBtYXRjaCgicnVlIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2UgJ2YnOgorICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5GYWxzZTsKKyAgICBvayA9IG1hdGNoKCJhbHNlIiwgNCk7CisgICAgYnJl
YWs7CisgIGNhc2UgJ24nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5OdWxsOworICAgIG9rID0g
bWF0Y2goInVsbCIsIDMpOworICAgIGJyZWFrOworICBjYXNlICdOJzoKKyAgICBpZiAoZmVhdHVy
ZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OYU47
CisgICAgICBvayA9IG1hdGNoKCJhTiIsIDIpOworICAgIH0gZWxzZSB7CisgICAgICBvayA9IGZh
bHNlOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSAnSSc6CisgICAgaWYgKGZlYXR1cmVzXy5h
bGxvd1NwZWNpYWxGbG9hdHNfKSB7CisgICAgICB0b2tlbi50eXBlXyA9IHRva2VuUG9zSW5mOwor
ICAgICAgb2sgPSBtYXRjaCgibmZpbml0eSIsIDcpOworICAgIH0gZWxzZSB7CisgICAgICBvayA9
IGZhbHNlOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSAnLCc6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlbkFycmF5U2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlICc6JzoKKyAgICB0b2tl
bi50eXBlXyA9IHRva2VuTWVtYmVyU2VwYXJhdG9yOworICAgIGJyZWFrOworICBjYXNlIDA6Cisg
ICAgdG9rZW4udHlwZV8gPSB0b2tlbkVuZE9mU3RyZWFtOworICAgIGJyZWFrOworICBkZWZhdWx0
OgorICAgIG9rID0gZmFsc2U7CisgICAgYnJlYWs7CisgIH0KKyAgaWYgKCFvaykKKyAgICB0b2tl
bi50eXBlXyA9IHRva2VuRXJyb3I7CisgIHRva2VuLmVuZF8gPSBjdXJyZW50XzsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpza2lwU3BhY2VzKCkgeworICB3aGlsZSAoY3Vy
cmVudF8gIT0gZW5kXykgeworICAgIENoYXIgYyA9ICpjdXJyZW50XzsKKyAgICBpZiAoYyA9PSAn
ICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcbicpCisgICAgICArK2N1cnJl
bnRfOworICAgIGVsc2UKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpt
YXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCkgeworICBpZiAoZW5kXyAt
IGN1cnJlbnRfIDwgcGF0dGVybkxlbmd0aCkKKyAgICByZXR1cm4gZmFsc2U7CisgIGludCBpbmRl
eCA9IHBhdHRlcm5MZW5ndGg7CisgIHdoaWxlIChpbmRleC0tKQorICAgIGlmIChjdXJyZW50X1tp
bmRleF0gIT0gcGF0dGVybltpbmRleF0pCisgICAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRf
ICs9IHBhdHRlcm5MZW5ndGg7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6
cmVhZENvbW1lbnQoKSB7CisgIExvY2F0aW9uIGNvbW1lbnRCZWdpbiA9IGN1cnJlbnRfIC0gMTsK
KyAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gZmFsc2U7Cisg
IGlmIChjID09ICcqJykKKyAgICBzdWNjZXNzZnVsID0gcmVhZENTdHlsZUNvbW1lbnQoKTsKKyAg
ZWxzZSBpZiAoYyA9PSAnLycpCisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRDcHBTdHlsZUNvbW1lbnQo
KTsKKyAgaWYgKCFzdWNjZXNzZnVsKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoY29sbGVj
dENvbW1lbnRzXykgeworICAgIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50ID0gY29tbWVudEJl
Zm9yZTsKKyAgICBpZiAobGFzdFZhbHVlRW5kXyAmJiAhY29udGFpbnNOZXdMaW5lKGxhc3RWYWx1
ZUVuZF8sIGNvbW1lbnRCZWdpbikpIHsKKyAgICAgIGlmIChjICE9ICcqJyB8fCAhY29udGFpbnNO
ZXdMaW5lKGNvbW1lbnRCZWdpbiwgY3VycmVudF8pKQorICAgICAgICBwbGFjZW1lbnQgPSBjb21t
ZW50QWZ0ZXJPblNhbWVMaW5lOworICAgIH0KKworICAgIGFkZENvbW1lbnQoY29tbWVudEJlZ2lu
LCBjdXJyZW50XywgcGxhY2VtZW50KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZAor
T3VyUmVhZGVyOjphZGRDb21tZW50KExvY2F0aW9uIGJlZ2luLCBMb2NhdGlvbiBlbmQsIENvbW1l
bnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIGFzc2VydChjb2xsZWN0Q29tbWVudHNfKTsKKyAg
Y29uc3Qgc3RkOjpzdHJpbmcmIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVFT0woYmVnaW4sIGVuZCk7
CisgIGlmIChwbGFjZW1lbnQgPT0gY29tbWVudEFmdGVyT25TYW1lTGluZSkgeworICAgIGFzc2Vy
dChsYXN0VmFsdWVfICE9IDApOworICAgIGxhc3RWYWx1ZV8tPnNldENvbW1lbnQobm9ybWFsaXpl
ZCwgcGxhY2VtZW50KTsKKyAgfSBlbHNlIHsKKyAgICBjb21tZW50c0JlZm9yZV8gKz0gbm9ybWFs
aXplZDsKKyAgfQorfQorCitib29sIE91clJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQoKSB7Cisg
IHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gZ2V0TmV4dENoYXIoKTsK
KyAgICBpZiAoYyA9PSAnKicgJiYgKmN1cnJlbnRfID09ICcvJykKKyAgICAgIGJyZWFrOworICB9
CisgIHJldHVybiBnZXROZXh0Q2hhcigpID09ICcvJzsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJl
YWRDcHBTdHlsZUNvbW1lbnQoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAg
Q2hhciBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXG4nKQorICAgICAgYnJlYWs7
CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgLy8gQ29uc3VtZSBET1MgRU9MLiBJdCB3aWxs
IGJlIG5vcm1hbGl6ZWQgaW4gYWRkQ29tbWVudC4KKyAgICAgIGlmIChjdXJyZW50XyAhPSBlbmRf
ICYmICpjdXJyZW50XyA9PSAnXG4nKQorICAgICAgICBnZXROZXh0Q2hhcigpOworICAgICAgLy8g
QnJlYWsgb24gTW9jIE9TIDkgRU9MLgorICAgICAgYnJlYWs7CisgICAgfQorICB9CisgIHJldHVy
biB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6cmVhZE51bWJlcihib29sIGNoZWNrSW5mKSB7
CisgIGNvbnN0IGNoYXIgKnAgPSBjdXJyZW50XzsKKyAgaWYgKGNoZWNrSW5mICYmIHAgIT0gZW5k
XyAmJiAqcCA9PSAnSScpIHsKKyAgICBjdXJyZW50XyA9ICsrcDsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKyAgY2hhciBjID0gJzAnOyAvLyBzdG9wZ2FwIGZvciBhbHJlYWR5IGNvbnN1bWVkIGNo
YXJhY3RlcgorICAvLyBpbnRlZ3JhbCBwYXJ0CisgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5
JykKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgIC8vIGZyYWN0
aW9uYWwgcGFydAorICBpZiAoYyA9PSAnLicpIHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBl
bmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAg
YyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICB9CisgIC8vIGV4cG9uZW50
aWFsIHBhcnQKKyAgaWYgKGMgPT0gJ2UnIHx8IGMgPT0gJ0UnKSB7CisgICAgYyA9IChjdXJyZW50
XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAgIGlmIChjID09ICcrJyB8fCBjID09ICctJykK
KyAgICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAo
YyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8g
KnArKyA6IDA7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9Citib29sIE91clJlYWRlcjo6cmVhZFN0
cmluZygpIHsKKyAgQ2hhciBjID0gMDsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAg
ICBjID0gZ2V0TmV4dENoYXIoKTsKKyAgICBpZiAoYyA9PSAnXFwnKQorICAgICAgZ2V0TmV4dENo
YXIoKTsKKyAgICBlbHNlIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVy
biBjID09ICciJzsKK30KKworCitib29sIE91clJlYWRlcjo6cmVhZFN0cmluZ1NpbmdsZVF1b3Rl
KCkgeworICBDaGFyIGMgPSAwOworICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIGMg
PSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdcXCcpCisgICAgICBnZXROZXh0Q2hhcigp
OworICAgIGVsc2UgaWYgKGMgPT0gJ1wnJykKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiBj
ID09ICdcJyc7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkT2JqZWN0KFRva2VuJiB0b2tlblN0
YXJ0KSB7CisgIFRva2VuIHRva2VuTmFtZTsKKyAgc3RkOjpzdHJpbmcgbmFtZTsKKyAgVmFsdWUg
aW5pdChvYmplY3RWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGluaXQpOwor
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAtIGJlZ2lu
Xyk7CisgIHdoaWxlIChyZWFkVG9rZW4odG9rZW5OYW1lKSkgeworICAgIGJvb2wgaW5pdGlhbFRv
a2VuT2sgPSB0cnVlOworICAgIHdoaWxlICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5Db21tZW50
ICYmIGluaXRpYWxUb2tlbk9rKQorICAgICAgaW5pdGlhbFRva2VuT2sgPSByZWFkVG9rZW4odG9r
ZW5OYW1lKTsKKyAgICBpZiAoIWluaXRpYWxUb2tlbk9rKQorICAgICAgYnJlYWs7CisgICAgaWYg
KHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk9iamVjdEVuZCAmJiBuYW1lLmVtcHR5KCkpIC8vIGVt
cHR5IG9iamVjdAorICAgICAgcmV0dXJuIHRydWU7CisgICAgbmFtZSA9ICIiOworICAgIGlmICh0
b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5TdHJpbmcpIHsKKyAgICAgIGlmICghZGVjb2RlU3RyaW5n
KHRva2VuTmFtZSwgbmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2Vu
T2JqZWN0RW5kKTsKKyAgICB9IGVsc2UgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlbk51bWJl
ciAmJiBmZWF0dXJlc18uYWxsb3dOdW1lcmljS2V5c18pIHsKKyAgICAgIFZhbHVlIG51bWJlck5h
bWU7CisgICAgICBpZiAoIWRlY29kZU51bWJlcih0b2tlbk5hbWUsIG51bWJlck5hbWUpKQorICAg
ICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgICBuYW1l
ID0gbnVtYmVyTmFtZS5hc1N0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBUb2tlbiBjb2xvbjsKKyAgICBpZiAoIXJlYWRUb2tlbihjb2xvbikgfHwgY29s
b24udHlwZV8gIT0gdG9rZW5NZW1iZXJTZXBhcmF0b3IpIHsKKyAgICAgIHJldHVybiBhZGRFcnJv
ckFuZFJlY292ZXIoCisgICAgICAgICAgIk1pc3NpbmcgJzonIGFmdGVyIG9iamVjdCBtZW1iZXIg
bmFtZSIsIGNvbG9uLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIGlmIChuYW1lLmxlbmd0
aCgpID49ICgxVTw8MzApKSB0aHJvd1J1bnRpbWVFcnJvcigia2V5bGVuZ3RoID49IDJeMzAiKTsK
KyAgICBpZiAoZmVhdHVyZXNfLnJlamVjdER1cEtleXNfICYmIGN1cnJlbnRWYWx1ZSgpLmlzTWVt
YmVyKG5hbWUpKSB7CisgICAgICBzdGQ6OnN0cmluZyBtc2cgPSAiRHVwbGljYXRlIGtleTogJyIg
KyBuYW1lICsgIiciOworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAg
ICBtc2csIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQpOworICAgIH0KKyAgICBWYWx1ZSYgdmFs
dWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKKyAgICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAg
IGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykg
Ly8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2Vu
T2JqZWN0RW5kKTsKKworICAgIFRva2VuIGNvbW1hOworICAgIGlmICghcmVhZFRva2VuKGNvbW1h
KSB8fAorICAgICAgICAoY29tbWEudHlwZV8gIT0gdG9rZW5PYmplY3RFbmQgJiYgY29tbWEudHlw
ZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgorICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9r
ZW5Db21tZW50KSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAg
ICAiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlvbiIsIGNvbW1hLCB0b2tl
bk9iamVjdEVuZCk7CisgICAgfQorICAgIGJvb2wgZmluYWxpemVUb2tlbk9rID0gdHJ1ZTsKKyAg
ICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5Db21tZW50ICYmIGZpbmFsaXplVG9rZW5PaykK
KyAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRUb2tlbihjb21tYSk7CisgICAgaWYgKGNvbW1h
LnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0
dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVt
YmVyIG5hbWUiLCB0b2tlbk5hbWUsIHRva2VuT2JqZWN0RW5kKTsKK30KKworYm9vbCBPdXJSZWFk
ZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW5TdGFydCkgeworICBWYWx1ZSBpbml0KGFycmF5VmFs
dWUpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVl
KCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBiZWdpbl8pOworICBza2lwU3Bh
Y2VzKCk7CisgIGlmICgqY3VycmVudF8gPT0gJ10nKSAvLyBlbXB0eSBhcnJheQorICB7CisgICAg
VG9rZW4gZW5kQXJyYXk7CisgICAgcmVhZFRva2VuKGVuZEFycmF5KTsKKyAgICByZXR1cm4gdHJ1
ZTsKKyAgfQorICBpbnQgaW5kZXggPSAwOworICBmb3IgKDs7KSB7CisgICAgVmFsdWUmIHZhbHVl
ID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107CisgICAgbm9kZXNfLnB1c2goJnZhbHVlKTsKKyAg
ICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9kZXNfLnBvcCgpOworICAgIGlmICghb2sp
IC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tl
bkFycmF5RW5kKTsKKworICAgIFRva2VuIHRva2VuOworICAgIC8vIEFjY2VwdCBDb21tZW50IGFm
dGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCisgICAgb2sgPSByZWFkVG9rZW4odG9rZW4pOwor
ICAgIHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgb2spIHsKKyAgICAgIG9r
ID0gcmVhZFRva2VuKHRva2VuKTsKKyAgICB9CisgICAgYm9vbCBiYWRUb2tlblR5cGUgPQorICAg
ICAgICAodG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJiB0b2tlbi50eXBlXyAh
PSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9rIHx8IGJhZFRva2VuVHlwZSkgeworICAgICAg
cmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ10n
IGluIGFycmF5IGRlY2xhcmF0aW9uIiwgdG9rZW4sIHRva2VuQXJyYXlFbmQpOworICAgIH0KKyAg
ICBpZiAodG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVuZCkKKyAgICAgIGJyZWFrOworICB9Cisg
IHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0
b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRlY29kZU51bWJlcih0b2tlbiwgZGVj
b2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChk
ZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0g
YmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJl
Z2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlTnVtYmVy
KFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgLy8gQXR0ZW1wdHMgdG8gcGFyc2Ug
dGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVyIGlzCisgIC8vIGxhcmdlciB0
aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBpbnRlZ2VyIHRoZW4KKyAgLy8g
d2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCisgIExvY2F0aW9uIGN1cnJlbnQgPSB0
b2tlbi5zdGFydF87CisgIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJyZW50ID09ICctJzsKKyAgaWYg
KGlzTmVnYXRpdmUpCisgICAgKytjdXJyZW50OworICAvLyBUT0RPOiBIZWxwIHRoZSBjb21waWxl
ciBkbyB0aGUgZGl2IGFuZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9yIGdldCByaWQgb2YgdGhlbS4K
KyAgVmFsdWU6Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9CisgICAgICBpc05lZ2F0aXZl
ID8gVmFsdWU6Okxhcmdlc3RVSW50KC1WYWx1ZTo6bWluTGFyZ2VzdEludCkKKyAgICAgICAgICAg
ICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7CisgIFZhbHVlOjpMYXJnZXN0VUludCB0aHJl
c2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKKyAgVmFsdWU6Okxhcmdlc3RVSW50IHZhbHVl
ID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQgPCB0b2tlbi5lbmRfKSB7CisgICAgQ2hhciBjID0gKmN1
cnJlbnQrKzsKKyAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKQorICAgICAgcmV0dXJuIGRlY29k
ZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgVmFsdWU6OlVJbnQgZGlnaXQoYyAtICcwJyk7
CisgICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgeworICAgICAgLy8gV2UndmUgaGl0IG9yIGV4
Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAocm91bmRlZCBkb3duKS4gSWYKKyAg
ICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRoZSBsaW1pdCwgYikgdGhpcyBpcyB0
aGUgbGFzdCBkaWdpdCwgYW5kCisgICAgICAvLyBjKSBpdCdzIHNtYWxsIGVub3VnaCB0byBmaXQg
aW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4KKyAgICAgIC8vIE90aGVyd2lzZSB0
cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9pZCBvdmVyZmxvdy4KKyAgICAgIGlm
ICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRva2VuLmVuZF8gfHwKKyAgICAgICAg
ICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7CisgICAgICAgIHJldHVybiBkZWNvZGVE
b3VibGUodG9rZW4sIGRlY29kZWQpOworICAgICAgfQorICAgIH0KKyAgICB2YWx1ZSA9IHZhbHVl
ICogMTAgKyBkaWdpdDsKKyAgfQorICBpZiAoaXNOZWdhdGl2ZSkKKyAgICBkZWNvZGVkID0gLVZh
bHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKKyAgZWxzZSBpZiAodmFsdWUgPD0gVmFsdWU6Okxhcmdl
c3RVSW50KFZhbHVlOjptYXhJbnQpKQorICAgIGRlY29kZWQgPSBWYWx1ZTo6TGFyZ2VzdEludCh2
YWx1ZSk7CisgIGVsc2UKKyAgICBkZWNvZGVkID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQor
Citib29sIE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBk
ZWNvZGVkOworICBpZiAoIWRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJu
IGZhbHNlOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVu
dFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0
cnVlOworfQorCitib29sIE91clJlYWRlcjo6ZGVjb2RlRG91YmxlKFRva2VuJiB0b2tlbiwgVmFs
dWUmIGRlY29kZWQpIHsKKyAgZG91YmxlIHZhbHVlID0gMDsKKyAgY29uc3QgaW50IGJ1ZmZlclNp
emUgPSAzMjsKKyAgaW50IGNvdW50OworICBpbnQgbGVuZ3RoID0gaW50KHRva2VuLmVuZF8gLSB0
b2tlbi5zdGFydF8pOworCisgIC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCBidWZmZXIgb3ZlcmZs
b3cgZXhwbG9pdHMuCisgIGlmIChsZW5ndGggPCAwKSB7CisgICAgcmV0dXJuIGFkZEVycm9yKCJV
bmFibGUgdG8gcGFyc2UgdG9rZW4gbGVuZ3RoIiwgdG9rZW4pOworICB9CisKKyAgLy8gQXZvaWQg
dXNpbmcgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHRoZSBmb3JtYXQgY29udHJvbCBzdHJpbmcgZ2l2
ZW4gdG8KKyAgLy8gc3NjYW5mLCBhcyB0aGlzIGNhbiBjYXVzZSBoYXJkIHRvIGRlYnVnIGNyYXNo
ZXMgb24gT1MgWC4gU2VlIGhlcmUgZm9yIG1vcmUKKyAgLy8gaW5mbzoKKyAgLy8KKyAgLy8gICAg
IGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFjLyNET0NVTUVOVEFUSU9OL0Rl
dmVsb3BlclRvb2xzL2djYy00LjAuMS9nY2MvSW5jb21wYXRpYmlsaXRpZXMuaHRtbAorICBjaGFy
IGZvcm1hdFtdID0gIiVsZiI7CisKKyAgaWYgKGxlbmd0aCA8PSBidWZmZXJTaXplKSB7CisgICAg
Q2hhciBidWZmZXJbYnVmZmVyU2l6ZSArIDFdOworICAgIG1lbWNweShidWZmZXIsIHRva2VuLnN0
YXJ0XywgbGVuZ3RoKTsKKyAgICBidWZmZXJbbGVuZ3RoXSA9IDA7CisgICAgY291bnQgPSBzc2Nh
bmYoYnVmZmVyLCBmb3JtYXQsICZ2YWx1ZSk7CisgIH0gZWxzZSB7CisgICAgc3RkOjpzdHJpbmcg
YnVmZmVyKHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXyk7CisgICAgY291bnQgPSBzc2NhbmYoYnVm
ZmVyLmNfc3RyKCksIGZvcm1hdCwgJnZhbHVlKTsKKyAgfQorCisgIGlmIChjb3VudCAhPSAxKQor
ICAgIHJldHVybiBhZGRFcnJvcigiJyIgKyBzdGQ6OnN0cmluZyh0b2tlbi5zdGFydF8sIHRva2Vu
LmVuZF8pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICInIGlzIG5vdCBhIG51bWJlci4iLAor
ICAgICAgICAgICAgICAgICAgICB0b2tlbik7CisgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRva2VuKSB7
CisgIHN0ZDo6c3RyaW5nIGRlY29kZWRfc3RyaW5nOworICBpZiAoIWRlY29kZVN0cmluZyh0b2tl
biwgZGVjb2RlZF9zdHJpbmcpKQorICAgIHJldHVybiBmYWxzZTsKKyAgVmFsdWUgZGVjb2RlZChk
ZWNvZGVkX3N0cmluZyk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOwor
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOwor
ICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVTdHJpbmcoVG9rZW4mIHRv
a2VuLCBzdGQ6OnN0cmluZyYgZGVjb2RlZCkgeworICBkZWNvZGVkLnJlc2VydmUodG9rZW4uZW5k
XyAtIHRva2VuLnN0YXJ0XyAtIDIpOworICBMb2NhdGlvbiBjdXJyZW50ID0gdG9rZW4uc3RhcnRf
ICsgMTsgLy8gc2tpcCAnIicKKyAgTG9jYXRpb24gZW5kID0gdG9rZW4uZW5kXyAtIDE7ICAgICAg
IC8vIGRvIG5vdCBpbmNsdWRlICciJworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBD
aGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjID09ICciJykKKyAgICAgIGJyZWFrOworICAg
IGVsc2UgaWYgKGMgPT0gJ1xcJykgeworICAgICAgaWYgKGN1cnJlbnQgPT0gZW5kKQorICAgICAg
ICByZXR1cm4gYWRkRXJyb3IoIkVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tl
biwgY3VycmVudCk7CisgICAgICBDaGFyIGVzY2FwZSA9ICpjdXJyZW50Kys7CisgICAgICBzd2l0
Y2ggKGVzY2FwZSkgeworICAgICAgY2FzZSAnIic6CisgICAgICAgIGRlY29kZWQgKz0gJyInOwor
ICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJy8nOgorICAgICAgICBkZWNvZGVkICs9ICcvJzsK
KyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdcXCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1xc
JzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdiJzoKKyAgICAgICAgZGVjb2RlZCArPSAn
XGInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2YnOgorICAgICAgICBkZWNvZGVkICs9
ICdcZic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnbic6CisgICAgICAgIGRlY29kZWQg
Kz0gJ1xuJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdyJzoKKyAgICAgICAgZGVjb2Rl
ZCArPSAnXHInOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3QnOgorICAgICAgICBkZWNv
ZGVkICs9ICdcdCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAndSc6IHsKKyAgICAgICAg
dW5zaWduZWQgaW50IHVuaWNvZGU7CisgICAgICAgIGlmICghZGVjb2RlVW5pY29kZUNvZGVQb2lu
dCh0b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGRlY29kZWQgKz0gY29kZVBvaW50VG9VVEY4KHVuaWNvZGUpOworICAgICAgfSBi
cmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBhZGRFcnJvcigiQmFkIGVzY2Fw
ZSBzZXF1ZW5jZSBpbiBzdHJpbmciLCB0b2tlbiwgY3VycmVudCk7CisgICAgICB9CisgICAgfSBl
bHNlIHsKKyAgICAgIGRlY29kZWQgKz0gYzsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmljb2RlKSB7CisK
KyAgaWYgKCFkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwg
dW5pY29kZSkpCisgICAgcmV0dXJuIGZhbHNlOworICBpZiAodW5pY29kZSA+PSAweEQ4MDAgJiYg
dW5pY29kZSA8PSAweERCRkYpIHsKKyAgICAvLyBzdXJyb2dhdGUgcGFpcnMKKyAgICBpZiAoZW5k
IC0gY3VycmVudCA8IDYpCisgICAgICByZXR1cm4gYWRkRXJyb3IoCisgICAgICAgICAgImFkZGl0
aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUg
cGFpci4iLAorICAgICAgICAgIHRva2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICAgIHVuc2ln
bmVkIGludCBzdXJyb2dhdGVQYWlyOworICAgIGlmICgqKGN1cnJlbnQrKykgPT0gJ1xcJyAmJiAq
KGN1cnJlbnQrKykgPT0gJ3UnKSB7CisgICAgICBpZiAoZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVl
bmNlKHRva2VuLCBjdXJyZW50LCBlbmQsIHN1cnJvZ2F0ZVBhaXIpKSB7CisgICAgICAgIHVuaWNv
ZGUgPSAweDEwMDAwICsgKCh1bmljb2RlICYgMHgzRkYpIDw8IDEwKSArIChzdXJyb2dhdGVQYWly
ICYgMHgzRkYpOworICAgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVs
c2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigiZXhwZWN0aW5nIGFub3RoZXIgXFx1IHRva2VuIHRv
IGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgImEgdW5p
Y29kZSBzdXJyb2dhdGUgcGFpciIsCisgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sCisgICAg
ICAgICAgICAgICAgICAgICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgT3VyUmVhZGVyOjpkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5k
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQm
IHVuaWNvZGUpIHsKKyAgaWYgKGVuZCAtIGN1cnJlbnQgPCA0KQorICAgIHJldHVybiBhZGRFcnJv
cigKKyAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIg
ZGlnaXRzIGV4cGVjdGVkLiIsCisgICAgICAgIHRva2VuLAorICAgICAgICBjdXJyZW50KTsKKyAg
dW5pY29kZSA9IDA7CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7
CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICB1bmljb2RlICo9IDE2OworICAgIGlmIChj
ID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICcwJzsKKyAgICBlbHNl
IGlmIChjID49ICdhJyAmJiBjIDw9ICdmJykKKyAgICAgIHVuaWNvZGUgKz0gYyAtICdhJyArIDEw
OworICAgIGVsc2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQorICAgICAgdW5pY29kZSArPSBj
IC0gJ0EnICsgMTA7CisgICAgZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAg
ICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdp
dCBleHBlY3RlZC4iLAorICAgICAgICAgIHRva2VuLAorICAgICAgICAgIGN1cnJlbnQpOworICB9
CisgIHJldHVybiB0cnVlOworfQorCitib29sCitPdXJSZWFkZXI6OmFkZEVycm9yKGNvbnN0IHN0
ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0aW9uIGV4dHJhKSB7CisgIEVy
cm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0g
bWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBleHRyYTsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5m
byk7CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlY292ZXJGcm9tRXJy
b3IoVG9rZW5UeXBlIHNraXBVbnRpbFRva2VuKSB7CisgIGludCBlcnJvckNvdW50ID0gaW50KGVy
cm9yc18uc2l6ZSgpKTsKKyAgVG9rZW4gc2tpcDsKKyAgZm9yICg7OykgeworICAgIGlmICghcmVh
ZFRva2VuKHNraXApKQorICAgICAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7IC8vIGRpc2Nh
cmQgZXJyb3JzIGNhdXNlZCBieSByZWNvdmVyeQorICAgIGlmIChza2lwLnR5cGVfID09IHNraXBV
bnRpbFRva2VuIHx8IHNraXAudHlwZV8gPT0gdG9rZW5FbmRPZlN0cmVhbSkKKyAgICAgIGJyZWFr
OworICB9CisgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOworICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjphZGRFcnJvckFuZFJlY292ZXIoY29uc3Qgc3RkOjpzdHJpbmcm
IG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuJiB0b2tlbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UeXBlIHNraXBVbnRpbFRva2Vu
KSB7CisgIGFkZEVycm9yKG1lc3NhZ2UsIHRva2VuKTsKKyAgcmV0dXJuIHJlY292ZXJGcm9tRXJy
b3Ioc2tpcFVudGlsVG9rZW4pOworfQorCitWYWx1ZSYgT3VyUmVhZGVyOjpjdXJyZW50VmFsdWUo
KSB7IHJldHVybiAqKG5vZGVzXy50b3AoKSk7IH0KKworT3VyUmVhZGVyOjpDaGFyIE91clJlYWRl
cjo6Z2V0TmV4dENoYXIoKSB7CisgIGlmIChjdXJyZW50XyA9PSBlbmRfKQorICAgIHJldHVybiAw
OworICByZXR1cm4gKmN1cnJlbnRfKys7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpnZXRMb2NhdGlv
bkxpbmVBbmRDb2x1bW4oTG9jYXRpb24gbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCYgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50JiBjb2x1bW4pIGNvbnN0IHsKKyAgTG9jYXRpb24gY3VycmVudCA9IGJlZ2lu
XzsKKyAgTG9jYXRpb24gbGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgIGxpbmUgPSAwOworICB3
aGlsZSAoY3VycmVudCA8IGxvY2F0aW9uICYmIGN1cnJlbnQgIT0gZW5kXykgeworICAgIENoYXIg
YyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKCpjdXJyZW50
ID09ICdcbicpCisgICAgICAgICsrY3VycmVudDsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJy
ZW50OworICAgICAgKytsaW5lOworICAgIH0gZWxzZSBpZiAoYyA9PSAnXG4nKSB7CisgICAgICBs
YXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsrbGluZTsKKyAgICB9CisgIH0KKyAgLy8g
Y29sdW1uICYgbGluZSBzdGFydCBhdCAxCisgIGNvbHVtbiA9IGludChsb2NhdGlvbiAtIGxhc3RM
aW5lU3RhcnQpICsgMTsKKyAgKytsaW5lOworfQorCitzdGQ6OnN0cmluZyBPdXJSZWFkZXI6Omdl
dExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3QgeworICBpbnQg
bGluZSwgY29sdW1uOworICBnZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4obG9jYXRpb24sIGxpbmUs
IGNvbHVtbik7CisgIGNoYXIgYnVmZmVyWzE4ICsgMTYgKyAxNiArIDFdOworICBzbnByaW50Zihi
dWZmZXIsIHNpemVvZihidWZmZXIpLCAiTGluZSAlZCwgQ29sdW1uICVkIiwgbGluZSwgY29sdW1u
KTsKKyAgcmV0dXJuIGJ1ZmZlcjsKK30KKworc3RkOjpzdHJpbmcgT3VyUmVhZGVyOjpnZXRGb3Jt
YXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3QgeworICBzdGQ6OnN0cmluZyBmb3JtYXR0ZWRNZXNz
YWdlOworICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVn
aW4oKTsKKyAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7CisgICAgICAgKytpdEVycm9y
KSB7CisgICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOworICAgIGZvcm1hdHRl
ZE1lc3NhZ2UgKz0KKyAgICAgICAgIiogIiArIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihlcnJv
ci50b2tlbl8uc3RhcnRfKSArICJcbiI7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsg
ZXJyb3IubWVzc2FnZV8gKyAiXG4iOworICAgIGlmIChlcnJvci5leHRyYV8pCisgICAgICBmb3Jt
YXR0ZWRNZXNzYWdlICs9CisgICAgICAgICAgIlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29s
dW1uKGVycm9yLmV4dHJhXykgKyAiIGZvciBkZXRhaWwuXG4iOworICB9CisgIHJldHVybiBmb3Jt
YXR0ZWRNZXNzYWdlOworfQorCitzdGQ6OnZlY3RvcjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
cj4gT3VyUmVhZGVyOjpnZXRTdHJ1Y3R1cmVkRXJyb3JzKCkgY29uc3QgeworICBzdGQ6OnZlY3Rv
cjxPdXJSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gYWxsRXJyb3JzOworICBmb3IgKEVycm9yczo6
Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVycm9yc18uYmVnaW4oKTsKKyAgICAgICBpdEVycm9y
ICE9IGVycm9yc18uZW5kKCk7CisgICAgICAgKytpdEVycm9yKSB7CisgICAgY29uc3QgRXJyb3JJ
bmZvJiBlcnJvciA9ICppdEVycm9yOworICAgIE91clJlYWRlcjo6U3RydWN0dXJlZEVycm9yIHN0
cnVjdHVyZWQ7CisgICAgc3RydWN0dXJlZC5vZmZzZXRfc3RhcnQgPSBlcnJvci50b2tlbl8uc3Rh
cnRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQub2Zmc2V0X2xpbWl0ID0gZXJyb3IudG9rZW5f
LmVuZF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJlZC5tZXNzYWdlID0gZXJyb3IubWVzc2FnZV87
CisgICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1Y3R1cmVkKTsKKyAgfQorICByZXR1cm4gYWxs
RXJyb3JzOworfQorCitib29sIE91clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1
ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsKKyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8g
LSBiZWdpbl87CisgIGlmKHZhbHVlLmdldE9mZnNldFN0YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2
YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgVG9r
ZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRfID0g
YmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGVuZF8gKyB2
YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8g
PSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gMDsK
KyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIE91
clJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSkgeworICBzaXplX3QgbGVuZ3RoID0gZW5kXyAt
IGJlZ2luXzsKKyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKSA+IGxlbmd0aAorICAgIHx8IHZh
bHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgKKyAgICB8fCBleHRyYS5nZXRPZmZzZXRMaW1p
dCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47CisgIHRva2Vu
LnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0
T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGJlZ2luXyArIHZhbHVlLmdldE9mZnNldExp
bWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZv
Lm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8gPSBiZWdpbl8gKyBleHRyYS5nZXRP
ZmZzZXRTdGFydCgpOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpnb29kKCkgY29uc3QgeworICByZXR1cm4gIWVycm9yc18u
c2l6ZSgpOworfQorCisKK2NsYXNzIE91ckNoYXJSZWFkZXIgOiBwdWJsaWMgQ2hhclJlYWRlciB7
CisgIGJvb2wgY29uc3QgY29sbGVjdENvbW1lbnRzXzsKKyAgT3VyUmVhZGVyIHJlYWRlcl87Citw
dWJsaWM6CisgIE91ckNoYXJSZWFkZXIoCisgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMsCisgICAg
T3VyRmVhdHVyZXMgY29uc3QmIGZlYXR1cmVzKQorICA6IGNvbGxlY3RDb21tZW50c18oY29sbGVj
dENvbW1lbnRzKQorICAsIHJlYWRlcl8oZmVhdHVyZXMpCisgIHt9CisgIGJvb2wgcGFyc2UoCisg
ICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywgY2hhciBjb25zdCogZW5kRG9jLAorICAgICAgVmFs
dWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKSB7CisgICAgYm9vbCBvayA9IHJlYWRlcl8ucGFy
c2UoYmVnaW5Eb2MsIGVuZERvYywgKnJvb3QsIGNvbGxlY3RDb21tZW50c18pOworICAgIGlmIChl
cnJzKSB7CisgICAgICAqZXJycyA9IHJlYWRlcl8uZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygp
OworICAgIH0KKyAgICByZXR1cm4gb2s7CisgIH0KK307CisKK0NoYXJSZWFkZXJCdWlsZGVyOjpD
aGFyUmVhZGVyQnVpbGRlcigpCit7CisgIHNldERlZmF1bHRzKCZzZXR0aW5nc18pOworfQorQ2hh
clJlYWRlckJ1aWxkZXI6On5DaGFyUmVhZGVyQnVpbGRlcigpCit7fQorQ2hhclJlYWRlciogQ2hh
clJlYWRlckJ1aWxkZXI6Om5ld0NoYXJSZWFkZXIoKSBjb25zdAoreworICBib29sIGNvbGxlY3RD
b21tZW50cyA9IHNldHRpbmdzX1siY29sbGVjdENvbW1lbnRzIl0uYXNCb29sKCk7CisgIE91ckZl
YXR1cmVzIGZlYXR1cmVzID0gT3VyRmVhdHVyZXM6OmFsbCgpOworICBmZWF0dXJlcy5hbGxvd0Nv
bW1lbnRzXyA9IHNldHRpbmdzX1siYWxsb3dDb21tZW50cyJdLmFzQm9vbCgpOworICBmZWF0dXJl
cy5zdHJpY3RSb290XyA9IHNldHRpbmdzX1sic3RyaWN0Um9vdCJdLmFzQm9vbCgpOworICBmZWF0
dXJlcy5hbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXyA9IHNldHRpbmdzX1siYWxsb3dEcm9w
cGVkTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd051bWVyaWNL
ZXlzXyA9IHNldHRpbmdzX1siYWxsb3dOdW1lcmljS2V5cyJdLmFzQm9vbCgpOworICBmZWF0dXJl
cy5hbGxvd1NpbmdsZVF1b3Rlc18gPSBzZXR0aW5nc19bImFsbG93U2luZ2xlUXVvdGVzIl0uYXNC
b29sKCk7CisgIGZlYXR1cmVzLnN0YWNrTGltaXRfID0gc2V0dGluZ3NfWyJzdGFja0xpbWl0Il0u
YXNJbnQoKTsKKyAgZmVhdHVyZXMuZmFpbElmRXh0cmFfID0gc2V0dGluZ3NfWyJmYWlsSWZFeHRy
YSJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5yZWplY3REdXBLZXlzXyA9IHNldHRpbmdzX1sicmVq
ZWN0RHVwS2V5cyJdLmFzQm9vbCgpOworICBmZWF0dXJlcy5hbGxvd1NwZWNpYWxGbG9hdHNfID0g
c2V0dGluZ3NfWyJhbGxvd1NwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsKKyAgcmV0dXJuIG5ldyBP
dXJDaGFyUmVhZGVyKGNvbGxlY3RDb21tZW50cywgZmVhdHVyZXMpOworfQorc3RhdGljIHZvaWQg
Z2V0VmFsaWRSZWFkZXJLZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogdmFsaWRfa2V5cykKK3sK
KyAgdmFsaWRfa2V5cy0+Y2xlYXIoKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJjb2xsZWN0Q29t
bWVudHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd0NvbW1lbnRzIik7CisgIHZhbGlk
X2tleXMtPmluc2VydCgic3RyaWN0Um9vdCIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93
RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd051
bWVyaWNLZXlzIik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTaW5nbGVRdW90ZXMiKTsK
KyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdGFja0xpbWl0Iik7CisgIHZhbGlkX2tleXMtPmluc2Vy
dCgiZmFpbElmRXh0cmEiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJyZWplY3REdXBLZXlzIik7
CisgIHZhbGlkX2tleXMtPmluc2VydCgiYWxsb3dTcGVjaWFsRmxvYXRzIik7Cit9Citib29sIENo
YXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3QKK3sK
KyAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAgaWYgKCFpbnZhbGlkKSBpbnZhbGlkID0gJm15
X2ludmFsaWQ7ICAvLyBzbyB3ZSBkbyBub3QgbmVlZCB0byB0ZXN0IGZvciBOVUxMCisgIEpzb246
OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKKyAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IHZhbGlkX2tl
eXM7CisgIGdldFZhbGlkUmVhZGVyS2V5cygmdmFsaWRfa2V5cyk7CisgIFZhbHVlOjpNZW1iZXJz
IGtleXMgPSBzZXR0aW5nc18uZ2V0TWVtYmVyTmFtZXMoKTsKKyAgc2l6ZV90IG4gPSBrZXlzLnNp
emUoKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICBzdGQ6OnN0cmlu
ZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKKyAgICBpZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0g
dmFsaWRfa2V5cy5lbmQoKSkgeworICAgICAgaW52W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuIDB1ID09IGludi5zaXplKCk7Cit9CitWYWx1ZSYgQ2hhclJlYWRl
ckJ1aWxkZXI6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcga2V5KQoreworICByZXR1cm4gc2V0dGlu
Z3NfW2tleV07Cit9CisvLyBzdGF0aWMKK3ZvaWQgQ2hhclJlYWRlckJ1aWxkZXI6OnN0cmljdE1v
ZGUoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQoreworLy8hIFtDaGFyUmVhZGVyQnVpbGRlclN0cmlj
dE1vZGVdCisgICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRzIl0gPSBmYWxzZTsKKyAgKCpzZXR0
aW5ncylbInN0cmljdFJvb3QiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd0Ryb3BwZWRO
dWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93TnVtZXJpY0tl
eXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTaW5nbGVRdW90ZXMiXSA9IGZhbHNl
OworICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAwMDsKKyAgKCpzZXR0aW5ncylbImZh
aWxJZkV4dHJhIl0gPSB0cnVlOworICAoKnNldHRpbmdzKVsicmVqZWN0RHVwS2V5cyJdID0gdHJ1
ZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisvLyEgW0No
YXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZV0KK30KKy8vIHN0YXRpYwordm9pZCBDaGFyUmVhZGVy
QnVpbGRlcjo6c2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdzKQoreworLy8hIFtDaGFy
UmVhZGVyQnVpbGRlckRlZmF1bHRzXQorICAoKnNldHRpbmdzKVsiY29sbGVjdENvbW1lbnRzIl0g
PSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dDb21tZW50cyJdID0gdHJ1ZTsKKyAgKCpzZXR0
aW5ncylbInN0cmljdFJvb3QiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dEcm9wcGVk
TnVsbFBsYWNlaG9sZGVycyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd051bWVyaWNL
ZXlzIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U2luZ2xlUXVvdGVzIl0gPSBmYWxz
ZTsKKyAgKCpzZXR0aW5ncylbInN0YWNrTGltaXQiXSA9IDEwMDA7CisgICgqc2V0dGluZ3MpWyJm
YWlsSWZFeHRyYSJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJyZWplY3REdXBLZXlzIl0gPSBm
YWxzZTsKKyAgKCpzZXR0aW5ncylbImFsbG93U3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisvLyEg
W0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIGdsb2JhbCBmdW5jdGlvbnMKKworYm9vbCBwYXJzZUZyb21TdHJlYW0o
CisgICAgQ2hhclJlYWRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdCwgc3RkOjppc3RyZWFtJiBzaW4s
CisgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJzKQoreworICBzdGQ6Om9zdHJpbmdz
dHJlYW0gc3NpbjsKKyAgc3NpbiA8PCBzaW4ucmRidWYoKTsKKyAgc3RkOjpzdHJpbmcgZG9jID0g
c3Npbi5zdHIoKTsKKyAgY2hhciBjb25zdCogYmVnaW4gPSBkb2MuZGF0YSgpOworICBjaGFyIGNv
bnN0KiBlbmQgPSBiZWdpbiArIGRvYy5zaXplKCk7CisgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3Qg
YWN0dWFsbHkgbmVlZCBhIG51bGwtdGVybWluYXRvci4KKyAgQ2hhclJlYWRlclB0ciBjb25zdCBy
ZWFkZXIoZmFjdC5uZXdDaGFyUmVhZGVyKCkpOworICByZXR1cm4gcmVhZGVyLT5wYXJzZShiZWdp
biwgZW5kLCByb290LCBlcnJzKTsKK30KKworc3RkOjppc3RyZWFtJiBvcGVyYXRvcj4+KHN0ZDo6
aXN0cmVhbSYgc2luLCBWYWx1ZSYgcm9vdCkgeworICBDaGFyUmVhZGVyQnVpbGRlciBiOworICBz
dGQ6OnN0cmluZyBlcnJzOworICBib29sIG9rID0gcGFyc2VGcm9tU3RyZWFtKGIsIHNpbiwgJnJv
b3QsICZlcnJzKTsKKyAgaWYgKCFvaykgeworICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAg
ICAgIkVycm9yIGZyb20gcmVhZGVyOiAlcyIsCisgICAgICAgICAgICBlcnJzLmNfc3RyKCkpOwor
CisgICAgdGhyb3dSdW50aW1lRXJyb3IoZXJycyk7CisgIH0KKyAgcmV0dXJuIHNpbjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSnNvbgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVu
dCBvZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl9yZWFkZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl92YWx1ZWl0ZXJhdG9yLmlubAorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlz
dHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBh
bmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNF
TlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQv
TElDRU5TRQorCisvLyBpbmNsdWRlZCBieSBqc29uX3ZhbHVlLmNwcAorCituYW1lc3BhY2UgSnNv
biB7CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNz
IFZhbHVlSXRlcmF0b3JCYXNlCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK1ZhbHVlSXRlcmF0b3JCYXNlOjpWYWx1ZUl0ZXJhdG9yQmFzZSgpCisgICAgOiBjdXJy
ZW50XygpLCBpc051bGxfKHRydWUpIHsKK30KKworVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRl
cmF0b3JCYXNlKAorICAgIGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJy
ZW50KQorICAgIDogY3VycmVudF8oY3VycmVudCksIGlzTnVsbF8oZmFsc2UpIHt9CisKK1ZhbHVl
JiBWYWx1ZUl0ZXJhdG9yQmFzZTo6ZGVyZWYoKSBjb25zdCB7CisgIHJldHVybiBjdXJyZW50Xy0+
c2Vjb25kOworfQorCit2b2lkIFZhbHVlSXRlcmF0b3JCYXNlOjppbmNyZW1lbnQoKSB7CisgICsr
Y3VycmVudF87Cit9CisKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmRlY3JlbWVudCgpIHsKKyAg
LS1jdXJyZW50XzsKK30KKworVmFsdWVJdGVyYXRvckJhc2U6OmRpZmZlcmVuY2VfdHlwZQorVmFs
dWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5jZShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNv
bnN0IHsKKyNpZmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1BUAorICByZXR1cm4gb3RoZXIuY3Vy
cmVudF8gLSBjdXJyZW50XzsKKyNlbHNlCisgIC8vIEl0ZXJhdG9yIGZvciBudWxsIHZhbHVlIGFy
ZSBpbml0aWFsaXplZCB1c2luZyB0aGUgZGVmYXVsdAorICAvLyBjb25zdHJ1Y3Rvciwgd2hpY2gg
aW5pdGlhbGl6ZSBjdXJyZW50XyB0byB0aGUgZGVmYXVsdAorICAvLyBzdGQ6Om1hcDo6aXRlcmF0
b3IuIEFzIGJlZ2luKCkgYW5kIGVuZCgpIGFyZSB0d28gaW5zdGFuY2UKKyAgLy8gb2YgdGhlIGRl
ZmF1bHQgc3RkOjptYXA6Oml0ZXJhdG9yLCB0aGV5IGNhbiBub3QgYmUgY29tcGFyZWQuCisgIC8v
IFRvIGFsbG93IHRoaXMsIHdlIGhhbmRsZSB0aGlzIGNvbXBhcmlzb24gc3BlY2lmaWNhbGx5Lgor
ICBpZiAoaXNOdWxsXyAmJiBvdGhlci5pc051bGxfKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKwor
ICAvLyBVc2FnZSBvZiBzdGQ6OmRpc3RhbmNlIGlzIG5vdCBwb3J0YWJsZSAoZG9lcyBub3QgY29t
cGlsZSB3aXRoIFN1biBTdHVkaW8gMTIKKyAgLy8gUm9ndWVXYXZlIFNUTCwKKyAgLy8gd2hpY2gg
aXMgdGhlIG9uZSB1c2VkIGJ5IGRlZmF1bHQpLgorICAvLyBVc2luZyBhIHBvcnRhYmxlIGhhbmQt
bWFkZSB2ZXJzaW9uIGZvciBub24gcmFuZG9tIGl0ZXJhdG9yIGluc3RlYWQ6CisgIC8vICAgcmV0
dXJuIGRpZmZlcmVuY2VfdHlwZSggc3RkOjpkaXN0YW5jZSggY3VycmVudF8sIG90aGVyLmN1cnJl
bnRfICkgKTsKKyAgZGlmZmVyZW5jZV90eXBlIG15RGlzdGFuY2UgPSAwOworICBmb3IgKFZhbHVl
OjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gY3VycmVudF87IGl0ICE9IG90aGVyLmN1cnJl
bnRfOworICAgICAgICsraXQpIHsKKyAgICArK215RGlzdGFuY2U7CisgIH0KKyAgcmV0dXJuIG15
RGlzdGFuY2U7CisjZW5kaWYKK30KKworYm9vbCBWYWx1ZUl0ZXJhdG9yQmFzZTo6aXNFcXVhbChj
b25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKGlzTnVsbF8pIHsKKyAgICByZXR1
cm4gb3RoZXIuaXNOdWxsXzsKKyAgfQorICByZXR1cm4gY3VycmVudF8gPT0gb3RoZXIuY3VycmVu
dF87Cit9CisKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6OmNvcHkoY29uc3QgU2VsZlR5cGUmIG90
aGVyKSB7CisgIGN1cnJlbnRfID0gb3RoZXIuY3VycmVudF87CisgIGlzTnVsbF8gPSBvdGhlci5p
c051bGxfOworfQorCitWYWx1ZSBWYWx1ZUl0ZXJhdG9yQmFzZTo6a2V5KCkgY29uc3QgeworICBj
b25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsKKyAgaWYg
KGN6c3RyaW5nLmRhdGEoKSkgeworICAgIGlmIChjenN0cmluZy5pc1N0YXRpY1N0cmluZygpKQor
ICAgICAgcmV0dXJuIFZhbHVlKFN0YXRpY1N0cmluZyhjenN0cmluZy5kYXRhKCkpKTsKKyAgICBy
ZXR1cm4gVmFsdWUoY3pzdHJpbmcuZGF0YSgpLCBjenN0cmluZy5kYXRhKCkgKyBjenN0cmluZy5s
ZW5ndGgoKSk7CisgIH0KKyAgcmV0dXJuIFZhbHVlKGN6c3RyaW5nLmluZGV4KCkpOworfQorCitV
SW50IFZhbHVlSXRlcmF0b3JCYXNlOjppbmRleCgpIGNvbnN0IHsKKyAgY29uc3QgVmFsdWU6OkNa
U3RyaW5nIGN6c3RyaW5nID0gKCpjdXJyZW50XykuZmlyc3Q7CisgIGlmICghY3pzdHJpbmcuZGF0
YSgpKQorICAgIHJldHVybiBjenN0cmluZy5pbmRleCgpOworICByZXR1cm4gVmFsdWU6OlVJbnQo
LTEpOworfQorCitzdGQ6OnN0cmluZyBWYWx1ZUl0ZXJhdG9yQmFzZTo6bmFtZSgpIGNvbnN0IHsK
KyAgY2hhciBjb25zdCoga2VleTsKKyAgY2hhciBjb25zdCogZW5kOworICBrZWV5ID0gbWVtYmVy
TmFtZSgmZW5kKTsKKyAgaWYgKCFrZWV5KSByZXR1cm4gc3RkOjpzdHJpbmcoKTsKKyAgcmV0dXJu
IHN0ZDo6c3RyaW5nKGtlZXksIGVuZCk7Cit9CisKK2NoYXIgY29uc3QqIFZhbHVlSXRlcmF0b3JC
YXNlOjptZW1iZXJOYW1lKCkgY29uc3QgeworICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVu
dF8pLmZpcnN0LmRhdGEoKTsKKyAgcmV0dXJuIGNuYW1lID8gY25hbWUgOiAiIjsKK30KKworY2hh
ciBjb25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUoY2hhciBjb25zdCoqIGVuZCkg
Y29uc3QgeworICBjb25zdCBjaGFyKiBjbmFtZSA9ICgqY3VycmVudF8pLmZpcnN0LmRhdGEoKTsK
KyAgaWYgKCFjbmFtZSkgeworICAgICplbmQgPSBOVUxMOworICAgIHJldHVybiBOVUxMOworICB9
CisgICplbmQgPSBjbmFtZSArICgqY3VycmVudF8pLmZpcnN0Lmxlbmd0aCgpOworICByZXR1cm4g
Y25hbWU7Cit9CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IGNsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworCitWYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVlQ29uc3RJdGVyYXRvcigpIHt9
CisKK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFsdWVDb25zdEl0ZXJhdG9yKAorICAgIGNvbnN0IFZh
bHVlOjpPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yJiBjdXJyZW50KQorICAgIDogVmFsdWVJdGVyYXRv
ckJhc2UoY3VycmVudCkge30KKworVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRlcmF0
b3IoVmFsdWVJdGVyYXRvciBjb25zdCYgb3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShv
dGhlcikge30KKworVmFsdWVDb25zdEl0ZXJhdG9yJiBWYWx1ZUNvbnN0SXRlcmF0b3I6Ogorb3Bl
cmF0b3I9KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcikgeworICBjb3B5KG90aGVyKTsK
KyAgcmV0dXJuICp0aGlzOworfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyBjbGFzcyBWYWx1ZUl0ZXJhdG9yCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoKSB7fQorCitW
YWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZhbHVlOjpPYmplY3RWYWx1ZXM6Oml0
ZXJhdG9yJiBjdXJyZW50KQorICAgIDogVmFsdWVJdGVyYXRvckJhc2UoY3VycmVudCkge30KKwor
VmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihjb25zdCBWYWx1ZUNvbnN0SXRlcmF0b3ImIG90
aGVyKQorICAgIDogVmFsdWVJdGVyYXRvckJhc2Uob3RoZXIpIHsKKyAgdGhyb3dSdW50aW1lRXJy
b3IoIkNvbnN0SXRlcmF0b3IgdG8gSXRlcmF0b3Igc2hvdWxkIG5ldmVyIGJlIGFsbG93ZWQuIik7
Cit9CisKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFsdWVJdGVyYXRvciYg
b3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikge30KKworVmFsdWVJdGVyYXRv
ciYgVmFsdWVJdGVyYXRvcjo6b3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgeworICBj
b3B5KG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNv
bi9qc29uX3ZhbHVlaXRlcmF0b3IuaW5sCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGli
X2pzb24vanNvbl92YWx1ZS5jcHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIw
MTEgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwg
b3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1
cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0
dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZiAhZGVmaW5lZChKU09O
X0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxqc29uL2Fzc2VydGlvbnMuaD4KKyNpbmNsdWRl
IDxqc29uL3ZhbHVlLmg+CisjaW5jbHVkZSA8anNvbi93cml0ZXIuaD4KKyNlbmRpZiAvLyBpZiAh
ZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVk
ZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5j
bHVkZSA8Y2Fzc2VydD4KKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorI2luY2x1ZGUgPGNwcHRsL2Nv
bnN0c3RyaW5nLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxjc3RkZGVmPiAvLyBzaXplX3QKKyNpbmNs
dWRlIDxhbGdvcml0aG0+IC8vIG1pbigpCisKKyNkZWZpbmUgSlNPTl9BU1NFUlRfVU5SRUFDSEFC
TEUgYXNzZXJ0KGZhbHNlKQorCisvKgorLS0gVmFsdmUgMS83LzE2Cis0NzAyIHVucmVhY2hhYmxl
IGNvZGUKKyovCisjcHJhZ21hIHdhcm5pbmcgKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcgKGRpc2Fi
bGU6IDQ3MDIpCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8gVGhpcyBpcyBhIHdhbGthcm91bmQg
dG8gYXZvaWQgdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbiBvZiBWYWx1ZTo6bnVsbC4KKy8vIGtO
dWxsIG11c3QgYmUgd29yZC1hbGlnbmVkIHRvIGF2b2lkIGNyYXNoaW5nIG9uIEFSTS4gIFdlIHVz
ZSBhbiBhbGlnbm1lbnQgb2YKKy8vIDggKGluc3RlYWQgb2YgNCkgYXMgYSBiaXQgb2YgZnV0dXJl
LXByb29maW5nLgorI2lmIGRlZmluZWQoX19BUk1FTF9fKQorI2RlZmluZSBBTElHTkFTKGJ5dGVf
YWxpZ25tZW50KSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGJ5dGVfYWxpZ25tZW50KSkpCisjZWxz
ZQorI2RlZmluZSBBTElHTkFTKGJ5dGVfYWxpZ25tZW50KQorI2VuZGlmCitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgY2hhciBBTElHTkFTKDgpIGtOdWxsW3NpemVvZihWYWx1ZSldID0geyAwIH07Citj
b25zdCB1bnNpZ25lZCBjaGFyJiBrTnVsbFJlZiA9IGtOdWxsWzBdOworY29uc3QgVmFsdWUmIFZh
bHVlOjpudWxsID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBWYWx1ZSY+KGtOdWxsUmVmKTsKK2Nv
bnN0IFZhbHVlJiBWYWx1ZTo6bnVsbFJlZiA9IG51bGw7CisKK2NvbnN0IEludCBWYWx1ZTo6bWlu
SW50ID0gSW50KH4oVUludCgtMSkgLyAyKSk7Citjb25zdCBJbnQgVmFsdWU6Om1heEludCA9IElu
dChVSW50KC0xKSAvIDIpOworY29uc3QgVUludCBWYWx1ZTo6bWF4VUludCA9IFVJbnQoLTEpOwor
I2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitjb25zdCBJbnQ2NCBWYWx1ZTo6bWluSW50NjQg
PSBJbnQ2NCh+KFVJbnQ2NCgtMSkgLyAyKSk7Citjb25zdCBJbnQ2NCBWYWx1ZTo6bWF4SW50NjQg
PSBJbnQ2NChVSW50NjQoLTEpIC8gMik7Citjb25zdCBVSW50NjQgVmFsdWU6Om1heFVJbnQ2NCA9
IFVJbnQ2NCgtMSk7CisvLyBUaGUgY29uc3RhbnQgaXMgaGFyZC1jb2RlZCBiZWNhdXNlIHNvbWUg
Y29tcGlsZXIgaGF2ZSB0cm91YmxlCisvLyBjb252ZXJ0aW5nIFZhbHVlOjptYXhVSW50NjQgdG8g
YSBkb3VibGUgY29ycmVjdGx5IChBSVgveGxDKS4KKy8vIEFzc3VtZXMgdGhhdCBVSW50NjQgaXMg
YSA2NCBiaXRzIGludGVnZXIuCitzdGF0aWMgY29uc3QgZG91YmxlIG1heFVJbnQ2NEFzRG91Ymxl
ID0gMTg0NDY3NDQwNzM3MDk1NTE2MTUuMDsKKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lO
VDY0KQorY29uc3QgTGFyZ2VzdEludCBWYWx1ZTo6bWluTGFyZ2VzdEludCA9IExhcmdlc3RJbnQo
fihMYXJnZXN0VUludCgtMSkgLyAyKSk7Citjb25zdCBMYXJnZXN0SW50IFZhbHVlOjptYXhMYXJn
ZXN0SW50ID0gTGFyZ2VzdEludChMYXJnZXN0VUludCgtMSkgLyAyKTsKK2NvbnN0IExhcmdlc3RV
SW50IFZhbHVlOjptYXhMYXJnZXN0VUludCA9IExhcmdlc3RVSW50KC0xKTsKKworI2lmICFkZWZp
bmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQordGVtcGxhdGUgPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFU+CitzdGF0aWMgaW5saW5lIGJvb2wgSW5SYW5nZShkb3VibGUgZCwgVCBt
aW4sIFUgbWF4KSB7CisgIHJldHVybiBkID49IG1pbiAmJiBkIDw9IG1heDsKK30KKyNlbHNlICAv
LyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKK3N0YXRpYyBp
bmxpbmUgZG91YmxlIGludGVnZXJUb0RvdWJsZShKc29uOjpVSW50NjQgdmFsdWUpIHsKKyAgcmV0
dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oSW50NjQodmFsdWUgLyAyKSkgKiAyLjAgKyBJbnQ2NCh2
YWx1ZSAmIDEpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSBkb3Vi
bGUgaW50ZWdlclRvRG91YmxlKFQgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJs
ZT4odmFsdWUpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK3N0YXRp
YyBpbmxpbmUgYm9vbCBJblJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKKyAgcmV0dXJu
IGQgPj0gaW50ZWdlclRvRG91YmxlKG1pbikgJiYgZCA8PSBpbnRlZ2VyVG9Eb3VibGUobWF4KTsK
K30KKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lP
TikKKworLyoqIER1cGxpY2F0ZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgdmFsdWUuCisgKiBAcGFy
YW0gdmFsdWUgUG9pbnRlciB0byB0aGUgc3RyaW5nIHRvIGR1cGxpY2F0ZS4gTXVzdCBiZSB6ZXJv
LXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICBsZW5ndGggaXMgInVua25vd24iLgorICog
QHBhcmFtIGxlbmd0aCBMZW5ndGggb2YgdGhlIHZhbHVlLiBpZiBlcXVhbHMgdG8gdW5rbm93biwg
dGhlbiBpdCB3aWxsIGJlCisgKiAgICAgICAgICAgICAgIGNvbXB1dGVkIHVzaW5nIHN0cmxlbih2
YWx1ZSkuCisgKiBAcmV0dXJuIFBvaW50ZXIgb24gdGhlIGR1cGxpY2F0ZSBpbnN0YW5jZSBvZiBz
dHJpbmcuCisgKi8KK3N0YXRpYyBpbmxpbmUgY2hhciogZHVwbGljYXRlU3RyaW5nVmFsdWUoY29u
c3QgY2hhciogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gQXZvaWQgYW4gaW50ZWdlciBvdmVyZmxvdyBpbiB0aGUg
Y2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3RoCisgIC8vIHRvIGEgc2FuZSB2
YWx1ZS4KKyAgaWYgKGxlbmd0aCA+PSAoc2l6ZV90KVZhbHVlOjptYXhJbnQpCisgICAgbGVuZ3Ro
ID0gVmFsdWU6Om1heEludCAtIDE7CisKKyAgY2hhciogbmV3U3RyaW5nID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KG1hbGxvYyhsZW5ndGggKyAxKSk7CisgIGlmIChuZXdTdHJpbmcgPT0gTlVMTCkgewor
ICAgIHRocm93UnVudGltZUVycm9yKAorICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0
ZVN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFs
dWUgYnVmZmVyIik7CisgIH0KKyAgbWVtY3B5KG5ld1N0cmluZywgdmFsdWUsIGxlbmd0aCk7Cisg
IG5ld1N0cmluZ1tsZW5ndGhdID0gMDsKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KKworLyogUmVj
b3JkIHRoZSBsZW5ndGggYXMgYSBwcmVmaXguCisgKi8KK3N0YXRpYyBpbmxpbmUgY2hhciogZHVw
bGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoCisgICAgY29uc3QgY2hhciogdmFsdWUsCisgICAg
dW5zaWduZWQgaW50IGxlbmd0aCkKK3sKKyAgLy8gQXZvaWQgYW4gaW50ZWdlciBvdmVyZmxvdyBp
biB0aGUgY2FsbCB0byBtYWxsb2MgYmVsb3cgYnkgbGltaXRpbmcgbGVuZ3RoCisgIC8vIHRvIGEg
c2FuZSB2YWx1ZS4KKyAgSlNPTl9BU1NFUlRfTUVTU0FHRShsZW5ndGggPD0gKHVuc2lnbmVkKVZh
bHVlOjptYXhJbnQgLSBzaXplb2YodW5zaWduZWQpIC0gMVUsCisgICAgICAgICAgICAgICAgICAg
ICAgImluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpOiAiCisg
ICAgICAgICAgICAgICAgICAgICAgImxlbmd0aCB0b28gYmlnIGZvciBwcmVmaXhpbmciKTsKKyAg
dW5zaWduZWQgYWN0dWFsTGVuZ3RoID0gbGVuZ3RoICsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNp
emVvZih1bnNpZ25lZCkpICsgMVU7CisgIGNoYXIqIG5ld1N0cmluZyA9IHN0YXRpY19jYXN0PGNo
YXIqPihtYWxsb2MoYWN0dWFsTGVuZ3RoKSk7CisgIGlmIChuZXdTdHJpbmcgPT0gMCkgeworICAg
IHRocm93UnVudGltZUVycm9yKAorICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFu
ZFByZWZpeFN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBzdHJp
bmcgdmFsdWUgYnVmZmVyIik7CisgIH0KKyAgKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihu
ZXdTdHJpbmcpID0gbGVuZ3RoOworICBtZW1jcHkobmV3U3RyaW5nICsgc2l6ZW9mKHVuc2lnbmVk
KSwgdmFsdWUsIGxlbmd0aCk7CisgIG5ld1N0cmluZ1thY3R1YWxMZW5ndGggLSAxVV0gPSAwOyAv
LyB0byBhdm9pZCBidWZmZXIgb3Zlci1ydW4gYWNjaWRlbnRzIGJ5IHVzZXJzIGxhdGVyCisgIHJl
dHVybiBuZXdTdHJpbmc7Cit9CitpbmxpbmUgc3RhdGljIHZvaWQgZGVjb2RlUHJlZml4ZWRTdHJp
bmcoCisgICAgYm9vbCBpc1ByZWZpeGVkLCBjaGFyIGNvbnN0KiBwcmVmaXhlZCwKKyAgICB1bnNp
Z25lZCogbGVuZ3RoLCBjaGFyIGNvbnN0KiogdmFsdWUpCit7CisgIGlmICghaXNQcmVmaXhlZCkg
eworICAgICpsZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKHByZWZpeGVkKSk7
CisgICAgKnZhbHVlID0gcHJlZml4ZWQ7CisgIH0gZWxzZSB7CisgICAgKmxlbmd0aCA9ICpyZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkIGNvbnN0Kj4ocHJlZml4ZWQpOworICAgICp2YWx1ZSA9IHBy
ZWZpeGVkICsgc2l6ZW9mKHVuc2lnbmVkKTsKKyAgfQorfQorLyoqIEZyZWUgdGhlIHN0cmluZyBk
dXBsaWNhdGVkIGJ5IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCkvZHVwbGljYXRlQW5kUHJlZml4U3Ry
aW5nVmFsdWUoKS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHJlbGVhc2VTdHJpbmdWYWx1ZShj
aGFyKiB2YWx1ZSkgeyBmcmVlKHZhbHVlKTsgfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIFZhbHVlSW50ZXJuYWxz
Li4uCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisjaWYgIWRlZmlu
ZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKKyNpbmNsdWRlICJqc29uX3ZhbHVlaXRlcmF0b3Iu
aW5sIgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1l
c3BhY2UgSnNvbiB7CisKK0V4Y2VwdGlvbjo6RXhjZXB0aW9uKHN0ZDo6c3RyaW5nIGNvbnN0JiBt
c2cpCisgIDogbXNnXyhtc2cpCit7fQorRXhjZXB0aW9uOjp+RXhjZXB0aW9uKCkgdGhyb3coKQor
e30KK2NoYXIgY29uc3QqIEV4Y2VwdGlvbjo6d2hhdCgpIGNvbnN0IHRocm93KCkKK3sKKyAgcmV0
dXJuIG1zZ18uY19zdHIoKTsKK30KK1J1bnRpbWVFcnJvcjo6UnVudGltZUVycm9yKHN0ZDo6c3Ry
aW5nIGNvbnN0JiBtc2cpCisgIDogRXhjZXB0aW9uKG1zZykKK3t9CitMb2dpY0Vycm9yOjpMb2dp
Y0Vycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCisgIDogRXhjZXB0aW9uKG1zZykKK3t9Cit2
b2lkIHRocm93UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpCit7CisgIHRocm93
IFJ1bnRpbWVFcnJvcihtc2cpOworfQordm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcg
Y29uc3QmIG1zZykKK3sKKyAgdGhyb3cgTG9naWNFcnJvcihtc2cpOworfQorCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBjbGFzcyBWYWx1ZTo6Q29tbWVudElu
Zm8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFsdWU6OkNv
bW1lbnRJbmZvOjpDb21tZW50SW5mbygpIDogY29tbWVudF8oMCkge30KKworVmFsdWU6OkNvbW1l
bnRJbmZvOjp+Q29tbWVudEluZm8oKSB7CisgIGlmIChjb21tZW50XykKKyAgICByZWxlYXNlU3Ry
aW5nVmFsdWUoY29tbWVudF8pOworfQorCit2b2lkIFZhbHVlOjpDb21tZW50SW5mbzo6c2V0Q29t
bWVudChjb25zdCBjaGFyKiB0ZXh0LCBzaXplX3QgbGVuKSB7CisgIGlmIChjb21tZW50Xykgewor
ICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb21tZW50Xyk7CisgICAgY29tbWVudF8gPSAwOworICB9
CisgIEpTT05fQVNTRVJUKHRleHQgIT0gMCk7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAg
ICB0ZXh0WzBdID09ICdcMCcgfHwgdGV4dFswXSA9PSAnLycsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6OnNldENvbW1lbnQoKTogQ29tbWVudHMgbXVzdCBzdGFydCB3aXRoIC8iKTsKKyAgLy8gSXQg
c2VlbXMgdGhhdCAvKiovIHN0eWxlIGNvbW1lbnRzIGFyZSBhY2NlcHRhYmxlIGFzIHdlbGwuCisg
IGNvbW1lbnRfID0gZHVwbGljYXRlU3RyaW5nVmFsdWUodGV4dCwgbGVuKTsKK30KKworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWU6OkNaU3Ry
aW5nCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIE5vdGVz
OiBwb2xpY3lfIGluZGljYXRlcyBpZiB0aGUgc3RyaW5nIHdhcyBhbGxvY2F0ZWQgd2hlbgorLy8g
YSBzdHJpbmcgaXMgc3RvcmVkLgorCitWYWx1ZTo6Q1pTdHJpbmc6OkNaU3RyaW5nKEFycmF5SW5k
ZXggYWluZGV4KSA6IGNzdHJfKDApLCBpbmRleF8oYWluZGV4KSB7fQorCitWYWx1ZTo6Q1pTdHJp
bmc6OkNaU3RyaW5nKGNoYXIgY29uc3QqIHN0ciwgdW5zaWduZWQgdWxlbmd0aCwgRHVwbGljYXRp
b25Qb2xpY3kgYWxsb2NhdGUpCisgICAgOiBjc3RyXyhzdHIpIHsKKyAgLy8gYWxsb2NhdGUgIT0g
ZHVwbGljYXRlCisgIHN0b3JhZ2VfLnBvbGljeV8gPSBhbGxvY2F0ZSAmIDB4MzsKKyAgc3RvcmFn
ZV8ubGVuZ3RoXyA9IHVsZW5ndGggJiAweDNGRkZGRkZGOworfQorCitWYWx1ZTo6Q1pTdHJpbmc6
OkNaU3RyaW5nKGNvbnN0IENaU3RyaW5nJiBvdGhlcikKKyAgICA6IGNzdHJfKG90aGVyLnN0b3Jh
Z2VfLnBvbGljeV8gIT0gbm9EdXBsaWNhdGlvbiAmJiBvdGhlci5jc3RyXyAhPSAwCisgICAgICAg
ICAgICAgICAgPyBkdXBsaWNhdGVTdHJpbmdWYWx1ZShvdGhlci5jc3RyXywgb3RoZXIuc3RvcmFn
ZV8ubGVuZ3RoXykKKyAgICAgICAgICAgICAgICA6IG90aGVyLmNzdHJfKSB7CisgIHN0b3JhZ2Vf
LnBvbGljeV8gPSAob3RoZXIuY3N0cl8KKyAgICAgICAgICAgICAgICAgPyAoc3RhdGljX2Nhc3Q8
RHVwbGljYXRpb25Qb2xpY3k+KG90aGVyLnN0b3JhZ2VfLnBvbGljeV8pID09IG5vRHVwbGljYXRp
b24KKyAgICAgICAgICAgICAgICAgICAgID8gbm9EdXBsaWNhdGlvbiA6IGR1cGxpY2F0ZSkKKyAg
ICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxEdXBsaWNhdGlvblBvbGljeT4ob3RoZXIuc3Rv
cmFnZV8ucG9saWN5XykpOworICBzdG9yYWdlXy5sZW5ndGhfID0gb3RoZXIuc3RvcmFnZV8ubGVu
Z3RoXzsKK30KKworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCitWYWx1ZTo6Q1pTdHJp
bmc6OkNaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpCisgIDogY3N0cl8ob3RoZXIuY3N0cl8pLCBp
bmRleF8ob3RoZXIuaW5kZXhfKSB7CisgIG90aGVyLmNzdHJfID0gbnVsbHB0cjsKK30KKyNlbmRp
ZgorCitWYWx1ZTo6Q1pTdHJpbmc6On5DWlN0cmluZygpIHsKKyAgaWYgKGNzdHJfICYmIHN0b3Jh
Z2VfLnBvbGljeV8gPT0gZHVwbGljYXRlKQorICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb25zdF9j
YXN0PGNoYXIqPihjc3RyXykpOworfQorCit2b2lkIFZhbHVlOjpDWlN0cmluZzo6c3dhcChDWlN0
cmluZyYgb3RoZXIpIHsKKyAgc3RkOjpzd2FwKGNzdHJfLCBvdGhlci5jc3RyXyk7CisgIHN0ZDo6
c3dhcChpbmRleF8sIG90aGVyLmluZGV4Xyk7Cit9CisKK1ZhbHVlOjpDWlN0cmluZyYgVmFsdWU6
OkNaU3RyaW5nOjpvcGVyYXRvcj0oQ1pTdHJpbmcgb3RoZXIpIHsKKyAgc3dhcChvdGhlcik7Cisg
IHJldHVybiAqdGhpczsKK30KKworYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPChjb25z
dCBDWlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCFjc3RyXykgcmV0dXJuIGluZGV4XyA8
IG90aGVyLmluZGV4XzsKKyAgLy9yZXR1cm4gc3RyY21wKGNzdHJfLCBvdGhlci5jc3RyXykgPCAw
OworICAvLyBBc3N1bWUgYm90aCBhcmUgc3RyaW5ncy4KKyAgdW5zaWduZWQgdGhpc19sZW4gPSB0
aGlzLT5zdG9yYWdlXy5sZW5ndGhfOworICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9y
YWdlXy5sZW5ndGhfOworICB1bnNpZ25lZCBtaW5fbGVuID0gc3RkOjptaW4odGhpc19sZW4sIG90
aGVyX2xlbik7CisgIGludCBjb21wID0gbWVtY21wKHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywg
bWluX2xlbik7CisgIGlmIChjb21wIDwgMCkgcmV0dXJuIHRydWU7CisgIGlmIChjb21wID4gMCkg
cmV0dXJuIGZhbHNlOworICByZXR1cm4gKHRoaXNfbGVuIDwgb3RoZXJfbGVuKTsKK30KKworYm9v
bCBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPT0oY29uc3QgQ1pTdHJpbmcmIG90aGVyKSBjb25z
dCB7CisgIGlmICghY3N0cl8pIHJldHVybiBpbmRleF8gPT0gb3RoZXIuaW5kZXhfOworICAvL3Jl
dHVybiBzdHJjbXAoY3N0cl8sIG90aGVyLmNzdHJfKSA9PSAwOworICAvLyBBc3N1bWUgYm90aCBh
cmUgc3RyaW5ncy4KKyAgdW5zaWduZWQgdGhpc19sZW4gPSB0aGlzLT5zdG9yYWdlXy5sZW5ndGhf
OworICB1bnNpZ25lZCBvdGhlcl9sZW4gPSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworICBpZiAo
dGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7CisgIGludCBjb21wID0gbWVtY21w
KHRoaXMtPmNzdHJfLCBvdGhlci5jc3RyXywgdGhpc19sZW4pOworICByZXR1cm4gY29tcCA9PSAw
OworfQorCitBcnJheUluZGV4IFZhbHVlOjpDWlN0cmluZzo6aW5kZXgoKSBjb25zdCB7IHJldHVy
biBpbmRleF87IH0KKworLy9jb25zdCBjaGFyKiBWYWx1ZTo6Q1pTdHJpbmc6OmNfc3RyKCkgY29u
c3QgeyByZXR1cm4gY3N0cl87IH0KK2NvbnN0IGNoYXIqIFZhbHVlOjpDWlN0cmluZzo6ZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIGNzdHJfOyB9Cit1bnNpZ25lZCBWYWx1ZTo6Q1pTdHJpbmc6Omxlbmd0
aCgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmxlbmd0aF87IH0KK2Jvb2wgVmFsdWU6OkNaU3Ry
aW5nOjppc1N0YXRpY1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLnBvbGljeV8gPT0g
bm9EdXBsaWNhdGlvbjsgfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyBjbGFzcyBWYWx1ZTo6VmFsdWUKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKworLyohIFxpbnRlcm5hbCBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxp
emF0aW9uIG11c3QgYmUgZXF1aXZhbGVudCB0bzoKKyAqIG1lbXNldCggdGhpcywgMCwgc2l6ZW9m
KFZhbHVlKSApCisgKiBUaGlzIG9wdGltaXphdGlvbiBpcyB1c2VkIGluIFZhbHVlSW50ZXJuYWxN
YXAgZmFzdCBhbGxvY2F0b3IuCisgKi8KK1ZhbHVlOjpWYWx1ZShWYWx1ZVR5cGUgdnR5cGUpIHsK
KyAgaW5pdEJhc2ljKHZ0eXBlKTsKKyAgc3dpdGNoICh2dHlwZSkgeworICBjYXNlIG51bGxWYWx1
ZToKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgICAg
dmFsdWVfLmludF8gPSAwOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICB2YWx1
ZV8ucmVhbF8gPSAwLjA7CisgICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgICAgdmFs
dWVfLnN0cmluZ18gPSAwOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ug
b2JqZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCk7CisgICAg
YnJlYWs7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHZhbHVlXy5ib29sXyA9IGZhbHNlOwor
ICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9
Cit9CisKK1ZhbHVlOjpWYWx1ZShJbnQgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKGludFZhbHVlKTsK
KyAgdmFsdWVfLmludF8gPSB2YWx1ZTsKK30KKworVmFsdWU6OlZhbHVlKFVJbnQgdmFsdWUpIHsK
KyAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7CisgIHZhbHVlXy51aW50XyA9IHZhbHVlOworfQorI2lm
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitWYWx1ZTo6VmFsdWUoSW50NjQgdmFsdWUpIHsKKyAg
aW5pdEJhc2ljKGludFZhbHVlKTsKKyAgdmFsdWVfLmludF8gPSB2YWx1ZTsKK30KK1ZhbHVlOjpW
YWx1ZShVSW50NjQgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHVpbnRWYWx1ZSk7CisgIHZhbHVlXy51
aW50XyA9IHZhbHVlOworfQorI2VuZGlmIC8vIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisKK1Zh
bHVlOjpWYWx1ZShkb3VibGUgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHJlYWxWYWx1ZSk7CisgIHZh
bHVlXy5yZWFsXyA9IHZhbHVlOworfQorCitWYWx1ZTo6VmFsdWUoY29uc3QgY2hhciogdmFsdWUp
IHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPSBk
dXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHN0cmxlbih2YWx1ZSkpKTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IGNoYXIqIGJlZ2luVmFs
dWUsIGNvbnN0IGNoYXIqIGVuZFZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1
ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0KKyAgICAgIGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1Zh
bHVlKGJlZ2luVmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmRWYWx1ZSAtIGJlZ2luVmFs
dWUpKTsKK30KKworVmFsdWU6OlZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBp
bml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOworICB2YWx1ZV8uc3RyaW5nXyA9CisgICAgICBk
dXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZS5kYXRhKCksIHN0YXRpY19jYXN0PHVu
c2lnbmVkPih2YWx1ZS5sZW5ndGgoKSkpOworfQorCitWYWx1ZTo6VmFsdWUoY29uc3QgU3RhdGlj
U3RyaW5nJiB2YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUpOworICB2YWx1ZV8uc3Ry
aW5nXyA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHZhbHVlLmNfc3RyKCkpOworfQorCisjaWZkZWYgSlNP
Tl9VU0VfQ1BQVEwKK1ZhbHVlOjpWYWx1ZShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIHZhbHVl
KSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0g
ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUodmFsdWUsIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2YWx1ZS5sZW5ndGgoKSkpOworfQorI2VuZGlmCisKK1ZhbHVlOjpWYWx1ZShib29sIHZhbHVl
KSB7CisgIGluaXRCYXNpYyhib29sZWFuVmFsdWUpOworICB2YWx1ZV8uYm9vbF8gPSB2YWx1ZTsK
K30KKworVmFsdWU6OlZhbHVlKFZhbHVlIGNvbnN0JiBvdGhlcikKKyAgICA6IHR5cGVfKG90aGVy
LnR5cGVfKSwgYWxsb2NhdGVkXyhmYWxzZSkKKyAgICAgICwKKyAgICAgIGNvbW1lbnRzXyhudWxs
cHRyKSwgZGVmYXVsdF92YWx1ZV8obnVsbHB0ciksIHN0YXJ0XyhvdGhlci5zdGFydF8pLCBsaW1p
dF8ob3RoZXIubGltaXRfKQoreworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVl
OgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVpbnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6
CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHZhbHVlXyA9IG90aGVyLnZhbHVlXzsKKyAgICBi
cmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICBpZiAob3RoZXIudmFsdWVfLnN0cmluZ18g
JiYgb3RoZXIuYWxsb2NhdGVkXykgeworICAgICAgdW5zaWduZWQgbGVuOworICAgICAgY2hhciBj
b25zdCogc3RyOworICAgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcob3RoZXIuYWxsb2NhdGVkXywg
b3RoZXIudmFsdWVfLnN0cmluZ18sCisgICAgICAgICAgJmxlbiwgJnN0cik7CisgICAgICB2YWx1
ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHN0ciwgbGVuKTsKKyAg
ICAgIGFsbG9jYXRlZF8gPSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICB2YWx1ZV8uc3RyaW5n
XyA9IG90aGVyLnZhbHVlXy5zdHJpbmdfOworICAgICAgYWxsb2NhdGVkXyA9IGZhbHNlOworICAg
IH0KKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgor
ICAgIHZhbHVlXy5tYXBfID0gbmV3IE9iamVjdFZhbHVlcygqb3RoZXIudmFsdWVfLm1hcF8pOwor
ICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICB9
CisgIGlmIChvdGhlci5jb21tZW50c18pIHsKKyAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudElu
Zm9bbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50XTsKKyAgICBmb3IgKGludCBjb21tZW50ID0gMDsg
Y29tbWVudCA8IG51bWJlck9mQ29tbWVudFBsYWNlbWVudDsgKytjb21tZW50KSB7CisgICAgICBj
b25zdCBDb21tZW50SW5mbyYgb3RoZXJDb21tZW50ID0gb3RoZXIuY29tbWVudHNfW2NvbW1lbnRd
OworICAgICAgaWYgKG90aGVyQ29tbWVudC5jb21tZW50XykKKyAgICAgICAgY29tbWVudHNfW2Nv
bW1lbnRdLnNldENvbW1lbnQoCisgICAgICAgICAgICBvdGhlckNvbW1lbnQuY29tbWVudF8sIHN0
cmxlbihvdGhlckNvbW1lbnQuY29tbWVudF8pKTsKKyAgICB9CisgIH0KKworICBpZiAoIG90aGVy
LmRlZmF1bHRfdmFsdWVfICkKKyAgeworICAgICAgICAgZGVmYXVsdF92YWx1ZV8gPSBuZXcgVmFs
dWUoICpvdGhlci5kZWZhdWx0X3ZhbHVlXyApOworICB9CisKK30KKworI2lmIEpTT05fSEFTX1JW
QUxVRV9SRUZFUkVOQ0VTCisvLyBNb3ZlIGNvbnN0cnVjdG9yCitWYWx1ZTo6VmFsdWUoVmFsdWUm
JiBvdGhlcikgeworICBpbml0QmFzaWMobnVsbFZhbHVlKTsKKyAgc3dhcChvdGhlcik7Cit9Cisj
ZW5kaWYKKworVmFsdWU6On5WYWx1ZSgpIHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51
bGxWYWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVh
bFZhbHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdW
YWx1ZToKKyAgICBpZiAoYWxsb2NhdGVkXykKKyAgICAgIHJlbGVhc2VTdHJpbmdWYWx1ZSh2YWx1
ZV8uc3RyaW5nXyk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmpl
Y3RWYWx1ZToKKyAgICBkZWxldGUgdmFsdWVfLm1hcF87CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6
CisgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIH0KKworICBpZiAoY29tbWVudHNfKQor
ICAgIGRlbGV0ZVtdIGNvbW1lbnRzXzsKKworICBpZiAoIGRlZmF1bHRfdmFsdWVfKQorICAgICAg
ICAgZGVsZXRlIGRlZmF1bHRfdmFsdWVfOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yPShW
YWx1ZSBvdGhlcikgeworICBzd2FwKG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOworfQorCit2b2lk
IFZhbHVlOjpzd2FwUGF5bG9hZChWYWx1ZSYgb3RoZXIpIHsKKyAgVmFsdWVUeXBlIHRlbXAgPSB0
eXBlXzsKKyAgdHlwZV8gPSBvdGhlci50eXBlXzsKKyAgb3RoZXIudHlwZV8gPSB0ZW1wOworICBz
dGQ6OnN3YXAodmFsdWVfLCBvdGhlci52YWx1ZV8pOworICBpbnQgdGVtcDIgPSBhbGxvY2F0ZWRf
OworICBhbGxvY2F0ZWRfID0gb3RoZXIuYWxsb2NhdGVkXzsKKyAgb3RoZXIuYWxsb2NhdGVkXyA9
IHRlbXAyICYgMHgxOworfQorCit2b2lkIFZhbHVlOjpzd2FwKFZhbHVlJiBvdGhlcikgeworICBz
d2FwUGF5bG9hZChvdGhlcik7CisgIHN0ZDo6c3dhcChjb21tZW50c18sIG90aGVyLmNvbW1lbnRz
Xyk7CisgIHN0ZDo6c3dhcChkZWZhdWx0X3ZhbHVlXywgb3RoZXIuZGVmYXVsdF92YWx1ZV8pOwor
ICBzdGQ6OnN3YXAoc3RhcnRfLCBvdGhlci5zdGFydF8pOworICBzdGQ6OnN3YXAobGltaXRfLCBv
dGhlci5saW1pdF8pOworfQorCitWYWx1ZVR5cGUgVmFsdWU6OnR5cGUoKSBjb25zdCB7IHJldHVy
biB0eXBlXzsgfQorCitpbnQgVmFsdWU6OmNvbXBhcmUoY29uc3QgVmFsdWUmIG90aGVyKSBjb25z
dCB7CisgIGlmICgqdGhpcyA8IG90aGVyKQorICAgIHJldHVybiAtMTsKKyAgaWYgKCp0aGlzID4g
b3RoZXIpCisgICAgcmV0dXJuIDE7CisgIHJldHVybiAwOworfQorCitib29sIFZhbHVlOjpvcGVy
YXRvcjwoY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7CisgIGludCB0eXBlRGVsdGEgPSB0eXBl
XyAtIG90aGVyLnR5cGVfOworICBpZiAodHlwZURlbHRhKQorICAgIHJldHVybiB0eXBlRGVsdGEg
PCAwID8gdHJ1ZSA6IGZhbHNlOworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVl
OgorICAgIHJldHVybiBmYWxzZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVf
LmludF8gPCBvdGhlci52YWx1ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy51aW50XyA8IG90aGVyLnZhbHVlXy51aW50XzsKKyAgY2FzZSByZWFsVmFsdWU6Cisg
ICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA8IG90aGVyLnZhbHVlXy5yZWFsXzsKKyAgY2FzZSBib29s
ZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA8IG90aGVyLnZhbHVlXy5ib29sXzsK
KyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIGlmICgodmFsdWVfLnN0cmluZ18gPT0gMCkg
fHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDApKSB7CisgICAgICBpZiAob3RoZXIudmFsdWVf
LnN0cmluZ18pIHJldHVybiB0cnVlOworICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHVuc2lnbmVkIHRoaXNfbGVuOworICAgIHVuc2lnbmVkIG90aGVyX2xlbjsKKyAgICBjaGFy
IGNvbnN0KiB0aGlzX3N0cjsKKyAgICBjaGFyIGNvbnN0KiBvdGhlcl9zdHI7CisgICAgZGVjb2Rl
UHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0
aGlzX2xlbiwgJnRoaXNfc3RyKTsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyhvdGhlci5hbGxv
Y2F0ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywgJm90aGVyX2xlbiwgJm90aGVyX3N0cik7Cisg
ICAgdW5zaWduZWQgbWluX2xlbiA9IHN0ZDo6bWluKHRoaXNfbGVuLCBvdGhlcl9sZW4pOworICAg
IGludCBjb21wID0gbWVtY21wKHRoaXNfc3RyLCBvdGhlcl9zdHIsIG1pbl9sZW4pOworICAgIGlm
IChjb21wIDwgMCkgcmV0dXJuIHRydWU7CisgICAgaWYgKGNvbXAgPiAwKSByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuICh0aGlzX2xlbiA8IG90aGVyX2xlbik7CisgIH0KKyAgY2FzZSBhcnJheVZh
bHVlOgorICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgaW50IGRlbHRhID0gaW50KHZhbHVlXy5t
YXBfLT5zaXplKCkgLSBvdGhlci52YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgICBpZiAoZGVsdGEp
CisgICAgICByZXR1cm4gZGVsdGEgPCAwOworICAgIHJldHVybiAoKnZhbHVlXy5tYXBfKSA8ICgq
b3RoZXIudmFsdWVfLm1hcF8pOworICB9CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NFUlRfVU5S
RUFDSEFCTEU7CisgIH0KKyAgcmV0dXJuIGZhbHNlOyAvLyB1bnJlYWNoYWJsZQorfQorCitib29s
IFZhbHVlOjpvcGVyYXRvcjw9KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gIShv
dGhlciA8ICp0aGlzKTsgfQorCitib29sIFZhbHVlOjpvcGVyYXRvcj49KGNvbnN0IFZhbHVlJiBv
dGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA8IG90aGVyKTsgfQorCitib29sIFZhbHVlOjpv
cGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlciA8ICp0aGlz
OyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7
CisgIC8vIGlmICggdHlwZV8gIT0gb3RoZXIudHlwZV8gKQorICAvLyBHQ0MgMi45NS4zIHNheXM6
CisgIC8vIGF0dGVtcHQgdG8gdGFrZSBhZGRyZXNzIG9mIGJpdC1maWVsZCBzdHJ1Y3R1cmUgbWVt
YmVyIGBKc29uOjpWYWx1ZTo6dHlwZV8nCisgIC8vIEJlYXRzIG1lLCBidXQgYSB0ZW1wIHNvbHZl
cyB0aGUgcHJvYmxlbS4KKyAgaW50IHRlbXAgPSBvdGhlci50eXBlXzsKKyAgaWYgKHR5cGVfICE9
IHRlbXApCisgICAgcmV0dXJuIGZhbHNlOworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVs
bFZhbHVlOgorICAgIHJldHVybiB0cnVlOworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB2
YWx1ZV8uaW50XyA9PSBvdGhlci52YWx1ZV8uaW50XzsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAg
cmV0dXJuIHZhbHVlXy51aW50XyA9PSBvdGhlci52YWx1ZV8udWludF87CisgIGNhc2UgcmVhbFZh
bHVlOgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPT0gb3RoZXIudmFsdWVfLnJlYWxfOworICBj
YXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID09IG90aGVyLnZhbHVl
Xy5ib29sXzsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIGlmICgodmFsdWVfLnN0cmlu
Z18gPT0gMCkgfHwgKG90aGVyLnZhbHVlXy5zdHJpbmdfID09IDApKSB7CisgICAgICByZXR1cm4g
KHZhbHVlXy5zdHJpbmdfID09IG90aGVyLnZhbHVlXy5zdHJpbmdfKTsKKyAgICB9CisgICAgdW5z
aWduZWQgdGhpc19sZW47CisgICAgdW5zaWduZWQgb3RoZXJfbGVuOworICAgIGNoYXIgY29uc3Qq
IHRoaXNfc3RyOworICAgIGNoYXIgY29uc3QqIG90aGVyX3N0cjsKKyAgICBkZWNvZGVQcmVmaXhl
ZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVu
LCAmdGhpc19zdHIpOworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKG90aGVyLmFsbG9jYXRlZF8s
IG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJfbGVuLCAmb3RoZXJfc3RyKTsKKyAgICBpZiAo
dGhpc19sZW4gIT0gb3RoZXJfbGVuKSByZXR1cm4gZmFsc2U7CisgICAgaW50IGNvbXAgPSBtZW1j
bXAodGhpc19zdHIsIG90aGVyX3N0ciwgdGhpc19sZW4pOworICAgIHJldHVybiBjb21wID09IDA7
CisgIH0KKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHJldHVy
biB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IG90aGVyLnZhbHVlXy5tYXBfLT5zaXplKCkgJiYKKyAg
ICAgICAgICAgKCp2YWx1ZV8ubWFwXykgPT0gKCpvdGhlci52YWx1ZV8ubWFwXyk7CisgIGRlZmF1
bHQ6CisgICAgSlNPTl9BU1NFUlRfVU5SRUFDSEFCTEU7CisgIH0KKyAgcmV0dXJuIGZhbHNlOyAv
LyB1bnJlYWNoYWJsZQorfQorCitib29sIFZhbHVlOjpvcGVyYXRvciE9KGNvbnN0IFZhbHVlJiBv
dGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworY29uc3QgY2hhciog
VmFsdWU6OmFzQ1N0cmluZygpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9
PSBzdHJpbmdWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmFz
Q1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZSIpOworICBpZiAodmFsdWVfLnN0cmluZ18g
PT0gMCkgcmV0dXJuIDA7CisgIHVuc2lnbmVkIHRoaXNfbGVuOworICBjaGFyIGNvbnN0KiB0aGlz
X3N0cjsKKyAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFs
dWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKKyAgcmV0dXJuIHRoaXNfc3RyOwor
fQorCitib29sIFZhbHVlOjpnZXRTdHJpbmcoY2hhciBjb25zdCoqIHN0ciwgY2hhciBjb25zdCoq
IGNlbmQpIGNvbnN0IHsKKyAgaWYgKHR5cGVfICE9IHN0cmluZ1ZhbHVlKSByZXR1cm4gZmFsc2U7
CisgIGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gZmFsc2U7CisgIHVuc2lnbmVkIGxl
bmd0aDsKKyAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxsb2NhdGVkXywgdGhpcy0+dmFs
dWVfLnN0cmluZ18sICZsZW5ndGgsIHN0cik7CisgICpjZW5kID0gKnN0ciArIGxlbmd0aDsKKyAg
cmV0dXJuIHRydWU7Cit9CisKK3N0ZDo6c3RyaW5nIFZhbHVlOjphc1N0cmluZygpIGNvbnN0IHsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gIiI7Cisg
IGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICBpZiAodmFsdWVfLnN0cmluZ18gPT0gMCkgcmV0
dXJuICIiOworICAgIHVuc2lnbmVkIHRoaXNfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNfc3Ry
OworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVl
Xy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5n
KHRoaXNfc3RyLCB0aGlzX2xlbik7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0
dXJuIHZhbHVlXy5ib29sXyA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgIGNhc2UgaW50VmFsdWU6Cisg
ICAgcmV0dXJuIHZhbHVlVG9TdHJpbmcodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToK
KyAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxWYWx1
ZToKKyAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0Ogor
ICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRfdmFsdWVfLT5hc1N0cmluZygpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiAiIjsKKyAgfQorfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK0NwcFRMOjpDb25z
dFN0cmluZyBWYWx1ZTo6YXNDb25zdFN0cmluZygpIGNvbnN0IHsKKyAgdW5zaWduZWQgbGVuOwor
ICBjaGFyIGNvbnN0KiBzdHI7CisgIGRlY29kZVByZWZpeGVkU3RyaW5nKGFsbG9jYXRlZF8sIHZh
bHVlXy5zdHJpbmdfLAorICAgICAgJmxlbiwgJnN0cik7CisgIHJldHVybiBDcHBUTDo6Q29uc3RT
dHJpbmcoc3RyLCBsZW4pOworfQorI2VuZGlmCisKK1ZhbHVlOjpJbnQgVmFsdWU6OmFzSW50KCkg
Y29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgSlNPTl9B
U1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdEludCBvdXQgb2YgSW50IHJhbmdlIik7Cisg
ICAgcmV0dXJuIEludCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorICAgIEpTT05f
QVNTRVJUX01FU1NBR0UoaXNJbnQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQgcmFuZ2UiKTsK
KyAgICByZXR1cm4gSW50KHZhbHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpT
T05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIG1pbkludCwgbWF4SW50KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIEludCByYW5nZSIpOworICAg
IHJldHVybiBJbnQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJu
IDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDog
MDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAg
ICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNJbnQoKTsKKyAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgfQorfQorCitWYWx1ZTo6VUludCBWYWx1ZTo6YXNV
SW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAg
SlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxhcmdlc3RJbnQgb3V0IG9mIFVJbnQgcmFu
Z2UiKTsKKyAgICByZXR1cm4gVUludCh2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgor
ICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50KCksICJMYXJnZXN0VUludCBvdXQgb2YgVUlu
dCByYW5nZSIpOworICAgIHJldHVybiBVSW50KHZhbHVlXy51aW50Xyk7CisgIGNhc2UgcmVhbFZh
bHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5SYW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1h
eFVJbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2YgVUludCByYW5n
ZSIpOworICAgIHJldHVybiBVSW50KHZhbHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgor
ICAgIHJldHVybiAwOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJv
b2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzVUludCgpOworICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwdTsKKyAgfQorfQorCisjaWYgZGVmaW5l
ZChKU09OX0hBU19JTlQ2NCkKKworVmFsdWU6OkludDY0IFZhbHVlOjphc0ludDY0KCkgY29uc3Qg
eworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIEludDY0
KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FH
RShpc0ludDY0KCksICJMYXJnZXN0VUludCBvdXQgb2YgSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1
cm4gSW50NjQodmFsdWVfLnVpbnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NF
UlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50NjQsIG1heEludDY0KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlIik7CisgICAg
cmV0dXJuIEludDY0KHZhbHVlXy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVy
biAwOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6
IDA7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzSW50NjQoKTsKKyAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICByZXR1cm4gMGw7CisgIH0KK30KKworVmFsdWU6OlVJbnQ2NCBWYWx1
ZTo6YXNVSW50NjQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludDY0KCksICJMYXJnZXN0SW50IG91dCBv
ZiBVSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludDY0KHZhbHVlXy5pbnRfKTsKKyAgY2Fz
ZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8udWludF8pOworICBjYXNlIHJl
YWxWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCAw
LCBtYXhVSW50NjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2YgVUlu
dDY0IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQ2NCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51
bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0
X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc1VJbnQ2
NCgpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwdWw7CisgIH0KK30K
KyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitMYXJnZXN0SW50IFZhbHVl
Ojphc0xhcmdlc3RJbnQoKSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX05PX0lOVDY0KQorICBy
ZXR1cm4gYXNJbnQoKTsKKyNlbHNlCisgIHJldHVybiBhc0ludDY0KCk7CisjZW5kaWYKK30KKwor
TGFyZ2VzdFVJbnQgVmFsdWU6OmFzTGFyZ2VzdFVJbnQoKSBjb25zdCB7CisjaWYgZGVmaW5lZChK
U09OX05PX0lOVDY0KQorICByZXR1cm4gYXNVSW50KCk7CisjZWxzZQorICByZXR1cm4gYXNVSW50
NjQoKTsKKyNlbmRpZgorfQorCitkb3VibGUgVmFsdWU6OmFzRG91YmxlKCkgY29uc3QgeworICBz
d2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyNpZiAhZGVmaW5lZChK
U09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZG91YmxlPih2YWx1ZV8udWludF8pOworI2Vsc2UgIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lO
VDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAgIHJldHVybiBpbnRlZ2VyVG9Eb3VibGUodmFsdWVf
LnVpbnRfKTsKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VCTEVfQ09O
VkVSU0lPTikKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXzsKKyAg
Y2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDAuMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6Cisg
ICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMCA6IDAuMDsKKyAgZGVmYXVsdDoKKyAgICAgICAg
IGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3Zh
bHVlXy0+YXNEb3VibGUoKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4g
MC4wOworICB9Cit9CisKK2Zsb2F0IFZhbHVlOjphc0Zsb2F0KCkgY29uc3QgeworICBzd2l0Y2gg
KHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZhbHVlOgorI2lmICFkZWZpbmVkKEpTT05fVVNF
X0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4o
dmFsdWVfLnVpbnRfKTsKKyNlbHNlICAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2NF9ET1VC
TEVfQ09OVkVSU0lPTikKKyAgICByZXR1cm4gaW50ZWdlclRvRG91YmxlKHZhbHVlXy51aW50Xyk7
CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04p
CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWVf
LnJlYWxfKTsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDAuMDsKKyAgY2FzZSBib29s
ZWFuVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5ib29sXyA/IDEuMGYgOiAwLjBmOworICBkZWZh
dWx0OgorICAgICAgIGlmICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICByZXR1cm4g
ZGVmYXVsdF92YWx1ZV8tPmFzRmxvYXQoKTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJl
dHVybiAwLjBmOworICB9Cit9CisKK2Jvb2wgVmFsdWU6OmFzQm9vbCgpIGNvbnN0IHsKKyAgc3dp
dGNoICh0eXBlXykgeworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJv
b2xfOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gZmFsc2U7CisgIGNhc2UgaW50VmFs
dWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID8gdHJ1ZSA6IGZhbHNlOworICBjYXNlIHVpbnRW
YWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfID8gdHJ1ZSA6IGZhbHNlOworICBjYXNlIHJl
YWxWYWx1ZToKKyAgICAvLyBUaGlzIGlzIGtpbmQgb2Ygc3RyYW5nZS4gTm90IHJlY29tbWVuZGVk
LgorICAgIHJldHVybiAodmFsdWVfLnJlYWxfICE9IDAuMCkgPyB0cnVlIDogZmFsc2U7CisgIGRl
ZmF1bHQ6CisgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAgIHJldHVy
biBkZWZhdWx0X3ZhbHVlXy0+YXNCb29sKCk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgIH0KK30KKworYm9vbCBWYWx1ZTo6aXNDb252ZXJ0aWJsZVRvKFZhbHVl
VHlwZSBvdGhlcikgY29uc3QgeworICBzd2l0Y2ggKG90aGVyKSB7CisgIGNhc2UgbnVsbFZhbHVl
OgorICAgIHJldHVybiAoaXNOdW1lcmljKCkgJiYgYXNEb3VibGUoKSA9PSAwLjApIHx8CisgICAg
ICAgICAgICh0eXBlXyA9PSBib29sZWFuVmFsdWUgJiYgdmFsdWVfLmJvb2xfID09IGZhbHNlKSB8
fAorICAgICAgICAgICAodHlwZV8gPT0gc3RyaW5nVmFsdWUgJiYgYXNTdHJpbmcoKSA9PSAiIikg
fHwKKyAgICAgICAgICAgKHR5cGVfID09IGFycmF5VmFsdWUgJiYgdmFsdWVfLm1hcF8tPnNpemUo
KSA9PSAwKSB8fAorICAgICAgICAgICAodHlwZV8gPT0gb2JqZWN0VmFsdWUgJiYgdmFsdWVfLm1h
cF8tPnNpemUoKSA9PSAwKSB8fAorICAgICAgICAgICB0eXBlXyA9PSBudWxsVmFsdWU7CisgIGNh
c2UgaW50VmFsdWU6CisgICAgcmV0dXJuIGlzSW50KCkgfHwKKyAgICAgICAgICAgKHR5cGVfID09
IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgbWluSW50LCBtYXhJbnQpKSB8fAor
ICAgICAgICAgICB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOwor
ICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gaXNVSW50KCkgfHwKKyAgICAgICAgICAgKHR5
cGVfID09IHJlYWxWYWx1ZSAmJiBJblJhbmdlKHZhbHVlXy5yZWFsXywgMCwgbWF4VUludCkpIHx8
CisgICAgICAgICAgIHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7
CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlXyA9PSBi
b29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIGJvb2xlYW5WYWx1ZToK
KyAgICByZXR1cm4gaXNOdW1lcmljKCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVf
ID09IG51bGxWYWx1ZTsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICByZXR1cm4gaXNOdW1lcmlj
KCkgfHwgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8IHR5cGVfID09IHN0cmluZ1ZhbHVlIHx8Cisg
ICAgICAgICAgIHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSBhcnJheVZhbHVlOgorICAgIHJl
dHVybiB0eXBlXyA9PSBhcnJheVZhbHVlIHx8IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSBv
YmplY3RWYWx1ZToKKyAgICByZXR1cm4gdHlwZV8gPT0gb2JqZWN0VmFsdWUgfHwgdHlwZV8gPT0g
bnVsbFZhbHVlOworICB9CisgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICByZXR1cm4gZmFs
c2U7Cit9CisKKy8vLyBOdW1iZXIgb2YgdmFsdWVzIGluIGFycmF5IG9yIG9iamVjdAorQXJyYXlJ
bmRleCBWYWx1ZTo6c2l6ZSgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIG51
bGxWYWx1ZToKKyAgY2FzZSBpbnRWYWx1ZToKKyAgY2FzZSB1aW50VmFsdWU6CisgIGNhc2UgcmVh
bFZhbHVlOgorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgICBy
ZXR1cm4gMDsKKyAgY2FzZSBhcnJheVZhbHVlOiAvLyBzaXplIG9mIHRoZSBhcnJheSBpcyBoaWdo
ZXN0IGluZGV4ICsgMQorICAgIGlmICghdmFsdWVfLm1hcF8tPmVtcHR5KCkpIHsKKyAgICAgIE9i
amVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVfLm1hcF8tPmVuZCgpOwor
ICAgICAgLS1pdExhc3Q7CisgICAgICByZXR1cm4gKCppdExhc3QpLmZpcnN0LmluZGV4KCkgKyAx
OworICAgIH0KKyAgICByZXR1cm4gMDsKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICByZXR1cm4g
QXJyYXlJbmRleCh2YWx1ZV8ubWFwXy0+c2l6ZSgpKTsKKyAgfQorICBKU09OX0FTU0VSVF9VTlJF
QUNIQUJMRTsKKyAgcmV0dXJuIDA7IC8vIHVucmVhY2hhYmxlOworfQorCitib29sIFZhbHVlOjpl
bXB0eSgpIGNvbnN0IHsKKyAgaWYgKGlzTnVsbCgpIHx8IGlzQXJyYXkoKSB8fCBpc09iamVjdCgp
KQorICAgIHJldHVybiBzaXplKCkgPT0gMHU7CisgIGVsc2UKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIGlzTnVsbCgpOyB9CisK
K3ZvaWQgVmFsdWU6OmNsZWFyKCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGVfID09IG51
bGxWYWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlIHx8CisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBKc29u
OjpWYWx1ZTo6Y2xlYXIoKTogcmVxdWlyZXMgY29tcGxleCB2YWx1ZSIpOworICBzdGFydF8gPSAw
OworICBsaW1pdF8gPSAwOworICBkZWxldGUgZGVmYXVsdF92YWx1ZV87CisgIGRlZmF1bHRfdmFs
dWVfID0gbnVsbHB0cjsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6Cisg
IGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8tPmNsZWFyKCk7CisgICAgYnJlYWs7
CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KK30KKwordm9pZCBWYWx1ZTo6cmVzaXplKEFy
cmF5SW5kZXggbmV3U2l6ZSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKHR5cGVfID09IG51bGxW
YWx1ZSB8fCB0eXBlXyA9PSBhcnJheVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJpbiBK
c29uOjpWYWx1ZTo6cmVzaXplKCk6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYgKHR5cGVf
ID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKGFycmF5VmFsdWUpOworICBBcnJheUlu
ZGV4IG9sZFNpemUgPSBzaXplKCk7CisgIGlmIChuZXdTaXplID09IDApCisgICAgY2xlYXIoKTsK
KyAgZWxzZSBpZiAobmV3U2l6ZSA+IG9sZFNpemUpCisgICAgKCp0aGlzKVtuZXdTaXplIC0gMV07
CisgIGVsc2UgeworICAgIGZvciAoQXJyYXlJbmRleCBpbmRleCA9IG5ld1NpemU7IGluZGV4IDwg
b2xkU2l6ZTsgKytpbmRleCkgeworICAgICAgdmFsdWVfLm1hcF8tPmVyYXNlKGluZGV4KTsKKyAg
ICB9CisgICAgYXNzZXJ0KHNpemUoKSA9PSBuZXdTaXplKTsKKyAgfQorfQorCitWYWx1ZSYgVmFs
dWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCBpbmRleCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdF
KAorICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUsCisgICAg
ICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCk6IHJlcXVpcmVzIGFycmF5
VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKGFy
cmF5VmFsdWUpOworICBDWlN0cmluZyBrZXkoaW5kZXgpOworICBPYmplY3RWYWx1ZXM6Oml0ZXJh
dG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGtleSk7CisgIGlmIChpdCAhPSB2YWx1
ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0ga2V5KQorICAgIHJldHVybiAoKml0KS5z
ZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShrZXksIG51
bGxSZWYpOworICBpdCA9IHZhbHVlXy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7Cisg
IHJldHVybiAoKml0KS5zZWNvbmQ7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShpbnQg
aW5kZXgpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIGluZGV4ID49IDAsCisgICAg
ICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KTogaW5kZXggY2Fubm90IGJl
IG5lZ2F0aXZlIik7CisgIHJldHVybiAoKnRoaXMpW0FycmF5SW5kZXgoaW5kZXgpXTsKK30KKwor
Y29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpIGNvbnN0IHsK
KyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBl
XyA9PSBhcnJheVZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5
SW5kZXgpY29uc3Q6IHJlcXVpcmVzIGFycmF5VmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxW
YWx1ZSkKKyAgICByZXR1cm4gbnVsbFJlZjsKKyAgQ1pTdHJpbmcga2V5KGluZGV4KTsKKyAgT2Jq
ZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7Cisg
IGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkpCisgICAgcmV0dXJuIG51bGxSZWY7CisgIHJl
dHVybiAoKml0KS5zZWNvbmQ7Cit9CisKK2NvbnN0IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShp
bnQgaW5kZXgpIGNvbnN0IHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIGluZGV4ID49
IDAsCisgICAgICAiaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KSBjb25zdDog
aW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlIik7CisgIHJldHVybiAoKnRoaXMpW0FycmF5SW5kZXgo
aW5kZXgpXTsKK30KKwordm9pZCBWYWx1ZTo6aW5pdEJhc2ljKFZhbHVlVHlwZSB2dHlwZSwgYm9v
bCBhbGxvY2F0ZWQpIHsKKyAgdHlwZV8gPSB2dHlwZTsKKyAgYWxsb2NhdGVkXyA9IGFsbG9jYXRl
ZDsKKyAgY29tbWVudHNfID0gMDsKKyAgc3RhcnRfID0gMDsKKyAgbGltaXRfID0gMDsKKyAgZGVm
YXVsdF92YWx1ZV8gPSBudWxscHRyOworfQorCisvLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5
IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90IGV4aXN0LgorLy8gQHBy
ZSBUeXBlIG9mICcqdGhpcycgaXMgb2JqZWN0IG9yIG51bGwuCisvLyBAcGFyYW0ga2V5IGlzIG51
bGwtdGVybWluYXRlZC4KK1ZhbHVlJiBWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZShjb25zdCBjaGFy
KiBrZXkpIHsKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1
ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzb2x2
ZVJlZmVyZW5jZSgpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVs
bFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUob2JqZWN0VmFsdWUpOworICBDWlN0cmluZyBhY3R1
YWxLZXkoCisgICAgICBrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdHJsZW4oa2V5KSksIENa
U3RyaW5nOjpub0R1cGxpY2F0aW9uKTsgLy8gTk9URSEKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRv
ciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxLZXkpOworICBpZiAoaXQgIT0g
dmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFjdHVhbEtleSkKKyAgICByZXR1
cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6dmFsdWVfdHlwZSBkZWZhdWx0VmFs
dWUoYWN0dWFsS2V5LCBudWxsUmVmKTsKKyAgaXQgPSB2YWx1ZV8ubWFwXy0+aW5zZXJ0KGl0LCBk
ZWZhdWx0VmFsdWUpOworICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5zZWNvbmQ7CisgIHJldHVybiB2
YWx1ZTsKK30KKworLy8gQHBhcmFtIGtleSBpcyBub3QgbnVsbC10ZXJtaW5hdGVkLgorVmFsdWUm
IFZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGNoYXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2Vu
ZCkKK3sKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5cGVfID09IG51bGxWYWx1ZSB8
fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6cmVzb2x2ZVJl
ZmVyZW5jZShrZXksIGVuZCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlXyA9
PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShvYmplY3RWYWx1ZSk7CisgIENaU3RyaW5n
IGFjdHVhbEtleSgKKyAgICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNlbmQta2V5KSwg
Q1pTdHJpbmc6OmR1cGxpY2F0ZU9uQ29weSk7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQg
PSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoYWN0dWFsS2V5KTsKKyAgaWYgKGl0ICE9IHZhbHVl
Xy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBhY3R1YWxLZXkpCisgICAgcmV0dXJuICgq
aXQpLnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUgZGVmYXVsdFZhbHVlKGFj
dHVhbEtleSwgbnVsbFJlZik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChpdCwgZGVmYXVs
dFZhbHVlKTsKKyAgVmFsdWUmIHZhbHVlID0gKCppdCkuc2Vjb25kOworICByZXR1cm4gdmFsdWU7
Cit9CisKK1ZhbHVlIFZhbHVlOjpnZXQoQXJyYXlJbmRleCBpbmRleCwgY29uc3QgVmFsdWUmIGRl
ZmF1bHRWYWx1ZSkgY29uc3QgeworICBjb25zdCBWYWx1ZSogdmFsdWUgPSAmKCgqdGhpcylbaW5k
ZXhdKTsKKyAgaWYgKCB2YWx1ZSA9PSAmbnVsbFJlZiApCisgIHsKKyAgICAgICAgIHJldHVybiBk
ZWZhdWx0VmFsdWU7CisgIH0KKyAgZWxzZQorICB7CisgICAgICAgICBWYWx1ZSByZXN1bHQgPSAq
dmFsdWU7CisgICAgICAgICByZXN1bHQuZGVmYXVsdF92YWx1ZV8gPSBuZXcgVmFsdWUoIGRlZmF1
bHRWYWx1ZSApOworICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorfQorCitib29sIFZhbHVl
Ojppc1ZhbGlkSW5kZXgoQXJyYXlJbmRleCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBz
aXplKCk7IH0KKworVmFsdWUgY29uc3QqIFZhbHVlOjpmaW5kKGNoYXIgY29uc3QqIGtleSwgY2hh
ciBjb25zdCogY2VuZCkgY29uc3QKK3sKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSgKKyAgICAgIHR5
cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAgICJpbiBKc29u
OjpWYWx1ZTo6ZmluZChrZXksIGVuZCwgZm91bmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSBvciBu
dWxsVmFsdWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkgcmV0dXJuIE5VTEw7CisgIENa
U3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjZW5kLWtleSksIENa
U3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBp
dCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFw
Xy0+ZW5kKCkpIHJldHVybiBOVUxMOworICByZXR1cm4gJigqaXQpLnNlY29uZDsKK30KK2NvbnN0
IFZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpIGNvbnN0Cit7CisgIFZh
bHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSk7CisgIGlmICgh
Zm91bmQpIHJldHVybiBudWxsUmVmOworICByZXR1cm4gKmZvdW5kOworfQorVmFsdWUgY29uc3Qm
IFZhbHVlOjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Cit7CisgIFZh
bHVlIGNvbnN0KiBmb3VuZCA9IGZpbmQoa2V5LmRhdGEoKSwga2V5LmRhdGEoKSArIGtleS5sZW5n
dGgoKSk7CisgIGlmICghZm91bmQpIHJldHVybiBudWxsUmVmOworICByZXR1cm4gKmZvdW5kOwor
fQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgY2hhcioga2V5KSB7CisgIHJldHVy
biByZXNvbHZlUmVmZXJlbmNlKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworfQorCitWYWx1ZSYg
VmFsdWU6Om9wZXJhdG9yW10oY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVz
b2x2ZVJlZmVyZW5jZShrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKK30K
KworVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IFN0YXRpY1N0cmluZyYga2V5KSB7Cisg
IHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5jX3N0cigpKTsKK30KKworI2lmZGVmIEpTT05f
VVNFX0NQUFRMCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgQ3BwVEw6OkNvbnN0U3Ry
aW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LmNfc3RyKCksIGtleS5l
bmRfY19zdHIoKSk7Cit9CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJhdG9yW10oQ3BwVEw6OkNv
bnN0U3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiBmb3VuZCA9IGZp
bmQoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIoKSk7CisgIGlmICghZm91bmQpIHJldHVybiBu
dWxsUmVmOworICByZXR1cm4gKmZvdW5kOworfQorI2VuZGlmCisKK1ZhbHVlJiBWYWx1ZTo6YXBw
ZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gKCp0aGlzKVtzaXplKCldID0gdmFsdWU7
IH0KKworVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQs
IFZhbHVlIGNvbnN0JiBkZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0KiBmb3Vu
ZCA9IGZpbmQoa2V5LCBjZW5kKTsKKyAgaWYgKCAhZm91bmQgKQorICB7CisgICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOworICB9CisgIGVsc2UKKyAgeworICAgICAgICAgVmFsdWUgcmVzdWx0
ID0gKmZvdW5kOworICAgICAgICAgcmVzdWx0LmRlZmF1bHRfdmFsdWVfID0gbmV3IFZhbHVlKCBk
ZWZhdWx0VmFsdWUgKTsKKyAgICAgICAgIHJldHVybiByZXN1bHQ7CisgIH0KK30KK1ZhbHVlIFZh
bHVlOjpnZXQoY2hhciBjb25zdCoga2V5LCBWYWx1ZSBjb25zdCYgZGVmYXVsdFZhbHVlKSBjb25z
dAoreworICByZXR1cm4gZ2V0KGtleSwga2V5ICsgc3RybGVuKGtleSksIGRlZmF1bHRWYWx1ZSk7
Cit9CitWYWx1ZSBWYWx1ZTo6Z2V0KHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXksIFZhbHVlIGNvbnN0
JiBkZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgIHJldHVybiBnZXQoa2V5LmRhdGEoKSwga2V5LmRh
dGEoKSArIGtleS5sZW5ndGgoKSwgZGVmYXVsdFZhbHVlKTsKK30KKworCitib29sIFZhbHVlOjpy
ZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiBjZW5kLCBWYWx1ZSogcmVt
b3ZlZCkKK3sKKyAgaWYgKHR5cGVfICE9IG9iamVjdFZhbHVlKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIENaU3RyaW5nIGFjdHVhbEtleShrZXksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihj
ZW5kLWtleSksIENaU3RyaW5nOjpub0R1cGxpY2F0aW9uKTsKKyAgT2JqZWN0VmFsdWVzOjppdGVy
YXRvciBpdCA9IHZhbHVlXy5tYXBfLT5maW5kKGFjdHVhbEtleSk7CisgIGlmIChpdCA9PSB2YWx1
ZV8ubWFwXy0+ZW5kKCkpCisgICAgcmV0dXJuIGZhbHNlOworICAqcmVtb3ZlZCA9IGl0LT5zZWNv
bmQ7CisgIHZhbHVlXy5tYXBfLT5lcmFzZShpdCk7CisgIHJldHVybiB0cnVlOworfQorYm9vbCBW
YWx1ZTo6cmVtb3ZlTWVtYmVyKGNvbnN0IGNoYXIqIGtleSwgVmFsdWUqIHJlbW92ZWQpCit7Cisg
IHJldHVybiByZW1vdmVNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSwgcmVtb3ZlZCk7Cit9
Citib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSwgVmFsdWUq
IHJlbW92ZWQpCit7CisgIHJldHVybiByZW1vdmVNZW1iZXIoa2V5LmRhdGEoKSwga2V5LmRhdGEo
KSArIGtleS5sZW5ndGgoKSwgcmVtb3ZlZCk7Cit9CitWYWx1ZSBWYWx1ZTo6cmVtb3ZlTWVtYmVy
KGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgSlNPTl9BU1NFUlRfTUVTU0FHRSh0eXBlXyA9PSBudWxs
VmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgImlu
IEpzb246OlZhbHVlOjpyZW1vdmVNZW1iZXIoKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUiKTsKKyAg
aWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICByZXR1cm4gbnVsbFJlZjsKKworICBWYWx1ZSBy
ZW1vdmVkOyAgLy8gbnVsbAorICByZW1vdmVNZW1iZXIoa2V5LCBrZXkgKyBzdHJsZW4oa2V5KSwg
JnJlbW92ZWQpOworICByZXR1cm4gcmVtb3ZlZDsgLy8gc3RpbGwgbnVsbCBpZiByZW1vdmVNZW1i
ZXIoKSBkaWQgbm90aGluZworfQorVmFsdWUgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBzdGQ6
OnN0cmluZyYga2V5KQoreworICByZXR1cm4gcmVtb3ZlTWVtYmVyKGtleS5jX3N0cigpKTsKK30K
KworYm9vbCBWYWx1ZTo6cmVtb3ZlSW5kZXgoQXJyYXlJbmRleCBpbmRleCwgVmFsdWUqIHJlbW92
ZWQpIHsKKyAgaWYgKHR5cGVfICE9IGFycmF5VmFsdWUpIHsKKyAgICByZXR1cm4gZmFsc2U7Cisg
IH0KKyAgQ1pTdHJpbmcga2V5KGluZGV4KTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdCA9
IHZhbHVlXy5tYXBfLT5maW5kKGtleSk7CisgIGlmIChpdCA9PSB2YWx1ZV8ubWFwXy0+ZW5kKCkp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgKnJlbW92ZWQgPSBpdC0+c2Vjb25kOworICBB
cnJheUluZGV4IG9sZFNpemUgPSBzaXplKCk7CisgIC8vIHNoaWZ0IGxlZnQgYWxsIGl0ZW1zIGxl
ZnQsIGludG8gdGhlIHBsYWNlIG9mIHRoZSAicmVtb3ZlZCIKKyAgZm9yIChBcnJheUluZGV4IGkg
PSBpbmRleDsgaSA8IChvbGRTaXplIC0gMSk7ICsraSl7CisgICAgQ1pTdHJpbmcga2VleShpKTsK
KyAgICAoKnZhbHVlXy5tYXBfKVtrZWV5XSA9ICgqdGhpcylbaSArIDFdOworICB9CisgIC8vIGVy
YXNlIHRoZSBsYXN0IG9uZSAoImxlZnRvdmVyIikKKyAgQ1pTdHJpbmcga2V5TGFzdChvbGRTaXpl
IC0gMSk7CisgIE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXRMYXN0ID0gdmFsdWVfLm1hcF8tPmZp
bmQoa2V5TGFzdCk7CisgIHZhbHVlXy5tYXBfLT5lcmFzZShpdExhc3QpOworICByZXR1cm4gdHJ1
ZTsKK30KKworI2lmZGVmIEpTT05fVVNFX0NQUFRMCitWYWx1ZSBWYWx1ZTo6Z2V0KGNvbnN0IENw
cFRMOjpDb25zdFN0cmluZyYga2V5LAorICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdCB7CisgIHJldHVybiBnZXQoa2V5LmNfc3RyKCksIGtleS5lbmRfY19z
dHIoKSwgZGVmYXVsdFZhbHVlKTsKK30KKyNlbmRpZgorCitib29sIFZhbHVlOjppc01lbWJlcihj
aGFyIGNvbnN0KiBrZXksIGNoYXIgY29uc3QqIGNlbmQpIGNvbnN0Cit7CisgIFZhbHVlIGNvbnN0
KiB2YWx1ZSA9IGZpbmQoa2V5LCBjZW5kKTsKKyAgcmV0dXJuIE5VTEwgIT0gdmFsdWU7Cit9Citi
b29sIFZhbHVlOjppc01lbWJlcihjaGFyIGNvbnN0KiBrZXkpIGNvbnN0Cit7CisgIHJldHVybiBp
c01lbWJlcihrZXksIGtleSArIHN0cmxlbihrZXkpKTsKK30KK2Jvb2wgVmFsdWU6OmlzTWVtYmVy
KHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpIGNvbnN0Cit7CisgIHJldHVybiBpc01lbWJlcihrZXku
ZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKK30KKworI2lmZGVmIEpTT05fVVNF
X0NQUFRMCitib29sIFZhbHVlOjppc01lbWJlcihjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtl
eSkgY29uc3QgeworICByZXR1cm4gaXNNZW1iZXIoa2V5LmNfc3RyKCksIGtleS5lbmRfY19zdHIo
KSk7Cit9CisjZW5kaWYKKworVmFsdWU6Ok1lbWJlcnMgVmFsdWU6OmdldE1lbWJlck5hbWVzKCkg
Y29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZV8gPT0gbnVsbFZhbHVl
IHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpnZXRNZW1i
ZXJOYW1lcygpLCB2YWx1ZSBtdXN0IGJlIG9iamVjdFZhbHVlIik7CisgIGlmICh0eXBlXyA9PSBu
dWxsVmFsdWUpCisgICAgcmV0dXJuIFZhbHVlOjpNZW1iZXJzKCk7CisgIE1lbWJlcnMgbWVtYmVy
czsKKyAgbWVtYmVycy5yZXNlcnZlKHZhbHVlXy5tYXBfLT5zaXplKCkpOworICBPYmplY3RWYWx1
ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmJlZ2luKCk7CisgIE9iamVjdFZh
bHVlczo6Y29uc3RfaXRlcmF0b3IgaXRFbmQgPSB2YWx1ZV8ubWFwXy0+ZW5kKCk7CisgIGZvciAo
OyBpdCAhPSBpdEVuZDsgKytpdCkgeworICAgIG1lbWJlcnMucHVzaF9iYWNrKHN0ZDo6c3RyaW5n
KCgqaXQpLmZpcnN0LmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Kml0KS5maXJzdC5sZW5ndGgoKSkpOworICB9CisgIHJldHVybiBtZW1iZXJzOworfQorLy8KKy8v
IyBpZmRlZiBKU09OX1VTRV9DUFBUTAorLy8gRW51bU1lbWJlck5hbWVzCisvLyBWYWx1ZTo6ZW51
bU1lbWJlck5hbWVzKCkgY29uc3QKKy8veworLy8gICBpZiAoIHR5cGVfID09IG9iamVjdFZhbHVl
ICkKKy8vICAgeworLy8gICAgICByZXR1cm4gQ3BwVEw6OkVudW06OmFueSggIENwcFRMOjpFbnVt
Ojp0cmFuc2Zvcm0oCisvLyAgICAgICAgIENwcFRMOjpFbnVtOjprZXlzKCAqKHZhbHVlXy5tYXBf
KSwgQ3BwVEw6OlR5cGU8Y29uc3QgQ1pTdHJpbmcgJj4oKSApLAorLy8gICAgICAgICBNZW1iZXJO
YW1lc1RyYW5zZm9ybSgpICkgKTsKKy8vICAgfQorLy8gICByZXR1cm4gRW51bU1lbWJlck5hbWVz
KCk7CisvL30KKy8vCisvLworLy8gRW51bVZhbHVlcworLy8gVmFsdWU6OmVudW1WYWx1ZXMoKSBj
b25zdAorLy97CisvLyAgIGlmICggdHlwZV8gPT0gb2JqZWN0VmFsdWUgIHx8ICB0eXBlXyA9PSBh
cnJheVZhbHVlICkKKy8vICAgICAgcmV0dXJuIENwcFRMOjpFbnVtOjphbnlWYWx1ZXMoICoodmFs
dWVfLm1hcF8pLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3BwVEw6
OlR5cGU8Y29uc3QgVmFsdWUgJj4oKSApOworLy8gICByZXR1cm4gRW51bVZhbHVlcygpOworLy99
CisvLworLy8jIGVuZGlmCisKK3N0YXRpYyBib29sIElzSW50ZWdyYWwoZG91YmxlIGQpIHsKKyAg
ZG91YmxlIGludGVncmFsX3BhcnQ7CisgIHJldHVybiBtb2RmKGQsICZpbnRlZ3JhbF9wYXJ0KSA9
PSAwLjA7Cit9CisKK2Jvb2wgVmFsdWU6OmlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09
IG51bGxWYWx1ZTsgfQorCitib29sIFZhbHVlOjppc0Jvb2woKSBjb25zdCB7IHJldHVybiB0eXBl
XyA9PSBib29sZWFuVmFsdWU7IH0KKworYm9vbCBWYWx1ZTo6aXNJbnQoKSBjb25zdCB7CisgIHN3
aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8g
Pj0gbWluSW50ICYmIHZhbHVlXy5pbnRfIDw9IG1heEludDsKKyAgY2FzZSB1aW50VmFsdWU6Cisg
ICAgcmV0dXJuIHZhbHVlXy51aW50XyA8PSBVSW50KG1heEludCk7CisgIGNhc2UgcmVhbFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8ucmVhbF8gPj0gbWluSW50ICYmIHZhbHVlXy5yZWFsXyA8PSBt
YXhJbnQgJiYKKyAgICAgICAgICAgSXNJbnRlZ3JhbCh2YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0
OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNV
SW50KCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgaW50VmFsdWU6CisgICAg
cmV0dXJuIHZhbHVlXy5pbnRfID49IDAgJiYgTGFyZ2VzdFVJbnQodmFsdWVfLmludF8pIDw9IExh
cmdlc3RVSW50KG1heFVJbnQpOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVf
LnVpbnRfIDw9IG1heFVJbnQ7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
cmVhbF8gPj0gMCAmJiB2YWx1ZV8ucmVhbF8gPD0gbWF4VUludCAmJgorICAgICAgICAgICBJc0lu
dGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjppc0ludDY0KCkgY29uc3QgeworI2lmIGRlZmlu
ZWQoSlNPTl9IQVNfSU5UNjQpCisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToK
KyAgICByZXR1cm4gdHJ1ZTsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy51
aW50XyA8PSBVSW50NjQobWF4SW50NjQpOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICAvLyBOb3Rl
IHRoYXQgbWF4SW50NjQgKD0gMl42MyAtIDEpIGlzIG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUg
YXMgYQorICAgIC8vIGRvdWJsZSwgc28gZG91YmxlKG1heEludDY0KSB3aWxsIGJlIHJvdW5kZWQg
dXAgdG8gMl42My4gVGhlcmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUg
c3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49
IGRvdWJsZShtaW5JbnQ2NCkgJiYKKyAgICAgICAgICAgdmFsdWVfLnJlYWxfIDwgZG91YmxlKG1h
eEludDY0KSAmJiBJc0ludGVncmFsKHZhbHVlXy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJl
YWs7CisgIH0KKyNlbmRpZiAvLyBKU09OX0hBU19JTlQ2NAorICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgVmFsdWU6OmlzVUludDY0KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5U
NjQpCisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFs
dWVfLmludF8gPj0gMDsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNh
c2UgcmVhbFZhbHVlOgorICAgIC8vIE5vdGUgdGhhdCBtYXhVSW50NjQgKD0gMl42NCAtIDEpIGlz
IG5vdCBleGFjdGx5IHJlcHJlc2VudGFibGUgYXMgYQorICAgIC8vIGRvdWJsZSwgc28gZG91Ymxl
KG1heFVJbnQ2NCkgd2lsbCBiZSByb3VuZGVkIHVwIHRvIDJeNjQuIFRoZXJlZm9yZSB3ZQorICAg
IC8vIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgbGltaXQu
CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVlXy5yZWFsXyA8IG1heFVJbnQ2
NEFzRG91YmxlICYmCisgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0CisgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNJbnRlZ3JhbCgpIGNvbnN0IHsKKyNpZiBkZWZp
bmVkKEpTT05fSEFTX0lOVDY0KQorICByZXR1cm4gaXNJbnQ2NCgpIHx8IGlzVUludDY0KCk7Cisj
ZWxzZQorICByZXR1cm4gaXNJbnQoKSB8fCBpc1VJbnQoKTsKKyNlbmRpZgorfQorCitib29sIFZh
bHVlOjppc0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IHJlYWxWYWx1ZSB8fCBpc0lu
dGVncmFsKCk7IH0KKworYm9vbCBWYWx1ZTo6aXNOdW1lcmljKCkgY29uc3QgeyByZXR1cm4gaXNJ
bnRlZ3JhbCgpIHx8IGlzRG91YmxlKCk7IH0KKworYm9vbCBWYWx1ZTo6aXNTdHJpbmcoKSBjb25z
dCB7IHJldHVybiB0eXBlXyA9PSBzdHJpbmdWYWx1ZTsgfQorCitib29sIFZhbHVlOjppc0FycmF5
KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gYXJyYXlWYWx1ZTsgfQorCitib29sIFZhbHVlOjpp
c09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IG9iamVjdFZhbHVlOyB9CisKK3ZvaWQg
VmFsdWU6OnNldENvbW1lbnQoY29uc3QgY2hhciogY29tbWVudCwgc2l6ZV90IGxlbiwgQ29tbWVu
dFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgaWYgKCFjb21tZW50c18pCisgICAgY29tbWVudHNf
ID0gbmV3IENvbW1lbnRJbmZvW251bWJlck9mQ29tbWVudFBsYWNlbWVudF07CisgIGlmICgobGVu
ID4gMCkgJiYgKGNvbW1lbnRbbGVuLTFdID09ICdcbicpKSB7CisgICAgLy8gQWx3YXlzIGRpc2Nh
cmQgdHJhaWxpbmcgbmV3bGluZSwgdG8gYWlkIGluZGVudGF0aW9uLgorICAgIGxlbiAtPSAxOwor
ICB9CisgIGNvbW1lbnRzX1twbGFjZW1lbnRdLnNldENvbW1lbnQoY29tbWVudCwgbGVuKTsKK30K
Kwordm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBDb21tZW50UGxh
Y2VtZW50IHBsYWNlbWVudCkgeworICBzZXRDb21tZW50KGNvbW1lbnQsIHN0cmxlbihjb21tZW50
KSwgcGxhY2VtZW50KTsKK30KKwordm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBzdGQ6OnN0
cmluZyYgY29tbWVudCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgc2V0Q29tbWVu
dChjb21tZW50LmNfc3RyKCksIGNvbW1lbnQubGVuZ3RoKCksIHBsYWNlbWVudCk7Cit9CisKK2Jv
b2wgVmFsdWU6Omhhc0NvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0IHsK
KyAgcmV0dXJuIGNvbW1lbnRzXyAhPSAwICYmIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRf
ICE9IDA7Cit9CisKK3N0ZDo6c3RyaW5nIFZhbHVlOjpnZXRDb21tZW50KENvbW1lbnRQbGFjZW1l
bnQgcGxhY2VtZW50KSBjb25zdCB7CisgIGlmIChoYXNDb21tZW50KHBsYWNlbWVudCkpCisgICAg
cmV0dXJuIGNvbW1lbnRzX1twbGFjZW1lbnRdLmNvbW1lbnRfOworICByZXR1cm4gIiI7Cit9CisK
K3ZvaWQgVmFsdWU6OnNldE9mZnNldFN0YXJ0KHNpemVfdCBzdGFydCkgeyBzdGFydF8gPSBzdGFy
dDsgfQorCit2b2lkIFZhbHVlOjpzZXRPZmZzZXRMaW1pdChzaXplX3QgbGltaXQpIHsgbGltaXRf
ID0gbGltaXQ7IH0KKworc2l6ZV90IFZhbHVlOjpnZXRPZmZzZXRTdGFydCgpIGNvbnN0IHsgcmV0
dXJuIHN0YXJ0XzsgfQorCitzaXplX3QgVmFsdWU6OmdldE9mZnNldExpbWl0KCkgY29uc3QgeyBy
ZXR1cm4gbGltaXRfOyB9CisKK3N0ZDo6c3RyaW5nIFZhbHVlOjp0b1N0eWxlZFN0cmluZygpIGNv
bnN0IHsKKyAgU3R5bGVkV3JpdGVyIHdyaXRlcjsKKyAgcmV0dXJuIHdyaXRlci53cml0ZSgqdGhp
cyk7Cit9CisKK1ZhbHVlOjpjb25zdF9pdGVyYXRvciBWYWx1ZTo6YmVnaW4oKSBjb25zdCB7Cisg
IHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVl
OgorICAgIGlmICh2YWx1ZV8ubWFwXykKKyAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcih2YWx1
ZV8ubWFwXy0+YmVnaW4oKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7Cisg
IH0KKyAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7Cit9CisKK1ZhbHVlOjpjb25zdF9pdGVyYXRv
ciBWYWx1ZTo6ZW5kKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlW
YWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICBy
ZXR1cm4gY29uc3RfaXRlcmF0b3IodmFsdWVfLm1hcF8tPmVuZCgpKTsKKyAgICBicmVhazsKKyAg
ZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsKK30K
KworVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjpiZWdpbigpIHsKKyAgc3dpdGNoICh0eXBlXykgewor
ICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5t
YXBfKQorICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigpKTsKKyAgICBi
cmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gaXRlcmF0b3IoKTsK
K30KKworVmFsdWU6Oml0ZXJhdG9yIFZhbHVlOjplbmQoKSB7CisgIHN3aXRjaCAodHlwZV8pIHsK
KyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2YWx1ZV8u
bWFwXykKKyAgICAgIHJldHVybiBpdGVyYXRvcih2YWx1ZV8ubWFwXy0+ZW5kKCkpOworICAgIGJy
ZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBpdGVyYXRvcigpOwor
fQorCisvLyBjbGFzcyBQYXRoQXJndW1lbnQKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitQYXRoQXJndW1lbnQ6
OlBhdGhBcmd1bWVudCgpIDoga2V5XygpLCBpbmRleF8oKSwga2luZF8oa2luZE5vbmUpIHt9CisK
K1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KEFycmF5SW5kZXggaW5kZXgpCisgICAgOiBrZXlf
KCksIGluZGV4XyhpbmRleCksIGtpbmRfKGtpbmRJbmRleCkge30KKworUGF0aEFyZ3VtZW50OjpQ
YXRoQXJndW1lbnQoY29uc3QgY2hhcioga2V5KQorICAgIDoga2V5XyhrZXkpLCBpbmRleF8oKSwg
a2luZF8oa2luZEtleSkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoY29uc3Qgc3Rk
OjpzdHJpbmcmIGtleSkKKyAgICA6IGtleV8oa2V5LmNfc3RyKCkpLCBpbmRleF8oKSwga2luZF8o
a2luZEtleSkge30KKworLy8gY2xhc3MgUGF0aAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1BhdGg6OlBhdGgo
Y29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYg
YTEsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTIsCisgICAgICAgICAgIGNvbnN0
IFBhdGhBcmd1bWVudCYgYTMsCisgICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTQsCisg
ICAgICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTUpIHsKKyAgSW5BcmdzIGluOworICBpbi5w
dXNoX2JhY2soJmExKTsKKyAgaW4ucHVzaF9iYWNrKCZhMik7CisgIGluLnB1c2hfYmFjaygmYTMp
OworICBpbi5wdXNoX2JhY2soJmE0KTsKKyAgaW4ucHVzaF9iYWNrKCZhNSk7CisgIG1ha2VQYXRo
KHBhdGgsIGluKTsKK30KKwordm9pZCBQYXRoOjptYWtlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYg
cGF0aCwgY29uc3QgSW5BcmdzJiBpbikgeworICBjb25zdCBjaGFyKiBjdXJyZW50ID0gcGF0aC5j
X3N0cigpOworICBjb25zdCBjaGFyKiBlbmQgPSBjdXJyZW50ICsgcGF0aC5sZW5ndGgoKTsKKyAg
SW5BcmdzOjpjb25zdF9pdGVyYXRvciBpdEluQXJnID0gaW4uYmVnaW4oKTsKKyAgd2hpbGUgKGN1
cnJlbnQgIT0gZW5kKSB7CisgICAgaWYgKCpjdXJyZW50ID09ICdbJykgeworICAgICAgKytjdXJy
ZW50OworICAgICAgaWYgKCpjdXJyZW50ID09ICclJykKKyAgICAgICAgYWRkUGF0aEluQXJnKHBh
dGgsIGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCk7CisgICAgICBlbHNlIHsK
KyAgICAgICAgQXJyYXlJbmRleCBpbmRleCA9IDA7CisgICAgICAgIGZvciAoOyBjdXJyZW50ICE9
IGVuZCAmJiAqY3VycmVudCA+PSAnMCcgJiYgKmN1cnJlbnQgPD0gJzknOyArK2N1cnJlbnQpCisg
ICAgICAgICAgaW5kZXggPSBpbmRleCAqIDEwICsgQXJyYXlJbmRleCgqY3VycmVudCAtICcwJyk7
CisgICAgICAgIGFyZ3NfLnB1c2hfYmFjayhpbmRleCk7CisgICAgICB9CisgICAgICBpZiAoY3Vy
cmVudCA9PSBlbmQgfHwgKmN1cnJlbnQrKyAhPSAnXScpCisgICAgICAgIGludmFsaWRQYXRoKHBh
dGgsIGludChjdXJyZW50IC0gcGF0aC5jX3N0cigpKSk7CisgICAgfSBlbHNlIGlmICgqY3VycmVu
dCA9PSAnJScpIHsKKyAgICAgIGFkZFBhdGhJbkFyZyhwYXRoLCBpbiwgaXRJbkFyZywgUGF0aEFy
Z3VtZW50OjpraW5kS2V5KTsKKyAgICAgICsrY3VycmVudDsKKyAgICB9IGVsc2UgaWYgKCpjdXJy
ZW50ID09ICcuJykgeworICAgICAgKytjdXJyZW50OworICAgIH0gZWxzZSB7CisgICAgICBjb25z
dCBjaGFyKiBiZWdpbk5hbWUgPSBjdXJyZW50OworICAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5k
ICYmICFzdHJjaHIoIlsuIiwgKmN1cnJlbnQpKQorICAgICAgICArK2N1cnJlbnQ7CisgICAgICBh
cmdzXy5wdXNoX2JhY2soc3RkOjpzdHJpbmcoYmVnaW5OYW1lLCBjdXJyZW50KSk7CisgICAgfQor
ICB9Cit9CisKK3ZvaWQgUGF0aDo6YWRkUGF0aEluQXJnKGNvbnN0IHN0ZDo6c3RyaW5nJiAvKnBh
dGgqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEluQXJncyYgaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yJiBpdEluQXJnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpIHsKKyAgaWYgKGl0SW5B
cmcgPT0gaW4uZW5kKCkpIHsKKyAgICAvLyBFcnJvcjogbWlzc2luZyBhcmd1bWVudCAlZAorICB9
IGVsc2UgaWYgKCgqaXRJbkFyZyktPmtpbmRfICE9IGtpbmQpIHsKKyAgICAvLyBFcnJvcjogYmFk
IGFyZ3VtZW50IHR5cGUKKyAgfSBlbHNlIHsKKyAgICBhcmdzXy5wdXNoX2JhY2soKippdEluQXJn
KTsKKyAgfQorfQorCit2b2lkIFBhdGg6OmludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiAv
KnBhdGgqLywgaW50IC8qbG9jYXRpb24qLykgeworICAvLyBFcnJvcjogaW52YWxpZCBwYXRoLgor
fQorCitjb25zdCBWYWx1ZSYgUGF0aDo6cmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCkgY29uc3Qg
eworICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKEFyZ3M6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQpIHsKKyAgICBj
b25zdCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhB
cmd1bWVudDo6a2luZEluZGV4KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSB8fCAhbm9k
ZS0+aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUg
dG8gcmVzb2x2ZSBwYXRoIChhcnJheSB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLgorICAg
ICAgfQorICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlm
IChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUt
PmlzT2JqZWN0KCkpIHsKKyAgICAgICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGgg
KG9iamVjdCB2YWx1ZSBleHBlY3RlZCBhdCBwb3NpdGlvbi4uLikKKyAgICAgIH0KKyAgICAgIG5v
ZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKKyAgICAgIGlmIChub2RlID09ICZWYWx1ZTo6bnVs
bFJlZikgeworICAgICAgICAvLyBFcnJvcjogdW5hYmxlIHRvIHJlc29sdmUgcGF0aCAob2JqZWN0
IGhhcyBubyBtZW1iZXIgbmFtZWQgJycgYXQKKyAgICAgICAgLy8gcG9zaXRpb24uLi4pCisgICAg
ICB9CisgICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworVmFsdWUgUGF0aDo6cmVzb2x2
ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Qgewor
ICBjb25zdCBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKEFyZ3M6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQpIHsKKyAgICBjb25z
dCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1
bWVudDo6a2luZEluZGV4KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSB8fCAhbm9kZS0+
aXNWYWxpZEluZGV4KGFyZy5pbmRleF8pKQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwor
ICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcu
a2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2Jq
ZWN0KCkpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICBub2RlID0gJigoKm5v
ZGUpW2FyZy5rZXlfXSk7CisgICAgICBpZiAobm9kZSA9PSAmVmFsdWU6Om51bGxSZWYpCisgICAg
ICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30K
KworVmFsdWUmIFBhdGg6Om1ha2UoVmFsdWUmIHJvb3QpIGNvbnN0IHsKKyAgVmFsdWUqIG5vZGUg
PSAmcm9vdDsKKyAgZm9yIChBcmdzOjpjb25zdF9pdGVyYXRvciBpdCA9IGFyZ3NfLmJlZ2luKCk7
IGl0ICE9IGFyZ3NfLmVuZCgpOyArK2l0KSB7CisgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhcmcg
PSAqaXQ7CisgICAgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRJbmRleCkgewor
ICAgICAgaWYgKCFub2RlLT5pc0FycmF5KCkpIHsKKyAgICAgICAgLy8gRXJyb3I6IG5vZGUgaXMg
bm90IGFuIGFycmF5IGF0IHBvc2l0aW9uIC4uLgorICAgICAgfQorICAgICAgbm9kZSA9ICYoKCpu
b2RlKVthcmcuaW5kZXhfXSk7CisgICAgfSBlbHNlIGlmIChhcmcua2luZF8gPT0gUGF0aEFyZ3Vt
ZW50OjpraW5kS2V5KSB7CisgICAgICBpZiAoIW5vZGUtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
Ly8gRXJyb3I6IG5vZGUgaXMgbm90IGFuIG9iamVjdCBhdCBwb3NpdGlvbi4uLgorICAgICAgfQor
ICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOworICAgIH0KKyAgfQorICByZXR1cm4g
Km5vZGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpzb24KKworI3ByYWdtYSB3YXJuaW5nIChwb3Ap
CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJf
anNvbi9qc29uX3ZhbHVlLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29u
L2pzb25fd3JpdGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAxMSBC
YXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBw
dWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNk
aWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDov
L2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPGpzb24vd3JpdGVyLmg+CisjaW5jbHVkZSAianNvbl90
b29sLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5j
bHVkZSA8aW9tYW5pcD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNp
bmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2lu
Y2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8Y3N0ZGlvPgorCisjaWYgZGVmaW5lZChfTVNDX1ZF
UikgJiYgX01TQ19WRVIgPj0gMTIwMCAmJiBfTVNDX1ZFUiA8IDE4MDAgLy8gQmV0d2VlbiBWQysr
IDYuMCBhbmQgVkMrKyAxMS4wCisjaW5jbHVkZSA8ZmxvYXQuaD4KKyNkZWZpbmUgaXNmaW5pdGUg
X2Zpbml0ZQorI2VsaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5lZChfX1NWUjQpIC8vU29sYXJp
cworI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2luY2x1ZGUgPGllZWVmcC5oPgorI2RlZmluZSBp
c2Zpbml0ZSBmaW5pdGUKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfQUlYKQorI2lmICFkZWZpbmVk
KGlzZmluaXRlKQorI2luY2x1ZGUgPG1hdGguaD4KKyNkZWZpbmUgaXNmaW5pdGUgZmluaXRlCisj
ZW5kaWYKKyNlbGlmIGRlZmluZWQoX19ocHV4KQorI2lmICFkZWZpbmVkKGlzZmluaXRlKQorI2lm
IGRlZmluZWQoX19pYTY0KSAmJiAhZGVmaW5lZChmaW5pdGUpCisjZGVmaW5lIGlzZmluaXRlKHgp
ICgoc2l6ZW9mKHgpID09IHNpemVvZihmbG9hdCkgPyBcCisgICAgICAgICAgICAgICAgICAgICBf
SXNmaW5pdGVmKHgpIDogX0lzRmluaXRlKHgpKSkKKyNlbHNlCisjaW5jbHVkZSA8bWF0aC5oPgor
I2RlZmluZSBpc2Zpbml0ZSBmaW5pdGUKKyNlbmRpZgorI2VuZGlmCisjZWxzZQorI2luY2x1ZGUg
PGNtYXRoPgorI2lmICEoZGVmaW5lZChfX1FOWE5UT19fKSkgLy8gUU5YIGFscmVhZHkgZGVmaW5l
cyBpc2Zpbml0ZQorI2RlZmluZSBpc2Zpbml0ZSBzdGQ6OmlzZmluaXRlCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNpZiAhZGVmaW5lZChXSU5DRSkgJiYgZGVmaW5l
ZChfX1NURENfU0VDVVJFX0xJQl9fKSAmJiBfTVNDX1ZFUiA+PSAxNTAwIC8vIFZDKysgOS4wIGFu
ZCBhYm92ZQorI2RlZmluZSBzbnByaW50ZiBzcHJpbnRmX3MKKyNlbGlmIF9NU0NfVkVSID49IDE5
MDAgLy8gVkMrKyAxNC4wIGFuZCBhYm92ZQorI2RlZmluZSBzbnByaW50ZiBzdGQ6OnNucHJpbnRm
CisjZWxzZQorI2RlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyNlbmRpZgorI2VsaWYgZGVmaW5l
ZChfX0FORFJPSURfXykgfHwgZGVmaW5lZChfX1FOWE5UT19fKQorI2RlZmluZSBzbnByaW50ZiBz
bnByaW50ZgorI2VsaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAorI2RlZmluZSBzbnByaW50ZiBz
dGQ6OnNucHJpbnRmCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAgCisjaW5j
bHVkZSA8ZmxvYXQuaD4KKyNkZWZpbmUgaXNmaW5pdGUgX2Zpbml0ZQorI2RlZmluZSBzbnByaW50
ZiBfc25wcmludGYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIg
Pj0gMTQwMCAvLyBWQysrIDguMAorLy8gRGlzYWJsZSB3YXJuaW5nIGFib3V0IHN0cmR1cCBiZWlu
ZyBkZXByZWNhdGVkLgorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0OTk2KQorI2VuZGlmCisK
K25hbWVzcGFjZSBKc29uIHsKKworI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wgfHwgKGRlZmlu
ZWQoX0NQUExJQl9WRVIpICYmIF9DUFBMSUJfVkVSID49IDUyMCkKK3R5cGVkZWYgc3RkOjp1bmlx
dWVfcHRyPFN0cmVhbVdyaXRlcj4gU3RyZWFtV3JpdGVyUHRyOworI2Vsc2UKK3R5cGVkZWYgc3Rk
OjphdXRvX3B0cjxTdHJlYW1Xcml0ZXI+ICAgU3RyZWFtV3JpdGVyUHRyOworI2VuZGlmCisKK3N0
YXRpYyBib29sIGNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcihjb25zdCBjaGFyKiBzdHIpIHsKKyAg
d2hpbGUgKCpzdHIpIHsKKyAgICBpZiAoaXNDb250cm9sQ2hhcmFjdGVyKCooc3RyKyspKSkKKyAg
ICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wg
Y29udGFpbnNDb250cm9sQ2hhcmFjdGVyMChjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGxlbikg
eworICBjaGFyIGNvbnN0KiBlbmQgPSBzdHIgKyBsZW47CisgIHdoaWxlIChlbmQgIT0gc3RyKSB7
CisgICAgaWYgKGlzQ29udHJvbENoYXJhY3Rlcigqc3RyKSB8fCAwPT0qc3RyKQorICAgICAgcmV0
dXJuIHRydWU7CisgICAgKytzdHI7CisgIH0KKyAgcmV0dXJuIGZhbHNlOworfQorCitzdGQ6OnN0
cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQgdmFsdWUpIHsKKyAgVUludFRvU3RyaW5nQnVm
ZmVyIGJ1ZmZlcjsKKyAgY2hhciogY3VycmVudCA9IGJ1ZmZlciArIHNpemVvZihidWZmZXIpOwor
ICBpZiAodmFsdWUgPT0gVmFsdWU6Om1pbkxhcmdlc3RJbnQpIHsKKyAgICB1aW50VG9TdHJpbmco
TGFyZ2VzdFVJbnQoVmFsdWU6Om1heExhcmdlc3RJbnQpICsgMSwgY3VycmVudCk7CisgICAgKi0t
Y3VycmVudCA9ICctJzsKKyAgfSBlbHNlIGlmICh2YWx1ZSA8IDApIHsKKyAgICB1aW50VG9TdHJp
bmcoTGFyZ2VzdFVJbnQoLXZhbHVlKSwgY3VycmVudCk7CisgICAgKi0tY3VycmVudCA9ICctJzsK
KyAgfSBlbHNlIHsKKyAgICB1aW50VG9TdHJpbmcoTGFyZ2VzdFVJbnQodmFsdWUpLCBjdXJyZW50
KTsKKyAgfQorICBhc3NlcnQoY3VycmVudCA+PSBidWZmZXIpOworICByZXR1cm4gY3VycmVudDsK
K30KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2YWx1ZSkgeworICBV
SW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICBjaGFyKiBjdXJyZW50ID0gYnVmZmVyICsgc2l6
ZW9mKGJ1ZmZlcik7CisgIHVpbnRUb1N0cmluZyh2YWx1ZSwgY3VycmVudCk7CisgIGFzc2VydChj
dXJyZW50ID49IGJ1ZmZlcik7CisgIHJldHVybiBjdXJyZW50OworfQorCisjaWYgZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhJbnQgdmFsdWUpIHsK
KyAgcmV0dXJuIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCh2YWx1ZSkpOworfQorCitzdGQ6OnN0
cmluZyB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlVG9TdHJpbmco
TGFyZ2VzdFVJbnQodmFsdWUpKTsKK30KKworI2VuZGlmIC8vICMgaWYgZGVmaW5lZChKU09OX0hB
U19JTlQ2NCkKKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUgdmFsdWUsIGJvb2wg
dXNlU3BlY2lhbEZsb2F0cywgdW5zaWduZWQgaW50IHByZWNpc2lvbikgeworICAvLyBBbGxvY2F0
ZSBhIGJ1ZmZlciB0aGF0IGlzIG1vcmUgdGhhbiBsYXJnZSBlbm91Z2ggdG8gc3RvcmUgdGhlIDE2
IGRpZ2l0cyBvZgorICAvLyBwcmVjaXNpb24gcmVxdWVzdGVkIGJlbG93LgorICBjaGFyIGJ1ZmZl
clszMl07CisgIGludCBsZW4gPSAtMTsKKworICBjaGFyIGZvcm1hdFN0cmluZ1s2XTsKKyAgc3By
aW50Zihmb3JtYXRTdHJpbmcsICIlJS4lZGciLCBwcmVjaXNpb24pOworCisgIC8vIFByaW50IGlu
dG8gdGhlIGJ1ZmZlci4gV2UgbmVlZCBub3QgcmVxdWVzdCB0aGUgYWx0ZXJuYXRpdmUgcmVwcmVz
ZW50YXRpb24KKyAgLy8gdGhhdCBhbHdheXMgaGFzIGEgZGVjaW1hbCBwb2ludCBiZWNhdXNlIEpT
T04gZG9lc24ndCBkaXN0aW5naXNoIHRoZQorICAvLyBjb25jZXB0cyBvZiByZWFscyBhbmQgaW50
ZWdlcnMuCisgIGlmIChpc2Zpbml0ZSh2YWx1ZSkpIHsKKyAgICBsZW4gPSBzbnByaW50ZihidWZm
ZXIsIHNpemVvZihidWZmZXIpLCBmb3JtYXRTdHJpbmcsIHZhbHVlKTsKKyAgfSBlbHNlIHsKKyAg
ICAvLyBJRUVFIHN0YW5kYXJkIHN0YXRlcyB0aGF0IE5hTiB2YWx1ZXMgd2lsbCBub3QgY29tcGFy
ZSB0byB0aGVtc2VsdmVzCisgICAgaWYgKHZhbHVlICE9IHZhbHVlKSB7CisgICAgICBsZW4gPSBz
bnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFsRmxvYXRzID8gIk5hTiIg
OiAibnVsbCIpOworICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwKSB7CisgICAgICBsZW4gPSBzbnBy
aW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFsRmxvYXRzID8gIi1JbmZpbml0
eSIgOiAiLTFlKzk5OTkiKTsKKyAgICB9IGVsc2UgeworICAgICAgbGVuID0gc25wcmludGYoYnVm
ZmVyLCBzaXplb2YoYnVmZmVyKSwgdXNlU3BlY2lhbEZsb2F0cyA/ICJJbmZpbml0eSIgOiAiMWUr
OTk5OSIpOworICAgIH0KKyAgICAvLyBGb3IgdGhvc2UsIHdlIGRvIG5vdCBuZWVkIHRvIGNhbGwg
Zml4TnVtTG9jLCBidXQgaXQgaXMgZmFzdC4KKyAgfQorICBhc3NlcnQobGVuID49IDApOworICBm
aXhOdW1lcmljTG9jYWxlKGJ1ZmZlciwgYnVmZmVyICsgbGVuKTsKKyAgcmV0dXJuIGJ1ZmZlcjsK
K30KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0cmluZyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIHZh
bHVlVG9TdHJpbmcodmFsdWUsIGZhbHNlLCAxNyk7IH0KKworc3RkOjpzdHJpbmcgdmFsdWVUb1N0
cmluZyhib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KKwor
c3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSkgeworICBp
ZiAodmFsdWUgPT0gTlVMTCkKKyAgICByZXR1cm4gIiI7CisgIC8vIE5vdCBzdXJlIGhvdyB0byBo
YW5kbGUgdW5pY29kZS4uLgorICBpZiAoc3RycGJyayh2YWx1ZSwgIlwiXFxcYlxmXG5cclx0Iikg
PT0gTlVMTCAmJgorICAgICAgIWNvbnRhaW5zQ29udHJvbENoYXJhY3Rlcih2YWx1ZSkpCisgICAg
cmV0dXJuIHN0ZDo6c3RyaW5nKCJcIiIpICsgdmFsdWUgKyAiXCIiOworICAvLyBXZSBoYXZlIHRv
IHdhbGsgdmFsdWUgYW5kIGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzLgorICAvLyBBcHBl
bmRpbmcgdG8gc3RkOjpzdHJpbmcgaXMgbm90IGVmZmljaWVudCwgYnV0IHRoaXMgc2hvdWxkIGJl
IHJhcmUuCisgIC8vIChOb3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJlICpub3QqIHJhcmUsIGJ1dCBJ
IGFtIG5vdCBlc2NhcGluZyB0aGVtLikKKyAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBtYXhzaXpl
ID0KKyAgICAgIHN0cmxlbih2YWx1ZSkgKiAyICsgMzsgLy8gYWxsZXNjYXBlZCtxdW90ZXMrTlVM
TAorICBzdGQ6OnN0cmluZyByZXN1bHQ7CisgIHJlc3VsdC5yZXNlcnZlKG1heHNpemUpOyAvLyB0
byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MKKyAgcmVzdWx0ICs9ICJcIiI7CisgIGZvciAoY29uc3Qg
Y2hhciogYyA9IHZhbHVlOyAqYyAhPSAwOyArK2MpIHsKKyAgICBzd2l0Y2ggKCpjKSB7CisgICAg
Y2FzZSAnXCInOgorICAgICAgcmVzdWx0ICs9ICJcXFwiIjsKKyAgICAgIGJyZWFrOworICAgIGNh
c2UgJ1xcJzoKKyAgICAgIHJlc3VsdCArPSAiXFxcXCI7CisgICAgICBicmVhazsKKyAgICBjYXNl
ICdcYic6CisgICAgICByZXN1bHQgKz0gIlxcYiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdc
Zic6CisgICAgICByZXN1bHQgKz0gIlxcZiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcbic6
CisgICAgICByZXN1bHQgKz0gIlxcbiI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdccic6Cisg
ICAgICByZXN1bHQgKz0gIlxcciI7CisgICAgICBicmVhazsKKyAgICBjYXNlICdcdCc6CisgICAg
ICByZXN1bHQgKz0gIlxcdCI7CisgICAgICBicmVhazsKKyAgICAvLyBjYXNlICcvJzoKKyAgICAv
LyBFdmVuIHRob3VnaCBcLyBpcyBjb25zaWRlcmVkIGEgbGVnYWwgZXNjYXBlIGluIEpTT04sIGEg
YmFyZQorICAgIC8vIHNsYXNoIGlzIGFsc28gbGVnYWwsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBl
c2NhcGUgaXQuCisgICAgLy8gKEkgaG9wZSBJIGFtIG5vdCBtaXN1bmRlcnN0YW5kaW5nIHNvbWV0
aGluZy4KKyAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGluZyBcLyBtYXkgYmUgdXNl
ZnVsIGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KKyAgICAvLyBzZXF1ZW5jZS4KKyAgICAvLyBT
aG91bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJl
dmVudCB0aGlzCisgICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcuCisgICAgZGVmYXVsdDoK
KyAgICAgIGlmIChpc0NvbnRyb2xDaGFyYWN0ZXIoKmMpKSB7CisgICAgICAgIHN0ZDo6b3N0cmlu
Z3N0cmVhbSBvc3M7CisgICAgICAgIG9zcyA8PCAiXFx1IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnVw
cGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKQorICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDQp
IDw8IHN0YXRpY19jYXN0PGludD4oKmMpOworICAgICAgICByZXN1bHQgKz0gb3NzLnN0cigpOwor
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0ICs9ICpjOworICAgICAgfQorICAgICAgYnJl
YWs7CisgICAgfQorICB9CisgIHJlc3VsdCArPSAiXCIiOworICByZXR1cm4gcmVzdWx0OworfQor
CisvLyBodHRwczovL2dpdGh1Yi5jb20vdXBjYXN0ZS91cGNhc3RlL2Jsb2IvbWFzdGVyL3NyYy91
cGNvcmUvc3JjL2NzdHJpbmcvc3RybnBicmsuY3BwCitzdGF0aWMgY2hhciBjb25zdCogc3RybnBi
cmsoY2hhciBjb25zdCogcywgY2hhciBjb25zdCogYWNjZXB0LCBzaXplX3QgbikgeworICBhc3Nl
cnQoKHMgfHwgIW4pICYmIGFjY2VwdCk7CisKKyAgY2hhciBjb25zdCogY29uc3QgZW5kID0gcyAr
IG47CisgIGZvciAoY2hhciBjb25zdCogY3VyID0gczsgY3VyIDwgZW5kOyArK2N1cikgeworICAg
IGludCBjb25zdCBjID0gKmN1cjsKKyAgICBmb3IgKGNoYXIgY29uc3QqIGEgPSBhY2NlcHQ7ICph
OyArK2EpIHsKKyAgICAgIGlmICgqYSA9PSBjKSB7CisgICAgICAgIHJldHVybiBjdXI7CisgICAg
ICB9CisgICAgfQorICB9CisgIHJldHVybiBOVUxMOworfQorc3RhdGljIHN0ZDo6c3RyaW5nIHZh
bHVlVG9RdW90ZWRTdHJpbmdOKGNvbnN0IGNoYXIqIHZhbHVlLCB1bnNpZ25lZCBsZW5ndGgpIHsK
KyAgaWYgKHZhbHVlID09IE5VTEwpCisgICAgcmV0dXJuICIiOworICAvLyBOb3Qgc3VyZSBob3cg
dG8gaGFuZGxlIHVuaWNvZGUuLi4KKyAgaWYgKHN0cm5wYnJrKHZhbHVlLCAiXCJcXFxiXGZcblxy
XHQiLCBsZW5ndGgpID09IE5VTEwgJiYKKyAgICAgICFjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIw
KHZhbHVlLCBsZW5ndGgpKQorICAgIHJldHVybiBzdGQ6OnN0cmluZygiXCIiKSArIHZhbHVlICsg
IlwiIjsKKyAgLy8gV2UgaGF2ZSB0byB3YWxrIHZhbHVlIGFuZCBlc2NhcGUgYW55IHNwZWNpYWwg
Y2hhcmFjdGVycy4KKyAgLy8gQXBwZW5kaW5nIHRvIHN0ZDo6c3RyaW5nIGlzIG5vdCBlZmZpY2ll
bnQsIGJ1dCB0aGlzIHNob3VsZCBiZSByYXJlLgorICAvLyAoTm90ZTogZm9yd2FyZCBzbGFzaGVz
IGFyZSAqbm90KiByYXJlLCBidXQgSSBhbSBub3QgZXNjYXBpbmcgdGhlbS4pCisgIHN0ZDo6c3Ry
aW5nOjpzaXplX3R5cGUgbWF4c2l6ZSA9CisgICAgICBsZW5ndGggKiAyICsgMzsgLy8gYWxsZXNj
YXBlZCtxdW90ZXMrTlVMTAorICBzdGQ6OnN0cmluZyByZXN1bHQ7CisgIHJlc3VsdC5yZXNlcnZl
KG1heHNpemUpOyAvLyB0byBhdm9pZCBsb3RzIG9mIG1hbGxvY3MKKyAgcmVzdWx0ICs9ICJcIiI7
CisgIGNoYXIgY29uc3QqIGVuZCA9IHZhbHVlICsgbGVuZ3RoOworICBmb3IgKGNvbnN0IGNoYXIq
IGMgPSB2YWx1ZTsgYyAhPSBlbmQ7ICsrYykgeworICAgIHN3aXRjaCAoKmMpIHsKKyAgICBjYXNl
ICdcIic6CisgICAgICByZXN1bHQgKz0gIlxcXCIiOworICAgICAgYnJlYWs7CisgICAgY2FzZSAn
XFwnOgorICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xi
JzoKKyAgICAgIHJlc3VsdCArPSAiXFxiIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xmJzoK
KyAgICAgIHJlc3VsdCArPSAiXFxmIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xuJzoKKyAg
ICAgIHJlc3VsdCArPSAiXFxuIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xyJzoKKyAgICAg
IHJlc3VsdCArPSAiXFxyIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1x0JzoKKyAgICAgIHJl
c3VsdCArPSAiXFx0IjsKKyAgICAgIGJyZWFrOworICAgIC8vIGNhc2UgJy8nOgorICAgIC8vIEV2
ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdhbCBlc2NhcGUgaW4gSlNPTiwgYSBiYXJl
CisgICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28gSSBzZWUgbm8gcmVhc29uIHRvIGVzY2Fw
ZSBpdC4KKyAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1pc3VuZGVyc3RhbmRpbmcgc29tZXRoaW5n
LikKKyAgICAvLyBibGVwIG5vdGVzOiBhY3R1YWxseSBlc2NhcGluZyBcLyBtYXkgYmUgdXNlZnVs
IGluIGphdmFzY3JpcHQgdG8gYXZvaWQgPC8KKyAgICAvLyBzZXF1ZW5jZS4KKyAgICAvLyBTaG91
bGQgYWRkIGEgZmxhZyB0byBhbGxvdyB0aGlzIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJldmVu
dCB0aGlzCisgICAgLy8gc2VxdWVuY2UgZnJvbSBvY2N1cnJpbmcuCisgICAgZGVmYXVsdDoKKyAg
ICAgIGlmICgoaXNDb250cm9sQ2hhcmFjdGVyKCpjKSkgfHwgKCpjID09IDApKSB7CisgICAgICAg
IHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7CisgICAgICAgIG9zcyA8PCAiXFx1IiA8PCBzdGQ6Omhl
eCA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBzdGQ6OnNldGZpbGwoJzAnKQorICAgICAgICAgICAgPDwg
c3RkOjpzZXR3KDQpIDw8IHN0YXRpY19jYXN0PGludD4oKmMpOworICAgICAgICByZXN1bHQgKz0g
b3NzLnN0cigpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0ICs9ICpjOworICAgICAg
fQorICAgICAgYnJlYWs7CisgICAgfQorICB9CisgIHJlc3VsdCArPSAiXCIiOworICByZXR1cm4g
cmVzdWx0OworfQorCisvLyBDbGFzcyBXcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworV3JpdGVyOjp+V3Jp
dGVyKCkge30KKworLy8gQ2xhc3MgRmFzdFdyaXRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK0Zhc3RXcml0
ZXI6OkZhc3RXcml0ZXIoKQorICAgIDogeWFtbENvbXBhdGlibGl0eUVuYWJsZWRfKGZhbHNlKSwg
ZHJvcE51bGxQbGFjZWhvbGRlcnNfKGZhbHNlKSwKKyAgICAgIG9taXRFbmRpbmdMaW5lRmVlZF8o
ZmFsc2UpIHt9CisKK3ZvaWQgRmFzdFdyaXRlcjo6ZW5hYmxlWUFNTENvbXBhdGliaWxpdHkoKSB7
IHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXyA9IHRydWU7IH0KKwordm9pZCBGYXN0V3JpdGVyOjpk
cm9wTnVsbFBsYWNlaG9sZGVycygpIHsgZHJvcE51bGxQbGFjZWhvbGRlcnNfID0gdHJ1ZTsgfQor
Cit2b2lkIEZhc3RXcml0ZXI6Om9taXRFbmRpbmdMaW5lRmVlZCgpIHsgb21pdEVuZGluZ0xpbmVG
ZWVkXyA9IHRydWU7IH0KKworc3RkOjpzdHJpbmcgRmFzdFdyaXRlcjo6d3JpdGUoY29uc3QgVmFs
dWUmIHJvb3QpIHsKKyAgZG9jdW1lbnRfID0gIiI7CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIGlm
ICghb21pdEVuZGluZ0xpbmVGZWVkXykKKyAgICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgcmV0dXJu
IGRvY3VtZW50XzsKK30KKwordm9pZCBGYXN0V3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVl
JiB2YWx1ZSkgeworICBzd2l0Y2ggKHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToK
KyAgICBpZiAoIWRyb3BOdWxsUGxhY2Vob2xkZXJzXykKKyAgICAgIGRvY3VtZW50XyArPSAibnVs
bCI7CisgICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6CisgICAgZG9jdW1lbnRfICs9IHZhbHVl
VG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50KCkpOworICAgIGJyZWFrOworICBjYXNlIHVpbnRW
YWx1ZToKKyAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50
KCkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBkb2N1bWVudF8gKz0gdmFs
dWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKTsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdW
YWx1ZToKKyAgeworICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/Cisg
ICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0g
dmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykgZG9jdW1lbnRfICs9IHZh
bHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKTsK
KyAgICBicmVhazsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBkb2N1bWVudF8gKz0g
dmFsdWVUb1N0cmluZyh2YWx1ZS5hc0Jvb2woKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlW
YWx1ZTogeworICAgIGRvY3VtZW50XyArPSAnWyc7CisgICAgaW50IHNpemUgPSB2YWx1ZS5zaXpl
KCk7CisgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAg
ICAgIGlmIChpbmRleCA+IDApCisgICAgICAgIGRvY3VtZW50XyArPSAnLCc7CisgICAgICB3cml0
ZVZhbHVlKHZhbHVlW2luZGV4XSk7CisgICAgfQorICAgIGRvY3VtZW50XyArPSAnXSc7CisgIH0g
YnJlYWs7CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJz
KHZhbHVlLmdldE1lbWJlck5hbWVzKCkpOworICAgIGRvY3VtZW50XyArPSAneyc7CisgICAgZm9y
IChWYWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7IGl0ICE9IG1l
bWJlcnMuZW5kKCk7CisgICAgICAgICArK2l0KSB7CisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYg
bmFtZSA9ICppdDsKKyAgICAgIGlmIChpdCAhPSBtZW1iZXJzLmJlZ2luKCkpCisgICAgICAgIGRv
Y3VtZW50XyArPSAnLCc7CisgICAgICBkb2N1bWVudF8gKz0gdmFsdWVUb1F1b3RlZFN0cmluZ04o
bmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihuYW1lLmxlbmd0aCgpKSk7CisgICAg
ICBkb2N1bWVudF8gKz0geWFtbENvbXBhdGlibGl0eUVuYWJsZWRfID8gIjogIiA6ICI6IjsKKyAg
ICAgIHdyaXRlVmFsdWUodmFsdWVbbmFtZV0pOworICAgIH0KKyAgICBkb2N1bWVudF8gKz0gJ30n
OworICB9IGJyZWFrOworICB9Cit9CisKKy8vIENsYXNzIFN0eWxlZFdyaXRlcgorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK1N0eWxlZFdyaXRlcjo6U3R5bGVkV3JpdGVyKCkKKyAgICA6IHJpZ2h0TWFyZ2luXyg3
NCksIGluZGVudFNpemVfKDMpLCBhZGRDaGlsZFZhbHVlc18oKSB7fQorCitzdGQ6OnN0cmluZyBT
dHlsZWRXcml0ZXI6OndyaXRlKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGRvY3VtZW50XyA9ICIi
OworICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50U3RyaW5nXyA9ICIiOworICB3
cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290KTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3Jp
dGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgIGRvY3VtZW50XyArPSAiXG4i
OworICByZXR1cm4gZG9jdW1lbnRfOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1
ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAgY2Fz
ZSBudWxsVmFsdWU6CisgICAgcHVzaFZhbHVlKCJudWxsIik7CisgICAgYnJlYWs7CisgIGNhc2Ug
aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0SW50
KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVl
VG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVh
bFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpKTsK
KyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIC8vIElzIE5VTEwgcG9z
c2libGUgZm9yIHZhbHVlLnN0cmluZ18/CisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIg
Y29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOwor
ICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7CisgICAgZWxzZSBwdXNoVmFsdWUoIiIpOworICAgIGJy
ZWFrOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3Ry
aW5nKHZhbHVlLmFzQm9vbCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAg
ICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOworICAgIGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVl
OiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsK
KyAgICBpZiAobWVtYmVycy5lbXB0eSgpKQorICAgICAgcHVzaFZhbHVlKCJ7fSIpOworICAgIGVs
c2UgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAg
IFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKKyAgICAgIGZv
ciAoOzspIHsKKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUgPSAqaXQ7CisgICAgICAg
IGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFs
dWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKKyAgICAgICAgZG9jdW1lbnRfICs9ICIg
OiAiOworICAgICAgICB3cml0ZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoKytpdCA9
PSBtZW1iZXJzLmVuZCgpKSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2Ft
ZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxp
bmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVX
aXRoSW5kZW50KCJ9Iik7CisgICAgfQorICB9IGJyZWFrOworICB9Cit9CisKK3ZvaWQgU3R5bGVk
V3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHVuc2lnbmVk
IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZhbHVlKCJb
XSIpOworICBlbHNlIHsKKyAgICBib29sIGlzQXJyYXlNdWx0aUxpbmUgPSBpc011bHRpbmVBcnJh
eSh2YWx1ZSk7CisgICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsKKyAgICAgIHdyaXRlV2l0aElu
ZGVudCgiWyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBib29sIGhhc0NoaWxkVmFsdWUgPSAh
Y2hpbGRWYWx1ZXNfLmVtcHR5KCk7CisgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgICBm
b3IgKDs7KSB7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhd
OworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAg
aWYgKGhhc0NoaWxkVmFsdWUpCisgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KGNoaWxkVmFsdWVz
X1tpbmRleF0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICB3cml0ZUluZGVudCgpOworICAg
ICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCsr
aW5kZXggPT0gc2l6ZSkgeworICAgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVM
aW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRv
Y3VtZW50XyArPSAnLCc7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5l
KGNoaWxkVmFsdWUpOworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0
aEluZGVudCgiXSIpOworICAgIH0gZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAg
IHsKKyAgICAgIGFzc2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgZG9j
dW1lbnRfICs9ICJbICI7CisgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBz
aXplOyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+IDApCisgICAgICAgICAgZG9jdW1l
bnRfICs9ICIsICI7CisgICAgICAgIGRvY3VtZW50XyArPSBjaGlsZFZhbHVlc19baW5kZXhdOwor
ICAgICAgfQorICAgICAgZG9jdW1lbnRfICs9ICIgXSI7CisgICAgfQorICB9Cit9CisKK2Jvb2wg
U3R5bGVkV3JpdGVyOjppc011bHRpbmVBcnJheShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgaW50
IHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplICogMyA+PSBy
aWdodE1hcmdpbl87CisgIGNoaWxkVmFsdWVzXy5jbGVhcigpOworICBmb3IgKGludCBpbmRleCA9
IDA7IGluZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBjb25zdCBW
YWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hp
bGRWYWx1ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsKKyAgfQorICBpZiAoIWlzTXVs
dGlMaW5lKSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAorICB7Cisg
ICAgY2hpbGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1
ZTsKKyAgICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcs
ICcqbiArICcgXScKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRl
eCkgeworICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAg
ICAgIGlzTXVsdGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVb
aW5kZXhdKTsKKyAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVu
Z3RoKCkpOworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011bHRp
TGluZSA9IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9Cisg
IHJldHVybiBpc011bHRpTGluZTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OnB1c2hWYWx1ZShj
b25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpIHsKKyAgaWYgKGFkZENoaWxkVmFsdWVzXykKKyAgICBj
aGlsZFZhbHVlc18ucHVzaF9iYWNrKHZhbHVlKTsKKyAgZWxzZQorICAgIGRvY3VtZW50XyArPSB2
YWx1ZTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlSW5kZW50KCkgeworICBpZiAoIWRv
Y3VtZW50Xy5lbXB0eSgpKSB7CisgICAgY2hhciBsYXN0ID0gZG9jdW1lbnRfW2RvY3VtZW50Xy5s
ZW5ndGgoKSAtIDFdOworICAgIGlmIChsYXN0ID09ICcgJykgLy8gYWxyZWFkeSBpbmRlbnRlZAor
ICAgICAgcmV0dXJuOworICAgIGlmIChsYXN0ICE9ICdcbicpIC8vIENvbW1lbnRzIG1heSBhZGQg
bmV3LWxpbmUKKyAgICAgIGRvY3VtZW50XyArPSAnXG4nOworICB9CisgIGRvY3VtZW50XyArPSBp
bmRlbnRTdHJpbmdfOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KGNv
bnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICB3cml0ZUluZGVudCgpOworICBkb2N1bWVudF8g
Kz0gdmFsdWU7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmlu
Z18gKz0gc3RkOjpzdHJpbmcoaW5kZW50U2l6ZV8sICcgJyk7IH0KKwordm9pZCBTdHlsZWRXcml0
ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW50KGluZGVudFN0cmluZ18uc2l6ZSgpKSA+PSBp
bmRlbnRTaXplXyk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmluZ18uc2l6ZSgp
IC0gaW5kZW50U2l6ZV8pOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QmVm
b3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQoY29t
bWVudEJlZm9yZSkpCisgICAgcmV0dXJuOworCisgIGRvY3VtZW50XyArPSAiXG4iOworICB3cml0
ZUluZGVudCgpOworICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVu
dChjb21tZW50QmVmb3JlKTsKKyAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBj
b21tZW50LmJlZ2luKCk7CisgIHdoaWxlIChpdGVyICE9IGNvbW1lbnQuZW5kKCkpIHsKKyAgICBk
b2N1bWVudF8gKz0gKml0ZXI7CisgICAgaWYgKCppdGVyID09ICdcbicgJiYKKyAgICAgICAoaXRl
ciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcvJykpCisgICAgICB3cml0ZUlu
ZGVudCgpOworICAgICsraXRlcjsKKyAgfQorCisgIC8vIENvbW1lbnRzIGFyZSBzdHJpcHBlZCBv
ZiB0cmFpbGluZyBuZXdsaW5lcywgc28gYWRkIG9uZSBoZXJlCisgIGRvY3VtZW50XyArPSAiXG4i
OworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxp
bmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50QWZ0
ZXJPblNhbWVMaW5lKSkKKyAgICBkb2N1bWVudF8gKz0gIiAiICsgcm9vdC5nZXRDb21tZW50KGNv
bW1lbnRBZnRlck9uU2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFm
dGVyKSkgeworICAgIGRvY3VtZW50XyArPSAiXG4iOworICAgIGRvY3VtZW50XyArPSByb290Lmdl
dENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgICBkb2N1bWVudF8gKz0gIlxuIjsKKyAgfQorfQor
Citib29sIFN0eWxlZFdyaXRlcjo6aGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1
ZSkgeworICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSB8fAorICAgICAg
ICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB8fAorICAgICAgICAg
dmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpOworfQorCisvLyBDbGFzcyBTdHlsZWRTdHJl
YW1Xcml0ZXIKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitTdHlsZWRTdHJlYW1Xcml0ZXI6OlN0eWxlZFN0cmVh
bVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbikKKyAgICA6IGRvY3VtZW50XyhOVUxMKSwg
cmlnaHRNYXJnaW5fKDc0KSwgaW5kZW50YXRpb25fKGluZGVudGF0aW9uKSwKKyAgICAgIGFkZENo
aWxkVmFsdWVzXygpIHt9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZShzdGQ6Om9z
dHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgZG9jdW1lbnRfID0gJm91dDsKKyAg
YWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgIGluZGVudFN0cmluZ18gPSAiIjsKKyAgaW5kZW50
ZWRfID0gdHJ1ZTsKKyAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUocm9vdCk7CisgIGlmICghaW5k
ZW50ZWRfKSB3cml0ZUluZGVudCgpOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZVZhbHVl
KHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsKKyAgKmRv
Y3VtZW50XyA8PCAiXG4iOworICBkb2N1bWVudF8gPSBOVUxMOyAvLyBGb3JnZXQgdGhlIHN0cmVh
bSwgZm9yIHNhZmV0eS4KK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUo
Y29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7CisgIGNhc2Ug
bnVsbFZhbHVlOgorICAgIHB1c2hWYWx1ZSgibnVsbCIpOworICAgIGJyZWFrOworICBjYXNlIGlu
dFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgp
KSk7CisgICAgYnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRv
U3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxW
YWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpKSk7Cisg
ICAgYnJlYWs7CisgIGNhc2Ugc3RyaW5nVmFsdWU6CisgIHsKKyAgICAvLyBJcyBOVUxMIHBvc3Np
YmxlIGZvciB2YWx1ZS5zdHJpbmdfPworICAgIGNoYXIgY29uc3QqIHN0cjsKKyAgICBjaGFyIGNv
bnN0KiBlbmQ7CisgICAgYm9vbCBvayA9IHZhbHVlLmdldFN0cmluZygmc3RyLCAmZW5kKTsKKyAg
ICBpZiAob2spIHB1c2hWYWx1ZSh2YWx1ZVRvUXVvdGVkU3RyaW5nTihzdHIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihlbmQtc3RyKSkpOworICAgIGVsc2UgcHVzaFZhbHVlKCIiKTsKKyAgICBicmVh
azsKKyAgfQorICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmlu
Zyh2YWx1ZS5hc0Jvb2woKSkpOworICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6CisgICAg
d3JpdGVBcnJheVZhbHVlKHZhbHVlKTsKKyAgICBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTog
eworICAgIFZhbHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7Cisg
ICAgaWYgKG1lbWJlcnMuZW1wdHkoKSkKKyAgICAgIHB1c2hWYWx1ZSgie30iKTsKKyAgICBlbHNl
IHsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgieyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBW
YWx1ZTo6TWVtYmVyczo6aXRlcmF0b3IgaXQgPSBtZW1iZXJzLmJlZ2luKCk7CisgICAgICBmb3Ig
KDs7KSB7CisgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAgICAgICBj
b25zdCBWYWx1ZSYgY2hpbGRWYWx1ZSA9IHZhbHVlW25hbWVdOworICAgICAgICB3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgd3JpdGVXaXRoSW5kZW50KHZhbHVl
VG9RdW90ZWRTdHJpbmcobmFtZS5jX3N0cigpKSk7CisgICAgICAgICpkb2N1bWVudF8gPDwgIiA6
ICI7CisgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmICgrK2l0ID09
IG1lbWJlcnMuZW5kKCkpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1l
TGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAq
ZG9jdW1lbnRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxp
bmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVudCgpOworICAgICAgd3JpdGVX
aXRoSW5kZW50KCJ9Iik7CisgICAgfQorICB9IGJyZWFrOworICB9Cit9CisKK3ZvaWQgU3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHVu
c2lnbmVkIHNpemUgPSB2YWx1ZS5zaXplKCk7CisgIGlmIChzaXplID09IDApCisgICAgcHVzaFZh
bHVlKCJbXSIpOworICBlbHNlIHsKKyAgICBib29sIGlzQXJyYXlNdWx0aUxpbmUgPSBpc011bHRp
bmVBcnJheSh2YWx1ZSk7CisgICAgaWYgKGlzQXJyYXlNdWx0aUxpbmUpIHsKKyAgICAgIHdyaXRl
V2l0aEluZGVudCgiWyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBib29sIGhhc0NoaWxkVmFs
dWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7CisgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7Cisg
ICAgICBmb3IgKDs7KSB7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVb
aW5kZXhdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGlsZFZhbHVlKTsKKyAg
ICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCisgICAgICAgICAgd3JpdGVXaXRoSW5kZW50KGNoaWxk
VmFsdWVzX1tpbmRleF0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICBpZiAoIWluZGVudGVk
Xykgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSB0cnVlOworICAgICAgICAg
IHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgaW5kZW50ZWRfID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgeworICAgICAgICAgIHdyaXRl
Q29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgICpkb2N1bWVudF8gPDwgIiwiOworICAgICAgICB3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVu
aW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0
cHV0IG9uIGEgc2luZ2xlIGxpbmUKKyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNp
emUoKSA9PSBzaXplKTsKKyAgICAgICpkb2N1bWVudF8gPDwgIlsgIjsKKyAgICAgIGZvciAodW5z
aWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGlu
ZGV4ID4gMCkKKyAgICAgICAgICAqZG9jdW1lbnRfIDw8ICIsICI7CisgICAgICAgICpkb2N1bWVu
dF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKKyAgICAgIH0KKyAgICAgICpkb2N1bWVudF8gPDwg
IiBdIjsKKyAgICB9CisgIH0KK30KKworYm9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGlu
ZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsK
KyAgYm9vbCBpc011bHRpTGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRW
YWx1ZXNfLmNsZWFyKCk7CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFp
c011bHRpTGluZTsgKytpbmRleCkgeworICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFs
dWVbaW5kZXhdOworICAgIGlzTXVsdGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBj
aGlsZFZhbHVlLmlzT2JqZWN0KCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZh
bHVlLnNpemUoKSA+IDApOworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxp
bmUgbGVuZ3RoID4gbWF4IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2
ZShzaXplKTsKKyAgICBhZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIGludCBsaW5lTGVuZ3Ro
ID0gNCArIChzaXplIC0gMSkgKiAyOyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAo
aW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29t
bWVudEZvclZhbHVlKHZhbHVlW2luZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVl
OworICAgICAgfQorICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxl
bmd0aCArPSBpbnQoY2hpbGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFk
ZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwg
bGluZUxlbmd0aCA+PSByaWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOwor
fQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5n
JiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNo
X2JhY2sodmFsdWUpOworICBlbHNlCisgICAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKK30KKwordm9p
ZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KCkgeworICAvLyBibGVwIGludGVuZGVk
IHRoaXMgdG8gbG9vayBhdCB0aGUgc28tZmFyLXdyaXR0ZW4gc3RyaW5nCisgIC8vIHRvIGRldGVy
bWluZSB3aGV0aGVyIHdlIGFyZSBhbHJlYWR5IGluZGVudGVkLCBidXQKKyAgLy8gd2l0aCBhIHN0
cmVhbSB3ZSBjYW5ub3QgZG8gdGhhdC4gU28gd2UgcmVseSBvbiBzb21lIHNhdmVkIHN0YXRlLgor
ICAvLyBUaGUgY2FsbGVyIGNoZWNrcyBpbmRlbnRlZF8uCisgICpkb2N1bWVudF8gPDwgJ1xuJyA8
PCBpbmRlbnRTdHJpbmdfOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRo
SW5kZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBpZiAoIWluZGVudGVkXykgd3Jp
dGVJbmRlbnQoKTsKKyAgKmRvY3VtZW50XyA8PCB2YWx1ZTsKKyAgaW5kZW50ZWRfID0gZmFsc2U7
Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQoKSB7IGluZGVudFN0cmluZ18g
Kz0gaW5kZW50YXRpb25fOyB9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjp1bmluZGVudCgp
IHsKKyAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVudGF0aW9uXy5zaXplKCkp
OworICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudGF0
aW9uXy5zaXplKCkpOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50
QmVmb3JlVmFsdWUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKCFyb290Lmhhc0NvbW1lbnQo
Y29tbWVudEJlZm9yZSkpCisgICAgcmV0dXJuOworCisgIGlmICghaW5kZW50ZWRfKSB3cml0ZUlu
ZGVudCgpOworICBjb25zdCBzdGQ6OnN0cmluZyYgY29tbWVudCA9IHJvb3QuZ2V0Q29tbWVudChj
b21tZW50QmVmb3JlKTsKKyAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBjb21t
ZW50LmJlZ2luKCk7CisgIHdoaWxlIChpdGVyICE9IGNvbW1lbnQuZW5kKCkpIHsKKyAgICAqZG9j
dW1lbnRfIDw8ICppdGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAgKGl0ZXIg
IT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgLy8gd3JpdGVJ
bmRlbnQoKTsgIC8vIHdvdWxkIGluY2x1ZGUgbmV3bGluZQorICAgICAgKmRvY3VtZW50XyA8PCBp
bmRlbnRTdHJpbmdfOworICAgICsraXRlcjsKKyAgfQorICBpbmRlbnRlZF8gPSBmYWxzZTsKK30K
Kwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVM
aW5lKGNvbnN0IFZhbHVlJiByb290KSB7CisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFm
dGVyT25TYW1lTGluZSkpCisgICAgKmRvY3VtZW50XyA8PCAnICcgPDwgcm9vdC5nZXRDb21tZW50
KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVu
dEFmdGVyKSkgeworICAgIHdyaXRlSW5kZW50KCk7CisgICAgKmRvY3VtZW50XyA8PCByb290Lmdl
dENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgfQorICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKwor
Ym9vbCBTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEJlZm9yZSkgfHwKKyAg
ICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkgfHwKKyAgICAg
ICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKK30KKworLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyCisKKy8vLyBTY29wZWQgZW51
bXMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgQysrMTEuCitzdHJ1Y3QgQ29tbWVudFN0eWxlIHsK
KyAgLy8vIERlY2lkZSB3aGV0aGVyIHRvIHdyaXRlIGNvbW1lbnRzLgorICBlbnVtIEVudW0gewor
ICAgIE5vbmUsICAvLy88IERyb3AgYWxsIGNvbW1lbnRzLgorICAgIE1vc3QsICAvLy88IFJlY292
ZXIgb2RkIGJlaGF2aW9yIG9mIHByZXZpb3VzIHZlcnNpb25zIChub3QgaW1wbGVtZW50ZWQgeWV0
KS4KKyAgICBBbGwgIC8vLzwgS2VlcCBhbGwgY29tbWVudHMuCisgIH07Cit9OworCitzdHJ1Y3Qg
QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIgOiBwdWJsaWMgU3RyZWFtV3JpdGVyCit7CisgIEJ1aWx0
U3R5bGVkU3RyZWFtV3JpdGVyKAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIGluZGVudGF0aW9u
LAorICAgICAgQ29tbWVudFN0eWxlOjpFbnVtIGNzLAorICAgICAgc3RkOjpzdHJpbmcgY29uc3Qm
IGNvbG9uU3ltYm9sLAorICAgICAgc3RkOjpzdHJpbmcgY29uc3QmIG51bGxTeW1ib2wsCisgICAg
ICBzdGQ6OnN0cmluZyBjb25zdCYgZW5kaW5nTGluZUZlZWRTeW1ib2wsCisgICAgICBib29sIHVz
ZVNwZWNpYWxGbG9hdHMsCisgICAgICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uKTsKKyAgaW50IHdy
aXRlKFZhbHVlIGNvbnN0JiByb290LCBzdGQ6Om9zdHJlYW0qIHNvdXQpOworcHJpdmF0ZToKKyAg
dm9pZCB3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVBcnJheVZh
bHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSk7CisgIGJvb2wgaXNNdWx0aW5lQXJyYXkoVmFsdWUgY29u
c3QmIHZhbHVlKTsKKyAgdm9pZCBwdXNoVmFsdWUoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKTsK
KyAgdm9pZCB3cml0ZUluZGVudCgpOworICB2b2lkIHdyaXRlV2l0aEluZGVudChzdGQ6OnN0cmlu
ZyBjb25zdCYgdmFsdWUpOworICB2b2lkIGluZGVudCgpOworICB2b2lkIHVuaW5kZW50KCk7Cisg
IHZvaWQgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoVmFsdWUgY29uc3QmIHJvb3QpOworICB2b2lk
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVlIGNvbnN0JiByb290KTsKKyAg
c3RhdGljIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAg
dHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gQ2hpbGRWYWx1ZXM7CisKKyAgQ2hpbGRW
YWx1ZXMgY2hpbGRWYWx1ZXNfOworICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOworICBpbnQg
cmlnaHRNYXJnaW5fOworICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbl87CisgIENvbW1lbnRTdHls
ZTo6RW51bSBjc187CisgIHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9sXzsKKyAgc3RkOjpzdHJpbmcg
bnVsbFN5bWJvbF87CisgIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sXzsKKyAgYm9v
bCBhZGRDaGlsZFZhbHVlc18gOiAxOworICBib29sIGluZGVudGVkXyA6IDE7CisgIGJvb2wgdXNl
U3BlY2lhbEZsb2F0c18gOiAxOworICB1bnNpZ25lZCBpbnQgcHJlY2lzaW9uXzsKK307CitCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjo6QnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCisgICAgICBzdGQ6
OnN0cmluZyBjb25zdCYgaW5kZW50YXRpb24sCisgICAgICBDb21tZW50U3R5bGU6OkVudW0gY3Ms
CisgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgY29sb25TeW1ib2wsCisgICAgICBzdGQ6OnN0cmlu
ZyBjb25zdCYgbnVsbFN5bWJvbCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBlbmRpbmdMaW5l
RmVlZFN5bWJvbCwKKyAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywKKyAgICAgIHVuc2lnbmVk
IGludCBwcmVjaXNpb24pCisgIDogcmlnaHRNYXJnaW5fKDc0KQorICAsIGluZGVudGF0aW9uXyhp
bmRlbnRhdGlvbikKKyAgLCBjc18oY3MpCisgICwgY29sb25TeW1ib2xfKGNvbG9uU3ltYm9sKQor
ICAsIG51bGxTeW1ib2xfKG51bGxTeW1ib2wpCisgICwgZW5kaW5nTGluZUZlZWRTeW1ib2xfKGVu
ZGluZ0xpbmVGZWVkU3ltYm9sKQorICAsIGFkZENoaWxkVmFsdWVzXyhmYWxzZSkKKyAgLCBpbmRl
bnRlZF8oZmFsc2UpCisgICwgdXNlU3BlY2lhbEZsb2F0c18odXNlU3BlY2lhbEZsb2F0cykKKyAg
LCBwcmVjaXNpb25fKHByZWNpc2lvbikKK3sKK30KK2ludCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRl
cjo6d3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVhbSogc291dCkKK3sKKyAgc291
dF8gPSBzb3V0OworICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50ZWRfID0gdHJ1
ZTsKKyAgaW5kZW50U3RyaW5nXyA9ICIiOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShyb290
KTsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGluZGVudGVkXyA9IHRydWU7
CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5l
KHJvb3QpOworICAqc291dF8gPDwgZW5kaW5nTGluZUZlZWRTeW1ib2xfOworICBzb3V0XyA9IE5V
TEw7CisgIHJldHVybiAwOworfQordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVW
YWx1ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1ZS50eXBlKCkpIHsKKyAg
Y2FzZSBudWxsVmFsdWU6CisgICAgcHVzaFZhbHVlKG51bGxTeW1ib2xfKTsKKyAgICBicmVhazsK
KyAgY2FzZSBpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xh
cmdlc3RJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICBwdXNoVmFs
dWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAgICBicmVhazsKKyAg
Y2FzZSByZWFsVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNEb3Vi
bGUoKSwgdXNlU3BlY2lhbEZsb2F0c18sIHByZWNpc2lvbl8pKTsKKyAgICBicmVhazsKKyAgY2Fz
ZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIC8vIElzIE5VTEwgaXMgcG9zc2libGUgZm9yIHZhbHVl
LnN0cmluZ18/CisgICAgY2hhciBjb25zdCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAg
ICBib29sIG9rID0gdmFsdWUuZ2V0U3RyaW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykgcHVz
aFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJpbmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVu
ZC1zdHIpKSk7CisgICAgZWxzZSBwdXNoVmFsdWUoIiIpOworICAgIGJyZWFrOworICB9CisgIGNh
c2UgYm9vbGVhblZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9v
bCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgICB3cml0ZUFycmF5VmFs
dWUodmFsdWUpOworICAgIGJyZWFrOworICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6
Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5nZXRNZW1iZXJOYW1lcygpKTsKKyAgICBpZiAobWVtYmVy
cy5lbXB0eSgpKQorICAgICAgcHVzaFZhbHVlKCJ7fSIpOworICAgIGVsc2UgeworICAgICAgd3Jp
dGVXaXRoSW5kZW50KCJ7Iik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIFZhbHVlOjpNZW1iZXJz
OjppdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsKKyAgICAgIGZvciAoOzspIHsKKyAgICAg
ICAgc3RkOjpzdHJpbmcgY29uc3QmIG5hbWUgPSAqaXQ7CisgICAgICAgIFZhbHVlIGNvbnN0JiBj
aGlsZFZhbHVlID0gdmFsdWVbbmFtZV07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVl
KGNoaWxkVmFsdWUpOworICAgICAgICB3cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmlu
Z04obmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihuYW1lLmxlbmd0aCgpKSkpOwor
ICAgICAgICAqc291dF8gPDwgY29sb25TeW1ib2xfOworICAgICAgICB3cml0ZVZhbHVlKGNoaWxk
VmFsdWUpOworICAgICAgICBpZiAoKytpdCA9PSBtZW1iZXJzLmVuZCgpKSB7CisgICAgICAgICAg
d3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKnNvdXRfIDw8ICIsIjsKKyAgICAgICAgd3JpdGVD
b21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1
bmluZGVudCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ9Iik7CisgICAgfQorICB9IGJyZWFr
OworICB9Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1
ZShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsK
KyAgaWYgKHNpemUgPT0gMCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJv
b2wgaXNNdWx0aUxpbmUgPSAoY3NfID09IENvbW1lbnRTdHlsZTo6QWxsKSB8fCBpc011bHRpbmVB
cnJheSh2YWx1ZSk7CisgICAgaWYgKGlzTXVsdGlMaW5lKSB7CisgICAgICB3cml0ZVdpdGhJbmRl
bnQoIlsiKTsKKyAgICAgIGluZGVudCgpOworICAgICAgYm9vbCBoYXNDaGlsZFZhbHVlID0gIWNo
aWxkVmFsdWVzXy5lbXB0eSgpOworICAgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgICAgZm9y
ICg7OykgeworICAgICAgICBWYWx1ZSBjb25zdCYgY2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsK
KyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlm
IChoYXNDaGlsZFZhbHVlKQorICAgICAgICAgIHdyaXRlV2l0aEluZGVudChjaGlsZFZhbHVlc19b
aW5kZXhdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKCFpbmRlbnRlZF8pIHdyaXRl
SW5kZW50KCk7CisgICAgICAgICAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgICAgICAgICB3cml0ZVZh
bHVlKGNoaWxkVmFsdWUpOworICAgICAgICAgIGluZGVudGVkXyA9IGZhbHNlOworICAgICAgICB9
CisgICAgICAgIGlmICgrK2luZGV4ID09IHNpemUpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRB
ZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICAqc291dF8gPDwgIiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZh
bHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7Cisg
ICAgICB3cml0ZVdpdGhJbmRlbnQoIl0iKTsKKyAgICB9IGVsc2UgLy8gb3V0cHV0IG9uIGEgc2lu
Z2xlIGxpbmUKKyAgICB7CisgICAgICBhc3NlcnQoY2hpbGRWYWx1ZXNfLnNpemUoKSA9PSBzaXpl
KTsKKyAgICAgICpzb3V0XyA8PCAiWyI7CisgICAgICBpZiAoIWluZGVudGF0aW9uXy5lbXB0eSgp
KSAqc291dF8gPDwgIiAiOworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCkgeworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgICpzb3V0
XyA8PCAiLCAiOworICAgICAgICAqc291dF8gPDwgY2hpbGRWYWx1ZXNfW2luZGV4XTsKKyAgICAg
IH0KKyAgICAgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpICpzb3V0XyA8PCAiICI7CisgICAg
ICAqc291dF8gPDwgIl0iOworICAgIH0KKyAgfQorfQorCitib29sIEJ1aWx0U3R5bGVkU3RyZWFt
V3JpdGVyOjppc011bHRpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFsdWUpIHsKKyAgaW50IHNpemUg
PSB2YWx1ZS5zaXplKCk7CisgIGJvb2wgaXNNdWx0aUxpbmUgPSBzaXplICogMyA+PSByaWdodE1h
cmdpbl87CisgIGNoaWxkVmFsdWVzXy5jbGVhcigpOworICBmb3IgKGludCBpbmRleCA9IDA7IGlu
ZGV4IDwgc2l6ZSAmJiAhaXNNdWx0aUxpbmU7ICsraW5kZXgpIHsKKyAgICBWYWx1ZSBjb25zdCYg
Y2hpbGRWYWx1ZSA9IHZhbHVlW2luZGV4XTsKKyAgICBpc011bHRpTGluZSA9ICgoY2hpbGRWYWx1
ZS5pc0FycmF5KCkgfHwgY2hpbGRWYWx1ZS5pc09iamVjdCgpKSAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgY2hpbGRWYWx1ZS5zaXplKCkgPiAwKTsKKyAgfQorICBpZiAoIWlzTXVsdGlMaW5l
KSAvLyBjaGVjayBpZiBsaW5lIGxlbmd0aCA+IG1heCBsaW5lIGxlbmd0aAorICB7CisgICAgY2hp
bGRWYWx1ZXNfLnJlc2VydmUoc2l6ZSk7CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gdHJ1ZTsKKyAg
ICBpbnQgbGluZUxlbmd0aCA9IDQgKyAoc2l6ZSAtIDEpICogMjsgLy8gJ1sgJyArICcsICcqbiAr
ICcgXScKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRleCkgewor
ICAgICAgaWYgKGhhc0NvbW1lbnRGb3JWYWx1ZSh2YWx1ZVtpbmRleF0pKSB7CisgICAgICAgIGlz
TXVsdGlMaW5lID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhd
KTsKKyAgICAgIGxpbmVMZW5ndGggKz0gaW50KGNoaWxkVmFsdWVzX1tpbmRleF0ubGVuZ3RoKCkp
OworICAgIH0KKyAgICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgICBpc011bHRpTGluZSA9
IGlzTXVsdGlMaW5lIHx8IGxpbmVMZW5ndGggPj0gcmlnaHRNYXJnaW5fOworICB9CisgIHJldHVy
biBpc011bHRpTGluZTsKK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6cHVzaFZh
bHVlKHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgeworICBpZiAoYWRkQ2hpbGRWYWx1ZXNfKQor
ICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNlCisgICAgKnNvdXRfIDw8
IHZhbHVlOworfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUluZGVudCgp
IHsKKyAgLy8gYmxlcCBpbnRlbmRlZCB0aGlzIHRvIGxvb2sgYXQgdGhlIHNvLWZhci13cml0dGVu
IHN0cmluZworICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgYWxyZWFkeSBpbmRlbnRl
ZCwgYnV0CisgIC8vIHdpdGggYSBzdHJlYW0gd2UgY2Fubm90IGRvIHRoYXQuIFNvIHdlIHJlbHkg
b24gc29tZSBzYXZlZCBzdGF0ZS4KKyAgLy8gVGhlIGNhbGxlciBjaGVja3MgaW5kZW50ZWRfLgor
CisgIGlmICghaW5kZW50YXRpb25fLmVtcHR5KCkpIHsKKyAgICAvLyBJbiB0aGlzIGNhc2UsIGRy
b3AgbmV3bGluZXMgdG9vLgorICAgICpzb3V0XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187Cisg
IH0KK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KHN0
ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSkgeworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQo
KTsKKyAgKnNvdXRfIDw8IHZhbHVlOworICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKwordm9pZCBC
dWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6aW5kZW50KCkgeyBpbmRlbnRTdHJpbmdfICs9IGluZGVu
dGF0aW9uXzsgfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp1bmluZGVudCgpIHsK
KyAgYXNzZXJ0KGluZGVudFN0cmluZ18uc2l6ZSgpID49IGluZGVudGF0aW9uXy5zaXplKCkpOwor
ICBpbmRlbnRTdHJpbmdfLnJlc2l6ZShpbmRlbnRTdHJpbmdfLnNpemUoKSAtIGluZGVudGF0aW9u
Xy5zaXplKCkpOworfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1l
bnRCZWZvcmVWYWx1ZShWYWx1ZSBjb25zdCYgcm9vdCkgeworICBpZiAoY3NfID09IENvbW1lbnRT
dHlsZTo6Tm9uZSkgcmV0dXJuOworICBpZiAoIXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3Jl
KSkKKyAgICByZXR1cm47CisKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGNv
bnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUp
OworICBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsK
KyAgd2hpbGUgKGl0ZXIgIT0gY29tbWVudC5lbmQoKSkgeworICAgICpzb3V0XyA8PCAqaXRlcjsK
KyAgICBpZiAoKml0ZXIgPT0gJ1xuJyAmJgorICAgICAgIChpdGVyICE9IGNvbW1lbnQuZW5kKCkg
JiYgKihpdGVyICsgMSkgPT0gJy8nKSkKKyAgICAgIC8vIHdyaXRlSW5kZW50KCk7ICAvLyB3b3Vs
ZCB3cml0ZSBleHRyYSBuZXdsaW5lCisgICAgICAqc291dF8gPDwgaW5kZW50U3RyaW5nXzsKKyAg
ICArK2l0ZXI7CisgIH0KKyAgaW5kZW50ZWRfID0gZmFsc2U7Cit9CisKK3ZvaWQgQnVpbHRTdHls
ZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKFZhbHVlIGNv
bnN0JiByb290KSB7CisgIGlmIChjc18gPT0gQ29tbWVudFN0eWxlOjpOb25lKSByZXR1cm47Cisg
IGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSkpCisgICAgKnNvdXRf
IDw8ICIgIiArIHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKTsKKworICBp
ZiAocm9vdC5oYXNDb21tZW50KGNvbW1lbnRBZnRlcikpIHsKKyAgICB3cml0ZUluZGVudCgpOwor
ICAgICpzb3V0XyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyKTsKKyAgfQorfQorCisv
LyBzdGF0aWMKK2Jvb2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6Omhhc0NvbW1lbnRGb3JWYWx1
ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgcmV0dXJuIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVu
dEJlZm9yZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyT25TYW1l
TGluZSkgfHwKKyAgICAgICAgIHZhbHVlLmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKTsKK30KKwor
Ly8vLy8vLy8vLy8vLy8vCisvLyBTdHJlYW1Xcml0ZXIKKworU3RyZWFtV3JpdGVyOjpTdHJlYW1X
cml0ZXIoKQorICAgIDogc291dF8oTlVMTCkKK3sKK30KK1N0cmVhbVdyaXRlcjo6flN0cmVhbVdy
aXRlcigpCit7Cit9CitTdHJlYW1Xcml0ZXI6OkZhY3Rvcnk6On5GYWN0b3J5KCkKK3t9CitTdHJl
YW1Xcml0ZXJCdWlsZGVyOjpTdHJlYW1Xcml0ZXJCdWlsZGVyKCkKK3sKKyAgc2V0RGVmYXVsdHMo
JnNldHRpbmdzXyk7Cit9CitTdHJlYW1Xcml0ZXJCdWlsZGVyOjp+U3RyZWFtV3JpdGVyQnVpbGRl
cigpCit7fQorU3RyZWFtV3JpdGVyKiBTdHJlYW1Xcml0ZXJCdWlsZGVyOjpuZXdTdHJlYW1Xcml0
ZXIoKSBjb25zdAoreworICBzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9IHNldHRpbmdzX1siaW5k
ZW50YXRpb24iXS5hc1N0cmluZygpOworICBzdGQ6OnN0cmluZyBjc19zdHIgPSBzZXR0aW5nc19b
ImNvbW1lbnRTdHlsZSJdLmFzU3RyaW5nKCk7CisgIGJvb2wgZXljID0gc2V0dGluZ3NfWyJlbmFi
bGVZQU1MQ29tcGF0aWJpbGl0eSJdLmFzQm9vbCgpOworICBib29sIGRucCA9IHNldHRpbmdzX1si
ZHJvcE51bGxQbGFjZWhvbGRlcnMiXS5hc0Jvb2woKTsKKyAgYm9vbCB1c2YgPSBzZXR0aW5nc19b
InVzZVNwZWNpYWxGbG9hdHMiXS5hc0Jvb2woKTsgCisgIHVuc2lnbmVkIGludCBwcmUgPSBzZXR0
aW5nc19bInByZWNpc2lvbiJdLmFzVUludCgpOworICBDb21tZW50U3R5bGU6OkVudW0gY3MgPSBD
b21tZW50U3R5bGU6OkFsbDsKKyAgaWYgKGNzX3N0ciA9PSAiQWxsIikgeworICAgIGNzID0gQ29t
bWVudFN0eWxlOjpBbGw7CisgIH0gZWxzZSBpZiAoY3Nfc3RyID09ICJOb25lIikgeworICAgIGNz
ID0gQ29tbWVudFN0eWxlOjpOb25lOworICB9IGVsc2UgeworICAgIHRocm93UnVudGltZUVycm9y
KCJjb21tZW50U3R5bGUgbXVzdCBiZSAnQWxsJyBvciAnTm9uZSciKTsKKyAgfQorICBzdGQ6OnN0
cmluZyBjb2xvblN5bWJvbCA9ICIgOiAiOworICBpZiAoZXljKSB7CisgICAgY29sb25TeW1ib2wg
PSAiOiAiOworICB9IGVsc2UgaWYgKGluZGVudGF0aW9uLmVtcHR5KCkpIHsKKyAgICBjb2xvblN5
bWJvbCA9ICI6IjsKKyAgfQorICBzdGQ6OnN0cmluZyBudWxsU3ltYm9sID0gIm51bGwiOworICBp
ZiAoZG5wKSB7CisgICAgbnVsbFN5bWJvbCA9ICIiOworICB9CisgIGlmIChwcmUgPiAxNykgcHJl
ID0gMTc7CisgIHN0ZDo6c3RyaW5nIGVuZGluZ0xpbmVGZWVkU3ltYm9sID0gIiI7CisgIHJldHVy
biBuZXcgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCisgICAgICBpbmRlbnRhdGlvbiwgY3MsCisg
ICAgICBjb2xvblN5bWJvbCwgbnVsbFN5bWJvbCwgZW5kaW5nTGluZUZlZWRTeW1ib2wsIHVzZiwg
cHJlKTsKK30KK3N0YXRpYyB2b2lkIGdldFZhbGlkV3JpdGVyS2V5cyhzdGQ6OnNldDxzdGQ6OnN0
cmluZz4qIHZhbGlkX2tleXMpCit7CisgIHZhbGlkX2tleXMtPmNsZWFyKCk7CisgIHZhbGlkX2tl
eXMtPmluc2VydCgiaW5kZW50YXRpb24iKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJjb21tZW50
U3R5bGUiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSIp
OworICB2YWxpZF9rZXlzLT5pbnNlcnQoImRyb3BOdWxsUGxhY2Vob2xkZXJzIik7CisgIHZhbGlk
X2tleXMtPmluc2VydCgidXNlU3BlY2lhbEZsb2F0cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQo
InByZWNpc2lvbiIpOworfQorYm9vbCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjp2YWxpZGF0ZShKc29u
OjpWYWx1ZSogaW52YWxpZCkgY29uc3QKK3sKKyAgSnNvbjo6VmFsdWUgbXlfaW52YWxpZDsKKyAg
aWYgKCFpbnZhbGlkKSBpbnZhbGlkID0gJm15X2ludmFsaWQ7ICAvLyBzbyB3ZSBkbyBub3QgbmVl
ZCB0byB0ZXN0IGZvciBOVUxMCisgIEpzb246OlZhbHVlJiBpbnYgPSAqaW52YWxpZDsKKyAgc3Rk
OjpzZXQ8c3RkOjpzdHJpbmc+IHZhbGlkX2tleXM7CisgIGdldFZhbGlkV3JpdGVyS2V5cygmdmFs
aWRfa2V5cyk7CisgIFZhbHVlOjpNZW1iZXJzIGtleXMgPSBzZXR0aW5nc18uZ2V0TWVtYmVyTmFt
ZXMoKTsKKyAgc2l6ZV90IG4gPSBrZXlzLnNpemUoKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBuOyArK2kpIHsKKyAgICBzdGQ6OnN0cmluZyBjb25zdCYga2V5ID0ga2V5c1tpXTsKKyAgICBp
ZiAodmFsaWRfa2V5cy5maW5kKGtleSkgPT0gdmFsaWRfa2V5cy5lbmQoKSkgeworICAgICAgaW52
W2tleV0gPSBzZXR0aW5nc19ba2V5XTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIDB1ID09IGludi5z
aXplKCk7Cit9CitWYWx1ZSYgU3RyZWFtV3JpdGVyQnVpbGRlcjo6b3BlcmF0b3JbXShzdGQ6OnN0
cmluZyBrZXkpCit7CisgIHJldHVybiBzZXR0aW5nc19ba2V5XTsKK30KKy8vIHN0YXRpYwordm9p
ZCBTdHJlYW1Xcml0ZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0dGluZ3Mp
Cit7CisgIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRlckRlZmF1bHRzXQorICAoKnNldHRpbmdzKVsi
Y29tbWVudFN0eWxlIl0gPSAiQWxsIjsKKyAgKCpzZXR0aW5ncylbImluZGVudGF0aW9uIl0gPSAi
XHQiOworICAoKnNldHRpbmdzKVsiZW5hYmxlWUFNTENvbXBhdGliaWxpdHkiXSA9IGZhbHNlOwor
ICAoKnNldHRpbmdzKVsiZHJvcE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICAoKnNldHRp
bmdzKVsidXNlU3BlY2lhbEZsb2F0cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJwcmVjaXNp
b24iXSA9IDE3OworICAvLyEgW1N0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0c10KK30KKworc3Rk
OjpzdHJpbmcgd3JpdGVTdHJpbmcoU3RyZWFtV3JpdGVyOjpGYWN0b3J5IGNvbnN0JiBidWlsZGVy
LCBWYWx1ZSBjb25zdCYgcm9vdCkgeworICBzdGQ6Om9zdHJpbmdzdHJlYW0gc291dDsKKyAgU3Ry
ZWFtV3JpdGVyUHRyIGNvbnN0IHdyaXRlcihidWlsZGVyLm5ld1N0cmVhbVdyaXRlcigpKTsKKyAg
d3JpdGVyLT53cml0ZShyb290LCAmc291dCk7CisgIHJldHVybiBzb3V0LnN0cigpOworfQorCitz
dGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBzb3V0LCBWYWx1ZSBjb25zdCYg
cm9vdCkgeworICBTdHJlYW1Xcml0ZXJCdWlsZGVyIGJ1aWxkZXI7CisgIFN0cmVhbVdyaXRlclB0
ciBjb25zdCB3cml0ZXIoYnVpbGRlci5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgIHdyaXRlci0+d3Jp
dGUocm9vdCwgJnNvdXQpOworICByZXR1cm4gc291dDsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNv
bgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBzcmMvbGli
X2pzb24vanNvbl93cml0ZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29wZW52cl9hcGlfcHVibGljLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMzk2ZTY3NzIyZjM2OTQ3MDRkM2RhYjdhM2RlYWJmYTc2OWE0NzlhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1Ymxp
Yy5jcHAKQEAgLTAsMCArMSwyOTggQEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jw
b3JhdGlvbiA9PT09PT09PT09PT0vLworI2RlZmluZSBWUl9BUElfRVhQT1JUIDEKKyNpbmNsdWRl
ICJvcGVudnIuaCIKKyNpbmNsdWRlICJpdnJjbGllbnRjb3JlLmgiCisjaW5jbHVkZSAicGF0aHRv
b2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgInNoYXJlZGxpYnRvb2xzX3B1YmxpYy5oIgorI2luY2x1
ZGUgImVudnZhcnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgImhtZGVycm9yc19wdWJsaWMuaCIK
KyNpbmNsdWRlICJ2cnBhdGhyZWdpc3RyeV9wdWJsaWMuaCIKKyNpbmNsdWRlIDxtdXRleD4KKwor
dXNpbmcgdnI6OkVWUkluaXRFcnJvcjsKK3VzaW5nIHZyOjpJVlJTeXN0ZW07Cit1c2luZyB2cjo6
SVZSQ2xpZW50Q29yZTsKK3VzaW5nIHZyOjpWUkluaXRFcnJvcl9Ob25lOworCituYW1lc3BhY2Ug
dnIKK3sKKworc3RhdGljIHZvaWQgKmdfcFZSTW9kdWxlID0gTlVMTDsKK3N0YXRpYyBJVlJDbGll
bnRDb3JlICpnX3BIbWRTeXN0ZW0gPSBOVUxMOworc3RhdGljIHN0ZDo6cmVjdXJzaXZlX211dGV4
IGdfbXV0ZXhTeXN0ZW07CisKKwordHlwZWRlZiB2b2lkKiAoKlZSQ2xpZW50Q29yZUZhY3RvcnlG
bikoY29uc3QgY2hhciAqcEludGVyZmFjZU5hbWUsIGludCAqcFJldHVybkNvZGUpOworCitzdGF0
aWMgdWludDMyX3QgZ19uVlJUb2tlbiA9IDA7CisKK3VpbnQzMl90IFZSX0dldEluaXRUb2tlbigp
Cit7CisgICAgICAgcmV0dXJuIGdfblZSVG9rZW47Cit9CisKK0VWUkluaXRFcnJvciBWUl9Mb2Fk
SG1kU3lzdGVtSW50ZXJuYWwoKTsKK3ZvaWQgQ2xlYW51cEludGVybmFsSW50ZXJmYWNlcygpOwor
CisKK3VpbnQzMl90IFZSX0luaXRJbnRlcm5hbDIoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgdnI6
OkVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1
cEluZm8gKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4g
bG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgRVZSSW5pdEVycm9yIGVyciA9IFZSX0xv
YWRIbWRTeXN0ZW1JbnRlcm5hbCgpOworICAgICAgIGlmICggZXJyID09IHZyOjpWUkluaXRFcnJv
cl9Ob25lICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGVyciA9IGdfcEhtZFN5c3RlbS0+SW5p
dCggZUFwcGxpY2F0aW9uVHlwZSwgcFN0YXJ0dXBJbmZvICk7CisgICAgICAgfQorCisgICAgICAg
aWYgKCBwZUVycm9yICkKKyAgICAgICAgICAgICAgKnBlRXJyb3IgPSBlcnI7CisKKyAgICAgICBp
ZiAoIGVyciAhPSBWUkluaXRFcnJvcl9Ob25lICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNo
YXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxlICk7CisgICAgICAgICAgICAgIGdfcEhtZFN5c3Rl
bSA9IE5VTEw7CisgICAgICAgICAgICAgIGdfcFZSTW9kdWxlID0gTlVMTDsKKworICAgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gKytnX25WUlRva2VuOwor
fQorCitWUl9JTlRFUkZBQ0UgdWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfSW5pdEludGVybmFsKCBF
VlJJbml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBl
ICk7CisKK3VpbnQzMl90IFZSX0luaXRJbnRlcm5hbCggRVZSSW5pdEVycm9yICpwZUVycm9yLCB2
cjo6RVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUgKQoreworICAgICAgIHJldHVy
biBWUl9Jbml0SW50ZXJuYWwyKCBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlLCBudWxscHRyICk7
Cit9CisKK3ZvaWQgVlJfU2h1dGRvd25JbnRlcm5hbCgpCit7CisgICAgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisgICAgICAg
CisgICAgICAgaWYgKCBnX3BIbWRTeXN0ZW0gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZ19w
SG1kU3lzdGVtLT5DbGVhbnVwKCk7CisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbSA9IE5VTEw7
CisgICAgICAgfQorICAgICAgIGlmICggZ19wVlJNb2R1bGUgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgU2hhcmVkTGliX1VubG9hZCggZ19wVlJNb2R1bGUgKTsKKyAgICAgICAgICAgICAgZ19w
VlJNb2R1bGUgPSBOVUxMOworICAgICAgIH0KKworI2lmICFkZWZpbmVkKCBWUl9BUElfUFVCTElD
ICkKKyAgICAgICBDbGVhbnVwSW50ZXJuYWxJbnRlcmZhY2VzKCk7CisjZW5kaWYKKworICAgICAg
ICsrZ19uVlJUb2tlbjsKK30KKworRVZSSW5pdEVycm9yIFZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5h
bCgpCit7CisgICAgICAgc3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRoLCBzQ29uZmlnUGF0aCwgc0xv
Z1BhdGg7CisKKyAgICAgICBib29sIGJSZWFkUGF0aFJlZ2lzdHJ5ID0gQ1ZSUGF0aFJlZ2lzdHJ5
X1B1YmxpYzo6R2V0UGF0aHMoICZzUnVudGltZVBhdGgsICZzQ29uZmlnUGF0aCwgJnNMb2dQYXRo
LCBOVUxMLCBOVUxMICk7CisgICAgICAgaWYoICFiUmVhZFBhdGhSZWdpc3RyeSApCisgICAgICAg
eworICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5
Tm90Rm91bmQ7CisgICAgICAgfQorCisgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBn
b2luZyB0byBsb29rIGZvciB2cmNsaWVudC5kbGwKKyAgICAgICAvLyBzZWUgaWYgdGhlIHNwZWNp
ZmllZCBwYXRoIGFjdHVhbGx5IGV4aXN0cy4KKyAgICAgICBpZiggIVBhdGhfSXNEaXJlY3Rvcnko
IHNSdW50aW1lUGF0aCApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJ
bml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICAv
LyBCZWNhdXNlIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gc2VsZWN0IGRlYnVnIHZzLiByZWxlYXNl
IHlldCB3ZSdsbCBqdXN0CisgICAgICAgLy8gdXNlIGRlYnVnIGlmIGl0J3MgdGhlcmUKKyNpZiBk
ZWZpbmVkKCBMSU5VWDY0ICkKKyAgICAgICBzdGQ6OnN0cmluZyBzVGVzdFBhdGggPSBQYXRoX0pv
aW4oIHNSdW50aW1lUGF0aCwgImJpbiIsIFBMQVRTVUJESVIgKTsKKyNlbHNlCisgICAgICAgc3Rk
OjpzdHJpbmcgc1Rlc3RQYXRoID0gUGF0aF9Kb2luKCBzUnVudGltZVBhdGgsICJiaW4iICk7Cisj
ZW5kaWYKKyAgICAgICBpZiggIVBhdGhfSXNEaXJlY3RvcnkoIHNUZXN0UGF0aCApICkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9JbnN0YWxsYXRp
b25Db3JydXB0OworICAgICAgIH0KKworI2lmIGRlZmluZWQoIFdJTjY0ICkKKyAgICAgICBzdGQ6
OnN0cmluZyBzRExMUGF0aCA9IFBhdGhfSm9pbiggc1Rlc3RQYXRoLCAidnJjbGllbnRfeDY0IiBE
WU5BTUlDX0xJQl9FWFQgKTsKKyNlbHNlCisgICAgICAgc3RkOjpzdHJpbmcgc0RMTFBhdGggPSBQ
YXRoX0pvaW4oIHNUZXN0UGF0aCwgInZyY2xpZW50IiBEWU5BTUlDX0xJQl9FWFQgKTsKKyNlbmRp
ZgorCisgICAgICAgLy8gb25seSBsb29rIGluIHRoZSBvdmVycmlkZQorICAgICAgIHZvaWQgKnBN
b2QgPSBTaGFyZWRMaWJfTG9hZCggc0RMTFBhdGguY19zdHIoKSApOworICAgICAgIC8vIG5vdGhp
bmcgbW9yZSB0byBkbyBpZiB3ZSBjYW4ndCBsb2FkIHRoZSBETEwKKyAgICAgICBpZiggIXBNb2Qg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X1ZS
Q2xpZW50RExMTm90Rm91bmQ7CisgICAgICAgfQorCisgICAgICAgVlJDbGllbnRDb3JlRmFjdG9y
eUZuIGZuRmFjdG9yeSA9ICggVlJDbGllbnRDb3JlRmFjdG9yeUZuICkoIFNoYXJlZExpYl9HZXRG
dW5jdGlvbiggcE1vZCwgIlZSQ2xpZW50Q29yZUZhY3RvcnkiICkgKTsKKyAgICAgICBpZiggIWZu
RmFjdG9yeSApCisgICAgICAgeworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBwTW9k
ICk7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90
Rm91bmQ7CisgICAgICAgfQorCisgICAgICAgaW50IG5SZXR1cm5Db2RlID0gMDsKKyAgICAgICBn
X3BIbWRTeXN0ZW0gPSBzdGF0aWNfY2FzdDwgSVZSQ2xpZW50Q29yZSAqID4gKCBmbkZhY3Rvcnko
IHZyOjpJVlJDbGllbnRDb3JlX1ZlcnNpb24sICZuUmV0dXJuQ29kZSApICk7CisgICAgICAgaWYo
ICFnX3BIbWRTeXN0ZW0gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9h
ZCggcE1vZCApOworICAgICAgICAgICAgICByZXR1cm4gdnI6OlZSSW5pdEVycm9yX0luaXRfSW50
ZXJmYWNlTm90Rm91bmQ7CisgICAgICAgfQorCisgICAgICAgZ19wVlJNb2R1bGUgPSBwTW9kOwor
ICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Ob25lOworfQorCisKK3ZvaWQgKlZSX0dldEdlbmVy
aWNJbnRlcmZhY2UoY29uc3QgY2hhciAqcGNoSW50ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9y
ICpwZUVycm9yKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRl
eD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYgKCFnX3BIbWRTeXN0ZW0pCisg
ICAgICAgeworICAgICAgICAgICAgICBpZiAocGVFcnJvcikKKyAgICAgICAgICAgICAgICAgICAg
ICpwZUVycm9yID0gdnI6OlZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQ7CisgICAgICAg
ICAgICAgIHJldHVybiBOVUxMOworICAgICAgIH0KKworICAgICAgIHJldHVybiBnX3BIbWRTeXN0
ZW0tPkdldEdlbmVyaWNJbnRlcmZhY2UocGNoSW50ZXJmYWNlVmVyc2lvbiwgcGVFcnJvcik7Cit9
CisKK2Jvb2wgVlJfSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoY29uc3QgY2hhciAqcGNoSW50ZXJm
YWNlVmVyc2lvbikKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0
ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmICghZ19wSG1kU3lzdGVtKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAg
IHJldHVybiBnX3BIbWRTeXN0ZW0tPklzSW50ZXJmYWNlVmVyc2lvblZhbGlkKHBjaEludGVyZmFj
ZVZlcnNpb24pID09IFZSSW5pdEVycm9yX05vbmU7Cit9CisKK2Jvb2wgVlJfSXNIbWRQcmVzZW50
KCkKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2so
IGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmKCBnX3BIbWRTeXN0ZW0gKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgLy8gaWYgd2UncmUgYWxyZWFkeSBpbml0aWFsaXplZCwganVzdCBjYWxs
IHRocm91Z2gKKyAgICAgICAgICAgICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+QklzSG1kUHJlc2Vu
dCgpOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAgICAvLyBv
dGhlcndpc2Ugd2UgbmVlZCB0byBkbyBhIGJpdCBtb3JlIHdvcmsKKyAgICAgICAgICAgICAgRVZS
SW5pdEVycm9yIGVyciA9IFZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCgpOworICAgICAgICAgICAg
ICBpZiggZXJyICE9IFZSSW5pdEVycm9yX05vbmUgKQorICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgICAgICAgIGJvb2wgYkhhc0htZCA9IGdfcEhtZFN5c3RlbS0+
QklzSG1kUHJlc2VudCgpOworCisgICAgICAgICAgICAgIGdfcEhtZFN5c3RlbSA9IE5VTEw7Cisg
ICAgICAgICAgICAgIFNoYXJlZExpYl9VbmxvYWQoIGdfcFZSTW9kdWxlICk7CisgICAgICAgICAg
ICAgIGdfcFZSTW9kdWxlID0gTlVMTDsKKworICAgICAgICAgICAgICByZXR1cm4gYkhhc0htZDsK
KyAgICAgICB9Cit9CisKKy8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIE9wZW5WUiBydW50aW1lIGlz
IGluc3RhbGxlZC4gKi8KK2Jvb2wgVlJfSXNSdW50aW1lSW5zdGFsbGVkKCkKK3sKKyAgICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0g
KTsKKworICAgICAgIGlmKCBnX3BIbWRTeXN0ZW0gKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Ly8gaWYgd2UncmUgYWxyZWFkeSBpbml0aWFsaXplZCwgT3BlblZSIGlzIG9idmlvdXNseSBpbnN0
YWxsZWQKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgfQorICAgICAgIGVsc2UK
KyAgICAgICB7CisgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0
IG1vcmUgd29yaworICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzUnVudGltZVBhdGgsIHNDb25m
aWdQYXRoLCBzTG9nUGF0aDsKKworICAgICAgICAgICAgICBib29sIGJSZWFkUGF0aFJlZ2lzdHJ5
ID0gQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UGF0aHMoICZzUnVudGltZVBhdGgsICZzQ29u
ZmlnUGF0aCwgJnNMb2dQYXRoLCBOVUxMLCBOVUxMICk7CisgICAgICAgICAgICAgIGlmKCAhYlJl
YWRQYXRoUmVnaXN0cnkgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBmaWd1cmUg
b3V0IHdoZXJlIHdlJ3JlIGdvaW5nIHRvIGxvb2sgZm9yIHZyY2xpZW50LmRsbAorICAgICAgICAg
ICAgICAvLyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVhbGx5IGV4aXN0cy4KKyAgICAg
ICAgICAgICAgaWYoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGggKSApCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIC8vIHRoZSBpbnN0YWxsYXRpb24gbWF5IGJlIGNvcnJ1cHQg
aW4gc29tZSB3YXksIGJ1dCBpdCBjZXJ0YWlubHkgbG9va3MgaW5zdGFsbGVkCisgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgIH0KK30KKworCisvKiogUmV0dXJucyB3aGVyZSBPcGVu
VlIgcnVudGltZSBpcyBpbnN0YWxsZWQuICovCitjb25zdCBjaGFyICpWUl9SdW50aW1lUGF0aCgp
Cit7CisgICAgICAgLy8gb3RoZXJ3aXNlIHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3b3JrCisg
ICAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIHNSdW50aW1lUGF0aDsKKyAgICAgICBzdGQ6OnN0cmlu
ZyBzQ29uZmlnUGF0aCwgc0xvZ1BhdGg7CisKKyAgICAgICBib29sIGJSZWFkUGF0aFJlZ2lzdHJ5
ID0gQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UGF0aHMoICZzUnVudGltZVBhdGgsICZzQ29u
ZmlnUGF0aCwgJnNMb2dQYXRoLCBOVUxMLCBOVUxMICk7CisgICAgICAgaWYgKCAhYlJlYWRQYXRo
UmVnaXN0cnkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgfQorCisgICAgICAgLy8gZmlndXJlIG91dCB3aGVyZSB3ZSdyZSBnb2luZyB0byBsb29rIGZv
ciB2cmNsaWVudC5kbGwKKyAgICAgICAvLyBzZWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGFjdHVh
bGx5IGV4aXN0cy4KKyAgICAgICBpZiAoICFQYXRoX0lzRGlyZWN0b3J5KCBzUnVudGltZVBhdGgg
KSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICB9CisK
KyAgICAgICByZXR1cm4gc1J1bnRpbWVQYXRoLmNfc3RyKCk7Cit9CisKKworLyoqIFJldHVybnMg
dGhlIHN5bWJvbCB2ZXJzaW9uIG9mIGFuIEhNRCBlcnJvci4gKi8KK2NvbnN0IGNoYXIgKlZSX0dl
dFZSSW5pdEVycm9yQXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApCit7CisgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7
CisKKyAgICAgICBpZiggZ19wSG1kU3lzdGVtICkKKyAgICAgICAgICAgICAgcmV0dXJuIGdfcEht
ZFN5c3RlbS0+R2V0SURGb3JWUkluaXRFcnJvciggZXJyb3IgKTsKKyAgICAgICBlbHNlCisgICAg
ICAgICAgICAgIHJldHVybiBHZXRJREZvclZSSW5pdEVycm9yKCBlcnJvciApOworfQorCisKKy8q
KiBSZXR1cm5zIHRoZSBlbmdsaXNoIHN0cmluZyB2ZXJzaW9uIG9mIGFuIEhNRCBlcnJvci4gKi8K
K2NvbnN0IGNoYXIgKlZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUklu
aXRFcnJvciBlcnJvciApCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6cmVjdXJzaXZl
X211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBpZiAoIGdfcEhtZFN5c3Rl
bSApCisgICAgICAgICAgICAgIHJldHVybiBnX3BIbWRTeXN0ZW0tPkdldEVuZ2xpc2hTdHJpbmdG
b3JIbWRFcnJvciggZXJyb3IgKTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBH
ZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIGVycm9yICk7Cit9CisKKworVlJfSU5URVJGQUNF
IGNvbnN0IGNoYXIgKlZSX0NBTExUWVBFIFZSX0dldFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZS
SW5pdEVycm9yIGVycm9yICk7CisKKy8qKiBSZXR1cm5zIHRoZSBlbmdsaXNoIHN0cmluZyB2ZXJz
aW9uIG9mIGFuIEhNRCBlcnJvci4gKi8KK2NvbnN0IGNoYXIgKlZSX0dldFN0cmluZ0ZvckhtZEVy
cm9yKCBFVlJJbml0RXJyb3IgZXJyb3IgKQoreworICAgICAgIHJldHVybiBWUl9HZXRWUkluaXRF
cnJvckFzRW5nbGlzaERlc2NyaXB0aW9uKCBlcnJvciApOworfQorCit9CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGlydG9vbHNfcHVibGlj
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42OGJkMjNkNDBlZTQ5ZjQwODBmNzFiMjY2MDMzZDY0ZGExY2ZlZmMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9kaXJ0b29sc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJkaXJ0b29s
c19wdWJsaWMuaCIKKyNpbmNsdWRlICJzdHJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJwYXRo
dG9vbHNfcHVibGljLmgiCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0cmluZy5o
PgorCisjaWZkZWYgX1dJTjMyCisjaW5jbHVkZSAid2luZG93cy5oIgorI2Vsc2UKKyNpbmNsdWRl
IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Cisj
aW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoIE9TWCApCisjaW5j
bHVkZSA8c3lzL3N5c2xpbWl0cy5oPgorI2VuZGlmCisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gUHVycG9zZTogdXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgZGlycyAmIHN1YmRpcnMK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgQkNyZWF0ZURpcmVjdG9yeVJlY3Vyc2l2ZSgg
Y29uc3QgY2hhciAqcGNoUGF0aCApCit7CisgICAgICAgLy8gRG9lcyBpdCBhbHJlYWR5IGV4aXN0
PworICAgICAgIGlmICggUGF0aF9Jc0RpcmVjdG9yeSggcGNoUGF0aCApICkKKyAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAvLyBjb3B5IHRoZSBwYXRoIGludG8gc29tZXRoaW5n
IHdlIGNhbiBtdW5nZQorICAgICAgIGludCBsZW4gPSAoaW50KXN0cmxlbiggcGNoUGF0aCApOwor
ICAgICAgIGNoYXIgKnBhdGggPSAoY2hhciAqKW1hbGxvYyggbGVuICsgMSApOworICAgICAgIHN0
cmNweSggcGF0aCwgcGNoUGF0aCApOworCisgICAgICAgLy8gV2FsayBiYWNrd2FyZHMgdG8gZmly
c3Qgbm9uLWV4aXN0aW5nIGRpciB0aGF0IHdlIGZpbmQKKyAgICAgICBjaGFyICpzID0gcGF0aCAr
IGxlbiAtIDE7CisKKyAgICAgICBjb25zdCBjaGFyIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOwor
ICAgICAgIHdoaWxlICggcyA+IHBhdGggKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCAq
cyA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpzID0g
J1wwJzsKKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgYkV4aXN0cyA9IFBhdGhfSXNEaXJlY3Rv
cnkoIHBhdGggKTsKKyAgICAgICAgICAgICAgICAgICAgICpzID0gc2xhc2g7CisKKyAgICAgICAg
ICAgICAgICAgICAgIGlmICggYkV4aXN0cyApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKytzOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIC0tczsKKyAgICAgICB9CisKKyAgICAgICAvLyBhbmQgdGhlbiBtb3ZlIGZvcndhcmRz
IGZyb20gdGhlcmUKKworICAgICAgIHdoaWxlICggKnMgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgaWYgKCAqcyA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICpzID0gJ1wwJzsKKyAgICAgICAgICAgICAgICAgICAgIEJDcmVhdGVEaXJlY3RvcnkoIHBh
dGggKTsKKyAgICAgICAgICAgICAgICAgICAgICpzID0gc2xhc2g7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgcysrOworICAgICAgIH0KKworICAgICAgIGJvb2wgYlJldFZhbCA9IEJD
cmVhdGVEaXJlY3RvcnkoIHBhdGggKTsKKyAgICAgICBmcmVlKCBwYXRoICk7CisgICAgICAgcmV0
dXJuIGJSZXRWYWw7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTog
Q3JlYXRlcyB0aGUgZGlyZWN0b3J5LCByZXR1cm5pbmcgdHJ1ZSBpZiBpdCBpcyBjcmVhdGVkLCBv
ciBpZiBpdCBhbHJlYWR5IGV4aXN0ZWQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgQkNy
ZWF0ZURpcmVjdG9yeSggY29uc3QgY2hhciAqcGNoUGF0aCApCit7CisjaWZkZWYgV0lOMzIKKyAg
ICAgICBzdGQ6OndzdHJpbmcgd1BhdGggPSBVVEY4dG8xNiggcGNoUGF0aCApOworICAgICAgIGlm
ICggOjpDcmVhdGVEaXJlY3RvcnlXKCB3UGF0aC5jX3N0cigpLCBOVUxMICkgKQorICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIGlmICggOjpHZXRMYXN0RXJyb3IoKSA9PSBFUlJP
Ul9BTFJFQURZX0VYSVNUUyApCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg
cmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICAgICBpbnQgaSA9IG1rZGlyKCBwY2hQYXRoLCBTX0lS
V1hVIHwgU19JUldYRyB8IFNfSVJXWE8gKTsKKyAgICAgICBpZiAoIGkgPT0gMCApCisgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgIGlmICggZXJybm8gPT0gRUVYSVNUICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0
b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZGly
dG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA0OGI0MWI3ODE0ZmRlMDcyNzc2NGFlNzk0ZWRl
OGUwZGZkNGU2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vZGlydG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwxNyBAQAorLy89PT09PT09
PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZz4KKworCisjaWYgIWRl
ZmluZWQoX1dJTjMyKQorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0
Lmg+CisjZW5kaWYKKworCitleHRlcm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBj
b25zdCBjaGFyICpwY2hQYXRoICk7CitleHRlcm4gYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25z
dCBjaGFyICpwY2hQYXRoICk7CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFlZDE2ZDlmODU2MjZmY2EwNjA0YzlmMWVjZjY2NDAyYzliYThhZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1
YmxpYy5jcHAKQEAgLTAsMCArMSw0NiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENv
cnBvcmF0aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgi
CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyNpbmNsdWRlIDx3
aW5kb3dzLmg+CisKKyN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjdW5kZWYgU2V0RW52
aXJvbm1lbnRWYXJpYWJsZQorI2VuZGlmCisKKworc3RkOjpzdHJpbmcgR2V0RW52aXJvbm1lbnRW
YXJpYWJsZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSApCit7CisjaWYgZGVmaW5lZChfV0lOMzIp
CisgICAgICAgY2hhciByY2hWYWx1ZVszMjc2N107IC8vIG1heCBzaXplIGZvciBhbiBlbnYgdmFy
IG9uIFdpbmRvd3MKKyAgICAgICBEV09SRCBjQ2hhcnMgPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxl
QSggcGNoVmFyTmFtZSwgcmNoVmFsdWUsIHNpemVvZiggcmNoVmFsdWUgKSApOworICAgICAgIGlm
KCBjQ2hhcnMgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICBlbHNlCisg
ICAgICAgICAgICAgIHJldHVybiByY2hWYWx1ZTsKKyNlbGlmIGRlZmluZWQoUE9TSVgpCisgICAg
ICAgY2hhciAqcGNoVmFsdWUgPSBnZXRlbnYoIHBjaFZhck5hbWUgKTsKKyAgICAgICBpZiggcGNo
VmFsdWUgKQorICAgICAgICAgICAgICByZXR1cm4gcGNoVmFsdWU7CisgICAgICAgZWxzZQorICAg
ICAgICAgICAgICByZXR1cm4gIiI7CisjZWxzZQorI2Vycm9yICJVbnN1cHBvcnRlZCBQbGF0Zm9y
bSIKKyNlbmRpZgorfQorCisKK2Jvb2wgU2V0RW52aXJvbm1lbnRWYXJpYWJsZSggY29uc3QgY2hh
ciAqcGNoVmFyTmFtZSwgY29uc3QgY2hhciAqcGNoVmFyVmFsdWUgKQoreworI2lmIGRlZmluZWQo
X1dJTjMyKQorICAgICAgIHJldHVybiAwICE9IFNldEVudmlyb25tZW50VmFyaWFibGVBKCBwY2hW
YXJOYW1lLCBwY2hWYXJWYWx1ZSApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICBpZigg
cGNoVmFyVmFsdWUgPT0gTlVMTCApCisgICAgICAgICAgICAgIHJldHVybiAwID09IHVuc2V0ZW52
KCBwY2hWYXJOYW1lICk7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gMCA9PSBz
ZXRlbnYoIHBjaFZhck5hbWUsIHBjaFZhclZhbHVlLCAxICk7CisjZWxzZQorI2Vycm9yICJVbnN1
cHBvcnRlZCBQbGF0Zm9ybSIKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNfcHVibGljLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2RlOTgxYWMzZTM5NzA2ZDU5YTAwYzJjNDFmODU1OGU0YzVkMjA2MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vZW52dmFydG9vbHNf
cHVibGljLmgKQEAgLTAsMCArMSw3IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29y
cG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RyaW5n
PgorCitzdGQ6OnN0cmluZyBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hW
YXJOYW1lICk7Citib29sIFNldEVudmlyb25tZW50VmFyaWFibGUoIGNvbnN0IGNoYXIgKnBjaFZh
ck5hbWUsIGNvbnN0IGNoYXIgKnBjaFZhclZhbHVlICk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MTJlMWM0YjNhODEzMDhjMDE5ZDcyYmNjY2Q3YzZhZTcwOTgxOWY0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJv
cnNfcHVibGljLmNwcApAQCAtMCwwICsxLDIyOSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZh
bHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAib3BlbnZyLmgiCisjaW5j
bHVkZSAiaG1kZXJyb3JzX3B1YmxpYy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8
YWxnb3JpdGhtPgorCit1c2luZyBuYW1lc3BhY2UgdnI7CisKKyNkZWZpbmUgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKGVudW1WYWx1ZSkgY2FzZSBlbnVtVmFsdWU6IHJldHVybiAjZW51bVZhbHVlOwor
CisKK2NvbnN0IGNoYXIgKkdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggdnI6OkVWUkluaXRF
cnJvciBlRXJyb3IgKQoreworICAgICAgIHN3aXRjaCggZUVycm9yICkKKyAgICAgICB7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Ob25lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJObyBFcnJvciAoMCkiOworCisgICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIE5vdCBGb3VuZCAoMTAwKSI7CisgICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ6ICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICJJbnN0YWxsYXRpb24gQ29ycnVwdCAoMTAxKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICJ2cmNsaWVudCBTaGFyZWQgTGliIE5vdCBGb3VuZCAoMTAyKSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9Jbml0X0ZpbGVOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAiRmlsZSBOb3QgRm91bmQgKDEwMykiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiRmFjdG9yeSBGdW5jdGlvbiBOb3QgRm91bmQgKDEwNCkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIkludGVyZmFjZSBOb3QgRm91bmQgKDEwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkSW50ZXJmYWNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IkludmFsaWQgSW50ZXJmYWNlICgxMDYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRf
VXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQ6ICAgICAgIHJldHVybiAiVXNlciBDb25maWcgRGly
ZWN0b3J5IEludmFsaWQgKDEwNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWRO
b3RGb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSG1kIE5v
dCBGb3VuZCAoMTA4KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxp
emVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIk5vdCBJbml0aWFsaXplZCAo
MTA5KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdEZvdW5k
OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSW5zdGFsbGF0aW9uIHBhdGggY291bGQgbm90
IGJlIGxvY2F0ZWQgKDExMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZp
Z1BhdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbmZpZyBw
YXRoIGNvdWxkIG5vdCBiZSBsb2NhdGVkICgxMTEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0luaXRfTm9Mb2dQYXRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJMb2cgcGF0aCBjb3VsZCBub3QgYmUgbG9jYXRlZCAoMTEyKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlOiAgICAgICAgICAgICAgcmV0dXJu
ICJVbmFibGUgdG8gd3JpdGUgcGF0aCByZWdpc3RyeSAoMTEzKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiQXBwIGluZm8gbWFuYWdlciBpbml0IGZhaWxlZCAoMTE0KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1JldHJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiSW50ZXJuYWwgUmV0cnkgKDExNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXI6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJV
c2VyIENhbmNlbGVkIEluaXQgKDExNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9B
bm90aGVyQXBwTGF1bmNoaW5nOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQW5vdGhlciBh
cHAgd2FzIGFscmVhZHkgbGF1bmNoaW5nICgxMTcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0luaXRfU2V0dGluZ3NJbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2V0
dGluZ3MgbWFuYWdlciBpbml0IGZhaWxlZCAoMTE4KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJv
cl9Jbml0X1NodXR0aW5nRG93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiVlIgc3lzdGVtIHNodXR0aW5nIGRvd24gKDExOSkiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICJUb28gbWFueSB0cmFja2VkIG9iamVjdHMgKDEyMCkiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfSW5pdF9Ob1NlcnZlckZvckJhY2tncm91bmRBcHA6ICAgICAgICAgICAgICByZXR1cm4g
Ik5vdCBzdGFydGluZyB2cnNlcnZlciBmb3IgYmFja2dyb3VuZCBhcHAgKDEyMSkiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvcjogICAgICAg
cmV0dXJuICJUaGUgcmVxdWVzdGVkIGludGVyZmFjZSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUg
Y29tcG9zaXRvciBhbmQgdGhlIGNvbXBvc2l0b3IgaXMgcnVubmluZyAoMTIyKSI7CisgICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFwcHM6ICAgICAgIHJl
dHVybiAiVGhpcyBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZSB0byB1dGlsaXR5IGFwcGxpY2F0
aW9ucyAoMTIzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVybmFsOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAidnJzZXJ2ZXIgaW50
ZXJuYWwgZXJyb3IgKDEyNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2
ZXJJZElzTm9uZTogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhtZCBEcml2ZXJJZCBpcyBp
bnZhbGlkICgxMjUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQ
cmVzZW5jZUZhaWxlZDogICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kIFByZXNlbmNlIEZhaWxl
ZCAoMTI2KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5k
OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVlIgTW9uaXRvciBOb3QgRm91bmQgKDEyNyki
OworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkOiAg
ICAgICAgICAgICAgcmV0dXJuICJWUiBNb25pdG9yIHN0YXJ0dXAgZmFpbGVkICgxMjgpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1cHBvcnRlZDog
cmV0dXJuICJMb3cgUG93ZXIgV2F0Y2hkb2cgTm90IFN1cHBvcnRlZCAoMTI5KSI7CisgICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGU6ICAgICAgICAgICAg
ICByZXR1cm4gIkludmFsaWQgQXBwbGljYXRpb24gVHlwZSAoMTMwKSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzOiAgICAgICByZXR1cm4g
Ik5vdCBhdmFpbGFibGUgdG8gd2F0Y2hkb2cgYXBwcyAoMTMxKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzOiAgICAgICByZXR1cm4gIldh
dGNoZG9nIGRpc2FibGVkIGluIHNldHRpbmdzICgxMzIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfVlJEYXNoYm9hcmROb3RGb3VuZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IlZSIERhc2hib2FyZCBOb3QgRm91bmQgKDEzMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIERh
c2hib2FyZCBzdGFydHVwIGZhaWxlZCAoMTM0KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
bml0X1ZSSG9tZU5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZS
IEhvbWUgTm90IEZvdW5kICgxMzUpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJI
b21lU3RhcnR1cEZhaWxlZDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIGhvbWUgc3Rh
cnR1cCBmYWlsZWQgKDEzNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9SZWJvb3Rp
bmdCdXN5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlJlYm9vdGluZyBJbiBQ
cm9ncmVzcyAoMTM3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBk
YXRlQnVzeTogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkZpcm13YXJlIFVwZGF0ZSBJbiBQ
cm9ncmVzcyAoMTM4KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlUmVj
b3ZlcnlCdXN5OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiRmlybXdhcmUgUmVjb3Zlcnkg
SW4gUHJvZ3Jlc3MgKDEzOSkiOworCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfRmFp
bGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIkRyaXZlciBGYWlsZWQgKDIwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVy
X1Vua25vd246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJEcml2ZXIgTm90IEtub3duICgyMDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0RyaXZl
cl9IbWRVbmtub3duOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiSE1EIE5vdCBLbm93biAoMjAyKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2
ZXJfTm90TG9hZGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiRHJpdmVyIE5vdCBMb2FkZWQgKDIwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
RHJpdmVyX1J1bnRpbWVPdXRPZkRhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiRHJpdmVyIHJ1bnRpbWUgaXMgb3V0IG9mIGRhdGUgKDIwNCkiOworICAgICAgIGNhc2UgVlJJ
bml0RXJyb3JfRHJpdmVyX0htZEluVXNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiSE1EIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYXBwbGljYXRp
b24gKDIwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX05vdENhbGlicmF0ZWQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBpcyBub3Qg
Y2FsaWJyYXRlZCAoMjA2KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJy
YXRpb25JbnZhbGlkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkRldmljZSBD
YWxpYnJhdGlvbiBpcyBpbnZhbGlkICgyMDcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREaXNwbGF5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQgTW9uaXRvciBub3QgZm91bmQgKDIwOCkiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtu
b3duOiAgICAgICByZXR1cm4gIkRyaXZlciBUcmFja2VkIERldmljZSBJbnRlcmZhY2UgdW5rbm93
biAoMjA5KSI7CisgICAgICAgLy8gY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5v
dEZvdW5kQWZ0ZXJGaXg6ICAgICAgIHJldHVybiAiSE1EIGRldGVjdGVkIG92ZXIgVVNCLCBidXQg
TW9uaXRvciBub3QgZm91bmQgYWZ0ZXIgYXR0ZW1wdCB0byBmaXggKDIxMCkiOyAvLyB0YWtlbiBv
dXQgdXBvbiBCZW4ncyByZXF1ZXN0OiBIZSB0aGlua3MgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRv
IHNlcGFyYXRlIHRoYXQgZXJyb3IgZnJvbSAyMDgKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREcml2ZXJJZE91dE9mQm91bmRzOiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
SG1kIERyaXZlcklkIGlzIG91ciBvZiBib3VuZHMgKDIxMSkiOworICAgICAgIGNhc2UgVlJJbml0
RXJyb3JfRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICJITUQgZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG1heSBiZSBtaXJy
b3JlZCBpbnN0ZWFkIG9mIGV4dGVuZGVkICgyMTIpIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSVBDX1NlcnZlckluaXRGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJWUiBTZXJ2ZXIgSW5pdCBGYWlsZWQgKDMwMCkiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQ29ubmVjdCB0byBWUiBTZXJ2ZXIgRmFp
bGVkICgzMDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRG
YWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJ
UEMgU3RhdGUgSW5pdCBGYWlsZWQgKDMwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBD
X0NvbXBvc2l0b3JJbml0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJTaGFyZWQgSVBDIENvbXBvc2l0b3IgSW5pdCBGYWlsZWQgKDMwMykiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgTXV0ZXggSW5pdCBGYWls
ZWQgKDMwNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0ZhaWxlZDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hh
cmVkIElQQyBGYWlsZWQgKDMwNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0NvbXBv
c2l0b3JDb25uZWN0RmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNo
YXJlZCBJUEMgQ29tcG9zaXRvciBDb25uZWN0IEZhaWxlZCAoMzA2KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9uc2U6ICAgICAgICAg
ICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9zaXRvciBJbnZhbGlkIENvbm5lY3QgUmVzcG9u
c2UgKDMwNykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRl
ck11bHRpcGxlQXR0ZW1wdHM6ICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb25uZWN0IEZhaWxl
ZCBBZnRlciBNdWx0aXBsZSBBdHRlbXB0cyAoMzA4KSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0NvbXBvc2l0b3JfRmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJDb21wb3NpdG9yIGZhaWxlZCB0byBpbml0aWFsaXplICg0MDApIjsKKyAgICAgICBj
YXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkOiAgICAgICBy
ZXR1cm4gIkNvbXBvc2l0b3IgZmFpbGVkIHRvIGZpbmQgRFgxMSBoYXJkd2FyZSAoNDAxKSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGU6
ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciByZXF1aXJlcyBtYW5kYXRvcnkgZmlybXdhcmUgdXBk
YXRlICg0MDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUlu
aXRGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24g
c3VjY2VlZGVkLCBidXQgb3ZlcmxheSBpbml0IGZhaWxlZCAoNDAzKSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZDogICAgICAgcmV0dXJu
ICJDb21wb3NpdG9yIGluaXRpYWxpemF0aW9uIHN1Y2NlZWRlZCwgYnV0IHNjcmVlbnNob3QgaW5p
dCBmYWlsZWQgKDQwNCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9VbmFi
bGVUb0NyZWF0ZURldmljZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHVuYWJsZSB0byBjcmVh
dGUgZ3JhcGhpY3MgZGV2aWNlICg0MDUpIjsKKworICAgICAgIC8vIE9jdWx1cworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50
aW1lOiAgICAgICByZXR1cm4gIlVuYWJsZSB0byBjb25uZWN0IHRvIE9jdWx1cyBSdW50aW1lICgx
MDAwKSI7CisKKyAgICAgICAvLyBMaWdodGhvdXNlCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZTogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBjYW4gbm90IG9wZW4gZGV2aWNlICgxMTAx
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFi
bGVUb1JlcXVlc3RDb25maWdTdGFydDogICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCB1bmFi
bGUgdG8gcmVxdWVzdCBjb25maWcgKDExMDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IG5vIHN0b3JlZCBjb25maWcgKDExMDMpIjsK
KyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ0Zh
aWxlZFNhbml0eUNoZWNrOiAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGZhaWxlZCBjb25m
aWd1cmF0aW9uIGNoZWNrICgxMTEzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29CaWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gYmlnICgxMTA0KSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29T
bWFsbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBj
b25maWcgdG9vIHNtYWxsICgxMTA1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliOiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHVuYWJsZSB0byBpbml0IFpMaWIgKDExMDYpIjsK
KyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFk
RmlybXdhcmVWZXJzaW9uOiAgICAgICAgICAgICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9i
bGVtcyB3aXRoIHRoZSBkYXRhICgxMTA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0OiAgICAgICAgICAg
ICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTA4KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVU
b0dldFVzZXJEYXRhU3RhcnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHBy
b2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMDkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0OiAgICAgICAgICAg
ICAgcmV0dXJuICJITUQgZm91bmQsIGJ1dCBwcm9ibGVtcyB3aXRoIHRoZSBkYXRhICgxMTEwKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0
YUFkZHJlc3NSYW5nZTogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0
IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMTEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3I6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhl
IGRhdGEgKDExMTIpIjsKKworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0
YWxsYXRpb25Ob3RGb3VuZDogcmV0dXJuICJVbmFibGUgdG8gZmluZCBTdGVhbSBpbnN0YWxsYXRp
b24gKDIwMDApIjsKKworICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpYyBjaGFyIGJ1ZlsxMjhdOworICAgICAgICAgICAgICAgICAgICAg
c3ByaW50ZiggYnVmLCAiVW5rbm93biBlcnJvciAoJWQpIiwgZUVycm9yICk7CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYnVmOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCit9CisK
KworY29uc3QgY2hhciAqR2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJy
b3IgKQoreworICAgICAgIHN3aXRjaCggZUVycm9yICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfTm9uZSApOworICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1Vua25vd24gKTsKKworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0
aW9uTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Zp
bGVOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZElu
dGVyZmFjZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgKTsKKyAgICAgICAgICAgICAgUkVU
VVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0
aWFsaXplZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVy
cm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCApOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoICk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Q
YXRoUmVnaXN0cnlOb3RXcml0YWJsZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1JldHJ5ICk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2Fu
Y2VsZWRCeVVzZXIgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2h1
dHRpbmdEb3duICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9Ub29NYW55T2JqZWN0cyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RT
dXBwb3J0ZWRXaXRoQ29tcG9zaXRvciApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW50ZXJu
YWwgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9J
bml0X1ZSTW9uaXRvck5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldh
dGNoZG9nTm90U3VwcG9ydGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGljYXRpb25UeXBlICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVU
b1dhdGNoZG9nQXBwcyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGluZ3MgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90
Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZVN0
YXJ0dXBGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X1JlYm9vdGluZ0J1c3kgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0Zpcm13YXJlVXBkYXRlQnVzeSApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVS
ZWNvdmVyeUJ1c3kgKTsKKworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0luaXRfSG1kRHJpdmVySWRJc05vbmUgKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kUHJlc2VuY2VGYWls
ZWQgKTsKKworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0RyaXZlcl9GYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWRVbmtub3duKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9hZGVkKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfUnVu
dGltZU91dE9mRGF0ZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfRHJpdmVyX0htZEluVXNlKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0NhbGlicmF0aW9uSW52
YWxpZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
RHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3du
ICk7CisgICAgICAgICAgICAgIC8vIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
RHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZEFmdGVyRml4ICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3Vu
ZHMgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9E
cml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICk7CisKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19T
aGFyZWRTdGF0ZUluaXRGYWlsZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJ
TkcoIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCk7
CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0Zh
aWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
SVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckludmFsaWRDb25uZWN0UmVzcG9u
c2UpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQ
Q19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzKTsKKworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmFpbGVkICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRv
cl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3Np
dG9yX092ZXJsYXlJbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9y
X1VuYWJsZVRvQ3JlYXRlRGV2aWNlICk7CisKKyAgICAgICAgICAgICAgLy8gT2N1bHVzCisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfVW5hYmxlVG9Db25uZWN0VG9PY3VsdXNSdW50aW1lKTsKKworICAgICAgICAgICAgICAvLyBM
aWdodGhvdXNlCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UpOworICAgICAgICAgICAg
ICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZv
dW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0KTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Ob1N0b3Jl
ZENvbmZpZyk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgKTsKKyAg
ICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVj
aWZpY19IbWRGb3VuZF9Db25maWdUb29CaWcgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29T
bWFsbCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiApOworICAgICAgICAgICAgICBSRVRVUk5fRU5V
TV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRv
U2VuZFVzZXJEYXRhU3RhcnQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRh
U3RhcnQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNl
ckRhdGFFcnJvciApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCApOworCisgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIg
YnVmWzEyOF07CisgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVy
cm9yICglZCkiLCBlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICB9Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVibGljLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2NkNmM4YTk2YzEzMGMwYWNmMWY0YjJiNjQ4NmY1YjI5M2QwN2IyOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3JzX3B1Ymxp
Yy5oCkBAIC0wLDAgKzEsNiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKworY29uc3QgY2hhciAqR2V0RW5nbGlz
aFN0cmluZ0ZvckhtZEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApOworY29uc3QgY2hh
ciAqR2V0SURGb3JWUkluaXRFcnJvciggdnI6OkVWUkluaXRFcnJvciBlRXJyb3IgKTsKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNf
cHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRv
b2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QzNDU4ZGRjMWRhYWQ4Yzg5NzgxMDQ1Mjg4NTIz
MDhlYjkwODAxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSw4MTkgQEAKKy8vPT09
PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1
ZGUgInN0cnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKKwor
I2lmIGRlZmluZWQoIF9XSU4zMikKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8ZGly
ZWN0Lmg+CisjaW5jbHVkZSA8c2hvYmppZGwuaD4KKyNpbmNsdWRlIDxrbm93bmZvbGRlcnMuaD4K
KyNpbmNsdWRlIDxzaGxvYmouaD4KKyNpbmNsdWRlIDxzaGFyZS5oPgorCisjdW5kZWYgR2V0RW52
aXJvbm1lbnRWYXJpYWJsZQorI2Vsc2UKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPHN0
ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYK
KyNpZiBkZWZpbmVkIE9TWAorI2luY2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2lu
Y2x1ZGUgPEFwcEtpdC9BcHBLaXQuaD4KKyNpbmNsdWRlIDxtYWNoLW8vZHlsZC5oPgorI2RlZmlu
ZSBfU19JRkRJUiBTX0lGRElSICAgICAvLyByZWFsbHkgZnJvbSB0aWVyMC9wbGF0Zm9ybS5oIHdo
aWNoIHdlIGRvbnQgaGF2ZSB5ZXQKKyNlbmRpZgorCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKwor
I2luY2x1ZGUgPGFsZ29yaXRobT4KKworLyoqIFJldHVybnMgdGhlIHBhdGggKGluY2x1ZGluZyBm
aWxlbmFtZSkgdG8gdGhlIGN1cnJlbnQgZXhlY3V0YWJsZSAqLworc3RkOjpzdHJpbmcgUGF0aF9H
ZXRFeGVjdXRhYmxlUGF0aCgpCit7CisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICB3Y2hh
cl90ICpwd2NoUGF0aCA9IG5ldyB3Y2hhcl90W01BWF9VTklDT0RFX1BBVEhdOworICAgICAgIGNo
YXIgKnBjaFBhdGggPSBuZXcgY2hhcltNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjhdOworICAgICAg
IDo6R2V0TW9kdWxlRmlsZU5hbWVXKCBOVUxMLCBwd2NoUGF0aCwgTUFYX1VOSUNPREVfUEFUSCAp
OworICAgICAgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoIENQX1VURjgsIDAsIHB3Y2hQYXRoLCAtMSwg
cGNoUGF0aCwgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4LCBOVUxMLCBOVUxMICk7CisgICAgICAg
ZGVsZXRlW10gcHdjaFBhdGg7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IHBjaFBhdGg7
CisgICAgICAgZGVsZXRlW10gcGNoUGF0aDsKKyAgICAgICByZXR1cm4gc1BhdGg7CisjZWxpZiBk
ZWZpbmVkKCBPU1ggKQorICAgICAgIGNoYXIgcmNoUGF0aFsxMDI0XTsKKyAgICAgICB1aW50MzJf
dCBuQnVmZiA9IHNpemVvZiggcmNoUGF0aCApOworICAgICAgIGJvb2wgYlN1Y2Nlc3MgPSBfTlNH
ZXRFeGVjdXRhYmxlUGF0aChyY2hQYXRoLCAmbkJ1ZmYpID09IDA7CisgICAgICAgcmNoUGF0aFtu
QnVmZi0xXSA9ICdcMCc7CisgICAgICAgaWYoIGJTdWNjZXNzICkKKyAgICAgICAgICAgICAgcmV0
dXJuIHJjaFBhdGg7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisjZWxp
ZiBkZWZpbmVkIExJTlVYCisgICAgICAgY2hhciByY2hQYXRoWzEwMjRdOworICAgICAgIHNpemVf
dCBuQnVmZiA9IHNpemVvZiggcmNoUGF0aCApOworICAgICAgIHNzaXplX3QgblJlYWQgPSByZWFk
bGluaygiL3Byb2Mvc2VsZi9leGUiLCByY2hQYXRoLCBuQnVmZi0xICk7CisgICAgICAgaWYgKCBu
UmVhZCAhPSAtMSApCisgICAgICAgeworICAgICAgICAgICAgICByY2hQYXRoWyBuUmVhZCBdID0g
MDsKKyAgICAgICAgICAgICAgcmV0dXJuIHJjaFBhdGg7CisgICAgICAgfQorICAgICAgIGVsc2UK
KyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICB9CisjZWxzZQorICAg
ICAgIEFzc2VydE1zZyggZmFsc2UsICJJbXBsZW1lbnQgUGxhdF9HZXRFeGVjdXRhYmxlUGF0aCIg
KTsKKyAgICAgICByZXR1cm4gIiI7CisjZW5kaWYKKworfQorCisvKiogUmV0dXJucyB0aGUgcGF0
aCBvZiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSAqLworc3RkOjpzdHJpbmcgUGF0aF9H
ZXRXb3JraW5nRGlyZWN0b3J5KCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aDsKKyNpZiBk
ZWZpbmVkKCBfV0lOMzIgKQorICAgICAgIHdjaGFyX3QgYnVmW01BWF9VTklDT0RFX1BBVEhdOwor
ICAgICAgIHNQYXRoID0gVVRGMTZ0bzgoIF93Z2V0Y3dkKCBidWYsIE1BWF9VTklDT0RFX1BBVEgg
KSApOworI2Vsc2UKKyAgICAgICBjaGFyIGJ1ZlsgMTAyNCBdOworICAgICAgIHNQYXRoID0gZ2V0
Y3dkKCBidWYsIHNpemVvZiggYnVmICkgKTsKKyNlbmRpZgorICAgICAgIHJldHVybiBzUGF0aDsK
K30KKworLyoqIFNldHMgdGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnku
IFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBzdWNjZXNzZnVsLiAqLworYm9vbCBQYXRoX1NldFdv
cmtpbmdEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAgIGJv
b2wgYlN1Y2Nlc3M7CisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzdGQ6OndzdHJpbmcg
d3NQYXRoID0gVVRGOHRvMTYoIHNQYXRoLmNfc3RyKCkgKTsKKyAgICAgICBiU3VjY2VzcyA9IDAg
PT0gX3djaGRpciggd3NQYXRoLmNfc3RyKCkgKTsKKyNlbHNlCisgICAgICAgYlN1Y2Nlc3MgPSAw
ID09IGNoZGlyKCBzUGF0aC5jX3N0cigpICk7CisjZW5kaWYKKyAgICAgICByZXR1cm4gYlN1Y2Nl
c3M7Cit9CisKKy8qKiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgcGF0aCB3aXRob3V0IGl0cyBmaWxl
bmFtZSAqLworc3RkOjpzdHJpbmcgUGF0aF9TdHJpcEZpbGVuYW1lKCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAg
ICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBuID0gc1BhdGguZmluZF9sYXN0X29mKCBzbGFzaCApOworICAgICAgIGlmKCBu
ID09IHN0ZDo6c3RyaW5nOjpucG9zICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNQYXRoOworICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBzUGF0aC5iZWdpbigp
LCBzUGF0aC5iZWdpbigpICsgbiApOworfQorCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFt
ZSBmcm9tIHRoZSBwcm92aWRlZCBmdWxsIG9yIHJlbGF0aXZlIHBhdGguICovCitzdGQ6OnN0cmlu
ZyBQYXRoX1N0cmlwRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNs
YXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0g
UGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuID0gc1Bh
dGguZmluZF9sYXN0X29mKCBzbGFzaCApOworICAgICAgIGlmKCBuID09IHN0ZDo6c3RyaW5nOjpu
cG9zICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNQYXRoOworICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCBzUGF0aC5iZWdpbigpICsgbiArIDEsIHNQYXRoLmVu
ZCgpICk7Cit9CisKKy8qKiByZXR1cm5zIGp1c3QgdGhlIGZpbGVuYW1lIHdpdGggbm8gZXh0ZW5z
aW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZS4gCisqIElmIHRoZXJlIGlzIGEgcGF0aCB0aGUg
cGF0aCBpcyBsZWZ0IGludGFjdC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBFeHRlbnNpb24o
IGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAgIGZvciggc3RkOjpzdHJpbmc6
OmNvbnN0X3JldmVyc2VfaXRlcmF0b3IgaSA9IHNQYXRoLnJiZWdpbigpOyBpICE9IHNQYXRoLnJl
bmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmKCAqaSA9PSAnLicgKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQ
YXRoLmJlZ2luKCksIGkuYmFzZSgpIC0gMSApOworICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgLy8gaWYgd2UgZmluZCBhIHNsYXNoIHRoZXJlIGlzIG5vIGV4dGVuc2lvbgorICAgICAg
ICAgICAgICBpZiggKmkgPT0gJ1xcJyB8fCAqaSA9PSAnLycgKQorICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgfQorCisgICAgICAgLy8gd2UgZGlkbid0IGZpbmQgYW4gZXh0ZW5z
aW9uCisgICAgICAgcmV0dXJuIHNQYXRoOworfQorCisvKiogcmV0dXJucyBqdXN0IGV4dGVuc2lv
biBvZiB0aGUgcHJvdmlkZWQgZmlsZW5hbWUgKGlmIGFueSkuICovCitzdGQ6OnN0cmluZyBQYXRo
X0dldEV4dGVuc2lvbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAgICAgZm9y
ICggc3RkOjpzdHJpbmc6OmNvbnN0X3JldmVyc2VfaXRlcmF0b3IgaSA9IHNQYXRoLnJiZWdpbigp
OyBpICE9IHNQYXRoLnJlbmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICgg
KmkgPT0gJy4nICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6c3RyaW5nKCBpLmJhc2UoKSwgc1BhdGguZW5kKCkgKTsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIC8vIGlmIHdlIGZpbmQgYSBzbGFzaCB0aGVyZSBpcyBubyBleHRlbnNp
b24KKyAgICAgICAgICAgICAgaWYgKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyApCisgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICB9CisKKyAgICAgICAvLyB3ZSBkaWRuJ3QgZmlu
ZCBhbiBleHRlbnNpb24KKyAgICAgICByZXR1cm4gIiI7Cit9CisKK2Jvb2wgUGF0aF9Jc0Fic29s
dXRlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBpZiggc1BhdGguZW1w
dHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIGRlZmluZWQoIFdJTjMy
ICkKKyAgICAgICBpZiAoIHNQYXRoLnNpemUoKSA8IDMgKSAvLyBtdXN0IGJlIGM6XHggb3IgXFx4
IGF0IGxlYXN0CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIGlmICggc1Bh
dGhbMV0gPT0gJzonICkgLy8gZHJpdmUgbGV0dGVyIHBsdXMgc2xhc2gsIGJ1dCBtdXN0IHRlc3Qg
Ym90aCBzbGFzaCBjYXNlcworICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBzUGF0aFsyXSA9
PSAnXFwnIHx8IHNQYXRoWzJdID09ICcvJyApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICB9CisgICAgICAgZWxzZSBpZiAoIHNQYXRoWzBdID09ICdcXCcgJiYgc1Bh
dGhbMV0gPT0gJ1xcJyApIC8vIFVOQyBwYXRoCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
I2Vsc2UKKyAgICAgICBpZiggc1BhdGhbMF0gPT0gJ1xcJyB8fCBzUGF0aFswXSA9PSAnLycgKSAv
LyBhbnkgbGVhZGluZyBzbGFzaAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgor
CisgICAgICAgcmV0dXJuIGZhbHNlOworfQorCisKKy8qKiBNYWtlcyBhbiBhYnNvbHV0ZSBwYXRo
IGZyb20gYSByZWxhdGl2ZSBwYXRoIGFuZCBhIGJhc2UgcGF0aCAqLworc3RkOjpzdHJpbmcgUGF0
aF9NYWtlQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0aXZlUGF0aCwgY29uc3Qg
c3RkOjpzdHJpbmcgJiBzQmFzZVBhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFz
aCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAg
ICBpZiggUGF0aF9Jc0Fic29sdXRlKCBzUmVsYXRpdmVQYXRoICkgKQorICAgICAgICAgICAgICBy
ZXR1cm4gc1JlbGF0aXZlUGF0aDsKKyAgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgICAg
ICBpZiggIVBhdGhfSXNBYnNvbHV0ZSggc0Jhc2VQYXRoICkgKQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICIiOworCisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHNDb21wYWN0ZWQgPSBQ
YXRoX0NvbXBhY3QoIFBhdGhfSm9pbiggc0Jhc2VQYXRoLCBzUmVsYXRpdmVQYXRoLCBzbGFzaCAp
LCBzbGFzaCApOworICAgICAgICAgICAgICBpZiggUGF0aF9Jc0Fic29sdXRlKCBzQ29tcGFjdGVk
ICkgKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNDb21wYWN0ZWQ7CisgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICB9Cit9CisK
KworLyoqIEZpeGVzIHRoZSBkaXJlY3Rvcnkgc2VwYXJhdG9ycyBmb3IgdGhlIGN1cnJlbnQgcGxh
dGZvcm0gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfRml4U2xhc2hlcyggY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUGF0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAg
ICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNG
aXhlZCA9IHNQYXRoOworICAgICAgIGZvciggc3RkOjpzdHJpbmc6Oml0ZXJhdG9yIGkgPSBzRml4
ZWQuYmVnaW4oKTsgaSAhPSBzRml4ZWQuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAg
ICAgICBpZiggKmkgPT0gJy8nIHx8ICppID09ICdcXCcgKQorICAgICAgICAgICAgICAgICAgICAg
KmkgPSBzbGFzaDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc0ZpeGVkOworfQorCisKK2No
YXIgUGF0aF9HZXRTbGFzaCgpCit7CisjaWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgcmV0dXJu
ICdcXCc7CisjZWxzZQorICAgICAgIHJldHVybiAnLyc7CisjZW5kaWYKK30KKworLyoqIEphbXMg
dHdvIHBhdGhzIHRvZ2V0aGVyIHdpdGggdGhlIHJpZ2h0IGtpbmQgb2Ygc2xhc2ggKi8KK3N0ZDo6
c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpz
dHJpbmcgJiBzZWNvbmQsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkK
KyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICAvLyBvbmx5
IGluc2VydCBhIHNsYXNoIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBvbmUKKyAgICAgICBzdGQ6
OnN0cmluZzo6c2l6ZV90eXBlIG5MZW4gPSBmaXJzdC5sZW5ndGgoKTsKKyAgICAgICBpZiggIW5M
ZW4gKQorICAgICAgICAgICAgICByZXR1cm4gc2Vjb25kOworI2lmIGRlZmluZWQoX1dJTjMyKQor
ICAgICAgIGlmKCBmaXJzdC5iYWNrKCkgPT0gJ1xcJyB8fCBmaXJzdC5iYWNrKCkgPT0gJy8nICkK
KyAgICAgICAgICAgbkxlbi0tOworI2Vsc2UKKyAgICAgICBjaGFyIGxhc3RfY2hhciA9IGZpcnN0
W2ZpcnN0Lmxlbmd0aCgpLTFdOworICAgICAgIGlmIChsYXN0X2NoYXIgPT0gJ1xcJyB8fCBsYXN0
X2NoYXIgPT0gJy8nKQorICAgICAgICAgICBuTGVuLS07CisjZW5kaWYKKworICAgICAgIHJldHVy
biBmaXJzdC5zdWJzdHIoIDAsIG5MZW4gKSArIHN0ZDo6c3RyaW5nKCAxLCBzbGFzaCApICsgc2Vj
b25kOworfQorCisKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBm
aXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhp
cmQsIGNoYXIgc2xhc2ggKQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhfSm9pbigg
Zmlyc3QsIHNlY29uZCwgc2xhc2ggKSwgdGhpcmQsIHNsYXNoICk7Cit9CisKK3N0ZDo6c3RyaW5n
IFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcg
JiBzZWNvbmQsIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIGNvbnN0IHN0ZDo6c3RyaW5nICZm
b3VydGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIHJldHVybiBQYXRoX0pvaW4oIFBhdGhfSm9p
biggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwgZm91
cnRoLCBzbGFzaCApOworfQorCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIAorICAgICAgIGNvbnN0
IHN0ZDo6c3RyaW5nICYgZmlyc3QsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25k
LCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCAKKyAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyAmIGZvdXJ0aCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaWZ0aCwgCisg
ICAgICAgY2hhciBzbGFzaCApCit7CisgICAgICAgcmV0dXJuIFBhdGhfSm9pbiggUGF0aF9Kb2lu
KCBQYXRoX0pvaW4oIFBhdGhfSm9pbiggZmlyc3QsIHNlY29uZCwgc2xhc2ggKSwgdGhpcmQsIHNs
YXNoICksIGZvdXJ0aCwgc2xhc2ggKSwgZmlmdGgsIHNsYXNoICk7Cit9CisKKworc3RkOjpzdHJp
bmcgUGF0aF9SZW1vdmVUcmFpbGluZ1NsYXNoKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSYXdQYXRo
LCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiAoIHNsYXNoID09IDAgKQorICAgICAgICAgICAg
ICBzbGFzaCA9IFBhdGhfR2V0U2xhc2goKTsKKworICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0g
c1Jhd1BhdGg7CisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBuQ3VycmVudCA9IHNSYXdQ
YXRoLmxlbmd0aCgpOworICAgICAgIGlmICggbkN1cnJlbnQgPT0gMCApCisgICAgICAgICAgICAg
IHJldHVybiBzUGF0aDsKKworICAgICAgIGludCBuTGFzdEZvdW5kID0gLTE7CisgICAgICAgbkN1
cnJlbnQtLTsKKyAgICAgICB3aGlsZSggbkN1cnJlbnQgIT0gMCApCisgICAgICAgeworICAgICAg
ICAgICAgICBpZiAoIHNSYXdQYXRoWyBuQ3VycmVudCBdID09IHNsYXNoICkKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgbkxhc3RGb3VuZCA9IChpbnQpbkN1cnJlbnQ7Cisg
ICAgICAgICAgICAgICAgICAgICBuQ3VycmVudC0tOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAgIGlmICgg
bkxhc3RGb3VuZCA+PSAwICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHNQYXRoLmVyYXNlKCBu
TGFzdEZvdW5kLCBzdGQ6OnN0cmluZzo6bnBvcyApOworICAgICAgIH0KKyAgICAgICAKKyAgICAg
ICByZXR1cm4gc1BhdGg7Cit9CisKKworLyoqIFJlbW92ZXMgcmVkdW5kYW50IDxkaXI+Ly4uIGVs
ZW1lbnRzIGluIHRoZSBwYXRoLiBSZXR1cm5zIGFuIGVtcHR5IHBhdGggaWYgdGhlIAorKiBzcGVj
aWZpZWQgcGF0aCBoYXMgYSBicm9rZW4gbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGZvciBpdHMgbnVt
YmVyIG9mIC4ucyAqLworc3RkOjpzdHJpbmcgUGF0aF9Db21wYWN0KCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNSYXdQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZiggc2xhc2ggPT0gMCApCisg
ICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAgc3RkOjpzdHJp
bmcgc1BhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNSYXdQYXRoLCBzbGFzaCApOworICAgICAgIHN0
ZDo6c3RyaW5nIHNTbGFzaFN0cmluZyggMSwgc2xhc2ggKTsKKworICAgICAgIC8vIHN0cmlwIG91
dCBhbGwgLy4vCisgICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGkgPSAwOyAoaSAr
IDMpIDwgc1BhdGgubGVuZ3RoKCk7ICApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggc1Bh
dGhbIGkgXSA9PSBzbGFzaCAmJiBzUGF0aFsgaSsxIF0gPT0gJy4nICYmIHNQYXRoWyBpKzIgXSA9
PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRoLnJl
cGxhY2UoIGksIDMsIHNTbGFzaFN0cmluZyApOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKytpOworICAg
ICAgICAgICAgICB9CisgICAgICAgfQorCisKKyAgICAgICAvLyBnZXQgcmlkIG9mIHRyYWlsaW5n
IC8uIGJ1dCBsZWF2ZSB0aGUgcGF0aCBzZXBhcmF0b3IKKyAgICAgICBpZiggc1BhdGgubGVuZ3Ro
KCkgPiAyICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUg
bGVuID0gc1BhdGgubGVuZ3RoKCk7CisgICAgICAgICAgICAgIGlmKCBzUGF0aFsgbGVuLTEgXSA9
PSAnLicgICYmIHNQYXRoWyBsZW4tMiBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIC8vIHNQYXRoLnBvcF9iYWNrKCk7CisgICAgICAgICAgICAgICAgc1BhdGhb
bGVuLTFdID0gMDsgIC8vIGZvciBub3csIGF0IGxlYXN0CisgICAgICAgICAgICAgIH0KKyAgICAg
ICB9CisKKyAgICAgICAvLyBnZXQgcmlkIG9mIGxlYWRpbmcgLi8gCisgICAgICAgaWYoIHNQYXRo
Lmxlbmd0aCgpID4gMiApCisgICAgICAgeworICAgICAgICAgICAgICBpZiggc1BhdGhbIDAgXSA9
PSAnLicgICYmIHNQYXRoWyAxIF0gPT0gc2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCAwLCAyLCAiIiApOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorCisgICAgICAgLy8gZWFjaCB0aW1lIHdlIGVuY291bnRlciAuLiBiYWNrIHVw
IHVudGlsIHdlJ3ZlIGZvdW5kIHRoZSBwcmV2aW91cyBkaXJlY3RvcnkgbmFtZQorICAgICAgIC8v
IHRoZW4gZ2V0IHJpZCBvZiBib3RoCisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBpID0g
MDsKKyAgICAgICB3aGlsZSggaSA8IHNQYXRoLmxlbmd0aCgpICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIGlmKCBpID4gMCAmJiBzUGF0aC5sZW5ndGgoKSAtIGkgPj0gMiAKKyAgICAgICAgICAg
ICAgICAgICAgICYmIHNQYXRoW2ldID09ICcuJworICAgICAgICAgICAgICAgICAgICAgJiYgc1Bh
dGhbaSsxXSA9PSAnLicKKyAgICAgICAgICAgICAgICAgICAgICYmICggaSArIDIgPT0gc1BhdGgu
bGVuZ3RoKCkgfHwgc1BhdGhbIGkrMiBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgICAgICAg
ICYmIHNQYXRoWyBpLTEgXSA9PSBzbGFzaCApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIC8vIGNoZWNrIGlmIHdlJ3ZlIGhpdCB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZyBh
bmQgaGF2ZSBhIGJvZ3VzIHBhdGgKKyAgICAgICAgICAgICAgICAgICAgIGlmKCBpID09IDEgKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICAgLy8gZmluZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSBp
LTEKKyAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaURpclN0YXJ0
ID0gaS0yOworICAgICAgICAgICAgICAgICAgICAgd2hpbGUoIGlEaXJTdGFydCA+IDAgJiYgc1Bh
dGhbIGlEaXJTdGFydCAtIDEgXSAhPSBzbGFzaCApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS1pRGlyU3RhcnQ7CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBldmVyeXRo
aW5nIGZyb20gaURpclN0YXJ0IHRvIGkrMgorICAgICAgICAgICAgICAgICAgICAgc1BhdGgucmVw
bGFjZSggaURpclN0YXJ0LCAoaSAtIGlEaXJTdGFydCkgKyAzLCAiIiApOworCisgICAgICAgICAg
ICAgICAgICAgICAvLyBzdGFydCBvdmVyCisgICAgICAgICAgICAgICAgICAgICBpID0gMDsKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAg
IHJldHVybiBzUGF0aDsKK30KKworCisvKiogUmV0dXJucyB0aGUgcGF0aCB0byB0aGUgY3VycmVu
dCBETEwgb3IgZXhlICovCitzdGQ6OnN0cmluZyBQYXRoX0dldFRoaXNNb2R1bGVQYXRoKCkKK3sK
KyAgICAgICAvLyBnZXRzIHRoZSBwYXRoIG9mIHZyY2xpZW50LmRsbCBpdHNlbGYKKyNpZmRlZiBX
SU4zMgorICAgICAgIEhNT0RVTEUgaG1vZHVsZSA9IE5VTEw7CisKKyAgICAgICA6OkdldE1vZHVs
ZUhhbmRsZUV4KCBHRVRfTU9EVUxFX0hBTkRMRV9FWF9GTEFHX0ZST01fQUREUkVTUyB8IEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfVU5DSEFOR0VEX1JFRkNPVU5ULCByZWludGVycHJldF9jYXN0
PExQQ1RTVFI+KFBhdGhfR2V0VGhpc01vZHVsZVBhdGgpLCAmaG1vZHVsZSApOworCisgICAgICAg
d2NoYXJfdCAqcHdjaFBhdGggPSBuZXcgd2NoYXJfdFtNQVhfVU5JQ09ERV9QQVRIXTsKKyAgICAg
ICBjaGFyICpwY2hQYXRoID0gbmV3IGNoYXJbIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCBdOwor
ICAgICAgIDo6R2V0TW9kdWxlRmlsZU5hbWVXKCBobW9kdWxlLCBwd2NoUGF0aCwgTUFYX1VOSUNP
REVfUEFUSCApOworICAgICAgIFdpZGVDaGFyVG9NdWx0aUJ5dGUoIENQX1VURjgsIDAsIHB3Y2hQ
YXRoLCAtMSwgcGNoUGF0aCwgTUFYX1VOSUNPREVfUEFUSF9JTl9VVEY4LCBOVUxMLCBOVUxMICk7
CisgICAgICAgZGVsZXRlW10gcHdjaFBhdGg7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9
IHBjaFBhdGg7CisgICAgICAgZGVsZXRlIFtdIHBjaFBhdGg7CisgICAgICAgcmV0dXJuIHNQYXRo
OworCisjZWxpZiBkZWZpbmVkKCBPU1ggKSB8fCBkZWZpbmVkKCBMSU5VWCApCisgICAgICAgLy8g
Z2V0IHRoZSBhZGRyIG9mIGEgZnVuY3Rpb24gaW4gdnJjbGllbnQuc28gYW5kIHRoZW4gYXNrIHRo
ZSBkbG9wZW4gc3lzdGVtIGFib3V0IGl0CisgICAgICAgRGxfaW5mbyBpbmZvOworICAgICAgIGRs
YWRkciggKHZvaWQgKilQYXRoX0dldFRoaXNNb2R1bGVQYXRoLCAmaW5mbyApOworICAgICAgIHJl
dHVybiBpbmZvLmRsaV9mbmFtZTsKKyNlbmRpZgorCit9CisKKworLyoqIHJldHVybnMgdHJ1ZSBp
ZiB0aGUgc3BlY2lmaWVkIHBhdGggZXhpc3RzIGFuZCBpcyBhIGRpcmVjdG9yeSAqLworYm9vbCBQ
YXRoX0lzRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICkKK3sKKyAgICAgICBz
dGQ6OnN0cmluZyBzRml4ZWRQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzUGF0aCApOworICAgICAg
IGlmKCBzRml4ZWRQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgY2hhciBjTGFzdCA9IHNGaXhlZFBhdGhbIHNGaXhlZFBhdGgubGVuZ3RoKCkgLSAxIF07
CisgICAgICAgaWYoIGNMYXN0ID09ICcvJyB8fCBjTGFzdCA9PSAnXFwnICkKKyAgICAgICAgICAg
ICAgc0ZpeGVkUGF0aC5lcmFzZSggc0ZpeGVkUGF0aC5lbmQoKSAtIDEsIHNGaXhlZFBhdGguZW5k
KCkgKTsKKworICAgICAgIC8vIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggYWN0dWFsbHkgZXhp
c3RzLgorCisjaWYgZGVmaW5lZChQT1NJWCkKKyAgICAgICBzdHJ1Y3QgICAgICAgc3RhdCAgICAg
ICBidWY7CisgICAgICAgaWYgKCBzdGF0KCBzRml4ZWRQYXRoLmNfc3RyKCksICZidWYgKSA9PSAt
MSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisj
aWYgZGVmaW5lZCggTElOVVggKSB8fCBkZWZpbmVkKCBPU1ggKQorICAgICAgIHJldHVybiBTX0lT
RElSKCBidWYuc3RfbW9kZSApOworI2Vsc2UKKyAgICAgICByZXR1cm4gKGJ1Zi5zdF9tb2RlICYg
X1NfSUZESVIpICE9IDA7CisjZW5kaWYKKworI2Vsc2UKKyAgICAgICBzdHJ1Y3QgICAgICAgX3N0
YXQgICAgICAgYnVmOworICAgICAgIHN0ZDo6d3N0cmluZyB3c0ZpeGVkUGF0aCA9IFVURjh0bzE2
KCBzRml4ZWRQYXRoLmNfc3RyKCkgKTsKKyAgICAgICBpZiAoIF93c3RhdCggd3NGaXhlZFBhdGgu
Y19zdHIoKSwgJmJ1ZiApID09IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gKGJ1Zi5zdF9tb2RlICYgX1NfSUZESVIp
ICE9IDA7CisjZW5kaWYKK30KKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBh
dGggcmVwcmVzZW50cyBhbiBhcHAgYnVuZGxlICovCitib29sIFBhdGhfSXNBcHBCdW5kbGUoIGNv
bnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworI2lmIGRlZmluZWQoT1NYKQorICAgICAgIE5T
QnVuZGxlICpidW5kbGUgPSBbIE5TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOiBbIE5TU3RyaW5nIHN0
cmluZ1dpdGhVVEY4U3RyaW5nOnNQYXRoLmNfc3RyKCkgXSBdOworICAgICAgIGJvb2wgYmlzQXBw
QnVuZGxlID0gKCBudWxscHRyICE9IGJ1bmRsZSApOworICAgICAgIFsgYnVuZGxlIHJlbGVhc2Ug
XTsKKyAgICAgICByZXR1cm4gYmlzQXBwQnVuZGxlOworI2Vsc2UKKyAgICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogcmV0
dXJucyB0cnVlIGlmIHRoZSB0aGUgcGF0aCBleGlzdHMKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K2Jvb2wgUGF0aF9FeGlzdHMoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQoreworICAgICAg
IHN0ZDo6c3RyaW5nIHNGaXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7CisgICAg
ICAgaWYoIHNGaXhlZFBhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworI2lmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICBzdHJ1Y3QgICAgICAgX3N0YXQgICAgICAg
YnVmOworICAgICAgIHN0ZDo6d3N0cmluZyB3c0ZpeGVkUGF0aCA9IFVURjh0bzE2KCBzRml4ZWRQ
YXRoLmNfc3RyKCkgKTsKKyAgICAgICBpZiAoIF93c3RhdCggd3NGaXhlZFBhdGguY19zdHIoKSwg
JmJ1ZiApID09IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICB9CisjZWxzZQorICAgICAgIHN0cnVjdCBzdGF0IGJ1ZjsKKyAgICAgICBpZiAoIHN0YXQg
KCBzRml4ZWRQYXRoLmNfc3RyKCksICZidWYgKSA9PSAtMSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisjZW5kaWYKKworICAgICAgIHJldHVybiB0cnVl
OworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IGhlbHBlciB0byBm
aW5kIGEgZGlyZWN0b3J5IHVwc3RyZWFtIGZyb20gYSBnaXZlbiBwYXRoCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitzdGQ6OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlSZWN1cnNpdmVs
eSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmlu
ZyAmc3RyRGlyZWN0b3J5TmFtZSApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyRm91bmRQYXRo
ID0gIiI7CisgICAgICAgc3RkOjpzdHJpbmcgc3RyQ3VycmVudFBhdGggPSBQYXRoX0ZpeFNsYXNo
ZXMoIHN0clN0YXJ0RGlyZWN0b3J5ICk7CisgICAgICAgaWYgKCBzdHJDdXJyZW50UGF0aC5sZW5n
dGgoKSA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJuICIiOworCisgICAgICAgYm9vbCBiRXhp
c3RzID0gUGF0aF9FeGlzdHMoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgc3RkOjpzdHJpbmcg
c3RyQ3VycmVudERpcmVjdG9yeU5hbWUgPSBQYXRoX1N0cmlwRGlyZWN0b3J5KCBzdHJDdXJyZW50
UGF0aCApOworICAgICAgIGlmICggYkV4aXN0cyAmJiBzdHJpY21wKCBzdHJDdXJyZW50RGlyZWN0
b3J5TmFtZS5jX3N0cigpLCBzdHJEaXJlY3RvcnlOYW1lLmNfc3RyKCkgKSA9PSAwICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIHN0ckN1cnJlbnRQYXRoOworCisgICAgICAgd2hpbGUoIGJFeGlzdHMg
JiYgc3RyQ3VycmVudFBhdGgubGVuZ3RoKCkgIT0gMCApCisgICAgICAgeworICAgICAgICAgICAg
ICBzdHJDdXJyZW50UGF0aCA9IFBhdGhfU3RyaXBGaWxlbmFtZSggc3RyQ3VycmVudFBhdGggKTsK
KyAgICAgICAgICAgICAgc3RyQ3VycmVudERpcmVjdG9yeU5hbWUgPSBQYXRoX1N0cmlwRGlyZWN0
b3J5KCBzdHJDdXJyZW50UGF0aCApOworICAgICAgICAgICAgICBiRXhpc3RzID0gUGF0aF9FeGlz
dHMoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgICAgICAgIGlmICggYkV4aXN0cyAmJiBzdHJp
Y21wKCBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZS5jX3N0cigpLCBzdHJEaXJlY3RvcnlOYW1lLmNf
c3RyKCkgKSA9PSAwICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHJDdXJyZW50UGF0
aDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gIiI7Cit9CisKKworLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorLy8gUHVycG9zZTogaGVscGVyIHRvIGZpbmQgYSBzdWJkaXJlY3RvcnkgdXBzdHJl
YW0gZnJvbSBhIGdpdmVuIHBhdGgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5n
IFBhdGhfRmluZFBhcmVudFN1YkRpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmlu
ZyAmc3RyU3RhcnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1l
ICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsKKyAgICAgICBzdGQ6
OnN0cmluZyBzdHJDdXJyZW50UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3RyU3RhcnREaXJlY3Rv
cnkgKTsKKyAgICAgICBpZiAoIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09IDAgKQorICAgICAg
ICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0V4aXN0cygg
c3RyQ3VycmVudFBhdGggKTsKKyAgICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJDdXJyZW50UGF0
aC5sZW5ndGgoKSAhPSAwICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0ckN1cnJlbnRQYXRo
ID0gUGF0aF9TdHJpcEZpbGVuYW1lKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgICAgICAgICBi
RXhpc3RzID0gUGF0aF9FeGlzdHMoIHN0ckN1cnJlbnRQYXRoICk7CisKKyAgICAgICAgICAgICAg
aWYoIFBhdGhfRXhpc3RzKCBQYXRoX0pvaW4oIHN0ckN1cnJlbnRQYXRoLCBzdHJEaXJlY3RvcnlO
YW1lICkgKSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHN0ckZvdW5k
UGF0aCA9IFBhdGhfSm9pbiggc3RyQ3VycmVudFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKTsKKyAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgfQorICAg
ICAgIHJldHVybiBzdHJGb3VuZFBhdGg7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8gUHVycG9zZTogcmVhZGluZyBhbmQgd3JpdGluZyBmaWxlcyBpbiB0aGUgdm9ydGV4IGRpcmVj
dG9yeQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordW5zaWduZWQgY2hhciAqIFBhdGhfUmVhZEJp
bmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgaW50ICpwU2l6ZSApCit7
CisgICAgICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgZiA9IGZvcGVu
KCBzdHJGaWxlbmFtZS5jX3N0cigpLCAicmIiICk7CisjZWxzZQorICAgICAgIHN0ZDo6d3N0cmlu
ZyB3c3RyRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAg
IC8vIHRoZSBvcGVuIG9wZXJhdGlvbiBuZWVkcyB0byBiZSBzaGFyYWJsZSwgdGhlcmVmb3JlIHVz
ZSBvZiBfd2Zzb3BlbiBpbnN0ZWFkIG9mIF93Zm9wZW5fcworICAgICAgIGYgPSBfd2Zzb3Blbigg
d3N0ckZpbGVuYW1lLmNfc3RyKCksIEwicmIiLCBfU0hfREVOWU5PICk7CisjZW5kaWYKKyAgICAg
ICAKKyAgICAgICB1bnNpZ25lZCBjaGFyKiBidWYgPSBOVUxMOworCisgICAgICAgaWYgKCBmICE9
IE5VTEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZnNlZWsoZiwgMCwgU0VFS19FTkQpOwor
ICAgICAgICAgICAgICBpbnQgc2l6ZSA9IGZ0ZWxsKGYpOworICAgICAgICAgICAgICBmc2Vlayhm
LCAwLCBTRUVLX1NFVCk7CisKKyAgICAgICAgICAgICAgYnVmID0gbmV3IHVuc2lnbmVkIGNoYXJb
c2l6ZV07CisgICAgICAgICAgICAgIGlmIChidWYgJiYgZnJlYWQoYnVmLCBzaXplLCAxLCBmKSA9
PSAxKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAocFNpemUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBTaXplID0gc2l6ZTsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgIGRlbGV0ZVtdIGJ1ZjsKKyAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IDA7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICBmY2xvc2UoZik7CisgICAgICAgfQorCisgICAgICAg
cmV0dXJuIGJ1ZjsKK30KKwordWludDMyX3QgIFBhdGhfUmVhZEJpbmFyeUZpbGUoIGNvbnN0IHN0
ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcEJ1ZmZlciwgdWludDMyX3Qg
dW5TaXplICkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lYICkKKyAgICAg
ICBmID0gZm9wZW4oIHN0ckZpbGVuYW1lLmNfc3RyKCksICJyYiIgKTsKKyNlbHNlCisgICAgICAg
c3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigp
ICk7CisgICAgICAgZXJybm9fdCBlcnIgPSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19z
dHIoKSwgTCJyYiIgKTsKKyAgICAgICBpZiAoIGVyciAhPSAwICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIGYgPSBOVUxMOworICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgdWludDMyX3QgdW5T
aXplVG9SZXR1cm4gPSAwOworCisgICAgICAgaWYgKCBmICE9IE5VTEwgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgZnNlZWsoIGYsIDAsIFNFRUtfRU5EICk7CisgICAgICAgICAgICAgIHVpbnQz
Ml90IHNpemUgPSAodWludDMyX3QpZnRlbGwoIGYgKTsKKyAgICAgICAgICAgICAgZnNlZWsoIGYs
IDAsIFNFRUtfU0VUICk7CisKKyAgICAgICAgICAgICAgaWYgKCBzaXplID4gdW5TaXplIHx8ICFw
QnVmZmVyICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgdW5TaXplVG9S
ZXR1cm4gPSAodWludDMyX3Qpc2l6ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggZnJlYWQoIHBC
dWZmZXIsIHNpemUsIDEsIGYgKSA9PSAxICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1blNpemVUb1JldHVybiA9ICh1aW50MzJfdClzaXplOwor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ZmNsb3NlKCBmICk7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHVuU2l6ZVRvUmV0dXJuOwor
fQorCitib29sIFBhdGhfV3JpdGVCaW5hcnlGaWxlKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSwgdW5zaWduZWQgY2hhciAqcERhdGEsIHVuc2lnbmVkIG5TaXplKQoreworICAgICAgIEZJ
TEUgKmY7CisjaWYgZGVmaW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3BlbihzdHJGaWxlbmFt
ZS5jX3N0cigpLCAid2IiKTsKKyNlbHNlCisgICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFt
ZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgZXJybm9fdCBlcnIg
PSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3YiIgKTsKKyAgICAgICBp
ZiAoZXJyICE9IDApCisgICAgICAgeworICAgICAgICAgICAgICBmID0gTlVMTDsKKyAgICAgICB9
CisjZW5kaWYKKworICAgICAgIHNpemVfdCB3cml0dGVuID0gMDsKKyAgICAgICBpZiAoZiAhPSBO
VUxMKSB7CisgICAgICAgICAgICAgIHdyaXR0ZW4gPSBmd3JpdGUocERhdGEsIHNpemVvZih1bnNp
Z25lZCBjaGFyKSwgblNpemUsIGYpOworICAgICAgICAgICAgICBmY2xvc2UoZik7CisgICAgICAg
fQorCisgICAgICAgcmV0dXJuIHdyaXR0ZW4gPSBuU2l6ZSA/IHRydWUgOiBmYWxzZTsKK30KKwor
c3RkOjpzdHJpbmcgUGF0aF9SZWFkVGV4dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxl
bmFtZSApCit7CisgICAgICAgLy8gZG9pbmcgaXQgdGhpcyB3YXkgc2VlbXMgYmFja3dhcmRzLCBi
dXQgSSBkb24ndAorICAgICAgIC8vIHNlZSBhbiBlYXN5IHdheSB0byBkbyB0aGlzIHdpdGggQy9D
Kysgc3R5bGUgSU8KKyAgICAgICAvLyB0aGF0IGlzbid0IHdvcnNlLi4uCisgICAgICAgaW50IHNp
emU7CisgICAgICAgdW5zaWduZWQgY2hhciogYnVmID0gUGF0aF9SZWFkQmluYXJ5RmlsZSggc3Ry
RmlsZW5hbWUsICZzaXplICk7CisgICAgICAgaWYgKCFidWYpCisgICAgICAgICAgICAgIHJldHVy
biAiIjsKKworICAgICAgIC8vIGNvbnZlcnQgQ1JMRiAtPiBMRgorICAgICAgIHNpemVfdCBvdXRz
aXplID0gMTsKKyAgICAgICBmb3IgKGludCBpPTE7IGkgPCBzaXplOyBpKyspCisgICAgICAgewor
ICAgICAgICAgICAgICBpZiAoYnVmW2ldID09ICdcbicgJiYgYnVmW2ktMV0gPT0gJ1xyJykgLy8g
Q1JMRgorICAgICAgICAgICAgICAgICAgICAgYnVmW291dHNpemUtMV0gPSAnXG4nOyAvLyAtPkxG
CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdXRzaXplKytd
ID0gYnVmW2ldOyAvLyBqdXN0IGNvcHkKKyAgICAgICB9CisKKyAgICAgICBzdGQ6OnN0cmluZyBy
ZXQoKGNoYXIgKilidWYsIG91dHNpemUpOworICAgICAgIGRlbGV0ZVtdIGJ1ZjsKKyAgICAgICBy
ZXR1cm4gcmV0OworfQorCisKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIGNvbnN0
IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0YSApCit7CisgICAg
ICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgZiA9IGZvcGVuKCBzdHJG
aWxlbmFtZS5jX3N0cigpLCAidyIgKTsKKyNlbHNlCisgICAgICAgc3RkOjp3c3RyaW5nIHdzdHJG
aWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgZXJybm9f
dCBlcnIgPSBfd2ZvcGVuX3MoICZmLCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJ3IiApOworICAg
ICAgIGlmICggZXJyICE9IDAgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7Cisg
ICAgICAgfQorI2VuZGlmCisgICAgICAgCisgICAgICAgYm9vbCBvayA9IGZhbHNlOworCisgICAg
ICAgaWYgKCBmICE9IE5VTEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgb2sgPSBmcHV0cygg
cGNoRGF0YSwgZikgPj0gMDsKKyAgICAgICAgICAgICAgZmNsb3NlKGYpOworICAgICAgIH0KKwor
ICAgICAgIHJldHVybiBvazsKK30KKworYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0
b21pYyggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRh
ICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzdHJUbXBGaWxlbmFtZSA9IHN0ckZpbGVuYW1lICsg
Ii50bXAiOworCisgICAgICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmluZ1RvVGV4dEZpbGUoIHN0clRt
cEZpbGVuYW1lLCBwY2hEYXRhICkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAvLyBQbGF0Zm9ybSBzcGVjaWZpYyBhdG9taWMgZmlsZSByZXBsYWNlbWVudAorI2lmIGRl
ZmluZWQoIF9XSU4zMiApCisgICAgICAgc3RkOjp3c3RyaW5nIHdzRmlsZW5hbWUgPSBVVEY4dG8x
Niggc3RyRmlsZW5hbWUuY19zdHIoKSApOworICAgICAgIHN0ZDo6d3N0cmluZyB3c1RtcEZpbGVu
YW1lID0gVVRGOHRvMTYoIHN0clRtcEZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICBpZiAoICE6
OlJlcGxhY2VGaWxlVyggd3NGaWxlbmFtZS5jX3N0cigpLCB3c1RtcEZpbGVuYW1lLmNfc3RyKCks
IG51bGxwdHIsIDAsIDAsIDAgKSApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBpZiB3ZSBj
b3VsZG4ndCBSZXBsYWNlRmlsZSwgdHJ5IGEgbm9uLWF0b21pYyB3cml0ZSBhcyBhIGZhbGxiYWNr
CisgICAgICAgICAgICAgIGlmICggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzdHJGaWxl
bmFtZSwgcGNoRGF0YSApICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICB9CisjZWxpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAgaWYgKCByZW5hbWUoIHN0clRt
cEZpbGVuYW1lLmNfc3RyKCksIHN0ckZpbGVuYW1lLmNfc3RyKCkgKSA9PSAtMSApCisgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisjZXJyb3IgRG8gbm90IGtub3cgaG93IHRvIHdy
aXRlIGF0b21pYyBmaWxlCisjZW5kaWYKKworICAgICAgIHJldHVybiB0cnVlOworfQorCisKKyNp
ZiBkZWZpbmVkKFdJTjMyKQorI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8vIgorI2Vs
c2UKKyNkZWZpbmUgRklMRV9VUkxfUFJFRklYICJmaWxlOi8vIgorI2VuZGlmCisKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IFR1cm5zIGEgcGF0aCB0byBhIGZpbGUgb24gZGlzayBpbnRvIGEg
VVJMIChvciBqdXN0IHJldHVybnMgdGhlIHZhbHVlIGlmIGl0J3MgYWxyZWFkeSBhIFVSTCkKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCApCit7
CisgICAgICAgaWYgKCAhc3RybmljbXAoIHNSZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHA6Ly8i
LCA3ICkKKyAgICAgICAgICAgICAgfHwgIXN0cm5pY21wKCBzUmVsYXRpdmVQYXRoLmNfc3RyKCks
ICJodHRwczovLyIsIDggKQorICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNSZWxhdGl2ZVBh
dGguY19zdHIoKSwgImZpbGU6Ly8iLCA3ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0
dXJuIHNSZWxhdGl2ZVBhdGg7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHN0ZDo6c3RyaW5nIHNBYnNvbHV0ZSA9IFBhdGhfTWFrZUFic29sdXRlKCBzUmVs
YXRpdmVQYXRoLCBzQmFzZVBhdGggKTsKKyAgICAgICAgICAgICAgaWYgKCBzQWJzb2x1dGUuZW1w
dHkoKSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0Fic29sdXRlOworICAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIEZJTEVfVVJMX1BSRUZJWCApICsgc0Fic29sdXRlOwor
ICAgICAgIH0KK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IFN0cmlwcyBvZmYgZmlsZTovLyBvZmYgYSBVUkwgYW5kIHJldHVy
bnMgdGhlIHBhdGguIEZvciBvdGhlciBraW5kcyBvZiBVUkxzIGFuIGVtcHR5IHN0cmluZyBpcyBy
ZXR1cm5lZAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K3N0ZDo6c3RyaW5nIFBhdGhfVXJsVG9GaWxlUGF0aCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzRmls
ZVVybCApCit7CisgICAgICAgaWYgKCAhc3RybmljbXAoIHNGaWxlVXJsLmNfc3RyKCksIEZJTEVf
VVJMX1BSRUZJWCwgc3RybGVuKCBGSUxFX1VSTF9QUkVGSVggKSApICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHJldHVybiBzRmlsZVVybC5jX3N0cigpICsgc3RybGVuKCBGSUxFX1VSTF9QUkVG
SVggKTsKKyAgICAgICB9CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0
dXJuICIiOworICAgICAgIH0KK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGly
ZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8gc3RvcmUgdXNlciBkb2N1bWVudHMgaW4KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmlu
ZyBHZXRVc2VyRG9jdW1lbnRzUGF0aCgpCit7CisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAg
IFdDSEFSIHJ3Y2hQYXRoW01BWF9QQVRIXTsKKworICAgICAgIGlmICggIVNVQ0NFRURFRCggU0hH
ZXRGb2xkZXJQYXRoVyggTlVMTCwgQ1NJRExfTVlET0NVTUVOVFMgfCBDU0lETF9GTEFHX0NSRUFU
RSwgTlVMTCwgMCwgcndjaFBhdGggKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICB9CisKKyAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRvIFVURi04IGFu
ZCBzdG9yZSBpbiB0aGUgb3V0cHV0CisgICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQYXRoID0gVVRG
MTZ0bzgoIHJ3Y2hQYXRoICk7CisKKyAgICAgICByZXR1cm4gc1VzZXJQYXRoOworI2VsaWYgZGVm
aW5lZCggT1NYICkKKyAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgICAgTlNB
cnJheSAqcGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyggTlNEb2N1
bWVudERpcmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTICk7CisgICAgICAgICAgICAgIGlm
ICggW3BhdGhzIGNvdW50XSA9PSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICIiOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICByZXR1cm4gW1twYXRocyBvYmplY3RBdEluZGV4OjBdIFVURjhTdHJpbmddOworICAg
ICAgIH0KKyNlbGlmIGRlZmluZWQoIExJTlVYICkKKyAgICAgICAvLyBAdG9kbzogbm90IHNvbHZl
ZC9jaGFuZ2VkIGFzIHBhcnQgb2YgT1NYIC0gc3RpbGwgbm90IHJlYWwgLSBqdXN0IHJlbW92ZWQg
b2xkIGNsYXNzIGJhc2VkIHN0ZWFtIGN1dCBhbmQgcGFzdGUKKyAgICAgICBjb25zdCBjaGFyICpw
Y2hIb21lID0gZ2V0ZW52KCAiSE9NRSIgKTsKKyAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCAp
CisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorICAgICAgIHJl
dHVybiBwY2hIb21lOworI2VuZGlmCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk1
N2M2NGQ3MzdhOGMxMTYwNGZhNTg2YTQyMmFjMDgxMjJjYTU1MQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vcGF0aHRvb2xzX3B1YmxpYy5o
CkBAIC0wLDAgKzEsMTMyIEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRp
b24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RyaW5nPgorI2lu
Y2x1ZGUgPHN0ZGludC5oPgorCisvKiogUmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVu
YW1lKSB0byB0aGUgY3VycmVudCBleGVjdXRhYmxlICovCitzdGQ6OnN0cmluZyBQYXRoX0dldEV4
ZWN1dGFibGVQYXRoKCk7CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdv
cmtpbmcgZGlyZWN0b3J5ICovCitzdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtpbmdEaXJlY3Rvcnko
KTsKKworLyoqIFNldHMgdGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnku
IFJldHVybnMgdHJ1ZSBpZiB0aGlzIHdhcyBzdWNjZXNzZnVsLiAqLworYm9vbCBQYXRoX1NldFdv
cmtpbmdEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIHJldHVy
bnMgdGhlIHBhdGggKGluY2x1ZGluZyBmaWxlbmFtZSkgb2YgdGhlIGN1cnJlbnQgc2hhcmVkIGxp
YiBvciBETEwgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0VGhpc01vZHVsZVBhdGgoKTsKKworLyoq
IFJldHVybnMgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lLgorKiBJZiBz
bGFzaCBpcyB1bnNwZWNpZmllZCB0aGUgbmF0aXZlIHBhdGggc2VwYXJhdG9yIG9mIHRoZSBjdXJy
ZW50IHBsYXRmb3JtCisqIHdpbGwgYmUgdXNlZC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBG
aWxlbmFtZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKwor
LyoqIHJldHVybnMganVzdCB0aGUgZmlsZW5hbWUgZnJvbSB0aGUgcHJvdmlkZWQgZnVsbCBvciBy
ZWxhdGl2ZSBwYXRoLiAqLworc3RkOjpzdHJpbmcgUGF0aF9TdHJpcERpcmVjdG9yeSggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLyoqIHJldHVybnMganVz
dCB0aGUgZmlsZW5hbWUgd2l0aCBubyBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1l
LiAKKyogSWYgdGhlcmUgaXMgYSBwYXRoIHRoZSBwYXRoIGlzIGxlZnQgaW50YWN0LiAqLworc3Rk
OjpzdHJpbmcgUGF0aF9TdHJpcEV4dGVuc2lvbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCAp
OworCisvKiogcmV0dXJucyBqdXN0IGV4dGVuc2lvbiBvZiB0aGUgcHJvdmlkZWQgZmlsZW5hbWUg
KGlmIGFueSkuICovCitzdGQ6OnN0cmluZyBQYXRoX0dldEV4dGVuc2lvbiggY29uc3Qgc3RkOjpz
dHJpbmcgJiBzUGF0aCApOworCisvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBwYXRoIGlzIGFic29s
dXRlICovCitib29sIFBhdGhfSXNBYnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCAp
OworCisvKiogTWFrZXMgYW4gYWJzb2x1dGUgcGF0aCBmcm9tIGEgcmVsYXRpdmUgcGF0aCBhbmQg
YSBiYXNlIHBhdGggKi8KK3N0ZDo6c3RyaW5nIFBhdGhfTWFrZUFic29sdXRlKCBjb25zdCBzdGQ6
OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc0Jhc2VQYXRoLCBj
aGFyIHNsYXNoID0gMCApOworCisvKiogRml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3JzIGZv
ciB0aGUgY3VycmVudCBwbGF0Zm9ybS4KKyogSWYgc2xhc2ggaXMgdW5zcGVjaWZpZWQgdGhlIG5h
dGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybQorKiB3aWxsIGJlIHVz
ZWQuICovCitzdGQ6OnN0cmluZyBQYXRoX0ZpeFNsYXNoZXMoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiBSZXR1cm5zIHRoZSBwYXRoIHNlcGFyYXRv
ciBmb3IgdGhlIGN1cnJlbnQgcGxhdGZvcm0gKi8KK2NoYXIgUGF0aF9HZXRTbGFzaCgpOworCisv
KiogSmFtcyB0d28gcGF0aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2luZCBvZiBzbGFzaCAq
Lworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY2hhciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBh
dGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBz
ZWNvbmQsIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6
OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6
c3RyaW5nICYgc2Vjb25kLCBjb25zdCBzdGQ6OnN0cmluZyAmIHRoaXJkLCBjb25zdCBzdGQ6OnN0
cmluZyAmZm91cnRoLCBjaGFyIHNsYXNoID0gMCApOworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCAK
KyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCAKKyAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyAmIHNlY29uZCwgCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgCisgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmb3VydGgsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgZmlmdGgsIAorICAgICAgIGNoYXIgc2xhc2ggPSAwICk7CisKKworLyoqIFJlbW92ZXMgcmVk
dW5kYW50IDxkaXI+Ly4uIGVsZW1lbnRzIGluIHRoZSBwYXRoLiBSZXR1cm5zIGFuIGVtcHR5IHBh
dGggaWYgdGhlIAorKiBzcGVjaWZpZWQgcGF0aCBoYXMgYSBicm9rZW4gbnVtYmVyIG9mIGRpcmVj
dG9yaWVzIGZvciBpdHMgbnVtYmVyIG9mIC4ucy4KKyogSWYgc2xhc2ggaXMgdW5zcGVjaWZpZWQg
dGhlIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybQorKiB3aWxs
IGJlIHVzZWQuICovCitzdGQ6OnN0cmluZyBQYXRoX0NvbXBhY3QoIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgc1Jhd1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8vKiogUmVtb3ZlZCB0cmFpbGluZyBz
bGFzaGVzICovCitzdGQ6OnN0cmluZyBQYXRoX1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiByZXR1cm5zIHRy
dWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIGV4aXN0cyBhbmQgaXMgYSBkaXJlY3RvcnkgKi8KK2Jv
b2wgUGF0aF9Jc0RpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApOworCisvKiog
cmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCByZXByZXNlbnRzIGFuIGFwcCBidW5k
bGUgKi8KK2Jvb2wgUGF0aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCAp
OworCisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSB0aGUgcGF0aCBleGlzdHMgKi8KK2Jvb2wgUGF0
aF9FeGlzdHMoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKTsKKworLyoqIEhlbHBlciBmdW5j
dGlvbnMgdG8gZmluZCBwYXJlbnQgZGlyZWN0b3JpZXMgb3Igc3ViZGlyZWN0b3JpZXMgb2YgcGFy
ZW50IGRpcmVjdG9yaWVzICovCitzdGQ6OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnREaXJlY3RvcnlS
ZWN1cnNpdmVseSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBz
dGQ6OnN0cmluZyAmc3RyRGlyZWN0b3J5TmFtZSApOworc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFy
ZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZlbHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERp
cmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckRpcmVjdG9yeU5hbWUgKTsKKworLyoqIFBh
dGggb3BlcmF0aW9ucyB0byByZWFkIG9yIHdyaXRlIHRleHQvYmluYXJ5IGZpbGVzICovCit1bnNp
Z25lZCBjaGFyICogUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZp
bGVuYW1lLCBpbnQgKnBTaXplICk7Cit1aW50MzJfdCAgUGF0aF9SZWFkQmluYXJ5RmlsZSggY29u
c3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwQnVmZmVyLCB1aW50
MzJfdCB1blNpemUgKTsKK2Jvb2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoIGNvbnN0IHN0ZDo6c3Ry
aW5nICZzdHJGaWxlbmFtZSwgdW5zaWduZWQgY2hhciAqcERhdGEsIHVuc2lnbmVkIG5TaXplICk7
CitzdGQ6OnN0cmluZyBQYXRoX1JlYWRUZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZp
bGVuYW1lICk7Citib29sIFBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBjb25zdCBzdGQ6OnN0
cmluZyAmc3RyRmlsZW5hbWUsIGNvbnN0IGNoYXIgKnBjaERhdGEgKTsKK2Jvb2wgUGF0aF9Xcml0
ZVN0cmluZ1RvVGV4dEZpbGVBdG9taWMoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwg
Y29uc3QgY2hhciAqcGNoRGF0YSApOworCisvKiogUmV0dXJucyBhIGZpbGU6Ly8gdXJsIGZvciBw
YXRocywgb3IgYW4gaHR0cCBvciBodHRwcyB1cmwgaWYgdGhhdCdzIHdoYXQgd2FzIHByb3ZpZGVk
ICovCitzdGQ6OnN0cmluZyBQYXRoX0ZpbGVQYXRoVG9VcmwoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1JlbGF0aXZlUGF0aCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzQmFzZVBhdGggKTsKKworLyoqIFN0
cmlwcyBvZmYgZmlsZTovLyBvZmYgYSBVUkwgYW5kIHJldHVybnMgdGhlIHBhdGguIEZvciBvdGhl
ciBraW5kcyBvZiBVUkxzIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCAqLworc3RkOjpzdHJp
bmcgUGF0aF9VcmxUb0ZpbGVQYXRoKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNGaWxlVXJsICk7CisK
Ky8qKiBSZXR1cm5zIHRoZSByb290IG9mIHRoZSBkaXJlY3RvcnkgdGhlIHN5c3RlbSB3YW50cyB1
cyB0byBzdG9yZSB1c2VyIGRvY3VtZW50cyBpbiAqLworc3RkOjpzdHJpbmcgR2V0VXNlckRvY3Vt
ZW50c1BhdGgoKTsKKworI2lmbmRlZiBNQVhfVU5JQ09ERV9QQVRICisgICAgICAgI2RlZmluZSBN
QVhfVU5JQ09ERV9QQVRIIDMyNzY3CisjZW5kaWYKKworI2lmbmRlZiBNQVhfVU5JQ09ERV9QQVRI
X0lOX1VURjgKKyAgICAgICAjZGVmaW5lIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOCAoTUFYX1VO
SUNPREVfUEFUSCAqIDQpCisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmIGRl
ZmluZWQoV0lOMzIpCisjZGVmaW5lIERZTkFNSUNfTElCX0VYVCAgICAgICAiLmRsbCIKKyNkZWZp
bmUgUFJPR1JBTV9FWFQgIi5leGUiCisjaWZkZWYgX1dJTjY0CisjZGVmaW5lIFBMQVRTVUJESVIg
ICAgICAgIndpbjY0IgorI2Vsc2UKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAid2luMzIiCisj
ZW5kaWYKKyNlbGlmIGRlZmluZWQoT1NYKQorI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQgICAgICAg
Ii5keWxpYiIKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAib3N4MzIiCisjZGVmaW5lIFBST0dS
QU1fRVhUICIiCisjZWxpZiBkZWZpbmVkKExJTlVYKQorI2RlZmluZSBEWU5BTUlDX0xJQl9FWFQg
ICAgICAgIi5zbyIKKyNkZWZpbmUgUFJPR1JBTV9FWFQgIiIKKyNpZiBkZWZpbmVkKCBMSU5VWDMy
ICkKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAibGludXgzMiIKKyNlbHNlCisjZGVmaW5lIFBM
QVRTVUJESVIgICAgICAgImxpbnV4NjQiCisjZW5kaWYKKyNlbHNlCisjd2FybmluZyAiVW5rbm93
biBwbGF0Zm9ybSBmb3IgUExBVFNVQkRJUiIKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAidW5r
bm93bl9wbGF0Zm9ybSIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ4ZWVjMjYwNDU5YzUxZWVjNTY5YTJjYTViMTAyOWE1OWM5YmFjZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxp
YnRvb2xzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSw0MyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0
IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjaW5jbHVkZSAic2hhcmVkbGlidG9v
bHNfcHVibGljLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKF9XSU4zMikK
KyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoUE9TSVgpCisjaW5j
bHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCitTaGFyZWRMaWJIYW5kbGUgU2hhcmVkTGliX0xvYWQo
IGNvbnN0IGNoYXIgKnBjaFBhdGggKQoreworI2lmIGRlZmluZWQoIF9XSU4zMikKKyAgICAgICBy
ZXR1cm4gKFNoYXJlZExpYkhhbmRsZSlMb2FkTGlicmFyeUV4KCBwY2hQYXRoLCBOVUxMLCBMT0FE
X1dJVEhfQUxURVJFRF9TRUFSQ0hfUEFUSCApOworI2VsaWYgZGVmaW5lZChQT1NJWCkKKyAgICAg
ICByZXR1cm4gKFNoYXJlZExpYkhhbmRsZSlkbG9wZW4ocGNoUGF0aCwgUlRMRF9MT0NBTHxSVExE
X05PVyk7CisjZW5kaWYKK30KKwordm9pZCAqU2hhcmVkTGliX0dldEZ1bmN0aW9uKCBTaGFyZWRM
aWJIYW5kbGUgbGliLCBjb25zdCBjaGFyICpwY2hGdW5jdGlvbk5hbWUpCit7CisjaWYgZGVmaW5l
ZCggX1dJTjMyKQorICAgICAgIHJldHVybiAodm9pZCopR2V0UHJvY0FkZHJlc3MoIChITU9EVUxF
KWxpYiwgcGNoRnVuY3Rpb25OYW1lICk7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIHJl
dHVybiBkbHN5bSggbGliLCBwY2hGdW5jdGlvbk5hbWUgKTsKKyNlbmRpZgorfQorCisKK3ZvaWQg
U2hhcmVkTGliX1VubG9hZCggU2hhcmVkTGliSGFuZGxlIGxpYiApCit7CisgICAgICAgaWYgKCAh
bGliICkKKyAgICAgICAgICAgICAgcmV0dXJuOworI2lmIGRlZmluZWQoIF9XSU4zMikKKyAgICAg
ICBGcmVlTGlicmFyeSggKEhNT0RVTEUpbGliICk7CisjZWxpZiBkZWZpbmVkKFBPU0lYKQorICAg
ICAgIGRsY2xvc2UoIGxpYiApOworI2VuZGlmCit9CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGlj
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTAxNjNkYmZhYjJiZTgzNjJmODNiYzIwOTNjMjQyMTRiMjQ3ZmJhZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24v
c2hhcmVkbGlidG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwxMCBAQAorLy89PT09PT09PT0gQ29w
eXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKwor
dHlwZWRlZiB2b2lkICpTaGFyZWRMaWJIYW5kbGU7CisKK1NoYXJlZExpYkhhbmRsZSBTaGFyZWRM
aWJfTG9hZCggY29uc3QgY2hhciAqcGNoUGF0aCApOwordm9pZCAqU2hhcmVkTGliX0dldEZ1bmN0
aW9uKCBTaGFyZWRMaWJIYW5kbGUgbGliLCBjb25zdCBjaGFyICpwY2hGdW5jdGlvbk5hbWUpOwor
dm9pZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGliICk7CisKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJs
aWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19w
dWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OTM3MGIyY2QxYjhjNWFhNGZkNzEwMjk2MmE5ZDRhYmU4
ZjhkYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSw0MzcgQEAKKy8vPT09PT09PT09
IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI2luY2x1ZGUgInN0
cnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBv
c2U6CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIFN0cmluZ0hhc1ByZWZpeCggY29uc3Qg
c3RkOjpzdHJpbmcgJiBzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKQorewor
ICAgICAgIHJldHVybiAwID09IHN0cm5pY21wKCBzU3RyaW5nLmNfc3RyKCksIHNQcmVmaXguY19z
dHIoKSwgc1ByZWZpeC5sZW5ndGgoKSApOworfQorCitib29sIFN0cmluZ0hhc1ByZWZpeENhc2VT
ZW5zaXRpdmUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUHJlZml4ICkKK3sKKyAgICAgICByZXR1cm4gMCA9PSBzdHJuY21wKCBzU3RyaW5nLmNfc3Ry
KCksIHNQcmVmaXguY19zdHIoKSwgc1ByZWZpeC5sZW5ndGgoKSApOworfQorCisKK2Jvb2wgU3Ry
aW5nSGFzU3VmZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmc1N0cmluZywgY29uc3Qgc3RkOjpzdHJp
bmcgJnNTdWZmaXggKQoreworICAgICAgIHNpemVfdCBjU3RyTGVuID0gc1N0cmluZy5sZW5ndGgo
KTsKKyAgICAgICBzaXplX3QgY1N1ZmZpeExlbiA9IHNTdWZmaXgubGVuZ3RoKCk7CisKKyAgICAg
ICBpZiAoIGNTdWZmaXhMZW4gPiBjU3RyTGVuICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgc3RkOjpzdHJpbmcgc1N0cmluZ1N1ZmZpeCA9IHNTdHJpbmcuc3Vic3RyKCBj
U3RyTGVuIC0gY1N1ZmZpeExlbiwgY1N1ZmZpeExlbiApOworCisgICAgICAgcmV0dXJuIDAgPT0g
c3RyaWNtcCggc1N0cmluZ1N1ZmZpeC5jX3N0cigpLCBzU3VmZml4LmNfc3RyKCkgKTsKK30KKwor
Ym9vbCBTdHJpbmdIYXNTdWZmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmc1N0
cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJnNTdWZmaXggKQoreworICAgICAgIHNpemVfdCBjU3Ry
TGVuID0gc1N0cmluZy5sZW5ndGgoKTsKKyAgICAgICBzaXplX3QgY1N1ZmZpeExlbiA9IHNTdWZm
aXgubGVuZ3RoKCk7CisKKyAgICAgICBpZiAoIGNTdWZmaXhMZW4gPiBjU3RyTGVuICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgc3RkOjpzdHJpbmcgc1N0cmluZ1N1ZmZp
eCA9IHNTdHJpbmcuc3Vic3RyKCBjU3RyTGVuIC0gY1N1ZmZpeExlbiwgY1N1ZmZpeExlbiApOwor
CisgICAgICAgcmV0dXJuIDAgPT0gc3RybmNtcCggc1N0cmluZ1N1ZmZpeC5jX3N0cigpLCBzU3Vm
Zml4LmNfc3RyKCksY1N1ZmZpeExlbiApOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisv
LyBQdXJwb3NlOgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgVVRGMTZ0bzgo
Y29uc3Qgd2NoYXJfdCAqIGluKQoreworICAgICAgIHN0ZDo6c3RyaW5nIG91dDsKKyAgICAgICB1
bnNpZ25lZCBpbnQgY29kZXBvaW50ID0gMDsKKyAgICAgICBmb3IgKCA7IGluICYmICppbiAhPSAw
OyArK2luICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICgqaW4gPj0gMHhkODAwICYmICpp
biA8PSAweGRiZmYpCisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAoKCppbiAtIDB4
ZDgwMCkgPDwgMTApICsgMHgxMDAwMDsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoKmluID49IDB4ZGMwMCAmJiAqaW4gPD0gMHhk
ZmZmKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCB8PSAqaW4gLSAweGRj
MDA7CisgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29kZXBvaW50ID0gKmluOworCisgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZXBvaW50
IDw9IDB4N2YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0
aWNfY2FzdDxjaGFyPihjb2RlcG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYg
KGNvZGVwb2ludCA8PSAweDdmZikKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4YzAgfCAo
KGNvZGVwb2ludCA+PiA2KSAmIDB4MWYpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKGNvZGVwb2ludCAmIDB4M2Yp
KSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChjb2RlcG9pbnQgPD0gMHhmZmZmKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4oMHhlMCB8
ICgoY29kZXBvaW50ID4+IDEyKSAmIDB4MGYpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKChjb2RlcG9pbnQgPj4g
NikgJiAweDNmKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwg
c3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8IChjb2RlcG9pbnQgJiAweDNmKSkpOworICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhmMCB8ICgoY29kZXBvaW50ID4+IDE4KSAmIDB4MDcpKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgw
IHwgKChjb2RlcG9pbnQgPj4gMTIpICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoKGNvZGVwb2ludCA+
PiA2KSAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgx
LCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKGNvZGVwb2ludCAmIDB4M2YpKSk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAwOworICAg
ICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBvdXQ7Cit9CisKK3N0ZDo6d3N0
cmluZyBVVEY4dG8xNihjb25zdCBjaGFyICogaW4pCit7CisgICAgICAgc3RkOjp3c3RyaW5nIG91
dDsKKyAgICAgICB1bnNpZ25lZCBpbnQgY29kZXBvaW50ID0gMDsKKyAgICAgICBpbnQgZm9sbG93
aW5nID0gMDsKKyAgICAgICBmb3IgKCA7IGluICYmICppbiAhPSAwOyArK2luICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY2ggPSAqaW47CisgICAgICAgICAgICAgIGlm
IChjaCA8PSAweDdmKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBjb2Rl
cG9pbnQgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyA9IDA7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPD0gMHhiZikKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKGZvbGxvd2luZyA+IDApCisgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gKGNv
ZGVwb2ludCA8PCA2KSB8IChjaCAmIDB4M2YpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tZm9sbG93aW5nOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4ZGYpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IGNoICYgMHgxZjsKKyAgICAgICAgICAgICAgICAg
ICAgIGZvbGxvd2luZyA9IDE7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBp
ZiAoY2ggPD0gMHhlZikKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29k
ZXBvaW50ID0gY2ggJiAweDBmOworICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nID0gMjsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IGNoICYgMHgwNzsKKyAgICAgICAgICAgICAg
ICAgICAgIGZvbGxvd2luZyA9IDM7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYg
KGZvbGxvd2luZyA9PSAwKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBp
ZiAoY29kZXBvaW50ID4gMHhmZmZmKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8d2NoYXJfdD4oMHhk
ODAwICsgKGNvZGVwb2ludCA+PiAxMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
dXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PHdjaGFyX3Q+KDB4ZGMwMCArIChjb2RlcG9pbnQgJiAw
eDAzZmYpKSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2Fz
dDx3Y2hhcl90Pihjb2RlcG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9
IDA7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJuIG91dDsKK30KKwor
Cit2b2lkIHN0cmNweV9zYWZlKCBjaGFyICpwY2hCdWZmZXIsIHNpemVfdCB1bkJ1ZmZlclNpemVC
eXRlcywgY29uc3QgY2hhciAqcGNoU291cmNlICkKK3sKKyAgICAgICBwY2hCdWZmZXJbIHVuQnVm
ZmVyU2l6ZUJ5dGVzIC0gMSBdID0gJ1wwJzsKKyAgICAgICBzdHJuY3B5KCBwY2hCdWZmZXIsIHBj
aFNvdXJjZSwgdW5CdWZmZXJTaXplQnl0ZXMgLSAxICk7Cit9CisKKworLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
Ky8vIFB1cnBvc2U6IGNvbnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitzdGQ6OnN0cmluZyBTdHJpbmdUb1VwcGVyKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJp
bmcgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNPdXQ7CisgICAgICAgc091dC5yZXNlcnZlKCBz
U3RyaW5nLnNpemUoKSArIDEgKTsKKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVy
YXRvciBpID0gc1N0cmluZy5iZWdpbigpOyBpICE9IHNTdHJpbmcuZW5kKCk7IGkrKyApCisgICAg
ICAgeworICAgICAgICAgICAgICBzT3V0LnB1c2hfYmFjayggKGNoYXIpdG91cHBlciggKmkgKSAp
OworICAgICAgIH0KKworICAgICAgIHJldHVybiBzT3V0OworfQorCisKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisvLyBQdXJwb3NlOiBjb252ZXJ0cyBhIHN0cmluZyB0byBsb3dlciBjYXNlCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorc3RkOjpzdHJpbmcgU3RyaW5nVG9Mb3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3Ry
aW5nICkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzT3V0OworICAgICAgIHNPdXQucmVzZXJ2ZSgg
c1N0cmluZy5zaXplKCkgKyAxICk7CisgICAgICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3RfaXRl
cmF0b3IgaSA9IHNTdHJpbmcuYmVnaW4oKTsgaSAhPSBzU3RyaW5nLmVuZCgpOyBpKysgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgc091dC5wdXNoX2JhY2soIChjaGFyKXRvbG93ZXIoICppICkg
KTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc091dDsKK30KKworCit1aW50MzJfdCBSZXR1
cm5TdGRTdHJpbmcoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ZhbHVlLCBjaGFyICpwY2hCdWZmZXIs
IHVpbnQzMl90IHVuQnVmZmVyTGVuICkKK3sKKyAgICAgICB1aW50MzJfdCB1bkxlbiA9ICh1aW50
MzJfdClzVmFsdWUubGVuZ3RoKCkgKyAxOworICAgICAgIGlmKCAhcGNoQnVmZmVyIHx8ICF1bkJ1
ZmZlckxlbiApCisgICAgICAgICAgICAgIHJldHVybiB1bkxlbjsKKworICAgICAgIGlmKCB1bkJ1
ZmZlckxlbiA8IHVuTGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaEJ1ZmZlclswXSA9
ICdcMCc7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIG1l
bWNweSggcGNoQnVmZmVyLCBzVmFsdWUuY19zdHIoKSwgdW5MZW4gKTsKKyAgICAgICB9CisKKyAg
ICAgICByZXR1cm4gdW5MZW47Cit9CisKK3ZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3Ry
aW5nICYgc0Rlc3QsIGNvbnN0IGNoYXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4g
KQoreworICAgICAgIHNEZXN0LnJlc2l6ZSggdW5CdWZmZXJMZW4gKyAxICk7CisgICAgICAgbWVt
Y3B5KCBjb25zdF9jYXN0PCBjaGFyKiA+KCBzRGVzdC5jX3N0cigpICksIHBjaEJ1ZmZlciwgdW5C
dWZmZXJMZW4gKTsKKyAgICAgICBjb25zdF9jYXN0PCBjaGFyKiA+KCBzRGVzdC5jX3N0cigpIClb
IHVuQnVmZmVyTGVuIF0gPSAnXDAnOworfQorCisvKiogUmV0dXJucyBhIHN0ZDo6c3RyaW5nIGZy
b20gYSB1aW50NjRfdCAqLworc3RkOjpzdHJpbmcgVWludDY0VG9TdHJpbmcoIHVpbnQ2NF90IHVs
VmFsdWUgKQoreworICAgICAgIGNoYXIgYnVmWyAyMiBdOworI2lmIGRlZmluZWQoIF9XSU4zMiAp
CisgICAgICAgc3ByaW50Zl9zKCBidWYsICIlbGx1IiwgdWxWYWx1ZSApOworI2Vsc2UKKyAgICBz
bnByaW50ZiggYnVmLCBzaXplb2YoIGJ1ZiApLCAiJWxsdSIsIChsb25nIGxvbmcgdW5zaWduZWQg
aW50ICkgdWxWYWx1ZSApOworI2VuZGlmCisgICAgICAgcmV0dXJuIGJ1ZjsKK30KKworCisvKiog
cmV0dXJucyBhIHVpbnQ2NF90IGZyb20gYSBzdHJpbmcgKi8KK3VpbnQ2NF90IFN0cmluZ1RvVWlu
dDY0KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSApCit7CisgICAgICAgcmV0dXJuIHN0cnRv
dWxsKCBzVmFsdWUuY19zdHIoKSwgTlVMTCwgMCApOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLyBQdXJwb3NlOiBIZWxwZXIgZm9yIGNvbnZlcnRpbmcgYSBudW1lcmljIHZhbHVlIHRv
IGEgaGV4IGRpZ2l0LCB2YWx1ZSBzaG91bGQgYmUgMC0xNS4KKy8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK2NoYXIgY0ludFRvSGV4RGlnaXQoIGludCBuVmFsdWUgKQoreworICAgICAgIC8vQXNzZXJ0
KCBuVmFsdWUgPj0gMCAmJiBuVmFsdWUgPD0gMTUgKTsKKyAgICAgICByZXR1cm4gIjAxMjM0NTY3
ODlBQkNERUYiWyBuVmFsdWUgJiAxNSBdOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisv
LyBQdXJwb3NlOiBIZWxwZXIgZm9yIGNvbnZlcnRpbmcgYSBoZXggY2hhciB2YWx1ZSB0byBudW1l
cmljLCByZXR1cm4gLTEgaWYgdGhlIGNoYXIKKy8vICAgICAgICAgIGlzIG5vdCBhIHZhbGlkIGhl
eCBkaWdpdC4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2ludCBpSGV4Q2hhclRvSW50KCBjaGFy
IGNWYWx1ZSApCit7CisgICAgICAgaW50MzJfdCBpVmFsdWUgPSBjVmFsdWU7CisgICAgICAgaWYg
KCAodWludDMyX3QpKCBpVmFsdWUgLSAnMCcgKSA8IDEwICkKKyAgICAgICAgICAgICAgcmV0dXJu
IGlWYWx1ZSAtICcwJzsKKworICAgICAgIGlWYWx1ZSB8PSAweDIwOworICAgICAgIGlmICggKHVp
bnQzMl90KSggaVZhbHVlIC0gJ2EnICkgPCA2ICkKKyAgICAgICAgICAgICAgcmV0dXJuIGlWYWx1
ZSAtICdhJyArIDEwOworCisgICAgICAgcmV0dXJuIC0xOworfQorCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLyBQdXJwb3NlOiBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvZiBlbmNvZGUsIHdv
cmtzIGluIHRoZSBzdHJpY3QgUkZDIG1hbm5lciwgb3IKKy8vICAgICAgICAgIHdpdGggc3BhY2Vz
IHR1cm5lZCB0byArIGxpa2UgSFRNTCBmb3JtIGVuY29kaW5nLgorLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQordm9pZCBWX1VSTEVuY29kZUludGVybmFsKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RM
ZW4sIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4sIGJvb2wgYlVzZVBsdXNG
b3JTcGFjZSApCit7CisgICAgICAgLy9Bc3NlcnRNc2coIG5EZXN0TGVuID4gMypuU291cmNlTGVu
LCAiVGFyZ2V0IGJ1ZmZlciBmb3IgVl9VUkxFbmNvZGUgc2hvdWxkIGJlIDN4IHNvdXJjZSBsZW5n
dGgsIHBsdXMgb25lIGZvciB0ZXJtaW5hdGluZyBudWxsXG4iICk7CisgICAgICAgCisgICAgICAg
aW50IGlEZXN0UG9zID0gMDsKKyAgICAgICBmb3IgKCBpbnQgaT0wOyBpIDwgblNvdXJjZUxlbjsg
KytpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIHdvcnN0IGNhc2Ugd2UgbmVlZCAzIGFk
ZGl0aW9uYWwgY2hhcnMKKyAgICAgICAgICAgICAgaWYoIChpRGVzdFBvcyszKSA+IG5EZXN0TGVu
ICApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHBjaERlc3RbMF0gPSAn
XDAnOworLy8gICAgICAgICAgICAgICAgICAgICBBc3NlcnRNc2coIGZhbHNlLCAiVGFyZ2V0IGJ1
ZmZlciB0b28gc2hvcnRcbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIFdlIGFsbG93IG9ubHkgYS16LCBBLVosIDAt
OSwgcGVyaW9kLCB1bmRlcnNjb3JlLCBhbmQgaHlwaGVuIHRvIHBhc3MgdGhyb3VnaCB1bmVzY2Fw
ZWQuCisgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgY2hhcmFjdGVycyBhbGxvd2VkIGJ5
IGJvdGggdGhlIG9yaWdpbmFsIFJGQyAxNzM4IGFuZCB0aGUgbGF0ZXN0IFJGQyAzOTg2LgorICAg
ICAgICAgICAgICAvLyBDdXJyZW50IHNwZWNzIGFsc28gYWxsb3cgJ34nLCBidXQgdGhhdCBpcyBm
b3JiaWRkZW4gdW5kZXIgb3JpZ2luYWwgUkZDIDE3MzguCisgICAgICAgICAgICAgIGlmICggISgg
cGNoU291cmNlW2ldID49ICdhJyAmJiBwY2hTb3VyY2VbaV0gPD0gJ3onICkgJiYgISggcGNoU291
cmNlW2ldID49ICdBJyAmJiBwY2hTb3VyY2VbaV0gPD0gJ1onICkgJiYgIShwY2hTb3VyY2VbaV0g
Pj0gJzAnICYmIHBjaFNvdXJjZVtpXSA8PSAnOScgKQorICAgICAgICAgICAgICAgICAgICAgICYm
IHBjaFNvdXJjZVtpXSAhPSAnLScgJiYgcGNoU291cmNlW2ldICE9ICdfJyAmJiBwY2hTb3VyY2Vb
aV0gIT0gJy4nICAgICAgIAorICAgICAgICAgICAgICApCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIGlmICggYlVzZVBsdXNGb3JTcGFjZSAmJiBwY2hTb3VyY2VbaV0gPT0g
JyAnICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwY2hEZXN0W2lEZXN0UG9zKytdID0gJysnOworICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnJSc7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDhfdCBpVmFsdWUgPSBwY2hTb3VyY2VbaV07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCBpVmFsdWUgPT0gMCApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0
W2lEZXN0UG9zKytdID0gJzAnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
Y2hEZXN0W2lEZXN0UG9zKytdID0gJzAnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdp
dDEgPSBjSW50VG9IZXhEaWdpdCggaVZhbHVlICUgMTYgKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaVZhbHVlIC89IDE2OworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFyIGNIZXhEaWdpdDIgPSBjSW50VG9IZXhEaWdpdCggaVZhbHVlICk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSBjSGV4
RGlnaXQyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0
UG9zKytdID0gY0hleERpZ2l0MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytd
ID0gcGNoU291cmNlW2ldOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgaWYo
IChpRGVzdFBvcysxKSA+IG5EZXN0TGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaERl
c3RbMF0gPSAnXDAnOworICAgICAgICAgICAgICAvL0Fzc2VydE1zZyggZmFsc2UsICJUYXJnZXQg
YnVmZmVyIHRvbyBzaG9ydCB0byB0ZXJtaW5hdGVcbiIgKTsKKyAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgIH0KKworICAgICAgIC8vIE51bGwgdGVybWluYXRlCisgICAgICAgcGNoRGVzdFtp
RGVzdFBvcysrXSA9IDA7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9z
ZTogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgZGVjb2RlLCB3b3JrcyBpbiB0aGUgc3RyaWN0
IFJGQyBtYW5uZXIsIG9yCisvLyAgICAgICAgICB3aXRoIHNwYWNlcyB0dXJuZWQgdG8gKyBsaWtl
IEhUTUwgZm9ybSBlbmNvZGluZy4KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgIFJldHVybnMg
dGhlIGFtb3VudCBvZiBzcGFjZSB1c2VkIGluIHRoZSBvdXRwdXQgYnVmZmVyLgorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorc2l6ZV90IFZfVVJMRGVjb2RlSW50ZXJuYWwoIGNoYXIgKnBjaERlY29k
ZURlc3QsIGludCBuRGVjb2RlRGVzdExlbiwgY29uc3QgY2hhciAqcGNoRW5jb2RlZFNvdXJjZSwg
aW50IG5FbmNvZGVkU291cmNlTGVuLCBib29sIGJVc2VQbHVzRm9yU3BhY2UgKQoreworICAgICAg
IGlmICggbkRlY29kZURlc3RMZW4gPCBuRW5jb2RlZFNvdXJjZUxlbiApCisgICAgICAgeworICAg
ICAgICAgICAgICAvL0Fzc2VydE1zZyggZmFsc2UsICJWX1VSTERlY29kZSBuZWVkcyBhIGRlc3Qg
YnVmZmVyIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHRoZSBzb3VyY2UiICk7CisgICAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgIH0KKworICAgICAgIGludCBpRGVzdFBvcyA9IDA7CisgICAgICAg
Zm9yKCBpbnQgaT0wOyBpIDwgbkVuY29kZWRTb3VyY2VMZW47ICsraSApCisgICAgICAgeworICAg
ICAgICAgICAgICBpZiAoIGJVc2VQbHVzRm9yU3BhY2UgJiYgcGNoRW5jb2RlZFNvdXJjZVtpXSA9
PSAnKycgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVE
ZXN0WyBpRGVzdFBvcysrIF0gPSAnICc7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ZWxzZSBpZiAoIHBjaEVuY29kZWRTb3VyY2VbaV0gPT0gJyUnICkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgLy8gUGVyY2VudCBzaWduaWZpZXMgYW4gZW5jb2RlZCB2YWx1
ZSwgbG9vayBhaGVhZCBmb3IgdGhlIGhleCBjb2RlLCBjb252ZXJ0IHRvIG51bWVyaWMsIGFuZCB1
c2UgdGhhdAorCisgICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBtYWtlIHN1cmUgd2UgaGF2
ZSAyIG1vcmUgY2hhcnMKKyAgICAgICAgICAgICAgICAgICAgIGlmICggaSA8IG5FbmNvZGVkU291
cmNlTGVuIC0gMiApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciBjSGV4RGlnaXQxID0gcGNoRW5jb2RlZFNvdXJjZVtpKzFdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MiA9IHBjaEVuY29kZWRTb3VyY2Vb
aSsyXTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhlIGNoYXJzIGlu
dG8gYSBoZXggdmFsdWUsIGlmIHRoZXkgYXJlIG5vdCB2YWxpZCwgdGhlbiB3ZSdsbAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgcGxhY2UgdGhlICUgYW5kIHRoZSBmb2xsb3dp
bmcgdHdvIGNoYXJzIGRpcmVjdCBpbnRvIHRoZSBzdHJpbmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gZXZlbiB0aG91Z2ggdGhpcyByZWFsbHkgc2hvdWxkbid0IGhhcHBlbiwgd2hv
IGtub3dzIHdoYXQgYmFkIGNsaWVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBt
YXkgZG8gd2l0aCBlbmNvZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGJW
YWxpZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpVmFsdWUgPSBp
SGV4Q2hhclRvSW50KCBjSGV4RGlnaXQxICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCBpVmFsdWUgIT0gLTEgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVZhbHVlICo9IDE2OworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgaVZhbHVlMiA9IGlIZXhDaGFyVG9JbnQoIGNIZXhE
aWdpdDIgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpVmFsdWUy
ICE9IC0xICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVZhbHVlICs9IGlWYWx1ZTI7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVz
dFBvcysrIF0gPSAoY2hhcilpVmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiVmFsaWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCAhYlZhbGlkICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0
UG9zKysgXSA9ICclJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVj
b2RlRGVzdFsgaURlc3RQb3MrKyBdID0gY0hleERpZ2l0MTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gY0hleERpZ2l0MjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAgICAgIC8vIFNraXAgYWhlYWQKKyAgICAgICAgICAgICAgICAgICAg
IGkgKz0gMjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9
IHBjaEVuY29kZWRTb3VyY2VbaV07CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAg
ICAvLyBXZSBtYXkgbm90IGhhdmUgZXh0cmEgcm9vbSB0byBOVUxMIHRlcm1pbmF0ZSwgc2luY2Ug
dGhpcyBjYW4gYmUgdXNlZCBvbiByYXcgZGF0YSwgYnV0IGlmIHdlIGRvCisgICAgICAgLy8gZ28g
YWhlYWQgYW5kIGRvIGl0IGFzIHRoaXMgY2FuIGF2b2lkIGJ1Z3MuCisgICAgICAgaWYgKCBpRGVz
dFBvcyA8IG5EZWNvZGVEZXN0TGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBjaERlY29k
ZURlc3RbaURlc3RQb3NdID0gMDsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gKHNpemVfdClp
RGVzdFBvczsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogRW5jb2Rl
cyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVuY29kaW5nIGZvcm1hdCwgc2Vl
IHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKKy8vICAgICAgICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUg
Y2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24sIGJ1dCB1c2VzICsgZm9yIHNw
YWNlIGFzIGlzCisvLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4gSFRNTCBmb3JtIGVuY29kaW5n
LCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMuCisvLworLy8gICAgICAgICAg
RGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHNvdXJjZSBidWZmZXIg
dG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3Zv
aWQgVl9VUkxFbmNvZGUoIGNoYXIgKnBjaERlc3QsIGludCBuRGVzdExlbiwgY29uc3QgY2hhciAq
cGNoU291cmNlLCBpbnQgblNvdXJjZUxlbiApCit7CisgICAgICAgcmV0dXJuIFZfVVJMRW5jb2Rl
SW50ZXJuYWwoIHBjaERlc3QsIG5EZXN0TGVuLCBwY2hTb3VyY2UsIG5Tb3VyY2VMZW4sIHRydWUg
KTsKK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBEZWNvZGVzIGEg
c3RyaW5nIChvciBiaW5hcnkgZGF0YSkgZnJvbSBVUkwgZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZj
MTczOCBzZWN0aW9uIDIuMi4gIAorLy8gICAgICAgICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxs
IGlzbid0IGEgc3RyaWN0IFJGQyBpbXBsZW1lbnRhdGlvbiwgYnV0IHVzZXMgKyBmb3Igc3BhY2Ug
YXMgaXMKKy8vICAgICAgICAgIHRoZSBzdGFuZGFyZCBpbiBIVE1MIGZvcm0gZW5jb2RpbmcsIGRl
c3BpdGUgaXQgbm90IGJlaW5nIHBhcnQgb2YgdGhlIFJGQy4KKy8vCisvLyAgICAgICAgICBEZXN0
IGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc291cmNlIGJ1ZmZlciB0byBn
dWFyYW50ZWUgcm9vbSBmb3IgZGVjb2RlLgorLy8gICAgICAgICAgICAgICAgICAgICBEZXN0IGJ1
ZmZlciBiZWluZyB0aGUgc2FtZSBhcyB0aGUgc291cmNlIGJ1ZmZlciAoZGVjb2RlIGluLXBsYWNl
KSBpcyBleHBsaWNpdGx5IGFsbG93ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzaXplX3Qg
Vl9VUkxEZWNvZGUoIGNoYXIgKnBjaERlY29kZURlc3QsIGludCBuRGVjb2RlRGVzdExlbiwgY29u
c3QgY2hhciAqcGNoRW5jb2RlZFNvdXJjZSwgaW50IG5FbmNvZGVkU291cmNlTGVuICkKK3sKKyAg
ICAgICByZXR1cm4gVl9VUkxEZWNvZGVJbnRlcm5hbCggcGNoRGVjb2RlRGVzdCwgbkRlY29kZURl
c3RMZW4sIHBjaEVuY29kZWRTb3VyY2UsIG5FbmNvZGVkU291cmNlTGVuLCB0cnVlICk7Cit9CisK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQgVl9TdHJpcEV4dGVuc2lvbiggc3RkOjpzdHJp
bmcgJmluICkKK3sKKyAgICAgICAvLyBGaW5kIHRoZSBsYXN0IGRvdC4gSWYgaXQncyBmb2xsb3dl
ZCBieSBhIGRvdCBvciBhIHNsYXNoLCB0aGVuIGl0J3MgcGFydCBvZiBhIAorICAgICAgIC8vIGRp
cmVjdG9yeSBzcGVjaWZpZXIgbGlrZSAuLi8uLi9zb21lZGlyLy4vYmxhaC4KKyAgICAgICBzdGQ6
OnN0cmluZzo6c2l6ZV90eXBlIHRlc3QgPSBpbi5yZmluZCggJy4nICk7CisgICAgICAgaWYgKCB0
ZXN0ICE9IHN0ZDo6c3RyaW5nOjpucG9zICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIFRo
aXMgaGFuZGxlcyB0aGluZ3MgbGlrZSAiLlxibGFoIiBvciAiYzpcbXlAZW1haWwuY29tXGFiY1xk
ZWZcZ2VoIgorICAgICAgICAgICAgICAvLyBXaGljaCB3b3VsZCBvdGhlcndpc2Ugd2luZCB1cCB3
aXRoICIiIGFuZCAiYzpcbXlAZW1haWwiLCByZXNwZWN0aXZlbHkuCisgICAgICAgICAgICAgIGlm
ICggaW4ucmZpbmQoICdcXCcgKSA8IHRlc3QgJiYgaW4ucmZpbmQoICcvJyApIDwgdGVzdCApCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGluLnJlc2l6ZSggdGVzdCApOwor
ICAgICAgICAgICAgICB9CisgICAgICAgfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MDYzZTU0YTI4YzczNGI3N2Y5MmY3NzgzNDZhM2E2YTg1YzY0ZjM0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9zdHJ0b29sc19wdWJsaWMu
aApAQCAtMCwwICsxLDEyNiBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0
aW9uID09PT09PT09PT09PS8vCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKyNp
bmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworLyoqIHJldHVybnMg
dHJ1ZSBpZiB0aGUgc3RyaW5nIGhhcyB0aGUgcHJlZml4ICovCitib29sIFN0cmluZ0hhc1ByZWZp
eCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVm
aXggKTsKK2Jvb2wgU3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJp
bmcgJiBzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKTsKKworLyoqIHJldHVy
bnMgaWYgdGhlIHN0cmluZyBoYXMgdGhlIHN1ZmZpeCAqLworYm9vbCBTdHJpbmdIYXNTdWZmaXgo
IGNvbnN0IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCAp
OworYm9vbCBTdHJpbmdIYXNTdWZmaXhDYXNlU2Vuc2l0aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAm
c1N0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJnNTdWZmaXggKTsKKworLyoqIGNvbnZlcnRzIGEg
VVRGLTE2IHN0cmluZyB0byBhIFVURi04IHN0cmluZyAqLworc3RkOjpzdHJpbmcgVVRGMTZ0bzgo
Y29uc3Qgd2NoYXJfdCAqIGluKTsKKworLyoqIGNvbnZlcnRzIGEgVVRGLTggc3RyaW5nIHRvIGEg
VVRGLTE2IHN0cmluZyAqLworc3RkOjp3c3RyaW5nIFVURjh0bzE2KGNvbnN0IGNoYXIgKiBpbik7
CisjZGVmaW5lIFV0ZjE2RnJvbVV0ZjggVVRGOHRvMTYKKworLyoqIHNhZmVseSBjb3B5IGEgc3Ry
aW5nIGludG8gYSBidWZmZXIgKi8KK3ZvaWQgc3RyY3B5X3NhZmUoIGNoYXIgKnBjaEJ1ZmZlciwg
c2l6ZV90IHVuQnVmZmVyU2l6ZUJ5dGVzLCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKTsKK3RlbXBs
YXRlPCBzaXplX3QgYnVmZmVyU2l6ZSA+Cit2b2lkIHN0cmNweV9zYWZlKCBjaGFyICgmIGJ1ZmZl
cikgWyBidWZmZXJTaXplIF0sIGNvbnN0IGNoYXIgKnBjaFNvdXJjZSApIAoreworICAgICAgIHN0
cmNweV9zYWZlKCBidWZmZXIsIGJ1ZmZlclNpemUsIHBjaFNvdXJjZSApOworfQorCisKKy8qKiBj
b252ZXJ0cyBhIHN0cmluZyB0byB1cHBlciBjYXNlICovCitzdGQ6OnN0cmluZyBTdHJpbmdUb1Vw
cGVyKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcgKTsKKworLyoqIGNvbnZlcnRzIGEgc3Ry
aW5nIHRvIGxvd2VyIGNhc2UgKi8KK3N0ZDo6c3RyaW5nIFN0cmluZ1RvTG93ZXIoIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1N0cmluZyApOworCisvLyB3ZSBzdHJpY21wIChmcm9tIFdJTikgYnV0IGl0
IGlzbid0IFBPU0lYIC0gT1NYL0xJTlVYIGhhdmUgc3RyY2FzZWNtcCBzbyBqdXN0IGlubGluZSBi
cmlkZ2UgdG8gaXQKKyNpZiBkZWZpbmVkKCBPU1ggKSB8fCBkZWZpbmVkKCBMSU5VWCApCisjaW5j
bHVkZSA8c3RyaW5ncy5oPgoraW5saW5lIGludCBzdHJpY21wKGNvbnN0IGNoYXIgKnBTdHIxLCBj
b25zdCBjaGFyICpwU3RyMikgeyByZXR1cm4gc3RyY2FzZWNtcChwU3RyMSxwU3RyMik7IH0KKyNk
ZWZpbmUgX3N0cmljbXAgc3RyaWNtcAoraW5saW5lIGludCBzdHJuaWNtcCggY29uc3QgY2hhciAq
cFN0cjEsIGNvbnN0IGNoYXIgKnBTdHIyLCBzaXplX3QgdW5CdWZmZXJMZW4gKSB7IHJldHVybiBz
dHJuY2FzZWNtcCggcFN0cjEscFN0cjIsIHVuQnVmZmVyTGVuICk7IH0KKyNkZWZpbmUgX3N0cm5p
Y21wIHN0cm5pY21wCisKKyNkZWZpbmUgX3ZzbnByaW50Zl9zIHZzbnByaW50ZgorCisjZGVmaW5l
IF9UUlVOQ0FURSAoKHNpemVfdCktMSkKKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBPU1ggKQor
Ly8gYmVoYXZpb3JzIGVuc3VyZSBOVUxMLXRlcm1pbmF0aW9uIGF0IGxlYXN0IGFzIHdlbGwgYXMg
X1RSVU5DQVRFIGRvZXMsIGJ1dAorLy8gd2NzbmNweV9zL3N0cm5jcHlfcyBjYW4gbm9uLU5VTEwt
dGVybWluYXRlLCB3Y3NsY3B5L3N0cmxjcHkgY2FuIG5vdC4KK2lubGluZSBlcnJub190IHdjc25j
cHlfcyh3Y2hhcl90ICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3Qgd2No
YXJfdCAqc3RyU291cmNlLCBzaXplX3QgY291bnQpCit7CisgICAgICAgcmV0dXJuIHdjc2xjcHko
c3RyRGVzdCwgc3RyU291cmNlLCBudW1iZXJPZkVsZW1lbnRzKTsKK30KKworaW5saW5lIGVycm5v
X3Qgc3RybmNweV9zKGNoYXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBjb25z
dCBjaGFyICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKK3sKKyAgICAgICByZXR1cm4gc3RybGNw
eShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMpOworfQorCisjZW5kaWYKKwor
I2lmIGRlZmluZWQoIExJTlVYICkKKy8vIHRoaXMgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgcmV0
dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBkZXN0aW5hdGlvbiB3YXMgCisvLyB0cnVuY2F0ZWQsIGJ1
dCB0aGF0IGlzIHN0cmFpZ2h0Zm9yd2FyZCB0byBmaXggaWYgYW55Ym9keSBhY3R1YWxseSBuZWVk
cyB0aGUKKy8vIHJldHVybiBjb2RlLiAKKyNpbmNsdWRlICJzdHJpbmcuaCIKK2lubGluZSB2b2lk
IHdjc25jcHlfcyh3Y2hhcl90ICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29u
c3Qgd2NoYXJfdCAqc3RyU291cmNlLCBzaXplX3QgY291bnQpCit7CisgICAgICAgd2NzbmNweShz
dHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMpOworICAgICAgIHN0ckRlc3RbbnVt
YmVyT2ZFbGVtZW50cy0xXSA9ICdcMCc7Cit9CisKK2lubGluZSB2b2lkIHN0cm5jcHlfcyhjaGFy
ICpzdHJEZXN0LCBzaXplX3QgbnVtYmVyT2ZFbGVtZW50cywgY29uc3QgY2hhciAqc3RyU291cmNl
LCBzaXplX3QgY291bnQpCit7CisgICAgICAgc3RybmNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51
bWJlck9mRWxlbWVudHMpOworICAgICAgIHN0ckRlc3RbbnVtYmVyT2ZFbGVtZW50cy0xXSA9ICdc
MCc7Cit9CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggX1dJTjMyICkgJiYgX01TQ19WRVIgPCAx
ODAwCitpbmxpbmUgdWludDY0X3Qgc3RydG91bGwoY29uc3QgY2hhciAqc3RyLCBjaGFyICoqZW5k
cHRyLCBpbnQgYmFzZSkgeyByZXR1cm4gX3N0cnRvdWk2NCggc3RyLCBlbmRwdHIsIGJhc2UgKTsg
fQorI2VuZGlmCisKKy8qIEhhbmRsZXMgY29weWluZyBhIHN0ZDo6c3RyaW5nIGludG8gYSBidWZm
ZXIgYXMgd291bGQgYmUgcHJvdmlkZWQgaW4gYW4gQVBJICovCit1aW50MzJfdCBSZXR1cm5TdGRT
dHJpbmcoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ZhbHVlLCBjaGFyICpwY2hCdWZmZXIsIHVpbnQz
Ml90IHVuQnVmZmVyTGVuICk7CisKKy8qIEhhbmRsZXMgY29weWluZyBhIGJ1ZmZlciBpbnRvIGFu
IHN0ZDo6c3RyaW5nIGFuZCBhdXRvIGFkZHMgbnVsbCB0ZXJtaW5hdG9yICovCit2b2lkIEJ1ZmZl
clRvU3RkU3RyaW5nKCBzdGQ6OnN0cmluZyAmIHNEZXN0LCBjb25zdCBjaGFyICpwY2hCdWZmZXIs
IHVpbnQzMl90IHVuQnVmZmVyTGVuICk7CisKKy8qKiBSZXR1cm5zIGEgc3RkOjpzdHJpbmcgZnJv
bSBhIHVpbnQ2NF90ICovCitzdGQ6OnN0cmluZyBVaW50NjRUb1N0cmluZyggdWludDY0X3QgdWxW
YWx1ZSApOworCisvKiogcmV0dXJucyBhIHVpbnQ2NF90IGZyb20gYSBzdHJpbmcgKi8KK3VpbnQ2
NF90IFN0cmluZ1RvVWludDY0KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNWYWx1ZSApOworCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBFbmNvZGVzIGEgc3RyaW5nIChvciBiaW5h
cnkgZGF0YSkgZnJvbSBVUkwgZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9uIDIu
Mi4gIAorLy8gICAgICAgICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3RyaWN0
IFJGQyBpbXBsZW1lbnRhdGlvbiwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAgICAg
ICAgIHRoZSBzdGFuZGFyZCBpbiBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90IGJl
aW5nIHBhcnQgb2YgdGhlIFJGQy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91bGQg
YmUgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9vbSBm
b3IgZGVjb2RlLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1VSTEVuY29kZSggY2hh
ciAqcGNoRGVzdCwgaW50IG5EZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291
cmNlTGVuICk7CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IERlY29kZXMg
YSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNlZSBy
ZmMxNzM4IHNlY3Rpb24gMi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhlIGNh
bGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBzcGFj
ZSBhcyBpcworLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGluZywg
ZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAgICAgIERl
c3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVyIHRv
IGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCisvLyAgICAgICAgICAgICAgICAgICAgIERlc3Qg
YnVmZmVyIGJlaW5nIHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgYnVmZmVyIChkZWNvZGUgaW4tcGxh
Y2UpIGlzIGV4cGxpY2l0bHkgYWxsb3dlZC4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3NpemVf
dCBWX1VSTERlY29kZSggY2hhciAqcGNoRGVjb2RlRGVzdCwgaW50IG5EZWNvZGVEZXN0TGVuLCBj
b25zdCBjaGFyICpwY2hFbmNvZGVkU291cmNlLCBpbnQgbkVuY29kZWRTb3VyY2VMZW4gKTsKKwor
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogc3RyaXAgZXh0ZW5zaW9uIGZyb20g
YSBwYXRoCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfU3RyaXBFeHRlbnNpb24oIHN0
ZDo6c3RyaW5nICZpbiApOworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNGYzMDQyNGE5ZmYzNjFjODM2ZjlhNGMwOGNmYTY4NDZhYWQzN2I2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdp
c3RyeV9wdWJsaWMuY3BwCkBAIC0wLDAgKzEsNDExIEBACisvLz09PT09PT09PSBDb3B5cmlnaHQg
VmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKworI2luY2x1ZGUgInZycGF0aHJlZ2lz
dHJ5X3B1YmxpYy5oIgorI2luY2x1ZGUgImpzb24vanNvbi5oIgorI2luY2x1ZGUgInBhdGh0b29s
c19wdWJsaWMuaCIKKyNpbmNsdWRlICJlbnZ2YXJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJz
dHJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlICJkaXJ0b29sc19wdWJsaWMuaCIKKworI2lmIGRl
ZmluZWQoIFdJTjMyICkKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8c2hsb2JqLmg+
CisKKyN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjZWxpZiBkZWZpbmVkIE9TWAorI2lu
Y2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPEFwcEtpdC9BcHBLaXQu
aD4KKyNlbGlmIGRlZmluZWQoTElOVVgpCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxz
dGRpby5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKKyNpZm5kZWYgVlJMb2cK
KyAgICAgICAjaWYgZGVmaW5lZCggX19NSU5HVzMyX18gKQorICAgICAgICAgICAgICAjZGVmaW5l
IFZSTG9nKGFyZ3MuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgYXJncykKKyAgICAg
ICAjZWxpZiBkZWZpbmVkKCBXSU4zMiApCisgICAgICAgICAgICAgICNkZWZpbmUgVlJMb2coZm10
LCAuLi4pICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgZm10LCBfX1ZBX0FSR1NfXykKKyAg
ICAgICAjZWxzZQorICAgICAgICAgICAgICAjZGVmaW5lIFZSTG9nKGFyZ3MuLi4pICAgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgYXJncykKKyAgICAgICAjZW5kaWYKKyNlbmRpZgorCisvKiog
UmV0dXJucyB0aGUgcm9vdCBvZiB0aGUgZGlyZWN0b3J5IHRoZSBzeXN0ZW0gd2FudHMgdXMgdG8g
c3RvcmUgdXNlciBjb25maWcgZGF0YSBpbiAqLworc3RhdGljIHN0ZDo6c3RyaW5nIEdldEFwcFNl
dHRpbmdzUGF0aCgpCit7CisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIFdDSEFSIHJ3Y2hQ
YXRoW01BWF9QQVRIXTsKKworICAgICAgIGlmKCAhU1VDQ0VFREVEKCBTSEdldEZvbGRlclBhdGhX
KCBOVUxMLCBDU0lETF9MT0NBTF9BUFBEQVRBIHwgQ1NJRExfRkxBR19DUkVBVEUsIE5VTEwsIDAs
IHJ3Y2hQYXRoICkgKSApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAg
ICAgfQorCisgICAgICAgLy8gQ29udmVydCB0aGUgcGF0aCB0byBVVEYtOCBhbmQgc3RvcmUgaW4g
dGhlIG91dHB1dAorICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCA9IFVURjE2dG84KCByd2No
UGF0aCApOworCisgICAgICAgcmV0dXJuIHNVc2VyUGF0aDsKKyNlbGlmIGRlZmluZWQoIE9TWCAp
CisgICAgICAgc3RkOjpzdHJpbmcgc1NldHRpbmdzRGlyOworICAgICAgIEBhdXRvcmVsZWFzZXBv
b2wgeworICAgICAgICAgICAgICAvLyBTZWFyY2ggZm9yIHRoZSBwYXRoCisgICAgICAgICAgICAg
IE5TQXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoIE5T
QXBwbGljYXRpb25TdXBwb3J0RGlyZWN0b3J5LCBOU1VzZXJEb21haW5NYXNrLCBZRVMgKTsKKyAg
ICAgICAgICAgICAgaWYgKCBbcGF0aHMgY291bnRdID09IDAgKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgIE5TU3RyaW5nICpyZXNvbHZlZFBhdGggPSBbcGF0aHMgb2Jq
ZWN0QXRJbmRleDowXTsKKyAgICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gW3Jlc29sdmVkUGF0
aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6IEAiT3BlblZSIl07CisgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICBpZiAoICFbW05TRmlsZU1hbmFnZXIgbmV3XSBjcmVhdGVEaXJl
Y3RvcnlBdFBhdGg6IHJlc29sdmVkUGF0aCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVT
IGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF0gKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgIHNTZXR0aW5nc0Rpci5hc3NpZ24oIFtyZXNvbHZlZFBhdGggVVRGOFN0cmlu
Z10gKTsKKyAgICAgICB9CisgICAgICAgcmV0dXJuIHNTZXR0aW5nc0RpcjsKKyNlbGlmIGRlZmlu
ZWQoIExJTlVYICkKKworICAgICAgIC8vIEFzIGRlZmluZWQgYnkgWERHIEJhc2UgRGlyZWN0b3J5
IFNwZWNpZmljYXRpb24gCisgICAgICAgLy8gaHR0cHM6Ly9zcGVjaWZpY2F0aW9ucy5mcmVlZGVz
a3RvcC5vcmcvYmFzZWRpci1zcGVjL2Jhc2VkaXItc3BlYy1sYXRlc3QuaHRtbAorCisgICAgICAg
Y29uc3QgY2hhciAqcGNoSG9tZSA9IGdldGVudigiWERHX0NPTkZJR19IT01FIik7CisgICAgICAg
aWYgKCAoIHBjaEhvbWUgIT0gTlVMTCkgJiYgKCBwY2hIb21lWzBdICE9ICdcMCcgKSApCisgICAg
ICAgeworICAgICAgICAgICAgICByZXR1cm4gcGNoSG9tZTsKKyAgICAgICB9CisKKyAgICAgICAv
LworICAgICAgIC8vIFhER19DT05GSUdfSE9NRSBpcyBub3QgZGVmaW5lZCwgdXNlIH4vLmNvbmZp
ZyBpbnN0ZWFkCisgICAgICAgLy8gCisgICAgICAgcGNoSG9tZSA9IGdldGVudiggIkhPTUUiICk7
CisgICAgICAgaWYgKCBwY2hIb21lID09IE5VTEwgKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
cmV0dXJuICIiOworICAgICAgIH0KKworICAgICAgIHN0ZDo6c3RyaW5nIHNVc2VyUGF0aCggcGNo
SG9tZSApOworICAgICAgIHNVc2VyUGF0aCA9IFBhdGhfSm9pbiggc1VzZXJQYXRoLCAiLmNvbmZp
ZyIgKTsKKyAgICAgICByZXR1cm4gc1VzZXJQYXRoOworI2Vsc2UKKyAgICAgICAjd2FybmluZyAi
VW5zdXBwb3J0ZWQgcGxhdGZvcm0iCisjZW5kaWYKK30KKworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vIFB1cnBvc2U6IENvbnN0cnVjdG9yCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkNWUlBhdGhSZWdpc3RyeV9QdWJsaWMoKQoreworCit9CisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ29tcHV0ZXMgdGhlIHJlZ2lzdHJ5IGZp
bGVuYW1lCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3Ry
eV9QdWJsaWM6OkdldE9wZW5WUkNvbmZpZ1BhdGgoKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHND
b25maWdQYXRoID0gR2V0QXBwU2V0dGluZ3NQYXRoKCk7CisgICAgICAgaWYoIHNDb25maWdQYXRo
LmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisKKyNpZiBkZWZpbmVkKCBfV0lO
MzIgKSB8fCBkZWZpbmVkKCBMSU5VWCApCisgICAgICAgc0NvbmZpZ1BhdGggPSBQYXRoX0pvaW4o
IHNDb25maWdQYXRoLCAib3BlbnZyIiApOworI2VsaWYgZGVmaW5lZCAoIE9TWCApIAorICAgICAg
IHNDb25maWdQYXRoID0gUGF0aF9Kb2luKCBzQ29uZmlnUGF0aCwgIi5vcGVudnIiICk7CisjZWxz
ZQorICAgICAgICN3YXJuaW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKKyNlbmRpZgorICAgICAg
IHNDb25maWdQYXRoID0gUGF0aF9GaXhTbGFzaGVzKCBzQ29uZmlnUGF0aCApOworICAgICAgIHJl
dHVybiBzQ29uZmlnUGF0aDsKK30KKworCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1
cnBvc2U6CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0
cnlfUHVibGljOjpHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCkKK3sKKyAgICAgICBzdGQ6OnN0
cmluZyBzUGF0aCA9IEdldE9wZW5WUkNvbmZpZ1BhdGgoKTsKKyAgICAgICBpZiAoIHNQYXRoLmVt
cHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisKKyNpZiBkZWZpbmVkKCBfV0lOMzIg
KQorICAgICAgIHNQYXRoID0gUGF0aF9Kb2luKCBzUGF0aCwgIm9wZW52cnBhdGhzLnZycGF0aCIg
KTsKKyNlbGlmIGRlZmluZWQgKCBQT1NJWCApIAorICAgICAgIHNQYXRoID0gUGF0aF9Kb2luKCBz
UGF0aCwgIm9wZW52cnBhdGhzLnZycGF0aCIgKTsKKyNlbHNlCisgICAgICAgI2Vycm9yICJVbnN1
cHBvcnRlZCBwbGF0Zm9ybSIKKyNlbmRpZgorICAgICAgIHNQYXRoID0gUGF0aF9GaXhTbGFzaGVz
KCBzUGF0aCApOworICAgICAgIHJldHVybiBzUGF0aDsKK30KKworCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKy8vIFB1cnBvc2U6IENvbnZlcnRzIEpTT04gdG8gYSBoaXN0b3J5IGFycmF5CisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK3N0YXRpYyB2b2lkIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCBz
dGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcgPiAqcHZlY0hpc3RvcnksIGNvbnN0IEpzb246OlZhbHVl
ICYgcm9vdCwgY29uc3QgY2hhciAqcGNoQXJyYXlOYW1lICkKK3sKKyAgICAgICBpZiggIXJvb3Qu
aXNNZW1iZXIoIHBjaEFycmF5TmFtZSApICkKKyAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgY29uc3QgSnNvbjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290WyBwY2hBcnJheU5hbWUgXTsK
KyAgICAgICBpZiggIWFycmF5Tm9kZSApCisgICAgICAgeworICAgICAgICAgICAgICBWUkxvZygg
IlZSIFBhdGggUmVnaXN0cnkgbm9kZSAlcyBpcyBub3QgYW4gYXJyYXlcbiIsIHBjaEFycmF5TmFt
ZSApOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorCisgICAgICAgcHZlY0hpc3Rv
cnktPmNsZWFyKCk7CisgICAgICAgcHZlY0hpc3RvcnktPnJlc2VydmUoIGFycmF5Tm9kZS5zaXpl
KCkgKTsKKyAgICAgICBmb3IoIHVpbnQzMl90IHVuSW5kZXggPSAwOyB1bkluZGV4IDwgYXJyYXlO
b2RlLnNpemUoKTsgdW5JbmRleCsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0ZDo6c3Ry
aW5nIHNQYXRoKCBhcnJheU5vZGVbIHVuSW5kZXggXS5hc1N0cmluZygpICk7CisgICAgICAgICAg
ICAgIHB2ZWNIaXN0b3J5LT5wdXNoX2JhY2soIHNQYXRoICk7CisgICAgICAgfQorfQorCisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ29udmVydHMgYSBoaXN0b3J5IGFycmF5
IHRvIEpTT04KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RhdGljIHZvaWQgU3RyaW5nTGlzdFRv
SnNvbiggY29uc3Qgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4gJiB2ZWNIaXN0b3J5LCBKc29u
OjpWYWx1ZSAmIHJvb3QsIGNvbnN0IGNoYXIgKnBjaEFycmF5TmFtZSApCit7CisgICAgICAgSnNv
bjo6VmFsdWUgJiBhcnJheU5vZGUgPSByb290WyBwY2hBcnJheU5hbWUgXTsKKyAgICAgICBmb3Io
IGF1dG8gaSA9IHZlY0hpc3RvcnkuYmVnaW4oKTsgaSAhPSB2ZWNIaXN0b3J5LmVuZCgpOyBpKysg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYXJyYXlOb2RlLmFwcGVuZCggKmkgKTsKKyAgICAg
ICB9Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK2Jvb2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6VG9Kc29uU3RyaW5n
KCBzdGQ6OnN0cmluZyAmc0pzb25TdHJpbmcgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQ
YXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgpOworICAgICAgIGlmKCBzUmVnUGF0aC5l
bXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIAorICAgICAgIHN0
ZDo6c3RyaW5nIHNSZWdpc3RyeUNvbnRlbnRzID0gUGF0aF9SZWFkVGV4dEZpbGUoIHNSZWdQYXRo
ICk7CisgICAgICAgaWYoIHNSZWdpc3RyeUNvbnRlbnRzLmVtcHR5KCkgKQorICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBzSnNvblN0cmluZyA9IHNSZWdpc3RyeUNvbnRlbnRz
OworCisgICAgICAgcmV0dXJuIHRydWU7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisv
LyBQdXJwb3NlOiBMb2FkcyB0aGUgY29uZmlnIGZpbGUgZnJvbSBpdHMgd2VsbCBrbm93biBsb2Nh
dGlvbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6
OkJMb2FkRnJvbUZpbGUoKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQ
YXRoUmVnaXN0cnlGaWxlbmFtZSgpOworICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRvIGRldGVybWluZSBWUiBQYXRo
IFJlZ2lzdHJ5IGZpbGVuYW1lXG4iICk7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICB9CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlDb250ZW50cyA9IFBhdGhfUmVh
ZFRleHRGaWxlKCBzUmVnUGF0aCApOworICAgICAgIGlmKCBzUmVnaXN0cnlDb250ZW50cy5lbXB0
eSgpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRvIHJlYWQgVlIg
UGF0aCBSZWdpc3RyeSBmcm9tICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpICk7CisgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAgICBKc29uOjpWYWx1ZSByb290Owor
ICAgICAgIEpzb246OlJlYWRlciByZWFkZXI7CisKKyAgICAgICBpZiggIXJlYWRlci5wYXJzZSgg
c1JlZ2lzdHJ5Q29udGVudHMsIHJvb3QgKSApCisgICAgICAgeworICAgICAgICAgICAgICBWUkxv
ZyggIlVuYWJsZSB0byBwYXJzZSAlczogJXNcbiIsIHNSZWdQYXRoLmNfc3RyKCksIHJlYWRlci5n
ZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkuY19zdHIoKSApOworICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgfQorCisgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZt
X3ZlY1J1bnRpbWVQYXRoLCByb290LCAicnVudGltZSIgKTsKKyAgICAgICBQYXJzZVN0cmluZ0xp
c3RGcm9tSnNvbiggJm1fdmVjQ29uZmlnUGF0aCwgcm9vdCwgImNvbmZpZyIgKTsKKyAgICAgICBQ
YXJzZVN0cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjTG9nUGF0aCwgcm9vdCwgImxvZyIgKTsKKyAg
ICAgICBpZiAocm9vdC5pc01lbWJlciggImV4dGVybmFsX2RyaXZlcnMiICkgJiYgcm9vdFsgImV4
dGVybmFsX2RyaXZlcnMiIF0uaXNBcnJheSgpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFBh
cnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNFeHRlcm5hbERyaXZlcnMsIHJvb3QsICJleHRl
cm5hbF9kcml2ZXJzIiApOworICAgICAgIH0KKworICAgICAgIHJldHVybiB0cnVlOworfQorCisK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogU2F2ZXMgdGhlIGNvbmZpZyBmaWxl
IHRvIGl0cyB3ZWxsIGtub3duIGxvY2F0aW9uCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wg
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QlNhdmVUb0ZpbGUoKSBjb25zdAoreworI2lmIGRlZmlu
ZWQoIERBU0hCT0FSRF9CVUlMRF9NT0RFICkKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQor
ICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdQYXRoID0gR2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSgp
OworICAgICAgIGlmKCBzUmVnUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgIAorICAgICAgIEpzb246OlZhbHVlIHJvb3Q7CisgICAgICAgCisgICAgICAg
cm9vdFsgInZlcnNpb24iIF0gPSAxOworICAgICAgIHJvb3RbICJqc29uaWQiIF0gPSAidnJwYXRo
cmVnIjsKKworICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjUnVudGltZVBhdGgsIHJvb3Qs
ICJydW50aW1lIiApOworICAgICAgIFN0cmluZ0xpc3RUb0pzb24oIG1fdmVjQ29uZmlnUGF0aCwg
cm9vdCwgImNvbmZpZyIgKTsKKyAgICAgICBTdHJpbmdMaXN0VG9Kc29uKCBtX3ZlY0xvZ1BhdGgs
IHJvb3QsICJsb2ciICk7CisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92ZWNFeHRlcm5hbERy
aXZlcnMsIHJvb3QsICJleHRlcm5hbF9kcml2ZXJzIiApOworCisgICAgICAgSnNvbjo6U3R5bGVk
V3JpdGVyIHdyaXRlcjsKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVnaXN0cnlDb250ZW50cyA9IHdy
aXRlci53cml0ZSggcm9vdCApOworCisgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBkaXJlY3Rvcnkg
d2UncmUgd3JpdGluZyBpbnRvIGFjdHVhbGx5IGV4aXN0cworICAgICAgIHN0ZDo6c3RyaW5nIHNS
ZWdEaXJlY3RvcnkgPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHNSZWdQYXRoICk7CisgICAgICAgaWYo
ICFCQ3JlYXRlRGlyZWN0b3J5UmVjdXJzaXZlKCBzUmVnRGlyZWN0b3J5LmNfc3RyKCkgKSApCisg
ICAgICAgeworICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byBjcmVhdGUgcGF0aCByZWdp
c3RyeSBkaXJlY3RvcnkgJXNcbiIsIHNSZWdEaXJlY3RvcnkuY19zdHIoKSApOworICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorCisgICAgICAgaWYoICFQYXRoX1dyaXRlU3Ry
aW5nVG9UZXh0RmlsZSggc1JlZ1BhdGgsIHNSZWdpc3RyeUNvbnRlbnRzLmNfc3RyKCkgKSApCisg
ICAgICAgeworICAgICAgICAgICAgICBWUkxvZyggIlVuYWJsZSB0byB3cml0ZSBWUiBwYXRoIHJl
Z2lzdHJ5IHRvICVzXG4iLCBzUmVnUGF0aC5jX3N0cigpICk7CisgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCisK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyB0aGUgY3VycmVudCBy
dW50aW1lIHBhdGggb3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFJ1bnRp
bWVQYXRoKCkgY29uc3QKK3sKKyAgICAgICBpZiggbV92ZWNSdW50aW1lUGF0aC5lbXB0eSgpICkK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0
dXJuIG1fdmVjUnVudGltZVBhdGguZnJvbnQoKS5jX3N0cigpOworfQorCisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyB0aGUgY3VycmVudCBjb25maWcgcGF0aCBv
ciBOVUxMIGlmIG5vIHBhdGggaXMgY29uZmlndXJlZC4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
c3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0Q29uZmlnUGF0aCgpIGNvbnN0
Cit7CisgICAgICAgaWYoIG1fdmVjQ29uZmlnUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAg
cmV0dXJuICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIG1fdmVjQ29uZmln
UGF0aC5mcm9udCgpLmNfc3RyKCk7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQ
dXJwb3NlOiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvZyBwYXRoIG9yIE5VTEwgaWYgbm8gcGF0aCBp
cyBjb25maWd1cmVkLgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRo
UmVnaXN0cnlfUHVibGljOjpHZXRMb2dQYXRoKCkgY29uc3QKK3sKKyAgICAgICBpZiggbV92ZWNM
b2dQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxzZQor
ICAgICAgICAgICAgICByZXR1cm4gbV92ZWNMb2dQYXRoLmZyb250KCkuY19zdHIoKTsKK30KKwor
CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogUmV0dXJucyBwYXRocyB1c2lu
ZyB0aGUgcGF0aCByZWdpc3RyeSBhbmQgdGhlIHByb3ZpZGVkIG92ZXJyaWRlIAorLy8gICAgICAg
ICAgICAgICAgICAgICB2YWx1ZXMuIFBhc3MgTlVMTCBmb3IgYW55IHBhdGhzIHlvdSBkb24ndCBj
YXJlIGFib3V0LgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitib29sIENWUlBhdGhSZWdpc3RyeV9Q
dWJsaWM6OkdldFBhdGhzKCBzdGQ6OnN0cmluZyAqcHNSdW50aW1lUGF0aCwgc3RkOjpzdHJpbmcg
KnBzQ29uZmlnUGF0aCwgc3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwgY29uc3QgY2hhciAqcGNoQ29u
ZmlnUGF0aE92ZXJyaWRlLCBjb25zdCBjaGFyICpwY2hMb2dQYXRoT3ZlcnJpZGUsIHN0ZDo6dmVj
dG9yPHN0ZDo6c3RyaW5nPiAqcHZlY0V4dGVybmFsRHJpdmVycyApCit7CisgICAgICAgQ1ZSUGF0
aFJlZ2lzdHJ5X1B1YmxpYyBwYXRoUmVnOworICAgICAgIGJvb2wgYkxvYWRlZFJlZ2lzdHJ5ID0g
cGF0aFJlZy5CTG9hZEZyb21GaWxlKCk7CisgICAgICAgaW50IG5Db3VudEVudmlyb25tZW50VmFy
aWFibGVzID0gMDsKKworICAgICAgIGlmKCBwc1J1bnRpbWVQYXRoICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hSdW50aW1lT3ZlcnJp
ZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgKnBzUnVudGltZVBhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBrX3BjaFJ1bnRp
bWVPdmVycmlkZVZhciApOworICAgICAgICAgICAgICAgICAgICAgbkNvdW50RW52aXJvbm1lbnRW
YXJpYWJsZXMrKzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmKCAhcGF0
aFJlZy5HZXRSdW50aW1lUGF0aCgpLmVtcHR5KCkgKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9IHBhdGhSZWcuR2V0UnVudGltZVBhdGgoKTsK
KyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gIiI7CisgICAgICAgICAgICAgIH0K
KyAgICAgICB9CisKKyAgICAgICBpZiggcHNDb25maWdQYXRoICkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIGlmICggR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hDb25maWdPdmVycmlkZVZh
ciApLmxlbmd0aCgpICE9IDAgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAqcHNDb25maWdQYXRoID0gR2V0RW52aXJvbm1lbnRWYXJpYWJsZSgga19wY2hDb25maWdPdmVy
cmlkZVZhciApOworICAgICAgICAgICAgICAgICAgICAgbkNvdW50RW52aXJvbm1lbnRWYXJpYWJs
ZXMrKzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmKCBwY2hDb25maWdQ
YXRoT3ZlcnJpZGUgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHND
b25maWdQYXRoID0gcGNoQ29uZmlnUGF0aE92ZXJyaWRlOworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldENvbmZpZ1BhdGgoKS5lbXB0eSgpICkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9IHBhdGhS
ZWcuR2V0Q29uZmlnUGF0aCgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzQ29uZmlnUGF0aCA9ICIi
OworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgaWYoIHBzTG9nUGF0aCApCisg
ICAgICAgeworICAgICAgICAgICAgICBpZiAoIEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNo
TG9nT3ZlcnJpZGVWYXIgKS5sZW5ndGgoKSAhPSAwICkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgKnBzTG9nUGF0aCA9IEdldEVudmlyb25tZW50VmFyaWFibGUoIGtfcGNo
TG9nT3ZlcnJpZGVWYXIgKTsKKyAgICAgICAgICAgICAgICAgICAgIG5Db3VudEVudmlyb25tZW50
VmFyaWFibGVzKys7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggcGNo
TG9nUGF0aE92ZXJyaWRlICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
KnBzTG9nUGF0aCA9IHBjaExvZ1BhdGhPdmVycmlkZTsKKyAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICBlbHNlIGlmKCAhcGF0aFJlZy5HZXRMb2dQYXRoKCkuZW1wdHkoKSApCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGggPSBwYXRoUmVnLkdldExv
Z1BhdGgoKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc0xvZ1BhdGggPSAiIjsKKyAgICAgICAgICAg
ICAgfQorICAgICAgIH0KKworICAgICAgIGlmICggcHZlY0V4dGVybmFsRHJpdmVycyApCisgICAg
ICAgeworICAgICAgICAgICAgICAqcHZlY0V4dGVybmFsRHJpdmVycyA9IHBhdGhSZWcubV92ZWNF
eHRlcm5hbERyaXZlcnM7CisgICAgICAgfQorCisgICAgICAgaWYgKCBuQ291bnRFbnZpcm9ubWVu
dFZhcmlhYmxlcyA9PSAzICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vIGFsbCB0aHJlZSBl
bnZpcm9ubWVudCB2YXJpYWJsZXMgd2hlcmUgc2V0LCBzbyB3ZSBkb24ndCBuZWVkIHRoZSBwaHlz
aWNhbCBmaWxlCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKworICAgICAg
IHJldHVybiBiTG9hZGVkUmVnaXN0cnk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI2MGRlNTZmOWRmNDBhYzU1OWM4NjFiZTVhNDUxYWI2ZGIwYzA5MDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3ZycGF0
aHJlZ2lzdHJ5X3B1YmxpYy5oCkBAIC0wLDAgKzEsNDUgQEAKKy8vPT09PT09PT09IENvcHlyaWdo
dCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCitz
dGF0aWMgY29uc3QgY2hhciAqa19wY2hSdW50aW1lT3ZlcnJpZGVWYXIgPSAiVlJfT1ZFUlJJREUi
Oworc3RhdGljIGNvbnN0IGNoYXIgKmtfcGNoQ29uZmlnT3ZlcnJpZGVWYXIgPSAiVlJfQ09ORklH
X1BBVEgiOworc3RhdGljIGNvbnN0IGNoYXIgKmtfcGNoTG9nT3ZlcnJpZGVWYXIgPSAiVlJfTE9H
X1BBVEgiOworCitjbGFzcyBDVlJQYXRoUmVnaXN0cnlfUHVibGljCit7CitwdWJsaWM6CisgICAg
ICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUoKTsKKyAgICAg
ICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0T3BlblZSQ29uZmlnUGF0aCgpOworCitwdWJsaWM6Cisg
ICAgICAgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYygpOworCisgICAgICAgLyoqIFJldHVybnMgcGF0
aHMgdXNpbmcgdGhlIHBhdGggcmVnaXN0cnkgYW5kIHRoZSBwcm92aWRlZCBvdmVycmlkZSB2YWx1
ZXMuIFBhc3MgTlVMTCBmb3IgYW55IHBhdGhzIHlvdSBkb24ndCBjYXJlIGFib3V0LiAKKyAgICAg
ICAqIFJldHVybnMgZmFsc2UgaWYgdGhlIHBhdGggcmVnaXN0cnkgY291bGQgbm90IGJlIHJlYWQu
IFZhbGlkIHBhdGhzIG1pZ2h0IHN0aWxsIGJlIHJldHVybmVkIGJhc2VkIG9uIGVudmlyb25tZW50
IHZhcmlhYmxlcy4gKi8KKyAgICAgICBzdGF0aWMgYm9vbCBHZXRQYXRocyggc3RkOjpzdHJpbmcg
KnBzUnVudGltZVBhdGgsIHN0ZDo6c3RyaW5nICpwc0NvbmZpZ1BhdGgsIHN0ZDo6c3RyaW5nICpw
c0xvZ1BhdGgsIGNvbnN0IGNoYXIgKnBjaENvbmZpZ1BhdGhPdmVycmlkZSwgY29uc3QgY2hhciAq
cGNoTG9nUGF0aE92ZXJyaWRlLCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gKnB2ZWNFeHRlcm5h
bERyaXZlcnMgPSBOVUxMICk7CisKKyAgICAgICBib29sIEJMb2FkRnJvbUZpbGUoKTsKKyAgICAg
ICBib29sIEJTYXZlVG9GaWxlKCkgY29uc3Q7CisKKyAgICAgICBib29sIFRvSnNvblN0cmluZygg
c3RkOjpzdHJpbmcgJnNKc29uU3RyaW5nICk7CisKKyAgICAgICAvLyBtZXRob2RzIHRvIGdldCB0
aGUgY3VycmVudCB2YWx1ZXMKKyAgICAgICBzdGQ6OnN0cmluZyBHZXRSdW50aW1lUGF0aCgpIGNv
bnN0OworICAgICAgIHN0ZDo6c3RyaW5nIEdldENvbmZpZ1BhdGgoKSBjb25zdDsKKyAgICAgICBz
dGQ6OnN0cmluZyBHZXRMb2dQYXRoKCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICAgICB0eXBl
ZGVmIHN0ZDo6dmVjdG9yPCBzdGQ6OnN0cmluZyA+IFN0cmluZ1ZlY3Rvcl90OworCisgICAgICAg
Ly8gaW5kZXggMCBpcyB0aGUgY3VycmVudCBzZXR0aW5nCisgICAgICAgU3RyaW5nVmVjdG9yX3Qg
bV92ZWNSdW50aW1lUGF0aDsKKyAgICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY0xvZ1BhdGg7Cisg
ICAgICAgU3RyaW5nVmVjdG9yX3QgbV92ZWNDb25maWdQYXRoOworCisgICAgICAgLy8gZnVsbCBs
aXN0IG9mIGV4dGVybmFsIGRyaXZlcnMKKyAgICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY0V4dGVy
bmFsRHJpdmVyczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCA4YjY0YWQxZGNiMzFmODYxZWJjMmE3YjFl
Y2ZlNzc3MDQ0MGMzNDY3Li5lOTBhZDgzZmU0M2Y4Zjk4M2I0YjY4NTJiZDNkNWZlZTkyZDM5NGEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKQEAgLTEyOTcsNCArMTI5Nyw4IEBACiAjZGVmaW5lIEhBVkVfQVZDT05U
RU5US0VZU0VTU0lPTiAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9PUEVOVlIgMQorI2VuZGlmCisKICNl
bmRpZiAvKiBXVEZfUGxhdGZvcm1faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNTkzNDVh
Mzk4MmYxZjk2MmEzNjU3YTI0OGVhNzM4Y2FjMTY4ZTAwLi4xMzg2MDhiYTRkYWVkOTc1NjVlNGFk
ZTFiNWJlMDk0ZjE3Yzg3ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUyNyw2ICsxNTI3
LDExIEBAIGlmIChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgICkKIGVuZGlmICgp
CiAKK2lmIChVU0VfT1BFTlZSKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMgIiR7VEhJUkRQQVJUWV9ESVJ9L29wZW52ci9oZWFkZXJzIikKKyAgbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMgb3BlbnZyX2FwaSkKK2VuZGlmICgpCisKIGlmIChVU0VfV09GRjIp
CiAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtXT0ZGMkRFQ19J
TkNMVURFX0RJUlN9IikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgIiR7V09GRjJE
RUNfTElCUkFSSUVTfSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMjFiOWQxNjExNzhkZDA4YzlmZGU3OGFkYzNkN2QyZDM3ZGQy
ZDAwNS4uYjQ4NTdhNzlhOTEyZTMzMDQ0ZjdmZGEzYzMzYTUxN2E4MGNjOTVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM4
NCw2ICsyMzg0LDcgQEAKIAkJOEFGNEU1NTYxMURDNUEzNjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNl
TmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEFGNEU1NTMxMURDNUEzNjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdhdGlvbi5oICov
OyB9OwogCQk4QUY0RTU1QzExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBRjRFNTU5MTFE
QzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oICovOyB9OwogCQk4RTRDOTZERDFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaFJlc3BvbnNlLmggKi87IH07CisJCThFNzk0MkE3MUY2QkU3RkIwMDU3QjgwMyAvKiBsaWJv
cGVudnIuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNzk0MkE2MUY2QkU3RkIwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChSZXF1aXJlZCwgKTsgfTsgfTsKIAkJOEY2NzU2MUIxMjg4QjE3QjAwNDdB
Q0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTAwMTc3NDAxMkUw
MzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4NDYy
IC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4
MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKQEAgLTk5MTYsNiArOTkxNyw3IEBACiAJCThB
RjRFNTVBMTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUGVyZm9ybWFuY2VUaW1pbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0Y2hSZXNwb25zZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1
MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGZXRjaFJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThFNzk0MkE2
MUY2QkU3RkIwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IG5hbWUgPSBsaWJvcGVudnIuYTsg
cGF0aCA9IC4uL1RoaXJkUGFydHkvb3BlbnZyL2J1aWxkL0RlYnVnL2xpYm9wZW52ci5hOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZl
bnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFF1ZXVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4OUYxRUUwMDUwOEQ1RCAv
KiBKU01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NjM3LDYgKzE0NjM5LDcgQEAK
IAkJCQk5M0YxOUIxNjA4MjQ1RTU5MDAxRTlBQkMgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJOTNGMTlCMTcwODI0NUU1OTAwMUU5QUJDIC8qIGxpYmlj
dWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5
M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCThFNzk0MkE3MUY2QkU3
RkIwMDU3QjgwMyAvKiBsaWJvcGVudnIuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJCTFDMDlEMDU5
MUUzMUM2QTkwMDcyNUYxOCAvKiBsaWJQQUwuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJCURENzYz
QkIyMDk5MkMyQzkwMDc0MEI4RSAvKiBsaWJ4bWwyLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJ
CQkJMzc5OTE5QjIxMjAwREU1MDAwRUEwNDFDIC8qIGxpYnouZHlsaWIgaW4gRnJhbWV3b3JrcyAq
LywKQEAgLTE1MTY0LDYgKzE1MTY3LDcgQEAKIAkJCQlGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovLAogCQkJCTkzRjFEMzFBMDU1OENDNUMwMDgy
MUJDMCAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAogCQkJCTFDRkFFMzIyMEE2RDZBM0YwMDMyNTkz
RCAvKiBsaWJvYmpjLmR5bGliICovLAorCQkJCThFNzk0MkE2MUY2QkU3RkIwMDU3QjgwMyAvKiBs
aWJvcGVudnIuYSAqLywKIAkJCQlERDc2M0JCMTA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5k
eWxpYiAqLywKIAkJCQkzNzk5MTlCMTEyMDBERTUwMDBFQTA0MUMgLyogbGliei5keWxpYiAqLywK
IAkJCQlBODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDU5YzYxMGE3YTFmNDYwOWUzYzc3NWUyNzYwNmQwZGRm
YjFiMTNiODYuLjkxYzQ1ZjlkMjU3ZGUyZGM2NmNmMzU5ZDZhYmUwOTFjMWUzYTI5ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlCkBAIC0zNDAsNiArMzQwLDggQEAgaWYgKFVTRV9MSUJIWVBIRU4pCiAg
ICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVO
VlIgVFJVRSkKKwogaWYgKFVTRV9VUE9XRVIpCiAgICAgZmluZF9wYWNrYWdlKFVQb3dlckdMaWIp
CiAgICAgaWYgKE5PVCBVUE9XRVJHTElCX0ZPVU5EKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtl
L09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCA0
MjkyOWNlZDdkNjAwYzIwMDdkNzI4OWNlYjM1NDQyMjZjNDFhODU3Li43ZjRmN2RmZmViZTdkNGVj
ODlkNTc0MmZiMmY1OGU4YjE0N2Q5MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtMTA1LDYg
KzEwNSw4IEBAIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9USUxFRF9CQUNLSU5HX1NUT1JF
IFRSVUUpCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1Mg
VFJVRSkKIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDU19U
SFJFQURFRCBUUlVFKQogCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BFTlZSIFRSVUUp
CisKIHNldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dQRV9ESVIgJHtGT1JXQVJE
SU5HX0hFQURFUlNfRElSfS93cGUpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJ
T05fRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vd3BlLXdlYmV4dGVuc2lvbikKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZGNmZDViYzMx
NGFkY2VhYjQ1ZTQ1NGM5Mzg3MzU2YjliMzZiZTA0Li45MjkwNmI3Nzg1MjM0NjhiYzJkZjkzNzZk
NzA5YWM3MmE4NTg3YzI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDktMjIgIFNlcmdpbyBWaWxsYXIgU2Vu
aW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRv
IHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6IEJ1aWxkIE9wZW5WUiBi
ZWZvcmUgV2ViQ29yZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHk6IEFkZGVkIG9wZW52ciB0byB0aGUgbGlzdCBvZiB0aGlyZCBwYXJ0eSBsaWJyYXJpZXMKKyAg
ICAgICAgd2l0aCByZWR1Y2VkIHN0eWxlIGNoZWNrcy4KKwogMjAxOC0wMS0xOCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTcGVjaWZ5IC1b
TlNVUkwgX3RpdGxlXSBmb3IgdGhlIGFzc29jaWF0ZWQgVVJMIHdoZW4gY29weWluZyBhbiBpbWFn
ZSBlbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDNiZmVkMWVlMjg5YmRlMGI3ZWM3MzZkNzg2NWUw
YWYzMGY4MmI2MDguLmQwMjNkYTNkM2JlZDMzMjFkYThhYmI0YjcyNWYxMzM3YjVmNGU4NmMgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CkBAIC0yMDksOCArMjA5LDEyIEBAIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQo
KSkgewogICAgICAgICBwdXNoIEBvcHRpb25zLCAkb3B0aW9uIHVubGVzcyAkb3B0aW9uIGVxICIi
OwogICAgIH0KIAotICAgICMgQU5HTEUgYW5kIGxpYndlYnJ0YyBtdXN0IGNvbWUgYmVmb3JlIFdl
YkNvcmUKKyAgICAjIEFOR0xFLCBPcGVuVlIgYW5kIGxpYndlYnJ0YyBtdXN0IGNvbWUgYmVmb3Jl
IFdlYkNvcmUKICAgICBzcGxpY2UgQHByb2plY3RzLCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFIik7CisgICAgIyBOb3QgZW5hYmxpbmcgaXQgZm9yIGlPUyBmb3IgdGhlIHRpbWUgYmVp
bmcuIEd0ayBhbmQgV1BFIHVzZSBDTWFrZSBpbnN0ZWFkLgorICAgIGlmIChwb3J0TmFtZSgpIGVx
IE1hYykgeworICAgICAgICBzcGxpY2UgQHByb2plY3RzLCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBh
cnR5L29wZW52ciIpOworICAgIH0KICAgICBpZiAobm90ICRhcmNoczMyYml0IGFuZCAoKHBvcnRO
YW1lKCkgZXEgTWFjIGFuZCBub3QgYXJjaGl0ZWN0dXJlKCkgZXEgImkzODYiKSBvciAKICAgICAg
ICAgKHBvcnROYW1lKCkgZXEgaU9TIGFuZCAoYXJjaGl0ZWN0dXJlKCkgZXEgImFybTY0IiBvciBh
cmNoaXRlY3R1cmUoKSBlcSAieDg2XzY0IikpKSkgewogICAgICAgICBzcGxpY2UgQHByb2plY3Rz
LCAwLCAwLCAoIlNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0YyIpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGFmYmNhNDM4ZDkxYjQ5ODNlNGU1NjBiNzEyZTMw
N2NhYjVjN2I2MmEuLjliNDM4NzliODQxYWFlMDVmZGJiNjBlNmUxNTA4Mzk2NzYwM2I0NGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTIxOSw2ICsyMTksNyBA
QCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAgIwogICAgIChbb3MucGF0aC5qb2luKCd3
ZWJraXRweScsICd0aGlyZHBhcnR5JyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdU
aGlyZFBhcnR5JywgJ0FOR0xFJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdUaGly
ZFBhcnR5JywgJ29wZW52cicpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnVGhpcmRQ
YXJ0eScsICd4ZGdtaW1lJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1Rvb2xzJywgJ1dlYkdQVUFQ
SVN0cnVjdHVyZScpXSwKICAgICAgWyItIiwKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCAxYTg3Y2VkZjk3NjZjNzBkZWEzZmU5YmRmMTU3MDQ5ZTBiOWQwOTc4Li42YjA1
MjNkMDBkYTI4MmYxZjRmM2Y1ZDFmMWJhOTNhNWRkZWVkYTZkIDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMjIgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQg
T3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGE6CisKIDIw
MTgtMDEtMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFdFQktJVF9GUkFNRVdPUksgc2hvdWxkIG5vdCBtb2RpZnkgZmlsZS1nbG9iYWwgaW5j
bHVkZSBkaXJlY3RvcmllcwpkaWZmIC0tZ2l0IGEvV2ViS2l0Lnhjd29ya3NwYWNlL2NvbnRlbnRz
Lnhjd29ya3NwYWNlZGF0YSBiL1dlYktpdC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFj
ZWRhdGEKaW5kZXggMmU1OTkwZmFiZjI4MWFlOGQ0ZjI1YWE1MzU5MzQxMjRjMTFlZjE2Yy4uMWFi
NTU4MTIyMTM5MzBkMWE4NzliZTBiODc1OWNjZTcyZjA5ODVkMiAxMDA2NDQKLS0tIGEvV2ViS2l0
Lnhjd29ya3NwYWNlL2NvbnRlbnRzLnhjd29ya3NwYWNlZGF0YQorKysgYi9XZWJLaXQueGN3b3Jr
c3BhY2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhCkBAIC0xLDYgKzEsOSBAQAogPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDxXb3Jrc3BhY2UKICAgIHZlcnNpb24gPSAi
MS4wIj4KKyAgIDxGaWxlUmVmCisgICAgICBsb2NhdGlvbiA9ICJncm91cDpTb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvb3BlbnZyLnhjb2RlcHJvaiI+CisgICA8L0ZpbGVSZWY+CiAgICA8RmlsZVJl
ZgogICAgICAgbG9jYXRpb24gPSAiZ3JvdXA6U291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXBy
b2oiPgogICAgPC9GaWxlUmVmPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331627</attachid>
            <date>2018-01-18 08:48:58 -0800</date>
            <delta_ts>2018-01-23 03:02:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20180118174837.patch</filename>
            <type>text/plain</type>
            <size>1235432</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggMDhhYTcyOTRj
ZDIyMDIxNmFjMWQ1ZGU4ODZiNjI2Y2FjNmNlM2Q5Mi4uMGQyNjI1NWE2ODViODA5MDc2NWYwYjBm
Nzg2ZmI5NjQ2ZDBmZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MCBAQAorMjAx
OC0wMS0xOCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2g6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIG9wZW52
ci9zcmMvSW5mby5wbGlzdDogQWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9SRUFETUU6IEFk
ZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBvcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJkcy5oOiBBZGRlZC4KKyAgICAgICAgKiBv
cGVudnIvc3JjL2pzb24vanNvbi5oOiBBZGRlZC4KKyAgICAgICAgKHN0ZDo6c3dhcCk6CisgICAg
ICAgICogb3BlbnZyL3NyYy9qc29uY3BwLmNwcDogQWRkZWQuCisgICAgICAgIChKc29uOjpjb2Rl
UG9pbnRUb1VURjgpOgorICAgICAgICAoSnNvbjo6aXNDb250cm9sQ2hhcmFjdGVyKToKKyAgICAg
ICAgKEpzb246OnVpbnRUb1N0cmluZyk6CisgICAgICAgIChKc29uOjpmaXhOdW1lcmljTG9jYWxl
KToKKyAgICAgICAgKEpzb246OkZlYXR1cmVzOjpGZWF0dXJlcyk6CisgICAgICAgIChKc29uOjpG
ZWF0dXJlczo6YWxsKToKKyAgICAgICAgKEpzb246OkZlYXR1cmVzOjpzdHJpY3RNb2RlKToKKyAg
ICAgICAgKEpzb246OmNvbnRhaW5zTmV3TGluZSk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OlJl
YWRlcik6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6cmVhZFZhbHVlKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6c2tpcENvbW1lbnRUb2tl
bnMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6bWF0Y2gpOgorICAg
ICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpub3JtYWxp
emVFT0wpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjphZGRDb21tZW50KToKKyAgICAgICAgKEpz
b246OlJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpy
ZWFkQ3BwU3R5bGVDb21tZW50KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZE51bWJlcik6
CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRTdHJpbmcpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpyZWFkT2JqZWN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZEFycmF5KToKKyAg
ICAgICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlTnVtYmVyKToKKyAgICAgICAgKEpzb246OlJlYWRl
cjo6ZGVjb2RlRG91YmxlKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlU3RyaW5nKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludCk6CisgICAgICAg
IChKc29uOjpSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSk6CisgICAgICAgIChK
c29uOjpSZWFkZXI6OmFkZEVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVjb3ZlckZy
b21FcnJvcik6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zlcik6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAgIChKc29uOjpSZWFk
ZXI6OmdldE5leHRDaGFyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0TG9jYXRpb25MaW5l
QW5kQ29sdW1uIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0TG9jYXRpb25Tbmlw
cGV0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3Nh
Z2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNz
YWdlcyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpwdXNoRXJyb3IpOgorICAgICAgICAoSnNv
bjo6UmVhZGVyOjpnb29kIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91ckZlYXR1cmVzOjphbGwp
OgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpPdXJSZWFkZXIpOgorICAgICAgICAoSnNvbjo6
T3VyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRWYWx1ZSk6
CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnNraXBDb21tZW50VG9rZW5zKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6cmVhZFRva2VuKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6
c2tpcFNwYWNlcyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Om1hdGNoKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6cmVhZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjphZGRDb21tZW50KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZENTdHlsZUNvbW1l
bnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ3BwU3R5bGVDb21tZW50KToKKyAg
ICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZE51bWJlcik6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnJlYWRTdHJpbmcpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkU3RyaW5n
U2luZ2xlUXVvdGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkT2JqZWN0KToKKyAg
ICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZEFycmF5KToKKyAgICAgICAgKEpzb246Ok91clJl
YWRlcjo6ZGVjb2RlTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6ZGVjb2RlRG91
YmxlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludCk6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSk6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OmFkZEVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVjb3Zl
ckZyb21FcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zl
cik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAgIChK
c29uOjpPdXJSZWFkZXI6OmdldE5leHRDaGFyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6
Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91clJlYWRl
cjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpwdXNoRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpnb29kIGNvbnN0KToK
KyAgICAgICAgKEpzb246Ok91ckNoYXJSZWFkZXI6Ok91ckNoYXJSZWFkZXIpOgorICAgICAgICAo
SnNvbjo6T3VyQ2hhclJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6OkNoYXJSZWFkZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWls
ZGVyOjp+Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxk
ZXI6Om5ld0NoYXJSZWFkZXIgY29uc3QpOgorICAgICAgICAoSnNvbjo6Z2V0VmFsaWRSZWFkZXJL
ZXlzKToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZSBjb25zdCk6
CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6CisgICAgICAg
IChKc29uOjpDaGFyUmVhZGVyQnVpbGRlcjo6c3RyaWN0TW9kZSk6CisgICAgICAgIChKc29uOjpD
aGFyUmVhZGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMpOgorICAgICAgICAoSnNvbjo6cGFyc2VGcm9t
U3RyZWFtKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPj4pOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3JCYXNlOjpkZXJlZiBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9y
QmFzZTo6aW5jcmVtZW50KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpkZWNy
ZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5j
ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6aXNFcXVhbCBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29weSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6a2V5IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3JCYXNlOjppbmRleCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9y
QmFzZTo6bmFtZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6bWVt
YmVyTmFtZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVl
Q29uc3RJdGVyYXRvcik6CisgICAgICAgIChKc29uOjpvcGVyYXRvcj0pOgorICAgICAgICAoSnNv
bjo6VmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcik6CisgICAgICAgIChKc29uOjpWYWx1ZUl0
ZXJhdG9yOjpvcGVyYXRvcj0pOgorICAgICAgICAoSnNvbjo6SW5SYW5nZSk6CisgICAgICAgIChK
c29uOjppbnRlZ2VyVG9Eb3VibGUpOgorICAgICAgICAoSnNvbjo6ZHVwbGljYXRlU3RyaW5nVmFs
dWUpOgorICAgICAgICAoSnNvbjo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUpOgorICAg
ICAgICAoSnNvbjo6ZGVjb2RlUHJlZml4ZWRTdHJpbmcpOgorICAgICAgICAoSnNvbjo6cmVsZWFz
ZVN0cmluZ1ZhbHVlKToKKyAgICAgICAgKEpzb246OkV4Y2VwdGlvbjo6RXhjZXB0aW9uKToKKyAg
ICAgICAgKEpzb246OnRocm93KToKKyAgICAgICAgKEpzb246OlJ1bnRpbWVFcnJvcjo6UnVudGlt
ZUVycm9yKToKKyAgICAgICAgKEpzb246OkxvZ2ljRXJyb3I6OkxvZ2ljRXJyb3IpOgorICAgICAg
ICAoSnNvbjo6dGhyb3dSdW50aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6dGhyb3dMb2dpY0Vy
cm9yKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDb21tZW50SW5mbzo6Q29tbWVudEluZm8pOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVudEluZm8pOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpzZXRDb21tZW50KToKKyAgICAgICAgKEpzb246
OlZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3Ry
aW5nOjp+Q1pTdHJpbmcpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpzd2FwKToK
KyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
Q1pTdHJpbmc6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6
ZGF0YSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6Omxlbmd0aCBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OmlzU3RhdGljU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
flZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj0pOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnN3YXBQYXlsb2FkKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpzd2FwKToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpj
b21wYXJlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcjwgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9y
PiBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1
ZTo6YXNDU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpnZXRTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjphc0NvbnN0U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0ludCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNVSW50IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjphc0ludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c1VJbnQ2NCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNMYXJnZXN0SW50IGNvbnN0
KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RVSW50IGNvbnN0KToKKyAgICAgICAg
KEpzb246OlZhbHVlOjphc0RvdWJsZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNG
bG9hdCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNCb29sIGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjppc0NvbnZlcnRpYmxlVG8gY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OnNpemUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVtcHR5IGNvbnN0KToK
KyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OmNsZWFyKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZXNpemUpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6Om9wZXJhdG9yW10pOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9y
W10gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmluaXRCYXNpYyk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1ZhbGlkSW5kZXggY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmZpbmQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFw
cGVuZCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6cmVtb3ZlTWVtYmVyKToKKyAgICAgICAgKEpz
b246OlZhbHVlOjpyZW1vdmVJbmRleCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNNZW1iZXIg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE1lbWJlck5hbWVzIGNvbnN0KToKKyAg
ICAgICAgKEpzb246OklzSW50ZWdyYWwpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzTnVsbCBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNCb29sIGNvbnN0KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjppc0ludCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNVSW50IGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0ludDY0IGNvbnN0KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjppc1VJbnQ2NCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNJbnRl
Z3JhbCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNEb3VibGUgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzTnVtZXJpYyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1
ZTo6aXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzQXJyYXkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKEpzb246
OlZhbHVlOjpzZXRDb21tZW50KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpoYXNDb21tZW50IGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpnZXRDb21tZW50IGNvbnN0KToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpzZXRPZmZzZXRTdGFydCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6c2V0
T2Zmc2V0TGltaXQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldFN0YXJ0IGNvbnN0
KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpnZXRPZmZzZXRMaW1pdCBjb25zdCk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6dG9TdHlsZWRTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWU6OmJlZ2luIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjplbmQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmJlZ2luKToKKyAgICAgICAgKEpzb246OlZhbHVlOjplbmQpOgor
ICAgICAgICAoSnNvbjo6UGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQpOgorICAgICAgICAoSnNv
bjo6UGF0aDo6UGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjptYWtlUGF0aCk6CisgICAgICAg
IChKc29uOjpQYXRoOjphZGRQYXRoSW5BcmcpOgorICAgICAgICAoSnNvbjo6UGF0aDo6aW52YWxp
ZFBhdGgpOgorICAgICAgICAoSnNvbjo6UGF0aDo6cmVzb2x2ZSBjb25zdCk6CisgICAgICAgIChK
c29uOjpQYXRoOjptYWtlIGNvbnN0KToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENo
YXJhY3Rlcik6CisgICAgICAgIChKc29uOjpjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIwKToKKyAg
ICAgICAgKEpzb246OnZhbHVlVG9TdHJpbmcpOgorICAgICAgICAoSnNvbjo6dmFsdWVUb1F1b3Rl
ZFN0cmluZyk6CisgICAgICAgIChKc29uOjpzdHJucGJyayk6CisgICAgICAgIChKc29uOjp2YWx1
ZVRvUXVvdGVkU3RyaW5nTik6CisgICAgICAgIChKc29uOjpXcml0ZXI6On5Xcml0ZXIpOgorICAg
ICAgICAoSnNvbjo6RmFzdFdyaXRlcjo6RmFzdFdyaXRlcik6CisgICAgICAgIChKc29uOjpGYXN0
V3JpdGVyOjplbmFibGVZQU1MQ29tcGF0aWJpbGl0eSk6CisgICAgICAgIChKc29uOjpGYXN0V3Jp
dGVyOjpkcm9wTnVsbFBsYWNlaG9sZGVycyk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpv
bWl0RW5kaW5nTGluZUZlZWQpOgorICAgICAgICAoSnNvbjo6RmFzdFdyaXRlcjo6d3JpdGUpOgor
ICAgICAgICAoSnNvbjo6RmFzdFdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpT
dHlsZWRXcml0ZXI6OlN0eWxlZFdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAg
ICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6CisgICAgICAgIChKc29u
OjpTdHlsZWRXcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdy
aXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVJbmRl
bnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAg
ICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjp1bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjpo
YXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjpT
dHlsZWRTdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUpOgor
ICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUpOgorICAg
ICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAg
IChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZSk6CisgICAgICAgIChKc29uOjpT
dHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVh
bVdyaXRlcjo6aW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6dW5p
bmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRC
ZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29t
bWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdy
aXRlcjo6aGFzQ29tbWVudEZvclZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjpCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlV2l0aEluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6aW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp1bmluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKToKKyAgICAgICAgKEpzb246
OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAo
SnNvbjo6U3RyZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFt
V3JpdGVyOjp+U3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlcjo6RmFj
dG9yeTo6fkZhY3RvcnkpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6U3Ry
ZWFtV3JpdGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjp+
U3RyZWFtV3JpdGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVy
OjpuZXdTdHJlYW1Xcml0ZXIgY29uc3QpOgorICAgICAgICAoSnNvbjo6Z2V0VmFsaWRXcml0ZXJL
ZXlzKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6Om9wZXJhdG9yW10pOgorICAg
ICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMpOgorICAgICAgICAo
SnNvbjo6d3JpdGVTdHJpbmcpOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I8PCk6CisgICAgICAg
ICogb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAodnI6
OlZSX0dldEluaXRUb2tlbik6CisgICAgICAgICh2cjo6VlJfSW5pdEludGVybmFsMik6CisgICAg
ICAgICh2cjo6VlJfSW5pdEludGVybmFsKToKKyAgICAgICAgKHZyOjpWUl9TaHV0ZG93bkludGVy
bmFsKToKKyAgICAgICAgKHZyOjpWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwpOgorICAgICAgICAo
dnI6OlZSX0dldEdlbmVyaWNJbnRlcmZhY2UpOgorICAgICAgICAodnI6OlZSX0lzSW50ZXJmYWNl
VmVyc2lvblZhbGlkKToKKyAgICAgICAgKHZyOjpWUl9Jc0htZFByZXNlbnQpOgorICAgICAgICAo
dnI6OlZSX0lzUnVudGltZUluc3RhbGxlZCk6CisgICAgICAgICh2cjo6VlJfUnVudGltZVBhdGgp
OgorICAgICAgICAodnI6OlZSX0dldFZSSW5pdEVycm9yQXNTeW1ib2wpOgorICAgICAgICAodnI6
OlZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24pOgorICAgICAgICAodnI6OlZS
X0dldFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2Rp
cnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoQkNyZWF0ZURpcmVjdG9yeVJlY3Vy
c2l2ZSk6CisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5KToKKyAgICAgICAgKiBvcGVudnIvc3Jj
L3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3Jj
L3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0RW52
aXJvbm1lbnRWYXJpYWJsZSk6CisgICAgICAgIChTZXRFbnZpcm9ubWVudFZhcmlhYmxlKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oOiBBZGRlZC4K
KyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKEdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvcik6CisgICAgICAgIChHZXRJ
REZvclZSSW5pdEVycm9yKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9y
c19wdWJsaWMuaDogQWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9v
bHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChQYXRoX0dldEV4ZWN1dGFibGVQYXRoKToK
KyAgICAgICAgKFBhdGhfR2V0V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1NldFdv
cmtpbmdEaXJlY3RvcnkpOgorICAgICAgICAoUGF0aF9TdHJpcEZpbGVuYW1lKToKKyAgICAgICAg
KFBhdGhfU3RyaXBEaXJlY3RvcnkpOgorICAgICAgICAoUGF0aF9TdHJpcEV4dGVuc2lvbik6Cisg
ICAgICAgIChQYXRoX0dldEV4dGVuc2lvbik6CisgICAgICAgIChQYXRoX0lzQWJzb2x1dGUpOgor
ICAgICAgICAoUGF0aF9NYWtlQWJzb2x1dGUpOgorICAgICAgICAoUGF0aF9GaXhTbGFzaGVzKToK
KyAgICAgICAgKFBhdGhfR2V0U2xhc2gpOgorICAgICAgICAoUGF0aF9Kb2luKToKKyAgICAgICAg
KFBhdGhfUmVtb3ZlVHJhaWxpbmdTbGFzaCk6CisgICAgICAgIChQYXRoX0NvbXBhY3QpOgorICAg
ICAgICAoUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCk6CisgICAgICAgIChQYXRoX0lzRGlyZWN0b3J5
KToKKyAgICAgICAgKFBhdGhfSXNBcHBCdW5kbGUpOgorICAgICAgICAoUGF0aF9FeGlzdHMpOgor
ICAgICAgICAoUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJzaXZlbHkpOgorICAgICAgICAo
UGF0aF9GaW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZlbHkpOgorICAgICAgICAoUGF0aF9S
ZWFkQmluYXJ5RmlsZSk6CisgICAgICAgIChQYXRoX1dyaXRlQmluYXJ5RmlsZSk6CisgICAgICAg
IChQYXRoX1JlYWRUZXh0RmlsZSk6CisgICAgICAgIChQYXRoX1dyaXRlU3RyaW5nVG9UZXh0Rmls
ZSk6CisgICAgICAgIChQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYyk6CisgICAgICAg
IChQYXRoX0ZpbGVQYXRoVG9VcmwpOgorICAgICAgICAoUGF0aF9VcmxUb0ZpbGVQYXRoKToKKyAg
ICAgICAgKEdldFVzZXJEb2N1bWVudHNQYXRoKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29t
bW9uL3BhdGh0b29sc19wdWJsaWMuaDogQWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNv
bW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFNoYXJlZExp
Yl9Mb2FkKToKKyAgICAgICAgKFNoYXJlZExpYl9HZXRGdW5jdGlvbik6CisgICAgICAgIChTaGFy
ZWRMaWJfVW5sb2FkKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRv
b2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRv
b2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU3RyaW5nSGFzUHJlZml4KToKKyAgICAg
ICAgKFN0cmluZ0hhc1ByZWZpeENhc2VTZW5zaXRpdmUpOgorICAgICAgICAoU3RyaW5nSGFzU3Vm
Zml4KToKKyAgICAgICAgKFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUpOgorICAgICAgICAo
VVRGMTZ0bzgpOgorICAgICAgICAoVVRGOHRvMTYpOgorICAgICAgICAoc3RyY3B5X3NhZmUpOgor
ICAgICAgICAoU3RyaW5nVG9VcHBlcik6CisgICAgICAgIChTdHJpbmdUb0xvd2VyKToKKyAgICAg
ICAgKFJldHVyblN0ZFN0cmluZyk6CisgICAgICAgIChCdWZmZXJUb1N0ZFN0cmluZyk6CisgICAg
ICAgIChVaW50NjRUb1N0cmluZyk6CisgICAgICAgIChTdHJpbmdUb1VpbnQ2NCk6CisgICAgICAg
IChjSW50VG9IZXhEaWdpdCk6CisgICAgICAgIChpSGV4Q2hhclRvSW50KToKKyAgICAgICAgKFZf
VVJMRW5jb2RlSW50ZXJuYWwpOgorICAgICAgICAoVl9VUkxEZWNvZGVJbnRlcm5hbCk6CisgICAg
ICAgIChWX1VSTEVuY29kZSk6CisgICAgICAgIChWX1VSTERlY29kZSk6CisgICAgICAgIChWX1N0
cmlwRXh0ZW5zaW9uKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRvb2xzX3B1
YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKHN0cmljbXApOgorICAgICAgICAoc3RybmljbXApOgor
ICAgICAgICAod2NzbmNweV9zKToKKyAgICAgICAgKHN0cm5jcHlfcyk6CisgICAgICAgIChzdHJ0
b3VsbCk6CisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKEdldEFwcFNldHRpbmdzUGF0aCk6CisgICAgICAgIChD
VlJQYXRoUmVnaXN0cnlfUHVibGljOjpDVlJQYXRoUmVnaXN0cnlfUHVibGljKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldE9wZW5WUkNvbmZpZ1BhdGgpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSk6CisgICAg
ICAgIChQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbik6CisgICAgICAgIChTdHJpbmdMaXN0VG9Kc29u
KToKKyAgICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OlRvSnNvblN0cmluZyk6CisgICAg
ICAgIChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpCTG9hZEZyb21GaWxlKToKKyAgICAgICAgKENW
UlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJTYXZlVG9GaWxlIGNvbnN0KToKKyAgICAgICAgKENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkdldFJ1bnRpbWVQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkdldENvbmZpZ1BhdGggY29uc3QpOgorICAgICAgICAoQ1ZSUGF0
aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0TG9nUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQYXRoUmVn
aXN0cnlfUHVibGljOjpHZXRQYXRocyk6CisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi92
cnBhdGhyZWdpc3RyeV9wdWJsaWMuaDogQWRkZWQuCisKIDIwMTctMTItMTQgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgLVdzdHJpY3QtcHJvdG90
eXBlcyBmb3IgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQzYmE5NjQ2MGU2ZTQ2NzEyOGZmOTU1NWIyODU1MjQzMDcw
NzlkODQuLjZmMWM4YmNiOWRiNjU5YzEzMjRjZDQ4YWQ4M2M4Njg0OTE5OTFlNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0
byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL1BsYXRmb3JtLmg6IERlZmluZSBVU0VfT1BFTlZSIGZvciBHdGsgYW5kIFdQRS4K
KwogMjAxOC0wMS0xNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIyMjc5NSk6IENhcmRpb2dyYW0gbmV2ZXIgc2lnbnMgaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA1ZmJmYjQyODFjNzIyOTQ2Yjg4MTZlYzVjOGMwZjAxMDllZWM5NTI3Li5kMmFmNDYw
ZGRjYTEyNTU1N2M3YTQ1MTZkZjhiNjFkN2VlNGE0YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUg
YnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIGJ1aWxkIGRlcGVuZGVuY2llcyB3aXRoIHRoZSBPcGVuVlIgbGlicmFyeS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE4LTAxLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNwZWNpZnkgLVtOU1VSTCBfdGl0bGVd
IGZvciB0aGUgYXNzb2NpYXRlZCBVUkwgd2hlbiBjb3B5aW5nIGFuIGltYWdlIGVsZW1lbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA4YTI2YmUyYzI2ZjRhYjQxYWUwZTVlNjAwZDQxN2QyNDI1ZDk3MzYwLi4xNDBiZjBiZDQ0
MjQ0MjIwODYwOTE0OTM5NDBjMGZlZDdkZDVkZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL0NNYWtlTGlzdHMudHh0CkBAIC0xNyw2ICsxNywxMCBAQCBp
ZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvZ3Rl
c3QpCiBlbmRpZiAoKQogCitpZiAoVVNFX09QRU5WUikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFRo
aXJkUGFydHkvb3BlbnZyKQorZW5kaWYgKCkKKwogaWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9z
dWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS94ZGdtaW1lKQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTNhN2Y5MGNmODRjMjFkYTg0ZDBi
YTVmYzI4ZjE0ZDY4ZGEyY2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsNTggQEAKKyMgU2V0IHRoZSBtaW5pbXVt
IHJlcXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KK2NtYWtlX21pbmlt
dW1fcmVxdWlyZWQoVkVSU0lPTiAyLjgpCisKKyMgU2V0dXAgc29tZSBvcHRpb25zLgorb3B0aW9u
KEJVSUxEX1NIQVJFRCAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYp
CitvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9O
KQorb3B0aW9uKFVTRV9DVVNUT01fTElCQ1hYICJVc2VzIGEgY3VzdG9tIGxpYmMrKyIgT0ZGKQor
CithZGRfZGVmaW5pdGlvbnMoIC1EVlJfQVBJX1BVQkxJQyApCisKKyMgQ2hlY2sgaWYgMzIgb3Ig
NjQgYml0IHN5c3RlbS4KK3NldChTSVpFT0ZfVk9JRFAgJHtDTUFLRV9TSVpFT0ZfVk9JRF9QfSkK
K2lmKENNQUtFX1NJWkVPRl9WT0lEX1AgRVFVQUwgOCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICI2
NCIpCitlbHNlKCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICIzMiIpCitlbmRpZigpCisKKyMgR2V0
IHBsYXRmb3JtLgoraWYoV0lOMzIpCisgICAgICAgc2V0KFBMQVRGT1JNX05BTUUgIndpbiIpCitl
bHNlaWYoVU5JWCBBTkQgTk9UIEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVT
ICIuKkxpbnV4IikKKyAgICBzZXQoUExBVEZPUk1fTkFNRSAibGludXgiKQorICAgIGFkZF9kZWZp
bml0aW9ucygtRExJTlVYIC1EUE9TSVgpCisgICAgaWYoUFJPQ0VTU09SX0FSQ0ggTUFUQ0hFUyAi
NjQiKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURMSU5VWDY0KQorICAgIGVuZGlmKCkKKyAg
ZW5kaWYoKQorZWxzZWlmKEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIu
KkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioiKQorICAg
IHNldChQTEFURk9STV9OQU1FICJvc3giKQorICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAtRFBP
U0lYKQorICBlbmRpZigpCitlbmRpZigpCisKKyMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KK2lm
KENNQUtFX0NPTVBJTEVSX0lTX0dOVUNDIE9SIENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAi
Q2xhbmciKQorICAgICAgICMgRW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hv
dWxkbid0IGJlIHZpc2libGUKKyAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NY
WF9GTEFHU30gLXN0ZD1jKysxMSAtZlBJQyAtZnZpc2liaWxpdHk9aGlkZGVuIikKKworICAgICAg
ICMgU2V0IGN1c3RvbSBsaWJjKysgdXNhZ2UgaGVyZQorICAgICAgIGlmKENNQUtFX0NfQ09NUElM
RVJfSUQgTUFUQ0hFUyAiQ2xhbmciIEFORCBVU0VfTElCQ1hYKQorICAgICAgICAgICAgICBpZihV
U0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICAgICAgICAgICAgICAgIGlmKEJVSUxEX1NIQVJFRCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
UyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAg
ICAgICAgICAgICAgICBlbmRpZigpCisgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hY
X0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLW5vc3RkaW5jKysiKQorICAgICAgICAgICAgICAg
ICAgICAgaW5jbHVkZV9kaXJlY3RvcmllcyggJHtMSUJDWFhfSU5DTFVERX0gJHtMSUJDWFhfQUJJ
X0lOQ0xVREV9KQorICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIlVzaW5nIGN1
c3RvbSBsaWJjKysiKQorICAgICAgICAgICAgICBlbHNlKCkKKyAgICAgICAgICAgICAgICAgICAg
IHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIp
CisgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgbGliYysrIikKKyAg
ICAgICAgICAgICAgZW5kaWYoKQorICAgICAgIGVuZGlmKCkKK2VuZGlmKCkKKworYWRkX3N1YmRp
cmVjdG9yeShzcmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5T
RSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlODMzMzdk
N2ZjYjcyNmQxNGNjMTBmN2RkMmZkYTY3OTlkOGExMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRQpAQCAtMCwwICsxLDI3IEBACitDb3B5cmlnaHQg
KGMpIDIwMTUsIFZhbHZlIENvcnBvcmF0aW9uCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQgbW9kaWZpY2F0aW9uLAorYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKK2xpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCit0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Y29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKK21heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0CitzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQKK0FOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECitXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CitESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CitMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KK0FOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvUkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OTc2ZDYyMmY2YWQzZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApAQCAtMCwwICsxLDEz
IEBACitPcGVuVlIgU0RLCistLS0KKworT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0
IGFsbG93cyBhY2Nlc3MgdG8gVlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKK3ZlbmRvcnMgd2l0
aG91dCByZXF1aXJpbmcgdGhhdCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ug
b2YgdGhlIAoraGFyZHdhcmUgdGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMg
YW4gU0RLIHRoYXQgY29udGFpbnMgdGhlIEFQSSAKK2FuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBp
cyB1bmRlciBTdGVhbVZSIGluIFRvb2xzIG9uIFN0ZWFtLiAKKworIyMjIERvY3VtZW50YXRpb24K
KworRG9jdW1lbnRhdGlvbiBmb3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIg
V2lraV0oaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURv
Y3VtZW50YXRpb24pCisKK01vcmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNh
biBiZSBmb3VuZCBvbiBodHRwOi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9SRUFETUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JF
QURNRS53ZWJraXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmOTc4MjFhNTM1M2VkOGZjNmU4ZDg3MDg0MDBmYzcz
ZDMzNWQwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgaXMgdGhlIE9wZW5WUiBsaWJyYXJ5IGZy
b20KK2h0dHBzOi8vZ2l0aHViLmNvbS9WYWx2ZVNvZnR3YXJlL29wZW52cgorCitVcHN0cmVhbSBj
b2RlIGNhbiBiZSB2aWV3ZWQgYXQKKyBodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9v
cGVudnIvdHJlZS9tYXN0ZXIvCisKK2FuZCBjbG9uZWQgYnkKKyBnaXQgY2xvbmUgaHR0cHM6Ly9n
aXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyLmdpdAorCitDdXJyZW50IHZlcnNpb246IFtj
b21taXQgZWJkZWExNTJmOGFhYzc3ZTlhNmRiMjk2ODJiODFkNzYyMTU5ZGY3ZV0KKword2hpY2gg
Y29ycmVzcG9uZHMgdG8gMS4wLjEwIHJlbGVhc2UuCisKK1dlYktpdCBjaGFuZ2VzOgorKiBwYXRj
aGVzL2NtYWtlLWJ1aWxkLnBhdGNoOiBzY3JpcHQgdXNlZCB0byBhbGxvdyBvcGVudnIgQ01ha2Ug
YnVpbGQgdG8gYmUKK2ludGVncmF0ZWQgaW50byBXZWJLaXQgYnVpbGQKKyogUmVtb3ZlZCBiaW4v
IGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJp
ZXMKKyogUmVtb3ZlZCBsaWIvIGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBw
cmVjb21waWxlZCBsaWJyYXJpZXMKKyogUmVtb3ZlZCBjb250cm9sbGVyX2NhbGxvdXRzLyBkaXJl
Y3RvcnkuIFVubmVlZGVkIGRvY3MKKyogUmVtb3ZlZCBzYW1wbGVzLyBkaXJlY3RvcnkuCisqIFJl
cGxhY2VkIHRhYnMgYnkgd2hpdGVzcGFjZXMgdG8gbWFrZSBjaGVjay13ZWJraXQtc3R5bGUgaGFw
cHkuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI2YjBhYzAxNzVhNmUzNGI1
MzkwMmY0ZjVmNGEyMjg5YzE5NzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKQEAgLTAsMCArMSw5IEBACitzZXQoQ01B
S0VfU1lTVEVNX05BTUUgTGludXgpCisKK3NldChDTUFLRV9DX0NPTVBJTEVSIGNsYW5nKQorc2V0
KENNQUtFX0NYWF9DT01QSUxFUiBjbGFuZysrKQorCitzZXQoQ01BS0VfRklORF9ST09UX1BBVEhf
TU9ERV9QUk9HUkFNIE5FVkVSKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfTElCUkFS
WSBPTkxZKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfSU5DTFVERSBPTkxZKQorc2V0
KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUEFDS0FHRSBPTkxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvaGVhZGVycy9vcGVudnIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzZlNDlhNmFjNTMxMDgwYzVm
NDMwM2U1YzE1Y2Y5M2UxMWZhMmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKQEAgLTAsMCArMSwzNzc3IEBACisjcHJhZ21hIG9u
Y2UKKworLy8gb3BlbnZyLmgKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlv
biA9PT09PT09PT09PT0vLworLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBt
b2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5LgorCisjaWZuZGVmIF9PUEVOVlJfQVBJCisjZGVmaW5l
IF9PUEVOVlJfQVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisKKy8vIHZydHlwZXMuaAor
I2lmbmRlZiBfSU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lOQ0xVREVfVlJUWVBFU19ICisK
Ky8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyB2dWxrYW4uaAorc3Ry
dWN0IFZrRGV2aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UOworc3RydWN0IFZrSW5z
dGFuY2VfVDsKK3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRv
IGF2b2lkIHJlcXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEyUmVzb3VyY2U7CitzdHJ1Y3Qg
SUQzRDEyQ29tbWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sKKyNwcmFnbWEgcGFjayggcHVz
aCwgOCApCisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVm
IGludDMyX3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7CisKKy8vIHJpZ2h0
LWhhbmRlZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUgcmlnaHQKKy8vIC16
IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycworc3Ry
dWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOworfTsKKworc3RydWN0
IEhtZE1hdHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsKKworc3RydWN0IEht
ZFZlY3RvcjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9y
NF90Cit7CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzZF90Cit7
CisgICAgICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAg
ICAgZmxvYXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBk
b3VibGUgdywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxv
YXQgciwgZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBIbWRWZWN0
b3IzX3QgdkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90Cit7CisgICAgICAg
SG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7
Cit9OworCisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9yIGVh
Y2ggY29sb3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBpbiB0
aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4gVGhl
IDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0cnVjdCBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOworICAgICAgIGZsb2F0
IHJmR3JlZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKworZW51bSBFVlJFeWUK
K3sKKyAgICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0gMQorfTsKKworZW51
bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8gSGFu
ZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAxLCAg
Ly8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRlciBi
dWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAgIFRleHR1cmVUeXBl
X1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1cmVE
YXRhX3Qgc3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8gSGFu
ZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2VSZWYKKyAgICAg
ICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEg
RDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JTcGFjZQorewor
ICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3Ig
OC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1p
cnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgorICAgICAg
IENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3Bs
YXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsu
YS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIs
ICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVh
ciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4K
K307CisKK3N0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBF
VGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsK
KyAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRsZSB0byBhIHNo
YXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVk
UmVzb3VyY2UpLgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7CisjZGVm
aW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1
cmVIYW5kbGVfdCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFRyYWNraW5n
UmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAgICBU
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAorICAgICAg
IFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCisKKyAg
ICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAwLAorICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAg
ICAgICAgPSAyMDEsCit9OworCit0eXBlZGVmIHVpbnQzMl90IERyaXZlcklkX3Q7CitzdGF0aWMg
Y29uc3QgdWludDMyX3Qga19uRHJpdmVyTm9uZSA9IDB4RkZGRkZGRkY7CisKK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAzMjc2ODsKKworLyoq
IFVzZWQgdG8gcGFzcyBkZXZpY2UgSURzIHRvIEFQSSBjYWxscyAqLwordHlwZWRlZiB1aW50MzJf
dCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tl
ZERldmljZUluZGV4X0htZCA9IDA7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heFRyYWNr
ZWREZXZpY2VDb3VudCA9IDE2Oworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2
aWNlSW5kZXhPdGhlciA9IDB4RkZGRkZGRkU7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blRy
YWNrZWREZXZpY2VJbmRleEludmFsaWQgPSAweEZGRkZGRkZGOworCisvKiogRGVzY3JpYmVzIHdo
YXQga2luZCBvZiBvYmplY3QgaXMgYmVpbmcgdHJhY2tlZCBhdCBhIGdpdmVuIElEICovCitlbnVt
IEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxp
ZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBJRCB3YXMgbm90IHZhbGlk
LgorICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAxLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gSGVhZC1Nb3VudGVkIERpc3BsYXlzCisgICAgICAgVHJhY2tlZERl
dmljZUNsYXNzX0NvbnRyb2xsZXIgPSAyLCAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQg
Y29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfR2VuZXJpY1RyYWNrZXIgPSAz
LCAgICAgICAgICAgICAgLy8gR2VuZXJpYyB0cmFja2Vycywgc2ltaWxhciB0byBjb250cm9sbGVy
cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsICAgICAg
IC8vIENhbWVyYSBhbmQgYmFzZSBzdGF0aW9ucyB0aGF0IHNlcnZlIGFzIHRyYWNraW5nIHJlZmVy
ZW5jZSBwb2ludHMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfRGlzcGxheVJlZGlyZWN0ID0g
NSwgICAgICAgICAgICAgIC8vIEFjY2Vzc29yaWVzIHRoYXQgYXJlbid0IG5lY2Vzc2FyaWx5IHRy
YWNrZWQgdGhlbXNlbHZlcywgYnV0IG1heSByZWRpcmVjdCB2aWRlbyBvdXRwdXQgZnJvbSBvdGhl
ciB0cmFja2VkIGRldmljZXMKK307CisKKworLyoqIERlc2NyaWJlcyB3aGF0IHNwZWNpZmljIHJv
bGUgYXNzb2NpYXRlZCB3aXRoIGEgdHJhY2tlZCBkZXZpY2UgKi8KK2VudW0gRVRyYWNrZWRDb250
cm9sbGVyUm9sZQoreworICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkID0gMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWQgdmFsdWUgZm9yIGNv
bnRyb2xsZXIgdHlwZQorICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCA9IDEs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGRldmljZSBhc3Nv
Y2lhdGVkIHdpdGggdGhlIGxlZnQgaGFuZAorICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9S
aWdodEhhbmQgPSAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGRldmlj
ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJpZ2h0IGhhbmQKK307CisKKworLyoqIGRlc2NyaWJlcyBh
IHNpbmdsZSBwb3NlIGZvciBhIHRyYWNrZWQgb2JqZWN0ICovCitzdHJ1Y3QgVHJhY2tlZERldmlj
ZVBvc2VfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2lu
ZzsKKyAgICAgICBIbWRWZWN0b3IzX3QgdlZlbG9jaXR5OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyB2ZWxvY2l0eSBpbiB0cmFja2VyIHNwYWNlIGluIG0vcworICAgICAgIEhtZFZlY3Rv
cjNfdCB2QW5ndWxhclZlbG9jaXR5OyAgICAgICAgICAgICAgLy8gYW5ndWxhciB2ZWxvY2l0eSBp
biByYWRpYW5zL3MgKD8pCisgICAgICAgRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsK
KyAgICAgICBib29sIGJQb3NlSXNWYWxpZDsKKworICAgICAgIC8vIFRoaXMgaW5kaWNhdGVzIHRo
YXQgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVkIGZvciB0aGlzIHNwb3QgaW4gdGhlIHBvc2Ug
YXJyYXkuCisgICAgICAgLy8gSXQgY291bGQgZ28gZnJvbSB0cnVlIHRvIGZhbHNlIGlmIHRoZSB1
c2VyIHVucGx1Z3MgdGhlIGRldmljZS4KKyAgICAgICBib29sIGJEZXZpY2VJc0Nvbm5lY3RlZDsK
K307CisKKy8qKiBJZGVudGlmaWVzIHdoaWNoIHN0eWxlIG9mIHRyYWNraW5nIG9yaWdpbiB0aGUg
YXBwbGljYXRpb24gd2FudHMgdG8gdXNlCisqIGZvciB0aGUgcG9zZXMgaXQgaXMgcmVxdWVzdGlu
ZyAqLworZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIFRyYWNraW5nVW5p
dmVyc2VTZWF0ZWQgPSAwLCAgICAgICAgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJlbGF0
aXZlIHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlCisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVN0YW5k
aW5nID0gMSwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJlbGF0aXZlIHRvIHRoZSBzYWZl
IGJvdW5kcyBjb25maWd1cmVkIGJ5IHRoZSB1c2VyCisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVJh
d0FuZFVuY2FsaWJyYXRlZCA9IDIsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCBpbiB0aGUg
Y29vcmRpbmF0ZSBzeXN0ZW0gZGVmaW5lZCBieSB0aGUgZHJpdmVyLiAgSXQgaGFzIFkgdXAgYW5k
IGlzIHVuaWZpZWQgZm9yIGRldmljZXMgb2YgdGhlIHNhbWUgZHJpdmVyLiBZb3UgdXN1YWxseSBk
b24ndCB3YW50IHRoaXMgb25lLgorfTsKKworLy8gUmVmZXJzIHRvIGEgc2luZ2xlIGNvbnRhaW5l
ciBvZiBwcm9wZXJ0aWVzCit0eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3Q7Cit0eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190OworCitzdGF0aWMgY29uc3Qg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0g
MDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW52YWxpZFByb3BlcnR5VGFn
ID0gMDsKKworLy8gVXNlIHRoZXNlIHRhZ3MgdG8gc2V0L2dldCBjb21tb24gdHlwZXMgYXMgc3Ry
dWN0IHByb3BlcnRpZXMKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuRmxvYXRQ
cm9wZXJ0eVRhZyA9IDE7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkludDMy
UHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5VaW50
NjRQcm9wZXJ0eVRhZyA9IDM7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkJv
b2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191blN0
cmluZ1Byb3BlcnR5VGFnID0gNTsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBl
VGFnX3Qga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7CitzdGF0aWMgY29u
c3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworCitz
dGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyA9
IDMwOworCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5WUkludGVybmFs
UmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOworCisKKy8qKiBFYWNoIGVudHJ5
IGluIHRoaXMgZW51bSByZXByZXNlbnRzIGEgcHJvcGVydHkgdGhhdCBjYW4gYmUgcmV0cmlldmVk
IGFib3V0IGEKKyogdHJhY2tlZCBkZXZpY2UuIE1hbnkgZmllbGRzIGFyZSBvbmx5IHZhbGlkIGZv
ciBvbmUgRVRyYWNrZWREZXZpY2VDbGFzcy4gKi8KK2VudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eQoreworICAgICAgIFByb3BfSW52YWxpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgLy8gZ2VuZXJhbCBwcm9wZXJ0
aWVzIHRoYXQgYXBwbHkgdG8gYWxsIGRldmljZSBjbGFzc2VzCisgICAgICAgUHJvcF9UcmFja2lu
Z1N5c3RlbU5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwKKyAg
ICAgICBQcm9wX01vZGVsTnVtYmVyX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAwMSwKKyAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMiwKKyAgICAgICBQcm9wX1JlbmRl
ck1vZGVsTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAw
MywKKyAgICAgICBQcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwNSwKKyAgICAgICBQcm9wX1RyYWNraW5n
RmlybXdhcmVWZXJzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTAwNiwKKyAgICAg
ICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTAwNywKKyAgICAgICBQcm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmlu
ZyAgICAgICA9IDEwMDgsCisgICAgICAgUHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9TdHJp
bmcgICAgICAgICAgICAgICAgICAgICA9IDEwMDksCisgICAgICAgUHJvcF9EZXZpY2VJc1dpcmVs
ZXNzX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMCwKKyAgICAg
ICBQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICA9IDEwMTIsIC8vIDAgaXMgZW1wdHksIDEgaXMgZnVsbAorICAg
ICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAgPSAx
MDEzLAorICAgICAgIFByb3BfRmlybXdhcmVfVXBkYXRlQXZhaWxhYmxlX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9v
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTUsCisgICAgICAgUHJvcF9GaXJtd2Fy
ZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nICAgICAgICAgICAgICA9IDEwMTYsCisgICAgICAgUHJv
cF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MTcsCisgICAgICAgUHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMTgsCisgICAgICAgUHJvcF9GUEdBVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTksCisgICAgICAg
UHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAyMCwKKyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMSwKKyAgICAgICBQcm9wX0RvbmdsZVZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjIsCisgICAg
ICAgUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDIzLAorICAgICAgIFByb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVtV2l0aEhtZF9C
b29sICAgICAgID0gMTAyNCwKKyAgICAgICBQcm9wX0NvbnRhaW5zUHJveGltaXR5U2Vuc29yX0Jv
b2wgICAgICAgICAgICAgICAgICAgICA9IDEwMjUsCisgICAgICAgUHJvcF9EZXZpY2VQcm92aWRl
c0JhdHRlcnlTdGF0dXNfQm9vbCAgICAgICAgICAgICAgPSAxMDI2LAorICAgICAgIFByb3BfRGV2
aWNlQ2FuUG93ZXJPZmZfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDI3LAorICAgICAgIFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nICAgICAg
ICAgICAgICA9IDEwMjgsCisgICAgICAgUHJvcF9EZXZpY2VDbGFzc19JbnQzMiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyOSwKKyAgICAgICBQcm9wX0hhc0Nh
bWVyYV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAg
ICAgID0gMTAzMSwKKyAgICAgICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9v
bCAgICAgID0gMTAzMiwKKyAgICAgICBQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJlZF9C
b29sICAgICAgICAgICAgICA9IDEwMzMsCisgICAgICAgUHJvcF9QYXJlbnREcml2ZXJfVWludDY0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzQsCisgICAgICAgUHJvcF9S
ZXNvdXJjZVJvb3RfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MzUsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2
aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVZz
eW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCisgICAgICAgUHJvcF9EaXNw
bGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKKyAgICAgICBQcm9wX1ByZXZp
b3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA1LCAK
KyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3BsYXlN
Q1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOCwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5k
b3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAx
MSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAgICAgICAgID0g
MjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAgICAgICAgICAg
ID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAorICAgICAgIFByb3Bf
Q2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAgICAgPSAyMDE2
LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNw
bGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE5
LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisgICAgICAgUHJvcF9MZW5zQ2Vu
dGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMiwK
KyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAorICAgICAgIFByb3BfTGVu
c0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1Vp
bnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13
YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCisgICAgICAgUHJvcF9E
aXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAy
OSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3BfQXVkaW9GaXJtd2FyZVZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAorICAgICAgIFByb3BfQ2FtZXJh
Q29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIwMzMsCisgICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZU51
bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisgICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MSwKKyAg
ICAgICBQcm9wX1NlY29uZHNGcm9tUGhvdG9uc1RvVmJsYW5rX0Zsb2F0ICAgICAgICAgICAgICA9
IDIwNDIsCisgICAgICAgUHJvcF9Ecml2ZXJEaXJlY3RNb2RlU2VuZHNWc3luY0V2ZW50c19Cb29s
ICAgICAgID0gMjA0MywKKyAgICAgICBQcm9wX0Rpc3BsYXlEZWJ1Z01vZGVfQm9vbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ0LAorICAgICAgIFByb3BfR3JhcGhpY3NB
ZGFwdGVyTHVpZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ1LAorICAg
ICAgIFByb3BfRHJpdmVyUHJvdmlkZWRDaGFwZXJvbmVQYXRoX1N0cmluZyAgICAgICAgICAgICAg
PSAyMDQ4LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tl
ZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKKyAgICAgICBQcm9wX1N1cHBv
cnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMSwKKyAg
ICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxl
ckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBl
IEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0LCAvLyBSZXR1cm4gdmFs
dWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMzVHlw
ZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNSwg
Ly8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAg
UHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlz
VHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVRyYWNrZWRD
b250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8g
VHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisgICAgICAgUHJvcF9GaWVsZE9m
Vmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAwLAorICAgICAg
IFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9
IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURlZ3JlZXNf
RmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2luZ1Jh
bmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0LAorICAgICAgIFByb3Bf
VHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNSwKKyAg
ICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQg
Zm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAgICAgICBQcm9wX0ljb25QYXRo
TmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUw
MDAsIC8vIERFUFJFQ0FURUQuIFZhbHVlIG5vdCByZWZlcmVuY2VkLiBOb3cgZXhwZWN0ZWQgdG8g
YmUgcGFydCBvZiBpY29uIHBhdGggcHJvcGVydGllcy4KKyAgICAgICBQcm9wX05hbWVkSWNvblBh
dGhEZXZpY2VPZmZfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMSwgLy8g
e2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJ
RiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMK
KyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdfU3RyaW5nICAgICAgICAg
ICAgICA9IDUwMDIsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0
YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAz
MngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5n
QWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFt
ZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3Ig
aGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDQsIC8vIHtkcml2ZXJ9
L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFu
aW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlBbGVydF9TdHJpbmcgICAgICAgICAgICAgID0g
NTAwNSwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGlj
b24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZv
ciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICA9IDUwMDYsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5h
bWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9y
IGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDcsIC8vIHtkcml2
ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9y
IGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAg
ICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgPSA1MDA4LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIGJ5
IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAgICAgIFByb3BfRGlz
cGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
NTEwMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFy
ZSB1bmlxdWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAgICAgUHJvcF9JbnN0
YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDYwMDEsCisgICAgICAgUHJvcF9IYXNEaXNwbGF5Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA2MDAyLAorICAgICAgIFByb3BfSGFzQ29udHJvbGxlckNvbXBvbmVu
dF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MDAzLAorICAgICAgIFByb3BfSGFzQ2FtZXJh
Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDA0LAorICAgICAg
IFByb3BfSGFzRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICA9IDYw
MDUsCisgICAgICAgUHJvcF9IYXNWaXJ0dWFsRGlzcGxheUNvbXBvbmVudF9Cb29sICAgICAgICAg
ICAgICA9IDYwMDYsCisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2
YXRlIGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9wX1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKKyAg
ICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAg
ID0gMTA5OTksCit9OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25n
ZXIgdGhhbiB0aGlzIGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9w
ZXJ0eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMg
dGhhdCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0Rh
dGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFja2VkUHJv
cF9Xcm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgIFRyYWNr
ZWRQcm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKKyAg
ICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBl
dmVyKS4KKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gNSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIg
ICAgICAgICAgICAgID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlE
ZXZpY2UgICAgICAgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVt
TGVuZ3RoICAgICAgID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qg
a25vd24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KKyAgICAg
ICBUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwK
KyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAg
PSAxMSwKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBw
YXJ0IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyogZnJhbWUg
YnVmZmVyLiAqLworc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQgdU1p
biwgdk1pbjsKKyAgICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworLyoqIEFsbG93cyBzcGVj
aWZ5aW5nIHBvc2UgdXNlZCB0byByZW5kZXIgcHJvdmlkZWQgc2NlbmUgdGV4dHVyZSAoaWYgZGlm
ZmVyZW50IGZyb20gdmFsdWUgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzKS4gKi8KK3N0cnVjdCBW
UlRleHR1cmVXaXRoUG9zZV90IDogcHVibGljIFRleHR1cmVfdAoreworICAgICAgIEhtZE1hdHJp
eDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsgLy8gQWN0dWFsIHBvc2UgdXNlZCB0byBy
ZW5kZXIgc2NlbmUgdGV4dHVyZXMuCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0
byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUgY29tcG9zaXRvciB3
aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAgIC8v
IFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVmdCBhbmQgcmlnaHQg
ZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQuCisg
ICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAgLy8gQXBwIHN1Ym1pdHMgZmlu
YWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9ydGlvbiBhbHJlYWR5
IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFwcGVhcgorICAgICAg
IC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0aW9u
IGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSByZXR1cm5lZCBieQor
ICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkgdG8gYXBwbHkgdGhl
IGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJlZm9yZSBjYWxsaW5n
IFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkID0g
MHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFzc2VkIGluIGlzIGFj
dHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5HTCkgdGhlbiBzZXQg
dGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4MDIsCisKKyAgICAg
ICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgwNCwKKworICAgICAg
IC8vIFNldCB0byBpbmRpY2F0ZSB0aGF0IHBUZXh0dXJlIGlzIGEgcG9pbnRlciB0byBhIFZSVGV4
dHVyZVdpdGhQb3NlX3QuCisgICAgICAgU3VibWl0X1RleHR1cmVXaXRoUG9zZSA9IDB4MDgsCit9
OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxrYW4gdGV4dHVyZXMgdG8gSVZS
Q29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3BlblZSX1NodXRkb3duIGJl
Zm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVjdCBWUlZ1bGthblRleHR1
cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsgLy8gVmtJbWFnZQorICAgICAg
IFZrRGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNpY2FsRGV2aWNlX1QgKm1fcFBo
eXNpY2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9wSW5zdGFuY2U7CisgICAgICAg
VmtRdWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4
OworICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQsIG1fbkZvcm1hdCwgbV9uU2Ft
cGxlQ291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBEM0QxMiB0ZXh0
dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJf
U2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IEQz
RDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291cmNlICptX3BSZXNvdXJjZTsK
KyAgICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRRdWV1ZTsKKyAgICAgICB1aW50
MzJfdCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2YgdGhlIG92ZXJhbGwgc3lzdGVt
IG9yIHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQoreworICAgICAgIFZSU3RhdGVf
VW5kZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAwLAorICAgICAgIFZSU3RhdGVf
U2VhcmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGluZ19BbGVydCA9IDIsCisgICAg
ICAgVlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCisg
ICAgICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJTdGF0ZV9TdGFuZGJ5ID0gNiwK
KyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9OworCisvKiogVGhlIHR5cGVz
IG9mIGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdoYXQgdGhlIHBhcmFtZXRlcnMg
bWVhbiBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAg
ICBWUkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZh
dGVkICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFj
dGl2YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRhdGVk
ICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmlj
ZVVzZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAgICAgIFZSRXZlbnRfSXBkQ2hh
bmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJF
dmVudF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAgICAg
VlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCisgICAg
ICAgVlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAgICAgPSAxMDgsCisgICAgICAg
VlJFdmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAgICAgICAgPSAxMDksCisgICAg
ICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gMTEwLAorICAg
ICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTExLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NEaXNjb25uZWN0ICAgICAgICAgICAgICAgICAg
ICAgPSAxMTIsCisgICAgICAgVlJFdmVudF9XaXJlbGVzc1JlY29ubmVjdCAgICAgICAgICAgICAg
ICAgICAgID0gMTEzLAorCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAg
IFZSRXZlbnRfQnV0dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwg
Ly8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRhdGEgaXMgY29udHJvbGxlcgor
ICAgICAgIFZSRXZlbnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMywgLy8gZGF0YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBWUkV2ZW50X01vdXNlTW92ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAsIC8vIGRhdGEgaXMgbW91c2UK
KyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDMwMSwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25VcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAg
IFZSRXZlbnRfRm9jdXNFbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAz
MDMsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRm9jdXNMZWF2ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAg
ICAgIFZSRXZlbnRfU2Nyb2xsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDUsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAg
IFZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gMzA3LCAv
LyBkYXRhIGlzIG92ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAgICAgVlJFdmVudF9JbnB1dEZv
Y3VzQ2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMCwgLy8gZGF0YSBpcyBwcm9jZXNz
IERFUFJFQ0FURUQKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCAgICAgICAgICAg
ICAgICAgICAgID0gNDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAorICAgICAgIFZS
RXZlbnRfU2NlbmVGb2N1c0xvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDIsIC8v
IGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCAgICAgICAg
ICAgICAgICAgICAgID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1Nj
ZW5lQXBwbGljYXRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDQwNCwgLy8gZGF0YSBpcyBwcm9j
ZXNzIC0gVGhlIEFwcCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2VuZSBjaGFuZ2VkICh1c3VhbGx5
IHRvIG9yIGZyb20gdGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hh
bmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBOZXcg
YXBwIGdvdCBhY2Nlc3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9j
dXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA0MDYsIC8vIGRhdGEgaXMgcHJvY2Vzcwor
ICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQg
PSA0MDcsIC8vIGRhdGEgaXMgcHJvY2VzcworCisgICAgICAgVlJFdmVudF9IaWRlUmVuZGVyTW9k
ZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxp
Y2F0aW9uIHRvIHJlcXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMgdGVtcG9yYXJpbHkKKyAgICAg
ICBWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9IDQxMSwgLy8g
U2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCByZXN0b3JpbmcgcmVuZGVy
IG1vZGVsIHZpc2liaWxpdHkKKworICAgICAgIFZSRXZlbnRfT3ZlcmxheVNob3duICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTAwLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUhpZGRlbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMSwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2Fy
ZEFjdGl2YXRlZCAgICAgICAgICAgICAgICAgICAgID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkRGVhY3RpdmF0ZWQgICAgICAgICAgICAgID0gNTAzLAorICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkVGh1bWJTZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQsIC8vIFNlbnQgdG8gdGhlIG92
ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
UmVxdWVzdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDUsIC8vIFNlbnQgdG8gdGhlIG92ZXJs
YXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfUmVzZXREYXNoYm9h
cmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDYsIC8vIFNlbmQgdG8gdGhlIG92ZXJs
YXkgbWFuYWdlcgorICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBkYXNoYm9hcmQgdG8gcmVuZGVy
IGEgdG9hc3QgLSBkYXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQKKyAgICAgICBWUkV2ZW50X0lt
YWdlTG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwOCwgLy8gU2Vu
dCB0byBvdmVybGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5RnJvbUZpbGUg
Y2FsbCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8ga2V5Ym9hcmQgcmVuZGVyZXIg
aW4gdGhlIGRhc2hib2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBWUkV2ZW50X0hpZGVLZXlib2Fy
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxMCwgLy8gU2VudCB0byBrZXlib2FyZCBy
ZW5kZXJlciBpbiB0aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAgICAgICBWUkV2ZW50X092ZXJs
YXlHYW1lcGFkRm9jdXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNlbnQgdG8gYW4gb3ZlcmxheSB3
aGVuIElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gaXQKKyAgICAgICBW
UkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAgICAgICA9IDUxMiwgLy8gU2Vu
ZCB0byBhbiBvdmVybGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQgZm9jdXMgYW5kIElWUk92ZXJs
YXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRoaW5nIGVsc2UKKyAgICAgICBW
UkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBWUkV2ZW50
X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwKKyAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZEd1aWRlQnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1LAorICAgICAgIFZSRXZlbnRf
U2NyZWVuc2hvdFRyaWdnZXJlZCAgICAgICAgICAgICAgICAgICAgID0gNTE2LCAvLyBTY3JlZW5z
aG90IGJ1dHRvbiBjb21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJkIHNob3VsZCByZXF1ZXN0IGEg
c2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVy
bGF5UmF3IG9yIFNldE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBsb2FkCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAgPSA1MTgsCisKKyAgICAgICAv
LyBTY3JlZW5zaG90IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkgdnJjbGllbnQgYXBwbGljYXRp
b24gdG8gY29tcG9zaXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfU2Ny
ZWVuc2hvdFRha2VuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMSwgLy8g
U2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90
IGhhcyBiZWVuIHRha2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFw
cGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRvIGJlIHRha2VuCisgICAgICAg
VlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAgICAgICAgICAgID0gNTIzLCAv
LyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNj
cmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
VG9EYXNoYm9hcmQgICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFz
aGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVkCisKKyAgICAg
ICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkICAgICAgID0gNTI1LAorCisg
ICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA2MDAsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0JlZ2lu
SW50ZXJhY3Rpb24gICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fRGVz
dHJveWVkICAgICAgICAgICAgICAgICAgICAgPSA2MDMsCisKKyAgICAgICBWUkV2ZW50X1F1aXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDAsIC8v
IGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMSwgLy8gZGF0YSBpcyBwcm9jZXNzCisg
ICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAgICAgICAgICAgICAgICAgICAg
PSA3MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMywgLy8gZGF0YSBpcyBwcm9jZXNzCisg
ICAgICAgVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNzA0LCAvLyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQgdGhhdCBTdGVhbVZSIHNodXQg
ZG93bgorCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkICAgICAgICAgICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRh
SGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MDIsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVT
ZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODAzLAorICAgICAgIFZSRXZlbnRfU2VhdGVkWmVy
b1Bvc2VSZXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgwNCwKKworICAgICAgIFZS
RXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDgyMCwKKworICAg
ICAgIFZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDg1
MCwKKyAgICAgICBWUkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAg
ID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgICAg
ICAgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkICAg
ICAgID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2Vk
ICAgICAgID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkICAg
ICAgICAgICAgICA9IDg1NSwKKyAgICAgICBWUkV2ZW50X0VuYWJsZUhvbWVBcHBTZXR0aW5nc0hh
dmVDaGFuZ2VkID0gODU2LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9NQ0ltYWdl
VXBkYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAg
ICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDEx
MDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAxLAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRD
aGFySW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAgIFZSRXZl
bnRfS2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIs
IC8vIFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAgICAgICBW
UkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwK
KyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAg
ID0gMTMwMSwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0
ZWQgICAgICAgPSAxMzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9BcHBsaWNh
dGlvbk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEz
MDUsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzQ29ubmVjdGVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEzMDYsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzRGlzY29ubmVjdGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDcsCisKKyAgICAgICBWUkV2
ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAgICAgID0gMTQwMCwKKyAg
ICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuICAgICAgICAgICAgICA9
IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duICAg
ICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJv
dW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFf
U3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9T
dG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1Bh
dXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVz
dW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0
aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9F
bmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAgICAgICBWUkV2ZW50X01lc3Nh
Z2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1MCwKKyAgICAgICBWUkV2
ZW50X01lc3NhZ2VPdmVybGF5Q2xvc2VSZXF1ZXN0ZWQgICAgICAgPSAxNjUxLAorICAgICAgIAor
ICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHByaXZhdGUgZXZlbnRzIGluIHRo
aXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZl
ZF9TdGFydCAgICAgICA9IDEwMDAwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfRW5kICAgICAgICAgICAgICA9IDE5OTk5LAorfTsKKworCisvKiogTGV2ZWwgb2YgSG1k
IGFjdGl2aXR5ICovCisvLyBVc2VySW50ZXJhY3Rpb25fVGltZW91dCBtZWFucyB0aGUgZGV2aWNl
IGlzIGluIHRoZSBwcm9jZXNzIG9mIHRpbWluZyBvdXQuCisvLyBJblVzZSA9ICgga19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gfHwga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9V
c2VySW50ZXJhY3Rpb25fVGltZW91dCApCisvLyBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkIGZpcmVzIHdoZW4gdGhlIGRldmljZXMgdHJhbnNpdGlvbnMgZnJvbSBT
dGFuZGJ5IC0+IFVzZXJJbnRlcmFjdGlvbiBvciBJZGxlIC0+IFVzZXJJbnRlcmFjdGlvbi4KKy8v
IFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIGZpcmVzIHdoZW4gdGhl
IGRldmljZXMgdHJhbnNpdGlvbnMgZnJvbSBVc2VySW50ZXJhY3Rpb25fVGltZW91dCAtPiBJZGxl
CitlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7ICAgICAgIAorICAgICAgIGtfRURldmljZUFj
dGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgIGtfRURldmljZUFjdGl2aXR5
TGV2ZWxfSWRsZSA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDEwIHNlY29uZHMKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEFjdGl2aXR5IChtb3ZlbWVudCBvciBwcm94IHNlbnNvcikgaXMgaGFwcGVuaW5nIG5v
dyAgICAgICAKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9U
aW1lb3V0ID0gMiwgICAgICAgICAgICAgIC8vIE5vIGFjdGl2aXR5IGZvciB0aGUgbGFzdCAwLjUg
c2Vjb25kcworICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSA9IDMsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWRsZSBmb3IgYXQgbGVhc3Qg
NSBzZWNvbmRzIChjb25maWd1cmFibGUgaW4gU2V0dGluZ3MgLT4gUG93ZXIgTWFuYWdlbWVudCkK
K307CisKKworLyoqIFZSIGNvbnRyb2xsZXIgYnV0dG9uIGFuZCBheGlzIElEcyAqLworZW51bSBF
VlJCdXR0b25JZAoreworICAgICAgIGtfRUJ1dHRvbl9TeXN0ZW0gICAgICAgICAgICAgICAgICAg
ICA9IDAsCisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSAgICAgICA9IDEsCisgICAg
ICAga19FQnV0dG9uX0dyaXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAg
IGtfRUJ1dHRvbl9EUGFkX0xlZnQgICAgICAgICAgICAgICAgICAgICA9IDMsCisgICAgICAga19F
QnV0dG9uX0RQYWRfVXAgICAgICAgICAgICAgICAgICAgICA9IDQsCisgICAgICAga19FQnV0dG9u
X0RQYWRfUmlnaHQgICAgICAgICAgICAgID0gNSwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9Eb3du
ICAgICAgICAgICAgICAgICAgICAgPSA2LAorICAgICAgIGtfRUJ1dHRvbl9BICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDcsCisgICAgICAgCisgICAgICAga19FQnV0dG9uX1By
b3hpbWl0eVNlbnNvciAgID0gMzEsCisKKyAgICAgICBrX0VCdXR0b25fQXhpczAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMiwKKyAgICAgICBrX0VCdXR0b25fQXhpczEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMywKKyAgICAgICBrX0VCdXR0b25fQXhpczIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzNCwKKyAgICAgICBrX0VCdXR0b25fQXhpczMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzNSwKKyAgICAgICBrX0VCdXR0b25fQXhpczQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzNiwKKworICAgICAgIC8vIGFsaWFzZXMgZm9yIHdlbGwga25v
d24gY29udHJvbGxlcnMKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCAgICAgICA9
IGtfRUJ1dHRvbl9BeGlzMCwKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9UcmlnZ2VyICAgICAg
ID0ga19FQnV0dG9uX0F4aXMxLAorCisgICAgICAga19FQnV0dG9uX0Rhc2hib2FyZF9CYWNrICAg
ICAgID0ga19FQnV0dG9uX0dyaXAsCisKKyAgICAgICBrX0VCdXR0b25fTWF4ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjQKK307CisKK2lubGluZSB1aW50NjRfdCBCdXR0b25NYXNrRnJv
bUlkKCBFVlJCdXR0b25JZCBpZCApIHsgcmV0dXJuIDF1bGwgPDwgaWQ7IH0KKworLyoqIHVzZWQg
Zm9yIGNvbnRyb2xsZXIgYnV0dG9uIGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfQ29udHJvbGxl
cl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJCdXR0b25JZCBlbnVtCit9Owor
CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkgc3BhY2Ug
Ki8KK2VudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBWUk1vdXNlQnV0dG9uX0xlZnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAxLAorICAgICAgIFZSTW91c2VC
dXR0b25fUmlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAyLAor
ICAgICAgIFZSTW91c2VCdXR0b25fTWlkZGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MHgwMDA0LAorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBv
dmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7CisgICAgICAgZmxvYXQg
eCwgeTsgLy8gY28tb3JkcyBhcmUgaW4gR0wgc3BhY2UsIGJvdHRvbSBsZWZ0IG9mIHRoZSB0ZXh0
dXJlIGlzIDAsMAorICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSTW91c2VCdXR0b24gZW51
bQorfTsKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSB3aGVlbCBzY3JvbGwgaW4gb3Zl
cmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QKK3sKKyAgICAgICBmbG9hdCB4
ZGVsdGEsIHlkZWx0YTsgLy8gbW92ZW1lbnQgaW4gZnJhY3Rpb24gb2YgdGhlIHBhZCB0cmF2ZXJz
ZWQgc2luY2UgbGFzdCBkZWx0YSwgMS4wIGZvciBhIGZ1bGwgc3dpcGUKKyAgICAgICB1aW50MzJf
dCByZXBlYXRDb3VudDsKK307CisKKy8qKiB3aGVuIGluIG1vdXNlIGlucHV0IG1vZGUgeW91IGNh
biByZWNlaXZlIGRhdGEgZnJvbSB0aGUgdG91Y2hwYWQsIHRoZXNlIGV2ZW50cyBhcmUgb25seSBz
ZW50IGlmIHRoZSB1c2VycyBmaW5nZXIKKyAgIGlzIG9uIHRoZSB0b3VjaHBhZCAob3IganVzdCBy
ZWxlYXNlZCBmcm9tIGl0KSAKKyoqLworc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKK3sK
KyAgICAgICAvLyB0cnVlIGlmIHRoZSB1c2VycyBmaW5nZXIgaXMgZGV0ZWN0ZWQgb24gdGhlIHRv
dWNoIHBhZAorICAgICAgIGJvb2wgYkZpbmdlckRvd247CisKKyAgICAgICAvLyBIb3cgbG9uZyB0
aGUgZmluZ2VyIGhhcyBiZWVuIGRvd24gaW4gc2Vjb25kcworICAgICAgIGZsb2F0IGZsU2Vjb25k
c0ZpbmdlckRvd247CisKKyAgICAgICAvLyBUaGVzZSB2YWx1ZXMgaW5kaWNhdGUgdGhlIHN0YXJ0
aW5nIGZpbmdlciBwb3NpdGlvbiAoc28geW91IGNhbiBkbyBzb21lIGJhc2ljIHN3aXBlIHN0dWZm
KQorICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKKyAgICAgICBmbG9hdCBmVmFsdWVZRmlyc3Q7
CisKKyAgICAgICAvLyBUaGlzIGlzIHRoZSByYXcgc2FtcGxlZCBjb29yZGluYXRlIHdpdGhvdXQg
ZGVhZHpvbmluZworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgZmxvYXQgZlZhbHVl
WVJhdzsKK307CisKKy8qKiBub3RpZmljYXRpb24gcmVsYXRlZCBldmVudHMuIERldGFpbHMgd2ls
bCBzdGlsbCBjaGFuZ2UgYXQgdGhpcyBwb2ludCAqLworc3RydWN0IFZSRXZlbnRfTm90aWZpY2F0
aW9uX3QKK3sKKyAgICAgICB1aW50NjRfdCB1bFVzZXJWYWx1ZTsKKyAgICAgICB1aW50MzJfdCBu
b3RpZmljYXRpb25JZDsKK307CisKKy8qKiBVc2VkIGZvciBldmVudHMgYWJvdXQgcHJvY2Vzc2Vz
ICovCitzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7Cisg
ICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJvb2wgYkZvcmNlZDsKK307CisKKworLyoq
IFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAqLworc3RydWN0IFZSRXZlbnRf
T3ZlcmxheV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKK307CisKKworLyoq
IFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAqLworc3RydWN0IFZSRXZlbnRf
U3RhdHVzX3QKK3sKKyAgICAgICB1aW50MzJfdCBzdGF0dXNTdGF0ZTsgLy8gRVZSU3RhdGUgZW51
bQorfTsKKworLyoqIFVzZWQgZm9yIGtleWJvYXJkIGV2ZW50cyAqKi8KK3N0cnVjdCBWUkV2ZW50
X0tleWJvYXJkX3QKK3sKKyAgICAgICBjaGFyIGNOZXdJbnB1dFs4XTsgICAgICAgLy8gVXAgdG8g
MTEgYnl0ZXMgb2YgbmV3IGlucHV0CisgICAgICAgdWludDY0X3QgdVVzZXJWYWx1ZTsgICAgICAg
Ly8gUG9zc2libGUgZmxhZ3MgYWJvdXQgdGhlIG5ldyBpbnB1dAorfTsKKworc3RydWN0IFZSRXZl
bnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9OworCitzdHJ1Y3QgVlJFdmVu
dF9DaGFwZXJvbmVfdAoreworICAgICAgIHVpbnQ2NF90IG1fblByZXZpb3VzVW5pdmVyc2U7Cisg
ICAgICAgdWludDY0X3QgbV9uQ3VycmVudFVuaXZlcnNlOworfTsKKworLyoqIE5vdCBhY3R1YWxs
eSB1c2VkIGZvciBhbnkgZXZlbnRzICovCitzdHJ1Y3QgVlJFdmVudF9SZXNlcnZlZF90Cit7Cisg
ICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMTsKK307
CisKK3N0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMyX3Qg
bV9uRmlkZWxpdHlMZXZlbDsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVz
ZXRfdAoreworICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfTsKKworc3RydWN0IFZS
RXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3QgaGFuZGxlOworICAgICAgIHVp
bnQzMl90IHR5cGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdAor
eworICAgICAgIGZsb2F0IHByb2dyZXNzOworfTsKKworc3RydWN0IFZSRXZlbnRfQXBwbGljYXRp
b25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50MzJfdCB1bkFy
Z3NIYW5kbGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90Cit7
CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBuVmlzdWFs
TW9kZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICB1
aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsgLy8gdnI6OlZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZSBlbnVtCit9OworCitzdHJ1Y3QgVlJFdmVudF9Qcm9wZXJ0eV90Cit7CisgICAg
ICAgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBjb250YWluZXI7CisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wOworfTsKKworLyoqIE5PVEUhISEgSWYgeW91IGNoYW5nZSB0aGlz
IHlvdSBNVVNUIG1hbnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSAqLwordHlwZWRl
ZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRfdCByZXNlcnZlZDsKKyAgICAgICBW
UkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAgICAgIFZSRXZlbnRfTW91c2VfdCBt
b3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9sbDsKKyAgICAgICBWUkV2ZW50X1By
b2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX3Qgbm90aWZpY2F0
aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJsYXk7CisgICAgICAgVlJFdmVudF9T
dGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXlib2FyZF90IGtleWJvYXJkOworICAg
ICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lX3QgY2hhcGVy
b25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0Owor
ICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFZSRXZl
bnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Qb3NlUmVzZXQ7CisgICAgICAgVlJF
dmVudF9TY3JlZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RQ
cm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QgYXBwbGljYXRpb25MYXVuY2g7CisgICAgICAgVlJFdmVudF9FZGl0aW5nQ2FtZXJh
U3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90
IG1lc3NhZ2VPdmVybGF5OworICAgICAgIFZSRXZlbnRfUHJvcGVydHlfdCBwcm9wZXJ0eTsKK30g
VlJFdmVudF9EYXRhX3Q7CisKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1w
YWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFn
bWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUg
c2VydmVyIHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLworc3RydWN0IFZSRXZlbnRfdAor
eworICAgICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KKyAgICAg
ICBUcmFja2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7CisgICAgICAgZmxvYXQg
ZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9m
IHRoZSBzdHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAgICAgICBWUkV2ZW50X0RhdGFf
dCBkYXRhOworfTsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVf
XykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworLyoqIFRoZSBtZXNoIHRvIGRyYXcg
aW50byB0aGUgc3RlbmNpbCAob3IgZGVwdGgpIGJ1ZmZlciB0byBwZXJmb3JtIAorKiBlYXJseSBz
dGVuY2lsIChvciBkZXB0aCkga2lsbHMgb2YgcGl4ZWxzIHRoYXQgd2lsbCBuZXZlciBhcHBlYXIg
b24gdGhlIEhNRC4KKyogVGhpcyBtZXNoIGRyYXdzIG9uIGFsbCB0aGUgcGl4ZWxzIHRoYXQgd2ls
bCBiZSBoaWRkZW4gYWZ0ZXIgZGlzdG9ydGlvbi4gCisqCisqIElmIHRoZSBITUQgZG9lcyBub3Qg
cHJvdmlkZSBhIHZpc2libGUgYXJlYSBtZXNoIHBWZXJ0ZXhEYXRhIHdpbGwgYmUKKyogTlVMTCBh
bmQgdW5UcmlhbmdsZUNvdW50IHdpbGwgYmUgMC4gKi8KK3N0cnVjdCBIaWRkZW5BcmVhTWVzaF90
Cit7CisgICAgICAgY29uc3QgSG1kVmVjdG9yMl90ICpwVmVydGV4RGF0YTsKKyAgICAgICB1aW50
MzJfdCB1blRyaWFuZ2xlQ291bnQ7Cit9OworCisKK2VudW0gRUhpZGRlbkFyZWFNZXNoVHlwZQor
eworICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0gMCwKKyAgICAgICBrX2VIaWRk
ZW5BcmVhTWVzaF9JbnZlcnNlID0gMSwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9MaW5lTG9v
cCA9IDIsCisKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9NYXggPSAzLAorfTsKKworCisvKiog
SWRlbnRpZmllcyB3aGF0IGtpbmQgb2YgYXhpcyBpcyBvbiB0aGUgY29udHJvbGxlciBhdCBpbmRl
eCBuLiBSZWFkIHRoaXMgdHlwZSAKKyogd2l0aCBwVlJTeXN0ZW0tPkdldCggbkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCwgUHJvcF9BeGlzMFR5cGVfSW50MzIgKyBuICk7CisqLworZW51bSBFVlJDb250
cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19Ob25lID0gMCwKKyAg
ICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAgICAga19lQ29udHJvbGxl
ckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIgPSAz
LCAvLyBBbmFsb2cgdHJpZ2dlciBkYXRhIGlzIGluIHRoZSBYIGF4aXMKK307CisKKworLyoqIGNv
bnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IG9uZSBheGlzIG9uIHRoZSBjb250cm9sbGVyICovCitz
dHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgZmxvYXQgeDsgLy8gUmFuZ2VzIGZy
b20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFkcy4gUmFuZ2VzIGZyb20g
MC4wIHRvIDEuMCBmb3IgdHJpZ2dlcnMgd2VyZSAwIGlzIGZ1bGx5IHJlbGVhc2VkLgorICAgICAg
IGZsb2F0IHk7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlja3MgYW5kIHRy
YWNrIHBhZHMuIElzIGFsd2F5cyAwLjAgZm9yIHRyaWdnZXJzLgorfTsKKworCisvKiogdGhlIG51
bWJlciBvZiBheGVzIGluIHRoZSBjb250cm9sbGVyIHN0YXRlICovCitzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCA9IDU7CisKKworI2lmIGRlZmluZWQo
X19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMg
b3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisv
LyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworLyoq
IEhvbGRzIGFsbCB0aGUgc3RhdGUgb2YgYSBjb250cm9sbGVyIGF0IG9uZSBtb21lbnQgaW4gdGlt
ZS4gKi8KK3N0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90Cit7CisgICAgICAgLy8gSWYgcGFj
a2V0IG51bSBtYXRjaGVzIHRoYXQgb24geW91ciBwcmlvciBjYWxsLCB0aGVuIHRoZSBjb250cm9s
bGVyIHN0YXRlIGhhc24ndCBiZWVuIGNoYW5nZWQgc2luY2UgCisgICAgICAgLy8geW91ciBsYXN0
IGNhbGwgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyBpdAorICAgICAgIHVpbnQzMl90
IHVuUGFja2V0TnVtOworCisgICAgICAgLy8gYml0IGZsYWdzIGZvciBlYWNoIG9mIHRoZSBidXR0
b25zLiBVc2UgQnV0dG9uTWFza0Zyb21JZCB0byB0dXJuIGFuIElEIGludG8gYSBtYXNrCisgICAg
ICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uVG91
Y2hlZDsKKworICAgICAgIC8vIEF4aXMgZGF0YSBmb3IgdGhlIGNvbnRyb2xsZXIncyBhbmFsb2cg
aW5wdXRzCisgICAgICAgVlJDb250cm9sbGVyQXhpc190IHJBeGlzWyBrX3VuQ29udHJvbGxlclN0
YXRlQXhpc0NvdW50IF07Cit9OworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworCit0eXBlZGVmIFZSQ29u
dHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKKworCisvKiogZGV0ZXJtaW5l
cyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHZhcmlvdXMgZXZl
bnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1
dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAorICAg
ICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9OworCisKKworLyoqIENv
bGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7Cisg
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19T
VFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQsCisg
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisgICAgICAgQ09MTElTSU9OX0JP
VU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY3Vz
dG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3NpdG9yICovCitzdHJ1
Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXplOyAv
LyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisgICAgICAgYm9vbCBjdXJ2ZWQs
IGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFscGhhOworICAgICAg
IGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOworICAgICAgIGZsb2F0IGdy
aWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBIbWRNYXRyaXg0NF90IHRyYW5z
Zm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZSIG92ZXJsYXkgKi8K
K3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCBWUk92
ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworCisvKiogRXJyb3Jz
IHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLworZW51bSBFVlJPdmVybGF5RXJy
b3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5rbm93bk92
ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAgIFZST3ZlcmxheUVycm9yX0lu
dmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAgICAgIFZS
T3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAgICA9IDEzLCAvLyBO
byBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBudW1i
ZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5
cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9uZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAgIFZST3ZlcmxheUVycm9yX05h
bWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCisgICAgICAgVlJPdmVy
bGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTcs
CisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAgICAgICAgICAgICA9
IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlICAgICAgICAg
ICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIgICAgICAg
ICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVycm9yX1RodW1ibmFpbENhbnRC
ZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3ZlcmxheUVycm9yX0FycmF5VG9vU21h
bGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZST3ZlcmxheUVycm9yX1JlcXVl
c3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAgICAgIFZST3ZlcmxheUVycm9y
X0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAgPSAyNSwKKyAgICAg
ICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAgICAgICAgPSAyNiwK
KyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVzICAg
ICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSAgICAgICAg
ICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1ZXMgdG8gcGFzcyBpbiB0byBW
Ul9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdpbGwgCisqIGRyYXcg
YSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAgVlJBcHBs
aWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVyIGtpbmQgb2YgYXBw
bGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRyaWVzIAorICAgICAg
IFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRp
b24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fT3ZlcmxheSA9
IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0cyB3aXRoIG92ZXJs
YXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAgICAgLy8gQXBwbGlj
YXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFscmVhZHkgcnVubmlu
ZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBpZiBldmVyeXRoaW5n
IGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwgICAgICAgICAg
ICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVycy4gVGhlIGFwcGxp
Y2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIChsaWtl
IElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFyZHdhcmUuCisgICAg
ICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNlcnZlZCBmb3IgdnJt
b25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwvLyBSZXNlcnZl
ZCBmb3IgU3RlYW0KKyAgICAgICBWUkFwcGxpY2F0aW9uX0Jvb3RzdHJhcHBlciA9IDcsIC8vIFN0
YXJ0IHVwIFN0ZWFtVlIKKworICAgICAgIFZSQXBwbGljYXRpb25fTWF4Cit9OworCisKKy8qKiBl
cnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmlybXdhcmVFcnJvcgoreworICAg
ICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUkZpcm13YXJlRXJyb3JfU3Vj
Y2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAorfTsKKworCisvKiog
ZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0gRVZSTm90aWZpY2F0aW9uRXJy
b3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAgIFZSTm90aWZp
Y2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9Owor
CisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCisKKy8vIFBsZWFzZSBh
ZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9wZXIudmFsdmVz
b2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhlbHAKK2VudW0g
RVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9IDAsCisgICAg
ICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAgICAgICAgICAgICAgICAgPSAx
MDEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kICAgICAgICAg
ICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA0
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgICAgICAgICAgICAgID0gMTA3LAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEx
MCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1Bh
dGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMiwKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlICAgICAgICAgICAgICA9
IDExMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUmV0cnkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTUsIC8v
IFVzZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZyc2VydmVyCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTYsIC8vIFRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIHNob3VsZCBzaWxlbnRseSBleGl0
LiBUaGUgdXNlciBjYW5jZWxlZCBhcHAgc3RhcnR1cAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
QW5vdGhlckFwcExhdW5jaGluZyAgICAgICAgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExOCwgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE5LAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfVG9vTWFueU9iamVjdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIw
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAgICAg
ICAgICAgICA9IDEyMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhD
b21wb3NpdG9yICAgICAgICAgICAgICA9IDEyMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05v
dEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgICAgICAgICAgICAgID0gMTIzLAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjUsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkICAgICAgICAgICAgICAgPSAxMjYsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEyNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWls
ZWQgICAgICAgICAgICAgICAgICAgICA9IDEyOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0xv
d1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgICAgICAgPSAxMjksIAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSAgICAgICAgICAgICAgICAgICAgID0gMTMw
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgICAg
ICAgICAgICAgID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxl
ZEluU2V0dGluZ3MgICAgICAgICAgICAgID0gMTMyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
VlJEYXNoYm9hcmROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTMzLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgICAgICAgICA9IDEz
NCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZvdW5kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEzNSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSSG9t
ZVN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDEzNiwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1JlYm9vdGluZ0J1c3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTM3LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVVcGRhdGVCdXN5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTM4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmly
bXdhcmVSZWNvdmVyeUJ1c3kgICAgICAgICAgICAgICAgICAgICA9IDEzOSwKKworCisgICAgICAg
VlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAwLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDEsCisgICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAzLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9S
dW50aW1lT3V0T2ZEYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0LAorICAgICAg
IFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJh
dGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA2LAorICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgICAgICAgICAgICAgICAgICAgICA9IDIwNywKKyAg
ICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kICAgICAgICAgICAgICAg
ICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRl
cmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNw
bGF5Tm90Rm91bmRBZnRlckZpeCA9IDIxMCwgLy8gbm90IG5lZWRlZDogaGVyZSBmb3IgaGlzdG9y
aWMgcmVhc29ucworICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9mQm91
bmRzICAgICAgICAgICAgICA9IDIxMSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlz
cGxheU1pcnJvcmVkICAgICAgICAgICAgICAgICAgICAgPSAyMTIsCisKKyAgICAgICBWUkluaXRF
cnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
MCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMDEsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0
YXRlSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAyLAorICAgICAgIFZSSW5pdEVy
cm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAzLAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzA0LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDUsCisgICAg
ICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29u
bmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9z
aXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNDAwLAorICAg
ICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkICAgICAgID0g
NDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0
ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0
RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9y
X1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKyAgICAgICBWUkluaXRFcnJvcl9D
b21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRlRGV2aWNlICAgICAgICAgICAgICA9IDQwNSwKKworICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVu
dGltZSAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTEwMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFi
bGVUb1JlcXVlc3RDb25maWdTdGFydCAgICAgICA9IDExMDIsCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9Db25maWdUb29CaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNCwKKyAg
ICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA1LAorICAgICAgIFZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTA2LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nh
bnRSZWFkRmlybXdhcmVWZXJzaW9uICAgICAgICA9IDExMDcsCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCAgICAgICA9
IDExMDgsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9HZXRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCAgICAgICAgICAgICAg
PSAxMTEwLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJE
YXRhQWRkcmVzc1JhbmdlICAgICAgICAgICAgICA9IDExMTEsCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDExMTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAgID0gMTExMywKKworICAgICAg
IFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfTsK
KworZW51bSBFVlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTm9u
ZSA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwgLy8gbGVmdCBleWUgb25s
eQorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBWUlNjcmVlbnNo
b3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1h
ID0gNCwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNQorfTsKKwor
ZW51bSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBWUlNjcmVlbnNo
b3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAgICBWUlNjcmVlbnNob3RQcm9w
ZXJ0eUZpbGVuYW1lc19WUiA9IDEsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJvcgor
eworICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAg
ID0gMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgICAgICAg
ICAgICA9IDEwMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlICAg
ICAgICAgICAgICA9IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52
YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJy
b3JfT3V0T2ZIYW5kbGVzICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfSVBDRmFpbHVyZSAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSAgPSAxMDUsCisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSAgICAgICAgPSAxMDYsCisg
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWlsdXJlICAgICAgPSAx
MDcsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlICAgICAg
ICAgPSAxMDgsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlk
ICAgICAgICAgPSAxMDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNoYXJl
ZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVk
VG9HZXRHTFRleHR1cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
U2hhcmVkVGV4dHVyZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfTm9GcmFtZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMsCisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAgPSAxMTQsCisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSAgICAgPSAxMTUsCit9Owor
CitlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRoZSBjYW1lcmEgdmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMsIHN0aWxsIGRpc3RvcnRlZC4K
KyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQsICAgICAgICAgICAg
ICAgICAgICAgLy8gSW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBpbnNjcmliZWQgcmVjdGFuZ2xl
IHJlZ2lvbiB3aXRob3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBzaXplIGlzIHN1YmplY3QgdG8g
Y2hhbmdlcyBzaG9ydGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVt
VW5kaXN0b3J0ZWQsICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11bSB1bmRpc3RvcnRlZCB3aXRo
IGludmFsaWQgcmVnaW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9uZW50IGlkZW50aWZpZXMgdmFs
aWQgcmVnaW9ucy4KKyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTCit9OworCit0eXBlZGVm
IHVpbnQ2NF90IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZpbmUgSU5WQUxJRF9UUkFDS0VE
X0NBTUVSQV9IQU5ETEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90KTApCisKK3N0
cnVjdCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7Cisg
ICAgICAgdWludDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsK
KworICAgICAgIHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisgICAgICAgVHJhY2tlZERldmlj
ZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsKKworLy8gU2NyZWVuc2hvdCB0
eXBlcwordHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworCisjcHJhZ21hIHBh
Y2soIHBvcCApCisKKy8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9ydCBmcm9tIHRoZSBWUiBBUEkg
ZGxsCisjaWYgZGVmaW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVmaW5l
IFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisjZWxzZQor
I2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxpbXBvcnQgKQor
I2VuZGlmCisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoQ09NUElMRVJfR0ND
KSB8fCBkZWZpbmVkKF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUg
VlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVs
dCIpKSkKKyNlbHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIAorI2VuZGlmCisK
KyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIKKyNlbmRpZgorCisKKyNpZiBk
ZWZpbmVkKCBfV0lOMzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBfX2NkZWNsCisjZWxzZQorI2Rl
ZmluZSBWUl9DQUxMVFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB2cgorCisjZW5kaWYg
Ly8gX0lOQ0xVREVfVlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0aW9uLmgKKyNpZmRlZiBBUElf
R0VOCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0cmlidXRlX18oKGFubm90YXRl
KCBBVFRSICkpKQorI2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikKKyNlbmRpZgor
CisjZGVmaW5lIFZSX01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5HX0FUVFIoICJkZXNjOiIgI0RF
U0MgIjsiICkKKyNkZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NMQU5HX0FUVFIoICJpZ25vcmUi
ICkKKyNkZWZpbmUgVlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RydWN0OiA7
IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmluZzog
OyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVSLEZVTkNUSU9OLFBBUkFNUykg
VlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5URVIgIiwiICNGVU5DVElPTiAi
LCIgI1BBUkFNUyAiOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ09VTlQoQ09VTlRFUikgVlJf
Q0xBTkdfQVRUUiggIm91dF9hcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZS
X0FSUkFZX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VO
VEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09VTlRFUiwgREVTQykgVlJfQ0xB
TkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNjOiIgI0RFU0MgKQorI2RlZmlu
ZSBWUl9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImJ1ZmZlcl9jb3VudDoi
ICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJf
Q0xBTkdfQVRUUiggIm91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBW
Ul9PVVRfU1RSSU5HX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nX2Nv
dW50OiIgI0NPVU5URVIgIjsiICkKKworLy8gaXZyc3lzdGVtLmgKK25hbWVzcGFjZSB2cgorewor
CitjbGFzcyBJVlJTeXN0ZW0KK3sKK3B1YmxpYzoKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gRGlzcGxheSBNZXRob2RzCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiog
U3VnZ2VzdGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVuZGVyIHRhcmdldCB0aGF0IHRo
ZSBkaXN0b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldFJlY29t
bWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhl
aWdodCApID0gMDsKKworICAgICAgIC8qKiBUaGUgcHJvamVjdGlvbiBtYXRyaXggZm9yIHRoZSBz
cGVjaWZpZWQgZXllICovCisgICAgICAgdmlydHVhbCBIbWRNYXRyaXg0NF90IEdldFByb2plY3Rp
b25NYXRyaXgoIEVWUkV5ZSBlRXllLCBmbG9hdCBmTmVhclosIGZsb2F0IGZGYXJaICkgPSAwOwor
CisgICAgICAgLyoqIFRoZSBjb21wb25lbnRzIG5lY2Vzc2FyeSB0byBidWlsZCB5b3VyIG93biBw
cm9qZWN0aW9uIG1hdHJpeCBpbiBjYXNlIHlvdXIKKyAgICAgICAqIGFwcGxpY2F0aW9uIGlzIGRv
aW5nIHNvbWV0aGluZyBmYW5jeSBsaWtlIGluZmluaXRlIFogKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpw
ZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKworICAgICAgIC8q
KiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIGRpc3RvcnRpb24gZnVuY3Rpb24gZm9yIHRoZSBzcGVj
aWZpZWQgZXllIGFuZCBpbnB1dCBVVnMuIFVWcyBnbyBmcm9tIDAsMCBpbiAKKyAgICAgICAqIHRo
ZSB1cHBlciBsZWZ0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQgYW5kIDEsMSBpbiB0aGUgbG93ZXIg
cmlnaHQgb2YgdGhhdCBleWUncyB2aWV3cG9ydC4KKyAgICAgICAqIFJldHVybnMgdHJ1ZSBmb3Ig
c3VjY2Vzcy4gT3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLCBhbmQgZGlzdG9ydGlvbiBjb29yZGlu
YXRlcyBhcmUgbm90IHN1aXRhYmxlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDb21wdXRlRGlz
dG9ydGlvbiggRVZSRXllIGVFeWUsIGZsb2F0IGZVLCBmbG9hdCBmViwgRGlzdG9ydGlvbkNvb3Jk
aW5hdGVzX3QgKnBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMgKSA9IDA7CisKKyAgICAgICAvKiogUmV0
dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gZXllIHNwYWNlIHRvIHRoZSBoZWFkIHNwYWNlLiBFeWUg
c3BhY2UgaXMgdGhlIHBlci1leWUgZmxhdm9yIG9mIGhlYWQKKyAgICAgICAqIHNwYWNlIHRoYXQg
cHJvdmlkZXMgc3RlcmVvIGRpc3Bhcml0eS4gSW5zdGVhZCBvZiBNb2RlbCAqIFZpZXcgKiBQcm9q
ZWN0aW9uIHRoZSBzZXF1ZW5jZSBpcyBNb2RlbCAqIFZpZXcgKiBFeWVeLTEgKiBQcm9qZWN0aW9u
LiAKKyAgICAgICAqIE5vcm1hbGx5IFZpZXcgYW5kIEV5ZV4tMSB3aWxsIGJlIG11bHRpcGxpZWQg
dG9nZXRoZXIgYW5kIHRyZWF0ZWQgYXMgVmlldyBpbiB5b3VyIGFwcGxpY2F0aW9uLiAKKyAgICAg
ICAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRFeWVUb0hlYWRUcmFuc2Zvcm0o
IEVWUkV5ZSBlRXllICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBl
bGFwc2VkIHNlY29uZHMgc2luY2UgdGhlIGxhc3QgcmVjb3JkZWQgdnN5bmMgZXZlbnQuIFRoaXMg
CisgICAgICAgKiAgICAgICB3aWxsIGNvbWUgZnJvbSBhIHZzeW5jIHRpbWVyIGV2ZW50IGluIHRo
ZSB0aW1lciBpZiBwb3NzaWJsZSBvciBmcm9tIHRoZSBhcHBsaWNhdGlvbi1yZXBvcnRlZAorICAg
ICAgICogICB0aW1lIGlmIHRoYXQgaXMgbm90IGF2YWlsYWJsZS4gSWYgbm8gdnN5bmMgdGltZXMg
YXJlIGF2YWlsYWJsZSB0aGUgZnVuY3Rpb24gd2lsbCAKKyAgICAgICAqICAgcmV0dXJuIHplcm8g
Zm9yIHZzeW5jIHRpbWUgYW5kIGZyYW1lIGNvdW50ZXIgYW5kIHJldHVybiBmYWxzZSBmcm9tIHRo
ZSBtZXRob2QuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFRpbWVTaW5jZUxhc3RWc3luYygg
ZmxvYXQgKnBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRfdCAqcHVsRnJhbWVDb3VudGVy
ICkgPSAwOworCisgICAgICAgLyoqIFtEM0Q5IE9ubHldCisgICAgICAgKiBSZXR1cm5zIHRoZSBh
ZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBDcmVhdGVEZXZpY2Ug
dG8gc2V0IHVwIEQzRDkgaW4gc3VjaAorICAgICAgICogYSB3YXkgdGhhdCBpdCBjYW4gZ28gZnVs
bCBzY3JlZW4gZXhjbHVzaXZlIG9uIHRoZSBITUQuIFJldHVybnMgLTEgaWYgdGhlcmUgd2FzIGFu
IGVycm9yLgorICAgICAgICovCisgICAgICAgdmlydHVhbCBpbnQzMl90IEdldEQzRDlBZGFwdGVy
SW5kZXgoKSA9IDA7CisKKyAgICAgICAvKiogW0QzRDEwLzExIE9ubHldCisgICAgICAgKiBSZXR1
cm5zIHRoZSBhZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBFbnVt
QWRhcHRlcnMgdG8gY3JlYXRlIHRoZSBkZXZpY2UgCisgICAgICAgKiBhbmQgc3dhcCBjaGFpbiBp
biBEWDEwIGFuZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhlIGluZGV4IHdpbGwgYmUgc2V0
IHRvIC0xLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldERYR0lPdXRwdXRJbmZv
KCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCApID0gMDsKKyAgICAgICAKKyAgICAgICAvKioKKyAg
ICAgICAgKiBSZXR1cm5zIHBsYXRmb3JtLSBhbmQgdGV4dHVyZS10eXBlIHNwZWNpZmljIGFkYXB0
ZXIgaWRlbnRpZmljYXRpb24gc28gdGhhdCBhcHBsaWNhdGlvbnMgYW5kIHRoZQorICAgICAgICAq
IGNvbXBvc2l0b3IgYXJlIGNyZWF0aW5nIHRleHR1cmVzIGFuZCBzd2FwIGNoYWlucyBvbiB0aGUg
c2FtZSBHUFUuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgZGV2aWNlCisgICAgICAgICogd2lsbCBi
ZSBzZXQgdG8gMC4KKyAgICAgICAgKiBwSW5zdGFuY2UgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVy
IHRoYXQgaXMgcmVxdWlyZWQgb25seSB3aGVuIHRleHR1cmVUeXBlIGlzIFRleHR1cmVUeXBlX1Z1
bGthbi4KKyAgICAgICAgKiBbRDNEMTAvMTEvMTIgT25seSAoRDNEOSBOb3QgU3VwcG9ydGVkKV0K
KyAgICAgICAgKiAgUmV0dXJucyB0aGUgYWRhcHRlciBMVUlEIHRoYXQgaWRlbnRpZmllcyB0aGUg
R1BVIGF0dGFjaGVkIHRvIHRoZSBITUQuIFRoZSB1c2VyIHNob3VsZAorICAgICAgICAqICBlbnVt
ZXJhdGUgYWxsIGFkYXB0ZXJzIHVzaW5nIElEWEdJRmFjdG9yeTo6RW51bUFkYXB0ZXJzIGFuZCBJ
RFhHSUFkYXB0ZXI6OkdldERlc2MgdG8gZmluZAorICAgICAgICAqICB0aGUgYWRhcHRlciB3aXRo
IHRoZSBtYXRjaGluZyBMVUlELCBvciB1c2UgSURYR0lGYWN0b3J5NDo6RW51bUFkYXB0ZXJCeUx1
aWQuCisgICAgICAgICogIFRoZSBkaXNjb3ZlcmVkIElEWEdJQWRhcHRlciBzaG91bGQgYmUgdXNl
ZCB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbi4KKyAgICAgICAgKiBbVnVsa2Fu
IE9ubHldCisgICAgICAgICogIFJldHVybnMgdGhlIFZrUGh5c2ljYWxEZXZpY2UgdGhhdCBzaG91
bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAgICogIHBJbnN0YW5jZSBtdXN0
IGJlIHRoZSBpbnN0YW5jZSB0aGUgYXBwbGljYXRpb24gd2lsbCB1c2UgdG8gcXVlcnkgZm9yIHRo
ZSBWa1BoeXNpY2FsRGV2aWNlLiAgVGhlIGFwcGxpY2F0aW9uCisgICAgICAgICogIG11c3QgY3Jl
YXRlIHRoZSBWa0luc3RhbmNlIHdpdGggZXh0ZW5zaW9ucyByZXR1cm5lZCBieSBJVlJDb21wb3Np
dG9yOjpHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBlbmFibGVkLgorICAgICAg
ICAqIFttYWNPUyBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIGFuIGlkPE1UTERldmljZT4gdGhh
dCBzaG91bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAgICovCisgICAgICAg
dmlydHVhbCB2b2lkIEdldE91dHB1dERldmljZSggdWludDY0X3QgKnBuRGV2aWNlLCBFVGV4dHVy
ZVR5cGUgdGV4dHVyZVR5cGUsIFZrSW5zdGFuY2VfVCAqcEluc3RhbmNlID0gbnVsbHB0ciApID0g
MDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIERpc3BsYXkgTW9kZSBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVXNlIHRvIGRldGVybWluZSBpZiB0aGUg
aGVhZHNldCBkaXNwbGF5IGlzIHBhcnQgb2YgdGhlIGRlc2t0b3AgKGkuZS4gZXh0ZW5kZWQpIG9y
IGhpZGRlbiAoaS5lLiBkaXJlY3QgbW9kZSkuICovCisgICAgICAgdmlydHVhbCBib29sIElzRGlz
cGxheU9uRGVza3RvcCgpID0gMDsKKworICAgICAgIC8qKiBTZXQgdGhlIGRpc3BsYXkgdmlzaWJp
bGl0eSAodHJ1ZSA9IGV4dGVuZGVkLCBmYWxzZSA9IGRpcmVjdCBtb2RlKS4gIFJldHVybiB2YWx1
ZSBvZiB0cnVlIGluZGljYXRlcyB0aGF0IHRoZSBjaGFuZ2Ugd2FzIHN1Y2Nlc3NmdWwuICovCisg
ICAgICAgdmlydHVhbCBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5KCBib29sIGJJc1Zpc2libGVP
bkRlc2t0b3AgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAvLyBUcmFja2luZyBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVGhlIHBvc2UgdGhhdCB0
aGUgdHJhY2tlciB0aGlua3MgdGhhdCB0aGUgSE1EIHdpbGwgYmUgaW4gYXQgdGhlIHNwZWNpZmll
ZCBudW1iZXIgb2Ygc2Vjb25kcyBpbnRvIHRoZSAKKyAgICAgICAqIGZ1dHVyZS4gUGFzcyAwIHRv
IGdldCB0aGUgc3RhdGUgYXQgdGhlIGluc3RhbnQgdGhlIG1ldGhvZCBpcyBjYWxsZWQuIE1vc3Qg
b2YgdGhlIHRpbWUgdGhlIGFwcGxpY2F0aW9uIHNob3VsZAorICAgICAgICogY2FsY3VsYXRlIHRo
ZSB0aW1lIHVudGlsIHRoZSBwaG90b25zIHdpbGwgYmUgZW1pdHRlZCBmcm9tIHRoZSBkaXNwbGF5
IGFuZCBwYXNzIHRoYXQgdGltZSBpbnRvIHRoZSBtZXRob2QuCisgICAgICAgKgorICAgICAgICog
VGhpcyBpcyByb3VnaGx5IGFuYWxvZ291cyB0byB0aGUgaW52ZXJzZSBvZiB0aGUgdmlldyBtYXRy
aXggaW4gbW9zdCBhcHBsaWNhdGlvbnMsIHRob3VnaCAKKyAgICAgICAqIG1hbnkgZ2FtZXMgd2ls
bCBuZWVkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCByb3RhdGlvbiBvciB0cmFuc2xhdGlvbiBvbiB0
b3Agb2YgdGhlIHJvdGF0aW9uCisgICAgICAgKiBhbmQgdHJhbnNsYXRpb24gcHJvdmlkZWQgYnkg
dGhlIGhlYWQgcG9zZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZGV2aWNlcyB3aGVyZSBiUG9z
ZUlzVmFsaWQgaXMgdHJ1ZSB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSB0aGUgcG9zZSB0byBwb3Np
dGlvbiB0aGUgZGV2aWNlCisgICAgICAgKiBpbiBxdWVzdGlvbi4gVGhlIHByb3ZpZGVkIGFycmF5
IGNhbiBiZSBhbnkgc2l6ZSB1cCB0byBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50LiAKKyAgICAg
ICAqCisgICAgICAgKiBTZWF0ZWQgZXhwZXJpZW5jZXMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2Qg
d2l0aCBUcmFja2luZ1VuaXZlcnNlU2VhdGVkIGFuZCByZWNlaXZlIHBvc2VzIHJlbGF0aXZlCisg
ICAgICAgKiB0byB0aGUgc2VhdGVkIHplcm8gcG9zZS4gU3RhbmRpbmcgZXhwZXJpZW5jZXMgc2hv
dWxkIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgCisgICAg
ICAgKiBhbmQgcmVjZWl2ZSBwb3NlcyByZWxhdGl2ZSB0byB0aGUgQ2hhcGVyb25lIFBsYXkgQXJl
YS4gVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCBzaG91bGQgCisgICAgICAgKiBw
cm9iYWJseSBub3QgYmUgdXNlZCB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uIGlzIHRoZSBDaGFwZXJv
bmUgY2FsaWJyYXRpb24gdG9vbCBpdHNlbGYsIGJ1dCB3aWxsIHByb3ZpZGUKKyAgICAgICAqIHBv
c2VzIHJlbGF0aXZlIHRvIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb29yZGluYXRlIHN5c3RlbSBp
biB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldERldmljZVRv
QWJzb2x1dGVUcmFja2luZ1Bvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIGZs
b2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgVlJfQVJSQVlfQ09VTlQodW5U
cmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFja2Vk
RGV2aWNlUG9zZUFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3VudCAp
ID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSB6ZXJvIHBvc2UgZm9yIHRoZSBzZWF0ZWQgdHJh
Y2tlciBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgeWF3IG9m
IHRoZSBITUQuIEFmdGVyIAorICAgICAgICogUmVzZXRTZWF0ZWRaZXJvUG9zZSBhbGwgR2V0RGV2
aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBjYWxscyB0aGF0IHBhc3MgVHJhY2tpbmdVbml2ZXJz
ZVNlYXRlZCBhcyB0aGUgb3JpZ2luIAorICAgICAgICogd2lsbCBiZSByZWxhdGl2ZSB0byB0aGlz
IG5ldyB6ZXJvIHBvc2UuIFRoZSBuZXcgemVybyBjb29yZGluYXRlIHN5c3RlbSB3aWxsIG5vdCBj
aGFuZ2UgdGhlIGZhY3QgdGhhdCB0aGUgWSBheGlzIAorICAgICAgICogaXMgdXAgaW4gdGhlIHJl
YWwgd29ybGQsIHNvIHRoZSBuZXh0IHBvc2UgcmV0dXJuZWQgZnJvbSBHZXREZXZpY2VUb0Fic29s
dXRlVHJhY2tpbmdQb3NlIGFmdGVyIGEgY2FsbCB0byAKKyAgICAgICAqIFJlc2V0U2VhdGVkWmVy
b1Bvc2UgbWF5IG5vdCBiZSBleGFjdGx5IGFuIGlkZW50aXR5IG1hdHJpeC4KKyAgICAgICAqCisg
ICAgICAgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0aGUgdXNlcidzIHByZXZpb3Vz
bHkgc2F2ZWQgc2VhdGVkIHplcm8gcG9zZSBhbmQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFzIHRo
ZSByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gCisgICAgICAgKiBVc2VycyBhcmUgYWxzbyBhYmxl
IHRvIHNldCB0aGVpciBzZWF0ZWQgemVybyBwb3NlIHZpYSB0aGUgT3BlblZSIERhc2hib2FyZC4K
KyAgICAgICAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVzZXRTZWF0ZWRaZXJvUG9zZSgpID0g
MDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gZnJvbSB0aGUgc2VhdGVkIHpl
cm8gcG9zZSB0byB0aGUgc3RhbmRpbmcgYWJzb2x1dGUgdHJhY2tpbmcgc3lzdGVtLiBUaGlzIGFs
bG93cyAKKyAgICAgICAqIGFwcGxpY2F0aW9ucyB0byByZXByZXNlbnQgdGhlIHNlYXRlZCBvcmln
aW4gdG8gdXNlZCBvciB0cmFuc2Zvcm0gb2JqZWN0IHBvc2l0aW9ucyBmcm9tIG9uZSBjb29yZGlu
YXRlCisgICAgICAgKiBzeXN0ZW0gdG8gdGhlIG90aGVyLiAKKyAgICAgICAqCisgICAgICAgKiBU
aGUgc2VhdGVkIG9yaWdpbiBtYXkgb3IgbWF5IG5vdCBiZSBpbnNpZGUgdGhlIFBsYXkgQXJlYSBv
ciBDb2xsaXNpb24gQm91bmRzIHJldHVybmVkIGJ5IElWUkNoYXBlcm9uZS4gSXRzIHBvc2l0aW9u
IAorICAgICAgICogZGVwZW5kcyBvbiB3aGF0IHRoZSB1c2VyIGhhcyBzZXQgZnJvbSB0aGUgRGFz
aGJvYXJkIHNldHRpbmdzIGFuZCBwcmV2aW91cyBjYWxscyB0byBSZXNldFNlYXRlZFplcm9Qb3Nl
LiAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRTZWF0ZWRaZXJvUG9zZVRvU3Rh
bmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSB0cmFuc2Zvcm0gZnJvbSB0aGUgdHJhY2tpbmcgb3JpZ2luIHRvIHRoZSBzdGFuZGluZyBhYnNv
bHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzCisgICAgICAgKiBhcHBsaWNhdGlvbnMg
dG8gY29udmVydCBmcm9tIHJhdyB0cmFja2luZyBzcGFjZSB0byB0aGUgY2FsaWJyYXRlZCBzdGFu
ZGluZyBjb29yZGluYXRlIHN5c3RlbS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3Qg
R2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKSA9IDA7CisKKyAg
ICAgICAvKiogR2V0IGEgc29ydGVkIGFycmF5IG9mIGRldmljZSBpbmRpY2VzIG9mIGEgZ2l2ZW4g
Y2xhc3Mgb2YgdHJhY2tlZCBkZXZpY2VzIChlLmcuIGNvbnRyb2xsZXJzKS4gIERldmljZXMgYXJl
IHNvcnRlZCByaWdodCB0byBsZWZ0CisgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgc3BlY2lmaWVk
IHRyYWNrZWQgZGV2aWNlIChkZWZhdWx0OiBobWQgLS0gcGFzcyBpbiAtMSBmb3IgYWJzb2x1dGUg
dHJhY2tpbmcgc3BhY2UpLiAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRldmljZXMKKyAgICAgICAq
IGluIHRoZSBsaXN0LCBvciB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgbmVlZGVkIGlmIG5vdCBsYXJn
ZSBlbm91Z2guICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRTb3J0ZWRUcmFja2VkRGV2
aWNlSW5kaWNlc09mQ2xhc3MoIEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFz
cywgVlJfQVJSQVlfQ09VTlQodW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50KSB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJfdCB1
blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1
blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXggPSBrX3VuVHJhY2tlZERldmljZUluZGV4X0ht
ZCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsZXZlbCBvZiBhY3Rpdml0eSBvbiB0
aGUgZGV2aWNlLiAqLworICAgICAgIHZpcnR1YWwgRURldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJh
Y2tlZERldmljZUFjdGl2aXR5TGV2ZWwoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmlj
ZUlkICkgPSAwOworCisgICAgICAgLyoqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gYXBwbHkgdGhl
IHNwZWNpZmllZCB0cmFuc2Zvcm0gdG8gdGhlIHNwZWNpZmllZCBwb3NlLgorICAgICAgICogICBU
aGlzIHByb3Blcmx5IHRyYW5zZm9ybXMgYWxsIHBvc2UgY29tcG9uZW50cywgaW5jbHVkaW5nIHZl
bG9jaXR5IGFuZCBhbmd1bGFyIHZlbG9jaXR5CisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgQXBwbHlUcmFuc2Zvcm0oIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBPdXRwdXRQb3NlLCBjb25z
dCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UsIGNvbnN0IEhtZE1hdHJp
eDM0X3QgKnBUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgZGV2aWNl
IGluZGV4IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvbGUsIGZvciBleGFtcGxlIHRoZSBs
ZWZ0IGhhbmQgb3IgdGhlIHJpZ2h0IGhhbmQuICovCisgICAgICAgdmlydHVhbCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUoIHZy
OjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSApID0gMDsKKworICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBjb250cm9sbGVyIHR5cGUgYXNzb2NpYXRlZCB3aXRoIGEgZGV2aWNlIGlu
ZGV4LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVUcmFja2VkQ29udHJvbGxlclJvbGUgR2V0Q29u
dHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gUHJvcGVydHkgbWV0aG9kcworICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJldHVybnMg
dGhlIGRldmljZSBjbGFzcyBvZiBhIHRyYWNrZWQgZGV2aWNlLiBJZiB0aGVyZSBoYXMgbm90IGJl
ZW4gYSBkZXZpY2UgY29ubmVjdGVkIGluIHRoaXMgc2xvdAorICAgICAgICogc2luY2UgdGhlIGFw
cGxpY2F0aW9uIHN0YXJ0ZWQgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBUcmFja2VkRGV2aWNl
X0ludmFsaWQuIEZvciBwcmV2aW91cyBkZXRlY3RlZAorICAgICAgICogZGV2aWNlcyB0aGUgZnVu
Y3Rpb24gd2lsbCByZXR1cm4gdGhlIHByZXZpb3VzbHkgb2JzZXJ2ZWQgZGV2aWNlIGNsYXNzLiAK
KyAgICAgICAqCisgICAgICAgKiBUbyBkZXRlcm1pbmUgd2hpY2ggZGV2aWNlcyBleGlzdCBvbiB0
aGUgc3lzdGVtLCBqdXN0IGxvb3AgZnJvbSAwIHRvIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQg
YW5kIGNoZWNrCisgICAgICAgKiB0aGUgZGV2aWNlIGNsYXNzLiBFdmVyeSBkZXZpY2Ugd2l0aCBz
b21ldGhpbmcgb3RoZXIgdGhhbiBUcmFja2VkRGV2aWNlX0ludmFsaWQgaXMgYXNzb2NpYXRlZCB3
aXRoIGFuIAorICAgICAgICogYWN0dWFsIHRyYWNrZWQgZGV2aWNlLiAqLworICAgICAgIHZpcnR1
YWwgRVRyYWNrZWREZXZpY2VDbGFzcyBHZXRUcmFja2VkRGV2aWNlQ2xhc3MoIHZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiB0aGVyZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgaW4gdGhpcyBzbG90LiAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQoIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBi
b29sIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJv
cGVydHkgaXMgbm90IGEgYm9vbCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gZmFsc2Uu
ICovCisgICAgICAgdmlydHVhbCBib29sIEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAg
ICAgICAvKiogUmV0dXJucyBhIGZsb2F0IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlz
IG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgZmxvYXQgdHlwZSB0aGlzIGZ1bmN0
aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJy
b3IgPSAwTCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIGludCBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIGlu
dCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAgICB2aXJ0dWFsIGlu
dDMyX3QgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBh
IHVpbnQ2NCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhl
IHByb3BlcnR5IGlzIG5vdCBhIHVpbnQ2NCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4g
MC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2
aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0g
MDsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgbWF0cml4IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNl
IGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgbWF0cml4IHR5cGUs
IHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaWRlbnRpdHkuICovCisgICAgICAgdmlydHVhbCBI
bWRNYXRyaXgzNF90IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZh
bGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdp
bGwgCisgICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBv
ZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1
ZGluZyB0aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0
IGluIGJ1ZmZlcnMgb2Yga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLwor
ICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVm
ZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAg
ICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgc3BlY2lm
aWVkIHByb3BlcnR5IGVycm9yLiBUaGUgc3RyaW5nIHdpbGwgYmUgdGhlIG5hbWUgCisgICAgICAg
KiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxsIHZhbGlkIGVycm9yIGNvZGVzICovCisg
ICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBlcnJvciApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEV2ZW50IG1ldGhvZHMKKyAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRoZSBx
dWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVudHMKKyAgICAgICAqIHRo
aXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBp
biBieXRlcyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLworICAgICAgIHZpcnR1YWwgYm9vbCBQ
b2xsTmV4dEV2ZW50KCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQgKSA9
IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0
aGUgbmV4dCBldmVudCBvbiB0aGUgcXVldWUgaWYgdGhlcmUgaXMgb25lLiBJZiB0aGVyZSBhcmUg
bm8gZXZlbnRzCisgICAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiBGaWxscyBpbiB0
aGUgcG9zZSBvZiB0aGUgYXNzb2NpYXRlZCB0cmFja2VkIGRldmljZSBpbiB0aGUgcHJvdmlkZWQg
cG9zZSBzdHJ1Y3QuIAorICAgICAgICogVGhpcyBwb3NlIHdpbGwgYWx3YXlzIGJlIG9sZGVyIHRo
YW4gdGhlIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIHJl
bmRlciB0aGUgZGV2aWNlLiAKKyAgICAgICB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNpemUg
aW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
UG9sbE5leHRFdmVudFdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBW
UkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQsIHZyOjpUcmFja2VkRGV2aWNl
UG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UgKSA9IDA7CisKKyAgICAgICAvKiogcmV0dXJucyB0
aGUgbmFtZSBvZiBhbiBFVlJFdmVudCBlbnVtIHZhbHVlICovCisgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oIEVWUkV2ZW50VHlwZSBlVHlwZSApID0g
MDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIFJlbmRlcmluZyBoZWxwZXIgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJldHVybnMgdGhlIGhpZGRlbiBh
cmVhIG1lc2ggZm9yIHRoZSBjdXJyZW50IEhNRC4gVGhlIHBpeGVscyBjb3ZlcmVkIGJ5IHRoaXMg
bWVzaCB3aWxsIG5ldmVyIGJlIHNlZW4gYnkgdGhlIHVzZXIgYWZ0ZXIgdGhlIGxlbnMgZGlzdG9y
dGlvbiBpcworICAgICAgICogYXBwbGllZCBiYXNlZCBvbiB2aXNpYmlsaXR5IHRvIHRoZSBwYW5l
bHMuIElmIHRoaXMgSE1EIGRvZXMgbm90IGhhdmUgYSBoaWRkZW4gYXJlYSBtZXNoLCB0aGUgdmVy
dGV4IGRhdGEgYW5kIGNvdW50IHdpbGwgYmUgTlVMTCBhbmQgMCByZXNwZWN0aXZlbHkuCisgICAg
ICAgKiBUaGlzIG1lc2ggaXMgbWVhbnQgdG8gYmUgcmVuZGVyZWQgaW50byB0aGUgc3RlbmNpbCBi
dWZmZXIgKG9yIGludG8gdGhlIGRlcHRoIGJ1ZmZlciBzZXR0aW5nIG5lYXJ6KSBiZWZvcmUgcmVu
ZGVyaW5nIGVhY2ggZXllJ3Mgdmlldy4gCisgICAgICAgKiBUaGlzIHdpbGwgaW1wcm92ZSBwZXJm
b3JtYW5jZSBieSBsZXR0aW5nIHRoZSBHUFUgZWFybHktcmVqZWN0IHBpeGVscyB0aGUgdXNlciB3
aWxsIG5ldmVyIHNlZSBiZWZvcmUgcnVubmluZyB0aGUgcGl4ZWwgc2hhZGVyLgorICAgICAgICog
Tk9URTogUmVuZGVyIHRoaXMgbWVzaCB3aXRoIGJhY2tmYWNlIGN1bGxpbmcgZGlzYWJsZWQgc2lu
Y2UgdGhlIHdpbmRpbmcgb3JkZXIgb2YgdGhlIHZlcnRpY2VzIGNhbiBiZSBkaWZmZXJlbnQgcGVy
LUhNRCBvciBwZXItZXllLgorICAgICAgICogU2V0dGluZyB0aGUgYkludmVyc2UgYXJndW1lbnQg
dG8gdHJ1ZSB3aWxsIHByb2R1Y2UgdGhlIHZpc2libGUgYXJlYSBtZXNoIHRoYXQgaXMgY29tbW9u
bHkgdXNlZCBpbiBwbGFjZSBvZiBmdWxsLXNjcmVlbiBxdWFkcy4gVGhlIHZpc2libGUgYXJlYSBt
ZXNoIGNvdmVycyBhbGwgb2YgdGhlIHBpeGVscyB0aGUgaGlkZGVuIGFyZWEgbWVzaCBkb2VzIG5v
dCBjb3Zlci4KKyAgICAgICAqIFNldHRpbmcgdGhlIGJMaW5lTG9vcCBhcmd1bWVudCB3aWxsIHJl
dHVybiBhIGxpbmUgbG9vcCBvZiB2ZXJ0aWNlcyBpbiBIaWRkZW5BcmVhTWVzaF90LT5wVmVydGV4
RGF0YSB3aXRoIEhpZGRlbkFyZWFNZXNoX3QtPnVuVHJpYW5nbGVDb3VudCBzZXQgdG8gdGhlIG51
bWJlciBvZiB2ZXJ0aWNlcy4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgSGlkZGVuQXJlYU1l
c2hfdCBHZXRIaWRkZW5BcmVhTWVzaCggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUg
dHlwZSA9IGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkICkgPSAwOworCisgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gQ29udHJvbGxlciBt
ZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyAgICAgICAvKiogRmlsbHMgdGhlIHN1cHBsaWVkIHN0cnVjdCB3aXRoIHRoZSBjdXJyZW50IHN0
YXRlIG9mIHRoZSBjb250cm9sbGVyLiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBjb250cm9sbGVyIGlu
ZGV4CisgICAgICAgKiBpcyBpbnZhbGlkLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDb250
cm9sbGVyU3RhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJ
bmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKnBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90
IHVuQ29udHJvbGxlclN0YXRlU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBmaWxscyB0aGUgc3Vw
cGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRyb2xsZXIgYW5k
IHRoZSBwcm92aWRlZCBwb3NlIHdpdGggdGhlIHBvc2Ugb2YgCisgICAgICAgKiB0aGUgY29udHJv
bGxlciB3aGVuIHRoZSBjb250cm9sbGVyIHN0YXRlIHdhcyB1cGRhdGVkIG1vc3QgcmVjZW50bHku
IFVzZSB0aGlzIGZvcm0gaWYgeW91IG5lZWQgYSBwcmVjaXNlIGNvbnRyb2xsZXIKKyAgICAgICAq
IHBvc2UgYXMgaW5wdXQgdG8geW91ciBhcHBsaWNhdGlvbiB3aGVuIHRoZSB1c2VyIHByZXNzZXMg
b3IgcmVsZWFzZXMgYSBidXR0b24uICovCisgICAgICAgdmlydHVhbCBib29sIEdldENvbnRyb2xs
ZXJTdGF0ZVdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHZyOjpWUkNvbnRyb2xs
ZXJTdGF0ZV90ICpwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJTdGF0ZVNp
emUsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZSApID0gMDsKKworICAg
ICAgIC8qKiBUcmlnZ2VyIGEgc2luZ2xlIGhhcHRpYyBwdWxzZSBvbiBhIGNvbnRyb2xsZXIuIEFm
dGVyIHRoaXMgY2FsbCB0aGUgYXBwbGljYXRpb24gbWF5IG5vdCB0cmlnZ2VyIGFub3RoZXIgaGFw
dGljIHB1bHNlIG9uIHRoaXMgY29udHJvbGxlcgorICAgICAgICogYW5kIGF4aXMgY29tYmluYXRp
b24gZm9yIDVtcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQzMl90
IHVuQXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9TZWMgKSA9IDA7CisKKyAg
ICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBFVlJCdXR0b25JZCBlbnVtIHZhbHVlICov
CisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRCdXR0b25JZE5hbWVGcm9tRW51bSggRVZS
QnV0dG9uSWQgZUJ1dHRvbklkICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgdGhlIG5hbWUg
b2YgYW4gRVZSQ29udHJvbGxlckF4aXNUeXBlIGVudW0gdmFsdWUgKi8KKyAgICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSggRVZSQ29udHJv
bGxlckF4aXNUeXBlIGVBeGlzVHlwZSApID0gMDsKKworICAgICAgIC8qKiBUZWxscyBPcGVuVlIg
dGhhdCB0aGlzIHByb2Nlc3Mgd2FudHMgZXhjbHVzaXZlIGFjY2VzcyB0byBjb250cm9sbGVyIGJ1
dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBldmVudHMuIE90aGVyIGFwcHMgd2lsbCBiZSBub3RpZmll
ZCB0aGF0IAorICAgICAgICogdGhleSBoYXZlIGxvc3QgaW5wdXQgZm9jdXMgd2l0aCBhIFZSRXZl
bnRfSW5wdXRGb2N1c0NhcHR1cmVkIGV2ZW50LiBSZXR1cm5zIGZhbHNlIGlmIGlucHV0IGZvY3Vz
IGNvdWxkIG5vdCBiZSBjYXB0dXJlZCBmb3IKKyAgICAgICAqIHNvbWUgcmVhc29uLiAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBDYXB0dXJlSW5wdXRGb2N1cygpID0gMDsKKworICAgICAgIC8qKiBU
ZWxscyBPcGVuVlIgdGhhdCB0aGlzIHByb2Nlc3Mgbm8gbG9uZ2VyIHdhbnRzIGV4Y2x1c2l2ZSBh
Y2Nlc3MgdG8gYnV0dG9uIHN0YXRlcyBhbmQgYnV0dG9uIGV2ZW50cy4gT3RoZXIgYXBwcyB3aWxs
IGJlIG5vdGlmaWVkIAorICAgICAgICogdGhhdCBpbnB1dCBmb2N1cyBoYXMgYmVlbiByZWxlYXNl
ZCB3aXRoIGEgVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgZXZlbnQuICovCisgICAgICAgdmly
dHVhbCB2b2lkIFJlbGVhc2VJbnB1dEZvY3VzKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiBpbnB1dCBmb2N1cyBpcyBjYXB0dXJlZCBieSBhbm90aGVyIHByb2Nlc3MuICovCisg
ICAgICAgdmlydHVhbCBib29sIElzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2Vzcygp
ID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIERlYnVnIE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBTZW5kcyBhIHJlcXVlc3QgdG8gdGhlIGRyaXZl
ciBmb3IgdGhlIHNwZWNpZmllZCBkZXZpY2UgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlLiBUaGUg
bWF4aW11bSByZXNwb25zZSBzaXplIGlzIDMyaywKKyAgICAgICAqIGJ1dCB0aGlzIG1ldGhvZCBj
YW4gYmUgY2FsbGVkIHdpdGggYSBzbWFsbGVyIGJ1ZmZlci4gSWYgdGhlIHJlc3BvbnNlIGV4Y2Vl
ZHMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciwgaXQgaXMgdHJ1bmNhdGVkLiAKKyAgICAgICAqIFRo
ZSBzaXplIG9mIHRoZSByZXNwb25zZSBpbmNsdWRpbmcgaXRzIHRlcm1pbmF0aW5nIG51bGwgaXMg
cmV0dXJuZWQuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBEcml2ZXJEZWJ1Z1JlcXVlc3Qo
IHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjb25zdCBjaGFyICpwY2hS
ZXF1ZXN0LCBjaGFyICpwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMyX3QgdW5SZXNwb25zZUJ1ZmZl
clNpemUgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBGaXJtd2FyZSBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgICAgLyoqIFBlcmZvcm1zIHRo
ZSBhY3R1YWwgZmlybXdhcmUgdXBkYXRlIGlmIGFwcGxpY2FibGUuIAorICAgICAgICAqIFRoZSBm
b2xsb3dpbmcgZXZlbnRzIHdpbGwgYmUgc2VudCwgaWYgVlJGaXJtd2FyZUVycm9yX05vbmUgd2Fz
IHJldHVybmVkOiBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCwgVlJFdmVudF9GaXJtd2Fy
ZVVwZGF0ZUZpbmlzaGVkIAorICAgICAgICAqIFVzZSB0aGUgcHJvcGVydGllcyBQcm9wX0Zpcm13
YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sLCBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29s
LCBhbmQgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nCisgICAgICAgICogdG8g
ZmlndXJlIG91ciB3aGV0aGVyIGEgZmlybXdhcmUgdXBkYXRlIGlzIGF2YWlsYWJsZSwgYW5kIHRv
IGZpZ3VyZSBvdXQgd2hldGhlciBpdHMgYSBtYW51YWwgdXBkYXRlIAorICAgICAgICAqIFByb3Bf
RmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyBzaG91bGQgcG9pbnQgdG8gYW4gVVJMIGRl
c2NyaWJpbmcgdGhlIG1hbnVhbCB1cGRhdGUgcHJvY2VzcyAqLworICAgICAgIHZpcnR1YWwgdnI6
OkVWUkZpcm13YXJlRXJyb3IgUGVyZm9ybUZpcm13YXJlVXBkYXRlKCB2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEFwcGxpY2F0aW9uIGxpZmUgY3ljbGUg
bWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgLyoqIENhbGwgdGhpcyB0byBhY2tub3dsZWRnZSB0byB0aGUgc3lzdGVtIHRoYXQg
VlJFdmVudF9RdWl0IGhhcyBiZWVuIHJlY2VpdmVkIGFuZCB0aGF0IHRoZSBwcm9jZXNzIGlzIGV4
aXRpbmcuCisgICAgICAgKiBUaGlzIGV4dGVuZHMgdGhlIHRpbWVvdXQgdW50aWwgdGhlIHByb2Nl
c3MgaXMga2lsbGVkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRfRXhp
dGluZygpID0gMDsKKworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8gdGVsbCB0aGUgc3lzdGVtIHRo
YXQgdGhlIHVzZXIgaXMgYmVpbmcgcHJvbXB0ZWQgdG8gc2F2ZSBkYXRhLiBUaGlzCisgICAgICAg
KiBoYWx0cyB0aGUgdGltZW91dCBhbmQgZGlzbWlzc2VzIHRoZSBkYXNoYm9hcmQgKGlmIGl0IHdh
cyB1cCkuIEFwcGxpY2F0aW9ucyBzaG91bGQgYmUgc3VyZSB0byBhY3R1YWxseSAKKyAgICAgICAq
IHByb21wdCB0aGUgdXNlciB0byBzYXZlIGFuZCB0aGVuIGV4aXQgYWZ0ZXJ3YXJkLCBvdGhlcndp
c2UgdGhlIHVzZXIgd2lsbCBiZSBsZWZ0IGluIGEgY29uZnVzaW5nIHN0YXRlLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCgpID0gMDsKKworfTsKKwor
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTeXN0ZW1fVmVyc2lvbiA9ICJJVlJTeXN0ZW1f
MDE3IjsKKworfQorCisKKy8vIGl2cmFwcGxpY2F0aW9ucy5oCituYW1lc3BhY2UgdnIKK3sKKwor
ICAgICAgIC8qKiBVc2VkIGZvciBhbGwgZXJyb3JzIHJlcG9ydGVkIGJ5IHRoZSBJVlJBcHBsaWNh
dGlvbnMgaW50ZXJmYWNlICovCisgICAgICAgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCisgICAg
ICAgeworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSA9IDAsCisKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAsICAg
ICAgIC8vIE9ubHkgb25lIGFwcGxpY2F0aW9uIGNhbiB1c2UgYW55IGdpdmVuIGtleQorICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCA9IDEwMSwgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGEgbWFuaWZl
c3QKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vQXBwbGljYXRpb24gPSAxMDIs
ICAgICAgICAgICAgICAgICAgICAgLy8gTm8gYXBwbGljYXRpb24gaXMgcnVubmluZworICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAorICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0aW9uID0gMTA0LCAgICAgICAv
LyB0aGUgYXBwbGljYXRpb24gY291bGQgbm90IGJlIGZvdW5kCisgICAgICAgICAgICAgIFZSQXBw
bGljYXRpb25FcnJvcl9JUENGYWlsZWQgPSAxMDUsICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEFuIElQQyBmYWlsdXJlIGNhdXNlZCB0aGUgcmVxdWVzdCB0byBmYWlsCisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nID0gMTA2LCAK
KyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRNYW5pZmVzdCA9IDEwNywK
KyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRBcHBsaWNhdGlvbiA9IDEw
OCwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCA9IDEwOSwg
ICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHJvY2VzcyBkaWRuJ3Qgc3RhcnQKKyAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nID0gMTEw
LCAvLyB0aGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIHRoZSBzYW1lIGFwcGxpY2F0aW9u
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNzID0gMTEx
LCAgICAgICAgICAgICAgLy8gVGhlIHN5c3RlbSB3YXMgYWxyZWFkeSBzdGFydGluZyBhIGRpZmZl
cmVudCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBw
bGljYXRpb25RdWl0dGluZyA9IDExMiwgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJv
cl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX0lzVGVtcGxhdGUgPSAxMTQsIC8vIGVycm9yIHdoZW4geW91IHRyeSB0byBjYWxsIExhdW5j
aEFwcGxpY2F0aW9uKCkgb24gYSB0ZW1wbGF0ZSB0eXBlIGFwcCAodXNlIExhdW5jaFRlbXBsYXRl
QXBwbGljYXRpb24pCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9TdGVhbVZSSXNF
eGl0aW5nID0gMTE1LAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJU
b29TbWFsbCA9IDIwMCwgICAgICAgICAgICAgIC8vIFRoZSBwcm92aWRlZCBidWZmZXIgd2FzIHRv
byBzbWFsbCB0byBmaXQgdGhlIHJlcXVlc3RlZCBkYXRhCisgICAgICAgICAgICAgIFZSQXBwbGlj
YXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIwMSwgICAgICAgICAgICAgIC8vIFRoZSByZXF1
ZXN0ZWQgcHJvcGVydHkgd2FzIG5vdCBzZXQKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX1Vua25vd25Qcm9wZXJ0eSA9IDIwMiwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCisgICAgICAgfTsKKworICAgICAgIC8qKiBUaGUg
bWF4aW11bSBsZW5ndGggb2YgYW4gYXBwbGljYXRpb24ga2V5ICovCisgICAgICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCA9IDEyODsKKworICAgICAg
IC8qKiB0aGVzZSBhcmUgdGhlIHByb3BlcnRpZXMgYXZhaWxhYmxlIG9uIGFwcGxpY2F0aW9ucy4g
Ki8KKyAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDAsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0xh
dW5jaFR5cGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICAgICAgICAg
VlJBcHBsaWNhdGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3RvcnlfU3RyaW5nICAgICAgID0gMTIs
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgID0gMTMsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Bcmd1bWVudHNfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxNCwKKyAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNSwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVz
Y3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDUwLAorICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfTmV3c1VSTF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUxLAor
ICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSW1hZ2VQYXRoX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gNTIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Tb3VyY2VfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTMsCisKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29sICAg
ICAgID0gNjAsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRl
X0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYxLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0
aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gNjIsCisg
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0ludGVybmFsX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICA9IDYzLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlf
V2FudHNDb21wb3NpdG9yUGF1c2VJblN0YW5kYnlfQm9vbCA9IDY0LAorCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9VaW50NjQgICAgICAgICAgICAg
ID0gNzAsCisgICAgICAgfTsKKworICAgICAgIC8qKiBUaGVzZSBhcmUgc3RhdGVzIHRoZSBzY2Vu
ZSBhcHBsaWNhdGlvbiBzdGFydHVwIHByb2Nlc3Mgd2lsbCBnbyB0aHJvdWdoLiAqLworICAgICAg
IGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUKKyAgICAgICB7CisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAwLAorCisgICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCA9IDExLAor
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3
QXBwTGF1bmNoZWQgPSAyMCwKKyAgICAgICB9OworCisgICAgICAgc3RydWN0IEFwcE92ZXJyaWRl
S2V5c190CisgICAgICAgeworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwY2hLZXk7CisgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaFZhbHVlOworICAgICAgIH07CisKKyAgICAgICAvKiog
Q3VycmVudGx5IHJlY29nbml6ZWQgbWltZSB0eXBlcyAqLworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTWltZVR5cGVfSG9tZUFwcCAgICAgICAgICAgICAgPSAidnIvaG9t
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9NaW1lVHlwZV9HYW1l
VGhlYXRlciAgICAgICA9ICJ2ci9nYW1lX3RoZWF0ZXIiOworCisgICAgICAgY2xhc3MgSVZSQXBw
bGljYXRpb25zCisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0aW9uIG1hbmFnZW1lbnQgIC0tLS0tLS0tLS0tLS0tLSAv
LworCisgICAgICAgICAgICAgIC8qKiBBZGRzIGFuIGFwcGxpY2F0aW9uIG1hbmlmZXN0IHRvIHRo
ZSBsaXN0IHRvIGxvYWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgYXBwbGlj
YXRpb25zLiAKKyAgICAgICAgICAgICAgKiBUZW1wb3JhcnkgbWFuaWZlc3RzIGFyZSBub3QgYXV0
b21hdGljYWxseSBsb2FkZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlv
bkVycm9yIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxpY2F0aW9u
TWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5ID0gZmFsc2UgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIFJlbW92ZXMgYW4gYXBwbGljYXRpb24gbWFuaWZlc3QgZnJvbSB0aGUgbGlz
dCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIGFwcGxpY2F0aW9u
cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFw
cGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxs
UGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIGFuIGFwcGxp
Y2F0aW9uIGlzIGluc3RhbGxlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNBcHBs
aWNhdGlvbkluc3RhbGxlZCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXBwbGljYXRpb25zIGF2YWlsYWJsZSBp
biB0aGUgbGlzdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0
aW9uQ291bnQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtleSBvZiB0
aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uLiBUaGUgaW5kZXggaXMgYXQgbGVhc3QgMCBhbmQgaXMg
bGVzcyB0aGFuIHRoZSByZXR1cm4gCisgICAgICAgICAgICAgICogdmFsdWUgb2YgR2V0QXBwbGlj
YXRpb25Db3VudCgpLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBrX3VuTWF4QXBwbGlj
YXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8gCisgICAgICAgICAgICAgICogZml0IHRoZSBrZXku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBHZXRBcHBsaWNh
dGlvbktleUJ5SW5kZXgoIHVpbnQzMl90IHVuQXBwbGljYXRpb25JbmRleCwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtleSBvZiB0aGUgYXBwbGljYXRp
b24gZm9yIHRoZSBzcGVjaWZpZWQgUHJvY2VzcyBJZC4gVGhlIGJ1ZmZlciBzaG91bGQgYmUgYXQg
bGVhc3QgCisgICAgICAgICAgICAgICoga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoIGluIG9y
ZGVyIHRvIGZpdCB0aGUga2V5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCggdWludDMyX3QgdW5Qcm9jZXNz
SWQsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIExhdW5jaGVzIHRoZSBhcHBsaWNhdGlvbi4gVGhlIGV4
aXN0aW5nIHNjZW5lIGFwcGxpY2F0aW9uIHdpbGwgZXhpdCBhbmQgdGhlbiB0aGUgbmV3IGFwcGxp
Y2F0aW9uIHdpbGwgc3RhcnQuCisgICAgICAgICAgICAgICogVGhpcyBjYWxsIGlzIG5vdCB2YWxp
ZCBmb3IgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oIGNvbnN0IGNoYXIg
KnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgYW4gaW5zdGFu
Y2Ugb2YgYW4gYXBwbGljYXRpb24gb2YgdHlwZSB0ZW1wbGF0ZSwgd2l0aCBpdHMgYXBwIGtleSBi
ZWluZyBwY2hOZXdBcHBLZXkgKHdoaWNoIG11c3QgYmUgdW5pcXVlKSBhbmQgb3B0aW9uYWxseSBv
dmVycmlkZSBzZWN0aW9ucworICAgICAgICAgICAgICAqIGZyb20gdGhlIG1hbmlmZXN0IGZpbGUg
dmlhIEFwcE92ZXJyaWRlS2V5c190CisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKCBjb25z
dCBjaGFyICpwY2hUZW1wbGF0ZUFwcEtleSwgY29uc3QgY2hhciAqcGNoTmV3QXBwS2V5LCBWUl9B
UlJBWV9DT1VOVCggdW5LZXlzICkgY29uc3QgQXBwT3ZlcnJpZGVLZXlzX3QgKnBLZXlzLCB1aW50
MzJfdCB1bktleXMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIGxhdW5jaGVzIHRoZSBhcHBs
aWNhdGlvbiBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWltZSB0eXBlIGFuZCBwYXNz
ZXMgaXQgdGhlIG9wdGlvbiBhcmdzLCB0eXBpY2FsbHkgdGhlIGZpbGVuYW1lIG9yIG9iamVjdCBu
YW1lIG9mIHRoZSBpdGVtIGJlaW5nIGxhdW5jaGVkICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUoIGNv
bnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjb25zdCBjaGFyICpwY2hBcmdzICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBMYXVuY2hlcyB0aGUgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb24g
aWYgaXQgaXMgbm90IGFscmVhZHkgcnVubmluZy4gVGhpcyBjYWxsIGlzIG9ubHkgdmFsaWQgZm9y
IAorICAgICAgICAgICAgICAqIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9ucy4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaERhc2hib2FyZE92
ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
Q2FuY2VsIGEgcGVuZGluZyBsYXVuY2ggZm9yIGFuIGFwcGxpY2F0aW9uICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCggY29uc3QgY2hhciAqcGNo
QXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBJZGVudGlmaWVzIGEgcnVubmluZyBh
cHBsaWNhdGlvbi4gT3BlblZSIGNhbid0IGFsd2F5cyB0ZWxsIHdoaWNoIHByb2Nlc3Mgc3RhcnRl
ZCBpbiByZXNwb25zZQorICAgICAgICAgICAgICAqIHRvIGEgVVJMLiBUaGlzIGZ1bmN0aW9uIGFs
bG93cyBhIFVSTCBoYW5kbGVyIChvciB0aGUgcHJvY2VzcyBpdHNlbGYpIHRvIGlkZW50aWZ5IHRo
ZSBhcHAga2V5IAorICAgICAgICAgICAgICAqIGZvciB0aGUgbm93IHJ1bm5pbmcgYXBwbGljYXRp
b24uIFBhc3NpbmcgYSBwcm9jZXNzIElEIG9mIDAgaWRlbnRpZmllcyB0aGUgY2FsbGluZyBwcm9j
ZXNzLiAKKyAgICAgICAgICAgICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBvbmUgdGhhdCdz
IGtub3duIHRvIHRoZSBzeXN0ZW0gdmlhIGEgY2FsbCB0byBBZGRBcHBsaWNhdGlvbk1hbmlmZXN0
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgSWRlbnRpZnlB
cHBsaWNhdGlvbiggdWludDMyX3QgdW5Qcm9jZXNzSWQsIGNvbnN0IGNoYXIgKnBjaEFwcEtleSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBmb3IgYW4g
YXBwbGljYXRpb24uIFJldHVybiAwIGlmIHRoZSBhcHBsaWNhdGlvbiB3YXMgbm90IGZvdW5kIG9y
IGlzIG5vdCBydW5uaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFw
cGxpY2F0aW9uUHJvY2Vzc0lkKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFwcGxpY2F0aW9ucyBlcnJvciAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEFwcGxpY2F0aW9uc0Vycm9y
TmFtZUZyb21FbnVtKCBFVlJBcHBsaWNhdGlvbkVycm9yIGVycm9yICkgPSAwOworCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLSAgQXBwbGljYXRpb24gcHJvcGVydGllcyAgLS0tLS0t
LS0tLS0tLS0tIC8vCisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB2YWx1ZSBmb3IgYW4g
YXBwbGljYXRpb24gcHJvcGVydHkuIFRoZSByZXF1aXJlZCBidWZmZXIgc2l6ZSB0byBmaXQgdGhp
cyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQz
Ml90IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwg
RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIFZSX09VVF9TVFJJTkcoKSBjaGFyICpw
Y2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1aW50MzJfdCB1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4s
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBSZXR1cm5zIGEgYm9vbCB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24gcHJvcGVy
dHkuIFJldHVybnMgZmFsc2UgaW4gYWxsIGVycm9yIGNhc2VzLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2woIGNvbnN0IGNoYXIgKnBjaEFw
cEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5z
IGEgdWludDY0IHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9wZXJ0eS4gUmV0dXJucyAwIGlu
IGFsbCBlcnJvciBjYXNlcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRB
cHBsaWNhdGlvblByb3BlcnR5VWludDY0KCBjb25zdCBjaGFyICpwY2hBcHBLZXksIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9yID0g
bnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgYXBwbGljYXRpb24g
YXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBhcHBsaWNhdGlvbnMgd2hp
Y2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJs
YXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFNl
dEFwcGxpY2F0aW9uQXV0b0xhdW5jaCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBib29sIGJBdXRv
TGF1bmNoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBh
dXRvLWxhdW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFwcGxpY2F0aW9ucyB3aGlj
aCByZXR1cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3Zlcmxh
eV9Cb29sLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEFkZHMgdGhpcyBtaW1lLXR5cGUgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlwZXMg
Zm9yIHRoaXMgYXBwbGljYXRpb24qLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUoIGNvbnN0IGNoYXIgKnBj
aEFwcEtleSwgY29uc3QgY2hhciAqcGNoTWltZVR5cGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIHJldHVybiB0aGUgYXBwIGtleSB0aGF0IHdpbGwgb3BlbiB0aGlzIG1pbWUgdHlwZSAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUoIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQz
Ml90IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhl
IGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlwZXMgZm9yIHRoaXMgYXBwbGljYXRpb24sIGNvbW1h
LWRlbGltaXRlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25T
dXBwb3J0ZWRNaW1lVHlwZXMoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgY2hhciAqcGNoTWltZVR5
cGVzQnVmZmVyLCB1aW50MzJfdCB1bk1pbWVUeXBlc0J1ZmZlciApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogR2V0IHRoZSBsaXN0IG9mIGFwcC1rZXlzIHRoYXQgc3VwcG9ydCB0aGlzIG1pbWUg
dHlwZSwgY29tbWEtZGVsaW1pdGVkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIG51bWJlciBvZiBieXRl
cyB5b3UgbmVlZCB0byByZXR1cm4gdGhlIGZ1bGwgc3RyaW5nICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSggY29uc3Qg
Y2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciwgdWlu
dDMyX3QgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEdldCB0aGUgYXJncyBsaXN0IGZyb20gYW4gYXBwIGxhdW5jaCB0aGF0IGhhZCB0aGUgcHJv
Y2VzcyBhbHJlYWR5IHJ1bm5pbmcsIHlvdSBjYWxsIHRoaXMgd2hlbiB5b3UgZ2V0IGEgVlJFdmVu
dF9BcHBsaWNhdGlvbk1pbWVUeXBlTG9hZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQz
Ml90IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKCB1aW50MzJfdCB1bkhhbmRsZSwgY2hh
ciAqcGNoQXJncywgdWludDMyX3QgdW5BcmdzICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLSAgVHJhbnNpdGlvbiBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLSAvLworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBhcHAga2V5IGZvciB0aGUgYXBwbGljYXRpb24g
dGhhdCBpcyBzdGFydGluZyB1cCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiggY2hhciAqcGNoQXBwS2V5QnVmZmVyLCB1
aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0
dXJucyB0aGUgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBzdGF0ZSAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIEdldFRyYW5zaXRpb25TdGF0ZSgp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyBlcnJvcnMgdGhhdCB3b3VsZCBwcmV2
ZW50IHRoZSBzcGVjaWZpZWQgYXBwbGljYXRpb24gZnJvbSBsYXVuY2hpbmcgaW1tZWRpYXRlbHku
IENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICAgICAgICAgICogY2F1c2UgdGhlIGN1
cnJlbnQgc2NlbmUgYXBwbGljYXRpb24gdG8gcXVpdCwgc28gb25seSBjYWxsIGl0IHdoZW4geW91
IGFyZSBhY3R1YWxseSBhYm91dCB0byBsYXVuY2ggc29tZXRoaW5nIGVsc2UuCisgICAgICAgICAg
ICAgICogV2hhdCB0aGUgY2FsbGVyIHNob3VsZCBkbyBhYm91dCB0aGVzZSBmYWlsdXJlcyBkZXBl
bmRzIG9uIHRoZSBmYWlsdXJlOgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9y
X09sZEFwcGxpY2F0aW9uUXVpdHRpbmcgLSBBbiBleGlzdGluZyBhcHBsaWNhdGlvbiBoYXMgYmVl
biB0b2xkIHRvIHF1aXQuIFdhaXQgZm9yIGEgVlJFdmVudF9Qcm9jZXNzUXVpdAorICAgICAgICAg
ICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQg
dHJ5IGFnYWluLgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0
aW9uQWxyZWFkeVN0YXJ0aW5nIC0gVGhpcyBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5IHN0YXJ0aW5n
LiBUaGlzIGlzIGEgcGVybWFuZW50IGZhaWx1cmUuCisgICAgICAgICAgICAgICogICBWUkFwcGxp
Y2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyAgICAgICAgICAgICAtIEEgZGlmZmVyZW50IGFw
cGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMgaXMgYSBwZXJtYW5lbnQgZmFpbHVy
ZS4KKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob25lICAgICAgICAgICAg
ICAgICAgIC0gR28gYWhlYWQgYW5kIGxhdW5jaC4gRXZlcnl0aGluZyBpcyBjbGVhci4KKyAgICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFBl
cmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFwcGxpY2F0
aW9uIHRyYW5zaXRpb24gc3RhdGUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFy
ICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oIEVWUkFwcGxpY2F0
aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgaWYgdGhlIG91dGdvaW5nIHNjZW5lIGFwcCBoYXMgcmVxdWVzdGVkIGEgc2F2ZSBw
cm9tcHQgYmVmb3JlIGV4aXRpbmcgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzUXVp
dFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFN0YXJ0cyBh
IHN1YnByb2Nlc3Mgd2l0aGluIHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uLiBUaGlzCisgICAgICAg
ICAgICAgICogc3VwcHJlc3NlcyBhbGwgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBVSSBhbmQgYXV0
b21hdGljYWxseSBpZGVudGlmaWVzIHRoZSBuZXcgZXhlY3V0YWJsZSAKKyAgICAgICAgICAgICAg
KiBhcyBwYXJ0IG9mIHRoZSBzYW1lIGFwcGxpY2F0aW9uLiBPbiBzdWNjZXNzIHRoZSBjYWxsaW5n
IHByb2Nlc3Mgc2hvdWxkIGV4aXQgaW1tZWRpYXRlbHkuIAorICAgICAgICAgICAgICAqIElmIHdv
cmtpbmcgZGlyZWN0b3J5IGlzIE5VTEwgb3IgIiIgdGhlIGRpcmVjdG9yeSBwb3J0aW9uIG9mIHRo
ZSBiaW5hcnkgcGF0aCB3aWxsIGJlIAorICAgICAgICAgICAgICAqIHRoZSB3b3JraW5nIGRpcmVj
dG9yeS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5j
aEludGVybmFsUHJvY2VzcyggY29uc3QgY2hhciAqcGNoQmluYXJ5UGF0aCwgY29uc3QgY2hhciAq
cGNoQXJndW1lbnRzLCBjb25zdCBjaGFyICpwY2hXb3JraW5nRGlyZWN0b3J5ICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNjZW5lIHByb2Nlc3MgSUQgYWNj
b3JkaW5nIHRvIHRoZSBhcHBsaWNhdGlvbiBzeXN0ZW0uIEEgc2NlbmUgcHJvY2VzcyB3aWxsIGdl
dCBzY2VuZQorICAgICAgICAgICAgICAqIGZvY3VzIG9uY2UgaXQgc3RhcnRzIHJlbmRlcmluZywg
YnV0IGl0IHdpbGwgYXBwZWFyIGhlcmUgb25jZSBpdCBjYWxscyBWUl9Jbml0IHdpdGggdGhlIFNj
ZW5lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICogdHlwZS4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKSA9IDA7CisgICAgICAg
fTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQXBwbGljYXRpb25zX1Zl
cnNpb24gPSAiSVZSQXBwbGljYXRpb25zXzAwNiI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKy8v
IGl2cnNldHRpbmdzLmgKK25hbWVzcGFjZSB2cgoreworICAgICAgIGVudW0gRVZSU2V0dGluZ3NF
cnJvcgorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX05vbmUgPSAwLAor
ICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkID0gMSwKKyAgICAgICAgICAg
ICAgVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFpbGVkID0gMiwKKyAgICAgICAgICAgICAgVlJTZXR0
aW5nc0Vycm9yX1JlYWRGYWlsZWQgPSAzLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3Jf
SnNvblBhcnNlRmFpbGVkID0gNCwKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX1Vuc2V0
U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsIC8vIFRoaXMgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUg
c2V0dGluZyBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgZmlsZSBh
bmQgaGFzIG5vdCBiZWVuIHNldAorICAgICAgIH07CisKKyAgICAgICAvLyBUaGUgbWF4aW11bSBs
ZW5ndGggb2YgYSBzZXR0aW5ncyBrZXkKKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191
bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworCisgICAgICAgY2xhc3MgSVZSU2V0dGluZ3MK
KyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oIEVWUlNldHRpbmdzRXJyb3IgZUVycm9y
ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBmaWxlIHN5bmMgb2Nj
dXJyZWQgKGZvcmNlIG9yIHNldHRpbmdzIGRpcnR5KQorICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgU3luYyggYm9vbCBiRm9yY2UgPSBmYWxzZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEJvb2woIGNv
bnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBib29sIGJW
YWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBTZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29u
c3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVlLCBFVlJTZXR0aW5nc0Vycm9y
ICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNl
dEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tl
eSwgZmxvYXQgZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9
IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBj
aFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBjb25zdCBjaGFyICpwY2hWYWx1
ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLy8gVXNlcnMgb2YgdGhlIHN5c3RlbSBuZWVkIHRvIHByb3ZpZGUgYSBwcm9wZXIgZGVm
YXVsdCBpbiBkZWZhdWx0LnZyc2V0dGluZ3MgaW4gdGhlIHJlc291cmNlcy9zZXR0aW5ncy8gZGly
ZWN0b3J5CisgICAgICAgICAgICAgIC8vIG9mIGVpdGhlciB0aGUgcnVudGltZSBvciB0aGUgZHJp
dmVyX3h4eCBkaXJlY3RvcnkuIE90aGVyd2lzZSB0aGUgZGVmYXVsdCB3aWxsIGJlIGZhbHNlLCAw
LCAwLjAgb3IgIiIKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEJvb2woIGNvbnN0IGNo
YXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBpbnQz
Ml90IEdldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0
aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RmxvYXQoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24s
IGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0g
bnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFN0cmluZyggY29u
c3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIFZSX09VVF9T
VFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxlbiwgRVZSU2V0dGluZ3NF
cnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIFJlbW92ZVNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
UmVtb3ZlS2V5SW5TZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpw
Y2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7
CisgICAgICAgfTsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3Nf
MDAyIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBzdGVhbXZy
IGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2Vj
dGlvbiA9ICJzdGVhbXZyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUhtZCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmcg
PSAiZm9yY2VkRHJpdmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJk
aXNwbGF5RGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1Byb2Nlc3NQaXBlIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9J
bnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJkaXNwbGF5RGVidWdZIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0g
ImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tncm91bmQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVBy
b2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24iOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVp
Z2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9
ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENvbG9yIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJp
bmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJz
X0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1v
ZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAi
ZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlh
d09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0
aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9OZXZlcktpbGxQ
cm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdXBlcnNhbXBsZVNjYWxlX0Zsb2F0ID0gInN1
cGVyc2FtcGxlU2NhbGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVj
dGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Fs
bG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9q
ZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAi
Zm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JW
aWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hv
d01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAi
bWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9t
QXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZy
b21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZy
b21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFw
cHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1l
U2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJyZXRh
aWxEZW1vIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
SXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93U3VwZXJzYW1wbGVGaWx0ZXJpbmdfQm9vbCA9ICJh
bGxvd1N1cGVyc2FtcGxlRmlsdGVyaW5nIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlTGludXhWdWxrYW5Bc3luY19Cb29sID0gImVuYWJsZUxp
bnV4VnVsa2FuQXN5bmMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
IC8vIGxpZ2h0aG91c2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0g
ImRpc2FibGVpbXUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGln
aHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJp
Z3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25f
SW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKwor
ICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJf
bnVsbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1Nlcmlh
bE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQz
MiA9ICJ3aW5kb3dYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051
bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50
MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVu
ZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
U2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxh
eUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNl
cmludGVyZmFjZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2Vy
SW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5p
bWl6ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3Jl
ZW5zaG90cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50
ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9
ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKworICAg
ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtl
eWJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJk
X1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9
ICJTY2FsZVkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9h
cmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0TGVmdFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0g
Ik9mZnNldFkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9h
cmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gcGVyZiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGlj
QWN0aXZlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90
aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3Rv
cmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09u
RXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3RE
YXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9QZXJmX0xpbnV4R1BVUHJvZmlsaW5nX0Jvb2wgPSAibGludXhHUFVQcm9maWxp
bmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNvbGxpc2lv
biBib3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29s
bGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25C
b3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25C
b3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQ
bGF5U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0
YW5jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0Nv
bG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1h
Ql9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIg
PSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVuYWJs
ZUNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFf
RW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2FyZCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2Ft
ZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91
bmRzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVyYUZvclJvb21WaWV3IjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdh
bW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVy
YV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5n
dGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisgICAgICAgLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b25QbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRl
dmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b2ZmUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0g
InZpdmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Ly8gcG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVybk9m
ZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNU
aW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRf
RmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0g
ImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9QYXVzZUNvbXBvc2l0b3JPblN0YW5kYnlfQm9vbCA9ICJw
YXVzZUNvbXBvc2l0b3JPblN0YW5kYnkiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgIC8vIGRhc2hib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29s
ID0gImVuYWJsZURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFyY2FkZU1vZGUiOworCisgICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG1vZGVsIHNraW4ga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfbW9kZWxza2luX1NlY3Rpb24gPSAibW9k
ZWxza2lucyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gZHJp
dmVyIGtleXMgLSBUaGVzZSBjb3VsZCBiZSBjaGVja2VkIGluIGFueSBkcml2ZXJfPG5hbWU+IHNl
Y3Rpb24KKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0RyaXZlcl9FbmFi
bGVfQm9vbCA9ICJlbmFibGUiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisvLyBpdnJjaGFwZXJv
bmUuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKK2VudW0g
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZQoreworICAgICAgIC8vIE9LIQorICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfT0sgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYXBlcm9uZSBpcyBmdWxseSBj
YWxpYnJhdGVkIGFuZCB3b3JraW5nIGNvcnJlY3RseQorCisgICAgICAgLy8gV2FybmluZ3MKKyAg
ICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcgPSAxMDAsCisgICAgICAgQ2hh
cGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkID0g
MTAxLCAgICAgICAvLyBBIGJhc2Ugc3RhdGlvbiB0aGlua3MgdGhhdCBpdCBtaWdodCBoYXZlIG1v
dmVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9u
UmVtb3ZlZCA9IDEwMiwgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgbGVzcyBiYXNl
IHN0YXRpb25zIHRoYW4gd2hlbiBjYWxpYnJhdGVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRp
b25TdGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsICAgICAgICAgICAgICAv
LyBTZWF0ZWQgYm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3VycmVudCB0
cmFja2luZyBjZW50ZXIKKworICAgICAgIC8vIEVycm9ycworICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGVfRXJyb3IgPSAyMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgVW5pdmVyc2VJRCBpcyBpbnZhbGlkCisgICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6
ZWQgPSAyMDEsICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaGFzbid0IGJlIGNhbGli
cmF0ZWQgZm9yIGF0IGxlYXN0IG9uZSBvZiB0aGUgYmFzZSBzdGF0aW9ucworICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwgICAg
ICAgICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaXMgY2FsaWJyYXRlZCwgYnV0IGJh
c2Ugc3RhdGlvbnMgZGlzYWdyZWUgb24gdGhlIHRyYWNraW5nIHNwYWNlCisgICAgICAgQ2hhcGVy
b25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIFBsYXkgQXJlYSBoYXNuJ3QgYmVlbiBjYWxpYnJhdGVkIGZv
ciB0aGUgY3VycmVudCB0cmFja2luZyBjZW50ZXIKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlv
blN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQgPSAyMDQsICAgICAgICAgICAgICAv
LyBDb2xsaXNpb24gQm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3VycmVu
dCB0cmFja2luZyBjZW50ZXIKK307CisKKworLyoqIEhJR0ggTEVWRUwgVFJBQ0tJTkcgU1BBQ0Ug
QVNTVU1QVElPTlM6CisqIDAsMCwwIGlzIHRoZSBwcmVmZXJyZWQgc3RhbmRpbmcgYXJlYSBjZW50
ZXIuCisqIDBZIGlzIHRoZSBmbG9vciBoZWlnaHQuCisqIC1aIGlzIHRoZSBwcmVmZXJyZWQgZm9y
d2FyZCBmYWNpbmcgZGlyZWN0aW9uLiAqLworY2xhc3MgSVZSQ2hhcGVyb25lCit7CitwdWJsaWM6
CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIENoYXBlcm9uZSBjYWxpYnJh
dGlvbi4gVGhpcyBzdGF0ZSBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGR1cmluZyBhIHNlc3Npb24g
ZHVlIHRvIHBoeXNpY2FsIGJhc2Ugc3RhdGlvbiBjaGFuZ2VzLiAqKi8KKyAgICAgICB2aXJ0dWFs
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgR2V0Q2FsaWJyYXRpb25TdGF0ZSgpID0gMDsKKwor
ICAgICAgIC8qKiBSZXR1cm5zIHRoZSB3aWR0aCBhbmQgZGVwdGggb2YgdGhlIFBsYXkgQXJlYSAo
Zm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGluIFggYW5kIFouIAorICAgICAgICogVHJhY2tp
bmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLiAq
Ki8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFTaXplKCBmbG9hdCAqcFNpemVYLCBm
bG9hdCAqcFNpemVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIDQgY29ybmVyIHBv
c2l0aW9ucyBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykuCisg
ICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjb3VudGVyLWNsb2Nrd2lzZSBvcmRlci4KKyAgICAgICAq
IFN0YW5kaW5nIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJlYS4K
KyAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCisgICAgICAgKiAyIHNpZGVzIGFyZSBwYXJhbGxl
bCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWiBheGlzLgor
ICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAob24gdGhlIGZsb29yKS4gKiov
CisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVhUmVjdCggSG1kUXVhZF90ICpyZWN0ICkg
PSAwOworCisgICAgICAgLyoqIFJlbG9hZCBDaGFwZXJvbmUgZGF0YSBmcm9tIHRoZSAudnJjaGFw
IGZpbGUgb24gZGlzay4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsb2FkSW5mbyggdm9pZCAp
ID0gMDsKKworICAgICAgIC8qKiBPcHRpb25hbGx5IGdpdmUgdGhlIGNoYXBlcm9uZSBzeXN0ZW0g
YSBoaXQgYWJvdXQgdGhlIGNvbG9yIGFuZCBicmlnaHRuZXNzIGluIHRoZSBzY2VuZSAqKi8KKyAg
ICAgICB2aXJ0dWFsIHZvaWQgU2V0U2NlbmVDb2xvciggSG1kQ29sb3JfdCBjb2xvciApID0gMDsK
KworICAgICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgY2hhcGVyb25lIGJvdW5kcyBkcmF3IGNvbG9y
IGFuZCBicmlnaHRuZXNzICoqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXRCb3VuZHNDb2xvcigg
SG1kQ29sb3JfdCAqcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9h
dCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgSG1kQ29sb3JfdCAqcE91dHB1dENhbWVy
YUNvbG9yICkgPSAwOworCisgICAgICAgLyoqIERldGVybWluZSB3aGV0aGVyIHRoZSBib3VuZHMg
YXJlIHNob3dpbmcgcmlnaHQgbm93ICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBBcmVCb3VuZHNW
aXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIEZvcmNlIHRoZSBib3VuZHMgdG8gc2hvdywgbW9z
dGx5IGZvciB1dGlsaXRpZXMgKiovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlQm91bmRzVmlz
aWJsZSggYm9vbCBiRm9yY2UgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IElWUkNoYXBlcm9uZV9WZXJzaW9uID0gIklWUkNoYXBlcm9uZV8wMDMiOworCisjcHJhZ21hIHBh
Y2soIHBvcCApCisKK30KKworLy8gaXZyY2hhcGVyb25lc2V0dXAuaAorbmFtZXNwYWNlIHZyCit7
CisKK2VudW0gRUNoYXBlcm9uZUNvbmZpZ0ZpbGUKK3sKKyAgICAgICBFQ2hhcGVyb25lQ29uZmln
RmlsZV9MaXZlID0gMSwgICAgICAgICAgICAgIC8vIFRoZSBsaXZlIGNoYXBlcm9uZSBjb25maWcs
IHVzZWQgYnkgbW9zdCBhcHBsaWNhdGlvbnMgYW5kIGdhbWVzCisgICAgICAgRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfVGVtcCA9IDIsICAgICAgICAgICAgICAvLyBUaGUgdGVtcG9yYXJ5IGNoYXBlcm9u
ZSBjb25maWcsIHVzZWQgdG8gbGl2ZS1wcmV2aWV3IGNvbGxpc2lvbiBib3VuZHMgaW4gcm9vbSBz
ZXR1cAorfTsKKworZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hhcGVy
b25lSW1wb3J0X0JvdW5kc09ubHkgPSAweDAwMDEsCit9OworCisvKiogTWFuYWdlcyB0aGUgd29y
a2luZyBjb3B5IG9mIHRoZSBjaGFwZXJvbmUgaW5mby4gQnkgZGVmYXVsdCB0aGlzIHdpbGwgYmUg
dGhlIHNhbWUgYXMgdGhlIAorKiBsaXZlIGNvcHkuIEFueSBjaGFuZ2VzIG1hZGUgd2l0aCB0aGlz
IGludGVyZmFjZSB3aWxsIHN0YXkgaW4gdGhlIHdvcmtpbmcgY29weSB1bnRpbCAKKyogQ29tbWl0
V29ya2luZ0NvcHkoKSBpcyBjYWxsZWQsIGF0IHdoaWNoIHBvaW50IHRoZSB3b3JraW5nIGNvcHkg
YW5kIHRoZSBsaXZlIGNvcHkgd2lsbCBiZSAKKyogdGhlIHNhbWUgYWdhaW4uICovCitjbGFzcyBJ
VlJDaGFwZXJvbmVTZXR1cAoreworcHVibGljOgorCisgICAgICAgLyoqIFNhdmVzIHRoZSBjdXJy
ZW50IHdvcmtpbmcgY29weSB0byBkaXNrICovCisgICAgICAgdmlydHVhbCBib29sIENvbW1pdFdv
cmtpbmdDb3B5KCBFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlICkgPSAwOworCisgICAg
ICAgLyoqIFJldmVydHMgdGhlIHdvcmtpbmcgY29weSB0byBtYXRjaCB0aGUgbGl2ZSBjaGFwZXJv
bmUgY2FsaWJyYXRpb24uCisgICAgICAgKiBUbyBtb2RpZnkgZXhpc3RpbmcgZGF0YSB0aGlzIE1V
U1QgYmUgZG8gV0hJTEUgZ2V0dGluZyBhIG5vbi1lcnJvciBDaGFwZXJvbmVDYWxpYnJhdGlvblN0
YXR1cy4KKyAgICAgICAqIE9ubHkgYWZ0ZXIgdGhpcyBzaG91bGQgeW91IGRvIGdldHMgYW5kIHNl
dHMgb24gdGhlIGV4aXN0aW5nIGRhdGEuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJldmVydFdv
cmtpbmdDb3B5KCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHdpZHRoIGFuZCBkZXB0
aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykgaW4gWCBhbmQg
WiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuCisgICAgICAgKiBUcmFja2luZyBzcGFjZSBjZW50ZXIg
KDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuICovCisgICAgICAgdmlydHVh
bCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0ICpwU2l6ZVgsIGZsb2F0ICpwU2l6
ZVogKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgNCBjb3JuZXIgcG9zaXRpb25zIG9m
IHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBmcm9tIHRoZSB3b3Jr
aW5nIGNvcHkuCisgICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjbG9ja3dpc2Ugb3JkZXIuCisgICAg
ICAgKiBUcmFja2luZyBzcGFjZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQ
bGF5IEFyZWEuCisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgorICAgICAgICogMiBzaWRlcyBh
cmUgcGFyYWxsZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8gdGhl
IFogYXhpcy4KKyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3JuZXIgaXMgMFkgKG9uIHRoZSBm
bG9vcikuICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFSZWN0KCBI
bWRRdWFkX3QgKnJlY3QgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9m
IFF1YWRzIGlmIHRoZSBidWZmZXIgcG9pbnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1cm5z
IFF1YWRzIAorICAgICAgICogaW50byB0aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lmaWVk
IGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29ya2lu
Z0NvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5RdWFkc0NvdW50KSBI
bWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1YWRzQ291bnQgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIFF1YWRzIGlmIHRoZSBidWZmZXIgcG9p
bnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1cm5zIFF1YWRzIAorICAgICAgICogaW50byB0
aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lmaWVkLiAqLworICAgICAgIHZpcnR1YWwgYm9v
bCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1YWRz
Q291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVhZHNDb3VudCAp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9u
IGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29ya2lu
Z1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3QgKnBtYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dGhlIHN0YW5kaW5nIG9yaWdpbiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmly
dHVhbCBib29sIEdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEht
ZE1hdHJpeDM0X3QgKnBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7
CisKKyAgICAgICAvKiogU2V0cyB0aGUgUGxheSBBcmVhIGluIHRoZSB3b3JraW5nIGNvcHkuICov
CisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0IHNpemVY
LCBmbG9hdCBzaXplWiApID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSBDb2xsaXNpb24gQm91
bmRzIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blF1YWRzQ291bnQpIEhtZFF1
YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQgKSA9IDA7CisKKyAgICAg
ICAvKiogU2V0cyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbiBpbiB0aGUgd29ya2luZyBj
b3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4MzRfdCAqcE1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgcHJlZmVycmVkIHN0
YW5kaW5nIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCB2
b2lkIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIGNvbnN0IEht
ZE1hdHJpeDM0X3QgKnBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7
CisKKyAgICAgICAvKiogVGVhciBldmVyeXRoaW5nIGRvd24gYW5kIHJlbG9hZCBpdCBmcm9tIHRo
ZSBmaWxlIG9uIGRpc2sgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsb2FkRnJvbURpc2soIEVD
aGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3QgKnBt
YXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgdmlydHVh
bCB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyggVlJfQVJSQVlfQ09VTlQo
dW5UYWdDb3VudCkgdWludDhfdCAqcFRhZ3NCdWZmZXIsIHVpbnQzMl90IHVuVGFnQ291bnQgKSA9
IDA7CisgICAgICAgdmlydHVhbCBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbygg
VlJfT1VUX0FSUkFZX0NPVU5UKHB1blRhZ0NvdW50KSB1aW50OF90ICpwVGFnc0J1ZmZlciwgdWlu
dDMyX3QgKnB1blRhZ0NvdW50ICkgPSAwOworCisgICAgICAgdmlydHVhbCBib29sIFNldFdvcmtp
bmdQaHlzaWNhbEJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuUXVhZHNDb3VudCkgSG1kUXVh
ZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCApID0gMDsKKyAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5U
KHB1blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVh
ZHNDb3VudCApID0gMDsKKworICAgICAgIHZpcnR1YWwgYm9vbCBFeHBvcnRMaXZlVG9CdWZmZXIo
IFZSX09VVF9TVFJJTkcoKSBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCAqcG5CdWZmZXJMZW5ndGgg
KSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcoIGNv
bnN0IGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IG5JbXBvcnRGbGFncyApID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiA9ICJJVlJD
aGFwZXJvbmVTZXR1cF8wMDUiOworCisKK30KKworLy8gaXZyY29tcG9zaXRvci5oCituYW1lc3Bh
Y2UgdnIKK3sKKworI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKworLyoqIEVycm9ycyB0aGF0IGNh
biBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3NpdG9yICovCitlbnVtIEVWUkNvbXBvc2l0b3JFcnJv
cgoreworICAgICAgIFZSQ29tcG9zaXRvckVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVz
dEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVlJDb21wb3Np
dG9yRXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAg
VlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgICAgICAgICAgICAgICAgICAgICA9IDEw
MSwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAg
ICAgICAgID0gMTAyLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNh
dGlvbiAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfVGV4dHVy
ZUlzT25Xcm9uZ0RldmljZSAgICAgICA9IDEwNCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9U
ZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAgIFZSQ29tcG9zaXRvckVy
cm9yX1NoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAorICAgICAgIFZSQ29tcG9zaXRv
ckVycm9yX0luZGV4T3V0T2ZSYW5nZSAgICAgICAgICAgICAgICAgICAgID0gMTA3LAorICAgICAg
IFZSQ29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgICAgICAgICAgICAgICAgICAgICA9
IDEwOCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkQm91bmRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTA5LAorfTsKKworY29uc3QgdWludDMyX3QgVlJDb21wb3NpdG9y
X1JlcHJvamVjdGlvblJlYXNvbl9DcHUgPSAweDAxOworY29uc3QgdWludDMyX3QgVlJDb21wb3Np
dG9yX1JlcHJvamVjdGlvblJlYXNvbl9HcHUgPSAweDAyOworY29uc3QgdWludDMyX3QgVlJDb21w
b3NpdG9yX1JlcHJvamVjdGlvbkFzeW5jICAgICAgPSAweDA0OyAgICAgICAvLyBUaGlzIGZsYWcg
aW5kaWNhdGVzIHRoZSBhc3luYyByZXByb2plY3Rpb24gbW9kZSBpcyBhY3RpdmUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgZG9lcyBub3Qg
aW5kaWNhdGUgaWYgcmVwcm9qZWN0aW9uIGFjdHVhbGx5IGhhcHBlbmVkIG9yIG5vdC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgUmVw
cm9qZWN0aW9uUmVhc29uIGZsYWdzIGFib3ZlIHRvIGNoZWNrIGlmIHJlcHJvamVjdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FzIGFjdHVh
bGx5IGFwcGxpZWQgKGkuZS4gc2NlbmUgdGV4dHVyZSB3YXMgcmV1c2VkKS4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bUZyYW1lUHJlc2VudHMg
PiAxIGFsc28gaW5kaWNhdGVzIHRoZSBzY2VuZSB0ZXh0dXJlIHdhcyByZXVzZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWxzbyB0aGUg
bnVtYmVyIG9mIHRpbWVzIHRoYXQgaXQgd2FzIHByZXNlbnRlZCBpbiB0b3RhbC4KKworLyoqIFBy
b3ZpZGVzIGEgc2luZ2xlIGZyYW1lJ3MgdGltaW5nIGluZm9ybWF0aW9uIHRvIHRoZSBhcHAgKi8K
K3N0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgdWludDMyX3QgbV9uU2l6
ZTsgLy8gU2V0IHRvIHNpemVvZiggQ29tcG9zaXRvcl9GcmFtZVRpbWluZyApCisgICAgICAgdWlu
dDMyX3QgbV9uRnJhbWVJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRz
OyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFtZSB3YXMgcHJlc2VudGVkCisgICAgICAgdWlu
dDMyX3QgbV9uTnVtTWlzUHJlc2VudGVkOyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFtZSB3
YXMgcHJlc2VudGVkIG9uIGEgdnN5bmMgb3RoZXIgdGhhbiBpdCB3YXMgb3JpZ2luYWxseSBwcmVk
aWN0ZWQgdG8KKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzOyAvLyBudW1iZXIg
b2YgYWRkaXRpb25hbCB0aW1lcyBwcmV2aW91cyBmcmFtZSB3YXMgc2Nhbm5lZCBvdXQKKyAgICAg
ICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFnczsKKworICAgICAgIC8qKiBBYnNvbHV0ZSB0
aW1lIHJlZmVyZW5jZSBmb3IgY29tcGFyaW5nIGZyYW1lcy4gIFRoaXMgYWxpZ25zIHdpdGggdGhl
IHZzeW5jIHRoYXQgcnVubmluZyBzdGFydCBpcyByZWxhdGl2ZSB0by4gKi8KKyAgICAgICBkb3Vi
bGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisKKyAgICAgICAvKiogVGhlc2UgdGltZXMgbWF5
IGluY2x1ZGUgd29yayBmcm9tIG90aGVyIHByb2Nlc3NlcyBkdWUgdG8gT1Mgc2NoZWR1bGluZy4K
KyAgICAgICAqIFRoZSBmZXdlciBwYWNrZXRzIG9mIHdvcmsgdGhlc2UgYXJlIGJyb2tlbiB1cCBp
bnRvLCB0aGUgbGVzcyBsaWtlbHkgdGhpcyB3aWxsIGhhcHBlbi4KKyAgICAgICAqIEdQVSB3b3Jr
IGNhbiBiZSBicm9rZW4gdXAgYnkgY2FsbGluZyBGbHVzaC4gIFRoaXMgY2FuIHNvbWV0aW1lcyBi
ZSB1c2VmdWwgdG8gZ2V0IHRoZSBHUFUgc3RhcnRlZAorICAgICAgICogcHJvY2Vzc2luZyB0aGF0
IHdvcmsgZWFybGllciBpbiB0aGUgZnJhbWUuICovCisgICAgICAgZmxvYXQgbV9mbFByZVN1Ym1p
dEdwdU1zOyAvLyB0aW1lIHNwZW50IHJlbmRlcmluZyB0aGUgc2NlbmUgKGdwdSB3b3JrIHN1Ym1p
dHRlZCBiZXR3ZWVuIFdhaXRHZXRQb3NlcyBhbmQgc2Vjb25kIFN1Ym1pdCkKKyAgICAgICBmbG9h
dCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOyAvLyBhZGRpdGlvbmFsIHRpbWUgc3BlbnQgcmVuZGVyaW5n
IGJ5IGFwcGxpY2F0aW9uIChlLmcuIGNvbXBhbmlvbiB3aW5kb3cpCisgICAgICAgZmxvYXQgbV9m
bFRvdGFsUmVuZGVyR3B1TXM7IC8vIHRpbWUgYmV0d2VlbiB3b3JrIHN1Ym1pdHRlZCBpbW1lZGlh
dGVseSBhZnRlciBwcmVzZW50IChpZGVhbGx5IHZzeW5jKSB1bnRpbCB0aGUgZW5kIG9mIGNvbXBv
c2l0b3Igc3VibWl0dGVkIHdvcmsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdw
dU1zOyAvLyB0aW1lIHNwZW5kIHBlcmZvcm1pbmcgZGlzdG9ydGlvbiBjb3JyZWN0aW9uLCByZW5k
ZXJpbmcgY2hhcGVyb25lLCBvdmVybGF5cywgZXRjLgorICAgICAgIGZsb2F0IG1fZmxDb21wb3Np
dG9yUmVuZGVyQ3B1TXM7IC8vIHRpbWUgc3BlbnQgb24gY3B1IHN1Ym1pdHRpbmcgdGhlIGFib3Zl
IHdvcmsgZm9yIHRoaXMgZnJhbWUKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVN
czsgLy8gdGltZSBzcGVudCB3YWl0aW5nIGZvciBydW5uaW5nIHN0YXJ0IChhcHBsaWNhdGlvbiBj
b3VsZCBoYXZlIHVzZWQgdGhpcyBtdWNoIG1vcmUgdGltZSkKKworICAgICAgIC8qKiBNaXNjZWxs
YW5lb3VzIG1lYXN1cmVkIGludGVydmFscy4gKi8KKyAgICAgICBmbG9hdCBtX2ZsQ2xpZW50RnJh
bWVJbnRlcnZhbE1zOyAvLyB0aW1lIGJldHdlZW4gY2FsbHMgdG8gV2FpdEdldFBvc2VzCisgICAg
ICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7IC8vIHRpbWUgYmxvY2tlZCBvbiBjYWxsIHRv
IHByZXNlbnQgKHVzdWFsbHkgMC4wLCBidXQgY2FuIGdvIGxvbmcpCisgICAgICAgZmxvYXQgbV9m
bFdhaXRGb3JQcmVzZW50Q3B1TXM7IC8vIHRpbWUgc3BlbnQgc3Bpbi13YWl0aW5nIGZvciBmcmFt
ZSBpbmRleCB0byBjaGFuZ2UgKG5vdCBuZWFyLXplcm8gaW5kaWNhdGVzIHdhaXQgb2JqZWN0IGZh
aWx1cmUpCisgICAgICAgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7IC8vIHRpbWUgc3BlbnQgaW4g
SVZSQ29tcG9zaXRvcjo6U3VibWl0IChub3QgbmVhci16ZXJvIGluZGljYXRlcyBkcml2ZXIgaXNz
dWUpCisKKyAgICAgICAvKiogVGhlIGZvbGxvd2luZyBhcmUgYWxsIHJlbGF0aXZlIHRvIHRoaXMg
ZnJhbWUncyBTeXN0ZW1UaW1lSW5TZWNvbmRzICovCisgICAgICAgZmxvYXQgbV9mbFdhaXRHZXRQ
b3Nlc0NhbGxlZE1zOworICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAgICAg
ZmxvYXQgbV9mbE5ld0ZyYW1lUmVhZHlNczsgLy8gc2Vjb25kIGNhbGwgdG8gSVZSQ29tcG9zaXRv
cjo6U3VibWl0CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1zOworICAg
ICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgZmxvYXQgbV9mbENv
bXBvc2l0b3JSZW5kZXJTdGFydE1zOworCisgICAgICAgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3Qg
bV9IbWRQb3NlOyAvLyBwb3NlIHVzZWQgYnkgYXBwIHRvIHJlbmRlciB0aGlzIGZyYW1lCit9Owor
CisvKiogQ3VtdWxhdGl2ZSBzdGF0cyBmb3IgY3VycmVudCBhcHBsaWNhdGlvbi4gIFRoZXNlIGFy
ZSBub3QgY2xlYXJlZCB1bnRpbCBhIG5ldyBhcHAgY29ubmVjdHMsCisqIGJ1dCB0aGV5IGRvIHN0
b3AgYWNjdW11bGF0aW5nIG9uY2UgdGhlIGFzc29jaWF0ZWQgYXBwIGRpc2Nvbm5lY3RzLiAqLwor
c3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMyX3QgbV9u
UGlkOyAvLyBQcm9jZXNzIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGVzZSBzdGF0cyAobWF5IG5vIGxv
bmdlciBiZSBydW5uaW5nKS4KKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzOyAv
LyB0b3RhbCBudW1iZXIgb2YgdGltZXMgd2UgY2FsbGVkIHByZXNlbnQgKGluY2x1ZGVzIHJlcHJv
amVjdGVkIGZyYW1lcykKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzOyAvLyB0
b3RhbCBudW1iZXIgb2YgdGltZXMgYW4gb2xkIGZyYW1lIHdhcyByZS1zY2FubmVkIG91dCAod2l0
aG91dCByZXByb2plY3Rpb24pCisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFt
ZXM7IC8vIHRvdGFsIG51bWJlciBvZiB0aW1lcyBhIGZyYW1lIHdhcyBzY2FubmVkIG91dCBhIHNl
Y29uZCB0aW1lICh3aXRoIHJlcHJvamVjdGlvbikKKworICAgICAgIC8qKiBWYWx1ZXMgcmVjb3Jk
ZWQgYXQgc3RhcnR1cCBiZWZvcmUgYXBwbGljYXRpb24gaGFzIGZ1bGx5IGZhZGVkIGluIHRoZSBm
aXJzdCB0aW1lLiAqLworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0
dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAg
ICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKworICAgICAgIC8q
KiBBcHBsaWNhdGlvbnMgbWF5IGV4cGxpY2l0bHkgZmFkZSB0byB0aGUgY29tcG9zaXRvci4gIFRo
aXMgaXMgdXN1YWxseSB0byBoYW5kbGUgbGV2ZWwgdHJhbnNpdGlvbnMsIGFuZCBsb2FkaW5nIG9m
dGVuIGNhdXNlcworICAgICAgICogc3lzdGVtIHdpZGUgaGl0Y2hlcy4gIFRoZSBmb2xsb3dpbmcg
c3RhdHMgYXJlIGNvbGxlY3RlZCBkdXJpbmcgdGhpcyBwZXJpb2QuICBEb2VzIG5vdCBpbmNsdWRl
IHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnR1cC4gKi8KKyAgICAgICB1aW50MzJfdCBtX25O
dW1Mb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwor
ICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKworICAgICAgIC8qKiBJZiB3ZSBk
b24ndCBnZXQgYSBuZXcgZnJhbWUgZnJvbSB0aGUgYXBwIGluIGxlc3MgdGhhbiAyLjUgZnJhbWVz
LCB0aGVuIHdlIGFzc3VtZSB0aGUgYXBwIGhhcyBodW5nIGFuZCBzdGFydAorICAgICAgICogZmFk
aW5nIGJhY2sgdG8gdGhlIGNvbXBvc2l0b3IuICBUaGUgZm9sbG93aW5nIHN0YXRzIGFyZSBhIHJl
c3VsdCBvZiB0aGlzLCBhbmQgYXJlIGEgc3Vic2V0IG9mIHRob3NlIHJlY29yZGVkIGFib3ZlLgor
ICAgICAgICogRG9lcyBub3QgaW5jbHVkZSB2YWx1ZXMgcmVjb3JkZWQgZHVyaW5nIHN0YXJ0IHVw
IG9yIGxvYWRpbmcuICovCisgICAgICAgdWludDMyX3QgbV9uTnVtVGltZWRPdXQ7CisgICAgICAg
dWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAgICAgIHVpbnQzMl90IG1f
bk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2pl
Y3RlZEZyYW1lc1RpbWVkT3V0OworfTsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCisvKiogQWxs
b3dzIHRoZSBhcHBsaWNhdGlvbiB0byBpbnRlcmFjdCB3aXRoIHRoZSBjb21wb3NpdG9yICovCitj
bGFzcyBJVlJDb21wb3NpdG9yCit7CitwdWJsaWM6CisgICAgICAgLyoqIFNldHMgdHJhY2tpbmcg
c3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzICovCisgICAgICAgdmlydHVhbCB2b2lkIFNl
dFRyYWNraW5nU3BhY2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4gKSA9IDA7CisK
KyAgICAgICAvKiogR2V0cyBjdXJyZW50IHRyYWNraW5nIHNwYWNlIHJldHVybmVkIGJ5IFdhaXRH
ZXRQb3NlcyAqLworICAgICAgIHZpcnR1YWwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gR2V0VHJh
Y2tpbmdTcGFjZSgpID0gMDsKKworICAgICAgIC8qKiBTY2VuZSBhcHBsaWNhdGlvbnMgc2hvdWxk
IGNhbGwgdGhpcyBmdW5jdGlvbiB0byBnZXQgcG9zZXMgdG8gcmVuZGVyIHdpdGggKGFuZCBvcHRp
b25hbGx5IHBvc2VzIHByZWRpY3RlZCBhbiBhZGRpdGlvbmFsIGZyYW1lIG91dCB0byB1c2UgZm9y
IGdhbWVwbGF5KS4KKyAgICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCAicnVu
bmluZyBzdGFydCIgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGZyYW1lLCBh
bmQgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgbGFzdCBtb21lbnQgYmVmb3JlIG5lZWRpbmcgdG8K
KyAgICAgICAqIHN0YXJ0IHJlbmRlcmluZy4KKyAgICAgICAqCisgICAgICAgKiBSZXR1cm4gY29k
ZXM6CisgICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNhdGlvbiAobWFrZSBzdXJlIHRv
IGNhbGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUpCisgICAgICAgKiAgICAgICAt
IERvTm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFrZW4gZm9jdXMgLSB0aGlzIHdp
bGwgdGhyb3R0bGUgdGhlIGNhbGwgdG8gMTBoeiB0byByZWR1Y2UgdGhlIGltcGFjdCBvbiB0aGF0
IGFwcCkKKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFdhaXRH
ZXRQb3NlcyggVlJfQVJSQVlfQ09VTlQodW5SZW5kZXJQb3NlQXJyYXlDb3VudCkgVHJhY2tlZERl
dmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlD
b3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQodW5HYW1lUG9zZUFycmF5Q291bnQp
IFRyYWNrZWREZXZpY2VQb3NlX3QqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3Nl
QXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBHZXQgdGhlIGxhc3Qgc2V0IG9mIHBvc2Vz
IHJldHVybmVkIGJ5IFdhaXRHZXRQb3Nlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0
b3JFcnJvciBHZXRMYXN0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKCB1blJlbmRlclBvc2VBcnJheUNv
dW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3QgdW5S
ZW5kZXJQb3NlQXJyYXlDb3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQoIHVuR2Ft
ZVBvc2VBcnJheUNvdW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcEdhbWVQb3NlQXJyYXksIHVp
bnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIEludGVyZmFj
ZSBmb3IgYWNjZXNzaW5nIGxhc3Qgc2V0IG9mIHBvc2VzIHJldHVybmVkIGJ5IFdhaXRHZXRQb3Nl
cyBvbmUgYXQgYSB0aW1lLgorICAgICAgICogUmV0dXJucyBWUkNvbXBvc2l0b3JFcnJvcl9JbmRl
eE91dE9mUmFuZ2UgaWYgdW5EZXZpY2VJbmRleCBub3QgbGVzcyB0aGFuIGtfdW5NYXhUcmFja2Vk
RGV2aWNlQ291bnQgb3RoZXJ3aXNlIFZSQ29tcG9zaXRvckVycm9yX05vbmUuCisgICAgICAgKiBJ
dCBpcyBva2F5IHRvIHBhc3MgTlVMTCBmb3IgZWl0aGVyIHBvc2UgaWYgeW91IG9ubHkgd2FudCBv
bmUgb2YgdGhlIHZhbHVlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBH
ZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCggVHJhY2tlZERldmljZUluZGV4X3QgdW5E
ZXZpY2VJbmRleCwgVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1dFBvc2UsIFRyYWNrZWREZXZp
Y2VQb3NlX3QgKnBPdXRwdXRHYW1lUG9zZSApID0gMDsKKworICAgICAgIC8qKiBVcGRhdGVkIHNj
ZW5lIHRleHR1cmUgdG8gZGlzcGxheS4gSWYgcEJvdW5kcyBpcyBOVUxMIHRoZSBlbnRpcmUgdGV4
dHVyZSB3aWxsIGJlIHVzZWQuICBJZiBjYWxsZWQgZnJvbSBhbiBPcGVuR0wgYXBwLCBjb25zaWRl
ciBhZGRpbmcgYSBnbEZsdXNoIGFmdGVyCisgICAgICAgKiBTdWJtaXR0aW5nIGJvdGggZnJhbWVz
IHRvIHNpZ25hbCB0aGUgZHJpdmVyIHRvIHN0YXJ0IHByb2Nlc3NpbmcsIG90aGVyd2lzZSBpdCBt
YXkgd2FpdCB1bnRpbCB0aGUgY29tbWFuZCBidWZmZXIgZmlsbHMgdXAsIGNhdXNpbmcgdGhlIGFw
cCB0byBtaXNzIGZyYW1lcy4KKyAgICAgICAqCisgICAgICAgKiBPcGVuR0wgZGlydHkgc3RhdGU6
CisgICAgICAgKiAgICAgICBnbEJpbmRUZXh0dXJlCisgICAgICAgKgorICAgICAgICogUmV0dXJu
IGNvZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBwbGljYXRpb24gKG1ha2Ugc3Vy
ZSB0byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1NjZW5lKQorICAgICAgICogICAg
ICAgLSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFzIHRha2VuIGZvY3VzKQorICAg
ICAgICogICAgICAgLSBUZXh0dXJlSXNPbldyb25nRGV2aWNlIChhcHBsaWNhdGlvbiBkaWQgbm90
IHVzZSBwcm9wZXIgQWRhcHRlckluZGV4IC0gc2VlIElWUlN5c3RlbS5HZXREWEdJT3V0cHV0SW5m
bykKKyAgICAgICAqICAgICAgIC0gU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgKGFwcGxpY2F0
aW9uIG5lZWRzIHRvIGNhbGwgQ3JlYXRlRFhHSUZhY3RvcnkxIG9yIGxhdGVyIGJlZm9yZSBjcmVh
dGluZyBEWCBkZXZpY2UpCisgICAgICAgKiAgICAgICAtIFRleHR1cmVVc2VzVW5zdXBwb3J0ZWRG
b3JtYXQgKHNjZW5lIHRleHR1cmVzIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIERYR0kgc2hhcmlu
ZyBydWxlcyAtIGUuZy4gdW5jb21wcmVzc2VkLCBubyBtaXBzLCBldGMuKQorICAgICAgICogICAg
ICAgLSBJbnZhbGlkVGV4dHVyZSAodXN1YWxseSBtZWFucyBiYWQgYXJndW1lbnRzIHBhc3NlZCBp
bikKKyAgICAgICAqICAgICAgIC0gQWxyZWFkeVN1Ym1pdHRlZCAoYXBwIGhhcyBzdWJtaXR0ZWQg
dHdvIGxlZnQgdGV4dHVyZXMgb3IgdHdvIHJpZ2h0IHRleHR1cmVzIGluIGEgc2luZ2xlIGZyYW1l
IC0gaS5lLiBiZWZvcmUgY2FsbGluZyBXYWl0R2V0UG9zZXMgYWdhaW4pCisgICAgICAgKi8KKyAg
ICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTdWJtaXQoIEVWUkV5ZSBlRXllLCBjb25z
dCBUZXh0dXJlX3QgKnBUZXh0dXJlLCBjb25zdCBWUlRleHR1cmVCb3VuZHNfdCogcEJvdW5kcyA9
IDAsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyA9IFN1Ym1pdF9EZWZhdWx0ICkgPSAwOwor
CisgICAgICAgLyoqIENsZWFycyB0aGUgZnJhbWUgdGhhdCB3YXMgc2VudCB3aXRoIHRoZSBsYXN0
IGNhbGwgdG8gU3VibWl0LiBUaGlzIHdpbGwgY2F1c2UgdGhlIAorICAgICAgICogY29tcG9zaXRv
ciB0byBzaG93IHRoZSBncmlkIHVudGlsIFN1Ym1pdCBpcyBjYWxsZWQgYWdhaW4uICovCisgICAg
ICAgdmlydHVhbCB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkgPSAwOworCisgICAgICAg
LyoqIENhbGwgaW1tZWRpYXRlbHkgYWZ0ZXIgcHJlc2VudGluZyB5b3VyIGFwcCdzIHdpbmRvdyAo
aS5lLiBjb21wYW5pb24gd2luZG93KSB0byB1bmJsb2NrIHRoZSBjb21wb3NpdG9yLgorICAgICAg
ICogVGhpcyBpcyBhbiBvcHRpb25hbCBjYWxsLCB3aGljaCBvbmx5IG5lZWRzIHRvIGJlIHVzZWQg
aWYgeW91IGNhbid0IGluc3RlYWQgY2FsbCBXYWl0R2V0UG9zZXMgaW1tZWRpYXRlbHkgYWZ0ZXIg
UHJlc2VudC4KKyAgICAgICAqIEZvciBleGFtcGxlLCBpZiB5b3VyIGVuZ2luZSdzIHJlbmRlciBh
bmQgZ2FtZSBsb29wIGFyZSBub3Qgb24gc2VwYXJhdGUgdGhyZWFkcywgb3IgYmxvY2tpbmcgdGhl
IHJlbmRlciB0aHJlYWQgdW50aWwgM21zIGJlZm9yZSB0aGUgbmV4dCB2c3luYyB3b3VsZAorICAg
ICAgICogaW50cm9kdWNlIGEgZGVhZGxvY2sgb2Ygc29tZSBzb3J0LiAgVGhpcyBmdW5jdGlvbiB0
ZWxscyB0aGUgY29tcG9zaXRvciB0aGF0IHlvdSBoYXZlIGZpbmlzaGVkIGFsbCByZW5kZXJpbmcg
YWZ0ZXIgaGF2aW5nIFN1Ym1pdHRlZCBidWZmZXJzIGZvciBib3RoCisgICAgICAgKiBleWVzLCBh
bmQgaXQgaXMgZnJlZSB0byBzdGFydCBpdHMgcmVuZGVyaW5nIHdvcmsuICBUaGlzIHNob3VsZCBv
bmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZCB5b3UgYXJlIHJlbmRlcmluZyBvbi4g
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkgPSAwOworCisgICAg
ICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aW1pbmcgZGF0YSBpcyBmaWxsZWQgaXQuICBTZXRzIG9s
ZGVzdCB0aW1pbmcgaW5mbyBpZiBuRnJhbWVzQWdvIGlzIGxhcmdlciB0aGFuIHRoZSBzdG9yZWQg
aGlzdG9yeS4KKyAgICAgICAqIEJlIHN1cmUgdG8gc2V0IHRpbWluZy5zaXplID0gc2l6ZW9mKENv
bXBvc2l0b3JfRnJhbWVUaW1pbmcpIG9uIHN0cnVjdCBwYXNzZWQgaW4gYmVmb3JlIGNhbGxpbmcg
dGhpcyBmdW5jdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RnJhbWVUaW1pbmcoIENv
bXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90IHVuRnJhbWVzQWdvID0gMCAp
ID0gMDsKKworICAgICAgIC8qKiBJbnRlcmZhY2UgZm9yIGNvcHlpbmcgYSByYW5nZSBvZiB0aW1p
bmcgZGF0YS4gIEZyYW1lcyBhcmUgcmV0dXJuZWQgaW4gYXNjZW5kaW5nIG9yZGVyIChvbGRlc3Qg
dG8gbmV3ZXN0KSB3aXRoIHRoZSBsYXN0IGJlaW5nIHRoZSBtb3N0IHJlY2VudCBmcmFtZS4KKyAg
ICAgICAqIE9ubHkgdGhlIGZpcnN0IGVudHJ5J3MgbV9uU2l6ZSBuZWVkcyB0byBiZSBzZXQsIGFz
IHRoZSByZXN0IHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGF0LiAgUmV0dXJucyB0b3RhbCBudW1i
ZXIgb2YgZW50cmllcyBmaWxsZWQgb3V0LiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
RnJhbWVUaW1pbmdzKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICpwVGltaW5nLCB1aW50MzJfdCBu
RnJhbWVzICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHRpbWUgaW4gc2Vjb25kcyBs
ZWZ0IGluIHRoZSBjdXJyZW50IChhcyBpZGVudGlmaWVkIGJ5IEZyYW1lVGltaW5nJ3MgZnJhbWVJ
bmRleCkgZnJhbWUuCisgICAgICAgKiBEdWUgdG8gInJ1bm5pbmcgc3RhcnQiLCB0aGlzIHZhbHVl
IG1heSByb2xsIG92ZXIgdG8gdGhlIG5leHQgZnJhbWUgYmVmb3JlIGV2ZXIgcmVhY2hpbmcgMC4w
LiAqLworICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RnJhbWVUaW1lUmVtYWluaW5nKCkgPSAwOwor
CisgICAgICAgLyoqIEZpbGxzIG91dCBzdGF0cyBhY2N1bXVsYXRlZCBmb3IgdGhlIGxhc3QgY29u
bmVjdGVkIGFwcGxpY2F0aW9uLiAgUGFzcyBpbiBzaXplb2YoIENvbXBvc2l0b3JfQ3VtdWxhdGl2
ZVN0YXRzICkgYXMgc2Vjb25kIHBhcmFtZXRlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgR2V0
Q3VtdWxhdGl2ZVN0YXRzKCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqcFN0YXRzLCB1aW50
MzJfdCBuU3RhdHNTaXplSW5CeXRlcyApID0gMDsKKworICAgICAgIC8qKiBGYWRlcyB0aGUgdmll
dyBvbiB0aGUgSE1EIHRvIHRoZSBzcGVjaWZpZWQgY29sb3IuIFRoZSBmYWRlIHdpbGwgdGFrZSBm
U2Vjb25kcywgYW5kIHRoZSBjb2xvciB2YWx1ZXMgYXJlIGJldHdlZW4KKyAgICAgICAqIDAuMCBh
bmQgMS4wLiBUaGlzIGNvbG9yIGlzIGZhZGVkIG9uIHRvcCBvZiB0aGUgc2NlbmUgYmFzZWQgb24g
dGhlIGFscGhhIHBhcmFtZXRlci4gUmVtb3ZpbmcgdGhlIGZhZGUgY29sb3IgaW5zdGFudGx5IAor
ICAgICAgICogd291bGQgYmUgRmFkZVRvQ29sb3IoIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wICku
ICBWYWx1ZXMgYXJlIGluIHVuLXByZW11bHRpcGxpZWQgYWxwaGEgc3BhY2UuICovCisgICAgICAg
dmlydHVhbCB2b2lkIEZhZGVUb0NvbG9yKCBmbG9hdCBmU2Vjb25kcywgZmxvYXQgZlJlZCwgZmxv
YXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBib29sIGJCYWNrZ3JvdW5kID0g
ZmFsc2UgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1cnJlbnQgZmFkZSBjb2xvciB2YWx1ZS4g
Ki8KKyAgICAgICB2aXJ0dWFsIEhtZENvbG9yX3QgR2V0Q3VycmVudEZhZGVDb2xvciggYm9vbCBi
QmFja2dyb3VuZCA9IGZhbHNlICkgPSAwOworCisgICAgICAgLyoqIEZhZGluZyB0aGUgR3JpZCBp
biBvciBvdXQgaW4gZlNlY29uZHMgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRmFkZUdyaWQoIGZs
b2F0IGZTZWNvbmRzLCBib29sIGJGYWRlSW4gKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1cnJl
bnQgYWxwaGEgdmFsdWUgb2YgZ3JpZC4gKi8KKyAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEN1cnJl
bnRHcmlkQWxwaGEoKSA9IDA7CisKKyAgICAgICAvKiogT3ZlcnJpZGUgdGhlIHNreWJveCB1c2Vk
IGluIHRoZSBjb21wb3NpdG9yIChlLmcuIGZvciBkdXJpbmcgbGV2ZWwgbG9hZHMgd2hlbiB0aGUg
YXBwIGNhbid0IGZlZWQgc2NlbmUgaW1hZ2VzIGZhc3QgZW5vdWdoKQorICAgICAgICogT3JkZXIg
aXMgRnJvbnQsIEJhY2ssIExlZnQsIFJpZ2h0LCBUb3AsIEJvdHRvbS4gIElmIG9ubHkgYSBzaW5n
bGUgdGV4dHVyZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgaW4gbGF0LWxvbmcgZm9ybWF0Lgor
ICAgICAgICogSWYgdHdvIGFyZSBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgYSBsYXQtbG9uZyBzdGVy
ZW8gcGFpci4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTZXRTa3lib3hP
dmVycmlkZSggVlJfQVJSQVlfQ09VTlQoIHVuVGV4dHVyZUNvdW50ICkgY29uc3QgVGV4dHVyZV90
ICpwVGV4dHVyZXMsIHVpbnQzMl90IHVuVGV4dHVyZUNvdW50ICkgPSAwOworCisgICAgICAgLyoq
IFJlc2V0cyBjb21wb3NpdG9yIHNreWJveCBiYWNrIHRvIGRlZmF1bHRzLiAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBDbGVhclNreWJveE92ZXJyaWRlKCkgPSAwOworCisgICAgICAgLyoqIEJyaW5n
cyB0aGUgY29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGZyb250LiBUaGlzIGlzIHVzZWZ1bCBmb3Ig
Y292ZXJpbmcgYW55IG90aGVyIHdpbmRvdyB0aGF0IG1heSBiZSBvbiB0aGUgSE1ECisgICAgICAg
KiBhbmQgaXMgb2JzY3VyaW5nIHRoZSBjb21wb3NpdG9yIHdpbmRvdy4gKi8KKyAgICAgICB2aXJ0
dWFsIHZvaWQgQ29tcG9zaXRvckJyaW5nVG9Gcm9udCgpID0gMDsKKworICAgICAgIC8qKiBQdXNo
ZXMgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBiYWNrLiBUaGlzIGlzIHVzZWZ1bCBmb3Ig
YWxsb3dpbmcgb3RoZXIgYXBwbGljYXRpb25zIHRvIGRyYXcgZGlyZWN0bHkgdG8gdGhlIEhNRC4g
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckdvVG9CYWNrKCkgPSAwOworCisgICAg
ICAgLyoqIFRlbGxzIHRoZSBjb21wb3NpdG9yIHByb2Nlc3MgdG8gY2xlYW4gdXAgYW5kIGV4aXQu
IFlvdSBkbyBub3QgbmVlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gYXQgc2h1dGRvd24uIFVuZGVy
IG5vcm1hbCAKKyAgICAgICAqIGNpcmN1bXN0YW5jZXMgdGhlIGNvbXBvc2l0b3Igd2lsbCBtYW5h
Z2UgaXRzIG93biBsaWZlIGN5Y2xlIGJhc2VkIG9uIHdoYXQgYXBwbGljYXRpb25zIGFyZSBydW5u
aW5nLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yUXVpdCgpID0gMDsKKyAgICAg
ICAKKyAgICAgICAvKiogUmV0dXJuIHdoZXRoZXIgdGhlIGNvbXBvc2l0b3IgaXMgZnVsbHNjcmVl
biAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc0Z1bGxzY3JlZW4oKSA9IDA7CisKKyAgICAgICAv
KiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IGlzIGN1cnJlbnRs
eSByZW5kZXJpbmcgdGhlIHNjZW5lICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRDdXJy
ZW50U2NlbmVGb2N1c1Byb2Nlc3MoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJv
Y2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IHJlbmRlcmVkIHRoZSBsYXN0IGZyYW1lIChvciAw
IGlmIHRoZSBjb21wb3NpdG9yIGl0c2VsZiByZW5kZXJlZCB0aGUgZnJhbWUuKQorICAgICAgICog
UmV0dXJucyAwIHdoZW4gZmFkaW5nIG91dCBmcm9tIGFuIGFwcCBhbmQgdGhlIGFwcCdzIHByb2Nl
c3MgSWQgd2hlbiBmYWRpbmcgaW50byBhbiBhcHAuICovCisgICAgICAgdmlydHVhbCB1aW50MzJf
dCBHZXRMYXN0RnJhbWVSZW5kZXJlcigpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUg
aWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBoYXMgdGhlIHNjZW5lIGZvY3VzICovCisgICAgICAgdmly
dHVhbCBib29sIENhblJlbmRlclNjZW5lKCkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMgYSB3
aW5kb3cgb24gdGhlIHByaW1hcnkgbW9uaXRvciB0byBkaXNwbGF5IHdoYXQgaXMgYmVpbmcgc2hv
d24gaW4gdGhlIGhlYWRzZXQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNob3dNaXJyb3JXaW5k
b3coKSA9IDA7CisKKyAgICAgICAvKiogQ2xvc2VzIHRoZSBtaXJyb3Igd2luZG93LiAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBIaWRlTWlycm9yV2luZG93KCkgPSAwOworCisgICAgICAgLyoqIFJl
dHVybnMgdHJ1ZSBpZiB0aGUgbWlycm9yIHdpbmRvdyBpcyBzaG93bi4gKi8KKyAgICAgICB2aXJ0
dWFsIGJvb2wgSXNNaXJyb3JXaW5kb3dWaXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIFdyaXRl
cyBhbGwgaW1hZ2VzIHRoYXQgdGhlIGNvbXBvc2l0b3Iga25vd3MgYWJvdXQgKGluY2x1ZGluZyBv
dmVybGF5cykgdG8gYSAnc2NyZWVuc2hvdHMnIGZvbGRlciBpbiB0aGUgU3RlYW1WUiBydW50aW1l
IHJvb3QuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JEdW1wSW1hZ2VzKCkgPSAw
OworCisgICAgICAgLyoqIExldCBhbiBhcHAga25vdyBpdCBzaG91bGQgYmUgcmVuZGVyaW5nIHdp
dGggbG93IHJlc291cmNlcy4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgU2hvdWxkQXBwUmVuZGVy
V2l0aExvd1Jlc291cmNlcygpID0gMDsKKworICAgICAgIC8qKiBPdmVycmlkZSBpbnRlcmxlYXZl
ZCByZXByb2plY3Rpb24gbG9naWMgdG8gZm9yY2Ugb24uICovCisgICAgICAgdmlydHVhbCB2b2lk
IEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbiggYm9vbCBiT3ZlcnJpZGUgKSA9IDA7CisK
KyAgICAgICAvKiogRm9yY2UgcmVjb25uZWN0aW5nIHRvIHRoZSBjb21wb3NpdG9yIHByb2Nlc3Mu
ICovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlUmVjb25uZWN0UHJvY2VzcygpID0gMDsKKwor
ICAgICAgIC8qKiBUZW1wb3JhcmlseSBzdXNwZW5kcyByZW5kZXJpbmcgKHVzZWZ1bCBmb3IgZmlu
ZXIgY29udHJvbCBvdmVyIHNjZW5lIHRyYW5zaXRpb25zKS4gKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgU3VzcGVuZFJlbmRlcmluZyggYm9vbCBiU3VzcGVuZCApID0gMDsKKworICAgICAgIC8qKiBP
cGVucyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIHdpdGggdGhlIHVuZGlzdG9ydGVkIGNvbXBvc2l0
ZWQgaW1hZ2UgZm9yIGVhY2ggZXllLiAgVXNlIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEgd2hl
biBmaW5pc2hlZAorICAgICAgICogaW5zdGVhZCBvZiBjYWxsaW5nIFJlbGVhc2Ugb24gdGhlIHJl
c291cmNlIGl0c2VsZi4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJDb21wb3NpdG9yRXJyb3Ig
R2V0TWlycm9yVGV4dHVyZUQzRDExKCB2cjo6RVZSRXllIGVFeWUsIHZvaWQgKnBEM0QxMURldmlj
ZU9yUmVzb3VyY2UsIHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICkgPSAwOworICAg
ICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKCB2b2lkICpwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7CisKKyAgICAgICAvKiogQWNjZXNzIHRvIG1pcnJvciB0
ZXh0dXJlcyBmcm9tIE9wZW5HTC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJDb21wb3NpdG9y
RXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKCB2cjo6RVZSRXllIGVFeWUsIHZyOjpnbFVJbnRfdCAq
cGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKnBnbFNoYXJlZFRleHR1
cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIFJlbGVhc2VTaGFyZWRHTFRleHR1
cmUoIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCwgdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90
IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgTG9ja0dM
U2hhcmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hh
cmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgVW5sb2NrR0xTaGFy
ZWRUZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlICkgPSAwOworCisgICAgICAgLyoqIFtWdWxrYW4gT25seV0KKyAgICAgICAq
IHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIg
b2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFp
bGluZworICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBiZSBhIHNwYWNlIHNlcGFyYXRl
ZCBsaXN0IG9mLXJlcXVpcmVkIGluc3RhbmNlIGV4dGVuc2lvbnMgdG8gZW5hYmxlIGluIFZrQ3Jl
YXRlSW5zdGFuY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFZ1bGthbkluc3RhbmNl
RXh0ZW5zaW9uc1JlcXVpcmVkKCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQz
Ml90IHVuQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBbVnVsa2FuIG9ubHldCisgICAg
ICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbnVt
YmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0aGUg
dHJhaWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdpbGwgYmUgYSBzcGFjZSBzZXBh
cmF0ZWQgbGlzdCBvZiByZXF1aXJlZCBkZXZpY2UgZXh0ZW5zaW9ucyB0byBlbmFibGUgaW4gVmtD
cmVhdGVEZXZpY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFZ1bGthbkRldmljZUV4
dGVuc2lvbnNSZXF1aXJlZCggVmtQaHlzaWNhbERldmljZV9UICpwUGh5c2ljYWxEZXZpY2UsIFZS
X09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkgPSAw
OworCisgICAgICAgLyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogVGhlcmUgYXJl
IHR3byBwdXJwb3NlcyBmb3IgU2V0RXhwbGljaXRUaW1pbmdNb2RlOgorICAgICAgICogICAgICAg
MS4gVG8gZ2V0IGEgbW9yZSBhY2N1cmF0ZSBHUFUgdGltZXN0YW1wIGZvciB3aGVuIHRoZSBmcmFt
ZSBiZWdpbnMgaW4gVnVsa2FuL0QzRDEyIGFwcGxpY2F0aW9ucy4KKyAgICAgICAqICAgICAgIDIu
IChPcHRpb25hbCkgVG8gYXZvaWQgaGF2aW5nIFdhaXRHZXRQb3NlcyBhY2Nlc3MgdGhlIFZ1bGth
biBxdWV1ZSBzbyB0aGF0IHRoZSBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQgZnJvbQorICAgICAgICog
ICAgICAgYW5vdGhlciB0aHJlYWQgd2hpbGUgV2FpdEdldFBvc2VzIGlzIGV4ZWN1dGluZy4KKyAg
ICAgICAqCisgICAgICAgKiBNb3JlIGFjY3VyYXRlIEdQVSB0aW1lc3RhbXAgZm9yIHRoZSBzdGFy
dCBvZiB0aGUgZnJhbWUgaXMgYWNoaWV2ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGNhbGxpbmcKKyAg
ICAgICAqIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSBpbW1lZGlhdGVseSBiZWZvcmUgaXRzIGZp
cnN0IHN1Ym1pc3Npb24gdG8gdGhlIFZ1bGthbi9EM0QxMiBxdWV1ZS4KKyAgICAgICAqIFRoaXMg
aXMgbW9yZSBhY2N1cmF0ZSBiZWNhdXNlIG5vcm1hbGx5IHRoaXMgR1BVIHRpbWVzdGFtcCBpcyBy
ZWNvcmRlZCBkdXJpbmcgV2FpdEdldFBvc2VzLiAgSW4gRDNEMTEsIAorICAgICAgICogV2FpdEdl
dFBvc2VzIHF1ZXVlcyBhIEdQVSB0aW1lc3RhbXAgd3JpdGUsIGJ1dCBpdCBkb2VzIG5vdCBhY3R1
YWxseSBnZXQgc3VibWl0dGVkIHRvIHRoZSBHUFUgdW50aWwgdGhlIAorICAgICAgICogYXBwbGlj
YXRpb24gZmx1c2hlcy4gIEJ5IHVzaW5nIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSwgdGhlIHRp
bWVzdGFtcCBpcyByZWNvcmRlZCBhdCB0aGUgc2FtZSBwbGFjZSBmb3IgCisgICAgICAgKiBWdWxr
YW4vRDNEMTIgYXMgaXQgaXMgZm9yIEQzRDExLCByZXN1bHRpbmcgaW4gYSBtb3JlIGFjY3VyYXRl
IEdQVSB0aW1lIG1lYXN1cmVtZW50IGZvciB0aGUgZnJhbWUuCisgICAgICAgKgorICAgICAgICog
QXZvaWRpbmcgV2FpdEdldFBvc2VzIGFjY2Vzc2luZyB0aGUgVnVsa2FuIHF1ZXVlIGNhbiBiZSBh
Y2hpZXZlZCB1c2luZyBTZXRFeHBsaWNpdFRpbWluZ01vZGUgYXMgd2VsbC4gIElmIHRoaXMgaXMg
ZGVzaXJlZCwKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbiAqTVVTVCogY2FsbCBQb3N0UHJlc2Vu
dEhhbmRvZmYgaXRzZWxmIHByaW9yIHRvIFdhaXRHZXRQb3Nlcy4gIElmIFNldEV4cGxpY2l0VGlt
aW5nTW9kZSBpcyB0cnVlIGFuZCB0aGUKKyAgICAgICAqIGFwcGxpY2F0aW9uIGNhbGxzIFBvc3RQ
cmVzZW50SGFuZG9mZiwgdGhlbiBXYWl0R2V0UG9zZXMgaXMgZ3VhcmFudGVlZCBub3QgdG8gYWNj
ZXNzIHRoZSBxdWV1ZS4gIE5vdGUgdGhhdCBQb3N0UHJlc2VudEhhbmRvZmYKKyAgICAgICAqIGFu
ZCBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgd2lsbCBhY2Nlc3MgdGhlIHF1ZXVlLCBzbyBvbmx5
IFdhaXRHZXRQb3NlcyBiZWNvbWVzIHNhZmUgZm9yIGFjY2Vzc2luZyB0aGUgcXVldWUgZnJvbSBh
bm90aGVyCisgICAgICAgKiB0aHJlYWQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldEV4cGxp
Y2l0VGltaW5nTW9kZSggYm9vbCBiRXhwbGljaXRUaW1pbmdNb2RlICkgPSAwOworCisgICAgICAg
LyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogU3VibWl0IGV4cGxpY2l0IHRpbWlu
ZyBkYXRhLiAgV2hlbiBTZXRFeHBsaWNpdFRpbWluZ01vZGUgaXMgdHJ1ZSwgdGhpcyBtdXN0IGJl
IGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbidzIGZp
cnN0IHZrUXVldWVTdWJtaXQgKFZ1bGthbikgb3IgSUQzRDEyQ29tbWFuZFF1ZXVlOjpFeGVjdXRl
Q29tbWFuZExpc3RzIChEM0QxMikgb2YgZWFjaCBmcmFtZS4KKyAgICAgICAqIFRoaXMgZnVuY3Rp
b24gd2lsbCBpbnNlcnQgYSBHUFUgdGltZXN0YW1wIHdyaXRlIGp1c3QgYmVmb3JlIHRoZSBhcHBs
aWNhdGlvbiBzdGFydHMgaXRzIHJlbmRlcmluZy4gIFRoaXMgZnVuY3Rpb24KKyAgICAgICAqIHdp
bGwgcGVyZm9ybSBhIHZrUXVldWVTdWJtaXQgb24gVnVsa2FuIHNvIG11c3Qgbm90IGJlIGRvbmUg
c2ltdWx0YW5lb3VzbHkgd2l0aCBWa1F1ZXVlIG9wZXJhdGlvbnMgb24gYW5vdGhlciB0aHJlYWQu
CisgICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQgaWYgU2V0
RXhwbGljaXRUaW1pbmdNb2RlIGlzIG5vdCBlbmFibGVkLiAqLworICAgICAgIHZpcnR1YWwgRVZS
Q29tcG9zaXRvckVycm9yIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSgpID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBv
c2l0b3JfMDIxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cm5vdGlmaWNhdGlv
bnMuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKKy8vIFVz
ZWQgZm9yIHBhc3NpbmcgZ3JhcGhpYyBkYXRhCitzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QK
K3sKKyAgICAgICBOb3RpZmljYXRpb25CaXRtYXBfdCgpCisgICAgICAgICAgICAgIDogbV9wSW1h
Z2VEYXRhKCBudWxscHRyICkKKyAgICAgICAgICAgICAgLCBtX25XaWR0aCggMCApCisgICAgICAg
ICAgICAgICwgbV9uSGVpZ2h0KCAwICkKKyAgICAgICAgICAgICAgLCBtX25CeXRlc1BlclBpeGVs
KCAwICkKKyAgICAgICB7CisgICAgICAgfTsKKworICAgICAgIHZvaWQgKm1fcEltYWdlRGF0YTsK
KyAgICAgICBpbnQzMl90IG1fbldpZHRoOworICAgICAgIGludDMyX3QgbV9uSGVpZ2h0OworICAg
ICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsKK307CisKKworLyoqIEJlIGF3YXJlIHRoYXQg
dGhlIG5vdGlmaWNhdGlvbiB0eXBlIGlzIHVzZWQgYXMgJ3ByaW9yaXR5JyB0byBwaWNrIHRoZSBu
ZXh0IG5vdGlmaWNhdGlvbiAqLworZW51bSBFVlJOb3RpZmljYXRpb25UeXBlCit7CisgICAgICAg
LyoqIFRyYW5zaWVudCBub3RpZmljYXRpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGhpZGRlbiBhZnRl
ciBhIHBlcmlvZCBvZiB0aW1lIHNldCBieSB0aGUgdXNlci4gCisgICAgICAgKiBUaGV5IGFyZSB1
c2VkIGZvciB0aGluZ3MgbGlrZSBpbmZvcm1hdGlvbiBhbmQgY2hhdCBtZXNzYWdlcyB0aGF0IGRv
IG5vdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCisgICAgICAgRVZSTm90aWZpY2F0aW9u
VHlwZV9UcmFuc2llbnQgPSAwLAorCisgICAgICAgLyoqIFBlcnNpc3RlbnQgbm90aWZpY2F0aW9u
cyBhcmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhleSBhcmUgaGlkZGVuIGJ5IGNhbGxpbmcg
UmVtb3ZlTm90aWZpY2F0aW9uKCkuCisgICAgICAgKiBUaGV5IGFyZSB1c2VkIGZvciB0aGluZ3Mg
bGlrZSBwaG9uZSBjYWxscyBhbmQgYWxhcm1zIHRoYXQgcmVxdWlyZSB1c2VyIGludGVyYWN0aW9u
LiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCA9IDEsCisKKyAgICAg
ICAvKiogU3lzdGVtIG5vdGlmaWNhdGlvbnMgYXJlIHNob3duIG5vIG1hdHRlciB3aGF0LiBJdCBp
cyBleHBlY3RlZCwgdGhhdCB0aGUgdWxVc2VyVmFsdWUgaXMgdXNlZCBhcyBJRC4KKyAgICAgICAg
KiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc3lzdGVtIG5vdGlmaWNhdGlvbiBpbiB0aGUgcXVldWUg
d2l0aCB0aGF0IElEIGl0IGlzIG5vdCBhY2NlcHRlZCBpbnRvIHRoZSBxdWV1ZQorICAgICAgICAq
IHRvIHByZXZlbnQgc3BhbW1pbmcgd2l0aCBzeXN0ZW0gbm90aWZpY2F0aW9uICovCisgICAgICAg
RVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIsCit9
OworCitlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAgICAgLyoqIENyZWF0ZXMgYSBu
b3RpZmljYXRpb24gd2l0aCBtaW5pbWFsIGV4dGVybmFsIHN0eWxpbmcuICovCisgICAgICAgRVZS
Tm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisKKyAgICAgICAvKiogVXNlZCBmb3Igbm90aWZp
Y2F0aW9ucyBhYm91dCBvdmVybGF5LWxldmVsIHN0YXR1cy4gSW4gU3RlYW0gdGhpcyBpcyB1c2Vk
IGZvciBldmVudHMgbGlrZSBkb3dubG9hZHMgY29tcGxldGluZy4gKi8KKyAgICAgICBFVlJOb3Rp
ZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiA9IDEwMCwKKworICAgICAgIC8qKiBVc2VkIGZvciBu
b3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQgYXJlIHVua25vd24gb3Igbm90IGF2YWls
YWJsZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBmcmllbmQgaW52aXRhdGlvbnMgYW5kIG9m
ZmxpbmUgZnJpZW5kcy4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Rp
c2FibGVkID0gMjAwLAorCisgICAgICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQg
Y29udGFjdHMgdGhhdCBhcmUgYXZhaWxhYmxlIGJ1dCBpbmFjdGl2ZS4gSW4gU3RlYW0gdGhpcyBp
cyB1c2VkIGZvciBmcmllbmRzIHRoYXQgYXJlIG9ubGluZSBidXQgbm90IHBsYXlpbmcgYSBnYW1l
LiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5hYmxlZCA9IDIwMSwK
KworICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQg
YXJlIGF2YWlsYWJsZSBhbmQgYWN0aXZlLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGZyaWVu
ZHMgdGhhdCBhcmUgb25saW5lIGFuZCBjdXJyZW50bHkgcnVubmluZyBhIGdhbWUuICovCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3RpdmUgPSAyMDIsCit9OworCitzdGF0
aWMgY29uc3QgdWludDMyX3Qga191bk5vdGlmaWNhdGlvblRleHRNYXhTaXplID0gMjU2OworCit0
eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7CisKKworCisjcHJhZ21hIHBhY2soIHBv
cCApCisKKy8qKiBBbGxvd3Mgbm90aWZpY2F0aW9uIHNvdXJjZXMgdG8gaW50ZXJhY3Qgd2l0aCB0
aGUgVlIgc3lzdGVtCisgICAgICAgVGhpcyBjdXJyZW50IGludGVyZmFjZSBpcyBub3QgeWV0IGlt
cGxlbWVudGVkLiBEbyBub3QgdXNlIHlldC4gKi8KK2NsYXNzIElWUk5vdGlmaWNhdGlvbnMKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogQ3JlYXRlIGEgbm90aWZpY2F0aW9uIGFuZCBlbnF1ZXVlIGl0
IHRvIGJlIHNob3duIHRvIHRoZSB1c2VyLgorICAgICAgICogQW4gb3ZlcmxheSBoYW5kbGUgaXMg
cmVxdWlyZWQgdG8gY3JlYXRlIGEgbm90aWZpY2F0aW9uLCBhcyBvdGhlcndpc2UgaXQgd291bGQg
YmUgaW1wb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGFjdCBvbiBpdC4KKyAgICAgICAqIFRvIGNyZWF0
ZSBhIHR3by1saW5lIG5vdGlmaWNhdGlvbiwgdXNlIGEgbGluZSBicmVhayAoJ1xuJykgdG8gc3Bs
aXQgdGhlIHRleHQgaW50byB0d28gbGluZXMuCisgICAgICAgKiBUaGUgcEltYWdlIGFyZ3VtZW50
IG1heSBiZSBOVUxMLCBpbiB3aGljaCBjYXNlIHRoZSBzcGVjaWZpZWQgb3ZlcmxheSdzIGljb24g
d2lsbCBiZSB1c2VkIGluc3RlYWQuICovCisgICAgICAgdmlydHVhbCBFVlJOb3RpZmljYXRpb25F
cnJvciBDcmVhdGVOb3RpZmljYXRpb24oIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgdWludDY0X3QgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgY29uc3Qg
Y2hhciAqcGNoVGV4dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIGNvbnN0IE5vdGlmaWNh
dGlvbkJpdG1hcF90ICpwSW1hZ2UsIC8qIG91dCAqLyBWUk5vdGlmaWNhdGlvbklkICpwTm90aWZp
Y2F0aW9uSWQgKSA9IDA7CisKKyAgICAgICAvKiogRGVzdHJveSBhIG5vdGlmaWNhdGlvbiwgaGlk
aW5nIGl0IGZpcnN0IGlmIGl0IGN1cnJlbnRseSBzaG93biB0byB0aGUgdXNlci4gKi8KKyAgICAg
ICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIFJlbW92ZU5vdGlmaWNhdGlvbiggVlJOb3Rp
ZmljYXRpb25JZCBub3RpZmljYXRpb25JZCApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18w
MDIiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZyb3ZlcmxheS5oCituYW1lc3Bh
Y2UgdnIKK3sKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gb3ZlcmxheSBr
ZXkgaW4gYnl0ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4gKi8K
KyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3ZlcmxheU1heEtleUxlbmd0aCA9
IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gb3ZlcmxheSBuYW1l
IGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuICovCisg
ICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoID0g
MTI4OworCisgICAgICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvdmVybGF5cyB0aGF0IGNh
biBleGlzdCBpbiB0aGUgc3lzdGVtIGF0IG9uZSB0aW1lLiAqLworICAgICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTWF4T3ZlcmxheUNvdW50ID0gNjQ7CisKKyAgICAgICAvKiogVGhlIG1h
eGltdW0gbnVtYmVyIG9mIG92ZXJsYXkgaW50ZXJzZWN0aW9uIG1hc2sgcHJpbWl0aXZlcyBwZXIg
b3ZlcmxheSAqLworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4T3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKworICAgICAgIC8qKiBUeXBlcyBv
ZiBpbnB1dCBzdXBwb3J0ZWQgYnkgVlIgT3ZlcmxheXMgKi8KKyAgICAgICBlbnVtIFZST3Zlcmxh
eUlucHV0TWV0aG9kCisgICAgICAgeworICAgICAgICAgICAgICBWUk92ZXJsYXlJbnB1dE1ldGhv
ZF9Ob25lICAgICAgICAgICAgICA9IDAsIC8vIE5vIGlucHV0IGV2ZW50cyB3aWxsIGJlIGdlbmVy
YXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGlzIG92ZXJsYXkKKyAgICAgICAgICAgICAgVlJPdmVy
bGF5SW5wdXRNZXRob2RfTW91c2UgICAgICAgICAgICAgID0gMSwgLy8gVHJhY2tlZCBjb250cm9s
bGVycyB3aWxsIGdldCBtb3VzZSBldmVudHMgYXV0b21hdGljYWxseQorICAgICAgIH07CisKKyAg
ICAgICAvKiogQWxsb3dzIHRoZSBjYWxsZXIgdG8gZmlndXJlIG91dCB3aGljaCBvdmVybGF5IHRy
YW5zZm9ybSBnZXR0ZXIgdG8gY2FsbC4gKi8KKyAgICAgICBlbnVtIFZST3ZlcmxheVRyYW5zZm9y
bVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9BYnNvbHV0
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICAgICAgICBW
Uk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlICAgICAgID0gMSwKKyAgICAg
ICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgICAgICAgICAgICAgICAg
ICAgICA9IDIsCisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9u
ZW50ICAgICAgICAgICAgICAgPSAzLAorICAgICAgIH07CisKKyAgICAgICAvKiogT3ZlcmxheSBj
b250cm9sIHNldHRpbmdzICovCisgICAgICAgZW51bSBWUk92ZXJsYXlGbGFncworICAgICAgIHsK
KyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSAgICAgICAgICAgICAgICAgICAgID0g
MCwKKworICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIG9ubHkgdGFrZSBlZmZlY3Qgd2hl
biByZW5kZXJlZCB1c2luZyB0aGUgaGlnaCBxdWFsaXR5IHJlbmRlciBwYXRoIChzZWUgU2V0SGln
aFF1YWxpdHlPdmVybGF5KS4KKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfQ3VydmVkICAg
ICAgICAgICAgICA9IDEsCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1JHU1M0WCAgICAg
ICAgICAgICAgPSAyLAorCisgICAgICAgICAgICAgIC8vIFNldCB0aGlzIGZsYWcgb24gYSBkYXNo
Ym9hcmQgb3ZlcmxheSB0byBwcmV2ZW50IGEgdGFiIGZyb20gc2hvd2luZyB1cCBmb3IgdGhhdCBv
dmVybGF5CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiID0gMywK
KworICAgICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIG9uIGEgZGFzaGJvYXJkIHRoYXQgaXMg
YWJsZSB0byBkZWFsIHdpdGggZ2FtZXBhZCBmb2N1cyBldmVudHMKKyAgICAgICAgICAgICAgVlJP
dmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAorCisgICAgICAgICAgICAgIC8v
IEluZGljYXRlcyB0aGF0IHRoZSBvdmVybGF5IHNob3VsZCBkaW0vYnJpZ2h0ZW4gdG8gc2hvdyBn
YW1lcGFkIGZvY3VzCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dHYW1lcGFkRm9j
dXMgPSA1LAorCisgICAgICAgICAgICAgIC8vIFdoZW4gaW4gVlJPdmVybGF5SW5wdXRNZXRob2Rf
TW91c2UgeW91IGNhbiBvcHRpb25hbGx5IGVuYWJsZSBzZW5kaW5nIFZSU2Nyb2xsX3QgCisgICAg
ICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyA9IDYsCisgICAgICAg
ICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKworICAgICAg
ICAgICAgICAvLyBJZiBzZXQgdGhpcyB3aWxsIHJlbmRlciBhIHZlcnRpY2FsIHNjcm9sbCB3aGVl
bCBvbiB0aGUgcHJpbWFyeSBjb250cm9sbGVyLCAKKyAgICAgICAgICAgICAgLy8gIG9ubHkgbmVl
ZGVkIGlmIG5vdCB1c2luZyBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3JvbGxFdmVudHMgYnV0IHlv
dSBzdGlsbCB3YW50IHRvIHJlcHJlc2VudCBhIHNjcm9sbCB3aGVlbAorICAgICAgICAgICAgICBW
Uk92ZXJsYXlGbGFnc19TaG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisKKyAgICAgICAgICAg
ICAgLy8gSWYgdGhpcyBpcyBzZXQgb3duZXJzaGlwIGFuZCByZW5kZXIgYWNjZXNzIHRvIHRoZSBv
dmVybGF5IGFyZSB0cmFuc2ZlcnJlZCAKKyAgICAgICAgICAgICAgLy8gdG8gdGhlIG5ldyBzY2Vu
ZSBwcm9jZXNzIG9uIGEgY2FsbCB0byBJVlJBcHBsaWNhdGlvbnM6OkxhdW5jaEludGVybmFsUHJv
Y2VzcworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRvSW50
ZXJuYWxQcm9jZXNzID0gOSwKKworICAgICAgICAgICAgICAvLyBJZiBzZXQsIHJlbmRlcnMgNTAl
IG9mIHRoZSB0ZXh0dXJlIGluIGVhY2ggZXllLCBzaWRlIGJ5IHNpZGUKKyAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLCAvLyBUZXh0dXJlIGlzIGxl
ZnQvcmlnaHQKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2Vk
ID0gMTEsIC8vIFRleHR1cmUgaXMgY3Jvc3NlZCBhbmQgcmlnaHQvbGVmdAorCisgICAgICAgICAg
ICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsIC8vIFRleHR1cmUgaXMgYSBwYW5vcmFt
YQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFtYSA9IDEzLCAvLyBU
ZXh0dXJlIGlzIGEgc3RlcmVvIHBhbm9yYW1hCisKKyAgICAgICAgICAgICAgLy8gSWYgdGhpcyBp
cyBzZXQgb24gYW4gb3ZlcmxheSBvd25lZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24gdGhhdCBv
dmVybGF5CisgICAgICAgICAgICAgIC8vIHdpbGwgYmUgc29ydGVkIHdpdGggdGhlICJPdGhlciIg
b3ZlcmxheXMgb24gdG9wIG9mIGFsbCBvdGhlciBzY2VuZSBvdmVybGF5cworICAgICAgICAgICAg
ICBWUk92ZXJsYXlGbGFnc19Tb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwKKworICAgICAg
ICAgICAgICAvLyBJZiBzZXQsIHRoZSBvdmVybGF5IHdpbGwgYmUgc2hvd24gaW4gdGhlIGRhc2hi
b2FyZCwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgaGlkZGVuLgorICAgICAgICAgICAgICBWUk92ZXJs
YXlGbGFnc19WaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKKyAgICAgICB9OworCisgICAgICAgZW51
bSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18wID0gMCwKKyAgICAgICAgICAgICAgVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzEgPSAxLAorICAgICAgICAgICAgICBW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9IDIsCisgICAgICAgICAgICAg
IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zID0gMywKKyAgICAgICAgICAg
ICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQs
CisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3Jl
YXRlQ2xpZW50T3ZlcmxheT0gNSwKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlX0FwcGxpY2F0aW9uUXVpdCA9IDYKKyAgICAgICB9OworCisgICAgICAgc3RydWN0IFZST3Zl
cmxheUludGVyc2VjdGlvblBhcmFtc190CisgICAgICAgeworICAgICAgICAgICAgICBIbWRWZWN0
b3IzX3QgdlNvdXJjZTsKKyAgICAgICAgICAgICAgSG1kVmVjdG9yM190IHZEaXJlY3Rpb247Cisg
ICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW47CisgICAgICAgfTsK
KworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QKKyAgICAgICB7
CisgICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2UG9pbnQ7CisgICAgICAgICAgICAgIEhtZFZl
Y3RvcjNfdCB2Tm9ybWFsOworICAgICAgICAgICAgICBIbWRWZWN0b3IyX3QgdlVWczsKKyAgICAg
ICAgICAgICAgZmxvYXQgZkRpc3RhbmNlOworICAgICAgIH07CisKKyAgICAgICAvLyBJbnB1dCBt
b2RlcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdhbWVwYWQgdGV4dCBlbnRyeQorICAgICAgIGVudW0g
RUdhbWVwYWRUZXh0SW5wdXRNb2RlCisgICAgICAgeworICAgICAgICAgICAgICBrX0VHYW1lcGFk
VGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5w
dXRNb2RlUGFzc3dvcmQgPSAxLAorICAgICAgICAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9k
ZVN1Ym1pdCA9IDIsCisgICAgICAgfTsKKworICAgICAgIC8vIENvbnRyb2xzIG51bWJlciBvZiBh
bGxvd2VkIGxpbmVzIGZvciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBhZCB0ZXh0IGVudHJ5CisgICAg
ICAgZW51bSBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlCisgICAgICAgeworICAgICAgICAgICAg
ICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICAgICAg
ICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyA9IDEKKyAgICAgICB9
OworCisgICAgICAgLyoqIERpcmVjdGlvbnMgZm9yIGNoYW5naW5nIGZvY3VzIGJldHdlZW4gb3Zl
cmxheXMgd2l0aCB0aGUgZ2FtZXBhZCAqLworICAgICAgIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24K
KyAgICAgICB7CisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fVXAgPSAwLAorICAgICAg
ICAgICAgICBPdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAgICAgICAgICAgICBPdmVybGF5
RGlyZWN0aW9uX0xlZnQgPSAyLAorICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX1JpZ2h0
ID0gMywKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fQ291
bnQgPSA0LAorICAgICAgIH07CisKKyAgICAgICBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25N
YXNrUHJpbWl0aXZlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAgICAgT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlLAorICAgICAgICAgICAgICBPdmVybGF5SW50ZXJz
ZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUsCisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBJ
bnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0
IG1fZmxUb3BMZWZ0WDsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAg
ICAgICAgICBmbG9hdCBtX2ZsV2lkdGg7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxIZWlnaHQ7
CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxDZW50ZXJYOworICAgICAgICAgICAgICBm
bG9hdCBtX2ZsQ2VudGVyWTsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFJhZGl1czsKKyAgICAg
ICB9OworCisgICAgICAgLyoqIE5PVEUhISEgSWYgeW91IGNoYW5nZSB0aGlzIHlvdSBNVVNUIG1h
bnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSBhbmQgb3BlbnZyX2FwaV9mbGF0Lmgu
cHkgKi8KKyAgICAgICB0eXBlZGVmIHVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBJbnRl
cnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAgICAgICAgIEludGVy
c2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKKyAgICAgICB9IFZST3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCisgICAgICAgc3RydWN0IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAg
ICAgICAgIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJpbWl0
aXZlOworICAgICAgIH07CisKKyAgICAgICBjbGFzcyBJVlJPdmVybGF5CisgICAgICAgeworICAg
ICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3ZlcmxheSBtYW5hZ2VtZW50
IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIEZpbmRzIGFuIGV4aXN0aW5nIG92
ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgRmluZE92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIFZS
T3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIENyZWF0ZXMgYSBuZXcgbmFtZWQgb3ZlcmxheS4gQWxsIG92ZXJsYXlzIHN0YXJ0IGhpZGRl
biBhbmQgd2l0aCBkZWZhdWx0IHNldHRpbmdzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5LCBj
b25zdCBjaGFyICpwY2hPdmVybGF5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwT3ZlcmxheUhh
bmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogRGVzdHJveXMgdGhlIHNwZWNpZmllZCBv
dmVybGF5LiBXaGVuIGFuIGFwcGxpY2F0aW9uIGNhbGxzIFZSX1NodXRkb3duIGFsbCBvdmVybGF5
cyBjcmVhdGVkIGJ5IHRoYXQgYXBwIGFyZQorICAgICAgICAgICAgICAqIGF1dG9tYXRpY2FsbHkg
ZGVzdHJveWVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBEZXN0
cm95T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IHdoaWNoIG92ZXJsYXkgdG8gdXNlIHRoZSBoaWdoIHF1
YWxpdHkgcmVuZGVyIHBhdGguICBUaGlzIG92ZXJsYXkgd2lsbCBiZSBjb21wb3NpdGVkIGluIGR1
cmluZyB0aGUgZGlzdG9ydGlvbiBwYXNzIHdoaWNoCisgICAgICAgICAgICAgICogcmVzdWx0cyBp
biBpdCBkcmF3aW5nIG9uIHRvcCBvZiBldmVyeXRoaW5nIGVsc2UsIGJ1dCBhbHNvIGF0IGEgaGln
aGVyIHF1YWxpdHkgYXMgaXQgc2FtcGxlcyB0aGUgc291cmNlIHRleHR1cmUgZGlyZWN0bHkgcmF0
aGVyIHRoYW4KKyAgICAgICAgICAgICAgKiByYXN0ZXJpemluZyBpbnRvIGVhY2ggZXllJ3MgcmVu
ZGVyIHRleHR1cmUgZmlyc3QuICBCZWNhdXNlIGlmIHRoaXMsIG9ubHkgb25lIG9mIHRoZXNlIGlz
IHN1cHBvcnRlZCBhdCBhbnkgZ2l2ZW4gdGltZS4gIEl0IGlzIG1vc3QgdXNlZnVsCisgICAgICAg
ICAgICAgICogZm9yIG92ZXJsYXlzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIHRha2UgdXAgbW9zdCBv
ZiB0aGUgdXNlcidzIHZpZXcgKGUuZy4gc3RyZWFtaW5nIHZpZGVvKS4KKyAgICAgICAgICAgICAg
KiBUaGlzIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBtb3VzZSBpbnB1dCB0byB5b3VyIG92ZXJsYXku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5
T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBvdmVybGF5IGhhbmRsZSBvZiB0aGUgY3VycmVudCBv
dmVybGF5IGJlaW5nIHJlbmRlcmVkIHVzaW5nIHRoZSBzaW5nbGUgaGlnaCBxdWFsaXR5IG92ZXJs
YXkgcmVuZGVyIHBhdGguCisgICAgICAgICAgICAgICogT3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJu
IGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2cjo6
VlJPdmVybGF5SGFuZGxlX3QgR2V0SGlnaFF1YWxpdHlPdmVybGF5KCkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBGaWxscyB0aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIHN0cmluZyBrZXkg
b2YgdGhlIG92ZXJsYXkuIFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRvIHN0
b3JlIHRoZSBrZXksIGluY2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGluZyBu
dWxsIGNoYXJhY3Rlci4ga191blZST3ZlcmxheU1heEtleUxlbmd0aCB3aWxsIGJlIGVub3VnaCBi
eXRlcyB0byBmaXQgdGhlIHN0cmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJf
dCBHZXRPdmVybGF5S2V5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSX09V
VF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVy
bGF5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGaWxscyB0
aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIGZyaWVuZGx5IG5hbWUgb2YgdGhlIG92ZXJsYXku
IFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRvIHN0b3JlIHRoZSBrZXksIGlu
Y2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4g
a191blZST3ZlcmxheU1heE5hbWVMZW5ndGggd2lsbCBiZSBlbm91Z2ggYnl0ZXMgdG8gZml0IHRo
ZSBzdHJpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3ZlcmxheU5h
bWUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJfT1VUX1NUUklORygpIGNo
YXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAqcEVy
cm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHNldCB0aGUgbmFtZSB0byB1c2Ug
Zm9yIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5TmFtZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25z
dCBjaGFyICpwY2hOYW1lICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSByYXcg
aW1hZ2UgZGF0YSBmcm9tIGFuIG92ZXJsYXkuIE92ZXJsYXkgaW1hZ2UgZGF0YSBpcyBhbHdheXMg
cmV0dXJuZWQgYXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhlbC4gSWYgdGhlIGJ1ZmZlciBp
cyBub3QgbGFyZ2UgZW5vdWdoLCB3aWR0aCBhbmQgaGVpZ2h0IAorICAgICAgICAgICAgICAqIHdp
bGwgYmUgc2V0IGFuZCBWUk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsIGlzIHJldHVybmVkLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VE
YXRhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnB2QnVmZmVyLCB1
aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICpwdW5XaWR0aCwgdWludDMyX3QgKnB1bkhl
aWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogcmV0dXJucyBhIHN0cmluZyB0aGF0IGNv
cnJlc3BvbmRzIHdpdGggdGhlIHNwZWNpZmllZCBvdmVybGF5IGVycm9yLiBUaGUgc3RyaW5nIHdp
bGwgYmUgdGhlIG5hbWUgCisgICAgICAgICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUg
Zm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSggRVZST3ZlcmxheUVycm9yIGVycm9y
ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVybGF5IHJlbmRlcmluZyBtZXRo
b2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBwaWQgdGhhdCBpcyBhbGxv
d2VkIHRvIHJlbmRlciB0byB0aGlzIG92ZXJsYXkgKHRoZSBjcmVhdG9yIHBpZCBpcyBhbHdheXMg
YWxsb3cgdG8gcmVuZGVyKSwKKyAgICAgICAgICAgICAgKiAgICAgICBieSBkZWZhdWx0IHRoaXMg
aXMgdGhlIHBpZCBvZiB0aGUgcHJvY2VzcyB0aGF0IG1hZGUgdGhlIG92ZXJsYXkgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blBJRCApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcGlkIHRoYXQgaXMgYWxsb3dlZCB0byByZW5k
ZXIgdG8gdGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
T3ZlcmxheVJlbmRlcmluZ1BpZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IGZsYWcgc2V0dGluZyBmb3IgYSBnaXZl
biBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZs
YWdzIGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAgICAv
KiogU2V0cyBmbGFnIHNldHRpbmcgZm9yIGEgZ2l2ZW4gb3ZlcmxheSAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5RmxhZyggVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgKnBi
RW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY29sb3IgdGludCBv
ZiB0aGUgb3ZlcmxheSBxdWFkLiBVc2UgMC4wIHRvIDEuMCBwZXIgY2hhbm5lbC4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUNvbG9yKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxv
YXQgZkJsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGNvbG9yIHRpbnQg
b2YgdGhlIG92ZXJsYXkgcXVhZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUNvbG9yKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IGZsb2F0ICpwZlJlZCwgZmxvYXQgKnBmR3JlZW4sIGZsb2F0ICpwZkJsdWUgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFscGhhIG9mIHRoZSBvdmVybGF5IHF1YWQuIFVzZSAx
LjAgZm9yIDEwMCBwZXJjZW50IG9wYWNpdHkgdG8gMC4wIGZvciAwIHBlcmNlbnQgb3BhY2l0eS4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUFscGhh
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZBbHBoYSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYWxwaGEgb2YgdGhlIG92ZXJsYXkgcXVhZC4g
QnkgZGVmYXVsdCBvdmVybGF5cyBhcmUgcmVuZGVyaW5nIGF0IDEwMCBwZXJjZW50IGFscGhhICgx
LjApLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5
QWxwaGEoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmQWxwaGEg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUg
dGV4ZWxzIGluIHRoZSBvdmVybGF5LiAxLjAgbWVhbnMgdGhlIHRleGVscyBhcmUgc3F1YXJlLiAy
LjAgbWVhbnMgdGhlIHRleGVscworICAgICAgICAgICAgICAqIGFyZSB0d2ljZSBhcyB3aWRlIGFz
IHRoZXkgYXJlIHRhbGwuIERlZmF1bHRzIHRvIDEuMC4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleGVsQXNwZWN0KCBWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogR2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0ZXhlbHMgaW4gdGhlIG92ZXJs
YXkuIERlZmF1bHRzIHRvIDEuMCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBHZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgKnBmVGV4ZWxBc3BlY3QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIHJlbmRlcmluZyBzb3J0IG9yZGVyIGZvciB0aGUgb3ZlcmxheS4gT3ZlcmxheXMgYXJl
IHJlbmRlcmVkIHRoaXMgb3JkZXI6CisgICAgICAgICAgICAgICogICAgICBPdmVybGF5cyBvd25l
ZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgKiAgICAgIE92ZXJsYXlz
IG93bmVkIGJ5IHNvbWUgb3RoZXIgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgKgorICAgICAg
ICAgICAgICAqICAgICAgIFdpdGhpbiBhIGNhdGVnb3J5IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBs
b3dlc3Qgc29ydCBvcmRlciB0byBoaWdoZXN0IHNvcnQgb3JkZXIuIE92ZXJsYXlzIHdpdGggdGhl
IHNhbWUgCisgICAgICAgICAgICAgICogICAgICAgc29ydCBvcmRlciBhcmUgcmVuZGVyZWQgYmFj
ayB0byBmcm9udCBiYXNlIG9uIGRpc3RhbmNlIGZyb20gdGhlIEhNRC4KKyAgICAgICAgICAgICAg
KgorICAgICAgICAgICAgICAqICAgICAgIFNvcnQgb3JkZXIgZGVmYXVsdHMgdG8gMC4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVNvcnRPcmRlcigg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blNvcnRPcmRlciAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgc29ydCBvcmRlciBvZiB0aGUgb3Zl
cmxheS4gU2VlIFNldE92ZXJsYXlTb3J0T3JkZXIgZm9yIGhvdyB0aGlzIHdvcmtzLiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5U29ydE9yZGVyKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpwdW5Tb3J0T3JkZXIg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBvdmVybGF5
IHF1YWQgaW4gbWV0ZXJzLiBCeSBkZWZhdWx0IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBvbiBhIHF1
YWQgdGhhdCBpcyAxIG1ldGVyIGFjcm9zcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5V2lkdGhJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBmbG9hdCBmV2lkdGhJbk1ldGVycyApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogUmV0dXJucyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkgcXVhZCBpbiBtZXRlcnMuIEJ5
IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVhZCB0aGF0IGlzIDEgbWV0ZXIg
YWNyb3NzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJs
YXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0
ICpwZldpZHRoSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEZvciBoaWdoLXF1
YWxpdHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIHNldHMgdGhlIGRpc3RhbmNlIHJhbmdlIGluIG1l
dGVycyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxseSBjdXJ2ZQorICAgICAg
ICAgICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAgTWluIGlzIGRpc3RhbmNl
IGlzIHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4gIE1heCBpcyB3aGVuIGxl
YXN0IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgZk1heERp
c3RhbmNlSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEZvciBoaWdoLXF1YWxp
dHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIGdldHMgdGhlIGRpc3RhbmNlIHJhbmdlIGluIG1ldGVy
cyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxseSBjdXJ2ZQorICAgICAgICAg
ICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAgTWluIGlzIGRpc3RhbmNlIGlz
IHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4gIE1heCBpcyB3aGVuIGxlYXN0
IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBmbG9hdCAqcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCAqcGZNYXhE
aXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjb2xv
cnNwYWNlIHRoZSBvdmVybGF5IHRleHR1cmUncyBkYXRhIGlzIGluLiAgRGVmYXVsdHMgdG8gJ2F1
dG8nLgorICAgICAgICAgICAgICAqIElmIHRoZSB0ZXh0dXJlIG5lZWRzIHRvIGJlIHJlc29sdmVk
LCB5b3Ugc2hvdWxkIGNhbGwgU2V0T3ZlcmxheVRleHR1cmUgd2l0aCB0aGUgYXBwcm9wcmlhdGUg
Y29sb3JzcGFjZSBpbnN0ZWFkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBvdmVybGF5J3MgY3VycmVudCBjb2xvcnNwYWNlIHNldHRp
bmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlU
ZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFQ29s
b3JTcGFjZSAqcGVUZXh0dXJlQ29sb3JTcGFjZSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9yIHRoZSBvdmVybGF5LiBVViBN
aW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXggaXMgdGhlIGxvd2VyIHJpZ2h0
IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29u
c3QgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJvdW5kcyApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9yIHRo
ZSBvdmVybGF5LiBVViBNaW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXggaXMg
dGhlIGxvd2VyIHJpZ2h0IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJvdW5kcyApID0g
MDsKKworICAgICAgICAgICAgICAvKiogR2V0cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhpbmQg
dGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3Zlcmxh
eVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjaGFy
ICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBIbWRDb2xvcl90ICpwQ29sb3IsIHZy
OjpFVlJPdmVybGF5RXJyb3IgKnBFcnJvciApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0
cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhpbmQgdGhpcyBvdmVybGF5IGFuZCB0aGUgdmVydGV4
IGNvbG9yIHRvIHVzZSwgcGFzcyBudWxsIGZvciBwQ29sb3IgdG8gbWF0Y2ggdGhlIG92ZXJsYXlz
IHZlcnRleCBjb2xvci4gCisgICAgICAgICAgICAgICAgICAgICBUaGUgbW9kZWwgaXMgc2NhbGVk
IGJ5IHRoZSBzYW1lIGFtb3VudCBhcyB0aGUgb3ZlcmxheSwgd2l0aCBhIGRlZmF1bHQgb2YgMW0u
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
UmVuZGVyTW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0
IGNoYXIgKnBjaFJlbmRlck1vZGVsLCBjb25zdCBIbWRDb2xvcl90ICpwQ29sb3IgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSB0eXBlIG9mIHRoaXMgb3Zl
cmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zlcmxh
eVRyYW5zZm9ybVR5cGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVy
bGF5VHJhbnNmb3JtVHlwZSAqcGVUcmFuc2Zvcm1UeXBlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gYWJzb2x1dGUgdHJhY2tpbmcgb3JpZ2luLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3Jt
QWJzb2x1dGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0VHJh
Y2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyBhYnNvbHV0ZS4gUmV0dXJucyBhbiBlcnJvciBp
ZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICpwZVRy
YWNraW5nT3JpZ2luLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0
byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3JtIG9mIHRoZSBzcGVjaWZpZWQgdHJhY2tlZCBkZXZp
Y2UuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlU
cmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2VkRGV2aWNlLCBjb25zdCBIbWRN
YXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlmIGl0IGlzIHJlbGF0aXZlIHRv
IGEgdHJhY2tlZCBkZXZpY2UuIFJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBz
b21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWREZXZp
Y2UsIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gZHJhdyB0aGUg
b3ZlcmxheSBvbiBhIHJlbmRlcm1vZGVsIGNvbXBvbmVudCBtZXNoIGluc3RlYWQgb2YgYSBxdWFk
LiBUaGlzIHdpbGwgb25seSBkcmF3IHdoZW4gdGhlIHN5c3RlbSBpcworICAgICAgICAgICAgICAq
IGRyYXdpbmcgdGhlIGRldmljZS4gT3ZlcmxheXMgd2l0aCB0aGlzIHRyYW5zZm9ybSB0eXBlIGNh
bm5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5E
ZXZpY2VJbmRleCwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGluZm9ybWF0aW9uIHdoZW4gdGhlIG92ZXJs
YXkgaXMgcmVuZGVyaW5nIG9uIGEgY29tcG9uZW50LiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVu
dCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhf
dCAqcHVuRGV2aWNlSW5kZXgsIGNoYXIgKnBjaENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVuQ29t
cG9uZW50TmFtZVNpemUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5z
Zm9ybSBpZiBpdCBpcyByZWxhdGl2ZSB0byBhbm90aGVyIG92ZXJsYXkuIFJldHVybnMgYW4gZXJy
b3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtT3ZlcmxheVJl
bGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUhhbmRs
ZV90ICp1bE92ZXJsYXlIYW5kbGVQYXJlbnQsIEhtZE1hdHJpeDM0X3QgKnBtYXRQYXJlbnRPdmVy
bGF5VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3JtIG9m
IHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gVGhpcyBvdmVybGF5cyB2aXNpYmlsaXR5IHdpbGwgYWxz
byB0cmFjayB0aGUgcGFyZW50cyB2aXNpYmlsaXR5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtT3ZlcmxheVJlbGF0aXZlKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZVBhcmVudCwgY29uc3QgSG1kTWF0cml4MzRfdCAqcG1hdFBhcmVudE92ZXJsYXlU
b092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNob3dzIHRoZSBW
UiBvdmVybGF5LiAgRm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJvYXJkIE1h
bmFnZXIgaXMgYWxsb3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNob3dPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEhpZGVzIHRoZSBWUiBvdmVybGF5LiAg
Rm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJvYXJkIE1hbmFnZXIgaXMgYWxs
b3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIEhpZGVPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgb3ZlcmxheSBpcyB2aXNp
YmxlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNPdmVybGF5VmlzaWJsZSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBHZXQgdGhlIHRyYW5zZm9ybSBpbiAzZCBzcGFjZSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZp
YyAyZCBwb2ludCBpbiB0aGUgb3ZlcmxheSdzIGNvb3JkaW5hdGUgc3BhY2UgKHdoZXJlIDAsMCBp
cyB0aGUgbG93ZXIgbGVmdCkuIC1aIHBvaW50cyBvdXQgb2YgdGhlIG92ZXJsYXkgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNv
b3JkaW5hdGVzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5P
dmVybGF5LCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgICAgICAgICAvLyBPdmVybGF5IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAg
ICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZl
bnQgb24gdGhlIG92ZXJsYXkncyBldmVudCBxdWV1ZSwgaWYgdGhlcmUgaXMgb25lLiAKKyAgICAg
ICAgICAgICAgKiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzIHRoaXMgbWV0aG9kIHJldHVybnMgZmFs
c2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgVlJFdmVu
dF90IHN0cnVjdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgUG9sbE5leHRPdmVybGF5
RXZlbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJFdmVudF90ICpwRXZl
bnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBjdXJyZW50IGlucHV0IHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIG92ZXJsYXku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1
dE1ldGhvZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1
dE1ldGhvZCAqcGVJbnB1dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0
aGUgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUlucHV0TWV0aG9kKCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1
dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgbW91c2Ugc2NhbGlu
ZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVudHMuIFRoZSBhY3R1YWwgdGV4dHVy
ZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMgaXMKKyAgICAgICAgICAgICAgKiB0
eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxzLiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2FsZSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBIbWRWZWN0b3IyX3QgKnB2ZWNNb3Vz
ZVNjYWxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBtb3VzZSBzY2FsaW5n
IGZhY3RvciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4gVGhlIGFjdHVhbCB0ZXh0dXJl
IG1heSBiZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcworICAgICAgICAgICAgICAqIHR5
cGljYWxseSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMgKG5vdCBpbiB3
b3JsZCBzcGFjZSkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNv
bnN0IEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIENvbXB1dGVzIHRoZSBvdmVybGF5LXNwYWNlIHBpeGVsIGNvb3JkaW5hdGVzIG9mIHdoZXJl
IHRoZSByYXkgaW50ZXJzZWN0cyB0aGUgb3ZlcmxheSB3aXRoIHRoZQorICAgICAgICAgICAgICAq
IHNwZWNpZmllZCBzZXR0aW5ncy4gUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBubyBpbnRlcnNl
Y3Rpb24uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBDb21wdXRlT3ZlcmxheUludGVy
c2VjdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBWUk92ZXJs
YXlJbnRlcnNlY3Rpb25QYXJhbXNfdCAqcFBhcmFtcywgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVz
dWx0c190ICpwUmVzdWx0cyApID0gMDsKKworICAgICAgICAgICAgICAvKiogUHJvY2Vzc2VzIG1v
dXNlIGlucHV0IGZyb20gdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIGFzIHRob3VnaCBpdCB3ZXJl
IGEgbW91c2UgcG9pbnRlZCBhdCBhIGNvbXBvc2l0b3Igb3ZlcmxheSB3aXRoIHRoZQorICAgICAg
ICAgICAgICAqIHNwZWNpZmllZCBzZXR0aW5ncy4gVGhlIGNvbnRyb2xsZXIgaXMgdHJlYXRlZCBs
aWtlIGEgbGFzZXIgcG9pbnRlciBvbiB0aGUgLXogYXhpcy4gVGhlIHBvaW50IHdoZXJlIHRoZSBs
YXNlciBwb2ludGVyIHdvdWxkCisgICAgICAgICAgICAgICogaW50ZXJzZWN0IHdpdGggdGhlIG92
ZXJsYXkgaXMgdGhlIG1vdXNlIHBvc2l0aW9uLCB0aGUgdHJpZ2dlciBpcyBsZWZ0IG1vdXNlLCBh
bmQgdGhlIHRyYWNrIHBhZCBpcyByaWdodCBtb3VzZS4gCisgICAgICAgICAgICAgICoKKyAgICAg
ICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY29udHJvbGxlciBpcyBwb2ludGVkIGF0IHRo
ZSBvdmVybGF5IGFuZCBhbiBldmVudCB3YXMgZ2VuZXJhdGVkLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5D
b250cm9sbGVyRGV2aWNlSW5kZXggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgaXMgdGhlIGhvdmVyIHRhcmdldC4gQW4gb3Zl
cmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0IHdoZW4gaXQgaXMgdGhlIGxhc3Qgb3ZlcmxheSAibW91
c2VkIG92ZXIiIAorICAgICAgICAgICAgICAqIGJ5IHRoZSB2aXJ0dWFsIG1vdXNlIHBvaW50ZXIg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzSG92ZXJUYXJnZXRPdmVybGF5KCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFJldHVybnMgdGhlIGN1cnJlbnQgR2FtZXBhZCBmb2N1cyBvdmVybGF5ICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgdnI6OlZST3ZlcmxheUhhbmRsZV90IEdldEdhbWVwYWRGb2N1c092ZXJsYXko
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGN1cnJlbnQgR2FtZXBhZCBmb2N1
cyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldEdh
bWVwYWRGb2N1c092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsTmV3Rm9jdXNPdmVybGF5ICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIGFuIG92ZXJsYXkncyBuZWlnaGJvci4gVGhp
cyB3aWxsIGFsc28gc2V0IHRoZSBuZWlnaGJvciBvZiB0aGUgInRvIiBvdmVybGF5CisgICAgICAg
ICAgICAgICogdG8gcG9pbnQgYmFjayB0byB0aGUgImZyb20iIG92ZXJsYXkuIElmIGFuIG92ZXJs
YXkncyBuZWlnaGJvciBpcyBzZXQgdG8gaW52YWxpZCBib3RoCisgICAgICAgICAgICAgICogZW5k
cyB3aWxsIGJlIGNsZWFyZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheU5laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92
ZXJsYXlIYW5kbGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90IHVsVG8gKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIENoYW5nZXMgdGhlIEdhbWVwYWQgZm9jdXMgZnJvbSBvbmUgb3Zlcmxh
eSB0byBvbmUgb2YgaXRzIG5laWdoYm9ycy4gUmV0dXJucyBWUk92ZXJsYXlFcnJvcl9Ob05laWdo
Ym9yIGlmIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICogbmVpZ2hib3IgaW4gdGhhdCBkaXJl
Y3Rpb24gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgTW92ZUdhbWVw
YWRGb2N1c1RvTmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3Zlcmxh
eUhhbmRsZV90IHVsRnJvbSApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3Zlcmxh
eSB0ZXh0dXJlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFRleHR1cmUgdG8g
ZHJhdyBmb3IgdGhlIG92ZXJsYXkuIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5
IHRoZSBvdmVybGF5J3MgY3JlYXRvciBvciByZW5kZXJlciBwcm9jZXNzIChzZWUgU2V0T3Zlcmxh
eVJlbmRlcmluZ1BpZCkgLgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogT3BlbkdM
IGRpcnR5IHN0YXRlOgorICAgICAgICAgICAgICAqICAgICAgIGdsQmluZFRleHR1cmUKKyAgICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgVGV4
dHVyZV90ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogVXNlIHRoaXMgdG8g
dGVsbCB0aGUgb3ZlcmxheSBzeXN0ZW0gdG8gcmVsZWFzZSB0aGUgdGV4dHVyZSBzZXQgZm9yIHRo
aXMgb3ZlcmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgQ2xl
YXJPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb3ZpZGluZyB0
aGUgZGF0YSBhcyBhIHN0cmVhbSBvZiBieXRlcywgYnV0IHRoZXJlIGlzIGFuIHVwcGVyIGJvdW5k
IG9uIGRhdGEgCisgICAgICAgICAgICAgICogdGhhdCBjYW4gYmUgc2VudC4gVGhpcyBmdW5jdGlv
biBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkncyByZW5kZXJlciBwcm9jZXNzLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmF3KCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnB2QnVmZmVyLCB1aW50MzJf
dCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdWludDMyX3QgdW5EZXB0aCApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50ZXJmYWNlIGZvciBwcm92aWRpbmcgdGhlIGlt
YWdlIHRocm91Z2ggYSBmaWxlbmFtZTogY2FuIGJlIHBuZyBvciBqcGcsIGFuZCBzaG91bGQgbm90
IGJlIGJpZ2dlciB0aGFuIDE5MjB4MTA4MC4KKyAgICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9u
IGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJlbmRlcmVyIHByb2Nlc3MgKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZyb21GaWxl
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIgKnBjaEZpbGVQ
YXRoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIG5hdGl2ZSB0ZXh0dXJlIGhh
bmRsZS9kZXZpY2UgZm9yIGFuIG92ZXJsYXkgeW91IGhhdmUgY3JlYXRlZC4KKyAgICAgICAgICAg
ICAgKiBPbiB3aW5kb3dzIHRoaXMgaGFuZGxlIHdpbGwgYmUgYSBJRDNEMTFTaGFkZXJSZXNvdXJj
ZVZpZXcgd2l0aCBhIElEM0QxMVRleHR1cmUyRCBib3VuZC4KKyAgICAgICAgICAgICAgKgorICAg
ICAgICAgICAgICAqIFRoZSB0ZXh0dXJlIHdpbGwgYWx3YXlzIGJlIHNpemVkIHRvIG1hdGNoIHRo
ZSBiYWNraW5nIHRleHR1cmUgeW91IHN1cHBsaWVkIGluIFNldE92ZXJsYXlUZXh0dXJlIGFib3Zl
LgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogWW91IE1VU1QgY2FsbCBSZWxlYXNl
TmF0aXZlT3ZlcmxheUhhbmRsZSgpIHdpdGggcE5hdGl2ZVRleHR1cmVIYW5kbGUgb25jZSB5b3Ug
YXJlIGRvbmUgd2l0aCB0aGlzIHRleHR1cmUuCisgICAgICAgICAgICAgICoKKyAgICAgICAgICAg
ICAgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSBpcyBhbiBPVVRQVVQsIGl0IHdpbGwgYmUgYSBwb2lu
dGVyIHRvIGEgSUQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICouCisgICAgICAgICAgICAgICogcE5h
dGl2ZVRleHR1cmVSZWYgaXMgYW4gSU5QVVQgYW5kIHNob3VsZCBiZSBhIElEM0QxMVJlc291cmNl
ICouIFRoZSBkZXZpY2UgdXNlZCBieSBwTmF0aXZlVGV4dHVyZVJlZiB3aWxsIGJlIHVzZWQgdG8g
YmluZCBwTmF0aXZlVGV4dHVyZUhhbmRsZS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqKnBOYXRpdmVUZXh0dXJlSGFuZGxlLCB2b2lk
ICpwTmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKnBXaWR0aCwgdWludDMyX3QgKnBIZWlnaHQs
IHVpbnQzMl90ICpwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUgKnBBUElUeXBlLCBFQ29sb3JT
cGFjZSAqcENvbG9yU3BhY2UsIFZSVGV4dHVyZUJvdW5kc190ICpwVGV4dHVyZUJvdW5kcyApID0g
MDsKKworICAgICAgICAgICAgICAvKiogUmVsZWFzZSB0aGUgcE5hdGl2ZVRleHR1cmVIYW5kbGUg
cHJvdmlkZWQgZnJvbSB0aGUgR2V0T3ZlcmxheVRleHR1cmUgY2FsbCwgdGhpcyBhbGxvd3MgdGhl
IHN5c3RlbSB0byBmcmVlIHRoZSB1bmRlcmx5aW5nIEdQVSByZXNvdXJjZXMgZm9yIHRoaXMgb2Jq
ZWN0LAorICAgICAgICAgICAgICAqIHNvIG9ubHkgZG8gaXQgb25jZSB5b3Ugc3RvcCByZW5kZXJp
bmcgdGhpcyB0ZXh0dXJlLgorICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSggVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwTmF0aXZlVGV4dHVyZUhhbmRsZSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBzaXplIG9mIHRoZSBvdmVybGF5IHRleHR1cmUg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1
cmVTaXplKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpwV2lk
dGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8g
RGFzaGJvYXJkIE92ZXJsYXkgTWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIENy
ZWF0ZXMgYSBkYXNoYm9hcmQgb3ZlcmxheSBhbmQgcmV0dXJucyBpdHMgaGFuZGxlICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2FyZE92ZXJsYXko
IGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlGcmllbmRs
eU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUsIFZST3ZlcmxheUhhbmRsZV90
ICpwVGh1bWJuYWlsSGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRy
dWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxlICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBJc0Rhc2hib2FyZFZpc2libGUoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHJldHVy
bnMgdHJ1ZSBpZiB0aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgYW5kIHRoZSBzcGVjaWZpZWQgb3Zl
cmxheSBpcyB0aGUgYWN0aXZlIHN5c3RlbSBPdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgZGFzaGJvYXJk
IG92ZXJsYXkgdG8gb25seSBhcHBlYXIgd2hlbiB0aGUgc3BlY2lmaWVkIHByb2Nlc3MgSUQgaGFz
IHNjZW5lIGZvY3VzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEdldHMgdGhlIHByb2Nlc3MgSUQgdGhhdCB0aGlzIGRhc2hib2FyZCBvdmVybGF5IHJlcXVpcmVz
IHRvIGhhdmUgc2NlbmUgZm9jdXMgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcHVuUHJvY2Vzc0lkICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBTaG93cyB0aGUgZGFzaGJvYXJkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgU2hvd0Rhc2hib2FyZCggY29uc3QgY2hhciAqcGNoT3ZlcmxheVRvU2hvdyApID0gMDsK
KworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhY2tlZCBkZXZpY2UgdGhhdCBoYXMg
dGhlIGxhc2VyIHBvaW50ZXIgaW4gdGhlIGRhc2hib2FyZCAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkg
PSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBLZXlib2FyZCBtZXRob2RzCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyoqIFNob3cgdGhlIHZpcnR1YWwga2V5Ym9h
cmQgdG8gYWNjZXB0IGlucHV0ICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTaG93S2V5Ym9hcmQoIEVHYW1lcGFkVGV4dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2Ft
ZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBjb25zdCBjaGFyICpwY2hEZXNj
cmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjb25zdCBjaGFyICpwY2hFeGlzdGluZ1RleHQs
IGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlICkgPSAwOworCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZEZvck92ZXJsYXko
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUdhbWVwYWRUZXh0SW5wdXRNb2Rl
IGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNv
bnN0IGNoYXIgKnBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNvbnN0IGNoYXIg
KnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFs
dWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgdGV4dCB0aGF0IHdhcyBlbnRl
cmVkIGludG8gdGhlIHRleHQgaW5wdXQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0S2V5Ym9hcmRUZXh0KCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVGV4dCwgdWludDMy
X3QgY2NoVGV4dCApID0gMDsKKworICAgICAgICAgICAgICAvKiogSGlkZSB0aGUgdmlydHVhbCBr
ZXlib2FyZCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEhpZGVLZXlib2FyZCgpID0g
MDsKKworICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5Ym9hcmQg
aW4gd29ybGQgc3BhY2UgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRLZXlib2Fy
ZFRyYW5zZm9ybUFic29sdXRlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmln
aW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFu
c2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0aGUgcG9zaXRpb24gb2YgdGhl
IGtleWJvYXJkIGluIG92ZXJsYXkgc3BhY2UgYnkgdGVsbGluZyBpdCB0byBhdm9pZCBhIHJlY3Rh
bmdsZSBpbiB0aGUgb3ZlcmxheS4gUmVjdGFuZ2xlIGNvb3JkcyBoYXZlICgwLDApIGluIHRoZSBi
b3R0b20gbGVmdCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEhtZFJl
Y3QyX3QgYXZvaWRSZWN0ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVybGF5
IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNldHMgYSBsaXN0IG9m
IHByaW1pdGl2ZXMgdG8gYmUgdXNlZCBmb3IgY29udHJvbGxlciByYXkgaW50ZXJzZWN0aW9uCisg
ICAgICAgICAgICAgICogdHlwaWNhbGx5IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGlu
IHBpeGVscyAobm90IGluIHdvcmxkIHNwYWNlKS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2soIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90
ICpwTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90
IHVuUHJpbWl0aXZlU2l6ZSA9IHNpemVvZiggVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZV90ICkgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheUZsYWdzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQz
Ml90ICpwRmxhZ3MgKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE1lc3NhZ2UgYm94
IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNob3cgdGhlIG1lc3NhZ2Ugb3Zl
cmxheS4gVGhpcyB3aWxsIGJsb2NrIGFuZCByZXR1cm4geW91IGEgcmVzdWx0LiAqKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgU2hvd01lc3NhZ2VPdmVy
bGF5KCBjb25zdCBjaGFyKiBwY2hUZXh0LCBjb25zdCBjaGFyKiBwY2hDYXB0aW9uLCBjb25zdCBj
aGFyKiBwY2hCdXR0b24wVGV4dCwgY29uc3QgY2hhciogcGNoQnV0dG9uMVRleHQgPSBudWxscHRy
LCBjb25zdCBjaGFyKiBwY2hCdXR0b24yVGV4dCA9IG51bGxwdHIsIGNvbnN0IGNoYXIqIHBjaEJ1
dHRvbjNUZXh0ID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogSWYgdGhlIGNh
bGxpbmcgcHJvY2VzcyBvd25zIHRoZSBvdmVybGF5IGFuZCBpdCdzIG9wZW4sIHRoaXMgd2lsbCBj
bG9zZSBpdC4gKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDbG9zZU1lc3NhZ2VPdmVy
bGF5KCkgPSAwOworICAgICAgIH07CisKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNiI7CisKK30gLy8gbmFtZXNwYWNl
IHZyCisKKy8vIGl2cnJlbmRlcm1vZGVscy5oCituYW1lc3BhY2UgdnIKK3sKKworc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1ID0gImdk
YzIwMTUiOyAgIC8vIENhbm9uaWNhbCBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgZ2RjIDIwMTUg
d2lyZWQgY29udHJvbGxlciwgcHJvdmlkZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Citz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2Ug
PSAiYmFzZSI7ICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdpdGggYW4gdW5hbWJpZ3VvdXMg
J2Jhc2UnLgorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBv
bmVudF9UaXAgPSAidGlwIjsgICAgICAgICAgIC8vIEZvciBjb250cm9sbGVycyB3aXRoIGFuIHVu
YW1iaWd1b3VzICd0aXAnICh1c2VkIGZvciAnbGFzZXItcG9pbnRpbmcnKQorc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5k
Z3JpcCI7IC8vIE5ldXRyYWwsIGFtYmlkZXh0cm91cyBoYW5kLXBvc2Ugd2hlbiBob2xkaW5nIGNv
bnRyb2xsZXIuIE9uIHBsYW5lIGJldHdlZW4gbmV1dHJhbGx5IHBvc2VkIGluZGV4IGZpbmdlciBh
bmQgdGh1bWIKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfU3RhdHVzID0gInN0YXR1cyI7ICAgICAgICAgICAgICAvLyAxOjEgYXNwZWN0IHJhdGlv
IHN0YXR1cyBhcmVhLCB3aXRoIGNhbm9uaWNhbCBbMCwxXSB1diBtYXBwaW5nCisKKyNwcmFnbWEg
cGFjayggcHVzaCwgOCApCisKKy8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIg
Y29tcG9zaXRvciAqLworZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7CisgICAgICAgVlJSZW5k
ZXJNb2RlbEVycm9yX05vbmUgPSAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5n
ID0gMTAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RTdXBwb3J0ZWQgPSAyMDAsCisg
ICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRBcmcgPSAzMDAsCisgICAgICAgVlJSZW5k
ZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJy
b3JfTm9TaGFwZXMgPSAzMDIsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hh
cGVzID0gMzAzLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMgPSAz
MDQsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlVGV4dHVyZXMgPSAzMDUsCisg
ICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMzA2LAorICAgICAgIFZS
UmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIFZSUmVuZGVy
TW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMgPSAzMDgsCisKKyAgICAgICBWUlJlbmRlck1v
ZGVsRXJyb3JfSW52YWxpZFRleHR1cmUgPSA0MDAsCit9OworCit0eXBlZGVmIHVpbnQzMl90IFZS
Q29tcG9uZW50UHJvcGVydGllczsKKworZW51bSBFVlJDb21wb25lbnRQcm9wZXJ0eQoreworICAg
ICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTdGF0aWMgPSAoMSA8PCAwKSwKKyAgICAgICBWUkNv
bXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9ICgxIDw8IDEpLAorICAgICAgIFZSQ29tcG9uZW50
UHJvcGVydHlfSXNUb3VjaGVkID0gKDEgPDwgMiksCisgICAgICAgVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1ByZXNzZWQgPSAoMSA8PCAzKSwKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzU2Ny
b2xsZWQgPSAoMSA8PCA0KSwKK307CisKKy8qKiBEZXNjcmliZXMgc3RhdGUgaW5mb3JtYXRpb24g
YWJvdXQgYSByZW5kZXItbW9kZWwgY29tcG9uZW50LCBpbmNsdWRpbmcgdHJhbnNmb3JtcyBhbmQg
b3RoZXIgZHluYW1pYyBwcm9wZXJ0aWVzICovCitzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50
U3RhdGVfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRSZW5k
ZXJNb2RlbDsgIC8vIFRyYW5zZm9ybSByZXF1aXJlZCB3aGVuIGRyYXdpbmcgdGhlIGNvbXBvbmVu
dCByZW5kZXIgbW9kZWwKKyAgICAgICBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50
TG9jYWw7ICAgICAgICAvLyBUcmFuc2Zvcm0gYXZhaWxhYmxlIGZvciBhdHRhY2hpbmcgdG8gYSBs
b2NhbCBjb21wb25lbnQgY29vcmRpbmF0ZSBzeXN0ZW0gKC1aIG91dCBmcm9tIHN1cmZhY2UgKQor
ICAgICAgIFZSQ29tcG9uZW50UHJvcGVydGllcyB1UHJvcGVydGllczsKK307CisKKy8qKiBBIHNp
bmdsZSB2ZXJ0ZXggaW4gYSByZW5kZXIgbW9kZWwgKi8KK3N0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0
ZXhfdAoreworICAgICAgIEhtZFZlY3RvcjNfdCB2UG9zaXRpb247ICAgICAgICAgICAgICAvLyBw
b3NpdGlvbiBpbiBtZXRlcnMgaW4gZGV2aWNlIHNwYWNlCisgICAgICAgSG1kVmVjdG9yM190IHZO
b3JtYWw7CisgICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07Cit9OworCisvKiogQSB0ZXh0
dXJlIG1hcCBmb3IgdXNlIG9uIGEgcmVuZGVyIG1vZGVsICovCisjaWYgZGVmaW5lZChfX2xpbnV4
X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5h
bGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNvbXBh
dGliaWxpdHkuIAorI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3QgUmVu
ZGVyTW9kZWxfVGV4dHVyZU1hcF90Cit7CisgICAgICAgdWludDE2X3QgdW5XaWR0aCwgdW5IZWln
aHQ7IC8vIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHRleHR1cmUgbWFwIGluIHBpeGVscworICAg
ICAgIGNvbnN0IHVpbnQ4X3QgKnJ1YlRleHR1cmVNYXBEYXRhOyAgICAgICAvLyBNYXAgdGV4dHVy
ZSBkYXRhLiBBbGwgdGV4dHVyZXMgYXJlIFJHQkEgd2l0aCA4IGJpdHMgcGVyIGNoYW5uZWwgcGVy
IHBpeGVsLiBEYXRhIHNpemUgaXMgd2lkdGggKiBoZWlnaHQgKiA0dWIKK307CisjaWYgZGVmaW5l
ZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyNwcmFnbWEgcGFjayggcG9wICkK
KyNlbmRpZgorCisvKiogIFNlc3Npb24gdW5pcXVlIHRleHR1cmUgaWRlbnRpZmllci4gUmVuZGVy
bW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBzYW1lIHRleHR1cmUgd2lsbCBoYXZlIHRoZSBzYW1lIGlk
LgorSURzIDwwIGRlbm90ZSB0aGUgdGV4dHVyZSBpcyBub3QgcHJlc2VudCAqLworCit0eXBlZGVm
IGludDMyX3QgVGV4dHVyZUlEX3Q7CisKK2NvbnN0IFRleHR1cmVJRF90IElOVkFMSURfVEVYVFVS
RV9JRCA9IC0xOworCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBv
biBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNvbXBhdGliaWxpdHkuIAorI3ByYWdtYSBwYWNr
KCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3QgUmVuZGVyTW9kZWxfdAoreworICAgICAgIGNv
bnN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICpyVmVydGV4RGF0YTsgICAgICAgLy8gVmVydGV4IGRh
dGEgZm9yIHRoZSBtZXNoCisgICAgICAgdWludDMyX3QgdW5WZXJ0ZXhDb3VudDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdmVydGljZXMgaW4g
dGhlIHZlcnRleCBkYXRhCisgICAgICAgY29uc3QgdWludDE2X3QgKnJJbmRleERhdGE7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2VzIGludG8gdGhlIHZlcnRleCBk
YXRhIGZvciBlYWNoIHRyaWFuZ2xlCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHRyaWFuZ2xlcyBp
biB0aGUgbWVzaC4gSW5kZXggY291bnQgaXMgMyAqIFRyaWFuZ2xlQ291bnQKKyAgICAgICBUZXh0
dXJlSURfdCBkaWZmdXNlVGV4dHVyZUlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT
ZXNzaW9uIHVuaXF1ZSB0ZXh0dXJlIGlkZW50aWZpZXIuIFJlbmRlcm1vZGVscyB3aGljaCBzaGFy
ZSB0aGUgc2FtZSB0ZXh0dXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSBpZC4gPDAgPT0gdGV4dHVyZSBu
b3QgcHJlc2VudAorfTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExF
X18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKworc3RydWN0IFJlbmRlck1vZGVs
X0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29sIGJTY3JvbGxXaGVlbFZpc2li
bGU7IC8vIGlzIHRoaXMgY29udHJvbGxlciBjdXJyZW50bHkgc2V0IHRvIGJlIGluIGEgc2Nyb2xs
IHdoZWVsIG1vZGUKK307CisKKyNwcmFnbWEgcGFjayggcG9wICkKKworY2xhc3MgSVZSUmVuZGVy
TW9kZWxzCit7CitwdWJsaWM6CisKKyAgICAgICAvKiogTG9hZHMgYW5kIHJldHVybnMgYSByZW5k
ZXIgbW9kZWwgZm9yIHVzZSBpbiB0aGUgYXBwbGljYXRpb24uIHBjaFJlbmRlck1vZGVsTmFtZSBz
aG91bGQgYmUgYSByZW5kZXIgbW9kZWwgbmFtZQorICAgICAgICogZnJvbSB0aGUgUHJvcF9SZW5k
ZXJNb2RlbE5hbWVfU3RyaW5nIHByb3BlcnR5IG9yIGFuIGFic29sdXRlIHBhdGggbmFtZSB0byBh
IHJlbmRlciBtb2RlbCBvbiBkaXNrLiAKKyAgICAgICAqCisgICAgICAgKiBUaGUgcmVzdWx0aW5n
IHJlbmRlciBtb2RlbCBpcyB2YWxpZCB1bnRpbCBWUl9TaHV0ZG93bigpIGlzIGNhbGxlZCBvciB1
bnRpbCBGcmVlUmVuZGVyTW9kZWwoKSBpcyBjYWxsZWQuIFdoZW4gdGhlIAorICAgICAgICogYXBw
bGljYXRpb24gaXMgZmluaXNoZWQgd2l0aCB0aGUgcmVuZGVyIG1vZGVsIGl0IHNob3VsZCBjYWxs
IEZyZWVSZW5kZXJNb2RlbCgpIHRvIGZyZWUgdGhlIG1lbW9yeSBhc3NvY2lhdGVkCisgICAgICAg
KiB3aXRoIHRoZSBtb2RlbC4KKyAgICAgICAqCisgICAgICAgKiBUaGUgbWV0aG9kIHJldHVybnMg
VlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgd2hpbGUgdGhlIHJlbmRlciBtb2RlbCBpcyBzdGls
bCBiZWluZyBsb2FkZWQuCisgICAgICAgKiBUaGUgbWV0aG9kIHJldHVybnMgVlJSZW5kZXJNb2Rl
bEVycm9yX05vbmUgb25jZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2Ugd2lsbCByZXR1
cm4gYW4gZXJyb3IuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRS
ZW5kZXJNb2RlbF9Bc3luYyggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBSZW5kZXJN
b2RlbF90ICoqcHBSZW5kZXJNb2RlbCApID0gMDsKKworICAgICAgIC8qKiBGcmVlcyBhIHByZXZp
b3VzbHkgcmV0dXJuZWQgcmVuZGVyIG1vZGVsCisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8gY2Fs
bCB0aGlzIG9uIGEgbnVsbCBwdHIuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVSZW5kZXJN
b2RlbCggUmVuZGVyTW9kZWxfdCAqcFJlbmRlck1vZGVsICkgPSAwOworCisgICAgICAgLyoqIExv
YWRzIGFuZCByZXR1cm5zIGEgdGV4dHVyZSBmb3IgdXNlIGluIHRoZSBhcHBsaWNhdGlvbi4gKi8K
KyAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFRleHR1cmVfQXN5bmMoIFRl
eHR1cmVJRF90IHRleHR1cmVJZCwgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICoqcHBUZXh0dXJl
ICkgPSAwOworCisgICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNseSByZXR1cm5lZCB0ZXh0dXJl
CisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG9uIGEgbnVsbCBwdHIuICovCisg
ICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0dXJlKCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3Qg
KnBUZXh0dXJlICkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMgYSBEM0QxMSB0ZXh0dXJlIGFu
ZCBsb2FkcyBkYXRhIGludG8gaXQuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVy
cm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAq
cEQzRDExRGV2aWNlLCB2b2lkICoqcHBEM0QxMVRleHR1cmUyRCApID0gMDsKKworICAgICAgIC8q
KiBIZWxwZXIgZnVuY3Rpb24gdG8gY29weSB0aGUgYml0cyBpbnRvIGFuIGV4aXN0aW5nIHRleHR1
cmUuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVy
ZUQzRDExX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQgKnBEc3RUZXh0dXJlICkg
PSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGZyZWUgdGV4dHVyZXMgY3JlYXRlZCB3aXRo
IExvYWRUZXh0dXJlRDNEMTFfQXN5bmMgaW5zdGVhZCBvZiBjYWxsaW5nIFJlbGVhc2Ugb24gdGhl
bS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmVEM0QxMSggdm9pZCAqcEQzRDEx
VGV4dHVyZTJEICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGdldCB0aGUgbmFtZXMg
b2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICBJbmRleCBkb2VzIG5vdCBjb3JyZWxhdGUgdG8g
YSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0CisgICAgICAgKiBpcyBvbmx5IHVzZWQgZm9yIGl0
ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgcmVuZGVyIG1vZGVscy4gIElmIHRoZSBpbmRleCBp
cyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4KKyAgICAgICAqIE90
aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciByZXF1aXJlZCBm
b3IgdGhlIG5hbWUuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbE5h
bWUoIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBj
aFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2RlbE5hbWVMZW4gKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxz
LiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxDb3VudCgpID0gMDsK
KworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBjb21wb25lbnRzIG9mIHRoZSBz
cGVjaWZpZWQgcmVuZGVyIG1vZGVsLgorICAgICAgICogIENvbXBvbmVudHMgYXJlIHVzZWZ1bCB3
aGVuIGNsaWVudCBhcHBsaWNhdGlvbiB3aXNoIHRvIGRyYXcsIGxhYmVsLCBvciBvdGhlcndpc2Ug
aW50ZXJhY3Qgd2l0aCBjb21wb25lbnRzIG9mIHRyYWNrZWQgb2JqZWN0cy4KKyAgICAgICAqICBF
eGFtcGxlcyBjb250cm9sbGVyIGNvbXBvbmVudHM6CisgICAgICAgKiAgIHJlbmRlcmFibGUgdGhp
bmdzIHN1Y2ggYXMgdHJpZ2dlcnMsIGJ1dHRvbnMKKyAgICAgICAqICAgbm9uLXJlbmRlcmFibGUg
dGhpbmdzIHdoaWNoIGluY2x1ZGUgY29vcmRpbmF0ZSBzeXN0ZW1zIHN1Y2ggYXMgJ3RpcCcsICdi
YXNlJywgYSBuZXV0cmFsIGNvbnRyb2xsZXIgYWdub3N0aWMgaGFuZC1wb3NlCisgICAgICAgKiAg
IElmIGFsbCBjb250cm9sbGVyIGNvbXBvbmVudHMgYXJlIGVudW1lcmF0ZWQgYW5kIHJlbmRlcmVk
LCBpdCB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gZHJhd2luZyB0aGUgdHJhZGl0aW9uYWwgcmVuZGVy
IG1vZGVsCisgICAgICAgKiAgIFJldHVybnMgMCBpZiBjb21wb25lbnRzIG5vdCBzdXBwb3J0ZWQs
ID4wIG90aGVyd2lzZSAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50Q291
bnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSApID0gMDsKKworICAgICAgIC8qKiBV
c2UgdGhpcyB0byBnZXQgdGhlIG5hbWVzIG9mIGF2YWlsYWJsZSBjb21wb25lbnRzLiAgSW5kZXgg
ZG9lcyBub3QgY29ycmVsYXRlIHRvIGEgdHJhY2tlZCBkZXZpY2UgaW5kZXgsIGJ1dAorICAgICAg
ICogaXMgb25seSB1c2VkIGZvciBpdGVyYXRpbmcgb3ZlciBhbGwgYXZhaWxhYmxlIGNvbXBvbmVu
dHMuICBJZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0
dXJuIDAuCisgICAgICAgKiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRo
ZSBidWZmZXIgcmVxdWlyZWQgZm9yIHRoZSBuYW1lLiAqLworICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0Q29tcG9uZW50TmFtZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50
MzJfdCB1bkNvbXBvbmVudEluZGV4LCBWUl9PVVRfU1RSSU5HKCApIGNoYXIgKnBjaENvbXBvbmVu
dE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbiApID0gMDsKKworICAgICAgIC8qKiBH
ZXQgdGhlIGJ1dHRvbiBtYXNrIGZvciBhbGwgYnV0dG9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcyBj
b21wb25lbnQKKyAgICAgICAqICAgSWYgbm8gYnV0dG9ucyAob3IgYXhlcykgYXJlIGFzc29jaWF0
ZWQgd2l0aCB0aGlzIGNvbXBvbmVudCwgcmV0dXJuIDAKKyAgICAgICAqICAgTm90ZTogbXVsdGlw
bGUgY29tcG9uZW50cyBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIGJ1dHRvbi4gRXg6
IHR3byBncmlwIGJ1dHRvbnMgb24gYSBzaW5nbGUgY29udHJvbGxlci4KKyAgICAgICAqICAgTm90
ZTogQSBzaW5nbGUgY29tcG9uZW50IG1heSBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgYnV0
dG9ucy4gRXg6IEEgdHJhY2twYWQgd2hpY2ggYWxzbyBwcm92aWRlcyAiRC1wYWQiIGZ1bmN0aW9u
YWxpdHkgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldENvbXBvbmVudEJ1dHRvbk1hc2so
IGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50
TmFtZSApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBnZXQgdGhlIHJlbmRlciBtb2Rl
bCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIHJlbmRlcm1vZGUvY29tcG9uZW50IGNvbWJpbmF0aW9u
LCB0byBiZSBwYXNzZWQgdG8gTG9hZFJlbmRlck1vZGVsLgorICAgICAgICogSWYgdGhlIGNvbXBv
bmVudCBuYW1lIGlzIG91dCBvZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgor
ICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldENv
bXBvbmVudFJlbmRlck1vZGVsTmFtZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBj
b25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lLCBWUl9PVVRfU1RSSU5HKCApIGNoYXIgKnBjaENv
bXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5h
bWVMZW4gKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8gcXVlcnkgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIGNvbXBvbmVudCwgYXMgYSBmdW5jdGlvbiBvZiB0aGUgY29udHJvbGxlciBzdGF0
ZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZHluYW1pYyBjb250cm9sbGVyIGNvbXBvbmVudHMg
KGV4OiB0cmlnZ2VyKSB2YWx1ZXMgd2lsbCByZWZsZWN0IGNvbXBvbmVudCBtb3Rpb25zCisgICAg
ICAgKiBGb3Igc3RhdGljIGNvbXBvbmVudHMgdGhpcyB3aWxsIHJldHVybiBhIGNvbnNpc3RlbnQg
dmFsdWUgaW5kZXBlbmRlbnQgb2YgdGhlIFZSQ29udHJvbGxlclN0YXRlX3QKKyAgICAgICAqCisg
ICAgICAgKiBJZiB0aGUgcGNoUmVuZGVyTW9kZWxOYW1lIG9yIHBjaENvbXBvbmVudE5hbWUgaXMg
aW52YWxpZCwgdGhpcyB3aWxsIHJldHVybiBmYWxzZSAoYW5kIHRyYW5zZm9ybXMgd2lsbCBiZSBz
ZXQgdG8gaWRlbnRpdHkpLgorICAgICAgICogT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZQorICAgICAg
ICogTm90ZTogRm9yIGR5bmFtaWMgb2JqZWN0cywgdmlzaWJpbGl0eSBtYXkgYmUgZHluYW1pYy4g
KEkuZS4sIHRydWUvZmFsc2Ugd2lsbCBiZSByZXR1cm5lZCBiYXNlZCBvbiBjb250cm9sbGVyIHN0
YXRlIGFuZCBjb250cm9sbGVyIG1vZGUgc3RhdGUgKSAqLworICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDb21wb25lbnRTdGF0ZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25zdCBj
aGFyICpwY2hDb21wb25lbnROYW1lLCBjb25zdCB2cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqcENv
bnRyb2xsZXJTdGF0ZSwgY29uc3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCAq
cFN0YXRlLCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICpwQ29tcG9uZW50U3RhdGUgKSA9
IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSByZW5kZXIgbW9kZWwgaGFzIGEg
Y29tcG9uZW50IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lICovCisgICAgICAgdmlydHVhbCBib29s
IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUs
IGNvbnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyB0aGUgVVJMIG9mIHRoZSB0aHVtYm5haWwgaW1hZ2UgZm9yIHRoaXMgcmVuZGVybW9kZWwgKi8K
KyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKCBjb25z
dCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hUaHVt
Ym5haWxVUkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCB2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciAqcGVFcnJvciApID0gMDsKKworICAgICAgIC8qKiBQcm92aWRlcyBhIHJlbmRlciBtb2Rl
bCBwYXRoIHRoYXQgd2lsbCBsb2FkIHRoZSB1bnNraW5uZWQgbW9kZWwgaWYgdGhlIG1vZGVsIG5h
bWUgcHJvdmlkZWQgaGFzIGJlZW4gcmVwbGFjZSBieSB0aGUgdXNlci4gSWYgdGhlIG1vZGVsCisg
ICAgICAgKiBoYXNuJ3QgYmVlbiByZXBsYWNlZCB0aGUgcGF0aCB2YWx1ZSB3aWxsIHN0aWxsIGJl
IGEgdmFsaWQgcGF0aCB0byBsb2FkIHRoZSBtb2RlbC4gUGFzcyB0aGlzIHRvIExvYWRSZW5kZXJN
b2RlbF9Bc3luYywgZXRjLiB0byBsb2FkIHRoZQorICAgICAgICogbW9kZWwuICovCisgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCggY29uc3QgY2hhciAq
cGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoT3JpZ2luYWxQYXRo
LCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgdnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKnBl
RXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYSByZW5kZXIg
bW9kZWwgZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFJlbmRlck1vZGVs
RXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yICkgPSAwOwor
fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiA9
ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKworfQorCisKKy8vIGl2cmV4dGVuZGVkZGlzcGxheS5o
CituYW1lc3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBOT1RFOiBVc2Ugb2YgdGhpcyBpbnRlcmZh
Y2UgaXMgbm90IHJlY29tbWVuZGVkIGluIHByb2R1Y3Rpb24gYXBwbGljYXRpb25zLiBJdCB3aWxs
IG5vdCB3b3JrIGZvciBkaXNwbGF5cyB3aGljaCB1c2UKKyAgICAgICAqIGRpcmVjdC10by1kaXNw
bGF5IG1vZGUuIENyZWF0aW5nIG91ciBvd24gd2luZG93IGlzIGFsc28gaW5jb21wYXRpYmxlIHdp
dGggdGhlIFZSIGNvbXBvc2l0b3IgYW5kIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB0aGUgY29tcG9z
aXRvciBpcyBydW5uaW5nLiAqLworICAgICAgIGNsYXNzIElWUkV4dGVuZGVkRGlzcGxheQorICAg
ICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLyoqIFNpemUgYW5kIHBvc2l0
aW9uIHRoYXQgdGhlIHdpbmRvdyBuZWVkcyB0byBiZSBvbiB0aGUgVlIgZGlzcGxheS4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFdpbmRvd0JvdW5kcyggaW50MzJfdCAqcG5YLCBp
bnQzMl90ICpwblksIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHZpZXdwb3J0IGluIHRoZSBmcmFtZSBidWZm
ZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9mIHRoZSBkaXN0b3J0aW9uIGludG8gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCB2b2lkIEdldEV5ZU91dHB1dFZpZXdwb3J0KCBFVlJFeWUgZUV5ZSwgdWlu
dDMyX3QgKnBuWCwgdWludDMyX3QgKnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpw
bkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogW0QzRDEwLzExIE9ubHldCisgICAg
ICAgICAgICAgICogUmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCBhbmQgb3V0cHV0IGluZGV4IHRo
YXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBFbnVtQWRhcHRlcnMgYW5kIEVudW1PdXRwdXRz
CisgICAgICAgICAgICAgICogdG8gY3JlYXRlIHRoZSBkZXZpY2UgYW5kIHN3YXAgY2hhaW4gaW4g
RFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJzIGJvdGggaW5kaWNlcyB3aWxsIGJlIHNl
dCB0byAtMS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdl
dERYR0lPdXRwdXRJbmZvKCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCwgaW50MzJfdCAqcG5BZGFw
dGVyT3V0cHV0SW5kZXggKSA9IDA7CisKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRlZERp
c3BsYXlfMDAxIjsKKworfQorCisKKy8vIGl2cnRyYWNrZWRjYW1lcmEuaAorbmFtZXNwYWNlIHZy
Cit7CisKK2NsYXNzIElWUlRyYWNrZWRDYW1lcmEKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogUmV0
dXJucyBhIHN0cmluZyBmb3IgYW4gZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIg
KkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIGVD
YW1lcmFFcnJvciApID0gMDsKKworICAgICAgIC8qKiBGb3IgY29udmVuaWVuY2UsIHNhbWUgYXMg
dHJhY2tlZCBwcm9wZXJ0eSByZXF1ZXN0IFByb3BfSGFzQ2FtZXJhX0Jvb2wgKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJhKCB2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICpwSGFzQ2FtZXJhICkgPSAwOworCisgICAg
ICAgLyoqIEdldHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICovCisgICAgICAgdmlydHVhbCB2
cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSggdnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCwgdWludDMy
X3QgKnBuRnJhbWVCdWZmZXJTaXplICkgPSAwOworCisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3MoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5
cGUsIHZyOjpIbWRWZWN0b3IyX3QgKnBGb2NhbExlbmd0aCwgdnI6OkhtZFZlY3RvcjJfdCAqcENl
bnRlciApID0gMDsKKworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBH
ZXRDYW1lcmFQcm9qZWN0aW9uKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4
LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpOZWFy
LCBmbG9hdCBmbFpGYXIsIHZyOjpIbWRNYXRyaXg0NF90ICpwUHJvamVjdGlvbiApID0gMDsKKwor
ICAgICAgIC8qKiBBY3F1aXJpbmcgc3RyZWFtaW5nIHNlcnZpY2UgcGVybWl0cyB2aWRlbyBzdHJl
YW1pbmcgZm9yIHRoZSBjYWxsZXIuIFJlbGVhc2luZyBoaW50cyB0aGUgc3lzdGVtIHRoYXQgdmlk
ZW8gc2VydmljZXMgZG8gbm90IG5lZWQgdG8gYmUgbWFpbnRhaW5lZCBmb3IgdGhpcyBjbGllbnQu
CisgICAgICAgKiBJZiB0aGUgY2FtZXJhIGhhcyBub3QgYWxyZWFkeSBiZWVuIGFjdGl2YXRlZCwg
YSBvbmUgdGltZSBzcGluIHVwIG1heSBpbmN1ciBzb21lIGF1dG8gZXhwb3N1cmUgYXMgd2VsbCBh
cyBpbml0aWFsIHN0cmVhbWluZyBmcmFtZSBkZWxheXMuCisgICAgICAgKiBUaGUgY2FtZXJhIHNo
b3VsZCBiZSBjb25zaWRlcmVkIGEgZ2xvYmFsIHJlc291cmNlIGFjY2Vzc2libGUgZm9yIHNoYXJl
ZCBjb25zdW1wdGlvbiBidXQgbm90IGV4Y2x1c2l2ZSB0byBhbnkgY2FsbGVyLgorICAgICAgICog
VGhlIGNhbWVyYSBtYXkgZ28gaW5hY3RpdmUgZHVlIHRvIGxhY2sgb2YgYWN0aXZlIGNvbnN1bWVy
cyBvciBoZWFkc2V0IGlkbGVuZXNzLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciBBY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICpwSGFuZGxl
ICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBSZWxlYXNl
VmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2Vk
Q2FtZXJhICkgPSAwOworCisgICAgICAgLyoqIENvcGllcyB0aGUgaW1hZ2UgZnJhbWUgaW50byBh
IGNhbGxlcidzIHByb3ZpZGVkIGJ1ZmZlci4gVGhlIGltYWdlIGRhdGEgaXMgY3VycmVudGx5IHBy
b3ZpZGVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIgcGl4ZWwuCisgICAgICAgKiBBIGNhbGxl
ciBjYW4gcHJvdmlkZSBudWxsIGZvciB0aGUgZnJhbWVidWZmZXIgb3IgZnJhbWVoZWFkZXIgaWYg
bm90IGRlc2lyZWQuIFJlcXVlc3RpbmcgdGhlIGZyYW1lIGhlYWRlciBmaXJzdCwgZm9sbG93ZWQg
YnkgdGhlIGZyYW1lIGJ1ZmZlciBhbGxvd3MKKyAgICAgICAqIHRoZSBjYWxsZXIgdG8gZGV0ZXJt
aW5lIGlmIHRoZSBmcmFtZSBhcyBhZHZhbmNlZCBwZXIgdGhlIGZyYW1lIGhlYWRlciBzZXF1ZW5j
ZS4gCisgICAgICAgKiBJZiB0aGVyZSBpcyBubyBmcmFtZSBhdmFpbGFibGUgeWV0LCBkdWUgdG8g
aW5pdGlhbCBjYW1lcmEgc3BpbnVwIG9yIHJlLWFjdGl2YXRpb24sIHRoZSBlcnJvciB3aWxsIGJl
IFZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUuCisgICAgICAgKiBJZGVhbGx5
IGEgY2FsbGVyIHNob3VsZCBiZSBwb2xsaW5nIGF0IH4xNm1zIGludGVydmFscyAqLworICAgICAg
IHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbUZyYW1lQnVm
ZmVyKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpwRnJhbWVCdWZmZXIsIHVpbnQz
Ml90IG5GcmFtZUJ1ZmZlclNpemUsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
KnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0gMDsKKworICAgICAg
IC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1lLiAqLworICAgICAgIHZpcnR1YWwgdnI6
OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKnBUZXh0dXJlQm91bmRzLCB1
aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOyAKKworICAgICAgIC8q
KiBBY2Nlc3MgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSBmb3IgdGhlIHNwZWNpZmllZCB0cmFja2Vk
IGNhbWVyYSBzdHJlYW0uCisgICAgICAgKiBUaGUgY2FtZXJhIGZyYW1lIHR5cGUgVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIGlzIG5vdCBzdXBwb3J0ZWQgZGlyZWN0bHkgYXMg
YSBzaGFyZWQgdGV4dHVyZS4gSXQgaXMgYW4gaW50ZXJpb3Igc3VicmVnaW9uIG9mIHRoZSBzaGFy
ZWQgdGV4dHVyZSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkLgor
ICAgICAgICogSW5zdGVhZCwgdXNlIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUoKSB3aXRoIFZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCB0byBkZXRlcm1pbmUgdGhlIHByb3Bl
ciBpbnRlcmlvciBzdWJyZWdpb24gYm91bmRzIGFsb25nIHdpdGggR2V0VmlkZW9TdHJlYW1UZXh0
dXJlRDNEMTEoKSB3aXRoCisgICAgICAgKiBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11
bVVuZGlzdG9ydGVkIHRvIHByb3ZpZGUgdGhlIHRleHR1cmUuIFRoZSBWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIHdpbGwgeWllbGQgYW4gaW1hZ2Ugd2hlcmUgdGhl
IGludmFsaWQgcmVnaW9ucyBhcmUgZGVjb2RlZAorICAgICAgICogYnkgdGhlIGFscGhhIGNoYW5u
ZWwgaGF2aW5nIGEgemVybyBjb21wb25lbnQuIFRoZSB2YWxpZCByZWdpb25zIGFsbCBoYXZlIGEg
bm9uLXplcm8gYWxwaGEgY29tcG9uZW50LiBUaGUgc3VicmVnaW9uIGFzIGRlc2NyaWJlZCBieSBW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQgCisgICAgICAgKiBndWFyYW50ZWVz
IGEgcmVjdGFuZ2xlIHdoZXJlIGFsbCBwaXhlbHMgYXJlIHZhbGlkLiAqLworICAgICAgIHZpcnR1
YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSgg
dnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwg
dm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZy
YW1lSGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0g
MDsKKworICAgICAgIC8qKiBBY2Nlc3MgYSBzaGFyZWQgR0wgdGV4dHVyZSBmb3IgdGhlIHNwZWNp
ZmllZCB0cmFja2VkIGNhbWVyYSBzdHJlYW0gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0woIHZyOjpUcmFja2VkQ2FtZXJh
SGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHZyOjpnbFVJbnRfdCAqcGdsVGV4dHVyZUlkLCB2cjo6Q2FtZXJhVmlkZW9TdHJl
YW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUg
KSA9IDA7CisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VW
aWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENh
bWVyYSwgdnI6OmdsVUludF90IGdsVGV4dHVyZUlkICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24gPSAiSVZSVHJhY2tlZENhbWVy
YV8wMDMiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIGl2cnNjcmVlbnNob3RzLmgKK25h
bWVzcGFjZSB2cgoreworCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdpdGggdGhlIFZSIGNv
bXBvc2l0b3IgKi8KK2VudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgVlJTY3JlZW5z
aG90RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90RXJyb3JfUmVxdWVzdEZhaWxlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9y
X0luY29tcGF0aWJsZVZlcnNpb24gICAgICAgICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBW
UlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSU2NyZWVuc2hvdEVy
cm9yX1NjcmVlbnNob3RBbHJlYWR5SW5Qcm9ncmVzcyAgICAgICA9IDEwOCwKK307CisKKy8qKiBB
bGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGdlbmVyYXRlIHNjcmVlbnNob3RzICovCitjbGFzcyBJ
VlJTY3JlZW5zaG90cworeworcHVibGljOgorICAgICAgIC8qKiBSZXF1ZXN0IGEgc2NyZWVuc2hv
dCBvZiB0aGUgcmVxdWVzdGVkIHR5cGUuCisgICAgICAgICogIEEgcmVxdWVzdCBvZiB0aGUgVlJT
Y3JlZW5zaG90VHlwZV9TdGVyZW8gdHlwZSB3aWxsIGFsd2F5cworICAgICAgICAqICB3b3JrLiBP
dGhlciB0eXBlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdW5kZXJseWluZyBhcHBsaWNhdGlvbgorICAg
ICAgICAqICBzdXBwb3J0LgorICAgICAgICAqICBUaGUgZmlyc3QgZmlsZSBuYW1lIGlzIGZvciB0
aGUgcHJldmlldyBpbWFnZSBhbmQgc2hvdWxkIGJlIGEKKyAgICAgICAgKiAgcmVndWxhciBzY3Jl
ZW5zaG90IChpZGVhbGx5IGZyb20gdGhlIGxlZnQgZXllKS4gVGhlIHNlY29uZAorICAgICAgICAq
ICBpcyB0aGUgVlIgc2NyZWVuc2hvdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQuIFRoZXkgc2hvdWxk
IGJlCisgICAgICAgICogIGluIHRoZSBzYW1lIGFzcGVjdCByYXRpby4gIEZvcm1hdHMgcGVyIHR5
cGU6CisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfTW9ubzogdGhlIFZSIGZpbGVuYW1lIGlz
IGlnbm9yZWQgKGNhbiBiZQorICAgICAgICAqICBudWxscHRyKSwgdGhpcyBpcyBhIG5vcm1hbCBm
bGF0IHNpbmdsZSBzaG90LgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbzogIFRo
ZSBWUiBpbWFnZSBzaG91bGQgYmUgYQorICAgICAgICAqICBzaWRlLWJ5LXNpZGUgd2l0aCB0aGUg
bGVmdCBleWUgaW1hZ2Ugb24gdGhlIGxlZnQuCisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVf
Q3ViZW1hcDogVGhlIFZSIGltYWdlIHNob3VsZCBiZSBzaXggc3F1YXJlCisgICAgICAgICogIGlt
YWdlcyBjb21wb3NpdGVkIGhvcml6b250YWxseS4KKyAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW9QYW5vcmFtYTogYWJvdmUvYmVsb3cgd2l0aCBsZWZ0IGV5ZQorICAgICAgICAqICBw
YW5vcmFtYSBiZWluZyB0aGUgYWJvdmUgaW1hZ2UuICBJbWFnZSBpcyB0eXBpY2FsbHkgc3F1YXJl
CisgICAgICAgICogIHdpdGggdGhlIHBhbm9yYW1hIGJlaW5nIDJ4IGhvcml6b250YWwuCisgICAg
ICAgICogIAorICAgICAgICAqICBOb3RlIHRoYXQgdGhlIFZSIGRhc2hib2FyZCB3aWxsIGNhbGwg
dGhpcyBmdW5jdGlvbiB3aGVuCisgICAgICAgICogIHRoZSB1c2VyIHByZXNzZXMgdGhlIHNjcmVl
bnNob3QgYmluZGluZyAoY3VycmVudGx5IFN5c3RlbQorICAgICAgICAqICBCdXR0b24gKyBUcmln
Z2VyKS4gIElmIFN0ZWFtIGlzIHJ1bm5pbmcsIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAqICBm
aWxlIG5hbWVzIHdpbGwgYmUgaW4gJVRFTVAlIGFuZCB3aWxsIGJlIGNvcGllZCBpbnRvCisgICAg
ICAgICogIFN0ZWFtJ3Mgc2NyZWVuc2hvdCBsaWJyYXJ5IGZvciB0aGUgcnVubmluZyBhcHBsaWNh
dGlvbgorICAgICAgICAqICBvbmNlIFN1Ym1pdFNjcmVlbnNob3QoKSBpcyBjYWxsZWQuCisgICAg
ICAgICogIElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGUgcGF0aHMgd2lsbCBiZSBpbiB0aGUg
dXNlcidzCisgICAgICAgICogIGRvY3VtZW50cyBmb2xkZXIgdW5kZXIgRG9jdW1lbnRzXFN0ZWFt
VlJcU2NyZWVuc2hvdHMuCisgICAgICAgICogIE90aGVyIFZSIGFwcGxpY2F0aW9ucyBjYW4gY2Fs
bCB0aGlzIHRvIGluaXRpYXRlIGEKKyAgICAgICAgKiAgc2NyZWVuc2hvdCBvdXRzaWRlIG9mIHVz
ZXIgY29udHJvbC4KKyAgICAgICAgKiAgVGhlIGRlc3RpbmF0aW9uIGZpbGUgbmFtZXMgZG8gbm90
IG5lZWQgYW4gZXh0ZW5zaW9uLAorICAgICAgICAqICB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhl
IGNvcnJlY3Qgb25lIGZvciB0aGUgZm9ybWF0CisgICAgICAgICogIHdoaWNoIGlzIGN1cnJlbnRs
eSAucG5nLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0
U2NyZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RIYW5kbGUs
IHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBjaGFyICpwY2hQcmV2aWV3RmlsZW5h
bWUsIGNvbnN0IGNoYXIgKnBjaFZSRmlsZW5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogQ2FsbGVk
IGJ5IHRoZSBydW5uaW5nIFZSIGFwcGxpY2F0aW9uIHRvIGluZGljYXRlIHRoYXQgaXQKKyAgICAg
ICAgKiAgd2lzaGVzIHRvIGJlIGluIGNoYXJnZSBvZiBzY3JlZW5zaG90cy4gIElmIHRoZQorICAg
ICAgICAqICBhcHBsaWNhdGlvbiBkb2VzIG5vdCBjYWxsIHRoaXMsIHRoZSBDb21wb3NpdG9yIHdp
bGwgb25seQorICAgICAgICAqICBzdXBwb3J0IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvIHNjcmVl
bnNob3RzIHRoYXQgd2lsbCBiZQorICAgICAgICAqICBjYXB0dXJlZCB3aXRob3V0IG5vdGlmaWNh
dGlvbiB0byB0aGUgcnVubmluZyBhcHAuCisgICAgICAgICogIE9uY2UgaG9va2VkIHlvdXIgYXBw
bGljYXRpb24gd2lsbCByZWNlaXZlIGEKKyAgICAgICAgKiAgVlJFdmVudF9SZXF1ZXN0U2NyZWVu
c2hvdCBldmVudCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlCisgICAgICAgICogIGJ1dHRvbnMg
dG8gdGFrZSBhIHNjcmVlbnNob3QuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hv
dEVycm9yIEhvb2tTY3JlZW5zaG90KCBWUl9BUlJBWV9DT1VOVCggbnVtVHlwZXMgKSBjb25zdCB2
cjo6RVZSU2NyZWVuc2hvdFR5cGUgKnBTdXBwb3J0ZWRUeXBlcywgaW50IG51bVR5cGVzICkgPSAw
OworCisgICAgICAgLyoqIFdoZW4geW91ciBhcHBsaWNhdGlvbiByZWNlaXZlcyBhCisgICAgICAg
ICogIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgZXZlbnQsIGNhbGwgdGhlc2UgZnVuY3Rpb25z
IHRvIGdldAorICAgICAgICAqICB0aGUgZGV0YWlscyBvZiB0aGUgc2NyZWVuc2hvdCByZXF1ZXN0
LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RUeXBlIEdldFNjcmVlbnNob3RQ
cm9wZXJ0eVR5cGUoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgdnI6
OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOworCisgICAgICAgLyoqIEdldCB0aGUg
ZmlsZW5hbWUgZm9yIHRoZSBwcmV2aWV3IG9yIHZyIGltYWdlIChzZWUKKyAgICAgICAgKiAgdnI6
OkVTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMpLiAgVGhlIHJldHVybiB2YWx1ZSBpcworICAg
ICAgICAqICB0aGUgc2l6ZSBvZiB0aGUgc3RyaW5nLiAgICovCisgICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoIHZyOjpTY3JlZW5zaG90SGFuZGxl
X3Qgc2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBm
aWxlbmFtZVR5cGUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hGaWxlbmFtZSwgdWludDMyX3Qg
Y2NoRmlsZW5hbWUsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKnBFcnJvciApID0gMDsKKworICAg
ICAgIC8qKiBDYWxsIHRoaXMgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHRha2luZyB0aGUgc2NyZWVu
IHNob3QKKyAgICAgICAgKiAgd2lsbCB0YWtlIG1vcmUgdGhhbiBhIGZldyBtcyBwcm9jZXNzaW5n
LiBUaGlzIHdpbGwgcmVzdWx0CisgICAgICAgICogIGluIGFuIG92ZXJsYXkgYmVpbmcgcHJlc2Vu
dGVkIHRoYXQgc2hvd3MgYSBjb21wbGV0aW9uCisgICAgICAgICogIGJhci4gKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKCB2
cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIGZsb2F0IGZsUHJvZ3Jlc3Mg
KSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgdGhlIGNvbXBvc2l0b3IgdG8gdGFrZSBhbiBpbnRl
cm5hbCBzY3JlZW5zaG90IG9mCisgICAgICAgICogIHR5cGUgVlJTY3JlZW5zaG90VHlwZV9TdGVy
ZW8uIEl0IHdpbGwgdGFrZSB0aGUgY3VycmVudAorICAgICAgICAqICBzdWJtaXR0ZWQgc2NlbmUg
dGV4dHVyZXMgb2YgdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gYW5kCisgICAgICAgICogIHdyaXRl
IHRoZW0gaW50byB0aGUgcHJldmlldyBpbWFnZSBhbmQgYSBzaWRlLWJ5LXNpZGUgZmlsZQorICAg
ICAgICAqICBmb3IgdGhlIFZSIGltYWdlLgorICAgICAgICAqICBUaGlzIGlzIHNpbWlsYXIgdG8g
cmVxdWVzdCBzY3JlZW5zaG90LCBidXQgZG9lc24ndCBldmVyCisgICAgICAgICogIHRhbGsgdG8g
dGhlIGFwcGxpY2F0aW9uLCBqdXN0IHRha2VzIHRoZSBzaG90IGFuZCBzdWJtaXRzLiAqLworICAg
ICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBUYWtlU3RlcmVvU2NyZWVuc2hvdCgg
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RIYW5kbGUsIGNvbnN0IGNoYXIg
KnBjaFByZXZpZXdGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoVlJGaWxlbmFtZSApID0gMDsKKwor
ICAgICAgIC8qKiBTdWJtaXQgdGhlIGNvbXBsZXRlZCBzY3JlZW5zaG90LiAgSWYgU3RlYW0gaXMg
cnVubmluZworICAgICAgICAqICB0aGlzIHdpbGwgY2FsbCBpbnRvIHRoZSBTdGVhbSBjbGllbnQg
YW5kIHVwbG9hZCB0aGUKKyAgICAgICAgKiAgc2NyZWVuc2hvdCB0byB0aGUgc2NyZWVuc2hvdHMg
c2VjdGlvbiBvZiB0aGUgbGlicmFyeSBmb3IKKyAgICAgICAgKiAgdGhlIHJ1bm5pbmcgYXBwbGlj
YXRpb24uICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhpcworICAgICAgICAqICBmdW5jdGlv
biB3aWxsIGRpc3BsYXkgYSBub3RpZmljYXRpb24gdG8gdGhlIHVzZXIgdGhhdCB0aGUKKyAgICAg
ICAgKiAgc2NyZWVuc2hvdCB3YXMgdGFrZW4uIFRoZSBwYXRocyBzaG91bGQgYmUgZnVsbCBwYXRo
cyB3aXRoCisgICAgICAgICogIGV4dGVuc2lvbnMuCisgICAgICAgICogIEZpbGUgcGF0aHMgc2hv
dWxkIGJlIGFic29sdXRlIGluY2x1ZGluZyBleHRlbnNpb25zLgorICAgICAgICAqICBzY3JlZW5z
aG90SGFuZGxlIGNhbiBiZSBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgaWYgdGhpcworICAg
ICAgICAqICB3YXMgYSBuZXcgc2hvdCB0YWtpbmcgYnkgdGhlIGFwcCB0byBiZSBzYXZlZCBhbmQg
bm90CisgICAgICAgICogIGluaXRpYXRlZCBieSBhIHVzZXIgKGFjaGlldmVtZW50IGVhcm5lZCBv
ciBzb21ldGhpbmcpICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFN1
Ym1pdFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwg
dnI6OkVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZVByZXZpZXdG
aWxlbmFtZSwgY29uc3QgY2hhciAqcGNoU291cmNlVlJGaWxlbmFtZSApID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiA9ICJJVlJTY3Jl
ZW5zaG90c18wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZycmVzb3VyY2Vz
LmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJSZXNvdXJjZXMKK3sKK3B1YmxpYzoKKwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IFNoYXJlZCBSZXNvdXJjZSBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogTG9hZHMgdGhlIHNwZWNpZmllZCByZXNvdXJj
ZSBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIgaWYgbGFyZ2UgZW5vdWdoLgorICAgICAgICogUmV0
dXJucyB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIHRvIGhvbGQgdGhl
IHNwZWNpZmllZCByZXNvdXJjZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IExvYWRTaGFy
ZWRSZXNvdXJjZSggY29uc3QgY2hhciAqcGNoUmVzb3VyY2VOYW1lLCBjaGFyICpwY2hCdWZmZXIs
IHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAwOworCisgICAgICAgLyoqIFByb3ZpZGVzIHRoZSBm
dWxsIHBhdGggdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZS4gUmVzb3VyY2UgbmFtZXMgY2FuIGlu
Y2x1ZGUgbmFtZWQgZGlyZWN0b3JpZXMgZm9yCisgICAgICAgKiBkcml2ZXJzIGFuZCBvdGhlciB0
aGluZ3MsIGFuZCB0aGlzIHJlc29sdmVzIGFsbCBvZiB0aG9zZSBhbmQgcmV0dXJucyB0aGUgYWN0
dWFsIHBoeXNpY2FsIHBhdGguIAorICAgICAgICogcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5IGlz
IHRoZSBzdWJkaXJlY3Rvcnkgb2YgcmVzb3VyY2VzIHRvIGxvb2sgaW4uICovCisgICAgICAgdmly
dHVhbCB1aW50MzJfdCBHZXRSZXNvdXJjZUZ1bGxQYXRoKCBjb25zdCBjaGFyICpwY2hSZXNvdXJj
ZU5hbWUsIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgY2hhciAqcGNoUGF0
aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18wMDEiOwor
CisKK30KKy8vIGl2cmRyaXZlcm1hbmFnZXIuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElW
UkRyaXZlck1hbmFnZXIKK3sKK3B1YmxpYzoKKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldERy
aXZlckNvdW50KCkgY29uc3QgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGxlbmd0aCBv
ZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1
ZGluZyB0aGUgdHJhaWxpbmcgbnVsbC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldERy
aXZlck5hbWUoIHZyOjpEcml2ZXJJZF90IG5Ecml2ZXIsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpw
Y2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24gPSAiSVZSRHJpdmVyTWFuYWdl
cl8wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIEVuZAorCisjZW5kaWYgLy8gX09Q
RU5WUl9BUEkKKworCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2
ZSBpbnN0YWxsYXRpb24gb2YgdGhlIFZSIEFQSSBhbmQgaW5pdGlhbGl6ZXMgaXQuIFRoZSBwcm92
aWRlZCBwYXRoIG11c3QgYmUgYWJzb2x1dGUKKyAgICAgICAqIG9yIHJlbGF0aXZlIHRvIHRoZSBj
dXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBUaGVzZSBhcmUgdGhlIGxvY2FsIGluc3RhbGwgdmVy
c2lvbnMgb2YgdGhlIGVxdWl2YWxlbnQKKyAgICAgICAqIGZ1bmN0aW9ucyBpbiBzdGVhbXZyLmgg
YW5kIHdpbGwgd29yayB3aXRob3V0IGEgbG9jYWwgU3RlYW0gaW5zdGFsbC4KKyAgICAgICAqCisg
ICAgICAgKiBUaGlzIHBhdGggaXMgdG8gdGhlICJyb290IiBvZiB0aGUgVlIgQVBJIGluc3RhbGwu
IFRoYXQncyB0aGUgZGlyZWN0b3J5IHdpdGgKKyAgICAgICAqIHRoZSAiZHJpdmVycyIgZGlyZWN0
b3J5IGFuZCBhIHBsYXRmb3JtIChpLmUuICJ3aW4zMiIpIGRpcmVjdG9yeSBpbiBpdCwgbm90IHRo
ZSBkaXJlY3Rvcnkgd2l0aCB0aGUgRExMIGl0c2VsZi4KKyAgICAgICAqCisgICAgICAgKiBwU3Rh
cnR1cEluZm8gaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisgICAgICAgKi8KKyAgICAgICBp
bmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxp
Y2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cEluZm8gPSBu
dWxscHRyICk7CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZh
Y2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRl
ciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJfU2h1dGRvd24oKTsKKworICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gSE1EIGF0dGFjaGVkLiBUaGlzIGNo
ZWNrIGlzIGFzIGxpZ2h0d2VpZ2h0IGFzIHBvc3NpYmxlIGFuZAorICAgICAgICogY2FuIGJlIGNh
bGxlZCBvdXRzaWRlIG9mIFZSX0luaXQvVlJfU2h1dGRvd24uIEl0IHNob3VsZCBiZSB1c2VkIHdo
ZW4gYW4gYXBwbGljYXRpb24gd2FudHMKKyAgICAgICAqIHRvIGtub3cgaWYgaW5pdGlhbGl6aW5n
IFZSIGlzIGEgcG9zc2liaWxpdHkgYnV0IGlzbid0IHJlYWR5IHRvIHRha2UgdGhhdCBzdGVwIHll
dC4KKyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExUWVBFIFZSX0lz
SG1kUHJlc2VudCgpOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgT3BlblZSIHJ1
bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExU
WVBFIFZSX0lzUnVudGltZUluc3RhbGxlZCgpOworCisgICAgICAgLyoqIFJldHVybnMgd2hlcmUg
dGhlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0Ug
Y29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJfUnVudGltZVBhdGgoKTsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlIGZvciBhbiBFVlJJbml0RXJyb3IuIFRo
aXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBvdXRzaWRlIG9mIFZSX0luaXQoKS9WUl9TaHV0ZG93
bigpLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9H
ZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKKworICAgICAgIC8q
KiBSZXR1cm5zIGFuIEVuZ2xpc2ggc3RyaW5nIGZvciBhbiBFVlJJbml0RXJyb3IuIEFwcGxpY2F0
aW9ucyBzaG91bGQgY2FsbCBWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sIGluc3RlYWQgYW5kCisg
ICAgICAgKiB1c2UgdGhhdCBhcyBhIGtleSB0byBsb29rIHVwIHRoZWlyIG93biBsb2NhbGl6ZWQg
ZXJyb3IgbWVzc2FnZS4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG91dHNpZGUgb2YgVlJf
SW5pdCgpL1ZSX1NodXRkb3duKCkuICovCisgICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIg
KlZSX0NBTExUWVBFIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUklu
aXRFcnJvciBlcnJvciApOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGludGVyZmFjZSBvZiB0
aGUgc3BlY2lmaWVkIHZlcnNpb24uIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIGFmdGVyIFZS
X0luaXQuIFRoZQorICAgICAgICogcG9pbnRlciByZXR1cm5lZCBpcyB2YWxpZCB1bnRpbCBWUl9T
aHV0ZG93biBpcyBjYWxsZWQuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0Ugdm9pZCAq
VlJfQ0FMTFRZUEUgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50ZXJm
YWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CisKKyAgICAgICAvKiogUmV0dXJu
cyB3aGV0aGVyIHRoZSBpbnRlcmZhY2Ugb2YgdGhlIHNwZWNpZmllZCB2ZXJzaW9uIGV4aXN0cy4K
KyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExUWVBFIFZSX0lzSW50
ZXJmYWNlVmVyc2lvblZhbGlkKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uICk7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIHRva2VuIHRoYXQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBW
UiBpbnRlcmZhY2UgaGFuZGxlcyBuZWVkIHRvIGJlIHJlbG9hZGVkICovCisgICAgICAgVlJfSU5U
RVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0dldEluaXRUb2tlbigpOworCisgICAgICAg
Ly8gVGhlc2UgdHlwZWRlZnMgYWxsb3cgb2xkIGVudW0gbmFtZXMgZnJvbSBTREsgMC45LjExIHRv
IGJlIHVzZWQgaW4gYXBwbGljYXRpb25zLgorICAgICAgIC8vIFRoZXkgd2lsbCBnbyBhd2F5IGlu
IHRoZSBmdXR1cmUuCisgICAgICAgdHlwZWRlZiBFVlJJbml0RXJyb3IgSG1kRXJyb3I7CisgICAg
ICAgdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKKyAgICAgICB0eXBlZGVmIEVDb2xvclNwYWNlIENv
bG9yU3BhY2U7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdSZXN1bHQgSG1kVHJhY2tpbmdSZXN1
bHQ7CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNzIFRyYWNrZWREZXZpY2VDbGFz
czsKKyAgICAgICB0eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5nVW5pdmVy
c2VPcmlnaW47CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZVByb3BlcnR5IFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eTsKKyAgICAgICB0eXBlZGVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBUcmFj
a2VkUHJvcGVydHlFcnJvcjsKKyAgICAgICB0eXBlZGVmIEVWUlN1Ym1pdEZsYWdzIFZSU3VibWl0
RmxhZ3NfdDsKKyAgICAgICB0eXBlZGVmIEVWUlN0YXRlIFZSU3RhdGVfdDsKKyAgICAgICB0eXBl
ZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3VuZHNTdHlsZV90OworICAgICAg
IHR5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9yOworICAgICAgIHR5cGVkZWYg
RVZSRmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJDb21w
b3NpdG9yRXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJTY3JlZW5z
aG90RXJyb3IgVlJTY3JlZW5zaG90c0Vycm9yOworCisgICAgICAgaW5saW5lIHVpbnQzMl90ICZW
UlRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRpYyB1aW50MzJfdCB0b2tlbjsK
KyAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOworICAgICAgIH0KKworICAgICAgIGNsYXNzIENP
cGVuVlJDb250ZXh0CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgQ09w
ZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKyAgICAgICAgICAgICAgdm9pZCBDbGVhcigpOwor
CisgICAgICAgICAgICAgIGlubGluZSB2b2lkIENoZWNrQ2xlYXIoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBpZiAoIFZSVG9rZW4oKSAhPSBWUl9HZXRJbml0VG9rZW4o
KSApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUlRva2VuKCkgPSBWUl9HZXRJ
bml0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgIElWUlN5c3RlbSAqVlJTeXN0ZW0oKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
IG1fcFZSU3lzdGVtID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSAoIElWUlN5c3RlbSAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJTeXN0ZW1fVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU3lzdGVtOworICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZSAqVlJDaGFwZXJvbmUoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAoIG1fcFZSQ2hhcGVyb25lID09IG51bGxwdHIgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBl
RXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSAoIElW
UkNoYXBlcm9uZSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDaGFwZXJvbmVfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgSVZSQ2hhcGVyb25lU2V0dXAgKlZSQ2hhcGVyb25lU2V0dXAoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAg
ICBpZiAoIG1fcFZSQ2hhcGVyb25lU2V0dXAgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gKCBJVlJD
aGFwZXJvbmVTZXR1cCAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDaGFwZXJvbmVTZXR1
cF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIElWUkNvbXBvc2l0b3IgKlZSQ29tcG9zaXRvcigpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJDb21wb3NpdG9yID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDb21wb3NpdG9yID0gKCBJVlJDb21w
b3NpdG9yICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNvbXBvc2l0b3JfVmVyc2lvbiwg
JmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IElWUk92ZXJsYXkgKlZST3ZlcmxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJPdmVy
bGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJPdmVybGF5ID0gKCBJVlJPdmVybGF5ICogKVZSX0dldEdlbmVyaWNJbnRlcmZh
Y2UoIElWUk92ZXJsYXlfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIElWUlJlc291cmNlcyAqVlJSZXNvdXJjZXMoKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAoIG1fcFZSUmVzb3VyY2VzID09IG51bGxwdHIgKQorICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZXNvdXJjZXMgPSAoSVZSUmVz
b3VyY2VzICopVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUmVzb3VyY2VzX1ZlcnNpb24sICZl
RXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlJlc291cmNlczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElW
UlNjcmVlbnNob3RzICpWUlNjcmVlbnNob3RzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BW
UlNjcmVlbnNob3RzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9ICggSVZSU2NyZWVuc2hvdHMgKiApVlJf
R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiwgJmVFcnJvciApOwor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZS
U2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJSZW5kZXJN
b2RlbHMgKlZSUmVuZGVyTW9kZWxzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlJlbmRl
ck1vZGVscyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gKCBJVlJSZW5kZXJNb2RlbHMgKiApVlJfR2V0
R2VuZXJpY0ludGVyZmFjZSggSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlJl
bmRlck1vZGVsczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkV4dGVuZGVk
RGlzcGxheSAqVlJFeHRlbmRlZERpc3BsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
RXh0ZW5kZWREaXNwbGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSAoIElWUkV4dGVuZGVkRGlz
cGxheSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
IG1fcFZSU2V0dGluZ3MgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKCBJVlJTZXR0aW5ncyAqIClWUl9HZXRH
ZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXR0aW5n
czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkFwcGxpY2F0aW9ucyAqVlJB
cHBsaWNhdGlvbnMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVj
a0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQXBwbGljYXRpb25zID09
IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wVlJBcHBsaWNhdGlvbnMgPSAoIElWUkFwcGxpY2F0aW9ucyAqIClWUl9HZXRHZW5lcmljSW50
ZXJmYWNlKCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQXBwbGljYXRpb25z
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSVHJhY2tlZENhbWVyYSAqVlJU
cmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlRyYWNrZWRDYW1lcmEg
PT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3BWUlRyYWNrZWRDYW1lcmEgPSAoIElWUlRyYWNrZWRDYW1lcmEgKiApVlJfR2V0R2VuZXJp
Y0ludGVyZmFjZSggSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJUcmFja2Vk
Q2FtZXJhOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSRHJpdmVyTWFuYWdl
ciAqVlJEcml2ZXJNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCAhbV9wVlJEcml2ZXJN
YW5hZ2VyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cFZSRHJpdmVyTWFuYWdlciA9ICggSVZSRHJpdmVyTWFuYWdlciAqIClWUl9HZXRHZW5lcmljSW50
ZXJmYWNlKCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkRyaXZlck1hbmFn
ZXI7CisgICAgICAgICAgICAgIH0KKworICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgIElW
UlN5c3RlbSAgICAgICAgICAgICAgICAgICAgICptX3BWUlN5c3RlbTsKKyAgICAgICAgICAgICAg
SVZSQ2hhcGVyb25lICAgICAgICAgICAgICAqbV9wVlJDaGFwZXJvbmU7CisgICAgICAgICAgICAg
IElWUkNoYXBlcm9uZVNldHVwICAgICAgICptX3BWUkNoYXBlcm9uZVNldHVwOworICAgICAgICAg
ICAgICBJVlJDb21wb3NpdG9yICAgICAgICAgICAgICAqbV9wVlJDb21wb3NpdG9yOworICAgICAg
ICAgICAgICBJVlJPdmVybGF5ICAgICAgICAgICAgICAgICAgICAgKm1fcFZST3ZlcmxheTsKKyAg
ICAgICAgICAgICAgSVZSUmVzb3VyY2VzICAgICAgICAgICAgICAqbV9wVlJSZXNvdXJjZXM7Cisg
ICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAgICAgICAgICAgICAgKm1fcFZSUmVuZGVyTW9k
ZWxzOworICAgICAgICAgICAgICBJVlJFeHRlbmRlZERpc3BsYXkgICAgICAgKm1fcFZSRXh0ZW5k
ZWREaXNwbGF5OworICAgICAgICAgICAgICBJVlJTZXR0aW5ncyAgICAgICAgICAgICAgICAgICAg
ICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJVlJBcHBsaWNhdGlvbnMgICAgICAgICAg
ICAgICptX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgSVZSVHJhY2tlZENhbWVyYSAg
ICAgICAqbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICBJVlJTY3JlZW5zaG90cyAg
ICAgICAgICAgICAgKm1fcFZSU2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIElWUkRyaXZlck1h
bmFnZXIgICAgICAgKm1fcFZSRHJpdmVyTWFuYWdlcjsKKyAgICAgICB9OworCisgICAgICAgaW5s
aW5lIENPcGVuVlJDb250ZXh0ICZPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHN0YXRpYyB2b2lkICpjdHhbIHNpemVvZiggQ09wZW5WUkNvbnRl
eHQgKSAvIHNpemVvZiggdm9pZCAqICkgXTsKKyAgICAgICAgICAgICAgcmV0dXJuICooIENPcGVu
VlJDb250ZXh0ICogKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAgICAg
IH0KKworICAgICAgIGlubGluZSBJVlJTeXN0ZW0gKlZSX0NBTExUWVBFIFZSU3lzdGVtKCkgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU3lzdGVtKCk7IH0KKyAgICAg
ICBpbmxpbmUgSVZSQ2hhcGVyb25lICpWUl9DQUxMVFlQRSBWUkNoYXBlcm9uZSgpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNoYXBlcm9uZSgpOyB9CisgICAgICAg
aW5saW5lIElWUkNoYXBlcm9uZVNldHVwICpWUl9DQUxMVFlQRSBWUkNoYXBlcm9uZVNldHVwKCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ2hhcGVyb25lU2V0dXAo
KTsgfQorICAgICAgIGlubGluZSBJVlJDb21wb3NpdG9yICpWUl9DQUxMVFlQRSBWUkNvbXBvc2l0
b3IoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDb21wb3NpdG9y
KCk7IH0KKyAgICAgICBpbmxpbmUgSVZST3ZlcmxheSAqVlJfQ0FMTFRZUEUgVlJPdmVybGF5KCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZST3ZlcmxheSgpOyB9Cisg
ICAgICAgaW5saW5lIElWUlNjcmVlbnNob3RzICpWUl9DQUxMVFlQRSBWUlNjcmVlbnNob3RzKCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU2NyZWVuc2hvdHMoKTsg
fQorICAgICAgIGlubGluZSBJVlJSZW5kZXJNb2RlbHMgKlZSX0NBTExUWVBFIFZSUmVuZGVyTW9k
ZWxzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSUmVuZGVyTW9k
ZWxzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQXBwbGljYXRpb25zICpWUl9DQUxMVFlQRSBWUkFw
cGxpY2F0aW9ucygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkFw
cGxpY2F0aW9ucygpOyB9CisgICAgICAgaW5saW5lIElWUlNldHRpbmdzICpWUl9DQUxMVFlQRSBW
UlNldHRpbmdzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU2V0
dGluZ3MoKTsgfQorICAgICAgIGlubGluZSBJVlJSZXNvdXJjZXMgKlZSX0NBTExUWVBFIFZSUmVz
b3VyY2VzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSUmVzb3Vy
Y2VzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSRXh0ZW5kZWREaXNwbGF5ICpWUl9DQUxMVFlQRSBW
UkV4dGVuZGVkRGlzcGxheSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQo
KS5WUkV4dGVuZGVkRGlzcGxheSgpOyB9CisgICAgICAgaW5saW5lIElWUlRyYWNrZWRDYW1lcmEg
KlZSX0NBTExUWVBFIFZSVHJhY2tlZENhbWVyYSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQoKS5WUlRyYWNrZWRDYW1lcmEoKTsgfQorICAgICAgIGlubGluZSBJVlJEcml2
ZXJNYW5hZ2VyICpWUl9DQUxMVFlQRSBWUkRyaXZlck1hbmFnZXIoKSB7IHJldHVybiBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJEcml2ZXJNYW5hZ2VyKCk7IH0KKworICAgICAgIGlu
bGluZSB2b2lkIENPcGVuVlJDb250ZXh0OjpDbGVhcigpCisgICAgICAgeworICAgICAgICAgICAg
ICBtX3BWUlN5c3RlbSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGxwdHI7Cisg
ICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1f
cFZST3ZlcmxheSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSBudWxscHRyOwor
ICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9w
VlJBcHBsaWNhdGlvbnMgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlRyYWNrZWRDYW1l
cmEgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlJlc291cmNlcyA9IG51bGxwdHI7Cisg
ICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxscHRyOworICAgICAgICAgICAgICBt
X3BWUkRyaXZlck1hbmFnZXIgPSBudWxscHRyOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICBW
Ul9JTlRFUkZBQ0UgdWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfSW5pdEludGVybmFsMiggRVZSSW5p
dEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29u
c3QgY2hhciAqcFN0YXJ0dXBJbmZvICk7CisgICAgICAgVlJfSU5URVJGQUNFIHZvaWQgVlJfQ0FM
TFRZUEUgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworCisgICAgICAgLyoqIEZpbmRzIHRoZSBhY3Rp
dmUgaW5zdGFsbGF0aW9uIG9mIHZyY2xpZW50LmRsbCBhbmQgaW5pdGlhbGl6ZXMgaXQgKi8KKyAg
ICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIEVW
UkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cElu
Zm8gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSVZSU3lzdGVtICpwVlJTeXN0ZW0gPSBudWxs
cHRyOworCisgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
IFZSVG9rZW4oKSA9IFZSX0luaXRJbnRlcm5hbDIoICZlRXJyb3IsIGVBcHBsaWNhdGlvblR5cGUs
IHBTdGFydHVwSW5mbyApOworICAgICAgICAgICAgICBDT3BlblZSQ29udGV4dCAmY3R4ID0gT3Bl
blZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpOworICAgICAgICAgICAgICBjdHguQ2xlYXIoKTsK
KworICAgICAgICAgICAgICBpZiAoIGVFcnJvciA9PSBWUkluaXRFcnJvcl9Ob25lICkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBWUl9Jc0ludGVyZmFjZVZlcnNp
b25WYWxpZCggSVZSU3lzdGVtX1ZlcnNpb24gKSApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcFZSU3lzdGVtID0gVlJTeXN0ZW0oKTsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUl9TaHV0ZG93bkludGVy
bmFsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZUVycm9yID0gVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgICAgICAgICAg
ICAgICAqcGVFcnJvciA9IGVFcnJvcjsKKyAgICAgICAgICAgICAgcmV0dXJuIHBWUlN5c3RlbTsK
KyAgICAgICB9CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZh
Y2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRl
ciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJfU2h1dGRvd24oKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworICAgICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuY3Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1YjExYjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNzCkBA
IC0wLDAgKzEsNDc4NiBAQAorLy89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRp
b24sIEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09PQorLy8KKy8vIFB1cnBvc2U6
IFRoaXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmluZGluZ3MgZm9yIHRoZSBPcGVu
VlIgaW50ZXJmYWNlcworLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRp
dCBpdC4KKy8vCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3VzaW5nIFN5c3RlbTsKK3VzaW5n
IFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKK3VzaW5nIFZhbHZlLlZSOworCituYW1l
c3BhY2UgVmFsdmUuVlIKK3sKKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XQorcHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgdWludCBwbldpZHRo
LCByZWYgdWludCBwbkhlaWdodCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRT
aXplIEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlvbk1hdHJpeChFVlJFeWUgZUV5
ZSwgZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJvamVjdGlvbk1hdHJp
eCBHZXRQcm9qZWN0aW9uTWF0cml4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2
b2lkIF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYgZmxvYXQgcGZMZWZ0LCByZWYg
ZmxvYXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxvYXQgcGZCb3R0b20pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsIGZsb2F0
IGZVLCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29v
cmRpbmF0ZXMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENvbXB1dGVEaXN0b3J0aW9uOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRFeWVUb0hl
YWRUcmFuc2Zvcm0oRVZSRXllIGVFeWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5ZVRvSGVhZFRyYW5zZm9ybSBH
ZXRFeWVUb0hlYWRUcmFuc2Zvcm07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJv
b2wgX0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5
bmMsIHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRpbWVTaW5jZUxhc3RW
c3luYyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEQzRDlBZGFwdGVySW5k
ZXggR2V0RDNEOUFkYXB0ZXJJbmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzRGlzcGxh
eU9uRGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVza3Rv
cCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlzcGxheVZpc2liaWxpdHk7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERldmljZVRvQWJzb2x1dGVU
cmFja2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlByZWRp
Y3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2Vf
dFtdIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZVBvc2VBcnJh
eUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldERldmlj
ZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXNldFNlYXRlZFplcm9Qb3Nl
IFJlc2V0U2VhdGVkWmVyb1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEht
ZE1hdHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQ
b3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2lu
Z1Bvc2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFJhd1plcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmF3WmVyb1Bv
c2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5n
QWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVp
bnQgX0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNs
YXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50W10gcHVuVHJhY2tlZERldmlj
ZUluZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB1aW50IHVu
UmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U29ydGVkVHJhY2tlZERl
dmljZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzczsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmljZUFjdGl2aXR5TGV2ZWwgX0dl
dFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWw7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0FwcGx5VHJhbnNmb3JtKHJl
ZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBvc2Vf
dCBwVHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90IHBUcmFuc2Zvcm0pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZShF
VHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VHJhY2tlZERl
dmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJv
bGxlclJvbGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkQ29udHJv
bGxlclJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5E
ZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5k
ZXggR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXg7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3MgX0dldFRyYWNrZWREZXZpY2VD
bGFzcyh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VDbGFzcyBH
ZXRUcmFja2VkRGV2aWNlQ2xhc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJv
b2wgX0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQ7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJvb2xUcmFja2VkRGV2aWNlUHJv
cGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJl
ZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCb29sVHJhY2tlZERl
dmljZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1
aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZsb2F0VHJhY2tlZERldmljZVBy
b3BlcnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5E
ZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkg
R2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmlj
ZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0
VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE1hdHJpeDM0VHJhY2tlZERldmljZVBy
b3BlcnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodWlu
dCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFN5c3RlbS5UZXh0
LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3Bl
cnR5IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0gR2V0UHJv
cEVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29s
IF9Qb2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50KTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9zZShFVHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVudCwg
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Qb2xs
TmV4dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3NlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJFdmVu
dFR5cGUgZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bSBHZXRFdmVudFR5
cGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhpZGRlbkFy
ZWFNZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hU
eXBlIHR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdldEhpZGRlbkFyZWFNZXNoOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGUo
dWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENv
bnRyb2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENv
bnRyb2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNv
bnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVT
aXplLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9UcmlnZ2VySGFwdGljUHVsc2Uo
dWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4aXNJZCwgY2hhciB1c0R1cmF0
aW9uTWljcm9TZWMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxzZSBUcmlnZ2VySGFwdGljUHVs
c2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QnV0dG9uSWRO
YW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCdXR0b25JZE5h
bWVGcm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oRVZS
Q29udHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlckF4aXNU
eXBlTmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVyZUlucHV0Rm9jdXMoKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1czsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9jdXMoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxl
YXNlSW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzIElzSW5wdXRGb2N1c0Nh
cHR1cmVkQnlBbm90aGVyUHJvY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dWludCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBjaFJl
cXVlc3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1blJlc3BvbnNlQnVmZmVyU2l6
ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRlYnVnUmVxdWVzdDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVFcnJvciBfUGVyZm9ybUZpcm13
YXJlVXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUZpcm13YXJlVXBk
YXRlIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9BY2tub3dsZWRnZVF1
aXRfRXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9B
Y2tub3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdDsKKwor
fQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0
IElWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfR2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50IHBuWSwgcmVmIHVpbnQgcG5X
aWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdpbmRvd0JvdW5kcyBHZXRXaW5k
b3dCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEV5ZU91
dHB1dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgsIHJlZiB1aW50IHBuWSwgcmVm
IHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5ZU91dHB1dFZp
ZXdwb3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LCByZWYg
aW50IHBuQWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREWEdJT3V0cHV0SW5mbyBHZXRE
WEdJT3V0cHV0SW5mbzsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldCitwdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKK3sKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJhY2tl
ZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJv
bUVudW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2FtZXJhKHVpbnQgbkRldmljZUlu
ZGV4LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IYXNDYW1lcmEgSGFzQ2FtZXJhOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dl
dENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCwgcmVm
IHVpbnQgcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUZyYW1lU2l6ZSBHZXRD
YW1lcmFGcmFtZVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50IG5EZXZpY2VJbmRleCwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgSG1kVmVjdG9yMl90IHBGb2Nh
bExlbmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFJbnRy
aW5zaWNzIEdldENhbWVyYUludHJpbnNpY3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5EZXZp
Y2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpO
ZWFyLCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rpb247CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfQWNxdWlyZVZpZGVvU3Ry
ZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVsb25nIHBIYW5kbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2Vy
dmljZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVy
cm9yIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25nIGhUcmFja2VkQ2FtZXJhKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJlbGVhc2VWaWRlb1N0cmVhbWlu
Z1NlcnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9uZyBoVHJhY2tlZENhbWVyYSwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEZyYW1lQnVmZmVy
LCB1aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFZpZGVv
U3RyZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcjsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVh
bVRleHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcywgcmVmIHVp
bnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtVGV4
dHVyZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVE
M0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQzRDEx
U2hhZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBG
cmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVh
bVRleHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBl
RnJhbWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZy
YW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX1JlbGVhc2VW
aWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgdWludCBnbFRleHR1cmVJ
ZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMIFJlbGVhc2VWaWRlb1N0cmVh
bVRleHR1cmVHTDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
CitwdWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucworeworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGljYXRpb25NYW5pZmVzdChzdHJp
bmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRpb25NYW5pZmVzdDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUmVtb3ZlQXBw
bGljYXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZl
c3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzQXBwbGljYXRpb25J
bnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNBcHBsaWNhdGlvbkluc3RhbGxl
ZCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Db3Vu
dCBHZXRBcHBsaWNhdGlvbkNvdW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgodWludCB1bkFwcGxp
Y2F0aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLCB1
aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgg
R2V0QXBwbGljYXRpb25LZXlCeUluZGV4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQg
dW5Qcm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJM
ZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQgR2V0QXBwbGljYXRpb25L
ZXlCeVByb2Nlc3NJZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGlj
YXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
TGF1bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaFRlbXBsYXRlQXBwbGljYXRp
b24oc3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNoTmV3QXBwS2V5LCBbSW4sIE91
dF0gQXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktleXMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xhdW5j
aFRlbXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGlj
YXRpb25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXJncyk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9u
RXJyb3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
TGF1bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRPdmVybGF5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChzdHJp
bmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCBDYW5jZWxBcHBs
aWNhdGlvbkxhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGlj
YXRpb25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcg
cGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9uIElkZW50aWZ5QXBwbGljYXRp
b247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9u
UHJvY2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvY2Vz
c0lkIEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0
aW9uRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVt
IEdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBwY2hB
cHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBTeXN0ZW0uVGV4dC5TdHJp
bmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQgdW5Qcm9wZXJ0eVZhbHVlQnVm
ZmVyTGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBs
aWNhdGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmc7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlC
b29sKHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBy
ZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblBy
b3BlcnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQoc3RyaW5n
IHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIHJlZiBFVlJBcHBs
aWNhdGlvbkVycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50
NjQgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0
cmluZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEFwcGxpY2F0aW9u
QXV0b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBw
S2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggR2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVy
cm9yIF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5LCBz
dHJpbmcgcGNoTWltZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJp
bmcgcGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZm
ZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIEdldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyhzdHJpbmcgcGNoQXBwS2V5
LCBzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWltZVR5cGVzQnVmZmVyKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBHZXRBcHBsaWNhdGlvblN1cHBv
cnRlZE1pbWVUeXBlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0cmlu
ZyBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRC
dWZmZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUgR2V0QXBw
bGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModWludCB1bkhhbmRsZSwg
c3RyaW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkxhdW5j
aEFyZ3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50czsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0U3RhcnRpbmdBcHBsaWNh
dGlvbihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5nQXBwbGljYXRpb247CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRl
IF9HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFuc2l0aW9uU3RhdGUgR2V0VHJh
bnNpdGlvblN0YXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNh
dGlvbkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhzdHJpbmcgcGNoQXBw
S2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayBQZXJmb3JtQXBw
bGljYXRpb25QcmVsYXVuY2hDaGVjazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
SW50UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1Ry
YW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVO
YW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzUXVp
dFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVk
IElzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcgcGNo
QmluYXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5nIHBjaFdvcmtpbmdEaXJlY3Rv
cnkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVuY2hJbnRlcm5hbFByb2Nlc3M7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZVBy
b2Nlc3NJZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCBHZXRDdXJyZW50U2Nl
bmVQcm9jZXNzSWQ7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XQorcHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENhbGlicmF0aW9uU3RhdGUoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQg
cFNpemVYLCByZWYgZmxvYXQgcFNpemVaKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVNpemUgR2V0UGxh
eUFyZWFTaXplOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5
QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVJlY3QgR2V0
UGxheUFyZWFSZWN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxv
YWRJbmZvKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZvOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEhtZENvbG9yX3QgY29sb3IpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENv
bG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0Zh
ZGVEaXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRCb3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0FyZUJvdW5kc1Zpc2libGUg
QXJlQm91bmRzVmlzaWJsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
Rm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Gb3JjZUJvdW5kc1Zpc2li
bGUgRm9yY2VCb3VuZHNWaXNpYmxlOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lU2V0dXAKK3sKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtpbmdDb3B5KEVDaGFwZXJvbmVD
b25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbW1pdFdvcmtpbmdDb3B5IENvbW1pdFdv
cmtpbmdDb3B5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXZlcnRX
b3JraW5nQ29weSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5IFJldmVydFdvcmtpbmdDb3B5
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nUGxheUFy
ZWFTaXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6ZVopOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdv
cmtpbmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1kUXVh
ZF90IHJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QgR2V0V29ya2luZ1BsYXlB
cmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2lu
Z0NvbGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwg
cmVmIHVpbnQgcHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5k
c0luZm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBI
bWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdTdGFuZGlu
Z1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFN0YW5kaW5n
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1N0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3Jr
aW5nUGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29y
a2luZ1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXplOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4s
IE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5k
c0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtpbmdT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBNYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2lu
Z1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQg
X1JlbG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1JlbG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYg
SG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0TGl2ZVNlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtd
IHBUYWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNp
b25Cb3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm87CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNU
YWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCByZWYgdWludCBwdW5UYWdDb3Vu
dCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIEdldExpdmVDb2xsaXNp
b25Cb3VuZHNUYWdzSW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBf
U2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRz
QnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1BoeXNpY2FsQm91
bmRzSW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKFtJbiwgT3V0XSBI
bWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbzsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhwb3J0TGl2ZVRvQnVmZmVyKFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVpbnQgcG5CdWZmZXJMZW5ndGgp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZlVG9CdWZmZXI7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmco
c3RyaW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9JbXBvcnRGcm9tQnVm
ZmVyVG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7CisKK30KKworW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJDb21wb3NpdG9y
Cit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRUcmFja2luZ1NwYWNl
KEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFRyYWNraW5nU3Bh
Y2UgU2V0VHJhY2tpbmdTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2UoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFj
a2luZ1NwYWNlIEdldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJbiwgT3V0XSBUcmFja2VkRGV2
aWNlUG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJlbmRlclBvc2VBcnJheUNvdW50
LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1lUG9zZUFycmF5LCB1aW50IHVu
R2FtZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9zZXMgV2FpdEdldFBvc2VzOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dldExh
c3RQb3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXks
IHVpbnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3Nl
X3RbXSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0TGFzdFBvc2VzIEdldExhc3RQb3NlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1
aW50IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCBy
ZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExhc3RQ
b3NlRm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1N1
Ym1pdChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSwgcmVmIFZSVGV4dHVyZUJv
dW5kc190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU3Vi
bWl0IFN1Ym1pdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQ2xlYXJM
YXN0U3VibWl0dGVkRnJhbWUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSBDbGVh
ckxhc3RTdWJtaXR0ZWRGcmFtZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUG9zdFByZXNlbnRIYW5kb2ZmIFBvc3RQ
cmVzZW50SGFuZG9mZjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0
RnJhbWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCB1bkZy
YW1lc0Fnbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJhbWVUaW1pbmc7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9z
aXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZyYW1l
VGltaW5ncyBHZXRGcmFtZVRpbWluZ3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGZsb2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWVSZW1h
aW5pbmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0
YXRzIHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q3VtdWxhdGl2
ZVN0YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZH
cmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfRmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFkZUNvbG9yOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChmbG9hdCBmU2Vjb25kcywgYm9v
bCBiRmFkZUluKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxwaGEoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRD
dXJyZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5Ym94T3ZlcnJpZGUoW0luLCBP
dXRdIFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1cmVDb3VudCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhclNr
eWJveE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21wb3Np
dG9yQnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFjaygpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXBv
c2l0b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvclF1aXQg
Q29tcG9zaXRvclF1aXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lz
RnVsbHNjcmVlbigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1bGxzY3JlZW47CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2Vz
cygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcyBHZXRDdXJyZW50U2NlbmVG
b2N1c1Byb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldExh
c3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1lUmVuZGVyZXIgR2V0TGFzdEZy
YW1lUmVuZGVyZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhblJl
bmRlclNjZW5lKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2FuUmVuZGVyU2NlbmU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dNaXJyb3JXaW5kb3coKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3coKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IaWRlTWly
cm9yV2luZG93IEhpZGVNaXJyb3JXaW5kb3c7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzTWlycm9yV2luZG93
VmlzaWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvckR1
bXBJbWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9T
aG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNv
dXJjZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlSW50ZXJs
ZWF2ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRm9yY2VJbnRlcmxl
YXZlZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbjsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVjb25uZWN0UHJvY2VzczsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3VzcGVuZFJlbmRlcmluZyhib29s
IGJTdXNwZW5kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1c3BlbmRSZW5kZXJpbmc7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWly
cm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJj
ZSwgcmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRNaXJy
b3JUZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNE
MTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEg
UmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUsIHJl
ZiB1aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJlR0w7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUodWludCBnbFRl
eHR1cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVNo
YXJlZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBn
bFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nl
c3MgTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2Vz
cyBVbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBHZXRWdWxrYW5JbnN0YW5jZUV4
dGVuc2lvbnNSZXF1aXJlZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBf
R2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0ciBwUGh5c2ljYWxEZXZpY2Us
IFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuRGV2aWNl
RXh0ZW5zaW9uc1JlcXVpcmVkOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQoreworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3ZlcmxheShzdHJpbmcgcGNoT3Zlcmxh
eUtleSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9GaW5kT3ZlcmxheSBGaW5k
T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9DcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZy
aWVuZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DcmVhdGVPdmVy
bGF5IENyZWF0ZU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9EZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcgdWxP
dmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkgU2V0SGlnaFF1YWxp
dHlPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0SGln
aFF1YWxpdHlPdmVybGF5KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxpdHlPdmVybGF5IEdldEhpZ2hR
dWFsaXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJv
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXpl
LCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheU5hbWUgR2V0
T3ZlcmxheU5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBw
dkJ1ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1bldpZHRoLCByZWYgdWludCBw
dW5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEgR2V0T3ZlcmxheUltYWdlRGF0
YTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRPdmVybGF5RXJy
b3JOYW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5
RXJyb3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlSZW5kZXJp
bmdQaWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElEKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkIEdldE92ZXJsYXlSZW5k
ZXJpbmdQaWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBl
T3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGbGFnIFNldE92
ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3Mg
ZU92ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlGbGFn
IEdldE92ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZS
ZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlDb2xvciBT
ZXRPdmVybGF5Q29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0
IHBmUmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBmQmx1ZSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
T3ZlcmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBbHBoYSBTZXRPdmVybGF5QWxw
aGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0
T3ZlcmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmQWxwaGEpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNwZWN0KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRP
dmVybGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlTb3J0T3JkZXIodWxv
bmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
U29ydE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVNvcnRP
cmRlciBHZXRPdmVybGF5U29ydE9yZGVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlXaWR0aElu
TWV0ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUF1dG9DdXJ2ZURp
c3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0
YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCByZWYg
ZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QXV0b0N1cnZl
RGlzdGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5N
ZXRlcnM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9y
U3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VGV4dHVyZUNvbG9y
U3BhY2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNl
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgR2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZS
VGV4dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eVRleHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0
dXJlQm91bmRzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyBHZXRPdmVybGF5VGV4
dHVyZUJvdW5kczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBW
Uk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zlcmxh
eVRyYW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybUFic29s
dXRlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNr
aW5nT3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRPdmVybGF5
VHJhbnNmb3JtQWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJhY2tpbmdPcmlnaW4sIHJlZiBI
bWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRP
dmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgdWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2
aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IHJlZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2Vk
RGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRp
dmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBTZXRPdmVybGF5VHJh
bnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNv
bXBvbmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1bkRldmljZUluZGV4LCBz
dHJpbmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVTaXplKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBHZXRPdmVybGF5VHJh
bnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3ZlcmxheVZpc2libGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0VHJhbnNmb3JtRm9y
T3ZlcmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJs
YXksIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYW5zZm9y
bUZvck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXM7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0T3ZlcmxheUV2
ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5j
YlZSRXZlbnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50IFBvbGxOZXh0T3ZlcmxheUV2
ZW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJ
bnB1dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW5wdXRNZXRob2Qg
R2V0T3ZlcmxheUlucHV0TWV0aG9kOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eUlucHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNjYWxlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlNb3VzZVNjYWxl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3ZlcmxheU1vdXNlU2NhbGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFt
c190IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgcFJlc3VsdHMp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9IYW5kbGVDb250
cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hhbmRsZUNvbnRyb2xsZXJPdmVy
bGF5SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25B
c01vdXNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0hvdmVyVGFy
Z2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzSG92ZXJUYXJnZXRP
dmVybGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEdhbWVwYWRG
b2N1c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsb25n
IHVsTmV3Rm9jdXNPdmVybGF5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5IFNldEdh
bWVwYWRGb2N1c092ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rp
b24sIHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU5laWdoYm9y
IFNldE92ZXJsYXlOZWlnaGJvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlv
biBlRGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX01vdmVHYW1lcGFkRm9jdXNUb05l
aWdoYm9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRl
eHR1cmUgU2V0T3ZlcmxheVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJPdmVybGF5VGV4dHVyZTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5
UmF3KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVmZmVyLCB1aW50IHVuV2lkdGgs
IHVpbnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJhdyBTZXRP
dmVybGF5UmF3OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHN0cmluZyBwY2hG
aWxlUGF0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNldE92ZXJsYXlGcm9tRmlsZTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVy
bGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJbnRQdHIgcE5hdGl2ZVRleHR1
cmVIYW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVmIHVpbnQgcFdpZHRoLCByZWYg
dWludCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCByZWYgRVRleHR1cmVUeXBlIHBB
UElUeXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJlZiBWUlRleHR1cmVCb3VuZHNf
dCBwVGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmUgR2V0T3ZlcmxheVRl
eHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
UmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQdHIg
cE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxl
IFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
T3ZlcmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVEYXNoYm9hcmRPdmVybGF5
KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgcmVm
IHVsb25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
Q3JlYXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRPdmVybGF5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9Jc0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxvbmcgdWxP
dmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkgSXNBY3RpdmVE
YXNoYm9hcmRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5
SGFuZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXREYXNoYm9hcmRPdmVybGF5U2Nl
bmVQcm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3M7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0RGFzaGJvYXJkT3ZlcmxheVNj
ZW5lUHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blByb2Nlc3NJZCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBHZXREYXNoYm9hcmRPdmVy
bGF5U2NlbmVQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
aG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93RGFzaGJv
YXJkIFNob3dEYXNoYm9hcmQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcmltYXJ5RGFzaGJvYXJk
RGV2aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLCBp
bnQgZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlvbiwgdWludCB1bkNoYXJNYXgs
IHN0cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1bG9uZyB1VXNl
clZhbHVlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJvYXJkOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZEZvck92ZXJs
YXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5wdXRN
b2RlLCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNoRXhp
c3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRGb3JPdmVybGF5OworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXlib2FyZFRleHQoU3lzdGVtLlRl
eHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEtleWJv
YXJkVGV4dCBHZXRLZXlib2FyZFRleHQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0hpZGVLZXlib2FyZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hpZGVLZXlib2FyZCBIaWRlS2V5Ym9hcmQ7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkVHJhbnNm
b3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCByZWYg
SG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtleWJvYXJkVHJhbnNmb3JtQWJz
b2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBhdm9p
ZFJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IFNldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1ByaW1p
dGl2ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1blByaW1pdGl2ZVNpemUpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25N
YXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBGbGFncyk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIF9TaG93TWVzc2FnZU92ZXJs
YXkoc3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBzdHJpbmcgcGNoQnV0dG9uMFRl
eHQsIHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LCBzdHJpbmcg
cGNoQnV0dG9uM1RleHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3ZlcmxheSBTaG93TWVzc2FnZU92
ZXJsYXk7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVi
bGljIHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9kZWwpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvYWRS
ZW5kZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJbnRQdHIgcFJlbmRlck1vZGVs
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1vZGVsOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZV9Bc3lu
YyhpbnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9hZFRleHR1
cmVfQXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1
cmUgRnJlZVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRl
ck1vZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCwgSW50UHRy
IHBEM0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Mb2Fk
VGV4dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5bmM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRJbnRvVGV4dHVyZUQz
RDExX0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4dHVyZSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9h
ZEludG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmM7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlRDNEMTEoSW50UHRy
IHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVEM0QxMSBGcmVlVGV4dHVyZUQz
RDExOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2Rl
bE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRSZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50KCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVu
ZGVyTW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJpbmcgcGNoUmVuZGVyTW9kZWxO
YW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21wb25lbnRDb3VudDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50TmFtZShzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5kZXgsIFN5c3RlbS5UZXh0LlN0
cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVMZW4pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFtZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBj
aFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENv
bXBvbmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFzazsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHN0cmlu
ZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCBTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBv
bmVudFJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxO
YW1lIEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFt
ZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250
cm9sbGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0
ZSwgcmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5nIHBj
aFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbmRl
ck1vZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJp
bmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFRodW1i
bmFpbFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3Ig
cGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwgR2V0UmVuZGVyTW9k
ZWxUaHVtYm5haWxVUkw7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1aW50IHVuT3JpZ2luYWxQYXRo
TGVuLCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJN
b2RlbE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21F
bnVtKEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsRXJy
b3JOYW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bTsKKworfQorCitb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUk5v
dGlmaWNhdGlvbnMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlmaWNh
dGlvbkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1bG9u
ZyB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBzdHJpbmcgcGNoVGV4dCwg
RVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1h
Z2UsIHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ3JlYXRlTm90aWZpY2F0aW9u
IENyZWF0ZU5vdGlmaWNhdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
Tm90aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1aW50IG5vdGlmaWNhdGlvbklk
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90aWZpY2F0aW9uOworCit9CisK
K1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZS
U2V0dGluZ3MKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0U2V0
dGluZ3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVt
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TeW5jKGJvb2wgYkZvcmNl
LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TeW5jIFN5bmM7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJvb2woc3RyaW5nIHBjaFNlY3Rp
b24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vy
cm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBw
Y2hTZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0SW50MzIgU2V0SW50MzI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NL
ZXksIGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldEZsb2F0IFNldEZsb2F0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9TZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgc3Ry
aW5nIHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRT
dHJpbmcgU2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRCb29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJlZiBFVlJT
ZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEJvb2wgR2V0Qm9vbDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbiwg
c3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRJbnQzMiBHZXRJbnQzMjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
ZmxvYXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZsb2F0IEdldEZsb2F0
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRTdHJpbmcoc3RyaW5n
IHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVy
cm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLCByZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVTZWN0aW9uIFJlbW92ZVNlY3Rp
b247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbW92ZUtleUluU2Vj
dGlvbihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJblNlY3Rpb24gUmVtb3ZlS2V5
SW5TZWN0aW9uOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0K
K3B1YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQgcE91
dFNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIHN0cmluZyBwY2hQcmV2
aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXF1ZXN0U2NyZWVu
c2hvdCBSZXF1ZXN0U2NyZWVuc2hvdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSU2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4sIE91dF0gRVZSU2NyZWVuc2hv
dFR5cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSG9va1NjcmVl
bnNob3QgSG9va1NjcmVlbnNob3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
UlNjcmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hv
dEhhbmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNjcmVl
bnNob3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUo
dWludCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmls
ZW5hbWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLCB1aW50IGNj
aEZpbGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U2Ny
ZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVXBkYXRl
U2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVz
cyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVwZGF0ZVNjcmVlbnNob3RQcm9n
cmVzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9y
IF9UYWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgc3Ry
aW5nIHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmlsZW5hbWUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Rh
a2VTdGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1Ym1pdFNjcmVlbnNob3QodWlu
dCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNoU291
cmNlUHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJGaWxlbmFtZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U3VibWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OworCit9CisKK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSUmVzb3VyY2VzCit7Cisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2FkU2hhcmVkUmVzb3VyY2Uoc3Ry
aW5nIHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRSZXNvdXJjZTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcg
cGNoUmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBzdHJpbmcg
cGNoUGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVzb3VyY2VGdWxs
UGF0aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOworCit9CisKKworcHVibGljIGNsYXNzIENWUlN5c3Rl
bQoreworICAgICAgIElWUlN5c3RlbSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUlN5c3Rl
bShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAo
SVZSU3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlN5
c3RlbSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRl
clRhcmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7
CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKHJl
ZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRy
aXg0NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsZmxvYXQgZk5lYXJaLGZsb2F0
IGZGYXJaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4NDRfdCByZXN1bHQgPSBG
blRhYmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclosZkZhclopOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRQcm9q
ZWN0aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQscmVmIGZsb2F0IHBmUmlnaHQs
cmVmIGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBmTGVmdCA9IDA7CisgICAgICAgICAgICAgIHBmUmlnaHQgPSAwOworICAgICAgICAgICAg
ICBwZlRvcCA9IDA7CisgICAgICAgICAgICAgIHBmQm90dG9tID0gMDsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVmdCxyZWYgcGZSaWdodCxyZWYg
cGZUb3AscmVmIHBmQm90dG9tKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQ29tcHV0
ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQgZlYscmVmIERpc3RvcnRpb25D
b29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCisgICAgICAgeworICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3RvcnRpb24oZUV5ZSxmVSxmVixy
ZWYgcERpc3RvcnRpb25Db29yZGluYXRlcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5z
Zm9ybShFVlJFeWUgZUV5ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3Qg
cmVzdWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oZUV5ZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFRpbWVT
aW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHVsb25n
IHB1bEZyYW1lQ291bnRlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHBmU2Vjb25kc1NpbmNl
TGFzdFZzeW5jID0gMDsKKyAgICAgICAgICAgICAgcHVsRnJhbWVDb3VudGVyID0gMDsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYg
cGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291bnRlcik7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0RDNEOUFk
YXB0ZXJJbmRleCgpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXREM0Q5QWRhcHRlckluZGV4KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5B
ZGFwdGVySW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRleCA9IDA7
CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dEluZm8ocmVmIHBuQWRhcHRlcklu
ZGV4KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rpc3BsYXlP
bkRlc2t0b3AoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9vbCBiSXNWaXNpYmxlT25EZXNr
dG9wKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldERp
c3BsYXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREZXZpY2VUb0Fic29s
dXRlVHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sZmxvYXQgZlBy
ZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFRy
YWNrZWREZXZpY2VQb3NlQXJyYXkpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkdl
dERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixmUHJlZGljdGVkU2Vjb25kc1Rv
UGhvdG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXksKHVpbnQpIHBUcmFja2VkRGV2
aWNlUG9zZUFycmF5Lkxlbmd0aCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlc2V0
U2VhdGVkWmVyb1Bvc2UoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZXNldFNl
YXRlZFplcm9Qb3NlKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdl
dFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRTZWF0ZWRa
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRS
YXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCisgICAgICAgeworICAg
ICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0UmF3WmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0U29ydGVkVHJhY2tlZERldmlj
ZUluZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcyx1
aW50IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQgdW5SZWxhdGl2ZVRvVHJhY2tl
ZERldmljZUluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRh
YmxlLkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhlVHJhY2tlZERldmljZUNs
YXNzLHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBwdW5UcmFja2VkRGV2aWNlSW5k
ZXhBcnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVEZXZpY2VBY3Rp
dml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIHJlc3VsdCA9IEZu
VGFibGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5EZXZpY2VJZCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEFwcGx5
VHJhbnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFja2Vk
RGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNm
b3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5BcHBseVRyYW5zZm9ybShyZWYg
cE91dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgcFRyYW5zZm9ybSk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xs
ZXJSb2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VJbmRleEZv
ckNvbnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdldENv
bnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgcmVzdWx0ID0gRm5U
YWJsZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1bkRldmljZUluZGV4
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKHVpbnQgdW5EZXZpY2VJ
bmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgcmVzdWx0
ID0gRm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZpY2VJbmRleCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzVHJh
Y2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKHVu
RGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlF
cnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBF
cnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5k
ZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
cEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJv
cik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBpbnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIGludCByZXN1bHQgPSBGblRhYmxlLkdldEludDMy
VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25n
IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRVaW50NjRU
cmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0
cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5k
ZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
cEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBG
blRhYmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJv
cCxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5E
ZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsU3lzdGVtLlRleHQuU3RyaW5n
QnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHBjaFZh
bHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRQcm9wRXJyb3JOYW1lRnJvbUVu
dW0oRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
SW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZlbnQocmVmIFZSRXZlbnRfdCBw
RXZlbnQsdWludCB1bmNiVlJFdmVudCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBQ
b2xsTmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbixyZWYg
VlJFdmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90
IHBUcmFja2VkRGV2aWNlUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdpbixyZWYgcEV2ZW50LHVuY2JW
UkV2ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdldEV2ZW50VHlwZU5hbWVGcm9t
RW51bShFVlJFdmVudFR5cGUgZVR5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIg
cmVzdWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oZVR5cGUpOworICAgICAg
ICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goRVZSRXll
IGVFeWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
SGlkZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhpZGRlbkFyZWFNZXNoKGVFeWUs
dHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhpcyBp
cyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxl
clN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBw
YWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1
bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5F
eHBsaWNpdCldCisgICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJTdGF0ZVVuaW9uCisgICAgICAg
eworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJ
VlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJvbGxlclN0YXRlOworICAgICAg
ICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBfR2V0Q29udHJv
bGxlclN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50IHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoKFN5c3RlbS5F
bnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFjT1NY
KSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1lbnQuT1NW
ZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVyU3RhdGVVbmlvbiB1OworICAg
ICAgICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2Vk
ID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAg
ICB1LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOworICAgICAgICAgICAgICAgICAg
ICAgdS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGU7Cisg
ICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVy
U3RhdGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHN0YXRlX3BhY2tlZCwodWlu
dClTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbC5TaXplT2YodHlwZW9mKFZS
Q29udHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOworCisgICAgICAgICAgICAgICAgICAgICBzdGF0
ZV9wYWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBwYWNrZWRfcmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGUodW5Db250cm9sbGVyRGV2
aWNlSW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisvLyBUaGlzIGlzIGEgdGVycmli
bGUgaGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJDb250cm9sbGVyU3RhdGVfdCB3
YXMKKy8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhlIHdyb25nIHBhY2tpbmcgZm9y
IExpbnV4IGFuZCBPU1guCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRD
b250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3Jp
Z2luLHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVmIFRy
YWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICBbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3Rh
dGVXaXRoUG9zZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCld
CisgICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQ
b3NlIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zm
c2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
UGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRy
b2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUs
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09
IFN5c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZv
cm1JRC5Vbml4KSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29u
dHJvbGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OworICAgICAgICAgICAgICAgICAgICAgVlJDb250
cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRl
X3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZVBhY2tlZCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9s
bGVyU3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7Cisg
ICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVy
U3RhdGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBz
dGF0ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwu
U2l6ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpLHJlZiBwVHJhY2tlZERl
dmljZVBvc2UpOworCisgICAgICAgICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNrKHJl
ZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNrZWRf
cmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2luLHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSxyZWYgcFRy
YWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9sbGVy
RGV2aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRpb25NaWNyb1NlYykKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRpY1B1bHNlKHVuQ29udHJvbGxl
ckRldmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1NlYyk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1
dHRvbklkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUu
R2V0QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBzdHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xsZXJB
eGlzVHlwZSBlQXhpc1R5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0
ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oZUF4aXNUeXBlKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYXB0dXJlSW5wdXRGb2N1cygp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LlJlbGVhc2VJbnB1dEZvY3VzKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzSW5w
dXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCisgICAgICAgeworICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9j
ZXNzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBj
aFJlcXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQgdW5SZXNwb25zZUJ1ZmZlclNp
emUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuRHJpdmVy
RGVidWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxwY2hSZXNwb25zZUJ1ZmZlcix1
blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0
ZSh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJGaXJtd2Fy
ZUVycm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVuRGV2aWNlSW5k
ZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKKyAgICAgICB9Cit9
CisKKworcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIElWUkV4dGVu
ZGVkRGlzcGxheSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkV4dGVuZGVkRGlzcGxheShJ
bnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
RXh0ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9m
KElWUkV4dGVuZGVkRGlzcGxheSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRX
aW5kb3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVmIHVpbnQgcG5XaWR0aCxyZWYg
dWludCBwbkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuWCA9IDA7CisgICAgICAg
ICAgICAgIHBuWSA9IDA7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAg
ICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0V2luZG93Qm91bmRzKHJl
ZiBwblgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSxyZWYgdWludCBw
blgscmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCisgICAg
ICAgeworICAgICAgICAgICAgICBwblggPSAwOworICAgICAgICAgICAgICBwblkgPSAwOworICAg
ICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOworICAg
ICAgICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0KGVFeWUscmVmIHBuWCxyZWYg
cG5ZLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgscmVmIGludCBwbkFk
YXB0ZXJPdXRwdXRJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuQWRhcHRlckluZGV4
ID0gMDsKKyAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5kZXggPSAwOworICAgICAgICAg
ICAgICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCxyZWYgcG5B
ZGFwdGVyT3V0cHV0SW5kZXgpOworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSVHJh
Y2tlZENhbWVyYQoreworICAgICAgIElWUlRyYWNrZWRDYW1lcmEgRm5UYWJsZTsKKyAgICAgICBp
bnRlcm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJhKU1hcnNoYWwuUHRyVG9TdHJ1
Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1lcmEpKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bShFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRy
IHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oZUNhbWVyYUVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJh
KHVpbnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEpCisgICAgICAgeworICAgICAg
ICAgICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2aWNlSW5kZXgscmVmIHBIYXND
YW1lcmEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZp
Y2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcG5X
aWR0aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1lQnVmZmVyU2l6ZSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9
IDA7CisgICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0gMDsKKyAgICAgICAgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRnJhbWVTaXpl
KG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCxyZWYgcG5G
cmFtZUJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3Mo
dWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJl
ZiBIbWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBGb2Nh
bExlbmd0aCxyZWYgcENlbnRlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJvamVj
dGlvbih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5
cGUsZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1hdHJpeDQ0X3QgcFByb2plY3Rp
b24pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLGZs
Wk5lYXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNxdWly
ZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCxyZWYgdWxvbmcgcEhhbmRs
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBIYW5kbGUgPSAwOworICAgICAgICAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5BY3F1aXJlVmlkZW9TdHJlYW1p
bmdTZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3Ig
UmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRDYW1lcmEpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENh
bWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1lcmEs
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRnJhbWVCdWZmZXIs
dWludCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
cEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFt
RnJhbWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxwRnJhbWVCdWZmZXIsbkZyYW1l
QnVmZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENh
bWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWludCBuRGV2aWNlSW5kZXgsRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBw
VGV4dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAgICAgICAgIHBuSGVpZ2h0ID0g
MDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcFRl
eHR1cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJv
ciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3Vy
Y2UscmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LHJlZiBDYW1lcmFWaWRlb1N0
cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUs
cEQzRDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYg
cEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZp
ZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJlSWQscmVmIENhbWVyYVZpZGVv
U3RyZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBuRnJhbWVIZWFkZXJTaXplKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1UZXh0
dXJlR0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGdsVGV4dHVyZUlkLHJlZiBwRnJh
bWVIZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZp
ZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLHVpbnQgZ2xUZXh0dXJlSWQp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZ2xUZXh0
dXJlSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitw
dWJsaWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCit7CisgICAgICAgSVZSQXBwbGljYXRpb25zIEZu
VGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25zKEludFB0ciBwSW50ZXJmYWNl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJBcHBsaWNhdGlvbnMpTWFy
c2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQXBwbGljYXRpb25zKSk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxpY2F0
aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCxib29sIGJU
ZW1wb3JhcnkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlm
ZXN0RnVsbFBhdGgsYlRlbXBvcmFyeSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFwcGxpY2F0
aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5S
ZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBi
b29sIElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FwcGxpY2F0aW9uSW5zdGFsbGVk
KHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQ291bnQoKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlvbklu
ZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBL
ZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVuQXBwbGljYXRpb25J
bmRleCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsc3RyaW5nIHBj
aEFwcEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9u
S2V5QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVy
TGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtl
eSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBM
YXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSxzdHJpbmcg
cGNoTmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlzKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaFRlbXBs
YXRlQXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3QXBwS2V5LHBLZXlzLCh1aW50
KSBwS2V5cy5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21N
aW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFyZ3MpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNoQXBw
bGljYXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJncyk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVy
cm9yIExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hE
YXNoYm9hcmRPdmVybGF5KHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHN0
cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5KTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBLZXkp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZu
VGFibGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxwY2hBcHBLZXkpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRB
cHBsaWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHBjaEFw
cEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRp
b25FcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBG
blRhYmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoc3RyaW5nIHBj
aEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxTeXN0ZW0uVGV4dC5TdHJp
bmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1blByb3BlcnR5VmFsdWVCdWZm
ZXJMZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5n
KHBjaEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1ZmZlcix1blByb3BlcnR5VmFs
dWVCdWZmZXJMZW4scmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbChz
dHJpbmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJB
cHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wocGNoQXBwS2V5LGVQcm9w
ZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0cmlu
ZyBwY2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHkscmVmIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChwY2hBcHBLZXksZVByb3Bl
cnR5LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoKHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRBcHBsaWNhdGlv
bkF1dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBs
aWNhdGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBwY2hB
cHBLZXksc3RyaW5nIHBjaE1pbWVUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBw
bGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZv
ck1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQg
dW5BcHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUocGNoTWltZVR5cGUscGNo
QXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25TdXBwb3J0
ZWRNaW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLHVp
bnQgdW5NaW1lVHlwZXNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMocGNoQXBwS2V5LHBj
aE1pbWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uc1Ro
YXRTdXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcHBLZXlzVGhh
dFN1cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcikKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUaGF0
U3VwcG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcix1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1l
bnRzKHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1bkFyZ3MpCisgICAgICAgewor
ICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25MYXVuY2hB
cmd1bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBHZXRT
dGFydGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1
ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVz
dWx0ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBjaEFwcEtleUJ1ZmZlcix1bkFw
cEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9u
U3RhdGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9u
U3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9u
RXJyb3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtleSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhwY2hBcHBLZXkpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdl
dEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShFVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25TdGF0ZSBzdGF0ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1
bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShz
dGF0ZSk7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1
bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVz
dGVkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEludGVybmFs
UHJvY2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNoQXJndW1lbnRzLHN0cmluZyBw
Y2hXb3JraW5nRGlyZWN0b3J5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFsUHJvY2VzcyhwY2hCaW5hcnlQ
YXRoLHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNjZW5l
UHJvY2Vzc0lkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZQoreworICAgICAg
IElWUkNoYXBlcm9uZSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZShJbnRQ
dHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQ2hh
cGVyb25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkNoYXBl
cm9uZSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENoYXBlcm9u
ZUNhbGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYWxpYnJhdGlvblN0YXRlKCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBi
b29sIEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJlZiBmbG9hdCBwU2l6ZVopCisg
ICAgICAgeworICAgICAgICAgICAgICBwU2l6ZVggPSAwOworICAgICAgICAgICAgICBwU2l6ZVog
PSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFTaXpl
KHJlZiBwU2l6ZVgscmVmIHBTaXplWik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90
IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0
UGxheUFyZWFSZWN0KHJlZiByZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgU2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXksaW50
IG5OdW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVm
IEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9yQXJyYXksbk51bU91dHB1dENv
bG9ycyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYgcE91dHB1dENhbWVyYUNvbG9y
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQXJlQm91bmRzVmlzaWJs
ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2UpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9yY2UpOworICAgICAgIH0KK30K
KworCitwdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKK3sKKyAgICAgICBJVlJDaGFwZXJv
bmVTZXR1cCBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZVNldHVwKEludFB0
ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJDaGFw
ZXJvbmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJD
aGFwZXJvbmVTZXR1cCkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDb21taXRXb3Jr
aW5nQ29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdvcmtpbmdDb3B5KGNvbmZpZ0Zp
bGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLlJldmVydFdvcmtpbmdDb3B5KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdl
dFdvcmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVaKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsKKyAgICAgICAgICAgICAgcFNpemVa
ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5
QXJlYVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVj
dChyZWYgSG1kUXVhZF90IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgcmVjdCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0gMDsKKyAgICAgICAgICAg
ICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG51
bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBI
bWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUu
R2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0Nv
dW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVh
ZHNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAw
OworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJv
dW5kc0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7CisgICAgICAgICAgICAgIHBRdWFkc0J1
ZmZlcj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKKyAgICAgICAgICAgICAgcmVzdWx0
ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1
blF1YWRzQ291bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5n
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0
V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFN0YW5kaW5n
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoZmxv
YXQgc2l6ZVgsZmxvYXQgc2l6ZVopCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNl
dFdvcmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRz
QnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFkc0J1ZmZlci5MZW5ndGgpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ1Nl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBw
TWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmls
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVsb2FkRnJvbURpc2soY29uZmln
RmlsZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldExpdmVTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwbWF0U2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3Vu
ZHNUYWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIsKHVp
bnQpIHBUYWdzQnVmZmVyLkxlbmd0aCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdl
dExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBbXSBwVGFnc0J1ZmZlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQgPSAwOworICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKG51
bGwscmVmIHB1blRhZ0NvdW50KTsKKyAgICAgICAgICAgICAgcFRhZ3NCdWZmZXI9IG5ldyBieXRl
W3B1blRhZ0NvdW50XTsKKyAgICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1blRhZ0NvdW50KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU2V0
V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldFdvcmtpbmdQaHlz
aWNhbEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3RoKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJv
b2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZl
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7CisgICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZv
KG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5l
dyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFi
bGUuR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1YWRzQ291
bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgYm9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwQnVm
ZmVyLHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcG5C
dWZmZXJMZW5ndGggPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuRXhw
b3J0TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSW1wb3J0RnJv
bUJ1ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5JbXBvcnRGbGFncykKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5JbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNvbXBvc2l0b3IKK3sKKyAg
ICAgICBJVlJDb21wb3NpdG9yIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQ29tcG9zaXRv
cihJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAo
SVZSQ29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJ
VlJDb21wb3NpdG9yKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFRyYWNraW5n
U3BhY2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2luKTsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcmVzdWx0ID0gRm5U
YWJsZS5HZXRUcmFja2luZ1NwYWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2VzKFRy
YWNrZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxUcmFja2VkRGV2aWNlUG9zZV90
IFtdIHBHYW1lUG9zZUFycmF5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRv
ckVycm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBSZW5kZXJQb3NlQXJyYXksKHVp
bnQpIHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFycmF5LCh1aW50KSBwR2FtZVBv
c2VBcnJheS5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQb3NlcyhUcmFja2VkRGV2
aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBwR2Ft
ZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBwUmVu
ZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJyYXku
TGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCh1aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dFBvc2Us
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TGFzdFBvc2VG
b3JUcmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYgcE91dHB1dFBvc2UscmVmIHBP
dXRwdXRHYW1lUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KEVWUkV5ZSBlRXllLHJlZiBU
ZXh0dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsRVZSU3VibWl0
RmxhZ3MgblN1Ym1pdEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRv
ckVycm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVmIHBUZXh0dXJlLHJlZiBwQm91
bmRzLG5TdWJtaXRGbGFncyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5n
IHBUaW1pbmcsdWludCB1bkZyYW1lc0FnbykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRpbWluZyx1bkZyYW1lc0Fnbyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1
aW50IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLHVp
bnQgbkZyYW1lcykKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGcmFtZVRpbWVS
ZW1haW5pbmcoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21w
b3NpdG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3RhdHNTaXplSW5CeXRlcykKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBwU3Rh
dHMsblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGYWRl
VG9Db2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1
ZSxmbG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3JlZW4sZkJsdWUsZkFscGhhLGJC
YWNrZ3JvdW5kKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhtZENvbG9yX3QgR2V0Q3VycmVu
dEZhZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1k
Q29sb3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRlQ29sb3IoYkJhY2tncm91bmQp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRlSW4pCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJGYWRlSW4pOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBoYSgpCisgICAgICAgeworICAg
ICAgICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRHcmlkQWxwaGEoKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
UkNvbXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0dXJlX3QgW10gcFRleHR1cmVz
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50KSBwVGV4dHVyZXMuTGVuZ3Ro
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
Q29tcG9zaXRvckJyaW5nVG9Gcm9udCgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
Q29tcG9zaXRvckdvVG9CYWNrKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ29t
cG9zaXRvckdvVG9CYWNrKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0
b3JRdWl0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9zaXRvclF1aXQo
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNGdWxsc2NyZWVuKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Z1bGxzY3JlZW4oKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
TGFzdEZyYW1lUmVuZGVyZXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQg
PSBGblRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhblJlbmRlclNjZW5lKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYW5SZW5kZXJTY2Vu
ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBTaG93TWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFi
bGUuU2hvd01pcnJvcldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBIaWRl
TWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuSGlkZU1pcnJv
cldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc01pcnJvcldpbmRvd1Zp
c2libGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklz
TWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpCisgICAgICAg
eworICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNob3VsZEFwcFJl
bmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9u
KGJvb2wgYk92ZXJyaWRlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUlu
dGVybGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVuZCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5
ZSBlRXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNo
YWRlclJlc291cmNlVmlldykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVEM0QxMShlRXllLHBEM0QxMURl
dmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZWxlYXNl
TWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEocEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkNvbXBv
c2l0b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUscmVmIHVpbnQgcGdsVGV4
dHVyZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVFeWUscmVmIHBnbFRleHR1cmVJ
ZCxwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSh1aW50
IGdsVGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVNoYXJlZEdMVGV4dHVyZShn
bFRleHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBMb2NrR0xTaGFyZWRUZXh0dXJl
Rm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgVW5sb2NrR0xTaGFyZWRU
ZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRWdWxr
YW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBj
aFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBjaFZh
bHVlLHVuQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJ
bnRQdHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUs
dWludCB1bkJ1ZmZlclNpemUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9
IEZuVGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBQaHlzaWNhbERldmlj
ZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZST3ZlcmxheQoreworICAgICAgIElWUk92
ZXJsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJPdmVybGF5KEludFB0ciBwSW50ZXJm
YWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJPdmVybGF5KU1hcnNo
YWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUk92ZXJsYXkpKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5kT3ZlcmxheShzdHJpbmcgcGNo
T3ZlcmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAg
ICAgICBwT3ZlcmxheUhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlLZXkscmVmIHBPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0
cmluZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0gMDsKKyAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlT3ZlcmxheShwY2hPdmVybGF5
S2V5LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5EZXN0cm95T3Zlcmxh
eSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCisgICAgICAgeworICAgICAgICAgICAg
ICB1bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRP
dmVybGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVy
IHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVycm9yKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlL
ZXkodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5c3RlbS5UZXh0LlN0cmluZ0J1
aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVWUk92ZXJsYXlFcnJvciBwRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zl
cmxheU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxJbnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVmIHVpbnQgcHVuV2lkdGgscmVm
IHVpbnQgcHVuSGVpZ2h0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuV2lkdGggPSAwOwor
ICAgICAgICAgICAgICBwdW5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRhKHVsT3ZlcmxheUhhbmRsZSxw
dkJ1ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBwdW5IZWlnaHQpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdl
dE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJyb3IgZXJyb3IpCisgICAgICAg
eworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5RXJyb3JO
YW1lRnJvbUVudW0oZXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0
cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuUElE
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUsdW5QSUQpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRP
dmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVs
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxib29sIGJFbmFibGVkKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0
T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxiRW5hYmxlZCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUZs
YWdzIGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCisgICAgICAgeworICAgICAgICAg
ICAgICBwYkVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5Rmxh
ZyxyZWYgcGJFbmFibGVkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IodWxvbmcgdWxP
dmVybGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZsb2F0IGZCbHVlKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zl
cmxheUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixmQmx1ZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZSZWQs
cmVmIGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBmUmVkID0gMDsKKyAgICAgICAgICAgICAgcGZHcmVlbiA9IDA7CisgICAgICAgICAgICAg
IHBmQmx1ZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVmIHBmUmVkLHJlZiBwZkdyZWVu
LHJlZiBwZkJsdWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsZmxvYXQgZkFscGhhKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxm
QWxwaGEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIGZsb2F0IHBmQWxwaGEpCisgICAgICAgeworICAgICAgICAgICAgICBwZkFscGhhID0g
MDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zl
cmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmVGV4ZWxBc3Bl
Y3QpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLGZUZXhlbEFzcGVjdCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBmVGV4
ZWxBc3BlY3QgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLHJlZiBwZlRleGVsQXNw
ZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSx1aW50IHVuU29ydE9yZGVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRPcmRlcih1bE92ZXJsYXlIYW5k
bGUsdW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcg
dWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHB1blNvcnRPcmRlciA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHJlZiBw
dW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlXaWR0aElu
TWV0ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0
T3ZlcmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZldp
ZHRoSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBwZldpZHRoSW5NZXRlcnMgPSAw
OworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmV2lkdGhJbk1ldGVycyk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsZmxvYXQgZk1heERp
c3RhbmNlSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
KHVsT3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxmTWF4RGlzdGFuY2VJbk1ldGVy
cyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVy
cyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycyxy
ZWYgZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
cGZNaW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgcGZNYXhEaXN0YW5jZUlu
TWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlIYW5k
bGUscmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5
SGFuZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJl
Q29sb3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4dHVy
ZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4
dHVyZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
LHJlZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlU
cmFuc2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFuc2Zvcm1UeXBlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
LEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRf
dCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNr
aW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJh
bnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBFVHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09y
aWdpblRvT3ZlcmxheVRyYW5zZm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bE92
ZXJsYXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNr
ZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blRyYWNrZWREZXZp
Y2UscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0p
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRs
ZSx1blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3Jt
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLHJlZiBIbWRN
YXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2
aWNlUmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0
VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVp
bnQgdW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUcmFu
c2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSx1bkRldmljZUluZGV4
LHBjaENvbXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5EZXZp
Y2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZVNpemUp
CisgICAgICAgeworICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRleCA9IDA7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1U
cmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuRGV2aWNlSW5kZXgs
cGNoQ29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTaG93
T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBF
VlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3ZlcmxheSh1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkhp
ZGVPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzT3ZlcmxheVZpc2libGUodWxvbmcgdWxP
dmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRU
cmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxPdmVybGF5SGFuZGxlLEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRWZWN0b3IyX3QgY29vcmRpbmF0
ZXNJbk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5zZm9ybSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFRyYW5zZm9y
bUZvck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUsZVRyYWNraW5nT3JpZ2luLGNv
b3JkaW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRPdmVybGF5
RXZlbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQgdW5j
YlZSRXZlbnQpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
UG9sbE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJlZiBwRXZlbnQsdW5jYlZSRXZl
bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRNZXRob2QpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
SW5wdXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0TWV0aG9kKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3Zlcmxh
eUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnB1dE1ldGhvZCh1bE92ZXJs
YXlIYW5kbGUsZUlucHV0TWV0aG9kKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2Fs
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU1vdXNlU2NhbGUo
dWxPdmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENvbXB1dGVPdmVybGF5SW50
ZXJzZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9u
UGFyYW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1
bHRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1
dGVPdmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFBhcmFtcyxyZWYgcFJl
c3VsdHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5IYW5kbGVDb250cm9sbGVyT3Zl
cmxheUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUsdW5Db250cm9sbGVyRGV2aWNl
SW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNIb3ZlclRhcmdl
dE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdldEdhbWVwYWRGb2N1c092ZXJsYXkoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRHYW1lcGFk
Rm9jdXNPdmVybGF5KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1bG9u
ZyB1bE5ld0ZvY3VzT3ZlcmxheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxOZXdGb2N1c092
ZXJsYXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlv
biBlRGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU5laWdoYm9y
KGVEaXJlY3Rpb24sdWxGcm9tLHVsVG8pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9jdXNU
b05laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sdWxvbmcgdWxGcm9tKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuTW92
ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZyb20pOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVGV4dHVyZV90IHBU
ZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFuZGxlLHJlZiBwVGV4dHVyZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5DbGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5X
aWR0aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSYXcodWxPdmVybGF5
SGFuZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0aCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
U2V0T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxzdHJpbmcgcGNoRmlsZVBh
dGgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxlLHBjaEZpbGVQYXRoKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIElu
dFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYscmVmIHVp
bnQgcFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCxyZWYgRVRl
eHR1cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29sb3JTcGFjZSxyZWYgVlJUZXh0
dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAgICAgICAgICAgICBwV2lk
dGggPSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgcE5hdGl2
ZUZvcm1hdCA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE5hdGl2ZVRleHR1cmVI
YW5kbGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYgcEhlaWdodCxyZWYgcE5hdGl2
ZUZvcm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJlZiBwVGV4dHVyZUJvdW5kcyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5
SGFuZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VOYXRpdmVPdmVybGF5
SGFuZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhhbmRsZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBw
V2lkdGgscmVmIHVpbnQgcEhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBXaWR0aCA9
IDA7CisgICAgICAgICAgICAgIHBIZWlnaHQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZVNpemUodWxPdmVybGF5SGFu
ZGxlLHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2Fy
ZE92ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5h
bWUscmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1bWJuYWlsSGFuZGxlKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOworICAgICAgICAgICAgICBwVGh1
bWJuYWlsSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJsYXlG
cmllbmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJuYWlsSGFuZGxlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNE
YXNoYm9hcmRWaXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZS
T3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJv
Y2Vzcyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldERhc2hi
b2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1
blByb2Nlc3NJZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1blByb2Nlc3NJZCA9IDA7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldERhc2hib2Fy
ZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJlZiBwdW5Qcm9jZXNzSWQpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9p
ZCBTaG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJsYXlUb1Nob3cpOworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcmltYXJ5RGFzaGJv
YXJkRGV2aWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLGlu
dCBlTGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgsc3Ry
aW5nIHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZhbHVl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1vZGUscGNoRGVzY3JpcHRpb24s
dW5DaGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1vZGUsdVVzZXJWYWx1ZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
aW50IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmluZyBwY2hEZXNjcmlwdGlvbix1
aW50IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJvb2wgYlVzZU1pbmltYWxNb2Rl
LHVsb25nIHVVc2VyVmFsdWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsT3ZlcmxheUhhbmRs
ZSxlSW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxwY2hF
eGlzdGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRLZXlib2FyZFRl
eHQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVpbnQgY2NoVGV4dCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRLZXlib2FyZFRleHQo
cGNoVGV4dCxjY2hUZXh0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuSGlkZUtleWJvYXJkKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lk
IFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9h
cmRUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEtleWJvYXJk
VHJhbnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmlnaW5U
b0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0S2V5
Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLEhtZFJlY3QyX3Qg
YXZvaWRSZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2FyZFBv
c2l0aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRSZWN0KTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRp
dmVfdCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmltaXRpdmVzLHVpbnQgdW5Qcmlt
aXRpdmVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2sodWxPdmVybGF5SGFuZGxlLHJl
ZiBwTWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1blByaW1pdGl2ZVNpemUpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVp
bnQgcEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcEZsYWdzID0gMDsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWdzKHVs
T3ZlcmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVz
c2FnZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENhcHRpb24sc3RyaW5nIHBjaEJ1
dHRvbjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcgcGNoQnV0dG9uMlRleHQsc3Ry
aW5nIHBjaEJ1dHRvbjNUZXh0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zl
cmxheVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3NhZ2VPdmVybGF5KHBjaFRleHQs
cGNoQ2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4dCxwY2hCdXR0b24yVGV4dCxw
Y2hCdXR0b24zVGV4dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
fQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBJVlJSZW5kZXJN
b2RlbHMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZW5kZXJNb2RlbHMoSW50UHRyIHBJ
bnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlJlbmRlck1v
ZGVscylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJSZW5kZXJN
b2RlbHMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9h
ZFJlbmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUscmVmIEludFB0ciBw
cFJlbmRlck1vZGVsKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3luYyhwY2hSZW5kZXJNb2RlbE5h
bWUscmVmIHBwUmVuZGVyTW9kZWwpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJN
b2RlbCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRnJlZVJlbmRlck1vZGVsKHBS
ZW5kZXJNb2RlbCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9y
IExvYWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIEludFB0ciBwcFRleHR1cmUpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuTG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRleHR1cmUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4
dHVyZShJbnRQdHIgcFRleHR1cmUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZy
ZWVUZXh0dXJlKHBUZXh0dXJlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJlbmRlck1v
ZGVsRXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBwRDNE
MTFEZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJlRDNE
MTFfQXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBEM0QxMVRleHR1cmUyRCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJS
ZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQs
SW50UHRyIHBEc3RUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9k
ZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKHRleHR1
cmVJZCxwRHN0VGV4dHVyZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRleHR1
cmUyRCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRnJlZVRleHR1cmVEM0QxMShw
RDNEMTFUZXh0dXJlMkQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJN
b2RlbE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVsTmFtZUxlbikKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE5hbWUo
dW5SZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1blJlbmRlck1vZGVsTmFtZUxl
bik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB1aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWlu
dCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQoKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9uZW50
Q291bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3VudChwY2hSZW5kZXJNb2RlbE5h
bWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1
bkNvbXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFt
ZSx1aW50IHVuQ29tcG9uZW50TmFtZUxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJlbmRlck1vZGVsTmFtZSx1bkNv
bXBvbmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lTGVuKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdl
dENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNo
Q29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZu
VGFibGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9u
ZW50TmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVuZGVy
TW9kZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRSZW5kZXJNb2Rl
bE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUu
R2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25l
bnROYW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudFJlbmRlck1vZGVs
TmFtZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhp
cyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJv
bGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9u
ZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFt
ZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQg
cENvbnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBw
U3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsK
KyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVj
dCBHZXRDb21wb25lbnRTdGF0ZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmllbGRP
ZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5kZXJNb2RlbHMuX0dldENvbXBv
bmVudFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0
KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVudFN0YXRlUGFja2VkIHBHZXRD
b21wb25lbnRTdGF0ZVBhY2tlZDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0Q29t
cG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50
TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHJlZiBSZW5kZXJN
b2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29tcG9u
ZW50U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCisgICAgICAgeworICAgICAgICAgICAgICBpZiAo
KFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3Jt
SUQuTWFjT1NYKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJv
bm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb21wb25lbnRTdGF0ZVVuaW9u
IHU7CisgICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBzdGF0
ZV9wYWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJsZS5HZXRDb21wb25lbnRTdGF0
ZTsKKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jlc3VsdCA9IHUucEdldENvbXBv
bmVudFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBz
dGF0ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKworICAgICAgICAg
ICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3RhdGUo
cGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVmIHBDb250cm9sbGVyU3RhdGUs
cmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVuZGVyTW9kZWxIYXNDb21wb25l
bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5SZW5kZXJNb2RlbEhh
c0NvbXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFJl
bmRlck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsU3lzdGVtLlRl
eHQuU3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1blRodW1ibmFpbFVSTExlbixy
ZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
dWludCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHBjaFJlbmRl
ck1vZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxVUkxMZW4scmVmIHBlRXJyb3Ip
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dWludCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1l
LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLHVpbnQgdW5PcmlnaW5h
bFBhdGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0
aChwY2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVuT3JpZ2luYWxQYXRoTGVuLHJl
ZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJlbmRl
ck1vZGVsRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0
ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAg
fQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25zCit7CisgICAgICAgSVZSTm90
aWZpY2F0aW9ucyBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUk5vdGlmaWNhdGlvbnMoSW50
UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUk5v
dGlmaWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZS
Tm90aWZpY2F0aW9ucykpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0aW9u
RXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1bG9uZyB1bFVz
ZXJWYWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5nIHBjaFRleHQsRVZSTm90aWZp
Y2F0aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1hcF90IHBJbWFnZSxyZWYgdWlu
dCBwTm90aWZpY2F0aW9uSWQpCisgICAgICAgeworICAgICAgICAgICAgICBwTm90aWZpY2F0aW9u
SWQgPSAwOworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRh
YmxlLkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUsdWxVc2VyVmFsdWUsdHlwZSxw
Y2hUZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJOb3RpZmljYXRp
b25FcnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25JZCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuUmVt
b3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUlNldHRpbmdzCit7CisgICAg
ICAgSVZSU2V0dGluZ3MgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTZXR0aW5ncyhJbnRQ
dHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2V0
dGluZ3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2V0dGlu
Z3MpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRTZXR0aW5nc0Vycm9yTmFt
ZUZyb21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShl
RXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVz
dWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU3luYyhib29sIGJGb3JjZSxyZWYg
RVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0Qm9vbChzdHJp
bmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9vbCBiVmFsdWUscmVmIEVWUlNl
dHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0
Qm9vbChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxyZWYgcGVFcnJvcik7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0cmlu
ZyBwY2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3Ip
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEludDMyKHBjaFNlY3Rpb24scGNo
U2V0dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGZs
b2F0IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxmbFZh
bHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0U3RyaW5n
KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxzdHJpbmcgcGNoVmFsdWUs
cmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZu
VGFibGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUscmVmIHBl
RXJyb3IpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sKHN0cmluZyBwY2hT
ZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJvb2wo
cGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzIoc3RyaW5n
IHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBl
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJ
bnQzMihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGZsb2F0IEdldEZsb2F0
KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
R2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1ZUxlbixyZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRTdHJp
bmcocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1blZhbHVlTGVuLHJlZiBwZUVy
cm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVtb3ZlU2VjdGlvbihzdHJpbmcg
cGNoU2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rpb24scmVmIHBlRXJyb3IpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5nIHBj
aFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbW92ZUtleUluU2VjdGlvbihw
Y2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAgICAgICB9Cit9CisKKwor
cHVibGljIGNsYXNzIENWUlNjcmVlbnNob3RzCit7CisgICAgICAgSVZSU2NyZWVuc2hvdHMgRm5U
YWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJbnRQdHIgcEludGVyZmFjZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2NyZWVuc2hvdHMpTWFyc2hh
bC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2NyZWVuc2hvdHMpKTsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0U2NyZWVuc2hv
dChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0
cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCisgICAgICAgewor
ICAgICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVW
UlNjcmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVlc3RTY3JlZW5zaG90KHJlZiBw
T3V0U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1l
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJTY3JlZW5zaG90VHlwZSBbXSBw
U3VwcG9ydGVkVHlwZXMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3VwcG9ydGVkVHlwZXMsKGludCkg
cFN1cHBvcnRlZFR5cGVzLkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90UHJv
cGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBF
cnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIHJlc3VsdCA9
IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3JlZW5zaG90SGFuZGxlLHJlZiBw
RXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSh1aW50IHNjcmVlbnNob3RI
YW5kbGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSxTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2NoRmlsZW5hbWUscmVmIEVWUlNj
cmVlbnNob3RFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3Vs
dCA9IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoc2NyZWVuc2hvdEhhbmRs
ZSxmaWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUscmVmIHBFcnJvcik7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3Jl
ZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRs
ZSxmbG9hdCBmbFByb2dyZXNzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hv
dEVycm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHNjcmVlbnNo
b3RIYW5kbGUsZmxQcm9ncmVzcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNo
b3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5nIHBjaFByZXZpZXdGaWxlbmFt
ZSxzdHJpbmcgcGNoVlJGaWxlbmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBPdXRTY3Jl
ZW5zaG90SGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBPdXRTY3JlZW5zaG90SGFuZGxl
LHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBTdWJt
aXRTY3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBl
LHN0cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5h
bWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hTb3VyY2VQ
cmV2aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZXNvdXJjZXMKK3sK
KyAgICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZXNvdXJj
ZXMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0g
KElWUlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJ
VlJSZXNvdXJjZXMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgTG9hZFNoYXJlZFJl
c291cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBjaEJ1ZmZlcix1aW50IHVuQnVm
ZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkxv
YWRTaGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVmZmVyLHVuQnVmZmVyTGVuKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVp
bnQgR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hS
ZXNvdXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZmZXIsdWludCB1bkJ1ZmZlckxl
bikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZXNv
dXJjZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkscGNo
UGF0aEJ1ZmZlcix1bkJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBPcGVuVlJJbnRlcm9wCit7CisgICAgICAgW0Rs
bEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSW5pdEludGVy
bmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAg
ICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5pdEVy
cm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlKTsKKyAgICAg
ICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9TaHV0
ZG93bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVj
bCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lkIFNodXRkb3duSW50ZXJuYWwo
KTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9
ICJWUl9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9u
LkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNIbWRQcmVzZW50
KCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQg
PSAiVlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29u
dmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzUnVu
dGltZUluc3RhbGxlZCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGki
LCBFbnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9yIiwgQ2FsbGluZ0NvbnZlbnRp
b24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4
dGVybiBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKTsKKyAg
ICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9H
ZXRHZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlv
bi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0R2VuZXJp
Y0ludGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQU3RyKV0gc3RyaW5nIHBj
aEludGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvcik7CisgICAgICAgW0Rs
bEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNk
ZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBwY2hJ
bnRlcmZhY2VWZXJzaW9uKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBp
IiwgRW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxsaW5nQ29udmVudGlvbiA9IENh
bGxpbmdDb252ZW50aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIHVp
bnQgR2V0SW5pdFRva2VuKCk7Cit9CisKKworcHVibGljIGVudW0gRVZSRXllCit7CisgICAgICAg
RXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEsCit9CitwdWJsaWMgZW51bSBFVGV4
dHVyZVR5cGUKK3sKKyAgICAgICBEaXJlY3RYID0gMCwKKyAgICAgICBPcGVuR0wgPSAxLAorICAg
ICAgIFZ1bGthbiA9IDIsCisgICAgICAgSU9TdXJmYWNlID0gMywKKyAgICAgICBEaXJlY3RYMTIg
PSA0LAorfQorcHVibGljIGVudW0gRUNvbG9yU3BhY2UKK3sKKyAgICAgICBBdXRvID0gMCwKKyAg
ICAgICBHYW1tYSA9IDEsCisgICAgICAgTGluZWFyID0gMiwKK30KK3B1YmxpYyBlbnVtIEVUcmFj
a2luZ1Jlc3VsdAoreworICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIENhbGlicmF0
aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCisgICAgICAgQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEw
MSwKKyAgICAgICBSdW5uaW5nX09LID0gMjAwLAorICAgICAgIFJ1bm5pbmdfT3V0T2ZSYW5nZSA9
IDIwMSwKK30KK3B1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBJbnZh
bGlkID0gMCwKKyAgICAgICBITUQgPSAxLAorICAgICAgIENvbnRyb2xsZXIgPSAyLAorICAgICAg
IEdlbmVyaWNUcmFja2VyID0gMywKKyAgICAgICBUcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9Citw
dWJsaWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgSW52YWxpZCA9IDAs
CisgICAgICAgTGVmdEhhbmQgPSAxLAorICAgICAgIFJpZ2h0SGFuZCA9IDIsCit9CitwdWJsaWMg
ZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIFRyYWNraW5nVW5pdmVyc2VT
ZWF0ZWQgPSAwLAorICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAgICAg
VHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCit9CitwdWJsaWMgZW51bSBF
VHJhY2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9JbnZhbGlkID0gMCwKKyAgICAg
ICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAorICAgICAgIFByb3BfTW9k
ZWxOdW1iZXJfU3RyaW5nID0gMTAwMSwKKyAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcg
PSAxMDAyLAorICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCisgICAg
ICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVmYWN0
dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJz
aW9uX1N0cmluZyA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyA9
IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcg
PSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0gMTAw
OSwKKyAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9IDEwMTAsCisgICAgICAgUHJv
cF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0dGVy
eVBlcmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAorICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5z
Zm9ybV9NYXRyaXgzNCA9IDEwMTMsCisgICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFi
bGVfQm9vbCA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9
IDEwMTUsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAx
NiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0gMTAxNywKKyAgICAgICBQ
cm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAorICAgICAgIFByb3BfRlBHQVZlcnNp
b25fVWludDY0ID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwK
KyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAorICAgICAgIFByb3BfRG9u
Z2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93
bl9Cb29sID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhI
bWRfQm9vbCA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29s
ID0gMTAyNSwKKyAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0g
MTAyNiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAorICAgICAg
IFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKKyAgICAgICBQ
cm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBQcm9wX0hhc0NhbWVyYV9Cb29s
ID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKKyAgICAg
ICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCisgICAgICAg
UHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCisgICAgICAgUHJv
cF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKKyAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2lu
Y2VWU3luY19Cb29sID0gMjAwMCwKKyAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnNfRmxvYXQgPSAyMDAxLAorICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIw
MDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBQcm9w
X0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCisgICAgICAgUHJvcF9QcmV2aW91c1Vu
aXZlcnNlSWRfVWludDY0ID0gMjAwNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNp
b25fVWludDY0ID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3LAor
ICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxv
YXQgPSAyMDEwLAorICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKKyAgICAg
ICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEyLAorICAgICAgIFByb3BfRGlz
cGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAgIFByb3BfRGlzcGxheUdDQmxh
Y2tDbGFtcF9GbG9hdCA9IDIwMTQsCisgICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0g
MjAxNSwKKyAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIwMTYs
CisgICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAxNywKKyAgICAgICBQcm9wX0Rp
c3BsYXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9G
bG9hdCA9IDIwMTksCisgICAgICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAs
CisgICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAorICAgICAgIFByb3Bf
TGVuc0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0
Vl9GbG9hdCA9IDIwMjMsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0gMjAy
NCwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAorICAgICAgIFBy
b3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKKyAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAorICAgICAgIFByb3BfQ2FtZXJhRmly
bXdhcmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAgIFByb3BfRGlzcGxheUZQR0FW
ZXJzaW9uX1VpbnQ2NCA9IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNp
b25fVWludDY0ID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWlu
dDY0ID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIw
MzIsCisgICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCisg
ICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9
IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNf
RmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIwMzYs
CisgICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCisgICAgICAg
UHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdl
TnVtQ2hhbm5lbHNfSW50MzIgPSAyMDQwLAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRh
X0JpbmFyeSA9IDIwNDEsCisgICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0g
MjA0MiwKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKKyAgICAg
ICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwKKyAgICAgICBQcm9wX0F4aXMw
VHlwZV9JbnQzMiA9IDMwMDIsCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAzMDAzLAor
ICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKKyAgICAgICBQcm9wX0F4aXMzVHlw
ZV9JbnQzMiA9IDMwMDUsCisgICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAorICAg
ICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKKyAgICAgICBQcm9wX0Zp
ZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAgICAgIFByb3BfRmllbGRPZlZp
ZXdSaWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BE
ZWdyZWVzX0Zsb2F0ID0gNDAwMiwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVl
c19GbG9hdCA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19G
bG9hdCA9IDQwMDQsCisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9h
dCA9IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAgICBQ
cm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0
aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVNlYXJjaGluZ19TdHJpbmcgPSA1MDAyLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VSZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlTm90UmVhZHlfU3RyaW5nID0gNTAwNiwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VTdGFuZGJ5X1N0cmluZyA9IDUwMDcsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
QWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0Jp
bmFyeV9TdGFydCA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlf
RW5kID0gNTE1MCwKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAsCisg
ICAgICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAorICAgICAgIFByb3BfVmVuZG9y
U3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKKyAgICAgICBQcm9wX1ZlbmRvclNwZWNp
ZmljX1Jlc2VydmVkX0VuZCA9IDEwOTk5LAorfQorcHVibGljIGVudW0gRVRyYWNrZWRQcm9wZXJ0
eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9IDAsCisgICAgICAgVHJhY2tl
ZFByb3BfV3JvbmdEYXRhVHlwZSA9IDEsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VD
bGFzcyA9IDIsCisgICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAorICAgICAg
IFRyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisgICAgICAgVHJhY2tlZFByb3BfSW52
YWxpZERldmljZSA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVy
ID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3LAor
ICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAgICAg
ICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAorICAgICAgIFRyYWNrZWRQcm9wX1Bl
cm1pc3Npb25EZW5pZWQgPSAxMCwKKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9u
ID0gMTEsCit9CitwdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAgIFN1Ym1pdF9E
ZWZhdWx0ID0gMCwKKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9
IDEsCisgICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKKyAgICAgICBTdWJtaXRfUmVz
ZXJ2ZWQgPSA0LAorfQorcHVibGljIGVudW0gRVZSU3RhdGUKK3sKKyAgICAgICBVbmRlZmluZWQg
PSAtMSwKKyAgICAgICBPZmYgPSAwLAorICAgICAgIFNlYXJjaGluZyA9IDEsCisgICAgICAgU2Vh
cmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBSZWFkeSA9IDMsCisgICAgICAgUmVhZHlfQWxlcnQg
PSA0LAorICAgICAgIE5vdFJlYWR5ID0gNSwKKyAgICAgICBTdGFuZGJ5ID0gNiwKKyAgICAgICBS
ZWFkeV9BbGVydF9Mb3cgPSA3LAorfQorcHVibGljIGVudW0gRVZSRXZlbnRUeXBlCit7CisgICAg
ICAgVlJFdmVudF9Ob25lID0gMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0
ZWQgPSAxMDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgPSAxMDEs
CisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKKyAgICAgICBWUkV2
ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAorICAgICAgIFZS
RXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUg
PSAxMDYsCisgICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAorICAgICAgIFZSRXZlbnRfV2F0
Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlv
bkNoYW5nZWQgPSAxMTAsCisgICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCisg
ICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKKyAgICAgICBWUkV2ZW50X0J1dHRvblVu
cHJlc3MgPSAyMDEsCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKKyAgICAgICBW
UkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAgVlJFdmVudF9Nb3VzZU1vdmUgPSAz
MDAsCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCisgICAgICAgVlJFdmVu
dF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciA9IDMwMywK
KyAgICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCisgICAgICAgVlJFdmVudF9TY3JvbGwg
PSAzMDUsCisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCisgICAgICAgVlJFdmVu
dF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0Nh
cHR1cmVkID0gNDAwLAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAor
ICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisgICAgICAgVlJFdmVudF9TY2Vu
ZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5n
ZWQgPSA0MDQsCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKKyAgICAg
ICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIFZSRXZlbnRfU2NlbmVB
cHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCisgICAgICAgVlJFdmVu
dF9IaWRlUmVuZGVyTW9kZWxzID0gNDEwLAorICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1vZGVs
cyA9IDQxMSwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKKyAgICAgICBWUkV2
ZW50X092ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0
ZWQgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCA9IDUwMywKKyAg
ICAgICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgVlJFdmVudF9SZXNldERhc2hib2Fy
ZCA9IDUwNiwKKyAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3LAorICAgICAgIFZSRXZl
bnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDks
CisgICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisgICAgICAgVlJFdmVudF9PdmVy
bGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVw
YWRGb2N1c0xvc3QgPSA1MTIsCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNo
YW5nZWQgPSA1MTMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1
MTQsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1LAorICAgICAg
IFZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKKyAgICAgICBWUkV2ZW50X0ltYWdl
RmFpbGVkID0gNTE3LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1
MTgsCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKKyAgICAgICBWUkV2
ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWls
ZWQgPSA1MjIsCisgICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1
MjMsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwK
KyAgICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkID0gNTI1LAorICAg
ICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAorICAgICAgIFZSRXZlbnRfTm90
aWZpY2F0aW9uX0hpZGRlbiA9IDYwMSwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdp
bkludGVyYWN0aW9uID0gNjAyLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3ll
ZCA9IDYwMywKKyAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCisgICAgICAgVlJFdmVudF9Qcm9j
ZXNzUXVpdCA9IDcwMSwKKyAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3
MDIsCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAorICAgICAgIFZSRXZl
bnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURh
dGFIYXNDaGFuZ2VkID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXND
aGFuZ2VkID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2Vk
ID0gODAyLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgw
MywKKyAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCisgICAgICAgVlJF
dmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCisgICAgICAgVlJFdmVudF9CYWNr
Z3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAgVlJFdmVudF9DYW1lcmFTZXR0
aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGlu
Z0hhc0NoYW5nZWQgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVD
aGFuZ2VkID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1
LAorICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAorICAgICAgIFZSRXZlbnRfTUNJ
bWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVk
ID0gMTEwMCwKKyAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAor
ICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5
Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIw
MiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAor
ICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwKKyAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAorICAgICAgIFZSRXZl
bnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAorICAgICAgIFZSRXZlbnRfQXBwbGlj
YXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorICAgICAgIFZSRXZl
bnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCisgICAgICAgVlJFdmVudF9D
b21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKKyAgICAgICBWUkV2ZW50X0NvbXBv
c2l0b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBWUkV2ZW50X1RyYWNr
ZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCisgICAgICAgVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9SZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X0VkaXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9F
bmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNh
YmxlQ2FwdHVyZSA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxp
dHlMZXZlbCA9IDE2MDIsCisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAx
NjUwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAw
MCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5LAor
fQorcHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKK3sKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVs
X0lkbGUgPSAwLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9u
ID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9UaW1l
b3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAorfQor
cHVibGljIGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtID0gMCwK
KyAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwKKyAgICAgICBrX0VCdXR0b25f
R3JpcCA9IDIsCisgICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCisgICAgICAga19FQnV0
dG9uX0RQYWRfVXAgPSA0LAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKKyAgICAg
ICBrX0VCdXR0b25fRFBhZF9Eb3duID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSA9IDcsCisgICAg
ICAga19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAgICAgIGtfRUJ1dHRvbl9BeGlz
MCA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAorICAgICAgIGtfRUJ1dHRvbl9B
eGlzMiA9IDM0LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1LAorICAgICAgIGtfRUJ1dHRv
bl9BeGlzNCA9IDM2LAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIsCisg
ICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAorICAgICAgIGtfRUJ1dHRvbl9E
YXNoYm9hcmRfQmFjayA9IDIsCisgICAgICAga19FQnV0dG9uX01heCA9IDY0LAorfQorcHVibGlj
IGVudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBMZWZ0ID0gMSwKKyAgICAgICBSaWdodCA9
IDIsCisgICAgICAgTWlkZGxlID0gNCwKK30KK3B1YmxpYyBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5
cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAga19l
SGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGlu
ZUxvb3AgPSAyLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCit9CitwdWJsaWMg
ZW51bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19O
b25lID0gMCwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAgICAg
a19lQ29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlz
X1RyaWdnZXIgPSAzLAorfQorcHVibGljIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlw
ZQoreworICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCisgICAgICAg
Q29udHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKK30KK3B1YmxpYyBlbnVtIEVDb2xs
aXNpb25Cb3VuZHNTdHlsZQoreworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5O
RVIgPSAwLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwK
KyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMgPSAyLAorICAgICAgIENPTExJ
U0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAgIENPTExJU0lPTl9CT1VORFNf
U1RZTEVfTk9ORSA9IDQsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUs
Cit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAg
ICAgICBVbmtub3duT3ZlcmxheSA9IDEwLAorICAgICAgIEludmFsaWRIYW5kbGUgPSAxMSwKKyAg
ICAgICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCisgICAgICAgT3ZlcmxheUxpbWl0RXhjZWVkZWQg
PSAxMywKKyAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCisgICAgICAgS2V5VG9vTG9u
ZyA9IDE1LAorICAgICAgIE5hbWVUb29Mb25nID0gMTYsCisgICAgICAgS2V5SW5Vc2UgPSAxNywK
KyAgICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKKyAgICAgICBJbnZhbGlkVHJhY2tlZERl
dmljZSA9IDE5LAorICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMCwKKyAgICAgICBUaHVtYm5h
aWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKKyAgICAgICBBcnJheVRvb1NtYWxsID0gMjIsCisgICAg
ICAgUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEludmFsaWRUZXh0dXJlID0gMjQsCisgICAg
ICAgVW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAorICAgICAgIEtleWJvYXJkQWxyZWFkeUluVXNlID0g
MjYsCisgICAgICAgTm9OZWlnaGJvciA9IDI3LAorICAgICAgIFRvb01hbnlNYXNrUHJpbWl0aXZl
cyA9IDI5LAorICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwKK30KK3B1YmxpYyBlbnVtIEVW
UkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLAorICAg
ICAgIFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zlcmxh
eSA9IDIsCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKKyAgICAgICBWUkFw
cGxpY2F0aW9uX1V0aWxpdHkgPSA0LAorICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0g
NSwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAorICAgICAgIFZSQXBw
bGljYXRpb25fTWF4ID0gNywKK30KK3B1YmxpYyBlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAg
ICAgICBOb25lID0gMCwKKyAgICAgICBTdWNjZXNzID0gMSwKKyAgICAgICBGYWlsID0gMiwKK30K
K3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgT0sgPSAwLAorICAg
ICAgIEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBOb3RpZmljYXRpb25RdWV1
ZUZ1bGwgPSAxMDEsCisgICAgICAgSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCisgICAgICAg
U3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9CitwdWJsaWMgZW51bSBF
VlJJbml0RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBVbmtub3duID0gMSwKKyAg
ICAgICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAorICAgICAgIEluaXRfSW5zdGFs
bGF0aW9uQ29ycnVwdCA9IDEwMSwKKyAgICAgICBJbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgPSAx
MDIsCisgICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCisgICAgICAgSW5pdF9GYWN0b3J5
Tm90Rm91bmQgPSAxMDQsCisgICAgICAgSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKKyAg
ICAgICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAgICAgSW5pdF9Vc2VyQ29uZmln
RGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBJbml0X0htZE5vdEZvdW5kID0gMTA4LAor
ICAgICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCisgICAgICAgSW5pdF9QYXRoUmVnaXN0
cnlOb3RGb3VuZCA9IDExMCwKKyAgICAgICBJbml0X05vQ29uZmlnUGF0aCA9IDExMSwKKyAgICAg
ICBJbml0X05vTG9nUGF0aCA9IDExMiwKKyAgICAgICBJbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRh
YmxlID0gMTEzLAorICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWlsZWQgPSAxMTQsCisgICAgICAg
SW5pdF9SZXRyeSA9IDExNSwKKyAgICAgICBJbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDExNiwK
KyAgICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCisgICAgICAgSW5pdF9TZXR0
aW5nc0luaXRGYWlsZWQgPSAxMTgsCisgICAgICAgSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCisg
ICAgICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKKyAgICAgICBJbml0X05vU2VydmVyRm9y
QmFja2dyb3VuZEFwcCA9IDEyMSwKKyAgICAgICBJbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3Np
dG9yID0gMTIyLAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywK
KyAgICAgICBJbml0X0ludGVybmFsID0gMTI0LAorICAgICAgIEluaXRfSG1kRHJpdmVySWRJc05v
bmUgPSAxMjUsCisgICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAor
ICAgICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCisgICAgICAgSW5pdF9WUk1vbml0
b3JTdGFydHVwRmFpbGVkID0gMTI4LAorICAgICAgIEluaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1
cHBvcnRlZCA9IDEyOSwKKyAgICAgICBJbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAs
CisgICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKKyAgICAgICBJ
bml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAorICAgICAgIEluaXRfVlJEYXNo
Ym9hcmROb3RGb3VuZCA9IDEzMywKKyAgICAgICBJbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxl
ZCA9IDEzNCwKKyAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAorICAgICAgIERyaXZlcl9Vbmtu
b3duID0gMjAxLAorICAgICAgIERyaXZlcl9IbWRVbmtub3duID0gMjAyLAorICAgICAgIERyaXZl
cl9Ob3RMb2FkZWQgPSAyMDMsCisgICAgICAgRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQs
CisgICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIERyaXZlcl9Ob3RDYWxpYnJh
dGVkID0gMjA2LAorICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCisgICAg
ICAgRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAgICAgICBEcml2ZXJfVHJhY2tl
ZERldmljZUludGVyZmFjZVVua25vd24gPSAyMDksCisgICAgICAgRHJpdmVyX0htZERyaXZlcklk
T3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIx
MiwKKyAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKKyAgICAgICBJUENfQ29ubmVj
dEZhaWxlZCA9IDMwMSwKKyAgICAgICBJUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAor
ICAgICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywKKyAgICAgICBJUENfTXV0ZXhJ
bml0RmFpbGVkID0gMzA0LAorICAgICAgIElQQ19GYWlsZWQgPSAzMDUsCisgICAgICAgSVBDX0Nv
bXBvc2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAorICAgICAgIElQQ19Db21wb3NpdG9ySW52YWxp
ZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBJUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVs
dGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBDb21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKKyAg
ICAgICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKKyAgICAgICBDb21w
b3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgQ29tcG9zaXRvcl9P
dmVybGF5SW5pdEZhaWxlZCA9IDQwMywKKyAgICAgICBDb21wb3NpdG9yX1NjcmVlbnNob3RzSW5p
dEZhaWxlZCA9IDQwNCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09j
dWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRP
cGVuRGV2aWNlID0gMTEwMSwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVU
b1JlcXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb0JpZyA9IDExMDQsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29u
ZmlnVG9vU21hbGwgPSAxMTA1LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJs
ZVRvSW5pdFpMaWIgPSAxMTA2LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRS
ZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKKyAgICAgICBWZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAorICAgICAgIFZlbmRv
clNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ID0gMTExMCwKKyAgICAg
ICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCisg
ICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCisgICAg
ICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEz
LAorICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfQorcHVi
bGljIGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBN
b25vID0gMSwKKyAgICAgICBTdGVyZW8gPSAyLAorICAgICAgIEN1YmVtYXAgPSAzLAorICAgICAg
IE1vbm9QYW5vcmFtYSA9IDQsCisgICAgICAgU3RlcmVvUGFub3JhbWEgPSA1LAorfQorcHVibGlj
IGVudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgUHJldmlldyA9
IDAsCisgICAgICAgVlIgPSAxLAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9y
Cit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgT3BlcmF0aW9uRmFpbGVkID0gMTAwLAorICAg
ICAgIEludmFsaWRIYW5kbGUgPSAxMDEsCisgICAgICAgSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lv
biA9IDEwMiwKKyAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCisgICAgICAgSVBDRmFpbHVyZSA9
IDEwNCwKKyAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAorICAgICAgIFNo
YXJlZE1lbW9yeUZhaWx1cmUgPSAxMDYsCisgICAgICAgRnJhbWVCdWZmZXJpbmdGYWlsdXJlID0g
MTA3LAorICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKKyAgICAgICBJbnZhbGlkR0xU
ZXh0dXJlSWQgPSAxMDksCisgICAgICAgSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAs
CisgICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKKyAgICAgICBTaGFyZWRUZXh0
dXJlRmFpbHVyZSA9IDExMiwKKyAgICAgICBOb0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAgICAg
IEludmFsaWRBcmd1bWVudCA9IDExNCwKKyAgICAgICBJbnZhbGlkRnJhbWVCdWZmZXJTaXplID0g
MTE1LAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQoreworICAgICAg
IERpc3RvcnRlZCA9IDAsCisgICAgICAgVW5kaXN0b3J0ZWQgPSAxLAorICAgICAgIE1heGltdW1V
bmRpc3RvcnRlZCA9IDIsCisgICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9Citw
dWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAg
ICAgQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKKyAgICAgICBOb01hbmlmZXN0ID0gMTAxLAor
ICAgICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgSW52YWxpZEluZGV4ID0gMTAzLAor
ICAgICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKKyAgICAgICBJUENGYWlsZWQgPSAxMDUs
CisgICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBJbnZhbGlk
TWFuaWZlc3QgPSAxMDcsCisgICAgICAgSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAorICAgICAg
IExhdW5jaEZhaWxlZCA9IDEwOSwKKyAgICAgICBBcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9
IDExMCwKKyAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAorICAgICAgIE9sZEFwcGxpY2F0
aW9uUXVpdHRpbmcgPSAxMTIsCisgICAgICAgVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAg
ICAgSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDIwMCwKKyAgICAg
ICBQcm9wZXJ0eU5vdFNldCA9IDIwMSwKKyAgICAgICBVbmtub3duUHJvcGVydHkgPSAyMDIsCisg
ICAgICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30KK3B1YmxpYyBlbnVtIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHkKK3sKKyAgICAgICBOYW1lX1N0cmluZyA9IDAsCisgICAgICAgTGF1bmNoVHlw
ZV9TdHJpbmcgPSAxMSwKKyAgICAgICBXb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAorICAg
ICAgIEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCisgICAgICAgQXJndW1lbnRzX1N0cmluZyA9IDE0
LAorICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBEZXNjcmlwdGlvbl9TdHJpbmcgPSA1
MCwKKyAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAorICAgICAgIEltYWdlUGF0aF9TdHJpbmcg
PSA1MiwKKyAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCisgICAgICAgSXNEYXNoYm9hcmRPdmVy
bGF5X0Jvb2wgPSA2MCwKKyAgICAgICBJc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAgICAgICBJc0lu
c3RhbmNlZF9Cb29sID0gNjIsCisgICAgICAgSXNJbnRlcm5hbF9Cb29sID0gNjMsCisgICAgICAg
TGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9CitwdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25TdGF0ZQoreworICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUg
PSAwLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAs
CisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNo
ID0gMTEsCisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAy
MCwKK30KK3B1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKK3sKKyAgICAgICBP
SyA9IDEsCisgICAgICAgV2FybmluZyA9IDEwMCwKKyAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9u
TWF5SGF2ZU1vdmVkID0gMTAxLAorICAgICAgIFdhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVkID0g
MTAyLAorICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKKyAgICAgICBF
cnJvciA9IDIwMCwKKyAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEs
CisgICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKKyAgICAgICBFcnJvcl9Q
bGF5QXJlYUludmFsaWQgPSAyMDMsCisgICAgICAgRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxp
ZCA9IDIwNCwKK30KK3B1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7CisgICAgICAg
TGl2ZSA9IDEsCisgICAgICAgVGVtcCA9IDIsCit9CitwdWJsaWMgZW51bSBFQ2hhcGVyb25lSW1w
b3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAorfQor
cHVibGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAg
ICAgUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwK
KyAgICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKKyAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDEw
MiwKKyAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMsCisgICAgICAgVGV4dHVyZUlz
T25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0
ID0gMTA1LAorICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAorICAgICAg
IEluZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBBbHJlYWR5U3VibWl0dGVkID0gMTA4LAor
fQorcHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKK3sKKyAgICAgICBOb25lID0gMCwK
KyAgICAgICBNb3VzZSA9IDEsCit9CitwdWJsaWMgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBl
Cit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKKyAgICAgICBWUk92
ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKKyAgICAgICBWUk92ZXJs
YXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCisgICAgICAgVlJPdmVybGF5VHJhbnNmb3Jt
X1RyYWNrZWRDb21wb25lbnQgPSAzLAorfQorcHVibGljIGVudW0gVlJPdmVybGF5RmxhZ3MKK3sK
KyAgICAgICBOb25lID0gMCwKKyAgICAgICBDdXJ2ZWQgPSAxLAorICAgICAgIFJHU1M0WCA9IDIs
CisgICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAorICAgICAgIEFjY2VwdHNHYW1lcGFkRXZlbnRz
ID0gNCwKKyAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKKyAgICAgICBTZW5kVlJTY3JvbGxF
dmVudHMgPSA2LAorICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKyAgICAgICBTaG93
VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisgICAgICAgVHJhbnNmZXJPd25lcnNoaXBUb0ludGVy
bmFsUHJvY2VzcyA9IDksCisgICAgICAgU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAorICAgICAg
IFNpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAorICAgICAgIFBhbm9yYW1hID0gMTIsCisgICAgICAg
U3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBTb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAx
NCwKKyAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKK30KK3B1YmxpYyBlbnVtIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZQoreworICAgICAgIEJ1dHRvblByZXNzXzAgPSAwLAorICAgICAg
IEJ1dHRvblByZXNzXzEgPSAxLAorICAgICAgIEJ1dHRvblByZXNzXzIgPSAyLAorICAgICAgIEJ1
dHRvblByZXNzXzMgPSAzLAorICAgICAgIENvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQsCisg
ICAgICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAorICAgICAgIEFwcGxp
Y2F0aW9uUXVpdCA9IDYsCit9CitwdWJsaWMgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKK3sK
KyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAga19FR2Ft
ZXBhZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCisgICAgICAga19FR2FtZXBhZFRleHRJbnB1
dE1vZGVTdWJtaXQgPSAyLAorfQorcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9k
ZQoreworICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAor
ICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAorfQor
cHVibGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KK3sKKyAgICAgICBVcCA9IDAsCisgICAgICAg
RG93biA9IDEsCisgICAgICAgTGVmdCA9IDIsCisgICAgICAgUmlnaHQgPSAzLAorICAgICAgIENv
dW50ID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0
aXZlVHlwZQoreworICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3Rh
bmdsZSA9IDAsCisgICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xl
ID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKK3sKKyAgICAgICBOb25l
ID0gMCwKKyAgICAgICBMb2FkaW5nID0gMTAwLAorICAgICAgIE5vdFN1cHBvcnRlZCA9IDIwMCwK
KyAgICAgICBJbnZhbGlkQXJnID0gMzAwLAorICAgICAgIEludmFsaWRNb2RlbCA9IDMwMSwKKyAg
ICAgICBOb1NoYXBlcyA9IDMwMiwKKyAgICAgICBNdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAgICAg
ICBUb29NYW55VmVydGljZXMgPSAzMDQsCisgICAgICAgTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwK
KyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBOb3RFbm91Z2hOb3JtYWxzID0g
MzA3LAorICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKKyAgICAgICBJbnZhbGlkVGV4
dHVyZSA9IDQwMCwKK30KK3B1YmxpYyBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Cit7CisgICAg
ICAgSXNTdGF0aWMgPSAxLAorICAgICAgIElzVmlzaWJsZSA9IDIsCisgICAgICAgSXNUb3VjaGVk
ID0gNCwKKyAgICAgICBJc1ByZXNzZWQgPSA4LAorICAgICAgIElzU2Nyb2xsZWQgPSAxNiwKK30K
K3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKK3sKKyAgICAgICBUcmFuc2llbnQgPSAw
LAorICAgICAgIFBlcnNpc3RlbnQgPSAxLAorICAgICAgIFRyYW5zaWVudF9TeXN0ZW1XaXRoVXNl
clZhbHVlID0gMiwKK30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAg
ICAgTm9uZSA9IDAsCisgICAgICAgQXBwbGljYXRpb24gPSAxMDAsCisgICAgICAgQ29udGFjdF9E
aXNhYmxlZCA9IDIwMCwKKyAgICAgICBDb250YWN0X0VuYWJsZWQgPSAyMDEsCisgICAgICAgQ29u
dGFjdF9BY3RpdmUgPSAyMDIsCit9CitwdWJsaWMgZW51bSBFVlJTZXR0aW5nc0Vycm9yCit7Cisg
ICAgICAgTm9uZSA9IDAsCisgICAgICAgSVBDRmFpbGVkID0gMSwKKyAgICAgICBXcml0ZUZhaWxl
ZCA9IDIsCisgICAgICAgUmVhZEZhaWxlZCA9IDMsCisgICAgICAgSnNvblBhcnNlRmFpbGVkID0g
NCwKKyAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfQorcHVibGljIGVudW0g
RVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgUmVxdWVzdEZh
aWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBOb3RG
b3VuZCA9IDEwMSwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEwMiwKKyAgICAgICBTY3JlZW5z
aG90QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRhX3QKK3sKKyAgICAgICBbRmll
bGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAgICAg
W0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsK
KyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X01vdXNlX3QgbW91c2U7Cisg
ICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Cisg
ICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsK
KyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5v
dGlmaWNhdGlvbjsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X092ZXJs
YXlfdCBvdmVybGF5OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU3Rh
dHVzX3Qgc3RhdHVzOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfSXBk
X3QgaXBkOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ2hhcGVyb25l
X3QgY2hhcGVyb25lOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUGVy
Zm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFtGaWVs
ZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFpl
cm9Qb3NlUmVzZXQ7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3Jl
ZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2
ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBbRmll
bGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGljYXRp
b25MYXVuY2g7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9FZGl0aW5n
Q2FtZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBw
dWJsaWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OworICAgICAgIFtG
aWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsgLy8gVGhp
cyBoYXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1ZworfQorCisKK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKK3sKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1
YmxpYyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOwor
fQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
SG1kTWF0cml4MzRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFszXVs0XQor
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTI7CisgICAgICAg
cHVibGljIGZsb2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbTU7CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAgICAgIHB1YmxpYyBmbG9hdCBt
NzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVibGljIGZsb2F0IG05OworICAg
ICAgIHB1YmxpYyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZsb2F0IG0xMTsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRNYXRyaXg0
NF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0WzRdWzRdCisgICAgICAgcHVi
bGljIGZsb2F0IG0xOworICAgICAgIHB1YmxpYyBmbG9hdCBtMjsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbTM7CisgICAgICAgcHVibGljIGZsb2F0IG00OworICAgICAgIHB1YmxpYyBmbG9hdCBtNTsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbTY7CisgICAgICAgcHVibGljIGZsb2F0IG03OworICAgICAg
IHB1YmxpYyBmbG9hdCBtODsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTk7CisgICAgICAgcHVibGlj
IGZsb2F0IG0xMDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTExOworICAgICAgIHB1YmxpYyBmbG9h
dCBtMTI7CisgICAgICAgcHVibGljIGZsb2F0IG0xMzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTE0
OworICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190Cit7CisgICAgICAgcHVibGlj
IGZsb2F0IHYwOyAvL2Zsb2F0WzNdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworICAgICAgIHB1
YmxpYyBmbG9hdCB2MjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgdjA7IC8v
ZmxvYXRbNF0KKyAgICAgICBwdWJsaWMgZmxvYXQgdjE7CisgICAgICAgcHVibGljIGZsb2F0IHYy
OworICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90Cit7CisgICAgICAgcHVibGlj
IGRvdWJsZSB2MDsgLy9kb3VibGVbM10KKyAgICAgICBwdWJsaWMgZG91YmxlIHYxOworICAgICAg
IHB1YmxpYyBkb3VibGUgdjI7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgcHVibGljIGZsb2F0IHYw
OyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworfQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YXRlcm5pb25fdAorewor
ICAgICAgIHB1YmxpYyBkb3VibGUgdzsKKyAgICAgICBwdWJsaWMgZG91YmxlIHg7CisgICAgICAg
cHVibGljIGRvdWJsZSB5OworICAgICAgIHB1YmxpYyBkb3VibGUgejsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRDb2xvcl90Cit7Cisg
ICAgICAgcHVibGljIGZsb2F0IHI7CisgICAgICAgcHVibGljIGZsb2F0IGc7CisgICAgICAgcHVi
bGljIGZsb2F0IGI7CisgICAgICAgcHVibGljIGZsb2F0IGE7Cit9CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAg
cHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVjdG9yM190WzRdCisgICAgICAg
cHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNf
dCB2Q29ybmVyczI7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczM7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUmVj
dDJfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRvcExlZnQ7CisgICAgICAgcHVi
bGljIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKK3sK
KyAgICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZs
b2F0IHJmUmVkMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjA7IC8vZmxvYXRbMl0KKyAg
ICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7CisgICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTA7
IC8vZmxvYXRbMl0KKyAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVlMTsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBUZXh0dXJlX3QKK3sKKyAg
ICAgICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIEVUZXh0
dXJlVHlwZSBlVHlwZTsKKyAgICAgICBwdWJsaWMgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVHJh
Y2tlZERldmljZVBvc2VfdAoreworICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7
CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OworICAgICAgIHB1
YmxpYyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wgYlBvc2VJc1ZhbGlkOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wgYkRl
dmljZUlzQ29ubmVjdGVkOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgcHVibGljIGZsb2F0
IHVNaW47CisgICAgICAgcHVibGljIGZsb2F0IHZNaW47CisgICAgICAgcHVibGljIGZsb2F0IHVN
YXg7CisgICAgICAgcHVibGljIGZsb2F0IHZNYXg7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Cit7Cisg
ICAgICAgcHVibGljIHVsb25nIG1fbkltYWdlOworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wRGV2
aWNlOyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BQaHlz
aWNhbERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCisgICAgICAgcHVibGlj
IEludFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCisgICAgICAgcHVi
bGljIEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCisgICAgICAgcHVibGlj
IHVpbnQgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICBwdWJsaWMgdWludCBtX25XaWR0aDsK
KyAgICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uRm9y
bWF0OworICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50OworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFf
dAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJS
ZXNvdXJjZSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BDb21tYW5kUXVldWU7IC8vIHN0cnVj
dCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHB1YmxpYyB1aW50IG1fbk5vZGVNYXNrOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
RXZlbnRfQ29udHJvbGxlcl90Cit7CisgICAgICAgcHVibGljIHVpbnQgYnV0dG9uOworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
TW91c2VfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4OworICAgICAgIHB1YmxpYyBmbG9hdCB5
OworICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAg
cHVibGljIGZsb2F0IHhkZWx0YTsKKyAgICAgICBwdWJsaWMgZmxvYXQgeWRlbHRhOworICAgICAg
IHB1YmxpYyB1aW50IHJlcGVhdENvdW50OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKK3sKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJGaW5n
ZXJEb3duOworICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOworICAgICAg
IHB1YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVlG
aXJzdDsKKyAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsKKyAgICAgICBwdWJsaWMgZmxv
YXQgZlZhbHVlWVJhdzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Cit7CisgICAgICAgcHVibGljIHVs
b25nIHVsVXNlclZhbHVlOworICAgICAgIHB1YmxpYyB1aW50IG5vdGlmaWNhdGlvbklkOworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfUHJvY2Vzc190Cit7CisgICAgICAgcHVibGljIHVpbnQgcGlkOworICAgICAgIHB1YmxpYyB1
aW50IG9sZFBpZDsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAg
IHB1YmxpYyBib29sIGJGb3JjZWQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAgICBwdWJsaWMg
dWxvbmcgb3ZlcmxheUhhbmRsZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Cit7CisgICAgICAgcHVibGljIHVp
bnQgc3RhdHVzU3RhdGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgcHVibGljIGJ5dGUg
Y05ld0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lucHV0MyxjTmV3SW5wdXQ0LGNO
ZXdJbnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OworICAgICAgIHB1YmxpYyB1bG9uZyB1VXNl
clZhbHVlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgaXBkTWV0ZXJzOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
RXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uUHJldmlvdXNVbml2
ZXJzZTsKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVuaXZlcnNlOworfQorW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUmVz
ZXJ2ZWRfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDA7CisgICAgICAgcHVibGlj
IHVsb25nIHJlc2VydmVkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgcHVi
bGljIHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAor
eworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJv
b2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgcHVi
bGljIHVpbnQgaGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50IHR5cGU7Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JlZW5z
aG90UHJvZ3Jlc3NfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBwcm9ncmVzczsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0Fw
cGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICBwdWJsaWMgdWludCBwaWQ7CisgICAgICAgcHVi
bGljIHVpbnQgdW5BcmdzSGFuZGxlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAorewor
ICAgICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50IG5W
aXN1YWxNb2RlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJs
aWMgc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAoreworICAgICAgIHB1YmxpYyB1aW50
IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAoreworICAgICAg
IHB1YmxpYyB1bG9uZyBjb250YWluZXI7CisgICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICBwdWJsaWMgdWludCBldmVudFR5cGU7Cisg
ICAgICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIHB1YmxpYyBmbG9h
dCBldmVudEFnZVNlY29uZHM7CisgICAgICAgcHVibGljIFZSRXZlbnRfRGF0YV90IGRhdGE7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSGlk
ZGVuQXJlYU1lc2hfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgcFZlcnRleERhdGE7IC8vIGNv
bnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRyaWFu
Z2xlQ291bnQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1Ymxp
YyBzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgcHVibGljIGZsb2F0IHg7Cisg
ICAgICAgcHVibGljIGZsb2F0IHk7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAoreworICAgICAgIHB1Ymxp
YyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNzZWQ7
CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICBwdWJsaWMgVlJD
b250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KKyAgICAgICBw
dWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKKyAgICAgICBwdWJsaWMgVlJDb250cm9s
bGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlz
MzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKK30KKy8vIFRoaXMg
c3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXgg
YW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9
IDQpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkCit7CisgICAgICAg
cHVibGljIHVpbnQgdW5QYWNrZXROdW07CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uUHJl
c3NlZDsKKyAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3VjaGVkOworICAgICAgIHB1Ymxp
YyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJvbGxlckF4aXNfdFs1XQorICAg
ICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOworICAgICAgIHB1YmxpYyBWUkNv
bnRyb2xsZXJBeGlzX3QgckF4aXMyOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3Qg
ckF4aXMzOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXM0OworICAgICAg
IHB1YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3RhdGVfdCB1bnBhY2tlZCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0TnVtID0gdGhpcy51blBhY2tl
dE51bTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25QcmVzc2VkID0gdGhpcy51bEJ1
dHRvblByZXNzZWQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uVG91Y2hlZCA9IHRo
aXMudWxCdXR0b25Ub3VjaGVkOworICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczAgPSB0aGlz
LnJBeGlzMDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMxID0gdGhpcy5yQXhpczE7Cisg
ICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4aXMyOworICAgICAgICAgICAg
ICB1bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKKyAgICAgICAgICAgICAgdW5wYWNrZWQu
ckF4aXM0ID0gdGhpcy5yQXhpczQ7CisgICAgICAgfQorfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdz
Cit7CisgICAgICAgcHVibGljIHVpbnQgc2l6ZTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGFudGlhbGlhczsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgc2NhbGU7CisgICAgICAgcHVibGljIGZsb2F0IGRpc3RhbmNlOworICAg
ICAgIHB1YmxpYyBmbG9hdCBhbHBoYTsKKyAgICAgICBwdWJsaWMgZmxvYXQgdU9mZnNldDsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKKyAgICAgICBwdWJsaWMgZmxvYXQgdVNjYWxlOwor
ICAgICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7CisgICAgICAgcHVibGljIGZsb2F0IGdyaWREaXZz
OworICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7CisgICAgICAgcHVibGljIGZsb2F0IGdy
aWRTY2FsZTsKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICBwdWJsaWMgdWludCBuV2lkdGg7CisgICAgICAg
cHVibGljIHVpbnQgbkhlaWdodDsKKyAgICAgICBwdWJsaWMgdWludCBuQnl0ZXNQZXJQaXhlbDsK
KyAgICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBwdWJsaWMgVHJhY2tl
ZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190
Cit7CisgICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgorICAgICAg
IHB1YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIgKgorfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfRnJhbWVU
aW1pbmcKK3sKKyAgICAgICBwdWJsaWMgdWludCBtX25TaXplOworICAgICAgIHB1YmxpYyB1aW50
IG1fbkZyYW1lSW5kZXg7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50czsK
KyAgICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7CisgICAgICAgcHVibGljIHVp
bnQgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICBwdWJsaWMgdWludCBtX25SZXByb2plY3Rp
b25GbGFnczsKKyAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwor
ICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7CisgICAgICAgcHVibGljIGZs
b2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3RhbFJl
bmRlckdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdwdU1z
OworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOworICAgICAg
IHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFBy
ZXNlbnRDYWxsQ3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENw
dU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsKKyAgICAgICBwdWJs
aWMgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOworICAgICAgIHB1YmxpYyBmbG9hdCBt
X2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3RnJhbWVSZWFk
eU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Cisg
ICAgICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgcHVi
bGljIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKKyAgICAgICBwdWJsaWMgVHJh
Y2tlZERldmljZVBvc2VfdCBtX0htZFBvc2U7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKK3sK
KyAgICAgICBwdWJsaWMgdWludCBtX25QaWQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJh
bWVQcmVzZW50czsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzOworICAg
ICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOworICAgICAgIHB1YmxpYyB1
aW50IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQgbV9u
TnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXBy
b2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Mb2FkaW5n
OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOworICAgICAg
IHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHB1YmxpYyB1
aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICBwdWJsaWMgdWludCBt
X25OdW1UaW1lZE91dDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzVGlt
ZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0Owor
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVy
bGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZT
b3VyY2U7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgIHB1
YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOworfQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlv
blJlc3VsdHNfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvaW50OworICAgICAg
IHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90
IHZVVnM7CisgICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsKK30KK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVj
dGFuZ2xlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRYOworICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXaWR0aDsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QK
K3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7CisgICAgICAgcHVibGljIGZsb2F0
IG1fZmxDZW50ZXJZOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUmFkaXVzOworfQorW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAgICAgIHB1YmxpYyBFVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKKyAgICAgICBwdWJs
aWMgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAgIHB1YmxpYyBIbWRNYXRyaXgz
NF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7CisgICAgICAgcHVibGljIEhtZE1h
dHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAgICAgICBwdWJsaWMgdWludCB1
UHJvcGVydGllczsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0
b3IzX3QgdlBvc2l0aW9uOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVi
bGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKK3sKKyAg
ICAgICBwdWJsaWMgY2hhciB1bldpZHRoOworICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0Owor
ICAgICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3Qg
KgorfQorLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJkcyBiaW5hcnkgY29tcGF0aWJp
bGl0eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90
X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7CisgICAgICAgcHVibGljIGNo
YXIgdW5IZWlnaHQ7CisgICAgICAgcHVibGljIEludFB0ciBydWJUZXh0dXJlTWFwRGF0YTsgLy8g
Y29uc3QgdWludDhfdCAqCisgICAgICAgcHVibGljIHZvaWQgVW5wYWNrKHJlZiBSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QgdW5wYWNrZWQpCisgICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tl
ZC51bldpZHRoID0gdGhpcy51bldpZHRoOworICAgICAgICAgICAgICB1bnBhY2tlZC51bkhlaWdo
dCA9IHRoaXMudW5IZWlnaHQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnJ1YlRleHR1cmVNYXBE
YXRhID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKKyAgICAgICB9Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAorewor
ICAgICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVu
ZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7Cisg
ICAgICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCisgICAg
ICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworICAgICAgIHB1YmxpYyBpbnQgZGlmZnVz
ZVRleHR1cmVJZDsKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5
IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3Rf
UGFja2VkCit7CisgICAgICAgcHVibGljIEludFB0ciByVmVydGV4RGF0YTsgLy8gY29uc3Qgc3Ry
dWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5WZXJ0
ZXhDb3VudDsKKyAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERhdGE7IC8vIGNvbnN0IHVpbnQx
Nl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7CisgICAgICAgcHVibGlj
IGludCBkaWZmdXNlVGV4dHVyZUlkOworICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVu
ZGVyTW9kZWxfdCB1bnBhY2tlZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVucGFja2VkLnJW
ZXJ0ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudW5W
ZXJ0ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQu
ckluZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudW5U
cmlhbmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7CisgICAgICAgICAgICAgIHVucGFj
a2VkLmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0dXJlSWQ7CisgICAgICAgfQor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJl
bmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJTY3JvbGxXaGVlbFZpc2libGU7
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
Tm90aWZpY2F0aW9uQml0bWFwX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcEltYWdlRGF0
YTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIGludCBtX25XaWR0aDsKKyAgICAgICBwdWJsaWMg
aW50IG1fbkhlaWdodDsKKyAgICAgICBwdWJsaWMgaW50IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ09wZW5W
UkNvbnRleHQKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2
cjo6SVZSU3lzdGVtICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25lOyAvLyBj
bGFzcyB2cjo6SVZSQ2hhcGVyb25lICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVy
b25lU2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCisgICAgICAgcHVibGlj
IEludFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoKKyAg
ICAgICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xhc3MgdnI6OklWUk92ZXJsYXkg
KgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJVlJS
ZXNvdXJjZXMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZW5kZXJNb2RlbHM7IC8vIGNs
YXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJFeHRl
bmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgorICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoKKyAg
ICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBw
bGljYXRpb25zICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSVHJhY2tlZENhbWVyYTsgLy8g
Y2xhc3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJT
Y3JlZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKK30KKworcHVibGljIGNs
YXNzIE9wZW5WUgoreworCisgICAgICAgcHVibGljIHN0YXRpYyB1aW50IEluaXRJbnRlcm5hbChy
ZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25U
eXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSW5pdElu
dGVybmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsKKyAgICAgICB9CisKKyAgICAg
ICBwdWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgpCisgICAgICAgeworICAgICAg
ICAgICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisKKyAg
ICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2VudCgpOworICAgICAgIH0KKwor
ICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNSdW50aW1lSW5zdGFsbGVkKCk7
CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nRm9ySG1k
RXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJu
IE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3AuR2V0U3RyaW5nRm9ySG1kRXJy
b3IoZXJyb3IpKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIEludFB0ciBHZXRH
ZW5lcmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVy
cm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJv
cC5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBwZUVycm9yKTsK
KyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9u
VmFsaWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCisgICAgICAgeworICAgICAgICAgICAg
ICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZh
Y2VWZXJzaW9uKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIHVpbnQgR2V0SW5p
dFRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLkdl
dEluaXRUb2tlbigpOworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5N
YXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25zdCB1
aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3Qg
dWludCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7CisgICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5Njcy
OTU7CisgICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWlu
ZXIgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcg
PSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsK
KyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7CisgICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKKyAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OworICAgICAgIHB1YmxpYyBjb25z
dCB1aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CisgICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKKyAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7CisgICAgICAgcHVibGlj
IGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworICAgICAgIHB1Ymxp
YyBjb25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKKyAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Cisg
ICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0g
MTAwMDA7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6
ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Db250cm9sbGVyU3RhdGVB
eGlzQ291bnQgPSA1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsT3ZlcmxheUhhbmRs
ZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5TY3JlZW5zaG90SGFu
ZGxlSW52YWxpZCA9IDA7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTeXN0ZW1fVmVy
c2lvbiA9ICJJVlJTeXN0ZW1fMDE1IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkV4
dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNr
ZWRDYW1lcmFfMDAzIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4QXBwbGljYXRp
b25LZXlMZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9NaW1l
VHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9u
c18wMDYiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lX1ZlcnNpb24g
PSAiSVZSQ2hhcGVyb25lXzAwMyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJDaGFw
ZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8w
MjAiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGgg
PSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5n
dGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heE92ZXJsYXlDb3VudCA9
IDY0OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZS
T3ZlcmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNl
ID0gImJhc2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9D
b21wb25lbnRfVGlwID0gInRpcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9D
b250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3RhdHVz
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0g
IklWUlJlbmRlck1vZGVsc18wMDUiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Ob3Rp
ZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElW
Uk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7CisgICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18w
MDIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZWN0aW9uID0g
InN0ZWFtdnIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXF1
aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3Ry
aW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVh
bVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVn
UHJvY2Vzc1BpcGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9F
bmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxh
eURlYnVnWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3Bs
YXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5k
U3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBkIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3Vu
ZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRV
c2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFI
ZWlnaHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJh
Y2tncm91bmREb21lUmFkaXVzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNv
bG9yIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdl
X0Jvb2wgPSAic2hvd1N0YWdlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxlRHJp
dmVycyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVjdE1v
ZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBp
ZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3
T2Zmc2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dl
ck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29s
ID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0TXVs
dGlwbGllciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93
QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9v
bCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJv
amVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNl
RmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50
MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0
cmluZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZy
b21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9T
dGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFw
cExhdW5jaCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0
RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5j
aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0T3Zlcmxh
eUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBw
ID0gImVuYWJsZUhvbWVBcHAiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3Rl
YW1WUl9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBw
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3Jv
dW5kSW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9
ICJyZXRhaWxEZW1vIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJf
SXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAi
ZGlzYWJsZWltdSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNl
X1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdf
SW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFz
ZXN0YXRpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9E
Qkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcg
PSAibW9kZWxOdW1iZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9X
aW5kb3dYX0ludDMyID0gIndpbmRvd1giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3
aW5kb3dIZWlnaHQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9SZW5k
ZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25z
X0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVx
dWVuY3kiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9T
ZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09u
VG9wIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWlu
aW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hv
dHMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3Jl
ZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJf
Qm9vbCA9ICJEb05vdERpc3R1cmIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
S2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlv
bnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0g
IlNjYWxlWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TY2Fs
ZVkgPSAiU2NhbGVZIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJk
X09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9v
dGhpbmciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TZWN0aW9uID0g
InBlcmZjaGVjayI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX0hldXJp
c3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3
YXJuT25seU9uY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9BbGxv
d1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWlu
Z3NPbkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9UZXN0RGF0
YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9D
b2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNH
cm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJN
YXJrZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNl
X0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29s
bGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0Nv
bG9yR2FtbWFHIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJv
dW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1t
YUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFibGVD
YW1lcmEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lv
bkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdf
Qm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRz
Q29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0Jv
dW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQz
MiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29s
b3JHYW1tYUEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5k
c1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja0RldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19P
blJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAi
b25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0
cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfYXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZP
bkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZlNj
cmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zs
b2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJu
VG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93
ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25C
dXR0b25QcmVzcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRf
U2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
RGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0g
ImFyY2FkZU1vZGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfbW9kZWxza2lu
X1NlY3Rpb24gPSAibW9kZWxza2lucyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNl
c18wMDEiOworCisgICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7IGdldDsgc2V0OyB9CisKKyAg
ICAgICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5UYWJsZToiOworCisgICAgICAg
Y2xhc3MgQ09wZW5WUkNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1YmxpYyBDT3Bl
blZSQ29udGV4dCgpIHsgQ2xlYXIoKTsgfQorCisgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIENs
ZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0g
PSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGw7CisgICAgICAgICAg
ICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAg
bV9wVlJPdmVybGF5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9k
ZWxzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxsOworICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BW
UlRyYWNrZWRDYW1lcmEgPSBudWxsOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
dm9pZCBDaGVja0NsZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
aWYgKFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU3lzdGVtIFZSU3lz
dGVtKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigp
OworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVtID09IG51bGwpCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9
IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50
ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4
K0lWUlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVy
cm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVt
ID0gbmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJDaGFwZXJvbmUoKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVy
cm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBP
cGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hhcGVy
b25lX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9u
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBu
ZXcgQ1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNldHVwIFZSQ2hhcGVyb25lU2V0
dXAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7
CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxsKQor
ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBl
RXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxl
X1ByZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJy
b3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVyb25lU2V0dXAocEludGVyZmFj
ZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1
YmxpYyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUkNvbXBvc2l0b3IgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCBy
ZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAh
PSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG5ldyBDVlJDb21wb3Np
dG9yKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUk92ZXJsYXkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3ZlcmxheV9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5ldyBDVlJPdmVybGF5KHBJbnRl
cmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1Ymxp
YyBDVlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
bV9wVlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9w
LkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSUmVuZGVyTW9kZWxzX1ZlcnNp
b24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJm
YWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBuZXcgQ1ZS
UmVuZGVyTW9kZWxzKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlzcGxheSBWUkV4dGVuZGVkRGlz
cGxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxs
KQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRh
YmxlX1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYg
ZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJFeHRlbmRlZERpc3BsYXkocElu
dGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUlNldHRpbmdzID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNldHRpbmdzX1ZlcnNpb24sIHJl
ZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9
IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG5ldyBDVlJTZXR0aW5ncyhw
SW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
cHVibGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
IGlmIChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9u
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUklu
dGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJBcHBsaWNhdGlvbnNf
VmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJ
bnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFwcGxpY2F0aW9ucyA9IG5l
dyBDVlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVuc2hvdHMgVlJTY3JlZW5zaG90
cygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsK
KyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNob3RzID09IG51bGwpCisgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJv
ciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBw
SW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJl
Zml4K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBF
VlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9w
VlJTY3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50ZXJmYWNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVlbnNo
b3RzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlRyYWNrZWRD
YW1lcmEgVlJUcmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSVHJhY2tl
ZENhbWVyYSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJp
Y0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sIHJlZiBl
RXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IElu
dFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbmV3IENWUlRyYWNrZWRD
YW1lcmEocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0ZW07CisgICAgICAgICAgICAg
IHByaXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICBwcml2
YXRlIENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAg
IHByaXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZS
UmVuZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAgICBwcml2YXRlIENW
UkV4dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgcHJp
dmF0ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBwcml2YXRlIENW
UkFwcGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgcHJpdmF0ZSBD
VlJTY3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICBwcml2YXRlIENW
UlRyYWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgIH07CisKKyAgICAgICBw
cml2YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4
dCA9IG51bGw7CisgICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0IE9wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIGdldAorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQg
PT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfT3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOworICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0OworICAgICAgICAgICAgICB9Cisg
ICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0ZW0gU3lzdGVtIHsgZ2V0IHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJTeXN0ZW0oKTsgfSB9CisgICAg
ICAgcHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25lIHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUoKTsgfSB9CisgICAgICAgcHVi
bGljIHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVTZXR1cCB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lU2V0dXAoKTsgfSB9Cisg
ICAgICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBvc2l0b3IgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBvc2l0b3IoKTsgfSB9CisgICAg
ICAgcHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBnZXQgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9CisgICAgICAgcHVibGljIHN0
YXRpYyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUklu
dGVybmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsgfSB9CisgICAgICAgcHVibGlj
IHN0YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNwbGF5IHsgZ2V0IHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRlZERpc3BsYXkoKTsgfSB9Cisg
ICAgICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5ncyB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3MoKTsgfSB9CisgICAgICAgcHVi
bGljIHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25zIHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlvbnMoKTsgfSB9CisgICAgICAg
cHVibGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90cyB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hvdHMoKTsgfSB9CisgICAgICAg
cHVibGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRDYW1lcmEgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNrZWRDYW1lcmEoKTsgfSB9CisK
KyAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdnJjbGllbnQuZGxs
IGFuZCBpbml0aWFsaXplcyBpdCAqLworICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIElu
aXQocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0
aW9uVHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0aW9uX1NjZW5lKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFw
cGxpY2F0aW9uVHlwZSk7CisgICAgICAgICAgICAgIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQuQ2xlYXIoKTsKKworICAgICAgICAgICAgICBpZiAocGVFcnJvciAhPSBFVlJJbml0RXJyb3Iu
Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgICAgICAg
IGJvb2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoSVZSU3lzdGVt
X1ZlcnNpb24pOworICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZhY2VWYWxpZCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25JbnRlcm5hbCgpOworICAgICAg
ICAgICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5Jbml0X0ludGVyZmFjZU5vdEZv
dW5kOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsKKyAgICAgICB9CisKKyAgICAg
ICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0
aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCisg
ICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIFNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisKK30KKworCisKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAxNzFlYzM3ZDExM2QxYWNkNmU4Y2M0MjAxNGFjYzYwZjdhNDE4ZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmpzb24K
QEAgLTAsMCArMSwzNzg5IEBACit7InR5cGVkZWZzIjpbeyJ0eXBlZGVmIjogInZyOjpnbFNoYXJl
ZFRleHR1cmVIYW5kbGVfdCIsInR5cGUiOiAidm9pZCAqIn0KKyx7InR5cGVkZWYiOiAidnI6Omds
SW50X3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6Z2xVSW50X3QiLCJ0
eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlNoYXJlZFRleHR1cmVIYW5kbGVf
dCIsInR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlBy
b3BlcnR5VHlwZVRhZ190IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpW
UkV2ZW50X0RhdGFfdCIsInR5cGUiOiAidW5pb24gVlJFdmVudF9EYXRhX3QifQorLHsidHlwZWRl
ZiI6ICJ2cjo6VlJDb250cm9sbGVyU3RhdGVfdCIsInR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRy
b2xsZXJTdGF0ZTAwMV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90Iiwi
dHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlNjcmVlbnNob3RIYW5k
bGVfdCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZSQ29t
cG9uZW50UHJvcGVydGllcyIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6
VGV4dHVyZUlEX3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJOb3Rp
ZmljYXRpb25JZCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6SG1kRXJy
b3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkluaXRFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpI
bWRfRXllIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJFeWUifQorLHsidHlwZWRlZiI6ICJ2cjo6Q29s
b3JTcGFjZSIsInR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifQorLHsidHlwZWRlZiI6ICJ2
cjo6SG1kVHJhY2tpbmdSZXN1bHQiLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1Jlc3VsdCJ9
CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkRGV2aWNlQ2xhc3MiLCJ0eXBlIjogImVudW0gdnI6
OkVUcmFja2VkRGV2aWNlQ2xhc3MifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifQorLHsi
dHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZVByb3BlcnR5IiwidHlwZSI6ICJlbnVtIHZyOjpF
VHJhY2tlZERldmljZVByb3BlcnR5In0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWRQcm9wZXJ0
eUVycm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IifQorLHsidHlw
ZWRlZiI6ICJ2cjo6VlJTdWJtaXRGbGFnc190IiwidHlwZSI6ICJlbnVtIHZyOjpFVlJTdWJtaXRG
bGFncyJ9CisseyJ0eXBlZGVmIjogInZyOjpWUlN0YXRlX3QiLCJ0eXBlIjogImVudW0gdnI6OkVW
UlN0YXRlIn0KKyx7InR5cGVkZWYiOiAidnI6OkNvbGxpc2lvbkJvdW5kc1N0eWxlX3QiLCJ0eXBl
IjogImVudW0gdnI6OkVDb2xsaXNpb25Cb3VuZHNTdHlsZSJ9CisseyJ0eXBlZGVmIjogInZyOjpW
Uk92ZXJsYXlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZST3ZlcmxheUVycm9yIn0KKyx7InR5
cGVkZWYiOiAidnI6OlZSRmlybXdhcmVFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSRmlybXdh
cmVFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUkNvbXBvc2l0b3JFcnJvciIsInR5cGUiOiAi
ZW51bSB2cjo6RVZSQ29tcG9zaXRvckVycm9yIn0KKyx7InR5cGVkZWYiOiAidnI6OlZSU2NyZWVu
c2hvdHNFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIn0KK10sCisi
ZW51bXMiOlsKKyAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJFeWUiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJFeWVfTGVmdCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUi
OiAiRXllX1JpZ2h0IiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVGV4dHVyZVR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUZXh0dXJlVHlw
ZV9EaXJlY3RYIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9P
cGVuR0wiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX1Z1bGth
biIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfSU9TdXJmYWNl
IiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9EaXJlY3RYMTIi
LCJ2YWx1ZSI6ICI0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDb2xvclNwYWNl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiQ29sb3JTcGFjZV9BdXRvIiwidmFsdWUi
OiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0dhbW1hIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0xpbmVhciIsInZhbHVlIjogIjIifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNraW5nUmVzdWx0IiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfVW5pbml0aWFsaXplZCIsInZhbHVlIjog
IjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9n
cmVzcyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2luZ1Jlc3VsdF9D
YWxpYnJhdGluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjog
IlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0siLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5h
bWUiOiAiVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMjAxIn0K
K119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLCJ2YWx1
ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxpZCIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0hNRCIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xs
ZXIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19H
ZW5lcmljVHJhY2tlciIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERl
dmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIiwidmFsdWVzIjogWyAKKyAg
ICAgICB7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQiLCJ2YWx1ZSI6ICIw
In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0
SGFuZCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFja2lu
Z1VuaXZlcnNlU2VhdGVkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2lu
Z1VuaXZlcnNlU3RhbmRpbmciLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
aW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJQcm9wX0ludmFsaWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyIsInZhbHVlIjogIjEwMDAifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAx
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyIsInZhbHVlIjog
IjEwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nIiwi
dmFsdWUiOiAiMTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1dpbGxEcmlmdEluWWF3X0Jv
b2wiLCJ2YWx1ZSI6ICIxMDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTWFudWZhY3R1cmVy
TmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVHJh
Y2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAwNiJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAwNyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmlu
ZyIsInZhbHVlIjogIjEwMDgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db25uZWN0ZWRXaXJl
bGVzc0RvbmdsZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA5In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sIiwidmFsdWUiOiAiMTAxMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCIsInZhbHVlIjogIjEwMTEifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCIsInZhbHVlIjog
IjEwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01h
dHJpeDM0IiwidmFsdWUiOiAiMTAxMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJl
X1VwZGF0ZUF2YWlsYWJsZV9Cb29sIiwidmFsdWUiOiAiMTAxNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sIiwidmFsdWUiOiAiMTAxNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmciLCJ2YWx1
ZSI6ICIxMDE2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50
NjQiLCJ2YWx1ZSI6ICIxMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMTgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GUEdB
VmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE5In0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
VlJDVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIwIn0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjEifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjIifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wiLCJ2YWx1ZSI6ICIxMDIzIn0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVtV2l0aEhtZF9C
b29sIiwidmFsdWUiOiAiMTAyNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NvbnRhaW5zUHJv
eGltaXR5U2Vuc29yX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI1In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI2In0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQ2FuUG93ZXJPZmZfQm9vbCIsInZhbHVlIjogIjEw
MjcifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9T
dHJpbmciLCJ2YWx1ZSI6ICIxMDI4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQ2xh
c3NfSW50MzIiLCJ2YWx1ZSI6ICIxMDI5In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFzQ2Ft
ZXJhX0Jvb2wiLCJ2YWx1ZSI6ICIxMDMwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRHJpdmVy
VmVyc2lvbl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDMxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
RmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sIiwidmFsdWUiOiAiMTAzMiJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJlZF9Cb29sIiwidmFs
dWUiOiAiMTAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1BhcmVudERyaXZlcl9VaW50NjQi
LCJ2YWx1ZSI6ICIxMDM0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfUmVwb3J0c1RpbWVTaW5j
ZVZTeW5jX0Jvb2wiLCJ2YWx1ZSI6ICIyMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU2Vj
b25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCIsInZhbHVlIjogIjIwMDEifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0IiwidmFsdWUiOiAiMjAwMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAz
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0IiwidmFs
dWUiOiAiMjAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9V
aW50NjQiLCJ2YWx1ZSI6ICIyMDA1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZp
cm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDA2In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfSXNPbkRlc2t0b3BfQm9vbCIsInZhbHVlIjogIjIwMDcifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyIiwidmFsdWUiOiAiMjAwOCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCIsInZhbHVlIjogIjIwMDkifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMTAi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9FZGlkVmVuZG9ySURfSW50MzIiLCJ2YWx1ZSI6ICIy
MDExIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmluZyIs
InZhbHVlIjogIjIwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJbWFnZVJp
Z2h0X1N0cmluZyIsInZhbHVlIjogIjIwMTMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNw
bGF5R0NCbGFja0NsYW1wX0Zsb2F0IiwidmFsdWUiOiAiMjAxNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0VkaWRQcm9kdWN0SURfSW50MzIiLCJ2YWx1ZSI6ICIyMDE1In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0IiwidmFsdWUiOiAiMjAx
NiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIyMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0Iiwi
dmFsdWUiOiAiMjAxOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1NjYWxlX0Zs
b2F0IiwidmFsdWUiOiAiMjAxOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1By
ZXNjYWxlX0Zsb2F0IiwidmFsdWUiOiAiMjAyMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlHQ0ltYWdlX1N0cmluZyIsInZhbHVlIjogIjIwMjEifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDIyIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0IiwidmFsdWUiOiAiMjAyMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI0
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCIsInZhbHVl
IjogIjIwMjUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRl
cnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FtZXJh
RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMjcifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9DYW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjIwMjgi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0IiwidmFs
dWUiOiAiMjAyOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVy
c2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlz
cGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMxIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMiJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyIiwi
dmFsdWUiOiAiMjAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NjcmVlbnNob3RIb3Jpem9u
dGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiMjAzNCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIs
InZhbHVlIjogIjIwMzUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5U3VwcHJlc3Nl
ZF9Cb29sIiwidmFsdWUiOiAiMjAzNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlB
bGxvd05pZ2h0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjAzNyJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIiLCJ2YWx1ZSI6ICIyMDM4In0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIiLCJ2YWx1ZSI6ICIyMDM5
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQz
MiIsInZhbHVlIjogIjIwNDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJbWFn
ZURhdGFfQmluYXJ5IiwidmFsdWUiOiAiMjA0MSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1Vz
ZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wiLCJ2YWx1ZSI6ICIyMDQyIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmciLCJ2YWx1ZSI6ICIzMDAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfU3VwcG9ydGVkQnV0dG9uc19VaW50NjQiLCJ2YWx1ZSI6ICIzMDAx
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczBUeXBlX0ludDMyIiwidmFsdWUiOiAiMzAw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMxVHlwZV9JbnQzMiIsInZhbHVlIjogIjMw
MDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMlR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIz
MDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczNUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXM0VHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50MzIi
LCJ2YWx1ZSI6ICIzMDA3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdMZWZ0
RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9G
aWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDEifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAy
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0
IiwidmFsdWUiOiAiNDAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1RyYWNraW5nUmFuZ2VN
aW5pbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX01vZGVMYWJlbF9TdHJpbmciLCJ2YWx1ZSI6ICI0MDA2In0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfSWNvblBhdGhOYW1lX1N0cmluZyIsInZhbHVlIjogIjUw
MDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0cmlu
ZyIsInZhbHVlIjogIjUwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU2VhcmNoaW5nX1N0cmluZyIsInZhbHVlIjogIjUwMDIifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nIiwidmFsdWUi
OiAiNTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFk
eV9TdHJpbmciLCJ2YWx1ZSI6ICI1MDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJ
Y29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nIiwidmFsdWUiOiAiNTAwNSJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmciLCJ2YWx1
ZSI6ICI1MDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVN0
YW5kYnlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmciLCJ2YWx1ZSI6ICI1MDA4In0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0IiwidmFsdWUi
OiAiNTEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9FbmQiLCJ2YWx1ZSI6ICI1MTUwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckNvbmZp
Z1BhdGhfU3RyaW5nIiwidmFsdWUiOiAiNjAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0lu
c3RhbGxQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCIsInZhbHVlIjogIjEwMDAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kIiwidmFsdWUiOiAi
MTA5OTkifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZFByb3BfU3VjY2VzcyIs
InZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlw
ZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfV3JvbmdEZXZp
Y2VDbGFzcyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfQnVm
ZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9w
X1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfSW52YWxpZERldmljZSIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVHJh
Y2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyIiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsi
bmFtZSI6ICJUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UiLCJ2YWx1ZSI6ICI3
In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVu
Z3RoIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Ob3RZZXRB
dmFpbGFibGUiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1Bl
cm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2Vk
UHJvcF9JbnZhbGlkT3BlcmF0aW9uIiwidmFsdWUiOiAiMTEifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU3VibWl0RmxhZ3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6
ICJTdWJtaXRfRGVmYXVsdCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiU3VibWl0
X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJu
YW1lIjogIlN1Ym1pdF9HbFJlbmRlckJ1ZmZlciIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAiU3VibWl0X1Jlc2VydmVkIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1u
YW1lIjogInZyOjpFVlJTdGF0ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU3Rh
dGVfVW5kZWZpbmVkIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9P
ZmYiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfU2VhcmNoaW5nIiwi
dmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZ19BbGVydCIs
InZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeSIsInZhbHVlIjog
IjMifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydCIsInZhbHVlIjogIjQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9Ob3RSZWFkeSIsInZhbHVlIjogIjUifQorICAg
ICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TdGFuZGJ5IiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyIsInZhbHVlIjogIjcifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXZlbnRUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7
Im5hbWUiOiAiVlJFdmVudF9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQiLCJ2YWx1ZSI6ICIxMDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCIsInZhbHVl
IjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIiwidmFsdWUiOiAiMTA0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfSXBkQ2hhbmdlZCIsInZhbHVlIjogIjEwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUiLCJ2YWx1ZSI6ICIxMDYifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA3
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkIiwi
dmFsdWUiOiAiMTA4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBS
ZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICIxMDkifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9MZW5z
RGlzdG9ydGlvbkNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9Qcm9wZXJ0eUNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25QcmVzcyIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0J1dHRvblVucHJlc3MiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25Ub3VjaCIsInZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0J1dHRvblVudG91Y2giLCJ2YWx1ZSI6ICIyMDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Nb3VzZU1vdmUiLCJ2YWx1ZSI6ICIzMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9Nb3VzZUJ1dHRvbkRvd24iLCJ2YWx1ZSI6ICIzMDEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Nb3VzZUJ1dHRvblVwIiwidmFsdWUiOiAiMzAyIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfRm9jdXNFbnRlciIsInZhbHVlIjogIjMwMyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0ZvY3VzTGVhdmUiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9TY3JvbGwiLCJ2YWx1ZSI6ICIzMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9U
b3VjaFBhZE1vdmUiLCJ2YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9P
dmVybGF5Rm9jdXNDaGFuZ2VkIiwidmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkIiwidmFsdWUiOiAiNDAwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkIiwidmFsdWUiOiAiNDAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0xvc3QiLCJ2YWx1ZSI6ICI0MDIifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNDAzIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQiLCJ2YWx1ZSI6
ICI0MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCIsInZh
bHVlIjogIjQwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2Vk
IiwidmFsdWUiOiAiNDA2In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBsaWNh
dGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQiLCJ2YWx1ZSI6ICI0MDcifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzIiwidmFsdWUiOiAiNDEwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlTaG93biIsInZhbHVlIjogIjUwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlIaWRkZW4iLCJ2YWx1ZSI6ICI1MDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQiLCJ2YWx1ZSI6ICI1
MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCIsInZh
bHVlIjogIjUwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2Vs
ZWN0ZWQiLCJ2YWx1ZSI6ICI1MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9h
cmRSZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICI1MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9S
ZXNldERhc2hib2FyZCIsInZhbHVlIjogIjUwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X1JlbmRlclRvYXN0IiwidmFsdWUiOiAiNTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
SW1hZ2VMb2FkZWQiLCJ2YWx1ZSI6ICI1MDgifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9T
aG93S2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MDkifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9I
aWRlS2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9P
dmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNTExIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QiLCJ2YWx1ZSI6ICI1MTIifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQiLCJ2YWx1
ZSI6ICI1MTMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRv
bkRvd24iLCJ2YWx1ZSI6ICI1MTQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9h
cmRHdWlkZUJ1dHRvblVwIiwidmFsdWUiOiAiNTE1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfU2NyZWVuc2hvdFRyaWdnZXJlZCIsInZhbHVlIjogIjUxNiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ltYWdlRmFpbGVkIiwidmFsdWUiOiAiNTE3In0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQiLCJ2YWx1ZSI6ICI1MTgifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCIsInZhbHVlIjogIjUyMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RUYWtlbiIsInZhbHVlIjogIjUyMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQiLCJ2YWx1ZSI6ICI1
MjIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9h
cmQiLCJ2YWx1ZSI6ICI1MjMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90
UHJvZ3Jlc3NUb0Rhc2hib2FyZCIsInZhbHVlIjogIjUyNCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkIiwidmFsdWUiOiAiNTI1In0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duIiwidmFsdWUiOiAiNjAw
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiIsInZhbHVl
IjogIjYwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbklu
dGVyYWN0aW9uIiwidmFsdWUiOiAiNjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90
aWZpY2F0aW9uX0Rlc3Ryb3llZCIsInZhbHVlIjogIjYwMyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1F1aXQiLCJ2YWx1ZSI6ICI3MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Q
cm9jZXNzUXVpdCIsInZhbHVlIjogIjcwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1F1
aXRBYm9ydGVkX1VzZXJQcm9tcHQiLCJ2YWx1ZSI6ICI3MDIifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkIiwidmFsdWUiOiAiNzAzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCIsInZhbHVlIjogIjcwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAw
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2Vk
IiwidmFsdWUiOiAiODAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25lVGVt
cERhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjgwMyJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQiLCJ2YWx1ZSI6ICI4MDQifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1
ZSI6ICI4MjAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hh
c0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9DYW1l
cmFTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODUxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkIiwi
dmFsdWUiOiAiODUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRW52aXJvbm1lbnRTZXR0
aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU1In0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfU3RhdHVzVXBkYXRlIiwidmFsdWUiOiAiOTAwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMDAwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkIiwidmFsdWUiOiAiMTEwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQiLCJ2YWx1
ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQiLCJ2
YWx1ZSI6ICIxMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRDaGFySW5w
dXQiLCJ2YWx1ZSI6ICIxMjAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRE
b25lIiwidmFsdWUiOiAiMTIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0
aW9uVHJhbnNpdGlvblN0YXJ0ZWQiLCJ2YWx1ZSI6ICIxMzAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCIsInZhbHVlIjogIjEzMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFy
dGVkIiwidmFsdWUiOiAiMTMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0
aW9uTGlzdFVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMzAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQiLCJ2YWx1ZSI6ICIxMzA0In0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUi
LCJ2YWx1ZSI6ICIxMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9N
aXJyb3JXaW5kb3dTaG93biIsInZhbHVlIjogIjE0MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiIsInZhbHVlIjogIjE0MDEifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duIiwi
dmFsdWUiOiAiMTQxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3JfQ2hh
cGVyb25lQm91bmRzSGlkZGVuIiwidmFsdWUiOiAiMTQxMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVhbSIs
InZhbHVlIjogIjE1MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1BhdXNlVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDMifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJmYWNlIiwi
dmFsdWUiOiAiMTU1MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF9FbmFibGVDYXB0dXJlIiwidmFsdWUiOiAiMTYwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDEifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCIsInZh
bHVlIjogIjE2MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9D
bG9zZWQiLCJ2YWx1ZSI6ICIxNjUwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVmVuZG9y
U3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjogIjE5OTk5
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVEZXZpY2VBY3Rpdml0eUxldmVsIiwi
dmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vbmtu
b3duIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9JZGxlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUi
OiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCIsInZhbHVl
IjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5
IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJCdXR0b25J
ZCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUJ1dHRvbl9TeXN0ZW0iLCJ2YWx1
ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUiLCJ2
YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9HcmlwIiwidmFsdWUiOiAi
MiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9MZWZ0IiwidmFsdWUiOiAiMyJ9
CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9VcCIsInZhbHVlIjogIjQifQorICAg
ICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfUmlnaHQiLCJ2YWx1ZSI6ICI1In0KKyAgICAg
ICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX0Rvd24iLCJ2YWx1ZSI6ICI2In0KKyAgICAgICAs
eyJuYW1lIjogImtfRUJ1dHRvbl9BIiwidmFsdWUiOiAiNyJ9CisgICAgICAgLHsibmFtZSI6ICJr
X0VCdXR0b25fUHJveGltaXR5U2Vuc29yIiwidmFsdWUiOiAiMzEifQorICAgICAgICx7Im5hbWUi
OiAia19FQnV0dG9uX0F4aXMwIiwidmFsdWUiOiAiMzIifQorICAgICAgICx7Im5hbWUiOiAia19F
QnV0dG9uX0F4aXMxIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9u
X0F4aXMyIiwidmFsdWUiOiAiMzQifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXMz
IiwidmFsdWUiOiAiMzUifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXM0IiwidmFs
dWUiOiAiMzYifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQi
LCJ2YWx1ZSI6ICIzMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fU3RlYW1WUl9Ucmln
Z2VyIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0Rhc2hib2Fy
ZF9CYWNrIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fTWF4Iiwi
dmFsdWUiOiAiNjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTW91c2VCdXR0
b24iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX0xlZnQiLCJ2
YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0b25fUmlnaHQiLCJ2YWx1
ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0b25fTWlkZGxlIiwidmFsdWUi
OiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFSGlkZGVuQXJlYU1lc2hUeXBl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19lSGlkZGVuQXJlYU1lc2hfU3RhbmRh
cmQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX0lu
dmVyc2UiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNo
X0xpbmVMb29wIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVh
TWVzaF9NYXgiLCJ2YWx1ZSI6ICIzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVW
UkNvbnRyb2xsZXJBeGlzVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfZUNv
bnRyb2xsZXJBeGlzX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfZUNv
bnRyb2xsZXJBeGlzX1RyYWNrUGFkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJr
X2VDb250cm9sbGVyQXhpc19Kb3lzdGljayIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUi
OiAia19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZSIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29udHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZl
bnRzIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sbGlz
aW9uQm91bmRzU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJDT0xMSVNJT05f
Qk9VTkRTX1NUWUxFX0JFR0lOTkVSIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTIiwidmFsdWUiOiAiMiJ9
CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VEIiwidmFs
dWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUi
LCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVf
Q09VTlQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Vu
a25vd25PdmVybGF5IiwidmFsdWUiOiAiMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RXJyb3JfSW52YWxpZEhhbmRsZSIsInZhbHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCIsInZhbHVlIjogIjEz
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5cGUi
LCJ2YWx1ZSI6ICIxNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9LZXlUb29M
b25nIiwidmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTmFt
ZVRvb0xvbmciLCJ2YWx1ZSI6ICIxNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9LZXlJblVzZSIsInZhbHVlIjogIjE3In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVy
cm9yX1dyb25nVHJhbnNmb3JtVHlwZSIsInZhbHVlIjogIjE4In0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlIiwidmFsdWUiOiAiMTkifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZFBhcmFtZXRlciIsInZhbHVlIjog
IjIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1RodW1ibmFpbENhbnRCZURl
c3Ryb3llZCIsInZhbHVlIjogIjIxIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X0FycmF5VG9vU21hbGwiLCJ2YWx1ZSI6ICIyMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJs
YXlFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMjMifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIyNCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlIiwidmFsdWUiOiAiMjUifQor
ICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UiLCJ2
YWx1ZSI6ICIyNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9y
IiwidmFsdWUiOiAiMjcifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVG9vTWFu
eU1hc2tQcmltaXRpdmVzIiwidmFsdWUiOiAiMjkifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSIsInZhbHVlIjogIjMwIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAg
eyJuYW1lIjogIlZSQXBwbGljYXRpb25fT3RoZXIiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25fU2NlbmUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fT3ZlcmxheSIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUi
OiAiVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1V0aWxpdHkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fVlJNb25pdG9yIiwidmFsdWUiOiAiNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2ciLCJ2YWx1ZSI6ICI2In0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25fTWF4IiwidmFsdWUiOiAiNyJ9CitdfQorLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJGaXJtd2FyZUVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7
Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRmlybXdhcmVFcnJvcl9TdWNjZXNzIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfRmFpbCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAg
ICAgIHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX09LIiwidmFsdWUiOiAiMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCIs
InZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX05v
dGlmaWNhdGlvblF1ZXVlRnVsbCIsInZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlIiwidmFsdWUiOiAiMTAyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1
ZUFscmVhZHlFeGlzdHMiLCJ2YWx1ZSI6ICIxMDMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RVZSSW5pdEVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJJbml0
RXJyb3JfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
VW5rbm93biIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5p
dF9JbnN0YWxsYXRpb25Ob3RGb3VuZCIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQiLCJ2YWx1ZSI6ICIxMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kIiwi
dmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfRmlsZU5v
dEZvdW5kIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfRmFjdG9yeU5vdEZvdW5kIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDUifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlIiwidmFsdWUiOiAi
MTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVj
dG9yeUludmFsaWQiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfSW5pdF9IbWROb3RGb3VuZCIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQiLCJ2YWx1ZSI6
ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGgi
LCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob0xv
Z1BhdGgiLCJ2YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5p
dF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkIiwidmFsdWUiOiAiMTE0In0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUmV0cnkiLCJ2YWx1ZSI6ICIxMTUi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIi
LCJ2YWx1ZSI6ICIxMTYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Bbm90
aGVyQXBwTGF1bmNoaW5nIiwidmFsdWUiOiAiMTE3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkIiwidmFsdWUiOiAiMTE4In0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duIiwidmFsdWUiOiAiMTE5In0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMiLCJ2YWx1
ZSI6ICIxMjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZv
ckJhY2tncm91bmRBcHAiLCJ2YWx1ZSI6ICIxMjEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvciIsInZhbHVlIjogIjEyMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFw
cHMiLCJ2YWx1ZSI6ICIxMjMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9J
bnRlcm5hbCIsInZhbHVlIjogIjEyNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X0htZERyaXZlcklkSXNOb25lIiwidmFsdWUiOiAiMTI1In0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCIsInZhbHVlIjogIjEy
NiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5k
IiwidmFsdWUiOiAiMTI3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJN
b25pdG9yU3RhcnR1cEZhaWxlZCIsInZhbHVlIjogIjEyOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIx
MjkifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGljYXRp
b25UeXBlIiwidmFsdWUiOiAiMTMwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMiLCJ2YWx1ZSI6ICIxMzEifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyIsInZh
bHVlIjogIjEzMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMzMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMzQifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCIsInZhbHVlIjogIjIwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biIsInZhbHVlIjogIjIw
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biIsInZh
bHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9h
ZGVkIiwidmFsdWUiOiAiMjAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZl
cl9SdW50aW1lT3V0T2ZEYXRlIiwidmFsdWUiOiAiMjA0In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSIsInZhbHVlIjogIjIwNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCIsInZhbHVlIjogIjIwNiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkIiwi
dmFsdWUiOiAiMjA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
aXNwbGF5Tm90Rm91bmQiLCJ2YWx1ZSI6ICIyMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duIiwidmFsdWUiOiAiMjA5
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9m
Qm91bmRzIiwidmFsdWUiOiAiMjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREaXNwbGF5TWlycm9yZWQiLCJ2YWx1ZSI6ICIyMTIifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQiLCJ2YWx1ZSI6ICIz
MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZh
aWxlZCIsInZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCIsInZhbHVlIjogIjMwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfRmFpbGVkIiwidmFsdWUiOiAiMzA1In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCIsInZh
bHVlIjogIjMwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRv
ckludmFsaWRDb25uZWN0UmVzcG9uc2UiLCJ2YWx1ZSI6ICIzMDcifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMiLCJ2
YWx1ZSI6ICIzMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9G
YWlsZWQiLCJ2YWx1ZSI6ICI0MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQiLCJ2YWx1ZSI6ICI0MDEifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlIiwi
dmFsdWUiOiAiNDAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
T3ZlcmxheUluaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0MDQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9D
b25uZWN0VG9PY3VsdXNSdW50aW1lIiwidmFsdWUiOiAiMTAwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSIsInZh
bHVlIjogIjExMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQiLCJ2YWx1ZSI6ICIxMTAyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05v
U3RvcmVkQ29uZmlnIiwidmFsdWUiOiAiMTEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29CaWciLCJ2YWx1ZSI6ICIxMTA0
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb1NtYWxsIiwidmFsdWUiOiAiMTEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliIiwidmFsdWUi
OiAiMTEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiIsInZhbHVlIjogIjExMDcifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9T
ZW5kVXNlckRhdGFTdGFydCIsInZhbHVlIjogIjExMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0
IiwidmFsdWUiOiAiMTEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCIsInZhbHVlIjogIjExMTAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
VXNlckRhdGFBZGRyZXNzUmFuZ2UiLCJ2YWx1ZSI6ICIxMTExIn0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IiLCJ2YWx1
ZSI6ICIxMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrIiwidmFsdWUiOiAiMTExMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5k
IiwidmFsdWUiOiAiMjAwMCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTY3Jl
ZW5zaG90VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9Nb25vIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RUeXBl
X1N0ZXJlbyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9DdWJlbWFwIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX01vbm9QYW5vcmFtYSIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3Jl
ZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSIsInZhbHVlIjogIjUifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmll
dyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVydHlG
aWxlbmFtZXNfVlIiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6
OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCIsInZhbHVlIjogIjEwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlIiwidmFs
dWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFs
aWRGcmFtZUhlYWRlclZlcnNpb24iLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAi
VlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzIiwidmFsdWUiOiAiMTAzIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUiLCJ2YWx1ZSI6ICIx
MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVk
Rm9yVGhpc0RldmljZSIsInZhbHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlIiwidmFsdWUiOiAiMTA2In0KKyAgICAg
ICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5nRmFpbHVyZSIs
InZhbHVlIjogIjEwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9T
dHJlYW1TZXR1cEZhaWx1cmUiLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJU
cmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTA5In0KKyAg
ICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRTaGFyZWRUZXh0dXJl
SGFuZGxlIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVy
YUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7
Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVyZUZhaWx1cmUiLCJ2YWx1
ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9GcmFt
ZUF2YWlsYWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRD
YW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7Im5h
bWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSIsInZhbHVl
IjogIjExNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlX0Rpc3RvcnRlZCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIiwi
dmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTIiwi
dmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9BcHBLZXlBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0IiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uIiwidmFsdWUiOiAiMTAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXgiLCJ2
YWx1ZSI6ICIxMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25v
d25BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxp
Y2F0aW9uRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMTA1In0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nIiwidmFsdWUiOiAi
MTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZl
c3QiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X0ludmFsaWRBcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyIs
InZhbHVlIjogIjExMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTGF1
bmNoSW5Qcm9ncmVzcyIsInZhbHVlIjogIjExMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxp
Y2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25RdWl0dGluZyIsInZhbHVlIjogIjExMiJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1
ZSI6ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0lzVGVtcGxh
dGUiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93blByb3BlcnR5IiwidmFsdWUiOiAiMjAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkUGFyYW1ldGVy
IiwidmFsdWUiOiAiMjAzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxp
Y2F0aW9uUHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0
aW9uUHJvcGVydHlfTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hUeXBlX1N0cmluZyIsInZhbHVlIjogIjExIn0K
KyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5
X1N0cmluZyIsInZhbHVlIjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Bcmd1bWVudHNfU3RyaW5nIiwidmFsdWUiOiAiMTQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmciLCJ2
YWx1ZSI6ICIxNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVz
Y3JpcHRpb25fU3RyaW5nIiwidmFsdWUiOiAiNTAifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nIiwidmFsdWUiOiAiNTEifQorICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmciLCJ2YWx1ZSI6
ICI1MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNlX1N0
cmluZyIsInZhbHVlIjogIjUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbCIsInZhbHVlIjogIjYwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wiLCJ2YWx1ZSI6ICI2
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRf
Qm9vbCIsInZhbHVlIjogIjYyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0ludGVybmFsX0Jvb2wiLCJ2YWx1ZSI6ICI2MyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0IiwidmFsdWUiOiAiNzAi
fQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25UcmFuc2l0aW9u
U3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNp
dGlvbl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
VHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCIsInZhbHVlIjogIjEwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCIsInZh
bHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05l
d0FwcExhdW5jaGVkIiwidmFsdWUiOiAiMjAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0siLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAs
eyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyIsInZhbHVlIjogIjEw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdf
QmFzZVN0YXRpb25NYXlIYXZlTW92ZWQiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUi
OiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3ZlZCIs
InZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0
YXRlX1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAg
LHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yIiwidmFsdWUiOiAiMjAw
In0KKyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFz
ZVN0YXRpb25VbmluaXRpYWxpemVkIiwidmFsdWUiOiAiMjAxIn0KKyAgICAgICAseyJuYW1lIjog
IkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCIsInZh
bHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X0Vycm9yX1BsYXlBcmVhSW52YWxpZCIsInZhbHVlIjogIjIwMyJ9CisgICAgICAgLHsibmFtZSI6
ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQi
LCJ2YWx1ZSI6ICIyMDQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNoYXBlcm9u
ZUNvbmZpZ0ZpbGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFQ2hhcGVyb25lQ29u
ZmlnRmlsZV9MaXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJFQ2hhcGVyb25l
Q29uZmlnRmlsZV9UZW1wIiwidmFsdWUiOiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjog
InZyOjpFQ2hhcGVyb25lSW1wb3J0RmxhZ3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6
ICJFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6ICIx
In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0luY29tcGF0aWJsZVZlcnNp
b24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3Jf
RG9Ob3RIYXZlRm9jdXMiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21w
b3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5h
bWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uIiwidmFsdWUiOiAi
MTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVJc09uV3Jv
bmdEZXZpY2UiLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9y
RXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCIsInZhbHVlIjogIjEwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRl
ZCIsInZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9J
bmRleE91dE9mUmFuZ2UiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21w
b3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCIsInZhbHVlIjogIjEwOCJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCIsInZhbHVlcyI6IFsgCisg
ICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUiLCJ2YWx1ZSI6ICIwIn0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNlIiwidmFsdWUiOiAi
MSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlUcmFuc2Zvcm1UeXBl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX0Fic29s
dXRlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlUcmFuc2Zvcm1f
VHJhY2tlZERldmljZVJlbGF0aXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSIsInZhbHVlIjogIjIifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQiLCJ2YWx1ZSI6ICIz
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OlZST3ZlcmxheUZsYWdzIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfTm9uZSIsInZhbHVlIjogIjAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQ3VydmVkIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19SR1NTNFgiLCJ2YWx1ZSI6ICIyIn0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiIiwidmFsdWUi
OiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19BY2NlcHRzR2FtZXBhZEV2
ZW50cyIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2hv
d0dhbWVwYWRGb2N1cyIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzIiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBhZEV2ZW50cyIsInZhbHVlIjogIjcifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwiLCJ2
YWx1ZSI6ICI4In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3du
ZXJzaGlwVG9JbnRlcm5hbFByb2Nlc3MiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwiLCJ2YWx1ZSI6ICIxMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQiLCJ2YWx1ZSI6
ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSIsInZhbHVl
IjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1N0ZXJlb1Bhbm9yYW1h
IiwidmFsdWUiOiAiMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU29ydFdp
dGhOb25TY2VuZU92ZXJsYXlzIiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkIiwidmFsdWUiOiAiMTUifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNz
XzAiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZV9CdXR0b25QcmVzc18xIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiIsInZhbHVlIjogIjIifQorICAgICAg
ICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMiLCJ2YWx1
ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3Vs
ZG50RmluZFN5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3JlYXRlQ2xpZW50T3ZlcmxheSIs
InZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNl
X0FwcGxpY2F0aW9uUXVpdCIsInZhbHVlIjogIjYifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAia19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAs
eyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQiLCJ2YWx1ZSI6ICIxIn0K
KyAgICAgICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0IiwidmFsdWUi
OiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dExp
bmVNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FR2FtZXBhZFRleHRJbnB1
dExpbmVNb2RlU2luZ2xlTGluZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAia19F
R2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyIsInZhbHVlIjogIjEifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24iLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX1VwIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0Rvd24iLCJ2YWx1ZSI6ICIxIn0KKyAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fTGVmdCIsInZhbHVlIjogIjIifQorICAg
ICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9SaWdodCIsInZhbHVlIjogIjMifQorICAg
ICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Db3VudCIsInZhbHVlIjogIjQifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUiLCJ2YWx1ZSI6ICIx
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IiLCJ2
YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9uZSIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmci
LCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05v
dFN1cHBvcnRlZCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1v
ZGVsRXJyb3JfSW52YWxpZEFyZyIsInZhbHVlIjogIjMwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsIiwidmFsdWUiOiAiMzAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyIsInZhbHVlIjogIjMwMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMiLCJ2YWx1
ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlW
ZXJ0aWNlcyIsInZhbHVlIjogIjMwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVs
RXJyb3JfTXVsdGlwbGVUZXh0dXJlcyIsInZhbHVlIjogIjMwNSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzMDYifQorICAg
ICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMiLCJ2YWx1
ZSI6ICIzMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3Vn
aFRleENvb3JkcyIsInZhbHVlIjogIjMwOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1v
ZGVsRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICI0MDAifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSQ29tcG9uZW50UHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAgICAg
IHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGljIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSIsInZhbHVlIjog
IjIifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1RvdWNoZWQiLCJ2
YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNQcmVz
c2VkIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5
X0lzU2Nyb2xsZWQiLCJ2YWx1ZSI6ICIxNiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJOb3RpZmljYXRpb25UeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRVZS
Tm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1l
IjogIkVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJW
YWx1ZSIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90
aWZpY2F0aW9uU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFVlJOb3RpZmlj
YXRpb25TdHlsZV9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3Rp
ZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Rpc2FibGVkIiwidmFsdWUiOiAiMjAw
In0KKyAgICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5hYmxl
ZCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHls
ZV9Db250YWN0X0FjdGl2ZSIsInZhbHVlIjogIjIwMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1l
IjogInZyOjpFVlJTZXR0aW5nc0Vycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAi
VlJTZXR0aW5nc0Vycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
U2V0dGluZ3NFcnJvcl9JUENGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAiVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9Kc29uUGFyc2VGYWlsZWQiLCJ2YWx1ZSI6ICI0In0K
KyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1
bHQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdEVy
cm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVy
cm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAg
ICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2YWx1
ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfU2NyZWVuc2hv
dEFscmVhZHlJblByb2dyZXNzIiwidmFsdWUiOiAiMTA4In0KK119CitdLAorImNvbnN0cyI6W3sK
KyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia191blRyYWNrZWREZXZpY2VJbmRleF9IbWQiLCJjb25zdHR5cGUi
OiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia191bk1heFRyYWNrZWREZXZpY2VDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50
MzJfdCIsICJjb25zdHZhbCI6ICIxNiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blRy
YWNrZWREZXZpY2VJbmRleE90aGVyIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNv
bnN0dmFsIjogIjQyOTQ5NjcyOTQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFj
a2VkRGV2aWNlSW5kZXhJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNv
bnN0dmFsIjogIjQyOTQ5NjcyOTUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdWxJbnZh
bGlkUHJvcGVydHlDb250YWluZXIiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSW52YWxpZFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5GbG9h
dFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNv
bnN0dmFsIjogIjEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5JbnQzMlByb3BlcnR5
VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjog
IjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5VaW50NjRQcm9wZXJ0eVRhZyIsImNv
bnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIzIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuQm9vbFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjog
ImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjQifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfdW5TdHJpbmdQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIyMCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlU
eXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5IbWRWZWN0b3I0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBl
VGFnX3QiLCAiY29uc3R2YWwiOiAiMjMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5I
aWRkZW5BcmVhUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFn
X3QiLCAiY29uc3R2YWwiOiAiMzAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5PcGVu
VlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0IiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjEwMDAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwMCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJf
dCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bkNv
bnRyb2xsZXJTdGF0ZUF4aXNDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VsT3ZlcmxheUhhbmRs
ZUludmFsaWQiLCJjb25zdHR5cGUiOiAiY29uc3QgVlJPdmVybGF5SGFuZGxlX3QiLCAiY29uc3R2
YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blNjcmVlbnNob3RIYW5kbGVJ
bnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlN5c3RlbV9WZXJzaW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlN5c3RlbV8wMTUifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogIklWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkV4dGVuZGVkRGlzcGxheV8w
MDEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJUcmFja2Vk
Q2FtZXJhXzAwMyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heEFwcGxpY2F0aW9u
S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjEy
OCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfSG9tZUFwcCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ2ci9ob21lIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ2ci9nYW1lX3RoZWF0ZXIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkFwcGxpY2F0aW9uc19WZXJzaW9uIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkFwcGxpY2F0aW9u
c18wMDYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNoYXBlcm9uZV9WZXJzaW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNoYXBlcm9u
ZV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNoYXBlcm9uZVNldHVwX1ZlcnNp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSQ2hh
cGVyb25lU2V0dXBfMDA1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDb21wb3NpdG9y
X1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
SVZSQ29tcG9zaXRvcl8wMjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5WUk92ZXJs
YXlNYXhLZXlMZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwi
OiAiMTI4In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVybGF5TWF4TmFtZUxl
bmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhPdmVybGF5Q291bnQiLCJjb25zdHR5cGUi
OiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiNjQifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZXNDb3VudCIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMiJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAiSVZST3ZlcmxheV9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUk92ZXJsYXlfMDE0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1IiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImdkYzIwMTUifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFzZSJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInRpcCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiaGFuZGdyaXAifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGF0dXMifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogIklWUlJlbmRlck1vZGVsc19WZXJzaW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlJlbmRlck1vZGVsc18wMDUi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6ZSIs
ImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIyNTYifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogIklWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJOb3RpZmljYXRpb25zXzAwMiJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heFNldHRpbmdzS2V5TGVuZ3RoIiwiY29u
c3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjEyOCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAiSVZSU2V0dGluZ3NfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTZXR0aW5nc18wMDIifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGVhbXZyIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlcXVpcmVIbWQifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZWREcml2ZXIifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZWRIbWQi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxh
eURlYnVnIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlYnVnUHJv
Y2Vzc1BpcGVfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogImRlYnVnUHJvY2Vzc1BpcGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZURpc3RvcnRpb24ifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RGVidWdYIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVn
WSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0
dG9uVG9BbGxBcHBzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJsb2dsZXZlbCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9JUERfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiaXBkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZFVzZURvbWVQ
cm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0JhY2tn
cm91bmRDYW1lcmFIZWlnaHRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZENhbWVyYUhlaWdodCJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kRG9tZVJh
ZGl1cyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9HcmlkQ29sb3Jf
U3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImdy
aWRDb2xvciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9QbGF5QXJl
YUNvbG9yX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJwbGF5QXJlYUNvbG9yIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVh
bVZSX1Nob3dTdGFnZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNob3dTdGFnZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0lu
dDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpcmVj
dE1vZGVFZGlkVmlkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rp
cmVjdE1vZGVFZGlkUGlkX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImRpcmVjdE1vZGVFZGlkUGlkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2luZ1NwZWFrZXJzIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNf
RmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3Bl
YWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2VzdGF0aW9uUG93ZXJNYW5h
Z2VtZW50In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX05ldmVyS2ls
bFByb2Nlc3Nlc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIm5ldmVyS2lsbFByb2Nlc3NlcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0IiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlclRhcmdldE11bHRpcGxpZXIifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVj
dGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
ImFsbG93QXN5bmNSZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VS
ZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9y
Y2VGYWRlT25CYWRUcmFja2luZ19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImZvcmNlRmFkZU9uQmFkVHJhY2tpbmcifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGVmYXVsdE1pcnJvclZpZXci
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdf
Qm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzaG93
TWlycm9yVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9NaXJy
b3JWaWV3R2VvbWV0cnlfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogIm1pcnJvclZpZXdHZW9tZXRyeSJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2gifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3Np
dG9yRnJvbUFwcExhdW5jaF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2gifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhcnRE
YXNoYm9hcmRGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9T
dGVhbVZSX1N0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNo
Ym9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9t
ZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFi
bGVIb21lQXBwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NldElu
aXRpYWxEZWZhdWx0SG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkN5Y2xlQmFja2dy
b3VuZEltYWdlVGltZVNlYyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1W
Ul9SZXRhaWxEZW1vX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAicmV0YWlsRGVtbyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9JcGRPZmZzZXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiaXBkT2Zmc2V0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9M
aWdodGhvdXNlX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZHJpdmVyX2xpZ2h0aG91c2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImRpc2FibGVpbXUifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZWRpc2FtYmlndWF0aW9uIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9u
RGVidWdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiZGlzYW1iaWd1YXRpb25kZWJ1ZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
TGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicHJpbWFyeWJhc2VzdGF0aW9uIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRiaGlzdG9yeSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRyaXZlcl9udWxsIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmciLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2VyaWFsTnVtYmVyIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJtb2RlbE51bWJlciJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dYX0ludDMyIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRvd1gifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WV9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dZIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRvd1dpZHRoIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dIZWlnaHQifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicmVuZGVyV2lkdGgifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlckhlaWdo
dCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5j
VG9QaG90b25zX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RnJlcXVlbmN5In0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNlcmludGVyZmFjZSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRv
cF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlN0
YXR1c0Fsd2F5c09uVG9wIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50
ZXJmYWNlX01pbmltaXplVG9UcmF5X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiTWluaW1pemVUb1RyYXkifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzY3JlZW5zaG90cyJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdFR5
cGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlv
biIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJub3RpZmlj
YXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX0Rv
Tm90RGlzdHVyYl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIkRvTm90RGlzdHVyYiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5
Ym9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJrZXlib2FyZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
VHV0b3JpYWxDb21wbGV0aW9ucyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJUdXRvcmlhbENvbXBsZXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9LZXlib2FyZF9TY2FsZVgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiU2NhbGVYIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9L
ZXlib2FyZF9TY2FsZVkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiU2NhbGVZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9P
ZmZzZXRMZWZ0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJPZmZzZXRMZWZ0WCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
T2Zmc2V0UmlnaHRYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIk9mZnNldFJpZ2h0WCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9h
cmRfT2Zmc2V0WSIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJPZmZzZXRZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9TbW9v
dGhpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiU21v
b3RoaW5nIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX1NlY3Rpb24iLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicGVyZmNoZWNrIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29s
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhldXJpc3Rp
Y0FjdGl2ZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9Ob3RpZnlJbkhN
RF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndh
cm5JbkhNRCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9Ob3RpZnlPbmx5
T25jZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
Indhcm5Pbmx5T25jZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9BbGxv
d1RpbWluZ1N0b3JlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiYWxsb3dUaW1pbmdTdG9yZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogInNhdmVUaW1pbmdzT25FeGl0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZUZXN0RGF0YSJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY29sbGlzaW9uQm91bmRzIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91
bmRzU3R5bGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25f
Qm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xs
aXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24ifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFu
Y2VfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
Q29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdh
bW1hR19JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFC
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NhbWVyYV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImNhbWVyYSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2Ft
ZXJhX0VuYWJsZUNhbWVyYV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JDb2xs
aXNpb25Cb3VuZHNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUZv
clJvb21WaWV3In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRz
Q29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFC
X0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNh
bWVyYUJvdW5kc0NvbG9yR2FtbWFCIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9D
YW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNTdHJl
bmd0aCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fU2VjdGlvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhdWRpbyJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFj
a0RldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25SZWNvcmRE
ZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIm9uUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRp
b19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmciLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib2ZmUGxheWJhY2tE
ZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09mZlJlY29yZERl
dmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAib2ZmUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRp
b19WSVZFSERNSUdhaW4iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAidml2ZUhETUlHYWluIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dl
cl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InBvd2VyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9Qb3dlck9mZk9u
RXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InBvd2VyT2ZmT25FeGl0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9U
dXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAidHVybk9mZlNjcmVlbnNUaW1lb3V0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZDb250
cm9sbGVyc1RpbWVvdXQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1Bvd2VyX1Jl
dHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3Mi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXV0b0xhdW5j
aFN0ZWFtVlJPbkJ1dHRvblByZXNzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9E
YXNoYm9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJkYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Rhc2hi
b2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJlbmFibGVEYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXJjYWRlTW9kZSJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfbW9kZWxza2luX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxza2lucyJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
SVZSU2NyZWVuc2hvdHNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJJVlJTY3JlZW5zaG90c18wMDEifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogIklWUlJlc291cmNlc19WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIklWUlJlc291cmNlc18wMDEifQorXSwKKyJzdHJ1Y3RzIjpbeyJzdHJ1
Y3QiOiAidnI6OkhtZE1hdHJpeDM0X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQgWzNdWzRdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRNYXRy
aXg0NF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm0iLCAiZmllbGR0eXBlIjogImZs
b2F0IFs0XVs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yM190IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFszXSJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6SG1kVmVjdG9yNF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInYi
LCAiZmllbGR0eXBlIjogImZsb2F0IFs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9y
M2RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJkb3Vi
bGUgWzNdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRWZWN0b3IyX3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQorLHsic3RydWN0
IjogInZyOjpIbWRRdWF0ZXJuaW9uX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidyIs
ICJmaWVsZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUi
OiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieSIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn0s
Cit7ICJmaWVsZG5hbWUiOiAieiIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn1dfQorLHsic3RydWN0
IjogInZyOjpIbWRDb2xvcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInIiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZyIsICJmaWVsZHR5cGUiOiAiZmxv
YXQifSwKK3sgImZpZWxkbmFtZSI6ICJiIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmll
bGRuYW1lIjogImEiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpI
bWRRdWFkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidkNvcm5lcnMiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190IFs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
SG1kUmVjdDJfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2VG9wTGVmdCIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2Qm90
dG9tUmlnaHQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In1dfQorLHsi
c3RydWN0IjogInZyOjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCIsImZpZWxkcyI6IFsKK3sgImZp
ZWxkbmFtZSI6ICJyZlJlZCIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn0sCit7ICJmaWVsZG5h
bWUiOiAicmZHcmVlbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn0sCit7ICJmaWVsZG5hbWUi
OiAicmZCbHVlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbMl0ifV19CisseyJzdHJ1Y3QiOiAidnI6
OlRleHR1cmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUiLCAiZmllbGR0
eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogImVUeXBlIiwgImZpZWxkdHlwZSI6ICJl
bnVtIHZyOjpFVGV4dHVyZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJlQ29sb3JTcGFjZSIsICJm
aWVsZHR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifV19CisseyJzdHJ1Y3QiOiAidnI6OlRy
YWNrZWREZXZpY2VQb3NlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibURldmljZVRv
QWJzb2x1dGVUcmFja2luZyIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
In0sCit7ICJmaWVsZG5hbWUiOiAidlZlbG9jaXR5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZBbmd1bGFyVmVsb2NpdHkiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAiZVRy
YWNraW5nUmVzdWx0IiwgImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQifSwK
K3sgImZpZWxkbmFtZSI6ICJiUG9zZUlzVmFsaWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCit7
ICJmaWVsZG5hbWUiOiAiYkRldmljZUlzQ29ubmVjdGVkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJUZXh0dXJlQm91bmRzX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAidU1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJ2TWluIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInVNYXgiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidk1heCIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVnVsa2FuVGV4dHVyZURhdGFfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25JbWFnZSIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BEZXZpY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBW
a0RldmljZV9UICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BQaHlzaWNhbERldmljZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIn0sCit7ICJmaWVsZG5hbWUiOiAi
bV9wSW5zdGFuY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBWa0luc3RhbmNlX1QgKiJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fcFF1ZXVlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtRdWV1ZV9UICoi
fSwKK3sgImZpZWxkbmFtZSI6ICJtX25RdWV1ZUZhbWlseUluZGV4IiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25Gb3JtYXQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCit7ICJmaWVsZG5hbWUiOiAibV9uU2FtcGxlQ291bnQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In1dfQorLHsic3RydWN0IjogInZyOjpEM0QxMlRleHR1cmVEYXRhX3QiLCJmaWVsZHMiOiBb
Cit7ICJmaWVsZG5hbWUiOiAibV9wUmVzb3VyY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBJRDNE
MTJSZXNvdXJjZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wQ29tbWFuZFF1ZXVlIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoifSwKK3sgImZpZWxkbmFtZSI6ICJt
X25Ob2RlTWFzayIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6
OlZSRXZlbnRfQ29udHJvbGxlcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJ1dHRv
biIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
TW91c2VfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ4IiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAiYnV0dG9uIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6VlJFdmVudF9TY3JvbGxfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ4
ZGVsdGEiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAieWRlbHRhIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInJlcGVhdENvdW50IiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Ub3VjaFBh
ZE1vdmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiRmluZ2VyRG93biIsICJmaWVs
ZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJmbFNlY29uZHNGaW5nZXJEb3duIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImZWYWx1ZVhGaXJzdCIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZRmlyc3QiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWFJhdyIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZUmF3IiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Ob3RpZmljYXRpb25fdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1bFVzZXJWYWx1ZSIsICJmaWVsZHR5cGUiOiAidWlu
dDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb25JZCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvY2Vzc190IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJvbGRQaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAiYkZvcmNlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlZSRXZlbnRfT3ZlcmxheV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm92ZXJs
YXlIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In1dfQorLHsic3RydWN0IjogInZyOjpW
UkV2ZW50X1N0YXR1c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInN0YXR1c1N0YXRl
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9L
ZXlib2FyZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNOZXdJbnB1dCIsICJmaWVs
ZHR5cGUiOiAiY2hhciBbOF0ifSwKK3sgImZpZWxkbmFtZSI6ICJ1VXNlclZhbHVlIiwgImZpZWxk
dHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9JcGRfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJpcGRNZXRlcnMiLCAiZmllbGR0eXBlIjogImZsb2F0
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0NoYXBlcm9uZV90IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogIm1fblByZXZpb3VzVW5pdmVyc2UiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQ3VycmVudFVuaXZlcnNlIiwgImZpZWxkdHlwZSI6
ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9SZXNlcnZlZF90IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2VydmVkMCIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDEiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogIm1fbkZpZGVsaXR5TGV2ZWwiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRf
dCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiUmVzZXRCeVN5c3RlbU1lbnUiLCAiZmll
bGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3Rf
dCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAidHlwZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicHJvZ3Jlc3MiLCAiZmllbGR0eXBlIjogImZsb2F0In1d
fQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAicGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAi
ZmllbGRuYW1lIjogInVuQXJnc0hhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJvdmVybGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm5WaXN1YWxNb2RlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogInVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIiwgImZpZWxk
dHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Qcm9wZXJ0eV90
IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNvbnRhaW5lciIsICJmaWVsZHR5cGUiOiAi
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCJ9LAoreyAiZmllbGRuYW1lIjogInByb3AiLCAiZmll
bGR0eXBlIjogImVudW0gdnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifV19CisseyJzdHJ1Y3Qi
OiAidnI6Oihhbm9ueW1vdXMpIiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2VydmVk
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCJ9LAoreyAiZmll
bGRuYW1lIjogImNvbnRyb2xsZXIiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9D
b250cm9sbGVyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtb3VzZSIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpWUkV2ZW50X01vdXNlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJzY3JvbGwiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JvbGxfdCJ9LAoreyAiZmllbGRuYW1lIjog
InByb2Nlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9jZXNzX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb24iLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
VlJFdmVudF9Ob3RpZmljYXRpb25fdCJ9LAoreyAiZmllbGRuYW1lIjogIm92ZXJsYXkiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9PdmVybGF5X3QifSwKK3sgImZpZWxkbmFtZSI6
ICJzdGF0dXMiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TdGF0dXNfdCJ9LAor
eyAiZmllbGRuYW1lIjogImtleWJvYXJkIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZl
bnRfS2V5Ym9hcmRfdCJ9LAoreyAiZmllbGRuYW1lIjogImlwZCIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpWUkV2ZW50X0lwZF90In0sCit7ICJmaWVsZG5hbWUiOiAiY2hhcGVyb25lIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQ2hhcGVyb25lX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJwZXJmb3JtYW5jZVRlc3QiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Q
ZXJmb3JtYW5jZVRlc3RfdCJ9LAoreyAiZmllbGRuYW1lIjogInRvdWNoUGFkTW92ZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1RvdWNoUGFkTW92ZV90In0sCit7ICJmaWVsZG5h
bWUiOiAic2VhdGVkWmVyb1Bvc2VSZXNldCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2
ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCJ9LAoreyAiZmllbGRuYW1lIjogInNjcmVlbnNob3Qi
LCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JlZW5zaG90X3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJzY3JlZW5zaG90UHJvZ3Jlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCJ9LAoreyAiZmllbGRuYW1lIjogImFwcGxpY2F0
aW9uTGF1bmNoIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQXBwbGljYXRpb25M
YXVuY2hfdCJ9LAoreyAiZmllbGRuYW1lIjogImNhbWVyYVN1cmZhY2UiLCAiZmllbGR0eXBlIjog
InN0cnVjdCB2cjo6VlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90In0sCit7ICJmaWVsZG5h
bWUiOiAibWVzc2FnZU92ZXJsYXkiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9N
ZXNzYWdlT3ZlcmxheV90In0sCit7ICJmaWVsZG5hbWUiOiAicHJvcGVydHkiLCAiZmllbGR0eXBl
IjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9wZXJ0eV90In1dfQorLHsic3RydWN0IjogInZyOjpW
UkV2ZW50X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiZXZlbnRUeXBlIiwgImZpZWxk
dHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInRyYWNrZWREZXZpY2VJbmRleCIs
ICJmaWVsZHR5cGUiOiAiVHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgImZpZWxkbmFtZSI6ICJl
dmVudEFnZVNlY29uZHMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAi
ZGF0YSIsICJmaWVsZHR5cGUiOiAiVlJFdmVudF9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAidnI6
OkhpZGRlbkFyZWFNZXNoX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicFZlcnRleERh
dGEiLCAiZmllbGR0eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoifSwKK3sg
ImZpZWxkbmFtZSI6ICJ1blRyaWFuZ2xlQ291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1d
fQorLHsic3RydWN0IjogInZyOjpWUkNvbnRyb2xsZXJBeGlzX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ5
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVy
U3RhdGUwMDFfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1blBhY2tldE51bSIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ1bEJ1dHRvblByZXNzZWQi
LCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAidWxCdXR0b25Ub3Vj
aGVkIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogInJBeGlzIiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNfdCBbNV0ifV19CisseyJz
dHJ1Y3QiOiAidnI6OkNvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzIiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogInNpemUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAiY3VydmVkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAoreyAiZmllbGRuYW1lIjogImFu
dGlhbGlhcyIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJzY2FsZSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJkaXN0YW5jZSIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJhbHBoYSIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ1T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
LAoreyAiZmllbGRuYW1lIjogInZPZmZzZXQiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAidVNjYWxlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogInZTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJncmlk
RGl2cyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJncmlkV2lkdGgi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZ3JpZFNjYWxlIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInRyYW5zZm9ybSIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXg0NF90In1dfQorLHsic3RydWN0IjogInZyOjpDYW1l
cmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
ZUZyYW1lVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSJ9LAoreyAiZmllbGRuYW1lIjogIm5XaWR0aCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogIm5CeXRlc1BlclBpeGVsIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogIm5GcmFtZVNlcXVlbmNlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogInN0YW5kaW5nVHJhY2tlZERldmljZVBvc2UiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6QXBwT3ZlcnJpZGVLZXlzX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicGNoS2V5
IiwgImZpZWxkdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgImZpZWxkbmFtZSI6ICJwY2hWYWx1
ZSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn1dfQorLHsic3RydWN0IjogInZyOjpDb21w
b3NpdG9yX0ZyYW1lVGltaW5nIiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fblNpemUi
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uRnJhbWVJbmRl
eCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFt
ZVByZXNlbnRzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1f
bk51bU1pc1ByZXNlbnRlZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fblJlcHJvamVjdGlvbkZsYWdzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzIiwgImZpZWxkdHlw
ZSI6ICJkb3VibGUifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJlU3VibWl0R3B1TXMiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFBvc3RTdWJtaXRHcHVNcyIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsVG90YWxSZW5kZXJH
cHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9z
aXRvclJlbmRlckdwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
Im1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JJZGxlQ3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0
In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNcyIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJlc2VudENhbGxDcHVNcyIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2FpdEZvclByZXNlbnRD
cHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsU3VibWl0
RnJhbWVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2Fp
dEdldFBvc2VzQ2FsbGVkTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAibV9mbE5ld1Bvc2VzUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJtX2ZsTmV3RnJhbWVSZWFkeU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRNcyIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yUmVuZGVy
U3RhcnRNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX0htZFBv
c2UiLCAiZmllbGR0eXBlIjogInZyOjpUcmFja2VkRGV2aWNlUG9zZV90In1dfQorLHsic3RydWN0
IjogInZyOjpDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyIsImZpZWxkcyI6IFsKK3sgImZpZWxk
bmFtZSI6ICJtX25QaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUi
OiAibV9uTnVtRnJhbWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0
dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJv
cHBlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Mb2FkaW5nIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5n
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bURyb3Bw
ZWRGcmFtZXNMb2FkaW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1UaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQiLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZy
YW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjog
Im1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2U291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZEaXJlY3Rpb24iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAiZU9yaWdp
biIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJ2UG9pbnQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1k
VmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAidk5vcm1hbCIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2VVZzIiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAoreyAiZmllbGRuYW1lIjogImZEaXN0YW5j
ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlv
bk1hc2tSZWN0YW5nbGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX2ZsVG9wTGVm
dFgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFRvcExlZnRZ
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxXaWR0aCIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsSGVpZ2h0IiwgImZpZWxk
dHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNs
ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fZmxDZW50ZXJYIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDZW50ZXJZIiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxSYWRpdXMiLCAiZmllbGR0eXBlIjogImZs
b2F0In1dfQorLHsic3RydWN0IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKK3sgImZp
ZWxkbmFtZSI6ICJtX1JlY3RhbmdsZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpJbnRlcnNl
Y3Rpb25NYXNrUmVjdGFuZ2xlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX0NpcmNsZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QifV19CisseyJzdHJ1
Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QcmltaXRpdmVUeXBlIiwgImZpZWxkdHlwZSI6ICJlbnVt
IHZyOjpFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUifSwKK3sgImZpZWxk
bmFtZSI6ICJtX1ByaW1pdGl2ZSIsICJmaWVsZHR5cGUiOiAiVlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZV9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX0Nv
bXBvbmVudFN0YXRlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5nVG9D
b21wb25lbnRSZW5kZXJNb2RlbCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgz
NF90In0sCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5nVG9Db21wb25lbnRMb2NhbCIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90In0sCit7ICJmaWVsZG5hbWUiOiAidVBy
b3BlcnRpZXMiLCAiZmllbGR0eXBlIjogIlZSQ29tcG9uZW50UHJvcGVydGllcyJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5h
bWUiOiAidlBvc2l0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9
LAoreyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1k
VmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAicmZUZXh0dXJlQ29vcmQiLCAiZmllbGR0eXBl
IjogImZsb2F0IFsyXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInVuV2lkdGgiLCAiZmllbGR0eXBlIjog
InVpbnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAidW5IZWlnaHQiLCAiZmllbGR0eXBlIjogInVp
bnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAicnViVGV4dHVyZU1hcERhdGEiLCAiZmllbGR0eXBl
IjogImNvbnN0IHVpbnQ4X3QgKiJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyVmVydGV4RGF0YSIsICJmaWVsZHR5cGUiOiAi
Y29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqIn0sCit7ICJmaWVsZG5hbWUi
OiAidW5WZXJ0ZXhDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJySW5kZXhEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCB1aW50MTZfdCAqIn0sCit7ICJm
aWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogImRpZmZ1c2VUZXh0dXJlSWQiLCAiZmllbGR0eXBlIjogIlRleHR1cmVJ
RF90In1dfQorLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0
ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJTY3JvbGxXaGVlbFZpc2libGUiLCAi
ZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpOb3RpZmljYXRpb25CaXRt
YXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX3BJbWFnZURhdGEiLCAiZmllbGR0
eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwgImZpZWxkdHlwZSI6
ICJpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q09wZW5WUkNvbnRleHQiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAibV9wVlJTeXN0ZW0iLCAiZmllbGR0eXBlIjogImNsYXNzIHZy
OjpJVlJTeXN0ZW0gKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ2hhcGVyb25lIiwgImZpZWxk
dHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25lICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BW
UkNoYXBlcm9uZVNldHVwIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25lU2V0
dXAgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ29tcG9zaXRvciIsICJmaWVsZHR5cGUiOiAi
Y2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZST3Zlcmxh
eSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUk92ZXJsYXkgKiJ9LAoreyAiZmllbGRuYW1l
IjogIm1fcFZSUmVzb3VyY2VzIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSUmVzb3VyY2Vz
ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlJlbmRlck1vZGVscyIsICJmaWVsZHR5cGUiOiAi
Y2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJFeHRl
bmRlZERpc3BsYXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkg
KiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2V0dGluZ3MiLCAiZmllbGR0eXBlIjogImNsYXNz
IHZyOjpJVlJTZXR0aW5ncyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJBcHBsaWNhdGlvbnMi
LCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJBcHBsaWNhdGlvbnMgKiJ9LAoreyAiZmllbGRu
YW1lIjogIm1fcFZSVHJhY2tlZENhbWVyYSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlRy
YWNrZWRDYW1lcmEgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2NyZWVuc2hvdHMiLCAiZmll
bGR0eXBlIjogImNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqIn1dfQorXSwKKyJtZXRob2RzIjpb
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
bldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicG5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UHJvamVjdGlvbk1hdHJpeCIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXg0NF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiZk5lYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogImZGYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRQcm9qZWN0aW9uUmF3IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZMZWZ0IiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZSaWdodCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmVG9wIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZCb3R0b20iICwicGFyYW10
eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0ZURpc3RvcnRpb24i
LAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJmVSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmViIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwRGlzdG9ydGlvbkNvb3JkaW5hdGVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6
OkRpc3RvcnRpb25Db29yZGluYXRlc190ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RXll
VG9IZWFkVHJhbnNmb3JtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1h
dHJpeDM0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVF
eWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
VGltZVNpbmNlTGFzdFZzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZlNlY29uZHNTaW5jZUxhc3RW
c3luYyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1
bEZyYW1lQ291bnRlciIgLCJwYXJhbXR5cGUiOiAidWludDY0X3QgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXREM0Q5QWRhcHRlckluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJpbnQz
Ml90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldERYR0lPdXRwdXRJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFk
YXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1l
IjogIklzRGlzcGxheU9uRGVza3RvcCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJTZXREaXNwbGF5VmlzaWJpbGl0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9v
bCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYklzVmlzaWJs
ZU9uRGVza3RvcCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2lu
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3ciICwicGFyYW10
eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYWNrZWREZXZpY2VQb3Nl
QXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQiICwi
cGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlc2V0U2VhdGVkWmVyb1Bvc2Ui
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2VhdGVkWmVyb1Bv
c2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjog
InN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSYXdaZXJvUG9zZVRvU3Rh
bmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
eXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRp
Y2VzT2ZDbGFzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2VkRGV2aWNlQ2xhc3MiICwi
cGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicHVuVHJhY2tlZERldmljZUluZGV4QXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5UcmFj
a2VkRGV2aWNlSW5kZXhBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZUluZGV4
QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpU
cmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2
aWNlQWN0aXZpdHlMZXZlbCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVEZXZpY2VBY3Rp
dml0eUxldmVsIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bkRldmljZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiQXBwbHlUcmFuc2Zvcm0iLAorICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdXRw
dXRQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUi
OiAiY29uc3Qgc3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwVHJhbnNmb3JtIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6Okht
ZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlSW5k
ZXhGb3JDb250cm9sbGVyUm9sZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkRldmljZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xl
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0i
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmlj
ZUluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9s
ZSIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldFRyYWNrZWREZXZpY2VDbGFzcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc1RyYWNrZWREZXZpY2VDb25u
ZWN0ZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCb29sVHJh
Y2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2Vk
UHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEZsb2F0VHJhY2tlZERl
dmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9hdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRJbnQzMlRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHJv
cCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJv
cGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQ2NF90IiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwcm9w
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlF
cnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
eXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE1hdHJpeDM0VHJhY2tlZERldmljZVBy
b3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3Bl
cnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RyaW5n
VHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRl
eCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVy
dHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVy
U2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
RXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1
cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5RXJy
b3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9sbE5leHRFdmVudCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnRXaXRoUG9zZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiZU9yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3Qg
dnI6OlZSRXZlbnRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYWNrZWRE
ZXZpY2VQb3NlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJlVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV2ZW50VHlwZSJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRIaWRkZW5BcmVhTWVzaCIsCisgICAgICAgInJldHVybnR5
cGUiOiAic3RydWN0IHZyOjpIaWRkZW5BcmVhTWVzaF90IiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVIaWRkZW5B
cmVhTWVzaFR5cGUifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlclN0YXRlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRy
b2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlclN0YXRlV2l0
aFBvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxl
ckRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29udHJvbGxlclN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250
cm9sbGVyU3RhdGVTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpU
cmFja2VkRGV2aWNlUG9zZV90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiVHJpZ2dlckhhcHRp
Y1B1bHNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJh
bXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5BeGlzSWQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidXNEdXJhdGlvbk1pY3JvU2VjIiAsInBhcmFtdHlwZSI6ICJ1bnNpZ25lZCBzaG9ydCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCdXR0b25JZE5hbWVGcm9tRW51bSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlQnV0dG9uSWQiICwicGFyYW10eXBlIjogInZyOjpFVlJCdXR0b25J
ZCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVu
dW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUF4aXNUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSQ29udHJvbGxlckF4aXNUeXBlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkNhcHR1cmVJ
bnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VJbnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIklz
SW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJEcml2ZXJEZWJ1Z1JlcXVlc3QiLAorICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXF1ZXN0IiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNwb25zZUJ1ZmZlciIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZXNwb25z
ZUJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1l
IjogIlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkZpcm13YXJlRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1aXRfRXhpdGluZyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1aXRfVXNlclBy
b21wdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSRXh0ZW5kZWREaXNwbGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRXaW5kb3dCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuWCIgLCJwYXJhbXR5cGUiOiAiaW50
MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBl
IjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RXllT3V0
cHV0Vmlld3BvcnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpF
VlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblkiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBl
IjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RFhHSU91
dHB1dEluZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuQWRhcHRlckluZGV4IiAsInBhcmFtdHlwZSI6
ICJpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJPdXRwdXRJbmRl
eCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29u
c3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
Q2FtZXJhRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1l
cmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhhc0NhbWVyYSIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGFzQ2FtZXJhIiAs
InBhcmFtdHlwZSI6ICJib29sICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENh
bWVyYUZyYW1lU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1l
cmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRl
dmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkhlaWdo
dCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBu
RnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFJbnRyaW5zaWNzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwi
cGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicEZvY2FsTGVuZ3RoIiAsInBhcmFtdHlwZSI6ICJ2cjo6SG1kVmVjdG9yMl90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ2VudGVyIiAsInBhcmFtdHlwZSI6ICJ2cjo6
SG1kVmVjdG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbWVyYVBy
b2plY3Rpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFpOZWFyIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsWkZhciIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUHJvamVjdGlvbiIgLCJwYXJh
bXR5cGUiOiAidnI6OkhtZE1hdHJpeDQ0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJhIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZENhbWVyYUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRl
b1N0cmVhbUZyYW1lQnVmZmVyIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tl
ZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEZy
YW1lQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJuRnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUiOiAidnI6OkNhbWVyYVZpZGVv
U3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1lSGVh
ZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwVGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAidnI6OlZSVGV4dHVyZUJvdW5k
c190ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBl
IjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3Ry
ZWFtVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENh
bWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJo
VHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDEx
RGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAq
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVG
cmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGdsVGV4dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6
Z2xVSW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJh
bXR5cGUiOiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRD
YW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVH
TCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEi
ICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBh
dGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImJUZW1wb3JhcnkiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIklzQXBwbGljYXRp
b25JbnN0YWxsZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9u
Q291bnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuQXBwbGljYXRpb25JbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAs
InBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1
ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZmZXJMZW4iICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxhdW5jaEFwcGxp
Y2F0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
TGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFRlbXBsYXRlQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hOZXdBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBLZXlzIiAsImFycmF5X2NvdW50Ijog
InVuS2V5cyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpBcHBPdmVycmlkZUtleXNf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5LZXlzIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBw
bGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBsaWNhdGlvbkZyb21N
aW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBl
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hBcmdzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJJZGVudGlmeUFwcGxpY2F0aW9uIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Qcm9jZXNzSWQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Q
cm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlv
bnNFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAq
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Q
cm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByb3BlcnR5VmFsdWVCdWZmZXIi
ICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRB
cHBsaWNhdGlvblByb3BlcnR5Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlUHJvcGVy
dHkiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9u
RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
QXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvblByb3Bl
cnR5VWludDY0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlUHJvcGVydHkiICwicGFy
YW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2giLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJBdXRvTGF1bmNoIiAs
InBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxp
Y2F0aW9uQXV0b0xhdW5jaCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RGVmYXVs
dEFwcGxpY2F0aW9uRm9yTWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJB
cHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9u
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
Ym9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBw
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hNaW1lVHlwZXNCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1p
bWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTWltZVR5cGUiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleXNUaGF0U3Vw
cG9ydEJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRz
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5IYW5kbGUiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcmdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGlj
YXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTdGFydGluZ0FwcGxpY2F0aW9uIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBh
cmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZl
ckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0VHJhbnNpdGlvblN0YXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUGVyZm9ybUFwcGxpY2F0
aW9uUHJlbGF1bmNoQ2hlY2siLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNh
dGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0iLAor
ICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAic3RhdGUiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25TdGF0ZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkxhdW5jaEludGVybmFsUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaEJpbmFyeVBhdGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3VtZW50cyIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoV29ya2luZ0RpcmVjdG9y
eSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FsaWJyYXRpb25TdGF0ZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
UGxheUFyZWFTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVgiICwicGFyYW10eXBlIjogImZs
b2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVoiICwicGFyYW10eXBlIjogImZs
b2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNo
YXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UGxheUFyZWFSZWN0IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJyZWN0IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbG9hZEluZm8iLAorICAgICAgICJyZXR1cm50eXBl
IjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0U2NlbmVDb2xvciIsCisgICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
Y29sb3IiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRCb3VuZHNDb2xvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dENv
bG9yQXJyYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAibk51bU91dHB1dENvbG9ycyIgLCJwYXJhbXR5cGUiOiAiaW50In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiICwi
cGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dENhbWVy
YUNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJBcmVCb3VuZHNWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkZvcmNlQm91bmRzVmlzaWJsZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiYkZvcmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiQ29tbWl0V29ya2luZ0NvcHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwi
cGFyYW10eXBlIjogInZyOjpFQ2hhcGVyb25lQ29uZmlnRmlsZSJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlJldmVydFdvcmtpbmdDb3B5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhU2l6ZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhUmVjdCIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1
cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8iLAor
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAicHVuUXVh
ZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9u
ZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFN0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgz
NF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNo
YXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGxheUFyZWFT
aXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJzaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJzaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3Vu
dCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFN0YW5kaW5nWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRy
aXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRGcm9tRGlzayIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiY29uZmlnRmlsZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDaGFwZXJv
bmVDb25maWdGaWxlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZVNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1h
dHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdDb2xs
aXNpb25Cb3VuZHNUYWdzSW5mbyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRhZ3NCdWZmZXIiICwiYXJy
YXlfY291bnQiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNl
dHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0lu
Zm8iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJw
dW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwiYXJyYXlfY291bnQiOiAidW5RdWFkc0NvdW50IiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8iLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAicHVuUXVhZHNDb3VudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJFeHBvcnRMaXZlVG9CdWZmZXIiLAorICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkJ1ZmZlckxlbmd0aCIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkltcG9ydEZyb21CdWZmZXJU
b1dvcmtpbmciLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBCdWZmZXIiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5JbXBvcnRGbGFncyIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFRyYWNraW5nU3Bh
Y2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tp
bmdVbml2ZXJzZU9yaWdpbiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tpbmdT
cGFjZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJXYWl0R2V0UG9zZXMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBSZW5kZXJQb3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5SZW5kZXJQb3Nl
QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlclBvc2VBcnJheUNvdW50IiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBHYW1lUG9zZUFy
cmF5IiAsImFycmF5X2NvdW50IjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGFzdFBvc2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVy
UG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBv
c2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBv
c2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5
cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3Ii
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwT3V0cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNl
UG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0cHV0R2FtZVBvc2UiICwicGFy
YW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTdWJtaXQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21w
b3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBCb3VuZHMiICwicGFyYW10eXBlIjogImNvbnN0IHN0
cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5T
dWJtaXRGbGFncyIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9zdFByZXNlbnRIYW5kb2ZmIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWluZyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFRpbWluZyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3Np
dG9yX0ZyYW1lVGltaW5nICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkZyYW1lc0FnbyIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEZy
YW1lVGltaW5ncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjog
InN0cnVjdCB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAibkZyYW1lcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEZyYW1lVGltZVJlbWFpbmluZyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
ZmxvYXQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldEN1bXVsYXRpdmVTdGF0cyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicFN0YXRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfQ3VtdWxhdGl2
ZVN0YXRzICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuU3RhdHNTaXplSW5CeXRlcyIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZhZGVUb0Nv
bG9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25kcyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJmUmVkIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImZHcmVlbiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJmQmx1ZSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldEN1cnJlbnRGYWRlQ29sb3IiLAorICAgICAgICJyZXR1cm50eXBl
IjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkZhZGVHcmlkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lk
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25kcyIg
LCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRmFkZUluIiAs
InBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50
R3JpZEFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9hdCIKK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
U2V0U2t5Ym94T3ZlcnJpZGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3Np
dG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBU
ZXh0dXJlcyIgLCJhcnJheV9jb3VudCI6ICJ1blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
VGV4dHVyZUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiQ2xlYXJTa3lib3hPdmVycmlkZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckJyaW5nVG9Gcm9udCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckdvVG9CYWNrIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3NpdG9yUXVpdCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNGdWxsc2NyZWVuIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50U2Nl
bmVGb2N1c1Byb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRMYXN0RnJhbWVSZW5kZXJlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkNhblJlbmRlclNjZW5lIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWlycm9yV2luZG93IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21w
b3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlTWlycm9yV2luZG93IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc01pcnJvcldpbmRvd1Zpc2li
bGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0
b3JEdW1wSW1hZ2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24iLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImJPdmVycmlkZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VSZWNvbm5lY3RQcm9jZXNzIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3Np
dG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTdXNwZW5kUmVuZGVyaW5nIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJiU3VzcGVuZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0TWlycm9yVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicEQzRDExRGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJw
YXJhbXR5cGUiOiAidm9pZCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsZWFzZU1p
cnJvclRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExU2hhZGVyUmVzb3VyY2VW
aWV3IiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dE1pcnJvclRleHR1cmVHTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0
b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBn
bFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xT
aGFyZWRUZXh0dXJlSGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsZWFz
ZVNoYXJlZEdMVGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10
eXBlIjogInZyOjpnbFVJbnRfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImdsU2hhcmVkVGV4
dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiVW5s
b2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lk
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRl
eHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVx
dWlyZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVy
U2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBQaHlzaWNhbERldmljZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZpY2Vf
VCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJG
aW5kT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtl
eSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5RnJpZW5kbHlOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkRlc3Ryb3lPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0SGlnaFF1YWxpdHlPdmVybGF5IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlnaFF1
YWxpdHlPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlLZXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5
cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRPdmVybGF5TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJ
bWFnZURhdGEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHZCdWZmZXIiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwdW5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInB1bkhlaWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZST3Zl
cmxheUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5UmVuZGVyaW5nUGlk
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuUElEIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0T3ZlcmxheVJlbmRlcmluZ1BpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5RmxhZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3ZlcmxheUZsYWciICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlGbGFncyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJFbmFibGVkIiAsInBh
cmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5RmxhZyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
T3ZlcmxheUZsYWciICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlGbGFncyJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBiRW5hYmxlZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5Q29sb3IiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxv
YXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5Q29sb3IiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zl
cmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZSZWQiICwicGFyYW10eXBl
IjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZkdyZWVuIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZCbHVlIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5QWxwaGEiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkFs
cGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3Zl
cmxheUFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUZXhlbEFzcGVjdCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBl
IjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4ZWxBc3BlY3Qi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZUZXhlbEFzcGVjdCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheVNvcnRPcmRlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blNvcnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlTb3J0T3JkZXIiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuU29y
dE9yZGVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTZXRPdmVybGF5V2lkdGhJbk1ldGVycyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmV2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlXaWR0aEluTWV0ZXJzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBm
V2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmTWluRGlzdGFu
Y2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZN
aW5EaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGZNYXhEaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVRl
eHR1cmVDb2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRleHR1cmVDb2xv
clNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlUZXh0dXJlQm91bmRzIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVy
ZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHlwZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRyYW5zZm9y
bVR5cGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdP
cmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRyYWNraW5nT3Jp
Z2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UcmFj
a2VkRGV2aWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cHVuVHJhY2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRy
YW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9u
ZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5z
Zm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
Q29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5Db21wb25lbnROYW1lU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlNob3dPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU92ZXJsYXkiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZS
T3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc092ZXJsYXlWaXNpYmxl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhbnNmb3JtRm9y
T3ZlcmxheUNvb3JkaW5hdGVzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY29vcmRpbmF0
ZXNJbk92ZXJsYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0T3Zl
cmxheUV2ZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFdmVu
dCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlSW5wdXRNZXRob2QiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJTZXRPdmVybGF5SW5wdXRNZXRob2QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0TWV0aG9kIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SW5wdXRNZXRob2QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJs
YXlNb3VzZVNjYWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInB2ZWNNb3VzZVNjYWxlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5TW91c2VTY2Fs
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRWZWN0
b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rp
b24iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFBhcmFtcyIgLCJw
YXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFJlc3VsdHMiICwicGFyYW10eXBlIjogInN0
cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlckRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIklzSG92ZXJUYXJnZXRPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRHYW1lcGFkRm9j
dXNPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE5ld0ZvY3VzT3Zl
cmxheSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5TmVpZ2hib3IiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogImVEaXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zl
cmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxUbyIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJNb3ZlR2Ft
ZXBhZEZvY3VzVG9OZWlnaGJvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZURp
cmVjdGlvbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxGcm9tIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUZXh0dXJlIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlRleHR1cmVfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJDbGVhck92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJhdyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdkJ1ZmZlciIgLCJw
YXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5XaWR0aCIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkhlaWdodCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRlcHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3Zl
cmxheUZyb21GaWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaEZpbGVQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBOYXRpdmVUZXh0dXJlSGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE5h
dGl2ZVRleHR1cmVSZWYiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBXaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBIZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwTmF0aXZlRm9ybWF0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicEFQSVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVGV4
dHVyZVR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBDb2xvclNwYWNlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUZXh0
dXJlQm91bmRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBOYXRp
dmVUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldE92ZXJsYXlUZXh0dXJlU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVEYXNoYm9hcmRPdmVybGF5
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5
RnJpZW5kbHlOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwTWFpbkhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGh1bWJuYWlsSGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
SXNEYXNoYm9hcmRWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lk
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGFz
aGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5Qcm9jZXNzSWQiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dEYXNoYm9hcmQiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaE92ZXJsYXlUb1Nob3ciICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJpbWFyeURhc2hib2FyZERldmljZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90IgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJT
aG93S2V5Ym9hcmQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1vZGUi
ICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4
dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlvbiIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5D
aGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0X3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dLZXlib2FyZEZvck92ZXJsYXkiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0TW9k
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImVMaW5lSW5wdXRNb2RlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRU
ZXh0SW5wdXRMaW5lTW9kZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaERlc2NyaXB0aW9u
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bkNoYXJNYXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoRXhpc3RpbmdUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJiVXNlTWluaW1hbE1vZGUiICwicGFyYW10eXBlIjogImJvb2wifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1VXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0S2V5Ym9hcmRUZXh0IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoVGV4dCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNjaFRleHQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlS2V5Ym9hcmQiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNr
aW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImF2b2lkUmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRSZWN0Ml90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTWFza1ByaW1p
dGl2ZXMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bk51bU1hc2tQcmltaXRp
dmVzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
UHJpbWl0aXZlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldE92ZXJsYXlGbGFncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwRmxhZ3MiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dNZXNzYWdlT3ZlcmxheSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ2FwdGlvbiIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMFRl
eHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEJ1dHRvbjFUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hCdXR0b24yVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uM1RleHQiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkUmVuZGVyTW9k
ZWxfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJN
b2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9k
ZWxfdCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
UmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGcmVlUmVuZGVyTW9kZWwiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBSZW5kZXJNb2RlbCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpS
ZW5kZXJNb2RlbF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFRleHR1cmVf
QXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwi
cGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBw
VGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2RlbF9UZXh0dXJlTWFw
X3QgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJl
bmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRleHR1cmUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBUZXh0dXJlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVs
X1RleHR1cmVNYXBfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0dXJl
RDNEMTFfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJl
SWQiICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBEM0QxMURldmljZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHBEM0QxMVRleHR1cmUyRCIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlRleHR1cmVJRF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicERzdFRleHR1cmUiICwi
cGFyYW10eXBlIjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGcmVlVGV4
dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBl
IjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbE5h
bWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlck1vZGVsSW5kZXgiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1l
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbE5hbWVMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJN
b2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFJlbmRlck1vZGVsQ291bnQiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVu
dENvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29t
cG9uZW50TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21w
b25lbnRJbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hDb21wb25lbnROYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAi
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnROYW1lTGVuIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21w
b25lbnRCdXR0b25NYXNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1l
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnRS
ZW5kZXJNb2RlbE5hbWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbiIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
Q29tcG9uZW50U3RhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29t
cG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OlZSQ29u
dHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBTdGF0ZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0
ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29tcG9uZW50U3RhdGUiICwicGFyYW10
eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlJlbmRlck1vZGVsSGFzQ29tcG9uZW50IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
VGh1bWJuYWlsVVJMIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UaHVtYm5haWxVUkxMZW4iICwicGFyYW10eXBlIjog
InVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJl
bmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoT3JpZ2luYWxQYXRoIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5
cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5PcmlnaW5hbFBhdGhMZW4i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9k
ZWxFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Tm90aWZpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlTm90aWZpY2F0aW9u
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3IiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvblR5cGUi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzdHlsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OkVWUk5vdGlmaWNhdGlvblN0eWxlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEltYWdlIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90ICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwTm90aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZy
OjpWUk5vdGlmaWNhdGlvbklkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbW92
ZU5vdGlmaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlv
bkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJub3Rp
ZmljYXRpb25JZCIgLCJwYXJhbXR5cGUiOiAidnI6OlZSTm90aWZpY2F0aW9uSWQifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJy
b3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRp
bmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRm9y
Y2UiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9y
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBl
RXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0
dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogIm5WYWx1ZSIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2Vj
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImZsVmFsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJy
b3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0
dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFN0cmluZyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9vbCIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10
eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFy
YW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRp
bmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RyaW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0
aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hTZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6
ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blZhbHVlTGVuIiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10
eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJS
ZW1vdmVTZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
UmVtb3ZlS2V5SW5TZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0aW5n
c0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlJlcXVlc3RTY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwT3V0U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIg
LCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIb29rU2NyZWVuc2hvdCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFN1cHBvcnRlZFR5cGVzIiAsImFycmF5
X2NvdW50IjogIm51bVR5cGVzIiAsInBhcmFtdHlwZSI6ICJjb25zdCB2cjo6RVZSU2NyZWVuc2hv
dFR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm51bVR5cGVzIiAsInBhcmFtdHlwZSI6
ICJpbnQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNj
cmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlU
eXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFR5cGUiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hv
dHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAic2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZpbGVuYW1l
VHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEZpbGVuYW1lIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY2NoRmlsZW5h
bWUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFByb2dyZXNz
IiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlRha2VT
dGVyZW9TY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hv
dEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVuYW1l
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTdWJtaXRTY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVu
c2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJz
Y3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU291cmNlUHJldmlld0ZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hTb3VyY2VWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291cmNlcyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFNoYXJlZFJlc291cmNlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVzb3Vy
Y2VzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZXNvdXJjZUZ1bGxQYXRoIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFBh
dGhCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KK10K
K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfY2FwaS5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTEwZjk1MWRjNTYzOTNkY2Fj
OWJiODBlODM0MjBiYzRhOTE1M2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApAQCAtMCwwICsxLDE4NjkgQEAKKy8vPT09
PT09PSBDb3B5cmlnaHQgKGMpIFZhbHZlIENvcnBvcmF0aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVk
LiA9PT09PT09PT09PT09PT0KKy8vCisvLyBQdXJwb3NlOiBIZWFkZXIgZm9yIGZsYXR0ZWQgU3Rl
YW1BUEkuIFVzZSB0aGlzIGZvciBiaW5kaW5nIHRvIG90aGVyIGxhbmd1YWdlcy4KKy8vIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCwgZG8gbm90IGVkaXQgaXQuCisvLworLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisjaWZuZGVmIF9fT1BFTlZSX0FQSV9GTEFUX0hfXworI2RlZmluZSBfX09Q
RU5WUl9BUElfRkxBVF9IX18KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBfX2Ns
YW5nX18gKQorI3ByYWdtYSBvbmNlCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVm
aW5lIEVYVEVSTl9DIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIEVYVEVSTl9DCisjZW5kaWYK
KworI2RlZmluZSBPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSBfX3N0ZGNhbGwKKworLy8gT1BFTlZS
IEFQSSBleHBvcnQgbWFjcm8KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSAmJiAhZGVmaW5lZCggX1gz
NjAgKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX0VYUE9SVFMgKQorICAgICAgICNk
ZWZpbmUgU19BUEkgRVhURVJOX0MgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyAgICAgICAjZWxp
ZiBkZWZpbmVkKCBPUEVOVlJfQVBJX05PRExMICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVS
Tl9DCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5lIFNfQVBJIGV4dGVybiAiQyIgX19kZWNs
c3BlYyggZGxsaW1wb3J0ICkgCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUwor
I2VsaWYgZGVmaW5lZCggX19HTlVDX18gKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJ
X0VYUE9SVFMgKQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MgX19hdHRyaWJ1dGVfXyAo
KHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5lIFNf
QVBJIEVYVEVSTl9DCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUworI2Vsc2Ug
Ly8gIVdJTjMyCisgICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9BUElfRVhQT1JUUyApCisgICAg
ICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbHNlCisgICAgICAgI2RlZmluZSBT
X0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9SVFMKKyNlbmRp
ZgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZiBkZWZpbmVkKCBfX1dJTjMyICkKK3R5cGVk
ZWYgY2hhciBib29sOworI2Vsc2UKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjZW5kaWYKKwordHlw
ZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJf
dCBQcm9wZXJ0eVR5cGVUYWdfdDsKKworCisvLyBPcGVuVlIgQ29uc3RhbnRzCisKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bk1heERyaXZlckRlYnVnUmVzcG9uc2VTaXplID0gMzI3Njg7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0g
MDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFRyYWNrZWREZXZpY2VDb3VudCA9
IDE2Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERldmljZUluZGV4T3Ro
ZXIgPSA0Mjk0OTY3Mjk0Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERl
dmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9u
ZyBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0gMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbnQga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQg
aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191bkludDMyUHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
VWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuQm9v
bFByb3BlcnR5VGFnID0gNDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blN0cmluZ1By
b3BlcnR5VGFnID0gNTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZE1hdHJpeDM0
UHJvcGVydHlUYWcgPSAyMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZE1hdHJp
eDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZFZl
Y3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1k
VmVjdG9yNFByb3BlcnR5VGFnID0gMjM7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5I
aWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191
bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSA9IDMyNzY4Oworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZCA9IDA7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9
IDA7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlN5c3RlbV9WZXJzaW9uID0gIklWUlN5c3RlbV8w
MTUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJ
VlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSVHJhY2tlZENh
bWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRDYW1lcmFfMDAzIjsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4Oworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciA9ICJ2ci9nYW1lX3RoZWF0ZXIiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJBcHBsaWNh
dGlvbnNfMDA2IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hhcGVyb25lX1ZlcnNpb24gPSAi
SVZSQ2hhcGVyb25lXzAwMyI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUkNoYXBlcm9uZVNldHVw
X1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lU2V0dXBfMDA1IjsKK3N0YXRpYyBjb25zdCBjaGFyICog
SVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBvc2l0b3JfMDIwIjsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heEtleUxlbmd0aCA9IDEyODsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZl
c0NvdW50ID0gMzI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJ
VlJPdmVybGF5XzAxNCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29t
cG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Nv
bnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UgPSAiYmFzZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCA9ICJ0aXAiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyA9ICJzdGF0
dXMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiA9ICJJVlJS
ZW5kZXJNb2RlbHNfMDA1IjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk5vdGlmaWNh
dGlvblRleHRNYXhTaXplID0gMjU2Oworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJOb3RpZmljYXRp
b25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18wMDIiOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGludCBrX3VuTWF4U2V0dGluZ3NLZXlMZW5ndGggPSAxMjg7CitzdGF0aWMgY29uc3QgY2hh
ciAqIElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3NfMDAyIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0ZWFtdnIiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmcg
PSAiZm9yY2VkRHJpdmVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3Jj
ZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1By
b2Nlc3NQaXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVEaXN0
b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRpc3Bs
YXlEZWJ1Z1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1C
dXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZlbCI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFj
a2dyb3VuZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVz
ZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zs
b2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tncm91bmREb21lUmFk
aXVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5n
ID0gImdyaWRDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUGxheUFy
ZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFjdGl2
YXRlTXVsdGlwbGVEcml2ZXJzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0ludDMy
ID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlc19GbG9hdCA9
ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0
aW9uUG93ZXJNYW5hZ2VtZW50IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9O
ZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAi
cmVuZGVyVGFyZ2V0TXVsdGlwbGllciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFt
VlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXByb2plY3Rpb24i
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jv
b2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJvamVjdGlv
biI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRUcmFj
a2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JW
aWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TaG93TWlycm9yVmlld19C
b29sID0gInNob3dNaXJyb3JWaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9
ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9TdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3Np
dG9yRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3Rh
cnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1
bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBz
RnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBwID0gImVuYWJsZUhv
bWVBcHAiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NldEluaXRpYWxEZWZh
dWx0SG9tZUFwcCA9ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJD
eWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJyZXRhaWxEZW1vIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNl
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wg
PSAiZGlzYWJsZWltdSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfVXNl
RGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRp
c2FtYmlndWF0aW9uZGVidWciOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNl
X1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFzZXN0YXRpb24iOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sID0gImRiaGlzdG9y
eSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVs
bCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9
ICJzZXJpYWxOdW1iZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX01vZGVsTnVt
YmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051
bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
TnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJX
aWR0aCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMy
ID0gInJlbmRlckhlaWdodCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2Vjb25k
c0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0g
ImRpc3BsYXlGcmVxdWVuY3kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJm
YWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNPblRv
cCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVUb1Ry
YXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Vz
ZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVl
bnNob3RUeXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTm90aWZpY2F0aW9uc19TZWN0
aW9uID0gIm5vdGlmaWNhdGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ob3RpZmlj
YXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29t
cGxldGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAi
U2NhbGVYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0gIlNj
YWxlWSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRYID0g
Ik9mZnNldExlZnRYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfT2Zmc2V0
UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJv
YXJkX09mZnNldFkgPSAiT2Zmc2V0WSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJv
YXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Q
ZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVy
Zl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5
T25jZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9C
b29sID0gImFsbG93VGltaW5nU3RvcmUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJm
X1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxp
c2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19T
dHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lv
bkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29s
bGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzQ2VudGVy
TWFya2VyT24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxh
eVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29s
bGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29s
bGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2Ft
bWFSIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2Ft
bWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMyID0gIkNvbGxpc2lv
bkJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9u
Qm91bmRzX0NvbG9yR2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVuYWJs
ZUNhbWVyYSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJ
bkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kc19Cb29s
ID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVy
YUZvclJvb21WaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0Nv
bG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJv
dW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVy
YUJvdW5kc0NvbG9yR2FtbWFBIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0Jv
dW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tEZXZp
Y2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PblJlY29yZERldmljZV9TdHJp
bmcgPSAib25SZWNvcmREZXZpY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19P
blBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5n
ID0gIm9mZlBsYXliYWNrRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9f
T2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2ZUhETUlHYWluIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVuc1RpbWVv
dXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfUmV0dXJu
VG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJl
c3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hi
b2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jv
b2wgPSAiYXJjYWRlTW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX21vZGVsc2tpbl9T
ZWN0aW9uID0gIm1vZGVsc2tpbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ecml2ZXJf
RW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSU2NyZWVuc2hv
dHNfVmVyc2lvbiA9ICJJVlJTY3JlZW5zaG90c18wMDEiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJ
VlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAxIjsKKworLy8gT3BlblZSIEVu
dW1zCisKK3R5cGVkZWYgZW51bSBFVlJFeWUKK3sKKyAgICAgICBFVlJFeWVfRXllX0xlZnQgPSAw
LAorICAgICAgIEVWUkV5ZV9FeWVfUmlnaHQgPSAxLAorfSBFVlJFeWU7CisKK3R5cGVkZWYgZW51
bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfRGlyZWN0
WCA9IDAsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX09wZW5HTCA9IDEsCisgICAg
ICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX1Z1bGthbiA9IDIsCisgICAgICAgRVRleHR1cmVU
eXBlX1RleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1
cmVUeXBlX0RpcmVjdFgxMiA9IDQsCit9IEVUZXh0dXJlVHlwZTsKKwordHlwZWRlZiBlbnVtIEVD
b2xvclNwYWNlCit7CisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9BdXRvID0gMCwKKyAg
ICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0dhbW1hID0gMSwKKyAgICAgICBFQ29sb3JTcGFj
ZV9Db2xvclNwYWNlX0xpbmVhciA9IDIsCit9IEVDb2xvclNwYWNlOworCit0eXBlZGVmIGVudW0g
RVRyYWNraW5nUmVzdWx0Cit7CisgICAgICAgRVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0
X1VuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3Vs
dF9DYWxpYnJhdGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9U
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlID0gMTAxLAorICAgICAgIEVUcmFj
a2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LID0gMjAwLAorICAgICAgIEVUcmFj
a2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgPSAyMDEsCit9IEVU
cmFja2luZ1Jlc3VsdDsKKwordHlwZWRlZiBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAg
ICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwK
KyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAxLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIg
PSAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0dlbmVy
aWNUcmFja2VyID0gMywKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VD
bGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9IEVUcmFja2VkRGV2aWNlQ2xhc3M7CisKK3R5
cGVkZWYgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgRVRyYWNrZWRDb250
cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxpZCA9IDAsCisgICAgICAgRVRy
YWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQgPSAxLAor
ICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0
SGFuZCA9IDIsCit9IEVUcmFja2VkQ29udHJvbGxlclJvbGU7CisKK3R5cGVkZWYgZW51bSBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luX1Ry
YWNraW5nVW5pdmVyc2VTZWF0ZWQgPSAwLAorICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
X1RyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAgICAgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW5fVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCit9IEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luOworCit0eXBlZGVmIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eQor
eworICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9JbnZhbGlkID0gMCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyA9
IDEwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX01vZGVsTnVtYmVyX1N0
cmluZyA9IDEwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NlcmlhbE51
bWJlcl9TdHJpbmcgPSAxMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9S
ZW5kZXJNb2RlbE5hbWVfU3RyaW5nID0gMTAwMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5n
ID0gMTAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFyZHdhcmVSZXZp
c2lvbl9TdHJpbmcgPSAxMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9B
bGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAxMDA4LAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9TdHJpbmcgPSAx
MDA5LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VJc1dpcmVsZXNz
X0Jvb2wgPSAxMDEwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VJ
c0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCA9IDEwMTIsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQgPSAxMDEz
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFp
bGFibGVfQm9vbCA9IDEwMTQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zp
cm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sID0gMTAxNSwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyA9IDEwMTYsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0g
MTAxNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCA9IDEwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZQR0FW
ZXJzaW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCA9IDEwMjEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0RvbmdsZVZlcnNpb25fVWludDY0ID0gMTAyMiwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sID0gMTAyMywKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVt
V2l0aEhtZF9Cb29sID0gMTAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
Q29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCA9IDEwMjUsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0gMTAyNiwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlQ2FuUG93ZXJPZmZfQm9v
bCA9IDEwMjcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX1By
b2dyYW1taW5nVGFyZ2V0X1N0cmluZyA9IDEwMjgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfSGFzQ2FtZXJhX0Jvb2wgPSAxMDMwLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyA9IDEwMzEsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9v
bCA9IDEwMzIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZpdmVTeXN0ZW1C
dXR0b25GaXhSZXF1aXJlZF9Cb29sID0gMTAzMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sID0gMjAwMCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19G
bG9hdCA9IDIwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlG
cmVxdWVuY3lfRmxvYXQgPSAyMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0ID0gMjAwNCwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfUHJldmlvdXNVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDUsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25f
VWludDY0ID0gMjAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSXNPbkRl
c2t0b3BfQm9vbCA9IDIwMDcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlNQ1R5cGVfSW50MzIgPSAyMDA4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCA9IDIwMTAsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiA9IDIwMTEsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAy
MDEyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZVJp
Z2h0X1N0cmluZyA9IDIwMTMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAxNSwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ID0gMjAxNiwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDVHlwZV9JbnQzMiA9
IDIwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ09mZnNl
dF9GbG9hdCA9IDIwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3Bs
YXlHQ1NjYWxlX0Zsb2F0ID0gMjAxOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgPSAyMDIwLAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgPSAyMDIyLAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgPSAy
MDIzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyUmlnaHRV
X0Zsb2F0ID0gMjAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0Nl
bnRlclJpZ2h0Vl9GbG9hdCA9IDIwMjUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9IDIwMjYsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFGaXJtd2FyZURlc2Ny
aXB0aW9uX1N0cmluZyA9IDIwMjgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlGUEdBVmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ID0gMjAzMCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lvbl9V
aW50NjQgPSAyMDMxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BdWRpb0Zp
cm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDMyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZpZXdE
ZWdyZWVzX0Zsb2F0ID0gMjAzNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
U2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNSwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIw
MzYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlBbGxvd05pZ2h0
TW9kZV9Cb29sID0gMjAzNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlz
cGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIwMzgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQzMiA9
IDIwNDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdl
RGF0YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9V
c2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0MiwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgPSAzMDAwLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCA9IDMwMDEsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMwVHlwZV9JbnQzMiA9IDMwMDIs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMxVHlwZV9JbnQzMiA9IDMw
MDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMyVHlwZV9JbnQzMiA9
IDMwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMzVHlwZV9JbnQz
MiA9IDMwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXM0VHlwZV9J
bnQzMiA9IDMwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NvbnRyb2xs
ZXJSb2xlSGludF9JbnQzMiA9IDMwMDcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCA9IDQwMDEs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3VG9wRGVncmVl
c19GbG9hdCA9IDQwMDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxk
T2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCA9IDQwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX1RyYWNraW5nUmFuZ2VNaW5pbXVtTWV0ZXJzX0Zsb2F0ID0gNDAwNCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRl
cnNfRmxvYXQgPSA0MDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Nb2Rl
TGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
SWNvblBhdGhOYW1lX1N0cmluZyA9IDUwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nID0gNTAwMSwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJp
bmcgPSA1MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nID0gNTAwMywKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyA9IDUwMDQs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VS
ZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgPSA1MDA2LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU3RhbmRieV9TdHJp
bmcgPSA1MDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ID0gNTEwMCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X0Vu
ZCA9IDUxNTAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1VzZXJDb25maWdQ
YXRoX1N0cmluZyA9IDYwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0lu
c3RhbGxQYXRoX1N0cmluZyA9IDYwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDEwOTk5
LAorfSBFVHJhY2tlZERldmljZVByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yCit7CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1N1
Y2Nlc3MgPSAwLAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9Xcm9u
Z0RhdGFUeXBlID0gMSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3Bf
V3JvbmdEZXZpY2VDbGFzcyA9IDIsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNr
ZWRQcm9wX0J1ZmZlclRvb1NtYWxsID0gMywKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Jf
VHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ID0gNCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5
RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZERldmljZSA9IDUsCisgICAgICAgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciA9IDYsCisgICAgICAg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1ZhbHVlTm90UHJvdmlkZWRCeURldmlj
ZSA9IDcsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1N0cmluZ0V4
Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJh
Y2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJy
b3JfVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCA9IDEwLAorICAgICAgIEVUcmFja2VkUHJv
cGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uID0gMTEsCit9IEVUcmFja2Vk
UHJvcGVydHlFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlN1Ym1pdEZsYWdzCit7CisgICAgICAg
RVZSU3VibWl0RmxhZ3NfU3VibWl0X0RlZmF1bHQgPSAwLAorICAgICAgIEVWUlN1Ym1pdEZsYWdz
X1N1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkID0gMSwKKyAgICAgICBFVlJTdWJt
aXRGbGFnc19TdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAyLAorICAgICAgIEVWUlN1Ym1pdEZsYWdz
X1N1Ym1pdF9SZXNlcnZlZCA9IDQsCit9IEVWUlN1Ym1pdEZsYWdzOworCit0eXBlZGVmIGVudW0g
RVZSU3RhdGUKK3sKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1VuZGVmaW5lZCA9IC0xLAorICAg
ICAgIEVWUlN0YXRlX1ZSU3RhdGVfT2ZmID0gMCwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1Nl
YXJjaGluZyA9IDEsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQgPSAy
LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfUmVhZHkgPSAzLAorICAgICAgIEVWUlN0YXRlX1ZS
U3RhdGVfUmVhZHlfQWxlcnQgPSA0LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfTm90UmVhZHkg
PSA1LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfU3RhbmRieSA9IDYsCisgICAgICAgRVZSU3Rh
dGVfVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3LAorfSBFVlJTdGF0ZTsKKwordHlwZWRlZiBl
bnVtIEVWUkV2ZW50VHlwZQoreworICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vbmUgPSAw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQgPSAx
MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVk
ID0gMTAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRhdGVk
ID0gMTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNr
ZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCA9IDEwNCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9JcGRDaGFuZ2VkID0gMTA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Vu
dGVyU3RhbmRieU1vZGUgPSAxMDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTGVhdmVT
dGFuZGJ5TW9kZSA9IDEwNywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2
aWNlUm9sZUNoYW5nZWQgPSAxMDgsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfV2F0Y2hk
b2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTGVu
c0Rpc3RvcnRpb25DaGFuZ2VkID0gMTEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1By
b3BlcnR5Q2hhbmdlZCA9IDExMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25Q
cmVzcyA9IDIwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25VbnByZXNzID0g
MjAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblRvdWNoID0gMjAyLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfTW91c2VNb3ZlID0gMzAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X01vdXNlQnV0dG9uRG93biA9IDMwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ZvY3Vz
RW50ZXIgPSAzMDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRm9jdXNMZWF2ZSA9IDMw
NCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JvbGwgPSAzMDUsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfVG91Y2hQYWRNb3ZlID0gMzA2LAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgPSAzMDcsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkID0gNDAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCA9IDQwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9TY2VuZUZvY3VzTG9zdCA9IDQwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9T
Y2VuZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjZW5l
QXBwbGljYXRpb25DaGFuZ2VkID0gNDA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nj
ZW5lRm9jdXNDaGFuZ2VkID0gNDA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0lucHV0
Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjZW5lQXBw
bGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgPSA0MTAsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9IDQxMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9PdmVybGF5U2hvd24gPSA1MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfT3Zl
cmxheUhpZGRlbiA9IDUwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRB
Y3RpdmF0ZWQgPSA1MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkRGVh
Y3RpdmF0ZWQgPSA1MDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkVGh1
bWJTZWxlY3RlZCA9IDUwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRS
ZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVzZXREYXNoYm9h
cmQgPSA1MDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVuZGVyVG9hc3QgPSA1MDcs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2hvd0tleWJvYXJkID0gNTA5LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0hpZGVLZXlib2FyZCA9IDUxMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ID0gNTEyLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1MTQsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCA9IDUxNSwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VHJpZ2dlcmVkID0gNTE2LAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdlRmFpbGVkID0gNTE3LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkID0gNTE4LAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90ID0gNTIwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkID0gNTIyLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCA9IDUyMywKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCA9IDUy
NSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gPSA2MDAs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiA9IDYwMSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlv
biA9IDYwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fRGVzdHJv
eWVkID0gNjAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXQgPSA3MDAsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJvY2Vzc1F1aXQgPSA3MDEsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21wdCA9IDcwMiwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfQ2hhcGVyb25lRGF0YUhhc0NoYW5nZWQgPSA4MDAsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2VkID0gODAxLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCA9IDgwMiwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVTZXR0aW5nc0hhdmVDaGFuZ2Vk
ID0gODAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQg
PSA4MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODIwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0JhY2tncm91bmRTZXR0aW5n
SGFzQ2hhbmdlZCA9IDg1MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DYW1lcmFTZXR0
aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1JlcHJv
amVjdGlvblNldHRpbmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTMsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU0LAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NSwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TdGF0dXNVcGRhdGUgPSA5MDAsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCA9IDExMDAsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCA9IDExMDEsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ID0gMTIwMSwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9LZXlib2FyZERvbmUgPSAxMjAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgPSAxMzAxLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQg
PSAxMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0
ZWQgPSAxMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uTWltZVR5
cGVMb2FkID0gMTMwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRy
YW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gPSAxNDAxLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzU2hv
d24gPSAxNDEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVy
b25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFj
a2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtID0gMTUwMSwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJl
YW0gPSAxNTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfRWRp
dGluZ1N1cmZhY2UgPSAxNTUwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1BlcmZvcm1h
bmNlVGVzdF9FbmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgPSAxNjAxLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9GaWRlbGl0eUxldmVsID0gMTYwMiwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAxNjUwLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0g
MTAwMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2
ZWRfRW5kID0gMTk5OTksCit9IEVWUkV2ZW50VHlwZTsKKwordHlwZWRlZiBlbnVtIEVEZXZpY2VB
Y3Rpdml0eUxldmVsCit7CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19F
RGV2aWNlQWN0aXZpdHlMZXZlbF9JZGxlID0gMCwKKyAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZl
bF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsCisgICAgICAgRURl
dmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25f
VGltZW91dCA9IDIsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZp
dHlMZXZlbF9TdGFuZGJ5ID0gMywKK30gRURldmljZUFjdGl2aXR5TGV2ZWw7CisKK3R5cGVkZWYg
ZW51bSBFVlJCdXR0b25JZAoreworICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TeXN0ZW0g
PSAwLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgPSAxLAor
ICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9HcmlwID0gMiwKKyAgICAgICBFVlJCdXR0b25J
ZF9rX0VCdXR0b25fRFBhZF9MZWZ0ID0gMywKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
RFBhZF9VcCA9IDQsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfUmlnaHQgPSA1
LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0Rvd24gPSA2LAorICAgICAgIEVW
UkJ1dHRvbklkX2tfRUJ1dHRvbl9BID0gNywKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
UHJveGltaXR5U2Vuc29yID0gMzEsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMw
ID0gMzIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMxID0gMzMsCisgICAgICAg
RVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMyID0gMzQsCisgICAgICAgRVZSQnV0dG9uSWRfa19F
QnV0dG9uX0F4aXMzID0gMzUsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXM0ID0g
MzYsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgPSAzMiwK
KyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9UcmlnZ2VyID0gMzMsCisgICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0Rhc2hib2FyZF9CYWNrID0gMiwKKyAgICAgICBFVlJC
dXR0b25JZF9rX0VCdXR0b25fTWF4ID0gNjQsCit9IEVWUkJ1dHRvbklkOworCit0eXBlZGVmIGVu
dW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0dG9u
X0xlZnQgPSAxLAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25fUmlnaHQgPSAy
LAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25fTWlkZGxlID0gNCwKK30gRVZS
TW91c2VCdXR0b247CisKK3R5cGVkZWYgZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7CisgICAg
ICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisg
ICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9JbnZlcnNlID0gMSwK
KyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0g
MiwKKyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMs
Cit9IEVIaWRkZW5BcmVhTWVzaFR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJDb250cm9sbGVyQXhp
c1R5cGUKK3sKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxlckF4aXNf
Tm9uZSA9IDAsCisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRyb2xsZXJBeGlz
X1RyYWNrUGFkID0gMSwKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxl
ckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250
cm9sbGVyQXhpc19UcmlnZ2VyID0gMywKK30gRVZSQ29udHJvbGxlckF4aXNUeXBlOworCit0eXBl
ZGVmIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQoreworICAgICAgIEVWUkNvbnRy
b2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0gMCwK
KyAgICAgICBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0NvbnRyb2xsZXJFdmVudE91dHB1
dF9WUkV2ZW50cyA9IDEsCit9IEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGU7CisKK3R5cGVk
ZWYgZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAgICBFQ29sbGlzaW9uQm91bmRz
U3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgRUNvbGxp
c2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwK
KyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVB
UkVTID0gMiwKKyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19T
VFlMRV9BRFZBTkNFRCA9IDMsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lP
Tl9CT1VORFNfU1RZTEVfTk9ORSA9IDQsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NP
TExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQgPSA1LAorfSBFQ29sbGlzaW9uQm91bmRzU3R5bGU7
CisKK3R5cGVkZWYgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3Zl
cmxheUVycm9yX1Vua25vd25PdmVybGF5ID0gMTAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZS
T3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUgPSAxMSwKKyAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfUGVybWlzc2lvbkRlbmllZCA9IDEyLAorICAgICAgIEVWUk92ZXJsYXlF
cnJvcl9WUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCA9IDEzLAorICAgICAgIEVW
Uk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCisg
ICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleVRvb0xvbmcgPSAxNSwKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTmFtZVRvb0xvbmcgPSAxNiwKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgPSAxNywKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlID0gMTgs
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2
aWNlID0gMTksCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRQ
YXJhbWV0ZXIgPSAyMCwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVGh1
bWJuYWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3Zl
cmxheUVycm9yX0FycmF5VG9vU21hbGwgPSAyMiwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJP
dmVybGF5RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9W
Uk92ZXJsYXlFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDI0LAorICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlID0gMjUsCisgICAgICAgRVZST3Zlcmxh
eUVycm9yX1ZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlID0gMjYsCisgICAgICAg
RVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgPSAyNywKKyAgICAgICBF
VlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVzID0gMjks
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUg
PSAzMCwKK30gRVZST3ZlcmxheUVycm9yOworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25U
eXBlCit7CisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fT3RoZXIgPSAw
LAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1NjZW5lID0gMSwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9PdmVybGF5ID0gMiwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwKKyAgICAgICBF
VlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LAorICAgICAgIEVW
UkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAorICAgICAg
IEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX01heCA9IDcsCit9IEVWUkFwcGxpY2F0
aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAgICAgICBFVlJG
aXJtd2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJGaXJtd2Fy
ZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0gMSwKKyAgICAgICBFVlJGaXJtd2FyZUVy
cm9yX1ZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK30gRVZSRmlybXdhcmVFcnJvcjsKKwordHlw
ZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgRVZSTm90aWZpY2F0aW9u
RXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9u
RXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisg
ICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRp
b25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmlj
YXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5
RXhpc3RzID0gMTAzLAorfSBFVlJOb3RpZmljYXRpb25FcnJvcjsKKwordHlwZWRlZiBlbnVtIEVW
UkluaXRFcnJvcgoreworICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ob25lID0gMCwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAxMDAsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCA9
IDEwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5v
dEZvdW5kID0gMTAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0ZpbGVO
b3RGb3VuZCA9IDEwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9GYWN0
b3J5Tm90Rm91bmQgPSAxMDQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
SW50ZXJmYWNlTm90Rm91bmQgPSAxMDUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0luaXRfSW52YWxpZEludGVyZmFjZSA9IDEwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCA9IDEwOCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCA9IDEwOSwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCA9IDExMCwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggPSAxMTEs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoID0gMTEyLAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRh
YmxlID0gMTEzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0FwcEluZm9J
bml0RmFpbGVkID0gMTE0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5ID0gMTE1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luaXRDYW5j
ZWxlZEJ5VXNlciA9IDExNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9B
bm90aGVyQXBwTGF1bmNoaW5nID0gMTE3LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCA9IDExOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwID0gMTIxLAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9y
ID0gMTIyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJs
ZVRvVXRpbGl0eUFwcHMgPSAxMjMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfSW50ZXJuYWwgPSAxMjQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
SG1kRHJpdmVySWRJc05vbmUgPSAxMjUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCA9IDEyNiwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCA9IDEyNywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkID0gMTI4LAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RT
dXBwb3J0ZWQgPSAxMjksCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW52
YWxpZEFwcGxpY2F0aW9uVHlwZSA9IDEzMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKKyAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEzMiwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5k
ID0gMTMzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJk
U3RhcnR1cEZhaWxlZCA9IDEzNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0ZhaWxlZCA9IDIwMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVy
X1Vua25vd24gPSAyMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9I
bWRVbmtub3duID0gMjAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJf
Tm90TG9hZGVkID0gMjAzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJf
UnVudGltZU91dE9mRGF0ZSA9IDIwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
RHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9E
cml2ZXJfTm90Q2FsaWJyYXRlZCA9IDIwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCA9IDIwNywKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3du
ID0gMjA5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVy
SWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgPSAzMDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkID0gMzAxLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQgPSAzMDMsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgPSAzMDQsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19GYWlsZWQgPSAzMDUsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCA9IDMw
NiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlk
Q29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
UENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgPSA0MDAsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkID0g
NDAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJl
UmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkID0gNDA0LAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RU
b09jdWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSA9IDExMDEsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0ID0gMTEwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29C
aWcgPSAxMTA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Db25maWdUb29TbWFsbCA9IDExMDUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgPSAxMTA2
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3Rh
cnQgPSAxMTA4LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVz
ZXJEYXRhTmV4dCA9IDExMTAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRv
clNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlID0gMTExMSwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFF
cnJvciA9IDExMTIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrID0gMTExMywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIw
MDAsCit9IEVWUkluaXRFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RUeXBlCit7
CisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwKKyAg
ICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLAorICAgICAg
IEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBF
VlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIEVW
UlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1hID0gNCwKKyAgICAg
ICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNSwK
K30gRVZSU2NyZWVuc2hvdFR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJTY3JlZW5zaG90UHJvcGVy
dHlGaWxlbmFtZXMKK3sKKyAgICAgICBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAsCisgICAgICAgRVZSU2NyZWVu
c2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSID0g
MSwKK30gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzOworCit0eXBlZGVmIGVudW0gRVZS
VHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJh
Y2tlZENhbWVyYUVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9W
UlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgPSAxMDAsCisgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgPSAxMDEs
CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFs
aWRGcmFtZUhlYWRlclZlcnNpb24gPSAxMDIsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9y
X1ZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyA9IDEwMywKKyAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSVBDRmFpbHVyZSA9IDEwNCwKKyAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9y
dGVkRm9yVGhpc0RldmljZSA9IDEwNSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJU
cmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSA9IDEwNiwKKyAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWls
dXJlID0gMTA3LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFF
cnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgPSAxMDgsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCA9IDEwOSwKKyAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNoYXJl
ZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJh
Y2tlZENhbWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgPSAxMTEsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWls
dXJlID0gMTEyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFF
cnJvcl9Ob0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgPSAxMTQsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZl
clNpemUgPSAxMTUsCit9IEVWUlRyYWNrZWRDYW1lcmFFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlX1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQgPSAwLAorICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVk
ID0gMSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQgPSAyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9IEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSA9IDAsCisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0
cyA9IDEwMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9O
b01hbmlmZXN0ID0gMTAxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlv
bkVycm9yX05vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9W
UkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAorICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JUENGYWlsZWQgPSAx
MDUsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGlj
YXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZS
QXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZlc3QgPSAxMDcsCisgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAor
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxl
ZCA9IDEwOSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9B
cHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDExMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNzID0gMTExLAorICAgICAgIEVW
UkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRp
bmcgPSAxMTIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
VHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFw
cGxpY2F0aW9uRXJyb3JfSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJUb29TbWFsbCA9IDIwMCwKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIwMSwK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3duUHJv
cGVydHkgPSAyMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJy
b3JfSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30gRVZSQXBwbGljYXRpb25FcnJvcjsKKwordHlw
ZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKK3sKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmluZyA9IDAsCisgICAgICAg
RVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9T
dHJpbmcgPSAxMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAorICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFyeVBhdGhfU3RyaW5nID0gMTMs
CisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJn
dW1lbnRzX1N0cmluZyA9IDE0LAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBs
aWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblBy
b3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlvbl9TdHJpbmcgPSA1MCwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJM
X1N0cmluZyA9IDUxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlv
blByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmcgPSA1MiwKKyAgICAgICBFVlJBcHBsaWNhdGlvblBy
b3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Tb3VyY2VfU3RyaW5nID0gNTMsCisgICAgICAg
RVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRP
dmVybGF5X0Jvb2wgPSA2MCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGlj
YXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0luc3RhbmNlZF9Cb29sID0gNjIsCisg
ICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnRl
cm5hbF9Cb29sID0gNjMsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0
aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9IEVWUkFwcGxpY2F0aW9u
UHJvcGVydHk7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZQor
eworICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25UcmFu
c2l0aW9uX05vbmUgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZS
QXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0Zv
ckV4dGVybmFsTGF1bmNoID0gMTEsCisgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwKK30gRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGU7CisKK3R5cGVkZWYgZW51bSBDaGFwZXJvbmVDYWxpYnJh
dGlvblN0YXRlCit7CisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9PSyA9IDEsCisg
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nID0gMTAwLAorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvbk1heUhhdmVNb3ZlZCA9
IDEwMSwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRp
b25SZW1vdmVkID0gMTAyLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2Fybmlu
Z19TZWF0ZWRCb3VuZHNJbnZhbGlkID0gMTAzLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9u
U3RhdGVfRXJyb3IgPSAyMDAsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJv
cl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0gMjAyLAorICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLAorICAgICAg
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9
IDIwNCwKK30gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZTsKKwordHlwZWRlZiBlbnVtIEVDaGFw
ZXJvbmVDb25maWdGaWxlCit7CisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfTGl2ZSA9IDEs
CisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfVGVtcCA9IDIsCit9IEVDaGFwZXJvbmVDb25m
aWdGaWxlOworCit0eXBlZGVmIGVudW0gRUNoYXBlcm9uZUltcG9ydEZsYWdzCit7CisgICAgICAg
RUNoYXBlcm9uZUltcG9ydEZsYWdzX0VDaGFwZXJvbmVJbXBvcnRfQm91bmRzT25seSA9IDEsCit9
IEVDaGFwZXJvbmVJbXBvcnRGbGFnczsKKwordHlwZWRlZiBlbnVtIEVWUkNvbXBvc2l0b3JFcnJv
cgoreworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Ob25lID0g
MCwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVzdEZh
aWxlZCA9IDEsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0lu
Y29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29t
cG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzID0gMTAxLAorICAgICAgIEVWUkNvbXBvc2l0b3JF
cnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDEwMiwKKyAgICAgICBFVlJD
b21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uID0g
MTAzLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJl
SXNPbldyb25nRGV2aWNlID0gMTA0LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBv
c2l0b3JFcnJvcl9UZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAgIEVW
UkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBv
cnRlZCA9IDEwNiwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlID0gMTA3LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBv
c2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVkID0gMTA4LAorfSBFVlJDb21wb3NpdG9yRXJyb3I7
CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlJbnB1dE1ldGhvZAoreworICAgICAgIFZST3Zlcmxh
eUlucHV0TWV0aG9kX05vbmUgPSAwLAorICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNl
ID0gMSwKK30gVlJPdmVybGF5SW5wdXRNZXRob2Q7CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlU
cmFuc2Zvcm1UeXBlCit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlU
cmFuc2Zvcm1fQWJzb2x1dGUgPSAwLAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJP
dmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSA9IDEsCisgICAgICAgVlJPdmVy
bGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCisg
ICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZENv
bXBvbmVudCA9IDMsCit9IFZST3ZlcmxheVRyYW5zZm9ybVR5cGU7CisKK3R5cGVkZWYgZW51bSBW
Uk92ZXJsYXlGbGFncworeworICAgICAgIFZST3ZlcmxheUZsYWdzX05vbmUgPSAwLAorICAgICAg
IFZST3ZlcmxheUZsYWdzX0N1cnZlZCA9IDEsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfUkdTUzRY
ID0gMiwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiA9IDMsCisgICAgICAg
VlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAorICAgICAgIFZST3Zlcmxh
eUZsYWdzX1Nob3dHYW1lcGFkRm9jdXMgPSA1LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRW
UlNjcm9sbEV2ZW50cyA9IDYsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRF
dmVudHMgPSA3LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVs
ID0gOCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRvSW50ZXJuYWxQ
cm9jZXNzID0gOSwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsID0g
MTAsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkID0gMTEsCisgICAg
ICAgVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19T
dGVyZW9QYW5vcmFtYSA9IDEzLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NvcnRXaXRoTm9uU2Nl
bmVPdmVybGF5cyA9IDE0LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2Fy
ZCA9IDE1LAorfSBWUk92ZXJsYXlGbGFnczsKKwordHlwZWRlZiBlbnVtIFZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZQoreworICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18wID0gMCwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSA9
IDEsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIgPSAyLAor
ICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zID0gMywKKyAgICAg
ICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5ID0gNCwK
KyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVu
dE92ZXJsYXkgPSA1LAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9BcHBsaWNhdGlv
blF1aXQgPSA2LAorfSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7CisKK3R5cGVkZWYgZW51bSBF
R2FtZXBhZFRleHRJbnB1dE1vZGUKK3sKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dE1vZGVfa19F
R2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgIEVHYW1lcGFkVGV4dElucHV0
TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkID0gMSwKKyAgICAgICBFR2FtZXBh
ZFRleHRJbnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVTdWJtaXQgPSAyLAorfSBFR2Ft
ZXBhZFRleHRJbnB1dE1vZGU7CisKK3R5cGVkZWYgZW51bSBFR2FtZXBhZFRleHRJbnB1dExpbmVN
b2RlCit7CisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZV9rX0VHYW1lcGFkVGV4dElu
cHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dExpbmVN
b2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAorfSBFR2Ft
ZXBhZFRleHRJbnB1dExpbmVNb2RlOworCit0eXBlZGVmIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24K
K3sKKyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX1VwID0gMCwKKyAg
ICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAgICAg
IEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fTGVmdCA9IDIsCisgICAgICAgRU92
ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9SaWdodCA9IDMsCisgICAgICAgRU92ZXJs
YXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQsCit9IEVPdmVybGF5RGlyZWN0
aW9uOworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVU
eXBlCit7CisgICAgICAgRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlX092
ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSA9IDAsCisgICAgICAgRVZS
T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlX092ZXJsYXlJbnRlcnNlY3Rpb25Q
cmltaXRpdmVUeXBlX0NpcmNsZSA9IDEsCit9IEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKK3sKKyAgICAg
ICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob25lID0gMCwKKyAgICAg
ICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5nID0gMTAwLAor
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdFN1cHBvcnRl
ZCA9IDIwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9J
bnZhbGlkQXJnID0gMzAwLAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2Rl
bEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZS
UmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyA9IDMwMiwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVy
cm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAgICAgICBFVlJS
ZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMgPSAzMDQs
CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVU
ZXh0dXJlcyA9IDMwNSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxF
cnJvcl9CdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZS
UmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIEVWUlJlbmRl
ck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaFRleENvb3JkcyA9IDMwOCwK
KyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkVGV4
dHVyZSA9IDQwMCwKK30gRVZSUmVuZGVyTW9kZWxFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUkNv
bXBvbmVudFByb3BlcnR5Cit7CisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJDb21wb25l
bnRQcm9wZXJ0eV9Jc1N0YXRpYyA9IDEsCisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAyLAorICAgICAgIEVWUkNvbXBvbmVudFByb3Bl
cnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkID0gNCwKKyAgICAgICBFVlJDb21wb25l
bnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzUHJlc3NlZCA9IDgsCisgICAgICAgRVZS
Q29tcG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Njcm9sbGVkID0gMTYsCit9
IEVWUkNvbXBvbmVudFByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uVHlw
ZQoreworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50ID0gMCwKKyAgICAgICBF
VlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQgPSAxLAorICAgICAgIEVWUk5vdGlmaWNhdGlv
blR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUgPSAyLAorfSBFVlJOb3RpZmljYXRp
b25UeXBlOworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uU3R5bGUKK3sKKyAgICAgICBF
VlJOb3RpZmljYXRpb25TdHlsZV9Ob25lID0gMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHls
ZV9BcHBsaWNhdGlvbiA9IDEwMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0
X0Rpc2FibGVkID0gMjAwLAorICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5h
YmxlZCA9IDIwMSwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2ZSA9
IDIwMiwKK30gRVZSTm90aWZpY2F0aW9uU3R5bGU7CisKK3R5cGVkZWYgZW51bSBFVlJTZXR0aW5n
c0Vycm9yCit7CisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfTm9uZSA9
IDAsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkID0g
MSwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCA9
IDIsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfUmVhZEZhaWxlZCA9
IDMsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFp
bGVkID0gNCwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9VbnNldFNl
dHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfSBFVlJTZXR0aW5nc0Vycm9yOworCit0eXBlZGVmIGVu
dW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2Ny
ZWVuc2hvdEVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVl
bnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMSwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Jf
VlJTY3JlZW5zaG90RXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBFVlJT
Y3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQgPSAxMDEsCisgICAgICAg
RVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMTAy
LAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9TY3JlZW5zaG90
QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9IEVWUlNjcmVlbnNob3RFcnJvcjsKKworCisvLyBP
cGVuVlIgdHlwZWRlZnMKKwordHlwZWRlZiB1aW50MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhfdDsK
K3R5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKK3R5cGVkZWYgdWludDY0X3QgVlJP
dmVybGF5SGFuZGxlX3Q7CisKK3R5cGVkZWYgdm9pZCAqIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90
OwordHlwZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90Owor
dHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90
IFRyYWNrZWREZXZpY2VJbmRleF90OwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKK3R5cGVkZWYg
dWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQ2NF90IFRyYWNrZWRDYW1l
cmFIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hvdEhhbmRsZV90OwordHlwZWRl
ZiB1aW50MzJfdCBWUkNvbXBvbmVudFByb3BlcnRpZXM7Cit0eXBlZGVmIGludDMyX3QgVGV4dHVy
ZUlEX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7Cit0eXBlZGVmIEVWUklu
aXRFcnJvciBIbWRFcnJvcjsKK3R5cGVkZWYgRVZSRXllIEhtZF9FeWU7Cit0eXBlZGVmIEVDb2xv
clNwYWNlIENvbG9yU3BhY2U7Cit0eXBlZGVmIEVUcmFja2luZ1Jlc3VsdCBIbWRUcmFja2luZ1Jl
c3VsdDsKK3R5cGVkZWYgRVRyYWNrZWREZXZpY2VDbGFzcyBUcmFja2VkRGV2aWNlQ2xhc3M7Cit0
eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5nVW5pdmVyc2VPcmlnaW47Cit0
eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERldmljZVByb3BlcnR5OwordHlw
ZWRlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgVHJhY2tlZFByb3BlcnR5RXJyb3I7Cit0eXBlZGVm
IEVWUlN1Ym1pdEZsYWdzIFZSU3VibWl0RmxhZ3NfdDsKK3R5cGVkZWYgRVZSU3RhdGUgVlJTdGF0
ZV90OwordHlwZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29sbGlzaW9uQm91bmRzU3R5bGVf
dDsKK3R5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9yOwordHlwZWRlZiBFVlJG
aXJtd2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKK3R5cGVkZWYgRVZSQ29tcG9zaXRvckVycm9y
IFZSQ29tcG9zaXRvckVycm9yOwordHlwZWRlZiBFVlJTY3JlZW5zaG90RXJyb3IgVlJTY3JlZW5z
aG90c0Vycm9yOworCisvLyBPcGVuVlIgU3RydWN0cworCit0eXBlZGVmIHN0cnVjdCBIbWRNYXRy
aXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsgLy9mbG9hdFszXVs0XQorfSBIbWRNYXRy
aXgzNF90OworCit0eXBlZGVmIHN0cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQg
bVs0XVs0XTsgLy9mbG9hdFs0XVs0XQorfSBIbWRNYXRyaXg0NF90OworCit0eXBlZGVmIHN0cnVj
dCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOyAvL2Zsb2F0WzNdCit9IEhtZFZl
Y3RvcjNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgZmxvYXQg
dls0XTsgLy9mbG9hdFs0XQorfSBIbWRWZWN0b3I0X3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZl
Y3RvcjNkX3QKK3sKKyAgICAgICBkb3VibGUgdlszXTsgLy9kb3VibGVbM10KK30gSG1kVmVjdG9y
M2RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgZmxvYXQgdlsy
XTsgLy9mbG9hdFsyXQorfSBIbWRWZWN0b3IyX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFF1YXRl
cm5pb25fdAoreworICAgICAgIGRvdWJsZSB3OworICAgICAgIGRvdWJsZSB4OworICAgICAgIGRv
dWJsZSB5OworICAgICAgIGRvdWJsZSB6OworfSBIbWRRdWF0ZXJuaW9uX3Q7CisKK3R5cGVkZWYg
c3RydWN0IEhtZENvbG9yX3QKK3sKKyAgICAgICBmbG9hdCByOworICAgICAgIGZsb2F0IGc7Cisg
ICAgICAgZmxvYXQgYjsKKyAgICAgICBmbG9hdCBhOworfSBIbWRDb2xvcl90OworCit0eXBlZGVm
IHN0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZDb3JuZXJz
WzRdOyAvL3N0cnVjdCB2cjo6SG1kVmVjdG9yM190WzRdCit9IEhtZFF1YWRfdDsKKwordHlwZWRl
ZiBzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdlRvcExl
ZnQ7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9IEhtZFJlY3Qy
X3Q7CisKK3R5cGVkZWYgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190Cit7CisgICAgICAg
ZmxvYXQgcmZSZWRbMl07IC8vZmxvYXRbMl0KKyAgICAgICBmbG9hdCByZkdyZWVuWzJdOyAvL2Zs
b2F0WzJdCisgICAgICAgZmxvYXQgcmZCbHVlWzJdOyAvL2Zsb2F0WzJdCit9IERpc3RvcnRpb25D
b29yZGluYXRlc190OworCit0eXBlZGVmIHN0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lk
ICogaGFuZGxlOyAvLyB2b2lkICoKKyAgICAgICBlbnVtIEVUZXh0dXJlVHlwZSBlVHlwZTsKKyAg
ICAgICBlbnVtIEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOworfSBUZXh0dXJlX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIHN0cnVjdCBIbWRWZWN0b3Iz
X3QgdlZlbG9jaXR5OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0
eTsKKyAgICAgICBlbnVtIEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7CisgICAgICAg
Ym9vbCBiUG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Cit9IFRy
YWNrZWREZXZpY2VQb3NlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7
CisgICAgICAgZmxvYXQgdU1pbjsKKyAgICAgICBmbG9hdCB2TWluOworICAgICAgIGZsb2F0IHVN
YXg7CisgICAgICAgZmxvYXQgdk1heDsKK30gVlJUZXh0dXJlQm91bmRzX3Q7CisKK3R5cGVkZWYg
c3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbkltYWdl
OworICAgICAgIHN0cnVjdCBWa0RldmljZV9UICogbV9wRGV2aWNlOyAvLyBzdHJ1Y3QgVmtEZXZp
Y2VfVCAqCisgICAgICAgc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIG1fcFBoeXNpY2FsRGV2
aWNlOyAvLyBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICoKKyAgICAgICBzdHJ1Y3QgVmtJbnN0
YW5jZV9UICogbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0luc3RhbmNlX1QgKgorICAgICAgIHN0
cnVjdCBWa1F1ZXVlX1QgKiBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCisgICAgICAg
dWludDMyX3QgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aDsK
KyAgICAgICB1aW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbV9uRm9ybWF0Owor
ICAgICAgIHVpbnQzMl90IG1fblNhbXBsZUNvdW50OworfSBWUlZ1bGthblRleHR1cmVEYXRhX3Q7
CisKK3R5cGVkZWYgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIHN0cnVjdCBJ
RDNEMTJSZXNvdXJjZSAqIG1fcFJlc291cmNlOyAvLyBzdHJ1Y3QgSUQzRDEyUmVzb3VyY2UgKgor
ICAgICAgIHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKiBtX3BDb21tYW5kUXVldWU7IC8vIHN0
cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHVpbnQzMl90IG1fbk5vZGVNYXNrOwor
fSBEM0QxMlRleHR1cmVEYXRhX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ29udHJvbGxl
cl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOworfSBWUkV2ZW50X0NvbnRyb2xsZXJfdDsK
KwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7CisgICAgICAgZmxvYXQgeDsKKyAg
ICAgICBmbG9hdCB5OworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsKK30gVlJFdmVudF9Nb3VzZV90
OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxvYXQgeGRl
bHRhOworICAgICAgIGZsb2F0IHlkZWx0YTsKKyAgICAgICB1aW50MzJfdCByZXBlYXRDb3VudDsK
K30gVlJFdmVudF9TY3JvbGxfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1v
dmVfdAoreworICAgICAgIGJvb2wgYkZpbmdlckRvd247CisgICAgICAgZmxvYXQgZmxTZWNvbmRz
RmluZ2VyRG93bjsKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZh
bHVlWUZpcnN0OworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgZmxvYXQgZlZhbHVl
WVJhdzsKK30gVlJFdmVudF9Ub3VjaFBhZE1vdmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVu
dF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOworICAgICAg
IHVpbnQzMl90IG5vdGlmaWNhdGlvbklkOworfSBWUkV2ZW50X05vdGlmaWNhdGlvbl90OworCit0
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsK
KyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAgYm9vbCBiRm9yY2VkOworfSBWUkV2ZW50
X1Byb2Nlc3NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworfSBWUkV2ZW50X092ZXJsYXlfdDsKKwordHlwZWRl
ZiBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRl
OworfSBWUkV2ZW50X1N0YXR1c190OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0tleWJvYXJk
X3QKK3sKKyAgICAgICBjaGFyICogY05ld0lucHV0WzhdOyAvL2NoYXJbOF0KKyAgICAgICB1aW50
NjRfdCB1VXNlclZhbHVlOworfSBWUkV2ZW50X0tleWJvYXJkX3Q7CisKK3R5cGVkZWYgc3RydWN0
IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9IFZSRXZlbnRfSXBk
X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50
NjRfdCBtX25QcmV2aW91c1VuaXZlcnNlOworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2
ZXJzZTsKK30gVlJFdmVudF9DaGFwZXJvbmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9S
ZXNlcnZlZF90Cit7CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2NF90
IHJlc2VydmVkMTsKK30gVlJFdmVudF9SZXNlcnZlZF90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMyX3QgbV9uRmlkZWxpdHlMZXZl
bDsKK30gVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVu
dF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVu
dTsKK30gVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZS
RXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3QgaGFuZGxlOworICAgICAgIHVp
bnQzMl90IHR5cGU7Cit9IFZSRXZlbnRfU2NyZWVuc2hvdF90OworCit0eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Cit7CisgICAgICAgZmxvYXQgcHJvZ3Jlc3M7Cit9
IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRf
QXBwbGljYXRpb25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50
MzJfdCB1bkFyZ3NIYW5kbGU7Cit9IFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90Cit7CisgICAgICAgdWlu
dDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBuVmlzdWFsTW9kZTsKK30gVlJF
dmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X01l
c3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICB1aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZTsKK30gVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1Byb3BlcnR5X3QKK3sKKyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRh
aW5lcjsKKyAgICAgICBlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK30gVlJFdmVu
dF9Qcm9wZXJ0eV90OworCit0eXBlZGVmIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90Cit7CisgICAg
ICAgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHBWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjJfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfSBIaWRk
ZW5BcmVhTWVzaF90OworCit0eXBlZGVmIHN0cnVjdCBWUkNvbnRyb2xsZXJBeGlzX3QKK3sKKyAg
ICAgICBmbG9hdCB4OworICAgICAgIGZsb2F0IHk7Cit9IFZSQ29udHJvbGxlckF4aXNfdDsKKwor
dHlwZWRlZiBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAoreworICAgICAgIHVpbnQzMl90IHVu
UGFja2V0TnVtOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAgICB1aW50
NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisgICAgICAgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdCBy
QXhpc1s1XTsgLy9zdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNfdFs1XQorfSBWUkNvbnRyb2xs
ZXJTdGF0ZV90OworCit0eXBlZGVmIHN0cnVjdCBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncwor
eworICAgICAgIHVpbnQzMl90IHNpemU7CisgICAgICAgYm9vbCBjdXJ2ZWQ7CisgICAgICAgYm9v
bCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGU7CisgICAgICAgZmxvYXQgZGlzdGFuY2U7
CisgICAgICAgZmxvYXQgYWxwaGE7CisgICAgICAgZmxvYXQgdU9mZnNldDsKKyAgICAgICBmbG9h
dCB2T2Zmc2V0OworICAgICAgIGZsb2F0IHVTY2FsZTsKKyAgICAgICBmbG9hdCB2U2NhbGU7Cisg
ICAgICAgZmxvYXQgZ3JpZERpdnM7CisgICAgICAgZmxvYXQgZ3JpZFdpZHRoOworICAgICAgIGZs
b2F0IGdyaWRTY2FsZTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9
IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzOworCit0eXBlZGVmIHN0cnVjdCBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7CisgICAgICAgdWludDMy
X3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsKKyAgICAgICB1aW50
MzJfdCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCBz
dGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfSBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3Q7CisKK3R5cGVkZWYgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190Cit7CisgICAgICAgY2hhciAq
IHBjaEtleTsgLy8gY29uc3QgY2hhciAqCisgICAgICAgY2hhciAqIHBjaFZhbHVlOyAvLyBjb25z
dCBjaGFyICoKK30gQXBwT3ZlcnJpZGVLZXlzX3Q7CisKK3R5cGVkZWYgc3RydWN0IENvbXBvc2l0
b3JfRnJhbWVUaW1pbmcKK3sKKyAgICAgICB1aW50MzJfdCBtX25TaXplOworICAgICAgIHVpbnQz
Ml90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50czsK
KyAgICAgICB1aW50MzJfdCBtX25OdW1NaXNQcmVzZW50ZWQ7CisgICAgICAgdWludDMyX3QgbV9u
TnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFnczsK
KyAgICAgICBkb3VibGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisgICAgICAgZmxvYXQgbV9m
bFByZVN1Ym1pdEdwdU1zOworICAgICAgIGZsb2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7CisgICAg
ICAgZmxvYXQgbV9mbFRvdGFsUmVuZGVyR3B1TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0
b3JSZW5kZXJHcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOwor
ICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOworICAgICAgIGZsb2F0IG1fZmxD
bGllbnRGcmFtZUludGVydmFsTXM7CisgICAgICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7
CisgICAgICAgZmxvYXQgbV9mbFdhaXRGb3JQcmVzZW50Q3B1TXM7CisgICAgICAgZmxvYXQgbV9m
bFN1Ym1pdEZyYW1lTXM7CisgICAgICAgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOwor
ICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbE5ld0Zy
YW1lUmVhZHlNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Cisg
ICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsKKyAgICAgICBmbG9hdCBtX2Zs
Q29tcG9zaXRvclJlbmRlclN0YXJ0TXM7CisgICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBtX0ht
ZFBvc2U7Cit9IENvbXBvc2l0b3JfRnJhbWVUaW1pbmc7CisKK3R5cGVkZWYgc3RydWN0IENvbXBv
c2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMyX3QgbV9uUGlkOworICAgICAg
IHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJv
cHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsKKyAg
ICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFydHVwOworICAgICAgIHVpbnQz
Ml90IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVt
UmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtTG9hZGlu
ZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGluZzsKKyAgICAgICB1
aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25O
dW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtVGltZWRP
dXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAgICAg
IHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBt
X25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0OworfSBDb21wb3NpdG9yX0N1bXVsYXRpdmVT
dGF0czsKKwordHlwZWRlZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QKK3sK
KyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZTb3VyY2U7CisgICAgICAgc3RydWN0IEhtZFZl
Y3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgIGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4g
ZU9yaWdpbjsKK30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Q7CisKK3R5cGVkZWYgc3Ry
dWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAoreworICAgICAgIHN0cnVjdCBIbWRW
ZWN0b3IzX3QgdlBvaW50OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAg
ICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZVVnM7CisgICAgICAgZmxvYXQgZkRpc3RhbmNlOwor
fSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Q7CisKK3R5cGVkZWYgc3RydWN0IEludGVy
c2VjdGlvbk1hc2tSZWN0YW5nbGVfdAoreworICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WDsKKyAg
ICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgZmxvYXQgbV9mbFdpZHRoOworICAgICAg
IGZsb2F0IG1fZmxIZWlnaHQ7Cit9IEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90Cit7CisgICAgICAgZmxvYXQgbV9m
bENlbnRlclg7CisgICAgICAgZmxvYXQgbV9mbENlbnRlclk7CisgICAgICAgZmxvYXQgbV9mbFJh
ZGl1czsKK30gSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90OworCit0eXBlZGVmIHN0cnVjdCBSZW5k
ZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Cit7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3Qg
bVRyYWNraW5nVG9Db21wb25lbnRSZW5kZXJNb2RlbDsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudExvY2FsOworICAgICAgIFZSQ29tcG9uZW50UHJvcGVy
dGllcyB1UHJvcGVydGllczsKK30gUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVj
dG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZOb3JtYWw7Cisg
ICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07IC8vZmxvYXRbMl0KK30gUmVuZGVyTW9kZWxf
VmVydGV4X3Q7CisKK3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdAorewor
ICAgICAgIHVpbnQxNl90IHVuV2lkdGg7CisgICAgICAgdWludDE2X3QgdW5IZWlnaHQ7CisgICAg
ICAgdWludDhfdCAqIHJ1YlRleHR1cmVNYXBEYXRhOyAvLyBjb25zdCB1aW50OF90ICoKK30gUmVu
ZGVyTW9kZWxfVGV4dHVyZU1hcF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF90Cit7
CisgICAgICAgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICogclZlcnRleERhdGE7IC8vIGNv
bnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHVpbnQzMl90IHVu
VmVydGV4Q291bnQ7CisgICAgICAgdWludDE2X3QgKiBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50
MTZfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworICAgICAgIFRleHR1cmVJ
RF90IGRpZmZ1c2VUZXh0dXJlSWQ7Cit9IFJlbmRlck1vZGVsX3Q7CisKK3R5cGVkZWYgc3RydWN0
IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29sIGJTY3Jv
bGxXaGVlbFZpc2libGU7Cit9IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3Q7CisK
K3R5cGVkZWYgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgdm9pZCAqIG1f
cEltYWdlRGF0YTsgLy8gdm9pZCAqCisgICAgICAgaW50MzJfdCBtX25XaWR0aDsKKyAgICAgICBp
bnQzMl90IG1fbkhlaWdodDsKKyAgICAgICBpbnQzMl90IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9IE5v
dGlmaWNhdGlvbkJpdG1hcF90OworCit0eXBlZGVmIHN0cnVjdCBDT3BlblZSQ29udGV4dAorewor
ICAgICAgIGludHB0cl90IG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2cjo6SVZSU3lzdGVtICoKKyAg
ICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZTsgLy8gY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAq
CisgICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmVTZXR1cDsgLy8gY2xhc3MgdnI6OklWUkNo
YXBlcm9uZVNldHVwICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNz
IHZyOjpJVlJDb21wb3NpdG9yICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUk92ZXJsYXk7IC8vIGNs
YXNzIHZyOjpJVlJPdmVybGF5ICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlJlc291cmNlczsgLy8g
Y2xhc3MgdnI6OklWUlJlc291cmNlcyAqCisgICAgICAgaW50cHRyX3QgbV9wVlJSZW5kZXJNb2Rl
bHM7IC8vIGNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIGludHB0cl90IG1fcFZS
RXh0ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5ICoKKyAgICAg
ICBpbnRwdHJfdCBtX3BWUlNldHRpbmdzOyAvLyBjbGFzcyB2cjo6SVZSU2V0dGluZ3MgKgorICAg
ICAgIGludHB0cl90IG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBwbGljYXRp
b25zICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlRyYWNrZWRDYW1lcmE7IC8vIGNsYXNzIHZyOjpJ
VlJUcmFja2VkQ2FtZXJhICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlNjcmVlbnNob3RzOyAvLyBj
bGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKgorfSBDT3BlblZSQ29udGV4dDsKKworCit0eXBlZGVm
IHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOworICAgICAgIFZS
RXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAgVlJFdmVudF9Nb3VzZV90IG1v
dXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOworICAgICAgIFZSRXZlbnRfUHJv
Y2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRp
b247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1N0
YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7CisgICAg
ICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBjaGFwZXJv
bmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7Cisg
ICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7CisgICAgICAgVlJFdmVu
dF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKK30gVlJFdmVudF9E
YXRhX3Q7CisKKy8qKiBBbiBldmVudCBwb3N0ZWQgYnkgdGhlIHNlcnZlciB0byBhbGwgcnVubmlu
ZyBhcHBsaWNhdGlvbnMgKi8KK3N0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICB1aW50MzJfdCBl
dmVudFR5cGU7IC8vIEVWUkV2ZW50VHlwZSBlbnVtCisgICAgICAgVHJhY2tlZERldmljZUluZGV4
X3QgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIGZsb2F0IGV2ZW50QWdlU2Vjb25kczsKKyAg
ICAgICAvLyBldmVudCBkYXRhIG11c3QgYmUgdGhlIGVuZCBvZiB0aGUgc3RydWN0IGFzIGl0cyBz
aXplIGlzIHZhcmlhYmxlCisgICAgICAgVlJFdmVudF9EYXRhX3QgZGF0YTsKK307CisKKwordHlw
ZWRlZiB1bmlvbgoreworICAgICAgIEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdCBtX1JlY3Rh
bmdsZTsKKyAgICAgICBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QgbV9DaXJjbGU7Cit9IFZST3Zl
cmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCitzdHJ1Y3QgVlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90Cit7CisgICAgICAgRVZST3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAgVlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Cit9OworCisKKy8v
IE9wZW5WUiBGdW5jdGlvbiBQb2ludGVyIFRhYmxlcworCitzdHJ1Y3QgVlJfSVZSU3lzdGVtX0Zu
VGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVjb21t
ZW5kZWRSZW5kZXJUYXJnZXRTaXplKSh1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5I
ZWlnaHQpOworICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UHJvamVjdGlvbk1hdHJpeCkoRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxv
YXQgZkZhclopOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcm9q
ZWN0aW9uUmF3KShFVlJFeWUgZUV5ZSwgZmxvYXQgKiBwZkxlZnQsIGZsb2F0ICogcGZSaWdodCwg
ZmxvYXQgKiBwZlRvcCwgZmxvYXQgKiBwZkJvdHRvbSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNvbXB1dGVEaXN0b3J0aW9uKShFVlJFeWUgZUV5ZSwgZmxvYXQgZlUs
IGZsb2F0IGZWLCBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgKiBwRGlzdG9ydGlvbkNv
b3JkaW5hdGVzKTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldEV5ZVRvSGVhZFRyYW5zZm9ybSkoRVZSRXllIGVFeWUpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUaW1lU2luY2VMYXN0VnN5bmMpKGZsb2F0
ICogcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICogcHVsRnJhbWVDb3VudGVyKTsK
KyAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RDNEOUFkYXB0ZXJJ
bmRleCkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RFhHSU91
dHB1dEluZm8pKGludDMyX3QgKiBwbkFkYXB0ZXJJbmRleCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGlzcGxheU9uRGVza3RvcCkoKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGlzcGxheVZpc2liaWxpdHkpKGJvb2wgYklzVmlz
aWJsZU9uRGVza3RvcCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVP
cmlnaW4sIGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgc3RydWN0IFRy
YWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludDMyX3QgdW5U
cmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpSZXNldFNlYXRlZFplcm9Qb3NlKSgpOworICAgICAgIHN0cnVjdCBIbWRNYXRy
aXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5k
aW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3Qg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0
ZVRyYWNraW5nUG9zZSkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcykoRVRyYWNrZWREZXZpY2VD
bGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1blRyYWNr
ZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291
bnQsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7
CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWwgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZp
Y2VJZCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFwcGx5VHJhbnNm
b3JtKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRQb3NlLCBzdHJ1Y3QgVHJh
Y2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSwgc3RydWN0IEhtZE1hdHJpeDM0
X3QgKiBwVHJhbnNmb3JtKTsKKyAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlKShF
VHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7CisgICAgICAgRVRyYWNrZWRDb250
cm9sbGVyUm9sZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbnRyb2xsZXJSb2xlRm9y
VHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsK
KyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
VHJhY2tlZERldmljZUNsYXNzKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsK
KyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSko
VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOworICAgICAgIGZsb2F0IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkpKFRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBpbnQzMl90IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkpKFRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICB1aW50NjRfdCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSko
VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOworICAgICAgIHN0cnVjdCBI
bWRNYXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TWF0cml4MzRUcmFja2Vk
RGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFN0cmluZ1RyYWNr
ZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVm
ZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBjaGFyICog
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0pKEVUcmFj
a2VkUHJvcGVydHlFcnJvciBlcnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlBvbGxOZXh0RXZlbnQpKHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQzMl90
IHVuY2JWUkV2ZW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9s
bE5leHRFdmVudFdpdGhQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBzdHJ1
Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCwgVHJhY2tlZERldmlj
ZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKShFVlJFdmVudFR5cGUgZVR5
cGUpOworICAgICAgIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0SGlkZGVuQXJlYU1lc2gpKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb250cm9s
bGVyU3RhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCBW
UkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9s
bGVyU3RhdGVTaXplKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
Q29udHJvbGxlclN0YXRlV2l0aFBvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
IFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCBWUkNvbnRyb2xs
ZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9sbGVyU3RhdGVT
aXplLCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRyaWdnZXJIYXB0aWNQdWxzZSko
VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQzMl90IHVu
QXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9TZWMpOworICAgICAgIGNoYXIg
KiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKShFVlJC
dXR0b25JZCBlQnV0dG9uSWQpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSkoRVZSQ29udHJvbGxlckF4aXNU
eXBlIGVBeGlzVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNh
cHR1cmVJbnB1dEZvY3VzKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZWxlYXNlSW5wdXRGb2N1cykoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKSgpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRHJpdmVyRGVidWdSZXF1ZXN0KShUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjaGFyICogcGNoUmVxdWVzdCwgY2hhciAq
IHBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAg
ICAgRVZSRmlybXdhcmVFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBlcmZvcm1GaXJt
d2FyZVVwZGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKSgp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY2tub3dsZWRnZVF1aXRf
VXNlclByb21wdCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJFeHRlbmRlZERpc3BsYXlfRm5UYWJs
ZQoreworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXaW5kb3dCb3Vu
ZHMpKGludDMyX3QgKiBwblgsIGludDMyX3QgKiBwblksIHVpbnQzMl90ICogcG5XaWR0aCwgdWlu
dDMyX3QgKiBwbkhlaWdodCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEV5ZU91dHB1dFZpZXdwb3J0KShFVlJFeWUgZUV5ZSwgdWludDMyX3QgKiBwblgsIHVpbnQz
Ml90ICogcG5ZLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOworICAg
ICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREWEdJT3V0cHV0SW5mbykoaW50
MzJfdCAqIHBuQWRhcHRlckluZGV4LCBpbnQzMl90ICogcG5BZGFwdGVyT3V0cHV0SW5kZXgpOwor
fTsKKworc3RydWN0IFZSX0lWUlRyYWNrZWRDYW1lcmFfRm5UYWJsZQoreworICAgICAgIGNoYXIg
KiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKShF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKTsKKyAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYXNDYW1lcmEpKFRyYWNrZWREZXZp
Y2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqIHBIYXNDYW1lcmEpOworICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUZyYW1l
U2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhl
aWdodCwgdWludDMyX3QgKiBwbkZyYW1lQnVmZmVyU2l6ZSk7CisgICAgICAgRVZSVHJhY2tlZENh
bWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhSW50cmluc2ljcyko
VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqIHBGb2NhbExlbmd0aCwgSG1kVmVjdG9yMl90
ICogcENlbnRlcik7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0Q2FtZXJhUHJvamVjdGlvbikoVHJhY2tlZERldmljZUluZGV4X3QgbkRl
dmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZs
Wk5lYXIsIGZsb2F0IGZsWkZhciwgSG1kTWF0cml4NDRfdCAqIHBQcm9qZWN0aW9uKTsKKyAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY3F1aXJl
VmlkZW9TdHJlYW1pbmdTZXJ2aWNlKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgs
IFRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIHBIYW5kbGUpOworICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VWaWRlb1N0cmVhbWluZ1Nl
cnZpY2UpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSk7CisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJl
YW1GcmFtZUJ1ZmZlcikoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCBFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKiBwRnJhbWVCdWZmZXIsIHVp
bnQzMl90IG5GcmFtZUJ1ZmZlclNpemUsIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAq
IHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJlYW1U
ZXh0dXJlU2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIFZSVGV4dHVyZUJvdW5kc190ICogcFRleHR1cmVC
b3VuZHMsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7CisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9T
dHJlYW1UZXh0dXJlRDNEMTEpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICogcEQzRDExRGV2aWNl
T3JSZXNvdXJjZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRl
clNpemUpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRy
YWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZ2xVSW50
X3QgKiBwZ2xUZXh0dXJlSWQsIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIHBGcmFt
ZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgRVZSVHJhY2tlZENh
bWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZVZpZGVvU3RyZWFtVGV4
dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIGdsVUludF90IGds
VGV4dHVyZUlkKTsKK307CisKK3N0cnVjdCBWUl9JVlJBcHBsaWNhdGlvbnNfRm5UYWJsZQorewor
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBZGRB
cHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRo
LCBib29sIGJUZW1wb3JhcnkpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpSZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNoQXBw
bGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqSXNBcHBsaWNhdGlvbkluc3RhbGxlZCkoY2hhciAqIHBjaEFwcEtleSk7CisgICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkNvdW50
KSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgpKHVpbnQzMl90IHVuQXBwbGljYXRpb25JbmRleCwg
Y2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBs
aWNhdGlvbktleUJ5UHJvY2Vzc0lkKSh1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hhciAqIHBjaEFw
cEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hBcHBsaWNhdGlvbiko
Y2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24pKGNoYXIgKiBwY2hUZW1w
bGF0ZUFwcEtleSwgY2hhciAqIHBjaE5ld0FwcEtleSwgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190
ICogcEtleXMsIHVpbnQzMl90IHVuS2V5cyk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlKShj
aGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBwY2hBcmdzKTsKKyAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSko
Y2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKShjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSWRlbnRpZnlBcHBsaWNh
dGlvbikodWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Qcm9jZXNzSWQp
KGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKShFVlJBcHBsaWNhdGlvbkVycm9y
IGVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFw
cGxpY2F0aW9uUHJvcGVydHlTdHJpbmcpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9u
UHJvcGVydHkgZVByb3BlcnR5LCBjaGFyICogcGNoUHJvcGVydHlWYWx1ZUJ1ZmZlciwgdWludDMy
X3QgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJv
cik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9u
UHJvcGVydHlCb29sKShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQ
cm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3IpOworICAgICAgIHVpbnQ2NF90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NCko
Y2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVWUkFw
cGxpY2F0aW9uRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShjaGFyICog
cGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShjaGFyICogcGNoQXBwS2V5KTsK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIgKiBw
Y2hNaW1lVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERl
ZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBw
Y2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlw
ZXMpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIgKiBwY2hNaW1lVHlwZXNCdWZmZXIsIHVpbnQzMl90
IHVuTWltZVR5cGVzQnVmZmVyKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUpKGNoYXIgKiBwY2hNaW1l
VHlwZSwgY2hhciAqIHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciwgdWludDMyX3QgdW5BcHBL
ZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMpKHVpbnQzMl90IHVuSGFuZGxl
LCBjaGFyICogcGNoQXJncywgdWludDMyX3QgdW5BcmdzKTsKKyAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiko
Y2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAg
ICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0VHJhbnNpdGlvblN0YXRlKSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpQZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayko
Y2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKShFVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKklzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQpKCk7CisgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEludGVybmFsUHJvY2Vz
cykoY2hhciAqIHBjaEJpbmFyeVBhdGgsIGNoYXIgKiBwY2hBcmd1bWVudHMsIGNoYXIgKiBwY2hX
b3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJDaGFw
ZXJvbmVfRm5UYWJsZQoreworICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRDYWxpYnJhdGlvblN0YXRlKSgpOworICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQbGF5QXJlYVNpemUpKGZsb2F0ICogcFNpemVY
LCBmbG9hdCAqIHBTaXplWik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldFBsYXlBcmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJlY3QpOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRJbmZvKSgpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTY2VuZUNvbG9yKShzdHJ1Y3QgSG1kQ29sb3JfdCBj
b2xvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvdW5kc0Nv
bG9yKShzdHJ1Y3QgSG1kQ29sb3JfdCAqIHBPdXRwdXRDb2xvckFycmF5LCBpbnQgbk51bU91dHB1
dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIHN0cnVjdCBIbWRD
b2xvcl90ICogcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqQXJlQm91bmRzVmlzaWJsZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqRm9yY2VCb3VuZHNWaXNpYmxlKShib29sIGJGb3JjZSk7Cit9OworCitz
dHJ1Y3QgVlJfSVZSQ2hhcGVyb25lU2V0dXBfRm5UYWJsZQoreworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDb21taXRXb3JraW5nQ29weSkoRUNoYXBlcm9uZUNvbmZpZ0Zp
bGUgY29uZmlnRmlsZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJl
dmVydFdvcmtpbmdDb3B5KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRXb3JraW5nUGxheUFyZWFTaXplKShmbG9hdCAqIHBTaXplWCwgZmxvYXQgKiBwU2l6ZVop
OworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nUGxheUFy
ZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKShzdHJ1Y3QgSG1k
UXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1YWRzQ291bnQpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5m
bykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0Nv
dW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1Nl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3Jr
aW5nUGxheUFyZWFTaXplKShmbG9hdCBzaXplWCwgZmxvYXQgc2l6ZVopOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyko
c3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50KTsK
KyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ1NlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcE1hdFNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShz
dHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRGcm9tRGlz
aykoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3Nl
KShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICogcFRhZ3NCdWZmZXIsIHVpbnQzMl90IHVu
VGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZl
Q29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFnc0J1ZmZlciwgdWludDMyX3Qg
KiBwdW5UYWdDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZm
ZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBw
UXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkV4cG9ydExpdmVUb0J1ZmZlcikoY2hhciAqIHBCdWZmZXIs
IHVpbnQzMl90ICogcG5CdWZmZXJMZW5ndGgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nKShjaGFyICogcEJ1ZmZlciwgdWlu
dDMyX3QgbkltcG9ydEZsYWdzKTsKK307CisKK3N0cnVjdCBWUl9JVlJDb21wb3NpdG9yX0ZuVGFi
bGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0VHJhY2tpbmdT
cGFjZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbik7CisgICAgICAgRVRyYWNraW5n
VW5pdmVyc2VPcmlnaW4gKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2luZ1NwYWNl
KSgpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KldhaXRHZXRQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwUmVuZGVyUG9zZUFy
cmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBzdHJ1Y3QgVHJhY2tlZERldmlj
ZVBvc2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7
CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TGFzdFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBSZW5kZXJQb3NlQXJyYXks
IHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9z
ZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50KTsKKyAg
ICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMYXN0
UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJ
bmRleCwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0UG9zZSwgc3RydWN0IFRy
YWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgIEVWUkNvbXBvc2l0
b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1pdCkoRVZSRXllIGVFeWUsIHN0
cnVjdCBUZXh0dXJlX3QgKiBwVGV4dHVyZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcEJv
dW5kcywgRVZSU3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUpKCk7CisgICAgICAgdm9p
ZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvc3RQcmVzZW50SGFuZG9mZikoKTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1pbmcpKHN0cnVjdCBD
b21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMyX3QgdW5GcmFtZXNBZ28pOwor
ICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1pbmdz
KShzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1pbmcsIHVpbnQzMl90IG5GcmFt
ZXMpOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1l
UmVtYWluaW5nKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRD
dW11bGF0aXZlU3RhdHMpKHN0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqIHBTdGF0
cywgdWludDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpGYWRlVG9Db2xvcikoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZs
b2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7
CisgICAgICAgc3RydWN0IEhtZENvbG9yX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRD
dXJyZW50RmFkZUNvbG9yKShib29sIGJCYWNrZ3JvdW5kKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqRmFkZUdyaWQpKGZsb2F0IGZTZWNvbmRzLCBib29sIGJGYWRlSW4p
OworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VycmVudEdyaWRB
bHBoYSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRTa3lib3hPdmVycmlkZSkoc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlcywgdWlu
dDMyX3QgdW5UZXh0dXJlQ291bnQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpDbGVhclNreWJveE92ZXJyaWRlKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpDb21wb3NpdG9yQnJpbmdUb0Zyb250KSgpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yR29Ub0JhY2spKCk7CisgICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JRdWl0KSgpOworICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Z1bGxzY3JlZW4pKCk7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3Mp
KCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMYXN0RnJh
bWVSZW5kZXJlcikoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ2Fu
UmVuZGVyU2NlbmUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNo
b3dNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkhpZGVNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKklzTWlycm9yV2luZG93VmlzaWJsZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqQ29tcG9zaXRvckR1bXBJbWFnZXMpKCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMpKCk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZvcmNlSW50ZXJsZWF2ZWRSZXBy
b2plY3Rpb25PbikoYm9vbCBiT3ZlcnJpZGUpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpGb3JjZVJlY29ubmVjdFByb2Nlc3MpKCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlN1c3BlbmRSZW5kZXJpbmcpKGJvb2wgYlN1c3BlbmQpOworICAg
ICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1pcnJv
clRleHR1cmVEM0QxMSkoRVZSRXllIGVFeWUsIHZvaWQgKiBwRDNEMTFEZXZpY2VPclJlc291cmNl
LCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKSh2b2lkICogcEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRNaXJyb3JUZXh0dXJlR0wpKEVWUkV5ZSBlRXllLCBnbFVJ
bnRfdCAqIHBnbFRleHR1cmVJZCwgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKiBwZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVs
ZWFzZVNoYXJlZEdMVGV4dHVyZSkoZ2xVSW50X3QgZ2xUZXh0dXJlSWQsIGdsU2hhcmVkVGV4dHVy
ZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MpKGdsU2hhcmVkVGV4
dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcykoZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB1aW50MzJf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1Jl
cXVpcmVkKShjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSk7CisgICAgICAg
dWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWdWxrYW5EZXZpY2VFeHRlbnNp
b25zUmVxdWlyZWQpKHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiBwUGh5c2ljYWxEZXZpY2Us
IGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplKTsKK307CisKK3N0cnVjdCBW
Ul9JVlJPdmVybGF5X0ZuVGFibGUKK3sKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpGaW5kT3ZlcmxheSkoY2hhciAqIHBjaE92ZXJsYXlLZXksIFZST3Zl
cmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0ZU92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5
S2V5LCBjaGFyICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBw
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqRGVzdHJveU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
SGlnaFF1YWxpdHlPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwor
ICAgICAgIFZST3ZlcmxheUhhbmRsZV90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SGln
aFF1YWxpdHlPdmVybGF5KSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0T3ZlcmxheUtleSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBj
aGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICog
cEVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlOYW1lKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKiBwY2hW
YWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJyb3IgKiBwRXJyb3IpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJs
YXlJbWFnZURhdGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqIHB2
QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICogcHVuV2lkdGgsIHVpbnQz
Ml90ICogcHVuSGVpZ2h0KTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0pKEVWUk92ZXJsYXlFcnJvciBlcnJvcik7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zlcmxh
eVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJf
dCB1blBJRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRP
dmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlGbGFnKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdz
IGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUZsYWcpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sICogcGJF
bmFibGVkKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRPdmVybGF5Q29sb3IpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxv
YXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSk7CisgICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUNvbG9yKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZSZWQsIGZsb2F0ICogcGZHcmVlbiwg
ZmxvYXQgKiBwZkJsdWUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBmbG9hdCAqIHBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUZXhlbEFzcGVjdCkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3BlY3QpOworICAgICAgIEVWUk92ZXJs
YXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXhlbEFzcGVjdCko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBmVGV4ZWxBc3BlY3Qp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMy
X3QgdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE92ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgdWludDMyX3QgKiBwdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5
V2lkdGhJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAq
IHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycykoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1ldGVy
cywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdl
SW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZk1p
bkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICogcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VGV4
dHVyZUNvbG9yU3BhY2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9y
U3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgKiBwZVRleHR1cmVDb2xvclNw
YWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlU
ZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBW
UlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgRVZST3Zl
cmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybVR5
cGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5VHJhbnNmb3Jt
VHlwZSAqIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2lu
Z09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJs
YXlUcmFuc2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiAqIHBlVHJhY2tpbmdPcmlnaW4s
IHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNm
b3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuVHJhY2tlZERldmljZSwg
c3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9y
bSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSkoVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1blRyYWNrZWREZXZpY2Us
IHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zv
cm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNo
YXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVu
dCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhf
dCAqIHB1bkRldmljZUluZGV4LCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5D
b21wb25lbnROYW1lU2l6ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2hvd092ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGlk
ZU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzT3ZlcmxheVZpc2libGUpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVU
cmFja2luZ09yaWdpbiwgc3RydWN0IEhtZFZlY3RvcjJfdCBjb29yZGluYXRlc0luT3ZlcmxheSwg
c3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9sbE5leHRPdmVybGF5RXZlbnQpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWludDMyX3Qg
dW5jYlZSRXZlbnQpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlJbnB1dE1ldGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIHBlSW5wdXRNZXRob2QpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlJbnB1dE1l
dGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1l
dGhvZCBlSW5wdXRNZXRob2QpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlNb3VzZVNjYWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwdmVjTW91c2VTY2FsZSk7CisgICAg
ICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheU1v
dXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFZl
Y3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rpb24pKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190ICogcFBh
cmFtcywgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIHBSZXN1bHRzKTsK
KyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGFuZGxlQ29udHJvbGxlck92
ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0hvdmVyVGFyZ2V0T3ZlcmxheSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBWUk92ZXJsYXlIYW5kbGVf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEdhbWVwYWRGb2N1c092ZXJsYXkpKCk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0R2FtZXBh
ZEZvY3VzT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdGb2N1c092ZXJsYXkpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlO
ZWlnaGJvcikoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxlX3Qg
dWxGcm9tLCBWUk92ZXJsYXlIYW5kbGVfdCB1bFRvKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcikoRU92
ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxlX3QgdWxGcm9tKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5
VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVGV4dHVy
ZV90ICogcFRleHR1cmUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNsZWFyT3ZlcmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVJhdykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lk
ICogcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lkdGgsIHVpbnQzMl90IHVuSGVpZ2h0LCB1aW50MzJf
dCB1bkRlcHRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRPdmVybGF5RnJvbUZpbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgY2hhciAqIHBjaEZpbGVQYXRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB2b2lkICoqIHBOYXRpdmVUZXh0dXJlSGFuZGxlLCB2b2lkICogcE5hdGl2
ZVRleHR1cmVSZWYsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJfdCAqIHBIZWlnaHQsIHVpbnQz
Ml90ICogcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVUeXBlICogcEFQSVR5cGUsIEVDb2xvclNwYWNl
ICogcENvbG9yU3BhY2UsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBUZXh0dXJlQm91bmRz
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxl
YXNlTmF0aXZlT3ZlcmxheUhhbmRsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCB2b2lkICogcE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlU2l6ZSkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHBXaWR0aCwgdWludDMyX3QgKiBw
SGVpZ2h0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDcmVhdGVEYXNoYm9hcmRPdmVybGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwgY2hhciAqIHBj
aE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUsIFZS
T3ZlcmxheUhhbmRsZV90ICogcFRodW1ibmFpbEhhbmRsZSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGFzaGJvYXJkVmlzaWJsZSkoKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KShWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERhc2hi
b2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgdWludDMyX3QgKiBwdW5Qcm9jZXNzSWQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTaG93RGFzaGJvYXJkKShjaGFyICogcGNoT3ZlcmxheVRvU2hvdyk7CisgICAg
ICAgVHJhY2tlZERldmljZUluZGV4X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcmlt
YXJ5RGFzaGJvYXJkRGV2aWNlKSgpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dLZXlib2FyZCkoRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1
dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNoYXIgKiBw
Y2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjaGFyICogcGNoRXhpc3RpbmdUZXh0
LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSk7CisgICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0tleWJvYXJkRm9yT3Zl
cmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFR2FtZXBhZFRleHRJbnB1
dE1vZGUgZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9k
ZSwgY2hhciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNoYXIgKiBwY2hF
eGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEtleWJvYXJkVGV4
dCkoY2hhciAqIHBjaFRleHQsIHVpbnQzMl90IGNjaFRleHQpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpIaWRlS2V5Ym9hcmQpKCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUpKEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBw
bWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFJlY3QyX3QgYXZvaWRSZWN0
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5SW50ZXJzZWN0aW9uTWFzaykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90ICogcE1hc2tQcmlt
aXRpdmVzLCB1aW50MzJfdCB1bk51bU1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1blByaW1pdGl2
ZVNpemUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlGbGFncykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
MzJfdCAqIHBGbGFncyk7CisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU2hvd01lc3NhZ2VPdmVybGF5KShjaGFyICogcGNoVGV4dCwgY2hh
ciAqIHBjaENhcHRpb24sIGNoYXIgKiBwY2hCdXR0b24wVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjFU
ZXh0LCBjaGFyICogcGNoQnV0dG9uMlRleHQsIGNoYXIgKiBwY2hCdXR0b24zVGV4dCk7Cit9Owor
CitzdHJ1Y3QgVlJfSVZSUmVuZGVyTW9kZWxzX0ZuVGFibGUKK3sKKyAgICAgICBFVlJSZW5kZXJN
b2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFJlbmRlck1vZGVsX0FzeW5j
KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqKiBwcFJl
bmRlck1vZGVsKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVJl
bmRlck1vZGVsKShzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqIHBSZW5kZXJNb2RlbCk7CisgICAgICAg
RVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRUZXh0dXJl
X0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJl
TWFwX3QgKiogcHBUZXh0dXJlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqRnJlZVRleHR1cmUpKHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKiBwVGV4dHVy
ZSk7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkxvYWRUZXh0dXJlRDNEMTFfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqIHBE
M0QxMURldmljZSwgdm9pZCAqKiBwcEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICBFVlJSZW5kZXJN
b2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZEludG9UZXh0dXJlRDNEMTFf
QXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqIHBEc3RUZXh0dXJlKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVRleHR1cmVEM0QxMSkodm9pZCAq
IHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRSZW5kZXJNb2RlbE5hbWUpKHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwgY2hh
ciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2RlbE5hbWVMZW4pOwor
ICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxD
b3VudCkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENv
bXBvbmVudENvdW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lKTsKKyAgICAgICB1aW50MzJf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudE5hbWUpKGNoYXIgKiBwY2hS
ZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50SW5kZXgsIGNoYXIgKiBwY2hDb21w
b25lbnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4pOworICAgICAgIHVpbnQ2NF90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50QnV0dG9uTWFzaykoY2hhciAq
IHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxO
YW1lKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSwg
Y2hhciAqIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRS
ZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRDb21wb25lbnRTdGF0ZSkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBj
aENvbXBvbmVudE5hbWUsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCAqIHBTdGF0ZSwgc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiBwQ29tcG9uZW50U3RhdGUpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCko
Y2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOworICAg
ICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxUaHVt
Ym5haWxVUkwpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hUaHVtYm5haWxV
UkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCBFVlJSZW5kZXJNb2RlbEVycm9yICogcGVF
cnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5k
ZXJNb2RlbE9yaWdpbmFsUGF0aCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBj
aE9yaWdpbmFsUGF0aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhMZW4sIEVWUlJlbmRlck1vZGVs
RXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKShFVlJSZW5kZXJNb2RlbEVycm9yIGVy
cm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJOb3RpZmljYXRpb25zX0ZuVGFibGUKK3sKKyAgICAg
ICBFVlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0ZU5v
dGlmaWNhdGlvbikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50NjRfdCB1
bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBjaGFyICogcGNoVGV4dCwgRVZS
Tm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdCAqIHBJ
bWFnZSwgVlJOb3RpZmljYXRpb25JZCAqIHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgRVZSTm90
aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVOb3RpZmljYXRp
b24pKFZSTm90aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQpOworfTsKKworc3RydWN0IFZSX0lW
UlNldHRpbmdzX0ZuVGFibGUKK3sKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKShFVlJTZXR0aW5nc0Vycm9yIGVFcnJv
cik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN5bmMpKGJvb2wgYkZv
cmNlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldEJvb2wpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0
dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEludDMyKShjaGFyICogcGNoU2Vj
dGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NF
cnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgZmxvYXQg
ZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICog
cGNoU2V0dGluZ3NLZXksIGNoYXIgKiBwY2hWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJy
b3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb29sKShjaGFy
ICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICog
cGVFcnJvcik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldElu
dDMyKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5n
c0Vycm9yICogcGVFcnJvcik7CisgICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZS
U2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NL
ZXksIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxlbiwgRVZSU2V0dGluZ3NFcnJv
ciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1v
dmVTZWN0aW9uKShjaGFyICogcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3Ip
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVLZXlJblNlY3Rp
b24pKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdz
RXJyb3IgKiBwZUVycm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJTY3JlZW5zaG90c19GblRhYmxl
Cit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
UmVxdWVzdFNjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5kbGVfdCAqIHBPdXRTY3JlZW5zaG90SGFu
ZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjaGFyICogcGNoUHJldmlld0ZpbGVuYW1lLCBj
aGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqSG9va1NjcmVlbnNob3QpKEVWUlNjcmVlbnNob3RUeXBlICogcFN1
cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMpOworICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSkoU2NyZWVu
c2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RFcnJvciAqIHBFcnJv
cik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTY3JlZW5z
aG90UHJvcGVydHlGaWxlbmFtZSkoU2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUs
IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFtZVR5cGUsIGNoYXIgKiBwY2hG
aWxlbmFtZSwgdWludDMyX3QgY2NoRmlsZW5hbWUsIEVWUlNjcmVlbnNob3RFcnJvciAqIHBFcnJv
cik7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
VXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKShTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhh
bmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqVGFrZVN0ZXJlb1NjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5k
bGVfdCAqIHBPdXRTY3JlZW5zaG90SGFuZGxlLCBjaGFyICogcGNoUHJldmlld0ZpbGVuYW1lLCBj
aGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0U2NyZWVuc2hvdCkoU2NyZWVuc2hvdEhhbmRsZV90IHNj
cmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNoYXIgKiBwY2hTb3VyY2VQ
cmV2aWV3RmlsZW5hbWUsIGNoYXIgKiBwY2hTb3VyY2VWUkZpbGVuYW1lKTsKK307CisKK3N0cnVj
dCBWUl9JVlJSZXNvdXJjZXNfRm5UYWJsZQoreworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqTG9hZFNoYXJlZFJlc291cmNlKShjaGFyICogcGNoUmVzb3VyY2VOYW1l
LCBjaGFyICogcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbik7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZXNvdXJjZUZ1bGxQYXRoKShjaGFyICog
cGNoUmVzb3VyY2VOYW1lLCBjaGFyICogcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBjaGFyICog
cGNoUGF0aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4pOworfTsKKworCisjaWYgMAorLy8g
R2xvYmFsIGVudHJ5IHBvaW50cworU19BUEkgaW50cHRyX3QgVlJfSW5pdEludGVybmFsKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlVHlwZSApOworU19BUEkgdm9p
ZCBWUl9TaHV0ZG93bkludGVybmFsKCk7CitTX0FQSSBib29sIFZSX0lzSG1kUHJlc2VudCgpOwor
U19BUEkgaW50cHRyX3QgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50
ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CitTX0FQSSBib29sIFZSX0lz
UnVudGltZUluc3RhbGxlZCgpOworU19BUEkgY29uc3QgY2hhciAqIFZSX0dldFZSSW5pdEVycm9y
QXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOworU19BUEkgY29uc3QgY2hhciAqIFZSX0dl
dFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUkluaXRFcnJvciBlcnJvciApOwor
I2VuZGlmCisKKyNlbmRpZiAvLyBfX09QRU5WUl9BUElfRkxBVF9IX18KKworCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkzOWUyNDY3MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaApAQCAt
MCwwICsxLDI1NDEgQEAKKyNwcmFnbWEgb25jZQorCisvLyBvcGVudnJfZHJpdmVyLmgKKy8vPT09
PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworLy8gRHlu
YW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5
LgorCisjaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQorI2RlZmluZSBfT1BFTlZSX0RSSVZFUl9B
UEkKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisKKworLy8gdnJ0eXBlcy5oCisjaWZuZGVmIF9J
TkNMVURFX1ZSVFlQRVNfSAorI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKKworLy8gRm9yd2Fy
ZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCitzdHJ1Y3QgVmtEZXZp
Y2VfVDsKK3N0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7CitzdHJ1Y3QgVmtJbnN0YW5jZV9UOwor
c3RydWN0IFZrUXVldWVfVDsKKworLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVx
dWlyaW5nIGQzZDEyLmgKK3N0cnVjdCBJRDNEMTJSZXNvdXJjZTsKK3N0cnVjdCBJRDNEMTJDb21t
YW5kUXVldWU7CisKK25hbWVzcGFjZSB2cgoreworCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8
IGRlZmluZWQoX19BUFBMRV9fKSAKKyAgICAgICAvLyBUaGUgMzItYml0IHZlcnNpb24gb2YgZ2Nj
IGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50NjQgYW5kIGRvdWJsZSBzZXQg
dG8KKyAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGggI3ByYWdtYSBwYWNrKDgpIHRo
ZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25lZC4KKyAgICAgICAvLyBUaGUg
NjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB0
aGVzZSB0eXBlcyBzZXQgdG8KKyAgICAgICAvLyA4IG1lYW5pbmcgdGhhdCB1bmxlc3Mgd2UgdXNl
ICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdldCBiaWdnZXIuCisgICAgICAg
Ly8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8gbWF0Y2ggdGhlIDMyLWJpdCBz
dHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KKyAgICAgICAjcHJhZ21hIHBhY2so
IHB1c2gsIDQgKQorI2Vsc2UKKyAgICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorI2VuZGlm
CisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVmIGludDMy
X3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7CisKKy8vIHJpZ2h0LWhhbmRl
ZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUgcmlnaHQKKy8vIC16IGlzIGdv
aW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycworc3RydWN0IEht
ZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOworfTsKKworc3RydWN0IEhtZE1h
dHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsKKworc3RydWN0IEhtZFZlY3Rv
cjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7
CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzZF90Cit7CisgICAg
ICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgZmxv
YXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUg
dywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxvYXQgciwg
ZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBIbWRWZWN0b3IzX3Qg
dkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90Cit7CisgICAgICAgSG1kVmVj
dG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9Owor
CisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9yIGVhY2ggY29s
b3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBpbiB0aGUgdXBw
ZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4gVGhlIDAsMCB0
byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0cnVjdCBEaXN0b3J0aW9uQ29v
cmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOworICAgICAgIGZsb2F0IHJmR3Jl
ZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKworZW51bSBFVlJFeWUKK3sKKyAg
ICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0gMQorfTsKKworZW51bSBFVGV4
dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8gSGFuZGxlIGlz
IGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAxLCAgLy8gSGFu
ZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRlciBidWZmZXIg
bmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAgIFRleHR1cmVUeXBlX1Z1bGth
biA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1cmVEYXRhX3Qg
c3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8gSGFuZGxlIGlz
IGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2UKKyAgICAgICBUZXh0dXJl
VHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgRDNEMTJUZXh0
dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JTcGFjZQoreworICAgICAgIENv
bG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3IgOC1iaXQgcGVy
IGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1pcnJvcnMgdGhl
IERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgorICAgICAgIENvbG9yU3Bh
Y2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3BsYXllZCBkaXJl
Y3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsuYS4gZGlzcGxh
eSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIsICAgICAgIC8v
IFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVhciByZXByZXNl
bnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4KK307CisKK3N0
cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBFVGV4dHVyZVR5
cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsKKyAgICAgICBF
Q29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRsZSB0byBhIHNoYXJlZCB0ZXh0
dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVkUmVzb3VyY2Up
LgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7CisjZGVmaW5lIElOVkFM
SURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1cmVIYW5kbGVf
dCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFRyYWNraW5nUmVzdWx0X1Vu
aW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAgICBUcmFja2luZ1Jl
c3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAorICAgICAgIFRyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCisKKyAgICAgICBUcmFj
a2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwLAor
ICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAgICAgICAgPSAy
MDEsCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRlYnVnUmVzcG9u
c2VTaXplID0gMzI3Njg7CisKKy8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0byBBUEkgY2Fs
bHMgKi8KK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7CitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOworc3RhdGljIGNvbnN0
IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1
aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZFOworc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gMHhGRkZGRkZG
RjsKKworLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5nIHRyYWNrZWQg
YXQgYSBnaXZlbiBJRCAqLworZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAgVHJh
Y2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0g
MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91bnRlZCBEaXNw
bGF5cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwgICAgICAgICAg
ICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNs
YXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMgdHJhY2tlcnMs
IHNpbWlsYXIgdG8gY29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tp
bmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlvbnMgdGhhdCBz
ZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCit9OworCisKKy8qKiBEZXNjcmliZXMg
d2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2aWNlICovCitl
bnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKK3sKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJv
bGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZh
bGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJv
bGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJh
Y2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKKyAgICAgICBUcmFja2Vk
Q29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5kCit9OworCisK
Ky8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVjdCAqLworc3Ry
dWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFjZSBpbiBtL3MK
KyAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAgICAgIC8vIGFu
Z3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQorICAgICAgIEVUcmFja2luZ1Jlc3VsdCBl
VHJhY2tpbmdSZXN1bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisKKyAgICAgICAvLyBU
aGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBmb3IgdGhpcyBz
cG90IGluIHRoZSBwb3NlIGFycmF5LgorICAgICAgIC8vIEl0IGNvdWxkIGdvIGZyb20gdHJ1ZSB0
byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCisgICAgICAgYm9vbCBiRGV2
aWNlSXNDb25uZWN0ZWQ7Cit9OworCisvKiogSWRlbnRpZmllcyB3aGljaCBzdHlsZSBvZiB0cmFj
a2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQorKiBmb3IgdGhlIHBvc2Vz
IGl0IGlzIHJlcXVlc3RpbmcgKi8KK2VudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAg
ICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8vIFBvc2VzIGFy
ZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQorICAgICAgIFRyYWNr
aW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCByZWxh
dGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgorICAgICAgIFRy
YWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQb3NlcyBhcmUg
cHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlIGRyaXZlci4g
IEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBzYW1lIGRyaXZl
ci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307CisKKy8vIFJlZmVycyB0byBh
IHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsK
Kworc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bEludmFsaWRQcm9w
ZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bklu
dmFsaWRQcm9wZXJ0eVRhZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0YWdzIHRvIHNldC9nZXQgY29t
bW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBl
VGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Oworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworc3RhdGljIGNv
bnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7Citz
dGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9
IDIyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3I0UHJvcGVy
dHlUYWcgPSAyMzsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IaWRkZW5B
cmVhUHJvcGVydHlUYWcgPSAzMDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKKwor
CisvKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3BlcnR5IHRoYXQg
Y2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2aWNlLiBNYW55IGZpZWxkcyBh
cmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCitlbnVtIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkKK3sKKyAgICAgICBQcm9wX0ludmFsaWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIC8v
IGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xhc3NlcworICAg
ICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMDAsCisgICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJpYWxO
dW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDIsCisg
ICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51ZmFj
dHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDUsCisgICAg
ICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURl
c2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAorICAgICAgIFBy
b3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMTAsCisgICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJhdHRlcnlQ
ZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAwIGlzIGVtcHR5
LCAxIGlzIGZ1bGwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQg
ICAgICAgICAgICAgID0gMTAxMywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWlsYWJs
ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdhcmVf
TWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE1LAorICAg
ICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAgICAgICAgPSAx
MDE2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDE3LAorICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAorICAgICAgIFByb3BfRlBH
QVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDE5LAorICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25f
VWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEsCisgICAgICAg
UHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0
ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAorICAgICAgIFBy
b3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAgID0gMTAyNiwK
KyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFy
Z2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAorICAgICAgIFByb3BfRGV2aWNlQ2xhc3Nf
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjksCisg
ICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmlu
ZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVw
ZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lzdGVtQnV0
dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAorICAgICAgIFByb3BfUGFy
ZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDM0
LAorCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2
aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVZz
eW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCisgICAgICAgUHJvcF9EaXNw
bGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKKyAgICAgICBQcm9wX1ByZXZp
b3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA1LCAK
KyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3BsYXlN
Q1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOCwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5k
b3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAx
MSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAgICAgICAgID0g
MjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAgICAgICAgICAg
ID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAorICAgICAgIFByb3Bf
Q2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAgICAgPSAyMDE2
LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNw
bGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE5
LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisgICAgICAgUHJvcF9MZW5zQ2Vu
dGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMiwK
KyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAorICAgICAgIFByb3BfTGVu
c0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1Vp
bnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13
YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCisgICAgICAgUHJvcF9E
aXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAy
OSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3BfQXVkaW9GaXJtd2FyZVZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAorICAgICAgIFByb3BfQ2FtZXJh
Q29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIwMzMsCisgICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZU51
bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisgICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MSwKKyAg
ICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDQyLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8g
VHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNl
SWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKKyAgICAgICBQcm9w
X1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAw
MSwKKyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29u
dHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2YWx1ZSBpcyBv
ZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0LCAvLyBSZXR1
cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4
aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisg
ICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVRy
YWNrZWRDb250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlx
dWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisgICAgICAgUHJvcF9G
aWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAwLAor
ICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICA9IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURl
Z3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFj
a2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0LAorICAgICAg
IFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAw
NSwKKyAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJl
IHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAgICAgICBQcm9wX0lj
b25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQgImljb25zIgorICAgICAgIFBy
b3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwg
NTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1l
ZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1MDAyLCAvLyBQ
TkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRz
ZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
U2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8gUE5HIGZvciBzdGF0aWMgaWNv
biwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9y
IG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZv
ciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAg
ICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAgICAgICAgICAg
ICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1
MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDYs
IC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3Ig
aGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywgLy8gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0
TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8gUE5HIGZvciBzdGF0aWMg
aWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIg
Zm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIGJ5IGhlbHBl
cnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAgICAgIFByb3BfRGlzcGxheUhp
ZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEwMCwK
KyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlx
dWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAgICAgUHJvcF9JbnN0YWxsUGF0
aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDEs
CisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGRlYnVnIGRh
dGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKKyAgICAgICBQcm9wX1Zl
bmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAgID0gMTA5OTksCit9
OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25nZXIgdGhhbiB0aGlz
IGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1Np
emUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMgdGhhdCBvY2N1ciB3
aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNrZWRQcm9wZXJ0eUVycm9yCit7
CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0Rldmlj
ZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1ZmZl
clRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKKyAgICAgICBUcmFja2Vk
UHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0LCAvLyBE
cml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBldmVyKS4KKyAgICAg
ICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
NSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgICAgICAgICAgICAg
ID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgICAgICAg
PSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoICAgICAg
ID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qga25vd24geWV0LCBi
dXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KKyAgICAgICBUcmFja2VkUHJv
cF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBUcmFj
a2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgPSAxMSwKK307CisK
Ky8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBwYXJ0IG9mIHRoZSBw
cm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyogZnJhbWUgYnVmZmVyLiAqLwor
c3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQgdU1pbiwgdk1pbjsKKyAg
ICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlv
biB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUgY29tcG9zaXRv
ciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAg
IC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVmdCBhbmQgcmln
aHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQu
CisgICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAgLy8gQXBwIHN1Ym1pdHMg
ZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9ydGlvbiBhbHJl
YWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFwcGVhcgorICAg
ICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0
aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSByZXR1cm5lZCBi
eQorICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkgdG8gYXBwbHkg
dGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJlZm9yZSBjYWxs
aW5nIFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVk
ID0gMHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFzc2VkIGluIGlz
IGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5HTCkgdGhlbiBz
ZXQgdGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4MDIsCisKKyAg
ICAgICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgwNCwKK307CisK
Ky8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0byBJVlJDb21w
b3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3Jl
IGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IFZSVnVsa2FuVGV4dHVyZURh
dGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCisgICAgICAgVmtE
ZXZpY2VfVCAqbV9wRGV2aWNlOworICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAqbV9wUGh5c2lj
YWxEZXZpY2U7CisgICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKKyAgICAgICBWa1F1
ZXVlX1QgKm1fcFF1ZXVlOworICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7Cisg
ICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBtX25TYW1wbGVD
b3VudDsKK307CisKKy8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEyIHRleHR1cmVz
IHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0
ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCitzdHJ1Y3QgRDNEMTJU
ZXh0dXJlRGF0YV90Cit7CisgICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291cmNlOworICAg
ICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOworICAgICAgIHVpbnQzMl90
IG1fbk5vZGVNYXNrOworfTsKKworLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gb3Ig
dHJhY2tlZCBvYmplY3RzICovCitlbnVtIEVWUlN0YXRlCit7CisgICAgICAgVlJTdGF0ZV9VbmRl
ZmluZWQgPSAtMSwKKyAgICAgICBWUlN0YXRlX09mZiA9IDAsCisgICAgICAgVlJTdGF0ZV9TZWFy
Y2hpbmcgPSAxLAorICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBW
UlN0YXRlX1JlYWR5ID0gMywKKyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKKyAgICAg
ICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKKyAgICAgICBWUlN0YXRlX1N0YW5kYnkgPSA2LAorICAg
ICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK307CisKKy8qKiBUaGUgdHlwZXMgb2Yg
ZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1ldGVycyBtZWFu
IGZvciBlYWNoIGV2ZW50IHR5cGUpICovCitlbnVtIEVWUkV2ZW50VHlwZQoreworICAgICAgIFZS
RXZlbnRfTm9uZSA9IDAsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQg
ICAgICAgICAgICAgID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZh
dGVkICAgICAgID0gMTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgICAg
ICAgICAgICAgID0gMTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFj
dGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNl
ckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCisgICAgICAgVlJFdmVudF9JcGRDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKKyAgICAgICBWUkV2ZW50
X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKKyAgICAgICBWUkV2
ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKKyAgICAgICBWUkV2
ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwKKyAgICAgICBW
UkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAsCisgICAgICAg
VlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEs
CisKKyAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0
b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBkYXRhIGlzIGNv
bnRyb2xsZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVu
dF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLCAvLyBkYXRh
IGlzIGNvbnRyb2xsZXIKKworICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZl
bnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAxLCAvLyBk
YXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Gb2N1
c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywgLy8gZGF0YSBp
cyBvdmVybGF5CisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9T
Y3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwgLy8g
ZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9PdmVy
bGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRhdGEgaXMgb3Zl
cmxheSwgZ2xvYmFsIGV2ZW50CisKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCAg
ICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAor
ICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAgICAgICAgPSA0
MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECisgICAgICAgVlJFdmVudF9TY2VuZUZv
Y3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0YSBpcyBwcm9j
ZXNzCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAgICAgICAgICAg
PSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlv
bkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBUaGUgQXBw
IGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8gb3IgZnJvbSB0
aGUgY29tcG9zaXRvcikKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkICAgICAgICAg
ICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAgZ290IGFjY2Vz
cyB0byBkcmF3IHRoZSBzY2VuZQorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NoYW5nZWQgICAg
ICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVu
dF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywgLy8gZGF0
YSBpcyBwcm9jZXNzCisKKyAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgICAgICAgICAg
ICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVx
dWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQorICAgICAgIFZSRXZlbnRfU2hv
d1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50IHRvIHRoZSBz
Y2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9kZWwgdmlzaWJp
bGl0eQorCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MDAsCisgICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNTAxLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkICAg
ICAgICAgICAgICAgICAgICAgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2
YXRlZCAgICAgICAgICAgICAgPSA1MDMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNl
bGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5hZ2Vy
IC0gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQgICAg
ICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5hZ2VyIC0g
ZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBtYW5hZ2VyCisg
ICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0b2FzdCAtIGRh
dGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAorICAgICAgIFZSRXZlbnRfSW1hZ2VMb2FkZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRvIG92ZXJsYXlz
IHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxsIGZpbmlzaGVz
IGxvYWRpbmcKKyAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUgZGFzaGJv
YXJkIHRvIGludm9rZSBpdAorICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVyIGluIHRo
ZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1
c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4gSVZST3Zlcmxh
eTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAorICAgICAgIFZSRXZlbnRfT3Zlcmxh
eUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRvIGFuIG92ZXJs
YXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6U2V0Rm9jdXNP
dmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQorICAgICAgIFZSRXZlbnRfT3Zlcmxh
eVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3Vp
ZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVC
dXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90VHJp
Z2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3QgYnV0dG9uIGNv
bWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3JlZW5zaG90Cisg
ICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcgb3IgU2V0
T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZE92
ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKKworICAgICAgIC8vIFNjcmVlbnNob3Qg
QVBJCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0byBjb21wb3Np
dG9yIHRvIHRha2UgYSBzY3JlZW5zaG90CisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90VGFrZW4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50IGJ5IGNvbXBv
c2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIGJlZW4gdGFr
ZW4KKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRpb24gdGhh
dCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KKyAgICAgICBWUkV2ZW50X1N1Ym1p
dFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNlbnQgYnkgY29t
cG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMg
c3VibWl0dGVkCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCAg
ICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQgdGhhdCBh
IGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKworICAgICAgIFZSRXZlbnRfUHJp
bWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCisKKyAgICAgICBWUkV2ZW50
X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMCwKKyAg
ICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA2MDEsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlvbiAg
ICAgICA9IDYwMiwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQgICAgICAg
ICAgICAgICAgICAgICA9IDYwMywKKworICAgICAgIFZSRXZlbnRfUXVpdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0YSBpcyBwcm9j
ZXNzCisgICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50
X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcwMiwgLy8gZGF0
YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50
X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDQsIC8v
IFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3duCisKKyAgICAg
ICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA4
MDAsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgICAgICAgICAg
ICAgID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkICAg
ICAgICAgICAgICA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNo
YW5nZWQgICAgICAgPSA4MDMsCisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAorCisgICAgICAgVlJFdmVudF9BdWRpb1Nl
dHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAorCisgICAgICAgVlJFdmVudF9C
YWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAorICAgICAgIFZS
RXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTEsCisgICAg
ICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9IDg1MiwKKyAg
ICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4NTMsCisg
ICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4NTQs
CisgICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0g
ODU1LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJFdmVudF9G
aXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDExMDAsCisgICAgICAg
VlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAgICAgICAgPSAxMTAx
LAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRE
b25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIsIC8vIFNlbnQgd2hl
biBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAgICAgICBWUkV2ZW50X0FwcGxp
Y2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwKKyAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAgID0gMTMwMSwKKyAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQgICAgICAgPSAx
MzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbk1pbWVUeXBl
TG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCisgICAgICAgVlJFdmVudF9B
cHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisKKyAgICAg
ICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAgICAgID0gMTQw
MCwKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuICAgICAgICAg
ICAgICA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1No
b3duICAgICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBl
cm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1l
cmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNl
VGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1h
bmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJm
b3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAgICAgICBWUkV2ZW50
X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1MCwKKyAgICAg
ICAKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGV2ZW50cyBp
biB0aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307CisKKworLyoqIExldmVsIG9m
IEhtZCBhY3Rpdml0eSAqLworZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreworICAgICAgIGtf
RURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAgICAgIGtfRURldmljZUFjdGl2
aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50
ZXJhY3Rpb24gPSAxLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0
aW9uX1RpbWVvdXQgPSAyLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSA9
IDMsCit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJRHMgKi8KK2Vu
dW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAgICAgICAgICAg
ICAgICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAgICAgPSAxLAor
ICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAg
ICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAzLAorICAgICAg
IGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgICAgIGtfRUJ1
dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAgICAga19FQnV0dG9uX0RQYWRf
RG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAgIAorICAgICAgIGtfRUJ1dHRv
bl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19FQnV0dG9uX0F4aXMwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19FQnV0dG9uX0F4aXMxICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19FQnV0dG9uX0F4aXMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19FQnV0dG9uX0F4aXMzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19FQnV0dG9uX0F4aXM0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAvLyBhbGlhc2VzIGZvciB3ZWxs
IGtub3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgICAg
ICAgPSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciAg
ICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1dHRvbl9EYXNoYm9hcmRfQmFj
ayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19FQnV0dG9uX01heCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUgdWludDY0X3QgQnV0dG9uTWFz
a0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9CisKKy8qKiB1
c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X0NvbnRy
b2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9uSWQgZW51bQor
fTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBvdmVybGF5IHNw
YWNlICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgVlJNb3VzZUJ1dHRvbl9MZWZ0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKKyAgICAgICBWUk1v
dXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAw
MiwKKyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMg
aW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIGZs
b2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVmdCBvZiB0aGUg
dGV4dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1vdXNlQnV0dG9u
IGVudW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwgc2Nyb2xsIGlu
IG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxv
YXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRoZSBwYWQgdHJh
dmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCisgICAgICAgdWlu
dDMyX3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBtb3VzZSBpbnB1dCBtb2RlIHlv
dSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVudHMgYXJlIG9u
bHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0aGUgdG91Y2hwYWQgKG9yIGp1
c3QgcmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92ZV90
Cit7CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVjdGVkIG9uIHRo
ZSB0b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworCisgICAgICAgLy8gSG93IGxv
bmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKKyAgICAgICBmbG9hdCBmbFNl
Y29uZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGljYXRlIHRoZSBz
dGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNpYyBzd2lwZSBz
dHVmZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZhbHVlWUZp
cnN0OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRpbmF0ZSB3aXRo
b3V0IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0IGZW
YWx1ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRzLiBEZXRhaWxz
IHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0cnVjdCBWUkV2ZW50X05vdGlm
aWNhdGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7CisgICAgICAgdWludDMy
X3Qgbm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3IgZXZlbnRzIGFib3V0IHByb2Nl
c3NlcyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgdWludDMyX3QgcGlk
OworICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29sIGJGb3JjZWQ7Cit9OworCisK
Ky8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2
ZW50X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cit9OworCisK
Ky8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2
ZW50X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8vIEVWUlN0YXRl
IGVudW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCitzdHJ1Y3QgVlJF
dmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAgICAgIC8vIFVw
IHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2NF90IHVVc2VyVmFsdWU7ICAg
ICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKK307CisKK3N0cnVjdCBW
UkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfTsKKworc3RydWN0IFZS
RXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25QcmV2aW91c1VuaXZlcnNl
OworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKK307CisKKy8qKiBOb3QgYWN0
dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRfdAor
eworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDE7
Cit9OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVpbnQz
Ml90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9z
ZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK307CisKK3N0cnVj
dCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAgICAg
ICB1aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
X3QKK3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0cnVjdCBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3Qg
dW5BcmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2Vf
dAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3QgblZp
c3VhbE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90Cit7CisgICAg
ICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAorewor
ICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOworICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RFISEhIElmIHlvdSBjaGFuZ2Ug
dGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgKi8KK3R5
cGVkZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAg
ICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAgICAgICBWUkV2ZW50X01vdXNl
X3QgbW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7CisgICAgICAgVlJFdmVu
dF9Qcm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFZSRXZl
bnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsK
KyAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNo
YXBlcm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVz
dDsKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAgICBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OworICAgICAg
IFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgVlJFdmVudF9TY3JlZW5z
aG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAgVlJFdmVudF9BcHBsaWNh
dGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAgIFZSRXZlbnRfRWRpdGluZ0Nh
bWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3QgcHJvcGVydHk7
Cit9IFZSRXZlbnRfRGF0YV90OworCisvKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIg
dG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAg
ICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQorICAgICAgIFRyYWNr
ZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBmbG9hdCBldmVudEFn
ZVNlY29uZHM7CisgICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0
cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7
Cit9OworCisKKy8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwgKG9yIGRlcHRo
KSBidWZmZXIgdG8gcGVyZm9ybSAKKyogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgpIGtpbGxzIG9m
IHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCisqIFRoaXMgbWVzaCBk
cmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVyIGRpc3RvcnRp
b24uIAorKgorKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxlIGFyZWEgbWVz
aCBwVmVydGV4RGF0YSB3aWxsIGJlCisqIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3VudCB3aWxsIGJl
IDAuICovCitzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAgICAgIGNvbnN0IEhtZFZlY3Rv
cjJfdCAqcFZlcnRleERhdGE7CisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfTsK
KworCitlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVz
aF9TdGFuZGFyZCA9IDAsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisg
ICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAorCisgICAgICAga19lSGlkZGVu
QXJlYU1lc2hfTWF4ID0gMywKK307CisKKworLyoqIElkZW50aWZpZXMgd2hhdCBraW5kIG9mIGF4
aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5cGUgCisqIHdp
dGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3BfQXhpczBUeXBl
X0ludDMyICsgbiApOworKi8KK2VudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAg
a19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJh
Y2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAg
ICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdnZXIgZGF0YSBp
cyBpbiB0aGUgWCBheGlzCit9OworCisKKy8qKiBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBv
bmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLworc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAor
eworICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlj
a3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRyaWdnZXJzIHdl
cmUgMCBpcyBmdWxseSByZWxlYXNlZC4KKyAgICAgICBmbG9hdCB5OyAvLyBSYW5nZXMgZnJvbSAt
MS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdheXMgMC4wIGZv
ciB0cmlnZ2Vycy4KK307CisKKworLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0aGUgY29udHJv
bGxlciBzdGF0ZSAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9sbGVyU3RhdGVB
eGlzQ291bnQgPSA1OworCisKKy8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEgY29udHJvbGxl
ciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCitzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGUwMDFf
dAoreworICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlvdXIgcHJpb3Ig
Y2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFuZ2VkIHNpbmNl
IAorICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nl
c3MgaXQKKyAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKKworICAgICAgIC8vIGJpdCBmbGFn
cyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQgdG8gdHVybiBh
biBJRCBpbnRvIGEgbWFzaworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAg
ICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisKKyAgICAgICAvLyBBeGlzIGRhdGEgZm9yIHRo
ZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cworICAgICAgIFZSQ29udHJvbGxlckF4aXNfdCBy
QXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOworfTsKKworCit0eXBlZGVmIFZS
Q29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKKworCisvKiogZGV0ZXJt
aW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHZhcmlvdXMg
ZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91
dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAor
ICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9OworCisKKworLyoq
IENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgQ09M
TElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAgQ09MTElTSU9OX0JPVU5E
U19TVFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQs
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisgICAgICAgQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8g
Y3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3NpdG9yICovCitz
dHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXpl
OyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisgICAgICAgYm9vbCBjdXJ2
ZWQsIGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFscGhhOworICAg
ICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOworICAgICAgIGZsb2F0
IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBIbWRNYXRyaXg0NF90IHRy
YW5zZm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZSIG92ZXJsYXkg
Ki8KK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCBW
Uk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworCisvKiogRXJy
b3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLworZW51bSBFVlJPdmVybGF5
RXJyb3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5rbm93
bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAgIFZST3ZlcmxheUVycm9y
X0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAorICAgICAgIFZST3Zlcmxh
eUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAgICAg
IFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAgICA9IDEzLCAv
LyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBu
dW1iZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0
eVR5cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9u
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAgIFZST3ZlcmxheUVycm9y
X05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCisgICAgICAgVlJP
dmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAgICAgICAgICAg
ICA9IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlICAgICAg
ICAgICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIgICAg
ICAgICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVycm9yX1RodW1ibmFpbENh
bnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3ZlcmxheUVycm9yX0FycmF5VG9v
U21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZST3ZlcmxheUVycm9yX1Jl
cXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKKyAgICAgICBWUk92
ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAgPSAyNSwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAgICAgICAgPSAy
NiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVz
ICAgICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSAgICAg
ICAgICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1ZXMgdG8gcGFzcyBpbiB0
byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdpbGwgCisqIGRy
YXcgYSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAgVlJB
cHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVyIGtpbmQgb2Yg
YXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRyaWVzIAorICAg
ICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAgLy8gQXBwbGlj
YXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zlcmxh
eSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0cyB3aXRoIG92
ZXJsYXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAgICAgLy8gQXBw
bGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFscmVhZHkgcnVu
bmluZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBpZiBldmVyeXRo
aW5nIGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwgICAgICAg
ICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVycy4gVGhlIGFw
cGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIChs
aWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFyZHdhcmUuCisg
ICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNlcnZlZCBmb3Ig
dnJtb25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwvLyBSZXNl
cnZlZCBmb3IgU3RlYW0KKworICAgICAgIFZSQXBwbGljYXRpb25fTWF4Cit9OworCisKKy8qKiBl
cnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmlybXdhcmVFcnJvcgoreworICAg
ICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUkZpcm13YXJlRXJyb3JfU3Vj
Y2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAorfTsKKworCisvKiog
ZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0gRVZSTm90aWZpY2F0aW9uRXJy
b3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAgIFZSTm90aWZp
Y2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9Owor
CisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCisKKy8vIFBsZWFzZSBh
ZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9wZXIudmFsdmVz
b2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhlbHAKK2VudW0g
RVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9IDAsCisgICAg
ICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgID0gMTAxLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMDIsCisg
ICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQgICAg
ICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFj
ZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDksCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVn
aXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTEyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFi
bGUgICAgICAgPSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxl
ZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUmV0
cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNSwgLy8gVXNl
ZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAgID0gMTE2LCAv
LyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhpdC4gVGhlIHVzZXIg
Y2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Fub3RoZXJBcHBM
YXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Nl
dHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE4LCAKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
OSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTIwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JC
YWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90U3Vw
cG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIzLAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEy
NCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAgICAgICAgICAg
ICAgICAgICAgID0gMTI1LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVz
ZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0
b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAxMjgsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0gMTI5LCAKKyAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAgICAgICAgICAg
ID0gMTMwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0Fw
cHMgPSAxMzEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyA9IDEzMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQg
ICAgICAgICAgICAgID0gMTMzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRT
dGFydHVwRmFpbGVkICAgICAgID0gMTM0LAorCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0Zh
aWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBWUkluaXRFcnJv
cl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwKKyAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAgICAgID0gMjAy
LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAgICAgICAgICAg
ICA9IDIwMywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSAgICAg
ICAgICAgICAgPSAyMDQsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZEluVXNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9O
b3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2
ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAorICAgICAgIFZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJyb3Jf
RHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8vIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCAgICAgICAgPSAyMTAs
IC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwKKworICAgICAgIFZSSW5pdEVy
cm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9IDMwMCwKKyAgICAgICBWUklu
aXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAxLAorICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAgPSAzMDIsCisg
ICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAgID0gMzAzLAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICA9IDMwNCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwNSwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRv
ckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBv
c2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9yX0lQ
Q19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNDAwLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJl
cXVpcmVkICAgICAgID0gNDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdh
cmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3Np
dG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKworICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVu
dGltZSA9IDEwMDAsCisKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAxLAorICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENv
bmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTAzLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rv
b0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAorICAgICAgIFZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDExMDUsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9IDExMDYsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2Fy
ZVZlcnNpb24gICAgICAgID0gMTEwNywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOCwKKyAgICAg
ICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRh
U3RhcnQgICAgICAgPSAxMTA5LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDExMTAsCisgICAg
ICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFu
Z2UgICAgICAgICAgICAgID0gMTExMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEx
MiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWls
ZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAorCisgICAgICAgVlJJbml0RXJyb3Jf
U3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCit9OworCitlbnVtIEVWUlNj
cmVlbnNob3RUeXBlCit7CisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwKKyAgICAg
ICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5CisgICAgICAgVlJT
Y3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1h
cCA9IDMsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAorICAgICAg
IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Cit9OworCitlbnVtIEVWUlNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lcworeworICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWVzX1ByZXZpZXcgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVz
X1ZSID0gMSwKK307CisKK2VudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAg
IFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAgID0gMTAwLAor
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgID0g
MTAxLCAgICAgICAKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVIZWFk
ZXJWZXJzaW9uICA9IDEwMiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRPZkhhbmRs
ZXMgICAgICAgICAgICAgICA9IDEwMywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENG
YWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKKyAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKKyAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywKKyAgICAgICBW
UlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9IDEwOCwKKyAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAgICAgICA9IDEw
OSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVyZUhhbmRs
ZSA9IDExMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVy
ZUlkICAgICA9IDExMSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRUZXh0dXJl
RmFpbHVyZSAgICAgICA9IDExMiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0ZyYW1l
QXZhaWxhYmxlICAgICAgICAgICA9IDExMywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9J
bnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKK307CisKK2VudW0gRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZQoreworICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9E
aXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhbWVyYSB2
aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgorICAgICAgIFZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAgICAgICAvLyBJ
biBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVnaW9uIHdpdGhv
dXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFuZ2VzIHNob3J0
bHkuCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCwg
ICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52YWxpZCByZWdp
b25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCByZWdpb25zLgor
ICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKK307CisKK3R5cGVkZWYgdWludDY0X3QgVHJh
Y2tlZENhbWVyYUhhbmRsZV90OworI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FNRVJBX0hBTkRM
RSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKKworc3RydWN0IENhbWVyYVZp
ZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5
cGUgZUZyYW1lVHlwZTsKKworICAgICAgIHVpbnQzMl90IG5XaWR0aDsKKyAgICAgICB1aW50MzJf
dCBuSGVpZ2h0OworICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOworCisgICAgICAgdWlu
dDMyX3QgbkZyYW1lU2VxdWVuY2U7CisKKyAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90IHN0YW5k
aW5nVHJhY2tlZERldmljZVBvc2U7Cit9OworCisvLyBTY3JlZW5zaG90IHR5cGVzCit0eXBlZGVm
IHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtf
dW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7CisKKyNwcmFnbWEgcGFjayggcG9wICkKKwor
Ly8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwKKyNpZiBkZWZp
bmVkKF9XSU4zMikKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUgVlJfSU5URVJGQUNF
IGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyNlbHNlCisjZGVmaW5lIFZSX0lO
VEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCisjZW5kaWYKKworI2Vs
aWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8IGRlZmluZWQo
X19BUFBMRV9fKQorCisjaWZkZWYgVlJfQVBJX0VYUE9SVAorI2RlZmluZSBWUl9JTlRFUkZBQ0Ug
ZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vsc2UK
KyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCisjZW5kaWYKKworI2Vsc2UKKyNlcnJv
ciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgorI2VuZGlmCisKKworI2lmIGRlZmluZWQoIF9XSU4z
MiApCisjZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKKyNlbHNlCisjZGVmaW5lIFZSX0NBTExU
WVBFIAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIHZyCisKKyNlbmRpZiAvLyBfSU5DTFVERV9W
UlRZUEVTX0gKKworCisvLyB2cmFubm90YXRpb24uaAorI2lmZGVmIEFQSV9HRU4KKyMgZGVmaW5l
IFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFUVFIgKSkpCisj
ZWxzZQorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQorI2VuZGlmCisKKyNkZWZpbmUgVlJf
TUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAiOyIgKQorI2Rl
ZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQorI2RlZmluZSBW
Ul9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkKKyNkZWZpbmUg
VlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiApCisjZGVmaW5l
IFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9DTEFOR19BVFRS
KCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAjUEFSQU1TICI7
IiApCisjZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAi
b3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZpbmUgVlJfQVJSQVlfQ09VTlQo
Q09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNk
ZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19BVFRSKCAiYXJy
YXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCisjZGVmaW5lIFZSX0JVRkZFUl9D
T1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NPVU5URVIgIjsi
ICkKKyNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAi
b3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkdf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6IiAjQ09VTlRF
UiAiOyIgKQorCisvLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCisjaWZuZGVmIF9WUlRSQUNLRURD
QU1FUkFUWVBFU19ICisjZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFUWVBFU19IIAorCituYW1lc3Bh
Y2UgdnIKK3sKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykg
CisgICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCBy
ZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRvCisgICAgICAgLy8gNCBtZWFu
aW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3aWxsIG9ubHkg
YmUgZm91ci1ieXRlIGFsaWduZWQuCisgICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJzaW9uIG9mIGdj
YyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMgc2V0IHRvCisg
ICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBhY2soNCkgb3Vy
IHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgorICAgICAgIC8vIFRoZSA2NC1iaXQgc3RydWN0
dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBhY2tpbmcgZm9y
IGVhY2ggcGxhdGZvcm0uCisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbHNlCisg
ICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKyNlbmRpZgorCitlbnVtIEVDYW1lcmFWaWRl
b1N0cmVhbUZvcm1hdAoreworICAgICAgIENWU19GT1JNQVRfVU5LTk9XTiA9IDAsCisgICAgICAg
Q1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAxMCBiaXRzIHBlciBwaXhlbAor
ICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAgICAvLyAxMiBiaXRzIHBlciBw
aXhlbAorICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAgICAgICAgICAgLy8gMjQgYml0
cyBwZXIgcGl4ZWwKKyAgICAgICBDVlNfTUFYX0ZPUk1BVFMKK307CisKK2VudW0gRUNhbWVyYUNv
bXBhdGliaWxpdHlNb2RlCit7CisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfREVGQVVM
VCA9IDAsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfNjRLX0RNQSwKKyAgICAgICBD
QU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9E
RV9CVUxLXzhLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUyRlBTLAorICAg
ICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9N
T0RFX0lTT180OEZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ2RlBTLAorICAg
ICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9N
T0RFX0lTT180MkZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQwRlBTLAorICAg
ICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9N
T0RFX0lTT18zMEZQUywKKyAgICAgICBNQVhfQ0FNRVJBX0NPTVBBVF9NT0RFUworfTsKKworI2lm
ZGVmIF9NU0NfVkVSCisjZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FMSUdOKCB4ICkgX19kZWNsc3Bl
YyggYWxpZ24oIHggKSApCisjZWxzZQorI2RlZmluZSBWUl9DQU1FUkFfREVDTF9BTElHTiggeCAp
IC8vCisjZW5kaWYKKworI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1FX1NIQVJFRF9IQU5ETEVTICAg
ICAgIDQKKworVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1Y3QgQ2FtZXJhVmlkZW9TdHJl
YW1GcmFtZV90Cit7CisgICAgICAgRUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG1fblN0cmVhbUZv
cm1hdDsKKworICAgICAgIHVpbnQzMl90IG1fbldpZHRoOworICAgICAgIHVpbnQzMl90IG1fbkhl
aWdodDsKKworICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNpemU7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24gc3RyZWFtIGZvcm1hdCwgd2lk
dGgsIGhlaWdodAorCisgICAgICAgdWludDMyX3QgbV9uRnJhbWVTZXF1ZW5jZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3Ry
ZWFtIHN0YXJ0cy4KKworICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckluZGV4OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXMgd2hpY2ggYnVmZmVy
IHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAorICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckNvdW50
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvdGFsIG51bWJl
ciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKKworICAgICAgIHVpbnQzMl90IG1fbkV4cG9zdXJlVGlt
ZTsKKworICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0YW1wOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVkIHRpbWUgc3RhbXAgcGVyIGRy
aXZlciBjZW50cmljIHRpbWUgYmFzZQorICAgICAgIHVpbnQzMl90IG1fbklTUFJlZmVyZW5jZVRp
bWVTdGFtcDsKKyAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRlcjsKKworICAgICAgIHVpbnQz
Ml90IG1fbkNhbVN5bmNFdmVudHM7CisgICAgICAgdWludDMyX3QgbV9uSVNQU3luY0V2ZW50czsK
KworICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1RpbWU7CisKKyAgICAgICBkb3Vi
bGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4gSW4gc2Vjb25kcy4KKyAgICAg
ICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOworCisgICAgICAgZG91YmxlIG1fZmxGcmFt
ZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAgICAgLy8gSW4gVVNCIHRpbWUs
IHZpYSBBdXhFdmVudAorICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9TZXJ2ZXJS
ZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1lIHdpdGhpbiB0aGUgc2VydmVy
CisgICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3NfU2VydmVyQWJzb2x1dGU7ICAg
ICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZlcgorICAgICAgIGRvdWJsZSBt
X2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEF0IHRo
ZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdhcyBleHBvc2VkL2NhcHR1cmVk
LgorCisgICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7CisKKyAgICAgICBUcmFja2Vk
RGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsgICAgICAgLy8gU3VwcGxp
ZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQgY2FtZXJhCisKKyAgICAgICB1
aW50NjRfdCBtX3BJbWFnZURhdGE7Cit9OworCisjcHJhZ21hIHBhY2soIHBvcCApCisKK30KKwor
I2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICisvLyBpdnJzZXR0aW5ncy5oCituYW1l
c3BhY2UgdnIKK3sKKyAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKKyAgICAgICB7CisgICAg
ICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKKyAgICAgICAgICAgICAgVlJTZXR0
aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9X
cml0ZUZhaWxlZCA9IDIsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVk
ID0gMywKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZhaWxlZCA9IDQs
CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1bHQg
PSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9lcyBub3QgYXBw
ZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3QgYmVlbiBzZXQK
KyAgICAgICB9OworCisgICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgc2V0dGluZ3Mg
a2V5CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0
aCA9IDEyODsKKworICAgICAgIGNsYXNzIElWUlNldHRpbmdzCisgICAgICAgeworICAgICAgIHB1
YmxpYzoKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0aW5nc0Vycm9y
TmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKKworICAgICAgICAg
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3JjZSBvciBzZXR0
aW5ncyBkaXJ0eSkKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJvb2wgYkZvcmNl
ID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9u
LCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
U2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdz
S2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIg
KSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29uc3QgY2hhciAq
cGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZsVmFsdWUsIEVW
UlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRpbmdzRXJyb3Ig
KnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFVzZXJzIG9mIHRo
ZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVmYXVsdC52cnNl
dHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQorICAgICAgICAgICAg
ICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGlyZWN0b3J5LiBP
dGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIiCisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25z
dCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxw
dHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQzMiggY29uc3Qg
Y2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdz
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGZs
b2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0
aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24s
IGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFs
dWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxs
cHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTZWN0aW9uKCBj
b25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0
ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUluU2VjdGlvbigg
Y29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNl
dHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgIH07CisKKyAgICAg
ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7CisKKyAgICAgICAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gc3RlYW12ciBrZXlzCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRf
U3RyaW5nID0gInJlcXVpcmVIbWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERyaXZlciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtl
eV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNzUGlw
ZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCA9ICJlbmFibGVEaXN0
b3J0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
RGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJkaXNw
bGF5RGVidWdZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxs
QXBwcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0xv
Z0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tncm91
bmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rp
b24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9t
ZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENv
bG9yIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUGxh
eUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2YXRl
TXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wg
PSAiZGlyZWN0TW9kZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVk
aWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVh
a2VycyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nw
ZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3
T2Zmc2V0RGVncmVlcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dl
ck1hbmFnZW1lbnQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRN
dWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9u
X0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJ
bnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rp
b24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3Jj
ZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JW
aWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9y
VmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX01p
cnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFw
cExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5j
aF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVu
Y2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hi
b2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFi
bGVIb21lQXBwIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFwcCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFj
a2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXRhaWxE
ZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworCisgICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRy
aXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9T
dHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2Ft
YmlndWF0aW9uZGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
TGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9u
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfREJI
aXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVt
YmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfTW9kZWxO
dW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZ
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93V2lk
dGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIg
PSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
TnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19G
bG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5
RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyB1
c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9w
X0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0gIk1pbmltaXpl
VG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRl
cmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9
ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJi
X0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0
b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0TGVm
dFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zm
c2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7
CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gcGVyZiBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVy
ZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfSGV1
cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlPbmx5
T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3Jl
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRpbWlu
Z3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7
CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gY29sbGlzaW9uIGJv
dW5kcyBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyID0gIkNvbGxp
c2lvbkJvdW5kc1N0eWxlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5k
c0dyb3VuZFBlcmltZXRlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5k
c0NlbnRlck1hcmtlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlT
cGFjZU9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lv
bkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNl
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0lu
dDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gY2FtZXJhIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxlQ2Ft
ZXJhIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFG
b3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFS
X0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1l
cmFCb3VuZHNDb2xvckdhbW1hRyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JH
YW1tYUIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0Jv
dW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9J
bnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gYXVkaW8ga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBs
YXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1
ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNl
X1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvZmZQ
bGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9h
dWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2
ZUhETUlHYWluIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBw
b3dlciBtYW5hZ2VtZW50IGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9mZk9uRXhpdCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2Ny
ZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVv
dXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9h
dCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAiYXV0
b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRf
Qm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKKworICAg
ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBtb2RlbCBza2luIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9TZWN0aW9uID0g
Im1vZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJpdmVyXzxuYW1l
PiBzZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ecml2ZXJf
RW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworLy8gaXNlcnZl
cnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAorbmFtZXNwYWNlIHZyCit7CisKKworc3RydWN0IERyaXZl
clBvc2VRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdywgeCwgeSwgejsKK307CisKK3N0
cnVjdCBEcml2ZXJQb3NlX3QKK3sKKyAgICAgICAvKiBUaW1lIG9mZnNldCBvZiB0aGlzIHBvc2Us
IGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhlIHBvc2UsCisgICAgICAgICog
cmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVkKCkgY2FsbCBtYWRlIGJ5IHRo
ZSBkcml2ZXIuCisgICAgICAgICovCisgICAgICAgZG91YmxlIHBvc2VUaW1lT2Zmc2V0OworCisg
ICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVkIGJ5IGEgZHJpdmVyCisgICAg
ICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0ZW0gZGlmZmVyZW50CisgICAg
ICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0LCB5KyB1cCwgeisgYmFjay4K
KyAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3VhbGx5IHRyYWNraW5nIHRoZSAi
aGVhZCIgcG9zaXRpb24sCisgICAgICAgICogYnV0IGluc3RlYWQgYW4gaW50ZXJuYWwgSU1VIG9y
IGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCisgICAgICAgICogVGhlIGZvbGxv
d2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25zIGFuZCBvcmllbnRhdGlvbnMK
KyAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2ZXIgd29ybGQgc3BhY2UsCisg
ICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJpdmVyIGxvY2FsIGJvZHkgc3Bh
Y2UuIAorICAgICAgICAqCisgICAgICAgICogV2UgbWFpbnRhaW4gdGhlIGRyaXZlciBwb3NlIHN0
YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwKKyAgICAgICAgKiBzbyB3ZSBj
YW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQgaGF2aW5nIHRvCisgICAgICAg
ICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIncyBhbmd1bGFyIGFjY2VsZXJh
dGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAorICAgICAgICAqIGFuZCBpcyBpbnN0ZWFk
IGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2YgYW5ndWxhciB2ZWxvY2l0eS4K
KyAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxhciBhY2NlbGVyYXRpb24gdmFs
dWVzLCB3aGljaCBhcmUgYWxzbworICAgICAgICAqIGxhZ2dlZCBkdWUgdG8gdGhlIGZpbHRlcmlu
ZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0YWJsZSBsZXZlbC4KKyAgICAg
ICAgKi8KKyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3JsZEZyb21Ecml2ZXJSb3RhdGlv
bjsKKyAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJhbnNsYXRpb25bIDMgXTsKKwor
ICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21IZWFkUm90YXRpb247CisgICAg
ICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25bIDMgXTsKKworICAgICAgIC8q
IFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJhZGlhbnMuICovCisgICAgICAg
LyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZlcmVuY2UgaW4gZHJpdmVyIHdv
cmxkIHNwYWNlCisgICAgICAgKiArWzBdICh4KSBpcyByaWdodAorICAgICAgICogK1sxXSAoeSkg
aXMgdXAKKyAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKKyAgICAgICAqLworICAgICAgIGRv
dWJsZSB2ZWNQb3NpdGlvblsgMyBdOworCisgICAgICAgLyogVmVsb2NpdHkgb2YgdGhlIHBvc2Ug
aW4gbWV0ZXJzL3NlY29uZCAqLworICAgICAgIGRvdWJsZSB2ZWNWZWxvY2l0eVsgMyBdOworCisg
ICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNvbmQgKi8KKyAg
ICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07CisKKyAgICAgICAvKiBPcmllbnRhdGlv
biBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0ZXJuaW9uICovCisgICAgICAg
dnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247CisKKyAgICAgICAvKiBBbmd1bGFyIHZlbG9j
aXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCisgICAgICAgKiByZXByZXNlbnRhdGlvbi4g
VGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKKyAgICAgICAqIHJvdGF0aW9uIGFuZCB0aGUg
bWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKKyAgICAgICAqIHRoYXQgYXhpcyBpbiByYWRp
YW5zL3NlY29uZC4gKi8KKyAgICAgICBkb3VibGUgdmVjQW5ndWxhclZlbG9jaXR5WyAzIF07CisK
KyAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBheGlzLWFuZ2xl
IAorICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhlIGFuZ2xlIG9m
CisgICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5nbGUgYXJvdW5k
CisgICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmReMi4gKi8KKyAgICAgICBkb3Vi
bGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOworCisgICAgICAgRVRyYWNraW5nUmVzdWx0
IHJlc3VsdDsKKworICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCB3aWxsRHJp
ZnRJbllhdzsKKyAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1vZGVsOworICAgICAgIGJvb2wg
ZGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBzaW5nbGUgdHJhY2tlZCBkZXZp
Y2UgaW4gYSBkcml2ZXIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K2NsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCit7CitwdWJsaWM6CisKKyAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBNYW5hZ2Vt
ZW50IE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFuIEhNRCBpcyByZXR1cm5lZCB0
byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCisgICAgICAgKiBjYWxsZWQgYmVm
b3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1lbW9yeSBhbmQgcHJvY2Vzc29y
IHVzZSBieSB0aGUKKyAgICAgICAqIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyIG9iamVjdCBz
aG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMgYWN0aXZhdGVkLgorICAgICAg
ICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCB1bnRpbCBEZWFj
dGl2YXRlIGlzIGNhbGxlZCwgYnV0CisgICAgICAgKiBzaG91bGQgbm90IGJlIHVzZWQgYWZ0ZXIg
dGhhdCBwb2ludC4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBBY3RpdmF0ZSggdWlu
dDMyX3QgdW5PYmplY3RJZCApID0gMDsKKworICAgICAgIC8qKiBUaGlzIGlzIGNhbGxlZCB3aGVu
IFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBIbWQgYmVpbmcgdGhlIGFjdGl2
ZSBkaXNwbGF5CisgICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWluZyB0aGUgYWN0aXZlIGRpc3Bs
YXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1lbW9yeQorICAgICAgICogYW5k
IHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0ZWQgKi8KKyAgICAgICB2aXJ0
dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKKworICAgICAgIC8qKiBIYW5kbGVzIGEgcmVxdWVz
dCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGludG8gc3RhbmRieSBtb2RlLiBX
aGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAqLworICAgICAgIHZpcnR1YWwg
dm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7CisKKyAgICAgICAvKiogUmVxdWVzdHMgYSBjb21wb25l
bnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1zcGVjaWZpYyBmdW5jdGlvbmFs
aXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAorICAgICAgICogaWYgdGhlIHJlcXVl
c3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLiAqLworICAgICAgIHZp
cnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lQW5k
VmVyc2lvbiApID0gMDsKKworICAgICAgIC8qKiBBIFZSIENsaWVudCBoYXMgbWFkZSB0aGlzIGRl
YnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2YWxpZCByZXF1ZXN0cyBpcyBl
bnRpcmVseQorICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQgdGhlIGNsaWVudCB0byBmaWd1
cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZS4gUmVzcG9uc2VzIHRoYXQK
KyAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBidWZmZXIgc2hvdWxk
IGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCisgICAgICAgdmlydHVhbCB2b2lk
IERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNoUmVzcG9uc2VC
dWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOworCisgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gVHJhY2tpbmcg
TWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9IDA7Cit9OworCisKKworc3Rh
dGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyX1ZlcnNpb24gPSAiSVRy
YWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKKworfQorLy8gaXZyZGlzcGxheWNvbXBvbmVu
dC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoZSBkaXNwbGF5IGNvbXBvbmVu
dCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQorICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBJVlJEaXNwbGF5Q29tcG9uZW50Cisg
ICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gRGlzcGxheSBNZXRob2Rz
CisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3aW5kb3cgbmVl
ZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1aW50MzJfdCAq
cG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5nIHRoZSBkZXNrdG9wLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlzIHJlYWwgYW5k
IG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wg
SXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTdWdnZXN0
ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQgdGhlIGRpc3Rv
cnRpb24gcHVsbHMgZnJvbS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFJlY29t
bWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhl
aWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3BvcnQgaW4gdGhl
IGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRpb24gaW50byAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoIEVWUkV5
ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwg
dWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBUaGUgY29tcG9u
ZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRyaXggaW4gY2Fz
ZSB5b3VyCisgICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29tZXRoaW5nIGZh
bmN5IGxpa2UgaW5maW5pdGUgWiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0UHJv
amVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpwZlJpZ2h0LCBm
bG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZvciB0aGUgc3Bl
Y2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4KKyAgICAgICAgICAg
ICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAxLDEgaW4gdGhl
IGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURpc3RvcnRpb24oIEVWUkV5ZSBl
RXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7CisKKyAgICAgICB9OworCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEaXNwbGF5
Q29tcG9uZW50XzAwMiI7CisKK30KKworLy8gaXZyZHJpdmVyZGlyZWN0bW9kZWNvbXBvbmVudC5o
CituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoaXMgY29tcG9uZW50IGlzIHVzZWQg
Zm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUgZW50aXJlbHkgb24gdGhlaXIg
b3duCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRob3V0IGFsbG93aW5nIHRoZSBW
UiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4gQ2hhbmNlcyBhcmUgeW91IGRv
bid0CisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGltcGxlbWVudCB0aGlz
IGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBv
bmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gRGlyZWN0IG1v
ZGUgbWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0byBPY3VsdXMgY29tcG9zaXRv
ciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcgdGhpcyBt
ZXRob2QuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDcmVhdGVTd2FwVGV4dHVyZVNl
dCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1aW50MzJfdCB1bldpZHRoLCB1
aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCggKnBTaGFyZWRUZXh0
dXJlSGFuZGxlcyApWyAzIF0gKSB7fQorCisgICAgICAgICAgICAgIC8qKiBVc2VkIHRvIHRleHR1
cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQuICBPbmx5IG9uZSBvZiB0aGUg
c2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ryb3kgdGhlIGVudGlyZSBzZXQu
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95U3dhcFRleHR1cmVTZXQoIHZy
OjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZSApIHt9CisKKyAgICAg
ICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUgc2V0cyBmb3IgYSBnaXZlbiBw
cm9jZXNzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveUFsbFN3YXBUZXh0
dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQorCisgICAgICAgICAgICAgIC8qKiBBZnRlciBQ
cmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBuZXh0IGluZGV4IHRvIHVzZSBm
b3IgcmVuZGVyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0TmV4dFN3YXBU
ZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhh
bmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0gKSB7fQorCisgICAgICAgICAg
ICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9yIHRoaXMgZnJhbWUuICBPbmUg
c2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJlcyBtdXN0IGJlIGNyZWF0ZWQK
KyAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVyZVNldCBhbmQgc2hvdWxkIGJl
IGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9uY2UgYWxsIGxheWVycyBoYXZl
IGJlZW4gc3VibWl0dGVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU3VibWl0TGF5
ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZXNbIDIgXSwg
Y29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClbIDIgXSwgY29uc3QgdnI6Okht
ZE1hdHJpeDM0X3QgKnBQb3NlICkge30KKworICAgICAgICAgICAgICAvKiogU3VibWl0cyBxdWV1
ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUHJl
c2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4dHVyZSApIHt9CisKKyAgICAg
ICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckRpcmVjdE1vZGVDb21w
b25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50XzAwMiI7CisKK30K
KworLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1
cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRyYWNrZWQgZGV2aWNlLgorICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFz
cyBJVlJDb250cm9sbGVyQ29tcG9uZW50CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAg
ICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRo
ZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0ZSggKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBwcm9wZXJ0eSBp
cyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSggdWludDMyX3QgdW5BeGlzSWQs
IHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyApID0gMDsKKworICAgICAgIH07
CisKKworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNvbnRyb2xsZXJDb21wb25lbnRf
VmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7CisKK30KKy8vIGl2cmNhbWVy
YWNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIGNsYXNzIElDYW1lcmFW
aWRlb1NpbmtDYWxsYmFjaworICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAg
IHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCkgPSAwOworICAgICAgIH07
CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQorICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFz
cyBJVlJDYW1lcmFDb21wb25lbnQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg
ICAgLy8gQ2FtZXJhIE1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFG
cmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZpZGVvU3RyZWFt
Rm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVmZmVyaW5nUmVxdWlyZW1lbnRz
KCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90ICpwRnJhbWVCdWZmZXJEYXRh
U2l6ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVyYUZyYW1lQnVm
ZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipwcEZyYW1lQnVmZmVycywgdWlu
dDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZv
cm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6
OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCgpID0g
MDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0VmlkZW9TdHJlYW0oKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJlYW0oKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZlKCBib29sICpwYlBhdXNlZCwg
ZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0
IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVvU3RyZWFtRnJhbWUoKSA9IDA7
CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlkZW9TdHJlYW1GcmFtZSggY29u
c3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1lSW1hZ2UgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUoIGJvb2wgYkVuYWJsZSApID0g
MDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlkZW9TdHJlYW0oKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0cmVhbSgpID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRpb24oIGZsb2F0IGZsSW5wdXRV
LCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZsb2F0ICpwZmxPdXRwdXRWICkg
PSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhUHJvamVjdGlvbiggdnI6
OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxaTmVhciwgZmxv
YXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBuSVNQRnJhbWVSYXRlLCBpbnQg
blNlbnNvckZyYW1lUmF0ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENh
bWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVvU2lua0NhbGxiYWNrICpwQ2Ft
ZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSAq
cENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0aWJpbGl0eU1v
ZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3QgKnBUb3AsIHVpbnQzMl90ICpw
V2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZy
YW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJfdCAqcENlbnRl
ciApID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNhbWVy
YUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVudF8wMDIiOworfQorLy8gaXRy
YWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgSVRy
YWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7CitzdHJ1Y3QgVHJhY2tlZERldmljZURyaXZlckluZm9f
dDsKK3N0cnVjdCBEcml2ZXJQb3NlX3Q7Cit0eXBlZGVmIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgRHJpdmVySGFuZGxlX3Q7CisKKy8qKiBUaGlzIGludGVyZmFjZSBpcyBwcm92aWRlZCBieSB2
cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAKKyogdGhlIHN5c3RlbSB3aGVu
IHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVzZSBjaGFuZ2VzIG11c3QKKyog
bm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBvZiB0aGUgZGV2aWNlIGJlY2F1
c2UgdGhvc2UgdmFsdWVzCisqIGFyZSBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdpdGggdGhlIGRl
dmljZSdzIGluZGV4LiAqLworY2xhc3MgSVZSRHJpdmVyQ29udGV4dAoreworcHVibGljOgorICAg
ICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlLiBJZiB0aGUgaW50ZXJmYWNl
IHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwgYW5kIGZpbGwKKyAgICAgICAq
IG91dCB0aGUgZXJyb3IuICovCisgICAgICAgdmlydHVhbCB2b2lkICpHZXRHZW5lcmljSW50ZXJm
YWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHByb3BlcnR5IGNv
bnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCisgICAgICAgdmlydHVhbCBEcml2ZXJI
YW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Cit9OworCisKKy8qKiBUaGlzIGludGVyZmFj
ZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJlIGxvYWRlZCBp
biB2cnNlcnZlci5leGUgKi8KK2NsYXNzIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXIKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlci4gVGhpcyB3aWxsIGJl
IGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNhbGxlZC4KKyAgICAgICAqIElm
IEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5pdEVycm9yX05vbmUgdGhlIGRy
aXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KKyAgICAgICAqCisgICAgICAgKiBwRHJpdmVySG9z
dCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBiZSBhIHBvaW50ZXIgdG8gYSBJ
U2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKKyAgICAgICAqCisgICAgICAgKiBwY2hVc2VyRHJp
dmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGRpcmVjdG9yeSB3aGVyZSB0
aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCisgICAgICAgKiAgICAgICBjb25maWcgZmlsZXMu
CisgICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhl
IHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmlydHVh
bCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAqcERyaXZlckNvbnRleHQgKSA9
IDA7CisKKyAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIgcmlnaHQgYmVmb3JlIGl0IGlz
IHVubG9hZGVkICovCisgICAgICAgdmlydHVhbCB2b2lkIENsZWFudXAoKSA9IDA7CisKKyAgICAg
ICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2
ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9IDA7CisKKyAgICAgICAvKiog
QWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRoZSBtYWluIGxvb3Agb2YgdGhl
IHNlcnZlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJhbWUoKSA9IDA7CisKKworICAg
ICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIC8vCisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkcml2ZXIgd2Fu
dHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBTaG91bGRC
bG9ja1N0YW5kYnlNb2RlKCkgPSAwOworCisgICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0
ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBzd2l0Y2ggaXRz
ZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKKyAgICAgICAqIHN0YXRlIGl0IGhh
cy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOworCisgICAgICAg
LyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBTdGFuZGJ5IG1vZGUuIFRoZSBk
cml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bworICAgICAgIGZ1bGwgb3BlcmF0aW9u
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnkoKSA9IDA7CisKK307CisKKwor
c3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJfVmVyc2lvbiA9
ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7CisKKworCisKKy8qKiBUaGlzIGlu
dGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJlIGxv
YWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KK2NsYXNzIElWUldhdGNoZG9nUHJvdmlkZXIKK3sKK3B1
YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlciBpbiB3YXRjaGRvZyBtb2Rl
LiAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZlckNvbnRleHQg
KnBEcml2ZXJDb250ZXh0ICkgPSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCB0aGUgZHJpdmVy
IHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVh
bnVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9nUHJvdmlkZXJf
VmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7CisKK30KKy8vIGl2cnByb3BlcnRp
ZXMuaAorI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICBlbnVt
IEVQcm9wZXJ0eVdyaXRlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAgICAgUHJvcGVydHlXcml0
ZV9TZXQgPSAwLAorICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRlX0VyYXNlID0gMSwKKyAgICAg
ICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKKyAgICAgICB9OworCisgICAgICAg
c3RydWN0IFByb3BlcnR5V3JpdGVfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAgICBFUHJvcGVydHlXcml0ZVR5cGUgd3Jp
dGVUeXBlOworICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZVNldEVycm9yOwor
ICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKKyAgICAgICAgICAgICAgdWludDMyX3QgdW5C
dWZmZXJTaXplOworICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAgICAg
ICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKKyAgICAgICB9OworCisgICAg
ICAgc3RydWN0IFByb3BlcnR5UmVhZF90CisgICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3A7CisgICAgICAgICAgICAgIHZvaWQgKnB2QnVmZmVyOworICAg
ICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7CisgICAgICAgICAgICAgIFByb3BlcnR5
VHlwZVRhZ190IHVuVGFnOworICAgICAgICAgICAgICB1aW50MzJfdCB1blJlcXVpcmVkQnVmZmVy
U2l6ZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKKyAgICAg
ICB9OworCisKK2NsYXNzIElWUlByb3BlcnRpZXMKK3sKK3B1YmxpYzoKKworICAgICAgIC8qKiBS
ZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlSZWFk
QmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCisgICAgICAgdmlydHVhbCBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2goIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVhZF90ICpwQmF0Y2gsIHVpbnQz
Ml90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIFdyaXRlcyBhIHNldCBv
ZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlXcml0ZUJhdGNoX3Qgc3Ry
dWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLworICAgICAgIHZpcnR1YWwgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1
bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0Y2gsIHVpbnQzMl90IHVuQmF0
Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgYSBzdHJpbmcgdGhhdCBj
b3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZXJyb3IuIFRoZSBzdHJpbmcg
d2lsbCBiZSB0aGUgbmFtZQorICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUgZm9yIGFs
bCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UHJv
cEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUgZ2l2ZW4gYSB0cmFja2VkIGRl
dmljZSBpbmRleCAqLworICAgICAgIHZpcnR1YWwgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBU
cmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tlZERldmljZUluZGV4X3QgbkRl
dmljZSApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJQcm9wZXJ0
aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOworCitjbGFzcyBDVlJQcm9wZXJ0eUhl
bHBlcnMKK3sKK3B1YmxpYzoKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMoIElWUlByb3BlcnRp
ZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMgKSB7fQorCisg
ICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXgg
aXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBlIGRvZXMgbm90IG1hdGNoLAor
ICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KKyAgICAgICBib29s
IEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
KnBFcnJvciA9IDBMICk7CisgICAgICAgZmxvYXQgR2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgaW50
MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciAqcEVycm9yID0gMEwgKTsKKyAgICAgICB1aW50NjRfdCBHZXRVaW50NjRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gSWYgdGhlIGRldmlj
ZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBl
IHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1
cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0
aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiBTdHJpbmdz
IHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUg
Y2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRQcm9wZXJ0eSggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6
ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJy
b3IgPSAwTCApOworCisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0
cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lz
ZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3Nhcnkg
dG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxs
LiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0
cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRTdHJpbmdQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQz
Ml90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOwor
CisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmluZy4g
SWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBh
IHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIGFuIGVtcHR5
IHN0cmluZy4gKi8KKyAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJpbmdQcm9wZXJ0eSggdnI6OlBy
b3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZyOjpFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICk7CisKKyAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3
aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVy
dHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldEJv
b2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApOworICAgICAgIEVU
cmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZs
b2F0IGZOZXdWYWx1ZSApOworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRJbnQzMlBy
b3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJh
Y2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICk7CisgICAgICAgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHVp
bnQ2NF90IHVsTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEgc3RyaW5nIHByb3BlcnR5
LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVlbnQgY2FsbCB0
byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KKyAgICAgICBFVHJhY2tlZFBy
b3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY29uc3QgY2hh
ciAqcGNoTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEgc2luZ2xlIHR5cGVkIHByb3Bl
cnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVlbnQgY2Fs
bCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KKyAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZOZXdW
YWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnICk7
CisKKyAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5
LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMg
dG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRQ
cm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxl
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJy
b3IgKTsKKworICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9yIGVycm9yIHNldCBmb3IgdGhl
IHByb3BlcnR5LiAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBFcmFzZVByb3BlcnR5
KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AgKTsKKworICAgICAgIC8qIFR1cm5zIGEgZGV2aWNlIGluZGV4IGlu
dG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLworICAgICAgIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRyYWNrZWREZXZp
Y2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0aWVzLT5UcmFja2VkRGV2aWNl
VG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQorCitwcml2YXRlOgorICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgVCBHZXRQcm9wZXJ0eUhlbHBlciggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVsdCwgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7CisKKyAgICAgICBJVlJQcm9wZXJ0aWVzICptX3BQcm9w
ZXJ0aWVzOworfTsKKworCitpbmxpbmUgdWludDMyX3QgQ1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIs
IHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIFByb3BlcnR5UmVhZF90IGJhdGNo
OworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJhdGNoLnB2QnVmZmVyID0gcHZC
dWZmZXI7CisgICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5CdWZmZXJTaXplOworCisgICAg
ICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAm
YmF0Y2gsIDEgKTsKKworICAgICAgIGlmICggcEVycm9yICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwdW5U
YWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgKnB1blRhZyA9IGJhdGNoLnVuVGFnOworICAg
ICAgIH0KKworICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVkQnVmZmVyU2l6ZTsKK30KKwor
CisvKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJl
IHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4g
YW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5
SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZOZXdWYWx1ZSwg
dWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnICkKK3sKKyAg
ICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7CisgICAgICAgYmF0Y2gud3JpdGVUeXBlID0gUHJv
cGVydHlXcml0ZV9TZXQ7CisgICAgICAgYmF0Y2gucHJvcCA9IHByb3A7CisgICAgICAgYmF0Y2gu
cHZCdWZmZXIgPSBwdk5ld1ZhbHVlOworICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6ZSA9IHVuTmV3
VmFsdWVTaXplOworICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7CisKKyAgICAgICBtX3BQcm9w
ZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAmYmF0Y2gsIDEg
KTsKKworICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Cit9CisKKworLyoqIFJldHVybnMgYSBz
dHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBw
cm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyogcmV0dXJu
IDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRl
cyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisq
IG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191bk1heFByb3Bl
cnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLworaW5saW5lIHVpbnQzMl90IENWUlByb3BlcnR5
SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVy
dHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAg
ICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7CisgICAgICAgdWludDMyX3QgdW5SZXF1
aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBjaFZhbHVl
LCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7CisgICAgICAgaWYgKCB1blRhZyAhPSBr
X3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisg
ICAgICAgeworICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGU7
CisgICAgICAgfQorCisgICAgICAgaWYgKCBwRXJyb3IgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgKnBFcnJvciA9IGVycm9yOworICAgICAgIH0KKworICAgICAgIGlmICggZXJyb3IgIT0gVHJh
Y2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIHBjaFZhbHVl
ICYmIHVuQnVmZmVyU2l6ZSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICpwY2hWYWx1ZSA9ICdcMCc7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICBy
ZXR1cm4gdW5SZXF1aXJlZFNpemU7Cit9CisKKworLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVy
dHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3Ig
dGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorKiBy
ZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLworaW5saW5lIHN0ZDo6c3RyaW5nIENWUlByb3BlcnR5
SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2cjo6RVRyYWNr
ZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKK3sKKyAgICAgICBjaGFyIGJ1ZlsxMDI0XTsKKyAg
ICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKKyAgICAgICB1aW50MzJfdCB1blJl
cXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFpbmVyLCBwcm9wLCBi
dWYsIHNpemVvZihidWYpLCAmZXJyICk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVzdWx0Owor
CisgICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAg
ICAgICAgICAgICBzUmVzdWx0ID0gYnVmOworICAgICAgIH0KKyAgICAgICBlbHNlIGlmICggZXJy
ID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRCdWZmZXJMZW5dOworICAgICAg
ICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFp
bmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJMZW4sICZlcnIgKTsKKyAgICAg
ICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKKyAgICAgICAgICAgICAgZGVsZXRlW10gcGNo
QnVmZmVyOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgeworICAg
ICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc1Jl
c3VsdDsKK30KKworCisvKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3
aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVy
dHkgaW4gYW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlBy
b3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY29uc3Qg
Y2hhciAqcGNoTmV3VmFsdWUgKQoreworICAgICAgIGlmICggIXBjaE5ld1ZhbHVlICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb247CisKKyAgICAgICAv
LyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5IG9uIHN0cmluZy5oCisgICAg
ICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOworICAgICAgIHdoaWxlICggKnBj
aEN1cnIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGNoQ3VycisrOworICAgICAgIH0KKwor
ICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICh2b2lk
ICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBjaE5ld1ZhbHVlKSArIDEsIGtf
dW5TdHJpbmdQcm9wZXJ0eVRhZyApOworfQorCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Citpbmxp
bmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVscGVyKCBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJEZWZhdWx0LCBQcm9wZXJ0eVR5
cGVUYWdfdCB1blR5cGVUYWcgKQoreworICAgICAgIFQgYlZhbHVlOworICAgICAgIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5SZWFkVGFn
OworICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmJWYWx1ZSwg
c2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciApOworICAgICAgIGlmICggdW5S
ZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisg
ICAgICAgeworICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBl
OworICAgICAgIH07CisKKyAgICAgICBpZiAoIHBFcnJvciApCisgICAgICAgICAgICAgICpwRXJy
b3IgPSBlRXJyb3I7CisgICAgICAgaWYgKCBlRXJyb3IgIT0gVHJhY2tlZFByb3BfU3VjY2VzcyAp
CisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1bHQ7CisgICAgICAgfQorICAg
ICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBiVmFsdWU7CisgICAgICAg
fQorfQorCisKK2lubGluZSBib29sIENWUlByb3BlcnR5SGVscGVyczo6R2V0Qm9vbFByb3BlcnR5
KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAg
ICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVsQ29udGFpbmVySGFuZGxlLCBw
cm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Cit9CisKKworaW5saW5l
IGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgcmV0dXJuIEdl
dFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwg
MC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUgaW50MzJfdCBDVlJQcm9w
ZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBl
cjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwgMCwga191bkludDMy
UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIHVpbnQ2NF90IENWUlByb3BlcnR5SGVscGVyczo6
R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJI
YW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
ICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjx1aW50NjRfdD4o
IHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5VaW50NjRQcm9wZXJ0eVRh
ZyApOworfQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVy
czo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJvb2wgYk5ld1ZhbHVlICkKK3sK
KyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmYk5l
d1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Cit9CisK
K2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9h
dFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApCit7CisgICAgICAg
cmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmZOZXdWYWx1ZSwg
c2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5l
IEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVy
dHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUgKQoreworICAgICAgIHJldHVy
biBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZuTmV3VmFsdWUsIHNpemVv
Ziggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Cit9CisKK2lubGluZSBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRVaW50NjRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkKK3sKKyAgICAgICByZXR1cm4g
U2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmdWxOZXdWYWx1ZSwgc2l6ZW9m
KCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyApOworfQorCisvKiogU2V0cyB0
aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUg
cmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAq
LworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldFBy
b3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJv
ciApCit7CisgICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOworICAgICAgIGJhdGNoLndyaXRl
VHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7CisgICAgICAgYmF0Y2gucHJvcCA9IHByb3A7
CisgICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOworCisgICAgICAgbV9wUHJvcGVydGll
cy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNoLCAxICk7CisK
KyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworfQorCisvKiogQ2xlYXJzIGFueSB2YWx1ZSBv
ciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KK2lubGluZSBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3Ag
KQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKKyAgICAgICBiYXRjaC53cml0ZVR5
cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworCisg
ICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRs
ZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworCit9CisKK30K
KworCisvLyBpdnJkcml2ZXJsb2cuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElWUkRyaXZl
ckxvZworeworcHVibGljOgorICAgICAgIC8qKiBXcml0ZXMgYSBsb2cgbWVzc2FnZSB0byB0aGUg
bG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUgKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkgPSAwOworfTsKKworCitzdGF0
aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAiSVZSRHJpdmVyTG9nXzAwMSI7
CisKK30KKy8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNz
IElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRyYWNrZWREZXZpY2VEcml2ZXJJ
bmZvX3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJv
dmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkgCisqIHRoZSBz
eXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhlc2UgY2hhbmdl
cyBtdXN0CisqIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mgb2YgdGhlIGRl
dmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFuZW50bHkgYXNzb2NpYXRlZCB3
aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUlNlcnZlckRyaXZlckhvc3QKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEgdHJhY2tlZCBk
ZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlCisgICAg
ICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0aGUgZGV2aWNlLiBJZiBpdCBy
ZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgorICAgICAgICogaGFzIG9jY3VycmVkIGFu
ZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hEZXZpY2VTZXJpYWxOdW1iZXIs
IEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJhY2tlZERldmljZVNlcnZlckRy
aXZlciAqcERyaXZlciApID0gMDsKKworICAgICAgIC8qKiBOb3RpZmllcyB0aGUgc2VydmVyIHRo
YXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBkYXRlZCAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVpbnQzMl90IHVuV2hpY2hEZXZp
Y2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQzMl90IHVuUG9zZVN0cnVjdFNp
emUgKSA9IDA7CisKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IHZzeW5jIGhh
cyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQgdG8gdGhlIGRldmljZS4gVGhp
cyBpcworICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNlcyBvZiB0aGUgSE1EIGNsYXNz
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBkb3VibGUgdnN5bmNUaW1lT2Zm
c2V0U2Vjb25kcyApID0gMDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2VydmVyIHRoYXQg
dGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2
aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1
dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlm
aWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3NlZCggdWludDMyX3QgdW5XaGlj
aERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkg
PSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdh
cyBwcmVzc2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VCdXR0b25Ub3Vj
aGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJs
ZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZl
ciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBU
cmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJC
dXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAgICAg
ICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJvbGxlciBheGlzIGNoYW5nZWQg
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4aXNVcGRhdGVkKCB1aW50MzJf
dCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywgY29uc3QgVlJDb250cm9sbGVy
QXhpc190ICYgYXhpc1N0YXRlICkgPSAwOworCisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBzZXJ2
ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3BlY2lmaWVkIGRldmljZSAgKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3RhdGUoIHVpbnQzMl90IHVuV2hp
Y2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJlZCApID0gMDsKKworICAgICAg
IC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJFdmVudF9WZW5kb3JTcGVjaWZp
Y19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVudCggdWludDMyX3QgdW5XaGlj
aERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNvbnN0IFZSRXZlbnRfRGF0YV90
ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgSXNFeGl0aW5nKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMg
dGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRoZXJlIGlzIG9u
ZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cworICAgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBm
YWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2
ZW50X3Qgc3RydWN0ICovCisgICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZlbnQoIFZSRXZl
bnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKK307CisKK3N0YXRpYyBj
b25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24gPSAiSVZSU2VydmVyRHJpdmVy
SG9zdF8wMDQiOworCit9CisvLyBpdnJoaWRkZW5hcmVhLmgKK25hbWVzcGFjZSB2cgoreworCitj
bGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycworeworcHVibGljOgorICAgICAgIENWUkhpZGRlbkFy
ZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcygg
cFByb3BlcnRpZXMgKSB7fQorCisgICAgICAgLyoqIFN0b3JlcyBhIGhpZGRlbiBhcmVhIG1lc2gg
aW4gYSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRIaWRkZW5B
cmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRWZWN0b3IyX3Qg
KnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKKworICAgICAgIC8qKiByZXRyaWV2ZXMg
YSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0dXJucyB0aGUgdmVydCBjb3Vu
dCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLworICAgICAgIHVpbnQzMl90IEdldEhpZGRl
bkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEhtZFZlY3RvcjJf
dCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpw
ZUVycm9yICk7CisKK3ByaXZhdGU6CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBHZXRQ
cm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERldmljZVByb3BlcnR5KShQcm9w
X0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50KXR5cGUgKiAyKSArIChpbnQp
ZUV5ZSk7CisgICAgICAgfQorCisgICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJvcGVydGllczsK
K307CisKKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJIaWRkZW5BcmVhSGVscGVy
czo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwg
SG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICkKK3sKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVFeWUsIHR5cGUg
KTsKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFByb3BlcnRpZXMg
KTsKKyAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVydHkoIHByb3BIZWxwZXJzLlRy
YWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJhY2tlZERldmljZUluZGV4X0ht
ZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90ICkgKiB1blZlcnRDb3VudCwg
a191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOworfQorCisKK2lubGluZSB1aW50MzJfdCBDVlJI
aWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVh
TWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQoreworICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5ZSwgdHlwZSApOworICAgICAg
IENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJvcGVydGllcyApOworICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7CisgICAgICAgUHJvcGVydHlUeXBlVGFn
X3QgdW5UYWc7CisgICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRlZCA9IHByb3BIZWxwZXJzLkdl
dFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcigg
a191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXplb2YoIEhtZFZl
Y3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJyb3IgKTsKKyAgICAgICBpZiAo
IHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVuVGFnICE9IGtfdW5IaWRkZW5B
cmVhUHJvcGVydHlUYWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHJvcEVycm9yID0gVHJh
Y2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKKyAgICAgICAgICAgICAgdW5CeXRlc05lZWRlZCA9IDA7
CisgICAgICAgfQorCisgICAgICAgaWYgKCBwZUVycm9yICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgICpwZUVycm9yID0gcHJvcEVycm9yOworICAgICAgIH0KKworICAgICAgIHJldHVybiB1bkJ5
dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKK30KKworfQorLy8gaXZyd2F0Y2hk
b2dob3N0LmgKK25hbWVzcGFjZSB2cgoreworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJvdmlk
ZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBtYWtlIGV2ZXJ5dGhpbmcgd2Fr
ZSB1cCAqLworY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Cit7CitwdWJsaWM6CisgICAgICAgLyoqIENs
aWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNhbGwgdGhpcyB3aGVuIHRoZXkg
aGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRoYXQgc2hvdWxkCisgICAgICAg
KiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCisgICAgICAgdmlydHVhbCB2b2lkIFdhdGNoZG9n
V2FrZVVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9nSG9zdF9W
ZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOworCit9OworCisKKworCisKKworCituYW1l
c3BhY2UgdnIKK3sKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfSW50ZXJmYWNl
VmVyc2lvbnNbXSA9CisgICAgICAgeworICAgICAgICAgICAgICBJVlJTZXR0aW5nc19WZXJzaW9u
LAorICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJzaW9uLAorICAg
ICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElW
UkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSQ29u
dHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAorICAgICAgICAgICAgICBJVlJDYW1lcmFDb21wb25l
bnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVNlcnZlclRyYWNrZWREZXZpY2VQcm92aWRlcl9W
ZXJzaW9uLAorICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNpb24sCisgICAg
ICAgICAgICAgIG51bGxwdHIKKyAgICAgICB9OworCisgICAgICAgaW5saW5lIElWUkRyaXZlckNv
bnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RhdGlj
IElWUkRyaXZlckNvbnRleHQgKnBIb3N0OworICAgICAgICAgICAgICByZXR1cm4gcEhvc3Q7Cisg
ICAgICAgfQorCisgICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNvbnRleHQKKyAgICAgICB7Cisg
ICAgICAgcHVibGljOgorICAgICAgICAgICAgICBDT3BlblZSRHJpdmVyQ29udGV4dCgpIDogbV9w
cm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhlbHBlcnMobnVsbHB0cikgeyBD
bGVhcigpOyB9CisgICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsKKworICAgICAgICAgICAgICBF
VlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgSW5p
dFdhdGNoZG9nKCk7CisKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3MoKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSU2V0dGluZ3Mg
PT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdl
bmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRpbmdz
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSUHJvcGVydGllcyAqVlJQcm9w
ZXJ0aWVzUmF3KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBt
X3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZSUHJvcGVydGllcyAqKVZSRHJp
dmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQcm9wZXJ0aWVzX1ZlcnNpb24s
ICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5SGVscGVy
cyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENWUkhpZGRlbkFyZWFIZWxwZXJz
KCBtX3BWUlByb3BlcnRpZXMgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVydGllcygpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGllc1JhdygpOworICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUkhpZGRlbkFyZWEoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNSYXcoKTsKKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgKlZSU2VydmVyRHJp
dmVySG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9w
VlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gKElWUlNlcnZlckRy
aXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2Vy
dmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OworICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICpWUldhdGNoZG9n
SG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJX
YXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJXYXRjaGRvZ0hvc3QgKilWUkRy
aXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSV2F0Y2hkb2dIb3N0X1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09IG51bGxwdHIgKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJv
ciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2ZXJMb2cgPSAo
SVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElW
UkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJMb2c7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9DQUxMVFlQRSBWUkRyaXZlckhh
bmRsZSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBWUkRy
aXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgIHByaXZhdGU6CisgICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAgICAgICAgICAg
ICAgKm1fcFZSU2V0dGluZ3M7CisgICAgICAgICAgICAgIElWUlByb3BlcnRpZXMgICAgICAgICAg
ICAgICptX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIENWUlByb3BlcnR5SGVscGVycyAg
ICAgICBtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAgQ1ZSSGlkZGVuQXJlYUhlbHBl
cnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAgICAgICAgICAgSVZSU2VydmVyRHJp
dmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OworICAgICAgICAgICAgICBJVlJX
YXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAgICAg
ICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2ZXJMb2c7CisgICAgICAgfTsK
KworICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAmT3BlblZSSW50ZXJuYWxfTW9k
dWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCisgICAgICAgeworICAgICAgICAgICAgICBzdGF0aWMg
dm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQgKSAvIHNpemVvZiggdm9pZCAq
ICldOworICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJpdmVyQ29udGV4dCAqKWN0eDsg
Ly8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAgICAgIH0KKworICAgICAgIGlubGlu
ZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJuIE9wZW5WUklu
dGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNldHRpbmdzKCk7IH0KKyAgICAg
ICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzUmF3KCkgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJvcGVy
dGllc1JhdygpOyB9CisgICAgICAgaW5saW5lIENWUlByb3BlcnR5SGVscGVycyAqVlJfQ0FMTFRZ
UEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJp
dmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9CisgICAgICAgaW5saW5lIENWUkhpZGRlbkFy
ZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7IHJldHVybiBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRkZW5BcmVhKCk7IH0KKyAgICAg
ICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRyaXZlckxvZygpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUkRyaXZlckxvZygp
OyB9CisgICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3QgKlZSX0NBTExUWVBFIFZSU2Vy
dmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZl
ckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQorICAgICAgIGlubGluZSBJVlJXYXRj
aGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkgeyByZXR1cm4gT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0Y2hkb2dIb3N0KCk7IH0KKyAg
ICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJIYW5kbGUoKSB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJEcml2
ZXJIYW5kbGUoKTsgfQorICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJEcml2ZXJDb250ZXh0OjpD
bGVhcigpCisgICAgICAgeworICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
bV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJMb2cgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IG51bGxw
dHI7CisgICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVy
Q29udGV4dDo6SW5pdFNlcnZlcigpCisgICAgICAgeworICAgICAgICAgICAgICBDbGVhcigpOwor
ICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3QoKQorICAgICAgICAgICAgICAg
ICAgICAgfHwgIVZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZSUHJvcGVy
dGllcygpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSApCisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsK
KyAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7CisgICAgICAgfQorCisgICAg
ICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5pdFdhdGNoZG9n
KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENsZWFyKCk7CisgICAgICAgICAgICAgIGlmICgg
IVZSV2F0Y2hkb2dIb3N0KCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNldHRpbmdzKCkK
KyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygpICkKKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOworICAgICAg
ICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKKyAgICAgICB9CisKKyAgICAgICBpbmxp
bmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBJVlJEcml2ZXJDb250ZXh0
ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAgICAgICBWUkRyaXZlckNvbnRleHQoKSA9
IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2Vy
dmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKKyAgICAgICB9CisKKyAgICAgICBpbmxp
bmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRleHQoIElWUkRyaXZlckNvbnRl
eHQgKnBDb250ZXh0ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSRHJpdmVyQ29udGV4dCgp
ID0gcENvbnRleHQ7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVT
ZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7CisgICAgICAgfQorCisgICAgICAg
aW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOworICAgICAgICAgICAgICBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIoKTsKKyAgICAgICB9CisKKyAg
ICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05URVhUKCBwQ29udGV4dCApIFwK
KyAgICAgICAgICAgICAgICAgICAgIHsgXAorICAgICAgICAgICAgICAgICAgICAgdnI6OkVWUklu
aXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNvbnRleHQoIHBDb250ZXh0ICk7
IFwKKyAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0gdnI6OlZSSW5pdEVycm9yX05v
bmUgKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVFcnJvcjsgXAorICAg
ICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgI2RlZmluZSBWUl9DTEVBTlVQX1NFUlZFUl9E
UklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNsZWFudXBEcml2ZXJDb250ZXh0
KCk7CisKKyAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0dfRFJJVkVSX0NPTlRFWFQoIHBD
b250ZXh0ICkgXAorICAgICAgICAgICAgICAgICAgICAgeyBcCisgICAgICAgICAgICAgICAgICAg
ICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0Y2hkb2dEcml2ZXJDb250ZXh0
KCBwQ29udGV4dCApOyBcCisgICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9yICE9IHZyOjpW
UkluaXRFcnJvcl9Ob25lICkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBl
RXJyb3I7IFwKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICNkZWZpbmUgVlJfQ0xF
QU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNsZWFu
dXBEcml2ZXJDb250ZXh0KCk7Cit9CisvLyBFbmQKKworI2VuZGlmIC8vIF9PUEVOVlJfRFJJVkVS
X0FQSQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9wYXRjaGVzL2Nt
YWtlLWJ1aWxkLnBhdGNoIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2Ut
YnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg5NjNjMjBlYTczMGU5ZjY4Yjc5ZTNiOWQ2ZmFhOTM4
MzRkNTk1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9wYXRj
aGVzL2NtYWtlLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsOTQgQEAKK2RpZmYgLS1naXQgYS9DTWFr
ZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA5NGRlM2NlLi42ZGVjZWRkIDEwMDY0
NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMSwxNCAr
MSw4IEBACisgIyBTZXQgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiBvZiBDTWFrZSBmb3Ig
dGhpcyBwcm9qZWN0LgorIGNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAyLjgpCisgCist
IyBTZXQgcHJvamVjdCBuYW1lLgorLXByb2plY3QoT3BlblZSU0RLKQorLQorICMgU2V0dXAgc29t
ZSBvcHRpb25zLgorIG9wdGlvbihCVUlMRF9TSEFSRUQgIkJ1aWxkcyB0aGUgbGlicmFyeSBhcyBz
aGFyZWQgbGlicmFyeSIgT0ZGKQorLW9wdGlvbihCVUlMRF9GUkFNRVdPUksgIkJ1aWxkcyB0aGUg
bGlicmFyeSBhcyBhbiBhcHBsZSBGcmFtZXdvcmsiIE9GRikKKy1vcHRpb24oQlVJTERfVU5JVkVS
U0FMICJCdWlsZHMgdGhlIHNoYXJlZCBvciBmcmFtZXdvcmsgYXMgYSB1bml2ZXJzYWwgKGZhdCwg
MzItICYgNjQtYml0KSBiaW5hcnkiIE9OKQorLW9wdGlvbihCVUlMRF9PU1hfSTM4NiAiQnVpbGRz
IHRoZSBzaGFyZWQgb3IgZnJhbWV3b3JrIGFzIGEgMzItYml0IGJpbmFyeSwgZXZlbiBvbiBhIDY0
LWJpdCBwbGF0Zm9ybSIgT0ZGKQorIG9wdGlvbihVU0VfTElCQ1hYICJVc2VzIGxpYmMrKyBpbnN0
ZWFkIG9mIGxpYnN0ZGMrKyIgT04pCisgb3B0aW9uKFVTRV9DVVNUT01fTElCQ1hYICJVc2VzIGEg
Y3VzdG9tIGxpYmMrKyIgT0ZGKQorIAorQEAgLTM3LDIxICszMSw5IEBAIGVsc2VpZihBUFBMRSkK
KyAgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qRGFyd2luLioiIE9SIENNQUtFX1NZ
U1RFTV9OQU1FIE1BVENIRVMgIi4qTWFjT1MuKiIpCisgICAgIHNldChQTEFURk9STV9OQU1FICJv
c3giKQorICAgICBhZGRfZGVmaW5pdGlvbnMoLURPU1ggLURQT1NJWCkKKy0gICAgaWYoQlVJTERf
VU5JVkVSU0FMKQorLSAgICAgIHNldChDTUFLRV9PU1hfQVJDSElURUNUVVJFUyAiaTM4Njt4ODZf
NjQiKQorLSAgICBlbmRpZigpCistICAgIGlmKEJVSUxEX09TWF9JMzg2KQorLSAgICAgIHNldChQ
Uk9DRVNTT1JfQVJDSCAiMzIiKQorLSAgICAgIHNldChDTUFLRV9PU1hfQVJDSElURUNUVVJFUyAi
aTM4NiIpCistICAgIGVuZGlmKCkKKyAgIGVuZGlmKCkKKyBlbmRpZigpCisgCistIyBTZXQgb3V0
cHV0IGZvbGRlciBmb3Igc3RhdGljIGFuZCBzaGFyZWQgbGlicmFyaWVzCistc2V0KENNQUtFX0xJ
QlJBUllfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtFX1NPVVJDRV9ESVJ9L2Jpbi8ke1BMQVRGT1JN
X05BTUV9JHtQUk9DRVNTT1JfQVJDSH0pCistc2V0KENNQUtFX0FSQ0hJVkVfT1VUUFVUX0RJUkVD
VE9SWSAke0NNQUtFX1NPVVJDRV9ESVJ9L2Jpbi8ke1BMQVRGT1JNX05BTUV9JHtQUk9DRVNTT1Jf
QVJDSH0pCistc2V0KENNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtFX1NPVVJD
RV9ESVJ9L2Jpbi8ke1BMQVRGT1JNX05BTUV9JHtQUk9DRVNTT1JfQVJDSH0pCistCisgIyBFbmFi
bGUgc29tZSBwcm9wZXJ0aWVzLgorIGlmKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNDIE9SIENNQUtF
X0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xhbmciKQorICAgICAgICAjIEVuYWJsZSBjKysxMSBh
bmQgaGlkZSBzeW1ib2xzIHdoaWNoIHNob3VsZG4ndCBiZSB2aXNpYmxlCitkaWZmIC0tZ2l0IGEv
c3JjL0NNYWtlTGlzdHMudHh0IGIvc3JjL0NNYWtlTGlzdHMudHh0CitpbmRleCA1ODk1NGQ2Li44
YjUzN2FmIDEwMDY0NAorLS0tIGEvc3JjL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvQ01ha2VM
aXN0cy50eHQKK0BAIC0zLDYgKzMsOSBAQCBwcm9qZWN0KG9wZW52cl9hcGkpCisgCisgc2V0KCBM
SUJOQU1FICJvcGVudnJfYXBpIiApCisgCisrc2V0KEVYQ0VQVElPTl9GTEFHUyAiLWZleGNlcHRp
b25zIikKKythZGRfZGVmaW5pdGlvbnMoJHtFWENFUFRJT05fRkxBR1N9KQorKworICMgU2V0IHNv
bWUgcHJvcGVyaWVzIGZvciBzcGVjaWZpYyBmaWxlcy4KKyBpZihBUFBMRSkKKyAgIHNldChDTUFL
RV9NQUNPU1hfUlBBVEggMSkKK0BAIC0yMiw3ICsyNSw3IEBAIGVsc2VpZihXSU4zMikKKyBlbmRp
ZigpCisgCisgIyBBZGQgaW5jbHVkZSBmb2xkZXJzLgorLWluY2x1ZGVfZGlyZWN0b3JpZXMoJHtD
TUFLRV9TT1VSQ0VfRElSfS9zcmMgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzICR7Q01BS0Vf
U09VUkNFX0RJUn0vc3JjL3ZyY29tbW9uKQorK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtQUk9KRUNU
X1NPVVJDRV9ESVJ9Ly4uL3NyYyAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycyAke1BS
T0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjL3ZyY29tbW9uKQorIAorIGlmKFVTRV9DVVNUT01fTElC
Q1hYKQorICAgICAgICBsaW5rX2RpcmVjdG9yaWVzKAorQEAgLTY1LDIyICs2OCwyMiBAQCBlbHNl
aWYoQlVJTERfRlJBTUVXT1JLKQorICAgICAgICBzZXQoIExJQk5BTUUgIk9wZW5WUiIgKQorICAg
ICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKKyAgICAgICAgICAgICBTSEFSRUQgJHtTT1VS
Q0VfRklMRVN9CistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52
ci5oCistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGku
Y3MKKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5q
c29uCistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9jYXBp
LmgKKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2RyaXZl
ci5oCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZy
LmgKKysgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJf
YXBpLmNzCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3Bl
bnZyX2FwaS5qc29uCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRl
cnMvb3BlbnZyX2NhcGkuaAorKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9o
ZWFkZXJzL29wZW52cl9kcml2ZXIuaAorICAgICAgICApCisgICAgICAgIHNldF90YXJnZXRfcHJv
cGVydGllcyhPcGVuVlIgUFJPUEVSVElFUworICAgICAgICAgICAgICAgRlJBTUVXT1JLIFRSVUUK
KyAgICAgICAgICAgICAgIEZSQU1FV09SS19WRVJTSU9OIEEKKyAgICAgICAgICAgICAgIE1BQ09T
WF9GUkFNRVdPUktfSURFTlRJRklFUiBjb20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3Jr
CistICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtDTUFLRV9TT1VS
Q0VfRElSfS9zcmMvSW5mby5wbGlzdAorKyAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19J
TkZPX1BMSVNUICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMvSW5mby5wbGlzdAorICAgICAg
ICAgICAgICAgIyAiY3VycmVudCB2ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1P
IGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42CisgICAgICAgICAgICAg
ICAjICJjb21wYXRpYmlsaXR5IHZlcnNpb24iIGluIHNlbWFudGljIGZvcm1hdCBpbiBNYWNoLU8g
YmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgIFNPVkVSU0lPTiAxLjAuMAorLSAgICAgICAgICAg
ICAgUFVCTElDX0hFQURFUiAiJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52ci5oOyR7
Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmNzOyR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29w
ZW52cl9jYXBpLmg7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCIK
KysgICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9o
ZWFkZXJzL29wZW52ci5oOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9h
cGkuY3M7JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uOyR7
UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmg7JHtQUk9KRUNUX1NP
VVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIgorICAgICAgICAgICAgICAgTElO
S0VSX0xBTkdVQUdFIENYWAorICAgICAgICApCisgZWxzZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBlNjg5OGY5ZTNiZmFkMzZk
NzhlOTNmODZjMDM1OWEwNDYwM2UwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDk5IEBACisjIFByb2plY3Qg
bmFtZS4KK3Byb2plY3Qob3BlbnZyX2FwaSkKKworc2V0KCBMSUJOQU1FICJvcGVudnJfYXBpIiAp
CisKK3NldChFWENFUFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCithZGRfZGVmaW5pdGlvbnMo
JHtFWENFUFRJT05fRkxBR1N9KQorCisjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3BlY2lmaWMg
ZmlsZXMuCitpZihBUFBMRSkKKyAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQorICBpZihDTUFL
RV9TWVNURU1fTkFNRSBNQVRDSEVTICJEYXJ3aW4iKQorICAgIHNldF9zb3VyY2VfZmlsZXNfcHJv
cGVydGllcyh2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcCB2cmNvbW1vbi92cnBhdGhyZWdp
c3RyeV9wdWJsaWMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiLXggb2JqZWN0aXZlLWMr
KyIpCisgIGVuZGlmKCkKKyAgaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09SSykKKyAg
ICBmaW5kX2xpYnJhcnkoRk9VTkRBVElPTl9GUkFNRVdPUksgRm91bmRhdGlvbikKKyAgICBtYXJr
X2FzX2FkdmFuY2VkKEZPVU5EQVRJT05fRlJBTUVXT1JLKQorICAgIHNldChFWFRSQV9MSUJTICR7
RVhUUkFfTElCU30gJHtGT1VOREFUSU9OX0ZSQU1FV09SS30pCisgIGVuZGlmKEJVSUxEX1NIQVJF
RCBPUiBCVUlMRF9GUkFNRVdPUkspCitlbHNlaWYoV0lOMzIpCisgIGlmKENNQUtFX1NJWkVPRl9W
T0lEX1AgRVFVQUwgOCkKKyAgICBhZGRfZGVmaW5pdGlvbnMoIC1EV0lONjQgKQorICAgIHNldCgg
TElCTkFNRSAib3BlbnZyX2FwaTY0IiApCisgIGVuZGlmKCkKK2VuZGlmKCkKKworIyBBZGQgaW5j
bHVkZSBmb2xkZXJzLgoraW5jbHVkZV9kaXJlY3Rvcmllcygke1BST0pFQ1RfU09VUkNFX0RJUn0v
Li4vc3JjICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9zcmMvdnJjb21tb24pCisKK2lmKFVTRV9DVVNUT01fTElCQ1hYKQorICAgICAgIGxp
bmtfZGlyZWN0b3JpZXMoCisgICAgICAgICAgICAgICR7TElCQ1hYX0xJQl9ESVJ9CisgICAgICAg
KQorZW5kaWYoKQorCisjIFNldCB0aGUgc291cmNlIGdyb3VwIGFuZCBmaWxlcy4KK3NldChDT1JF
X0ZJTEVTCisgICAgICAgb3BlbnZyX2FwaV9wdWJsaWMuY3BwCisgICAgICAganNvbmNwcC5jcHAK
KykKK3NldChWUkNPTU1PTl9GSUxFUworICAgICAgIHZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5j
cHAKKyAgICAgICB2cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCisgICAgICAgdnJjb21t
b24vcGF0aHRvb2xzX3B1YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19w
dWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKKyAgICAgICB2
cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vc3RydG9v
bHNfcHVibGljLmNwcAorKQorCitzZXQoU09VUkNFX0ZJTEVTCisgICAgICAgJHtDT1JFX0ZJTEVT
fQorICAgICAgICR7VlJDT01NT05fRklMRVN9CispCisKK3NvdXJjZV9ncm91cCgiU3JjIiBGSUxF
UworICAgICAgICR7Q09SRV9GSUxFU30KKykKKworc291cmNlX2dyb3VwKCJWUkNvbW1vbiIgRklM
RVMKKyAgICAgICAke1ZSQ09NTU9OX0ZJTEVTfQorKQorCisjIEJ1aWxkIHRoZSBsaWJyYXJ5Lgor
aWYoQlVJTERfU0hBUkVEKQorICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFNRX0gU0hBUkVEICR7
U09VUkNFX0ZJTEVTfSkKK2Vsc2VpZihCVUlMRF9GUkFNRVdPUkspCisgICAgICAgc2V0KCBMSUJO
QU1FICJPcGVuVlIiICkKKyAgICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKKyAgICAgICAg
ICAgIFNIQVJFRCAke1NPVVJDRV9GSUxFU30KKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzL29wZW52ci5oCisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJ
Un0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmNzCisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNF
X0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKyAgICAgICAgICAgICR7UFJPSkVDVF9T
T1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmgKKyAgICAgICAgICAgICR7UFJPSkVD
VF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9kcml2ZXIuaAorICAgICAgICkKKyAgICAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoT3BlblZSIFBST1BFUlRJRVMKKyAgICAgICAgICAgICAg
RlJBTUVXT1JLIFRSVUUKKyAgICAgICAgICAgICAgRlJBTUVXT1JLX1ZFUlNJT04gQQorICAgICAg
ICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lERU5USUZJRVIgY29tLnZhbHZlc29mdHdhcmUuT3Bl
blZSLmZyYW1ld29yaworICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1Qg
JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy9JbmZvLnBsaXN0CisgICAgICAgICAgICAgICMg
ImN1cnJlbnQgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmls
ZQorICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42CisgICAgICAgICAgICAgICMgImNvbXBhdGli
aWxpdHkgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQor
ICAgICAgICAgICAgICBTT1ZFUlNJT04gMS4wLjAKKyAgICAgICAgICAgICAgUFVCTElDX0hFQURF
UiAiJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmg7JHtQUk9KRUNUX1NP
VVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jczske1BST0pFQ1RfU09VUkNFX0RJUn0v
Li4vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRl
cnMvb3BlbnZyX2NhcGkuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJf
ZHJpdmVyLmgiCisgICAgICAgICAgICAgIExJTktFUl9MQU5HVUFHRSBDWFgKKyAgICAgICApCitl
bHNlKCkKKyAgICAgICBhZGRfbGlicmFyeSgke0xJQk5BTUV9IFNUQVRJQyAke1NPVVJDRV9GSUxF
U30pCitlbmRpZigpCisKK2lmKFVTRV9DVVNUT01fTElCQ1hYKQorICAgICAgIHNldChFWFRSQV9M
SUJTICR7RVhUUkFfTElCU30gYysrIGMrK2FiaSkKK2VuZGlmKCkKKwordGFyZ2V0X2xpbmtfbGli
cmFyaWVzKCR7TElCTkFNRX0gJHtFWFRSQV9MSUJTfSkKKworaW5zdGFsbChUQVJHRVRTICR7TElC
TkFNRX0gREVTVElOQVRJT04gbGliKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9JbmZvLnBs
aXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE1ZTU2OTgwODdmMDkzOTE0NThiYjE5N2FkOGQ4MTdlZWRlYjgyNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0luZm8ucGxp
c3QKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi
Pz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIg
Imh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0
IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKyAgICAgICA8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwv
a2V5PgorICAgICAgIDxzdHJpbmc+Y29tLnZhbHZlc29mdHdhcmUuT3BlblZSLmZyYW1ld29yazwv
c3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4K
KyAgICAgICA8c3RyaW5nPjYuMDwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVOYW1lPC9r
ZXk+CisgICAgICAgPHN0cmluZz5PcGVuVlI8L3N0cmluZz4KKyAgICAgICA8a2V5PkNGQnVuZGxl
UGFja2FnZVR5cGU8L2tleT4KKyAgICAgICA8c3RyaW5nPkZNV0s8L3N0cmluZz4KKyAgICAgICA8
a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisgICAgICAgPHN0cmluZz4xLjA8
L3N0cmluZz4KKyAgICAgICA8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorICAgICAgIDxzdHJp
bmc+MS4wPC9zdHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy9SRUFETUUgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MjZjNThkYTc5ZmI5NGUwMmRjZmVjZDI2YTVlNTUyZDlhYTU4
YWMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9SRUFE
TUUKQEAgLTAsMCArMSwzOSBAQAorVGhpcyBpcyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBPcGVu
VlIgQVBJIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkgd2hpY2ggY29ubmVjdHMKK09wZW5WUiBhcHBs
aWNhdGlvbnMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUg
dmVyc2lvbgorb2YgdGhlIE9wZW5WUiBpbnRlcmZhY2UgdGhleSB3ZXJlIGNvbXBpbGVkIGFnYWlu
c3QuCisKK1RoZSBjbGllbnQgYmluZGluZyBsaWJyYXJ5IC0gb3BlbnZyX2FwaS5kbGwgb24gV2lu
ZG93cywgb3BlbnZyX2FwaS5zbyBvbgorTGludXgsIGFuZCBvcGVudnJfYXBpLmR5bGliIG9yIE9w
ZW5WUi5mcmFtZXdvcmsgb24gbWFjT1MgLSBrbm93cyBob3cgdG8gZmluZAorYW5kIHJlYWQgdGhl
IFN0ZWFtVlIgcnVudGltZSBpbnN0YWxsYXRpb24gaW5mb3JtYXRpb24gd2hpY2ggYWxsb3dzIGl0
IHRvCitmaW5kIGFuZCBkeW5hbWljYWxseSBjb25uZWN0IHRvIHRoZSBpbnN0YWxsZWQgcnVudGlt
ZS4gSW4gY29tYmluYXRpb24gd2l0aCB0aGUKK2ludGVyZmFjZSB2ZXJzaW9uIGlkZW50aWZpZXJz
IGZyb20gL2luY2x1ZGUvb3BlbnZyLmggd2hpY2ggYXJlIGJha2VkCitpbnRvIGFwcGxpY2F0aW9u
cyBhdCB0aGUgdGltZSB0aGV5IGFyZSBidWlsdCwgdGhlIE9wZW5WUiBBUEkgY2xpZW50CitiaW5k
aW5nIGxpYnJhcnkgY2FwdHVyZXMgYW5kIGNvbnZleXMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSB0
aGUgdmVyc2lvbgorb2YgdGhlIE9wZW5WUiBBUEkgaW50ZXJmYWNlIGJlaGF2aW9yIHRoYXQgdGhl
IGFwcGxpY2F0aW9uIGV4cGVjdHMuCisKK0FwcGxpY2F0aW9ucyBjYXJyeSB3aXRoIHRoZW0gYSBw
cml2YXRlL2xvY2FsIGNvcHkgb2YgdGhlIGNsaWVudCBiaW5kaW5nCitsaWJyYXJ5IHdoZW4gdGhl
eSBzaGlwLCBhbmQgdGhleSBzaG91bGQgaW5zdGFsbCBpdCBsb2NhbGx5IHRvIHRoZWlyCithcHBs
aWNhdGlvbi4gIEFwcGxpY2F0aW9ucyBzaG91bGQgbm90IGluc3RhbGwgdGhlIGNsaWVudCBiaW5k
aW5nIGxpYnJhcnkKK2dsb2JhbGx5IG9yIGF0dGVtcHQgdG8gbGluayB0byBhIGdsb2JhbGx5IGlu
c3RhbGxlZCBjbGllbnQgYmluZGluZyBsaWJyYXJ5LgorRG9pbmcgc28gbmVnYXRlcyBhdCBsZWFz
dCBwYXJ0IG9mIHRoZSBhYmlsaXR5IGZvciB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQordG8g
YWNjdXJhdGVseSByZWZsZWN0IHRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuVlIgQVBJIHRoYXQgdGhl
IGFwcGxpY2F0aW9uCit3YXMgYnVpbHQgYWdhaW5zdCwgYW5kIHNvIGhpbmRlcnMgY29tcGF0aWJp
bGl0eSBzdXBwb3J0IGluIHRoZSBmYWNlIG9mCitBUEkgY2hhbmdlcy4KKworTW9zdCBhcHBsaWNh
dGlvbnMgc2hvdWxkIHNpbXBseSBsaW5rIHRvIGFuZCByZWRpc3RyaWJ1dGUgd2l0aCB0aGVpciBh
cHBsaWNhdGlvbgordGhlIHByZS1idWlsdCBjbGllbnQgYmluZGluZyBsaWJyYXJ5IGZvdW5kIGlu
IHRoZSAvYmluIGRpcmVjdG9yeSBvZiB0aGlzCityZXBvc2l0b3J5LiBTb21lIHNtYWxsIG51bWJl
ciBvZiBhcHBsaWNhdGlvbnMgd2hpY2ggaGF2ZSBzcGVjaWZpYyByZXF1aXJlbWVudHMKK2Fyb3Vu
ZCByZWRpc3RyaWJ1dGluZyBvbmx5IGJpbmFyaWVzIHRoZXkgYnVpbGQgdGhlbXNlbHZlcyBzaG91
bGQgYnVpbGQKK3RoZSBjbGllbnQgbGlicmFyeSBmcm9tIHRoaXMgc291cmNlIGFuZCBlaXRoZXIg
c3RhdGljYWxseSBsaW5rIGl0IGludG8KK3RoZWlyIGFwcGxpY2F0aW9uIG9yIHJlZGlzdHJpYnV0
ZSB0aGUgYmluYXJ5IHRoZXkgYnVpbGQuCisKK1RoaXMgaXMgYSBjbWFrZSBwcm9qZWN0LCB0byBi
dWlsZCBpdCB1c2UgdGhlIHZlcnNpb24gb2YgY21ha2UgYXBwcm9wcmlhdGUKK2ZvciB5b3VyIHBs
YXRmb3JtLiBGb3IgZXhhbXBsZSwgdG8gYnVpbGQgb24gYSBQT1NJWCBzeXN0ZW0gc2ltcGx5IHBl
cmZvcm0KKworICBjZCBzcmM7IG1rZGlyIF9idWlsZDsgY2QgX2J1aWxkOyBjbWFrZSAuLjsgbWFr
ZQorCithbmQgeW91IHdpbGwgZW5kIHVwIHdpdGggdGhlIHN0YXRpYyBsaWJyYXJ5IC9zcmMvYmlu
LzxhcmNoPi9saWJvcGVudnJfYXBpLmEKKworVG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeSwgcGFz
cyAtREJVSUxEX1NIQVJFRD0xIHRvIGNtYWtlLgorVG8gYnVpbGQgYXMgYSBmcmFtZXdvcmsgb24g
YXBwbGUgcGxhdGZvcm1zLCBwYXNzIC1EQlVJTERfRlJBTUVXT1JLPTEgdG8gY21ha2UuCitUbyBz
ZWUgYSBjb21wbGV0ZSBsaXN0IG9mIGNvbmZpZ3VyYWJsZSBidWlsZCBvcHRpb25zLCB1c2UgYGNt
YWtlIC1MQUhgCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNs
aWVudGNvcmUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkxZmUzNjBlZTRhZDUyYzg3OTkwYzI1MTc0NmYwMWNiODliYmYwMDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNsaWVudGNv
cmUuaApAQCAtMCwwICsxLDM1IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9y
YXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgdnIKK3sKKwor
Y2xhc3MgSVZSQ2xpZW50Q29yZQoreworcHVibGljOgorICAgICAgIC8qKiBJbml0aWFsaXplcyB0
aGUgc3lzdGVtICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSW5pdCggdnI6OkVWUkFw
cGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cEluZm8g
KSA9IDA7CisKKyAgICAgICAvKiogY2xlYW5zIHVwIGV2ZXJ5dGhpbmcgaW4gdnJjbGllbnQuZGxs
IGFuZCBwcmVwYXJlcyB0aGUgRExMIHRvIGJlIHVubG9hZGVkICovCisgICAgICAgdmlydHVhbCB2
b2lkIENsZWFudXAoKSA9IDA7CisKKyAgICAgICAvKiogY2hlY2tzIHRvIHNlZSBpZiB0aGUgc3Bl
Y2lmaWVkIGludGVyZmFjZS92ZXJzaW9uIGlzIHN1cHBvcnRlZCBpbiB0aGlzIHZyY2xpZW50LmRs
bCAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIElzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uICkgPSAwOworCisgICAgICAgLyoqIFJl
dHJpZXZlcyBhbnkgaW50ZXJmYWNlIGZyb20gdnJjbGllbnQuZGxsICovCisgICAgICAgdmlydHVh
bCB2b2lkICpHZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hOYW1lQW5kVmVyc2lv
biwgRVZSSW5pdEVycm9yICpwZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBpZiBhbnkgZHJpdmVyIGhhcyBhbiBITUQgYXR0YWNoZWQuIENhbiBiZSBjYWxsZWQgb3V0c2lk
ZSBvZiBJbml0L0NsZWFudXAgKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQklzSG1kUHJlc2VudCgp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIEVuZ2xpc2ggZXJyb3Igc3RyaW5nIGZyb20g
aW5zaWRlIHZyY2xpZW50LmRsbCB3aGljaCBtaWdodCBiZSBuZXdlciB0aGFuIHRoZSBBUEkgRExM
ICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJy
b3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
YW4gZXJyb3Igc3ltYm9sIGZyb20gaW5zaWRlIHZyY2xpZW50LmRsbCB3aGljaCBtaWdodCBiZSBu
ZXdlciB0aGFuIHRoZSBBUEkgRExMICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRJ
REZvclZSSW5pdEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2xpZW50Q29yZV9WZXJzaW9uID0gIklWUkNsaWVu
dENvcmVfMDAzIjsKKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL2pzb24vanNvbi1mb3J3YXJkcy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9q
c29uL2pzb24tZm9yd2FyZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBjN2RlOTc2NGI0MjE4MmIwMTdmNzBl
ZTAwOTMxYmY2ZTQ5MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uL2pzb24tZm9yd2FyZHMuaApAQCAtMCwwICsxLDI4NCBAQAorLy8vIEpzb24t
Y3BwIGFtYWxnYXRlZCBmb3J3YXJkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICJqc29u
L2pzb24tZm9yd2FyZHMuaCIKKy8vLyBUaGlzIGhlYWRlciBwcm92aWRlcyBmb3J3YXJkIGRlY2xh
cmF0aW9uIGZvciBhbGwgSnNvbkNwcCB0eXBlcy4KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVn
aW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisv
KgorVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55
aW5nIGRvY3VtZW50YXRpb24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGljYXRpb25z
LCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgorCitUaGUg
YXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNvcHlyaWdo
dCBpbiBhbGwgCitqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1l
ci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50
byB0aGUgUHVibGljIERvbWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVj
b2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgorMjAxMCks
IHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVw
aWxsZXVyLCBhbmQgaXMKK3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vu
c2UgKHNlZSBiZWxvdykuCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIFB1Ymxp
YyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkgY2hvb3Nl
IHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIgdGhlIAor
Y29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVuZGVyIHRo
ZSB0ZXJtcyBvZiBkdWFsIAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRpb25zIGRl
c2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlzIGFib3V0
IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFuZCBpcwor
ZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2YgdGhlIE1J
VCBMaWNlbnNlIGZvbGxvd3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChjKSAyMDA3
LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24sIGluY2x1
ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCittb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMKK29mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv
ZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UworQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOCitBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sIE9VVCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyhFTkQgTElDRU5TRSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0aWJsZSB3
aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGluZyBvbmUg
YWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3IgbnVpc2Fu
Y2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZQor
YW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0IGJ5IGFj
Y2VwdGluZyB0aGUKK1B1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGljZW5zZSB5
b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworCisKKworCisjaWZuZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FURURfSF9JTkNM
VURFRAorIyBkZWZpbmUgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECisvLy8gSWYg
ZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZAorLy8v
IHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorI2RlZmluZSBKU09OX0lTX0FN
QUxHQU1BVElPTgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29w
eXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lm
bmRlZiBKU09OX0NPTkZJR19IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fQ09ORklHX0hfSU5DTFVE
RUQKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbGlicmFyeSBpcyBlbWJl
ZGRlZCBpbiBDcHBUTCBsaWJyYXJ5LgorLy8jIGRlZmluZSBKU09OX0lOX0NQUFRMIDEKKworLy8v
IElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbWF5IGxldmVyYWdlIENwcFRMIGxpYnJh
cnkKKy8vIyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0
ZXMgdGhhdCBjcHB0bCB2ZWN0b3IgYmFzZWQgbWFwIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YK
Ky8vLyBzdGQ6Om1hcAorLy8vIGFzIFZhbHVlIGNvbnRhaW5lci4KKy8vIyAgZGVmaW5lIEpTT05f
VVNFX0NQUFRMX1NNQUxMTUFQIDEKKworLy8gSWYgbm9uLXplcm8sIHRoZSBsaWJyYXJ5IHVzZXMg
ZXhjZXB0aW9ucyB0byByZXBvcnQgYmFkIGlucHV0IGluc3RlYWQgb2YgQworLy8gYXNzZXJ0aW9u
IG1hY3Jvcy4gVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGV4Y2VwdGlvbnMuCisjaWZuZGVmIEpTT05f
VVNFX0VYQ0VQVElPTgorI2RlZmluZSBKU09OX1VTRV9FWENFUFRJT04gMQorI2VuZGlmCisKKy8v
LyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVk
CisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCisvLy8gUmVtYXJrczog
aXQgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkIGluIHRoZSBnZW5lcmF0ZWQgYW1hbGdhdGVkIGhl
YWRlci4KKy8vICNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKworI2lmZGVmIEpTT05fSU5f
Q1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25maWcuaD4KKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVEwK
KyNkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEpTT05f
SU5fQ1BQVEwKKyNkZWZpbmUgSlNPTl9BUEkgQ1BQVExfQVBJCisjZWxpZiBkZWZpbmVkKEpTT05f
RExMX0JVSUxEKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEpTT05fQVBJIF9fZGVj
bHNwZWMoZGxsZXhwb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNlbGlmIGRlZmluZWQoSlNP
Tl9ETEwpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3Bl
YyhkbGxpbXBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5J
TkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VuZGlmIC8vIGlmZGVmIEpTT05f
SU5fQ1BQVEwKKyNpZiAhZGVmaW5lZChKU09OX0FQSSkKKyNkZWZpbmUgSlNPTl9BUEkKKyNlbmRp
ZgorCisvLyBJZiBKU09OX05PX0lOVDY0IGlzIGRlZmluZWQsIHRoZW4gSnNvbiBvbmx5IHN1cHBv
cnQgQysrICJpbnQiIHR5cGUgZm9yCisvLyBpbnRlZ2VyCisvLyBTdG9yYWdlcywgYW5kIDY0IGJp
dHMgaW50ZWdlciBzdXBwb3J0IGlzIGRpc2FibGVkLgorLy8gI2RlZmluZSBKU09OX05PX0lOVDY0
IDEKKworI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1TVkMKKyMgIGlmIF9NU0NfVkVSIDw9IDEy
MDAgLy8gTVNWQyA2CisgICAgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNiBvbmx5IHN1cHBv
cnQgY29udmVyc2lvbiBmcm9tIF9faW50NjQgdG8gZG91YmxlCisgICAgLy8gKG5vIGNvbnZlcnNp
b24gZnJvbSB1bnNpZ25lZCBfX2ludDY0KS4KKyMgICAgZGVmaW5lIEpTT05fVVNFX0lOVDY0X0RP
VUJMRV9DT05WRVJTSU9OIDEKKyAgICAvLyBEaXNhYmxlIHdhcm5pbmcgNDc4NiBmb3IgVlM2IGNh
dXNlZCBieSBTVEwgKGlkZW50aWZpZXIgd2FzIHRydW5jYXRlZCB0byAnMjU1JworICAgIC8vIGNo
YXJhY3RlcnMgaW4gdGhlIGRlYnVnIGluZm9ybWF0aW9uKQorICAgIC8vIEFsbCBwcm9qZWN0cyBJ
J3ZlIGV2ZXIgc2VlbiB3aXRoIFZTNiB3ZXJlIHVzaW5nIHRoaXMgZ2xvYmFsbHkgKG5vdCBib3Ro
ZXJpbmcKKyAgICAvLyB3aXRoIHByYWdtYSBwdXNoL3BvcCkuCisjICAgIHByYWdtYSB3YXJuaW5n
KGRpc2FibGUgOiA0Nzg2KQorIyAgZW5kaWYgLy8gTVNWQyA2CisKKyMgIGlmIF9NU0NfVkVSID49
IDE1MDAgLy8gTVNWQyAyMDA4CisgICAgLy8vIEluZGljYXRlcyB0aGF0IHRoZSBmb2xsb3dpbmcg
ZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRCht
ZXNzYWdlKSBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQobWVzc2FnZSkpCisjICBlbmRpZgorCisjZW5k
aWYgLy8gZGVmaW5lZChfTVNDX1ZFUikKKworCisjaWZuZGVmIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAwIC8vIE1T
VkMgPj0gMjAxMAorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYg
Ly8gTVNWQyA+PSAyMDEwCisKKyNpZmRlZiBfX2NsYW5nX18KKyNpZiBfX2hhc19mZWF0dXJlKGN4
eF9ydmFsdWVfcmVmZXJlbmNlcykKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMg
MQorI2VuZGlmICAvLyBoYXNfZmVhdHVyZQorCisjZWxpZiBkZWZpbmVkIF9fR05VQ19fIC8vIG5v
dCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVtdWxhdGVzIGdjYykKKyNpZiBk
ZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKSB8fCAoX19jcGx1c3BsdXMgPj0gMjAx
MTAzTCkKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMQorI2VuZGlmICAvLyBH
WFhfRVhQRVJJTUVOVEFMCisKKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2Vu
ZGlmIC8vIG5vdCBkZWZpbmVkIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisKKyNpZm5kZWYg
SlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVS
RU5DRVMgMAorI2VuZGlmCisKKyNpZmRlZiBfX2NsYW5nX18KKyNlbGlmIGRlZmluZWQgX19HTlVD
X18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2Nj
KQorIyAgaWYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1Jf
XyA+PSA1KSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19hdHRy
aWJ1dGVfXyAoKGRlcHJlY2F0ZWQobWVzc2FnZSkpKQorIyAgZWxpZiAoX19HTlVDX18gPiAzIHx8
IChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDEpKQorIyAgICBkZWZpbmUgSlNP
TkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXykp
CisjICBlbmRpZiAgLy8gR05VQyB2ZXJzaW9uCisjZW5kaWYgLy8gX19jbGFuZ19fIHx8IF9fR05V
Q19fCisKKyNpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCisjZGVmaW5lIEpTT05DUFBf
REVQUkVDQVRFRChtZXNzYWdlKQorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05DUFBfREVQUkVD
QVRFRCkKKworbmFtZXNwYWNlIEpzb24gewordHlwZWRlZiBpbnQgSW50OwordHlwZWRlZiB1bnNp
Z25lZCBpbnQgVUludDsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit0eXBlZGVmIGludCBM
YXJnZXN0SW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgTGFyZ2VzdFVJbnQ7CisjdW5kZWYgSlNP
Tl9IQVNfSU5UNjQKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKEpTT05fTk9f
SU5UNjQpCisvLyBGb3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3BlY2lmaWMgdHlwZXMgYXMgbG9u
ZyBsb25nIGlzIG5vdCBzdXBwb3J0ZWQKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNaWNyb3Nv
ZnQgVmlzdWFsIFN0dWRpbwordHlwZWRlZiBfX2ludDY0IEludDY0OwordHlwZWRlZiB1bnNpZ25l
ZCBfX2ludDY0IFVJbnQ2NDsKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKF9N
U0NfVkVSKSAvLyBPdGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxvbmcKK3R5cGVkZWYgbG9uZyBs
b25nIGludCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBVSW50NjQ7Cisj
ZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKK3R5cGVkZWYgSW50NjQgTGFyZ2VzdEludDsK
K3R5cGVkZWYgVUludDY0IExhcmdlc3RVSW50OworI2RlZmluZSBKU09OX0hBU19JTlQ2NAorI2Vu
ZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK30gLy8gZW5kIG5hbWVzcGFjZSBKc29u
CisKKyNlbmRpZiAvLyBKU09OX0NPTkZJR19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25maWcuaAorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9m
IGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKKworI2lmbmRlZiBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9G
T1JXQVJEU19IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKKworbmFtZXNwYWNlIEpzb24geworCisvLyB3cml0ZXIuaAorY2xhc3MgRmFzdFdy
aXRlcjsKK2NsYXNzIFN0eWxlZFdyaXRlcjsKKworLy8gcmVhZGVyLmgKK2NsYXNzIFJlYWRlcjsK
KworLy8gZmVhdHVyZXMuaAorY2xhc3MgRmVhdHVyZXM7CisKKy8vIHZhbHVlLmgKK3R5cGVkZWYg
dW5zaWduZWQgaW50IEFycmF5SW5kZXg7CitjbGFzcyBTdGF0aWNTdHJpbmc7CitjbGFzcyBQYXRo
OworY2xhc3MgUGF0aEFyZ3VtZW50OworY2xhc3MgVmFsdWU7CitjbGFzcyBWYWx1ZUl0ZXJhdG9y
QmFzZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3I7CitjbGFzcyBWYWx1ZUNvbnN0SXRlcmF0b3I7CisK
K30gLy8gbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05fRk9SV0FSRFNfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKyNlbmRpZiAvL2lm
bmRlZiBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvc3JjL2pzb24vanNvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyN2Y2NWQ5ZGZhODUzNmMzNWZmNDdk
ZTA4NGZlY2U3ODk4YWIxZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvc3JjL2pzb24vanNvbi5oCkBAIC0wLDAgKzEsMjA3NyBAQAorLy8vIEpzb24tY3BwIGFt
YWxnYXRlZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgorLy8vIEl0
IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLmgiCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKworLyoKK1RoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29k
ZSwgaW5jbHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAKK3Rlc3RzIGFuZCBkZW1v
bnN0cmF0aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcK
K2NvbmRpdGlvbnMuLi4KKworVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNp
dGx5IGRpc2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAoranVyaXNkaWN0aW9ucyB3aGljaCByZWNv
Z25pemUgc3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCit0aGlzIHNv
ZnR3YXJlIGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4uCisKK0luIGp1cmlzZGlj
dGlvbnMgd2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcu
IEdlcm1hbnkgYXMgb2YKKzIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAw
Ny0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCityZWxlYXNlZCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgorCitJbiBqdXJpc2RpY3Rpb25z
IHdoaWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlz
IAorc29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBE
b21haW4sIDIpIHVuZGVyIHRoZSAKK2NvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUg
YmVsb3cpLCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKK1B1YmxpYyBEb21haW4vTUlU
IExpY2Vuc2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCisKK1Ro
ZSBNSVQgTGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGlj
ZW5zZSBjYW4gZ2V0LCBhbmQgaXMKK2Rlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBh
dDoKKworICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQorICAgCitU
aGUgZnVsbCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgorCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorCitQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorb2J0
YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv
dXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LAorbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCitvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKK2luY2x1ZGVkIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKK0JFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorQUNUSU9OIE9GIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NP
RlRXQVJFLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisoRU5EIExJQ0VOU0UgVEVYVCkKKworVGhlIE1JVCBs
aWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKK3Nv
ZnR3YXJlLCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4g
d2l0aCB0aGUKK21pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UKK2FuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2Rl
LiBOb3RlIGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCitQdWJsaWMgRG9tYWluICJsaWNlbnNl
IiB5b3UgY2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCitsaWNlbnNlIHlv
dSBsaWtlLgorCisqLworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBm
aWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworI2lmbmRlZiBKU09OX0FN
QUxHQVRFRF9IX0lOQ0xVREVECisjIGRlZmluZSBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECisv
Ly8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRl
ZAorLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorI2RlZmluZSBKU09O
X0lTX0FNQUxHQU1BVElPTgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29u
dGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
Ky8vIERPIE5PVCBFRElULiBUaGlzIGZpbGUgKGFuZCAidmVyc2lvbiIpIGlzIGdlbmVyYXRlZCBi
eSBDTWFrZS4KKy8vIFJ1biBDTWFrZSBjb25maWd1cmUgc3RlcCB0byB1cGRhdGUgaXQuCisjaWZu
ZGVmIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisjIGRlZmluZSBKU09OX1ZFUlNJT05fSF9JTkNM
VURFRAorCisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICIxLjYuNSIKKyMgZGVmaW5l
IEpTT05DUFBfVkVSU0lPTl9NQUpPUiAxCisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUlOT1Ig
NgorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1BBVENIIDUKKyMgZGVmaW5lIEpTT05DUFBfVkVS
U0lPTl9RVUFMSUZJRVIKKyMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9IRVhBICgoSlNPTkNQUF9W
RVJTSU9OX01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05fTUlOT1IgPDwgMTYpIHwgKEpT
T05DUFBfVkVSU0lPTl9QQVRDSCA8PCA4KSkKKworI2VuZGlmIC8vIEpTT05fVkVSU0lPTl9IX0lO
Q0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi92ZXJzaW9uLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNv
bi9jb25maWcuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJh
cHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fQ09ORklHX0hf
SU5DTFVERUQKKyNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLy8gSWYgZGVmaW5l
ZCwgaW5kaWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJh
cnkuCisvLyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNh
dGVzIHRoYXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQorLy8jICBkZWZpbmUgSlNP
Tl9VU0VfQ1BQVEwgMQorLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3Rv
ciBiYXNlZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgorLy8vIHN0ZDo6bWFwCisvLy8g
YXMgVmFsdWUgY29udGFpbmVyLgorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAg
MQorCisvLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9y
dCBiYWQgaW5wdXQgaW5zdGVhZCBvZiBDCisvLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVs
dCBpcyB0byB1c2UgZXhjZXB0aW9ucy4KKyNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCisjZGVm
aW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCisjZW5kaWYKKworLy8vIElmIGRlZmluZWQsIGluZGlj
YXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHBy
aXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5
IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgorLy8gI2RlZmluZSBK
U09OX0lTX0FNQUxHQU1BVElPTgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2luY2x1ZGUgPGNw
cHRsL2NvbmZpZy5oPgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTAorI2RlZmluZSBKU09OX1VTRV9D
UFBUTCAxCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2RlZmluZSBK
U09OX0FQSSBDUFBUTF9BUEkKKyNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCisjaWYgZGVm
aW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisj
ZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAvLyBp
ZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKKyNpZiBkZWZpbmVk
KF9NU0NfVkVSKQorI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNkZWZp
bmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRl
ZmluZWQoX01TQ19WRVIpCisjZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAorI2lmICFkZWZp
bmVkKEpTT05fQVBJKQorI2RlZmluZSBKU09OX0FQSQorI2VuZGlmCisKKy8vIElmIEpTT05fTk9f
SU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBm
b3IKKy8vIGludGVnZXIKKy8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQg
aXMgZGlzYWJsZWQuCisvLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQorCisjaWYgZGVmaW5lZChf
TVNDX1ZFUikgLy8gTVNWQworIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKKyAgICAv
LyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20g
X19pbnQ2NCB0byBkb3VibGUKKyAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9f
aW50NjQpLgorIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQor
ICAgIC8vIERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRp
ZmllciB3YXMgdHJ1bmNhdGVkIHRvICcyNTUnCisgICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVi
dWcgaW5mb3JtYXRpb24pCisgICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGgg
VlM2IHdlcmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZworICAgIC8vIHdpdGgg
cHJhZ21hIHB1c2gvcG9wKS4KKyMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCisj
ICBlbmRpZiAvLyBNU1ZDIDYKKworIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgK
KyAgICAvLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNh
dGVkLgorIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMo
ZGVwcmVjYXRlZChtZXNzYWdlKSkKKyMgIGVuZGlmCisKKyNlbmRpZiAvLyBkZWZpbmVkKF9NU0Nf
VkVSKQorCisKKyNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmIGRlZmlu
ZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCisjZGVmaW5l
IEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAvLyBNU1ZDID49IDIwMTAKKwor
I2lmZGVmIF9fY2xhbmdfXworI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2Vz
KQorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIGhhc19m
ZWF0dXJlCisKKyNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMg
bGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQorI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJ
TUVOVEFMX0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQorI2RlZmluZSBKU09O
X0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKKwor
I2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXworCisjZW5kaWYgLy8gbm90IGRlZmluZWQg
SlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUworI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCisjZW5kaWYKKwor
I2lmZGVmIF9fY2xhbmdfXworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdj
YyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjICBpZiAoX19HTlVDX18g
PiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQorIyAgICBkZWZp
bmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRl
ZChtZXNzYWdlKSkpCisjICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYg
X19HTlVDX01JTk9SX18gPj0gMSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVz
c2FnZSkgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKKyMgIGVuZGlmICAvLyBHTlVD
IHZlcnNpb24KKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2lmICFkZWZpbmVk
KEpTT05DUFBfREVQUkVDQVRFRCkKKyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2Up
CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorCituYW1lc3BhY2Ug
SnNvbiB7Cit0eXBlZGVmIGludCBJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OworI2lm
IGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK3R5cGVkZWYgaW50IExhcmdlc3RJbnQ7Cit0eXBlZGVm
IHVuc2lnbmVkIGludCBMYXJnZXN0VUludDsKKyN1bmRlZiBKU09OX0hBU19JTlQ2NAorI2Vsc2Ug
ICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKy8vIEZvciBNaWNy
b3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBv
cnRlZAorI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCit0
eXBlZGVmIF9faW50NjQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0Owor
I2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBs
YXRmb3JtcywgdXNlIGxvbmcgbG9uZwordHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwordHlw
ZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKKyNlbmRpZiAvLyBpZiBkZWZpbmVk
KF9NU0NfVkVSKQordHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwordHlwZWRlZiBVSW50NjQgTGFy
Z2VzdFVJbnQ7CisjZGVmaW5lIEpTT05fSEFTX0lOVDY0CisjZW5kaWYgLy8gaWYgZGVmaW5lZChK
U09OX05PX0lOVDY0KQorfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05f
Q09ORklHX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQg
b2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisK
KworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBp
bmNsdWRlL2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQg
MjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxp
Y2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4g
eW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29w
eSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpT
T05fRk9SV0FSRFNfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQK
KworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZpZy5o
IgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1lc3Bh
Y2UgSnNvbiB7CisKKy8vIHdyaXRlci5oCitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5bGVk
V3JpdGVyOworCisvLyByZWFkZXIuaAorY2xhc3MgUmVhZGVyOworCisvLyBmZWF0dXJlcy5oCitj
bGFzcyBGZWF0dXJlczsKKworLy8gdmFsdWUuaAordHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJ
bmRleDsKK2NsYXNzIFN0YXRpY1N0cmluZzsKK2NsYXNzIFBhdGg7CitjbGFzcyBQYXRoQXJndW1l
bnQ7CitjbGFzcyBWYWx1ZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworY2xhc3MgVmFsdWVJ
dGVyYXRvcjsKK2NsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKKworfSAvLyBuYW1lc3BhY2UgSnNv
bgorCisjZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5p
bmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8g
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJl
ZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBM
SUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5u
ZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAorI2Rl
ZmluZSBDUFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImZvcndhcmRzLmgiCisjZW5kaWYgLy8gaWYgIWRl
ZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworLyoqIFxi
cmllZiBDb25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KKyAqIFRoaXMg
Y29uZmlndXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBvciBX
cml0ZXIKKyAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5LgorICovCitj
bGFzcyBKU09OX0FQSSBGZWF0dXJlcyB7CitwdWJsaWM6CisgIC8qKiBcYnJpZWYgQSBjb25maWd1
cmF0aW9uIHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncwor
ICAgKiBhcmUgVVRGLTguCisgICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dlZAorICAg
KiAtIFJvb3Qgb2JqZWN0IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQorICAgKiAtIEFzc3VtZXMgVmFs
dWUgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAorICAgKi8KKyAgc3RhdGljIEZlYXR1cmVz
IGFsbCgpOworCisgIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkg
Y29tcGF0aWJsZSB3aXRoIHRoZSBKU09OCisgICAqIHNwZWNpZmljYXRpb24uCisgICAqIC0gQ29t
bWVudHMgYXJlIGZvcmJpZGRlbi4KKyAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVpdGhlciBh
biBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdz
IGFyZSBlbmNvZGVkIGluIFVURi04CisgICAqLworICBzdGF0aWMgRmVhdHVyZXMgc3RyaWN0TW9k
ZSgpOworCisgIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpz
b25Db25maWc6OmFsbEZlYXR1cmVzOworICAgKi8KKyAgRmVhdHVyZXMoKTsKKworICAvLy8gXGMg
dHJ1ZSBpZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KKyAgYm9vbCBh
bGxvd0NvbW1lbnRzXzsKKworICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFu
IGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKKyAgLy8vIGZhbHNlLgorICBi
b29sIHN0cmljdFJvb3RfOworCisgIC8vLyBcYyB0cnVlIGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhv
bGRlcnMgYXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgorICBib29sIGFsbG93RHJvcHBl
ZE51bGxQbGFjZWhvbGRlcnNfOworCisgIC8vLyBcYyB0cnVlIGlmIG51bWVyaWMgb2JqZWN0IGtl
eSBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgZmFsc2UuCisgIGJvb2wgYWxsb3dOdW1lcmljS2V5
c187Cit9OworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBDUFBUTF9KU09OX0ZF
QVRVUkVTX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQg
b2YgZmlsZTogaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisK
KworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6
IGluY2x1ZGUvanNvbi92YWx1ZS5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAy
MDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5
b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5
IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQ
VExfSlNPTl9IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAorCisjaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiZm9yd2FyZHMuaCIKKyNl
bmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPGV4Y2VwdGlvbj4KKworI2lmbmRlZiBK
U09OX1VTRV9DUFBUTF9TTUFMTE1BUAorI2luY2x1ZGUgPG1hcD4KKyNlbHNlCisjaW5jbHVkZSA8
Y3BwdGwvc21hbGxtYXAuaD4KKyNlbmRpZgorI2lmZGVmIEpTT05fVVNFX0NQUFRMCisjaW5jbHVk
ZSA8Y3BwdGwvZm9yd2FyZHMuaD4KKyNlbmRpZgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6
IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8v
IGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxl
IDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJG
QUNFX1dBUk5JTkcpCisKKy8qKiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRp
b24pLgorICovCituYW1lc3BhY2UgSnNvbiB7CisKKy8qKiBCYXNlIGNsYXNzIGZvciBhbGwgZXhj
ZXB0aW9ucyB3ZSB0aHJvdy4KKyAqCisgKiBXZSB1c2Ugbm90aGluZyBidXQgdGhlc2UgaW50ZXJu
YWxseS4gT2YgY291cnNlLCBTVEwgY2FuIHRocm93IG90aGVycy4KKyAqLworY2xhc3MgSlNPTl9B
UEkgRXhjZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKK3B1YmxpYzoKKyAgRXhjZXB0
aW9uKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworICB+RXhjZXB0aW9uKCkgdGhyb3coKTsKKyAg
Y2hhciBjb25zdCogd2hhdCgpIGNvbnN0IHRocm93KCk7Citwcm90ZWN0ZWQ6CisgIHN0ZDo6c3Ry
aW5nIG1zZ187Cit9OworCisvKiogRXhjZXB0aW9ucyB3aGljaCB0aGUgdXNlciBjYW5ub3QgZWFz
aWx5IGF2b2lkLgorICoKKyAqIEUuZy4gb3V0LW9mLW1lbW9yeSAod2hlbiB3ZSB1c2UgbWFsbG9j
KSwgc3RhY2stb3ZlcmZsb3csIG1hbGljaW91cyBpbnB1dAorICogCisgKiBccmVtYXJrIGRlcml2
ZWQgZnJvbSBKc29uOjpFeGNlcHRpb24KKyAqLworY2xhc3MgSlNPTl9BUEkgUnVudGltZUVycm9y
IDogcHVibGljIEV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIFJ1bnRpbWVFcnJvcihzdGQ6OnN0cmlu
ZyBjb25zdCYgbXNnKTsKK307CisKKy8qKiBFeGNlcHRpb25zIHRocm93biBieSBKU09OX0FTU0VS
VC9KU09OX0ZBSUwgbWFjcm9zLgorICoKKyAqIFRoZXNlIGFyZSBwcmVjb25kaXRpb24tdmlvbGF0
aW9ucyAodXNlciBidWdzKSBhbmQgaW50ZXJuYWwgZXJyb3JzIChvdXIgYnVncykuCisgKiAKKyAq
IFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgorICovCitjbGFzcyBKU09OX0FQ
SSBMb2dpY0Vycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIExvZ2ljRXJyb3Io
c3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Cit9OworCisvLy8gdXNlZCBpbnRlcm5hbGx5Cit2b2lk
IHRocm93UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworLy8vIHVzZWQgaW50
ZXJuYWxseQordm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7CisK
Ky8qKiBcYnJpZWYgVHlwZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KKyAq
LworZW51bSBWYWx1ZVR5cGUgeworICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQor
ICBpbnRWYWx1ZSwgICAgICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCisgIHVpbnRWYWx1ZSwg
ICAgIC8vLzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQorICByZWFsVmFsdWUsICAgICAvLy88IGRv
dWJsZSB2YWx1ZQorICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQorICBi
b29sZWFuVmFsdWUsICAvLy88IGJvb2wgdmFsdWUKKyAgYXJyYXlWYWx1ZSwgICAgLy8vPCBhcnJh
eSB2YWx1ZSAob3JkZXJlZCBsaXN0KQorICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1
ZSAoY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4KK307CisKK2VudW0gQ29tbWVudFBs
YWNlbWVudCB7CisgIGNvbW1lbnRCZWZvcmUgPSAwLCAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNl
ZCBvbiB0aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQorICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAv
Ly88IGEgY29tbWVudCBqdXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQorICBjb21t
ZW50QWZ0ZXIsIC8vLzwgYSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUgKG9ubHkg
bWFrZSBzZW5zZSBmb3IKKyAgLy8vIHJvb3QgdmFsdWUpCisgIG51bWJlck9mQ29tbWVudFBsYWNl
bWVudAorfTsKKworLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisvLyAgIHR5cGVkZWYgQ3BwVEw6
OkFueUVudW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVtTWVtYmVyTmFtZXM7CisvLyAgIHR5cGVk
ZWYgQ3BwVEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFsdWUgJj4gRW51bVZhbHVlczsKKy8vIyBl
bmRpZgorCisvKiogXGJyaWVmIExpZ2h0d2VpZ2h0IHdyYXBwZXIgdG8gdGFnIHN0YXRpYyBzdHJp
bmcuCisgKgorICogVmFsdWUgY29uc3RydWN0b3IgYW5kIG9iamVjdFZhbHVlIG1lbWJlciBhc3Np
Z25lbWVudCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlCisgKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lk
IHRoZSBjb3N0IG9mIHN0cmluZyBkdXBsaWNhdGlvbiB3aGVuIHN0b3JpbmcgdGhlCisgKiBzdHJp
bmcgb3IgdGhlIG1lbWJlciBuYW1lLgorICoKKyAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgKiBcY29k
ZQorICogSnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Cisg
KiBKc29uOjpWYWx1ZSBvYmplY3Q7CisgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUo
ImNvZGUiKTsKKyAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7CisgKiBcZW5kY29kZQorICovCitjbGFz
cyBKU09OX0FQSSBTdGF0aWNTdHJpbmcgeworcHVibGljOgorICBleHBsaWNpdCBTdGF0aWNTdHJp
bmcoY29uc3QgY2hhciogY3pzdHJpbmcpIDogY19zdHJfKGN6c3RyaW5nKSB7fQorCisgIG9wZXJh
dG9yIGNvbnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9CisKKyAgY29uc3QgY2hh
ciogY19zdHIoKSBjb25zdCB7IHJldHVybiBjX3N0cl87IH0KKworcHJpdmF0ZToKKyAgY29uc3Qg
Y2hhciogY19zdHJfOworfTsKKworLyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gdmFsdWUuCisgKgorICogVGhpcyBjbGFzcyBpcyBh
IGRpc2NyaW1pbmF0ZWQgdW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6CisgKiAt
IHNpZ25lZCBpbnRlZ2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCisg
KiAtIHVuc2lnbmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJbnQpCisgKiAtIGRv
dWJsZQorICogLSBVVEYtOCBzdHJpbmcKKyAqIC0gYm9vbGVhbgorICogLSAnbnVsbCcKKyAqIC0g
YW4gb3JkZXJlZCBsaXN0IG9mIFZhbHVlCisgKiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBw
YWlycyAoamF2YXNjcmlwdCBvYmplY3QpCisgKgorICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFs
dWUgaXMgcmVwcmVzZW50ZWQgYnkgYSAjVmFsdWVUeXBlIGFuZAorICogY2FuIGJlIG9idGFpbmVk
IHVzaW5nIHR5cGUoKS4KKyAqCisgKiBWYWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJh
eVZhbHVlIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVyYXRvcltdKCkKKyAqIG1ldGhvZHMuCisg
KiBOb24tY29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxs
VmFsdWUgZWxlbWVudAorICogaWYgaXQgZG9lcyBub3QgZXhpc3QuCisgKiBUaGUgc2VxdWVuY2Ug
b2YgYW4gI2FycmF5VmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZWQgYW5kIGluaXRp
YWxpemVkCisgKiB3aXRoICNudWxsVmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFy
Z2Ugb3IgdHJ1bmNhdGUgYW4gI2FycmF5VmFsdWUuCisgKgorICogVGhlIGdldCgpIG1ldGhvZHMg
Y2FuIGJlIHVzZWQgdG8gb2J0YWluIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlCisgKiBy
ZXF1aXJlZCBlbGVtZW50IGRvZXMgbm90IGV4aXN0LgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRv
IGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcKKyAq
IHRoZSBnZXRNZW1iZXJOYW1lcygpIG1ldGhvZC4KKyAqCisgKiBcbm90ZSAjVmFsdWUgc3RyaW5n
LWxlbmd0aCBmaXQgaW4gc2l6ZV90LCBidXQga2V5cyBtdXN0IGJlIDwgMl4zMC4KKyAqIChUaGUg
cmVhc29uIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pIEEgI0NoYXJSZWFkZXIgd2lsbCBy
YWlzZSBhbgorICogZXhjZXB0aW9uIGlmIGEgYm91bmQgaXMgZXhjZWVkZWQgdG8gYXZvaWQgc2Vj
dXJpdHkgaG9sZXMgaW4geW91ciBhcHAsCisgKiBidXQgdGhlIFZhbHVlIEFQSSBkb2VzICpub3Qq
IGNoZWNrIGJvdW5kcy4gVGhhdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkKKyAqIG9mIHRoZSBjYWxs
ZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlIHsKKyAgZnJpZW5kIGNsYXNzIFZhbHVlSXRl
cmF0b3JCYXNlOworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBN
ZW1iZXJzOworICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3I7CisgIHR5cGVkZWYgVmFs
dWVDb25zdEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworICB0eXBlZGVmIEpzb246OlVJbnQgVUlu
dDsKKyAgdHlwZWRlZiBKc29uOjpJbnQgSW50OworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisgIHR5cGVkZWYgSnNvbjo6VUludDY0IFVJbnQ2NDsKKyAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJ
bnQ2NDsKKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICB0eXBlZGVmIEpzb246
Okxhcmdlc3RJbnQgTGFyZ2VzdEludDsKKyAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJn
ZXN0VUludDsKKyAgdHlwZWRlZiBKc29uOjpBcnJheUluZGV4IEFycmF5SW5kZXg7CisKKyAgc3Rh
dGljIGNvbnN0IFZhbHVlJiBudWxsOyAgLy8vPCBXZSByZWdyZXQgdGhpcyByZWZlcmVuY2UgdG8g
YSBnbG9iYWwgaW5zdGFuY2U7IHByZWZlciB0aGUgc2ltcGxlciBWYWx1ZSgpLgorICBzdGF0aWMg
Y29uc3QgVmFsdWUmIG51bGxSZWY7ICAvLy88IGp1c3QgYSBrbHVkZ2UgZm9yIGJpbmFyeS1jb21w
YXRpYmlsaXR5OyBzYW1lIGFzIG51bGwKKyAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFs
dWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBM
YXJnZXN0SW50IG1pbkxhcmdlc3RJbnQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZh
bHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3Qg
TGFyZ2VzdEludCBtYXhMYXJnZXN0SW50OworICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2Vy
IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29u
c3QgTGFyZ2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7CisKKyAgLy8vIE1pbmltdW0gc2lnbmVkIGlu
dCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNv
bnN0IEludCBtaW5JbnQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4g
YmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50Owor
ICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEg
SnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7CisKKyNpZiBkZWZpbmVk
KEpTT05fSEFTX0lOVDY0KQorICAvLy8gTWluaW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUg
dGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQ2
NCBtaW5JbnQ2NDsKKyAgLy8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQg
Y2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50NjQgbWF4
SW50NjQ7CisgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2Fu
IGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJ
bnQ2NDsKKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitwcml2YXRlOgorI2lm
bmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCisgIGNsYXNzIENaU3RyaW5n
IHsKKyAgcHVibGljOgorICAgIGVudW0gRHVwbGljYXRpb25Qb2xpY3kgeworICAgICAgbm9EdXBs
aWNhdGlvbiA9IDAsCisgICAgICBkdXBsaWNhdGUsCisgICAgICBkdXBsaWNhdGVPbkNvcHkKKyAg
ICB9OworICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOworICAgIENaU3RyaW5nKGNoYXIg
Y29uc3QqIHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSk7
CisgICAgQ1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsKKyNpZiBKU09OX0hBU19SVkFM
VUVfUkVGRVJFTkNFUworICAgIENaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpOworI2VuZGlmCisg
ICAgfkNaU3RyaW5nKCk7CisgICAgQ1pTdHJpbmcmIG9wZXJhdG9yPShDWlN0cmluZyBvdGhlcik7
CisgICAgYm9vbCBvcGVyYXRvcjwoQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKKyAgICBi
b29sIG9wZXJhdG9yPT0oQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKKyAgICBBcnJheUlu
ZGV4IGluZGV4KCkgY29uc3Q7CisgICAgLy9jb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0OyAvLy88
IFxkZXByZWNhdGVkCisgICAgY2hhciBjb25zdCogZGF0YSgpIGNvbnN0OworICAgIHVuc2lnbmVk
IGxlbmd0aCgpIGNvbnN0OworICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKKworICBw
cml2YXRlOgorICAgIHZvaWQgc3dhcChDWlN0cmluZyYgb3RoZXIpOworCisgICAgc3RydWN0IFN0
cmluZ1N0b3JhZ2UgeworICAgICAgdW5zaWduZWQgcG9saWN5XzogMjsKKyAgICAgIHVuc2lnbmVk
IGxlbmd0aF86IDMwOyAvLyAxR0IgbWF4CisgICAgfTsKKworICAgIGNoYXIgY29uc3QqIGNzdHJf
OyAgLy8gYWN0dWFsbHksIGEgcHJlZml4ZWQgc3RyaW5nLCB1bmxlc3MgcG9saWN5IGlzIG5vRHVw
CisgICAgdW5pb24geworICAgICAgQXJyYXlJbmRleCBpbmRleF87CisgICAgICBTdHJpbmdTdG9y
YWdlIHN0b3JhZ2VfOworICAgIH07CisgIH07CisKK3B1YmxpYzoKKyNpZm5kZWYgSlNPTl9VU0Vf
Q1BQVExfU01BTExNQVAKKyAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVj
dFZhbHVlczsKKyNlbHNlCisgIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1
ZT4gT2JqZWN0VmFsdWVzOworI2VuZGlmIC8vIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1B
UAorI2VuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCisK
K3B1YmxpYzoKKyAgLyoqIFxicmllZiBDcmVhdGUgYSBkZWZhdWx0IFZhbHVlIG9mIHRoZSBnaXZl
biB0eXBlLgorCisgICAgVGhpcyBpcyBhIHZlcnkgdXNlZnVsIGNvbnN0cnVjdG9yLgorICAgIFRv
IGNyZWF0ZSBhbiBlbXB0eSBhcnJheSwgcGFzcyBhcnJheVZhbHVlLgorICAgIFRvIGNyZWF0ZSBh
biBlbXB0eSBvYmplY3QsIHBhc3Mgb2JqZWN0VmFsdWUuCisgICAgQW5vdGhlciBWYWx1ZSBjYW4g
dGhlbiBiZSBzZXQgdG8gdGhpcyBvbmUgYnkgYXNzaWdubWVudC4KK1RoaXMgaXMgdXNlZnVsIHNp
bmNlIGNsZWFyKCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgorCisgICAgRXhh
bXBsZXM6CitcY29kZQorSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAorSnNvbjo6VmFs
dWUgYXJyX3ZhbHVlKEpzb246OmFycmF5VmFsdWUpOyAvLyBbXQorSnNvbjo6VmFsdWUgb2JqX3Zh
bHVlKEpzb246Om9iamVjdFZhbHVlKTsgLy8ge30KK1xlbmRjb2RlCisgICovCisgIFZhbHVlKFZh
bHVlVHlwZSB0eXBlID0gbnVsbFZhbHVlKTsKKyAgVmFsdWUoSW50IHZhbHVlKTsKKyAgVmFsdWUo
VUludCB2YWx1ZSk7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgVmFsdWUoSW50NjQg
dmFsdWUpOworICBWYWx1ZShVSW50NjQgdmFsdWUpOworI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCisgIFZhbHVlKGRvdWJsZSB2YWx1ZSk7CisgIFZhbHVlKGNvbnN0IGNoYXIq
IHZhbHVlKTsgLy8vPCBDb3B5IHRpbCBmaXJzdCAwLiAoTlVMTCBjYXVzZXMgdG8gc2VnLWZhdWx0
LikKKyAgVmFsdWUoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7IC8vLzwgQ29w
eSBhbGwsIGluY2wgemVyb2VzLgorICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9t
IGEgc3RhdGljIHN0cmluZy4KKworICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1
Y3RvciBidXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgorICAgKiBpbnRlcm5hbCBz
dG9yYWdlLiBUaGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFmdGVyIHRoZSBjYWxs
IHRvIHRoaXMKKyAgICogY29uc3RydWN0b3IuCisgICAqIFxub3RlIFRoaXMgd29ya3Mgb25seSBm
b3IgbnVsbC10ZXJtaW5hdGVkIHN0cmluZ3MuIChXZSBjYW5ub3QgY2hhbmdlIHRoZQorICAgKiAg
IHNpemUgb2YgdGhpcyBjbGFzcywgc28gd2UgaGF2ZSBub3doZXJlIHRvIHN0b3JlIHRoZSBsZW5n
dGgsCisgICAqICAgd2hpY2ggbWlnaHQgYmUgY29tcHV0ZWQgbGF0ZXIgZm9yIHZhcmlvdXMgb3Bl
cmF0aW9ucy4pCisgICAqCisgICAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgICAqIFxjb2RlCisgICAq
IHN0YXRpYyBTdGF0aWNTdHJpbmcgZm9vKCJzb21lIHRleHQiKTsKKyAgICogSnNvbjo6VmFsdWUg
YVZhbHVlKGZvbyk7CisgICAqIFxlbmRjb2RlCisgICAqLworICBWYWx1ZShjb25zdCBTdGF0aWNT
dHJpbmcmIHZhbHVlKTsKKyAgVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsgLy8vPCBD
b3B5IGRhdGEoKSB0aWwgc2l6ZSgpLiBFbWJlZGRlZCB6ZXJvZXMgdG9vLgorI2lmZGVmIEpTT05f
VVNFX0NQUFRMCisgIFZhbHVlKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYgdmFsdWUpOworI2Vu
ZGlmCisgIFZhbHVlKGJvb2wgdmFsdWUpOworICAvLy8gRGVlcCBjb3B5LgorICBWYWx1ZShjb25z
dCBWYWx1ZSYgb3RoZXIpOworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisgIC8vLyBN
b3ZlIGNvbnN0cnVjdG9yCisgIFZhbHVlKFZhbHVlJiYgb3RoZXIpOworI2VuZGlmCisgIH5WYWx1
ZSgpOworCisgIC8vLyBEZWVwIGNvcHksIHRoZW4gc3dhcChvdGhlcikuCisgIC8vLyBcbm90ZSBP
dmVyLXdyaXRlIGV4aXN0aW5nIGNvbW1lbnRzLiBUbyBwcmVzZXJ2ZSBjb21tZW50cywgdXNlICNz
d2FwUGF5bG9hZCgpLgorICBWYWx1ZSYgb3BlcmF0b3I9KFZhbHVlIG90aGVyKTsKKyAgLy8vIFN3
YXAgZXZlcnl0aGluZy4KKyAgdm9pZCBzd2FwKFZhbHVlJiBvdGhlcik7CisgIC8vLyBTd2FwIHZh
bHVlcyBidXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGluIHBsYWNlLgorICB2
b2lkIHN3YXBQYXlsb2FkKFZhbHVlJiBvdGhlcik7CisKKyAgVmFsdWVUeXBlIHR5cGUoKSBjb25z
dDsKKworICAvLy8gQ29tcGFyZSBwYXlsb2FkIG9ubHksIG5vdCBjb21tZW50cyBldGMuCisgIGJv
b2wgb3BlcmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I8
PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPj0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBj
b25zdDsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBpbnQgY29tcGFyZShj
b25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworCisgIGNvbnN0IGNoYXIqIGFzQ1N0cmluZygpIGNv
bnN0OyAvLy88IEVtYmVkZGVkIHplcm9lcyBjb3VsZCBjYXVzZSB5b3UgdHJvdWJsZSEKKyAgc3Rk
OjpzdHJpbmcgYXNTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgYXJlIHBvc3Np
YmxlLgorICAvKiogR2V0IHJhdyBjaGFyKiBvZiBzdHJpbmctdmFsdWUuCisgICAqICBccmV0dXJu
IGZhbHNlIGlmICFzdHJpbmcuIChTZWctZmF1bHQgaWYgc3RyIG9yIGVuZCBhcmUgTlVMTC4pCisg
ICAqLworICBib29sIGdldFN0cmluZygKKyAgICAgIGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBj
b25zdCoqIGVuZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgQ3BwVEw6OkNvbnN0
U3RyaW5nIGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKKyNlbmRpZgorICBJbnQgYXNJbnQoKSBjb25z
dDsKKyAgVUludCBhc1VJbnQoKSBjb25zdDsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQor
ICBJbnQ2NCBhc0ludDY0KCkgY29uc3Q7CisgIFVJbnQ2NCBhc1VJbnQ2NCgpIGNvbnN0OworI2Vu
ZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIExhcmdlc3RJbnQgYXNMYXJnZXN0
SW50KCkgY29uc3Q7CisgIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBjb25zdDsKKyAgZmxv
YXQgYXNGbG9hdCgpIGNvbnN0OworICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKKyAgYm9vbCBh
c0Jvb2woKSBjb25zdDsKKworICBib29sIGlzTnVsbCgpIGNvbnN0OworICBib29sIGlzQm9vbCgp
IGNvbnN0OworICBib29sIGlzSW50KCkgY29uc3Q7CisgIGJvb2wgaXNJbnQ2NCgpIGNvbnN0Owor
ICBib29sIGlzVUludCgpIGNvbnN0OworICBib29sIGlzVUludDY0KCkgY29uc3Q7CisgIGJvb2wg
aXNJbnRlZ3JhbCgpIGNvbnN0OworICBib29sIGlzRG91YmxlKCkgY29uc3Q7CisgIGJvb2wgaXNO
dW1lcmljKCkgY29uc3Q7CisgIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKKyAgYm9vbCBpc0FycmF5
KCkgY29uc3Q7CisgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKKworICBib29sIGlzQ29udmVydGli
bGVUbyhWYWx1ZVR5cGUgb3RoZXIpIGNvbnN0OworCisgIC8vLyBOdW1iZXIgb2YgdmFsdWVzIGlu
IGFycmF5IG9yIG9iamVjdAorICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKKworICAvLy8gXGJy
aWVmIFJldHVybiB0cnVlIGlmIGVtcHR5IGFycmF5LCBlbXB0eSBvYmplY3QsIG9yIG51bGw7Cisg
IC8vLyBvdGhlcndpc2UsIGZhbHNlLgorICBib29sIGVtcHR5KCkgY29uc3Q7CisKKyAgLy8vIFJl
dHVybiBpc051bGwoKQorICBib29sIG9wZXJhdG9yISgpIGNvbnN0OworCisgIC8vLyBSZW1vdmUg
YWxsIG9iamVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KKyAgLy8vIFxwcmUgdHlwZSgp
IGlzIGFycmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5
cGUoKSBpcyB1bmNoYW5nZWQKKyAgdm9pZCBjbGVhcigpOworCisgIC8vLyBSZXNpemUgdGhlIGFy
cmF5IHRvIHNpemUgZWxlbWVudHMuCisgIC8vLyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVk
IHRvIG51bGwuCisgIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVlIG9yIGFycmF5
VmFsdWUuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlIG9yIG51bGxWYWx1ZQorICAv
Ly8gXHBvc3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKKyAgdm9pZCByZXNpemUoQXJyYXlJbmRleCBz
aXplKTsKKworICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXgg
KS4KKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwg
dGhlbiBudWxsIHZhbHVlIGFyZQorICAvLy8gaW5zZXJ0ZWQKKyAgLy8vIGluIHRoZSBhcnJheSBz
byB0aGF0IGl0cyBzaXplIGlzIGluZGV4KzEuCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAn
dmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRo
aXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIFZhbHVlJiBv
cGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxl
bWVudCAoemVybyBiYXNlZCBpbmRleCApLgorICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxl
c3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCisgIC8vLyBpbnNlcnRl
ZAorICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KKyAgLy8v
IChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRv
IGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2Vz
IGEgc3RyaW5nLikKKyAgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KTsKKworICAvLy8gQWNj
ZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQorICAvLy8gKFlvdSBtYXkg
bmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vp
c2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcu
KQorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdDsKKwor
ICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQorICAvLy8g
KFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8g
ZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMg
YSBzdHJpbmcuKQorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0Owor
CisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywg
cmV0dXJucyB0aGUgZWxlbWVudAorICAvLy8gdmFsdWUsCisgIC8vLyBvdGhlcndpc2UgcmV0dXJu
cyBkZWZhdWx0VmFsdWUuCisgIFZhbHVlIGdldChBcnJheUluZGV4IGluZGV4LCBjb25zdCBWYWx1
ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6
ZSgpLgorICBib29sIGlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25zdDsKKyAgLy8v
IFxicmllZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4KKyAgLy8vCisgIC8vLyBF
cXVpdmFsZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOworICBWYWx1
ZSYgYXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3Qu
CisgIC8vLyBcbm90ZSBCZWNhdXNlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiwga2V5cyBhcmUgbGlt
aXRlZCB0byAyXjMwIC0xIGNoYXJzLgorICAvLy8gIEV4Y2VlZGluZyB0aGF0IHdpbGwgY2F1c2Ug
YW4gZXhjZXB0aW9uLgorICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpOworICAv
Ly8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUg
aXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3QgVmFsdWUmIG9wZXJh
dG9yW10oY29uc3QgY2hhcioga2V5KSBjb25zdDsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFs
dWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisg
IC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSYgb3Bl
cmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCisg
IC8vLyB0aGF0IG5hbWUuCisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51
bGxzLgorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KSBj
b25zdDsKKyAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0
ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90CisgICBleGlzdC4KKworICAgKiBJZiB0aGUg
b2JqZWN0IGhhcyBubyBlbnRyeSBmb3IgdGhhdCBuYW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1
c2VkIHRvIHN0b3JlCisgICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCisgICAq
IEV4YW1wbGUgb2YgdXNlOgorICAgKiBcY29kZQorICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Cisg
ICAqIHN0YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOworICAgKiBvYmplY3Rb
Y29kZV0gPSAxMjM0OworICAgKiBcZW5kY29kZQorICAgKi8KKyAgVmFsdWUmIG9wZXJhdG9yW10o
Y29uc3QgU3RhdGljU3RyaW5nJiBrZXkpOworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBB
Y2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0
IGRvZXMgbm90IGV4aXN0LgorICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RT
dHJpbmcmIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVy
bnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgorICBj
b25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29u
c3Q7CisjZW5kaWYKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlz
dCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQorICBWYWx1
ZSBnZXQoY29uc3QgY2hhcioga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsK
KyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZh
bHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQorICAvLy8gXG5vdGUga2V5IG1h
eSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSBnZXQoY29uc3QgY2hhciogYmVnaW4s
IGNvbnN0IGNoYXIqIGVuZCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8v
LyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBv
dGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNv
bnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIFZhbHVlIGdldChjb25zdCBzdGQ6OnN0cmluZyYga2V5
LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNpZmRlZiBKU09OX1VTRV9DUFBU
TAorICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0
VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBjb3B5CisgIFZhbHVlIGdldChjb25z
dCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29u
c3Q7CisjZW5kaWYKKyAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2Yg
aXNNZW1iZXIoKWNvbnN0LCBnZXQoKWNvbnN0LAorICAvLy8gYW5kIG9wZXJhdG9yW11jb25zdAor
ICAvLy8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlm
IChlbmQtYmVnaW4pID49IDJeMzAKKyAgVmFsdWUgY29uc3QqIGZpbmQoY2hhciBjb25zdCogYmVn
aW4sIGNoYXIgY29uc3QqIGVuZCkgY29uc3Q7CisgIC8vLyBNb3N0IGdlbmVyYWwgYW5kIGVmZmlj
aWVudCB2ZXJzaW9uIG9mIG9iamVjdC1tdXRhdG9ycy4KKyAgLy8vIFxub3RlIEFzIHN0YXRlZCBl
bHNld2hlcmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMwCisg
IC8vLyBccmV0dXJuIG5vbi16ZXJvLCBidXQgSlNPTl9BU1NFUlQgaWYgdGhpcyBpcyBuZWl0aGVy
IG9iamVjdCBub3IgbnVsbFZhbHVlLgorICBWYWx1ZSBjb25zdCogZGVtYW5kKGNoYXIgY29uc3Qq
IGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQpOworICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJu
IHRoZSBuYW1lZCBtZW1iZXIuCisgIC8vLworICAvLy8gRG8gbm90aGluZyBpZiBpdCBkaWQgbm90
IGV4aXN0LgorICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KKyAgLy8v
IFxwcmUgdHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQorICAvLy8gXHBvc3QgdHlw
ZSgpIGlzIHVuY2hhbmdlZAorICAvLy8gXGRlcHJlY2F0ZWQKKyAgVmFsdWUgcmVtb3ZlTWVtYmVy
KGNvbnN0IGNoYXIqIGtleSk7CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFy
KikKKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIC8vLyBc
ZGVwcmVjYXRlZAorICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7
CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hh
ciogZW5kLCBWYWx1ZSogcmVtb3ZlZCksCisgIC8vLyBidXQgJ2tleScgaXMgbnVsbC10ZXJtaW5h
dGVkLgorICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVk
KTsKKyAgLyoqIFxicmllZiBSZW1vdmUgdGhlIG5hbWVkIG1hcCBtZW1iZXIuCisKKyAgICAgIFVw
ZGF0ZSAncmVtb3ZlZCcgaWZmIHJlbW92ZWQuCisgICAgICBccGFyYW0ga2V5IG1heSBjb250YWlu
IGVtYmVkZGVkIG51bGxzLgorICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNl
cHRpb25zKQorICAqLworICBib29sIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25zdCYga2V5
LCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmlu
ZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKKyAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3Qg
Y2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOworICAvKiogXGJy
aWVmIFJlbW92ZSB0aGUgaW5kZXhlZCBhcnJheSBlbGVtZW50LgorCisgICAgICBPKG4pIGV4cGVu
c2l2ZSBvcGVyYXRpb25zLgorICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KKyAg
ICAgIFxyZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKKyAgKi8KKyAgYm9v
bCByZW1vdmVJbmRleChBcnJheUluZGV4IGksIFZhbHVlKiByZW1vdmVkKTsKKworICAvLy8gUmV0
dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgorICAvLy8gXG5v
dGUgJ2tleScgbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgaXNNZW1iZXIoY29uc3Qg
Y2hhcioga2V5KSBjb25zdDsKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEg
bWVtYmVyIG5hbWVkIGtleS4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQg
bnVsbHMuCisgIGJvb2wgaXNNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7Cisg
IC8vLyBTYW1lIGFzIGlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpY29uc3QKKyAgYm9v
bCBpc01lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSBjb25zdDsKKyNp
ZmRlZiBKU09OX1VTRV9DUFBUTAorICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMg
YSBtZW1iZXIgbmFtZWQga2V5LgorICBib29sIGlzTWVtYmVyKGNvbnN0IENwcFRMOjpDb25zdFN0
cmluZyYga2V5KSBjb25zdDsKKyNlbmRpZgorCisgIC8vLyBcYnJpZWYgUmV0dXJuIGEgbGlzdCBv
ZiB0aGUgbWVtYmVyIG5hbWVzLgorICAvLy8KKyAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0
eSBsaXN0LgorICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCisg
IC8vLyBccG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUK
KyAgTWVtYmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0OworCisgIC8vIyBpZmRlZiBKU09OX1VT
RV9DUFBUTAorICAvLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25z
dDsKKyAgLy8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKKyAgLy8jIGVuZGlm
CisKKyAgLy8vIFxkZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KKyAgSlNPTkNQUF9ERVBSRUNB
VEVEKCJVc2Ugc2V0Q29tbWVudChzdGQ6OnN0cmluZyBjb25zdCYpIGluc3RlYWQuIikKKyAgdm9p
ZCBzZXRDb21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KTsKKyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZvaWQg
c2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2Vt
ZW50IHBsYWNlbWVudCk7CisgIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAq
LworICB2b2lkIHNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQsIENvbW1lbnRQ
bGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgYm9vbCBoYXNDb21tZW50KENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50KSBjb25zdDsKKyAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRkZWQg
bmV3bGluZXMuCisgIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFj
ZW1lbnQpIGNvbnN0OworCisgIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7CisK
KyAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKKyAgY29uc3RfaXRlcmF0b3IgZW5kKCkg
Y29uc3Q7CisKKyAgaXRlcmF0b3IgYmVnaW4oKTsKKyAgaXRlcmF0b3IgZW5kKCk7CisKKyAgLy8g
QWNjZXNzb3JzIGZvciB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRo
ZSBKU09OIHRleHQgZnJvbQorICAvLyB3aGljaCB0aGlzIHZhbHVlIHdhcyBwYXJzZWQsIGlmIGFu
eS4KKyAgdm9pZCBzZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpOworICB2b2lkIHNldE9mZnNl
dExpbWl0KHNpemVfdCBsaW1pdCk7CisgIHNpemVfdCBnZXRPZmZzZXRTdGFydCgpIGNvbnN0Owor
ICBzaXplX3QgZ2V0T2Zmc2V0TGltaXQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgdm9pZCBpbml0
QmFzaWMoVmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2NhdGVkID0gZmFsc2UpOworCisgIFZhbHVl
JiByZXNvbHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSk7CisgIFZhbHVlJiByZXNvbHZlUmVm
ZXJlbmNlKGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogZW5kKTsKKworICBzdHJ1Y3QgQ29t
bWVudEluZm8geworICAgIENvbW1lbnRJbmZvKCk7CisgICAgfkNvbW1lbnRJbmZvKCk7CisKKyAg
ICB2b2lkIHNldENvbW1lbnQoY29uc3QgY2hhciogdGV4dCwgc2l6ZV90IGxlbik7CisKKyAgICBj
aGFyKiBjb21tZW50XzsKKyAgfTsKKworICAvLyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0K
KyAgLy97CisgIC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKKyAgLy8gICBj
b25zdCBjaGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0CisgIC8v
ICAgeworICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7CisgIC8vICAgfQorICAvL307CisK
KyAgdW5pb24gVmFsdWVIb2xkZXIgeworICAgIExhcmdlc3RJbnQgaW50XzsKKyAgICBMYXJnZXN0
VUludCB1aW50XzsKKyAgICBkb3VibGUgcmVhbF87CisgICAgYm9vbCBib29sXzsKKyAgICBjaGFy
KiBzdHJpbmdfOyAgLy8gYWN0dWFsbHkgcHRyIHRvIHVuc2lnbmVkLCBmb2xsb3dlZCBieSBzdHIs
IHVubGVzcyAhYWxsb2NhdGVkXworICAgIE9iamVjdFZhbHVlcyogbWFwXzsKKyAgfSB2YWx1ZV87
CisgIFZhbHVlVHlwZSB0eXBlXyA6IDg7CisgIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsg
Ly8gTm90ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGFsbG9jYXRlZF8sIHN0cmluZ18g
bXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCisgIENvbW1lbnRJbmZvKiBjb21tZW50c187CisgIFZh
bHVlICpkZWZhdWx0X3ZhbHVlXzsgIC8vIGlmIHZpYSAuZ2V0KCAia2V5IiwgZGVmYXVsdCApLCB0
aGlzIHdhcyB0aGUgZGVmYXVsdAorCisgIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBp
biB0aGUgc291cmNlIEpTT04gdGV4dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKKyAgLy8gd2FzIGV4
dHJhY3RlZC4KKyAgc2l6ZV90IHN0YXJ0XzsKKyAgc2l6ZV90IGxpbWl0XzsKK307CisKKy8qKiBc
YnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhbiBlbGVtZW50IG9m
IHRoZSAicGF0aCIgdG8KKyAqIGFjY2VzcyBhIG5vZGUuCisgKi8KK2NsYXNzIEpTT05fQVBJIFBh
dGhBcmd1bWVudCB7CitwdWJsaWM6CisgIGZyaWVuZCBjbGFzcyBQYXRoOworCisgIFBhdGhBcmd1
bWVudCgpOworICBQYXRoQXJndW1lbnQoQXJyYXlJbmRleCBpbmRleCk7CisgIFBhdGhBcmd1bWVu
dChjb25zdCBjaGFyKiBrZXkpOworICBQYXRoQXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtl
eSk7CisKK3ByaXZhdGU6CisgIGVudW0gS2luZCB7CisgICAga2luZE5vbmUgPSAwLAorICAgIGtp
bmRJbmRleCwKKyAgICBraW5kS2V5CisgIH07CisgIHN0ZDo6c3RyaW5nIGtleV87CisgIEFycmF5
SW5kZXggaW5kZXhfOworICBLaW5kIGtpbmRfOworfTsKKworLyoqIFxicmllZiBFeHBlcmltZW50
YWwgYW5kIHVudGVzdGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCisg
KgorICogU3ludGF4OgorICogLSAiLiIgPT4gcm9vdCBub2RlCisgKiAtICIuW25dIiA9PiBlbGVt
ZW50cyBhdCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKKyAqIC0gIi5u
YW1lIiA9PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZhbHVl
KQorICogLSAiLm5hbWUxLm5hbWUyLm5hbWUzIgorICogLSAiLlswXVsxXVsyXS5uYW1lMVszXSIK
KyAqIC0gIi4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJhbWV0ZXIKKyAqIC0g
Ii5bJV0iID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCisgKi8KK2NsYXNzIEpTT05f
QVBJIFBhdGggeworcHVibGljOgorICBQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAorICAg
ICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTEgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25z
dCBQYXRoQXJndW1lbnQmIGEyID0gUGF0aEFyZ3VtZW50KCksCisgICAgICAgY29uc3QgUGF0aEFy
Z3VtZW50JiBhMyA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYg
YTQgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1ID0gUGF0
aEFyZ3VtZW50KCkpOworCisgIGNvbnN0IFZhbHVlJiByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290
KSBjb25zdDsKKyAgVmFsdWUgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUm
IGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNz
IHRoZSBzcGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbgorICAvLy8gdGhl
IG5vZGUuCisgIFZhbHVlJiBtYWtlKFZhbHVlJiByb290KSBjb25zdDsKKworcHJpdmF0ZToKKyAg
dHlwZWRlZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQqPiBJbkFyZ3M7CisgIHR5cGVk
ZWYgc3RkOjp2ZWN0b3I8UGF0aEFyZ3VtZW50PiBBcmdzOworCisgIHZvaWQgbWFrZVBhdGgoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pOworICB2b2lkIGFkZFBhdGhJ
bkFyZyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW5BcmdzJiBpbiwKKyAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYg
aXRJbkFyZywKKyAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpOwor
ICB2b2lkIGludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBpbnQgbG9jYXRpb24p
OworCisgIEFyZ3MgYXJnc187Cit9OworCisvKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZhbHVl
IGl0ZXJhdG9ycy4KKyAqCisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlSXRlcmF0b3JCYXNlIHsK
K3B1YmxpYzoKKyAgdHlwZWRlZiBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIGl0ZXJh
dG9yX2NhdGVnb3J5OworICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIHR5cGVkZWYg
aW50IGRpZmZlcmVuY2VfdHlwZTsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yQmFzZSBTZWxmVHlw
ZTsKKworICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBpc0VxdWFsKG90aGVyKTsgfQorCisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICFpc0VxdWFsKG90aGVyKTsgfQorCisgIGRpZmZlcmVu
Y2VfdHlwZSBvcGVyYXRvci0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7CisgICAgcmV0
dXJuIG90aGVyLmNvbXB1dGVEaXN0YW5jZSgqdGhpcyk7CisgIH0KKworICAvLy8gUmV0dXJuIGVp
dGhlciB0aGUgaW5kZXggb3IgdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHZhbHVl
IGFzIGEKKyAgLy8vIFZhbHVlLgorICBWYWx1ZSBrZXkoKSBjb25zdDsKKworICAvLy8gUmV0dXJu
IHRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgLTEgaWYgaXQgaXMgbm90IGFu
IGFycmF5VmFsdWUuCisgIFVJbnQgaW5kZXgoKSBjb25zdDsKKworICAvLy8gUmV0dXJuIHRoZSBt
ZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYgaXQgaXMgbm90IGFu
CisgIC8vLyBvYmplY3RWYWx1ZS4KKyAgLy8vIFxub3RlIEF2b2lkIGBjX3N0cigpYCBvbiByZXN1
bHQsIGFzIGVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIHN0ZDo6c3RyaW5nIG5hbWUo
KSBjb25zdDsKKworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNl
ZCBWYWx1ZS4gIiIgaWYgaXQgaXMgbm90IGFuCisgIC8vLyBvYmplY3RWYWx1ZS4KKyAgLy8vIFxk
ZXByZWNhdGVkIFRoaXMgY2Fubm90IGJlIHVzZWQgZm9yIFVURi04IHN0cmluZ3MsIHNpbmNlIHRo
ZXJlIGNhbiBiZSBlbWJlZGRlZCBudWxscy4KKyAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgYGtl
eSA9IG5hbWUoKTtgIGluc3RlYWQuIikKKyAgY2hhciBjb25zdCogbWVtYmVyTmFtZSgpIGNvbnN0
OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwg
b3IgTlVMTCBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXG5vdGUg
QmV0dGVyIHZlcnNpb24gdGhhbiBtZW1iZXJOYW1lKCkuIEFsbG93cyBlbWJlZGRlZCBudWxscy4K
KyAgY2hhciBjb25zdCogbWVtYmVyTmFtZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKKworcHJv
dGVjdGVkOgorICBWYWx1ZSYgZGVyZWYoKSBjb25zdDsKKworICB2b2lkIGluY3JlbWVudCgpOwor
CisgIHZvaWQgZGVjcmVtZW50KCk7CisKKyAgZGlmZmVyZW5jZV90eXBlIGNvbXB1dGVEaXN0YW5j
ZShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OworCisgIGJvb2wgaXNFcXVhbChjb25zdCBT
ZWxmVHlwZSYgb3RoZXIpIGNvbnN0OworCisgIHZvaWQgY29weShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpOworCitwcml2YXRlOgorICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJyZW50
XzsKKyAgLy8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KKyAg
Ym9vbCBpc051bGxfOworCitwdWJsaWM6CisgIC8vIEZvciBzb21lIHJlYXNvbiwgQk9STEFORCBu
ZWVkcyB0aGVzZSBhdCB0aGUgZW5kLCByYXRoZXIKKyAgLy8gdGhhbiBlYXJsaWVyLiBObyBpZGVh
IHdoeS4KKyAgVmFsdWVJdGVyYXRvckJhc2UoKTsKKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvckJh
c2UoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOworfTsKKwor
LyoqIFxicmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KKyAq
CisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0
ZXJhdG9yQmFzZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKKworcHVibGljOgorICB0eXBlZGVm
IGNvbnN0IFZhbHVlIHZhbHVlX3R5cGU7CisgIC8vdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90
OworICAvL3R5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCBWYWx1
ZSYgcmVmZXJlbmNlOworICB0eXBlZGVmIGNvbnN0IFZhbHVlKiBwb2ludGVyOworICB0eXBlZGVm
IFZhbHVlQ29uc3RJdGVyYXRvciBTZWxmVHlwZTsKKworICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsK
KyAgVmFsdWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVyKTsKKworcHJp
dmF0ZToKKy8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4K
KyAqLworICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOworcHVibGljOgorICBTZWxmVHlwZSYgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcik7CisKKyAgU2VsZlR5cGUgb3BlcmF0b3Ir
KyhpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICArKyp0aGlzOworICAgIHJl
dHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKKyAgICBTZWxm
VHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAtLSp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisK
KyAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7CisgICAgZGVjcmVtZW50KCk7CisgICAgcmV0dXJu
ICp0aGlzOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7CisgICAgaW5jcmVtZW50
KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNv
bnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KKworICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7
IHJldHVybiAmZGVyZWYoKTsgfQorfTsKKworLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0
IGFuZCBhcnJheSB2YWx1ZS4KKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvciA6IHB1
YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKKworcHVibGlj
OgorICB0eXBlZGVmIFZhbHVlIHZhbHVlX3R5cGU7CisgIHR5cGVkZWYgdW5zaWduZWQgaW50IHNp
emVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZhbHVlJiBy
ZWZlcmVuY2U7CisgIHR5cGVkZWYgVmFsdWUqIHBvaW50ZXI7CisgIHR5cGVkZWYgVmFsdWVJdGVy
YXRvciBTZWxmVHlwZTsKKworICBWYWx1ZUl0ZXJhdG9yKCk7CisgIGV4cGxpY2l0IFZhbHVlSXRl
cmF0b3IoY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcik7CisgIFZhbHVlSXRlcmF0b3Io
Y29uc3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpOworCitwcml2YXRlOgorLyohIFxpbnRlcm5hbCBV
c2UgYnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgorICovCisgIGV4cGxpY2l0IFZhbHVl
SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwor
cHVibGljOgorICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7CisK
KyAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsK
KyAgICArKyp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUgb3BlcmF0
b3ItLShpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAtLSp0aGlzOworICAg
IHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7CisgICAgZGVj
cmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9y
KysoKSB7CisgICAgaW5jcmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgcmVm
ZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KKworICBwb2ludGVy
IG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgSnNvbgorCisKK25hbWVzcGFjZSBzdGQgeworLy8vIFNwZWNpYWxpemUgc3RkOjpzd2Fw
KCkgZm9yIEpzb246OlZhbHVlLgordGVtcGxhdGU8PgoraW5saW5lIHZvaWQgc3dhcChKc29uOjpW
YWx1ZSYgYSwgSnNvbjo6VmFsdWUmIGIpIHsgYS5zd2FwKGIpOyB9Cit9CisKKworI2lmIGRlZmlu
ZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2Fybmlu
Zyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFD
RV9XQVJOSU5HKQorCisjZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECisKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92YWx1ZS5o
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdp
bm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECisjZGVm
aW5lIENQUFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImZlYXR1cmVzLmgiCisjaW5jbHVkZSAidmFsdWUuaCIK
KyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxk
ZXF1ZT4KKyNpbmNsdWRlIDxpb3Nmd2Q+CisjaW5jbHVkZSA8c3RhY2s+CisjaW5jbHVkZSA8c3Ry
aW5nPgorI2luY2x1ZGUgPGlzdHJlYW0+CisKKy8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRh
dGEgbWVtYmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bworLy8gYmUg
dXNlZCBieS4uLgorI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FS
TklORykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0
MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0Vf
V0FSTklORykKKworbmFtZXNwYWNlIEpzb24geworCisvKiogXGJyaWVmIFVuc2VyaWFsaXplIGEg
PGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9jdW1lbnQgaW50byBhCisg
KlZhbHVlLgorICoKKyAqIFxkZXByZWNhdGVkIFVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVy
QnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgUmVhZGVyIHsKK3B1YmxpYzoKKyAgdHlwZWRl
ZiBjaGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247CisKKyAgLyoqIFxi
cmllZiBBbiBlcnJvciB0YWdnZWQgd2l0aCB3aGVyZSBpbiB0aGUgSlNPTiB0ZXh0IGl0IHdhcyBl
bmNvdW50ZXJlZC4KKyAgICoKKyAgICogVGhlIG9mZnNldHMgZ2l2ZSB0aGUgW3N0YXJ0LCBsaW1p
dCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSB0ZXh0LiBOb3RlCisgICAqIHRoYXQgdGhpcyBp
cyBieXRlcywgbm90IGNvZGVwb2ludHMuCisgICAqCisgICAqLworICBzdHJ1Y3QgU3RydWN0dXJl
ZEVycm9yIHsKKyAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OworICAgIHNpemVfdCBvZmZzZXRfbGlt
aXQ7CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKKyAgfTsKKworICAvKiogXGJyaWVmIENvbnN0
cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgYWxsIGZlYXR1cmVzCisgICAqIGZvciBwYXJzaW5nLgor
ICAgKi8KKyAgUmVhZGVyKCk7CisKKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFs
bG93aW5nIHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBzZXQKKyAgICogZm9yIHBhcnNpbmcuCisgICAq
LworICBSZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKTsKKworICAvKiogXGJyaWVmIFJl
YWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4K
KyAgICogZG9jdW1lbnQuCisgICAqIFxwYXJhbSBkb2N1bWVudCBVVEYtOCBlbmNvZGVkIHN0cmlu
ZyBjb250YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gcm9vdCBbb3V0
XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAq
ICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBjb2xsZWN0Q29t
bWVudHMgXGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQor
ICAgKiBiYWNrIGR1cmluZworICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRp
b24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCisgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgorICAgKiBGZWF0dXJlczo6YWxsb3dD
b21tZW50c18KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KKyAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwg
XGMgZmFsc2UgaWYgYW4KKyAgICogZXJyb3Igb2NjdXJyZWQuCisgICAqLworICBib29sCisgIHBh
cnNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVj
dENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxh
IEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+CisgICBkb2N1bWVudC4KKyAgICog
XHBhcmFtIGJlZ2luRG9jIFBvaW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5j
b2RlZCBzdHJpbmcgb2YgdGhlCisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gZW5k
RG9jIFBvaW50ZXIgb24gdGhlIGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhl
CisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVn
aW5Eb2MuCisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9m
IHRoZSBkb2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBh
cnNlZC4KKyAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29t
bWVudCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICBiYWNrIGR1cmluZworICAgKiAgICAgICAg
ICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVu
dHMuCisgICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3Jl
ZCBpZgorICAgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCisgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgaXMgXGMgZmFsc2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQg
d2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisgICBlcnJvciBvY2N1cnJl
ZC4KKyAgICovCisgIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAg
ICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAg
ICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLy8vIFxicmllZiBQYXJz
ZSBmcm9tIGlucHV0IHN0cmVhbS4KKyAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6Omlz
dHJlYW0mLCBKc29uOjpWYWx1ZSYpLgorICBib29sIHBhcnNlKHN0ZDo6aXN0cmVhbSYgaXMsIFZh
bHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOworCisgIC8qKiBcYnJpZWYg
UmV0dXJucyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBh
cnNlZAorICAgKiBkb2N1bWVudC4KKyAgICogXHJldHVybiBGb3JtYXR0ZWQgZXJyb3IgbWVzc2Fn
ZSB3aXRoIHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWlyIGxvY2F0aW9uCisgICAqIGluCisg
ICAqICAgICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVy
bmVkIGlmIG5vIGVycm9yCisgICAqIG9jY3VycmVkCisgICAqICAgICAgICAgZHVyaW5nIHBhcnNp
bmcuCisgICAqIFxkZXByZWNhdGVkIFVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5z
dGVhZCAodHlwbyBmaXgpLgorICAgKi8KKyAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgZ2V0Rm9y
bWF0dGVkRXJyb3JNZXNzYWdlcygpIGluc3RlYWQuIikKKyAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0
ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBm
cmllbmRseSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3Vt
ZW50LgorICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qg
b2YgZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUg
cGFyc2VkIGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IK
KyAgICogb2NjdXJyZWQKKyAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICovCisgIHN0
ZDo6c3RyaW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKworICAvKiogXGJy
aWVmIFJldHVybnMgYSB2ZWN0b3Igb2Ygc3RydWN0dXJlZCBlcnJvcyBlbmNvdW50ZWQgd2hpbGUg
cGFyc2luZy4KKyAgICogXHJldHVybiBBIChwb3NzaWJseSBlbXB0eSkgdmVjdG9yIG9mIFN0cnVj
dHVyZWRFcnJvciBvYmplY3RzLiBDdXJyZW50bHkKKyAgICogICAgICAgICBvbmx5IG9uZSBlcnJv
ciBjYW4gYmUgcmV0dXJuZWQsIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCB0b2xlcmF0ZQorICAgKiBt
dWx0aXBsZQorICAgKiAgICAgICAgIGVycm9ycy4gIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSBwYXJz
ZXIgcmVjb3ZlcnMgZnJvbSBhIG5vbi1mYXRhbAorICAgKiAgICAgICAgIHBhcnNlIGVycm9yIGFu
ZCB0aGVuIGVuY291bnRlcnMgYWRkaXRpb25hbCBlcnJvcnMuCisgICAqLworICBzdGQ6OnZlY3Rv
cjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKKworICAvKiog
XGJyaWVmIEFkZCBhIHNlbWFudGljIGVycm9yIG1lc3NhZ2UuCisgICAqIFxwYXJhbSB2YWx1ZSBK
U09OIFZhbHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKKyAgICogXHBhcmFt
IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUg
ZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgdGhlCisgICAqIFZhbHVl
IG9mZnNldCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgorICAgKi8KKyAgYm9vbCBwdXNoRXJy
b3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7CisKKyAg
LyoqIFxicmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdlIHdpdGggZXh0cmEgY29udGV4
dC4KKyAgICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRo
IHRoZSBlcnJvcgorICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAgICog
XHBhcmFtIGV4dHJhIEFkZGl0aW9uYWwgSlNPTiBWYWx1ZSBsb2NhdGlvbiB0byBjb250ZXh0dWFs
aXplIHRoZSBlcnJvcgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNj
ZXNzZnVsbHkgYWRkZWQsIFxjIGZhbHNlIGlmIGVpdGhlcgorICAgKiBWYWx1ZSBvZmZzZXQgZXhj
ZWVkcyB0aGUgZG9jdW1lbnQgc2l6ZS4KKyAgICovCisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZh
bHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRy
YSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm4gd2hldGhlciB0aGVyZSBhcmUgYW55IGVycm9ycy4K
KyAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gcmVwb3J0IFxj
IGZhbHNlIGlmCisgICAqIGVycm9ycyBoYXZlIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbCBnb29k
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIGVudW0gVG9rZW5UeXBlIHsKKyAgICB0b2tlbkVuZE9m
U3RyZWFtID0gMCwKKyAgICB0b2tlbk9iamVjdEJlZ2luLAorICAgIHRva2VuT2JqZWN0RW5kLAor
ICAgIHRva2VuQXJyYXlCZWdpbiwKKyAgICB0b2tlbkFycmF5RW5kLAorICAgIHRva2VuU3RyaW5n
LAorICAgIHRva2VuTnVtYmVyLAorICAgIHRva2VuVHJ1ZSwKKyAgICB0b2tlbkZhbHNlLAorICAg
IHRva2VuTnVsbCwKKyAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAorICAgIHRva2VuTWVtYmVyU2Vw
YXJhdG9yLAorICAgIHRva2VuQ29tbWVudCwKKyAgICB0b2tlbkVycm9yCisgIH07CisKKyAgY2xh
c3MgVG9rZW4geworICBwdWJsaWM6CisgICAgVG9rZW5UeXBlIHR5cGVfOworICAgIExvY2F0aW9u
IHN0YXJ0XzsKKyAgICBMb2NhdGlvbiBlbmRfOworICB9OworCisgIGNsYXNzIEVycm9ySW5mbyB7
CisgIHB1YmxpYzoKKyAgICBUb2tlbiB0b2tlbl87CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87
CisgICAgTG9jYXRpb24gZXh0cmFfOworICB9OworCisgIHR5cGVkZWYgc3RkOjpkZXF1ZTxFcnJv
ckluZm8+IEVycm9yczsKKworICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOworICB2b2lk
IHNraXBTcGFjZXMoKTsKKyAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVy
bkxlbmd0aCk7CisgIGJvb2wgcmVhZENvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ1N0eWxlQ29tbWVu
dCgpOworICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkU3RyaW5nKCk7
CisgIHZvaWQgcmVhZE51bWJlcigpOworICBib29sIHJlYWRWYWx1ZSgpOworICBib29sIHJlYWRP
YmplY3QoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCByZWFkQXJyYXkoVG9rZW4mIHRva2VuKTsKKyAg
Ym9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVOdW1iZXIoVG9r
ZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0
b2tlbik7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRl
Y29kZWQpOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29k
ZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVVbmlj
b2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRp
b24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmlj
b2RlKTsKKyAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29s
IGFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0
aW9uIGV4dHJhID0gMCk7CisgIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVu
dGlsVG9rZW4pOworICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYg
bWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pOworICB2b2lkIHNr
aXBVbnRpbFNwYWNlKCk7CisgIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKKyAgQ2hhciBnZXROZXh0
Q2hhcigpOworICB2b2lkCisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2Nh
dGlvbiwgaW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7CisgIHN0ZDo6c3RyaW5nIGdldExv
Y2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7CisgIHN0ZDo6c3Ry
aW5nIGdldExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7CisgIHZvaWQg
YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCk7CisgIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKTsKKwor
ICB0eXBlZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKKyAgTm9kZXMgbm9kZXNfOworICBF
cnJvcnMgZXJyb3JzXzsKKyAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOworICBMb2NhdGlvbiBiZWdp
bl87CisgIExvY2F0aW9uIGVuZF87CisgIExvY2F0aW9uIGN1cnJlbnRfOworICBMb2NhdGlvbiBs
YXN0VmFsdWVFbmRfOworICBWYWx1ZSogbGFzdFZhbHVlXzsKKyAgc3RkOjpzdHJpbmcgY29tbWVu
dHNCZWZvcmVfOworICBGZWF0dXJlcyBmZWF0dXJlc187CisgIGJvb2wgY29sbGVjdENvbW1lbnRz
XzsKK307ICAvLyBSZWFkZXIKKworLyoqIEludGVyZmFjZSBmb3IgcmVhZGluZyBKU09OIGZyb20g
YSBjaGFyIGFycmF5LgorICovCitjbGFzcyBKU09OX0FQSSBDaGFyUmVhZGVyIHsKK3B1YmxpYzoK
KyAgdmlydHVhbCB+Q2hhclJlYWRlcigpIHt9CisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZy
b20gYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgorICAgZG9jdW1lbnQu
CisgICAqIFRoZSBkb2N1bWVudCBtdXN0IGJlIGEgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFp
bmluZyB0aGUgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICoKKyAgICogXHBhcmFtIGJlZ2luRG9jIFBv
aW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhl
CisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gZW5kRG9jIFBvaW50ZXIgb24gdGhl
IGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCisgICBkb2N1bWVudCB0byBy
ZWFkLgorICAgKiAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KKyAgICogXHBhcmFtIHJvb3Qg
W291dF0gQ29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcwor
ICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gZXJycyBb
b3V0XSBGb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZXMgKGlmIG5vdCBOVUxMKQorICAgKiAgICAgICAg
YSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3RzIGVycm9ycyBpbiB0aGUgcGFyc2VkCisg
ICAqIGRvY3VtZW50LgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBz
dWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgorICAgZXJyb3Igb2NjdXJyZWQuCisg
ICAqLworICB2aXJ0dWFsIGJvb2wgcGFyc2UoCisgICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywg
Y2hhciBjb25zdCogZW5kRG9jLAorICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJz
KSA9IDA7CisKKyAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7CisgIHB1YmxpYzoKKyAgICB2aXJ0
dWFsIH5GYWN0b3J5KCkge30KKyAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEgQ2hhclJlYWRlciB2
aWEgb3BlcmF0b3IgbmV3KCkuCisgICAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0
aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCisgICAgICovCisgICAgdmly
dHVhbCBDaGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29uc3QgPSAwOworICB9OyAgLy8gRmFj
dG9yeQorfTsgIC8vIENoYXJSZWFkZXIKKworLyoqIFxicmllZiBCdWlsZCBhIENoYXJSZWFkZXIg
aW1wbGVtZW50YXRpb24uCisKK1VzYWdlOgorXGNvZGUKKyAgdXNpbmcgbmFtZXNwYWNlIEpzb247
CisgIENoYXJSZWFkZXJCdWlsZGVyIGJ1aWxkZXI7CisgIGJ1aWxkZXJbImNvbGxlY3RDb21tZW50
cyJdID0gZmFsc2U7CisgIFZhbHVlIHZhbHVlOworICBzdGQ6OnN0cmluZyBlcnJzOworICBib29s
IG9rID0gcGFyc2VGcm9tU3RyZWFtKGJ1aWxkZXIsIHN0ZDo6Y2luLCAmdmFsdWUsICZlcnJzKTsK
K1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlckJ1aWxkZXIgOiBwdWJsaWMg
Q2hhclJlYWRlcjo6RmFjdG9yeSB7CitwdWJsaWM6CisgIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246
OlZhbHVlIHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcworICAv
LyB3aXRob3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgorICAvKiogQ29uZmlndXJhdGlvbiBvZiB0
aGlzIGJ1aWxkZXIuCisgICAgVGhlc2UgYXJlIGNhc2Utc2Vuc2l0aXZlLgorICAgIEF2YWlsYWJs
ZSBzZXR0aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gYCJjb2xsZWN0Q29tbWVudHMiOiBm
YWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cg
d3JpdGluZyB0aGVtCisgICAgICAgIGJhY2sgZHVyaW5nIHNlcmlhbGl6YXRpb24sIGZhbHNlIHRv
IGRpc2NhcmQgY29tbWVudHMuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYg
YWxsb3dDb21tZW50cyBpcyBmYWxzZS4KKyAgICAtIGAiYWxsb3dDb21tZW50cyI6IGZhbHNlIG9y
IHRydWVgCisgICAgICAtIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQuCisgICAgLSBgInN0
cmljdFJvb3QiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlmIHJvb3QgbXVzdCBiZSBl
aXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlCisgICAgLSBgImFsbG93RHJvcHBlZE51
bGxQbGFjZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlmIGRyb3BwZWQg
bnVsbCBwbGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIChTZWUgU3RyZWFtV3JpdGVyQnVpbGRlci4p
CisgICAgLSBgImFsbG93TnVtZXJpY0tleXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVl
IGlmIG51bWVyaWMgb2JqZWN0IGtleXMgYXJlIGFsbG93ZWQuCisgICAgLSBgImFsbG93U2luZ2xl
UXVvdGVzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiAnJyBhcmUgYWxsb3dlZCBm
b3Igc3RyaW5ncyAoYm90aCBrZXlzIGFuZCB2YWx1ZXMpCisgICAgLSBgInN0YWNrTGltaXQiOiBp
bnRlZ2VyYAorICAgICAgLSBFeGNlZWRpbmcgc3RhY2tMaW1pdCAocmVjdXJzaXZlIGRlcHRoIG9m
IGByZWFkVmFsdWUoKWApIHdpbGwKKyAgICAgICAgY2F1c2UgYW4gZXhjZXB0aW9uLgorICAgICAg
LSBUaGlzIGlzIGEgc2VjdXJpdHkgaXNzdWUgKHNlZy1mYXVsdHMgY2F1c2VkIGJ5IGRlZXBseSBu
ZXN0ZWQgSlNPTiksCisgICAgICAgIHNvIHRoZSBkZWZhdWx0IGlzIGxvdy4KKyAgICAtIGAiZmFp
bElmRXh0cmEiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0
dXJucyBmYWxzZSB3aGVuIGV4dHJhIG5vbi13aGl0ZXNwYWNlIHRyYWlscworICAgICAgICB0aGUg
SlNPTiB2YWx1ZSBpbiB0aGUgaW5wdXQgc3RyaW5nLgorICAgIC0gYCJyZWplY3REdXBLZXlzIjog
ZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ug
d2hlbiBhIGtleSBpcyBkdXBsaWNhdGVkIHdpdGhpbiBhbiBvYmplY3QuCisgICAgLSBgImFsbG93
U3BlY2lhbEZsb2F0cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIElmIHRydWUsIHNwZWNpYWwg
ZmxvYXQgdmFsdWVzIChOYU5zIGFuZCBpbmZpbml0aWVzKSBhcmUgYWxsb3dlZCAKKyAgICAgICAg
YW5kIHRoZWlyIHZhbHVlcyBhcmUgbG9zc2ZyZWUgcmVzdG9yYWJsZS4KKworICAgIFlvdSBjYW4g
ZXhhbWluZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgorICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlv
dSBjYW4gYWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKKyAgICBKU09OIFZh
bHVlLgorICAgIFxzYSBzZXREZWZhdWx0cygpCisgICAgKi8KKyAgSnNvbjo6VmFsdWUgc2V0dGlu
Z3NfOworCisgIENoYXJSZWFkZXJCdWlsZGVyKCk7CisgIH5DaGFyUmVhZGVyQnVpbGRlcigpOwor
CisgIENoYXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25zdDsKKworICAvKiogXHJldHVybiB0
cnVlIGlmICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50OworICAgKiAgIG90aGVy
d2lzZSwgaW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcuCisgICAqLworICBib29s
IHZhbGlkYXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKKworICAvKiogQSBzaW1wbGUg
d2F5IHRvIHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCisgICAqLworICBWYWx1ZSYgb3BlcmF0
b3JbXShzdGQ6OnN0cmluZyBrZXkpOworCisgIC8qKiBDYWxsZWQgYnkgY3RvciwgYnV0IHlvdSBj
YW4gdXNlIHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgorICAgKiBccHJlICdzZXR0aW5ncycgIT0g
TlVMTCAoYnV0IEpzb246Om51bGwgaXMgZmluZSkKKyAgICogXHJlbWFyayBEZWZhdWx0czoKKyAg
ICogXHNuaXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRl
ckRlZmF1bHRzCisgICAqLworICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSog
c2V0dGluZ3MpOworICAvKiogU2FtZSBhcyBvbGQgRmVhdHVyZXM6OnN0cmljdE1vZGUoKS4KKyAg
ICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCisgICAq
IFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRl
ci5jcHAgQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlCisgICAqLworICBzdGF0aWMgdm9pZCBz
dHJpY3RNb2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Cit9OworCisvKiogQ29uc3VtZSBlbnRp
cmUgc3RyZWFtIGFuZCB1c2UgaXRzIGJlZ2luL2VuZC4KKyAgKiBTb21lZGF5IHdlIG1pZ2h0IGhh
dmUgYSByZWFsIFN0cmVhbVJlYWRlciwgYnV0IGZvciBub3cgdGhpcworICAqIGlzIGNvbnZlbmll
bnQuCisgICovCitib29sIEpTT05fQVBJIHBhcnNlRnJvbVN0cmVhbSgKKyAgICBDaGFyUmVhZGVy
OjpGYWN0b3J5IGNvbnN0JiwKKyAgICBzdGQ6OmlzdHJlYW0mLAorICAgIFZhbHVlKiByb290LCBz
dGQ6OnN0cmluZyogZXJycyk7CisKKy8qKiBcYnJpZWYgUmVhZCBmcm9tICdzaW4nIGludG8gJ3Jv
b3QnLgorCisgQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0aGUgaW5wdXQgSlNPTi4KKworIFRo
aXMgY2FuIGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50byBhIHBhcnRpY3VsYXIgc3ViLW9iamVj
dC4KKyBGb3IgZXhhbXBsZToKKyBcY29kZQorIEpzb246OlZhbHVlIHJvb3Q7CisgY2luID4+IHJv
b3RbImRpciJdWyJmaWxlIl07CisgY291dCA8PCByb290OworIFxlbmRjb2RlCisgUmVzdWx0Ogor
IFx2ZXJiYXRpbQorIHsKKyAiZGlyIjogeworICAgICAiZmlsZSI6IHsKKyAgICAgLy8gVGhlIGlu
cHV0IHN0cmVhbSBKU09OIHdvdWxkIGJlIG5lc3RlZCBoZXJlLgorICAgICB9CisgfQorIH0KKyBc
ZW5kdmVyYmF0aW0KKyBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24gcGFyc2UgZXJyb3IuCisgXHNl
ZSBKc29uOjpvcGVyYXRvcjw8KCkKKyovCitKU09OX0FQSSBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9y
Pj4oc3RkOjppc3RyZWFtJiwgVmFsdWUmKTsKKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisjaWYg
ZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3
YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5U
RVJGQUNFX1dBUk5JTkcpCisKKyNlbmRpZiAvLyBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVE
CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi9yZWFkZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRl
ci5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRv
bWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4K
Ky8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3Bw
LnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9XUklURVJfSF9JTkNMVURF
RAorI2RlZmluZSBKU09OX1dSSVRFUl9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKyNpbmNsdWRlICJ2YWx1ZS5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVk
KEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8b3N0cmVhbT4KKworLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0
YSBtZW1iZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1
c2VkIGJ5Li4uCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQy
NTEpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HKQorCituYW1lc3BhY2UgSnNvbiB7CisKK2NsYXNzIFZhbHVlOworCisvKioKKworVXNh
Z2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgdm9pZCB3cml0ZVRvU3Rkb3V0
KFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHZhbHVl
KSB7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gY29uc3Qgd3JpdGVyKAorICAg
ICAgZmFjdG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgICAgd3JpdGVyLT53cml0ZSh2YWx1ZSwg
JnN0ZDo6Y291dCk7CisgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQg
Zmx1c2gKKyAgfQorXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBTdHJlYW1Xcml0ZXIgewor
cHJvdGVjdGVkOgorICBzdGQ6Om9zdHJlYW0qIHNvdXRfOyAgLy8gbm90IG93bmVkOyB3aWxsIG5v
dCBkZWxldGUKK3B1YmxpYzoKKyAgU3RyZWFtV3JpdGVyKCk7CisgIHZpcnR1YWwgflN0cmVhbVdy
aXRlcigpOworICAvKiogV3JpdGUgVmFsdWUgaW50byBkb2N1bWVudCBhcyBjb25maWd1cmVkIGlu
IHN1Yi1jbGFzcy4KKyAgICAgIERvIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBzb3V0LCBidXQgbWFp
bnRhaW4gYSByZWZlcmVuY2UgZHVyaW5nIGZ1bmN0aW9uLgorICAgICAgXHByZSBzb3V0ICE9IE5V
TEwKKyAgICAgIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIChGb3Igbm93LCB3ZSBhbHdheXMgcmV0
dXJuIHplcm8sIHNvIGNoZWNrIHRoZSBzdHJlYW0gaW5zdGVhZC4pCisgICAgICBcdGhyb3cgc3Rk
OjpleGNlcHRpb24gcG9zc2libHksIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uCisgICAqLwor
ICB2aXJ0dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0
KSA9IDA7CisKKyAgLyoqIFxicmllZiBBIHNpbXBsZSBhYnN0cmFjdCBmYWN0b3J5LgorICAgKi8K
KyAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7CisgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5GYWN0
b3J5KCk7CisgICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9y
IG5ldygpLgorICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3
cm9uZyAoZS5nLiBpbnZhbGlkIHNldHRpbmdzKQorICAgICAqLworICAgIHZpcnR1YWwgU3RyZWFt
V3JpdGVyKiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCA9IDA7CisgIH07ICAvLyBGYWN0b3J5Cit9
OyAgLy8gU3RyZWFtV3JpdGVyCisKKy8qKiBcYnJpZWYgV3JpdGUgaW50byBzdHJpbmdzdHJlYW0s
IHRoZW4gcmV0dXJuIHN0cmluZywgZm9yIGNvbnZlbmllbmNlLgorICogQSBTdHJlYW1Xcml0ZXIg
d2lsbCBiZSBjcmVhdGVkIGZyb20gdGhlIGZhY3RvcnksIHVzZWQsIGFuZCB0aGVuIGRlbGV0ZWQu
CisgKi8KK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFj
dG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHJvb3QpOworCisKKy8qKiBcYnJpZWYg
QnVpbGQgYSBTdHJlYW1Xcml0ZXIgaW1wbGVtZW50YXRpb24uCisKK1VzYWdlOgorXGNvZGUKKyAg
dXNpbmcgbmFtZXNwYWNlIEpzb247CisgIFZhbHVlIHZhbHVlID0gLi4uOworICBTdHJlYW1Xcml0
ZXJCdWlsZGVyIGJ1aWxkZXI7CisgIGJ1aWxkZXJbImNvbW1lbnRTdHlsZSJdID0gIk5vbmUiOwor
ICBidWlsZGVyWyJpbmRlbnRhdGlvbiJdID0gIiAgICI7ICAvLyBvciB3aGF0ZXZlciB5b3UgbGlr
ZQorICBzdGQ6OnVuaXF1ZV9wdHI8SnNvbjo6U3RyZWFtV3JpdGVyPiB3cml0ZXIoCisgICAgICBi
dWlsZGVyLm5ld1N0cmVhbVdyaXRlcigpKTsKKyAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6
Y291dCk7CisgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCitc
ZW5kY29kZQorKi8KK2NsYXNzIEpTT05fQVBJIFN0cmVhbVdyaXRlckJ1aWxkZXIgOiBwdWJsaWMg
U3RyZWFtV3JpdGVyOjpGYWN0b3J5IHsKK3B1YmxpYzoKKyAgLy8gTm90ZTogV2UgdXNlIGEgSnNv
bjo6VmFsdWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVycyB0byB0aGlzIGNsYXNzCisg
IC8vIHdpdGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCisgIC8qKiBDb25maWd1cmF0aW9uIG9m
IHRoaXMgYnVpbGRlci4KKyAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vuc2l0aXZlKToK
KyAgICAtICJjb21tZW50U3R5bGUiOiAiTm9uZSIgb3IgIkFsbCIKKyAgICAtICJpbmRlbnRhdGlv
biI6ICAiPGFueXRoaW5nPiIKKyAgICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNl
IG9yIHRydWUKKyAgICAgIC0gc2xpZ2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBj
b2xvbnMKKyAgICAtICJkcm9wTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKKyAgICAg
IC0gRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51
bGxWYWx1ZXMuCisgICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBK
U09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCisgICAgICAgIGZlZCB0byBhIGJyb3dz
ZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQorICAg
ICAgICBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCisgICAgLSAidXNl
U3BlY2lhbEZsb2F0cyI6IGZhbHNlIG9yIHRydWUKKyAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBu
b24tZmluaXRlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAg
ICAgICAgTmFOIHZhbHVlcyBhcyAiTmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5
IiwgYW5kIG5lZ2F0aXZlIGluZmluaXR5CisgICAgICAgIGFzICItSW5maW5pdHkiLgorCisgICAg
WW91IGNhbiBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCisgICAgdG8gc2VlIHRoZSBkZWZh
dWx0cy4gWW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVzdCBsaWtlIGFueQorICAg
IEpTT04gVmFsdWUuCisgICAgXHNhIHNldERlZmF1bHRzKCkKKyAgICAqLworICBKc29uOjpWYWx1
ZSBzZXR0aW5nc187CisKKyAgU3RyZWFtV3JpdGVyQnVpbGRlcigpOworICB+U3RyZWFtV3JpdGVy
QnVpbGRlcigpOworCisgIC8qKgorICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRo
aW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICovCisgIFN0cmVhbVdy
aXRlciogbmV3U3RyZWFtV3JpdGVyKCkgY29uc3Q7CisKKyAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAn
c2V0dGluZ3MnIGFyZSBsZWdhbCBhbmQgY29uc2lzdGVudDsKKyAgICogICBvdGhlcndpc2UsIGlu
ZGljYXRlIGJhZCBzZXR0aW5ncyB2aWEgJ2ludmFsaWQnLgorICAgKi8KKyAgYm9vbCB2YWxpZGF0
ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3Q7CisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBk
YXRlIGEgc3BlY2lmaWMgc2V0dGluZy4KKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6
c3RyaW5nIGtleSk7CisKKyAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhp
cyB0byByZXNldCBzZXR0aW5nc18uCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQg
SnNvbjo6bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBl
dCBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0
cworICAgKi8KKyAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdz
KTsKK307CisKKy8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCisgKiBcZGVw
cmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyLiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1l
bnRhdGlvbiBkZXRhaWwuKQorICovCitjbGFzcyBKU09OX0FQSSBXcml0ZXIgeworcHVibGljOgor
ICB2aXJ0dWFsIH5Xcml0ZXIoKTsKKworICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0
IFZhbHVlJiByb290KSA9IDA7Cit9OworCisvKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQKKyAqd2l0aG91dCBm
b3JtYXR0aW5nIChub3QgaHVtYW4gZnJpZW5kbHkpLgorICoKKyAqIFRoZSBKU09OIGRvY3VtZW50
IGlzIHdyaXR0ZW4gaW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVt
YW4nCisgKmNvbnN1bXB0aW9uLAorICogYnV0IG1heSBiZSB1c2VmdWxsIHRvIHN1cHBvcnQgZmVh
dHVyZSBzdWNoIGFzIFJQQyB3aGVyZSBiYW5kd2l0aCBpcyBsaW1pdGVkLgorICogXHNhIFJlYWRl
ciwgVmFsdWUKKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgorICovCitj
bGFzcyBKU09OX0FQSSBGYXN0V3JpdGVyIDogcHVibGljIFdyaXRlciB7CisKK3B1YmxpYzoKKyAg
RmFzdFdyaXRlcigpOworICB+RmFzdFdyaXRlcigpIHt9CisKKyAgdm9pZCBlbmFibGVZQU1MQ29t
cGF0aWJpbGl0eSgpOworCisgIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9t
IHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCisgICAqIFN0cmljdGx5IHNwZWFr
aW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5n
CisgICAqIGZlZCB0byBhIGJyb3dzZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxl
ciBvdXRwdXQgYW5kIHRoZQorICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0
IGZpbmUuCisgICAqLworICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7CisKKyAgdm9pZCBv
bWl0RW5kaW5nTGluZUZlZWQoKTsKKworcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVy
CisgIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKKworcHJpdmF0ZToKKyAg
dm9pZCB3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgc3RkOjpzdHJpbmcgZG9j
dW1lbnRfOworICBib29sIHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXzsKKyAgYm9vbCBkcm9wTnVs
bFBsYWNlaG9sZGVyc187CisgIGJvb2wgb21pdEVuZGluZ0xpbmVGZWVkXzsKK307CisKKy8qKiBc
YnJpZWYgV3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNP
TjwvYT4gZm9ybWF0IGluIGEKKyAqaHVtYW4gZnJpZW5kbHkgd2F5LgorICoKKyAqIFRoZSBydWxl
cyBmb3IgbGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6CisgKiAtIE9iamVjdCB2
YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5k
IGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJy
ZWFrICYgaW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCisgKmxpbmUKKyAqICAgICAgIGFuZCB0
aGVuIHVuaW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCisgKiAtIEFycmF5IHZh
bHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBhbmQg
bGluZSBicmVhaworICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2YWx1
ZSwgZW1wdHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQorICp0eXBlcywKKyAqICAgICAgIGFu
ZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBv
biBhIHNpbmdsZQorICpsaW5lLgorICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVzIGRv
IG5vdCBmaXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucworICogICAgICAgb2Jq
ZWN0IG9yIG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUuCisg
KgorICogSWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRlZCBh
Y2NvcmRpbmcgdG8gdGhlaXIKKyAqI0NvbW1lbnRQbGFjZW1lbnQuCisgKgorICogXHNhIFJlYWRl
ciwgVmFsdWUsIFZhbHVlOjpzZXRDb21tZW50KCkKKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1X
cml0ZXJCdWlsZGVyLgorICovCitjbGFzcyBKU09OX0FQSSBTdHlsZWRXcml0ZXIgOiBwdWJsaWMg
V3JpdGVyIHsKK3B1YmxpYzoKKyAgU3R5bGVkV3JpdGVyKCk7CisgIH5TdHlsZWRXcml0ZXIoKSB7
fQorCitwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKKyAgLyoqIFxicmllZiBTZXJp
YWxpemUgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQuCisgICAqIFxwYXJhbSByb290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KKyAgICogXHJldHVy
biBTdHJpbmcgY29udGFpbmluZyB0aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhl
IHJvb3QgdmFsdWUuCisgICAqLworICBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9v
dCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwor
ICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBib29sIGlzTXVs
dGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKGNvbnN0IHN0
ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9pZCB3cml0ZVdp
dGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAg
dm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZh
bHVlJiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25z
dCBWYWx1ZSYgcm9vdCk7CisgIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2
YWx1ZSk7CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qgc3RkOjpzdHJp
bmcmIHRleHQpOworCisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFs
dWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgc3RkOjpzdHJpbmcgZG9jdW1l
bnRfOworICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOworICBpbnQgcmlnaHRNYXJnaW5fOwor
ICBpbnQgaW5kZW50U2l6ZV87CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfOworfTsKKworLyoqIFxi
cmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09O
PC9hPiBmb3JtYXQgaW4gYQorIGh1bWFuIGZyaWVuZGx5IHdheSwKKyAgICAgdG8gYSBzdHJlYW0g
cmF0aGVyIHRoYW4gdG8gYSBzdHJpbmcuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFr
IGFuZCBpbmRlbnQgYXJlIGFzIGZvbGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0g
aWYgZW1wdHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICog
ICAgIC0gaWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHBy
aW50IG9uZSB2YWx1ZSBwZXIKKyBsaW5lCisgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQg
bGluZSBicmVhayBhbmQgcHJpbnQgJ30nLgorICogLSBBcnJheSB2YWx1ZToKKyAqICAgICAtIGlm
IGVtcHR5IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAg
ICAtIGlmIHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9y
IHNvbWUgb3RoZXIgdmFsdWUKKyB0eXBlcywKKyAqICAgICAgIGFuZCBhbGwgdGhlIHZhbHVlcyBm
aXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNpbmdsZQorIGxpbmUu
CisgKiAgICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGlu
ZSwgb3IgdGhlIGFycmF5IGNvbnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFy
cmF5LCB0aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFsdWUg
aGF2ZSBjb21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgor
ICNDb21tZW50UGxhY2VtZW50LgorICoKKyAqIFxwYXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVs
IHdpbGwgYmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91bnQgZXh0cmEuCisgKiBcc2EgUmVhZGVyLCBW
YWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRl
ckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRlciB7CitwdWJs
aWM6CisgIFN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9ICJcdCIp
OworICB+U3R5bGVkU3RyZWFtV3JpdGVyKCkge30KKworcHVibGljOgorICAvKiogXGJyaWVmIFNl
cmlhbGl6ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+
IGZvcm1hdC4KKyAgICogXHBhcmFtIG91dCBTdHJlYW0gdG8gd3JpdGUgdG8uIChDYW4gYmUgb3N0
cmluZ3N0cmVhbSwgZS5nLikKKyAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgor
ICAgKiBcbm90ZSBUaGVyZSBpcyBubyBwb2ludCBpbiBkZXJpdmluZyBmcm9tIFdyaXRlciwgc2lu
Y2Ugd3JpdGUoKSBzaG91bGQgbm90CisgICAqIHJldHVybiBhIHZhbHVlLgorICAgKi8KKyAgdm9p
ZCB3cml0ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpOworCitwcml2YXRl
OgorICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFy
cmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbmVBcnJheShjb25z
dCBWYWx1ZSYgdmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFs
dWUpOworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0
IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7CisgIHZvaWQgdW5pbmRlbnQo
KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7Cisg
IHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3Qp
OworICBib29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBzdGF0
aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKKwor
ICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKKworICBDaGls
ZFZhbHVlcyBjaGlsZFZhbHVlc187CisgIHN0ZDo6b3N0cmVhbSogZG9jdW1lbnRfOworICBzdGQ6
OnN0cmluZyBpbmRlbnRTdHJpbmdfOworICBpbnQgcmlnaHRNYXJnaW5fOworICBzdGQ6OnN0cmlu
ZyBpbmRlbnRhdGlvbl87CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKKyAgYm9vbCBpbmRl
bnRlZF8gOiAxOworfTsKKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitzdGQ6OnN0cmlu
ZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKEludCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQ
SSB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpOworI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9I
QVNfSU5UNjQpCitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQg
dmFsdWUpOworc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2
YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGRvdWJsZSB2YWx1ZSk7
CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpOworc3RkOjpz
dHJpbmcgSlNPTl9BUEkgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSk7CisK
Ky8vLyBcYnJpZWYgT3V0cHV0IHVzaW5nIHRoZSBTdHlsZWRTdHJlYW1Xcml0ZXIuCisvLy8gXHNl
ZSBKc29uOjpvcGVyYXRvcj4+KCkKK0pTT05fQVBJIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChz
dGQ6Om9zdHJlYW0mLCBjb25zdCBWYWx1ZSYgcm9vdCk7CisKK30gLy8gbmFtZXNwYWNlIEpzb24K
KworI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNw
cmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVf
RExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisjZW5kaWYgLy8gSlNPTl9XUklURVJfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vd3JpdGVyLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3Nl
cnRpb25zLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0
aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJs
aWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0
aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pz
b25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX0FTU0VS
VElPTlNfSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURF
RAorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3N0cmVhbT4KKworI2lmICFkZWZp
bmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmIC8v
IGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCisvKiogSXQgc2hvdWxkIG5vdCBi
ZSBwb3NzaWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBmaWxlIHRvCisgKiAgY2F1c2Ug
YW4gYWJvcnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBvbmx5Cisg
KiAgZm9yIHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50ZXJuYWwgbG9naWMgZXJyb3Jz
LgorICovCisjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCisKKy8vIEB0b2RvIDw9IGFkZCBkZXRhaWwg
YWJvdXQgY29uZGl0aW9uIGluIGV4Y2VwdGlvbgorIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0
aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
e2lmICghKGNvbmRpdGlvbikpIHtKc29uOjp0aHJvd0xvZ2ljRXJyb3IoICJhc3NlcnQganNvbiBm
YWlsZWQiICk7fX0KKworIyBkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEpzb246OnRocm93TG9naWNFcnJv
cihvc3Muc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBhYm9ydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworI2Vsc2UgLy8gSlNPTl9VU0VfRVhDRVBU
SU9OCisKKyMgZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikK
KworLy8gVGhlIGNhbGwgdG8gYXNzZXJ0KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2Ug
aW4gZGVidWcgYnVpbGRzLiBJbgorLy8gcmVsZWFzZSBidWlsZHMgd2UgYWJvcnQsIGZvciBhIGNv
cmUtZHVtcCBvciBkZWJ1Z2dlci4KKyMgZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2Up
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7IG9zcyA8PCBtZXNzYWdl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhc3NlcnQoZmFsc2Ug
JiYgb3NzLnN0cigpLmNfc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKworI2VuZGlmCisKKyNkZWZp
bmUgSlNPTl9BU1NFUlRfTUVTU0FHRShjb25kaXRpb24sIG1lc3NhZ2UpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIGlmICghKGNvbmRpdGlvbikpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEpTT05fRkFJ
TF9NRVNTQUdFKG1lc3NhZ2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgfQorCisjZW5kaWYgLy8gQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5D
TFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5j
bHVkZS9qc29uL2Fzc2VydGlvbnMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKyNlbmRp
ZiAvL2lmbmRlZiBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uY3BwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjMyODczMjdjMGQ2NjMyMTUwNWVhZDJk
MmVlNDY3ZTczOWYxNWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uY3BwLmNwcApAQCAtMCwwICsxLDUyNjYgQEAKKy8vLyBKc29uLWNwcCBhbWFs
Z2F0ZWQgc291cmNlIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBp
cyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi5oIgorCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKy8qCitUaGUgSnNvbkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUs
IGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiwgCit0ZXN0cyBhbmQgZGVtb25z
dHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCitj
b25kaXRpb25zLi4uCisKK1RoZSBhdXRob3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRs
eSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK2p1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2du
aXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1cmlzZGljdGlvbnMsIAordGhpcyBzb2Z0
d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMgRG9tYWluLgorCitJbiBqdXJpc2RpY3Rp
b25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBH
ZXJtYW55IGFzIG9mCisyMDEwKSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDct
MjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBpcworcmVsZWFzZWQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KKworSW4ganVyaXNkaWN0aW9ucyB3
aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAK
K3NvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9t
YWluLCAyKSB1bmRlciB0aGUgCitjb25kaXRpb25zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJl
bG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9mIGR1YWwgCitQdWJsaWMgRG9tYWluL01JVCBM
aWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhlcmUsIGFzIHRoZXkgY2hvb3NlLgorCitUaGUg
TUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2UgdG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vu
c2UgY2FuIGdldCwgYW5kIGlzCitkZXNjcmliZWQgaW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6
CisKKyAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKKyAgIAorVGhl
IGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9sbG93czoKKworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKworUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KK29idGFp
bmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
CitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwKK21vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcworb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNP
RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
CitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTCitCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KK0FDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCitDT05ORUNUSU9OIFdJ
VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZU
V0FSRS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorKEVORCBMSUNFTlNFIFRFWFQpCisKK1RoZSBNSVQgbGlj
ZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0aGUgR1BMIGFuZCBjb21tZXJjaWFsCitzb2Z0
d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhlIHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdp
dGggdGhlCittaW5vciBudWlzYW5jZSBvZiBiZWluZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlCithbmQgbGljZW5zZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4g
Tm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRoZQorUHVibGljIERvbWFpbiAibGljZW5zZSIg
eW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1c2luZyB3aGF0ZXZlcgorbGljZW5zZSB5b3Ug
bGlrZS4KKworKi8KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworI2luY2x1ZGUgImpzb24v
anNvbi5oIgorCisjaWZuZGVmIEpTT05fSVNfQU1BTEdBTUFUSU9OCisjZXJyb3IgIkNvbXBpbGUg
d2l0aCAtSSBQQVRIX1RPX0pTT05fRElSRUNUT1JZIgorI2VuZGlmCisKKworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25f
dG9vbC5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgTElCX0pTT05DUFBfSlNPTl9U
T09MX0hfSU5DTFVERUQKKyNkZWZpbmUgTElCX0pTT05DUFBfSlNPTl9UT09MX0hfSU5DTFVERUQK
KworLyogVGhpcyBoZWFkZXIgcHJvdmlkZXMgY29tbW9uIHN0cmluZyBtYW5pcHVsYXRpb24gc3Vw
cG9ydCwgc3VjaCBhcyBVVEYtOCwKKyAqIHBvcnRhYmxlIGNvbnZlcnNpb24gZnJvbS90byBzdHJp
bmcuLi4KKyAqCisgKiBJdCBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgdGhhdCBtdXN0IG5vdCBiZSBl
eHBvc2VkLgorICovCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8vIENvbnZlcnRzIGEgdW5pY29k
ZSBjb2RlLXBvaW50IHRvIFVURi04Lgorc3RhdGljIGlubGluZSBzdGQ6OnN0cmluZyBjb2RlUG9p
bnRUb1VURjgodW5zaWduZWQgaW50IGNwKSB7CisgIHN0ZDo6c3RyaW5nIHJlc3VsdDsKKworICAv
LyBiYXNlZCBvbiBkZXNjcmlwdGlvbiBmcm9tIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
VVRGLTgKKworICBpZiAoY3AgPD0gMHg3ZikgeworICAgIHJlc3VsdC5yZXNpemUoMSk7CisgICAg
cmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oY3ApOworICB9IGVsc2UgaWYgKGNwIDw9IDB4
N0ZGKSB7CisgICAgcmVzdWx0LnJlc2l6ZSgyKTsKKyAgICByZXN1bHRbMV0gPSBzdGF0aWNfY2Fz
dDxjaGFyPigweDgwIHwgKDB4M2YgJiBjcCkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4QzAgfCAoMHgxZiAmIChjcCA+PiA2KSkpOworICB9IGVsc2UgaWYgKGNwIDw9IDB4
RkZGRikgeworICAgIHJlc3VsdC5yZXNpemUoMyk7CisgICAgcmVzdWx0WzJdID0gc3RhdGljX2Nh
c3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICByZXN1bHRbMV0gPSBzdGF0aWNfY2Fz
dDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gNikpKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0
aWNfY2FzdDxjaGFyPigweEUwIHwgKDB4ZiAmIChjcCA+PiAxMikpKTsKKyAgfSBlbHNlIGlmIChj
cCA8PSAweDEwRkZGRikgeworICAgIHJlc3VsdC5yZXNpemUoNCk7CisgICAgcmVzdWx0WzNdID0g
c3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICByZXN1bHRbMl0gPSBz
dGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gNikpKTsKKyAgICByZXN1bHRb
MV0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gMTIpKSk7CisgICAg
cmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGMCB8ICgweDcgJiAoY3AgPj4gMTgpKSk7
CisgIH0KKworICByZXR1cm4gcmVzdWx0OworfQorCisvLy8gUmV0dXJucyB0cnVlIGlmIGNoIGlz
IGEgY29udHJvbCBjaGFyYWN0ZXIgKGluIHJhbmdlIFsxLDMxXSkuCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNDb250cm9sQ2hhcmFjdGVyKGNoYXIgY2gpIHsgcmV0dXJuIGNoID4gMCAmJiBjaCA8PSAw
eDFGOyB9CisKK2VudW0geworICAvLy8gQ29uc3RhbnQgdGhhdCBzcGVjaWZ5IHRoZSBzaXplIG9m
IHRoZSBidWZmZXIgdGhhdCBtdXN0IGJlIHBhc3NlZCB0bworICAvLy8gdWludFRvU3RyaW5nLgor
ICB1aW50VG9TdHJpbmdCdWZmZXJTaXplID0gMyAqIHNpemVvZihMYXJnZXN0VUludCkgKyAxCit9
OworCisvLyBEZWZpbmVzIGEgY2hhciBidWZmZXIgZm9yIHVzZSB3aXRoIHVpbnRUb1N0cmluZygp
LgordHlwZWRlZiBjaGFyIFVJbnRUb1N0cmluZ0J1ZmZlclt1aW50VG9TdHJpbmdCdWZmZXJTaXpl
XTsKKworLyoqIENvbnZlcnRzIGFuIHVuc2lnbmVkIGludGVnZXIgdG8gc3RyaW5nLgorICogQHBh
cmFtIHZhbHVlIFVuc2lnbmVkIGludGVyZ2VyIHRvIGNvbnZlcnQgdG8gc3RyaW5nCisgKiBAcGFy
YW0gY3VycmVudCBJbnB1dC9PdXRwdXQgc3RyaW5nIGJ1ZmZlci4KKyAqICAgICAgICBNdXN0IGhh
dmUgYXQgbGVhc3QgdWludFRvU3RyaW5nQnVmZmVyU2l6ZSBjaGFycyBmcmVlLgorICovCitzdGF0
aWMgaW5saW5lIHZvaWQgdWludFRvU3RyaW5nKExhcmdlc3RVSW50IHZhbHVlLCBjaGFyKiYgY3Vy
cmVudCkgeworICAqLS1jdXJyZW50ID0gMDsKKyAgZG8geworICAgICotLWN1cnJlbnQgPSBzdGF0
aWNfY2FzdDxzaWduZWQgY2hhcj4odmFsdWUgJSAxMFUgKyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
JzAnKSk7CisgICAgdmFsdWUgLz0gMTA7CisgIH0gd2hpbGUgKHZhbHVlICE9IDApOworfQorCisv
KiogQ2hhbmdlICcsJyB0byAnLicgZXZlcnl3aGVyZSBpbiBidWZmZXIuCisgKgorICogV2UgaGFk
IGEgc29waGlzdGljYXRlZCB3YXksIGJ1dCBpdCBkaWQgbm90IHdvcmsgaW4gV2luQ0UuCisgKiBA
c2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvcHVsbC85
CisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBmaXhOdW1lcmljTG9jYWxlKGNoYXIqIGJlZ2luLCBj
aGFyKiBlbmQpIHsKKyAgd2hpbGUgKGJlZ2luIDwgZW5kKSB7CisgICAgaWYgKCpiZWdpbiA9PSAn
LCcpIHsKKyAgICAgICpiZWdpbiA9ICcuJzsKKyAgICB9CisgICAgKytiZWdpbjsKKyAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBKc29uIHsKKworI2VuZGlmIC8vIExJQl9KU09OQ1BQX0pTT05fVE9P
TF9IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZp
bGU6IHNyYy9saWJfanNvbi9qc29uX3Rvb2wuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisK
KworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3Jj
L2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmln
aHQgMjAwNy0yMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQg
aW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3Ig
Y29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWYgIWRl
ZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+
CisjaW5jbHVkZSA8anNvbi9yZWFkZXIuaD4KKyNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+CisjaW5j
bHVkZSAianNvbl90b29sLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FN
QVRJT04pCisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8
Y2Fzc2VydD4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGlzdHJlYW0+CisjaW5jbHVk
ZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUg
PGxpbWl0cz4KKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWYgIWRlZmluZWQoV0lOQ0UpICYm
IGRlZmluZWQoX19TVERDX1NFQ1VSRV9MSUJfXykgJiYgX01TQ19WRVIgPj0gMTUwMCAvLyBWQysr
IDkuMCBhbmQgYWJvdmUgCisjZGVmaW5lIHNucHJpbnRmIHNwcmludGZfcworI2VsaWYgX01TQ19W
RVIgPj0gMTkwMCAvLyBWQysrIDE0LjAgYW5kIGFib3ZlCisjZGVmaW5lIHNucHJpbnRmIHN0ZDo6
c25wcmludGYKKyNlbHNlCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50ZgorI2VuZGlmCisjZWxp
ZiBkZWZpbmVkKF9fQU5EUk9JRF9fKSB8fCBkZWZpbmVkKF9fUU5YTlRPX18pCisjZGVmaW5lIHNu
cHJpbnRmIHNucHJpbnRmCisjZWxpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCisjZGVmaW5lIHNu
cHJpbnRmIHN0ZDo6c25wcmludGYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX1FOWE5UT19fKQor
I2RlZmluZSBzc2NhbmYgc3RkOjpzc2NhbmYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZF
UikgJiYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAorLy8gRGlzYWJsZSB3YXJuaW5nIGFi
b3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0
OTk2KQorI2VuZGlmCisKK3N0YXRpYyBpbnQgY29uc3Qgc3RhY2tMaW1pdF9nID0gMTAwMDsKK3N0
YXRpYyBpbnQgICAgICAgc3RhY2tEZXB0aF9nID0gMDsgIC8vIHNlZSByZWFkVmFsdWUoKQorCitu
YW1lc3BhY2UgSnNvbiB7CisKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZpbmVk
KF9DUFBMSUJfVkVSKSAmJiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5pcXVl
X3B0cjxDaGFyUmVhZGVyPiBDaGFyUmVhZGVyUHRyOworI2Vsc2UKK3R5cGVkZWYgc3RkOjphdXRv
X3B0cjxDaGFyUmVhZGVyPiAgIENoYXJSZWFkZXJQdHI7CisjZW5kaWYKKworLy8gSW1wbGVtZW50
YXRpb24gb2YgY2xhc3MgRmVhdHVyZXMKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK0ZlYXR1cmVzOjpGZWF0dXJlcygpCisgICAgOiBhbGxvd0NvbW1lbnRzXyh0cnVlKSwg
c3RyaWN0Um9vdF8oZmFsc2UpLAorICAgICAgYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18o
ZmFsc2UpLCBhbGxvd051bWVyaWNLZXlzXyhmYWxzZSkge30KKworRmVhdHVyZXMgRmVhdHVyZXM6
OmFsbCgpIHsgcmV0dXJuIEZlYXR1cmVzKCk7IH0KKworRmVhdHVyZXMgRmVhdHVyZXM6OnN0cmlj
dE1vZGUoKSB7CisgIEZlYXR1cmVzIGZlYXR1cmVzOworICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRz
XyA9IGZhbHNlOworICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHRydWU7CisgIGZlYXR1cmVzLmFs
bG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfID0gZmFsc2U7CisgIGZlYXR1cmVzLmFsbG93TnVt
ZXJpY0tleXNfID0gZmFsc2U7CisgIHJldHVybiBmZWF0dXJlczsKK30KKworLy8gSW1wbGVtZW50
YXRpb24gb2YgY2xhc3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCitzdGF0aWMgYm9vbCBjb250YWluc05ld0xpbmUoUmVhZGVyOjpMb2NhdGlvbiBiZWdpbiwg
UmVhZGVyOjpMb2NhdGlvbiBlbmQpIHsKKyAgZm9yICg7IGJlZ2luIDwgZW5kOyArK2JlZ2luKQor
ICAgIGlmICgqYmVnaW4gPT0gJ1xuJyB8fCAqYmVnaW4gPT0gJ1xyJykKKyAgICAgIHJldHVybiB0
cnVlOworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIENsYXNzIFJlYWRlcgorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKK1JlYWRlcjo6UmVhZGVyKCkKKyAgICA6IGVycm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2lu
XygpLCBlbmRfKCksIGN1cnJlbnRfKCksIGxhc3RWYWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1
ZV8oKSwgY29tbWVudHNCZWZvcmVfKCksIGZlYXR1cmVzXyhGZWF0dXJlczo6YWxsKCkpLAorICAg
ICAgY29sbGVjdENvbW1lbnRzXygpIHt9CisKK1JlYWRlcjo6UmVhZGVyKGNvbnN0IEZlYXR1cmVz
JiBmZWF0dXJlcykKKyAgICA6IGVycm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2luXygpLCBlbmRf
KCksIGN1cnJlbnRfKCksIGxhc3RWYWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1ZV8oKSwgY29t
bWVudHNCZWZvcmVfKCksIGZlYXR1cmVzXyhmZWF0dXJlcyksIGNvbGxlY3RDb21tZW50c18oKSB7
Cit9CisKK2Jvb2wKK1JlYWRlcjo6cGFyc2UoY29uc3Qgc3RkOjpzdHJpbmcmIGRvY3VtZW50LCBW
YWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMpIHsKKyAgZG9jdW1lbnRfID0gZG9jdW1l
bnQ7CisgIGNvbnN0IGNoYXIqIGJlZ2luID0gZG9jdW1lbnRfLmNfc3RyKCk7CisgIGNvbnN0IGNo
YXIqIGVuZCA9IGJlZ2luICsgZG9jdW1lbnRfLmxlbmd0aCgpOworICByZXR1cm4gcGFyc2UoYmVn
aW4sIGVuZCwgcm9vdCwgY29sbGVjdENvbW1lbnRzKTsKK30KKworYm9vbCBSZWFkZXI6OnBhcnNl
KHN0ZDo6aXN0cmVhbSYgc2luLCBWYWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMpIHsK
KyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGJlZ2luKHNpbik7CisgIC8vIHN0ZDo6
aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBlbmQ7CisgIC8vIFRob3NlIHdvdWxkIGFsbG93IHN0cmVh
bWVkIGlucHV0IGZyb20gYSBmaWxlLCBpZiBwYXJzZSgpIHdlcmUgYQorICAvLyB0ZW1wbGF0ZSBm
dW5jdGlvbi4KKworICAvLyBTaW5jZSBzdGQ6OnN0cmluZyBpcyByZWZlcmVuY2UtY291bnRlZCwg
dGhpcyBhdCBsZWFzdCBkb2VzIG5vdAorICAvLyBjcmVhdGUgYW4gZXh0cmEgY29weS4KKyAgc3Rk
OjpzdHJpbmcgZG9jOworICBzdGQ6OmdldGxpbmUoc2luLCBkb2MsIChjaGFyKUVPRik7CisgIHJl
dHVybiBwYXJzZShkb2MsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7Cit9CisKK2Jvb2wgUmVhZGVy
OjpwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiBlbmREb2MsCisgICAgICAgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAg
ICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMpIHsKKyAgaWYgKCFmZWF0dXJlc18uYWxsb3dD
b21tZW50c18pIHsKKyAgICBjb2xsZWN0Q29tbWVudHMgPSBmYWxzZTsKKyAgfQorCisgIGJlZ2lu
XyA9IGJlZ2luRG9jOworICBlbmRfID0gZW5kRG9jOworICBjb2xsZWN0Q29tbWVudHNfID0gY29s
bGVjdENvbW1lbnRzOworICBjdXJyZW50XyA9IGJlZ2luXzsKKyAgbGFzdFZhbHVlRW5kXyA9IDA7
CisgIGxhc3RWYWx1ZV8gPSAwOworICBjb21tZW50c0JlZm9yZV8gPSAiIjsKKyAgZXJyb3JzXy5j
bGVhcigpOworICB3aGlsZSAoIW5vZGVzXy5lbXB0eSgpKQorICAgIG5vZGVzXy5wb3AoKTsKKyAg
bm9kZXNfLnB1c2goJnJvb3QpOworCisgIHN0YWNrRGVwdGhfZyA9IDA7ICAvLyBZZXMsIHRoaXMg
aXMgYmFkIGNvZGluZywgYnV0IG9wdGlvbnMgYXJlIGxpbWl0ZWQuCisgIGJvb2wgc3VjY2Vzc2Z1
bCA9IHJlYWRWYWx1ZSgpOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9r
ZW4pOworICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkp
CisgICAgcm9vdC5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEFmdGVyKTsKKyAg
aWYgKGZlYXR1cmVzXy5zdHJpY3RSb290XykgeworICAgIGlmICghcm9vdC5pc0FycmF5KCkgJiYg
IXJvb3QuaXNPYmplY3QoKSkgeworICAgICAgLy8gU2V0IGVycm9yIGxvY2F0aW9uIHRvIHN0YXJ0
IG9mIGRvYywgaWRlYWxseSBzaG91bGQgYmUgZmlyc3QgdG9rZW4gZm91bmQKKyAgICAgIC8vIGlu
IGRvYworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICAgICAgdG9rZW4uc3RhcnRf
ID0gYmVnaW5Eb2M7CisgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOworICAgICAgYWRkRXJyb3Io
CisgICAgICAgICAgIkEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhlciBhbiBhcnJh
eSBvciBhbiBvYmplY3QgdmFsdWUuIiwKKyAgICAgICAgICB0b2tlbik7CisgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCitib29sIFJlYWRl
cjo6cmVhZFZhbHVlKCkgeworICAvLyBUaGlzIGlzIGEgbm9uLXJlZW50cmFudCB3YXkgdG8gc3Vw
cG9ydCBhIHN0YWNrTGltaXQuIFRlcnJpYmxlIQorICAvLyBCdXQgdGhpcyBkZXByZWNhdGVkIGNs
YXNzIGhhcyBhIHNlY3VyaXR5IHByb2JsZW06IEJhZCBpbnB1dCBjYW4KKyAgLy8gY2F1c2UgYSBz
ZWctZmF1bHQuIFRoaXMgc2VlbXMgbGlrZSBhIGZhaXIsIGJpbmFyeS1jb21wYXRpYmxlIHdheQor
ICAvLyB0byBwcmV2ZW50IHRoZSBwcm9ibGVtLgorICBpZiAoc3RhY2tEZXB0aF9nID49IHN0YWNr
TGltaXRfZykgdGhyb3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZh
bHVlKCkuIik7CisgICsrc3RhY2tEZXB0aF9nOworCisgIFRva2VuIHRva2VuOworICBza2lwQ29t
bWVudFRva2Vucyh0b2tlbik7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgaWYgKGNv
bGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOworICAg
IGNvbW1lbnRzQmVmb3JlXyA9ICIiOworICB9CisKKyAgc3dpdGNoICh0b2tlbi50eXBlXykgewor
ICBjYXNlIHRva2VuT2JqZWN0QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QodG9r
ZW4pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5f
KTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9
IHJlYWRBcnJheSh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3Vy
cmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVtYmVyOgorICAgIHN1
Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2Vu
U3RyaW5nOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOworICAgIGJyZWFr
OworICBjYXNlIHRva2VuVHJ1ZToKKyAgICB7CisgICAgVmFsdWUgdih0cnVlKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0
b2tlbkZhbHNlOgorICAgIHsKKyAgICBWYWx1ZSB2KGZhbHNlKTsKKyAgICBjdXJyZW50VmFsdWUo
KS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tl
bi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRv
a2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk51bGw6
CisgICAgeworICAgIFZhbHVlIHY7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7
CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5f
KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5f
KTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRvcjoKKyAgY2Fz
ZSB0b2tlbk9iamVjdEVuZDoKKyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlmIChmZWF0dXJl
c18uYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJVbi1yZWFkIiB0
aGUgY3VycmVudCB0b2tlbiBhbmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBhIG51bGwKKyAg
ICAgIC8vIHRva2VuLgorICAgICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7CisgICAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KGN1cnJlbnRfIC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsKKyAgICB9IC8v
IEVsc2UsIGZhbGwgdGhyb3VnaC4uLgorICBkZWZhdWx0OgorICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgcmV0dXJuIGFkZEVycm9y
KCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4p
OworICB9CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBsYXN0VmFsdWVFbmRfID0g
Y3VycmVudF87CisgICAgbGFzdFZhbHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKKyAgfQorCisgIC0t
c3RhY2tEZXB0aF9nOworICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKwordm9pZCBSZWFkZXI6OnNr
aXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVyZXNfLmFsbG93Q29t
bWVudHNfKSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgICB9IHdoaWxl
ICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2UgeworICAgIHJlYWRUb2tl
bih0b2tlbik7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRUb2tlbihUb2tlbiYgdG9rZW4p
IHsKKyAgc2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKKyAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3aXRjaCAoYykgeworICBj
YXNlICd7JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47CisgICAgYnJlYWs7
CisgIGNhc2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7CisgICAgYnJl
YWs7CisgIGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2luOworICAg
IGJyZWFrOworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlFbmQ7Cisg
ICAgYnJlYWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7Cisg
ICAgb2sgPSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJy8nOgorICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5Db21tZW50OworICAgIG9rID0gcmVhZENvbW1lbnQoKTsKKyAgICBicmVh
azsKKyAgY2FzZSAnMCc6CisgIGNhc2UgJzEnOgorICBjYXNlICcyJzoKKyAgY2FzZSAnMyc6Cisg
IGNhc2UgJzQnOgorICBjYXNlICc1JzoKKyAgY2FzZSAnNic6CisgIGNhc2UgJzcnOgorICBjYXNl
ICc4JzoKKyAgY2FzZSAnOSc6CisgIGNhc2UgJy0nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5O
dW1iZXI7CisgICAgcmVhZE51bWJlcigpOworICAgIGJyZWFrOworICBjYXNlICd0JzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuVHJ1ZTsKKyAgICBvayA9IG1hdGNoKCJydWUiLCAzKTsKKyAgICBi
cmVhazsKKyAgY2FzZSAnZic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOworICAgIG9r
ID0gbWF0Y2goImFsc2UiLCA0KTsKKyAgICBicmVhazsKKyAgY2FzZSAnbic6CisgICAgdG9rZW4u
dHlwZV8gPSB0b2tlbk51bGw7CisgICAgb2sgPSBtYXRjaCgidWxsIiwgMyk7CisgICAgYnJlYWs7
CisgIGNhc2UgJywnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheVNlcGFyYXRvcjsKKyAg
ICBicmVhazsKKyAgY2FzZSAnOic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk1lbWJlclNlcGFy
YXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAwOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FbmRP
ZlN0cmVhbTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBvayA9IGZhbHNlOworICAgIGJy
ZWFrOworICB9CisgIGlmICghb2spCisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0
b2tlbi5lbmRfID0gY3VycmVudF87CisgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlYWRlcjo6
c2tpcFNwYWNlcygpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMg
PSAqY3VycmVudF87CisgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicg
fHwgYyA9PSAnXG4nKQorICAgICAgKytjdXJyZW50XzsKKyAgICBlbHNlCisgICAgICBicmVhazsK
KyAgfQorfQorCitib29sIFJlYWRlcjo6bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRl
cm5MZW5ndGgpIHsKKyAgaWYgKGVuZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGgpCisgICAg
cmV0dXJuIGZhbHNlOworICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOworICB3aGlsZSAoaW5k
ZXgtLSkKKyAgICBpZiAoY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdKQorICAgICAg
cmV0dXJuIGZhbHNlOworICBjdXJyZW50XyArPSBwYXR0ZXJuTGVuZ3RoOworICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRDb21tZW50KCkgeworICBMb2NhdGlvbiBjb21tZW50
QmVnaW4gPSBjdXJyZW50XyAtIDE7CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wg
c3VjY2Vzc2Z1bCA9IGZhbHNlOworICBpZiAoYyA9PSAnKicpCisgICAgc3VjY2Vzc2Z1bCA9IHJl
YWRDU3R5bGVDb21tZW50KCk7CisgIGVsc2UgaWYgKGMgPT0gJy8nKQorICAgIHN1Y2Nlc3NmdWwg
PSByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGlmICghc3VjY2Vzc2Z1bCkKKyAgICByZXR1cm4g
ZmFsc2U7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7CisgICAgaWYgKGxhc3RWYWx1ZUVuZF8gJiYgIWNv
bnRhaW5zTmV3TGluZShsYXN0VmFsdWVFbmRfLCBjb21tZW50QmVnaW4pKSB7CisgICAgICBpZiAo
YyAhPSAnKicgfHwgIWNvbnRhaW5zTmV3TGluZShjb21tZW50QmVnaW4sIGN1cnJlbnRfKSkKKyAg
ICAgICAgcGxhY2VtZW50ID0gY29tbWVudEFmdGVyT25TYW1lTGluZTsKKyAgICB9CisKKyAgICBh
ZGRDb21tZW50KGNvbW1lbnRCZWdpbiwgY3VycmVudF8sIHBsYWNlbWVudCk7CisgIH0KKyAgcmV0
dXJuIHRydWU7Cit9CisKK3N0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woUmVhZGVyOjpM
b2NhdGlvbiBiZWdpbiwgUmVhZGVyOjpMb2NhdGlvbiBlbmQpIHsKKyAgc3RkOjpzdHJpbmcgbm9y
bWFsaXplZDsKKyAgbm9ybWFsaXplZC5yZXNlcnZlKGVuZCAtIGJlZ2luKTsKKyAgUmVhZGVyOjpM
b2NhdGlvbiBjdXJyZW50ID0gYmVnaW47CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAg
IGNoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKGN1
cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID09ICdcbicpCisgICAgICAgICAvLyBjb252ZXJ0IGRv
cyBFT0wKKyAgICAgICAgICsrY3VycmVudDsKKyAgICAgIC8vIGNvbnZlcnQgTWFjIEVPTAorICAg
ICAgbm9ybWFsaXplZCArPSAnXG4nOworICAgIH0gZWxzZSB7CisgICAgICBub3JtYWxpemVkICs9
IGM7CisgICAgfQorICB9CisgIHJldHVybiBub3JtYWxpemVkOworfQorCit2b2lkCitSZWFkZXI6
OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVu
dCBwbGFjZW1lbnQpIHsKKyAgYXNzZXJ0KGNvbGxlY3RDb21tZW50c18pOworICBjb25zdCBzdGQ6
OnN0cmluZyYgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAgaWYgKHBs
YWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB7CisgICAgYXNzZXJ0KGxhc3RWYWx1
ZV8gIT0gMCk7CisgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudChub3JtYWxpemVkLCBwbGFjZW1l
bnQpOworICB9IGVsc2UgeworICAgIGNvbW1lbnRzQmVmb3JlXyArPSBub3JtYWxpemVkOworICB9
Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09
ICcqJyAmJiAqY3VycmVudF8gPT0gJy8nKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGdl
dE5leHRDaGFyKCkgPT0gJy8nOworfQorCitib29sIFJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVu
dCgpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0
Q2hhcigpOworICAgIGlmIChjID09ICdcbicpCisgICAgICBicmVhazsKKyAgICBpZiAoYyA9PSAn
XHInKSB7CisgICAgICAvLyBDb25zdW1lIERPUyBFT0wuIEl0IHdpbGwgYmUgbm9ybWFsaXplZCBp
biBhZGRDb21tZW50LgorICAgICAgaWYgKGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09
ICdcbicpCisgICAgICAgIGdldE5leHRDaGFyKCk7CisgICAgICAvLyBCcmVhayBvbiBNb2MgT1Mg
OSBFT0wuCisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgUmVhZGVyOjpyZWFkTnVtYmVyKCkgeworICBjb25zdCBjaGFyICpwID0gY3VycmVudF87Cisg
IGNoYXIgYyA9ICcwJzsgLy8gc3RvcGdhcCBmb3IgYWxyZWFkeSBjb25zdW1lZCBjaGFyYWN0ZXIK
KyAgLy8gaW50ZWdyYWwgcGFydAorICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAg
YyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAvLyBmcmFjdGlvbmFsIHBh
cnQKKyAgaWYgKGMgPT0gJy4nKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpw
KysgOiAwOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICAvLyBleHBvbmVudGlhbCBwYXJ0
CisgIGlmIChjID09ICdlJyB8fCBjID09ICdFJykgeworICAgIGMgPSAoY3VycmVudF8gPSBwKSA8
IGVuZF8gPyAqcCsrIDogMDsKKyAgICBpZiAoYyA9PSAnKycgfHwgYyA9PSAnLScpCisgICAgICBj
ID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAn
ICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAw
OworICB9Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkU3RyaW5nKCkgeworICBDaGFyIGMgPSAwOwor
ICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIGMgPSBnZXROZXh0Q2hhcigpOworICAg
IGlmIChjID09ICdcXCcpCisgICAgICBnZXROZXh0Q2hhcigpOworICAgIGVsc2UgaWYgKGMgPT0g
JyInKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGMgPT0gJyInOworfQorCitib29sIFJl
YWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9rZW5TdGFydCkgeworICBUb2tlbiB0b2tlbk5hbWU7
CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIFZhbHVlIGluaXQob2JqZWN0VmFsdWUpOworICBjdXJy
ZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBiZWdpbl8pOworICB3aGlsZSAocmVhZFRva2VuKHRv
a2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAo
dG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBpbml0aWFsVG9rZW5PaykKKyAgICAg
IGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFtZSk7CisgICAgaWYgKCFpbml0aWFs
VG9rZW5PaykKKyAgICAgIGJyZWFrOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5P
YmplY3RFbmQgJiYgbmFtZS5lbXB0eSgpKSAvLyBlbXB0eSBvYmplY3QKKyAgICAgIHJldHVybiB0
cnVlOworICAgIG5hbWUgPSAiIjsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuU3Ry
aW5nKSB7CisgICAgICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbk5hbWUsIG5hbWUpKQorICAgICAg
ICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgfSBlbHNlIGlm
ICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5OdW1iZXIgJiYgZmVhdHVyZXNfLmFsbG93TnVtZXJp
Y0tleXNfKSB7CisgICAgICBWYWx1ZSBudW1iZXJOYW1lOworICAgICAgaWYgKCFkZWNvZGVOdW1i
ZXIodG9rZW5OYW1lLCBudW1iZXJOYW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJy
b3IodG9rZW5PYmplY3RFbmQpOworICAgICAgbmFtZSA9IG51bWJlck5hbWUuYXNTdHJpbmcoKTsK
KyAgICB9IGVsc2UgeworICAgICAgYnJlYWs7CisgICAgfQorCisgICAgVG9rZW4gY29sb247Cisg
ICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8IGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2Vw
YXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJN
aXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCBjb2xvbiwgdG9rZW5PYmplY3RF
bmQpOworICAgIH0KKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKKyAg
ICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBu
b2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJl
dHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKworICAgIFRva2VuIGNvbW1h
OworICAgIGlmICghcmVhZFRva2VuKGNvbW1hKSB8fAorICAgICAgICAoY29tbWEudHlwZV8gIT0g
dG9rZW5PYmplY3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgor
ICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgeworICAgICAgcmV0dXJuIGFk
ZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVj
dCBkZWNsYXJhdGlvbiIsIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIGJvb2wg
ZmluYWxpemVUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5D
b21tZW50ICYmIGZpbmFsaXplVG9rZW5PaykKKyAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRU
b2tlbihjb21tYSk7CisgICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQorICAg
ICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAg
ICJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tlbk5hbWUsIHRva2VuT2Jq
ZWN0RW5kKTsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW5TdGFydCkg
eworICBWYWx1ZSBpbml0KGFycmF5VmFsdWUpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9h
ZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFy
dF8gLSBiZWdpbl8pOworICBza2lwU3BhY2VzKCk7CisgIGlmICgqY3VycmVudF8gPT0gJ10nKSAv
LyBlbXB0eSBhcnJheQorICB7CisgICAgVG9rZW4gZW5kQXJyYXk7CisgICAgcmVhZFRva2VuKGVu
ZEFycmF5KTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICBpbnQgaW5kZXggPSAwOworICBmb3Ig
KDs7KSB7CisgICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107CisgICAg
bm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9k
ZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1
cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbkFycmF5RW5kKTsKKworICAgIFRva2VuIHRva2VuOwor
ICAgIC8vIEFjY2VwdCBDb21tZW50IGFmdGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCisgICAg
b2sgPSByZWFkVG9rZW4odG9rZW4pOworICAgIHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNv
bW1lbnQgJiYgb2spIHsKKyAgICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKKyAgICB9CisgICAg
Ym9vbCBiYWRUb2tlblR5cGUgPQorICAgICAgICAodG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNl
cGFyYXRvciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9rIHx8
IGJhZFRva2VuVHlwZSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAg
ICAgICAiTWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwgdG9rZW4sIHRv
a2VuQXJyYXlFbmQpOworICAgIH0KKyAgICBpZiAodG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVu
ZCkKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6
ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRl
Y29kZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
YWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgLy8g
QXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVy
IGlzCisgIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBp
bnRlZ2VyIHRoZW4KKyAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCisgIExv
Y2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87CisgIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJy
ZW50ID09ICctJzsKKyAgaWYgKGlzTmVnYXRpdmUpCisgICAgKytjdXJyZW50OworICAvLyBUT0RP
OiBIZWxwIHRoZSBjb21waWxlciBkbyB0aGUgZGl2IGFuZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9y
IGdldCByaWQgb2YgdGhlbS4KKyAgVmFsdWU6Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9
CisgICAgICBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhMYXJnZXN0
SW50KSArIDEKKyAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7CisgIFZh
bHVlOjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKKyAgVmFs
dWU6Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQgPCB0b2tlbi5lbmRf
KSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzkn
KQorICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgVmFsdWU6
OlVJbnQgZGlnaXQoYyAtICcwJyk7CisgICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgeworICAg
ICAgLy8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAo
cm91bmRlZCBkb3duKS4gSWYKKyAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRo
ZSBsaW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgYW5kCisgICAgICAvLyBjKSBpdCdz
IHNtYWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4K
KyAgICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9p
ZCBvdmVyZmxvdy4KKyAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRv
a2VuLmVuZF8gfHwKKyAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOworICAgICAgfQorICAg
IH0KKyAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKKyAgfQorICBpZiAoaXNOZWdhdGl2
ZSAmJiB2YWx1ZSA9PSBtYXhJbnRlZ2VyVmFsdWUpCisgICAgZGVjb2RlZCA9IFZhbHVlOjptaW5M
YXJnZXN0SW50OworICBlbHNlIGlmIChpc05lZ2F0aXZlKQorICAgIGRlY29kZWQgPSAtVmFsdWU6
Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlIGlmICh2YWx1ZSA8PSBWYWx1ZTo6TGFyZ2VzdFVJ
bnQoVmFsdWU6Om1heEludCkpCisgICAgZGVjb2RlZCA9IFZhbHVlOjpMYXJnZXN0SW50KHZhbHVl
KTsKKyAgZWxzZQorICAgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgUmVhZGVyOjpkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7
CisgIGlmICghZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7
CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2Rl
ZCkgeworICBkb3VibGUgdmFsdWUgPSAwOworICBzdGQ6OnN0cmluZyBidWZmZXIodG9rZW4uc3Rh
cnRfLCB0b2tlbi5lbmRfKTsKKyAgc3RkOjppc3RyaW5nc3RyZWFtIGlzKGJ1ZmZlcik7CisgIGlm
ICghKGlzID4+IHZhbHVlKSkKKyAgICByZXR1cm4gYWRkRXJyb3IoIiciICsgc3RkOjpzdHJpbmco
dG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiJyBp
cyBub3QgYSBudW1iZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4pOworICBkZWNvZGVk
ID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlU3RyaW5n
KFRva2VuJiB0b2tlbikgeworICBzdGQ6OnN0cmluZyBkZWNvZGVkX3N0cmluZzsKKyAgaWYgKCFk
ZWNvZGVTdHJpbmcodG9rZW4sIGRlY29kZWRfc3RyaW5nKSkKKyAgICByZXR1cm4gZmFsc2U7Cisg
IFZhbHVlIGRlY29kZWQoZGVjb2RlZF9zdHJpbmcpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5
bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3Rh
cnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5k
XyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlU3Ry
aW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRlY29kZWQpIHsKKyAgZGVjb2RlZC5yZXNl
cnZlKHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8gLSAyKTsKKyAgTG9jYXRpb24gY3VycmVudCA9
IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAgJyInCisgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVu
ZF8gLSAxOyAgICAgICAvLyBkbyBub3QgaW5jbHVkZSAnIicKKyAgd2hpbGUgKGN1cnJlbnQgIT0g
ZW5kKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnIicpCisgICAg
ICBicmVhazsKKyAgICBlbHNlIGlmIChjID09ICdcXCcpIHsKKyAgICAgIGlmIChjdXJyZW50ID09
IGVuZCkKKyAgICAgICAgcmV0dXJuIGFkZEVycm9yKCJFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4g
c3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsr
OworICAgICAgc3dpdGNoIChlc2NhcGUpIHsKKyAgICAgIGNhc2UgJyInOgorICAgICAgICBkZWNv
ZGVkICs9ICciJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICcvJzoKKyAgICAgICAgZGVj
b2RlZCArPSAnLyc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnXFwnOgorICAgICAgICBk
ZWNvZGVkICs9ICdcXCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnYic6CisgICAgICAg
IGRlY29kZWQgKz0gJ1xiJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdmJzoKKyAgICAg
ICAgZGVjb2RlZCArPSAnXGYnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ24nOgorICAg
ICAgICBkZWNvZGVkICs9ICdcbic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncic6Cisg
ICAgICAgIGRlY29kZWQgKz0gJ1xyJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd0JzoK
KyAgICAgICAgZGVjb2RlZCArPSAnXHQnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3Un
OiB7CisgICAgICAgIHVuc2lnbmVkIGludCB1bmljb2RlOworICAgICAgICBpZiAoIWRlY29kZVVu
aWNvZGVDb2RlUG9pbnQodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBkZWNvZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2Rl
KTsKKyAgICAgIH0gYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gYWRkRXJy
b3IoIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICBkZWNvZGVkICs9IGM7CisgICAgfQorICB9CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tl
biYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYg
Y3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVu
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5p
Y29kZSkgeworCisgIGlmICghZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJy
ZW50LCBlbmQsIHVuaWNvZGUpKQorICAgIHJldHVybiBmYWxzZTsKKyAgaWYgKHVuaWNvZGUgPj0g
MHhEODAwICYmIHVuaWNvZGUgPD0gMHhEQkZGKSB7CisgICAgLy8gc3Vycm9nYXRlIHBhaXJzCisg
ICAgaWYgKGVuZCAtIGN1cnJlbnQgPCA2KQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAg
ICAgICJhZGRpdGlvbmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUg
c3Vycm9nYXRlIHBhaXIuIiwKKyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsK
KyAgICB1bnNpZ25lZCBpbnQgc3Vycm9nYXRlUGFpcjsKKyAgICBpZiAoKihjdXJyZW50KyspID09
ICdcXCcgJiYgKihjdXJyZW50KyspID09ICd1JykgeworICAgICAgaWYgKGRlY29kZVVuaWNvZGVF
c2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVudCwgZW5kLCBzdXJyb2dhdGVQYWlyKSkgeworICAg
ICAgICB1bmljb2RlID0gMHgxMDAwMCArICgodW5pY29kZSAmIDB4M0ZGKSA8PCAxMCkgKyAoc3Vy
cm9nYXRlUGFpciAmIDB4M0ZGKTsKKyAgICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfSBlbHNlCisgICAgICByZXR1cm4gYWRkRXJyb3IoImV4cGVjdGluZyBhbm90aGVyIFxc
dSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vjb25kIGhhbGYgb2YgIgorICAgICAgICAgICAgICAgICAg
ICAgICJhIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIiLAorICAgICAgICAgICAgICAgICAgICAgIHRv
a2VuLAorICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVl
OworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0
b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24m
IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0
aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50JiB1bmljb2RlKSB7CisgIGlmIChlbmQgLSBjdXJyZW50IDwgNCkKKyAgICByZXR1cm4g
YWRkRXJyb3IoCisgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5n
OiBmb3VyIGRpZ2l0cyBleHBlY3RlZC4iLAorICAgICAgICB0b2tlbiwKKyAgICAgICAgY3VycmVu
dCk7CisgIHVuaWNvZGUgPSAwOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytp
bmRleCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAg
ICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7Cisg
ICAgZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAn
YScgKyAxMDsKKyAgICBlbHNlIGlmIChjID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNv
ZGUgKz0gYyAtICdBJyArIDEwOworICAgIGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAg
ICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2lt
YWwgZGlnaXQgZXhwZWN0ZWQuIiwKKyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50
KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbAorUmVhZGVyOjphZGRFcnJvcihjb25z
dCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSkgewor
ICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdl
XyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gZXh0cmE7CisgIGVycm9yc18ucHVzaF9iYWNr
KGluZm8pOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWNvdmVyRnJvbUVy
cm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikgeworICBpbnQgZXJyb3JDb3VudCA9IGludChl
cnJvcnNfLnNpemUoKSk7CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAoIXJl
YWRUb2tlbihza2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBkaXNj
YXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBza2lw
VW50aWxUb2tlbiB8fCBza2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCisgICAgICBicmVh
azsKKyAgfQorICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBt
ZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikg
eworICBhZGRFcnJvcihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJvbUVycm9y
KHNraXBVbnRpbFRva2VuKTsKK30KKworVmFsdWUmIFJlYWRlcjo6Y3VycmVudFZhbHVlKCkgeyBy
ZXR1cm4gKihub2Rlc18udG9wKCkpOyB9CisKK1JlYWRlcjo6Q2hhciBSZWFkZXI6OmdldE5leHRD
aGFyKCkgeworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4gMDsKKyAgcmV0dXJu
ICpjdXJyZW50XysrOworfQorCit2b2lkIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1u
KExvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYg
Y29sdW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbl87CisgIExvY2F0aW9u
IGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQg
PCBsb2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsr
OworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnXG4nKQorICAg
ICAgICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsr
bGluZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAgICAgbGFzdExpbmVTdGFydCA9
IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfQorICB9CisgIC8vIGNvbHVtbiAmIGxpbmUg
c3RhcnQgYXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7
CisgICsrbGluZTsKK30KKworc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRD
b2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgaW50IGxpbmUsIGNvbHVtbjsKKyAg
Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4pOworICBjaGFy
IGJ1ZmZlclsxOCArIDE2ICsgMTYgKyAxXTsKKyAgc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBidWZm
ZXI7Cit9CisKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25TbmlwcGV0KExvY2F0aW9u
IGxvY2F0aW9uKSBjb25zdCB7CisgICAgICAgc3RkOjpzdHJpbmcgc25pcHBldCA9ICIiOworICAg
ICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBkb2NTdHJlYW0oZG9jdW1lbnRfKTsKKyAgICAgICBpbnQg
bGluLCBjb2w7CisgICAgICAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW4s
IGNvbCk7CisgICAgICAgc3RkOjpzdHJpbmcgbGluZTsKKyAgICAgICBmb3IgKGludCBpPTE7IGk8
bGluKzIgJiYgc3RkOjpnZXRsaW5lKGRvY1N0cmVhbSwgbGluZSk7IGkrKykKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGlmIChsaW4taSA8IDIpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIHNuaXBwZXQgKz0gIiAgIiArIHN0ZDo6dG9fc3RyaW5nKGkpICsgIjogIiArIGxp
bmUgKyAiXG4iOworICAgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBzbmlw
cGV0OworfQorCisvLyBEZXByZWNhdGVkLiBQcmVzZXJ2ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGli
aWxpdHkKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29u
c3QgeworICByZXR1cm4gZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOworfQorCitzdGQ6OnN0
cmluZyBSZWFkZXI6OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHN0ZDo6
c3RyaW5nIGZvcm1hdHRlZE1lc3NhZ2U7CisgIGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBp
dEVycm9yID0gZXJyb3JzXy5iZWdpbigpOworICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQo
KTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0
RXJyb3I7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAiKiAiICsgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICAgICBmb3Jt
YXR0ZWRNZXNzYWdlICs9IGdldExvY2F0aW9uU25pcHBldChlcnJvci50b2tlbl8uc3RhcnRfKSAr
ICJcbiI7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAi
XG4iOworICAgIGlmIChlcnJvci5leHRyYV8pCisgICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Cisg
ICAgICAgICAgIlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykg
KyAiIGZvciBkZXRhaWwuXG4iOworICB9CisgIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOworfQor
CitzdGQ6OnZlY3RvcjxSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gUmVhZGVyOjpnZXRTdHJ1Y3R1
cmVkRXJyb3JzKCkgY29uc3QgeworICBzdGQ6OnZlY3RvcjxSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
cj4gYWxsRXJyb3JzOworICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVy
cm9yc18uYmVnaW4oKTsKKyAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7CisgICAgICAg
KytpdEVycm9yKSB7CisgICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOworICAg
IFJlYWRlcjo6U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7CisgICAgc3RydWN0dXJlZC5vZmZz
ZXRfc3RhcnQgPSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQu
b2Zmc2V0X2xpbWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJl
ZC5tZXNzYWdlID0gZXJyb3IubWVzc2FnZV87CisgICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1
Y3R1cmVkKTsKKyAgfQorICByZXR1cm4gYWxsRXJyb3JzOworfQorCitib29sIFJlYWRlcjo6cHVz
aEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsK
KyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlmKHZhbHVlLmdldE9mZnNldFN0
YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQor
ICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5F
cnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgdG9rZW4uZW5kXyA9IGVuZF8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJvcklu
Zm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3Nh
Z2U7CisgIGluZm8uZXh0cmFfID0gMDsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1
ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSkgeworICBz
aXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQo
KSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgKKyAgICB8
fCBleHRyYS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAg
VG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRf
ID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGJlZ2lu
XyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRv
a2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8g
PSBiZWdpbl8gKyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOworICBlcnJvcnNfLnB1c2hfYmFjayhp
bmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpnb29kKCkgY29uc3Qgewor
ICByZXR1cm4gIWVycm9yc18uc2l6ZSgpOworfQorCisvLyBleGFjdCBjb3B5IG9mIEZlYXR1cmVz
CitjbGFzcyBPdXJGZWF0dXJlcyB7CitwdWJsaWM6CisgIHN0YXRpYyBPdXJGZWF0dXJlcyBhbGwo
KTsKKyAgYm9vbCBhbGxvd0NvbW1lbnRzXzsKKyAgYm9vbCBzdHJpY3RSb290XzsKKyAgYm9vbCBh
bGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXzsKKyAgYm9vbCBhbGxvd051bWVyaWNLZXlzXzsK
KyAgYm9vbCBhbGxvd1NpbmdsZVF1b3Rlc187CisgIGJvb2wgZmFpbElmRXh0cmFfOworICBib29s
IHJlamVjdER1cEtleXNfOworICBib29sIGFsbG93U3BlY2lhbEZsb2F0c187CisgIGludCBzdGFj
a0xpbWl0XzsKK307ICAvLyBPdXJGZWF0dXJlcworCisvLyBleGFjdCBjb3B5IG9mIEltcGxlbWVu
dGF0aW9uIG9mIGNsYXNzIEZlYXR1cmVzCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCitPdXJGZWF0dXJlcyBPdXJGZWF0dXJlczo6YWxsKCkgeyByZXR1cm4gT3VyRmVhdHVy
ZXMoKTsgfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIGV4YWN0IGNvcHkgb2YgUmVhZGVyLCByZW5h
bWVkIHRvIE91clJlYWRlcgorY2xhc3MgT3VyUmVhZGVyIHsKK3B1YmxpYzoKKyAgdHlwZWRlZiBj
aGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247CisgIHN0cnVjdCBTdHJ1
Y3R1cmVkRXJyb3IgeworICAgIHNpemVfdCBvZmZzZXRfc3RhcnQ7CisgICAgc2l6ZV90IG9mZnNl
dF9saW1pdDsKKyAgICBzdGQ6OnN0cmluZyBtZXNzYWdlOworICB9OworCisgIE91clJlYWRlcihP
dXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpOworICBib29sIHBhcnNlKGNvbnN0IGNoYXIqIGJl
Z2luRG9jLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICBW
YWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOwor
ICBzdGQ6OnN0cmluZyBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7CisgIHN0ZDo6
dmVjdG9yPFN0cnVjdHVyZWRFcnJvcj4gZ2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0OworICBi
b29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlKTsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0
cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKyAgYm9vbCBnb29kKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgIE91clJlYWRlcihPdXJSZWFkZXIgY29uc3QmKTsgIC8vIG5vIGltcGwK
KyAgdm9pZCBvcGVyYXRvcj0oT3VyUmVhZGVyIGNvbnN0Jik7ICAvLyBubyBpbXBsCisKKyAgZW51
bSBUb2tlblR5cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAgIHRva2VuT2JqZWN0
QmVnaW4sCisgICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJlZ2luLAorICAgIHRv
a2VuQXJyYXlFbmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1iZXIsCisgICAgdG9r
ZW5UcnVlLAorICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAgIHRva2VuTmFOLAor
ICAgIHRva2VuUG9zSW5mLAorICAgIHRva2VuTmVnSW5mLAorICAgIHRva2VuQXJyYXlTZXBhcmF0
b3IsCisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9rZW5Db21tZW50LAorICAgIHRv
a2VuRXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1YmxpYzoKKyAgICBUb2tlblR5
cGUgdHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExvY2F0aW9uIGVuZF87CisgIH07
CisKKyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAgIFRva2VuIHRva2VuXzsKKyAg
ICBzdGQ6OnN0cmluZyBtZXNzYWdlXzsKKyAgICBMb2NhdGlvbiBleHRyYV87CisgIH07CisKKyAg
dHlwZWRlZiBzdGQ6OmRlcXVlPEVycm9ySW5mbz4gRXJyb3JzOworCisgIGJvb2wgcmVhZFRva2Vu
KFRva2VuJiB0b2tlbik7CisgIHZvaWQgc2tpcFNwYWNlcygpOworICBib29sIG1hdGNoKExvY2F0
aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKTsKKyAgYm9vbCByZWFkQ29tbWVudCgpOwor
ICBib29sIHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZENwcFN0eWxlQ29tbWVudCgp
OworICBib29sIHJlYWRTdHJpbmcoKTsKKyAgYm9vbCByZWFkU3RyaW5nU2luZ2xlUXVvdGUoKTsK
KyAgYm9vbCByZWFkTnVtYmVyKGJvb2wgY2hlY2tJbmYpOworICBib29sIHJlYWRWYWx1ZSgpOwor
ICBib29sIHJlYWRPYmplY3QoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCByZWFkQXJyYXkoVG9rZW4m
IHRva2VuKTsKKyAgYm9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNv
ZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlU3Ry
aW5nKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3Rk
OjpzdHJpbmcmIGRlY29kZWQpOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOwor
ICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9v
bCBkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50JiB1bmljb2RlKTsKKyAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9r
ZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYg
Y3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5k
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNv
ZGUpOworICBib29sIGFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYg
dG9rZW4sIExvY2F0aW9uIGV4dHJhID0gMCk7CisgIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tl
blR5cGUgc2tpcFVudGlsVG9rZW4pOworICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBz
dGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRv
a2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4p
OworICB2b2lkIHNraXBVbnRpbFNwYWNlKCk7CisgIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKKyAg
Q2hhciBnZXROZXh0Q2hhcigpOworICB2b2lkCisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihM
b2NhdGlvbiBsb2NhdGlvbiwgaW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7CisgIHN0ZDo6
c3RyaW5nIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7
CisgIHZvaWQgYWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50
UGxhY2VtZW50IHBsYWNlbWVudCk7CisgIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRv
a2VuKTsKKworICB0eXBlZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKKyAgTm9kZXMgbm9k
ZXNfOworICBFcnJvcnMgZXJyb3JzXzsKKyAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOworICBMb2Nh
dGlvbiBiZWdpbl87CisgIExvY2F0aW9uIGVuZF87CisgIExvY2F0aW9uIGN1cnJlbnRfOworICBM
b2NhdGlvbiBsYXN0VmFsdWVFbmRfOworICBWYWx1ZSogbGFzdFZhbHVlXzsKKyAgc3RkOjpzdHJp
bmcgY29tbWVudHNCZWZvcmVfOworICBpbnQgc3RhY2tEZXB0aF87CisKKyAgT3VyRmVhdHVyZXMg
Y29uc3QgZmVhdHVyZXNfOworICBib29sIGNvbGxlY3RDb21tZW50c187Cit9OyAgLy8gT3VyUmVh
ZGVyCisKKy8vIGNvbXBsZXRlIGNvcHkgb2YgUmVhZCBpbXBsLCBmb3IgT3VyUmVhZGVyCisKK091
clJlYWRlcjo6T3VyUmVhZGVyKE91ckZlYXR1cmVzIGNvbnN0JiBmZWF0dXJlcykKKyAgICA6IGVy
cm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2luXygpLCBlbmRfKCksIGN1cnJlbnRfKCksIGxhc3RW
YWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1ZV8oKSwgY29tbWVudHNCZWZvcmVfKCksCisgICAg
ICBzdGFja0RlcHRoXygwKSwKKyAgICAgIGZlYXR1cmVzXyhmZWF0dXJlcyksIGNvbGxlY3RDb21t
ZW50c18oKSB7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRv
YywKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAgICAgICAg
ICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVu
dHMpIHsKKyAgaWYgKCFmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKKyAgICBjb2xsZWN0Q29t
bWVudHMgPSBmYWxzZTsKKyAgfQorCisgIGJlZ2luXyA9IGJlZ2luRG9jOworICBlbmRfID0gZW5k
RG9jOworICBjb2xsZWN0Q29tbWVudHNfID0gY29sbGVjdENvbW1lbnRzOworICBjdXJyZW50XyA9
IGJlZ2luXzsKKyAgbGFzdFZhbHVlRW5kXyA9IDA7CisgIGxhc3RWYWx1ZV8gPSAwOworICBjb21t
ZW50c0JlZm9yZV8gPSAiIjsKKyAgZXJyb3JzXy5jbGVhcigpOworICB3aGlsZSAoIW5vZGVzXy5l
bXB0eSgpKQorICAgIG5vZGVzXy5wb3AoKTsKKyAgbm9kZXNfLnB1c2goJnJvb3QpOworCisgIHN0
YWNrRGVwdGhfID0gMDsKKyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7CisgIFRva2Vu
IHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChmZWF0dXJlc18uZmFp
bElmRXh0cmFfKSB7CisgICAgaWYgKHRva2VuLnR5cGVfICE9IHRva2VuRXJyb3IgJiYgdG9rZW4u
dHlwZV8gIT0gdG9rZW5FbmRPZlN0cmVhbSkgeworICAgICAgYWRkRXJyb3IoIkV4dHJhIG5vbi13
aGl0ZXNwYWNlIGFmdGVyIEpTT04gdmFsdWUuIiwgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgfQorICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVf
LmVtcHR5KCkpCisgICAgcm9vdC5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEFm
dGVyKTsKKyAgaWYgKGZlYXR1cmVzXy5zdHJpY3RSb290XykgeworICAgIGlmICghcm9vdC5pc0Fy
cmF5KCkgJiYgIXJvb3QuaXNPYmplY3QoKSkgeworICAgICAgLy8gU2V0IGVycm9yIGxvY2F0aW9u
IHRvIHN0YXJ0IG9mIGRvYywgaWRlYWxseSBzaG91bGQgYmUgZmlyc3QgdG9rZW4gZm91bmQKKyAg
ICAgIC8vIGluIGRvYworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICAgICAgdG9r
ZW4uc3RhcnRfID0gYmVnaW5Eb2M7CisgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOworICAgICAg
YWRkRXJyb3IoCisgICAgICAgICAgIkEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhl
ciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuIiwKKyAgICAgICAgICB0b2tlbik7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCiti
b29sIE91clJlYWRlcjo6cmVhZFZhbHVlKCkgeworICBpZiAoc3RhY2tEZXB0aF8gPj0gZmVhdHVy
ZXNfLnN0YWNrTGltaXRfKSB0aHJvd1J1bnRpbWVFcnJvcigiRXhjZWVkZWQgc3RhY2tMaW1pdCBp
biByZWFkVmFsdWUoKS4iKTsKKyAgKytzdGFja0RlcHRoXzsKKyAgVG9rZW4gdG9rZW47CisgIHNr
aXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gdHJ1ZTsKKworICBp
ZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkpIHsKKyAgICBj
dXJyZW50VmFsdWUoKS5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEJlZm9yZSk7
CisgICAgY29tbWVudHNCZWZvcmVfID0gIiI7CisgIH0KKworICBzd2l0Y2ggKHRva2VuLnR5cGVf
KSB7CisgIGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZE9iamVj
dCh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBi
ZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuQXJyYXlCZWdpbjoKKyAgICBzdWNjZXNz
ZnVsID0gcmVhZEFycmF5KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1p
dChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdW1iZXI6Cisg
ICAgc3VjY2Vzc2Z1bCA9IGRlY29kZU51bWJlcih0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2Ug
dG9rZW5TdHJpbmc6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0cmluZyh0b2tlbik7CisgICAg
YnJlYWs7CisgIGNhc2UgdG9rZW5UcnVlOgorICAgIHsKKyAgICBWYWx1ZSB2KHRydWUpOworICAg
IGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBj
YXNlIHRva2VuRmFsc2U6CisgICAgeworICAgIFZhbHVlIHYoZmFsc2UpOworICAgIGN1cnJlbnRW
YWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0
KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2Vu
TnVsbDoKKyAgICB7CisgICAgVmFsdWUgdjsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9h
ZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBi
ZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBi
ZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk5hTjoKKyAgICB7CisgICAg
VmFsdWUgdihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2Fz
ZSB0b2tlblBvc0luZjoKKyAgICB7CisgICAgVmFsdWUgdihzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OmluZmluaXR5KCkpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwor
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7
CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7
CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2VuTmVnSW5mOgorICAgIHsKKyAgICBWYWx1
ZSB2KC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpOworICAgIGN1cnJl
bnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRv
a2VuQXJyYXlTZXBhcmF0b3I6CisgIGNhc2UgdG9rZW5PYmplY3RFbmQ6CisgIGNhc2UgdG9rZW5B
cnJheUVuZDoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNf
KSB7CisgICAgICAvLyAiVW4tcmVhZCIgdGhlIGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1
cnJlbnQgdmFsdWUgYXMgYSBudWxsCisgICAgICAvLyB0b2tlbi4KKyAgICAgIGN1cnJlbnRfLS07
CisgICAgICBWYWx1ZSB2OworICAgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Cisg
ICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEp
OworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8p
OworICAgICAgYnJlYWs7CisgICAgfSAvLyBlbHNlLCBmYWxsIHRocm91Z2ggLi4uCisgIGRlZmF1
bHQ6CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKKyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBv
ciBhcnJheSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAoY29sbGVjdENvbW1lbnRz
XykgeworICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBsYXN0VmFsdWVfID0gJmN1
cnJlbnRWYWx1ZSgpOworICB9CisKKyAgLS1zdGFja0RlcHRoXzsKKyAgcmV0dXJuIHN1Y2Nlc3Nm
dWw7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4p
IHsKKyAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGRvIHsKKyAgICAgIHJl
YWRUb2tlbih0b2tlbik7CisgICAgfSB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50
KTsKKyAgfSBlbHNlIHsKKyAgICByZWFkVG9rZW4odG9rZW4pOworICB9Cit9CisKK2Jvb2wgT3Vy
UmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7CisgIHNraXBTcGFjZXMoKTsKKyAgdG9r
ZW4uc3RhcnRfID0gY3VycmVudF87CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wg
b2sgPSB0cnVlOworICBzd2l0Y2ggKGMpIHsKKyAgY2FzZSAneyc6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlbk9iamVjdEJlZ2luOworICAgIGJyZWFrOworICBjYXNlICd9JzoKKyAgICB0b2tlbi50
eXBlXyA9IHRva2VuT2JqZWN0RW5kOworICAgIGJyZWFrOworICBjYXNlICdbJzoKKyAgICB0b2tl
bi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnXSc6CisgICAg
dG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOworICAgIGJyZWFrOworICBjYXNlICciJzoKKyAg
ICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmluZygpOworICAg
IGJyZWFrOworICBjYXNlICdcJyc6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NpbmdsZVF1b3Rl
c18pIHsKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmlu
Z1NpbmdsZVF1b3RlKCk7CisgICAgYnJlYWs7CisgICAgfSAvLyBlbHNlIGNvbnRpbnVlCisgIGNh
c2UgJy8nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5Db21tZW50OworICAgIG9rID0gcmVhZENv
bW1lbnQoKTsKKyAgICBicmVhazsKKyAgY2FzZSAnMCc6CisgIGNhc2UgJzEnOgorICBjYXNlICcy
JzoKKyAgY2FzZSAnMyc6CisgIGNhc2UgJzQnOgorICBjYXNlICc1JzoKKyAgY2FzZSAnNic6Cisg
IGNhc2UgJzcnOgorICBjYXNlICc4JzoKKyAgY2FzZSAnOSc6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbk51bWJlcjsKKyAgICByZWFkTnVtYmVyKGZhbHNlKTsKKyAgICBicmVhazsKKyAgY2FzZSAn
LSc6CisgICAgaWYgKHJlYWROdW1iZXIodHJ1ZSkpIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdW1iZXI7CisgICAgfSBlbHNlIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OZWdJbmY7
CisgICAgICBvayA9IGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfICYmIG1hdGNoKCJuZmlu
aXR5IiwgNyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICd0JzoKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuVHJ1ZTsKKyAgICBvayA9IG1hdGNoKCJydWUiLCAzKTsKKyAgICBicmVhazsKKyAg
Y2FzZSAnZic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOworICAgIG9rID0gbWF0Y2go
ImFsc2UiLCA0KTsKKyAgICBicmVhazsKKyAgY2FzZSAnbic6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbk51bGw7CisgICAgb2sgPSBtYXRjaCgidWxsIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2Ug
J04nOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXykgeworICAgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbk5hTjsKKyAgICAgIG9rID0gbWF0Y2goImFOIiwgMik7CisgICAgfSBl
bHNlIHsKKyAgICAgIG9rID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICdJJzoK
KyAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKKyAgICAgIHRva2VuLnR5
cGVfID0gdG9rZW5Qb3NJbmY7CisgICAgICBvayA9IG1hdGNoKCJuZmluaXR5IiwgNyk7CisgICAg
fSBlbHNlIHsKKyAgICAgIG9rID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICcs
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7CisgICAgYnJlYWs7Cisg
IGNhc2UgJzonOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgICAg
YnJlYWs7CisgIGNhc2UgMDoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07Cisg
ICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgb2sgPSBmYWxzZTsKKyAgICBicmVhazsKKyAgfQor
ICBpZiAoIW9rKQorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uZW5kXyA9
IGN1cnJlbnRfOworICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBPdXJSZWFkZXI6OnNraXBTcGFj
ZXMoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJl
bnRfOworICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8IGMgPT0g
J1xuJykKKyAgICAgICsrY3VycmVudF87CisgICAgZWxzZQorICAgICAgYnJlYWs7CisgIH0KK30K
KworYm9vbCBPdXJSZWFkZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVu
Z3RoKSB7CisgIGlmIChlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQorICAgIHJldHVy
biBmYWxzZTsKKyAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKKyAgd2hpbGUgKGluZGV4LS0p
CisgICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKKyAgTG9jYXRpb24gY29tbWVudEJl
Z2luID0gY3VycmVudF8gLSAxOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIHN1
Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgaWYgKGMgPT0gJyonKQorICAgIHN1Y2Nlc3NmdWwgPSByZWFk
Q1N0eWxlQ29tbWVudCgpOworICBlbHNlIGlmIChjID09ICcvJykKKyAgICBzdWNjZXNzZnVsID0g
cmVhZENwcFN0eWxlQ29tbWVudCgpOworICBpZiAoIXN1Y2Nlc3NmdWwpCisgICAgcmV0dXJuIGZh
bHNlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOworICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250
YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgeworICAgICAgaWYgKGMg
IT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCisgICAg
ICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7CisgICAgfQorCisgICAgYWRk
Q29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOworICB9CisgIHJldHVy
biB0cnVlOworfQorCit2b2lkCitPdXJSZWFkZXI6OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4s
IExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgYXNzZXJ0KGNv
bGxlY3RDb21tZW50c18pOworICBjb25zdCBzdGQ6OnN0cmluZyYgbm9ybWFsaXplZCA9IG5vcm1h
bGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAgaWYgKHBsYWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNh
bWVMaW5lKSB7CisgICAgYXNzZXJ0KGxhc3RWYWx1ZV8gIT0gMCk7CisgICAgbGFzdFZhbHVlXy0+
c2V0Q29tbWVudChub3JtYWxpemVkLCBwbGFjZW1lbnQpOworICB9IGVsc2UgeworICAgIGNvbW1l
bnRzQmVmb3JlXyArPSBub3JtYWxpemVkOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFk
Q1N0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFy
IGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICcqJyAmJiAqY3VycmVudF8gPT0gJy8n
KQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGdldE5leHRDaGFyKCkgPT0gJy8nOworfQor
Citib29sIE91clJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09
ICdcbicpCisgICAgICBicmVhazsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICAvLyBDb25z
dW1lIERPUyBFT0wuIEl0IHdpbGwgYmUgbm9ybWFsaXplZCBpbiBhZGRDb21tZW50LgorICAgICAg
aWYgKGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICdcbicpCisgICAgICAgIGdldE5l
eHRDaGFyKCk7CisgICAgICAvLyBCcmVhayBvbiBNb2MgT1MgOSBFT0wuCisgICAgICBicmVhazsK
KyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkTnVt
YmVyKGJvb2wgY2hlY2tJbmYpIHsKKyAgY29uc3QgY2hhciAqcCA9IGN1cnJlbnRfOworICBpZiAo
Y2hlY2tJbmYgJiYgcCAhPSBlbmRfICYmICpwID09ICdJJykgeworICAgIGN1cnJlbnRfID0gKytw
OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBjaGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9y
IGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCisgIC8vIGludGVncmFsIHBhcnQKKyAgd2hpbGUg
KGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAq
cCsrIDogMDsKKyAgLy8gZnJhY3Rpb25hbCBwYXJ0CisgIGlmIChjID09ICcuJykgeworICAgIGMg
PSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAoYyA+PSAnMCcg
JiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7
CisgIH0KKyAgLy8gZXhwb25lbnRpYWwgcGFydAorICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScp
IHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgaWYgKGMg
PT0gJysnIHx8IGMgPT0gJy0nKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpw
KysgOiAwOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KK2Jv
b2wgT3VyUmVhZGVyOjpyZWFkU3RyaW5nKCkgeworICBDaGFyIGMgPSAwOworICB3aGlsZSAoY3Vy
cmVudF8gIT0gZW5kXykgeworICAgIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdc
XCcpCisgICAgICBnZXROZXh0Q2hhcigpOworICAgIGVsc2UgaWYgKGMgPT0gJyInKQorICAgICAg
YnJlYWs7CisgIH0KKyAgcmV0dXJuIGMgPT0gJyInOworfQorCisKK2Jvb2wgT3VyUmVhZGVyOjpy
ZWFkU3RyaW5nU2luZ2xlUXVvdGUoKSB7CisgIENoYXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7CisgICAgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykK
KyAgICAgIGdldE5leHRDaGFyKCk7CisgICAgZWxzZSBpZiAoYyA9PSAnXCcnKQorICAgICAgYnJl
YWs7CisgIH0KKyAgcmV0dXJuIGMgPT0gJ1wnJzsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRP
YmplY3QoVG9rZW4mIHRva2VuU3RhcnQpIHsKKyAgVG9rZW4gdG9rZW5OYW1lOworICBzdGQ6OnN0
cmluZyBuYW1lOworICBWYWx1ZSBpbml0KG9iamVjdFZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2Vu
U3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgd2hpbGUgKHJlYWRUb2tlbih0b2tlbk5hbWUpKSB7
CisgICAgYm9vbCBpbml0aWFsVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUgKHRva2VuTmFtZS50
eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgaW5pdGlhbFRva2VuT2spCisgICAgICBpbml0aWFsVG9r
ZW5PayA9IHJlYWRUb2tlbih0b2tlbk5hbWUpOworICAgIGlmICghaW5pdGlhbFRva2VuT2spCisg
ICAgICBicmVhazsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5kICYm
IG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBu
YW1lID0gIiI7CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmluZykgeworICAg
ICAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIHJl
Y292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgIH0gZWxzZSBpZiAodG9rZW5OYW1l
LnR5cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNLZXlzXykgewor
ICAgICAgVmFsdWUgbnVtYmVyTmFtZTsKKyAgICAgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuTmFt
ZSwgbnVtYmVyTmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2Jq
ZWN0RW5kKTsKKyAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAgIFRva2VuIGNvbG9uOworICAgIGlmICghcmVh
ZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFyYXRvcikgewor
ICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnOicg
YWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9
CisgICAgaWYgKG5hbWUubGVuZ3RoKCkgPj0gKDFVPDwzMCkpIHRocm93UnVudGltZUVycm9yKCJr
ZXlsZW5ndGggPj0gMl4zMCIpOworICAgIGlmIChmZWF0dXJlc18ucmVqZWN0RHVwS2V5c18gJiYg
Y3VycmVudFZhbHVlKCkuaXNNZW1iZXIobmFtZSkpIHsKKyAgICAgIHN0ZDo6c3RyaW5nIG1zZyA9
ICJEdXBsaWNhdGUga2V5OiAnIiArIG5hbWUgKyAiJyI7CisgICAgICByZXR1cm4gYWRkRXJyb3JB
bmRSZWNvdmVyKAorICAgICAgICAgIG1zZywgdG9rZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7Cisg
ICAgfQorICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW25hbWVdOworICAgIG5vZGVz
Xy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5w
b3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJl
Y292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworCisgICAgVG9rZW4gY29tbWE7CisgICAg
aWYgKCFyZWFkVG9rZW4oY29tbWEpIHx8CisgICAgICAgIChjb21tYS50eXBlXyAhPSB0b2tlbk9i
amVjdEVuZCAmJiBjb21tYS50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAg
ICBjb21tYS50eXBlXyAhPSB0b2tlbkNvbW1lbnQpKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JB
bmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xh
cmF0aW9uIiwgY29tbWEsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgYm9vbCBmaW5hbGl6
ZVRva2VuT2sgPSB0cnVlOworICAgIHdoaWxlIChjb21tYS50eXBlXyA9PSB0b2tlbkNvbW1lbnQg
JiYgZmluYWxpemVUb2tlbk9rKQorICAgICAgZmluYWxpemVUb2tlbk9rID0gcmVhZFRva2VuKGNv
bW1hKTsKKyAgICBpZiAoY29tbWEudHlwZV8gPT0gdG9rZW5PYmplY3RFbmQpCisgICAgICByZXR1
cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgIk1pc3Np
bmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZSIsIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQp
OworfQorCitib29sIE91clJlYWRlcjo6cmVhZEFycmF5KFRva2VuJiB0b2tlblN0YXJ0KSB7Cisg
IFZhbHVlIGluaXQoYXJyYXlWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGlu
aXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAt
IGJlZ2luXyk7CisgIHNraXBTcGFjZXMoKTsKKyAgaWYgKCpjdXJyZW50XyA9PSAnXScpIC8vIGVt
cHR5IGFycmF5CisgIHsKKyAgICBUb2tlbiBlbmRBcnJheTsKKyAgICByZWFkVG9rZW4oZW5kQXJy
YXkpOworICAgIHJldHVybiB0cnVlOworICB9CisgIGludCBpbmRleCA9IDA7CisgIGZvciAoOzsp
IHsKKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtpbmRleCsrXTsKKyAgICBub2Rl
c18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18u
cG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiBy
ZWNvdmVyRnJvbUVycm9yKHRva2VuQXJyYXlFbmQpOworCisgICAgVG9rZW4gdG9rZW47CisgICAg
Ly8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KKyAgICBvayA9
IHJlYWRUb2tlbih0b2tlbik7CisgICAgd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVu
dCAmJiBvaykgeworICAgICAgb2sgPSByZWFkVG9rZW4odG9rZW4pOworICAgIH0KKyAgICBib29s
IGJhZFRva2VuVHlwZSA9CisgICAgICAgICh0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJh
dG9yICYmIHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlFbmQpOworICAgIGlmICghb2sgfHwgYmFk
VG9rZW5UeXBlKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAg
ICJNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRpb24iLCB0b2tlbiwgdG9rZW5B
cnJheUVuZCk7CisgICAgfQorICAgIGlmICh0b2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5kKQor
ICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpk
ZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVj
b2RlTnVtYmVyKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRW
YWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICAv
LyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFuIGludGVnZXIuIElmIHRoZSBudW1i
ZXIgaXMKKyAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZhbHVlIG9mIGFu
IGludGVnZXIgdGhlbgorICAvLyB3ZSBkZWNvZGUgdGhlIG51bWJlciBhcyBhIGRvdWJsZS4KKyAg
TG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsKKyAgYm9vbCBpc05lZ2F0aXZlID0gKmN1
cnJlbnQgPT0gJy0nOworICBpZiAoaXNOZWdhdGl2ZSkKKyAgICArK2N1cnJlbnQ7CisgIC8vIFRP
RE86IEhlbHAgdGhlIGNvbXBpbGVyIGRvIHRoZSBkaXYgYW5kIG1vZCBhdCBjb21waWxlIHRpbWUg
b3IgZ2V0IHJpZCBvZiB0aGVtLgorICBWYWx1ZTo6TGFyZ2VzdFVJbnQgbWF4SW50ZWdlclZhbHVl
ID0KKyAgICAgIGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2VzdFVJbnQoLVZhbHVlOjptaW5MYXJn
ZXN0SW50KQorICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhMYXJnZXN0VUludDsKKyAgVmFs
dWU6Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heEludGVnZXJWYWx1ZSAvIDEwOworICBWYWx1
ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IHRva2VuLmVuZF8p
IHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScp
CisgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICBWYWx1ZTo6
VUludCBkaWdpdChjIC0gJzAnKTsKKyAgICBpZiAodmFsdWUgPj0gdGhyZXNob2xkKSB7CisgICAg
ICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1heCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChy
b3VuZGVkIGRvd24pLiBJZgorICAgICAgLy8gYSkgd2UndmUgb25seSBqdXN0IHRvdWNoZWQgdGhl
IGxpbWl0LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0LCBhbmQKKyAgICAgIC8vIGMpIGl0J3Mg
c21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5nIGRlbHRhLCB3ZSdyZSBva2F5Lgor
ICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVyIGFzIGEgZG91YmxlIHRvIGF2b2lk
IG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhyZXNob2xkIHx8IGN1cnJlbnQgIT0gdG9r
ZW4uZW5kXyB8fAorICAgICAgICAgIGRpZ2l0ID4gbWF4SW50ZWdlclZhbHVlICUgMTApIHsKKyAg
ICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgICB9CisgICAg
fQorICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0OworICB9CisgIGlmIChpc05lZ2F0aXZl
KQorICAgIGRlY29kZWQgPSAtVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlIGlmICh2
YWx1ZSA8PSBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heEludCkpCisgICAgZGVjb2RlZCA9
IFZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKKyAgZWxzZQorICAgIGRlY29kZWQgPSB2YWx1ZTsK
KyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVEb3VibGUoVG9rZW4m
IHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVjb2RlRG91YmxlKHRva2VuLCBk
ZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2Fk
KGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8g
LSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0g
YmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVEb3Vi
bGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICBkb3VibGUgdmFsdWUgPSAwOwor
ICBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyOworICBpbnQgY291bnQ7CisgIGludCBsZW5ndGgg
PSBpbnQodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0Xyk7CisKKyAgLy8gU2FuaXR5IGNoZWNrIHRv
IGF2b2lkIGJ1ZmZlciBvdmVyZmxvdyBleHBsb2l0cy4KKyAgaWYgKGxlbmd0aCA8IDApIHsKKyAg
ICByZXR1cm4gYWRkRXJyb3IoIlVuYWJsZSB0byBwYXJzZSB0b2tlbiBsZW5ndGgiLCB0b2tlbik7
CisgIH0KKworICAvLyBBdm9pZCB1c2luZyBhIHN0cmluZyBjb25zdGFudCBmb3IgdGhlIGZvcm1h
dCBjb250cm9sIHN0cmluZyBnaXZlbiB0bworICAvLyBzc2NhbmYsIGFzIHRoaXMgY2FuIGNhdXNl
IGhhcmQgdG8gZGVidWcgY3Jhc2hlcyBvbiBPUyBYLiBTZWUgaGVyZSBmb3IgbW9yZQorICAvLyBp
bmZvOgorICAvLworICAvLyAgICAgaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9t
YWMvI0RPQ1VNRU5UQVRJT04vRGV2ZWxvcGVyVG9vbHMvZ2NjLTQuMC4xL2djYy9JbmNvbXBhdGli
aWxpdGllcy5odG1sCisgIGNoYXIgZm9ybWF0W10gPSAiJWxmIjsKKworICBpZiAobGVuZ3RoIDw9
IGJ1ZmZlclNpemUpIHsKKyAgICBDaGFyIGJ1ZmZlcltidWZmZXJTaXplICsgMV07CisgICAgbWVt
Y3B5KGJ1ZmZlciwgdG9rZW4uc3RhcnRfLCBsZW5ndGgpOworICAgIGJ1ZmZlcltsZW5ndGhdID0g
MDsKKyAgICBjb3VudCA9IHNzY2FuZihidWZmZXIsIGZvcm1hdCwgJnZhbHVlKTsKKyAgfSBlbHNl
IHsKKyAgICBzdGQ6OnN0cmluZyBidWZmZXIodG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKTsKKyAg
ICBjb3VudCA9IHNzY2FuZihidWZmZXIuY19zdHIoKSwgZm9ybWF0LCAmdmFsdWUpOworICB9CisK
KyAgaWYgKGNvdW50ICE9IDEpCisgICAgcmV0dXJuIGFkZEVycm9yKCInIiArIHN0ZDo6c3RyaW5n
KHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKworICAgICAgICAgICAgICAgICAgICAgICAgIicg
aXMgbm90IGEgbnVtYmVyLiIsCisgICAgICAgICAgICAgICAgICAgIHRva2VuKTsKKyAgZGVjb2Rl
ZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVN0
cmluZyhUb2tlbiYgdG9rZW4pIHsKKyAgc3RkOjpzdHJpbmcgZGVjb2RlZF9zdHJpbmc7CisgIGlm
ICghZGVjb2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykpCisgICAgcmV0dXJuIGZhbHNl
OworICBWYWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKKyAgY3VycmVudFZhbHVlKCkuc3dh
cFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2Vu
LnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2Vu
LmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRl
Y29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKSB7CisgIGRlY29k
ZWQucmVzZXJ2ZSh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMik7CisgIExvY2F0aW9uIGN1
cnJlbnQgPSB0b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJworICBMb2NhdGlvbiBlbmQgPSB0
b2tlbi5lbmRfIC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCisgIHdoaWxlIChjdXJy
ZW50ICE9IGVuZCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJyIn
KQorICAgICAgYnJlYWs7CisgICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7CisgICAgICBpZiAoY3Vy
cmVudCA9PSBlbmQpCisgICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVl
bmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKKyAgICAgIENoYXIgZXNjYXBlID0gKmN1
cnJlbnQrKzsKKyAgICAgIHN3aXRjaCAoZXNjYXBlKSB7CisgICAgICBjYXNlICciJzoKKyAgICAg
ICAgZGVjb2RlZCArPSAnIic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnLyc6CisgICAg
ICAgIGRlY29kZWQgKz0gJy8nOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ1xcJzoKKyAg
ICAgICAgZGVjb2RlZCArPSAnXFwnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2InOgor
ICAgICAgICBkZWNvZGVkICs9ICdcYic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnZic6
CisgICAgICAgIGRlY29kZWQgKz0gJ1xmJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdu
JzoKKyAgICAgICAgZGVjb2RlZCArPSAnXG4nOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2Ug
J3InOgorICAgICAgICBkZWNvZGVkICs9ICdccic7CisgICAgICAgIGJyZWFrOworICAgICAgY2Fz
ZSAndCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKKyAgICAgICAgYnJlYWs7CisgICAgICBj
YXNlICd1JzogeworICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKKyAgICAgICAgaWYgKCFk
ZWNvZGVVbmljb2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQorICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgo
dW5pY29kZSk7CisgICAgICB9IGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGFkZEVycm9yKCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50
KTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgZGVjb2RlZCArPSBjOworICAgIH0KKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2Rl
UG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQmIHVuaWNvZGUpIHsKKworICBpZiAoIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0
b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGlmICh1
bmljb2RlID49IDB4RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgeworICAgIC8vIHN1cnJvZ2F0
ZSBwYWlycworICAgIGlmIChlbmQgLSBjdXJyZW50IDwgNikKKyAgICAgIHJldHVybiBhZGRFcnJv
cigKKyAgICAgICAgICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJz
ZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLiIsCisgICAgICAgICAgdG9rZW4sCisgICAgICAgICAg
Y3VycmVudCk7CisgICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7CisgICAgaWYgKCooY3Vy
cmVudCsrKSA9PSAnXFwnICYmICooY3VycmVudCsrKSA9PSAndScpIHsKKyAgICAgIGlmIChkZWNv
ZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFp
cikpIHsKKyAgICAgICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwg
MTApICsgKHN1cnJvZ2F0ZVBhaXIgJiAweDNGRik7CisgICAgICB9IGVsc2UKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0gZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKCJleHBlY3Rpbmcg
YW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIKKyAgICAgICAg
ICAgICAgICAgICAgICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKKyAgICAgICAgICAgICAg
ICAgICAgICB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50KTsKKyAgfQorICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1
ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkgeworICBpZiAoZW5kIC0gY3VycmVudCA8IDQp
CisgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVl
bmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwKKyAgICAgICAgdG9rZW4sCisg
ICAgICAgIGN1cnJlbnQpOworICB1bmljb2RlID0gMDsKKyAgZm9yIChpbnQgaW5kZXggPSAwOyBp
bmRleCA8IDQ7ICsraW5kZXgpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIHVuaWNv
ZGUgKj0gMTY7CisgICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAgdW5pY29kZSAr
PSBjIC0gJzAnOworICAgIGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKQorICAgICAgdW5p
Y29kZSArPSBjIC0gJ2EnICsgMTA7CisgICAgZWxzZSBpZiAoYyA+PSAnQScgJiYgYyA8PSAnRicp
CisgICAgICB1bmljb2RlICs9IGMgLSAnQScgKyAxMDsKKyAgICBlbHNlCisgICAgICByZXR1cm4g
YWRkRXJyb3IoCisgICAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJp
bmc6IGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkLiIsCisgICAgICAgICAgdG9rZW4sCisgICAg
ICAgICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wKK091clJlYWRl
cjo6YWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9j
YXRpb24gZXh0cmEpIHsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47
CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGV4dHJhOworICBl
cnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIE91clJl
YWRlcjo6cmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgaW50
IGVycm9yQ291bnQgPSBpbnQoZXJyb3JzXy5zaXplKCkpOworICBUb2tlbiBza2lwOworICBmb3Ig
KDs7KSB7CisgICAgaWYgKCFyZWFkVG9rZW4oc2tpcCkpCisgICAgICBlcnJvcnNfLnJlc2l6ZShl
cnJvckNvdW50KTsgLy8gZGlzY2FyZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292ZXJ5CisgICAgaWYg
KHNraXAudHlwZV8gPT0gc2tpcFVudGlsVG9rZW4gfHwgc2tpcC50eXBlXyA9PSB0b2tlbkVuZE9m
U3RyZWFtKQorICAgICAgYnJlYWs7CisgIH0KKyAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7
CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zl
cihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl
blR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOworICBy
ZXR1cm4gcmVjb3ZlckZyb21FcnJvcihza2lwVW50aWxUb2tlbik7Cit9CisKK1ZhbHVlJiBPdXJS
ZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0dXJuICoobm9kZXNfLnRvcCgpKTsgfQorCitPdXJS
ZWFkZXI6OkNoYXIgT3VyUmVhZGVyOjpnZXROZXh0Q2hhcigpIHsKKyAgaWYgKGN1cnJlbnRfID09
IGVuZF8pCisgICAgcmV0dXJuIDA7CisgIHJldHVybiAqY3VycmVudF8rKzsKK30KKwordm9pZCBP
dXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBsaW5lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNvbHVtbikgY29uc3QgeworICBMb2Nh
dGlvbiBjdXJyZW50ID0gYmVnaW5fOworICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3VycmVu
dDsKKyAgbGluZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgbG9jYXRpb24gJiYgY3VycmVudCAh
PSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7
CisgICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgKytjdXJyZW50OworICAgICAg
bGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfSBlbHNlIGlmIChj
ID09ICdcbicpIHsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5l
OworICAgIH0KKyAgfQorICAvLyBjb2x1bW4gJiBsaW5lIHN0YXJ0IGF0IDEKKyAgY29sdW1uID0g
aW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOworICArK2xpbmU7Cit9CisKK3N0ZDo6
c3RyaW5nIE91clJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0
aW9uKSBjb25zdCB7CisgIGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0aW9uTGluZUFuZENv
bHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJbMTggKyAxNiArIDE2
ICsgMV07CisgIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICJMaW5lICVkLCBDb2x1
bW4gJWQiLCBsaW5lLCBjb2x1bW4pOworICByZXR1cm4gYnVmZmVyOworfQorCitzdGQ6OnN0cmlu
ZyBPdXJSZWFkZXI6OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHN0ZDo6
c3RyaW5nIGZvcm1hdHRlZE1lc3NhZ2U7CisgIGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBp
dEVycm9yID0gZXJyb3JzXy5iZWdpbigpOworICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQo
KTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0
RXJyb3I7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAiKiAiICsgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICBmb3JtYXR0
ZWRNZXNzYWdlICs9ICIgICIgKyBlcnJvci5tZXNzYWdlXyArICJcbiI7CisgICAgaWYgKGVycm9y
LmV4dHJhXykKKyAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgICAiU2VlICIgKyBn
ZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IuZXh0cmFfKSArICIgZm9yIGRldGFpbC5cbiI7
CisgIH0KKyAgcmV0dXJuIGZvcm1hdHRlZE1lc3NhZ2U7Cit9CisKK3N0ZDo6dmVjdG9yPE91clJl
YWRlcjo6U3RydWN0dXJlZEVycm9yPiBPdXJSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMoKSBj
b25zdCB7CisgIHN0ZDo6dmVjdG9yPE91clJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBhbGxFcnJv
cnM7CisgIGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBpdEVycm9yID0gZXJyb3JzXy5iZWdp
bigpOworICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQoKTsKKyAgICAgICArK2l0RXJyb3Ip
IHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0RXJyb3I7CisgICAgT3VyUmVhZGVy
OjpTdHJ1Y3R1cmVkRXJyb3Igc3RydWN0dXJlZDsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9zdGFy
dCA9IGVycm9yLnRva2VuXy5zdGFydF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJlZC5vZmZzZXRf
bGltaXQgPSBlcnJvci50b2tlbl8uZW5kXyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm1lc3Nh
Z2UgPSBlcnJvci5tZXNzYWdlXzsKKyAgICBhbGxFcnJvcnMucHVzaF9iYWNrKHN0cnVjdHVyZWQp
OworICB9CisgIHJldHVybiBhbGxFcnJvcnM7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJy
b3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgeworICBz
aXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQo
KSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAg
cmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9y
OworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0
b2tlbi5lbmRfID0gZW5kXyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBp
bmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsK
KyAgaW5mby5leHRyYV8gPSAwOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVl
LCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKSB7CisgIHNp
emVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFydCgp
ID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aAorICAgIHx8
IGV4dHJhLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBU
b2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5zdGFydF8g
PSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0gYmVnaW5f
ICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9r
ZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9
IGJlZ2luXyArIGV4dHJhLmdldE9mZnNldFN0YXJ0KCk7CisgIGVycm9yc18ucHVzaF9iYWNrKGlu
Zm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6Omdvb2QoKSBjb25zdCB7
CisgIHJldHVybiAhZXJyb3JzXy5zaXplKCk7Cit9CisKKworY2xhc3MgT3VyQ2hhclJlYWRlciA6
IHB1YmxpYyBDaGFyUmVhZGVyIHsKKyAgYm9vbCBjb25zdCBjb2xsZWN0Q29tbWVudHNfOworICBP
dXJSZWFkZXIgcmVhZGVyXzsKK3B1YmxpYzoKKyAgT3VyQ2hhclJlYWRlcigKKyAgICBib29sIGNv
bGxlY3RDb21tZW50cywKKyAgICBPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCisgIDogY29s
bGVjdENvbW1lbnRzXyhjb2xsZWN0Q29tbWVudHMpCisgICwgcmVhZGVyXyhmZWF0dXJlcykKKyAg
e30KKyAgYm9vbCBwYXJzZSgKKyAgICAgIGNoYXIgY29uc3QqIGJlZ2luRG9jLCBjaGFyIGNvbnN0
KiBlbmREb2MsCisgICAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMpIHsKKyAgICBi
b29sIG9rID0gcmVhZGVyXy5wYXJzZShiZWdpbkRvYywgZW5kRG9jLCAqcm9vdCwgY29sbGVjdENv
bW1lbnRzXyk7CisgICAgaWYgKGVycnMpIHsKKyAgICAgICplcnJzID0gcmVhZGVyXy5nZXRGb3Jt
YXR0ZWRFcnJvck1lc3NhZ2VzKCk7CisgICAgfQorICAgIHJldHVybiBvazsKKyAgfQorfTsKKwor
Q2hhclJlYWRlckJ1aWxkZXI6OkNoYXJSZWFkZXJCdWlsZGVyKCkKK3sKKyAgc2V0RGVmYXVsdHMo
JnNldHRpbmdzXyk7Cit9CitDaGFyUmVhZGVyQnVpbGRlcjo6fkNoYXJSZWFkZXJCdWlsZGVyKCkK
K3t9CitDaGFyUmVhZGVyKiBDaGFyUmVhZGVyQnVpbGRlcjo6bmV3Q2hhclJlYWRlcigpIGNvbnN0
Cit7CisgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gc2V0dGluZ3NfWyJjb2xsZWN0Q29tbWVudHMi
XS5hc0Jvb2woKTsKKyAgT3VyRmVhdHVyZXMgZmVhdHVyZXMgPSBPdXJGZWF0dXJlczo6YWxsKCk7
CisgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0gc2V0dGluZ3NfWyJhbGxvd0NvbW1lbnRzIl0u
YXNCb29sKCk7CisgIGZlYXR1cmVzLnN0cmljdFJvb3RfID0gc2V0dGluZ3NfWyJzdHJpY3RSb290
Il0uYXNCb29sKCk7CisgIGZlYXR1cmVzLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfID0g
c2V0dGluZ3NfWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0uYXNCb29sKCk7CisgIGZl
YXR1cmVzLmFsbG93TnVtZXJpY0tleXNfID0gc2V0dGluZ3NfWyJhbGxvd051bWVyaWNLZXlzIl0u
YXNCb29sKCk7CisgIGZlYXR1cmVzLmFsbG93U2luZ2xlUXVvdGVzXyA9IHNldHRpbmdzX1siYWxs
b3dTaW5nbGVRdW90ZXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuc3RhY2tMaW1pdF8gPSBzZXR0
aW5nc19bInN0YWNrTGltaXQiXS5hc0ludCgpOworICBmZWF0dXJlcy5mYWlsSWZFeHRyYV8gPSBz
ZXR0aW5nc19bImZhaWxJZkV4dHJhIl0uYXNCb29sKCk7CisgIGZlYXR1cmVzLnJlamVjdER1cEtl
eXNfID0gc2V0dGluZ3NfWyJyZWplY3REdXBLZXlzIl0uYXNCb29sKCk7CisgIGZlYXR1cmVzLmFs
bG93U3BlY2lhbEZsb2F0c18gPSBzZXR0aW5nc19bImFsbG93U3BlY2lhbEZsb2F0cyJdLmFzQm9v
bCgpOworICByZXR1cm4gbmV3IE91ckNoYXJSZWFkZXIoY29sbGVjdENvbW1lbnRzLCBmZWF0dXJl
cyk7Cit9CitzdGF0aWMgdm9pZCBnZXRWYWxpZFJlYWRlcktleXMoc3RkOjpzZXQ8c3RkOjpzdHJp
bmc+KiB2YWxpZF9rZXlzKQoreworICB2YWxpZF9rZXlzLT5jbGVhcigpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoImNvbGxlY3RDb21tZW50cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93
Q29tbWVudHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdHJpY3RSb290Iik7CisgIHZhbGlk
X2tleXMtPmluc2VydCgiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyIpOworICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImFsbG93TnVtZXJpY0tleXMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJh
bGxvd1NpbmdsZVF1b3RlcyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInN0YWNrTGltaXQiKTsK
KyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJmYWlsSWZFeHRyYSIpOworICB2YWxpZF9rZXlzLT5pbnNl
cnQoInJlamVjdER1cEtleXMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd1NwZWNpYWxG
bG9hdHMiKTsKK30KK2Jvb2wgQ2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlKEpzb246OlZhbHVl
KiBpbnZhbGlkKSBjb25zdAoreworICBKc29uOjpWYWx1ZSBteV9pbnZhbGlkOworICBpZiAoIWlu
dmFsaWQpIGludmFsaWQgPSAmbXlfaW52YWxpZDsgIC8vIHNvIHdlIGRvIG5vdCBuZWVkIHRvIHRl
c3QgZm9yIE5VTEwKKyAgSnNvbjo6VmFsdWUmIGludiA9ICppbnZhbGlkOworICBzdGQ6OnNldDxz
dGQ6OnN0cmluZz4gdmFsaWRfa2V5czsKKyAgZ2V0VmFsaWRSZWFkZXJLZXlzKCZ2YWxpZF9rZXlz
KTsKKyAgVmFsdWU6Ok1lbWJlcnMga2V5cyA9IHNldHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOwor
ICBzaXplX3QgbiA9IGtleXMuc2l6ZSgpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsr
aSkgeworICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkgPSBrZXlzW2ldOworICAgIGlmICh2YWxp
ZF9rZXlzLmZpbmQoa2V5KSA9PSB2YWxpZF9rZXlzLmVuZCgpKSB7CisgICAgICBpbnZba2V5XSA9
IHNldHRpbmdzX1trZXldOworICAgIH0KKyAgfQorICByZXR1cm4gMHUgPT0gaW52LnNpemUoKTsK
K30KK1ZhbHVlJiBDaGFyUmVhZGVyQnVpbGRlcjo6b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkp
Cit7CisgIHJldHVybiBzZXR0aW5nc19ba2V5XTsKK30KKy8vIHN0YXRpYwordm9pZCBDaGFyUmVh
ZGVyQnVpbGRlcjo6c3RyaWN0TW9kZShKc29uOjpWYWx1ZSogc2V0dGluZ3MpCit7CisvLyEgW0No
YXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZV0KKyAgKCpzZXR0aW5ncylbImFsbG93Q29tbWVudHMi
XSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsic3RyaWN0Um9vdCJdID0gdHJ1ZTsKKyAgKCpzZXR0
aW5ncylbImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICAoKnNldHRp
bmdzKVsiYWxsb3dOdW1lcmljS2V5cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd1Np
bmdsZVF1b3RlcyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJzdGFja0xpbWl0Il0gPSAxMDAw
OworICAoKnNldHRpbmdzKVsiZmFpbElmRXh0cmEiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJy
ZWplY3REdXBLZXlzIl0gPSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dTcGVjaWFsRmxvYXRz
Il0gPSBmYWxzZTsKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlXQorfQorLy8gc3Rh
dGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0
dGluZ3MpCit7CisvLyEgW0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCisgICgqc2V0dGluZ3Mp
WyJjb2xsZWN0Q29tbWVudHMiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRz
Il0gPSB0cnVlOworICAoKnNldHRpbmdzKVsic3RyaWN0Um9vdCJdID0gZmFsc2U7CisgICgqc2V0
dGluZ3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0
aW5ncylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dT
aW5nbGVRdW90ZXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAw
MDsKKyAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylb
InJlamVjdER1cEtleXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTcGVjaWFsRmxv
YXRzIl0gPSBmYWxzZTsKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0c10KK30KKworLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gZ2xvYmFsIGZ1bmN0aW9ucworCiti
b29sIHBhcnNlRnJvbVN0cmVhbSgKKyAgICBDaGFyUmVhZGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0
LCBzdGQ6OmlzdHJlYW0mIHNpbiwKKyAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMp
Cit7CisgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzc2luOworICBzc2luIDw8IHNpbi5yZGJ1ZigpOwor
ICBzdGQ6OnN0cmluZyBkb2MgPSBzc2luLnN0cigpOworICBjaGFyIGNvbnN0KiBiZWdpbiA9IGRv
Yy5kYXRhKCk7CisgIGNoYXIgY29uc3QqIGVuZCA9IGJlZ2luICsgZG9jLnNpemUoKTsKKyAgLy8g
Tm90ZSB0aGF0IHdlIGRvIG5vdCBhY3R1YWxseSBuZWVkIGEgbnVsbC10ZXJtaW5hdG9yLgorICBD
aGFyUmVhZGVyUHRyIGNvbnN0IHJlYWRlcihmYWN0Lm5ld0NoYXJSZWFkZXIoKSk7CisgIHJldHVy
biByZWFkZXItPnBhcnNlKGJlZ2luLCBlbmQsIHJvb3QsIGVycnMpOworfQorCitzdGQ6OmlzdHJl
YW0mIG9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiBzaW4sIFZhbHVlJiByb290KSB7CisgIENoYXJS
ZWFkZXJCdWlsZGVyIGI7CisgIHN0ZDo6c3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSBwYXJzZUZy
b21TdHJlYW0oYiwgc2luLCAmcm9vdCwgJmVycnMpOworICBpZiAoIW9rKSB7CisgICAgZnByaW50
ZihzdGRlcnIsCisgICAgICAgICAgICAiRXJyb3IgZnJvbSByZWFkZXI6ICVzIiwKKyAgICAgICAg
ICAgIGVycnMuY19zdHIoKSk7CisKKyAgICB0aHJvd1J1bnRpbWVFcnJvcihlcnJzKTsKKyAgfQor
ICByZXR1cm4gc2luOworfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5j
cHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJl
Z2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0
b3IuaW5sCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKy8vIGluY2x1ZGVkIGJ5IGpzb25fdmFsdWUu
Y3BwCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWVJdGVyYXRvckJhc2UKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0
b3JCYXNlKCkKKyAgICA6IGN1cnJlbnRfKCksIGlzTnVsbF8odHJ1ZSkgeworfQorCitWYWx1ZUl0
ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoCisgICAgY29uc3QgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpCisgICAgOiBjdXJyZW50XyhjdXJyZW50KSwgaXNOdWxs
XyhmYWxzZSkge30KKworVmFsdWUmIFZhbHVlSXRlcmF0b3JCYXNlOjpkZXJlZigpIGNvbnN0IHsK
KyAgcmV0dXJuIGN1cnJlbnRfLT5zZWNvbmQ7Cit9CisKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6
OmluY3JlbWVudCgpIHsKKyAgKytjdXJyZW50XzsKK30KKwordm9pZCBWYWx1ZUl0ZXJhdG9yQmFz
ZTo6ZGVjcmVtZW50KCkgeworICAtLWN1cnJlbnRfOworfQorCitWYWx1ZUl0ZXJhdG9yQmFzZTo6
ZGlmZmVyZW5jZV90eXBlCitWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3RhbmNlKGNvbnN0
IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeworI2lmZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQ
CisgIHJldHVybiBvdGhlci5jdXJyZW50XyAtIGN1cnJlbnRfOworI2Vsc2UKKyAgLy8gSXRlcmF0
b3IgZm9yIG51bGwgdmFsdWUgYXJlIGluaXRpYWxpemVkIHVzaW5nIHRoZSBkZWZhdWx0CisgIC8v
IGNvbnN0cnVjdG9yLCB3aGljaCBpbml0aWFsaXplIGN1cnJlbnRfIHRvIHRoZSBkZWZhdWx0Cisg
IC8vIHN0ZDo6bWFwOjppdGVyYXRvci4gQXMgYmVnaW4oKSBhbmQgZW5kKCkgYXJlIHR3byBpbnN0
YW5jZQorICAvLyBvZiB0aGUgZGVmYXVsdCBzdGQ6Om1hcDo6aXRlcmF0b3IsIHRoZXkgY2FuIG5v
dCBiZSBjb21wYXJlZC4KKyAgLy8gVG8gYWxsb3cgdGhpcywgd2UgaGFuZGxlIHRoaXMgY29tcGFy
aXNvbiBzcGVjaWZpY2FsbHkuCisgIGlmIChpc051bGxfICYmIG90aGVyLmlzTnVsbF8pIHsKKyAg
ICByZXR1cm4gMDsKKyAgfQorCisgIC8vIFVzYWdlIG9mIHN0ZDo6ZGlzdGFuY2UgaXMgbm90IHBv
cnRhYmxlIChkb2VzIG5vdCBjb21waWxlIHdpdGggU3VuIFN0dWRpbyAxMgorICAvLyBSb2d1ZVdh
dmUgU1RMLAorICAvLyB3aGljaCBpcyB0aGUgb25lIHVzZWQgYnkgZGVmYXVsdCkuCisgIC8vIFVz
aW5nIGEgcG9ydGFibGUgaGFuZC1tYWRlIHZlcnNpb24gZm9yIG5vbiByYW5kb20gaXRlcmF0b3Ig
aW5zdGVhZDoKKyAgLy8gICByZXR1cm4gZGlmZmVyZW5jZV90eXBlKCBzdGQ6OmRpc3RhbmNlKCBj
dXJyZW50Xywgb3RoZXIuY3VycmVudF8gKSApOworICBkaWZmZXJlbmNlX3R5cGUgbXlEaXN0YW5j
ZSA9IDA7CisgIGZvciAoVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSBjdXJyZW50
XzsgaXQgIT0gb3RoZXIuY3VycmVudF87CisgICAgICAgKytpdCkgeworICAgICsrbXlEaXN0YW5j
ZTsKKyAgfQorICByZXR1cm4gbXlEaXN0YW5jZTsKKyNlbmRpZgorfQorCitib29sIFZhbHVlSXRl
cmF0b3JCYXNlOjppc0VxdWFsKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeworICBpZiAo
aXNOdWxsXykgeworICAgIHJldHVybiBvdGhlci5pc051bGxfOworICB9CisgIHJldHVybiBjdXJy
ZW50XyA9PSBvdGhlci5jdXJyZW50XzsKK30KKwordm9pZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29w
eShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIHsKKyAgY3VycmVudF8gPSBvdGhlci5jdXJyZW50XzsK
KyAgaXNOdWxsXyA9IG90aGVyLmlzTnVsbF87Cit9CisKK1ZhbHVlIFZhbHVlSXRlcmF0b3JCYXNl
OjprZXkoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmluZyA9ICgqY3Vy
cmVudF8pLmZpcnN0OworICBpZiAoY3pzdHJpbmcuZGF0YSgpKSB7CisgICAgaWYgKGN6c3RyaW5n
LmlzU3RhdGljU3RyaW5nKCkpCisgICAgICByZXR1cm4gVmFsdWUoU3RhdGljU3RyaW5nKGN6c3Ry
aW5nLmRhdGEoKSkpOworICAgIHJldHVybiBWYWx1ZShjenN0cmluZy5kYXRhKCksIGN6c3RyaW5n
LmRhdGEoKSArIGN6c3RyaW5nLmxlbmd0aCgpKTsKKyAgfQorICByZXR1cm4gVmFsdWUoY3pzdHJp
bmcuaW5kZXgoKSk7Cit9CisKK1VJbnQgVmFsdWVJdGVyYXRvckJhc2U6OmluZGV4KCkgY29uc3Qg
eworICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsK
KyAgaWYgKCFjenN0cmluZy5kYXRhKCkpCisgICAgcmV0dXJuIGN6c3RyaW5nLmluZGV4KCk7Cisg
IHJldHVybiBWYWx1ZTo6VUludCgtMSk7Cit9CisKK3N0ZDo6c3RyaW5nIFZhbHVlSXRlcmF0b3JC
YXNlOjpuYW1lKCkgY29uc3QgeworICBjaGFyIGNvbnN0KiBrZWV5OworICBjaGFyIGNvbnN0KiBl
bmQ7CisgIGtlZXkgPSBtZW1iZXJOYW1lKCZlbmQpOworICBpZiAoIWtlZXkpIHJldHVybiBzdGQ6
OnN0cmluZygpOworICByZXR1cm4gc3RkOjpzdHJpbmcoa2VleSwgZW5kKTsKK30KKworY2hhciBj
b25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUoKSBjb25zdCB7CisgIGNvbnN0IGNo
YXIqIGNuYW1lID0gKCpjdXJyZW50XykuZmlyc3QuZGF0YSgpOworICByZXR1cm4gY25hbWUgPyBj
bmFtZSA6ICIiOworfQorCitjaGFyIGNvbnN0KiBWYWx1ZUl0ZXJhdG9yQmFzZTo6bWVtYmVyTmFt
ZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdCB7CisgIGNvbnN0IGNoYXIqIGNuYW1lID0gKCpjdXJy
ZW50XykuZmlyc3QuZGF0YSgpOworICBpZiAoIWNuYW1lKSB7CisgICAgKmVuZCA9IE5VTEw7Cisg
ICAgcmV0dXJuIE5VTEw7CisgIH0KKyAgKmVuZCA9IGNuYW1lICsgKCpjdXJyZW50XykuZmlyc3Qu
bGVuZ3RoKCk7CisgIHJldHVybiBjbmFtZTsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKCkge30KKworVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRl
cmF0b3IoCisgICAgY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQp
CisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShjdXJyZW50KSB7fQorCitWYWx1ZUNvbnN0SXRlcmF0
b3I6OlZhbHVlQ29uc3RJdGVyYXRvcihWYWx1ZUl0ZXJhdG9yIGNvbnN0JiBvdGhlcikKKyAgICA6
IFZhbHVlSXRlcmF0b3JCYXNlKG90aGVyKSB7fQorCitWYWx1ZUNvbnN0SXRlcmF0b3ImIFZhbHVl
Q29uc3RJdGVyYXRvcjo6CitvcGVyYXRvcj0oY29uc3QgVmFsdWVJdGVyYXRvckJhc2UmIG90aGVy
KSB7CisgIGNvcHkob3RoZXIpOworICByZXR1cm4gKnRoaXM7Cit9CisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlSXRlcmF0b3IKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFsdWVJdGVyYXRvcjo6VmFs
dWVJdGVyYXRvcigpIHt9CisKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFs
dWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpCisgICAgOiBWYWx1ZUl0ZXJhdG9y
QmFzZShjdXJyZW50KSB7fQorCitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZh
bHVlQ29uc3RJdGVyYXRvciYgb3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikg
eworICB0aHJvd1J1bnRpbWVFcnJvcigiQ29uc3RJdGVyYXRvciB0byBJdGVyYXRvciBzaG91bGQg
bmV2ZXIgYmUgYWxsb3dlZC4iKTsKK30KKworVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihj
b25zdCBWYWx1ZUl0ZXJhdG9yJiBvdGhlcikKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKG90aGVy
KSB7fQorCitWYWx1ZUl0ZXJhdG9yJiBWYWx1ZUl0ZXJhdG9yOjpvcGVyYXRvcj0oY29uc3QgU2Vs
ZlR5cGUmIG90aGVyKSB7CisgIGNvcHkob3RoZXIpOworICByZXR1cm4gKnRoaXM7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQg
b2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFsdWVpdGVyYXRvci5pbmwKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250
ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAorLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCisvLyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVk
IHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyBy
ZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3Ig
ZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UK
KworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPGpzb24vYXNz
ZXJ0aW9ucy5oPgorI2luY2x1ZGUgPGpzb24vdmFsdWUuaD4KKyNpbmNsdWRlIDxqc29uL3dyaXRl
ci5oPgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1
ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5j
bHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2lmZGVmIEpTT05fVVNFX0NQUFRM
CisjaW5jbHVkZSA8Y3BwdGwvY29uc3RzdHJpbmcuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGNzdGRk
ZWY+IC8vIHNpemVfdAorI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gbWluKCkKKworI2RlZmluZSBK
U09OX0FTU0VSVF9VTlJFQUNIQUJMRSBhc3NlcnQoZmFsc2UpCisKKy8qCistLSBWYWx2ZSAxLzcv
MTYKKzQ3MDIgdW5yZWFjaGFibGUgY29kZQorKi8KKyNwcmFnbWEgd2FybmluZyAocHVzaCkKKyNw
cmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDcwMikKKworbmFtZXNwYWNlIEpzb24geworCisvLyBU
aGlzIGlzIGEgd2Fsa2Fyb3VuZCB0byBhdm9pZCB0aGUgc3RhdGljIGluaXRpYWxpemF0aW9uIG9m
IFZhbHVlOjpudWxsLgorLy8ga051bGwgbXVzdCBiZSB3b3JkLWFsaWduZWQgdG8gYXZvaWQgY3Jh
c2hpbmcgb24gQVJNLiAgV2UgdXNlIGFuIGFsaWdubWVudCBvZgorLy8gOCAoaW5zdGVhZCBvZiA0
KSBhcyBhIGJpdCBvZiBmdXR1cmUtcHJvb2ZpbmcuCisjaWYgZGVmaW5lZChfX0FSTUVMX18pCisj
ZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpIF9fYXR0cmlidXRlX18oKGFsaWduZWQoYnl0
ZV9hbGlnbm1lbnQpKSkKKyNlbHNlCisjZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpCisj
ZW5kaWYKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEFMSUdOQVMoOCkga051bGxbc2l6ZW9m
KFZhbHVlKV0gPSB7IDAgfTsKK2NvbnN0IHVuc2lnbmVkIGNoYXImIGtOdWxsUmVmID0ga051bGxb
MF07Citjb25zdCBWYWx1ZSYgVmFsdWU6Om51bGwgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFZh
bHVlJj4oa051bGxSZWYpOworY29uc3QgVmFsdWUmIFZhbHVlOjpudWxsUmVmID0gbnVsbDsKKwor
Y29uc3QgSW50IFZhbHVlOjptaW5JbnQgPSBJbnQofihVSW50KC0xKSAvIDIpKTsKK2NvbnN0IElu
dCBWYWx1ZTo6bWF4SW50ID0gSW50KFVJbnQoLTEpIC8gMik7Citjb25zdCBVSW50IFZhbHVlOjpt
YXhVSW50ID0gVUludCgtMSk7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK2NvbnN0IElu
dDY0IFZhbHVlOjptaW5JbnQ2NCA9IEludDY0KH4oVUludDY0KC0xKSAvIDIpKTsKK2NvbnN0IElu
dDY0IFZhbHVlOjptYXhJbnQ2NCA9IEludDY0KFVJbnQ2NCgtMSkgLyAyKTsKK2NvbnN0IFVJbnQ2
NCBWYWx1ZTo6bWF4VUludDY0ID0gVUludDY0KC0xKTsKKy8vIFRoZSBjb25zdGFudCBpcyBoYXJk
LWNvZGVkIGJlY2F1c2Ugc29tZSBjb21waWxlciBoYXZlIHRyb3VibGUKKy8vIGNvbnZlcnRpbmcg
VmFsdWU6Om1heFVJbnQ2NCB0byBhIGRvdWJsZSBjb3JyZWN0bHkgKEFJWC94bEMpLgorLy8gQXNz
dW1lcyB0aGF0IFVJbnQ2NCBpcyBhIDY0IGJpdHMgaW50ZWdlci4KK3N0YXRpYyBjb25zdCBkb3Vi
bGUgbWF4VUludDY0QXNEb3VibGUgPSAxODQ0Njc0NDA3MzcwOTU1MTYxNS4wOworI2VuZGlmIC8v
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitjb25zdCBMYXJnZXN0SW50IFZhbHVlOjptaW5MYXJn
ZXN0SW50ID0gTGFyZ2VzdEludCh+KExhcmdlc3RVSW50KC0xKSAvIDIpKTsKK2NvbnN0IExhcmdl
c3RJbnQgVmFsdWU6Om1heExhcmdlc3RJbnQgPSBMYXJnZXN0SW50KExhcmdlc3RVSW50KC0xKSAv
IDIpOworY29uc3QgTGFyZ2VzdFVJbnQgVmFsdWU6Om1heExhcmdlc3RVSW50ID0gTGFyZ2VzdFVJ
bnQoLTEpOworCisjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04p
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK3N0YXRpYyBpbmxpbmUgYm9vbCBJ
blJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKKyAgcmV0dXJuIGQgPj0gbWluICYmIGQg
PD0gbWF4OworfQorI2Vsc2UgIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9D
T05WRVJTSU9OKQorc3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91YmxlKEpzb246OlVJ
bnQ2NCB2YWx1ZSkgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihJbnQ2NCh2YWx1ZSAv
IDIpKSAqIDIuMCArIEludDY0KHZhbHVlICYgMSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PiBzdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3VibGUoVCB2YWx1ZSkgeworICByZXR1
cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPgorc3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWlu
LCBVIG1heCkgeworICByZXR1cm4gZCA+PSBpbnRlZ2VyVG9Eb3VibGUobWluKSAmJiBkIDw9IGlu
dGVnZXJUb0RvdWJsZShtYXgpOworfQorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lO
VDY0X0RPVUJMRV9DT05WRVJTSU9OKQorCisvKiogRHVwbGljYXRlcyB0aGUgc3BlY2lmaWVkIHN0
cmluZyB2YWx1ZS4KKyAqIEBwYXJhbSB2YWx1ZSBQb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gZHVw
bGljYXRlLiBNdXN0IGJlIHplcm8tdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgIGxlbmd0
aCBpcyAidW5rbm93biIuCisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgdmFsdWUuIGlm
IGVxdWFscyB0byB1bmtub3duLCB0aGVuIGl0IHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgY29t
cHV0ZWQgdXNpbmcgc3RybGVuKHZhbHVlKS4KKyAqIEByZXR1cm4gUG9pbnRlciBvbiB0aGUgZHVw
bGljYXRlIGluc3RhbmNlIG9mIHN0cmluZy4KKyAqLworc3RhdGljIGlubGluZSBjaGFyKiBkdXBs
aWNhdGVTdHJpbmdWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCkgeworICAvLyBBdm9pZCBhbiBpbnRl
Z2VyIG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGluZyBsZW5n
dGgKKyAgLy8gdG8gYSBzYW5lIHZhbHVlLgorICBpZiAobGVuZ3RoID49IChzaXplX3QpVmFsdWU6
Om1heEludCkKKyAgICBsZW5ndGggPSBWYWx1ZTo6bWF4SW50IC0gMTsKKworICBjaGFyKiBuZXdT
dHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKGxlbmd0aCArIDEpKTsKKyAgaWYgKG5l
d1N0cmluZyA9PSBOVUxMKSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoCisgICAgICAgICJpbiBK
c29uOjpWYWx1ZTo6ZHVwbGljYXRlU3RyaW5nVmFsdWUoKTogIgorICAgICAgICAiRmFpbGVkIHRv
IGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsKKyAgfQorICBtZW1jcHkobmV3U3RyaW5n
LCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3RyaW5nW2xlbmd0aF0gPSAwOworICByZXR1cm4gbmV3
U3RyaW5nOworfQorCisvKiBSZWNvcmQgdGhlIGxlbmd0aCBhcyBhIHByZWZpeC4KKyAqLworc3Rh
dGljIGlubGluZSBjaGFyKiBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgKKyAgICBjb25z
dCBjaGFyKiB2YWx1ZSwKKyAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoKQoreworICAvLyBBdm9pZCBh
biBpbnRlZ2VyIG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGlu
ZyBsZW5ndGgKKyAgLy8gdG8gYSBzYW5lIHZhbHVlLgorICBKU09OX0FTU0VSVF9NRVNTQUdFKGxl
bmd0aCA8PSAodW5zaWduZWQpVmFsdWU6Om1heEludCAtIHNpemVvZih1bnNpZ25lZCkgLSAxVSwK
KyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAgICAgICAgICAgICAgICAibGVuZ3RoIHRvbyBiaWcg
Zm9yIHByZWZpeGluZyIpOworICB1bnNpZ25lZCBhY3R1YWxMZW5ndGggPSBsZW5ndGggKyBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oc2l6ZW9mKHVuc2lnbmVkKSkgKyAxVTsKKyAgY2hhciogbmV3U3Ry
aW5nID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhhY3R1YWxMZW5ndGgpKTsKKyAgaWYgKG5l
d1N0cmluZyA9PSAwKSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoCisgICAgICAgICJpbiBKc29u
OjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogIgorICAgICAgICAiRmFp
bGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsKKyAgfQorICAqcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCo+KG5ld1N0cmluZykgPSBsZW5ndGg7CisgIG1lbWNweShuZXdTdHJp
bmcgKyBzaXplb2YodW5zaWduZWQpLCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3RyaW5nW2FjdHVh
bExlbmd0aCAtIDFVXSA9IDA7IC8vIHRvIGF2b2lkIGJ1ZmZlciBvdmVyLXJ1biBhY2NpZGVudHMg
YnkgdXNlcnMgbGF0ZXIKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KK2lubGluZSBzdGF0aWMgdm9p
ZCBkZWNvZGVQcmVmaXhlZFN0cmluZygKKyAgICBib29sIGlzUHJlZml4ZWQsIGNoYXIgY29uc3Qq
IHByZWZpeGVkLAorICAgIHVuc2lnbmVkKiBsZW5ndGgsIGNoYXIgY29uc3QqKiB2YWx1ZSkKK3sK
KyAgaWYgKCFpc1ByZWZpeGVkKSB7CisgICAgKmxlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdHJsZW4ocHJlZml4ZWQpKTsKKyAgICAqdmFsdWUgPSBwcmVmaXhlZDsKKyAgfSBlbHNlIHsK
KyAgICAqbGVuZ3RoID0gKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY29uc3QqPihwcmVmaXhl
ZCk7CisgICAgKnZhbHVlID0gcHJlZml4ZWQgKyBzaXplb2YodW5zaWduZWQpOworICB9Cit9Cisv
KiogRnJlZSB0aGUgc3RyaW5nIGR1cGxpY2F0ZWQgYnkgZHVwbGljYXRlU3RyaW5nVmFsdWUoKS9k
dXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQg
cmVsZWFzZVN0cmluZ1ZhbHVlKGNoYXIqIHZhbHVlKSB7IGZyZWUodmFsdWUpOyB9CisKK30gLy8g
bmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gVmFsdWVJbnRlcm5hbHMuLi4KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworI2luY2x1ZGUg
Impzb25fdmFsdWVpdGVyYXRvci5pbmwiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworRXhjZXB0aW9uOjpFeGNlcHRpb24o
c3RkOjpzdHJpbmcgY29uc3QmIG1zZykKKyAgOiBtc2dfKG1zZykKK3t9CitFeGNlcHRpb246On5F
eGNlcHRpb24oKSB0aHJvdygpCit7fQorY2hhciBjb25zdCogRXhjZXB0aW9uOjp3aGF0KCkgY29u
c3QgdGhyb3coKQoreworICByZXR1cm4gbXNnXy5jX3N0cigpOworfQorUnVudGltZUVycm9yOjpS
dW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKKyAgOiBFeGNlcHRpb24obXNnKQor
e30KK0xvZ2ljRXJyb3I6OkxvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKKyAgOiBF
eGNlcHRpb24obXNnKQore30KK3ZvaWQgdGhyb3dSdW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29u
c3QmIG1zZykKK3sKKyAgdGhyb3cgUnVudGltZUVycm9yKG1zZyk7Cit9Cit2b2lkIHRocm93TG9n
aWNFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQoreworICB0aHJvdyBMb2dpY0Vycm9yKG1z
Zyk7Cit9CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNs
YXNzIFZhbHVlOjpDb21tZW50SW5mbworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCitWYWx1ZTo6Q29tbWVudEluZm86OkNvbW1lbnRJbmZvKCkgOiBjb21tZW50Xygw
KSB7fQorCitWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbygpIHsKKyAgaWYgKGNvbW1l
bnRfKQorICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb21tZW50Xyk7Cit9CisKK3ZvaWQgVmFsdWU6
OkNvbW1lbnRJbmZvOjpzZXRDb21tZW50KGNvbnN0IGNoYXIqIHRleHQsIHNpemVfdCBsZW4pIHsK
KyAgaWYgKGNvbW1lbnRfKSB7CisgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKGNvbW1lbnRfKTsKKyAg
ICBjb21tZW50XyA9IDA7CisgIH0KKyAgSlNPTl9BU1NFUlQodGV4dCAhPSAwKTsKKyAgSlNPTl9B
U1NFUlRfTUVTU0FHRSgKKyAgICAgIHRleHRbMF0gPT0gJ1wwJyB8fCB0ZXh0WzBdID09ICcvJywK
KyAgICAgICJpbiBKc29uOjpWYWx1ZTo6c2V0Q29tbWVudCgpOiBDb21tZW50cyBtdXN0IHN0YXJ0
IHdpdGggLyIpOworICAvLyBJdCBzZWVtcyB0aGF0IC8qKi8gc3R5bGUgY29tbWVudHMgYXJlIGFj
Y2VwdGFibGUgYXMgd2VsbC4KKyAgY29tbWVudF8gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSh0ZXh0
LCBsZW4pOworfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyBjbGFzcyBWYWx1ZTo6Q1pTdHJpbmcKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gTm90ZXM6IHBvbGljeV8gaW5kaWNhdGVzIGlmIHRoZSBzdHJpbmcgd2Fz
IGFsbG9jYXRlZCB3aGVuCisvLyBhIHN0cmluZyBpcyBzdG9yZWQuCisKK1ZhbHVlOjpDWlN0cmlu
Zzo6Q1pTdHJpbmcoQXJyYXlJbmRleCBhaW5kZXgpIDogY3N0cl8oMCksIGluZGV4XyhhaW5kZXgp
IHt9CisKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoY2hhciBjb25zdCogc3RyLCB1bnNpZ25l
ZCB1bGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSkKKyAgICA6IGNzdHJfKHN0cikg
eworICAvLyBhbGxvY2F0ZSAhPSBkdXBsaWNhdGUKKyAgc3RvcmFnZV8ucG9saWN5XyA9IGFsbG9j
YXRlICYgMHgzOworICBzdG9yYWdlXy5sZW5ndGhfID0gdWxlbmd0aCAmIDB4M0ZGRkZGRkY7Cit9
CisKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoY29uc3QgQ1pTdHJpbmcmIG90aGVyKQorICAg
IDogY3N0cl8ob3RoZXIuc3RvcmFnZV8ucG9saWN5XyAhPSBub0R1cGxpY2F0aW9uICYmIG90aGVy
LmNzdHJfICE9IDAKKyAgICAgICAgICAgICAgICA/IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKG90aGVy
LmNzdHJfLCBvdGhlci5zdG9yYWdlXy5sZW5ndGhfKQorICAgICAgICAgICAgICAgIDogb3RoZXIu
Y3N0cl8pIHsKKyAgc3RvcmFnZV8ucG9saWN5XyA9IChvdGhlci5jc3RyXworICAgICAgICAgICAg
ICAgICA/IChzdGF0aWNfY2FzdDxEdXBsaWNhdGlvblBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9s
aWN5XykgPT0gbm9EdXBsaWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgPyBub0R1cGxpY2F0
aW9uIDogZHVwbGljYXRlKQorICAgICAgICAgICAgICAgICA6IHN0YXRpY19jYXN0PER1cGxpY2F0
aW9uUG9saWN5PihvdGhlci5zdG9yYWdlXy5wb2xpY3lfKSk7CisgIHN0b3JhZ2VfLmxlbmd0aF8g
PSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworfQorCisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVS
RU5DRVMKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoQ1pTdHJpbmcmJiBvdGhlcikKKyAgOiBj
c3RyXyhvdGhlci5jc3RyXyksIGluZGV4XyhvdGhlci5pbmRleF8pIHsKKyAgb3RoZXIuY3N0cl8g
PSBudWxscHRyOworfQorI2VuZGlmCisKK1ZhbHVlOjpDWlN0cmluZzo6fkNaU3RyaW5nKCkgewor
ICBpZiAoY3N0cl8gJiYgc3RvcmFnZV8ucG9saWN5XyA9PSBkdXBsaWNhdGUpCisgICAgcmVsZWFz
ZVN0cmluZ1ZhbHVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGNzdHJfKSk7Cit9CisKK3ZvaWQgVmFsdWU6
OkNaU3RyaW5nOjpzd2FwKENaU3RyaW5nJiBvdGhlcikgeworICBzdGQ6OnN3YXAoY3N0cl8sIG90
aGVyLmNzdHJfKTsKKyAgc3RkOjpzd2FwKGluZGV4Xywgb3RoZXIuaW5kZXhfKTsKK30KKworVmFs
dWU6OkNaU3RyaW5nJiBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPShDWlN0cmluZyBvdGhlcikg
eworICBzd2FwKG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOworfQorCitib29sIFZhbHVlOjpDWlN0
cmluZzo6b3BlcmF0b3I8KGNvbnN0IENaU3RyaW5nJiBvdGhlcikgY29uc3QgeworICBpZiAoIWNz
dHJfKSByZXR1cm4gaW5kZXhfIDwgb3RoZXIuaW5kZXhfOworICAvL3JldHVybiBzdHJjbXAoY3N0
cl8sIG90aGVyLmNzdHJfKSA8IDA7CisgIC8vIEFzc3VtZSBib3RoIGFyZSBzdHJpbmdzLgorICB1
bnNpZ25lZCB0aGlzX2xlbiA9IHRoaXMtPnN0b3JhZ2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG90
aGVyX2xlbiA9IG90aGVyLnN0b3JhZ2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG1pbl9sZW4gPSBz
dGQ6Om1pbih0aGlzX2xlbiwgb3RoZXJfbGVuKTsKKyAgaW50IGNvbXAgPSBtZW1jbXAodGhpcy0+
Y3N0cl8sIG90aGVyLmNzdHJfLCBtaW5fbGVuKTsKKyAgaWYgKGNvbXAgPCAwKSByZXR1cm4gdHJ1
ZTsKKyAgaWYgKGNvbXAgPiAwKSByZXR1cm4gZmFsc2U7CisgIHJldHVybiAodGhpc19sZW4gPCBv
dGhlcl9sZW4pOworfQorCitib29sIFZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9PShjb25zdCBD
WlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCFjc3RyXykgcmV0dXJuIGluZGV4XyA9PSBv
dGhlci5pbmRleF87CisgIC8vcmV0dXJuIHN0cmNtcChjc3RyXywgb3RoZXIuY3N0cl8pID09IDA7
CisgIC8vIEFzc3VtZSBib3RoIGFyZSBzdHJpbmdzLgorICB1bnNpZ25lZCB0aGlzX2xlbiA9IHRo
aXMtPnN0b3JhZ2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG90aGVyX2xlbiA9IG90aGVyLnN0b3Jh
Z2VfLmxlbmd0aF87CisgIGlmICh0aGlzX2xlbiAhPSBvdGhlcl9sZW4pIHJldHVybiBmYWxzZTsK
KyAgaW50IGNvbXAgPSBtZW1jbXAodGhpcy0+Y3N0cl8sIG90aGVyLmNzdHJfLCB0aGlzX2xlbik7
CisgIHJldHVybiBjb21wID09IDA7Cit9CisKK0FycmF5SW5kZXggVmFsdWU6OkNaU3RyaW5nOjpp
bmRleCgpIGNvbnN0IHsgcmV0dXJuIGluZGV4XzsgfQorCisvL2NvbnN0IGNoYXIqIFZhbHVlOjpD
WlN0cmluZzo6Y19zdHIoKSBjb25zdCB7IHJldHVybiBjc3RyXzsgfQorY29uc3QgY2hhciogVmFs
dWU6OkNaU3RyaW5nOjpkYXRhKCkgY29uc3QgeyByZXR1cm4gY3N0cl87IH0KK3Vuc2lnbmVkIFZh
bHVlOjpDWlN0cmluZzo6bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gc3RvcmFnZV8ubGVuZ3RoXzsg
fQorYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6OmlzU3RhdGljU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
c3RvcmFnZV8ucG9saWN5XyA9PSBub0R1cGxpY2F0aW9uOyB9CisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlOjpWYWx1ZQorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiEgXGludGVybmFsIERlZmF1bHQg
Y29uc3RydWN0b3IgaW5pdGlhbGl6YXRpb24gbXVzdCBiZSBlcXVpdmFsZW50IHRvOgorICogbWVt
c2V0KCB0aGlzLCAwLCBzaXplb2YoVmFsdWUpICkKKyAqIFRoaXMgb3B0aW1pemF0aW9uIGlzIHVz
ZWQgaW4gVmFsdWVJbnRlcm5hbE1hcCBmYXN0IGFsbG9jYXRvci4KKyAqLworVmFsdWU6OlZhbHVl
KFZhbHVlVHlwZSB2dHlwZSkgeworICBpbml0QmFzaWModnR5cGUpOworICBzd2l0Y2ggKHZ0eXBl
KSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICBj
YXNlIHVpbnRWYWx1ZToKKyAgICB2YWx1ZV8uaW50XyA9IDA7CisgICAgYnJlYWs7CisgIGNhc2Ug
cmVhbFZhbHVlOgorICAgIHZhbHVlXy5yZWFsXyA9IDAuMDsKKyAgICBicmVhazsKKyAgY2FzZSBz
dHJpbmdWYWx1ZToKKyAgICB2YWx1ZV8uc3RyaW5nXyA9IDA7CisgICAgYnJlYWs7CisgIGNhc2Ug
YXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXyA9IG5ldyBP
YmplY3RWYWx1ZXMoKTsKKyAgICBicmVhazsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgdmFs
dWVfLmJvb2xfID0gZmFsc2U7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NF
UlRfVU5SRUFDSEFCTEU7CisgIH0KK30KKworVmFsdWU6OlZhbHVlKEludCB2YWx1ZSkgeworICBp
bml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8uaW50XyA9IHZhbHVlOworfQorCitWYWx1ZTo6
VmFsdWUoVUludCB2YWx1ZSkgeworICBpbml0QmFzaWModWludFZhbHVlKTsKKyAgdmFsdWVfLnVp
bnRfID0gdmFsdWU7Cit9CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK1ZhbHVlOjpWYWx1
ZShJbnQ2NCB2YWx1ZSkgeworICBpbml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8uaW50XyA9
IHZhbHVlOworfQorVmFsdWU6OlZhbHVlKFVJbnQ2NCB2YWx1ZSkgeworICBpbml0QmFzaWModWlu
dFZhbHVlKTsKKyAgdmFsdWVfLnVpbnRfID0gdmFsdWU7Cit9CisjZW5kaWYgLy8gZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKKworVmFsdWU6OlZhbHVlKGRvdWJsZSB2YWx1ZSkgeworICBpbml0QmFz
aWMocmVhbFZhbHVlKTsKKyAgdmFsdWVfLnJlYWxfID0gdmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1
ZShjb25zdCBjaGFyKiB2YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOwor
ICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHZhbHVlLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKHZhbHVlKSkpOworfQorCitWYWx1ZTo6VmFsdWUo
Y29uc3QgY2hhciogYmVnaW5WYWx1ZSwgY29uc3QgY2hhciogZW5kVmFsdWUpIHsKKyAgaW5pdEJh
c2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPQorICAgICAgZHVwbGlj
YXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoYmVnaW5WYWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGVuZFZhbHVlIC0gYmVnaW5WYWx1ZSkpOworfQorCitWYWx1ZTo6VmFsdWUoY29uc3Qgc3RkOjpz
dHJpbmcmIHZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVl
Xy5zdHJpbmdfID0KKyAgICAgIGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHZhbHVlLmRh
dGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlLmxlbmd0aCgpKSk7Cit9CisKK1ZhbHVl
OjpWYWx1ZShjb25zdCBTdGF0aWNTdHJpbmcmIHZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdW
YWx1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0gY29uc3RfY2FzdDxjaGFyKj4odmFsdWUuY19zdHIo
KSk7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorVmFsdWU6OlZhbHVlKGNvbnN0IENwcFRM
OjpDb25zdFN0cmluZyYgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsK
KyAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlLmxlbmd0aCgpKSk7Cit9CisjZW5kaWYKKworVmFs
dWU6OlZhbHVlKGJvb2wgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKGJvb2xlYW5WYWx1ZSk7CisgIHZh
bHVlXy5ib29sXyA9IHZhbHVlOworfQorCitWYWx1ZTo6VmFsdWUoVmFsdWUgY29uc3QmIG90aGVy
KQorICAgIDogdHlwZV8ob3RoZXIudHlwZV8pLCBhbGxvY2F0ZWRfKGZhbHNlKQorICAgICAgLAor
ICAgICAgY29tbWVudHNfKG51bGxwdHIpLCBkZWZhdWx0X3ZhbHVlXyhudWxscHRyKSwgc3RhcnRf
KG90aGVyLnN0YXJ0XyksIGxpbWl0XyhvdGhlci5saW1pdF8pCit7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgIGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVl
OgorICBjYXNlIHJlYWxWYWx1ZToKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgdmFsdWVfID0g
b3RoZXIudmFsdWVfOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIGlmIChv
dGhlci52YWx1ZV8uc3RyaW5nXyAmJiBvdGhlci5hbGxvY2F0ZWRfKSB7CisgICAgICB1bnNpZ25l
ZCBsZW47CisgICAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgICBkZWNvZGVQcmVmaXhlZFN0cmlu
ZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywKKyAgICAgICAgICAmbGVu
LCAmc3RyKTsKKyAgICAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5n
VmFsdWUoc3RyLCBsZW4pOworICAgICAgYWxsb2NhdGVkXyA9IHRydWU7CisgICAgfSBlbHNlIHsK
KyAgICAgIHZhbHVlXy5zdHJpbmdfID0gb3RoZXIudmFsdWVfLnN0cmluZ187CisgICAgICBhbGxv
Y2F0ZWRfID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6Cisg
IGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCpv
dGhlci52YWx1ZV8ubWFwXyk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NF
UlRfVU5SRUFDSEFCTEU7CisgIH0KKyAgaWYgKG90aGVyLmNvbW1lbnRzXykgeworICAgIGNvbW1l
bnRzXyA9IG5ldyBDb21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOworICAgIGZv
ciAoaW50IGNvbW1lbnQgPSAwOyBjb21tZW50IDwgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50OyAr
K2NvbW1lbnQpIHsKKyAgICAgIGNvbnN0IENvbW1lbnRJbmZvJiBvdGhlckNvbW1lbnQgPSBvdGhl
ci5jb21tZW50c19bY29tbWVudF07CisgICAgICBpZiAob3RoZXJDb21tZW50LmNvbW1lbnRfKQor
ICAgICAgICBjb21tZW50c19bY29tbWVudF0uc2V0Q29tbWVudCgKKyAgICAgICAgICAgIG90aGVy
Q29tbWVudC5jb21tZW50Xywgc3RybGVuKG90aGVyQ29tbWVudC5jb21tZW50XykpOworICAgIH0K
KyAgfQorCisgIGlmICggb3RoZXIuZGVmYXVsdF92YWx1ZV8gKQorICB7CisgICAgICAgICBkZWZh
dWx0X3ZhbHVlXyA9IG5ldyBWYWx1ZSggKm90aGVyLmRlZmF1bHRfdmFsdWVfICk7CisgIH0KKwor
fQorCisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKy8vIE1vdmUgY29uc3RydWN0b3IK
K1ZhbHVlOjpWYWx1ZShWYWx1ZSYmIG90aGVyKSB7CisgIGluaXRCYXNpYyhudWxsVmFsdWUpOwor
ICBzd2FwKG90aGVyKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6flZhbHVlKCkgeworICBzd2l0Y2gg
KHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVp
bnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIGJy
ZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIGlmIChhbGxvY2F0ZWRfKQorICAgICAgcmVs
ZWFzZVN0cmluZ1ZhbHVlKHZhbHVlXy5zdHJpbmdfKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJh
eVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGRlbGV0ZSB2YWx1ZV8ubWFwXzsKKyAg
ICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQor
CisgIGlmIChjb21tZW50c18pCisgICAgZGVsZXRlW10gY29tbWVudHNfOworCisgIGlmICggZGVm
YXVsdF92YWx1ZV8pCisgICAgICAgICBkZWxldGUgZGVmYXVsdF92YWx1ZV87Cit9CisKK1ZhbHVl
JiBWYWx1ZTo6b3BlcmF0b3I9KFZhbHVlIG90aGVyKSB7CisgIHN3YXAob3RoZXIpOworICByZXR1
cm4gKnRoaXM7Cit9CisKK3ZvaWQgVmFsdWU6OnN3YXBQYXlsb2FkKFZhbHVlJiBvdGhlcikgewor
ICBWYWx1ZVR5cGUgdGVtcCA9IHR5cGVfOworICB0eXBlXyA9IG90aGVyLnR5cGVfOworICBvdGhl
ci50eXBlXyA9IHRlbXA7CisgIHN0ZDo6c3dhcCh2YWx1ZV8sIG90aGVyLnZhbHVlXyk7CisgIGlu
dCB0ZW1wMiA9IGFsbG9jYXRlZF87CisgIGFsbG9jYXRlZF8gPSBvdGhlci5hbGxvY2F0ZWRfOwor
ICBvdGhlci5hbGxvY2F0ZWRfID0gdGVtcDIgJiAweDE7Cit9CisKK3ZvaWQgVmFsdWU6OnN3YXAo
VmFsdWUmIG90aGVyKSB7CisgIHN3YXBQYXlsb2FkKG90aGVyKTsKKyAgc3RkOjpzd2FwKGNvbW1l
bnRzXywgb3RoZXIuY29tbWVudHNfKTsKKyAgc3RkOjpzd2FwKGRlZmF1bHRfdmFsdWVfLCBvdGhl
ci5kZWZhdWx0X3ZhbHVlXyk7CisgIHN0ZDo6c3dhcChzdGFydF8sIG90aGVyLnN0YXJ0Xyk7Cisg
IHN0ZDo6c3dhcChsaW1pdF8sIG90aGVyLmxpbWl0Xyk7Cit9CisKK1ZhbHVlVHlwZSBWYWx1ZTo6
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfOyB9CisKK2ludCBWYWx1ZTo6Y29tcGFyZShjb25z
dCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCp0aGlzIDwgb3RoZXIpCisgICAgcmV0dXJu
IC0xOworICBpZiAoKnRoaXMgPiBvdGhlcikKKyAgICByZXR1cm4gMTsKKyAgcmV0dXJuIDA7Cit9
CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPChjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAg
aW50IHR5cGVEZWx0YSA9IHR5cGVfIC0gb3RoZXIudHlwZV87CisgIGlmICh0eXBlRGVsdGEpCisg
ICAgcmV0dXJuIHR5cGVEZWx0YSA8IDAgPyB0cnVlIDogZmFsc2U7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIGZhbHNlOworICBjYXNlIGludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA8IG90aGVyLnZhbHVlXy5pbnRfOworICBjYXNlIHVp
bnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDwgb3RoZXIudmFsdWVfLnVpbnRfOwor
ICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfIDwgb3RoZXIudmFsdWVf
LnJlYWxfOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfIDwg
b3RoZXIudmFsdWVfLmJvb2xfOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgaWYgKCh2
YWx1ZV8uc3RyaW5nXyA9PSAwKSB8fCAob3RoZXIudmFsdWVfLnN0cmluZ18gPT0gMCkpIHsKKyAg
ICAgIGlmIChvdGhlci52YWx1ZV8uc3RyaW5nXykgcmV0dXJuIHRydWU7CisgICAgICBlbHNlIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgdW5zaWduZWQgdGhpc19sZW47CisgICAgdW5zaWduZWQg
b3RoZXJfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICAgIGNoYXIgY29uc3QqIG90
aGVyX3N0cjsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlz
LT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOworICAgIGRlY29kZVByZWZp
eGVkU3RyaW5nKG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJf
bGVuLCAmb3RoZXJfc3RyKTsKKyAgICB1bnNpZ25lZCBtaW5fbGVuID0gc3RkOjptaW4odGhpc19s
ZW4sIG90aGVyX2xlbik7CisgICAgaW50IGNvbXAgPSBtZW1jbXAodGhpc19zdHIsIG90aGVyX3N0
ciwgbWluX2xlbik7CisgICAgaWYgKGNvbXAgPCAwKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29t
cCA+IDApIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gKHRoaXNfbGVuIDwgb3RoZXJfbGVuKTsK
KyAgfQorICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBpbnQg
ZGVsdGEgPSBpbnQodmFsdWVfLm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVlXy5tYXBfLT5zaXpl
KCkpOworICAgIGlmIChkZWx0YSkKKyAgICAgIHJldHVybiBkZWx0YSA8IDA7CisgICAgcmV0dXJu
ICgqdmFsdWVfLm1hcF8pIDwgKCpvdGhlci52YWx1ZV8ubWFwXyk7CisgIH0KKyAgZGVmYXVsdDoK
KyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICByZXR1cm4gZmFsc2U7IC8vIHVu
cmVhY2hhYmxlCit9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPD0oY29uc3QgVmFsdWUmIG90aGVy
KSBjb25zdCB7IHJldHVybiAhKG90aGVyIDwgKnRoaXMpOyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJh
dG9yPj0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzIDwgb3RoZXIp
OyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPihjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG90aGVyIDwgKnRoaXM7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgLy8gaWYgKCB0eXBlXyAhPSBvdGhlci50eXBlXyApCisg
IC8vIEdDQyAyLjk1LjMgc2F5czoKKyAgLy8gYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0
LWZpZWxkIHN0cnVjdHVyZSBtZW1iZXIgYEpzb246OlZhbHVlOjp0eXBlXycKKyAgLy8gQmVhdHMg
bWUsIGJ1dCBhIHRlbXAgc29sdmVzIHRoZSBwcm9ibGVtLgorICBpbnQgdGVtcCA9IG90aGVyLnR5
cGVfOworICBpZiAodHlwZV8gIT0gdGVtcCkKKyAgICByZXR1cm4gZmFsc2U7CisgIHN3aXRjaCAo
dHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNhc2UgaW50
VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID09IG90aGVyLnZhbHVlXy5pbnRfOworICBj
YXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfID09IG90aGVyLnZhbHVlXy51
aW50XzsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA9PSBvdGhl
ci52YWx1ZV8ucmVhbF87CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPT0gb3RoZXIudmFsdWVfLmJvb2xfOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7Cisg
ICAgaWYgKCh2YWx1ZV8uc3RyaW5nXyA9PSAwKSB8fCAob3RoZXIudmFsdWVfLnN0cmluZ18gPT0g
MCkpIHsKKyAgICAgIHJldHVybiAodmFsdWVfLnN0cmluZ18gPT0gb3RoZXIudmFsdWVfLnN0cmlu
Z18pOworICAgIH0KKyAgICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgICB1bnNpZ25lZCBvdGhlcl9s
ZW47CisgICAgY2hhciBjb25zdCogdGhpc19zdHI7CisgICAgY2hhciBjb25zdCogb3RoZXJfc3Ry
OworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVl
Xy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJp
bmcob3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0cmluZ18sICZvdGhlcl9sZW4sICZv
dGhlcl9zdHIpOworICAgIGlmICh0aGlzX2xlbiAhPSBvdGhlcl9sZW4pIHJldHVybiBmYWxzZTsK
KyAgICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzX3N0ciwgb3RoZXJfc3RyLCB0aGlzX2xlbik7Cisg
ICAgcmV0dXJuIGNvbXAgPT0gMDsKKyAgfQorICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2Jq
ZWN0VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gb3RoZXIudmFsdWVf
Lm1hcF8tPnNpemUoKSAmJgorICAgICAgICAgICAoKnZhbHVlXy5tYXBfKSA9PSAoKm90aGVyLnZh
bHVlXy5tYXBfKTsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAg
fQorICByZXR1cm4gZmFsc2U7IC8vIHVucmVhY2hhYmxlCit9CisKK2Jvb2wgVmFsdWU6Om9wZXJh
dG9yIT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVy
KTsgfQorCitjb25zdCBjaGFyKiBWYWx1ZTo6YXNDU3RyaW5nKCkgY29uc3QgeworICBKU09OX0FT
U0VSVF9NRVNTQUdFKHR5cGVfID09IHN0cmluZ1ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICJpbiBKc29uOjpWYWx1ZTo6YXNDU3RyaW5nKCk6IHJlcXVpcmVzIHN0cmluZ1ZhbHVlIik7Cisg
IGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gMDsKKyAgdW5zaWduZWQgdGhpc19sZW47
CisgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5h
bGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOwor
ICByZXR1cm4gdGhpc19zdHI7Cit9CisKK2Jvb2wgVmFsdWU6OmdldFN0cmluZyhjaGFyIGNvbnN0
Kiogc3RyLCBjaGFyIGNvbnN0KiogY2VuZCkgY29uc3QgeworICBpZiAodHlwZV8gIT0gc3RyaW5n
VmFsdWUpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDApIHJldHVybiBm
YWxzZTsKKyAgdW5zaWduZWQgbGVuZ3RoOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5h
bGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJmxlbmd0aCwgc3RyKTsKKyAgKmNlbmQg
PSAqc3RyICsgbGVuZ3RoOworICByZXR1cm4gdHJ1ZTsKK30KKworc3RkOjpzdHJpbmcgVmFsdWU6
OmFzU3RyaW5nKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVl
OgorICAgIHJldHVybiAiIjsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIGlmICh2YWx1
ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gIiI7CisgICAgdW5zaWduZWQgdGhpc19sZW47CisgICAg
Y2hhciBjb25zdCogdGhpc19zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKKyAg
ICByZXR1cm4gc3RkOjpzdHJpbmcodGhpc19zdHIsIHRoaXNfbGVuKTsKKyAgfQorICBjYXNlIGJv
b2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gInRydWUiIDogImZhbHNlIjsK
KyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8uaW50Xyk7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy51aW50
Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy5y
ZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzU3RyaW5nKCk7CisgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuICIiOworICB9Cit9CisKKyNpZmRlZiBKU09OX1VT
RV9DUFBUTAorQ3BwVEw6OkNvbnN0U3RyaW5nIFZhbHVlOjphc0NvbnN0U3RyaW5nKCkgY29uc3Qg
eworICB1bnNpZ25lZCBsZW47CisgIGNoYXIgY29uc3QqIHN0cjsKKyAgZGVjb2RlUHJlZml4ZWRT
dHJpbmcoYWxsb2NhdGVkXywgdmFsdWVfLnN0cmluZ18sCisgICAgICAmbGVuLCAmc3RyKTsKKyAg
cmV0dXJuIENwcFRMOjpDb25zdFN0cmluZyhzdHIsIGxlbik7Cit9CisjZW5kaWYKKworVmFsdWU6
OkludCBWYWx1ZTo6YXNJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBp
bnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCksICJMYXJnZXN0SW50IG91
dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1
aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdFVJbnQg
b3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFsdWVfLnVpbnRfKTsKKyAgY2Fz
ZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFs
XywgbWluSW50LCBtYXhJbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQg
b2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51
bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0
X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0ludCgp
OworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICB9Cit9CisKK1Zh
bHVlOjpVSW50IFZhbHVlOjphc1VJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAg
Y2FzZSBpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2Vz
dEludCBvdXQgb2YgVUludCByYW5nZSIpOworICAgIHJldHVybiBVSW50KHZhbHVlXy5pbnRfKTsK
KyAgY2FzZSB1aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxh
cmdlc3RVSW50IG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQodmFsdWVfLnVp
bnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdl
KHZhbHVlXy5yZWFsXywgMCwgbWF4VUludCksCisgICAgICAgICAgICAgICAgICAgICAgICAiZG91
YmxlIG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQodmFsdWVfLnJlYWxfKTsK
KyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlm
ICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVl
Xy0+YXNVSW50KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIDB1Owor
ICB9Cit9CisKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitWYWx1ZTo6SW50NjQgVmFs
dWU6OmFzSW50NjQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAg
ICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50NjQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQ2
NCByYW5nZSIpOworICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxW
YWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5J
bnQ2NCwgbWF4SW50NjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2Yg
SW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBu
dWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVy
biB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVmYXVs
dF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNJbnQ2
NCgpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwbDsKKyAgfQorfQor
CitWYWx1ZTo6VUludDY0IFZhbHVlOjphc1VJbnQ2NCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBl
XykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50NjQo
KSwgIkxhcmdlc3RJbnQgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBVSW50NjQo
dmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gVUludDY0KHZhbHVl
Xy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5S
YW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQ2NCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAiZG91YmxlIG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludDY0KHZhbHVl
Xy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6Cisg
ICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVm
YXVsdF92YWx1ZV8tPmFzVUludDY0KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmV0dXJuIDB1bDsKKyAgfQorfQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisKK0xhcmdlc3RJbnQgVmFsdWU6OmFzTGFyZ2VzdEludCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVk
KEpTT05fTk9fSU5UNjQpCisgIHJldHVybiBhc0ludCgpOworI2Vsc2UKKyAgcmV0dXJuIGFzSW50
NjQoKTsKKyNlbmRpZgorfQorCitMYXJnZXN0VUludCBWYWx1ZTo6YXNMYXJnZXN0VUludCgpIGNv
bnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCisgIHJldHVybiBhc1VJbnQoKTsKKyNl
bHNlCisgIHJldHVybiBhc1VJbnQ2NCgpOworI2VuZGlmCit9CisKK2RvdWJsZSBWYWx1ZTo6YXNE
b3VibGUoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZh
bHVlOgorI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAg
IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlXy51aW50Xyk7CisjZWxzZSAgLy8gaWYg
IWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJuIGlu
dGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pOworI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05f
VVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLnJlYWxfOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMC4wOworICBj
YXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMS4wIDogMC4wOwor
ICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0RvdWJsZSgpOworICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiAwLjA7CisgIH0KK30KKworZmxvYXQgVmFsdWU6OmFzRmxvYXQo
KSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6Cisj
aWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8udWludF8pOworI2Vsc2UgIC8vIGlmICFkZWZpbmVk
KEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAgIHJldHVybiBpbnRlZ2VyVG9E
b3VibGUodmFsdWVfLnVpbnRfKTsKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGZsb2F0Pih2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1
cm4gMC4wOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8g
MS4wZiA6IDAuMGY7CisgIGRlZmF1bHQ6CisgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisg
ICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNGbG9hdCgpOworICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgcmV0dXJuIDAuMGY7CisgIH0KK30KKworYm9vbCBWYWx1ZTo6YXNC
b29sKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYm9vbGVhblZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8uYm9vbF87CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiBm
YWxzZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPyB0cnVlIDog
ZmFsc2U7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPyB0cnVl
IDogZmFsc2U7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIC8vIFRoaXMgaXMga2luZCBvZiBzdHJh
bmdlLiBOb3QgcmVjb21tZW5kZWQuCisgICAgcmV0dXJuICh2YWx1ZV8ucmVhbF8gIT0gMC4wKSA/
IHRydWUgOiBmYWxzZTsKKyAgZGVmYXVsdDoKKyAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkK
KyAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0Jvb2woKTsKKyAgICAgICBl
bHNlCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitib29sIFZhbHVlOjpp
c0NvbnZlcnRpYmxlVG8oVmFsdWVUeXBlIG90aGVyKSBjb25zdCB7CisgIHN3aXRjaCAob3RoZXIp
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIChpc051bWVyaWMoKSAmJiBhc0RvdWJs
ZSgpID09IDAuMCkgfHwKKyAgICAgICAgICAgKHR5cGVfID09IGJvb2xlYW5WYWx1ZSAmJiB2YWx1
ZV8uYm9vbF8gPT0gZmFsc2UpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSBzdHJpbmdWYWx1ZSAm
JiBhc1N0cmluZygpID09ICIiKSB8fAorICAgICAgICAgICAodHlwZV8gPT0gYXJyYXlWYWx1ZSAm
JiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IDApIHx8CisgICAgICAgICAgICh0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSAmJiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IDApIHx8CisgICAgICAgICAgIHR5cGVf
ID09IG51bGxWYWx1ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gaXNJbnQoKSB8fAor
ICAgICAgICAgICAodHlwZV8gPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCBt
aW5JbnQsIG1heEludCkpIHx8CisgICAgICAgICAgIHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiBpc1VJbnQo
KSB8fAorICAgICAgICAgICAodHlwZV8gPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJl
YWxfLCAwLCBtYXhVSW50KSkgfHwKKyAgICAgICAgICAgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8
IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIGlzTnVt
ZXJpYygpIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Cisg
IGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlXyA9PSBi
b29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIHN0cmluZ1ZhbHVlOgor
ICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8g
PT0gc3RyaW5nVmFsdWUgfHwKKyAgICAgICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNl
IGFycmF5VmFsdWU6CisgICAgcmV0dXJuIHR5cGVfID09IGFycmF5VmFsdWUgfHwgdHlwZV8gPT0g
bnVsbFZhbHVlOworICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHJldHVybiB0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7CisgIH0KKyAgSlNPTl9BU1NFUlRfVU5SRUFD
SEFCTEU7CisgIHJldHVybiBmYWxzZTsKK30KKworLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJy
YXkgb3Igb2JqZWN0CitBcnJheUluZGV4IFZhbHVlOjpzaXplKCkgY29uc3QgeworICBzd2l0Y2gg
KHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVp
bnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICBjYXNl
IHN0cmluZ1ZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGFycmF5VmFsdWU6IC8vIHNpemUg
b2YgdGhlIGFycmF5IGlzIGhpZ2hlc3QgaW5kZXggKyAxCisgICAgaWYgKCF2YWx1ZV8ubWFwXy0+
ZW1wdHkoKSkgeworICAgICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdExhc3QgPSB2
YWx1ZV8ubWFwXy0+ZW5kKCk7CisgICAgICAtLWl0TGFzdDsKKyAgICAgIHJldHVybiAoKml0TGFz
dCkuZmlyc3QuaW5kZXgoKSArIDE7CisgICAgfQorICAgIHJldHVybiAwOworICBjYXNlIG9iamVj
dFZhbHVlOgorICAgIHJldHVybiBBcnJheUluZGV4KHZhbHVlXy5tYXBfLT5zaXplKCkpOworICB9
CisgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICByZXR1cm4gMDsgLy8gdW5yZWFjaGFibGU7
Cit9CisKK2Jvb2wgVmFsdWU6OmVtcHR5KCkgY29uc3QgeworICBpZiAoaXNOdWxsKCkgfHwgaXNB
cnJheSgpIHx8IGlzT2JqZWN0KCkpCisgICAgcmV0dXJuIHNpemUoKSA9PSAwdTsKKyAgZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3IhKCkgY29uc3QgeyBy
ZXR1cm4gaXNOdWxsKCk7IH0KKwordm9pZCBWYWx1ZTo6Y2xlYXIoKSB7CisgIEpTT05fQVNTRVJU
X01FU1NBR0UodHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUgfHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAgICAg
ICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpjbGVhcigpOiByZXF1aXJlcyBjb21wbGV4IHZh
bHVlIik7CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7CisgIGRlbGV0ZSBkZWZhdWx0X3Zh
bHVlXzsKKyAgZGVmYXVsdF92YWx1ZV8gPSBudWxscHRyOworICBzd2l0Y2ggKHR5cGVfKSB7Cisg
IGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXy0+
Y2xlYXIoKTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorfQorCit2
b2lkIFZhbHVlOjpyZXNpemUoQXJyYXlJbmRleCBuZXdTaXplKSB7CisgIEpTT05fQVNTRVJUX01F
U1NBR0UodHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUsCisgICAgICAg
ICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZXNpemUoKTogcmVxdWlyZXMgYXJyYXlW
YWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUoYXJy
YXlWYWx1ZSk7CisgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNpemUoKTsKKyAgaWYgKG5ld1NpemUg
PT0gMCkKKyAgICBjbGVhcigpOworICBlbHNlIGlmIChuZXdTaXplID4gb2xkU2l6ZSkKKyAgICAo
KnRoaXMpW25ld1NpemUgLSAxXTsKKyAgZWxzZSB7CisgICAgZm9yIChBcnJheUluZGV4IGluZGV4
ID0gbmV3U2l6ZTsgaW5kZXggPCBvbGRTaXplOyArK2luZGV4KSB7CisgICAgICB2YWx1ZV8ubWFw
Xy0+ZXJhc2UoaW5kZXgpOworICAgIH0KKyAgICBhc3NlcnQoc2l6ZSgpID09IG5ld1NpemUpOwor
ICB9Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSB7Cisg
IEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8g
PT0gYXJyYXlWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUlu
ZGV4KTogcmVxdWlyZXMgYXJyYXlWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQor
ICAgICp0aGlzID0gVmFsdWUoYXJyYXlWYWx1ZSk7CisgIENaU3RyaW5nIGtleShpbmRleCk7Cisg
IE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoa2V5
KTsKKyAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBrZXkp
CisgICAgcmV0dXJuICgqaXQpLnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUg
ZGVmYXVsdFZhbHVlKGtleSwgbnVsbFJlZik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChp
dCwgZGVmYXVsdFZhbHVlKTsKKyAgcmV0dXJuICgqaXQpLnNlY29uZDsKK30KKworVmFsdWUmIFZh
bHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAg
ICAgaW5kZXggPj0gMCwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5k
ZXgpOiBpbmRleCBjYW5ub3QgYmUgbmVnYXRpdmUiKTsKKyAgcmV0dXJuICgqdGhpcylbQXJyYXlJ
bmRleChpbmRleCldOworfQorCitjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJ
bmRleCBpbmRleCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZV8g
PT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCljb25zdDogcmVxdWlyZXMgYXJyYXlWYWx1ZSIpOwor
ICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBudWxsUmVmOworICBDWlN0cmlu
ZyBrZXkoaW5kZXgpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVf
Lm1hcF8tPmZpbmQoa2V5KTsKKyAgaWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkKKyAgICBy
ZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJuICgqaXQpLnNlY29uZDsKK30KKworY29uc3QgVmFsdWUm
IFZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNT
QUdFKAorICAgICAgaW5kZXggPj0gMCwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3Jb
XShpbnQgaW5kZXgpIGNvbnN0OiBpbmRleCBjYW5ub3QgYmUgbmVnYXRpdmUiKTsKKyAgcmV0dXJu
ICgqdGhpcylbQXJyYXlJbmRleChpbmRleCldOworfQorCit2b2lkIFZhbHVlOjppbml0QmFzaWMo
VmFsdWVUeXBlIHZ0eXBlLCBib29sIGFsbG9jYXRlZCkgeworICB0eXBlXyA9IHZ0eXBlOworICBh
bGxvY2F0ZWRfID0gYWxsb2NhdGVkOworICBjb21tZW50c18gPSAwOworICBzdGFydF8gPSAwOwor
ICBsaW1pdF8gPSAwOworICBkZWZhdWx0X3ZhbHVlXyA9IG51bGxwdHI7Cit9CisKKy8vIEFjY2Vz
cyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9l
cyBub3QgZXhpc3QuCisvLyBAcHJlIFR5cGUgb2YgJyp0aGlzJyBpcyBvYmplY3Qgb3IgbnVsbC4K
Ky8vIEBwYXJhbSBrZXkgaXMgbnVsbC10ZXJtaW5hdGVkLgorVmFsdWUmIFZhbHVlOjpyZXNvbHZl
UmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAg
ICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgImlu
IEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7
CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShvYmplY3RWYWx1
ZSk7CisgIENaU3RyaW5nIGFjdHVhbEtleSgKKyAgICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHN0cmxlbihrZXkpKSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOyAvLyBOT1RFIQorICBP
YmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGFjdHVh
bEtleSk7CisgIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0g
YWN0dWFsS2V5KQorICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2
YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShhY3R1YWxLZXksIG51bGxSZWYpOworICBpdCA9IHZhbHVl
Xy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIFZhbHVlJiB2YWx1ZSA9ICgqaXQp
LnNlY29uZDsKKyAgcmV0dXJuIHZhbHVlOworfQorCisvLyBAcGFyYW0ga2V5IGlzIG5vdCBudWxs
LXRlcm1pbmF0ZWQuCitWYWx1ZSYgVmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoY2hhciBjb25zdCog
a2V5LCBjaGFyIGNvbnN0KiBjZW5kKQoreworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAg
dHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgImluIEpz
b246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGtleSwgZW5kKTogcmVxdWlyZXMgb2JqZWN0VmFs
dWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKG9iamVj
dFZhbHVlKTsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KAorICAgICAga2V5LCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oY2VuZC1rZXkpLCBDWlN0cmluZzo6ZHVwbGljYXRlT25Db3B5KTsKKyAgT2JqZWN0
VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxLZXkp
OworICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFjdHVh
bEtleSkKKyAgICByZXR1cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6dmFsdWVf
dHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBudWxsUmVmKTsKKyAgaXQgPSB2YWx1ZV8ubWFw
Xy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOworICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5zZWNv
bmQ7CisgIHJldHVybiB2YWx1ZTsKK30KKworVmFsdWUgVmFsdWU6OmdldChBcnJheUluZGV4IGlu
ZGV4LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlKiB2
YWx1ZSA9ICYoKCp0aGlzKVtpbmRleF0pOworICBpZiAoIHZhbHVlID09ICZudWxsUmVmICkKKyAg
eworICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgfQorICBlbHNlCisgIHsKKyAgICAg
ICAgIFZhbHVlIHJlc3VsdCA9ICp2YWx1ZTsKKyAgICAgICAgIHJlc3VsdC5kZWZhdWx0X3ZhbHVl
XyA9IG5ldyBWYWx1ZSggZGVmYXVsdFZhbHVlICk7CisgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICB9Cit9CisKK2Jvb2wgVmFsdWU6OmlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25z
dCB7IHJldHVybiBpbmRleCA8IHNpemUoKTsgfQorCitWYWx1ZSBjb25zdCogVmFsdWU6OmZpbmQo
Y2hhciBjb25zdCoga2V5LCBjaGFyIGNvbnN0KiBjZW5kKSBjb25zdAoreworICBKU09OX0FTU0VS
VF9NRVNTQUdFKAorICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZh
bHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpmaW5kKGtleSwgZW5kLCBmb3VuZCk6IHJlcXVp
cmVzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVl
KSByZXR1cm4gTlVMTDsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KGtleSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOworICBPYmplY3RWYWx1
ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoYWN0dWFsS2V5KTsKKyAg
aWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkgcmV0dXJuIE5VTEw7CisgIHJldHVybiAmKCpp
dCkuc2Vjb25kOworfQorY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IGNoYXIq
IGtleSkgY29uc3QKK3sKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXksIGtleSArIHN0
cmxlbihrZXkpKTsKKyAgaWYgKCFmb3VuZCkgcmV0dXJuIG51bGxSZWY7CisgIHJldHVybiAqZm91
bmQ7Cit9CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcgY29uc3Qm
IGtleSkgY29uc3QKK3sKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXkuZGF0YSgpLCBr
ZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKKyAgaWYgKCFmb3VuZCkgcmV0dXJuIG51bGxSZWY7
CisgIHJldHVybiAqZm91bmQ7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBj
aGFyKiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSk7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYg
a2V5KSB7CisgIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5kYXRhKCksIGtleS5kYXRhKCkg
KyBrZXkubGVuZ3RoKCkpOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgU3Rh
dGljU3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LmNfc3RyKCkp
OworfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShj
b25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5j
ZShrZXkuY19zdHIoKSwga2V5LmVuZF9jX3N0cigpKTsKK30KK1ZhbHVlIGNvbnN0JiBWYWx1ZTo6
b3BlcmF0b3JbXShDcHBUTDo6Q29uc3RTdHJpbmcgY29uc3QmIGtleSkgY29uc3QKK3sKKyAgVmFs
dWUgY29uc3QqIGZvdW5kID0gZmluZChrZXkuY19zdHIoKSwga2V5LmVuZF9jX3N0cigpKTsKKyAg
aWYgKCFmb3VuZCkgcmV0dXJuIG51bGxSZWY7CisgIHJldHVybiAqZm91bmQ7Cit9CisjZW5kaWYK
KworVmFsdWUmIFZhbHVlOjphcHBlbmQoY29uc3QgVmFsdWUmIHZhbHVlKSB7IHJldHVybiAoKnRo
aXMpW3NpemUoKV0gPSB2YWx1ZTsgfQorCitWYWx1ZSBWYWx1ZTo6Z2V0KGNoYXIgY29uc3QqIGtl
eSwgY2hhciBjb25zdCogY2VuZCwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sK
KyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXksIGNlbmQpOworICBpZiAoICFmb3VuZCAp
CisgIHsKKyAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgIH0KKyAgZWxzZQorICB7Cisg
ICAgICAgICBWYWx1ZSByZXN1bHQgPSAqZm91bmQ7CisgICAgICAgICByZXN1bHQuZGVmYXVsdF92
YWx1ZV8gPSBuZXcgVmFsdWUoIGRlZmF1bHRWYWx1ZSApOworICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgfQorfQorVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXksIFZhbHVlIGNvbnN0
JiBkZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgIHJldHVybiBnZXQoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSwgZGVmYXVsdFZhbHVlKTsKK30KK1ZhbHVlIFZhbHVlOjpnZXQoc3RkOjpzdHJpbmcgY29u
c3QmIGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAgcmV0dXJuIGdl
dChrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpLCBkZWZhdWx0VmFsdWUpOwor
fQorCisKK2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIGNvbnN0IGNo
YXIqIGNlbmQsIFZhbHVlKiByZW1vdmVkKQoreworICBpZiAodHlwZV8gIT0gb2JqZWN0VmFsdWUp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KGtleSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOwor
ICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoYWN0dWFsS2V5
KTsKKyAgaWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkKKyAgICByZXR1cm4gZmFsc2U7Cisg
ICpyZW1vdmVkID0gaXQtPnNlY29uZDsKKyAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0KTsKKyAgcmV0
dXJuIHRydWU7Cit9Citib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBW
YWx1ZSogcmVtb3ZlZCkKK3sKKyAgcmV0dXJuIHJlbW92ZU1lbWJlcihrZXksIGtleSArIHN0cmxl
bihrZXkpLCByZW1vdmVkKTsKK30KK2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJlcihzdGQ6OnN0cmlu
ZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKK3sKKyAgcmV0dXJuIHJlbW92ZU1lbWJlcihr
ZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpLCByZW1vdmVkKTsKK30KK1ZhbHVl
IFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KQoreworICBKU09OX0FTU0VSVF9N
RVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlbW92ZU1lbWJlcigpOiByZXF1aXJl
cyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBu
dWxsUmVmOworCisgIFZhbHVlIHJlbW92ZWQ7ICAvLyBudWxsCisgIHJlbW92ZU1lbWJlcihrZXks
IGtleSArIHN0cmxlbihrZXkpLCAmcmVtb3ZlZCk7CisgIHJldHVybiByZW1vdmVkOyAvLyBzdGls
bCBudWxsIGlmIHJlbW92ZU1lbWJlcigpIGRpZCBub3RoaW5nCit9CitWYWx1ZSBWYWx1ZTo6cmVt
b3ZlTWVtYmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpCit7CisgIHJldHVybiByZW1vdmVNZW1i
ZXIoa2V5LmNfc3RyKCkpOworfQorCitib29sIFZhbHVlOjpyZW1vdmVJbmRleChBcnJheUluZGV4
IGluZGV4LCBWYWx1ZSogcmVtb3ZlZCkgeworICBpZiAodHlwZV8gIT0gYXJyYXlWYWx1ZSkgewor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDWlN0cmluZyBrZXkoaW5kZXgpOworICBPYmplY3RW
YWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5KTsKKyAgaWYgKGl0ID09
IHZhbHVlXy5tYXBfLT5lbmQoKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICAqcmVtb3Zl
ZCA9IGl0LT5zZWNvbmQ7CisgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNpemUoKTsKKyAgLy8gc2hp
ZnQgbGVmdCBhbGwgaXRlbXMgbGVmdCwgaW50byB0aGUgcGxhY2Ugb2YgdGhlICJyZW1vdmVkIgor
ICBmb3IgKEFycmF5SW5kZXggaSA9IGluZGV4OyBpIDwgKG9sZFNpemUgLSAxKTsgKytpKXsKKyAg
ICBDWlN0cmluZyBrZWV5KGkpOworICAgICgqdmFsdWVfLm1hcF8pW2tlZXldID0gKCp0aGlzKVtp
ICsgMV07CisgIH0KKyAgLy8gZXJhc2UgdGhlIGxhc3Qgb25lICgibGVmdG92ZXIiKQorICBDWlN0
cmluZyBrZXlMYXN0KG9sZFNpemUgLSAxKTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdExh
c3QgPSB2YWx1ZV8ubWFwXy0+ZmluZChrZXlMYXN0KTsKKyAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0
TGFzdCk7CisgIHJldHVybiB0cnVlOworfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVl
IFZhbHVlOjpnZXQoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXksCisgICAgICAgICAgICAg
ICAgIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgcmV0dXJuIGdldChrZXku
Y19zdHIoKSwga2V5LmVuZF9jX3N0cigpLCBkZWZhdWx0VmFsdWUpOworfQorI2VuZGlmCisKK2Jv
b2wgVmFsdWU6OmlzTWVtYmVyKGNoYXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkgY29u
c3QKK3sKKyAgVmFsdWUgY29uc3QqIHZhbHVlID0gZmluZChrZXksIGNlbmQpOworICByZXR1cm4g
TlVMTCAhPSB2YWx1ZTsKK30KK2Jvb2wgVmFsdWU6OmlzTWVtYmVyKGNoYXIgY29uc3QqIGtleSkg
Y29uc3QKK3sKKyAgcmV0dXJuIGlzTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworfQor
Ym9vbCBWYWx1ZTo6aXNNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSkgY29uc3QKK3sKKyAg
cmV0dXJuIGlzTWVtYmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCkpOwor
fQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK2Jvb2wgVmFsdWU6OmlzTWVtYmVyKGNvbnN0IENw
cFRMOjpDb25zdFN0cmluZyYga2V5KSBjb25zdCB7CisgIHJldHVybiBpc01lbWJlcihrZXkuY19z
dHIoKSwga2V5LmVuZF9jX3N0cigpKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6TWVtYmVycyBWYWx1
ZTo6Z2V0TWVtYmVyTmFtZXMoKSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAg
ICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4g
SnNvbjo6VmFsdWU6OmdldE1lbWJlck5hbWVzKCksIHZhbHVlIG11c3QgYmUgb2JqZWN0VmFsdWUi
KTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICByZXR1cm4gVmFsdWU6Ok1lbWJlcnMo
KTsKKyAgTWVtYmVycyBtZW1iZXJzOworICBtZW1iZXJzLnJlc2VydmUodmFsdWVfLm1hcF8tPnNp
emUoKSk7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+
YmVnaW4oKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdEVuZCA9IHZhbHVlXy5t
YXBfLT5lbmQoKTsKKyAgZm9yICg7IGl0ICE9IGl0RW5kOyArK2l0KSB7CisgICAgbWVtYmVycy5w
dXNoX2JhY2soc3RkOjpzdHJpbmcoKCppdCkuZmlyc3QuZGF0YSgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgqaXQpLmZpcnN0Lmxlbmd0aCgpKSk7CisgIH0KKyAgcmV0dXJu
IG1lbWJlcnM7Cit9CisvLworLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisvLyBFbnVtTWVtYmVy
TmFtZXMKKy8vIFZhbHVlOjplbnVtTWVtYmVyTmFtZXMoKSBjb25zdAorLy97CisvLyAgIGlmICgg
dHlwZV8gPT0gb2JqZWN0VmFsdWUgKQorLy8gICB7CisvLyAgICAgIHJldHVybiBDcHBUTDo6RW51
bTo6YW55KCAgQ3BwVEw6OkVudW06OnRyYW5zZm9ybSgKKy8vICAgICAgICAgQ3BwVEw6OkVudW06
OmtleXMoICoodmFsdWVfLm1hcF8pLCBDcHBUTDo6VHlwZTxjb25zdCBDWlN0cmluZyAmPigpICks
CisvLyAgICAgICAgIE1lbWJlck5hbWVzVHJhbnNmb3JtKCkgKSApOworLy8gICB9CisvLyAgIHJl
dHVybiBFbnVtTWVtYmVyTmFtZXMoKTsKKy8vfQorLy8KKy8vCisvLyBFbnVtVmFsdWVzCisvLyBW
YWx1ZTo6ZW51bVZhbHVlcygpIGNvbnN0CisvL3sKKy8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RW
YWx1ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgKQorLy8gICAgICByZXR1cm4gQ3BwVEw6OkVu
dW06OmFueVZhbHVlcyggKih2YWx1ZV8ubWFwXyksCisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDcHBUTDo6VHlwZTxjb25zdCBWYWx1ZSAmPigpICk7CisvLyAgIHJldHVy
biBFbnVtVmFsdWVzKCk7CisvL30KKy8vCisvLyMgZW5kaWYKKworc3RhdGljIGJvb2wgSXNJbnRl
Z3JhbChkb3VibGUgZCkgeworICBkb3VibGUgaW50ZWdyYWxfcGFydDsKKyAgcmV0dXJuIG1vZGYo
ZCwgJmludGVncmFsX3BhcnQpID09IDAuMDsKK30KKworYm9vbCBWYWx1ZTo6aXNOdWxsKCkgY29u
c3QgeyByZXR1cm4gdHlwZV8gPT0gbnVsbFZhbHVlOyB9CisKK2Jvb2wgVmFsdWU6OmlzQm9vbCgp
IGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IGJvb2xlYW5WYWx1ZTsgfQorCitib29sIFZhbHVlOjpp
c0ludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8uaW50XyA+PSBtaW5JbnQgJiYgdmFsdWVfLmludF8gPD0gbWF4SW50Owor
ICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQobWF4SW50
KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBtaW5JbnQg
JiYgdmFsdWVfLnJlYWxfIDw9IG1heEludCAmJgorICAgICAgICAgICBJc0ludGVncmFsKHZhbHVl
Xy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFZhbHVlOjppc1VJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAg
Y2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMCAmJiBMYXJnZXN0VUlu
dCh2YWx1ZV8uaW50XykgPD0gTGFyZ2VzdFVJbnQobWF4VUludCk7CisgIGNhc2UgdWludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gbWF4VUludDsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVlXy5yZWFsXyA8PSBtYXhVSW50
ICYmCisgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAg
ICBicmVhazsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6OmlzSW50NjQo
KSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgc3dpdGNoICh0eXBlXykg
eworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB0cnVlOworICBjYXNlIHVpbnRWYWx1ZToK
KyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQ2NChtYXhJbnQ2NCk7CisgIGNhc2UgcmVh
bFZhbHVlOgorICAgIC8vIE5vdGUgdGhhdCBtYXhJbnQ2NCAoPSAyXjYzIC0gMSkgaXMgbm90IGV4
YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCisgICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4SW50
NjQpIHdpbGwgYmUgcm91bmRlZCB1cCB0byAyXjYzLiBUaGVyZWZvcmUgd2UKKyAgICAvLyByZXF1
aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgorICAgIHJl
dHVybiB2YWx1ZV8ucmVhbF8gPj0gZG91YmxlKG1pbkludDY0KSAmJgorICAgICAgICAgICB2YWx1
ZV8ucmVhbF8gPCBkb3VibGUobWF4SW50NjQpICYmIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsK
KyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0Cisg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNVSW50NjQoKSBjb25zdCB7CisjaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZh
bHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwOworICBjYXNlIHVpbnRWYWx1ZToKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8gTm90ZSB0aGF0IG1heFVJ
bnQ2NCAoPSAyXjY0IC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCisgICAg
Ly8gZG91YmxlLCBzbyBkb3VibGUobWF4VUludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42
NC4gVGhlcmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkg
bGVzcyB0aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYgdmFs
dWVfLnJlYWxfIDwgbWF4VUludDY0QXNEb3VibGUgJiYKKyAgICAgICAgICAgSXNJbnRlZ3JhbCh2
YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisjZW5kaWYgLy8gSlNP
Tl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjppc0ludGVncmFs
KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIHJldHVybiBpc0ludDY0
KCkgfHwgaXNVSW50NjQoKTsKKyNlbHNlCisgIHJldHVybiBpc0ludCgpIHx8IGlzVUludCgpOwor
I2VuZGlmCit9CisKK2Jvb2wgVmFsdWU6OmlzRG91YmxlKCkgY29uc3QgeyByZXR1cm4gdHlwZV8g
PT0gcmVhbFZhbHVlIHx8IGlzSW50ZWdyYWwoKTsgfQorCitib29sIFZhbHVlOjppc051bWVyaWMo
KSBjb25zdCB7IHJldHVybiBpc0ludGVncmFsKCkgfHwgaXNEb3VibGUoKTsgfQorCitib29sIFZh
bHVlOjppc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IHN0cmluZ1ZhbHVlOyB9CisK
K2Jvb2wgVmFsdWU6OmlzQXJyYXkoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVl
OyB9CisKK2Jvb2wgVmFsdWU6OmlzT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gb2Jq
ZWN0VmFsdWU7IH0KKwordm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50
LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBpZiAoIWNvbW1l
bnRzXykKKyAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxh
Y2VtZW50XTsKKyAgaWYgKChsZW4gPiAwKSAmJiAoY29tbWVudFtsZW4tMV0gPT0gJ1xuJykpIHsK
KyAgICAvLyBBbHdheXMgZGlzY2FyZCB0cmFpbGluZyBuZXdsaW5lLCB0byBhaWQgaW5kZW50YXRp
b24uCisgICAgbGVuIC09IDE7CisgIH0KKyAgY29tbWVudHNfW3BsYWNlbWVudF0uc2V0Q29tbWVu
dChjb21tZW50LCBsZW4pOworfQorCit2b2lkIFZhbHVlOjpzZXRDb21tZW50KGNvbnN0IGNoYXIq
IGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIHNldENvbW1lbnQoY29t
bWVudCwgc3RybGVuKGNvbW1lbnQpLCBwbGFjZW1lbnQpOworfQorCit2b2lkIFZhbHVlOjpzZXRD
b21tZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCkgeworICBzZXRDb21tZW50KGNvbW1lbnQuY19zdHIoKSwgY29tbWVudC5sZW5ndGgoKSwg
cGxhY2VtZW50KTsKK30KKworYm9vbCBWYWx1ZTo6aGFzQ29tbWVudChDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCkgY29uc3QgeworICByZXR1cm4gY29tbWVudHNfICE9IDAgJiYgY29tbWVudHNf
W3BsYWNlbWVudF0uY29tbWVudF8gIT0gMDsKK30KKworc3RkOjpzdHJpbmcgVmFsdWU6OmdldENv
bW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0IHsKKyAgaWYgKGhhc0NvbW1l
bnQocGxhY2VtZW50KSkKKyAgICByZXR1cm4gY29tbWVudHNfW3BsYWNlbWVudF0uY29tbWVudF87
CisgIHJldHVybiAiIjsKK30KKwordm9pZCBWYWx1ZTo6c2V0T2Zmc2V0U3RhcnQoc2l6ZV90IHN0
YXJ0KSB7IHN0YXJ0XyA9IHN0YXJ0OyB9CisKK3ZvaWQgVmFsdWU6OnNldE9mZnNldExpbWl0KHNp
emVfdCBsaW1pdCkgeyBsaW1pdF8gPSBsaW1pdDsgfQorCitzaXplX3QgVmFsdWU6OmdldE9mZnNl
dFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gc3RhcnRfOyB9CisKK3NpemVfdCBWYWx1ZTo6Z2V0T2Zm
c2V0TGltaXQoKSBjb25zdCB7IHJldHVybiBsaW1pdF87IH0KKworc3RkOjpzdHJpbmcgVmFsdWU6
OnRvU3R5bGVkU3RyaW5nKCkgY29uc3QgeworICBTdHlsZWRXcml0ZXIgd3JpdGVyOworICByZXR1
cm4gd3JpdGVyLndyaXRlKCp0aGlzKTsKK30KKworVmFsdWU6OmNvbnN0X2l0ZXJhdG9yIFZhbHVl
OjpiZWdpbigpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6
CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJu
IGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigpKTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsKK30KKwor
VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIFZhbHVlOjplbmQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlw
ZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2
YWx1ZV8ubWFwXykKKyAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcih2YWx1ZV8ubWFwXy0+ZW5k
KCkpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBj
b25zdF9pdGVyYXRvcigpOworfQorCitWYWx1ZTo6aXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgewor
ICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1
ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICByZXR1cm4gaXRlcmF0b3IodmFsdWVfLm1h
cF8tPmJlZ2luKCkpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9Cisg
IHJldHVybiBpdGVyYXRvcigpOworfQorCitWYWx1ZTo6aXRlcmF0b3IgVmFsdWU6OmVuZCgpIHsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFs
dWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5t
YXBfLT5lbmQoKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAg
cmV0dXJuIGl0ZXJhdG9yKCk7Cit9CisKKy8vIGNsYXNzIFBhdGhBcmd1bWVudAorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KCkgOiBrZXlfKCksIGluZGV4XygpLCBr
aW5kXyhraW5kTm9uZSkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoQXJyYXlJbmRl
eCBpbmRleCkKKyAgICA6IGtleV8oKSwgaW5kZXhfKGluZGV4KSwga2luZF8oa2luZEluZGV4KSB7
fQorCitQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudChjb25zdCBjaGFyKiBrZXkpCisgICAgOiBr
ZXlfKGtleSksIGluZGV4XygpLCBraW5kXyhraW5kS2V5KSB7fQorCitQYXRoQXJndW1lbnQ6OlBh
dGhBcmd1bWVudChjb25zdCBzdGQ6OnN0cmluZyYga2V5KQorICAgIDoga2V5XyhrZXkuY19zdHIo
KSksIGluZGV4XygpLCBraW5kXyhraW5kS2V5KSB7fQorCisvLyBjbGFzcyBQYXRoCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworUGF0aDo6UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKKyAgICAgICAgICAg
Y29uc3QgUGF0aEFyZ3VtZW50JiBhMSwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBh
MiwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMywKKyAgICAgICAgICAgY29uc3Qg
UGF0aEFyZ3VtZW50JiBhNCwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNSkgewor
ICBJbkFyZ3MgaW47CisgIGluLnB1c2hfYmFjaygmYTEpOworICBpbi5wdXNoX2JhY2soJmEyKTsK
KyAgaW4ucHVzaF9iYWNrKCZhMyk7CisgIGluLnB1c2hfYmFjaygmYTQpOworICBpbi5wdXNoX2Jh
Y2soJmE1KTsKKyAgbWFrZVBhdGgocGF0aCwgaW4pOworfQorCit2b2lkIFBhdGg6Om1ha2VQYXRo
KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBjb25zdCBJbkFyZ3MmIGluKSB7CisgIGNvbnN0IGNo
YXIqIGN1cnJlbnQgPSBwYXRoLmNfc3RyKCk7CisgIGNvbnN0IGNoYXIqIGVuZCA9IGN1cnJlbnQg
KyBwYXRoLmxlbmd0aCgpOworICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0SW5BcmcgPSBpbi5i
ZWdpbigpOworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBpZiAoKmN1cnJlbnQgPT0g
J1snKSB7CisgICAgICArK2N1cnJlbnQ7CisgICAgICBpZiAoKmN1cnJlbnQgPT0gJyUnKQorICAg
ICAgICBhZGRQYXRoSW5BcmcocGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZElu
ZGV4KTsKKyAgICAgIGVsc2UgeworICAgICAgICBBcnJheUluZGV4IGluZGV4ID0gMDsKKyAgICAg
ICAgZm9yICg7IGN1cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID49ICcwJyAmJiAqY3VycmVudCA8
PSAnOSc7ICsrY3VycmVudCkKKyAgICAgICAgICBpbmRleCA9IGluZGV4ICogMTAgKyBBcnJheUlu
ZGV4KCpjdXJyZW50IC0gJzAnKTsKKyAgICAgICAgYXJnc18ucHVzaF9iYWNrKGluZGV4KTsKKyAg
ICAgIH0KKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCB8fCAqY3VycmVudCsrICE9ICddJykKKyAg
ICAgICAgaW52YWxpZFBhdGgocGF0aCwgaW50KGN1cnJlbnQgLSBwYXRoLmNfc3RyKCkpKTsKKyAg
ICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICclJykgeworICAgICAgYWRkUGF0aEluQXJnKHBhdGgs
IGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRLZXkpOworICAgICAgKytjdXJyZW50Owor
ICAgIH0gZWxzZSBpZiAoKmN1cnJlbnQgPT0gJy4nKSB7CisgICAgICArK2N1cnJlbnQ7CisgICAg
fSBlbHNlIHsKKyAgICAgIGNvbnN0IGNoYXIqIGJlZ2luTmFtZSA9IGN1cnJlbnQ7CisgICAgICB3
aGlsZSAoY3VycmVudCAhPSBlbmQgJiYgIXN0cmNocigiWy4iLCAqY3VycmVudCkpCisgICAgICAg
ICsrY3VycmVudDsKKyAgICAgIGFyZ3NfLnB1c2hfYmFjayhzdGQ6OnN0cmluZyhiZWdpbk5hbWUs
IGN1cnJlbnQpKTsKKyAgICB9CisgIH0KK30KKwordm9pZCBQYXRoOjphZGRQYXRoSW5BcmcoY29u
c3Qgc3RkOjpzdHJpbmcmIC8qcGF0aCovLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW5BcmdzJiBpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEluQXJnczo6Y29uc3RfaXRlcmF0
b3ImIGl0SW5BcmcsCisgICAgICAgICAgICAgICAgICAgICAgICBQYXRoQXJndW1lbnQ6OktpbmQg
a2luZCkgeworICBpZiAoaXRJbkFyZyA9PSBpbi5lbmQoKSkgeworICAgIC8vIEVycm9yOiBtaXNz
aW5nIGFyZ3VtZW50ICVkCisgIH0gZWxzZSBpZiAoKCppdEluQXJnKS0+a2luZF8gIT0ga2luZCkg
eworICAgIC8vIEVycm9yOiBiYWQgYXJndW1lbnQgdHlwZQorICB9IGVsc2UgeworICAgIGFyZ3Nf
LnB1c2hfYmFjaygqKml0SW5BcmcpOworICB9Cit9CisKK3ZvaWQgUGF0aDo6aW52YWxpZFBhdGgo
Y29uc3Qgc3RkOjpzdHJpbmcmIC8qcGF0aCovLCBpbnQgLypsb2NhdGlvbiovKSB7CisgIC8vIEVy
cm9yOiBpbnZhbGlkIHBhdGguCit9CisKK2NvbnN0IFZhbHVlJiBQYXRoOjpyZXNvbHZlKGNvbnN0
IFZhbHVlJiByb290KSBjb25zdCB7CisgIGNvbnN0IFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZv
ciAoQXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5l
bmQoKTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYXJnID0gKml0OworICAgIGlm
IChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9k
ZS0+aXNBcnJheSgpIHx8ICFub2RlLT5pc1ZhbGlkSW5kZXgoYXJnLmluZGV4XykpIHsKKyAgICAg
ICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKGFycmF5IHZhbHVlIGV4cGVjdGVk
IGF0IHBvc2l0aW9uLi4uCisgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRl
eF9dKTsKKyAgICB9IGVsc2UgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkp
IHsKKyAgICAgIGlmICghbm9kZS0+aXNPYmplY3QoKSkgeworICAgICAgICAvLyBFcnJvcjogdW5h
YmxlIHRvIHJlc29sdmUgcGF0aCAob2JqZWN0IHZhbHVlIGV4cGVjdGVkIGF0IHBvc2l0aW9uLi4u
KQorICAgICAgfQorICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOworICAgICAgaWYg
KG5vZGUgPT0gJlZhbHVlOjpudWxsUmVmKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8g
cmVzb2x2ZSBwYXRoIChvYmplY3QgaGFzIG5vIG1lbWJlciBuYW1lZCAnJyBhdAorICAgICAgICAv
LyBwb3NpdGlvbi4uLikKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuICpub2RlOworfQor
CitWYWx1ZSBQYXRoOjpyZXNvbHZlKGNvbnN0IFZhbHVlJiByb290LCBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZvciAo
QXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5lbmQo
KTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYXJnID0gKml0OworICAgIGlmIChh
cmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9kZS0+
aXNBcnJheSgpIHx8ICFub2RlLT5pc1ZhbGlkSW5kZXgoYXJnLmluZGV4XykpCisgICAgICAgIHJl
dHVybiBkZWZhdWx0VmFsdWU7CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsK
KyAgICB9IGVsc2UgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkpIHsKKyAg
ICAgIGlmICghbm9kZS0+aXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKKyAgICAgIGlmIChub2RlID09ICZW
YWx1ZTo6bnVsbFJlZikKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuICpub2RlOworfQorCitWYWx1ZSYgUGF0aDo6bWFrZShWYWx1ZSYgcm9vdCkgY29u
c3QgeworICBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKEFyZ3M6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQpIHsKKyAgICBjb25z
dCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1
bWVudDo6a2luZEluZGV4KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSkgeworICAgICAg
ICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gYXJyYXkgYXQgcG9zaXRpb24gLi4uCisgICAgICB9
CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAgICB9IGVsc2UgaWYgKGFy
Zy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkpIHsKKyAgICAgIGlmICghbm9kZS0+aXNP
YmplY3QoKSkgeworICAgICAgICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gb2JqZWN0IGF0IHBv
c2l0aW9uLi4uCisgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Cisg
ICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisj
cHJhZ21hIHdhcm5pbmcgKHBvcCkKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRl
bnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
Ky8vIENvcHlyaWdodCAyMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisj
aWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8anNvbi93cml0ZXIu
aD4KKyNpbmNsdWRlICJqc29uX3Rvb2wuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxpb21hbmlwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8c2V0PgorI2lu
Y2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxjc3RkaW8+CisK
KyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxMjAwICYmIF9NU0NfVkVSIDwg
MTgwMCAvLyBCZXR3ZWVuIFZDKysgNi4wIGFuZCBWQysrIDExLjAKKyNpbmNsdWRlIDxmbG9hdC5o
PgorI2RlZmluZSBpc2Zpbml0ZSBfZmluaXRlCisjZWxpZiBkZWZpbmVkKF9fc3VuKSAmJiBkZWZp
bmVkKF9fU1ZSNCkgLy9Tb2xhcmlzCisjaWYgIWRlZmluZWQoaXNmaW5pdGUpCisjaW5jbHVkZSA8
aWVlZWZwLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0ZQorI2VuZGlmCisjZWxpZiBkZWZpbmVk
KF9BSVgpCisjaWYgIWRlZmluZWQoaXNmaW5pdGUpCisjaW5jbHVkZSA8bWF0aC5oPgorI2RlZmlu
ZSBpc2Zpbml0ZSBmaW5pdGUKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX2hwdXgpCisjaWYgIWRl
ZmluZWQoaXNmaW5pdGUpCisjaWYgZGVmaW5lZChfX2lhNjQpICYmICFkZWZpbmVkKGZpbml0ZSkK
KyNkZWZpbmUgaXNmaW5pdGUoeCkgKChzaXplb2YoeCkgPT0gc2l6ZW9mKGZsb2F0KSA/IFwKKyAg
ICAgICAgICAgICAgICAgICAgIF9Jc2Zpbml0ZWYoeCkgOiBfSXNGaW5pdGUoeCkpKQorI2Vsc2UK
KyNpbmNsdWRlIDxtYXRoLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0ZQorI2VuZGlmCisjZW5k
aWYKKyNlbHNlCisjaW5jbHVkZSA8Y21hdGg+CisjaWYgIShkZWZpbmVkKF9fUU5YTlRPX18pKSAv
LyBRTlggYWxyZWFkeSBkZWZpbmVzIGlzZmluaXRlCisjZGVmaW5lIGlzZmluaXRlIHN0ZDo6aXNm
aW5pdGUKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2lmICFkZWZp
bmVkKFdJTkNFKSAmJiBkZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pICYmIF9NU0NfVkVSID49
IDE1MDAgLy8gVkMrKyA5LjAgYW5kIGFib3ZlCisjZGVmaW5lIHNucHJpbnRmIHNwcmludGZfcwor
I2VsaWYgX01TQ19WRVIgPj0gMTkwMCAvLyBWQysrIDE0LjAgYW5kIGFib3ZlCisjZGVmaW5lIHNu
cHJpbnRmIHN0ZDo6c25wcmludGYKKyNlbHNlCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50Zgor
I2VuZGlmCisjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKSB8fCBkZWZpbmVkKF9fUU5YTlRPX18p
CisjZGVmaW5lIHNucHJpbnRmIHNucHJpbnRmCisjZWxpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNM
CisjZGVmaW5lIHNucHJpbnRmIHN0ZDo6c25wcmludGYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChf
X0JPUkxBTkRDX18pICAKKyNpbmNsdWRlIDxmbG9hdC5oPgorI2RlZmluZSBpc2Zpbml0ZSBfZmlu
aXRlCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50ZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9N
U0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNDAwIC8vIFZDKysgOC4wCisvLyBEaXNhYmxlIHdhcm5p
bmcgYWJvdXQgc3RyZHVwIGJlaW5nIGRlcHJlY2F0ZWQuCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJs
ZSA6IDQ5OTYpCisjZW5kaWYKKworbmFtZXNwYWNlIEpzb24geworCisjaWYgX19jcGx1c3BsdXMg
Pj0gMjAxMTAzTCB8fCAoZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPj0gNTIw
KQordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8U3RyZWFtV3JpdGVyPiBTdHJlYW1Xcml0ZXJQdHI7
CisjZWxzZQordHlwZWRlZiBzdGQ6OmF1dG9fcHRyPFN0cmVhbVdyaXRlcj4gICBTdHJlYW1Xcml0
ZXJQdHI7CisjZW5kaWYKKworc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9sQ2hhcmFjdGVyKGNv
bnN0IGNoYXIqIHN0cikgeworICB3aGlsZSAoKnN0cikgeworICAgIGlmIChpc0NvbnRyb2xDaGFy
YWN0ZXIoKihzdHIrKykpKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGZhbHNl
OworfQorCitzdGF0aWMgYm9vbCBjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIwKGNvbnN0IGNoYXIq
IHN0ciwgdW5zaWduZWQgbGVuKSB7CisgIGNoYXIgY29uc3QqIGVuZCA9IHN0ciArIGxlbjsKKyAg
d2hpbGUgKGVuZCAhPSBzdHIpIHsKKyAgICBpZiAoaXNDb250cm9sQ2hhcmFjdGVyKCpzdHIpIHx8
IDA9PSpzdHIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICArK3N0cjsKKyAgfQorICByZXR1cm4g
ZmFsc2U7Cit9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSkg
eworICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICBjaGFyKiBjdXJyZW50ID0gYnVmZmVy
ICsgc2l6ZW9mKGJ1ZmZlcik7CisgIGlmICh2YWx1ZSA9PSBWYWx1ZTo6bWluTGFyZ2VzdEludCkg
eworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdEludCkgKyAx
LCBjdXJyZW50KTsKKyAgICAqLS1jdXJyZW50ID0gJy0nOworICB9IGVsc2UgaWYgKHZhbHVlIDwg
MCkgeworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludCgtdmFsdWUpLCBjdXJyZW50KTsKKyAg
ICAqLS1jdXJyZW50ID0gJy0nOworICB9IGVsc2UgeworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0
VUludCh2YWx1ZSksIGN1cnJlbnQpOworICB9CisgIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7
CisgIHJldHVybiBjdXJyZW50OworfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdl
c3RVSW50IHZhbHVlKSB7CisgIFVJbnRUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgIGNoYXIqIGN1
cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVyKTsKKyAgdWludFRvU3RyaW5nKHZhbHVlLCBj
dXJyZW50KTsKKyAgYXNzZXJ0KGN1cnJlbnQgPj0gYnVmZmVyKTsKKyAgcmV0dXJuIGN1cnJlbnQ7
Cit9CisKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitzdGQ6OnN0cmluZyB2YWx1ZVRv
U3RyaW5nKEludCB2YWx1ZSkgeworICByZXR1cm4gdmFsdWVUb1N0cmluZyhMYXJnZXN0SW50KHZh
bHVlKSk7Cit9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoVUludCB2YWx1ZSkgeworICBy
ZXR1cm4gdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCh2YWx1ZSkpOworfQorCisjZW5kaWYgLy8g
IyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5n
KGRvdWJsZSB2YWx1ZSwgYm9vbCB1c2VTcGVjaWFsRmxvYXRzLCB1bnNpZ25lZCBpbnQgcHJlY2lz
aW9uKSB7CisgIC8vIEFsbG9jYXRlIGEgYnVmZmVyIHRoYXQgaXMgbW9yZSB0aGFuIGxhcmdlIGVu
b3VnaCB0byBzdG9yZSB0aGUgMTYgZGlnaXRzIG9mCisgIC8vIHByZWNpc2lvbiByZXF1ZXN0ZWQg
YmVsb3cuCisgIGNoYXIgYnVmZmVyWzMyXTsKKyAgaW50IGxlbiA9IC0xOworCisgIGNoYXIgZm9y
bWF0U3RyaW5nWzZdOworICBzcHJpbnRmKGZvcm1hdFN0cmluZywgIiUlLiVkZyIsIHByZWNpc2lv
bik7CisKKyAgLy8gUHJpbnQgaW50byB0aGUgYnVmZmVyLiBXZSBuZWVkIG5vdCByZXF1ZXN0IHRo
ZSBhbHRlcm5hdGl2ZSByZXByZXNlbnRhdGlvbgorICAvLyB0aGF0IGFsd2F5cyBoYXMgYSBkZWNp
bWFsIHBvaW50IGJlY2F1c2UgSlNPTiBkb2Vzbid0IGRpc3Rpbmdpc2ggdGhlCisgIC8vIGNvbmNl
cHRzIG9mIHJlYWxzIGFuZCBpbnRlZ2Vycy4KKyAgaWYgKGlzZmluaXRlKHZhbHVlKSkgeworICAg
IGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIGZvcm1hdFN0cmluZywgdmFs
dWUpOworICB9IGVsc2UgeworICAgIC8vIElFRUUgc3RhbmRhcmQgc3RhdGVzIHRoYXQgTmFOIHZh
bHVlcyB3aWxsIG5vdCBjb21wYXJlIHRvIHRoZW1zZWx2ZXMKKyAgICBpZiAodmFsdWUgIT0gdmFs
dWUpIHsKKyAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHVzZVNw
ZWNpYWxGbG9hdHMgPyAiTmFOIiA6ICJudWxsIik7CisgICAgfSBlbHNlIGlmICh2YWx1ZSA8IDAp
IHsKKyAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHVzZVNwZWNp
YWxGbG9hdHMgPyAiLUluZmluaXR5IiA6ICItMWUrOTk5OSIpOworICAgIH0gZWxzZSB7CisgICAg
ICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFsRmxvYXRz
ID8gIkluZmluaXR5IiA6ICIxZSs5OTk5Iik7CisgICAgfQorICAgIC8vIEZvciB0aG9zZSwgd2Ug
ZG8gbm90IG5lZWQgdG8gY2FsbCBmaXhOdW1Mb2MsIGJ1dCBpdCBpcyBmYXN0LgorICB9CisgIGFz
c2VydChsZW4gPj0gMCk7CisgIGZpeE51bWVyaWNMb2NhbGUoYnVmZmVyLCBidWZmZXIgKyBsZW4p
OworICByZXR1cm4gYnVmZmVyOworfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZSwgZmFsc2UsIDE3KTsgfQorCitz
dGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpIHsgcmV0dXJuIHZhbHVlID8gInRy
dWUiIDogImZhbHNlIjsgfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvUXVvdGVkU3RyaW5nKGNvbnN0
IGNoYXIqIHZhbHVlKSB7CisgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgIHJldHVybiAiIjsKKyAg
Ly8gTm90IHN1cmUgaG93IHRvIGhhbmRsZSB1bmljb2RlLi4uCisgIGlmIChzdHJwYnJrKHZhbHVl
LCAiXCJcXFxiXGZcblxyXHQiKSA9PSBOVUxMICYmCisgICAgICAhY29udGFpbnNDb250cm9sQ2hh
cmFjdGVyKHZhbHVlKSkKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwiIikgKyB2YWx1ZSArICJc
IiI7CisgIC8vIFdlIGhhdmUgdG8gd2FsayB2YWx1ZSBhbmQgZXNjYXBlIGFueSBzcGVjaWFsIGNo
YXJhY3RlcnMuCisgIC8vIEFwcGVuZGluZyB0byBzdGQ6OnN0cmluZyBpcyBub3QgZWZmaWNpZW50
LCBidXQgdGhpcyBzaG91bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xhc2hlcyBh
cmUgKm5vdCogcmFyZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBzdGQ6OnN0cmlu
Zzo6c2l6ZV90eXBlIG1heHNpemUgPQorICAgICAgc3RybGVuKHZhbHVlKSAqIDIgKyAzOyAvLyBh
bGxlc2NhcGVkK3F1b3RlcytOVUxMCisgIHN0ZDo6c3RyaW5nIHJlc3VsdDsKKyAgcmVzdWx0LnJl
c2VydmUobWF4c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9jcworICByZXN1bHQgKz0g
IlwiIjsKKyAgZm9yIChjb25zdCBjaGFyKiBjID0gdmFsdWU7ICpjICE9IDA7ICsrYykgeworICAg
IHN3aXRjaCAoKmMpIHsKKyAgICBjYXNlICdcIic6CisgICAgICByZXN1bHQgKz0gIlxcXCIiOwor
ICAgICAgYnJlYWs7CisgICAgY2FzZSAnXFwnOgorICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKKyAg
ICAgIGJyZWFrOworICAgIGNhc2UgJ1xiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxiIjsKKyAgICAg
IGJyZWFrOworICAgIGNhc2UgJ1xmJzoKKyAgICAgIHJlc3VsdCArPSAiXFxmIjsKKyAgICAgIGJy
ZWFrOworICAgIGNhc2UgJ1xuJzoKKyAgICAgIHJlc3VsdCArPSAiXFxuIjsKKyAgICAgIGJyZWFr
OworICAgIGNhc2UgJ1xyJzoKKyAgICAgIHJlc3VsdCArPSAiXFxyIjsKKyAgICAgIGJyZWFrOwor
ICAgIGNhc2UgJ1x0JzoKKyAgICAgIHJlc3VsdCArPSAiXFx0IjsKKyAgICAgIGJyZWFrOworICAg
IC8vIGNhc2UgJy8nOgorICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdh
bCBlc2NhcGUgaW4gSlNPTiwgYSBiYXJlCisgICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28g
SSBzZWUgbm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KKyAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1p
c3VuZGVyc3RhbmRpbmcgc29tZXRoaW5nLgorICAgIC8vIGJsZXAgbm90ZXM6IGFjdHVhbGx5IGVz
Y2FwaW5nIFwvIG1heSBiZSB1c2VmdWwgaW4gamF2YXNjcmlwdCB0byBhdm9pZCA8LworICAgIC8v
IHNlcXVlbmNlLgorICAgIC8vIFNob3VsZCBhZGQgYSBmbGFnIHRvIGFsbG93IHRoaXMgY29tcGF0
aWJpbGl0eSBtb2RlIGFuZCBwcmV2ZW50IHRoaXMKKyAgICAvLyBzZXF1ZW5jZSBmcm9tIG9jY3Vy
cmluZy4KKyAgICBkZWZhdWx0OgorICAgICAgaWYgKGlzQ29udHJvbENoYXJhY3RlcigqYykpIHsK
KyAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKKyAgICAgICAgb3NzIDw8ICJcXHUiIDw8
IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpCisgICAgICAg
ICAgICA8PCBzdGQ6OnNldHcoNCkgPDwgc3RhdGljX2Nhc3Q8aW50PigqYyk7CisgICAgICAgIHJl
c3VsdCArPSBvc3Muc3RyKCk7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXN1bHQgKz0gKmM7
CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgcmVzdWx0ICs9ICJcIiI7Cisg
IHJldHVybiByZXN1bHQ7Cit9CisKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS91cGNhc3RlL3VwY2Fz
dGUvYmxvYi9tYXN0ZXIvc3JjL3VwY29yZS9zcmMvY3N0cmluZy9zdHJucGJyay5jcHAKK3N0YXRp
YyBjaGFyIGNvbnN0KiBzdHJucGJyayhjaGFyIGNvbnN0KiBzLCBjaGFyIGNvbnN0KiBhY2NlcHQs
IHNpemVfdCBuKSB7CisgIGFzc2VydCgocyB8fCAhbikgJiYgYWNjZXB0KTsKKworICBjaGFyIGNv
bnN0KiBjb25zdCBlbmQgPSBzICsgbjsKKyAgZm9yIChjaGFyIGNvbnN0KiBjdXIgPSBzOyBjdXIg
PCBlbmQ7ICsrY3VyKSB7CisgICAgaW50IGNvbnN0IGMgPSAqY3VyOworICAgIGZvciAoY2hhciBj
b25zdCogYSA9IGFjY2VwdDsgKmE7ICsrYSkgeworICAgICAgaWYgKCphID09IGMpIHsKKyAgICAg
ICAgcmV0dXJuIGN1cjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuIE5VTEw7Cit9Citz
dGF0aWMgc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZ04oY29uc3QgY2hhciogdmFsdWUs
IHVuc2lnbmVkIGxlbmd0aCkgeworICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICByZXR1cm4gIiI7
CisgIC8vIE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4uLgorICBpZiAoc3RybnBicmso
dmFsdWUsICJcIlxcXGJcZlxuXHJcdCIsIGxlbmd0aCkgPT0gTlVMTCAmJgorICAgICAgIWNvbnRh
aW5zQ29udHJvbENoYXJhY3RlcjAodmFsdWUsIGxlbmd0aCkpCisgICAgcmV0dXJuIHN0ZDo6c3Ry
aW5nKCJcIiIpICsgdmFsdWUgKyAiXCIiOworICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5k
IGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzLgorICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpz
dHJpbmcgaXMgbm90IGVmZmljaWVudCwgYnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCisgIC8vIChO
b3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJlICpub3QqIHJhcmUsIGJ1dCBJIGFtIG5vdCBlc2NhcGlu
ZyB0aGVtLikKKyAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBtYXhzaXplID0KKyAgICAgIGxlbmd0
aCAqIDIgKyAzOyAvLyBhbGxlc2NhcGVkK3F1b3RlcytOVUxMCisgIHN0ZDo6c3RyaW5nIHJlc3Vs
dDsKKyAgcmVzdWx0LnJlc2VydmUobWF4c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9j
cworICByZXN1bHQgKz0gIlwiIjsKKyAgY2hhciBjb25zdCogZW5kID0gdmFsdWUgKyBsZW5ndGg7
CisgIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyBjICE9IGVuZDsgKytjKSB7CisgICAgc3dp
dGNoICgqYykgeworICAgIGNhc2UgJ1wiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxcIiI7CisgICAg
ICBicmVhazsKKyAgICBjYXNlICdcXCc6CisgICAgICByZXN1bHQgKz0gIlxcXFwiOworICAgICAg
YnJlYWs7CisgICAgY2FzZSAnXGInOgorICAgICAgcmVzdWx0ICs9ICJcXGIiOworICAgICAgYnJl
YWs7CisgICAgY2FzZSAnXGYnOgorICAgICAgcmVzdWx0ICs9ICJcXGYiOworICAgICAgYnJlYWs7
CisgICAgY2FzZSAnXG4nOgorICAgICAgcmVzdWx0ICs9ICJcXG4iOworICAgICAgYnJlYWs7Cisg
ICAgY2FzZSAnXHInOgorICAgICAgcmVzdWx0ICs9ICJcXHIiOworICAgICAgYnJlYWs7CisgICAg
Y2FzZSAnXHQnOgorICAgICAgcmVzdWx0ICs9ICJcXHQiOworICAgICAgYnJlYWs7CisgICAgLy8g
Y2FzZSAnLyc6CisgICAgLy8gRXZlbiB0aG91Z2ggXC8gaXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVz
Y2FwZSBpbiBKU09OLCBhIGJhcmUKKyAgICAvLyBzbGFzaCBpcyBhbHNvIGxlZ2FsLCBzbyBJIHNl
ZSBubyByZWFzb24gdG8gZXNjYXBlIGl0LgorICAgIC8vIChJIGhvcGUgSSBhbSBub3QgbWlzdW5k
ZXJzdGFuZGluZyBzb21ldGhpbmcuKQorICAgIC8vIGJsZXAgbm90ZXM6IGFjdHVhbGx5IGVzY2Fw
aW5nIFwvIG1heSBiZSB1c2VmdWwgaW4gamF2YXNjcmlwdCB0byBhdm9pZCA8LworICAgIC8vIHNl
cXVlbmNlLgorICAgIC8vIFNob3VsZCBhZGQgYSBmbGFnIHRvIGFsbG93IHRoaXMgY29tcGF0aWJp
bGl0eSBtb2RlIGFuZCBwcmV2ZW50IHRoaXMKKyAgICAvLyBzZXF1ZW5jZSBmcm9tIG9jY3Vycmlu
Zy4KKyAgICBkZWZhdWx0OgorICAgICAgaWYgKChpc0NvbnRyb2xDaGFyYWN0ZXIoKmMpKSB8fCAo
KmMgPT0gMCkpIHsKKyAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKKyAgICAgICAgb3Nz
IDw8ICJcXHUiIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6c2V0ZmlsbCgn
MCcpCisgICAgICAgICAgICA8PCBzdGQ6OnNldHcoNCkgPDwgc3RhdGljX2Nhc3Q8aW50PigqYyk7
CisgICAgICAgIHJlc3VsdCArPSBvc3Muc3RyKCk7CisgICAgICB9IGVsc2UgeworICAgICAgICBy
ZXN1bHQgKz0gKmM7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgcmVzdWx0
ICs9ICJcIiI7CisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIENsYXNzIFdyaXRlcgorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCitXcml0ZXI6On5Xcml0ZXIoKSB7fQorCisvLyBDbGFzcyBGYXN0V3JpdGVyCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworRmFzdFdyaXRlcjo6RmFzdFdyaXRlcigpCisgICAgOiB5YW1sQ29tcGF0aWJs
aXR5RW5hYmxlZF8oZmFsc2UpLCBkcm9wTnVsbFBsYWNlaG9sZGVyc18oZmFsc2UpLAorICAgICAg
b21pdEVuZGluZ0xpbmVGZWVkXyhmYWxzZSkge30KKwordm9pZCBGYXN0V3JpdGVyOjplbmFibGVZ
QU1MQ29tcGF0aWJpbGl0eSgpIHsgeWFtbENvbXBhdGlibGl0eUVuYWJsZWRfID0gdHJ1ZTsgfQor
Cit2b2lkIEZhc3RXcml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKCkgeyBkcm9wTnVsbFBsYWNl
aG9sZGVyc18gPSB0cnVlOyB9CisKK3ZvaWQgRmFzdFdyaXRlcjo6b21pdEVuZGluZ0xpbmVGZWVk
KCkgeyBvbWl0RW5kaW5nTGluZUZlZWRfID0gdHJ1ZTsgfQorCitzdGQ6OnN0cmluZyBGYXN0V3Jp
dGVyOjp3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8gPSAiIjsKKyAgd3Jp
dGVWYWx1ZShyb290KTsKKyAgaWYgKCFvbWl0RW5kaW5nTGluZUZlZWRfKQorICAgIGRvY3VtZW50
XyArPSAiXG4iOworICByZXR1cm4gZG9jdW1lbnRfOworfQorCit2b2lkIEZhc3RXcml0ZXI6Ondy
aXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7
CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIGlmICghZHJvcE51bGxQbGFjZWhvbGRlcnNfKQorICAg
ICAgZG9jdW1lbnRfICs9ICJudWxsIjsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSk7CisgICAg
YnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5n
KHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgor
ICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpOworICAgIGJy
ZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBm
b3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCog
ZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYg
KG9rKSBkb2N1bWVudF8gKz0gdmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZW5kLXN0cikpOworICAgIGJyZWFrOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVl
OgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKTsKKyAgICBi
cmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOiB7CisgICAgZG9jdW1lbnRfICs9ICdbJzsKKyAgICBp
bnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgZG9jdW1lbnRf
ICs9ICcsJzsKKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICB9CisgICAgZG9j
dW1lbnRfICs9ICddJzsKKyAgfSBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZh
bHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgZG9jdW1l
bnRfICs9ICd7JzsKKyAgICBmb3IgKFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJl
cnMuYmVnaW4oKTsgaXQgIT0gbWVtYmVycy5lbmQoKTsKKyAgICAgICAgICsraXQpIHsKKyAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAgICAgaWYgKGl0ICE9IG1lbWJlcnMu
YmVnaW4oKSkKKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgIGRvY3VtZW50XyArPSB2
YWx1ZVRvUXVvdGVkU3RyaW5nTihuYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG5h
bWUubGVuZ3RoKCkpKTsKKyAgICAgIGRvY3VtZW50XyArPSB5YW1sQ29tcGF0aWJsaXR5RW5hYmxl
ZF8gPyAiOiAiIDogIjoiOworICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtuYW1lXSk7CisgICAgfQor
ICAgIGRvY3VtZW50XyArPSAnfSc7CisgIH0gYnJlYWs7CisgIH0KK30KKworLy8gQ2xhc3MgU3R5
bGVkV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworU3R5bGVkV3JpdGVyOjpTdHlsZWRXcml0ZXIoKQor
ICAgIDogcmlnaHRNYXJnaW5fKDc0KSwgaW5kZW50U2l6ZV8oMyksIGFkZENoaWxkVmFsdWVzXygp
IHt9CisKK3N0ZDo6c3RyaW5nIFN0eWxlZFdyaXRlcjo6d3JpdGUoY29uc3QgVmFsdWUmIHJvb3Qp
IHsKKyAgZG9jdW1lbnRfID0gIiI7CisgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICBpbmRl
bnRTdHJpbmdfID0gIiI7CisgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKHJvb3QpOworICB3cml0
ZVZhbHVlKHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsK
KyAgZG9jdW1lbnRfICs9ICJcbiI7CisgIHJldHVybiBkb2N1bWVudF87Cit9CisKK3ZvaWQgU3R5
bGVkV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICBzd2l0Y2ggKHZh
bHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUoIm51bGwiKTsK
KyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmlu
Zyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToK
KyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAg
ICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7
CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNv
bnN0KiBzdHI7CisgICAgY2hhciBjb25zdCogZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRT
dHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYgKG9rKSBwdXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0
cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kLXN0cikpKTsKKyAgICBlbHNlIHB1
c2hWYWx1ZSgiIik7CisgICAgYnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAg
cHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAg
Y2FzZSBhcnJheVZhbHVlOgorICAgIHdyaXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7
CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVl
LmdldE1lbWJlck5hbWVzKCkpOworICAgIGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNo
VmFsdWUoInt9Iik7CisgICAgZWxzZSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAg
ICAgIGluZGVudCgpOworICAgICAgVmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVy
cy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYg
bmFtZSA9ICppdDsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1l
XTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAg
IHdyaXRlV2l0aEluZGVudCh2YWx1ZVRvUXVvdGVkU3RyaW5nKG5hbWUuY19zdHIoKSkpOworICAg
ICAgICBkb2N1bWVudF8gKz0gIiA6ICI7CisgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7
CisgICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKKyAgICAgICAgICB3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOworICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5k
ZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAgICB9CisgIH0gYnJlYWs7Cisg
IH0KK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNpemUgPT0g
MCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJvb2wgaXNBcnJheU11bHRp
TGluZSA9IGlzTXVsdGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAoaXNBcnJheU11bHRpTGluZSkg
eworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGJv
b2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVuc2lnbmVk
IGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxk
VmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNo
aWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3cml0ZVdp
dGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
IHdyaXRlSW5kZW50KCk7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVu
dCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBv
biBhIHNpbmdsZSBsaW5lCisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkg
PT0gc2l6ZSk7CisgICAgICBkb2N1bWVudF8gKz0gIlsgIjsKKyAgICAgIGZvciAodW5zaWduZWQg
aW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID4g
MCkKKyAgICAgICAgICBkb2N1bWVudF8gKz0gIiwgIjsKKyAgICAgICAgZG9jdW1lbnRfICs9IGNo
aWxkVmFsdWVzX1tpbmRleF07CisgICAgICB9CisgICAgICBkb2N1bWVudF8gKz0gIiBdIjsKKyAg
ICB9CisgIH0KK30KKworYm9vbCBTdHlsZWRXcml0ZXI6OmlzTXVsdGluZUFycmF5KGNvbnN0IFZh
bHVlJiB2YWx1ZSkgeworICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRp
TGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7
CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytp
bmRleCkgeworICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAg
IGlzTXVsdGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2Jq
ZWN0KCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDAp
OworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4
IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBh
ZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0g
MSkgKiAyOyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAoaW50IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZh
bHVlW2luZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVlOworICAgICAgfQorICAg
ICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hp
bGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9
IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSBy
aWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQorCit2b2lkIFN0eWxl
ZFdyaXRlcjo6cHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBpZiAoYWRk
Q2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNl
CisgICAgZG9jdW1lbnRfICs9IHZhbHVlOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVJ
bmRlbnQoKSB7CisgIGlmICghZG9jdW1lbnRfLmVtcHR5KCkpIHsKKyAgICBjaGFyIGxhc3QgPSBk
b2N1bWVudF9bZG9jdW1lbnRfLmxlbmd0aCgpIC0gMV07CisgICAgaWYgKGxhc3QgPT0gJyAnKSAv
LyBhbHJlYWR5IGluZGVudGVkCisgICAgICByZXR1cm47CisgICAgaWYgKGxhc3QgIT0gJ1xuJykg
Ly8gQ29tbWVudHMgbWF5IGFkZCBuZXctbGluZQorICAgICAgZG9jdW1lbnRfICs9ICdcbic7Cisg
IH0KKyAgZG9jdW1lbnRfICs9IGluZGVudFN0cmluZ187Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVy
Ojp3cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7CisgIHdyaXRlSW5k
ZW50KCk7CisgIGRvY3VtZW50XyArPSB2YWx1ZTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6Omlu
ZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBzdGQ6OnN0cmluZyhpbmRlbnRTaXplXywgJyAnKTsg
fQorCit2b2lkIFN0eWxlZFdyaXRlcjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChpbnQoaW5kZW50
U3RyaW5nXy5zaXplKCkpID49IGluZGVudFNpemVfKTsKKyAgaW5kZW50U3RyaW5nXy5yZXNpemUo
aW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRTaXplXyk7Cit9CisKK3ZvaWQgU3R5bGVkV3Jp
dGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAo
IXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47CisKKyAgZG9jdW1l
bnRfICs9ICJcbiI7CisgIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21t
ZW50ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUpOworICBzdGQ6OnN0cmluZzo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29t
bWVudC5lbmQoKSkgeworICAgIGRvY3VtZW50XyArPSAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0g
J1xuJyAmJgorICAgICAgIChpdGVyICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0g
Jy8nKSkKKyAgICAgIHdyaXRlSW5kZW50KCk7CisgICAgKytpdGVyOworICB9CisKKyAgLy8gQ29t
bWVudHMgYXJlIHN0cmlwcGVkIG9mIHRyYWlsaW5nIG5ld2xpbmVzLCBzbyBhZGQgb25lIGhlcmUK
KyAgZG9jdW1lbnRfICs9ICJcbiI7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAocm9vdC5o
YXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgIGRvY3VtZW50XyArPSAiICIg
KyByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJvb3Qu
aGFzQ29tbWVudChjb21tZW50QWZ0ZXIpKSB7CisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgICAg
ZG9jdW1lbnRfICs9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXIpOworICAgIGRvY3VtZW50
XyArPSAiXG4iOworICB9Cit9CisKK2Jvb2wgU3R5bGVkV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1l
bnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2Ft
ZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisK
Ky8vIENsYXNzIFN0eWxlZFN0cmVhbVdyaXRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1N0eWxlZFN0cmVh
bVdyaXRlcjo6U3R5bGVkU3RyZWFtV3JpdGVyKHN0ZDo6c3RyaW5nIGluZGVudGF0aW9uKQorICAg
IDogZG9jdW1lbnRfKE5VTEwpLCByaWdodE1hcmdpbl8oNzQpLCBpbmRlbnRhdGlvbl8oaW5kZW50
YXRpb24pLAorICAgICAgYWRkQ2hpbGRWYWx1ZXNfKCkge30KKwordm9pZCBTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlKHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBWYWx1ZSYgcm9vdCkgeworICBk
b2N1bWVudF8gPSAmb3V0OworICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50U3Ry
aW5nXyA9ICIiOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShyb290KTsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGluZGVudGVkXyA9
IHRydWU7CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNh
bWVMaW5lKHJvb3QpOworICAqZG9jdW1lbnRfIDw8ICJcbiI7CisgIGRvY3VtZW50XyA9IE5VTEw7
IC8vIEZvcmdldCB0aGUgc3RyZWFtLCBmb3Igc2FmZXR5LgorfQorCit2b2lkIFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1
ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcHVzaFZhbHVlKCJudWxsIik7Cisg
ICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6Cisg
ICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAg
YnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzRG91YmxlKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgewor
ICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/CisgICAgY2hhciBjb25z
dCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3Ry
aW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJp
bmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7CisgICAgZWxzZSBwdXNo
VmFsdWUoIiIpOworICAgIGJyZWFrOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7CisgICAgYnJlYWs7CisgIGNh
c2UgYXJyYXlWYWx1ZToKKyAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOworICAgIGJyZWFrOwor
ICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5n
ZXRNZW1iZXJOYW1lcygpKTsKKyAgICBpZiAobWVtYmVycy5lbXB0eSgpKQorICAgICAgcHVzaFZh
bHVlKCJ7fSIpOworICAgIGVsc2UgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7CisgICAg
ICBpbmRlbnQoKTsKKyAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMu
YmVnaW4oKTsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5h
bWUgPSAqaXQ7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07
CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICB3
cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKKyAgICAg
ICAgKmRvY3VtZW50XyA8PCAiIDogIjsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsK
KyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29t
bWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgICpkb2N1bWVudF8gPDwgIiwiOworICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5k
ZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAgICB9CisgIH0gYnJlYWs7Cisg
IH0KK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZShjb25zdCBW
YWx1ZSYgdmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNp
emUgPT0gMCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJvb2wgaXNBcnJh
eU11bHRpTGluZSA9IGlzTXVsdGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAoaXNBcnJheU11bHRp
TGluZSkgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAg
ICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVu
c2lnbmVkIGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3QgVmFsdWUm
IGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZh
bHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3
cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAgICAgICAgIGluZGVudGVk
XyA9IHRydWU7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBp
bmRlbnRlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXpl
KSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1
ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8PCAi
LCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIp
OworICAgIH0gZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFz
c2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgKmRvY3VtZW50XyA8PCAi
WyAiOworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRl
eCkgeworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgICpkb2N1bWVudF8gPDwgIiwg
IjsKKyAgICAgICAgKmRvY3VtZW50XyA8PCBjaGlsZFZhbHVlc19baW5kZXhdOworICAgICAgfQor
ICAgICAgKmRvY3VtZW50XyA8PCAiIF0iOworICAgIH0KKyAgfQorfQorCitib29sIFN0eWxlZFN0
cmVhbVdyaXRlcjo6aXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIGludCBz
aXplID0gdmFsdWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmln
aHRNYXJnaW5fOworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAw
OyBpbmRleCA8IHNpemUgJiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgY29uc3QgVmFs
dWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxk
VmFsdWUuaXNBcnJheSgpIHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkVmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRp
TGluZSkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAg
IGNoaWxkVmFsdWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7
CisgICAgaW50IGxpbmVMZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAn
Km4gKyAnIF0nCisgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKKyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAg
ICBpc011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2lu
ZGV4XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0
aCgpKTsKKyAgICB9CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxp
bmUgPSBpc011bHRpTGluZSB8fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICBy
ZXR1cm4gaXNNdWx0aUxpbmU7Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjpwdXNoVmFs
dWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisg
ICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICAqZG9jdW1lbnRf
IDw8IHZhbHVlOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQoKSB7
CisgIC8vIGJsZXAgaW50ZW5kZWQgdGhpcyB0byBsb29rIGF0IHRoZSBzby1mYXItd3JpdHRlbiBz
dHJpbmcKKyAgLy8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGFscmVhZHkgaW5kZW50ZWQs
IGJ1dAorICAvLyB3aXRoIGEgc3RyZWFtIHdlIGNhbm5vdCBkbyB0aGF0LiBTbyB3ZSByZWx5IG9u
IHNvbWUgc2F2ZWQgc3RhdGUuCisgIC8vIFRoZSBjYWxsZXIgY2hlY2tzIGluZGVudGVkXy4KKyAg
KmRvY3VtZW50XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187Cit9CisKK3ZvaWQgU3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7Cisg
IGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAqZG9jdW1lbnRfIDw8IHZhbHVlOwor
ICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OmluZGVu
dCgpIHsgaW5kZW50U3RyaW5nXyArPSBpbmRlbnRhdGlvbl87IH0KKwordm9pZCBTdHlsZWRTdHJl
YW1Xcml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXplKCkgPj0g
aW5kZW50YXRpb25fLnNpemUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmlu
Z18uc2l6ZSgpIC0gaW5kZW50YXRpb25fLnNpemUoKSk7Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBp
ZiAoIXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47CisKKyAgaWYg
KCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50
ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUpOworICBzdGQ6OnN0cmluZzo6Y29uc3Rf
aXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29tbWVu
dC5lbmQoKSkgeworICAgICpkb2N1bWVudF8gPDwgKml0ZXI7CisgICAgaWYgKCppdGVyID09ICdc
bicgJiYKKyAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcv
JykpCisgICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgaW5jbHVkZSBuZXdsaW5lCisg
ICAgICAqZG9jdW1lbnRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVyOworICB9CisgIGlu
ZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKHJvb3Qu
aGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkKKyAgICAqZG9jdW1lbnRfIDw8ICcg
JyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJv
b3QuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpKSB7CisgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAq
ZG9jdW1lbnRfIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXIpOworICB9CisgIGluZGVu
dGVkXyA9IGZhbHNlOworfQorCitib29sIFN0eWxlZFN0cmVhbVdyaXRlcjo6aGFzQ29tbWVudEZv
clZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudChj
b21tZW50QmVmb3JlKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJP
blNhbWVMaW5lKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpOwor
fQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXIKKworLy8vIFNjb3BlZCBlbnVtcyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCBDKysxMS4KK3N0
cnVjdCBDb21tZW50U3R5bGUgeworICAvLy8gRGVjaWRlIHdoZXRoZXIgdG8gd3JpdGUgY29tbWVu
dHMuCisgIGVudW0gRW51bSB7CisgICAgTm9uZSwgIC8vLzwgRHJvcCBhbGwgY29tbWVudHMuCisg
ICAgTW9zdCwgIC8vLzwgUmVjb3ZlciBvZGQgYmVoYXZpb3Igb2YgcHJldmlvdXMgdmVyc2lvbnMg
KG5vdCBpbXBsZW1lbnRlZCB5ZXQpLgorICAgIEFsbCAgLy8vPCBLZWVwIGFsbCBjb21tZW50cy4K
KyAgfTsKK307CisKK3N0cnVjdCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlciA6IHB1YmxpYyBTdHJl
YW1Xcml0ZXIKK3sKKyAgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCisgICAgICBzdGQ6OnN0cmlu
ZyBjb25zdCYgaW5kZW50YXRpb24sCisgICAgICBDb21tZW50U3R5bGU6OkVudW0gY3MsCisgICAg
ICBzdGQ6OnN0cmluZyBjb25zdCYgY29sb25TeW1ib2wsCisgICAgICBzdGQ6OnN0cmluZyBjb25z
dCYgbnVsbFN5bWJvbCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBlbmRpbmdMaW5lRmVlZFN5
bWJvbCwKKyAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywKKyAgICAgIHVuc2lnbmVkIGludCBw
cmVjaXNpb24pOworICBpbnQgd3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVhbSog
c291dCk7Citwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKTsK
KyAgdm9pZCB3cml0ZUFycmF5VmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKTsKKyAgYm9vbCBpc011
bHRpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShzdGQ6OnN0
cmluZyBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVX
aXRoSW5kZW50KHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7Cisg
IHZvaWQgdW5pbmRlbnQoKTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBj
b25zdCYgcm9vdCk7CisgIHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoVmFs
dWUgY29uc3QmIHJvb3QpOworICBzdGF0aWMgYm9vbCBoYXNDb21tZW50Rm9yVmFsdWUoY29uc3Qg
VmFsdWUmIHZhbHVlKTsKKworICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGls
ZFZhbHVlczsKKworICBDaGlsZFZhbHVlcyBjaGlsZFZhbHVlc187CisgIHN0ZDo6c3RyaW5nIGlu
ZGVudFN0cmluZ187CisgIGludCByaWdodE1hcmdpbl87CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0
aW9uXzsKKyAgQ29tbWVudFN0eWxlOjpFbnVtIGNzXzsKKyAgc3RkOjpzdHJpbmcgY29sb25TeW1i
b2xfOworICBzdGQ6OnN0cmluZyBudWxsU3ltYm9sXzsKKyAgc3RkOjpzdHJpbmcgZW5kaW5nTGlu
ZUZlZWRTeW1ib2xfOworICBib29sIGFkZENoaWxkVmFsdWVzXyA6IDE7CisgIGJvb2wgaW5kZW50
ZWRfIDogMTsKKyAgYm9vbCB1c2VTcGVjaWFsRmxvYXRzXyA6IDE7CisgIHVuc2lnbmVkIGludCBw
cmVjaXNpb25fOworfTsKK0J1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcigKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBpbmRlbnRhdGlvbiwKKyAgICAgIENv
bW1lbnRTdHlsZTo6RW51bSBjcywKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBjb2xvblN5bWJv
bCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBudWxsU3ltYm9sLAorICAgICAgc3RkOjpzdHJp
bmcgY29uc3QmIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgYm9vbCB1c2VTcGVjaWFsRmxv
YXRzLAorICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbikKKyAgOiByaWdodE1hcmdpbl8oNzQp
CisgICwgaW5kZW50YXRpb25fKGluZGVudGF0aW9uKQorICAsIGNzXyhjcykKKyAgLCBjb2xvblN5
bWJvbF8oY29sb25TeW1ib2wpCisgICwgbnVsbFN5bWJvbF8obnVsbFN5bWJvbCkKKyAgLCBlbmRp
bmdMaW5lRmVlZFN5bWJvbF8oZW5kaW5nTGluZUZlZWRTeW1ib2wpCisgICwgYWRkQ2hpbGRWYWx1
ZXNfKGZhbHNlKQorICAsIGluZGVudGVkXyhmYWxzZSkKKyAgLCB1c2VTcGVjaWFsRmxvYXRzXyh1
c2VTcGVjaWFsRmxvYXRzKQorICAsIHByZWNpc2lvbl8ocHJlY2lzaW9uKQoreworfQoraW50IEJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3Ry
ZWFtKiBzb3V0KQoreworICBzb3V0XyA9IHNvdXQ7CisgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNl
OworICBpbmRlbnRlZF8gPSB0cnVlOworICBpbmRlbnRTdHJpbmdfID0gIiI7CisgIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsK
KyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpzb3V0XyA8PCBlbmRpbmdMaW5lRmVlZFN5
bWJvbF87CisgIHNvdXRfID0gTlVMTDsKKyAgcmV0dXJuIDA7Cit9Cit2b2lkIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICBzd2l0Y2gg
KHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUobnVsbFN5
bWJvbF8pOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1
ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgdWlu
dFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQo
KSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpLCB1c2VTcGVjaWFsRmxvYXRzXywgcHJlY2lzaW9uXykp
OworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBp
cyBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAg
Y2hhciBjb25zdCogZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVu
ZCk7CisgICAgaWYgKG9rKSBwdXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZW5kLXN0cikpKTsKKyAgICBlbHNlIHB1c2hWYWx1ZSgiIik7Cisg
ICAgYnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVl
VG9TdHJpbmcodmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVl
OgorICAgIHdyaXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7CisgIGNhc2Ugb2JqZWN0
VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVz
KCkpOworICAgIGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNoVmFsdWUoInt9Iik7Cisg
ICAgZWxzZSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAgICAgIGluZGVudCgpOwor
ICAgICAgVmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAg
ICAgZm9yICg7OykgeworICAgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgbmFtZSA9ICppdDsKKyAg
ICAgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1lXTsKKyAgICAgICAgd3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIHdyaXRlV2l0aEluZGVu
dCh2YWx1ZVRvUXVvdGVkU3RyaW5nTihuYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG5hbWUubGVuZ3RoKCkpKSk7CisgICAgICAgICpzb3V0XyA8PCBjb2xvblN5bWJvbF87CisgICAg
ICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMu
ZW5kKCkpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGls
ZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqc291dF8gPDwg
IiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVl
KTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0i
KTsKKyAgICB9CisgIH0gYnJlYWs7CisgIH0KK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICB1bnNpZ25lZCBz
aXplID0gdmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10i
KTsKKyAgZWxzZSB7CisgICAgYm9vbCBpc011bHRpTGluZSA9IChjc18gPT0gQ29tbWVudFN0eWxl
OjpBbGwpIHx8IGlzTXVsdGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAoaXNNdWx0aUxpbmUpIHsK
KyAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBib29s
IGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7CisgICAgICB1bnNpZ25lZCBp
bmRleCA9IDA7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZh
bHVlID0gdmFsdWVbaW5kZXhdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGls
ZFZhbHVlKTsKKyAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCisgICAgICAgICAgd3JpdGVXaXRo
SW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICBp
ZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSB0cnVl
OworICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgaW5kZW50ZWRf
ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgeworICAg
ICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAg
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQor
ICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOworICAgIH0gZWxz
ZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFzc2VydChjaGlsZFZh
bHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgKnNvdXRfIDw8ICJbIjsKKyAgICAgIGlmICgh
aW5kZW50YXRpb25fLmVtcHR5KCkpICpzb3V0XyA8PCAiICI7CisgICAgICBmb3IgKHVuc2lnbmVk
IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+
IDApCisgICAgICAgICAgKnNvdXRfIDw8ICIsICI7CisgICAgICAgICpzb3V0XyA8PCBjaGlsZFZh
bHVlc19baW5kZXhdOworICAgICAgfQorICAgICAgaWYgKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkg
KnNvdXRfIDw8ICIgIjsKKyAgICAgICpzb3V0XyA8PCAiXSI7CisgICAgfQorICB9Cit9CisKK2Jv
b2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KFZhbHVlIGNvbnN0JiB2
YWx1ZSkgeworICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRpTGluZSA9
IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7CisgIGZv
ciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkg
eworICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAgIGlzTXVs
dGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkp
ICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDApOworICB9
CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUg
bGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBhZGRDaGls
ZFZhbHVlc18gPSB0cnVlOworICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAy
OyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXgg
PCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZhbHVlW2lu
ZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVlOworICAgICAgfQorICAgICAgd3Jp
dGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hpbGRWYWx1
ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNl
OworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1h
cmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQorCit2b2lkIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjpwdXNoVmFsdWUoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKSB7CisgIGlm
IChhZGRDaGlsZFZhbHVlc18pCisgICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7Cisg
IGVsc2UKKyAgICAqc291dF8gPDwgdmFsdWU7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlSW5kZW50KCkgeworICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBh
dCB0aGUgc28tZmFyLXdyaXR0ZW4gc3RyaW5nCisgIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdl
IGFyZSBhbHJlYWR5IGluZGVudGVkLCBidXQKKyAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3Qg
ZG8gdGhhdC4gU28gd2UgcmVseSBvbiBzb21lIHNhdmVkIHN0YXRlLgorICAvLyBUaGUgY2FsbGVy
IGNoZWNrcyBpbmRlbnRlZF8uCisKKyAgaWYgKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkgeworICAg
IC8vIEluIHRoaXMgY2FzZSwgZHJvcCBuZXdsaW5lcyB0b28uCisgICAgKnNvdXRfIDw8ICdcbicg
PDwgaW5kZW50U3RyaW5nXzsKKyAgfQorfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp3cml0ZVdpdGhJbmRlbnQoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKSB7CisgIGlmICghaW5k
ZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAqc291dF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9
IGZhbHNlOworfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQoKSB7IGlu
ZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXplKCkgPj0gaW5k
ZW50YXRpb25fLnNpemUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmluZ18u
c2l6ZSgpIC0gaW5kZW50YXRpb25fLnNpemUoKSk7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKFZhbHVlIGNvbnN0JiByb290KSB7Cisg
IGlmIChjc18gPT0gQ29tbWVudFN0eWxlOjpOb25lKSByZXR1cm47CisgIGlmICghcm9vdC5oYXND
b21tZW50KGNvbW1lbnRCZWZvcmUpKQorICAgIHJldHVybjsKKworICBpZiAoIWluZGVudGVkXykg
d3JpdGVJbmRlbnQoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENv
bW1lbnQoY29tbWVudEJlZm9yZSk7CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVy
ID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7Cisg
ICAgKnNvdXRfIDw8ICppdGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAgKGl0
ZXIgIT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgLy8gd3Jp
dGVJbmRlbnQoKTsgIC8vIHdvdWxkIHdyaXRlIGV4dHJhIG5ld2xpbmUKKyAgICAgICpzb3V0XyA8
PCBpbmRlbnRTdHJpbmdfOworICAgICsraXRlcjsKKyAgfQorICBpbmRlbnRlZF8gPSBmYWxzZTsK
K30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1
ZU9uU2FtZUxpbmUoVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgaWYgKGNzXyA9PSBDb21tZW50U3R5
bGU6Ok5vbmUpIHJldHVybjsKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNh
bWVMaW5lKSkKKyAgICAqc291dF8gPDwgIiAiICsgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRl
ck9uU2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewor
ICAgIHdyaXRlSW5kZW50KCk7CisgICAgKnNvdXRfIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50
QWZ0ZXIpOworICB9Cit9CisKKy8vIHN0YXRpYworYm9vbCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRl
cjo6aGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICByZXR1cm4gdmFs
dWUuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVu
dChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChj
b21tZW50QWZ0ZXIpOworfQorCisvLy8vLy8vLy8vLy8vLy8KKy8vIFN0cmVhbVdyaXRlcgorCitT
dHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcigpCisgICAgOiBzb3V0XyhOVUxMKQoreworfQorU3Ry
ZWFtV3JpdGVyOjp+U3RyZWFtV3JpdGVyKCkKK3sKK30KK1N0cmVhbVdyaXRlcjo6RmFjdG9yeTo6
fkZhY3RvcnkoKQore30KK1N0cmVhbVdyaXRlckJ1aWxkZXI6OlN0cmVhbVdyaXRlckJ1aWxkZXIo
KQoreworICBzZXREZWZhdWx0cygmc2V0dGluZ3NfKTsKK30KK1N0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKCkKK3t9CitTdHJlYW1Xcml0ZXIqIFN0cmVhbVdyaXRlckJ1
aWxkZXI6Om5ld1N0cmVhbVdyaXRlcigpIGNvbnN0Cit7CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0
aW9uID0gc2V0dGluZ3NfWyJpbmRlbnRhdGlvbiJdLmFzU3RyaW5nKCk7CisgIHN0ZDo6c3RyaW5n
IGNzX3N0ciA9IHNldHRpbmdzX1siY29tbWVudFN0eWxlIl0uYXNTdHJpbmcoKTsKKyAgYm9vbCBl
eWMgPSBzZXR0aW5nc19bImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0uYXNCb29sKCk7CisgIGJv
b2wgZG5wID0gc2V0dGluZ3NfWyJkcm9wTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOworICBi
b29sIHVzZiA9IHNldHRpbmdzX1sidXNlU3BlY2lhbEZsb2F0cyJdLmFzQm9vbCgpOyAKKyAgdW5z
aWduZWQgaW50IHByZSA9IHNldHRpbmdzX1sicHJlY2lzaW9uIl0uYXNVSW50KCk7CisgIENvbW1l
bnRTdHlsZTo6RW51bSBjcyA9IENvbW1lbnRTdHlsZTo6QWxsOworICBpZiAoY3Nfc3RyID09ICJB
bGwiKSB7CisgICAgY3MgPSBDb21tZW50U3R5bGU6OkFsbDsKKyAgfSBlbHNlIGlmIChjc19zdHIg
PT0gIk5vbmUiKSB7CisgICAgY3MgPSBDb21tZW50U3R5bGU6Ok5vbmU7CisgIH0gZWxzZSB7Cisg
ICAgdGhyb3dSdW50aW1lRXJyb3IoImNvbW1lbnRTdHlsZSBtdXN0IGJlICdBbGwnIG9yICdOb25l
JyIpOworICB9CisgIHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9sID0gIiA6ICI7CisgIGlmIChleWMp
IHsKKyAgICBjb2xvblN5bWJvbCA9ICI6ICI7CisgIH0gZWxzZSBpZiAoaW5kZW50YXRpb24uZW1w
dHkoKSkgeworICAgIGNvbG9uU3ltYm9sID0gIjoiOworICB9CisgIHN0ZDo6c3RyaW5nIG51bGxT
eW1ib2wgPSAibnVsbCI7CisgIGlmIChkbnApIHsKKyAgICBudWxsU3ltYm9sID0gIiI7CisgIH0K
KyAgaWYgKHByZSA+IDE3KSBwcmUgPSAxNzsKKyAgc3RkOjpzdHJpbmcgZW5kaW5nTGluZUZlZWRT
eW1ib2wgPSAiIjsKKyAgcmV0dXJuIG5ldyBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcigKKyAgICAg
IGluZGVudGF0aW9uLCBjcywKKyAgICAgIGNvbG9uU3ltYm9sLCBudWxsU3ltYm9sLCBlbmRpbmdM
aW5lRmVlZFN5bWJvbCwgdXNmLCBwcmUpOworfQorc3RhdGljIHZvaWQgZ2V0VmFsaWRXcml0ZXJL
ZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogdmFsaWRfa2V5cykKK3sKKyAgdmFsaWRfa2V5cy0+
Y2xlYXIoKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJpbmRlbnRhdGlvbiIpOworICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImNvbW1lbnRTdHlsZSIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImVuYWJs
ZVlBTUxDb21wYXRpYmlsaXR5Iik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiZHJvcE51bGxQbGFj
ZWhvbGRlcnMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJ1c2VTcGVjaWFsRmxvYXRzIik7Cisg
IHZhbGlkX2tleXMtPmluc2VydCgicHJlY2lzaW9uIik7Cit9Citib29sIFN0cmVhbVdyaXRlckJ1
aWxkZXI6OnZhbGlkYXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdAoreworICBKc29uOjpW
YWx1ZSBteV9pbnZhbGlkOworICBpZiAoIWludmFsaWQpIGludmFsaWQgPSAmbXlfaW52YWxpZDsg
IC8vIHNvIHdlIGRvIG5vdCBuZWVkIHRvIHRlc3QgZm9yIE5VTEwKKyAgSnNvbjo6VmFsdWUmIGlu
diA9ICppbnZhbGlkOworICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gdmFsaWRfa2V5czsKKyAgZ2V0
VmFsaWRXcml0ZXJLZXlzKCZ2YWxpZF9rZXlzKTsKKyAgVmFsdWU6Ok1lbWJlcnMga2V5cyA9IHNl
dHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOworICBzaXplX3QgbiA9IGtleXMuc2l6ZSgpOworICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkgeworICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBr
ZXkgPSBrZXlzW2ldOworICAgIGlmICh2YWxpZF9rZXlzLmZpbmQoa2V5KSA9PSB2YWxpZF9rZXlz
LmVuZCgpKSB7CisgICAgICBpbnZba2V5XSA9IHNldHRpbmdzX1trZXldOworICAgIH0KKyAgfQor
ICByZXR1cm4gMHUgPT0gaW52LnNpemUoKTsKK30KK1ZhbHVlJiBTdHJlYW1Xcml0ZXJCdWlsZGVy
OjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGtleSkKK3sKKyAgcmV0dXJuIHNldHRpbmdzX1trZXld
OworfQorLy8gc3RhdGljCit2b2lkIFN0cmVhbVdyaXRlckJ1aWxkZXI6OnNldERlZmF1bHRzKEpz
b246OlZhbHVlKiBzZXR0aW5ncykKK3sKKyAgLy8hIFtTdHJlYW1Xcml0ZXJCdWlsZGVyRGVmYXVs
dHNdCisgICgqc2V0dGluZ3MpWyJjb21tZW50U3R5bGUiXSA9ICJBbGwiOworICAoKnNldHRpbmdz
KVsiaW5kZW50YXRpb24iXSA9ICJcdCI7CisgICgqc2V0dGluZ3MpWyJlbmFibGVZQU1MQ29tcGF0
aWJpbGl0eSJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJkcm9wTnVsbFBsYWNlaG9sZGVycyJd
ID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJ1c2VTcGVjaWFsRmxvYXRzIl0gPSBmYWxzZTsKKyAg
KCpzZXR0aW5ncylbInByZWNpc2lvbiJdID0gMTc7CisgIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRl
ckRlZmF1bHRzXQorfQorCitzdGQ6OnN0cmluZyB3cml0ZVN0cmluZyhTdHJlYW1Xcml0ZXI6OkZh
Y3RvcnkgY29uc3QmIGJ1aWxkZXIsIFZhbHVlIGNvbnN0JiByb290KSB7CisgIHN0ZDo6b3N0cmlu
Z3N0cmVhbSBzb3V0OworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qgd3JpdGVyKGJ1aWxkZXIubmV3
U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3QsICZzb3V0KTsKKyAgcmV0dXJu
IHNvdXQuc3RyKCk7Cit9CisKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0m
IHNvdXQsIFZhbHVlIGNvbnN0JiByb290KSB7CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRl
cjsKKyAgU3RyZWFtV3JpdGVyUHRyIGNvbnN0IHdyaXRlcihidWlsZGVyLm5ld1N0cmVhbVdyaXRl
cigpKTsKKyAgd3JpdGVyLT53cml0ZShyb290LCAmc291dCk7CisgIHJldHVybiBzb3V0OworfQor
Cit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250
ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKworCisKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29w
ZW52cl9hcGlfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZy
X2FwaV9wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzOTZlNjc3MjJmMzY5NDcwNGQzZGFiN2EzZGVh
YmZhNzY5YTQ3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL29wZW52cl9hcGlfcHVibGljLmNwcApAQCAtMCwwICsxLDI5OCBAQAorLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjZGVmaW5lIFZSX0FQ
SV9FWFBPUlQgMQorI2luY2x1ZGUgIm9wZW52ci5oIgorI2luY2x1ZGUgIml2cmNsaWVudGNvcmUu
aCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAic2hhcmVkbGlidG9v
bHNfcHVibGljLmgiCisjaW5jbHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAi
aG1kZXJyb3JzX3B1YmxpYy5oIgorI2luY2x1ZGUgInZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIgor
I2luY2x1ZGUgPG11dGV4PgorCit1c2luZyB2cjo6RVZSSW5pdEVycm9yOwordXNpbmcgdnI6OklW
UlN5c3RlbTsKK3VzaW5nIHZyOjpJVlJDbGllbnRDb3JlOwordXNpbmcgdnI6OlZSSW5pdEVycm9y
X05vbmU7CisKK25hbWVzcGFjZSB2cgoreworCitzdGF0aWMgdm9pZCAqZ19wVlJNb2R1bGUgPSBO
VUxMOworc3RhdGljIElWUkNsaWVudENvcmUgKmdfcEhtZFN5c3RlbSA9IE5VTEw7CitzdGF0aWMg
c3RkOjpyZWN1cnNpdmVfbXV0ZXggZ19tdXRleFN5c3RlbTsKKworCit0eXBlZGVmIHZvaWQqICgq
VlJDbGllbnRDb3JlRmFjdG9yeUZuKShjb25zdCBjaGFyICpwSW50ZXJmYWNlTmFtZSwgaW50ICpw
UmV0dXJuQ29kZSk7CisKK3N0YXRpYyB1aW50MzJfdCBnX25WUlRva2VuID0gMDsKKwordWludDMy
X3QgVlJfR2V0SW5pdFRva2VuKCkKK3sKKyAgICAgICByZXR1cm4gZ19uVlJUb2tlbjsKK30KKwor
RVZSSW5pdEVycm9yIFZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCgpOwordm9pZCBDbGVhbnVwSW50
ZXJuYWxJbnRlcmZhY2VzKCk7CisKKwordWludDMyX3QgVlJfSW5pdEludGVybmFsMiggRVZSSW5p
dEVycm9yICpwZUVycm9yLCB2cjo6RVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUs
IGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBFVlJJ
bml0RXJyb3IgZXJyID0gVlJfTG9hZEhtZFN5c3RlbUludGVybmFsKCk7CisgICAgICAgaWYgKCBl
cnIgPT0gdnI6OlZSSW5pdEVycm9yX05vbmUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZXJy
ID0gZ19wSG1kU3lzdGVtLT5Jbml0KCBlQXBwbGljYXRpb25UeXBlLCBwU3RhcnR1cEluZm8gKTsK
KyAgICAgICB9CisKKyAgICAgICBpZiAoIHBlRXJyb3IgKQorICAgICAgICAgICAgICAqcGVFcnJv
ciA9IGVycjsKKworICAgICAgIGlmICggZXJyICE9IFZSSW5pdEVycm9yX05vbmUgKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggZ19wVlJNb2R1bGUgKTsKKyAgICAg
ICAgICAgICAgZ19wSG1kU3lzdGVtID0gTlVMTDsKKyAgICAgICAgICAgICAgZ19wVlJNb2R1bGUg
PSBOVUxMOworCisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgIH0KKworICAgICAgIHJl
dHVybiArK2dfblZSVG9rZW47Cit9CisKK1ZSX0lOVEVSRkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQ
RSBWUl9Jbml0SW50ZXJuYWwoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25U
eXBlIGVBcHBsaWNhdGlvblR5cGUgKTsKKwordWludDMyX3QgVlJfSW5pdEludGVybmFsKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlw
ZSApCit7CisgICAgICAgcmV0dXJuIFZSX0luaXRJbnRlcm5hbDIoIHBlRXJyb3IsIGVBcHBsaWNh
dGlvblR5cGUsIG51bGxwdHIgKTsKK30KKwordm9pZCBWUl9TaHV0ZG93bkludGVybmFsKCkKK3sK
KyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0
ZXhTeXN0ZW0gKTsKKyAgICAgICAKKyAgICAgICBpZiAoIGdfcEhtZFN5c3RlbSApCisgICAgICAg
eworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0tPkNsZWFudXAoKTsKKyAgICAgICAgICAgICAg
Z19wSG1kU3lzdGVtID0gTlVMTDsKKyAgICAgICB9CisgICAgICAgaWYgKCBnX3BWUk1vZHVsZSAp
CisgICAgICAgeworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSAp
OworICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7CisgICAgICAgfQorCisjaWYgIWRl
ZmluZWQoIFZSX0FQSV9QVUJMSUMgKQorICAgICAgIENsZWFudXBJbnRlcm5hbEludGVyZmFjZXMo
KTsKKyNlbmRpZgorCisgICAgICAgKytnX25WUlRva2VuOworfQorCitFVlJJbml0RXJyb3IgVlJf
TG9hZEhtZFN5c3RlbUludGVybmFsKCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUnVudGltZVBh
dGgsIHNDb25maWdQYXRoLCBzTG9nUGF0aDsKKworICAgICAgIGJvb2wgYlJlYWRQYXRoUmVnaXN0
cnkgPSBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocyggJnNSdW50aW1lUGF0aCwgJnND
b25maWdQYXRoLCAmc0xvZ1BhdGgsIE5VTEwsIE5VTEwgKTsKKyAgICAgICBpZiggIWJSZWFkUGF0
aFJlZ2lzdHJ5ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJy
b3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICAvLyBmaWd1
cmUgb3V0IHdoZXJlIHdlJ3JlIGdvaW5nIHRvIGxvb2sgZm9yIHZyY2xpZW50LmRsbAorICAgICAg
IC8vIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggYWN0dWFsbHkgZXhpc3RzLgorICAgICAgIGlm
KCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOwor
ICAgICAgIH0KKworICAgICAgIC8vIEJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBzZWxl
Y3QgZGVidWcgdnMuIHJlbGVhc2UgeWV0IHdlJ2xsIGp1c3QKKyAgICAgICAvLyB1c2UgZGVidWcg
aWYgaXQncyB0aGVyZQorI2lmIGRlZmluZWQoIExJTlVYNjQgKQorICAgICAgIHN0ZDo6c3RyaW5n
IHNUZXN0UGF0aCA9IFBhdGhfSm9pbiggc1J1bnRpbWVQYXRoLCAiYmluIiwgUExBVFNVQkRJUiAp
OworI2Vsc2UKKyAgICAgICBzdGQ6OnN0cmluZyBzVGVzdFBhdGggPSBQYXRoX0pvaW4oIHNSdW50
aW1lUGF0aCwgImJpbiIgKTsKKyNlbmRpZgorICAgICAgIGlmKCAhUGF0aF9Jc0RpcmVjdG9yeSgg
c1Rlc3RQYXRoICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ7CisgICAgICAgfQorCisjaWYgZGVmaW5lZCgg
V0lONjQgKQorICAgICAgIHN0ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVzdFBh
dGgsICJ2cmNsaWVudF94NjQiIERZTkFNSUNfTElCX0VYVCApOworI2Vsc2UKKyAgICAgICBzdGQ6
OnN0cmluZyBzRExMUGF0aCA9IFBhdGhfSm9pbiggc1Rlc3RQYXRoLCAidnJjbGllbnQiIERZTkFN
SUNfTElCX0VYVCApOworI2VuZGlmCisKKyAgICAgICAvLyBvbmx5IGxvb2sgaW4gdGhlIG92ZXJy
aWRlCisgICAgICAgdm9pZCAqcE1vZCA9IFNoYXJlZExpYl9Mb2FkKCBzRExMUGF0aC5jX3N0cigp
ICk7CisgICAgICAgLy8gbm90aGluZyBtb3JlIHRvIGRvIGlmIHdlIGNhbid0IGxvYWQgdGhlIERM
TAorICAgICAgIGlmKCAhcE1vZCApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gdnI6
OlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAg
ICBWUkNsaWVudENvcmVGYWN0b3J5Rm4gZm5GYWN0b3J5ID0gKCBWUkNsaWVudENvcmVGYWN0b3J5
Rm4gKSggU2hhcmVkTGliX0dldEZ1bmN0aW9uKCBwTW9kLCAiVlJDbGllbnRDb3JlRmFjdG9yeSIg
KSApOworICAgICAgIGlmKCAhZm5GYWN0b3J5ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNo
YXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICBpbnQgblJldHVy
bkNvZGUgPSAwOworICAgICAgIGdfcEhtZFN5c3RlbSA9IHN0YXRpY19jYXN0PCBJVlJDbGllbnRD
b3JlICogPiAoIGZuRmFjdG9yeSggdnI6OklWUkNsaWVudENvcmVfVmVyc2lvbiwgJm5SZXR1cm5D
b2RlICkgKTsKKyAgICAgICBpZiggIWdfcEhtZFN5c3RlbSApCisgICAgICAgeworICAgICAgICAg
ICAgICBTaGFyZWRMaWJfVW5sb2FkKCBwTW9kICk7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6
VlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICBn
X3BWUk1vZHVsZSA9IHBNb2Q7CisgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7Cit9CisK
Kwordm9pZCAqVlJfR2V0R2VuZXJpY0ludGVyZmFjZShjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VW
ZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IpCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJk
PHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBp
ZiAoIWdfcEhtZFN5c3RlbSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmIChwZUVycm9yKQor
ICAgICAgICAgICAgICAgICAgICAgKnBlRXJyb3IgPSB2cjo6VlJJbml0RXJyb3JfSW5pdF9Ob3RJ
bml0aWFsaXplZDsKKyAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgfQorCisgICAg
ICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+R2V0R2VuZXJpY0ludGVyZmFjZShwY2hJbnRlcmZhY2VW
ZXJzaW9uLCBwZUVycm9yKTsKK30KKworYm9vbCBWUl9Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChj
b25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFy
ZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAg
aWYgKCFnX3BIbWRTeXN0ZW0pCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+SXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQocGNoSW50ZXJmYWNlVmVyc2lvbikgPT0gVlJJbml0RXJyb3JfTm9uZTsKK30KKwor
Ym9vbCBWUl9Jc0htZFByZXNlbnQoKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJl
Y3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYoIGdfcEht
ZFN5c3RlbSApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBpZiB3ZSdyZSBhbHJlYWR5IGlu
aXRpYWxpemVkLCBqdXN0IGNhbGwgdGhyb3VnaAorICAgICAgICAgICAgICByZXR1cm4gZ19wSG1k
U3lzdGVtLT5CSXNIbWRQcmVzZW50KCk7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7
CisgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29y
aworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZXJyID0gVlJfTG9hZEhtZFN5c3RlbUludGVy
bmFsKCk7CisgICAgICAgICAgICAgIGlmKCBlcnIgIT0gVlJJbml0RXJyb3JfTm9uZSApCisgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgICAgYm9vbCBiSGFz
SG1kID0gZ19wSG1kU3lzdGVtLT5CSXNIbWRQcmVzZW50KCk7CisKKyAgICAgICAgICAgICAgZ19w
SG1kU3lzdGVtID0gTlVMTDsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggZ19wVlJN
b2R1bGUgKTsKKyAgICAgICAgICAgICAgZ19wVlJNb2R1bGUgPSBOVUxMOworCisgICAgICAgICAg
ICAgIHJldHVybiBiSGFzSG1kOworICAgICAgIH0KK30KKworLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgT3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworYm9vbCBWUl9Jc1J1bnRpbWVJbnN0
YWxsZWQoKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4g
bG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYoIGdfcEhtZFN5c3RlbSApCisgICAg
ICAgeworICAgICAgICAgICAgICAvLyBpZiB3ZSdyZSBhbHJlYWR5IGluaXRpYWxpemVkLCBPcGVu
VlIgaXMgb2J2aW91c2x5IGluc3RhbGxlZAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICB9CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNl
IHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3b3JrCisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5n
IHNSdW50aW1lUGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOworCisgICAgICAgICAgICAgIGJv
b2wgYlJlYWRQYXRoUmVnaXN0cnkgPSBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocygg
JnNSdW50aW1lUGF0aCwgJnNDb25maWdQYXRoLCAmc0xvZ1BhdGgsIE5VTEwsIE5VTEwgKTsKKyAg
ICAgICAgICAgICAgaWYoICFiUmVhZFBhdGhSZWdpc3RyeSApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJj
bGllbnQuZGxsCisgICAgICAgICAgICAgIC8vIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggYWN0
dWFsbHkgZXhpc3RzLgorICAgICAgICAgICAgICBpZiggIVBhdGhfSXNEaXJlY3RvcnkoIHNSdW50
aW1lUGF0aCApICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gdGhlIGluc3RhbGxh
dGlvbiBtYXkgYmUgY29ycnVwdCBpbiBzb21lIHdheSwgYnV0IGl0IGNlcnRhaW5seSBsb29rcyBp
bnN0YWxsZWQKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgfQorfQorCisKKy8q
KiBSZXR1cm5zIHdoZXJlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KK2NvbnN0IGNo
YXIgKlZSX1J1bnRpbWVQYXRoKCkKK3sKKyAgICAgICAvLyBvdGhlcndpc2Ugd2UgbmVlZCB0byBk
byBhIGJpdCBtb3JlIHdvcmsKKyAgICAgICBzdGF0aWMgc3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRo
OworICAgICAgIHN0ZDo6c3RyaW5nIHNDb25maWdQYXRoLCBzTG9nUGF0aDsKKworICAgICAgIGJv
b2wgYlJlYWRQYXRoUmVnaXN0cnkgPSBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocygg
JnNSdW50aW1lUGF0aCwgJnNDb25maWdQYXRoLCAmc0xvZ1BhdGgsIE5VTEwsIE5VTEwgKTsKKyAg
ICAgICBpZiAoICFiUmVhZFBhdGhSZWdpc3RyeSApCisgICAgICAgeworICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICB9CisKKyAgICAgICAvLyBmaWd1cmUgb3V0IHdoZXJlIHdl
J3JlIGdvaW5nIHRvIGxvb2sgZm9yIHZyY2xpZW50LmRsbAorICAgICAgIC8vIHNlZSBpZiB0aGUg
c3BlY2lmaWVkIHBhdGggYWN0dWFsbHkgZXhpc3RzLgorICAgICAgIGlmICggIVBhdGhfSXNEaXJl
Y3RvcnkoIHNSdW50aW1lUGF0aCApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgIH0KKworICAgICAgIHJldHVybiBzUnVudGltZVBhdGguY19zdHIoKTsK
K30KKworCisvKiogUmV0dXJucyB0aGUgc3ltYm9sIHZlcnNpb24gb2YgYW4gSE1EIGVycm9yLiAq
LworY29uc3QgY2hhciAqVlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVy
cm9yICkKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxv
Y2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmKCBnX3BIbWRTeXN0ZW0gKQorICAgICAg
ICAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRJREZvclZSSW5pdEVycm9yKCBlcnJvciAp
OworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIEdldElERm9yVlJJbml0RXJyb3Io
IGVycm9yICk7Cit9CisKKworLyoqIFJldHVybnMgdGhlIGVuZ2xpc2ggc3RyaW5nIHZlcnNpb24g
b2YgYW4gSE1EIGVycm9yLiAqLworY29uc3QgY2hhciAqVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xp
c2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9yIGVycm9yICkKK3sKKyAgICAgICBzdGQ6OmxvY2tf
Z3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAg
ICAgIGlmICggZ19wSG1kU3lzdGVtICkKKyAgICAgICAgICAgICAgcmV0dXJuIGdfcEhtZFN5c3Rl
bS0+R2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCBlcnJvciApOworICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgcmV0dXJuIEdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggZXJyb3IgKTsK
K30KKworCitWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJfR2V0U3RyaW5n
Rm9ySG1kRXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZXJyb3IgKTsKKworLyoqIFJldHVybnMgdGhl
IGVuZ2xpc2ggc3RyaW5nIHZlcnNpb24gb2YgYW4gSE1EIGVycm9yLiAqLworY29uc3QgY2hhciAq
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IoIEVWUkluaXRFcnJvciBlcnJvciApCit7CisgICAgICAg
cmV0dXJuIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIGVycm9yICk7Cit9
CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9kaXJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNv
bW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YmQyM2Q0MGVlNDlmNDA4MGY3
MWIyNjYwMzNkNjRkYTFjZmVmYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSwxMDEg
QEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LworI2luY2x1ZGUgImRpcnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgInN0cnRvb2xzX3B1Ymxp
Yy5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKKworI2luY2x1ZGUgPGVycm5vLmg+
CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZmRlZiBfV0lOMzIKKyNpbmNsdWRlICJ3aW5kb3dz
LmgiCisjZWxzZQorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5j
bHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorCisjaWYg
ZGVmaW5lZCggT1NYICkKKyNpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+CisjZW5kaWYKKworCisv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiB1dGlsaXR5IGZ1bmN0aW9uIHRvIGNy
ZWF0ZSBkaXJzICYgc3ViZGlycworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBCQ3JlYXRl
RGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICkKK3sKKyAgICAgICAvLyBE
b2VzIGl0IGFscmVhZHkgZXhpc3Q/CisgICAgICAgaWYgKCBQYXRoX0lzRGlyZWN0b3J5KCBwY2hQ
YXRoICkgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIC8vIGNvcHkgdGhl
IHBhdGggaW50byBzb21ldGhpbmcgd2UgY2FuIG11bmdlCisgICAgICAgaW50IGxlbiA9IChpbnQp
c3RybGVuKCBwY2hQYXRoICk7CisgICAgICAgY2hhciAqcGF0aCA9IChjaGFyICopbWFsbG9jKCBs
ZW4gKyAxICk7CisgICAgICAgc3RyY3B5KCBwYXRoLCBwY2hQYXRoICk7CisKKyAgICAgICAvLyBX
YWxrIGJhY2t3YXJkcyB0byBmaXJzdCBub24tZXhpc3RpbmcgZGlyIHRoYXQgd2UgZmluZAorICAg
ICAgIGNoYXIgKnMgPSBwYXRoICsgbGVuIC0gMTsKKworICAgICAgIGNvbnN0IGNoYXIgc2xhc2gg
PSBQYXRoX0dldFNsYXNoKCk7CisgICAgICAgd2hpbGUgKCBzID4gcGF0aCApCisgICAgICAgewor
ICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgKnMgPSAnXDAnOworICAgICAgICAgICAgICAgICAgICAgYm9vbCBiRXhp
c3RzID0gUGF0aF9Jc0RpcmVjdG9yeSggcGF0aCApOworICAgICAgICAgICAgICAgICAgICAgKnMg
PSBzbGFzaDsKKworICAgICAgICAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3M7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgLS1zOworICAgICAgIH0KKworICAgICAgIC8vIGFu
ZCB0aGVuIG1vdmUgZm9yd2FyZHMgZnJvbSB0aGVyZQorCisgICAgICAgd2hpbGUgKCAqcyApCisg
ICAgICAgeworICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOworICAgICAgICAgICAgICAgICAgICAg
QkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOworICAgICAgICAgICAgICAgICAgICAgKnMgPSBzbGFz
aDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzKys7CisgICAgICAgfQorCisgICAg
ICAgYm9vbCBiUmV0VmFsID0gQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOworICAgICAgIGZyZWUo
IHBhdGggKTsKKyAgICAgICByZXR1cm4gYlJldFZhbDsKK30KKworCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLyBQdXJwb3NlOiBDcmVhdGVzIHRoZSBkaXJlY3RvcnksIHJldHVybmluZyB0cnVl
IGlmIGl0IGlzIGNyZWF0ZWQsIG9yIGlmIGl0IGFscmVhZHkgZXhpc3RlZAorLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQYXRoICkK
K3sKKyNpZmRlZiBXSU4zMgorICAgICAgIHN0ZDo6d3N0cmluZyB3UGF0aCA9IFVURjh0bzE2KCBw
Y2hQYXRoICk7CisgICAgICAgaWYgKCA6OkNyZWF0ZURpcmVjdG9yeVcoIHdQYXRoLmNfc3RyKCks
IE5VTEwgKSApCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgaWYgKCA6Okdl
dExhc3RFcnJvcigpID09IEVSUk9SX0FMUkVBRFlfRVhJU1RTICkKKyAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgICAgIGludCBpID0g
bWtkaXIoIHBjaFBhdGgsIFNfSVJXWFUgfCBTX0lSV1hHIHwgU19JUldYTyApOworICAgICAgIGlm
ICggaSA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgaWYgKCBlcnJu
byA9PSBFRVhJU1QgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDQ4YjQxYjc4
MTRmZGUwNzI3NzY0YWU3OTRlZGU4ZTBkZmQ0ZTYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApAQCAtMCww
ICsxLDE3IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09
PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8
c3RyaW5nPgorCisKKyNpZiAhZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+
CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorCisKK2V4dGVybiBib29sIEJDcmVhdGVE
aXJlY3RvcnlSZWN1cnNpdmUoIGNvbnN0IGNoYXIgKnBjaFBhdGggKTsKK2V4dGVybiBib29sIEJD
cmVhdGVEaXJlY3RvcnkoIGNvbnN0IGNoYXIgKnBjaFBhdGggKTsKKworCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5j
cHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1
YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWVkMTZkOWY4NTYyNmZjYTA2MDRjOWYxZWNmNjY0MDJjOWJh
OGFmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsxLDQ2IEBACisvLz09PT09PT09
PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJl
bnZ2YXJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2lmIGRlZmluZWQo
X1dJTjMyKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI3VuZGVmIEdldEVudmlyb25tZW50VmFy
aWFibGUKKyN1bmRlZiBTZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjZW5kaWYKKworCitzdGQ6OnN0
cmluZyBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lICkKK3sK
KyNpZiBkZWZpbmVkKF9XSU4zMikKKyAgICAgICBjaGFyIHJjaFZhbHVlWzMyNzY3XTsgLy8gbWF4
IHNpemUgZm9yIGFuIGVudiB2YXIgb24gV2luZG93cworICAgICAgIERXT1JEIGNDaGFycyA9IEdl
dEVudmlyb25tZW50VmFyaWFibGVBKCBwY2hWYXJOYW1lLCByY2hWYWx1ZSwgc2l6ZW9mKCByY2hW
YWx1ZSApICk7CisgICAgICAgaWYoIGNDaGFycyA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJu
ICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIHJjaFZhbHVlOworI2VsaWYg
ZGVmaW5lZChQT1NJWCkKKyAgICAgICBjaGFyICpwY2hWYWx1ZSA9IGdldGVudiggcGNoVmFyTmFt
ZSApOworICAgICAgIGlmKCBwY2hWYWx1ZSApCisgICAgICAgICAgICAgIHJldHVybiBwY2hWYWx1
ZTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyNlbHNlCisjZXJyb3Ig
IlVuc3VwcG9ydGVkIFBsYXRmb3JtIgorI2VuZGlmCit9CisKKworYm9vbCBTZXRFbnZpcm9ubWVu
dFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lLCBjb25zdCBjaGFyICpwY2hWYXJWYWx1
ZSApCit7CisjaWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgcmV0dXJuIDAgIT0gU2V0RW52aXJv
bm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUsIHBjaFZhclZhbHVlICk7CisjZWxpZiBkZWZpbmVk
KFBPU0lYKQorICAgICAgIGlmKCBwY2hWYXJWYWx1ZSA9PSBOVUxMICkKKyAgICAgICAgICAgICAg
cmV0dXJuIDAgPT0gdW5zZXRlbnYoIHBjaFZhck5hbWUgKTsKKyAgICAgICBlbHNlCisgICAgICAg
ICAgICAgIHJldHVybiAwID09IHNldGVudiggcGNoVmFyTmFtZSwgcGNoVmFyVmFsdWUsIDEgKTsK
KyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtIgorI2VuZGlmCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1
YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29s
c19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGU5ODFhYzNlMzk3MDZkNTlhMDBjMmM0MWY4NTU4ZTRj
NWQyMDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92
cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDcgQEAKKy8vPT09PT09PT09
IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxzdHJpbmc+CisKK3N0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFi
bGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUgKTsKK2Jvb2wgU2V0RW52aXJvbm1lbnRWYXJpYWJs
ZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSwgY29uc3QgY2hhciAqcGNoVmFyVmFsdWUgKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3Jz
X3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVy
cm9yc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMmUxYzRiM2E4MTMwOGMwMTlkNzJiY2NjZDdj
NmFlNzA5ODE5ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvLz09
PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNs
dWRlICJvcGVudnIuaCIKKyNpbmNsdWRlICJobWRlcnJvcnNfcHVibGljLmgiCisjaW5jbHVkZSA8
c3RkaW8uaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKK3VzaW5nIG5hbWVzcGFjZSB2cjsKKwor
I2RlZmluZSBSRVRVUk5fRU5VTV9BU19TVFJJTkcoZW51bVZhbHVlKSBjYXNlIGVudW1WYWx1ZTog
cmV0dXJuICNlbnVtVmFsdWU7CisKKworY29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0Zvckht
ZEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApCit7CisgICAgICAgc3dpdGNoKCBlRXJy
b3IgKQorICAgICAgIHsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX05vbmU6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIk5vIEVy
cm9yICgwKSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90
Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0YWxsYXRpb24gTm90IEZvdW5k
ICgxMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVw
dDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkluc3RhbGxhdGlvbiBDb3JydXB0ICgxMDEp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZDogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gInZyY2xpZW50IFNoYXJlZCBMaWIgTm90IEZvdW5kICgx
MDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5kOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJGaWxlIE5vdCBGb3VuZCAoMTAzKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJGYWN0b3J5IEZ1bmN0aW9uIE5vdCBGb3VuZCAoMTA0
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiSW50ZXJmYWNlIE5vdCBGb3VuZCAoMTA1KSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2U6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCBJbnRlcmZhY2UgKDEwNikiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZDogICAgICAgcmV0
dXJuICJVc2VyIENvbmZpZyBEaXJlY3RvcnkgSW52YWxpZCAoMTA3KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kICgxMDgpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfTm90SW5pdGlhbGl6ZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiTm90IEluaXRpYWxpemVkICgxMDkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRf
UGF0aFJlZ2lzdHJ5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0YWxs
YXRpb24gcGF0aCBjb3VsZCBub3QgYmUgbG9jYXRlZCAoMTEwKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiQ29uZmlnIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDExMSkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGg6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkxvZyBwYXRoIGNvdWxkIG5vdCBiZSBsb2NhdGVkICgxMTIp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGU6
ICAgICAgICAgICAgICByZXR1cm4gIlVuYWJsZSB0byB3cml0ZSBwYXRoIHJlZ2lzdHJ5ICgxMTMp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQ6ICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJBcHAgaW5mbyBtYW5hZ2VyIGluaXQgZmFpbGVkICgxMTQp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUmV0cnk6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnRlcm5hbCBSZXRyeSAoMTE1KSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlcjogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIlVzZXIgQ2FuY2VsZWQgSW5pdCAoMTE2KSI7CisgICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9Jbml0X0Fub3RoZXJBcHBMYXVuY2hpbmc6ICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICJBbm90aGVyIGFwcCB3YXMgYWxyZWFkeSBsYXVuY2hpbmcgKDExNykiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQ6ICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJTZXR0aW5ncyBtYW5hZ2VyIGluaXQgZmFpbGVkICgxMTgpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duOiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBzeXN0ZW0gc2h1dHRpbmcgZG93biAoMTE5KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIlRvbyBtYW55IHRyYWNrZWQgb2JqZWN0cyAoMTIwKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcDog
ICAgICAgICAgICAgIHJldHVybiAiTm90IHN0YXJ0aW5nIHZyc2VydmVyIGZvciBiYWNrZ3JvdW5k
IGFwcCAoMTIxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdp
dGhDb21wb3NpdG9yOiAgICAgICByZXR1cm4gIlRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlIGlzIGlu
Y29tcGF0aWJsZSB3aXRoIHRoZSBjb21wb3NpdG9yIGFuZCB0aGUgY29tcG9zaXRvciBpcyBydW5u
aW5nICgxMjIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9V
dGlsaXR5QXBwczogICAgICAgcmV0dXJuICJUaGlzIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxl
IHRvIHV0aWxpdHkgYXBwbGljYXRpb25zICgxMjMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0luaXRfSW50ZXJuYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJ2cnNlcnZlciBpbnRlcm5hbCBlcnJvciAoMTI0KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lOiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSG1kIERyaXZlcklkIGlzIGludmFsaWQgKDEyNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkOiAgICAgICByZXR1cm4gIkhtZCBOb3Qg
Rm91bmQgUHJlc2VuY2UgRmFpbGVkICgxMjYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lu
aXRfVlJNb25pdG9yTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBNb25p
dG9yIE5vdCBGb3VuZCAoMTI3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9u
aXRvclN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIE1vbml0b3Igc3RhcnR1
cCBmYWlsZWQgKDEyOCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldh
dGNoZG9nTm90U3VwcG9ydGVkOiByZXR1cm4gIkxvdyBQb3dlciBXYXRjaGRvZyBOb3QgU3VwcG9y
dGVkICgxMjkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0
aW9uVHlwZTogICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCBBcHBsaWNhdGlvbiBUeXBlICgx
MzApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRv
Z0FwcHM6ICAgICAgIHJldHVybiAiTm90IGF2YWlsYWJsZSB0byB3YXRjaGRvZyBhcHBzICgxMzEp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGlu
Z3M6ICAgICAgIHJldHVybiAiV2F0Y2hkb2cgZGlzYWJsZWQgaW4gc2V0dGluZ3MgKDEzMikiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5kOiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiVlIgRGFzaGJvYXJkIE5vdCBGb3VuZCAoMTMzKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZDogICAgICAg
ICAgICAgIHJldHVybiAiVlIgRGFzaGJvYXJkIHN0YXJ0dXAgZmFpbGVkICgxMzQpIjsKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiVlIgSG9tZSBOb3QgRm91bmQgKDEzNSkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUkhvbWVTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAiVlIgaG9tZSBzdGFydHVwIGZhaWxlZCAoMTM2KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1JlYm9vdGluZ0J1c3k6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiUmVib290aW5nIEluIFByb2dyZXNzICgxMzcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfRmlybXdhcmVVcGRhdGVCdXN5OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
RmlybXdhcmUgVXBkYXRlIEluIFByb2dyZXNzICgxMzgpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3k6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJGaXJtd2FyZSBSZWNvdmVyeSBJbiBQcm9ncmVzcyAoMTM5KSI7CisKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0RyaXZlcl9GYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIEZhaWxlZCAoMjAwKSI7CisgICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBOb3QgS25vd24gKDIwMSkiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd246ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgTm90IEtub3duICgyMDIpIjsKKyAgICAgICBj
YXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgTm90IExvYWRlZCAoMjAzKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZTogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgcnVudGltZSBpcyBvdXQgb2YgZGF0ZSAoMjA0
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2U6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgYWxyZWFkeSBpbiB1c2Ug
YnkgYW5vdGhlciBhcHBsaWNhdGlvbiAoMjA1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9E
cml2ZXJfTm90Q2FsaWJyYXRlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiRGV2aWNlIGlzIG5vdCBjYWxpYnJhdGVkICgyMDYpIjsKKyAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiRGV2aWNlIENhbGlicmF0aW9uIGlzIGludmFsaWQgKDIwNykiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9y
IG5vdCBmb3VuZCAoMjA4KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tl
ZERldmljZUludGVyZmFjZVVua25vd246ICAgICAgIHJldHVybiAiRHJpdmVyIFRyYWNrZWQgRGV2
aWNlIEludGVyZmFjZSB1bmtub3duICgyMDkpIjsKKyAgICAgICAvLyBjYXNlIFZSSW5pdEVycm9y
X0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeDogICAgICAgcmV0dXJuICJITUQgZGV0
ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG5vdCBmb3VuZCBhZnRlciBhdHRlbXB0IHRvIGZp
eCAoMjEwKSI7IC8vIHRha2VuIG91dCB1cG9uIEJlbidzIHJlcXVlc3Q6IEhlIHRoaW5rcyB0aGF0
IHRoZXJlIGlzIG5vIG5lZWQgdG8gc2VwYXJhdGUgdGhhdCBlcnJvciBmcm9tIDIwOAorICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHM6ICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICJIbWQgRHJpdmVySWQgaXMgb3VyIG9mIGJvdW5kcyAoMjExKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBkZXRlY3RlZCBvdmVyIFVTQiwgYnV0
IE1vbml0b3IgbWF5IGJlIG1pcnJvcmVkIGluc3RlYWQgb2YgZXh0ZW5kZWQgKDIxMikiOworCisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIFNlcnZlciBJbml0IEZhaWxl
ZCAoMzAwKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb25u
ZWN0IHRvIFZSIFNlcnZlciBGYWlsZWQgKDMwMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiU2hhcmVkIElQQyBTdGF0ZSBJbml0IEZhaWxlZCAoMzAyKSI7CisgICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9zaXRvciBJbml0IEZh
aWxlZCAoMzAzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVk
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVk
IElQQyBNdXRleCBJbml0IEZhaWxlZCAoMzA0KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
UENfRmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIEZhaWxlZCAoMzA1KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb21wb3NpdG9yIENvbm5lY3QgRmFpbGVkICgz
MDYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52YWxpZENvbm5l
Y3RSZXNwb25zZTogICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb21wb3NpdG9yIElu
dmFsaWQgQ29ubmVjdCBSZXNwb25zZSAoMzA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
UENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0czogICAgICAgcmV0dXJuICJTaGFy
ZWQgSVBDIENvbm5lY3QgRmFpbGVkIEFmdGVyIE11bHRpcGxlIEF0dGVtcHRzICgzMDgpIjsKKwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgZmFpbGVkIHRvIGluaXRpYWxp
emUgKDQwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3
YXJlUmVxdWlyZWQ6ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciBmYWlsZWQgdG8gZmluZCBEWDEx
IGhhcmR3YXJlICg0MDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHJlcXVpcmVzIG1h
bmRhdG9yeSBmaXJtd2FyZSB1cGRhdGUgKDQwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
Q29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZDogICAgICAgICAgICAgIHJldHVybiAiQ29tcG9z
aXRvciBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIGJ1dCBvdmVybGF5IGluaXQgZmFpbGVkICg0
MDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0
RmFpbGVkOiAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVk
LCBidXQgc2NyZWVuc2hvdCBpbml0IGZhaWxlZCAoNDA0KSI7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRlRGV2aWNlOiAgICAgICByZXR1cm4gIkNvbXBv
c2l0b3IgdW5hYmxlIHRvIGNyZWF0ZSBncmFwaGljcyBkZXZpY2UgKDQwNSkiOworCisgICAgICAg
Ly8gT2N1bHVzCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVU
b0Nvbm5lY3RUb09jdWx1c1J1bnRpbWU6ICAgICAgIHJldHVybiAiVW5hYmxlIHRvIGNvbm5lY3Qg
dG8gT2N1bHVzIFJ1bnRpbWUgKDEwMDApIjsKKworICAgICAgIC8vIExpZ2h0aG91c2UKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNl
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGNhbiBu
b3Qgb3BlbiBkZXZpY2UgKDExMDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0OiAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IHVuYWJsZSB0byByZXF1ZXN0IGNvbmZpZyAoMTEwMikiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWc6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgbm8gc3Rv
cmVkIGNvbmZpZyAoMTEwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2s6ICAgICAgIHJldHVybiAiSE1EIGZv
dW5kLCBidXQgZmFpbGVkIGNvbmZpZ3VyYXRpb24gY2hlY2sgKDExMTMpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb0JpZzogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgY29uZmln
IHRvbyBiaWcgKDExMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gc21hbGwgKDExMDUpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWI6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgdW5hYmxlIHRv
IGluaXQgWkxpYiAoMTEwNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb246ICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMDcpIjsKKyAgICAgICBj
YXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJE
YXRhU3RhcnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdp
dGggdGhlIGRhdGEgKDExMDgpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydDogICAgICAgICAgICAgIHJldHVy
biAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEwOSkiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2Vy
RGF0YU5leHQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdp
dGggdGhlIGRhdGEgKDExMTApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlOiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTExMSkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJv
cjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBi
dXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTExMikiOworCisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5kOiByZXR1cm4gIlVuYWJsZSB0byBm
aW5kIFN0ZWFtIGluc3RhbGxhdGlvbiAoMjAwMCkiOworCisgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgYnVmWzEyOF07Cisg
ICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVycm9yICglZCkiLCBl
RXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7CisgICAgICAgICAgICAg
IH0KKyAgICAgICB9CisKK30KKworCitjb25zdCBjaGFyICpHZXRJREZvclZSSW5pdEVycm9yKCB2
cjo6RVZSSW5pdEVycm9yIGVFcnJvciApCit7CisgICAgICAgc3dpdGNoKCBlRXJyb3IgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9O
b25lICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
VW5rbm93biApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJD
bGllbnRETExOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFj
ZU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCAp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
SG1kTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Db25m
aWdQYXRoICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9Ob0xvZ1BhdGggKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZh
aWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0luaXRfUmV0cnkgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5jaGluZyApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2V0
dGluZ3NJbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZv
ckJhY2tncm91bmRBcHAgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9yICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVU
b1V0aWxpdHlBcHBzICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcm5hbCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0
dXBGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlv
blR5cGUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0luaXRfVlJEYXNoYm9hcmROb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkhv
bWVOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfVlJIb21lU3RhcnR1cEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUmVib290aW5nQnVzeSApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVV
cGRhdGVCdXN5ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9GaXJtd2FyZVJlY292ZXJ5QnVzeSApOworCisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSG1k
Tm90Rm91bmRQcmVzZW5jZUZhaWxlZCApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25v
d24pOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0Ry
aXZlcl9Ob3RMb2FkZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0RyaXZlcl9SdW50aW1lT3V0T2ZEYXRlKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJh
dGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9E
cml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERl
dmljZUludGVyZmFjZVVua25vd24gKTsKKyAgICAgICAgICAgICAgLy8gUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXggKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJf
SG1kRHJpdmVySWRPdXRPZkJvdW5kcyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQgKTsKKworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0
RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9JUENfQ29ubmVjdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFp
bGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9J
UENfTXV0ZXhJbml0RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9JUENfRmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQpOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9y
SW52YWxpZENvbm5lY3RSZXNwb25zZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMp
OworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9GYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCApOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdh
cmVSZXF1aXJlc1VwZGF0ZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNo
b3RzSW5pdEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfVW5hYmxlVG9DcmVhdGVEZXZpY2UgKTsKKworICAgICAgICAg
ICAgICAvLyBPY3VsdXMKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1c1J1bnRpbWUpOwor
CisgICAgICAgICAgICAgIC8vIExpZ2h0aG91c2UKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRl
dmljZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQpOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWls
ZWRTYW5pdHlDaGVjayApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb0JpZyApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0
WkxpYiApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uICk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0
VXNlckRhdGFOZXh0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICk7CisKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZv
dW5kICk7CisKKyAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWMgY2hhciBidWZbMTI4XTsKKyAgICAgICAgICAgICAgICAgICAgIHNwcmlu
dGYoIGJ1ZiwgIlVua25vd24gZXJyb3IgKCVkKSIsIGVFcnJvciApOworICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJ1ZjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVi
bGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19w
dWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jY2Q2YzhhOTZjMTMwYzBhY2YxZjRiMmI2NDg2ZjViMjkzZDA3
YjI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNv
bW1vbi9obWRlcnJvcnNfcHVibGljLmgKQEAgLTAsMCArMSw2IEBACisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCitj
b25zdCBjaGFyICpHZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIHZyOjpFVlJJbml0RXJyb3Ig
ZUVycm9yICk7Citjb25zdCBjaGFyICpHZXRJREZvclZSSW5pdEVycm9yKCB2cjo6RVZSSW5pdEVy
cm9yIGVFcnJvciApOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDM0NThkZGMx
ZGFhZDhjODk3ODEwNDUyODg1MjMwOGViOTA4MDE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcApAQCAt
MCwwICsxLDgxOSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09
PT09PT09PT09PS8vCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAicGF0
aHRvb2xzX3B1YmxpYy5oIgorCisjaWYgZGVmaW5lZCggX1dJTjMyKQorI2luY2x1ZGUgPHdpbmRv
d3MuaD4KKyNpbmNsdWRlIDxkaXJlY3QuaD4KKyNpbmNsdWRlIDxzaG9iamlkbC5oPgorI2luY2x1
ZGUgPGtub3duZm9sZGVycy5oPgorI2luY2x1ZGUgPHNobG9iai5oPgorI2luY2x1ZGUgPHNoYXJl
Lmg+CisKKyN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjZWxzZQorI2luY2x1ZGUgPGRs
ZmNuLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRl
IDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmIGRlZmluZWQgT1NYCisjaW5jbHVkZSA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8QXBwS2l0L0FwcEtpdC5oPgorI2luY2x1ZGUgPG1h
Y2gtby9keWxkLmg+CisjZGVmaW5lIF9TX0lGRElSIFNfSUZESVIgICAgIC8vIHJlYWxseSBmcm9t
IHRpZXIwL3BsYXRmb3JtLmggd2hpY2ggd2UgZG9udCBoYXZlIHlldAorI2VuZGlmCisKKyNpbmNs
dWRlIDxzeXMvc3RhdC5oPgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisvKiogUmV0dXJucyB0
aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1lKSB0byB0aGUgY3VycmVudCBleGVjdXRhYmxlICov
CitzdGQ6OnN0cmluZyBQYXRoX0dldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyNpZiBkZWZpbmVkKCBf
V0lOMzIgKQorICAgICAgIHdjaGFyX3QgKnB3Y2hQYXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNP
REVfUEFUSF07CisgICAgICAgY2hhciAqcGNoUGF0aCA9IG5ldyBjaGFyW01BWF9VTklDT0RFX1BB
VEhfSU5fVVRGOF07CisgICAgICAgOjpHZXRNb2R1bGVGaWxlTmFtZVcoIE5VTEwsIHB3Y2hQYXRo
LCBNQVhfVU5JQ09ERV9QQVRIICk7CisgICAgICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRG
OCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5V
TEwsIE5VTEwgKTsKKyAgICAgICBkZWxldGVbXSBwd2NoUGF0aDsKKworICAgICAgIHN0ZDo6c3Ry
aW5nIHNQYXRoID0gcGNoUGF0aDsKKyAgICAgICBkZWxldGVbXSBwY2hQYXRoOworICAgICAgIHJl
dHVybiBzUGF0aDsKKyNlbGlmIGRlZmluZWQoIE9TWCApCisgICAgICAgY2hhciByY2hQYXRoWzEw
MjRdOworICAgICAgIHVpbnQzMl90IG5CdWZmID0gc2l6ZW9mKCByY2hQYXRoICk7CisgICAgICAg
Ym9vbCBiU3VjY2VzcyA9IF9OU0dldEV4ZWN1dGFibGVQYXRoKHJjaFBhdGgsICZuQnVmZikgPT0g
MDsKKyAgICAgICByY2hQYXRoW25CdWZmLTFdID0gJ1wwJzsKKyAgICAgICBpZiggYlN1Y2Nlc3Mg
KQorICAgICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKKyAgICAgICBlbHNlCisgICAgICAgICAg
ICAgIHJldHVybiAiIjsKKyNlbGlmIGRlZmluZWQgTElOVVgKKyAgICAgICBjaGFyIHJjaFBhdGhb
MTAyNF07CisgICAgICAgc2l6ZV90IG5CdWZmID0gc2l6ZW9mKCByY2hQYXRoICk7CisgICAgICAg
c3NpemVfdCBuUmVhZCA9IHJlYWRsaW5rKCIvcHJvYy9zZWxmL2V4ZSIsIHJjaFBhdGgsIG5CdWZm
LTEgKTsKKyAgICAgICBpZiAoIG5SZWFkICE9IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHJjaFBhdGhbIG5SZWFkIF0gPSAwOworICAgICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKKyAg
ICAgICB9CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOwor
ICAgICAgIH0KKyNlbHNlCisgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwgIkltcGxlbWVudCBQbGF0
X0dldEV4ZWN1dGFibGVQYXRoIiApOworICAgICAgIHJldHVybiAiIjsKKyNlbmRpZgorCit9CisK
Ky8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5ICov
CitzdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtpbmdEaXJlY3RvcnkoKQoreworICAgICAgIHN0ZDo6
c3RyaW5nIHNQYXRoOworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgd2NoYXJfdCBidWZb
TUFYX1VOSUNPREVfUEFUSF07CisgICAgICAgc1BhdGggPSBVVEYxNnRvOCggX3dnZXRjd2QoIGJ1
ZiwgTUFYX1VOSUNPREVfUEFUSCApICk7CisjZWxzZQorICAgICAgIGNoYXIgYnVmWyAxMDI0IF07
CisgICAgICAgc1BhdGggPSBnZXRjd2QoIGJ1Ziwgc2l6ZW9mKCBidWYgKSApOworI2VuZGlmCisg
ICAgICAgcmV0dXJuIHNQYXRoOworfQorCisvKiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJucyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwu
ICovCitib29sIFBhdGhfU2V0V29ya2luZ0RpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UGF0aCApCit7CisgICAgICAgYm9vbCBiU3VjY2VzczsKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQor
ICAgICAgIHN0ZDo6d3N0cmluZyB3c1BhdGggPSBVVEY4dG8xNiggc1BhdGguY19zdHIoKSApOwor
ICAgICAgIGJTdWNjZXNzID0gMCA9PSBfd2NoZGlyKCB3c1BhdGguY19zdHIoKSApOworI2Vsc2UK
KyAgICAgICBiU3VjY2VzcyA9IDAgPT0gY2hkaXIoIHNQYXRoLmNfc3RyKCkgKTsKKyNlbmRpZgor
ICAgICAgIHJldHVybiBiU3VjY2VzczsKK30KKworLyoqIFJldHVybnMgdGhlIHNwZWNpZmllZCBw
YXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5h
bWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlm
KCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisK
KyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNs
YXNoICk7CisgICAgICAgaWYoIG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQorICAgICAgICAgICAg
ICByZXR1cm4gc1BhdGg7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gc3RkOjpz
dHJpbmcoIHNQYXRoLmJlZ2luKCksIHNQYXRoLmJlZ2luKCkgKyBuICk7Cit9CisKKy8qKiByZXR1
cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUg
cGF0aC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAg
ICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmlu
Zzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNsYXNoICk7CisgICAgICAgaWYo
IG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQorICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Cisg
ICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2lu
KCkgKyBuICsgMSwgc1BhdGguZW5kKCkgKTsKK30KKworLyoqIHJldHVybnMganVzdCB0aGUgZmls
ZW5hbWUgd2l0aCBubyBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lLiAKKyogSWYg
dGhlcmUgaXMgYSBwYXRoIHRoZSBwYXRoIGlzIGxlZnQgaW50YWN0LiAqLworc3RkOjpzdHJpbmcg
UGF0aF9TdHJpcEV4dGVuc2lvbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAg
ICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJl
Z2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
aWYoICppID09ICcuJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVnaW4oKSwgaS5iYXNlKCkgLSAxICk7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMg
bm8gZXh0ZW5zaW9uCisgICAgICAgICAgICAgIGlmKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyAp
CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICB9CisKKyAgICAgICAvLyB3ZSBk
aWRuJ3QgZmluZCBhbiBleHRlbnNpb24KKyAgICAgICByZXR1cm4gc1BhdGg7Cit9CisKKy8qKiBy
ZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4g
Ki8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQ
YXRoICkKK3sKKyAgICAgICBmb3IgKCBzdGQ6OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRv
ciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBpKysgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgaWYgKCAqaSA9PSAnLicgKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIGkuYmFzZSgpLCBzUGF0aC5lbmQoKSAp
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gaWYgd2UgZmluZCBhIHNsYXNo
IHRoZXJlIGlzIG5vIGV4dGVuc2lvbgorICAgICAgICAgICAgICBpZiAoICppID09ICdcXCcgfHwg
KmkgPT0gJy8nICkKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgIH0KKworICAg
ICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4dGVuc2lvbgorICAgICAgIHJldHVybiAiIjsKK30K
KworYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQorewor
ICAgICAgIGlmKCBzUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIGlmICggc1BhdGguc2l6ZSgpIDwgMyApIC8v
IG11c3QgYmUgYzpceCBvciBcXHggYXQgbGVhc3QKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgaWYgKCBzUGF0aFsxXSA9PSAnOicgKSAvLyBkcml2ZSBsZXR0ZXIgcGx1cyBz
bGFzaCwgYnV0IG11c3QgdGVzdCBib3RoIHNsYXNoIGNhc2VzCisgICAgICAgeworICAgICAgICAg
ICAgICBpZiAoIHNQYXRoWzJdID09ICdcXCcgfHwgc1BhdGhbMl0gPT0gJy8nICkKKyAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKyAgICAgICBlbHNlIGlmICggc1Bh
dGhbMF0gPT0gJ1xcJyAmJiBzUGF0aFsxXSA9PSAnXFwnICkgLy8gVU5DIHBhdGgKKyAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgICAgIGlmKCBzUGF0aFswXSA9PSAnXFwnIHx8
IHNQYXRoWzBdID09ICcvJyApIC8vIGFueSBsZWFkaW5nIHNsYXNoCisgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCisKKyAgICAgICByZXR1cm4gZmFsc2U7Cit9CisKKworLyoqIE1h
a2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRo
ICovCitzdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCAp
Cit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhf
R2V0U2xhc2goKTsKKworICAgICAgIGlmKCBQYXRoX0lzQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGgg
KSApCisgICAgICAgICAgICAgIHJldHVybiBzUmVsYXRpdmVQYXRoOworICAgICAgIGVsc2UKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGlmKCAhUGF0aF9Jc0Fic29sdXRlKCBzQmFzZVBhdGggKSAp
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAgICAgICAgc3RkOjpz
dHJpbmcgc0NvbXBhY3RlZCA9IFBhdGhfQ29tcGFjdCggUGF0aF9Kb2luKCBzQmFzZVBhdGgsIHNS
ZWxhdGl2ZVBhdGgsIHNsYXNoICksIHNsYXNoICk7CisgICAgICAgICAgICAgIGlmKCBQYXRoX0lz
QWJzb2x1dGUoIHNDb21wYWN0ZWQgKSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0Nv
bXBhY3RlZDsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICIiOworICAgICAgIH0KK30KKworCisvKiogRml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3Jz
IGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAqLworc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVz
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZigg
c2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisg
ICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkID0gc1BhdGg7CisgICAgICAgZm9yKCBzdGQ6OnN0cmlu
Zzo6aXRlcmF0b3IgaSA9IHNGaXhlZC5iZWdpbigpOyBpICE9IHNGaXhlZC5lbmQoKTsgaSsrICkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGlmKCAqaSA9PSAnLycgfHwgKmkgPT0gJ1xcJyApCisg
ICAgICAgICAgICAgICAgICAgICAqaSA9IHNsYXNoOworICAgICAgIH0KKworICAgICAgIHJldHVy
biBzRml4ZWQ7Cit9CisKKworY2hhciBQYXRoX0dldFNsYXNoKCkKK3sKKyNpZiBkZWZpbmVkKF9X
SU4zMikKKyAgICAgICByZXR1cm4gJ1xcJzsKKyNlbHNlCisgICAgICAgcmV0dXJuICcvJzsKKyNl
bmRpZgorfQorCisvKiogSmFtcyB0d28gcGF0aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2lu
ZCBvZiBzbGFzaCAqLworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAm
IGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY2hhciBzbGFzaCApCit7CisgICAg
ICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2go
KTsKKworICAgICAgIC8vIG9ubHkgaW5zZXJ0IGEgc2xhc2ggaWYgd2UgZG9uJ3QgYWxyZWFkeSBo
YXZlIG9uZQorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbkxlbiA9IGZpcnN0Lmxlbmd0
aCgpOworICAgICAgIGlmKCAhbkxlbiApCisgICAgICAgICAgICAgIHJldHVybiBzZWNvbmQ7Cisj
aWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgaWYoIGZpcnN0LmJhY2soKSA9PSAnXFwnIHx8IGZp
cnN0LmJhY2soKSA9PSAnLycgKQorICAgICAgICAgICBuTGVuLS07CisjZWxzZQorICAgICAgIGNo
YXIgbGFzdF9jaGFyID0gZmlyc3RbZmlyc3QubGVuZ3RoKCktMV07CisgICAgICAgaWYgKGxhc3Rf
Y2hhciA9PSAnXFwnIHx8IGxhc3RfY2hhciA9PSAnLycpCisgICAgICAgICAgIG5MZW4tLTsKKyNl
bmRpZgorCisgICAgICAgcmV0dXJuIGZpcnN0LnN1YnN0ciggMCwgbkxlbiApICsgc3RkOjpzdHJp
bmcoIDEsIHNsYXNoICkgKyBzZWNvbmQ7Cit9CisKKworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBj
b25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29u
c3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hhciBzbGFzaCApCit7CisgICAgICAgcmV0dXJuIFBh
dGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2gg
KTsKK30KKworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0
LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwg
Y29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAgcmV0dXJu
IFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRoX0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICks
IHRoaXJkLCBzbGFzaCApLCBmb3VydGgsIHNsYXNoICk7Cit9CisKK3N0ZDo6c3RyaW5nIFBhdGhf
Sm9pbiggCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgCisgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcgJiBzZWNvbmQsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQs
IAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZm91cnRoLCAKKyAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyAmIGZpZnRoLCAKKyAgICAgICBjaGFyIHNsYXNoICkKK3sKKyAgICAgICByZXR1cm4g
UGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25k
LCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwgZm91cnRoLCBzbGFzaCApLCBmaWZ0aCwgc2xhc2gg
KTsKK30KKworCitzdGQ6OnN0cmluZyBQYXRoX1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmICggc2xhc2gg
PT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAg
c3RkOjpzdHJpbmcgc1BhdGggPSBzUmF3UGF0aDsKKyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG5DdXJyZW50ID0gc1Jhd1BhdGgubGVuZ3RoKCk7CisgICAgICAgaWYgKCBuQ3VycmVudCA9
PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNQYXRoOworCisgICAgICAgaW50IG5MYXN0Rm91
bmQgPSAtMTsKKyAgICAgICBuQ3VycmVudC0tOworICAgICAgIHdoaWxlKCBuQ3VycmVudCAhPSAw
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggc1Jhd1BhdGhbIG5DdXJyZW50IF0gPT0g
c2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBuTGFzdEZvdW5k
ID0gKGludCluQ3VycmVudDsKKyAgICAgICAgICAgICAgICAgICAgIG5DdXJyZW50LS07CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAg
ICAgICAgCisgICAgICAgaWYgKCBuTGFzdEZvdW5kID49IDAgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc1BhdGguZXJhc2UoIG5MYXN0Rm91bmQsIHN0ZDo6c3RyaW5nOjpucG9zICk7CisgICAg
ICAgfQorICAgICAgIAorICAgICAgIHJldHVybiBzUGF0aDsKK30KKworCisvKiogUmVtb3ZlcyBy
ZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMgaW4gdGhlIHBhdGguIFJldHVybnMgYW4gZW1wdHkg
cGF0aCBpZiB0aGUgCisqIHNwZWNpZmllZCBwYXRoIGhhcyBhIGJyb2tlbiBudW1iZXIgb2YgZGly
ZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2YgLi5zICovCitzdGQ6OnN0cmluZyBQYXRoX0NvbXBh
Y3QoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAg
IGlmKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7
CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1Jhd1BhdGgs
IHNsYXNoICk7CisgICAgICAgc3RkOjpzdHJpbmcgc1NsYXNoU3RyaW5nKCAxLCBzbGFzaCApOwor
CisgICAgICAgLy8gc3RyaXAgb3V0IGFsbCAvLi8KKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpz
aXplX3R5cGUgaSA9IDA7IChpICsgMykgPCBzUGF0aC5sZW5ndGgoKTsgICkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGlmKCBzUGF0aFsgaSBdID09IHNsYXNoICYmIHNQYXRoWyBpKzEgXSA9PSAn
LicgJiYgc1BhdGhbIGkrMiBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgc1BhdGgucmVwbGFjZSggaSwgMywgc1NsYXNoU3RyaW5nICk7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKworICAgICAgIC8v
IGdldCByaWQgb2YgdHJhaWxpbmcgLy4gYnV0IGxlYXZlIHRoZSBwYXRoIHNlcGFyYXRvcgorICAg
ICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3Rk
OjpzdHJpbmc6OnNpemVfdHlwZSBsZW4gPSBzUGF0aC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAg
aWYoIHNQYXRoWyBsZW4tMSBdID09ICcuJyAgJiYgc1BhdGhbIGxlbi0yIF0gPT0gc2xhc2ggKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gc1BhdGgucG9wX2JhY2soKTsKKyAg
ICAgICAgICAgICAgICBzUGF0aFtsZW4tMV0gPSAwOyAgLy8gZm9yIG5vdywgYXQgbGVhc3QKKyAg
ICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIC8vIGdldCByaWQgb2YgbGVhZGluZyAu
LyAKKyAgICAgICBpZiggc1BhdGgubGVuZ3RoKCkgPiAyICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIGlmKCBzUGF0aFsgMCBdID09ICcuJyAgJiYgc1BhdGhbIDEgXSA9PSBzbGFzaCApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRoLnJlcGxhY2UoIDAsIDIsICIi
ICk7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICAvLyBlYWNoIHRpbWUgd2Ug
ZW5jb3VudGVyIC4uIGJhY2sgdXAgdW50aWwgd2UndmUgZm91bmQgdGhlIHByZXZpb3VzIGRpcmVj
dG9yeSBuYW1lCisgICAgICAgLy8gdGhlbiBnZXQgcmlkIG9mIGJvdGgKKyAgICAgICBzdGQ6OnN0
cmluZzo6c2l6ZV90eXBlIGkgPSAwOworICAgICAgIHdoaWxlKCBpIDwgc1BhdGgubGVuZ3RoKCkg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIGkgPiAwICYmIHNQYXRoLmxlbmd0aCgpIC0g
aSA+PSAyIAorICAgICAgICAgICAgICAgICAgICAgJiYgc1BhdGhbaV0gPT0gJy4nCisgICAgICAg
ICAgICAgICAgICAgICAmJiBzUGF0aFtpKzFdID09ICcuJworICAgICAgICAgICAgICAgICAgICAg
JiYgKCBpICsgMiA9PSBzUGF0aC5sZW5ndGgoKSB8fCBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQor
ICAgICAgICAgICAgICAgICAgICAgJiYgc1BhdGhbIGktMSBdID09IHNsYXNoICkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UndmUgaGl0IHRoZSBz
dGFydCBvZiB0aGUgc3RyaW5nIGFuZCBoYXZlIGEgYm9ndXMgcGF0aAorICAgICAgICAgICAgICAg
ICAgICAgaWYoIGkgPT0gMSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIi
OworICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRo
ZSBzZXBhcmF0b3IgYmVmb3JlIGktMQorICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBpRGlyU3RhcnQgPSBpLTI7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSgg
aURpclN0YXJ0ID4gMCAmJiBzUGF0aFsgaURpclN0YXJ0IC0gMSBdICE9IHNsYXNoICkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLWlEaXJTdGFydDsKKworICAgICAgICAgICAgICAgICAg
ICAgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgZnJvbSBpRGlyU3RhcnQgdG8gaSsyCisgICAgICAgICAg
ICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBpRGlyU3RhcnQsIChpIC0gaURpclN0YXJ0KSArIDMs
ICIiICk7CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IG92ZXIKKyAgICAgICAgICAg
ICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNQYXRoOworfQorCisKKy8qKiBSZXR1cm5zIHRo
ZSBwYXRoIHRvIHRoZSBjdXJyZW50IERMTCBvciBleGUgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0
VGhpc01vZHVsZVBhdGgoKQoreworICAgICAgIC8vIGdldHMgdGhlIHBhdGggb2YgdnJjbGllbnQu
ZGxsIGl0c2VsZgorI2lmZGVmIFdJTjMyCisgICAgICAgSE1PRFVMRSBobW9kdWxlID0gTlVMTDsK
KworICAgICAgIDo6R2V0TW9kdWxlSGFuZGxlRXgoIEdFVF9NT0RVTEVfSEFORExFX0VYX0ZMQUdf
RlJPTV9BRERSRVNTIHwgR0VUX01PRFVMRV9IQU5ETEVfRVhfRkxBR19VTkNIQU5HRURfUkVGQ09V
TlQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBDVFNUUj4oUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCksICZo
bW9kdWxlICk7CisKKyAgICAgICB3Y2hhcl90ICpwd2NoUGF0aCA9IG5ldyB3Y2hhcl90W01BWF9V
TklDT0RFX1BBVEhdOworICAgICAgIGNoYXIgKnBjaFBhdGggPSBuZXcgY2hhclsgTUFYX1VOSUNP
REVfUEFUSF9JTl9VVEY4IF07CisgICAgICAgOjpHZXRNb2R1bGVGaWxlTmFtZVcoIGhtb2R1bGUs
IHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIICk7CisgICAgICAgV2lkZUNoYXJUb011bHRpQnl0
ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lO
X1VURjgsIE5VTEwsIE5VTEwgKTsKKyAgICAgICBkZWxldGVbXSBwd2NoUGF0aDsKKworICAgICAg
IHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0aDsKKyAgICAgICBkZWxldGUgW10gcGNoUGF0aDsK
KyAgICAgICByZXR1cm4gc1BhdGg7CisKKyNlbGlmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQo
IExJTlVYICkKKyAgICAgICAvLyBnZXQgdGhlIGFkZHIgb2YgYSBmdW5jdGlvbiBpbiB2cmNsaWVu
dC5zbyBhbmQgdGhlbiBhc2sgdGhlIGRsb3BlbiBzeXN0ZW0gYWJvdXQgaXQKKyAgICAgICBEbF9p
bmZvIGluZm87CisgICAgICAgZGxhZGRyKCAodm9pZCAqKVBhdGhfR2V0VGhpc01vZHVsZVBhdGgs
ICZpbmZvICk7CisgICAgICAgcmV0dXJuIGluZm8uZGxpX2ZuYW1lOworI2VuZGlmCisKK30KKwor
CisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEg
ZGlyZWN0b3J5ICovCitib29sIFBhdGhfSXNEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1BhdGggKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNGaXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNo
ZXMoIHNQYXRoICk7CisgICAgICAgaWYoIHNGaXhlZFBhdGguZW1wdHkoKSApCisgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICBjaGFyIGNMYXN0ID0gc0ZpeGVkUGF0aFsgc0ZpeGVk
UGF0aC5sZW5ndGgoKSAtIDEgXTsKKyAgICAgICBpZiggY0xhc3QgPT0gJy8nIHx8IGNMYXN0ID09
ICdcXCcgKQorICAgICAgICAgICAgICBzRml4ZWRQYXRoLmVyYXNlKCBzRml4ZWRQYXRoLmVuZCgp
IC0gMSwgc0ZpeGVkUGF0aC5lbmQoKSApOworCisgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZp
ZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisKKyNpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIHN0
cnVjdCAgICAgICBzdGF0ICAgICAgIGJ1ZjsKKyAgICAgICBpZiAoIHN0YXQoIHNGaXhlZFBhdGgu
Y19zdHIoKSwgJmJ1ZiApID09IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICB9CisKKyNpZiBkZWZpbmVkKCBMSU5VWCApIHx8IGRlZmluZWQoIE9TWCAp
CisgICAgICAgcmV0dXJuIFNfSVNESVIoIGJ1Zi5zdF9tb2RlICk7CisjZWxzZQorICAgICAgIHJl
dHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsKKyNlbmRpZgorCisjZWxzZQorICAg
ICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAgICBidWY7CisgICAgICAgc3RkOjp3c3RyaW5nIHdz
Rml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19zdHIoKSApOworICAgICAgIGlmICgg
X3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHJldHVybiAoYnVm
LnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsKKyNlbmRpZgorfQorCisvKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVjaWZpZWQgcGF0aCByZXByZXNlbnRzIGFuIGFwcCBidW5kbGUgKi8KK2Jvb2wg
UGF0aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisjaWYgZGVm
aW5lZChPU1gpCisgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFsgTlNCdW5kbGUgYnVuZGxlV2l0
aFBhdGg6IFsgTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6c1BhdGguY19zdHIoKSBdIF07
CisgICAgICAgYm9vbCBiaXNBcHBCdW5kbGUgPSAoIG51bGxwdHIgIT0gYnVuZGxlICk7CisgICAg
ICAgWyBidW5kbGUgcmVsZWFzZSBdOworICAgICAgIHJldHVybiBiaXNBcHBCdW5kbGU7CisjZWxz
ZQorICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLyBQdXJwb3NlOiByZXR1cm5zIHRydWUgaWYgdGhlIHRoZSBwYXRoIGV4aXN0cworLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBQYXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUGF0aCApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkUGF0aCA9IFBhdGhfRml4U2xh
c2hlcyggc1BhdGggKTsKKyAgICAgICBpZiggc0ZpeGVkUGF0aC5lbXB0eSgpICkKKyAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIHN0cnVj
dCAgICAgICBfc3RhdCAgICAgICBidWY7CisgICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRo
ID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19zdHIoKSApOworICAgICAgIGlmICggX3dzdGF0KCB3
c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyNlbHNlCisgICAgICAgc3RydWN0IHN0YXQgYnVm
OworICAgICAgIGlmICggc3RhdCAoIHNGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyNlbmRpZgor
CisgICAgICAgcmV0dXJuIHRydWU7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8g
UHVycG9zZTogaGVscGVyIHRvIGZpbmQgYSBkaXJlY3RvcnkgdXBzdHJlYW0gZnJvbSBhIGdpdmVu
IHBhdGgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVu
dERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3Rv
cnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICkKK3sKKyAgICAgICBzdGQ6
OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsKKyAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50
UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3RyU3RhcnREaXJlY3RvcnkgKTsKKyAgICAgICBpZiAo
IHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7
CisKKyAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsK
KyAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBE
aXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmlj
bXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19z
dHIoKSApID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gc3RyQ3VycmVudFBhdGg7CisKKyAg
ICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSAhPSAwICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9TdHJpcEZpbGVuYW1l
KCBzdHJDdXJyZW50UGF0aCApOworICAgICAgICAgICAgICBzdHJDdXJyZW50RGlyZWN0b3J5TmFt
ZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgICAgICAg
IGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAgICAg
aWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCks
IHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSApID09IDAgKQorICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ckN1cnJlbnRQYXRoOworICAgICAgIH0KKworICAgICAgIHJldHVybiAiIjsKK30K
KworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBh
IHN1YmRpcmVjdG9yeSB1cHN0cmVhbSBmcm9tIGEgZ2l2ZW4gcGF0aAorLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZl
bHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckRpcmVjdG9yeU5hbWUgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0
aCA9ICIiOworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFz
aGVzKCBzdHJTdGFydERpcmVjdG9yeSApOworICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVu
Z3RoKCkgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKworICAgICAgIGJvb2wgYkV4
aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgIHdoaWxlKCBiRXhp
c3RzICYmIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpICE9IDAgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc3RyQ3VycmVudFBhdGggPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRo
ICk7CisgICAgICAgICAgICAgIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGgg
KTsKKworICAgICAgICAgICAgICBpZiggUGF0aF9FeGlzdHMoIFBhdGhfSm9pbiggc3RyQ3VycmVu
dFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKSApICkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgc3RyRm91bmRQYXRoID0gUGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3Ry
RGlyZWN0b3J5TmFtZSApOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJuIHN0ckZvdW5kUGF0aDsKK30KKworCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVz
IGluIHRoZSB2b3J0ZXggZGlyZWN0b3J5CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit1bnNpZ25l
ZCBjaGFyICogUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVu
YW1lLCBpbnQgKnBTaXplICkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lY
ICkKKyAgICAgICBmID0gZm9wZW4oIHN0ckZpbGVuYW1lLmNfc3RyKCksICJyYiIgKTsKKyNlbHNl
CisgICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFt
ZS5jX3N0cigpICk7CisgICAgICAgLy8gdGhlIG9wZW4gb3BlcmF0aW9uIG5lZWRzIHRvIGJlIHNo
YXJhYmxlLCB0aGVyZWZvcmUgdXNlIG9mIF93ZnNvcGVuIGluc3RlYWQgb2YgX3dmb3Blbl9zCisg
ICAgICAgZiA9IF93ZnNvcGVuKCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJyYiIsIF9TSF9ERU5Z
Tk8gKTsKKyNlbmRpZgorICAgICAgIAorICAgICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZiA9IE5VTEw7
CisKKyAgICAgICBpZiAoIGYgIT0gTlVMTCApCisgICAgICAgeworICAgICAgICAgICAgICBmc2Vl
ayhmLCAwLCBTRUVLX0VORCk7CisgICAgICAgICAgICAgIGludCBzaXplID0gZnRlbGwoZik7Cisg
ICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNFRUtfU0VUKTsKKworICAgICAgICAgICAgICBidWYg
PSBuZXcgdW5zaWduZWQgY2hhcltzaXplXTsKKyAgICAgICAgICAgICAgaWYgKGJ1ZiAmJiBmcmVh
ZChidWYsIHNpemUsIDEsIGYpID09IDEpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmIChwU2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcFNpemUgPSBz
aXplOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgZGVsZXRlW10gYnVmOworICAgICAgICAgICAgICAgICAg
ICAgYnVmID0gMDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGZjbG9zZShmKTsK
KyAgICAgICB9CisKKyAgICAgICByZXR1cm4gYnVmOworfQorCit1aW50MzJfdCAgUGF0aF9SZWFk
QmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFy
ICpwQnVmZmVyLCB1aW50MzJfdCB1blNpemUgKQoreworICAgICAgIEZJTEUgKmY7CisjaWYgZGVm
aW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwgInJi
IiApOworI2Vsc2UKKyAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYo
IHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcygg
JmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBMInJiIiApOworICAgICAgIGlmICggZXJyICE9IDAg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7CisgICAgICAgfQorI2VuZGlmCisK
KyAgICAgICB1aW50MzJfdCB1blNpemVUb1JldHVybiA9IDA7CisKKyAgICAgICBpZiAoIGYgIT0g
TlVMTCApCisgICAgICAgeworICAgICAgICAgICAgICBmc2VlayggZiwgMCwgU0VFS19FTkQgKTsK
KyAgICAgICAgICAgICAgdWludDMyX3Qgc2l6ZSA9ICh1aW50MzJfdClmdGVsbCggZiApOworICAg
ICAgICAgICAgICBmc2VlayggZiwgMCwgU0VFS19TRVQgKTsKKworICAgICAgICAgICAgICBpZiAo
IHNpemUgPiB1blNpemUgfHwgIXBCdWZmZXIgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICB1blNpemVUb1JldHVybiA9ICh1aW50MzJfdClzaXplOworICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgaWYgKCBmcmVhZCggcEJ1ZmZlciwgc2l6ZSwgMSwgZiApID09IDEgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJu
ID0gKHVpbnQzMl90KXNpemU7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBmY2xvc2UoIGYgKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1
cm4gdW5TaXplVG9SZXR1cm47Cit9CisKK2Jvb2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoY29uc3Qg
c3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwRGF0YSwgdW5zaWduZWQg
blNpemUpCit7CisgICAgICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAg
ZiA9IGZvcGVuKHN0ckZpbGVuYW1lLmNfc3RyKCksICJ3YiIpOworI2Vsc2UKKyAgICAgICBzdGQ6
OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsK
KyAgICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigp
LCBMIndiIiApOworICAgICAgIGlmIChlcnIgIT0gMCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IGYgPSBOVUxMOworICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgc2l6ZV90IHdyaXR0ZW4gPSAw
OworICAgICAgIGlmIChmICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgd3JpdHRlbiA9IGZ3cml0
ZShwRGF0YSwgc2l6ZW9mKHVuc2lnbmVkIGNoYXIpLCBuU2l6ZSwgZik7CisgICAgICAgICAgICAg
IGZjbG9zZShmKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gd3JpdHRlbiA9IG5TaXplID8g
dHJ1ZSA6IGZhbHNlOworfQorCitzdGQ6OnN0cmluZyBQYXRoX1JlYWRUZXh0RmlsZSggY29uc3Qg
c3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lICkKK3sKKyAgICAgICAvLyBkb2luZyBpdCB0aGlzIHdh
eSBzZWVtcyBiYWNrd2FyZHMsIGJ1dCBJIGRvbid0CisgICAgICAgLy8gc2VlIGFuIGVhc3kgd2F5
IHRvIGRvIHRoaXMgd2l0aCBDL0MrKyBzdHlsZSBJTworICAgICAgIC8vIHRoYXQgaXNuJ3Qgd29y
c2UuLi4KKyAgICAgICBpbnQgc2l6ZTsKKyAgICAgICB1bnNpZ25lZCBjaGFyKiBidWYgPSBQYXRo
X1JlYWRCaW5hcnlGaWxlKCBzdHJGaWxlbmFtZSwgJnNpemUgKTsKKyAgICAgICBpZiAoIWJ1ZikK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworCisgICAgICAgLy8gY29udmVydCBDUkxGIC0+IExG
CisgICAgICAgc2l6ZV90IG91dHNpemUgPSAxOworICAgICAgIGZvciAoaW50IGk9MTsgaSA8IHNp
emU7IGkrKykKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmIChidWZbaV0gPT0gJ1xuJyAmJiBi
dWZbaS0xXSA9PSAnXHInKSAvLyBDUkxGCisgICAgICAgICAgICAgICAgICAgICBidWZbb3V0c2l6
ZS0xXSA9ICdcbic7IC8vIC0+TEYKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgYnVmW291dHNpemUrK10gPSBidWZbaV07IC8vIGp1c3QgY29weQorICAgICAgIH0KKwor
ICAgICAgIHN0ZDo6c3RyaW5nIHJldCgoY2hhciAqKWJ1Ziwgb3V0c2l6ZSk7CisgICAgICAgZGVs
ZXRlW10gYnVmOworICAgICAgIHJldHVybiByZXQ7Cit9CisKKworYm9vbCBQYXRoX1dyaXRlU3Ry
aW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFy
ICpwY2hEYXRhICkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lYICkKKyAg
ICAgICBmID0gZm9wZW4oIHN0ckZpbGVuYW1lLmNfc3RyKCksICJ3IiApOworI2Vsc2UKKyAgICAg
ICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3Ry
KCkgKTsKKyAgICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5j
X3N0cigpLCBMInciICk7CisgICAgICAgaWYgKCBlcnIgIT0gMCApCisgICAgICAgeworICAgICAg
ICAgICAgICBmID0gTlVMTDsKKyAgICAgICB9CisjZW5kaWYKKyAgICAgICAKKyAgICAgICBib29s
IG9rID0gZmFsc2U7CisKKyAgICAgICBpZiAoIGYgIT0gTlVMTCApCisgICAgICAgeworICAgICAg
ICAgICAgICBvayA9IGZwdXRzKCBwY2hEYXRhLCBmKSA+PSAwOworICAgICAgICAgICAgICBmY2xv
c2UoZik7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIG9rOworfQorCitib29sIFBhdGhfV3Jp
dGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUs
IGNvbnN0IGNoYXIgKnBjaERhdGEgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0clRtcEZpbGVu
YW1lID0gc3RyRmlsZW5hbWUgKyAiLnRtcCI7CisKKyAgICAgICBpZiAoICFQYXRoX1dyaXRlU3Ry
aW5nVG9UZXh0RmlsZSggc3RyVG1wRmlsZW5hbWUsIHBjaERhdGEgKSApCisgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgIC8vIFBsYXRmb3JtIHNwZWNpZmljIGF0b21pYyBmaWxl
IHJlcGxhY2VtZW50CisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzdGQ6OndzdHJpbmcg
d3NGaWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgc3Rk
Ojp3c3RyaW5nIHdzVG1wRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyVG1wRmlsZW5hbWUuY19zdHIo
KSApOworICAgICAgIGlmICggITo6UmVwbGFjZUZpbGVXKCB3c0ZpbGVuYW1lLmNfc3RyKCksIHdz
VG1wRmlsZW5hbWUuY19zdHIoKSwgbnVsbHB0ciwgMCwgMCwgMCApICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIC8vIGlmIHdlIGNvdWxkbid0IFJlcGxhY2VGaWxlLCB0cnkgYSBub24tYXRvbWlj
IHdyaXRlIGFzIGEgZmFsbGJhY2sKKyAgICAgICAgICAgICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmlu
Z1RvVGV4dEZpbGUoIHN0ckZpbGVuYW1lLCBwY2hEYXRhICkgKQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyNlbGlmIGRlZmluZWQoIFBPU0lYICkKKyAgICAg
ICBpZiAoIHJlbmFtZSggc3RyVG1wRmlsZW5hbWUuY19zdHIoKSwgc3RyRmlsZW5hbWUuY19zdHIo
KSApID09IC0xICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyNlcnJvciBE
byBub3Qga25vdyBob3cgdG8gd3JpdGUgYXRvbWljIGZpbGUKKyNlbmRpZgorCisgICAgICAgcmV0
dXJuIHRydWU7Cit9CisKKworI2lmIGRlZmluZWQoV0lOMzIpCisjZGVmaW5lIEZJTEVfVVJMX1BS
RUZJWCAiZmlsZTovLy8iCisjZWxzZQorI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8i
CisjZW5kaWYKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogVHVybnMgYSBwYXRoIHRvIGEg
ZmlsZSBvbiBkaXNrIGludG8gYSBVUkwgKG9yIGp1c3QgcmV0dXJucyB0aGUgdmFsdWUgaWYgaXQn
cyBhbHJlYWR5IGEgVVJMKQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9GaWxlUGF0
aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc0Jhc2VQYXRoICkKK3sKKyAgICAgICBpZiAoICFzdHJuaWNtcCggc1JlbGF0aXZlUGF0
aC5jX3N0cigpLCAiaHR0cDovLyIsIDcgKQorICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNS
ZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHBzOi8vIiwgOCApCisgICAgICAgICAgICAgIHx8ICFz
dHJuaWNtcCggc1JlbGF0aXZlUGF0aC5jX3N0cigpLCAiZmlsZTovLyIsIDcgKSApCisgICAgICAg
eworICAgICAgICAgICAgICByZXR1cm4gc1JlbGF0aXZlUGF0aDsKKyAgICAgICB9CisgICAgICAg
ZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc0Fic29sdXRlID0gUGF0
aF9NYWtlQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGgsIHNCYXNlUGF0aCApOworICAgICAgICAgICAg
ICBpZiAoIHNBYnNvbHV0ZS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBz
QWJzb2x1dGU7CisgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggRklMRV9VUkxfUFJF
RklYICkgKyBzQWJzb2x1dGU7CisgICAgICAgfQorfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogU3RyaXBzIG9mZiBmaWxlOi8v
IG9mZiBhIFVSTCBhbmQgcmV0dXJucyB0aGUgcGF0aC4gRm9yIG90aGVyIGtpbmRzIG9mIFVSTHMg
YW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9VcmxUb0ZpbGVQYXRoKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNGaWxlVXJsICkKK3sKKyAgICAgICBpZiAoICFzdHJuaWNtcCggc0Zp
bGVVcmwuY19zdHIoKSwgRklMRV9VUkxfUFJFRklYLCBzdHJsZW4oIEZJTEVfVVJMX1BSRUZJWCAp
ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHNGaWxlVXJsLmNfc3RyKCkgKyBz
dHJsZW4oIEZJTEVfVVJMX1BSRUZJWCApOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAg
eworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorfQorCisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXR1cm5z
IHRoZSByb290IG9mIHRoZSBkaXJlY3RvcnkgdGhlIHN5c3RlbSB3YW50cyB1cyB0byBzdG9yZSB1
c2VyIGRvY3VtZW50cyBpbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK3N0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVudHNQYXRoKCkKK3sKKyNpZiBkZWZp
bmVkKCBXSU4zMiApCisgICAgICAgV0NIQVIgcndjaFBhdGhbTUFYX1BBVEhdOworCisgICAgICAg
aWYgKCAhU1VDQ0VFREVEKCBTSEdldEZvbGRlclBhdGhXKCBOVUxMLCBDU0lETF9NWURPQ1VNRU5U
UyB8IENTSURMX0ZMQUdfQ1JFQVRFLCBOVUxMLCAwLCByd2NoUGF0aCApICkgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKworICAgICAgIC8vIENvbnZlcnQg
dGhlIHBhdGggdG8gVVRGLTggYW5kIHN0b3JlIGluIHRoZSBvdXRwdXQKKyAgICAgICBzdGQ6OnN0
cmluZyBzVXNlclBhdGggPSBVVEYxNnRvOCggcndjaFBhdGggKTsKKworICAgICAgIHJldHVybiBz
VXNlclBhdGg7CisjZWxpZiBkZWZpbmVkKCBPU1ggKQorICAgICAgIEBhdXRvcmVsZWFzZXBvb2wg
eworICAgICAgICAgICAgICBOU0FycmF5ICpwYXRocyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9y
aWVzSW5Eb21haW5zKCBOU0RvY3VtZW50RGlyZWN0b3J5LCBOU1VzZXJEb21haW5NYXNrLCBZRVMg
KTsKKyAgICAgICAgICAgICAgaWYgKCBbcGF0aHMgY291bnRdID09IDAgKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgIHJldHVybiBbW3BhdGhzIG9iamVjdEF0SW5kZXg6
MF0gVVRGOFN0cmluZ107CisgICAgICAgfQorI2VsaWYgZGVmaW5lZCggTElOVVggKQorICAgICAg
IC8vIEB0b2RvOiBub3Qgc29sdmVkL2NoYW5nZWQgYXMgcGFydCBvZiBPU1ggLSBzdGlsbCBub3Qg
cmVhbCAtIGp1c3QgcmVtb3ZlZCBvbGQgY2xhc3MgYmFzZWQgc3RlYW0gY3V0IGFuZCBwYXN0ZQor
ICAgICAgIGNvbnN0IGNoYXIgKnBjaEhvbWUgPSBnZXRlbnYoICJIT01FIiApOworICAgICAgIGlm
ICggcGNoSG9tZSA9PSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsK
KyAgICAgICB9CisgICAgICAgcmV0dXJuIHBjaEhvbWU7CisjZW5kaWYKK30KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGlj
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJs
aWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iOTU3YzY0ZDczN2E4YzExNjA0ZmE1ODZhNDIyYWMwODEyMmNhNTUx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9wYXRodG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8vPT09PT09PT09IENvcHly
aWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKy8qKiBSZXR1cm5zIHRoZSBw
YXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIHRvIHRoZSBjdXJyZW50IGV4ZWN1dGFibGUgKi8KK3N0
ZDo6c3RyaW5nIFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgoKTsKKworLyoqIFJldHVybnMgdGhlIHBh
dGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgKi8KK3N0ZDo6c3RyaW5nIFBhdGhf
R2V0V29ya2luZ0RpcmVjdG9yeSgpOworCisvKiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJucyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwu
ICovCitib29sIFBhdGhfU2V0V29ya2luZ0RpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UGF0aCApOworCisvKiogcmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1lKSBvZiB0
aGUgY3VycmVudCBzaGFyZWQgbGliIG9yIERMTCAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRUaGlz
TW9kdWxlUGF0aCgpOworCisvKiogUmV0dXJucyB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aG91dCBp
dHMgZmlsZW5hbWUuCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRpdmUgcGF0aCBz
ZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBiZSB1c2VkLiAqLworc3Rk
OjpzdHJpbmcgUGF0aF9TdHJpcEZpbGVuYW1lKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBj
aGFyIHNsYXNoID0gMCApOworCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSBmcm9tIHRo
ZSBwcm92aWRlZCBmdWxsIG9yIHJlbGF0aXZlIHBhdGguICovCitzdGQ6OnN0cmluZyBQYXRoX1N0
cmlwRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNsYXNoID0gMCAp
OworCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSB3aXRoIG5vIGV4dGVuc2lvbiBvZiB0
aGUgcHJvdmlkZWQgZmlsZW5hbWUuIAorKiBJZiB0aGVyZSBpcyBhIHBhdGggdGhlIHBhdGggaXMg
bGVmdCBpbnRhY3QuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRXh0ZW5zaW9uKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRo
ZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0
ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBSZXR1cm5zIHRydWUg
aWYgdGhlIHBhdGggaXMgYWJzb2x1dGUgKi8KK2Jvb2wgUGF0aF9Jc0Fic29sdXRlKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBNYWtlcyBhbiBhYnNvbHV0ZSBwYXRoIGZyb20g
YSByZWxhdGl2ZSBwYXRoIGFuZCBhIGJhc2UgcGF0aCAqLworc3RkOjpzdHJpbmcgUGF0aF9NYWtl
QWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0aXZlUGF0aCwgY29uc3Qgc3RkOjpz
dHJpbmcgJiBzQmFzZVBhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiBGaXhlcyB0aGUgZGly
ZWN0b3J5IHNlcGFyYXRvcnMgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLgorKiBJZiBzbGFzaCBp
cyB1bnNwZWNpZmllZCB0aGUgbmF0aXZlIHBhdGggc2VwYXJhdG9yIG9mIHRoZSBjdXJyZW50IHBs
YXRmb3JtCisqIHdpbGwgYmUgdXNlZC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfRml4U2xhc2hlcygg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLyoqIFJldHVy
bnMgdGhlIHBhdGggc2VwYXJhdG9yIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAqLworY2hhciBQ
YXRoX0dldFNsYXNoKCk7CisKKy8qKiBKYW1zIHR3byBwYXRocyB0b2dldGhlciB3aXRoIHRoZSBy
aWdodCBraW5kIG9mIHNsYXNoICovCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6
c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjaGFyIHNsYXNoID0g
MCApOworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hh
ciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcg
JiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNvbnN0IHN0ZDo6c3RyaW5nICYg
dGhpcmQsIGNvbnN0IHN0ZDo6c3RyaW5nICZmb3VydGgsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6
OnN0cmluZyBQYXRoX0pvaW4oIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIAor
ICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyAmIHRoaXJkLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZvdXJ0aCwgCisgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaWZ0aCwgCisgICAgICAgY2hhciBzbGFzaCA9IDAgKTsK
KworCisvKiogUmVtb3ZlcyByZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMgaW4gdGhlIHBhdGgu
IFJldHVybnMgYW4gZW1wdHkgcGF0aCBpZiB0aGUgCisqIHNwZWNpZmllZCBwYXRoIGhhcyBhIGJy
b2tlbiBudW1iZXIgb2YgZGlyZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2YgLi5zLgorKiBJZiBz
bGFzaCBpcyB1bnNwZWNpZmllZCB0aGUgbmF0aXZlIHBhdGggc2VwYXJhdG9yIG9mIHRoZSBjdXJy
ZW50IHBsYXRmb3JtCisqIHdpbGwgYmUgdXNlZC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfQ29tcGFj
dCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLy8q
KiBSZW1vdmVkIHRyYWlsaW5nIHNsYXNoZXMgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfUmVtb3ZlVHJh
aWxpbmdTbGFzaCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCA9IDAg
KTsKKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggZXhpc3RzIGFuZCBp
cyBhIGRpcmVjdG9yeSAqLworYm9vbCBQYXRoX0lzRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIHJl
cHJlc2VudHMgYW4gYXBwIGJ1bmRsZSAqLworYm9vbCBQYXRoX0lzQXBwQnVuZGxlKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHRoZSBwYXRo
IGV4aXN0cyAqLworYm9vbCBQYXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCAp
OworCisvKiogSGVscGVyIGZ1bmN0aW9ucyB0byBmaW5kIHBhcmVudCBkaXJlY3RvcmllcyBvciBz
dWJkaXJlY3RvcmllcyBvZiBwYXJlbnQgZGlyZWN0b3JpZXMgKi8KK3N0ZDo6c3RyaW5nIFBhdGhf
RmluZFBhcmVudERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3Rh
cnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7CitzdGQ6
OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRGlyZWN0
b3J5TmFtZSApOworCisvKiogUGF0aCBvcGVyYXRpb25zIHRvIHJlYWQgb3Igd3JpdGUgdGV4dC9i
aW5hcnkgZmlsZXMgKi8KK3Vuc2lnbmVkIGNoYXIgKiBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGludCAqcFNpemUgKTsKK3VpbnQzMl90ICBQYXRo
X1JlYWRCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVk
IGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IHVuU2l6ZSApOworYm9vbCBQYXRoX1dyaXRlQmluYXJ5
RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwRGF0
YSwgdW5zaWduZWQgblNpemUgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfUmVhZFRleHRGaWxlKCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUgKTsKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4
dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0
YSApOworYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYyggY29uc3Qgc3RkOjpz
dHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7CisKKy8qKiBSZXR1cm5z
IGEgZmlsZTovLyB1cmwgZm9yIHBhdGhzLCBvciBhbiBodHRwIG9yIGh0dHBzIHVybCBpZiB0aGF0
J3Mgd2hhdCB3YXMgcHJvdmlkZWQgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCgg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNC
YXNlUGF0aCApOworCisvKiogU3RyaXBzIG9mZiBmaWxlOi8vIG9mZiBhIFVSTCBhbmQgcmV0dXJu
cyB0aGUgcGF0aC4gRm9yIG90aGVyIGtpbmRzIG9mIFVSTHMgYW4gZW1wdHkgc3RyaW5nIGlzIHJl
dHVybmVkICovCitzdGQ6OnN0cmluZyBQYXRoX1VybFRvRmlsZVBhdGgoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc0ZpbGVVcmwgKTsKKworLyoqIFJldHVybnMgdGhlIHJvb3Qgb2YgdGhlIGRpcmVjdG9y
eSB0aGUgc3lzdGVtIHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgZG9jdW1lbnRzIGluICovCitzdGQ6
OnN0cmluZyBHZXRVc2VyRG9jdW1lbnRzUGF0aCgpOworCisjaWZuZGVmIE1BWF9VTklDT0RFX1BB
VEgKKyAgICAgICAjZGVmaW5lIE1BWF9VTklDT0RFX1BBVEggMzI3NjcKKyNlbmRpZgorCisjaWZu
ZGVmIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOAorICAgICAgICNkZWZpbmUgTUFYX1VOSUNPREVf
UEFUSF9JTl9VVEY4IChNQVhfVU5JQ09ERV9QQVRIICogNCkKKyNlbmRpZgorCisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisjaWYgZGVmaW5lZChXSU4zMikKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhU
ICAgICAgICIuZGxsIgorI2RlZmluZSBQUk9HUkFNX0VYVCAiLmV4ZSIKKyNpZmRlZiBfV0lONjQK
KyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAid2luNjQiCisjZWxzZQorI2RlZmluZSBQTEFUU1VC
RElSICAgICAgICJ3aW4zMiIKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChPU1gpCisjZGVmaW5lIERZ
TkFNSUNfTElCX0VYVCAgICAgICAiLmR5bGliIgorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJv
c3gzMiIKKyNkZWZpbmUgUFJPR1JBTV9FWFQgIiIKKyNlbGlmIGRlZmluZWQoTElOVVgpCisjZGVm
aW5lIERZTkFNSUNfTElCX0VYVCAgICAgICAiLnNvIgorI2RlZmluZSBQUk9HUkFNX0VYVCAiIgor
I2lmIGRlZmluZWQoIExJTlVYMzIgKQorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJsaW51eDMy
IgorI2Vsc2UKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAibGludXg2NCIKKyNlbmRpZgorI2Vs
c2UKKyN3YXJuaW5nICJVbmtub3duIHBsYXRmb3JtIGZvciBQTEFUU1VCRElSIgorI2RlZmluZSBQ
TEFUU1VCRElSICAgICAgICJ1bmtub3duX3BsYXRmb3JtIgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRv
b2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhlZWMyNjA0NTljNTFlZWM1NjlhMmNhNWIxMDI5
YTU5YzliYWNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsxLDQzIEBACisv
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNp
bmNsdWRlICJzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwor
I2lmIGRlZmluZWQoX1dJTjMyKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaWYg
ZGVmaW5lZChQT1NJWCkKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2VuZGlmCisKK1NoYXJlZExpYkhh
bmRsZSBTaGFyZWRMaWJfTG9hZCggY29uc3QgY2hhciAqcGNoUGF0aCApCit7CisjaWYgZGVmaW5l
ZCggX1dJTjMyKQorICAgICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKUxvYWRMaWJyYXJ5RXgo
IHBjaFBhdGgsIE5VTEwsIExPQURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIICk7CisjZWxpZiBk
ZWZpbmVkKFBPU0lYKQorICAgICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKWRsb3BlbihwY2hQ
YXRoLCBSVExEX0xPQ0FMfFJUTERfTk9XKTsKKyNlbmRpZgorfQorCit2b2lkICpTaGFyZWRMaWJf
R2V0RnVuY3Rpb24oIFNoYXJlZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIgKnBjaEZ1bmN0aW9u
TmFtZSkKK3sKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAgICAgcmV0dXJuICh2b2lkKilHZXRQ
cm9jQWRkcmVzcyggKEhNT0RVTEUpbGliLCBwY2hGdW5jdGlvbk5hbWUgKTsKKyNlbGlmIGRlZmlu
ZWQoUE9TSVgpCisgICAgICAgcmV0dXJuIGRsc3ltKCBsaWIsIHBjaEZ1bmN0aW9uTmFtZSApOwor
I2VuZGlmCit9CisKKwordm9pZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGli
ICkKK3sKKyAgICAgICBpZiAoICFsaWIgKQorICAgICAgICAgICAgICByZXR1cm47CisjaWYgZGVm
aW5lZCggX1dJTjMyKQorICAgICAgIEZyZWVMaWJyYXJ5KCAoSE1PRFVMRSlsaWIgKTsKKyNlbGlm
IGRlZmluZWQoUE9TSVgpCisgICAgICAgZGxjbG9zZSggbGliICk7CisjZW5kaWYKK30KKworCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxp
YnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9z
aGFyZWRsaWJ0b29sc19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDE2M2RiZmFiMmJlODM2MmY4M2Jj
MjA5M2MyNDIxNGIyNDdmYmFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDEw
IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09
Ly8KKyNwcmFnbWEgb25jZQorCit0eXBlZGVmIHZvaWQgKlNoYXJlZExpYkhhbmRsZTsKKworU2hh
cmVkTGliSGFuZGxlIFNoYXJlZExpYl9Mb2FkKCBjb25zdCBjaGFyICpwY2hQYXRoICk7Cit2b2lk
ICpTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIFNoYXJlZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIg
KnBjaEZ1bmN0aW9uTmFtZSk7Cit2b2lkIFNoYXJlZExpYl9VbmxvYWQoIFNoYXJlZExpYkhhbmRs
ZSBsaWIgKTsKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5MzcwYjJjZDFiOGM1
YWE0ZmQ3MTAyOTYyYTlkNGFiZThmOGRiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsx
LDQzNyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09
PT09PS8vCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+
CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgU3Ry
aW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1ByZWZpeCApCit7CisgICAgICAgcmV0dXJuIDAgPT0gc3RybmljbXAoIHNTdHJpbmcu
Y19zdHIoKSwgc1ByZWZpeC5jX3N0cigpLCBzUHJlZml4Lmxlbmd0aCgpICk7Cit9CisKK2Jvb2wg
U3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5n
LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKQoreworICAgICAgIHJldHVybiAwID09IHN0
cm5jbXAoIHNTdHJpbmcuY19zdHIoKSwgc1ByZWZpeC5jX3N0cigpLCBzUHJlZml4Lmxlbmd0aCgp
ICk7Cit9CisKKworYm9vbCBTdHJpbmdIYXNTdWZmaXgoIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3Ry
aW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApCit7CisgICAgICAgc2l6ZV90IGNTdHJM
ZW4gPSBzU3RyaW5nLmxlbmd0aCgpOworICAgICAgIHNpemVfdCBjU3VmZml4TGVuID0gc1N1ZmZp
eC5sZW5ndGgoKTsKKworICAgICAgIGlmICggY1N1ZmZpeExlbiA+IGNTdHJMZW4gKQorICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzU3RyaW5nU3VmZml4
ID0gc1N0cmluZy5zdWJzdHIoIGNTdHJMZW4gLSBjU3VmZml4TGVuLCBjU3VmZml4TGVuICk7CisK
KyAgICAgICByZXR1cm4gMCA9PSBzdHJpY21wKCBzU3RyaW5nU3VmZml4LmNfc3RyKCksIHNTdWZm
aXguY19zdHIoKSApOworfQorCitib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUoIGNv
bnN0IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApCit7
CisgICAgICAgc2l6ZV90IGNTdHJMZW4gPSBzU3RyaW5nLmxlbmd0aCgpOworICAgICAgIHNpemVf
dCBjU3VmZml4TGVuID0gc1N1ZmZpeC5sZW5ndGgoKTsKKworICAgICAgIGlmICggY1N1ZmZpeExl
biA+IGNTdHJMZW4gKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBzdGQ6
OnN0cmluZyBzU3RyaW5nU3VmZml4ID0gc1N0cmluZy5zdWJzdHIoIGNTdHJMZW4gLSBjU3VmZml4
TGVuLCBjU3VmZml4TGVuICk7CisKKyAgICAgICByZXR1cm4gMCA9PSBzdHJuY21wKCBzU3RyaW5n
U3VmZml4LmNfc3RyKCksIHNTdWZmaXguY19zdHIoKSxjU3VmZml4TGVuICk7Cit9CisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitz
dGQ6OnN0cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pCit7CisgICAgICAgc3RkOjpz
dHJpbmcgb3V0OworICAgICAgIHVuc2lnbmVkIGludCBjb2RlcG9pbnQgPSAwOworICAgICAgIGZv
ciAoIDsgaW4gJiYgKmluICE9IDA7ICsraW4gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYg
KCppbiA+PSAweGQ4MDAgJiYgKmluIDw9IDB4ZGJmZikKKyAgICAgICAgICAgICAgICAgICAgIGNv
ZGVwb2ludCA9ICgoKmluIC0gMHhkODAwKSA8PCAxMCkgKyAweDEwMDAwOworICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICgqaW4gPj0g
MHhkYzAwICYmICppbiA8PSAweGRmZmYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29k
ZXBvaW50IHw9ICppbiAtIDB4ZGMwMDsKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAqaW47CisKKyAgICAgICAgICAgICAg
ICAgICAgIGlmIChjb2RlcG9pbnQgPD0gMHg3ZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KGNvZGVwb2ludCkpOworICAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAoY29kZXBvaW50IDw9IDB4N2ZmKQorICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhjMCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgxZikpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAg
fCAoY29kZXBvaW50ICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKGNvZGVwb2ludCA8PSAweGZmZmYpCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0
aWNfY2FzdDxjaGFyPigweGUwIHwgKChjb2RlcG9pbnQgPj4gMTIpICYgMHgwZikpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4
ODAgfCAoKGNvZGVwb2ludCA+PiA2KSAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKGNvZGVwb2ludCAm
IDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweGYwIHwgKChjb2RlcG9pbnQgPj4gMTgp
ICYgMHgwNykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoKGNvZGVwb2ludCA+PiAxMikgJiAweDNmKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4o
MHg4MCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoY29kZXBvaW50
ICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IGNvZGVwb2ludCA9IDA7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJu
IG91dDsKK30KKworc3RkOjp3c3RyaW5nIFVURjh0bzE2KGNvbnN0IGNoYXIgKiBpbikKK3sKKyAg
ICAgICBzdGQ6OndzdHJpbmcgb3V0OworICAgICAgIHVuc2lnbmVkIGludCBjb2RlcG9pbnQgPSAw
OworICAgICAgIGludCBmb2xsb3dpbmcgPSAwOworICAgICAgIGZvciAoIDsgaW4gJiYgKmluICE9
IDA7ICsraW4gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9ICpp
bjsKKyAgICAgICAgICAgICAgaWYgKGNoIDw9IDB4N2YpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IGNoOworICAgICAgICAgICAgICAgICAgICAgZm9s
bG93aW5nID0gMDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8
PSAweGJmKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoZm9sbG93
aW5nID4gMCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb2RlcG9pbnQgPSAoY29kZXBvaW50IDw8IDYpIHwgKGNoICYgMHgzZik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS1mb2xsb3dpbmc7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPD0gMHhkZikKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2ggJiAweDFm
OworICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nID0gMTsKKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8PSAweGVmKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MGY7CisgICAgICAgICAgICAgICAg
ICAgICBmb2xsb3dpbmcgPSAyOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2ggJiAw
eDA3OworICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nID0gMzsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBpZiAoZm9sbG93aW5nID09IDApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIGlmIChjb2RlcG9pbnQgPiAweGZmZmYpCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0
aWNfY2FzdDx3Y2hhcl90PigweGQ4MDAgKyAoY29kZXBvaW50ID4+IDEwKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8d2NoYXJfdD4oMHhk
YzAwICsgKGNvZGVwb2ludCAmIDB4MDNmZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
YXBwZW5kKDEsIHN0YXRpY19jYXN0PHdjaGFyX3Q+KGNvZGVwb2ludCkpOworICAgICAgICAgICAg
ICAgICAgICAgY29kZXBvaW50ID0gMDsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAg
ICByZXR1cm4gb3V0OworfQorCisKK3ZvaWQgc3RyY3B5X3NhZmUoIGNoYXIgKnBjaEJ1ZmZlciwg
c2l6ZV90IHVuQnVmZmVyU2l6ZUJ5dGVzLCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKQoreworICAg
ICAgIHBjaEJ1ZmZlclsgdW5CdWZmZXJTaXplQnl0ZXMgLSAxIF0gPSAnXDAnOworICAgICAgIHN0
cm5jcHkoIHBjaEJ1ZmZlciwgcGNoU291cmNlLCB1bkJ1ZmZlclNpemVCeXRlcyAtIDEgKTsKK30K
KworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogY29udmVydHMgYSBzdHJpbmcgdG8gdXBw
ZXIgY2FzZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc091dDsKKyAg
ICAgICBzT3V0LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgpICsgMSApOworICAgICAgIGZvciggc3Rk
OjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3RyaW5nLmJlZ2luKCk7IGkgIT0gc1N0cmlu
Zy5lbmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHNPdXQucHVzaF9iYWNrKCAo
Y2hhcil0b3VwcGVyKCAqaSApICk7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNPdXQ7Cit9
CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IGNvbnZlcnRzIGEgc3RyaW5nIHRvIGxv
d2VyIGNhc2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBTdHJpbmdUb0xvd2VyKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNPdXQ7Cisg
ICAgICAgc091dC5yZXNlcnZlKCBzU3RyaW5nLnNpemUoKSArIDEgKTsKKyAgICAgICBmb3IoIHN0
ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpID0gc1N0cmluZy5iZWdpbigpOyBpICE9IHNTdHJp
bmcuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBzT3V0LnB1c2hfYmFjaygg
KGNoYXIpdG9sb3dlciggKmkgKSApOworICAgICAgIH0KKworICAgICAgIHJldHVybiBzT3V0Owor
fQorCisKK3VpbnQzMl90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFs
dWUsIGNoYXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKQoreworICAgICAgIHVp
bnQzMl90IHVuTGVuID0gKHVpbnQzMl90KXNWYWx1ZS5sZW5ndGgoKSArIDE7CisgICAgICAgaWYo
ICFwY2hCdWZmZXIgfHwgIXVuQnVmZmVyTGVuICkKKyAgICAgICAgICAgICAgcmV0dXJuIHVuTGVu
OworCisgICAgICAgaWYoIHVuQnVmZmVyTGVuIDwgdW5MZW4gKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcGNoQnVmZmVyWzBdID0gJ1wwJzsKKyAgICAgICB9CisgICAgICAgZWxzZQorICAgICAg
IHsKKyAgICAgICAgICAgICAgbWVtY3B5KCBwY2hCdWZmZXIsIHNWYWx1ZS5jX3N0cigpLCB1bkxl
biApOworICAgICAgIH0KKworICAgICAgIHJldHVybiB1bkxlbjsKK30KKwordm9pZCBCdWZmZXJU
b1N0ZFN0cmluZyggc3RkOjpzdHJpbmcgJiBzRGVzdCwgY29uc3QgY2hhciAqcGNoQnVmZmVyLCB1
aW50MzJfdCB1bkJ1ZmZlckxlbiApCit7CisgICAgICAgc0Rlc3QucmVzaXplKCB1bkJ1ZmZlckxl
biArIDEgKTsKKyAgICAgICBtZW1jcHkoIGNvbnN0X2Nhc3Q8IGNoYXIqID4oIHNEZXN0LmNfc3Ry
KCkgKSwgcGNoQnVmZmVyLCB1bkJ1ZmZlckxlbiApOworICAgICAgIGNvbnN0X2Nhc3Q8IGNoYXIq
ID4oIHNEZXN0LmNfc3RyKCkgKVsgdW5CdWZmZXJMZW4gXSA9ICdcMCc7Cit9CisKKy8qKiBSZXR1
cm5zIGEgc3RkOjpzdHJpbmcgZnJvbSBhIHVpbnQ2NF90ICovCitzdGQ6OnN0cmluZyBVaW50NjRU
b1N0cmluZyggdWludDY0X3QgdWxWYWx1ZSApCit7CisgICAgICAgY2hhciBidWZbIDIyIF07Cisj
aWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzcHJpbnRmX3MoIGJ1ZiwgIiVsbHUiLCB1bFZh
bHVlICk7CisjZWxzZQorICAgIHNucHJpbnRmKCBidWYsIHNpemVvZiggYnVmICksICIlbGx1Iiwg
KGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQgKSB1bFZhbHVlICk7CisjZW5kaWYKKyAgICAgICByZXR1
cm4gYnVmOworfQorCisKKy8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJvbSBhIHN0cmluZyAqLwor
dWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ZhbHVlICkKK3sK
KyAgICAgICByZXR1cm4gc3RydG91bGwoIHNWYWx1ZS5jX3N0cigpLCBOVUxMLCAwICk7Cit9CisK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEhlbHBlciBmb3IgY29udmVydGlu
ZyBhIG51bWVyaWMgdmFsdWUgdG8gYSBoZXggZGlnaXQsIHZhbHVlIHNob3VsZCBiZSAwLTE1Lgor
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY2hhciBjSW50VG9IZXhEaWdpdCggaW50IG5WYWx1ZSAp
Cit7CisgICAgICAgLy9Bc3NlcnQoIG5WYWx1ZSA+PSAwICYmIG5WYWx1ZSA8PSAxNSApOworICAg
ICAgIHJldHVybiAiMDEyMzQ1Njc4OUFCQ0RFRiJbIG5WYWx1ZSAmIDE1IF07Cit9CisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEhlbHBlciBmb3IgY29udmVydGluZyBhIGhl
eCBjaGFyIHZhbHVlIHRvIG51bWVyaWMsIHJldHVybiAtMSBpZiB0aGUgY2hhcgorLy8gICAgICAg
ICAgaXMgbm90IGEgdmFsaWQgaGV4IGRpZ2l0LgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoraW50
IGlIZXhDaGFyVG9JbnQoIGNoYXIgY1ZhbHVlICkKK3sKKyAgICAgICBpbnQzMl90IGlWYWx1ZSA9
IGNWYWx1ZTsKKyAgICAgICBpZiAoICh1aW50MzJfdCkoIGlWYWx1ZSAtICcwJyApIDwgMTAgKQor
ICAgICAgICAgICAgICByZXR1cm4gaVZhbHVlIC0gJzAnOworCisgICAgICAgaVZhbHVlIHw9IDB4
MjA7CisgICAgICAgaWYgKCAodWludDMyX3QpKCBpVmFsdWUgLSAnYScgKSA8IDYgKQorICAgICAg
ICAgICAgICByZXR1cm4gaVZhbHVlIC0gJ2EnICsgMTA7CisKKyAgICAgICByZXR1cm4gLTE7Cit9
CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEludGVybmFsIGltcGxlbWVu
dGF0aW9uIG9mIGVuY29kZSwgd29ya3MgaW4gdGhlIHN0cmljdCBSRkMgbWFubmVyLCBvcgorLy8g
ICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVkIHRvICsgbGlrZSBIVE1MIGZvcm0gZW5jb2Rpbmcu
CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfVVJMRW5jb2RlSW50ZXJuYWwoIGNoYXIg
KnBjaERlc3QsIGludCBuRGVzdExlbiwgY29uc3QgY2hhciAqcGNoU291cmNlLCBpbnQgblNvdXJj
ZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkKK3sKKyAgICAgICAvL0Fzc2VydE1zZyggbkRl
c3RMZW4gPiAzKm5Tb3VyY2VMZW4sICJUYXJnZXQgYnVmZmVyIGZvciBWX1VSTEVuY29kZSBzaG91
bGQgYmUgM3ggc291cmNlIGxlbmd0aCwgcGx1cyBvbmUgZm9yIHRlcm1pbmF0aW5nIG51bGxcbiIg
KTsKKyAgICAgICAKKyAgICAgICBpbnQgaURlc3RQb3MgPSAwOworICAgICAgIGZvciAoIGludCBp
PTA7IGkgPCBuU291cmNlTGVuOyArK2kgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gd29y
c3QgY2FzZSB3ZSBuZWVkIDMgYWRkaXRpb25hbCBjaGFycworICAgICAgICAgICAgICBpZiggKGlE
ZXN0UG9zKzMpID4gbkRlc3RMZW4gICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgcGNoRGVzdFswXSA9ICdcMCc7CisvLyAgICAgICAgICAgICAgICAgICAgIEFzc2VydE1z
ZyggZmFsc2UsICJUYXJnZXQgYnVmZmVyIHRvbyBzaG9ydFxuIiApOworICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gV2UgYWxs
b3cgb25seSBhLXosIEEtWiwgMC05LCBwZXJpb2QsIHVuZGVyc2NvcmUsIGFuZCBoeXBoZW4gdG8g
cGFzcyB0aHJvdWdoIHVuZXNjYXBlZC4KKyAgICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBj
aGFyYWN0ZXJzIGFsbG93ZWQgYnkgYm90aCB0aGUgb3JpZ2luYWwgUkZDIDE3MzggYW5kIHRoZSBs
YXRlc3QgUkZDIDM5ODYuCisgICAgICAgICAgICAgIC8vIEN1cnJlbnQgc3BlY3MgYWxzbyBhbGxv
dyAnficsIGJ1dCB0aGF0IGlzIGZvcmJpZGRlbiB1bmRlciBvcmlnaW5hbCBSRkMgMTczOC4KKyAg
ICAgICAgICAgICAgaWYgKCAhKCBwY2hTb3VyY2VbaV0gPj0gJ2EnICYmIHBjaFNvdXJjZVtpXSA8
PSAneicgKSAmJiAhKCBwY2hTb3VyY2VbaV0gPj0gJ0EnICYmIHBjaFNvdXJjZVtpXSA8PSAnWicg
KSAmJiAhKHBjaFNvdXJjZVtpXSA+PSAnMCcgJiYgcGNoU291cmNlW2ldIDw9ICc5JyApCisgICAg
ICAgICAgICAgICAgICAgICAgJiYgcGNoU291cmNlW2ldICE9ICctJyAmJiBwY2hTb3VyY2VbaV0g
IT0gJ18nICYmIHBjaFNvdXJjZVtpXSAhPSAnLicgICAgICAgCisgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBiVXNlUGx1c0ZvclNwYWNl
ICYmIHBjaFNvdXJjZVtpXSA9PSAnICcgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnKyc7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysr
XSA9ICclJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGlWYWx1ZSA9IHBj
aFNvdXJjZVtpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlWYWx1ZSA9PSAw
ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnMCc7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnMCc7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgY0hleERpZ2l0MSA9IGNJbnRUb0hleERpZ2l0KCBpVmFsdWUgJSAxNiApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVmFsdWUgLz0gMTY7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MiA9IGNJbnRUb0hleERp
Z2l0KCBpVmFsdWUgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVz
dFtpRGVzdFBvcysrXSA9IGNIZXhEaWdpdDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSBjSGV4RGlnaXQxOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IHBjaERlc3RbaURlc3RQb3MrK10gPSBwY2hTb3VyY2VbaV07CisgICAgICAgICAgICAgIH0KKyAg
ICAgICB9CisKKyAgICAgICBpZiggKGlEZXN0UG9zKzEpID4gbkRlc3RMZW4gKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcGNoRGVzdFswXSA9ICdcMCc7CisgICAgICAgICAgICAgIC8vQXNzZXJ0
TXNnKCBmYWxzZSwgIlRhcmdldCBidWZmZXIgdG9vIHNob3J0IHRvIHRlcm1pbmF0ZVxuIiApOwor
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorCisgICAgICAgLy8gTnVsbCB0ZXJtaW5h
dGUKKyAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gMDsKK30KKworCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBQdXJwb3NlOiBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvZiBkZWNvZGUs
IHdvcmtzIGluIHRoZSBzdHJpY3QgUkZDIG1hbm5lciwgb3IKKy8vICAgICAgICAgIHdpdGggc3Bh
Y2VzIHR1cm5lZCB0byArIGxpa2UgSFRNTCBmb3JtIGVuY29kaW5nLgorLy8KKy8vICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJucyB0aGUgYW1vdW50IG9mIHNwYWNlIHVzZWQgaW4gdGhlIG91dHB1
dCBidWZmZXIuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzaXplX3QgVl9VUkxEZWNvZGVJbnRl
cm5hbCggY2hhciAqcGNoRGVjb2RlRGVzdCwgaW50IG5EZWNvZGVEZXN0TGVuLCBjb25zdCBjaGFy
ICpwY2hFbmNvZGVkU291cmNlLCBpbnQgbkVuY29kZWRTb3VyY2VMZW4sIGJvb2wgYlVzZVBsdXNG
b3JTcGFjZSApCit7CisgICAgICAgaWYgKCBuRGVjb2RlRGVzdExlbiA8IG5FbmNvZGVkU291cmNl
TGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vQXNzZXJ0TXNnKCBmYWxzZSwgIlZfVVJM
RGVjb2RlIG5lZWRzIGEgZGVzdCBidWZmZXIgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgdGhlIHNvdXJj
ZSIgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfQorCisgICAgICAgaW50IGlE
ZXN0UG9zID0gMDsKKyAgICAgICBmb3IoIGludCBpPTA7IGkgPCBuRW5jb2RlZFNvdXJjZUxlbjsg
KytpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggYlVzZVBsdXNGb3JTcGFjZSAmJiBw
Y2hFbmNvZGVkU291cmNlW2ldID09ICcrJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9ICcgJzsKKyAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICBlbHNlIGlmICggcGNoRW5jb2RlZFNvdXJjZVtpXSA9PSAnJScg
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAvLyBQZXJjZW50IHNpZ25p
ZmllcyBhbiBlbmNvZGVkIHZhbHVlLCBsb29rIGFoZWFkIGZvciB0aGUgaGV4IGNvZGUsIGNvbnZl
cnQgdG8gbnVtZXJpYywgYW5kIHVzZSB0aGF0CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIEZp
cnN0IG1ha2Ugc3VyZSB3ZSBoYXZlIDIgbW9yZSBjaGFycworICAgICAgICAgICAgICAgICAgICAg
aWYgKCBpIDwgbkVuY29kZWRTb3VyY2VMZW4gLSAyICkKKyAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDEgPSBwY2hFbmNvZGVk
U291cmNlW2krMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQy
ID0gcGNoRW5jb2RlZFNvdXJjZVtpKzJdOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVHVybiB0aGUgY2hhcnMgaW50byBhIGhleCB2YWx1ZSwgaWYgdGhleSBhcmUgbm90IHZhbGlk
LCB0aGVuIHdlJ2xsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBwbGFjZSB0
aGUgJSBhbmQgdGhlIGZvbGxvd2luZyB0d28gY2hhcnMgZGlyZWN0IGludG8gdGhlIHN0cmluZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIHRob3VnaCB0aGlzIHJlYWxseSBz
aG91bGRuJ3QgaGFwcGVuLCB3aG8ga25vd3Mgd2hhdCBiYWQgY2xpZW50cworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIG1heSBkbyB3aXRoIGVuY29kaW5nLgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgYlZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGlWYWx1ZSA9IGlIZXhDaGFyVG9JbnQoIGNIZXhEaWdpdDEgKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIGlWYWx1ZSAhPSAtMSApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVmFsdWUg
Kj0gMTY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpVmFsdWUyID0g
aUhleENoYXJUb0ludCggY0hleERpZ2l0MiApOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIGlWYWx1ZTIgIT0gLTEgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVmFs
dWUgKz0gaVZhbHVlMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IChjaGFyKWlWYWx1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICFiVmFsaWQgKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gJyUnOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSBjSGV4RGlnaXQxOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBv
cysrIF0gPSBjSGV4RGlnaXQyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBhaGVhZAor
ICAgICAgICAgICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2Rl
RGVzdFsgaURlc3RQb3MrKyBdID0gcGNoRW5jb2RlZFNvdXJjZVtpXTsKKyAgICAgICAgICAgICAg
fQorICAgICAgIH0KKworICAgICAgIC8vIFdlIG1heSBub3QgaGF2ZSBleHRyYSByb29tIHRvIE5V
TEwgdGVybWluYXRlLCBzaW5jZSB0aGlzIGNhbiBiZSB1c2VkIG9uIHJhdyBkYXRhLCBidXQgaWYg
d2UgZG8KKyAgICAgICAvLyBnbyBhaGVhZCBhbmQgZG8gaXQgYXMgdGhpcyBjYW4gYXZvaWQgYnVn
cy4KKyAgICAgICBpZiAoIGlEZXN0UG9zIDwgbkRlY29kZURlc3RMZW4gKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFtpRGVzdFBvc10gPSAwOworICAgICAgIH0KKworICAg
ICAgIHJldHVybiAoc2l6ZV90KWlEZXN0UG9zOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisvLyBQdXJwb3NlOiBFbmNvZGVzIGEgc3RyaW5nIChvciBiaW5hcnkgZGF0YSkgZnJvbSBVUkwg
ZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9uIDIuMi4gIAorLy8gICAgICAgICAg
VGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3RyaWN0IFJGQyBpbXBsZW1lbnRhdGlv
biwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAgICAgICAgIHRoZSBzdGFuZGFyZCBp
biBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90IGJlaW5nIHBhcnQgb2YgdGhlIFJG
Qy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3QgYXMgbGFy
Z2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9vbSBmb3IgZGVjb2RlLgorLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1VSTEVuY29kZSggY2hhciAqcGNoRGVzdCwgaW50IG5E
ZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuICkKK3sKKyAgICAg
ICByZXR1cm4gVl9VUkxFbmNvZGVJbnRlcm5hbCggcGNoRGVzdCwgbkRlc3RMZW4sIHBjaFNvdXJj
ZSwgblNvdXJjZUxlbiwgdHJ1ZSApOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8v
IFB1cnBvc2U6IERlY29kZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNv
ZGluZyBmb3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCisvLyAgICAgICAgICBUaGlz
IHZlcnNpb24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBi
dXQgdXNlcyArIGZvciBzcGFjZSBhcyBpcworLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhU
TUwgZm9ybSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgor
Ly8KKy8vICAgICAgICAgIERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBh
cyBzb3VyY2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCisvLyAgICAgICAg
ICAgICAgICAgICAgIERlc3QgYnVmZmVyIGJlaW5nIHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgYnVm
ZmVyIChkZWNvZGUgaW4tcGxhY2UpIGlzIGV4cGxpY2l0bHkgYWxsb3dlZC4KKy8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK3NpemVfdCBWX1VSTERlY29kZSggY2hhciAqcGNoRGVjb2RlRGVzdCwgaW50
IG5EZWNvZGVEZXN0TGVuLCBjb25zdCBjaGFyICpwY2hFbmNvZGVkU291cmNlLCBpbnQgbkVuY29k
ZWRTb3VyY2VMZW4gKQoreworICAgICAgIHJldHVybiBWX1VSTERlY29kZUludGVybmFsKCBwY2hE
ZWNvZGVEZXN0LCBuRGVjb2RlRGVzdExlbiwgcGNoRW5jb2RlZFNvdXJjZSwgbkVuY29kZWRTb3Vy
Y2VMZW4sIHRydWUgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1N0cmlw
RXh0ZW5zaW9uKCBzdGQ6OnN0cmluZyAmaW4gKQoreworICAgICAgIC8vIEZpbmQgdGhlIGxhc3Qg
ZG90LiBJZiBpdCdzIGZvbGxvd2VkIGJ5IGEgZG90IG9yIGEgc2xhc2gsIHRoZW4gaXQncyBwYXJ0
IG9mIGEgCisgICAgICAgLy8gZGlyZWN0b3J5IHNwZWNpZmllciBsaWtlIC4uLy4uL3NvbWVkaXIv
Li9ibGFoLgorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgdGVzdCA9IGluLnJmaW5kKCAn
LicgKTsKKyAgICAgICBpZiAoIHRlc3QgIT0gc3RkOjpzdHJpbmc6Om5wb3MgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoaW5ncyBsaWtlICIuXGJsYWgiIG9yICJj
OlxteUBlbWFpbC5jb21cYWJjXGRlZlxnZWgiCisgICAgICAgICAgICAgIC8vIFdoaWNoIHdvdWxk
IG90aGVyd2lzZSB3aW5kIHVwIHdpdGggIiIgYW5kICJjOlxteUBlbWFpbCIsIHJlc3BlY3RpdmVs
eS4KKyAgICAgICAgICAgICAgaWYgKCBpbi5yZmluZCggJ1xcJyApIDwgdGVzdCAmJiBpbi5yZmlu
ZCggJy8nICkgPCB0ZXN0ICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
aW4ucmVzaXplKCB0ZXN0ICk7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9Cit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVi
bGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRvb2xzX3B1
YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAwNjNlNTRhMjhjNzM0Yjc3ZjkyZjc3ODM0NmEzYTZhODVjNjRm
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL3N0cnRvb2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTI2IEBACisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy90eXBl
cy5oPgorCisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzdHJpbmcgaGFzIHRoZSBwcmVmaXggKi8K
K2Jvb2wgU3RyaW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCApOworYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0
aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1By
ZWZpeCApOworCisvKiogcmV0dXJucyBpZiB0aGUgc3RyaW5nIGhhcyB0aGUgc3VmZml4ICovCiti
b29sIFN0cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICZzU3VmZml4ICk7Citib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUo
IGNvbnN0IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCAp
OworCisvKiogY29udmVydHMgYSBVVEYtMTYgc3RyaW5nIHRvIGEgVVRGLTggc3RyaW5nICovCitz
dGQ6OnN0cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pOworCisvKiogY29udmVydHMg
YSBVVEYtOCBzdHJpbmcgdG8gYSBVVEYtMTYgc3RyaW5nICovCitzdGQ6OndzdHJpbmcgVVRGOHRv
MTYoY29uc3QgY2hhciAqIGluKTsKKyNkZWZpbmUgVXRmMTZGcm9tVXRmOCBVVEY4dG8xNgorCisv
Kiogc2FmZWx5IGNvcHkgYSBzdHJpbmcgaW50byBhIGJ1ZmZlciAqLwordm9pZCBzdHJjcHlfc2Fm
ZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZSApOwordGVtcGxhdGU8IHNpemVfdCBidWZmZXJTaXplID4KK3ZvaWQgc3RyY3B5
X3NhZmUoIGNoYXIgKCYgYnVmZmVyKSBbIGJ1ZmZlclNpemUgXSwgY29uc3QgY2hhciAqcGNoU291
cmNlICkgCit7CisgICAgICAgc3RyY3B5X3NhZmUoIGJ1ZmZlciwgYnVmZmVyU2l6ZSwgcGNoU291
cmNlICk7Cit9CisKKworLyoqIGNvbnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UgKi8KK3N0
ZDo6c3RyaW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApOwor
CisvKiogY29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZSAqLworc3RkOjpzdHJpbmcgU3Ry
aW5nVG9Mb3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICk7CisKKy8vIHdlIHN0cmlj
bXAgKGZyb20gV0lOKSBidXQgaXQgaXNuJ3QgUE9TSVggLSBPU1gvTElOVVggaGF2ZSBzdHJjYXNl
Y21wIHNvIGp1c3QgaW5saW5lIGJyaWRnZSB0byBpdAorI2lmIGRlZmluZWQoIE9TWCApIHx8IGRl
ZmluZWQoIExJTlVYICkKKyNpbmNsdWRlIDxzdHJpbmdzLmg+CitpbmxpbmUgaW50IHN0cmljbXAo
Y29uc3QgY2hhciAqcFN0cjEsIGNvbnN0IGNoYXIgKnBTdHIyKSB7IHJldHVybiBzdHJjYXNlY21w
KHBTdHIxLHBTdHIyKTsgfQorI2RlZmluZSBfc3RyaWNtcCBzdHJpY21wCitpbmxpbmUgaW50IHN0
cm5pY21wKCBjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0cjIsIHNpemVfdCB1bkJ1
ZmZlckxlbiApIHsgcmV0dXJuIHN0cm5jYXNlY21wKCBwU3RyMSxwU3RyMiwgdW5CdWZmZXJMZW4g
KTsgfQorI2RlZmluZSBfc3RybmljbXAgc3RybmljbXAKKworI2RlZmluZSBfdnNucHJpbnRmX3Mg
dnNucHJpbnRmCisKKyNkZWZpbmUgX1RSVU5DQVRFICgoc2l6ZV90KS0xKQorCisjZW5kaWYKKwor
I2lmIGRlZmluZWQoIE9TWCApCisvLyBiZWhhdmlvcnMgZW5zdXJlIE5VTEwtdGVybWluYXRpb24g
YXQgbGVhc3QgYXMgd2VsbCBhcyBfVFJVTkNBVEUgZG9lcywgYnV0CisvLyB3Y3NuY3B5X3Mvc3Ry
bmNweV9zIGNhbiBub24tTlVMTC10ZXJtaW5hdGUsIHdjc2xjcHkvc3RybGNweSBjYW4gbm90Lgor
aW5saW5lIGVycm5vX3Qgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJP
ZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKK3sKKyAg
ICAgICByZXR1cm4gd2NzbGNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMp
OworfQorCitpbmxpbmUgZXJybm9fdCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6ZV90IG51
bWJlck9mRWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQorewor
ICAgICAgIHJldHVybiBzdHJsY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50
cyk7Cit9CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggTElOVVggKQorLy8gdGhpcyBpbXBsZW1l
bnRhdGlvbiBkb2VzIG5vdCByZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGRlc3RpbmF0aW9uIHdh
cyAKKy8vIHRydW5jYXRlZCwgYnV0IHRoYXQgaXMgc3RyYWlnaHRmb3J3YXJkIHRvIGZpeCBpZiBh
bnlib2R5IGFjdHVhbGx5IG5lZWRzIHRoZQorLy8gcmV0dXJuIGNvZGUuIAorI2luY2x1ZGUgInN0
cmluZy5oIgoraW5saW5lIHZvaWQgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBu
dW1iZXJPZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkK
K3sKKyAgICAgICB3Y3NuY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7
CisgICAgICAgc3RyRGVzdFtudW1iZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKK30KKworaW5saW5l
IHZvaWQgc3RybmNweV9zKGNoYXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBj
b25zdCBjaGFyICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKK3sKKyAgICAgICBzdHJuY3B5KHN0
ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7CisgICAgICAgc3RyRGVzdFtudW1i
ZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKK30KKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfV0lO
MzIgKSAmJiBfTVNDX1ZFUiA8IDE4MDAKK2lubGluZSB1aW50NjRfdCBzdHJ0b3VsbChjb25zdCBj
aGFyICpzdHIsIGNoYXIgKiplbmRwdHIsIGludCBiYXNlKSB7IHJldHVybiBfc3RydG91aTY0KCBz
dHIsIGVuZHB0ciwgYmFzZSApOyB9CisjZW5kaWYKKworLyogSGFuZGxlcyBjb3B5aW5nIGEgc3Rk
OjpzdHJpbmcgaW50byBhIGJ1ZmZlciBhcyB3b3VsZCBiZSBwcm92aWRlZCBpbiBhbiBBUEkgKi8K
K3VpbnQzMl90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUsIGNo
YXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKKworLyogSGFuZGxlcyBjb3B5
aW5nIGEgYnVmZmVyIGludG8gYW4gc3RkOjpzdHJpbmcgYW5kIGF1dG8gYWRkcyBudWxsIHRlcm1p
bmF0b3IgKi8KK3ZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3RyaW5nICYgc0Rlc3QsIGNv
bnN0IGNoYXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKKworLyoqIFJldHVy
bnMgYSBzdGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KK3N0ZDo6c3RyaW5nIFVpbnQ2NFRv
U3RyaW5nKCB1aW50NjRfdCB1bFZhbHVlICk7CisKKy8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJv
bSBhIHN0cmluZyAqLwordWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgc1ZhbHVlICk7CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEVuY29k
ZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNl
ZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhl
IGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBz
cGFjZSBhcyBpcworLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGlu
ZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAgICAg
IERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVy
IHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2
b2lkIFZfVVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4gKTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8gUHVycG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVu
Y29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKKy8vICAgICAgICAgIFRo
aXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24s
IGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4g
SFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMu
CisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdl
IGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KKy8vICAgICAg
ICAgICAgICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBi
dWZmZXIgKGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBp
bnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5j
b2RlZFNvdXJjZUxlbiApOworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBz
dHJpcCBleHRlbnNpb24gZnJvbSBhIHBhdGgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQg
Vl9TdHJpcEV4dGVuc2lvbiggc3RkOjpzdHJpbmcgJmluICk7CisKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMu
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3Ry
eV9wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZjMwNDI0YTlmZjM2MWM4MzZmOWE0YzA4Y2ZhNjg0
NmFhZDM3YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAKQEAgLTAsMCArMSw0MTEgQEAKKy8v
PT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworCisj
aW5jbHVkZSAidnJwYXRocmVnaXN0cnlfcHVibGljLmgiCisjaW5jbHVkZSAianNvbi9qc29uLmgi
CisjaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1
YmxpYy5oIgorI2luY2x1ZGUgInN0cnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgImRpcnRvb2xz
X3B1YmxpYy5oIgorCisjaWYgZGVmaW5lZCggV0lOMzIgKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4K
KyNpbmNsdWRlIDxzaGxvYmouaD4KKworI3VuZGVmIEdldEVudmlyb25tZW50VmFyaWFibGUKKyNl
bGlmIGRlZmluZWQgT1NYCisjaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW5j
bHVkZSA8QXBwS2l0L0FwcEtpdC5oPgorI2VsaWYgZGVmaW5lZChMSU5VWCkKKyNpbmNsdWRlIDxk
bGZjbi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKworI2lmbmRlZiBWUkxvZworICAgICAgICNpZiBkZWZpbmVkKCBfX01JTkdXMzJfXyApCisg
ICAgICAgICAgICAgICNkZWZpbmUgVlJMb2coYXJncy4uLikgICAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCBhcmdzKQorICAgICAgICNlbGlmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICAgICAg
ICAgI2RlZmluZSBWUkxvZyhmbXQsIC4uLikgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCBm
bXQsIF9fVkFfQVJHU19fKQorICAgICAgICNlbHNlCisgICAgICAgICAgICAgICNkZWZpbmUgVlJM
b2coYXJncy4uLikgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCBhcmdzKQorICAgICAgICNl
bmRpZgorI2VuZGlmCisKKy8qKiBSZXR1cm5zIHRoZSByb290IG9mIHRoZSBkaXJlY3RvcnkgdGhl
IHN5c3RlbSB3YW50cyB1cyB0byBzdG9yZSB1c2VyIGNvbmZpZyBkYXRhIGluICovCitzdGF0aWMg
c3RkOjpzdHJpbmcgR2V0QXBwU2V0dGluZ3NQYXRoKCkKK3sKKyNpZiBkZWZpbmVkKCBXSU4zMiAp
CisgICAgICAgV0NIQVIgcndjaFBhdGhbTUFYX1BBVEhdOworCisgICAgICAgaWYoICFTVUNDRUVE
RUQoIFNIR2V0Rm9sZGVyUGF0aFcoIE5VTEwsIENTSURMX0xPQ0FMX0FQUERBVEEgfCBDU0lETF9G
TEFHX0NSRUFURSwgTlVMTCwgMCwgcndjaFBhdGggKSApICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHJldHVybiAiIjsKKyAgICAgICB9CisKKyAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRv
IFVURi04IGFuZCBzdG9yZSBpbiB0aGUgb3V0cHV0CisgICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQ
YXRoID0gVVRGMTZ0bzgoIHJ3Y2hQYXRoICk7CisKKyAgICAgICByZXR1cm4gc1VzZXJQYXRoOwor
I2VsaWYgZGVmaW5lZCggT1NYICkKKyAgICAgICBzdGQ6OnN0cmluZyBzU2V0dGluZ3NEaXI7Cisg
ICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICAgIC8vIFNlYXJjaCBmb3IgdGhl
IHBhdGgKKyAgICAgICAgICAgICAgTlNBcnJheSAqcGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJl
Y3Rvcmllc0luRG9tYWlucyggTlNBcHBsaWNhdGlvblN1cHBvcnREaXJlY3RvcnksIE5TVXNlckRv
bWFpbk1hc2ssIFlFUyApOworICAgICAgICAgICAgICBpZiAoIFtwYXRocyBjb3VudF0gPT0gMCAp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgTlNTdHJpbmcgKnJlc29s
dmVkUGF0aCA9IFtwYXRocyBvYmplY3RBdEluZGV4OjBdOworICAgICAgICAgICAgICByZXNvbHZl
ZFBhdGggPSBbcmVzb2x2ZWRQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDogQCJP
cGVuVlIiXTsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIGlmICggIVtbTlNGaWxlTWFu
YWdlciBuZXddIGNyZWF0ZURpcmVjdG9yeUF0UGF0aDogcmVzb2x2ZWRQYXRoIHdpdGhJbnRlcm1l
ZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXSApCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgc1NldHRpbmdzRGlyLmFzc2lnbiggW3Jl
c29sdmVkUGF0aCBVVEY4U3RyaW5nXSApOworICAgICAgIH0KKyAgICAgICByZXR1cm4gc1NldHRp
bmdzRGlyOworI2VsaWYgZGVmaW5lZCggTElOVVggKQorCisgICAgICAgLy8gQXMgZGVmaW5lZCBi
eSBYREcgQmFzZSBEaXJlY3RvcnkgU3BlY2lmaWNhdGlvbiAKKyAgICAgICAvLyBodHRwczovL3Nw
ZWNpZmljYXRpb25zLmZyZWVkZXNrdG9wLm9yZy9iYXNlZGlyLXNwZWMvYmFzZWRpci1zcGVjLWxh
dGVzdC5odG1sCisKKyAgICAgICBjb25zdCBjaGFyICpwY2hIb21lID0gZ2V0ZW52KCJYREdfQ09O
RklHX0hPTUUiKTsKKyAgICAgICBpZiAoICggcGNoSG9tZSAhPSBOVUxMKSAmJiAoIHBjaEhvbWVb
MF0gIT0gJ1wwJyApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBwY2hIb21lOwor
ICAgICAgIH0KKworICAgICAgIC8vCisgICAgICAgLy8gWERHX0NPTkZJR19IT01FIGlzIG5vdCBk
ZWZpbmVkLCB1c2Ugfi8uY29uZmlnIGluc3RlYWQKKyAgICAgICAvLyAKKyAgICAgICBwY2hIb21l
ID0gZ2V0ZW52KCAiSE9NRSIgKTsKKyAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCApCisgICAg
ICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorCisgICAgICAgc3RkOjpz
dHJpbmcgc1VzZXJQYXRoKCBwY2hIb21lICk7CisgICAgICAgc1VzZXJQYXRoID0gUGF0aF9Kb2lu
KCBzVXNlclBhdGgsICIuY29uZmlnIiApOworICAgICAgIHJldHVybiBzVXNlclBhdGg7CisjZWxz
ZQorICAgICAgICN3YXJuaW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKKyNlbmRpZgorfQorCisK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ29uc3RydWN0b3IKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6Q1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYygpCit7CisKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBDb21w
dXRlcyB0aGUgcmVnaXN0cnkgZmlsZW5hbWUKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpz
dHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCgpCit7Cisg
ICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGggPSBHZXRBcHBTZXR0aW5nc1BhdGgoKTsKKyAg
ICAgICBpZiggc0NvbmZpZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsK
KworI2lmIGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQoIExJTlVYICkKKyAgICAgICBzQ29u
ZmlnUGF0aCA9IFBhdGhfSm9pbiggc0NvbmZpZ1BhdGgsICJvcGVudnIiICk7CisjZWxpZiBkZWZp
bmVkICggT1NYICkgCisgICAgICAgc0NvbmZpZ1BhdGggPSBQYXRoX0pvaW4oIHNDb25maWdQYXRo
LCAiLm9wZW52ciIgKTsKKyNlbHNlCisgICAgICAgI3dhcm5pbmcgIlVuc3VwcG9ydGVkIHBsYXRm
b3JtIgorI2VuZGlmCisgICAgICAgc0NvbmZpZ1BhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNDb25m
aWdQYXRoICk7CisgICAgICAgcmV0dXJuIHNDb25maWdQYXRoOworfQorCisKKworLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6
c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUo
KQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gR2V0T3BlblZSQ29uZmlnUGF0aCgpOwor
ICAgICAgIGlmICggc1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKwor
I2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgc1BhdGggPSBQYXRoX0pvaW4oIHNQYXRoLCAi
b3BlbnZycGF0aHMudnJwYXRoIiApOworI2VsaWYgZGVmaW5lZCAoIFBPU0lYICkgCisgICAgICAg
c1BhdGggPSBQYXRoX0pvaW4oIHNQYXRoLCAib3BlbnZycGF0aHMudnJwYXRoIiApOworI2Vsc2UK
KyAgICAgICAjZXJyb3IgIlVuc3VwcG9ydGVkIHBsYXRmb3JtIgorI2VuZGlmCisgICAgICAgc1Bh
dGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7CisgICAgICAgcmV0dXJuIHNQYXRoOworfQor
CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ29udmVydHMgSlNPTiB0byBh
IGhpc3RvcnkgYXJyYXkKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RhdGljIHZvaWQgUGFyc2VT
dHJpbmdMaXN0RnJvbUpzb24oIHN0ZDo6dmVjdG9yPCBzdGQ6OnN0cmluZyA+ICpwdmVjSGlzdG9y
eSwgY29uc3QgSnNvbjo6VmFsdWUgJiByb290LCBjb25zdCBjaGFyICpwY2hBcnJheU5hbWUgKQor
eworICAgICAgIGlmKCAhcm9vdC5pc01lbWJlciggcGNoQXJyYXlOYW1lICkgKQorICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICBjb25zdCBKc29uOjpWYWx1ZSAmIGFycmF5Tm9kZSA9IHJv
b3RbIHBjaEFycmF5TmFtZSBdOworICAgICAgIGlmKCAhYXJyYXlOb2RlICkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIFZSTG9nKCAiVlIgUGF0aCBSZWdpc3RyeSBub2RlICVzIGlzIG5vdCBhbiBh
cnJheVxuIiwgcGNoQXJyYXlOYW1lICk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9
CisKKyAgICAgICBwdmVjSGlzdG9yeS0+Y2xlYXIoKTsKKyAgICAgICBwdmVjSGlzdG9yeS0+cmVz
ZXJ2ZSggYXJyYXlOb2RlLnNpemUoKSApOworICAgICAgIGZvciggdWludDMyX3QgdW5JbmRleCA9
IDA7IHVuSW5kZXggPCBhcnJheU5vZGUuc2l6ZSgpOyB1bkluZGV4KysgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgc3RkOjpzdHJpbmcgc1BhdGgoIGFycmF5Tm9kZVsgdW5JbmRleCBdLmFzU3Ry
aW5nKCkgKTsKKyAgICAgICAgICAgICAgcHZlY0hpc3RvcnktPnB1c2hfYmFjayggc1BhdGggKTsK
KyAgICAgICB9Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBDb252
ZXJ0cyBhIGhpc3RvcnkgYXJyYXkgdG8gSlNPTgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGF0
aWMgdm9pZCBTdHJpbmdMaXN0VG9Kc29uKCBjb25zdCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcg
PiAmIHZlY0hpc3RvcnksIEpzb246OlZhbHVlICYgcm9vdCwgY29uc3QgY2hhciAqcGNoQXJyYXlO
YW1lICkKK3sKKyAgICAgICBKc29uOjpWYWx1ZSAmIGFycmF5Tm9kZSA9IHJvb3RbIHBjaEFycmF5
TmFtZSBdOworICAgICAgIGZvciggYXV0byBpID0gdmVjSGlzdG9yeS5iZWdpbigpOyBpICE9IHZl
Y0hpc3RvcnkuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBhcnJheU5vZGUu
YXBwZW5kKCAqaSApOworICAgICAgIH0KK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisv
LyBQdXJwb3NlOgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlf
UHVibGljOjpUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZzSnNvblN0cmluZyApCit7CisgICAg
ICAgc3RkOjpzdHJpbmcgc1JlZ1BhdGggPSBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7Cisg
ICAgICAgaWYoIHNSZWdQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgCisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSBQYXRoX1Jl
YWRUZXh0RmlsZSggc1JlZ1BhdGggKTsKKyAgICAgICBpZiggc1JlZ2lzdHJ5Q29udGVudHMuZW1w
dHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIHNKc29uU3RyaW5n
ID0gc1JlZ2lzdHJ5Q29udGVudHM7CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IExvYWRzIHRoZSBjb25maWcgZmlsZSBmcm9t
IGl0cyB3ZWxsIGtub3duIGxvY2F0aW9uCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QkxvYWRGcm9tRmlsZSgpCit7CisgICAgICAgc3RkOjpzdHJp
bmcgc1JlZ1BhdGggPSBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7CisgICAgICAgaWYoIHNS
ZWdQYXRoLmVtcHR5KCkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJVbmFibGUg
dG8gZGV0ZXJtaW5lIFZSIFBhdGggUmVnaXN0cnkgZmlsZW5hbWVcbiIgKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdpc3Ry
eUNvbnRlbnRzID0gUGF0aF9SZWFkVGV4dEZpbGUoIHNSZWdQYXRoICk7CisgICAgICAgaWYoIHNS
ZWdpc3RyeUNvbnRlbnRzLmVtcHR5KCkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2co
ICJVbmFibGUgdG8gcmVhZCBWUiBQYXRoIFJlZ2lzdHJ5IGZyb20gJXNcbiIsIHNSZWdQYXRoLmNf
c3RyKCkgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAg
IEpzb246OlZhbHVlIHJvb3Q7CisgICAgICAgSnNvbjo6UmVhZGVyIHJlYWRlcjsKKworICAgICAg
IGlmKCAhcmVhZGVyLnBhcnNlKCBzUmVnaXN0cnlDb250ZW50cywgcm9vdCApICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRvIHBhcnNlICVzOiAlc1xuIiwgc1JlZ1Bh
dGguY19zdHIoKSwgcmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKS5jX3N0cigpICk7
CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAgICBQYXJzZVN0
cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjUnVudGltZVBhdGgsIHJvb3QsICJydW50aW1lIiApOwor
ICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNDb25maWdQYXRoLCByb290LCAi
Y29uZmlnIiApOworICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNMb2dQYXRo
LCByb290LCAibG9nIiApOworICAgICAgIGlmIChyb290LmlzTWVtYmVyKCAiZXh0ZXJuYWxfZHJp
dmVycyIgKSAmJiByb290WyAiZXh0ZXJuYWxfZHJpdmVycyIgXS5pc0FycmF5KCkgKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZtX3ZlY0V4dGVybmFs
RHJpdmVycywgcm9vdCwgImV4dGVybmFsX2RyaXZlcnMiICk7CisgICAgICAgfQorCisgICAgICAg
cmV0dXJuIHRydWU7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBT
YXZlcyB0aGUgY29uZmlnIGZpbGUgdG8gaXRzIHdlbGwga25vd24gbG9jYXRpb24KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpCU2F2ZVRvRmlsZSgp
IGNvbnN0Cit7CisjaWYgZGVmaW5lZCggREFTSEJPQVJEX0JVSUxEX01PREUgKQorICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbHNlCisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ1BhdGggPSBHZXRWUlBh
dGhSZWdpc3RyeUZpbGVuYW1lKCk7CisgICAgICAgaWYoIHNSZWdQYXRoLmVtcHR5KCkgKQorICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgCisgICAgICAgSnNvbjo6VmFsdWUgcm9v
dDsKKyAgICAgICAKKyAgICAgICByb290WyAidmVyc2lvbiIgXSA9IDE7CisgICAgICAgcm9vdFsg
Impzb25pZCIgXSA9ICJ2cnBhdGhyZWciOworCisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92
ZWNSdW50aW1lUGF0aCwgcm9vdCwgInJ1bnRpbWUiICk7CisgICAgICAgU3RyaW5nTGlzdFRvSnNv
biggbV92ZWNDb25maWdQYXRoLCByb290LCAiY29uZmlnIiApOworICAgICAgIFN0cmluZ0xpc3RU
b0pzb24oIG1fdmVjTG9nUGF0aCwgcm9vdCwgImxvZyIgKTsKKyAgICAgICBTdHJpbmdMaXN0VG9K
c29uKCBtX3ZlY0V4dGVybmFsRHJpdmVycywgcm9vdCwgImV4dGVybmFsX2RyaXZlcnMiICk7CisK
KyAgICAgICBKc29uOjpTdHlsZWRXcml0ZXIgd3JpdGVyOworICAgICAgIHN0ZDo6c3RyaW5nIHNS
ZWdpc3RyeUNvbnRlbnRzID0gd3JpdGVyLndyaXRlKCByb290ICk7CisKKyAgICAgICAvLyBtYWtl
IHN1cmUgdGhlIGRpcmVjdG9yeSB3ZSdyZSB3cml0aW5nIGludG8gYWN0dWFsbHkgZXhpc3RzCisg
ICAgICAgc3RkOjpzdHJpbmcgc1JlZ0RpcmVjdG9yeSA9IFBhdGhfU3RyaXBGaWxlbmFtZSggc1Jl
Z1BhdGggKTsKKyAgICAgICBpZiggIUJDcmVhdGVEaXJlY3RvcnlSZWN1cnNpdmUoIHNSZWdEaXJl
Y3RvcnkuY19zdHIoKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxl
IHRvIGNyZWF0ZSBwYXRoIHJlZ2lzdHJ5IGRpcmVjdG9yeSAlc1xuIiwgc1JlZ0RpcmVjdG9yeS5j
X3N0cigpICk7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAg
ICBpZiggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzUmVnUGF0aCwgc1JlZ2lzdHJ5Q29u
dGVudHMuY19zdHIoKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxl
IHRvIHdyaXRlIFZSIHBhdGggcmVnaXN0cnkgdG8gJXNcbiIsIHNSZWdQYXRoLmNfc3RyKCkgKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHJldHVybiB0
cnVlOworI2VuZGlmCit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBS
ZXR1cm5zIHRoZSBjdXJyZW50IHJ1bnRpbWUgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29u
ZmlndXJlZC4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lz
dHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGgoKSBjb25zdAoreworICAgICAgIGlmKCBtX3ZlY1J1
bnRpbWVQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxz
ZQorICAgICAgICAgICAgICByZXR1cm4gbV92ZWNSdW50aW1lUGF0aC5mcm9udCgpLmNfc3RyKCk7
Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXR1cm5zIHRoZSBj
dXJyZW50IGNvbmZpZyBwYXRoIG9yIE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpH
ZXRDb25maWdQYXRoKCkgY29uc3QKK3sKKyAgICAgICBpZiggbV92ZWNDb25maWdQYXRoLmVtcHR5
KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxzZQorICAgICAgICAgICAg
ICByZXR1cm4gbV92ZWNDb25maWdQYXRoLmZyb250KCkuY19zdHIoKTsKK30KKworCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgbG9nIHBhdGgg
b3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K3N0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldExvZ1BhdGgoKSBjb25zdAor
eworICAgICAgIGlmKCBtX3ZlY0xvZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY0xvZ1BhdGguZnJv
bnQoKS5jX3N0cigpOworfQorCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBwYXRoIHJlZ2lzdHJ5IGFuZCB0aGUgcHJvdmlkZWQg
b3ZlcnJpZGUgCisvLyAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy4gUGFzcyBOVUxMIGZvciBh
bnkgcGF0aHMgeW91IGRvbid0IGNhcmUgYWJvdXQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jv
b2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRp
bWVQYXRoLCBzdGQ6OnN0cmluZyAqcHNDb25maWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRo
LCBjb25zdCBjaGFyICpwY2hDb25maWdQYXRoT3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1Bh
dGhPdmVycmlkZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJz
ICkKK3sKKyAgICAgICBDVlJQYXRoUmVnaXN0cnlfUHVibGljIHBhdGhSZWc7CisgICAgICAgYm9v
bCBiTG9hZGVkUmVnaXN0cnkgPSBwYXRoUmVnLkJMb2FkRnJvbUZpbGUoKTsKKyAgICAgICBpbnQg
bkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMgPSAwOworCisgICAgICAgaWYoIHBzUnVudGltZVBh
dGggKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxl
KCBrX3BjaFJ1bnRpbWVPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9IEdldEVudmlyb25tZW50
VmFyaWFibGUoIGtfcGNoUnVudGltZU92ZXJyaWRlVmFyICk7CisgICAgICAgICAgICAgICAgICAg
ICBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcysrOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldFJ1bnRpbWVQYXRoKCkuZW1wdHkoKSApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gcGF0aFJl
Zy5HZXRSdW50aW1lUGF0aCgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzUnVudGltZVBhdGggPSAi
IjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGlmKCBwc0NvbmZpZ1BhdGgg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBr
X3BjaENvbmZpZ092ZXJyaWRlVmFyICkubGVuZ3RoKCkgIT0gMCApCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlh
YmxlKCBrX3BjaENvbmZpZ092ZXJyaWRlVmFyICk7CisgICAgICAgICAgICAgICAgICAgICBuQ291
bnRFbnZpcm9ubWVudFZhcmlhYmxlcysrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGVsc2UgaWYoIHBjaENvbmZpZ1BhdGhPdmVycmlkZSApCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBwY2hDb25maWdQYXRoT3ZlcnJpZGU7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggIXBhdGhSZWcuR2V0Q29uZmln
UGF0aCgpLmVtcHR5KCkgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAq
cHNDb25maWdQYXRoID0gcGF0aFJlZy5HZXRDb25maWdQYXRoKCk7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAqcHNDb25maWdQYXRoID0gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAg
ICBpZiggcHNMb2dQYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggR2V0RW52aXJv
bm1lbnRWYXJpYWJsZSgga19wY2hMb2dPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gR2V0RW52aXJv
bm1lbnRWYXJpYWJsZSgga19wY2hMb2dPdmVycmlkZVZhciApOworICAgICAgICAgICAgICAgICAg
ICAgbkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKKyAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICBlbHNlIGlmKCBwY2hMb2dQYXRoT3ZlcnJpZGUgKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gcGNoTG9nUGF0aE92ZXJyaWRlOworICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldExvZ1BhdGgo
KS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzTG9n
UGF0aCA9IHBhdGhSZWcuR2V0TG9nUGF0aCgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0
aCA9ICIiOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgaWYgKCBwdmVjRXh0
ZXJuYWxEcml2ZXJzICkKKyAgICAgICB7CisgICAgICAgICAgICAgICpwdmVjRXh0ZXJuYWxEcml2
ZXJzID0gcGF0aFJlZy5tX3ZlY0V4dGVybmFsRHJpdmVyczsKKyAgICAgICB9CisKKyAgICAgICBp
ZiAoIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzID09IDMgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgLy8gYWxsIHRocmVlIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aGVyZSBzZXQsIHNvIHdl
IGRvbid0IG5lZWQgdGhlIHBoeXNpY2FsIGZpbGUKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIGJMb2FkZWRSZWdpc3RyeTsKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3Ry
eV9wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRo
cmVnaXN0cnlfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYwZGU1NmY5ZGY0MGFjNTU5Yzg2MWJlNWE0
NTFhYjZkYjBjMDkwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmgKQEAgLTAsMCArMSw0NSBAQAor
Ly89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5j
bHVkZSA8c3RkaW50Lmg+CisKK3N0YXRpYyBjb25zdCBjaGFyICprX3BjaFJ1bnRpbWVPdmVycmlk
ZVZhciA9ICJWUl9PVkVSUklERSI7CitzdGF0aWMgY29uc3QgY2hhciAqa19wY2hDb25maWdPdmVy
cmlkZVZhciA9ICJWUl9DT05GSUdfUEFUSCI7CitzdGF0aWMgY29uc3QgY2hhciAqa19wY2hMb2dP
dmVycmlkZVZhciA9ICJWUl9MT0dfUEFUSCI7CisKK2NsYXNzIENWUlBhdGhSZWdpc3RyeV9QdWJs
aWMKK3sKK3B1YmxpYzoKKyAgICAgICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0VlJQYXRoUmVnaXN0
cnlGaWxlbmFtZSgpOworICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRPcGVuVlJDb25maWdQ
YXRoKCk7CisKK3B1YmxpYzoKKyAgICAgICBDVlJQYXRoUmVnaXN0cnlfUHVibGljKCk7CisKKyAg
ICAgICAvKiogUmV0dXJucyBwYXRocyB1c2luZyB0aGUgcGF0aCByZWdpc3RyeSBhbmQgdGhlIHBy
b3ZpZGVkIG92ZXJyaWRlIHZhbHVlcy4gUGFzcyBOVUxMIGZvciBhbnkgcGF0aHMgeW91IGRvbid0
IGNhcmUgYWJvdXQuIAorICAgICAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcGF0aCByZWdpc3Ry
eSBjb3VsZCBub3QgYmUgcmVhZC4gVmFsaWQgcGF0aHMgbWlnaHQgc3RpbGwgYmUgcmV0dXJuZWQg
YmFzZWQgb24gZW52aXJvbm1lbnQgdmFyaWFibGVzLiAqLworICAgICAgIHN0YXRpYyBib29sIEdl
dFBhdGhzKCBzdGQ6OnN0cmluZyAqcHNSdW50aW1lUGF0aCwgc3RkOjpzdHJpbmcgKnBzQ29uZmln
UGF0aCwgc3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwgY29uc3QgY2hhciAqcGNoQ29uZmlnUGF0aE92
ZXJyaWRlLCBjb25zdCBjaGFyICpwY2hMb2dQYXRoT3ZlcnJpZGUsIHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPiAqcHZlY0V4dGVybmFsRHJpdmVycyA9IE5VTEwgKTsKKworICAgICAgIGJvb2wgQkxv
YWRGcm9tRmlsZSgpOworICAgICAgIGJvb2wgQlNhdmVUb0ZpbGUoKSBjb25zdDsKKworICAgICAg
IGJvb2wgVG9Kc29uU3RyaW5nKCBzdGQ6OnN0cmluZyAmc0pzb25TdHJpbmcgKTsKKworICAgICAg
IC8vIG1ldGhvZHMgdG8gZ2V0IHRoZSBjdXJyZW50IHZhbHVlcworICAgICAgIHN0ZDo6c3RyaW5n
IEdldFJ1bnRpbWVQYXRoKCkgY29uc3Q7CisgICAgICAgc3RkOjpzdHJpbmcgR2V0Q29uZmlnUGF0
aCgpIGNvbnN0OworICAgICAgIHN0ZDo6c3RyaW5nIEdldExvZ1BhdGgoKSBjb25zdDsKKworcHJv
dGVjdGVkOgorICAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4gU3RyaW5n
VmVjdG9yX3Q7CisKKyAgICAgICAvLyBpbmRleCAwIGlzIHRoZSBjdXJyZW50IHNldHRpbmcKKyAg
ICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY1J1bnRpbWVQYXRoOworICAgICAgIFN0cmluZ1ZlY3Rv
cl90IG1fdmVjTG9nUGF0aDsKKyAgICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY0NvbmZpZ1BhdGg7
CisKKyAgICAgICAvLyBmdWxsIGxpc3Qgb2YgZXh0ZXJuYWwgZHJpdmVycworICAgICAgIFN0cmlu
Z1ZlY3Rvcl90IG1fdmVjRXh0ZXJuYWxEcml2ZXJzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDhiNjRh
ZDFkY2IzMWY4NjFlYmMyYTdiMWVjZmU3NzcwNDQwYzM0NjcuLmIyNTkzODBkMDczZWFlMGU0MTdm
ODk5YmRmY2EzYjZjYmE1ODQxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTI5Nyw0ICsxMjk3LDggQEAK
ICNkZWZpbmUgSEFWRV9BVkNPTlRFTlRLRVlTRVNTSU9OIDEKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9PUEVOVlIgMQorI2VuZGlmCisK
ICNlbmRpZiAvKiBXVEZfUGxhdGZvcm1faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNTkz
NDVhMzk4MmYxZjk2MmEzNjU3YTI0OGVhNzM4Y2FjMTY4ZTAwLi4xMzg2MDhiYTRkYWVkOTc1NjVl
NGFkZTFiNWJlMDk0ZjE3Yzg3ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUyNyw2ICsx
NTI3LDExIEBAIGlmIChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgICkKIGVuZGlm
ICgpCiAKK2lmIChVU0VfT1BFTlZSKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElS
RUNUT1JJRVMgIiR7VEhJUkRQQVJUWV9ESVJ9L29wZW52ci9oZWFkZXJzIikKKyAgbGlzdChBUFBF
TkQgV2ViQ29yZV9MSUJSQVJJRVMgb3BlbnZyX2FwaSkKK2VuZGlmICgpCisKIGlmIChVU0VfV09G
RjIpCiAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtXT0ZGMkRF
Q19JTkNMVURFX0RJUlN9IikKICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgIiR7V09G
RjJERUNfTElCUkFSSUVTfSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDU5YzYxMGE3YTFmNDYw
OWUzYzc3NWUyNzYwNmQwZGRmYjFiMTNiODYuLjkxYzQ1ZjlkMjU3ZGUyZGM2NmNmMzU5ZDZhYmUw
OTFjMWUzYTI5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0zNDAsNiArMzQwLDggQEAgaWYg
KFVTRV9MSUJIWVBIRU4pCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKK1NFVF9BTkRfRVhQT1NF
X1RPX0JVSUxEKFVTRV9PUEVOVlIgVFJVRSkKKwogaWYgKFVTRV9VUE9XRVIpCiAgICAgZmluZF9w
YWNrYWdlKFVQb3dlckdMaWIpCiAgICAgaWYgKE5PVCBVUE9XRVJHTElCX0ZPVU5EKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQppbmRleCA0MjkyOWNlZDdkNjAwYzIwMDdkNzI4OWNlYjM1NDQyMjZjNDFhODU3
Li43ZjRmN2RmZmViZTdkNGVjODlkNTc0MmZiMmY1OGU4YjE0N2Q5MjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQ
RS5jbWFrZQpAQCAtMTA1LDYgKzEwNSw4IEBAIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9U
SUxFRF9CQUNLSU5HX1NUT1JFIFRSVUUpCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09P
UkRJTkFURURfR1JBUEhJQ1MgVFJVRSkKIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09S
RElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVFKQogCitTRVRfQU5EX0VYUE9TRV9UT19CVUlM
RChVU0VfT1BFTlZSIFRSVUUpCisKIHNldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMpCiBzZXQoRk9SV0FSRElOR19IRUFERVJT
X1dQRV9ESVIgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS93cGUpCiBzZXQoRk9SV0FSRElOR19I
RUFERVJTX1dQRV9FWFRFTlNJT05fRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vd3BlLXdl
YmV4dGVuc2lvbikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBhZGNmZDViYzMxNGFkY2VhYjQ1ZTQ1NGM5Mzg3MzU2YjliMzZiZTA0Li43YTJjNWU4
MWY4YTg4NWVjNjM3MWFkNDAzYjIxYWMyNmZiNjc1MzhiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDEtMTgg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dl
YlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5OiBBZGRlZCBvcGVudnIgdG8gdGhlIGxpc3Qgb2YgdGhpcmQgcGFydHkg
bGlicmFyaWVzCisgICAgICAgIHdpdGggcmVkdWNlZCBzdHlsZSBjaGVja3MuCisKIDIwMTgtMDEt
MTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U10gU3BlY2lmeSAtW05TVVJMIF90aXRsZV0gZm9yIHRoZSBhc3NvY2lhdGVkIFVSTCB3aGVuIGNv
cHlpbmcgYW4gaW1hZ2UgZWxlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CmluZGV4IGFmYmNhNDM4ZDkxYjQ5ODNlNGU1NjBiNzEyZTMwN2NhYjVjN2I2MmEuLjliNDM4
NzliODQxYWFlMDVmZGJiNjBlNmUxNTA4Mzk2NzYwM2I0NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTIxOSw2ICsyMTksNyBAQCBfUEFUSF9SVUxFU19TUEVD
SUZJRVIgPSBbCiAgICAgIwogICAgIChbb3MucGF0aC5qb2luKCd3ZWJraXRweScsICd0aGlyZHBh
cnR5JyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdUaGlyZFBhcnR5JywgJ0FOR0xF
JyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdUaGlyZFBhcnR5JywgJ29wZW52cicp
LAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnVGhpcmRQYXJ0eScsICd4ZGdtaW1lJyks
CiAgICAgICBvcy5wYXRoLmpvaW4oJ1Rvb2xzJywgJ1dlYkdQVUFQSVN0cnVjdHVyZScpXSwKICAg
ICAgWyItIiwKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxYTg3Y2Vk
Zjk3NjZjNzBkZWEzZmU5YmRmMTU3MDQ5ZTBiOWQwOTc4Li5kYWM3Y2U4ZWMyZGY2ODllYmM0ZmFi
MmQ0MTRkODdjMzkxN2EyN2JkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVl
IGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlOiBFbmFibGUgVVNFX09QRU5WUi4KKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc1dQRS5jbWFrZTogRGl0dG8uCisKKzIwMTctMDktMjIgIFNlcmdpbyBWaWxs
YXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3Bl
blZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGE6CisKIDIwMTgt
MDEtMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFdFQktJVF9GUkFNRVdPUksgc2hvdWxkIG5vdCBtb2RpZnkgZmlsZS1nbG9iYWwgaW5jbHVk
ZSBkaXJlY3Rvcmllcwo=
</data>
<flag name="review"
          id="350586"
          type_id="1"
          status="+"
          setter="zan"
    />
    <flag name="commit-queue"
          id="350994"
          type_id="3"
          status="-"
          setter="zan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332154</attachid>
            <date>2018-01-24 06:59:42 -0800</date>
            <delta_ts>2018-01-24 07:03:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177298-20180124155910.patch</filename>
            <type>text/plain</type>
            <size>1240277</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggMDhhYTcyOTRj
ZDIyMDIxNmFjMWQ1ZGU4ODZiNjI2Y2FjNmNlM2Q5Mi4uMGQyNjI1NWE2ODViODA5MDc2NWYwYjBm
Nzg2ZmI5NjQ2ZDBmZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5MCBAQAorMjAx
OC0wMS0xOCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV2ViVlJdIEFkZCBPcGVuVlIgdG8gdGhlIHRyZWUgYW5kIHRvIHRoZSBidWlsZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBy
ZXF1aXJlZCBwYXJ0cyBvZiBPcGVuVlIgbGlicmFyeSB0byB0aGUgdHJlZS4gVGhpcyB3aWxsIGJl
IHVzZWQgYXMgYSBiYWNrZW5kIGZvcgorICAgICAgICB0aGUgZXZlbnR1YWwgV2ViVlIgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKiBvcGVudnIvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9MSUNFTlNFOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLm1k
OiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvUkVBRE1FLndlYmtpdDogQWRkZWQuIEluY2x1ZGVz
IHNwZWNpZmljcyBjaGFuZ2VzIG1hZGUgdG8gdGhlIG9yaWdpbmFsIGxpYnJhcnkgdG8KKyAgICAg
ICAgYWNjb21tb2RhdGUgaXQgdG8gdGhlIFdlYktpdCBidWlsZCBzeXN0ZW0uCisgICAgICAgICog
b3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZTogQWRkZWQuCisgICAgICAgICogb3BlbnZyL2hl
YWRlcnMvb3BlbnZyLmg6IEFkZGVkLgorICAgICAgICAodnI6OkJ1dHRvbk1hc2tGcm9tSWQpOgor
ICAgICAgICAodnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90OjpOb3RpZmljYXRpb25CaXRtYXBfdCk6
CisgICAgICAgICh2cjo6VlJUb2tlbik6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OkNP
cGVuVlJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2hlY2tDbGVhcik6
CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU3lzdGVtKToKKyAgICAgICAgKHZyOjpD
T3BlblZSQ29udGV4dDo6VlJDaGFwZXJvbmUpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0
OjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJDb21w
b3NpdG9yKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJPdmVybGF5KToKKyAgICAg
ICAgKHZyOjpDT3BlblZSQ29udGV4dDo6VlJSZXNvdXJjZXMpOgorICAgICAgICAodnI6OkNPcGVu
VlJDb250ZXh0OjpWUlNjcmVlbnNob3RzKToKKyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6
VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkV4dGVuZGVk
RGlzcGxheSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNvbnRleHQ6OlZSU2V0dGluZ3MpOgorICAg
ICAgICAodnI6OkNPcGVuVlJDb250ZXh0OjpWUkFwcGxpY2F0aW9ucyk6CisgICAgICAgICh2cjo6
Q09wZW5WUkNvbnRleHQ6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6Q09wZW5WUkNv
bnRleHQ6OlZSRHJpdmVyTWFuYWdlcik6CisgICAgICAgICh2cjo6T3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCk6CisgICAgICAgICh2cjo6VlJTeXN0ZW0pOgorICAgICAgICAodnI6OlZSQ2hh
cGVyb25lKToKKyAgICAgICAgKHZyOjpWUkNoYXBlcm9uZVNldHVwKToKKyAgICAgICAgKHZyOjpW
UkNvbXBvc2l0b3IpOgorICAgICAgICAodnI6OlZST3ZlcmxheSk6CisgICAgICAgICh2cjo6VlJT
Y3JlZW5zaG90cyk6CisgICAgICAgICh2cjo6VlJSZW5kZXJNb2RlbHMpOgorICAgICAgICAodnI6
OlZSQXBwbGljYXRpb25zKToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZy
OjpWUlJlc291cmNlcyk6CisgICAgICAgICh2cjo6VlJFeHRlbmRlZERpc3BsYXkpOgorICAgICAg
ICAodnI6OlZSVHJhY2tlZENhbWVyYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJNYW5hZ2VyKToK
KyAgICAgICAgKHZyOjpDT3BlblZSQ29udGV4dDo6Q2xlYXIpOgorICAgICAgICAodnI6OlZSX0lu
aXQpOgorICAgICAgICAodnI6OlZSX1NodXRkb3duKToKKyAgICAgICAgKiBvcGVudnIvaGVhZGVy
cy9vcGVudnJfYXBpLmNzOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvaGVhZGVycy9vcGVudnJf
YXBpLmpzb246IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9jYXBpLmg6
IEFkZGVkLgorICAgICAgICAqIG9wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaDogQWRkZWQu
CisgICAgICAgICh2cjo6QnV0dG9uTWFza0Zyb21JZCk6CisgICAgICAgICh2cjo6SVZSRHJpdmVy
RGlyZWN0TW9kZUNvbXBvbmVudDo6Q3JlYXRlU3dhcFRleHR1cmVTZXQpOgorICAgICAgICAodnI6
OklWUkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnQ6OkRlc3Ryb3lTd2FwVGV4dHVyZVNldCk6Cisg
ICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6RGVzdHJveUFsbFN3YXBU
ZXh0dXJlU2V0cyk6CisgICAgICAgICh2cjo6SVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudDo6
R2V0TmV4dFN3YXBUZXh0dXJlU2V0SW5kZXgpOgorICAgICAgICAodnI6OklWUkRyaXZlckRpcmVj
dE1vZGVDb21wb25lbnQ6OlN1Ym1pdExheWVyKToKKyAgICAgICAgKHZyOjpJVlJEcml2ZXJEaXJl
Y3RNb2RlQ29tcG9uZW50OjpQcmVzZW50KToKKyAgICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBl
cnM6OkNWUlByb3BlcnR5SGVscGVycyk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJz
OjpUcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcik6CisgICAgICAgICh2cjo6Q1ZSUHJv
cGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxw
ZXJzOjpTZXRQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRT
dHJpbmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRTdHJp
bmdQcm9wZXJ0eSk6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQcm9wZXJ0
eUhlbHBlcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRCb29sUHJvcGVy
dHkpOgorICAgICAgICAodnI6OkNWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSk6
CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRJbnQzMlByb3BlcnR5KToKKyAg
ICAgICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFVpbnQ2NFByb3BlcnR5KToKKyAgICAg
ICAgKHZyOjpDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEJvb2xQcm9wZXJ0eSk6CisgICAgICAgICh2
cjo6Q1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9hdFByb3BlcnR5KToKKyAgICAgICAgKHZyOjpD
VlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlBy
b3BlcnR5SGVscGVyczo6U2V0VWludDY0UHJvcGVydHkpOgorICAgICAgICAodnI6OkNWUlByb3Bl
cnR5SGVscGVyczo6U2V0UHJvcGVydHlFcnJvcik6CisgICAgICAgICh2cjo6Q1ZSUHJvcGVydHlI
ZWxwZXJzOjpFcmFzZVByb3BlcnR5KToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVy
czo6Q1ZSSGlkZGVuQXJlYUhlbHBlcnMpOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxw
ZXJzOjpHZXRQcm9wZXJ0eUVudW0pOgorICAgICAgICAodnI6OkNWUkhpZGRlbkFyZWFIZWxwZXJz
OjpTZXRIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDVlJIaWRkZW5BcmVhSGVscGVyczo6R2V0
SGlkZGVuQXJlYSk6CisgICAgICAgICh2cjo6VlJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZy
OjpDT3BlblZSRHJpdmVyQ29udGV4dDo6Q09wZW5WUkRyaXZlckNvbnRleHQpOgorICAgICAgICAo
dnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpDT3Bl
blZSRHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzUmF3KToKKyAgICAgICAgKHZyOjpDT3BlblZS
RHJpdmVyQ29udGV4dDo6VlJQcm9wZXJ0aWVzKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVy
Q29udGV4dDo6VlJIaWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJTZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpDT3BlblZSRHJpdmVyQ29udGV4
dDo6VlJXYXRjaGRvZ0hvc3QpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpW
UkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OlZSRHJpdmVy
SGFuZGxlKToKKyAgICAgICAgKHZyOjpPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJD
b250ZXh0KToKKyAgICAgICAgKHZyOjpWUlNldHRpbmdzKToKKyAgICAgICAgKHZyOjpWUlByb3Bl
cnRpZXNSYXcpOgorICAgICAgICAodnI6OlZSUHJvcGVydGllcyk6CisgICAgICAgICh2cjo6VlJI
aWRkZW5BcmVhKToKKyAgICAgICAgKHZyOjpWUkRyaXZlckxvZyk6CisgICAgICAgICh2cjo6VlJT
ZXJ2ZXJEcml2ZXJIb3N0KToKKyAgICAgICAgKHZyOjpWUldhdGNoZG9nSG9zdCk6CisgICAgICAg
ICh2cjo6VlJEcml2ZXJIYW5kbGUpOgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0
OjpDbGVhcik6CisgICAgICAgICh2cjo6Q09wZW5WUkRyaXZlckNvbnRleHQ6OkluaXRTZXJ2ZXIp
OgorICAgICAgICAodnI6OkNPcGVuVlJEcml2ZXJDb250ZXh0OjpJbml0V2F0Y2hkb2cpOgorICAg
ICAgICAodnI6OkluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpJbml0V2F0
Y2hkb2dEcml2ZXJDb250ZXh0KToKKyAgICAgICAgKHZyOjpDbGVhbnVwRHJpdmVyQ29udGV4dCk6
CisgICAgICAgICogb3BlbnZyL3BhdGNoZXMvY21ha2UtYnVpbGQucGF0Y2g6IEFkZGVkLgorICAg
ICAgICAqIG9wZW52ci9zcmMvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIG9wZW52
ci9zcmMvSW5mby5wbGlzdDogQWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy9SRUFETUU6IEFk
ZGVkLgorICAgICAgICAqIG9wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBvcGVudnIvc3JjL2pzb24vanNvbi1mb3J3YXJkcy5oOiBBZGRlZC4KKyAgICAgICAgKiBv
cGVudnIvc3JjL2pzb24vanNvbi5oOiBBZGRlZC4KKyAgICAgICAgKHN0ZDo6c3dhcCk6CisgICAg
ICAgICogb3BlbnZyL3NyYy9qc29uY3BwLmNwcDogQWRkZWQuCisgICAgICAgIChKc29uOjpjb2Rl
UG9pbnRUb1VURjgpOgorICAgICAgICAoSnNvbjo6aXNDb250cm9sQ2hhcmFjdGVyKToKKyAgICAg
ICAgKEpzb246OnVpbnRUb1N0cmluZyk6CisgICAgICAgIChKc29uOjpmaXhOdW1lcmljTG9jYWxl
KToKKyAgICAgICAgKEpzb246OkZlYXR1cmVzOjpGZWF0dXJlcyk6CisgICAgICAgIChKc29uOjpG
ZWF0dXJlczo6YWxsKToKKyAgICAgICAgKEpzb246OkZlYXR1cmVzOjpzdHJpY3RNb2RlKToKKyAg
ICAgICAgKEpzb246OmNvbnRhaW5zTmV3TGluZSk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OlJl
YWRlcik6CisgICAgICAgIChKc29uOjpSZWFkZXI6OnBhcnNlKToKKyAgICAgICAgKEpzb246OlJl
YWRlcjo6cmVhZFZhbHVlKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6c2tpcENvbW1lbnRUb2tl
bnMpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkVG9rZW4pOgorICAgICAgICAoSnNvbjo6
UmVhZGVyOjpza2lwU3BhY2VzKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6bWF0Y2gpOgorICAg
ICAgICAoSnNvbjo6UmVhZGVyOjpyZWFkQ29tbWVudCk6CisgICAgICAgIChKc29uOjpub3JtYWxp
emVFT0wpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjphZGRDb21tZW50KToKKyAgICAgICAgKEpz
b246OlJlYWRlcjo6cmVhZENTdHlsZUNvbW1lbnQpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpy
ZWFkQ3BwU3R5bGVDb21tZW50KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZE51bWJlcik6
CisgICAgICAgIChKc29uOjpSZWFkZXI6OnJlYWRTdHJpbmcpOgorICAgICAgICAoSnNvbjo6UmVh
ZGVyOjpyZWFkT2JqZWN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVhZEFycmF5KToKKyAg
ICAgICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlTnVtYmVyKToKKyAgICAgICAgKEpzb246OlJlYWRl
cjo6ZGVjb2RlRG91YmxlKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlU3RyaW5nKToK
KyAgICAgICAgKEpzb246OlJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludCk6CisgICAgICAg
IChKc29uOjpSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSk6CisgICAgICAgIChK
c29uOjpSZWFkZXI6OmFkZEVycm9yKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6cmVjb3ZlckZy
b21FcnJvcik6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zlcik6Cisg
ICAgICAgIChKc29uOjpSZWFkZXI6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAgIChKc29uOjpSZWFk
ZXI6OmdldE5leHRDaGFyKToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0TG9jYXRpb25MaW5l
QW5kQ29sdW1uIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0TG9jYXRpb25Tbmlw
cGV0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3Nh
Z2VzIGNvbnN0KToKKyAgICAgICAgKEpzb246OlJlYWRlcjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNz
YWdlcyBjb25zdCk6CisgICAgICAgIChKc29uOjpSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6UmVhZGVyOjpwdXNoRXJyb3IpOgorICAgICAgICAoSnNv
bjo6UmVhZGVyOjpnb29kIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91ckZlYXR1cmVzOjphbGwp
OgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpPdXJSZWFkZXIpOgorICAgICAgICAoSnNvbjo6
T3VyUmVhZGVyOjpwYXJzZSk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnJlYWRWYWx1ZSk6
CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OnNraXBDb21tZW50VG9rZW5zKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6cmVhZFRva2VuKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6
c2tpcFNwYWNlcyk6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6Om1hdGNoKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6cmVhZENvbW1lbnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVy
OjphZGRDb21tZW50KToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZENTdHlsZUNvbW1l
bnQpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkQ3BwU3R5bGVDb21tZW50KToKKyAg
ICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZE51bWJlcik6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OnJlYWRTdHJpbmcpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkU3RyaW5n
U2luZ2xlUXVvdGUpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpyZWFkT2JqZWN0KToKKyAg
ICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVhZEFycmF5KToKKyAgICAgICAgKEpzb246Ok91clJl
YWRlcjo6ZGVjb2RlTnVtYmVyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6ZGVjb2RlRG91
YmxlKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6ZGVjb2RlU3RyaW5nKToKKyAgICAgICAg
KEpzb246Ok91clJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludCk6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSk6CisgICAgICAgIChKc29u
OjpPdXJSZWFkZXI6OmFkZEVycm9yKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6cmVjb3Zl
ckZyb21FcnJvcik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zl
cik6CisgICAgICAgIChKc29uOjpPdXJSZWFkZXI6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAgIChK
c29uOjpPdXJSZWFkZXI6OmdldE5leHRDaGFyKToKKyAgICAgICAgKEpzb246Ok91clJlYWRlcjo6
Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uIGNvbnN0KToKKyAgICAgICAgKEpzb246Ok91clJlYWRl
cjo6Z2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcyBjb25zdCk6CisgICAgICAgIChKc29uOjpPdXJS
ZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMgY29uc3QpOgorICAgICAgICAoSnNvbjo6T3VyUmVh
ZGVyOjpwdXNoRXJyb3IpOgorICAgICAgICAoSnNvbjo6T3VyUmVhZGVyOjpnb29kIGNvbnN0KToK
KyAgICAgICAgKEpzb246Ok91ckNoYXJSZWFkZXI6Ok91ckNoYXJSZWFkZXIpOgorICAgICAgICAo
SnNvbjo6T3VyQ2hhclJlYWRlcjo6cGFyc2UpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1
aWxkZXI6OkNoYXJSZWFkZXJCdWlsZGVyKToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWls
ZGVyOjp+Q2hhclJlYWRlckJ1aWxkZXIpOgorICAgICAgICAoSnNvbjo6Q2hhclJlYWRlckJ1aWxk
ZXI6Om5ld0NoYXJSZWFkZXIgY29uc3QpOgorICAgICAgICAoSnNvbjo6Z2V0VmFsaWRSZWFkZXJL
ZXlzKToKKyAgICAgICAgKEpzb246OkNoYXJSZWFkZXJCdWlsZGVyOjp2YWxpZGF0ZSBjb25zdCk6
CisgICAgICAgIChKc29uOjpDaGFyUmVhZGVyQnVpbGRlcjo6b3BlcmF0b3JbXSk6CisgICAgICAg
IChKc29uOjpDaGFyUmVhZGVyQnVpbGRlcjo6c3RyaWN0TW9kZSk6CisgICAgICAgIChKc29uOjpD
aGFyUmVhZGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMpOgorICAgICAgICAoSnNvbjo6cGFyc2VGcm9t
U3RyZWFtKToKKyAgICAgICAgKEpzb246Om9wZXJhdG9yPj4pOgorICAgICAgICAoSnNvbjo6VmFs
dWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0b3JCYXNlKToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3JCYXNlOjpkZXJlZiBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9y
QmFzZTo6aW5jcmVtZW50KToKKyAgICAgICAgKEpzb246OlZhbHVlSXRlcmF0b3JCYXNlOjpkZWNy
ZW1lbnQpOgorICAgICAgICAoSnNvbjo6VmFsdWVJdGVyYXRvckJhc2U6OmNvbXB1dGVEaXN0YW5j
ZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6aXNFcXVhbCBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29weSk6CisgICAgICAgIChK
c29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6a2V5IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVl
SXRlcmF0b3JCYXNlOjppbmRleCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9y
QmFzZTo6bmFtZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUl0ZXJhdG9yQmFzZTo6bWVt
YmVyTmFtZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZUNvbnN0SXRlcmF0b3I6OlZhbHVl
Q29uc3RJdGVyYXRvcik6CisgICAgICAgIChKc29uOjpvcGVyYXRvcj0pOgorICAgICAgICAoSnNv
bjo6VmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcik6CisgICAgICAgIChKc29uOjpWYWx1ZUl0
ZXJhdG9yOjpvcGVyYXRvcj0pOgorICAgICAgICAoSnNvbjo6SW5SYW5nZSk6CisgICAgICAgIChK
c29uOjppbnRlZ2VyVG9Eb3VibGUpOgorICAgICAgICAoSnNvbjo6ZHVwbGljYXRlU3RyaW5nVmFs
dWUpOgorICAgICAgICAoSnNvbjo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUpOgorICAg
ICAgICAoSnNvbjo6ZGVjb2RlUHJlZml4ZWRTdHJpbmcpOgorICAgICAgICAoSnNvbjo6cmVsZWFz
ZVN0cmluZ1ZhbHVlKToKKyAgICAgICAgKEpzb246OkV4Y2VwdGlvbjo6RXhjZXB0aW9uKToKKyAg
ICAgICAgKEpzb246OnRocm93KToKKyAgICAgICAgKEpzb246OlJ1bnRpbWVFcnJvcjo6UnVudGlt
ZUVycm9yKToKKyAgICAgICAgKEpzb246OkxvZ2ljRXJyb3I6OkxvZ2ljRXJyb3IpOgorICAgICAg
ICAoSnNvbjo6dGhyb3dSdW50aW1lRXJyb3IpOgorICAgICAgICAoSnNvbjo6dGhyb3dMb2dpY0Vy
cm9yKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDb21tZW50SW5mbzo6Q29tbWVudEluZm8pOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjp+Q29tbWVudEluZm8pOgorICAgICAg
ICAoSnNvbjo6VmFsdWU6OkNvbW1lbnRJbmZvOjpzZXRDb21tZW50KToKKyAgICAgICAgKEpzb246
OlZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3Ry
aW5nOjp+Q1pTdHJpbmcpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OkNaU3RyaW5nOjpzd2FwKToK
KyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZh
bHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
Q1pTdHJpbmc6OmluZGV4IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpDWlN0cmluZzo6
ZGF0YSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6Omxlbmd0aCBjb25z
dCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Q1pTdHJpbmc6OmlzU3RhdGljU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6
flZhbHVlKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcj0pOgorICAgICAgICAoSnNv
bjo6VmFsdWU6OnN3YXBQYXlsb2FkKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpzd2FwKToKKyAg
ICAgICAgKEpzb246OlZhbHVlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpj
b21wYXJlIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvcjwgY29uc3QpOgor
ICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9y
PiBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChKc29uOjpWYWx1ZTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1
ZTo6YXNDU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpnZXRTdHJpbmcgY29u
c3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjphc0NvbnN0U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c0ludCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNVSW50IGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjphc0ludDY0IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjph
c1VJbnQ2NCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNMYXJnZXN0SW50IGNvbnN0
KToKKyAgICAgICAgKEpzb246OlZhbHVlOjphc0xhcmdlc3RVSW50IGNvbnN0KToKKyAgICAgICAg
KEpzb246OlZhbHVlOjphc0RvdWJsZSBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNG
bG9hdCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6YXNCb29sIGNvbnN0KToKKyAgICAg
ICAgKEpzb246OlZhbHVlOjppc0NvbnZlcnRpYmxlVG8gY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OnNpemUgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmVtcHR5IGNvbnN0KToK
KyAgICAgICAgKEpzb246OlZhbHVlOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoSnNvbjo6
VmFsdWU6OmNsZWFyKToKKyAgICAgICAgKEpzb246OlZhbHVlOjpyZXNpemUpOgorICAgICAgICAo
SnNvbjo6VmFsdWU6Om9wZXJhdG9yW10pOgorICAgICAgICAoSnNvbjo6VmFsdWU6Om9wZXJhdG9y
W10gY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmluaXRCYXNpYyk6CisgICAgICAgIChK
c29uOjpWYWx1ZTo6cmVzb2x2ZVJlZmVyZW5jZSk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6Z2V0
IGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc1ZhbGlkSW5kZXggY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmZpbmQgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmFw
cGVuZCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6cmVtb3ZlTWVtYmVyKToKKyAgICAgICAgKEpz
b246OlZhbHVlOjpyZW1vdmVJbmRleCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNNZW1iZXIg
Y29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE1lbWJlck5hbWVzIGNvbnN0KToKKyAg
ICAgICAgKEpzb246OklzSW50ZWdyYWwpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzTnVsbCBj
b25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNCb29sIGNvbnN0KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjppc0ludCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNVSW50IGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjppc0ludDY0IGNvbnN0KToKKyAgICAgICAgKEpz
b246OlZhbHVlOjppc1VJbnQ2NCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNJbnRl
Z3JhbCBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6aXNEb3VibGUgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmlzTnVtZXJpYyBjb25zdCk6CisgICAgICAgIChKc29uOjpWYWx1
ZTo6aXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzQXJyYXkgY29uc3Qp
OgorICAgICAgICAoSnNvbjo6VmFsdWU6OmlzT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKEpzb246
OlZhbHVlOjpzZXRDb21tZW50KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpoYXNDb21tZW50IGNv
bnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpnZXRDb21tZW50IGNvbnN0KToKKyAgICAgICAg
KEpzb246OlZhbHVlOjpzZXRPZmZzZXRTdGFydCk6CisgICAgICAgIChKc29uOjpWYWx1ZTo6c2V0
T2Zmc2V0TGltaXQpOgorICAgICAgICAoSnNvbjo6VmFsdWU6OmdldE9mZnNldFN0YXJ0IGNvbnN0
KToKKyAgICAgICAgKEpzb246OlZhbHVlOjpnZXRPZmZzZXRMaW1pdCBjb25zdCk6CisgICAgICAg
IChKc29uOjpWYWx1ZTo6dG9TdHlsZWRTdHJpbmcgY29uc3QpOgorICAgICAgICAoSnNvbjo6VmFs
dWU6OmJlZ2luIGNvbnN0KToKKyAgICAgICAgKEpzb246OlZhbHVlOjplbmQgY29uc3QpOgorICAg
ICAgICAoSnNvbjo6VmFsdWU6OmJlZ2luKToKKyAgICAgICAgKEpzb246OlZhbHVlOjplbmQpOgor
ICAgICAgICAoSnNvbjo6UGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQpOgorICAgICAgICAoSnNv
bjo6UGF0aDo6UGF0aCk6CisgICAgICAgIChKc29uOjpQYXRoOjptYWtlUGF0aCk6CisgICAgICAg
IChKc29uOjpQYXRoOjphZGRQYXRoSW5BcmcpOgorICAgICAgICAoSnNvbjo6UGF0aDo6aW52YWxp
ZFBhdGgpOgorICAgICAgICAoSnNvbjo6UGF0aDo6cmVzb2x2ZSBjb25zdCk6CisgICAgICAgIChK
c29uOjpQYXRoOjptYWtlIGNvbnN0KToKKyAgICAgICAgKEpzb246OmNvbnRhaW5zQ29udHJvbENo
YXJhY3Rlcik6CisgICAgICAgIChKc29uOjpjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIwKToKKyAg
ICAgICAgKEpzb246OnZhbHVlVG9TdHJpbmcpOgorICAgICAgICAoSnNvbjo6dmFsdWVUb1F1b3Rl
ZFN0cmluZyk6CisgICAgICAgIChKc29uOjpzdHJucGJyayk6CisgICAgICAgIChKc29uOjp2YWx1
ZVRvUXVvdGVkU3RyaW5nTik6CisgICAgICAgIChKc29uOjpXcml0ZXI6On5Xcml0ZXIpOgorICAg
ICAgICAoSnNvbjo6RmFzdFdyaXRlcjo6RmFzdFdyaXRlcik6CisgICAgICAgIChKc29uOjpGYXN0
V3JpdGVyOjplbmFibGVZQU1MQ29tcGF0aWJpbGl0eSk6CisgICAgICAgIChKc29uOjpGYXN0V3Jp
dGVyOjpkcm9wTnVsbFBsYWNlaG9sZGVycyk6CisgICAgICAgIChKc29uOjpGYXN0V3JpdGVyOjpv
bWl0RW5kaW5nTGluZUZlZWQpOgorICAgICAgICAoSnNvbjo6RmFzdFdyaXRlcjo6d3JpdGUpOgor
ICAgICAgICAoSnNvbjo6RmFzdFdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAgICAgIChKc29uOjpT
dHlsZWRXcml0ZXI6OlN0eWxlZFdyaXRlcik6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6
OndyaXRlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVWYWx1ZSk6CisgICAg
ICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6CisgICAgICAgIChKc29u
OjpTdHlsZWRXcml0ZXI6OmlzTXVsdGluZUFycmF5KToKKyAgICAgICAgKEpzb246OlN0eWxlZFdy
aXRlcjo6cHVzaFZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVJbmRl
bnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQpOgorICAg
ICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjppbmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVk
V3JpdGVyOjp1bmluZGVudCk6CisgICAgICAgIChKc29uOjpTdHlsZWRXcml0ZXI6OndyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKToKKyAgICAgICAgKEpzb246OlN0eWxlZFdyaXRlcjo6d3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkV3JpdGVyOjpo
YXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjpT
dHlsZWRTdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp3
cml0ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUpOgor
ICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUFycmF5VmFsdWUpOgorICAg
ICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjppc011bHRpbmVBcnJheSk6CisgICAgICAg
IChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZSk6CisgICAgICAgIChKc29uOjpT
dHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlSW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0
cmVhbVdyaXRlcjo6d3JpdGVXaXRoSW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVh
bVdyaXRlcjo6aW5kZW50KToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdyaXRlcjo6dW5p
bmRlbnQpOgorICAgICAgICAoSnNvbjo6U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZUNvbW1lbnRC
ZWZvcmVWYWx1ZSk6CisgICAgICAgIChKc29uOjpTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQ29t
bWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKToKKyAgICAgICAgKEpzb246OlN0eWxlZFN0cmVhbVdy
aXRlcjo6aGFzQ29tbWVudEZvclZhbHVlKToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3Ry
ZWFtV3JpdGVyOjpCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcik6CisgICAgICAgIChKc29uOjpCdWls
dFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OndyaXRlVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0
cmVhbVdyaXRlcjo6aXNNdWx0aW5lQXJyYXkpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRT
dHJlYW1Xcml0ZXI6OnB1c2hWYWx1ZSk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVJbmRlbnQpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlV2l0aEluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcjo6aW5kZW50KToKKyAgICAgICAgKEpzb246OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp1bmluZGVudCk6CisgICAgICAgIChKc29uOjpCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUpOgorICAgICAgICAoSnNvbjo6QnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKToKKyAgICAgICAgKEpzb246
OkJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFsdWUpOgorICAgICAgICAo
SnNvbjo6U3RyZWFtV3JpdGVyOjpTdHJlYW1Xcml0ZXIpOgorICAgICAgICAoSnNvbjo6U3RyZWFt
V3JpdGVyOjp+U3RyZWFtV3JpdGVyKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlcjo6RmFj
dG9yeTo6fkZhY3RvcnkpOgorICAgICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6U3Ry
ZWFtV3JpdGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVyOjp+
U3RyZWFtV3JpdGVyQnVpbGRlcik6CisgICAgICAgIChKc29uOjpTdHJlYW1Xcml0ZXJCdWlsZGVy
OjpuZXdTdHJlYW1Xcml0ZXIgY29uc3QpOgorICAgICAgICAoSnNvbjo6Z2V0VmFsaWRXcml0ZXJL
ZXlzKToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6OnZhbGlkYXRlIGNvbnN0
KToKKyAgICAgICAgKEpzb246OlN0cmVhbVdyaXRlckJ1aWxkZXI6Om9wZXJhdG9yW10pOgorICAg
ICAgICAoSnNvbjo6U3RyZWFtV3JpdGVyQnVpbGRlcjo6c2V0RGVmYXVsdHMpOgorICAgICAgICAo
SnNvbjo6d3JpdGVTdHJpbmcpOgorICAgICAgICAoSnNvbjo6b3BlcmF0b3I8PCk6CisgICAgICAg
ICogb3BlbnZyL3NyYy9vcGVudnJfYXBpX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAodnI6
OlZSX0dldEluaXRUb2tlbik6CisgICAgICAgICh2cjo6VlJfSW5pdEludGVybmFsMik6CisgICAg
ICAgICh2cjo6VlJfSW5pdEludGVybmFsKToKKyAgICAgICAgKHZyOjpWUl9TaHV0ZG93bkludGVy
bmFsKToKKyAgICAgICAgKHZyOjpWUl9Mb2FkSG1kU3lzdGVtSW50ZXJuYWwpOgorICAgICAgICAo
dnI6OlZSX0dldEdlbmVyaWNJbnRlcmZhY2UpOgorICAgICAgICAodnI6OlZSX0lzSW50ZXJmYWNl
VmVyc2lvblZhbGlkKToKKyAgICAgICAgKHZyOjpWUl9Jc0htZFByZXNlbnQpOgorICAgICAgICAo
dnI6OlZSX0lzUnVudGltZUluc3RhbGxlZCk6CisgICAgICAgICh2cjo6VlJfUnVudGltZVBhdGgp
OgorICAgICAgICAodnI6OlZSX0dldFZSSW5pdEVycm9yQXNTeW1ib2wpOgorICAgICAgICAodnI6
OlZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24pOgorICAgICAgICAodnI6OlZS
X0dldFN0cmluZ0ZvckhtZEVycm9yKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2Rp
cnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoQkNyZWF0ZURpcmVjdG9yeVJlY3Vy
c2l2ZSk6CisgICAgICAgIChCQ3JlYXRlRGlyZWN0b3J5KToKKyAgICAgICAgKiBvcGVudnIvc3Jj
L3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3Jj
L3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoR2V0RW52
aXJvbm1lbnRWYXJpYWJsZSk6CisgICAgICAgIChTZXRFbnZpcm9ubWVudFZhcmlhYmxlKToKKyAg
ICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5oOiBBZGRlZC4K
KyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKEdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvcik6CisgICAgICAgIChHZXRJ
REZvclZSSW5pdEVycm9yKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9y
c19wdWJsaWMuaDogQWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9v
bHNfcHVibGljLmNwcDogQWRkZWQuCisgICAgICAgIChQYXRoX0dldEV4ZWN1dGFibGVQYXRoKToK
KyAgICAgICAgKFBhdGhfR2V0V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChQYXRoX1NldFdv
cmtpbmdEaXJlY3RvcnkpOgorICAgICAgICAoUGF0aF9TdHJpcEZpbGVuYW1lKToKKyAgICAgICAg
KFBhdGhfU3RyaXBEaXJlY3RvcnkpOgorICAgICAgICAoUGF0aF9TdHJpcEV4dGVuc2lvbik6Cisg
ICAgICAgIChQYXRoX0dldEV4dGVuc2lvbik6CisgICAgICAgIChQYXRoX0lzQWJzb2x1dGUpOgor
ICAgICAgICAoUGF0aF9NYWtlQWJzb2x1dGUpOgorICAgICAgICAoUGF0aF9GaXhTbGFzaGVzKToK
KyAgICAgICAgKFBhdGhfR2V0U2xhc2gpOgorICAgICAgICAoUGF0aF9Kb2luKToKKyAgICAgICAg
KFBhdGhfUmVtb3ZlVHJhaWxpbmdTbGFzaCk6CisgICAgICAgIChQYXRoX0NvbXBhY3QpOgorICAg
ICAgICAoUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCk6CisgICAgICAgIChQYXRoX0lzRGlyZWN0b3J5
KToKKyAgICAgICAgKFBhdGhfSXNBcHBCdW5kbGUpOgorICAgICAgICAoUGF0aF9FeGlzdHMpOgor
ICAgICAgICAoUGF0aF9GaW5kUGFyZW50RGlyZWN0b3J5UmVjdXJzaXZlbHkpOgorICAgICAgICAo
UGF0aF9GaW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZlbHkpOgorICAgICAgICAoUGF0aF9S
ZWFkQmluYXJ5RmlsZSk6CisgICAgICAgIChQYXRoX1dyaXRlQmluYXJ5RmlsZSk6CisgICAgICAg
IChQYXRoX1JlYWRUZXh0RmlsZSk6CisgICAgICAgIChQYXRoX1dyaXRlU3RyaW5nVG9UZXh0Rmls
ZSk6CisgICAgICAgIChQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYyk6CisgICAgICAg
IChQYXRoX0ZpbGVQYXRoVG9VcmwpOgorICAgICAgICAoUGF0aF9VcmxUb0ZpbGVQYXRoKToKKyAg
ICAgICAgKEdldFVzZXJEb2N1bWVudHNQYXRoKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29t
bW9uL3BhdGh0b29sc19wdWJsaWMuaDogQWRkZWQuCisgICAgICAgICogb3BlbnZyL3NyYy92cmNv
bW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFNoYXJlZExp
Yl9Mb2FkKToKKyAgICAgICAgKFNoYXJlZExpYl9HZXRGdW5jdGlvbik6CisgICAgICAgIChTaGFy
ZWRMaWJfVW5sb2FkKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRv
b2xzX3B1YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRv
b2xzX3B1YmxpYy5jcHA6IEFkZGVkLgorICAgICAgICAoU3RyaW5nSGFzUHJlZml4KToKKyAgICAg
ICAgKFN0cmluZ0hhc1ByZWZpeENhc2VTZW5zaXRpdmUpOgorICAgICAgICAoU3RyaW5nSGFzU3Vm
Zml4KToKKyAgICAgICAgKFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUpOgorICAgICAgICAo
VVRGMTZ0bzgpOgorICAgICAgICAoVVRGOHRvMTYpOgorICAgICAgICAoc3RyY3B5X3NhZmUpOgor
ICAgICAgICAoU3RyaW5nVG9VcHBlcik6CisgICAgICAgIChTdHJpbmdUb0xvd2VyKToKKyAgICAg
ICAgKFJldHVyblN0ZFN0cmluZyk6CisgICAgICAgIChCdWZmZXJUb1N0ZFN0cmluZyk6CisgICAg
ICAgIChVaW50NjRUb1N0cmluZyk6CisgICAgICAgIChTdHJpbmdUb1VpbnQ2NCk6CisgICAgICAg
IChjSW50VG9IZXhEaWdpdCk6CisgICAgICAgIChpSGV4Q2hhclRvSW50KToKKyAgICAgICAgKFZf
VVJMRW5jb2RlSW50ZXJuYWwpOgorICAgICAgICAoVl9VUkxEZWNvZGVJbnRlcm5hbCk6CisgICAg
ICAgIChWX1VSTEVuY29kZSk6CisgICAgICAgIChWX1VSTERlY29kZSk6CisgICAgICAgIChWX1N0
cmlwRXh0ZW5zaW9uKToKKyAgICAgICAgKiBvcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRvb2xzX3B1
YmxpYy5oOiBBZGRlZC4KKyAgICAgICAgKHN0cmljbXApOgorICAgICAgICAoc3RybmljbXApOgor
ICAgICAgICAod2NzbmNweV9zKToKKyAgICAgICAgKHN0cm5jcHlfcyk6CisgICAgICAgIChzdHJ0
b3VsbCk6CisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJs
aWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKEdldEFwcFNldHRpbmdzUGF0aCk6CisgICAgICAgIChD
VlJQYXRoUmVnaXN0cnlfUHVibGljOjpDVlJQYXRoUmVnaXN0cnlfUHVibGljKToKKyAgICAgICAg
KENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldE9wZW5WUkNvbmZpZ1BhdGgpOgorICAgICAgICAo
Q1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0VlJQYXRoUmVnaXN0cnlGaWxlbmFtZSk6CisgICAg
ICAgIChQYXJzZVN0cmluZ0xpc3RGcm9tSnNvbik6CisgICAgICAgIChTdHJpbmdMaXN0VG9Kc29u
KToKKyAgICAgICAgKENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OlRvSnNvblN0cmluZyk6CisgICAg
ICAgIChDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpCTG9hZEZyb21GaWxlKToKKyAgICAgICAgKENW
UlBhdGhSZWdpc3RyeV9QdWJsaWM6OkJTYXZlVG9GaWxlIGNvbnN0KToKKyAgICAgICAgKENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkdldFJ1bnRpbWVQYXRoIGNvbnN0KToKKyAgICAgICAgKENWUlBh
dGhSZWdpc3RyeV9QdWJsaWM6OkdldENvbmZpZ1BhdGggY29uc3QpOgorICAgICAgICAoQ1ZSUGF0
aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0TG9nUGF0aCBjb25zdCk6CisgICAgICAgIChDVlJQYXRoUmVn
aXN0cnlfUHVibGljOjpHZXRQYXRocyk6CisgICAgICAgICogb3BlbnZyL3NyYy92cmNvbW1vbi92
cnBhdGhyZWdpc3RyeV9wdWJsaWMuaDogQWRkZWQuCisKIDIwMTctMTItMTQgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgLVdzdHJpY3QtcHJvdG90
eXBlcyBmb3IgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQzYmE5NjQ2MGU2ZTQ2NzEyOGZmOTU1NWIyODU1MjQzMDcw
NzlkODQuLjZmMWM4YmNiOWRiNjU5YzEzMjRjZDQ4YWQ4M2M4Njg0OTE5OTFlNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0
byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL1BsYXRmb3JtLmg6IERlZmluZSBVU0VfT1BFTlZSIGZvciBHdGsgYW5kIFdQRS4K
KwogMjAxOC0wMS0xNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIyMjc5NSk6IENhcmRpb2dyYW0gbmV2ZXIgc2lnbnMgaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA1ZmJmYjQyODFjNzIyOTQ2Yjg4MTZlYzVjOGMwZjAxMDllZWM5NTI3Li5kMmFmNDYw
ZGRjYTEyNTU1N2M3YTQ1MTZkZjhiNjFkN2VlNGE0YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUg
YnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIGJ1aWxkIGRlcGVuZGVuY2llcyB3aXRoIHRoZSBPcGVuVlIgbGlicmFyeS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE4LTAxLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNwZWNpZnkgLVtOU1VSTCBfdGl0bGVd
IGZvciB0aGUgYXNzb2NpYXRlZCBVUkwgd2hlbiBjb3B5aW5nIGFuIGltYWdlIGVsZW1lbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA4YTI2YmUyYzI2ZjRhYjQxYWUwZTVlNjAwZDQxN2QyNDI1ZDk3MzYwLi4xNDBiZjBiZDQ0
MjQ0MjIwODYwOTE0OTM5NDBjMGZlZDdkZDVkZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL0NNYWtlTGlzdHMudHh0CkBAIC0xNyw2ICsxNywxMCBAQCBp
ZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICBhZGRfc3ViZGlyZWN0b3J5KFRoaXJkUGFydHkvZ3Rl
c3QpCiBlbmRpZiAoKQogCitpZiAoVVNFX09QRU5WUikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFRo
aXJkUGFydHkvb3BlbnZyKQorZW5kaWYgKCkKKwogaWYgKFVTRV9YREdNSU1FKQogICAgIGFkZF9z
dWJkaXJlY3RvcnkoVGhpcmRQYXJ0eS94ZGdtaW1lKQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L29wZW52ci9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5
L29wZW52ci9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTNhN2Y5MGNmODRjMjFkYTg0ZDBi
YTVmYzI4ZjE0ZDY4ZGEyY2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsNTggQEAKKyMgU2V0IHRoZSBtaW5pbXVt
IHJlcXVpcmVkIHZlcnNpb24gb2YgQ01ha2UgZm9yIHRoaXMgcHJvamVjdC4KK2NtYWtlX21pbmlt
dW1fcmVxdWlyZWQoVkVSU0lPTiAyLjgpCisKKyMgU2V0dXAgc29tZSBvcHRpb25zLgorb3B0aW9u
KEJVSUxEX1NIQVJFRCAiQnVpbGRzIHRoZSBsaWJyYXJ5IGFzIHNoYXJlZCBsaWJyYXJ5IiBPRkYp
CitvcHRpb24oVVNFX0xJQkNYWCAiVXNlcyBsaWJjKysgaW5zdGVhZCBvZiBsaWJzdGRjKysiIE9O
KQorb3B0aW9uKFVTRV9DVVNUT01fTElCQ1hYICJVc2VzIGEgY3VzdG9tIGxpYmMrKyIgT0ZGKQor
CithZGRfZGVmaW5pdGlvbnMoIC1EVlJfQVBJX1BVQkxJQyApCisKKyMgQ2hlY2sgaWYgMzIgb3Ig
NjQgYml0IHN5c3RlbS4KK3NldChTSVpFT0ZfVk9JRFAgJHtDTUFLRV9TSVpFT0ZfVk9JRF9QfSkK
K2lmKENNQUtFX1NJWkVPRl9WT0lEX1AgRVFVQUwgOCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICI2
NCIpCitlbHNlKCkKKyAgc2V0KFBST0NFU1NPUl9BUkNIICIzMiIpCitlbmRpZigpCisKKyMgR2V0
IHBsYXRmb3JtLgoraWYoV0lOMzIpCisgICAgICAgc2V0KFBMQVRGT1JNX05BTUUgIndpbiIpCitl
bHNlaWYoVU5JWCBBTkQgTk9UIEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVT
ICIuKkxpbnV4IikKKyAgICBzZXQoUExBVEZPUk1fTkFNRSAibGludXgiKQorICAgIGFkZF9kZWZp
bml0aW9ucygtRExJTlVYIC1EUE9TSVgpCisgICAgaWYoUFJPQ0VTU09SX0FSQ0ggTUFUQ0hFUyAi
NjQiKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURMSU5VWDY0KQorICAgIGVuZGlmKCkKKyAg
ZW5kaWYoKQorZWxzZWlmKEFQUExFKQorICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIu
KkRhcndpbi4qIiBPUiBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICIuKk1hY09TLioiKQorICAg
IHNldChQTEFURk9STV9OQU1FICJvc3giKQorICAgIGFkZF9kZWZpbml0aW9ucygtRE9TWCAtRFBP
U0lYKQorICBlbmRpZigpCitlbmRpZigpCisKKyMgRW5hYmxlIHNvbWUgcHJvcGVydGllcy4KK2lm
KENNQUtFX0NPTVBJTEVSX0lTX0dOVUNDIE9SIENNQUtFX0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAi
Q2xhbmciKQorICAgICAgICMgRW5hYmxlIGMrKzExIGFuZCBoaWRlIHN5bWJvbHMgd2hpY2ggc2hv
dWxkbid0IGJlIHZpc2libGUKKyAgICAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NY
WF9GTEFHU30gLXN0ZD1jKysxMSAtZlBJQyAtZnZpc2liaWxpdHk9aGlkZGVuIikKKworICAgICAg
ICMgU2V0IGN1c3RvbSBsaWJjKysgdXNhZ2UgaGVyZQorICAgICAgIGlmKENNQUtFX0NfQ09NUElM
RVJfSUQgTUFUQ0hFUyAiQ2xhbmciIEFORCBVU0VfTElCQ1hYKQorICAgICAgICAgICAgICBpZihV
U0VfQ1VTVE9NX0xJQkNYWCkKKyAgICAgICAgICAgICAgICAgICAgIGlmKEJVSUxEX1NIQVJFRCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
UyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIpCisgICAgICAg
ICAgICAgICAgICAgICBlbmRpZigpCisgICAgICAgICAgICAgICAgICAgICBzZXQoQ01BS0VfQ1hY
X0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLW5vc3RkaW5jKysiKQorICAgICAgICAgICAgICAg
ICAgICAgaW5jbHVkZV9kaXJlY3RvcmllcyggJHtMSUJDWFhfSU5DTFVERX0gJHtMSUJDWFhfQUJJ
X0lOQ0xVREV9KQorICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIlVzaW5nIGN1
c3RvbSBsaWJjKysiKQorICAgICAgICAgICAgICBlbHNlKCkKKyAgICAgICAgICAgICAgICAgICAg
IHNldChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkbGliPWxpYmMrKyIp
CisgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVXNpbmcgbGliYysrIikKKyAg
ICAgICAgICAgICAgZW5kaWYoKQorICAgICAgIGVuZGlmKCkKK2VuZGlmKCkKKworYWRkX3N1YmRp
cmVjdG9yeShzcmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5T
RSBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlODMzMzdk
N2ZjYjcyNmQxNGNjMTBmN2RkMmZkYTY3OTlkOGExMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvTElDRU5TRQpAQCAtMCwwICsxLDI3IEBACitDb3B5cmlnaHQg
KGMpIDIwMTUsIFZhbHZlIENvcnBvcmF0aW9uCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQgbW9kaWZpY2F0aW9uLAorYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKK2xpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCit0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Y29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKK21heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0CitzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQKK0FOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECitXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CitESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CitMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KK0FOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvUkVBRE1FLm1kIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OTc2ZDYyMmY2YWQzZDQxODY0Y2UzNmU1ZDJkYjk0YmQxYjBiY2JhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JFQURNRS5tZApAQCAtMCwwICsxLDEz
IEBACitPcGVuVlIgU0RLCistLS0KKworT3BlblZSIGlzIGFuIEFQSSBhbmQgcnVudGltZSB0aGF0
IGFsbG93cyBhY2Nlc3MgdG8gVlIgaGFyZHdhcmUgZnJvbSBtdWx0aXBsZSAKK3ZlbmRvcnMgd2l0
aG91dCByZXF1aXJpbmcgdGhhdCBhcHBsaWNhdGlvbnMgaGF2ZSBzcGVjaWZpYyBrbm93bGVkZ2Ug
b2YgdGhlIAoraGFyZHdhcmUgdGhleSBhcmUgdGFyZ2V0aW5nLiBUaGlzIHJlcG9zaXRvcnkgaXMg
YW4gU0RLIHRoYXQgY29udGFpbnMgdGhlIEFQSSAKK2FuZCBzYW1wbGVzLiBUaGUgcnVudGltZSBp
cyB1bmRlciBTdGVhbVZSIGluIFRvb2xzIG9uIFN0ZWFtLiAKKworIyMjIERvY3VtZW50YXRpb24K
KworRG9jdW1lbnRhdGlvbiBmb3IgdGhlIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIFtHaXRodWIg
V2lraV0oaHR0cHM6Ly9naXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyL3dpa2kvQVBJLURv
Y3VtZW50YXRpb24pCisKK01vcmUgaW5mb3JtYXRpb24gb24gT3BlblZSIGFuZCBTdGVhbVZSIGNh
biBiZSBmb3VuZCBvbiBodHRwOi8vc3RlYW12ci5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9SRUFETUUud2Via2l0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL1JF
QURNRS53ZWJraXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmOTc4MjFhNTM1M2VkOGZjNmU4ZDg3MDg0MDBmYzcz
ZDMzNWQwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9SRUFE
TUUud2Via2l0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgaXMgdGhlIE9wZW5WUiBsaWJyYXJ5IGZy
b20KK2h0dHBzOi8vZ2l0aHViLmNvbS9WYWx2ZVNvZnR3YXJlL29wZW52cgorCitVcHN0cmVhbSBj
b2RlIGNhbiBiZSB2aWV3ZWQgYXQKKyBodHRwczovL2dpdGh1Yi5jb20vVmFsdmVTb2Z0d2FyZS9v
cGVudnIvdHJlZS9tYXN0ZXIvCisKK2FuZCBjbG9uZWQgYnkKKyBnaXQgY2xvbmUgaHR0cHM6Ly9n
aXRodWIuY29tL1ZhbHZlU29mdHdhcmUvb3BlbnZyLmdpdAorCitDdXJyZW50IHZlcnNpb246IFtj
b21taXQgZWJkZWExNTJmOGFhYzc3ZTlhNmRiMjk2ODJiODFkNzYyMTU5ZGY3ZV0KKword2hpY2gg
Y29ycmVzcG9uZHMgdG8gMS4wLjEwIHJlbGVhc2UuCisKK1dlYktpdCBjaGFuZ2VzOgorKiBwYXRj
aGVzL2NtYWtlLWJ1aWxkLnBhdGNoOiBzY3JpcHQgdXNlZCB0byBhbGxvdyBvcGVudnIgQ01ha2Ug
YnVpbGQgdG8gYmUKK2ludGVncmF0ZWQgaW50byBXZWJLaXQgYnVpbGQKKyogUmVtb3ZlZCBiaW4v
IGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBwcmVjb21waWxlZCBsaWJyYXJp
ZXMKKyogUmVtb3ZlZCBsaWIvIGRpcmVjdG9yeS4gTm90IG5lZWRlZCBhcyBpdCBpbmNsdWRlcyBw
cmVjb21waWxlZCBsaWJyYXJpZXMKKyogUmVtb3ZlZCBjb250cm9sbGVyX2NhbGxvdXRzLyBkaXJl
Y3RvcnkuIFVubmVlZGVkIGRvY3MKKyogUmVtb3ZlZCBzYW1wbGVzLyBkaXJlY3RvcnkuCisqIFJl
cGxhY2VkIHRhYnMgYnkgd2hpdGVzcGFjZXMgdG8gbWFrZSBjaGVjay13ZWJraXQtc3R5bGUgaGFw
cHkuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvb3BlbnZyL1Rvb2xjaGFpbi1jbGFuZy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L29w
ZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI2YjBhYzAxNzVhNmUzNGI1
MzkwMmY0ZjVmNGEyMjg5YzE5NzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L29wZW52ci9Ub29sY2hhaW4tY2xhbmcuY21ha2UKQEAgLTAsMCArMSw5IEBACitzZXQoQ01B
S0VfU1lTVEVNX05BTUUgTGludXgpCisKK3NldChDTUFLRV9DX0NPTVBJTEVSIGNsYW5nKQorc2V0
KENNQUtFX0NYWF9DT01QSUxFUiBjbGFuZysrKQorCitzZXQoQ01BS0VfRklORF9ST09UX1BBVEhf
TU9ERV9QUk9HUkFNIE5FVkVSKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfTElCUkFS
WSBPTkxZKQorc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfSU5DTFVERSBPTkxZKQorc2V0
KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUEFDS0FHRSBPTkxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvaGVhZGVycy9vcGVudnIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzZlNDlhNmFjNTMxMDgwYzVm
NDMwM2U1YzE1Y2Y5M2UxMWZhMmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyLmgKQEAgLTAsMCArMSwzNzc3IEBACisjcHJhZ21hIG9u
Y2UKKworLy8gb3BlbnZyLmgKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlv
biA9PT09PT09PT09PT0vLworLy8gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBt
b2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5LgorCisjaWZuZGVmIF9PUEVOVlJfQVBJCisjZGVmaW5l
IF9PUEVOVlJfQVBJCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworCisKKy8vIHZydHlwZXMuaAor
I2lmbmRlZiBfSU5DTFVERV9WUlRZUEVTX0gKKyNkZWZpbmUgX0lOQ0xVREVfVlJUWVBFU19ICisK
Ky8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRvIGF2b2lkIHJlcXVpcmluZyB2dWxrYW4uaAorc3Ry
dWN0IFZrRGV2aWNlX1Q7CitzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UOworc3RydWN0IFZrSW5z
dGFuY2VfVDsKK3N0cnVjdCBWa1F1ZXVlX1Q7CisKKy8vIEZvcndhcmQgZGVjbGFyYXRpb25zIHRv
IGF2b2lkIHJlcXVpcmluZyBkM2QxMi5oCitzdHJ1Y3QgSUQzRDEyUmVzb3VyY2U7CitzdHJ1Y3Qg
SUQzRDEyQ29tbWFuZFF1ZXVlOworCituYW1lc3BhY2UgdnIKK3sKKyNwcmFnbWEgcGFjayggcHVz
aCwgOCApCisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVm
IGludDMyX3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7CisKKy8vIHJpZ2h0
LWhhbmRlZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUgcmlnaHQKKy8vIC16
IGlzIGdvaW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycworc3Ry
dWN0IEhtZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOworfTsKKworc3RydWN0
IEhtZE1hdHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsKKworc3RydWN0IEht
ZFZlY3RvcjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9y
NF90Cit7CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzZF90Cit7
CisgICAgICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAg
ICAgZmxvYXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBk
b3VibGUgdywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxv
YXQgciwgZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBIbWRWZWN0
b3IzX3QgdkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90Cit7CisgICAgICAg
SG1kVmVjdG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7
Cit9OworCisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9yIGVh
Y2ggY29sb3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBpbiB0
aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4gVGhl
IDAsMCB0byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0cnVjdCBEaXN0b3J0
aW9uQ29vcmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOworICAgICAgIGZsb2F0
IHJmR3JlZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKworZW51bSBFVlJFeWUK
K3sKKyAgICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0gMQorfTsKKworZW51
bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8gSGFu
ZGxlIGlzIGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAxLCAg
Ly8gSGFuZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRlciBi
dWZmZXIgbmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAgIFRleHR1cmVUeXBl
X1Z1bGthbiA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1cmVE
YXRhX3Qgc3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8gSGFu
ZGxlIGlzIGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2VSZWYKKyAgICAg
ICBUZXh0dXJlVHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEg
RDNEMTJUZXh0dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JTcGFjZQorewor
ICAgICAgIENvbG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3Ig
OC1iaXQgcGVyIGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1p
cnJvcnMgdGhlIERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgorICAgICAg
IENvbG9yU3BhY2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3Bs
YXllZCBkaXJlY3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsu
YS4gZGlzcGxheSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIs
ICAgICAgIC8vIFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVh
ciByZXByZXNlbnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4K
K307CisKK3N0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBF
VGV4dHVyZVR5cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsK
KyAgICAgICBFQ29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRsZSB0byBhIHNo
YXJlZCB0ZXh0dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVk
UmVzb3VyY2UpLgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7CisjZGVm
aW5lIElOVkFMSURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1
cmVIYW5kbGVfdCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFRyYWNraW5n
UmVzdWx0X1VuaW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAgICBU
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAorICAgICAg
IFRyYWNraW5nUmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCisKKyAg
ICAgICBUcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAwLAorICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAg
ICAgICAgPSAyMDEsCit9OworCit0eXBlZGVmIHVpbnQzMl90IERyaXZlcklkX3Q7CitzdGF0aWMg
Y29uc3QgdWludDMyX3Qga19uRHJpdmVyTm9uZSA9IDB4RkZGRkZGRkY7CisKK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTWF4RHJpdmVyRGVidWdSZXNwb25zZVNpemUgPSAzMjc2ODsKKworLyoq
IFVzZWQgdG8gcGFzcyBkZXZpY2UgSURzIHRvIEFQSSBjYWxscyAqLwordHlwZWRlZiB1aW50MzJf
dCBUcmFja2VkRGV2aWNlSW5kZXhfdDsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuVHJhY2tl
ZERldmljZUluZGV4X0htZCA9IDA7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heFRyYWNr
ZWREZXZpY2VDb3VudCA9IDE2Oworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2
aWNlSW5kZXhPdGhlciA9IDB4RkZGRkZGRkU7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga191blRy
YWNrZWREZXZpY2VJbmRleEludmFsaWQgPSAweEZGRkZGRkZGOworCisvKiogRGVzY3JpYmVzIHdo
YXQga2luZCBvZiBvYmplY3QgaXMgYmVpbmcgdHJhY2tlZCBhdCBhIGdpdmVuIElEICovCitlbnVt
IEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxp
ZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBJRCB3YXMgbm90IHZhbGlk
LgorICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAxLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gSGVhZC1Nb3VudGVkIERpc3BsYXlzCisgICAgICAgVHJhY2tlZERl
dmljZUNsYXNzX0NvbnRyb2xsZXIgPSAyLCAgICAgICAgICAgICAgICAgICAgIC8vIFRyYWNrZWQg
Y29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfR2VuZXJpY1RyYWNrZXIgPSAz
LCAgICAgICAgICAgICAgLy8gR2VuZXJpYyB0cmFja2Vycywgc2ltaWxhciB0byBjb250cm9sbGVy
cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsICAgICAg
IC8vIENhbWVyYSBhbmQgYmFzZSBzdGF0aW9ucyB0aGF0IHNlcnZlIGFzIHRyYWNraW5nIHJlZmVy
ZW5jZSBwb2ludHMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfRGlzcGxheVJlZGlyZWN0ID0g
NSwgICAgICAgICAgICAgIC8vIEFjY2Vzc29yaWVzIHRoYXQgYXJlbid0IG5lY2Vzc2FyaWx5IHRy
YWNrZWQgdGhlbXNlbHZlcywgYnV0IG1heSByZWRpcmVjdCB2aWRlbyBvdXRwdXQgZnJvbSBvdGhl
ciB0cmFja2VkIGRldmljZXMKK307CisKKworLyoqIERlc2NyaWJlcyB3aGF0IHNwZWNpZmljIHJv
bGUgYXNzb2NpYXRlZCB3aXRoIGEgdHJhY2tlZCBkZXZpY2UgKi8KK2VudW0gRVRyYWNrZWRDb250
cm9sbGVyUm9sZQoreworICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9JbnZhbGlkID0gMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWQgdmFsdWUgZm9yIGNv
bnRyb2xsZXIgdHlwZQorICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCA9IDEs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGRldmljZSBhc3Nv
Y2lhdGVkIHdpdGggdGhlIGxlZnQgaGFuZAorICAgICAgIFRyYWNrZWRDb250cm9sbGVyUm9sZV9S
aWdodEhhbmQgPSAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmFja2VkIGRldmlj
ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJpZ2h0IGhhbmQKK307CisKKworLyoqIGRlc2NyaWJlcyBh
IHNpbmdsZSBwb3NlIGZvciBhIHRyYWNrZWQgb2JqZWN0ICovCitzdHJ1Y3QgVHJhY2tlZERldmlj
ZVBvc2VfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2lu
ZzsKKyAgICAgICBIbWRWZWN0b3IzX3QgdlZlbG9jaXR5OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyB2ZWxvY2l0eSBpbiB0cmFja2VyIHNwYWNlIGluIG0vcworICAgICAgIEhtZFZlY3Rv
cjNfdCB2QW5ndWxhclZlbG9jaXR5OyAgICAgICAgICAgICAgLy8gYW5ndWxhciB2ZWxvY2l0eSBp
biByYWRpYW5zL3MgKD8pCisgICAgICAgRVRyYWNraW5nUmVzdWx0IGVUcmFja2luZ1Jlc3VsdDsK
KyAgICAgICBib29sIGJQb3NlSXNWYWxpZDsKKworICAgICAgIC8vIFRoaXMgaW5kaWNhdGVzIHRo
YXQgdGhlcmUgaXMgYSBkZXZpY2UgY29ubmVjdGVkIGZvciB0aGlzIHNwb3QgaW4gdGhlIHBvc2Ug
YXJyYXkuCisgICAgICAgLy8gSXQgY291bGQgZ28gZnJvbSB0cnVlIHRvIGZhbHNlIGlmIHRoZSB1
c2VyIHVucGx1Z3MgdGhlIGRldmljZS4KKyAgICAgICBib29sIGJEZXZpY2VJc0Nvbm5lY3RlZDsK
K307CisKKy8qKiBJZGVudGlmaWVzIHdoaWNoIHN0eWxlIG9mIHRyYWNraW5nIG9yaWdpbiB0aGUg
YXBwbGljYXRpb24gd2FudHMgdG8gdXNlCisqIGZvciB0aGUgcG9zZXMgaXQgaXMgcmVxdWVzdGlu
ZyAqLworZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIFRyYWNraW5nVW5p
dmVyc2VTZWF0ZWQgPSAwLCAgICAgICAgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJlbGF0
aXZlIHRvIHRoZSBzZWF0ZWQgemVybyBwb3NlCisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVN0YW5k
aW5nID0gMSwgICAgICAgLy8gUG9zZXMgYXJlIHByb3ZpZGVkIHJlbGF0aXZlIHRvIHRoZSBzYWZl
IGJvdW5kcyBjb25maWd1cmVkIGJ5IHRoZSB1c2VyCisgICAgICAgVHJhY2tpbmdVbml2ZXJzZVJh
d0FuZFVuY2FsaWJyYXRlZCA9IDIsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCBpbiB0aGUg
Y29vcmRpbmF0ZSBzeXN0ZW0gZGVmaW5lZCBieSB0aGUgZHJpdmVyLiAgSXQgaGFzIFkgdXAgYW5k
IGlzIHVuaWZpZWQgZm9yIGRldmljZXMgb2YgdGhlIHNhbWUgZHJpdmVyLiBZb3UgdXN1YWxseSBk
b24ndCB3YW50IHRoaXMgb25lLgorfTsKKworLy8gUmVmZXJzIHRvIGEgc2luZ2xlIGNvbnRhaW5l
ciBvZiBwcm9wZXJ0aWVzCit0eXBlZGVmIHVpbnQ2NF90IFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3Q7Cit0eXBlZGVmIHVpbnQzMl90IFByb3BlcnR5VHlwZVRhZ190OworCitzdGF0aWMgY29uc3Qg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0g
MDsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuSW52YWxpZFByb3BlcnR5VGFn
ID0gMDsKKworLy8gVXNlIHRoZXNlIHRhZ3MgdG8gc2V0L2dldCBjb21tb24gdHlwZXMgYXMgc3Ry
dWN0IHByb3BlcnRpZXMKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCBrX3VuRmxvYXRQ
cm9wZXJ0eVRhZyA9IDE7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkludDMy
UHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5VaW50
NjRQcm9wZXJ0eVRhZyA9IDM7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkJv
b2xQcm9wZXJ0eVRhZyA9IDQ7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191blN0
cmluZ1Byb3BlcnR5VGFnID0gNTsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBl
VGFnX3Qga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7CitzdGF0aWMgY29u
c3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworCitz
dGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyA9
IDMwOworCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bk9wZW5WUkludGVybmFs
UmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCA9IDEwMDAwOworCisKKy8qKiBFYWNoIGVudHJ5
IGluIHRoaXMgZW51bSByZXByZXNlbnRzIGEgcHJvcGVydHkgdGhhdCBjYW4gYmUgcmV0cmlldmVk
IGFib3V0IGEKKyogdHJhY2tlZCBkZXZpY2UuIE1hbnkgZmllbGRzIGFyZSBvbmx5IHZhbGlkIGZv
ciBvbmUgRVRyYWNrZWREZXZpY2VDbGFzcy4gKi8KK2VudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eQoreworICAgICAgIFByb3BfSW52YWxpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgLy8gZ2VuZXJhbCBwcm9wZXJ0
aWVzIHRoYXQgYXBwbHkgdG8gYWxsIGRldmljZSBjbGFzc2VzCisgICAgICAgUHJvcF9UcmFja2lu
Z1N5c3RlbU5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMCwKKyAg
ICAgICBQcm9wX01vZGVsTnVtYmVyX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAwMSwKKyAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwMiwKKyAgICAgICBQcm9wX1JlbmRl
ck1vZGVsTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAw
MywKKyAgICAgICBQcm9wX1dpbGxEcmlmdEluWWF3X0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAwNSwKKyAgICAgICBQcm9wX1RyYWNraW5n
RmlybXdhcmVWZXJzaW9uX1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gMTAwNiwKKyAgICAg
ICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTAwNywKKyAgICAgICBQcm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmlu
ZyAgICAgICA9IDEwMDgsCisgICAgICAgUHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9TdHJp
bmcgICAgICAgICAgICAgICAgICAgICA9IDEwMDksCisgICAgICAgUHJvcF9EZXZpY2VJc1dpcmVs
ZXNzX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAxMCwKKyAgICAg
ICBQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0dGVyeVBlcmNlbnRhZ2VfRmxvYXQg
ICAgICAgICAgICAgICAgICAgICA9IDEwMTIsIC8vIDAgaXMgZW1wdHksIDEgaXMgZnVsbAorICAg
ICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5zZm9ybV9NYXRyaXgzNCAgICAgICAgICAgICAgPSAx
MDEzLAorICAgICAgIFByb3BfRmlybXdhcmVfVXBkYXRlQXZhaWxhYmxlX0Jvb2wgICAgICAgICAg
ICAgICAgICAgICA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9v
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTUsCisgICAgICAgUHJvcF9GaXJtd2Fy
ZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nICAgICAgICAgICAgICA9IDEwMTYsCisgICAgICAgUHJv
cF9IYXJkd2FyZVJldmlzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MTcsCisgICAgICAgUHJvcF9GaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMTgsCisgICAgICAgUHJvcF9GUEdBVmVyc2lvbl9VaW50NjQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMTksCisgICAgICAg
UHJvcF9WUkNWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTAyMCwKKyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyMSwKKyAgICAgICBQcm9wX0RvbmdsZVZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjIsCisgICAg
ICAgUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDIzLAorICAgICAgIFByb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVtV2l0aEhtZF9C
b29sICAgICAgID0gMTAyNCwKKyAgICAgICBQcm9wX0NvbnRhaW5zUHJveGltaXR5U2Vuc29yX0Jv
b2wgICAgICAgICAgICAgICAgICAgICA9IDEwMjUsCisgICAgICAgUHJvcF9EZXZpY2VQcm92aWRl
c0JhdHRlcnlTdGF0dXNfQm9vbCAgICAgICAgICAgICAgPSAxMDI2LAorICAgICAgIFByb3BfRGV2
aWNlQ2FuUG93ZXJPZmZfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MDI3LAorICAgICAgIFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nICAgICAg
ICAgICAgICA9IDEwMjgsCisgICAgICAgUHJvcF9EZXZpY2VDbGFzc19JbnQzMiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyOSwKKyAgICAgICBQcm9wX0hhc0Nh
bWVyYV9Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nICAgICAgICAgICAgICAg
ICAgID0gMTAzMSwKKyAgICAgICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9v
bCAgICAgID0gMTAzMiwKKyAgICAgICBQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJlZF9C
b29sICAgICAgICAgICAgICA9IDEwMzMsCisgICAgICAgUHJvcF9QYXJlbnREcml2ZXJfVWludDY0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMzQsCisgICAgICAgUHJvcF9S
ZXNvdXJjZVJvb3RfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MzUsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2
aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVZz
eW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCisgICAgICAgUHJvcF9EaXNw
bGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKKyAgICAgICBQcm9wX1ByZXZp
b3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA1LCAK
KyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3BsYXlN
Q1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOCwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5k
b3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAx
MSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAgICAgICAgID0g
MjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAgICAgICAgICAg
ID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAorICAgICAgIFByb3Bf
Q2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAgICAgPSAyMDE2
LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNw
bGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE5
LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisgICAgICAgUHJvcF9MZW5zQ2Vu
dGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMiwK
KyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAorICAgICAgIFByb3BfTGVu
c0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1Vp
bnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13
YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCisgICAgICAgUHJvcF9E
aXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAy
OSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3BfQXVkaW9GaXJtd2FyZVZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAorICAgICAgIFByb3BfQ2FtZXJh
Q29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIwMzMsCisgICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZU51
bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisgICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MSwKKyAg
ICAgICBQcm9wX1NlY29uZHNGcm9tUGhvdG9uc1RvVmJsYW5rX0Zsb2F0ICAgICAgICAgICAgICA9
IDIwNDIsCisgICAgICAgUHJvcF9Ecml2ZXJEaXJlY3RNb2RlU2VuZHNWc3luY0V2ZW50c19Cb29s
ICAgICAgID0gMjA0MywKKyAgICAgICBQcm9wX0Rpc3BsYXlEZWJ1Z01vZGVfQm9vbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ0LAorICAgICAgIFByb3BfR3JhcGhpY3NB
ZGFwdGVyTHVpZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDQ1LAorICAg
ICAgIFByb3BfRHJpdmVyUHJvdmlkZWRDaGFwZXJvbmVQYXRoX1N0cmluZyAgICAgICAgICAgICAg
PSAyMDQ4LAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8gVHJhY2tl
ZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3Ry
aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKKyAgICAgICBQcm9wX1N1cHBv
cnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMSwKKyAg
ICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxl
ckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBl
IEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0LCAvLyBSZXR1cm4gdmFs
dWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4aXMzVHlw
ZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwNSwg
Ly8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisgICAgICAg
UHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlz
VHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVRyYWNrZWRD
b250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8g
VHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisgICAgICAgUHJvcF9GaWVsZE9m
Vmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAwLAorICAgICAg
IFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9
IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURlZ3JlZXNf
RmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2luZ1Jh
bmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0LAorICAgICAgIFByb3Bf
VHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAwNSwKKyAg
ICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVzZWQg
Zm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAgICAgICBQcm9wX0ljb25QYXRo
TmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUw
MDAsIC8vIERFUFJFQ0FURUQuIFZhbHVlIG5vdCByZWZlcmVuY2VkLiBOb3cgZXhwZWN0ZWQgdG8g
YmUgcGFydCBvZiBpY29uIHBhdGggcHJvcGVydGllcy4KKyAgICAgICBQcm9wX05hbWVkSWNvblBh
dGhEZXZpY2VPZmZfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTAwMSwgLy8g
e2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJ
RiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMK
KyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VTZWFyY2hpbmdfU3RyaW5nICAgICAgICAg
ICAgICA9IDUwMDIsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0
YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAz
MngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5n
QWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFt
ZSAtIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3Ig
aGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDQsIC8vIHtkcml2ZXJ9
L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFu
aW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAg
UHJvcF9OYW1lZEljb25QYXRoRGV2aWNlUmVhZHlBbGVydF9TdHJpbmcgICAgICAgICAgICAgID0g
NTAwNSwgLy8ge2RyaXZlcn0vaWNvbnMvaWNvbl9maWxlbmFtZSAtIFBORyBmb3Igc3RhdGljIGlj
b24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZv
ciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcg
ICAgICAgICAgICAgICAgICAgICA9IDUwMDYsIC8vIHtkcml2ZXJ9L2ljb25zL2ljb25fZmlsZW5h
bWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9y
IGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU3RhbmRieV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDcsIC8vIHtkcml2
ZXJ9L2ljb25zL2ljb25fZmlsZW5hbWUgLSBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9y
IGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAg
ICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgPSA1MDA4LCAvLyB7ZHJpdmVyfS9pY29ucy9pY29uX2ZpbGVuYW1lIC0gUE5HIGZvciBz
dGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQg
MzJ4MzIgZm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIGJ5
IGhlbHBlcnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAgICAgIFByb3BfRGlz
cGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
NTEwMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFy
ZSB1bmlxdWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAgICAgUHJvcF9JbnN0
YWxsUGF0aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDYwMDEsCisgICAgICAgUHJvcF9IYXNEaXNwbGF5Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA2MDAyLAorICAgICAgIFByb3BfSGFzQ29udHJvbGxlckNvbXBvbmVu
dF9Cb29sICAgICAgICAgICAgICAgICAgICAgPSA2MDAzLAorICAgICAgIFByb3BfSGFzQ2FtZXJh
Q29tcG9uZW50X0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MDA0LAorICAgICAg
IFByb3BfSGFzRHJpdmVyRGlyZWN0TW9kZUNvbXBvbmVudF9Cb29sICAgICAgICAgICAgICA9IDYw
MDUsCisgICAgICAgUHJvcF9IYXNWaXJ0dWFsRGlzcGxheUNvbXBvbmVudF9Cb29sICAgICAgICAg
ICAgICA9IDYwMDYsCisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2
YXRlIGRlYnVnIGRhdGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9wX1ZlbmRv
clNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKKyAg
ICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAg
ID0gMTA5OTksCit9OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25n
ZXIgdGhhbiB0aGlzIGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9w
ZXJ0eVN0cmluZ1NpemUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMg
dGhhdCBvY2N1ciB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0Rh
dGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFja2VkUHJv
cF9Xcm9uZ0RldmljZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgIFRyYWNr
ZWRQcm9wX0J1ZmZlclRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKKyAg
ICAgICBUcmFja2VkUHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA0LCAvLyBEcml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBl
dmVyKS4KKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gNSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIg
ICAgICAgICAgICAgID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlE
ZXZpY2UgICAgICAgPSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVt
TGVuZ3RoICAgICAgID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qg
a25vd24geWV0LCBidXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KKyAgICAg
ICBUcmFja2VkUHJvcF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwK
KyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAg
PSAxMSwKK307CisKKy8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBw
YXJ0IG9mIHRoZSBwcm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyogZnJhbWUg
YnVmZmVyLiAqLworc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQgdU1p
biwgdk1pbjsKKyAgICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworLyoqIEFsbG93cyBzcGVj
aWZ5aW5nIHBvc2UgdXNlZCB0byByZW5kZXIgcHJvdmlkZWQgc2NlbmUgdGV4dHVyZSAoaWYgZGlm
ZmVyZW50IGZyb20gdmFsdWUgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzKS4gKi8KK3N0cnVjdCBW
UlRleHR1cmVXaXRoUG9zZV90IDogcHVibGljIFRleHR1cmVfdAoreworICAgICAgIEhtZE1hdHJp
eDM0X3QgbURldmljZVRvQWJzb2x1dGVUcmFja2luZzsgLy8gQWN0dWFsIHBvc2UgdXNlZCB0byBy
ZW5kZXIgc2NlbmUgdGV4dHVyZXMuCit9OworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0
byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUgY29tcG9zaXRvciB3
aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAgIC8v
IFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVmdCBhbmQgcmlnaHQg
ZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQuCisg
ICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAgLy8gQXBwIHN1Ym1pdHMgZmlu
YWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9ydGlvbiBhbHJlYWR5
IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFwcGVhcgorICAgICAg
IC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0aW9u
IGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSByZXR1cm5lZCBieQor
ICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkgdG8gYXBwbHkgdGhl
IGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJlZm9yZSBjYWxsaW5n
IFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkID0g
MHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFzc2VkIGluIGlzIGFj
dHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5HTCkgdGhlbiBzZXQg
dGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4MDIsCisKKyAgICAg
ICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgwNCwKKworICAgICAg
IC8vIFNldCB0byBpbmRpY2F0ZSB0aGF0IHBUZXh0dXJlIGlzIGEgcG9pbnRlciB0byBhIFZSVGV4
dHVyZVdpdGhQb3NlX3QuCisgICAgICAgU3VibWl0X1RleHR1cmVXaXRoUG9zZSA9IDB4MDgsCit9
OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBWdWxrYW4gdGV4dHVyZXMgdG8gSVZS
Q29tcG9zaXRvcjo6U3VibWl0LgorKiBCZSBzdXJlIHRvIGNhbGwgT3BlblZSX1NodXRkb3duIGJl
Zm9yZSBkZXN0cm95aW5nIHRoZXNlIHJlc291cmNlcy4gKi8KK3N0cnVjdCBWUlZ1bGthblRleHR1
cmVEYXRhX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25JbWFnZTsgLy8gVmtJbWFnZQorICAgICAg
IFZrRGV2aWNlX1QgKm1fcERldmljZTsKKyAgICAgICBWa1BoeXNpY2FsRGV2aWNlX1QgKm1fcFBo
eXNpY2FsRGV2aWNlOworICAgICAgIFZrSW5zdGFuY2VfVCAqbV9wSW5zdGFuY2U7CisgICAgICAg
VmtRdWV1ZV9UICptX3BRdWV1ZTsKKyAgICAgICB1aW50MzJfdCBtX25RdWV1ZUZhbWlseUluZGV4
OworICAgICAgIHVpbnQzMl90IG1fbldpZHRoLCBtX25IZWlnaHQsIG1fbkZvcm1hdCwgbV9uU2Ft
cGxlQ291bnQ7Cit9OworCisvKiogRGF0YSByZXF1aXJlZCBmb3IgcGFzc2luZyBEM0QxMiB0ZXh0
dXJlcyB0byBJVlJDb21wb3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJf
U2h1dGRvd24gYmVmb3JlIGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IEQz
RDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIElEM0QxMlJlc291cmNlICptX3BSZXNvdXJjZTsK
KyAgICAgICBJRDNEMTJDb21tYW5kUXVldWUgKm1fcENvbW1hbmRRdWV1ZTsKKyAgICAgICB1aW50
MzJfdCBtX25Ob2RlTWFzazsKK307CisKKy8qKiBTdGF0dXMgb2YgdGhlIG92ZXJhbGwgc3lzdGVt
IG9yIHRyYWNrZWQgb2JqZWN0cyAqLworZW51bSBFVlJTdGF0ZQoreworICAgICAgIFZSU3RhdGVf
VW5kZWZpbmVkID0gLTEsCisgICAgICAgVlJTdGF0ZV9PZmYgPSAwLAorICAgICAgIFZSU3RhdGVf
U2VhcmNoaW5nID0gMSwKKyAgICAgICBWUlN0YXRlX1NlYXJjaGluZ19BbGVydCA9IDIsCisgICAg
ICAgVlJTdGF0ZV9SZWFkeSA9IDMsCisgICAgICAgVlJTdGF0ZV9SZWFkeV9BbGVydCA9IDQsCisg
ICAgICAgVlJTdGF0ZV9Ob3RSZWFkeSA9IDUsCisgICAgICAgVlJTdGF0ZV9TdGFuZGJ5ID0gNiwK
KyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyA9IDcsCit9OworCisvKiogVGhlIHR5cGVz
IG9mIGV2ZW50cyB0aGF0IGNvdWxkIGJlIHBvc3RlZCAoYW5kIHdoYXQgdGhlIHBhcmFtZXRlcnMg
bWVhbiBmb3IgZWFjaCBldmVudCB0eXBlKSAqLworZW51bSBFVlJFdmVudFR5cGUKK3sKKyAgICAg
ICBWUkV2ZW50X05vbmUgPSAwLAorCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlQWN0aXZh
dGVkICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VEZWFj
dGl2YXRlZCAgICAgICA9IDEwMSwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRhdGVk
ICAgICAgICAgICAgICA9IDEwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkICAgICAgID0gMTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmlj
ZVVzZXJJbnRlcmFjdGlvbkVuZGVkICAgICAgID0gMTA0LAorICAgICAgIFZSRXZlbnRfSXBkQ2hh
bmdlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJF
dmVudF9FbnRlclN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAgICAg
VlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlICAgICAgICAgICAgICAgICAgICAgPSAxMDcsCisgICAg
ICAgVlJFdmVudF9UcmFja2VkRGV2aWNlUm9sZUNoYW5nZWQgICAgICAgPSAxMDgsCisgICAgICAg
VlJFdmVudF9XYXRjaGRvZ1dha2VVcFJlcXVlc3RlZCAgICAgICAgICAgICAgPSAxMDksCisgICAg
ICAgVlJFdmVudF9MZW5zRGlzdG9ydGlvbkNoYW5nZWQgICAgICAgICAgICAgID0gMTEwLAorICAg
ICAgIFZSRXZlbnRfUHJvcGVydHlDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTExLAorICAgICAgIFZSRXZlbnRfV2lyZWxlc3NEaXNjb25uZWN0ICAgICAgICAgICAgICAgICAg
ICAgPSAxMTIsCisgICAgICAgVlJFdmVudF9XaXJlbGVzc1JlY29ubmVjdCAgICAgICAgICAgICAg
ICAgICAgID0gMTEzLAorCisgICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDAsIC8vIGRhdGEgaXMgY29udHJvbGxlcgorICAgICAg
IFZSRXZlbnRfQnV0dG9uVW5wcmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwg
Ly8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDIsIC8vIGRhdGEgaXMgY29udHJvbGxlcgor
ICAgICAgIFZSRXZlbnRfQnV0dG9uVW50b3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDIwMywgLy8gZGF0YSBpcyBjb250cm9sbGVyCisKKyAgICAgICBWUkV2ZW50X01vdXNlTW92ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDAsIC8vIGRhdGEgaXMgbW91c2UK
KyAgICAgICBWUkV2ZW50X01vdXNlQnV0dG9uRG93biAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDMwMSwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfTW91c2VCdXR0b25VcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAg
IFZSRXZlbnRfRm9jdXNFbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAz
MDMsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRm9jdXNMZWF2ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDQsIC8vIGRhdGEgaXMgb3ZlcmxheQorICAg
ICAgIFZSRXZlbnRfU2Nyb2xsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAzMDUsIC8vIGRhdGEgaXMgbW91c2UKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNiwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAg
IFZSRXZlbnRfT3ZlcmxheUZvY3VzQ2hhbmdlZCAgICAgICAgICAgICAgICAgICAgID0gMzA3LCAv
LyBkYXRhIGlzIG92ZXJsYXksIGdsb2JhbCBldmVudAorCisgICAgICAgVlJFdmVudF9JbnB1dEZv
Y3VzQ2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICA9IDQwMCwgLy8gZGF0YSBpcyBwcm9jZXNz
IERFUFJFQ0FURUQKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCAgICAgICAgICAg
ICAgICAgICAgID0gNDAxLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAorICAgICAgIFZS
RXZlbnRfU2NlbmVGb2N1c0xvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0MDIsIC8v
IGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0dhaW5lZCAgICAgICAg
ICAgICAgICAgICAgID0gNDAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50X1Nj
ZW5lQXBwbGljYXRpb25DaGFuZ2VkICAgICAgICAgICAgICA9IDQwNCwgLy8gZGF0YSBpcyBwcm9j
ZXNzIC0gVGhlIEFwcCBhY3R1YWxseSBkcmF3aW5nIHRoZSBzY2VuZSBjaGFuZ2VkICh1c3VhbGx5
IHRvIG9yIGZyb20gdGhlIGNvbXBvc2l0b3IpCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hh
bmdlZCAgICAgICAgICAgICAgICAgICAgID0gNDA1LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBOZXcg
YXBwIGdvdCBhY2Nlc3MgdG8gZHJhdyB0aGUgc2NlbmUKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9j
dXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA0MDYsIC8vIGRhdGEgaXMgcHJvY2Vzcwor
ICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQg
PSA0MDcsIC8vIGRhdGEgaXMgcHJvY2VzcworCisgICAgICAgVlJFdmVudF9IaWRlUmVuZGVyTW9k
ZWxzICAgICAgICAgICAgICAgICAgICAgPSA0MTAsIC8vIFNlbnQgdG8gdGhlIHNjZW5lIGFwcGxp
Y2F0aW9uIHRvIHJlcXVlc3QgaGlkaW5nIHJlbmRlciBtb2RlbHMgdGVtcG9yYXJpbHkKKyAgICAg
ICBWUkV2ZW50X1Nob3dSZW5kZXJNb2RlbHMgICAgICAgICAgICAgICAgICAgICA9IDQxMSwgLy8g
U2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCByZXN0b3JpbmcgcmVuZGVy
IG1vZGVsIHZpc2liaWxpdHkKKworICAgICAgIFZSRXZlbnRfT3ZlcmxheVNob3duICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTAwLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUhpZGRlbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwMSwKKyAgICAgICBWUkV2ZW50X0Rhc2hib2Fy
ZEFjdGl2YXRlZCAgICAgICAgICAgICAgICAgICAgID0gNTAyLAorICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkRGVhY3RpdmF0ZWQgICAgICAgICAgICAgID0gNTAzLAorICAgICAgIFZSRXZlbnRfRGFz
aGJvYXJkVGh1bWJTZWxlY3RlZCAgICAgICAgICAgICAgPSA1MDQsIC8vIFNlbnQgdG8gdGhlIG92
ZXJsYXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJk
UmVxdWVzdGVkICAgICAgICAgICAgICAgICAgICAgPSA1MDUsIC8vIFNlbnQgdG8gdGhlIG92ZXJs
YXkgbWFuYWdlciAtIGRhdGEgaXMgb3ZlcmxheQorICAgICAgIFZSRXZlbnRfUmVzZXREYXNoYm9h
cmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1MDYsIC8vIFNlbmQgdG8gdGhlIG92ZXJs
YXkgbWFuYWdlcgorICAgICAgIFZSRXZlbnRfUmVuZGVyVG9hc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTA3LCAvLyBTZW5kIHRvIHRoZSBkYXNoYm9hcmQgdG8gcmVuZGVy
IGEgdG9hc3QgLSBkYXRhIGlzIHRoZSBub3RpZmljYXRpb24gSUQKKyAgICAgICBWUkV2ZW50X0lt
YWdlTG9hZGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUwOCwgLy8gU2Vu
dCB0byBvdmVybGF5cyB3aGVuIGEgU2V0T3ZlcmxheVJhdyBvciBTZXRPdmVybGF5RnJvbUZpbGUg
Y2FsbCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MDksIC8vIFNlbnQgdG8ga2V5Ym9hcmQgcmVuZGVyZXIg
aW4gdGhlIGRhc2hib2FyZCB0byBpbnZva2UgaXQKKyAgICAgICBWUkV2ZW50X0hpZGVLZXlib2Fy
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUxMCwgLy8gU2VudCB0byBrZXlib2FyZCBy
ZW5kZXJlciBpbiB0aGUgZGFzaGJvYXJkIHRvIGhpZGUgaXQKKyAgICAgICBWUkV2ZW50X092ZXJs
YXlHYW1lcGFkRm9jdXNHYWluZWQgICAgICAgPSA1MTEsIC8vIFNlbnQgdG8gYW4gb3ZlcmxheSB3
aGVuIElWUk92ZXJsYXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gaXQKKyAgICAgICBW
UkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ICAgICAgICAgICAgICA9IDUxMiwgLy8gU2Vu
ZCB0byBhbiBvdmVybGF5IHdoZW4gaXQgcHJldmlvdXNseSBoYWQgZm9jdXMgYW5kIElWUk92ZXJs
YXk6OlNldEZvY3VzT3ZlcmxheSBpcyBjYWxsZWQgb24gc29tZXRoaW5nIGVsc2UKKyAgICAgICBW
UkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBWUkV2ZW50
X0Rhc2hib2FyZEd1aWRlQnV0dG9uRG93biAgICAgICA9IDUxNCwKKyAgICAgICBWUkV2ZW50X0Rh
c2hib2FyZEd1aWRlQnV0dG9uVXAgICAgICAgICAgICAgID0gNTE1LAorICAgICAgIFZSRXZlbnRf
U2NyZWVuc2hvdFRyaWdnZXJlZCAgICAgICAgICAgICAgICAgICAgID0gNTE2LCAvLyBTY3JlZW5z
aG90IGJ1dHRvbiBjb21ibyB3YXMgcHJlc3NlZCwgRGFzaGJvYXJkIHNob3VsZCByZXF1ZXN0IGEg
c2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfSW1hZ2VGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTE3LCAvLyBTZW50IHRvIG92ZXJsYXlzIHdoZW4gYSBTZXRPdmVy
bGF5UmF3IG9yIFNldE92ZXJsYXlmcm9tRmFpbCBmYWlscyB0byBsb2FkCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRPdmVybGF5Q3JlYXRlZCAgICAgICAgICAgICAgPSA1MTgsCisKKyAgICAgICAv
LyBTY3JlZW5zaG90IEFQSQorICAgICAgIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA1MjAsIC8vIFNlbnQgYnkgdnJjbGllbnQgYXBwbGljYXRp
b24gdG8gY29tcG9zaXRvciB0byB0YWtlIGEgc2NyZWVuc2hvdAorICAgICAgIFZSRXZlbnRfU2Ny
ZWVuc2hvdFRha2VuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDUyMSwgLy8g
U2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSBzY3JlZW5zaG90
IGhhcyBiZWVuIHRha2VuCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gNTIyLCAvLyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGFw
cGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgZmFpbGVkIHRvIGJlIHRha2VuCisgICAgICAg
VlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgICAgICAgICAgICAgID0gNTIzLCAv
LyBTZW50IGJ5IGNvbXBvc2l0b3IgdG8gdGhlIGRhc2hib2FyZCB0aGF0IGEgY29tcGxldGVkIHNj
cmVlbnNob3Qgd2FzIHN1Ym1pdHRlZAorICAgICAgIFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
VG9EYXNoYm9hcmQgICAgICAgPSA1MjQsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgZGFz
aGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMgc3VibWl0dGVkCisKKyAgICAg
ICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkICAgICAgID0gNTI1LAorCisg
ICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA2MDAsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fSGlkZGVuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjAxLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0JlZ2lu
SW50ZXJhY3Rpb24gICAgICAgPSA2MDIsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fRGVz
dHJveWVkICAgICAgICAgICAgICAgICAgICAgPSA2MDMsCisKKyAgICAgICBWUkV2ZW50X1F1aXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDAsIC8v
IGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUHJvY2Vzc1F1aXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMSwgLy8gZGF0YSBpcyBwcm9jZXNzCisg
ICAgICAgVlJFdmVudF9RdWl0QWJvcnRlZF9Vc2VyUHJvbXB0ICAgICAgICAgICAgICAgICAgICAg
PSA3MDIsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfUXVpdEFja25vd2xlZGdl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMywgLy8gZGF0YSBpcyBwcm9jZXNzCisg
ICAgICAgVlJFdmVudF9Ecml2ZXJSZXF1ZXN0ZWRRdWl0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNzA0LCAvLyBUaGUgZHJpdmVyIGhhcyByZXF1ZXN0ZWQgdGhhdCBTdGVhbVZSIHNodXQg
ZG93bgorCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVEYXRhSGFzQ2hhbmdlZCAgICAgICAgICAg
ICAgICAgICAgID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFu
Z2VkICAgICAgICAgICAgICA9IDgwMSwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRh
SGFzQ2hhbmdlZCAgICAgICAgICAgICAgPSA4MDIsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVT
ZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgID0gODAzLAorICAgICAgIFZSRXZlbnRfU2VhdGVkWmVy
b1Bvc2VSZXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDgwNCwKKworICAgICAgIFZS
RXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFuZ2VkICAgICAgICAgICAgICA9IDgyMCwKKworICAg
ICAgIFZSRXZlbnRfQmFja2dyb3VuZFNldHRpbmdIYXNDaGFuZ2VkICAgICAgICAgICAgICA9IDg1
MCwKKyAgICAgICBWUkV2ZW50X0NhbWVyYVNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAg
ID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQgICAg
ICAgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkICAg
ICAgID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2Vk
ICAgICAgID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkICAg
ICAgICAgICAgICA9IDg1NSwKKyAgICAgICBWUkV2ZW50X0VuYWJsZUhvbWVBcHBTZXR0aW5nc0hh
dmVDaGFuZ2VkID0gODU2LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9NQ0ltYWdl
VXBkYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAg
ICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDEx
MDAsCisgICAgICAgVlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAg
ICAgICAgPSAxMTAxLAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRD
aGFySW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAgIFZSRXZl
bnRfS2V5Ym9hcmREb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIs
IC8vIFNlbnQgd2hlbiBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAgICAgICBW
UkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwK
KyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAg
ID0gMTMwMSwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0
ZWQgICAgICAgPSAxMzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9BcHBsaWNh
dGlvbk1pbWVUeXBlTG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEz
MDUsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzQ29ubmVjdGVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEzMDYsCisgICAgICAgVlJFdmVudF9Qcm9jZXNzRGlzY29ubmVjdGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDcsCisKKyAgICAgICBWUkV2
ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAgICAgID0gMTQwMCwKKyAg
ICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuICAgICAgICAgICAgICA9
IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duICAg
ICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJv
dW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFf
U3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9T
dG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJhX1Bh
dXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVz
dW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVyYV9FZGl0
aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9F
bmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5j
ZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAgICAgICBWUkV2ZW50X01lc3Nh
Z2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1MCwKKyAgICAgICBWUkV2
ZW50X01lc3NhZ2VPdmVybGF5Q2xvc2VSZXF1ZXN0ZWQgICAgICAgPSAxNjUxLAorICAgICAgIAor
ICAgICAgIC8vIFZlbmRvcnMgYXJlIGZyZWUgdG8gZXhwb3NlIHByaXZhdGUgZXZlbnRzIGluIHRo
aXMgcmVzZXJ2ZWQgcmVnaW9uCisgICAgICAgVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZl
ZF9TdGFydCAgICAgICA9IDEwMDAwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfRW5kICAgICAgICAgICAgICA9IDE5OTk5LAorfTsKKworCisvKiogTGV2ZWwgb2YgSG1k
IGFjdGl2aXR5ICovCisvLyBVc2VySW50ZXJhY3Rpb25fVGltZW91dCBtZWFucyB0aGUgZGV2aWNl
IGlzIGluIHRoZSBwcm9jZXNzIG9mIHRpbWluZyBvdXQuCisvLyBJblVzZSA9ICgga19FRGV2aWNl
QWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb24gfHwga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9V
c2VySW50ZXJhY3Rpb25fVGltZW91dCApCisvLyBWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkIGZpcmVzIHdoZW4gdGhlIGRldmljZXMgdHJhbnNpdGlvbnMgZnJvbSBT
dGFuZGJ5IC0+IFVzZXJJbnRlcmFjdGlvbiBvciBJZGxlIC0+IFVzZXJJbnRlcmFjdGlvbi4KKy8v
IFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIGZpcmVzIHdoZW4gdGhl
IGRldmljZXMgdHJhbnNpdGlvbnMgZnJvbSBVc2VySW50ZXJhY3Rpb25fVGltZW91dCAtPiBJZGxl
CitlbnVtIEVEZXZpY2VBY3Rpdml0eUxldmVsCit7ICAgICAgIAorICAgICAgIGtfRURldmljZUFj
dGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgIGtfRURldmljZUFjdGl2aXR5
TGV2ZWxfSWRsZSA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gTm8gYWN0aXZpdHkgZm9yIHRoZSBsYXN0IDEwIHNlY29uZHMKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEFjdGl2aXR5IChtb3ZlbWVudCBvciBwcm94IHNlbnNvcikgaXMgaGFwcGVuaW5nIG5v
dyAgICAgICAKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9U
aW1lb3V0ID0gMiwgICAgICAgICAgICAgIC8vIE5vIGFjdGl2aXR5IGZvciB0aGUgbGFzdCAwLjUg
c2Vjb25kcworICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSA9IDMsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWRsZSBmb3IgYXQgbGVhc3Qg
NSBzZWNvbmRzIChjb25maWd1cmFibGUgaW4gU2V0dGluZ3MgLT4gUG93ZXIgTWFuYWdlbWVudCkK
K307CisKKworLyoqIFZSIGNvbnRyb2xsZXIgYnV0dG9uIGFuZCBheGlzIElEcyAqLworZW51bSBF
VlJCdXR0b25JZAoreworICAgICAgIGtfRUJ1dHRvbl9TeXN0ZW0gICAgICAgICAgICAgICAgICAg
ICA9IDAsCisgICAgICAga19FQnV0dG9uX0FwcGxpY2F0aW9uTWVudSAgICAgICA9IDEsCisgICAg
ICAga19FQnV0dG9uX0dyaXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAg
IGtfRUJ1dHRvbl9EUGFkX0xlZnQgICAgICAgICAgICAgICAgICAgICA9IDMsCisgICAgICAga19F
QnV0dG9uX0RQYWRfVXAgICAgICAgICAgICAgICAgICAgICA9IDQsCisgICAgICAga19FQnV0dG9u
X0RQYWRfUmlnaHQgICAgICAgICAgICAgID0gNSwKKyAgICAgICBrX0VCdXR0b25fRFBhZF9Eb3du
ICAgICAgICAgICAgICAgICAgICAgPSA2LAorICAgICAgIGtfRUJ1dHRvbl9BICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDcsCisgICAgICAgCisgICAgICAga19FQnV0dG9uX1By
b3hpbWl0eVNlbnNvciAgID0gMzEsCisKKyAgICAgICBrX0VCdXR0b25fQXhpczAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMiwKKyAgICAgICBrX0VCdXR0b25fQXhpczEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMywKKyAgICAgICBrX0VCdXR0b25fQXhpczIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzNCwKKyAgICAgICBrX0VCdXR0b25fQXhpczMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzNSwKKyAgICAgICBrX0VCdXR0b25fQXhpczQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzNiwKKworICAgICAgIC8vIGFsaWFzZXMgZm9yIHdlbGwga25v
d24gY29udHJvbGxlcnMKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9Ub3VjaHBhZCAgICAgICA9
IGtfRUJ1dHRvbl9BeGlzMCwKKyAgICAgICBrX0VCdXR0b25fU3RlYW1WUl9UcmlnZ2VyICAgICAg
ID0ga19FQnV0dG9uX0F4aXMxLAorCisgICAgICAga19FQnV0dG9uX0Rhc2hib2FyZF9CYWNrICAg
ICAgID0ga19FQnV0dG9uX0dyaXAsCisKKyAgICAgICBrX0VCdXR0b25fTWF4ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjQKK307CisKK2lubGluZSB1aW50NjRfdCBCdXR0b25NYXNrRnJv
bUlkKCBFVlJCdXR0b25JZCBpZCApIHsgcmV0dXJuIDF1bGwgPDwgaWQ7IH0KKworLyoqIHVzZWQg
Zm9yIGNvbnRyb2xsZXIgYnV0dG9uIGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfQ29udHJvbGxl
cl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOyAvLyBFVlJCdXR0b25JZCBlbnVtCit9Owor
CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIGluIG92ZXJsYXkgc3BhY2Ug
Ki8KK2VudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBWUk1vdXNlQnV0dG9uX0xlZnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAxLAorICAgICAgIFZSTW91c2VC
dXR0b25fUmlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAyLAor
ICAgICAgIFZSTW91c2VCdXR0b25fTWlkZGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MHgwMDA0LAorfTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBv
dmVybGF5IHNwYWNlICovCitzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7CisgICAgICAgZmxvYXQg
eCwgeTsgLy8gY28tb3JkcyBhcmUgaW4gR0wgc3BhY2UsIGJvdHRvbSBsZWZ0IG9mIHRoZSB0ZXh0
dXJlIGlzIDAsMAorICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSTW91c2VCdXR0b24gZW51
bQorfTsKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSB3aGVlbCBzY3JvbGwgaW4gb3Zl
cmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfU2Nyb2xsX3QKK3sKKyAgICAgICBmbG9hdCB4
ZGVsdGEsIHlkZWx0YTsgLy8gbW92ZW1lbnQgaW4gZnJhY3Rpb24gb2YgdGhlIHBhZCB0cmF2ZXJz
ZWQgc2luY2UgbGFzdCBkZWx0YSwgMS4wIGZvciBhIGZ1bGwgc3dpcGUKKyAgICAgICB1aW50MzJf
dCByZXBlYXRDb3VudDsKK307CisKKy8qKiB3aGVuIGluIG1vdXNlIGlucHV0IG1vZGUgeW91IGNh
biByZWNlaXZlIGRhdGEgZnJvbSB0aGUgdG91Y2hwYWQsIHRoZXNlIGV2ZW50cyBhcmUgb25seSBz
ZW50IGlmIHRoZSB1c2VycyBmaW5nZXIKKyAgIGlzIG9uIHRoZSB0b3VjaHBhZCAob3IganVzdCBy
ZWxlYXNlZCBmcm9tIGl0KSAKKyoqLworc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKK3sK
KyAgICAgICAvLyB0cnVlIGlmIHRoZSB1c2VycyBmaW5nZXIgaXMgZGV0ZWN0ZWQgb24gdGhlIHRv
dWNoIHBhZAorICAgICAgIGJvb2wgYkZpbmdlckRvd247CisKKyAgICAgICAvLyBIb3cgbG9uZyB0
aGUgZmluZ2VyIGhhcyBiZWVuIGRvd24gaW4gc2Vjb25kcworICAgICAgIGZsb2F0IGZsU2Vjb25k
c0ZpbmdlckRvd247CisKKyAgICAgICAvLyBUaGVzZSB2YWx1ZXMgaW5kaWNhdGUgdGhlIHN0YXJ0
aW5nIGZpbmdlciBwb3NpdGlvbiAoc28geW91IGNhbiBkbyBzb21lIGJhc2ljIHN3aXBlIHN0dWZm
KQorICAgICAgIGZsb2F0IGZWYWx1ZVhGaXJzdDsKKyAgICAgICBmbG9hdCBmVmFsdWVZRmlyc3Q7
CisKKyAgICAgICAvLyBUaGlzIGlzIHRoZSByYXcgc2FtcGxlZCBjb29yZGluYXRlIHdpdGhvdXQg
ZGVhZHpvbmluZworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgZmxvYXQgZlZhbHVl
WVJhdzsKK307CisKKy8qKiBub3RpZmljYXRpb24gcmVsYXRlZCBldmVudHMuIERldGFpbHMgd2ls
bCBzdGlsbCBjaGFuZ2UgYXQgdGhpcyBwb2ludCAqLworc3RydWN0IFZSRXZlbnRfTm90aWZpY2F0
aW9uX3QKK3sKKyAgICAgICB1aW50NjRfdCB1bFVzZXJWYWx1ZTsKKyAgICAgICB1aW50MzJfdCBu
b3RpZmljYXRpb25JZDsKK307CisKKy8qKiBVc2VkIGZvciBldmVudHMgYWJvdXQgcHJvY2Vzc2Vz
ICovCitzdHJ1Y3QgVlJFdmVudF9Qcm9jZXNzX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7Cisg
ICAgICAgdWludDMyX3Qgb2xkUGlkOworICAgICAgIGJvb2wgYkZvcmNlZDsKK307CisKKworLyoq
IFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAqLworc3RydWN0IFZSRXZlbnRf
T3ZlcmxheV90Cit7CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKK307CisKKworLyoq
IFVzZWQgZm9yIGEgZmV3IGV2ZW50cyBhYm91dCBvdmVybGF5cyAqLworc3RydWN0IFZSRXZlbnRf
U3RhdHVzX3QKK3sKKyAgICAgICB1aW50MzJfdCBzdGF0dXNTdGF0ZTsgLy8gRVZSU3RhdGUgZW51
bQorfTsKKworLyoqIFVzZWQgZm9yIGtleWJvYXJkIGV2ZW50cyAqKi8KK3N0cnVjdCBWUkV2ZW50
X0tleWJvYXJkX3QKK3sKKyAgICAgICBjaGFyIGNOZXdJbnB1dFs4XTsgICAgICAgLy8gVXAgdG8g
MTEgYnl0ZXMgb2YgbmV3IGlucHV0CisgICAgICAgdWludDY0X3QgdVVzZXJWYWx1ZTsgICAgICAg
Ly8gUG9zc2libGUgZmxhZ3MgYWJvdXQgdGhlIG5ldyBpbnB1dAorfTsKKworc3RydWN0IFZSRXZl
bnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9OworCitzdHJ1Y3QgVlJFdmVu
dF9DaGFwZXJvbmVfdAoreworICAgICAgIHVpbnQ2NF90IG1fblByZXZpb3VzVW5pdmVyc2U7Cisg
ICAgICAgdWludDY0X3QgbV9uQ3VycmVudFVuaXZlcnNlOworfTsKKworLyoqIE5vdCBhY3R1YWxs
eSB1c2VkIGZvciBhbnkgZXZlbnRzICovCitzdHJ1Y3QgVlJFdmVudF9SZXNlcnZlZF90Cit7Cisg
ICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMTsKK307
CisKK3N0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMyX3Qg
bV9uRmlkZWxpdHlMZXZlbDsKK307CisKK3N0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVz
ZXRfdAoreworICAgICAgIGJvb2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfTsKKworc3RydWN0IFZS
RXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3QgaGFuZGxlOworICAgICAgIHVp
bnQzMl90IHR5cGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdAor
eworICAgICAgIGZsb2F0IHByb2dyZXNzOworfTsKKworc3RydWN0IFZSRXZlbnRfQXBwbGljYXRp
b25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50MzJfdCB1bkFy
Z3NIYW5kbGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90Cit7
CisgICAgICAgdWludDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBuVmlzdWFs
TW9kZTsKK307CisKK3N0cnVjdCBWUkV2ZW50X01lc3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICB1
aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZTsgLy8gdnI6OlZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZSBlbnVtCit9OworCitzdHJ1Y3QgVlJFdmVudF9Qcm9wZXJ0eV90Cit7CisgICAg
ICAgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBjb250YWluZXI7CisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wOworfTsKKworLyoqIE5PVEUhISEgSWYgeW91IGNoYW5nZSB0aGlz
IHlvdSBNVVNUIG1hbnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSAqLwordHlwZWRl
ZiB1bmlvbgoreworICAgICAgIFZSRXZlbnRfUmVzZXJ2ZWRfdCByZXNlcnZlZDsKKyAgICAgICBW
UkV2ZW50X0NvbnRyb2xsZXJfdCBjb250cm9sbGVyOworICAgICAgIFZSRXZlbnRfTW91c2VfdCBt
b3VzZTsKKyAgICAgICBWUkV2ZW50X1Njcm9sbF90IHNjcm9sbDsKKyAgICAgICBWUkV2ZW50X1By
b2Nlc3NfdCBwcm9jZXNzOworICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX3Qgbm90aWZpY2F0
aW9uOworICAgICAgIFZSRXZlbnRfT3ZlcmxheV90IG92ZXJsYXk7CisgICAgICAgVlJFdmVudF9T
dGF0dXNfdCBzdGF0dXM7CisgICAgICAgVlJFdmVudF9LZXlib2FyZF90IGtleWJvYXJkOworICAg
ICAgIFZSRXZlbnRfSXBkX3QgaXBkOworICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lX3QgY2hhcGVy
b25lOworICAgICAgIFZSRXZlbnRfUGVyZm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0Owor
ICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFZSRXZl
bnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFplcm9Qb3NlUmVzZXQ7CisgICAgICAgVlJF
dmVudF9TY3JlZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RQ
cm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9u
TGF1bmNoX3QgYXBwbGljYXRpb25MYXVuY2g7CisgICAgICAgVlJFdmVudF9FZGl0aW5nQ2FtZXJh
U3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90
IG1lc3NhZ2VPdmVybGF5OworICAgICAgIFZSRXZlbnRfUHJvcGVydHlfdCBwcm9wZXJ0eTsKK30g
VlJFdmVudF9EYXRhX3Q7CisKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMgb3JpZ2luYWxseSBkZWZpbmVkIG1pcy1w
YWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisvLyBjb21wYXRpYmlsaXR5LiAKKyNwcmFn
bWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworLyoqIEFuIGV2ZW50IHBvc3RlZCBieSB0aGUg
c2VydmVyIHRvIGFsbCBydW5uaW5nIGFwcGxpY2F0aW9ucyAqLworc3RydWN0IFZSRXZlbnRfdAor
eworICAgICAgIHVpbnQzMl90IGV2ZW50VHlwZTsgLy8gRVZSRXZlbnRUeXBlIGVudW0KKyAgICAg
ICBUcmFja2VkRGV2aWNlSW5kZXhfdCB0cmFja2VkRGV2aWNlSW5kZXg7CisgICAgICAgZmxvYXQg
ZXZlbnRBZ2VTZWNvbmRzOworICAgICAgIC8vIGV2ZW50IGRhdGEgbXVzdCBiZSB0aGUgZW5kIG9m
IHRoZSBzdHJ1Y3QgYXMgaXRzIHNpemUgaXMgdmFyaWFibGUKKyAgICAgICBWUkV2ZW50X0RhdGFf
dCBkYXRhOworfTsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVf
XykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworLyoqIFRoZSBtZXNoIHRvIGRyYXcg
aW50byB0aGUgc3RlbmNpbCAob3IgZGVwdGgpIGJ1ZmZlciB0byBwZXJmb3JtIAorKiBlYXJseSBz
dGVuY2lsIChvciBkZXB0aCkga2lsbHMgb2YgcGl4ZWxzIHRoYXQgd2lsbCBuZXZlciBhcHBlYXIg
b24gdGhlIEhNRC4KKyogVGhpcyBtZXNoIGRyYXdzIG9uIGFsbCB0aGUgcGl4ZWxzIHRoYXQgd2ls
bCBiZSBoaWRkZW4gYWZ0ZXIgZGlzdG9ydGlvbi4gCisqCisqIElmIHRoZSBITUQgZG9lcyBub3Qg
cHJvdmlkZSBhIHZpc2libGUgYXJlYSBtZXNoIHBWZXJ0ZXhEYXRhIHdpbGwgYmUKKyogTlVMTCBh
bmQgdW5UcmlhbmdsZUNvdW50IHdpbGwgYmUgMC4gKi8KK3N0cnVjdCBIaWRkZW5BcmVhTWVzaF90
Cit7CisgICAgICAgY29uc3QgSG1kVmVjdG9yMl90ICpwVmVydGV4RGF0YTsKKyAgICAgICB1aW50
MzJfdCB1blRyaWFuZ2xlQ291bnQ7Cit9OworCisKK2VudW0gRUhpZGRlbkFyZWFNZXNoVHlwZQor
eworICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkID0gMCwKKyAgICAgICBrX2VIaWRk
ZW5BcmVhTWVzaF9JbnZlcnNlID0gMSwKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9MaW5lTG9v
cCA9IDIsCisKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9NYXggPSAzLAorfTsKKworCisvKiog
SWRlbnRpZmllcyB3aGF0IGtpbmQgb2YgYXhpcyBpcyBvbiB0aGUgY29udHJvbGxlciBhdCBpbmRl
eCBuLiBSZWFkIHRoaXMgdHlwZSAKKyogd2l0aCBwVlJTeXN0ZW0tPkdldCggbkNvbnRyb2xsZXJE
ZXZpY2VJbmRleCwgUHJvcF9BeGlzMFR5cGVfSW50MzIgKyBuICk7CisqLworZW51bSBFVlJDb250
cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19Ob25lID0gMCwKKyAg
ICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAgICAga19lQ29udHJvbGxl
ckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX1RyaWdnZXIgPSAz
LCAvLyBBbmFsb2cgdHJpZ2dlciBkYXRhIGlzIGluIHRoZSBYIGF4aXMKK307CisKKworLyoqIGNv
bnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IG9uZSBheGlzIG9uIHRoZSBjb250cm9sbGVyICovCitz
dHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgZmxvYXQgeDsgLy8gUmFuZ2VzIGZy
b20gLTEuMCB0byAxLjAgZm9yIGpveXN0aWNrcyBhbmQgdHJhY2sgcGFkcy4gUmFuZ2VzIGZyb20g
MC4wIHRvIDEuMCBmb3IgdHJpZ2dlcnMgd2VyZSAwIGlzIGZ1bGx5IHJlbGVhc2VkLgorICAgICAg
IGZsb2F0IHk7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlja3MgYW5kIHRy
YWNrIHBhZHMuIElzIGFsd2F5cyAwLjAgZm9yIHRyaWdnZXJzLgorfTsKKworCisvKiogdGhlIG51
bWJlciBvZiBheGVzIGluIHRoZSBjb250cm9sbGVyIHN0YXRlICovCitzdGF0aWMgY29uc3QgdWlu
dDMyX3Qga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCA9IDU7CisKKworI2lmIGRlZmluZWQo
X19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgCisvLyBUaGlzIHN0cnVjdHVyZSB3YXMg
b3JpZ2luYWxseSBkZWZpbmVkIG1pcy1wYWNrZWQgb24gTGludXgsIHByZXNlcnZlZCBmb3IgCisv
LyBjb21wYXRpYmlsaXR5LiAKKyNwcmFnbWEgcGFjayggcHVzaCwgNCApCisjZW5kaWYKKworLyoq
IEhvbGRzIGFsbCB0aGUgc3RhdGUgb2YgYSBjb250cm9sbGVyIGF0IG9uZSBtb21lbnQgaW4gdGlt
ZS4gKi8KK3N0cnVjdCBWUkNvbnRyb2xsZXJTdGF0ZTAwMV90Cit7CisgICAgICAgLy8gSWYgcGFj
a2V0IG51bSBtYXRjaGVzIHRoYXQgb24geW91ciBwcmlvciBjYWxsLCB0aGVuIHRoZSBjb250cm9s
bGVyIHN0YXRlIGhhc24ndCBiZWVuIGNoYW5nZWQgc2luY2UgCisgICAgICAgLy8geW91ciBsYXN0
IGNhbGwgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyBpdAorICAgICAgIHVpbnQzMl90
IHVuUGFja2V0TnVtOworCisgICAgICAgLy8gYml0IGZsYWdzIGZvciBlYWNoIG9mIHRoZSBidXR0
b25zLiBVc2UgQnV0dG9uTWFza0Zyb21JZCB0byB0dXJuIGFuIElEIGludG8gYSBtYXNrCisgICAg
ICAgdWludDY0X3QgdWxCdXR0b25QcmVzc2VkOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uVG91
Y2hlZDsKKworICAgICAgIC8vIEF4aXMgZGF0YSBmb3IgdGhlIGNvbnRyb2xsZXIncyBhbmFsb2cg
aW5wdXRzCisgICAgICAgVlJDb250cm9sbGVyQXhpc190IHJBeGlzWyBrX3VuQ29udHJvbGxlclN0
YXRlQXhpc0NvdW50IF07Cit9OworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgCisjcHJhZ21hIHBhY2soIHBvcCApCisjZW5kaWYKKworCit0eXBlZGVmIFZSQ29u
dHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKKworCisvKiogZGV0ZXJtaW5l
cyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHZhcmlvdXMgZXZl
bnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91dHB1
dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAorICAg
ICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9OworCisKKworLyoqIENv
bGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7Cisg
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgQ09MTElT
SU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19T
VFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQsCisg
ICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisgICAgICAgQ09MTElTSU9OX0JP
VU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY3Vz
dG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3NpdG9yICovCitzdHJ1
Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXplOyAv
LyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisgICAgICAgYm9vbCBjdXJ2ZWQs
IGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFscGhhOworICAgICAg
IGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOworICAgICAgIGZsb2F0IGdy
aWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBIbWRNYXRyaXg0NF90IHRyYW5z
Zm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZSIG92ZXJsYXkgKi8K
K3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCBWUk92
ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworCisvKiogRXJyb3Jz
IHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLworZW51bSBFVlJPdmVybGF5RXJy
b3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5rbm93bk92
ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAgIFZST3ZlcmxheUVycm9yX0lu
dmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAgICAgIFZS
T3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAgICA9IDEzLCAvLyBO
byBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBudW1i
ZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5
cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9uZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAgIFZST3ZlcmxheUVycm9yX05h
bWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCisgICAgICAgVlJPdmVy
bGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTcs
CisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAgICAgICAgICAgICA9
IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlICAgICAgICAg
ICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIgICAgICAg
ICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVycm9yX1RodW1ibmFpbENhbnRC
ZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3ZlcmxheUVycm9yX0FycmF5VG9vU21h
bGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZST3ZlcmxheUVycm9yX1JlcXVl
c3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAgICAgIFZST3ZlcmxheUVycm9y
X0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKKyAgICAgICBWUk92ZXJs
YXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAgPSAyNSwKKyAgICAg
ICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAgICAgICAgPSAyNiwK
KyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVzICAg
ICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSAgICAgICAg
ICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1ZXMgdG8gcGFzcyBpbiB0byBW
Ul9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdpbGwgCisqIGRyYXcg
YSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAgVlJBcHBs
aWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVyIGtpbmQgb2YgYXBw
bGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRyaWVzIAorICAgICAg
IFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAgLy8gQXBwbGljYXRp
b24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fT3ZlcmxheSA9
IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0cyB3aXRoIG92ZXJs
YXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAgICAgLy8gQXBwbGlj
YXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFscmVhZHkgcnVubmlu
ZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBpZiBldmVyeXRoaW5n
IGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwgICAgICAgICAg
ICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVycy4gVGhlIGFwcGxp
Y2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIChsaWtl
IElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFyZHdhcmUuCisgICAg
ICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNlcnZlZCBmb3IgdnJt
b25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwvLyBSZXNlcnZl
ZCBmb3IgU3RlYW0KKyAgICAgICBWUkFwcGxpY2F0aW9uX0Jvb3RzdHJhcHBlciA9IDcsIC8vIFN0
YXJ0IHVwIFN0ZWFtVlIKKworICAgICAgIFZSQXBwbGljYXRpb25fTWF4Cit9OworCisKKy8qKiBl
cnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmlybXdhcmVFcnJvcgoreworICAg
ICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUkZpcm13YXJlRXJyb3JfU3Vj
Y2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAorfTsKKworCisvKiog
ZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0gRVZSTm90aWZpY2F0aW9uRXJy
b3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAgIFZSTm90aWZp
Y2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9Owor
CisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCisKKy8vIFBsZWFzZSBh
ZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9wZXIudmFsdmVz
b2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhlbHAKK2VudW0g
RVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9IDAsCisgICAg
ICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Db3JydXB0ICAgICAgICAgICAgICAgICAgICAgPSAx
MDEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kICAgICAgICAg
ICAgICAgICAgICAgPSAxMDIsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAzLAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfRmFjdG9yeU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA0
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50
ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA2LAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfVXNlckNvbmZpZ0RpcmVjdG9yeUludmFsaWQgICAgICAgICAgICAgID0gMTA3LAor
ICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA5LAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQgICAgICAgICAgICAgICAgICAgICA9IDEx
MCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1Bh
dGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExMiwKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlICAgICAgICAgICAgICA9
IDExMywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUmV0cnkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTUsIC8v
IFVzZWQgaW50ZXJuYWxseSB0byBjYXVzZSByZXRyaWVzIHRvIHZyc2VydmVyCisgICAgICAgVlJJ
bml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTYsIC8vIFRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIHNob3VsZCBzaWxlbnRseSBleGl0
LiBUaGUgdXNlciBjYW5jZWxlZCBhcHAgc3RhcnR1cAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
QW5vdGhlckFwcExhdW5jaGluZyAgICAgICAgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAgICBW
UkluaXRFcnJvcl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDExOCwgCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE5LAorICAgICAgIFZSSW5pdEVycm9yX0lu
aXRfVG9vTWFueU9iamVjdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTIw
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwICAgICAg
ICAgICAgICA9IDEyMSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhD
b21wb3NpdG9yICAgICAgICAgICAgICA9IDEyMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X05v
dEF2YWlsYWJsZVRvVXRpbGl0eUFwcHMgICAgICAgICAgICAgID0gMTIzLAorICAgICAgIFZSSW5p
dEVycm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMjQsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjUsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkICAgICAgICAgICAgICAgPSAxMjYsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEyNywKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0dXBGYWls
ZWQgICAgICAgICAgICAgICAgICAgICA9IDEyOCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0xv
d1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgICAgICAgPSAxMjksIAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfSW52YWxpZEFwcGxpY2F0aW9uVHlwZSAgICAgICAgICAgICAgICAgICAgID0gMTMw
LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMgICAg
ICAgICAgICAgID0gMTMxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxl
ZEluU2V0dGluZ3MgICAgICAgICAgICAgID0gMTMyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRf
VlJEYXNoYm9hcmROb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTMzLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkICAgICAgICAgICAgICA9IDEz
NCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSSG9tZU5vdEZvdW5kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEzNSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSSG9t
ZVN0YXJ0dXBGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDEzNiwKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X1JlYm9vdGluZ0J1c3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTM3LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVVcGRhdGVCdXN5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTM4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfRmly
bXdhcmVSZWNvdmVyeUJ1c3kgICAgICAgICAgICAgICAgICAgICA9IDEzOSwKKworCisgICAgICAg
VlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAwLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDEsCisgICAgICAgVlJJbml0
RXJyb3JfRHJpdmVyX0htZFVua25vd24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMjAyLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjAzLAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9S
dW50aW1lT3V0T2ZEYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0LAorICAgICAg
IFZSSW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJh
dGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA2LAorICAgICAgIFZSSW5pdEVycm9y
X0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgICAgICAgICAgICAgICAgICAgICA9IDIwNywKKyAg
ICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kICAgICAgICAgICAgICAg
ICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRl
cmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8vIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNw
bGF5Tm90Rm91bmRBZnRlckZpeCA9IDIxMCwgLy8gbm90IG5lZWRlZDogaGVyZSBmb3IgaGlzdG9y
aWMgcmVhc29ucworICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9mQm91
bmRzICAgICAgICAgICAgICA9IDIxMSwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlz
cGxheU1pcnJvcmVkICAgICAgICAgICAgICAgICAgICAgPSAyMTIsCisKKyAgICAgICBWUkluaXRF
cnJvcl9JUENfU2VydmVySW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMw
MCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAzMDEsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0
YXRlSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAyLAorICAgICAgIFZSSW5pdEVy
cm9yX0lQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAzLAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzA0LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19GYWlsZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDUsCisgICAg
ICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JDb25uZWN0RmFpbGVkICAgICAgICAgICAgICAg
ICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlkQ29u
bmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVk
QWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAgVlJJbml0RXJyb3JfQ29tcG9z
aXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNDAwLAorICAg
ICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkICAgICAgID0g
NDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdhcmVSZXF1aXJlc1VwZGF0
ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9yX092ZXJsYXlJbml0
RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3NpdG9y
X1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKyAgICAgICBWUkluaXRFcnJvcl9D
b21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRlRGV2aWNlICAgICAgICAgICAgICA9IDQwNSwKKworICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVu
dGltZSAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3Bl
Y2lmaWNfSG1kRm91bmRfQ2FudE9wZW5EZXZpY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTEwMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFi
bGVUb1JlcXVlc3RDb25maWdTdGFydCAgICAgICA9IDExMDIsCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTEwMywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRG
b3VuZF9Db25maWdUb29CaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwNCwKKyAg
ICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29TbWFsbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA1LAorICAgICAgIFZSSW5pdEVycm9yX1Zl
bmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgICAgICAgICAgICAgICAgICAg
ICAgPSAxMTA2LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0Nh
bnRSZWFkRmlybXdhcmVWZXJzaW9uICAgICAgICA9IDExMDcsCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCAgICAgICA9
IDExMDgsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxl
VG9HZXRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5k
b3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCAgICAgICAgICAgICAg
PSAxMTEwLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJE
YXRhQWRkcmVzc1JhbmdlICAgICAgICAgICAgICA9IDExMTEsCisgICAgICAgVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDExMTIsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgICAgICAgICAgICAgID0gMTExMywKKworICAgICAg
IFZSSW5pdEVycm9yX1N0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfTsK
KworZW51bSBFVlJTY3JlZW5zaG90VHlwZQoreworICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTm9u
ZSA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vID0gMSwgLy8gbGVmdCBleWUgb25s
eQorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBWUlNjcmVlbnNo
b3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1h
ID0gNCwKKyAgICAgICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNQorfTsKKwor
ZW51bSBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMKK3sKKyAgICAgICBWUlNjcmVlbnNo
b3RQcm9wZXJ0eUZpbGVuYW1lc19QcmV2aWV3ID0gMCwKKyAgICAgICBWUlNjcmVlbnNob3RQcm9w
ZXJ0eUZpbGVuYW1lc19WUiA9IDEsCit9OworCitlbnVtIEVWUlRyYWNrZWRDYW1lcmFFcnJvcgor
eworICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAg
ID0gMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgICAgICAg
ICAgICA9IDEwMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlICAg
ICAgICAgICAgICA9IDEwMSwgICAgICAgCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52
YWxpZEZyYW1lSGVhZGVyVmVyc2lvbiAgPSAxMDIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJy
b3JfT3V0T2ZIYW5kbGVzICAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJUcmFja2VkQ2Ft
ZXJhRXJyb3JfSVBDRmFpbHVyZSAgICAgICAgICAgICAgICAgPSAxMDQsCisgICAgICAgVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVkRm9yVGhpc0RldmljZSAgPSAxMDUsCisgICAgICAg
VlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSAgICAgICAgPSAxMDYsCisg
ICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWlsdXJlICAgICAgPSAx
MDcsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfU3RyZWFtU2V0dXBGYWlsdXJlICAgICAg
ICAgPSAxMDgsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlk
ICAgICAgICAgPSAxMDksCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNoYXJl
ZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3JfRmFpbGVk
VG9HZXRHTFRleHR1cmVJZCAgICAgPSAxMTEsCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRXJyb3Jf
U2hhcmVkVGV4dHVyZUZhaWx1cmUgICAgICAgPSAxMTIsCisgICAgICAgVlJUcmFja2VkQ2FtZXJh
RXJyb3JfTm9GcmFtZUF2YWlsYWJsZSAgICAgICAgICAgPSAxMTMsCisgICAgICAgVlJUcmFja2Vk
Q2FtZXJhRXJyb3JfSW52YWxpZEFyZ3VtZW50ICAgICAgICAgICAgPSAxMTQsCisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSAgICAgPSAxMTUsCit9Owor
CitlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBWUlRyYWNrZWRDYW1l
cmFGcmFtZVR5cGVfRGlzdG9ydGVkID0gMCwgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRoZSBjYW1lcmEgdmlkZW8gZnJhbWUgc2l6ZSBpbiBwaXhlbHMsIHN0aWxsIGRpc3RvcnRlZC4K
KyAgICAgICBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQsICAgICAgICAgICAg
ICAgICAgICAgLy8gSW4gcGl4ZWxzLCBhbiB1bmRpc3RvcnRlZCBpbnNjcmliZWQgcmVjdGFuZ2xl
IHJlZ2lvbiB3aXRob3V0IGludmFsaWQgcmVnaW9ucy4gVGhpcyBzaXplIGlzIHN1YmplY3QgdG8g
Y2hhbmdlcyBzaG9ydGx5LgorICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9NYXhpbXVt
VW5kaXN0b3J0ZWQsICAgICAgIC8vIEluIHBpeGVscywgbWF4aW11bSB1bmRpc3RvcnRlZCB3aXRo
IGludmFsaWQgcmVnaW9ucy4gTm9uIHplcm8gYWxwaGEgY29tcG9uZW50IGlkZW50aWZpZXMgdmFs
aWQgcmVnaW9ucy4KKyAgICAgICBNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTCit9OworCit0eXBlZGVm
IHVpbnQ2NF90IFRyYWNrZWRDYW1lcmFIYW5kbGVfdDsKKyNkZWZpbmUgSU5WQUxJRF9UUkFDS0VE
X0NBTUVSQV9IQU5ETEUgICAgICAgKCh2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90KTApCisKK3N0
cnVjdCBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGU7CisKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7Cisg
ICAgICAgdWludDMyX3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsK
KworICAgICAgIHVpbnQzMl90IG5GcmFtZVNlcXVlbmNlOworCisgICAgICAgVHJhY2tlZERldmlj
ZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfTsKKworLy8gU2NyZWVuc2hvdCB0
eXBlcwordHlwZWRlZiB1aW50MzJfdCBTY3JlZW5zaG90SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgPSAwOworCisjcHJhZ21hIHBh
Y2soIHBvcCApCisKKy8vIGZpZ3VyZSBvdXQgaG93IHRvIGltcG9ydCBmcm9tIHRoZSBWUiBBUEkg
ZGxsCisjaWYgZGVmaW5lZChfV0lOMzIpCisKKyNpZmRlZiBWUl9BUElfRVhQT1JUCisjZGVmaW5l
IFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGV4cG9ydCApCisjZWxzZQor
I2RlZmluZSBWUl9JTlRFUkZBQ0UgZXh0ZXJuICJDIiBfX2RlY2xzcGVjKCBkbGxpbXBvcnQgKQor
I2VuZGlmCisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoQ09NUElMRVJfR0ND
KSB8fCBkZWZpbmVkKF9fQVBQTEVfXykKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUg
VlJfSU5URVJGQUNFIGV4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVs
dCIpKSkKKyNlbHNlCisjZGVmaW5lIFZSX0lOVEVSRkFDRSBleHRlcm4gIkMiIAorI2VuZGlmCisK
KyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtLiIKKyNlbmRpZgorCisKKyNpZiBk
ZWZpbmVkKCBfV0lOMzIgKQorI2RlZmluZSBWUl9DQUxMVFlQRSBfX2NkZWNsCisjZWxzZQorI2Rl
ZmluZSBWUl9DQUxMVFlQRSAKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB2cgorCisjZW5kaWYg
Ly8gX0lOQ0xVREVfVlJUWVBFU19ICisKKworLy8gdnJhbm5vdGF0aW9uLmgKKyNpZmRlZiBBUElf
R0VOCisjIGRlZmluZSBWUl9DTEFOR19BVFRSKEFUVFIpIF9fYXR0cmlidXRlX18oKGFubm90YXRl
KCBBVFRSICkpKQorI2Vsc2UKKyMgZGVmaW5lIFZSX0NMQU5HX0FUVFIoQVRUUikKKyNlbmRpZgor
CisjZGVmaW5lIFZSX01FVEhPRF9ERVNDKERFU0MpIFZSX0NMQU5HX0FUVFIoICJkZXNjOiIgI0RF
U0MgIjsiICkKKyNkZWZpbmUgVlJfSUdOT1JFQVRUUigpIFZSX0NMQU5HX0FUVFIoICJpZ25vcmUi
ICkKKyNkZWZpbmUgVlJfT1VUX1NUUlVDVCgpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RydWN0OiA7
IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkcoKSBWUl9DTEFOR19BVFRSKCAib3V0X3N0cmluZzog
OyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ0FMTChDT1VOVEVSLEZVTkNUSU9OLFBBUkFNUykg
VlJfQ0xBTkdfQVRUUiggIm91dF9hcnJheV9jYWxsOiIgI0NPVU5URVIgIiwiICNGVU5DVElPTiAi
LCIgI1BBUkFNUyAiOyIgKQorI2RlZmluZSBWUl9PVVRfQVJSQVlfQ09VTlQoQ09VTlRFUikgVlJf
Q0xBTkdfQVRUUiggIm91dF9hcnJheV9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZS
X0FSUkFZX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJhcnJheV9jb3VudDoiICNDT1VO
VEVSICI7IiApCisjZGVmaW5lIFZSX0FSUkFZX0NPVU5UX0QoQ09VTlRFUiwgREVTQykgVlJfQ0xB
TkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjtkZXNjOiIgI0RFU0MgKQorI2RlZmlu
ZSBWUl9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImJ1ZmZlcl9jb3VudDoi
ICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9CVUZGRVJfQ09VTlQoQ09VTlRFUikgVlJf
Q0xBTkdfQVRUUiggIm91dF9idWZmZXJfY291bnQ6IiAjQ09VTlRFUiAiOyIgKQorI2RlZmluZSBW
Ul9PVVRfU1RSSU5HX0NPVU5UKENPVU5URVIpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nX2Nv
dW50OiIgI0NPVU5URVIgIjsiICkKKworLy8gaXZyc3lzdGVtLmgKK25hbWVzcGFjZSB2cgorewor
CitjbGFzcyBJVlJTeXN0ZW0KK3sKK3B1YmxpYzoKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gRGlzcGxheSBNZXRob2RzCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiog
U3VnZ2VzdGVkIHNpemUgZm9yIHRoZSBpbnRlcm1lZGlhdGUgcmVuZGVyIHRhcmdldCB0aGF0IHRo
ZSBkaXN0b3J0aW9uIHB1bGxzIGZyb20uICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldFJlY29t
bWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhl
aWdodCApID0gMDsKKworICAgICAgIC8qKiBUaGUgcHJvamVjdGlvbiBtYXRyaXggZm9yIHRoZSBz
cGVjaWZpZWQgZXllICovCisgICAgICAgdmlydHVhbCBIbWRNYXRyaXg0NF90IEdldFByb2plY3Rp
b25NYXRyaXgoIEVWUkV5ZSBlRXllLCBmbG9hdCBmTmVhclosIGZsb2F0IGZGYXJaICkgPSAwOwor
CisgICAgICAgLyoqIFRoZSBjb21wb25lbnRzIG5lY2Vzc2FyeSB0byBidWlsZCB5b3VyIG93biBw
cm9qZWN0aW9uIG1hdHJpeCBpbiBjYXNlIHlvdXIKKyAgICAgICAqIGFwcGxpY2F0aW9uIGlzIGRv
aW5nIHNvbWV0aGluZyBmYW5jeSBsaWtlIGluZmluaXRlIFogKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgR2V0UHJvamVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpw
ZlJpZ2h0LCBmbG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKworICAgICAgIC8q
KiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIGRpc3RvcnRpb24gZnVuY3Rpb24gZm9yIHRoZSBzcGVj
aWZpZWQgZXllIGFuZCBpbnB1dCBVVnMuIFVWcyBnbyBmcm9tIDAsMCBpbiAKKyAgICAgICAqIHRo
ZSB1cHBlciBsZWZ0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQgYW5kIDEsMSBpbiB0aGUgbG93ZXIg
cmlnaHQgb2YgdGhhdCBleWUncyB2aWV3cG9ydC4KKyAgICAgICAqIFJldHVybnMgdHJ1ZSBmb3Ig
c3VjY2Vzcy4gT3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLCBhbmQgZGlzdG9ydGlvbiBjb29yZGlu
YXRlcyBhcmUgbm90IHN1aXRhYmxlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBDb21wdXRlRGlz
dG9ydGlvbiggRVZSRXllIGVFeWUsIGZsb2F0IGZVLCBmbG9hdCBmViwgRGlzdG9ydGlvbkNvb3Jk
aW5hdGVzX3QgKnBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMgKSA9IDA7CisKKyAgICAgICAvKiogUmV0
dXJucyB0aGUgdHJhbnNmb3JtIGZyb20gZXllIHNwYWNlIHRvIHRoZSBoZWFkIHNwYWNlLiBFeWUg
c3BhY2UgaXMgdGhlIHBlci1leWUgZmxhdm9yIG9mIGhlYWQKKyAgICAgICAqIHNwYWNlIHRoYXQg
cHJvdmlkZXMgc3RlcmVvIGRpc3Bhcml0eS4gSW5zdGVhZCBvZiBNb2RlbCAqIFZpZXcgKiBQcm9q
ZWN0aW9uIHRoZSBzZXF1ZW5jZSBpcyBNb2RlbCAqIFZpZXcgKiBFeWVeLTEgKiBQcm9qZWN0aW9u
LiAKKyAgICAgICAqIE5vcm1hbGx5IFZpZXcgYW5kIEV5ZV4tMSB3aWxsIGJlIG11bHRpcGxpZWQg
dG9nZXRoZXIgYW5kIHRyZWF0ZWQgYXMgVmlldyBpbiB5b3VyIGFwcGxpY2F0aW9uLiAKKyAgICAg
ICAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRFeWVUb0hlYWRUcmFuc2Zvcm0o
IEVWUkV5ZSBlRXllICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBl
bGFwc2VkIHNlY29uZHMgc2luY2UgdGhlIGxhc3QgcmVjb3JkZWQgdnN5bmMgZXZlbnQuIFRoaXMg
CisgICAgICAgKiAgICAgICB3aWxsIGNvbWUgZnJvbSBhIHZzeW5jIHRpbWVyIGV2ZW50IGluIHRo
ZSB0aW1lciBpZiBwb3NzaWJsZSBvciBmcm9tIHRoZSBhcHBsaWNhdGlvbi1yZXBvcnRlZAorICAg
ICAgICogICB0aW1lIGlmIHRoYXQgaXMgbm90IGF2YWlsYWJsZS4gSWYgbm8gdnN5bmMgdGltZXMg
YXJlIGF2YWlsYWJsZSB0aGUgZnVuY3Rpb24gd2lsbCAKKyAgICAgICAqICAgcmV0dXJuIHplcm8g
Zm9yIHZzeW5jIHRpbWUgYW5kIGZyYW1lIGNvdW50ZXIgYW5kIHJldHVybiBmYWxzZSBmcm9tIHRo
ZSBtZXRob2QuICovCisgICAgICAgdmlydHVhbCBib29sIEdldFRpbWVTaW5jZUxhc3RWc3luYygg
ZmxvYXQgKnBmU2Vjb25kc1NpbmNlTGFzdFZzeW5jLCB1aW50NjRfdCAqcHVsRnJhbWVDb3VudGVy
ICkgPSAwOworCisgICAgICAgLyoqIFtEM0Q5IE9ubHldCisgICAgICAgKiBSZXR1cm5zIHRoZSBh
ZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBDcmVhdGVEZXZpY2Ug
dG8gc2V0IHVwIEQzRDkgaW4gc3VjaAorICAgICAgICogYSB3YXkgdGhhdCBpdCBjYW4gZ28gZnVs
bCBzY3JlZW4gZXhjbHVzaXZlIG9uIHRoZSBITUQuIFJldHVybnMgLTEgaWYgdGhlcmUgd2FzIGFu
IGVycm9yLgorICAgICAgICovCisgICAgICAgdmlydHVhbCBpbnQzMl90IEdldEQzRDlBZGFwdGVy
SW5kZXgoKSA9IDA7CisKKyAgICAgICAvKiogW0QzRDEwLzExIE9ubHldCisgICAgICAgKiBSZXR1
cm5zIHRoZSBhZGFwdGVyIGluZGV4IHRoYXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBFbnVt
QWRhcHRlcnMgdG8gY3JlYXRlIHRoZSBkZXZpY2UgCisgICAgICAgKiBhbmQgc3dhcCBjaGFpbiBp
biBEWDEwIGFuZCBEWDExLiBJZiBhbiBlcnJvciBvY2N1cnMgdGhlIGluZGV4IHdpbGwgYmUgc2V0
IHRvIC0xLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldERYR0lPdXRwdXRJbmZv
KCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCApID0gMDsKKyAgICAgICAKKyAgICAgICAvKioKKyAg
ICAgICAgKiBSZXR1cm5zIHBsYXRmb3JtLSBhbmQgdGV4dHVyZS10eXBlIHNwZWNpZmljIGFkYXB0
ZXIgaWRlbnRpZmljYXRpb24gc28gdGhhdCBhcHBsaWNhdGlvbnMgYW5kIHRoZQorICAgICAgICAq
IGNvbXBvc2l0b3IgYXJlIGNyZWF0aW5nIHRleHR1cmVzIGFuZCBzd2FwIGNoYWlucyBvbiB0aGUg
c2FtZSBHUFUuIElmIGFuIGVycm9yIG9jY3VycyB0aGUgZGV2aWNlCisgICAgICAgICogd2lsbCBi
ZSBzZXQgdG8gMC4KKyAgICAgICAgKiBwSW5zdGFuY2UgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVy
IHRoYXQgaXMgcmVxdWlyZWQgb25seSB3aGVuIHRleHR1cmVUeXBlIGlzIFRleHR1cmVUeXBlX1Z1
bGthbi4KKyAgICAgICAgKiBbRDNEMTAvMTEvMTIgT25seSAoRDNEOSBOb3QgU3VwcG9ydGVkKV0K
KyAgICAgICAgKiAgUmV0dXJucyB0aGUgYWRhcHRlciBMVUlEIHRoYXQgaWRlbnRpZmllcyB0aGUg
R1BVIGF0dGFjaGVkIHRvIHRoZSBITUQuIFRoZSB1c2VyIHNob3VsZAorICAgICAgICAqICBlbnVt
ZXJhdGUgYWxsIGFkYXB0ZXJzIHVzaW5nIElEWEdJRmFjdG9yeTo6RW51bUFkYXB0ZXJzIGFuZCBJ
RFhHSUFkYXB0ZXI6OkdldERlc2MgdG8gZmluZAorICAgICAgICAqICB0aGUgYWRhcHRlciB3aXRo
IHRoZSBtYXRjaGluZyBMVUlELCBvciB1c2UgSURYR0lGYWN0b3J5NDo6RW51bUFkYXB0ZXJCeUx1
aWQuCisgICAgICAgICogIFRoZSBkaXNjb3ZlcmVkIElEWEdJQWRhcHRlciBzaG91bGQgYmUgdXNl
ZCB0byBjcmVhdGUgdGhlIGRldmljZSBhbmQgc3dhcCBjaGFpbi4KKyAgICAgICAgKiBbVnVsa2Fu
IE9ubHldCisgICAgICAgICogIFJldHVybnMgdGhlIFZrUGh5c2ljYWxEZXZpY2UgdGhhdCBzaG91
bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAgICogIHBJbnN0YW5jZSBtdXN0
IGJlIHRoZSBpbnN0YW5jZSB0aGUgYXBwbGljYXRpb24gd2lsbCB1c2UgdG8gcXVlcnkgZm9yIHRo
ZSBWa1BoeXNpY2FsRGV2aWNlLiAgVGhlIGFwcGxpY2F0aW9uCisgICAgICAgICogIG11c3QgY3Jl
YXRlIHRoZSBWa0luc3RhbmNlIHdpdGggZXh0ZW5zaW9ucyByZXR1cm5lZCBieSBJVlJDb21wb3Np
dG9yOjpHZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBlbmFibGVkLgorICAgICAg
ICAqIFttYWNPUyBPbmx5XQorICAgICAgICAqICBSZXR1cm5zIGFuIGlkPE1UTERldmljZT4gdGhh
dCBzaG91bGQgYmUgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCisgICAgICAgICovCisgICAgICAg
dmlydHVhbCB2b2lkIEdldE91dHB1dERldmljZSggdWludDY0X3QgKnBuRGV2aWNlLCBFVGV4dHVy
ZVR5cGUgdGV4dHVyZVR5cGUsIFZrSW5zdGFuY2VfVCAqcEluc3RhbmNlID0gbnVsbHB0ciApID0g
MDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIERpc3BsYXkgTW9kZSBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVXNlIHRvIGRldGVybWluZSBpZiB0aGUg
aGVhZHNldCBkaXNwbGF5IGlzIHBhcnQgb2YgdGhlIGRlc2t0b3AgKGkuZS4gZXh0ZW5kZWQpIG9y
IGhpZGRlbiAoaS5lLiBkaXJlY3QgbW9kZSkuICovCisgICAgICAgdmlydHVhbCBib29sIElzRGlz
cGxheU9uRGVza3RvcCgpID0gMDsKKworICAgICAgIC8qKiBTZXQgdGhlIGRpc3BsYXkgdmlzaWJp
bGl0eSAodHJ1ZSA9IGV4dGVuZGVkLCBmYWxzZSA9IGRpcmVjdCBtb2RlKS4gIFJldHVybiB2YWx1
ZSBvZiB0cnVlIGluZGljYXRlcyB0aGF0IHRoZSBjaGFuZ2Ugd2FzIHN1Y2Nlc3NmdWwuICovCisg
ICAgICAgdmlydHVhbCBib29sIFNldERpc3BsYXlWaXNpYmlsaXR5KCBib29sIGJJc1Zpc2libGVP
bkRlc2t0b3AgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAvLyBUcmFja2luZyBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogVGhlIHBvc2UgdGhhdCB0
aGUgdHJhY2tlciB0aGlua3MgdGhhdCB0aGUgSE1EIHdpbGwgYmUgaW4gYXQgdGhlIHNwZWNpZmll
ZCBudW1iZXIgb2Ygc2Vjb25kcyBpbnRvIHRoZSAKKyAgICAgICAqIGZ1dHVyZS4gUGFzcyAwIHRv
IGdldCB0aGUgc3RhdGUgYXQgdGhlIGluc3RhbnQgdGhlIG1ldGhvZCBpcyBjYWxsZWQuIE1vc3Qg
b2YgdGhlIHRpbWUgdGhlIGFwcGxpY2F0aW9uIHNob3VsZAorICAgICAgICogY2FsY3VsYXRlIHRo
ZSB0aW1lIHVudGlsIHRoZSBwaG90b25zIHdpbGwgYmUgZW1pdHRlZCBmcm9tIHRoZSBkaXNwbGF5
IGFuZCBwYXNzIHRoYXQgdGltZSBpbnRvIHRoZSBtZXRob2QuCisgICAgICAgKgorICAgICAgICog
VGhpcyBpcyByb3VnaGx5IGFuYWxvZ291cyB0byB0aGUgaW52ZXJzZSBvZiB0aGUgdmlldyBtYXRy
aXggaW4gbW9zdCBhcHBsaWNhdGlvbnMsIHRob3VnaCAKKyAgICAgICAqIG1hbnkgZ2FtZXMgd2ls
bCBuZWVkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCByb3RhdGlvbiBvciB0cmFuc2xhdGlvbiBvbiB0
b3Agb2YgdGhlIHJvdGF0aW9uCisgICAgICAgKiBhbmQgdHJhbnNsYXRpb24gcHJvdmlkZWQgYnkg
dGhlIGhlYWQgcG9zZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZGV2aWNlcyB3aGVyZSBiUG9z
ZUlzVmFsaWQgaXMgdHJ1ZSB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSB0aGUgcG9zZSB0byBwb3Np
dGlvbiB0aGUgZGV2aWNlCisgICAgICAgKiBpbiBxdWVzdGlvbi4gVGhlIHByb3ZpZGVkIGFycmF5
IGNhbiBiZSBhbnkgc2l6ZSB1cCB0byBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50LiAKKyAgICAg
ICAqCisgICAgICAgKiBTZWF0ZWQgZXhwZXJpZW5jZXMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2Qg
d2l0aCBUcmFja2luZ1VuaXZlcnNlU2VhdGVkIGFuZCByZWNlaXZlIHBvc2VzIHJlbGF0aXZlCisg
ICAgICAgKiB0byB0aGUgc2VhdGVkIHplcm8gcG9zZS4gU3RhbmRpbmcgZXhwZXJpZW5jZXMgc2hv
dWxkIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBUcmFja2luZ1VuaXZlcnNlU3RhbmRpbmcgCisgICAg
ICAgKiBhbmQgcmVjZWl2ZSBwb3NlcyByZWxhdGl2ZSB0byB0aGUgQ2hhcGVyb25lIFBsYXkgQXJl
YS4gVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCBzaG91bGQgCisgICAgICAgKiBw
cm9iYWJseSBub3QgYmUgdXNlZCB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uIGlzIHRoZSBDaGFwZXJv
bmUgY2FsaWJyYXRpb24gdG9vbCBpdHNlbGYsIGJ1dCB3aWxsIHByb3ZpZGUKKyAgICAgICAqIHBv
c2VzIHJlbGF0aXZlIHRvIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb29yZGluYXRlIHN5c3RlbSBp
biB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmlydHVhbCB2b2lkIEdldERldmljZVRv
QWJzb2x1dGVUcmFja2luZ1Bvc2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sIGZs
b2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgVlJfQVJSQVlfQ09VTlQodW5U
cmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFja2Vk
RGV2aWNlUG9zZUFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VQb3NlQXJyYXlDb3VudCAp
ID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSB6ZXJvIHBvc2UgZm9yIHRoZSBzZWF0ZWQgdHJh
Y2tlciBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgeWF3IG9m
IHRoZSBITUQuIEFmdGVyIAorICAgICAgICogUmVzZXRTZWF0ZWRaZXJvUG9zZSBhbGwgR2V0RGV2
aWNlVG9BYnNvbHV0ZVRyYWNraW5nUG9zZSBjYWxscyB0aGF0IHBhc3MgVHJhY2tpbmdVbml2ZXJz
ZVNlYXRlZCBhcyB0aGUgb3JpZ2luIAorICAgICAgICogd2lsbCBiZSByZWxhdGl2ZSB0byB0aGlz
IG5ldyB6ZXJvIHBvc2UuIFRoZSBuZXcgemVybyBjb29yZGluYXRlIHN5c3RlbSB3aWxsIG5vdCBj
aGFuZ2UgdGhlIGZhY3QgdGhhdCB0aGUgWSBheGlzIAorICAgICAgICogaXMgdXAgaW4gdGhlIHJl
YWwgd29ybGQsIHNvIHRoZSBuZXh0IHBvc2UgcmV0dXJuZWQgZnJvbSBHZXREZXZpY2VUb0Fic29s
dXRlVHJhY2tpbmdQb3NlIGFmdGVyIGEgY2FsbCB0byAKKyAgICAgICAqIFJlc2V0U2VhdGVkWmVy
b1Bvc2UgbWF5IG5vdCBiZSBleGFjdGx5IGFuIGlkZW50aXR5IG1hdHJpeC4KKyAgICAgICAqCisg
ICAgICAgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0aGUgdXNlcidzIHByZXZpb3Vz
bHkgc2F2ZWQgc2VhdGVkIHplcm8gcG9zZSBhbmQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFzIHRo
ZSByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gCisgICAgICAgKiBVc2VycyBhcmUgYWxzbyBhYmxl
IHRvIHNldCB0aGVpciBzZWF0ZWQgemVybyBwb3NlIHZpYSB0aGUgT3BlblZSIERhc2hib2FyZC4K
KyAgICAgICAqKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVzZXRTZWF0ZWRaZXJvUG9zZSgpID0g
MDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm0gZnJvbSB0aGUgc2VhdGVkIHpl
cm8gcG9zZSB0byB0aGUgc3RhbmRpbmcgYWJzb2x1dGUgdHJhY2tpbmcgc3lzdGVtLiBUaGlzIGFs
bG93cyAKKyAgICAgICAqIGFwcGxpY2F0aW9ucyB0byByZXByZXNlbnQgdGhlIHNlYXRlZCBvcmln
aW4gdG8gdXNlZCBvciB0cmFuc2Zvcm0gb2JqZWN0IHBvc2l0aW9ucyBmcm9tIG9uZSBjb29yZGlu
YXRlCisgICAgICAgKiBzeXN0ZW0gdG8gdGhlIG90aGVyLiAKKyAgICAgICAqCisgICAgICAgKiBU
aGUgc2VhdGVkIG9yaWdpbiBtYXkgb3IgbWF5IG5vdCBiZSBpbnNpZGUgdGhlIFBsYXkgQXJlYSBv
ciBDb2xsaXNpb24gQm91bmRzIHJldHVybmVkIGJ5IElWUkNoYXBlcm9uZS4gSXRzIHBvc2l0aW9u
IAorICAgICAgICogZGVwZW5kcyBvbiB3aGF0IHRoZSB1c2VyIGhhcyBzZXQgZnJvbSB0aGUgRGFz
aGJvYXJkIHNldHRpbmdzIGFuZCBwcmV2aW91cyBjYWxscyB0byBSZXNldFNlYXRlZFplcm9Qb3Nl
LiAqLworICAgICAgIHZpcnR1YWwgSG1kTWF0cml4MzRfdCBHZXRTZWF0ZWRaZXJvUG9zZVRvU3Rh
bmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRo
ZSB0cmFuc2Zvcm0gZnJvbSB0aGUgdHJhY2tpbmcgb3JpZ2luIHRvIHRoZSBzdGFuZGluZyBhYnNv
bHV0ZSB0cmFja2luZyBzeXN0ZW0uIFRoaXMgYWxsb3dzCisgICAgICAgKiBhcHBsaWNhdGlvbnMg
dG8gY29udmVydCBmcm9tIHJhdyB0cmFja2luZyBzcGFjZSB0byB0aGUgY2FsaWJyYXRlZCBzdGFu
ZGluZyBjb29yZGluYXRlIHN5c3RlbS4gKi8KKyAgICAgICB2aXJ0dWFsIEhtZE1hdHJpeDM0X3Qg
R2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKSA9IDA7CisKKyAg
ICAgICAvKiogR2V0IGEgc29ydGVkIGFycmF5IG9mIGRldmljZSBpbmRpY2VzIG9mIGEgZ2l2ZW4g
Y2xhc3Mgb2YgdHJhY2tlZCBkZXZpY2VzIChlLmcuIGNvbnRyb2xsZXJzKS4gIERldmljZXMgYXJl
IHNvcnRlZCByaWdodCB0byBsZWZ0CisgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgc3BlY2lmaWVk
IHRyYWNrZWQgZGV2aWNlIChkZWZhdWx0OiBobWQgLS0gcGFzcyBpbiAtMSBmb3IgYWJzb2x1dGUg
dHJhY2tpbmcgc3BhY2UpLiAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRldmljZXMKKyAgICAgICAq
IGluIHRoZSBsaXN0LCBvciB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgbmVlZGVkIGlmIG5vdCBsYXJn
ZSBlbm91Z2guICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRTb3J0ZWRUcmFja2VkRGV2
aWNlSW5kaWNlc09mQ2xhc3MoIEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFz
cywgVlJfQVJSQVlfQ09VTlQodW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50KSB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJfdCB1
blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291bnQsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1
blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXggPSBrX3VuVHJhY2tlZERldmljZUluZGV4X0ht
ZCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsZXZlbCBvZiBhY3Rpdml0eSBvbiB0
aGUgZGV2aWNlLiAqLworICAgICAgIHZpcnR1YWwgRURldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJh
Y2tlZERldmljZUFjdGl2aXR5TGV2ZWwoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmlj
ZUlkICkgPSAwOworCisgICAgICAgLyoqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gYXBwbHkgdGhl
IHNwZWNpZmllZCB0cmFuc2Zvcm0gdG8gdGhlIHNwZWNpZmllZCBwb3NlLgorICAgICAgICogICBU
aGlzIHByb3Blcmx5IHRyYW5zZm9ybXMgYWxsIHBvc2UgY29tcG9uZW50cywgaW5jbHVkaW5nIHZl
bG9jaXR5IGFuZCBhbmd1bGFyIHZlbG9jaXR5CisgICAgICAgKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgQXBwbHlUcmFuc2Zvcm0oIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBPdXRwdXRQb3NlLCBjb25z
dCBUcmFja2VkRGV2aWNlUG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UsIGNvbnN0IEhtZE1hdHJp
eDM0X3QgKnBUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgZGV2aWNl
IGluZGV4IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvbGUsIGZvciBleGFtcGxlIHRoZSBs
ZWZ0IGhhbmQgb3IgdGhlIHJpZ2h0IGhhbmQuICovCisgICAgICAgdmlydHVhbCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUoIHZy
OjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSApID0gMDsKKworICAgICAgIC8q
KiBSZXR1cm5zIHRoZSBjb250cm9sbGVyIHR5cGUgYXNzb2NpYXRlZCB3aXRoIGEgZGV2aWNlIGlu
ZGV4LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVUcmFja2VkQ29udHJvbGxlclJvbGUgR2V0Q29u
dHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXgoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gUHJvcGVydHkgbWV0aG9kcworICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJldHVybnMg
dGhlIGRldmljZSBjbGFzcyBvZiBhIHRyYWNrZWQgZGV2aWNlLiBJZiB0aGVyZSBoYXMgbm90IGJl
ZW4gYSBkZXZpY2UgY29ubmVjdGVkIGluIHRoaXMgc2xvdAorICAgICAgICogc2luY2UgdGhlIGFw
cGxpY2F0aW9uIHN0YXJ0ZWQgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBUcmFja2VkRGV2aWNl
X0ludmFsaWQuIEZvciBwcmV2aW91cyBkZXRlY3RlZAorICAgICAgICogZGV2aWNlcyB0aGUgZnVu
Y3Rpb24gd2lsbCByZXR1cm4gdGhlIHByZXZpb3VzbHkgb2JzZXJ2ZWQgZGV2aWNlIGNsYXNzLiAK
KyAgICAgICAqCisgICAgICAgKiBUbyBkZXRlcm1pbmUgd2hpY2ggZGV2aWNlcyBleGlzdCBvbiB0
aGUgc3lzdGVtLCBqdXN0IGxvb3AgZnJvbSAwIHRvIGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQg
YW5kIGNoZWNrCisgICAgICAgKiB0aGUgZGV2aWNlIGNsYXNzLiBFdmVyeSBkZXZpY2Ugd2l0aCBz
b21ldGhpbmcgb3RoZXIgdGhhbiBUcmFja2VkRGV2aWNlX0ludmFsaWQgaXMgYXNzb2NpYXRlZCB3
aXRoIGFuIAorICAgICAgICogYWN0dWFsIHRyYWNrZWQgZGV2aWNlLiAqLworICAgICAgIHZpcnR1
YWwgRVRyYWNrZWREZXZpY2VDbGFzcyBHZXRUcmFja2VkRGV2aWNlQ2xhc3MoIHZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiB0aGVyZSBpcyBhIGRldmljZSBjb25uZWN0ZWQgaW4gdGhpcyBzbG90LiAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQoIHZyOjpUcmFja2VkRGV2
aWNlSW5kZXhfdCB1bkRldmljZUluZGV4ICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgYSBi
b29sIHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJv
cGVydHkgaXMgbm90IGEgYm9vbCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gZmFsc2Uu
ICovCisgICAgICAgdmlydHVhbCBib29sIEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3Bl
cnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAg
ICAgICAvKiogUmV0dXJucyBhIGZsb2F0IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNlIGluZGV4IGlz
IG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgZmxvYXQgdHlwZSB0aGlzIGZ1bmN0
aW9uIHdpbGwgcmV0dXJuIDAuICovCisgICAgICAgdmlydHVhbCBmbG9hdCBHZXRGbG9hdFRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJy
b3IgPSAwTCApID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIGludCBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIGlu
dCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAgICB2aXJ0dWFsIGlu
dDMyX3QgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2Vk
UHJvcGVydHlFcnJvciAqcEVycm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBh
IHVpbnQ2NCBwcm9wZXJ0eS4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhl
IHByb3BlcnR5IGlzIG5vdCBhIHVpbnQ2NCB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4g
MC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSggdnI6OlRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2
aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0g
MDsKKworICAgICAgIC8qKiBSZXR1cm5zIGEgbWF0cml4IHByb3BlcnR5LiBJZiB0aGUgZGV2aWNl
IGluZGV4IGlzIG5vdCB2YWxpZCBvciB0aGUgcHJvcGVydHkgaXMgbm90IGEgbWF0cml4IHR5cGUs
IHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaWRlbnRpdHkuICovCisgICAgICAgdmlydHVhbCBI
bWRNYXRyaXgzNF90IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KCB2cjo6VHJhY2tl
ZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9w
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZh
bGlkIG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdp
bGwgCisgICAgICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBv
ZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1
ZGluZyB0aGUgdHJhaWxpbmcKKyAgICAgICAqIG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0
IGluIGJ1ZmZlcnMgb2Yga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLwor
ICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVm
ZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApID0gMDsKKworICAg
ICAgIC8qKiByZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgc3BlY2lm
aWVkIHByb3BlcnR5IGVycm9yLiBUaGUgc3RyaW5nIHdpbGwgYmUgdGhlIG5hbWUgCisgICAgICAg
KiBvZiB0aGUgZXJyb3IgZW51bSB2YWx1ZSBmb3IgYWxsIHZhbGlkIGVycm9yIGNvZGVzICovCisg
ICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBlcnJvciApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEV2ZW50IG1ldGhvZHMKKyAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBldmVudCB3aXRoIHRoZSBuZXh0IGV2ZW50IG9uIHRoZSBx
dWV1ZSBpZiB0aGVyZSBpcyBvbmUuIElmIHRoZXJlIGFyZSBubyBldmVudHMKKyAgICAgICAqIHRo
aXMgbWV0aG9kIHJldHVybnMgZmFsc2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBp
biBieXRlcyBvZiB0aGUgVlJFdmVudF90IHN0cnVjdCAqLworICAgICAgIHZpcnR1YWwgYm9vbCBQ
b2xsTmV4dEV2ZW50KCBWUkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQgKSA9
IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGFuZCBmaWxscyB0aGUgZXZlbnQgd2l0aCB0
aGUgbmV4dCBldmVudCBvbiB0aGUgcXVldWUgaWYgdGhlcmUgaXMgb25lLiBJZiB0aGVyZSBhcmUg
bm8gZXZlbnRzCisgICAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiBGaWxscyBpbiB0
aGUgcG9zZSBvZiB0aGUgYXNzb2NpYXRlZCB0cmFja2VkIGRldmljZSBpbiB0aGUgcHJvdmlkZWQg
cG9zZSBzdHJ1Y3QuIAorICAgICAgICogVGhpcyBwb3NlIHdpbGwgYWx3YXlzIGJlIG9sZGVyIHRo
YW4gdGhlIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIHJl
bmRlciB0aGUgZGV2aWNlLiAKKyAgICAgICB1bmNiVlJFdmVudCBzaG91bGQgYmUgdGhlIHNpemUg
aW4gYnl0ZXMgb2YgdGhlIFZSRXZlbnRfdCBzdHJ1Y3QgKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
UG9sbE5leHRFdmVudFdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBW
UkV2ZW50X3QgKnBFdmVudCwgdWludDMyX3QgdW5jYlZSRXZlbnQsIHZyOjpUcmFja2VkRGV2aWNl
UG9zZV90ICpwVHJhY2tlZERldmljZVBvc2UgKSA9IDA7CisKKyAgICAgICAvKiogcmV0dXJucyB0
aGUgbmFtZSBvZiBhbiBFVlJFdmVudCBlbnVtIHZhbHVlICovCisgICAgICAgdmlydHVhbCBjb25z
dCBjaGFyICpHZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oIEVWUkV2ZW50VHlwZSBlVHlwZSApID0g
MDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgIC8vIFJlbmRlcmluZyBoZWxwZXIgbWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgLyoqIFJldHVybnMgdGhlIGhpZGRlbiBh
cmVhIG1lc2ggZm9yIHRoZSBjdXJyZW50IEhNRC4gVGhlIHBpeGVscyBjb3ZlcmVkIGJ5IHRoaXMg
bWVzaCB3aWxsIG5ldmVyIGJlIHNlZW4gYnkgdGhlIHVzZXIgYWZ0ZXIgdGhlIGxlbnMgZGlzdG9y
dGlvbiBpcworICAgICAgICogYXBwbGllZCBiYXNlZCBvbiB2aXNpYmlsaXR5IHRvIHRoZSBwYW5l
bHMuIElmIHRoaXMgSE1EIGRvZXMgbm90IGhhdmUgYSBoaWRkZW4gYXJlYSBtZXNoLCB0aGUgdmVy
dGV4IGRhdGEgYW5kIGNvdW50IHdpbGwgYmUgTlVMTCBhbmQgMCByZXNwZWN0aXZlbHkuCisgICAg
ICAgKiBUaGlzIG1lc2ggaXMgbWVhbnQgdG8gYmUgcmVuZGVyZWQgaW50byB0aGUgc3RlbmNpbCBi
dWZmZXIgKG9yIGludG8gdGhlIGRlcHRoIGJ1ZmZlciBzZXR0aW5nIG5lYXJ6KSBiZWZvcmUgcmVu
ZGVyaW5nIGVhY2ggZXllJ3Mgdmlldy4gCisgICAgICAgKiBUaGlzIHdpbGwgaW1wcm92ZSBwZXJm
b3JtYW5jZSBieSBsZXR0aW5nIHRoZSBHUFUgZWFybHktcmVqZWN0IHBpeGVscyB0aGUgdXNlciB3
aWxsIG5ldmVyIHNlZSBiZWZvcmUgcnVubmluZyB0aGUgcGl4ZWwgc2hhZGVyLgorICAgICAgICog
Tk9URTogUmVuZGVyIHRoaXMgbWVzaCB3aXRoIGJhY2tmYWNlIGN1bGxpbmcgZGlzYWJsZWQgc2lu
Y2UgdGhlIHdpbmRpbmcgb3JkZXIgb2YgdGhlIHZlcnRpY2VzIGNhbiBiZSBkaWZmZXJlbnQgcGVy
LUhNRCBvciBwZXItZXllLgorICAgICAgICogU2V0dGluZyB0aGUgYkludmVyc2UgYXJndW1lbnQg
dG8gdHJ1ZSB3aWxsIHByb2R1Y2UgdGhlIHZpc2libGUgYXJlYSBtZXNoIHRoYXQgaXMgY29tbW9u
bHkgdXNlZCBpbiBwbGFjZSBvZiBmdWxsLXNjcmVlbiBxdWFkcy4gVGhlIHZpc2libGUgYXJlYSBt
ZXNoIGNvdmVycyBhbGwgb2YgdGhlIHBpeGVscyB0aGUgaGlkZGVuIGFyZWEgbWVzaCBkb2VzIG5v
dCBjb3Zlci4KKyAgICAgICAqIFNldHRpbmcgdGhlIGJMaW5lTG9vcCBhcmd1bWVudCB3aWxsIHJl
dHVybiBhIGxpbmUgbG9vcCBvZiB2ZXJ0aWNlcyBpbiBIaWRkZW5BcmVhTWVzaF90LT5wVmVydGV4
RGF0YSB3aXRoIEhpZGRlbkFyZWFNZXNoX3QtPnVuVHJpYW5nbGVDb3VudCBzZXQgdG8gdGhlIG51
bWJlciBvZiB2ZXJ0aWNlcy4KKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgSGlkZGVuQXJlYU1l
c2hfdCBHZXRIaWRkZW5BcmVhTWVzaCggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUg
dHlwZSA9IGtfZUhpZGRlbkFyZWFNZXNoX1N0YW5kYXJkICkgPSAwOworCisgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gQ29udHJvbGxlciBt
ZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyAgICAgICAvKiogRmlsbHMgdGhlIHN1cHBsaWVkIHN0cnVjdCB3aXRoIHRoZSBjdXJyZW50IHN0
YXRlIG9mIHRoZSBjb250cm9sbGVyLiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBjb250cm9sbGVyIGlu
ZGV4CisgICAgICAgKiBpcyBpbnZhbGlkLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDb250
cm9sbGVyU3RhdGUoIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkNvbnRyb2xsZXJEZXZpY2VJ
bmRleCwgdnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKnBDb250cm9sbGVyU3RhdGUsIHVpbnQzMl90
IHVuQ29udHJvbGxlclN0YXRlU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBmaWxscyB0aGUgc3Vw
cGxpZWQgc3RydWN0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRyb2xsZXIgYW5k
IHRoZSBwcm92aWRlZCBwb3NlIHdpdGggdGhlIHBvc2Ugb2YgCisgICAgICAgKiB0aGUgY29udHJv
bGxlciB3aGVuIHRoZSBjb250cm9sbGVyIHN0YXRlIHdhcyB1cGRhdGVkIG1vc3QgcmVjZW50bHku
IFVzZSB0aGlzIGZvcm0gaWYgeW91IG5lZWQgYSBwcmVjaXNlIGNvbnRyb2xsZXIKKyAgICAgICAq
IHBvc2UgYXMgaW5wdXQgdG8geW91ciBhcHBsaWNhdGlvbiB3aGVuIHRoZSB1c2VyIHByZXNzZXMg
b3IgcmVsZWFzZXMgYSBidXR0b24uICovCisgICAgICAgdmlydHVhbCBib29sIEdldENvbnRyb2xs
ZXJTdGF0ZVdpdGhQb3NlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHZyOjpWUkNvbnRyb2xs
ZXJTdGF0ZV90ICpwQ29udHJvbGxlclN0YXRlLCB1aW50MzJfdCB1bkNvbnRyb2xsZXJTdGF0ZVNp
emUsIFRyYWNrZWREZXZpY2VQb3NlX3QgKnBUcmFja2VkRGV2aWNlUG9zZSApID0gMDsKKworICAg
ICAgIC8qKiBUcmlnZ2VyIGEgc2luZ2xlIGhhcHRpYyBwdWxzZSBvbiBhIGNvbnRyb2xsZXIuIEFm
dGVyIHRoaXMgY2FsbCB0aGUgYXBwbGljYXRpb24gbWF5IG5vdCB0cmlnZ2VyIGFub3RoZXIgaGFw
dGljIHB1bHNlIG9uIHRoaXMgY29udHJvbGxlcgorICAgICAgICogYW5kIGF4aXMgY29tYmluYXRp
b24gZm9yIDVtcy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKCB2
cjo6VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQzMl90
IHVuQXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9TZWMgKSA9IDA7CisKKyAg
ICAgICAvKiogcmV0dXJucyB0aGUgbmFtZSBvZiBhbiBFVlJCdXR0b25JZCBlbnVtIHZhbHVlICov
CisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRCdXR0b25JZE5hbWVGcm9tRW51bSggRVZS
QnV0dG9uSWQgZUJ1dHRvbklkICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgdGhlIG5hbWUg
b2YgYW4gRVZSQ29udHJvbGxlckF4aXNUeXBlIGVudW0gdmFsdWUgKi8KKyAgICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSggRVZSQ29udHJv
bGxlckF4aXNUeXBlIGVBeGlzVHlwZSApID0gMDsKKworICAgICAgIC8qKiBUZWxscyBPcGVuVlIg
dGhhdCB0aGlzIHByb2Nlc3Mgd2FudHMgZXhjbHVzaXZlIGFjY2VzcyB0byBjb250cm9sbGVyIGJ1
dHRvbiBzdGF0ZXMgYW5kIGJ1dHRvbiBldmVudHMuIE90aGVyIGFwcHMgd2lsbCBiZSBub3RpZmll
ZCB0aGF0IAorICAgICAgICogdGhleSBoYXZlIGxvc3QgaW5wdXQgZm9jdXMgd2l0aCBhIFZSRXZl
bnRfSW5wdXRGb2N1c0NhcHR1cmVkIGV2ZW50LiBSZXR1cm5zIGZhbHNlIGlmIGlucHV0IGZvY3Vz
IGNvdWxkIG5vdCBiZSBjYXB0dXJlZCBmb3IKKyAgICAgICAqIHNvbWUgcmVhc29uLiAqLworICAg
ICAgIHZpcnR1YWwgYm9vbCBDYXB0dXJlSW5wdXRGb2N1cygpID0gMDsKKworICAgICAgIC8qKiBU
ZWxscyBPcGVuVlIgdGhhdCB0aGlzIHByb2Nlc3Mgbm8gbG9uZ2VyIHdhbnRzIGV4Y2x1c2l2ZSBh
Y2Nlc3MgdG8gYnV0dG9uIHN0YXRlcyBhbmQgYnV0dG9uIGV2ZW50cy4gT3RoZXIgYXBwcyB3aWxs
IGJlIG5vdGlmaWVkIAorICAgICAgICogdGhhdCBpbnB1dCBmb2N1cyBoYXMgYmVlbiByZWxlYXNl
ZCB3aXRoIGEgVlJFdmVudF9JbnB1dEZvY3VzUmVsZWFzZWQgZXZlbnQuICovCisgICAgICAgdmly
dHVhbCB2b2lkIFJlbGVhc2VJbnB1dEZvY3VzKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiBpbnB1dCBmb2N1cyBpcyBjYXB0dXJlZCBieSBhbm90aGVyIHByb2Nlc3MuICovCisg
ICAgICAgdmlydHVhbCBib29sIElzSW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2Vzcygp
ID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIC8vIERlYnVnIE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKiBTZW5kcyBhIHJlcXVlc3QgdG8gdGhlIGRyaXZl
ciBmb3IgdGhlIHNwZWNpZmllZCBkZXZpY2UgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlLiBUaGUg
bWF4aW11bSByZXNwb25zZSBzaXplIGlzIDMyaywKKyAgICAgICAqIGJ1dCB0aGlzIG1ldGhvZCBj
YW4gYmUgY2FsbGVkIHdpdGggYSBzbWFsbGVyIGJ1ZmZlci4gSWYgdGhlIHJlc3BvbnNlIGV4Y2Vl
ZHMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciwgaXQgaXMgdHJ1bmNhdGVkLiAKKyAgICAgICAqIFRo
ZSBzaXplIG9mIHRoZSByZXNwb25zZSBpbmNsdWRpbmcgaXRzIHRlcm1pbmF0aW5nIG51bGwgaXMg
cmV0dXJuZWQuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBEcml2ZXJEZWJ1Z1JlcXVlc3Qo
IHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjb25zdCBjaGFyICpwY2hS
ZXF1ZXN0LCBjaGFyICpwY2hSZXNwb25zZUJ1ZmZlciwgdWludDMyX3QgdW5SZXNwb25zZUJ1ZmZl
clNpemUgKSA9IDA7CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBGaXJtd2FyZSBtZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgICAgLyoqIFBlcmZvcm1zIHRo
ZSBhY3R1YWwgZmlybXdhcmUgdXBkYXRlIGlmIGFwcGxpY2FibGUuIAorICAgICAgICAqIFRoZSBm
b2xsb3dpbmcgZXZlbnRzIHdpbGwgYmUgc2VudCwgaWYgVlJGaXJtd2FyZUVycm9yX05vbmUgd2Fz
IHJldHVybmVkOiBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCwgVlJFdmVudF9GaXJtd2Fy
ZVVwZGF0ZUZpbmlzaGVkIAorICAgICAgICAqIFVzZSB0aGUgcHJvcGVydGllcyBQcm9wX0Zpcm13
YXJlX1VwZGF0ZUF2YWlsYWJsZV9Cb29sLCBQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29s
LCBhbmQgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nCisgICAgICAgICogdG8g
ZmlndXJlIG91ciB3aGV0aGVyIGEgZmlybXdhcmUgdXBkYXRlIGlzIGF2YWlsYWJsZSwgYW5kIHRv
IGZpZ3VyZSBvdXQgd2hldGhlciBpdHMgYSBtYW51YWwgdXBkYXRlIAorICAgICAgICAqIFByb3Bf
RmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyBzaG91bGQgcG9pbnQgdG8gYW4gVVJMIGRl
c2NyaWJpbmcgdGhlIG1hbnVhbCB1cGRhdGUgcHJvY2VzcyAqLworICAgICAgIHZpcnR1YWwgdnI6
OkVWUkZpcm13YXJlRXJyb3IgUGVyZm9ybUZpcm13YXJlVXBkYXRlKCB2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgdW5EZXZpY2VJbmRleCApID0gMDsKKworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIEFwcGxpY2F0aW9uIGxpZmUgY3ljbGUg
bWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgLyoqIENhbGwgdGhpcyB0byBhY2tub3dsZWRnZSB0byB0aGUgc3lzdGVtIHRoYXQg
VlJFdmVudF9RdWl0IGhhcyBiZWVuIHJlY2VpdmVkIGFuZCB0aGF0IHRoZSBwcm9jZXNzIGlzIGV4
aXRpbmcuCisgICAgICAgKiBUaGlzIGV4dGVuZHMgdGhlIHRpbWVvdXQgdW50aWwgdGhlIHByb2Nl
c3MgaXMga2lsbGVkLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRfRXhp
dGluZygpID0gMDsKKworICAgICAgIC8qKiBDYWxsIHRoaXMgdG8gdGVsbCB0aGUgc3lzdGVtIHRo
YXQgdGhlIHVzZXIgaXMgYmVpbmcgcHJvbXB0ZWQgdG8gc2F2ZSBkYXRhLiBUaGlzCisgICAgICAg
KiBoYWx0cyB0aGUgdGltZW91dCBhbmQgZGlzbWlzc2VzIHRoZSBkYXNoYm9hcmQgKGlmIGl0IHdh
cyB1cCkuIEFwcGxpY2F0aW9ucyBzaG91bGQgYmUgc3VyZSB0byBhY3R1YWxseSAKKyAgICAgICAq
IHByb21wdCB0aGUgdXNlciB0byBzYXZlIGFuZCB0aGVuIGV4aXQgYWZ0ZXJ3YXJkLCBvdGhlcndp
c2UgdGhlIHVzZXIgd2lsbCBiZSBsZWZ0IGluIGEgY29uZnVzaW5nIHN0YXRlLiAqLworICAgICAg
IHZpcnR1YWwgdm9pZCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdCgpID0gMDsKKworfTsKKwor
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJTeXN0ZW1fVmVyc2lvbiA9ICJJVlJTeXN0ZW1f
MDE3IjsKKworfQorCisKKy8vIGl2cmFwcGxpY2F0aW9ucy5oCituYW1lc3BhY2UgdnIKK3sKKwor
ICAgICAgIC8qKiBVc2VkIGZvciBhbGwgZXJyb3JzIHJlcG9ydGVkIGJ5IHRoZSBJVlJBcHBsaWNh
dGlvbnMgaW50ZXJmYWNlICovCisgICAgICAgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCisgICAg
ICAgeworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSA9IDAsCisKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcEtleUFscmVhZHlFeGlzdHMgPSAxMDAsICAg
ICAgIC8vIE9ubHkgb25lIGFwcGxpY2F0aW9uIGNhbiB1c2UgYW55IGdpdmVuIGtleQorICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfTm9NYW5pZmVzdCA9IDEwMSwgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgcnVubmluZyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGEgbWFuaWZl
c3QKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX05vQXBwbGljYXRpb24gPSAxMDIs
ICAgICAgICAgICAgICAgICAgICAgLy8gTm8gYXBwbGljYXRpb24gaXMgcnVubmluZworICAgICAg
ICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAorICAgICAgICAg
ICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93bkFwcGxpY2F0aW9uID0gMTA0LCAgICAgICAv
LyB0aGUgYXBwbGljYXRpb24gY291bGQgbm90IGJlIGZvdW5kCisgICAgICAgICAgICAgIFZSQXBw
bGljYXRpb25FcnJvcl9JUENGYWlsZWQgPSAxMDUsICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEFuIElQQyBmYWlsdXJlIGNhdXNlZCB0aGUgcmVxdWVzdCB0byBmYWlsCisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nID0gMTA2LCAK
KyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRNYW5pZmVzdCA9IDEwNywK
KyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0ludmFsaWRBcHBsaWNhdGlvbiA9IDEw
OCwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxlZCA9IDEwOSwg
ICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHJvY2VzcyBkaWRuJ3Qgc3RhcnQKKyAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0aW9uQWxyZWFkeVN0YXJ0aW5nID0gMTEw
LCAvLyB0aGUgc3lzdGVtIHdhcyBhbHJlYWR5IHN0YXJ0aW5nIHRoZSBzYW1lIGFwcGxpY2F0aW9u
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNzID0gMTEx
LCAgICAgICAgICAgICAgLy8gVGhlIHN5c3RlbSB3YXMgYWxyZWFkeSBzdGFydGluZyBhIGRpZmZl
cmVudCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uRXJyb3JfT2xkQXBw
bGljYXRpb25RdWl0dGluZyA9IDExMiwgCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJv
cl9UcmFuc2l0aW9uQWJvcnRlZCA9IDExMywKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX0lzVGVtcGxhdGUgPSAxMTQsIC8vIGVycm9yIHdoZW4geW91IHRyeSB0byBjYWxsIExhdW5j
aEFwcGxpY2F0aW9uKCkgb24gYSB0ZW1wbGF0ZSB0eXBlIGFwcCAodXNlIExhdW5jaFRlbXBsYXRl
QXBwbGljYXRpb24pCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9TdGVhbVZSSXNF
eGl0aW5nID0gMTE1LAorCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJU
b29TbWFsbCA9IDIwMCwgICAgICAgICAgICAgIC8vIFRoZSBwcm92aWRlZCBidWZmZXIgd2FzIHRv
byBzbWFsbCB0byBmaXQgdGhlIHJlcXVlc3RlZCBkYXRhCisgICAgICAgICAgICAgIFZSQXBwbGlj
YXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIwMSwgICAgICAgICAgICAgIC8vIFRoZSByZXF1
ZXN0ZWQgcHJvcGVydHkgd2FzIG5vdCBzZXQKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX1Vua25vd25Qcm9wZXJ0eSA9IDIwMiwKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvbkVy
cm9yX0ludmFsaWRQYXJhbWV0ZXIgPSAyMDMsCisgICAgICAgfTsKKworICAgICAgIC8qKiBUaGUg
bWF4aW11bSBsZW5ndGggb2YgYW4gYXBwbGljYXRpb24ga2V5ICovCisgICAgICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IGtfdW5NYXhBcHBsaWNhdGlvbktleUxlbmd0aCA9IDEyODsKKworICAgICAg
IC8qKiB0aGVzZSBhcmUgdGhlIHByb3BlcnRpZXMgYXZhaWxhYmxlIG9uIGFwcGxpY2F0aW9ucy4g
Ki8KKyAgICAgICBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDAsCisKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0xh
dW5jaFR5cGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMSwKKyAgICAgICAgICAgICAg
VlJBcHBsaWNhdGlvblByb3BlcnR5X1dvcmtpbmdEaXJlY3RvcnlfU3RyaW5nICAgICAgID0gMTIs
CisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyAg
ICAgICAgICAgICAgICAgICAgID0gMTMsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Bcmd1bWVudHNfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxNCwKKyAgICAgICAg
ICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNSwKKworICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVz
Y3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDUwLAorICAgICAgICAgICAgICBWUkFwcGxp
Y2F0aW9uUHJvcGVydHlfTmV3c1VSTF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUxLAor
ICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlfSW1hZ2VQYXRoX1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gNTIsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0
eV9Tb3VyY2VfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTMsCisKKyAgICAg
ICAgICAgICAgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3ZlcmxheV9Cb29sICAg
ICAgID0gNjAsCisgICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRl
X0Jvb2wgICAgICAgICAgICAgICAgICAgICA9IDYxLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0
aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRfQm9vbCAgICAgICAgICAgICAgICAgICAgID0gNjIsCisg
ICAgICAgICAgICAgIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0ludGVybmFsX0Jvb2wgICAgICAg
ICAgICAgICAgICAgICA9IDYzLAorICAgICAgICAgICAgICBWUkFwcGxpY2F0aW9uUHJvcGVydHlf
V2FudHNDb21wb3NpdG9yUGF1c2VJblN0YW5kYnlfQm9vbCA9IDY0LAorCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXN0TGF1bmNoVGltZV9VaW50NjQgICAgICAgICAgICAg
ID0gNzAsCisgICAgICAgfTsKKworICAgICAgIC8qKiBUaGVzZSBhcmUgc3RhdGVzIHRoZSBzY2Vu
ZSBhcHBsaWNhdGlvbiBzdGFydHVwIHByb2Nlc3Mgd2lsbCBnbyB0aHJvdWdoLiAqLworICAgICAg
IGVudW0gRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3RhdGUKKyAgICAgICB7CisgICAgICAgICAg
ICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUgPSAwLAorCisgICAgICAgICAgICAgIFZS
QXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgICAgICAg
IFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCA9IDExLAor
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3
QXBwTGF1bmNoZWQgPSAyMCwKKyAgICAgICB9OworCisgICAgICAgc3RydWN0IEFwcE92ZXJyaWRl
S2V5c190CisgICAgICAgeworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwY2hLZXk7CisgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaFZhbHVlOworICAgICAgIH07CisKKyAgICAgICAvKiog
Q3VycmVudGx5IHJlY29nbml6ZWQgbWltZSB0eXBlcyAqLworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfTWltZVR5cGVfSG9tZUFwcCAgICAgICAgICAgICAgPSAidnIvaG9t
ZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9NaW1lVHlwZV9HYW1l
VGhlYXRlciAgICAgICA9ICJ2ci9nYW1lX3RoZWF0ZXIiOworCisgICAgICAgY2xhc3MgSVZSQXBw
bGljYXRpb25zCisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAt
LS0tLS0tLS0tLS0tLS0gIEFwcGxpY2F0aW9uIG1hbmFnZW1lbnQgIC0tLS0tLS0tLS0tLS0tLSAv
LworCisgICAgICAgICAgICAgIC8qKiBBZGRzIGFuIGFwcGxpY2F0aW9uIG1hbmlmZXN0IHRvIHRo
ZSBsaXN0IHRvIGxvYWQgd2hlbiBidWlsZGluZyB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgYXBwbGlj
YXRpb25zLiAKKyAgICAgICAgICAgICAgKiBUZW1wb3JhcnkgbWFuaWZlc3RzIGFyZSBub3QgYXV0
b21hdGljYWxseSBsb2FkZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlv
bkVycm9yIEFkZEFwcGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxpY2F0aW9u
TWFuaWZlc3RGdWxsUGF0aCwgYm9vbCBiVGVtcG9yYXJ5ID0gZmFsc2UgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIFJlbW92ZXMgYW4gYXBwbGljYXRpb24gbWFuaWZlc3QgZnJvbSB0aGUgbGlz
dCB0byBsb2FkIHdoZW4gYnVpbGRpbmcgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIGFwcGxpY2F0aW9u
cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFw
cGxpY2F0aW9uTWFuaWZlc3QoIGNvbnN0IGNoYXIgKnBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxs
UGF0aCApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIGFuIGFwcGxp
Y2F0aW9uIGlzIGluc3RhbGxlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNBcHBs
aWNhdGlvbkluc3RhbGxlZCggY29uc3QgY2hhciAqcGNoQXBwS2V5ICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXBwbGljYXRpb25zIGF2YWlsYWJsZSBp
biB0aGUgbGlzdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFwcGxpY2F0
aW9uQ291bnQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtleSBvZiB0
aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uLiBUaGUgaW5kZXggaXMgYXQgbGVhc3QgMCBhbmQgaXMg
bGVzcyB0aGFuIHRoZSByZXR1cm4gCisgICAgICAgICAgICAgICogdmFsdWUgb2YgR2V0QXBwbGlj
YXRpb25Db3VudCgpLiBUaGUgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBrX3VuTWF4QXBwbGlj
YXRpb25LZXlMZW5ndGggaW4gb3JkZXIgdG8gCisgICAgICAgICAgICAgICogZml0IHRoZSBrZXku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBHZXRBcHBsaWNh
dGlvbktleUJ5SW5kZXgoIHVpbnQzMl90IHVuQXBwbGljYXRpb25JbmRleCwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIGtleSBvZiB0aGUgYXBwbGljYXRp
b24gZm9yIHRoZSBzcGVjaWZpZWQgUHJvY2VzcyBJZC4gVGhlIGJ1ZmZlciBzaG91bGQgYmUgYXQg
bGVhc3QgCisgICAgICAgICAgICAgICoga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoIGluIG9y
ZGVyIHRvIGZpdCB0aGUga2V5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCggdWludDMyX3QgdW5Qcm9jZXNz
SWQsIGNoYXIgKnBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4gKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIExhdW5jaGVzIHRoZSBhcHBsaWNhdGlvbi4gVGhlIGV4
aXN0aW5nIHNjZW5lIGFwcGxpY2F0aW9uIHdpbGwgZXhpdCBhbmQgdGhlbiB0aGUgbmV3IGFwcGxp
Y2F0aW9uIHdpbGwgc3RhcnQuCisgICAgICAgICAgICAgICogVGhpcyBjYWxsIGlzIG5vdCB2YWxp
ZCBmb3IgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb25zLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oIGNvbnN0IGNoYXIg
KnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiogTGF1bmNoZXMgYW4gaW5zdGFu
Y2Ugb2YgYW4gYXBwbGljYXRpb24gb2YgdHlwZSB0ZW1wbGF0ZSwgd2l0aCBpdHMgYXBwIGtleSBi
ZWluZyBwY2hOZXdBcHBLZXkgKHdoaWNoIG11c3QgYmUgdW5pcXVlKSBhbmQgb3B0aW9uYWxseSBv
dmVycmlkZSBzZWN0aW9ucworICAgICAgICAgICAgICAqIGZyb20gdGhlIG1hbmlmZXN0IGZpbGUg
dmlhIEFwcE92ZXJyaWRlS2V5c190CisgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKCBjb25z
dCBjaGFyICpwY2hUZW1wbGF0ZUFwcEtleSwgY29uc3QgY2hhciAqcGNoTmV3QXBwS2V5LCBWUl9B
UlJBWV9DT1VOVCggdW5LZXlzICkgY29uc3QgQXBwT3ZlcnJpZGVLZXlzX3QgKnBLZXlzLCB1aW50
MzJfdCB1bktleXMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIGxhdW5jaGVzIHRoZSBhcHBs
aWNhdGlvbiBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWltZSB0eXBlIGFuZCBwYXNz
ZXMgaXQgdGhlIG9wdGlvbiBhcmdzLCB0eXBpY2FsbHkgdGhlIGZpbGVuYW1lIG9yIG9iamVjdCBu
YW1lIG9mIHRoZSBpdGVtIGJlaW5nIGxhdW5jaGVkICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUoIGNv
bnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjb25zdCBjaGFyICpwY2hBcmdzICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBMYXVuY2hlcyB0aGUgZGFzaGJvYXJkIG92ZXJsYXkgYXBwbGljYXRpb24g
aWYgaXQgaXMgbm90IGFscmVhZHkgcnVubmluZy4gVGhpcyBjYWxsIGlzIG9ubHkgdmFsaWQgZm9y
IAorICAgICAgICAgICAgICAqIGRhc2hib2FyZCBvdmVybGF5IGFwcGxpY2F0aW9ucy4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaERhc2hib2FyZE92
ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
Q2FuY2VsIGEgcGVuZGluZyBsYXVuY2ggZm9yIGFuIGFwcGxpY2F0aW9uICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBDYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCggY29uc3QgY2hhciAqcGNo
QXBwS2V5ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBJZGVudGlmaWVzIGEgcnVubmluZyBh
cHBsaWNhdGlvbi4gT3BlblZSIGNhbid0IGFsd2F5cyB0ZWxsIHdoaWNoIHByb2Nlc3Mgc3RhcnRl
ZCBpbiByZXNwb25zZQorICAgICAgICAgICAgICAqIHRvIGEgVVJMLiBUaGlzIGZ1bmN0aW9uIGFs
bG93cyBhIFVSTCBoYW5kbGVyIChvciB0aGUgcHJvY2VzcyBpdHNlbGYpIHRvIGlkZW50aWZ5IHRo
ZSBhcHAga2V5IAorICAgICAgICAgICAgICAqIGZvciB0aGUgbm93IHJ1bm5pbmcgYXBwbGljYXRp
b24uIFBhc3NpbmcgYSBwcm9jZXNzIElEIG9mIDAgaWRlbnRpZmllcyB0aGUgY2FsbGluZyBwcm9j
ZXNzLiAKKyAgICAgICAgICAgICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBvbmUgdGhhdCdz
IGtub3duIHRvIHRoZSBzeXN0ZW0gdmlhIGEgY2FsbCB0byBBZGRBcHBsaWNhdGlvbk1hbmlmZXN0
LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0aW9uRXJyb3IgSWRlbnRpZnlB
cHBsaWNhdGlvbiggdWludDMyX3QgdW5Qcm9jZXNzSWQsIGNvbnN0IGNoYXIgKnBjaEFwcEtleSAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBmb3IgYW4g
YXBwbGljYXRpb24uIFJldHVybiAwIGlmIHRoZSBhcHBsaWNhdGlvbiB3YXMgbm90IGZvdW5kIG9y
IGlzIG5vdCBydW5uaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldEFw
cGxpY2F0aW9uUHJvY2Vzc0lkKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFwcGxpY2F0aW9ucyBlcnJvciAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldEFwcGxpY2F0aW9uc0Vycm9y
TmFtZUZyb21FbnVtKCBFVlJBcHBsaWNhdGlvbkVycm9yIGVycm9yICkgPSAwOworCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLSAgQXBwbGljYXRpb24gcHJvcGVydGllcyAgLS0tLS0t
LS0tLS0tLS0tIC8vCisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSB2YWx1ZSBmb3IgYW4g
YXBwbGljYXRpb24gcHJvcGVydHkuIFRoZSByZXF1aXJlZCBidWZmZXIgc2l6ZSB0byBmaXQgdGhp
cyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQz
Ml90IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwg
RVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIFZSX09VVF9TVFJJTkcoKSBjaGFyICpw
Y2hQcm9wZXJ0eVZhbHVlQnVmZmVyLCB1aW50MzJfdCB1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4s
IEVWUkFwcGxpY2F0aW9uRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBSZXR1cm5zIGEgYm9vbCB2YWx1ZSBmb3IgYW4gYXBwbGljYXRpb24gcHJvcGVy
dHkuIFJldHVybnMgZmFsc2UgaW4gYWxsIGVycm9yIGNhc2VzLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2woIGNvbnN0IGNoYXIgKnBjaEFw
cEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVWUkFwcGxpY2F0aW9uRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5z
IGEgdWludDY0IHZhbHVlIGZvciBhbiBhcHBsaWNhdGlvbiBwcm9wZXJ0eS4gUmV0dXJucyAwIGlu
IGFsbCBlcnJvciBjYXNlcy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50NjRfdCBHZXRB
cHBsaWNhdGlvblByb3BlcnR5VWludDY0KCBjb25zdCBjaGFyICpwY2hBcHBLZXksIEVWUkFwcGxp
Y2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBFVlJBcHBsaWNhdGlvbkVycm9yICpwZUVycm9yID0g
bnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgYXBwbGljYXRpb24g
YXV0by1sYXVuY2ggZmxhZy4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBhcHBsaWNhdGlvbnMgd2hp
Y2ggcmV0dXJuIHRydWUgZm9yIFZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0Rhc2hib2FyZE92ZXJs
YXlfQm9vbC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFNl
dEFwcGxpY2F0aW9uQXV0b0xhdW5jaCggY29uc3QgY2hhciAqcGNoQXBwS2V5LCBib29sIGJBdXRv
TGF1bmNoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBh
dXRvLWxhdW5jaCBmbGFnLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFwcGxpY2F0aW9ucyB3aGlj
aCByZXR1cm4gdHJ1ZSBmb3IgVlJBcHBsaWNhdGlvblByb3BlcnR5X0lzRGFzaGJvYXJkT3Zlcmxh
eV9Cb29sLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEFkZHMgdGhpcyBtaW1lLXR5cGUgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlwZXMg
Zm9yIHRoaXMgYXBwbGljYXRpb24qLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgU2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUoIGNvbnN0IGNoYXIgKnBj
aEFwcEtleSwgY29uc3QgY2hhciAqcGNoTWltZVR5cGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIHJldHVybiB0aGUgYXBwIGtleSB0aGF0IHdpbGwgb3BlbiB0aGlzIG1pbWUgdHlwZSAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUoIGNvbnN0IGNoYXIgKnBjaE1pbWVUeXBlLCBjaGFyICpwY2hBcHBLZXlCdWZmZXIsIHVpbnQz
Ml90IHVuQXBwS2V5QnVmZmVyTGVuICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhl
IGxpc3Qgb2Ygc3VwcG9ydGVkIG1pbWUgdHlwZXMgZm9yIHRoaXMgYXBwbGljYXRpb24sIGNvbW1h
LWRlbGltaXRlZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbGljYXRpb25T
dXBwb3J0ZWRNaW1lVHlwZXMoIGNvbnN0IGNoYXIgKnBjaEFwcEtleSwgY2hhciAqcGNoTWltZVR5
cGVzQnVmZmVyLCB1aW50MzJfdCB1bk1pbWVUeXBlc0J1ZmZlciApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogR2V0IHRoZSBsaXN0IG9mIGFwcC1rZXlzIHRoYXQgc3VwcG9ydCB0aGlzIG1pbWUg
dHlwZSwgY29tbWEtZGVsaW1pdGVkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIG51bWJlciBvZiBieXRl
cyB5b3UgbmVlZCB0byByZXR1cm4gdGhlIGZ1bGwgc3RyaW5nICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgdWludDMyX3QgR2V0QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZSggY29uc3Qg
Y2hhciAqcGNoTWltZVR5cGUsIGNoYXIgKnBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciwgdWlu
dDMyX3QgdW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIEdldCB0aGUgYXJncyBsaXN0IGZyb20gYW4gYXBwIGxhdW5jaCB0aGF0IGhhZCB0aGUgcHJv
Y2VzcyBhbHJlYWR5IHJ1bm5pbmcsIHlvdSBjYWxsIHRoaXMgd2hlbiB5b3UgZ2V0IGEgVlJFdmVu
dF9BcHBsaWNhdGlvbk1pbWVUeXBlTG9hZCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHVpbnQz
Ml90IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRzKCB1aW50MzJfdCB1bkhhbmRsZSwgY2hh
ciAqcGNoQXJncywgdWludDMyX3QgdW5BcmdzICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0t
LS0tLS0tLS0tLS0tLSAgVHJhbnNpdGlvbiBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLSAvLworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBhcHAga2V5IGZvciB0aGUgYXBwbGljYXRpb24g
dGhhdCBpcyBzdGFydGluZyB1cCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUkFwcGxpY2F0
aW9uRXJyb3IgR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiggY2hhciAqcGNoQXBwS2V5QnVmZmVyLCB1
aW50MzJfdCB1bkFwcEtleUJ1ZmZlckxlbiApID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0
dXJucyB0aGUgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBzdGF0ZSAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIEdldFRyYW5zaXRpb25TdGF0ZSgp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogUmV0dXJucyBlcnJvcnMgdGhhdCB3b3VsZCBwcmV2
ZW50IHRoZSBzcGVjaWZpZWQgYXBwbGljYXRpb24gZnJvbSBsYXVuY2hpbmcgaW1tZWRpYXRlbHku
IENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICAgICAgICAgICogY2F1c2UgdGhlIGN1
cnJlbnQgc2NlbmUgYXBwbGljYXRpb24gdG8gcXVpdCwgc28gb25seSBjYWxsIGl0IHdoZW4geW91
IGFyZSBhY3R1YWxseSBhYm91dCB0byBsYXVuY2ggc29tZXRoaW5nIGVsc2UuCisgICAgICAgICAg
ICAgICogV2hhdCB0aGUgY2FsbGVyIHNob3VsZCBkbyBhYm91dCB0aGVzZSBmYWlsdXJlcyBkZXBl
bmRzIG9uIHRoZSBmYWlsdXJlOgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9y
X09sZEFwcGxpY2F0aW9uUXVpdHRpbmcgLSBBbiBleGlzdGluZyBhcHBsaWNhdGlvbiBoYXMgYmVl
biB0b2xkIHRvIHF1aXQuIFdhaXQgZm9yIGEgVlJFdmVudF9Qcm9jZXNzUXVpdAorICAgICAgICAg
ICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQg
dHJ5IGFnYWluLgorICAgICAgICAgICAgICAqICAgVlJBcHBsaWNhdGlvbkVycm9yX0FwcGxpY2F0
aW9uQWxyZWFkeVN0YXJ0aW5nIC0gVGhpcyBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5IHN0YXJ0aW5n
LiBUaGlzIGlzIGEgcGVybWFuZW50IGZhaWx1cmUuCisgICAgICAgICAgICAgICogICBWUkFwcGxp
Y2F0aW9uRXJyb3JfTGF1bmNoSW5Qcm9ncmVzcyAgICAgICAgICAgICAtIEEgZGlmZmVyZW50IGFw
cGxpY2F0aW9uIGlzIGFscmVhZHkgc3RhcnRpbmcuIFRoaXMgaXMgYSBwZXJtYW5lbnQgZmFpbHVy
ZS4KKyAgICAgICAgICAgICAgKiAgIFZSQXBwbGljYXRpb25FcnJvcl9Ob25lICAgICAgICAgICAg
ICAgICAgIC0gR28gYWhlYWQgYW5kIGxhdW5jaC4gRXZlcnl0aGluZyBpcyBjbGVhci4KKyAgICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIFBl
cmZvcm1BcHBsaWNhdGlvblByZWxhdW5jaENoZWNrKCBjb25zdCBjaGFyICpwY2hBcHBLZXkgKSA9
IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgZm9yIGFuIGFwcGxpY2F0
aW9uIHRyYW5zaXRpb24gc3RhdGUgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFy
ICpHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oIEVWUkFwcGxpY2F0
aW9uVHJhbnNpdGlvblN0YXRlIHN0YXRlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1
cm5zIHRydWUgaWYgdGhlIG91dGdvaW5nIHNjZW5lIGFwcCBoYXMgcmVxdWVzdGVkIGEgc2F2ZSBw
cm9tcHQgYmVmb3JlIGV4aXRpbmcgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzUXVp
dFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFN0YXJ0cyBh
IHN1YnByb2Nlc3Mgd2l0aGluIHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uLiBUaGlzCisgICAgICAg
ICAgICAgICogc3VwcHJlc3NlcyBhbGwgYXBwbGljYXRpb24gdHJhbnNpdGlvbiBVSSBhbmQgYXV0
b21hdGljYWxseSBpZGVudGlmaWVzIHRoZSBuZXcgZXhlY3V0YWJsZSAKKyAgICAgICAgICAgICAg
KiBhcyBwYXJ0IG9mIHRoZSBzYW1lIGFwcGxpY2F0aW9uLiBPbiBzdWNjZXNzIHRoZSBjYWxsaW5n
IHByb2Nlc3Mgc2hvdWxkIGV4aXQgaW1tZWRpYXRlbHkuIAorICAgICAgICAgICAgICAqIElmIHdv
cmtpbmcgZGlyZWN0b3J5IGlzIE5VTEwgb3IgIiIgdGhlIGRpcmVjdG9yeSBwb3J0aW9uIG9mIHRo
ZSBiaW5hcnkgcGF0aCB3aWxsIGJlIAorICAgICAgICAgICAgICAqIHRoZSB3b3JraW5nIGRpcmVj
dG9yeS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5j
aEludGVybmFsUHJvY2VzcyggY29uc3QgY2hhciAqcGNoQmluYXJ5UGF0aCwgY29uc3QgY2hhciAq
cGNoQXJndW1lbnRzLCBjb25zdCBjaGFyICpwY2hXb3JraW5nRGlyZWN0b3J5ICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNjZW5lIHByb2Nlc3MgSUQgYWNj
b3JkaW5nIHRvIHRoZSBhcHBsaWNhdGlvbiBzeXN0ZW0uIEEgc2NlbmUgcHJvY2VzcyB3aWxsIGdl
dCBzY2VuZQorICAgICAgICAgICAgICAqIGZvY3VzIG9uY2UgaXQgc3RhcnRzIHJlbmRlcmluZywg
YnV0IGl0IHdpbGwgYXBwZWFyIGhlcmUgb25jZSBpdCBjYWxscyBWUl9Jbml0IHdpdGggdGhlIFNj
ZW5lIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICogdHlwZS4gKi8KKyAgICAgICAgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKSA9IDA7CisgICAgICAg
fTsKKworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQXBwbGljYXRpb25zX1Zl
cnNpb24gPSAiSVZSQXBwbGljYXRpb25zXzAwNiI7CisKK30gLy8gbmFtZXNwYWNlIHZyCisKKy8v
IGl2cnNldHRpbmdzLmgKK25hbWVzcGFjZSB2cgoreworICAgICAgIGVudW0gRVZSU2V0dGluZ3NF
cnJvcgorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX05vbmUgPSAwLAor
ICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkID0gMSwKKyAgICAgICAgICAg
ICAgVlJTZXR0aW5nc0Vycm9yX1dyaXRlRmFpbGVkID0gMiwKKyAgICAgICAgICAgICAgVlJTZXR0
aW5nc0Vycm9yX1JlYWRGYWlsZWQgPSAzLAorICAgICAgICAgICAgICBWUlNldHRpbmdzRXJyb3Jf
SnNvblBhcnNlRmFpbGVkID0gNCwKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX1Vuc2V0
U2V0dGluZ0hhc05vRGVmYXVsdCA9IDUsIC8vIFRoaXMgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUg
c2V0dGluZyBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgZmlsZSBh
bmQgaGFzIG5vdCBiZWVuIHNldAorICAgICAgIH07CisKKyAgICAgICAvLyBUaGUgbWF4aW11bSBs
ZW5ndGggb2YgYSBzZXR0aW5ncyBrZXkKKyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191
bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworCisgICAgICAgY2xhc3MgSVZSU2V0dGluZ3MK
KyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIgKkdldFNldHRpbmdzRXJyb3JOYW1lRnJvbUVudW0oIEVWUlNldHRpbmdzRXJyb3IgZUVycm9y
ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBmaWxlIHN5bmMgb2Nj
dXJyZWQgKGZvcmNlIG9yIHNldHRpbmdzIGRpcnR5KQorICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgU3luYyggYm9vbCBiRm9yY2UgPSBmYWxzZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9
IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEJvb2woIGNv
bnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBib29sIGJW
YWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBTZXRJbnQzMiggY29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29u
c3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGludDMyX3QgblZhbHVlLCBFVlJTZXR0aW5nc0Vycm9y
ICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNl
dEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tl
eSwgZmxvYXQgZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9
IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBj
aFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBjb25zdCBjaGFyICpwY2hWYWx1
ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAg
ICAgICAgLy8gVXNlcnMgb2YgdGhlIHN5c3RlbSBuZWVkIHRvIHByb3ZpZGUgYSBwcm9wZXIgZGVm
YXVsdCBpbiBkZWZhdWx0LnZyc2V0dGluZ3MgaW4gdGhlIHJlc291cmNlcy9zZXR0aW5ncy8gZGly
ZWN0b3J5CisgICAgICAgICAgICAgIC8vIG9mIGVpdGhlciB0aGUgcnVudGltZSBvciB0aGUgZHJp
dmVyX3h4eCBkaXJlY3RvcnkuIE90aGVyd2lzZSB0aGUgZGVmYXVsdCB3aWxsIGJlIGZhbHNlLCAw
LCAwLjAgb3IgIiIKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIEdldEJvb2woIGNvbnN0IGNo
YXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vy
cm9yICpwZUVycm9yID0gbnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBpbnQz
Ml90IEdldEludDMyKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0
aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RmxvYXQoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24s
IGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0g
bnVsbHB0ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFN0cmluZyggY29u
c3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIFZSX09VVF9T
VFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxlbiwgRVZSU2V0dGluZ3NF
cnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIFJlbW92ZVNlY3Rpb24oIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
UmVtb3ZlS2V5SW5TZWN0aW9uKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpw
Y2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7
CisgICAgICAgfTsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3Nf
MDAyIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBzdGVhbXZy
IGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2Vj
dGlvbiA9ICJzdGVhbXZyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfUmVxdWlyZUhtZF9TdHJpbmcgPSAicmVxdWlyZUhtZCI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmcg
PSAiZm9yY2VkRHJpdmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyA9ICJmb3JjZWRIbWQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdfQm9vbCA9ICJk
aXNwbGF5RGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1Byb2Nlc3NQaXBlIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9J
bnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJkaXNwbGF5RGVidWdZIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2VuZFN5c3RlbUJ1
dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0xvZ0xldmVsX0ludDMyID0g
ImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tncm91bmQiOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kVXNlRG9tZVBy
b2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rpb24iOworICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVp
Z2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCA9
ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENvbG9yIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUGxheUFyZWFDb2xvcl9TdHJp
bmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2YXRlTXVsdGlwbGVEcml2ZXJz
X0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RpcmVjdE1v
ZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRQaWRfSW50MzIgPSAi
ZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlh
d09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Jhc2VTdGF0
aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dlck1hbmFnZW1lbnQiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9OZXZlcktpbGxQ
cm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdXBlcnNhbXBsZVNjYWxlX0Zsb2F0ID0gInN1
cGVyc2FtcGxlU2NhbGUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
U3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVj
dGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0Fs
bG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9q
ZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3JjZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAi
Zm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JW
aWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hv
d01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9yVmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX01pcnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAi
bWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9t
QXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZy
b21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZy
b21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFw
cHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFibGVIb21lQXBwIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1l
U2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJyZXRh
aWxEZW1vIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
SXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93U3VwZXJzYW1wbGVGaWx0ZXJpbmdfQm9vbCA9ICJh
bGxvd1N1cGVyc2FtcGxlRmlsdGVyaW5nIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlTGludXhWdWxrYW5Bc3luY19Cb29sID0gImVuYWJsZUxp
bnV4VnVsa2FuQXN5bmMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg
IC8vIGxpZ2h0aG91c2Uga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0g
ImRpc2FibGVpbXUiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGln
aHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9TdHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJp
Z3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2FtYmlndWF0aW9uZGVidWciOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25f
SW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfREJIaXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKwor
ICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJf
bnVsbCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1Nlcmlh
bE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX051bGxfTW9kZWxOdW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQz
MiA9ICJ3aW5kb3dYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051
bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX051bGxfV2luZG93V2lkdGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50
MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIgPSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVu
ZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxf
U2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90
b25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxh
eUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyB1c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNl
cmludGVyZmFjZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2Vy
SW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9wX0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5p
bWl6ZVRvVHJheV9Cb29sID0gIk1pbmltaXplVG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3Jl
ZW5zaG90cyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50
ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAgICAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9
ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJiX0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKworICAg
ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtl
eWJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJk
X1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsK
KyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9
ICJTY2FsZVkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9h
cmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0TGVmdFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0g
Ik9mZnNldFkiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9h
cmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gcGVyZiBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfSGV1cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGlj
QWN0aXZlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90
aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3Rv
cmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3JlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRpbWluZ3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09u
RXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3RE
YXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9QZXJmX0xpbnV4R1BVUHJvZmlsaW5nX0Jvb2wgPSAibGludXhHUFVQcm9maWxp
bmciOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGNvbGxpc2lv
biBib3VuZHMga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29s
bGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25C
b3VuZHNHcm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25C
b3VuZHNDZW50ZXJNYXJrZXJPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQ
bGF5U3BhY2VPbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfRmFkZURpc3RhbmNlX0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0
YW5jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25C
b3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOwor
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0Nv
bG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1h
Ql9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYUFfSW50MzIg
PSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgIC8vIGNhbWVyYSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9DYW1lcmFfU2VjdGlvbiA9ICJjYW1lcmEiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVuYWJs
ZUNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFf
RW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmRfQm9vbCA9ICJlbmFibGVDYW1lcmFJbkRhc2hib2FyZCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2Ft
ZXJhRm9yQ29sbGlzaW9uQm91bmRzX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yQ29sbGlzaW9uQm91
bmRzIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVyYUZvclJvb21WaWV3IjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdh
bW1hUl9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hUiI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUdfSW50MzIgPSAi
Y2FtZXJhQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0Nv
bG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVy
YV9Cb3VuZHNDb2xvckdhbW1hQV9JbnQzMiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQSI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfQm91bmRzU3RyZW5n
dGhfSW50MzIgPSAiY2FtZXJhQm91bmRzU3RyZW5ndGgiOworCisgICAgICAgLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgIC8vIGF1ZGlvIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b25QbGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9hdWRpb19PblJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRl
dmljZV9TdHJpbmcgPSAib25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAi
b2ZmUGxheWJhY2tEZXZpY2UiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19w
Y2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfYXVkaW9fVklWRUhETUlHYWluID0g
InZpdmVIRE1JR2FpbiI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
Ly8gcG93ZXIgbWFuYWdlbWVudCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfVHVybk9m
ZlNjcmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNU
aW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRf
RmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfUG93ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0g
ImF1dG9MYXVuY2hTdGVhbVZST25CdXR0b25QcmVzcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9QYXVzZUNvbXBvc2l0b3JPblN0YW5kYnlfQm9vbCA9ICJw
YXVzZUNvbXBvc2l0b3JPblN0YW5kYnkiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgIC8vIGRhc2hib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9EYXNoYm9hcmRfU2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29s
ID0gImVuYWJsZURhc2hib2FyZCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0gImFyY2FkZU1vZGUiOworCisgICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIG1vZGVsIHNraW4ga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfbW9kZWxza2luX1NlY3Rpb24gPSAibW9k
ZWxza2lucyI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gZHJp
dmVyIGtleXMgLSBUaGVzZSBjb3VsZCBiZSBjaGVja2VkIGluIGFueSBkcml2ZXJfPG5hbWU+IHNl
Y3Rpb24KKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0RyaXZlcl9FbmFi
bGVfQm9vbCA9ICJlbmFibGUiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisvLyBpdnJjaGFwZXJv
bmUuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKK2VudW0g
Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZQoreworICAgICAgIC8vIE9LIQorICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfT0sgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYXBlcm9uZSBpcyBmdWxseSBj
YWxpYnJhdGVkIGFuZCB3b3JraW5nIGNvcnJlY3RseQorCisgICAgICAgLy8gV2FybmluZ3MKKyAg
ICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmcgPSAxMDAsCisgICAgICAgQ2hh
cGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uTWF5SGF2ZU1vdmVkID0g
MTAxLCAgICAgICAvLyBBIGJhc2Ugc3RhdGlvbiB0aGlua3MgdGhhdCBpdCBtaWdodCBoYXZlIG1v
dmVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9u
UmVtb3ZlZCA9IDEwMiwgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgbGVzcyBiYXNl
IHN0YXRpb25zIHRoYW4gd2hlbiBjYWxpYnJhdGVkCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRp
b25TdGF0ZV9XYXJuaW5nX1NlYXRlZEJvdW5kc0ludmFsaWQgPSAxMDMsICAgICAgICAgICAgICAv
LyBTZWF0ZWQgYm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3VycmVudCB0
cmFja2luZyBjZW50ZXIKKworICAgICAgIC8vIEVycm9ycworICAgICAgIENoYXBlcm9uZUNhbGli
cmF0aW9uU3RhdGVfRXJyb3IgPSAyMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgVW5pdmVyc2VJRCBpcyBpbnZhbGlkCisgICAg
ICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6
ZWQgPSAyMDEsICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaGFzbid0IGJlIGNhbGli
cmF0ZWQgZm9yIGF0IGxlYXN0IG9uZSBvZiB0aGUgYmFzZSBzdGF0aW9ucworICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwgICAg
ICAgICAgICAgICAgICAgICAvLyBUcmFja2luZyBjZW50ZXIgaXMgY2FsaWJyYXRlZCwgYnV0IGJh
c2Ugc3RhdGlvbnMgZGlzYWdyZWUgb24gdGhlIHRyYWNraW5nIHNwYWNlCisgICAgICAgQ2hhcGVy
b25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJvcl9QbGF5QXJlYUludmFsaWQgPSAyMDMsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIFBsYXkgQXJlYSBoYXNuJ3QgYmVlbiBjYWxpYnJhdGVkIGZv
ciB0aGUgY3VycmVudCB0cmFja2luZyBjZW50ZXIKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlv
blN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQgPSAyMDQsICAgICAgICAgICAgICAv
LyBDb2xsaXNpb24gQm91bmRzIGhhdmVuJ3QgYmVlbiBjYWxpYnJhdGVkIGZvciB0aGUgY3VycmVu
dCB0cmFja2luZyBjZW50ZXIKK307CisKKworLyoqIEhJR0ggTEVWRUwgVFJBQ0tJTkcgU1BBQ0Ug
QVNTVU1QVElPTlM6CisqIDAsMCwwIGlzIHRoZSBwcmVmZXJyZWQgc3RhbmRpbmcgYXJlYSBjZW50
ZXIuCisqIDBZIGlzIHRoZSBmbG9vciBoZWlnaHQuCisqIC1aIGlzIHRoZSBwcmVmZXJyZWQgZm9y
d2FyZCBmYWNpbmcgZGlyZWN0aW9uLiAqLworY2xhc3MgSVZSQ2hhcGVyb25lCit7CitwdWJsaWM6
CisKKyAgICAgICAvKiogR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIENoYXBlcm9uZSBjYWxpYnJh
dGlvbi4gVGhpcyBzdGF0ZSBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGR1cmluZyBhIHNlc3Npb24g
ZHVlIHRvIHBoeXNpY2FsIGJhc2Ugc3RhdGlvbiBjaGFuZ2VzLiAqKi8KKyAgICAgICB2aXJ0dWFs
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgR2V0Q2FsaWJyYXRpb25TdGF0ZSgpID0gMDsKKwor
ICAgICAgIC8qKiBSZXR1cm5zIHRoZSB3aWR0aCBhbmQgZGVwdGggb2YgdGhlIFBsYXkgQXJlYSAo
Zm9ybWVybHkgbmFtZWQgU29mdCBCb3VuZHMpIGluIFggYW5kIFouIAorICAgICAgICogVHJhY2tp
bmcgc3BhY2UgY2VudGVyICgwLDAsMCkgaXMgdGhlIGNlbnRlciBvZiB0aGUgUGxheSBBcmVhLiAq
Ki8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0UGxheUFyZWFTaXplKCBmbG9hdCAqcFNpemVYLCBm
bG9hdCAqcFNpemVaICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIDQgY29ybmVyIHBv
c2l0aW9ucyBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykuCisg
ICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjb3VudGVyLWNsb2Nrd2lzZSBvcmRlci4KKyAgICAgICAq
IFN0YW5kaW5nIGNlbnRlciAoMCwwLDApIGlzIHRoZSBjZW50ZXIgb2YgdGhlIFBsYXkgQXJlYS4K
KyAgICAgICAqIEl0J3MgYSByZWN0YW5nbGUuCisgICAgICAgKiAyIHNpZGVzIGFyZSBwYXJhbGxl
bCB0byB0aGUgWCBheGlzIGFuZCAyIHNpZGVzIGFyZSBwYXJhbGxlbCB0byB0aGUgWiBheGlzLgor
ICAgICAgICogSGVpZ2h0IG9mIGV2ZXJ5IGNvcm5lciBpcyAwWSAob24gdGhlIGZsb29yKS4gKiov
CisgICAgICAgdmlydHVhbCBib29sIEdldFBsYXlBcmVhUmVjdCggSG1kUXVhZF90ICpyZWN0ICkg
PSAwOworCisgICAgICAgLyoqIFJlbG9hZCBDaGFwZXJvbmUgZGF0YSBmcm9tIHRoZSAudnJjaGFw
IGZpbGUgb24gZGlzay4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsb2FkSW5mbyggdm9pZCAp
ID0gMDsKKworICAgICAgIC8qKiBPcHRpb25hbGx5IGdpdmUgdGhlIGNoYXBlcm9uZSBzeXN0ZW0g
YSBoaXQgYWJvdXQgdGhlIGNvbG9yIGFuZCBicmlnaHRuZXNzIGluIHRoZSBzY2VuZSAqKi8KKyAg
ICAgICB2aXJ0dWFsIHZvaWQgU2V0U2NlbmVDb2xvciggSG1kQ29sb3JfdCBjb2xvciApID0gMDsK
KworICAgICAgIC8qKiBHZXQgdGhlIGN1cnJlbnQgY2hhcGVyb25lIGJvdW5kcyBkcmF3IGNvbG9y
IGFuZCBicmlnaHRuZXNzICoqLworICAgICAgIHZpcnR1YWwgdm9pZCBHZXRCb3VuZHNDb2xvcigg
SG1kQ29sb3JfdCAqcE91dHB1dENvbG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9h
dCBmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSwgSG1kQ29sb3JfdCAqcE91dHB1dENhbWVy
YUNvbG9yICkgPSAwOworCisgICAgICAgLyoqIERldGVybWluZSB3aGV0aGVyIHRoZSBib3VuZHMg
YXJlIHNob3dpbmcgcmlnaHQgbm93ICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBBcmVCb3VuZHNW
aXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIEZvcmNlIHRoZSBib3VuZHMgdG8gc2hvdywgbW9z
dGx5IGZvciB1dGlsaXRpZXMgKiovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlQm91bmRzVmlz
aWJsZSggYm9vbCBiRm9yY2UgKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IElWUkNoYXBlcm9uZV9WZXJzaW9uID0gIklWUkNoYXBlcm9uZV8wMDMiOworCisjcHJhZ21hIHBh
Y2soIHBvcCApCisKK30KKworLy8gaXZyY2hhcGVyb25lc2V0dXAuaAorbmFtZXNwYWNlIHZyCit7
CisKK2VudW0gRUNoYXBlcm9uZUNvbmZpZ0ZpbGUKK3sKKyAgICAgICBFQ2hhcGVyb25lQ29uZmln
RmlsZV9MaXZlID0gMSwgICAgICAgICAgICAgIC8vIFRoZSBsaXZlIGNoYXBlcm9uZSBjb25maWcs
IHVzZWQgYnkgbW9zdCBhcHBsaWNhdGlvbnMgYW5kIGdhbWVzCisgICAgICAgRUNoYXBlcm9uZUNv
bmZpZ0ZpbGVfVGVtcCA9IDIsICAgICAgICAgICAgICAvLyBUaGUgdGVtcG9yYXJ5IGNoYXBlcm9u
ZSBjb25maWcsIHVzZWQgdG8gbGl2ZS1wcmV2aWV3IGNvbGxpc2lvbiBib3VuZHMgaW4gcm9vbSBz
ZXR1cAorfTsKKworZW51bSBFQ2hhcGVyb25lSW1wb3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hhcGVy
b25lSW1wb3J0X0JvdW5kc09ubHkgPSAweDAwMDEsCit9OworCisvKiogTWFuYWdlcyB0aGUgd29y
a2luZyBjb3B5IG9mIHRoZSBjaGFwZXJvbmUgaW5mby4gQnkgZGVmYXVsdCB0aGlzIHdpbGwgYmUg
dGhlIHNhbWUgYXMgdGhlIAorKiBsaXZlIGNvcHkuIEFueSBjaGFuZ2VzIG1hZGUgd2l0aCB0aGlz
IGludGVyZmFjZSB3aWxsIHN0YXkgaW4gdGhlIHdvcmtpbmcgY29weSB1bnRpbCAKKyogQ29tbWl0
V29ya2luZ0NvcHkoKSBpcyBjYWxsZWQsIGF0IHdoaWNoIHBvaW50IHRoZSB3b3JraW5nIGNvcHkg
YW5kIHRoZSBsaXZlIGNvcHkgd2lsbCBiZSAKKyogdGhlIHNhbWUgYWdhaW4uICovCitjbGFzcyBJ
VlJDaGFwZXJvbmVTZXR1cAoreworcHVibGljOgorCisgICAgICAgLyoqIFNhdmVzIHRoZSBjdXJy
ZW50IHdvcmtpbmcgY29weSB0byBkaXNrICovCisgICAgICAgdmlydHVhbCBib29sIENvbW1pdFdv
cmtpbmdDb3B5KCBFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlICkgPSAwOworCisgICAg
ICAgLyoqIFJldmVydHMgdGhlIHdvcmtpbmcgY29weSB0byBtYXRjaCB0aGUgbGl2ZSBjaGFwZXJv
bmUgY2FsaWJyYXRpb24uCisgICAgICAgKiBUbyBtb2RpZnkgZXhpc3RpbmcgZGF0YSB0aGlzIE1V
U1QgYmUgZG8gV0hJTEUgZ2V0dGluZyBhIG5vbi1lcnJvciBDaGFwZXJvbmVDYWxpYnJhdGlvblN0
YXR1cy4KKyAgICAgICAqIE9ubHkgYWZ0ZXIgdGhpcyBzaG91bGQgeW91IGRvIGdldHMgYW5kIHNl
dHMgb24gdGhlIGV4aXN0aW5nIGRhdGEuICovCisgICAgICAgdmlydHVhbCB2b2lkIFJldmVydFdv
cmtpbmdDb3B5KCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHdpZHRoIGFuZCBkZXB0
aCBvZiB0aGUgUGxheSBBcmVhIChmb3JtZXJseSBuYW1lZCBTb2Z0IEJvdW5kcykgaW4gWCBhbmQg
WiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuCisgICAgICAgKiBUcmFja2luZyBzcGFjZSBjZW50ZXIg
KDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQbGF5IEFyZWEuICovCisgICAgICAgdmlydHVh
bCBib29sIEdldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0ICpwU2l6ZVgsIGZsb2F0ICpwU2l6
ZVogKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgNCBjb3JuZXIgcG9zaXRpb25zIG9m
IHRoZSBQbGF5IEFyZWEgKGZvcm1lcmx5IG5hbWVkIFNvZnQgQm91bmRzKSBmcm9tIHRoZSB3b3Jr
aW5nIGNvcHkuCisgICAgICAgKiBDb3JuZXJzIGFyZSBpbiBjbG9ja3dpc2Ugb3JkZXIuCisgICAg
ICAgKiBUcmFja2luZyBzcGFjZSBjZW50ZXIgKDAsMCwwKSBpcyB0aGUgY2VudGVyIG9mIHRoZSBQ
bGF5IEFyZWEuCisgICAgICAgKiBJdCdzIGEgcmVjdGFuZ2xlLgorICAgICAgICogMiBzaWRlcyBh
cmUgcGFyYWxsZWwgdG8gdGhlIFggYXhpcyBhbmQgMiBzaWRlcyBhcmUgcGFyYWxsZWwgdG8gdGhl
IFogYXhpcy4KKyAgICAgICAqIEhlaWdodCBvZiBldmVyeSBjb3JuZXIgaXMgMFkgKG9uIHRoZSBm
bG9vcikuICoqLworICAgICAgIHZpcnR1YWwgYm9vbCBHZXRXb3JraW5nUGxheUFyZWFSZWN0KCBI
bWRRdWFkX3QgKnJlY3QgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9m
IFF1YWRzIGlmIHRoZSBidWZmZXIgcG9pbnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1cm5z
IFF1YWRzIAorICAgICAgICogaW50byB0aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lmaWVk
IGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29ya2lu
Z0NvbGxpc2lvbkJvdW5kc0luZm8oIFZSX09VVF9BUlJBWV9DT1VOVChwdW5RdWFkc0NvdW50KSBI
bWRRdWFkX3QgKnBRdWFkc0J1ZmZlciwgdWludDMyX3QqIHB1blF1YWRzQ291bnQgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIFF1YWRzIGlmIHRoZSBidWZmZXIgcG9p
bnRzIHRvIG51bGwuIE90aGVyd2lzZSBpdCByZXR1cm5zIFF1YWRzIAorICAgICAgICogaW50byB0
aGUgYnVmZmVyIHVwIHRvIHRoZSBtYXggc3BlY2lmaWVkLiAqLworICAgICAgIHZpcnR1YWwgYm9v
bCBHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5UKHB1blF1YWRz
Q291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVhZHNDb3VudCAp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRoZSBwcmVmZXJyZWQgc2VhdGVkIHBvc2l0aW9u
IGZyb20gdGhlIHdvcmtpbmcgY29weS4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0V29ya2lu
Z1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3QgKnBtYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
dGhlIHN0YW5kaW5nIG9yaWdpbiBmcm9tIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmly
dHVhbCBib29sIEdldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEht
ZE1hdHJpeDM0X3QgKnBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7
CisKKyAgICAgICAvKiogU2V0cyB0aGUgUGxheSBBcmVhIGluIHRoZSB3b3JraW5nIGNvcHkuICov
CisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoIGZsb2F0IHNpemVY
LCBmbG9hdCBzaXplWiApID0gMDsKKworICAgICAgIC8qKiBTZXRzIHRoZSBDb2xsaXNpb24gQm91
bmRzIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNJbmZvKCBWUl9BUlJBWV9DT1VOVCh1blF1YWRzQ291bnQpIEhtZFF1
YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCB1blF1YWRzQ291bnQgKSA9IDA7CisKKyAgICAg
ICAvKiogU2V0cyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbiBpbiB0aGUgd29ya2luZyBj
b3B5LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZSggY29uc3QgSG1kTWF0cml4MzRfdCAqcE1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UgKSA9IDA7CisKKyAgICAgICAvKiogU2V0cyB0aGUgcHJlZmVycmVkIHN0
YW5kaW5nIHBvc2l0aW9uIGluIHRoZSB3b3JraW5nIGNvcHkuICovCisgICAgICAgdmlydHVhbCB2
b2lkIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIGNvbnN0IEht
ZE1hdHJpeDM0X3QgKnBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgKSA9IDA7
CisKKyAgICAgICAvKiogVGVhciBldmVyeXRoaW5nIGRvd24gYW5kIHJlbG9hZCBpdCBmcm9tIHRo
ZSBmaWxlIG9uIGRpc2sgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUmVsb2FkRnJvbURpc2soIEVD
aGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyB0aGUgcHJlZmVycmVkIHNlYXRlZCBwb3NpdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wg
R2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UoIEhtZE1hdHJpeDM0X3QgKnBt
YXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlICkgPSAwOworCisgICAgICAgdmlydHVh
bCB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyggVlJfQVJSQVlfQ09VTlQo
dW5UYWdDb3VudCkgdWludDhfdCAqcFRhZ3NCdWZmZXIsIHVpbnQzMl90IHVuVGFnQ291bnQgKSA9
IDA7CisgICAgICAgdmlydHVhbCBib29sIEdldExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbygg
VlJfT1VUX0FSUkFZX0NPVU5UKHB1blRhZ0NvdW50KSB1aW50OF90ICpwVGFnc0J1ZmZlciwgdWlu
dDMyX3QgKnB1blRhZ0NvdW50ICkgPSAwOworCisgICAgICAgdmlydHVhbCBib29sIFNldFdvcmtp
bmdQaHlzaWNhbEJvdW5kc0luZm8oIFZSX0FSUkFZX0NPVU5UKHVuUXVhZHNDb3VudCkgSG1kUXVh
ZF90ICpwUXVhZHNCdWZmZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCApID0gMDsKKyAgICAgICB2
aXJ0dWFsIGJvb2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyggVlJfT1VUX0FSUkFZX0NPVU5U
KHB1blF1YWRzQ291bnQpIEhtZFF1YWRfdCAqcFF1YWRzQnVmZmVyLCB1aW50MzJfdCogcHVuUXVh
ZHNDb3VudCApID0gMDsKKworICAgICAgIHZpcnR1YWwgYm9vbCBFeHBvcnRMaXZlVG9CdWZmZXIo
IFZSX09VVF9TVFJJTkcoKSBjaGFyICpwQnVmZmVyLCB1aW50MzJfdCAqcG5CdWZmZXJMZW5ndGgg
KSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmcoIGNv
bnN0IGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IG5JbXBvcnRGbGFncyApID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2hhcGVyb25lU2V0dXBfVmVyc2lvbiA9ICJJVlJD
aGFwZXJvbmVTZXR1cF8wMDUiOworCisKK30KKworLy8gaXZyY29tcG9zaXRvci5oCituYW1lc3Bh
Y2UgdnIKK3sKKworI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKworLyoqIEVycm9ycyB0aGF0IGNh
biBvY2N1ciB3aXRoIHRoZSBWUiBjb21wb3NpdG9yICovCitlbnVtIEVWUkNvbXBvc2l0b3JFcnJv
cgoreworICAgICAgIFZSQ29tcG9zaXRvckVycm9yX05vbmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVz
dEZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgVlJDb21wb3Np
dG9yRXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiAgICAgICAgICAgICAgPSAxMDAsCisgICAgICAg
VlJDb21wb3NpdG9yRXJyb3JfRG9Ob3RIYXZlRm9jdXMgICAgICAgICAgICAgICAgICAgICA9IDEw
MSwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSAgICAgICAgICAgICAg
ICAgICAgID0gMTAyLAorICAgICAgIFZSQ29tcG9zaXRvckVycm9yX0lzTm90U2NlbmVBcHBsaWNh
dGlvbiAgICAgICAgICAgICAgPSAxMDMsCisgICAgICAgVlJDb21wb3NpdG9yRXJyb3JfVGV4dHVy
ZUlzT25Xcm9uZ0RldmljZSAgICAgICA9IDEwNCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9U
ZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAgIFZSQ29tcG9zaXRvckVy
cm9yX1NoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAorICAgICAgIFZSQ29tcG9zaXRv
ckVycm9yX0luZGV4T3V0T2ZSYW5nZSAgICAgICAgICAgICAgICAgICAgID0gMTA3LAorICAgICAg
IFZSQ29tcG9zaXRvckVycm9yX0FscmVhZHlTdWJtaXR0ZWQgICAgICAgICAgICAgICAgICAgICA9
IDEwOCwKKyAgICAgICBWUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkQm91bmRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTA5LAorfTsKKworY29uc3QgdWludDMyX3QgVlJDb21wb3NpdG9y
X1JlcHJvamVjdGlvblJlYXNvbl9DcHUgPSAweDAxOworY29uc3QgdWludDMyX3QgVlJDb21wb3Np
dG9yX1JlcHJvamVjdGlvblJlYXNvbl9HcHUgPSAweDAyOworY29uc3QgdWludDMyX3QgVlJDb21w
b3NpdG9yX1JlcHJvamVjdGlvbkFzeW5jICAgICAgPSAweDA0OyAgICAgICAvLyBUaGlzIGZsYWcg
aW5kaWNhdGVzIHRoZSBhc3luYyByZXByb2plY3Rpb24gbW9kZSBpcyBhY3RpdmUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgZG9lcyBub3Qg
aW5kaWNhdGUgaWYgcmVwcm9qZWN0aW9uIGFjdHVhbGx5IGhhcHBlbmVkIG9yIG5vdC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgUmVw
cm9qZWN0aW9uUmVhc29uIGZsYWdzIGFib3ZlIHRvIGNoZWNrIGlmIHJlcHJvamVjdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FzIGFjdHVh
bGx5IGFwcGxpZWQgKGkuZS4gc2NlbmUgdGV4dHVyZSB3YXMgcmV1c2VkKS4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bUZyYW1lUHJlc2VudHMg
PiAxIGFsc28gaW5kaWNhdGVzIHRoZSBzY2VuZSB0ZXh0dXJlIHdhcyByZXVzZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWxzbyB0aGUg
bnVtYmVyIG9mIHRpbWVzIHRoYXQgaXQgd2FzIHByZXNlbnRlZCBpbiB0b3RhbC4KKworLyoqIFBy
b3ZpZGVzIGEgc2luZ2xlIGZyYW1lJ3MgdGltaW5nIGluZm9ybWF0aW9uIHRvIHRoZSBhcHAgKi8K
K3N0cnVjdCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nCit7CisgICAgICAgdWludDMyX3QgbV9uU2l6
ZTsgLy8gU2V0IHRvIHNpemVvZiggQ29tcG9zaXRvcl9GcmFtZVRpbWluZyApCisgICAgICAgdWlu
dDMyX3QgbV9uRnJhbWVJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRz
OyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFtZSB3YXMgcHJlc2VudGVkCisgICAgICAgdWlu
dDMyX3QgbV9uTnVtTWlzUHJlc2VudGVkOyAvLyBudW1iZXIgb2YgdGltZXMgdGhpcyBmcmFtZSB3
YXMgcHJlc2VudGVkIG9uIGEgdnN5bmMgb3RoZXIgdGhhbiBpdCB3YXMgb3JpZ2luYWxseSBwcmVk
aWN0ZWQgdG8KKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzOyAvLyBudW1iZXIg
b2YgYWRkaXRpb25hbCB0aW1lcyBwcmV2aW91cyBmcmFtZSB3YXMgc2Nhbm5lZCBvdXQKKyAgICAg
ICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFnczsKKworICAgICAgIC8qKiBBYnNvbHV0ZSB0
aW1lIHJlZmVyZW5jZSBmb3IgY29tcGFyaW5nIGZyYW1lcy4gIFRoaXMgYWxpZ25zIHdpdGggdGhl
IHZzeW5jIHRoYXQgcnVubmluZyBzdGFydCBpcyByZWxhdGl2ZSB0by4gKi8KKyAgICAgICBkb3Vi
bGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisKKyAgICAgICAvKiogVGhlc2UgdGltZXMgbWF5
IGluY2x1ZGUgd29yayBmcm9tIG90aGVyIHByb2Nlc3NlcyBkdWUgdG8gT1Mgc2NoZWR1bGluZy4K
KyAgICAgICAqIFRoZSBmZXdlciBwYWNrZXRzIG9mIHdvcmsgdGhlc2UgYXJlIGJyb2tlbiB1cCBp
bnRvLCB0aGUgbGVzcyBsaWtlbHkgdGhpcyB3aWxsIGhhcHBlbi4KKyAgICAgICAqIEdQVSB3b3Jr
IGNhbiBiZSBicm9rZW4gdXAgYnkgY2FsbGluZyBGbHVzaC4gIFRoaXMgY2FuIHNvbWV0aW1lcyBi
ZSB1c2VmdWwgdG8gZ2V0IHRoZSBHUFUgc3RhcnRlZAorICAgICAgICogcHJvY2Vzc2luZyB0aGF0
IHdvcmsgZWFybGllciBpbiB0aGUgZnJhbWUuICovCisgICAgICAgZmxvYXQgbV9mbFByZVN1Ym1p
dEdwdU1zOyAvLyB0aW1lIHNwZW50IHJlbmRlcmluZyB0aGUgc2NlbmUgKGdwdSB3b3JrIHN1Ym1p
dHRlZCBiZXR3ZWVuIFdhaXRHZXRQb3NlcyBhbmQgc2Vjb25kIFN1Ym1pdCkKKyAgICAgICBmbG9h
dCBtX2ZsUG9zdFN1Ym1pdEdwdU1zOyAvLyBhZGRpdGlvbmFsIHRpbWUgc3BlbnQgcmVuZGVyaW5n
IGJ5IGFwcGxpY2F0aW9uIChlLmcuIGNvbXBhbmlvbiB3aW5kb3cpCisgICAgICAgZmxvYXQgbV9m
bFRvdGFsUmVuZGVyR3B1TXM7IC8vIHRpbWUgYmV0d2VlbiB3b3JrIHN1Ym1pdHRlZCBpbW1lZGlh
dGVseSBhZnRlciBwcmVzZW50IChpZGVhbGx5IHZzeW5jKSB1bnRpbCB0aGUgZW5kIG9mIGNvbXBv
c2l0b3Igc3VibWl0dGVkIHdvcmsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdw
dU1zOyAvLyB0aW1lIHNwZW5kIHBlcmZvcm1pbmcgZGlzdG9ydGlvbiBjb3JyZWN0aW9uLCByZW5k
ZXJpbmcgY2hhcGVyb25lLCBvdmVybGF5cywgZXRjLgorICAgICAgIGZsb2F0IG1fZmxDb21wb3Np
dG9yUmVuZGVyQ3B1TXM7IC8vIHRpbWUgc3BlbnQgb24gY3B1IHN1Ym1pdHRpbmcgdGhlIGFib3Zl
IHdvcmsgZm9yIHRoaXMgZnJhbWUKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVN
czsgLy8gdGltZSBzcGVudCB3YWl0aW5nIGZvciBydW5uaW5nIHN0YXJ0IChhcHBsaWNhdGlvbiBj
b3VsZCBoYXZlIHVzZWQgdGhpcyBtdWNoIG1vcmUgdGltZSkKKworICAgICAgIC8qKiBNaXNjZWxs
YW5lb3VzIG1lYXN1cmVkIGludGVydmFscy4gKi8KKyAgICAgICBmbG9hdCBtX2ZsQ2xpZW50RnJh
bWVJbnRlcnZhbE1zOyAvLyB0aW1lIGJldHdlZW4gY2FsbHMgdG8gV2FpdEdldFBvc2VzCisgICAg
ICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7IC8vIHRpbWUgYmxvY2tlZCBvbiBjYWxsIHRv
IHByZXNlbnQgKHVzdWFsbHkgMC4wLCBidXQgY2FuIGdvIGxvbmcpCisgICAgICAgZmxvYXQgbV9m
bFdhaXRGb3JQcmVzZW50Q3B1TXM7IC8vIHRpbWUgc3BlbnQgc3Bpbi13YWl0aW5nIGZvciBmcmFt
ZSBpbmRleCB0byBjaGFuZ2UgKG5vdCBuZWFyLXplcm8gaW5kaWNhdGVzIHdhaXQgb2JqZWN0IGZh
aWx1cmUpCisgICAgICAgZmxvYXQgbV9mbFN1Ym1pdEZyYW1lTXM7IC8vIHRpbWUgc3BlbnQgaW4g
SVZSQ29tcG9zaXRvcjo6U3VibWl0IChub3QgbmVhci16ZXJvIGluZGljYXRlcyBkcml2ZXIgaXNz
dWUpCisKKyAgICAgICAvKiogVGhlIGZvbGxvd2luZyBhcmUgYWxsIHJlbGF0aXZlIHRvIHRoaXMg
ZnJhbWUncyBTeXN0ZW1UaW1lSW5TZWNvbmRzICovCisgICAgICAgZmxvYXQgbV9mbFdhaXRHZXRQ
b3Nlc0NhbGxlZE1zOworICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAgICAg
ZmxvYXQgbV9mbE5ld0ZyYW1lUmVhZHlNczsgLy8gc2Vjb25kIGNhbGwgdG8gSVZSQ29tcG9zaXRv
cjo6U3VibWl0CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVTdGFydE1zOworICAg
ICAgIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgZmxvYXQgbV9mbENv
bXBvc2l0b3JSZW5kZXJTdGFydE1zOworCisgICAgICAgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3Qg
bV9IbWRQb3NlOyAvLyBwb3NlIHVzZWQgYnkgYXBwIHRvIHJlbmRlciB0aGlzIGZyYW1lCit9Owor
CisvKiogQ3VtdWxhdGl2ZSBzdGF0cyBmb3IgY3VycmVudCBhcHBsaWNhdGlvbi4gIFRoZXNlIGFy
ZSBub3QgY2xlYXJlZCB1bnRpbCBhIG5ldyBhcHAgY29ubmVjdHMsCisqIGJ1dCB0aGV5IGRvIHN0
b3AgYWNjdW11bGF0aW5nIG9uY2UgdGhlIGFzc29jaWF0ZWQgYXBwIGRpc2Nvbm5lY3RzLiAqLwor
c3RydWN0IENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMyX3QgbV9u
UGlkOyAvLyBQcm9jZXNzIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGVzZSBzdGF0cyAobWF5IG5vIGxv
bmdlciBiZSBydW5uaW5nKS4KKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzOyAv
LyB0b3RhbCBudW1iZXIgb2YgdGltZXMgd2UgY2FsbGVkIHByZXNlbnQgKGluY2x1ZGVzIHJlcHJv
amVjdGVkIGZyYW1lcykKKyAgICAgICB1aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzOyAvLyB0
b3RhbCBudW1iZXIgb2YgdGltZXMgYW4gb2xkIGZyYW1lIHdhcyByZS1zY2FubmVkIG91dCAod2l0
aG91dCByZXByb2plY3Rpb24pCisgICAgICAgdWludDMyX3QgbV9uTnVtUmVwcm9qZWN0ZWRGcmFt
ZXM7IC8vIHRvdGFsIG51bWJlciBvZiB0aW1lcyBhIGZyYW1lIHdhcyBzY2FubmVkIG91dCBhIHNl
Y29uZCB0aW1lICh3aXRoIHJlcHJvamVjdGlvbikKKworICAgICAgIC8qKiBWYWx1ZXMgcmVjb3Jk
ZWQgYXQgc3RhcnR1cCBiZWZvcmUgYXBwbGljYXRpb24gaGFzIGZ1bGx5IGZhZGVkIGluIHRoZSBm
aXJzdCB0aW1lLiAqLworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0
dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAg
ICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKworICAgICAgIC8q
KiBBcHBsaWNhdGlvbnMgbWF5IGV4cGxpY2l0bHkgZmFkZSB0byB0aGUgY29tcG9zaXRvci4gIFRo
aXMgaXMgdXN1YWxseSB0byBoYW5kbGUgbGV2ZWwgdHJhbnNpdGlvbnMsIGFuZCBsb2FkaW5nIG9m
dGVuIGNhdXNlcworICAgICAgICogc3lzdGVtIHdpZGUgaGl0Y2hlcy4gIFRoZSBmb2xsb3dpbmcg
c3RhdHMgYXJlIGNvbGxlY3RlZCBkdXJpbmcgdGhpcyBwZXJpb2QuICBEb2VzIG5vdCBpbmNsdWRl
IHZhbHVlcyByZWNvcmRlZCBkdXJpbmcgc3RhcnR1cC4gKi8KKyAgICAgICB1aW50MzJfdCBtX25O
dW1Mb2FkaW5nOworICAgICAgIHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOwor
ICAgICAgIHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHVpbnQz
Ml90IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKworICAgICAgIC8qKiBJZiB3ZSBk
b24ndCBnZXQgYSBuZXcgZnJhbWUgZnJvbSB0aGUgYXBwIGluIGxlc3MgdGhhbiAyLjUgZnJhbWVz
LCB0aGVuIHdlIGFzc3VtZSB0aGUgYXBwIGhhcyBodW5nIGFuZCBzdGFydAorICAgICAgICogZmFk
aW5nIGJhY2sgdG8gdGhlIGNvbXBvc2l0b3IuICBUaGUgZm9sbG93aW5nIHN0YXRzIGFyZSBhIHJl
c3VsdCBvZiB0aGlzLCBhbmQgYXJlIGEgc3Vic2V0IG9mIHRob3NlIHJlY29yZGVkIGFib3ZlLgor
ICAgICAgICogRG9lcyBub3QgaW5jbHVkZSB2YWx1ZXMgcmVjb3JkZWQgZHVyaW5nIHN0YXJ0IHVw
IG9yIGxvYWRpbmcuICovCisgICAgICAgdWludDMyX3QgbV9uTnVtVGltZWRPdXQ7CisgICAgICAg
dWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAgICAgIHVpbnQzMl90IG1f
bk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2pl
Y3RlZEZyYW1lc1RpbWVkT3V0OworfTsKKworI3ByYWdtYSBwYWNrKCBwb3AgKQorCisvKiogQWxs
b3dzIHRoZSBhcHBsaWNhdGlvbiB0byBpbnRlcmFjdCB3aXRoIHRoZSBjb21wb3NpdG9yICovCitj
bGFzcyBJVlJDb21wb3NpdG9yCit7CitwdWJsaWM6CisgICAgICAgLyoqIFNldHMgdHJhY2tpbmcg
c3BhY2UgcmV0dXJuZWQgYnkgV2FpdEdldFBvc2VzICovCisgICAgICAgdmlydHVhbCB2b2lkIFNl
dFRyYWNraW5nU3BhY2UoIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4gKSA9IDA7CisK
KyAgICAgICAvKiogR2V0cyBjdXJyZW50IHRyYWNraW5nIHNwYWNlIHJldHVybmVkIGJ5IFdhaXRH
ZXRQb3NlcyAqLworICAgICAgIHZpcnR1YWwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gR2V0VHJh
Y2tpbmdTcGFjZSgpID0gMDsKKworICAgICAgIC8qKiBTY2VuZSBhcHBsaWNhdGlvbnMgc2hvdWxk
IGNhbGwgdGhpcyBmdW5jdGlvbiB0byBnZXQgcG9zZXMgdG8gcmVuZGVyIHdpdGggKGFuZCBvcHRp
b25hbGx5IHBvc2VzIHByZWRpY3RlZCBhbiBhZGRpdGlvbmFsIGZyYW1lIG91dCB0byB1c2UgZm9y
IGdhbWVwbGF5KS4KKyAgICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCAicnVu
bmluZyBzdGFydCIgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGZyYW1lLCBh
bmQgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgbGFzdCBtb21lbnQgYmVmb3JlIG5lZWRpbmcgdG8K
KyAgICAgICAqIHN0YXJ0IHJlbmRlcmluZy4KKyAgICAgICAqCisgICAgICAgKiBSZXR1cm4gY29k
ZXM6CisgICAgICAgKiAgICAgICAtIElzTm90U2NlbmVBcHBsaWNhdGlvbiAobWFrZSBzdXJlIHRv
IGNhbGwgVlJfSW5pdCB3aXRoIFZSQXBwbGljYWl0b25fU2NlbmUpCisgICAgICAgKiAgICAgICAt
IERvTm90SGF2ZUZvY3VzIChzb21lIG90aGVyIGFwcCBoYXMgdGFrZW4gZm9jdXMgLSB0aGlzIHdp
bGwgdGhyb3R0bGUgdGhlIGNhbGwgdG8gMTBoeiB0byByZWR1Y2UgdGhlIGltcGFjdCBvbiB0aGF0
IGFwcCkKKyAgICAgICAqLworICAgICAgIHZpcnR1YWwgRVZSQ29tcG9zaXRvckVycm9yIFdhaXRH
ZXRQb3NlcyggVlJfQVJSQVlfQ09VTlQodW5SZW5kZXJQb3NlQXJyYXlDb3VudCkgVHJhY2tlZERl
dmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3QgdW5SZW5kZXJQb3NlQXJyYXlD
b3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQodW5HYW1lUG9zZUFycmF5Q291bnQp
IFRyYWNrZWREZXZpY2VQb3NlX3QqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3Nl
QXJyYXlDb3VudCApID0gMDsKKworICAgICAgIC8qKiBHZXQgdGhlIGxhc3Qgc2V0IG9mIHBvc2Vz
IHJldHVybmVkIGJ5IFdhaXRHZXRQb3Nlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0
b3JFcnJvciBHZXRMYXN0UG9zZXMoIFZSX0FSUkFZX0NPVU5UKCB1blJlbmRlclBvc2VBcnJheUNv
dW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcFJlbmRlclBvc2VBcnJheSwgdWludDMyX3QgdW5S
ZW5kZXJQb3NlQXJyYXlDb3VudCwKKyAgICAgICAgICAgICAgVlJfQVJSQVlfQ09VTlQoIHVuR2Ft
ZVBvc2VBcnJheUNvdW50ICkgVHJhY2tlZERldmljZVBvc2VfdCogcEdhbWVQb3NlQXJyYXksIHVp
bnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIEludGVyZmFj
ZSBmb3IgYWNjZXNzaW5nIGxhc3Qgc2V0IG9mIHBvc2VzIHJldHVybmVkIGJ5IFdhaXRHZXRQb3Nl
cyBvbmUgYXQgYSB0aW1lLgorICAgICAgICogUmV0dXJucyBWUkNvbXBvc2l0b3JFcnJvcl9JbmRl
eE91dE9mUmFuZ2UgaWYgdW5EZXZpY2VJbmRleCBub3QgbGVzcyB0aGFuIGtfdW5NYXhUcmFja2Vk
RGV2aWNlQ291bnQgb3RoZXJ3aXNlIFZSQ29tcG9zaXRvckVycm9yX05vbmUuCisgICAgICAgKiBJ
dCBpcyBva2F5IHRvIHBhc3MgTlVMTCBmb3IgZWl0aGVyIHBvc2UgaWYgeW91IG9ubHkgd2FudCBv
bmUgb2YgdGhlIHZhbHVlcy4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBH
ZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCggVHJhY2tlZERldmljZUluZGV4X3QgdW5E
ZXZpY2VJbmRleCwgVHJhY2tlZERldmljZVBvc2VfdCAqcE91dHB1dFBvc2UsIFRyYWNrZWREZXZp
Y2VQb3NlX3QgKnBPdXRwdXRHYW1lUG9zZSApID0gMDsKKworICAgICAgIC8qKiBVcGRhdGVkIHNj
ZW5lIHRleHR1cmUgdG8gZGlzcGxheS4gSWYgcEJvdW5kcyBpcyBOVUxMIHRoZSBlbnRpcmUgdGV4
dHVyZSB3aWxsIGJlIHVzZWQuICBJZiBjYWxsZWQgZnJvbSBhbiBPcGVuR0wgYXBwLCBjb25zaWRl
ciBhZGRpbmcgYSBnbEZsdXNoIGFmdGVyCisgICAgICAgKiBTdWJtaXR0aW5nIGJvdGggZnJhbWVz
IHRvIHNpZ25hbCB0aGUgZHJpdmVyIHRvIHN0YXJ0IHByb2Nlc3NpbmcsIG90aGVyd2lzZSBpdCBt
YXkgd2FpdCB1bnRpbCB0aGUgY29tbWFuZCBidWZmZXIgZmlsbHMgdXAsIGNhdXNpbmcgdGhlIGFw
cCB0byBtaXNzIGZyYW1lcy4KKyAgICAgICAqCisgICAgICAgKiBPcGVuR0wgZGlydHkgc3RhdGU6
CisgICAgICAgKiAgICAgICBnbEJpbmRUZXh0dXJlCisgICAgICAgKgorICAgICAgICogUmV0dXJu
IGNvZGVzOgorICAgICAgICogICAgICAgLSBJc05vdFNjZW5lQXBwbGljYXRpb24gKG1ha2Ugc3Vy
ZSB0byBjYWxsIFZSX0luaXQgd2l0aCBWUkFwcGxpY2FpdG9uX1NjZW5lKQorICAgICAgICogICAg
ICAgLSBEb05vdEhhdmVGb2N1cyAoc29tZSBvdGhlciBhcHAgaGFzIHRha2VuIGZvY3VzKQorICAg
ICAgICogICAgICAgLSBUZXh0dXJlSXNPbldyb25nRGV2aWNlIChhcHBsaWNhdGlvbiBkaWQgbm90
IHVzZSBwcm9wZXIgQWRhcHRlckluZGV4IC0gc2VlIElWUlN5c3RlbS5HZXREWEdJT3V0cHV0SW5m
bykKKyAgICAgICAqICAgICAgIC0gU2hhcmVkVGV4dHVyZXNOb3RTdXBwb3J0ZWQgKGFwcGxpY2F0
aW9uIG5lZWRzIHRvIGNhbGwgQ3JlYXRlRFhHSUZhY3RvcnkxIG9yIGxhdGVyIGJlZm9yZSBjcmVh
dGluZyBEWCBkZXZpY2UpCisgICAgICAgKiAgICAgICAtIFRleHR1cmVVc2VzVW5zdXBwb3J0ZWRG
b3JtYXQgKHNjZW5lIHRleHR1cmVzIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIERYR0kgc2hhcmlu
ZyBydWxlcyAtIGUuZy4gdW5jb21wcmVzc2VkLCBubyBtaXBzLCBldGMuKQorICAgICAgICogICAg
ICAgLSBJbnZhbGlkVGV4dHVyZSAodXN1YWxseSBtZWFucyBiYWQgYXJndW1lbnRzIHBhc3NlZCBp
bikKKyAgICAgICAqICAgICAgIC0gQWxyZWFkeVN1Ym1pdHRlZCAoYXBwIGhhcyBzdWJtaXR0ZWQg
dHdvIGxlZnQgdGV4dHVyZXMgb3IgdHdvIHJpZ2h0IHRleHR1cmVzIGluIGEgc2luZ2xlIGZyYW1l
IC0gaS5lLiBiZWZvcmUgY2FsbGluZyBXYWl0R2V0UG9zZXMgYWdhaW4pCisgICAgICAgKi8KKyAg
ICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTdWJtaXQoIEVWUkV5ZSBlRXllLCBjb25z
dCBUZXh0dXJlX3QgKnBUZXh0dXJlLCBjb25zdCBWUlRleHR1cmVCb3VuZHNfdCogcEJvdW5kcyA9
IDAsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyA9IFN1Ym1pdF9EZWZhdWx0ICkgPSAwOwor
CisgICAgICAgLyoqIENsZWFycyB0aGUgZnJhbWUgdGhhdCB3YXMgc2VudCB3aXRoIHRoZSBsYXN0
IGNhbGwgdG8gU3VibWl0LiBUaGlzIHdpbGwgY2F1c2UgdGhlIAorICAgICAgICogY29tcG9zaXRv
ciB0byBzaG93IHRoZSBncmlkIHVudGlsIFN1Ym1pdCBpcyBjYWxsZWQgYWdhaW4uICovCisgICAg
ICAgdmlydHVhbCB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkgPSAwOworCisgICAgICAg
LyoqIENhbGwgaW1tZWRpYXRlbHkgYWZ0ZXIgcHJlc2VudGluZyB5b3VyIGFwcCdzIHdpbmRvdyAo
aS5lLiBjb21wYW5pb24gd2luZG93KSB0byB1bmJsb2NrIHRoZSBjb21wb3NpdG9yLgorICAgICAg
ICogVGhpcyBpcyBhbiBvcHRpb25hbCBjYWxsLCB3aGljaCBvbmx5IG5lZWRzIHRvIGJlIHVzZWQg
aWYgeW91IGNhbid0IGluc3RlYWQgY2FsbCBXYWl0R2V0UG9zZXMgaW1tZWRpYXRlbHkgYWZ0ZXIg
UHJlc2VudC4KKyAgICAgICAqIEZvciBleGFtcGxlLCBpZiB5b3VyIGVuZ2luZSdzIHJlbmRlciBh
bmQgZ2FtZSBsb29wIGFyZSBub3Qgb24gc2VwYXJhdGUgdGhyZWFkcywgb3IgYmxvY2tpbmcgdGhl
IHJlbmRlciB0aHJlYWQgdW50aWwgM21zIGJlZm9yZSB0aGUgbmV4dCB2c3luYyB3b3VsZAorICAg
ICAgICogaW50cm9kdWNlIGEgZGVhZGxvY2sgb2Ygc29tZSBzb3J0LiAgVGhpcyBmdW5jdGlvbiB0
ZWxscyB0aGUgY29tcG9zaXRvciB0aGF0IHlvdSBoYXZlIGZpbmlzaGVkIGFsbCByZW5kZXJpbmcg
YWZ0ZXIgaGF2aW5nIFN1Ym1pdHRlZCBidWZmZXJzIGZvciBib3RoCisgICAgICAgKiBleWVzLCBh
bmQgaXQgaXMgZnJlZSB0byBzdGFydCBpdHMgcmVuZGVyaW5nIHdvcmsuICBUaGlzIHNob3VsZCBv
bmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZCB5b3UgYXJlIHJlbmRlcmluZyBvbi4g
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkgPSAwOworCisgICAg
ICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aW1pbmcgZGF0YSBpcyBmaWxsZWQgaXQuICBTZXRzIG9s
ZGVzdCB0aW1pbmcgaW5mbyBpZiBuRnJhbWVzQWdvIGlzIGxhcmdlciB0aGFuIHRoZSBzdG9yZWQg
aGlzdG9yeS4KKyAgICAgICAqIEJlIHN1cmUgdG8gc2V0IHRpbWluZy5zaXplID0gc2l6ZW9mKENv
bXBvc2l0b3JfRnJhbWVUaW1pbmcpIG9uIHN0cnVjdCBwYXNzZWQgaW4gYmVmb3JlIGNhbGxpbmcg
dGhpcyBmdW5jdGlvbi4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgR2V0RnJhbWVUaW1pbmcoIENv
bXBvc2l0b3JfRnJhbWVUaW1pbmcgKnBUaW1pbmcsIHVpbnQzMl90IHVuRnJhbWVzQWdvID0gMCAp
ID0gMDsKKworICAgICAgIC8qKiBJbnRlcmZhY2UgZm9yIGNvcHlpbmcgYSByYW5nZSBvZiB0aW1p
bmcgZGF0YS4gIEZyYW1lcyBhcmUgcmV0dXJuZWQgaW4gYXNjZW5kaW5nIG9yZGVyIChvbGRlc3Qg
dG8gbmV3ZXN0KSB3aXRoIHRoZSBsYXN0IGJlaW5nIHRoZSBtb3N0IHJlY2VudCBmcmFtZS4KKyAg
ICAgICAqIE9ubHkgdGhlIGZpcnN0IGVudHJ5J3MgbV9uU2l6ZSBuZWVkcyB0byBiZSBzZXQsIGFz
IHRoZSByZXN0IHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGF0LiAgUmV0dXJucyB0b3RhbCBudW1i
ZXIgb2YgZW50cmllcyBmaWxsZWQgb3V0LiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
RnJhbWVUaW1pbmdzKCBDb21wb3NpdG9yX0ZyYW1lVGltaW5nICpwVGltaW5nLCB1aW50MzJfdCBu
RnJhbWVzICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHRpbWUgaW4gc2Vjb25kcyBs
ZWZ0IGluIHRoZSBjdXJyZW50IChhcyBpZGVudGlmaWVkIGJ5IEZyYW1lVGltaW5nJ3MgZnJhbWVJ
bmRleCkgZnJhbWUuCisgICAgICAgKiBEdWUgdG8gInJ1bm5pbmcgc3RhcnQiLCB0aGlzIHZhbHVl
IG1heSByb2xsIG92ZXIgdG8gdGhlIG5leHQgZnJhbWUgYmVmb3JlIGV2ZXIgcmVhY2hpbmcgMC4w
LiAqLworICAgICAgIHZpcnR1YWwgZmxvYXQgR2V0RnJhbWVUaW1lUmVtYWluaW5nKCkgPSAwOwor
CisgICAgICAgLyoqIEZpbGxzIG91dCBzdGF0cyBhY2N1bXVsYXRlZCBmb3IgdGhlIGxhc3QgY29u
bmVjdGVkIGFwcGxpY2F0aW9uLiAgUGFzcyBpbiBzaXplb2YoIENvbXBvc2l0b3JfQ3VtdWxhdGl2
ZVN0YXRzICkgYXMgc2Vjb25kIHBhcmFtZXRlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgR2V0
Q3VtdWxhdGl2ZVN0YXRzKCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqcFN0YXRzLCB1aW50
MzJfdCBuU3RhdHNTaXplSW5CeXRlcyApID0gMDsKKworICAgICAgIC8qKiBGYWRlcyB0aGUgdmll
dyBvbiB0aGUgSE1EIHRvIHRoZSBzcGVjaWZpZWQgY29sb3IuIFRoZSBmYWRlIHdpbGwgdGFrZSBm
U2Vjb25kcywgYW5kIHRoZSBjb2xvciB2YWx1ZXMgYXJlIGJldHdlZW4KKyAgICAgICAqIDAuMCBh
bmQgMS4wLiBUaGlzIGNvbG9yIGlzIGZhZGVkIG9uIHRvcCBvZiB0aGUgc2NlbmUgYmFzZWQgb24g
dGhlIGFscGhhIHBhcmFtZXRlci4gUmVtb3ZpbmcgdGhlIGZhZGUgY29sb3IgaW5zdGFudGx5IAor
ICAgICAgICogd291bGQgYmUgRmFkZVRvQ29sb3IoIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wICku
ICBWYWx1ZXMgYXJlIGluIHVuLXByZW11bHRpcGxpZWQgYWxwaGEgc3BhY2UuICovCisgICAgICAg
dmlydHVhbCB2b2lkIEZhZGVUb0NvbG9yKCBmbG9hdCBmU2Vjb25kcywgZmxvYXQgZlJlZCwgZmxv
YXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSwgZmxvYXQgZkFscGhhLCBib29sIGJCYWNrZ3JvdW5kID0g
ZmFsc2UgKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1cnJlbnQgZmFkZSBjb2xvciB2YWx1ZS4g
Ki8KKyAgICAgICB2aXJ0dWFsIEhtZENvbG9yX3QgR2V0Q3VycmVudEZhZGVDb2xvciggYm9vbCBi
QmFja2dyb3VuZCA9IGZhbHNlICkgPSAwOworCisgICAgICAgLyoqIEZhZGluZyB0aGUgR3JpZCBp
biBvciBvdXQgaW4gZlNlY29uZHMgKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRmFkZUdyaWQoIGZs
b2F0IGZTZWNvbmRzLCBib29sIGJGYWRlSW4gKSA9IDA7CisKKyAgICAgICAvKiogR2V0IGN1cnJl
bnQgYWxwaGEgdmFsdWUgb2YgZ3JpZC4gKi8KKyAgICAgICB2aXJ0dWFsIGZsb2F0IEdldEN1cnJl
bnRHcmlkQWxwaGEoKSA9IDA7CisKKyAgICAgICAvKiogT3ZlcnJpZGUgdGhlIHNreWJveCB1c2Vk
IGluIHRoZSBjb21wb3NpdG9yIChlLmcuIGZvciBkdXJpbmcgbGV2ZWwgbG9hZHMgd2hlbiB0aGUg
YXBwIGNhbid0IGZlZWQgc2NlbmUgaW1hZ2VzIGZhc3QgZW5vdWdoKQorICAgICAgICogT3JkZXIg
aXMgRnJvbnQsIEJhY2ssIExlZnQsIFJpZ2h0LCBUb3AsIEJvdHRvbS4gIElmIG9ubHkgYSBzaW5n
bGUgdGV4dHVyZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgaW4gbGF0LWxvbmcgZm9ybWF0Lgor
ICAgICAgICogSWYgdHdvIGFyZSBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgYSBsYXQtbG9uZyBzdGVy
ZW8gcGFpci4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkNvbXBvc2l0b3JFcnJvciBTZXRTa3lib3hP
dmVycmlkZSggVlJfQVJSQVlfQ09VTlQoIHVuVGV4dHVyZUNvdW50ICkgY29uc3QgVGV4dHVyZV90
ICpwVGV4dHVyZXMsIHVpbnQzMl90IHVuVGV4dHVyZUNvdW50ICkgPSAwOworCisgICAgICAgLyoq
IFJlc2V0cyBjb21wb3NpdG9yIHNreWJveCBiYWNrIHRvIGRlZmF1bHRzLiAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBDbGVhclNreWJveE92ZXJyaWRlKCkgPSAwOworCisgICAgICAgLyoqIEJyaW5n
cyB0aGUgY29tcG9zaXRvciB3aW5kb3cgdG8gdGhlIGZyb250LiBUaGlzIGlzIHVzZWZ1bCBmb3Ig
Y292ZXJpbmcgYW55IG90aGVyIHdpbmRvdyB0aGF0IG1heSBiZSBvbiB0aGUgSE1ECisgICAgICAg
KiBhbmQgaXMgb2JzY3VyaW5nIHRoZSBjb21wb3NpdG9yIHdpbmRvdy4gKi8KKyAgICAgICB2aXJ0
dWFsIHZvaWQgQ29tcG9zaXRvckJyaW5nVG9Gcm9udCgpID0gMDsKKworICAgICAgIC8qKiBQdXNo
ZXMgdGhlIGNvbXBvc2l0b3Igd2luZG93IHRvIHRoZSBiYWNrLiBUaGlzIGlzIHVzZWZ1bCBmb3Ig
YWxsb3dpbmcgb3RoZXIgYXBwbGljYXRpb25zIHRvIGRyYXcgZGlyZWN0bHkgdG8gdGhlIEhNRC4g
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgQ29tcG9zaXRvckdvVG9CYWNrKCkgPSAwOworCisgICAg
ICAgLyoqIFRlbGxzIHRoZSBjb21wb3NpdG9yIHByb2Nlc3MgdG8gY2xlYW4gdXAgYW5kIGV4aXQu
IFlvdSBkbyBub3QgbmVlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gYXQgc2h1dGRvd24uIFVuZGVy
IG5vcm1hbCAKKyAgICAgICAqIGNpcmN1bXN0YW5jZXMgdGhlIGNvbXBvc2l0b3Igd2lsbCBtYW5h
Z2UgaXRzIG93biBsaWZlIGN5Y2xlIGJhc2VkIG9uIHdoYXQgYXBwbGljYXRpb25zIGFyZSBydW5u
aW5nLiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDb21wb3NpdG9yUXVpdCgpID0gMDsKKyAgICAg
ICAKKyAgICAgICAvKiogUmV0dXJuIHdoZXRoZXIgdGhlIGNvbXBvc2l0b3IgaXMgZnVsbHNjcmVl
biAqLworICAgICAgIHZpcnR1YWwgYm9vbCBJc0Z1bGxzY3JlZW4oKSA9IDA7CisKKyAgICAgICAv
KiogUmV0dXJucyB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IGlzIGN1cnJlbnRs
eSByZW5kZXJpbmcgdGhlIHNjZW5lICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRDdXJy
ZW50U2NlbmVGb2N1c1Byb2Nlc3MoKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0aGUgcHJv
Y2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0aGF0IHJlbmRlcmVkIHRoZSBsYXN0IGZyYW1lIChvciAw
IGlmIHRoZSBjb21wb3NpdG9yIGl0c2VsZiByZW5kZXJlZCB0aGUgZnJhbWUuKQorICAgICAgICog
UmV0dXJucyAwIHdoZW4gZmFkaW5nIG91dCBmcm9tIGFuIGFwcCBhbmQgdGhlIGFwcCdzIHByb2Nl
c3MgSWQgd2hlbiBmYWRpbmcgaW50byBhbiBhcHAuICovCisgICAgICAgdmlydHVhbCB1aW50MzJf
dCBHZXRMYXN0RnJhbWVSZW5kZXJlcigpID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIHRydWUg
aWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBoYXMgdGhlIHNjZW5lIGZvY3VzICovCisgICAgICAgdmly
dHVhbCBib29sIENhblJlbmRlclNjZW5lKCkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMgYSB3
aW5kb3cgb24gdGhlIHByaW1hcnkgbW9uaXRvciB0byBkaXNwbGF5IHdoYXQgaXMgYmVpbmcgc2hv
d24gaW4gdGhlIGhlYWRzZXQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNob3dNaXJyb3JXaW5k
b3coKSA9IDA7CisKKyAgICAgICAvKiogQ2xvc2VzIHRoZSBtaXJyb3Igd2luZG93LiAqLworICAg
ICAgIHZpcnR1YWwgdm9pZCBIaWRlTWlycm9yV2luZG93KCkgPSAwOworCisgICAgICAgLyoqIFJl
dHVybnMgdHJ1ZSBpZiB0aGUgbWlycm9yIHdpbmRvdyBpcyBzaG93bi4gKi8KKyAgICAgICB2aXJ0
dWFsIGJvb2wgSXNNaXJyb3JXaW5kb3dWaXNpYmxlKCkgPSAwOworCisgICAgICAgLyoqIFdyaXRl
cyBhbGwgaW1hZ2VzIHRoYXQgdGhlIGNvbXBvc2l0b3Iga25vd3MgYWJvdXQgKGluY2x1ZGluZyBv
dmVybGF5cykgdG8gYSAnc2NyZWVuc2hvdHMnIGZvbGRlciBpbiB0aGUgU3RlYW1WUiBydW50aW1l
IHJvb3QuICovCisgICAgICAgdmlydHVhbCB2b2lkIENvbXBvc2l0b3JEdW1wSW1hZ2VzKCkgPSAw
OworCisgICAgICAgLyoqIExldCBhbiBhcHAga25vdyBpdCBzaG91bGQgYmUgcmVuZGVyaW5nIHdp
dGggbG93IHJlc291cmNlcy4gKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgU2hvdWxkQXBwUmVuZGVy
V2l0aExvd1Jlc291cmNlcygpID0gMDsKKworICAgICAgIC8qKiBPdmVycmlkZSBpbnRlcmxlYXZl
ZCByZXByb2plY3Rpb24gbG9naWMgdG8gZm9yY2Ugb24uICovCisgICAgICAgdmlydHVhbCB2b2lk
IEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbiggYm9vbCBiT3ZlcnJpZGUgKSA9IDA7CisK
KyAgICAgICAvKiogRm9yY2UgcmVjb25uZWN0aW5nIHRvIHRoZSBjb21wb3NpdG9yIHByb2Nlc3Mu
ICovCisgICAgICAgdmlydHVhbCB2b2lkIEZvcmNlUmVjb25uZWN0UHJvY2VzcygpID0gMDsKKwor
ICAgICAgIC8qKiBUZW1wb3JhcmlseSBzdXNwZW5kcyByZW5kZXJpbmcgKHVzZWZ1bCBmb3IgZmlu
ZXIgY29udHJvbCBvdmVyIHNjZW5lIHRyYW5zaXRpb25zKS4gKi8KKyAgICAgICB2aXJ0dWFsIHZv
aWQgU3VzcGVuZFJlbmRlcmluZyggYm9vbCBiU3VzcGVuZCApID0gMDsKKworICAgICAgIC8qKiBP
cGVucyBhIHNoYXJlZCBEM0QxMSB0ZXh0dXJlIHdpdGggdGhlIHVuZGlzdG9ydGVkIGNvbXBvc2l0
ZWQgaW1hZ2UgZm9yIGVhY2ggZXllLiAgVXNlIFJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEgd2hl
biBmaW5pc2hlZAorICAgICAgICogaW5zdGVhZCBvZiBjYWxsaW5nIFJlbGVhc2Ugb24gdGhlIHJl
c291cmNlIGl0c2VsZi4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJDb21wb3NpdG9yRXJyb3Ig
R2V0TWlycm9yVGV4dHVyZUQzRDExKCB2cjo6RVZSRXllIGVFeWUsIHZvaWQgKnBEM0QxMURldmlj
ZU9yUmVzb3VyY2UsIHZvaWQgKipwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICkgPSAwOworICAg
ICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKCB2b2lkICpwRDNEMTFT
aGFkZXJSZXNvdXJjZVZpZXcgKSA9IDA7CisKKyAgICAgICAvKiogQWNjZXNzIHRvIG1pcnJvciB0
ZXh0dXJlcyBmcm9tIE9wZW5HTC4gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJDb21wb3NpdG9y
RXJyb3IgR2V0TWlycm9yVGV4dHVyZUdMKCB2cjo6RVZSRXllIGVFeWUsIHZyOjpnbFVJbnRfdCAq
cGdsVGV4dHVyZUlkLCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKnBnbFNoYXJlZFRleHR1
cmVIYW5kbGUgKSA9IDA7CisgICAgICAgdmlydHVhbCBib29sIFJlbGVhc2VTaGFyZWRHTFRleHR1
cmUoIHZyOjpnbFVJbnRfdCBnbFRleHR1cmVJZCwgdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90
IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgTG9ja0dM
U2hhcmVkVGV4dHVyZUZvckFjY2VzcyggdnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90IGdsU2hh
cmVkVGV4dHVyZUhhbmRsZSApID0gMDsKKyAgICAgICB2aXJ0dWFsIHZvaWQgVW5sb2NrR0xTaGFy
ZWRUZXh0dXJlRm9yQWNjZXNzKCB2cjo6Z2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlICkgPSAwOworCisgICAgICAgLyoqIFtWdWxrYW4gT25seV0KKyAgICAgICAq
IHJldHVybiAwLiBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBudW1iZXIg
b2YgYnl0ZXMgbmVjZXNzYXJ5IHRvIGhvbGQgdGhpcyBzdHJpbmcgaW5jbHVkaW5nIHRoZSB0cmFp
bGluZworICAgICAgICogbnVsbC4gIFRoZSBzdHJpbmcgd2lsbCBiZSBhIHNwYWNlIHNlcGFyYXRl
ZCBsaXN0IG9mLXJlcXVpcmVkIGluc3RhbmNlIGV4dGVuc2lvbnMgdG8gZW5hYmxlIGluIFZrQ3Jl
YXRlSW5zdGFuY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFZ1bGthbkluc3RhbmNl
RXh0ZW5zaW9uc1JlcXVpcmVkKCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQz
Ml90IHVuQnVmZmVyU2l6ZSApID0gMDsKKworICAgICAgIC8qKiBbVnVsa2FuIG9ubHldCisgICAg
ICAgKiByZXR1cm4gMC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbnVt
YmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1ZGluZyB0aGUg
dHJhaWxpbmcKKyAgICAgICAqIG51bGwuICBUaGUgc3RyaW5nIHdpbGwgYmUgYSBzcGFjZSBzZXBh
cmF0ZWQgbGlzdCBvZiByZXF1aXJlZCBkZXZpY2UgZXh0ZW5zaW9ucyB0byBlbmFibGUgaW4gVmtD
cmVhdGVEZXZpY2UgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFZ1bGthbkRldmljZUV4
dGVuc2lvbnNSZXF1aXJlZCggVmtQaHlzaWNhbERldmljZV9UICpwUGh5c2ljYWxEZXZpY2UsIFZS
X09VVF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkgPSAw
OworCisgICAgICAgLyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogVGhlcmUgYXJl
IHR3byBwdXJwb3NlcyBmb3IgU2V0RXhwbGljaXRUaW1pbmdNb2RlOgorICAgICAgICogICAgICAg
MS4gVG8gZ2V0IGEgbW9yZSBhY2N1cmF0ZSBHUFUgdGltZXN0YW1wIGZvciB3aGVuIHRoZSBmcmFt
ZSBiZWdpbnMgaW4gVnVsa2FuL0QzRDEyIGFwcGxpY2F0aW9ucy4KKyAgICAgICAqICAgICAgIDIu
IChPcHRpb25hbCkgVG8gYXZvaWQgaGF2aW5nIFdhaXRHZXRQb3NlcyBhY2Nlc3MgdGhlIFZ1bGth
biBxdWV1ZSBzbyB0aGF0IHRoZSBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQgZnJvbQorICAgICAgICog
ICAgICAgYW5vdGhlciB0aHJlYWQgd2hpbGUgV2FpdEdldFBvc2VzIGlzIGV4ZWN1dGluZy4KKyAg
ICAgICAqCisgICAgICAgKiBNb3JlIGFjY3VyYXRlIEdQVSB0aW1lc3RhbXAgZm9yIHRoZSBzdGFy
dCBvZiB0aGUgZnJhbWUgaXMgYWNoaWV2ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGNhbGxpbmcKKyAg
ICAgICAqIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSBpbW1lZGlhdGVseSBiZWZvcmUgaXRzIGZp
cnN0IHN1Ym1pc3Npb24gdG8gdGhlIFZ1bGthbi9EM0QxMiBxdWV1ZS4KKyAgICAgICAqIFRoaXMg
aXMgbW9yZSBhY2N1cmF0ZSBiZWNhdXNlIG5vcm1hbGx5IHRoaXMgR1BVIHRpbWVzdGFtcCBpcyBy
ZWNvcmRlZCBkdXJpbmcgV2FpdEdldFBvc2VzLiAgSW4gRDNEMTEsIAorICAgICAgICogV2FpdEdl
dFBvc2VzIHF1ZXVlcyBhIEdQVSB0aW1lc3RhbXAgd3JpdGUsIGJ1dCBpdCBkb2VzIG5vdCBhY3R1
YWxseSBnZXQgc3VibWl0dGVkIHRvIHRoZSBHUFUgdW50aWwgdGhlIAorICAgICAgICogYXBwbGlj
YXRpb24gZmx1c2hlcy4gIEJ5IHVzaW5nIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSwgdGhlIHRp
bWVzdGFtcCBpcyByZWNvcmRlZCBhdCB0aGUgc2FtZSBwbGFjZSBmb3IgCisgICAgICAgKiBWdWxr
YW4vRDNEMTIgYXMgaXQgaXMgZm9yIEQzRDExLCByZXN1bHRpbmcgaW4gYSBtb3JlIGFjY3VyYXRl
IEdQVSB0aW1lIG1lYXN1cmVtZW50IGZvciB0aGUgZnJhbWUuCisgICAgICAgKgorICAgICAgICog
QXZvaWRpbmcgV2FpdEdldFBvc2VzIGFjY2Vzc2luZyB0aGUgVnVsa2FuIHF1ZXVlIGNhbiBiZSBh
Y2hpZXZlZCB1c2luZyBTZXRFeHBsaWNpdFRpbWluZ01vZGUgYXMgd2VsbC4gIElmIHRoaXMgaXMg
ZGVzaXJlZCwKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbiAqTVVTVCogY2FsbCBQb3N0UHJlc2Vu
dEhhbmRvZmYgaXRzZWxmIHByaW9yIHRvIFdhaXRHZXRQb3Nlcy4gIElmIFNldEV4cGxpY2l0VGlt
aW5nTW9kZSBpcyB0cnVlIGFuZCB0aGUKKyAgICAgICAqIGFwcGxpY2F0aW9uIGNhbGxzIFBvc3RQ
cmVzZW50SGFuZG9mZiwgdGhlbiBXYWl0R2V0UG9zZXMgaXMgZ3VhcmFudGVlZCBub3QgdG8gYWNj
ZXNzIHRoZSBxdWV1ZS4gIE5vdGUgdGhhdCBQb3N0UHJlc2VudEhhbmRvZmYKKyAgICAgICAqIGFu
ZCBTdWJtaXRFeHBsaWNpdFRpbWluZ0RhdGEgd2lsbCBhY2Nlc3MgdGhlIHF1ZXVlLCBzbyBvbmx5
IFdhaXRHZXRQb3NlcyBiZWNvbWVzIHNhZmUgZm9yIGFjY2Vzc2luZyB0aGUgcXVldWUgZnJvbSBh
bm90aGVyCisgICAgICAgKiB0aHJlYWQuICovCisgICAgICAgdmlydHVhbCB2b2lkIFNldEV4cGxp
Y2l0VGltaW5nTW9kZSggYm9vbCBiRXhwbGljaXRUaW1pbmdNb2RlICkgPSAwOworCisgICAgICAg
LyoqIFsgVnVsa2FuL0QzRDEyIE9ubHkgXQorICAgICAgICogU3VibWl0IGV4cGxpY2l0IHRpbWlu
ZyBkYXRhLiAgV2hlbiBTZXRFeHBsaWNpdFRpbWluZ01vZGUgaXMgdHJ1ZSwgdGhpcyBtdXN0IGJl
IGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUKKyAgICAgICAqIHRoZSBhcHBsaWNhdGlvbidzIGZp
cnN0IHZrUXVldWVTdWJtaXQgKFZ1bGthbikgb3IgSUQzRDEyQ29tbWFuZFF1ZXVlOjpFeGVjdXRl
Q29tbWFuZExpc3RzIChEM0QxMikgb2YgZWFjaCBmcmFtZS4KKyAgICAgICAqIFRoaXMgZnVuY3Rp
b24gd2lsbCBpbnNlcnQgYSBHUFUgdGltZXN0YW1wIHdyaXRlIGp1c3QgYmVmb3JlIHRoZSBhcHBs
aWNhdGlvbiBzdGFydHMgaXRzIHJlbmRlcmluZy4gIFRoaXMgZnVuY3Rpb24KKyAgICAgICAqIHdp
bGwgcGVyZm9ybSBhIHZrUXVldWVTdWJtaXQgb24gVnVsa2FuIHNvIG11c3Qgbm90IGJlIGRvbmUg
c2ltdWx0YW5lb3VzbHkgd2l0aCBWa1F1ZXVlIG9wZXJhdGlvbnMgb24gYW5vdGhlciB0aHJlYWQu
CisgICAgICAgKiBSZXR1cm5zIFZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQgaWYgU2V0
RXhwbGljaXRUaW1pbmdNb2RlIGlzIG5vdCBlbmFibGVkLiAqLworICAgICAgIHZpcnR1YWwgRVZS
Q29tcG9zaXRvckVycm9yIFN1Ym1pdEV4cGxpY2l0VGltaW5nRGF0YSgpID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBv
c2l0b3JfMDIxIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworCisKKy8vIGl2cm5vdGlmaWNhdGlv
bnMuaAorbmFtZXNwYWNlIHZyCit7CisKKyNwcmFnbWEgcGFjayggcHVzaCwgOCApCisKKy8vIFVz
ZWQgZm9yIHBhc3NpbmcgZ3JhcGhpYyBkYXRhCitzdHJ1Y3QgTm90aWZpY2F0aW9uQml0bWFwX3QK
K3sKKyAgICAgICBOb3RpZmljYXRpb25CaXRtYXBfdCgpCisgICAgICAgICAgICAgIDogbV9wSW1h
Z2VEYXRhKCBudWxscHRyICkKKyAgICAgICAgICAgICAgLCBtX25XaWR0aCggMCApCisgICAgICAg
ICAgICAgICwgbV9uSGVpZ2h0KCAwICkKKyAgICAgICAgICAgICAgLCBtX25CeXRlc1BlclBpeGVs
KCAwICkKKyAgICAgICB7CisgICAgICAgfTsKKworICAgICAgIHZvaWQgKm1fcEltYWdlRGF0YTsK
KyAgICAgICBpbnQzMl90IG1fbldpZHRoOworICAgICAgIGludDMyX3QgbV9uSGVpZ2h0OworICAg
ICAgIGludDMyX3QgbV9uQnl0ZXNQZXJQaXhlbDsKK307CisKKworLyoqIEJlIGF3YXJlIHRoYXQg
dGhlIG5vdGlmaWNhdGlvbiB0eXBlIGlzIHVzZWQgYXMgJ3ByaW9yaXR5JyB0byBwaWNrIHRoZSBu
ZXh0IG5vdGlmaWNhdGlvbiAqLworZW51bSBFVlJOb3RpZmljYXRpb25UeXBlCit7CisgICAgICAg
LyoqIFRyYW5zaWVudCBub3RpZmljYXRpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGhpZGRlbiBhZnRl
ciBhIHBlcmlvZCBvZiB0aW1lIHNldCBieSB0aGUgdXNlci4gCisgICAgICAgKiBUaGV5IGFyZSB1
c2VkIGZvciB0aGluZ3MgbGlrZSBpbmZvcm1hdGlvbiBhbmQgY2hhdCBtZXNzYWdlcyB0aGF0IGRv
IG5vdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24uICovCisgICAgICAgRVZSTm90aWZpY2F0aW9u
VHlwZV9UcmFuc2llbnQgPSAwLAorCisgICAgICAgLyoqIFBlcnNpc3RlbnQgbm90aWZpY2F0aW9u
cyBhcmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhleSBhcmUgaGlkZGVuIGJ5IGNhbGxpbmcg
UmVtb3ZlTm90aWZpY2F0aW9uKCkuCisgICAgICAgKiBUaGV5IGFyZSB1c2VkIGZvciB0aGluZ3Mg
bGlrZSBwaG9uZSBjYWxscyBhbmQgYWxhcm1zIHRoYXQgcmVxdWlyZSB1c2VyIGludGVyYWN0aW9u
LiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCA9IDEsCisKKyAgICAg
ICAvKiogU3lzdGVtIG5vdGlmaWNhdGlvbnMgYXJlIHNob3duIG5vIG1hdHRlciB3aGF0LiBJdCBp
cyBleHBlY3RlZCwgdGhhdCB0aGUgdWxVc2VyVmFsdWUgaXMgdXNlZCBhcyBJRC4KKyAgICAgICAg
KiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc3lzdGVtIG5vdGlmaWNhdGlvbiBpbiB0aGUgcXVldWUg
d2l0aCB0aGF0IElEIGl0IGlzIG5vdCBhY2NlcHRlZCBpbnRvIHRoZSBxdWV1ZQorICAgICAgICAq
IHRvIHByZXZlbnQgc3BhbW1pbmcgd2l0aCBzeXN0ZW0gbm90aWZpY2F0aW9uICovCisgICAgICAg
RVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJWYWx1ZSA9IDIsCit9
OworCitlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAgICAgLyoqIENyZWF0ZXMgYSBu
b3RpZmljYXRpb24gd2l0aCBtaW5pbWFsIGV4dGVybmFsIHN0eWxpbmcuICovCisgICAgICAgRVZS
Tm90aWZpY2F0aW9uU3R5bGVfTm9uZSA9IDAsCisKKyAgICAgICAvKiogVXNlZCBmb3Igbm90aWZp
Y2F0aW9ucyBhYm91dCBvdmVybGF5LWxldmVsIHN0YXR1cy4gSW4gU3RlYW0gdGhpcyBpcyB1c2Vk
IGZvciBldmVudHMgbGlrZSBkb3dubG9hZHMgY29tcGxldGluZy4gKi8KKyAgICAgICBFVlJOb3Rp
ZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiA9IDEwMCwKKworICAgICAgIC8qKiBVc2VkIGZvciBu
b3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQgYXJlIHVua25vd24gb3Igbm90IGF2YWls
YWJsZS4gSW4gU3RlYW0gdGhpcyBpcyB1c2VkIGZvciBmcmllbmQgaW52aXRhdGlvbnMgYW5kIG9m
ZmxpbmUgZnJpZW5kcy4gKi8KKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Rp
c2FibGVkID0gMjAwLAorCisgICAgICAgLyoqIFVzZWQgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQg
Y29udGFjdHMgdGhhdCBhcmUgYXZhaWxhYmxlIGJ1dCBpbmFjdGl2ZS4gSW4gU3RlYW0gdGhpcyBp
cyB1c2VkIGZvciBmcmllbmRzIHRoYXQgYXJlIG9ubGluZSBidXQgbm90IHBsYXlpbmcgYSBnYW1l
LiAqLworICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5hYmxlZCA9IDIwMSwK
KworICAgICAgIC8qKiBVc2VkIGZvciBub3RpZmljYXRpb25zIGFib3V0IGNvbnRhY3RzIHRoYXQg
YXJlIGF2YWlsYWJsZSBhbmQgYWN0aXZlLiBJbiBTdGVhbSB0aGlzIGlzIHVzZWQgZm9yIGZyaWVu
ZHMgdGhhdCBhcmUgb25saW5lIGFuZCBjdXJyZW50bHkgcnVubmluZyBhIGdhbWUuICovCisgICAg
ICAgRVZSTm90aWZpY2F0aW9uU3R5bGVfQ29udGFjdF9BY3RpdmUgPSAyMDIsCit9OworCitzdGF0
aWMgY29uc3QgdWludDMyX3Qga191bk5vdGlmaWNhdGlvblRleHRNYXhTaXplID0gMjU2OworCit0
eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7CisKKworCisjcHJhZ21hIHBhY2soIHBv
cCApCisKKy8qKiBBbGxvd3Mgbm90aWZpY2F0aW9uIHNvdXJjZXMgdG8gaW50ZXJhY3Qgd2l0aCB0
aGUgVlIgc3lzdGVtCisgICAgICAgVGhpcyBjdXJyZW50IGludGVyZmFjZSBpcyBub3QgeWV0IGlt
cGxlbWVudGVkLiBEbyBub3QgdXNlIHlldC4gKi8KK2NsYXNzIElWUk5vdGlmaWNhdGlvbnMKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogQ3JlYXRlIGEgbm90aWZpY2F0aW9uIGFuZCBlbnF1ZXVlIGl0
IHRvIGJlIHNob3duIHRvIHRoZSB1c2VyLgorICAgICAgICogQW4gb3ZlcmxheSBoYW5kbGUgaXMg
cmVxdWlyZWQgdG8gY3JlYXRlIGEgbm90aWZpY2F0aW9uLCBhcyBvdGhlcndpc2UgaXQgd291bGQg
YmUgaW1wb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGFjdCBvbiBpdC4KKyAgICAgICAqIFRvIGNyZWF0
ZSBhIHR3by1saW5lIG5vdGlmaWNhdGlvbiwgdXNlIGEgbGluZSBicmVhayAoJ1xuJykgdG8gc3Bs
aXQgdGhlIHRleHQgaW50byB0d28gbGluZXMuCisgICAgICAgKiBUaGUgcEltYWdlIGFyZ3VtZW50
IG1heSBiZSBOVUxMLCBpbiB3aGljaCBjYXNlIHRoZSBzcGVjaWZpZWQgb3ZlcmxheSdzIGljb24g
d2lsbCBiZSB1c2VkIGluc3RlYWQuICovCisgICAgICAgdmlydHVhbCBFVlJOb3RpZmljYXRpb25F
cnJvciBDcmVhdGVOb3RpZmljYXRpb24oIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgdWludDY0X3QgdWxVc2VyVmFsdWUsIEVWUk5vdGlmaWNhdGlvblR5cGUgdHlwZSwgY29uc3Qg
Y2hhciAqcGNoVGV4dCwgRVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIGNvbnN0IE5vdGlmaWNh
dGlvbkJpdG1hcF90ICpwSW1hZ2UsIC8qIG91dCAqLyBWUk5vdGlmaWNhdGlvbklkICpwTm90aWZp
Y2F0aW9uSWQgKSA9IDA7CisKKyAgICAgICAvKiogRGVzdHJveSBhIG5vdGlmaWNhdGlvbiwgaGlk
aW5nIGl0IGZpcnN0IGlmIGl0IGN1cnJlbnRseSBzaG93biB0byB0aGUgdXNlci4gKi8KKyAgICAg
ICB2aXJ0dWFsIEVWUk5vdGlmaWNhdGlvbkVycm9yIFJlbW92ZU5vdGlmaWNhdGlvbiggVlJOb3Rp
ZmljYXRpb25JZCBub3RpZmljYXRpb25JZCApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBJVlJOb3RpZmljYXRpb25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18w
MDIiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZyb3ZlcmxheS5oCituYW1lc3Bh
Y2UgdnIKK3sKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gb3ZlcmxheSBr
ZXkgaW4gYnl0ZXMsIGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4gKi8K
KyAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qga191blZST3ZlcmxheU1heEtleUxlbmd0aCA9
IDEyODsKKworICAgICAgIC8qKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgYW4gb3ZlcmxheSBuYW1l
IGluIGJ5dGVzLCBjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuICovCisg
ICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5WUk92ZXJsYXlNYXhOYW1lTGVuZ3RoID0g
MTI4OworCisgICAgICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvdmVybGF5cyB0aGF0IGNh
biBleGlzdCBpbiB0aGUgc3lzdGVtIGF0IG9uZSB0aW1lLiAqLworICAgICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBrX3VuTWF4T3ZlcmxheUNvdW50ID0gNjQ7CisKKyAgICAgICAvKiogVGhlIG1h
eGltdW0gbnVtYmVyIG9mIG92ZXJsYXkgaW50ZXJzZWN0aW9uIG1hc2sgcHJpbWl0aXZlcyBwZXIg
b3ZlcmxheSAqLworICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrX3VuTWF4T3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVzQ291bnQgPSAzMjsKKworICAgICAgIC8qKiBUeXBlcyBv
ZiBpbnB1dCBzdXBwb3J0ZWQgYnkgVlIgT3ZlcmxheXMgKi8KKyAgICAgICBlbnVtIFZST3Zlcmxh
eUlucHV0TWV0aG9kCisgICAgICAgeworICAgICAgICAgICAgICBWUk92ZXJsYXlJbnB1dE1ldGhv
ZF9Ob25lICAgICAgICAgICAgICA9IDAsIC8vIE5vIGlucHV0IGV2ZW50cyB3aWxsIGJlIGdlbmVy
YXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGlzIG92ZXJsYXkKKyAgICAgICAgICAgICAgVlJPdmVy
bGF5SW5wdXRNZXRob2RfTW91c2UgICAgICAgICAgICAgID0gMSwgLy8gVHJhY2tlZCBjb250cm9s
bGVycyB3aWxsIGdldCBtb3VzZSBldmVudHMgYXV0b21hdGljYWxseQorICAgICAgIH07CisKKyAg
ICAgICAvKiogQWxsb3dzIHRoZSBjYWxsZXIgdG8gZmlndXJlIG91dCB3aGljaCBvdmVybGF5IHRy
YW5zZm9ybSBnZXR0ZXIgdG8gY2FsbC4gKi8KKyAgICAgICBlbnVtIFZST3ZlcmxheVRyYW5zZm9y
bVR5cGUKKyAgICAgICB7CisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9BYnNvbHV0
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICAgICAgICBW
Uk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlICAgICAgID0gMSwKKyAgICAg
ICAgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX1N5c3RlbU92ZXJsYXkgICAgICAgICAgICAgICAg
ICAgICA9IDIsCisgICAgICAgICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybV9UcmFja2VkQ29tcG9u
ZW50ICAgICAgICAgICAgICAgPSAzLAorICAgICAgIH07CisKKyAgICAgICAvKiogT3ZlcmxheSBj
b250cm9sIHNldHRpbmdzICovCisgICAgICAgZW51bSBWUk92ZXJsYXlGbGFncworICAgICAgIHsK
KyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfTm9uZSAgICAgICAgICAgICAgICAgICAgID0g
MCwKKworICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIG9ubHkgdGFrZSBlZmZlY3Qgd2hl
biByZW5kZXJlZCB1c2luZyB0aGUgaGlnaCBxdWFsaXR5IHJlbmRlciBwYXRoIChzZWUgU2V0SGln
aFF1YWxpdHlPdmVybGF5KS4KKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfQ3VydmVkICAg
ICAgICAgICAgICA9IDEsCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1JHU1M0WCAgICAg
ICAgICAgICAgPSAyLAorCisgICAgICAgICAgICAgIC8vIFNldCB0aGlzIGZsYWcgb24gYSBkYXNo
Ym9hcmQgb3ZlcmxheSB0byBwcmV2ZW50IGEgdGFiIGZyb20gc2hvd2luZyB1cCBmb3IgdGhhdCBv
dmVybGF5CisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiID0gMywK
KworICAgICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIG9uIGEgZGFzaGJvYXJkIHRoYXQgaXMg
YWJsZSB0byBkZWFsIHdpdGggZ2FtZXBhZCBmb2N1cyBldmVudHMKKyAgICAgICAgICAgICAgVlJP
dmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAorCisgICAgICAgICAgICAgIC8v
IEluZGljYXRlcyB0aGF0IHRoZSBvdmVybGF5IHNob3VsZCBkaW0vYnJpZ2h0ZW4gdG8gc2hvdyBn
YW1lcGFkIGZvY3VzCisgICAgICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dHYW1lcGFkRm9j
dXMgPSA1LAorCisgICAgICAgICAgICAgIC8vIFdoZW4gaW4gVlJPdmVybGF5SW5wdXRNZXRob2Rf
TW91c2UgeW91IGNhbiBvcHRpb25hbGx5IGVuYWJsZSBzZW5kaW5nIFZSU2Nyb2xsX3QgCisgICAg
ICAgICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlNjcm9sbEV2ZW50cyA9IDYsCisgICAgICAg
ICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKworICAgICAg
ICAgICAgICAvLyBJZiBzZXQgdGhpcyB3aWxsIHJlbmRlciBhIHZlcnRpY2FsIHNjcm9sbCB3aGVl
bCBvbiB0aGUgcHJpbWFyeSBjb250cm9sbGVyLCAKKyAgICAgICAgICAgICAgLy8gIG9ubHkgbmVl
ZGVkIGlmIG5vdCB1c2luZyBWUk92ZXJsYXlGbGFnc19TZW5kVlJTY3JvbGxFdmVudHMgYnV0IHlv
dSBzdGlsbCB3YW50IHRvIHJlcHJlc2VudCBhIHNjcm9sbCB3aGVlbAorICAgICAgICAgICAgICBW
Uk92ZXJsYXlGbGFnc19TaG93VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisKKyAgICAgICAgICAg
ICAgLy8gSWYgdGhpcyBpcyBzZXQgb3duZXJzaGlwIGFuZCByZW5kZXIgYWNjZXNzIHRvIHRoZSBv
dmVybGF5IGFyZSB0cmFuc2ZlcnJlZCAKKyAgICAgICAgICAgICAgLy8gdG8gdGhlIG5ldyBzY2Vu
ZSBwcm9jZXNzIG9uIGEgY2FsbCB0byBJVlJBcHBsaWNhdGlvbnM6OkxhdW5jaEludGVybmFsUHJv
Y2VzcworICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRvSW50
ZXJuYWxQcm9jZXNzID0gOSwKKworICAgICAgICAgICAgICAvLyBJZiBzZXQsIHJlbmRlcnMgNTAl
IG9mIHRoZSB0ZXh0dXJlIGluIGVhY2ggZXllLCBzaWRlIGJ5IHNpZGUKKyAgICAgICAgICAgICAg
VlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLCAvLyBUZXh0dXJlIGlzIGxl
ZnQvcmlnaHQKKyAgICAgICAgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2Vk
ID0gMTEsIC8vIFRleHR1cmUgaXMgY3Jvc3NlZCBhbmQgcmlnaHQvbGVmdAorCisgICAgICAgICAg
ICAgIFZST3ZlcmxheUZsYWdzX1Bhbm9yYW1hID0gMTIsIC8vIFRleHR1cmUgaXMgYSBwYW5vcmFt
YQorICAgICAgICAgICAgICBWUk92ZXJsYXlGbGFnc19TdGVyZW9QYW5vcmFtYSA9IDEzLCAvLyBU
ZXh0dXJlIGlzIGEgc3RlcmVvIHBhbm9yYW1hCisKKyAgICAgICAgICAgICAgLy8gSWYgdGhpcyBp
cyBzZXQgb24gYW4gb3ZlcmxheSBvd25lZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24gdGhhdCBv
dmVybGF5CisgICAgICAgICAgICAgIC8vIHdpbGwgYmUgc29ydGVkIHdpdGggdGhlICJPdGhlciIg
b3ZlcmxheXMgb24gdG9wIG9mIGFsbCBvdGhlciBzY2VuZSBvdmVybGF5cworICAgICAgICAgICAg
ICBWUk92ZXJsYXlGbGFnc19Tb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAxNCwKKworICAgICAg
ICAgICAgICAvLyBJZiBzZXQsIHRoZSBvdmVybGF5IHdpbGwgYmUgc2hvd24gaW4gdGhlIGRhc2hi
b2FyZCwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgaGlkZGVuLgorICAgICAgICAgICAgICBWUk92ZXJs
YXlGbGFnc19WaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKKyAgICAgICB9OworCisgICAgICAgZW51
bSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18wID0gMCwKKyAgICAgICAgICAgICAgVlJN
ZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzEgPSAxLAorICAgICAgICAgICAgICBW
Uk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiA9IDIsCisgICAgICAgICAgICAg
IFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zID0gMywKKyAgICAgICAgICAg
ICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0NvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQs
CisgICAgICAgICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3Jl
YXRlQ2xpZW50T3ZlcmxheT0gNSwKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3Bv
bnNlX0FwcGxpY2F0aW9uUXVpdCA9IDYKKyAgICAgICB9OworCisgICAgICAgc3RydWN0IFZST3Zl
cmxheUludGVyc2VjdGlvblBhcmFtc190CisgICAgICAgeworICAgICAgICAgICAgICBIbWRWZWN0
b3IzX3QgdlNvdXJjZTsKKyAgICAgICAgICAgICAgSG1kVmVjdG9yM190IHZEaXJlY3Rpb247Cisg
ICAgICAgICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW47CisgICAgICAgfTsK
KworICAgICAgIHN0cnVjdCBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QKKyAgICAgICB7
CisgICAgICAgICAgICAgIEhtZFZlY3RvcjNfdCB2UG9pbnQ7CisgICAgICAgICAgICAgIEhtZFZl
Y3RvcjNfdCB2Tm9ybWFsOworICAgICAgICAgICAgICBIbWRWZWN0b3IyX3QgdlVWczsKKyAgICAg
ICAgICAgICAgZmxvYXQgZkRpc3RhbmNlOworICAgICAgIH07CisKKyAgICAgICAvLyBJbnB1dCBt
b2RlcyBmb3IgdGhlIEJpZyBQaWN0dXJlIGdhbWVwYWQgdGV4dCBlbnRyeQorICAgICAgIGVudW0g
RUdhbWVwYWRUZXh0SW5wdXRNb2RlCisgICAgICAgeworICAgICAgICAgICAgICBrX0VHYW1lcGFk
VGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAgICAgICAgIGtfRUdhbWVwYWRUZXh0SW5w
dXRNb2RlUGFzc3dvcmQgPSAxLAorICAgICAgICAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9k
ZVN1Ym1pdCA9IDIsCisgICAgICAgfTsKKworICAgICAgIC8vIENvbnRyb2xzIG51bWJlciBvZiBh
bGxvd2VkIGxpbmVzIGZvciB0aGUgQmlnIFBpY3R1cmUgZ2FtZXBhZCB0ZXh0IGVudHJ5CisgICAg
ICAgZW51bSBFR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlCisgICAgICAgeworICAgICAgICAgICAg
ICBrX0VHYW1lcGFkVGV4dElucHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICAgICAg
ICAga19FR2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyA9IDEKKyAgICAgICB9
OworCisgICAgICAgLyoqIERpcmVjdGlvbnMgZm9yIGNoYW5naW5nIGZvY3VzIGJldHdlZW4gb3Zl
cmxheXMgd2l0aCB0aGUgZ2FtZXBhZCAqLworICAgICAgIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24K
KyAgICAgICB7CisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fVXAgPSAwLAorICAgICAg
ICAgICAgICBPdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAgICAgICAgICAgICBPdmVybGF5
RGlyZWN0aW9uX0xlZnQgPSAyLAorICAgICAgICAgICAgICBPdmVybGF5RGlyZWN0aW9uX1JpZ2h0
ID0gMywKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIE92ZXJsYXlEaXJlY3Rpb25fQ291
bnQgPSA0LAorICAgICAgIH07CisKKyAgICAgICBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25N
YXNrUHJpbWl0aXZlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAgICAgT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlLAorICAgICAgICAgICAgICBPdmVybGF5SW50ZXJz
ZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUsCisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBJ
bnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QKKyAgICAgICB7CisgICAgICAgICAgICAgIGZsb2F0
IG1fZmxUb3BMZWZ0WDsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFRvcExlZnRZOworICAgICAg
ICAgICAgICBmbG9hdCBtX2ZsV2lkdGg7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxIZWlnaHQ7
CisgICAgICAgfTsKKworICAgICAgIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGZsb2F0IG1fZmxDZW50ZXJYOworICAgICAgICAgICAgICBm
bG9hdCBtX2ZsQ2VudGVyWTsKKyAgICAgICAgICAgICAgZmxvYXQgbV9mbFJhZGl1czsKKyAgICAg
ICB9OworCisgICAgICAgLyoqIE5PVEUhISEgSWYgeW91IGNoYW5nZSB0aGlzIHlvdSBNVVNUIG1h
bnVhbGx5IHVwZGF0ZSBvcGVudnJfaW50ZXJvcC5jcy5weSBhbmQgb3BlbnZyX2FwaV9mbGF0Lmgu
cHkgKi8KKyAgICAgICB0eXBlZGVmIHVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBJbnRl
cnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAgICAgICAgIEludGVy
c2VjdGlvbk1hc2tDaXJjbGVfdCBtX0NpcmNsZTsKKyAgICAgICB9IFZST3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCisgICAgICAgc3RydWN0IFZST3ZlcmxheUludGVy
c2VjdGlvbk1hc2tQcmltaXRpdmVfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAg
ICAgICAgIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90IG1fUHJpbWl0
aXZlOworICAgICAgIH07CisKKyAgICAgICBjbGFzcyBJVlJPdmVybGF5CisgICAgICAgeworICAg
ICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3ZlcmxheSBtYW5hZ2VtZW50
IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIEZpbmRzIGFuIGV4aXN0aW5nIG92
ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWVkIGtleS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgRmluZE92ZXJsYXkoIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIFZS
T3ZlcmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIENyZWF0ZXMgYSBuZXcgbmFtZWQgb3ZlcmxheS4gQWxsIG92ZXJsYXlzIHN0YXJ0IGhpZGRl
biBhbmQgd2l0aCBkZWZhdWx0IHNldHRpbmdzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVW
Uk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KCBjb25zdCBjaGFyICpwY2hPdmVybGF5S2V5LCBj
b25zdCBjaGFyICpwY2hPdmVybGF5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBwT3ZlcmxheUhh
bmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogRGVzdHJveXMgdGhlIHNwZWNpZmllZCBv
dmVybGF5LiBXaGVuIGFuIGFwcGxpY2F0aW9uIGNhbGxzIFZSX1NodXRkb3duIGFsbCBvdmVybGF5
cyBjcmVhdGVkIGJ5IHRoYXQgYXBwIGFyZQorICAgICAgICAgICAgICAqIGF1dG9tYXRpY2FsbHkg
ZGVzdHJveWVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBEZXN0
cm95T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisg
ICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IHdoaWNoIG92ZXJsYXkgdG8gdXNlIHRoZSBoaWdoIHF1
YWxpdHkgcmVuZGVyIHBhdGguICBUaGlzIG92ZXJsYXkgd2lsbCBiZSBjb21wb3NpdGVkIGluIGR1
cmluZyB0aGUgZGlzdG9ydGlvbiBwYXNzIHdoaWNoCisgICAgICAgICAgICAgICogcmVzdWx0cyBp
biBpdCBkcmF3aW5nIG9uIHRvcCBvZiBldmVyeXRoaW5nIGVsc2UsIGJ1dCBhbHNvIGF0IGEgaGln
aGVyIHF1YWxpdHkgYXMgaXQgc2FtcGxlcyB0aGUgc291cmNlIHRleHR1cmUgZGlyZWN0bHkgcmF0
aGVyIHRoYW4KKyAgICAgICAgICAgICAgKiByYXN0ZXJpemluZyBpbnRvIGVhY2ggZXllJ3MgcmVu
ZGVyIHRleHR1cmUgZmlyc3QuICBCZWNhdXNlIGlmIHRoaXMsIG9ubHkgb25lIG9mIHRoZXNlIGlz
IHN1cHBvcnRlZCBhdCBhbnkgZ2l2ZW4gdGltZS4gIEl0IGlzIG1vc3QgdXNlZnVsCisgICAgICAg
ICAgICAgICogZm9yIG92ZXJsYXlzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIHRha2UgdXAgbW9zdCBv
ZiB0aGUgdXNlcidzIHZpZXcgKGUuZy4gc3RyZWFtaW5nIHZpZGVvKS4KKyAgICAgICAgICAgICAg
KiBUaGlzIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBtb3VzZSBpbnB1dCB0byB5b3VyIG92ZXJsYXku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5
T3ZlcmxheSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBSZXR1cm5zIHRoZSBvdmVybGF5IGhhbmRsZSBvZiB0aGUgY3VycmVudCBv
dmVybGF5IGJlaW5nIHJlbmRlcmVkIHVzaW5nIHRoZSBzaW5nbGUgaGlnaCBxdWFsaXR5IG92ZXJs
YXkgcmVuZGVyIHBhdGguCisgICAgICAgICAgICAgICogT3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJu
IGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2cjo6
VlJPdmVybGF5SGFuZGxlX3QgR2V0SGlnaFF1YWxpdHlPdmVybGF5KCkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBGaWxscyB0aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIHN0cmluZyBrZXkg
b2YgdGhlIG92ZXJsYXkuIFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRvIHN0
b3JlIHRoZSBrZXksIGluY2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGluZyBu
dWxsIGNoYXJhY3Rlci4ga191blZST3ZlcmxheU1heEtleUxlbmd0aCB3aWxsIGJlIGVub3VnaCBi
eXRlcyB0byBmaXQgdGhlIHN0cmluZy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB1aW50MzJf
dCBHZXRPdmVybGF5S2V5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZSX09V
VF9TVFJJTkcoKSBjaGFyICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVy
bGF5RXJyb3IgKnBFcnJvciA9IDBMICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBGaWxscyB0
aGUgcHJvdmlkZWQgYnVmZmVyIHdpdGggdGhlIGZyaWVuZGx5IG5hbWUgb2YgdGhlIG92ZXJsYXku
IFJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHJlcXVpcmVkIHRvIHN0b3JlIHRoZSBrZXksIGlu
Y2x1ZGluZworICAgICAgICAgICAgICAqIHRoZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4g
a191blZST3ZlcmxheU1heE5hbWVMZW5ndGggd2lsbCBiZSBlbm91Z2ggYnl0ZXMgdG8gZml0IHRo
ZSBzdHJpbmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3ZlcmxheU5h
bWUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJfT1VUX1NUUklORygpIGNo
YXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVWUk92ZXJsYXlFcnJvciAqcEVy
cm9yID0gMEwgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHNldCB0aGUgbmFtZSB0byB1c2Ug
Zm9yIHRoaXMgb3ZlcmxheSAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5TmFtZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25z
dCBjaGFyICpwY2hOYW1lICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRoZSByYXcg
aW1hZ2UgZGF0YSBmcm9tIGFuIG92ZXJsYXkuIE92ZXJsYXkgaW1hZ2UgZGF0YSBpcyBhbHdheXMg
cmV0dXJuZWQgYXMgUkdCQSBkYXRhLCA0IGJ5dGVzIHBlciBwaXhlbC4gSWYgdGhlIGJ1ZmZlciBp
cyBub3QgbGFyZ2UgZW5vdWdoLCB3aWR0aCBhbmQgaGVpZ2h0IAorICAgICAgICAgICAgICAqIHdp
bGwgYmUgc2V0IGFuZCBWUk92ZXJsYXlFcnJvcl9BcnJheVRvb1NtYWxsIGlzIHJldHVybmVkLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VE
YXRhKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnB2QnVmZmVyLCB1
aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICpwdW5XaWR0aCwgdWludDMyX3QgKnB1bkhl
aWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogcmV0dXJucyBhIHN0cmluZyB0aGF0IGNv
cnJlc3BvbmRzIHdpdGggdGhlIHNwZWNpZmllZCBvdmVybGF5IGVycm9yLiBUaGUgc3RyaW5nIHdp
bGwgYmUgdGhlIG5hbWUgCisgICAgICAgICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUg
Zm9yIGFsbCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIgKkdldE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bSggRVZST3ZlcmxheUVycm9yIGVycm9y
ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVybGF5IHJlbmRlcmluZyBtZXRo
b2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBwaWQgdGhhdCBpcyBhbGxv
d2VkIHRvIHJlbmRlciB0byB0aGlzIG92ZXJsYXkgKHRoZSBjcmVhdG9yIHBpZCBpcyBhbHdheXMg
YWxsb3cgdG8gcmVuZGVyKSwKKyAgICAgICAgICAgICAgKiAgICAgICBieSBkZWZhdWx0IHRoaXMg
aXMgdGhlIHBpZCBvZiB0aGUgcHJvY2VzcyB0aGF0IG1hZGUgdGhlIG92ZXJsYXkgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blBJRCApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgcGlkIHRoYXQgaXMgYWxsb3dlZCB0byByZW5k
ZXIgdG8gdGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0
T3ZlcmxheVJlbmRlcmluZ1BpZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZ5IGZsYWcgc2V0dGluZyBmb3IgYSBnaXZl
biBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92
ZXJsYXlGbGFnKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZs
YWdzIGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAgICAv
KiogU2V0cyBmbGFnIHNldHRpbmcgZm9yIGEgZ2l2ZW4gb3ZlcmxheSAqLworICAgICAgICAgICAg
ICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5RmxhZyggVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBlT3ZlcmxheUZsYWcsIGJvb2wgKnBi
RW5hYmxlZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgY29sb3IgdGludCBv
ZiB0aGUgb3ZlcmxheSBxdWFkLiBVc2UgMC4wIHRvIDEuMCBwZXIgY2hhbm5lbC4gKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUNvbG9yKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZSZWQsIGZsb2F0IGZHcmVlbiwgZmxv
YXQgZkJsdWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIGNvbG9yIHRpbnQg
b2YgdGhlIG92ZXJsYXkgcXVhZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgR2V0T3ZlcmxheUNvbG9yKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUs
IGZsb2F0ICpwZlJlZCwgZmxvYXQgKnBmR3JlZW4sIGZsb2F0ICpwZkJsdWUgKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFscGhhIG9mIHRoZSBvdmVybGF5IHF1YWQuIFVzZSAx
LjAgZm9yIDEwMCBwZXJjZW50IG9wYWNpdHkgdG8gMC4wIGZvciAwIHBlcmNlbnQgb3BhY2l0eS4g
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUFscGhh
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZBbHBoYSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgYWxwaGEgb2YgdGhlIG92ZXJsYXkgcXVhZC4g
QnkgZGVmYXVsdCBvdmVybGF5cyBhcmUgcmVuZGVyaW5nIGF0IDEwMCBwZXJjZW50IGFscGhhICgx
LjApLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5
QWxwaGEoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKnBmQWxwaGEg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGFzcGVjdCByYXRpbyBvZiB0aGUg
dGV4ZWxzIGluIHRoZSBvdmVybGF5LiAxLjAgbWVhbnMgdGhlIHRleGVscyBhcmUgc3F1YXJlLiAy
LjAgbWVhbnMgdGhlIHRleGVscworICAgICAgICAgICAgICAqIGFyZSB0d2ljZSBhcyB3aWRlIGFz
IHRoZXkgYXJlIHRhbGwuIERlZmF1bHRzIHRvIDEuMC4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRleGVsQXNwZWN0KCBWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZUZXhlbEFzcGVjdCApID0gMDsKKworICAgICAgICAg
ICAgICAvKiogR2V0cyB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSB0ZXhlbHMgaW4gdGhlIG92ZXJs
YXkuIERlZmF1bHRzIHRvIDEuMCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBHZXRPdmVybGF5VGV4ZWxBc3BlY3QoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhh
bmRsZSwgZmxvYXQgKnBmVGV4ZWxBc3BlY3QgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNl
dHMgdGhlIHJlbmRlcmluZyBzb3J0IG9yZGVyIGZvciB0aGUgb3ZlcmxheS4gT3ZlcmxheXMgYXJl
IHJlbmRlcmVkIHRoaXMgb3JkZXI6CisgICAgICAgICAgICAgICogICAgICBPdmVybGF5cyBvd25l
ZCBieSB0aGUgc2NlbmUgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgKiAgICAgIE92ZXJsYXlz
IG93bmVkIGJ5IHNvbWUgb3RoZXIgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgKgorICAgICAg
ICAgICAgICAqICAgICAgIFdpdGhpbiBhIGNhdGVnb3J5IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBs
b3dlc3Qgc29ydCBvcmRlciB0byBoaWdoZXN0IHNvcnQgb3JkZXIuIE92ZXJsYXlzIHdpdGggdGhl
IHNhbWUgCisgICAgICAgICAgICAgICogICAgICAgc29ydCBvcmRlciBhcmUgcmVuZGVyZWQgYmFj
ayB0byBmcm9udCBiYXNlIG9uIGRpc3RhbmNlIGZyb20gdGhlIEhNRC4KKyAgICAgICAgICAgICAg
KgorICAgICAgICAgICAgICAqICAgICAgIFNvcnQgb3JkZXIgZGVmYXVsdHMgdG8gMC4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVNvcnRPcmRlcigg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCB1blNvcnRPcmRlciAp
ID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgc29ydCBvcmRlciBvZiB0aGUgb3Zl
cmxheS4gU2VlIFNldE92ZXJsYXlTb3J0T3JkZXIgZm9yIGhvdyB0aGlzIHdvcmtzLiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5U29ydE9yZGVyKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpwdW5Tb3J0T3JkZXIg
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBvdmVybGF5
IHF1YWQgaW4gbWV0ZXJzLiBCeSBkZWZhdWx0IG92ZXJsYXlzIGFyZSByZW5kZXJlZCBvbiBhIHF1
YWQgdGhhdCBpcyAxIG1ldGVyIGFjcm9zcyAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92
ZXJsYXlFcnJvciBTZXRPdmVybGF5V2lkdGhJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBmbG9hdCBmV2lkdGhJbk1ldGVycyApID0gMDsKKworICAgICAgICAgICAg
ICAvKiogUmV0dXJucyB0aGUgd2lkdGggb2YgdGhlIG92ZXJsYXkgcXVhZCBpbiBtZXRlcnMuIEJ5
IGRlZmF1bHQgb3ZlcmxheXMgYXJlIHJlbmRlcmVkIG9uIGEgcXVhZCB0aGF0IGlzIDEgbWV0ZXIg
YWNyb3NzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJs
YXlXaWR0aEluTWV0ZXJzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0
ICpwZldpZHRoSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEZvciBoaWdoLXF1
YWxpdHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIHNldHMgdGhlIGRpc3RhbmNlIHJhbmdlIGluIG1l
dGVycyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxseSBjdXJ2ZQorICAgICAg
ICAgICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAgTWluIGlzIGRpc3RhbmNl
IGlzIHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4gIE1heCBpcyB3aGVuIGxl
YXN0IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1ldGVycywgZmxvYXQgZk1heERp
c3RhbmNlSW5NZXRlcnMgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEZvciBoaWdoLXF1YWxp
dHkgY3VydmVkIG92ZXJsYXlzIG9ubHksIGdldHMgdGhlIGRpc3RhbmNlIHJhbmdlIGluIG1ldGVy
cyBmcm9tIHRoZSBvdmVybGF5IHVzZWQgdG8gYXV0b21hdGljYWxseSBjdXJ2ZQorICAgICAgICAg
ICAgICAqIHRoZSBzdXJmYWNlIGFyb3VuZCB0aGUgdmlld2VyLiAgTWluIGlzIGRpc3RhbmNlIGlz
IHdoZW4gdGhlIHN1cmZhY2Ugd2lsbCBiZSBtb3N0IGN1cnZlZC4gIE1heCBpcyB3aGVuIGxlYXN0
IGN1cnZlZC4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zl
cmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyggVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBmbG9hdCAqcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCBmbG9hdCAqcGZNYXhE
aXN0YW5jZUluTWV0ZXJzICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBjb2xv
cnNwYWNlIHRoZSBvdmVybGF5IHRleHR1cmUncyBkYXRhIGlzIGluLiAgRGVmYXVsdHMgdG8gJ2F1
dG8nLgorICAgICAgICAgICAgICAqIElmIHRoZSB0ZXh0dXJlIG5lZWRzIHRvIGJlIHJlc29sdmVk
LCB5b3Ugc2hvdWxkIGNhbGwgU2V0T3ZlcmxheVRleHR1cmUgd2l0aCB0aGUgYXBwcm9wcmlhdGUg
Y29sb3JzcGFjZSBpbnN0ZWFkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgZVRleHR1cmVDb2xvclNwYWNlICkgPSAwOworCisgICAg
ICAgICAgICAgIC8qKiBHZXRzIHRoZSBvdmVybGF5J3MgY3VycmVudCBjb2xvcnNwYWNlIHNldHRp
bmcuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlU
ZXh0dXJlQ29sb3JTcGFjZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFQ29s
b3JTcGFjZSAqcGVUZXh0dXJlQ29sb3JTcGFjZSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
U2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9yIHRoZSBvdmVybGF5LiBVViBN
aW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXggaXMgdGhlIGxvd2VyIHJpZ2h0
IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29u
c3QgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJvdW5kcyApID0gMDsKKworICAg
ICAgICAgICAgICAvKiogR2V0cyB0aGUgcGFydCBvZiB0aGUgdGV4dHVyZSB0byB1c2UgZm9yIHRo
ZSBvdmVybGF5LiBVViBNaW4gaXMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIGFuZCBVViBNYXggaXMg
dGhlIGxvd2VyIHJpZ2h0IGNvcm5lci4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSwgVlJUZXh0dXJlQm91bmRzX3QgKnBPdmVybGF5VGV4dHVyZUJvdW5kcyApID0g
MDsKKworICAgICAgICAgICAgICAvKiogR2V0cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhpbmQg
dGhpcyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0T3Zlcmxh
eVJlbmRlck1vZGVsKCB2cjo6VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjaGFy
ICpwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBIbWRDb2xvcl90ICpwQ29sb3IsIHZy
OjpFVlJPdmVybGF5RXJyb3IgKnBFcnJvciApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0
cyByZW5kZXIgbW9kZWwgdG8gZHJhdyBiZWhpbmQgdGhpcyBvdmVybGF5IGFuZCB0aGUgdmVydGV4
IGNvbG9yIHRvIHVzZSwgcGFzcyBudWxsIGZvciBwQ29sb3IgdG8gbWF0Y2ggdGhlIG92ZXJsYXlz
IHZlcnRleCBjb2xvci4gCisgICAgICAgICAgICAgICAgICAgICBUaGUgbW9kZWwgaXMgc2NhbGVk
IGJ5IHRoZSBzYW1lIGFtb3VudCBhcyB0aGUgb3ZlcmxheSwgd2l0aCBhIGRlZmF1bHQgb2YgMW0u
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5
UmVuZGVyTW9kZWwoIHZyOjpWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0
IGNoYXIgKnBjaFJlbmRlck1vZGVsLCBjb25zdCBIbWRDb2xvcl90ICpwQ29sb3IgKSA9IDA7CisK
KyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdGhlIHRyYW5zZm9ybSB0eXBlIG9mIHRoaXMgb3Zl
cmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3Zlcmxh
eVRyYW5zZm9ybVR5cGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVy
bGF5VHJhbnNmb3JtVHlwZSAqcGVUcmFuc2Zvcm1UeXBlICkgPSAwOworCisgICAgICAgICAgICAg
IC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gYWJzb2x1dGUgdHJhY2tpbmcgb3JpZ2luLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3Jt
QWJzb2x1dGUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5p
dmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBjb25zdCBIbWRNYXRyaXgzNF90ICpwbWF0VHJh
Y2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEdldHMgdGhlIHRyYW5zZm9ybSBpZiBpdCBpcyBhYnNvbHV0ZS4gUmV0dXJucyBhbiBlcnJvciBp
ZiB0aGUgdHJhbnNmb3JtIGlzIHNvbWUgb3RoZXIgdHlwZS4gKi8KKyAgICAgICAgICAgICAgdmly
dHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKCBWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luICpwZVRy
YWNraW5nT3JpZ2luLCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0
byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3JtIG9mIHRoZSBzcGVjaWZpZWQgdHJhY2tlZCBkZXZp
Y2UuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlU
cmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5UcmFja2VkRGV2aWNlLCBjb25zdCBIbWRN
YXRyaXgzNF90ICpwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGlmIGl0IGlzIHJlbGF0aXZlIHRv
IGEgdHJhY2tlZCBkZXZpY2UuIFJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBz
b21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9y
IEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUoIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgKnB1blRyYWNrZWREZXZp
Y2UsIEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSB0cmFuc2Zvcm0gdG8gZHJhdyB0aGUg
b3ZlcmxheSBvbiBhIHJlbmRlcm1vZGVsIGNvbXBvbmVudCBtZXNoIGluc3RlYWQgb2YgYSBxdWFk
LiBUaGlzIHdpbGwgb25seSBkcmF3IHdoZW4gdGhlIHN5c3RlbSBpcworICAgICAgICAgICAgICAq
IGRyYXdpbmcgdGhlIGRldmljZS4gT3ZlcmxheXMgd2l0aCB0aGlzIHRyYW5zZm9ybSB0eXBlIGNh
bm5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cy4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5E
ZXZpY2VJbmRleCwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50TmFtZSApID0gMDsKKworICAgICAg
ICAgICAgICAvKiogR2V0cyB0aGUgdHJhbnNmb3JtIGluZm9ybWF0aW9uIHdoZW4gdGhlIG92ZXJs
YXkgaXMgcmVuZGVyaW5nIG9uIGEgY29tcG9uZW50LiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVu
dCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhf
dCAqcHVuRGV2aWNlSW5kZXgsIGNoYXIgKnBjaENvbXBvbmVudE5hbWUsIHVpbnQzMl90IHVuQ29t
cG9uZW50TmFtZVNpemUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHRyYW5z
Zm9ybSBpZiBpdCBpcyByZWxhdGl2ZSB0byBhbm90aGVyIG92ZXJsYXkuIFJldHVybnMgYW4gZXJy
b3IgaWYgdGhlIHRyYW5zZm9ybSBpcyBzb21lIG90aGVyIHR5cGUuICovCisgICAgICAgICAgICAg
IHZpcnR1YWwgdnI6OkVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtT3ZlcmxheVJl
bGF0aXZlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUhhbmRs
ZV90ICp1bE92ZXJsYXlIYW5kbGVQYXJlbnQsIEhtZE1hdHJpeDM0X3QgKnBtYXRQYXJlbnRPdmVy
bGF5VG9PdmVybGF5VHJhbnNmb3JtICkgPSAwOworICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgLyoqIFNldHMgdGhlIHRyYW5zZm9ybSB0byByZWxhdGl2ZSB0byB0aGUgdHJhbnNmb3JtIG9m
IHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gVGhpcyBvdmVybGF5cyB2aXNpYmlsaXR5IHdpbGwgYWxz
byB0cmFjayB0aGUgcGFyZW50cyB2aXNpYmlsaXR5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
dnI6OkVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtT3ZlcmxheVJlbGF0aXZlKCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZVBhcmVudCwgY29uc3QgSG1kTWF0cml4MzRfdCAqcG1hdFBhcmVudE92ZXJsYXlU
b092ZXJsYXlUcmFuc2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNob3dzIHRoZSBW
UiBvdmVybGF5LiAgRm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJvYXJkIE1h
bmFnZXIgaXMgYWxsb3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
RVZST3ZlcmxheUVycm9yIFNob3dPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlI
YW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEhpZGVzIHRoZSBWUiBvdmVybGF5LiAg
Rm9yIGRhc2hib2FyZCBvdmVybGF5cywgb25seSB0aGUgRGFzaGJvYXJkIE1hbmFnZXIgaXMgYWxs
b3dlZCB0byBjYWxsIHRoaXMuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVy
cm9yIEhpZGVPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgb3ZlcmxheSBpcyB2aXNp
YmxlLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNPdmVybGF5VmlzaWJsZSggVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8q
KiBHZXQgdGhlIHRyYW5zZm9ybSBpbiAzZCBzcGFjZSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZp
YyAyZCBwb2ludCBpbiB0aGUgb3ZlcmxheSdzIGNvb3JkaW5hdGUgc3BhY2UgKHdoZXJlIDAsMCBp
cyB0aGUgbG93ZXIgbGVmdCkuIC1aIHBvaW50cyBvdXQgb2YgdGhlIG92ZXJsYXkgKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNv
b3JkaW5hdGVzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1Vu
aXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgSG1kVmVjdG9yMl90IGNvb3JkaW5hdGVzSW5P
dmVybGF5LCBIbWRNYXRyaXgzNF90ICpwbWF0VHJhbnNmb3JtICkgPSAwOworCisgICAgICAgICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
ICAgICAgICAgICAvLyBPdmVybGF5IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAg
ICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZl
bnQgb24gdGhlIG92ZXJsYXkncyBldmVudCBxdWV1ZSwgaWYgdGhlcmUgaXMgb25lLiAKKyAgICAg
ICAgICAgICAgKiBJZiB0aGVyZSBhcmUgbm8gZXZlbnRzIHRoaXMgbWV0aG9kIHJldHVybnMgZmFs
c2UuIHVuY2JWUkV2ZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgVlJFdmVu
dF90IHN0cnVjdCAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgUG9sbE5leHRPdmVybGF5
RXZlbnQoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJFdmVudF90ICpwRXZl
bnQsIHVpbnQzMl90IHVuY2JWUkV2ZW50ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1
cm5zIHRoZSBjdXJyZW50IGlucHV0IHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIG92ZXJsYXku
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1
dE1ldGhvZCggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1
dE1ldGhvZCAqcGVJbnB1dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0
aGUgaW5wdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgb3ZlcmxheS4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUlucHV0TWV0aG9kKCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1
dE1ldGhvZCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgbW91c2Ugc2NhbGlu
ZyBmYWN0b3IgdGhhdCBpcyB1c2VkIGZvciBtb3VzZSBldmVudHMuIFRoZSBhY3R1YWwgdGV4dHVy
ZSBtYXkgYmUgYSBkaWZmZXJlbnQgc2l6ZSwgYnV0IHRoaXMgaXMKKyAgICAgICAgICAgICAgKiB0
eXBpY2FsbHkgdGhlIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgVUkgaW4gcGl4ZWxzLiAqLworICAg
ICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2FsZSgg
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBIbWRWZWN0b3IyX3QgKnB2ZWNNb3Vz
ZVNjYWxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIHRoZSBtb3VzZSBzY2FsaW5n
IGZhY3RvciB0aGF0IGlzIHVzZWQgZm9yIG1vdXNlIGV2ZW50cy4gVGhlIGFjdHVhbCB0ZXh0dXJl
IG1heSBiZSBhIGRpZmZlcmVudCBzaXplLCBidXQgdGhpcyBpcworICAgICAgICAgICAgICAqIHR5
cGljYWxseSB0aGUgc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBVSSBpbiBwaXhlbHMgKG5vdCBpbiB3
b3JsZCBzcGFjZSkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dE92ZXJsYXlNb3VzZVNjYWxlKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNv
bnN0IEhtZFZlY3RvcjJfdCAqcHZlY01vdXNlU2NhbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAg
LyoqIENvbXB1dGVzIHRoZSBvdmVybGF5LXNwYWNlIHBpeGVsIGNvb3JkaW5hdGVzIG9mIHdoZXJl
IHRoZSByYXkgaW50ZXJzZWN0cyB0aGUgb3ZlcmxheSB3aXRoIHRoZQorICAgICAgICAgICAgICAq
IHNwZWNpZmllZCBzZXR0aW5ncy4gUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBubyBpbnRlcnNl
Y3Rpb24uICovCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBDb21wdXRlT3ZlcmxheUludGVy
c2VjdGlvbiggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBjb25zdCBWUk92ZXJs
YXlJbnRlcnNlY3Rpb25QYXJhbXNfdCAqcFBhcmFtcywgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVz
dWx0c190ICpwUmVzdWx0cyApID0gMDsKKworICAgICAgICAgICAgICAvKiogUHJvY2Vzc2VzIG1v
dXNlIGlucHV0IGZyb20gdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIGFzIHRob3VnaCBpdCB3ZXJl
IGEgbW91c2UgcG9pbnRlZCBhdCBhIGNvbXBvc2l0b3Igb3ZlcmxheSB3aXRoIHRoZQorICAgICAg
ICAgICAgICAqIHNwZWNpZmllZCBzZXR0aW5ncy4gVGhlIGNvbnRyb2xsZXIgaXMgdHJlYXRlZCBs
aWtlIGEgbGFzZXIgcG9pbnRlciBvbiB0aGUgLXogYXhpcy4gVGhlIHBvaW50IHdoZXJlIHRoZSBs
YXNlciBwb2ludGVyIHdvdWxkCisgICAgICAgICAgICAgICogaW50ZXJzZWN0IHdpdGggdGhlIG92
ZXJsYXkgaXMgdGhlIG1vdXNlIHBvc2l0aW9uLCB0aGUgdHJpZ2dlciBpcyBsZWZ0IG1vdXNlLCBh
bmQgdGhlIHRyYWNrIHBhZCBpcyByaWdodCBtb3VzZS4gCisgICAgICAgICAgICAgICoKKyAgICAg
ICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY29udHJvbGxlciBpcyBwb2ludGVkIGF0IHRo
ZSBvdmVybGF5IGFuZCBhbiBldmVudCB3YXMgZ2VuZXJhdGVkLiAqLworICAgICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgSGFuZGxlQ29udHJvbGxlck92ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UoIFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5D
b250cm9sbGVyRGV2aWNlSW5kZXggKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFJldHVybnMg
dHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIG92ZXJsYXkgaXMgdGhlIGhvdmVyIHRhcmdldC4gQW4gb3Zl
cmxheSBpcyB0aGUgaG92ZXIgdGFyZ2V0IHdoZW4gaXQgaXMgdGhlIGxhc3Qgb3ZlcmxheSAibW91
c2VkIG92ZXIiIAorICAgICAgICAgICAgICAqIGJ5IHRoZSB2aXJ0dWFsIG1vdXNlIHBvaW50ZXIg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIElzSG92ZXJUYXJnZXRPdmVybGF5KCBWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IFJldHVybnMgdGhlIGN1cnJlbnQgR2FtZXBhZCBmb2N1cyBvdmVybGF5ICovCisgICAgICAgICAg
ICAgIHZpcnR1YWwgdnI6OlZST3ZlcmxheUhhbmRsZV90IEdldEdhbWVwYWRGb2N1c092ZXJsYXko
KSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldHMgdGhlIGN1cnJlbnQgR2FtZXBhZCBmb2N1
cyBvdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNldEdh
bWVwYWRGb2N1c092ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsTmV3Rm9jdXNPdmVybGF5ICkg
PSAwOworCisgICAgICAgICAgICAgIC8qKiBTZXRzIGFuIG92ZXJsYXkncyBuZWlnaGJvci4gVGhp
cyB3aWxsIGFsc28gc2V0IHRoZSBuZWlnaGJvciBvZiB0aGUgInRvIiBvdmVybGF5CisgICAgICAg
ICAgICAgICogdG8gcG9pbnQgYmFjayB0byB0aGUgImZyb20iIG92ZXJsYXkuIElmIGFuIG92ZXJs
YXkncyBuZWlnaGJvciBpcyBzZXQgdG8gaW52YWxpZCBib3RoCisgICAgICAgICAgICAgICogZW5k
cyB3aWxsIGJlIGNsZWFyZWQgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJy
b3IgU2V0T3ZlcmxheU5laWdoYm9yKCBFT3ZlcmxheURpcmVjdGlvbiBlRGlyZWN0aW9uLCBWUk92
ZXJsYXlIYW5kbGVfdCB1bEZyb20sIFZST3ZlcmxheUhhbmRsZV90IHVsVG8gKSA9IDA7CisKKyAg
ICAgICAgICAgICAgLyoqIENoYW5nZXMgdGhlIEdhbWVwYWQgZm9jdXMgZnJvbSBvbmUgb3Zlcmxh
eSB0byBvbmUgb2YgaXRzIG5laWdoYm9ycy4gUmV0dXJucyBWUk92ZXJsYXlFcnJvcl9Ob05laWdo
Ym9yIGlmIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICogbmVpZ2hib3IgaW4gdGhhdCBkaXJl
Y3Rpb24gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgTW92ZUdhbWVw
YWRGb2N1c1RvTmVpZ2hib3IoIEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sIFZST3Zlcmxh
eUhhbmRsZV90IHVsRnJvbSApID0gMDsKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gT3Zlcmxh
eSB0ZXh0dXJlIG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFRleHR1cmUgdG8g
ZHJhdyBmb3IgdGhlIG92ZXJsYXkuIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5
IHRoZSBvdmVybGF5J3MgY3JlYXRvciBvciByZW5kZXJlciBwcm9jZXNzIChzZWUgU2V0T3Zlcmxh
eVJlbmRlcmluZ1BpZCkgLgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogT3BlbkdM
IGRpcnR5IHN0YXRlOgorICAgICAgICAgICAgICAqICAgICAgIGdsQmluZFRleHR1cmUKKyAgICAg
ICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3Zl
cmxheVRleHR1cmUoIFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgY29uc3QgVGV4
dHVyZV90ICpwVGV4dHVyZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogVXNlIHRoaXMgdG8g
dGVsbCB0aGUgb3ZlcmxheSBzeXN0ZW0gdG8gcmVsZWFzZSB0aGUgdGV4dHVyZSBzZXQgZm9yIHRo
aXMgb3ZlcmxheS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgQ2xl
YXJPdmVybGF5VGV4dHVyZSggVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlICkgPSAw
OworCisgICAgICAgICAgICAgIC8qKiBTZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb3ZpZGluZyB0
aGUgZGF0YSBhcyBhIHN0cmVhbSBvZiBieXRlcywgYnV0IHRoZXJlIGlzIGFuIHVwcGVyIGJvdW5k
IG9uIGRhdGEgCisgICAgICAgICAgICAgICogdGhhdCBjYW4gYmUgc2VudC4gVGhpcyBmdW5jdGlv
biBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJsYXkncyByZW5kZXJlciBwcm9jZXNzLiAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5UmF3KCBW
Uk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHZvaWQgKnB2QnVmZmVyLCB1aW50MzJf
dCB1bldpZHRoLCB1aW50MzJfdCB1bkhlaWdodCwgdWludDMyX3QgdW5EZXB0aCApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogU2VwYXJhdGUgaW50ZXJmYWNlIGZvciBwcm92aWRpbmcgdGhlIGlt
YWdlIHRocm91Z2ggYSBmaWxlbmFtZTogY2FuIGJlIHBuZyBvciBqcGcsIGFuZCBzaG91bGQgbm90
IGJlIGJpZ2dlciB0aGFuIDE5MjB4MTA4MC4KKyAgICAgICAgICAgICAgKiBUaGlzIGZ1bmN0aW9u
IGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcmxheSdzIHJlbmRlcmVyIHByb2Nlc3MgKi8K
KyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZyb21GaWxl
KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNvbnN0IGNoYXIgKnBjaEZpbGVQ
YXRoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBHZXQgdGhlIG5hdGl2ZSB0ZXh0dXJlIGhh
bmRsZS9kZXZpY2UgZm9yIGFuIG92ZXJsYXkgeW91IGhhdmUgY3JlYXRlZC4KKyAgICAgICAgICAg
ICAgKiBPbiB3aW5kb3dzIHRoaXMgaGFuZGxlIHdpbGwgYmUgYSBJRDNEMTFTaGFkZXJSZXNvdXJj
ZVZpZXcgd2l0aCBhIElEM0QxMVRleHR1cmUyRCBib3VuZC4KKyAgICAgICAgICAgICAgKgorICAg
ICAgICAgICAgICAqIFRoZSB0ZXh0dXJlIHdpbGwgYWx3YXlzIGJlIHNpemVkIHRvIG1hdGNoIHRo
ZSBiYWNraW5nIHRleHR1cmUgeW91IHN1cHBsaWVkIGluIFNldE92ZXJsYXlUZXh0dXJlIGFib3Zl
LgorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogWW91IE1VU1QgY2FsbCBSZWxlYXNl
TmF0aXZlT3ZlcmxheUhhbmRsZSgpIHdpdGggcE5hdGl2ZVRleHR1cmVIYW5kbGUgb25jZSB5b3Ug
YXJlIGRvbmUgd2l0aCB0aGlzIHRleHR1cmUuCisgICAgICAgICAgICAgICoKKyAgICAgICAgICAg
ICAgKiBwTmF0aXZlVGV4dHVyZUhhbmRsZSBpcyBhbiBPVVRQVVQsIGl0IHdpbGwgYmUgYSBwb2lu
dGVyIHRvIGEgSUQzRDExU2hhZGVyUmVzb3VyY2VWaWV3ICouCisgICAgICAgICAgICAgICogcE5h
dGl2ZVRleHR1cmVSZWYgaXMgYW4gSU5QVVQgYW5kIHNob3VsZCBiZSBhIElEM0QxMVJlc291cmNl
ICouIFRoZSBkZXZpY2UgdXNlZCBieSBwTmF0aXZlVGV4dHVyZVJlZiB3aWxsIGJlIHVzZWQgdG8g
YmluZCBwTmF0aXZlVGV4dHVyZUhhbmRsZS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
ICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmUoIFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqKnBOYXRpdmVUZXh0dXJlSGFuZGxlLCB2b2lk
ICpwTmF0aXZlVGV4dHVyZVJlZiwgdWludDMyX3QgKnBXaWR0aCwgdWludDMyX3QgKnBIZWlnaHQs
IHVpbnQzMl90ICpwTmF0aXZlRm9ybWF0LCBFVGV4dHVyZVR5cGUgKnBBUElUeXBlLCBFQ29sb3JT
cGFjZSAqcENvbG9yU3BhY2UsIFZSVGV4dHVyZUJvdW5kc190ICpwVGV4dHVyZUJvdW5kcyApID0g
MDsKKworICAgICAgICAgICAgICAvKiogUmVsZWFzZSB0aGUgcE5hdGl2ZVRleHR1cmVIYW5kbGUg
cHJvdmlkZWQgZnJvbSB0aGUgR2V0T3ZlcmxheVRleHR1cmUgY2FsbCwgdGhpcyBhbGxvd3MgdGhl
IHN5c3RlbSB0byBmcmVlIHRoZSB1bmRlcmx5aW5nIEdQVSByZXNvdXJjZXMgZm9yIHRoaXMgb2Jq
ZWN0LAorICAgICAgICAgICAgICAqIHNvIG9ubHkgZG8gaXQgb25jZSB5b3Ugc3RvcCByZW5kZXJp
bmcgdGhpcyB0ZXh0dXJlLgorICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IEVWUk92ZXJsYXlFcnJvciBSZWxlYXNlTmF0aXZlT3ZlcmxheUhhbmRsZSggVlJPdmVybGF5SGFu
ZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lkICpwTmF0aXZlVGV4dHVyZUhhbmRsZSApID0gMDsK
KworICAgICAgICAgICAgICAvKiogR2V0IHRoZSBzaXplIG9mIHRoZSBvdmVybGF5IHRleHR1cmUg
Ki8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1
cmVTaXplKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQzMl90ICpwV2lk
dGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8g
RGFzaGJvYXJkIE92ZXJsYXkgTWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIENy
ZWF0ZXMgYSBkYXNoYm9hcmQgb3ZlcmxheSBhbmQgcmV0dXJucyBpdHMgaGFuZGxlICovCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2FyZE92ZXJsYXko
IGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlLZXksIGNvbnN0IGNoYXIgKnBjaE92ZXJsYXlGcmllbmRs
eU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUsIFZST3ZlcmxheUhhbmRsZV90
ICpwVGh1bWJuYWlsSGFuZGxlICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBSZXR1cm5zIHRy
dWUgaWYgdGhlIGRhc2hib2FyZCBpcyB2aXNpYmxlICovCisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBJc0Rhc2hib2FyZFZpc2libGUoKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIHJldHVy
bnMgdHJ1ZSBpZiB0aGUgZGFzaGJvYXJkIGlzIHZpc2libGUgYW5kIHRoZSBzcGVjaWZpZWQgb3Zl
cmxheSBpcyB0aGUgYWN0aXZlIHN5c3RlbSBPdmVybGF5ICovCisgICAgICAgICAgICAgIHZpcnR1
YWwgYm9vbCBJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zl
cmxheUhhbmRsZSApID0gMDsKKworICAgICAgICAgICAgICAvKiogU2V0cyB0aGUgZGFzaGJvYXJk
IG92ZXJsYXkgdG8gb25seSBhcHBlYXIgd2hlbiB0aGUgc3BlY2lmaWVkIHByb2Nlc3MgSUQgaGFz
IHNjZW5lIGZvY3VzICovCisgICAgICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNl
dERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MoIFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoq
IEdldHMgdGhlIHByb2Nlc3MgSUQgdGhhdCB0aGlzIGRhc2hib2FyZCBvdmVybGF5IHJlcXVpcmVz
IHRvIGhhdmUgc2NlbmUgZm9jdXMgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5
RXJyb3IgR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyggVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqcHVuUHJvY2Vzc0lkICkgPSAwOworCisgICAgICAg
ICAgICAgIC8qKiBTaG93cyB0aGUgZGFzaGJvYXJkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgU2hvd0Rhc2hib2FyZCggY29uc3QgY2hhciAqcGNoT3ZlcmxheVRvU2hvdyApID0gMDsK
KworICAgICAgICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJhY2tlZCBkZXZpY2UgdGhhdCBoYXMg
dGhlIGxhc2VyIHBvaW50ZXIgaW4gdGhlIGRhc2hib2FyZCAqLworICAgICAgICAgICAgICB2aXJ0
dWFsIHZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkg
PSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBLZXlib2FyZCBtZXRob2RzCisgICAgICAg
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyoqIFNob3cgdGhlIHZpcnR1YWwga2V5Ym9h
cmQgdG8gYWNjZXB0IGlucHV0ICoqLworICAgICAgICAgICAgICB2aXJ0dWFsIEVWUk92ZXJsYXlF
cnJvciBTaG93S2V5Ym9hcmQoIEVHYW1lcGFkVGV4dElucHV0TW9kZSBlSW5wdXRNb2RlLCBFR2Ft
ZXBhZFRleHRJbnB1dExpbmVNb2RlIGVMaW5lSW5wdXRNb2RlLCBjb25zdCBjaGFyICpwY2hEZXNj
cmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjb25zdCBjaGFyICpwY2hFeGlzdGluZ1RleHQs
IGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlICkgPSAwOworCisgICAg
ICAgICAgICAgIHZpcnR1YWwgRVZST3ZlcmxheUVycm9yIFNob3dLZXlib2FyZEZvck92ZXJsYXko
IFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUdhbWVwYWRUZXh0SW5wdXRNb2Rl
IGVJbnB1dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNv
bnN0IGNoYXIgKnBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNvbnN0IGNoYXIg
KnBjaEV4aXN0aW5nVGV4dCwgYm9vbCBiVXNlTWluaW1hbE1vZGUsIHVpbnQ2NF90IHVVc2VyVmFs
dWUgKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIEdldCB0aGUgdGV4dCB0aGF0IHdhcyBlbnRl
cmVkIGludG8gdGhlIHRleHQgaW5wdXQgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0S2V5Ym9hcmRUZXh0KCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVGV4dCwgdWludDMy
X3QgY2NoVGV4dCApID0gMDsKKworICAgICAgICAgICAgICAvKiogSGlkZSB0aGUgdmlydHVhbCBr
ZXlib2FyZCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEhpZGVLZXlib2FyZCgpID0g
MDsKKworICAgICAgICAgICAgICAvKiogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5Ym9hcmQg
aW4gd29ybGQgc3BhY2UgKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRLZXlib2Fy
ZFRyYW5zZm9ybUFic29sdXRlKCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlVHJhY2tpbmdPcmln
aW4sIGNvbnN0IEhtZE1hdHJpeDM0X3QgKnBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9hcmRUcmFu
c2Zvcm0gKSA9IDA7CisKKyAgICAgICAgICAgICAgLyoqIFNldCB0aGUgcG9zaXRpb24gb2YgdGhl
IGtleWJvYXJkIGluIG92ZXJsYXkgc3BhY2UgYnkgdGVsbGluZyBpdCB0byBhdm9pZCBhIHJlY3Rh
bmdsZSBpbiB0aGUgb3ZlcmxheS4gUmVjdGFuZ2xlIGNvb3JkcyBoYXZlICgwLDApIGluIHRoZSBi
b3R0b20gbGVmdCAqKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFNldEtleWJvYXJkUG9z
aXRpb25Gb3JPdmVybGF5KCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEhtZFJl
Y3QyX3QgYXZvaWRSZWN0ICkgPSAwOworCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBPdmVybGF5
IGlucHV0IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNldHMgYSBsaXN0IG9m
IHByaW1pdGl2ZXMgdG8gYmUgdXNlZCBmb3IgY29udHJvbGxlciByYXkgaW50ZXJzZWN0aW9uCisg
ICAgICAgICAgICAgICogdHlwaWNhbGx5IHRoZSBzaXplIG9mIHRoZSB1bmRlcmx5aW5nIFVJIGlu
IHBpeGVscyAobm90IGluIHdvcmxkIHNwYWNlKS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCBF
VlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2soIFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90
ICpwTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90IHVuTnVtTWFza1ByaW1pdGl2ZXMsIHVpbnQzMl90
IHVuUHJpbWl0aXZlU2l6ZSA9IHNpemVvZiggVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1p
dGl2ZV90ICkgKSA9IDA7CisKKyAgICAgICAgICAgICAgdmlydHVhbCBFVlJPdmVybGF5RXJyb3Ig
R2V0T3ZlcmxheUZsYWdzKCBWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHVpbnQz
Ml90ICpwRmxhZ3MgKSA9IDA7CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIE1lc3NhZ2UgYm94
IG1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgICAgICAgLyoqIFNob3cgdGhlIG1lc3NhZ2Ugb3Zl
cmxheS4gVGhpcyB3aWxsIGJsb2NrIGFuZCByZXR1cm4geW91IGEgcmVzdWx0LiAqKi8KKyAgICAg
ICAgICAgICAgdmlydHVhbCBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2UgU2hvd01lc3NhZ2VPdmVy
bGF5KCBjb25zdCBjaGFyKiBwY2hUZXh0LCBjb25zdCBjaGFyKiBwY2hDYXB0aW9uLCBjb25zdCBj
aGFyKiBwY2hCdXR0b24wVGV4dCwgY29uc3QgY2hhciogcGNoQnV0dG9uMVRleHQgPSBudWxscHRy
LCBjb25zdCBjaGFyKiBwY2hCdXR0b24yVGV4dCA9IG51bGxwdHIsIGNvbnN0IGNoYXIqIHBjaEJ1
dHRvbjNUZXh0ID0gbnVsbHB0ciApID0gMDsKKworICAgICAgICAgICAgICAvKiogSWYgdGhlIGNh
bGxpbmcgcHJvY2VzcyBvd25zIHRoZSBvdmVybGF5IGFuZCBpdCdzIG9wZW4sIHRoaXMgd2lsbCBj
bG9zZSBpdC4gKiovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDbG9zZU1lc3NhZ2VPdmVy
bGF5KCkgPSAwOworICAgICAgIH07CisKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJVlJPdmVybGF5XzAxNiI7CisKK30gLy8gbmFtZXNwYWNl
IHZyCisKKy8vIGl2cnJlbmRlcm1vZGVscy5oCituYW1lc3BhY2UgdnIKK3sKKworc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1ID0gImdk
YzIwMTUiOyAgIC8vIENhbm9uaWNhbCBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgZ2RjIDIwMTUg
d2lyZWQgY29udHJvbGxlciwgcHJvdmlkZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Citz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2Ug
PSAiYmFzZSI7ICAgICAgICAgLy8gRm9yIGNvbnRyb2xsZXJzIHdpdGggYW4gdW5hbWJpZ3VvdXMg
J2Jhc2UnLgorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBv
bmVudF9UaXAgPSAidGlwIjsgICAgICAgICAgIC8vIEZvciBjb250cm9sbGVycyB3aXRoIGFuIHVu
YW1iaWd1b3VzICd0aXAnICh1c2VkIGZvciAnbGFzZXItcG9pbnRpbmcnKQorc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5k
Z3JpcCI7IC8vIE5ldXRyYWwsIGFtYmlkZXh0cm91cyBoYW5kLXBvc2Ugd2hlbiBob2xkaW5nIGNv
bnRyb2xsZXIuIE9uIHBsYW5lIGJldHdlZW4gbmV1dHJhbGx5IHBvc2VkIGluZGV4IGZpbmdlciBh
bmQgdGh1bWIKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29udHJvbGxlcl9Db21w
b25lbnRfU3RhdHVzID0gInN0YXR1cyI7ICAgICAgICAgICAgICAvLyAxOjEgYXNwZWN0IHJhdGlv
IHN0YXR1cyBhcmVhLCB3aXRoIGNhbm9uaWNhbCBbMCwxXSB1diBtYXBwaW5nCisKKyNwcmFnbWEg
cGFjayggcHVzaCwgOCApCisKKy8qKiBFcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2l0aCB0aGUgVlIg
Y29tcG9zaXRvciAqLworZW51bSBFVlJSZW5kZXJNb2RlbEVycm9yCit7CisgICAgICAgVlJSZW5k
ZXJNb2RlbEVycm9yX05vbmUgPSAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5n
ID0gMTAwLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ob3RTdXBwb3J0ZWQgPSAyMDAsCisg
ICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0ludmFsaWRBcmcgPSAzMDAsCisgICAgICAgVlJSZW5k
ZXJNb2RlbEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBWUlJlbmRlck1vZGVsRXJy
b3JfTm9TaGFwZXMgPSAzMDIsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlU2hh
cGVzID0gMzAzLAorICAgICAgIFZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMgPSAz
MDQsCisgICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX011bHRpcGxlVGV4dHVyZXMgPSAzMDUsCisg
ICAgICAgVlJSZW5kZXJNb2RlbEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMzA2LAorICAgICAgIFZS
UmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIFZSUmVuZGVy
TW9kZWxFcnJvcl9Ob3RFbm91Z2hUZXhDb29yZHMgPSAzMDgsCisKKyAgICAgICBWUlJlbmRlck1v
ZGVsRXJyb3JfSW52YWxpZFRleHR1cmUgPSA0MDAsCit9OworCit0eXBlZGVmIHVpbnQzMl90IFZS
Q29tcG9uZW50UHJvcGVydGllczsKKworZW51bSBFVlJDb21wb25lbnRQcm9wZXJ0eQoreworICAg
ICAgIFZSQ29tcG9uZW50UHJvcGVydHlfSXNTdGF0aWMgPSAoMSA8PCAwKSwKKyAgICAgICBWUkNv
bXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSA9ICgxIDw8IDEpLAorICAgICAgIFZSQ29tcG9uZW50
UHJvcGVydHlfSXNUb3VjaGVkID0gKDEgPDwgMiksCisgICAgICAgVlJDb21wb25lbnRQcm9wZXJ0
eV9Jc1ByZXNzZWQgPSAoMSA8PCAzKSwKKyAgICAgICBWUkNvbXBvbmVudFByb3BlcnR5X0lzU2Ny
b2xsZWQgPSAoMSA8PCA0KSwKK307CisKKy8qKiBEZXNjcmliZXMgc3RhdGUgaW5mb3JtYXRpb24g
YWJvdXQgYSByZW5kZXItbW9kZWwgY29tcG9uZW50LCBpbmNsdWRpbmcgdHJhbnNmb3JtcyBhbmQg
b3RoZXIgZHluYW1pYyBwcm9wZXJ0aWVzICovCitzdHJ1Y3QgUmVuZGVyTW9kZWxfQ29tcG9uZW50
U3RhdGVfdAoreworICAgICAgIEhtZE1hdHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRSZW5k
ZXJNb2RlbDsgIC8vIFRyYW5zZm9ybSByZXF1aXJlZCB3aGVuIGRyYXdpbmcgdGhlIGNvbXBvbmVu
dCByZW5kZXIgbW9kZWwKKyAgICAgICBIbWRNYXRyaXgzNF90IG1UcmFja2luZ1RvQ29tcG9uZW50
TG9jYWw7ICAgICAgICAvLyBUcmFuc2Zvcm0gYXZhaWxhYmxlIGZvciBhdHRhY2hpbmcgdG8gYSBs
b2NhbCBjb21wb25lbnQgY29vcmRpbmF0ZSBzeXN0ZW0gKC1aIG91dCBmcm9tIHN1cmZhY2UgKQor
ICAgICAgIFZSQ29tcG9uZW50UHJvcGVydGllcyB1UHJvcGVydGllczsKK307CisKKy8qKiBBIHNp
bmdsZSB2ZXJ0ZXggaW4gYSByZW5kZXIgbW9kZWwgKi8KK3N0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0
ZXhfdAoreworICAgICAgIEhtZFZlY3RvcjNfdCB2UG9zaXRpb247ICAgICAgICAgICAgICAvLyBw
b3NpdGlvbiBpbiBtZXRlcnMgaW4gZGV2aWNlIHNwYWNlCisgICAgICAgSG1kVmVjdG9yM190IHZO
b3JtYWw7CisgICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07Cit9OworCisvKiogQSB0ZXh0
dXJlIG1hcCBmb3IgdXNlIG9uIGEgcmVuZGVyIG1vZGVsICovCisjaWYgZGVmaW5lZChfX2xpbnV4
X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5h
bGx5IGRlZmluZWQgbWlzLXBhY2tlZCBvbiBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNvbXBh
dGliaWxpdHkuIAorI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3QgUmVu
ZGVyTW9kZWxfVGV4dHVyZU1hcF90Cit7CisgICAgICAgdWludDE2X3QgdW5XaWR0aCwgdW5IZWln
aHQ7IC8vIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHRleHR1cmUgbWFwIGluIHBpeGVscworICAg
ICAgIGNvbnN0IHVpbnQ4X3QgKnJ1YlRleHR1cmVNYXBEYXRhOyAgICAgICAvLyBNYXAgdGV4dHVy
ZSBkYXRhLiBBbGwgdGV4dHVyZXMgYXJlIFJHQkEgd2l0aCA4IGJpdHMgcGVyIGNoYW5uZWwgcGVy
IHBpeGVsLiBEYXRhIHNpemUgaXMgd2lkdGggKiBoZWlnaHQgKiA0dWIKK307CisjaWYgZGVmaW5l
ZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSAKKyNwcmFnbWEgcGFjayggcG9wICkK
KyNlbmRpZgorCisvKiogIFNlc3Npb24gdW5pcXVlIHRleHR1cmUgaWRlbnRpZmllci4gUmVuZGVy
bW9kZWxzIHdoaWNoIHNoYXJlIHRoZSBzYW1lIHRleHR1cmUgd2lsbCBoYXZlIHRoZSBzYW1lIGlk
LgorSURzIDwwIGRlbm90ZSB0aGUgdGV4dHVyZSBpcyBub3QgcHJlc2VudCAqLworCit0eXBlZGVm
IGludDMyX3QgVGV4dHVyZUlEX3Q7CisKK2NvbnN0IFRleHR1cmVJRF90IElOVkFMSURfVEVYVFVS
RV9JRCA9IC0xOworCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19BUFBMRV9f
KSAKKy8vIFRoaXMgc3RydWN0dXJlIHdhcyBvcmlnaW5hbGx5IGRlZmluZWQgbWlzLXBhY2tlZCBv
biBMaW51eCwgcHJlc2VydmVkIGZvciAKKy8vIGNvbXBhdGliaWxpdHkuIAorI3ByYWdtYSBwYWNr
KCBwdXNoLCA0ICkKKyNlbmRpZgorCitzdHJ1Y3QgUmVuZGVyTW9kZWxfdAoreworICAgICAgIGNv
bnN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICpyVmVydGV4RGF0YTsgICAgICAgLy8gVmVydGV4IGRh
dGEgZm9yIHRoZSBtZXNoCisgICAgICAgdWludDMyX3QgdW5WZXJ0ZXhDb3VudDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgdmVydGljZXMgaW4g
dGhlIHZlcnRleCBkYXRhCisgICAgICAgY29uc3QgdWludDE2X3QgKnJJbmRleERhdGE7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmRpY2VzIGludG8gdGhlIHZlcnRleCBk
YXRhIGZvciBlYWNoIHRyaWFuZ2xlCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHRyaWFuZ2xlcyBp
biB0aGUgbWVzaC4gSW5kZXggY291bnQgaXMgMyAqIFRyaWFuZ2xlQ291bnQKKyAgICAgICBUZXh0
dXJlSURfdCBkaWZmdXNlVGV4dHVyZUlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT
ZXNzaW9uIHVuaXF1ZSB0ZXh0dXJlIGlkZW50aWZpZXIuIFJlbmRlcm1vZGVscyB3aGljaCBzaGFy
ZSB0aGUgc2FtZSB0ZXh0dXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSBpZC4gPDAgPT0gdGV4dHVyZSBu
b3QgcHJlc2VudAorfTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX0FQUExF
X18pIAorI3ByYWdtYSBwYWNrKCBwb3AgKQorI2VuZGlmCisKKworc3RydWN0IFJlbmRlck1vZGVs
X0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29sIGJTY3JvbGxXaGVlbFZpc2li
bGU7IC8vIGlzIHRoaXMgY29udHJvbGxlciBjdXJyZW50bHkgc2V0IHRvIGJlIGluIGEgc2Nyb2xs
IHdoZWVsIG1vZGUKK307CisKKyNwcmFnbWEgcGFjayggcG9wICkKKworY2xhc3MgSVZSUmVuZGVy
TW9kZWxzCit7CitwdWJsaWM6CisKKyAgICAgICAvKiogTG9hZHMgYW5kIHJldHVybnMgYSByZW5k
ZXIgbW9kZWwgZm9yIHVzZSBpbiB0aGUgYXBwbGljYXRpb24uIHBjaFJlbmRlck1vZGVsTmFtZSBz
aG91bGQgYmUgYSByZW5kZXIgbW9kZWwgbmFtZQorICAgICAgICogZnJvbSB0aGUgUHJvcF9SZW5k
ZXJNb2RlbE5hbWVfU3RyaW5nIHByb3BlcnR5IG9yIGFuIGFic29sdXRlIHBhdGggbmFtZSB0byBh
IHJlbmRlciBtb2RlbCBvbiBkaXNrLiAKKyAgICAgICAqCisgICAgICAgKiBUaGUgcmVzdWx0aW5n
IHJlbmRlciBtb2RlbCBpcyB2YWxpZCB1bnRpbCBWUl9TaHV0ZG93bigpIGlzIGNhbGxlZCBvciB1
bnRpbCBGcmVlUmVuZGVyTW9kZWwoKSBpcyBjYWxsZWQuIFdoZW4gdGhlIAorICAgICAgICogYXBw
bGljYXRpb24gaXMgZmluaXNoZWQgd2l0aCB0aGUgcmVuZGVyIG1vZGVsIGl0IHNob3VsZCBjYWxs
IEZyZWVSZW5kZXJNb2RlbCgpIHRvIGZyZWUgdGhlIG1lbW9yeSBhc3NvY2lhdGVkCisgICAgICAg
KiB3aXRoIHRoZSBtb2RlbC4KKyAgICAgICAqCisgICAgICAgKiBUaGUgbWV0aG9kIHJldHVybnMg
VlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmcgd2hpbGUgdGhlIHJlbmRlciBtb2RlbCBpcyBzdGls
bCBiZWluZyBsb2FkZWQuCisgICAgICAgKiBUaGUgbWV0aG9kIHJldHVybnMgVlJSZW5kZXJNb2Rl
bEVycm9yX05vbmUgb25jZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2Ugd2lsbCByZXR1
cm4gYW4gZXJyb3IuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRS
ZW5kZXJNb2RlbF9Bc3luYyggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBSZW5kZXJN
b2RlbF90ICoqcHBSZW5kZXJNb2RlbCApID0gMDsKKworICAgICAgIC8qKiBGcmVlcyBhIHByZXZp
b3VzbHkgcmV0dXJuZWQgcmVuZGVyIG1vZGVsCisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8gY2Fs
bCB0aGlzIG9uIGEgbnVsbCBwdHIuICovCisgICAgICAgdmlydHVhbCB2b2lkIEZyZWVSZW5kZXJN
b2RlbCggUmVuZGVyTW9kZWxfdCAqcFJlbmRlck1vZGVsICkgPSAwOworCisgICAgICAgLyoqIExv
YWRzIGFuZCByZXR1cm5zIGEgdGV4dHVyZSBmb3IgdXNlIGluIHRoZSBhcHBsaWNhdGlvbi4gKi8K
KyAgICAgICB2aXJ0dWFsIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9hZFRleHR1cmVfQXN5bmMoIFRl
eHR1cmVJRF90IHRleHR1cmVJZCwgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90ICoqcHBUZXh0dXJl
ICkgPSAwOworCisgICAgICAgLyoqIEZyZWVzIGEgcHJldmlvdXNseSByZXR1cm5lZCB0ZXh0dXJl
CisgICAgICAgKiAgIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG9uIGEgbnVsbCBwdHIuICovCisg
ICAgICAgdmlydHVhbCB2b2lkIEZyZWVUZXh0dXJlKCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3Qg
KnBUZXh0dXJlICkgPSAwOworCisgICAgICAgLyoqIENyZWF0ZXMgYSBEM0QxMSB0ZXh0dXJlIGFu
ZCBsb2FkcyBkYXRhIGludG8gaXQuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVy
cm9yIExvYWRUZXh0dXJlRDNEMTFfQXN5bmMoIFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAq
cEQzRDExRGV2aWNlLCB2b2lkICoqcHBEM0QxMVRleHR1cmUyRCApID0gMDsKKworICAgICAgIC8q
KiBIZWxwZXIgZnVuY3Rpb24gdG8gY29weSB0aGUgYml0cyBpbnRvIGFuIGV4aXN0aW5nIHRleHR1
cmUuICovCisgICAgICAgdmlydHVhbCBFVlJSZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVy
ZUQzRDExX0FzeW5jKCBUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHZvaWQgKnBEc3RUZXh0dXJlICkg
PSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGZyZWUgdGV4dHVyZXMgY3JlYXRlZCB3aXRo
IExvYWRUZXh0dXJlRDNEMTFfQXN5bmMgaW5zdGVhZCBvZiBjYWxsaW5nIFJlbGVhc2Ugb24gdGhl
bS4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRnJlZVRleHR1cmVEM0QxMSggdm9pZCAqcEQzRDEx
VGV4dHVyZTJEICkgPSAwOworCisgICAgICAgLyoqIFVzZSB0aGlzIHRvIGdldCB0aGUgbmFtZXMg
b2YgYXZhaWxhYmxlIHJlbmRlciBtb2RlbHMuICBJbmRleCBkb2VzIG5vdCBjb3JyZWxhdGUgdG8g
YSB0cmFja2VkIGRldmljZSBpbmRleCwgYnV0CisgICAgICAgKiBpcyBvbmx5IHVzZWQgZm9yIGl0
ZXJhdGluZyBvdmVyIGFsbCBhdmFpbGFibGUgcmVuZGVyIG1vZGVscy4gIElmIHRoZSBpbmRleCBp
cyBvdXQgb2YgcmFuZ2UsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4KKyAgICAgICAqIE90
aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciByZXF1aXJlZCBm
b3IgdGhlIG5hbWUuICovCisgICAgICAgdmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbE5h
bWUoIHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwgVlJfT1VUX1NUUklORygpIGNoYXIgKnBj
aFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2RlbE5hbWVMZW4gKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSByZW5kZXIgbW9kZWxz
LiAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0UmVuZGVyTW9kZWxDb3VudCgpID0gMDsK
KworCisgICAgICAgLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiBjb21wb25lbnRzIG9mIHRoZSBz
cGVjaWZpZWQgcmVuZGVyIG1vZGVsLgorICAgICAgICogIENvbXBvbmVudHMgYXJlIHVzZWZ1bCB3
aGVuIGNsaWVudCBhcHBsaWNhdGlvbiB3aXNoIHRvIGRyYXcsIGxhYmVsLCBvciBvdGhlcndpc2Ug
aW50ZXJhY3Qgd2l0aCBjb21wb25lbnRzIG9mIHRyYWNrZWQgb2JqZWN0cy4KKyAgICAgICAqICBF
eGFtcGxlcyBjb250cm9sbGVyIGNvbXBvbmVudHM6CisgICAgICAgKiAgIHJlbmRlcmFibGUgdGhp
bmdzIHN1Y2ggYXMgdHJpZ2dlcnMsIGJ1dHRvbnMKKyAgICAgICAqICAgbm9uLXJlbmRlcmFibGUg
dGhpbmdzIHdoaWNoIGluY2x1ZGUgY29vcmRpbmF0ZSBzeXN0ZW1zIHN1Y2ggYXMgJ3RpcCcsICdi
YXNlJywgYSBuZXV0cmFsIGNvbnRyb2xsZXIgYWdub3N0aWMgaGFuZC1wb3NlCisgICAgICAgKiAg
IElmIGFsbCBjb250cm9sbGVyIGNvbXBvbmVudHMgYXJlIGVudW1lcmF0ZWQgYW5kIHJlbmRlcmVk
LCBpdCB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gZHJhd2luZyB0aGUgdHJhZGl0aW9uYWwgcmVuZGVy
IG1vZGVsCisgICAgICAgKiAgIFJldHVybnMgMCBpZiBjb21wb25lbnRzIG5vdCBzdXBwb3J0ZWQs
ID4wIG90aGVyd2lzZSAqLworICAgICAgIHZpcnR1YWwgdWludDMyX3QgR2V0Q29tcG9uZW50Q291
bnQoIGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSApID0gMDsKKworICAgICAgIC8qKiBV
c2UgdGhpcyB0byBnZXQgdGhlIG5hbWVzIG9mIGF2YWlsYWJsZSBjb21wb25lbnRzLiAgSW5kZXgg
ZG9lcyBub3QgY29ycmVsYXRlIHRvIGEgdHJhY2tlZCBkZXZpY2UgaW5kZXgsIGJ1dAorICAgICAg
ICogaXMgb25seSB1c2VkIGZvciBpdGVyYXRpbmcgb3ZlciBhbGwgYXZhaWxhYmxlIGNvbXBvbmVu
dHMuICBJZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0
dXJuIDAuCisgICAgICAgKiBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRo
ZSBidWZmZXIgcmVxdWlyZWQgZm9yIHRoZSBuYW1lLiAqLworICAgICAgIHZpcnR1YWwgdWludDMy
X3QgR2V0Q29tcG9uZW50TmFtZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50
MzJfdCB1bkNvbXBvbmVudEluZGV4LCBWUl9PVVRfU1RSSU5HKCApIGNoYXIgKnBjaENvbXBvbmVu
dE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50TmFtZUxlbiApID0gMDsKKworICAgICAgIC8qKiBH
ZXQgdGhlIGJ1dHRvbiBtYXNrIGZvciBhbGwgYnV0dG9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcyBj
b21wb25lbnQKKyAgICAgICAqICAgSWYgbm8gYnV0dG9ucyAob3IgYXhlcykgYXJlIGFzc29jaWF0
ZWQgd2l0aCB0aGlzIGNvbXBvbmVudCwgcmV0dXJuIDAKKyAgICAgICAqICAgTm90ZTogbXVsdGlw
bGUgY29tcG9uZW50cyBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIGJ1dHRvbi4gRXg6
IHR3byBncmlwIGJ1dHRvbnMgb24gYSBzaW5nbGUgY29udHJvbGxlci4KKyAgICAgICAqICAgTm90
ZTogQSBzaW5nbGUgY29tcG9uZW50IG1heSBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgYnV0
dG9ucy4gRXg6IEEgdHJhY2twYWQgd2hpY2ggYWxzbyBwcm92aWRlcyAiRC1wYWQiIGZ1bmN0aW9u
YWxpdHkgKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IEdldENvbXBvbmVudEJ1dHRvbk1hc2so
IGNvbnN0IGNoYXIgKnBjaFJlbmRlck1vZGVsTmFtZSwgY29uc3QgY2hhciAqcGNoQ29tcG9uZW50
TmFtZSApID0gMDsKKworICAgICAgIC8qKiBVc2UgdGhpcyB0byBnZXQgdGhlIHJlbmRlciBtb2Rl
bCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIHJlbmRlcm1vZGUvY29tcG9uZW50IGNvbWJpbmF0aW9u
LCB0byBiZSBwYXNzZWQgdG8gTG9hZFJlbmRlck1vZGVsLgorICAgICAgICogSWYgdGhlIGNvbXBv
bmVudCBuYW1lIGlzIG91dCBvZiByYW5nZSwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgor
ICAgICAgICogT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IHJlcXVpcmVkIGZvciB0aGUgbmFtZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldENv
bXBvbmVudFJlbmRlck1vZGVsTmFtZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBj
b25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lLCBWUl9PVVRfU1RSSU5HKCApIGNoYXIgKnBjaENv
bXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRSZW5kZXJNb2RlbE5h
bWVMZW4gKSA9IDA7CisKKyAgICAgICAvKiogVXNlIHRoaXMgdG8gcXVlcnkgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIGNvbXBvbmVudCwgYXMgYSBmdW5jdGlvbiBvZiB0aGUgY29udHJvbGxlciBzdGF0
ZS4KKyAgICAgICAqCisgICAgICAgKiBGb3IgZHluYW1pYyBjb250cm9sbGVyIGNvbXBvbmVudHMg
KGV4OiB0cmlnZ2VyKSB2YWx1ZXMgd2lsbCByZWZsZWN0IGNvbXBvbmVudCBtb3Rpb25zCisgICAg
ICAgKiBGb3Igc3RhdGljIGNvbXBvbmVudHMgdGhpcyB3aWxsIHJldHVybiBhIGNvbnNpc3RlbnQg
dmFsdWUgaW5kZXBlbmRlbnQgb2YgdGhlIFZSQ29udHJvbGxlclN0YXRlX3QKKyAgICAgICAqCisg
ICAgICAgKiBJZiB0aGUgcGNoUmVuZGVyTW9kZWxOYW1lIG9yIHBjaENvbXBvbmVudE5hbWUgaXMg
aW52YWxpZCwgdGhpcyB3aWxsIHJldHVybiBmYWxzZSAoYW5kIHRyYW5zZm9ybXMgd2lsbCBiZSBz
ZXQgdG8gaWRlbnRpdHkpLgorICAgICAgICogT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZQorICAgICAg
ICogTm90ZTogRm9yIGR5bmFtaWMgb2JqZWN0cywgdmlzaWJpbGl0eSBtYXkgYmUgZHluYW1pYy4g
KEkuZS4sIHRydWUvZmFsc2Ugd2lsbCBiZSByZXR1cm5lZCBiYXNlZCBvbiBjb250cm9sbGVyIHN0
YXRlIGFuZCBjb250cm9sbGVyIG1vZGUgc3RhdGUgKSAqLworICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDb21wb25lbnRTdGF0ZSggY29uc3QgY2hhciAqcGNoUmVuZGVyTW9kZWxOYW1lLCBjb25zdCBj
aGFyICpwY2hDb21wb25lbnROYW1lLCBjb25zdCB2cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqcENv
bnRyb2xsZXJTdGF0ZSwgY29uc3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCAq
cFN0YXRlLCBSZW5kZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90ICpwQ29tcG9uZW50U3RhdGUgKSA9
IDA7CisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSByZW5kZXIgbW9kZWwgaGFzIGEg
Y29tcG9uZW50IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lICovCisgICAgICAgdmlydHVhbCBib29s
IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUs
IGNvbnN0IGNoYXIgKnBjaENvbXBvbmVudE5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJu
cyB0aGUgVVJMIG9mIHRoZSB0aHVtYm5haWwgaW1hZ2UgZm9yIHRoaXMgcmVuZGVybW9kZWwgKi8K
KyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKCBjb25z
dCBjaGFyICpwY2hSZW5kZXJNb2RlbE5hbWUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hUaHVt
Ym5haWxVUkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCB2cjo6RVZSUmVuZGVyTW9kZWxF
cnJvciAqcGVFcnJvciApID0gMDsKKworICAgICAgIC8qKiBQcm92aWRlcyBhIHJlbmRlciBtb2Rl
bCBwYXRoIHRoYXQgd2lsbCBsb2FkIHRoZSB1bnNraW5uZWQgbW9kZWwgaWYgdGhlIG1vZGVsIG5h
bWUgcHJvdmlkZWQgaGFzIGJlZW4gcmVwbGFjZSBieSB0aGUgdXNlci4gSWYgdGhlIG1vZGVsCisg
ICAgICAgKiBoYXNuJ3QgYmVlbiByZXBsYWNlZCB0aGUgcGF0aCB2YWx1ZSB3aWxsIHN0aWxsIGJl
IGEgdmFsaWQgcGF0aCB0byBsb2FkIHRoZSBtb2RlbC4gUGFzcyB0aGlzIHRvIExvYWRSZW5kZXJN
b2RlbF9Bc3luYywgZXRjLiB0byBsb2FkIHRoZQorICAgICAgICogbW9kZWwuICovCisgICAgICAg
dmlydHVhbCB1aW50MzJfdCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCggY29uc3QgY2hhciAq
cGNoUmVuZGVyTW9kZWxOYW1lLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoT3JpZ2luYWxQYXRo
LCB1aW50MzJfdCB1bk9yaWdpbmFsUGF0aExlbiwgdnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKnBl
RXJyb3IgKSA9IDA7CisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBmb3IgYSByZW5kZXIg
bW9kZWwgZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKkdldFJlbmRlck1vZGVs
RXJyb3JOYW1lRnJvbUVudW0oIHZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIGVycm9yICkgPSAwOwor
fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiA9
ICJJVlJSZW5kZXJNb2RlbHNfMDA1IjsKKworfQorCisKKy8vIGl2cmV4dGVuZGVkZGlzcGxheS5o
CituYW1lc3BhY2UgdnIKK3sKKworICAgICAgIC8qKiBOT1RFOiBVc2Ugb2YgdGhpcyBpbnRlcmZh
Y2UgaXMgbm90IHJlY29tbWVuZGVkIGluIHByb2R1Y3Rpb24gYXBwbGljYXRpb25zLiBJdCB3aWxs
IG5vdCB3b3JrIGZvciBkaXNwbGF5cyB3aGljaCB1c2UKKyAgICAgICAqIGRpcmVjdC10by1kaXNw
bGF5IG1vZGUuIENyZWF0aW5nIG91ciBvd24gd2luZG93IGlzIGFsc28gaW5jb21wYXRpYmxlIHdp
dGggdGhlIFZSIGNvbXBvc2l0b3IgYW5kIGlzIG5vdCBhdmFpbGFibGUgd2hlbiB0aGUgY29tcG9z
aXRvciBpcyBydW5uaW5nLiAqLworICAgICAgIGNsYXNzIElWUkV4dGVuZGVkRGlzcGxheQorICAg
ICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLyoqIFNpemUgYW5kIHBvc2l0
aW9uIHRoYXQgdGhlIHdpbmRvdyBuZWVkcyB0byBiZSBvbiB0aGUgVlIgZGlzcGxheS4gKi8KKyAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFdpbmRvd0JvdW5kcyggaW50MzJfdCAqcG5YLCBp
bnQzMl90ICpwblksIHVpbnQzMl90ICpwbldpZHRoLCB1aW50MzJfdCAqcG5IZWlnaHQgKSA9IDA7
CisKKyAgICAgICAgICAgICAgLyoqIEdldHMgdGhlIHZpZXdwb3J0IGluIHRoZSBmcmFtZSBidWZm
ZXIgdG8gZHJhdyB0aGUgb3V0cHV0IG9mIHRoZSBkaXN0b3J0aW9uIGludG8gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCB2b2lkIEdldEV5ZU91dHB1dFZpZXdwb3J0KCBFVlJFeWUgZUV5ZSwgdWlu
dDMyX3QgKnBuWCwgdWludDMyX3QgKnBuWSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpw
bkhlaWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogW0QzRDEwLzExIE9ubHldCisgICAg
ICAgICAgICAgICogUmV0dXJucyB0aGUgYWRhcHRlciBpbmRleCBhbmQgb3V0cHV0IGluZGV4IHRo
YXQgdGhlIHVzZXIgc2hvdWxkIHBhc3MgaW50byBFbnVtQWRhcHRlcnMgYW5kIEVudW1PdXRwdXRz
CisgICAgICAgICAgICAgICogdG8gY3JlYXRlIHRoZSBkZXZpY2UgYW5kIHN3YXAgY2hhaW4gaW4g
RFgxMCBhbmQgRFgxMS4gSWYgYW4gZXJyb3Igb2NjdXJzIGJvdGggaW5kaWNlcyB3aWxsIGJlIHNl
dCB0byAtMS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdl
dERYR0lPdXRwdXRJbmZvKCBpbnQzMl90ICpwbkFkYXB0ZXJJbmRleCwgaW50MzJfdCAqcG5BZGFw
dGVyT3V0cHV0SW5kZXggKSA9IDA7CisKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJVlJFeHRlbmRlZERp
c3BsYXlfMDAxIjsKKworfQorCisKKy8vIGl2cnRyYWNrZWRjYW1lcmEuaAorbmFtZXNwYWNlIHZy
Cit7CisKK2NsYXNzIElWUlRyYWNrZWRDYW1lcmEKK3sKK3B1YmxpYzoKKyAgICAgICAvKiogUmV0
dXJucyBhIHN0cmluZyBmb3IgYW4gZXJyb3IgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIg
KkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIGVD
YW1lcmFFcnJvciApID0gMDsKKworICAgICAgIC8qKiBGb3IgY29udmVuaWVuY2UsIHNhbWUgYXMg
dHJhY2tlZCBwcm9wZXJ0eSByZXF1ZXN0IFByb3BfSGFzQ2FtZXJhX0Jvb2wgKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJhKCB2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QgbkRldmljZUluZGV4LCBib29sICpwSGFzQ2FtZXJhICkgPSAwOworCisgICAg
ICAgLyoqIEdldHMgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJhbWUuICovCisgICAgICAgdmlydHVhbCB2
cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSggdnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IG5EZXZpY2VJbmRleCwgdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUg
ZUZyYW1lVHlwZSwgdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhlaWdodCwgdWludDMy
X3QgKnBuRnJhbWVCdWZmZXJTaXplICkgPSAwOworCisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3MoIHZyOjpUcmFja2VkRGV2aWNlSW5k
ZXhfdCBuRGV2aWNlSW5kZXgsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5
cGUsIHZyOjpIbWRWZWN0b3IyX3QgKnBGb2NhbExlbmd0aCwgdnI6OkhtZFZlY3RvcjJfdCAqcENl
bnRlciApID0gMDsKKworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBH
ZXRDYW1lcmFQcm9qZWN0aW9uKCB2cjo6VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4
LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpOZWFy
LCBmbG9hdCBmbFpGYXIsIHZyOjpIbWRNYXRyaXg0NF90ICpwUHJvamVjdGlvbiApID0gMDsKKwor
ICAgICAgIC8qKiBBY3F1aXJpbmcgc3RyZWFtaW5nIHNlcnZpY2UgcGVybWl0cyB2aWRlbyBzdHJl
YW1pbmcgZm9yIHRoZSBjYWxsZXIuIFJlbGVhc2luZyBoaW50cyB0aGUgc3lzdGVtIHRoYXQgdmlk
ZW8gc2VydmljZXMgZG8gbm90IG5lZWQgdG8gYmUgbWFpbnRhaW5lZCBmb3IgdGhpcyBjbGllbnQu
CisgICAgICAgKiBJZiB0aGUgY2FtZXJhIGhhcyBub3QgYWxyZWFkeSBiZWVuIGFjdGl2YXRlZCwg
YSBvbmUgdGltZSBzcGluIHVwIG1heSBpbmN1ciBzb21lIGF1dG8gZXhwb3N1cmUgYXMgd2VsbCBh
cyBpbml0aWFsIHN0cmVhbWluZyBmcmFtZSBkZWxheXMuCisgICAgICAgKiBUaGUgY2FtZXJhIHNo
b3VsZCBiZSBjb25zaWRlcmVkIGEgZ2xvYmFsIHJlc291cmNlIGFjY2Vzc2libGUgZm9yIHNoYXJl
ZCBjb25zdW1wdGlvbiBidXQgbm90IGV4Y2x1c2l2ZSB0byBhbnkgY2FsbGVyLgorICAgICAgICog
VGhlIGNhbWVyYSBtYXkgZ28gaW5hY3RpdmUgZHVlIHRvIGxhY2sgb2YgYWN0aXZlIGNvbnN1bWVy
cyBvciBoZWFkc2V0IGlkbGVuZXNzLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRD
YW1lcmFFcnJvciBBY3F1aXJlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICpwSGFuZGxl
ICkgPSAwOworICAgICAgIHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBSZWxlYXNl
VmlkZW9TdHJlYW1pbmdTZXJ2aWNlKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2Vk
Q2FtZXJhICkgPSAwOworCisgICAgICAgLyoqIENvcGllcyB0aGUgaW1hZ2UgZnJhbWUgaW50byBh
IGNhbGxlcidzIHByb3ZpZGVkIGJ1ZmZlci4gVGhlIGltYWdlIGRhdGEgaXMgY3VycmVudGx5IHBy
b3ZpZGVkIGFzIFJHQkEgZGF0YSwgNCBieXRlcyBwZXIgcGl4ZWwuCisgICAgICAgKiBBIGNhbGxl
ciBjYW4gcHJvdmlkZSBudWxsIGZvciB0aGUgZnJhbWVidWZmZXIgb3IgZnJhbWVoZWFkZXIgaWYg
bm90IGRlc2lyZWQuIFJlcXVlc3RpbmcgdGhlIGZyYW1lIGhlYWRlciBmaXJzdCwgZm9sbG93ZWQg
YnkgdGhlIGZyYW1lIGJ1ZmZlciBhbGxvd3MKKyAgICAgICAqIHRoZSBjYWxsZXIgdG8gZGV0ZXJt
aW5lIGlmIHRoZSBmcmFtZSBhcyBhZHZhbmNlZCBwZXIgdGhlIGZyYW1lIGhlYWRlciBzZXF1ZW5j
ZS4gCisgICAgICAgKiBJZiB0aGVyZSBpcyBubyBmcmFtZSBhdmFpbGFibGUgeWV0LCBkdWUgdG8g
aW5pdGlhbCBjYW1lcmEgc3BpbnVwIG9yIHJlLWFjdGl2YXRpb24sIHRoZSBlcnJvciB3aWxsIGJl
IFZSVHJhY2tlZENhbWVyYUVycm9yX05vRnJhbWVBdmFpbGFibGUuCisgICAgICAgKiBJZGVhbGx5
IGEgY2FsbGVyIHNob3VsZCBiZSBwb2xsaW5nIGF0IH4xNm1zIGludGVydmFscyAqLworICAgICAg
IHZpcnR1YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbUZyYW1lQnVm
ZmVyKCB2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCB2cjo6RVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICpwRnJhbWVCdWZmZXIsIHVpbnQz
Ml90IG5GcmFtZUJ1ZmZlclNpemUsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
KnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0gMDsKKworICAgICAg
IC8qKiBHZXRzIHNpemUgb2YgdGhlIGltYWdlIGZyYW1lLiAqLworICAgICAgIHZpcnR1YWwgdnI6
OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVTaXplKCB2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKnBUZXh0dXJlQm91bmRzLCB1
aW50MzJfdCAqcG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOyAKKworICAgICAgIC8q
KiBBY2Nlc3MgYSBzaGFyZWQgRDNEMTEgdGV4dHVyZSBmb3IgdGhlIHNwZWNpZmllZCB0cmFja2Vk
IGNhbWVyYSBzdHJlYW0uCisgICAgICAgKiBUaGUgY2FtZXJhIGZyYW1lIHR5cGUgVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIGlzIG5vdCBzdXBwb3J0ZWQgZGlyZWN0bHkgYXMg
YSBzaGFyZWQgdGV4dHVyZS4gSXQgaXMgYW4gaW50ZXJpb3Igc3VicmVnaW9uIG9mIHRoZSBzaGFy
ZWQgdGV4dHVyZSBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkLgor
ICAgICAgICogSW5zdGVhZCwgdXNlIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUoKSB3aXRoIFZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCB0byBkZXRlcm1pbmUgdGhlIHByb3Bl
ciBpbnRlcmlvciBzdWJyZWdpb24gYm91bmRzIGFsb25nIHdpdGggR2V0VmlkZW9TdHJlYW1UZXh0
dXJlRDNEMTEoKSB3aXRoCisgICAgICAgKiBWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11
bVVuZGlzdG9ydGVkIHRvIHByb3ZpZGUgdGhlIHRleHR1cmUuIFRoZSBWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIHdpbGwgeWllbGQgYW4gaW1hZ2Ugd2hlcmUgdGhl
IGludmFsaWQgcmVnaW9ucyBhcmUgZGVjb2RlZAorICAgICAgICogYnkgdGhlIGFscGhhIGNoYW5u
ZWwgaGF2aW5nIGEgemVybyBjb21wb25lbnQuIFRoZSB2YWxpZCByZWdpb25zIGFsbCBoYXZlIGEg
bm9uLXplcm8gYWxwaGEgY29tcG9uZW50LiBUaGUgc3VicmVnaW9uIGFzIGRlc2NyaWJlZCBieSBW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfVW5kaXN0b3J0ZWQgCisgICAgICAgKiBndWFyYW50ZWVz
IGEgcmVjdGFuZ2xlIHdoZXJlIGFsbCBwaXhlbHMgYXJlIHZhbGlkLiAqLworICAgICAgIHZpcnR1
YWwgdnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSgg
dnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwgdnI6OkVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgdm9pZCAqcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwg
dm9pZCAqKnBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcsIHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZy
YW1lSGVhZGVyX3QgKnBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSApID0g
MDsKKworICAgICAgIC8qKiBBY2Nlc3MgYSBzaGFyZWQgR0wgdGV4dHVyZSBmb3IgdGhlIHNwZWNp
ZmllZCB0cmFja2VkIGNhbWVyYSBzdHJlYW0gKi8KKyAgICAgICB2aXJ0dWFsIHZyOjpFVlJUcmFj
a2VkQ2FtZXJhRXJyb3IgR2V0VmlkZW9TdHJlYW1UZXh0dXJlR0woIHZyOjpUcmFja2VkQ2FtZXJh
SGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVG
cmFtZVR5cGUsIHZyOjpnbFVJbnRfdCAqcGdsVGV4dHVyZUlkLCB2cjo6Q2FtZXJhVmlkZW9TdHJl
YW1GcmFtZUhlYWRlcl90ICpwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRlclNpemUg
KSA9IDA7CisgICAgICAgdmlydHVhbCB2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIFJlbGVhc2VW
aWRlb1N0cmVhbVRleHR1cmVHTCggdnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENh
bWVyYSwgdnI6OmdsVUludF90IGdsVGV4dHVyZUlkICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24gPSAiSVZSVHJhY2tlZENhbWVy
YV8wMDMiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIGl2cnNjcmVlbnNob3RzLmgKK25h
bWVzcGFjZSB2cgoreworCisvKiogRXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdpdGggdGhlIFZSIGNv
bXBvc2l0b3IgKi8KK2VudW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgVlJTY3JlZW5z
aG90RXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDAsCisgICAgICAgVlJTY3JlZW5zaG90RXJyb3JfUmVxdWVzdEZhaWxlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9y
X0luY29tcGF0aWJsZVZlcnNpb24gICAgICAgICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBW
UlNjcmVlbnNob3RFcnJvcl9Ob3RGb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMTAxLAorICAgICAgIFZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTAyLAorICAgICAgIFZSU2NyZWVuc2hvdEVy
cm9yX1NjcmVlbnNob3RBbHJlYWR5SW5Qcm9ncmVzcyAgICAgICA9IDEwOCwKK307CisKKy8qKiBB
bGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGdlbmVyYXRlIHNjcmVlbnNob3RzICovCitjbGFzcyBJ
VlJTY3JlZW5zaG90cworeworcHVibGljOgorICAgICAgIC8qKiBSZXF1ZXN0IGEgc2NyZWVuc2hv
dCBvZiB0aGUgcmVxdWVzdGVkIHR5cGUuCisgICAgICAgICogIEEgcmVxdWVzdCBvZiB0aGUgVlJT
Y3JlZW5zaG90VHlwZV9TdGVyZW8gdHlwZSB3aWxsIGFsd2F5cworICAgICAgICAqICB3b3JrLiBP
dGhlciB0eXBlcyB3aWxsIGRlcGVuZCBvbiB0aGUgdW5kZXJseWluZyBhcHBsaWNhdGlvbgorICAg
ICAgICAqICBzdXBwb3J0LgorICAgICAgICAqICBUaGUgZmlyc3QgZmlsZSBuYW1lIGlzIGZvciB0
aGUgcHJldmlldyBpbWFnZSBhbmQgc2hvdWxkIGJlIGEKKyAgICAgICAgKiAgcmVndWxhciBzY3Jl
ZW5zaG90IChpZGVhbGx5IGZyb20gdGhlIGxlZnQgZXllKS4gVGhlIHNlY29uZAorICAgICAgICAq
ICBpcyB0aGUgVlIgc2NyZWVuc2hvdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQuIFRoZXkgc2hvdWxk
IGJlCisgICAgICAgICogIGluIHRoZSBzYW1lIGFzcGVjdCByYXRpby4gIEZvcm1hdHMgcGVyIHR5
cGU6CisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVfTW9ubzogdGhlIFZSIGZpbGVuYW1lIGlz
IGlnbm9yZWQgKGNhbiBiZQorICAgICAgICAqICBudWxscHRyKSwgdGhpcyBpcyBhIG5vcm1hbCBm
bGF0IHNpbmdsZSBzaG90LgorICAgICAgICAqICBWUlNjcmVlbnNob3RUeXBlX1N0ZXJlbzogIFRo
ZSBWUiBpbWFnZSBzaG91bGQgYmUgYQorICAgICAgICAqICBzaWRlLWJ5LXNpZGUgd2l0aCB0aGUg
bGVmdCBleWUgaW1hZ2Ugb24gdGhlIGxlZnQuCisgICAgICAgICogIFZSU2NyZWVuc2hvdFR5cGVf
Q3ViZW1hcDogVGhlIFZSIGltYWdlIHNob3VsZCBiZSBzaXggc3F1YXJlCisgICAgICAgICogIGlt
YWdlcyBjb21wb3NpdGVkIGhvcml6b250YWxseS4KKyAgICAgICAgKiAgVlJTY3JlZW5zaG90VHlw
ZV9TdGVyZW9QYW5vcmFtYTogYWJvdmUvYmVsb3cgd2l0aCBsZWZ0IGV5ZQorICAgICAgICAqICBw
YW5vcmFtYSBiZWluZyB0aGUgYWJvdmUgaW1hZ2UuICBJbWFnZSBpcyB0eXBpY2FsbHkgc3F1YXJl
CisgICAgICAgICogIHdpdGggdGhlIHBhbm9yYW1hIGJlaW5nIDJ4IGhvcml6b250YWwuCisgICAg
ICAgICogIAorICAgICAgICAqICBOb3RlIHRoYXQgdGhlIFZSIGRhc2hib2FyZCB3aWxsIGNhbGwg
dGhpcyBmdW5jdGlvbiB3aGVuCisgICAgICAgICogIHRoZSB1c2VyIHByZXNzZXMgdGhlIHNjcmVl
bnNob3QgYmluZGluZyAoY3VycmVudGx5IFN5c3RlbQorICAgICAgICAqICBCdXR0b24gKyBUcmln
Z2VyKS4gIElmIFN0ZWFtIGlzIHJ1bm5pbmcsIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAqICBm
aWxlIG5hbWVzIHdpbGwgYmUgaW4gJVRFTVAlIGFuZCB3aWxsIGJlIGNvcGllZCBpbnRvCisgICAg
ICAgICogIFN0ZWFtJ3Mgc2NyZWVuc2hvdCBsaWJyYXJ5IGZvciB0aGUgcnVubmluZyBhcHBsaWNh
dGlvbgorICAgICAgICAqICBvbmNlIFN1Ym1pdFNjcmVlbnNob3QoKSBpcyBjYWxsZWQuCisgICAg
ICAgICogIElmIFN0ZWFtIGlzIG5vdCBydW5uaW5nLCB0aGUgcGF0aHMgd2lsbCBiZSBpbiB0aGUg
dXNlcidzCisgICAgICAgICogIGRvY3VtZW50cyBmb2xkZXIgdW5kZXIgRG9jdW1lbnRzXFN0ZWFt
VlJcU2NyZWVuc2hvdHMuCisgICAgICAgICogIE90aGVyIFZSIGFwcGxpY2F0aW9ucyBjYW4gY2Fs
bCB0aGlzIHRvIGluaXRpYXRlIGEKKyAgICAgICAgKiAgc2NyZWVuc2hvdCBvdXRzaWRlIG9mIHVz
ZXIgY29udHJvbC4KKyAgICAgICAgKiAgVGhlIGRlc3RpbmF0aW9uIGZpbGUgbmFtZXMgZG8gbm90
IG5lZWQgYW4gZXh0ZW5zaW9uLAorICAgICAgICAqICB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhl
IGNvcnJlY3Qgb25lIGZvciB0aGUgZm9ybWF0CisgICAgICAgICogIHdoaWNoIGlzIGN1cnJlbnRs
eSAucG5nLiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0
U2NyZWVuc2hvdCggdnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RIYW5kbGUs
IHZyOjpFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjb25zdCBjaGFyICpwY2hQcmV2aWV3RmlsZW5h
bWUsIGNvbnN0IGNoYXIgKnBjaFZSRmlsZW5hbWUgKSA9IDA7CisKKyAgICAgICAvKiogQ2FsbGVk
IGJ5IHRoZSBydW5uaW5nIFZSIGFwcGxpY2F0aW9uIHRvIGluZGljYXRlIHRoYXQgaXQKKyAgICAg
ICAgKiAgd2lzaGVzIHRvIGJlIGluIGNoYXJnZSBvZiBzY3JlZW5zaG90cy4gIElmIHRoZQorICAg
ICAgICAqICBhcHBsaWNhdGlvbiBkb2VzIG5vdCBjYWxsIHRoaXMsIHRoZSBDb21wb3NpdG9yIHdp
bGwgb25seQorICAgICAgICAqICBzdXBwb3J0IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvIHNjcmVl
bnNob3RzIHRoYXQgd2lsbCBiZQorICAgICAgICAqICBjYXB0dXJlZCB3aXRob3V0IG5vdGlmaWNh
dGlvbiB0byB0aGUgcnVubmluZyBhcHAuCisgICAgICAgICogIE9uY2UgaG9va2VkIHlvdXIgYXBw
bGljYXRpb24gd2lsbCByZWNlaXZlIGEKKyAgICAgICAgKiAgVlJFdmVudF9SZXF1ZXN0U2NyZWVu
c2hvdCBldmVudCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlCisgICAgICAgICogIGJ1dHRvbnMg
dG8gdGFrZSBhIHNjcmVlbnNob3QuICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hv
dEVycm9yIEhvb2tTY3JlZW5zaG90KCBWUl9BUlJBWV9DT1VOVCggbnVtVHlwZXMgKSBjb25zdCB2
cjo6RVZSU2NyZWVuc2hvdFR5cGUgKnBTdXBwb3J0ZWRUeXBlcywgaW50IG51bVR5cGVzICkgPSAw
OworCisgICAgICAgLyoqIFdoZW4geW91ciBhcHBsaWNhdGlvbiByZWNlaXZlcyBhCisgICAgICAg
ICogIFZSRXZlbnRfUmVxdWVzdFNjcmVlbnNob3QgZXZlbnQsIGNhbGwgdGhlc2UgZnVuY3Rpb25z
IHRvIGdldAorICAgICAgICAqICB0aGUgZGV0YWlscyBvZiB0aGUgc2NyZWVuc2hvdCByZXF1ZXN0
LiAqLworICAgICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RUeXBlIEdldFNjcmVlbnNob3RQ
cm9wZXJ0eVR5cGUoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwgdnI6
OkVWUlNjcmVlbnNob3RFcnJvciAqcEVycm9yICkgPSAwOworCisgICAgICAgLyoqIEdldCB0aGUg
ZmlsZW5hbWUgZm9yIHRoZSBwcmV2aWV3IG9yIHZyIGltYWdlIChzZWUKKyAgICAgICAgKiAgdnI6
OkVTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMpLiAgVGhlIHJldHVybiB2YWx1ZSBpcworICAg
ICAgICAqICB0aGUgc2l6ZSBvZiB0aGUgc3RyaW5nLiAgICovCisgICAgICAgIHZpcnR1YWwgdWlu
dDMyX3QgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoIHZyOjpTY3JlZW5zaG90SGFuZGxl
X3Qgc2NyZWVuc2hvdEhhbmRsZSwgdnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBm
aWxlbmFtZVR5cGUsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpwY2hGaWxlbmFtZSwgdWludDMyX3Qg
Y2NoRmlsZW5hbWUsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKnBFcnJvciApID0gMDsKKworICAg
ICAgIC8qKiBDYWxsIHRoaXMgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHRha2luZyB0aGUgc2NyZWVu
IHNob3QKKyAgICAgICAgKiAgd2lsbCB0YWtlIG1vcmUgdGhhbiBhIGZldyBtcyBwcm9jZXNzaW5n
LiBUaGlzIHdpbGwgcmVzdWx0CisgICAgICAgICogIGluIGFuIG92ZXJsYXkgYmVpbmcgcHJlc2Vu
dGVkIHRoYXQgc2hvd3MgYSBjb21wbGV0aW9uCisgICAgICAgICogIGJhci4gKi8KKyAgICAgICB2
aXJ0dWFsIHZyOjpFVlJTY3JlZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKCB2
cjo6U2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIGZsb2F0IGZsUHJvZ3Jlc3Mg
KSA9IDA7CisKKyAgICAgICAvKiogVGVsbHMgdGhlIGNvbXBvc2l0b3IgdG8gdGFrZSBhbiBpbnRl
cm5hbCBzY3JlZW5zaG90IG9mCisgICAgICAgICogIHR5cGUgVlJTY3JlZW5zaG90VHlwZV9TdGVy
ZW8uIEl0IHdpbGwgdGFrZSB0aGUgY3VycmVudAorICAgICAgICAqICBzdWJtaXR0ZWQgc2NlbmUg
dGV4dHVyZXMgb2YgdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gYW5kCisgICAgICAgICogIHdyaXRl
IHRoZW0gaW50byB0aGUgcHJldmlldyBpbWFnZSBhbmQgYSBzaWRlLWJ5LXNpZGUgZmlsZQorICAg
ICAgICAqICBmb3IgdGhlIFZSIGltYWdlLgorICAgICAgICAqICBUaGlzIGlzIHNpbWlsYXIgdG8g
cmVxdWVzdCBzY3JlZW5zaG90LCBidXQgZG9lc24ndCBldmVyCisgICAgICAgICogIHRhbGsgdG8g
dGhlIGFwcGxpY2F0aW9uLCBqdXN0IHRha2VzIHRoZSBzaG90IGFuZCBzdWJtaXRzLiAqLworICAg
ICAgIHZpcnR1YWwgdnI6OkVWUlNjcmVlbnNob3RFcnJvciBUYWtlU3RlcmVvU2NyZWVuc2hvdCgg
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqcE91dFNjcmVlbnNob3RIYW5kbGUsIGNvbnN0IGNoYXIg
KnBjaFByZXZpZXdGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoVlJGaWxlbmFtZSApID0gMDsKKwor
ICAgICAgIC8qKiBTdWJtaXQgdGhlIGNvbXBsZXRlZCBzY3JlZW5zaG90LiAgSWYgU3RlYW0gaXMg
cnVubmluZworICAgICAgICAqICB0aGlzIHdpbGwgY2FsbCBpbnRvIHRoZSBTdGVhbSBjbGllbnQg
YW5kIHVwbG9hZCB0aGUKKyAgICAgICAgKiAgc2NyZWVuc2hvdCB0byB0aGUgc2NyZWVuc2hvdHMg
c2VjdGlvbiBvZiB0aGUgbGlicmFyeSBmb3IKKyAgICAgICAgKiAgdGhlIHJ1bm5pbmcgYXBwbGlj
YXRpb24uICBJZiBTdGVhbSBpcyBub3QgcnVubmluZywgdGhpcworICAgICAgICAqICBmdW5jdGlv
biB3aWxsIGRpc3BsYXkgYSBub3RpZmljYXRpb24gdG8gdGhlIHVzZXIgdGhhdCB0aGUKKyAgICAg
ICAgKiAgc2NyZWVuc2hvdCB3YXMgdGFrZW4uIFRoZSBwYXRocyBzaG91bGQgYmUgZnVsbCBwYXRo
cyB3aXRoCisgICAgICAgICogIGV4dGVuc2lvbnMuCisgICAgICAgICogIEZpbGUgcGF0aHMgc2hv
dWxkIGJlIGFic29sdXRlIGluY2x1ZGluZyBleHRlbnNpb25zLgorICAgICAgICAqICBzY3JlZW5z
aG90SGFuZGxlIGNhbiBiZSBrX3VuU2NyZWVuc2hvdEhhbmRsZUludmFsaWQgaWYgdGhpcworICAg
ICAgICAqICB3YXMgYSBuZXcgc2hvdCB0YWtpbmcgYnkgdGhlIGFwcCB0byBiZSBzYXZlZCBhbmQg
bm90CisgICAgICAgICogIGluaXRpYXRlZCBieSBhIHVzZXIgKGFjaGlldmVtZW50IGVhcm5lZCBv
ciBzb21ldGhpbmcpICovCisgICAgICAgdmlydHVhbCB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIFN1
Ym1pdFNjcmVlbnNob3QoIHZyOjpTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhhbmRsZSwg
dnI6OkVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBjaFNvdXJjZVByZXZpZXdG
aWxlbmFtZSwgY29uc3QgY2hhciAqcGNoU291cmNlVlJGaWxlbmFtZSApID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiA9ICJJVlJTY3Jl
ZW5zaG90c18wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKworLy8gaXZycmVzb3VyY2Vz
LmgKK25hbWVzcGFjZSB2cgoreworCitjbGFzcyBJVlJSZXNvdXJjZXMKK3sKK3B1YmxpYzoKKwor
ICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IFNoYXJlZCBSZXNvdXJjZSBNZXRob2RzCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAvKiogTG9hZHMgdGhlIHNwZWNpZmllZCByZXNvdXJj
ZSBpbnRvIHRoZSBwcm92aWRlZCBidWZmZXIgaWYgbGFyZ2UgZW5vdWdoLgorICAgICAgICogUmV0
dXJucyB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgYnVmZmVyIHJlcXVpcmVkIHRvIGhvbGQgdGhl
IHNwZWNpZmllZCByZXNvdXJjZS4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IExvYWRTaGFy
ZWRSZXNvdXJjZSggY29uc3QgY2hhciAqcGNoUmVzb3VyY2VOYW1lLCBjaGFyICpwY2hCdWZmZXIs
IHVpbnQzMl90IHVuQnVmZmVyTGVuICkgPSAwOworCisgICAgICAgLyoqIFByb3ZpZGVzIHRoZSBm
dWxsIHBhdGggdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZS4gUmVzb3VyY2UgbmFtZXMgY2FuIGlu
Y2x1ZGUgbmFtZWQgZGlyZWN0b3JpZXMgZm9yCisgICAgICAgKiBkcml2ZXJzIGFuZCBvdGhlciB0
aGluZ3MsIGFuZCB0aGlzIHJlc29sdmVzIGFsbCBvZiB0aG9zZSBhbmQgcmV0dXJucyB0aGUgYWN0
dWFsIHBoeXNpY2FsIHBhdGguIAorICAgICAgICogcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5IGlz
IHRoZSBzdWJkaXJlY3Rvcnkgb2YgcmVzb3VyY2VzIHRvIGxvb2sgaW4uICovCisgICAgICAgdmly
dHVhbCB1aW50MzJfdCBHZXRSZXNvdXJjZUZ1bGxQYXRoKCBjb25zdCBjaGFyICpwY2hSZXNvdXJj
ZU5hbWUsIGNvbnN0IGNoYXIgKnBjaFJlc291cmNlVHlwZURpcmVjdG9yeSwgY2hhciAqcGNoUGF0
aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKSA9IDA7Cit9OworCitzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNlc18wMDEiOwor
CisKK30KKy8vIGl2cmRyaXZlcm1hbmFnZXIuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElW
UkRyaXZlck1hbmFnZXIKK3sKK3B1YmxpYzoKKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldERy
aXZlckNvdW50KCkgY29uc3QgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGxlbmd0aCBv
ZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG5lY2Vzc2FyeSB0byBob2xkIHRoaXMgc3RyaW5nIGluY2x1
ZGluZyB0aGUgdHJhaWxpbmcgbnVsbC4gKi8KKyAgICAgICB2aXJ0dWFsIHVpbnQzMl90IEdldERy
aXZlck5hbWUoIHZyOjpEcml2ZXJJZF90IG5Ecml2ZXIsIFZSX09VVF9TVFJJTkcoKSBjaGFyICpw
Y2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplICkgPSAwOworfTsKKworc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24gPSAiSVZSRHJpdmVyTWFuYWdl
cl8wMDEiOworCit9IC8vIG5hbWVzcGFjZSB2cgorCisKKy8vIEVuZAorCisjZW5kaWYgLy8gX09Q
RU5WUl9BUEkKKworCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2
ZSBpbnN0YWxsYXRpb24gb2YgdGhlIFZSIEFQSSBhbmQgaW5pdGlhbGl6ZXMgaXQuIFRoZSBwcm92
aWRlZCBwYXRoIG11c3QgYmUgYWJzb2x1dGUKKyAgICAgICAqIG9yIHJlbGF0aXZlIHRvIHRoZSBj
dXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBUaGVzZSBhcmUgdGhlIGxvY2FsIGluc3RhbGwgdmVy
c2lvbnMgb2YgdGhlIGVxdWl2YWxlbnQKKyAgICAgICAqIGZ1bmN0aW9ucyBpbiBzdGVhbXZyLmgg
YW5kIHdpbGwgd29yayB3aXRob3V0IGEgbG9jYWwgU3RlYW0gaW5zdGFsbC4KKyAgICAgICAqCisg
ICAgICAgKiBUaGlzIHBhdGggaXMgdG8gdGhlICJyb290IiBvZiB0aGUgVlIgQVBJIGluc3RhbGwu
IFRoYXQncyB0aGUgZGlyZWN0b3J5IHdpdGgKKyAgICAgICAqIHRoZSAiZHJpdmVycyIgZGlyZWN0
b3J5IGFuZCBhIHBsYXRmb3JtIChpLmUuICJ3aW4zMiIpIGRpcmVjdG9yeSBpbiBpdCwgbm90IHRo
ZSBkaXJlY3Rvcnkgd2l0aCB0aGUgRExMIGl0c2VsZi4KKyAgICAgICAqCisgICAgICAgKiBwU3Rh
cnR1cEluZm8gaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisgICAgICAgKi8KKyAgICAgICBp
bmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxp
Y2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cEluZm8gPSBu
dWxscHRyICk7CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZh
Y2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRl
ciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJfU2h1dGRvd24oKTsKKworICAg
ICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gSE1EIGF0dGFjaGVkLiBUaGlzIGNo
ZWNrIGlzIGFzIGxpZ2h0d2VpZ2h0IGFzIHBvc3NpYmxlIGFuZAorICAgICAgICogY2FuIGJlIGNh
bGxlZCBvdXRzaWRlIG9mIFZSX0luaXQvVlJfU2h1dGRvd24uIEl0IHNob3VsZCBiZSB1c2VkIHdo
ZW4gYW4gYXBwbGljYXRpb24gd2FudHMKKyAgICAgICAqIHRvIGtub3cgaWYgaW5pdGlhbGl6aW5n
IFZSIGlzIGEgcG9zc2liaWxpdHkgYnV0IGlzbid0IHJlYWR5IHRvIHRha2UgdGhhdCBzdGVwIHll
dC4KKyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExUWVBFIFZSX0lz
SG1kUHJlc2VudCgpOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgT3BlblZSIHJ1
bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExU
WVBFIFZSX0lzUnVudGltZUluc3RhbGxlZCgpOworCisgICAgICAgLyoqIFJldHVybnMgd2hlcmUg
dGhlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KKyAgICAgICBWUl9JTlRFUkZBQ0Ug
Y29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJfUnVudGltZVBhdGgoKTsKKworICAgICAgIC8qKiBS
ZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlIGZvciBhbiBFVlJJbml0RXJyb3IuIFRo
aXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBvdXRzaWRlIG9mIFZSX0luaXQoKS9WUl9TaHV0ZG93
bigpLiAqLworICAgICAgIFZSX0lOVEVSRkFDRSBjb25zdCBjaGFyICpWUl9DQUxMVFlQRSBWUl9H
ZXRWUkluaXRFcnJvckFzU3ltYm9sKCBFVlJJbml0RXJyb3IgZXJyb3IgKTsKKworICAgICAgIC8q
KiBSZXR1cm5zIGFuIEVuZ2xpc2ggc3RyaW5nIGZvciBhbiBFVlJJbml0RXJyb3IuIEFwcGxpY2F0
aW9ucyBzaG91bGQgY2FsbCBWUl9HZXRWUkluaXRFcnJvckFzU3ltYm9sIGluc3RlYWQgYW5kCisg
ICAgICAgKiB1c2UgdGhhdCBhcyBhIGtleSB0byBsb29rIHVwIHRoZWlyIG93biBsb2NhbGl6ZWQg
ZXJyb3IgbWVzc2FnZS4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG91dHNpZGUgb2YgVlJf
SW5pdCgpL1ZSX1NodXRkb3duKCkuICovCisgICAgICAgVlJfSU5URVJGQUNFIGNvbnN0IGNoYXIg
KlZSX0NBTExUWVBFIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUklu
aXRFcnJvciBlcnJvciApOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIGludGVyZmFjZSBvZiB0
aGUgc3BlY2lmaWVkIHZlcnNpb24uIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIGFmdGVyIFZS
X0luaXQuIFRoZQorICAgICAgICogcG9pbnRlciByZXR1cm5lZCBpcyB2YWxpZCB1bnRpbCBWUl9T
aHV0ZG93biBpcyBjYWxsZWQuCisgICAgICAgKi8KKyAgICAgICBWUl9JTlRFUkZBQ0Ugdm9pZCAq
VlJfQ0FMTFRZUEUgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50ZXJm
YWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CisKKyAgICAgICAvKiogUmV0dXJu
cyB3aGV0aGVyIHRoZSBpbnRlcmZhY2Ugb2YgdGhlIHNwZWNpZmllZCB2ZXJzaW9uIGV4aXN0cy4K
KyAgICAgICAqLworICAgICAgIFZSX0lOVEVSRkFDRSBib29sIFZSX0NBTExUWVBFIFZSX0lzSW50
ZXJmYWNlVmVyc2lvblZhbGlkKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uICk7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIHRva2VuIHRoYXQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBW
UiBpbnRlcmZhY2UgaGFuZGxlcyBuZWVkIHRvIGJlIHJlbG9hZGVkICovCisgICAgICAgVlJfSU5U
RVJGQUNFIHVpbnQzMl90IFZSX0NBTExUWVBFIFZSX0dldEluaXRUb2tlbigpOworCisgICAgICAg
Ly8gVGhlc2UgdHlwZWRlZnMgYWxsb3cgb2xkIGVudW0gbmFtZXMgZnJvbSBTREsgMC45LjExIHRv
IGJlIHVzZWQgaW4gYXBwbGljYXRpb25zLgorICAgICAgIC8vIFRoZXkgd2lsbCBnbyBhd2F5IGlu
IHRoZSBmdXR1cmUuCisgICAgICAgdHlwZWRlZiBFVlJJbml0RXJyb3IgSG1kRXJyb3I7CisgICAg
ICAgdHlwZWRlZiBFVlJFeWUgSG1kX0V5ZTsKKyAgICAgICB0eXBlZGVmIEVDb2xvclNwYWNlIENv
bG9yU3BhY2U7CisgICAgICAgdHlwZWRlZiBFVHJhY2tpbmdSZXN1bHQgSG1kVHJhY2tpbmdSZXN1
bHQ7CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZUNsYXNzIFRyYWNrZWREZXZpY2VDbGFz
czsKKyAgICAgICB0eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5nVW5pdmVy
c2VPcmlnaW47CisgICAgICAgdHlwZWRlZiBFVHJhY2tlZERldmljZVByb3BlcnR5IFRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eTsKKyAgICAgICB0eXBlZGVmIEVUcmFja2VkUHJvcGVydHlFcnJvciBUcmFj
a2VkUHJvcGVydHlFcnJvcjsKKyAgICAgICB0eXBlZGVmIEVWUlN1Ym1pdEZsYWdzIFZSU3VibWl0
RmxhZ3NfdDsKKyAgICAgICB0eXBlZGVmIEVWUlN0YXRlIFZSU3RhdGVfdDsKKyAgICAgICB0eXBl
ZGVmIEVDb2xsaXNpb25Cb3VuZHNTdHlsZSBDb2xsaXNpb25Cb3VuZHNTdHlsZV90OworICAgICAg
IHR5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9yOworICAgICAgIHR5cGVkZWYg
RVZSRmlybXdhcmVFcnJvciBWUkZpcm13YXJlRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJDb21w
b3NpdG9yRXJyb3IgVlJDb21wb3NpdG9yRXJyb3I7CisgICAgICAgdHlwZWRlZiBFVlJTY3JlZW5z
aG90RXJyb3IgVlJTY3JlZW5zaG90c0Vycm9yOworCisgICAgICAgaW5saW5lIHVpbnQzMl90ICZW
UlRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRpYyB1aW50MzJfdCB0b2tlbjsK
KyAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOworICAgICAgIH0KKworICAgICAgIGNsYXNzIENP
cGVuVlJDb250ZXh0CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgQ09w
ZW5WUkNvbnRleHQoKSB7IENsZWFyKCk7IH0KKyAgICAgICAgICAgICAgdm9pZCBDbGVhcigpOwor
CisgICAgICAgICAgICAgIGlubGluZSB2b2lkIENoZWNrQ2xlYXIoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBpZiAoIFZSVG9rZW4oKSAhPSBWUl9HZXRJbml0VG9rZW4o
KSApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUlRva2VuKCkgPSBWUl9HZXRJ
bml0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgIElWUlN5c3RlbSAqVlJTeXN0ZW0oKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
IG1fcFZSU3lzdGVtID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0gPSAoIElWUlN5c3RlbSAqIClWUl9HZXRHZW5lcmlj
SW50ZXJmYWNlKCBJVlJTeXN0ZW1fVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSU3lzdGVtOworICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgIElWUkNoYXBlcm9uZSAqVlJDaGFwZXJvbmUoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAg
ICAgICAgICAgICAgICBpZiAoIG1fcFZSQ2hhcGVyb25lID09IG51bGxwdHIgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBl
RXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSAoIElW
UkNoYXBlcm9uZSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDaGFwZXJvbmVfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgSVZSQ2hhcGVyb25lU2V0dXAgKlZSQ2hhcGVyb25lU2V0dXAoKQorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAg
ICBpZiAoIG1fcFZSQ2hhcGVyb25lU2V0dXAgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkNoYXBlcm9uZVNldHVwID0gKCBJVlJD
aGFwZXJvbmVTZXR1cCAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJDaGFwZXJvbmVTZXR1
cF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIElWUkNvbXBvc2l0b3IgKlZSQ29tcG9zaXRvcigpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmICggbV9wVlJDb21wb3NpdG9yID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDb21wb3NpdG9yID0gKCBJVlJDb21w
b3NpdG9yICogKVZSX0dldEdlbmVyaWNJbnRlcmZhY2UoIElWUkNvbXBvc2l0b3JfVmVyc2lvbiwg
JmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
IElWUk92ZXJsYXkgKlZST3ZlcmxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJPdmVy
bGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJPdmVybGF5ID0gKCBJVlJPdmVybGF5ICogKVZSX0dldEdlbmVyaWNJbnRlcmZh
Y2UoIElWUk92ZXJsYXlfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgIElWUlJlc291cmNlcyAqVlJSZXNvdXJjZXMoKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAoIG1fcFZSUmVzb3VyY2VzID09IG51bGxwdHIgKQorICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJy
b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZXNvdXJjZXMgPSAoSVZSUmVz
b3VyY2VzICopVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggSVZSUmVzb3VyY2VzX1ZlcnNpb24sICZl
RXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtX3BWUlJlc291cmNlczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElW
UlNjcmVlbnNob3RzICpWUlNjcmVlbnNob3RzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BW
UlNjcmVlbnNob3RzID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJTY3JlZW5zaG90cyA9ICggSVZSU2NyZWVuc2hvdHMgKiApVlJf
R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2NyZWVuc2hvdHNfVmVyc2lvbiwgJmVFcnJvciApOwor
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZS
U2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBJVlJSZW5kZXJN
b2RlbHMgKlZSUmVuZGVyTW9kZWxzKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlJlbmRl
ck1vZGVscyA9PSBudWxscHRyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0gKCBJVlJSZW5kZXJNb2RlbHMgKiApVlJfR2V0
R2VuZXJpY0ludGVyZmFjZSggSVZSUmVuZGVyTW9kZWxzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlJl
bmRlck1vZGVsczsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkV4dGVuZGVk
RGlzcGxheSAqVlJFeHRlbmRlZERpc3BsYXkoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZS
RXh0ZW5kZWREaXNwbGF5ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSAoIElWUkV4dGVuZGVkRGlz
cGxheSAqIClWUl9HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lv
biwgJmVFcnJvciApOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fcFZSRXh0ZW5kZWREaXNwbGF5OworICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
IG1fcFZSU2V0dGluZ3MgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gKCBJVlJTZXR0aW5ncyAqIClWUl9HZXRH
ZW5lcmljSW50ZXJmYWNlKCBJVlJTZXR0aW5nc19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXR0aW5n
czsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIElWUkFwcGxpY2F0aW9ucyAqVlJB
cHBsaWNhdGlvbnMoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVj
a0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSQXBwbGljYXRpb25zID09
IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9wVlJBcHBsaWNhdGlvbnMgPSAoIElWUkFwcGxpY2F0aW9ucyAqIClWUl9HZXRHZW5lcmljSW50
ZXJmYWNlKCBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiwgJmVFcnJvciApOworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQXBwbGljYXRpb25z
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSVHJhY2tlZENhbWVyYSAqVlJU
cmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BWUlRyYWNrZWRDYW1lcmEg
PT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3BWUlRyYWNrZWRDYW1lcmEgPSAoIElWUlRyYWNrZWRDYW1lcmEgKiApVlJfR2V0R2VuZXJp
Y0ludGVyZmFjZSggSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJUcmFja2Vk
Q2FtZXJhOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSRHJpdmVyTWFuYWdl
ciAqVlJEcml2ZXJNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKCAhbV9wVlJEcml2ZXJN
YW5hZ2VyICkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFVlJJbml0RXJyb3IgZUVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cFZSRHJpdmVyTWFuYWdlciA9ICggSVZSRHJpdmVyTWFuYWdlciAqIClWUl9HZXRHZW5lcmljSW50
ZXJmYWNlKCBJVlJEcml2ZXJNYW5hZ2VyX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUkRyaXZlck1hbmFn
ZXI7CisgICAgICAgICAgICAgIH0KKworICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgIElW
UlN5c3RlbSAgICAgICAgICAgICAgICAgICAgICptX3BWUlN5c3RlbTsKKyAgICAgICAgICAgICAg
SVZSQ2hhcGVyb25lICAgICAgICAgICAgICAqbV9wVlJDaGFwZXJvbmU7CisgICAgICAgICAgICAg
IElWUkNoYXBlcm9uZVNldHVwICAgICAgICptX3BWUkNoYXBlcm9uZVNldHVwOworICAgICAgICAg
ICAgICBJVlJDb21wb3NpdG9yICAgICAgICAgICAgICAqbV9wVlJDb21wb3NpdG9yOworICAgICAg
ICAgICAgICBJVlJPdmVybGF5ICAgICAgICAgICAgICAgICAgICAgKm1fcFZST3ZlcmxheTsKKyAg
ICAgICAgICAgICAgSVZSUmVzb3VyY2VzICAgICAgICAgICAgICAqbV9wVlJSZXNvdXJjZXM7Cisg
ICAgICAgICAgICAgIElWUlJlbmRlck1vZGVscyAgICAgICAgICAgICAgKm1fcFZSUmVuZGVyTW9k
ZWxzOworICAgICAgICAgICAgICBJVlJFeHRlbmRlZERpc3BsYXkgICAgICAgKm1fcFZSRXh0ZW5k
ZWREaXNwbGF5OworICAgICAgICAgICAgICBJVlJTZXR0aW5ncyAgICAgICAgICAgICAgICAgICAg
ICptX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBJVlJBcHBsaWNhdGlvbnMgICAgICAgICAg
ICAgICptX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgSVZSVHJhY2tlZENhbWVyYSAg
ICAgICAqbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICBJVlJTY3JlZW5zaG90cyAg
ICAgICAgICAgICAgKm1fcFZSU2NyZWVuc2hvdHM7CisgICAgICAgICAgICAgIElWUkRyaXZlck1h
bmFnZXIgICAgICAgKm1fcFZSRHJpdmVyTWFuYWdlcjsKKyAgICAgICB9OworCisgICAgICAgaW5s
aW5lIENPcGVuVlJDb250ZXh0ICZPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHN0YXRpYyB2b2lkICpjdHhbIHNpemVvZiggQ09wZW5WUkNvbnRl
eHQgKSAvIHNpemVvZiggdm9pZCAqICkgXTsKKyAgICAgICAgICAgICAgcmV0dXJuICooIENPcGVu
VlJDb250ZXh0ICogKWN0eDsgLy8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAgICAg
IH0KKworICAgICAgIGlubGluZSBJVlJTeXN0ZW0gKlZSX0NBTExUWVBFIFZSU3lzdGVtKCkgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU3lzdGVtKCk7IH0KKyAgICAg
ICBpbmxpbmUgSVZSQ2hhcGVyb25lICpWUl9DQUxMVFlQRSBWUkNoYXBlcm9uZSgpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkNoYXBlcm9uZSgpOyB9CisgICAgICAg
aW5saW5lIElWUkNoYXBlcm9uZVNldHVwICpWUl9DQUxMVFlQRSBWUkNoYXBlcm9uZVNldHVwKCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSQ2hhcGVyb25lU2V0dXAo
KTsgfQorICAgICAgIGlubGluZSBJVlJDb21wb3NpdG9yICpWUl9DQUxMVFlQRSBWUkNvbXBvc2l0
b3IoKSB7IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJDb21wb3NpdG9y
KCk7IH0KKyAgICAgICBpbmxpbmUgSVZST3ZlcmxheSAqVlJfQ0FMTFRZUEUgVlJPdmVybGF5KCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZST3ZlcmxheSgpOyB9Cisg
ICAgICAgaW5saW5lIElWUlNjcmVlbnNob3RzICpWUl9DQUxMVFlQRSBWUlNjcmVlbnNob3RzKCkg
eyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU2NyZWVuc2hvdHMoKTsg
fQorICAgICAgIGlubGluZSBJVlJSZW5kZXJNb2RlbHMgKlZSX0NBTExUWVBFIFZSUmVuZGVyTW9k
ZWxzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSUmVuZGVyTW9k
ZWxzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSQXBwbGljYXRpb25zICpWUl9DQUxMVFlQRSBWUkFw
cGxpY2F0aW9ucygpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQoKS5WUkFw
cGxpY2F0aW9ucygpOyB9CisgICAgICAgaW5saW5lIElWUlNldHRpbmdzICpWUl9DQUxMVFlQRSBW
UlNldHRpbmdzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSU2V0
dGluZ3MoKTsgfQorICAgICAgIGlubGluZSBJVlJSZXNvdXJjZXMgKlZSX0NBTExUWVBFIFZSUmVz
b3VyY2VzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpLlZSUmVzb3Vy
Y2VzKCk7IH0KKyAgICAgICBpbmxpbmUgSVZSRXh0ZW5kZWREaXNwbGF5ICpWUl9DQUxMVFlQRSBW
UkV4dGVuZGVkRGlzcGxheSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQo
KS5WUkV4dGVuZGVkRGlzcGxheSgpOyB9CisgICAgICAgaW5saW5lIElWUlRyYWNrZWRDYW1lcmEg
KlZSX0NBTExUWVBFIFZSVHJhY2tlZENhbWVyYSgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQoKS5WUlRyYWNrZWRDYW1lcmEoKTsgfQorICAgICAgIGlubGluZSBJVlJEcml2
ZXJNYW5hZ2VyICpWUl9DQUxMVFlQRSBWUkRyaXZlck1hbmFnZXIoKSB7IHJldHVybiBPcGVuVlJJ
bnRlcm5hbF9Nb2R1bGVDb250ZXh0KCkuVlJEcml2ZXJNYW5hZ2VyKCk7IH0KKworICAgICAgIGlu
bGluZSB2b2lkIENPcGVuVlJDb250ZXh0OjpDbGVhcigpCisgICAgICAgeworICAgICAgICAgICAg
ICBtX3BWUlN5c3RlbSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSQ2hhcGVyb25lID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGxwdHI7Cisg
ICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1f
cFZST3ZlcmxheSA9IG51bGxwdHI7CisgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9kZWxzID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJFeHRlbmRlZERpc3BsYXkgPSBudWxscHRyOwor
ICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9w
VlJBcHBsaWNhdGlvbnMgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlRyYWNrZWRDYW1l
cmEgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUlJlc291cmNlcyA9IG51bGxwdHI7Cisg
ICAgICAgICAgICAgIG1fcFZSU2NyZWVuc2hvdHMgPSBudWxscHRyOworICAgICAgICAgICAgICBt
X3BWUkRyaXZlck1hbmFnZXIgPSBudWxscHRyOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICBW
Ul9JTlRFUkZBQ0UgdWludDMyX3QgVlJfQ0FMTFRZUEUgVlJfSW5pdEludGVybmFsMiggRVZSSW5p
dEVycm9yICpwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlwZSwgY29u
c3QgY2hhciAqcFN0YXJ0dXBJbmZvICk7CisgICAgICAgVlJfSU5URVJGQUNFIHZvaWQgVlJfQ0FM
TFRZUEUgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworCisgICAgICAgLyoqIEZpbmRzIHRoZSBhY3Rp
dmUgaW5zdGFsbGF0aW9uIG9mIHZyY2xpZW50LmRsbCBhbmQgaW5pdGlhbGl6ZXMgaXQgKi8KKyAg
ICAgICBpbmxpbmUgSVZSU3lzdGVtICpWUl9Jbml0KCBFVlJJbml0RXJyb3IgKnBlRXJyb3IsIEVW
UkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cElu
Zm8gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSVZSU3lzdGVtICpwVlJTeXN0ZW0gPSBudWxs
cHRyOworCisgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAgICAgICAg
IFZSVG9rZW4oKSA9IFZSX0luaXRJbnRlcm5hbDIoICZlRXJyb3IsIGVBcHBsaWNhdGlvblR5cGUs
IHBTdGFydHVwSW5mbyApOworICAgICAgICAgICAgICBDT3BlblZSQ29udGV4dCAmY3R4ID0gT3Bl
blZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dCgpOworICAgICAgICAgICAgICBjdHguQ2xlYXIoKTsK
KworICAgICAgICAgICAgICBpZiAoIGVFcnJvciA9PSBWUkluaXRFcnJvcl9Ob25lICkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBWUl9Jc0ludGVyZmFjZVZlcnNp
b25WYWxpZCggSVZSU3lzdGVtX1ZlcnNpb24gKSApCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcFZSU3lzdGVtID0gVlJTeXN0ZW0oKTsKKyAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUl9TaHV0ZG93bkludGVy
bmFsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZUVycm9yID0gVlJJbml0RXJyb3Jf
SW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgICAgICAgICAg
ICAgICAqcGVFcnJvciA9IGVFcnJvcjsKKyAgICAgICAgICAgICAgcmV0dXJuIHBWUlN5c3RlbTsK
KyAgICAgICB9CisKKyAgICAgICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZh
Y2UgcG9pbnRlcnMgZnJvbSB0aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRl
ciB0aGlzIHBvaW50ICovCisgICAgICAgaW5saW5lIHZvaWQgVlJfU2h1dGRvd24oKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgVlJfU2h1dGRvd25JbnRlcm5hbCgpOworICAgICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9hcGkuY3Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1ODVhZjQ1MzRmMDI0ODNmYTkzNzlhNmU1OGZhZThhMTk1YjExYjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmNzCkBA
IC0wLDAgKzEsNDc4NiBAQAorLy89PT09PT09IENvcHlyaWdodCAoYykgVmFsdmUgQ29ycG9yYXRp
b24sIEFsbCByaWdodHMgcmVzZXJ2ZWQuID09PT09PT09PT09PT09PQorLy8KKy8vIFB1cnBvc2U6
IFRoaXMgZmlsZSBjb250YWlucyBDIy9tYW5hZ2VkIGNvZGUgYmluZGluZ3MgZm9yIHRoZSBPcGVu
VlIgaW50ZXJmYWNlcworLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLCBkbyBub3QgZWRp
dCBpdC4KKy8vCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3VzaW5nIFN5c3RlbTsKK3VzaW5n
IFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKK3VzaW5nIFZhbHZlLlZSOworCituYW1l
c3BhY2UgVmFsdmUuVlIKK3sKKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XQorcHVibGljIHN0cnVjdCBJVlJTeXN0ZW0KK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0dldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZShyZWYgdWludCBwbldpZHRo
LCByZWYgdWludCBwbkhlaWdodCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRT
aXplIEdldFJlY29tbWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgSG1kTWF0cml4NDRfdCBfR2V0UHJvamVjdGlvbk1hdHJpeChFVlJFeWUgZUV5
ZSwgZmxvYXQgZk5lYXJaLCBmbG9hdCBmRmFyWik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UHJvamVjdGlvbk1hdHJp
eCBHZXRQcm9qZWN0aW9uTWF0cml4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2
b2lkIF9HZXRQcm9qZWN0aW9uUmF3KEVWUkV5ZSBlRXllLCByZWYgZmxvYXQgcGZMZWZ0LCByZWYg
ZmxvYXQgcGZSaWdodCwgcmVmIGZsb2F0IHBmVG9wLCByZWYgZmxvYXQgcGZCb3R0b20pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldFByb2plY3Rpb25SYXcgR2V0UHJvamVjdGlvblJhdzsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ29tcHV0ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsIGZsb2F0
IGZVLCBmbG9hdCBmViwgcmVmIERpc3RvcnRpb25Db29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29v
cmRpbmF0ZXMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0NvbXB1dGVEaXN0b3J0aW9uIENvbXB1dGVEaXN0b3J0aW9uOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRFeWVUb0hl
YWRUcmFuc2Zvcm0oRVZSRXllIGVFeWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5ZVRvSGVhZFRyYW5zZm9ybSBH
ZXRFeWVUb0hlYWRUcmFuc2Zvcm07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJv
b2wgX0dldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5
bmMsIHJlZiB1bG9uZyBwdWxGcmFtZUNvdW50ZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRpbWVTaW5jZUxhc3RW
c3luYyBHZXRUaW1lU2luY2VMYXN0VnN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGludCBfR2V0RDNEOUFkYXB0ZXJJbmRleCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEQzRDlBZGFwdGVySW5k
ZXggR2V0RDNEOUFkYXB0ZXJJbmRleDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dm9pZCBfR2V0RFhHSU91dHB1dEluZm8ocmVmIGludCBwbkFkYXB0ZXJJbmRleCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0RFhHSU91dHB1dEluZm8gR2V0RFhHSU91dHB1dEluZm87CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0lzRGlzcGxheU9uRGVza3RvcCgpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzRGlzcGxh
eU9uRGVza3RvcCBJc0Rpc3BsYXlPbkRlc2t0b3A7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX1NldERpc3BsYXlWaXNpYmlsaXR5KGJvb2wgYklzVmlzaWJsZU9uRGVza3Rv
cCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfU2V0RGlzcGxheVZpc2liaWxpdHkgU2V0RGlzcGxheVZpc2liaWxpdHk7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldERldmljZVRvQWJzb2x1dGVU
cmFja2luZ1Bvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbiwgZmxvYXQgZlByZWRp
Y3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2Vf
dFtdIHBUcmFja2VkRGV2aWNlUG9zZUFycmF5LCB1aW50IHVuVHJhY2tlZERldmljZVBvc2VBcnJh
eUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9HZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIEdldERldmlj
ZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1Jlc2V0U2VhdGVkWmVyb1Bvc2UoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXNldFNlYXRlZFplcm9Qb3Nl
IFJlc2V0U2VhdGVkWmVyb1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEht
ZE1hdHJpeDM0X3QgX0dldFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQ
b3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2lu
Z1Bvc2UgR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2U7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhtZE1hdHJpeDM0X3QgX0dldFJhd1plcm9Q
b3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmF3WmVyb1Bv
c2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UgR2V0UmF3WmVyb1Bvc2VUb1N0YW5kaW5n
QWJzb2x1dGVUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVp
bnQgX0dldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhFVHJhY2tlZERldmljZUNs
YXNzIGVUcmFja2VkRGV2aWNlQ2xhc3MsIFtJbiwgT3V0XSB1aW50W10gcHVuVHJhY2tlZERldmlj
ZUluZGV4QXJyYXksIHVpbnQgdW5UcmFja2VkRGV2aWNlSW5kZXhBcnJheUNvdW50LCB1aW50IHVu
UmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U29ydGVkVHJhY2tlZERl
dmljZUluZGljZXNPZkNsYXNzIEdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzczsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRURldmljZUFjdGl2aXR5TGV2ZWwgX0dl
dFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwgR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWw7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0FwcGx5VHJhbnNmb3JtKHJl
ZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCByZWYgVHJhY2tlZERldmljZVBvc2Vf
dCBwVHJhY2tlZERldmljZVBvc2UsIHJlZiBIbWRNYXRyaXgzNF90IHBUcmFuc2Zvcm0pOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0FwcGx5VHJhbnNmb3JtIEFwcGx5VHJhbnNmb3JtOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRUcmFja2VkRGV2aWNlSW5kZXhGb3JDb250cm9sbGVyUm9sZShF
VHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0VHJhY2tlZERl
dmljZUluZGV4Rm9yQ29udHJvbGxlclJvbGUgR2V0VHJhY2tlZERldmljZUluZGV4Rm9yQ29udHJv
bGxlclJvbGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkQ29udHJv
bGxlclJvbGUgX0dldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5E
ZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5k
ZXggR2V0Q29udHJvbGxlclJvbGVGb3JUcmFja2VkRGV2aWNlSW5kZXg7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVUcmFja2VkRGV2aWNlQ2xhc3MgX0dldFRyYWNrZWREZXZpY2VD
bGFzcyh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYWNrZWREZXZpY2VDbGFzcyBH
ZXRUcmFja2VkRGV2aWNlQ2xhc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJv
b2wgX0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0lzVHJhY2tlZERldmljZUNvbm5lY3RlZCBJc1RyYWNrZWREZXZpY2VDb25uZWN0ZWQ7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEJvb2xUcmFja2VkRGV2aWNlUHJv
cGVydHkodWludCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJl
ZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCb29sVHJhY2tlZERl
dmljZVByb3BlcnR5IEdldEJvb2xUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGZsb2F0IF9HZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1
aW50IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFj
a2VkUHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZsb2F0VHJhY2tlZERldmljZVBy
b3BlcnR5IEdldEZsb2F0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBpbnQgX0dldEludDMyVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5E
ZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCByZWYgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkg
R2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHVsb25nIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmlj
ZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHJlZiBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgcEVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9HZXRVaW50NjRUcmFja2VkRGV2aWNlUHJvcGVydHkgR2V0
VWludDY0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBIbWRNYXRyaXgzNF90IF9HZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50
IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgcmVmIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE1hdHJpeDM0VHJhY2tlZERldmljZVBy
b3BlcnR5IEdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodWlu
dCB1bkRldmljZUluZGV4LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIFN5c3RlbS5UZXh0
LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3Bl
cnR5IEdldFN0cmluZ1RyYWNrZWREZXZpY2VQcm9wZXJ0eTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgSW50UHRyIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0oRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rp
b25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0gR2V0UHJv
cEVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29s
IF9Qb2xsTmV4dEV2ZW50KHJlZiBWUkV2ZW50X3QgcEV2ZW50LCB1aW50IHVuY2JWUkV2ZW50KTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9Qb2xsTmV4dEV2ZW50IFBvbGxOZXh0RXZlbnQ7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0RXZlbnRXaXRoUG9zZShFVHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiBlT3JpZ2luLCByZWYgVlJFdmVudF90IHBFdmVudCwgdWludCB1bmNiVlJFdmVudCwg
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Qb2xs
TmV4dEV2ZW50V2l0aFBvc2UgUG9sbE5leHRFdmVudFdpdGhQb3NlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBJbnRQdHIgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bShFVlJFdmVu
dFR5cGUgZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0dldEV2ZW50VHlwZU5hbWVGcm9tRW51bSBHZXRFdmVudFR5
cGVOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEhpZGRlbkFy
ZWFNZXNoX3QgX0dldEhpZGRlbkFyZWFNZXNoKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hU
eXBlIHR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldEhpZGRlbkFyZWFNZXNoIEdldEhpZGRlbkFyZWFNZXNoOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRDb250cm9sbGVyU3RhdGUo
dWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgcmVmIFZSQ29udHJvbGxlclN0YXRlX3QgcENv
bnRyb2xsZXJTdGF0ZSwgdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENv
bnRyb2xsZXJTdGF0ZSBHZXRDb250cm9sbGVyU3RhdGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIGJvb2wgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlKEVUcmFja2luZ1VuaXZl
cnNlT3JpZ2luIGVPcmlnaW4sIHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHJlZiBWUkNv
bnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsIHVpbnQgdW5Db250cm9sbGVyU3RhdGVT
aXplLCByZWYgVHJhY2tlZERldmljZVBvc2VfdCBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlIEdldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3NlOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9UcmlnZ2VySGFwdGljUHVsc2Uo
dWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCwgdWludCB1bkF4aXNJZCwgY2hhciB1c0R1cmF0
aW9uTWljcm9TZWMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1RyaWdnZXJIYXB0aWNQdWxzZSBUcmlnZ2VySGFwdGljUHVs
c2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0QnV0dG9uSWRO
YW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1dHRvbklkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRCdXR0b25JZE5h
bWVGcm9tRW51bSBHZXRCdXR0b25JZE5hbWVGcm9tRW51bTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgSW50UHRyIF9HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oRVZS
Q29udHJvbGxlckF4aXNUeXBlIGVBeGlzVHlwZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29udHJvbGxlckF4aXNU
eXBlTmFtZUZyb21FbnVtIEdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bTsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfQ2FwdHVyZUlucHV0Rm9jdXMoKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9DYXB0dXJlSW5wdXRGb2N1cyBDYXB0dXJlSW5wdXRGb2N1czsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfUmVsZWFzZUlucHV0Rm9jdXMoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZWxl
YXNlSW5wdXRGb2N1cyBSZWxlYXNlSW5wdXRGb2N1czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzIElzSW5wdXRGb2N1c0Nh
cHR1cmVkQnlBbm90aGVyUHJvY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
dWludCBfRHJpdmVyRGVidWdSZXF1ZXN0KHVpbnQgdW5EZXZpY2VJbmRleCwgc3RyaW5nIHBjaFJl
cXVlc3QsIHN0cmluZyBwY2hSZXNwb25zZUJ1ZmZlciwgdWludCB1blJlc3BvbnNlQnVmZmVyU2l6
ZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfRHJpdmVyRGVidWdSZXF1ZXN0IERyaXZlckRlYnVnUmVxdWVzdDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSRmlybXdhcmVFcnJvciBfUGVyZm9ybUZpcm13
YXJlVXBkYXRlKHVpbnQgdW5EZXZpY2VJbmRleCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUGVyZm9ybUZpcm13YXJlVXBk
YXRlIFBlcmZvcm1GaXJtd2FyZVVwZGF0ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X0V4aXRpbmcoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9BY2tub3dsZWRnZVF1
aXRfRXhpdGluZyBBY2tub3dsZWRnZVF1aXRfRXhpdGluZzsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9B
Y2tub3dsZWRnZVF1aXRfVXNlclByb21wdCBBY2tub3dsZWRnZVF1aXRfVXNlclByb21wdDsKKwor
fQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0
IElWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfR2V0V2luZG93Qm91bmRzKHJlZiBpbnQgcG5YLCByZWYgaW50IHBuWSwgcmVmIHVpbnQgcG5X
aWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdpbmRvd0JvdW5kcyBHZXRXaW5k
b3dCb3VuZHM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0dldEV5ZU91
dHB1dFZpZXdwb3J0KEVWUkV5ZSBlRXllLCByZWYgdWludCBwblgsIHJlZiB1aW50IHBuWSwgcmVm
IHVpbnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEV5ZU91dHB1dFZp
ZXdwb3J0IEdldEV5ZU91dHB1dFZpZXdwb3J0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9HZXREWEdJT3V0cHV0SW5mbyhyZWYgaW50IHBuQWRhcHRlckluZGV4LCByZWYg
aW50IHBuQWRhcHRlck91dHB1dEluZGV4KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXREWEdJT3V0cHV0SW5mbyBHZXRE
WEdJT3V0cHV0SW5mbzsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldCitwdWJsaWMgc3RydWN0IElWUlRyYWNrZWRDYW1lcmEKK3sKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEludFB0ciBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oRVZSVHJhY2tl
ZENhbWVyYUVycm9yIGVDYW1lcmFFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q2FtZXJhRXJyb3JOYW1lRnJv
bUVudW0gR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfSGFzQ2FtZXJhKHVpbnQgbkRldmljZUlu
ZGV4LCByZWYgYm9vbCBwSGFzQ2FtZXJhKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IYXNDYW1lcmEgSGFzQ2FtZXJhOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX0dl
dENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZpY2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSBlRnJhbWVUeXBlLCByZWYgdWludCBwbldpZHRoLCByZWYgdWludCBwbkhlaWdodCwgcmVm
IHVpbnQgcG5GcmFtZUJ1ZmZlclNpemUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlw
ZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENhbWVyYUZyYW1lU2l6ZSBHZXRD
YW1lcmFGcmFtZVNpemU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNr
ZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhSW50cmluc2ljcyh1aW50IG5EZXZpY2VJbmRleCwgRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCByZWYgSG1kVmVjdG9yMl90IHBGb2Nh
bExlbmd0aCwgcmVmIEhtZFZlY3RvcjJfdCBwQ2VudGVyKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRDYW1lcmFJbnRy
aW5zaWNzIEdldENhbWVyYUludHJpbnNpY3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfR2V0Q2FtZXJhUHJvamVjdGlvbih1aW50IG5EZXZp
Y2VJbmRleCwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBmbG9hdCBmbFpO
ZWFyLCBmbG9hdCBmbFpGYXIsIHJlZiBIbWRNYXRyaXg0NF90IHBQcm9qZWN0aW9uKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRDYW1lcmFQcm9qZWN0aW9uIEdldENhbWVyYVByb2plY3Rpb247CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1lcmFFcnJvciBfQWNxdWlyZVZpZGVvU3Ry
ZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCwgcmVmIHVsb25nIHBIYW5kbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0FjcXVpcmVWaWRlb1N0cmVhbWluZ1NlcnZpY2UgQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2Vy
dmljZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVy
cm9yIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlKHVsb25nIGhUcmFja2VkQ2FtZXJhKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9SZWxlYXNlVmlkZW9TdHJlYW1pbmdTZXJ2aWNlIFJlbGVhc2VWaWRlb1N0cmVhbWlu
Z1NlcnZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciBfR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcih1bG9uZyBoVHJhY2tlZENhbWVyYSwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCBJbnRQdHIgcEZyYW1lQnVmZmVy
LCB1aW50IG5GcmFtZUJ1ZmZlclNpemUsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFZpZGVv
U3RyZWFtRnJhbWVCdWZmZXIgR2V0VmlkZW9TdHJlYW1GcmFtZUJ1ZmZlcjsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVh
bVRleHR1cmVTaXplKHVpbnQgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIHJlZiBWUlRleHR1cmVCb3VuZHNfdCBwVGV4dHVyZUJvdW5kcywgcmVmIHVp
bnQgcG5XaWR0aCwgcmVmIHVpbnQgcG5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFZpZGVvU3RyZWFtVGV4
dHVyZVNpemUgR2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRleHR1cmVE
M0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJh
bWVUeXBlLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJjZSwgcmVmIEludFB0ciBwcEQzRDEx
U2hhZGVyUmVzb3VyY2VWaWV3LCByZWYgQ2FtZXJhVmlkZW9TdHJlYW1GcmFtZUhlYWRlcl90IHBG
cmFtZUhlYWRlciwgdWludCBuRnJhbWVIZWFkZXJTaXplKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRWaWRlb1N0cmVh
bVRleHR1cmVEM0QxMSBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSVHJhY2tlZENhbWVyYUVycm9yIF9HZXRWaWRlb1N0cmVhbVRl
eHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBl
RnJhbWVUeXBlLCByZWYgdWludCBwZ2xUZXh0dXJlSWQsIHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZy
YW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLCB1aW50IG5GcmFtZUhlYWRlclNpemUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldFZpZGVvU3RyZWFtVGV4dHVyZUdMIEdldFZpZGVvU3RyZWFtVGV4dHVyZUdMOworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgX1JlbGVhc2VW
aWRlb1N0cmVhbVRleHR1cmVHTCh1bG9uZyBoVHJhY2tlZENhbWVyYSwgdWludCBnbFRleHR1cmVJ
ZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfUmVsZWFzZVZpZGVvU3RyZWFtVGV4dHVyZUdMIFJlbGVhc2VWaWRlb1N0cmVh
bVRleHR1cmVHTDsKKworfQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
CitwdWJsaWMgc3RydWN0IElWUkFwcGxpY2F0aW9ucworeworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfQWRkQXBwbGljYXRpb25NYW5pZmVzdChzdHJp
bmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoLCBib29sIGJUZW1wb3JhcnkpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0FkZEFwcGxpY2F0aW9uTWFuaWZlc3QgQWRkQXBwbGljYXRpb25NYW5pZmVzdDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfUmVtb3ZlQXBw
bGljYXRpb25NYW5pZmVzdChzdHJpbmcgcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9SZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0IFJlbW92ZUFwcGxpY2F0aW9uTWFuaWZl
c3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzQXBwbGljYXRpb25J
bnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSXNBcHBsaWNhdGlvbkluc3RhbGxl
ZCBJc0FwcGxpY2F0aW9uSW5zdGFsbGVkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSB1aW50IF9HZXRBcHBsaWNhdGlvbkNvdW50KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0QXBwbGljYXRpb25Db3Vu
dCBHZXRBcHBsaWNhdGlvbkNvdW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgodWludCB1bkFwcGxp
Y2F0aW9uSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLCB1
aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgg
R2V0QXBwbGljYXRpb25LZXlCeUluZGV4OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJBcHBsaWNhdGlvbkVycm9yIF9HZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQg
dW5Qcm9jZXNzSWQsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZmZXJM
ZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uS2V5QnlQcm9jZXNzSWQgR2V0QXBwbGljYXRpb25L
ZXlCeVByb2Nlc3NJZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGlj
YXRpb25FcnJvciBfTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
TGF1bmNoQXBwbGljYXRpb24gTGF1bmNoQXBwbGljYXRpb247CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaFRlbXBsYXRlQXBwbGljYXRp
b24oc3RyaW5nIHBjaFRlbXBsYXRlQXBwS2V5LCBzdHJpbmcgcGNoTmV3QXBwS2V5LCBbSW4sIE91
dF0gQXBwT3ZlcnJpZGVLZXlzX3RbXSBwS2V5cywgdWludCB1bktleXMpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xhdW5j
aFRlbXBsYXRlQXBwbGljYXRpb24gTGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbjsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfTGF1bmNoQXBwbGlj
YXRpb25Gcm9tTWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLCBzdHJpbmcgcGNoQXJncyk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfTGF1bmNoQXBwbGljYXRpb25Gcm9tTWltZVR5cGUgTGF1bmNoQXBwbGljYXRpb25Gcm9t
TWltZVR5cGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9u
RXJyb3IgX0xhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
TGF1bmNoRGFzaGJvYXJkT3ZlcmxheSBMYXVuY2hEYXNoYm9hcmRPdmVybGF5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaChzdHJp
bmcgcGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9DYW5jZWxBcHBsaWNhdGlvbkxhdW5jaCBDYW5jZWxBcHBs
aWNhdGlvbkxhdW5jaDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGlj
YXRpb25FcnJvciBfSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLCBzdHJpbmcg
cGNoQXBwS2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9JZGVudGlmeUFwcGxpY2F0aW9uIElkZW50aWZ5QXBwbGljYXRp
b247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEFwcGxpY2F0aW9u
UHJvY2Vzc0lkKHN0cmluZyBwY2hBcHBLZXkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvY2Vz
c0lkIEdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBJbnRQdHIgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKEVWUkFwcGxpY2F0
aW9uRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVt
IEdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5nKHN0cmluZyBwY2hB
cHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBTeXN0ZW0uVGV4dC5TdHJp
bmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsIHVpbnQgdW5Qcm9wZXJ0eVZhbHVlQnVm
ZmVyTGVuLCByZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBs
aWNhdGlvblByb3BlcnR5U3RyaW5nIEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmc7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlC
b29sKHN0cmluZyBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LCBy
ZWYgRVZSQXBwbGljYXRpb25FcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvblBy
b3BlcnR5Qm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50NjQoc3RyaW5n
IHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIHJlZiBFVlJBcHBs
aWNhdGlvbkVycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uUHJvcGVydHlVaW50
NjQgR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHN0
cmluZyBwY2hBcHBLZXksIGJvb2wgYkF1dG9MYXVuY2gpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldEFwcGxpY2F0aW9u
QXV0b0xhdW5jaCBTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2g7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldEFwcGxpY2F0aW9uQXV0b0xhdW5jaChzdHJpbmcgcGNoQXBw
S2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2ggR2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNhdGlvbkVy
cm9yIF9TZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJpbmcgcGNoQXBwS2V5LCBz
dHJpbmcgcGNoTWltZVR5cGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVU
eXBlIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXREZWZhdWx0QXBwbGljYXRpb25Gb3JNaW1lVHlwZShzdHJp
bmcgcGNoTWltZVR5cGUsIHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsIHVpbnQgdW5BcHBLZXlCdWZm
ZXJMZW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlIEdldERlZmF1
bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBib29sIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyhzdHJpbmcgcGNoQXBwS2V5
LCBzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLCB1aW50IHVuTWltZVR5cGVzQnVmZmVyKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyBHZXRBcHBsaWNhdGlvblN1cHBv
cnRlZE1pbWVUeXBlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
QXBwbGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsIHN0cmlu
ZyBwY2hBcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIsIHVpbnQgdW5BcHBLZXlzVGhhdFN1cHBvcnRC
dWZmZXIpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUgR2V0QXBw
bGljYXRpb25zVGhhdFN1cHBvcnRNaW1lVHlwZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgdWludCBfR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHModWludCB1bkhhbmRsZSwg
c3RyaW5nIHBjaEFyZ3MsIHVpbnQgdW5BcmdzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRBcHBsaWNhdGlvbkxhdW5j
aEFyZ3VtZW50cyBHZXRBcHBsaWNhdGlvbkxhdW5jaEFyZ3VtZW50czsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZSQXBwbGljYXRpb25FcnJvciBfR2V0U3RhcnRpbmdBcHBsaWNh
dGlvbihzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLCB1aW50IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRTdGFydGluZ0FwcGxpY2F0aW9uIEdldFN0YXJ0aW5nQXBwbGljYXRpb247CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRl
IF9HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFuc2l0aW9uU3RhdGUgR2V0VHJh
bnNpdGlvblN0YXRlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJBcHBsaWNh
dGlvbkVycm9yIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhzdHJpbmcgcGNoQXBw
S2V5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayBQZXJmb3JtQXBw
bGljYXRpb25QcmVsYXVuY2hDaGVjazsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
SW50UHRyIF9HZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0oRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUgc3RhdGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEFwcGxpY2F0aW9uc1Ry
YW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bSBHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVO
YW1lRnJvbUVudW07CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzUXVp
dFVzZXJQcm9tcHRSZXF1ZXN0ZWQoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Jc1F1aXRVc2VyUHJvbXB0UmVxdWVzdGVk
IElzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkFwcGxpY2F0aW9uRXJyb3IgX0xhdW5jaEludGVybmFsUHJvY2VzcyhzdHJpbmcgcGNo
QmluYXJ5UGF0aCwgc3RyaW5nIHBjaEFyZ3VtZW50cywgc3RyaW5nIHBjaFdvcmtpbmdEaXJlY3Rv
cnkpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0xhdW5jaEludGVybmFsUHJvY2VzcyBMYXVuY2hJbnRlcm5hbFByb2Nlc3M7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZVBy
b2Nlc3NJZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCBHZXRDdXJyZW50U2Nl
bmVQcm9jZXNzSWQ7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XQorcHVibGljIHN0cnVjdCBJVlJDaGFwZXJvbmUKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgX0dldENhbGlicmF0aW9uU3RhdGUoKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRDYWxpYnJhdGlvblN0YXRlIEdldENhbGlicmF0aW9uU3RhdGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQg
cFNpemVYLCByZWYgZmxvYXQgcFNpemVaKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVNpemUgR2V0UGxh
eUFyZWFTaXplOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRQbGF5
QXJlYVJlY3QocmVmIEhtZFF1YWRfdCByZWN0KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQbGF5QXJlYVJlY3QgR2V0
UGxheUFyZWFSZWN0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxv
YWRJbmZvKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfUmVsb2FkSW5mbyBSZWxvYWRJbmZvOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRTY2VuZUNvbG9yKEhtZENvbG9yX3QgY29sb3IpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX1NldFNjZW5lQ29sb3IgU2V0U2NlbmVDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgdm9pZCBfR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENv
bG9yQXJyYXksIGludCBuTnVtT3V0cHV0Q29sb3JzLCBmbG9hdCBmbENvbGxpc2lvbkJvdW5kc0Zh
ZGVEaXN0YW5jZSwgcmVmIEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRCb3VuZHNDb2xvciBHZXRCb3VuZHNDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgYm9vbCBfQXJlQm91bmRzVmlzaWJsZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0FyZUJvdW5kc1Zpc2libGUg
QXJlQm91bmRzVmlzaWJsZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBf
Rm9yY2VCb3VuZHNWaXNpYmxlKGJvb2wgYkZvcmNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Gb3JjZUJvdW5kc1Zpc2li
bGUgRm9yY2VCb3VuZHNWaXNpYmxlOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSQ2hhcGVyb25lU2V0dXAKK3sKKyAgICAgICBb
VW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAg
ICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbW1pdFdvcmtpbmdDb3B5KEVDaGFwZXJvbmVD
b25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbW1pdFdvcmtpbmdDb3B5IENvbW1pdFdv
cmtpbmdDb3B5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZXZlcnRX
b3JraW5nQ29weSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1JldmVydFdvcmtpbmdDb3B5IFJldmVydFdvcmtpbmdDb3B5
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nUGxheUFy
ZWFTaXplKHJlZiBmbG9hdCBwU2l6ZVgsIHJlZiBmbG9hdCBwU2l6ZVopOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFdv
cmtpbmdQbGF5QXJlYVNpemUgR2V0V29ya2luZ1BsYXlBcmVhU2l6ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgSG1kUXVh
ZF90IHJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldFdvcmtpbmdQbGF5QXJlYVJlY3QgR2V0V29ya2luZ1BsYXlB
cmVhUmVjdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0V29ya2lu
Z0NvbGxpc2lvbkJvdW5kc0luZm8oW0luLCBPdXRdIEhtZFF1YWRfdFtdIHBRdWFkc0J1ZmZlciwg
cmVmIHVpbnQgcHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5k
c0luZm8gR2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm87CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvKFtJbiwgT3V0XSBI
bWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvIEdldExpdmVDb2xsaXNpb25Cb3VuZHNJbmZvOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRXb3JraW5nU2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1
bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UgR2V0V29ya2luZ1NlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldFdvcmtpbmdTdGFuZGlu
Z1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIEhtZE1hdHJpeDM0X3QgcG1hdFN0YW5kaW5n
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0V29ya2luZ1N0YW5kaW5nWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJh
Y2tpbmdQb3NlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3Jr
aW5nUGxheUFyZWFTaXplKGZsb2F0IHNpemVYLCBmbG9hdCBzaXplWik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29y
a2luZ1BsYXlBcmVhU2l6ZSBTZXRXb3JraW5nUGxheUFyZWFTaXplOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhbSW4s
IE91dF0gSG1kUXVhZF90W10gcFF1YWRzQnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8gU2V0V29ya2luZ0NvbGxpc2lvbkJvdW5k
c0luZm87CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldFdvcmtpbmdT
ZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBNYXRTZWF0
ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU2VhdGVkWmVy
b1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0V29ya2lu
Z1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0
U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRXb3JraW5nU3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIFNldFdvcmtpbmdTdGFuZGluZ1plcm9Qb3Nl
VG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQg
X1JlbG9hZEZyb21EaXNrKEVDaGFwZXJvbmVDb25maWdGaWxlIGNvbmZpZ0ZpbGUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1JlbG9hZEZyb21EaXNrIFJlbG9hZEZyb21EaXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBib29sIF9HZXRMaXZlU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYg
SG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0TGl2ZVNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UgR2V0TGl2ZVNlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX1NldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtd
IHBUYWdzQnVmZmVyLCB1aW50IHVuVGFnQ291bnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFdvcmtpbmdDb2xsaXNp
b25Cb3VuZHNUYWdzSW5mbyBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm87CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0dldExpdmVDb2xsaXNpb25Cb3VuZHNU
YWdzSW5mbyhbSW4sIE91dF0gYnl0ZVtdIHBUYWdzQnVmZmVyLCByZWYgdWludCBwdW5UYWdDb3Vu
dCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvIEdldExpdmVDb2xsaXNp
b25Cb3VuZHNUYWdzSW5mbzsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBf
U2V0V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhbSW4sIE91dF0gSG1kUXVhZF90W10gcFF1YWRz
QnVmZmVyLCB1aW50IHVuUXVhZHNDb3VudCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRU
eXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0V29ya2luZ1BoeXNpY2FsQm91
bmRzSW5mbyBTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZvKFtJbiwgT3V0XSBI
bWRRdWFkX3RbXSBwUXVhZHNCdWZmZXIsIHJlZiB1aW50IHB1blF1YWRzQ291bnQpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldExpdmVQaHlzaWNhbEJvdW5kc0luZm8gR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbzsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfRXhwb3J0TGl2ZVRvQnVmZmVyKFN5
c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcEJ1ZmZlciwgcmVmIHVpbnQgcG5CdWZmZXJMZW5ndGgp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0V4cG9ydExpdmVUb0J1ZmZlciBFeHBvcnRMaXZlVG9CdWZmZXI7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0ltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmco
c3RyaW5nIHBCdWZmZXIsIHVpbnQgbkltcG9ydEZsYWdzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9JbXBvcnRGcm9tQnVm
ZmVyVG9Xb3JraW5nIEltcG9ydEZyb21CdWZmZXJUb1dvcmtpbmc7CisKK30KKworW1N0cnVjdExh
eW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVibGljIHN0cnVjdCBJVlJDb21wb3NpdG9y
Cit7CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9TZXRUcmFja2luZ1NwYWNl
KEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4pOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldFRyYWNraW5nU3Bh
Y2UgU2V0VHJhY2tpbmdTcGFjZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVRy
YWNraW5nVW5pdmVyc2VPcmlnaW4gX0dldFRyYWNraW5nU3BhY2UoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRUcmFj
a2luZ1NwYWNlIEdldFRyYWNraW5nU3BhY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfV2FpdEdldFBvc2VzKFtJbiwgT3V0XSBUcmFja2VkRGV2
aWNlUG9zZV90W10gcFJlbmRlclBvc2VBcnJheSwgdWludCB1blJlbmRlclBvc2VBcnJheUNvdW50
LCBbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBHYW1lUG9zZUFycmF5LCB1aW50IHVu
R2FtZVBvc2VBcnJheUNvdW50KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9XYWl0R2V0UG9zZXMgV2FpdEdldFBvc2VzOwor
CisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRD
YWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX0dldExh
c3RQb3NlcyhbSW4sIE91dF0gVHJhY2tlZERldmljZVBvc2VfdFtdIHBSZW5kZXJQb3NlQXJyYXks
IHVpbnQgdW5SZW5kZXJQb3NlQXJyYXlDb3VudCwgW0luLCBPdXRdIFRyYWNrZWREZXZpY2VQb3Nl
X3RbXSBwR2FtZVBvc2VBcnJheSwgdWludCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0TGFzdFBvc2VzIEdldExhc3RQb3NlczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCh1
aW50IHVuRGV2aWNlSW5kZXgsIHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLCBy
ZWYgVHJhY2tlZERldmljZVBvc2VfdCBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldExhc3RQ
b3NlRm9yVHJhY2tlZERldmljZUluZGV4IEdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJDb21wb3NpdG9yRXJyb3IgX1N1
Ym1pdChFVlJFeWUgZUV5ZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSwgcmVmIFZSVGV4dHVyZUJv
dW5kc190IHBCb3VuZHMsIEVWUlN1Ym1pdEZsYWdzIG5TdWJtaXRGbGFncyk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU3Vi
bWl0IFN1Ym1pdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfQ2xlYXJM
YXN0U3VibWl0dGVkRnJhbWUoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSBDbGVh
ckxhc3RTdWJtaXR0ZWRGcmFtZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9p
ZCBfUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUG9zdFByZXNlbnRIYW5kb2ZmIFBvc3RQ
cmVzZW50SGFuZG9mZjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfR2V0
RnJhbWVUaW1pbmcocmVmIENvbXBvc2l0b3JfRnJhbWVUaW1pbmcgcFRpbWluZywgdWludCB1bkZy
YW1lc0Fnbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0RnJhbWVUaW1pbmcgR2V0RnJhbWVUaW1pbmc7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9z
aXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLCB1aW50IG5GcmFtZXMpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZyYW1l
VGltaW5ncyBHZXRGcmFtZVRpbWluZ3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IGZsb2F0IF9HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRGcmFtZVRpbWVSZW1h
aW5pbmcgR2V0RnJhbWVUaW1lUmVtYWluaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB2b2lkIF9HZXRDdW11bGF0aXZlU3RhdHMocmVmIENvbXBvc2l0b3JfQ3VtdWxhdGl2ZVN0
YXRzIHBTdGF0cywgdWludCBuU3RhdHNTaXplSW5CeXRlcyk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q3VtdWxhdGl2
ZVN0YXRzIEdldEN1bXVsYXRpdmVTdGF0czsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgdm9pZCBfRmFkZVRvQ29sb3IoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZsb2F0IGZH
cmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfRmFkZVRvQ29sb3IgRmFkZVRvQ29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEhtZENvbG9yX3QgX0dldEN1cnJlbnRGYWRlQ29sb3IoYm9vbCBiQmFja2dyb3VuZCk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0Q3VycmVudEZhZGVDb2xvciBHZXRDdXJyZW50RmFkZUNvbG9yOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9GYWRlR3JpZChmbG9hdCBmU2Vjb25kcywgYm9v
bCBiRmFkZUluKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9GYWRlR3JpZCBGYWRlR3JpZDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgZmxvYXQgX0dldEN1cnJlbnRHcmlkQWxwaGEoKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRD
dXJyZW50R3JpZEFscGhhIEdldEN1cnJlbnRHcmlkQWxwaGE7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfU2V0U2t5Ym94T3ZlcnJpZGUoW0luLCBP
dXRdIFRleHR1cmVfdFtdIHBUZXh0dXJlcywgdWludCB1blRleHR1cmVDb3VudCk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U2V0U2t5Ym94T3ZlcnJpZGUgU2V0U2t5Ym94T3ZlcnJpZGU7CisKKyAgICAgICBbVW5tYW5hZ2Vk
RnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVy
bmFsIGRlbGVnYXRlIHZvaWQgX0NsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DbGVhclNr
eWJveE92ZXJyaWRlIENsZWFyU2t5Ym94T3ZlcnJpZGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Db21wb3Np
dG9yQnJpbmdUb0Zyb250IENvbXBvc2l0b3JCcmluZ1RvRnJvbnQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JHb1RvQmFjaygpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0NvbXBv
c2l0b3JHb1RvQmFjayBDb21wb3NpdG9yR29Ub0JhY2s7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JRdWl0KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvclF1aXQg
Q29tcG9zaXRvclF1aXQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0lz
RnVsbHNjcmVlbigpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX0lzRnVsbHNjcmVlbiBJc0Z1bGxzY3JlZW47CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2Vz
cygpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0dldEN1cnJlbnRTY2VuZUZvY3VzUHJvY2VzcyBHZXRDdXJyZW50U2NlbmVG
b2N1c1Byb2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldExh
c3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0TGFzdEZyYW1lUmVuZGVyZXIgR2V0TGFzdEZy
YW1lUmVuZGVyZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NhblJl
bmRlclNjZW5lKCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRy
KV0KKyAgICAgICBpbnRlcm5hbCBfQ2FuUmVuZGVyU2NlbmUgQ2FuUmVuZGVyU2NlbmU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1Nob3dNaXJyb3JXaW5kb3coKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TaG93TWlycm9yV2luZG93IFNob3dNaXJyb3JXaW5kb3c7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0hpZGVNaXJyb3JXaW5kb3coKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9IaWRlTWly
cm9yV2luZG93IEhpZGVNaXJyb3JXaW5kb3c7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIGJvb2wgX0lzTWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzTWlycm9yV2luZG93
VmlzaWJsZSBJc01pcnJvcldpbmRvd1Zpc2libGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIHZvaWQgX0NvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ29tcG9zaXRvckR1
bXBJbWFnZXMgQ29tcG9zaXRvckR1bXBJbWFnZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIGJvb2wgX1Nob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9T
aG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNv
dXJjZXM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZvcmNlSW50ZXJs
ZWF2ZWRSZXByb2plY3Rpb25Pbihib29sIGJPdmVycmlkZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRm9yY2VJbnRlcmxl
YXZlZFJlcHJvamVjdGlvbk9uIEZvcmNlSW50ZXJsZWF2ZWRSZXByb2plY3Rpb25PbjsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfRm9yY2VSZWNvbm5lY3RQcm9jZXNzIEZvcmNlUmVjb25uZWN0UHJvY2VzczsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU3VzcGVuZFJlbmRlcmluZyhib29s
IGJTdXNwZW5kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9TdXNwZW5kUmVuZGVyaW5nIFN1c3BlbmRSZW5kZXJpbmc7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUkNvbXBvc2l0b3JFcnJvciBfR2V0TWly
cm9yVGV4dHVyZUQzRDExKEVWUkV5ZSBlRXllLCBJbnRQdHIgcEQzRDExRGV2aWNlT3JSZXNvdXJj
ZSwgcmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRNaXJy
b3JUZXh0dXJlRDNEMTEgR2V0TWlycm9yVGV4dHVyZUQzRDExOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9SZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNE
MTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEg
UmVsZWFzZU1pcnJvclRleHR1cmVEM0QxMTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgRVZSQ29tcG9zaXRvckVycm9yIF9HZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUsIHJl
ZiB1aW50IHBnbFRleHR1cmVJZCwgSW50UHRyIHBnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJu
YWwgX0dldE1pcnJvclRleHR1cmVHTCBHZXRNaXJyb3JUZXh0dXJlR0w7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1JlbGVhc2VTaGFyZWRHTFRleHR1cmUodWludCBnbFRl
eHR1cmVJZCwgSW50UHRyIGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfUmVsZWFzZVNo
YXJlZEdMVGV4dHVyZSBSZWxlYXNlU2hhcmVkR0xUZXh0dXJlOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB2b2lkIF9Mb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBn
bFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nl
c3MgTG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgdm9pZCBfVW5sb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1VubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2Vz
cyBVbmxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3M7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIHVpbnQgX0dldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRWdWxrYW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZCBHZXRWdWxrYW5JbnN0YW5jZUV4
dGVuc2lvbnNSZXF1aXJlZDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2Fs
bGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBf
R2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKEludFB0ciBwUGh5c2ljYWxEZXZpY2Us
IFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplKTsK
KyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGlu
dGVybmFsIF9HZXRWdWxrYW5EZXZpY2VFeHRlbnNpb25zUmVxdWlyZWQgR2V0VnVsa2FuRGV2aWNl
RXh0ZW5zaW9uc1JlcXVpcmVkOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZST3ZlcmxheQoreworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9GaW5kT3ZlcmxheShzdHJpbmcgcGNoT3Zlcmxh
eUtleSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9GaW5kT3ZlcmxheSBGaW5k
T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZl
bnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9y
IF9DcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZy
aWVuZGx5TmFtZSwgcmVmIHVsb25nIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9DcmVhdGVPdmVy
bGF5IENyZWF0ZU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfRGVzdHJveU92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9EZXN0cm95T3ZlcmxheSBEZXN0cm95T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxvbmcgdWxP
dmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9TZXRIaWdoUXVhbGl0eU92ZXJsYXkgU2V0SGlnaFF1YWxp
dHlPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1bG9uZyBfR2V0SGln
aFF1YWxpdHlPdmVybGF5KCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0SGlnaFF1YWxpdHlPdmVybGF5IEdldEhpZ2hR
dWFsaXR5T3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGlu
Z0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0
T3ZlcmxheUtleSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXplLCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJv
cik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfR2V0T3ZlcmxheUtleSBHZXRPdmVybGF5S2V5OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRPdmVybGF5TmFtZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUsIHVpbnQgdW5CdWZmZXJTaXpl
LCByZWYgRVZST3ZlcmxheUVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheU5hbWUgR2V0
T3ZlcmxheU5hbWU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlF
cnJvciBfR2V0T3ZlcmxheUltYWdlRGF0YSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIEludFB0ciBw
dkJ1ZmZlciwgdWludCB1bkJ1ZmZlclNpemUsIHJlZiB1aW50IHB1bldpZHRoLCByZWYgdWludCBw
dW5IZWlnaHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlJbWFnZURhdGEgR2V0T3ZlcmxheUltYWdlRGF0
YTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRPdmVybGF5RXJy
b3JOYW1lRnJvbUVudW0oRVZST3ZlcmxheUVycm9yIGVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5
RXJyb3JOYW1lRnJvbUVudW0gR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtOworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlSZW5kZXJp
bmdQaWQodWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuUElEKTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5UmVuZGVyaW5nUGlkIFNldE92ZXJsYXlSZW5kZXJpbmdQaWQ7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHVpbnQgX0dldE92ZXJsYXlSZW5kZXJpbmdQaWQodWxvbmcgdWxPdmVy
bGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5UmVuZGVyaW5nUGlkIEdldE92ZXJsYXlSZW5k
ZXJpbmdQaWQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJv
ciBfU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlGbGFncyBl
T3ZlcmxheUZsYWcsIGJvb2wgYkVuYWJsZWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlGbGFnIFNldE92
ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX0dldE92ZXJsYXlGbGFnKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3Mg
ZU92ZXJsYXlGbGFnLCByZWYgYm9vbCBwYkVuYWJsZWQpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldE92ZXJsYXlGbGFn
IEdldE92ZXJsYXlGbGFnOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldE92ZXJsYXlDb2xvcih1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZS
ZWQsIGZsb2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlDb2xvciBT
ZXRPdmVybGF5Q29sb3I7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJs
YXlFcnJvciBfR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0
IHBmUmVkLCByZWYgZmxvYXQgcGZHcmVlbiwgcmVmIGZsb2F0IHBmQmx1ZSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
T3ZlcmxheUNvbG9yIEdldE92ZXJsYXlDb2xvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5QWxwaGEodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5j
dGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlBbHBoYSBTZXRPdmVybGF5QWxw
aGE7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0
T3ZlcmxheUFscGhhKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmQWxwaGEpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldE92ZXJsYXlBbHBoYSBHZXRPdmVybGF5QWxwaGE7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRleGVsQXNwZWN0KHVs
b25nIHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgZlRleGVsQXNwZWN0KTsKKyAgICAgICBbTWFyc2hh
bEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVy
bGF5VGV4ZWxBc3BlY3QgU2V0T3ZlcmxheVRleGVsQXNwZWN0OworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXhlbEFzcGVjdCh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBmbG9hdCBwZlRleGVsQXNwZWN0KTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRP
dmVybGF5VGV4ZWxBc3BlY3QgR2V0T3ZlcmxheVRleGVsQXNwZWN0OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlTb3J0T3JkZXIodWxv
bmcgdWxPdmVybGF5SGFuZGxlLCB1aW50IHVuU29ydE9yZGVyKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5
U29ydE9yZGVyIFNldE92ZXJsYXlTb3J0T3JkZXI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVNvcnRPcmRlcih1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIHJlZiB1aW50IHB1blNvcnRPcmRlcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVNvcnRP
cmRlciBHZXRPdmVybGF5U29ydE9yZGVyOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9p
bnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0
ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVsT3Zlcmxh
eUhhbmRsZSwgZmxvYXQgZldpZHRoSW5NZXRlcnMpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlXaWR0aElu
TWV0ZXJzIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0
aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBk
ZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25nIHVs
T3ZlcmxheUhhbmRsZSwgcmVmIGZsb2F0IHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zl
cmxheVdpZHRoSW5NZXRlcnMgR2V0T3ZlcmxheVdpZHRoSW5NZXRlcnM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheUF1dG9DdXJ2ZURp
c3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZNaW5EaXN0
YW5jZUluTWV0ZXJzLCBmbG9hdCBmTWF4RGlzdGFuY2VJbk1ldGVycyk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zl
cmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyBTZXRPdmVybGF5QXV0b0N1cnZlRGlz
dGFuY2VSYW5nZUluTWV0ZXJzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX0dldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnModWxv
bmcgdWxPdmVybGF5SGFuZGxlLCByZWYgZmxvYXQgcGZNaW5EaXN0YW5jZUluTWV0ZXJzLCByZWYg
ZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5QXV0b0N1cnZl
RGlzdGFuY2VSYW5nZUluTWV0ZXJzIEdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5N
ZXRlcnM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
U2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9y
U3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VGV4dHVyZUNvbG9y
U3BhY2UgU2V0T3ZlcmxheVRleHR1cmVDb2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNl
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UgR2V0T3ZlcmxheVRleHR1cmVD
b2xvclNwYWNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1NldE92ZXJsYXlUZXh0dXJlQm91bmRzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZS
VGV4dHVyZUJvdW5kc190IHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eVRleHR1cmVCb3VuZHMgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHM7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRleHR1cmVCb3VuZHMo
dWxvbmcgdWxPdmVybGF5SGFuZGxlLCByZWYgVlJUZXh0dXJlQm91bmRzX3QgcE92ZXJsYXlUZXh0
dXJlQm91bmRzKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIp
XQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VGV4dHVyZUJvdW5kcyBHZXRPdmVybGF5VGV4
dHVyZUJvdW5kczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0Nv
bnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVy
cm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHlwZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBW
Uk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3Zlcmxh
eVRyYW5zZm9ybVR5cGUgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGU7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0T3ZlcmxheVRyYW5zZm9ybUFic29s
dXRlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNr
aW5nT3JpZ2luLCByZWYgSG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlU
cmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1NldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSBTZXRPdmVybGF5
VHJhbnNmb3JtQWJzb2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgcmVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIHBlVHJhY2tpbmdPcmlnaW4sIHJlZiBI
bWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfR2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlIEdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0
ZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24u
U3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRP
dmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSwgdWludCB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2VkRGV2
aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tl
ZERldmljZVJlbGF0aXZlIFNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmU7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0T3Zl
cmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
IHJlZiB1aW50IHB1blRyYWNrZWREZXZpY2UsIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2Vk
RGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJh
Y2tlZERldmljZVJlbGF0aXZlIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRp
dmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFu
ZGxlLCB1aW50IHVuRGV2aWNlSW5kZXgsIHN0cmluZyBwY2hDb21wb25lbnROYW1lKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBTZXRPdmVybGF5VHJh
bnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNv
bXBvbmVudCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1bkRldmljZUluZGV4LCBz
dHJpbmcgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVTaXplKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9HZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudCBHZXRPdmVybGF5VHJh
bnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVudDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlv
blBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVs
ZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TaG93T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX1Nob3dPdmVybGF5IFNob3dPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0hpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhh
bmRsZSk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAg
ICAgICBpbnRlcm5hbCBfSGlkZU92ZXJsYXkgSGlkZU92ZXJsYXk7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIGJvb2wgX0lzT3ZlcmxheVZpc2libGUodWxvbmcgdWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9Jc092ZXJsYXlWaXNpYmxlIElzT3ZlcmxheVZpc2libGU7CisKKyAgICAg
ICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQor
ICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0VHJhbnNmb3JtRm9y
T3ZlcmxheUNvb3JkaW5hdGVzKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCBIbWRWZWN0b3IyX3QgY29vcmRpbmF0ZXNJbk92ZXJs
YXksIHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFuc2Zvcm0pOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFRyYW5zZm9y
bUZvck92ZXJsYXlDb29yZGluYXRlcyBHZXRUcmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXM7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX1BvbGxOZXh0T3ZlcmxheUV2
ZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZSRXZlbnRfdCBwRXZlbnQsIHVpbnQgdW5j
YlZSRXZlbnQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cild
CisgICAgICAgaW50ZXJuYWwgX1BvbGxOZXh0T3ZlcmxheUV2ZW50IFBvbGxOZXh0T3ZlcmxheUV2
ZW50OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBWUk92ZXJsYXlJ
bnB1dE1ldGhvZCBwZUlucHV0TWV0aG9kKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRPdmVybGF5SW5wdXRNZXRob2Qg
R2V0T3ZlcmxheUlucHV0TWV0aG9kOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRl
cihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBF
VlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUsIFZST3ZlcmxheUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3Zlcmxh
eUlucHV0TWV0aG9kIFNldE92ZXJsYXlJbnB1dE1ldGhvZDsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVybGF5TW91c2VTY2FsZSh1bG9uZyB1
bE92ZXJsYXlIYW5kbGUsIHJlZiBIbWRWZWN0b3IyX3QgcHZlY01vdXNlU2NhbGUpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X0dldE92ZXJsYXlNb3VzZVNjYWxlIEdldE92ZXJsYXlNb3VzZVNjYWxlOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlNb3VzZVNjYWxl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0T3ZlcmxheU1vdXNlU2NhbGUgU2V0T3ZlcmxheU1vdXNlU2NhbGU7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIGJvb2wgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0
aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFt
c190IHBQYXJhbXMsIHJlZiBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3QgcFJlc3VsdHMp
OworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAg
aW50ZXJuYWwgX0NvbXB1dGVPdmVybGF5SW50ZXJzZWN0aW9uIENvbXB1dGVPdmVybGF5SW50ZXJz
ZWN0aW9uOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9IYW5kbGVDb250
cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHVp
bnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hhbmRsZUNvbnRyb2xsZXJPdmVy
bGF5SW50ZXJhY3Rpb25Bc01vdXNlIEhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25B
c01vdXNlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVu
dGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0hvdmVyVGFy
Z2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5t
YW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0lzSG92ZXJUYXJnZXRP
dmVybGF5IElzSG92ZXJUYXJnZXRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSB1bG9uZyBfR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSgpOworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEdhbWVwYWRG
b2N1c092ZXJsYXkgR2V0R2FtZXBhZEZvY3VzT3ZlcmxheTsKKworICAgICAgIFtVbm1hbmFnZWRG
dW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJu
YWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5KHVsb25n
IHVsTmV3Rm9jdXNPdmVybGF5KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRHYW1lcGFkRm9jdXNPdmVybGF5IFNldEdh
bWVwYWRGb2N1c092ZXJsYXk7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92
ZXJsYXlFcnJvciBfU2V0T3ZlcmxheU5laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rp
b24sIHVsb25nIHVsRnJvbSwgdWxvbmcgdWxUbyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheU5laWdoYm9y
IFNldE92ZXJsYXlOZWlnaGJvcjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
T3ZlcmxheUVycm9yIF9Nb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcihFT3ZlcmxheURpcmVjdGlv
biBlRGlyZWN0aW9uLCB1bG9uZyB1bEZyb20pOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2Vk
VHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX01vdmVHYW1lcGFkRm9jdXNUb05l
aWdoYm9yIE1vdmVHYW1lcGFkRm9jdXNUb05laWdoYm9yOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1NldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSwgcmVmIFRleHR1cmVfdCBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxBcyhV
bm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVRl
eHR1cmUgU2V0T3ZlcmxheVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IEVWUk92ZXJsYXlFcnJvciBfQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAg
ICAgaW50ZXJuYWwgX0NsZWFyT3ZlcmxheVRleHR1cmUgQ2xlYXJPdmVybGF5VGV4dHVyZTsKKwor
ICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2Fs
bCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9TZXRPdmVybGF5
UmF3KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSW50UHRyIHB2QnVmZmVyLCB1aW50IHVuV2lkdGgs
IHVpbnQgdW5IZWlnaHQsIHVpbnQgdW5EZXB0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheVJhdyBTZXRP
dmVybGF5UmF3OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29u
dmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJy
b3IgX1NldE92ZXJsYXlGcm9tRmlsZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHN0cmluZyBwY2hG
aWxlUGF0aCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfU2V0T3ZlcmxheUZyb21GaWxlIFNldE92ZXJsYXlGcm9tRmlsZTsK
KworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3Rk
Q2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9HZXRPdmVy
bGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiBJbnRQdHIgcE5hdGl2ZVRleHR1
cmVIYW5kbGUsIEludFB0ciBwTmF0aXZlVGV4dHVyZVJlZiwgcmVmIHVpbnQgcFdpZHRoLCByZWYg
dWludCBwSGVpZ2h0LCByZWYgdWludCBwTmF0aXZlRm9ybWF0LCByZWYgRVRleHR1cmVUeXBlIHBB
UElUeXBlLCByZWYgRUNvbG9yU3BhY2UgcENvbG9yU3BhY2UsIHJlZiBWUlRleHR1cmVCb3VuZHNf
dCBwVGV4dHVyZUJvdW5kcyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0T3ZlcmxheVRleHR1cmUgR2V0T3ZlcmxheVRl
eHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBf
UmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBJbnRQdHIg
cE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxl
IFJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9u
UG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxl
Z2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dldE92ZXJsYXlUZXh0dXJlU2l6ZSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsIHJlZiB1aW50IHBXaWR0aCwgcmVmIHVpbnQgcEhlaWdodCk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0
T3ZlcmxheVRleHR1cmVTaXplIEdldE92ZXJsYXlUZXh0dXJlU2l6ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgRVZST3ZlcmxheUVycm9yIF9DcmVhdGVEYXNoYm9hcmRPdmVybGF5
KHN0cmluZyBwY2hPdmVybGF5S2V5LCBzdHJpbmcgcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgcmVm
IHVsb25nIHBNYWluSGFuZGxlLCByZWYgdWxvbmcgcFRodW1ibmFpbEhhbmRsZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
Q3JlYXRlRGFzaGJvYXJkT3ZlcmxheSBDcmVhdGVEYXNoYm9hcmRPdmVybGF5OworCisgICAgICAg
W1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAg
ICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFs
IF9Jc0Rhc2hib2FyZFZpc2libGUgSXNEYXNoYm9hcmRWaXNpYmxlOworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxvbmcgdWxP
dmVybGF5SGFuZGxlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25Q
dHIpXQorICAgICAgIGludGVybmFsIF9Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkgSXNBY3RpdmVE
YXNoYm9hcmRPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVy
bGF5RXJyb3IgX1NldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5
SGFuZGxlLCB1aW50IHVuUHJvY2Vzc0lkKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5
cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXREYXNoYm9hcmRPdmVybGF5U2Nl
bmVQcm9jZXNzIFNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3M7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfR2V0RGFzaGJvYXJkT3ZlcmxheVNj
ZW5lUHJvY2Vzcyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHB1blByb2Nlc3NJZCk7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfR2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyBHZXREYXNoYm9hcmRPdmVy
bGF5U2NlbmVQcm9jZXNzOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9T
aG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TaG93RGFzaGJv
YXJkIFNob3dEYXNoYm9hcmQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENh
bGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQg
X0dldFByaW1hcnlEYXNoYm9hcmREZXZpY2UoKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRQcmltYXJ5RGFzaGJvYXJk
RGV2aWNlIEdldFByaW1hcnlEYXNoYm9hcmREZXZpY2U7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVu
Y3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFs
IGRlbGVnYXRlIEVWUk92ZXJsYXlFcnJvciBfU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLCBp
bnQgZUxpbmVJbnB1dE1vZGUsIHN0cmluZyBwY2hEZXNjcmlwdGlvbiwgdWludCB1bkNoYXJNYXgs
IHN0cmluZyBwY2hFeGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1bG9uZyB1VXNl
clZhbHVlKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQor
ICAgICAgIGludGVybmFsIF9TaG93S2V5Ym9hcmQgU2hvd0tleWJvYXJkOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX1Nob3dLZXlib2FyZEZvck92ZXJs
YXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLCBpbnQgZUlucHV0TW9kZSwgaW50IGVMaW5lSW5wdXRN
b2RlLCBzdHJpbmcgcGNoRGVzY3JpcHRpb24sIHVpbnQgdW5DaGFyTWF4LCBzdHJpbmcgcGNoRXhp
c3RpbmdUZXh0LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWxvbmcgdVVzZXJWYWx1ZSk7CisgICAg
ICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5h
bCBfU2hvd0tleWJvYXJkRm9yT3ZlcmxheSBTaG93S2V5Ym9hcmRGb3JPdmVybGF5OworCisgICAg
ICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0K
KyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRLZXlib2FyZFRleHQoU3lzdGVtLlRl
eHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LCB1aW50IGNjaFRleHQpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEtleWJv
YXJkVGV4dCBHZXRLZXlib2FyZFRleHQ7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2lu
dGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRl
IHZvaWQgX0hpZGVLZXlib2FyZCgpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0hpZGVLZXlib2FyZCBIaWRlS2V5Ym9hcmQ7
CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0
ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJkVHJhbnNm
b3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRyYWNraW5nT3JpZ2luLCByZWYg
SG1kTWF0cml4MzRfdCBwbWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9TZXRLZXlib2FyZFRyYW5zZm9ybUFic29sdXRlIFNldEtleWJvYXJkVHJhbnNmb3JtQWJz
b2x1dGU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50
aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSwgSG1kUmVjdDJfdCBhdm9p
ZFJlY3QpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisg
ICAgICAgaW50ZXJuYWwgX1NldEtleWJvYXJkUG9zaXRpb25Gb3JPdmVybGF5IFNldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJP
dmVybGF5RXJyb3IgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSwgcmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCBwTWFza1ByaW1p
dGl2ZXMsIHVpbnQgdW5OdW1NYXNrUHJpbWl0aXZlcywgdWludCB1blByaW1pdGl2ZVNpemUpOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX1NldE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrIFNldE92ZXJsYXlJbnRlcnNlY3Rpb25N
YXNrOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJPdmVybGF5RXJyb3IgX0dl
dE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsIHJlZiB1aW50IHBGbGFncyk7Cisg
ICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRl
cm5hbCBfR2V0T3ZlcmxheUZsYWdzIEdldE92ZXJsYXlGbGFnczsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIF9TaG93TWVzc2FnZU92ZXJs
YXkoc3RyaW5nIHBjaFRleHQsIHN0cmluZyBwY2hDYXB0aW9uLCBzdHJpbmcgcGNoQnV0dG9uMFRl
eHQsIHN0cmluZyBwY2hCdXR0b24xVGV4dCwgc3RyaW5nIHBjaEJ1dHRvbjJUZXh0LCBzdHJpbmcg
cGNoQnV0dG9uM1RleHQpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlv
blB0cildCisgICAgICAgaW50ZXJuYWwgX1Nob3dNZXNzYWdlT3ZlcmxheSBTaG93TWVzc2FnZU92
ZXJsYXk7CisKK30KKworW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXQorcHVi
bGljIHN0cnVjdCBJVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRSZW5kZXJNb2RlbF9Bc3luYyhzdHJpbmcgcGNo
UmVuZGVyTW9kZWxOYW1lLCByZWYgSW50UHRyIHBwUmVuZGVyTW9kZWwpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0xvYWRS
ZW5kZXJNb2RlbF9Bc3luYyBMb2FkUmVuZGVyTW9kZWxfQXN5bmM7CisKKyAgICAgICBbVW5tYW5h
Z2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGlu
dGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVSZW5kZXJNb2RlbChJbnRQdHIgcFJlbmRlck1vZGVs
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9GcmVlUmVuZGVyTW9kZWwgRnJlZVJlbmRlck1vZGVsOworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSBFVlJSZW5kZXJNb2RlbEVycm9yIF9Mb2FkVGV4dHVyZV9Bc3lu
YyhpbnQgdGV4dHVyZUlkLCByZWYgSW50UHRyIHBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9hZFRleHR1
cmVfQXN5bmMgTG9hZFRleHR1cmVfQXN5bmM7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX0ZyZWVUZXh0dXJlKEludFB0ciBwVGV4dHVyZSk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1
cmUgRnJlZVRleHR1cmU7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRl
ck1vZGVsRXJyb3IgX0xvYWRUZXh0dXJlRDNEMTFfQXN5bmMoaW50IHRleHR1cmVJZCwgSW50UHRy
IHBEM0QxMURldmljZSwgcmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9Mb2Fk
VGV4dHVyZUQzRDExX0FzeW5jIExvYWRUZXh0dXJlRDNEMTFfQXN5bmM7CisKKyAgICAgICBbVW5t
YW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAg
IGludGVybmFsIGRlbGVnYXRlIEVWUlJlbmRlck1vZGVsRXJyb3IgX0xvYWRJbnRvVGV4dHVyZUQz
RDExX0FzeW5jKGludCB0ZXh0dXJlSWQsIEludFB0ciBwRHN0VGV4dHVyZSk7CisgICAgICAgW01h
cnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfTG9h
ZEludG9UZXh0dXJlRDNEMTFfQXN5bmMgTG9hZEludG9UZXh0dXJlRDNEMTFfQXN5bmM7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX0ZyZWVUZXh0dXJlRDNEMTEoSW50UHRy
IHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0
aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfRnJlZVRleHR1cmVEM0QxMSBGcmVlVGV4dHVyZUQz
RDExOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlv
bi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2Rl
bE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsIFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIg
cGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuUmVuZGVyTW9kZWxOYW1lTGVuKTsKKyAgICAgICBb
TWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9H
ZXRSZW5kZXJNb2RlbE5hbWUgR2V0UmVuZGVyTW9kZWxOYW1lOworCisgICAgICAgW1VubWFuYWdl
ZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRl
cm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbENvdW50KCk7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVu
ZGVyTW9kZWxDb3VudCBHZXRSZW5kZXJNb2RlbENvdW50OworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB1aW50IF9HZXRDb21wb25lbnRDb3VudChzdHJpbmcgcGNoUmVuZGVyTW9kZWxO
YW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRDb21wb25lbnRDb3VudCBHZXRDb21wb25lbnRDb3VudDsKKworICAg
ICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCld
CisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50TmFtZShzdHJpbmcg
cGNoUmVuZGVyTW9kZWxOYW1lLCB1aW50IHVuQ29tcG9uZW50SW5kZXgsIFN5c3RlbS5UZXh0LlN0
cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFtZSwgdWludCB1bkNvbXBvbmVudE5hbWVMZW4pOwor
ICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50
ZXJuYWwgX0dldENvbXBvbmVudE5hbWUgR2V0Q29tcG9uZW50TmFtZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWxvbmcgX0dldENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBj
aFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldENv
bXBvbmVudEJ1dHRvbk1hc2sgR2V0Q29tcG9uZW50QnV0dG9uTWFzazsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHN0cmlu
ZyBwY2hSZW5kZXJNb2RlbE5hbWUsIHN0cmluZyBwY2hDb21wb25lbnROYW1lLCBTeXN0ZW0uVGV4
dC5TdHJpbmdCdWlsZGVyIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludCB1bkNvbXBv
bmVudFJlbmRlck1vZGVsTmFtZUxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBl
LkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxO
YW1lIEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZTsKKworICAgICAgIFtVbm1hbmFnZWRGdW5j
dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwg
ZGVsZWdhdGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFt
ZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUsIHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250
cm9sbGVyU3RhdGUsIHJlZiBSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0
ZSwgcmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRDb21wb25lbnRTdGF0ZSBHZXRDb21wb25lbnRTdGF0ZTsKKworICAgICAgIFtVbm1h
bmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAg
aW50ZXJuYWwgZGVsZWdhdGUgYm9vbCBfUmVuZGVyTW9kZWxIYXNDb21wb25lbnQoc3RyaW5nIHBj
aFJlbmRlck1vZGVsTmFtZSwgc3RyaW5nIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIFtNYXJz
aGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1JlbmRl
ck1vZGVsSGFzQ29tcG9uZW50IFJlbmRlck1vZGVsSGFzQ29tcG9uZW50OworCisgICAgICAgW1Vu
bWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAg
ICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9HZXRSZW5kZXJNb2RlbFRodW1ibmFpbFVSTChzdHJp
bmcgcGNoUmVuZGVyTW9kZWxOYW1lLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaFRodW1i
bmFpbFVSTCwgdWludCB1blRodW1ibmFpbFVSTExlbiwgcmVmIEVWUlJlbmRlck1vZGVsRXJyb3Ig
cGVFcnJvcik7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0K
KyAgICAgICBpbnRlcm5hbCBfR2V0UmVuZGVyTW9kZWxUaHVtYm5haWxVUkwgR2V0UmVuZGVyTW9k
ZWxUaHVtYm5haWxVUkw7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp
bmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHVpbnQgX0dl
dFJlbmRlck1vZGVsT3JpZ2luYWxQYXRoKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsIFN5c3Rl
bS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLCB1aW50IHVuT3JpZ2luYWxQYXRo
TGVuLCByZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9HZXRSZW5kZXJN
b2RlbE9yaWdpbmFsUGF0aCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aDsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgSW50UHRyIF9HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21F
bnVtKEVWUlJlbmRlck1vZGVsRXJyb3IgZXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFJlbmRlck1vZGVsRXJy
b3JOYW1lRnJvbUVudW0gR2V0UmVuZGVyTW9kZWxFcnJvck5hbWVGcm9tRW51bTsKKworfQorCitb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldCitwdWJsaWMgc3RydWN0IElWUk5v
dGlmaWNhdGlvbnMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdD
b252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUk5vdGlmaWNh
dGlvbkVycm9yIF9DcmVhdGVOb3RpZmljYXRpb24odWxvbmcgdWxPdmVybGF5SGFuZGxlLCB1bG9u
ZyB1bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBzdHJpbmcgcGNoVGV4dCwg
RVZSTm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHJlZiBOb3RpZmljYXRpb25CaXRtYXBfdCBwSW1h
Z2UsIHJlZiB1aW50IHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFn
ZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfQ3JlYXRlTm90aWZpY2F0aW9u
IENyZWF0ZU5vdGlmaWNhdGlvbjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo
Q2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZS
Tm90aWZpY2F0aW9uRXJyb3IgX1JlbW92ZU5vdGlmaWNhdGlvbih1aW50IG5vdGlmaWNhdGlvbklk
KTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAg
IGludGVybmFsIF9SZW1vdmVOb3RpZmljYXRpb24gUmVtb3ZlTm90aWZpY2F0aW9uOworCit9CisK
K1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZS
U2V0dGluZ3MKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252
ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEludFB0ciBfR2V0U2V0
dGluZ3NFcnJvck5hbWVGcm9tRW51bShFVlJTZXR0aW5nc0Vycm9yIGVFcnJvcik7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
R2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bSBHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVt
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9TeW5jKGJvb2wgYkZvcmNl
LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFu
YWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TeW5jIFN5bmM7CisKKyAg
ICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwp
XQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1NldEJvb2woc3RyaW5nIHBjaFNlY3Rp
b24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vy
cm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0
cildCisgICAgICAgaW50ZXJuYWwgX1NldEJvb2wgU2V0Qm9vbDsKKworICAgICAgIFtVbm1hbmFn
ZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50
ZXJuYWwgZGVsZWdhdGUgdm9pZCBfU2V0SW50MzIoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBw
Y2hTZXR0aW5nc0tleSwgaW50IG5WYWx1ZSwgcmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfU2V0SW50MzIgU2V0SW50MzI7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Q
b2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVn
YXRlIHZvaWQgX1NldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NL
ZXksIGZsb2F0IGZsVmFsdWUsIHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAg
IFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwg
X1NldEZsb2F0IFNldEZsb2F0OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihD
YWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lk
IF9TZXRTdHJpbmcoc3RyaW5nIHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgc3Ry
aW5nIHBjaFZhbHVlLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFy
c2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9TZXRT
dHJpbmcgU2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxs
aW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9H
ZXRCb29sKHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXksIHJlZiBFVlJT
ZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5G
dW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEJvb2wgR2V0Qm9vbDsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgaW50IF9HZXRJbnQzMihzdHJpbmcgcGNoU2VjdGlvbiwg
c3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAg
ICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVy
bmFsIF9HZXRJbnQzMiBHZXRJbnQzMjsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
ZmxvYXQgX0dldEZsb2F0KHN0cmluZyBwY2hTZWN0aW9uLCBzdHJpbmcgcGNoU2V0dGluZ3NLZXks
IHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3IpOworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5h
Z2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldEZsb2F0IEdldEZsb2F0
OworCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5T
dGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB2b2lkIF9HZXRTdHJpbmcoc3RyaW5n
IHBjaFNlY3Rpb24sIHN0cmluZyBwY2hTZXR0aW5nc0tleSwgU3lzdGVtLlRleHQuU3RyaW5nQnVp
bGRlciBwY2hWYWx1ZSwgdWludCB1blZhbHVlTGVuLCByZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVy
cm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAg
ICAgIGludGVybmFsIF9HZXRTdHJpbmcgR2V0U3RyaW5nOworCisgICAgICAgW1VubWFuYWdlZEZ1
bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5h
bCBkZWxlZ2F0ZSB2b2lkIF9SZW1vdmVTZWN0aW9uKHN0cmluZyBwY2hTZWN0aW9uLCByZWYgRVZS
U2V0dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUu
RnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVTZWN0aW9uIFJlbW92ZVNlY3Rp
b247CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9u
LlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIHZvaWQgX1JlbW92ZUtleUluU2Vj
dGlvbihzdHJpbmcgcGNoU2VjdGlvbiwgc3RyaW5nIHBjaFNldHRpbmdzS2V5LCByZWYgRVZSU2V0
dGluZ3NFcnJvciBwZUVycm9yKTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuRnVu
Y3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZW1vdmVLZXlJblNlY3Rpb24gUmVtb3ZlS2V5
SW5TZWN0aW9uOworCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0K
K3B1YmxpYyBzdHJ1Y3QgSVZSU2NyZWVuc2hvdHMKK3sKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rp
b25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRl
bGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfUmVxdWVzdFNjcmVlbnNob3QocmVmIHVpbnQgcE91
dFNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIHN0cmluZyBwY2hQcmV2
aWV3RmlsZW5hbWUsIHN0cmluZyBwY2hWUkZpbGVuYW1lKTsKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuRnVuY3Rpb25QdHIpXQorICAgICAgIGludGVybmFsIF9SZXF1ZXN0U2NyZWVu
c2hvdCBSZXF1ZXN0U2NyZWVuc2hvdDsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
RVZSU2NyZWVuc2hvdEVycm9yIF9Ib29rU2NyZWVuc2hvdChbSW4sIE91dF0gRVZSU2NyZWVuc2hv
dFR5cGVbXSBwU3VwcG9ydGVkVHlwZXMsIGludCBudW1UeXBlcyk7CisgICAgICAgW01hcnNoYWxB
cyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfSG9va1NjcmVl
bnNob3QgSG9va1NjcmVlbnNob3Q7CisKKyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVy
KENhbGxpbmdDb252ZW50aW9uLlN0ZENhbGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVW
UlNjcmVlbnNob3RUeXBlIF9HZXRTY3JlZW5zaG90UHJvcGVydHlUeXBlKHVpbnQgc2NyZWVuc2hv
dEhhbmRsZSwgcmVmIEVWUlNjcmVlbnNob3RFcnJvciBwRXJyb3IpOworICAgICAgIFtNYXJzaGFs
QXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX0dldFNjcmVl
bnNob3RQcm9wZXJ0eVR5cGUgR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZTsKKworICAgICAgIFtV
bm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAg
ICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUo
dWludCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXMgZmls
ZW5hbWVUeXBlLCBTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLCB1aW50IGNj
aEZpbGVuYW1lLCByZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBFcnJvcik7CisgICAgICAgW01hcnNo
YWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0U2Ny
ZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUgR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWU7CisK
KyAgICAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLlN0ZENh
bGwpXQorICAgICAgIGludGVybmFsIGRlbGVnYXRlIEVWUlNjcmVlbnNob3RFcnJvciBfVXBkYXRl
U2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSwgZmxvYXQgZmxQcm9ncmVz
cyk7CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAg
ICBpbnRlcm5hbCBfVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzIFVwZGF0ZVNjcmVlbnNob3RQcm9n
cmVzczsKKworICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRp
b24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgRVZSU2NyZWVuc2hvdEVycm9y
IF9UYWtlU3RlcmVvU2NyZWVuc2hvdChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSwgc3Ry
aW5nIHBjaFByZXZpZXdGaWxlbmFtZSwgc3RyaW5nIHBjaFZSRmlsZW5hbWUpOworICAgICAgIFtN
YXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5GdW5jdGlvblB0cildCisgICAgICAgaW50ZXJuYWwgX1Rh
a2VTdGVyZW9TY3JlZW5zaG90IFRha2VTdGVyZW9TY3JlZW5zaG90OworCisgICAgICAgW1VubWFu
YWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBp
bnRlcm5hbCBkZWxlZ2F0ZSBFVlJTY3JlZW5zaG90RXJyb3IgX1N1Ym1pdFNjcmVlbnNob3QodWlu
dCBzY3JlZW5zaG90SGFuZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBzdHJpbmcgcGNoU291
cmNlUHJldmlld0ZpbGVuYW1lLCBzdHJpbmcgcGNoU291cmNlVlJGaWxlbmFtZSk7CisgICAgICAg
W01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBf
U3VibWl0U2NyZWVuc2hvdCBTdWJtaXRTY3JlZW5zaG90OworCit9CisKK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KK3B1YmxpYyBzdHJ1Y3QgSVZSUmVzb3VyY2VzCit7Cisg
ICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5nQ29udmVudGlvbi5TdGRDYWxs
KV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSB1aW50IF9Mb2FkU2hhcmVkUmVzb3VyY2Uoc3Ry
aW5nIHBjaFJlc291cmNlTmFtZSwgc3RyaW5nIHBjaEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7
CisgICAgICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBp
bnRlcm5hbCBfTG9hZFNoYXJlZFJlc291cmNlIExvYWRTaGFyZWRSZXNvdXJjZTsKKworICAgICAg
IFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisg
ICAgICAgaW50ZXJuYWwgZGVsZWdhdGUgdWludCBfR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcg
cGNoUmVzb3VyY2VOYW1lLCBzdHJpbmcgcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBzdHJpbmcg
cGNoUGF0aEJ1ZmZlciwgdWludCB1bkJ1ZmZlckxlbik7CisgICAgICAgW01hcnNoYWxBcyhVbm1h
bmFnZWRUeXBlLkZ1bmN0aW9uUHRyKV0KKyAgICAgICBpbnRlcm5hbCBfR2V0UmVzb3VyY2VGdWxs
UGF0aCBHZXRSZXNvdXJjZUZ1bGxQYXRoOworCit9CisKKworcHVibGljIGNsYXNzIENWUlN5c3Rl
bQoreworICAgICAgIElWUlN5c3RlbSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUlN5c3Rl
bShJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAo
SVZSU3lzdGVtKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlN5
c3RlbSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRSZWNvbW1lbmRlZFJlbmRl
clRhcmdldFNpemUocmVmIHVpbnQgcG5XaWR0aCxyZWYgdWludCBwbkhlaWdodCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9IDA7
CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplKHJl
ZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRy
aXg0NF90IEdldFByb2plY3Rpb25NYXRyaXgoRVZSRXllIGVFeWUsZmxvYXQgZk5lYXJaLGZsb2F0
IGZGYXJaKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4NDRfdCByZXN1bHQgPSBG
blRhYmxlLkdldFByb2plY3Rpb25NYXRyaXgoZUV5ZSxmTmVhclosZkZhclopOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRQcm9q
ZWN0aW9uUmF3KEVWUkV5ZSBlRXllLHJlZiBmbG9hdCBwZkxlZnQscmVmIGZsb2F0IHBmUmlnaHQs
cmVmIGZsb2F0IHBmVG9wLHJlZiBmbG9hdCBwZkJvdHRvbSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBmTGVmdCA9IDA7CisgICAgICAgICAgICAgIHBmUmlnaHQgPSAwOworICAgICAgICAgICAg
ICBwZlRvcCA9IDA7CisgICAgICAgICAgICAgIHBmQm90dG9tID0gMDsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5HZXRQcm9qZWN0aW9uUmF3KGVFeWUscmVmIHBmTGVmdCxyZWYgcGZSaWdodCxyZWYg
cGZUb3AscmVmIHBmQm90dG9tKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQ29tcHV0
ZURpc3RvcnRpb24oRVZSRXllIGVFeWUsZmxvYXQgZlUsZmxvYXQgZlYscmVmIERpc3RvcnRpb25D
b29yZGluYXRlc190IHBEaXN0b3J0aW9uQ29vcmRpbmF0ZXMpCisgICAgICAgeworICAgICAgICAg
ICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQ29tcHV0ZURpc3RvcnRpb24oZUV5ZSxmVSxmVixy
ZWYgcERpc3RvcnRpb25Db29yZGluYXRlcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdldEV5ZVRvSGVhZFRyYW5z
Zm9ybShFVlJFeWUgZUV5ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3Qg
cmVzdWx0ID0gRm5UYWJsZS5HZXRFeWVUb0hlYWRUcmFuc2Zvcm0oZUV5ZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFRpbWVT
aW5jZUxhc3RWc3luYyhyZWYgZmxvYXQgcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHVsb25n
IHB1bEZyYW1lQ291bnRlcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHBmU2Vjb25kc1NpbmNl
TGFzdFZzeW5jID0gMDsKKyAgICAgICAgICAgICAgcHVsRnJhbWVDb3VudGVyID0gMDsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFRpbWVTaW5jZUxhc3RWc3luYyhyZWYg
cGZTZWNvbmRzU2luY2VMYXN0VnN5bmMscmVmIHB1bEZyYW1lQ291bnRlcik7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0RDNEOUFk
YXB0ZXJJbmRleCgpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXREM0Q5QWRhcHRlckluZGV4KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5B
ZGFwdGVySW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBwbkFkYXB0ZXJJbmRleCA9IDA7
CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0RFhHSU91dHB1dEluZm8ocmVmIHBuQWRhcHRlcklu
ZGV4KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Rpc3BsYXlP
bkRlc2t0b3AoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgU2V0RGlzcGxheVZpc2liaWxpdHkoYm9vbCBiSXNWaXNpYmxlT25EZXNr
dG9wKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldERp
c3BsYXlWaXNpYmlsaXR5KGJJc1Zpc2libGVPbkRlc2t0b3ApOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXREZXZpY2VUb0Fic29s
dXRlVHJhY2tpbmdQb3NlKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4sZmxvYXQgZlBy
ZWRpY3RlZFNlY29uZHNUb1Bob3RvbnNGcm9tTm93LFRyYWNrZWREZXZpY2VQb3NlX3QgW10gcFRy
YWNrZWREZXZpY2VQb3NlQXJyYXkpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkdl
dERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UoZU9yaWdpbixmUHJlZGljdGVkU2Vjb25kc1Rv
UGhvdG9uc0Zyb21Ob3cscFRyYWNrZWREZXZpY2VQb3NlQXJyYXksKHVpbnQpIHBUcmFja2VkRGV2
aWNlUG9zZUFycmF5Lkxlbmd0aCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFJlc2V0
U2VhdGVkWmVyb1Bvc2UoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5SZXNldFNl
YXRlZFplcm9Qb3NlKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IEdl
dFNlYXRlZFplcm9Qb3NlVG9TdGFuZGluZ0Fic29sdXRlVHJhY2tpbmdQb3NlKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEhtZE1hdHJpeDM0X3QgcmVzdWx0ID0gRm5UYWJsZS5HZXRTZWF0ZWRa
ZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0cml4MzRfdCBHZXRS
YXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSgpCisgICAgICAgeworICAg
ICAgICAgICAgICBIbWRNYXRyaXgzNF90IHJlc3VsdCA9IEZuVGFibGUuR2V0UmF3WmVyb1Bvc2VU
b1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0U29ydGVkVHJhY2tlZERldmlj
ZUluZGljZXNPZkNsYXNzKEVUcmFja2VkRGV2aWNlQ2xhc3MgZVRyYWNrZWREZXZpY2VDbGFzcyx1
aW50IFtdIHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LHVpbnQgdW5SZWxhdGl2ZVRvVHJhY2tl
ZERldmljZUluZGV4KQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRh
YmxlLkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcyhlVHJhY2tlZERldmljZUNs
YXNzLHB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5LCh1aW50KSBwdW5UcmFja2VkRGV2aWNlSW5k
ZXhBcnJheS5MZW5ndGgsdW5SZWxhdGl2ZVRvVHJhY2tlZERldmljZUluZGV4KTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVEZXZpY2VBY3Rp
dml0eUxldmVsIEdldFRyYWNrZWREZXZpY2VBY3Rpdml0eUxldmVsKHVpbnQgdW5EZXZpY2VJZCkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVEZXZpY2VBY3Rpdml0eUxldmVsIHJlc3VsdCA9IEZu
VGFibGUuR2V0VHJhY2tlZERldmljZUFjdGl2aXR5TGV2ZWwodW5EZXZpY2VJZCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIEFwcGx5
VHJhbnNmb3JtKHJlZiBUcmFja2VkRGV2aWNlUG9zZV90IHBPdXRwdXRQb3NlLHJlZiBUcmFja2Vk
RGV2aWNlUG9zZV90IHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgSG1kTWF0cml4MzRfdCBwVHJhbnNm
b3JtKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5BcHBseVRyYW5zZm9ybShyZWYg
cE91dHB1dFBvc2UscmVmIHBUcmFja2VkRGV2aWNlUG9zZSxyZWYgcFRyYW5zZm9ybSk7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xs
ZXJSb2xlKEVUcmFja2VkQ29udHJvbGxlclJvbGUgdW5EZXZpY2VUeXBlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldFRyYWNrZWREZXZpY2VJbmRleEZv
ckNvbnRyb2xsZXJSb2xlKHVuRGV2aWNlVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVHJhY2tlZENvbnRyb2xsZXJSb2xlIEdldENv
bnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmljZUluZGV4KHVpbnQgdW5EZXZpY2VJbmRleCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGUgcmVzdWx0ID0gRm5U
YWJsZS5HZXRDb250cm9sbGVyUm9sZUZvclRyYWNrZWREZXZpY2VJbmRleCh1bkRldmljZUluZGV4
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVUcmFja2VkRGV2aWNlQ2xhc3MgR2V0VHJhY2tlZERldmljZUNsYXNzKHVpbnQgdW5EZXZpY2VJ
bmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3MgcmVzdWx0
ID0gRm5UYWJsZS5HZXRUcmFja2VkRGV2aWNlQ2xhc3ModW5EZXZpY2VJbmRleCk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzVHJh
Y2tlZERldmljZUNvbm5lY3RlZCh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAg
ICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNUcmFja2VkRGV2aWNlQ29ubmVjdGVkKHVu
RGV2aWNlSW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBHZXRCb29sVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5EZXZp
Y2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AscmVmIEVUcmFja2VkUHJvcGVydHlF
cnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFi
bGUuR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBF
cnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBmbG9hdCBHZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5k
ZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
cEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJsZS5H
ZXRGbG9hdFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1bkRldmljZUluZGV4LHByb3AscmVmIHBFcnJv
cik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBpbnQgR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkodWludCB1bkRldmljZUluZGV4LEVU
cmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIHBFcnJv
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIGludCByZXN1bHQgPSBGblRhYmxlLkdldEludDMy
VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJvcCxyZWYgcEVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25n
IEdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5kZXgsRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgcEVycm9yKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRVaW50NjRU
cmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHJlZiBwRXJyb3IpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgSG1kTWF0
cml4MzRfdCBHZXRNYXRyaXgzNFRyYWNrZWREZXZpY2VQcm9wZXJ0eSh1aW50IHVuRGV2aWNlSW5k
ZXgsRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLHJlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
cEVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1kTWF0cml4MzRfdCByZXN1bHQgPSBG
blRhYmxlLkdldE1hdHJpeDM0VHJhY2tlZERldmljZVByb3BlcnR5KHVuRGV2aWNlSW5kZXgscHJv
cCxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHVpbnQgR2V0U3RyaW5nVHJhY2tlZERldmljZVByb3BlcnR5KHVpbnQgdW5E
ZXZpY2VJbmRleCxFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsU3lzdGVtLlRleHQuU3RyaW5n
QnVpbGRlciBwY2hWYWx1ZSx1aW50IHVuQnVmZmVyU2l6ZSxyZWYgRVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIHBFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRTdHJpbmdUcmFja2VkRGV2aWNlUHJvcGVydHkodW5EZXZpY2VJbmRleCxwcm9wLHBjaFZh
bHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRQcm9wRXJyb3JOYW1lRnJvbUVu
dW0oRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
SW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0UHJvcEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIFBvbGxOZXh0RXZlbnQocmVmIFZSRXZlbnRfdCBw
RXZlbnQsdWludCB1bmNiVlJFdmVudCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50KHJlZiBwRXZlbnQsdW5jYlZSRXZlbnQpOworICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBQ
b2xsTmV4dEV2ZW50V2l0aFBvc2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbixyZWYg
VlJFdmVudF90IHBFdmVudCx1aW50IHVuY2JWUkV2ZW50LHJlZiBUcmFja2VkRGV2aWNlUG9zZV90
IHBUcmFja2VkRGV2aWNlUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0
ID0gRm5UYWJsZS5Qb2xsTmV4dEV2ZW50V2l0aFBvc2UoZU9yaWdpbixyZWYgcEV2ZW50LHVuY2JW
UkV2ZW50LHJlZiBwVHJhY2tlZERldmljZVBvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdldEV2ZW50VHlwZU5hbWVGcm9t
RW51bShFVlJFdmVudFR5cGUgZVR5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIg
cmVzdWx0ID0gRm5UYWJsZS5HZXRFdmVudFR5cGVOYW1lRnJvbUVudW0oZVR5cGUpOworICAgICAg
ICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEhpZGRlbkFyZWFNZXNoX3QgR2V0SGlkZGVuQXJlYU1lc2goRVZSRXll
IGVFeWUsRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
SGlkZGVuQXJlYU1lc2hfdCByZXN1bHQgPSBGblRhYmxlLkdldEhpZGRlbkFyZWFNZXNoKGVFeWUs
dHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhpcyBp
cyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJvbGxl
clN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9uZyBw
YWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50
ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdhdGUg
Ym9vbCBfR2V0Q29udHJvbGxlclN0YXRlUGFja2VkKHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5k
ZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1
bkNvbnRyb2xsZXJTdGF0ZVNpemUpOworICAgICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5F
eHBsaWNpdCldCisgICAgICAgc3RydWN0IEdldENvbnRyb2xsZXJTdGF0ZVVuaW9uCisgICAgICAg
eworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJ
VlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZSBwR2V0Q29udHJvbGxlclN0YXRlOworICAgICAg
ICAgICAgICBbRmllbGRPZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBfR2V0Q29udHJv
bGxlclN0YXRlUGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldENvbnRyb2xsZXJTdGF0ZSh1aW50IHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LHJlZiBWUkNvbnRyb2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNv
bnRyb2xsZXJTdGF0ZVNpemUpCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoKFN5c3RlbS5F
bnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3JtSUQuTWFjT1NY
KSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJvbm1lbnQuT1NW
ZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb250cm9sbGVyU3RhdGVVbmlvbiB1OworICAg
ICAgICAgICAgICAgICAgICAgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2Vk
ID0gbmV3IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAg
ICB1LnBHZXRDb250cm9sbGVyU3RhdGVQYWNrZWQgPSBudWxsOworICAgICAgICAgICAgICAgICAg
ICAgdS5wR2V0Q29udHJvbGxlclN0YXRlID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGU7Cisg
ICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVy
U3RhdGVQYWNrZWQodW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIHN0YXRlX3BhY2tlZCwodWlu
dClTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbC5TaXplT2YodHlwZW9mKFZS
Q29udHJvbGxlclN0YXRlX3RfUGFja2VkKSkpOworCisgICAgICAgICAgICAgICAgICAgICBzdGF0
ZV9wYWNrZWQuVW5wYWNrKHJlZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBwYWNrZWRfcmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyU3RhdGUodW5Db250cm9sbGVyRGV2
aWNlSW5kZXgscmVmIHBDb250cm9sbGVyU3RhdGUsdW5Db250cm9sbGVyU3RhdGVTaXplKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisvLyBUaGlzIGlzIGEgdGVycmli
bGUgaGFjayB0byB3b3JrYXJvdW5kIHRoZSBmYWN0IHRoYXQgVlJDb250cm9sbGVyU3RhdGVfdCB3
YXMKKy8vIG9yaWdpbmFsbHkgbWlzLWNvbXBpbGVkIHdpdGggdGhlIHdyb25nIHBhY2tpbmcgZm9y
IExpbnV4IGFuZCBPU1guCisgICAgICAgW1VubWFuYWdlZEZ1bmN0aW9uUG9pbnRlcihDYWxsaW5n
Q29udmVudGlvbi5TdGRDYWxsKV0KKyAgICAgICBpbnRlcm5hbCBkZWxlZ2F0ZSBib29sIF9HZXRD
b250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZChFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3Jp
Z2luLHVpbnQgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgscmVmIFZSQ29udHJvbGxlclN0YXRlX3Rf
UGFja2VkIHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUscmVmIFRy
YWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICBbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVjdCBHZXRDb250cm9sbGVyU3Rh
dGVXaXRoUG9zZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmllbGRPZmZzZXQoMCld
CisgICAgICAgICAgICAgIHB1YmxpYyBJVlJTeXN0ZW0uX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQ
b3NlIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZTsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zm
c2V0KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbnRyb2xsZXJTdGF0ZVdpdGhQb3Nl
UGFja2VkIHBHZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZVBhY2tlZDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIGJvb2wgR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2UoRVRyYWNraW5nVW5pdmVy
c2VPcmlnaW4gZU9yaWdpbix1aW50IHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBWUkNvbnRy
b2xsZXJTdGF0ZV90IHBDb250cm9sbGVyU3RhdGUsdWludCB1bkNvbnRyb2xsZXJTdGF0ZVNpemUs
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcFRyYWNrZWREZXZpY2VQb3NlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgaWYgKChTeXN0ZW0uRW52aXJvbm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09
IFN5c3RlbS5QbGF0Zm9ybUlELk1hY09TWCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoU3lzdGVtLkVudmlyb25tZW50Lk9TVmVyc2lvbi5QbGF0Zm9ybSA9PSBTeXN0ZW0uUGxhdGZv
cm1JRC5Vbml4KSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR2V0Q29u
dHJvbGxlclN0YXRlV2l0aFBvc2VVbmlvbiB1OworICAgICAgICAgICAgICAgICAgICAgVlJDb250
cm9sbGVyU3RhdGVfdF9QYWNrZWQgc3RhdGVfcGFja2VkID0gbmV3IFZSQ29udHJvbGxlclN0YXRl
X3RfUGFja2VkKCk7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9sbGVyU3RhdGVX
aXRoUG9zZVBhY2tlZCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICB1LnBHZXRDb250cm9s
bGVyU3RhdGVXaXRoUG9zZSA9IEZuVGFibGUuR2V0Q29udHJvbGxlclN0YXRlV2l0aFBvc2U7Cisg
ICAgICAgICAgICAgICAgICAgICBib29sIHBhY2tlZF9yZXN1bHQgPSB1LnBHZXRDb250cm9sbGVy
U3RhdGVXaXRoUG9zZVBhY2tlZChlT3JpZ2luLHVuQ29udHJvbGxlckRldmljZUluZGV4LHJlZiBz
dGF0ZV9wYWNrZWQsKHVpbnQpU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWwu
U2l6ZU9mKHR5cGVvZihWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCkpLHJlZiBwVHJhY2tlZERl
dmljZVBvc2UpOworCisgICAgICAgICAgICAgICAgICAgICBzdGF0ZV9wYWNrZWQuVW5wYWNrKHJl
ZiBwQ29udHJvbGxlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWNrZWRf
cmVzdWx0OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5U
YWJsZS5HZXRDb250cm9sbGVyU3RhdGVXaXRoUG9zZShlT3JpZ2luLHVuQ29udHJvbGxlckRldmlj
ZUluZGV4LHJlZiBwQ29udHJvbGxlclN0YXRlLHVuQ29udHJvbGxlclN0YXRlU2l6ZSxyZWYgcFRy
YWNrZWREZXZpY2VQb3NlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHZvaWQgVHJpZ2dlckhhcHRpY1B1bHNlKHVpbnQgdW5Db250cm9sbGVy
RGV2aWNlSW5kZXgsdWludCB1bkF4aXNJZCxjaGFyIHVzRHVyYXRpb25NaWNyb1NlYykKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEZuVGFibGUuVHJpZ2dlckhhcHRpY1B1bHNlKHVuQ29udHJvbGxl
ckRldmljZUluZGV4LHVuQXhpc0lkLHVzRHVyYXRpb25NaWNyb1NlYyk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBzdHJpbmcgR2V0QnV0dG9uSWROYW1lRnJvbUVudW0oRVZSQnV0dG9uSWQgZUJ1
dHRvbklkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUu
R2V0QnV0dG9uSWROYW1lRnJvbUVudW0oZUJ1dHRvbklkKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBzdHJpbmcgR2V0Q29udHJvbGxlckF4aXNUeXBlTmFtZUZyb21FbnVtKEVWUkNvbnRyb2xsZXJB
eGlzVHlwZSBlQXhpc1R5cGUpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0
ID0gRm5UYWJsZS5HZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVudW0oZUF4aXNUeXBlKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhcHR1cmVJbnB1dEZvY3VzKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYXB0dXJlSW5wdXRGb2N1cygp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBSZWxlYXNlSW5wdXRGb2N1cygpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LlJlbGVhc2VJbnB1dEZvY3VzKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzSW5w
dXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcygpCisgICAgICAgeworICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9j
ZXNzKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB1aW50IERyaXZlckRlYnVnUmVxdWVzdCh1aW50IHVuRGV2aWNlSW5kZXgsc3RyaW5nIHBj
aFJlcXVlc3Qsc3RyaW5nIHBjaFJlc3BvbnNlQnVmZmVyLHVpbnQgdW5SZXNwb25zZUJ1ZmZlclNp
emUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuRHJpdmVy
RGVidWdSZXF1ZXN0KHVuRGV2aWNlSW5kZXgscGNoUmVxdWVzdCxwY2hSZXNwb25zZUJ1ZmZlcix1
blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJGaXJtd2FyZUVycm9yIFBlcmZvcm1GaXJtd2FyZVVwZGF0
ZSh1aW50IHVuRGV2aWNlSW5kZXgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJGaXJtd2Fy
ZUVycm9yIHJlc3VsdCA9IEZuVGFibGUuUGVyZm9ybUZpcm13YXJlVXBkYXRlKHVuRGV2aWNlSW5k
ZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBBY2tub3dsZWRnZVF1aXRfRXhpdGluZygpCisgICAgICAgeworICAgICAgICAgICAg
ICBGblRhYmxlLkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKCk7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyB2b2lkIEFja25vd2xlZGdlUXVpdF9Vc2VyUHJvbXB0KCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuQWNrbm93bGVkZ2VRdWl0X1VzZXJQcm9tcHQoKTsKKyAgICAgICB9Cit9
CisKKworcHVibGljIGNsYXNzIENWUkV4dGVuZGVkRGlzcGxheQoreworICAgICAgIElWUkV4dGVu
ZGVkRGlzcGxheSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkV4dGVuZGVkRGlzcGxheShJ
bnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZS
RXh0ZW5kZWREaXNwbGF5KU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9m
KElWUkV4dGVuZGVkRGlzcGxheSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBHZXRX
aW5kb3dCb3VuZHMocmVmIGludCBwblgscmVmIGludCBwblkscmVmIHVpbnQgcG5XaWR0aCxyZWYg
dWludCBwbkhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuWCA9IDA7CisgICAgICAg
ICAgICAgIHBuWSA9IDA7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAg
ICBwbkhlaWdodCA9IDA7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0V2luZG93Qm91bmRzKHJl
ZiBwblgscmVmIHBuWSxyZWYgcG5XaWR0aCxyZWYgcG5IZWlnaHQpOworICAgICAgIH0KKyAgICAg
ICBwdWJsaWMgdm9pZCBHZXRFeWVPdXRwdXRWaWV3cG9ydChFVlJFeWUgZUV5ZSxyZWYgdWludCBw
blgscmVmIHVpbnQgcG5ZLHJlZiB1aW50IHBuV2lkdGgscmVmIHVpbnQgcG5IZWlnaHQpCisgICAg
ICAgeworICAgICAgICAgICAgICBwblggPSAwOworICAgICAgICAgICAgICBwblkgPSAwOworICAg
ICAgICAgICAgICBwbldpZHRoID0gMDsKKyAgICAgICAgICAgICAgcG5IZWlnaHQgPSAwOworICAg
ICAgICAgICAgICBGblRhYmxlLkdldEV5ZU91dHB1dFZpZXdwb3J0KGVFeWUscmVmIHBuWCxyZWYg
cG5ZLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2
b2lkIEdldERYR0lPdXRwdXRJbmZvKHJlZiBpbnQgcG5BZGFwdGVySW5kZXgscmVmIGludCBwbkFk
YXB0ZXJPdXRwdXRJbmRleCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBuQWRhcHRlckluZGV4
ID0gMDsKKyAgICAgICAgICAgICAgcG5BZGFwdGVyT3V0cHV0SW5kZXggPSAwOworICAgICAgICAg
ICAgICBGblRhYmxlLkdldERYR0lPdXRwdXRJbmZvKHJlZiBwbkFkYXB0ZXJJbmRleCxyZWYgcG5B
ZGFwdGVyT3V0cHV0SW5kZXgpOworICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZSVHJh
Y2tlZENhbWVyYQoreworICAgICAgIElWUlRyYWNrZWRDYW1lcmEgRm5UYWJsZTsKKyAgICAgICBp
bnRlcm5hbCBDVlJUcmFja2VkQ2FtZXJhKEludFB0ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJUcmFja2VkQ2FtZXJhKU1hcnNoYWwuUHRyVG9TdHJ1
Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUlRyYWNrZWRDYW1lcmEpKTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIHN0cmluZyBHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bShFVlJUcmFja2Vk
Q2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSW50UHRy
IHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRXJyb3JOYW1lRnJvbUVudW0oZUNhbWVyYUVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgSGFzQ2FtZXJh
KHVpbnQgbkRldmljZUluZGV4LHJlZiBib29sIHBIYXNDYW1lcmEpCisgICAgICAgeworICAgICAg
ICAgICAgICBwSGFzQ2FtZXJhID0gZmFsc2U7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkhhc0NhbWVyYShuRGV2aWNlSW5kZXgscmVmIHBIYXND
YW1lcmEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUZyYW1lU2l6ZSh1aW50IG5EZXZp
Y2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUscmVmIHVpbnQgcG5X
aWR0aCxyZWYgdWludCBwbkhlaWdodCxyZWYgdWludCBwbkZyYW1lQnVmZmVyU2l6ZSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHBuV2lkdGggPSAwOworICAgICAgICAgICAgICBwbkhlaWdodCA9
IDA7CisgICAgICAgICAgICAgIHBuRnJhbWVCdWZmZXJTaXplID0gMDsKKyAgICAgICAgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0Q2FtZXJhRnJhbWVTaXpl
KG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLHJlZiBwbldpZHRoLHJlZiBwbkhlaWdodCxyZWYgcG5G
cmFtZUJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldENhbWVyYUludHJpbnNpY3Mo
dWludCBuRGV2aWNlSW5kZXgsRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJl
ZiBIbWRWZWN0b3IyX3QgcEZvY2FsTGVuZ3RoLHJlZiBIbWRWZWN0b3IyX3QgcENlbnRlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldENhbWVyYUludHJpbnNpY3MobkRldmljZUluZGV4LGVGcmFtZVR5cGUscmVmIHBGb2Nh
bExlbmd0aCxyZWYgcENlbnRlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgR2V0Q2FtZXJhUHJvamVj
dGlvbih1aW50IG5EZXZpY2VJbmRleCxFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5
cGUsZmxvYXQgZmxaTmVhcixmbG9hdCBmbFpGYXIscmVmIEhtZE1hdHJpeDQ0X3QgcFByb2plY3Rp
b24pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0
ID0gRm5UYWJsZS5HZXRDYW1lcmFQcm9qZWN0aW9uKG5EZXZpY2VJbmRleCxlRnJhbWVUeXBlLGZs
Wk5lYXIsZmxaRmFyLHJlZiBwUHJvamVjdGlvbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgQWNxdWly
ZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1aW50IG5EZXZpY2VJbmRleCxyZWYgdWxvbmcgcEhhbmRs
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBIYW5kbGUgPSAwOworICAgICAgICAgICAgICBF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5BY3F1aXJlVmlkZW9TdHJlYW1p
bmdTZXJ2aWNlKG5EZXZpY2VJbmRleCxyZWYgcEhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3Ig
UmVsZWFzZVZpZGVvU3RyZWFtaW5nU2VydmljZSh1bG9uZyBoVHJhY2tlZENhbWVyYSkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxl
LlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UoaFRyYWNrZWRDYW1lcmEpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENh
bWVyYUVycm9yIEdldFZpZGVvU3RyZWFtRnJhbWVCdWZmZXIodWxvbmcgaFRyYWNrZWRDYW1lcmEs
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLEludFB0ciBwRnJhbWVCdWZmZXIs
dWludCBuRnJhbWVCdWZmZXJTaXplLHJlZiBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3Qg
cEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFZpZGVvU3RyZWFt
RnJhbWVCdWZmZXIoaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxwRnJhbWVCdWZmZXIsbkZyYW1l
QnVmZmVyU2l6ZSxyZWYgcEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENh
bWVyYUVycm9yIEdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUodWludCBuRGV2aWNlSW5kZXgsRVZS
VHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLHJlZiBWUlRleHR1cmVCb3VuZHNfdCBw
VGV4dHVyZUJvdW5kcyxyZWYgdWludCBwbldpZHRoLHJlZiB1aW50IHBuSGVpZ2h0KQorICAgICAg
IHsKKyAgICAgICAgICAgICAgcG5XaWR0aCA9IDA7CisgICAgICAgICAgICAgIHBuSGVpZ2h0ID0g
MDsKKyAgICAgICAgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUu
R2V0VmlkZW9TdHJlYW1UZXh0dXJlU2l6ZShuRGV2aWNlSW5kZXgsZUZyYW1lVHlwZSxyZWYgcFRl
eHR1cmVCb3VuZHMscmVmIHBuV2lkdGgscmVmIHBuSGVpZ2h0KTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFFcnJv
ciBHZXRWaWRlb1N0cmVhbVRleHR1cmVEM0QxMSh1bG9uZyBoVHJhY2tlZENhbWVyYSxFVlJUcmFj
a2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsSW50UHRyIHBEM0QxMURldmljZU9yUmVzb3Vy
Y2UscmVmIEludFB0ciBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LHJlZiBDYW1lcmFWaWRlb1N0
cmVhbUZyYW1lSGVhZGVyX3QgcEZyYW1lSGVhZGVyLHVpbnQgbkZyYW1lSGVhZGVyU2l6ZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldFZpZGVvU3RyZWFtVGV4dHVyZUQzRDExKGhUcmFja2VkQ2FtZXJhLGVGcmFtZVR5cGUs
cEQzRDExRGV2aWNlT3JSZXNvdXJjZSxyZWYgcHBEM0QxMVNoYWRlclJlc291cmNlVmlldyxyZWYg
cEZyYW1lSGVhZGVyLG5GcmFtZUhlYWRlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSVHJhY2tlZENhbWVyYUVycm9yIEdldFZp
ZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZSxyZWYgdWludCBwZ2xUZXh0dXJlSWQscmVmIENhbWVyYVZpZGVv
U3RyZWFtRnJhbWVIZWFkZXJfdCBwRnJhbWVIZWFkZXIsdWludCBuRnJhbWVIZWFkZXJTaXplKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0VmlkZW9TdHJlYW1UZXh0
dXJlR0woaFRyYWNrZWRDYW1lcmEsZUZyYW1lVHlwZSxyZWYgcGdsVGV4dHVyZUlkLHJlZiBwRnJh
bWVIZWFkZXIsbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgUmVsZWFzZVZp
ZGVvU3RyZWFtVGV4dHVyZUdMKHVsb25nIGhUcmFja2VkQ2FtZXJhLHVpbnQgZ2xUZXh0dXJlSWQp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5SZWxlYXNlVmlkZW9TdHJlYW1UZXh0dXJlR0woaFRyYWNrZWRDYW1lcmEsZ2xUZXh0
dXJlSWQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KK30KKworCitw
dWJsaWMgY2xhc3MgQ1ZSQXBwbGljYXRpb25zCit7CisgICAgICAgSVZSQXBwbGljYXRpb25zIEZu
VGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQXBwbGljYXRpb25zKEludFB0ciBwSW50ZXJmYWNl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJBcHBsaWNhdGlvbnMpTWFy
c2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSQXBwbGljYXRpb25zKSk7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIEFkZEFwcGxpY2F0
aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCxib29sIGJU
ZW1wb3JhcnkpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJl
c3VsdCA9IEZuVGFibGUuQWRkQXBwbGljYXRpb25NYW5pZmVzdChwY2hBcHBsaWNhdGlvbk1hbmlm
ZXN0RnVsbFBhdGgsYlRlbXBvcmFyeSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIFJlbW92ZUFwcGxpY2F0
aW9uTWFuaWZlc3Qoc3RyaW5nIHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5S
ZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KHBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBi
b29sIElzQXBwbGljYXRpb25JbnN0YWxsZWQoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0FwcGxpY2F0aW9uSW5zdGFsbGVk
KHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uQ291bnQoKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uQ291bnQoKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVpbnQgdW5BcHBsaWNhdGlvbklu
ZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQXBwS2V5QnVmZmVyLHVpbnQgdW5BcHBL
ZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25LZXlCeUluZGV4KHVuQXBwbGljYXRpb25J
bmRleCxwY2hBcHBLZXlCdWZmZXIsdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJv
ciBHZXRBcHBsaWNhdGlvbktleUJ5UHJvY2Vzc0lkKHVpbnQgdW5Qcm9jZXNzSWQsc3RyaW5nIHBj
aEFwcEtleUJ1ZmZlcix1aW50IHVuQXBwS2V5QnVmZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9u
S2V5QnlQcm9jZXNzSWQodW5Qcm9jZXNzSWQscGNoQXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVy
TGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgTGF1bmNoQXBwbGljYXRpb24oc3RyaW5nIHBjaEFwcEtl
eSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5MYXVuY2hBcHBsaWNhdGlvbihwY2hBcHBLZXkpOworICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBM
YXVuY2hUZW1wbGF0ZUFwcGxpY2F0aW9uKHN0cmluZyBwY2hUZW1wbGF0ZUFwcEtleSxzdHJpbmcg
cGNoTmV3QXBwS2V5LEFwcE92ZXJyaWRlS2V5c190IFtdIHBLZXlzKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaFRlbXBs
YXRlQXBwbGljYXRpb24ocGNoVGVtcGxhdGVBcHBLZXkscGNoTmV3QXBwS2V5LHBLZXlzLCh1aW50
KSBwS2V5cy5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBMYXVuY2hBcHBsaWNhdGlvbkZyb21N
aW1lVHlwZShzdHJpbmcgcGNoTWltZVR5cGUsc3RyaW5nIHBjaEFyZ3MpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuTGF1bmNoQXBw
bGljYXRpb25Gcm9tTWltZVR5cGUocGNoTWltZVR5cGUscGNoQXJncyk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVy
cm9yIExhdW5jaERhc2hib2FyZE92ZXJsYXkoc3RyaW5nIHBjaEFwcEtleSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5MYXVuY2hE
YXNoYm9hcmRPdmVybGF5KHBjaEFwcEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKHN0
cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZu
VGFibGUuQ2FuY2VsQXBwbGljYXRpb25MYXVuY2gocGNoQXBwS2V5KTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJy
b3IgSWRlbnRpZnlBcHBsaWNhdGlvbih1aW50IHVuUHJvY2Vzc0lkLHN0cmluZyBwY2hBcHBLZXkp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZu
VGFibGUuSWRlbnRpZnlBcHBsaWNhdGlvbih1blByb2Nlc3NJZCxwY2hBcHBLZXkpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRB
cHBsaWNhdGlvblByb2Nlc3NJZChzdHJpbmcgcGNoQXBwS2V5KQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uUHJvY2Vzc0lkKHBjaEFw
cEtleSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1
YmxpYyBzdHJpbmcgR2V0QXBwbGljYXRpb25zRXJyb3JOYW1lRnJvbUVudW0oRVZSQXBwbGljYXRp
b25FcnJvciBlcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1bHQgPSBG
blRhYmxlLkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uUHJvcGVydHlTdHJpbmcoc3RyaW5nIHBj
aEFwcEtleSxFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQcm9wZXJ0eSxTeXN0ZW0uVGV4dC5TdHJp
bmdCdWlsZGVyIHBjaFByb3BlcnR5VmFsdWVCdWZmZXIsdWludCB1blByb3BlcnR5VmFsdWVCdWZm
ZXJMZW4scmVmIEVWUkFwcGxpY2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvblByb3BlcnR5U3RyaW5n
KHBjaEFwcEtleSxlUHJvcGVydHkscGNoUHJvcGVydHlWYWx1ZUJ1ZmZlcix1blByb3BlcnR5VmFs
dWVCdWZmZXJMZW4scmVmIHBlRXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRBcHBsaWNhdGlvblByb3BlcnR5Qm9vbChz
dHJpbmcgcGNoQXBwS2V5LEVWUkFwcGxpY2F0aW9uUHJvcGVydHkgZVByb3BlcnR5LHJlZiBFVlJB
cHBsaWNhdGlvbkVycm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eUJvb2wocGNoQXBwS2V5LGVQcm9w
ZXJ0eSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1bG9uZyBHZXRBcHBsaWNhdGlvblByb3BlcnR5VWludDY0KHN0cmlu
ZyBwY2hBcHBLZXksRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHkscmVmIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NChwY2hBcHBLZXksZVByb3Bl
cnR5LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9uRXJyb3IgU2V0QXBwbGljYXRpb25BdXRvTGF1
bmNoKHN0cmluZyBwY2hBcHBLZXksYm9vbCBiQXV0b0xhdW5jaCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRBcHBsaWNhdGlv
bkF1dG9MYXVuY2gocGNoQXBwS2V5LGJBdXRvTGF1bmNoKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25BdXRv
TGF1bmNoKHN0cmluZyBwY2hBcHBLZXkpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJl
c3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKHBjaEFwcEtleSk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBs
aWNhdGlvbkVycm9yIFNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKHN0cmluZyBwY2hB
cHBLZXksc3RyaW5nIHBjaE1pbWVUeXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBw
bGljYXRpb25FcnJvciByZXN1bHQgPSBGblRhYmxlLlNldERlZmF1bHRBcHBsaWNhdGlvbkZvck1p
bWVUeXBlKHBjaEFwcEtleSxwY2hNaW1lVHlwZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldERlZmF1bHRBcHBsaWNhdGlvbkZv
ck1pbWVUeXBlKHN0cmluZyBwY2hNaW1lVHlwZSxzdHJpbmcgcGNoQXBwS2V5QnVmZmVyLHVpbnQg
dW5BcHBLZXlCdWZmZXJMZW4pCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9
IEZuVGFibGUuR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUocGNoTWltZVR5cGUscGNo
QXBwS2V5QnVmZmVyLHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0QXBwbGljYXRpb25TdXBwb3J0
ZWRNaW1lVHlwZXMoc3RyaW5nIHBjaEFwcEtleSxzdHJpbmcgcGNoTWltZVR5cGVzQnVmZmVyLHVp
bnQgdW5NaW1lVHlwZXNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlwZXMocGNoQXBwS2V5LHBj
aE1pbWVUeXBlc0J1ZmZlcix1bk1pbWVUeXBlc0J1ZmZlcik7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uc1Ro
YXRTdXBwb3J0TWltZVR5cGUoc3RyaW5nIHBjaE1pbWVUeXBlLHN0cmluZyBwY2hBcHBLZXlzVGhh
dFN1cHBvcnRCdWZmZXIsdWludCB1bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcikKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRBcHBsaWNhdGlvbnNUaGF0
U3VwcG9ydE1pbWVUeXBlKHBjaE1pbWVUeXBlLHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcix1
bkFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlcik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1l
bnRzKHVpbnQgdW5IYW5kbGUsc3RyaW5nIHBjaEFyZ3MsdWludCB1bkFyZ3MpCisgICAgICAgewor
ICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0QXBwbGljYXRpb25MYXVuY2hB
cmd1bWVudHModW5IYW5kbGUscGNoQXJncyx1bkFyZ3MpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSQXBwbGljYXRpb25FcnJvciBHZXRT
dGFydGluZ0FwcGxpY2F0aW9uKHN0cmluZyBwY2hBcHBLZXlCdWZmZXIsdWludCB1bkFwcEtleUJ1
ZmZlckxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVz
dWx0ID0gRm5UYWJsZS5HZXRTdGFydGluZ0FwcGxpY2F0aW9uKHBjaEFwcEtleUJ1ZmZlcix1bkFw
cEtleUJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZSBHZXRUcmFuc2l0aW9u
U3RhdGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9u
U3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRUcmFuc2l0aW9uU3RhdGUoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkFwcGxpY2F0aW9u
RXJyb3IgUGVyZm9ybUFwcGxpY2F0aW9uUHJlbGF1bmNoQ2hlY2soc3RyaW5nIHBjaEFwcEtleSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5QZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayhwY2hBcHBLZXkpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdl
dEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShFVlJBcHBsaWNhdGlvblRy
YW5zaXRpb25TdGF0ZSBzdGF0ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEludFB0ciByZXN1
bHQgPSBGblRhYmxlLkdldEFwcGxpY2F0aW9uc1RyYW5zaXRpb25TdGF0ZU5hbWVGcm9tRW51bShz
dGF0ZSk7CisgICAgICAgICAgICAgIHJldHVybiBNYXJzaGFsLlB0clRvU3RyaW5nQW5zaShyZXN1
bHQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc1F1aXRVc2VyUHJvbXB0UmVxdWVz
dGVkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJBcHBsaWNhdGlvbkVycm9yIExhdW5jaEludGVybmFs
UHJvY2VzcyhzdHJpbmcgcGNoQmluYXJ5UGF0aCxzdHJpbmcgcGNoQXJndW1lbnRzLHN0cmluZyBw
Y2hXb3JraW5nRGlyZWN0b3J5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQXBwbGljYXRp
b25FcnJvciByZXN1bHQgPSBGblRhYmxlLkxhdW5jaEludGVybmFsUHJvY2VzcyhwY2hCaW5hcnlQ
YXRoLHBjaEFyZ3VtZW50cyxwY2hXb3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q3VycmVudFNjZW5l
UHJvY2Vzc0lkKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRDdXJyZW50U2NlbmVQcm9jZXNzSWQoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNoYXBlcm9uZQoreworICAgICAg
IElWUkNoYXBlcm9uZSBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZShJbnRQ
dHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSQ2hh
cGVyb25lKU1hcnNoYWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUkNoYXBl
cm9uZSkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0
ZSBHZXRDYWxpYnJhdGlvblN0YXRlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENoYXBlcm9u
ZUNhbGlicmF0aW9uU3RhdGUgcmVzdWx0ID0gRm5UYWJsZS5HZXRDYWxpYnJhdGlvblN0YXRlKCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBi
b29sIEdldFBsYXlBcmVhU2l6ZShyZWYgZmxvYXQgcFNpemVYLHJlZiBmbG9hdCBwU2l6ZVopCisg
ICAgICAgeworICAgICAgICAgICAgICBwU2l6ZVggPSAwOworICAgICAgICAgICAgICBwU2l6ZVog
PSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0UGxheUFyZWFTaXpl
KHJlZiBwU2l6ZVgscmVmIHBTaXplWik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFBsYXlBcmVhUmVjdChyZWYgSG1kUXVhZF90
IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0
UGxheUFyZWFSZWN0KHJlZiByZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVsb2FkSW5mbygpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLlJlbG9hZEluZm8oKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZv
aWQgU2V0U2NlbmVDb2xvcihIbWRDb2xvcl90IGNvbG9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRm5UYWJsZS5TZXRTY2VuZUNvbG9yKGNvbG9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgR2V0Qm91bmRzQ29sb3IocmVmIEhtZENvbG9yX3QgcE91dHB1dENvbG9yQXJyYXksaW50
IG5OdW1PdXRwdXRDb2xvcnMsZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UscmVm
IEhtZENvbG9yX3QgcE91dHB1dENhbWVyYUNvbG9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5HZXRCb3VuZHNDb2xvcihyZWYgcE91dHB1dENvbG9yQXJyYXksbk51bU91dHB1dENv
bG9ycyxmbENvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSxyZWYgcE91dHB1dENhbWVyYUNvbG9y
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgQXJlQm91bmRzVmlzaWJsZSgpCisgICAg
ICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuQXJlQm91bmRzVmlzaWJs
ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBGb3JjZUJvdW5kc1Zpc2libGUoYm9vbCBiRm9yY2UpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkZvcmNlQm91bmRzVmlzaWJsZShiRm9yY2UpOworICAgICAgIH0KK30K
KworCitwdWJsaWMgY2xhc3MgQ1ZSQ2hhcGVyb25lU2V0dXAKK3sKKyAgICAgICBJVlJDaGFwZXJv
bmVTZXR1cCBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUkNoYXBlcm9uZVNldHVwKEludFB0
ciBwSW50ZXJmYWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJDaGFw
ZXJvbmVTZXR1cClNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJD
aGFwZXJvbmVTZXR1cCkpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBDb21taXRXb3Jr
aW5nQ29weShFQ2hhcGVyb25lQ29uZmlnRmlsZSBjb25maWdGaWxlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbW1pdFdvcmtpbmdDb3B5KGNvbmZpZ0Zp
bGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBSZXZlcnRXb3JraW5nQ29weSgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLlJldmVydFdvcmtpbmdDb3B5KCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdl
dFdvcmtpbmdQbGF5QXJlYVNpemUocmVmIGZsb2F0IHBTaXplWCxyZWYgZmxvYXQgcFNpemVaKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcFNpemVYID0gMDsKKyAgICAgICAgICAgICAgcFNpemVa
ID0gMDsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdQbGF5
QXJlYVNpemUocmVmIHBTaXplWCxyZWYgcFNpemVaKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0V29ya2luZ1BsYXlBcmVhUmVj
dChyZWYgSG1kUXVhZF90IHJlY3QpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEZuVGFibGUuR2V0V29ya2luZ1BsYXlBcmVhUmVjdChyZWYgcmVjdCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldFdvcmtp
bmdDb2xsaXNpb25Cb3VuZHNJbmZvKG91dCBIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgdWludCBwdW5RdWFkc0NvdW50ID0gMDsKKyAgICAgICAgICAg
ICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKG51
bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5ldyBI
bWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFibGUu
R2V0V29ya2luZ0NvbGxpc2lvbkJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLHJlZiBwdW5RdWFkc0Nv
dW50KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIGJvb2wgR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8ob3V0IEhtZFF1YWRfdCBbXSBwUXVh
ZHNCdWZmZXIpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHB1blF1YWRzQ291bnQgPSAw
OworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJv
dW5kc0luZm8obnVsbCxyZWYgcHVuUXVhZHNDb3VudCk7CisgICAgICAgICAgICAgIHBRdWFkc0J1
ZmZlcj0gbmV3IEhtZFF1YWRfdFtwdW5RdWFkc0NvdW50XTsKKyAgICAgICAgICAgICAgcmVzdWx0
ID0gRm5UYWJsZS5HZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1
blF1YWRzQ291bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9z
ZShyZWYgSG1kTWF0cml4MzRfdCBwbWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRXb3JraW5n
U2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgYm9vbCBHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tp
bmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0
V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgcG1hdFN0YW5kaW5n
WmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdQbGF5QXJlYVNpemUoZmxv
YXQgc2l6ZVgsZmxvYXQgc2l6ZVopCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNl
dFdvcmtpbmdQbGF5QXJlYVNpemUoc2l6ZVgsc2l6ZVopOworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRz
QnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRXb3JraW5nQ29sbGlz
aW9uQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIsKHVpbnQpIHBRdWFkc0J1ZmZlci5MZW5ndGgpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jh
d1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U2VhdGVkWmVyb1Bvc2VUb1Jhd1Ry
YWNraW5nUG9zZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0V29ya2luZ1Nl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UocmVmIHBNYXRTZWF0ZWRaZXJvUG9zZVRvUmF3
VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0V29ya2luZ1N0
YW5kaW5nWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZShyZWYgSG1kTWF0cml4MzRfdCBwTWF0U3Rh
bmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBw
TWF0U3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKTsKKyAgICAgICB9CisgICAgICAg
cHVibGljIHZvaWQgUmVsb2FkRnJvbURpc2soRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmls
ZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuUmVsb2FkRnJvbURpc2soY29uZmln
RmlsZSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdldExpdmVTZWF0ZWRaZXJvUG9z
ZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBIbWRNYXRyaXgzNF90IHBtYXRTZWF0ZWRaZXJvUG9zZVRv
UmF3VHJhY2tpbmdQb3NlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBG
blRhYmxlLkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKHJlZiBwbWF0U2Vh
dGVkWmVyb1Bvc2VUb1Jhd1RyYWNraW5nUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFdvcmtpbmdDb2xsaXNpb25Cb3Vu
ZHNUYWdzSW5mbyhieXRlIFtdIHBUYWdzQnVmZmVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
Rm5UYWJsZS5TZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIsKHVp
bnQpIHBUYWdzQnVmZmVyLkxlbmd0aCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIEdl
dExpdmVDb2xsaXNpb25Cb3VuZHNUYWdzSW5mbyhvdXQgYnl0ZSBbXSBwVGFnc0J1ZmZlcikKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuVGFnQ291bnQgPSAwOworICAgICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc1RhZ3NJbmZvKG51
bGwscmVmIHB1blRhZ0NvdW50KTsKKyAgICAgICAgICAgICAgcFRhZ3NCdWZmZXI9IG5ldyBieXRl
W3B1blRhZ0NvdW50XTsKKyAgICAgICAgICAgICAgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlQ29s
bGlzaW9uQm91bmRzVGFnc0luZm8ocFRhZ3NCdWZmZXIscmVmIHB1blRhZ0NvdW50KTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU2V0
V29ya2luZ1BoeXNpY2FsQm91bmRzSW5mbyhIbWRRdWFkX3QgW10gcFF1YWRzQnVmZmVyKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNldFdvcmtpbmdQaHlz
aWNhbEJvdW5kc0luZm8ocFF1YWRzQnVmZmVyLCh1aW50KSBwUXVhZHNCdWZmZXIuTGVuZ3RoKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJv
b2wgR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhvdXQgSG1kUXVhZF90IFtdIHBRdWFkc0J1ZmZl
cikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcHVuUXVhZHNDb3VudCA9IDA7CisgICAg
ICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5HZXRMaXZlUGh5c2ljYWxCb3VuZHNJbmZv
KG51bGwscmVmIHB1blF1YWRzQ291bnQpOworICAgICAgICAgICAgICBwUXVhZHNCdWZmZXI9IG5l
dyBIbWRRdWFkX3RbcHVuUXVhZHNDb3VudF07CisgICAgICAgICAgICAgIHJlc3VsdCA9IEZuVGFi
bGUuR2V0TGl2ZVBoeXNpY2FsQm91bmRzSW5mbyhwUXVhZHNCdWZmZXIscmVmIHB1blF1YWRzQ291
bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgYm9vbCBFeHBvcnRMaXZlVG9CdWZmZXIoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwQnVm
ZmVyLHJlZiB1aW50IHBuQnVmZmVyTGVuZ3RoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcG5C
dWZmZXJMZW5ndGggPSAwOworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuRXhw
b3J0TGl2ZVRvQnVmZmVyKHBCdWZmZXIscmVmIHBuQnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSW1wb3J0RnJv
bUJ1ZmZlclRvV29ya2luZyhzdHJpbmcgcEJ1ZmZlcix1aW50IG5JbXBvcnRGbGFncykKKyAgICAg
ICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5JbXBvcnRGcm9tQnVmZmVy
VG9Xb3JraW5nKHBCdWZmZXIsbkltcG9ydEZsYWdzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUkNvbXBvc2l0b3IKK3sKKyAg
ICAgICBJVlJDb21wb3NpdG9yIEZuVGFibGU7CisgICAgICAgaW50ZXJuYWwgQ1ZSQ29tcG9zaXRv
cihJbnRQdHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAo
SVZSQ29tcG9zaXRvcilNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJ
VlJDb21wb3NpdG9yKSk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldFRyYWNraW5n
U3BhY2UoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuU2V0VHJhY2tpbmdTcGFjZShlT3JpZ2luKTsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIEdldFRyYWNraW5nU3BhY2UoKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gcmVzdWx0ID0gRm5U
YWJsZS5HZXRUcmFja2luZ1NwYWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgV2FpdEdldFBvc2VzKFRy
YWNrZWREZXZpY2VQb3NlX3QgW10gcFJlbmRlclBvc2VBcnJheSxUcmFja2VkRGV2aWNlUG9zZV90
IFtdIHBHYW1lUG9zZUFycmF5KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRv
ckVycm9yIHJlc3VsdCA9IEZuVGFibGUuV2FpdEdldFBvc2VzKHBSZW5kZXJQb3NlQXJyYXksKHVp
bnQpIHBSZW5kZXJQb3NlQXJyYXkuTGVuZ3RoLHBHYW1lUG9zZUFycmF5LCh1aW50KSBwR2FtZVBv
c2VBcnJheS5MZW5ndGgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZSQ29tcG9zaXRvckVycm9yIEdldExhc3RQb3NlcyhUcmFja2VkRGV2
aWNlUG9zZV90IFtdIHBSZW5kZXJQb3NlQXJyYXksVHJhY2tlZERldmljZVBvc2VfdCBbXSBwR2Ft
ZVBvc2VBcnJheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkdldExhc3RQb3NlcyhwUmVuZGVyUG9zZUFycmF5LCh1aW50KSBwUmVu
ZGVyUG9zZUFycmF5Lkxlbmd0aCxwR2FtZVBvc2VBcnJheSwodWludCkgcEdhbWVQb3NlQXJyYXku
TGVuZ3RoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAg
cHVibGljIEVWUkNvbXBvc2l0b3JFcnJvciBHZXRMYXN0UG9zZUZvclRyYWNrZWREZXZpY2VJbmRl
eCh1aW50IHVuRGV2aWNlSW5kZXgscmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dFBvc2Us
cmVmIFRyYWNrZWREZXZpY2VQb3NlX3QgcE91dHB1dEdhbWVQb3NlKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0TGFzdFBvc2VG
b3JUcmFja2VkRGV2aWNlSW5kZXgodW5EZXZpY2VJbmRleCxyZWYgcE91dHB1dFBvc2UscmVmIHBP
dXRwdXRHYW1lUG9zZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgU3VibWl0KEVWUkV5ZSBlRXllLHJlZiBU
ZXh0dXJlX3QgcFRleHR1cmUscmVmIFZSVGV4dHVyZUJvdW5kc190IHBCb3VuZHMsRVZSU3VibWl0
RmxhZ3MgblN1Ym1pdEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRv
ckVycm9yIHJlc3VsdCA9IEZuVGFibGUuU3VibWl0KGVFeWUscmVmIHBUZXh0dXJlLHJlZiBwQm91
bmRzLG5TdWJtaXRGbGFncyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIENsZWFyTGFzdFN1Ym1pdHRlZEZyYW1lKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEZuVGFibGUuQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUoKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIHZvaWQgUG9zdFByZXNlbnRIYW5kb2ZmKCkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEZuVGFibGUuUG9zdFByZXNlbnRIYW5kb2ZmKCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBib29sIEdldEZyYW1lVGltaW5nKHJlZiBDb21wb3NpdG9yX0ZyYW1lVGltaW5n
IHBUaW1pbmcsdWludCB1bkZyYW1lc0FnbykKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0ID0gRm5UYWJsZS5HZXRGcmFtZVRpbWluZyhyZWYgcFRpbWluZyx1bkZyYW1lc0Fnbyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1
aW50IEdldEZyYW1lVGltaW5ncyhyZWYgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyBwVGltaW5nLHVp
bnQgbkZyYW1lcykKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGcmFtZVRpbWluZ3MocmVmIHBUaW1pbmcsbkZyYW1lcyk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBmbG9hdCBHZXRGcmFtZVRpbWVS
ZW1haW5pbmcoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5UYWJs
ZS5HZXRGcmFtZVRpbWVSZW1haW5pbmcoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBDb21w
b3NpdG9yX0N1bXVsYXRpdmVTdGF0cyBwU3RhdHMsdWludCBuU3RhdHNTaXplSW5CeXRlcykKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuR2V0Q3VtdWxhdGl2ZVN0YXRzKHJlZiBwU3Rh
dHMsblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGYWRl
VG9Db2xvcihmbG9hdCBmU2Vjb25kcyxmbG9hdCBmUmVkLGZsb2F0IGZHcmVlbixmbG9hdCBmQmx1
ZSxmbG9hdCBmQWxwaGEsYm9vbCBiQmFja2dyb3VuZCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuRmFkZVRvQ29sb3IoZlNlY29uZHMsZlJlZCxmR3JlZW4sZkJsdWUsZkFscGhhLGJC
YWNrZ3JvdW5kKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEhtZENvbG9yX3QgR2V0Q3VycmVu
dEZhZGVDb2xvcihib29sIGJCYWNrZ3JvdW5kKQorICAgICAgIHsKKyAgICAgICAgICAgICAgSG1k
Q29sb3JfdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRGYWRlQ29sb3IoYkJhY2tncm91bmQp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dm9pZCBGYWRlR3JpZChmbG9hdCBmU2Vjb25kcyxib29sIGJGYWRlSW4pCisgICAgICAgeworICAg
ICAgICAgICAgICBGblRhYmxlLkZhZGVHcmlkKGZTZWNvbmRzLGJGYWRlSW4pOworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgZmxvYXQgR2V0Q3VycmVudEdyaWRBbHBoYSgpCisgICAgICAgeworICAg
ICAgICAgICAgICBmbG9hdCByZXN1bHQgPSBGblRhYmxlLkdldEN1cnJlbnRHcmlkQWxwaGEoKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
UkNvbXBvc2l0b3JFcnJvciBTZXRTa3lib3hPdmVycmlkZShUZXh0dXJlX3QgW10gcFRleHR1cmVz
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIHJlc3VsdCA9IEZu
VGFibGUuU2V0U2t5Ym94T3ZlcnJpZGUocFRleHR1cmVzLCh1aW50KSBwVGV4dHVyZXMuTGVuZ3Ro
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgQ2xlYXJTa3lib3hPdmVycmlkZSgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRh
YmxlLkNsZWFyU2t5Ym94T3ZlcnJpZGUoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
Q29tcG9zaXRvckJyaW5nVG9Gcm9udCgpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxl
LkNvbXBvc2l0b3JCcmluZ1RvRnJvbnQoKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
Q29tcG9zaXRvckdvVG9CYWNrKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ29t
cG9zaXRvckdvVG9CYWNrKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lkIENvbXBvc2l0
b3JRdWl0KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuQ29tcG9zaXRvclF1aXQo
KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNGdWxsc2NyZWVuKCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5Jc0Z1bGxzY3JlZW4oKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0Q3VycmVudFNjZW5lRm9jdXNQcm9jZXNzKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVp
bnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3MoKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0
TGFzdEZyYW1lUmVuZGVyZXIoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQg
PSBGblRhYmxlLkdldExhc3RGcmFtZVJlbmRlcmVyKCk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENhblJlbmRlclNjZW5lKCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5DYW5SZW5kZXJTY2Vu
ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdm9pZCBTaG93TWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFi
bGUuU2hvd01pcnJvcldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBIaWRl
TWlycm9yV2luZG93KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuSGlkZU1pcnJv
cldpbmRvdygpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBJc01pcnJvcldpbmRvd1Zp
c2libGUoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLklz
TWlycm9yV2luZG93VmlzaWJsZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBDb21wb3NpdG9yRHVtcEltYWdlcygpCisgICAgICAg
eworICAgICAgICAgICAgICBGblRhYmxlLkNvbXBvc2l0b3JEdW1wSW1hZ2VzKCk7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBib29sIFNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLlNob3VsZEFwcFJl
bmRlcldpdGhMb3dSZXNvdXJjZXMoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIHZvaWQgRm9yY2VJbnRlcmxlYXZlZFJlcHJvamVjdGlvbk9u
KGJvb2wgYk92ZXJyaWRlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5Gb3JjZUlu
dGVybGVhdmVkUmVwcm9qZWN0aW9uT24oYk92ZXJyaWRlKTsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHZvaWQgRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEZuVGFibGUuRm9yY2VSZWNvbm5lY3RQcm9jZXNzKCk7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB2b2lkIFN1c3BlbmRSZW5kZXJpbmcoYm9vbCBiU3VzcGVuZCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEZuVGFibGUuU3VzcGVuZFJlbmRlcmluZyhiU3VzcGVuZCk7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJDb21wb3NpdG9yRXJyb3IgR2V0TWlycm9yVGV4dHVyZUQzRDExKEVWUkV5
ZSBlRXllLEludFB0ciBwRDNEMTFEZXZpY2VPclJlc291cmNlLHJlZiBJbnRQdHIgcHBEM0QxMVNo
YWRlclJlc291cmNlVmlldykKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUkNvbXBvc2l0b3JF
cnJvciByZXN1bHQgPSBGblRhYmxlLkdldE1pcnJvclRleHR1cmVEM0QxMShlRXllLHBEM0QxMURl
dmljZU9yUmVzb3VyY2UscmVmIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZWxlYXNl
TWlycm9yVGV4dHVyZUQzRDExKEludFB0ciBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpCisgICAg
ICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbGVhc2VNaXJyb3JUZXh0dXJlRDNEMTEocEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUkNvbXBv
c2l0b3JFcnJvciBHZXRNaXJyb3JUZXh0dXJlR0woRVZSRXllIGVFeWUscmVmIHVpbnQgcGdsVGV4
dHVyZUlkLEludFB0ciBwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcGdsVGV4dHVyZUlkID0gMDsKKyAgICAgICAgICAgICAgRVZSQ29tcG9zaXRvckVycm9y
IHJlc3VsdCA9IEZuVGFibGUuR2V0TWlycm9yVGV4dHVyZUdMKGVFeWUscmVmIHBnbFRleHR1cmVJ
ZCxwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVsZWFzZVNoYXJlZEdMVGV4dHVyZSh1aW50
IGdsVGV4dHVyZUlkLEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuUmVsZWFzZVNoYXJlZEdMVGV4dHVyZShn
bFRleHR1cmVJZCxnbFNoYXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBMb2NrR0xTaGFyZWRUZXh0dXJl
Rm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgeworICAgICAg
ICAgICAgICBGblRhYmxlLkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MoZ2xTaGFyZWRUZXh0
dXJlSGFuZGxlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgVW5sb2NrR0xTaGFyZWRU
ZXh0dXJlRm9yQWNjZXNzKEludFB0ciBnbFNoYXJlZFRleHR1cmVIYW5kbGUpCisgICAgICAgewor
ICAgICAgICAgICAgICBGblRhYmxlLlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcyhnbFNo
YXJlZFRleHR1cmVIYW5kbGUpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRWdWxr
YW5JbnN0YW5jZUV4dGVuc2lvbnNSZXF1aXJlZChTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVyIHBj
aFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCBy
ZXN1bHQgPSBGblRhYmxlLkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBjaFZh
bHVlLHVuQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB1aW50IEdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZChJ
bnRQdHIgcFBoeXNpY2FsRGV2aWNlLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoVmFsdWUs
dWludCB1bkJ1ZmZlclNpemUpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9
IEZuVGFibGUuR2V0VnVsa2FuRGV2aWNlRXh0ZW5zaW9uc1JlcXVpcmVkKHBQaHlzaWNhbERldmlj
ZSxwY2hWYWx1ZSx1bkJ1ZmZlclNpemUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KK30KKworCitwdWJsaWMgY2xhc3MgQ1ZST3ZlcmxheQoreworICAgICAgIElWUk92
ZXJsYXkgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJPdmVybGF5KEludFB0ciBwSW50ZXJm
YWNlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZSA9IChJVlJPdmVybGF5KU1hcnNo
YWwuUHRyVG9TdHJ1Y3R1cmUocEludGVyZmFjZSwgdHlwZW9mKElWUk92ZXJsYXkpKTsKKyAgICAg
ICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBGaW5kT3ZlcmxheShzdHJpbmcgcGNo
T3ZlcmxheUtleSxyZWYgdWxvbmcgcE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAg
ICAgICBwT3ZlcmxheUhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkZpbmRPdmVybGF5KHBjaE92ZXJsYXlLZXkscmVmIHBPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBDcmVhdGVPdmVybGF5KHN0cmluZyBwY2hPdmVybGF5S2V5LHN0
cmluZyBwY2hPdmVybGF5RnJpZW5kbHlOYW1lLHJlZiB1bG9uZyBwT3ZlcmxheUhhbmRsZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHBPdmVybGF5SGFuZGxlID0gMDsKKyAgICAgICAgICAgICAg
RVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuQ3JlYXRlT3ZlcmxheShwY2hPdmVybGF5
S2V5LHBjaE92ZXJsYXlGcmllbmRseU5hbWUscmVmIHBPdmVybGF5SGFuZGxlKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBEZXN0cm95T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5EZXN0cm95T3Zlcmxh
eSh1bE92ZXJsYXlIYW5kbGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldEhpZ2hRdWFsaXR5T3ZlcmxheSh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRIaWdoUXVhbGl0eU92ZXJsYXkodWxPdmVybGF5SGFu
ZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIHVsb25nIEdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpCisgICAgICAgeworICAgICAgICAgICAg
ICB1bG9uZyByZXN1bHQgPSBGblRhYmxlLkdldEhpZ2hRdWFsaXR5T3ZlcmxheSgpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRP
dmVybGF5S2V5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxTeXN0ZW0uVGV4dC5TdHJpbmdCdWlsZGVy
IHBjaFZhbHVlLHVpbnQgdW5CdWZmZXJTaXplLHJlZiBFVlJPdmVybGF5RXJyb3IgcEVycm9yKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlL
ZXkodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQg
R2V0T3ZlcmxheU5hbWUodWxvbmcgdWxPdmVybGF5SGFuZGxlLFN5c3RlbS5UZXh0LlN0cmluZ0J1
aWxkZXIgcGNoVmFsdWUsdWludCB1bkJ1ZmZlclNpemUscmVmIEVWUk92ZXJsYXlFcnJvciBwRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zl
cmxheU5hbWUodWxPdmVybGF5SGFuZGxlLHBjaFZhbHVlLHVuQnVmZmVyU2l6ZSxyZWYgcEVycm9y
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5SW1hZ2VEYXRhKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxJbnRQdHIgcHZCdWZmZXIsdWludCB1bkJ1ZmZlclNpemUscmVmIHVpbnQgcHVuV2lkdGgscmVm
IHVpbnQgcHVuSGVpZ2h0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHVuV2lkdGggPSAwOwor
ICAgICAgICAgICAgICBwdW5IZWlnaHQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5SW1hZ2VEYXRhKHVsT3ZlcmxheUhhbmRsZSxw
dkJ1ZmZlcix1bkJ1ZmZlclNpemUscmVmIHB1bldpZHRoLHJlZiBwdW5IZWlnaHQpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgc3RyaW5nIEdl
dE92ZXJsYXlFcnJvck5hbWVGcm9tRW51bShFVlJPdmVybGF5RXJyb3IgZXJyb3IpCisgICAgICAg
eworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5RXJyb3JO
YW1lRnJvbUVudW0oZXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0
cmluZ0Fuc2kocmVzdWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJv
ciBTZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1aW50IHVuUElE
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2V0T3ZlcmxheVJlbmRlcmluZ1BpZCh1bE92ZXJsYXlIYW5kbGUsdW5QSUQpOworICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRP
dmVybGF5UmVuZGVyaW5nUGlkKHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5UmVuZGVyaW5nUGlkKHVs
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVy
bGF5SGFuZGxlLFZST3ZlcmxheUZsYWdzIGVPdmVybGF5RmxhZyxib29sIGJFbmFibGVkKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0
T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5RmxhZyxiRW5hYmxlZCk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheUZsYWcodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3ZlcmxheUZs
YWdzIGVPdmVybGF5RmxhZyxyZWYgYm9vbCBwYkVuYWJsZWQpCisgICAgICAgeworICAgICAgICAg
ICAgICBwYkVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJl
c3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWcodWxPdmVybGF5SGFuZGxlLGVPdmVybGF5Rmxh
ZyxyZWYgcGJFbmFibGVkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5Q29sb3IodWxvbmcgdWxP
dmVybGF5SGFuZGxlLGZsb2F0IGZSZWQsZmxvYXQgZkdyZWVuLGZsb2F0IGZCbHVlKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3Zl
cmxheUNvbG9yKHVsT3ZlcmxheUhhbmRsZSxmUmVkLGZHcmVlbixmQmx1ZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheUNvbG9yKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgZmxvYXQgcGZSZWQs
cmVmIGZsb2F0IHBmR3JlZW4scmVmIGZsb2F0IHBmQmx1ZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHBmUmVkID0gMDsKKyAgICAgICAgICAgICAgcGZHcmVlbiA9IDA7CisgICAgICAgICAgICAg
IHBmQmx1ZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlDb2xvcih1bE92ZXJsYXlIYW5kbGUscmVmIHBmUmVkLHJlZiBwZkdyZWVu
LHJlZiBwZkJsdWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJs
YXlIYW5kbGUsZmxvYXQgZkFscGhhKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxm
QWxwaGEpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlBbHBoYSh1bG9uZyB1bE92ZXJsYXlIYW5k
bGUscmVmIGZsb2F0IHBmQWxwaGEpCisgICAgICAgeworICAgICAgICAgICAgICBwZkFscGhhID0g
MDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3Zl
cmxheUFscGhhKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGZBbHBoYSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmVGV4ZWxBc3Bl
Y3QpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLGZUZXhlbEFzcGVjdCk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheVRleGVsQXNwZWN0KHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgZmxvYXQgcGZUZXhlbEFzcGVjdCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBmVGV4
ZWxBc3BlY3QgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5HZXRPdmVybGF5VGV4ZWxBc3BlY3QodWxPdmVybGF5SGFuZGxlLHJlZiBwZlRleGVsQXNw
ZWN0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVi
bGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5U29ydE9yZGVyKHVsb25nIHVsT3ZlcmxheUhh
bmRsZSx1aW50IHVuU29ydE9yZGVyKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3Zlcmxh
eUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheVNvcnRPcmRlcih1bE92ZXJsYXlIYW5k
bGUsdW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0K
KyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlTb3J0T3JkZXIodWxvbmcg
dWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1blNvcnRPcmRlcikKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHB1blNvcnRPcmRlciA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciBy
ZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlTb3J0T3JkZXIodWxPdmVybGF5SGFuZGxlLHJlZiBw
dW5Tb3J0T3JkZXIpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAg
ICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKHVsb25n
IHVsT3ZlcmxheUhhbmRsZSxmbG9hdCBmV2lkdGhJbk1ldGVycykKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlXaWR0aElu
TWV0ZXJzKHVsT3ZlcmxheUhhbmRsZSxmV2lkdGhJbk1ldGVycyk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgR2V0
T3ZlcmxheVdpZHRoSW5NZXRlcnModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBmbG9hdCBwZldp
ZHRoSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBwZldpZHRoSW5NZXRlcnMgPSAw
OworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVy
bGF5V2lkdGhJbk1ldGVycyh1bE92ZXJsYXlIYW5kbGUscmVmIHBmV2lkdGhJbk1ldGVycyk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsZmxvYXQgZk1pbkRpc3RhbmNlSW5NZXRlcnMsZmxvYXQgZk1heERp
c3RhbmNlSW5NZXRlcnMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3Ig
cmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5QXV0b0N1cnZlRGlzdGFuY2VSYW5nZUluTWV0ZXJz
KHVsT3ZlcmxheUhhbmRsZSxmTWluRGlzdGFuY2VJbk1ldGVycyxmTWF4RGlzdGFuY2VJbk1ldGVy
cyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyBFVlJPdmVybGF5RXJyb3IgR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVy
cyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIGZsb2F0IHBmTWluRGlzdGFuY2VJbk1ldGVycyxy
ZWYgZmxvYXQgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
cGZNaW5EaXN0YW5jZUluTWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgcGZNYXhEaXN0YW5jZUlu
TWV0ZXJzID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuR2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyh1bE92ZXJsYXlIYW5k
bGUscmVmIHBmTWluRGlzdGFuY2VJbk1ldGVycyxyZWYgcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5
SGFuZGxlLEVDb2xvclNwYWNlIGVUZXh0dXJlQ29sb3JTcGFjZSkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUZXh0dXJl
Q29sb3JTcGFjZSh1bE92ZXJsYXlIYW5kbGUsZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBFQ29sb3JTcGFjZSBwZVRleHR1cmVDb2xvclNwYWNlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheVRleHR1cmVDb2xv
clNwYWNlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUZXh0dXJlQ29sb3JTcGFjZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5
RXJyb3IgU2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBW
UlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VGV4dHVy
ZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVy
bGF5RXJyb3IgR2V0T3ZlcmxheVRleHR1cmVCb3VuZHModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJl
ZiBWUlRleHR1cmVCb3VuZHNfdCBwT3ZlcmxheVRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAg
ICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4
dHVyZUJvdW5kcyh1bE92ZXJsYXlIYW5kbGUscmVmIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgR2V0T3ZlcmxheVRyYW5zZm9ybVR5cGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
LHJlZiBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlIHBlVHJhbnNmb3JtVHlwZSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlU
cmFuc2Zvcm1UeXBlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcGVUcmFuc2Zvcm1UeXBlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJs
YXlFcnJvciBTZXRPdmVybGF5VHJhbnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxl
LEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixyZWYgSG1kTWF0cml4MzRf
dCBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJsYXlUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAg
ICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TZXRPdmVybGF5VHJhbnNm
b3JtQWJzb2x1dGUodWxPdmVybGF5SGFuZGxlLGVUcmFja2luZ09yaWdpbixyZWYgcG1hdFRyYWNr
aW5nT3JpZ2luVG9PdmVybGF5VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJh
bnNmb3JtQWJzb2x1dGUodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBFVHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiBwZVRyYWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09y
aWdpblRvT3ZlcmxheVRyYW5zZm9ybSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJs
YXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSh1bE92
ZXJsYXlIYW5kbGUscmVmIHBlVHJhY2tpbmdPcmlnaW4scmVmIHBtYXRUcmFja2luZ09yaWdpblRv
T3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3ZlcmxheVRyYW5zZm9ybVRyYWNr
ZWREZXZpY2VSZWxhdGl2ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1blRyYWNrZWREZXZp
Y2UscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zvcm0p
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5TZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKHVsT3ZlcmxheUhhbmRs
ZSx1blRyYWNrZWREZXZpY2UscmVmIHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3Jt
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZl
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5UcmFja2VkRGV2aWNlLHJlZiBIbWRN
YXRyaXgzNF90IHBtYXRUcmFja2VkRGV2aWNlVG9PdmVybGF5VHJhbnNmb3JtKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcHVuVHJhY2tlZERldmljZSA9IDA7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2
aWNlUmVsYXRpdmUodWxPdmVybGF5SGFuZGxlLHJlZiBwdW5UcmFja2VkRGV2aWNlLHJlZiBwbWF0
VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSk7CisgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0T3Zlcmxh
eVRyYW5zZm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHVp
bnQgdW5EZXZpY2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlUcmFu
c2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSx1bkRldmljZUluZGV4
LHBjaENvbXBvbmVudE5hbWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlUcmFuc2Zvcm1UcmFj
a2VkRGV2aWNlQ29tcG9uZW50KHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBwdW5EZXZp
Y2VJbmRleCxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSx1aW50IHVuQ29tcG9uZW50TmFtZVNpemUp
CisgICAgICAgeworICAgICAgICAgICAgICBwdW5EZXZpY2VJbmRleCA9IDA7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldE92ZXJsYXlUcmFuc2Zvcm1U
cmFja2VkRGV2aWNlQ29tcG9uZW50KHVsT3ZlcmxheUhhbmRsZSxyZWYgcHVuRGV2aWNlSW5kZXgs
cGNoQ29tcG9uZW50TmFtZSx1bkNvbXBvbmVudE5hbWVTaXplKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTaG93
T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisgICAgICAgeworICAgICAgICAgICAgICBF
VlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93T3ZlcmxheSh1bE92ZXJsYXlIYW5k
bGUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEhpZGVPdmVybGF5KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkhp
ZGVPdmVybGF5KHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIElzT3ZlcmxheVZpc2libGUodWxvbmcgdWxP
dmVybGF5SGFuZGxlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRh
YmxlLklzT3ZlcmxheVZpc2libGUodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRU
cmFuc2Zvcm1Gb3JPdmVybGF5Q29vcmRpbmF0ZXModWxvbmcgdWxPdmVybGF5SGFuZGxlLEVUcmFj
a2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbixIbWRWZWN0b3IyX3QgY29vcmRpbmF0
ZXNJbk92ZXJsYXkscmVmIEhtZE1hdHJpeDM0X3QgcG1hdFRyYW5zZm9ybSkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldFRyYW5zZm9y
bUZvck92ZXJsYXlDb29yZGluYXRlcyh1bE92ZXJsYXlIYW5kbGUsZVRyYWNraW5nT3JpZ2luLGNv
b3JkaW5hdGVzSW5PdmVybGF5LHJlZiBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUG9sbE5leHRPdmVybGF5
RXZlbnQodWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiBWUkV2ZW50X3QgcEV2ZW50LHVpbnQgdW5j
YlZSRXZlbnQpCisgICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUu
UG9sbE5leHRPdmVybGF5RXZlbnQodWxPdmVybGF5SGFuZGxlLHJlZiBwRXZlbnQsdW5jYlZSRXZl
bnQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgRVZST3ZlcmxheUVycm9yIEdldE92ZXJsYXlJbnB1dE1ldGhvZCh1bG9uZyB1bE92ZXJsYXlI
YW5kbGUscmVmIFZST3ZlcmxheUlucHV0TWV0aG9kIHBlSW5wdXRNZXRob2QpCisgICAgICAgewor
ICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5
SW5wdXRNZXRob2QodWxPdmVybGF5SGFuZGxlLHJlZiBwZUlucHV0TWV0aG9kKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlF
cnJvciBTZXRPdmVybGF5SW5wdXRNZXRob2QodWxvbmcgdWxPdmVybGF5SGFuZGxlLFZST3Zlcmxh
eUlucHV0TWV0aG9kIGVJbnB1dE1ldGhvZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92
ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlJbnB1dE1ldGhvZCh1bE92ZXJs
YXlIYW5kbGUsZUlucHV0TWV0aG9kKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBHZXRPdmVybGF5TW91c2VTY2Fs
ZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIEhtZFZlY3RvcjJfdCBwdmVjTW91c2VTY2FsZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxl
LkdldE92ZXJsYXlNb3VzZVNjYWxlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcHZlY01vdXNlU2NhbGUp
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
RVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlNb3VzZVNjYWxlKHVsb25nIHVsT3ZlcmxheUhhbmRs
ZSxyZWYgSG1kVmVjdG9yMl90IHB2ZWNNb3VzZVNjYWxlKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU1vdXNlU2NhbGUo
dWxPdmVybGF5SGFuZGxlLHJlZiBwdmVjTW91c2VTY2FsZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBib29sIENvbXB1dGVPdmVybGF5SW50
ZXJzZWN0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9u
UGFyYW1zX3QgcFBhcmFtcyxyZWYgVlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190IHBSZXN1
bHRzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkNvbXB1
dGVPdmVybGF5SW50ZXJzZWN0aW9uKHVsT3ZlcmxheUhhbmRsZSxyZWYgcFBhcmFtcyxyZWYgcFJl
c3VsdHMpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgYm9vbCBIYW5kbGVDb250cm9sbGVyT3ZlcmxheUludGVyYWN0aW9uQXNNb3VzZSh1bG9u
ZyB1bE92ZXJsYXlIYW5kbGUsdWludCB1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5IYW5kbGVDb250cm9sbGVyT3Zl
cmxheUludGVyYWN0aW9uQXNNb3VzZSh1bE92ZXJsYXlIYW5kbGUsdW5Db250cm9sbGVyRGV2aWNl
SW5kZXgpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgYm9vbCBJc0hvdmVyVGFyZ2V0T3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUpCisg
ICAgICAgeworICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuSXNIb3ZlclRhcmdl
dE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdldEdhbWVwYWRGb2N1c092ZXJsYXkoKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgdWxvbmcgcmVzdWx0ID0gRm5UYWJsZS5HZXRHYW1lcGFk
Rm9jdXNPdmVybGF5KCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
ICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0R2FtZXBhZEZvY3VzT3ZlcmxheSh1bG9u
ZyB1bE5ld0ZvY3VzT3ZlcmxheSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlF
cnJvciByZXN1bHQgPSBGblRhYmxlLlNldEdhbWVwYWRGb2N1c092ZXJsYXkodWxOZXdGb2N1c092
ZXJsYXkpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgRVZST3ZlcmxheUVycm9yIFNldE92ZXJsYXlOZWlnaGJvcihFT3ZlcmxheURpcmVjdGlv
biBlRGlyZWN0aW9uLHVsb25nIHVsRnJvbSx1bG9uZyB1bFRvKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0T3ZlcmxheU5laWdoYm9y
KGVEaXJlY3Rpb24sdWxGcm9tLHVsVG8pOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIE1vdmVHYW1lcGFkRm9jdXNU
b05laWdoYm9yKEVPdmVybGF5RGlyZWN0aW9uIGVEaXJlY3Rpb24sdWxvbmcgdWxGcm9tKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuTW92
ZUdhbWVwYWRGb2N1c1RvTmVpZ2hib3IoZURpcmVjdGlvbix1bEZyb20pOworICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9y
IFNldE92ZXJsYXlUZXh0dXJlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgVGV4dHVyZV90IHBU
ZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuU2V0T3ZlcmxheVRleHR1cmUodWxPdmVybGF5SGFuZGxlLHJlZiBwVGV4dHVyZSk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgQ2xlYXJPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUp
CisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5UYWJs
ZS5DbGVhck92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2V0
T3ZlcmxheVJhdyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUsSW50UHRyIHB2QnVmZmVyLHVpbnQgdW5X
aWR0aCx1aW50IHVuSGVpZ2h0LHVpbnQgdW5EZXB0aCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlNldE92ZXJsYXlSYXcodWxPdmVybGF5
SGFuZGxlLHB2QnVmZmVyLHVuV2lkdGgsdW5IZWlnaHQsdW5EZXB0aCk7CisgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3Ig
U2V0T3ZlcmxheUZyb21GaWxlKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxzdHJpbmcgcGNoRmlsZVBh
dGgpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJyb3IgcmVzdWx0ID0gRm5U
YWJsZS5TZXRPdmVybGF5RnJvbUZpbGUodWxPdmVybGF5SGFuZGxlLHBjaEZpbGVQYXRoKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUk92
ZXJsYXlFcnJvciBHZXRPdmVybGF5VGV4dHVyZSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIElu
dFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSxJbnRQdHIgcE5hdGl2ZVRleHR1cmVSZWYscmVmIHVp
bnQgcFdpZHRoLHJlZiB1aW50IHBIZWlnaHQscmVmIHVpbnQgcE5hdGl2ZUZvcm1hdCxyZWYgRVRl
eHR1cmVUeXBlIHBBUElUeXBlLHJlZiBFQ29sb3JTcGFjZSBwQ29sb3JTcGFjZSxyZWYgVlJUZXh0
dXJlQm91bmRzX3QgcFRleHR1cmVCb3VuZHMpCisgICAgICAgeworICAgICAgICAgICAgICBwV2lk
dGggPSAwOworICAgICAgICAgICAgICBwSGVpZ2h0ID0gMDsKKyAgICAgICAgICAgICAgcE5hdGl2
ZUZvcm1hdCA9IDA7CisgICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRh
YmxlLkdldE92ZXJsYXlUZXh0dXJlKHVsT3ZlcmxheUhhbmRsZSxyZWYgcE5hdGl2ZVRleHR1cmVI
YW5kbGUscE5hdGl2ZVRleHR1cmVSZWYscmVmIHBXaWR0aCxyZWYgcEhlaWdodCxyZWYgcE5hdGl2
ZUZvcm1hdCxyZWYgcEFQSVR5cGUscmVmIHBDb2xvclNwYWNlLHJlZiBwVGV4dHVyZUJvdW5kcyk7
CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBF
VlJPdmVybGF5RXJyb3IgUmVsZWFzZU5hdGl2ZU92ZXJsYXlIYW5kbGUodWxvbmcgdWxPdmVybGF5
SGFuZGxlLEludFB0ciBwTmF0aXZlVGV4dHVyZUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlbGVhc2VOYXRpdmVPdmVybGF5
SGFuZGxlKHVsT3ZlcmxheUhhbmRsZSxwTmF0aXZlVGV4dHVyZUhhbmRsZSk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJPdmVybGF5RXJy
b3IgR2V0T3ZlcmxheVRleHR1cmVTaXplKHVsb25nIHVsT3ZlcmxheUhhbmRsZSxyZWYgdWludCBw
V2lkdGgscmVmIHVpbnQgcEhlaWdodCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBXaWR0aCA9
IDA7CisgICAgICAgICAgICAgIHBIZWlnaHQgPSAwOworICAgICAgICAgICAgICBFVlJPdmVybGF5
RXJyb3IgcmVzdWx0ID0gRm5UYWJsZS5HZXRPdmVybGF5VGV4dHVyZVNpemUodWxPdmVybGF5SGFu
ZGxlLHJlZiBwV2lkdGgscmVmIHBIZWlnaHQpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIENyZWF0ZURhc2hib2Fy
ZE92ZXJsYXkoc3RyaW5nIHBjaE92ZXJsYXlLZXksc3RyaW5nIHBjaE92ZXJsYXlGcmllbmRseU5h
bWUscmVmIHVsb25nIHBNYWluSGFuZGxlLHJlZiB1bG9uZyBwVGh1bWJuYWlsSGFuZGxlKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcE1haW5IYW5kbGUgPSAwOworICAgICAgICAgICAgICBwVGh1
bWJuYWlsSGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9
IEZuVGFibGUuQ3JlYXRlRGFzaGJvYXJkT3ZlcmxheShwY2hPdmVybGF5S2V5LHBjaE92ZXJsYXlG
cmllbmRseU5hbWUscmVmIHBNYWluSGFuZGxlLHJlZiBwVGh1bWJuYWlsSGFuZGxlKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNE
YXNoYm9hcmRWaXNpYmxlKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
Rm5UYWJsZS5Jc0Rhc2hib2FyZFZpc2libGUoKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5
KHVsb25nIHVsT3ZlcmxheUhhbmRsZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVz
dWx0ID0gRm5UYWJsZS5Jc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkodWxPdmVybGF5SGFuZGxlKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVW
Uk92ZXJsYXlFcnJvciBTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzKHVsb25nIHVsT3Zl
cmxheUhhbmRsZSx1aW50IHVuUHJvY2Vzc0lkKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZS
T3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuU2V0RGFzaGJvYXJkT3ZlcmxheVNjZW5lUHJv
Y2Vzcyh1bE92ZXJsYXlIYW5kbGUsdW5Qcm9jZXNzSWQpOworICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZST3ZlcmxheUVycm9yIEdldERhc2hi
b2FyZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxvbmcgdWxPdmVybGF5SGFuZGxlLHJlZiB1aW50IHB1
blByb2Nlc3NJZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1blByb2Nlc3NJZCA9IDA7Cisg
ICAgICAgICAgICAgIEVWUk92ZXJsYXlFcnJvciByZXN1bHQgPSBGblRhYmxlLkdldERhc2hib2Fy
ZE92ZXJsYXlTY2VuZVByb2Nlc3ModWxPdmVybGF5SGFuZGxlLHJlZiBwdW5Qcm9jZXNzSWQpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9p
ZCBTaG93RGFzaGJvYXJkKHN0cmluZyBwY2hPdmVybGF5VG9TaG93KQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5TaG93RGFzaGJvYXJkKHBjaE92ZXJsYXlUb1Nob3cpOworICAgICAg
IH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRQcmltYXJ5RGFzaGJvYXJkRGV2aWNlKCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRQcmltYXJ5RGFzaGJv
YXJkRGV2aWNlKCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAg
ICAgIHB1YmxpYyBFVlJPdmVybGF5RXJyb3IgU2hvd0tleWJvYXJkKGludCBlSW5wdXRNb2RlLGlu
dCBlTGluZUlucHV0TW9kZSxzdHJpbmcgcGNoRGVzY3JpcHRpb24sdWludCB1bkNoYXJNYXgsc3Ry
aW5nIHBjaEV4aXN0aW5nVGV4dCxib29sIGJVc2VNaW5pbWFsTW9kZSx1bG9uZyB1VXNlclZhbHVl
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuU2hvd0tleWJvYXJkKGVJbnB1dE1vZGUsZUxpbmVJbnB1dE1vZGUscGNoRGVzY3JpcHRpb24s
dW5DaGFyTWF4LHBjaEV4aXN0aW5nVGV4dCxiVXNlTWluaW1hbE1vZGUsdVVzZXJWYWx1ZSk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJP
dmVybGF5RXJyb3IgU2hvd0tleWJvYXJkRm9yT3ZlcmxheSh1bG9uZyB1bE92ZXJsYXlIYW5kbGUs
aW50IGVJbnB1dE1vZGUsaW50IGVMaW5lSW5wdXRNb2RlLHN0cmluZyBwY2hEZXNjcmlwdGlvbix1
aW50IHVuQ2hhck1heCxzdHJpbmcgcGNoRXhpc3RpbmdUZXh0LGJvb2wgYlVzZU1pbmltYWxNb2Rl
LHVsb25nIHVVc2VyVmFsdWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJPdmVybGF5RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5TaG93S2V5Ym9hcmRGb3JPdmVybGF5KHVsT3ZlcmxheUhhbmRs
ZSxlSW5wdXRNb2RlLGVMaW5lSW5wdXRNb2RlLHBjaERlc2NyaXB0aW9uLHVuQ2hhck1heCxwY2hF
eGlzdGluZ1RleHQsYlVzZU1pbmltYWxNb2RlLHVVc2VyVmFsdWUpOworICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRLZXlib2FyZFRl
eHQoU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRlciBwY2hUZXh0LHVpbnQgY2NoVGV4dCkKKyAgICAg
ICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRLZXlib2FyZFRleHQo
cGNoVGV4dCxjY2hUZXh0KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9
CisgICAgICAgcHVibGljIHZvaWQgSGlkZUtleWJvYXJkKCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIEZuVGFibGUuSGlkZUtleWJvYXJkKCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB2b2lk
IFNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZVRy
YWNraW5nT3JpZ2luLHJlZiBIbWRNYXRyaXgzNF90IHBtYXRUcmFja2luZ09yaWdpblRvS2V5Ym9h
cmRUcmFuc2Zvcm0pCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEtleWJvYXJk
VHJhbnNmb3JtQWJzb2x1dGUoZVRyYWNraW5nT3JpZ2luLHJlZiBwbWF0VHJhY2tpbmdPcmlnaW5U
b0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0S2V5
Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkodWxvbmcgdWxPdmVybGF5SGFuZGxlLEhtZFJlY3QyX3Qg
YXZvaWRSZWN0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5TZXRLZXlib2FyZFBv
c2l0aW9uRm9yT3ZlcmxheSh1bE92ZXJsYXlIYW5kbGUsYXZvaWRSZWN0KTsKKyAgICAgICB9Cisg
ICAgICAgcHVibGljIEVWUk92ZXJsYXlFcnJvciBTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayh1
bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIFZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRp
dmVfdCBwTWFza1ByaW1pdGl2ZXMsdWludCB1bk51bU1hc2tQcmltaXRpdmVzLHVpbnQgdW5Qcmlt
aXRpdmVTaXplKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuU2V0T3ZlcmxheUludGVyc2VjdGlvbk1hc2sodWxPdmVybGF5SGFuZGxlLHJl
ZiBwTWFza1ByaW1pdGl2ZXMsdW5OdW1NYXNrUHJpbWl0aXZlcyx1blByaW1pdGl2ZVNpemUpOwor
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZS
T3ZlcmxheUVycm9yIEdldE92ZXJsYXlGbGFncyh1bG9uZyB1bE92ZXJsYXlIYW5kbGUscmVmIHVp
bnQgcEZsYWdzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcEZsYWdzID0gMDsKKyAgICAgICAg
ICAgICAgRVZST3ZlcmxheUVycm9yIHJlc3VsdCA9IEZuVGFibGUuR2V0T3ZlcmxheUZsYWdzKHVs
T3ZlcmxheUhhbmRsZSxyZWYgcEZsYWdzKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICB9CisgICAgICAgcHVibGljIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSBTaG93TWVz
c2FnZU92ZXJsYXkoc3RyaW5nIHBjaFRleHQsc3RyaW5nIHBjaENhcHRpb24sc3RyaW5nIHBjaEJ1
dHRvbjBUZXh0LHN0cmluZyBwY2hCdXR0b24xVGV4dCxzdHJpbmcgcGNoQnV0dG9uMlRleHQsc3Ry
aW5nIHBjaEJ1dHRvbjNUZXh0KQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJNZXNzYWdlT3Zl
cmxheVJlc3BvbnNlIHJlc3VsdCA9IEZuVGFibGUuU2hvd01lc3NhZ2VPdmVybGF5KHBjaFRleHQs
cGNoQ2FwdGlvbixwY2hCdXR0b24wVGV4dCxwY2hCdXR0b24xVGV4dCxwY2hCdXR0b24yVGV4dCxw
Y2hCdXR0b24zVGV4dCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQor
fQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZW5kZXJNb2RlbHMKK3sKKyAgICAgICBJVlJSZW5kZXJN
b2RlbHMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZW5kZXJNb2RlbHMoSW50UHRyIHBJ
bnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUlJlbmRlck1v
ZGVscylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJVlJSZW5kZXJN
b2RlbHMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJlbmRlck1vZGVsRXJyb3IgTG9h
ZFJlbmRlck1vZGVsX0FzeW5jKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUscmVmIEludFB0ciBw
cFJlbmRlck1vZGVsKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJv
ciByZXN1bHQgPSBGblRhYmxlLkxvYWRSZW5kZXJNb2RlbF9Bc3luYyhwY2hSZW5kZXJNb2RlbE5h
bWUscmVmIHBwUmVuZGVyTW9kZWwpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlUmVuZGVyTW9kZWwoSW50UHRyIHBSZW5kZXJN
b2RlbCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRnJlZVJlbmRlck1vZGVsKHBS
ZW5kZXJNb2RlbCk7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJSZW5kZXJNb2RlbEVycm9y
IExvYWRUZXh0dXJlX0FzeW5jKGludCB0ZXh0dXJlSWQscmVmIEludFB0ciBwcFRleHR1cmUpCisg
ICAgICAgeworICAgICAgICAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yIHJlc3VsdCA9IEZuVGFi
bGUuTG9hZFRleHR1cmVfQXN5bmModGV4dHVyZUlkLHJlZiBwcFRleHR1cmUpOworICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBGcmVlVGV4
dHVyZShJbnRQdHIgcFRleHR1cmUpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLkZy
ZWVUZXh0dXJlKHBUZXh0dXJlKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlJlbmRlck1v
ZGVsRXJyb3IgTG9hZFRleHR1cmVEM0QxMV9Bc3luYyhpbnQgdGV4dHVyZUlkLEludFB0ciBwRDNE
MTFEZXZpY2UscmVmIEludFB0ciBwcEQzRDExVGV4dHVyZTJEKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRUZXh0dXJlRDNE
MTFfQXN5bmModGV4dHVyZUlkLHBEM0QxMURldmljZSxyZWYgcHBEM0QxMVRleHR1cmUyRCk7Cisg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJS
ZW5kZXJNb2RlbEVycm9yIExvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKGludCB0ZXh0dXJlSWQs
SW50UHRyIHBEc3RUZXh0dXJlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSUmVuZGVyTW9k
ZWxFcnJvciByZXN1bHQgPSBGblRhYmxlLkxvYWRJbnRvVGV4dHVyZUQzRDExX0FzeW5jKHRleHR1
cmVJZCxwRHN0VGV4dHVyZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAg
fQorICAgICAgIHB1YmxpYyB2b2lkIEZyZWVUZXh0dXJlRDNEMTEoSW50UHRyIHBEM0QxMVRleHR1
cmUyRCkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuRnJlZVRleHR1cmVEM0QxMShw
RDNEMTFUZXh0dXJlMkQpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgdWludCBHZXRSZW5kZXJN
b2RlbE5hbWUodWludCB1blJlbmRlck1vZGVsSW5kZXgsU3lzdGVtLlRleHQuU3RyaW5nQnVpbGRl
ciBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1blJlbmRlck1vZGVsTmFtZUxlbikKKyAgICAgICB7
CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE5hbWUo
dW5SZW5kZXJNb2RlbEluZGV4LHBjaFJlbmRlck1vZGVsTmFtZSx1blJlbmRlck1vZGVsTmFtZUxl
bik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1Ymxp
YyB1aW50IEdldFJlbmRlck1vZGVsQ291bnQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWlu
dCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsQ291bnQoKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgR2V0Q29tcG9uZW50
Q291bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnRDb3VudChwY2hSZW5kZXJNb2RlbE5h
bWUpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJs
aWMgdWludCBHZXRDb21wb25lbnROYW1lKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsdWludCB1
bkNvbXBvbmVudEluZGV4LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoQ29tcG9uZW50TmFt
ZSx1aW50IHVuQ29tcG9uZW50TmFtZUxlbikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQg
cmVzdWx0ID0gRm5UYWJsZS5HZXRDb21wb25lbnROYW1lKHBjaFJlbmRlck1vZGVsTmFtZSx1bkNv
bXBvbmVudEluZGV4LHBjaENvbXBvbmVudE5hbWUsdW5Db21wb25lbnROYW1lTGVuKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVsb25nIEdl
dENvbXBvbmVudEJ1dHRvbk1hc2soc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNo
Q29tcG9uZW50TmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVsb25nIHJlc3VsdCA9IEZu
VGFibGUuR2V0Q29tcG9uZW50QnV0dG9uTWFzayhwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9u
ZW50TmFtZSk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAg
IHB1YmxpYyB1aW50IEdldENvbXBvbmVudFJlbmRlck1vZGVsTmFtZShzdHJpbmcgcGNoUmVuZGVy
TW9kZWxOYW1lLHN0cmluZyBwY2hDb21wb25lbnROYW1lLFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxk
ZXIgcGNoQ29tcG9uZW50UmVuZGVyTW9kZWxOYW1lLHVpbnQgdW5Db21wb25lbnRSZW5kZXJNb2Rl
bE5hbWVMZW4pCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3VsdCA9IEZuVGFibGUu
R2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25l
bnROYW1lLHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSx1bkNvbXBvbmVudFJlbmRlck1vZGVs
TmFtZUxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorLy8gVGhp
cyBpcyBhIHRlcnJpYmxlIGhhY2sgdG8gd29ya2Fyb3VuZCB0aGUgZmFjdCB0aGF0IFZSQ29udHJv
bGxlclN0YXRlX3Qgd2FzCisvLyBvcmlnaW5hbGx5IG1pcy1jb21waWxlZCB3aXRoIHRoZSB3cm9u
ZyBwYWNraW5nIGZvciBMaW51eCBhbmQgT1NYLgorICAgICAgIFtVbm1hbmFnZWRGdW5jdGlvblBv
aW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uU3RkQ2FsbCldCisgICAgICAgaW50ZXJuYWwgZGVsZWdh
dGUgYm9vbCBfR2V0Q29tcG9uZW50U3RhdGVQYWNrZWQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFt
ZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQg
cENvbnRyb2xsZXJTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCBw
U3RhdGUscmVmIFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgcENvbXBvbmVudFN0YXRlKTsK
KyAgICAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuRXhwbGljaXQpXQorICAgICAgIHN0cnVj
dCBHZXRDb21wb25lbnRTdGF0ZVVuaW9uCisgICAgICAgeworICAgICAgICAgICAgICBbRmllbGRP
ZmZzZXQoMCldCisgICAgICAgICAgICAgIHB1YmxpYyBJVlJSZW5kZXJNb2RlbHMuX0dldENvbXBv
bmVudFN0YXRlIHBHZXRDb21wb25lbnRTdGF0ZTsKKyAgICAgICAgICAgICAgW0ZpZWxkT2Zmc2V0
KDApXQorICAgICAgICAgICAgICBwdWJsaWMgX0dldENvbXBvbmVudFN0YXRlUGFja2VkIHBHZXRD
b21wb25lbnRTdGF0ZVBhY2tlZDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgR2V0Q29t
cG9uZW50U3RhdGUoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50
TmFtZSxyZWYgVlJDb250cm9sbGVyU3RhdGVfdCBwQ29udHJvbGxlclN0YXRlLHJlZiBSZW5kZXJN
b2RlbF9Db250cm9sbGVyTW9kZV9TdGF0ZV90IHBTdGF0ZSxyZWYgUmVuZGVyTW9kZWxfQ29tcG9u
ZW50U3RhdGVfdCBwQ29tcG9uZW50U3RhdGUpCisgICAgICAgeworICAgICAgICAgICAgICBpZiAo
KFN5c3RlbS5FbnZpcm9ubWVudC5PU1ZlcnNpb24uUGxhdGZvcm0gPT0gU3lzdGVtLlBsYXRmb3Jt
SUQuTWFjT1NYKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTeXN0ZW0uRW52aXJv
bm1lbnQuT1NWZXJzaW9uLlBsYXRmb3JtID09IFN5c3RlbS5QbGF0Zm9ybUlELlVuaXgpKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBHZXRDb21wb25lbnRTdGF0ZVVuaW9u
IHU7CisgICAgICAgICAgICAgICAgICAgICBWUkNvbnRyb2xsZXJTdGF0ZV90X1BhY2tlZCBzdGF0
ZV9wYWNrZWQgPSBuZXcgVlJDb250cm9sbGVyU3RhdGVfdF9QYWNrZWQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlUGFja2VkID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICAgICAgIHUucEdldENvbXBvbmVudFN0YXRlID0gRm5UYWJsZS5HZXRDb21wb25lbnRTdGF0
ZTsKKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgcGFja2VkX3Jlc3VsdCA9IHUucEdldENvbXBv
bmVudFN0YXRlUGFja2VkKHBjaFJlbmRlck1vZGVsTmFtZSxwY2hDb21wb25lbnROYW1lLHJlZiBz
dGF0ZV9wYWNrZWQscmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKworICAgICAgICAg
ICAgICAgICAgICAgc3RhdGVfcGFja2VkLlVucGFjayhyZWYgcENvbnRyb2xsZXJTdGF0ZSk7Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFja2VkX3Jlc3VsdDsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IEZuVGFibGUuR2V0Q29tcG9uZW50U3RhdGUo
cGNoUmVuZGVyTW9kZWxOYW1lLHBjaENvbXBvbmVudE5hbWUscmVmIHBDb250cm9sbGVyU3RhdGUs
cmVmIHBTdGF0ZSxyZWYgcENvbXBvbmVudFN0YXRlKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgUmVuZGVyTW9kZWxIYXNDb21wb25l
bnQoc3RyaW5nIHBjaFJlbmRlck1vZGVsTmFtZSxzdHJpbmcgcGNoQ29tcG9uZW50TmFtZSkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gRm5UYWJsZS5SZW5kZXJNb2RlbEhh
c0NvbXBvbmVudChwY2hSZW5kZXJNb2RlbE5hbWUscGNoQ29tcG9uZW50TmFtZSk7CisgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyB1aW50IEdldFJl
bmRlck1vZGVsVGh1bWJuYWlsVVJMKHN0cmluZyBwY2hSZW5kZXJNb2RlbE5hbWUsU3lzdGVtLlRl
eHQuU3RyaW5nQnVpbGRlciBwY2hUaHVtYm5haWxVUkwsdWludCB1blRodW1ibmFpbFVSTExlbixy
ZWYgRVZSUmVuZGVyTW9kZWxFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
dWludCByZXN1bHQgPSBGblRhYmxlLkdldFJlbmRlck1vZGVsVGh1bWJuYWlsVVJMKHBjaFJlbmRl
ck1vZGVsTmFtZSxwY2hUaHVtYm5haWxVUkwsdW5UaHVtYm5haWxVUkxMZW4scmVmIHBlRXJyb3Ip
OworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBwdWJsaWMg
dWludCBHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aChzdHJpbmcgcGNoUmVuZGVyTW9kZWxOYW1l
LFN5c3RlbS5UZXh0LlN0cmluZ0J1aWxkZXIgcGNoT3JpZ2luYWxQYXRoLHVpbnQgdW5PcmlnaW5h
bFBhdGhMZW4scmVmIEVWUlJlbmRlck1vZGVsRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0
aChwY2hSZW5kZXJNb2RlbE5hbWUscGNoT3JpZ2luYWxQYXRoLHVuT3JpZ2luYWxQYXRoTGVuLHJl
ZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAg
ICAgcHVibGljIHN0cmluZyBHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKEVWUlJlbmRl
ck1vZGVsRXJyb3IgZXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBJbnRQdHIgcmVzdWx0
ID0gRm5UYWJsZS5HZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKGVycm9yKTsKKyAgICAg
ICAgICAgICAgcmV0dXJuIE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKHJlc3VsdCk7CisgICAgICAg
fQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJOb3RpZmljYXRpb25zCit7CisgICAgICAgSVZSTm90
aWZpY2F0aW9ucyBGblRhYmxlOworICAgICAgIGludGVybmFsIENWUk5vdGlmaWNhdGlvbnMoSW50
UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0gKElWUk5v
dGlmaWNhdGlvbnMpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZS
Tm90aWZpY2F0aW9ucykpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgRVZSTm90aWZpY2F0aW9u
RXJyb3IgQ3JlYXRlTm90aWZpY2F0aW9uKHVsb25nIHVsT3ZlcmxheUhhbmRsZSx1bG9uZyB1bFVz
ZXJWYWx1ZSxFVlJOb3RpZmljYXRpb25UeXBlIHR5cGUsc3RyaW5nIHBjaFRleHQsRVZSTm90aWZp
Y2F0aW9uU3R5bGUgc3R5bGUscmVmIE5vdGlmaWNhdGlvbkJpdG1hcF90IHBJbWFnZSxyZWYgdWlu
dCBwTm90aWZpY2F0aW9uSWQpCisgICAgICAgeworICAgICAgICAgICAgICBwTm90aWZpY2F0aW9u
SWQgPSAwOworICAgICAgICAgICAgICBFVlJOb3RpZmljYXRpb25FcnJvciByZXN1bHQgPSBGblRh
YmxlLkNyZWF0ZU5vdGlmaWNhdGlvbih1bE92ZXJsYXlIYW5kbGUsdWxVc2VyVmFsdWUsdHlwZSxw
Y2hUZXh0LHN0eWxlLHJlZiBwSW1hZ2UscmVmIHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJOb3RpZmljYXRp
b25FcnJvciBSZW1vdmVOb3RpZmljYXRpb24odWludCBub3RpZmljYXRpb25JZCkKKyAgICAgICB7
CisgICAgICAgICAgICAgIEVWUk5vdGlmaWNhdGlvbkVycm9yIHJlc3VsdCA9IEZuVGFibGUuUmVt
b3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICB9Cit9CisKKworcHVibGljIGNsYXNzIENWUlNldHRpbmdzCit7CisgICAg
ICAgSVZSU2V0dGluZ3MgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTZXR0aW5ncyhJbnRQ
dHIgcEludGVyZmFjZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2V0
dGluZ3MpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2V0dGlu
Z3MpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHN0cmluZyBHZXRTZXR0aW5nc0Vycm9yTmFt
ZUZyb21FbnVtKEVWUlNldHRpbmdzRXJyb3IgZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgSW50UHRyIHJlc3VsdCA9IEZuVGFibGUuR2V0U2V0dGluZ3NFcnJvck5hbWVGcm9tRW51bShl
RXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gTWFyc2hhbC5QdHJUb1N0cmluZ0Fuc2kocmVz
dWx0KTsKKyAgICAgICB9CisgICAgICAgcHVibGljIGJvb2wgU3luYyhib29sIGJGb3JjZSxyZWYg
RVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQgPSBGblRhYmxlLlN5bmMoYkZvcmNlLHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0Qm9vbChzdHJp
bmcgcGNoU2VjdGlvbixzdHJpbmcgcGNoU2V0dGluZ3NLZXksYm9vbCBiVmFsdWUscmVmIEVWUlNl
dHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUuU2V0
Qm9vbChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LGJWYWx1ZSxyZWYgcGVFcnJvcik7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyB2b2lkIFNldEludDMyKHN0cmluZyBwY2hTZWN0aW9uLHN0cmlu
ZyBwY2hTZXR0aW5nc0tleSxpbnQgblZhbHVlLHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJyb3Ip
CisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlNldEludDMyKHBjaFNlY3Rpb24scGNo
U2V0dGluZ3NLZXksblZhbHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IHZvaWQgU2V0RmxvYXQoc3RyaW5nIHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LGZs
b2F0IGZsVmFsdWUscmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAg
ICAgICAgICAgIEZuVGFibGUuU2V0RmxvYXQocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxmbFZh
bHVlLHJlZiBwZUVycm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgU2V0U3RyaW5n
KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxzdHJpbmcgcGNoVmFsdWUs
cmVmIEVWUlNldHRpbmdzRXJyb3IgcGVFcnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEZu
VGFibGUuU2V0U3RyaW5nKHBjaFNlY3Rpb24scGNoU2V0dGluZ3NLZXkscGNoVmFsdWUscmVmIHBl
RXJyb3IpOworICAgICAgIH0KKyAgICAgICBwdWJsaWMgYm9vbCBHZXRCb29sKHN0cmluZyBwY2hT
ZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9y
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBGblRhYmxlLkdldEJvb2wo
cGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxyZWYgcGVFcnJvcik7CisgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBpbnQgR2V0SW50MzIoc3RyaW5n
IHBjaFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBl
RXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRJ
bnQzMihwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIGZsb2F0IEdldEZsb2F0
KHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxyZWYgRVZSU2V0dGluZ3NF
cnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZmxvYXQgcmVzdWx0ID0gRm5U
YWJsZS5HZXRGbG9hdChwY2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQg
R2V0U3RyaW5nKHN0cmluZyBwY2hTZWN0aW9uLHN0cmluZyBwY2hTZXR0aW5nc0tleSxTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaFZhbHVlLHVpbnQgdW5WYWx1ZUxlbixyZWYgRVZSU2V0dGlu
Z3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRm5UYWJsZS5HZXRTdHJp
bmcocGNoU2VjdGlvbixwY2hTZXR0aW5nc0tleSxwY2hWYWx1ZSx1blZhbHVlTGVuLHJlZiBwZUVy
cm9yKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHZvaWQgUmVtb3ZlU2VjdGlvbihzdHJpbmcg
cGNoU2VjdGlvbixyZWYgRVZSU2V0dGluZ3NFcnJvciBwZUVycm9yKQorICAgICAgIHsKKyAgICAg
ICAgICAgICAgRm5UYWJsZS5SZW1vdmVTZWN0aW9uKHBjaFNlY3Rpb24scmVmIHBlRXJyb3IpOwor
ICAgICAgIH0KKyAgICAgICBwdWJsaWMgdm9pZCBSZW1vdmVLZXlJblNlY3Rpb24oc3RyaW5nIHBj
aFNlY3Rpb24sc3RyaW5nIHBjaFNldHRpbmdzS2V5LHJlZiBFVlJTZXR0aW5nc0Vycm9yIHBlRXJy
b3IpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlLlJlbW92ZUtleUluU2VjdGlvbihw
Y2hTZWN0aW9uLHBjaFNldHRpbmdzS2V5LHJlZiBwZUVycm9yKTsKKyAgICAgICB9Cit9CisKKwor
cHVibGljIGNsYXNzIENWUlNjcmVlbnNob3RzCit7CisgICAgICAgSVZSU2NyZWVuc2hvdHMgRm5U
YWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJTY3JlZW5zaG90cyhJbnRQdHIgcEludGVyZmFjZSkK
KyAgICAgICB7CisgICAgICAgICAgICAgIEZuVGFibGUgPSAoSVZSU2NyZWVuc2hvdHMpTWFyc2hh
bC5QdHJUb1N0cnVjdHVyZShwSW50ZXJmYWNlLCB0eXBlb2YoSVZSU2NyZWVuc2hvdHMpKTsKKyAg
ICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBSZXF1ZXN0U2NyZWVuc2hv
dChyZWYgdWludCBwT3V0U2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBlLHN0
cmluZyBwY2hQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFZSRmlsZW5hbWUpCisgICAgICAgewor
ICAgICAgICAgICAgICBwT3V0U2NyZWVuc2hvdEhhbmRsZSA9IDA7CisgICAgICAgICAgICAgIEVW
UlNjcmVlbnNob3RFcnJvciByZXN1bHQgPSBGblRhYmxlLlJlcXVlc3RTY3JlZW5zaG90KHJlZiBw
T3V0U2NyZWVuc2hvdEhhbmRsZSx0eXBlLHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1l
KTsKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGlj
IEVWUlNjcmVlbnNob3RFcnJvciBIb29rU2NyZWVuc2hvdChFVlJTY3JlZW5zaG90VHlwZSBbXSBw
U3VwcG9ydGVkVHlwZXMpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJy
b3IgcmVzdWx0ID0gRm5UYWJsZS5Ib29rU2NyZWVuc2hvdChwU3VwcG9ydGVkVHlwZXMsKGludCkg
cFN1cHBvcnRlZFR5cGVzLkxlbmd0aCk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90VHlwZSBHZXRTY3JlZW5zaG90UHJv
cGVydHlUeXBlKHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxyZWYgRVZSU2NyZWVuc2hvdEVycm9yIHBF
cnJvcikKKyAgICAgICB7CisgICAgICAgICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIHJlc3VsdCA9
IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZShzY3JlZW5zaG90SGFuZGxlLHJlZiBw
RXJyb3IpOworICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICAgICBw
dWJsaWMgdWludCBHZXRTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZSh1aW50IHNjcmVlbnNob3RI
YW5kbGUsRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIGZpbGVuYW1lVHlwZSxTeXN0ZW0u
VGV4dC5TdHJpbmdCdWlsZGVyIHBjaEZpbGVuYW1lLHVpbnQgY2NoRmlsZW5hbWUscmVmIEVWUlNj
cmVlbnNob3RFcnJvciBwRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICB1aW50IHJlc3Vs
dCA9IEZuVGFibGUuR2V0U2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWUoc2NyZWVuc2hvdEhhbmRs
ZSxmaWxlbmFtZVR5cGUscGNoRmlsZW5hbWUsY2NoRmlsZW5hbWUscmVmIHBFcnJvcik7CisgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3Jl
ZW5zaG90RXJyb3IgVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHVpbnQgc2NyZWVuc2hvdEhhbmRs
ZSxmbG9hdCBmbFByb2dyZXNzKQorICAgICAgIHsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hv
dEVycm9yIHJlc3VsdCA9IEZuVGFibGUuVXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKHNjcmVlbnNo
b3RIYW5kbGUsZmxQcm9ncmVzcyk7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgfQorICAgICAgIHB1YmxpYyBFVlJTY3JlZW5zaG90RXJyb3IgVGFrZVN0ZXJlb1NjcmVlbnNo
b3QocmVmIHVpbnQgcE91dFNjcmVlbnNob3RIYW5kbGUsc3RyaW5nIHBjaFByZXZpZXdGaWxlbmFt
ZSxzdHJpbmcgcGNoVlJGaWxlbmFtZSkKKyAgICAgICB7CisgICAgICAgICAgICAgIHBPdXRTY3Jl
ZW5zaG90SGFuZGxlID0gMDsKKyAgICAgICAgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIHJlc3Vs
dCA9IEZuVGFibGUuVGFrZVN0ZXJlb1NjcmVlbnNob3QocmVmIHBPdXRTY3JlZW5zaG90SGFuZGxl
LHBjaFByZXZpZXdGaWxlbmFtZSxwY2hWUkZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIEVWUlNjcmVlbnNob3RFcnJvciBTdWJt
aXRTY3JlZW5zaG90KHVpbnQgc2NyZWVuc2hvdEhhbmRsZSxFVlJTY3JlZW5zaG90VHlwZSB0eXBl
LHN0cmluZyBwY2hTb3VyY2VQcmV2aWV3RmlsZW5hbWUsc3RyaW5nIHBjaFNvdXJjZVZSRmlsZW5h
bWUpCisgICAgICAgeworICAgICAgICAgICAgICBFVlJTY3JlZW5zaG90RXJyb3IgcmVzdWx0ID0g
Rm5UYWJsZS5TdWJtaXRTY3JlZW5zaG90KHNjcmVlbnNob3RIYW5kbGUsdHlwZSxwY2hTb3VyY2VQ
cmV2aWV3RmlsZW5hbWUscGNoU291cmNlVlJGaWxlbmFtZSk7CisgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBDVlJSZXNvdXJjZXMKK3sK
KyAgICAgICBJVlJSZXNvdXJjZXMgRm5UYWJsZTsKKyAgICAgICBpbnRlcm5hbCBDVlJSZXNvdXJj
ZXMoSW50UHRyIHBJbnRlcmZhY2UpCisgICAgICAgeworICAgICAgICAgICAgICBGblRhYmxlID0g
KElWUlJlc291cmNlcylNYXJzaGFsLlB0clRvU3RydWN0dXJlKHBJbnRlcmZhY2UsIHR5cGVvZihJ
VlJSZXNvdXJjZXMpKTsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVpbnQgTG9hZFNoYXJlZFJl
c291cmNlKHN0cmluZyBwY2hSZXNvdXJjZU5hbWUsc3RyaW5nIHBjaEJ1ZmZlcix1aW50IHVuQnVm
ZmVyTGVuKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdWludCByZXN1bHQgPSBGblRhYmxlLkxv
YWRTaGFyZWRSZXNvdXJjZShwY2hSZXNvdXJjZU5hbWUscGNoQnVmZmVyLHVuQnVmZmVyTGVuKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICB9CisgICAgICAgcHVibGljIHVp
bnQgR2V0UmVzb3VyY2VGdWxsUGF0aChzdHJpbmcgcGNoUmVzb3VyY2VOYW1lLHN0cmluZyBwY2hS
ZXNvdXJjZVR5cGVEaXJlY3Rvcnksc3RyaW5nIHBjaFBhdGhCdWZmZXIsdWludCB1bkJ1ZmZlckxl
bikKKyAgICAgICB7CisgICAgICAgICAgICAgIHVpbnQgcmVzdWx0ID0gRm5UYWJsZS5HZXRSZXNv
dXJjZUZ1bGxQYXRoKHBjaFJlc291cmNlTmFtZSxwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkscGNo
UGF0aEJ1ZmZlcix1bkJ1ZmZlckxlbik7CisgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgfQorfQorCisKK3B1YmxpYyBjbGFzcyBPcGVuVlJJbnRlcm9wCit7CisgICAgICAgW0Rs
bEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSW5pdEludGVy
bmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAg
ICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB1aW50IEluaXRJbnRlcm5hbChyZWYgRVZSSW5pdEVy
cm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlKTsKKyAgICAg
ICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9TaHV0
ZG93bkludGVybmFsIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVj
bCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiB2b2lkIFNodXRkb3duSW50ZXJuYWwo
KTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9
ICJWUl9Jc0htZFByZXNlbnQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9u
LkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNIbWRQcmVzZW50
KCk7CisgICAgICAgW0RsbEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQg
PSAiVlJfSXNSdW50aW1lSW5zdGFsbGVkIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29u
dmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBib29sIElzUnVu
dGltZUluc3RhbGxlZCgpOworICAgICAgIFtEbGxJbXBvcnRBdHRyaWJ1dGUoIm9wZW52cl9hcGki
LCBFbnRyeVBvaW50ID0gIlZSX0dldFN0cmluZ0ZvckhtZEVycm9yIiwgQ2FsbGluZ0NvbnZlbnRp
b24gPSBDYWxsaW5nQ29udmVudGlvbi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4
dGVybiBJbnRQdHIgR2V0U3RyaW5nRm9ySG1kRXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKTsKKyAg
ICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBpIiwgRW50cnlQb2ludCA9ICJWUl9H
ZXRHZW5lcmljSW50ZXJmYWNlIiwgQ2FsbGluZ0NvbnZlbnRpb24gPSBDYWxsaW5nQ29udmVudGlv
bi5DZGVjbCldCisgICAgICAgaW50ZXJuYWwgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0R2VuZXJp
Y0ludGVyZmFjZShbSW4sIE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkxQU3RyKV0gc3RyaW5nIHBj
aEludGVyZmFjZVZlcnNpb24sIHJlZiBFVlJJbml0RXJyb3IgcGVFcnJvcik7CisgICAgICAgW0Rs
bEltcG9ydEF0dHJpYnV0ZSgib3BlbnZyX2FwaSIsIEVudHJ5UG9pbnQgPSAiVlJfSXNJbnRlcmZh
Y2VWZXJzaW9uVmFsaWQiLCBDYWxsaW5nQ29udmVudGlvbiA9IENhbGxpbmdDb252ZW50aW9uLkNk
ZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIGJvb2wgSXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQoW0luLCBNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildIHN0cmluZyBwY2hJ
bnRlcmZhY2VWZXJzaW9uKTsKKyAgICAgICBbRGxsSW1wb3J0QXR0cmlidXRlKCJvcGVudnJfYXBp
IiwgRW50cnlQb2ludCA9ICJWUl9HZXRJbml0VG9rZW4iLCBDYWxsaW5nQ29udmVudGlvbiA9IENh
bGxpbmdDb252ZW50aW9uLkNkZWNsKV0KKyAgICAgICBpbnRlcm5hbCBzdGF0aWMgZXh0ZXJuIHVp
bnQgR2V0SW5pdFRva2VuKCk7Cit9CisKKworcHVibGljIGVudW0gRVZSRXllCit7CisgICAgICAg
RXllX0xlZnQgPSAwLAorICAgICAgIEV5ZV9SaWdodCA9IDEsCit9CitwdWJsaWMgZW51bSBFVGV4
dHVyZVR5cGUKK3sKKyAgICAgICBEaXJlY3RYID0gMCwKKyAgICAgICBPcGVuR0wgPSAxLAorICAg
ICAgIFZ1bGthbiA9IDIsCisgICAgICAgSU9TdXJmYWNlID0gMywKKyAgICAgICBEaXJlY3RYMTIg
PSA0LAorfQorcHVibGljIGVudW0gRUNvbG9yU3BhY2UKK3sKKyAgICAgICBBdXRvID0gMCwKKyAg
ICAgICBHYW1tYSA9IDEsCisgICAgICAgTGluZWFyID0gMiwKK30KK3B1YmxpYyBlbnVtIEVUcmFj
a2luZ1Jlc3VsdAoreworICAgICAgIFVuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIENhbGlicmF0
aW5nX0luUHJvZ3Jlc3MgPSAxMDAsCisgICAgICAgQ2FsaWJyYXRpbmdfT3V0T2ZSYW5nZSA9IDEw
MSwKKyAgICAgICBSdW5uaW5nX09LID0gMjAwLAorICAgICAgIFJ1bm5pbmdfT3V0T2ZSYW5nZSA9
IDIwMSwKK30KK3B1YmxpYyBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAgICAgICBJbnZh
bGlkID0gMCwKKyAgICAgICBITUQgPSAxLAorICAgICAgIENvbnRyb2xsZXIgPSAyLAorICAgICAg
IEdlbmVyaWNUcmFja2VyID0gMywKKyAgICAgICBUcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9Citw
dWJsaWMgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgSW52YWxpZCA9IDAs
CisgICAgICAgTGVmdEhhbmQgPSAxLAorICAgICAgIFJpZ2h0SGFuZCA9IDIsCit9CitwdWJsaWMg
ZW51bSBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIFRyYWNraW5nVW5pdmVyc2VT
ZWF0ZWQgPSAwLAorICAgICAgIFRyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAgICAg
VHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCit9CitwdWJsaWMgZW51bSBF
VHJhY2tlZERldmljZVByb3BlcnR5Cit7CisgICAgICAgUHJvcF9JbnZhbGlkID0gMCwKKyAgICAg
ICBQcm9wX1RyYWNraW5nU3lzdGVtTmFtZV9TdHJpbmcgPSAxMDAwLAorICAgICAgIFByb3BfTW9k
ZWxOdW1iZXJfU3RyaW5nID0gMTAwMSwKKyAgICAgICBQcm9wX1NlcmlhbE51bWJlcl9TdHJpbmcg
PSAxMDAyLAorICAgICAgIFByb3BfUmVuZGVyTW9kZWxOYW1lX1N0cmluZyA9IDEwMDMsCisgICAg
ICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sID0gMTAwNCwKKyAgICAgICBQcm9wX01hbnVmYWN0
dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAgICBQcm9wX1RyYWNraW5nRmlybXdhcmVWZXJz
aW9uX1N0cmluZyA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyA9
IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcg
PSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2lyZWxlc3NEb25nbGVfU3RyaW5nID0gMTAw
OSwKKyAgICAgICBQcm9wX0RldmljZUlzV2lyZWxlc3NfQm9vbCA9IDEwMTAsCisgICAgICAgUHJv
cF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIFByb3BfRGV2aWNlQmF0dGVy
eVBlcmNlbnRhZ2VfRmxvYXQgPSAxMDEyLAorICAgICAgIFByb3BfU3RhdHVzRGlzcGxheVRyYW5z
Zm9ybV9NYXRyaXgzNCA9IDEwMTMsCisgICAgICAgUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFpbGFi
bGVfQm9vbCA9IDEwMTQsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVfQm9vbCA9
IDEwMTUsCisgICAgICAgUHJvcF9GaXJtd2FyZV9NYW51YWxVcGRhdGVVUkxfU3RyaW5nID0gMTAx
NiwKKyAgICAgICBQcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0gMTAxNywKKyAgICAgICBQ
cm9wX0Zpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAxMDE4LAorICAgICAgIFByb3BfRlBHQVZlcnNp
b25fVWludDY0ID0gMTAxOSwKKyAgICAgICBQcm9wX1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwK
KyAgICAgICBQcm9wX1JhZGlvVmVyc2lvbl9VaW50NjQgPSAxMDIxLAorICAgICAgIFByb3BfRG9u
Z2xlVmVyc2lvbl9VaW50NjQgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93
bl9Cb29sID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0ZVN5c3RlbVdpdGhI
bWRfQm9vbCA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1Byb3hpbWl0eVNlbnNvcl9Cb29s
ID0gMTAyNSwKKyAgICAgICBQcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0g
MTAyNiwKKyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgPSAxMDI3LAorICAgICAg
IFByb3BfRmlybXdhcmVfUHJvZ3JhbW1pbmdUYXJnZXRfU3RyaW5nID0gMTAyOCwKKyAgICAgICBQ
cm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBQcm9wX0hhc0NhbWVyYV9Cb29s
ID0gMTAzMCwKKyAgICAgICBQcm9wX0RyaXZlclZlcnNpb25fU3RyaW5nID0gMTAzMSwKKyAgICAg
ICBQcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9vbCA9IDEwMzIsCisgICAgICAg
UHJvcF9WaXZlU3lzdGVtQnV0dG9uRml4UmVxdWlyZWRfQm9vbCA9IDEwMzMsCisgICAgICAgUHJv
cF9QYXJlbnREcml2ZXJfVWludDY0ID0gMTAzNCwKKyAgICAgICBQcm9wX1JlcG9ydHNUaW1lU2lu
Y2VWU3luY19Cb29sID0gMjAwMCwKKyAgICAgICBQcm9wX1NlY29uZHNGcm9tVnN5bmNUb1Bob3Rv
bnNfRmxvYXQgPSAyMDAxLAorICAgICAgIFByb3BfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9IDIw
MDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBQcm9w
X0N1cnJlbnRVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDQsCisgICAgICAgUHJvcF9QcmV2aW91c1Vu
aXZlcnNlSWRfVWludDY0ID0gMjAwNSwKKyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNp
b25fVWludDY0ID0gMjAwNiwKKyAgICAgICBQcm9wX0lzT25EZXNrdG9wX0Jvb2wgPSAyMDA3LAor
ICAgICAgIFByb3BfRGlzcGxheU1DVHlwZV9JbnQzMiA9IDIwMDgsCisgICAgICAgUHJvcF9EaXNw
bGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxv
YXQgPSAyMDEwLAorICAgICAgIFByb3BfRWRpZFZlbmRvcklEX0ludDMyID0gMjAxMSwKKyAgICAg
ICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAyMDEyLAorICAgICAgIFByb3BfRGlz
cGxheU1DSW1hZ2VSaWdodF9TdHJpbmcgPSAyMDEzLAorICAgICAgIFByb3BfRGlzcGxheUdDQmxh
Y2tDbGFtcF9GbG9hdCA9IDIwMTQsCisgICAgICAgUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0g
MjAxNSwKKyAgICAgICBQcm9wX0NhbWVyYVRvSGVhZFRyYW5zZm9ybV9NYXRyaXgzNCA9IDIwMTYs
CisgICAgICAgUHJvcF9EaXNwbGF5R0NUeXBlX0ludDMyID0gMjAxNywKKyAgICAgICBQcm9wX0Rp
c3BsYXlHQ09mZnNldF9GbG9hdCA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNwbGF5R0NTY2FsZV9G
bG9hdCA9IDIwMTksCisgICAgICAgUHJvcF9EaXNwbGF5R0NQcmVzY2FsZV9GbG9hdCA9IDIwMjAs
CisgICAgICAgUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAorICAgICAgIFByb3Bf
TGVuc0NlbnRlckxlZnRVX0Zsb2F0ID0gMjAyMiwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0
Vl9GbG9hdCA9IDIwMjMsCisgICAgICAgUHJvcF9MZW5zQ2VudGVyUmlnaHRVX0Zsb2F0ID0gMjAy
NCwKKyAgICAgICBQcm9wX0xlbnNDZW50ZXJSaWdodFZfRmxvYXQgPSAyMDI1LAorICAgICAgIFBy
b3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ID0gMjAyNiwKKyAgICAgICBQcm9wX0Nh
bWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3LAorICAgICAgIFByb3BfQ2FtZXJhRmly
bXdhcmVEZXNjcmlwdGlvbl9TdHJpbmcgPSAyMDI4LAorICAgICAgIFByb3BfRGlzcGxheUZQR0FW
ZXJzaW9uX1VpbnQ2NCA9IDIwMjksCisgICAgICAgUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNp
b25fVWludDY0ID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWlu
dDY0ID0gMjAzMSwKKyAgICAgICBQcm9wX0F1ZGlvRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCA9IDIw
MzIsCisgICAgICAgUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCisg
ICAgICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9
IDIwMzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNf
RmxvYXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIwMzYs
CisgICAgICAgUHJvcF9EaXNwbGF5QWxsb3dOaWdodE1vZGVfQm9vbCA9IDIwMzcsCisgICAgICAg
UHJvcF9EaXNwbGF5TUNJbWFnZVdpZHRoX0ludDMyID0gMjAzOCwKKyAgICAgICBQcm9wX0Rpc3Bs
YXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdl
TnVtQ2hhbm5lbHNfSW50MzIgPSAyMDQwLAorICAgICAgIFByb3BfRGlzcGxheU1DSW1hZ2VEYXRh
X0JpbmFyeSA9IDIwNDEsCisgICAgICAgUHJvcF9Vc2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0g
MjA0MiwKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNlSWRfU3RyaW5nID0gMzAwMCwKKyAgICAg
ICBQcm9wX1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ID0gMzAwMSwKKyAgICAgICBQcm9wX0F4aXMw
VHlwZV9JbnQzMiA9IDMwMDIsCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgPSAzMDAzLAor
ICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMyID0gMzAwNCwKKyAgICAgICBQcm9wX0F4aXMzVHlw
ZV9JbnQzMiA9IDMwMDUsCisgICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgPSAzMDA2LAorICAg
ICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyID0gMzAwNywKKyAgICAgICBQcm9wX0Zp
ZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAgICAgIFByb3BfRmllbGRPZlZp
ZXdSaWdodERlZ3JlZXNfRmxvYXQgPSA0MDAxLAorICAgICAgIFByb3BfRmllbGRPZlZpZXdUb3BE
ZWdyZWVzX0Zsb2F0ID0gNDAwMiwKKyAgICAgICBQcm9wX0ZpZWxkT2ZWaWV3Qm90dG9tRGVncmVl
c19GbG9hdCA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWluaW11bU1ldGVyc19G
bG9hdCA9IDQwMDQsCisgICAgICAgUHJvcF9UcmFja2luZ1JhbmdlTWF4aW11bU1ldGVyc19GbG9h
dCA9IDQwMDUsCisgICAgICAgUHJvcF9Nb2RlTGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAgICBQ
cm9wX0ljb25QYXRoTmFtZV9TdHJpbmcgPSA1MDAwLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0
aERldmljZU9mZl9TdHJpbmcgPSA1MDAxLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVNlYXJjaGluZ19TdHJpbmcgPSA1MDAyLAorICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmlj
ZVNlYXJjaGluZ0FsZXJ0X1N0cmluZyA9IDUwMDMsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlUmVhZHlfU3RyaW5nID0gNTAwNCwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VSZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2
aWNlTm90UmVhZHlfU3RyaW5nID0gNTAwNiwKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhEZXZp
Y2VTdGFuZGJ5X1N0cmluZyA9IDUwMDcsCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
QWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0Jp
bmFyeV9TdGFydCA9IDUxMDAsCisgICAgICAgUHJvcF9EaXNwbGF5SGlkZGVuQXJlYV9CaW5hcnlf
RW5kID0gNTE1MCwKKyAgICAgICBQcm9wX1VzZXJDb25maWdQYXRoX1N0cmluZyA9IDYwMDAsCisg
ICAgICAgUHJvcF9JbnN0YWxsUGF0aF9TdHJpbmcgPSA2MDAxLAorICAgICAgIFByb3BfVmVuZG9y
U3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwMCwKKyAgICAgICBQcm9wX1ZlbmRvclNwZWNp
ZmljX1Jlc2VydmVkX0VuZCA9IDEwOTk5LAorfQorcHVibGljIGVudW0gRVRyYWNrZWRQcm9wZXJ0
eUVycm9yCit7CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyA9IDAsCisgICAgICAgVHJhY2tl
ZFByb3BfV3JvbmdEYXRhVHlwZSA9IDEsCisgICAgICAgVHJhY2tlZFByb3BfV3JvbmdEZXZpY2VD
bGFzcyA9IDIsCisgICAgICAgVHJhY2tlZFByb3BfQnVmZmVyVG9vU21hbGwgPSAzLAorICAgICAg
IFRyYWNrZWRQcm9wX1Vua25vd25Qcm9wZXJ0eSA9IDQsCisgICAgICAgVHJhY2tlZFByb3BfSW52
YWxpZERldmljZSA9IDUsCisgICAgICAgVHJhY2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVy
ID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgPSA3LAor
ICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAgICAg
ICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgPSA5LAorICAgICAgIFRyYWNrZWRQcm9wX1Bl
cm1pc3Npb25EZW5pZWQgPSAxMCwKKyAgICAgICBUcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9u
ID0gMTEsCit9CitwdWJsaWMgZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAgIFN1Ym1pdF9E
ZWZhdWx0ID0gMCwKKyAgICAgICBTdWJtaXRfTGVuc0Rpc3RvcnRpb25BbHJlYWR5QXBwbGllZCA9
IDEsCisgICAgICAgU3VibWl0X0dsUmVuZGVyQnVmZmVyID0gMiwKKyAgICAgICBTdWJtaXRfUmVz
ZXJ2ZWQgPSA0LAorfQorcHVibGljIGVudW0gRVZSU3RhdGUKK3sKKyAgICAgICBVbmRlZmluZWQg
PSAtMSwKKyAgICAgICBPZmYgPSAwLAorICAgICAgIFNlYXJjaGluZyA9IDEsCisgICAgICAgU2Vh
cmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBSZWFkeSA9IDMsCisgICAgICAgUmVhZHlfQWxlcnQg
PSA0LAorICAgICAgIE5vdFJlYWR5ID0gNSwKKyAgICAgICBTdGFuZGJ5ID0gNiwKKyAgICAgICBS
ZWFkeV9BbGVydF9Mb3cgPSA3LAorfQorcHVibGljIGVudW0gRVZSRXZlbnRUeXBlCit7CisgICAg
ICAgVlJFdmVudF9Ob25lID0gMCwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0
ZWQgPSAxMDAsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQgPSAxMDEs
CisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCA9IDEwMiwKKyAgICAgICBWUkV2
ZW50X1RyYWNrZWREZXZpY2VVc2VySW50ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkID0gMTA0LAorICAgICAgIFZS
RXZlbnRfSXBkQ2hhbmdlZCA9IDEwNSwKKyAgICAgICBWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUg
PSAxMDYsCisgICAgICAgVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlID0gMTA3LAorICAgICAgIFZS
RXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkID0gMTA4LAorICAgICAgIFZSRXZlbnRfV2F0
Y2hkb2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgVlJFdmVudF9MZW5zRGlzdG9ydGlv
bkNoYW5nZWQgPSAxMTAsCisgICAgICAgVlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgPSAxMTEsCisg
ICAgICAgVlJFdmVudF9CdXR0b25QcmVzcyA9IDIwMCwKKyAgICAgICBWUkV2ZW50X0J1dHRvblVu
cHJlc3MgPSAyMDEsCisgICAgICAgVlJFdmVudF9CdXR0b25Ub3VjaCA9IDIwMiwKKyAgICAgICBW
UkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAgVlJFdmVudF9Nb3VzZU1vdmUgPSAz
MDAsCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvbkRvd24gPSAzMDEsCisgICAgICAgVlJFdmVu
dF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIFZSRXZlbnRfRm9jdXNFbnRlciA9IDMwMywK
KyAgICAgICBWUkV2ZW50X0ZvY3VzTGVhdmUgPSAzMDQsCisgICAgICAgVlJFdmVudF9TY3JvbGwg
PSAzMDUsCisgICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmUgPSAzMDYsCisgICAgICAgVlJFdmVu
dF9PdmVybGF5Rm9jdXNDaGFuZ2VkID0gMzA3LAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0Nh
cHR1cmVkID0gNDAwLAorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkID0gNDAxLAor
ICAgICAgIFZSRXZlbnRfU2NlbmVGb2N1c0xvc3QgPSA0MDIsCisgICAgICAgVlJFdmVudF9TY2Vu
ZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5n
ZWQgPSA0MDQsCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCA9IDQwNSwKKyAgICAg
ICBWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIFZSRXZlbnRfU2NlbmVB
cHBsaWNhdGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQgPSA0MDcsCisgICAgICAgVlJFdmVu
dF9IaWRlUmVuZGVyTW9kZWxzID0gNDEwLAorICAgICAgIFZSRXZlbnRfU2hvd1JlbmRlck1vZGVs
cyA9IDQxMSwKKyAgICAgICBWUkV2ZW50X092ZXJsYXlTaG93biA9IDUwMCwKKyAgICAgICBWUkV2
ZW50X092ZXJsYXlIaWRkZW4gPSA1MDEsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0
ZWQgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCA9IDUwMywKKyAg
ICAgICBWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2VsZWN0ZWQgPSA1MDQsCisgICAgICAgVlJFdmVu
dF9EYXNoYm9hcmRSZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgVlJFdmVudF9SZXNldERhc2hib2Fy
ZCA9IDUwNiwKKyAgICAgICBWUkV2ZW50X1JlbmRlclRvYXN0ID0gNTA3LAorICAgICAgIFZSRXZl
bnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAgICAgVlJFdmVudF9TaG93S2V5Ym9hcmQgPSA1MDks
CisgICAgICAgVlJFdmVudF9IaWRlS2V5Ym9hcmQgPSA1MTAsCisgICAgICAgVlJFdmVudF9PdmVy
bGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVw
YWRGb2N1c0xvc3QgPSA1MTIsCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNo
YW5nZWQgPSA1MTMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1
MTQsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvblVwID0gNTE1LAorICAgICAg
IFZSRXZlbnRfU2NyZWVuc2hvdFRyaWdnZXJlZCA9IDUxNiwKKyAgICAgICBWUkV2ZW50X0ltYWdl
RmFpbGVkID0gNTE3LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQgPSA1
MTgsCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCA9IDUyMCwKKyAgICAgICBWUkV2
ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWls
ZWQgPSA1MjIsCisgICAgICAgVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9hcmQgPSA1
MjMsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwK
KyAgICAgICBWUkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkID0gNTI1LAorICAg
ICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duID0gNjAwLAorICAgICAgIFZSRXZlbnRfTm90
aWZpY2F0aW9uX0hpZGRlbiA9IDYwMSwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdp
bkludGVyYWN0aW9uID0gNjAyLAorICAgICAgIFZSRXZlbnRfTm90aWZpY2F0aW9uX0Rlc3Ryb3ll
ZCA9IDYwMywKKyAgICAgICBWUkV2ZW50X1F1aXQgPSA3MDAsCisgICAgICAgVlJFdmVudF9Qcm9j
ZXNzUXVpdCA9IDcwMSwKKyAgICAgICBWUkV2ZW50X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgPSA3
MDIsCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAorICAgICAgIFZSRXZl
bnRfRHJpdmVyUmVxdWVzdGVkUXVpdCA9IDcwNCwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZURh
dGFIYXNDaGFuZ2VkID0gODAwLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXND
aGFuZ2VkID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2Vk
ID0gODAyLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDgw
MywKKyAgICAgICBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQgPSA4MDQsCisgICAgICAgVlJF
dmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQgPSA4MjAsCisgICAgICAgVlJFdmVudF9CYWNr
Z3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgPSA4NTAsCisgICAgICAgVlJFdmVudF9DYW1lcmFTZXR0
aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIFZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGlu
Z0hhc0NoYW5nZWQgPSA4NTIsCisgICAgICAgVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVD
aGFuZ2VkID0gODUzLAorICAgICAgIFZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODU0LAorICAgICAgIFZSRXZlbnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU1
LAorICAgICAgIFZSRXZlbnRfU3RhdHVzVXBkYXRlID0gOTAwLAorICAgICAgIFZSRXZlbnRfTUNJ
bWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIFZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVk
ID0gMTEwMCwKKyAgICAgICBWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQgPSAxMTAxLAor
ICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5
Ym9hcmRDaGFySW5wdXQgPSAxMjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmREb25lID0gMTIw
MiwKKyAgICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAor
ICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCA9IDEzMDEsCisgICAg
ICAgVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFydGVkID0gMTMwMiwKKyAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0ZWQgPSAxMzAzLAorICAgICAgIFZSRXZl
bnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQgPSAxMzA0LAorICAgICAgIFZSRXZlbnRfQXBwbGlj
YXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUgPSAxMzA1LAorICAgICAgIFZSRXZl
bnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCisgICAgICAgVlJFdmVudF9D
b21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21w
b3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duID0gMTQxMCwKKyAgICAgICBWUkV2ZW50X0NvbXBv
c2l0b3JfQ2hhcGVyb25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBWUkV2ZW50X1RyYWNr
ZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSA9IDE1MDAsCisgICAgICAgVlJFdmVudF9UcmFja2Vk
Q2FtZXJhX1N0b3BWaWRlb1N0cmVhbSA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9SZXN1bWVWaWRlb1N0cmVhbSA9IDE1MDMsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2FtZXJh
X0VkaXRpbmdTdXJmYWNlID0gMTU1MCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9F
bmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNh
YmxlQ2FwdHVyZSA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxp
dHlMZXZlbCA9IDE2MDIsCisgICAgICAgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAx
NjUwLAorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQgPSAxMDAw
MCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDE5OTk5LAor
fQorcHVibGljIGVudW0gRURldmljZUFjdGl2aXR5TGV2ZWwKK3sKKyAgICAgICBrX0VEZXZpY2VB
Y3Rpdml0eUxldmVsX1Vua25vd24gPSAtMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVs
X0lkbGUgPSAwLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0aW9u
ID0gMSwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbl9UaW1l
b3V0ID0gMiwKKyAgICAgICBrX0VEZXZpY2VBY3Rpdml0eUxldmVsX1N0YW5kYnkgPSAzLAorfQor
cHVibGljIGVudW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtID0gMCwK
KyAgICAgICBrX0VCdXR0b25fQXBwbGljYXRpb25NZW51ID0gMSwKKyAgICAgICBrX0VCdXR0b25f
R3JpcCA9IDIsCisgICAgICAga19FQnV0dG9uX0RQYWRfTGVmdCA9IDMsCisgICAgICAga19FQnV0
dG9uX0RQYWRfVXAgPSA0LAorICAgICAgIGtfRUJ1dHRvbl9EUGFkX1JpZ2h0ID0gNSwKKyAgICAg
ICBrX0VCdXR0b25fRFBhZF9Eb3duID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSA9IDcsCisgICAg
ICAga19FQnV0dG9uX1Byb3hpbWl0eVNlbnNvciA9IDMxLAorICAgICAgIGtfRUJ1dHRvbl9BeGlz
MCA9IDMyLAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMSA9IDMzLAorICAgICAgIGtfRUJ1dHRvbl9B
eGlzMiA9IDM0LAorICAgICAgIGtfRUJ1dHRvbl9BeGlzMyA9IDM1LAorICAgICAgIGtfRUJ1dHRv
bl9BeGlzNCA9IDM2LAorICAgICAgIGtfRUJ1dHRvbl9TdGVhbVZSX1RvdWNocGFkID0gMzIsCisg
ICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciA9IDMzLAorICAgICAgIGtfRUJ1dHRvbl9E
YXNoYm9hcmRfQmFjayA9IDIsCisgICAgICAga19FQnV0dG9uX01heCA9IDY0LAorfQorcHVibGlj
IGVudW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBMZWZ0ID0gMSwKKyAgICAgICBSaWdodCA9
IDIsCisgICAgICAgTWlkZGxlID0gNCwKK30KK3B1YmxpYyBlbnVtIEVIaWRkZW5BcmVhTWVzaFR5
cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisgICAgICAga19l
SGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGlu
ZUxvb3AgPSAyLAorICAgICAgIGtfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMsCit9CitwdWJsaWMg
ZW51bSBFVlJDb250cm9sbGVyQXhpc1R5cGUKK3sKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19O
b25lID0gMCwKKyAgICAgICBrX2VDb250cm9sbGVyQXhpc19UcmFja1BhZCA9IDEsCisgICAgICAg
a19lQ29udHJvbGxlckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlz
X1RyaWdnZXIgPSAzLAorfQorcHVibGljIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlw
ZQoreworICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyA9IDAsCisgICAgICAg
Q29udHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZlbnRzID0gMSwKK30KK3B1YmxpYyBlbnVtIEVDb2xs
aXNpb25Cb3VuZHNTdHlsZQoreworICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQkVHSU5O
RVIgPSAwLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwK
KyAgICAgICBDT0xMSVNJT05fQk9VTkRTX1NUWUxFX1NRVUFSRVMgPSAyLAorICAgICAgIENPTExJ
U0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQgPSAzLAorICAgICAgIENPTExJU0lPTl9CT1VORFNf
U1RZTEVfTk9ORSA9IDQsCisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9DT1VOVCA9IDUs
Cit9CitwdWJsaWMgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAg
ICAgICBVbmtub3duT3ZlcmxheSA9IDEwLAorICAgICAgIEludmFsaWRIYW5kbGUgPSAxMSwKKyAg
ICAgICBQZXJtaXNzaW9uRGVuaWVkID0gMTIsCisgICAgICAgT3ZlcmxheUxpbWl0RXhjZWVkZWQg
PSAxMywKKyAgICAgICBXcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCisgICAgICAgS2V5VG9vTG9u
ZyA9IDE1LAorICAgICAgIE5hbWVUb29Mb25nID0gMTYsCisgICAgICAgS2V5SW5Vc2UgPSAxNywK
KyAgICAgICBXcm9uZ1RyYW5zZm9ybVR5cGUgPSAxOCwKKyAgICAgICBJbnZhbGlkVHJhY2tlZERl
dmljZSA9IDE5LAorICAgICAgIEludmFsaWRQYXJhbWV0ZXIgPSAyMCwKKyAgICAgICBUaHVtYm5h
aWxDYW50QmVEZXN0cm95ZWQgPSAyMSwKKyAgICAgICBBcnJheVRvb1NtYWxsID0gMjIsCisgICAg
ICAgUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEludmFsaWRUZXh0dXJlID0gMjQsCisgICAg
ICAgVW5hYmxlVG9Mb2FkRmlsZSA9IDI1LAorICAgICAgIEtleWJvYXJkQWxyZWFkeUluVXNlID0g
MjYsCisgICAgICAgTm9OZWlnaGJvciA9IDI3LAorICAgICAgIFRvb01hbnlNYXNrUHJpbWl0aXZl
cyA9IDI5LAorICAgICAgIEJhZE1hc2tQcmltaXRpdmUgPSAzMCwKK30KK3B1YmxpYyBlbnVtIEVW
UkFwcGxpY2F0aW9uVHlwZQoreworICAgICAgIFZSQXBwbGljYXRpb25fT3RoZXIgPSAwLAorICAg
ICAgIFZSQXBwbGljYXRpb25fU2NlbmUgPSAxLAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zlcmxh
eSA9IDIsCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKKyAgICAgICBWUkFw
cGxpY2F0aW9uX1V0aWxpdHkgPSA0LAorICAgICAgIFZSQXBwbGljYXRpb25fVlJNb25pdG9yID0g
NSwKKyAgICAgICBWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAorICAgICAgIFZSQXBw
bGljYXRpb25fTWF4ID0gNywKK30KK3B1YmxpYyBlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAg
ICAgICBOb25lID0gMCwKKyAgICAgICBTdWNjZXNzID0gMSwKKyAgICAgICBGYWlsID0gMiwKK30K
K3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgT0sgPSAwLAorICAg
ICAgIEludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBOb3RpZmljYXRpb25RdWV1
ZUZ1bGwgPSAxMDEsCisgICAgICAgSW52YWxpZE92ZXJsYXlIYW5kbGUgPSAxMDIsCisgICAgICAg
U3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9CitwdWJsaWMgZW51bSBF
VlJJbml0RXJyb3IKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBVbmtub3duID0gMSwKKyAg
ICAgICBJbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kID0gMTAwLAorICAgICAgIEluaXRfSW5zdGFs
bGF0aW9uQ29ycnVwdCA9IDEwMSwKKyAgICAgICBJbml0X1ZSQ2xpZW50RExMTm90Rm91bmQgPSAx
MDIsCisgICAgICAgSW5pdF9GaWxlTm90Rm91bmQgPSAxMDMsCisgICAgICAgSW5pdF9GYWN0b3J5
Tm90Rm91bmQgPSAxMDQsCisgICAgICAgSW5pdF9JbnRlcmZhY2VOb3RGb3VuZCA9IDEwNSwKKyAg
ICAgICBJbml0X0ludmFsaWRJbnRlcmZhY2UgPSAxMDYsCisgICAgICAgSW5pdF9Vc2VyQ29uZmln
RGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBJbml0X0htZE5vdEZvdW5kID0gMTA4LAor
ICAgICAgIEluaXRfTm90SW5pdGlhbGl6ZWQgPSAxMDksCisgICAgICAgSW5pdF9QYXRoUmVnaXN0
cnlOb3RGb3VuZCA9IDExMCwKKyAgICAgICBJbml0X05vQ29uZmlnUGF0aCA9IDExMSwKKyAgICAg
ICBJbml0X05vTG9nUGF0aCA9IDExMiwKKyAgICAgICBJbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRh
YmxlID0gMTEzLAorICAgICAgIEluaXRfQXBwSW5mb0luaXRGYWlsZWQgPSAxMTQsCisgICAgICAg
SW5pdF9SZXRyeSA9IDExNSwKKyAgICAgICBJbml0X0luaXRDYW5jZWxlZEJ5VXNlciA9IDExNiwK
KyAgICAgICBJbml0X0Fub3RoZXJBcHBMYXVuY2hpbmcgPSAxMTcsCisgICAgICAgSW5pdF9TZXR0
aW5nc0luaXRGYWlsZWQgPSAxMTgsCisgICAgICAgSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCisg
ICAgICAgSW5pdF9Ub29NYW55T2JqZWN0cyA9IDEyMCwKKyAgICAgICBJbml0X05vU2VydmVyRm9y
QmFja2dyb3VuZEFwcCA9IDEyMSwKKyAgICAgICBJbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3Np
dG9yID0gMTIyLAorICAgICAgIEluaXRfTm90QXZhaWxhYmxlVG9VdGlsaXR5QXBwcyA9IDEyMywK
KyAgICAgICBJbml0X0ludGVybmFsID0gMTI0LAorICAgICAgIEluaXRfSG1kRHJpdmVySWRJc05v
bmUgPSAxMjUsCisgICAgICAgSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkID0gMTI2LAor
ICAgICAgIEluaXRfVlJNb25pdG9yTm90Rm91bmQgPSAxMjcsCisgICAgICAgSW5pdF9WUk1vbml0
b3JTdGFydHVwRmFpbGVkID0gMTI4LAorICAgICAgIEluaXRfTG93UG93ZXJXYXRjaGRvZ05vdFN1
cHBvcnRlZCA9IDEyOSwKKyAgICAgICBJbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgPSAxMzAs
CisgICAgICAgSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKKyAgICAgICBJ
bml0X1dhdGNoZG9nRGlzYWJsZWRJblNldHRpbmdzID0gMTMyLAorICAgICAgIEluaXRfVlJEYXNo
Ym9hcmROb3RGb3VuZCA9IDEzMywKKyAgICAgICBJbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxl
ZCA9IDEzNCwKKyAgICAgICBEcml2ZXJfRmFpbGVkID0gMjAwLAorICAgICAgIERyaXZlcl9Vbmtu
b3duID0gMjAxLAorICAgICAgIERyaXZlcl9IbWRVbmtub3duID0gMjAyLAorICAgICAgIERyaXZl
cl9Ob3RMb2FkZWQgPSAyMDMsCisgICAgICAgRHJpdmVyX1J1bnRpbWVPdXRPZkRhdGUgPSAyMDQs
CisgICAgICAgRHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIERyaXZlcl9Ob3RDYWxpYnJh
dGVkID0gMjA2LAorICAgICAgIERyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQgPSAyMDcsCisgICAg
ICAgRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAgICAgICBEcml2ZXJfVHJhY2tl
ZERldmljZUludGVyZmFjZVVua25vd24gPSAyMDksCisgICAgICAgRHJpdmVyX0htZERyaXZlcklk
T3V0T2ZCb3VuZHMgPSAyMTEsCisgICAgICAgRHJpdmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIx
MiwKKyAgICAgICBJUENfU2VydmVySW5pdEZhaWxlZCA9IDMwMCwKKyAgICAgICBJUENfQ29ubmVj
dEZhaWxlZCA9IDMwMSwKKyAgICAgICBJUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAor
ICAgICAgIElQQ19Db21wb3NpdG9ySW5pdEZhaWxlZCA9IDMwMywKKyAgICAgICBJUENfTXV0ZXhJ
bml0RmFpbGVkID0gMzA0LAorICAgICAgIElQQ19GYWlsZWQgPSAzMDUsCisgICAgICAgSVBDX0Nv
bXBvc2l0b3JDb25uZWN0RmFpbGVkID0gMzA2LAorICAgICAgIElQQ19Db21wb3NpdG9ySW52YWxp
ZENvbm5lY3RSZXNwb25zZSA9IDMwNywKKyAgICAgICBJUENfQ29ubmVjdEZhaWxlZEFmdGVyTXVs
dGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBDb21wb3NpdG9yX0ZhaWxlZCA9IDQwMCwKKyAg
ICAgICBDb21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCA9IDQwMSwKKyAgICAgICBDb21w
b3NpdG9yX0Zpcm13YXJlUmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgQ29tcG9zaXRvcl9P
dmVybGF5SW5pdEZhaWxlZCA9IDQwMywKKyAgICAgICBDb21wb3NpdG9yX1NjcmVlbnNob3RzSW5p
dEZhaWxlZCA9IDQwNCwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09j
dWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRP
cGVuRGV2aWNlID0gMTEwMSwKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVU
b1JlcXVlc3RDb25maWdTdGFydCA9IDExMDIsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91
bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb0JpZyA9IDExMDQsCisgICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29u
ZmlnVG9vU21hbGwgPSAxMTA1LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJs
ZVRvSW5pdFpMaWIgPSAxMTA2LAorICAgICAgIFZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRS
ZWFkRmlybXdhcmVWZXJzaW9uID0gMTEwNywKKyAgICAgICBWZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ID0gMTEwOCwKKyAgICAgICBWZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAorICAgICAgIFZlbmRv
clNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ID0gMTExMCwKKyAgICAg
ICBWZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUFkZHJlc3NSYW5nZSA9IDExMTEsCisg
ICAgICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJvciA9IDExMTIsCisgICAg
ICAgVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2sgPSAxMTEz
LAorICAgICAgIFN0ZWFtX1N0ZWFtSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAyMDAwLAorfQorcHVi
bGljIGVudW0gRVZSU2NyZWVuc2hvdFR5cGUKK3sKKyAgICAgICBOb25lID0gMCwKKyAgICAgICBN
b25vID0gMSwKKyAgICAgICBTdGVyZW8gPSAyLAorICAgICAgIEN1YmVtYXAgPSAzLAorICAgICAg
IE1vbm9QYW5vcmFtYSA9IDQsCisgICAgICAgU3RlcmVvUGFub3JhbWEgPSA1LAorfQorcHVibGlj
IGVudW0gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzCit7CisgICAgICAgUHJldmlldyA9
IDAsCisgICAgICAgVlIgPSAxLAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUVycm9y
Cit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgT3BlcmF0aW9uRmFpbGVkID0gMTAwLAorICAg
ICAgIEludmFsaWRIYW5kbGUgPSAxMDEsCisgICAgICAgSW52YWxpZEZyYW1lSGVhZGVyVmVyc2lv
biA9IDEwMiwKKyAgICAgICBPdXRPZkhhbmRsZXMgPSAxMDMsCisgICAgICAgSVBDRmFpbHVyZSA9
IDEwNCwKKyAgICAgICBOb3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlID0gMTA1LAorICAgICAgIFNo
YXJlZE1lbW9yeUZhaWx1cmUgPSAxMDYsCisgICAgICAgRnJhbWVCdWZmZXJpbmdGYWlsdXJlID0g
MTA3LAorICAgICAgIFN0cmVhbVNldHVwRmFpbHVyZSA9IDEwOCwKKyAgICAgICBJbnZhbGlkR0xU
ZXh0dXJlSWQgPSAxMDksCisgICAgICAgSW52YWxpZFNoYXJlZFRleHR1cmVIYW5kbGUgPSAxMTAs
CisgICAgICAgRmFpbGVkVG9HZXRHTFRleHR1cmVJZCA9IDExMSwKKyAgICAgICBTaGFyZWRUZXh0
dXJlRmFpbHVyZSA9IDExMiwKKyAgICAgICBOb0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAgICAg
IEludmFsaWRBcmd1bWVudCA9IDExNCwKKyAgICAgICBJbnZhbGlkRnJhbWVCdWZmZXJTaXplID0g
MTE1LAorfQorcHVibGljIGVudW0gRVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZQoreworICAgICAg
IERpc3RvcnRlZCA9IDAsCisgICAgICAgVW5kaXN0b3J0ZWQgPSAxLAorICAgICAgIE1heGltdW1V
bmRpc3RvcnRlZCA9IDIsCisgICAgICAgTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9Citw
dWJsaWMgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAg
ICAgQXBwS2V5QWxyZWFkeUV4aXN0cyA9IDEwMCwKKyAgICAgICBOb01hbmlmZXN0ID0gMTAxLAor
ICAgICAgIE5vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgSW52YWxpZEluZGV4ID0gMTAzLAor
ICAgICAgIFVua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKKyAgICAgICBJUENGYWlsZWQgPSAxMDUs
CisgICAgICAgQXBwbGljYXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBJbnZhbGlk
TWFuaWZlc3QgPSAxMDcsCisgICAgICAgSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAorICAgICAg
IExhdW5jaEZhaWxlZCA9IDEwOSwKKyAgICAgICBBcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9
IDExMCwKKyAgICAgICBMYXVuY2hJblByb2dyZXNzID0gMTExLAorICAgICAgIE9sZEFwcGxpY2F0
aW9uUXVpdHRpbmcgPSAxMTIsCisgICAgICAgVHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAg
ICAgSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDIwMCwKKyAgICAg
ICBQcm9wZXJ0eU5vdFNldCA9IDIwMSwKKyAgICAgICBVbmtub3duUHJvcGVydHkgPSAyMDIsCisg
ICAgICAgSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30KK3B1YmxpYyBlbnVtIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHkKK3sKKyAgICAgICBOYW1lX1N0cmluZyA9IDAsCisgICAgICAgTGF1bmNoVHlw
ZV9TdHJpbmcgPSAxMSwKKyAgICAgICBXb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAorICAg
ICAgIEJpbmFyeVBhdGhfU3RyaW5nID0gMTMsCisgICAgICAgQXJndW1lbnRzX1N0cmluZyA9IDE0
LAorICAgICAgIFVSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBEZXNjcmlwdGlvbl9TdHJpbmcgPSA1
MCwKKyAgICAgICBOZXdzVVJMX1N0cmluZyA9IDUxLAorICAgICAgIEltYWdlUGF0aF9TdHJpbmcg
PSA1MiwKKyAgICAgICBTb3VyY2VfU3RyaW5nID0gNTMsCisgICAgICAgSXNEYXNoYm9hcmRPdmVy
bGF5X0Jvb2wgPSA2MCwKKyAgICAgICBJc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAgICAgICBJc0lu
c3RhbmNlZF9Cb29sID0gNjIsCisgICAgICAgSXNJbnRlcm5hbF9Cb29sID0gNjMsCisgICAgICAg
TGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9CitwdWJsaWMgZW51bSBFVlJBcHBsaWNhdGlv
blRyYW5zaXRpb25TdGF0ZQoreworICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05vbmUg
PSAwLAorICAgICAgIFZSQXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAs
CisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0ZvckV4dGVybmFsTGF1bmNo
ID0gMTEsCisgICAgICAgVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAy
MCwKK30KK3B1YmxpYyBlbnVtIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUKK3sKKyAgICAgICBP
SyA9IDEsCisgICAgICAgV2FybmluZyA9IDEwMCwKKyAgICAgICBXYXJuaW5nX0Jhc2VTdGF0aW9u
TWF5SGF2ZU1vdmVkID0gMTAxLAorICAgICAgIFdhcm5pbmdfQmFzZVN0YXRpb25SZW1vdmVkID0g
MTAyLAorICAgICAgIFdhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCA9IDEwMywKKyAgICAgICBF
cnJvciA9IDIwMCwKKyAgICAgICBFcnJvcl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEs
CisgICAgICAgRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCA9IDIwMiwKKyAgICAgICBFcnJvcl9Q
bGF5QXJlYUludmFsaWQgPSAyMDMsCisgICAgICAgRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxp
ZCA9IDIwNCwKK30KK3B1YmxpYyBlbnVtIEVDaGFwZXJvbmVDb25maWdGaWxlCit7CisgICAgICAg
TGl2ZSA9IDEsCisgICAgICAgVGVtcCA9IDIsCit9CitwdWJsaWMgZW51bSBFQ2hhcGVyb25lSW1w
b3J0RmxhZ3MKK3sKKyAgICAgICBFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkgPSAxLAorfQor
cHVibGljIGVudW0gRVZSQ29tcG9zaXRvckVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAg
ICAgUmVxdWVzdEZhaWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwK
KyAgICAgICBEb05vdEhhdmVGb2N1cyA9IDEwMSwKKyAgICAgICBJbnZhbGlkVGV4dHVyZSA9IDEw
MiwKKyAgICAgICBJc05vdFNjZW5lQXBwbGljYXRpb24gPSAxMDMsCisgICAgICAgVGV4dHVyZUlz
T25Xcm9uZ0RldmljZSA9IDEwNCwKKyAgICAgICBUZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0
ID0gMTA1LAorICAgICAgIFNoYXJlZFRleHR1cmVzTm90U3VwcG9ydGVkID0gMTA2LAorICAgICAg
IEluZGV4T3V0T2ZSYW5nZSA9IDEwNywKKyAgICAgICBBbHJlYWR5U3VibWl0dGVkID0gMTA4LAor
fQorcHVibGljIGVudW0gVlJPdmVybGF5SW5wdXRNZXRob2QKK3sKKyAgICAgICBOb25lID0gMCwK
KyAgICAgICBNb3VzZSA9IDEsCit9CitwdWJsaWMgZW51bSBWUk92ZXJsYXlUcmFuc2Zvcm1UeXBl
Cit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtX0Fic29sdXRlID0gMCwKKyAgICAgICBWUk92
ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZERldmljZVJlbGF0aXZlID0gMSwKKyAgICAgICBWUk92ZXJs
YXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCisgICAgICAgVlJPdmVybGF5VHJhbnNmb3Jt
X1RyYWNrZWRDb21wb25lbnQgPSAzLAorfQorcHVibGljIGVudW0gVlJPdmVybGF5RmxhZ3MKK3sK
KyAgICAgICBOb25lID0gMCwKKyAgICAgICBDdXJ2ZWQgPSAxLAorICAgICAgIFJHU1M0WCA9IDIs
CisgICAgICAgTm9EYXNoYm9hcmRUYWIgPSAzLAorICAgICAgIEFjY2VwdHNHYW1lcGFkRXZlbnRz
ID0gNCwKKyAgICAgICBTaG93R2FtZXBhZEZvY3VzID0gNSwKKyAgICAgICBTZW5kVlJTY3JvbGxF
dmVudHMgPSA2LAorICAgICAgIFNlbmRWUlRvdWNocGFkRXZlbnRzID0gNywKKyAgICAgICBTaG93
VG91Y2hQYWRTY3JvbGxXaGVlbCA9IDgsCisgICAgICAgVHJhbnNmZXJPd25lcnNoaXBUb0ludGVy
bmFsUHJvY2VzcyA9IDksCisgICAgICAgU2lkZUJ5U2lkZV9QYXJhbGxlbCA9IDEwLAorICAgICAg
IFNpZGVCeVNpZGVfQ3Jvc3NlZCA9IDExLAorICAgICAgIFBhbm9yYW1hID0gMTIsCisgICAgICAg
U3RlcmVvUGFub3JhbWEgPSAxMywKKyAgICAgICBTb3J0V2l0aE5vblNjZW5lT3ZlcmxheXMgPSAx
NCwKKyAgICAgICBWaXNpYmxlSW5EYXNoYm9hcmQgPSAxNSwKK30KK3B1YmxpYyBlbnVtIFZSTWVz
c2FnZU92ZXJsYXlSZXNwb25zZQoreworICAgICAgIEJ1dHRvblByZXNzXzAgPSAwLAorICAgICAg
IEJ1dHRvblByZXNzXzEgPSAxLAorICAgICAgIEJ1dHRvblByZXNzXzIgPSAyLAorICAgICAgIEJ1
dHRvblByZXNzXzMgPSAzLAorICAgICAgIENvdWxkbnRGaW5kU3lzdGVtT3ZlcmxheSA9IDQsCisg
ICAgICAgQ291bGRudEZpbmRPckNyZWF0ZUNsaWVudE92ZXJsYXkgPSA1LAorICAgICAgIEFwcGxp
Y2F0aW9uUXVpdCA9IDYsCit9CitwdWJsaWMgZW51bSBFR2FtZXBhZFRleHRJbnB1dE1vZGUKK3sK
KyAgICAgICBrX0VHYW1lcGFkVGV4dElucHV0TW9kZU5vcm1hbCA9IDAsCisgICAgICAga19FR2Ft
ZXBhZFRleHRJbnB1dE1vZGVQYXNzd29yZCA9IDEsCisgICAgICAga19FR2FtZXBhZFRleHRJbnB1
dE1vZGVTdWJtaXQgPSAyLAorfQorcHVibGljIGVudW0gRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9k
ZQoreworICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZVNpbmdsZUxpbmUgPSAwLAor
ICAgICAgIGtfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAorfQor
cHVibGljIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24KK3sKKyAgICAgICBVcCA9IDAsCisgICAgICAg
RG93biA9IDEsCisgICAgICAgTGVmdCA9IDIsCisgICAgICAgUmlnaHQgPSAzLAorICAgICAgIENv
dW50ID0gNCwKK30KK3B1YmxpYyBlbnVtIEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0
aXZlVHlwZQoreworICAgICAgIE92ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3Rh
bmdsZSA9IDAsCisgICAgICAgT3ZlcmxheUludGVyc2VjdGlvblByaW1pdGl2ZVR5cGVfQ2lyY2xl
ID0gMSwKK30KK3B1YmxpYyBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKK3sKKyAgICAgICBOb25l
ID0gMCwKKyAgICAgICBMb2FkaW5nID0gMTAwLAorICAgICAgIE5vdFN1cHBvcnRlZCA9IDIwMCwK
KyAgICAgICBJbnZhbGlkQXJnID0gMzAwLAorICAgICAgIEludmFsaWRNb2RlbCA9IDMwMSwKKyAg
ICAgICBOb1NoYXBlcyA9IDMwMiwKKyAgICAgICBNdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAgICAg
ICBUb29NYW55VmVydGljZXMgPSAzMDQsCisgICAgICAgTXVsdGlwbGVUZXh0dXJlcyA9IDMwNSwK
KyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBOb3RFbm91Z2hOb3JtYWxzID0g
MzA3LAorICAgICAgIE5vdEVub3VnaFRleENvb3JkcyA9IDMwOCwKKyAgICAgICBJbnZhbGlkVGV4
dHVyZSA9IDQwMCwKK30KK3B1YmxpYyBlbnVtIEVWUkNvbXBvbmVudFByb3BlcnR5Cit7CisgICAg
ICAgSXNTdGF0aWMgPSAxLAorICAgICAgIElzVmlzaWJsZSA9IDIsCisgICAgICAgSXNUb3VjaGVk
ID0gNCwKKyAgICAgICBJc1ByZXNzZWQgPSA4LAorICAgICAgIElzU2Nyb2xsZWQgPSAxNiwKK30K
K3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblR5cGUKK3sKKyAgICAgICBUcmFuc2llbnQgPSAw
LAorICAgICAgIFBlcnNpc3RlbnQgPSAxLAorICAgICAgIFRyYW5zaWVudF9TeXN0ZW1XaXRoVXNl
clZhbHVlID0gMiwKK30KK3B1YmxpYyBlbnVtIEVWUk5vdGlmaWNhdGlvblN0eWxlCit7CisgICAg
ICAgTm9uZSA9IDAsCisgICAgICAgQXBwbGljYXRpb24gPSAxMDAsCisgICAgICAgQ29udGFjdF9E
aXNhYmxlZCA9IDIwMCwKKyAgICAgICBDb250YWN0X0VuYWJsZWQgPSAyMDEsCisgICAgICAgQ29u
dGFjdF9BY3RpdmUgPSAyMDIsCit9CitwdWJsaWMgZW51bSBFVlJTZXR0aW5nc0Vycm9yCit7Cisg
ICAgICAgTm9uZSA9IDAsCisgICAgICAgSVBDRmFpbGVkID0gMSwKKyAgICAgICBXcml0ZUZhaWxl
ZCA9IDIsCisgICAgICAgUmVhZEZhaWxlZCA9IDMsCisgICAgICAgSnNvblBhcnNlRmFpbGVkID0g
NCwKKyAgICAgICBVbnNldFNldHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfQorcHVibGljIGVudW0g
RVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgTm9uZSA9IDAsCisgICAgICAgUmVxdWVzdEZh
aWxlZCA9IDEsCisgICAgICAgSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBOb3RG
b3VuZCA9IDEwMSwKKyAgICAgICBCdWZmZXJUb29TbWFsbCA9IDEwMiwKKyAgICAgICBTY3JlZW5z
aG90QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9CisKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9EYXRhX3QKK3sKKyAgICAgICBbRmll
bGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAgICAg
W0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsK
KyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X01vdXNlX3QgbW91c2U7Cisg
ICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7Cisg
ICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9Qcm9jZXNzX3QgcHJvY2VzczsK
KyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5v
dGlmaWNhdGlvbjsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X092ZXJs
YXlfdCBvdmVybGF5OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU3Rh
dHVzX3Qgc3RhdHVzOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfSXBk
X3QgaXBkOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfQ2hhcGVyb25l
X3QgY2hhcGVyb25lOworICAgICAgIFtGaWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfUGVy
Zm9ybWFuY2VUZXN0X3QgcGVyZm9ybWFuY2VUZXN0OworICAgICAgIFtGaWVsZE9mZnNldCgwKV0g
cHVibGljIFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QgdG91Y2hQYWRNb3ZlOworICAgICAgIFtGaWVs
ZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfU2VhdGVkWmVyb1Bvc2VSZXNldF90IHNlYXRlZFpl
cm9Qb3NlUmVzZXQ7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9TY3Jl
ZW5zaG90X3Qgc2NyZWVuc2hvdDsKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2
ZW50X1NjcmVlbnNob3RQcm9ncmVzc190IHNjcmVlbnNob3RQcm9ncmVzczsKKyAgICAgICBbRmll
bGRPZmZzZXQoMCldIHB1YmxpYyBWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QgYXBwbGljYXRp
b25MYXVuY2g7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBwdWJsaWMgVlJFdmVudF9FZGl0aW5n
Q2FtZXJhU3VyZmFjZV90IGNhbWVyYVN1cmZhY2U7CisgICAgICAgW0ZpZWxkT2Zmc2V0KDApXSBw
dWJsaWMgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IG1lc3NhZ2VPdmVybGF5OworICAgICAgIFtG
aWVsZE9mZnNldCgwKV0gcHVibGljIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsgLy8gVGhp
cyBoYXMgdG8gYmUgYXQgdGhlIGVuZCBkdWUgdG8gYSBtb25vIGJ1ZworfQorCisKK1tTdHJ1Y3RM
YXlvdXQoTGF5b3V0S2luZC5FeHBsaWNpdCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJz
ZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QKK3sKKyAgICAgICBbRmllbGRPZmZzZXQoMCldIHB1
YmxpYyBJbnRlcnNlY3Rpb25NYXNrUmVjdGFuZ2xlX3QgbV9SZWN0YW5nbGU7CisgICAgICAgW0Zp
ZWxkT2Zmc2V0KDApXSBwdWJsaWMgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90IG1fQ2lyY2xlOwor
fQorCitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
SG1kTWF0cml4MzRfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBtMDsgLy9mbG9hdFszXVs0XQor
ICAgICAgIHB1YmxpYyBmbG9hdCBtMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTI7CisgICAgICAg
cHVibGljIGZsb2F0IG0zOworICAgICAgIHB1YmxpYyBmbG9hdCBtNDsKKyAgICAgICBwdWJsaWMg
ZmxvYXQgbTU7CisgICAgICAgcHVibGljIGZsb2F0IG02OworICAgICAgIHB1YmxpYyBmbG9hdCBt
NzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTg7CisgICAgICAgcHVibGljIGZsb2F0IG05OworICAg
ICAgIHB1YmxpYyBmbG9hdCBtMTA7CisgICAgICAgcHVibGljIGZsb2F0IG0xMTsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRNYXRyaXg0
NF90Cit7CisgICAgICAgcHVibGljIGZsb2F0IG0wOyAvL2Zsb2F0WzRdWzRdCisgICAgICAgcHVi
bGljIGZsb2F0IG0xOworICAgICAgIHB1YmxpYyBmbG9hdCBtMjsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbTM7CisgICAgICAgcHVibGljIGZsb2F0IG00OworICAgICAgIHB1YmxpYyBmbG9hdCBtNTsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbTY7CisgICAgICAgcHVibGljIGZsb2F0IG03OworICAgICAg
IHB1YmxpYyBmbG9hdCBtODsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTk7CisgICAgICAgcHVibGlj
IGZsb2F0IG0xMDsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTExOworICAgICAgIHB1YmxpYyBmbG9h
dCBtMTI7CisgICAgICAgcHVibGljIGZsb2F0IG0xMzsKKyAgICAgICBwdWJsaWMgZmxvYXQgbTE0
OworICAgICAgIHB1YmxpYyBmbG9hdCBtMTU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yM190Cit7CisgICAgICAgcHVibGlj
IGZsb2F0IHYwOyAvL2Zsb2F0WzNdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworICAgICAgIHB1
YmxpYyBmbG9hdCB2MjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBIbWRWZWN0b3I0X3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgdjA7IC8v
ZmxvYXRbNF0KKyAgICAgICBwdWJsaWMgZmxvYXQgdjE7CisgICAgICAgcHVibGljIGZsb2F0IHYy
OworICAgICAgIHB1YmxpYyBmbG9hdCB2MzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRWZWN0b3IzZF90Cit7CisgICAgICAgcHVibGlj
IGRvdWJsZSB2MDsgLy9kb3VibGVbM10KKyAgICAgICBwdWJsaWMgZG91YmxlIHYxOworICAgICAg
IHB1YmxpYyBkb3VibGUgdjI7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh
bCldIHB1YmxpYyBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgcHVibGljIGZsb2F0IHYw
OyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZsb2F0IHYxOworfQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEhtZFF1YXRlcm5pb25fdAorewor
ICAgICAgIHB1YmxpYyBkb3VibGUgdzsKKyAgICAgICBwdWJsaWMgZG91YmxlIHg7CisgICAgICAg
cHVibGljIGRvdWJsZSB5OworICAgICAgIHB1YmxpYyBkb3VibGUgejsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBIbWRDb2xvcl90Cit7Cisg
ICAgICAgcHVibGljIGZsb2F0IHI7CisgICAgICAgcHVibGljIGZsb2F0IGc7CisgICAgICAgcHVi
bGljIGZsb2F0IGI7CisgICAgICAgcHVibGljIGZsb2F0IGE7Cit9CitbU3RydWN0TGF5b3V0KExh
eW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUXVhZF90Cit7CisgICAgICAg
cHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczA7IC8vSG1kVmVjdG9yM190WzRdCisgICAgICAg
cHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczE7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNf
dCB2Q29ybmVyczI7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2Q29ybmVyczM7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSG1kUmVj
dDJfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IyX3QgdlRvcExlZnQ7CisgICAgICAgcHVi
bGljIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QKK3sK
KyAgICAgICBwdWJsaWMgZmxvYXQgcmZSZWQwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVibGljIGZs
b2F0IHJmUmVkMTsKKyAgICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjA7IC8vZmxvYXRbMl0KKyAg
ICAgICBwdWJsaWMgZmxvYXQgcmZHcmVlbjE7CisgICAgICAgcHVibGljIGZsb2F0IHJmQmx1ZTA7
IC8vZmxvYXRbMl0KKyAgICAgICBwdWJsaWMgZmxvYXQgcmZCbHVlMTsKK30KK1tTdHJ1Y3RMYXlv
dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBUZXh0dXJlX3QKK3sKKyAg
ICAgICBwdWJsaWMgSW50UHRyIGhhbmRsZTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIEVUZXh0
dXJlVHlwZSBlVHlwZTsKKyAgICAgICBwdWJsaWMgRUNvbG9yU3BhY2UgZUNvbG9yU3BhY2U7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVHJh
Y2tlZERldmljZVBvc2VfdAoreworICAgICAgIHB1YmxpYyBIbWRNYXRyaXgzNF90IG1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2VmVsb2NpdHk7
CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2QW5ndWxhclZlbG9jaXR5OworICAgICAgIHB1
YmxpYyBFVHJhY2tpbmdSZXN1bHQgZVRyYWNraW5nUmVzdWx0OworICAgICAgIFtNYXJzaGFsQXMo
VW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wgYlBvc2VJc1ZhbGlkOworICAg
ICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJvb2wgYkRl
dmljZUlzQ29ubmVjdGVkOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwp
XSBwdWJsaWMgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgcHVibGljIGZsb2F0
IHVNaW47CisgICAgICAgcHVibGljIGZsb2F0IHZNaW47CisgICAgICAgcHVibGljIGZsb2F0IHVN
YXg7CisgICAgICAgcHVibGljIGZsb2F0IHZNYXg7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtp
bmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJWdWxrYW5UZXh0dXJlRGF0YV90Cit7Cisg
ICAgICAgcHVibGljIHVsb25nIG1fbkltYWdlOworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wRGV2
aWNlOyAvLyBzdHJ1Y3QgVmtEZXZpY2VfVCAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BQaHlz
aWNhbERldmljZTsgLy8gc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqCisgICAgICAgcHVibGlj
IEludFB0ciBtX3BJbnN0YW5jZTsgLy8gc3RydWN0IFZrSW5zdGFuY2VfVCAqCisgICAgICAgcHVi
bGljIEludFB0ciBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCisgICAgICAgcHVibGlj
IHVpbnQgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICBwdWJsaWMgdWludCBtX25XaWR0aDsK
KyAgICAgICBwdWJsaWMgdWludCBtX25IZWlnaHQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uRm9y
bWF0OworICAgICAgIHB1YmxpYyB1aW50IG1fblNhbXBsZUNvdW50OworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFf
dAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wUmVzb3VyY2U7IC8vIHN0cnVjdCBJRDNEMTJS
ZXNvdXJjZSAqCisgICAgICAgcHVibGljIEludFB0ciBtX3BDb21tYW5kUXVldWU7IC8vIHN0cnVj
dCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHB1YmxpYyB1aW50IG1fbk5vZGVNYXNrOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
RXZlbnRfQ29udHJvbGxlcl90Cit7CisgICAgICAgcHVibGljIHVpbnQgYnV0dG9uOworfQorW1N0
cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRf
TW91c2VfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCB4OworICAgICAgIHB1YmxpYyBmbG9hdCB5
OworICAgICAgIHB1YmxpYyB1aW50IGJ1dHRvbjsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2lu
ZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAg
cHVibGljIGZsb2F0IHhkZWx0YTsKKyAgICAgICBwdWJsaWMgZmxvYXQgeWRlbHRhOworICAgICAg
IHB1YmxpYyB1aW50IHJlcGVhdENvdW50OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNl
cXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfVG91Y2hQYWRNb3ZlX3QKK3sKKyAgICAg
ICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJGaW5n
ZXJEb3duOworICAgICAgIHB1YmxpYyBmbG9hdCBmbFNlY29uZHNGaW5nZXJEb3duOworICAgICAg
IHB1YmxpYyBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgcHVibGljIGZsb2F0IGZWYWx1ZVlG
aXJzdDsKKyAgICAgICBwdWJsaWMgZmxvYXQgZlZhbHVlWFJhdzsKKyAgICAgICBwdWJsaWMgZmxv
YXQgZlZhbHVlWVJhdzsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0g
cHVibGljIHN0cnVjdCBWUkV2ZW50X05vdGlmaWNhdGlvbl90Cit7CisgICAgICAgcHVibGljIHVs
b25nIHVsVXNlclZhbHVlOworICAgICAgIHB1YmxpYyB1aW50IG5vdGlmaWNhdGlvbklkOworfQor
W1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZl
bnRfUHJvY2Vzc190Cit7CisgICAgICAgcHVibGljIHVpbnQgcGlkOworICAgICAgIHB1YmxpYyB1
aW50IG9sZFBpZDsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAg
IHB1YmxpYyBib29sIGJGb3JjZWQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAgICBwdWJsaWMg
dWxvbmcgb3ZlcmxheUhhbmRsZTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50
aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1N0YXR1c190Cit7CisgICAgICAgcHVibGljIHVp
bnQgc3RhdHVzU3RhdGU7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCld
IHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9LZXlib2FyZF90Cit7CisgICAgICAgcHVibGljIGJ5dGUg
Y05ld0lucHV0MCxjTmV3SW5wdXQxLGNOZXdJbnB1dDIsY05ld0lucHV0MyxjTmV3SW5wdXQ0LGNO
ZXdJbnB1dDUsY05ld0lucHV0NixjTmV3SW5wdXQ3OworICAgICAgIHB1YmxpYyB1bG9uZyB1VXNl
clZhbHVlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMg
c3RydWN0IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgaXBkTWV0ZXJzOwor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZS
RXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uUHJldmlvdXNVbml2
ZXJzZTsKKyAgICAgICBwdWJsaWMgdWxvbmcgbV9uQ3VycmVudFVuaXZlcnNlOworfQorW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUmVz
ZXJ2ZWRfdAoreworICAgICAgIHB1YmxpYyB1bG9uZyByZXNlcnZlZDA7CisgICAgICAgcHVibGlj
IHVsb25nIHJlc2VydmVkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFs
KV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgcHVi
bGljIHVpbnQgbV9uRmlkZWxpdHlMZXZlbDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdAor
eworICAgICAgIFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5JMSldCisgICAgICAgcHVibGljIGJv
b2wgYlJlc2V0QnlTeXN0ZW1NZW51OworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgcHVi
bGljIHVpbnQgaGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50IHR5cGU7Cit9CitbU3RydWN0TGF5
b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJFdmVudF9TY3JlZW5z
aG90UHJvZ3Jlc3NfdAoreworICAgICAgIHB1YmxpYyBmbG9hdCBwcm9ncmVzczsKK30KK1tTdHJ1
Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBWUkV2ZW50X0Fw
cGxpY2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICBwdWJsaWMgdWludCBwaWQ7CisgICAgICAgcHVi
bGljIHVpbnQgdW5BcmdzSGFuZGxlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVl
bnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdAorewor
ICAgICAgIHB1YmxpYyB1bG9uZyBvdmVybGF5SGFuZGxlOworICAgICAgIHB1YmxpYyB1aW50IG5W
aXN1YWxNb2RlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJs
aWMgc3RydWN0IFZSRXZlbnRfTWVzc2FnZU92ZXJsYXlfdAoreworICAgICAgIHB1YmxpYyB1aW50
IHVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlOworfQorW1N0cnVjdExheW91dChMYXlvdXRLaW5k
LlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAoreworICAgICAg
IHB1YmxpYyB1bG9uZyBjb250YWluZXI7CisgICAgICAgcHVibGljIEVUcmFja2VkRGV2aWNlUHJv
cGVydHkgcHJvcDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICBwdWJsaWMgdWludCBldmVudFR5cGU7Cisg
ICAgICAgcHVibGljIHVpbnQgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIHB1YmxpYyBmbG9h
dCBldmVudEFnZVNlY29uZHM7CisgICAgICAgcHVibGljIFZSRXZlbnRfRGF0YV90IGRhdGE7Cit9
CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgSGlk
ZGVuQXJlYU1lc2hfdAoreworICAgICAgIHB1YmxpYyBJbnRQdHIgcFZlcnRleERhdGE7IC8vIGNv
bnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRyaWFu
Z2xlQ291bnQ7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1Ymxp
YyBzdHJ1Y3QgVlJDb250cm9sbGVyQXhpc190Cit7CisgICAgICAgcHVibGljIGZsb2F0IHg7Cisg
ICAgICAgcHVibGljIGZsb2F0IHk7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVu
dGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAoreworICAgICAgIHB1Ymxp
YyB1aW50IHVuUGFja2V0TnVtOworICAgICAgIHB1YmxpYyB1bG9uZyB1bEJ1dHRvblByZXNzZWQ7
CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uVG91Y2hlZDsKKyAgICAgICBwdWJsaWMgVlJD
b250cm9sbGVyQXhpc190IHJBeGlzMDsgLy9WUkNvbnRyb2xsZXJBeGlzX3RbNV0KKyAgICAgICBw
dWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzMTsKKyAgICAgICBwdWJsaWMgVlJDb250cm9s
bGVyQXhpc190IHJBeGlzMjsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlz
MzsKKyAgICAgICBwdWJsaWMgVlJDb250cm9sbGVyQXhpc190IHJBeGlzNDsKK30KKy8vIFRoaXMg
c3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5IGNvbXBhdGliaWxpdHkgb24gTGludXgg
YW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9
IDQpXSBwdWJsaWMgc3RydWN0IFZSQ29udHJvbGxlclN0YXRlX3RfUGFja2VkCit7CisgICAgICAg
cHVibGljIHVpbnQgdW5QYWNrZXROdW07CisgICAgICAgcHVibGljIHVsb25nIHVsQnV0dG9uUHJl
c3NlZDsKKyAgICAgICBwdWJsaWMgdWxvbmcgdWxCdXR0b25Ub3VjaGVkOworICAgICAgIHB1Ymxp
YyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMwOyAvL1ZSQ29udHJvbGxlckF4aXNfdFs1XQorICAg
ICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXMxOworICAgICAgIHB1YmxpYyBWUkNv
bnRyb2xsZXJBeGlzX3QgckF4aXMyOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3Qg
ckF4aXMzOworICAgICAgIHB1YmxpYyBWUkNvbnRyb2xsZXJBeGlzX3QgckF4aXM0OworICAgICAg
IHB1YmxpYyB2b2lkIFVucGFjayhyZWYgVlJDb250cm9sbGVyU3RhdGVfdCB1bnBhY2tlZCkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHVucGFja2VkLnVuUGFja2V0TnVtID0gdGhpcy51blBhY2tl
dE51bTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudWxCdXR0b25QcmVzc2VkID0gdGhpcy51bEJ1
dHRvblByZXNzZWQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnVsQnV0dG9uVG91Y2hlZCA9IHRo
aXMudWxCdXR0b25Ub3VjaGVkOworICAgICAgICAgICAgICB1bnBhY2tlZC5yQXhpczAgPSB0aGlz
LnJBeGlzMDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQuckF4aXMxID0gdGhpcy5yQXhpczE7Cisg
ICAgICAgICAgICAgIHVucGFja2VkLnJBeGlzMiA9IHRoaXMuckF4aXMyOworICAgICAgICAgICAg
ICB1bnBhY2tlZC5yQXhpczMgPSB0aGlzLnJBeGlzMzsKKyAgICAgICAgICAgICAgdW5wYWNrZWQu
ckF4aXM0ID0gdGhpcy5yQXhpczQ7CisgICAgICAgfQorfQorW1N0cnVjdExheW91dChMYXlvdXRL
aW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdz
Cit7CisgICAgICAgcHVibGljIHVpbnQgc2l6ZTsKKyAgICAgICBbTWFyc2hhbEFzKFVubWFuYWdl
ZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGN1cnZlZDsKKyAgICAgICBbTWFyc2hhbEFz
KFVubWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGFudGlhbGlhczsKKyAgICAg
ICBwdWJsaWMgZmxvYXQgc2NhbGU7CisgICAgICAgcHVibGljIGZsb2F0IGRpc3RhbmNlOworICAg
ICAgIHB1YmxpYyBmbG9hdCBhbHBoYTsKKyAgICAgICBwdWJsaWMgZmxvYXQgdU9mZnNldDsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgdk9mZnNldDsKKyAgICAgICBwdWJsaWMgZmxvYXQgdVNjYWxlOwor
ICAgICAgIHB1YmxpYyBmbG9hdCB2U2NhbGU7CisgICAgICAgcHVibGljIGZsb2F0IGdyaWREaXZz
OworICAgICAgIHB1YmxpYyBmbG9hdCBncmlkV2lkdGg7CisgICAgICAgcHVibGljIGZsb2F0IGdy
aWRTY2FsZTsKKyAgICAgICBwdWJsaWMgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9CitbU3Ry
dWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ2FtZXJhVmlk
ZW9TdHJlYW1GcmFtZUhlYWRlcl90Cit7CisgICAgICAgcHVibGljIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICBwdWJsaWMgdWludCBuV2lkdGg7CisgICAgICAg
cHVibGljIHVpbnQgbkhlaWdodDsKKyAgICAgICBwdWJsaWMgdWludCBuQnl0ZXNQZXJQaXhlbDsK
KyAgICAgICBwdWJsaWMgdWludCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBwdWJsaWMgVHJhY2tl
ZERldmljZVBvc2VfdCBzdGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190
Cit7CisgICAgICAgcHVibGljIEludFB0ciBwY2hLZXk7IC8vIGNvbnN0IGNoYXIgKgorICAgICAg
IHB1YmxpYyBJbnRQdHIgcGNoVmFsdWU7IC8vIGNvbnN0IGNoYXIgKgorfQorW1N0cnVjdExheW91
dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IENvbXBvc2l0b3JfRnJhbWVU
aW1pbmcKK3sKKyAgICAgICBwdWJsaWMgdWludCBtX25TaXplOworICAgICAgIHB1YmxpYyB1aW50
IG1fbkZyYW1lSW5kZXg7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJhbWVQcmVzZW50czsK
KyAgICAgICBwdWJsaWMgdWludCBtX25OdW1NaXNQcmVzZW50ZWQ7CisgICAgICAgcHVibGljIHVp
bnQgbV9uTnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICBwdWJsaWMgdWludCBtX25SZXByb2plY3Rp
b25GbGFnczsKKyAgICAgICBwdWJsaWMgZG91YmxlIG1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzOwor
ICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUHJlU3VibWl0R3B1TXM7CisgICAgICAgcHVibGljIGZs
b2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxUb3RhbFJl
bmRlckdwdU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckdwdU1z
OworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOworICAgICAg
IHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvcklkbGVDcHVNczsKKyAgICAgICBwdWJsaWMgZmxv
YXQgbV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNczsKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFBy
ZXNlbnRDYWxsQ3B1TXM7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXYWl0Rm9yUHJlc2VudENw
dU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsU3VibWl0RnJhbWVNczsKKyAgICAgICBwdWJs
aWMgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOworICAgICAgIHB1YmxpYyBmbG9hdCBt
X2ZsTmV3UG9zZXNSZWFkeU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsTmV3RnJhbWVSZWFk
eU1zOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Cisg
ICAgICAgcHVibGljIGZsb2F0IG1fZmxDb21wb3NpdG9yVXBkYXRlRW5kTXM7CisgICAgICAgcHVi
bGljIGZsb2F0IG1fZmxDb21wb3NpdG9yUmVuZGVyU3RhcnRNczsKKyAgICAgICBwdWJsaWMgVHJh
Y2tlZERldmljZVBvc2VfdCBtX0htZFBvc2U7Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQu
U2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ29tcG9zaXRvcl9DdW11bGF0aXZlU3RhdHMKK3sK
KyAgICAgICBwdWJsaWMgdWludCBtX25QaWQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRnJh
bWVQcmVzZW50czsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Ecm9wcGVkRnJhbWVzOworICAg
ICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzOworICAgICAgIHB1YmxpYyB1
aW50IG1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0dXA7CisgICAgICAgcHVibGljIHVpbnQgbV9u
TnVtRHJvcHBlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1SZXBy
b2plY3RlZEZyYW1lc09uU3RhcnR1cDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1Mb2FkaW5n
OworICAgICAgIHB1YmxpYyB1aW50IG1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5nOworICAgICAg
IHB1YmxpYyB1aW50IG1fbk51bURyb3BwZWRGcmFtZXNMb2FkaW5nOworICAgICAgIHB1YmxpYyB1
aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICBwdWJsaWMgdWludCBt
X25OdW1UaW1lZE91dDsKKyAgICAgICBwdWJsaWMgdWludCBtX25OdW1GcmFtZVByZXNlbnRzVGlt
ZWRPdXQ7CisgICAgICAgcHVibGljIHVpbnQgbV9uTnVtRHJvcHBlZEZyYW1lc1RpbWVkT3V0Owor
ICAgICAgIHB1YmxpYyB1aW50IG1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQ7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgVlJPdmVy
bGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QKK3sKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yM190IHZT
b3VyY2U7CisgICAgICAgcHVibGljIEhtZFZlY3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgIHB1
YmxpYyBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luOworfQorW1N0cnVjdExheW91dChM
YXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlv
blJlc3VsdHNfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3QgdlBvaW50OworICAgICAg
IHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAgICAgICBwdWJsaWMgSG1kVmVjdG9yMl90
IHZVVnM7CisgICAgICAgcHVibGljIGZsb2F0IGZEaXN0YW5jZTsKK30KK1tTdHJ1Y3RMYXlvdXQo
TGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrUmVj
dGFuZ2xlX3QKK3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbFRvcExlZnRYOworICAgICAgIHB1
YmxpYyBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgcHVibGljIGZsb2F0IG1fZmxXaWR0aDsK
KyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbEhlaWdodDsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0
S2luZC5TZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QK
K3sKKyAgICAgICBwdWJsaWMgZmxvYXQgbV9mbENlbnRlclg7CisgICAgICAgcHVibGljIGZsb2F0
IG1fZmxDZW50ZXJZOworICAgICAgIHB1YmxpYyBmbG9hdCBtX2ZsUmFkaXVzOworfQorW1N0cnVj
dExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdAoreworICAgICAgIHB1YmxpYyBFVlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUgbV9uUHJpbWl0aXZlVHlwZTsKKyAgICAgICBwdWJs
aWMgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdAoreworICAgICAgIHB1YmxpYyBIbWRNYXRyaXgz
NF90IG1UcmFja2luZ1RvQ29tcG9uZW50UmVuZGVyTW9kZWw7CisgICAgICAgcHVibGljIEhtZE1h
dHJpeDM0X3QgbVRyYWNraW5nVG9Db21wb25lbnRMb2NhbDsKKyAgICAgICBwdWJsaWMgdWludCB1
UHJvcGVydGllczsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0gcHVi
bGljIHN0cnVjdCBSZW5kZXJNb2RlbF9WZXJ0ZXhfdAoreworICAgICAgIHB1YmxpYyBIbWRWZWN0
b3IzX3QgdlBvc2l0aW9uOworICAgICAgIHB1YmxpYyBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAg
ICAgICBwdWJsaWMgZmxvYXQgcmZUZXh0dXJlQ29vcmQwOyAvL2Zsb2F0WzJdCisgICAgICAgcHVi
bGljIGZsb2F0IHJmVGV4dHVyZUNvb3JkMTsKK30KK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5T
ZXF1ZW50aWFsKV0gcHVibGljIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QKK3sKKyAg
ICAgICBwdWJsaWMgY2hhciB1bldpZHRoOworICAgICAgIHB1YmxpYyBjaGFyIHVuSGVpZ2h0Owor
ICAgICAgIHB1YmxpYyBJbnRQdHIgcnViVGV4dHVyZU1hcERhdGE7IC8vIGNvbnN0IHVpbnQ4X3Qg
KgorfQorLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgZm9yIGJhY2t3YXJkcyBiaW5hcnkgY29tcGF0aWJp
bGl0eSBvbiBMaW51eCBhbmQgT1NYIG9ubHkKK1tTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1
ZW50aWFsLCBQYWNrID0gNCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfVGV4dHVyZU1hcF90
X1BhY2tlZAoreworICAgICAgIHB1YmxpYyBjaGFyIHVuV2lkdGg7CisgICAgICAgcHVibGljIGNo
YXIgdW5IZWlnaHQ7CisgICAgICAgcHVibGljIEludFB0ciBydWJUZXh0dXJlTWFwRGF0YTsgLy8g
Y29uc3QgdWludDhfdCAqCisgICAgICAgcHVibGljIHZvaWQgVW5wYWNrKHJlZiBSZW5kZXJNb2Rl
bF9UZXh0dXJlTWFwX3QgdW5wYWNrZWQpCisgICAgICAgeworICAgICAgICAgICAgICB1bnBhY2tl
ZC51bldpZHRoID0gdGhpcy51bldpZHRoOworICAgICAgICAgICAgICB1bnBhY2tlZC51bkhlaWdo
dCA9IHRoaXMudW5IZWlnaHQ7CisgICAgICAgICAgICAgIHVucGFja2VkLnJ1YlRleHR1cmVNYXBE
YXRhID0gdGhpcy5ydWJUZXh0dXJlTWFwRGF0YTsKKyAgICAgICB9Cit9CitbU3RydWN0TGF5b3V0
KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgUmVuZGVyTW9kZWxfdAorewor
ICAgICAgIHB1YmxpYyBJbnRQdHIgclZlcnRleERhdGE7IC8vIGNvbnN0IHN0cnVjdCB2cjo6UmVu
ZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHB1YmxpYyB1aW50IHVuVmVydGV4Q291bnQ7Cisg
ICAgICAgcHVibGljIEludFB0ciBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50MTZfdCAqCisgICAg
ICAgcHVibGljIHVpbnQgdW5UcmlhbmdsZUNvdW50OworICAgICAgIHB1YmxpYyBpbnQgZGlmZnVz
ZVRleHR1cmVJZDsKK30KKy8vIFRoaXMgc3RydWN0dXJlIGlzIGZvciBiYWNrd2FyZHMgYmluYXJ5
IGNvbXBhdGliaWxpdHkgb24gTGludXggYW5kIE9TWCBvbmx5CitbU3RydWN0TGF5b3V0KExheW91
dEtpbmQuU2VxdWVudGlhbCwgUGFjayA9IDQpXSBwdWJsaWMgc3RydWN0IFJlbmRlck1vZGVsX3Rf
UGFja2VkCit7CisgICAgICAgcHVibGljIEludFB0ciByVmVydGV4RGF0YTsgLy8gY29uc3Qgc3Ry
dWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqCisgICAgICAgcHVibGljIHVpbnQgdW5WZXJ0
ZXhDb3VudDsKKyAgICAgICBwdWJsaWMgSW50UHRyIHJJbmRleERhdGE7IC8vIGNvbnN0IHVpbnQx
Nl90ICoKKyAgICAgICBwdWJsaWMgdWludCB1blRyaWFuZ2xlQ291bnQ7CisgICAgICAgcHVibGlj
IGludCBkaWZmdXNlVGV4dHVyZUlkOworICAgICAgIHB1YmxpYyB2b2lkIFVucGFjayhyZWYgUmVu
ZGVyTW9kZWxfdCB1bnBhY2tlZCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHVucGFja2VkLnJW
ZXJ0ZXhEYXRhID0gdGhpcy5yVmVydGV4RGF0YTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudW5W
ZXJ0ZXhDb3VudCA9IHRoaXMudW5WZXJ0ZXhDb3VudDsKKyAgICAgICAgICAgICAgdW5wYWNrZWQu
ckluZGV4RGF0YSA9IHRoaXMuckluZGV4RGF0YTsKKyAgICAgICAgICAgICAgdW5wYWNrZWQudW5U
cmlhbmdsZUNvdW50ID0gdGhpcy51blRyaWFuZ2xlQ291bnQ7CisgICAgICAgICAgICAgIHVucGFj
a2VkLmRpZmZ1c2VUZXh0dXJlSWQgPSB0aGlzLmRpZmZ1c2VUZXh0dXJlSWQ7CisgICAgICAgfQor
fQorW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwpXSBwdWJsaWMgc3RydWN0IFJl
bmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBbTWFyc2hhbEFzKFVu
bWFuYWdlZFR5cGUuSTEpXQorICAgICAgIHB1YmxpYyBib29sIGJTY3JvbGxXaGVlbFZpc2libGU7
Cit9CitbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3Qg
Tm90aWZpY2F0aW9uQml0bWFwX3QKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcEltYWdlRGF0
YTsgLy8gdm9pZCAqCisgICAgICAgcHVibGljIGludCBtX25XaWR0aDsKKyAgICAgICBwdWJsaWMg
aW50IG1fbkhlaWdodDsKKyAgICAgICBwdWJsaWMgaW50IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9Citb
U3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlhbCldIHB1YmxpYyBzdHJ1Y3QgQ09wZW5W
UkNvbnRleHQKK3sKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2
cjo6SVZSU3lzdGVtICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVyb25lOyAvLyBj
bGFzcyB2cjo6SVZSQ2hhcGVyb25lICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQ2hhcGVy
b25lU2V0dXA7IC8vIGNsYXNzIHZyOjpJVlJDaGFwZXJvbmVTZXR1cCAqCisgICAgICAgcHVibGlj
IEludFB0ciBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNzIHZyOjpJVlJDb21wb3NpdG9yICoKKyAg
ICAgICBwdWJsaWMgSW50UHRyIG1fcFZST3ZlcmxheTsgLy8gY2xhc3MgdnI6OklWUk92ZXJsYXkg
KgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZXNvdXJjZXM7IC8vIGNsYXNzIHZyOjpJVlJS
ZXNvdXJjZXMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJSZW5kZXJNb2RlbHM7IC8vIGNs
YXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJFeHRl
bmRlZERpc3BsYXk7IC8vIGNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkgKgorICAgICAgIHB1
YmxpYyBJbnRQdHIgbV9wVlJTZXR0aW5nczsgLy8gY2xhc3MgdnI6OklWUlNldHRpbmdzICoKKyAg
ICAgICBwdWJsaWMgSW50UHRyIG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBw
bGljYXRpb25zICoKKyAgICAgICBwdWJsaWMgSW50UHRyIG1fcFZSVHJhY2tlZENhbWVyYTsgLy8g
Y2xhc3MgdnI6OklWUlRyYWNrZWRDYW1lcmEgKgorICAgICAgIHB1YmxpYyBJbnRQdHIgbV9wVlJT
Y3JlZW5zaG90czsgLy8gY2xhc3MgdnI6OklWUlNjcmVlbnNob3RzICoKK30KKworcHVibGljIGNs
YXNzIE9wZW5WUgoreworCisgICAgICAgcHVibGljIHN0YXRpYyB1aW50IEluaXRJbnRlcm5hbChy
ZWYgRVZSSW5pdEVycm9yIHBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25U
eXBlKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSW5pdElu
dGVybmFsKHJlZiBwZUVycm9yLCBlQXBwbGljYXRpb25UeXBlKTsKKyAgICAgICB9CisKKyAgICAg
ICBwdWJsaWMgc3RhdGljIHZvaWQgU2h1dGRvd25JbnRlcm5hbCgpCisgICAgICAgeworICAgICAg
ICAgICAgICBPcGVuVlJJbnRlcm9wLlNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisKKyAg
ICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNIbWRQcmVzZW50KCkKKyAgICAgICB7CisgICAgICAg
ICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLklzSG1kUHJlc2VudCgpOworICAgICAgIH0KKwor
ICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc1J1bnRpbWVJbnN0YWxsZWQoKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcmV0dXJuIE9wZW5WUkludGVyb3AuSXNSdW50aW1lSW5zdGFsbGVkKCk7
CisgICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0U3RyaW5nRm9ySG1k
RXJyb3IoRVZSSW5pdEVycm9yIGVycm9yKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJu
IE1hcnNoYWwuUHRyVG9TdHJpbmdBbnNpKE9wZW5WUkludGVyb3AuR2V0U3RyaW5nRm9ySG1kRXJy
b3IoZXJyb3IpKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIEludFB0ciBHZXRH
ZW5lcmljSW50ZXJmYWNlKHN0cmluZyBwY2hJbnRlcmZhY2VWZXJzaW9uLCByZWYgRVZSSW5pdEVy
cm9yIHBlRXJyb3IpCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJv
cC5HZXRHZW5lcmljSW50ZXJmYWNlKHBjaEludGVyZmFjZVZlcnNpb24sIHJlZiBwZUVycm9yKTsK
KyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgSXNJbnRlcmZhY2VWZXJzaW9u
VmFsaWQoc3RyaW5nIHBjaEludGVyZmFjZVZlcnNpb24pCisgICAgICAgeworICAgICAgICAgICAg
ICByZXR1cm4gT3BlblZSSW50ZXJvcC5Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChwY2hJbnRlcmZh
Y2VWZXJzaW9uKTsKKyAgICAgICB9CisKKyAgICAgICBwdWJsaWMgc3RhdGljIHVpbnQgR2V0SW5p
dFRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm9wLkdl
dEluaXRUb2tlbigpOworICAgICAgIH0KKworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5N
YXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25zdCB1
aW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0gMDsKKyAgICAgICBwdWJsaWMgY29uc3Qg
dWludCBrX3VuTWF4VHJhY2tlZERldmljZUNvdW50ID0gMTY7CisgICAgICAgcHVibGljIGNvbnN0
IHVpbnQga191blRyYWNrZWREZXZpY2VJbmRleE90aGVyID0gNDI5NDk2NzI5NDsKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuVHJhY2tlZERldmljZUluZGV4SW52YWxpZCA9IDQyOTQ5Njcy
OTU7CisgICAgICAgcHVibGljIGNvbnN0IHVsb25nIGtfdWxJbnZhbGlkUHJvcGVydHlDb250YWlu
ZXIgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5JbnZhbGlkUHJvcGVydHlUYWcg
PSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsK
KyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuSW50MzJQcm9wZXJ0eVRhZyA9IDI7CisgICAg
ICAgcHVibGljIGNvbnN0IHVpbnQga191blVpbnQ2NFByb3BlcnR5VGFnID0gMzsKKyAgICAgICBw
dWJsaWMgY29uc3QgdWludCBrX3VuQm9vbFByb3BlcnR5VGFnID0gNDsKKyAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuU3RyaW5nUHJvcGVydHlUYWcgPSA1OworICAgICAgIHB1YmxpYyBjb25z
dCB1aW50IGtfdW5IbWRNYXRyaXgzNFByb3BlcnR5VGFnID0gMjA7CisgICAgICAgcHVibGljIGNv
bnN0IHVpbnQga191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWcgPSAyMTsKKyAgICAgICBwdWJsaWMg
Y29uc3QgdWludCBrX3VuSG1kVmVjdG9yM1Byb3BlcnR5VGFnID0gMjI7CisgICAgICAgcHVibGlj
IGNvbnN0IHVpbnQga191bkhtZFZlY3RvcjRQcm9wZXJ0eVRhZyA9IDIzOworICAgICAgIHB1Ymxp
YyBjb25zdCB1aW50IGtfdW5IaWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKKyAgICAgICBwdWJs
aWMgY29uc3QgdWludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9TdGFydCA9IDEwMDA7Cisg
ICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfRW5kID0g
MTAwMDA7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6
ZSA9IDMyNzY4OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Db250cm9sbGVyU3RhdGVB
eGlzQ291bnQgPSA1OworICAgICAgIHB1YmxpYyBjb25zdCB1bG9uZyBrX3VsT3ZlcmxheUhhbmRs
ZUludmFsaWQgPSAwOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5TY3JlZW5zaG90SGFu
ZGxlSW52YWxpZCA9IDA7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJTeXN0ZW1fVmVy
c2lvbiA9ICJJVlJTeXN0ZW1fMDE1IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUkV4
dGVuZGVkRGlzcGxheV9WZXJzaW9uID0gIklWUkV4dGVuZGVkRGlzcGxheV8wMDEiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSVHJhY2tlZENhbWVyYV9WZXJzaW9uID0gIklWUlRyYWNr
ZWRDYW1lcmFfMDAzIjsKKyAgICAgICBwdWJsaWMgY29uc3QgdWludCBrX3VuTWF4QXBwbGljYXRp
b25LZXlMZW5ndGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9NaW1l
VHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTWltZVR5cGVfR2FtZVRoZWF0ZXIgPSAidnIvZ2FtZV90aGVhdGVyIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIElWUkFwcGxpY2F0aW9uc19WZXJzaW9uID0gIklWUkFwcGxpY2F0aW9u
c18wMDYiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSQ2hhcGVyb25lX1ZlcnNpb24g
PSAiSVZSQ2hhcGVyb25lXzAwMyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVlJDaGFw
ZXJvbmVTZXR1cF9WZXJzaW9uID0gIklWUkNoYXBlcm9uZVNldHVwXzAwNSI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBJVlJDb21wb3NpdG9yX1ZlcnNpb24gPSAiSVZSQ29tcG9zaXRvcl8w
MjAiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5WUk92ZXJsYXlNYXhLZXlMZW5ndGgg
PSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5n
dGggPSAxMjg7CisgICAgICAgcHVibGljIGNvbnN0IHVpbnQga191bk1heE92ZXJsYXlDb3VudCA9
IDY0OworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZXNDb3VudCA9IDMyOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVZS
T3ZlcmxheV9WZXJzaW9uID0gIklWUk92ZXJsYXlfMDE0IjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9CYXNl
ID0gImJhc2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ29udHJvbGxlcl9D
b21wb25lbnRfVGlwID0gInRpcCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9D
b250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9TdGF0dXMgPSAic3RhdHVz
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlbmRlck1vZGVsc19WZXJzaW9uID0g
IklWUlJlbmRlck1vZGVsc18wMDUiOworICAgICAgIHB1YmxpYyBjb25zdCB1aW50IGtfdW5Ob3Rp
ZmljYXRpb25UZXh0TWF4U2l6ZSA9IDI1NjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIElW
Uk5vdGlmaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJOb3RpZmljYXRpb25zXzAwMiI7CisgICAgICAg
cHVibGljIGNvbnN0IHVpbnQga191bk1heFNldHRpbmdzS2V5TGVuZ3RoID0gMTI4OworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcgSVZSU2V0dGluZ3NfVmVyc2lvbiA9ICJJVlJTZXR0aW5nc18w
MDIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9TZWN0aW9uID0g
InN0ZWFtdnIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9SZXF1
aXJlSG1kX1N0cmluZyA9ICJyZXF1aXJlSG1kIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyA9ICJmb3JjZWREcml2ZXIiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9Gb3JjZWRIbWRLZXlfU3Ry
aW5nID0gImZvcmNlZEhtZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVh
bVZSX0Rpc3BsYXlEZWJ1Z19Cb29sID0gImRpc3BsYXlEZWJ1ZyI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RlYnVnUHJvY2Vzc1BpcGVfU3RyaW5nID0gImRlYnVn
UHJvY2Vzc1BpcGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9F
bmFibGVEaXN0b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CisgICAgICAgcHVibGlj
IGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1hfSW50MzIgPSAiZGlzcGxh
eURlYnVnWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0Rpc3Bs
YXlEZWJ1Z1lfSW50MzIgPSAiZGlzcGxheURlYnVnWSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1CdXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5k
U3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfTG9nTGV2ZWxfSW50MzIgPSAibG9nbGV2ZWwiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfU3RlYW1WUl9JUERfRmxvYXQgPSAiaXBkIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFja2dyb3Vu
ZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRV
c2VEb21lUHJvamVjdGlvbl9Cb29sID0gImJhY2tncm91bmRVc2VEb21lUHJvamVjdGlvbiI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRDYW1lcmFI
ZWlnaHRfRmxvYXQgPSAiYmFja2dyb3VuZENhbWVyYUhlaWdodCI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJh
Y2tncm91bmREb21lUmFkaXVzIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfR3JpZENvbG9yX1N0cmluZyA9ICJncmlkQ29sb3IiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfU3RlYW1WUl9QbGF5QXJlYUNvbG9yX1N0cmluZyA9ICJwbGF5QXJlYUNv
bG9yIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU2hvd1N0YWdl
X0Jvb2wgPSAic2hvd1N0YWdlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0
ZWFtVlJfQWN0aXZhdGVNdWx0aXBsZURyaXZlcnNfQm9vbCA9ICJhY3RpdmF0ZU11bHRpcGxlRHJp
dmVycyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0RpcmVjdE1v
ZGVfQm9vbCA9ICJkaXJlY3RNb2RlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNo
X1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlRWRpZFBp
ZF9JbnQzMiA9ICJkaXJlY3RNb2RlRWRpZFBpZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCA9ICJ1c2luZ1NwZWFrZXJzIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3
T2Zmc2V0RGVncmVlc19GbG9hdCA9ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsK
KyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQmFzZVN0YXRpb25Qb3dl
ck1hbmFnZW1lbnRfQm9vbCA9ICJiYXNlc3RhdGlvblBvd2VyTWFuYWdlbWVudCI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX05ldmVyS2lsbFByb2Nlc3Nlc19Cb29s
ID0gIm5ldmVyS2lsbFByb2Nlc3NlcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAicmVuZGVyVGFyZ2V0TXVs
dGlwbGllciI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0FsbG93
QXN5bmNSZXByb2plY3Rpb25fQm9vbCA9ICJhbGxvd0FzeW5jUmVwcm9qZWN0aW9uIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9v
bCA9ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJv
amVjdGlvbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX0ZvcmNl
RmFkZU9uQmFkVHJhY2tpbmdfQm9vbCA9ICJmb3JjZUZhZGVPbkJhZFRyYWNraW5nIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50
MzIgPSAiZGVmYXVsdE1pcnJvclZpZXciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfU3RlYW1WUl9TaG93TWlycm9yVmlld19Cb29sID0gInNob3dNaXJyb3JWaWV3IjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfTWlycm9yVmlld0dlb21ldHJ5X1N0
cmluZyA9ICJtaXJyb3JWaWV3R2VvbWV0cnkiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoID0gInN0YXJ0TW9uaXRvckZy
b21BcHBMYXVuY2giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9T
dGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3NpdG9yRnJvbUFw
cExhdW5jaCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0
RGFzaGJvYXJkRnJvbUFwcExhdW5jaF9Cb29sID0gInN0YXJ0RGFzaGJvYXJkRnJvbUFwcExhdW5j
aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1N0YXJ0T3Zlcmxh
eUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wgPSAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNoYm9hcmQi
OworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBw
ID0gImVuYWJsZUhvbWVBcHAiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfU3Rl
YW1WUl9TZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAgPSAic2V0SW5pdGlhbERlZmF1bHRIb21lQXBw
IjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3Jv
dW5kSW1hZ2VUaW1lU2VjX0ludDMyID0gIkN5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlYyI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9TdGVhbVZSX1JldGFpbERlbW9fQm9vbCA9
ICJyZXRhaWxEZW1vIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1N0ZWFtVlJf
SXBkT2Zmc2V0X0Zsb2F0ID0gImlwZE9mZnNldCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9MaWdodGhvdXNlX1NlY3Rpb24gPSAiZHJpdmVyX2xpZ2h0aG91c2UiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wgPSAi
ZGlzYWJsZWltdSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNl
X1VzZURpc2FtYmlndWF0aW9uX1N0cmluZyA9ICJ1c2VkaXNhbWJpZ3VhdGlvbiI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9uRGVidWdf
SW50MzIgPSAiZGlzYW1iaWd1YXRpb25kZWJ1ZyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9MaWdodGhvdXNlX1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFz
ZXN0YXRpb24iOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTGlnaHRob3VzZV9E
Qkhpc3RvcnlfQm9vbCA9ICJkYmhpc3RvcnkiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcg
a19wY2hfTnVsbF9TZWN0aW9uID0gImRyaXZlcl9udWxsIjsKKyAgICAgICBwdWJsaWMgY29uc3Qg
c3RyaW5nIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9ICJzZXJpYWxOdW1iZXIiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9Nb2RlbE51bWJlcl9TdHJpbmcg
PSAibW9kZWxOdW1iZXIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9X
aW5kb3dYX0ludDMyID0gIndpbmRvd1giOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfTnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTnVsbF9XaW5kb3dXaWR0aF9JbnQzMiA9ICJ3aW5kb3dXaWR0aCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiA9ICJ3
aW5kb3dIZWlnaHQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9SZW5k
ZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJXaWR0aCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9OdWxsX1JlbmRlckhlaWdodF9JbnQzMiA9ICJyZW5kZXJIZWlnaHQiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5jVG9QaG90b25z
X0Zsb2F0ID0gInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMiOworICAgICAgIHB1YmxpYyBjb25z
dCBzdHJpbmcga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0gImRpc3BsYXlGcmVx
dWVuY3kiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9T
ZWN0aW9uID0gInVzZXJpbnRlcmZhY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRvcF9Cb29sID0gIlN0YXR1c0Fsd2F5c09u
VG9wIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWlu
aW1pemVUb1RyYXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RzX0Jvb2wgPSAic2NyZWVuc2hv
dHMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfVXNlckludGVyZmFjZV9TY3Jl
ZW5zaG90VHlwZV9JbnQgPSAic2NyZWVuc2hvdFR5cGUiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19TZWN0aW9uID0gIm5vdGlmaWNhdGlvbnMiOworICAg
ICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfTm90aWZpY2F0aW9uc19Eb05vdERpc3R1cmJf
Qm9vbCA9ICJEb05vdERpc3R1cmIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
S2V5Ym9hcmRfU2VjdGlvbiA9ICJrZXlib2FyZCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29tcGxldGlv
bnMiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfU2NhbGVYID0g
IlNjYWxlWCI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9LZXlib2FyZF9TY2Fs
ZVkgPSAiU2NhbGVZIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJk
X09mZnNldExlZnRYID0gIk9mZnNldExlZnRYIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5n
IGtfcGNoX0tleWJvYXJkX09mZnNldFJpZ2h0WCA9ICJPZmZzZXRSaWdodFgiOworICAgICAgIHB1
YmxpYyBjb25zdCBzdHJpbmcga19wY2hfS2V5Ym9hcmRfT2Zmc2V0WSA9ICJPZmZzZXRZIjsKKyAg
ICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0tleWJvYXJkX1Ntb290aGluZyA9ICJTbW9v
dGhpbmciOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9TZWN0aW9uID0g
InBlcmZjaGVjayI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9QZXJmX0hldXJp
c3RpY0FjdGl2ZV9Cb29sID0gImhldXJpc3RpY0FjdGl2ZSI7CisgICAgICAgcHVibGljIGNvbnN0
IHN0cmluZyBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX1BlcmZfTm90aWZ5T25seU9uY2VfQm9vbCA9ICJ3
YXJuT25seU9uY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9BbGxv
d1RpbWluZ1N0b3JlX0Jvb2wgPSAiYWxsb3dUaW1pbmdTdG9yZSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9QZXJmX1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWlu
Z3NPbkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUGVyZl9UZXN0RGF0
YV9GbG9hdCA9ICJwZXJmVGVzdERhdGEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24gPSAiY29sbGlzaW9uQm91bmRzIjsKKyAgICAgICBw
dWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TdHlsZV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNTdHlsZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9D
b2xsaXNpb25Cb3VuZHNfR3JvdW5kUGVyaW1ldGVyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNH
cm91bmRQZXJpbWV0ZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xs
aXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNDZW50ZXJN
YXJrZXJPbiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3Vu
ZHNfUGxheVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfRmFkZURpc3RhbmNl
X0Zsb2F0ID0gIkNvbGxpc2lvbkJvdW5kc0ZhZGVEaXN0YW5jZSI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIgPSAiQ29s
bGlzaW9uQm91bmRzQ29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0Nv
bG9yR2FtbWFHIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NvbGxpc2lvbkJv
dW5kc19Db2xvckdhbW1hQl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQiI7Cisg
ICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1t
YUFfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKKyAgICAgICBwdWJs
aWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFfQm9vbCA9ICJlbmFibGVD
YW1lcmEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUluRGFzaGJvYXJkX0Jvb2wgPSAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQiOworICAgICAg
IHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lv
bkJvdW5kc19Cb29sID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CisgICAgICAg
cHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXdf
Qm9vbCA9ICJlbmFibGVDYW1lcmFGb3JSb29tVmlldyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0
cmluZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYVJfSW50MzIgPSAiY2FtZXJhQm91bmRz
Q29sb3JHYW1tYVIiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0Jv
dW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFHIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hQl9JbnQz
MiA9ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hQiI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmlu
ZyBrX3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29s
b3JHYW1tYUEiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfQ2FtZXJhX0JvdW5k
c1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX2F1ZGlvX1NlY3Rpb24gPSAiYXVkaW8iOworICAgICAgIHB1Ymxp
YyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmcgPSAib25Q
bGF5YmFja0RldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9hdWRpb19P
blJlY29yZERldmljZV9TdHJpbmcgPSAib25SZWNvcmREZXZpY2UiOworICAgICAgIHB1YmxpYyBj
b25zdCBzdHJpbmcga19wY2hfYXVkaW9fT25QbGF5YmFja01pcnJvckRldmljZV9TdHJpbmcgPSAi
b25QbGF5YmFja01pcnJvckRldmljZSI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmcgPSAib2ZmUGxheWJhY2tEZXZpY2UiOwor
ICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfYXVkaW9fT2ZmUmVjb3JkRGV2aWNlX1N0
cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19w
Y2hfYXVkaW9fVklWRUhETUlHYWluID0gInZpdmVIRE1JR2FpbiI7CisgICAgICAgcHVibGljIGNv
bnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9TZWN0aW9uID0gInBvd2VyIjsKKyAgICAgICBwdWJsaWMg
Y29uc3Qgc3RyaW5nIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZP
bkV4aXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93ZXJfVHVybk9mZlNj
cmVlbnNUaW1lb3V0X0Zsb2F0ID0gInR1cm5PZmZTY3JlZW5zVGltZW91dCI7CisgICAgICAgcHVi
bGljIGNvbnN0IHN0cmluZyBrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zs
b2F0ID0gInR1cm5PZmZDb250cm9sbGVyc1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25zdCBz
dHJpbmcga19wY2hfUG93ZXJfUmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJu
VG9XYXRjaGRvZ1RpbWVvdXQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfUG93
ZXJfQXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzID0gImF1dG9MYXVuY2hTdGVhbVZST25C
dXR0b25QcmVzcyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRf
U2VjdGlvbiA9ICJkYXNoYm9hcmQiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hf
RGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hib2FyZCI7CisgICAg
ICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3BjaF9EYXNoYm9hcmRfQXJjYWRlTW9kZV9Cb29sID0g
ImFyY2FkZU1vZGUiOworICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcga19wY2hfbW9kZWxza2lu
X1NlY3Rpb24gPSAibW9kZWxza2lucyI7CisgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBrX3Bj
aF9Ecml2ZXJfRW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKyAgICAgICBwdWJsaWMgY29uc3Qgc3Ry
aW5nIElWUlNjcmVlbnNob3RzX1ZlcnNpb24gPSAiSVZSU2NyZWVuc2hvdHNfMDAxIjsKKyAgICAg
ICBwdWJsaWMgY29uc3Qgc3RyaW5nIElWUlJlc291cmNlc19WZXJzaW9uID0gIklWUlJlc291cmNl
c18wMDEiOworCisgICAgICAgc3RhdGljIHVpbnQgVlJUb2tlbiB7IGdldDsgc2V0OyB9CisKKyAg
ICAgICBjb25zdCBzdHJpbmcgRm5UYWJsZV9QcmVmaXggPSAiRm5UYWJsZToiOworCisgICAgICAg
Y2xhc3MgQ09wZW5WUkNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIHB1YmxpYyBDT3Bl
blZSQ29udGV4dCgpIHsgQ2xlYXIoKTsgfQorCisgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIENs
ZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgbV9wVlJTeXN0ZW0g
PSBudWxsOworICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmVTZXR1cCA9IG51bGw7CisgICAgICAgICAg
ICAgICAgICAgICBtX3BWUkNvbXBvc2l0b3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAg
bV9wVlJPdmVybGF5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSUmVuZGVyTW9k
ZWxzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSRXh0ZW5kZWREaXNwbGF5ID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIG1fcFZSU2V0dGluZ3MgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICAgbV9wVlJBcHBsaWNhdGlvbnMgPSBudWxsOworICAgICAgICAgICAgICAg
ICAgICAgbV9wVlJTY3JlZW5zaG90cyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICBtX3BW
UlRyYWNrZWRDYW1lcmEgPSBudWxsOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
dm9pZCBDaGVja0NsZWFyKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
aWYgKFZSVG9rZW4gIT0gR2V0SW5pdFRva2VuKCkpCisgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWUlRva2VuID0gR2V0SW5pdFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU3lzdGVtIFZSU3lz
dGVtKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgQ2hlY2tDbGVhcigp
OworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSU3lzdGVtID09IG51bGwpCisgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9
IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50
ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4
K0lWUlN5c3RlbV9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVy
cm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSU3lzdGVt
ID0gbmV3IENWUlN5c3RlbShwSW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlN5c3RlbTsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIHB1YmxpYyBDVlJDaGFwZXJvbmUgVlJDaGFwZXJvbmUoKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAg
ICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmUgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVy
cm9yLk5vbmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBP
cGVuVlJJbnRlcm9wLkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ2hhcGVy
b25lX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9u
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJDaGFwZXJvbmUgPSBu
ZXcgQ1ZSQ2hhcGVyb25lKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkNoYXBlcm9uZVNldHVwIFZSQ2hhcGVyb25lU2V0
dXAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7
CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9wVlJDaGFwZXJvbmVTZXR1cCA9PSBudWxsKQor
ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBl
RXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxl
X1ByZWZpeCtJVlJDaGFwZXJvbmVTZXR1cF9WZXJzaW9uLCByZWYgZUVycm9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJbnRQdHIuWmVybyAmJiBlRXJy
b3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcFZSQ2hhcGVyb25lU2V0dXAgPSBuZXcgQ1ZSQ2hhcGVyb25lU2V0dXAocEludGVyZmFj
ZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bV9wVlJDaGFwZXJvbmVTZXR1cDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1
YmxpYyBDVlJDb21wb3NpdG9yIFZSQ29tcG9zaXRvcigpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmICht
X3BWUkNvbXBvc2l0b3IgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSQ29tcG9zaXRvcl9WZXJzaW9uLCBy
ZWYgZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAh
PSBJbnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcFZSQ29tcG9zaXRvciA9IG5ldyBDVlJDb21wb3Np
dG9yKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fcFZSQ29tcG9zaXRvcjsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIHB1YmxpYyBDVlJPdmVybGF5IFZST3ZlcmxheSgpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUk92ZXJsYXkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9wLkdl
dEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZST3ZlcmxheV9WZXJzaW9uLCByZWYg
ZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocEludGVyZmFjZSAhPSBJ
bnRQdHIuWmVybyAmJiBlRXJyb3IgPT0gRVZSSW5pdEVycm9yLk5vbmUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcFZST3ZlcmxheSA9IG5ldyBDVlJPdmVybGF5KHBJbnRl
cmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1fcFZST3ZlcmxheTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHB1Ymxp
YyBDVlJSZW5kZXJNb2RlbHMgVlJSZW5kZXJNb2RlbHMoKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBDaGVja0NsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAo
bV9wVlJSZW5kZXJNb2RlbHMgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgZUVycm9yID0gRVZSSW5pdEVycm9yLk5vbmU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBJbnRlcmZhY2UgPSBPcGVuVlJJbnRlcm9w
LkdldEdlbmVyaWNJbnRlcmZhY2UoRm5UYWJsZV9QcmVmaXgrSVZSUmVuZGVyTW9kZWxzX1ZlcnNp
b24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJm
YWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJSZW5kZXJNb2RlbHMgPSBuZXcgQ1ZS
UmVuZGVyTW9kZWxzKHBJbnRlcmZhY2UpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgcHVibGljIENWUkV4dGVuZGVkRGlzcGxheSBWUkV4dGVuZGVkRGlz
cGxheSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIo
KTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUkV4dGVuZGVkRGlzcGxheSA9PSBudWxs
KQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRh
YmxlX1ByZWZpeCtJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJbnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYg
ZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3BWUkV4dGVuZGVkRGlzcGxheSA9IG5ldyBDVlJFeHRlbmRlZERpc3BsYXkocElu
dGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9wVlJFeHRlbmRlZERpc3BsYXk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICBwdWJsaWMgQ1ZSU2V0dGluZ3MgVlJTZXR0aW5ncygpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlm
IChtX3BWUlNldHRpbmdzID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJvciA9IEVWUkluaXRFcnJvci5Ob25lOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwSW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5H
ZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJlZml4K0lWUlNldHRpbmdzX1ZlcnNpb24sIHJl
ZiBlRXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9
IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXR0aW5ncyA9IG5ldyBDVlJTZXR0aW5ncyhw
SW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
cHVibGljIENWUkFwcGxpY2F0aW9ucyBWUkFwcGxpY2F0aW9ucygpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAg
IGlmIChtX3BWUkFwcGxpY2F0aW9ucyA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9u
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUklu
dGVyb3AuR2V0R2VuZXJpY0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJBcHBsaWNhdGlvbnNf
VmVyc2lvbiwgcmVmIGVFcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBJ
bnRlcmZhY2UgIT0gSW50UHRyLlplcm8gJiYgZUVycm9yID09IEVWUkluaXRFcnJvci5Ob25lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BWUkFwcGxpY2F0aW9ucyA9IG5l
dyBDVlJBcHBsaWNhdGlvbnMocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJBcHBsaWNhdGlvbnM7CisgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICBwdWJsaWMgQ1ZSU2NyZWVuc2hvdHMgVlJTY3JlZW5zaG90
cygpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIENoZWNrQ2xlYXIoKTsK
KyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BWUlNjcmVlbnNob3RzID09IG51bGwpCisgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVFcnJv
ciA9IEVWUkluaXRFcnJvci5Ob25lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBw
SW50ZXJmYWNlID0gT3BlblZSSW50ZXJvcC5HZXRHZW5lcmljSW50ZXJmYWNlKEZuVGFibGVfUHJl
Zml4K0lWUlNjcmVlbnNob3RzX1ZlcnNpb24sIHJlZiBlRXJyb3IpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IEludFB0ci5aZXJvICYmIGVFcnJvciA9PSBF
VlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9w
VlJTY3JlZW5zaG90cyA9IG5ldyBDVlJTY3JlZW5zaG90cyhwSW50ZXJmYWNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNjcmVlbnNo
b3RzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHVibGljIENWUlRyYWNrZWRD
YW1lcmEgVlJUcmFja2VkQ2FtZXJhKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tDbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcFZSVHJhY2tl
ZENhbWVyYSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBlRXJyb3IgPSBFVlJJbml0RXJyb3IuTm9uZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcEludGVyZmFjZSA9IE9wZW5WUkludGVyb3AuR2V0R2VuZXJp
Y0ludGVyZmFjZShGblRhYmxlX1ByZWZpeCtJVlJUcmFja2VkQ2FtZXJhX1ZlcnNpb24sIHJlZiBl
RXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwSW50ZXJmYWNlICE9IElu
dFB0ci5aZXJvICYmIGVFcnJvciA9PSBFVlJJbml0RXJyb3IuTm9uZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJUcmFja2VkQ2FtZXJhID0gbmV3IENWUlRyYWNrZWRD
YW1lcmEocEludGVyZmFjZSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgcHJpdmF0ZSBDVlJTeXN0ZW0gbV9wVlJTeXN0ZW07CisgICAgICAgICAgICAg
IHByaXZhdGUgQ1ZSQ2hhcGVyb25lIG1fcFZSQ2hhcGVyb25lOworICAgICAgICAgICAgICBwcml2
YXRlIENWUkNoYXBlcm9uZVNldHVwIG1fcFZSQ2hhcGVyb25lU2V0dXA7CisgICAgICAgICAgICAg
IHByaXZhdGUgQ1ZSQ29tcG9zaXRvciBtX3BWUkNvbXBvc2l0b3I7CisgICAgICAgICAgICAgIHBy
aXZhdGUgQ1ZST3ZlcmxheSBtX3BWUk92ZXJsYXk7CisgICAgICAgICAgICAgIHByaXZhdGUgQ1ZS
UmVuZGVyTW9kZWxzIG1fcFZSUmVuZGVyTW9kZWxzOworICAgICAgICAgICAgICBwcml2YXRlIENW
UkV4dGVuZGVkRGlzcGxheSBtX3BWUkV4dGVuZGVkRGlzcGxheTsKKyAgICAgICAgICAgICAgcHJp
dmF0ZSBDVlJTZXR0aW5ncyBtX3BWUlNldHRpbmdzOworICAgICAgICAgICAgICBwcml2YXRlIENW
UkFwcGxpY2F0aW9ucyBtX3BWUkFwcGxpY2F0aW9uczsKKyAgICAgICAgICAgICAgcHJpdmF0ZSBD
VlJTY3JlZW5zaG90cyBtX3BWUlNjcmVlbnNob3RzOworICAgICAgICAgICAgICBwcml2YXRlIENW
UlRyYWNrZWRDYW1lcmEgbV9wVlJUcmFja2VkQ2FtZXJhOworICAgICAgIH07CisKKyAgICAgICBw
cml2YXRlIHN0YXRpYyBDT3BlblZSQ29udGV4dCBfT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4
dCA9IG51bGw7CisgICAgICAgc3RhdGljIENPcGVuVlJDb250ZXh0IE9wZW5WUkludGVybmFsX01v
ZHVsZUNvbnRleHQKKyAgICAgICB7CisgICAgICAgICAgICAgIGdldAorICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBpZiAoX09wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQg
PT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfT3BlblZSSW50ZXJuYWxfTW9k
dWxlQ29udGV4dCA9IG5ldyBDT3BlblZSQ29udGV4dCgpOworICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIF9PcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0OworICAgICAgICAgICAgICB9Cisg
ICAgICAgfQorCisgICAgICAgcHVibGljIHN0YXRpYyBDVlJTeXN0ZW0gU3lzdGVtIHsgZ2V0IHsg
cmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJTeXN0ZW0oKTsgfSB9CisgICAg
ICAgcHVibGljIHN0YXRpYyBDVlJDaGFwZXJvbmUgQ2hhcGVyb25lIHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJDaGFwZXJvbmUoKTsgfSB9CisgICAgICAgcHVi
bGljIHN0YXRpYyBDVlJDaGFwZXJvbmVTZXR1cCBDaGFwZXJvbmVTZXR1cCB7IGdldCB7IHJldHVy
biBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSQ2hhcGVyb25lU2V0dXAoKTsgfSB9Cisg
ICAgICAgcHVibGljIHN0YXRpYyBDVlJDb21wb3NpdG9yIENvbXBvc2l0b3IgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUkNvbXBvc2l0b3IoKTsgfSB9CisgICAg
ICAgcHVibGljIHN0YXRpYyBDVlJPdmVybGF5IE92ZXJsYXkgeyBnZXQgeyByZXR1cm4gT3BlblZS
SW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUk92ZXJsYXkoKTsgfSB9CisgICAgICAgcHVibGljIHN0
YXRpYyBDVlJSZW5kZXJNb2RlbHMgUmVuZGVyTW9kZWxzIHsgZ2V0IHsgcmV0dXJuIE9wZW5WUklu
dGVybmFsX01vZHVsZUNvbnRleHQuVlJSZW5kZXJNb2RlbHMoKTsgfSB9CisgICAgICAgcHVibGlj
IHN0YXRpYyBDVlJFeHRlbmRlZERpc3BsYXkgRXh0ZW5kZWREaXNwbGF5IHsgZ2V0IHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJFeHRlbmRlZERpc3BsYXkoKTsgfSB9Cisg
ICAgICAgcHVibGljIHN0YXRpYyBDVlJTZXR0aW5ncyBTZXR0aW5ncyB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2V0dGluZ3MoKTsgfSB9CisgICAgICAgcHVi
bGljIHN0YXRpYyBDVlJBcHBsaWNhdGlvbnMgQXBwbGljYXRpb25zIHsgZ2V0IHsgcmV0dXJuIE9w
ZW5WUkludGVybmFsX01vZHVsZUNvbnRleHQuVlJBcHBsaWNhdGlvbnMoKTsgfSB9CisgICAgICAg
cHVibGljIHN0YXRpYyBDVlJTY3JlZW5zaG90cyBTY3JlZW5zaG90cyB7IGdldCB7IHJldHVybiBP
cGVuVlJJbnRlcm5hbF9Nb2R1bGVDb250ZXh0LlZSU2NyZWVuc2hvdHMoKTsgfSB9CisgICAgICAg
cHVibGljIHN0YXRpYyBDVlJUcmFja2VkQ2FtZXJhIFRyYWNrZWRDYW1lcmEgeyBnZXQgeyByZXR1
cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlQ29udGV4dC5WUlRyYWNrZWRDYW1lcmEoKTsgfSB9CisK
KyAgICAgICAvKiogRmluZHMgdGhlIGFjdGl2ZSBpbnN0YWxsYXRpb24gb2YgdnJjbGllbnQuZGxs
IGFuZCBpbml0aWFsaXplcyBpdCAqLworICAgICAgIHB1YmxpYyBzdGF0aWMgQ1ZSU3lzdGVtIElu
aXQocmVmIEVWUkluaXRFcnJvciBwZUVycm9yLCBFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0
aW9uVHlwZSA9IEVWUkFwcGxpY2F0aW9uVHlwZS5WUkFwcGxpY2F0aW9uX1NjZW5lKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgVlJUb2tlbiA9IEluaXRJbnRlcm5hbChyZWYgcGVFcnJvciwgZUFw
cGxpY2F0aW9uVHlwZSk7CisgICAgICAgICAgICAgIE9wZW5WUkludGVybmFsX01vZHVsZUNvbnRl
eHQuQ2xlYXIoKTsKKworICAgICAgICAgICAgICBpZiAocGVFcnJvciAhPSBFVlJJbml0RXJyb3Iu
Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgICAgICAg
IGJvb2wgYkludGVyZmFjZVZhbGlkID0gSXNJbnRlcmZhY2VWZXJzaW9uVmFsaWQoSVZSU3lzdGVt
X1ZlcnNpb24pOworICAgICAgICAgICAgICBpZiAoIWJJbnRlcmZhY2VWYWxpZCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgU2h1dGRvd25JbnRlcm5hbCgpOworICAgICAg
ICAgICAgICAgICAgICAgcGVFcnJvciA9IEVWUkluaXRFcnJvci5Jbml0X0ludGVyZmFjZU5vdEZv
dW5kOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSLlN5c3RlbTsKKyAgICAgICB9CisKKyAgICAg
ICAvKiogdW5sb2FkcyB2cmNsaWVudC5kbGwuIEFueSBpbnRlcmZhY2UgcG9pbnRlcnMgZnJvbSB0
aGUgaW50ZXJmYWNlIGFyZQorICAgICAgICogaW52YWxpZCBhZnRlciB0aGlzIHBvaW50ICovCisg
ICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFNodXRkb3duKCkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIFNodXRkb3duSW50ZXJuYWwoKTsKKyAgICAgICB9CisKK30KKworCisKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uIGIv
U291cmNlL1RoaXJkUGFydHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAxNzFlYzM3ZDExM2QxYWNkNmU4Y2M0MjAxNGFjYzYwZjdhNDE4ZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfYXBpLmpzb24K
QEAgLTAsMCArMSwzNzg5IEBACit7InR5cGVkZWZzIjpbeyJ0eXBlZGVmIjogInZyOjpnbFNoYXJl
ZFRleHR1cmVIYW5kbGVfdCIsInR5cGUiOiAidm9pZCAqIn0KKyx7InR5cGVkZWYiOiAidnI6Omds
SW50X3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6Z2xVSW50X3QiLCJ0
eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlNoYXJlZFRleHR1cmVIYW5kbGVf
dCIsInR5cGUiOiAidWludDY0X3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZUlu
ZGV4X3QiLCJ0eXBlIjogInVpbnQzMl90In0KKyx7InR5cGVkZWYiOiAidnI6OlByb3BlcnR5Q29u
dGFpbmVySGFuZGxlX3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlBy
b3BlcnR5VHlwZVRhZ190IiwidHlwZSI6ICJ1aW50MzJfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpW
UkV2ZW50X0RhdGFfdCIsInR5cGUiOiAidW5pb24gVlJFdmVudF9EYXRhX3QifQorLHsidHlwZWRl
ZiI6ICJ2cjo6VlJDb250cm9sbGVyU3RhdGVfdCIsInR5cGUiOiAic3RydWN0IHZyOjpWUkNvbnRy
b2xsZXJTdGF0ZTAwMV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90Iiwi
dHlwZSI6ICJ1aW50NjRfdCJ9CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxl
X3QiLCJ0eXBlIjogInVpbnQ2NF90In0KKyx7InR5cGVkZWYiOiAidnI6OlNjcmVlbnNob3RIYW5k
bGVfdCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJPdmVybGF5SW50
ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QiLCJ0eXBlIjogInVuaW9uIFZST3ZlcmxheUlu
dGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90In0KKyx7InR5cGVkZWYiOiAidnI6OlZSQ29t
cG9uZW50UHJvcGVydGllcyIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6
VGV4dHVyZUlEX3QiLCJ0eXBlIjogImludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6VlJOb3Rp
ZmljYXRpb25JZCIsInR5cGUiOiAidWludDMyX3QifQorLHsidHlwZWRlZiI6ICJ2cjo6SG1kRXJy
b3IiLCJ0eXBlIjogImVudW0gdnI6OkVWUkluaXRFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpI
bWRfRXllIiwidHlwZSI6ICJlbnVtIHZyOjpFVlJFeWUifQorLHsidHlwZWRlZiI6ICJ2cjo6Q29s
b3JTcGFjZSIsInR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifQorLHsidHlwZWRlZiI6ICJ2
cjo6SG1kVHJhY2tpbmdSZXN1bHQiLCJ0eXBlIjogImVudW0gdnI6OkVUcmFja2luZ1Jlc3VsdCJ9
CisseyJ0eXBlZGVmIjogInZyOjpUcmFja2VkRGV2aWNlQ2xhc3MiLCJ0eXBlIjogImVudW0gdnI6
OkVUcmFja2VkRGV2aWNlQ2xhc3MifQorLHsidHlwZWRlZiI6ICJ2cjo6VHJhY2tpbmdVbml2ZXJz
ZU9yaWdpbiIsInR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifQorLHsi
dHlwZWRlZiI6ICJ2cjo6VHJhY2tlZERldmljZVByb3BlcnR5IiwidHlwZSI6ICJlbnVtIHZyOjpF
VHJhY2tlZERldmljZVByb3BlcnR5In0KKyx7InR5cGVkZWYiOiAidnI6OlRyYWNrZWRQcm9wZXJ0
eUVycm9yIiwidHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IifQorLHsidHlw
ZWRlZiI6ICJ2cjo6VlJTdWJtaXRGbGFnc190IiwidHlwZSI6ICJlbnVtIHZyOjpFVlJTdWJtaXRG
bGFncyJ9CisseyJ0eXBlZGVmIjogInZyOjpWUlN0YXRlX3QiLCJ0eXBlIjogImVudW0gdnI6OkVW
UlN0YXRlIn0KKyx7InR5cGVkZWYiOiAidnI6OkNvbGxpc2lvbkJvdW5kc1N0eWxlX3QiLCJ0eXBl
IjogImVudW0gdnI6OkVDb2xsaXNpb25Cb3VuZHNTdHlsZSJ9CisseyJ0eXBlZGVmIjogInZyOjpW
Uk92ZXJsYXlFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZST3ZlcmxheUVycm9yIn0KKyx7InR5
cGVkZWYiOiAidnI6OlZSRmlybXdhcmVFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSRmlybXdh
cmVFcnJvciJ9CisseyJ0eXBlZGVmIjogInZyOjpWUkNvbXBvc2l0b3JFcnJvciIsInR5cGUiOiAi
ZW51bSB2cjo6RVZSQ29tcG9zaXRvckVycm9yIn0KKyx7InR5cGVkZWYiOiAidnI6OlZSU2NyZWVu
c2hvdHNFcnJvciIsInR5cGUiOiAiZW51bSB2cjo6RVZSU2NyZWVuc2hvdEVycm9yIn0KK10sCisi
ZW51bXMiOlsKKyAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJFeWUiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJFeWVfTGVmdCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUi
OiAiRXllX1JpZ2h0IiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVGV4dHVyZVR5cGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUZXh0dXJlVHlw
ZV9EaXJlY3RYIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9P
cGVuR0wiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRleHR1cmVUeXBlX1Z1bGth
biIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVGV4dHVyZVR5cGVfSU9TdXJmYWNl
IiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJUZXh0dXJlVHlwZV9EaXJlY3RYMTIi
LCJ2YWx1ZSI6ICI0In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVDb2xvclNwYWNl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiQ29sb3JTcGFjZV9BdXRvIiwidmFsdWUi
OiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0dhbW1hIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJDb2xvclNwYWNlX0xpbmVhciIsInZhbHVlIjogIjIifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNraW5nUmVzdWx0IiwidmFsdWVzIjogWyAK
KyAgICAgICB7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfVW5pbml0aWFsaXplZCIsInZhbHVlIjog
IjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tpbmdSZXN1bHRfQ2FsaWJyYXRpbmdfSW5Qcm9n
cmVzcyIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2luZ1Jlc3VsdF9D
YWxpYnJhdGluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjog
IlRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT0siLCJ2YWx1ZSI6ICIyMDAifQorICAgICAgICx7Im5h
bWUiOiAiVHJhY2tpbmdSZXN1bHRfUnVubmluZ19PdXRPZlJhbmdlIiwidmFsdWUiOiAiMjAxIn0K
K119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLCJ2YWx1
ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFja2VkRGV2aWNlQ2xhc3NfSW52YWxpZCIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0hNRCIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xs
ZXIiLCJ2YWx1ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWREZXZpY2VDbGFzc19H
ZW5lcmljVHJhY2tlciIsInZhbHVlIjogIjMifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZERl
dmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xlIiwidmFsdWVzIjogWyAKKyAg
ICAgICB7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX0ludmFsaWQiLCJ2YWx1ZSI6ICIw
In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRDb250cm9sbGVyUm9sZV9MZWZ0SGFuZCIsInZh
bHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0
SGFuZCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNr
aW5nVW5pdmVyc2VPcmlnaW4iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJUcmFja2lu
Z1VuaXZlcnNlU2VhdGVkIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2lu
Z1VuaXZlcnNlU3RhbmRpbmciLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNr
aW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQiLCJ2YWx1ZSI6ICIyIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAor
ICAgICAgIHsibmFtZSI6ICJQcm9wX0ludmFsaWQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyIsInZhbHVlIjogIjEwMDAifQor
ICAgICAgICx7Im5hbWUiOiAiUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDAx
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU2VyaWFsTnVtYmVyX1N0cmluZyIsInZhbHVlIjog
IjEwMDIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nIiwi
dmFsdWUiOiAiMTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1dpbGxEcmlmdEluWWF3X0Jv
b2wiLCJ2YWx1ZSI6ICIxMDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTWFudWZhY3R1cmVy
TmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVHJh
Y2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAwNiJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0hhcmR3YXJlUmV2aXNpb25fU3RyaW5nIiwidmFsdWUiOiAiMTAwNyJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX0FsbFdpcmVsZXNzRG9uZ2xlRGVzY3JpcHRpb25zX1N0cmlu
ZyIsInZhbHVlIjogIjEwMDgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db25uZWN0ZWRXaXJl
bGVzc0RvbmdsZV9TdHJpbmciLCJ2YWx1ZSI6ICIxMDA5In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sIiwidmFsdWUiOiAiMTAxMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJQcm9wX0RldmljZUlzQ2hhcmdpbmdfQm9vbCIsInZhbHVlIjogIjEwMTEifQorICAgICAg
ICx7Im5hbWUiOiAiUHJvcF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCIsInZhbHVlIjog
IjEwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9TdGF0dXNEaXNwbGF5VHJhbnNmb3JtX01h
dHJpeDM0IiwidmFsdWUiOiAiMTAxMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJl
X1VwZGF0ZUF2YWlsYWJsZV9Cb29sIiwidmFsdWUiOiAiMTAxNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sIiwidmFsdWUiOiAiMTAxNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0Zpcm13YXJlX01hbnVhbFVwZGF0ZVVSTF9TdHJpbmciLCJ2YWx1
ZSI6ICIxMDE2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50
NjQiLCJ2YWx1ZSI6ICIxMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmlybXdhcmVWZXJz
aW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMTgifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GUEdB
VmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDE5In0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
VlJDVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIxMDIwIn0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjEifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjEwMjIifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9CbG9ja1NlcnZlclNodXRkb3duX0Jvb2wiLCJ2YWx1ZSI6ICIxMDIzIn0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVtV2l0aEhtZF9C
b29sIiwidmFsdWUiOiAiMTAyNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NvbnRhaW5zUHJv
eGltaXR5U2Vuc29yX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI1In0KKyAgICAgICAseyJuYW1lIjogIlBy
b3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wiLCJ2YWx1ZSI6ICIxMDI2In0KKyAg
ICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQ2FuUG93ZXJPZmZfQm9vbCIsInZhbHVlIjogIjEw
MjcifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9GaXJtd2FyZV9Qcm9ncmFtbWluZ1RhcmdldF9T
dHJpbmciLCJ2YWx1ZSI6ICIxMDI4In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGV2aWNlQ2xh
c3NfSW50MzIiLCJ2YWx1ZSI6ICIxMDI5In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfSGFzQ2Ft
ZXJhX0Jvb2wiLCJ2YWx1ZSI6ICIxMDMwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRHJpdmVy
VmVyc2lvbl9TdHJpbmciLCJ2YWx1ZSI6ICIxMDMxIn0KKyAgICAgICAseyJuYW1lIjogIlByb3Bf
RmlybXdhcmVfRm9yY2VVcGRhdGVSZXF1aXJlZF9Cb29sIiwidmFsdWUiOiAiMTAzMiJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX1ZpdmVTeXN0ZW1CdXR0b25GaXhSZXF1aXJlZF9Cb29sIiwidmFs
dWUiOiAiMTAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1BhcmVudERyaXZlcl9VaW50NjQi
LCJ2YWx1ZSI6ICIxMDM0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfUmVwb3J0c1RpbWVTaW5j
ZVZTeW5jX0Jvb2wiLCJ2YWx1ZSI6ICIyMDAwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfU2Vj
b25kc0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCIsInZhbHVlIjogIjIwMDEifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0IiwidmFsdWUiOiAiMjAwMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX1VzZXJJcGRNZXRlcnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDAz
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0IiwidmFs
dWUiOiAiMjAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1ByZXZpb3VzVW5pdmVyc2VJZF9V
aW50NjQiLCJ2YWx1ZSI6ICIyMDA1In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUZp
cm13YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDA2In0KKyAgICAgICAseyJuYW1lIjog
IlByb3BfSXNPbkRlc2t0b3BfQm9vbCIsInZhbHVlIjogIjIwMDcifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9EaXNwbGF5TUNUeXBlX0ludDMyIiwidmFsdWUiOiAiMjAwOCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCIsInZhbHVlIjogIjIwMDkifQorICAg
ICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCIsInZhbHVlIjogIjIwMTAi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9FZGlkVmVuZG9ySURfSW50MzIiLCJ2YWx1ZSI6ICIy
MDExIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VMZWZ0X1N0cmluZyIs
InZhbHVlIjogIjIwMTIifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJbWFnZVJp
Z2h0X1N0cmluZyIsInZhbHVlIjogIjIwMTMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNw
bGF5R0NCbGFja0NsYW1wX0Zsb2F0IiwidmFsdWUiOiAiMjAxNCJ9CisgICAgICAgLHsibmFtZSI6
ICJQcm9wX0VkaWRQcm9kdWN0SURfSW50MzIiLCJ2YWx1ZSI6ICIyMDE1In0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0IiwidmFsdWUiOiAiMjAx
NiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1R5cGVfSW50MzIiLCJ2YWx1ZSI6
ICIyMDE3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0Iiwi
dmFsdWUiOiAiMjAxOCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1NjYWxlX0Zs
b2F0IiwidmFsdWUiOiAiMjAxOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlHQ1By
ZXNjYWxlX0Zsb2F0IiwidmFsdWUiOiAiMjAyMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rp
c3BsYXlHQ0ltYWdlX1N0cmluZyIsInZhbHVlIjogIjIwMjEifQorICAgICAgICx7Im5hbWUiOiAi
UHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDIyIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfTGVuc0NlbnRlckxlZnRWX0Zsb2F0IiwidmFsdWUiOiAiMjAyMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJQcm9wX0xlbnNDZW50ZXJSaWdodFVfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI0
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTGVuc0NlbnRlclJpZ2h0Vl9GbG9hdCIsInZhbHVl
IjogIjIwMjUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Vc2VySGVhZFRvRXllRGVwdGhNZXRl
cnNfRmxvYXQiLCJ2YWx1ZSI6ICIyMDI2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQ2FtZXJh
RmlybXdhcmVWZXJzaW9uX1VpbnQ2NCIsInZhbHVlIjogIjIwMjcifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9DYW1lcmFGaXJtd2FyZURlc2NyaXB0aW9uX1N0cmluZyIsInZhbHVlIjogIjIwMjgi
fQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5RlBHQVZlcnNpb25fVWludDY0IiwidmFs
dWUiOiAiMjAyOSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVy
c2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlz
cGxheUhhcmR3YXJlVmVyc2lvbl9VaW50NjQiLCJ2YWx1ZSI6ICIyMDMxIn0KKyAgICAgICAseyJu
YW1lIjogIlByb3BfQXVkaW9GaXJtd2FyZVZlcnNpb25fVWludDY0IiwidmFsdWUiOiAiMjAzMiJ9
CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0NhbWVyYUNvbXBhdGliaWxpdHlNb2RlX0ludDMyIiwi
dmFsdWUiOiAiMjAzMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1NjcmVlbnNob3RIb3Jpem9u
dGFsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0IiwidmFsdWUiOiAiMjAzNCJ9CisgICAgICAgLHsi
bmFtZSI6ICJQcm9wX1NjcmVlbnNob3RWZXJ0aWNhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCIs
InZhbHVlIjogIjIwMzUifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5U3VwcHJlc3Nl
ZF9Cb29sIiwidmFsdWUiOiAiMjAzNiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlB
bGxvd05pZ2h0TW9kZV9Cb29sIiwidmFsdWUiOiAiMjAzNyJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX0Rpc3BsYXlNQ0ltYWdlV2lkdGhfSW50MzIiLCJ2YWx1ZSI6ICIyMDM4In0KKyAgICAgICAs
eyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VIZWlnaHRfSW50MzIiLCJ2YWx1ZSI6ICIyMDM5
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQz
MiIsInZhbHVlIjogIjIwNDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9EaXNwbGF5TUNJbWFn
ZURhdGFfQmluYXJ5IiwidmFsdWUiOiAiMjA0MSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1Vz
ZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wiLCJ2YWx1ZSI6ICIyMDQyIn0KKyAgICAgICAseyJuYW1l
IjogIlByb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmciLCJ2YWx1ZSI6ICIzMDAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfU3VwcG9ydGVkQnV0dG9uc19VaW50NjQiLCJ2YWx1ZSI6ICIzMDAx
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczBUeXBlX0ludDMyIiwidmFsdWUiOiAiMzAw
MiJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXMxVHlwZV9JbnQzMiIsInZhbHVlIjogIjMw
MDMifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9BeGlzMlR5cGVfSW50MzIiLCJ2YWx1ZSI6ICIz
MDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfQXhpczNUeXBlX0ludDMyIiwidmFsdWUiOiAi
MzAwNSJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0F4aXM0VHlwZV9JbnQzMiIsInZhbHVlIjog
IjMwMDYifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9Db250cm9sbGVyUm9sZUhpbnRfSW50MzIi
LCJ2YWx1ZSI6ICIzMDA3In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdMZWZ0
RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9G
aWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCIsInZhbHVlIjogIjQwMDEifQorICAgICAgICx7
Im5hbWUiOiAiUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQiLCJ2YWx1ZSI6ICI0MDAy
In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfRmllbGRPZlZpZXdCb3R0b21EZWdyZWVzX0Zsb2F0
IiwidmFsdWUiOiAiNDAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX1RyYWNraW5nUmFuZ2VN
aW5pbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNCJ9CisgICAgICAgLHsibmFtZSI6ICJQ
cm9wX1RyYWNraW5nUmFuZ2VNYXhpbXVtTWV0ZXJzX0Zsb2F0IiwidmFsdWUiOiAiNDAwNSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJQcm9wX01vZGVMYWJlbF9TdHJpbmciLCJ2YWx1ZSI6ICI0MDA2In0K
KyAgICAgICAseyJuYW1lIjogIlByb3BfSWNvblBhdGhOYW1lX1N0cmluZyIsInZhbHVlIjogIjUw
MDAifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlT2ZmX1N0cmlu
ZyIsInZhbHVlIjogIjUwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJvcF9OYW1lZEljb25QYXRo
RGV2aWNlU2VhcmNoaW5nX1N0cmluZyIsInZhbHVlIjogIjUwMDIifQorICAgICAgICx7Im5hbWUi
OiAiUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nIiwidmFsdWUi
OiAiNTAwMyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VSZWFk
eV9TdHJpbmciLCJ2YWx1ZSI6ICI1MDA0In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJ
Y29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nIiwidmFsdWUiOiAiNTAwNSJ9CisgICAgICAg
LHsibmFtZSI6ICJQcm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmciLCJ2YWx1
ZSI6ICI1MDA2In0KKyAgICAgICAseyJuYW1lIjogIlByb3BfTmFtZWRJY29uUGF0aERldmljZVN0
YW5kYnlfU3RyaW5nIiwidmFsdWUiOiAiNTAwNyJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX05h
bWVkSWNvblBhdGhEZXZpY2VBbGVydExvd19TdHJpbmciLCJ2YWx1ZSI6ICI1MDA4In0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0IiwidmFsdWUi
OiAiNTEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFy
eV9FbmQiLCJ2YWx1ZSI6ICI1MTUwIn0KKyAgICAgICAseyJuYW1lIjogIlByb3BfVXNlckNvbmZp
Z1BhdGhfU3RyaW5nIiwidmFsdWUiOiAiNjAwMCJ9CisgICAgICAgLHsibmFtZSI6ICJQcm9wX0lu
c3RhbGxQYXRoX1N0cmluZyIsInZhbHVlIjogIjYwMDEifQorICAgICAgICx7Im5hbWUiOiAiUHJv
cF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9TdGFydCIsInZhbHVlIjogIjEwMDAwIn0KKyAgICAg
ICAseyJuYW1lIjogIlByb3BfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2ZWRfRW5kIiwidmFsdWUiOiAi
MTA5OTkifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVRyYWNrZWRQcm9wZXJ0eUVy
cm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVHJhY2tlZFByb3BfU3VjY2VzcyIs
InZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfV3JvbmdEYXRhVHlw
ZSIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfV3JvbmdEZXZp
Y2VDbGFzcyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tlZFByb3BfQnVm
ZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9w
X1Vua25vd25Qcm9wZXJ0eSIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVHJhY2tl
ZFByb3BfSW52YWxpZERldmljZSIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVHJh
Y2tlZFByb3BfQ291bGROb3RDb250YWN0U2VydmVyIiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsi
bmFtZSI6ICJUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UiLCJ2YWx1ZSI6ICI3
In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVu
Z3RoIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2VkUHJvcF9Ob3RZZXRB
dmFpbGFibGUiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1lIjogIlRyYWNrZWRQcm9wX1Bl
cm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMCJ9CisgICAgICAgLHsibmFtZSI6ICJUcmFja2Vk
UHJvcF9JbnZhbGlkT3BlcmF0aW9uIiwidmFsdWUiOiAiMTEifQorXX0KKywgICAgICAgeyJlbnVt
bmFtZSI6ICJ2cjo6RVZSU3VibWl0RmxhZ3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6
ICJTdWJtaXRfRGVmYXVsdCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiU3VibWl0
X0xlbnNEaXN0b3J0aW9uQWxyZWFkeUFwcGxpZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJu
YW1lIjogIlN1Ym1pdF9HbFJlbmRlckJ1ZmZlciIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAiU3VibWl0X1Jlc2VydmVkIiwidmFsdWUiOiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1u
YW1lIjogInZyOjpFVlJTdGF0ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU3Rh
dGVfVW5kZWZpbmVkIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9P
ZmYiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU3RhdGVfU2VhcmNoaW5nIiwi
dmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlN0YXRlX1NlYXJjaGluZ19BbGVydCIs
InZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeSIsInZhbHVlIjog
IjMifQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9SZWFkeV9BbGVydCIsInZhbHVlIjogIjQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9Ob3RSZWFkeSIsInZhbHVlIjogIjUifQorICAg
ICAgICx7Im5hbWUiOiAiVlJTdGF0ZV9TdGFuZGJ5IiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUlN0YXRlX1JlYWR5X0FsZXJ0X0xvdyIsInZhbHVlIjogIjcifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSRXZlbnRUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7
Im5hbWUiOiAiVlJFdmVudF9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQiLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlRGVhY3RpdmF0ZWQiLCJ2YWx1ZSI6ICIxMDEi
fQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkRGV2aWNlVXBkYXRlZCIsInZhbHVl
IjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFjdGlvbkVuZGVkIiwidmFsdWUiOiAiMTA0In0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfSXBkQ2hhbmdlZCIsInZhbHVlIjogIjEwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkV2ZW50X0VudGVyU3RhbmRieU1vZGUiLCJ2YWx1ZSI6ICIxMDYifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9MZWF2ZVN0YW5kYnlNb2RlIiwidmFsdWUiOiAiMTA3
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVHJhY2tlZERldmljZVJvbGVDaGFuZ2VkIiwi
dmFsdWUiOiAiMTA4In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfV2F0Y2hkb2dXYWtlVXBS
ZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICIxMDkifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9MZW5z
RGlzdG9ydGlvbkNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9Qcm9wZXJ0eUNoYW5nZWQiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25QcmVzcyIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0J1dHRvblVucHJlc3MiLCJ2YWx1ZSI6ICIyMDEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9CdXR0b25Ub3VjaCIsInZhbHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0J1dHRvblVudG91Y2giLCJ2YWx1ZSI6ICIyMDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Nb3VzZU1vdmUiLCJ2YWx1ZSI6ICIzMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9Nb3VzZUJ1dHRvbkRvd24iLCJ2YWx1ZSI6ICIzMDEifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9Nb3VzZUJ1dHRvblVwIiwidmFsdWUiOiAiMzAyIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfRm9jdXNFbnRlciIsInZhbHVlIjogIjMwMyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X0ZvY3VzTGVhdmUiLCJ2YWx1ZSI6ICIzMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9TY3JvbGwiLCJ2YWx1ZSI6ICIzMDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9U
b3VjaFBhZE1vdmUiLCJ2YWx1ZSI6ICIzMDYifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9P
dmVybGF5Rm9jdXNDaGFuZ2VkIiwidmFsdWUiOiAiMzA3In0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkIiwidmFsdWUiOiAiNDAwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkIiwidmFsdWUiOiAiNDAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfU2NlbmVGb2N1c0xvc3QiLCJ2YWx1ZSI6ICI0MDIifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNDAzIn0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBsaWNhdGlvbkNoYW5nZWQiLCJ2YWx1ZSI6
ICI0MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY2VuZUZvY3VzQ2hhbmdlZCIsInZh
bHVlIjogIjQwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0lucHV0Rm9jdXNDaGFuZ2Vk
IiwidmFsdWUiOiAiNDA2In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfU2NlbmVBcHBsaWNh
dGlvblNlY29uZGFyeVJlbmRlcmluZ1N0YXJ0ZWQiLCJ2YWx1ZSI6ICI0MDcifQorICAgICAgICx7
Im5hbWUiOiAiVlJFdmVudF9IaWRlUmVuZGVyTW9kZWxzIiwidmFsdWUiOiAiNDEwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyIsInZhbHVlIjogIjQxMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlTaG93biIsInZhbHVlIjogIjUwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X092ZXJsYXlIaWRkZW4iLCJ2YWx1ZSI6ICI1MDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRBY3RpdmF0ZWQiLCJ2YWx1ZSI6ICI1
MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2YXRlZCIsInZh
bHVlIjogIjUwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Rhc2hib2FyZFRodW1iU2Vs
ZWN0ZWQiLCJ2YWx1ZSI6ICI1MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9h
cmRSZXF1ZXN0ZWQiLCJ2YWx1ZSI6ICI1MDUifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9S
ZXNldERhc2hib2FyZCIsInZhbHVlIjogIjUwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50
X1JlbmRlclRvYXN0IiwidmFsdWUiOiAiNTA3In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRf
SW1hZ2VMb2FkZWQiLCJ2YWx1ZSI6ICI1MDgifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9T
aG93S2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MDkifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9I
aWRlS2V5Ym9hcmQiLCJ2YWx1ZSI6ICI1MTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9P
dmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkIiwidmFsdWUiOiAiNTExIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1c0xvc3QiLCJ2YWx1ZSI6ICI1MTIifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9PdmVybGF5U2hhcmVkVGV4dHVyZUNoYW5nZWQiLCJ2YWx1
ZSI6ICI1MTMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRv
bkRvd24iLCJ2YWx1ZSI6ICI1MTQifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9EYXNoYm9h
cmRHdWlkZUJ1dHRvblVwIiwidmFsdWUiOiAiNTE1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfU2NyZWVuc2hvdFRyaWdnZXJlZCIsInZhbHVlIjogIjUxNiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkV2ZW50X0ltYWdlRmFpbGVkIiwidmFsdWUiOiAiNTE3In0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfRGFzaGJvYXJkT3ZlcmxheUNyZWF0ZWQiLCJ2YWx1ZSI6ICI1MTgifQorICAgICAg
ICx7Im5hbWUiOiAiVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCIsInZhbHVlIjogIjUyMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RUYWtlbiIsInZhbHVlIjogIjUyMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQiLCJ2YWx1ZSI6ICI1
MjIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TdWJtaXRTY3JlZW5zaG90VG9EYXNoYm9h
cmQiLCJ2YWx1ZSI6ICI1MjMifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9TY3JlZW5zaG90
UHJvZ3Jlc3NUb0Rhc2hib2FyZCIsInZhbHVlIjogIjUyNCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1ByaW1hcnlEYXNoYm9hcmREZXZpY2VDaGFuZ2VkIiwidmFsdWUiOiAiNTI1In0KKyAg
ICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX1Nob3duIiwidmFsdWUiOiAiNjAw
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiIsInZhbHVl
IjogIjYwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X05vdGlmaWNhdGlvbl9CZWdpbklu
dGVyYWN0aW9uIiwidmFsdWUiOiAiNjAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfTm90
aWZpY2F0aW9uX0Rlc3Ryb3llZCIsInZhbHVlIjogIjYwMyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1F1aXQiLCJ2YWx1ZSI6ICI3MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Q
cm9jZXNzUXVpdCIsInZhbHVlIjogIjcwMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1F1
aXRBYm9ydGVkX1VzZXJQcm9tcHQiLCJ2YWx1ZSI6ICI3MDIifQorICAgICAgICx7Im5hbWUiOiAi
VlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkIiwidmFsdWUiOiAiNzAzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSRXZlbnRfRHJpdmVyUmVxdWVzdGVkUXVpdCIsInZhbHVlIjogIjcwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAw
In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2Vk
IiwidmFsdWUiOiAiODAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ2hhcGVyb25lVGVt
cERhdGFIYXNDaGFuZ2VkIiwidmFsdWUiOiAiODAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfQ2hhcGVyb25lU2V0dGluZ3NIYXZlQ2hhbmdlZCIsInZhbHVlIjogIjgwMyJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQiLCJ2YWx1ZSI6ICI4MDQifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BdWRpb1NldHRpbmdzSGF2ZUNoYW5nZWQiLCJ2YWx1
ZSI6ICI4MjAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9CYWNrZ3JvdW5kU2V0dGluZ0hh
c0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTAifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9DYW1l
cmFTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODUxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfUmVwcm9qZWN0aW9uU2V0dGluZ0hhc0NoYW5nZWQiLCJ2YWx1ZSI6ICI4NTIifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9Nb2RlbFNraW5TZXR0aW5nc0hhdmVDaGFuZ2VkIiwi
dmFsdWUiOiAiODUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfRW52aXJvbm1lbnRTZXR0
aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU0In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfUG93ZXJTZXR0aW5nc0hhdmVDaGFuZ2VkIiwidmFsdWUiOiAiODU1In0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfU3RhdHVzVXBkYXRlIiwidmFsdWUiOiAiOTAwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMDAwIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSRXZlbnRfRmlybXdhcmVVcGRhdGVTdGFydGVkIiwidmFsdWUiOiAiMTEwMCJ9
CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0Zpcm13YXJlVXBkYXRlRmluaXNoZWQiLCJ2YWx1
ZSI6ICIxMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQiLCJ2
YWx1ZSI6ICIxMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRDaGFySW5w
dXQiLCJ2YWx1ZSI6ICIxMjAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfS2V5Ym9hcmRE
b25lIiwidmFsdWUiOiAiMTIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0
aW9uVHJhbnNpdGlvblN0YXJ0ZWQiLCJ2YWx1ZSI6ICIxMzAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uQWJvcnRlZCIsInZhbHVlIjogIjEzMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9BcHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBTdGFy
dGVkIiwidmFsdWUiOiAiMTMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0FwcGxpY2F0
aW9uTGlzdFVwZGF0ZWQiLCJ2YWx1ZSI6ICIxMzAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZl
bnRfQXBwbGljYXRpb25NaW1lVHlwZUxvYWQiLCJ2YWx1ZSI6ICIxMzA0In0KKyAgICAgICAseyJu
YW1lIjogIlZSRXZlbnRfQXBwbGljYXRpb25UcmFuc2l0aW9uTmV3QXBwTGF1bmNoQ29tcGxldGUi
LCJ2YWx1ZSI6ICIxMzA1In0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfQ29tcG9zaXRvcl9N
aXJyb3JXaW5kb3dTaG93biIsInZhbHVlIjogIjE0MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJF
dmVudF9Db21wb3NpdG9yX01pcnJvcldpbmRvd0hpZGRlbiIsInZhbHVlIjogIjE0MDEifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1Nob3duIiwi
dmFsdWUiOiAiMTQxMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X0NvbXBvc2l0b3JfQ2hh
cGVyb25lQm91bmRzSGlkZGVuIiwidmFsdWUiOiAiMTQxMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RhcnRWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDAifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX1N0b3BWaWRlb1N0cmVhbSIs
InZhbHVlIjogIjE1MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJh
X1BhdXNlVmlkZW9TdHJlYW0iLCJ2YWx1ZSI6ICIxNTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZS
RXZlbnRfVHJhY2tlZENhbWVyYV9SZXN1bWVWaWRlb1N0cmVhbSIsInZhbHVlIjogIjE1MDMifQor
ICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9UcmFja2VkQ2FtZXJhX0VkaXRpbmdTdXJmYWNlIiwi
dmFsdWUiOiAiMTU1MCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2ZW50X1BlcmZvcm1hbmNlVGVz
dF9FbmFibGVDYXB0dXJlIiwidmFsdWUiOiAiMTYwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkV2
ZW50X1BlcmZvcm1hbmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSIsInZhbHVlIjogIjE2MDEifQorICAg
ICAgICx7Im5hbWUiOiAiVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCIsInZh
bHVlIjogIjE2MDIifQorICAgICAgICx7Im5hbWUiOiAiVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9D
bG9zZWQiLCJ2YWx1ZSI6ICIxNjUwIn0KKyAgICAgICAseyJuYW1lIjogIlZSRXZlbnRfVmVuZG9y
U3BlY2lmaWNfUmVzZXJ2ZWRfU3RhcnQiLCJ2YWx1ZSI6ICIxMDAwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCIsInZhbHVlIjogIjE5OTk5
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVEZXZpY2VBY3Rpdml0eUxldmVsIiwi
dmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vbmtu
b3duIiwidmFsdWUiOiAiLTEifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlM
ZXZlbF9JZGxlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VEZXZpY2VBY3Rp
dml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUi
OiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25fVGltZW91dCIsInZhbHVl
IjogIjIifQorICAgICAgICx7Im5hbWUiOiAia19FRGV2aWNlQWN0aXZpdHlMZXZlbF9TdGFuZGJ5
IiwidmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJCdXR0b25J
ZCIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfRUJ1dHRvbl9TeXN0ZW0iLCJ2YWx1
ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUiLCJ2
YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfRUJ1dHRvbl9HcmlwIiwidmFsdWUiOiAi
MiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9MZWZ0IiwidmFsdWUiOiAiMyJ9
CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fRFBhZF9VcCIsInZhbHVlIjogIjQifQorICAg
ICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0RQYWRfUmlnaHQiLCJ2YWx1ZSI6ICI1In0KKyAgICAg
ICAseyJuYW1lIjogImtfRUJ1dHRvbl9EUGFkX0Rvd24iLCJ2YWx1ZSI6ICI2In0KKyAgICAgICAs
eyJuYW1lIjogImtfRUJ1dHRvbl9BIiwidmFsdWUiOiAiNyJ9CisgICAgICAgLHsibmFtZSI6ICJr
X0VCdXR0b25fUHJveGltaXR5U2Vuc29yIiwidmFsdWUiOiAiMzEifQorICAgICAgICx7Im5hbWUi
OiAia19FQnV0dG9uX0F4aXMwIiwidmFsdWUiOiAiMzIifQorICAgICAgICx7Im5hbWUiOiAia19F
QnV0dG9uX0F4aXMxIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9u
X0F4aXMyIiwidmFsdWUiOiAiMzQifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXMz
IiwidmFsdWUiOiAiMzUifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0F4aXM0IiwidmFs
dWUiOiAiMzYifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQi
LCJ2YWx1ZSI6ICIzMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fU3RlYW1WUl9Ucmln
Z2VyIiwidmFsdWUiOiAiMzMifQorICAgICAgICx7Im5hbWUiOiAia19FQnV0dG9uX0Rhc2hib2Fy
ZF9CYWNrIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX0VCdXR0b25fTWF4Iiwi
dmFsdWUiOiAiNjQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTW91c2VCdXR0
b24iLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUk1vdXNlQnV0dG9uX0xlZnQiLCJ2
YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0b25fUmlnaHQiLCJ2YWx1
ZSI6ICIyIn0KKyAgICAgICAseyJuYW1lIjogIlZSTW91c2VCdXR0b25fTWlkZGxlIiwidmFsdWUi
OiAiNCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFSGlkZGVuQXJlYU1lc2hUeXBl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19lSGlkZGVuQXJlYU1lc2hfU3RhbmRh
cmQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNoX0lu
dmVyc2UiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogImtfZUhpZGRlbkFyZWFNZXNo
X0xpbmVMb29wIiwidmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJrX2VIaWRkZW5BcmVh
TWVzaF9NYXgiLCJ2YWx1ZSI6ICIzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVW
UkNvbnRyb2xsZXJBeGlzVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogImtfZUNv
bnRyb2xsZXJBeGlzX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogImtfZUNv
bnRyb2xsZXJBeGlzX1RyYWNrUGFkIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJr
X2VDb250cm9sbGVyQXhpc19Kb3lzdGljayIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUi
OiAia19lQ29udHJvbGxlckF4aXNfVHJpZ2dlciIsInZhbHVlIjogIjMifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZSIsInZhbHVlcyI6
IFsgCisgICAgICAgeyJuYW1lIjogIkNvbnRyb2xsZXJFdmVudE91dHB1dF9PU0V2ZW50cyIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiQ29udHJvbGxlckV2ZW50T3V0cHV0X1ZSRXZl
bnRzIiwidmFsdWUiOiAiMSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFQ29sbGlz
aW9uQm91bmRzU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJDT0xMSVNJT05f
Qk9VTkRTX1NUWUxFX0JFR0lOTkVSIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJD
T0xMSVNJT05fQk9VTkRTX1NUWUxFX0lOVEVSTUVESUFURSIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVBUkVTIiwidmFsdWUiOiAiMiJ9
CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX0FEVkFOQ0VEIiwidmFs
dWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJDT0xMSVNJT05fQk9VTkRTX1NUWUxFX05PTkUi
LCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIkNPTExJU0lPTl9CT1VORFNfU1RZTEVf
Q09VTlQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1Vu
a25vd25PdmVybGF5IiwidmFsdWUiOiAiMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RXJyb3JfSW52YWxpZEhhbmRsZSIsInZhbHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZS
T3ZlcmxheUVycm9yX1Blcm1pc3Npb25EZW5pZWQiLCJ2YWx1ZSI6ICIxMiJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCIsInZhbHVlIjogIjEz
In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0eVR5cGUi
LCJ2YWx1ZSI6ICIxNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9LZXlUb29M
b25nIiwidmFsdWUiOiAiMTUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfTmFt
ZVRvb0xvbmciLCJ2YWx1ZSI6ICIxNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJv
cl9LZXlJblVzZSIsInZhbHVlIjogIjE3In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVy
cm9yX1dyb25nVHJhbnNmb3JtVHlwZSIsInZhbHVlIjogIjE4In0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlIiwidmFsdWUiOiAiMTkifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfSW52YWxpZFBhcmFtZXRlciIsInZhbHVlIjog
IjIwIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9yX1RodW1ibmFpbENhbnRCZURl
c3Ryb3llZCIsInZhbHVlIjogIjIxIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUVycm9y
X0FycmF5VG9vU21hbGwiLCJ2YWx1ZSI6ICIyMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJs
YXlFcnJvcl9SZXF1ZXN0RmFpbGVkIiwidmFsdWUiOiAiMjMifQorICAgICAgICx7Im5hbWUiOiAi
VlJPdmVybGF5RXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIyNCJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlIiwidmFsdWUiOiAiMjUifQor
ICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfS2V5Ym9hcmRBbHJlYWR5SW5Vc2UiLCJ2
YWx1ZSI6ICIyNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9y
IiwidmFsdWUiOiAiMjcifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RXJyb3JfVG9vTWFu
eU1hc2tQcmltaXRpdmVzIiwidmFsdWUiOiAiMjkifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVy
bGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSIsInZhbHVlIjogIjMwIn0KK119CissICAgICAgIHsi
ZW51bW5hbWUiOiAidnI6OkVWUkFwcGxpY2F0aW9uVHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAg
eyJuYW1lIjogIlZSQXBwbGljYXRpb25fT3RoZXIiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25fU2NlbmUiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fT3ZlcmxheSIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUi
OiAiVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1V0aWxpdHkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25fVlJNb25pdG9yIiwidmFsdWUiOiAiNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2ciLCJ2YWx1ZSI6ICI2In0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25fTWF4IiwidmFsdWUiOiAiNyJ9CitdfQorLCAgICAgICB7
ImVudW1uYW1lIjogInZyOjpFVlJGaXJtd2FyZUVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7
Im5hbWUiOiAiVlJGaXJtd2FyZUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSRmlybXdhcmVFcnJvcl9TdWNjZXNzIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkZpcm13YXJlRXJyb3JfRmFpbCIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAg
eyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3IiLCJ2YWx1ZXMiOiBbIAorICAg
ICAgIHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX09LIiwidmFsdWUiOiAiMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCIs
InZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk5vdGlmaWNhdGlvbkVycm9yX05v
dGlmaWNhdGlvblF1ZXVlRnVsbCIsInZhbHVlIjogIjEwMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk5vdGlmaWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlIiwidmFsdWUiOiAiMTAyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSTm90aWZpY2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1
ZUFscmVhZHlFeGlzdHMiLCJ2YWx1ZSI6ICIxMDMifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RVZSSW5pdEVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJJbml0
RXJyb3JfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3Jf
VW5rbm93biIsInZhbHVlIjogIjEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5p
dF9JbnN0YWxsYXRpb25Ob3RGb3VuZCIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQiLCJ2YWx1ZSI6ICIxMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5vdEZvdW5kIiwi
dmFsdWUiOiAiMTAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfRmlsZU5v
dEZvdW5kIiwidmFsdWUiOiAiMTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfRmFjdG9yeU5vdEZvdW5kIiwidmFsdWUiOiAiMTA0In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0luaXRfSW50ZXJmYWNlTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDUifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlIiwidmFsdWUiOiAi
MTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVXNlckNvbmZpZ0RpcmVj
dG9yeUludmFsaWQiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfSW5pdF9IbWROb3RGb3VuZCIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90Rm91bmQiLCJ2YWx1ZSI6
ICIxMTAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGgi
LCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob0xv
Z1BhdGgiLCJ2YWx1ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5p
dF9QYXRoUmVnaXN0cnlOb3RXcml0YWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Jbml0X0FwcEluZm9Jbml0RmFpbGVkIiwidmFsdWUiOiAiMTE0In0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfUmV0cnkiLCJ2YWx1ZSI6ICIxMTUi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Jbml0Q2FuY2VsZWRCeVVzZXIi
LCJ2YWx1ZSI6ICIxMTYifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Bbm90
aGVyQXBwTGF1bmNoaW5nIiwidmFsdWUiOiAiMTE3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5p
dEVycm9yX0luaXRfU2V0dGluZ3NJbml0RmFpbGVkIiwidmFsdWUiOiAiMTE4In0KKyAgICAgICAs
eyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duIiwidmFsdWUiOiAiMTE5In0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMiLCJ2YWx1
ZSI6ICIxMjAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZv
ckJhY2tncm91bmRBcHAiLCJ2YWx1ZSI6ICIxMjEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfSW5pdF9Ob3RTdXBwb3J0ZWRXaXRoQ29tcG9zaXRvciIsInZhbHVlIjogIjEyMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJsZVRvVXRpbGl0eUFw
cHMiLCJ2YWx1ZSI6ICIxMjMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9J
bnRlcm5hbCIsInZhbHVlIjogIjEyNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9J
bml0X0htZERyaXZlcklkSXNOb25lIiwidmFsdWUiOiAiMTI1In0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCIsInZhbHVlIjogIjEy
NiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvck5vdEZvdW5k
IiwidmFsdWUiOiAiMTI3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0luaXRfVlJN
b25pdG9yU3RhcnR1cEZhaWxlZCIsInZhbHVlIjogIjEyOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQiLCJ2YWx1ZSI6ICIx
MjkifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9JbnZhbGlkQXBwbGljYXRp
b25UeXBlIiwidmFsdWUiOiAiMTMwIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lu
aXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0FwcHMiLCJ2YWx1ZSI6ICIxMzEifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyIsInZh
bHVlIjogIjEzMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJv
YXJkTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMzMifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJy
b3JfSW5pdF9WUkRhc2hib2FyZFN0YXJ0dXBGYWlsZWQiLCJ2YWx1ZSI6ICIxMzQifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCIsInZhbHVlIjogIjIwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93biIsInZhbHVlIjogIjIw
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biIsInZh
bHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90TG9h
ZGVkIiwidmFsdWUiOiAiMjAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZl
cl9SdW50aW1lT3V0T2ZEYXRlIiwidmFsdWUiOiAiMjA0In0KKyAgICAgICAseyJuYW1lIjogIlZS
SW5pdEVycm9yX0RyaXZlcl9IbWRJblVzZSIsInZhbHVlIjogIjIwNSJ9CisgICAgICAgLHsibmFt
ZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfTm90Q2FsaWJyYXRlZCIsInZhbHVlIjogIjIwNiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9Ecml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkIiwi
dmFsdWUiOiAiMjA3In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWRE
aXNwbGF5Tm90Rm91bmQiLCJ2YWx1ZSI6ICIyMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0
RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duIiwidmFsdWUiOiAiMjA5
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0RyaXZlcl9IbWREcml2ZXJJZE91dE9m
Qm91bmRzIiwidmFsdWUiOiAiMjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREaXNwbGF5TWlycm9yZWQiLCJ2YWx1ZSI6ICIyMTIifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDAifQorICAg
ICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWQiLCJ2YWx1ZSI6ICIz
MDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZh
aWxlZCIsInZhbHVlIjogIjMwMiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENf
Q29tcG9zaXRvckluaXRGYWlsZWQiLCJ2YWx1ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAi
VlJJbml0RXJyb3JfSVBDX011dGV4SW5pdEZhaWxlZCIsInZhbHVlIjogIjMwNCJ9CisgICAgICAg
LHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfRmFpbGVkIiwidmFsdWUiOiAiMzA1In0KKyAgICAg
ICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCIsInZh
bHVlIjogIjMwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRv
ckludmFsaWRDb25uZWN0UmVzcG9uc2UiLCJ2YWx1ZSI6ICIzMDcifQorICAgICAgICx7Im5hbWUi
OiAiVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMiLCJ2
YWx1ZSI6ICIzMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9G
YWlsZWQiLCJ2YWx1ZSI6ICI0MDAifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9EM0QxMUhhcmR3YXJlUmVxdWlyZWQiLCJ2YWx1ZSI6ICI0MDEifQorICAgICAgICx7
Im5hbWUiOiAiVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GaXJtd2FyZVJlcXVpcmVzVXBkYXRlIiwi
dmFsdWUiOiAiNDAyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX0NvbXBvc2l0b3Jf
T3ZlcmxheUluaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0MDMifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9TY3JlZW5zaG90c0luaXRGYWlsZWQiLCJ2YWx1ZSI6ICI0MDQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfVW5hYmxlVG9D
b25uZWN0VG9PY3VsdXNSdW50aW1lIiwidmFsdWUiOiAiMTAwMCJ9CisgICAgICAgLHsibmFtZSI6
ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSIsInZh
bHVlIjogIjExMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQiLCJ2YWx1ZSI6ICIxMTAyIn0K
KyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX05v
U3RvcmVkQ29uZmlnIiwidmFsdWUiOiAiMTEwMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRF
cnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29CaWciLCJ2YWx1ZSI6ICIxMTA0
In0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X0NvbmZpZ1Rvb1NtYWxsIiwidmFsdWUiOiAiMTEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0luaXRaTGliIiwidmFsdWUi
OiAiMTEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19I
bWRGb3VuZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiIsInZhbHVlIjogIjExMDcifQorICAgICAg
ICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9T
ZW5kVXNlckRhdGFTdGFydCIsInZhbHVlIjogIjExMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2VyRGF0YVN0YXJ0
IiwidmFsdWUiOiAiMTEwOSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhTmV4dCIsInZhbHVlIjogIjExMTAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRf
VXNlckRhdGFBZGRyZXNzUmFuZ2UiLCJ2YWx1ZSI6ICIxMTExIn0KKyAgICAgICAseyJuYW1lIjog
IlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhRXJyb3IiLCJ2YWx1
ZSI6ICIxMTEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrIiwidmFsdWUiOiAiMTExMyJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5k
IiwidmFsdWUiOiAiMjAwMCJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJTY3Jl
ZW5zaG90VHlwZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdFR5
cGVfTm9uZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9Nb25vIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RUeXBl
X1N0ZXJlbyIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90VHlw
ZV9DdWJlbWFwIiwidmFsdWUiOiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlNjcmVlbnNob3RU
eXBlX01vbm9QYW5vcmFtYSIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3Jl
ZW5zaG90VHlwZV9TdGVyZW9QYW5vcmFtYSIsInZhbHVlIjogIjUifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmll
dyIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90UHJvcGVydHlG
aWxlbmFtZXNfVlIiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6
OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZS
VHJhY2tlZENhbWVyYUVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCIsInZhbHVlIjogIjEwMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkSGFuZGxlIiwidmFs
dWUiOiAiMTAxIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFs
aWRGcmFtZUhlYWRlclZlcnNpb24iLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAi
VlJUcmFja2VkQ2FtZXJhRXJyb3JfT3V0T2ZIYW5kbGVzIiwidmFsdWUiOiAiMTAzIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0lQQ0ZhaWx1cmUiLCJ2YWx1ZSI6ICIx
MDQifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9ydGVk
Rm9yVGhpc0RldmljZSIsInZhbHVlIjogIjEwNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlIiwidmFsdWUiOiAiMTA2In0KKyAgICAg
ICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ZyYW1lQnVmZmVyaW5nRmFpbHVyZSIs
InZhbHVlIjogIjEwNyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFFcnJvcl9T
dHJlYW1TZXR1cEZhaWx1cmUiLCJ2YWx1ZSI6ICIxMDgifQorICAgICAgICx7Im5hbWUiOiAiVlJU
cmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEdMVGV4dHVyZUlkIiwidmFsdWUiOiAiMTA5In0KKyAg
ICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRTaGFyZWRUZXh0dXJl
SGFuZGxlIiwidmFsdWUiOiAiMTEwIn0KKyAgICAgICAseyJuYW1lIjogIlZSVHJhY2tlZENhbWVy
YUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQiLCJ2YWx1ZSI6ICIxMTEifQorICAgICAgICx7
Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkVGV4dHVyZUZhaWx1cmUiLCJ2YWx1
ZSI6ICIxMTIifQorICAgICAgICx7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm9GcmFt
ZUF2YWlsYWJsZSIsInZhbHVlIjogIjExMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUlRyYWNrZWRD
YW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7Im5h
bWUiOiAiVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZEZyYW1lQnVmZmVyU2l6ZSIsInZhbHVl
IjogIjExNSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlX0Rpc3RvcnRlZCIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVkIiwidmFsdWUiOiAiMSJ9CisgICAgICAg
LHsibmFtZSI6ICJWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGVfTWF4aW11bVVuZGlzdG9ydGVkIiwi
dmFsdWUiOiAiMiJ9CisgICAgICAgLHsibmFtZSI6ICJNQVhfQ0FNRVJBX0ZSQU1FX1RZUEVTIiwi
dmFsdWUiOiAiMyJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFVlJBcHBsaWNhdGlv
bkVycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJv
cl9BcHBLZXlBbHJlYWR5RXhpc3RzIiwidmFsdWUiOiAiMTAwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25FcnJvcl9Ob01hbmlmZXN0IiwidmFsdWUiOiAiMTAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9Ob0FwcGxpY2F0aW9uIiwidmFsdWUiOiAiMTAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkSW5kZXgiLCJ2
YWx1ZSI6ICIxMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX1Vua25v
d25BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxp
Y2F0aW9uRXJyb3JfSVBDRmFpbGVkIiwidmFsdWUiOiAiMTA1In0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlSdW5uaW5nIiwidmFsdWUiOiAi
MTA2In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZl
c3QiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X0ludmFsaWRBcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwOCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkFwcGxpY2F0aW9uRXJyb3JfTGF1bmNoRmFpbGVkIiwidmFsdWUiOiAiMTA5In0KKyAgICAgICAs
eyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9BcHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyIs
InZhbHVlIjogIjExMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfTGF1
bmNoSW5Qcm9ncmVzcyIsInZhbHVlIjogIjExMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxp
Y2F0aW9uRXJyb3JfT2xkQXBwbGljYXRpb25RdWl0dGluZyIsInZhbHVlIjogIjExMiJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVHJhbnNpdGlvbkFib3J0ZWQiLCJ2YWx1
ZSI6ICIxMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9yX0lzVGVtcGxh
dGUiLCJ2YWx1ZSI6ICIxMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvbkVycm9y
X0J1ZmZlclRvb1NtYWxsIiwidmFsdWUiOiAiMjAwIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBw
bGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsi
bmFtZSI6ICJWUkFwcGxpY2F0aW9uRXJyb3JfVW5rbm93blByb3BlcnR5IiwidmFsdWUiOiAiMjAy
In0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25FcnJvcl9JbnZhbGlkUGFyYW1ldGVy
IiwidmFsdWUiOiAiMjAzIn0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUkFwcGxp
Y2F0aW9uUHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0
aW9uUHJvcGVydHlfTmFtZV9TdHJpbmciLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjog
IlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9MYXVuY2hUeXBlX1N0cmluZyIsInZhbHVlIjogIjExIn0K
KyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5
X1N0cmluZyIsInZhbHVlIjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9CaW5hcnlQYXRoX1N0cmluZyIsInZhbHVlIjogIjEzIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Bcmd1bWVudHNfU3RyaW5nIiwidmFsdWUiOiAiMTQi
fQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmciLCJ2
YWx1ZSI6ICIxNSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfRGVz
Y3JpcHRpb25fU3RyaW5nIiwidmFsdWUiOiAiNTAifQorICAgICAgICx7Im5hbWUiOiAiVlJBcHBs
aWNhdGlvblByb3BlcnR5X05ld3NVUkxfU3RyaW5nIiwidmFsdWUiOiAiNTEifQorICAgICAgICx7
Im5hbWUiOiAiVlJBcHBsaWNhdGlvblByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmciLCJ2YWx1ZSI6
ICI1MiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfU291cmNlX1N0
cmluZyIsInZhbHVlIjogIjUzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0Rhc2hib2FyZE92ZXJsYXlfQm9vbCIsInZhbHVlIjogIjYwIn0KKyAgICAgICAseyJu
YW1lIjogIlZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wiLCJ2YWx1ZSI6ICI2
MSJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnN0YW5jZWRf
Qm9vbCIsInZhbHVlIjogIjYyIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25Qcm9w
ZXJ0eV9Jc0ludGVybmFsX0Jvb2wiLCJ2YWx1ZSI6ICI2MyJ9CisgICAgICAgLHsibmFtZSI6ICJW
UkFwcGxpY2F0aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0IiwidmFsdWUiOiAiNzAi
fQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25UcmFuc2l0aW9u
U3RhdGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUkFwcGxpY2F0aW9uVHJhbnNp
dGlvbl9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkFwcGxpY2F0aW9u
VHJhbnNpdGlvbl9PbGRBcHBRdWl0U2VudCIsInZhbHVlIjogIjEwIn0KKyAgICAgICAseyJuYW1l
IjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9uX1dhaXRpbmdGb3JFeHRlcm5hbExhdW5jaCIsInZh
bHVlIjogIjExIn0KKyAgICAgICAseyJuYW1lIjogIlZSQXBwbGljYXRpb25UcmFuc2l0aW9uX05l
d0FwcExhdW5jaGVkIiwidmFsdWUiOiAiMjAifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2
cjo6Q2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZSIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1l
IjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfT0siLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAs
eyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZyIsInZhbHVlIjogIjEw
MCJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdf
QmFzZVN0YXRpb25NYXlIYXZlTW92ZWQiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUi
OiAiQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nX0Jhc2VTdGF0aW9uUmVtb3ZlZCIs
InZhbHVlIjogIjEwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0
YXRlX1dhcm5pbmdfU2VhdGVkQm91bmRzSW52YWxpZCIsInZhbHVlIjogIjEwMyJ9CisgICAgICAg
LHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yIiwidmFsdWUiOiAiMjAw
In0KKyAgICAgICAseyJuYW1lIjogIkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFz
ZVN0YXRpb25VbmluaXRpYWxpemVkIiwidmFsdWUiOiAiMjAxIn0KKyAgICAgICAseyJuYW1lIjog
IkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQmFzZVN0YXRpb25Db25mbGljdCIsInZh
bHVlIjogIjIwMiJ9CisgICAgICAgLHsibmFtZSI6ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRl
X0Vycm9yX1BsYXlBcmVhSW52YWxpZCIsInZhbHVlIjogIjIwMyJ9CisgICAgICAgLHsibmFtZSI6
ICJDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX0Vycm9yX0NvbGxpc2lvbkJvdW5kc0ludmFsaWQi
LCJ2YWx1ZSI6ICIyMDQifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RUNoYXBlcm9u
ZUNvbmZpZ0ZpbGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFQ2hhcGVyb25lQ29u
ZmlnRmlsZV9MaXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJFQ2hhcGVyb25l
Q29uZmlnRmlsZV9UZW1wIiwidmFsdWUiOiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjog
InZyOjpFQ2hhcGVyb25lSW1wb3J0RmxhZ3MiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6
ICJFQ2hhcGVyb25lSW1wb3J0X0JvdW5kc09ubHkiLCJ2YWx1ZSI6ICIxIn0KK119CissICAgICAg
IHsiZW51bW5hbWUiOiAidnI6OkVWUkNvbXBvc2l0b3JFcnJvciIsInZhbHVlcyI6IFsgCisgICAg
ICAgeyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAg
ICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6ICIx
In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX0luY29tcGF0aWJsZVZlcnNp
b24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9yRXJyb3Jf
RG9Ob3RIYXZlRm9jdXMiLCJ2YWx1ZSI6ICIxMDEifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21w
b3NpdG9yRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICIxMDIifQorICAgICAgICx7Im5h
bWUiOiAiVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uIiwidmFsdWUiOiAi
MTAzIn0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9zaXRvckVycm9yX1RleHR1cmVJc09uV3Jv
bmdEZXZpY2UiLCJ2YWx1ZSI6ICIxMDQifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb3NpdG9y
RXJyb3JfVGV4dHVyZVVzZXNVbnN1cHBvcnRlZEZvcm1hdCIsInZhbHVlIjogIjEwNSJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBvcnRl
ZCIsInZhbHVlIjogIjEwNiJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvc2l0b3JFcnJvcl9J
bmRleE91dE9mUmFuZ2UiLCJ2YWx1ZSI6ICIxMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21w
b3NpdG9yRXJyb3JfQWxyZWFkeVN1Ym1pdHRlZCIsInZhbHVlIjogIjEwOCJ9CitdfQorLCAgICAg
ICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCIsInZhbHVlcyI6IFsgCisg
ICAgICAgeyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX05vbmUiLCJ2YWx1ZSI6ICIwIn0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNlIiwidmFsdWUiOiAi
MSJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpWUk92ZXJsYXlUcmFuc2Zvcm1UeXBl
IiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX0Fic29s
dXRlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlUcmFuc2Zvcm1f
VHJhY2tlZERldmljZVJlbGF0aXZlIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJW
Uk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSIsInZhbHVlIjogIjIifQorICAgICAgICx7
Im5hbWUiOiAiVlJPdmVybGF5VHJhbnNmb3JtX1RyYWNrZWRDb21wb25lbnQiLCJ2YWx1ZSI6ICIz
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OlZST3ZlcmxheUZsYWdzIiwidmFsdWVz
IjogWyAKKyAgICAgICB7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfTm9uZSIsInZhbHVlIjogIjAi
fQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfQ3VydmVkIiwidmFsdWUiOiAiMSJ9
CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19SR1NTNFgiLCJ2YWx1ZSI6ICIyIn0K
KyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX05vRGFzaGJvYXJkVGFiIiwidmFsdWUi
OiAiMyJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19BY2NlcHRzR2FtZXBhZEV2
ZW50cyIsInZhbHVlIjogIjQifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2hv
d0dhbWVwYWRGb2N1cyIsInZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5
RmxhZ3NfU2VuZFZSU2Nyb2xsRXZlbnRzIiwidmFsdWUiOiAiNiJ9CisgICAgICAgLHsibmFtZSI6
ICJWUk92ZXJsYXlGbGFnc19TZW5kVlJUb3VjaHBhZEV2ZW50cyIsInZhbHVlIjogIjcifQorICAg
ICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU2hvd1RvdWNoUGFkU2Nyb2xsV2hlZWwiLCJ2
YWx1ZSI6ICI4In0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1RyYW5zZmVyT3du
ZXJzaGlwVG9JbnRlcm5hbFByb2Nlc3MiLCJ2YWx1ZSI6ICI5In0KKyAgICAgICAseyJuYW1lIjog
IlZST3ZlcmxheUZsYWdzX1NpZGVCeVNpZGVfUGFyYWxsZWwiLCJ2YWx1ZSI6ICIxMCJ9CisgICAg
ICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX0Nyb3NzZWQiLCJ2YWx1ZSI6
ICIxMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk92ZXJsYXlGbGFnc19QYW5vcmFtYSIsInZhbHVl
IjogIjEyIn0KKyAgICAgICAseyJuYW1lIjogIlZST3ZlcmxheUZsYWdzX1N0ZXJlb1Bhbm9yYW1h
IiwidmFsdWUiOiAiMTMifQorICAgICAgICx7Im5hbWUiOiAiVlJPdmVybGF5RmxhZ3NfU29ydFdp
dGhOb25TY2VuZU92ZXJsYXlzIiwidmFsdWUiOiAiMTQifQorICAgICAgICx7Im5hbWUiOiAiVlJP
dmVybGF5RmxhZ3NfVmlzaWJsZUluRGFzaGJvYXJkIiwidmFsdWUiOiAiMTUifQorXX0KKywgICAg
ICAgeyJlbnVtbmFtZSI6ICJ2cjo6VlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIiwidmFsdWVzIjog
WyAKKyAgICAgICB7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNz
XzAiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZV9CdXR0b25QcmVzc18xIiwidmFsdWUiOiAiMSJ9CisgICAgICAgLHsibmFtZSI6ICJWUk1l
c3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMiIsInZhbHVlIjogIjIifQorICAgICAg
ICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzMiLCJ2YWx1
ZSI6ICIzIn0KKyAgICAgICAseyJuYW1lIjogIlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3Vs
ZG50RmluZFN5c3RlbU92ZXJsYXkiLCJ2YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZS
TWVzc2FnZU92ZXJsYXlSZXNwb25zZV9Db3VsZG50RmluZE9yQ3JlYXRlQ2xpZW50T3ZlcmxheSIs
InZhbHVlIjogIjUifQorICAgICAgICx7Im5hbWUiOiAiVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNl
X0FwcGxpY2F0aW9uUXVpdCIsInZhbHVlIjogIjYifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6
ICJ2cjo6RUdhbWVwYWRUZXh0SW5wdXRNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUi
OiAia19FR2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAs
eyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlUGFzc3dvcmQiLCJ2YWx1ZSI6ICIxIn0K
KyAgICAgICAseyJuYW1lIjogImtfRUdhbWVwYWRUZXh0SW5wdXRNb2RlU3VibWl0IiwidmFsdWUi
OiAiMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dExp
bmVNb2RlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAia19FR2FtZXBhZFRleHRJbnB1
dExpbmVNb2RlU2luZ2xlTGluZSIsInZhbHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAia19F
R2FtZXBhZFRleHRJbnB1dExpbmVNb2RlTXVsdGlwbGVMaW5lcyIsInZhbHVlIjogIjEifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RU92ZXJsYXlEaXJlY3Rpb24iLCJ2YWx1ZXMiOiBb
IAorICAgICAgIHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX1VwIiwidmFsdWUiOiAiMCJ9Cisg
ICAgICAgLHsibmFtZSI6ICJPdmVybGF5RGlyZWN0aW9uX0Rvd24iLCJ2YWx1ZSI6ICIxIn0KKyAg
ICAgICAseyJuYW1lIjogIk92ZXJsYXlEaXJlY3Rpb25fTGVmdCIsInZhbHVlIjogIjIifQorICAg
ICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9SaWdodCIsInZhbHVlIjogIjMifQorICAg
ICAgICx7Im5hbWUiOiAiT3ZlcmxheURpcmVjdGlvbl9Db3VudCIsInZhbHVlIjogIjQifQorXX0K
KywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmlt
aXRpdmVUeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiT3ZlcmxheUludGVyc2Vj
dGlvblByaW1pdGl2ZVR5cGVfUmVjdGFuZ2xlIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJPdmVybGF5SW50ZXJzZWN0aW9uUHJpbWl0aXZlVHlwZV9DaXJjbGUiLCJ2YWx1ZSI6ICIx
In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IiLCJ2
YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTm9uZSIsInZh
bHVlIjogIjAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX0xvYWRpbmci
LCJ2YWx1ZSI6ICIxMDAifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05v
dFN1cHBvcnRlZCIsInZhbHVlIjogIjIwMCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1v
ZGVsRXJyb3JfSW52YWxpZEFyZyIsInZhbHVlIjogIjMwMCJ9CisgICAgICAgLHsibmFtZSI6ICJW
UlJlbmRlck1vZGVsRXJyb3JfSW52YWxpZE1vZGVsIiwidmFsdWUiOiAiMzAxIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSUmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyIsInZhbHVlIjogIjMwMiJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVTaGFwZXMiLCJ2YWx1
ZSI6ICIzMDMifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX1Rvb01hbnlW
ZXJ0aWNlcyIsInZhbHVlIjogIjMwNCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1vZGVs
RXJyb3JfTXVsdGlwbGVUZXh0dXJlcyIsInZhbHVlIjogIjMwNSJ9CisgICAgICAgLHsibmFtZSI6
ICJWUlJlbmRlck1vZGVsRXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2YWx1ZSI6ICIzMDYifQorICAg
ICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaE5vcm1hbHMiLCJ2YWx1
ZSI6ICIzMDcifQorICAgICAgICx7Im5hbWUiOiAiVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3Vn
aFRleENvb3JkcyIsInZhbHVlIjogIjMwOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUlJlbmRlck1v
ZGVsRXJyb3JfSW52YWxpZFRleHR1cmUiLCJ2YWx1ZSI6ICI0MDAifQorXX0KKywgICAgICAgeyJl
bnVtbmFtZSI6ICJ2cjo6RVZSQ29tcG9uZW50UHJvcGVydHkiLCJ2YWx1ZXMiOiBbIAorICAgICAg
IHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzU3RhdGljIiwidmFsdWUiOiAiMSJ9Cisg
ICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5X0lzVmlzaWJsZSIsInZhbHVlIjog
IjIifQorICAgICAgICx7Im5hbWUiOiAiVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1RvdWNoZWQiLCJ2
YWx1ZSI6ICI0In0KKyAgICAgICAseyJuYW1lIjogIlZSQ29tcG9uZW50UHJvcGVydHlfSXNQcmVz
c2VkIiwidmFsdWUiOiAiOCJ9CisgICAgICAgLHsibmFtZSI6ICJWUkNvbXBvbmVudFByb3BlcnR5
X0lzU2Nyb2xsZWQiLCJ2YWx1ZSI6ICIxNiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1lIjogInZy
OjpFVlJOb3RpZmljYXRpb25UeXBlIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAiRVZS
Tm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnQiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1l
IjogIkVWUk5vdGlmaWNhdGlvblR5cGVfUGVyc2lzdGVudCIsInZhbHVlIjogIjEifQorICAgICAg
ICx7Im5hbWUiOiAiRVZSTm90aWZpY2F0aW9uVHlwZV9UcmFuc2llbnRfU3lzdGVtV2l0aFVzZXJW
YWx1ZSIsInZhbHVlIjogIjIifQorXX0KKywgICAgICAgeyJlbnVtbmFtZSI6ICJ2cjo6RVZSTm90
aWZpY2F0aW9uU3R5bGUiLCJ2YWx1ZXMiOiBbIAorICAgICAgIHsibmFtZSI6ICJFVlJOb3RpZmlj
YXRpb25TdHlsZV9Ob25lIiwidmFsdWUiOiAiMCJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3Rp
ZmljYXRpb25TdHlsZV9BcHBsaWNhdGlvbiIsInZhbHVlIjogIjEwMCJ9CisgICAgICAgLHsibmFt
ZSI6ICJFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0Rpc2FibGVkIiwidmFsdWUiOiAiMjAw
In0KKyAgICAgICAseyJuYW1lIjogIkVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5hYmxl
ZCIsInZhbHVlIjogIjIwMSJ9CisgICAgICAgLHsibmFtZSI6ICJFVlJOb3RpZmljYXRpb25TdHls
ZV9Db250YWN0X0FjdGl2ZSIsInZhbHVlIjogIjIwMiJ9CitdfQorLCAgICAgICB7ImVudW1uYW1l
IjogInZyOjpFVlJTZXR0aW5nc0Vycm9yIiwidmFsdWVzIjogWyAKKyAgICAgICB7Im5hbWUiOiAi
VlJTZXR0aW5nc0Vycm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZS
U2V0dGluZ3NFcnJvcl9JUENGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjog
IlZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCIsInZhbHVlIjogIjIifQorICAgICAgICx7Im5h
bWUiOiAiVlJTZXR0aW5nc0Vycm9yX1JlYWRGYWlsZWQiLCJ2YWx1ZSI6ICIzIn0KKyAgICAgICAs
eyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9Kc29uUGFyc2VGYWlsZWQiLCJ2YWx1ZSI6ICI0In0K
KyAgICAgICAseyJuYW1lIjogIlZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1
bHQiLCJ2YWx1ZSI6ICI1In0KK119CissICAgICAgIHsiZW51bW5hbWUiOiAidnI6OkVWUlNjcmVl
bnNob3RFcnJvciIsInZhbHVlcyI6IFsgCisgICAgICAgeyJuYW1lIjogIlZSU2NyZWVuc2hvdEVy
cm9yX05vbmUiLCJ2YWx1ZSI6ICIwIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2NyZWVuc2hvdEVy
cm9yX1JlcXVlc3RGYWlsZWQiLCJ2YWx1ZSI6ICIxIn0KKyAgICAgICAseyJuYW1lIjogIlZSU2Ny
ZWVuc2hvdEVycm9yX0luY29tcGF0aWJsZVZlcnNpb24iLCJ2YWx1ZSI6ICIxMDAifQorICAgICAg
ICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQiLCJ2YWx1ZSI6ICIxMDEifQor
ICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfQnVmZmVyVG9vU21hbGwiLCJ2YWx1
ZSI6ICIxMDIifQorICAgICAgICx7Im5hbWUiOiAiVlJTY3JlZW5zaG90RXJyb3JfU2NyZWVuc2hv
dEFscmVhZHlJblByb2dyZXNzIiwidmFsdWUiOiAiMTA4In0KK119CitdLAorImNvbnN0cyI6W3sK
KyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhEcml2ZXJEZWJ1Z1Jlc3BvbnNlU2l6ZSIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9CisseworICAg
ICAgICJjb25zdG5hbWUiOiAia191blRyYWNrZWREZXZpY2VJbmRleF9IbWQiLCJjb25zdHR5cGUi
OiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia191bk1heFRyYWNrZWREZXZpY2VDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50
MzJfdCIsICJjb25zdHZhbCI6ICIxNiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blRy
YWNrZWREZXZpY2VJbmRleE90aGVyIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNv
bnN0dmFsIjogIjQyOTQ5NjcyOTQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5UcmFj
a2VkRGV2aWNlSW5kZXhJbnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNv
bnN0dmFsIjogIjQyOTQ5NjcyOTUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdWxJbnZh
bGlkUHJvcGVydHlDb250YWluZXIiLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlDb250YWlu
ZXJIYW5kbGVfdCIsICJjb25zdHZhbCI6ICIwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3VuSW52YWxpZFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRh
Z190IiwgImNvbnN0dmFsIjogIjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5GbG9h
dFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNv
bnN0dmFsIjogIjEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5JbnQzMlByb3BlcnR5
VGFnIiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjog
IjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5VaW50NjRQcm9wZXJ0eVRhZyIsImNv
bnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIzIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuQm9vbFByb3BlcnR5VGFnIiwiY29uc3R0eXBlIjog
ImNvbnN0IFByb3BlcnR5VHlwZVRhZ190IiwgImNvbnN0dmFsIjogIjQifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfdW5TdHJpbmdQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQ
cm9wZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIyMCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia191bkhtZE1hdHJpeDQ0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVy
dHlUeXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfdW5IbWRWZWN0b3IzUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlU
eXBlVGFnX3QiLCAiY29uc3R2YWwiOiAiMjIifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5IbWRWZWN0b3I0UHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBl
VGFnX3QiLCAiY29uc3R2YWwiOiAiMjMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5I
aWRkZW5BcmVhUHJvcGVydHlUYWciLCJjb25zdHR5cGUiOiAiY29uc3QgUHJvcGVydHlUeXBlVGFn
X3QiLCAiY29uc3R2YWwiOiAiMzAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5PcGVu
VlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0IiwiY29uc3R0eXBlIjogImNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IiwgImNvbnN0dmFsIjogIjEwMDAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX0VuZCIsImNvbnN0dHlwZSI6ICJjb25zdCBQcm9wZXJ0
eVR5cGVUYWdfdCIsICJjb25zdHZhbCI6ICIxMDAwMCJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJf
dCIsICJjb25zdHZhbCI6ICIzMjc2OCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bkNv
bnRyb2xsZXJTdGF0ZUF4aXNDb3VudCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJj
b25zdHZhbCI6ICI1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VsT3ZlcmxheUhhbmRs
ZUludmFsaWQiLCJjb25zdHR5cGUiOiAiY29uc3QgVlJPdmVybGF5SGFuZGxlX3QiLCAiY29uc3R2
YWwiOiAiMCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191blNjcmVlbnNob3RIYW5kbGVJ
bnZhbGlkIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjAifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlN5c3RlbV9WZXJzaW9uIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlN5c3RlbV8wMTUifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogIklWUkV4dGVuZGVkRGlzcGxheV9WZXJzaW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkV4dGVuZGVkRGlzcGxheV8w
MDEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUlRyYWNrZWRDYW1lcmFfVmVyc2lvbiIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJUcmFja2Vk
Q2FtZXJhXzAwMyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heEFwcGxpY2F0aW9u
S2V5TGVuZ3RoIiwiY29uc3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjEy
OCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTWltZVR5cGVfSG9tZUFwcCIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ2ci9ob21lIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ2ci9nYW1lX3RoZWF0ZXIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkFwcGxpY2F0aW9uc19WZXJzaW9uIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkFwcGxpY2F0aW9u
c18wMDYifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNoYXBlcm9uZV9WZXJzaW9uIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUkNoYXBlcm9u
ZV8wMDMifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogIklWUkNoYXBlcm9uZVNldHVwX1ZlcnNp
b24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiSVZSQ2hh
cGVyb25lU2V0dXBfMDA1In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJJVlJDb21wb3NpdG9y
X1ZlcnNpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
SVZSQ29tcG9zaXRvcl8wMjAifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5WUk92ZXJs
YXlNYXhLZXlMZW5ndGgiLCJjb25zdHR5cGUiOiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwi
OiAiMTI4In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3VuVlJPdmVybGF5TWF4TmFtZUxl
bmd0aCIsImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIxMjgifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5NYXhPdmVybGF5Q291bnQiLCJjb25zdHR5cGUi
OiAiY29uc3QgdWludDMyX3QiLCAiY29uc3R2YWwiOiAiNjQifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfdW5NYXhPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZXNDb3VudCIsImNv
bnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIzMiJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAiSVZST3ZlcmxheV9WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUk92ZXJsYXlfMDE0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9HREMyMDE1IiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImdkYzIwMTUifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFzZSJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfVGlwIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInRpcCJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29udHJvbGxlcl9Db21wb25lbnRfSGFuZEdyaXAiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiaGFuZGdyaXAifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGF0dXMifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogIklWUlJlbmRlck1vZGVsc19WZXJzaW9uIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIklWUlJlbmRlck1vZGVsc18wMDUi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfdW5Ob3RpZmljYXRpb25UZXh0TWF4U2l6ZSIs
ImNvbnN0dHlwZSI6ICJjb25zdCB1aW50MzJfdCIsICJjb25zdHZhbCI6ICIyNTYifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogIklWUk5vdGlmaWNhdGlvbnNfVmVyc2lvbiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJOb3RpZmljYXRpb25zXzAwMiJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia191bk1heFNldHRpbmdzS2V5TGVuZ3RoIiwiY29u
c3R0eXBlIjogImNvbnN0IHVpbnQzMl90IiwgImNvbnN0dmFsIjogIjEyOCJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAiSVZSU2V0dGluZ3NfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJJVlJTZXR0aW5nc18wMDIifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzdGVhbXZyIn0KKyx7CisgICAgICAgImNvbnN0bmFt
ZSI6ICJrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlcXVpcmVIbWQifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkRHJpdmVyS2V5X1N0cmluZyIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZWREcml2ZXIifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9yY2VkSG1kS2V5X1N0cmluZyIs
ImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJmb3JjZWRIbWQi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxh
eURlYnVnIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RlYnVnUHJv
Y2Vzc1BpcGVfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogImRlYnVnUHJvY2Vzc1BpcGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfRW5hYmxlRGlzdG9ydGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZURpc3RvcnRpb24ifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RGVidWdYIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rpc3BsYXlEZWJ1Z1lfSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGlzcGxheURlYnVn
WSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9TZW5kU3lzdGVtQnV0
dG9uVG9BbGxBcHBzX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAic2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwcyJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJsb2dsZXZlbCJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfU3RlYW1WUl9JUERfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiaXBkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3Bj
aF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogImJhY2tncm91bmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uX0Jvb2wiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZFVzZURvbWVQ
cm9qZWN0aW9uIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0JhY2tn
cm91bmRDYW1lcmFIZWlnaHRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiYmFja2dyb3VuZENhbWVyYUhlaWdodCJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9tZVJhZGl1c19GbG9hdCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJiYWNrZ3JvdW5kRG9tZVJh
ZGl1cyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9HcmlkQ29sb3Jf
U3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImdy
aWRDb2xvciJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9QbGF5QXJl
YUNvbG9yX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJwbGF5QXJlYUNvbG9yIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVh
bVZSX1Nob3dTdGFnZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNv
bnN0dmFsIjogInNob3dTdGFnZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNo
YXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImFjdGl2YXRlTXVsdGlwbGVEcml2ZXJzIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVfQm9vbCIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXJlY3RNb2RlIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0lu
dDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRpcmVj
dE1vZGVFZGlkVmlkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0Rp
cmVjdE1vZGVFZGlkUGlkX0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImRpcmVjdE1vZGVFZGlkUGlkIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9TdGVhbVZSX1VzaW5nU3BlYWtlcnNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBj
aGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ1c2luZ1NwZWFrZXJzIn0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NwZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNf
RmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3Bl
YWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImJhc2VzdGF0aW9uUG93ZXJNYW5h
Z2VtZW50In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX05ldmVyS2ls
bFByb2Nlc3Nlc19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIm5ldmVyS2lsbFByb2Nlc3NlcyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRNdWx0aXBsaWVyX0Zsb2F0IiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlclRhcmdldE11bHRpcGxpZXIifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfQWxsb3dBc3luY1JlcHJvamVj
dGlvbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
ImFsbG93QXN5bmNSZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNo
X1N0ZWFtVlJfQWxsb3dSZXByb2plY3Rpb25fQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJhbGxvd0ludGVybGVhdmVkUmVwcm9qZWN0aW9uIn0KKyx7
CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZm9yY2VS
ZXByb2plY3Rpb24ifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRm9y
Y2VGYWRlT25CYWRUcmFja2luZ19Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogImZvcmNlRmFkZU9uQmFkVHJhY2tpbmcifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRGVmYXVsdE1pcnJvclZpZXdfSW50MzIiLCJjb25zdHR5
cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZGVmYXVsdE1pcnJvclZpZXci
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdf
Qm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzaG93
TWlycm9yVmlldyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1WUl9NaXJy
b3JWaWV3R2VvbWV0cnlfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogIm1pcnJvclZpZXdHZW9tZXRyeSJ9CisseworICAgICAgICJjb25zdG5hbWUi
OiAia19wY2hfU3RlYW1WUl9TdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInN0YXJ0TW9uaXRvckZyb21BcHBMYXVu
Y2gifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3Np
dG9yRnJvbUFwcExhdW5jaF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2gifQorLHsKKyAgICAgICAi
Y29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfU3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jv
b2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhcnRE
YXNoYm9hcmRGcm9tQXBwTGF1bmNoIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9T
dGVhbVZSX1N0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic3RhcnRPdmVybGF5QXBwc0Zyb21EYXNo
Ym9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9t
ZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJlbmFi
bGVIb21lQXBwIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9TdGVhbVZSX1NldElu
aXRpYWxEZWZhdWx0SG9tZUFwcCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAifQorLHsKKyAgICAgICAiY29uc3Ru
YW1lIjogImtfcGNoX1N0ZWFtVlJfQ3ljbGVCYWNrZ3JvdW5kSW1hZ2VUaW1lU2VjX0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkN5Y2xlQmFja2dy
b3VuZEltYWdlVGltZVNlYyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3RlYW1W
Ul9SZXRhaWxEZW1vX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAicmV0YWlsRGVtbyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfU3Rl
YW1WUl9JcGRPZmZzZXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAi
Y29uc3R2YWwiOiAiaXBkT2Zmc2V0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9M
aWdodGhvdXNlX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiZHJpdmVyX2xpZ2h0aG91c2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtf
cGNoX0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImRpc2FibGVpbXUifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0xpZ2h0aG91c2VfVXNlRGlzYW1iaWd1YXRpb25fU3RyaW5nIiwiY29uc3R0eXBl
IjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInVzZWRpc2FtYmlndWF0aW9uIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0Rpc2FtYmlndWF0aW9u
RGVidWdfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiZGlzYW1iaWd1YXRpb25kZWJ1ZyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hf
TGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicHJpbWFyeWJhc2VzdGF0aW9uIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRiaGlzdG9yeSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImRyaXZlcl9udWxsIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmciLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2VyaWFsTnVtYmVyIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX01vZGVsTnVtYmVyX1N0cmluZyIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJtb2RlbE51bWJlciJ9Ciss
eworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9XaW5kb3dYX0ludDMyIiwiY29uc3R0
eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRvd1gifQorLHsKKyAg
ICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfV2luZG93WV9JbnQzMiIsImNvbnN0dHlwZSI6
ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dZIn0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyIiwiY29uc3R0eXBlIjog
ImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndpbmRvd1dpZHRoIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9OdWxsX1dpbmRvd0hlaWdodF9JbnQzMiIsImNvbnN0dHlw
ZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJ3aW5kb3dIZWlnaHQifQorLHsK
KyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIiLCJjb25z
dHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicmVuZGVyV2lkdGgifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMyIiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInJlbmRlckhlaWdo
dCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfTnVsbF9TZWNvbmRzRnJvbVZzeW5j
VG9QaG90b25zX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogInNlY29uZHNGcm9tVnN5bmNUb1Bob3RvbnMifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCIsImNvbnN0dHlwZSI6ICJjb25z
dCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJkaXNwbGF5RnJlcXVlbmN5In0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24iLCJjb25zdHR5cGUi
OiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAidXNlcmludGVyZmFjZSJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TdGF0dXNBbHdheXNPblRv
cF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIlN0
YXR1c0Fsd2F5c09uVG9wIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Vc2VySW50
ZXJmYWNlX01pbmltaXplVG9UcmF5X0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAiTWluaW1pemVUb1RyYXkifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJzY3JlZW5zaG90cyJ9CisseworICAgICAg
ICJjb25zdG5hbWUiOiAia19wY2hfVXNlckludGVyZmFjZV9TY3JlZW5zaG90VHlwZV9JbnQiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAic2NyZWVuc2hvdFR5
cGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlv
biIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJub3RpZmlj
YXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Ob3RpZmljYXRpb25zX0Rv
Tm90RGlzdHVyYl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0
dmFsIjogIkRvTm90RGlzdHVyYiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5
Ym9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZh
bCI6ICJrZXlib2FyZCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
VHV0b3JpYWxDb21wbGV0aW9ucyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJj
b25zdHZhbCI6ICJUdXRvcmlhbENvbXBsZXRpb25zIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6
ICJrX3BjaF9LZXlib2FyZF9TY2FsZVgiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3Qi
LCAiY29uc3R2YWwiOiAiU2NhbGVYIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9L
ZXlib2FyZF9TY2FsZVkiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAiU2NhbGVZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9P
ZmZzZXRMZWZ0WCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJPZmZzZXRMZWZ0WCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9hcmRf
T2Zmc2V0UmlnaHRYIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIk9mZnNldFJpZ2h0WCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfS2V5Ym9h
cmRfT2Zmc2V0WSIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJPZmZzZXRZIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9LZXlib2FyZF9TbW9v
dGhpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiU21v
b3RoaW5nIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX1NlY3Rpb24iLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAicGVyZmNoZWNrIn0K
Kyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9QZXJmX0hldXJpc3RpY0FjdGl2ZV9Cb29s
IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImhldXJpc3Rp
Y0FjdGl2ZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9Ob3RpZnlJbkhN
RF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIndh
cm5JbkhNRCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9Ob3RpZnlPbmx5
T25jZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
Indhcm5Pbmx5T25jZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfUGVyZl9BbGxv
d1RpbWluZ1N0b3JlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiYWxsb3dUaW1pbmdTdG9yZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfUGVyZl9TYXZlVGltaW5nc09uRXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogInNhdmVUaW1pbmdzT25FeGl0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0
IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInBlcmZUZXN0RGF0YSJ9CisseworICAgICAgICJj
b25zdG5hbWUiOiAia19wY2hfQ29sbGlzaW9uQm91bmRzX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAi
Y29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiY29sbGlzaW9uQm91bmRzIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfU3R5bGVfSW50MzIiLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91
bmRzU3R5bGUifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIn0KKyx7Cisg
ICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ2VudGVyTWFya2VyT25f
Qm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJDb2xs
aXNpb25Cb3VuZHNDZW50ZXJNYXJrZXJPbiJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfQ29sbGlzaW9uQm91bmRzX1BsYXlTcGFjZU9uX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzUGxheVNwYWNlT24ifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFu
Y2VfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAi
Q29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJr
X3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYVIi
fQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdh
bW1hR19JbnQzMiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6
ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hRyJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
a19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMyIiwiY29uc3R0eXBlIjogImNv
bnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFC
In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjog
ImtfcGNoX0NhbWVyYV9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImNhbWVyYSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2Ft
ZXJhX0VuYWJsZUNhbWVyYV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0Iiwg
ImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19w
Y2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUluRGFzaGJvYXJkX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29u
c3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiZW5hYmxlQ2FtZXJhSW5EYXNoYm9hcmQifQor
LHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JDb2xs
aXNpb25Cb3VuZHNfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMifQorLHsKKyAgICAgICAiY29u
c3RuYW1lIjogImtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sIiwiY29u
c3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZUNhbWVyYUZv
clJvb21WaWV3In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9DYW1lcmFfQm91bmRz
Q29sb3JHYW1tYVJfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29u
c3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYVIifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiIsImNvbnN0dHlwZSI6ICJj
b25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNDb2xvckdhbW1hRyJ9
CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFC
X0ludDMyIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogImNh
bWVyYUJvdW5kc0NvbG9yR2FtbWFCIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9D
YW1lcmFfQm91bmRzQ29sb3JHYW1tYUFfSW50MzIiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAq
Y29uc3QiLCAiY29uc3R2YWwiOiAiY2FtZXJhQm91bmRzQ29sb3JHYW1tYUEifQorLHsKKyAgICAg
ICAiY29uc3RuYW1lIjogImtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9JbnQzMiIsImNvbnN0
dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJjYW1lcmFCb3VuZHNTdHJl
bmd0aCJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fU2VjdGlvbiIsImNv
bnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25zdHZhbCI6ICJhdWRpbyJ9Cissewor
ICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25QbGF5YmFja0RldmljZV9TdHJpbmci
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib25QbGF5YmFj
a0RldmljZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAia19wY2hfYXVkaW9fT25SZWNvcmRE
ZXZpY2VfU3RyaW5nIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFs
IjogIm9uUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRp
b19PblBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFy
ICpjb25zdCIsICJjb25zdHZhbCI6ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIn0KKyx7CisgICAg
ICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRpb19PZmZQbGF5YmFja0RldmljZV9TdHJpbmciLCJj
b25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAib2ZmUGxheWJhY2tE
ZXZpY2UifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX2F1ZGlvX09mZlJlY29yZERl
dmljZV9TdHJpbmciLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwi
OiAib2ZmUmVjb3JkRGV2aWNlIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9hdWRp
b19WSVZFSERNSUdhaW4iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2
YWwiOiAidml2ZUhETUlHYWluIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dl
cl9TZWN0aW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InBvd2VyIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9Qb3dlck9mZk9u
RXhpdF9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjog
InBvd2VyT2ZmT25FeGl0In0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9U
dXJuT2ZmU2NyZWVuc1RpbWVvdXRfRmxvYXQiLCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29u
c3QiLCAiY29uc3R2YWwiOiAidHVybk9mZlNjcmVlbnNUaW1lb3V0In0KKyx7CisgICAgICAgImNv
bnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9UdXJuT2ZmQ29udHJvbGxlcnNUaW1lb3V0X0Zsb2F0Iiwi
Y29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0IiwgImNvbnN0dmFsIjogInR1cm5PZmZDb250
cm9sbGVyc1RpbWVvdXQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX1Bvd2VyX1Jl
dHVyblRvV2F0Y2hkb2dUaW1lb3V0X0Zsb2F0IiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNv
bnN0IiwgImNvbnN0dmFsIjogInJldHVyblRvV2F0Y2hkb2dUaW1lb3V0In0KKyx7CisgICAgICAg
ImNvbnN0bmFtZSI6ICJrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3Mi
LCJjb25zdHR5cGUiOiAiY29uc3QgY2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXV0b0xhdW5j
aFN0ZWFtVlJPbkJ1dHRvblByZXNzIn0KKyx7CisgICAgICAgImNvbnN0bmFtZSI6ICJrX3BjaF9E
YXNoYm9hcmRfU2VjdGlvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIsICJjb25z
dHZhbCI6ICJkYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1lIjogImtfcGNoX0Rhc2hi
b2FyZF9FbmFibGVEYXNoYm9hcmRfQm9vbCIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25z
dCIsICJjb25zdHZhbCI6ICJlbmFibGVEYXNoYm9hcmQifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogImtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jvb2wiLCJjb25zdHR5cGUiOiAiY29uc3Qg
Y2hhciAqY29uc3QiLCAiY29uc3R2YWwiOiAiYXJjYWRlTW9kZSJ9CisseworICAgICAgICJjb25z
dG5hbWUiOiAia19wY2hfbW9kZWxza2luX1NlY3Rpb24iLCJjb25zdHR5cGUiOiAiY29uc3QgY2hh
ciAqY29uc3QiLCAiY29uc3R2YWwiOiAibW9kZWxza2lucyJ9CisseworICAgICAgICJjb25zdG5h
bWUiOiAia19wY2hfRHJpdmVyX0VuYWJsZV9Cb29sIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIg
KmNvbnN0IiwgImNvbnN0dmFsIjogImVuYWJsZSJ9CisseworICAgICAgICJjb25zdG5hbWUiOiAi
SVZSU2NyZWVuc2hvdHNfVmVyc2lvbiIsImNvbnN0dHlwZSI6ICJjb25zdCBjaGFyICpjb25zdCIs
ICJjb25zdHZhbCI6ICJJVlJTY3JlZW5zaG90c18wMDEifQorLHsKKyAgICAgICAiY29uc3RuYW1l
IjogIklWUlJlc291cmNlc19WZXJzaW9uIiwiY29uc3R0eXBlIjogImNvbnN0IGNoYXIgKmNvbnN0
IiwgImNvbnN0dmFsIjogIklWUlJlc291cmNlc18wMDEifQorXSwKKyJzdHJ1Y3RzIjpbeyJzdHJ1
Y3QiOiAidnI6OkhtZE1hdHJpeDM0X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQgWzNdWzRdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRNYXRy
aXg0NF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm0iLCAiZmllbGR0eXBlIjogImZs
b2F0IFs0XVs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9yM190IiwiZmllbGRzIjog
WworeyAiZmllbGRuYW1lIjogInYiLCAiZmllbGR0eXBlIjogImZsb2F0IFszXSJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6SG1kVmVjdG9yNF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInYi
LCAiZmllbGR0eXBlIjogImZsb2F0IFs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SG1kVmVjdG9y
M2RfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2IiwgImZpZWxkdHlwZSI6ICJkb3Vi
bGUgWzNdIn1dfQorLHsic3RydWN0IjogInZyOjpIbWRWZWN0b3IyX3QiLCJmaWVsZHMiOiBbCit7
ICJmaWVsZG5hbWUiOiAidiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn1dfQorLHsic3RydWN0
IjogInZyOjpIbWRRdWF0ZXJuaW9uX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidyIs
ICJmaWVsZHR5cGUiOiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUi
OiAiZG91YmxlIn0sCit7ICJmaWVsZG5hbWUiOiAieSIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn0s
Cit7ICJmaWVsZG5hbWUiOiAieiIsICJmaWVsZHR5cGUiOiAiZG91YmxlIn1dfQorLHsic3RydWN0
IjogInZyOjpIbWRDb2xvcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInIiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZyIsICJmaWVsZHR5cGUiOiAiZmxv
YXQifSwKK3sgImZpZWxkbmFtZSI6ICJiIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmll
bGRuYW1lIjogImEiLCAiZmllbGR0eXBlIjogImZsb2F0In1dfQorLHsic3RydWN0IjogInZyOjpI
bWRRdWFkX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAidkNvcm5lcnMiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190IFs0XSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6
SG1kUmVjdDJfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2VG9wTGVmdCIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpIbWRWZWN0b3IyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2Qm90
dG9tUmlnaHQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In1dfQorLHsi
c3RydWN0IjogInZyOjpEaXN0b3J0aW9uQ29vcmRpbmF0ZXNfdCIsImZpZWxkcyI6IFsKK3sgImZp
ZWxkbmFtZSI6ICJyZlJlZCIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn0sCit7ICJmaWVsZG5h
bWUiOiAicmZHcmVlbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQgWzJdIn0sCit7ICJmaWVsZG5hbWUi
OiAicmZCbHVlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCBbMl0ifV19CisseyJzdHJ1Y3QiOiAidnI6
OlRleHR1cmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUiLCAiZmllbGR0
eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogImVUeXBlIiwgImZpZWxkdHlwZSI6ICJl
bnVtIHZyOjpFVGV4dHVyZVR5cGUifSwKK3sgImZpZWxkbmFtZSI6ICJlQ29sb3JTcGFjZSIsICJm
aWVsZHR5cGUiOiAiZW51bSB2cjo6RUNvbG9yU3BhY2UifV19CisseyJzdHJ1Y3QiOiAidnI6OlRy
YWNrZWREZXZpY2VQb3NlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibURldmljZVRv
QWJzb2x1dGVUcmFja2luZyIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90
In0sCit7ICJmaWVsZG5hbWUiOiAidlZlbG9jaXR5IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZBbmd1bGFyVmVsb2NpdHkiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAiZVRy
YWNraW5nUmVzdWx0IiwgImZpZWxkdHlwZSI6ICJlbnVtIHZyOjpFVHJhY2tpbmdSZXN1bHQifSwK
K3sgImZpZWxkbmFtZSI6ICJiUG9zZUlzVmFsaWQiLCAiZmllbGR0eXBlIjogIl9Cb29sIn0sCit7
ICJmaWVsZG5hbWUiOiAiYkRldmljZUlzQ29ubmVjdGVkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9
XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJUZXh0dXJlQm91bmRzX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAidU1pbiIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6
ICJ2TWluIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInVNYXgiLCAi
ZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAidk1heCIsICJmaWVsZHR5cGUi
OiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSVnVsa2FuVGV4dHVyZURhdGFfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX25JbWFnZSIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BEZXZpY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBW
a0RldmljZV9UICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BQaHlzaWNhbERldmljZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIn0sCit7ICJmaWVsZG5hbWUiOiAi
bV9wSW5zdGFuY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBWa0luc3RhbmNlX1QgKiJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fcFF1ZXVlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgVmtRdWV1ZV9UICoi
fSwKK3sgImZpZWxkbmFtZSI6ICJtX25RdWV1ZUZhbWlseUluZGV4IiwgImZpZWxkdHlwZSI6ICJ1
aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwgImZpZWxkdHlwZSI6ICJ1aW50
MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbkhlaWdodCIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25Gb3JtYXQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In0sCit7ICJmaWVsZG5hbWUiOiAibV9uU2FtcGxlQ291bnQiLCAiZmllbGR0eXBlIjogInVpbnQz
Ml90In1dfQorLHsic3RydWN0IjogInZyOjpEM0QxMlRleHR1cmVEYXRhX3QiLCJmaWVsZHMiOiBb
Cit7ICJmaWVsZG5hbWUiOiAibV9wUmVzb3VyY2UiLCAiZmllbGR0eXBlIjogInN0cnVjdCBJRDNE
MTJSZXNvdXJjZSAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wQ29tbWFuZFF1ZXVlIiwgImZpZWxk
dHlwZSI6ICJzdHJ1Y3QgSUQzRDEyQ29tbWFuZFF1ZXVlICoifSwKK3sgImZpZWxkbmFtZSI6ICJt
X25Ob2RlTWFzayIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6
OlZSRXZlbnRfQ29udHJvbGxlcl90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJ1dHRv
biIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRf
TW91c2VfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ4IiwgImZpZWxkdHlwZSI6ICJm
bG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInkiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAiYnV0dG9uIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVj
dCI6ICJ2cjo6VlJFdmVudF9TY3JvbGxfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ4
ZGVsdGEiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAieWRlbHRhIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInJlcGVhdENvdW50IiwgImZp
ZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Ub3VjaFBh
ZE1vdmVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiRmluZ2VyRG93biIsICJmaWVs
ZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJmbFNlY29uZHNGaW5nZXJEb3duIiwg
ImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogImZWYWx1ZVhGaXJzdCIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZRmlyc3QiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZlZhbHVlWFJhdyIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJmVmFsdWVZUmF3IiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Ob3RpZmljYXRpb25fdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1bFVzZXJWYWx1ZSIsICJmaWVsZHR5cGUiOiAidWlu
dDY0X3QifSwKK3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb25JZCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfUHJvY2Vzc190IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogInBpZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sg
ImZpZWxkbmFtZSI6ICJvbGRQaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVs
ZG5hbWUiOiAiYkZvcmNlZCIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifV19CisseyJzdHJ1Y3QiOiAi
dnI6OlZSRXZlbnRfT3ZlcmxheV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm92ZXJs
YXlIYW5kbGUiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90In1dfQorLHsic3RydWN0IjogInZyOjpW
UkV2ZW50X1N0YXR1c190IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInN0YXR1c1N0YXRl
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9L
ZXlib2FyZF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNOZXdJbnB1dCIsICJmaWVs
ZHR5cGUiOiAiY2hhciBbOF0ifSwKK3sgImZpZWxkbmFtZSI6ICJ1VXNlclZhbHVlIiwgImZpZWxk
dHlwZSI6ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9JcGRfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJpcGRNZXRlcnMiLCAiZmllbGR0eXBlIjogImZsb2F0
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0NoYXBlcm9uZV90IiwiZmllbGRzIjogWwor
eyAiZmllbGRuYW1lIjogIm1fblByZXZpb3VzVW5pdmVyc2UiLCAiZmllbGR0eXBlIjogInVpbnQ2
NF90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQ3VycmVudFVuaXZlcnNlIiwgImZpZWxkdHlwZSI6
ICJ1aW50NjRfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9SZXNlcnZlZF90IiwiZmll
bGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2VydmVkMCIsICJmaWVsZHR5cGUiOiAidWludDY0
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJyZXNlcnZlZDEiLCAiZmllbGR0eXBlIjogInVpbnQ2NF90
In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogIm1fbkZpZGVsaXR5TGV2ZWwiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRf
dCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJiUmVzZXRCeVN5c3RlbU1lbnUiLCAiZmll
bGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X1NjcmVlbnNob3Rf
dCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJoYW5kbGUiLCAiZmllbGR0eXBlIjogInVp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAidHlwZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fV19CisseyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3QiLCJmaWVs
ZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicHJvZ3Jlc3MiLCAiZmllbGR0eXBlIjogImZsb2F0In1d
fQorLHsic3RydWN0IjogInZyOjpWUkV2ZW50X0FwcGxpY2F0aW9uTGF1bmNoX3QiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAicGlkIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAi
ZmllbGRuYW1lIjogInVuQXJnc0hhbmRsZSIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OlZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2VfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJvdmVybGF5SGFuZGxlIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm5WaXN1YWxNb2RlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9NZXNzYWdlT3ZlcmxheV90IiwiZmllbGRz
IjogWworeyAiZmllbGRuYW1lIjogInVuVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIiwgImZpZWxk
dHlwZSI6ICJ1aW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJFdmVudF9Qcm9wZXJ0eV90
IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImNvbnRhaW5lciIsICJmaWVsZHR5cGUiOiAi
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCJ9LAoreyAiZmllbGRuYW1lIjogInByb3AiLCAiZmll
bGR0eXBlIjogImVudW0gdnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifV19CisseyJzdHJ1Y3Qi
OiAidnI6Oihhbm9ueW1vdXMpIiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInJlc2VydmVk
IiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfUmVzZXJ2ZWRfdCJ9LAoreyAiZmll
bGRuYW1lIjogImNvbnRyb2xsZXIiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9D
b250cm9sbGVyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtb3VzZSIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpWUkV2ZW50X01vdXNlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJzY3JvbGwiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JvbGxfdCJ9LAoreyAiZmllbGRuYW1lIjog
InByb2Nlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9jZXNzX3QifSwK
K3sgImZpZWxkbmFtZSI6ICJub3RpZmljYXRpb24iLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
VlJFdmVudF9Ob3RpZmljYXRpb25fdCJ9LAoreyAiZmllbGRuYW1lIjogIm92ZXJsYXkiLCAiZmll
bGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9PdmVybGF5X3QifSwKK3sgImZpZWxkbmFtZSI6
ICJzdGF0dXMiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TdGF0dXNfdCJ9LAor
eyAiZmllbGRuYW1lIjogImtleWJvYXJkIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZl
bnRfS2V5Ym9hcmRfdCJ9LAoreyAiZmllbGRuYW1lIjogImlwZCIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpWUkV2ZW50X0lwZF90In0sCit7ICJmaWVsZG5hbWUiOiAiY2hhcGVyb25lIiwgImZp
ZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQ2hhcGVyb25lX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJwZXJmb3JtYW5jZVRlc3QiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9Q
ZXJmb3JtYW5jZVRlc3RfdCJ9LAoreyAiZmllbGRuYW1lIjogInRvdWNoUGFkTW92ZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X1RvdWNoUGFkTW92ZV90In0sCit7ICJmaWVsZG5h
bWUiOiAic2VhdGVkWmVyb1Bvc2VSZXNldCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpWUkV2
ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCJ9LAoreyAiZmllbGRuYW1lIjogInNjcmVlbnNob3Qi
LCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9TY3JlZW5zaG90X3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJzY3JlZW5zaG90UHJvZ3Jlc3MiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6
VlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NfdCJ9LAoreyAiZmllbGRuYW1lIjogImFwcGxpY2F0
aW9uTGF1bmNoIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfQXBwbGljYXRpb25M
YXVuY2hfdCJ9LAoreyAiZmllbGRuYW1lIjogImNhbWVyYVN1cmZhY2UiLCAiZmllbGR0eXBlIjog
InN0cnVjdCB2cjo6VlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90In0sCit7ICJmaWVsZG5h
bWUiOiAibWVzc2FnZU92ZXJsYXkiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6VlJFdmVudF9N
ZXNzYWdlT3ZlcmxheV90In0sCit7ICJmaWVsZG5hbWUiOiAicHJvcGVydHkiLCAiZmllbGR0eXBl
IjogInN0cnVjdCB2cjo6VlJFdmVudF9Qcm9wZXJ0eV90In1dfQorLHsic3RydWN0IjogInZyOjpW
UkV2ZW50X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAiZXZlbnRUeXBlIiwgImZpZWxk
dHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogInRyYWNrZWREZXZpY2VJbmRleCIs
ICJmaWVsZHR5cGUiOiAiVHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgImZpZWxkbmFtZSI6ICJl
dmVudEFnZVNlY29uZHMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAi
ZGF0YSIsICJmaWVsZHR5cGUiOiAiVlJFdmVudF9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAidnI6
OkhpZGRlbkFyZWFNZXNoX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicFZlcnRleERh
dGEiLCAiZmllbGR0eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kVmVjdG9yMl90ICoifSwKK3sg
ImZpZWxkbmFtZSI6ICJ1blRyaWFuZ2xlQ291bnQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In1d
fQorLHsic3RydWN0IjogInZyOjpWUkNvbnRyb2xsZXJBeGlzX3QiLCJmaWVsZHMiOiBbCit7ICJm
aWVsZG5hbWUiOiAieCIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ5
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6VlJDb250cm9sbGVy
U3RhdGUwMDFfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ1blBhY2tldE51bSIsICJm
aWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ1bEJ1dHRvblByZXNzZWQi
LCAiZmllbGR0eXBlIjogInVpbnQ2NF90In0sCit7ICJmaWVsZG5hbWUiOiAidWxCdXR0b25Ub3Vj
aGVkIiwgImZpZWxkdHlwZSI6ICJ1aW50NjRfdCJ9LAoreyAiZmllbGRuYW1lIjogInJBeGlzIiwg
ImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNfdCBbNV0ifV19CisseyJz
dHJ1Y3QiOiAidnI6OkNvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzIiwiZmllbGRzIjogWworeyAi
ZmllbGRuYW1lIjogInNpemUiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5h
bWUiOiAiY3VydmVkIiwgImZpZWxkdHlwZSI6ICJfQm9vbCJ9LAoreyAiZmllbGRuYW1lIjogImFu
dGlhbGlhcyIsICJmaWVsZHR5cGUiOiAiX0Jvb2wifSwKK3sgImZpZWxkbmFtZSI6ICJzY2FsZSIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJkaXN0YW5jZSIsICJmaWVs
ZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJhbHBoYSIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJ1T2Zmc2V0IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9
LAoreyAiZmllbGRuYW1lIjogInZPZmZzZXQiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAidVNjYWxlIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1l
IjogInZTY2FsZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJncmlk
RGl2cyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJncmlkV2lkdGgi
LCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAiZ3JpZFNjYWxlIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogInRyYW5zZm9ybSIsICJmaWVsZHR5
cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXg0NF90In1dfQorLHsic3RydWN0IjogInZyOjpDYW1l
cmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVyX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAi
ZUZyYW1lVHlwZSIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVZSVHJhY2tlZENhbWVyYUZyYW1l
VHlwZSJ9LAoreyAiZmllbGRuYW1lIjogIm5XaWR0aCIsICJmaWVsZHR5cGUiOiAidWludDMyX3Qi
fSwKK3sgImZpZWxkbmFtZSI6ICJuSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogIm5CeXRlc1BlclBpeGVsIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogIm5GcmFtZVNlcXVlbmNlIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogInN0YW5kaW5nVHJhY2tlZERldmljZVBvc2UiLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2
cjo6QXBwT3ZlcnJpZGVLZXlzX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAicGNoS2V5
IiwgImZpZWxkdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgImZpZWxkbmFtZSI6ICJwY2hWYWx1
ZSIsICJmaWVsZHR5cGUiOiAiY29uc3QgY2hhciAqIn1dfQorLHsic3RydWN0IjogInZyOjpDb21w
b3NpdG9yX0ZyYW1lVGltaW5nIiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fblNpemUi
LCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uRnJhbWVJbmRl
eCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFt
ZVByZXNlbnRzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1f
bk51bU1pc1ByZXNlbnRlZCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fblJlcHJvamVjdGlvbkZsYWdzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJf
dCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxTeXN0ZW1UaW1lSW5TZWNvbmRzIiwgImZpZWxkdHlw
ZSI6ICJkb3VibGUifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJlU3VibWl0R3B1TXMiLCAiZmll
bGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFBvc3RTdWJtaXRHcHVNcyIs
ICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsVG90YWxSZW5kZXJH
cHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9z
aXRvclJlbmRlckdwdU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjog
Im1fZmxDb21wb3NpdG9yUmVuZGVyQ3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJm
aWVsZG5hbWUiOiAibV9mbENvbXBvc2l0b3JJZGxlQ3B1TXMiLCAiZmllbGR0eXBlIjogImZsb2F0
In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbENsaWVudEZyYW1lSW50ZXJ2YWxNcyIsICJmaWVsZHR5
cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsUHJlc2VudENhbGxDcHVNcyIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2FpdEZvclByZXNlbnRD
cHVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsU3VibWl0
RnJhbWVNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsV2Fp
dEdldFBvc2VzQ2FsbGVkTXMiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUi
OiAibV9mbE5ld1Bvc2VzUmVhZHlNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxk
bmFtZSI6ICJtX2ZsTmV3RnJhbWVSZWFkeU1zIiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAi
ZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yVXBkYXRlU3RhcnRNcyIsICJmaWVsZHR5cGUiOiAi
ZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsQ29tcG9zaXRvclVwZGF0ZUVuZE1zIiwgImZp
ZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDb21wb3NpdG9yUmVuZGVy
U3RhcnRNcyIsICJmaWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX0htZFBv
c2UiLCAiZmllbGR0eXBlIjogInZyOjpUcmFja2VkRGV2aWNlUG9zZV90In1dfQorLHsic3RydWN0
IjogInZyOjpDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyIsImZpZWxkcyI6IFsKK3sgImZpZWxk
bmFtZSI6ICJtX25QaWQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUi
OiAibV9uTnVtRnJhbWVQcmVzZW50cyIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZp
ZWxkbmFtZSI6ICJtX25OdW1Ecm9wcGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9
LAoreyAiZmllbGRuYW1lIjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHNPblN0YXJ0
dXAiLCAiZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJv
cHBlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxk
bmFtZSI6ICJtX25OdW1SZXByb2plY3RlZEZyYW1lc09uU3RhcnR1cCIsICJmaWVsZHR5cGUiOiAi
dWludDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1Mb2FkaW5nIiwgImZpZWxkdHlwZSI6
ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bUZyYW1lUHJlc2VudHNMb2FkaW5n
IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fbk51bURyb3Bw
ZWRGcmFtZXNMb2FkaW5nIiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1l
IjogIm1fbk51bVJlcHJvamVjdGVkRnJhbWVzTG9hZGluZyIsICJmaWVsZHR5cGUiOiAidWludDMy
X3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1UaW1lZE91dCIsICJmaWVsZHR5cGUiOiAidWlu
dDMyX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX25OdW1GcmFtZVByZXNlbnRzVGltZWRPdXQiLCAi
ZmllbGR0eXBlIjogInVpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uTnVtRHJvcHBlZEZy
YW1lc1RpbWVkT3V0IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAiZmllbGRuYW1lIjog
Im1fbk51bVJlcHJvamVjdGVkRnJhbWVzVGltZWRPdXQiLCAiZmllbGR0eXBlIjogInVpbnQzMl90
In1dfQorLHsic3RydWN0IjogInZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNfdCIsImZp
ZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJ2U291cmNlIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3Qg
dnI6OkhtZFZlY3RvcjNfdCJ9LAoreyAiZmllbGRuYW1lIjogInZEaXJlY3Rpb24iLCAiZmllbGR0
eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAiZU9yaWdp
biIsICJmaWVsZHR5cGUiOiAiZW51bSB2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifV19Ciss
eyJzdHJ1Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJ2UG9pbnQiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1k
VmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAidk5vcm1hbCIsICJmaWVsZHR5cGUiOiAic3Ry
dWN0IHZyOjpIbWRWZWN0b3IzX3QifSwKK3sgImZpZWxkbmFtZSI6ICJ2VVZzIiwgImZpZWxkdHlw
ZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjJfdCJ9LAoreyAiZmllbGRuYW1lIjogImZEaXN0YW5j
ZSIsICJmaWVsZHR5cGUiOiAiZmxvYXQifV19CisseyJzdHJ1Y3QiOiAidnI6OkludGVyc2VjdGlv
bk1hc2tSZWN0YW5nbGVfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX2ZsVG9wTGVm
dFgiLCAiZmllbGR0eXBlIjogImZsb2F0In0sCit7ICJmaWVsZG5hbWUiOiAibV9mbFRvcExlZnRZ
IiwgImZpZWxkdHlwZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxXaWR0aCIsICJm
aWVsZHR5cGUiOiAiZmxvYXQifSwKK3sgImZpZWxkbmFtZSI6ICJtX2ZsSGVpZ2h0IiwgImZpZWxk
dHlwZSI6ICJmbG9hdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6SW50ZXJzZWN0aW9uTWFza0NpcmNs
ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogIm1fZmxDZW50ZXJYIiwgImZpZWxkdHlw
ZSI6ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxDZW50ZXJZIiwgImZpZWxkdHlwZSI6
ICJmbG9hdCJ9LAoreyAiZmllbGRuYW1lIjogIm1fZmxSYWRpdXMiLCAiZmllbGR0eXBlIjogImZs
b2F0In1dfQorLHsic3RydWN0IjogInZyOjooYW5vbnltb3VzKSIsImZpZWxkcyI6IFsKK3sgImZp
ZWxkbmFtZSI6ICJtX1JlY3RhbmdsZSIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpJbnRlcnNl
Y3Rpb25NYXNrUmVjdGFuZ2xlX3QifSwKK3sgImZpZWxkbmFtZSI6ICJtX0NpcmNsZSIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QifV19CisseyJzdHJ1
Y3QiOiAidnI6OlZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfdCIsImZpZWxkcyI6
IFsKK3sgImZpZWxkbmFtZSI6ICJtX25QcmltaXRpdmVUeXBlIiwgImZpZWxkdHlwZSI6ICJlbnVt
IHZyOjpFVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZVR5cGUifSwKK3sgImZpZWxk
bmFtZSI6ICJtX1ByaW1pdGl2ZSIsICJmaWVsZHR5cGUiOiAiVlJPdmVybGF5SW50ZXJzZWN0aW9u
TWFza1ByaW1pdGl2ZV9EYXRhX3QifV19CisseyJzdHJ1Y3QiOiAidnI6OlJlbmRlck1vZGVsX0Nv
bXBvbmVudFN0YXRlX3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5nVG9D
b21wb25lbnRSZW5kZXJNb2RlbCIsICJmaWVsZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgz
NF90In0sCit7ICJmaWVsZG5hbWUiOiAibVRyYWNraW5nVG9Db21wb25lbnRMb2NhbCIsICJmaWVs
ZHR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90In0sCit7ICJmaWVsZG5hbWUiOiAidVBy
b3BlcnRpZXMiLCAiZmllbGR0eXBlIjogIlZSQ29tcG9uZW50UHJvcGVydGllcyJ9XX0KKyx7InN0
cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QiLCJmaWVsZHMiOiBbCit7ICJmaWVsZG5h
bWUiOiAidlBvc2l0aW9uIiwgImZpZWxkdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFZlY3RvcjNfdCJ9
LAoreyAiZmllbGRuYW1lIjogInZOb3JtYWwiLCAiZmllbGR0eXBlIjogInN0cnVjdCB2cjo6SG1k
VmVjdG9yM190In0sCit7ICJmaWVsZG5hbWUiOiAicmZUZXh0dXJlQ29vcmQiLCAiZmllbGR0eXBl
IjogImZsb2F0IFsyXSJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfVGV4dHVyZU1h
cF90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogInVuV2lkdGgiLCAiZmllbGR0eXBlIjog
InVpbnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAidW5IZWlnaHQiLCAiZmllbGR0eXBlIjogInVp
bnQxNl90In0sCit7ICJmaWVsZG5hbWUiOiAicnViVGV4dHVyZU1hcERhdGEiLCAiZmllbGR0eXBl
IjogImNvbnN0IHVpbnQ4X3QgKiJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6UmVuZGVyTW9kZWxfdCIs
ImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJyVmVydGV4RGF0YSIsICJmaWVsZHR5cGUiOiAi
Y29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9WZXJ0ZXhfdCAqIn0sCit7ICJmaWVsZG5hbWUi
OiAidW5WZXJ0ZXhDb3VudCIsICJmaWVsZHR5cGUiOiAidWludDMyX3QifSwKK3sgImZpZWxkbmFt
ZSI6ICJySW5kZXhEYXRhIiwgImZpZWxkdHlwZSI6ICJjb25zdCB1aW50MTZfdCAqIn0sCit7ICJm
aWVsZG5hbWUiOiAidW5UcmlhbmdsZUNvdW50IiwgImZpZWxkdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAiZmllbGRuYW1lIjogImRpZmZ1c2VUZXh0dXJlSWQiLCAiZmllbGR0eXBlIjogIlRleHR1cmVJ
RF90In1dfQorLHsic3RydWN0IjogInZyOjpSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0
ZV90IiwiZmllbGRzIjogWworeyAiZmllbGRuYW1lIjogImJTY3JvbGxXaGVlbFZpc2libGUiLCAi
ZmllbGR0eXBlIjogIl9Cb29sIn1dfQorLHsic3RydWN0IjogInZyOjpOb3RpZmljYXRpb25CaXRt
YXBfdCIsImZpZWxkcyI6IFsKK3sgImZpZWxkbmFtZSI6ICJtX3BJbWFnZURhdGEiLCAiZmllbGR0
eXBlIjogInZvaWQgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fbldpZHRoIiwgImZpZWxkdHlwZSI6
ICJpbnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uSGVpZ2h0IiwgImZpZWxkdHlwZSI6ICJp
bnQzMl90In0sCit7ICJmaWVsZG5hbWUiOiAibV9uQnl0ZXNQZXJQaXhlbCIsICJmaWVsZHR5cGUi
OiAiaW50MzJfdCJ9XX0KKyx7InN0cnVjdCI6ICJ2cjo6Q09wZW5WUkNvbnRleHQiLCJmaWVsZHMi
OiBbCit7ICJmaWVsZG5hbWUiOiAibV9wVlJTeXN0ZW0iLCAiZmllbGR0eXBlIjogImNsYXNzIHZy
OjpJVlJTeXN0ZW0gKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ2hhcGVyb25lIiwgImZpZWxk
dHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25lICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BW
UkNoYXBlcm9uZVNldHVwIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSQ2hhcGVyb25lU2V0
dXAgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSQ29tcG9zaXRvciIsICJmaWVsZHR5cGUiOiAi
Y2xhc3MgdnI6OklWUkNvbXBvc2l0b3IgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZST3Zlcmxh
eSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUk92ZXJsYXkgKiJ9LAoreyAiZmllbGRuYW1l
IjogIm1fcFZSUmVzb3VyY2VzIiwgImZpZWxkdHlwZSI6ICJjbGFzcyB2cjo6SVZSUmVzb3VyY2Vz
ICoifSwKK3sgImZpZWxkbmFtZSI6ICJtX3BWUlJlbmRlck1vZGVscyIsICJmaWVsZHR5cGUiOiAi
Y2xhc3MgdnI6OklWUlJlbmRlck1vZGVscyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJFeHRl
bmRlZERpc3BsYXkiLCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJFeHRlbmRlZERpc3BsYXkg
KiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2V0dGluZ3MiLCAiZmllbGR0eXBlIjogImNsYXNz
IHZyOjpJVlJTZXR0aW5ncyAqIn0sCit7ICJmaWVsZG5hbWUiOiAibV9wVlJBcHBsaWNhdGlvbnMi
LCAiZmllbGR0eXBlIjogImNsYXNzIHZyOjpJVlJBcHBsaWNhdGlvbnMgKiJ9LAoreyAiZmllbGRu
YW1lIjogIm1fcFZSVHJhY2tlZENhbWVyYSIsICJmaWVsZHR5cGUiOiAiY2xhc3MgdnI6OklWUlRy
YWNrZWRDYW1lcmEgKiJ9LAoreyAiZmllbGRuYW1lIjogIm1fcFZSU2NyZWVuc2hvdHMiLCAiZmll
bGR0eXBlIjogImNsYXNzIHZyOjpJVlJTY3JlZW5zaG90cyAqIn1dfQorXSwKKyJtZXRob2RzIjpb
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UmVjb21tZW5kZWRSZW5kZXJUYXJnZXRTaXplIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
bldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicG5IZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0UHJvamVjdGlvbk1hdHJpeCIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXg0NF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAiZk5lYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogImZGYXJaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7Cisg
ICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRQcm9qZWN0aW9uUmF3IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6
ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZMZWZ0IiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZSaWdodCIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBmVG9wIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZCb3R0b20iICwicGFyYW10
eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0ZURpc3RvcnRpb24i
LAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJmVSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmViIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwRGlzdG9ydGlvbkNvb3JkaW5hdGVzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6
OkRpc3RvcnRpb25Db29yZGluYXRlc190ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RXll
VG9IZWFkVHJhbnNmb3JtIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1h
dHJpeDM0X3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVF
eWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
VGltZVNpbmNlTGFzdFZzeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZlNlY29uZHNTaW5jZUxhc3RW
c3luYyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInB1
bEZyYW1lQ291bnRlciIgLCJwYXJhbXR5cGUiOiAidWludDY0X3QgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXREM0Q5QWRhcHRlckluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJpbnQz
Ml90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldERYR0lPdXRwdXRJbmZvIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFk
YXB0ZXJJbmRleCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1l
IjogIklzRGlzcGxheU9uRGVza3RvcCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIKK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJTZXREaXNwbGF5VmlzaWJpbGl0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9v
bCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiYklzVmlzaWJs
ZU9uRGVza3RvcCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXREZXZpY2VUb0Fic29sdXRlVHJhY2tpbmdQb3NlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3JpZ2lu
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4ifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmUHJlZGljdGVkU2Vjb25kc1RvUGhvdG9uc0Zyb21Ob3ciICwicGFyYW10
eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYWNrZWREZXZpY2VQb3Nl
QXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQiICwi
cGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidW5UcmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlc2V0U2VhdGVkWmVyb1Bvc2Ui
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U2VhdGVkWmVyb1Bv
c2VUb1N0YW5kaW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjog
InN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSYXdaZXJvUG9zZVRvU3Rh
bmRpbmdBYnNvbHV0ZVRyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
eXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRp
Y2VzT2ZDbGFzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVUcmFja2VkRGV2aWNlQ2xhc3MiICwi
cGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZUNsYXNzIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicHVuVHJhY2tlZERldmljZUluZGV4QXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5UcmFj
a2VkRGV2aWNlSW5kZXhBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmlj
ZUluZGV4X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuVHJhY2tlZERldmljZUluZGV4
QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1blJlbGF0aXZlVG9UcmFja2VkRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpU
cmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2
aWNlQWN0aXZpdHlMZXZlbCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVEZXZpY2VBY3Rp
dml0eUxldmVsIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bkRldmljZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiQXBwbHlUcmFuc2Zvcm0iLAorICAgICAgICJyZXR1cm50eXBlIjog
InZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdXRw
dXRQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUi
OiAiY29uc3Qgc3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwVHJhbnNmb3JtIiAsInBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6Okht
ZE1hdHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRUcmFja2VkRGV2aWNlSW5k
ZXhGb3JDb250cm9sbGVyUm9sZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJ1bkRldmljZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZENvbnRyb2xsZXJSb2xl
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0i
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbnRyb2xsZXJSb2xlRm9yVHJhY2tlZERldmlj
ZUluZGV4IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVRyYWNrZWRDb250cm9sbGVyUm9s
ZSIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldFRyYWNrZWREZXZpY2VDbGFzcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVUcmFja2VkRGV2aWNlQ2xhc3MiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2Vk
RGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc1RyYWNrZWREZXZpY2VDb25u
ZWN0ZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZy
OjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCb29sVHJh
Y2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwcm9wIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2Vk
UHJvcGVydHlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEZsb2F0VHJhY2tlZERl
dmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9hdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5
cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3Bl
cnR5RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRJbnQzMlRyYWNrZWREZXZpY2VQ
cm9wZXJ0eSIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHJv
cCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVydHkifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5
RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
U3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRVaW50NjRUcmFja2VkRGV2aWNlUHJv
cGVydHkiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQ2NF90IiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6
ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwcm9w
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkUHJvcGVydHlF
cnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJT
eXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE1hdHJpeDM0VHJhY2tlZERldmljZVBy
b3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1hdHJpeDM0X3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVuRGV2aWNlSW5k
ZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInByb3AiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZERldmljZVByb3Bl
cnR5In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6
RVRyYWNrZWRQcm9wZXJ0eUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RyaW5n
VHJhY2tlZERldmljZVByb3BlcnR5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5EZXZpY2VJbmRl
eCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicHJvcCIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2VkRGV2aWNlUHJvcGVy
dHkifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVy
U2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
RXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0iLAorICAgICAgICJyZXR1
cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tlZFByb3BlcnR5RXJy
b3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlN5c3Rl
bSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9sbE5leHRFdmVudCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSRXZlbnRfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0RXZlbnRXaXRoUG9zZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAiZU9yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEV2ZW50IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3Qg
dnI6OlZSRXZlbnRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5jYlZSRXZlbnQiICwi
cGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRyYWNrZWRE
ZXZpY2VQb3NlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldEV2ZW50VHlwZU5hbWVGcm9tRW51bSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJlVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV2ZW50VHlwZSJ9Cisg
ICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJHZXRIaWRkZW5BcmVhTWVzaCIsCisgICAgICAgInJldHVybnR5
cGUiOiAic3RydWN0IHZyOjpIaWRkZW5BcmVhTWVzaF90IiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVIaWRkZW5B
cmVhTWVzaFR5cGUifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlclN0YXRlIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicENvbnRy
b2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZSQ29udHJvbGxlclN0YXRlX3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlclN0YXRlU2l6ZSIgLCJwYXJhbXR5cGUi
OiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29udHJvbGxlclN0YXRlV2l0
aFBvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxl
ckRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29udHJvbGxlclN0YXRlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJDb250cm9sbGVyU3RhdGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db250
cm9sbGVyU3RhdGVTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBUcmFja2VkRGV2aWNlUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpU
cmFja2VkRGV2aWNlUG9zZV90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlN5c3RlbSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiVHJpZ2dlckhhcHRp
Y1B1bHNlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbnRyb2xsZXJEZXZpY2VJbmRleCIgLCJwYXJh
bXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5BeGlzSWQiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidXNEdXJhdGlvbk1pY3JvU2VjIiAsInBhcmFtdHlwZSI6ICJ1bnNpZ25lZCBzaG9ydCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRCdXR0b25JZE5hbWVGcm9tRW51bSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiY29uc3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJlQnV0dG9uSWQiICwicGFyYW10eXBlIjogInZyOjpFVlJCdXR0b25J
ZCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb250cm9sbGVyQXhpc1R5cGVOYW1lRnJvbUVu
dW0iLAorICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUF4aXNUeXBlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSQ29udHJvbGxlckF4aXNUeXBlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIkNhcHR1cmVJ
bnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVh
c2VJbnB1dEZvY3VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1lIjogIklz
SW5wdXRGb2N1c0NhcHR1cmVkQnlBbm90aGVyUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAiYm9vbCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVtIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJEcml2ZXJEZWJ1Z1JlcXVlc3QiLAorICAgICAgICJyZXR1cm50
eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXF1ZXN0IiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNwb25zZUJ1ZmZlciIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZXNwb25z
ZUJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTeXN0ZW0iLAorICAgICAgICJtZXRob2RuYW1l
IjogIlBlcmZvcm1GaXJtd2FyZVVwZGF0ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkZpcm13YXJlRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU3lzdGVt
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1aXRfRXhpdGluZyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSU3lzdGVtIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJBY2tub3dsZWRnZVF1aXRfVXNlclBy
b21wdCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSRXh0ZW5kZWREaXNwbGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRXaW5kb3dCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuWCIgLCJwYXJhbXR5cGUiOiAiaW50
MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5ZIiAsInBhcmFtdHlwZSI6ICJpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBl
IjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RXllT3V0
cHV0Vmlld3BvcnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVFeWUiICwicGFyYW10eXBlIjogInZyOjpF
VlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblgiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwblkiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBl
IjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkV4dGVuZGVkRGlzcGxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RFhHSU91
dHB1dEluZm8iLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBuQWRhcHRlckluZGV4IiAsInBhcmFtdHlwZSI6
ICJpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkFkYXB0ZXJPdXRwdXRJbmRl
eCIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRDYW1lcmFFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29u
c3QgY2hhciAqIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
Q2FtZXJhRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1l
cmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkhhc0NhbWVyYSIsCisgICAgICAgInJldHVybnR5
cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGFzQ2FtZXJhIiAs
InBhcmFtdHlwZSI6ICJib29sICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENh
bWVyYUZyYW1lU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1l
cmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkRl
dmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJlRnJhbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBuV2lkdGgiICwi
cGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkhlaWdo
dCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBu
RnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRDYW1lcmFJbnRyaW5zaWNzIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFj
a2VkRGV2aWNlSW5kZXhfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwi
cGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicEZvY2FsTGVuZ3RoIiAsInBhcmFtdHlwZSI6ICJ2cjo6SG1kVmVjdG9yMl90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ2VudGVyIiAsInBhcmFtdHlwZSI6ICJ2cjo6
SG1kVmVjdG9yMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENhbWVyYVBy
b2plY3Rpb24iLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJy
b3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogIm5EZXZpY2VJ
bmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlRyYWNrZWRD
YW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFpOZWFyIiAsInBhcmFt
dHlwZSI6ICJmbG9hdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZsWkZhciIgLCJwYXJhbXR5
cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwUHJvamVjdGlvbiIgLCJwYXJh
bXR5cGUiOiAidnI6OkhtZE1hdHJpeDQ0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSVHJhY2tlZENhbWVyYSIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiQWNxdWlyZVZpZGVvU3RyZWFtaW5nU2VydmljZSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAibkRldmljZUluZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERl
dmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGFuZGxlIiAsInBhcmFtdHlw
ZSI6ICJ2cjo6VHJhY2tlZENhbWVyYUhhbmRsZV90ICoifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbWluZ1NlcnZpY2UiLAorICAgICAgICJyZXR1cm50eXBl
IjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImhUcmFja2VkQ2FtZXJhIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJh
Y2tlZENhbWVyYUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJUcmFja2VkQ2FtZXJhIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRWaWRl
b1N0cmVhbUZyYW1lQnVmZmVyIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tl
ZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZy
OjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEZy
YW1lQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJuRnJhbWVCdWZmZXJTaXplIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUiOiAidnI6OkNhbWVyYVZpZGVv
U3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAibkZyYW1lSGVh
ZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZVNpemUiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJUcmFja2VkQ2FtZXJhRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogIm5EZXZpY2VJbmRleCIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRE
ZXZpY2VJbmRleF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUZyYW1lVHlwZSIgLCJwYXJh
bXR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwVGV4dHVyZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAidnI6OlZSVGV4dHVyZUJvdW5k
c190ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbldpZHRoIiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG5IZWlnaHQiICwicGFyYW10eXBl
IjogInVpbnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlRyYWNrZWRDYW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3Ry
ZWFtVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENh
bWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJo
VHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogImVGcmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpF
VlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDEx
RGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJwYXJhbXR5cGUiOiAidm9pZCAq
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJhbXR5cGUiOiAi
dnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRDYW1lcmEiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZSVHJhY2tlZENhbWVyYUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJoVHJhY2tlZENhbWVyYSIgLCJwYXJhbXR5cGUi
OiAidnI6OlRyYWNrZWRDYW1lcmFIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImVG
cmFtZVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicGdsVGV4dHVyZUlkIiAsInBhcmFtdHlwZSI6ICJ2cjo6
Z2xVSW50X3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBGcmFtZUhlYWRlciIgLCJwYXJh
bXR5cGUiOiAidnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAibkZyYW1lSGVhZGVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlRyYWNrZWRD
YW1lcmEiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VWaWRlb1N0cmVhbVRleHR1cmVH
TCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlRyYWNrZWRDYW1lcmFFcnJvciIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiaFRyYWNrZWRDYW1lcmEi
ICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJnbFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkFkZEFwcGxpY2F0aW9uTWFuaWZlc3QiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBsaWNhdGlvbk1hbmlmZXN0RnVsbFBh
dGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImJUZW1wb3JhcnkiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiUmVtb3ZlQXBwbGljYXRpb25NYW5pZmVzdCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaEFwcGxpY2F0aW9uTWFuaWZlc3RGdWxsUGF0aCIgLCJwYXJhbXR5cGUi
OiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIklzQXBwbGljYXRp
b25JbnN0YWxsZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9u
Q291bnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAi
Y2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldEFwcGxpY2F0aW9uS2V5QnlJbmRleCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInVuQXBwbGljYXRpb25JbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAs
InBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1
ZmZlckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAg
ICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiR2V0QXBwbGljYXRpb25LZXlCeVByb2Nlc3NJZCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lkIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleUJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hh
ciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcHBLZXlCdWZmZXJMZW4iICwicGFyYW10
eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxhdW5jaEFwcGxp
Y2F0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAs
InBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
TGF1bmNoVGVtcGxhdGVBcHBsaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
UkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBjaFRlbXBsYXRlQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hOZXdBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBLZXlzIiAsImFycmF5X2NvdW50Ijog
InVuS2V5cyIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpBcHBPdmVycmlkZUtleXNf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5LZXlzIiAsInBhcmFtdHlwZSI6ICJ1aW50
MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBw
bGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMYXVuY2hBcHBsaWNhdGlvbkZyb21N
aW1lVHlwZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBl
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hBcmdzIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMi
LAorICAgICAgICJtZXRob2RuYW1lIjogIkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJJZGVudGlmeUFwcGxpY2F0aW9uIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Qcm9jZXNzSWQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6ICJj
b25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Q
cm9jZXNzSWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlv
bnNFcnJvck5hbWVGcm9tRW51bSIsCisgICAgICAgInJldHVybnR5cGUiOiAiY29uc3QgY2hhciAq
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlcnJvciIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IifQorICAgICAgICBdCit9Cissewor
ICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVN0cmluZyIsCisgICAgICAgInJldHVybnR5
cGUiOiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBjaEFwcEtleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiZVByb3BlcnR5IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25Q
cm9wZXJ0eSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFByb3BlcnR5VmFsdWVCdWZmZXIi
ICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJ1blByb3BlcnR5VmFsdWVCdWZmZXJMZW4iICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6
OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRB
cHBsaWNhdGlvblByb3BlcnR5Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBh
cmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlUHJvcGVy
dHkiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9u
RXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
QXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvblByb3Bl
cnR5VWludDY0IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlUHJvcGVydHkiICwicGFy
YW10eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvblByb3BlcnR5In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRBcHBsaWNhdGlvbkF1dG9MYXVuY2giLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJBdXRvTGF1bmNoIiAs
InBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxp
Y2F0aW9uQXV0b0xhdW5jaCIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5IiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUi
OiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0RGVmYXVs
dEFwcGxpY2F0aW9uRm9yTWltZVR5cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJB
cHBsaWNhdGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9u
cyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5
cGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBjaE1pbWVUeXBlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hBcHBLZXlCdWZmZXIiICwicGFyYW10
eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQXBwS2V5QnVmZmVyTGVu
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRBcHBsaWNhdGlvblN1cHBvcnRlZE1pbWVUeXBlcyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
Ym9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBw
S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hNaW1lVHlwZXNCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInVuTWltZVR5cGVzQnVmZmVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRp
b25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUaGF0U3VwcG9ydE1p
bWVUeXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoTWltZVR5cGUiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFwcEtleXNUaGF0U3Vw
cG9ydEJ1ZmZlciIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidW5BcHBLZXlzVGhhdFN1cHBvcnRCdWZmZXIiICwicGFyYW10eXBlIjogInVpbnQzMl90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlv
bnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEFwcGxpY2F0aW9uTGF1bmNoQXJndW1lbnRz
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5IYW5kbGUiICwicGFyYW10eXBlIjogInVpbnQzMl90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXJncyIgLCJwYXJhbXR5cGUiOiAiY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5BcmdzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGlj
YXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTdGFydGluZ0FwcGxpY2F0aW9uIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBwbGljYXRpb25FcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQXBwS2V5QnVmZmVyIiAsInBh
cmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkFwcEtleUJ1ZmZl
ckxlbiIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUi
OiAiR2V0VHJhbnNpdGlvblN0YXRlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGUiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6
OklWUkFwcGxpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUGVyZm9ybUFwcGxpY2F0
aW9uUHJlbGF1bmNoQ2hlY2siLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJBcHBsaWNh
dGlvbkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hBcHBLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRBcHBsaWNhdGlvbnNUcmFuc2l0aW9uU3RhdGVOYW1lRnJvbUVudW0iLAor
ICAgICAgICJyZXR1cm50eXBlIjogImNvbnN0IGNoYXIgKiIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAic3RhdGUiICwicGFyYW10eXBlIjogInZyOjpFVlJBcHBs
aWNhdGlvblRyYW5zaXRpb25TdGF0ZSJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQXBwbGljYXRpb25zIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc1F1
aXRVc2VyUHJvbXB0UmVxdWVzdGVkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkxhdW5jaEludGVybmFsUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUi
OiAidnI6OkVWUkFwcGxpY2F0aW9uRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBjaEJpbmFyeVBhdGgiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEFyZ3VtZW50cyIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoV29ya2luZ0RpcmVjdG9y
eSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJBcHBsaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1l
IjogIkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q2FsaWJyYXRpb25TdGF0ZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OkNoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUiCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
UGxheUFyZWFTaXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVgiICwicGFyYW10eXBlIjogImZs
b2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwU2l6ZVoiICwicGFyYW10eXBlIjogImZs
b2F0ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNo
YXBlcm9uZSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UGxheUFyZWFSZWN0IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJyZWN0IiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUi
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbG9hZEluZm8iLAorICAgICAgICJyZXR1cm50eXBl
IjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0U2NlbmVDb2xvciIsCisgICAgICAgInJldHVybnR5
cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
Y29sb3IiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJHZXRCb3VuZHNDb2xvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dENv
bG9yQXJyYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAibk51bU91dHB1dENvbG9ycyIgLCJwYXJhbXR5cGUiOiAiaW50In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAiZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UiICwi
cGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE91dHB1dENhbWVy
YUNvbG9yIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZENvbG9yX3QgKiJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJBcmVCb3VuZHNWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmUiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkZvcmNlQm91bmRzVmlzaWJsZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAiYkZvcmNlIiAsInBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiQ29tbWl0V29ya2luZ0NvcHkiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImNvbmZpZ0ZpbGUiICwi
cGFyYW10eXBlIjogInZyOjpFQ2hhcGVyb25lQ29uZmlnRmlsZSJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIlJldmVydFdvcmtpbmdDb3B5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhU2l6ZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicFNpemVYIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicFNpemVaIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1BsYXlBcmVhUmVjdCIsCisgICAgICAgInJldHVybnR5
cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwib3V0X2FycmF5X2NvdW50IjogInB1blF1YWRzQ291
bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kUXVhZF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwdW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVTZXR1
cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZUNvbGxpc2lvbkJvdW5kc0luZm8iLAor
ICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAicHVuUXVh
ZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9u
ZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFNlYXRlZFplcm9Qb3NlVG9S
YXdUcmFja2luZ1Bvc2UiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJv
bmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFN0YW5kaW5nWmVyb1Bv
c2VUb1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgz
NF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNo
YXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGxheUFyZWFT
aXplIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJzaXplWCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJzaXplWiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFF1YWRzQnVmZmVyIiAsImFycmF5X2NvdW50IjogInVuUXVhZHNDb3Vu
dCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuUXVhZHNDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nU2VhdGVkWmVyb1Bvc2VUb1Jhd1RyYWNr
aW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6
IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2lu
Z1Bvc2UiICwicGFyYW10eXBlIjogImNvbnN0IHN0cnVjdCB2cjo6SG1kTWF0cml4MzRfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDaGFwZXJvbmVT
ZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0V29ya2luZ1N0YW5kaW5nWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE1hdFN0YW5kaW5nWmVyb1Bvc2VU
b1Jhd1RyYWNraW5nUG9zZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRy
aXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UkNoYXBlcm9uZVNldHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJSZWxvYWRGcm9tRGlzayIs
CisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAiY29uZmlnRmlsZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVDaGFwZXJv
bmVDb25maWdGaWxlIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJDaGFwZXJvbmVTZXR1cCIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGl2ZVNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBtYXRTZWF0ZWRa
ZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZE1h
dHJpeDM0X3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSQ2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFdvcmtpbmdDb2xs
aXNpb25Cb3VuZHNUYWdzSW5mbyIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFRhZ3NCdWZmZXIiICwiYXJy
YXlfY291bnQiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0sCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAidW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNl
dHVwIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRMaXZlQ29sbGlzaW9uQm91bmRzVGFnc0lu
Zm8iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInBUYWdzQnVmZmVyIiAsIm91dF9hcnJheV9jb3VudCI6ICJw
dW5UYWdDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicHVuVGFnQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRXb3JraW5nUGh5c2ljYWxCb3VuZHNJbmZvIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwUXVhZHNCdWZmZXIiICwiYXJyYXlfY291bnQiOiAidW5RdWFkc0NvdW50IiAs
InBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkhtZFF1YWRfdCAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5RdWFkc0NvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ2hhcGVyb25lU2V0dXAiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8iLAorICAgICAgICJy
ZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogInBRdWFkc0J1ZmZlciIgLCJvdXRfYXJyYXlfY291bnQiOiAicHVuUXVhZHNDb3VudCIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRRdWFkX3QgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInB1blF1YWRzQ291bnQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNoYXBlcm9uZVNldHVwIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJFeHBvcnRMaXZlVG9CdWZmZXIiLAorICAgICAgICJyZXR1
cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInBCdWZmZXIiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwbkJ1ZmZlckxlbmd0aCIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Q2hhcGVyb25lU2V0dXAiLAorICAgICAgICJtZXRob2RuYW1lIjogIkltcG9ydEZyb21CdWZmZXJU
b1dvcmtpbmciLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBCdWZmZXIiICwicGFyYW10eXBlIjogImNvbnN0
IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5JbXBvcnRGbGFncyIgLCJwYXJhbXR5
cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFRyYWNraW5nU3Bh
Y2UiLAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogImVPcmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tp
bmdVbml2ZXJzZU9yaWdpbiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhY2tpbmdT
cGFjZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJXYWl0R2V0UG9zZXMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJDb21wb3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBSZW5kZXJQb3NlQXJyYXkiICwiYXJyYXlfY291bnQiOiAidW5SZW5kZXJQb3Nl
QXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlclBvc2VBcnJheUNvdW50IiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBHYW1lUG9zZUFy
cmF5IiAsImFycmF5X2NvdW50IjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6
ICJzdHJ1Y3QgdnI6OlRyYWNrZWREZXZpY2VQb3NlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuR2FtZVBvc2VBcnJheUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0TGFzdFBvc2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwUmVuZGVyUG9zZUFycmF5IiAsImFycmF5X2NvdW50IjogInVuUmVuZGVy
UG9zZUFycmF5Q291bnQiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBv
c2VfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5SZW5kZXJQb3NlQXJyYXlDb3VudCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwR2FtZVBv
c2VBcnJheSIgLCJhcnJheV9jb3VudCI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5
cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNlUG9zZV90ICoifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bkdhbWVQb3NlQXJyYXlDb3VudCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3Ii
LAorICAgICAgICJtZXRob2RuYW1lIjogIkdldExhc3RQb3NlRm9yVHJhY2tlZERldmljZUluZGV4
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRldmljZUluZGV4IiAsInBh
cmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwT3V0cHV0UG9zZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpUcmFja2VkRGV2aWNl
UG9zZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0cHV0R2FtZVBvc2UiICwicGFy
YW10eXBlIjogInN0cnVjdCB2cjo6VHJhY2tlZERldmljZVBvc2VfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTdWJtaXQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21w
b3NpdG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
ImVFeWUiICwicGFyYW10eXBlIjogInZyOjpFVlJFeWUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwVGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBCb3VuZHMiICwicGFyYW10eXBlIjogImNvbnN0IHN0
cnVjdCB2cjo6VlJUZXh0dXJlQm91bmRzX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm5T
dWJtaXRGbGFncyIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlN1Ym1pdEZsYWdzIn0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJDbGVhckxhc3RTdWJtaXR0ZWRGcmFtZSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUG9zdFByZXNlbnRIYW5kb2ZmIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRGcmFtZVRpbWluZyIsCisg
ICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicFRpbWluZyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpDb21wb3Np
dG9yX0ZyYW1lVGltaW5nICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkZyYW1lc0FnbyIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldEZy
YW1lVGltaW5ncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBUaW1pbmciICwicGFyYW10eXBlIjog
InN0cnVjdCB2cjo6Q29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAibkZyYW1lcyIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkdldEZyYW1lVGltZVJlbWFpbmluZyIsCisgICAgICAgInJldHVybnR5cGUiOiAi
ZmxvYXQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldEN1bXVsYXRpdmVTdGF0cyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicFN0YXRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OkNvbXBvc2l0b3JfQ3VtdWxhdGl2
ZVN0YXRzICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJuU3RhdHNTaXplSW5CeXRlcyIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkZhZGVUb0Nv
bG9yIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25kcyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJmUmVkIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImZHcmVlbiIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJmQmx1ZSIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldEN1cnJlbnRGYWRlQ29sb3IiLAorICAgICAgICJyZXR1cm50eXBl
IjogInN0cnVjdCB2cjo6SG1kQ29sb3JfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiYkJhY2tncm91bmQiICwicGFyYW10eXBlIjogImJvb2wifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkZhZGVHcmlkIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lk
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmU2Vjb25kcyIg
LCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRmFkZUluIiAs
InBhcmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50
R3JpZEFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJmbG9hdCIKK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
U2V0U2t5Ym94T3ZlcnJpZGUiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJDb21wb3Np
dG9yRXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBU
ZXh0dXJlcyIgLCJhcnJheV9jb3VudCI6ICJ1blRleHR1cmVDb3VudCIgLCJwYXJhbXR5cGUiOiAi
Y29uc3Qgc3RydWN0IHZyOjpUZXh0dXJlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
VGV4dHVyZUNvdW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiQ2xlYXJTa3lib3hPdmVycmlkZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9p
ZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckJyaW5nVG9Gcm9udCIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9z
aXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcG9zaXRvckdvVG9CYWNrIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDb21wb3NpdG9yUXVpdCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidm9pZCIKK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSXNGdWxsc2NyZWVuIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDdXJyZW50U2Nl
bmVGb2N1c1Byb2Nlc3MiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9k
bmFtZSI6ICJHZXRMYXN0RnJhbWVSZW5kZXJlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkNhblJlbmRlclNjZW5lIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTaG93TWlycm9yV2luZG93IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21w
b3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlTWlycm9yV2luZG93IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc01pcnJvcldpbmRvd1Zpc2li
bGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkNvbXBvc2l0
b3JEdW1wSW1hZ2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTaG91bGRBcHBSZW5kZXJXaXRoTG93UmVzb3VyY2VzIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9yIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJGb3JjZUludGVybGVhdmVkUmVwcm9qZWN0aW9uT24iLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImJPdmVycmlkZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiRm9yY2VSZWNvbm5lY3RQcm9jZXNzIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2b2lkIgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3Np
dG9yIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTdXNwZW5kUmVuZGVyaW5nIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJiU3VzcGVuZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiR2V0TWlycm9yVGV4dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZSQ29tcG9zaXRvckVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlRXllIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSRXllIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicEQzRDExRGV2aWNlT3JSZXNvdXJjZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHBEM0QxMVNoYWRlclJlc291cmNlVmlldyIgLCJw
YXJhbXR5cGUiOiAidm9pZCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsZWFzZU1p
cnJvclRleHR1cmVEM0QxMSIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEQzRDExU2hhZGVyUmVzb3VyY2VW
aWV3IiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJj
bGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdl
dE1pcnJvclRleHR1cmVHTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUkNvbXBvc2l0
b3JFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUV5
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUkV5ZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBn
bFRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAidnI6OmdsVUludF90ICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwZ2xTaGFyZWRUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6Z2xT
aGFyZWRUZXh0dXJlSGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiUmVsZWFz
ZVNoYXJlZEdMVGV4dHVyZSIsCisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZ2xUZXh0dXJlSWQiICwicGFyYW10
eXBlIjogInZyOjpnbFVJbnRfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImdsU2hhcmVkVGV4
dHVyZUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OmdsU2hhcmVkVGV4dHVyZUhhbmRsZV90In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJDb21wb3NpdG9y
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRleHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRvciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiVW5s
b2NrR0xTaGFyZWRUZXh0dXJlRm9yQWNjZXNzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lk
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJnbFNoYXJlZFRl
eHR1cmVIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpnbFNoYXJlZFRleHR1cmVIYW5kbGVfdCJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSQ29tcG9zaXRv
ciIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VnVsa2FuSW5zdGFuY2VFeHRlbnNpb25zUmVx
dWlyZWQiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWYWx1ZSIgLCJvdXRfc3RyaW5nIjogIiAi
ICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVy
U2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUkNvbXBvc2l0b3IiLAorICAgICAgICJtZXRob2RuYW1lIjog
IkdldFZ1bGthbkRldmljZUV4dGVuc2lvbnNSZXF1aXJlZCIsCisgICAgICAgInJldHVybnR5cGUi
OiAidWludDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjog
InBQaHlzaWNhbERldmljZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IFZrUGh5c2ljYWxEZXZpY2Vf
VCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIg
IiAsInBhcmFtdHlwZSI6ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZl
clNpemUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJG
aW5kT3ZlcmxheSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIs
CisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoT3ZlcmxheUtl
eSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5RnJpZW5kbHlOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90ICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkRlc3Ryb3lPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6
RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0SGlnaFF1YWxpdHlPdmVybGF5IiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjog
InZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0SGlnaFF1
YWxpdHlPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlLZXkiLAorICAgICAgICJyZXR1cm50eXBlIjogInVp
bnQzMl90IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5
cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5CdWZmZXJTaXplIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFcnJvciIgLCJw
YXJhbXR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRPdmVybGF5TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkJ1ZmZlclNpemUiICwicGFyYW10eXBlIjogInVp
bnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVycm9yIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlJ
bWFnZURhdGEiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAor
ICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRs
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHZCdWZmZXIiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuQnVmZmVyU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJwdW5XaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInB1bkhlaWdodCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3Qg
KiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUVycm9yTmFtZUZyb21FbnVtIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZST3Zl
cmxheUVycm9yIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5UmVuZGVyaW5nUGlk
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuUElEIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
R2V0T3ZlcmxheVJlbmRlcmluZ1BpZCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3Qi
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhh
bmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5RmxhZyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlT3ZlcmxheUZsYWciICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlGbGFncyJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImJFbmFibGVkIiAsInBh
cmFtdHlwZSI6ICJib29sIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5RmxhZyIs
CisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJl
T3ZlcmxheUZsYWciICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlGbGFncyJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBiRW5hYmxlZCIgLCJwYXJhbXR5cGUiOiAiYm9vbCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5Q29sb3IiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZlJlZCIgLCJwYXJhbXR5cGUiOiAiZmxv
YXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmR3JlZW4iICwicGFyYW10eXBlIjogImZsb2F0
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkJsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5Q29sb3IiLAorICAgICAgICJyZXR1cm50
eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zl
cmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZSZWQiICwicGFyYW10eXBl
IjogImZsb2F0ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZkdyZWVuIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZCbHVlIiAsInBhcmFtdHlw
ZSI6ICJmbG9hdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5QWxwaGEiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZkFs
cGhhIiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3Zl
cmxheUFscGhhIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5k
bGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBmQWxwaGEiICwicGFyYW10eXBlIjogImZsb2F0ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUZXhlbEFzcGVjdCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFu
ZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmVGV4ZWxBc3BlY3QiICwicGFyYW10eXBl
IjogImZsb2F0In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VGV4ZWxBc3BlY3Qi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cGZUZXhlbEFzcGVjdCIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheVNvcnRPcmRlciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blNvcnRPcmRlciIgLCJwYXJhbXR5cGUiOiAidWlu
dDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlTb3J0T3JkZXIiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuU29y
dE9yZGVyIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAg
ICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTZXRPdmVybGF5V2lkdGhJbk1ldGVycyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmV2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAi
ZmxvYXQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92
ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlXaWR0aEluTWV0ZXJzIiwK
KyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10
eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBm
V2lkdGhJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQgKiJ9CisgICAgICAgIF0KK30KKyx7
CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5h
bWUiOiAiU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycyIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmTWluRGlzdGFu
Y2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJmTWF4RGlzdGFuY2VJbk1ldGVycyIgLCJwYXJhbXR5cGUiOiAiZmxvYXQifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdlSW5NZXRlcnMiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGZN
aW5EaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGZNYXhEaXN0YW5jZUluTWV0ZXJzIiAsInBhcmFtdHlwZSI6ICJmbG9hdCAq
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5
IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5
cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZVRl
eHR1cmVDb2xvclNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQ29sb3JTcGFjZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRleHR1cmVDb2xv
clNwYWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9CisgICAgICAgIF0KK30K
Kyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0T3ZlcmxheVRleHR1cmVCb3VuZHMiLAorICAgICAgICJyZXR1cm50eXBlIjog
InZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhh
bmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE92ZXJsYXlUZXh0dXJlQm91bmRzIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlQm91bmRzIiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBPdmVybGF5VGV4dHVy
ZUJvdW5kcyIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUlRleHR1cmVCb3VuZHNfdCAqIn0K
KyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRPdmVybGF5VHJhbnNmb3JtVHlwZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRyYW5zZm9y
bVR5cGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlUcmFuc2Zvcm1UeXBlICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJlVHJhY2tpbmdP
cmlnaW4iICwicGFyYW10eXBlIjogInZyOjpFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZVRyYWNraW5nT3Jp
Z2luIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gKiJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogInBtYXRUcmFja2luZ09yaWdpblRvT3ZlcmxheVRyYW5zZm9ybSIg
LCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMi
OiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UcmFj
a2VkRGV2aWNlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9ybSIg
LCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAg
ICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlUmVsYXRpdmUi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJh
bXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
cHVuVHJhY2tlZERldmljZSIgLCJwYXJhbXR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRy
YW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9u
ZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjogInZyOjpUcmFja2VkRGV2aWNlSW5kZXhf
dCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBl
IjogImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheVRyYW5z
Zm9ybVRyYWNrZWREZXZpY2VDb21wb25lbnQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicHVuRGV2aWNlSW5kZXgiICwicGFyYW10eXBlIjog
InZyOjpUcmFja2VkRGV2aWNlSW5kZXhfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
Q29tcG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidW5Db21wb25lbnROYW1lU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAg
ICAgICJtZXRob2RuYW1lIjogIlNob3dPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiSGlkZU92ZXJsYXkiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZS
T3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJJc092ZXJsYXlWaXNpYmxl
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpW
Uk92ZXJsYXlIYW5kbGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6
ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0VHJhbnNmb3JtRm9y
T3ZlcmxheUNvb3JkaW5hdGVzIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3Zlcmxh
eUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY29vcmRpbmF0
ZXNJbk92ZXJsYXkiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6SG1kVmVjdG9yMl90In0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAic3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlBvbGxOZXh0T3Zl
cmxheUV2ZW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBFdmVu
dCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpWUkV2ZW50X3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInVuY2JWUkV2ZW50IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAg
IF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAg
Im1ldGhvZG5hbWUiOiAiR2V0T3ZlcmxheUlucHV0TWV0aG9kIiwKKyAgICAgICAicmV0dXJudHlw
ZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlSW5wdXRNZXRob2QiICwicGFy
YW10eXBlIjogInZyOjpWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIn0KKyAgICAgICAgXQorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJTZXRPdmVybGF5SW5wdXRNZXRob2QiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpF
VlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1l
IjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0TWV0aG9kIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SW5wdXRNZXRob2QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJs
YXlNb3VzZVNjYWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInB2ZWNNb3VzZVNjYWxlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6Okht
ZFZlY3RvcjJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZy
OjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5TW91c2VTY2Fs
ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBh
cmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwdmVjTW91c2VTY2FsZSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpIbWRWZWN0
b3IyX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
T3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rp
b24iLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFBhcmFtcyIgLCJw
YXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpWUk92ZXJsYXlJbnRlcnNlY3Rpb25QYXJhbXNf
dCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFJlc3VsdHMiICwicGFyYW10eXBlIjogInN0
cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uUmVzdWx0c190ICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRo
b2RuYW1lIjogIkhhbmRsZUNvbnRyb2xsZXJPdmVybGF5SW50ZXJhY3Rpb25Bc01vdXNlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJs
YXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuQ29udHJvbGxlckRldmljZUlu
ZGV4IiAsInBhcmFtdHlwZSI6ICJ2cjo6VHJhY2tlZERldmljZUluZGV4X3QifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJt
ZXRob2RuYW1lIjogIklzSG92ZXJUYXJnZXRPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92
ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0R2FtZXBhZEZvY3VzT3ZlcmxheSIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1l
IjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRHYW1lcGFkRm9j
dXNPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE5ld0ZvY3VzT3Zl
cmxheSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJTZXRPdmVybGF5TmVpZ2hib3IiLAorICAgICAgICJyZXR1cm50eXBlIjogInZy
OjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1u
YW1lIjogImVEaXJlY3Rpb24iICwicGFyYW10eXBlIjogInZyOjpFT3ZlcmxheURpcmVjdGlvbiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInVsRnJvbSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3Zl
cmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxUbyIgLCJwYXJhbXR5cGUi
OiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xh
c3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJNb3ZlR2Ft
ZXBhZEZvY3VzVG9OZWlnaGJvciIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJs
YXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZURp
cmVjdGlvbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVPdmVybGF5RGlyZWN0aW9uIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAidWxGcm9tIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldE92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUZXh0dXJlIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6OlRleHR1cmVfdCAqIn0KKyAgICAgICAgXQor
fQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJDbGVhck92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5k
bGVfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zl
cmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3ZlcmxheVJhdyIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6
VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdkJ1ZmZlciIgLCJw
YXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5XaWR0aCIgLCJw
YXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkhlaWdodCIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkRlcHRo
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiU2V0T3Zl
cmxheUZyb21GaWxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlI
YW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogInBjaEZpbGVQYXRoIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIkdldE92ZXJsYXlUZXh0dXJlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZyOjpWUk92
ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBOYXRpdmVUZXh0dXJlSGFu
ZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicE5h
dGl2ZVRleHR1cmVSZWYiICwicGFyYW10eXBlIjogInZvaWQgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBXaWR0aCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QgKiJ9LAoreyAgICAgICAicGFy
YW1uYW1lIjogInBIZWlnaHQiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwTmF0aXZlRm9ybWF0IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAicEFQSVR5cGUiICwicGFyYW10eXBlIjogInZyOjpFVGV4
dHVyZVR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBDb2xvclNwYWNlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RUNvbG9yU3BhY2UgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBUZXh0
dXJlQm91bmRzIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlZSVGV4dHVyZUJvdW5kc190ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbGVhc2VOYXRpdmVPdmVybGF5SGFuZGxlIiwKKyAg
ICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBl
IjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBOYXRp
dmVUZXh0dXJlSGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2b2lkICoifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldE92ZXJsYXlUZXh0dXJlU2l6ZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6
OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxl
X3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwV2lkdGgiICwicGFyYW10eXBlIjogInVpbnQz
Ml90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwSGVpZ2h0IiAsInBhcmFtdHlwZSI6ICJ1
aW50MzJfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJ
VlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJDcmVhdGVEYXNoYm9hcmRPdmVybGF5
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAi
cGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5S2V5IiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hPdmVybGF5
RnJpZW5kbHlOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJwTWFpbkhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRs
ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwVGh1bWJuYWlsSGFuZGxlIiAsInBhcmFt
dHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAg
ICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
SXNEYXNoYm9hcmRWaXNpYmxlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJib29sIgorfQorLHsK
KyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFt
ZSI6ICJJc0FjdGl2ZURhc2hib2FyZE92ZXJsYXkiLAorICAgICAgICJyZXR1cm50eXBlIjogImJv
b2wiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3Zlcmxh
eUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0KKyAgICAgICAg
XQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXREYXNoYm9hcmRPdmVybGF5U2NlbmVQcm9jZXNzIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ2cjo6RVZST3ZlcmxheUVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVuUHJvY2Vzc0lk
IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNs
YXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0RGFz
aGJvYXJkT3ZlcmxheVNjZW5lUHJvY2VzcyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVW
Uk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3Qi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwdW5Qcm9jZXNzSWQiICwicGFyYW10eXBlIjogInVp
bnQzMl90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
Uk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dEYXNoYm9hcmQiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBjaE92ZXJsYXlUb1Nob3ciICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3ZlcmxheSIs
CisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0UHJpbWFyeURhc2hib2FyZERldmljZSIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OlRyYWNrZWREZXZpY2VJbmRleF90IgorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJT
aG93S2V5Ym9hcmQiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3Ii
LAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogImVJbnB1dE1vZGUi
ICwicGFyYW10eXBlIjogInZyOjpFR2FtZXBhZFRleHRJbnB1dE1vZGUifSwKK3sgICAgICAgInBh
cmFtbmFtZSI6ICJlTGluZUlucHV0TW9kZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4
dElucHV0TGluZU1vZGUifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hEZXNjcmlwdGlvbiIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5D
aGFyTWF4IiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEV4aXN0aW5nVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAiYlVzZU1pbmltYWxNb2RlIiAsInBhcmFtdHlwZSI6ICJib29sIn0sCit7
ICAgICAgICJwYXJhbW5hbWUiOiAidVVzZXJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAidWludDY0X3Qi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dLZXlib2FyZEZvck92ZXJsYXkiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZyOjpFVlJPdmVybGF5RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBb
IAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiZUlucHV0TW9k
ZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVHYW1lcGFkVGV4dElucHV0TW9kZSJ9LAoreyAgICAgICAi
cGFyYW1uYW1lIjogImVMaW5lSW5wdXRNb2RlIiAsInBhcmFtdHlwZSI6ICJ2cjo6RUdhbWVwYWRU
ZXh0SW5wdXRMaW5lTW9kZSJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaERlc2NyaXB0aW9u
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1
bkNoYXJNYXgiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoRXhpc3RpbmdUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAg
ICAgInBhcmFtbmFtZSI6ICJiVXNlTWluaW1hbE1vZGUiICwicGFyYW10eXBlIjogImJvb2wifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJ1VXNlclZhbHVlIiAsInBhcmFtdHlwZSI6ICJ1aW50NjRf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZST3Zlcmxh
eSIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0S2V5Ym9hcmRUZXh0IiwKKyAgICAgICAicmV0
dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicGNoVGV4dCIgLCJvdXRfc3RyaW5nIjogIiAiICwicGFyYW10eXBlIjogImNoYXIg
KiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImNjaFRleHQiICwicGFyYW10eXBlIjogInVpbnQz
Ml90In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVy
bGF5IiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIaWRlS2V5Ym9hcmQiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZvaWQiCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJs
YXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUi
LAorICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVUcmFja2luZ09yaWdpbiIgLCJwYXJhbXR5cGUiOiAidnI6OkVU
cmFja2luZ1VuaXZlcnNlT3JpZ2luIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicG1hdFRyYWNr
aW5nT3JpZ2luVG9LZXlib2FyZFRyYW5zZm9ybSIgLCJwYXJhbXR5cGUiOiAiY29uc3Qgc3RydWN0
IHZyOjpIbWRNYXRyaXgzNF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldEtleWJvYXJk
UG9zaXRpb25Gb3JPdmVybGF5IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bE92ZXJsYXlIYW5kbGUiICwi
cGFyYW10eXBlIjogInZyOjpWUk92ZXJsYXlIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogImF2b2lkUmVjdCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpIbWRSZWN0Ml90In0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJPdmVybGF5IiwKKyAg
ICAgICAibWV0aG9kbmFtZSI6ICJTZXRPdmVybGF5SW50ZXJzZWN0aW9uTWFzayIsCisgICAgICAg
InJldHVybnR5cGUiOiAidnI6OkVWUk92ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2
cjo6VlJPdmVybGF5SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwTWFza1ByaW1p
dGl2ZXMiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6VlJPdmVybGF5SW50ZXJzZWN0aW9uTWFz
a1ByaW1pdGl2ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bk51bU1hc2tQcmltaXRp
dmVzIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInVu
UHJpbWl0aXZlU2l6ZSIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9Ciss
eworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXkiLAorICAgICAgICJtZXRob2Ru
YW1lIjogIkdldE92ZXJsYXlGbGFncyIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk92
ZXJsYXlFcnJvciIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAi
dWxPdmVybGF5SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6VlJPdmVybGF5SGFuZGxlX3QifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwRmxhZ3MiICwicGFyYW10eXBlIjogInVpbnQzMl90ICoi
fQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUk92ZXJsYXki
LAorICAgICAgICJtZXRob2RuYW1lIjogIlNob3dNZXNzYWdlT3ZlcmxheSIsCisgICAgICAgInJl
dHVybnR5cGUiOiAidnI6OlZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZSIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29u
c3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ2FwdGlvbiIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uMFRl
eHQiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InBjaEJ1dHRvbjFUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAg
InBhcmFtbmFtZSI6ICJwY2hCdXR0b24yVGV4dCIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQnV0dG9uM1RleHQiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkUmVuZGVyTW9k
ZWxfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9y
IiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZW5kZXJN
b2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBwUmVuZGVyTW9kZWwiICwicGFyYW10eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9k
ZWxfdCAqKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
UmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGcmVlUmVuZGVyTW9kZWwiLAor
ICAgICAgICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogInBSZW5kZXJNb2RlbCIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpS
ZW5kZXJNb2RlbF90ICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAi
dnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFRleHR1cmVf
QXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVycm9yIiwK
KyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJlSWQiICwi
cGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBw
VGV4dHVyZSIgLCJwYXJhbXR5cGUiOiAic3RydWN0IHZyOjpSZW5kZXJNb2RlbF9UZXh0dXJlTWFw
X3QgKioifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJl
bmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiRnJlZVRleHR1cmUiLAorICAgICAg
ICJyZXR1cm50eXBlIjogInZvaWQiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFy
YW1uYW1lIjogInBUZXh0dXJlIiAsInBhcmFtdHlwZSI6ICJzdHJ1Y3QgdnI6OlJlbmRlck1vZGVs
X1RleHR1cmVNYXBfdCAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkxvYWRUZXh0dXJl
RDNEMTFfQXN5bmMiLAorICAgICAgICJyZXR1cm50eXBlIjogInZyOjpFVlJSZW5kZXJNb2RlbEVy
cm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ0ZXh0dXJl
SWQiICwicGFyYW10eXBlIjogInZyOjpUZXh0dXJlSURfdCJ9LAoreyAgICAgICAicGFyYW1uYW1l
IjogInBEM0QxMURldmljZSIgLCJwYXJhbXR5cGUiOiAidm9pZCAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicHBEM0QxMVRleHR1cmUyRCIgLCJwYXJhbXR5cGUiOiAidm9pZCAqKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJMb2FkSW50b1RleHR1cmVEM0QxMV9Bc3luYyIsCisgICAg
ICAgInJldHVybnR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IiLAorICAgICAgICJwYXJh
bXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInRleHR1cmVJZCIgLCJwYXJhbXR5cGUiOiAi
dnI6OlRleHR1cmVJRF90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicERzdFRleHR1cmUiICwi
cGFyYW10eXBlIjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJGcmVlVGV4
dHVyZUQzRDExIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFyYW1z
IjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwRDNEMTFUZXh0dXJlMkQiICwicGFyYW10eXBl
IjogInZvaWQgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6
SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbE5h
bWUiLAorICAgICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IiwKKyAgICAgICAicGFyYW1zIjog
WyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blJlbmRlck1vZGVsSW5kZXgiICwicGFyYW10eXBl
IjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1l
IiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidW5SZW5kZXJNb2RlbE5hbWVMZW4iICwicGFyYW10eXBlIjogInVpbnQzMl90
In0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJN
b2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFJlbmRlck1vZGVsQ291bnQiLAorICAg
ICAgICJyZXR1cm50eXBlIjogInVpbnQzMl90IgorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjog
InZyOjpJVlJSZW5kZXJNb2RlbHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldENvbXBvbmVu
dENvdW50IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29t
cG9uZW50TmFtZSIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21w
b25lbnRJbmRleCIgLCJwYXJhbXR5cGUiOiAidWludDMyX3QifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwY2hDb21wb25lbnROYW1lIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAi
Y2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5Db21wb25lbnROYW1lTGVuIiAsInBh
cmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFt
ZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRDb21w
b25lbnRCdXR0b25NYXNrIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50NjRfdCIsCisgICAg
ICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1l
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJw
Y2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAg
ICAgIm1ldGhvZG5hbWUiOiAiR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxOYW1lIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoUmVuZGVyTW9kZWxOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnROYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hDb21wb25lbnRS
ZW5kZXJNb2RlbE5hbWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6ICJjaGFyICoi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1bkNvbXBvbmVudFJlbmRlck1vZGVsTmFtZUxlbiIg
LCJwYXJhbXR5cGUiOiAidWludDMyX3QifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFz
c25hbWUiOiAidnI6OklWUlJlbmRlck1vZGVscyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0
Q29tcG9uZW50U3RhdGUiLAorICAgICAgICJyZXR1cm50eXBlIjogImJvb2wiLAorICAgICAgICJw
YXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoQ29t
cG9uZW50TmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJh
bW5hbWUiOiAicENvbnRyb2xsZXJTdGF0ZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgdnI6OlZSQ29u
dHJvbGxlclN0YXRlX3QgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBTdGF0ZSIgLCJwYXJh
bXR5cGUiOiAiY29uc3Qgc3RydWN0IHZyOjpSZW5kZXJNb2RlbF9Db250cm9sbGVyTW9kZV9TdGF0
ZV90ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwQ29tcG9uZW50U3RhdGUiICwicGFyYW10
eXBlIjogInN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdCAqIn0KKyAgICAg
ICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJSZW5kZXJNb2RlbHMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlJlbmRlck1vZGVsSGFzQ29tcG9uZW50IiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwY2hSZW5kZXJNb2RlbE5hbWUiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaENvbXBvbmVudE5hbWUiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2
cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2Rl
bFRodW1ibmFpbFVSTCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWludDMyX3QiLAorICAgICAg
ICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJlbmRlck1vZGVsTmFtZSIg
LCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNo
VGh1bWJuYWlsVVJMIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5cGUiOiAiY2hhciAqIn0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5UaHVtYm5haWxVUkxMZW4iICwicGFyYW10eXBlIjog
InVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUi
OiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAg
ImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJHZXRSZW5kZXJNb2RlbE9yaWdpbmFsUGF0aCIsCisgICAgICAgInJldHVybnR5cGUiOiAidWlu
dDMyX3QiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFJl
bmRlck1vZGVsTmFtZSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoT3JpZ2luYWxQYXRoIiAsIm91dF9zdHJpbmciOiAiICIgLCJwYXJhbXR5
cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidW5PcmlnaW5hbFBhdGhMZW4i
ICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGVFcnJv
ciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlJlbmRlck1vZGVsRXJyb3IgKiJ9CisgICAgICAgIF0K
K30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVuZGVyTW9kZWxzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAg
ICAgICAicGFyYW1uYW1lIjogImVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSUmVuZGVyTW9k
ZWxFcnJvciJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZS
Tm90aWZpY2F0aW9ucyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiQ3JlYXRlTm90aWZpY2F0aW9u
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSTm90aWZpY2F0aW9uRXJyb3IiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInVsT3ZlcmxheUhhbmRsZSIg
LCJwYXJhbXR5cGUiOiAidnI6OlZST3ZlcmxheUhhbmRsZV90In0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAidWxVc2VyVmFsdWUiICwicGFyYW10eXBlIjogInVpbnQ2NF90In0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlvblR5cGUi
fSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hUZXh0IiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJzdHlsZSIgLCJwYXJhbXR5cGUiOiAidnI6
OkVWUk5vdGlmaWNhdGlvblN0eWxlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEltYWdlIiAs
InBhcmFtdHlwZSI6ICJjb25zdCBzdHJ1Y3QgdnI6Ok5vdGlmaWNhdGlvbkJpdG1hcF90ICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwTm90aWZpY2F0aW9uSWQiICwicGFyYW10eXBlIjogInZy
OjpWUk5vdGlmaWNhdGlvbklkICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25h
bWUiOiAidnI6OklWUk5vdGlmaWNhdGlvbnMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlJlbW92
ZU5vdGlmaWNhdGlvbiIsCisgICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUk5vdGlmaWNhdGlv
bkVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJub3Rp
ZmljYXRpb25JZCIgLCJwYXJhbXR5cGUiOiAidnI6OlZSTm90aWZpY2F0aW9uSWQifQorICAgICAg
ICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtIiwKKyAgICAgICAi
cmV0dXJudHlwZSI6ICJjb25zdCBjaGFyICoiLAorICAgICAgICJwYXJhbXMiOiBbIAoreyAgICAg
ICAicGFyYW1uYW1lIjogImVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJy
b3IifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRp
bmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJTeW5jIiwKKyAgICAgICAicmV0dXJudHlwZSI6
ICJib29sIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJiRm9y
Y2UiICwicGFyYW10eXBlIjogImJvb2wifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9y
IiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQor
LHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhv
ZG5hbWUiOiAiU2V0Qm9vbCIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisgICAgICAg
InBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5
cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NL
ZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
ImJWYWx1ZSIgLCJwYXJhbXR5cGUiOiAiYm9vbCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBl
RXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAi
bWV0aG9kbmFtZSI6ICJTZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAidm9pZCIsCisg
ICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJw
YXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0
dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogIm5WYWx1ZSIgLCJwYXJhbXR5cGUiOiAiaW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1u
YW1lIjogInBlRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQor
ICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwK
KyAgICAgICAibWV0aG9kbmFtZSI6ICJTZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5cGUiOiAi
dm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2Vj
dGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAg
ICAicGFyYW1uYW1lIjogImZsVmFsdWUiICwicGFyYW10eXBlIjogImZsb2F0In0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJy
b3IgKiJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2V0
dGluZ3MiLAorICAgICAgICJtZXRob2RuYW1lIjogIlNldFN0cmluZyIsCisgICAgICAgInJldHVy
bnR5cGUiOiAidm9pZCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJw
YXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFZhbHVlIiAsInBhcmFtdHlwZSI6ICJjb25zdCBj
aGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2
cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3Nu
YW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0Qm9vbCIs
CisgICAgICAgInJldHVybnR5cGUiOiAiYm9vbCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAg
ICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwicGFyYW10eXBlIjog
ImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10
eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJH
ZXRJbnQzMiIsCisgICAgICAgInJldHVybnR5cGUiOiAiaW50MzJfdCIsCisgICAgICAgInBhcmFt
cyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2VjdGlvbiIgLCJwYXJhbXR5cGUiOiAi
Y29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU2V0dGluZ3NLZXkiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJy
b3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9
CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0
aG9kbmFtZSI6ICJHZXRGbG9hdCIsCisgICAgICAgInJldHVybnR5cGUiOiAiZmxvYXQiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNlY3Rpb24iICwicGFy
YW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFNldHRp
bmdzS2V5IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFt
ZSI6ICJwZUVycm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAg
ICAgICAgXQorfQorLHsKKyAgICAgICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiR2V0U3RyaW5nIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2
b2lkIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0
aW9uIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hTZXR0aW5nc0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoVmFsdWUiICwib3V0X3N0cmluZyI6ICIgIiAsInBhcmFtdHlwZSI6
ICJjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJ1blZhbHVlTGVuIiAsInBhcmFtdHlw
ZSI6ICJ1aW50MzJfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBlRXJyb3IiICwicGFyYW10
eXBlIjogInZyOjpFVlJTZXR0aW5nc0Vycm9yICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlNldHRpbmdzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJS
ZW1vdmVTZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAgICAicGFy
YW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFtdHlwZSI6
ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwZUVycm9yIiAsInBhcmFt
dHlwZSI6ICJ2cjo6RVZSU2V0dGluZ3NFcnJvciAqIn0KKyAgICAgICAgXQorfQorLHsKKyAgICAg
ICAiY2xhc3NuYW1lIjogInZyOjpJVlJTZXR0aW5ncyIsCisgICAgICAgIm1ldGhvZG5hbWUiOiAi
UmVtb3ZlS2V5SW5TZWN0aW9uIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2b2lkIiwKKyAgICAg
ICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZWN0aW9uIiAsInBhcmFt
dHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hTZXR0aW5n
c0tleSIgLCJwYXJhbXR5cGUiOiAiY29uc3QgY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUi
OiAicGVFcnJvciIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNldHRpbmdzRXJyb3IgKiJ9CisgICAg
ICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAor
ICAgICAgICJtZXRob2RuYW1lIjogIlJlcXVlc3RTY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwT3V0U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIg
LCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwK
K3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25z
dCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklW
UlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJIb29rU2NyZWVuc2hvdCIsCisg
ICAgICAgInJldHVybnR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RFcnJvciIsCisgICAgICAgInBh
cmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5hbWUiOiAicFN1cHBvcnRlZFR5cGVzIiAsImFycmF5
X2NvdW50IjogIm51bVR5cGVzIiAsInBhcmFtdHlwZSI6ICJjb25zdCB2cjo6RVZSU2NyZWVuc2hv
dFR5cGUgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogIm51bVR5cGVzIiAsInBhcmFtdHlwZSI6
ICJpbnQifQorICAgICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNj
cmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRTY3JlZW5zaG90UHJvcGVydHlU
eXBlIiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdFR5cGUiLAorICAg
ICAgICJwYXJhbXMiOiBbIAoreyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUi
ICwicGFyYW10eXBlIjogInZyOjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFt
bmFtZSI6ICJwRXJyb3IiICwicGFyYW10eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IgKiJ9
CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hv
dHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIkdldFNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1l
IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsg
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAic2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAi
dnI6OlNjcmVlbnNob3RIYW5kbGVfdCJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogImZpbGVuYW1l
VHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyJ9
LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaEZpbGVuYW1lIiAsIm91dF9zdHJpbmciOiAiICIg
LCJwYXJhbXR5cGUiOiAiY2hhciAqIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAiY2NoRmlsZW5h
bWUiICwicGFyYW10eXBlIjogInVpbnQzMl90In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicEVy
cm9yIiAsInBhcmFtdHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hvdEVycm9yICoifQorICAgICAgICBd
Cit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAg
ICAibWV0aG9kbmFtZSI6ICJVcGRhdGVTY3JlZW5zaG90UHJvZ3Jlc3MiLAorICAgICAgICJyZXR1
cm50eXBlIjogInZyOjpFVlJTY3JlZW5zaG90RXJyb3IiLAorICAgICAgICJwYXJhbXMiOiBbIAor
eyAgICAgICAicGFyYW1uYW1lIjogInNjcmVlbnNob3RIYW5kbGUiICwicGFyYW10eXBlIjogInZy
OjpTY3JlZW5zaG90SGFuZGxlX3QifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJmbFByb2dyZXNz
IiAsInBhcmFtdHlwZSI6ICJmbG9hdCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNz
bmFtZSI6ICJ2cjo6SVZSU2NyZWVuc2hvdHMiLAorICAgICAgICJtZXRob2RuYW1lIjogIlRha2VT
dGVyZW9TY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVuc2hv
dEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwT3V0
U2NyZWVuc2hvdEhhbmRsZSIgLCJwYXJhbXR5cGUiOiAidnI6OlNjcmVlbnNob3RIYW5kbGVfdCAq
In0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoUHJldmlld0ZpbGVuYW1lIiAsInBhcmFtdHlw
ZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hWUkZpbGVuYW1l
IiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAgICAgICBdCit9CisseworICAgICAg
ICJjbGFzc25hbWUiOiAidnI6OklWUlNjcmVlbnNob3RzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6
ICJTdWJtaXRTY3JlZW5zaG90IiwKKyAgICAgICAicmV0dXJudHlwZSI6ICJ2cjo6RVZSU2NyZWVu
c2hvdEVycm9yIiwKKyAgICAgICAicGFyYW1zIjogWyAKK3sgICAgICAgInBhcmFtbmFtZSI6ICJz
Y3JlZW5zaG90SGFuZGxlIiAsInBhcmFtdHlwZSI6ICJ2cjo6U2NyZWVuc2hvdEhhbmRsZV90In0s
Cit7ICAgICAgICJwYXJhbW5hbWUiOiAidHlwZSIgLCJwYXJhbXR5cGUiOiAidnI6OkVWUlNjcmVl
bnNob3RUeXBlIn0sCit7ICAgICAgICJwYXJhbW5hbWUiOiAicGNoU291cmNlUHJldmlld0ZpbGVu
YW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6
ICJwY2hTb3VyY2VWUkZpbGVuYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifQorICAg
ICAgICBdCit9CisseworICAgICAgICJjbGFzc25hbWUiOiAidnI6OklWUlJlc291cmNlcyIsCisg
ICAgICAgIm1ldGhvZG5hbWUiOiAiTG9hZFNoYXJlZFJlc291cmNlIiwKKyAgICAgICAicmV0dXJu
dHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAgICJwYXJhbW5h
bWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFyICoifSwKK3sg
ICAgICAgInBhcmFtbmFtZSI6ICJwY2hCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAor
eyAgICAgICAicGFyYW1uYW1lIjogInVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJf
dCJ9CisgICAgICAgIF0KK30KKyx7CisgICAgICAgImNsYXNzbmFtZSI6ICJ2cjo6SVZSUmVzb3Vy
Y2VzIiwKKyAgICAgICAibWV0aG9kbmFtZSI6ICJHZXRSZXNvdXJjZUZ1bGxQYXRoIiwKKyAgICAg
ICAicmV0dXJudHlwZSI6ICJ1aW50MzJfdCIsCisgICAgICAgInBhcmFtcyI6IFsgCit7ICAgICAg
ICJwYXJhbW5hbWUiOiAicGNoUmVzb3VyY2VOYW1lIiAsInBhcmFtdHlwZSI6ICJjb25zdCBjaGFy
ICoifSwKK3sgICAgICAgInBhcmFtbmFtZSI6ICJwY2hSZXNvdXJjZVR5cGVEaXJlY3RvcnkiICwi
cGFyYW10eXBlIjogImNvbnN0IGNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjogInBjaFBh
dGhCdWZmZXIiICwicGFyYW10eXBlIjogImNoYXIgKiJ9LAoreyAgICAgICAicGFyYW1uYW1lIjog
InVuQnVmZmVyTGVuIiAsInBhcmFtdHlwZSI6ICJ1aW50MzJfdCJ9CisgICAgICAgIF0KK30KK10K
K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfY2FwaS5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTEwZjk1MWRjNTYzOTNkY2Fj
OWJiODBlODM0MjBiYzRhOTE1M2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL2hlYWRlcnMvb3BlbnZyX2NhcGkuaApAQCAtMCwwICsxLDE4NjkgQEAKKy8vPT09
PT09PSBDb3B5cmlnaHQgKGMpIFZhbHZlIENvcnBvcmF0aW9uLCBBbGwgcmlnaHRzIHJlc2VydmVk
LiA9PT09PT09PT09PT09PT0KKy8vCisvLyBQdXJwb3NlOiBIZWFkZXIgZm9yIGZsYXR0ZWQgU3Rl
YW1BUEkuIFVzZSB0aGlzIGZvciBiaW5kaW5nIHRvIG90aGVyIGxhbmd1YWdlcy4KKy8vIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCwgZG8gbm90IGVkaXQgaXQuCisvLworLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisjaWZuZGVmIF9fT1BFTlZSX0FQSV9GTEFUX0hfXworI2RlZmluZSBfX09Q
RU5WUl9BUElfRkxBVF9IX18KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBfX2Ns
YW5nX18gKQorI3ByYWdtYSBvbmNlCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVm
aW5lIEVYVEVSTl9DIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIEVYVEVSTl9DCisjZW5kaWYK
KworI2RlZmluZSBPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSBfX3N0ZGNhbGwKKworLy8gT1BFTlZS
IEFQSSBleHBvcnQgbWFjcm8KKyNpZiBkZWZpbmVkKCBfV0lOMzIgKSAmJiAhZGVmaW5lZCggX1gz
NjAgKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJX0VYUE9SVFMgKQorICAgICAgICNk
ZWZpbmUgU19BUEkgRVhURVJOX0MgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyAgICAgICAjZWxp
ZiBkZWZpbmVkKCBPUEVOVlJfQVBJX05PRExMICkKKyAgICAgICAjZGVmaW5lIFNfQVBJIEVYVEVS
Tl9DCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5lIFNfQVBJIGV4dGVybiAiQyIgX19kZWNs
c3BlYyggZGxsaW1wb3J0ICkgCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUwor
I2VsaWYgZGVmaW5lZCggX19HTlVDX18gKQorICAgICAgICNpZiBkZWZpbmVkKCBPUEVOVlJfQVBJ
X0VYUE9SVFMgKQorICAgICAgICNkZWZpbmUgU19BUEkgRVhURVJOX0MgX19hdHRyaWJ1dGVfXyAo
KHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgICAgI2Vsc2UKKyAgICAgICAjZGVmaW5lIFNf
QVBJIEVYVEVSTl9DCisgICAgICAgI2VuZGlmIC8vIE9QRU5WUl9BUElfRVhQT1JUUworI2Vsc2Ug
Ly8gIVdJTjMyCisgICAgICAgI2lmIGRlZmluZWQoIE9QRU5WUl9BUElfRVhQT1JUUyApCisgICAg
ICAgI2RlZmluZSBTX0FQSSBFWFRFUk5fQworICAgICAgICNlbHNlCisgICAgICAgI2RlZmluZSBT
X0FQSSBFWFRFUk5fQworICAgICAgICNlbmRpZiAvLyBPUEVOVlJfQVBJX0VYUE9SVFMKKyNlbmRp
ZgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZiBkZWZpbmVkKCBfX1dJTjMyICkKK3R5cGVk
ZWYgY2hhciBib29sOworI2Vsc2UKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjZW5kaWYKKwordHlw
ZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJf
dCBQcm9wZXJ0eVR5cGVUYWdfdDsKKworCisvLyBPcGVuVlIgQ29uc3RhbnRzCisKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bk1heERyaXZlckRlYnVnUmVzcG9uc2VTaXplID0gMzI3Njg7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhfSG1kID0g
MDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk1heFRyYWNrZWREZXZpY2VDb3VudCA9
IDE2Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERldmljZUluZGV4T3Ro
ZXIgPSA0Mjk0OTY3Mjk0Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuVHJhY2tlZERl
dmljZUluZGV4SW52YWxpZCA9IDQyOTQ5NjcyOTU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9u
ZyBrX3VsSW52YWxpZFByb3BlcnR5Q29udGFpbmVyID0gMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbnQga191bkludmFsaWRQcm9wZXJ0eVRhZyA9IDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQg
aW50IGtfdW5GbG9hdFByb3BlcnR5VGFnID0gMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg
a191bkludDMyUHJvcGVydHlUYWcgPSAyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3Vu
VWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuQm9v
bFByb3BlcnR5VGFnID0gNDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191blN0cmluZ1By
b3BlcnR5VGFnID0gNTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZE1hdHJpeDM0
UHJvcGVydHlUYWcgPSAyMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZE1hdHJp
eDQ0UHJvcGVydHlUYWcgPSAyMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bkhtZFZl
Y3RvcjNQcm9wZXJ0eVRhZyA9IDIyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuSG1k
VmVjdG9yNFByb3BlcnR5VGFnID0gMjM7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5I
aWRkZW5BcmVhUHJvcGVydHlUYWcgPSAzMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191
bk9wZW5WUkludGVybmFsUmVzZXJ2ZWRfU3RhcnQgPSAxMDAwOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGludCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bk1heFByb3BlcnR5U3RyaW5nU2l6ZSA9IDMyNzY4Oworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGludCBrX3VuQ29udHJvbGxlclN0YXRlQXhpc0NvdW50ID0gNTsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGtfdWxPdmVybGF5SGFuZGxlSW52YWxpZCA9IDA7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9
IDA7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUlN5c3RlbV9WZXJzaW9uID0gIklWUlN5c3RlbV8w
MTUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJFeHRlbmRlZERpc3BsYXlfVmVyc2lvbiA9ICJJ
VlJFeHRlbmRlZERpc3BsYXlfMDAxIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSVHJhY2tlZENh
bWVyYV9WZXJzaW9uID0gIklWUlRyYWNrZWRDYW1lcmFfMDAzIjsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbnQga191bk1heEFwcGxpY2F0aW9uS2V5TGVuZ3RoID0gMTI4Oworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9Ib21lQXBwID0gInZyL2hvbWUiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9NaW1lVHlwZV9HYW1lVGhlYXRlciA9ICJ2ci9nYW1lX3RoZWF0ZXIiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBJVlJBcHBsaWNhdGlvbnNfVmVyc2lvbiA9ICJJVlJBcHBsaWNh
dGlvbnNfMDA2IjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSQ2hhcGVyb25lX1ZlcnNpb24gPSAi
SVZSQ2hhcGVyb25lXzAwMyI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUkNoYXBlcm9uZVNldHVw
X1ZlcnNpb24gPSAiSVZSQ2hhcGVyb25lU2V0dXBfMDA1IjsKK3N0YXRpYyBjb25zdCBjaGFyICog
SVZSQ29tcG9zaXRvcl9WZXJzaW9uID0gIklWUkNvbXBvc2l0b3JfMDIwIjsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heEtleUxlbmd0aCA9IDEyODsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191blZST3ZlcmxheU1heE5hbWVMZW5ndGggPSAxMjg7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgaW50IGtfdW5NYXhPdmVybGF5Q291bnQgPSA2NDsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbnQga191bk1heE92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJpbWl0aXZl
c0NvdW50ID0gMzI7CitzdGF0aWMgY29uc3QgY2hhciAqIElWUk92ZXJsYXlfVmVyc2lvbiA9ICJJ
VlJPdmVybGF5XzAxNCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29t
cG9uZW50X0dEQzIwMTUgPSAiZ2RjMjAxNSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Nv
bnRyb2xsZXJfQ29tcG9uZW50X0Jhc2UgPSAiYmFzZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1RpcCA9ICJ0aXAiOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9Db250cm9sbGVyX0NvbXBvbmVudF9IYW5kR3JpcCA9ICJoYW5kZ3JpcCI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbnRyb2xsZXJfQ29tcG9uZW50X1N0YXR1cyA9ICJzdGF0
dXMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJSZW5kZXJNb2RlbHNfVmVyc2lvbiA9ICJJVlJS
ZW5kZXJNb2RlbHNfMDA1IjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQga191bk5vdGlmaWNh
dGlvblRleHRNYXhTaXplID0gMjU2Oworc3RhdGljIGNvbnN0IGNoYXIgKiBJVlJOb3RpZmljYXRp
b25zX1ZlcnNpb24gPSAiSVZSTm90aWZpY2F0aW9uc18wMDIiOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGludCBrX3VuTWF4U2V0dGluZ3NLZXlMZW5ndGggPSAxMjg7CitzdGF0aWMgY29uc3QgY2hh
ciAqIElWUlNldHRpbmdzX1ZlcnNpb24gPSAiSVZSU2V0dGluZ3NfMDAyIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9TZWN0aW9uID0gInN0ZWFtdnIiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRfU3RyaW5nID0gInJlcXVpcmVIbWQiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0ZvcmNlZERyaXZlcktleV9TdHJpbmcg
PSAiZm9yY2VkRHJpdmVyIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Gb3Jj
ZWRIbWRLZXlfU3RyaW5nID0gImZvcmNlZEhtZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfU3RlYW1WUl9EZWJ1Z1Byb2Nlc3NQaXBlX1N0cmluZyA9ICJkZWJ1Z1By
b2Nlc3NQaXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVEaXN0
b3J0aW9uX0Jvb2wgPSAiZW5hYmxlRGlzdG9ydGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9EaXNwbGF5RGVidWdZX0ludDMyID0gImRpc3Bs
YXlEZWJ1Z1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NlbmRTeXN0ZW1C
dXR0b25Ub0FsbEFwcHNfQm9vbCA9ICJzZW5kU3lzdGVtQnV0dG9uVG9BbGxBcHBzIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9Mb2dMZXZlbF9JbnQzMiA9ICJsb2dsZXZlbCI7
CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZF9TdHJpbmcgPSAiYmFj
a2dyb3VuZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfQmFja2dyb3VuZFVz
ZURvbWVQcm9qZWN0aW9uX0Jvb2wgPSAiYmFja2dyb3VuZFVzZURvbWVQcm9qZWN0aW9uIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kQ2FtZXJhSGVpZ2h0X0Zs
b2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9TdGVhbVZSX0JhY2tncm91bmREb21lUmFkaXVzX0Zsb2F0ID0gImJhY2tncm91bmREb21lUmFk
aXVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9HcmlkQ29sb3JfU3RyaW5n
ID0gImdyaWRDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfUGxheUFy
ZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtf
cGNoX1N0ZWFtVlJfU2hvd1N0YWdlX0Jvb2wgPSAic2hvd1N0YWdlIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfU3RlYW1WUl9BY3RpdmF0ZU11bHRpcGxlRHJpdmVyc19Cb29sID0gImFjdGl2
YXRlTXVsdGlwbGVEcml2ZXJzIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9E
aXJlY3RNb2RlX0Jvb2wgPSAiZGlyZWN0TW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1N0ZWFtVlJfRGlyZWN0TW9kZUVkaWRWaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRWaWQiOwor
c3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0RpcmVjdE1vZGVFZGlkUGlkX0ludDMy
ID0gImRpcmVjdE1vZGVFZGlkUGlkIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVha2VycyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX1N0ZWFtVlJfU3BlYWtlcnNGb3J3YXJkWWF3T2Zmc2V0RGVncmVlc19GbG9hdCA9
ICJzcGVha2Vyc0ZvcndhcmRZYXdPZmZzZXREZWdyZWVzIjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfU3RlYW1WUl9CYXNlU3RhdGlvblBvd2VyTWFuYWdlbWVudF9Cb29sID0gImJhc2VzdGF0
aW9uUG93ZXJNYW5hZ2VtZW50IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9O
ZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1JlbmRlclRhcmdldE11bHRpcGxpZXJfRmxvYXQgPSAi
cmVuZGVyVGFyZ2V0TXVsdGlwbGllciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFt
VlJfQWxsb3dBc3luY1JlcHJvamVjdGlvbl9Cb29sID0gImFsbG93QXN5bmNSZXByb2plY3Rpb24i
Oworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jv
b2wgPSAiYWxsb3dJbnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX1N0ZWFtVlJfRm9yY2VSZXByb2plY3Rpb25fQm9vbCA9ICJmb3JjZVJlcHJvamVjdGlv
biI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfRm9yY2VGYWRlT25CYWRUcmFj
a2luZ19Cb29sID0gImZvcmNlRmFkZU9uQmFkVHJhY2tpbmciOworc3RhdGljIGNvbnN0IGNoYXIg
KiBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JWaWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JW
aWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TaG93TWlycm9yVmlld19C
b29sID0gInNob3dNaXJyb3JWaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1W
Ul9NaXJyb3JWaWV3R2VvbWV0cnlfU3RyaW5nID0gIm1pcnJvclZpZXdHZW9tZXRyeSI7CitzdGF0
aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFwcExhdW5jaCA9
ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
U3RlYW1WUl9TdGFydENvbXBvc2l0b3JGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnRDb21wb3Np
dG9yRnJvbUFwcExhdW5jaCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1N0ZWFtVlJfU3Rh
cnREYXNoYm9hcmRGcm9tQXBwTGF1bmNoX0Jvb2wgPSAic3RhcnREYXNoYm9hcmRGcm9tQXBwTGF1
bmNoIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBz
RnJvbURhc2hib2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfU3RlYW1WUl9FbmFibGVIb21lQXBwID0gImVuYWJsZUhv
bWVBcHAiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9TdGVhbVZSX1NldEluaXRpYWxEZWZh
dWx0SG9tZUFwcCA9ICJzZXRJbml0aWFsRGVmYXVsdEhvbWVBcHAiOworc3RhdGljIGNvbnN0IGNo
YXIgKiBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFja2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJD
eWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9T
dGVhbVZSX1JldGFpbERlbW9fQm9vbCA9ICJyZXRhaWxEZW1vIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfU3RlYW1WUl9JcGRPZmZzZXRfRmxvYXQgPSAiaXBkT2Zmc2V0IjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRyaXZlcl9saWdodGhvdXNl
IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhYmxlSU1VX0Jvb2wg
PSAiZGlzYWJsZWltdSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0xpZ2h0aG91c2VfVXNl
RGlzYW1iaWd1YXRpb25fU3RyaW5nID0gInVzZWRpc2FtYmlndWF0aW9uIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRp
c2FtYmlndWF0aW9uZGVidWciOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNl
X1ByaW1hcnlCYXNlc3RhdGlvbl9JbnQzMiA9ICJwcmltYXJ5YmFzZXN0YXRpb24iOworc3RhdGlj
IGNvbnN0IGNoYXIgKiBrX3BjaF9MaWdodGhvdXNlX0RCSGlzdG9yeV9Cb29sID0gImRiaGlzdG9y
eSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVs
bCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2VyaWFsTnVtYmVyX1N0cmluZyA9
ICJzZXJpYWxOdW1iZXIiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9OdWxsX01vZGVsTnVt
YmVyX1N0cmluZyA9ICJtb2RlbE51bWJlciI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051
bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hf
TnVsbF9XaW5kb3dZX0ludDMyID0gIndpbmRvd1kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3Bj
aF9OdWxsX1dpbmRvd1dpZHRoX0ludDMyID0gIndpbmRvd1dpZHRoIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9SZW5kZXJXaWR0aF9JbnQzMiA9ICJyZW5kZXJX
aWR0aCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfUmVuZGVySGVpZ2h0X0ludDMy
ID0gInJlbmRlckhlaWdodCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX051bGxfU2Vjb25k
c0Zyb21Wc3luY1RvUGhvdG9uc19GbG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTnVsbF9EaXNwbGF5RnJlcXVlbmN5X0Zsb2F0ID0g
ImRpc3BsYXlGcmVxdWVuY3kiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Vc2VySW50ZXJm
YWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNo
X1VzZXJJbnRlcmZhY2VfU3RhdHVzQWx3YXlzT25Ub3BfQm9vbCA9ICJTdGF0dXNBbHdheXNPblRv
cCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfTWluaW1pemVUb1Ry
YXlfQm9vbCA9ICJNaW5pbWl6ZVRvVHJheSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1Vz
ZXJJbnRlcmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1VzZXJJbnRlcmZhY2VfU2NyZWVuc2hvdFR5cGVfSW50ID0gInNjcmVl
bnNob3RUeXBlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfTm90aWZpY2F0aW9uc19TZWN0
aW9uID0gIm5vdGlmaWNhdGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ob3RpZmlj
YXRpb25zX0RvTm90RGlzdHVyYl9Cb29sID0gIkRvTm90RGlzdHVyYiI7CitzdGF0aWMgY29uc3Qg
Y2hhciAqIGtfcGNoX0tleWJvYXJkX1NlY3Rpb24gPSAia2V5Ym9hcmQiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9UdXRvcmlhbENvbXBsZXRpb25zID0gIlR1dG9yaWFsQ29t
cGxldGlvbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9LZXlib2FyZF9TY2FsZVggPSAi
U2NhbGVYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfU2NhbGVZID0gIlNj
YWxlWSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJvYXJkX09mZnNldExlZnRYID0g
Ik9mZnNldExlZnRYIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfS2V5Ym9hcmRfT2Zmc2V0
UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJv
YXJkX09mZnNldFkgPSAiT2Zmc2V0WSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0tleWJv
YXJkX1Ntb290aGluZyA9ICJTbW9vdGhpbmciOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Q
ZXJmX1NlY3Rpb24gPSAicGVyZmNoZWNrIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUGVy
Zl9IZXVyaXN0aWNBY3RpdmVfQm9vbCA9ICJoZXVyaXN0aWNBY3RpdmUiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9QZXJmX05vdGlmeUluSE1EX0Jvb2wgPSAid2FybkluSE1EIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUGVyZl9Ob3RpZnlPbmx5T25jZV9Cb29sID0gIndhcm5Pbmx5
T25jZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX1BlcmZfQWxsb3dUaW1pbmdTdG9yZV9C
b29sID0gImFsbG93VGltaW5nU3RvcmUiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9QZXJm
X1NhdmVUaW1pbmdzT25FeGl0X0Jvb2wgPSAic2F2ZVRpbWluZ3NPbkV4aXQiOworc3RhdGljIGNv
bnN0IGNoYXIgKiBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7Citz
dGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19TZWN0aW9uID0gImNvbGxp
c2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19T
dHlsZV9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNTdHlsZSI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lv
bkJvdW5kc0dyb3VuZFBlcmltZXRlck9uIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29s
bGlzaW9uQm91bmRzX0NlbnRlck1hcmtlck9uX0Jvb2wgPSAiQ29sbGlzaW9uQm91bmRzQ2VudGVy
TWFya2VyT24iOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfUGxh
eVNwYWNlT25fQm9vbCA9ICJDb2xsaXNpb25Cb3VuZHNQbGF5U3BhY2VPbiI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX0NvbGxpc2lvbkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29s
bGlzaW9uQm91bmRzRmFkZURpc3RhbmNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29s
bGlzaW9uQm91bmRzX0NvbG9yR2FtbWFSX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2Ft
bWFSIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2Ft
bWFHX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0ludDMyID0gIkNvbGxpc2lv
bkJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ29sbGlzaW9u
Qm91bmRzX0NvbG9yR2FtbWFBX0ludDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFBIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX1NlY3Rpb24gPSAiY2FtZXJhIjsKK3N0
YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYV9Cb29sID0gImVuYWJs
ZUNhbWVyYSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFJ
bkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ2FtZXJhX0VuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kc19Cb29s
ID0gImVuYWJsZUNhbWVyYUZvckNvbGxpc2lvbkJvdW5kcyI7CitzdGF0aWMgY29uc3QgY2hhciAq
IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFGb3JSb29tVmlld19Cb29sID0gImVuYWJsZUNhbWVy
YUZvclJvb21WaWV3IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0Nv
bG9yR2FtbWFSX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFHX0ludDMyID0gImNhbWVyYUJv
dW5kc0NvbG9yR2FtbWFHIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5k
c0NvbG9yR2FtbWFCX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFCIjsKK3N0YXRpYyBj
b25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVy
YUJvdW5kc0NvbG9yR2FtbWFBIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfQ2FtZXJhX0Jv
dW5kc1N0cmVuZ3RoX0ludDMyID0gImNhbWVyYUJvdW5kc1N0cmVuZ3RoIjsKK3N0YXRpYyBjb25z
dCBjaGFyICoga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7CitzdGF0aWMgY29uc3QgY2hh
ciAqIGtfcGNoX2F1ZGlvX09uUGxheWJhY2tEZXZpY2VfU3RyaW5nID0gIm9uUGxheWJhY2tEZXZp
Y2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19PblJlY29yZERldmljZV9TdHJp
bmcgPSAib25SZWNvcmREZXZpY2UiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9hdWRpb19P
blBsYXliYWNrTWlycm9yRGV2aWNlX1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsK
K3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9fT2ZmUGxheWJhY2tEZXZpY2VfU3RyaW5n
ID0gIm9mZlBsYXliYWNrRGV2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfYXVkaW9f
T2ZmUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvZmZSZWNvcmREZXZpY2UiOworc3RhdGljIGNvbnN0
IGNoYXIgKiBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2ZUhETUlHYWluIjsKK3N0YXRp
YyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfU2VjdGlvbiA9ICJwb3dlciI7CitzdGF0aWMgY29u
c3QgY2hhciAqIGtfcGNoX1Bvd2VyX1Bvd2VyT2ZmT25FeGl0X0Jvb2wgPSAicG93ZXJPZmZPbkV4
aXQiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2NyZWVuc1RpbWVv
dXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICog
a19wY2hfUG93ZXJfVHVybk9mZkNvbnRyb2xsZXJzVGltZW91dF9GbG9hdCA9ICJ0dXJuT2ZmQ29u
dHJvbGxlcnNUaW1lb3V0IjsKK3N0YXRpYyBjb25zdCBjaGFyICoga19wY2hfUG93ZXJfUmV0dXJu
VG9XYXRjaGRvZ1RpbWVvdXRfRmxvYXQgPSAicmV0dXJuVG9XYXRjaGRvZ1RpbWVvdXQiOworc3Rh
dGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJl
c3MgPSAiYXV0b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKK3N0YXRpYyBjb25zdCBjaGFy
ICoga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKK3N0YXRpYyBjb25zdCBj
aGFyICoga19wY2hfRGFzaGJvYXJkX0VuYWJsZURhc2hib2FyZF9Cb29sID0gImVuYWJsZURhc2hi
b2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX0Rhc2hib2FyZF9BcmNhZGVNb2RlX0Jv
b2wgPSAiYXJjYWRlTW9kZSI7CitzdGF0aWMgY29uc3QgY2hhciAqIGtfcGNoX21vZGVsc2tpbl9T
ZWN0aW9uID0gIm1vZGVsc2tpbnMiOworc3RhdGljIGNvbnN0IGNoYXIgKiBrX3BjaF9Ecml2ZXJf
RW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKK3N0YXRpYyBjb25zdCBjaGFyICogSVZSU2NyZWVuc2hv
dHNfVmVyc2lvbiA9ICJJVlJTY3JlZW5zaG90c18wMDEiOworc3RhdGljIGNvbnN0IGNoYXIgKiBJ
VlJSZXNvdXJjZXNfVmVyc2lvbiA9ICJJVlJSZXNvdXJjZXNfMDAxIjsKKworLy8gT3BlblZSIEVu
dW1zCisKK3R5cGVkZWYgZW51bSBFVlJFeWUKK3sKKyAgICAgICBFVlJFeWVfRXllX0xlZnQgPSAw
LAorICAgICAgIEVWUkV5ZV9FeWVfUmlnaHQgPSAxLAorfSBFVlJFeWU7CisKK3R5cGVkZWYgZW51
bSBFVGV4dHVyZVR5cGUKK3sKKyAgICAgICBFVGV4dHVyZVR5cGVfVGV4dHVyZVR5cGVfRGlyZWN0
WCA9IDAsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX09wZW5HTCA9IDEsCisgICAg
ICAgRVRleHR1cmVUeXBlX1RleHR1cmVUeXBlX1Z1bGthbiA9IDIsCisgICAgICAgRVRleHR1cmVU
eXBlX1RleHR1cmVUeXBlX0lPU3VyZmFjZSA9IDMsCisgICAgICAgRVRleHR1cmVUeXBlX1RleHR1
cmVUeXBlX0RpcmVjdFgxMiA9IDQsCit9IEVUZXh0dXJlVHlwZTsKKwordHlwZWRlZiBlbnVtIEVD
b2xvclNwYWNlCit7CisgICAgICAgRUNvbG9yU3BhY2VfQ29sb3JTcGFjZV9BdXRvID0gMCwKKyAg
ICAgICBFQ29sb3JTcGFjZV9Db2xvclNwYWNlX0dhbW1hID0gMSwKKyAgICAgICBFQ29sb3JTcGFj
ZV9Db2xvclNwYWNlX0xpbmVhciA9IDIsCit9IEVDb2xvclNwYWNlOworCit0eXBlZGVmIGVudW0g
RVRyYWNraW5nUmVzdWx0Cit7CisgICAgICAgRVRyYWNraW5nUmVzdWx0X1RyYWNraW5nUmVzdWx0
X1VuaW5pdGlhbGl6ZWQgPSAxLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3Vs
dF9DYWxpYnJhdGluZ19JblByb2dyZXNzID0gMTAwLAorICAgICAgIEVUcmFja2luZ1Jlc3VsdF9U
cmFja2luZ1Jlc3VsdF9DYWxpYnJhdGluZ19PdXRPZlJhbmdlID0gMTAxLAorICAgICAgIEVUcmFj
a2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX09LID0gMjAwLAorICAgICAgIEVUcmFj
a2luZ1Jlc3VsdF9UcmFja2luZ1Jlc3VsdF9SdW5uaW5nX091dE9mUmFuZ2UgPSAyMDEsCit9IEVU
cmFja2luZ1Jlc3VsdDsKKwordHlwZWRlZiBlbnVtIEVUcmFja2VkRGV2aWNlQ2xhc3MKK3sKKyAg
ICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19JbnZhbGlkID0gMCwK
KyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VDbGFzc19ITUQgPSAxLAor
ICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIg
PSAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tlZERldmljZUNsYXNzX0dlbmVy
aWNUcmFja2VyID0gMywKKyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzX1RyYWNrZWREZXZpY2VD
bGFzc19UcmFja2luZ1JlZmVyZW5jZSA9IDQsCit9IEVUcmFja2VkRGV2aWNlQ2xhc3M7CisKK3R5
cGVkZWYgZW51bSBFVHJhY2tlZENvbnRyb2xsZXJSb2xlCit7CisgICAgICAgRVRyYWNrZWRDb250
cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfSW52YWxpZCA9IDAsCisgICAgICAgRVRy
YWNrZWRDb250cm9sbGVyUm9sZV9UcmFja2VkQ29udHJvbGxlclJvbGVfTGVmdEhhbmQgPSAxLAor
ICAgICAgIEVUcmFja2VkQ29udHJvbGxlclJvbGVfVHJhY2tlZENvbnRyb2xsZXJSb2xlX1JpZ2h0
SGFuZCA9IDIsCit9IEVUcmFja2VkQ29udHJvbGxlclJvbGU7CisKK3R5cGVkZWYgZW51bSBFVHJh
Y2tpbmdVbml2ZXJzZU9yaWdpbgoreworICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luX1Ry
YWNraW5nVW5pdmVyc2VTZWF0ZWQgPSAwLAorICAgICAgIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2lu
X1RyYWNraW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsCisgICAgICAgRVRyYWNraW5nVW5pdmVyc2VP
cmlnaW5fVHJhY2tpbmdVbml2ZXJzZVJhd0FuZFVuY2FsaWJyYXRlZCA9IDIsCit9IEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luOworCit0eXBlZGVmIGVudW0gRVRyYWNrZWREZXZpY2VQcm9wZXJ0eQor
eworICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9JbnZhbGlkID0gMCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyA9
IDEwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX01vZGVsTnVtYmVyX1N0
cmluZyA9IDEwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NlcmlhbE51
bWJlcl9TdHJpbmcgPSAxMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9S
ZW5kZXJNb2RlbE5hbWVfU3RyaW5nID0gMTAwMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfV2lsbERyaWZ0SW5ZYXdfQm9vbCA9IDEwMDQsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX01hbnVmYWN0dXJlck5hbWVfU3RyaW5nID0gMTAwNSwKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdGaXJtd2FyZVZlcnNpb25fU3RyaW5n
ID0gMTAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSGFyZHdhcmVSZXZp
c2lvbl9TdHJpbmcgPSAxMDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9B
bGxXaXJlbGVzc0RvbmdsZURlc2NyaXB0aW9uc19TdHJpbmcgPSAxMDA4LAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Db25uZWN0ZWRXaXJlbGVzc0RvbmdsZV9TdHJpbmcgPSAx
MDA5LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VJc1dpcmVsZXNz
X0Jvb2wgPSAxMDEwLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EZXZpY2VJ
c0NoYXJnaW5nX0Jvb2wgPSAxMDExLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9EZXZpY2VCYXR0ZXJ5UGVyY2VudGFnZV9GbG9hdCA9IDEwMTIsCisgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eV9Qcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQgPSAxMDEz
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9GaXJtd2FyZV9VcGRhdGVBdmFp
bGFibGVfQm9vbCA9IDEwMTQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zp
cm13YXJlX01hbnVhbFVwZGF0ZV9Cb29sID0gMTAxNSwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyA9IDEwMTYsCisgICAg
ICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0hhcmR3YXJlUmV2aXNpb25fVWludDY0ID0g
MTAxNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRmlybXdhcmVWZXJzaW9u
X1VpbnQ2NCA9IDEwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZQR0FW
ZXJzaW9uX1VpbnQ2NCA9IDEwMTksCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X1ZSQ1ZlcnNpb25fVWludDY0ID0gMTAyMCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5
X1Byb3BfUmFkaW9WZXJzaW9uX1VpbnQ2NCA9IDEwMjEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX0RvbmdsZVZlcnNpb25fVWludDY0ID0gMTAyMiwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sID0gMTAyMywKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfQ2FuVW5pZnlDb29yZGluYXRlU3lzdGVt
V2l0aEhtZF9Cb29sID0gMTAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
Q29udGFpbnNQcm94aW1pdHlTZW5zb3JfQm9vbCA9IDEwMjUsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX0RldmljZVByb3ZpZGVzQmF0dGVyeVN0YXR1c19Cb29sID0gMTAyNiwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGV2aWNlQ2FuUG93ZXJPZmZfQm9v
bCA9IDEwMjcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX1By
b2dyYW1taW5nVGFyZ2V0X1N0cmluZyA9IDEwMjgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0RldmljZUNsYXNzX0ludDMyID0gMTAyOSwKKyAgICAgICBFVHJhY2tlZERldmlj
ZVByb3BlcnR5X1Byb3BfSGFzQ2FtZXJhX0Jvb2wgPSAxMDMwLAorICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHlfUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmluZyA9IDEwMzEsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Zpcm13YXJlX0ZvcmNlVXBkYXRlUmVxdWlyZWRfQm9v
bCA9IDEwMzIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZpdmVTeXN0ZW1C
dXR0b25GaXhSZXF1aXJlZF9Cb29sID0gMTAzMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfUGFyZW50RHJpdmVyX1VpbnQ2NCA9IDEwMzQsCisgICAgICAgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eV9Qcm9wX1JlcG9ydHNUaW1lU2luY2VWU3luY19Cb29sID0gMjAwMCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19G
bG9hdCA9IDIwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlG
cmVxdWVuY3lfRmxvYXQgPSAyMDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJv
cF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ID0gMjAwMywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3Bl
cnR5X1Byb3BfQ3VycmVudFVuaXZlcnNlSWRfVWludDY0ID0gMjAwNCwKKyAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5X1Byb3BfUHJldmlvdXNVbml2ZXJzZUlkX1VpbnQ2NCA9IDIwMDUsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25f
VWludDY0ID0gMjAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfSXNPbkRl
c2t0b3BfQm9vbCA9IDIwMDcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlNQ1R5cGVfSW50MzIgPSAyMDA4LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlf
UHJvcF9EaXNwbGF5TUNPZmZzZXRfRmxvYXQgPSAyMDA5LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5TUNTY2FsZV9GbG9hdCA9IDIwMTAsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0VkaWRWZW5kb3JJRF9JbnQzMiA9IDIwMTEsCisgICAgICAg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgPSAy
MDEyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9EaXNwbGF5TUNJbWFnZVJp
Z2h0X1N0cmluZyA9IDIwMTMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rp
c3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgPSAyMDE0LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJv
cGVydHlfUHJvcF9FZGlkUHJvZHVjdElEX0ludDMyID0gMjAxNSwKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfQ2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ID0gMjAxNiwK
KyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUdDVHlwZV9JbnQzMiA9
IDIwMTcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlHQ09mZnNl
dF9GbG9hdCA9IDIwMTgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3Bs
YXlHQ1NjYWxlX0Zsb2F0ID0gMjAxOSwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1By
b3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgPSAyMDIwLAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5R0NJbWFnZV9TdHJpbmcgPSAyMDIxLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFVfRmxvYXQgPSAyMDIyLAorICAg
ICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyTGVmdFZfRmxvYXQgPSAy
MDIzLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9MZW5zQ2VudGVyUmlnaHRV
X0Zsb2F0ID0gMjAyNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfTGVuc0Nl
bnRlclJpZ2h0Vl9GbG9hdCA9IDIwMjUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1VzZXJIZWFkVG9FeWVEZXB0aE1ldGVyc19GbG9hdCA9IDIwMjYsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NhbWVyYUZpcm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDI3
LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9DYW1lcmFGaXJtd2FyZURlc2Ny
aXB0aW9uX1N0cmluZyA9IDIwMjgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9w
X0Rpc3BsYXlGUEdBVmVyc2lvbl9VaW50NjQgPSAyMDI5LAorICAgICAgIEVUcmFja2VkRGV2aWNl
UHJvcGVydHlfUHJvcF9EaXNwbGF5Qm9vdGxvYWRlclZlcnNpb25fVWludDY0ID0gMjAzMCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhhcmR3YXJlVmVyc2lvbl9V
aW50NjQgPSAyMDMxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9BdWRpb0Zp
cm13YXJlVmVyc2lvbl9VaW50NjQgPSAyMDMyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVy
dHlfUHJvcF9DYW1lcmFDb21wYXRpYmlsaXR5TW9kZV9JbnQzMiA9IDIwMzMsCisgICAgICAgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1NjcmVlbnNob3RIb3Jpem9udGFsRmllbGRPZlZpZXdE
ZWdyZWVzX0Zsb2F0ID0gMjAzNCwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
U2NyZWVuc2hvdFZlcnRpY2FsRmllbGRPZlZpZXdEZWdyZWVzX0Zsb2F0ID0gMjAzNSwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCA9IDIw
MzYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlBbGxvd05pZ2h0
TW9kZV9Cb29sID0gMjAzNywKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlz
cGxheU1DSW1hZ2VXaWR0aF9JbnQzMiA9IDIwMzgsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9w
ZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdlSGVpZ2h0X0ludDMyID0gMjAzOSwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheU1DSW1hZ2VOdW1DaGFubmVsc19JbnQzMiA9
IDIwNDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0Rpc3BsYXlNQ0ltYWdl
RGF0YV9CaW5hcnkgPSAyMDQxLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9V
c2VzRHJpdmVyRGlyZWN0TW9kZV9Cb29sID0gMjA0MiwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfQXR0YWNoZWREZXZpY2VJZF9TdHJpbmcgPSAzMDAwLAorICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHlfUHJvcF9TdXBwb3J0ZWRCdXR0b25zX1VpbnQ2NCA9IDMwMDEsCisg
ICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMwVHlwZV9JbnQzMiA9IDMwMDIs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMxVHlwZV9JbnQzMiA9IDMw
MDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMyVHlwZV9JbnQzMiA9
IDMwMDQsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXMzVHlwZV9JbnQz
MiA9IDMwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0F4aXM0VHlwZV9J
bnQzMiA9IDMwMDYsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0NvbnRyb2xs
ZXJSb2xlSGludF9JbnQzMiA9IDMwMDcsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX0ZpZWxkT2ZWaWV3TGVmdERlZ3JlZXNfRmxvYXQgPSA0MDAwLAorICAgICAgIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHlfUHJvcF9GaWVsZE9mVmlld1JpZ2h0RGVncmVlc19GbG9hdCA9IDQwMDEs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxkT2ZWaWV3VG9wRGVncmVl
c19GbG9hdCA9IDQwMDIsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0ZpZWxk
T2ZWaWV3Qm90dG9tRGVncmVlc19GbG9hdCA9IDQwMDMsCisgICAgICAgRVRyYWNrZWREZXZpY2VQ
cm9wZXJ0eV9Qcm9wX1RyYWNraW5nUmFuZ2VNaW5pbXVtTWV0ZXJzX0Zsb2F0ID0gNDAwNCwKKyAg
ICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRl
cnNfRmxvYXQgPSA0MDA1LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9Nb2Rl
TGFiZWxfU3RyaW5nID0gNDAwNiwKKyAgICAgICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3Bf
SWNvblBhdGhOYW1lX1N0cmluZyA9IDUwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VPZmZfU3RyaW5nID0gNTAwMSwKKyAgICAgICBFVHJh
Y2tlZERldmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVNlYXJjaGluZ19TdHJp
bmcgPSA1MDAyLAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlU2VhcmNoaW5nQWxlcnRfU3RyaW5nID0gNTAwMywKKyAgICAgICBFVHJhY2tlZERl
dmljZVByb3BlcnR5X1Byb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyA9IDUwMDQs
CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX05hbWVkSWNvblBhdGhEZXZpY2VS
ZWFkeUFsZXJ0X1N0cmluZyA9IDUwMDUsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX05hbWVkSWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgPSA1MDA2LAorICAgICAgIEVU
cmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25QYXRoRGV2aWNlU3RhbmRieV9TdHJp
bmcgPSA1MDA3LAorICAgICAgIEVUcmFja2VkRGV2aWNlUHJvcGVydHlfUHJvcF9OYW1lZEljb25Q
YXRoRGV2aWNlQWxlcnRMb3dfU3RyaW5nID0gNTAwOCwKKyAgICAgICBFVHJhY2tlZERldmljZVBy
b3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ID0gNTEwMCwKKyAgICAg
ICBFVHJhY2tlZERldmljZVByb3BlcnR5X1Byb3BfRGlzcGxheUhpZGRlbkFyZWFfQmluYXJ5X0Vu
ZCA9IDUxNTAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1VzZXJDb25maWdQ
YXRoX1N0cmluZyA9IDYwMDAsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX0lu
c3RhbGxQYXRoX1N0cmluZyA9IDYwMDEsCisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eV9Q
cm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0gMTAwMDAsCisgICAgICAgRVRyYWNr
ZWREZXZpY2VQcm9wZXJ0eV9Qcm9wX1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCA9IDEwOTk5
LAorfSBFVHJhY2tlZERldmljZVByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yCit7CisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1N1
Y2Nlc3MgPSAwLAorICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvcl9UcmFja2VkUHJvcF9Xcm9u
Z0RhdGFUeXBlID0gMSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJhY2tlZFByb3Bf
V3JvbmdEZXZpY2VDbGFzcyA9IDIsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNr
ZWRQcm9wX0J1ZmZlclRvb1NtYWxsID0gMywKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3Jf
VHJhY2tlZFByb3BfVW5rbm93blByb3BlcnR5ID0gNCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5
RXJyb3JfVHJhY2tlZFByb3BfSW52YWxpZERldmljZSA9IDUsCisgICAgICAgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yX1RyYWNrZWRQcm9wX0NvdWxkTm90Q29udGFjdFNlcnZlciA9IDYsCisgICAgICAg
RVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1ZhbHVlTm90UHJvdmlkZWRCeURldmlj
ZSA9IDcsCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yX1RyYWNrZWRQcm9wX1N0cmluZ0V4
Y2VlZHNNYXhpbXVtTGVuZ3RoID0gOCwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3JfVHJh
Y2tlZFByb3BfTm90WWV0QXZhaWxhYmxlID0gOSwKKyAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJy
b3JfVHJhY2tlZFByb3BfUGVybWlzc2lvbkRlbmllZCA9IDEwLAorICAgICAgIEVUcmFja2VkUHJv
cGVydHlFcnJvcl9UcmFja2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uID0gMTEsCit9IEVUcmFja2Vk
UHJvcGVydHlFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlN1Ym1pdEZsYWdzCit7CisgICAgICAg
RVZSU3VibWl0RmxhZ3NfU3VibWl0X0RlZmF1bHQgPSAwLAorICAgICAgIEVWUlN1Ym1pdEZsYWdz
X1N1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVkID0gMSwKKyAgICAgICBFVlJTdWJt
aXRGbGFnc19TdWJtaXRfR2xSZW5kZXJCdWZmZXIgPSAyLAorICAgICAgIEVWUlN1Ym1pdEZsYWdz
X1N1Ym1pdF9SZXNlcnZlZCA9IDQsCit9IEVWUlN1Ym1pdEZsYWdzOworCit0eXBlZGVmIGVudW0g
RVZSU3RhdGUKK3sKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1VuZGVmaW5lZCA9IC0xLAorICAg
ICAgIEVWUlN0YXRlX1ZSU3RhdGVfT2ZmID0gMCwKKyAgICAgICBFVlJTdGF0ZV9WUlN0YXRlX1Nl
YXJjaGluZyA9IDEsCisgICAgICAgRVZSU3RhdGVfVlJTdGF0ZV9TZWFyY2hpbmdfQWxlcnQgPSAy
LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfUmVhZHkgPSAzLAorICAgICAgIEVWUlN0YXRlX1ZS
U3RhdGVfUmVhZHlfQWxlcnQgPSA0LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfTm90UmVhZHkg
PSA1LAorICAgICAgIEVWUlN0YXRlX1ZSU3RhdGVfU3RhbmRieSA9IDYsCisgICAgICAgRVZSU3Rh
dGVfVlJTdGF0ZV9SZWFkeV9BbGVydF9Mb3cgPSA3LAorfSBFVlJTdGF0ZTsKKwordHlwZWRlZiBl
bnVtIEVWUkV2ZW50VHlwZQoreworICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X05vbmUgPSAw
LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQgPSAx
MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZhdGVk
ID0gMTAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVcGRhdGVk
ID0gMTAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWREZXZpY2VVc2VySW50
ZXJhY3Rpb25TdGFydGVkID0gMTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNr
ZWREZXZpY2VVc2VySW50ZXJhY3Rpb25FbmRlZCA9IDEwNCwKKyAgICAgICBFVlJFdmVudFR5cGVf
VlJFdmVudF9JcGRDaGFuZ2VkID0gMTA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0Vu
dGVyU3RhbmRieU1vZGUgPSAxMDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTGVhdmVT
dGFuZGJ5TW9kZSA9IDEwNywKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFja2VkRGV2
aWNlUm9sZUNoYW5nZWQgPSAxMDgsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfV2F0Y2hk
b2dXYWtlVXBSZXF1ZXN0ZWQgPSAxMDksCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTGVu
c0Rpc3RvcnRpb25DaGFuZ2VkID0gMTEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1By
b3BlcnR5Q2hhbmdlZCA9IDExMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25Q
cmVzcyA9IDIwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9CdXR0b25VbnByZXNzID0g
MjAxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblRvdWNoID0gMjAyLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0J1dHRvblVudG91Y2ggPSAyMDMsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfTW91c2VNb3ZlID0gMzAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X01vdXNlQnV0dG9uRG93biA9IDMwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9Nb3VzZUJ1dHRvblVwID0gMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ZvY3Vz
RW50ZXIgPSAzMDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRm9jdXNMZWF2ZSA9IDMw
NCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JvbGwgPSAzMDUsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfVG91Y2hQYWRNb3ZlID0gMzA2LAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlGb2N1c0NoYW5nZWQgPSAzMDcsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfSW5wdXRGb2N1c0NhcHR1cmVkID0gNDAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X0lucHV0Rm9jdXNSZWxlYXNlZCA9IDQwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9TY2VuZUZvY3VzTG9zdCA9IDQwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9T
Y2VuZUZvY3VzR2FpbmVkID0gNDAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjZW5l
QXBwbGljYXRpb25DaGFuZ2VkID0gNDA0LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Nj
ZW5lRm9jdXNDaGFuZ2VkID0gNDA1LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0lucHV0
Rm9jdXNDaGFuZ2VkID0gNDA2LAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NjZW5lQXBw
bGljYXRpb25TZWNvbmRhcnlSZW5kZXJpbmdTdGFydGVkID0gNDA3LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgPSA0MTAsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfU2hvd1JlbmRlck1vZGVscyA9IDQxMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9PdmVybGF5U2hvd24gPSA1MDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfT3Zl
cmxheUhpZGRlbiA9IDUwMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRB
Y3RpdmF0ZWQgPSA1MDIsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkRGVh
Y3RpdmF0ZWQgPSA1MDMsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkVGh1
bWJTZWxlY3RlZCA9IDUwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRS
ZXF1ZXN0ZWQgPSA1MDUsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVzZXREYXNoYm9h
cmQgPSA1MDYsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUmVuZGVyVG9hc3QgPSA1MDcs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfSW1hZ2VMb2FkZWQgPSA1MDgsCisgICAgICAg
RVZSRXZlbnRUeXBlX1ZSRXZlbnRfU2hvd0tleWJvYXJkID0gNTA5LAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0hpZGVLZXlib2FyZCA9IDUxMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJF
dmVudF9PdmVybGF5R2FtZXBhZEZvY3VzR2FpbmVkID0gNTExLAorICAgICAgIEVWUkV2ZW50VHlw
ZV9WUkV2ZW50X092ZXJsYXlHYW1lcGFkRm9jdXNMb3N0ID0gNTEyLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X092ZXJsYXlTaGFyZWRUZXh0dXJlQ2hhbmdlZCA9IDUxMywKKyAgICAgICBF
VlJFdmVudFR5cGVfVlJFdmVudF9EYXNoYm9hcmRHdWlkZUJ1dHRvbkRvd24gPSA1MTQsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfRGFzaGJvYXJkR3VpZGVCdXR0b25VcCA9IDUxNSwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TY3JlZW5zaG90VHJpZ2dlcmVkID0gNTE2LAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0ltYWdlRmFpbGVkID0gNTE3LAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X0Rhc2hib2FyZE92ZXJsYXlDcmVhdGVkID0gNTE4LAorICAgICAgIEVW
UkV2ZW50VHlwZV9WUkV2ZW50X1JlcXVlc3RTY3JlZW5zaG90ID0gNTIwLAorICAgICAgIEVWUkV2
ZW50VHlwZV9WUkV2ZW50X1NjcmVlbnNob3RUYWtlbiA9IDUyMSwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9TY3JlZW5zaG90RmFpbGVkID0gNTIyLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1N1Ym1pdFNjcmVlbnNob3RUb0Rhc2hib2FyZCA9IDUyMywKKyAgICAgICBFVlJFdmVu
dFR5cGVfVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCA9IDUyNCwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9QcmltYXJ5RGFzaGJvYXJkRGV2aWNlQ2hhbmdlZCA9IDUy
NSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fU2hvd24gPSA2MDAs
CisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfTm90aWZpY2F0aW9uX0hpZGRlbiA9IDYwMSwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlv
biA9IDYwMiwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9Ob3RpZmljYXRpb25fRGVzdHJv
eWVkID0gNjAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1F1aXQgPSA3MDAsCisgICAg
ICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfUHJvY2Vzc1F1aXQgPSA3MDEsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfUXVpdEFib3J0ZWRfVXNlclByb21wdCA9IDcwMiwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkID0gNzAzLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0RyaXZlclJlcXVlc3RlZFF1aXQgPSA3MDQsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfQ2hhcGVyb25lRGF0YUhhc0NoYW5nZWQgPSA4MDAsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfQ2hhcGVyb25lVW5pdmVyc2VIYXNDaGFuZ2VkID0gODAxLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NoYXBlcm9uZVRlbXBEYXRhSGFzQ2hhbmdlZCA9IDgwMiwK
KyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DaGFwZXJvbmVTZXR0aW5nc0hhdmVDaGFuZ2Vk
ID0gODAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXQg
PSA4MDQsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfQXVkaW9TZXR0aW5nc0hhdmVDaGFu
Z2VkID0gODIwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0JhY2tncm91bmRTZXR0aW5n
SGFzQ2hhbmdlZCA9IDg1MCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9DYW1lcmFTZXR0
aW5nc0hhdmVDaGFuZ2VkID0gODUxLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1JlcHJv
amVjdGlvblNldHRpbmdIYXNDaGFuZ2VkID0gODUyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgPSA4NTMsCisgICAgICAgRVZSRXZlbnRU
eXBlX1ZSRXZlbnRfRW52aXJvbm1lbnRTZXR0aW5nc0hhdmVDaGFuZ2VkID0gODU0LAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X1Bvd2VyU2V0dGluZ3NIYXZlQ2hhbmdlZCA9IDg1NSwKKyAg
ICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9TdGF0dXNVcGRhdGUgPSA5MDAsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfTUNJbWFnZVVwZGF0ZWQgPSAxMDAwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0Zpcm13YXJlVXBkYXRlU3RhcnRlZCA9IDExMDAsCisgICAgICAgRVZSRXZl
bnRUeXBlX1ZSRXZlbnRfRmlybXdhcmVVcGRhdGVGaW5pc2hlZCA9IDExMDEsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfS2V5Ym9hcmRDbG9zZWQgPSAxMjAwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0tleWJvYXJkQ2hhcklucHV0ID0gMTIwMSwKKyAgICAgICBFVlJFdmVudFR5
cGVfVlJFdmVudF9LZXlib2FyZERvbmUgPSAxMjAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgPSAxMzAwLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgPSAxMzAxLAorICAgICAg
IEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQg
PSAxMzAyLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uTGlzdFVwZGF0
ZWQgPSAxMzAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0FwcGxpY2F0aW9uTWltZVR5
cGVMb2FkID0gMTMwNCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9BcHBsaWNhdGlvblRy
YW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisgICAgICAgRVZSRXZlbnRUeXBl
X1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dTaG93biA9IDE0MDAsCisgICAgICAgRVZS
RXZlbnRUeXBlX1ZSRXZlbnRfQ29tcG9zaXRvcl9NaXJyb3JXaW5kb3dIaWRkZW4gPSAxNDAxLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVyb25lQm91bmRzU2hv
d24gPSAxNDEwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X0NvbXBvc2l0b3JfQ2hhcGVy
b25lQm91bmRzSGlkZGVuID0gMTQxMSwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVudF9UcmFj
a2VkQ2FtZXJhX1N0YXJ0VmlkZW9TdHJlYW0gPSAxNTAwLAorICAgICAgIEVWUkV2ZW50VHlwZV9W
UkV2ZW50X1RyYWNrZWRDYW1lcmFfU3RvcFZpZGVvU3RyZWFtID0gMTUwMSwKKyAgICAgICBFVlJF
dmVudFR5cGVfVlJFdmVudF9UcmFja2VkQ2FtZXJhX1BhdXNlVmlkZW9TdHJlYW0gPSAxNTAyLAor
ICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfUmVzdW1lVmlkZW9TdHJl
YW0gPSAxNTAzLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1RyYWNrZWRDYW1lcmFfRWRp
dGluZ1N1cmZhY2UgPSAxNTUwLAorICAgICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1BlcmZvcm1h
bmNlVGVzdF9FbmFibGVDYXB0dXJlID0gMTYwMCwKKyAgICAgICBFVlJFdmVudFR5cGVfVlJFdmVu
dF9QZXJmb3JtYW5jZVRlc3RfRGlzYWJsZUNhcHR1cmUgPSAxNjAxLAorICAgICAgIEVWUkV2ZW50
VHlwZV9WUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF9GaWRlbGl0eUxldmVsID0gMTYwMiwKKyAgICAg
ICBFVlJFdmVudFR5cGVfVlJFdmVudF9NZXNzYWdlT3ZlcmxheV9DbG9zZWQgPSAxNjUwLAorICAg
ICAgIEVWUkV2ZW50VHlwZV9WUkV2ZW50X1ZlbmRvclNwZWNpZmljX1Jlc2VydmVkX1N0YXJ0ID0g
MTAwMDAsCisgICAgICAgRVZSRXZlbnRUeXBlX1ZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVzZXJ2
ZWRfRW5kID0gMTk5OTksCit9IEVWUkV2ZW50VHlwZTsKKwordHlwZWRlZiBlbnVtIEVEZXZpY2VB
Y3Rpdml0eUxldmVsCit7CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0
aXZpdHlMZXZlbF9Vbmtub3duID0gLTEsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19F
RGV2aWNlQWN0aXZpdHlMZXZlbF9JZGxlID0gMCwKKyAgICAgICBFRGV2aWNlQWN0aXZpdHlMZXZl
bF9rX0VEZXZpY2VBY3Rpdml0eUxldmVsX1VzZXJJbnRlcmFjdGlvbiA9IDEsCisgICAgICAgRURl
dmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50ZXJhY3Rpb25f
VGltZW91dCA9IDIsCisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWxfa19FRGV2aWNlQWN0aXZp
dHlMZXZlbF9TdGFuZGJ5ID0gMywKK30gRURldmljZUFjdGl2aXR5TGV2ZWw7CisKK3R5cGVkZWYg
ZW51bSBFVlJCdXR0b25JZAoreworICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9TeXN0ZW0g
PSAwLAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgPSAxLAor
ICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9HcmlwID0gMiwKKyAgICAgICBFVlJCdXR0b25J
ZF9rX0VCdXR0b25fRFBhZF9MZWZ0ID0gMywKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
RFBhZF9VcCA9IDQsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0RQYWRfUmlnaHQgPSA1
LAorICAgICAgIEVWUkJ1dHRvbklkX2tfRUJ1dHRvbl9EUGFkX0Rvd24gPSA2LAorICAgICAgIEVW
UkJ1dHRvbklkX2tfRUJ1dHRvbl9BID0gNywKKyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25f
UHJveGltaXR5U2Vuc29yID0gMzEsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMw
ID0gMzIsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMxID0gMzMsCisgICAgICAg
RVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXMyID0gMzQsCisgICAgICAgRVZSQnV0dG9uSWRfa19F
QnV0dG9uX0F4aXMzID0gMzUsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0F4aXM0ID0g
MzYsCisgICAgICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgPSAzMiwK
KyAgICAgICBFVlJCdXR0b25JZF9rX0VCdXR0b25fU3RlYW1WUl9UcmlnZ2VyID0gMzMsCisgICAg
ICAgRVZSQnV0dG9uSWRfa19FQnV0dG9uX0Rhc2hib2FyZF9CYWNrID0gMiwKKyAgICAgICBFVlJC
dXR0b25JZF9rX0VCdXR0b25fTWF4ID0gNjQsCit9IEVWUkJ1dHRvbklkOworCit0eXBlZGVmIGVu
dW0gRVZSTW91c2VCdXR0b24KK3sKKyAgICAgICBFVlJNb3VzZUJ1dHRvbl9WUk1vdXNlQnV0dG9u
X0xlZnQgPSAxLAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25fUmlnaHQgPSAy
LAorICAgICAgIEVWUk1vdXNlQnV0dG9uX1ZSTW91c2VCdXR0b25fTWlkZGxlID0gNCwKK30gRVZS
TW91c2VCdXR0b247CisKK3R5cGVkZWYgZW51bSBFSGlkZGVuQXJlYU1lc2hUeXBlCit7CisgICAg
ICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9TdGFuZGFyZCA9IDAsCisg
ICAgICAgRUhpZGRlbkFyZWFNZXNoVHlwZV9rX2VIaWRkZW5BcmVhTWVzaF9JbnZlcnNlID0gMSwK
KyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX0xpbmVMb29wID0g
MiwKKyAgICAgICBFSGlkZGVuQXJlYU1lc2hUeXBlX2tfZUhpZGRlbkFyZWFNZXNoX01heCA9IDMs
Cit9IEVIaWRkZW5BcmVhTWVzaFR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJDb250cm9sbGVyQXhp
c1R5cGUKK3sKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxlckF4aXNf
Tm9uZSA9IDAsCisgICAgICAgRVZSQ29udHJvbGxlckF4aXNUeXBlX2tfZUNvbnRyb2xsZXJBeGlz
X1RyYWNrUGFkID0gMSwKKyAgICAgICBFVlJDb250cm9sbGVyQXhpc1R5cGVfa19lQ29udHJvbGxl
ckF4aXNfSm95c3RpY2sgPSAyLAorICAgICAgIEVWUkNvbnRyb2xsZXJBeGlzVHlwZV9rX2VDb250
cm9sbGVyQXhpc19UcmlnZ2VyID0gMywKK30gRVZSQ29udHJvbGxlckF4aXNUeXBlOworCit0eXBl
ZGVmIGVudW0gRVZSQ29udHJvbGxlckV2ZW50T3V0cHV0VHlwZQoreworICAgICAgIEVWUkNvbnRy
b2xsZXJFdmVudE91dHB1dFR5cGVfQ29udHJvbGxlckV2ZW50T3V0cHV0X09TRXZlbnRzID0gMCwK
KyAgICAgICBFVlJDb250cm9sbGVyRXZlbnRPdXRwdXRUeXBlX0NvbnRyb2xsZXJFdmVudE91dHB1
dF9WUkV2ZW50cyA9IDEsCit9IEVWUkNvbnRyb2xsZXJFdmVudE91dHB1dFR5cGU7CisKK3R5cGVk
ZWYgZW51bSBFQ29sbGlzaW9uQm91bmRzU3R5bGUKK3sKKyAgICAgICBFQ29sbGlzaW9uQm91bmRz
U3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgRUNvbGxp
c2lvbkJvdW5kc1N0eWxlX0NPTExJU0lPTl9CT1VORFNfU1RZTEVfSU5URVJNRURJQVRFID0gMSwK
KyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19TVFlMRV9TUVVB
UkVTID0gMiwKKyAgICAgICBFQ29sbGlzaW9uQm91bmRzU3R5bGVfQ09MTElTSU9OX0JPVU5EU19T
VFlMRV9BRFZBTkNFRCA9IDMsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NPTExJU0lP
Tl9CT1VORFNfU1RZTEVfTk9ORSA9IDQsCisgICAgICAgRUNvbGxpc2lvbkJvdW5kc1N0eWxlX0NP
TExJU0lPTl9CT1VORFNfU1RZTEVfQ09VTlQgPSA1LAorfSBFQ29sbGlzaW9uQm91bmRzU3R5bGU7
CisKK3R5cGVkZWYgZW51bSBFVlJPdmVybGF5RXJyb3IKK3sKKyAgICAgICBFVlJPdmVybGF5RXJy
b3JfVlJPdmVybGF5RXJyb3JfTm9uZSA9IDAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3Zl
cmxheUVycm9yX1Vua25vd25PdmVybGF5ID0gMTAsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZS
T3ZlcmxheUVycm9yX0ludmFsaWRIYW5kbGUgPSAxMSwKKyAgICAgICBFVlJPdmVybGF5RXJyb3Jf
VlJPdmVybGF5RXJyb3JfUGVybWlzc2lvbkRlbmllZCA9IDEyLAorICAgICAgIEVWUk92ZXJsYXlF
cnJvcl9WUk92ZXJsYXlFcnJvcl9PdmVybGF5TGltaXRFeGNlZWRlZCA9IDEzLAorICAgICAgIEVW
Uk92ZXJsYXlFcnJvcl9WUk92ZXJsYXlFcnJvcl9Xcm9uZ1Zpc2liaWxpdHlUeXBlID0gMTQsCisg
ICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0tleVRvb0xvbmcgPSAxNSwKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfTmFtZVRvb0xvbmcgPSAxNiwKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfS2V5SW5Vc2UgPSAxNywKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlID0gMTgs
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2
aWNlID0gMTksCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0ludmFsaWRQ
YXJhbWV0ZXIgPSAyMCwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVGh1
bWJuYWlsQ2FudEJlRGVzdHJveWVkID0gMjEsCisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3Zl
cmxheUVycm9yX0FycmF5VG9vU21hbGwgPSAyMiwKKyAgICAgICBFVlJPdmVybGF5RXJyb3JfVlJP
dmVybGF5RXJyb3JfUmVxdWVzdEZhaWxlZCA9IDIzLAorICAgICAgIEVWUk92ZXJsYXlFcnJvcl9W
Uk92ZXJsYXlFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDI0LAorICAgICAgIEVWUk92ZXJsYXlFcnJv
cl9WUk92ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlID0gMjUsCisgICAgICAgRVZST3Zlcmxh
eUVycm9yX1ZST3ZlcmxheUVycm9yX0tleWJvYXJkQWxyZWFkeUluVXNlID0gMjYsCisgICAgICAg
RVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX05vTmVpZ2hib3IgPSAyNywKKyAgICAgICBF
VlJPdmVybGF5RXJyb3JfVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVzID0gMjks
CisgICAgICAgRVZST3ZlcmxheUVycm9yX1ZST3ZlcmxheUVycm9yX0JhZE1hc2tQcmltaXRpdmUg
PSAzMCwKK30gRVZST3ZlcmxheUVycm9yOworCit0eXBlZGVmIGVudW0gRVZSQXBwbGljYXRpb25U
eXBlCit7CisgICAgICAgRVZSQXBwbGljYXRpb25UeXBlX1ZSQXBwbGljYXRpb25fT3RoZXIgPSAw
LAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1NjZW5lID0gMSwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9PdmVybGF5ID0gMiwKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywKKyAgICAg
ICBFVlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwKKyAgICAgICBF
VlJBcHBsaWNhdGlvblR5cGVfVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LAorICAgICAgIEVW
UkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX1N0ZWFtV2F0Y2hkb2cgPSA2LAorICAgICAg
IEVWUkFwcGxpY2F0aW9uVHlwZV9WUkFwcGxpY2F0aW9uX01heCA9IDcsCit9IEVWUkFwcGxpY2F0
aW9uVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUkZpcm13YXJlRXJyb3IKK3sKKyAgICAgICBFVlJG
aXJtd2FyZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBFVlJGaXJtd2Fy
ZUVycm9yX1ZSRmlybXdhcmVFcnJvcl9TdWNjZXNzID0gMSwKKyAgICAgICBFVlJGaXJtd2FyZUVy
cm9yX1ZSRmlybXdhcmVFcnJvcl9GYWlsID0gMiwKK30gRVZSRmlybXdhcmVFcnJvcjsKKwordHlw
ZWRlZiBlbnVtIEVWUk5vdGlmaWNhdGlvbkVycm9yCit7CisgICAgICAgRVZSTm90aWZpY2F0aW9u
RXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9PSyA9IDAsCisgICAgICAgRVZSTm90aWZpY2F0aW9u
RXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9JbnZhbGlkTm90aWZpY2F0aW9uSWQgPSAxMDAsCisg
ICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmljYXRpb25FcnJvcl9Ob3RpZmljYXRp
b25RdWV1ZUZ1bGwgPSAxMDEsCisgICAgICAgRVZSTm90aWZpY2F0aW9uRXJyb3JfVlJOb3RpZmlj
YXRpb25FcnJvcl9JbnZhbGlkT3ZlcmxheUhhbmRsZSA9IDEwMiwKKyAgICAgICBFVlJOb3RpZmlj
YXRpb25FcnJvcl9WUk5vdGlmaWNhdGlvbkVycm9yX1N5c3RlbVdpdGhVc2VyVmFsdWVBbHJlYWR5
RXhpc3RzID0gMTAzLAorfSBFVlJOb3RpZmljYXRpb25FcnJvcjsKKwordHlwZWRlZiBlbnVtIEVW
UkluaXRFcnJvcgoreworICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ob25lID0gMCwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90Rm91bmQgPSAxMDAsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCA9
IDEwMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkNsaWVudERMTE5v
dEZvdW5kID0gMTAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0ZpbGVO
b3RGb3VuZCA9IDEwMywKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9GYWN0
b3J5Tm90Rm91bmQgPSAxMDQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
SW50ZXJmYWNlTm90Rm91bmQgPSAxMDUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0luaXRfSW52YWxpZEludGVyZmFjZSA9IDEwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9IbWROb3RGb3VuZCA9IDEwOCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob3RJbml0aWFsaXplZCA9IDEwOSwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCA9IDExMCwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9Ob0NvbmZpZ1BhdGggPSAxMTEs
CisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfTm9Mb2dQYXRoID0gMTEyLAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRh
YmxlID0gMTEzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0FwcEluZm9J
bml0RmFpbGVkID0gMTE0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1Jl
dHJ5ID0gMTE1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0luaXRDYW5j
ZWxlZEJ5VXNlciA9IDExNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9B
bm90aGVyQXBwTGF1bmNoaW5nID0gMTE3LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJv
cl9Jbml0X1NldHRpbmdzSW5pdEZhaWxlZCA9IDExOCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJ
bml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gPSAxMTksCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0luaXRfVG9vTWFueU9iamVjdHMgPSAxMjAsCisgICAgICAgRVZSSW5pdEVycm9y
X1ZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JCYWNrZ3JvdW5kQXBwID0gMTIxLAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9y
ID0gMTIyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X05vdEF2YWlsYWJs
ZVRvVXRpbGl0eUFwcHMgPSAxMjMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lu
aXRfSW50ZXJuYWwgPSAxMjQsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRf
SG1kRHJpdmVySWRJc05vbmUgPSAxMjUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9y
X0luaXRfSG1kTm90Rm91bmRQcmVzZW5jZUZhaWxlZCA9IDEyNiwKKyAgICAgICBFVlJJbml0RXJy
b3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JOb3RGb3VuZCA9IDEyNywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0b3JTdGFydHVwRmFpbGVkID0gMTI4LAor
ICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RT
dXBwb3J0ZWQgPSAxMjksCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0luaXRfSW52
YWxpZEFwcGxpY2F0aW9uVHlwZSA9IDEzMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfSW5pdF9Ob3RBdmFpbGFibGVUb1dhdGNoZG9nQXBwcyA9IDEzMSwKKyAgICAgICBFVlJJbml0
RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0aW5ncyA9IDEzMiwK
KyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5k
ID0gMTMzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJk
U3RhcnR1cEZhaWxlZCA9IDEzNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0ZhaWxlZCA9IDIwMCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVy
X1Vua25vd24gPSAyMDEsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0RyaXZlcl9I
bWRVbmtub3duID0gMjAyLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJf
Tm90TG9hZGVkID0gMjAzLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJf
UnVudGltZU91dE9mRGF0ZSA9IDIwNCwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
RHJpdmVyX0htZEluVXNlID0gMjA1LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9E
cml2ZXJfTm90Q2FsaWJyYXRlZCA9IDIwNiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJy
b3JfRHJpdmVyX0NhbGlicmF0aW9uSW52YWxpZCA9IDIwNywKKyAgICAgICBFVlJJbml0RXJyb3Jf
VlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZCA9IDIwOCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfRHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3du
ID0gMjA5LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Ecml2ZXJfSG1kRHJpdmVy
SWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfRHJp
dmVyX0htZERpc3BsYXlNaXJyb3JlZCA9IDIxMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0
RXJyb3JfSVBDX1NlcnZlckluaXRGYWlsZWQgPSAzMDAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0lQQ19Db25uZWN0RmFpbGVkID0gMzAxLAorICAgICAgIEVWUkluaXRFcnJvcl9W
UkluaXRFcnJvcl9JUENfU2hhcmVkU3RhdGVJbml0RmFpbGVkID0gMzAyLAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQgPSAzMDMsCisgICAg
ICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgPSAzMDQsCisg
ICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19GYWlsZWQgPSAzMDUsCisgICAgICAg
RVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9yQ29ubmVjdEZhaWxlZCA9IDMw
NiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbnZhbGlk
Q29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9J
UENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0cyA9IDMwOCwKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgPSA0MDAsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJlcXVpcmVkID0g
NDAxLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9Db21wb3NpdG9yX0Zpcm13YXJl
UmVxdWlyZXNVcGRhdGUgPSA0MDIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX0Nv
bXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgPSA0MDMsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0RmFpbGVkID0gNDA0LAorICAgICAg
IEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RU
b09jdWx1c1J1bnRpbWUgPSAxMDAwLAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9W
ZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRldmljZSA9IDExMDEsCisgICAgICAgRVZS
SW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVx
dWVzdENvbmZpZ1N0YXJ0ID0gMTEwMiwKKyAgICAgICBFVlJJbml0RXJyb3JfVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWcgPSAxMTAzLAorICAgICAgIEVW
UkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdUb29C
aWcgPSAxMTA0LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Db25maWdUb29TbWFsbCA9IDExMDUsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWIgPSAxMTA2
LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9DYW50UmVhZEZpcm13YXJlVmVyc2lvbiA9IDExMDcsCisgICAgICAgRVZSSW5pdEVycm9yX1ZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJEYXRhU3Rh
cnQgPSAxMTA4LAorICAgICAgIEVWUkluaXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRhU3RhcnQgPSAxMTA5LAorICAgICAgIEVWUklu
aXRFcnJvcl9WUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVz
ZXJEYXRhTmV4dCA9IDExMTAsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRv
clNwZWNpZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlID0gMTExMSwKKyAgICAgICBF
VlJJbml0RXJyb3JfVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFF
cnJvciA9IDExMTIsCisgICAgICAgRVZSSW5pdEVycm9yX1ZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX0NvbmZpZ0ZhaWxlZFNhbml0eUNoZWNrID0gMTExMywKKyAgICAgICBFVlJJ
bml0RXJyb3JfVlJJbml0RXJyb3JfU3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIw
MDAsCit9IEVWUkluaXRFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUlNjcmVlbnNob3RUeXBlCit7
CisgICAgICAgRVZSU2NyZWVuc2hvdFR5cGVfVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwKKyAg
ICAgICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLAorICAgICAg
IEVWUlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvID0gMiwKKyAgICAgICBF
VlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX0N1YmVtYXAgPSAzLAorICAgICAgIEVW
UlNjcmVlbnNob3RUeXBlX1ZSU2NyZWVuc2hvdFR5cGVfTW9ub1Bhbm9yYW1hID0gNCwKKyAgICAg
ICBFVlJTY3JlZW5zaG90VHlwZV9WUlNjcmVlbnNob3RUeXBlX1N0ZXJlb1Bhbm9yYW1hID0gNSwK
K30gRVZSU2NyZWVuc2hvdFR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJTY3JlZW5zaG90UHJvcGVy
dHlGaWxlbmFtZXMKK3sKKyAgICAgICBFVlJTY3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfVlJT
Y3JlZW5zaG90UHJvcGVydHlGaWxlbmFtZXNfUHJldmlldyA9IDAsCisgICAgICAgRVZSU2NyZWVu
c2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzX1ZSID0g
MSwKK30gRVZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVzOworCit0eXBlZGVmIGVudW0gRVZS
VHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJh
Y2tlZENhbWVyYUVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9W
UlRyYWNrZWRDYW1lcmFFcnJvcl9PcGVyYXRpb25GYWlsZWQgPSAxMDAsCisgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgPSAxMDEs
CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFs
aWRGcmFtZUhlYWRlclZlcnNpb24gPSAxMDIsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9y
X1ZSVHJhY2tlZENhbWVyYUVycm9yX091dE9mSGFuZGxlcyA9IDEwMywKKyAgICAgICBFVlJUcmFj
a2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSVBDRmFpbHVyZSA9IDEwNCwKKyAg
ICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfTm90U3VwcG9y
dGVkRm9yVGhpc0RldmljZSA9IDEwNSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJU
cmFja2VkQ2FtZXJhRXJyb3JfU2hhcmVkTWVtb3J5RmFpbHVyZSA9IDEwNiwKKyAgICAgICBFVlJU
cmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfRnJhbWVCdWZmZXJpbmdGYWls
dXJlID0gMTA3LAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFF
cnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgPSAxMDgsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVy
cm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRHTFRleHR1cmVJZCA9IDEwOSwKKyAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3JfVlJUcmFja2VkQ2FtZXJhRXJyb3JfSW52YWxpZFNoYXJl
ZFRleHR1cmVIYW5kbGUgPSAxMTAsCisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yX1ZSVHJh
Y2tlZENhbWVyYUVycm9yX0ZhaWxlZFRvR2V0R0xUZXh0dXJlSWQgPSAxMTEsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX1NoYXJlZFRleHR1cmVGYWls
dXJlID0gMTEyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvcl9WUlRyYWNrZWRDYW1lcmFF
cnJvcl9Ob0ZyYW1lQXZhaWxhYmxlID0gMTEzLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJv
cl9WUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkQXJndW1lbnQgPSAxMTQsCisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yX1ZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRGcmFtZUJ1ZmZl
clNpemUgPSAxMTUsCit9IEVWUlRyYWNrZWRDYW1lcmFFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVW
UlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUKK3sKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlX1ZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9EaXN0b3J0ZWQgPSAwLAorICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFGcmFtZVR5cGVfVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1VuZGlzdG9ydGVk
ID0gMSwKKyAgICAgICBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX1ZSVHJhY2tlZENhbWVyYUZy
YW1lVHlwZV9NYXhpbXVtVW5kaXN0b3J0ZWQgPSAyLAorICAgICAgIEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGVfTUFYX0NBTUVSQV9GUkFNRV9UWVBFUyA9IDMsCit9IEVWUlRyYWNrZWRDYW1lcmFG
cmFtZVR5cGU7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvbkVycm9yCit7CisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfTm9uZSA9IDAsCisgICAgICAg
RVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBwS2V5QWxyZWFkeUV4aXN0
cyA9IDEwMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9O
b01hbmlmZXN0ID0gMTAxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlv
bkVycm9yX05vQXBwbGljYXRpb24gPSAxMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9W
UkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEluZGV4ID0gMTAzLAorICAgICAgIEVWUkFwcGxpY2F0
aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX1Vua25vd25BcHBsaWNhdGlvbiA9IDEwNCwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9JUENGYWlsZWQgPSAx
MDUsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfQXBwbGlj
YXRpb25BbHJlYWR5UnVubmluZyA9IDEwNiwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZS
QXBwbGljYXRpb25FcnJvcl9JbnZhbGlkTWFuaWZlc3QgPSAxMDcsCisgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3JfSW52YWxpZEFwcGxpY2F0aW9uID0gMTA4LAor
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX0xhdW5jaEZhaWxl
ZCA9IDEwOSwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9B
cHBsaWNhdGlvbkFscmVhZHlTdGFydGluZyA9IDExMCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9MYXVuY2hJblByb2dyZXNzID0gMTExLAorICAgICAgIEVW
UkFwcGxpY2F0aW9uRXJyb3JfVlJBcHBsaWNhdGlvbkVycm9yX09sZEFwcGxpY2F0aW9uUXVpdHRp
bmcgPSAxMTIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJyb3Jf
VHJhbnNpdGlvbkFib3J0ZWQgPSAxMTMsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFw
cGxpY2F0aW9uRXJyb3JfSXNUZW1wbGF0ZSA9IDExNCwKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVy
cm9yX1ZSQXBwbGljYXRpb25FcnJvcl9CdWZmZXJUb29TbWFsbCA9IDIwMCwKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Qcm9wZXJ0eU5vdFNldCA9IDIwMSwK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yX1ZSQXBwbGljYXRpb25FcnJvcl9Vbmtub3duUHJv
cGVydHkgPSAyMDIsCisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvcl9WUkFwcGxpY2F0aW9uRXJy
b3JfSW52YWxpZFBhcmFtZXRlciA9IDIwMywKK30gRVZSQXBwbGljYXRpb25FcnJvcjsKKwordHlw
ZWRlZiBlbnVtIEVWUkFwcGxpY2F0aW9uUHJvcGVydHkKK3sKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OYW1lX1N0cmluZyA9IDAsCisgICAgICAg
RVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfTGF1bmNoVHlwZV9T
dHJpbmcgPSAxMSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Q
cm9wZXJ0eV9Xb3JraW5nRGlyZWN0b3J5X1N0cmluZyA9IDEyLAorICAgICAgIEVWUkFwcGxpY2F0
aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlvblByb3BlcnR5X0JpbmFyeVBhdGhfU3RyaW5nID0gMTMs
CisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfQXJn
dW1lbnRzX1N0cmluZyA9IDE0LAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBs
aWNhdGlvblByb3BlcnR5X1VSTF9TdHJpbmcgPSAxNSwKKyAgICAgICBFVlJBcHBsaWNhdGlvblBy
b3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9EZXNjcmlwdGlvbl9TdHJpbmcgPSA1MCwKKyAg
ICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9OZXdzVVJM
X1N0cmluZyA9IDUxLAorICAgICAgIEVWUkFwcGxpY2F0aW9uUHJvcGVydHlfVlJBcHBsaWNhdGlv
blByb3BlcnR5X0ltYWdlUGF0aF9TdHJpbmcgPSA1MiwKKyAgICAgICBFVlJBcHBsaWNhdGlvblBy
b3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Tb3VyY2VfU3RyaW5nID0gNTMsCisgICAgICAg
RVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNEYXNoYm9hcmRP
dmVybGF5X0Jvb2wgPSA2MCwKKyAgICAgICBFVlJBcHBsaWNhdGlvblByb3BlcnR5X1ZSQXBwbGlj
YXRpb25Qcm9wZXJ0eV9Jc1RlbXBsYXRlX0Jvb2wgPSA2MSwKKyAgICAgICBFVlJBcHBsaWNhdGlv
blByb3BlcnR5X1ZSQXBwbGljYXRpb25Qcm9wZXJ0eV9Jc0luc3RhbmNlZF9Cb29sID0gNjIsCisg
ICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0aW9uUHJvcGVydHlfSXNJbnRl
cm5hbF9Cb29sID0gNjMsCisgICAgICAgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eV9WUkFwcGxpY2F0
aW9uUHJvcGVydHlfTGFzdExhdW5jaFRpbWVfVWludDY0ID0gNzAsCit9IEVWUkFwcGxpY2F0aW9u
UHJvcGVydHk7CisKK3R5cGVkZWYgZW51bSBFVlJBcHBsaWNhdGlvblRyYW5zaXRpb25TdGF0ZQor
eworICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZSQXBwbGljYXRpb25UcmFu
c2l0aW9uX05vbmUgPSAwLAorICAgICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlX1ZS
QXBwbGljYXRpb25UcmFuc2l0aW9uX09sZEFwcFF1aXRTZW50ID0gMTAsCisgICAgICAgRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fV2FpdGluZ0Zv
ckV4dGVybmFsTGF1bmNoID0gMTEsCisgICAgICAgRVZSQXBwbGljYXRpb25UcmFuc2l0aW9uU3Rh
dGVfVlJBcHBsaWNhdGlvblRyYW5zaXRpb25fTmV3QXBwTGF1bmNoZWQgPSAyMCwKK30gRVZSQXBw
bGljYXRpb25UcmFuc2l0aW9uU3RhdGU7CisKK3R5cGVkZWYgZW51bSBDaGFwZXJvbmVDYWxpYnJh
dGlvblN0YXRlCit7CisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9PSyA9IDEsCisg
ICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9XYXJuaW5nID0gMTAwLAorICAgICAgIENo
YXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2FybmluZ19CYXNlU3RhdGlvbk1heUhhdmVNb3ZlZCA9
IDEwMSwKKyAgICAgICBDaGFwZXJvbmVDYWxpYnJhdGlvblN0YXRlX1dhcm5pbmdfQmFzZVN0YXRp
b25SZW1vdmVkID0gMTAyLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfV2Fybmlu
Z19TZWF0ZWRCb3VuZHNJbnZhbGlkID0gMTAzLAorICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9u
U3RhdGVfRXJyb3IgPSAyMDAsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZV9FcnJv
cl9CYXNlU3RhdGlvblVuaW5pdGlhbGl6ZWQgPSAyMDEsCisgICAgICAgQ2hhcGVyb25lQ2FsaWJy
YXRpb25TdGF0ZV9FcnJvcl9CYXNlU3RhdGlvbkNvbmZsaWN0ID0gMjAyLAorICAgICAgIENoYXBl
cm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfUGxheUFyZWFJbnZhbGlkID0gMjAzLAorICAgICAg
IENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGVfRXJyb3JfQ29sbGlzaW9uQm91bmRzSW52YWxpZCA9
IDIwNCwKK30gQ2hhcGVyb25lQ2FsaWJyYXRpb25TdGF0ZTsKKwordHlwZWRlZiBlbnVtIEVDaGFw
ZXJvbmVDb25maWdGaWxlCit7CisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfTGl2ZSA9IDEs
CisgICAgICAgRUNoYXBlcm9uZUNvbmZpZ0ZpbGVfVGVtcCA9IDIsCit9IEVDaGFwZXJvbmVDb25m
aWdGaWxlOworCit0eXBlZGVmIGVudW0gRUNoYXBlcm9uZUltcG9ydEZsYWdzCit7CisgICAgICAg
RUNoYXBlcm9uZUltcG9ydEZsYWdzX0VDaGFwZXJvbmVJbXBvcnRfQm91bmRzT25seSA9IDEsCit9
IEVDaGFwZXJvbmVJbXBvcnRGbGFnczsKKwordHlwZWRlZiBlbnVtIEVWUkNvbXBvc2l0b3JFcnJv
cgoreworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9Ob25lID0g
MCwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfUmVxdWVzdEZh
aWxlZCA9IDEsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29tcG9zaXRvckVycm9yX0lu
Y29tcGF0aWJsZVZlcnNpb24gPSAxMDAsCisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yX1ZSQ29t
cG9zaXRvckVycm9yX0RvTm90SGF2ZUZvY3VzID0gMTAxLAorICAgICAgIEVWUkNvbXBvc2l0b3JF
cnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9JbnZhbGlkVGV4dHVyZSA9IDEwMiwKKyAgICAgICBFVlJD
b21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3JfSXNOb3RTY2VuZUFwcGxpY2F0aW9uID0g
MTAzLAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9UZXh0dXJl
SXNPbldyb25nRGV2aWNlID0gMTA0LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBv
c2l0b3JFcnJvcl9UZXh0dXJlVXNlc1Vuc3VwcG9ydGVkRm9ybWF0ID0gMTA1LAorICAgICAgIEVW
UkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBvc2l0b3JFcnJvcl9TaGFyZWRUZXh0dXJlc05vdFN1cHBv
cnRlZCA9IDEwNiwKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3JfVlJDb21wb3NpdG9yRXJyb3Jf
SW5kZXhPdXRPZlJhbmdlID0gMTA3LAorICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvcl9WUkNvbXBv
c2l0b3JFcnJvcl9BbHJlYWR5U3VibWl0dGVkID0gMTA4LAorfSBFVlJDb21wb3NpdG9yRXJyb3I7
CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlJbnB1dE1ldGhvZAoreworICAgICAgIFZST3Zlcmxh
eUlucHV0TWV0aG9kX05vbmUgPSAwLAorICAgICAgIFZST3ZlcmxheUlucHV0TWV0aG9kX01vdXNl
ID0gMSwKK30gVlJPdmVybGF5SW5wdXRNZXRob2Q7CisKK3R5cGVkZWYgZW51bSBWUk92ZXJsYXlU
cmFuc2Zvcm1UeXBlCit7CisgICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlU
cmFuc2Zvcm1fQWJzb2x1dGUgPSAwLAorICAgICAgIFZST3ZlcmxheVRyYW5zZm9ybVR5cGVfVlJP
dmVybGF5VHJhbnNmb3JtX1RyYWNrZWREZXZpY2VSZWxhdGl2ZSA9IDEsCisgICAgICAgVlJPdmVy
bGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fU3lzdGVtT3ZlcmxheSA9IDIsCisg
ICAgICAgVlJPdmVybGF5VHJhbnNmb3JtVHlwZV9WUk92ZXJsYXlUcmFuc2Zvcm1fVHJhY2tlZENv
bXBvbmVudCA9IDMsCit9IFZST3ZlcmxheVRyYW5zZm9ybVR5cGU7CisKK3R5cGVkZWYgZW51bSBW
Uk92ZXJsYXlGbGFncworeworICAgICAgIFZST3ZlcmxheUZsYWdzX05vbmUgPSAwLAorICAgICAg
IFZST3ZlcmxheUZsYWdzX0N1cnZlZCA9IDEsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfUkdTUzRY
ID0gMiwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19Ob0Rhc2hib2FyZFRhYiA9IDMsCisgICAgICAg
VlJPdmVybGF5RmxhZ3NfQWNjZXB0c0dhbWVwYWRFdmVudHMgPSA0LAorICAgICAgIFZST3Zlcmxh
eUZsYWdzX1Nob3dHYW1lcGFkRm9jdXMgPSA1LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NlbmRW
UlNjcm9sbEV2ZW50cyA9IDYsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2VuZFZSVG91Y2hwYWRF
dmVudHMgPSA3LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Nob3dUb3VjaFBhZFNjcm9sbFdoZWVs
ID0gOCwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19UcmFuc2Zlck93bmVyc2hpcFRvSW50ZXJuYWxQ
cm9jZXNzID0gOSwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19TaWRlQnlTaWRlX1BhcmFsbGVsID0g
MTAsCisgICAgICAgVlJPdmVybGF5RmxhZ3NfU2lkZUJ5U2lkZV9Dcm9zc2VkID0gMTEsCisgICAg
ICAgVlJPdmVybGF5RmxhZ3NfUGFub3JhbWEgPSAxMiwKKyAgICAgICBWUk92ZXJsYXlGbGFnc19T
dGVyZW9QYW5vcmFtYSA9IDEzLAorICAgICAgIFZST3ZlcmxheUZsYWdzX1NvcnRXaXRoTm9uU2Nl
bmVPdmVybGF5cyA9IDE0LAorICAgICAgIFZST3ZlcmxheUZsYWdzX1Zpc2libGVJbkRhc2hib2Fy
ZCA9IDE1LAorfSBWUk92ZXJsYXlGbGFnczsKKwordHlwZWRlZiBlbnVtIFZSTWVzc2FnZU92ZXJs
YXlSZXNwb25zZQoreworICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVz
c18wID0gMCwKKyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQnV0dG9uUHJlc3NfMSA9
IDEsCisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlX0J1dHRvblByZXNzXzIgPSAyLAor
ICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9CdXR0b25QcmVzc18zID0gMywKKyAgICAg
ICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRTeXN0ZW1PdmVybGF5ID0gNCwK
KyAgICAgICBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2VfQ291bGRudEZpbmRPckNyZWF0ZUNsaWVu
dE92ZXJsYXkgPSA1LAorICAgICAgIFZSTWVzc2FnZU92ZXJsYXlSZXNwb25zZV9BcHBsaWNhdGlv
blF1aXQgPSA2LAorfSBWUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7CisKK3R5cGVkZWYgZW51bSBF
R2FtZXBhZFRleHRJbnB1dE1vZGUKK3sKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dE1vZGVfa19F
R2FtZXBhZFRleHRJbnB1dE1vZGVOb3JtYWwgPSAwLAorICAgICAgIEVHYW1lcGFkVGV4dElucHV0
TW9kZV9rX0VHYW1lcGFkVGV4dElucHV0TW9kZVBhc3N3b3JkID0gMSwKKyAgICAgICBFR2FtZXBh
ZFRleHRJbnB1dE1vZGVfa19FR2FtZXBhZFRleHRJbnB1dE1vZGVTdWJtaXQgPSAyLAorfSBFR2Ft
ZXBhZFRleHRJbnB1dE1vZGU7CisKK3R5cGVkZWYgZW51bSBFR2FtZXBhZFRleHRJbnB1dExpbmVN
b2RlCit7CisgICAgICAgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZV9rX0VHYW1lcGFkVGV4dElu
cHV0TGluZU1vZGVTaW5nbGVMaW5lID0gMCwKKyAgICAgICBFR2FtZXBhZFRleHRJbnB1dExpbmVN
b2RlX2tfRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZU11bHRpcGxlTGluZXMgPSAxLAorfSBFR2Ft
ZXBhZFRleHRJbnB1dExpbmVNb2RlOworCit0eXBlZGVmIGVudW0gRU92ZXJsYXlEaXJlY3Rpb24K
K3sKKyAgICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX1VwID0gMCwKKyAg
ICAgICBFT3ZlcmxheURpcmVjdGlvbl9PdmVybGF5RGlyZWN0aW9uX0Rvd24gPSAxLAorICAgICAg
IEVPdmVybGF5RGlyZWN0aW9uX092ZXJsYXlEaXJlY3Rpb25fTGVmdCA9IDIsCisgICAgICAgRU92
ZXJsYXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9SaWdodCA9IDMsCisgICAgICAgRU92ZXJs
YXlEaXJlY3Rpb25fT3ZlcmxheURpcmVjdGlvbl9Db3VudCA9IDQsCit9IEVPdmVybGF5RGlyZWN0
aW9uOworCit0eXBlZGVmIGVudW0gRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVU
eXBlCit7CisgICAgICAgRVZST3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlX092
ZXJsYXlJbnRlcnNlY3Rpb25QcmltaXRpdmVUeXBlX1JlY3RhbmdsZSA9IDAsCisgICAgICAgRVZS
T3ZlcmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVUeXBlX092ZXJsYXlJbnRlcnNlY3Rpb25Q
cmltaXRpdmVUeXBlX0NpcmNsZSA9IDEsCit9IEVWUk92ZXJsYXlJbnRlcnNlY3Rpb25NYXNrUHJp
bWl0aXZlVHlwZTsKKwordHlwZWRlZiBlbnVtIEVWUlJlbmRlck1vZGVsRXJyb3IKK3sKKyAgICAg
ICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ob25lID0gMCwKKyAgICAg
ICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Mb2FkaW5nID0gMTAwLAor
ICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdFN1cHBvcnRl
ZCA9IDIwMCwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9J
bnZhbGlkQXJnID0gMzAwLAorICAgICAgIEVWUlJlbmRlck1vZGVsRXJyb3JfVlJSZW5kZXJNb2Rl
bEVycm9yX0ludmFsaWRNb2RlbCA9IDMwMSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZS
UmVuZGVyTW9kZWxFcnJvcl9Ob1NoYXBlcyA9IDMwMiwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVy
cm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9NdWx0aXBsZVNoYXBlcyA9IDMwMywKKyAgICAgICBFVlJS
ZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9Ub29NYW55VmVydGljZXMgPSAzMDQs
CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvcl9WUlJlbmRlck1vZGVsRXJyb3JfTXVsdGlwbGVU
ZXh0dXJlcyA9IDMwNSwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxF
cnJvcl9CdWZmZXJUb29TbWFsbCA9IDMwNiwKKyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZS
UmVuZGVyTW9kZWxFcnJvcl9Ob3RFbm91Z2hOb3JtYWxzID0gMzA3LAorICAgICAgIEVWUlJlbmRl
ck1vZGVsRXJyb3JfVlJSZW5kZXJNb2RlbEVycm9yX05vdEVub3VnaFRleENvb3JkcyA9IDMwOCwK
KyAgICAgICBFVlJSZW5kZXJNb2RlbEVycm9yX1ZSUmVuZGVyTW9kZWxFcnJvcl9JbnZhbGlkVGV4
dHVyZSA9IDQwMCwKK30gRVZSUmVuZGVyTW9kZWxFcnJvcjsKKwordHlwZWRlZiBlbnVtIEVWUkNv
bXBvbmVudFByb3BlcnR5Cit7CisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJDb21wb25l
bnRQcm9wZXJ0eV9Jc1N0YXRpYyA9IDEsCisgICAgICAgRVZSQ29tcG9uZW50UHJvcGVydHlfVlJD
b21wb25lbnRQcm9wZXJ0eV9Jc1Zpc2libGUgPSAyLAorICAgICAgIEVWUkNvbXBvbmVudFByb3Bl
cnR5X1ZSQ29tcG9uZW50UHJvcGVydHlfSXNUb3VjaGVkID0gNCwKKyAgICAgICBFVlJDb21wb25l
bnRQcm9wZXJ0eV9WUkNvbXBvbmVudFByb3BlcnR5X0lzUHJlc3NlZCA9IDgsCisgICAgICAgRVZS
Q29tcG9uZW50UHJvcGVydHlfVlJDb21wb25lbnRQcm9wZXJ0eV9Jc1Njcm9sbGVkID0gMTYsCit9
IEVWUkNvbXBvbmVudFByb3BlcnR5OworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uVHlw
ZQoreworICAgICAgIEVWUk5vdGlmaWNhdGlvblR5cGVfVHJhbnNpZW50ID0gMCwKKyAgICAgICBF
VlJOb3RpZmljYXRpb25UeXBlX1BlcnNpc3RlbnQgPSAxLAorICAgICAgIEVWUk5vdGlmaWNhdGlv
blR5cGVfVHJhbnNpZW50X1N5c3RlbVdpdGhVc2VyVmFsdWUgPSAyLAorfSBFVlJOb3RpZmljYXRp
b25UeXBlOworCit0eXBlZGVmIGVudW0gRVZSTm90aWZpY2F0aW9uU3R5bGUKK3sKKyAgICAgICBF
VlJOb3RpZmljYXRpb25TdHlsZV9Ob25lID0gMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHls
ZV9BcHBsaWNhdGlvbiA9IDEwMCwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0
X0Rpc2FibGVkID0gMjAwLAorICAgICAgIEVWUk5vdGlmaWNhdGlvblN0eWxlX0NvbnRhY3RfRW5h
YmxlZCA9IDIwMSwKKyAgICAgICBFVlJOb3RpZmljYXRpb25TdHlsZV9Db250YWN0X0FjdGl2ZSA9
IDIwMiwKK30gRVZSTm90aWZpY2F0aW9uU3R5bGU7CisKK3R5cGVkZWYgZW51bSBFVlJTZXR0aW5n
c0Vycm9yCit7CisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfTm9uZSA9
IDAsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfSVBDRmFpbGVkID0g
MSwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9Xcml0ZUZhaWxlZCA9
IDIsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfUmVhZEZhaWxlZCA9
IDMsCisgICAgICAgRVZSU2V0dGluZ3NFcnJvcl9WUlNldHRpbmdzRXJyb3JfSnNvblBhcnNlRmFp
bGVkID0gNCwKKyAgICAgICBFVlJTZXR0aW5nc0Vycm9yX1ZSU2V0dGluZ3NFcnJvcl9VbnNldFNl
dHRpbmdIYXNOb0RlZmF1bHQgPSA1LAorfSBFVlJTZXR0aW5nc0Vycm9yOworCit0eXBlZGVmIGVu
dW0gRVZSU2NyZWVuc2hvdEVycm9yCit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yX1ZSU2Ny
ZWVuc2hvdEVycm9yX05vbmUgPSAwLAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVl
bnNob3RFcnJvcl9SZXF1ZXN0RmFpbGVkID0gMSwKKyAgICAgICBFVlJTY3JlZW5zaG90RXJyb3Jf
VlJTY3JlZW5zaG90RXJyb3JfSW5jb21wYXRpYmxlVmVyc2lvbiA9IDEwMCwKKyAgICAgICBFVlJT
Y3JlZW5zaG90RXJyb3JfVlJTY3JlZW5zaG90RXJyb3JfTm90Rm91bmQgPSAxMDEsCisgICAgICAg
RVZSU2NyZWVuc2hvdEVycm9yX1ZSU2NyZWVuc2hvdEVycm9yX0J1ZmZlclRvb1NtYWxsID0gMTAy
LAorICAgICAgIEVWUlNjcmVlbnNob3RFcnJvcl9WUlNjcmVlbnNob3RFcnJvcl9TY3JlZW5zaG90
QWxyZWFkeUluUHJvZ3Jlc3MgPSAxMDgsCit9IEVWUlNjcmVlbnNob3RFcnJvcjsKKworCisvLyBP
cGVuVlIgdHlwZWRlZnMKKwordHlwZWRlZiB1aW50MzJfdCBUcmFja2VkRGV2aWNlSW5kZXhfdDsK
K3R5cGVkZWYgdWludDMyX3QgVlJOb3RpZmljYXRpb25JZDsKK3R5cGVkZWYgdWludDY0X3QgVlJP
dmVybGF5SGFuZGxlX3Q7CisKK3R5cGVkZWYgdm9pZCAqIGdsU2hhcmVkVGV4dHVyZUhhbmRsZV90
OwordHlwZWRlZiBpbnQzMl90IGdsSW50X3Q7Cit0eXBlZGVmIHVpbnQzMl90IGdsVUludF90Owor
dHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQzMl90
IFRyYWNrZWREZXZpY2VJbmRleF90OwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsKK3R5cGVkZWYg
dWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7Cit0eXBlZGVmIHVpbnQ2NF90IFRyYWNrZWRDYW1l
cmFIYW5kbGVfdDsKK3R5cGVkZWYgdWludDMyX3QgU2NyZWVuc2hvdEhhbmRsZV90OwordHlwZWRl
ZiB1aW50MzJfdCBWUkNvbXBvbmVudFByb3BlcnRpZXM7Cit0eXBlZGVmIGludDMyX3QgVGV4dHVy
ZUlEX3Q7Cit0eXBlZGVmIHVpbnQzMl90IFZSTm90aWZpY2F0aW9uSWQ7Cit0eXBlZGVmIEVWUklu
aXRFcnJvciBIbWRFcnJvcjsKK3R5cGVkZWYgRVZSRXllIEhtZF9FeWU7Cit0eXBlZGVmIEVDb2xv
clNwYWNlIENvbG9yU3BhY2U7Cit0eXBlZGVmIEVUcmFja2luZ1Jlc3VsdCBIbWRUcmFja2luZ1Jl
c3VsdDsKK3R5cGVkZWYgRVRyYWNrZWREZXZpY2VDbGFzcyBUcmFja2VkRGV2aWNlQ2xhc3M7Cit0
eXBlZGVmIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIFRyYWNraW5nVW5pdmVyc2VPcmlnaW47Cit0
eXBlZGVmIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgVHJhY2tlZERldmljZVByb3BlcnR5OwordHlw
ZWRlZiBFVHJhY2tlZFByb3BlcnR5RXJyb3IgVHJhY2tlZFByb3BlcnR5RXJyb3I7Cit0eXBlZGVm
IEVWUlN1Ym1pdEZsYWdzIFZSU3VibWl0RmxhZ3NfdDsKK3R5cGVkZWYgRVZSU3RhdGUgVlJTdGF0
ZV90OwordHlwZWRlZiBFQ29sbGlzaW9uQm91bmRzU3R5bGUgQ29sbGlzaW9uQm91bmRzU3R5bGVf
dDsKK3R5cGVkZWYgRVZST3ZlcmxheUVycm9yIFZST3ZlcmxheUVycm9yOwordHlwZWRlZiBFVlJG
aXJtd2FyZUVycm9yIFZSRmlybXdhcmVFcnJvcjsKK3R5cGVkZWYgRVZSQ29tcG9zaXRvckVycm9y
IFZSQ29tcG9zaXRvckVycm9yOwordHlwZWRlZiBFVlJTY3JlZW5zaG90RXJyb3IgVlJTY3JlZW5z
aG90c0Vycm9yOworCisvLyBPcGVuVlIgU3RydWN0cworCit0eXBlZGVmIHN0cnVjdCBIbWRNYXRy
aXgzNF90Cit7CisgICAgICAgZmxvYXQgbVszXVs0XTsgLy9mbG9hdFszXVs0XQorfSBIbWRNYXRy
aXgzNF90OworCit0eXBlZGVmIHN0cnVjdCBIbWRNYXRyaXg0NF90Cit7CisgICAgICAgZmxvYXQg
bVs0XVs0XTsgLy9mbG9hdFs0XVs0XQorfSBIbWRNYXRyaXg0NF90OworCit0eXBlZGVmIHN0cnVj
dCBIbWRWZWN0b3IzX3QKK3sKKyAgICAgICBmbG9hdCB2WzNdOyAvL2Zsb2F0WzNdCit9IEhtZFZl
Y3RvcjNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7CisgICAgICAgZmxvYXQg
dls0XTsgLy9mbG9hdFs0XQorfSBIbWRWZWN0b3I0X3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFZl
Y3RvcjNkX3QKK3sKKyAgICAgICBkb3VibGUgdlszXTsgLy9kb3VibGVbM10KK30gSG1kVmVjdG9y
M2RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgZmxvYXQgdlsy
XTsgLy9mbG9hdFsyXQorfSBIbWRWZWN0b3IyX3Q7CisKK3R5cGVkZWYgc3RydWN0IEhtZFF1YXRl
cm5pb25fdAoreworICAgICAgIGRvdWJsZSB3OworICAgICAgIGRvdWJsZSB4OworICAgICAgIGRv
dWJsZSB5OworICAgICAgIGRvdWJsZSB6OworfSBIbWRRdWF0ZXJuaW9uX3Q7CisKK3R5cGVkZWYg
c3RydWN0IEhtZENvbG9yX3QKK3sKKyAgICAgICBmbG9hdCByOworICAgICAgIGZsb2F0IGc7Cisg
ICAgICAgZmxvYXQgYjsKKyAgICAgICBmbG9hdCBhOworfSBIbWRDb2xvcl90OworCit0eXBlZGVm
IHN0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZDb3JuZXJz
WzRdOyAvL3N0cnVjdCB2cjo6SG1kVmVjdG9yM190WzRdCit9IEhtZFF1YWRfdDsKKwordHlwZWRl
ZiBzdHJ1Y3QgSG1kUmVjdDJfdAoreworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IyX3QgdlRvcExl
ZnQ7CisgICAgICAgc3RydWN0IEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9IEhtZFJlY3Qy
X3Q7CisKK3R5cGVkZWYgc3RydWN0IERpc3RvcnRpb25Db29yZGluYXRlc190Cit7CisgICAgICAg
ZmxvYXQgcmZSZWRbMl07IC8vZmxvYXRbMl0KKyAgICAgICBmbG9hdCByZkdyZWVuWzJdOyAvL2Zs
b2F0WzJdCisgICAgICAgZmxvYXQgcmZCbHVlWzJdOyAvL2Zsb2F0WzJdCit9IERpc3RvcnRpb25D
b29yZGluYXRlc190OworCit0eXBlZGVmIHN0cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lk
ICogaGFuZGxlOyAvLyB2b2lkICoKKyAgICAgICBlbnVtIEVUZXh0dXJlVHlwZSBlVHlwZTsKKyAg
ICAgICBlbnVtIEVDb2xvclNwYWNlIGVDb2xvclNwYWNlOworfSBUZXh0dXJlX3Q7CisKK3R5cGVk
ZWYgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtRGV2aWNlVG9BYnNvbHV0ZVRyYWNraW5nOworICAgICAgIHN0cnVjdCBIbWRWZWN0b3Iz
X3QgdlZlbG9jaXR5OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0
eTsKKyAgICAgICBlbnVtIEVUcmFja2luZ1Jlc3VsdCBlVHJhY2tpbmdSZXN1bHQ7CisgICAgICAg
Ym9vbCBiUG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCBiRGV2aWNlSXNDb25uZWN0ZWQ7Cit9IFRy
YWNrZWREZXZpY2VQb3NlX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7
CisgICAgICAgZmxvYXQgdU1pbjsKKyAgICAgICBmbG9hdCB2TWluOworICAgICAgIGZsb2F0IHVN
YXg7CisgICAgICAgZmxvYXQgdk1heDsKK30gVlJUZXh0dXJlQm91bmRzX3Q7CisKK3R5cGVkZWYg
c3RydWN0IFZSVnVsa2FuVGV4dHVyZURhdGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbkltYWdl
OworICAgICAgIHN0cnVjdCBWa0RldmljZV9UICogbV9wRGV2aWNlOyAvLyBzdHJ1Y3QgVmtEZXZp
Y2VfVCAqCisgICAgICAgc3RydWN0IFZrUGh5c2ljYWxEZXZpY2VfVCAqIG1fcFBoeXNpY2FsRGV2
aWNlOyAvLyBzdHJ1Y3QgVmtQaHlzaWNhbERldmljZV9UICoKKyAgICAgICBzdHJ1Y3QgVmtJbnN0
YW5jZV9UICogbV9wSW5zdGFuY2U7IC8vIHN0cnVjdCBWa0luc3RhbmNlX1QgKgorICAgICAgIHN0
cnVjdCBWa1F1ZXVlX1QgKiBtX3BRdWV1ZTsgLy8gc3RydWN0IFZrUXVldWVfVCAqCisgICAgICAg
dWludDMyX3QgbV9uUXVldWVGYW1pbHlJbmRleDsKKyAgICAgICB1aW50MzJfdCBtX25XaWR0aDsK
KyAgICAgICB1aW50MzJfdCBtX25IZWlnaHQ7CisgICAgICAgdWludDMyX3QgbV9uRm9ybWF0Owor
ICAgICAgIHVpbnQzMl90IG1fblNhbXBsZUNvdW50OworfSBWUlZ1bGthblRleHR1cmVEYXRhX3Q7
CisKK3R5cGVkZWYgc3RydWN0IEQzRDEyVGV4dHVyZURhdGFfdAoreworICAgICAgIHN0cnVjdCBJ
RDNEMTJSZXNvdXJjZSAqIG1fcFJlc291cmNlOyAvLyBzdHJ1Y3QgSUQzRDEyUmVzb3VyY2UgKgor
ICAgICAgIHN0cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKiBtX3BDb21tYW5kUXVldWU7IC8vIHN0
cnVjdCBJRDNEMTJDb21tYW5kUXVldWUgKgorICAgICAgIHVpbnQzMl90IG1fbk5vZGVNYXNrOwor
fSBEM0QxMlRleHR1cmVEYXRhX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ29udHJvbGxl
cl90Cit7CisgICAgICAgdWludDMyX3QgYnV0dG9uOworfSBWUkV2ZW50X0NvbnRyb2xsZXJfdDsK
KwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Nb3VzZV90Cit7CisgICAgICAgZmxvYXQgeDsKKyAg
ICAgICBmbG9hdCB5OworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsKK30gVlJFdmVudF9Nb3VzZV90
OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxvYXQgeGRl
bHRhOworICAgICAgIGZsb2F0IHlkZWx0YTsKKyAgICAgICB1aW50MzJfdCByZXBlYXRDb3VudDsK
K30gVlJFdmVudF9TY3JvbGxfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9Ub3VjaFBhZE1v
dmVfdAoreworICAgICAgIGJvb2wgYkZpbmdlckRvd247CisgICAgICAgZmxvYXQgZmxTZWNvbmRz
RmluZ2VyRG93bjsKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZh
bHVlWUZpcnN0OworICAgICAgIGZsb2F0IGZWYWx1ZVhSYXc7CisgICAgICAgZmxvYXQgZlZhbHVl
WVJhdzsKK30gVlJFdmVudF9Ub3VjaFBhZE1vdmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVu
dF9Ob3RpZmljYXRpb25fdAoreworICAgICAgIHVpbnQ2NF90IHVsVXNlclZhbHVlOworICAgICAg
IHVpbnQzMl90IG5vdGlmaWNhdGlvbklkOworfSBWUkV2ZW50X05vdGlmaWNhdGlvbl90OworCit0
eXBlZGVmIHN0cnVjdCBWUkV2ZW50X1Byb2Nlc3NfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsK
KyAgICAgICB1aW50MzJfdCBvbGRQaWQ7CisgICAgICAgYm9vbCBiRm9yY2VkOworfSBWUkV2ZW50
X1Byb2Nlc3NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9PdmVybGF5X3QKK3sKKyAgICAg
ICB1aW50NjRfdCBvdmVybGF5SGFuZGxlOworfSBWUkV2ZW50X092ZXJsYXlfdDsKKwordHlwZWRl
ZiBzdHJ1Y3QgVlJFdmVudF9TdGF0dXNfdAoreworICAgICAgIHVpbnQzMl90IHN0YXR1c1N0YXRl
OworfSBWUkV2ZW50X1N0YXR1c190OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X0tleWJvYXJk
X3QKK3sKKyAgICAgICBjaGFyICogY05ld0lucHV0WzhdOyAvL2NoYXJbOF0KKyAgICAgICB1aW50
NjRfdCB1VXNlclZhbHVlOworfSBWUkV2ZW50X0tleWJvYXJkX3Q7CisKK3R5cGVkZWYgc3RydWN0
IFZSRXZlbnRfSXBkX3QKK3sKKyAgICAgICBmbG9hdCBpcGRNZXRlcnM7Cit9IFZSRXZlbnRfSXBk
X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50
NjRfdCBtX25QcmV2aW91c1VuaXZlcnNlOworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2
ZXJzZTsKK30gVlJFdmVudF9DaGFwZXJvbmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVudF9S
ZXNlcnZlZF90Cit7CisgICAgICAgdWludDY0X3QgcmVzZXJ2ZWQwOworICAgICAgIHVpbnQ2NF90
IHJlc2VydmVkMTsKK30gVlJFdmVudF9SZXNlcnZlZF90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1BlcmZvcm1hbmNlVGVzdF90Cit7CisgICAgICAgdWludDMyX3QgbV9uRmlkZWxpdHlMZXZl
bDsKK30gVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgVlJFdmVu
dF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVu
dTsKK30gVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Q7CisKK3R5cGVkZWYgc3RydWN0IFZS
RXZlbnRfU2NyZWVuc2hvdF90Cit7CisgICAgICAgdWludDMyX3QgaGFuZGxlOworICAgICAgIHVp
bnQzMl90IHR5cGU7Cit9IFZSRXZlbnRfU2NyZWVuc2hvdF90OworCit0eXBlZGVmIHN0cnVjdCBW
UkV2ZW50X1NjcmVlbnNob3RQcm9ncmVzc190Cit7CisgICAgICAgZmxvYXQgcHJvZ3Jlc3M7Cit9
IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNzX3Q7CisKK3R5cGVkZWYgc3RydWN0IFZSRXZlbnRf
QXBwbGljYXRpb25MYXVuY2hfdAoreworICAgICAgIHVpbnQzMl90IHBpZDsKKyAgICAgICB1aW50
MzJfdCB1bkFyZ3NIYW5kbGU7Cit9IFZSRXZlbnRfQXBwbGljYXRpb25MYXVuY2hfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgVlJFdmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90Cit7CisgICAgICAgdWlu
dDY0X3Qgb3ZlcmxheUhhbmRsZTsKKyAgICAgICB1aW50MzJfdCBuVmlzdWFsTW9kZTsKK30gVlJF
dmVudF9FZGl0aW5nQ2FtZXJhU3VyZmFjZV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2ZW50X01l
c3NhZ2VPdmVybGF5X3QKK3sKKyAgICAgICB1aW50MzJfdCB1blZSTWVzc2FnZU92ZXJsYXlSZXNw
b25zZTsKK30gVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90OworCit0eXBlZGVmIHN0cnVjdCBWUkV2
ZW50X1Byb3BlcnR5X3QKK3sKKyAgICAgICBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IGNvbnRh
aW5lcjsKKyAgICAgICBlbnVtIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK30gVlJFdmVu
dF9Qcm9wZXJ0eV90OworCit0eXBlZGVmIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90Cit7CisgICAg
ICAgc3RydWN0IEhtZFZlY3RvcjJfdCAqIHBWZXJ0ZXhEYXRhOyAvLyBjb25zdCBzdHJ1Y3QgdnI6
OkhtZFZlY3RvcjJfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfSBIaWRk
ZW5BcmVhTWVzaF90OworCit0eXBlZGVmIHN0cnVjdCBWUkNvbnRyb2xsZXJBeGlzX3QKK3sKKyAg
ICAgICBmbG9hdCB4OworICAgICAgIGZsb2F0IHk7Cit9IFZSQ29udHJvbGxlckF4aXNfdDsKKwor
dHlwZWRlZiBzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGVfdAoreworICAgICAgIHVpbnQzMl90IHVu
UGFja2V0TnVtOworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAgICB1aW50
NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisgICAgICAgc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdCBy
QXhpc1s1XTsgLy9zdHJ1Y3QgdnI6OlZSQ29udHJvbGxlckF4aXNfdFs1XQorfSBWUkNvbnRyb2xs
ZXJTdGF0ZV90OworCit0eXBlZGVmIHN0cnVjdCBDb21wb3NpdG9yX092ZXJsYXlTZXR0aW5ncwor
eworICAgICAgIHVpbnQzMl90IHNpemU7CisgICAgICAgYm9vbCBjdXJ2ZWQ7CisgICAgICAgYm9v
bCBhbnRpYWxpYXM7CisgICAgICAgZmxvYXQgc2NhbGU7CisgICAgICAgZmxvYXQgZGlzdGFuY2U7
CisgICAgICAgZmxvYXQgYWxwaGE7CisgICAgICAgZmxvYXQgdU9mZnNldDsKKyAgICAgICBmbG9h
dCB2T2Zmc2V0OworICAgICAgIGZsb2F0IHVTY2FsZTsKKyAgICAgICBmbG9hdCB2U2NhbGU7Cisg
ICAgICAgZmxvYXQgZ3JpZERpdnM7CisgICAgICAgZmxvYXQgZ3JpZFdpZHRoOworICAgICAgIGZs
b2F0IGdyaWRTY2FsZTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4NDRfdCB0cmFuc2Zvcm07Cit9
IENvbXBvc2l0b3JfT3ZlcmxheVNldHRpbmdzOworCit0eXBlZGVmIHN0cnVjdCBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QKK3sKKyAgICAgICBlbnVtIEVWUlRyYWNrZWRDYW1lcmFGcmFt
ZVR5cGUgZUZyYW1lVHlwZTsKKyAgICAgICB1aW50MzJfdCBuV2lkdGg7CisgICAgICAgdWludDMy
X3QgbkhlaWdodDsKKyAgICAgICB1aW50MzJfdCBuQnl0ZXNQZXJQaXhlbDsKKyAgICAgICB1aW50
MzJfdCBuRnJhbWVTZXF1ZW5jZTsKKyAgICAgICBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCBz
dGFuZGluZ1RyYWNrZWREZXZpY2VQb3NlOworfSBDYW1lcmFWaWRlb1N0cmVhbUZyYW1lSGVhZGVy
X3Q7CisKK3R5cGVkZWYgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190Cit7CisgICAgICAgY2hhciAq
IHBjaEtleTsgLy8gY29uc3QgY2hhciAqCisgICAgICAgY2hhciAqIHBjaFZhbHVlOyAvLyBjb25z
dCBjaGFyICoKK30gQXBwT3ZlcnJpZGVLZXlzX3Q7CisKK3R5cGVkZWYgc3RydWN0IENvbXBvc2l0
b3JfRnJhbWVUaW1pbmcKK3sKKyAgICAgICB1aW50MzJfdCBtX25TaXplOworICAgICAgIHVpbnQz
Ml90IG1fbkZyYW1lSW5kZXg7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50czsK
KyAgICAgICB1aW50MzJfdCBtX25OdW1NaXNQcmVzZW50ZWQ7CisgICAgICAgdWludDMyX3QgbV9u
TnVtRHJvcHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25SZXByb2plY3Rpb25GbGFnczsK
KyAgICAgICBkb3VibGUgbV9mbFN5c3RlbVRpbWVJblNlY29uZHM7CisgICAgICAgZmxvYXQgbV9m
bFByZVN1Ym1pdEdwdU1zOworICAgICAgIGZsb2F0IG1fZmxQb3N0U3VibWl0R3B1TXM7CisgICAg
ICAgZmxvYXQgbV9mbFRvdGFsUmVuZGVyR3B1TXM7CisgICAgICAgZmxvYXQgbV9mbENvbXBvc2l0
b3JSZW5kZXJHcHVNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclJlbmRlckNwdU1zOwor
ICAgICAgIGZsb2F0IG1fZmxDb21wb3NpdG9ySWRsZUNwdU1zOworICAgICAgIGZsb2F0IG1fZmxD
bGllbnRGcmFtZUludGVydmFsTXM7CisgICAgICAgZmxvYXQgbV9mbFByZXNlbnRDYWxsQ3B1TXM7
CisgICAgICAgZmxvYXQgbV9mbFdhaXRGb3JQcmVzZW50Q3B1TXM7CisgICAgICAgZmxvYXQgbV9m
bFN1Ym1pdEZyYW1lTXM7CisgICAgICAgZmxvYXQgbV9mbFdhaXRHZXRQb3Nlc0NhbGxlZE1zOwor
ICAgICAgIGZsb2F0IG1fZmxOZXdQb3Nlc1JlYWR5TXM7CisgICAgICAgZmxvYXQgbV9mbE5ld0Zy
YW1lUmVhZHlNczsKKyAgICAgICBmbG9hdCBtX2ZsQ29tcG9zaXRvclVwZGF0ZVN0YXJ0TXM7Cisg
ICAgICAgZmxvYXQgbV9mbENvbXBvc2l0b3JVcGRhdGVFbmRNczsKKyAgICAgICBmbG9hdCBtX2Zs
Q29tcG9zaXRvclJlbmRlclN0YXJ0TXM7CisgICAgICAgVHJhY2tlZERldmljZVBvc2VfdCBtX0ht
ZFBvc2U7Cit9IENvbXBvc2l0b3JfRnJhbWVUaW1pbmc7CisKK3R5cGVkZWYgc3RydWN0IENvbXBv
c2l0b3JfQ3VtdWxhdGl2ZVN0YXRzCit7CisgICAgICAgdWludDMyX3QgbV9uUGlkOworICAgICAg
IHVpbnQzMl90IG1fbk51bUZyYW1lUHJlc2VudHM7CisgICAgICAgdWludDMyX3QgbV9uTnVtRHJv
cHBlZEZyYW1lczsKKyAgICAgICB1aW50MzJfdCBtX25OdW1SZXByb2plY3RlZEZyYW1lczsKKyAg
ICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzT25TdGFydHVwOworICAgICAgIHVpbnQz
Ml90IG1fbk51bURyb3BwZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVt
UmVwcm9qZWN0ZWRGcmFtZXNPblN0YXJ0dXA7CisgICAgICAgdWludDMyX3QgbV9uTnVtTG9hZGlu
ZzsKKyAgICAgICB1aW50MzJfdCBtX25OdW1GcmFtZVByZXNlbnRzTG9hZGluZzsKKyAgICAgICB1
aW50MzJfdCBtX25OdW1Ecm9wcGVkRnJhbWVzTG9hZGluZzsKKyAgICAgICB1aW50MzJfdCBtX25O
dW1SZXByb2plY3RlZEZyYW1lc0xvYWRpbmc7CisgICAgICAgdWludDMyX3QgbV9uTnVtVGltZWRP
dXQ7CisgICAgICAgdWludDMyX3QgbV9uTnVtRnJhbWVQcmVzZW50c1RpbWVkT3V0OworICAgICAg
IHVpbnQzMl90IG1fbk51bURyb3BwZWRGcmFtZXNUaW1lZE91dDsKKyAgICAgICB1aW50MzJfdCBt
X25OdW1SZXByb2plY3RlZEZyYW1lc1RpbWVkT3V0OworfSBDb21wb3NpdG9yX0N1bXVsYXRpdmVT
dGF0czsKKwordHlwZWRlZiBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3QKK3sK
KyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZTb3VyY2U7CisgICAgICAgc3RydWN0IEhtZFZl
Y3RvcjNfdCB2RGlyZWN0aW9uOworICAgICAgIGVudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4g
ZU9yaWdpbjsKK30gVlJPdmVybGF5SW50ZXJzZWN0aW9uUGFyYW1zX3Q7CisKK3R5cGVkZWYgc3Ry
dWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdAoreworICAgICAgIHN0cnVjdCBIbWRW
ZWN0b3IzX3QgdlBvaW50OworICAgICAgIHN0cnVjdCBIbWRWZWN0b3IzX3Qgdk5vcm1hbDsKKyAg
ICAgICBzdHJ1Y3QgSG1kVmVjdG9yMl90IHZVVnM7CisgICAgICAgZmxvYXQgZkRpc3RhbmNlOwor
fSBWUk92ZXJsYXlJbnRlcnNlY3Rpb25SZXN1bHRzX3Q7CisKK3R5cGVkZWYgc3RydWN0IEludGVy
c2VjdGlvbk1hc2tSZWN0YW5nbGVfdAoreworICAgICAgIGZsb2F0IG1fZmxUb3BMZWZ0WDsKKyAg
ICAgICBmbG9hdCBtX2ZsVG9wTGVmdFk7CisgICAgICAgZmxvYXQgbV9mbFdpZHRoOworICAgICAg
IGZsb2F0IG1fZmxIZWlnaHQ7Cit9IEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90Cit7CisgICAgICAgZmxvYXQgbV9m
bENlbnRlclg7CisgICAgICAgZmxvYXQgbV9mbENlbnRlclk7CisgICAgICAgZmxvYXQgbV9mbFJh
ZGl1czsKK30gSW50ZXJzZWN0aW9uTWFza0NpcmNsZV90OworCit0eXBlZGVmIHN0cnVjdCBSZW5k
ZXJNb2RlbF9Db21wb25lbnRTdGF0ZV90Cit7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3Qg
bVRyYWNraW5nVG9Db21wb25lbnRSZW5kZXJNb2RlbDsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4
MzRfdCBtVHJhY2tpbmdUb0NvbXBvbmVudExvY2FsOworICAgICAgIFZSQ29tcG9uZW50UHJvcGVy
dGllcyB1UHJvcGVydGllczsKK30gUmVuZGVyTW9kZWxfQ29tcG9uZW50U3RhdGVfdDsKKwordHlw
ZWRlZiBzdHJ1Y3QgUmVuZGVyTW9kZWxfVmVydGV4X3QKK3sKKyAgICAgICBzdHJ1Y3QgSG1kVmVj
dG9yM190IHZQb3NpdGlvbjsKKyAgICAgICBzdHJ1Y3QgSG1kVmVjdG9yM190IHZOb3JtYWw7Cisg
ICAgICAgZmxvYXQgcmZUZXh0dXJlQ29vcmRbMl07IC8vZmxvYXRbMl0KK30gUmVuZGVyTW9kZWxf
VmVydGV4X3Q7CisKK3R5cGVkZWYgc3RydWN0IFJlbmRlck1vZGVsX1RleHR1cmVNYXBfdAorewor
ICAgICAgIHVpbnQxNl90IHVuV2lkdGg7CisgICAgICAgdWludDE2X3QgdW5IZWlnaHQ7CisgICAg
ICAgdWludDhfdCAqIHJ1YlRleHR1cmVNYXBEYXRhOyAvLyBjb25zdCB1aW50OF90ICoKK30gUmVu
ZGVyTW9kZWxfVGV4dHVyZU1hcF90OworCit0eXBlZGVmIHN0cnVjdCBSZW5kZXJNb2RlbF90Cit7
CisgICAgICAgc3RydWN0IFJlbmRlck1vZGVsX1ZlcnRleF90ICogclZlcnRleERhdGE7IC8vIGNv
bnN0IHN0cnVjdCB2cjo6UmVuZGVyTW9kZWxfVmVydGV4X3QgKgorICAgICAgIHVpbnQzMl90IHVu
VmVydGV4Q291bnQ7CisgICAgICAgdWludDE2X3QgKiBySW5kZXhEYXRhOyAvLyBjb25zdCB1aW50
MTZfdCAqCisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworICAgICAgIFRleHR1cmVJ
RF90IGRpZmZ1c2VUZXh0dXJlSWQ7Cit9IFJlbmRlck1vZGVsX3Q7CisKK3R5cGVkZWYgc3RydWN0
IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3QKK3sKKyAgICAgICBib29sIGJTY3Jv
bGxXaGVlbFZpc2libGU7Cit9IFJlbmRlck1vZGVsX0NvbnRyb2xsZXJNb2RlX1N0YXRlX3Q7CisK
K3R5cGVkZWYgc3RydWN0IE5vdGlmaWNhdGlvbkJpdG1hcF90Cit7CisgICAgICAgdm9pZCAqIG1f
cEltYWdlRGF0YTsgLy8gdm9pZCAqCisgICAgICAgaW50MzJfdCBtX25XaWR0aDsKKyAgICAgICBp
bnQzMl90IG1fbkhlaWdodDsKKyAgICAgICBpbnQzMl90IG1fbkJ5dGVzUGVyUGl4ZWw7Cit9IE5v
dGlmaWNhdGlvbkJpdG1hcF90OworCit0eXBlZGVmIHN0cnVjdCBDT3BlblZSQ29udGV4dAorewor
ICAgICAgIGludHB0cl90IG1fcFZSU3lzdGVtOyAvLyBjbGFzcyB2cjo6SVZSU3lzdGVtICoKKyAg
ICAgICBpbnRwdHJfdCBtX3BWUkNoYXBlcm9uZTsgLy8gY2xhc3MgdnI6OklWUkNoYXBlcm9uZSAq
CisgICAgICAgaW50cHRyX3QgbV9wVlJDaGFwZXJvbmVTZXR1cDsgLy8gY2xhc3MgdnI6OklWUkNo
YXBlcm9uZVNldHVwICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUkNvbXBvc2l0b3I7IC8vIGNsYXNz
IHZyOjpJVlJDb21wb3NpdG9yICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUk92ZXJsYXk7IC8vIGNs
YXNzIHZyOjpJVlJPdmVybGF5ICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlJlc291cmNlczsgLy8g
Y2xhc3MgdnI6OklWUlJlc291cmNlcyAqCisgICAgICAgaW50cHRyX3QgbV9wVlJSZW5kZXJNb2Rl
bHM7IC8vIGNsYXNzIHZyOjpJVlJSZW5kZXJNb2RlbHMgKgorICAgICAgIGludHB0cl90IG1fcFZS
RXh0ZW5kZWREaXNwbGF5OyAvLyBjbGFzcyB2cjo6SVZSRXh0ZW5kZWREaXNwbGF5ICoKKyAgICAg
ICBpbnRwdHJfdCBtX3BWUlNldHRpbmdzOyAvLyBjbGFzcyB2cjo6SVZSU2V0dGluZ3MgKgorICAg
ICAgIGludHB0cl90IG1fcFZSQXBwbGljYXRpb25zOyAvLyBjbGFzcyB2cjo6SVZSQXBwbGljYXRp
b25zICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlRyYWNrZWRDYW1lcmE7IC8vIGNsYXNzIHZyOjpJ
VlJUcmFja2VkQ2FtZXJhICoKKyAgICAgICBpbnRwdHJfdCBtX3BWUlNjcmVlbnNob3RzOyAvLyBj
bGFzcyB2cjo6SVZSU2NyZWVuc2hvdHMgKgorfSBDT3BlblZSQ29udGV4dDsKKworCit0eXBlZGVm
IHVuaW9uCit7CisgICAgICAgVlJFdmVudF9SZXNlcnZlZF90IHJlc2VydmVkOworICAgICAgIFZS
RXZlbnRfQ29udHJvbGxlcl90IGNvbnRyb2xsZXI7CisgICAgICAgVlJFdmVudF9Nb3VzZV90IG1v
dXNlOworICAgICAgIFZSRXZlbnRfU2Nyb2xsX3Qgc2Nyb2xsOworICAgICAgIFZSRXZlbnRfUHJv
Y2Vzc190IHByb2Nlc3M7CisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fdCBub3RpZmljYXRp
b247CisgICAgICAgVlJFdmVudF9PdmVybGF5X3Qgb3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1N0
YXR1c190IHN0YXR1czsKKyAgICAgICBWUkV2ZW50X0tleWJvYXJkX3Qga2V5Ym9hcmQ7CisgICAg
ICAgVlJFdmVudF9JcGRfdCBpcGQ7CisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVfdCBjaGFwZXJv
bmU7CisgICAgICAgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdCBwZXJmb3JtYW5jZVRlc3Q7Cisg
ICAgICAgVlJFdmVudF9Ub3VjaFBhZE1vdmVfdCB0b3VjaFBhZE1vdmU7CisgICAgICAgVlJFdmVu
dF9TZWF0ZWRaZXJvUG9zZVJlc2V0X3Qgc2VhdGVkWmVyb1Bvc2VSZXNldDsKK30gVlJFdmVudF9E
YXRhX3Q7CisKKy8qKiBBbiBldmVudCBwb3N0ZWQgYnkgdGhlIHNlcnZlciB0byBhbGwgcnVubmlu
ZyBhcHBsaWNhdGlvbnMgKi8KK3N0cnVjdCBWUkV2ZW50X3QKK3sKKyAgICAgICB1aW50MzJfdCBl
dmVudFR5cGU7IC8vIEVWUkV2ZW50VHlwZSBlbnVtCisgICAgICAgVHJhY2tlZERldmljZUluZGV4
X3QgdHJhY2tlZERldmljZUluZGV4OworICAgICAgIGZsb2F0IGV2ZW50QWdlU2Vjb25kczsKKyAg
ICAgICAvLyBldmVudCBkYXRhIG11c3QgYmUgdGhlIGVuZCBvZiB0aGUgc3RydWN0IGFzIGl0cyBz
aXplIGlzIHZhcmlhYmxlCisgICAgICAgVlJFdmVudF9EYXRhX3QgZGF0YTsKK307CisKKwordHlw
ZWRlZiB1bmlvbgoreworICAgICAgIEludGVyc2VjdGlvbk1hc2tSZWN0YW5nbGVfdCBtX1JlY3Rh
bmdsZTsKKyAgICAgICBJbnRlcnNlY3Rpb25NYXNrQ2lyY2xlX3QgbV9DaXJjbGU7Cit9IFZST3Zl
cmxheUludGVyc2VjdGlvbk1hc2tQcmltaXRpdmVfRGF0YV90OworCitzdHJ1Y3QgVlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90Cit7CisgICAgICAgRVZST3ZlcmxheUludGVyc2Vj
dGlvbk1hc2tQcmltaXRpdmVUeXBlIG1fblByaW1pdGl2ZVR5cGU7CisgICAgICAgVlJPdmVybGF5
SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV9EYXRhX3QgbV9QcmltaXRpdmU7Cit9OworCisKKy8v
IE9wZW5WUiBGdW5jdGlvbiBQb2ludGVyIFRhYmxlcworCitzdHJ1Y3QgVlJfSVZSU3lzdGVtX0Zu
VGFibGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVjb21t
ZW5kZWRSZW5kZXJUYXJnZXRTaXplKSh1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5I
ZWlnaHQpOworICAgICAgIHN0cnVjdCBIbWRNYXRyaXg0NF90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0UHJvamVjdGlvbk1hdHJpeCkoRVZSRXllIGVFeWUsIGZsb2F0IGZOZWFyWiwgZmxv
YXQgZkZhclopOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcm9q
ZWN0aW9uUmF3KShFVlJFeWUgZUV5ZSwgZmxvYXQgKiBwZkxlZnQsIGZsb2F0ICogcGZSaWdodCwg
ZmxvYXQgKiBwZlRvcCwgZmxvYXQgKiBwZkJvdHRvbSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkNvbXB1dGVEaXN0b3J0aW9uKShFVlJFeWUgZUV5ZSwgZmxvYXQgZlUs
IGZsb2F0IGZWLCBzdHJ1Y3QgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgKiBwRGlzdG9ydGlvbkNv
b3JkaW5hdGVzKTsKKyAgICAgICBzdHJ1Y3QgSG1kTWF0cml4MzRfdCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldEV5ZVRvSGVhZFRyYW5zZm9ybSkoRVZSRXllIGVFeWUpOworICAgICAgIGJv
b2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUaW1lU2luY2VMYXN0VnN5bmMpKGZsb2F0
ICogcGZTZWNvbmRzU2luY2VMYXN0VnN5bmMsIHVpbnQ2NF90ICogcHVsRnJhbWVDb3VudGVyKTsK
KyAgICAgICBpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RDNEOUFkYXB0ZXJJ
bmRleCkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RFhHSU91
dHB1dEluZm8pKGludDMyX3QgKiBwbkFkYXB0ZXJJbmRleCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGlzcGxheU9uRGVza3RvcCkoKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0RGlzcGxheVZpc2liaWxpdHkpKGJvb2wgYklzVmlz
aWJsZU9uRGVza3RvcCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdl
dERldmljZVRvQWJzb2x1dGVUcmFja2luZ1Bvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVP
cmlnaW4sIGZsb2F0IGZQcmVkaWN0ZWRTZWNvbmRzVG9QaG90b25zRnJvbU5vdywgc3RydWN0IFRy
YWNrZWREZXZpY2VQb3NlX3QgKiBwVHJhY2tlZERldmljZVBvc2VBcnJheSwgdWludDMyX3QgdW5U
cmFja2VkRGV2aWNlUG9zZUFycmF5Q291bnQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpSZXNldFNlYXRlZFplcm9Qb3NlKSgpOworICAgICAgIHN0cnVjdCBIbWRNYXRy
aXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2VhdGVkWmVyb1Bvc2VUb1N0YW5k
aW5nQWJzb2x1dGVUcmFja2luZ1Bvc2UpKCk7CisgICAgICAgc3RydWN0IEhtZE1hdHJpeDM0X3Qg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSYXdaZXJvUG9zZVRvU3RhbmRpbmdBYnNvbHV0
ZVRyYWNraW5nUG9zZSkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldFNvcnRlZFRyYWNrZWREZXZpY2VJbmRpY2VzT2ZDbGFzcykoRVRyYWNrZWREZXZpY2VD
bGFzcyBlVHJhY2tlZERldmljZUNsYXNzLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1blRyYWNr
ZWREZXZpY2VJbmRleEFycmF5LCB1aW50MzJfdCB1blRyYWNrZWREZXZpY2VJbmRleEFycmF5Q291
bnQsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuUmVsYXRpdmVUb1RyYWNrZWREZXZpY2VJbmRleCk7
CisgICAgICAgRURldmljZUFjdGl2aXR5TGV2ZWwgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpH
ZXRUcmFja2VkRGV2aWNlQWN0aXZpdHlMZXZlbCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZp
Y2VJZCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFwcGx5VHJhbnNm
b3JtKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBPdXRwdXRQb3NlLCBzdHJ1Y3QgVHJh
Y2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSwgc3RydWN0IEhtZE1hdHJpeDM0
X3QgKiBwVHJhbnNmb3JtKTsKKyAgICAgICBUcmFja2VkRGV2aWNlSW5kZXhfdCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldFRyYWNrZWREZXZpY2VJbmRleEZvckNvbnRyb2xsZXJSb2xlKShF
VHJhY2tlZENvbnRyb2xsZXJSb2xlIHVuRGV2aWNlVHlwZSk7CisgICAgICAgRVRyYWNrZWRDb250
cm9sbGVyUm9sZSAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbnRyb2xsZXJSb2xlRm9y
VHJhY2tlZERldmljZUluZGV4KShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsK
KyAgICAgICBFVHJhY2tlZERldmljZUNsYXNzIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
VHJhY2tlZERldmljZUNsYXNzKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsK
KyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNUcmFja2VkRGV2aWNlQ29u
bmVjdGVkKShUcmFja2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4KTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Qm9vbFRyYWNrZWREZXZpY2VQcm9wZXJ0eSko
VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOworICAgICAgIGZsb2F0IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RmxvYXRUcmFja2VkRGV2aWNlUHJvcGVydHkpKFRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBpbnQzMl90IChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SW50MzJUcmFja2VkRGV2aWNlUHJvcGVydHkpKFRy
YWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkg
cHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICB1aW50NjRfdCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFVpbnQ2NFRyYWNrZWREZXZpY2VQcm9wZXJ0eSko
VHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKiBwRXJyb3IpOworICAgICAgIHN0cnVjdCBI
bWRNYXRyaXgzNF90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0TWF0cml4MzRUcmFja2Vk
RGV2aWNlUHJvcGVydHkpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFN0cmluZ1RyYWNr
ZWREZXZpY2VQcm9wZXJ0eSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVm
ZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICogcEVycm9yKTsKKyAgICAgICBjaGFyICog
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcm9wRXJyb3JOYW1lRnJvbUVudW0pKEVUcmFj
a2VkUHJvcGVydHlFcnJvciBlcnJvcik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKlBvbGxOZXh0RXZlbnQpKHN0cnVjdCBWUkV2ZW50X3QgKiBwRXZlbnQsIHVpbnQzMl90
IHVuY2JWUkV2ZW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9s
bE5leHRFdmVudFdpdGhQb3NlKShFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiBlT3JpZ2luLCBzdHJ1
Y3QgVlJFdmVudF90ICogcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCwgVHJhY2tlZERldmlj
ZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqR2V0RXZlbnRUeXBlTmFtZUZyb21FbnVtKShFVlJFdmVudFR5cGUgZVR5
cGUpOworICAgICAgIHN0cnVjdCBIaWRkZW5BcmVhTWVzaF90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0SGlkZGVuQXJlYU1lc2gpKEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBl
IHR5cGUpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDb250cm9s
bGVyU3RhdGUpKFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCBW
UkNvbnRyb2xsZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9s
bGVyU3RhdGVTaXplKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
Q29udHJvbGxlclN0YXRlV2l0aFBvc2UpKEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVPcmlnaW4s
IFRyYWNrZWREZXZpY2VJbmRleF90IHVuQ29udHJvbGxlckRldmljZUluZGV4LCBWUkNvbnRyb2xs
ZXJTdGF0ZV90ICogcENvbnRyb2xsZXJTdGF0ZSwgdWludDMyX3QgdW5Db250cm9sbGVyU3RhdGVT
aXplLCBzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBUcmFja2VkRGV2aWNlUG9zZSk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlRyaWdnZXJIYXB0aWNQdWxzZSko
VHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgsIHVpbnQzMl90IHVu
QXhpc0lkLCB1bnNpZ25lZCBzaG9ydCB1c0R1cmF0aW9uTWljcm9TZWMpOworICAgICAgIGNoYXIg
KiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJ1dHRvbklkTmFtZUZyb21FbnVtKShFVlJC
dXR0b25JZCBlQnV0dG9uSWQpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldENvbnRyb2xsZXJBeGlzVHlwZU5hbWVGcm9tRW51bSkoRVZSQ29udHJvbGxlckF4aXNU
eXBlIGVBeGlzVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNh
cHR1cmVJbnB1dEZvY3VzKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpSZWxlYXNlSW5wdXRGb2N1cykoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqSXNJbnB1dEZvY3VzQ2FwdHVyZWRCeUFub3RoZXJQcm9jZXNzKSgpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRHJpdmVyRGVidWdSZXF1ZXN0KShUcmFj
a2VkRGV2aWNlSW5kZXhfdCB1bkRldmljZUluZGV4LCBjaGFyICogcGNoUmVxdWVzdCwgY2hhciAq
IHBjaFJlc3BvbnNlQnVmZmVyLCB1aW50MzJfdCB1blJlc3BvbnNlQnVmZmVyU2l6ZSk7CisgICAg
ICAgRVZSRmlybXdhcmVFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBlcmZvcm1GaXJt
d2FyZVVwZGF0ZSkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJbmRleCk7CisgICAgICAg
dm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkFja25vd2xlZGdlUXVpdF9FeGl0aW5nKSgp
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY2tub3dsZWRnZVF1aXRf
VXNlclByb21wdCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJFeHRlbmRlZERpc3BsYXlfRm5UYWJs
ZQoreworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXaW5kb3dCb3Vu
ZHMpKGludDMyX3QgKiBwblgsIGludDMyX3QgKiBwblksIHVpbnQzMl90ICogcG5XaWR0aCwgdWlu
dDMyX3QgKiBwbkhlaWdodCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldEV5ZU91dHB1dFZpZXdwb3J0KShFVlJFeWUgZUV5ZSwgdWludDMyX3QgKiBwblgsIHVpbnQz
Ml90ICogcG5ZLCB1aW50MzJfdCAqIHBuV2lkdGgsIHVpbnQzMl90ICogcG5IZWlnaHQpOworICAg
ICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXREWEdJT3V0cHV0SW5mbykoaW50
MzJfdCAqIHBuQWRhcHRlckluZGV4LCBpbnQzMl90ICogcG5BZGFwdGVyT3V0cHV0SW5kZXgpOwor
fTsKKworc3RydWN0IFZSX0lWUlRyYWNrZWRDYW1lcmFfRm5UYWJsZQoreworICAgICAgIGNoYXIg
KiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUVycm9yTmFtZUZyb21FbnVtKShF
VlJUcmFja2VkQ2FtZXJhRXJyb3IgZUNhbWVyYUVycm9yKTsKKyAgICAgICBFVlJUcmFja2VkQ2Ft
ZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpIYXNDYW1lcmEpKFRyYWNrZWREZXZp
Y2VJbmRleF90IG5EZXZpY2VJbmRleCwgYm9vbCAqIHBIYXNDYW1lcmEpOworICAgICAgIEVWUlRy
YWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENhbWVyYUZyYW1l
U2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJh
RnJhbWVUeXBlIGVGcmFtZVR5cGUsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhl
aWdodCwgdWludDMyX3QgKiBwbkZyYW1lQnVmZmVyU2l6ZSk7CisgICAgICAgRVZSVHJhY2tlZENh
bWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q2FtZXJhSW50cmluc2ljcyko
VHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVU
eXBlIGVGcmFtZVR5cGUsIEhtZFZlY3RvcjJfdCAqIHBGb2NhbExlbmd0aCwgSG1kVmVjdG9yMl90
ICogcENlbnRlcik7CisgICAgICAgRVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0Q2FtZXJhUHJvamVjdGlvbikoVHJhY2tlZERldmljZUluZGV4X3QgbkRl
dmljZUluZGV4LCBFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIGZsb2F0IGZs
Wk5lYXIsIGZsb2F0IGZsWkZhciwgSG1kTWF0cml4NDRfdCAqIHBQcm9qZWN0aW9uKTsKKyAgICAg
ICBFVlJUcmFja2VkQ2FtZXJhRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBY3F1aXJl
VmlkZW9TdHJlYW1pbmdTZXJ2aWNlKShUcmFja2VkRGV2aWNlSW5kZXhfdCBuRGV2aWNlSW5kZXgs
IFRyYWNrZWRDYW1lcmFIYW5kbGVfdCAqIHBIYW5kbGUpOworICAgICAgIEVWUlRyYWNrZWRDYW1l
cmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJlbGVhc2VWaWRlb1N0cmVhbWluZ1Nl
cnZpY2UpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSk7CisgICAgICAgRVZS
VHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJl
YW1GcmFtZUJ1ZmZlcikoVHJhY2tlZENhbWVyYUhhbmRsZV90IGhUcmFja2VkQ2FtZXJhLCBFVlJU
cmFja2VkQ2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIHZvaWQgKiBwRnJhbWVCdWZmZXIsIHVp
bnQzMl90IG5GcmFtZUJ1ZmZlclNpemUsIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAq
IHBGcmFtZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgRVZSVHJh
Y2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9TdHJlYW1U
ZXh0dXJlU2l6ZSkoVHJhY2tlZERldmljZUluZGV4X3QgbkRldmljZUluZGV4LCBFVlJUcmFja2Vk
Q2FtZXJhRnJhbWVUeXBlIGVGcmFtZVR5cGUsIFZSVGV4dHVyZUJvdW5kc190ICogcFRleHR1cmVC
b3VuZHMsIHVpbnQzMl90ICogcG5XaWR0aCwgdWludDMyX3QgKiBwbkhlaWdodCk7CisgICAgICAg
RVZSVHJhY2tlZENhbWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0VmlkZW9T
dHJlYW1UZXh0dXJlRDNEMTEpKFRyYWNrZWRDYW1lcmFIYW5kbGVfdCBoVHJhY2tlZENhbWVyYSwg
RVZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZSBlRnJhbWVUeXBlLCB2b2lkICogcEQzRDExRGV2aWNl
T3JSZXNvdXJjZSwgdm9pZCAqKiBwcEQzRDExU2hhZGVyUmVzb3VyY2VWaWV3LCBDYW1lcmFWaWRl
b1N0cmVhbUZyYW1lSGVhZGVyX3QgKiBwRnJhbWVIZWFkZXIsIHVpbnQzMl90IG5GcmFtZUhlYWRl
clNpemUpOworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldFZpZGVvU3RyZWFtVGV4dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRy
YWNrZWRDYW1lcmEsIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZ2xVSW50
X3QgKiBwZ2xUZXh0dXJlSWQsIENhbWVyYVZpZGVvU3RyZWFtRnJhbWVIZWFkZXJfdCAqIHBGcmFt
ZUhlYWRlciwgdWludDMyX3QgbkZyYW1lSGVhZGVyU2l6ZSk7CisgICAgICAgRVZSVHJhY2tlZENh
bWVyYUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVsZWFzZVZpZGVvU3RyZWFtVGV4
dHVyZUdMKShUcmFja2VkQ2FtZXJhSGFuZGxlX3QgaFRyYWNrZWRDYW1lcmEsIGdsVUludF90IGds
VGV4dHVyZUlkKTsKK307CisKK3N0cnVjdCBWUl9JVlJBcHBsaWNhdGlvbnNfRm5UYWJsZQorewor
ICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpBZGRB
cHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNoQXBwbGljYXRpb25NYW5pZmVzdEZ1bGxQYXRo
LCBib29sIGJUZW1wb3JhcnkpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpSZW1vdmVBcHBsaWNhdGlvbk1hbmlmZXN0KShjaGFyICogcGNoQXBw
bGljYXRpb25NYW5pZmVzdEZ1bGxQYXRoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqSXNBcHBsaWNhdGlvbkluc3RhbGxlZCkoY2hhciAqIHBjaEFwcEtleSk7CisgICAg
ICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBsaWNhdGlvbkNvdW50
KSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRBcHBsaWNhdGlvbktleUJ5SW5kZXgpKHVpbnQzMl90IHVuQXBwbGljYXRpb25JbmRleCwg
Y2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAg
ICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRBcHBs
aWNhdGlvbktleUJ5UHJvY2Vzc0lkKSh1aW50MzJfdCB1blByb2Nlc3NJZCwgY2hhciAqIHBjaEFw
cEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAgICAgIEVWUkFwcGxp
Y2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpMYXVuY2hBcHBsaWNhdGlvbiko
Y2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkxhdW5jaFRlbXBsYXRlQXBwbGljYXRpb24pKGNoYXIgKiBwY2hUZW1w
bGF0ZUFwcEtleSwgY2hhciAqIHBjaE5ld0FwcEtleSwgc3RydWN0IEFwcE92ZXJyaWRlS2V5c190
ICogcEtleXMsIHVpbnQzMl90IHVuS2V5cyk7CisgICAgICAgRVZSQXBwbGljYXRpb25FcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEFwcGxpY2F0aW9uRnJvbU1pbWVUeXBlKShj
aGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBwY2hBcmdzKTsKKyAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTGF1bmNoRGFzaGJvYXJkT3ZlcmxheSko
Y2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkNhbmNlbEFwcGxpY2F0aW9uTGF1bmNoKShjaGFyICogcGNoQXBwS2V5KTsKKyAgICAgICBFVlJB
cHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSWRlbnRpZnlBcHBsaWNh
dGlvbikodWludDMyX3QgdW5Qcm9jZXNzSWQsIGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Qcm9jZXNzSWQp
KGNoYXIgKiBwY2hBcHBLZXkpOworICAgICAgIGNoYXIgKiAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEFwcGxpY2F0aW9uc0Vycm9yTmFtZUZyb21FbnVtKShFVlJBcHBsaWNhdGlvbkVycm9y
IGVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFw
cGxpY2F0aW9uUHJvcGVydHlTdHJpbmcpKGNoYXIgKiBwY2hBcHBLZXksIEVWUkFwcGxpY2F0aW9u
UHJvcGVydHkgZVByb3BlcnR5LCBjaGFyICogcGNoUHJvcGVydHlWYWx1ZUJ1ZmZlciwgdWludDMy
X3QgdW5Qcm9wZXJ0eVZhbHVlQnVmZmVyTGVuLCBFVlJBcHBsaWNhdGlvbkVycm9yICogcGVFcnJv
cik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEFwcGxpY2F0aW9u
UHJvcGVydHlCb29sKShjaGFyICogcGNoQXBwS2V5LCBFVlJBcHBsaWNhdGlvblByb3BlcnR5IGVQ
cm9wZXJ0eSwgRVZSQXBwbGljYXRpb25FcnJvciAqIHBlRXJyb3IpOworICAgICAgIHVpbnQ2NF90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25Qcm9wZXJ0eVVpbnQ2NCko
Y2hhciAqIHBjaEFwcEtleSwgRVZSQXBwbGljYXRpb25Qcm9wZXJ0eSBlUHJvcGVydHksIEVWUkFw
cGxpY2F0aW9uRXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShjaGFyICog
cGNoQXBwS2V5LCBib29sIGJBdXRvTGF1bmNoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25BdXRvTGF1bmNoKShjaGFyICogcGNoQXBwS2V5KTsK
KyAgICAgICBFVlJBcHBsaWNhdGlvbkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
RGVmYXVsdEFwcGxpY2F0aW9uRm9yTWltZVR5cGUpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIgKiBw
Y2hNaW1lVHlwZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERl
ZmF1bHRBcHBsaWNhdGlvbkZvck1pbWVUeXBlKShjaGFyICogcGNoTWltZVR5cGUsIGNoYXIgKiBw
Y2hBcHBLZXlCdWZmZXIsIHVpbnQzMl90IHVuQXBwS2V5QnVmZmVyTGVuKTsKKyAgICAgICBib29s
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0QXBwbGljYXRpb25TdXBwb3J0ZWRNaW1lVHlw
ZXMpKGNoYXIgKiBwY2hBcHBLZXksIGNoYXIgKiBwY2hNaW1lVHlwZXNCdWZmZXIsIHVpbnQzMl90
IHVuTWltZVR5cGVzQnVmZmVyKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldEFwcGxpY2F0aW9uc1RoYXRTdXBwb3J0TWltZVR5cGUpKGNoYXIgKiBwY2hNaW1l
VHlwZSwgY2hhciAqIHBjaEFwcEtleXNUaGF0U3VwcG9ydEJ1ZmZlciwgdWludDMyX3QgdW5BcHBL
ZXlzVGhhdFN1cHBvcnRCdWZmZXIpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqR2V0QXBwbGljYXRpb25MYXVuY2hBcmd1bWVudHMpKHVpbnQzMl90IHVuSGFuZGxl
LCBjaGFyICogcGNoQXJncywgdWludDMyX3QgdW5BcmdzKTsKKyAgICAgICBFVlJBcHBsaWNhdGlv
bkVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U3RhcnRpbmdBcHBsaWNhdGlvbiko
Y2hhciAqIHBjaEFwcEtleUJ1ZmZlciwgdWludDMyX3QgdW5BcHBLZXlCdWZmZXJMZW4pOworICAg
ICAgIEVWUkFwcGxpY2F0aW9uVHJhbnNpdGlvblN0YXRlIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0VHJhbnNpdGlvblN0YXRlKSgpOworICAgICAgIEVWUkFwcGxpY2F0aW9uRXJyb3IgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpQZXJmb3JtQXBwbGljYXRpb25QcmVsYXVuY2hDaGVjayko
Y2hhciAqIHBjaEFwcEtleSk7CisgICAgICAgY2hhciAqIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqR2V0QXBwbGljYXRpb25zVHJhbnNpdGlvblN0YXRlTmFtZUZyb21FbnVtKShFVlJBcHBsaWNh
dGlvblRyYW5zaXRpb25TdGF0ZSBzdGF0ZSk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKklzUXVpdFVzZXJQcm9tcHRSZXF1ZXN0ZWQpKCk7CisgICAgICAgRVZSQXBwbGlj
YXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxhdW5jaEludGVybmFsUHJvY2Vz
cykoY2hhciAqIHBjaEJpbmFyeVBhdGgsIGNoYXIgKiBwY2hBcmd1bWVudHMsIGNoYXIgKiBwY2hX
b3JraW5nRGlyZWN0b3J5KTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKkdldEN1cnJlbnRTY2VuZVByb2Nlc3NJZCkoKTsKK307CisKK3N0cnVjdCBWUl9JVlJDaGFw
ZXJvbmVfRm5UYWJsZQoreworICAgICAgIENoYXBlcm9uZUNhbGlicmF0aW9uU3RhdGUgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRDYWxpYnJhdGlvblN0YXRlKSgpOworICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQbGF5QXJlYVNpemUpKGZsb2F0ICogcFNpemVY
LCBmbG9hdCAqIHBTaXplWik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldFBsYXlBcmVhUmVjdCkoc3RydWN0IEhtZFF1YWRfdCAqIHJlY3QpOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRJbmZvKSgpOworICAgICAgIHZvaWQgKE9Q
RU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRTY2VuZUNvbG9yKShzdHJ1Y3QgSG1kQ29sb3JfdCBj
b2xvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEJvdW5kc0Nv
bG9yKShzdHJ1Y3QgSG1kQ29sb3JfdCAqIHBPdXRwdXRDb2xvckFycmF5LCBpbnQgbk51bU91dHB1
dENvbG9ycywgZmxvYXQgZmxDb2xsaXNpb25Cb3VuZHNGYWRlRGlzdGFuY2UsIHN0cnVjdCBIbWRD
b2xvcl90ICogcE91dHB1dENhbWVyYUNvbG9yKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqQXJlQm91bmRzVmlzaWJsZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqRm9yY2VCb3VuZHNWaXNpYmxlKShib29sIGJGb3JjZSk7Cit9OworCitz
dHJ1Y3QgVlJfSVZSQ2hhcGVyb25lU2V0dXBfRm5UYWJsZQoreworICAgICAgIGJvb2wgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDb21taXRXb3JraW5nQ29weSkoRUNoYXBlcm9uZUNvbmZpZ0Zp
bGUgY29uZmlnRmlsZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlJl
dmVydFdvcmtpbmdDb3B5KSgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRXb3JraW5nUGxheUFyZWFTaXplKShmbG9hdCAqIHBTaXplWCwgZmxvYXQgKiBwU2l6ZVop
OworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nUGxheUFy
ZWFSZWN0KShzdHJ1Y3QgSG1kUXVhZF90ICogcmVjdCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkdldFdvcmtpbmdDb2xsaXNpb25Cb3VuZHNJbmZvKShzdHJ1Y3QgSG1k
UXVhZF90ICogcFF1YWRzQnVmZmVyLCB1aW50MzJfdCAqIHB1blF1YWRzQ291bnQpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZlQ29sbGlzaW9uQm91bmRzSW5m
bykoc3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgKiBwdW5RdWFkc0Nv
dW50KTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0V29ya2luZ1Nl
YXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1h
dFNlYXRlZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIGJvb2wgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFj
a2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3Jr
aW5nUGxheUFyZWFTaXplKShmbG9hdCBzaXplWCwgZmxvYXQgc2l6ZVopOworICAgICAgIHZvaWQg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRXb3JraW5nQ29sbGlzaW9uQm91bmRzSW5mbyko
c3RydWN0IEhtZFF1YWRfdCAqIHBRdWFkc0J1ZmZlciwgdWludDMyX3QgdW5RdWFkc0NvdW50KTsK
KyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ1NlYXRlZFpl
cm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpKHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcE1hdFNlYXRl
ZFplcm9Qb3NlVG9SYXdUcmFja2luZ1Bvc2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTZXRXb3JraW5nU3RhbmRpbmdaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3NlKShz
dHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBNYXRTdGFuZGluZ1plcm9Qb3NlVG9SYXdUcmFja2luZ1Bv
c2UpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxvYWRGcm9tRGlz
aykoRUNoYXBlcm9uZUNvbmZpZ0ZpbGUgY29uZmlnRmlsZSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKkdldExpdmVTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQb3Nl
KShzdHJ1Y3QgSG1kTWF0cml4MzRfdCAqIHBtYXRTZWF0ZWRaZXJvUG9zZVRvUmF3VHJhY2tpbmdQ
b3NlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0V29ya2luZ0Nv
bGxpc2lvbkJvdW5kc1RhZ3NJbmZvKSh1aW50OF90ICogcFRhZ3NCdWZmZXIsIHVpbnQzMl90IHVu
VGFnQ291bnQpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMaXZl
Q29sbGlzaW9uQm91bmRzVGFnc0luZm8pKHVpbnQ4X3QgKiBwVGFnc0J1ZmZlciwgdWludDMyX3Qg
KiBwdW5UYWdDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dFdvcmtpbmdQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBwUXVhZHNCdWZm
ZXIsIHVpbnQzMl90IHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldExpdmVQaHlzaWNhbEJvdW5kc0luZm8pKHN0cnVjdCBIbWRRdWFkX3QgKiBw
UXVhZHNCdWZmZXIsIHVpbnQzMl90ICogcHVuUXVhZHNDb3VudCk7CisgICAgICAgYm9vbCAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkV4cG9ydExpdmVUb0J1ZmZlcikoY2hhciAqIHBCdWZmZXIs
IHVpbnQzMl90ICogcG5CdWZmZXJMZW5ndGgpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpJbXBvcnRGcm9tQnVmZmVyVG9Xb3JraW5nKShjaGFyICogcEJ1ZmZlciwgdWlu
dDMyX3QgbkltcG9ydEZsYWdzKTsKK307CisKK3N0cnVjdCBWUl9JVlJDb21wb3NpdG9yX0ZuVGFi
bGUKK3sKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0VHJhY2tpbmdT
cGFjZSkoRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4gZU9yaWdpbik7CisgICAgICAgRVRyYWNraW5n
VW5pdmVyc2VPcmlnaW4gKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRUcmFja2luZ1NwYWNl
KSgpOworICAgICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KldhaXRHZXRQb3Nlcykoc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwUmVuZGVyUG9zZUFy
cmF5LCB1aW50MzJfdCB1blJlbmRlclBvc2VBcnJheUNvdW50LCBzdHJ1Y3QgVHJhY2tlZERldmlj
ZVBvc2VfdCAqIHBHYW1lUG9zZUFycmF5LCB1aW50MzJfdCB1bkdhbWVQb3NlQXJyYXlDb3VudCk7
CisgICAgICAgRVZSQ29tcG9zaXRvckVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
TGFzdFBvc2VzKShzdHJ1Y3QgVHJhY2tlZERldmljZVBvc2VfdCAqIHBSZW5kZXJQb3NlQXJyYXks
IHVpbnQzMl90IHVuUmVuZGVyUG9zZUFycmF5Q291bnQsIHN0cnVjdCBUcmFja2VkRGV2aWNlUG9z
ZV90ICogcEdhbWVQb3NlQXJyYXksIHVpbnQzMl90IHVuR2FtZVBvc2VBcnJheUNvdW50KTsKKyAg
ICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMYXN0
UG9zZUZvclRyYWNrZWREZXZpY2VJbmRleCkoVHJhY2tlZERldmljZUluZGV4X3QgdW5EZXZpY2VJ
bmRleCwgc3RydWN0IFRyYWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0UG9zZSwgc3RydWN0IFRy
YWNrZWREZXZpY2VQb3NlX3QgKiBwT3V0cHV0R2FtZVBvc2UpOworICAgICAgIEVWUkNvbXBvc2l0
b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN1Ym1pdCkoRVZSRXllIGVFeWUsIHN0
cnVjdCBUZXh0dXJlX3QgKiBwVGV4dHVyZSwgc3RydWN0IFZSVGV4dHVyZUJvdW5kc190ICogcEJv
dW5kcywgRVZSU3VibWl0RmxhZ3MgblN1Ym1pdEZsYWdzKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqQ2xlYXJMYXN0U3VibWl0dGVkRnJhbWUpKCk7CisgICAgICAgdm9p
ZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlBvc3RQcmVzZW50SGFuZG9mZikoKTsKKyAgICAg
ICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1pbmcpKHN0cnVjdCBD
b21wb3NpdG9yX0ZyYW1lVGltaW5nICogcFRpbWluZywgdWludDMyX3QgdW5GcmFtZXNBZ28pOwor
ICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1pbmdz
KShzdHJ1Y3QgQ29tcG9zaXRvcl9GcmFtZVRpbWluZyAqIHBUaW1pbmcsIHVpbnQzMl90IG5GcmFt
ZXMpOworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0RnJhbWVUaW1l
UmVtYWluaW5nKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRD
dW11bGF0aXZlU3RhdHMpKHN0cnVjdCBDb21wb3NpdG9yX0N1bXVsYXRpdmVTdGF0cyAqIHBTdGF0
cywgdWludDMyX3QgblN0YXRzU2l6ZUluQnl0ZXMpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRB
QkxFX0NBTExUWVBFICpGYWRlVG9Db2xvcikoZmxvYXQgZlNlY29uZHMsIGZsb2F0IGZSZWQsIGZs
b2F0IGZHcmVlbiwgZmxvYXQgZkJsdWUsIGZsb2F0IGZBbHBoYSwgYm9vbCBiQmFja2dyb3VuZCk7
CisgICAgICAgc3RydWN0IEhtZENvbG9yX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRD
dXJyZW50RmFkZUNvbG9yKShib29sIGJCYWNrZ3JvdW5kKTsKKyAgICAgICB2b2lkIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqRmFkZUdyaWQpKGZsb2F0IGZTZWNvbmRzLCBib29sIGJGYWRlSW4p
OworICAgICAgIGZsb2F0IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q3VycmVudEdyaWRB
bHBoYSkoKTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRTa3lib3hPdmVycmlkZSkoc3RydWN0IFRleHR1cmVfdCAqIHBUZXh0dXJlcywgdWlu
dDMyX3QgdW5UZXh0dXJlQ291bnQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpDbGVhclNreWJveE92ZXJyaWRlKSgpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpDb21wb3NpdG9yQnJpbmdUb0Zyb250KSgpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpDb21wb3NpdG9yR29Ub0JhY2spKCk7CisgICAgICAgdm9pZCAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNvbXBvc2l0b3JRdWl0KSgpOworICAgICAgIGJvb2wg
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0Z1bGxzY3JlZW4pKCk7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRDdXJyZW50U2NlbmVGb2N1c1Byb2Nlc3Mp
KCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRMYXN0RnJh
bWVSZW5kZXJlcikoKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqQ2Fu
UmVuZGVyU2NlbmUpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNo
b3dNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkhpZGVNaXJyb3JXaW5kb3cpKCk7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZ
UEUgKklzTWlycm9yV2luZG93VmlzaWJsZSkoKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqQ29tcG9zaXRvckR1bXBJbWFnZXMpKCk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNob3VsZEFwcFJlbmRlcldpdGhMb3dSZXNvdXJjZXMpKCk7Cisg
ICAgICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkZvcmNlSW50ZXJsZWF2ZWRSZXBy
b2plY3Rpb25PbikoYm9vbCBiT3ZlcnJpZGUpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpGb3JjZVJlY29ubmVjdFByb2Nlc3MpKCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlN1c3BlbmRSZW5kZXJpbmcpKGJvb2wgYlN1c3BlbmQpOworICAg
ICAgIEVWUkNvbXBvc2l0b3JFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE1pcnJv
clRleHR1cmVEM0QxMSkoRVZSRXllIGVFeWUsIHZvaWQgKiBwRDNEMTFEZXZpY2VPclJlc291cmNl
LCB2b2lkICoqIHBwRDNEMTFTaGFkZXJSZXNvdXJjZVZpZXcpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpSZWxlYXNlTWlycm9yVGV4dHVyZUQzRDExKSh2b2lkICogcEQz
RDExU2hhZGVyUmVzb3VyY2VWaWV3KTsKKyAgICAgICBFVlJDb21wb3NpdG9yRXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRNaXJyb3JUZXh0dXJlR0wpKEVWUkV5ZSBlRXllLCBnbFVJ
bnRfdCAqIHBnbFRleHR1cmVJZCwgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3QgKiBwZ2xTaGFyZWRU
ZXh0dXJlSGFuZGxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqUmVs
ZWFzZVNoYXJlZEdMVGV4dHVyZSkoZ2xVSW50X3QgZ2xUZXh0dXJlSWQsIGdsU2hhcmVkVGV4dHVy
ZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKkxvY2tHTFNoYXJlZFRleHR1cmVGb3JBY2Nlc3MpKGdsU2hhcmVkVGV4
dHVyZUhhbmRsZV90IGdsU2hhcmVkVGV4dHVyZUhhbmRsZSk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlVubG9ja0dMU2hhcmVkVGV4dHVyZUZvckFjY2VzcykoZ2xTaGFy
ZWRUZXh0dXJlSGFuZGxlX3QgZ2xTaGFyZWRUZXh0dXJlSGFuZGxlKTsKKyAgICAgICB1aW50MzJf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldFZ1bGthbkluc3RhbmNlRXh0ZW5zaW9uc1Jl
cXVpcmVkKShjaGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSk7CisgICAgICAg
dWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRWdWxrYW5EZXZpY2VFeHRlbnNp
b25zUmVxdWlyZWQpKHN0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1QgKiBwUGh5c2ljYWxEZXZpY2Us
IGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplKTsKK307CisKK3N0cnVjdCBW
Ul9JVlJPdmVybGF5X0ZuVGFibGUKK3sKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpGaW5kT3ZlcmxheSkoY2hhciAqIHBjaE92ZXJsYXlLZXksIFZST3Zl
cmxheUhhbmRsZV90ICogcE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0ZU92ZXJsYXkpKGNoYXIgKiBwY2hPdmVybGF5
S2V5LCBjaGFyICogcGNoT3ZlcmxheUZyaWVuZGx5TmFtZSwgVlJPdmVybGF5SGFuZGxlX3QgKiBw
T3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqRGVzdHJveU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0
SGlnaFF1YWxpdHlPdmVybGF5KShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwor
ICAgICAgIFZST3ZlcmxheUhhbmRsZV90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0SGln
aFF1YWxpdHlPdmVybGF5KSgpOworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxM
VFlQRSAqR2V0T3ZlcmxheUtleSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBj
aGFyICogcGNoVmFsdWUsIHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgRVZST3ZlcmxheUVycm9yICog
cEVycm9yKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92
ZXJsYXlOYW1lKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGNoYXIgKiBwY2hW
YWx1ZSwgdWludDMyX3QgdW5CdWZmZXJTaXplLCBFVlJPdmVybGF5RXJyb3IgKiBwRXJyb3IpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJs
YXlJbWFnZURhdGEpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdm9pZCAqIHB2
QnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIHVpbnQzMl90ICogcHVuV2lkdGgsIHVpbnQz
Ml90ICogcHVuSGVpZ2h0KTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRPdmVybGF5RXJyb3JOYW1lRnJvbUVudW0pKEVWUk92ZXJsYXlFcnJvciBlcnJvcik7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3Zlcmxh
eVJlbmRlcmluZ1BpZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJf
dCB1blBJRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRP
dmVybGF5UmVuZGVyaW5nUGlkKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJs
YXlGbGFnKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIFZST3ZlcmxheUZsYWdz
IGVPdmVybGF5RmxhZywgYm9vbCBiRW5hYmxlZCk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUZsYWcpKFZST3ZlcmxheUhhbmRsZV90
IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5RmxhZ3MgZU92ZXJsYXlGbGFnLCBib29sICogcGJF
bmFibGVkKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpTZXRPdmVybGF5Q29sb3IpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxv
YXQgZlJlZCwgZmxvYXQgZkdyZWVuLCBmbG9hdCBmQmx1ZSk7CisgICAgICAgRVZST3ZlcmxheUVy
cm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheUNvbG9yKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0ICogcGZSZWQsIGZsb2F0ICogcGZHcmVlbiwg
ZmxvYXQgKiBwZkJsdWUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKlNldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFu
ZGxlLCBmbG9hdCBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBbHBoYSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBmbG9hdCAqIHBmQWxwaGEpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlUZXhlbEFzcGVjdCkoVlJPdmVybGF5SGFuZGxl
X3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmVGV4ZWxBc3BlY3QpOworICAgICAgIEVWUk92ZXJs
YXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXhlbEFzcGVjdCko
VlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAqIHBmVGV4ZWxBc3BlY3Qp
OworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92
ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMy
X3QgdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkdldE92ZXJsYXlTb3J0T3JkZXIpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSwgdWludDMyX3QgKiBwdW5Tb3J0T3JkZXIpOworICAgICAgIEVWUk92ZXJsYXlFcnJv
ciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlXaWR0aEluTWV0ZXJzKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIGZsb2F0IGZXaWR0aEluTWV0ZXJzKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5
V2lkdGhJbk1ldGVycykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCAq
IHBmV2lkdGhJbk1ldGVycyk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2V0T3ZlcmxheUF1dG9DdXJ2ZURpc3RhbmNlUmFuZ2VJbk1ldGVycykoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBmbG9hdCBmTWluRGlzdGFuY2VJbk1ldGVy
cywgZmxvYXQgZk1heERpc3RhbmNlSW5NZXRlcnMpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlBdXRvQ3VydmVEaXN0YW5jZVJhbmdl
SW5NZXRlcnMpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgZmxvYXQgKiBwZk1p
bkRpc3RhbmNlSW5NZXRlcnMsIGZsb2F0ICogcGZNYXhEaXN0YW5jZUluTWV0ZXJzKTsKKyAgICAg
ICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5VGV4
dHVyZUNvbG9yU3BhY2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9y
U3BhY2UgZVRleHR1cmVDb2xvclNwYWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZUNvbG9yU3BhY2UpKFZST3Zlcmxh
eUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgRUNvbG9yU3BhY2UgKiBwZVRleHR1cmVDb2xvclNw
YWNlKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5VGV4dHVyZUJvdW5kcykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBzdHJ1Y3QgVlJUZXh0dXJlQm91bmRzX3QgKiBwT3ZlcmxheVRleHR1cmVCb3VuZHMpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlU
ZXh0dXJlQm91bmRzKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIHN0cnVjdCBW
UlRleHR1cmVCb3VuZHNfdCAqIHBPdmVybGF5VGV4dHVyZUJvdW5kcyk7CisgICAgICAgRVZST3Zl
cmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0T3ZlcmxheVRyYW5zZm9ybVR5
cGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgVlJPdmVybGF5VHJhbnNmb3Jt
VHlwZSAqIHBlVHJhbnNmb3JtVHlwZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheVRyYW5zZm9ybUFic29sdXRlKShWUk92ZXJsYXlI
YW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVUcmFja2lu
Z09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tpbmdPcmlnaW5Ub092ZXJs
YXlUcmFuc2Zvcm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlUcmFuc2Zvcm1BYnNvbHV0ZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCBFVHJhY2tpbmdVbml2ZXJzZU9yaWdpbiAqIHBlVHJhY2tpbmdPcmlnaW4s
IHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNraW5nT3JpZ2luVG9PdmVybGF5VHJhbnNm
b3JtKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZVJlbGF0aXZlKShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuVHJhY2tlZERldmljZSwg
c3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhY2tlZERldmljZVRvT3ZlcmxheVRyYW5zZm9y
bSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0
T3ZlcmxheVRyYW5zZm9ybVRyYWNrZWREZXZpY2VSZWxhdGl2ZSkoVlJPdmVybGF5SGFuZGxlX3Qg
dWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhfdCAqIHB1blRyYWNrZWREZXZpY2Us
IHN0cnVjdCBIbWRNYXRyaXgzNF90ICogcG1hdFRyYWNrZWREZXZpY2VUb092ZXJsYXlUcmFuc2Zv
cm0pOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNl
dE92ZXJsYXlUcmFuc2Zvcm1UcmFja2VkRGV2aWNlQ29tcG9uZW50KShWUk92ZXJsYXlIYW5kbGVf
dCB1bE92ZXJsYXlIYW5kbGUsIFRyYWNrZWREZXZpY2VJbmRleF90IHVuRGV2aWNlSW5kZXgsIGNo
YXIgKiBwY2hDb21wb25lbnROYW1lKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VHJhbnNmb3JtVHJhY2tlZERldmljZUNvbXBvbmVu
dCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBUcmFja2VkRGV2aWNlSW5kZXhf
dCAqIHB1bkRldmljZUluZGV4LCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSwgdWludDMyX3QgdW5D
b21wb25lbnROYW1lU2l6ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJM
RV9DQUxMVFlQRSAqU2hvd092ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGlk
ZU92ZXJsYXkpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgYm9v
bCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKklzT3ZlcmxheVZpc2libGUpKFZST3ZlcmxheUhh
bmRsZV90IHVsT3ZlcmxheUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqR2V0VHJhbnNmb3JtRm9yT3ZlcmxheUNvb3JkaW5hdGVzKShWUk92
ZXJsYXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUsIEVUcmFja2luZ1VuaXZlcnNlT3JpZ2luIGVU
cmFja2luZ09yaWdpbiwgc3RydWN0IEhtZFZlY3RvcjJfdCBjb29yZGluYXRlc0luT3ZlcmxheSwg
c3RydWN0IEhtZE1hdHJpeDM0X3QgKiBwbWF0VHJhbnNmb3JtKTsKKyAgICAgICBib29sIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqUG9sbE5leHRPdmVybGF5RXZlbnQpKFZST3ZlcmxheUhhbmRs
ZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IFZSRXZlbnRfdCAqIHBFdmVudCwgdWludDMyX3Qg
dW5jYlZSRXZlbnQpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FM
TFRZUEUgKkdldE92ZXJsYXlJbnB1dE1ldGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5
SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1ldGhvZCAqIHBlSW5wdXRNZXRob2QpOworICAgICAgIEVW
Uk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlJbnB1dE1l
dGhvZCkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBWUk92ZXJsYXlJbnB1dE1l
dGhvZCBlSW5wdXRNZXRob2QpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFC
TEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlNb3VzZVNjYWxlKShWUk92ZXJsYXlIYW5kbGVfdCB1bE92
ZXJsYXlIYW5kbGUsIHN0cnVjdCBIbWRWZWN0b3IyX3QgKiBwdmVjTW91c2VTY2FsZSk7CisgICAg
ICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0T3ZlcmxheU1v
dXNlU2NhbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFZl
Y3RvcjJfdCAqIHB2ZWNNb3VzZVNjYWxlKTsKKyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9D
QUxMVFlQRSAqQ29tcHV0ZU92ZXJsYXlJbnRlcnNlY3Rpb24pKFZST3ZlcmxheUhhbmRsZV90IHVs
T3ZlcmxheUhhbmRsZSwgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblBhcmFtc190ICogcFBh
cmFtcywgc3RydWN0IFZST3ZlcmxheUludGVyc2VjdGlvblJlc3VsdHNfdCAqIHBSZXN1bHRzKTsK
KyAgICAgICBib29sIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSGFuZGxlQ29udHJvbGxlck92
ZXJsYXlJbnRlcmFjdGlvbkFzTW91c2UpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgVHJhY2tlZERldmljZUluZGV4X3QgdW5Db250cm9sbGVyRGV2aWNlSW5kZXgpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpJc0hvdmVyVGFyZ2V0T3ZlcmxheSkoVlJP
dmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlKTsKKyAgICAgICBWUk92ZXJsYXlIYW5kbGVf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEdhbWVwYWRGb2N1c092ZXJsYXkpKCk7Cisg
ICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0R2FtZXBh
ZEZvY3VzT3ZlcmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxOZXdGb2N1c092ZXJsYXkpOworICAg
ICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldE92ZXJsYXlO
ZWlnaGJvcikoRU92ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxlX3Qg
dWxGcm9tLCBWUk92ZXJsYXlIYW5kbGVfdCB1bFRvKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3Ig
KE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpNb3ZlR2FtZXBhZEZvY3VzVG9OZWlnaGJvcikoRU92
ZXJsYXlEaXJlY3Rpb24gZURpcmVjdGlvbiwgVlJPdmVybGF5SGFuZGxlX3QgdWxGcm9tKTsKKyAg
ICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRPdmVybGF5
VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBzdHJ1Y3QgVGV4dHVy
ZV90ICogcFRleHR1cmUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVf
Q0FMTFRZUEUgKkNsZWFyT3ZlcmxheVRleHR1cmUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3Zlcmxh
eUhhbmRsZSk7CisgICAgICAgRVZST3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqU2V0T3ZlcmxheVJhdykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB2b2lk
ICogcHZCdWZmZXIsIHVpbnQzMl90IHVuV2lkdGgsIHVpbnQzMl90IHVuSGVpZ2h0LCB1aW50MzJf
dCB1bkRlcHRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpTZXRPdmVybGF5RnJvbUZpbGUpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgY2hhciAqIHBjaEZpbGVQYXRoKTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9G
TlRBQkxFX0NBTExUWVBFICpHZXRPdmVybGF5VGV4dHVyZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxP
dmVybGF5SGFuZGxlLCB2b2lkICoqIHBOYXRpdmVUZXh0dXJlSGFuZGxlLCB2b2lkICogcE5hdGl2
ZVRleHR1cmVSZWYsIHVpbnQzMl90ICogcFdpZHRoLCB1aW50MzJfdCAqIHBIZWlnaHQsIHVpbnQz
Ml90ICogcE5hdGl2ZUZvcm1hdCwgRVRleHR1cmVUeXBlICogcEFQSVR5cGUsIEVDb2xvclNwYWNl
ICogcENvbG9yU3BhY2UsIHN0cnVjdCBWUlRleHR1cmVCb3VuZHNfdCAqIHBUZXh0dXJlQm91bmRz
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZWxl
YXNlTmF0aXZlT3ZlcmxheUhhbmRsZSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCB2b2lkICogcE5hdGl2ZVRleHR1cmVIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAo
T1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldE92ZXJsYXlUZXh0dXJlU2l6ZSkoVlJPdmVybGF5
SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50MzJfdCAqIHBXaWR0aCwgdWludDMyX3QgKiBw
SGVpZ2h0KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpDcmVhdGVEYXNoYm9hcmRPdmVybGF5KShjaGFyICogcGNoT3ZlcmxheUtleSwgY2hhciAqIHBj
aE92ZXJsYXlGcmllbmRseU5hbWUsIFZST3ZlcmxheUhhbmRsZV90ICogcE1haW5IYW5kbGUsIFZS
T3ZlcmxheUhhbmRsZV90ICogcFRodW1ibmFpbEhhbmRsZSk7CisgICAgICAgYm9vbCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKklzRGFzaGJvYXJkVmlzaWJsZSkoKTsKKyAgICAgICBib29sIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqSXNBY3RpdmVEYXNoYm9hcmRPdmVybGF5KShWUk92ZXJs
YXlIYW5kbGVfdCB1bE92ZXJsYXlIYW5kbGUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BF
TlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldERhc2hib2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MpKFZS
T3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgdWludDMyX3QgdW5Qcm9jZXNzSWQpOwor
ICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldERhc2hi
b2FyZE92ZXJsYXlTY2VuZVByb2Nlc3MpKFZST3ZlcmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRs
ZSwgdWludDMyX3QgKiBwdW5Qcm9jZXNzSWQpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxF
X0NBTExUWVBFICpTaG93RGFzaGJvYXJkKShjaGFyICogcGNoT3ZlcmxheVRvU2hvdyk7CisgICAg
ICAgVHJhY2tlZERldmljZUluZGV4X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRQcmlt
YXJ5RGFzaGJvYXJkRGV2aWNlKSgpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNob3dLZXlib2FyZCkoRUdhbWVwYWRUZXh0SW5wdXRNb2RlIGVJbnB1
dE1vZGUsIEVHYW1lcGFkVGV4dElucHV0TGluZU1vZGUgZUxpbmVJbnB1dE1vZGUsIGNoYXIgKiBw
Y2hEZXNjcmlwdGlvbiwgdWludDMyX3QgdW5DaGFyTWF4LCBjaGFyICogcGNoRXhpc3RpbmdUZXh0
LCBib29sIGJVc2VNaW5pbWFsTW9kZSwgdWludDY0X3QgdVVzZXJWYWx1ZSk7CisgICAgICAgRVZS
T3ZlcmxheUVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqU2hvd0tleWJvYXJkRm9yT3Zl
cmxheSkoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCBFR2FtZXBhZFRleHRJbnB1
dE1vZGUgZUlucHV0TW9kZSwgRUdhbWVwYWRUZXh0SW5wdXRMaW5lTW9kZSBlTGluZUlucHV0TW9k
ZSwgY2hhciAqIHBjaERlc2NyaXB0aW9uLCB1aW50MzJfdCB1bkNoYXJNYXgsIGNoYXIgKiBwY2hF
eGlzdGluZ1RleHQsIGJvb2wgYlVzZU1pbmltYWxNb2RlLCB1aW50NjRfdCB1VXNlclZhbHVlKTsK
KyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldEtleWJvYXJkVGV4
dCkoY2hhciAqIHBjaFRleHQsIHVpbnQzMl90IGNjaFRleHQpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpIaWRlS2V5Ym9hcmQpKCk7CisgICAgICAgdm9pZCAoT1BFTlZS
X0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEtleWJvYXJkVHJhbnNmb3JtQWJzb2x1dGUpKEVUcmFja2lu
Z1VuaXZlcnNlT3JpZ2luIGVUcmFja2luZ09yaWdpbiwgc3RydWN0IEhtZE1hdHJpeDM0X3QgKiBw
bWF0VHJhY2tpbmdPcmlnaW5Ub0tleWJvYXJkVHJhbnNmb3JtKTsKKyAgICAgICB2b2lkIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqU2V0S2V5Ym9hcmRQb3NpdGlvbkZvck92ZXJsYXkpKFZST3Zl
cmxheUhhbmRsZV90IHVsT3ZlcmxheUhhbmRsZSwgc3RydWN0IEhtZFJlY3QyX3QgYXZvaWRSZWN0
KTsKKyAgICAgICBFVlJPdmVybGF5RXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpTZXRP
dmVybGF5SW50ZXJzZWN0aW9uTWFzaykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxl
LCBzdHJ1Y3QgVlJPdmVybGF5SW50ZXJzZWN0aW9uTWFza1ByaW1pdGl2ZV90ICogcE1hc2tQcmlt
aXRpdmVzLCB1aW50MzJfdCB1bk51bU1hc2tQcmltaXRpdmVzLCB1aW50MzJfdCB1blByaW1pdGl2
ZVNpemUpOworICAgICAgIEVWUk92ZXJsYXlFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkdldE92ZXJsYXlGbGFncykoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50
MzJfdCAqIHBGbGFncyk7CisgICAgICAgVlJNZXNzYWdlT3ZlcmxheVJlc3BvbnNlIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU2hvd01lc3NhZ2VPdmVybGF5KShjaGFyICogcGNoVGV4dCwgY2hh
ciAqIHBjaENhcHRpb24sIGNoYXIgKiBwY2hCdXR0b24wVGV4dCwgY2hhciAqIHBjaEJ1dHRvbjFU
ZXh0LCBjaGFyICogcGNoQnV0dG9uMlRleHQsIGNoYXIgKiBwY2hCdXR0b24zVGV4dCk7Cit9Owor
CitzdHJ1Y3QgVlJfSVZSUmVuZGVyTW9kZWxzX0ZuVGFibGUKK3sKKyAgICAgICBFVlJSZW5kZXJN
b2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZFJlbmRlck1vZGVsX0FzeW5j
KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqKiBwcFJl
bmRlck1vZGVsKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVJl
bmRlck1vZGVsKShzdHJ1Y3QgUmVuZGVyTW9kZWxfdCAqIHBSZW5kZXJNb2RlbCk7CisgICAgICAg
RVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkxvYWRUZXh0dXJl
X0FzeW5jKShUZXh0dXJlSURfdCB0ZXh0dXJlSWQsIHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJl
TWFwX3QgKiogcHBUZXh0dXJlKTsKKyAgICAgICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQ
RSAqRnJlZVRleHR1cmUpKHN0cnVjdCBSZW5kZXJNb2RlbF9UZXh0dXJlTWFwX3QgKiBwVGV4dHVy
ZSk7CisgICAgICAgRVZSUmVuZGVyTW9kZWxFcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUg
KkxvYWRUZXh0dXJlRDNEMTFfQXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqIHBE
M0QxMURldmljZSwgdm9pZCAqKiBwcEQzRDExVGV4dHVyZTJEKTsKKyAgICAgICBFVlJSZW5kZXJN
b2RlbEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqTG9hZEludG9UZXh0dXJlRDNEMTFf
QXN5bmMpKFRleHR1cmVJRF90IHRleHR1cmVJZCwgdm9pZCAqIHBEc3RUZXh0dXJlKTsKKyAgICAg
ICB2b2lkIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqRnJlZVRleHR1cmVEM0QxMSkodm9pZCAq
IHBEM0QxMVRleHR1cmUyRCk7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRSZW5kZXJNb2RlbE5hbWUpKHVpbnQzMl90IHVuUmVuZGVyTW9kZWxJbmRleCwgY2hh
ciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5SZW5kZXJNb2RlbE5hbWVMZW4pOwor
ICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxD
b3VudCkoKTsKKyAgICAgICB1aW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENv
bXBvbmVudENvdW50KShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lKTsKKyAgICAgICB1aW50MzJf
dCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldENvbXBvbmVudE5hbWUpKGNoYXIgKiBwY2hS
ZW5kZXJNb2RlbE5hbWUsIHVpbnQzMl90IHVuQ29tcG9uZW50SW5kZXgsIGNoYXIgKiBwY2hDb21w
b25lbnROYW1lLCB1aW50MzJfdCB1bkNvbXBvbmVudE5hbWVMZW4pOworICAgICAgIHVpbnQ2NF90
IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50QnV0dG9uTWFzaykoY2hhciAq
IHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOworICAgICAgIHVp
bnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0Q29tcG9uZW50UmVuZGVyTW9kZWxO
YW1lKShjaGFyICogcGNoUmVuZGVyTW9kZWxOYW1lLCBjaGFyICogcGNoQ29tcG9uZW50TmFtZSwg
Y2hhciAqIHBjaENvbXBvbmVudFJlbmRlck1vZGVsTmFtZSwgdWludDMyX3QgdW5Db21wb25lbnRS
ZW5kZXJNb2RlbE5hbWVMZW4pOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRDb21wb25lbnRTdGF0ZSkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBj
aENvbXBvbmVudE5hbWUsIFZSQ29udHJvbGxlclN0YXRlX3QgKiBwQ29udHJvbGxlclN0YXRlLCBz
dHJ1Y3QgUmVuZGVyTW9kZWxfQ29udHJvbGxlck1vZGVfU3RhdGVfdCAqIHBTdGF0ZSwgc3RydWN0
IFJlbmRlck1vZGVsX0NvbXBvbmVudFN0YXRlX3QgKiBwQ29tcG9uZW50U3RhdGUpOworICAgICAg
IGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW5kZXJNb2RlbEhhc0NvbXBvbmVudCko
Y2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBjaENvbXBvbmVudE5hbWUpOworICAg
ICAgIHVpbnQzMl90IChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0UmVuZGVyTW9kZWxUaHVt
Ym5haWxVUkwpKGNoYXIgKiBwY2hSZW5kZXJNb2RlbE5hbWUsIGNoYXIgKiBwY2hUaHVtYm5haWxV
UkwsIHVpbnQzMl90IHVuVGh1bWJuYWlsVVJMTGVuLCBFVlJSZW5kZXJNb2RlbEVycm9yICogcGVF
cnJvcik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZW5k
ZXJNb2RlbE9yaWdpbmFsUGF0aCkoY2hhciAqIHBjaFJlbmRlck1vZGVsTmFtZSwgY2hhciAqIHBj
aE9yaWdpbmFsUGF0aCwgdWludDMyX3QgdW5PcmlnaW5hbFBhdGhMZW4sIEVWUlJlbmRlck1vZGVs
RXJyb3IgKiBwZUVycm9yKTsKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRSZW5kZXJNb2RlbEVycm9yTmFtZUZyb21FbnVtKShFVlJSZW5kZXJNb2RlbEVycm9yIGVy
cm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJOb3RpZmljYXRpb25zX0ZuVGFibGUKK3sKKyAgICAg
ICBFVlJOb3RpZmljYXRpb25FcnJvciAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkNyZWF0ZU5v
dGlmaWNhdGlvbikoVlJPdmVybGF5SGFuZGxlX3QgdWxPdmVybGF5SGFuZGxlLCB1aW50NjRfdCB1
bFVzZXJWYWx1ZSwgRVZSTm90aWZpY2F0aW9uVHlwZSB0eXBlLCBjaGFyICogcGNoVGV4dCwgRVZS
Tm90aWZpY2F0aW9uU3R5bGUgc3R5bGUsIHN0cnVjdCBOb3RpZmljYXRpb25CaXRtYXBfdCAqIHBJ
bWFnZSwgVlJOb3RpZmljYXRpb25JZCAqIHBOb3RpZmljYXRpb25JZCk7CisgICAgICAgRVZSTm90
aWZpY2F0aW9uRXJyb3IgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVOb3RpZmljYXRp
b24pKFZSTm90aWZpY2F0aW9uSWQgbm90aWZpY2F0aW9uSWQpOworfTsKKworc3RydWN0IFZSX0lW
UlNldHRpbmdzX0ZuVGFibGUKK3sKKyAgICAgICBjaGFyICogKE9QRU5WUl9GTlRBQkxFX0NBTExU
WVBFICpHZXRTZXR0aW5nc0Vycm9yTmFtZUZyb21FbnVtKShFVlJTZXR0aW5nc0Vycm9yIGVFcnJv
cik7CisgICAgICAgYm9vbCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlN5bmMpKGJvb2wgYkZv
cmNlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAgICAgdm9pZCAoT1BFTlZSX0ZO
VEFCTEVfQ0FMTFRZUEUgKlNldEJvb2wpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0
dGluZ3NLZXksIGJvb2wgYlZhbHVlLCBFVlJTZXR0aW5nc0Vycm9yICogcGVFcnJvcik7CisgICAg
ICAgdm9pZCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKlNldEludDMyKShjaGFyICogcGNoU2Vj
dGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NF
cnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpT
ZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgZmxvYXQg
ZmxWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5W
Ul9GTlRBQkxFX0NBTExUWVBFICpTZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICog
cGNoU2V0dGluZ3NLZXksIGNoYXIgKiBwY2hWYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJy
b3IpOworICAgICAgIGJvb2wgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRCb29sKShjaGFy
ICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5nc0Vycm9yICog
cGVFcnJvcik7CisgICAgICAgaW50MzJfdCAoT1BFTlZSX0ZOVEFCTEVfQ0FMTFRZUEUgKkdldElu
dDMyKShjaGFyICogcGNoU2VjdGlvbiwgY2hhciAqIHBjaFNldHRpbmdzS2V5LCBFVlJTZXR0aW5n
c0Vycm9yICogcGVFcnJvcik7CisgICAgICAgZmxvYXQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBF
ICpHZXRGbG9hdCkoY2hhciAqIHBjaFNlY3Rpb24sIGNoYXIgKiBwY2hTZXR0aW5nc0tleSwgRVZS
U2V0dGluZ3NFcnJvciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NB
TExUWVBFICpHZXRTdHJpbmcpKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NL
ZXksIGNoYXIgKiBwY2hWYWx1ZSwgdWludDMyX3QgdW5WYWx1ZUxlbiwgRVZSU2V0dGluZ3NFcnJv
ciAqIHBlRXJyb3IpOworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1v
dmVTZWN0aW9uKShjaGFyICogcGNoU2VjdGlvbiwgRVZSU2V0dGluZ3NFcnJvciAqIHBlRXJyb3Ip
OworICAgICAgIHZvaWQgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpSZW1vdmVLZXlJblNlY3Rp
b24pKGNoYXIgKiBwY2hTZWN0aW9uLCBjaGFyICogcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdz
RXJyb3IgKiBwZUVycm9yKTsKK307CisKK3N0cnVjdCBWUl9JVlJTY3JlZW5zaG90c19GblRhYmxl
Cit7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
UmVxdWVzdFNjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5kbGVfdCAqIHBPdXRTY3JlZW5zaG90SGFu
ZGxlLCBFVlJTY3JlZW5zaG90VHlwZSB0eXBlLCBjaGFyICogcGNoUHJldmlld0ZpbGVuYW1lLCBj
aGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqSG9va1NjcmVlbnNob3QpKEVWUlNjcmVlbnNob3RUeXBlICogcFN1
cHBvcnRlZFR5cGVzLCBpbnQgbnVtVHlwZXMpOworICAgICAgIEVWUlNjcmVlbnNob3RUeXBlIChP
UEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAqR2V0U2NyZWVuc2hvdFByb3BlcnR5VHlwZSkoU2NyZWVu
c2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RFcnJvciAqIHBFcnJv
cik7CisgICAgICAgdWludDMyX3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRTY3JlZW5z
aG90UHJvcGVydHlGaWxlbmFtZSkoU2NyZWVuc2hvdEhhbmRsZV90IHNjcmVlbnNob3RIYW5kbGUs
IEVWUlNjcmVlbnNob3RQcm9wZXJ0eUZpbGVuYW1lcyBmaWxlbmFtZVR5cGUsIGNoYXIgKiBwY2hG
aWxlbmFtZSwgdWludDMyX3QgY2NoRmlsZW5hbWUsIEVWUlNjcmVlbnNob3RFcnJvciAqIHBFcnJv
cik7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJfRk5UQUJMRV9DQUxMVFlQRSAq
VXBkYXRlU2NyZWVuc2hvdFByb2dyZXNzKShTY3JlZW5zaG90SGFuZGxlX3Qgc2NyZWVuc2hvdEhh
bmRsZSwgZmxvYXQgZmxQcm9ncmVzcyk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVO
VlJfRk5UQUJMRV9DQUxMVFlQRSAqVGFrZVN0ZXJlb1NjcmVlbnNob3QpKFNjcmVlbnNob3RIYW5k
bGVfdCAqIHBPdXRTY3JlZW5zaG90SGFuZGxlLCBjaGFyICogcGNoUHJldmlld0ZpbGVuYW1lLCBj
aGFyICogcGNoVlJGaWxlbmFtZSk7CisgICAgICAgRVZSU2NyZWVuc2hvdEVycm9yIChPUEVOVlJf
Rk5UQUJMRV9DQUxMVFlQRSAqU3VibWl0U2NyZWVuc2hvdCkoU2NyZWVuc2hvdEhhbmRsZV90IHNj
cmVlbnNob3RIYW5kbGUsIEVWUlNjcmVlbnNob3RUeXBlIHR5cGUsIGNoYXIgKiBwY2hTb3VyY2VQ
cmV2aWV3RmlsZW5hbWUsIGNoYXIgKiBwY2hTb3VyY2VWUkZpbGVuYW1lKTsKK307CisKK3N0cnVj
dCBWUl9JVlJSZXNvdXJjZXNfRm5UYWJsZQoreworICAgICAgIHVpbnQzMl90IChPUEVOVlJfRk5U
QUJMRV9DQUxMVFlQRSAqTG9hZFNoYXJlZFJlc291cmNlKShjaGFyICogcGNoUmVzb3VyY2VOYW1l
LCBjaGFyICogcGNoQnVmZmVyLCB1aW50MzJfdCB1bkJ1ZmZlckxlbik7CisgICAgICAgdWludDMy
X3QgKE9QRU5WUl9GTlRBQkxFX0NBTExUWVBFICpHZXRSZXNvdXJjZUZ1bGxQYXRoKShjaGFyICog
cGNoUmVzb3VyY2VOYW1lLCBjaGFyICogcGNoUmVzb3VyY2VUeXBlRGlyZWN0b3J5LCBjaGFyICog
cGNoUGF0aEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4pOworfTsKKworCisjaWYgMAorLy8g
R2xvYmFsIGVudHJ5IHBvaW50cworU19BUEkgaW50cHRyX3QgVlJfSW5pdEludGVybmFsKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIEVWUkFwcGxpY2F0aW9uVHlwZSBlVHlwZSApOworU19BUEkgdm9p
ZCBWUl9TaHV0ZG93bkludGVybmFsKCk7CitTX0FQSSBib29sIFZSX0lzSG1kUHJlc2VudCgpOwor
U19BUEkgaW50cHRyX3QgVlJfR2V0R2VuZXJpY0ludGVyZmFjZSggY29uc3QgY2hhciAqcGNoSW50
ZXJmYWNlVmVyc2lvbiwgRVZSSW5pdEVycm9yICpwZUVycm9yICk7CitTX0FQSSBib29sIFZSX0lz
UnVudGltZUluc3RhbGxlZCgpOworU19BUEkgY29uc3QgY2hhciAqIFZSX0dldFZSSW5pdEVycm9y
QXNTeW1ib2woIEVWUkluaXRFcnJvciBlcnJvciApOworU19BUEkgY29uc3QgY2hhciAqIFZSX0dl
dFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIEVWUkluaXRFcnJvciBlcnJvciApOwor
I2VuZGlmCisKKyNlbmRpZiAvLyBfX09QRU5WUl9BUElfRkxBVF9IX18KKworCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9vcGVudnIvaGVhZGVycy9vcGVudnJfZHJpdmVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDhkMWY3MTE1OWRjMzc4NWMwOWVjZGVkOWJmNDBlNTkzOWUyNDY3MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9oZWFkZXJzL29wZW52cl9kcml2ZXIuaApAQCAt
MCwwICsxLDI1NDEgQEAKKyNwcmFnbWEgb25jZQorCisvLyBvcGVudnJfZHJpdmVyLmgKKy8vPT09
PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworLy8gRHlu
YW1pY2FsbHkgZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGRpcmVjdGx5
LgorCisjaWZuZGVmIF9PUEVOVlJfRFJJVkVSX0FQSQorI2RlZmluZSBfT1BFTlZSX0RSSVZFUl9B
UEkKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisKKworLy8gdnJ0eXBlcy5oCisjaWZuZGVmIF9J
TkNMVURFX1ZSVFlQRVNfSAorI2RlZmluZSBfSU5DTFVERV9WUlRZUEVTX0gKKworLy8gRm9yd2Fy
ZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVxdWlyaW5nIHZ1bGthbi5oCitzdHJ1Y3QgVmtEZXZp
Y2VfVDsKK3N0cnVjdCBWa1BoeXNpY2FsRGV2aWNlX1Q7CitzdHJ1Y3QgVmtJbnN0YW5jZV9UOwor
c3RydWN0IFZrUXVldWVfVDsKKworLy8gRm9yd2FyZCBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgcmVx
dWlyaW5nIGQzZDEyLmgKK3N0cnVjdCBJRDNEMTJSZXNvdXJjZTsKK3N0cnVjdCBJRDNEMTJDb21t
YW5kUXVldWU7CisKK25hbWVzcGFjZSB2cgoreworCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8
IGRlZmluZWQoX19BUFBMRV9fKSAKKyAgICAgICAvLyBUaGUgMzItYml0IHZlcnNpb24gb2YgZ2Nj
IGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB1aW50NjQgYW5kIGRvdWJsZSBzZXQg
dG8KKyAgICAgICAvLyA0IG1lYW5pbmcgdGhhdCBldmVuIHdpdGggI3ByYWdtYSBwYWNrKDgpIHRo
ZXNlIHR5cGVzIHdpbGwgb25seSBiZSBmb3VyLWJ5dGUgYWxpZ25lZC4KKyAgICAgICAvLyBUaGUg
NjQtYml0IHZlcnNpb24gb2YgZ2NjIGhhcyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciB0
aGVzZSB0eXBlcyBzZXQgdG8KKyAgICAgICAvLyA4IG1lYW5pbmcgdGhhdCB1bmxlc3Mgd2UgdXNl
ICNwcmFnbWEgcGFjayg0KSBvdXIgc3RydWN0dXJlcyB3aWxsIGdldCBiaWdnZXIuCisgICAgICAg
Ly8gVGhlIDY0LWJpdCBzdHJ1Y3R1cmUgcGFja2luZyBoYXMgdG8gbWF0Y2ggdGhlIDMyLWJpdCBz
dHJ1Y3R1cmUgcGFja2luZyBmb3IgZWFjaCBwbGF0Zm9ybS4KKyAgICAgICAjcHJhZ21hIHBhY2so
IHB1c2gsIDQgKQorI2Vsc2UKKyAgICAgICAjcHJhZ21hIHBhY2soIHB1c2gsIDggKQorI2VuZGlm
CisKK3R5cGVkZWYgdm9pZCogZ2xTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7Cit0eXBlZGVmIGludDMy
X3QgZ2xJbnRfdDsKK3R5cGVkZWYgdWludDMyX3QgZ2xVSW50X3Q7CisKKy8vIHJpZ2h0LWhhbmRl
ZCBzeXN0ZW0KKy8vICt5IGlzIHVwCisvLyAreCBpcyB0byB0aGUgcmlnaHQKKy8vIC16IGlzIGdv
aW5nIGF3YXkgZnJvbSB5b3UKKy8vIERpc3RhbmNlIHVuaXQgaXMgIG1ldGVycworc3RydWN0IEht
ZE1hdHJpeDM0X3QKK3sKKyAgICAgICBmbG9hdCBtWzNdWzRdOworfTsKKworc3RydWN0IEhtZE1h
dHJpeDQ0X3QKK3sKKyAgICAgICBmbG9hdCBtWzRdWzRdOworfTsKKworc3RydWN0IEhtZFZlY3Rv
cjNfdAoreworICAgICAgIGZsb2F0IHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yNF90Cit7
CisgICAgICAgZmxvYXQgdls0XTsKK307CisKK3N0cnVjdCBIbWRWZWN0b3IzZF90Cit7CisgICAg
ICAgZG91YmxlIHZbM107Cit9OworCitzdHJ1Y3QgSG1kVmVjdG9yMl90Cit7CisgICAgICAgZmxv
YXQgdlsyXTsKK307CisKK3N0cnVjdCBIbWRRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUg
dywgeCwgeSwgejsKK307CisKK3N0cnVjdCBIbWRDb2xvcl90Cit7CisgICAgICAgZmxvYXQgciwg
ZywgYiwgYTsKK307CisKK3N0cnVjdCBIbWRRdWFkX3QKK3sKKyAgICAgICBIbWRWZWN0b3IzX3Qg
dkNvcm5lcnNbIDQgXTsKK307CisKK3N0cnVjdCBIbWRSZWN0Ml90Cit7CisgICAgICAgSG1kVmVj
dG9yMl90IHZUb3BMZWZ0OworICAgICAgIEhtZFZlY3RvcjJfdCB2Qm90dG9tUmlnaHQ7Cit9Owor
CisvKiogVXNlZCB0byByZXR1cm4gdGhlIHBvc3QtZGlzdG9ydGlvbiBVVnMgZm9yIGVhY2ggY29s
b3IgY2hhbm5lbC4gCisqIFVWcyByYW5nZSBmcm9tIDAgdG8gMSB3aXRoIDAsMCBpbiB0aGUgdXBw
ZXIgbGVmdCBjb3JuZXIgb2YgdGhlIAorKiBzb3VyY2UgcmVuZGVyIHRhcmdldC4gVGhlIDAsMCB0
byAxLDEgcmFuZ2UgY292ZXJzIGEgc2luZ2xlIGV5ZS4gKi8KK3N0cnVjdCBEaXN0b3J0aW9uQ29v
cmRpbmF0ZXNfdAoreworICAgICAgIGZsb2F0IHJmUmVkWzJdOworICAgICAgIGZsb2F0IHJmR3Jl
ZW5bMl07CisgICAgICAgZmxvYXQgcmZCbHVlWzJdOworfTsKKworZW51bSBFVlJFeWUKK3sKKyAg
ICAgICBFeWVfTGVmdCA9IDAsCisgICAgICAgRXllX1JpZ2h0ID0gMQorfTsKKworZW51bSBFVGV4
dHVyZVR5cGUKK3sKKyAgICAgICBUZXh0dXJlVHlwZV9EaXJlY3RYID0gMCwgLy8gSGFuZGxlIGlz
IGFuIElEM0QxMVRleHR1cmUKKyAgICAgICBUZXh0dXJlVHlwZV9PcGVuR0wgPSAxLCAgLy8gSGFu
ZGxlIGlzIGFuIE9wZW5HTCB0ZXh0dXJlIG5hbWUgb3IgYW4gT3BlbkdMIHJlbmRlciBidWZmZXIg
bmFtZSwgZGVwZW5kaW5nIG9uIHN1Ym1pdCBmbGFncworICAgICAgIFRleHR1cmVUeXBlX1Z1bGth
biA9IDIsIC8vIEhhbmRsZSBpcyBhIHBvaW50ZXIgdG8gYSBWUlZ1bGthblRleHR1cmVEYXRhX3Qg
c3RydWN0dXJlCisgICAgICAgVGV4dHVyZVR5cGVfSU9TdXJmYWNlID0gMywgLy8gSGFuZGxlIGlz
IGEgbWFjT1MgY3Jvc3MtcHJvY2Vzcy1zaGFyYWJsZSBJT1N1cmZhY2UKKyAgICAgICBUZXh0dXJl
VHlwZV9EaXJlY3RYMTIgPSA0LCAvLyBIYW5kbGUgaXMgYSBwb2ludGVyIHRvIGEgRDNEMTJUZXh0
dXJlRGF0YV90IHN0cnVjdHVyZQorfTsKKworZW51bSBFQ29sb3JTcGFjZQoreworICAgICAgIENv
bG9yU3BhY2VfQXV0byA9IDAsICAgICAgIC8vIEFzc3VtZXMgJ2dhbW1hJyBmb3IgOC1iaXQgcGVy
IGNvbXBvbmVudCBmb3JtYXRzLCBvdGhlcndpc2UgJ2xpbmVhcicuICBUaGlzIG1pcnJvcnMgdGhl
IERYR0kgZm9ybWF0cyB3aGljaCBoYXZlIF9TUkdCIHZhcmlhbnRzLgorICAgICAgIENvbG9yU3Bh
Y2VfR2FtbWEgPSAxLCAgICAgICAvLyBUZXh0dXJlIGRhdGEgY2FuIGJlIGRpc3BsYXllZCBkaXJl
Y3RseSBvbiB0aGUgZGlzcGxheSB3aXRob3V0IGFueSBjb252ZXJzaW9uIChhLmsuYS4gZGlzcGxh
eSBuYXRpdmUgZm9ybWF0KS4KKyAgICAgICBDb2xvclNwYWNlX0xpbmVhciA9IDIsICAgICAgIC8v
IFNhbWUgYXMgZ2FtbWEgYnV0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGxpbmVhciByZXByZXNl
bnRhdGlvbiB1c2luZyBEWEdJJ3Mgc1JHQiBjb252ZXJzaW9uIGFsZ29yaXRobS4KK307CisKK3N0
cnVjdCBUZXh0dXJlX3QKK3sKKyAgICAgICB2b2lkKiBoYW5kbGU7IC8vIFNlZSBFVGV4dHVyZVR5
cGUgZGVmaW5pdGlvbiBhYm92ZQorICAgICAgIEVUZXh0dXJlVHlwZSBlVHlwZTsKKyAgICAgICBF
Q29sb3JTcGFjZSBlQ29sb3JTcGFjZTsKK307CisKKy8vIEhhbmRsZSB0byBhIHNoYXJlZCB0ZXh0
dXJlIChIQU5ETEUgb24gV2luZG93cyBvYnRhaW5lZCB1c2luZyBPcGVuU2hhcmVkUmVzb3VyY2Up
LgordHlwZWRlZiB1aW50NjRfdCBTaGFyZWRUZXh0dXJlSGFuZGxlX3Q7CisjZGVmaW5lIElOVkFM
SURfU0hBUkVEX1RFWFRVUkVfSEFORExFICAgICAgICgodnI6OlNoYXJlZFRleHR1cmVIYW5kbGVf
dCkwKQorCitlbnVtIEVUcmFja2luZ1Jlc3VsdAoreworICAgICAgIFRyYWNraW5nUmVzdWx0X1Vu
aW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAgICBUcmFja2luZ1Jl
c3VsdF9DYWxpYnJhdGluZ19JblByb2dyZXNzICAgICAgID0gMTAwLAorICAgICAgIFRyYWNraW5n
UmVzdWx0X0NhbGlicmF0aW5nX091dE9mUmFuZ2UgICAgICAgPSAxMDEsCisKKyAgICAgICBUcmFj
a2luZ1Jlc3VsdF9SdW5uaW5nX09LICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwLAor
ICAgICAgIFRyYWNraW5nUmVzdWx0X1J1bm5pbmdfT3V0T2ZSYW5nZSAgICAgICAgICAgICAgPSAy
MDEsCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3Qga191bk1heERyaXZlckRlYnVnUmVzcG9u
c2VTaXplID0gMzI3Njg7CisKKy8qKiBVc2VkIHRvIHBhc3MgZGV2aWNlIElEcyB0byBBUEkgY2Fs
bHMgKi8KK3R5cGVkZWYgdWludDMyX3QgVHJhY2tlZERldmljZUluZGV4X3Q7CitzdGF0aWMgY29u
c3QgdWludDMyX3Qga191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgPSAwOworc3RhdGljIGNvbnN0
IHVpbnQzMl90IGtfdW5NYXhUcmFja2VkRGV2aWNlQ291bnQgPSAxNjsKK3N0YXRpYyBjb25zdCB1
aW50MzJfdCBrX3VuVHJhY2tlZERldmljZUluZGV4T3RoZXIgPSAweEZGRkZGRkZFOworc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGtfdW5UcmFja2VkRGV2aWNlSW5kZXhJbnZhbGlkID0gMHhGRkZGRkZG
RjsKKworLyoqIERlc2NyaWJlcyB3aGF0IGtpbmQgb2Ygb2JqZWN0IGlzIGJlaW5nIHRyYWNrZWQg
YXQgYSBnaXZlbiBJRCAqLworZW51bSBFVHJhY2tlZERldmljZUNsYXNzCit7CisgICAgICAgVHJh
Y2tlZERldmljZUNsYXNzX0ludmFsaWQgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyB0aGUgSUQgd2FzIG5vdCB2YWxpZC4KKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfSE1EID0g
MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhlYWQtTW91bnRlZCBEaXNw
bGF5cworICAgICAgIFRyYWNrZWREZXZpY2VDbGFzc19Db250cm9sbGVyID0gMiwgICAgICAgICAg
ICAgICAgICAgICAvLyBUcmFja2VkIGNvbnRyb2xsZXJzCisgICAgICAgVHJhY2tlZERldmljZUNs
YXNzX0dlbmVyaWNUcmFja2VyID0gMywgICAgICAgICAgICAgIC8vIEdlbmVyaWMgdHJhY2tlcnMs
IHNpbWlsYXIgdG8gY29udHJvbGxlcnMKKyAgICAgICBUcmFja2VkRGV2aWNlQ2xhc3NfVHJhY2tp
bmdSZWZlcmVuY2UgPSA0LCAgICAgICAvLyBDYW1lcmEgYW5kIGJhc2Ugc3RhdGlvbnMgdGhhdCBz
ZXJ2ZSBhcyB0cmFja2luZyByZWZlcmVuY2UgcG9pbnRzCit9OworCisKKy8qKiBEZXNjcmliZXMg
d2hhdCBzcGVjaWZpYyByb2xlIGFzc29jaWF0ZWQgd2l0aCBhIHRyYWNrZWQgZGV2aWNlICovCitl
bnVtIEVUcmFja2VkQ29udHJvbGxlclJvbGUKK3sKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJv
bGVfSW52YWxpZCA9IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZh
bGlkIHZhbHVlIGZvciBjb250cm9sbGVyIHR5cGUKKyAgICAgICBUcmFja2VkQ29udHJvbGxlclJv
bGVfTGVmdEhhbmQgPSAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJh
Y2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBsZWZ0IGhhbmQKKyAgICAgICBUcmFja2Vk
Q29udHJvbGxlclJvbGVfUmlnaHRIYW5kID0gMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVHJhY2tlZCBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBoYW5kCit9OworCisK
Ky8qKiBkZXNjcmliZXMgYSBzaW5nbGUgcG9zZSBmb3IgYSB0cmFja2VkIG9iamVjdCAqLworc3Ry
dWN0IFRyYWNrZWREZXZpY2VQb3NlX3QKK3sKKyAgICAgICBIbWRNYXRyaXgzNF90IG1EZXZpY2VU
b0Fic29sdXRlVHJhY2tpbmc7CisgICAgICAgSG1kVmVjdG9yM190IHZWZWxvY2l0eTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gdmVsb2NpdHkgaW4gdHJhY2tlciBzcGFjZSBpbiBtL3MK
KyAgICAgICBIbWRWZWN0b3IzX3QgdkFuZ3VsYXJWZWxvY2l0eTsgICAgICAgICAgICAgIC8vIGFu
Z3VsYXIgdmVsb2NpdHkgaW4gcmFkaWFucy9zICg/KQorICAgICAgIEVUcmFja2luZ1Jlc3VsdCBl
VHJhY2tpbmdSZXN1bHQ7CisgICAgICAgYm9vbCBiUG9zZUlzVmFsaWQ7CisKKyAgICAgICAvLyBU
aGlzIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgZGV2aWNlIGNvbm5lY3RlZCBmb3IgdGhpcyBz
cG90IGluIHRoZSBwb3NlIGFycmF5LgorICAgICAgIC8vIEl0IGNvdWxkIGdvIGZyb20gdHJ1ZSB0
byBmYWxzZSBpZiB0aGUgdXNlciB1bnBsdWdzIHRoZSBkZXZpY2UuCisgICAgICAgYm9vbCBiRGV2
aWNlSXNDb25uZWN0ZWQ7Cit9OworCisvKiogSWRlbnRpZmllcyB3aGljaCBzdHlsZSBvZiB0cmFj
a2luZyBvcmlnaW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHVzZQorKiBmb3IgdGhlIHBvc2Vz
IGl0IGlzIHJlcXVlc3RpbmcgKi8KK2VudW0gRVRyYWNraW5nVW5pdmVyc2VPcmlnaW4KK3sKKyAg
ICAgICBUcmFja2luZ1VuaXZlcnNlU2VhdGVkID0gMCwgICAgICAgICAgICAgIC8vIFBvc2VzIGFy
ZSBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc2VhdGVkIHplcm8gcG9zZQorICAgICAgIFRyYWNr
aW5nVW5pdmVyc2VTdGFuZGluZyA9IDEsICAgICAgIC8vIFBvc2VzIGFyZSBwcm92aWRlZCByZWxh
dGl2ZSB0byB0aGUgc2FmZSBib3VuZHMgY29uZmlndXJlZCBieSB0aGUgdXNlcgorICAgICAgIFRy
YWNraW5nVW5pdmVyc2VSYXdBbmRVbmNhbGlicmF0ZWQgPSAyLCAgICAgICAvLyBQb3NlcyBhcmUg
cHJvdmlkZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlIGRyaXZlci4g
IEl0IGhhcyBZIHVwIGFuZCBpcyB1bmlmaWVkIGZvciBkZXZpY2VzIG9mIHRoZSBzYW1lIGRyaXZl
ci4gWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG9uZS4KK307CisKKy8vIFJlZmVycyB0byBh
IHNpbmdsZSBjb250YWluZXIgb2YgcHJvcGVydGllcwordHlwZWRlZiB1aW50NjRfdCBQcm9wZXJ0
eUNvbnRhaW5lckhhbmRsZV90OwordHlwZWRlZiB1aW50MzJfdCBQcm9wZXJ0eVR5cGVUYWdfdDsK
Kworc3RhdGljIGNvbnN0IFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qga191bEludmFsaWRQcm9w
ZXJ0eUNvbnRhaW5lciA9IDA7CitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bklu
dmFsaWRQcm9wZXJ0eVRhZyA9IDA7CisKKy8vIFVzZSB0aGVzZSB0YWdzIHRvIHNldC9nZXQgY29t
bW9uIHR5cGVzIGFzIHN0cnVjdCBwcm9wZXJ0aWVzCitzdGF0aWMgY29uc3QgUHJvcGVydHlUeXBl
VGFnX3Qga191bkZsb2F0UHJvcGVydHlUYWcgPSAxOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlw
ZVRhZ190IGtfdW5JbnQzMlByb3BlcnR5VGFnID0gMjsKK3N0YXRpYyBjb25zdCBQcm9wZXJ0eVR5
cGVUYWdfdCBrX3VuVWludDY0UHJvcGVydHlUYWcgPSAzOworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5Cb29sUHJvcGVydHlUYWcgPSA0Oworc3RhdGljIGNvbnN0IFByb3BlcnR5
VHlwZVRhZ190IGtfdW5TdHJpbmdQcm9wZXJ0eVRhZyA9IDU7CisKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuSG1kTWF0cml4MzRQcm9wZXJ0eVRhZyA9IDIwOworc3RhdGljIGNv
bnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRNYXRyaXg0NFByb3BlcnR5VGFnID0gMjE7Citz
dGF0aWMgY29uc3QgUHJvcGVydHlUeXBlVGFnX3Qga191bkhtZFZlY3RvcjNQcm9wZXJ0eVRhZyA9
IDIyOworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IbWRWZWN0b3I0UHJvcGVy
dHlUYWcgPSAyMzsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtfdW5IaWRkZW5B
cmVhUHJvcGVydHlUYWcgPSAzMDsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5VHlwZVRhZ190IGtf
dW5PcGVuVlJJbnRlcm5hbFJlc2VydmVkX1N0YXJ0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCBQcm9w
ZXJ0eVR5cGVUYWdfdCBrX3VuT3BlblZSSW50ZXJuYWxSZXNlcnZlZF9FbmQgPSAxMDAwMDsKKwor
CisvKiogRWFjaCBlbnRyeSBpbiB0aGlzIGVudW0gcmVwcmVzZW50cyBhIHByb3BlcnR5IHRoYXQg
Y2FuIGJlIHJldHJpZXZlZCBhYm91dCBhCisqIHRyYWNrZWQgZGV2aWNlLiBNYW55IGZpZWxkcyBh
cmUgb25seSB2YWxpZCBmb3Igb25lIEVUcmFja2VkRGV2aWNlQ2xhc3MuICovCitlbnVtIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkKK3sKKyAgICAgICBQcm9wX0ludmFsaWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgICAgIC8v
IGdlbmVyYWwgcHJvcGVydGllcyB0aGF0IGFwcGx5IHRvIGFsbCBkZXZpY2UgY2xhc3NlcworICAg
ICAgIFByb3BfVHJhY2tpbmdTeXN0ZW1OYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwMDAsCisgICAgICAgUHJvcF9Nb2RlbE51bWJlcl9TdHJpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDEsCisgICAgICAgUHJvcF9TZXJpYWxO
dW1iZXJfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDIsCisg
ICAgICAgUHJvcF9SZW5kZXJNb2RlbE5hbWVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwMDMsCisgICAgICAgUHJvcF9XaWxsRHJpZnRJbllhd19Cb29sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDQsCisgICAgICAgUHJvcF9NYW51ZmFj
dHVyZXJOYW1lX1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMDUsCisgICAg
ICAgUHJvcF9UcmFja2luZ0Zpcm13YXJlVmVyc2lvbl9TdHJpbmcgICAgICAgICAgICAgICAgICAg
ICA9IDEwMDYsCisgICAgICAgUHJvcF9IYXJkd2FyZVJldmlzaW9uX1N0cmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMDcsCisgICAgICAgUHJvcF9BbGxXaXJlbGVzc0RvbmdsZURl
c2NyaXB0aW9uc19TdHJpbmcgICAgICAgPSAxMDA4LAorICAgICAgIFByb3BfQ29ubmVjdGVkV2ly
ZWxlc3NEb25nbGVfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgPSAxMDA5LAorICAgICAgIFBy
b3BfRGV2aWNlSXNXaXJlbGVzc19Cb29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMTAsCisgICAgICAgUHJvcF9EZXZpY2VJc0NoYXJnaW5nX0Jvb2wgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTAxMSwKKyAgICAgICBQcm9wX0RldmljZUJhdHRlcnlQ
ZXJjZW50YWdlX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSAxMDEyLCAvLyAwIGlzIGVtcHR5
LCAxIGlzIGZ1bGwKKyAgICAgICBQcm9wX1N0YXR1c0Rpc3BsYXlUcmFuc2Zvcm1fTWF0cml4MzQg
ICAgICAgICAgICAgID0gMTAxMywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1VwZGF0ZUF2YWlsYWJs
ZV9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDE0LAorICAgICAgIFByb3BfRmlybXdhcmVf
TWFudWFsVXBkYXRlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE1LAorICAg
ICAgIFByb3BfRmlybXdhcmVfTWFudWFsVXBkYXRlVVJMX1N0cmluZyAgICAgICAgICAgICAgPSAx
MDE2LAorICAgICAgIFByb3BfSGFyZHdhcmVSZXZpc2lvbl9VaW50NjQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDE3LAorICAgICAgIFByb3BfRmlybXdhcmVWZXJzaW9uX1VpbnQ2NCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDE4LAorICAgICAgIFByb3BfRlBH
QVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMDE5LAorICAgICAgIFByb3BfVlJDVmVyc2lvbl9VaW50NjQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjAsCisgICAgICAgUHJvcF9SYWRpb1ZlcnNpb25f
VWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjEsCisgICAgICAg
UHJvcF9Eb25nbGVWZXJzaW9uX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDIyLAorICAgICAgIFByb3BfQmxvY2tTZXJ2ZXJTaHV0ZG93bl9Cb29sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTAyMywKKyAgICAgICBQcm9wX0NhblVuaWZ5Q29vcmRpbmF0
ZVN5c3RlbVdpdGhIbWRfQm9vbCAgICAgICA9IDEwMjQsCisgICAgICAgUHJvcF9Db250YWluc1By
b3hpbWl0eVNlbnNvcl9Cb29sICAgICAgICAgICAgICAgICAgICAgPSAxMDI1LAorICAgICAgIFBy
b3BfRGV2aWNlUHJvdmlkZXNCYXR0ZXJ5U3RhdHVzX0Jvb2wgICAgICAgICAgICAgID0gMTAyNiwK
KyAgICAgICBQcm9wX0RldmljZUNhblBvd2VyT2ZmX0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTAyNywKKyAgICAgICBQcm9wX0Zpcm13YXJlX1Byb2dyYW1taW5nVGFy
Z2V0X1N0cmluZyAgICAgICAgICAgICAgPSAxMDI4LAorICAgICAgIFByb3BfRGV2aWNlQ2xhc3Nf
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwMjksCisg
ICAgICAgUHJvcF9IYXNDYW1lcmFfQm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwMzAsCisgICAgICAgUHJvcF9Ecml2ZXJWZXJzaW9uX1N0cmlu
ZyAgICAgICAgICAgICAgICAgICA9IDEwMzEsCisgICAgICAgUHJvcF9GaXJtd2FyZV9Gb3JjZVVw
ZGF0ZVJlcXVpcmVkX0Jvb2wgICAgICA9IDEwMzIsCisgICAgICAgUHJvcF9WaXZlU3lzdGVtQnV0
dG9uRml4UmVxdWlyZWRfQm9vbCAgICAgICAgICAgICAgPSAxMDMzLAorICAgICAgIFByb3BfUGFy
ZW50RHJpdmVyX1VpbnQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDM0
LAorCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHVuaXF1ZSB0byBUcmFja2VkRGV2
aWNlQ2xhc3NfSE1ECisgICAgICAgUHJvcF9SZXBvcnRzVGltZVNpbmNlVlN5bmNfQm9vbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDIwMDAsCisgICAgICAgUHJvcF9TZWNvbmRzRnJvbVZz
eW5jVG9QaG90b25zX0Zsb2F0ICAgICAgICAgICAgICA9IDIwMDEsCisgICAgICAgUHJvcF9EaXNw
bGF5RnJlcXVlbmN5X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIw
MDIsCisgICAgICAgUHJvcF9Vc2VySXBkTWV0ZXJzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMDMsCisgICAgICAgUHJvcF9DdXJyZW50VW5pdmVyc2VJZF9VaW50
NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA0LCAKKyAgICAgICBQcm9wX1ByZXZp
b3VzVW5pdmVyc2VJZF9VaW50NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDA1LCAK
KyAgICAgICBQcm9wX0Rpc3BsYXlGaXJtd2FyZVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAg
ICAgICAgPSAyMDA2LAorICAgICAgIFByb3BfSXNPbkRlc2t0b3BfQm9vbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwNywKKyAgICAgICBQcm9wX0Rpc3BsYXlN
Q1R5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAwOCwKKyAg
ICAgICBQcm9wX0Rpc3BsYXlNQ09mZnNldF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDA5LAorICAgICAgIFByb3BfRGlzcGxheU1DU2NhbGVfRmxvYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxMCwKKyAgICAgICBQcm9wX0VkaWRWZW5k
b3JJRF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAx
MSwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlTGVmdF9TdHJpbmcgICAgICAgICAgICAgID0g
MjAxMiwKKyAgICAgICBQcm9wX0Rpc3BsYXlNQ0ltYWdlUmlnaHRfU3RyaW5nICAgICAgICAgICAg
ID0gMjAxMywKKyAgICAgICBQcm9wX0Rpc3BsYXlHQ0JsYWNrQ2xhbXBfRmxvYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAyMDE0LAorICAgICAgIFByb3BfRWRpZFByb2R1Y3RJRF9JbnQz
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE1LAorICAgICAgIFByb3Bf
Q2FtZXJhVG9IZWFkVHJhbnNmb3JtX01hdHJpeDM0ICAgICAgICAgICAgICAgICAgICAgPSAyMDE2
LAorICAgICAgIFByb3BfRGlzcGxheUdDVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDE3LAorICAgICAgIFByb3BfRGlzcGxheUdDT2Zmc2V0X0Zsb2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMTgsCisgICAgICAgUHJvcF9EaXNw
bGF5R0NTY2FsZV9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDE5
LAorICAgICAgIFByb3BfRGlzcGxheUdDUHJlc2NhbGVfRmxvYXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAyMDIwLAorICAgICAgIFByb3BfRGlzcGxheUdDSW1hZ2VfU3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMjEsCisgICAgICAgUHJvcF9MZW5zQ2Vu
dGVyTGVmdFVfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAyMiwK
KyAgICAgICBQcm9wX0xlbnNDZW50ZXJMZWZ0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAyMDIzLAorICAgICAgIFByb3BfTGVuc0NlbnRlclJpZ2h0VV9GbG9hdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDI0LAorICAgICAgIFByb3BfTGVu
c0NlbnRlclJpZ2h0Vl9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAy
MDI1LAorICAgICAgIFByb3BfVXNlckhlYWRUb0V5ZURlcHRoTWV0ZXJzX0Zsb2F0ICAgICAgICAg
ICAgICAgICAgICAgPSAyMDI2LAorICAgICAgIFByb3BfQ2FtZXJhRmlybXdhcmVWZXJzaW9uX1Vp
bnQ2NCAgICAgICAgICAgICAgICAgICAgID0gMjAyNywKKyAgICAgICBQcm9wX0NhbWVyYUZpcm13
YXJlRGVzY3JpcHRpb25fU3RyaW5nICAgICAgICAgICAgICA9IDIwMjgsCisgICAgICAgUHJvcF9E
aXNwbGF5RlBHQVZlcnNpb25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAy
OSwKKyAgICAgICBQcm9wX0Rpc3BsYXlCb290bG9hZGVyVmVyc2lvbl9VaW50NjQgICAgICAgICAg
ICAgID0gMjAzMCwKKyAgICAgICBQcm9wX0Rpc3BsYXlIYXJkd2FyZVZlcnNpb25fVWludDY0ICAg
ICAgICAgICAgICAgICAgICAgPSAyMDMxLAorICAgICAgIFByb3BfQXVkaW9GaXJtd2FyZVZlcnNp
b25fVWludDY0ICAgICAgICAgICAgICAgICAgICAgPSAyMDMyLAorICAgICAgIFByb3BfQ2FtZXJh
Q29tcGF0aWJpbGl0eU1vZGVfSW50MzIgICAgICAgICAgICAgICAgICAgICA9IDIwMzMsCisgICAg
ICAgUHJvcF9TY3JlZW5zaG90SG9yaXpvbnRhbEZpZWxkT2ZWaWV3RGVncmVlc19GbG9hdCA9IDIw
MzQsCisgICAgICAgUHJvcF9TY3JlZW5zaG90VmVydGljYWxGaWVsZE9mVmlld0RlZ3JlZXNfRmxv
YXQgPSAyMDM1LAorICAgICAgIFByb3BfRGlzcGxheVN1cHByZXNzZWRfQm9vbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM2LAorICAgICAgIFByb3BfRGlzcGxheUFsbG93
TmlnaHRNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAyMDM3LAorICAgICAg
IFByb3BfRGlzcGxheU1DSW1hZ2VXaWR0aF9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDIwMzgsCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZUhlaWdodF9JbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDIwMzksCisgICAgICAgUHJvcF9EaXNwbGF5TUNJbWFnZU51
bUNoYW5uZWxzX0ludDMyICAgICAgICAgICAgICA9IDIwNDAsCisgICAgICAgUHJvcF9EaXNwbGF5
TUNJbWFnZURhdGFfQmluYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0MSwKKyAg
ICAgICBQcm9wX1VzZXNEcml2ZXJEaXJlY3RNb2RlX0Jvb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAyMDQyLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlxdWUgdG8g
VHJhY2tlZERldmljZUNsYXNzX0NvbnRyb2xsZXIKKyAgICAgICBQcm9wX0F0dGFjaGVkRGV2aWNl
SWRfU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAwMCwKKyAgICAgICBQcm9w
X1N1cHBvcnRlZEJ1dHRvbnNfVWludDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAw
MSwKKyAgICAgICBQcm9wX0F4aXMwVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMzAwMiwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29u
dHJvbGxlckF4aXNUeXBlCisgICAgICAgUHJvcF9BeGlzMVR5cGVfSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMDMsIC8vIFJldHVybiB2YWx1ZSBpcyBv
ZiB0eXBlIEVWUkNvbnRyb2xsZXJBeGlzVHlwZQorICAgICAgIFByb3BfQXhpczJUeXBlX0ludDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAzMDA0LCAvLyBSZXR1
cm4gdmFsdWUgaXMgb2YgdHlwZSBFVlJDb250cm9sbGVyQXhpc1R5cGUKKyAgICAgICBQcm9wX0F4
aXMzVHlwZV9JbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MzAwNSwgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVZSQ29udHJvbGxlckF4aXNUeXBlCisg
ICAgICAgUHJvcF9BeGlzNFR5cGVfSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDMwMDYsIC8vIFJldHVybiB2YWx1ZSBpcyBvZiB0eXBlIEVWUkNvbnRyb2xs
ZXJBeGlzVHlwZQorICAgICAgIFByb3BfQ29udHJvbGxlclJvbGVIaW50X0ludDMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMzAwNywgLy8gUmV0dXJuIHZhbHVlIGlzIG9mIHR5cGUgRVRy
YWNrZWRDb250cm9sbGVyUm9sZQorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlx
dWUgdG8gVHJhY2tlZERldmljZUNsYXNzX1RyYWNraW5nUmVmZXJlbmNlCisgICAgICAgUHJvcF9G
aWVsZE9mVmlld0xlZnREZWdyZWVzX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgPSA0MDAwLAor
ICAgICAgIFByb3BfRmllbGRPZlZpZXdSaWdodERlZ3JlZXNfRmxvYXQgICAgICAgICAgICAgICAg
ICAgICA9IDQwMDEsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld1RvcERlZ3JlZXNfRmxvYXQgICAg
ICAgICAgICAgICAgICAgICA9IDQwMDIsCisgICAgICAgUHJvcF9GaWVsZE9mVmlld0JvdHRvbURl
Z3JlZXNfRmxvYXQgICAgICAgICAgICAgICAgICAgICA9IDQwMDMsCisgICAgICAgUHJvcF9UcmFj
a2luZ1JhbmdlTWluaW11bU1ldGVyc19GbG9hdCAgICAgICAgICAgICAgPSA0MDA0LAorICAgICAg
IFByb3BfVHJhY2tpbmdSYW5nZU1heGltdW1NZXRlcnNfRmxvYXQgICAgICAgICAgICAgID0gNDAw
NSwKKyAgICAgICBQcm9wX01vZGVMYWJlbF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDQwMDYsCisKKyAgICAgICAvLyBQcm9wZXJ0aWVzIHRoYXQgYXJl
IHVzZWQgZm9yIHVzZXIgaW50ZXJmYWNlIGxpa2UgaWNvbnMgbmFtZXMKKyAgICAgICBQcm9wX0lj
b25QYXRoTmFtZV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDUwMDAsIC8vIHVzdWFsbHkgYSBkaXJlY3RvcnkgbmFtZWQgImljb25zIgorICAgICAgIFBy
b3BfTmFtZWRJY29uUGF0aERldmljZU9mZl9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MDAxLCAvLyBQTkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwg
NTB4MzIgZm9yIGhlYWRzZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1l
ZEljb25QYXRoRGV2aWNlU2VhcmNoaW5nX1N0cmluZyAgICAgICAgICAgICAgPSA1MDAyLCAvLyBQ
TkcgZm9yIHN0YXRpYyBpY29uLCBvciBHSUYgZm9yIGFuaW1hdGlvbiwgNTB4MzIgZm9yIGhlYWRz
ZXRzIGFuZCAzMngzMiBmb3Igb3RoZXJzCisgICAgICAgUHJvcF9OYW1lZEljb25QYXRoRGV2aWNl
U2VhcmNoaW5nQWxlcnRfU3RyaW5nICAgICAgID0gNTAwMywgLy8gUE5HIGZvciBzdGF0aWMgaWNv
biwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9y
IG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5X1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgID0gNTAwNCwgLy8gUE5HIGZvciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZv
ciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIgZm9yIG90aGVycworICAg
ICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZVJlYWR5QWxlcnRfU3RyaW5nICAgICAgICAgICAg
ICA9IDUwMDUsIC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1
MHgzMiBmb3IgaGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVk
SWNvblBhdGhEZXZpY2VOb3RSZWFkeV9TdHJpbmcgICAgICAgICAgICAgICAgICAgICA9IDUwMDYs
IC8vIFBORyBmb3Igc3RhdGljIGljb24sIG9yIEdJRiBmb3IgYW5pbWF0aW9uLCA1MHgzMiBmb3Ig
aGVhZHNldHMgYW5kIDMyeDMyIGZvciBvdGhlcnMKKyAgICAgICBQcm9wX05hbWVkSWNvblBhdGhE
ZXZpY2VTdGFuZGJ5X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwNywgLy8gUE5HIGZv
ciBzdGF0aWMgaWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBh
bmQgMzJ4MzIgZm9yIG90aGVycworICAgICAgIFByb3BfTmFtZWRJY29uUGF0aERldmljZUFsZXJ0
TG93X1N0cmluZyAgICAgICAgICAgICAgICAgICAgID0gNTAwOCwgLy8gUE5HIGZvciBzdGF0aWMg
aWNvbiwgb3IgR0lGIGZvciBhbmltYXRpb24sIDUweDMyIGZvciBoZWFkc2V0cyBhbmQgMzJ4MzIg
Zm9yIG90aGVycworCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1c2VkIGJ5IGhlbHBl
cnMsIGJ1dCBhcmUgb3BhcXVlIHRvIGFwcGxpY2F0aW9ucworICAgICAgIFByb3BfRGlzcGxheUhp
ZGRlbkFyZWFfQmluYXJ5X1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTEwMCwK
KyAgICAgICBQcm9wX0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9FbmQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA1MTUwLAorCisgICAgICAgLy8gUHJvcGVydGllcyB0aGF0IGFyZSB1bmlx
dWUgdG8gZHJpdmVycworICAgICAgIFByb3BfVXNlckNvbmZpZ1BhdGhfU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDAsCisgICAgICAgUHJvcF9JbnN0YWxsUGF0
aF9TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMDEs
CisKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGRlYnVnIGRh
dGEgaW4gdGhpcyByZXNlcnZlZCByZWdpb24KKyAgICAgICBQcm9wX1ZlbmRvclNwZWNpZmljX1Jl
c2VydmVkX1N0YXJ0ICAgICAgICAgICAgICAgICAgICAgPSAxMDAwMCwKKyAgICAgICBQcm9wX1Zl
bmRvclNwZWNpZmljX1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgICAgICAgID0gMTA5OTksCit9
OworCisvKiogTm8gc3RyaW5nIHByb3BlcnR5IHdpbGwgZXZlciBiZSBsb25nZXIgdGhhbiB0aGlz
IGxlbmd0aCAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1Np
emUgPSAzMiAqIDEwMjQ7CisKKy8qKiBVc2VkIHRvIHJldHVybiBlcnJvcnMgdGhhdCBvY2N1ciB3
aGVuIHJlYWRpbmcgcHJvcGVydGllcy4gKi8KK2VudW0gRVRyYWNrZWRQcm9wZXJ0eUVycm9yCit7
CisgICAgICAgVHJhY2tlZFByb3BfU3VjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMCwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMSwKKyAgICAgICBUcmFja2VkUHJvcF9Xcm9uZ0Rldmlj
ZUNsYXNzICAgICAgICAgICAgICAgICAgICAgPSAyLAorICAgICAgIFRyYWNrZWRQcm9wX0J1ZmZl
clRvb1NtYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywKKyAgICAgICBUcmFja2Vk
UHJvcF9Vbmtub3duUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0LCAvLyBE
cml2ZXIgaGFzIG5vdCBzZXQgdGhlIHByb3BlcnR5IChhbmQgbWF5IG5vdCBldmVyKS4KKyAgICAg
ICBUcmFja2VkUHJvcF9JbnZhbGlkRGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
NSwKKyAgICAgICBUcmFja2VkUHJvcF9Db3VsZE5vdENvbnRhY3RTZXJ2ZXIgICAgICAgICAgICAg
ID0gNiwKKyAgICAgICBUcmFja2VkUHJvcF9WYWx1ZU5vdFByb3ZpZGVkQnlEZXZpY2UgICAgICAg
PSA3LAorICAgICAgIFRyYWNrZWRQcm9wX1N0cmluZ0V4Y2VlZHNNYXhpbXVtTGVuZ3RoICAgICAg
ID0gOCwKKyAgICAgICBUcmFja2VkUHJvcF9Ob3RZZXRBdmFpbGFibGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSA5LCAvLyBUaGUgcHJvcGVydHkgdmFsdWUgaXNuJ3Qga25vd24geWV0LCBi
dXQgaXMgZXhwZWN0ZWQgc29vbi4gQ2FsbCBhZ2FpbiBsYXRlci4KKyAgICAgICBUcmFja2VkUHJv
cF9QZXJtaXNzaW9uRGVuaWVkICAgICAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICAgICBUcmFj
a2VkUHJvcF9JbnZhbGlkT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgPSAxMSwKK307CisK
Ky8qKiBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbnRyb2wgd2hhdCBwYXJ0IG9mIHRoZSBw
cm92aWRlZCB0ZXh0dXJlIHdpbGwgYmUgdXNlZCBpbiB0aGUKKyogZnJhbWUgYnVmZmVyLiAqLwor
c3RydWN0IFZSVGV4dHVyZUJvdW5kc190Cit7CisgICAgICAgZmxvYXQgdU1pbiwgdk1pbjsKKyAg
ICAgICBmbG9hdCB1TWF4LCB2TWF4OworfTsKKworCisvKiogQWxsb3dzIHRoZSBhcHBsaWNhdGlv
biB0byBjb250cm9sIGhvdyBzY2VuZSB0ZXh0dXJlcyBhcmUgdXNlZCBieSB0aGUgY29tcG9zaXRv
ciB3aGVuIGNhbGxpbmcgU3VibWl0LiAqLworZW51bSBFVlJTdWJtaXRGbGFncworeworICAgICAg
IC8vIFNpbXBsZSByZW5kZXIgcGF0aC4gQXBwIHN1Ym1pdHMgcmVuZGVyZWQgbGVmdCBhbmQgcmln
aHQgZXllIGltYWdlcyB3aXRoIG5vIGxlbnMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uIGFwcGxpZWQu
CisgICAgICAgU3VibWl0X0RlZmF1bHQgPSAweDAwLAorCisgICAgICAgLy8gQXBwIHN1Ym1pdHMg
ZmluYWwgbGVmdCBhbmQgcmlnaHQgZXllIGltYWdlcyB3aXRoIGxlbnMgZGlzdG9ydGlvbiBhbHJl
YWR5IGFwcGxpZWQgKGxlbnMgZGlzdG9ydGlvbiBtYWtlcyB0aGUgaW1hZ2VzIGFwcGVhcgorICAg
ICAgIC8vIGJhcnJlbCBkaXN0b3J0ZWQgd2l0aCBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0
aW9uIGFwcGxpZWQpLiBUaGUgYXBwIHdvdWxkIGhhdmUgdXNlZCB0aGUgZGF0YSByZXR1cm5lZCBi
eQorICAgICAgIC8vIHZyOjpJVlJTeXN0ZW06OkNvbXB1dGVEaXN0b3J0aW9uKCkgdG8gYXBwbHkg
dGhlIGNvcnJlY3QgZGlzdG9ydGlvbiB0byB0aGUgcmVuZGVyZWQgaW1hZ2VzIGJlZm9yZSBjYWxs
aW5nIFN1Ym1pdCgpLgorICAgICAgIFN1Ym1pdF9MZW5zRGlzdG9ydGlvbkFscmVhZHlBcHBsaWVk
ID0gMHgwMSwKKworICAgICAgIC8vIElmIHRoZSB0ZXh0dXJlIHBvaW50ZXIgcGFzc2VkIGluIGlz
IGFjdHVhbGx5IGEgcmVuZGVyYnVmZmVyIChlLmcuIGZvciBNU0FBIGluIE9wZW5HTCkgdGhlbiBz
ZXQgdGhpcyBmbGFnLgorICAgICAgIFN1Ym1pdF9HbFJlbmRlckJ1ZmZlciA9IDB4MDIsCisKKyAg
ICAgICAvLyBEbyBub3QgdXNlCisgICAgICAgU3VibWl0X1Jlc2VydmVkID0gMHgwNCwKK307CisK
Ky8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIFZ1bGthbiB0ZXh0dXJlcyB0byBJVlJDb21w
b3NpdG9yOjpTdWJtaXQuCisqIEJlIHN1cmUgdG8gY2FsbCBPcGVuVlJfU2h1dGRvd24gYmVmb3Jl
IGRlc3Ryb3lpbmcgdGhlc2UgcmVzb3VyY2VzLiAqLworc3RydWN0IFZSVnVsa2FuVGV4dHVyZURh
dGFfdAoreworICAgICAgIHVpbnQ2NF90IG1fbkltYWdlOyAvLyBWa0ltYWdlCisgICAgICAgVmtE
ZXZpY2VfVCAqbV9wRGV2aWNlOworICAgICAgIFZrUGh5c2ljYWxEZXZpY2VfVCAqbV9wUGh5c2lj
YWxEZXZpY2U7CisgICAgICAgVmtJbnN0YW5jZV9UICptX3BJbnN0YW5jZTsKKyAgICAgICBWa1F1
ZXVlX1QgKm1fcFF1ZXVlOworICAgICAgIHVpbnQzMl90IG1fblF1ZXVlRmFtaWx5SW5kZXg7Cisg
ICAgICAgdWludDMyX3QgbV9uV2lkdGgsIG1fbkhlaWdodCwgbV9uRm9ybWF0LCBtX25TYW1wbGVD
b3VudDsKK307CisKKy8qKiBEYXRhIHJlcXVpcmVkIGZvciBwYXNzaW5nIEQzRDEyIHRleHR1cmVz
IHRvIElWUkNvbXBvc2l0b3I6OlN1Ym1pdC4KKyogQmUgc3VyZSB0byBjYWxsIE9wZW5WUl9TaHV0
ZG93biBiZWZvcmUgZGVzdHJveWluZyB0aGVzZSByZXNvdXJjZXMuICovCitzdHJ1Y3QgRDNEMTJU
ZXh0dXJlRGF0YV90Cit7CisgICAgICAgSUQzRDEyUmVzb3VyY2UgKm1fcFJlc291cmNlOworICAg
ICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqbV9wQ29tbWFuZFF1ZXVlOworICAgICAgIHVpbnQzMl90
IG1fbk5vZGVNYXNrOworfTsKKworLyoqIFN0YXR1cyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gb3Ig
dHJhY2tlZCBvYmplY3RzICovCitlbnVtIEVWUlN0YXRlCit7CisgICAgICAgVlJTdGF0ZV9VbmRl
ZmluZWQgPSAtMSwKKyAgICAgICBWUlN0YXRlX09mZiA9IDAsCisgICAgICAgVlJTdGF0ZV9TZWFy
Y2hpbmcgPSAxLAorICAgICAgIFZSU3RhdGVfU2VhcmNoaW5nX0FsZXJ0ID0gMiwKKyAgICAgICBW
UlN0YXRlX1JlYWR5ID0gMywKKyAgICAgICBWUlN0YXRlX1JlYWR5X0FsZXJ0ID0gNCwKKyAgICAg
ICBWUlN0YXRlX05vdFJlYWR5ID0gNSwKKyAgICAgICBWUlN0YXRlX1N0YW5kYnkgPSA2LAorICAg
ICAgIFZSU3RhdGVfUmVhZHlfQWxlcnRfTG93ID0gNywKK307CisKKy8qKiBUaGUgdHlwZXMgb2Yg
ZXZlbnRzIHRoYXQgY291bGQgYmUgcG9zdGVkIChhbmQgd2hhdCB0aGUgcGFyYW1ldGVycyBtZWFu
IGZvciBlYWNoIGV2ZW50IHR5cGUpICovCitlbnVtIEVWUkV2ZW50VHlwZQoreworICAgICAgIFZS
RXZlbnRfTm9uZSA9IDAsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWREZXZpY2VBY3RpdmF0ZWQg
ICAgICAgICAgICAgID0gMTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZURlYWN0aXZh
dGVkICAgICAgID0gMTAxLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVwZGF0ZWQgICAg
ICAgICAgICAgID0gMTAyLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZERldmljZVVzZXJJbnRlcmFj
dGlvblN0YXJ0ZWQgICAgICAgPSAxMDMsCisgICAgICAgVlJFdmVudF9UcmFja2VkRGV2aWNlVXNl
ckludGVyYWN0aW9uRW5kZWQgICAgICAgPSAxMDQsCisgICAgICAgVlJFdmVudF9JcGRDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEwNSwKKyAgICAgICBWUkV2ZW50
X0VudGVyU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNiwKKyAgICAgICBWUkV2
ZW50X0xlYXZlU3RhbmRieU1vZGUgICAgICAgICAgICAgICAgICAgICA9IDEwNywKKyAgICAgICBW
UkV2ZW50X1RyYWNrZWREZXZpY2VSb2xlQ2hhbmdlZCAgICAgICA9IDEwOCwKKyAgICAgICBWUkV2
ZW50X1dhdGNoZG9nV2FrZVVwUmVxdWVzdGVkICAgICAgICAgICAgICA9IDEwOSwKKyAgICAgICBW
UkV2ZW50X0xlbnNEaXN0b3J0aW9uQ2hhbmdlZCAgICAgICAgICAgICAgPSAxMTAsCisgICAgICAg
VlJFdmVudF9Qcm9wZXJ0eUNoYW5nZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEs
CisKKyAgICAgICBWUkV2ZW50X0J1dHRvblByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDIwMCwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVudF9CdXR0
b25VbnByZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAxLCAvLyBkYXRhIGlzIGNv
bnRyb2xsZXIKKyAgICAgICBWUkV2ZW50X0J1dHRvblRvdWNoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDIwMiwgLy8gZGF0YSBpcyBjb250cm9sbGVyCisgICAgICAgVlJFdmVu
dF9CdXR0b25VbnRvdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjAzLCAvLyBkYXRh
IGlzIGNvbnRyb2xsZXIKKworICAgICAgIFZSRXZlbnRfTW91c2VNb3ZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMCwgLy8gZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZl
bnRfTW91c2VCdXR0b25Eb3duICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMzAxLCAvLyBk
YXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Nb3VzZUJ1dHRvblVwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzAyLCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9Gb2N1
c0VudGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMywgLy8gZGF0YSBp
cyBvdmVybGF5CisgICAgICAgVlJFdmVudF9Gb2N1c0xlYXZlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDMwNCwgLy8gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9T
Y3JvbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwNSwgLy8g
ZGF0YSBpcyBtb3VzZQorICAgICAgIFZSRXZlbnRfVG91Y2hQYWRNb3ZlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMzA2LCAvLyBkYXRhIGlzIG1vdXNlCisgICAgICAgVlJFdmVudF9PdmVy
bGF5Rm9jdXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSAzMDcsIC8vIGRhdGEgaXMgb3Zl
cmxheSwgZ2xvYmFsIGV2ZW50CisKKyAgICAgICBWUkV2ZW50X0lucHV0Rm9jdXNDYXB0dXJlZCAg
ICAgICAgICAgICAgICAgICAgID0gNDAwLCAvLyBkYXRhIGlzIHByb2Nlc3MgREVQUkVDQVRFRAor
ICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c1JlbGVhc2VkICAgICAgICAgICAgICAgICAgICAgPSA0
MDEsIC8vIGRhdGEgaXMgcHJvY2VzcyBERVBSRUNBVEVECisgICAgICAgVlJFdmVudF9TY2VuZUZv
Y3VzTG9zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDQwMiwgLy8gZGF0YSBpcyBwcm9j
ZXNzCisgICAgICAgVlJFdmVudF9TY2VuZUZvY3VzR2FpbmVkICAgICAgICAgICAgICAgICAgICAg
PSA0MDMsIC8vIGRhdGEgaXMgcHJvY2VzcworICAgICAgIFZSRXZlbnRfU2NlbmVBcHBsaWNhdGlv
bkNoYW5nZWQgICAgICAgICAgICAgID0gNDA0LCAvLyBkYXRhIGlzIHByb2Nlc3MgLSBUaGUgQXBw
IGFjdHVhbGx5IGRyYXdpbmcgdGhlIHNjZW5lIGNoYW5nZWQgKHVzdWFsbHkgdG8gb3IgZnJvbSB0
aGUgY29tcG9zaXRvcikKKyAgICAgICBWUkV2ZW50X1NjZW5lRm9jdXNDaGFuZ2VkICAgICAgICAg
ICAgICAgICAgICAgPSA0MDUsIC8vIGRhdGEgaXMgcHJvY2VzcyAtIE5ldyBhcHAgZ290IGFjY2Vz
cyB0byBkcmF3IHRoZSBzY2VuZQorICAgICAgIFZSRXZlbnRfSW5wdXRGb2N1c0NoYW5nZWQgICAg
ICAgICAgICAgICAgICAgICA9IDQwNiwgLy8gZGF0YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVu
dF9TY2VuZUFwcGxpY2F0aW9uU2Vjb25kYXJ5UmVuZGVyaW5nU3RhcnRlZCA9IDQwNywgLy8gZGF0
YSBpcyBwcm9jZXNzCisKKyAgICAgICBWUkV2ZW50X0hpZGVSZW5kZXJNb2RlbHMgICAgICAgICAg
ICAgICAgICAgICA9IDQxMCwgLy8gU2VudCB0byB0aGUgc2NlbmUgYXBwbGljYXRpb24gdG8gcmVx
dWVzdCBoaWRpbmcgcmVuZGVyIG1vZGVscyB0ZW1wb3JhcmlseQorICAgICAgIFZSRXZlbnRfU2hv
d1JlbmRlck1vZGVscyAgICAgICAgICAgICAgICAgICAgID0gNDExLCAvLyBTZW50IHRvIHRoZSBz
Y2VuZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IHJlc3RvcmluZyByZW5kZXIgbW9kZWwgdmlzaWJp
bGl0eQorCisgICAgICAgVlJFdmVudF9PdmVybGF5U2hvd24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MDAsCisgICAgICAgVlJFdmVudF9PdmVybGF5SGlkZGVuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gNTAxLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkQWN0aXZhdGVkICAg
ICAgICAgICAgICAgICAgICAgPSA1MDIsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmREZWFjdGl2
YXRlZCAgICAgICAgICAgICAgPSA1MDMsCisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRUaHVtYlNl
bGVjdGVkICAgICAgICAgICAgICA9IDUwNCwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5hZ2Vy
IC0gZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9EYXNoYm9hcmRSZXF1ZXN0ZWQgICAg
ICAgICAgICAgICAgICAgICA9IDUwNSwgLy8gU2VudCB0byB0aGUgb3ZlcmxheSBtYW5hZ2VyIC0g
ZGF0YSBpcyBvdmVybGF5CisgICAgICAgVlJFdmVudF9SZXNldERhc2hib2FyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDUwNiwgLy8gU2VuZCB0byB0aGUgb3ZlcmxheSBtYW5hZ2VyCisg
ICAgICAgVlJFdmVudF9SZW5kZXJUb2FzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MDcsIC8vIFNlbmQgdG8gdGhlIGRhc2hib2FyZCB0byByZW5kZXIgYSB0b2FzdCAtIGRh
dGEgaXMgdGhlIG5vdGlmaWNhdGlvbiBJRAorICAgICAgIFZSRXZlbnRfSW1hZ2VMb2FkZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTA4LCAvLyBTZW50IHRvIG92ZXJsYXlz
IHdoZW4gYSBTZXRPdmVybGF5UmF3IG9yIFNldE92ZXJsYXlGcm9tRmlsZSBjYWxsIGZpbmlzaGVz
IGxvYWRpbmcKKyAgICAgICBWUkV2ZW50X1Nob3dLZXlib2FyZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDUwOSwgLy8gU2VudCB0byBrZXlib2FyZCByZW5kZXJlciBpbiB0aGUgZGFzaGJv
YXJkIHRvIGludm9rZSBpdAorICAgICAgIFZSRXZlbnRfSGlkZUtleWJvYXJkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNTEwLCAvLyBTZW50IHRvIGtleWJvYXJkIHJlbmRlcmVyIGluIHRo
ZSBkYXNoYm9hcmQgdG8gaGlkZSBpdAorICAgICAgIFZSRXZlbnRfT3ZlcmxheUdhbWVwYWRGb2N1
c0dhaW5lZCAgICAgICA9IDUxMSwgLy8gU2VudCB0byBhbiBvdmVybGF5IHdoZW4gSVZST3Zlcmxh
eTo6U2V0Rm9jdXNPdmVybGF5IGlzIGNhbGxlZCBvbiBpdAorICAgICAgIFZSRXZlbnRfT3Zlcmxh
eUdhbWVwYWRGb2N1c0xvc3QgICAgICAgICAgICAgID0gNTEyLCAvLyBTZW5kIHRvIGFuIG92ZXJs
YXkgd2hlbiBpdCBwcmV2aW91c2x5IGhhZCBmb2N1cyBhbmQgSVZST3ZlcmxheTo6U2V0Rm9jdXNP
dmVybGF5IGlzIGNhbGxlZCBvbiBzb21ldGhpbmcgZWxzZQorICAgICAgIFZSRXZlbnRfT3Zlcmxh
eVNoYXJlZFRleHR1cmVDaGFuZ2VkID0gNTEzLAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3Vp
ZGVCdXR0b25Eb3duICAgICAgID0gNTE0LAorICAgICAgIFZSRXZlbnRfRGFzaGJvYXJkR3VpZGVC
dXR0b25VcCAgICAgICAgICAgICAgPSA1MTUsCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90VHJp
Z2dlcmVkICAgICAgICAgICAgICAgICAgICAgPSA1MTYsIC8vIFNjcmVlbnNob3QgYnV0dG9uIGNv
bWJvIHdhcyBwcmVzc2VkLCBEYXNoYm9hcmQgc2hvdWxkIHJlcXVlc3QgYSBzY3JlZW5zaG90Cisg
ICAgICAgVlJFdmVudF9JbWFnZUZhaWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA1MTcsIC8vIFNlbnQgdG8gb3ZlcmxheXMgd2hlbiBhIFNldE92ZXJsYXlSYXcgb3IgU2V0
T3ZlcmxheWZyb21GYWlsIGZhaWxzIHRvIGxvYWQKKyAgICAgICBWUkV2ZW50X0Rhc2hib2FyZE92
ZXJsYXlDcmVhdGVkICAgICAgICAgICAgICA9IDUxOCwKKworICAgICAgIC8vIFNjcmVlbnNob3Qg
QVBJCisgICAgICAgVlJFdmVudF9SZXF1ZXN0U2NyZWVuc2hvdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDUyMCwgLy8gU2VudCBieSB2cmNsaWVudCBhcHBsaWNhdGlvbiB0byBjb21wb3Np
dG9yIHRvIHRha2UgYSBzY3JlZW5zaG90CisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90VGFrZW4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNTIxLCAvLyBTZW50IGJ5IGNvbXBv
c2l0b3IgdG8gdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIGJlZW4gdGFr
ZW4KKyAgICAgICBWUkV2ZW50X1NjcmVlbnNob3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA1MjIsIC8vIFNlbnQgYnkgY29tcG9zaXRvciB0byB0aGUgYXBwbGljYXRpb24gdGhh
dCB0aGUgc2NyZWVuc2hvdCBmYWlsZWQgdG8gYmUgdGFrZW4KKyAgICAgICBWUkV2ZW50X1N1Ym1p
dFNjcmVlbnNob3RUb0Rhc2hib2FyZCAgICAgICAgICAgICAgPSA1MjMsIC8vIFNlbnQgYnkgY29t
cG9zaXRvciB0byB0aGUgZGFzaGJvYXJkIHRoYXQgYSBjb21wbGV0ZWQgc2NyZWVuc2hvdCB3YXMg
c3VibWl0dGVkCisgICAgICAgVlJFdmVudF9TY3JlZW5zaG90UHJvZ3Jlc3NUb0Rhc2hib2FyZCAg
ICAgICA9IDUyNCwgLy8gU2VudCBieSBjb21wb3NpdG9yIHRvIHRoZSBkYXNoYm9hcmQgdGhhdCBh
IGNvbXBsZXRlZCBzY3JlZW5zaG90IHdhcyBzdWJtaXR0ZWQKKworICAgICAgIFZSRXZlbnRfUHJp
bWFyeURhc2hib2FyZERldmljZUNoYW5nZWQgICAgICAgPSA1MjUsCisKKyAgICAgICBWUkV2ZW50
X05vdGlmaWNhdGlvbl9TaG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDYwMCwKKyAg
ICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9IaWRkZW4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSA2MDEsCisgICAgICAgVlJFdmVudF9Ob3RpZmljYXRpb25fQmVnaW5JbnRlcmFjdGlvbiAg
ICAgICA9IDYwMiwKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl9EZXN0cm95ZWQgICAgICAg
ICAgICAgICAgICAgICA9IDYwMywKKworICAgICAgIFZSRXZlbnRfUXVpdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDcwMCwgLy8gZGF0YSBpcyBwcm9j
ZXNzCisgICAgICAgVlJFdmVudF9Qcm9jZXNzUXVpdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNzAxLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50
X1F1aXRBYm9ydGVkX1VzZXJQcm9tcHQgICAgICAgICAgICAgICAgICAgICA9IDcwMiwgLy8gZGF0
YSBpcyBwcm9jZXNzCisgICAgICAgVlJFdmVudF9RdWl0QWNrbm93bGVkZ2VkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNzAzLCAvLyBkYXRhIGlzIHByb2Nlc3MKKyAgICAgICBWUkV2ZW50
X0RyaXZlclJlcXVlc3RlZFF1aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3MDQsIC8v
IFRoZSBkcml2ZXIgaGFzIHJlcXVlc3RlZCB0aGF0IFN0ZWFtVlIgc2h1dCBkb3duCisKKyAgICAg
ICBWUkV2ZW50X0NoYXBlcm9uZURhdGFIYXNDaGFuZ2VkICAgICAgICAgICAgICAgICAgICAgPSA4
MDAsCisgICAgICAgVlJFdmVudF9DaGFwZXJvbmVVbml2ZXJzZUhhc0NoYW5nZWQgICAgICAgICAg
ICAgID0gODAxLAorICAgICAgIFZSRXZlbnRfQ2hhcGVyb25lVGVtcERhdGFIYXNDaGFuZ2VkICAg
ICAgICAgICAgICA9IDgwMiwKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZVNldHRpbmdzSGF2ZUNo
YW5nZWQgICAgICAgPSA4MDMsCisgICAgICAgVlJFdmVudF9TZWF0ZWRaZXJvUG9zZVJlc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gODA0LAorCisgICAgICAgVlJFdmVudF9BdWRpb1Nl
dHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0gODIwLAorCisgICAgICAgVlJFdmVudF9C
YWNrZ3JvdW5kU2V0dGluZ0hhc0NoYW5nZWQgICAgICAgICAgICAgID0gODUwLAorICAgICAgIFZS
RXZlbnRfQ2FtZXJhU2V0dGluZ3NIYXZlQ2hhbmdlZCAgICAgICAgICAgICAgPSA4NTEsCisgICAg
ICAgVlJFdmVudF9SZXByb2plY3Rpb25TZXR0aW5nSGFzQ2hhbmdlZCAgICAgICA9IDg1MiwKKyAg
ICAgICBWUkV2ZW50X01vZGVsU2tpblNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4NTMsCisg
ICAgICAgVlJFdmVudF9FbnZpcm9ubWVudFNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgPSA4NTQs
CisgICAgICAgVlJFdmVudF9Qb3dlclNldHRpbmdzSGF2ZUNoYW5nZWQgICAgICAgICAgICAgID0g
ODU1LAorCisgICAgICAgVlJFdmVudF9TdGF0dXNVcGRhdGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gOTAwLAorCisgICAgICAgVlJFdmVudF9NQ0ltYWdlVXBkYXRlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDAwLAorCisgICAgICAgVlJFdmVudF9G
aXJtd2FyZVVwZGF0ZVN0YXJ0ZWQgICAgICAgICAgICAgICAgICAgICA9IDExMDAsCisgICAgICAg
VlJFdmVudF9GaXJtd2FyZVVwZGF0ZUZpbmlzaGVkICAgICAgICAgICAgICAgICAgICAgPSAxMTAx
LAorCisgICAgICAgVlJFdmVudF9LZXlib2FyZENsb3NlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMjAwLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRDaGFySW5wdXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAxLAorICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRE
b25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMDIsIC8vIFNlbnQgd2hl
biBET05FIGJ1dHRvbiBjbGlja2VkIG9uIGtleWJvYXJkCisKKyAgICAgICBWUkV2ZW50X0FwcGxp
Y2F0aW9uVHJhbnNpdGlvblN0YXJ0ZWQgICAgICAgICAgICAgID0gMTMwMCwKKyAgICAgICBWUkV2
ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbkFib3J0ZWQgICAgICAgICAgICAgID0gMTMwMSwKKyAg
ICAgICBWUkV2ZW50X0FwcGxpY2F0aW9uVHJhbnNpdGlvbk5ld0FwcFN0YXJ0ZWQgICAgICAgPSAx
MzAyLAorICAgICAgIFZSRXZlbnRfQXBwbGljYXRpb25MaXN0VXBkYXRlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEzMDMsCisgICAgICAgVlJFdmVudF9BcHBsaWNhdGlvbk1pbWVUeXBl
TG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMDQsCisgICAgICAgVlJFdmVudF9B
cHBsaWNhdGlvblRyYW5zaXRpb25OZXdBcHBMYXVuY2hDb21wbGV0ZSA9IDEzMDUsCisKKyAgICAg
ICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93U2hvd24gICAgICAgICAgICAgID0gMTQw
MCwKKyAgICAgICBWUkV2ZW50X0NvbXBvc2l0b3JfTWlycm9yV2luZG93SGlkZGVuICAgICAgICAg
ICAgICA9IDE0MDEsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBlcm9uZUJvdW5kc1No
b3duICAgICAgICAgICAgICA9IDE0MTAsCisgICAgICAgVlJFdmVudF9Db21wb3NpdG9yX0NoYXBl
cm9uZUJvdW5kc0hpZGRlbiAgICAgICA9IDE0MTEsCisKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRD
YW1lcmFfU3RhcnRWaWRlb1N0cmVhbSAgPSAxNTAwLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENh
bWVyYV9TdG9wVmlkZW9TdHJlYW0gICA9IDE1MDEsCisgICAgICAgVlJFdmVudF9UcmFja2VkQ2Ft
ZXJhX1BhdXNlVmlkZW9TdHJlYW0gID0gMTUwMiwKKyAgICAgICBWUkV2ZW50X1RyYWNrZWRDYW1l
cmFfUmVzdW1lVmlkZW9TdHJlYW0gPSAxNTAzLAorICAgICAgIFZSRXZlbnRfVHJhY2tlZENhbWVy
YV9FZGl0aW5nU3VyZmFjZSAgICA9IDE1NTAsCisKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNl
VGVzdF9FbmFibGVDYXB0dXJlICAgICAgID0gMTYwMCwKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1h
bmNlVGVzdF9EaXNhYmxlQ2FwdHVyZSAgICAgICA9IDE2MDEsCisgICAgICAgVlJFdmVudF9QZXJm
b3JtYW5jZVRlc3RfRmlkZWxpdHlMZXZlbCAgICAgICA9IDE2MDIsCisKKyAgICAgICBWUkV2ZW50
X01lc3NhZ2VPdmVybGF5X0Nsb3NlZCAgICAgICAgICAgICAgICAgICAgID0gMTY1MCwKKyAgICAg
ICAKKyAgICAgICAvLyBWZW5kb3JzIGFyZSBmcmVlIHRvIGV4cG9zZSBwcml2YXRlIGV2ZW50cyBp
biB0aGlzIHJlc2VydmVkIHJlZ2lvbgorICAgICAgIFZSRXZlbnRfVmVuZG9yU3BlY2lmaWNfUmVz
ZXJ2ZWRfU3RhcnQgICAgICAgPSAxMDAwMCwKKyAgICAgICBWUkV2ZW50X1ZlbmRvclNwZWNpZmlj
X1Jlc2VydmVkX0VuZCAgICAgICAgICAgICAgPSAxOTk5OSwKK307CisKKworLyoqIExldmVsIG9m
IEhtZCBhY3Rpdml0eSAqLworZW51bSBFRGV2aWNlQWN0aXZpdHlMZXZlbAoreworICAgICAgIGtf
RURldmljZUFjdGl2aXR5TGV2ZWxfVW5rbm93biA9IC0xLAorICAgICAgIGtfRURldmljZUFjdGl2
aXR5TGV2ZWxfSWRsZSA9IDAsCisgICAgICAga19FRGV2aWNlQWN0aXZpdHlMZXZlbF9Vc2VySW50
ZXJhY3Rpb24gPSAxLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfVXNlckludGVyYWN0
aW9uX1RpbWVvdXQgPSAyLAorICAgICAgIGtfRURldmljZUFjdGl2aXR5TGV2ZWxfU3RhbmRieSA9
IDMsCit9OworCisKKy8qKiBWUiBjb250cm9sbGVyIGJ1dHRvbiBhbmQgYXhpcyBJRHMgKi8KK2Vu
dW0gRVZSQnV0dG9uSWQKK3sKKyAgICAgICBrX0VCdXR0b25fU3lzdGVtICAgICAgICAgICAgICAg
ICAgICAgPSAwLAorICAgICAgIGtfRUJ1dHRvbl9BcHBsaWNhdGlvbk1lbnUgICAgICAgPSAxLAor
ICAgICAgIGtfRUJ1dHRvbl9HcmlwICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiwKKyAg
ICAgICBrX0VCdXR0b25fRFBhZF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgPSAzLAorICAgICAg
IGtfRUJ1dHRvbl9EUGFkX1VwICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgICAgIGtfRUJ1
dHRvbl9EUGFkX1JpZ2h0ICAgICAgICAgICAgICA9IDUsCisgICAgICAga19FQnV0dG9uX0RQYWRf
RG93biAgICAgICAgICAgICAgICAgICAgID0gNiwKKyAgICAgICBrX0VCdXR0b25fQSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LAorICAgICAgIAorICAgICAgIGtfRUJ1dHRv
bl9Qcm94aW1pdHlTZW5zb3IgICA9IDMxLAorCisgICAgICAga19FQnV0dG9uX0F4aXMwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzIsCisgICAgICAga19FQnV0dG9uX0F4aXMxICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzMsCisgICAgICAga19FQnV0dG9uX0F4aXMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzQsCisgICAgICAga19FQnV0dG9uX0F4aXMzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzUsCisgICAgICAga19FQnV0dG9uX0F4aXM0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMzYsCisKKyAgICAgICAvLyBhbGlhc2VzIGZvciB3ZWxs
IGtub3duIGNvbnRyb2xsZXJzCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVG91Y2hwYWQgICAg
ICAgPSBrX0VCdXR0b25fQXhpczAsCisgICAgICAga19FQnV0dG9uX1N0ZWFtVlJfVHJpZ2dlciAg
ICAgICA9IGtfRUJ1dHRvbl9BeGlzMSwKKworICAgICAgIGtfRUJ1dHRvbl9EYXNoYm9hcmRfQmFj
ayAgICAgICA9IGtfRUJ1dHRvbl9HcmlwLAorCisgICAgICAga19FQnV0dG9uX01heCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDY0Cit9OworCitpbmxpbmUgdWludDY0X3QgQnV0dG9uTWFz
a0Zyb21JZCggRVZSQnV0dG9uSWQgaWQgKSB7IHJldHVybiAxdWxsIDw8IGlkOyB9CisKKy8qKiB1
c2VkIGZvciBjb250cm9sbGVyIGJ1dHRvbiBldmVudHMgKi8KK3N0cnVjdCBWUkV2ZW50X0NvbnRy
b2xsZXJfdAoreworICAgICAgIHVpbnQzMl90IGJ1dHRvbjsgLy8gRVZSQnV0dG9uSWQgZW51bQor
fTsKKworCisvKiogdXNlZCBmb3Igc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBpbiBvdmVybGF5IHNw
YWNlICovCitlbnVtIEVWUk1vdXNlQnV0dG9uCit7CisgICAgICAgVlJNb3VzZUJ1dHRvbl9MZWZ0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMSwKKyAgICAgICBWUk1v
dXNlQnV0dG9uX1JpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAw
MiwKKyAgICAgICBWUk1vdXNlQnV0dG9uX01pZGRsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwNCwKK307CisKKworLyoqIHVzZWQgZm9yIHNpbXVsYXRlZCBtb3VzZSBldmVudHMg
aW4gb3ZlcmxheSBzcGFjZSAqLworc3RydWN0IFZSRXZlbnRfTW91c2VfdAoreworICAgICAgIGZs
b2F0IHgsIHk7IC8vIGNvLW9yZHMgYXJlIGluIEdMIHNwYWNlLCBib3R0b20gbGVmdCBvZiB0aGUg
dGV4dHVyZSBpcyAwLDAKKyAgICAgICB1aW50MzJfdCBidXR0b247IC8vIEVWUk1vdXNlQnV0dG9u
IGVudW0KK307CisKKy8qKiB1c2VkIGZvciBzaW11bGF0ZWQgbW91c2Ugd2hlZWwgc2Nyb2xsIGlu
IG92ZXJsYXkgc3BhY2UgKi8KK3N0cnVjdCBWUkV2ZW50X1Njcm9sbF90Cit7CisgICAgICAgZmxv
YXQgeGRlbHRhLCB5ZGVsdGE7IC8vIG1vdmVtZW50IGluIGZyYWN0aW9uIG9mIHRoZSBwYWQgdHJh
dmVyc2VkIHNpbmNlIGxhc3QgZGVsdGEsIDEuMCBmb3IgYSBmdWxsIHN3aXBlCisgICAgICAgdWlu
dDMyX3QgcmVwZWF0Q291bnQ7Cit9OworCisvKiogd2hlbiBpbiBtb3VzZSBpbnB1dCBtb2RlIHlv
dSBjYW4gcmVjZWl2ZSBkYXRhIGZyb20gdGhlIHRvdWNocGFkLCB0aGVzZSBldmVudHMgYXJlIG9u
bHkgc2VudCBpZiB0aGUgdXNlcnMgZmluZ2VyCisgICBpcyBvbiB0aGUgdG91Y2hwYWQgKG9yIGp1
c3QgcmVsZWFzZWQgZnJvbSBpdCkgCisqKi8KK3N0cnVjdCBWUkV2ZW50X1RvdWNoUGFkTW92ZV90
Cit7CisgICAgICAgLy8gdHJ1ZSBpZiB0aGUgdXNlcnMgZmluZ2VyIGlzIGRldGVjdGVkIG9uIHRo
ZSB0b3VjaCBwYWQKKyAgICAgICBib29sIGJGaW5nZXJEb3duOworCisgICAgICAgLy8gSG93IGxv
bmcgdGhlIGZpbmdlciBoYXMgYmVlbiBkb3duIGluIHNlY29uZHMKKyAgICAgICBmbG9hdCBmbFNl
Y29uZHNGaW5nZXJEb3duOworCisgICAgICAgLy8gVGhlc2UgdmFsdWVzIGluZGljYXRlIHRoZSBz
dGFydGluZyBmaW5nZXIgcG9zaXRpb24gKHNvIHlvdSBjYW4gZG8gc29tZSBiYXNpYyBzd2lwZSBz
dHVmZikKKyAgICAgICBmbG9hdCBmVmFsdWVYRmlyc3Q7CisgICAgICAgZmxvYXQgZlZhbHVlWUZp
cnN0OworCisgICAgICAgLy8gVGhpcyBpcyB0aGUgcmF3IHNhbXBsZWQgY29vcmRpbmF0ZSB3aXRo
b3V0IGRlYWR6b25pbmcKKyAgICAgICBmbG9hdCBmVmFsdWVYUmF3OworICAgICAgIGZsb2F0IGZW
YWx1ZVlSYXc7Cit9OworCisvKiogbm90aWZpY2F0aW9uIHJlbGF0ZWQgZXZlbnRzLiBEZXRhaWxz
IHdpbGwgc3RpbGwgY2hhbmdlIGF0IHRoaXMgcG9pbnQgKi8KK3N0cnVjdCBWUkV2ZW50X05vdGlm
aWNhdGlvbl90Cit7CisgICAgICAgdWludDY0X3QgdWxVc2VyVmFsdWU7CisgICAgICAgdWludDMy
X3Qgbm90aWZpY2F0aW9uSWQ7Cit9OworCisvKiogVXNlZCBmb3IgZXZlbnRzIGFib3V0IHByb2Nl
c3NlcyAqLworc3RydWN0IFZSRXZlbnRfUHJvY2Vzc190Cit7CisgICAgICAgdWludDMyX3QgcGlk
OworICAgICAgIHVpbnQzMl90IG9sZFBpZDsKKyAgICAgICBib29sIGJGb3JjZWQ7Cit9OworCisK
Ky8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2
ZW50X092ZXJsYXlfdAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7Cit9OworCisK
Ky8qKiBVc2VkIGZvciBhIGZldyBldmVudHMgYWJvdXQgb3ZlcmxheXMgKi8KK3N0cnVjdCBWUkV2
ZW50X1N0YXR1c190Cit7CisgICAgICAgdWludDMyX3Qgc3RhdHVzU3RhdGU7IC8vIEVWUlN0YXRl
IGVudW0KK307CisKKy8qKiBVc2VkIGZvciBrZXlib2FyZCBldmVudHMgKiovCitzdHJ1Y3QgVlJF
dmVudF9LZXlib2FyZF90Cit7CisgICAgICAgY2hhciBjTmV3SW5wdXRbOF07ICAgICAgIC8vIFVw
IHRvIDExIGJ5dGVzIG9mIG5ldyBpbnB1dAorICAgICAgIHVpbnQ2NF90IHVVc2VyVmFsdWU7ICAg
ICAgIC8vIFBvc3NpYmxlIGZsYWdzIGFib3V0IHRoZSBuZXcgaW5wdXQKK307CisKK3N0cnVjdCBW
UkV2ZW50X0lwZF90Cit7CisgICAgICAgZmxvYXQgaXBkTWV0ZXJzOworfTsKKworc3RydWN0IFZS
RXZlbnRfQ2hhcGVyb25lX3QKK3sKKyAgICAgICB1aW50NjRfdCBtX25QcmV2aW91c1VuaXZlcnNl
OworICAgICAgIHVpbnQ2NF90IG1fbkN1cnJlbnRVbml2ZXJzZTsKK307CisKKy8qKiBOb3QgYWN0
dWFsbHkgdXNlZCBmb3IgYW55IGV2ZW50cyAqLworc3RydWN0IFZSRXZlbnRfUmVzZXJ2ZWRfdAor
eworICAgICAgIHVpbnQ2NF90IHJlc2VydmVkMDsKKyAgICAgICB1aW50NjRfdCByZXNlcnZlZDE7
Cit9OworCitzdHJ1Y3QgVlJFdmVudF9QZXJmb3JtYW5jZVRlc3RfdAoreworICAgICAgIHVpbnQz
Ml90IG1fbkZpZGVsaXR5TGV2ZWw7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9TZWF0ZWRaZXJvUG9z
ZVJlc2V0X3QKK3sKKyAgICAgICBib29sIGJSZXNldEJ5U3lzdGVtTWVudTsKK307CisKK3N0cnVj
dCBWUkV2ZW50X1NjcmVlbnNob3RfdAoreworICAgICAgIHVpbnQzMl90IGhhbmRsZTsKKyAgICAg
ICB1aW50MzJfdCB0eXBlOworfTsKKworc3RydWN0IFZSRXZlbnRfU2NyZWVuc2hvdFByb2dyZXNz
X3QKK3sKKyAgICAgICBmbG9hdCBwcm9ncmVzczsKK307CisKK3N0cnVjdCBWUkV2ZW50X0FwcGxp
Y2F0aW9uTGF1bmNoX3QKK3sKKyAgICAgICB1aW50MzJfdCBwaWQ7CisgICAgICAgdWludDMyX3Qg
dW5BcmdzSGFuZGxlOworfTsKKworc3RydWN0IFZSRXZlbnRfRWRpdGluZ0NhbWVyYVN1cmZhY2Vf
dAoreworICAgICAgIHVpbnQ2NF90IG92ZXJsYXlIYW5kbGU7CisgICAgICAgdWludDMyX3QgblZp
c3VhbE1vZGU7Cit9OworCitzdHJ1Y3QgVlJFdmVudF9NZXNzYWdlT3ZlcmxheV90Cit7CisgICAg
ICAgdWludDMyX3QgdW5WUk1lc3NhZ2VPdmVybGF5UmVzcG9uc2U7IC8vIHZyOjpWUk1lc3NhZ2VP
dmVybGF5UmVzcG9uc2UgZW51bQorfTsKKworc3RydWN0IFZSRXZlbnRfUHJvcGVydHlfdAorewor
ICAgICAgIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgY29udGFpbmVyOworICAgICAgIEVUcmFj
a2VkRGV2aWNlUHJvcGVydHkgcHJvcDsKK307CisKKy8qKiBOT1RFISEhIElmIHlvdSBjaGFuZ2Ug
dGhpcyB5b3UgTVVTVCBtYW51YWxseSB1cGRhdGUgb3BlbnZyX2ludGVyb3AuY3MucHkgKi8KK3R5
cGVkZWYgdW5pb24KK3sKKyAgICAgICBWUkV2ZW50X1Jlc2VydmVkX3QgcmVzZXJ2ZWQ7CisgICAg
ICAgVlJFdmVudF9Db250cm9sbGVyX3QgY29udHJvbGxlcjsKKyAgICAgICBWUkV2ZW50X01vdXNl
X3QgbW91c2U7CisgICAgICAgVlJFdmVudF9TY3JvbGxfdCBzY3JvbGw7CisgICAgICAgVlJFdmVu
dF9Qcm9jZXNzX3QgcHJvY2VzczsKKyAgICAgICBWUkV2ZW50X05vdGlmaWNhdGlvbl90IG5vdGlm
aWNhdGlvbjsKKyAgICAgICBWUkV2ZW50X092ZXJsYXlfdCBvdmVybGF5OworICAgICAgIFZSRXZl
bnRfU3RhdHVzX3Qgc3RhdHVzOworICAgICAgIFZSRXZlbnRfS2V5Ym9hcmRfdCBrZXlib2FyZDsK
KyAgICAgICBWUkV2ZW50X0lwZF90IGlwZDsKKyAgICAgICBWUkV2ZW50X0NoYXBlcm9uZV90IGNo
YXBlcm9uZTsKKyAgICAgICBWUkV2ZW50X1BlcmZvcm1hbmNlVGVzdF90IHBlcmZvcm1hbmNlVGVz
dDsKKyAgICAgICBWUkV2ZW50X1RvdWNoUGFkTW92ZV90IHRvdWNoUGFkTW92ZTsKKyAgICAgICBW
UkV2ZW50X1NlYXRlZFplcm9Qb3NlUmVzZXRfdCBzZWF0ZWRaZXJvUG9zZVJlc2V0OworICAgICAg
IFZSRXZlbnRfU2NyZWVuc2hvdF90IHNjcmVlbnNob3Q7CisgICAgICAgVlJFdmVudF9TY3JlZW5z
aG90UHJvZ3Jlc3NfdCBzY3JlZW5zaG90UHJvZ3Jlc3M7CisgICAgICAgVlJFdmVudF9BcHBsaWNh
dGlvbkxhdW5jaF90IGFwcGxpY2F0aW9uTGF1bmNoOworICAgICAgIFZSRXZlbnRfRWRpdGluZ0Nh
bWVyYVN1cmZhY2VfdCBjYW1lcmFTdXJmYWNlOworICAgICAgIFZSRXZlbnRfTWVzc2FnZU92ZXJs
YXlfdCBtZXNzYWdlT3ZlcmxheTsKKyAgICAgICBWUkV2ZW50X1Byb3BlcnR5X3QgcHJvcGVydHk7
Cit9IFZSRXZlbnRfRGF0YV90OworCisvKiogQW4gZXZlbnQgcG9zdGVkIGJ5IHRoZSBzZXJ2ZXIg
dG8gYWxsIHJ1bm5pbmcgYXBwbGljYXRpb25zICovCitzdHJ1Y3QgVlJFdmVudF90Cit7CisgICAg
ICAgdWludDMyX3QgZXZlbnRUeXBlOyAvLyBFVlJFdmVudFR5cGUgZW51bQorICAgICAgIFRyYWNr
ZWREZXZpY2VJbmRleF90IHRyYWNrZWREZXZpY2VJbmRleDsKKyAgICAgICBmbG9hdCBldmVudEFn
ZVNlY29uZHM7CisgICAgICAgLy8gZXZlbnQgZGF0YSBtdXN0IGJlIHRoZSBlbmQgb2YgdGhlIHN0
cnVjdCBhcyBpdHMgc2l6ZSBpcyB2YXJpYWJsZQorICAgICAgIFZSRXZlbnRfRGF0YV90IGRhdGE7
Cit9OworCisKKy8qKiBUaGUgbWVzaCB0byBkcmF3IGludG8gdGhlIHN0ZW5jaWwgKG9yIGRlcHRo
KSBidWZmZXIgdG8gcGVyZm9ybSAKKyogZWFybHkgc3RlbmNpbCAob3IgZGVwdGgpIGtpbGxzIG9m
IHBpeGVscyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyIG9uIHRoZSBITUQuCisqIFRoaXMgbWVzaCBk
cmF3cyBvbiBhbGwgdGhlIHBpeGVscyB0aGF0IHdpbGwgYmUgaGlkZGVuIGFmdGVyIGRpc3RvcnRp
b24uIAorKgorKiBJZiB0aGUgSE1EIGRvZXMgbm90IHByb3ZpZGUgYSB2aXNpYmxlIGFyZWEgbWVz
aCBwVmVydGV4RGF0YSB3aWxsIGJlCisqIE5VTEwgYW5kIHVuVHJpYW5nbGVDb3VudCB3aWxsIGJl
IDAuICovCitzdHJ1Y3QgSGlkZGVuQXJlYU1lc2hfdAoreworICAgICAgIGNvbnN0IEhtZFZlY3Rv
cjJfdCAqcFZlcnRleERhdGE7CisgICAgICAgdWludDMyX3QgdW5UcmlhbmdsZUNvdW50OworfTsK
KworCitlbnVtIEVIaWRkZW5BcmVhTWVzaFR5cGUKK3sKKyAgICAgICBrX2VIaWRkZW5BcmVhTWVz
aF9TdGFuZGFyZCA9IDAsCisgICAgICAga19lSGlkZGVuQXJlYU1lc2hfSW52ZXJzZSA9IDEsCisg
ICAgICAga19lSGlkZGVuQXJlYU1lc2hfTGluZUxvb3AgPSAyLAorCisgICAgICAga19lSGlkZGVu
QXJlYU1lc2hfTWF4ID0gMywKK307CisKKworLyoqIElkZW50aWZpZXMgd2hhdCBraW5kIG9mIGF4
aXMgaXMgb24gdGhlIGNvbnRyb2xsZXIgYXQgaW5kZXggbi4gUmVhZCB0aGlzIHR5cGUgCisqIHdp
dGggcFZSU3lzdGVtLT5HZXQoIG5Db250cm9sbGVyRGV2aWNlSW5kZXgsIFByb3BfQXhpczBUeXBl
X0ludDMyICsgbiApOworKi8KK2VudW0gRVZSQ29udHJvbGxlckF4aXNUeXBlCit7CisgICAgICAg
a19lQ29udHJvbGxlckF4aXNfTm9uZSA9IDAsCisgICAgICAga19lQ29udHJvbGxlckF4aXNfVHJh
Y2tQYWQgPSAxLAorICAgICAgIGtfZUNvbnRyb2xsZXJBeGlzX0pveXN0aWNrID0gMiwKKyAgICAg
ICBrX2VDb250cm9sbGVyQXhpc19UcmlnZ2VyID0gMywgLy8gQW5hbG9nIHRyaWdnZXIgZGF0YSBp
cyBpbiB0aGUgWCBheGlzCit9OworCisKKy8qKiBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBv
bmUgYXhpcyBvbiB0aGUgY29udHJvbGxlciAqLworc3RydWN0IFZSQ29udHJvbGxlckF4aXNfdAor
eworICAgICAgIGZsb2F0IHg7IC8vIFJhbmdlcyBmcm9tIC0xLjAgdG8gMS4wIGZvciBqb3lzdGlj
a3MgYW5kIHRyYWNrIHBhZHMuIFJhbmdlcyBmcm9tIDAuMCB0byAxLjAgZm9yIHRyaWdnZXJzIHdl
cmUgMCBpcyBmdWxseSByZWxlYXNlZC4KKyAgICAgICBmbG9hdCB5OyAvLyBSYW5nZXMgZnJvbSAt
MS4wIHRvIDEuMCBmb3Igam95c3RpY2tzIGFuZCB0cmFjayBwYWRzLiBJcyBhbHdheXMgMC4wIGZv
ciB0cmlnZ2Vycy4KK307CisKKworLyoqIHRoZSBudW1iZXIgb2YgYXhlcyBpbiB0aGUgY29udHJv
bGxlciBzdGF0ZSAqLworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5Db250cm9sbGVyU3RhdGVB
eGlzQ291bnQgPSA1OworCisKKy8qKiBIb2xkcyBhbGwgdGhlIHN0YXRlIG9mIGEgY29udHJvbGxl
ciBhdCBvbmUgbW9tZW50IGluIHRpbWUuICovCitzdHJ1Y3QgVlJDb250cm9sbGVyU3RhdGUwMDFf
dAoreworICAgICAgIC8vIElmIHBhY2tldCBudW0gbWF0Y2hlcyB0aGF0IG9uIHlvdXIgcHJpb3Ig
Y2FsbCwgdGhlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBoYXNuJ3QgYmVlbiBjaGFuZ2VkIHNpbmNl
IAorICAgICAgIC8vIHlvdXIgbGFzdCBjYWxsIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nl
c3MgaXQKKyAgICAgICB1aW50MzJfdCB1blBhY2tldE51bTsKKworICAgICAgIC8vIGJpdCBmbGFn
cyBmb3IgZWFjaCBvZiB0aGUgYnV0dG9ucy4gVXNlIEJ1dHRvbk1hc2tGcm9tSWQgdG8gdHVybiBh
biBJRCBpbnRvIGEgbWFzaworICAgICAgIHVpbnQ2NF90IHVsQnV0dG9uUHJlc3NlZDsKKyAgICAg
ICB1aW50NjRfdCB1bEJ1dHRvblRvdWNoZWQ7CisKKyAgICAgICAvLyBBeGlzIGRhdGEgZm9yIHRo
ZSBjb250cm9sbGVyJ3MgYW5hbG9nIGlucHV0cworICAgICAgIFZSQ29udHJvbGxlckF4aXNfdCBy
QXhpc1sga191bkNvbnRyb2xsZXJTdGF0ZUF4aXNDb3VudCBdOworfTsKKworCit0eXBlZGVmIFZS
Q29udHJvbGxlclN0YXRlMDAxX3QgVlJDb250cm9sbGVyU3RhdGVfdDsKKworCisvKiogZGV0ZXJt
aW5lcyBob3cgdG8gcHJvdmlkZSBvdXRwdXQgdG8gdGhlIGFwcGxpY2F0aW9uIG9mIHZhcmlvdXMg
ZXZlbnQgcHJvY2Vzc2luZyBmdW5jdGlvbnMuICovCitlbnVtIEVWUkNvbnRyb2xsZXJFdmVudE91
dHB1dFR5cGUKK3sKKyAgICAgICBDb250cm9sbGVyRXZlbnRPdXRwdXRfT1NFdmVudHMgPSAwLAor
ICAgICAgIENvbnRyb2xsZXJFdmVudE91dHB1dF9WUkV2ZW50cyA9IDEsCit9OworCisKKworLyoq
IENvbGxpc2lvbiBCb3VuZHMgU3R5bGUgKi8KK2VudW0gRUNvbGxpc2lvbkJvdW5kc1N0eWxlCit7
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9CRUdJTk5FUiA9IDAsCisgICAgICAgQ09M
TElTSU9OX0JPVU5EU19TVFlMRV9JTlRFUk1FRElBVEUsCisgICAgICAgQ09MTElTSU9OX0JPVU5E
U19TVFlMRV9TUVVBUkVTLAorICAgICAgIENPTExJU0lPTl9CT1VORFNfU1RZTEVfQURWQU5DRUQs
CisgICAgICAgQ09MTElTSU9OX0JPVU5EU19TVFlMRV9OT05FLAorCisgICAgICAgQ09MTElTSU9O
X0JPVU5EU19TVFlMRV9DT1VOVAorfTsKKworLyoqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8g
Y3VzdG9taXplIGhvdyB0aGUgb3ZlcmxheSBhcHBlYXJzIGluIHRoZSBjb21wb3NpdG9yICovCitz
dHJ1Y3QgQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MKK3sKKyAgICAgICB1aW50MzJfdCBzaXpl
OyAvLyBzaXplb2YoQ29tcG9zaXRvcl9PdmVybGF5U2V0dGluZ3MpCisgICAgICAgYm9vbCBjdXJ2
ZWQsIGFudGlhbGlhczsKKyAgICAgICBmbG9hdCBzY2FsZSwgZGlzdGFuY2UsIGFscGhhOworICAg
ICAgIGZsb2F0IHVPZmZzZXQsIHZPZmZzZXQsIHVTY2FsZSwgdlNjYWxlOworICAgICAgIGZsb2F0
IGdyaWREaXZzLCBncmlkV2lkdGgsIGdyaWRTY2FsZTsKKyAgICAgICBIbWRNYXRyaXg0NF90IHRy
YW5zZm9ybTsKK307CisKKy8qKiB1c2VkIHRvIHJlZmVyIHRvIGEgc2luZ2xlIFZSIG92ZXJsYXkg
Ki8KK3R5cGVkZWYgdWludDY0X3QgVlJPdmVybGF5SGFuZGxlX3Q7CisKK3N0YXRpYyBjb25zdCBW
Uk92ZXJsYXlIYW5kbGVfdCBrX3VsT3ZlcmxheUhhbmRsZUludmFsaWQgPSAwOworCisvKiogRXJy
b3JzIHRoYXQgY2FuIG9jY3VyIGFyb3VuZCBWUiBvdmVybGF5cyAqLworZW51bSBFVlJPdmVybGF5
RXJyb3IKK3sKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob25lICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgICAgVlJPdmVybGF5RXJyb3JfVW5rbm93
bk92ZXJsYXkgICAgICAgICAgICAgICAgICAgICA9IDEwLAorICAgICAgIFZST3ZlcmxheUVycm9y
X0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IDExLAorICAgICAgIFZST3Zlcmxh
eUVycm9yX1Blcm1pc3Npb25EZW5pZWQgICAgICAgICAgICAgICAgICAgICA9IDEyLAorICAgICAg
IFZST3ZlcmxheUVycm9yX092ZXJsYXlMaW1pdEV4Y2VlZGVkICAgICAgICAgICAgICA9IDEzLCAv
LyBObyBtb3JlIG92ZXJsYXlzIGNvdWxkIGJlIGNyZWF0ZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBu
dW1iZXIgYWxyZWFkeSBleGlzdAorICAgICAgIFZST3ZlcmxheUVycm9yX1dyb25nVmlzaWJpbGl0
eVR5cGUgICAgICAgICAgICAgID0gMTQsCisgICAgICAgVlJPdmVybGF5RXJyb3JfS2V5VG9vTG9u
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgICAgIFZST3ZlcmxheUVycm9y
X05hbWVUb29Mb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTYsCisgICAgICAgVlJP
dmVybGF5RXJyb3JfS2V5SW5Vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfV3JvbmdUcmFuc2Zvcm1UeXBlICAgICAgICAgICAg
ICA9IDE4LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRUcmFja2VkRGV2aWNlICAgICAg
ICAgICAgICA9IDE5LAorICAgICAgIFZST3ZlcmxheUVycm9yX0ludmFsaWRQYXJhbWV0ZXIgICAg
ICAgICAgICAgICAgICAgICA9IDIwLAorICAgICAgIFZST3ZlcmxheUVycm9yX1RodW1ibmFpbENh
bnRCZURlc3Ryb3llZCAgICAgICA9IDIxLAorICAgICAgIFZST3ZlcmxheUVycm9yX0FycmF5VG9v
U21hbGwgICAgICAgICAgICAgICAgICAgICA9IDIyLAorICAgICAgIFZST3ZlcmxheUVycm9yX1Jl
cXVlc3RGYWlsZWQgICAgICAgICAgICAgICAgICAgICA9IDIzLAorICAgICAgIFZST3ZlcmxheUVy
cm9yX0ludmFsaWRUZXh0dXJlICAgICAgICAgICAgICAgICAgICAgPSAyNCwKKyAgICAgICBWUk92
ZXJsYXlFcnJvcl9VbmFibGVUb0xvYWRGaWxlICAgICAgICAgICAgICAgICAgICAgPSAyNSwKKyAg
ICAgICBWUk92ZXJsYXlFcnJvcl9LZXlib2FyZEFscmVhZHlJblVzZSAgICAgICAgICAgICAgPSAy
NiwKKyAgICAgICBWUk92ZXJsYXlFcnJvcl9Ob05laWdoYm9yICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMjcsCisgICAgICAgVlJPdmVybGF5RXJyb3JfVG9vTWFueU1hc2tQcmltaXRpdmVz
ICAgICAgID0gMjksCisgICAgICAgVlJPdmVybGF5RXJyb3JfQmFkTWFza1ByaW1pdGl2ZSAgICAg
ICAgICAgICAgICAgICAgID0gMzAsCit9OworCisvKiogZW51bSB2YWx1ZXMgdG8gcGFzcyBpbiB0
byBWUl9Jbml0IHRvIGlkZW50aWZ5IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIHdpbGwgCisqIGRy
YXcgYSAzRCBzY2VuZS4gKi8KK2VudW0gRVZSQXBwbGljYXRpb25UeXBlCit7CisgICAgICAgVlJB
cHBsaWNhdGlvbl9PdGhlciA9IDAsICAgICAgICAgICAgICAvLyBTb21lIG90aGVyIGtpbmQgb2Yg
YXBwbGljYXRpb24gdGhhdCBpc24ndCBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBlbnRyaWVzIAorICAg
ICAgIFZSQXBwbGljYXRpb25fU2NlbmUgICAgICAgPSAxLCAgICAgICAgICAgICAgLy8gQXBwbGlj
YXRpb24gd2lsbCBzdWJtaXQgM0QgZnJhbWVzIAorICAgICAgIFZSQXBwbGljYXRpb25fT3Zlcmxh
eSA9IDIsICAgICAgICAgICAgICAvLyBBcHBsaWNhdGlvbiBvbmx5IGludGVyYWN0cyB3aXRoIG92
ZXJsYXlzCisgICAgICAgVlJBcHBsaWNhdGlvbl9CYWNrZ3JvdW5kID0gMywgICAgICAgLy8gQXBw
bGljYXRpb24gc2hvdWxkIG5vdCBzdGFydCBTdGVhbVZSIGlmIGl0J3Mgbm90IGFscmVhZHkgcnVu
bmluZywgYW5kIHNob3VsZCBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgaXQgcnVubmluZyBpZiBldmVyeXRo
aW5nIGVsc2UgcXVpdHMuCisgICAgICAgVlJBcHBsaWNhdGlvbl9VdGlsaXR5ID0gNCwgICAgICAg
ICAgICAgIC8vIEluaXQgc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBhbnkgZHJpdmVycy4gVGhlIGFw
cGxpY2F0aW9uIG5lZWRzIGFjY2VzcyB0byB1dGlsaXR5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIChs
aWtlIElWUlNldHRpbmdzIGFuZCBJVlJBcHBsaWNhdGlvbnMpIGJ1dCBub3QgaGFyZHdhcmUuCisg
ICAgICAgVlJBcHBsaWNhdGlvbl9WUk1vbml0b3IgPSA1LCAgICAgICAvLyBSZXNlcnZlZCBmb3Ig
dnJtb25pdG9yCisgICAgICAgVlJBcHBsaWNhdGlvbl9TdGVhbVdhdGNoZG9nID0gNiwvLyBSZXNl
cnZlZCBmb3IgU3RlYW0KKworICAgICAgIFZSQXBwbGljYXRpb25fTWF4Cit9OworCisKKy8qKiBl
cnJvciBjb2RlcyBmb3IgZmlybXdhcmUgKi8KK2VudW0gRVZSRmlybXdhcmVFcnJvcgoreworICAg
ICAgIFZSRmlybXdhcmVFcnJvcl9Ob25lID0gMCwKKyAgICAgICBWUkZpcm13YXJlRXJyb3JfU3Vj
Y2VzcyA9IDEsCisgICAgICAgVlJGaXJtd2FyZUVycm9yX0ZhaWwgPSAyLAorfTsKKworCisvKiog
ZXJyb3IgY29kZXMgZm9yIG5vdGlmaWNhdGlvbnMgKi8KK2VudW0gRVZSTm90aWZpY2F0aW9uRXJy
b3IKK3sKKyAgICAgICBWUk5vdGlmaWNhdGlvbkVycm9yX09LID0gMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWROb3RpZmljYXRpb25JZCA9IDEwMCwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX05vdGlmaWNhdGlvblF1ZXVlRnVsbCA9IDEwMSwKKyAgICAgICBWUk5vdGlm
aWNhdGlvbkVycm9yX0ludmFsaWRPdmVybGF5SGFuZGxlID0gMTAyLAorICAgICAgIFZSTm90aWZp
Y2F0aW9uRXJyb3JfU3lzdGVtV2l0aFVzZXJWYWx1ZUFscmVhZHlFeGlzdHMgPSAxMDMsCit9Owor
CisKKy8qKiBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBWcl9Jbml0ICovCisKKy8vIFBsZWFzZSBh
ZGQgYWRlcXVhdGUgZXJyb3IgZGVzY3JpcHRpb24gdG8gaHR0cHM6Ly9kZXZlbG9wZXIudmFsdmVz
b2Z0d2FyZS5jb20vdy9pbmRleC5waHA/dGl0bGU9Q2F0ZWdvcnk6U3RlYW1WUkhlbHAKK2VudW0g
RVZSSW5pdEVycm9yCit7CisgICAgICAgVlJJbml0RXJyb3JfTm9uZSAgICAgICA9IDAsCisgICAg
ICAgVlJJbml0RXJyb3JfVW5rbm93biA9IDEsCisKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0lu
c3RhbGxhdGlvbk5vdEZvdW5kICAgICAgICAgICAgICA9IDEwMCwKKyAgICAgICBWUkluaXRFcnJv
cl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQgICAgICAgICAgICAgID0gMTAxLAorICAgICAgIFZS
SW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMDIsCisg
ICAgICAgVlJJbml0RXJyb3JfSW5pdF9GaWxlTm90Rm91bmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQgICAg
ICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFj
ZU5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgPSAxMDUsCisgICAgICAgVlJJbml0RXJyb3Jf
SW5pdF9JbnZhbGlkSW50ZXJmYWNlICAgICAgICAgICAgICAgICAgICAgPSAxMDYsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCA9IDEwNywKKyAgICAg
ICBWUkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTA4LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90SW5pdGlhbGl6ZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDksCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVn
aXN0cnlOb3RGb3VuZCAgICAgICAgICAgICAgPSAxMTAsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Ob0NvbmZpZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTEsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMTEyLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFi
bGUgICAgICAgPSAxMTMsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZhaWxl
ZCAgICAgICAgICAgICAgICAgICAgID0gMTE0LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfUmV0
cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNSwgLy8gVXNl
ZCBpbnRlcm5hbGx5IHRvIGNhdXNlIHJldHJpZXMgdG8gdnJzZXJ2ZXIKKyAgICAgICBWUkluaXRF
cnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciAgICAgICAgICAgICAgICAgICAgID0gMTE2LCAv
LyBUaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBzaG91bGQgc2lsZW50bHkgZXhpdC4gVGhlIHVzZXIg
Y2FuY2VsZWQgYXBwIHN0YXJ0dXAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0Fub3RoZXJBcHBM
YXVuY2hpbmcgICAgICAgICAgICAgID0gMTE3LCAKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Nl
dHRpbmdzSW5pdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMTE4LCAKKyAgICAgICBWUklu
aXRFcnJvcl9Jbml0X1NodXR0aW5nRG93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEx
OSwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTIwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm9TZXJ2ZXJGb3JC
YWNrZ3JvdW5kQXBwICAgICAgID0gMTIxLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90U3Vw
cG9ydGVkV2l0aENvbXBvc2l0b3IgICAgICAgPSAxMjIsCisgICAgICAgVlJJbml0RXJyb3JfSW5p
dF9Ob3RBdmFpbGFibGVUb1V0aWxpdHlBcHBzICAgICAgID0gMTIzLAorICAgICAgIFZSSW5pdEVy
cm9yX0luaXRfSW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEy
NCwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lICAgICAgICAgICAg
ICAgICAgICAgID0gMTI1LAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfSG1kTm90Rm91bmRQcmVz
ZW5jZUZhaWxlZCAgICAgICAgPSAxMjYsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9WUk1vbml0
b3JOb3RGb3VuZCAgICAgICAgICAgICAgICAgICAgID0gMTI3LAorICAgICAgIFZSSW5pdEVycm9y
X0luaXRfVlJNb25pdG9yU3RhcnR1cEZhaWxlZCAgICAgICAgICAgICAgPSAxMjgsCisgICAgICAg
VlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldhdGNoZG9nTm90U3VwcG9ydGVkID0gMTI5LCAKKyAg
ICAgICBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlvblR5cGUgICAgICAgICAgICAg
ID0gMTMwLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRvZ0Fw
cHMgPSAxMzEsCisgICAgICAgVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyA9IDEzMiwKKyAgICAgICBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkTm90Rm91bmQg
ICAgICAgICAgICAgID0gMTMzLAorICAgICAgIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRT
dGFydHVwRmFpbGVkICAgICAgID0gMTM0LAorCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0Zh
aWxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMCwKKyAgICAgICBWUkluaXRFcnJv
cl9Ecml2ZXJfVW5rbm93biAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIwMSwKKyAgICAg
ICBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kVW5rbm93biAgICAgICAgICAgICAgICAgICAgID0gMjAy
LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQgICAgICAgICAgICAgICAgICAg
ICA9IDIwMywKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZSAgICAg
ICAgICAgICAgPSAyMDQsCisgICAgICAgVlJJbml0RXJyb3JfRHJpdmVyX0htZEluVXNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjA1LAorICAgICAgIFZSSW5pdEVycm9yX0RyaXZlcl9O
b3RDYWxpYnJhdGVkICAgICAgICAgICAgICA9IDIwNiwKKyAgICAgICBWUkluaXRFcnJvcl9Ecml2
ZXJfQ2FsaWJyYXRpb25JbnZhbGlkICAgICAgID0gMjA3LAorICAgICAgIFZSSW5pdEVycm9yX0Ry
aXZlcl9IbWREaXNwbGF5Tm90Rm91bmQgICAgICAgPSAyMDgsCisgICAgICAgVlJJbml0RXJyb3Jf
RHJpdmVyX1RyYWNrZWREZXZpY2VJbnRlcmZhY2VVbmtub3duID0gMjA5LAorICAgICAgIC8vIFZS
SW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeCAgICAgICAgPSAyMTAs
IC8vIG5vdCBuZWVkZWQ6IGhlcmUgZm9yIGhpc3RvcmljIHJlYXNvbnMKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfSG1kRHJpdmVySWRPdXRPZkJvdW5kcyA9IDIxMSwKKyAgICAgICBWUkluaXRF
cnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkICA9IDIxMiwKKworICAgICAgIFZSSW5pdEVy
cm9yX0lQQ19TZXJ2ZXJJbml0RmFpbGVkICAgICAgICAgICAgICA9IDMwMCwKKyAgICAgICBWUklu
aXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZCAgICAgICAgICAgICAgICAgICAgID0gMzAxLAorICAg
ICAgIFZSSW5pdEVycm9yX0lQQ19TaGFyZWRTdGF0ZUluaXRGYWlsZWQgICAgICAgPSAzMDIsCisg
ICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFpbGVkICAgICAgID0gMzAzLAor
ICAgICAgIFZSSW5pdEVycm9yX0lQQ19NdXRleEluaXRGYWlsZWQgICAgICAgICAgICAgICAgICAg
ICA9IDMwNCwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfRmFpbGVkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDMwNSwKKyAgICAgICBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRv
ckNvbm5lY3RGYWlsZWQgICAgICAgPSAzMDYsCisgICAgICAgVlJJbml0RXJyb3JfSVBDX0NvbXBv
c2l0b3JJbnZhbGlkQ29ubmVjdFJlc3BvbnNlID0gMzA3LAorICAgICAgIFZSSW5pdEVycm9yX0lQ
Q19Db25uZWN0RmFpbGVkQWZ0ZXJNdWx0aXBsZUF0dGVtcHRzID0gMzA4LAorCisgICAgICAgVlJJ
bml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gNDAwLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRDNEMTFIYXJkd2FyZVJl
cXVpcmVkICAgICAgID0gNDAxLAorICAgICAgIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdh
cmVSZXF1aXJlc1VwZGF0ZSAgICAgICA9IDQwMiwKKyAgICAgICBWUkluaXRFcnJvcl9Db21wb3Np
dG9yX092ZXJsYXlJbml0RmFpbGVkICAgICAgICAgICAgICA9IDQwMywKKyAgICAgICBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX1NjcmVlbnNob3RzSW5pdEZhaWxlZCAgICAgICA9IDQwNCwKKworICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX1VuYWJsZVRvQ29ubmVjdFRvT2N1bHVzUnVu
dGltZSA9IDEwMDAsCisKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3Vu
ZF9DYW50T3BlbkRldmljZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAxLAorICAg
ICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENv
bmZpZ1N0YXJ0ICAgICAgID0gMTEwMiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Ob1N0b3JlZENvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MTAzLAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rv
b0JpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTA0LAorICAgICAgIFZSSW5pdEVy
cm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDExMDUsCisgICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNf
SG1kRm91bmRfVW5hYmxlVG9Jbml0WkxpYiAgICAgICAgICAgICAgICAgICAgICA9IDExMDYsCisg
ICAgICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2Fy
ZVZlcnNpb24gICAgICAgID0gMTEwNywKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9VbmFibGVUb1NlbmRVc2VyRGF0YVN0YXJ0ICAgICAgID0gMTEwOCwKKyAgICAg
ICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9VbmFibGVUb0dldFVzZXJEYXRh
U3RhcnQgICAgICAgPSAxMTA5LAorICAgICAgIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0ht
ZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFOZXh0ICAgICAgICAgICAgICA9IDExMTAsCisgICAg
ICAgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFu
Z2UgICAgICAgICAgICAgID0gMTExMSwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZp
Y19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTEx
MiwKKyAgICAgICBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWls
ZWRTYW5pdHlDaGVjayAgICAgICAgICAgICAgPSAxMTEzLAorCisgICAgICAgVlJJbml0RXJyb3Jf
U3RlYW1fU3RlYW1JbnN0YWxsYXRpb25Ob3RGb3VuZCA9IDIwMDAsCit9OworCitlbnVtIEVWUlNj
cmVlbnNob3RUeXBlCit7CisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Ob25lID0gMCwKKyAgICAg
ICBWUlNjcmVlbnNob3RUeXBlX01vbm8gPSAxLCAvLyBsZWZ0IGV5ZSBvbmx5CisgICAgICAgVlJT
Y3JlZW5zaG90VHlwZV9TdGVyZW8gPSAyLAorICAgICAgIFZSU2NyZWVuc2hvdFR5cGVfQ3ViZW1h
cCA9IDMsCisgICAgICAgVlJTY3JlZW5zaG90VHlwZV9Nb25vUGFub3JhbWEgPSA0LAorICAgICAg
IFZSU2NyZWVuc2hvdFR5cGVfU3RlcmVvUGFub3JhbWEgPSA1Cit9OworCitlbnVtIEVWUlNjcmVl
bnNob3RQcm9wZXJ0eUZpbGVuYW1lcworeworICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5Rmls
ZW5hbWVzX1ByZXZpZXcgPSAwLAorICAgICAgIFZSU2NyZWVuc2hvdFByb3BlcnR5RmlsZW5hbWVz
X1ZSID0gMSwKK307CisKK2VudW0gRVZSVHJhY2tlZENhbWVyYUVycm9yCit7CisgICAgICAgVlJU
cmFja2VkQ2FtZXJhRXJyb3JfTm9uZSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAg
IFZSVHJhY2tlZENhbWVyYUVycm9yX09wZXJhdGlvbkZhaWxlZCAgICAgICAgICAgID0gMTAwLAor
ICAgICAgIFZSVHJhY2tlZENhbWVyYUVycm9yX0ludmFsaWRIYW5kbGUgICAgICAgICAgICAgID0g
MTAxLCAgICAgICAKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkRnJhbWVIZWFk
ZXJWZXJzaW9uICA9IDEwMiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9PdXRPZkhhbmRs
ZXMgICAgICAgICAgICAgICA9IDEwMywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JUENG
YWlsdXJlICAgICAgICAgICAgICAgICA9IDEwNCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJv
cl9Ob3RTdXBwb3J0ZWRGb3JUaGlzRGV2aWNlICA9IDEwNSwKKyAgICAgICBWUlRyYWNrZWRDYW1l
cmFFcnJvcl9TaGFyZWRNZW1vcnlGYWlsdXJlICAgICAgICA9IDEwNiwKKyAgICAgICBWUlRyYWNr
ZWRDYW1lcmFFcnJvcl9GcmFtZUJ1ZmZlcmluZ0ZhaWx1cmUgICAgICA9IDEwNywKKyAgICAgICBW
UlRyYWNrZWRDYW1lcmFFcnJvcl9TdHJlYW1TZXR1cEZhaWx1cmUgICAgICAgICA9IDEwOCwKKyAg
ICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkR0xUZXh0dXJlSWQgICAgICAgICA9IDEw
OSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9JbnZhbGlkU2hhcmVkVGV4dHVyZUhhbmRs
ZSA9IDExMCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9GYWlsZWRUb0dldEdMVGV4dHVy
ZUlkICAgICA9IDExMSwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9TaGFyZWRUZXh0dXJl
RmFpbHVyZSAgICAgICA9IDExMiwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9Ob0ZyYW1l
QXZhaWxhYmxlICAgICAgICAgICA9IDExMywKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFFcnJvcl9J
bnZhbGlkQXJndW1lbnQgICAgICAgICAgICA9IDExNCwKKyAgICAgICBWUlRyYWNrZWRDYW1lcmFF
cnJvcl9JbnZhbGlkRnJhbWVCdWZmZXJTaXplICAgICA9IDExNSwKK307CisKK2VudW0gRVZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZQoreworICAgICAgIFZSVHJhY2tlZENhbWVyYUZyYW1lVHlwZV9E
aXN0b3J0ZWQgPSAwLCAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhbWVyYSB2
aWRlbyBmcmFtZSBzaXplIGluIHBpeGVscywgc3RpbGwgZGlzdG9ydGVkLgorICAgICAgIFZSVHJh
Y2tlZENhbWVyYUZyYW1lVHlwZV9VbmRpc3RvcnRlZCwgICAgICAgICAgICAgICAgICAgICAvLyBJ
biBwaXhlbHMsIGFuIHVuZGlzdG9ydGVkIGluc2NyaWJlZCByZWN0YW5nbGUgcmVnaW9uIHdpdGhv
dXQgaW52YWxpZCByZWdpb25zLiBUaGlzIHNpemUgaXMgc3ViamVjdCB0byBjaGFuZ2VzIHNob3J0
bHkuCisgICAgICAgVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBlX01heGltdW1VbmRpc3RvcnRlZCwg
ICAgICAgLy8gSW4gcGl4ZWxzLCBtYXhpbXVtIHVuZGlzdG9ydGVkIHdpdGggaW52YWxpZCByZWdp
b25zLiBOb24gemVybyBhbHBoYSBjb21wb25lbnQgaWRlbnRpZmllcyB2YWxpZCByZWdpb25zLgor
ICAgICAgIE1BWF9DQU1FUkFfRlJBTUVfVFlQRVMKK307CisKK3R5cGVkZWYgdWludDY0X3QgVHJh
Y2tlZENhbWVyYUhhbmRsZV90OworI2RlZmluZSBJTlZBTElEX1RSQUNLRURfQ0FNRVJBX0hBTkRM
RSAgICAgICAoKHZyOjpUcmFja2VkQ2FtZXJhSGFuZGxlX3QpMCkKKworc3RydWN0IENhbWVyYVZp
ZGVvU3RyZWFtRnJhbWVIZWFkZXJfdAoreworICAgICAgIEVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5
cGUgZUZyYW1lVHlwZTsKKworICAgICAgIHVpbnQzMl90IG5XaWR0aDsKKyAgICAgICB1aW50MzJf
dCBuSGVpZ2h0OworICAgICAgIHVpbnQzMl90IG5CeXRlc1BlclBpeGVsOworCisgICAgICAgdWlu
dDMyX3QgbkZyYW1lU2VxdWVuY2U7CisKKyAgICAgICBUcmFja2VkRGV2aWNlUG9zZV90IHN0YW5k
aW5nVHJhY2tlZERldmljZVBvc2U7Cit9OworCisvLyBTY3JlZW5zaG90IHR5cGVzCit0eXBlZGVm
IHVpbnQzMl90IFNjcmVlbnNob3RIYW5kbGVfdDsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtf
dW5TY3JlZW5zaG90SGFuZGxlSW52YWxpZCA9IDA7CisKKyNwcmFnbWEgcGFjayggcG9wICkKKwor
Ly8gZmlndXJlIG91dCBob3cgdG8gaW1wb3J0IGZyb20gdGhlIFZSIEFQSSBkbGwKKyNpZiBkZWZp
bmVkKF9XSU4zMikKKworI2lmZGVmIFZSX0FQSV9FWFBPUlQKKyNkZWZpbmUgVlJfSU5URVJGQUNF
IGV4dGVybiAiQyIgX19kZWNsc3BlYyggZGxsZXhwb3J0ICkKKyNlbHNlCisjZGVmaW5lIFZSX0lO
VEVSRkFDRSBleHRlcm4gIkMiIF9fZGVjbHNwZWMoIGRsbGltcG9ydCApCisjZW5kaWYKKworI2Vs
aWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChDT01QSUxFUl9HQ0MpIHx8IGRlZmluZWQo
X19BUFBMRV9fKQorCisjaWZkZWYgVlJfQVBJX0VYUE9SVAorI2RlZmluZSBWUl9JTlRFUkZBQ0Ug
ZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vsc2UK
KyNkZWZpbmUgVlJfSU5URVJGQUNFIGV4dGVybiAiQyIgCisjZW5kaWYKKworI2Vsc2UKKyNlcnJv
ciAiVW5zdXBwb3J0ZWQgUGxhdGZvcm0uIgorI2VuZGlmCisKKworI2lmIGRlZmluZWQoIF9XSU4z
MiApCisjZGVmaW5lIFZSX0NBTExUWVBFIF9fY2RlY2wKKyNlbHNlCisjZGVmaW5lIFZSX0NBTExU
WVBFIAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIHZyCisKKyNlbmRpZiAvLyBfSU5DTFVERV9W
UlRZUEVTX0gKKworCisvLyB2cmFubm90YXRpb24uaAorI2lmZGVmIEFQSV9HRU4KKyMgZGVmaW5l
IFZSX0NMQU5HX0FUVFIoQVRUUikgX19hdHRyaWJ1dGVfXygoYW5ub3RhdGUoIEFUVFIgKSkpCisj
ZWxzZQorIyBkZWZpbmUgVlJfQ0xBTkdfQVRUUihBVFRSKQorI2VuZGlmCisKKyNkZWZpbmUgVlJf
TUVUSE9EX0RFU0MoREVTQykgVlJfQ0xBTkdfQVRUUiggImRlc2M6IiAjREVTQyAiOyIgKQorI2Rl
ZmluZSBWUl9JR05PUkVBVFRSKCkgVlJfQ0xBTkdfQVRUUiggImlnbm9yZSIgKQorI2RlZmluZSBW
Ul9PVVRfU1RSVUNUKCkgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJ1Y3Q6IDsiICkKKyNkZWZpbmUg
VlJfT1VUX1NUUklORygpIFZSX0NMQU5HX0FUVFIoICJvdXRfc3RyaW5nOiA7IiApCisjZGVmaW5l
IFZSX09VVF9BUlJBWV9DQUxMKENPVU5URVIsRlVOQ1RJT04sUEFSQU1TKSBWUl9DTEFOR19BVFRS
KCAib3V0X2FycmF5X2NhbGw6IiAjQ09VTlRFUiAiLCIgI0ZVTkNUSU9OICIsIiAjUEFSQU1TICI7
IiApCisjZGVmaW5lIFZSX09VVF9BUlJBWV9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAi
b3V0X2FycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNkZWZpbmUgVlJfQVJSQVlfQ09VTlQo
Q09VTlRFUikgVlJfQ0xBTkdfQVRUUiggImFycmF5X2NvdW50OiIgI0NPVU5URVIgIjsiICkKKyNk
ZWZpbmUgVlJfQVJSQVlfQ09VTlRfRChDT1VOVEVSLCBERVNDKSBWUl9DTEFOR19BVFRSKCAiYXJy
YXlfY291bnQ6IiAjQ09VTlRFUiAiO2Rlc2M6IiAjREVTQyApCisjZGVmaW5lIFZSX0JVRkZFUl9D
T1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAiYnVmZmVyX2NvdW50OiIgI0NPVU5URVIgIjsi
ICkKKyNkZWZpbmUgVlJfT1VUX0JVRkZFUl9DT1VOVChDT1VOVEVSKSBWUl9DTEFOR19BVFRSKCAi
b3V0X2J1ZmZlcl9jb3VudDoiICNDT1VOVEVSICI7IiApCisjZGVmaW5lIFZSX09VVF9TVFJJTkdf
Q09VTlQoQ09VTlRFUikgVlJfQ0xBTkdfQVRUUiggIm91dF9zdHJpbmdfY291bnQ6IiAjQ09VTlRF
UiAiOyIgKQorCisvLyB2cnRyYWNrZWRjYW1lcmF0eXBlcy5oCisjaWZuZGVmIF9WUlRSQUNLRURD
QU1FUkFUWVBFU19ICisjZGVmaW5lIF9WUlRSQUNLRURDQU1FUkFUWVBFU19IIAorCituYW1lc3Bh
Y2UgdnIKK3sKKworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykg
CisgICAgICAgLy8gVGhlIDMyLWJpdCB2ZXJzaW9uIG9mIGdjYyBoYXMgdGhlIGFsaWdubWVudCBy
ZXF1aXJlbWVudCBmb3IgdWludDY0IGFuZCBkb3VibGUgc2V0IHRvCisgICAgICAgLy8gNCBtZWFu
aW5nIHRoYXQgZXZlbiB3aXRoICNwcmFnbWEgcGFjayg4KSB0aGVzZSB0eXBlcyB3aWxsIG9ubHkg
YmUgZm91ci1ieXRlIGFsaWduZWQuCisgICAgICAgLy8gVGhlIDY0LWJpdCB2ZXJzaW9uIG9mIGdj
YyBoYXMgdGhlIGFsaWdubWVudCByZXF1aXJlbWVudCBmb3IgdGhlc2UgdHlwZXMgc2V0IHRvCisg
ICAgICAgLy8gOCBtZWFuaW5nIHRoYXQgdW5sZXNzIHdlIHVzZSAjcHJhZ21hIHBhY2soNCkgb3Vy
IHN0cnVjdHVyZXMgd2lsbCBnZXQgYmlnZ2VyLgorICAgICAgIC8vIFRoZSA2NC1iaXQgc3RydWN0
dXJlIHBhY2tpbmcgaGFzIHRvIG1hdGNoIHRoZSAzMi1iaXQgc3RydWN0dXJlIHBhY2tpbmcgZm9y
IGVhY2ggcGxhdGZvcm0uCisgICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA0ICkKKyNlbHNlCisg
ICAgICAgI3ByYWdtYSBwYWNrKCBwdXNoLCA4ICkKKyNlbmRpZgorCitlbnVtIEVDYW1lcmFWaWRl
b1N0cmVhbUZvcm1hdAoreworICAgICAgIENWU19GT1JNQVRfVU5LTk9XTiA9IDAsCisgICAgICAg
Q1ZTX0ZPUk1BVF9SQVcxMCA9IDEsICAgICAgICAgICAgICAvLyAxMCBiaXRzIHBlciBwaXhlbAor
ICAgICAgIENWU19GT1JNQVRfTlYxMiA9IDIsICAgICAgICAgICAgICAvLyAxMiBiaXRzIHBlciBw
aXhlbAorICAgICAgIENWU19GT1JNQVRfUkdCMjQgPSAzLCAgICAgICAgICAgICAgLy8gMjQgYml0
cyBwZXIgcGl4ZWwKKyAgICAgICBDVlNfTUFYX0ZPUk1BVFMKK307CisKK2VudW0gRUNhbWVyYUNv
bXBhdGliaWxpdHlNb2RlCit7CisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfREVGQVVM
VCA9IDAsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9NT0RFX0JVTEtfNjRLX0RNQSwKKyAgICAgICBD
QU1FUkFfQ09NUEFUX01PREVfQlVMS18xNktfRE1BLAorICAgICAgIENBTUVSQV9DT01QQVRfTU9E
RV9CVUxLXzhLX0RNQSwKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzUyRlBTLAorICAg
ICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNTBGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9N
T0RFX0lTT180OEZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQ2RlBTLAorICAg
ICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fNDRGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9N
T0RFX0lTT180MkZQUywKKyAgICAgICBDQU1FUkFfQ09NUEFUX01PREVfSVNPXzQwRlBTLAorICAg
ICAgIENBTUVSQV9DT01QQVRfTU9ERV9JU09fMzVGUFMsCisgICAgICAgQ0FNRVJBX0NPTVBBVF9N
T0RFX0lTT18zMEZQUywKKyAgICAgICBNQVhfQ0FNRVJBX0NPTVBBVF9NT0RFUworfTsKKworI2lm
ZGVmIF9NU0NfVkVSCisjZGVmaW5lIFZSX0NBTUVSQV9ERUNMX0FMSUdOKCB4ICkgX19kZWNsc3Bl
YyggYWxpZ24oIHggKSApCisjZWxzZQorI2RlZmluZSBWUl9DQU1FUkFfREVDTF9BTElHTiggeCAp
IC8vCisjZW5kaWYKKworI2RlZmluZSBNQVhfQ0FNRVJBX0ZSQU1FX1NIQVJFRF9IQU5ETEVTICAg
ICAgIDQKKworVlJfQ0FNRVJBX0RFQ0xfQUxJR04oIDggKSBzdHJ1Y3QgQ2FtZXJhVmlkZW9TdHJl
YW1GcmFtZV90Cit7CisgICAgICAgRUNhbWVyYVZpZGVvU3RyZWFtRm9ybWF0IG1fblN0cmVhbUZv
cm1hdDsKKworICAgICAgIHVpbnQzMl90IG1fbldpZHRoOworICAgICAgIHVpbnQzMl90IG1fbkhl
aWdodDsKKworICAgICAgIHVpbnQzMl90IG1fbkltYWdlRGF0YVNpemU7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmFzZWQgb24gc3RyZWFtIGZvcm1hdCwgd2lk
dGgsIGhlaWdodAorCisgICAgICAgdWludDMyX3QgbV9uRnJhbWVTZXF1ZW5jZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3Ry
ZWFtIHN0YXJ0cy4KKworICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckluZGV4OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXMgd2hpY2ggYnVmZmVy
IHRoZSBpbWFnZSBkYXRhIGlzIGhvc3RlZAorICAgICAgIHVpbnQzMl90IG1fbkJ1ZmZlckNvdW50
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvdGFsIG51bWJl
ciBvZiBjb25maWd1cmVkIGJ1ZmZlcnMKKworICAgICAgIHVpbnQzMl90IG1fbkV4cG9zdXJlVGlt
ZTsKKworICAgICAgIHVpbnQzMl90IG1fbklTUEZyYW1lVGltZVN0YW1wOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRHJpdmVyIHByb3ZpZGVkIHRpbWUgc3RhbXAgcGVyIGRy
aXZlciBjZW50cmljIHRpbWUgYmFzZQorICAgICAgIHVpbnQzMl90IG1fbklTUFJlZmVyZW5jZVRp
bWVTdGFtcDsKKyAgICAgICB1aW50MzJfdCBtX25TeW5jQ291bnRlcjsKKworICAgICAgIHVpbnQz
Ml90IG1fbkNhbVN5bmNFdmVudHM7CisgICAgICAgdWludDMyX3QgbV9uSVNQU3luY0V2ZW50czsK
KworICAgICAgIGRvdWJsZSBtX2ZsUmVmZXJlbmNlQ2FtU3luY1RpbWU7CisKKyAgICAgICBkb3Vi
bGUgbV9mbEZyYW1lRWxhcHNlZFRpbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBTdGFydHMgZnJvbSAwIHdoZW4gc3RyZWFtIHN0YXJ0cy4gSW4gc2Vjb25kcy4KKyAgICAg
ICBkb3VibGUgbV9mbEZyYW1lRGVsaXZlcnlSYXRlOworCisgICAgICAgZG91YmxlIG1fZmxGcmFt
ZUNhcHR1cmVUaW1lX0RyaXZlckFic29sdXRlOyAgICAgICAgICAgICAgLy8gSW4gVVNCIHRpbWUs
IHZpYSBBdXhFdmVudAorICAgICAgIGRvdWJsZSBtX2ZsRnJhbWVDYXB0dXJlVGltZV9TZXJ2ZXJS
ZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEluIFN5c3RlbSB0aW1lIHdpdGhpbiB0aGUgc2VydmVy
CisgICAgICAgdWludDY0X3QgbV9uRnJhbWVDYXB0dXJlVGlja3NfU2VydmVyQWJzb2x1dGU7ICAg
ICAgIC8vIEluIHN5c3RlbSB0aWNrcyB3aXRoaW4gdGhlIHNlcnZlcgorICAgICAgIGRvdWJsZSBt
X2ZsRnJhbWVDYXB0dXJlVGltZV9DbGllbnRSZWxhdGl2ZTsgICAgICAgICAgICAgIC8vIEF0IHRo
ZSBjbGllbnQsIHJlbGF0aXZlIHRvIHdoZW4gdGhlIGZyYW1lIHdhcyBleHBvc2VkL2NhcHR1cmVk
LgorCisgICAgICAgZG91YmxlIG1fZmxTeW5jTWFya2VyRXJyb3I7CisKKyAgICAgICBUcmFja2Vk
RGV2aWNlUG9zZV90IG1fU3RhbmRpbmdUcmFja2VkRGV2aWNlUG9zZTsgICAgICAgLy8gU3VwcGxp
ZWQgYnkgSE1EIGxheWVyIHdoZW4gdXNlZCBhcyBhIHRyYWNrZWQgY2FtZXJhCisKKyAgICAgICB1
aW50NjRfdCBtX3BJbWFnZURhdGE7Cit9OworCisjcHJhZ21hIHBhY2soIHBvcCApCisKK30KKwor
I2VuZGlmIC8vIF9WUlRSQUNLRURDQU1FUkFUWVBFU19ICisvLyBpdnJzZXR0aW5ncy5oCituYW1l
c3BhY2UgdnIKK3sKKyAgICAgICBlbnVtIEVWUlNldHRpbmdzRXJyb3IKKyAgICAgICB7CisgICAg
ICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9Ob25lID0gMCwKKyAgICAgICAgICAgICAgVlJTZXR0
aW5nc0Vycm9yX0lQQ0ZhaWxlZCA9IDEsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9X
cml0ZUZhaWxlZCA9IDIsCisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9SZWFkRmFpbGVk
ID0gMywKKyAgICAgICAgICAgICAgVlJTZXR0aW5nc0Vycm9yX0pzb25QYXJzZUZhaWxlZCA9IDQs
CisgICAgICAgICAgICAgIFZSU2V0dGluZ3NFcnJvcl9VbnNldFNldHRpbmdIYXNOb0RlZmF1bHQg
PSA1LCAvLyBUaGlzIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHNldHRpbmcgZG9lcyBub3QgYXBw
ZWFyIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IGZpbGUgYW5kIGhhcyBub3QgYmVlbiBzZXQK
KyAgICAgICB9OworCisgICAgICAgLy8gVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgc2V0dGluZ3Mg
a2V5CisgICAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGtfdW5NYXhTZXR0aW5nc0tleUxlbmd0
aCA9IDEyODsKKworICAgICAgIGNsYXNzIElWUlNldHRpbmdzCisgICAgICAgeworICAgICAgIHB1
YmxpYzoKKyAgICAgICAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRTZXR0aW5nc0Vycm9y
TmFtZUZyb21FbnVtKCBFVlJTZXR0aW5nc0Vycm9yIGVFcnJvciApID0gMDsKKworICAgICAgICAg
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZmlsZSBzeW5jIG9jY3VycmVkIChmb3JjZSBvciBzZXR0
aW5ncyBkaXJ0eSkKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN5bmMoIGJvb2wgYkZvcmNl
ID0gZmFsc2UsIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9u
LCBjb25zdCBjaGFyICpwY2hTZXR0aW5nc0tleSwgYm9vbCBiVmFsdWUsIEVWUlNldHRpbmdzRXJy
b3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQg
U2V0SW50MzIoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24sIGNvbnN0IGNoYXIgKnBjaFNldHRpbmdz
S2V5LCBpbnQzMl90IG5WYWx1ZSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIg
KSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTZXRGbG9hdCggY29uc3QgY2hhciAq
cGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIGZsb2F0IGZsVmFsdWUsIEVW
UlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgU2V0U3RyaW5nKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFy
ICpwY2hTZXR0aW5nc0tleSwgY29uc3QgY2hhciAqcGNoVmFsdWUsIEVWUlNldHRpbmdzRXJyb3Ig
KnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgICAgICAgIC8vIFVzZXJzIG9mIHRo
ZSBzeXN0ZW0gbmVlZCB0byBwcm92aWRlIGEgcHJvcGVyIGRlZmF1bHQgaW4gZGVmYXVsdC52cnNl
dHRpbmdzIGluIHRoZSByZXNvdXJjZXMvc2V0dGluZ3MvIGRpcmVjdG9yeQorICAgICAgICAgICAg
ICAvLyBvZiBlaXRoZXIgdGhlIHJ1bnRpbWUgb3IgdGhlIGRyaXZlcl94eHggZGlyZWN0b3J5LiBP
dGhlcndpc2UgdGhlIGRlZmF1bHQgd2lsbCBiZSBmYWxzZSwgMCwgMC4wIG9yICIiCisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBHZXRCb29sKCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25z
dCBjaGFyICpwY2hTZXR0aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxw
dHIgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgaW50MzJfdCBHZXRJbnQzMiggY29uc3Qg
Y2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNldHRpbmdz
RXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGZs
b2F0IEdldEZsb2F0KCBjb25zdCBjaGFyICpwY2hTZWN0aW9uLCBjb25zdCBjaGFyICpwY2hTZXR0
aW5nc0tleSwgRVZSU2V0dGluZ3NFcnJvciAqcGVFcnJvciA9IG51bGxwdHIgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBHZXRTdHJpbmcoIGNvbnN0IGNoYXIgKnBjaFNlY3Rpb24s
IGNvbnN0IGNoYXIgKnBjaFNldHRpbmdzS2V5LCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFs
dWUsIHVpbnQzMl90IHVuVmFsdWVMZW4sIEVWUlNldHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxs
cHRyICkgPSAwOworCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTZWN0aW9uKCBj
b25zdCBjaGFyICpwY2hTZWN0aW9uLCBFVlJTZXR0aW5nc0Vycm9yICpwZUVycm9yID0gbnVsbHB0
ciApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIFJlbW92ZUtleUluU2VjdGlvbigg
Y29uc3QgY2hhciAqcGNoU2VjdGlvbiwgY29uc3QgY2hhciAqcGNoU2V0dGluZ3NLZXksIEVWUlNl
dHRpbmdzRXJyb3IgKnBlRXJyb3IgPSBudWxscHRyICkgPSAwOworICAgICAgIH07CisKKyAgICAg
ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBJVlJTZXR0aW5nc19WZXJzaW9uID0gIklWUlNldHRpbmdzXzAwMiI7CisKKyAgICAgICAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gc3RlYW12ciBrZXlzCisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1NlY3Rpb24gPSAic3RlYW12ciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1JlcXVpcmVIbWRf
U3RyaW5nID0gInJlcXVpcmVIbWQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
a19wY2hfU3RlYW1WUl9Gb3JjZWREcml2ZXJLZXlfU3RyaW5nID0gImZvcmNlZERyaXZlciI7Cisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0ZvcmNlZEhtZEtl
eV9TdHJpbmcgPSAiZm9yY2VkSG1kIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnX0Jvb2wgPSAiZGlzcGxheURlYnVnIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGVidWdQcm9jZXNzUGlw
ZV9TdHJpbmcgPSAiZGVidWdQcm9jZXNzUGlwZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9TdGVhbVZSX0VuYWJsZURpc3RvcnRpb25fQm9vbCA9ICJlbmFibGVEaXN0
b3J0aW9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJf
RGlzcGxheURlYnVnWF9JbnQzMiA9ICJkaXNwbGF5RGVidWdYIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlzcGxheURlYnVnWV9JbnQzMiA9ICJkaXNw
bGF5RGVidWdZIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfU2VuZFN5c3RlbUJ1dHRvblRvQWxsQXBwc19Cb29sPSAic2VuZFN5c3RlbUJ1dHRvblRvQWxs
QXBwcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0xv
Z0xldmVsX0ludDMyID0gImxvZ2xldmVsIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX1N0ZWFtVlJfSVBEX0Zsb2F0ID0gImlwZCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0JhY2tncm91bmRfU3RyaW5nID0gImJhY2tncm91
bmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kVXNlRG9tZVByb2plY3Rpb25fQm9vbCA9ICJiYWNrZ3JvdW5kVXNlRG9tZVByb2plY3Rp
b24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNr
Z3JvdW5kQ2FtZXJhSGVpZ2h0X0Zsb2F0ID0gImJhY2tncm91bmRDYW1lcmFIZWlnaHQiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9CYWNrZ3JvdW5kRG9t
ZVJhZGl1c19GbG9hdCA9ICJiYWNrZ3JvdW5kRG9tZVJhZGl1cyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0dyaWRDb2xvcl9TdHJpbmcgPSAiZ3JpZENv
bG9yIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfUGxh
eUFyZWFDb2xvcl9TdHJpbmcgPSAicGxheUFyZWFDb2xvciI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nob3dTdGFnZV9Cb29sID0gInNob3dTdGFnZSI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FjdGl2YXRl
TXVsdGlwbGVEcml2ZXJzX0Jvb2wgPSAiYWN0aXZhdGVNdWx0aXBsZURyaXZlcnMiOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9EaXJlY3RNb2RlX0Jvb2wg
PSAiZGlyZWN0TW9kZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0RpcmVjdE1vZGVFZGlkVmlkX0ludDMyID0gImRpcmVjdE1vZGVFZGlkVmlkIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRGlyZWN0TW9kZUVk
aWRQaWRfSW50MzIgPSAiZGlyZWN0TW9kZUVkaWRQaWQiOworICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Vc2luZ1NwZWFrZXJzX0Jvb2wgPSAidXNpbmdTcGVh
a2VycyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX1Nw
ZWFrZXJzRm9yd2FyZFlhd09mZnNldERlZ3JlZXNfRmxvYXQgPSAic3BlYWtlcnNGb3J3YXJkWWF3
T2Zmc2V0RGVncmVlcyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9T
dGVhbVZSX0Jhc2VTdGF0aW9uUG93ZXJNYW5hZ2VtZW50X0Jvb2wgPSAiYmFzZXN0YXRpb25Qb3dl
ck1hbmFnZW1lbnQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3Rl
YW1WUl9OZXZlcktpbGxQcm9jZXNzZXNfQm9vbCA9ICJuZXZlcktpbGxQcm9jZXNzZXMiOworICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZW5kZXJUYXJnZXRN
dWx0aXBsaWVyX0Zsb2F0ID0gInJlbmRlclRhcmdldE11bHRpcGxpZXIiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9BbGxvd0FzeW5jUmVwcm9qZWN0aW9u
X0Jvb2wgPSAiYWxsb3dBc3luY1JlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0FsbG93UmVwcm9qZWN0aW9uX0Jvb2wgPSAiYWxsb3dJ
bnRlcmxlYXZlZFJlcHJvamVjdGlvbiI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0ZvcmNlUmVwcm9qZWN0aW9uX0Jvb2wgPSAiZm9yY2VSZXByb2plY3Rp
b24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9Gb3Jj
ZUZhZGVPbkJhZFRyYWNraW5nX0Jvb2wgPSAiZm9yY2VGYWRlT25CYWRUcmFja2luZyI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0RlZmF1bHRNaXJyb3JW
aWV3X0ludDMyID0gImRlZmF1bHRNaXJyb3JWaWV3IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU2hvd01pcnJvclZpZXdfQm9vbCA9ICJzaG93TWlycm9y
VmlldyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX01p
cnJvclZpZXdHZW9tZXRyeV9TdHJpbmcgPSAibWlycm9yVmlld0dlb21ldHJ5IjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRNb25pdG9yRnJvbUFw
cExhdW5jaCA9ICJzdGFydE1vbml0b3JGcm9tQXBwTGF1bmNoIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfU3RhcnRDb21wb3NpdG9yRnJvbUFwcExhdW5j
aF9Cb29sID0gInN0YXJ0Q29tcG9zaXRvckZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydERhc2hib2FyZEZyb21BcHBMYXVu
Y2hfQm9vbCA9ICJzdGFydERhc2hib2FyZEZyb21BcHBMYXVuY2giOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9TdGFydE92ZXJsYXlBcHBzRnJvbURhc2hi
b2FyZF9Cb29sID0gInN0YXJ0T3ZlcmxheUFwcHNGcm9tRGFzaGJvYXJkIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFtVlJfRW5hYmxlSG9tZUFwcCA9ICJlbmFi
bGVIb21lQXBwIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1N0ZWFt
VlJfU2V0SW5pdGlhbERlZmF1bHRIb21lQXBwID0gInNldEluaXRpYWxEZWZhdWx0SG9tZUFwcCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9TdGVhbVZSX0N5Y2xlQmFj
a2dyb3VuZEltYWdlVGltZVNlY19JbnQzMiA9ICJDeWNsZUJhY2tncm91bmRJbWFnZVRpbWVTZWMi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfU3RlYW1WUl9SZXRhaWxE
ZW1vX0Jvb2wgPSAicmV0YWlsRGVtbyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9TdGVhbVZSX0lwZE9mZnNldF9GbG9hdCA9ICJpcGRPZmZzZXQiOworCisgICAgICAg
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIGxpZ2h0aG91c2Uga2V5cworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9TZWN0aW9uID0gImRy
aXZlcl9saWdodGhvdXNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0xpZ2h0aG91c2VfRGlzYWJsZUlNVV9Cb29sID0gImRpc2FibGVpbXUiOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfTGlnaHRob3VzZV9Vc2VEaXNhbWJpZ3VhdGlvbl9T
dHJpbmcgPSAidXNlZGlzYW1iaWd1YXRpb24iOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfTGlnaHRob3VzZV9EaXNhbWJpZ3VhdGlvbkRlYnVnX0ludDMyID0gImRpc2Ft
YmlndWF0aW9uZGVidWciOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
TGlnaHRob3VzZV9QcmltYXJ5QmFzZXN0YXRpb25fSW50MzIgPSAicHJpbWFyeWJhc2VzdGF0aW9u
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0xpZ2h0aG91c2VfREJI
aXN0b3J5X0Jvb2wgPSAiZGJoaXN0b3J5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvLyBudWxsIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX051bGxfU2VjdGlvbiA9ICJkcml2ZXJfbnVsbCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9OdWxsX1NlcmlhbE51bWJlcl9TdHJpbmcgPSAic2VyaWFsTnVt
YmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfTW9kZWxO
dW1iZXJfU3RyaW5nID0gIm1vZGVsTnVtYmVyIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX051bGxfV2luZG93WF9JbnQzMiA9ICJ3aW5kb3dYIjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93WV9JbnQzMiA9ICJ3aW5kb3dZ
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfV2luZG93V2lk
dGhfSW50MzIgPSAid2luZG93V2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfTnVsbF9XaW5kb3dIZWlnaHRfSW50MzIgPSAid2luZG93SGVpZ2h0IjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfUmVuZGVyV2lkdGhfSW50MzIg
PSAicmVuZGVyV2lkdGgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hf
TnVsbF9SZW5kZXJIZWlnaHRfSW50MzIgPSAicmVuZGVySGVpZ2h0IjsKKyAgICAgICBzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX051bGxfU2Vjb25kc0Zyb21Wc3luY1RvUGhvdG9uc19G
bG9hdCA9ICJzZWNvbmRzRnJvbVZzeW5jVG9QaG90b25zIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX051bGxfRGlzcGxheUZyZXF1ZW5jeV9GbG9hdCA9ICJkaXNwbGF5
RnJlcXVlbmN5IjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyB1
c2VyIGludGVyZmFjZSBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9Vc2VySW50ZXJmYWNlX1NlY3Rpb24gPSAidXNlcmludGVyZmFjZSI7CisgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1N0YXR1c0Fsd2F5c09uVG9w
X0Jvb2wgPSAiU3RhdHVzQWx3YXlzT25Ub3AiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfVXNlckludGVyZmFjZV9NaW5pbWl6ZVRvVHJheV9Cb29sID0gIk1pbmltaXpl
VG9UcmF5IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1VzZXJJbnRl
cmZhY2VfU2NyZWVuc2hvdHNfQm9vbCA9ICJzY3JlZW5zaG90cyI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Vc2VySW50ZXJmYWNlX1NjcmVlbnNob3RUeXBlX0ludCA9
ICJzY3JlZW5zaG90VHlwZSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gbm90aWZpY2F0aW9uIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0
IGtfcGNoX05vdGlmaWNhdGlvbnNfU2VjdGlvbiA9ICJub3RpZmljYXRpb25zIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX05vdGlmaWNhdGlvbnNfRG9Ob3REaXN0dXJi
X0Jvb2wgPSAiRG9Ob3REaXN0dXJiIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICAgICAvLyBrZXlib2FyZCBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z
dCBrX3BjaF9LZXlib2FyZF9TZWN0aW9uID0gImtleWJvYXJkIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX0tleWJvYXJkX1R1dG9yaWFsQ29tcGxldGlvbnMgPSAiVHV0
b3JpYWxDb21wbGV0aW9ucyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3Bj
aF9LZXlib2FyZF9TY2FsZVggPSAiU2NhbGVYIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAq
IGNvbnN0IGtfcGNoX0tleWJvYXJkX1NjYWxlWSA9ICJTY2FsZVkiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zmc2V0TGVmdFggPSAiT2Zmc2V0TGVm
dFgiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfT2Zm
c2V0UmlnaHRYID0gIk9mZnNldFJpZ2h0WCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9LZXlib2FyZF9PZmZzZXRZID0gIk9mZnNldFkiOworICAgICAgIHN0YXRpYyBj
b25zdCBjaGFyICogY29uc3Qga19wY2hfS2V5Ym9hcmRfU21vb3RoaW5nID0gIlNtb290aGluZyI7
CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gcGVyZiBrZXlzCisg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1NlY3Rpb24gPSAicGVy
ZmNoZWNrIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfSGV1
cmlzdGljQWN0aXZlX0Jvb2wgPSAiaGV1cmlzdGljQWN0aXZlIjsKKyAgICAgICBzdGF0aWMgY29u
c3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfTm90aWZ5SW5ITURfQm9vbCA9ICJ3YXJuSW5ITUQi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfUGVyZl9Ob3RpZnlPbmx5
T25jZV9Cb29sID0gIndhcm5Pbmx5T25jZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCBrX3BjaF9QZXJmX0FsbG93VGltaW5nU3RvcmVfQm9vbCA9ICJhbGxvd1RpbWluZ1N0b3Jl
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1BlcmZfU2F2ZVRpbWlu
Z3NPbkV4aXRfQm9vbCA9ICJzYXZlVGltaW5nc09uRXhpdCI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9QZXJmX1Rlc3REYXRhX0Zsb2F0ID0gInBlcmZUZXN0RGF0YSI7
CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gY29sbGlzaW9uIGJv
dW5kcyBrZXlzCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNp
b25Cb3VuZHNfU2VjdGlvbiA9ICJjb2xsaXNpb25Cb3VuZHMiOworICAgICAgIHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX1N0eWxlX0ludDMyID0gIkNvbGxp
c2lvbkJvdW5kc1N0eWxlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19Hcm91bmRQZXJpbWV0ZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5k
c0dyb3VuZFBlcmltZXRlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX0NvbGxpc2lvbkJvdW5kc19DZW50ZXJNYXJrZXJPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5k
c0NlbnRlck1hcmtlck9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNo
X0NvbGxpc2lvbkJvdW5kc19QbGF5U3BhY2VPbl9Cb29sID0gIkNvbGxpc2lvbkJvdW5kc1BsYXlT
cGFjZU9uIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lv
bkJvdW5kc19GYWRlRGlzdGFuY2VfRmxvYXQgPSAiQ29sbGlzaW9uQm91bmRzRmFkZURpc3RhbmNl
IjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5k
c19Db2xvckdhbW1hUl9JbnQzMiA9ICJDb2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hUiI7CisgICAg
ICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Db2xsaXNpb25Cb3VuZHNfQ29sb3JH
YW1tYUdfSW50MzIgPSAiQ29sbGlzaW9uQm91bmRzQ29sb3JHYW1tYUciOworICAgICAgIHN0YXRp
YyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ29sbGlzaW9uQm91bmRzX0NvbG9yR2FtbWFCX0lu
dDMyID0gIkNvbGxpc2lvbkJvdW5kc0NvbG9yR2FtbWFCIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NvbGxpc2lvbkJvdW5kc19Db2xvckdhbW1hQV9JbnQzMiA9ICJD
b2xsaXNpb25Cb3VuZHNDb2xvckdhbW1hQSI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8gY2FtZXJhIGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNv
bnN0IGtfcGNoX0NhbWVyYV9TZWN0aW9uID0gImNhbWVyYSI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9DYW1lcmFfRW5hYmxlQ2FtZXJhX0Jvb2wgPSAiZW5hYmxlQ2Ft
ZXJhIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFi
bGVDYW1lcmFJbkRhc2hib2FyZF9Cb29sID0gImVuYWJsZUNhbWVyYUluRGFzaGJvYXJkIjsKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9FbmFibGVDYW1lcmFG
b3JDb2xsaXNpb25Cb3VuZHNfQm9vbCA9ICJlbmFibGVDYW1lcmFGb3JDb2xsaXNpb25Cb3VuZHMi
OworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0VuYWJsZUNh
bWVyYUZvclJvb21WaWV3X0Jvb2wgPSAiZW5hYmxlQ2FtZXJhRm9yUm9vbVZpZXciOworICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0JvdW5kc0NvbG9yR2FtbWFS
X0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFSIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNDb2xvckdhbW1hR19JbnQzMiA9ICJjYW1l
cmFCb3VuZHNDb2xvckdhbW1hRyI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBr
X3BjaF9DYW1lcmFfQm91bmRzQ29sb3JHYW1tYUJfSW50MzIgPSAiY2FtZXJhQm91bmRzQ29sb3JH
YW1tYUIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga19wY2hfQ2FtZXJhX0Jv
dW5kc0NvbG9yR2FtbWFBX0ludDMyID0gImNhbWVyYUJvdW5kc0NvbG9yR2FtbWFBIjsKKyAgICAg
ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0NhbWVyYV9Cb3VuZHNTdHJlbmd0aF9J
bnQzMiA9ICJjYW1lcmFCb3VuZHNTdHJlbmd0aCI7CisKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgLy8gYXVkaW8ga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfYXVkaW9fU2VjdGlvbiA9ICJhdWRpbyI7CisgICAgICAgc3RhdGljIGNvbnN0
IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvblBs
YXliYWNrRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX2F1
ZGlvX09uUmVjb3JkRGV2aWNlX1N0cmluZyA9ICJvblJlY29yZERldmljZSI7CisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19PblBsYXliYWNrTWlycm9yRGV2aWNl
X1N0cmluZyA9ICJvblBsYXliYWNrTWlycm9yRGV2aWNlIjsKKyAgICAgICBzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IGtfcGNoX2F1ZGlvX09mZlBsYXliYWNrRGV2aWNlX1N0cmluZyA9ICJvZmZQ
bGF5YmFja0RldmljZSI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9h
dWRpb19PZmZSZWNvcmREZXZpY2VfU3RyaW5nID0gIm9mZlJlY29yZERldmljZSI7CisgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9hdWRpb19WSVZFSERNSUdhaW4gPSAidml2
ZUhETUlHYWluIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBw
b3dlciBtYW5hZ2VtZW50IGtleXMKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtf
cGNoX1Bvd2VyX1NlY3Rpb24gPSAicG93ZXIiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga19wY2hfUG93ZXJfUG93ZXJPZmZPbkV4aXRfQm9vbCA9ICJwb3dlck9mZk9uRXhpdCI7
CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9UdXJuT2ZmU2Ny
ZWVuc1RpbWVvdXRfRmxvYXQgPSAidHVybk9mZlNjcmVlbnNUaW1lb3V0IjsKKyAgICAgICBzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX1Bvd2VyX1R1cm5PZmZDb250cm9sbGVyc1RpbWVv
dXRfRmxvYXQgPSAidHVybk9mZkNvbnRyb2xsZXJzVGltZW91dCI7CisgICAgICAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Qb3dlcl9SZXR1cm5Ub1dhdGNoZG9nVGltZW91dF9GbG9h
dCA9ICJyZXR1cm5Ub1dhdGNoZG9nVGltZW91dCI7CisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIg
KiBjb25zdCBrX3BjaF9Qb3dlcl9BdXRvTGF1bmNoU3RlYW1WUk9uQnV0dG9uUHJlc3MgPSAiYXV0
b0xhdW5jaFN0ZWFtVlJPbkJ1dHRvblByZXNzIjsKKworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAvLyBkYXNoYm9hcmQga2V5cworICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
ICogY29uc3Qga19wY2hfRGFzaGJvYXJkX1NlY3Rpb24gPSAiZGFzaGJvYXJkIjsKKyAgICAgICBz
dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX0Rhc2hib2FyZF9FbmFibGVEYXNoYm9hcmRf
Qm9vbCA9ICJlbmFibGVEYXNoYm9hcmQiOworICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29u
c3Qga19wY2hfRGFzaGJvYXJkX0FyY2FkZU1vZGVfQm9vbCA9ICJhcmNhZGVNb2RlIjsKKworICAg
ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBtb2RlbCBza2luIGtleXMKKyAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfcGNoX21vZGVsc2tpbl9TZWN0aW9uID0g
Im1vZGVsc2tpbnMiOworCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8v
IGRyaXZlciBrZXlzIC0gVGhlc2UgY291bGQgYmUgY2hlY2tlZCBpbiBhbnkgZHJpdmVyXzxuYW1l
PiBzZWN0aW9uCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBrX3BjaF9Ecml2ZXJf
RW5hYmxlX0Jvb2wgPSAiZW5hYmxlIjsKKworfSAvLyBuYW1lc3BhY2UgdnIKKworLy8gaXNlcnZl
cnRyYWNrZWRkZXZpY2Vkcml2ZXIuaAorbmFtZXNwYWNlIHZyCit7CisKKworc3RydWN0IERyaXZl
clBvc2VRdWF0ZXJuaW9uX3QKK3sKKyAgICAgICBkb3VibGUgdywgeCwgeSwgejsKK307CisKK3N0
cnVjdCBEcml2ZXJQb3NlX3QKK3sKKyAgICAgICAvKiBUaW1lIG9mZnNldCBvZiB0aGlzIHBvc2Us
IGluIHNlY29uZHMgZnJvbSB0aGUgYWN0dWFsIHRpbWUgb2YgdGhlIHBvc2UsCisgICAgICAgICog
cmVsYXRpdmUgdG8gdGhlIHRpbWUgb2YgdGhlIFBvc2VVcGRhdGVkKCkgY2FsbCBtYWRlIGJ5IHRo
ZSBkcml2ZXIuCisgICAgICAgICovCisgICAgICAgZG91YmxlIHBvc2VUaW1lT2Zmc2V0OworCisg
ICAgICAgLyogR2VuZXJhbGx5LCB0aGUgcG9zZSBtYWludGFpbmVkIGJ5IGEgZHJpdmVyCisgICAg
ICAgICogaXMgaW4gYW4gaW5lcnRpYWwgY29vcmRpbmF0ZSBzeXN0ZW0gZGlmZmVyZW50CisgICAg
ICAgICogZnJvbSB0aGUgd29ybGQgc3lzdGVtIG9mIHgrIHJpZ2h0LCB5KyB1cCwgeisgYmFjay4K
KyAgICAgICAgKiBBbHNvLCB0aGUgZHJpdmVyIGlzIG5vdCB1c3VhbGx5IHRyYWNraW5nIHRoZSAi
aGVhZCIgcG9zaXRpb24sCisgICAgICAgICogYnV0IGluc3RlYWQgYW4gaW50ZXJuYWwgSU1VIG9y
IGFub3RoZXIgcmVmZXJlbmNlIHBvaW50IGluIHRoZSBITUQuCisgICAgICAgICogVGhlIGZvbGxv
d2luZyB0d28gdHJhbnNmb3JtcyB0cmFuc2Zvcm0gcG9zaXRpb25zIGFuZCBvcmllbnRhdGlvbnMK
KyAgICAgICAgKiB0byBhcHAgd29ybGQgc3BhY2UgZnJvbSBkcml2ZXIgd29ybGQgc3BhY2UsCisg
ICAgICAgICogYW5kIHRvIEhNRCBoZWFkIHNwYWNlIGZyb20gZHJpdmVyIGxvY2FsIGJvZHkgc3Bh
Y2UuIAorICAgICAgICAqCisgICAgICAgICogV2UgbWFpbnRhaW4gdGhlIGRyaXZlciBwb3NlIHN0
YXRlIGluIGl0cyBpbnRlcm5hbCBjb29yZGluYXRlIHN5c3RlbSwKKyAgICAgICAgKiBzbyB3ZSBj
YW4gZG8gdGhlIHBvc2UgcHJlZGljdGlvbiBtYXRoIHdpdGhvdXQgaGF2aW5nIHRvCisgICAgICAg
ICogdXNlIGFuZ3VsYXIgYWNjZWxlcmF0aW9uLiAgQSBkcml2ZXIncyBhbmd1bGFyIGFjY2VsZXJh
dGlvbiBpcyBnZW5lcmFsbHkgbm90IG1lYXN1cmVkLAorICAgICAgICAqIGFuZCBpcyBpbnN0ZWFk
IGNhbGN1bGF0ZWQgZnJvbSBzdWNjZXNzaXZlIHNhbXBsZXMgb2YgYW5ndWxhciB2ZWxvY2l0eS4K
KyAgICAgICAgKiBUaGlzIGxlYWRzIHRvIGEgbm9pc3kgYW5ndWxhciBhY2NlbGVyYXRpb24gdmFs
dWVzLCB3aGljaCBhcmUgYWxzbworICAgICAgICAqIGxhZ2dlZCBkdWUgdG8gdGhlIGZpbHRlcmlu
ZyByZXF1aXJlZCB0byByZWR1Y2Ugbm9pc2UgdG8gYW4gYWNjZXB0YWJsZSBsZXZlbC4KKyAgICAg
ICAgKi8KKyAgICAgICB2cjo6SG1kUXVhdGVybmlvbl90IHFXb3JsZEZyb21Ecml2ZXJSb3RhdGlv
bjsKKyAgICAgICBkb3VibGUgdmVjV29ybGRGcm9tRHJpdmVyVHJhbnNsYXRpb25bIDMgXTsKKwor
ICAgICAgIHZyOjpIbWRRdWF0ZXJuaW9uX3QgcURyaXZlckZyb21IZWFkUm90YXRpb247CisgICAg
ICAgZG91YmxlIHZlY0RyaXZlckZyb21IZWFkVHJhbnNsYXRpb25bIDMgXTsKKworICAgICAgIC8q
IFN0YXRlIG9mIGRyaXZlciBwb3NlLCBpbiBtZXRlcnMgYW5kIHJhZGlhbnMuICovCisgICAgICAg
LyogUG9zaXRpb24gb2YgdGhlIGRyaXZlciB0cmFja2luZyByZWZlcmVuY2UgaW4gZHJpdmVyIHdv
cmxkIHNwYWNlCisgICAgICAgKiArWzBdICh4KSBpcyByaWdodAorICAgICAgICogK1sxXSAoeSkg
aXMgdXAKKyAgICAgICAqIC1bMl0gKHopIGlzIGZvcndhcmQKKyAgICAgICAqLworICAgICAgIGRv
dWJsZSB2ZWNQb3NpdGlvblsgMyBdOworCisgICAgICAgLyogVmVsb2NpdHkgb2YgdGhlIHBvc2Ug
aW4gbWV0ZXJzL3NlY29uZCAqLworICAgICAgIGRvdWJsZSB2ZWNWZWxvY2l0eVsgMyBdOworCisg
ICAgICAgLyogQWNjZWxlcmF0aW9uIG9mIHRoZSBwb3NlIGluIG1ldGVycy9zZWNvbmQgKi8KKyAg
ICAgICBkb3VibGUgdmVjQWNjZWxlcmF0aW9uWyAzIF07CisKKyAgICAgICAvKiBPcmllbnRhdGlv
biBvZiB0aGUgdHJhY2tlciwgcmVwcmVzZW50ZWQgYXMgYSBxdWF0ZXJuaW9uICovCisgICAgICAg
dnI6OkhtZFF1YXRlcm5pb25fdCBxUm90YXRpb247CisKKyAgICAgICAvKiBBbmd1bGFyIHZlbG9j
aXR5IG9mIHRoZSBwb3NlIGluIGF4aXMtYW5nbGUgCisgICAgICAgKiByZXByZXNlbnRhdGlvbi4g
VGhlIGRpcmVjdGlvbiBpcyB0aGUgYW5nbGUgb2YKKyAgICAgICAqIHJvdGF0aW9uIGFuZCB0aGUg
bWFnbml0dWRlIGlzIHRoZSBhbmdsZSBhcm91bmQKKyAgICAgICAqIHRoYXQgYXhpcyBpbiByYWRp
YW5zL3NlY29uZC4gKi8KKyAgICAgICBkb3VibGUgdmVjQW5ndWxhclZlbG9jaXR5WyAzIF07CisK
KyAgICAgICAvKiBBbmd1bGFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgcG9zZSBpbiBheGlzLWFuZ2xl
IAorICAgICAgICogcmVwcmVzZW50YXRpb24uIFRoZSBkaXJlY3Rpb24gaXMgdGhlIGFuZ2xlIG9m
CisgICAgICAgKiByb3RhdGlvbiBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0aGUgYW5nbGUgYXJvdW5k
CisgICAgICAgKiB0aGF0IGF4aXMgaW4gcmFkaWFucy9zZWNvbmReMi4gKi8KKyAgICAgICBkb3Vi
bGUgdmVjQW5ndWxhckFjY2VsZXJhdGlvblsgMyBdOworCisgICAgICAgRVRyYWNraW5nUmVzdWx0
IHJlc3VsdDsKKworICAgICAgIGJvb2wgcG9zZUlzVmFsaWQ7CisgICAgICAgYm9vbCB3aWxsRHJp
ZnRJbllhdzsKKyAgICAgICBib29sIHNob3VsZEFwcGx5SGVhZE1vZGVsOworICAgICAgIGJvb2wg
ZGV2aWNlSXNDb25uZWN0ZWQ7Cit9OworCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJlcHJlc2VudHMgYSBzaW5nbGUgdHJhY2tlZCBkZXZp
Y2UgaW4gYSBkcml2ZXIKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K2NsYXNzIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyCit7CitwdWJsaWM6CisKKyAgICAgICAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAvLyBNYW5hZ2Vt
ZW50IE1ldGhvZHMKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAvKiogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGFuIEhNRCBpcyByZXR1cm5lZCB0
byB0aGUgYXBwbGljYXRpb24uIEl0IHdpbGwgYWx3YXlzIGJlCisgICAgICAgKiBjYWxsZWQgYmVm
b3JlIGFueSBkaXNwbGF5IG9yIHRyYWNraW5nIG1ldGhvZHMuIE1lbW9yeSBhbmQgcHJvY2Vzc29y
IHVzZSBieSB0aGUKKyAgICAgICAqIElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyIG9iamVjdCBz
aG91bGQgYmUga2VwdCB0byBhIG1pbmltdW0gdW50aWwgaXQgaXMgYWN0aXZhdGVkLgorICAgICAg
ICogVGhlIHBvc2UgbGlzdGVuZXIgaXMgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCB1bnRpbCBEZWFj
dGl2YXRlIGlzIGNhbGxlZCwgYnV0CisgICAgICAgKiBzaG91bGQgbm90IGJlIHVzZWQgYWZ0ZXIg
dGhhdCBwb2ludC4gKi8KKyAgICAgICB2aXJ0dWFsIEVWUkluaXRFcnJvciBBY3RpdmF0ZSggdWlu
dDMyX3QgdW5PYmplY3RJZCApID0gMDsKKworICAgICAgIC8qKiBUaGlzIGlzIGNhbGxlZCB3aGVu
IFRoZSBWUiBzeXN0ZW0gaXMgc3dpdGNoaW5nIGZyb20gdGhpcyBIbWQgYmVpbmcgdGhlIGFjdGl2
ZSBkaXNwbGF5CisgICAgICAgKiB0byBhbm90aGVyIEhtZCBiZWluZyB0aGUgYWN0aXZlIGRpc3Bs
YXkuIFRoZSBkcml2ZXIgc2hvdWxkIGNsZWFuIHdoYXRldmVyIG1lbW9yeQorICAgICAgICogYW5k
IHRocmVhZCB1c2UgaXQgY2FuIHdoZW4gaXQgaXMgZGVhY3RpdmF0ZWQgKi8KKyAgICAgICB2aXJ0
dWFsIHZvaWQgRGVhY3RpdmF0ZSgpID0gMDsKKworICAgICAgIC8qKiBIYW5kbGVzIGEgcmVxdWVz
dCBmcm9tIHRoZSBzeXN0ZW0gdG8gcHV0IHRoaXMgZGV2aWNlIGludG8gc3RhbmRieSBtb2RlLiBX
aGF0IHRoYXQgbWVhbnMgaXMgZGVmaW5lZCBwZXItZGV2aWNlLiAqLworICAgICAgIHZpcnR1YWwg
dm9pZCBFbnRlclN0YW5kYnkoKSA9IDA7CisKKyAgICAgICAvKiogUmVxdWVzdHMgYSBjb21wb25l
bnQgaW50ZXJmYWNlIG9mIHRoZSBkcml2ZXIgZm9yIGRldmljZS1zcGVjaWZpYyBmdW5jdGlvbmFs
aXR5LiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gTlVMTAorICAgICAgICogaWYgdGhlIHJlcXVl
c3RlZCBpbnRlcmZhY2Ugb3IgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLiAqLworICAgICAgIHZp
cnR1YWwgdm9pZCAqR2V0Q29tcG9uZW50KCBjb25zdCBjaGFyICpwY2hDb21wb25lbnROYW1lQW5k
VmVyc2lvbiApID0gMDsKKworICAgICAgIC8qKiBBIFZSIENsaWVudCBoYXMgbWFkZSB0aGlzIGRl
YnVnIHJlcXVlc3Qgb2YgdGhlIGRyaXZlci4gVGhlIHNldCBvZiB2YWxpZCByZXF1ZXN0cyBpcyBl
bnRpcmVseQorICAgICAgICogdXAgdG8gdGhlIGRyaXZlciBhbmQgdGhlIGNsaWVudCB0byBmaWd1
cmUgb3V0LCBhcyBpcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZS4gUmVzcG9uc2VzIHRoYXQK
KyAgICAgICAqIGV4Y2VlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBidWZmZXIgc2hvdWxk
IGJlIHRydW5jYXRlZCBhbmQgbnVsbCB0ZXJtaW5hdGVkICovCisgICAgICAgdmlydHVhbCB2b2lk
IERlYnVnUmVxdWVzdCggY29uc3QgY2hhciAqcGNoUmVxdWVzdCwgY2hhciAqcGNoUmVzcG9uc2VC
dWZmZXIsIHVpbnQzMl90IHVuUmVzcG9uc2VCdWZmZXJTaXplICkgPSAwOworCisgICAgICAgLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgLy8gVHJhY2tpbmcg
TWV0aG9kcworICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgICAgIHZpcnR1YWwgRHJpdmVyUG9zZV90IEdldFBvc2UoKSA9IDA7Cit9OworCisKKworc3Rh
dGljIGNvbnN0IGNoYXIgKklUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyX1ZlcnNpb24gPSAiSVRy
YWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXJfMDA1IjsKKworfQorLy8gaXZyZGlzcGxheWNvbXBvbmVu
dC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoZSBkaXNwbGF5IGNvbXBvbmVu
dCBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQorICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFzcyBJVlJEaXNwbGF5Q29tcG9uZW50Cisg
ICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gRGlzcGxheSBNZXRob2Rz
CisgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgICAgICAgICAgICAgIC8qKiBTaXplIGFuZCBwb3NpdGlvbiB0aGF0IHRoZSB3aW5kb3cgbmVl
ZHMgdG8gYmUgb24gdGhlIFZSIGRpc3BsYXkuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9p
ZCBHZXRXaW5kb3dCb3VuZHMoIGludDMyX3QgKnBuWCwgaW50MzJfdCAqcG5ZLCB1aW50MzJfdCAq
cG5XaWR0aCwgdWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgaXMgZXh0ZW5kaW5nIHRoZSBkZXNrdG9wLiAqLwor
ICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgSXNEaXNwbGF5T25EZXNrdG9wKCApID0gMDsKKwor
ICAgICAgICAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkaXNwbGF5IGlzIHJlYWwgYW5k
IG5vdCBhIGZpY3Rpb25hbCBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wg
SXNEaXNwbGF5UmVhbERpc3BsYXkoICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBTdWdnZXN0
ZWQgc2l6ZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZW5kZXIgdGFyZ2V0IHRoYXQgdGhlIGRpc3Rv
cnRpb24gcHVsbHMgZnJvbS4gKi8KKyAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIEdldFJlY29t
bWVuZGVkUmVuZGVyVGFyZ2V0U2l6ZSggdWludDMyX3QgKnBuV2lkdGgsIHVpbnQzMl90ICpwbkhl
aWdodCApID0gMDsKKworICAgICAgICAgICAgICAvKiogR2V0cyB0aGUgdmlld3BvcnQgaW4gdGhl
IGZyYW1lIGJ1ZmZlciB0byBkcmF3IHRoZSBvdXRwdXQgb2YgdGhlIGRpc3RvcnRpb24gaW50byAq
LworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0RXllT3V0cHV0Vmlld3BvcnQoIEVWUkV5
ZSBlRXllLCB1aW50MzJfdCAqcG5YLCB1aW50MzJfdCAqcG5ZLCB1aW50MzJfdCAqcG5XaWR0aCwg
dWludDMyX3QgKnBuSGVpZ2h0ICkgPSAwOworCisgICAgICAgICAgICAgIC8qKiBUaGUgY29tcG9u
ZW50cyBuZWNlc3NhcnkgdG8gYnVpbGQgeW91ciBvd24gcHJvamVjdGlvbiBtYXRyaXggaW4gY2Fz
ZSB5b3VyCisgICAgICAgICAgICAgICogYXBwbGljYXRpb24gaXMgZG9pbmcgc29tZXRoaW5nIGZh
bmN5IGxpa2UgaW5maW5pdGUgWiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0UHJv
amVjdGlvblJhdyggRVZSRXllIGVFeWUsIGZsb2F0ICpwZkxlZnQsIGZsb2F0ICpwZlJpZ2h0LCBm
bG9hdCAqcGZUb3AsIGZsb2F0ICpwZkJvdHRvbSApID0gMDsKKworICAgICAgICAgICAgICAvKiog
UmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBkaXN0b3J0aW9uIGZ1bmN0aW9uIGZvciB0aGUgc3Bl
Y2lmaWVkIGV5ZSBhbmQgaW5wdXQgVVZzLiBVVnMgZ28gZnJvbSAwLDAgaW4KKyAgICAgICAgICAg
ICAgKiB0aGUgdXBwZXIgbGVmdCBvZiB0aGF0IGV5ZSdzIHZpZXdwb3J0IGFuZCAxLDEgaW4gdGhl
IGxvd2VyIHJpZ2h0IG9mIHRoYXQgZXllJ3Mgdmlld3BvcnQuICovCisgICAgICAgICAgICAgIHZp
cnR1YWwgRGlzdG9ydGlvbkNvb3JkaW5hdGVzX3QgQ29tcHV0ZURpc3RvcnRpb24oIEVWUkV5ZSBl
RXllLCBmbG9hdCBmVSwgZmxvYXQgZlYgKSA9IDA7CisKKyAgICAgICB9OworCisgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIgKklWUkRpc3BsYXlDb21wb25lbnRfVmVyc2lvbiA9ICJJVlJEaXNwbGF5
Q29tcG9uZW50XzAwMiI7CisKK30KKworLy8gaXZyZHJpdmVyZGlyZWN0bW9kZWNvbXBvbmVudC5o
CituYW1lc3BhY2UgdnIKK3sKKworCisgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1cnBvc2U6IFRoaXMgY29tcG9uZW50IGlzIHVzZWQg
Zm9yIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgZGlyZWN0IG1vZGUgZW50aXJlbHkgb24gdGhlaXIg
b3duCisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICB3aXRob3V0IGFsbG93aW5nIHRoZSBW
UiBDb21wb3NpdG9yIHRvIG93biB0aGUgd2luZG93L2RldmljZS4gQ2hhbmNlcyBhcmUgeW91IGRv
bid0CisgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGltcGxlbWVudCB0aGlz
IGNvbXBvbmVudCBpbiB5b3VyIGRyaXZlci4KKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgY2xhc3MgSVZSRHJpdmVyRGlyZWN0TW9kZUNvbXBv
bmVudAorICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgICAgLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgLy8gRGlyZWN0IG1v
ZGUgbWV0aG9kcworICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBTcGVjaWZpYyB0byBPY3VsdXMgY29tcG9zaXRv
ciBzdXBwb3J0LCB0ZXh0dXJlcyBzdXBwbGllZCBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcgdGhpcyBt
ZXRob2QuICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBDcmVhdGVTd2FwVGV4dHVyZVNl
dCggdWludDMyX3QgdW5QaWQsIHVpbnQzMl90IHVuRm9ybWF0LCB1aW50MzJfdCB1bldpZHRoLCB1
aW50MzJfdCB1bkhlaWdodCwgdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCggKnBTaGFyZWRUZXh0
dXJlSGFuZGxlcyApWyAzIF0gKSB7fQorCisgICAgICAgICAgICAgIC8qKiBVc2VkIHRvIHRleHR1
cmVzIGNyZWF0ZWQgdXNpbmcgQ3JlYXRlU3dhcFRleHR1cmVTZXQuICBPbmx5IG9uZSBvZiB0aGUg
c2V0J3MgaGFuZGxlcyBuZWVkcyB0byBiZSB1c2VkIHRvIGRlc3Ryb3kgdGhlIGVudGlyZSBzZXQu
ICovCisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBEZXN0cm95U3dhcFRleHR1cmVTZXQoIHZy
OjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZSApIHt9CisKKyAgICAg
ICAgICAgICAgLyoqIFVzZWQgdG8gcHVyZ2UgYWxsIHRleHR1cmUgc2V0cyBmb3IgYSBnaXZlbiBw
cm9jZXNzLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgRGVzdHJveUFsbFN3YXBUZXh0
dXJlU2V0cyggdWludDMyX3QgdW5QaWQgKSB7fQorCisgICAgICAgICAgICAgIC8qKiBBZnRlciBQ
cmVzZW50IHJldHVybnMsIGNhbGxzIHRoaXMgdG8gZ2V0IHRoZSBuZXh0IGluZGV4IHRvIHVzZSBm
b3IgcmVuZGVyaW5nLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgR2V0TmV4dFN3YXBU
ZXh0dXJlU2V0SW5kZXgoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhh
bmRsZXNbIDIgXSwgdWludDMyX3QoICpwSW5kaWNlcyApWyAyIF0gKSB7fQorCisgICAgICAgICAg
ICAgIC8qKiBDYWxsIG9uY2UgcGVyIGxheWVyIHRvIGRyYXcgZm9yIHRoaXMgZnJhbWUuICBPbmUg
c2hhcmVkIHRleHR1cmUgaGFuZGxlIHBlciBleWUuICBUZXh0dXJlcyBtdXN0IGJlIGNyZWF0ZWQK
KyAgICAgICAgICAgICAgKiB1c2luZyBDcmVhdGVTd2FwVGV4dHVyZVNldCBhbmQgc2hvdWxkIGJl
IGFsdGVybmF0ZWQgcGVyIGZyYW1lLiAgQ2FsbCBQcmVzZW50IG9uY2UgYWxsIGxheWVycyBoYXZl
IGJlZW4gc3VibWl0dGVkLiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgU3VibWl0TGF5
ZXIoIHZyOjpTaGFyZWRUZXh0dXJlSGFuZGxlX3Qgc2hhcmVkVGV4dHVyZUhhbmRsZXNbIDIgXSwg
Y29uc3QgdnI6OlZSVGV4dHVyZUJvdW5kc190KCAmYm91bmRzIClbIDIgXSwgY29uc3QgdnI6Okht
ZE1hdHJpeDM0X3QgKnBQb3NlICkge30KKworICAgICAgICAgICAgICAvKiogU3VibWl0cyBxdWV1
ZWQgbGF5ZXJzIGZvciBkaXNwbGF5LiAqLworICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgUHJl
c2VudCggdnI6OlNoYXJlZFRleHR1cmVIYW5kbGVfdCBzeW5jVGV4dHVyZSApIHt9CisKKyAgICAg
ICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkRyaXZlckRpcmVjdE1vZGVDb21w
b25lbnRfVmVyc2lvbiA9ICJJVlJEcml2ZXJEaXJlY3RNb2RlQ29tcG9uZW50XzAwMiI7CisKK30K
KworLy8gaXZyY29udHJvbGxlcmNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKworCisgICAg
ICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIC8vIFB1
cnBvc2U6IENvbnRyb2xsZXIgYWNjZXNzIG9uIGEgc2luZ2xlIHRyYWNrZWQgZGV2aWNlLgorICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFz
cyBJVlJDb250cm9sbGVyQ29tcG9uZW50CisgICAgICAgeworICAgICAgIHB1YmxpYzoKKworICAg
ICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAgICAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzCisgICAgICAgICAgICAgIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAgIC8qKiBHZXRzIHRo
ZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udHJvbGxlci4gKi8KKyAgICAgICAgICAgICAgdmlydHVh
bCBWUkNvbnRyb2xsZXJTdGF0ZV90IEdldENvbnRyb2xsZXJTdGF0ZSggKSA9IDA7CisKKyAgICAg
ICAgICAgICAgLyoqIFJldHVybnMgYSB1aW50NjQgcHJvcGVydHkuIElmIHRoZSBwcm9wZXJ0eSBp
cyBub3QgYXZhaWxhYmxlIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4gKi8KKyAgICAgICAg
ICAgICAgdmlydHVhbCBib29sIFRyaWdnZXJIYXB0aWNQdWxzZSggdWludDMyX3QgdW5BeGlzSWQs
IHVpbnQxNl90IHVzUHVsc2VEdXJhdGlvbk1pY3Jvc2Vjb25kcyApID0gMDsKKworICAgICAgIH07
CisKKworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNvbnRyb2xsZXJDb21wb25lbnRf
VmVyc2lvbiA9ICJJVlJDb250cm9sbGVyQ29tcG9uZW50XzAwMSI7CisKK30KKy8vIGl2cmNhbWVy
YWNvbXBvbmVudC5oCituYW1lc3BhY2UgdnIKK3sKKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIGNsYXNzIElDYW1lcmFW
aWRlb1NpbmtDYWxsYmFjaworICAgICAgIHsKKyAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAg
IHZpcnR1YWwgdm9pZCBPbkNhbWVyYVZpZGVvU2lua0NhbGxiYWNrKCkgPSAwOworICAgICAgIH07
CisKKyAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgLy8gUHVycG9zZTogVGhlIGNhbWVyYSBvbiBhIHNpbmdsZSB0cmFja2VkIGRldmljZQorICAg
ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBjbGFz
cyBJVlJDYW1lcmFDb21wb25lbnQKKyAgICAgICB7CisgICAgICAgcHVibGljOgorICAgICAgICAg
ICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg
ICAgLy8gQ2FtZXJhIE1ldGhvZHMKKyAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBHZXRDYW1lcmFG
cmFtZURpbWVuc2lvbnMoIHZyOjpFQ2FtZXJhVmlkZW9TdHJlYW1Gb3JtYXQgblZpZGVvU3RyZWFt
Rm9ybWF0LCB1aW50MzJfdCAqcFdpZHRoLCB1aW50MzJfdCAqcEhlaWdodCApID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYUZyYW1lQnVmZmVyaW5nUmVxdWlyZW1lbnRz
KCBpbnQgKnBEZWZhdWx0RnJhbWVRdWV1ZVNpemUsIHVpbnQzMl90ICpwRnJhbWVCdWZmZXJEYXRh
U2l6ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENhbWVyYUZyYW1lQnVm
ZmVyaW5nKCBpbnQgbkZyYW1lQnVmZmVyQ291bnQsIHZvaWQgKipwcEZyYW1lQnVmZmVycywgdWlu
dDMyX3QgbkZyYW1lQnVmZmVyRGF0YVNpemUgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwg
Ym9vbCBTZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCggdnI6OkVDYW1lcmFWaWRlb1N0cmVhbUZv
cm1hdCBuVmlkZW9TdHJlYW1Gb3JtYXQgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgdnI6
OkVDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCBHZXRDYW1lcmFWaWRlb1N0cmVhbUZvcm1hdCgpID0g
MDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFN0YXJ0VmlkZW9TdHJlYW0oKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBTdG9wVmlkZW9TdHJlYW0oKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBJc1ZpZGVvU3RyZWFtQWN0aXZlKCBib29sICpwYlBhdXNlZCwg
ZmxvYXQgKnBmbEVsYXBzZWRUaW1lICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGNvbnN0
IHZyOjpDYW1lcmFWaWRlb1N0cmVhbUZyYW1lX3QgKkdldFZpZGVvU3RyZWFtRnJhbWUoKSA9IDA7
CisgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBSZWxlYXNlVmlkZW9TdHJlYW1GcmFtZSggY29u
c3QgdnI6OkNhbWVyYVZpZGVvU3RyZWFtRnJhbWVfdCAqcEZyYW1lSW1hZ2UgKSA9IDA7CisgICAg
ICAgICAgICAgIHZpcnR1YWwgYm9vbCBTZXRBdXRvRXhwb3N1cmUoIGJvb2wgYkVuYWJsZSApID0g
MDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFBhdXNlVmlkZW9TdHJlYW0oKSA9IDA7Cisg
ICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBSZXN1bWVWaWRlb1N0cmVhbSgpID0gMDsKKyAgICAg
ICAgICAgICAgdmlydHVhbCBib29sIEdldENhbWVyYURpc3RvcnRpb24oIGZsb2F0IGZsSW5wdXRV
LCBmbG9hdCBmbElucHV0ViwgZmxvYXQgKnBmbE91dHB1dFUsIGZsb2F0ICpwZmxPdXRwdXRWICkg
PSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgR2V0Q2FtZXJhUHJvamVjdGlvbiggdnI6
OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZyYW1lVHlwZSwgZmxvYXQgZmxaTmVhciwgZmxv
YXQgZmxaRmFyLCB2cjo6SG1kTWF0cml4NDRfdCAqcFByb2plY3Rpb24gKSA9IDA7CisgICAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBTZXRGcmFtZVJhdGUoIGludCBuSVNQRnJhbWVSYXRlLCBpbnQg
blNlbnNvckZyYW1lUmF0ZSApID0gMDsKKyAgICAgICAgICAgICAgdmlydHVhbCBib29sIFNldENh
bWVyYVZpZGVvU2lua0NhbGxiYWNrKCB2cjo6SUNhbWVyYVZpZGVvU2lua0NhbGxiYWNrICpwQ2Ft
ZXJhVmlkZW9TaW5rQ2FsbGJhY2sgKSA9IDA7CisgICAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBH
ZXRDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSggdnI6OkVDYW1lcmFDb21wYXRpYmlsaXR5TW9kZSAq
cENhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgU2V0Q2FtZXJhQ29tcGF0aWJpbGl0eU1vZGUoIHZyOjpFQ2FtZXJhQ29tcGF0aWJpbGl0eU1v
ZGUgbkNhbWVyYUNvbXBhdGliaWxpdHlNb2RlICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFs
IGJvb2wgR2V0Q2FtZXJhRnJhbWVCb3VuZHMoIHZyOjpFVlJUcmFja2VkQ2FtZXJhRnJhbWVUeXBl
IGVGcmFtZVR5cGUsIHVpbnQzMl90ICpwTGVmdCwgdWludDMyX3QgKnBUb3AsIHVpbnQzMl90ICpw
V2lkdGgsIHVpbnQzMl90ICpwSGVpZ2h0ICkgPSAwOworICAgICAgICAgICAgICB2aXJ0dWFsIGJv
b2wgR2V0Q2FtZXJhSW50cmluc2ljcyggdnI6OkVWUlRyYWNrZWRDYW1lcmFGcmFtZVR5cGUgZUZy
YW1lVHlwZSwgSG1kVmVjdG9yMl90ICpwRm9jYWxMZW5ndGgsIEhtZFZlY3RvcjJfdCAqcENlbnRl
ciApID0gMDsKKyAgICAgICB9OworCisgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKklWUkNhbWVy
YUNvbXBvbmVudF9WZXJzaW9uID0gIklWUkNhbWVyYUNvbXBvbmVudF8wMDIiOworfQorLy8gaXRy
YWNrZWRkZXZpY2Vkcml2ZXJwcm92aWRlci5oCituYW1lc3BhY2UgdnIKK3sKKworY2xhc3MgSVRy
YWNrZWREZXZpY2VTZXJ2ZXJEcml2ZXI7CitzdHJ1Y3QgVHJhY2tlZERldmljZURyaXZlckluZm9f
dDsKK3N0cnVjdCBEcml2ZXJQb3NlX3Q7Cit0eXBlZGVmIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgRHJpdmVySGFuZGxlX3Q7CisKKy8qKiBUaGlzIGludGVyZmFjZSBpcyBwcm92aWRlZCBieSB2
cnNlcnZlciB0byBhbGxvdyB0aGUgZHJpdmVyIHRvIG5vdGlmeSAKKyogdGhlIHN5c3RlbSB3aGVu
IHNvbWV0aGluZyBjaGFuZ2VzIGFib3V0IGEgZGV2aWNlLiBUaGVzZSBjaGFuZ2VzIG11c3QKKyog
bm90IGNoYW5nZSB0aGUgc2VyaWFsIG51bWJlciBvciBjbGFzcyBvZiB0aGUgZGV2aWNlIGJlY2F1
c2UgdGhvc2UgdmFsdWVzCisqIGFyZSBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdpdGggdGhlIGRl
dmljZSdzIGluZGV4LiAqLworY2xhc3MgSVZSRHJpdmVyQ29udGV4dAoreworcHVibGljOgorICAg
ICAgIC8qKiBSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlLiBJZiB0aGUgaW50ZXJmYWNl
IHdhcyBub3QgYXZhaWxhYmxlIGl0IHdpbGwgcmV0dXJuIE5VTEwgYW5kIGZpbGwKKyAgICAgICAq
IG91dCB0aGUgZXJyb3IuICovCisgICAgICAgdmlydHVhbCB2b2lkICpHZXRHZW5lcmljSW50ZXJm
YWNlKCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJy
b3IgPSBudWxscHRyICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdGhlIHByb3BlcnR5IGNv
bnRhaW5lciBoYW5kbGUgZm9yIHRoaXMgZHJpdmVyICovCisgICAgICAgdmlydHVhbCBEcml2ZXJI
YW5kbGVfdCBHZXREcml2ZXJIYW5kbGUoKSA9IDA7Cit9OworCisKKy8qKiBUaGlzIGludGVyZmFj
ZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJlIGxvYWRlZCBp
biB2cnNlcnZlci5leGUgKi8KK2NsYXNzIElTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXIKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlci4gVGhpcyB3aWxsIGJl
IGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIG1ldGhvZHMgYXJlIGNhbGxlZC4KKyAgICAgICAqIElm
IEluaXQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFZSSW5pdEVycm9yX05vbmUgdGhlIGRy
aXZlciBETEwgd2lsbCBiZSB1bmxvYWRlZC4KKyAgICAgICAqCisgICAgICAgKiBwRHJpdmVySG9z
dCB3aWxsIG5ldmVyIGJlIE5VTEwsIGFuZCB3aWxsIGFsd2F5cyBiZSBhIHBvaW50ZXIgdG8gYSBJ
U2VydmVyRHJpdmVySG9zdCBpbnRlcmZhY2UKKyAgICAgICAqCisgICAgICAgKiBwY2hVc2VyRHJp
dmVyQ29uZmlnRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGRpcmVjdG9yeSB3aGVyZSB0
aGUgZHJpdmVyIHNob3VsZCBzdG9yZSB1c2VyCisgICAgICAgKiAgICAgICBjb25maWcgZmlsZXMu
CisgICAgICAgKiBwY2hEcml2ZXJJbnN0YWxsRGlyIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhl
IHJvb3QgZGlyZWN0b3J5IGZvciB0aGUgZHJpdmVyLgorICAgICAgICovCisgICAgICAgdmlydHVh
bCBFVlJJbml0RXJyb3IgSW5pdCggSVZSRHJpdmVyQ29udGV4dCAqcERyaXZlckNvbnRleHQgKSA9
IDA7CisKKyAgICAgICAvKiogY2xlYW5zIHVwIHRoZSBkcml2ZXIgcmlnaHQgYmVmb3JlIGl0IGlz
IHVubG9hZGVkICovCisgICAgICAgdmlydHVhbCB2b2lkIENsZWFudXAoKSA9IDA7CisKKyAgICAg
ICAvKiogUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgSVRyYWNrZWREZXZpY2VTZXJ2ZXJEcml2
ZXIgaW50ZXJmYWNlIHVzZWQgYnkgdGhpcyBkcml2ZXIgKi8KKyAgICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIgKiBjb25zdCAqR2V0SW50ZXJmYWNlVmVyc2lvbnMoKSA9IDA7CisKKyAgICAgICAvKiog
QWxsb3dzIHRoZSBkcml2ZXIgZG8gdG8gc29tZSB3b3JrIGluIHRoZSBtYWluIGxvb3Agb2YgdGhl
IHNlcnZlci4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgUnVuRnJhbWUoKSA9IDA7CisKKworICAg
ICAgIC8vIC0tLS0tLS0tLS0tLSAgUG93ZXIgU3RhdGUgRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIC8vCisKKyAgICAgICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkcml2ZXIgd2Fu
dHMgdG8gYmxvY2sgU3RhbmRieSBtb2RlLiAqLworICAgICAgIHZpcnR1YWwgYm9vbCBTaG91bGRC
bG9ja1N0YW5kYnlNb2RlKCkgPSAwOworCisgICAgICAgLyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0
ZW0gaXMgZW50ZXJpbmcgU3RhbmRieSBtb2RlLiBUaGUgZHJpdmVyIHNob3VsZCBzd2l0Y2ggaXRz
ZWxmIGludG8gd2hhdGV2ZXIgc29ydCBvZiBsb3ctcG93ZXIKKyAgICAgICAqIHN0YXRlIGl0IGhh
cy4gKi8KKyAgICAgICB2aXJ0dWFsIHZvaWQgRW50ZXJTdGFuZGJ5KCkgPSAwOworCisgICAgICAg
LyoqIENhbGxlZCB3aGVuIHRoZSBzeXN0ZW0gaXMgbGVhdmluZyBTdGFuZGJ5IG1vZGUuIFRoZSBk
cml2ZXIgc2hvdWxkIHN3aXRjaCBpdHNlbGYgYmFjayB0bworICAgICAgIGZ1bGwgb3BlcmF0aW9u
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBMZWF2ZVN0YW5kYnkoKSA9IDA7CisKK307CisKKwor
c3RhdGljIGNvbnN0IGNoYXIgKklTZXJ2ZXJUcmFja2VkRGV2aWNlUHJvdmlkZXJfVmVyc2lvbiA9
ICJJU2VydmVyVHJhY2tlZERldmljZVByb3ZpZGVyXzAwNCI7CisKKworCisKKy8qKiBUaGlzIGlu
dGVyZmFjZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBJdCB3aWxsIGJlIGxv
YWRlZCBpbiB2cmNsaWVudC5kbGwgKi8KK2NsYXNzIElWUldhdGNoZG9nUHJvdmlkZXIKK3sKK3B1
YmxpYzoKKyAgICAgICAvKiogaW5pdGlhbGl6ZXMgdGhlIGRyaXZlciBpbiB3YXRjaGRvZyBtb2Rl
LiAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIEluaXQoIElWUkRyaXZlckNvbnRleHQg
KnBEcml2ZXJDb250ZXh0ICkgPSAwOworCisgICAgICAgLyoqIGNsZWFucyB1cCB0aGUgZHJpdmVy
IHJpZ2h0IGJlZm9yZSBpdCBpcyB1bmxvYWRlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBDbGVh
bnVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9nUHJvdmlkZXJf
VmVyc2lvbiA9ICJJVlJXYXRjaGRvZ1Byb3ZpZGVyXzAwMSI7CisKK30KKy8vIGl2cnByb3BlcnRp
ZXMuaAorI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHZyCit7CisKKyAgICAgICBlbnVt
IEVQcm9wZXJ0eVdyaXRlVHlwZQorICAgICAgIHsKKyAgICAgICAgICAgICAgUHJvcGVydHlXcml0
ZV9TZXQgPSAwLAorICAgICAgICAgICAgICBQcm9wZXJ0eVdyaXRlX0VyYXNlID0gMSwKKyAgICAg
ICAgICAgICAgUHJvcGVydHlXcml0ZV9TZXRFcnJvciA9IDIKKyAgICAgICB9OworCisgICAgICAg
c3RydWN0IFByb3BlcnR5V3JpdGVfdAorICAgICAgIHsKKyAgICAgICAgICAgICAgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wOworICAgICAgICAgICAgICBFUHJvcGVydHlXcml0ZVR5cGUgd3Jp
dGVUeXBlOworICAgICAgICAgICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZVNldEVycm9yOwor
ICAgICAgICAgICAgICB2b2lkICpwdkJ1ZmZlcjsKKyAgICAgICAgICAgICAgdWludDMyX3QgdW5C
dWZmZXJTaXplOworICAgICAgICAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAgICAg
ICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKKyAgICAgICB9OworCisgICAg
ICAgc3RydWN0IFByb3BlcnR5UmVhZF90CisgICAgICAgeworICAgICAgICAgICAgICBFVHJhY2tl
ZERldmljZVByb3BlcnR5IHByb3A7CisgICAgICAgICAgICAgIHZvaWQgKnB2QnVmZmVyOworICAg
ICAgICAgICAgICB1aW50MzJfdCB1bkJ1ZmZlclNpemU7CisgICAgICAgICAgICAgIFByb3BlcnR5
VHlwZVRhZ190IHVuVGFnOworICAgICAgICAgICAgICB1aW50MzJfdCB1blJlcXVpcmVkQnVmZmVy
U2l6ZTsKKyAgICAgICAgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJvcjsKKyAgICAg
ICB9OworCisKK2NsYXNzIElWUlByb3BlcnRpZXMKK3sKK3B1YmxpYzoKKworICAgICAgIC8qKiBS
ZWFkcyBhIHNldCBvZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlSZWFk
QmF0Y2hfdCBzdHJ1Y3QgZm9yIG1vcmUgaW5mb3JtYXRpb24uICovCisgICAgICAgdmlydHVhbCBF
VHJhY2tlZFByb3BlcnR5RXJyb3IgUmVhZFByb3BlcnR5QmF0Y2goIFByb3BlcnR5Q29udGFpbmVy
SGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIFByb3BlcnR5UmVhZF90ICpwQmF0Y2gsIHVpbnQz
Ml90IHVuQmF0Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIFdyaXRlcyBhIHNldCBv
ZiBwcm9wZXJ0aWVzIGF0b21pY2FsbHkuIFNlZSB0aGUgUHJvcGVydHlXcml0ZUJhdGNoX3Qgc3Ry
dWN0IGZvciBtb3JlIGluZm9ybWF0aW9uLiAqLworICAgICAgIHZpcnR1YWwgRVRyYWNrZWRQcm9w
ZXJ0eUVycm9yIFdyaXRlUHJvcGVydHlCYXRjaCggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1
bENvbnRhaW5lckhhbmRsZSwgUHJvcGVydHlXcml0ZV90ICpwQmF0Y2gsIHVpbnQzMl90IHVuQmF0
Y2hFbnRyeUNvdW50ICkgPSAwOworCisgICAgICAgLyoqIHJldHVybnMgYSBzdHJpbmcgdGhhdCBj
b3JyZXNwb25kcyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZXJyb3IuIFRoZSBzdHJpbmcg
d2lsbCBiZSB0aGUgbmFtZQorICAgICAgICogb2YgdGhlIGVycm9yIGVudW0gdmFsdWUgZm9yIGFs
bCB2YWxpZCBlcnJvciBjb2RlcyAqLworICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqR2V0UHJv
cEVycm9yTmFtZUZyb21FbnVtKCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3IgKSA9IDA7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIGNvbnRhaW5lciBoYW5kbGUgZ2l2ZW4gYSB0cmFja2VkIGRl
dmljZSBpbmRleCAqLworICAgICAgIHZpcnR1YWwgUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCBU
cmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lciggVHJhY2tlZERldmljZUluZGV4X3QgbkRl
dmljZSApID0gMDsKKworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBJVlJQcm9wZXJ0
aWVzX1ZlcnNpb24gPSAiSVZSUHJvcGVydGllc18wMDEiOworCitjbGFzcyBDVlJQcm9wZXJ0eUhl
bHBlcnMKK3sKK3B1YmxpYzoKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMoIElWUlByb3BlcnRp
ZXMgKiBwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcyggcFByb3BlcnRpZXMgKSB7fQorCisg
ICAgICAgLyoqIFJldHVybnMgYSBzY2FsZXIgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXgg
aXMgbm90IHZhbGlkIG9yIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0eXBlIGRvZXMgbm90IG1hdGNoLAor
ICAgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBmYWxzZS4gKi8KKyAgICAgICBib29s
IEdldEJvb2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhh
bmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3Ig
KnBFcnJvciA9IDBMICk7CisgICAgICAgZmxvYXQgR2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisgICAgICAgaW50
MzJfdCBHZXRJbnQzMlByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFp
bmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlF
cnJvciAqcEVycm9yID0gMEwgKTsKKyAgICAgICB1aW50NjRfdCBHZXRVaW50NjRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciA9IDBMICk7CisK
KyAgICAgICAvKiogUmV0dXJucyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gSWYgdGhlIGRldmlj
ZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBl
IHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lzZSBpdCByZXR1
cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3NhcnkgdG8gaG9sZCB0
aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxsLiBTdHJpbmdz
IHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0cmluZ1NpemUg
Y2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRQcm9wZXJ0eSggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIsIHVpbnQzMl90IHVuQnVmZmVyU2l6
ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJy
b3IgPSAwTCApOworCisKKyAgICAgICAvKiogUmV0dXJucyBhIHN0cmluZyBwcm9wZXJ0eS4gSWYg
dGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0
cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIDAuIE90aGVyd2lz
ZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRlcyBuZWNlc3Nhcnkg
dG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisgICAgICAgKiBudWxs
LiBTdHJpbmdzIHdpbGwgYWx3YXlzIGZpdCBpbiBidWZmZXJzIG9mIGtfdW5NYXhQcm9wZXJ0eVN0
cmluZ1NpemUgY2hhcmFjdGVycy4gKi8KKyAgICAgICB1aW50MzJfdCBHZXRTdHJpbmdQcm9wZXJ0
eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWRE
ZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgY2hhciAqcGNoVmFsdWUsIHVpbnQz
Ml90IHVuQnVmZmVyU2l6ZSwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgPSAwTCApOwor
CisgICAgICAgLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVydHkgYXMgYSBzdGQ6OnN0cmluZy4g
SWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBh
IHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICogcmV0dXJuIGFuIGVtcHR5
IHN0cmluZy4gKi8KKyAgICAgICBzdGQ6OnN0cmluZyBHZXRTdHJpbmdQcm9wZXJ0eSggdnI6OlBy
b3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXIsIHZyOjpFVHJhY2tlZERldmljZVBy
b3BlcnR5IHByb3AsIHZyOjpFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgPSBudWxscHRy
ICk7CisKKyAgICAgICAvKiogU2V0cyBhIHNjYWxlciBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3
aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVy
dHkgaW4gYW55IHByb2Nlc3MuICovCisgICAgICAgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIFNldEJv
b2xQcm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwg
RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBib29sIGJOZXdWYWx1ZSApOworICAgICAgIEVU
cmFja2VkUHJvcGVydHlFcnJvciBTZXRGbG9hdFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZs
b2F0IGZOZXdWYWx1ZSApOworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRJbnQzMlBy
b3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJh
Y2tlZERldmljZVByb3BlcnR5IHByb3AsIGludDMyX3Qgbk5ld1ZhbHVlICk7CisgICAgICAgRVRy
YWNrZWRQcm9wZXJ0eUVycm9yIFNldFVpbnQ2NFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhh
bmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIHVp
bnQ2NF90IHVsTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEgc3RyaW5nIHByb3BlcnR5
LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVlbnQgY2FsbCB0
byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KKyAgICAgICBFVHJhY2tlZFBy
b3BlcnR5RXJyb3IgU2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY29uc3QgY2hh
ciAqcGNoTmV3VmFsdWUgKTsKKworICAgICAgIC8qKiBTZXRzIGEgc2luZ2xlIHR5cGVkIHByb3Bl
cnR5LiBUaGUgbmV3IHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYW55IHN1YnNlcXVlbnQgY2Fs
bCB0byBnZXQgdGhpcyBwcm9wZXJ0eSBpbiBhbnkgcHJvY2Vzcy4gKi8KKyAgICAgICBFVHJhY2tl
ZFByb3BlcnR5RXJyb3IgU2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZOZXdW
YWx1ZSwgdWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnICk7
CisKKyAgICAgICAvKiogU2V0cyB0aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5
LiBUaGlzIHZhbHVlIHdpbGwgYmUgcmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMg
dG8gZ2V0IHRoZSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRQ
cm9wZXJ0eUVycm9yKCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxl
LCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciBlRXJy
b3IgKTsKKworICAgICAgIC8qKiBDbGVhcnMgYW55IHZhbHVlIG9yIGVycm9yIHNldCBmb3IgdGhl
IHByb3BlcnR5LiAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBFcmFzZVByb3BlcnR5
KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AgKTsKKworICAgICAgIC8qIFR1cm5zIGEgZGV2aWNlIGluZGV4IGlu
dG8gYSBwcm9wZXJ0eSBjb250YWluZXIgaGFuZGxlLiAqLworICAgICAgIFByb3BlcnR5Q29udGFp
bmVySGFuZGxlX3QgVHJhY2tlZERldmljZVRvUHJvcGVydHlDb250YWluZXIoIFRyYWNrZWREZXZp
Y2VJbmRleF90IG5EZXZpY2UgKSB7IHJldHVybiBtX3BQcm9wZXJ0aWVzLT5UcmFja2VkRGV2aWNl
VG9Qcm9wZXJ0eUNvbnRhaW5lciggbkRldmljZSApOyAgfQorCitwcml2YXRlOgorICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgVCBHZXRQcm9wZXJ0eUhlbHBlciggUHJvcGVydHlD
b250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0
eSBwcm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciwgVCBiRGVmYXVsdCwgUHJvcGVy
dHlUeXBlVGFnX3QgdW5UeXBlVGFnICk7CisKKyAgICAgICBJVlJQcm9wZXJ0aWVzICptX3BQcm9w
ZXJ0aWVzOworfTsKKworCitpbmxpbmUgdWludDMyX3QgQ1ZSUHJvcGVydHlIZWxwZXJzOjpHZXRQ
cm9wZXJ0eSggUHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRy
YWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCBWUl9PVVRfU1RSSU5HKCkgdm9pZCAqcHZCdWZmZXIs
IHVpbnQzMl90IHVuQnVmZmVyU2l6ZSwgUHJvcGVydHlUeXBlVGFnX3QgKnB1blRhZywgRVRyYWNr
ZWRQcm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIFByb3BlcnR5UmVhZF90IGJhdGNo
OworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworICAgICAgIGJhdGNoLnB2QnVmZmVyID0gcHZC
dWZmZXI7CisgICAgICAgYmF0Y2gudW5CdWZmZXJTaXplID0gdW5CdWZmZXJTaXplOworCisgICAg
ICAgbV9wUHJvcGVydGllcy0+UmVhZFByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAm
YmF0Y2gsIDEgKTsKKworICAgICAgIGlmICggcEVycm9yICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgICpwRXJyb3IgPSBiYXRjaC5lRXJyb3I7CisgICAgICAgfQorCisgICAgICAgaWYgKCBwdW5U
YWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgKnB1blRhZyA9IGJhdGNoLnVuVGFnOworICAg
ICAgIH0KKworICAgICAgIHJldHVybiBiYXRjaC51blJlcXVpcmVkQnVmZmVyU2l6ZTsKK30KKwor
CisvKiogU2V0cyBhIHNpbmdsZSB0eXBlZCBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3aWxsIGJl
IHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVydHkgaW4g
YW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5
SGVscGVyczo6U2V0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWlu
ZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgdm9pZCAqcHZOZXdWYWx1ZSwg
dWludDMyX3QgdW5OZXdWYWx1ZVNpemUsIFByb3BlcnR5VHlwZVRhZ190IHVuVGFnICkKK3sKKyAg
ICAgICBQcm9wZXJ0eVdyaXRlX3QgYmF0Y2g7CisgICAgICAgYmF0Y2gud3JpdGVUeXBlID0gUHJv
cGVydHlXcml0ZV9TZXQ7CisgICAgICAgYmF0Y2gucHJvcCA9IHByb3A7CisgICAgICAgYmF0Y2gu
cHZCdWZmZXIgPSBwdk5ld1ZhbHVlOworICAgICAgIGJhdGNoLnVuQnVmZmVyU2l6ZSA9IHVuTmV3
VmFsdWVTaXplOworICAgICAgIGJhdGNoLnVuVGFnID0gdW5UYWc7CisKKyAgICAgICBtX3BQcm9w
ZXJ0aWVzLT5Xcml0ZVByb3BlcnR5QmF0Y2goIHVsQ29udGFpbmVySGFuZGxlLCAmYmF0Y2gsIDEg
KTsKKworICAgICAgIHJldHVybiBiYXRjaC5lRXJyb3I7Cit9CisKKworLyoqIFJldHVybnMgYSBz
dHJpbmcgcHJvcGVydHkuIElmIHRoZSBkZXZpY2UgaW5kZXggaXMgbm90IHZhbGlkIG9yIHRoZSBw
cm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcgdHlwZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKyogcmV0dXJu
IDAuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG51bWJlciBvZiBieXRl
cyBuZWNlc3NhcnkgdG8gaG9sZCB0aGlzIHN0cmluZyBpbmNsdWRpbmcgdGhlIHRyYWlsaW5nCisq
IG51bGwuIFN0cmluZ3Mgd2lsbCBhbHdheXMgZml0IGluIGJ1ZmZlcnMgb2Yga191bk1heFByb3Bl
cnR5U3RyaW5nU2l6ZSBjaGFyYWN0ZXJzLiAqLworaW5saW5lIHVpbnQzMl90IENWUlByb3BlcnR5
SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxD
b250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgVlJfT1VUX1NUUklO
RygpIGNoYXIgKnBjaFZhbHVlLCB1aW50MzJfdCB1bkJ1ZmZlclNpemUsIEVUcmFja2VkUHJvcGVy
dHlFcnJvciAqcEVycm9yICkKK3sKKyAgICAgICBQcm9wZXJ0eVR5cGVUYWdfdCB1blRhZzsKKyAg
ICAgICBFVHJhY2tlZFByb3BlcnR5RXJyb3IgZXJyb3I7CisgICAgICAgdWludDMyX3QgdW5SZXF1
aXJlZFNpemUgPSBHZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBjaFZhbHVl
LCB1bkJ1ZmZlclNpemUsICZ1blRhZywgJmVycm9yICk7CisgICAgICAgaWYgKCB1blRhZyAhPSBr
X3VuU3RyaW5nUHJvcGVydHlUYWcgJiYgZXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisg
ICAgICAgeworICAgICAgICAgICAgICBlcnJvciA9IFRyYWNrZWRQcm9wX1dyb25nRGF0YVR5cGU7
CisgICAgICAgfQorCisgICAgICAgaWYgKCBwRXJyb3IgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgKnBFcnJvciA9IGVycm9yOworICAgICAgIH0KKworICAgICAgIGlmICggZXJyb3IgIT0gVHJh
Y2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAgICAgICAgICAgICBpZiAoIHBjaFZhbHVl
ICYmIHVuQnVmZmVyU2l6ZSApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICpwY2hWYWx1ZSA9ICdcMCc7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICBy
ZXR1cm4gdW5SZXF1aXJlZFNpemU7Cit9CisKKworLyoqIFJldHVybnMgYSBzdHJpbmcgcHJvcGVy
dHkgYXMgYSBzdGQ6OnN0cmluZy4gSWYgdGhlIGRldmljZSBpbmRleCBpcyBub3QgdmFsaWQgb3Ig
dGhlIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyB0eXBlIHRoaXMgZnVuY3Rpb24gd2lsbAorKiBy
ZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiAqLworaW5saW5lIHN0ZDo6c3RyaW5nIENWUlByb3BlcnR5
SGVscGVyczo6R2V0U3RyaW5nUHJvcGVydHkoIHZyOjpQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90
IHVsQ29udGFpbmVyLCB2cjo6RVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBwcm9wLCB2cjo6RVRyYWNr
ZWRQcm9wZXJ0eUVycm9yICpwZUVycm9yICkKK3sKKyAgICAgICBjaGFyIGJ1ZlsxMDI0XTsKKyAg
ICAgICB2cjo6RVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVycjsKKyAgICAgICB1aW50MzJfdCB1blJl
cXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFpbmVyLCBwcm9wLCBi
dWYsIHNpemVvZihidWYpLCAmZXJyICk7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUmVzdWx0Owor
CisgICAgICAgaWYgKCBlcnIgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisgICAgICAgeworICAg
ICAgICAgICAgICBzUmVzdWx0ID0gYnVmOworICAgICAgIH0KKyAgICAgICBlbHNlIGlmICggZXJy
ID09IFRyYWNrZWRQcm9wX0J1ZmZlclRvb1NtYWxsICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IGNoYXIgKnBjaEJ1ZmZlciA9IG5ldyBjaGFyW3VuUmVxdWlyZWRCdWZmZXJMZW5dOworICAgICAg
ICAgICAgICB1blJlcXVpcmVkQnVmZmVyTGVuID0gR2V0U3RyaW5nUHJvcGVydHkoIHVsQ29udGFp
bmVyLCBwcm9wLCBwY2hCdWZmZXIsIHVuUmVxdWlyZWRCdWZmZXJMZW4sICZlcnIgKTsKKyAgICAg
ICAgICAgICAgc1Jlc3VsdCA9IHBjaEJ1ZmZlcjsKKyAgICAgICAgICAgICAgZGVsZXRlW10gcGNo
QnVmZmVyOworICAgICAgIH0KKworICAgICAgIGlmICggcGVFcnJvciApCisgICAgICAgeworICAg
ICAgICAgICAgICAqcGVFcnJvciA9IGVycjsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gc1Jl
c3VsdDsKK30KKworCisvKiogU2V0cyBhIHN0cmluZyBwcm9wZXJ0eS4gVGhlIG5ldyB2YWx1ZSB3
aWxsIGJlIHJldHVybmVkIG9uIGFueSBzdWJzZXF1ZW50IGNhbGwgdG8gZ2V0IHRoaXMgcHJvcGVy
dHkgaW4gYW55IHByb2Nlc3MuICovCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlBy
b3BlcnR5SGVscGVyczo6U2V0U3RyaW5nUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxl
X3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgY29uc3Qg
Y2hhciAqcGNoTmV3VmFsdWUgKQoreworICAgICAgIGlmICggIXBjaE5ld1ZhbHVlICkKKyAgICAg
ICAgICAgICAgcmV0dXJuIFRyYWNrZWRQcm9wX0ludmFsaWRPcGVyYXRpb247CisKKyAgICAgICAv
LyB0aGlzIGlzIHN0cmxlbiB3aXRob3V0IHRoZSBkZXBlbmRlbmN5IG9uIHN0cmluZy5oCisgICAg
ICAgY29uc3QgY2hhciAqcGNoQ3VyciA9IHBjaE5ld1ZhbHVlOworICAgICAgIHdoaWxlICggKnBj
aEN1cnIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcGNoQ3VycisrOworICAgICAgIH0KKwor
ICAgICAgIHJldHVybiBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICh2b2lk
ICopcGNoTmV3VmFsdWUsICh1aW50MzJfdCkocGNoQ3VyciAtIHBjaE5ld1ZhbHVlKSArIDEsIGtf
dW5TdHJpbmdQcm9wZXJ0eVRhZyApOworfQorCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Citpbmxp
bmUgVCBDVlJQcm9wZXJ0eUhlbHBlcnM6OkdldFByb3BlcnR5SGVscGVyKCBQcm9wZXJ0eUNvbnRh
aW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHBy
b3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yLCBUIGJEZWZhdWx0LCBQcm9wZXJ0eVR5
cGVUYWdfdCB1blR5cGVUYWcgKQoreworICAgICAgIFQgYlZhbHVlOworICAgICAgIEVUcmFja2Vk
UHJvcGVydHlFcnJvciBlRXJyb3I7CisgICAgICAgUHJvcGVydHlUeXBlVGFnX3QgdW5SZWFkVGFn
OworICAgICAgIEdldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmJWYWx1ZSwg
c2l6ZW9mKCBiVmFsdWUgKSwgJnVuUmVhZFRhZywgJmVFcnJvciApOworICAgICAgIGlmICggdW5S
ZWFkVGFnICE9IHVuVHlwZVRhZyAmJiBlRXJyb3IgPT0gVHJhY2tlZFByb3BfU3VjY2VzcyApCisg
ICAgICAgeworICAgICAgICAgICAgICBlRXJyb3IgPSBUcmFja2VkUHJvcF9Xcm9uZ0RhdGFUeXBl
OworICAgICAgIH07CisKKyAgICAgICBpZiAoIHBFcnJvciApCisgICAgICAgICAgICAgICpwRXJy
b3IgPSBlRXJyb3I7CisgICAgICAgaWYgKCBlRXJyb3IgIT0gVHJhY2tlZFByb3BfU3VjY2VzcyAp
CisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gYkRlZmF1bHQ7CisgICAgICAgfQorICAg
ICAgIGVsc2UKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBiVmFsdWU7CisgICAgICAg
fQorfQorCisKK2lubGluZSBib29sIENWUlByb3BlcnR5SGVscGVyczo6R2V0Qm9vbFByb3BlcnR5
KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERl
dmljZVByb3BlcnR5IHByb3AsIEVUcmFja2VkUHJvcGVydHlFcnJvciAqcEVycm9yICkKK3sKKyAg
ICAgICByZXR1cm4gR2V0UHJvcGVydHlIZWxwZXI8Ym9vbD4oIHVsQ29udGFpbmVySGFuZGxlLCBw
cm9wLCBwRXJyb3IsIGZhbHNlLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Cit9CisKKworaW5saW5l
IGZsb2F0IENWUlByb3BlcnR5SGVscGVyczo6R2V0RmxvYXRQcm9wZXJ0eSggUHJvcGVydHlDb250
YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBw
cm9wLCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBFcnJvciApCit7CisgICAgICAgcmV0dXJuIEdl
dFByb3BlcnR5SGVscGVyPGZsb2F0PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwg
MC5mLCBrX3VuRmxvYXRQcm9wZXJ0eVRhZyApOworfQorCitpbmxpbmUgaW50MzJfdCBDVlJQcm9w
ZXJ0eUhlbHBlcnM6OkdldEludDMyUHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3Qg
dWxDb250YWluZXJIYW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQ
cm9wZXJ0eUVycm9yICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBl
cjxpbnQzMl90PiggdWxDb250YWluZXJIYW5kbGUsIHByb3AsIHBFcnJvciwgMCwga191bkludDMy
UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5lIHVpbnQ2NF90IENWUlByb3BlcnR5SGVscGVyczo6
R2V0VWludDY0UHJvcGVydHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJI
YW5kbGUsIEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9y
ICpwRXJyb3IgKQoreworICAgICAgIHJldHVybiBHZXRQcm9wZXJ0eUhlbHBlcjx1aW50NjRfdD4o
IHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCBwRXJyb3IsIDAsIGtfdW5VaW50NjRQcm9wZXJ0eVRh
ZyApOworfQorCitpbmxpbmUgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIENWUlByb3BlcnR5SGVscGVy
czo6U2V0Qm9vbFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVy
SGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGJvb2wgYk5ld1ZhbHVlICkKK3sK
KyAgICAgICByZXR1cm4gU2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmYk5l
d1ZhbHVlLCBzaXplb2YoIGJOZXdWYWx1ZSApLCBrX3VuQm9vbFByb3BlcnR5VGFnICk7Cit9CisK
K2lubGluZSBFVHJhY2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRGbG9h
dFByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5lckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AsIGZsb2F0IGZOZXdWYWx1ZSApCit7CisgICAgICAg
cmV0dXJuIFNldFByb3BlcnR5KCB1bENvbnRhaW5lckhhbmRsZSwgcHJvcCwgJmZOZXdWYWx1ZSwg
c2l6ZW9mKCBmTmV3VmFsdWUgKSwga191bkZsb2F0UHJvcGVydHlUYWcgKTsKK30KKworaW5saW5l
IEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldEludDMyUHJvcGVy
dHkoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUsIEVUcmFja2Vk
RGV2aWNlUHJvcGVydHkgcHJvcCwgaW50MzJfdCBuTmV3VmFsdWUgKQoreworICAgICAgIHJldHVy
biBTZXRQcm9wZXJ0eSggdWxDb250YWluZXJIYW5kbGUsIHByb3AsICZuTmV3VmFsdWUsIHNpemVv
Ziggbk5ld1ZhbHVlICksIGtfdW5JbnQzMlByb3BlcnR5VGFnICk7Cit9CisKK2lubGluZSBFVHJh
Y2tlZFByb3BlcnR5RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpTZXRVaW50NjRQcm9wZXJ0eSgg
UHJvcGVydHlDb250YWluZXJIYW5kbGVfdCB1bENvbnRhaW5lckhhbmRsZSwgRVRyYWNrZWREZXZp
Y2VQcm9wZXJ0eSBwcm9wLCB1aW50NjRfdCB1bE5ld1ZhbHVlICkKK3sKKyAgICAgICByZXR1cm4g
U2V0UHJvcGVydHkoIHVsQ29udGFpbmVySGFuZGxlLCBwcm9wLCAmdWxOZXdWYWx1ZSwgc2l6ZW9m
KCB1bE5ld1ZhbHVlICksIGtfdW5VaW50NjRQcm9wZXJ0eVRhZyApOworfQorCisvKiogU2V0cyB0
aGUgZXJyb3IgcmV0dXJuIHZhbHVlIGZvciBhIHByb3BlcnR5LiBUaGlzIHZhbHVlIHdpbGwgYmUg
cmV0dXJuZWQgb24gYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gZ2V0IHRoZSBwcm9wZXJ0eSAq
LworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJQcm9wZXJ0eUhlbHBlcnM6OlNldFBy
b3BlcnR5RXJyb3IoIFByb3BlcnR5Q29udGFpbmVySGFuZGxlX3QgdWxDb250YWluZXJIYW5kbGUs
IEVUcmFja2VkRGV2aWNlUHJvcGVydHkgcHJvcCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yIGVFcnJv
ciApCit7CisgICAgICAgUHJvcGVydHlXcml0ZV90IGJhdGNoOworICAgICAgIGJhdGNoLndyaXRl
VHlwZSA9IFByb3BlcnR5V3JpdGVfU2V0RXJyb3I7CisgICAgICAgYmF0Y2gucHJvcCA9IHByb3A7
CisgICAgICAgYmF0Y2guZVNldEVycm9yID0gZUVycm9yOworCisgICAgICAgbV9wUHJvcGVydGll
cy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRsZSwgJmJhdGNoLCAxICk7CisK
KyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworfQorCisvKiogQ2xlYXJzIGFueSB2YWx1ZSBv
ciBlcnJvciBzZXQgZm9yIHRoZSBwcm9wZXJ0eS4gKi8KK2lubGluZSBFVHJhY2tlZFByb3BlcnR5
RXJyb3IgQ1ZSUHJvcGVydHlIZWxwZXJzOjpFcmFzZVByb3BlcnR5KCBQcm9wZXJ0eUNvbnRhaW5l
ckhhbmRsZV90IHVsQ29udGFpbmVySGFuZGxlLCBFVHJhY2tlZERldmljZVByb3BlcnR5IHByb3Ag
KQoreworICAgICAgIFByb3BlcnR5V3JpdGVfdCBiYXRjaDsKKyAgICAgICBiYXRjaC53cml0ZVR5
cGUgPSBQcm9wZXJ0eVdyaXRlX0VyYXNlOworICAgICAgIGJhdGNoLnByb3AgPSBwcm9wOworCisg
ICAgICAgbV9wUHJvcGVydGllcy0+V3JpdGVQcm9wZXJ0eUJhdGNoKCB1bENvbnRhaW5lckhhbmRs
ZSwgJmJhdGNoLCAxICk7CisKKyAgICAgICByZXR1cm4gYmF0Y2guZUVycm9yOworCit9CisKK30K
KworCisvLyBpdnJkcml2ZXJsb2cuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNzIElWUkRyaXZl
ckxvZworeworcHVibGljOgorICAgICAgIC8qKiBXcml0ZXMgYSBsb2cgbWVzc2FnZSB0byB0aGUg
bG9nIGZpbGUgcHJlZml4ZWQgd2l0aCB0aGUgZHJpdmVyIG5hbWUgKi8KKyAgICAgICB2aXJ0dWFs
IHZvaWQgTG9nKCBjb25zdCBjaGFyICpwY2hMb2dNZXNzYWdlICkgPSAwOworfTsKKworCitzdGF0
aWMgY29uc3QgY2hhciAqSVZSRHJpdmVyTG9nX1ZlcnNpb24gPSAiSVZSRHJpdmVyTG9nXzAwMSI7
CisKK30KKy8vIGl2cnNlcnZlcmRyaXZlcmhvc3QuaAorbmFtZXNwYWNlIHZyCit7CisKK2NsYXNz
IElUcmFja2VkRGV2aWNlU2VydmVyRHJpdmVyOworc3RydWN0IFRyYWNrZWREZXZpY2VEcml2ZXJJ
bmZvX3Q7CitzdHJ1Y3QgRHJpdmVyUG9zZV90OworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJv
dmlkZWQgYnkgdnJzZXJ2ZXIgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBub3RpZnkgCisqIHRoZSBz
eXN0ZW0gd2hlbiBzb21ldGhpbmcgY2hhbmdlcyBhYm91dCBhIGRldmljZS4gVGhlc2UgY2hhbmdl
cyBtdXN0CisqIG5vdCBjaGFuZ2UgdGhlIHNlcmlhbCBudW1iZXIgb3IgY2xhc3Mgb2YgdGhlIGRl
dmljZSBiZWNhdXNlIHRob3NlIHZhbHVlcworKiBhcmUgcGVybWFuZW50bHkgYXNzb2NpYXRlZCB3
aXRoIHRoZSBkZXZpY2UncyBpbmRleC4gKi8KK2NsYXNzIElWUlNlcnZlckRyaXZlckhvc3QKK3sK
K3B1YmxpYzoKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IGEgdHJhY2tlZCBk
ZXZpY2UgaGFzIGJlZW4gYWRkZWQuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlCisgICAg
ICAgKiB0aGUgc2VydmVyIHdpbGwgY2FsbCBBY3RpdmF0ZSBvbiB0aGUgZGV2aWNlLiBJZiBpdCBy
ZXR1cm5zIGZhbHNlIHNvbWUga2luZCBvZiBlcnJvcgorICAgICAgICogaGFzIG9jY3VycmVkIGFu
ZCB0aGUgZGV2aWNlIHdpbGwgbm90IGJlIGFjdGl2YXRlZC4gKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgVHJhY2tlZERldmljZUFkZGVkKCBjb25zdCBjaGFyICpwY2hEZXZpY2VTZXJpYWxOdW1iZXIs
IEVUcmFja2VkRGV2aWNlQ2xhc3MgZURldmljZUNsYXNzLCBJVHJhY2tlZERldmljZVNlcnZlckRy
aXZlciAqcERyaXZlciApID0gMDsKKworICAgICAgIC8qKiBOb3RpZmllcyB0aGUgc2VydmVyIHRo
YXQgYSB0cmFja2VkIGRldmljZSdzIHBvc2UgaGFzIGJlZW4gdXBkYXRlZCAqLworICAgICAgIHZp
cnR1YWwgdm9pZCBUcmFja2VkRGV2aWNlUG9zZVVwZGF0ZWQoIHVpbnQzMl90IHVuV2hpY2hEZXZp
Y2UsIGNvbnN0IERyaXZlclBvc2VfdCAmIG5ld1Bvc2UsIHVpbnQzMl90IHVuUG9zZVN0cnVjdFNp
emUgKSA9IDA7CisKKyAgICAgICAvKiogTm90aWZpZXMgdGhlIHNlcnZlciB0aGF0IHZzeW5jIGhh
cyBvY2N1cnJlZCBvbiB0aGUgdGhlIGRpc3BsYXkgYXR0YWNoZWQgdG8gdGhlIGRldmljZS4gVGhp
cyBpcworICAgICAgICogb25seSBwZXJtaXR0ZWQgb24gZGV2aWNlcyBvZiB0aGUgSE1EIGNsYXNz
LiAqLworICAgICAgIHZpcnR1YWwgdm9pZCBWc3luY0V2ZW50KCBkb3VibGUgdnN5bmNUaW1lT2Zm
c2V0U2Vjb25kcyApID0gMDsKKworICAgICAgIC8qKiBub3RpZmllcyB0aGUgc2VydmVyIHRoYXQg
dGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBUcmFja2VkRGV2
aWNlQnV0dG9uUHJlc3NlZCggdWludDMyX3QgdW5XaGljaERldmljZSwgRVZSQnV0dG9uSWQgZUJ1
dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoqIG5vdGlm
aWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdhcyB1bnByZXNzZWQgKi8KKyAgICAgICB2
aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUJ1dHRvblVucHJlc3NlZCggdWludDMyX3QgdW5XaGlj
aERldmljZSwgRVZSQnV0dG9uSWQgZUJ1dHRvbklkLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkg
PSAwOworCisgICAgICAgLyoqIG5vdGlmaWVzIHRoZSBzZXJ2ZXIgdGhhdCB0aGUgYnV0dG9uIHdh
cyBwcmVzc2VkICovCisgICAgICAgdmlydHVhbCB2b2lkIFRyYWNrZWREZXZpY2VCdXR0b25Ub3Vj
aGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJCdXR0b25JZCBlQnV0dG9uSWQsIGRvdWJs
ZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAgICAgICAvKiogbm90aWZpZXMgdGhlIHNlcnZl
ciB0aGF0IHRoZSBidXR0b24gd2FzIHVucHJlc3NlZCAqLworICAgICAgIHZpcnR1YWwgdm9pZCBU
cmFja2VkRGV2aWNlQnV0dG9uVW50b3VjaGVkKCB1aW50MzJfdCB1bldoaWNoRGV2aWNlLCBFVlJC
dXR0b25JZCBlQnV0dG9uSWQsIGRvdWJsZSBldmVudFRpbWVPZmZzZXQgKSA9IDA7CisKKyAgICAg
ICAvKiogbm90aWZpZXMgdGhlIHNlcnZlciB0aGFuIGEgY29udHJvbGxlciBheGlzIGNoYW5nZWQg
Ki8KKyAgICAgICB2aXJ0dWFsIHZvaWQgVHJhY2tlZERldmljZUF4aXNVcGRhdGVkKCB1aW50MzJf
dCB1bldoaWNoRGV2aWNlLCB1aW50MzJfdCB1bldoaWNoQXhpcywgY29uc3QgVlJDb250cm9sbGVy
QXhpc190ICYgYXhpc1N0YXRlICkgPSAwOworCisgICAgICAgLyoqIE5vdGlmaWVzIHRoZSBzZXJ2
ZXIgdGhhdCB0aGUgcHJveGltaXR5IHNlbnNvciBvbiB0aGUgc3BlY2lmaWVkIGRldmljZSAgKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgUHJveGltaXR5U2Vuc29yU3RhdGUoIHVpbnQzMl90IHVuV2hp
Y2hEZXZpY2UsIGJvb2wgYlByb3hpbWl0eVNlbnNvclRyaWdnZXJlZCApID0gMDsKKworICAgICAg
IC8qKiBTZW5kcyBhIHZlbmRvciBzcGVjaWZpYyBldmVudCAoVlJFdmVudF9WZW5kb3JTcGVjaWZp
Y19SZXNlcnZlZF9TdGFydC4uVlJFdmVudF9WZW5kb3JTcGVjaWZpY19SZXNlcnZlZF9FbmQgKi8K
KyAgICAgICB2aXJ0dWFsIHZvaWQgVmVuZG9yU3BlY2lmaWNFdmVudCggdWludDMyX3QgdW5XaGlj
aERldmljZSwgdnI6OkVWUkV2ZW50VHlwZSBldmVudFR5cGUsIGNvbnN0IFZSRXZlbnRfRGF0YV90
ICYgZXZlbnREYXRhLCBkb3VibGUgZXZlbnRUaW1lT2Zmc2V0ICkgPSAwOworCisgICAgICAgLyoq
IFJldHVybnMgdHJ1ZSBpZiBTdGVhbVZSIGlzIGV4aXRpbmcgKi8KKyAgICAgICB2aXJ0dWFsIGJv
b2wgSXNFeGl0aW5nKCkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMg
dGhlIGV2ZW50IHdpdGggdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlIGlmIHRoZXJlIGlzIG9u
ZS4gSWYgdGhlcmUgYXJlIG5vIGV2ZW50cworICAgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBm
YWxzZS4gdW5jYlZSRXZlbnQgc2hvdWxkIGJlIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBWUkV2
ZW50X3Qgc3RydWN0ICovCisgICAgICAgdmlydHVhbCBib29sIFBvbGxOZXh0RXZlbnQoIFZSRXZl
bnRfdCAqcEV2ZW50LCB1aW50MzJfdCB1bmNiVlJFdmVudCApID0gMDsKK307CisKK3N0YXRpYyBj
b25zdCBjaGFyICpJVlJTZXJ2ZXJEcml2ZXJIb3N0X1ZlcnNpb24gPSAiSVZSU2VydmVyRHJpdmVy
SG9zdF8wMDQiOworCit9CisvLyBpdnJoaWRkZW5hcmVhLmgKK25hbWVzcGFjZSB2cgoreworCitj
bGFzcyBDVlJIaWRkZW5BcmVhSGVscGVycworeworcHVibGljOgorICAgICAgIENWUkhpZGRlbkFy
ZWFIZWxwZXJzKCBJVlJQcm9wZXJ0aWVzICpwUHJvcGVydGllcyApIDogbV9wUHJvcGVydGllcygg
cFByb3BlcnRpZXMgKSB7fQorCisgICAgICAgLyoqIFN0b3JlcyBhIGhpZGRlbiBhcmVhIG1lc2gg
aW4gYSBwcm9wZXJ0eSAqLworICAgICAgIEVUcmFja2VkUHJvcGVydHlFcnJvciBTZXRIaWRkZW5B
cmVhKCBFVlJFeWUgZUV5ZSwgRUhpZGRlbkFyZWFNZXNoVHlwZSB0eXBlLCBIbWRWZWN0b3IyX3Qg
KnBWZXJ0cywgdWludDMyX3QgdW5WZXJ0Q291bnQgKTsKKworICAgICAgIC8qKiByZXRyaWV2ZXMg
YSBoaWRkZW4gYXJlYSBtZXNoIGZyb20gYSBwcm9wZXJ0eS4gUmV0dXJucyB0aGUgdmVydCBjb3Vu
dCByZWFkIG91dCBvZiB0aGUgcHJvcGVydHkuICAqLworICAgICAgIHVpbnQzMl90IEdldEhpZGRl
bkFyZWEoIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUsIEhtZFZlY3RvcjJf
dCAqcFZlcnRzLCB1aW50MzJfdCB1blZlcnRDb3VudCwgRVRyYWNrZWRQcm9wZXJ0eUVycm9yICpw
ZUVycm9yICk7CisKK3ByaXZhdGU6CisgICAgICAgRVRyYWNrZWREZXZpY2VQcm9wZXJ0eSBHZXRQ
cm9wZXJ0eUVudW0oIEVWUkV5ZSBlRXllLCBFSGlkZGVuQXJlYU1lc2hUeXBlIHR5cGUgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIChFVHJhY2tlZERldmljZVByb3BlcnR5KShQcm9w
X0Rpc3BsYXlIaWRkZW5BcmVhX0JpbmFyeV9TdGFydCArICgoaW50KXR5cGUgKiAyKSArIChpbnQp
ZUV5ZSk7CisgICAgICAgfQorCisgICAgICAgSVZSUHJvcGVydGllcyAqbV9wUHJvcGVydGllczsK
K307CisKKworaW5saW5lIEVUcmFja2VkUHJvcGVydHlFcnJvciBDVlJIaWRkZW5BcmVhSGVscGVy
czo6U2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVhTWVzaFR5cGUgdHlwZSwg
SG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50ICkKK3sKKyAgICAgICBF
VHJhY2tlZERldmljZVByb3BlcnR5IHByb3AgPSBHZXRQcm9wZXJ0eUVudW0oIGVFeWUsIHR5cGUg
KTsKKyAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgcHJvcEhlbHBlcnMoIG1fcFByb3BlcnRpZXMg
KTsKKyAgICAgICByZXR1cm4gcHJvcEhlbHBlcnMuU2V0UHJvcGVydHkoIHByb3BIZWxwZXJzLlRy
YWNrZWREZXZpY2VUb1Byb3BlcnR5Q29udGFpbmVyKCBrX3VuVHJhY2tlZERldmljZUluZGV4X0ht
ZCApLCBwcm9wLCBwVmVydHMsIHNpemVvZiggSG1kVmVjdG9yMl90ICkgKiB1blZlcnRDb3VudCwg
a191bkhpZGRlbkFyZWFQcm9wZXJ0eVRhZyApOworfQorCisKK2lubGluZSB1aW50MzJfdCBDVlJI
aWRkZW5BcmVhSGVscGVyczo6R2V0SGlkZGVuQXJlYSggRVZSRXllIGVFeWUsIEVIaWRkZW5BcmVh
TWVzaFR5cGUgdHlwZSwgSG1kVmVjdG9yMl90ICpwVmVydHMsIHVpbnQzMl90IHVuVmVydENvdW50
LCBFVHJhY2tlZFByb3BlcnR5RXJyb3IgKnBlRXJyb3IgKQoreworICAgICAgIEVUcmFja2VkRGV2
aWNlUHJvcGVydHkgcHJvcCA9IEdldFByb3BlcnR5RW51bSggZUV5ZSwgdHlwZSApOworICAgICAg
IENWUlByb3BlcnR5SGVscGVycyBwcm9wSGVscGVycyggbV9wUHJvcGVydGllcyApOworICAgICAg
IEVUcmFja2VkUHJvcGVydHlFcnJvciBwcm9wRXJyb3I7CisgICAgICAgUHJvcGVydHlUeXBlVGFn
X3QgdW5UYWc7CisgICAgICAgdWludDMyX3QgdW5CeXRlc05lZWRlZCA9IHByb3BIZWxwZXJzLkdl
dFByb3BlcnR5KCBwcm9wSGVscGVycy5UcmFja2VkRGV2aWNlVG9Qcm9wZXJ0eUNvbnRhaW5lcigg
a191blRyYWNrZWREZXZpY2VJbmRleF9IbWQgKSwgcHJvcCwgcFZlcnRzLCBzaXplb2YoIEhtZFZl
Y3RvcjJfdCApKnVuVmVydENvdW50LCAmdW5UYWcsICZwcm9wRXJyb3IgKTsKKyAgICAgICBpZiAo
IHByb3BFcnJvciA9PSBUcmFja2VkUHJvcF9TdWNjZXNzICYmIHVuVGFnICE9IGtfdW5IaWRkZW5B
cmVhUHJvcGVydHlUYWcgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcHJvcEVycm9yID0gVHJh
Y2tlZFByb3BfV3JvbmdEYXRhVHlwZTsKKyAgICAgICAgICAgICAgdW5CeXRlc05lZWRlZCA9IDA7
CisgICAgICAgfQorCisgICAgICAgaWYgKCBwZUVycm9yICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgICpwZUVycm9yID0gcHJvcEVycm9yOworICAgICAgIH0KKworICAgICAgIHJldHVybiB1bkJ5
dGVzTmVlZGVkIC8gc2l6ZW9mKCBIbWRWZWN0b3IyX3QgKTsKK30KKworfQorLy8gaXZyd2F0Y2hk
b2dob3N0LmgKK25hbWVzcGFjZSB2cgoreworCisvKiogVGhpcyBpbnRlcmZhY2UgaXMgcHJvdmlk
ZWQgYnkgdnJjbGllbnQgdG8gYWxsb3cgdGhlIGRyaXZlciB0byBtYWtlIGV2ZXJ5dGhpbmcgd2Fr
ZSB1cCAqLworY2xhc3MgSVZSV2F0Y2hkb2dIb3N0Cit7CitwdWJsaWM6CisgICAgICAgLyoqIENs
aWVudCBkcml2ZXJzIGluIHdhdGNoZG9nIG1vZGUgc2hvdWxkIGNhbGwgdGhpcyB3aGVuIHRoZXkg
aGF2ZSByZWNlaXZlZCBhIHNpZ25hbCBmcm9tIGhhcmR3YXJlIHRoYXQgc2hvdWxkCisgICAgICAg
KiBjYXVzZSBTdGVhbVZSIHRvIHN0YXJ0ICovCisgICAgICAgdmlydHVhbCB2b2lkIFdhdGNoZG9n
V2FrZVVwKCkgPSAwOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKklWUldhdGNoZG9nSG9zdF9W
ZXJzaW9uID0gIklWUldhdGNoZG9nSG9zdF8wMDEiOworCit9OworCisKKworCisKKworCituYW1l
c3BhY2UgdnIKK3sKKyAgICAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtfSW50ZXJmYWNl
VmVyc2lvbnNbXSA9CisgICAgICAgeworICAgICAgICAgICAgICBJVlJTZXR0aW5nc19WZXJzaW9u
LAorICAgICAgICAgICAgICBJVHJhY2tlZERldmljZVNlcnZlckRyaXZlcl9WZXJzaW9uLAorICAg
ICAgICAgICAgICBJVlJEaXNwbGF5Q29tcG9uZW50X1ZlcnNpb24sCisgICAgICAgICAgICAgIElW
UkRyaXZlckRpcmVjdE1vZGVDb21wb25lbnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVZSQ29u
dHJvbGxlckNvbXBvbmVudF9WZXJzaW9uLAorICAgICAgICAgICAgICBJVlJDYW1lcmFDb21wb25l
bnRfVmVyc2lvbiwKKyAgICAgICAgICAgICAgSVNlcnZlclRyYWNrZWREZXZpY2VQcm92aWRlcl9W
ZXJzaW9uLAorICAgICAgICAgICAgICBJVlJXYXRjaGRvZ1Byb3ZpZGVyX1ZlcnNpb24sCisgICAg
ICAgICAgICAgIG51bGxwdHIKKyAgICAgICB9OworCisgICAgICAgaW5saW5lIElWUkRyaXZlckNv
bnRleHQgKiZWUkRyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RhdGlj
IElWUkRyaXZlckNvbnRleHQgKnBIb3N0OworICAgICAgICAgICAgICByZXR1cm4gcEhvc3Q7Cisg
ICAgICAgfQorCisgICAgICAgY2xhc3MgQ09wZW5WUkRyaXZlckNvbnRleHQKKyAgICAgICB7Cisg
ICAgICAgcHVibGljOgorICAgICAgICAgICAgICBDT3BlblZSRHJpdmVyQ29udGV4dCgpIDogbV9w
cm9wZXJ0eUhlbHBlcnMobnVsbHB0ciksIG1faGlkZGVuQXJlYUhlbHBlcnMobnVsbHB0cikgeyBD
bGVhcigpOyB9CisgICAgICAgICAgICAgIHZvaWQgQ2xlYXIoKTsKKworICAgICAgICAgICAgICBF
VlJJbml0RXJyb3IgSW5pdFNlcnZlcigpOworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgSW5p
dFdhdGNoZG9nKCk7CisKKyAgICAgICAgICAgICAgSVZSU2V0dGluZ3MgKlZSU2V0dGluZ3MoKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSU2V0dGluZ3Mg
PT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3BWUlNldHRpbmdzID0gKElWUlNldHRpbmdzICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdl
bmVyaWNJbnRlcmZhY2UoIElWUlNldHRpbmdzX1ZlcnNpb24sICZlRXJyb3IgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX3BWUlNldHRpbmdz
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSUHJvcGVydGllcyAqVlJQcm9w
ZXJ0aWVzUmF3KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBt
X3BWUlByb3BlcnRpZXMgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3BWUlByb3BlcnRpZXMgPSAoSVZSUHJvcGVydGllcyAqKVZSRHJp
dmVyQ29udGV4dCgpLT5HZXRHZW5lcmljSW50ZXJmYWNlKCBJVlJQcm9wZXJ0aWVzX1ZlcnNpb24s
ICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5SGVscGVy
cyA9IENWUlByb3BlcnR5SGVscGVycyggbV9wVlJQcm9wZXJ0aWVzICk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9oaWRkZW5BcmVhSGVscGVycyA9IENWUkhpZGRlbkFyZWFIZWxwZXJz
KCBtX3BWUlByb3BlcnRpZXMgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBtX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICBDVlJQcm9wZXJ0eUhlbHBlcnMgKlZSUHJvcGVydGllcygpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIFZSUHJvcGVydGllc1JhdygpOworICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICZtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgIENWUkhpZGRlbkFyZWFIZWxwZXJzICpWUkhpZGRlbkFyZWEoKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBWUlByb3BlcnRpZXNSYXcoKTsKKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIElWUlNlcnZlckRyaXZlckhvc3QgKlZSU2VydmVyRHJp
dmVySG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9w
VlJTZXJ2ZXJEcml2ZXJIb3N0ID09IG51bGxwdHIgKQorICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJvciBlRXJyb3I7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gKElWUlNlcnZlckRy
aXZlckhvc3QgKilWUkRyaXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSU2Vy
dmVyRHJpdmVySG9zdF9WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OworICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgSVZSV2F0Y2hkb2dIb3N0ICpWUldhdGNoZG9n
SG9zdCgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICggbV9wVlJX
YXRjaGRvZ0hvc3QgPT0gbnVsbHB0ciApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRVZSSW5pdEVycm9yIGVFcnJvcjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IChJVlJXYXRjaGRvZ0hvc3QgKilWUkRy
aXZlckNvbnRleHQoKS0+R2V0R2VuZXJpY0ludGVyZmFjZSggSVZSV2F0Y2hkb2dIb3N0X1ZlcnNp
b24sICZlRXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBtX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgIElWUkRyaXZlckxvZyAqVlJEcml2ZXJMb2coKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBpZiAoIG1fcFZSRHJpdmVyTG9nID09IG51bGxwdHIgKQorICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUkluaXRFcnJv
ciBlRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wVlJEcml2ZXJMb2cgPSAo
SVZSRHJpdmVyTG9nICopVlJEcml2ZXJDb250ZXh0KCktPkdldEdlbmVyaWNJbnRlcmZhY2UoIElW
UkRyaXZlckxvZ19WZXJzaW9uLCAmZUVycm9yICk7CisgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9wVlJEcml2ZXJMb2c7CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBEcml2ZXJIYW5kbGVfdCBWUl9DQUxMVFlQRSBWUkRyaXZlckhh
bmRsZSgpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBWUkRy
aXZlckNvbnRleHQoKS0+R2V0RHJpdmVySGFuZGxlKCk7CisgICAgICAgICAgICAgIH0KKworICAg
ICAgIHByaXZhdGU6CisgICAgICAgICAgICAgIElWUlNldHRpbmdzICAgICAgICAgICAgICAgICAg
ICAgKm1fcFZSU2V0dGluZ3M7CisgICAgICAgICAgICAgIElWUlByb3BlcnRpZXMgICAgICAgICAg
ICAgICptX3BWUlByb3BlcnRpZXM7CisgICAgICAgICAgICAgIENWUlByb3BlcnR5SGVscGVycyAg
ICAgICBtX3Byb3BlcnR5SGVscGVyczsKKyAgICAgICAgICAgICAgQ1ZSSGlkZGVuQXJlYUhlbHBl
cnMgICAgICAgbV9oaWRkZW5BcmVhSGVscGVyczsKKyAgICAgICAgICAgICAgSVZSU2VydmVyRHJp
dmVySG9zdCAgICAgICAqbV9wVlJTZXJ2ZXJEcml2ZXJIb3N0OworICAgICAgICAgICAgICBJVlJX
YXRjaGRvZ0hvc3QgICAgICAgICAgICAgICptX3BWUldhdGNoZG9nSG9zdDsKKyAgICAgICAgICAg
ICAgSVZSRHJpdmVyTG9nICAgICAgICAgICAgICAqbV9wVlJEcml2ZXJMb2c7CisgICAgICAgfTsK
KworICAgICAgIGlubGluZSBDT3BlblZSRHJpdmVyQ29udGV4dCAmT3BlblZSSW50ZXJuYWxfTW9k
dWxlU2VydmVyRHJpdmVyQ29udGV4dCgpCisgICAgICAgeworICAgICAgICAgICAgICBzdGF0aWMg
dm9pZCAqY3R4W3NpemVvZiggQ09wZW5WUkRyaXZlckNvbnRleHQgKSAvIHNpemVvZiggdm9pZCAq
ICldOworICAgICAgICAgICAgICByZXR1cm4gKihDT3BlblZSRHJpdmVyQ29udGV4dCAqKWN0eDsg
Ly8gYnlwYXNzIHplcm8taW5pdCBjb25zdHJ1Y3RvcgorICAgICAgIH0KKworICAgICAgIGlubGlu
ZSBJVlJTZXR0aW5ncyAqVlJfQ0FMTFRZUEUgVlJTZXR0aW5ncygpIHsgcmV0dXJuIE9wZW5WUklu
dGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUlNldHRpbmdzKCk7IH0KKyAgICAg
ICBpbmxpbmUgSVZSUHJvcGVydGllcyAqVlJfQ0FMTFRZUEUgVlJQcm9wZXJ0aWVzUmF3KCkgeyBy
ZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSUHJvcGVy
dGllc1JhdygpOyB9CisgICAgICAgaW5saW5lIENWUlByb3BlcnR5SGVscGVycyAqVlJfQ0FMTFRZ
UEUgVlJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2VydmVyRHJp
dmVyQ29udGV4dCgpLlZSUHJvcGVydGllcygpOyB9CisgICAgICAgaW5saW5lIENWUkhpZGRlbkFy
ZWFIZWxwZXJzICpWUl9DQUxMVFlQRSBWUkhpZGRlbkFyZWEoKSB7IHJldHVybiBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJIaWRkZW5BcmVhKCk7IH0KKyAgICAg
ICBpbmxpbmUgSVZSRHJpdmVyTG9nICpWUl9DQUxMVFlQRSBWUkRyaXZlckxvZygpIHsgcmV0dXJu
IE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZlckNvbnRleHQoKS5WUkRyaXZlckxvZygp
OyB9CisgICAgICAgaW5saW5lIElWUlNlcnZlckRyaXZlckhvc3QgKlZSX0NBTExUWVBFIFZSU2Vy
dmVyRHJpdmVySG9zdCgpIHsgcmV0dXJuIE9wZW5WUkludGVybmFsX01vZHVsZVNlcnZlckRyaXZl
ckNvbnRleHQoKS5WUlNlcnZlckRyaXZlckhvc3QoKTsgfQorICAgICAgIGlubGluZSBJVlJXYXRj
aGRvZ0hvc3QgKlZSX0NBTExUWVBFIFZSV2F0Y2hkb2dIb3N0KCkgeyByZXR1cm4gT3BlblZSSW50
ZXJuYWxfTW9kdWxlU2VydmVyRHJpdmVyQ29udGV4dCgpLlZSV2F0Y2hkb2dIb3N0KCk7IH0KKyAg
ICAgICBpbmxpbmUgRHJpdmVySGFuZGxlX3QgVlJfQ0FMTFRZUEUgVlJEcml2ZXJIYW5kbGUoKSB7
IHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuVlJEcml2
ZXJIYW5kbGUoKTsgfQorICAgICAgIGlubGluZSB2b2lkIENPcGVuVlJEcml2ZXJDb250ZXh0OjpD
bGVhcigpCisgICAgICAgeworICAgICAgICAgICAgICBtX3BWUlNldHRpbmdzID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgbV9wVlJQcm9wZXJ0aWVzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
bV9wVlJTZXJ2ZXJEcml2ZXJIb3N0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgbV9wVlJEcml2
ZXJMb2cgPSBudWxscHRyOworICAgICAgICAgICAgICBtX3BWUldhdGNoZG9nSG9zdCA9IG51bGxw
dHI7CisgICAgICAgfQorCisgICAgICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVy
Q29udGV4dDo6SW5pdFNlcnZlcigpCisgICAgICAgeworICAgICAgICAgICAgICBDbGVhcigpOwor
ICAgICAgICAgICAgICBpZiAoICFWUlNlcnZlckRyaXZlckhvc3QoKQorICAgICAgICAgICAgICAg
ICAgICAgfHwgIVZSU2V0dGluZ3MoKQorICAgICAgICAgICAgICAgICAgICAgfHwgIVZSUHJvcGVy
dGllcygpCisgICAgICAgICAgICAgICAgICAgICB8fCAhVlJEcml2ZXJMb2coKSApCisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsK
KyAgICAgICAgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7CisgICAgICAgfQorCisgICAg
ICAgaW5saW5lIEVWUkluaXRFcnJvciBDT3BlblZSRHJpdmVyQ29udGV4dDo6SW5pdFdhdGNoZG9n
KCkKKyAgICAgICB7CisgICAgICAgICAgICAgIENsZWFyKCk7CisgICAgICAgICAgICAgIGlmICgg
IVZSV2F0Y2hkb2dIb3N0KCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUlNldHRpbmdzKCkK
KyAgICAgICAgICAgICAgICAgICAgIHx8ICFWUkRyaXZlckxvZygpICkKKyAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOworICAgICAg
ICAgICAgICByZXR1cm4gVlJJbml0RXJyb3JfTm9uZTsKKyAgICAgICB9CisKKyAgICAgICBpbmxp
bmUgRVZSSW5pdEVycm9yIEluaXRTZXJ2ZXJEcml2ZXJDb250ZXh0KCBJVlJEcml2ZXJDb250ZXh0
ICpwQ29udGV4dCApCisgICAgICAgeworICAgICAgICAgICAgICBWUkRyaXZlckNvbnRleHQoKSA9
IHBDb250ZXh0OworICAgICAgICAgICAgICByZXR1cm4gT3BlblZSSW50ZXJuYWxfTW9kdWxlU2Vy
dmVyRHJpdmVyQ29udGV4dCgpLkluaXRTZXJ2ZXIoKTsKKyAgICAgICB9CisKKyAgICAgICBpbmxp
bmUgRVZSSW5pdEVycm9yIEluaXRXYXRjaGRvZ0RyaXZlckNvbnRleHQoIElWUkRyaXZlckNvbnRl
eHQgKnBDb250ZXh0ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSRHJpdmVyQ29udGV4dCgp
ID0gcENvbnRleHQ7CisgICAgICAgICAgICAgIHJldHVybiBPcGVuVlJJbnRlcm5hbF9Nb2R1bGVT
ZXJ2ZXJEcml2ZXJDb250ZXh0KCkuSW5pdFdhdGNoZG9nKCk7CisgICAgICAgfQorCisgICAgICAg
aW5saW5lIHZvaWQgQ2xlYW51cERyaXZlckNvbnRleHQoKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgVlJEcml2ZXJDb250ZXh0KCkgPSBudWxscHRyOworICAgICAgICAgICAgICBPcGVuVlJJbnRl
cm5hbF9Nb2R1bGVTZXJ2ZXJEcml2ZXJDb250ZXh0KCkuQ2xlYXIoKTsKKyAgICAgICB9CisKKyAg
ICAgICAjZGVmaW5lIFZSX0lOSVRfU0VSVkVSX0RSSVZFUl9DT05URVhUKCBwQ29udGV4dCApIFwK
KyAgICAgICAgICAgICAgICAgICAgIHsgXAorICAgICAgICAgICAgICAgICAgICAgdnI6OkVWUklu
aXRFcnJvciBlRXJyb3IgPSB2cjo6SW5pdFNlcnZlckRyaXZlckNvbnRleHQoIHBDb250ZXh0ICk7
IFwKKyAgICAgICAgICAgICAgICAgICAgIGlmKCBlRXJyb3IgIT0gdnI6OlZSSW5pdEVycm9yX05v
bmUgKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVFcnJvcjsgXAorICAg
ICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgI2RlZmluZSBWUl9DTEVBTlVQX1NFUlZFUl9E
UklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNsZWFudXBEcml2ZXJDb250ZXh0
KCk7CisKKyAgICAgICAjZGVmaW5lIFZSX0lOSVRfV0FUQ0hET0dfRFJJVkVSX0NPTlRFWFQoIHBD
b250ZXh0ICkgXAorICAgICAgICAgICAgICAgICAgICAgeyBcCisgICAgICAgICAgICAgICAgICAg
ICB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciA9IHZyOjpJbml0V2F0Y2hkb2dEcml2ZXJDb250ZXh0
KCBwQ29udGV4dCApOyBcCisgICAgICAgICAgICAgICAgICAgICBpZiggZUVycm9yICE9IHZyOjpW
UkluaXRFcnJvcl9Ob25lICkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBl
RXJyb3I7IFwKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICNkZWZpbmUgVlJfQ0xF
QU5VUF9XQVRDSERPR19EUklWRVJfQ09OVEVYVCgpIFwKKyAgICAgICAgICAgICAgdnI6OkNsZWFu
dXBEcml2ZXJDb250ZXh0KCk7Cit9CisvLyBFbmQKKworI2VuZGlmIC8vIF9PUEVOVlJfRFJJVkVS
X0FQSQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9wYXRjaGVzL2Nt
YWtlLWJ1aWxkLnBhdGNoIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3BhdGNoZXMvY21ha2Ut
YnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg5NjNjMjBlYTczMGU5ZjY4Yjc5ZTNiOWQ2ZmFhOTM4
MzRkNTk1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9wYXRj
aGVzL2NtYWtlLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsOTQgQEAKK2RpZmYgLS1naXQgYS9DTWFr
ZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA5NGRlM2NlLi42ZGVjZWRkIDEwMDY0
NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMSwxNCAr
MSw4IEBACisgIyBTZXQgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbiBvZiBDTWFrZSBmb3Ig
dGhpcyBwcm9qZWN0LgorIGNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAyLjgpCisgCist
IyBTZXQgcHJvamVjdCBuYW1lLgorLXByb2plY3QoT3BlblZSU0RLKQorLQorICMgU2V0dXAgc29t
ZSBvcHRpb25zLgorIG9wdGlvbihCVUlMRF9TSEFSRUQgIkJ1aWxkcyB0aGUgbGlicmFyeSBhcyBz
aGFyZWQgbGlicmFyeSIgT0ZGKQorLW9wdGlvbihCVUlMRF9GUkFNRVdPUksgIkJ1aWxkcyB0aGUg
bGlicmFyeSBhcyBhbiBhcHBsZSBGcmFtZXdvcmsiIE9GRikKKy1vcHRpb24oQlVJTERfVU5JVkVS
U0FMICJCdWlsZHMgdGhlIHNoYXJlZCBvciBmcmFtZXdvcmsgYXMgYSB1bml2ZXJzYWwgKGZhdCwg
MzItICYgNjQtYml0KSBiaW5hcnkiIE9OKQorLW9wdGlvbihCVUlMRF9PU1hfSTM4NiAiQnVpbGRz
IHRoZSBzaGFyZWQgb3IgZnJhbWV3b3JrIGFzIGEgMzItYml0IGJpbmFyeSwgZXZlbiBvbiBhIDY0
LWJpdCBwbGF0Zm9ybSIgT0ZGKQorIG9wdGlvbihVU0VfTElCQ1hYICJVc2VzIGxpYmMrKyBpbnN0
ZWFkIG9mIGxpYnN0ZGMrKyIgT04pCisgb3B0aW9uKFVTRV9DVVNUT01fTElCQ1hYICJVc2VzIGEg
Y3VzdG9tIGxpYmMrKyIgT0ZGKQorIAorQEAgLTM3LDIxICszMSw5IEBAIGVsc2VpZihBUFBMRSkK
KyAgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIi4qRGFyd2luLioiIE9SIENNQUtFX1NZ
U1RFTV9OQU1FIE1BVENIRVMgIi4qTWFjT1MuKiIpCisgICAgIHNldChQTEFURk9STV9OQU1FICJv
c3giKQorICAgICBhZGRfZGVmaW5pdGlvbnMoLURPU1ggLURQT1NJWCkKKy0gICAgaWYoQlVJTERf
VU5JVkVSU0FMKQorLSAgICAgIHNldChDTUFLRV9PU1hfQVJDSElURUNUVVJFUyAiaTM4Njt4ODZf
NjQiKQorLSAgICBlbmRpZigpCistICAgIGlmKEJVSUxEX09TWF9JMzg2KQorLSAgICAgIHNldChQ
Uk9DRVNTT1JfQVJDSCAiMzIiKQorLSAgICAgIHNldChDTUFLRV9PU1hfQVJDSElURUNUVVJFUyAi
aTM4NiIpCistICAgIGVuZGlmKCkKKyAgIGVuZGlmKCkKKyBlbmRpZigpCisgCistIyBTZXQgb3V0
cHV0IGZvbGRlciBmb3Igc3RhdGljIGFuZCBzaGFyZWQgbGlicmFyaWVzCistc2V0KENNQUtFX0xJ
QlJBUllfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtFX1NPVVJDRV9ESVJ9L2Jpbi8ke1BMQVRGT1JN
X05BTUV9JHtQUk9DRVNTT1JfQVJDSH0pCistc2V0KENNQUtFX0FSQ0hJVkVfT1VUUFVUX0RJUkVD
VE9SWSAke0NNQUtFX1NPVVJDRV9ESVJ9L2Jpbi8ke1BMQVRGT1JNX05BTUV9JHtQUk9DRVNTT1Jf
QVJDSH0pCistc2V0KENNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtFX1NPVVJD
RV9ESVJ9L2Jpbi8ke1BMQVRGT1JNX05BTUV9JHtQUk9DRVNTT1JfQVJDSH0pCistCisgIyBFbmFi
bGUgc29tZSBwcm9wZXJ0aWVzLgorIGlmKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNDIE9SIENNQUtF
X0NfQ09NUElMRVJfSUQgTUFUQ0hFUyAiQ2xhbmciKQorICAgICAgICAjIEVuYWJsZSBjKysxMSBh
bmQgaGlkZSBzeW1ib2xzIHdoaWNoIHNob3VsZG4ndCBiZSB2aXNpYmxlCitkaWZmIC0tZ2l0IGEv
c3JjL0NNYWtlTGlzdHMudHh0IGIvc3JjL0NNYWtlTGlzdHMudHh0CitpbmRleCA1ODk1NGQ2Li44
YjUzN2FmIDEwMDY0NAorLS0tIGEvc3JjL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvQ01ha2VM
aXN0cy50eHQKK0BAIC0zLDYgKzMsOSBAQCBwcm9qZWN0KG9wZW52cl9hcGkpCisgCisgc2V0KCBM
SUJOQU1FICJvcGVudnJfYXBpIiApCisgCisrc2V0KEVYQ0VQVElPTl9GTEFHUyAiLWZleGNlcHRp
b25zIikKKythZGRfZGVmaW5pdGlvbnMoJHtFWENFUFRJT05fRkxBR1N9KQorKworICMgU2V0IHNv
bWUgcHJvcGVyaWVzIGZvciBzcGVjaWZpYyBmaWxlcy4KKyBpZihBUFBMRSkKKyAgIHNldChDTUFL
RV9NQUNPU1hfUlBBVEggMSkKK0BAIC0yMiw3ICsyNSw3IEBAIGVsc2VpZihXSU4zMikKKyBlbmRp
ZigpCisgCisgIyBBZGQgaW5jbHVkZSBmb2xkZXJzLgorLWluY2x1ZGVfZGlyZWN0b3JpZXMoJHtD
TUFLRV9TT1VSQ0VfRElSfS9zcmMgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzICR7Q01BS0Vf
U09VUkNFX0RJUn0vc3JjL3ZyY29tbW9uKQorK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtQUk9KRUNU
X1NPVVJDRV9ESVJ9Ly4uL3NyYyAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycyAke1BS
T0pFQ1RfU09VUkNFX0RJUn0vLi4vc3JjL3ZyY29tbW9uKQorIAorIGlmKFVTRV9DVVNUT01fTElC
Q1hYKQorICAgICAgICBsaW5rX2RpcmVjdG9yaWVzKAorQEAgLTY1LDIyICs2OCwyMiBAQCBlbHNl
aWYoQlVJTERfRlJBTUVXT1JLKQorICAgICAgICBzZXQoIExJQk5BTUUgIk9wZW5WUiIgKQorICAg
ICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKKyAgICAgICAgICAgICBTSEFSRUQgJHtTT1VS
Q0VfRklMRVN9CistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52
ci5oCistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9hcGku
Y3MKKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2FwaS5q
c29uCistICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9jYXBp
LmgKKy0gICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L2hlYWRlcnMvb3BlbnZyX2RyaXZl
ci5oCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZy
LmgKKysgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJf
YXBpLmNzCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3Bl
bnZyX2FwaS5qc29uCisrICAgICAgICAgICAgJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRl
cnMvb3BlbnZyX2NhcGkuaAorKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9o
ZWFkZXJzL29wZW52cl9kcml2ZXIuaAorICAgICAgICApCisgICAgICAgIHNldF90YXJnZXRfcHJv
cGVydGllcyhPcGVuVlIgUFJPUEVSVElFUworICAgICAgICAgICAgICAgRlJBTUVXT1JLIFRSVUUK
KyAgICAgICAgICAgICAgIEZSQU1FV09SS19WRVJTSU9OIEEKKyAgICAgICAgICAgICAgIE1BQ09T
WF9GUkFNRVdPUktfSURFTlRJRklFUiBjb20udmFsdmVzb2Z0d2FyZS5PcGVuVlIuZnJhbWV3b3Jr
CistICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QgJHtDTUFLRV9TT1VS
Q0VfRElSfS9zcmMvSW5mby5wbGlzdAorKyAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19J
TkZPX1BMSVNUICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9zcmMvSW5mby5wbGlzdAorICAgICAg
ICAgICAgICAgIyAiY3VycmVudCB2ZXJzaW9uIiBpbiBzZW1hbnRpYyBmb3JtYXQgaW4gTWFjaC1P
IGJpbmFyeSBmaWxlCisgICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42CisgICAgICAgICAgICAg
ICAjICJjb21wYXRpYmlsaXR5IHZlcnNpb24iIGluIHNlbWFudGljIGZvcm1hdCBpbiBNYWNoLU8g
YmluYXJ5IGZpbGUKKyAgICAgICAgICAgICAgIFNPVkVSU0lPTiAxLjAuMAorLSAgICAgICAgICAg
ICAgUFVCTElDX0hFQURFUiAiJHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52ci5oOyR7
Q01BS0VfU09VUkNFX0RJUn0vaGVhZGVycy9vcGVudnJfYXBpLmNzOyR7Q01BS0VfU09VUkNFX0RJ
Un0vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29w
ZW52cl9jYXBpLmg7JHtDTUFLRV9TT1VSQ0VfRElSfS9oZWFkZXJzL29wZW52cl9kcml2ZXIuaCIK
KysgICAgICAgICAgICAgIFBVQkxJQ19IRUFERVIgIiR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9o
ZWFkZXJzL29wZW52ci5oOyR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9h
cGkuY3M7JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5qc29uOyR7
UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmg7JHtQUk9KRUNUX1NP
VVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2RyaXZlci5oIgorICAgICAgICAgICAgICAgTElO
S0VSX0xBTkdVQUdFIENYWAorICAgICAgICApCisgZWxzZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBlNjg5OGY5ZTNiZmFkMzZk
NzhlOTNmODZjMDM1OWEwNDYwM2UwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvb3BlbnZyL3NyYy9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDk5IEBACisjIFByb2plY3Qg
bmFtZS4KK3Byb2plY3Qob3BlbnZyX2FwaSkKKworc2V0KCBMSUJOQU1FICJvcGVudnJfYXBpIiAp
CisKK3NldChFWENFUFRJT05fRkxBR1MgIi1mZXhjZXB0aW9ucyIpCithZGRfZGVmaW5pdGlvbnMo
JHtFWENFUFRJT05fRkxBR1N9KQorCisjIFNldCBzb21lIHByb3BlcmllcyBmb3Igc3BlY2lmaWMg
ZmlsZXMuCitpZihBUFBMRSkKKyAgc2V0KENNQUtFX01BQ09TWF9SUEFUSCAxKQorICBpZihDTUFL
RV9TWVNURU1fTkFNRSBNQVRDSEVTICJEYXJ3aW4iKQorICAgIHNldF9zb3VyY2VfZmlsZXNfcHJv
cGVydGllcyh2cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcCB2cmNvbW1vbi92cnBhdGhyZWdp
c3RyeV9wdWJsaWMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiLXggb2JqZWN0aXZlLWMr
KyIpCisgIGVuZGlmKCkKKyAgaWYoQlVJTERfU0hBUkVEIE9SIEJVSUxEX0ZSQU1FV09SSykKKyAg
ICBmaW5kX2xpYnJhcnkoRk9VTkRBVElPTl9GUkFNRVdPUksgRm91bmRhdGlvbikKKyAgICBtYXJr
X2FzX2FkdmFuY2VkKEZPVU5EQVRJT05fRlJBTUVXT1JLKQorICAgIHNldChFWFRSQV9MSUJTICR7
RVhUUkFfTElCU30gJHtGT1VOREFUSU9OX0ZSQU1FV09SS30pCisgIGVuZGlmKEJVSUxEX1NIQVJF
RCBPUiBCVUlMRF9GUkFNRVdPUkspCitlbHNlaWYoV0lOMzIpCisgIGlmKENNQUtFX1NJWkVPRl9W
T0lEX1AgRVFVQUwgOCkKKyAgICBhZGRfZGVmaW5pdGlvbnMoIC1EV0lONjQgKQorICAgIHNldCgg
TElCTkFNRSAib3BlbnZyX2FwaTY0IiApCisgIGVuZGlmKCkKK2VuZGlmKCkKKworIyBBZGQgaW5j
bHVkZSBmb2xkZXJzLgoraW5jbHVkZV9kaXJlY3Rvcmllcygke1BST0pFQ1RfU09VUkNFX0RJUn0v
Li4vc3JjICR7UFJPSkVDVF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9zcmMvdnJjb21tb24pCisKK2lmKFVTRV9DVVNUT01fTElCQ1hYKQorICAgICAgIGxp
bmtfZGlyZWN0b3JpZXMoCisgICAgICAgICAgICAgICR7TElCQ1hYX0xJQl9ESVJ9CisgICAgICAg
KQorZW5kaWYoKQorCisjIFNldCB0aGUgc291cmNlIGdyb3VwIGFuZCBmaWxlcy4KK3NldChDT1JF
X0ZJTEVTCisgICAgICAgb3BlbnZyX2FwaV9wdWJsaWMuY3BwCisgICAgICAganNvbmNwcC5jcHAK
KykKK3NldChWUkNPTU1PTl9GSUxFUworICAgICAgIHZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5j
cHAKKyAgICAgICB2cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuY3BwCisgICAgICAgdnJjb21t
b24vcGF0aHRvb2xzX3B1YmxpYy5jcHAKKyAgICAgICB2cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19w
dWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vaG1kZXJyb3JzX3B1YmxpYy5jcHAKKyAgICAgICB2
cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMuY3BwCisgICAgICAgdnJjb21tb24vc3RydG9v
bHNfcHVibGljLmNwcAorKQorCitzZXQoU09VUkNFX0ZJTEVTCisgICAgICAgJHtDT1JFX0ZJTEVT
fQorICAgICAgICR7VlJDT01NT05fRklMRVN9CispCisKK3NvdXJjZV9ncm91cCgiU3JjIiBGSUxF
UworICAgICAgICR7Q09SRV9GSUxFU30KKykKKworc291cmNlX2dyb3VwKCJWUkNvbW1vbiIgRklM
RVMKKyAgICAgICAke1ZSQ09NTU9OX0ZJTEVTfQorKQorCisjIEJ1aWxkIHRoZSBsaWJyYXJ5Lgor
aWYoQlVJTERfU0hBUkVEKQorICAgICAgIGFkZF9saWJyYXJ5KCR7TElCTkFNRX0gU0hBUkVEICR7
U09VUkNFX0ZJTEVTfSkKK2Vsc2VpZihCVUlMRF9GUkFNRVdPUkspCisgICAgICAgc2V0KCBMSUJO
QU1FICJPcGVuVlIiICkKKyAgICAgICBhZGRfbGlicmFyeSggJHtMSUJOQU1FfSAKKyAgICAgICAg
ICAgIFNIQVJFRCAke1NPVVJDRV9GSUxFU30KKyAgICAgICAgICAgICR7UFJPSkVDVF9TT1VSQ0Vf
RElSfS8uLi9oZWFkZXJzL29wZW52ci5oCisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNFX0RJ
Un0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmNzCisgICAgICAgICAgICAke1BST0pFQ1RfU09VUkNF
X0RJUn0vLi4vaGVhZGVycy9vcGVudnJfYXBpLmpzb24KKyAgICAgICAgICAgICR7UFJPSkVDVF9T
T1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9jYXBpLmgKKyAgICAgICAgICAgICR7UFJPSkVD
VF9TT1VSQ0VfRElSfS8uLi9oZWFkZXJzL29wZW52cl9kcml2ZXIuaAorICAgICAgICkKKyAgICAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoT3BlblZSIFBST1BFUlRJRVMKKyAgICAgICAgICAgICAg
RlJBTUVXT1JLIFRSVUUKKyAgICAgICAgICAgICAgRlJBTUVXT1JLX1ZFUlNJT04gQQorICAgICAg
ICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lERU5USUZJRVIgY29tLnZhbHZlc29mdHdhcmUuT3Bl
blZSLmZyYW1ld29yaworICAgICAgICAgICAgICBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1Qg
JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL3NyYy9JbmZvLnBsaXN0CisgICAgICAgICAgICAgICMg
ImN1cnJlbnQgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmls
ZQorICAgICAgICAgICAgICBWRVJTSU9OIDEuMC42CisgICAgICAgICAgICAgICMgImNvbXBhdGli
aWxpdHkgdmVyc2lvbiIgaW4gc2VtYW50aWMgZm9ybWF0IGluIE1hY2gtTyBiaW5hcnkgZmlsZQor
ICAgICAgICAgICAgICBTT1ZFUlNJT04gMS4wLjAKKyAgICAgICAgICAgICAgUFVCTElDX0hFQURF
UiAiJHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyLmg7JHtQUk9KRUNUX1NP
VVJDRV9ESVJ9Ly4uL2hlYWRlcnMvb3BlbnZyX2FwaS5jczske1BST0pFQ1RfU09VUkNFX0RJUn0v
Li4vaGVhZGVycy9vcGVudnJfYXBpLmpzb247JHtQUk9KRUNUX1NPVVJDRV9ESVJ9Ly4uL2hlYWRl
cnMvb3BlbnZyX2NhcGkuaDske1BST0pFQ1RfU09VUkNFX0RJUn0vLi4vaGVhZGVycy9vcGVudnJf
ZHJpdmVyLmgiCisgICAgICAgICAgICAgIExJTktFUl9MQU5HVUFHRSBDWFgKKyAgICAgICApCitl
bHNlKCkKKyAgICAgICBhZGRfbGlicmFyeSgke0xJQk5BTUV9IFNUQVRJQyAke1NPVVJDRV9GSUxF
U30pCitlbmRpZigpCisKK2lmKFVTRV9DVVNUT01fTElCQ1hYKQorICAgICAgIHNldChFWFRSQV9M
SUJTICR7RVhUUkFfTElCU30gYysrIGMrK2FiaSkKK2VuZGlmKCkKKwordGFyZ2V0X2xpbmtfbGli
cmFyaWVzKCR7TElCTkFNRX0gJHtFWFRSQV9MSUJTfSkKKworaW5zdGFsbChUQVJHRVRTICR7TElC
TkFNRX0gREVTVElOQVRJT04gbGliKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9JbmZvLnBsaXN0IGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9JbmZvLnBs
aXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE1ZTU2OTgwODdmMDkzOTE0NThiYjE5N2FkOGQ4MTdlZWRlYjgyNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL0luZm8ucGxp
c3QKQEAgLTAsMCArMSwxOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi
Pz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIg
Imh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0
IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKyAgICAgICA8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwv
a2V5PgorICAgICAgIDxzdHJpbmc+Y29tLnZhbHZlc29mdHdhcmUuT3BlblZSLmZyYW1ld29yazwv
c3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4K
KyAgICAgICA8c3RyaW5nPjYuMDwvc3RyaW5nPgorICAgICAgIDxrZXk+Q0ZCdW5kbGVOYW1lPC9r
ZXk+CisgICAgICAgPHN0cmluZz5PcGVuVlI8L3N0cmluZz4KKyAgICAgICA8a2V5PkNGQnVuZGxl
UGFja2FnZVR5cGU8L2tleT4KKyAgICAgICA8c3RyaW5nPkZNV0s8L3N0cmluZz4KKyAgICAgICA8
a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisgICAgICAgPHN0cmluZz4xLjA8
L3N0cmluZz4KKyAgICAgICA8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorICAgICAgIDxzdHJp
bmc+MS4wPC9zdHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvb3BlbnZyL3NyYy9SRUFETUUgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MjZjNThkYTc5ZmI5NGUwMmRjZmVjZDI2YTVlNTUyZDlhYTU4
YWMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9SRUFE
TUUKQEAgLTAsMCArMSwzOSBAQAorVGhpcyBpcyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBPcGVu
VlIgQVBJIGNsaWVudCBiaW5kaW5nIGxpYnJhcnkgd2hpY2ggY29ubmVjdHMKK09wZW5WUiBhcHBs
aWNhdGlvbnMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUg
dmVyc2lvbgorb2YgdGhlIE9wZW5WUiBpbnRlcmZhY2UgdGhleSB3ZXJlIGNvbXBpbGVkIGFnYWlu
c3QuCisKK1RoZSBjbGllbnQgYmluZGluZyBsaWJyYXJ5IC0gb3BlbnZyX2FwaS5kbGwgb24gV2lu
ZG93cywgb3BlbnZyX2FwaS5zbyBvbgorTGludXgsIGFuZCBvcGVudnJfYXBpLmR5bGliIG9yIE9w
ZW5WUi5mcmFtZXdvcmsgb24gbWFjT1MgLSBrbm93cyBob3cgdG8gZmluZAorYW5kIHJlYWQgdGhl
IFN0ZWFtVlIgcnVudGltZSBpbnN0YWxsYXRpb24gaW5mb3JtYXRpb24gd2hpY2ggYWxsb3dzIGl0
IHRvCitmaW5kIGFuZCBkeW5hbWljYWxseSBjb25uZWN0IHRvIHRoZSBpbnN0YWxsZWQgcnVudGlt
ZS4gSW4gY29tYmluYXRpb24gd2l0aCB0aGUKK2ludGVyZmFjZSB2ZXJzaW9uIGlkZW50aWZpZXJz
IGZyb20gL2luY2x1ZGUvb3BlbnZyLmggd2hpY2ggYXJlIGJha2VkCitpbnRvIGFwcGxpY2F0aW9u
cyBhdCB0aGUgdGltZSB0aGV5IGFyZSBidWlsdCwgdGhlIE9wZW5WUiBBUEkgY2xpZW50CitiaW5k
aW5nIGxpYnJhcnkgY2FwdHVyZXMgYW5kIGNvbnZleXMgdG8gdGhlIFN0ZWFtVlIgcnVudGltZSB0
aGUgdmVyc2lvbgorb2YgdGhlIE9wZW5WUiBBUEkgaW50ZXJmYWNlIGJlaGF2aW9yIHRoYXQgdGhl
IGFwcGxpY2F0aW9uIGV4cGVjdHMuCisKK0FwcGxpY2F0aW9ucyBjYXJyeSB3aXRoIHRoZW0gYSBw
cml2YXRlL2xvY2FsIGNvcHkgb2YgdGhlIGNsaWVudCBiaW5kaW5nCitsaWJyYXJ5IHdoZW4gdGhl
eSBzaGlwLCBhbmQgdGhleSBzaG91bGQgaW5zdGFsbCBpdCBsb2NhbGx5IHRvIHRoZWlyCithcHBs
aWNhdGlvbi4gIEFwcGxpY2F0aW9ucyBzaG91bGQgbm90IGluc3RhbGwgdGhlIGNsaWVudCBiaW5k
aW5nIGxpYnJhcnkKK2dsb2JhbGx5IG9yIGF0dGVtcHQgdG8gbGluayB0byBhIGdsb2JhbGx5IGlu
c3RhbGxlZCBjbGllbnQgYmluZGluZyBsaWJyYXJ5LgorRG9pbmcgc28gbmVnYXRlcyBhdCBsZWFz
dCBwYXJ0IG9mIHRoZSBhYmlsaXR5IGZvciB0aGUgY2xpZW50IGJpbmRpbmcgbGlicmFyeQordG8g
YWNjdXJhdGVseSByZWZsZWN0IHRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuVlIgQVBJIHRoYXQgdGhl
IGFwcGxpY2F0aW9uCit3YXMgYnVpbHQgYWdhaW5zdCwgYW5kIHNvIGhpbmRlcnMgY29tcGF0aWJp
bGl0eSBzdXBwb3J0IGluIHRoZSBmYWNlIG9mCitBUEkgY2hhbmdlcy4KKworTW9zdCBhcHBsaWNh
dGlvbnMgc2hvdWxkIHNpbXBseSBsaW5rIHRvIGFuZCByZWRpc3RyaWJ1dGUgd2l0aCB0aGVpciBh
cHBsaWNhdGlvbgordGhlIHByZS1idWlsdCBjbGllbnQgYmluZGluZyBsaWJyYXJ5IGZvdW5kIGlu
IHRoZSAvYmluIGRpcmVjdG9yeSBvZiB0aGlzCityZXBvc2l0b3J5LiBTb21lIHNtYWxsIG51bWJl
ciBvZiBhcHBsaWNhdGlvbnMgd2hpY2ggaGF2ZSBzcGVjaWZpYyByZXF1aXJlbWVudHMKK2Fyb3Vu
ZCByZWRpc3RyaWJ1dGluZyBvbmx5IGJpbmFyaWVzIHRoZXkgYnVpbGQgdGhlbXNlbHZlcyBzaG91
bGQgYnVpbGQKK3RoZSBjbGllbnQgbGlicmFyeSBmcm9tIHRoaXMgc291cmNlIGFuZCBlaXRoZXIg
c3RhdGljYWxseSBsaW5rIGl0IGludG8KK3RoZWlyIGFwcGxpY2F0aW9uIG9yIHJlZGlzdHJpYnV0
ZSB0aGUgYmluYXJ5IHRoZXkgYnVpbGQuCisKK1RoaXMgaXMgYSBjbWFrZSBwcm9qZWN0LCB0byBi
dWlsZCBpdCB1c2UgdGhlIHZlcnNpb24gb2YgY21ha2UgYXBwcm9wcmlhdGUKK2ZvciB5b3VyIHBs
YXRmb3JtLiBGb3IgZXhhbXBsZSwgdG8gYnVpbGQgb24gYSBQT1NJWCBzeXN0ZW0gc2ltcGx5IHBl
cmZvcm0KKworICBjZCBzcmM7IG1rZGlyIF9idWlsZDsgY2QgX2J1aWxkOyBjbWFrZSAuLjsgbWFr
ZQorCithbmQgeW91IHdpbGwgZW5kIHVwIHdpdGggdGhlIHN0YXRpYyBsaWJyYXJ5IC9zcmMvYmlu
LzxhcmNoPi9saWJvcGVudnJfYXBpLmEKKworVG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeSwgcGFz
cyAtREJVSUxEX1NIQVJFRD0xIHRvIGNtYWtlLgorVG8gYnVpbGQgYXMgYSBmcmFtZXdvcmsgb24g
YXBwbGUgcGxhdGZvcm1zLCBwYXNzIC1EQlVJTERfRlJBTUVXT1JLPTEgdG8gY21ha2UuCitUbyBz
ZWUgYSBjb21wbGV0ZSBsaXN0IG9mIGNvbmZpZ3VyYWJsZSBidWlsZCBvcHRpb25zLCB1c2UgYGNt
YWtlIC1MQUhgCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNs
aWVudGNvcmUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvaXZyY2xpZW50Y29yZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkxZmUzNjBlZTRhZDUyYzg3OTkwYzI1MTc0NmYwMWNiODliYmYwMDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL2l2cmNsaWVudGNv
cmUuaApAQCAtMCwwICsxLDM1IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9y
YXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgdnIKK3sKKwor
Y2xhc3MgSVZSQ2xpZW50Q29yZQoreworcHVibGljOgorICAgICAgIC8qKiBJbml0aWFsaXplcyB0
aGUgc3lzdGVtICovCisgICAgICAgdmlydHVhbCBFVlJJbml0RXJyb3IgSW5pdCggdnI6OkVWUkFw
cGxpY2F0aW9uVHlwZSBlQXBwbGljYXRpb25UeXBlLCBjb25zdCBjaGFyICpwU3RhcnR1cEluZm8g
KSA9IDA7CisKKyAgICAgICAvKiogY2xlYW5zIHVwIGV2ZXJ5dGhpbmcgaW4gdnJjbGllbnQuZGxs
IGFuZCBwcmVwYXJlcyB0aGUgRExMIHRvIGJlIHVubG9hZGVkICovCisgICAgICAgdmlydHVhbCB2
b2lkIENsZWFudXAoKSA9IDA7CisKKyAgICAgICAvKiogY2hlY2tzIHRvIHNlZSBpZiB0aGUgc3Bl
Y2lmaWVkIGludGVyZmFjZS92ZXJzaW9uIGlzIHN1cHBvcnRlZCBpbiB0aGlzIHZyY2xpZW50LmRs
bCAqLworICAgICAgIHZpcnR1YWwgRVZSSW5pdEVycm9yIElzSW50ZXJmYWNlVmVyc2lvblZhbGlk
KCBjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uICkgPSAwOworCisgICAgICAgLyoqIFJl
dHJpZXZlcyBhbnkgaW50ZXJmYWNlIGZyb20gdnJjbGllbnQuZGxsICovCisgICAgICAgdmlydHVh
bCB2b2lkICpHZXRHZW5lcmljSW50ZXJmYWNlKCBjb25zdCBjaGFyICpwY2hOYW1lQW5kVmVyc2lv
biwgRVZSSW5pdEVycm9yICpwZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMgdHJ1
ZSBpZiBhbnkgZHJpdmVyIGhhcyBhbiBITUQgYXR0YWNoZWQuIENhbiBiZSBjYWxsZWQgb3V0c2lk
ZSBvZiBJbml0L0NsZWFudXAgKi8KKyAgICAgICB2aXJ0dWFsIGJvb2wgQklzSG1kUHJlc2VudCgp
ID0gMDsKKworICAgICAgIC8qKiBSZXR1cm5zIGFuIEVuZ2xpc2ggZXJyb3Igc3RyaW5nIGZyb20g
aW5zaWRlIHZyY2xpZW50LmRsbCB3aGljaCBtaWdodCBiZSBuZXdlciB0aGFuIHRoZSBBUEkgRExM
ICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJy
b3IoIHZyOjpFVlJJbml0RXJyb3IgZUVycm9yICkgPSAwOworCisgICAgICAgLyoqIFJldHVybnMg
YW4gZXJyb3Igc3ltYm9sIGZyb20gaW5zaWRlIHZyY2xpZW50LmRsbCB3aGljaCBtaWdodCBiZSBu
ZXdlciB0aGFuIHRoZSBBUEkgRExMICovCisgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpHZXRJ
REZvclZSSW5pdEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApID0gMDsKK307CisKK3N0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgSVZSQ2xpZW50Q29yZV9WZXJzaW9uID0gIklWUkNsaWVu
dENvcmVfMDAzIjsKKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL2pzb24vanNvbi1mb3J3YXJkcy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy9q
c29uL2pzb24tZm9yd2FyZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBjN2RlOTc2NGI0MjE4MmIwMTdmNzBl
ZTAwOTMxYmY2ZTQ5MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uL2pzb24tZm9yd2FyZHMuaApAQCAtMCwwICsxLDI4NCBAQAorLy8vIEpzb24t
Y3BwIGFtYWxnYXRlZCBmb3J3YXJkIGhlYWRlciAoaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0LykuCisvLy8gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICJqc29u
L2pzb24tZm9yd2FyZHMuaCIKKy8vLyBUaGlzIGhlYWRlciBwcm92aWRlcyBmb3J3YXJkIGRlY2xh
cmF0aW9uIGZvciBhbGwgSnNvbkNwcCB0eXBlcy4KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVn
aW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisv
KgorVGhlIEpzb25DcHAgbGlicmFyeSdzIHNvdXJjZSBjb2RlLCBpbmNsdWRpbmcgYWNjb21wYW55
aW5nIGRvY3VtZW50YXRpb24sIAordGVzdHMgYW5kIGRlbW9uc3RyYXRpb24gYXBwbGljYXRpb25z
LCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIGZvbGxvd2luZworY29uZGl0aW9ucy4uLgorCitUaGUg
YXV0aG9yIChCYXB0aXN0ZSBMZXBpbGxldXIpIGV4cGxpY2l0bHkgZGlzY2xhaW1zIGNvcHlyaWdo
dCBpbiBhbGwgCitqdXJpc2RpY3Rpb25zIHdoaWNoIHJlY29nbml6ZSBzdWNoIGEgZGlzY2xhaW1l
ci4gSW4gc3VjaCBqdXJpc2RpY3Rpb25zLCAKK3RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgaW50
byB0aGUgUHVibGljIERvbWFpbi4KKworSW4ganVyaXNkaWN0aW9ucyB3aGljaCBkbyBub3QgcmVj
b2duaXplIFB1YmxpYyBEb21haW4gcHJvcGVydHkgKGUuZy4gR2VybWFueSBhcyBvZgorMjAxMCks
IHRoaXMgc29mdHdhcmUgaXMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgYnkgQmFwdGlzdGUgTGVw
aWxsZXVyLCBhbmQgaXMKK3JlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vu
c2UgKHNlZSBiZWxvdykuCisKK0luIGp1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2duaXplIFB1Ymxp
YyBEb21haW4gcHJvcGVydHksIHRoZSB1c2VyIG9mIHRoaXMgCitzb2Z0d2FyZSBtYXkgY2hvb3Nl
IHRvIGFjY2VwdCBpdCBlaXRoZXIgYXMgMSkgUHVibGljIERvbWFpbiwgMikgdW5kZXIgdGhlIAor
Y29uZGl0aW9ucyBvZiB0aGUgTUlUIExpY2Vuc2UgKHNlZSBiZWxvdyksIG9yIDMpIHVuZGVyIHRo
ZSB0ZXJtcyBvZiBkdWFsIAorUHVibGljIERvbWFpbi9NSVQgTGljZW5zZSBjb25kaXRpb25zIGRl
c2NyaWJlZCBoZXJlLCBhcyB0aGV5IGNob29zZS4KKworVGhlIE1JVCBMaWNlbnNlIGlzIGFib3V0
IGFzIGNsb3NlIHRvIFB1YmxpYyBEb21haW4gYXMgYSBsaWNlbnNlIGNhbiBnZXQsIGFuZCBpcwor
ZGVzY3JpYmVkIGluIGNsZWFyLCBjb25jaXNlIHRlcm1zIGF0OgorCisgICBodHRwOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL01JVF9MaWNlbnNlCisgICAKK1RoZSBmdWxsIHRleHQgb2YgdGhlIE1J
VCBMaWNlbnNlIGZvbGxvd3M6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IChjKSAyMDA3
LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCitvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorcmVzdHJpY3Rpb24sIGluY2x1
ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCittb2RpZnks
IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMKK29mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv
ZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UworQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOCitBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sIE9VVCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyhFTkQgTElDRU5TRSBURVhUKQorCitUaGUgTUlUIGxpY2Vuc2UgaXMgY29tcGF0aWJsZSB3
aXRoIGJvdGggdGhlIEdQTCBhbmQgY29tbWVyY2lhbAorc29mdHdhcmUsIGFmZm9yZGluZyBvbmUg
YWxsIG9mIHRoZSByaWdodHMgb2YgUHVibGljIERvbWFpbiB3aXRoIHRoZQorbWlub3IgbnVpc2Fu
Y2Ugb2YgYmVpbmcgcmVxdWlyZWQgdG8ga2VlcCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZQor
YW5kIGxpY2Vuc2UgdGV4dCBpbiB0aGUgc291cmNlIGNvZGUuIE5vdGUgYWxzbyB0aGF0IGJ5IGFj
Y2VwdGluZyB0aGUKK1B1YmxpYyBEb21haW4gImxpY2Vuc2UiIHlvdSBjYW4gcmUtbGljZW5zZSB5
b3VyIGNvcHkgdXNpbmcgd2hhdGV2ZXIKK2xpY2Vuc2UgeW91IGxpa2UuCisKKyovCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworCisKKworCisjaWZuZGVmIEpTT05fRk9SV0FSRF9BTUFMR0FURURfSF9JTkNM
VURFRAorIyBkZWZpbmUgSlNPTl9GT1JXQVJEX0FNQUxHQVRFRF9IX0lOQ0xVREVECisvLy8gSWYg
ZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRlZAorLy8v
IHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorI2RlZmluZSBKU09OX0lTX0FN
QUxHQU1BVElPTgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBpbmNsdWRlL2pzb24vY29uZmlnLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29w
eXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVy
IE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25p
emVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lm
bmRlZiBKU09OX0NPTkZJR19IX0lOQ0xVREVECisjZGVmaW5lIEpTT05fQ09ORklHX0hfSU5DTFVE
RUQKKworLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbGlicmFyeSBpcyBlbWJl
ZGRlZCBpbiBDcHBUTCBsaWJyYXJ5LgorLy8jIGRlZmluZSBKU09OX0lOX0NQUFRMIDEKKworLy8v
IElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGpzb24gbWF5IGxldmVyYWdlIENwcFRMIGxpYnJh
cnkKKy8vIyAgZGVmaW5lIEpTT05fVVNFX0NQUFRMIDEKKy8vLyBJZiBkZWZpbmVkLCBpbmRpY2F0
ZXMgdGhhdCBjcHB0bCB2ZWN0b3IgYmFzZWQgbWFwIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YK
Ky8vLyBzdGQ6Om1hcAorLy8vIGFzIFZhbHVlIGNvbnRhaW5lci4KKy8vIyAgZGVmaW5lIEpTT05f
VVNFX0NQUFRMX1NNQUxMTUFQIDEKKworLy8gSWYgbm9uLXplcm8sIHRoZSBsaWJyYXJ5IHVzZXMg
ZXhjZXB0aW9ucyB0byByZXBvcnQgYmFkIGlucHV0IGluc3RlYWQgb2YgQworLy8gYXNzZXJ0aW9u
IG1hY3Jvcy4gVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGV4Y2VwdGlvbnMuCisjaWZuZGVmIEpTT05f
VVNFX0VYQ0VQVElPTgorI2RlZmluZSBKU09OX1VTRV9FWENFUFRJT04gMQorI2VuZGlmCisKKy8v
LyBJZiBkZWZpbmVkLCBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlIGZpbGUgaXMgYW1hbGdhdGVk
CisvLy8gdG8gcHJldmVudCBwcml2YXRlIGhlYWRlciBpbmNsdXNpb24uCisvLy8gUmVtYXJrczog
aXQgaXMgYXV0b21hdGljYWxseSBkZWZpbmVkIGluIHRoZSBnZW5lcmF0ZWQgYW1hbGdhdGVkIGhl
YWRlci4KKy8vICNkZWZpbmUgSlNPTl9JU19BTUFMR0FNQVRJT04KKworI2lmZGVmIEpTT05fSU5f
Q1BQVEwKKyNpbmNsdWRlIDxjcHB0bC9jb25maWcuaD4KKyNpZm5kZWYgSlNPTl9VU0VfQ1BQVEwK
KyNkZWZpbmUgSlNPTl9VU0VfQ1BQVEwgMQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEpTT05f
SU5fQ1BQVEwKKyNkZWZpbmUgSlNPTl9BUEkgQ1BQVExfQVBJCisjZWxpZiBkZWZpbmVkKEpTT05f
RExMX0JVSUxEKQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEpTT05fQVBJIF9fZGVj
bHNwZWMoZGxsZXhwb3J0KQorI2RlZmluZSBKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HCisjZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNlbGlmIGRlZmluZWQoSlNP
Tl9ETEwpCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3Bl
YyhkbGxpbXBvcnQpCisjZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5J
TkcKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VuZGlmIC8vIGlmZGVmIEpTT05f
SU5fQ1BQVEwKKyNpZiAhZGVmaW5lZChKU09OX0FQSSkKKyNkZWZpbmUgSlNPTl9BUEkKKyNlbmRp
ZgorCisvLyBJZiBKU09OX05PX0lOVDY0IGlzIGRlZmluZWQsIHRoZW4gSnNvbiBvbmx5IHN1cHBv
cnQgQysrICJpbnQiIHR5cGUgZm9yCisvLyBpbnRlZ2VyCisvLyBTdG9yYWdlcywgYW5kIDY0IGJp
dHMgaW50ZWdlciBzdXBwb3J0IGlzIGRpc2FibGVkLgorLy8gI2RlZmluZSBKU09OX05PX0lOVDY0
IDEKKworI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1TVkMKKyMgIGlmIF9NU0NfVkVSIDw9IDEy
MDAgLy8gTVNWQyA2CisgICAgLy8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNiBvbmx5IHN1cHBv
cnQgY29udmVyc2lvbiBmcm9tIF9faW50NjQgdG8gZG91YmxlCisgICAgLy8gKG5vIGNvbnZlcnNp
b24gZnJvbSB1bnNpZ25lZCBfX2ludDY0KS4KKyMgICAgZGVmaW5lIEpTT05fVVNFX0lOVDY0X0RP
VUJMRV9DT05WRVJTSU9OIDEKKyAgICAvLyBEaXNhYmxlIHdhcm5pbmcgNDc4NiBmb3IgVlM2IGNh
dXNlZCBieSBTVEwgKGlkZW50aWZpZXIgd2FzIHRydW5jYXRlZCB0byAnMjU1JworICAgIC8vIGNo
YXJhY3RlcnMgaW4gdGhlIGRlYnVnIGluZm9ybWF0aW9uKQorICAgIC8vIEFsbCBwcm9qZWN0cyBJ
J3ZlIGV2ZXIgc2VlbiB3aXRoIFZTNiB3ZXJlIHVzaW5nIHRoaXMgZ2xvYmFsbHkgKG5vdCBib3Ro
ZXJpbmcKKyAgICAvLyB3aXRoIHByYWdtYSBwdXNoL3BvcCkuCisjICAgIHByYWdtYSB3YXJuaW5n
KGRpc2FibGUgOiA0Nzg2KQorIyAgZW5kaWYgLy8gTVNWQyA2CisKKyMgIGlmIF9NU0NfVkVSID49
IDE1MDAgLy8gTVNWQyAyMDA4CisgICAgLy8vIEluZGljYXRlcyB0aGF0IHRoZSBmb2xsb3dpbmcg
ZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRCht
ZXNzYWdlKSBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQobWVzc2FnZSkpCisjICBlbmRpZgorCisjZW5k
aWYgLy8gZGVmaW5lZChfTVNDX1ZFUikKKworCisjaWZuZGVmIEpTT05fSEFTX1JWQUxVRV9SRUZF
UkVOQ0VTCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNjAwIC8vIE1T
VkMgPj0gMjAxMAorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYg
Ly8gTVNWQyA+PSAyMDEwCisKKyNpZmRlZiBfX2NsYW5nX18KKyNpZiBfX2hhc19mZWF0dXJlKGN4
eF9ydmFsdWVfcmVmZXJlbmNlcykKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMg
MQorI2VuZGlmICAvLyBoYXNfZmVhdHVyZQorCisjZWxpZiBkZWZpbmVkIF9fR05VQ19fIC8vIG5v
dCBjbGFuZyAoZ2NjIGNvbWVzIGxhdGVyIHNpbmNlIGNsYW5nIGVtdWxhdGVzIGdjYykKKyNpZiBk
ZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKSB8fCAoX19jcGx1c3BsdXMgPj0gMjAx
MTAzTCkKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMgMQorI2VuZGlmICAvLyBH
WFhfRVhQRVJJTUVOVEFMCisKKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2Vu
ZGlmIC8vIG5vdCBkZWZpbmVkIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisKKyNpZm5kZWYg
SlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgSlNPTl9IQVNfUlZBTFVFX1JFRkVS
RU5DRVMgMAorI2VuZGlmCisKKyNpZmRlZiBfX2NsYW5nX18KKyNlbGlmIGRlZmluZWQgX19HTlVD
X18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMgbGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2Nj
KQorIyAgaWYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1Jf
XyA+PSA1KSkKKyMgICAgZGVmaW5lIEpTT05DUFBfREVQUkVDQVRFRChtZXNzYWdlKSAgX19hdHRy
aWJ1dGVfXyAoKGRlcHJlY2F0ZWQobWVzc2FnZSkpKQorIyAgZWxpZiAoX19HTlVDX18gPiAzIHx8
IChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDEpKQorIyAgICBkZWZpbmUgSlNP
TkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXykp
CisjICBlbmRpZiAgLy8gR05VQyB2ZXJzaW9uCisjZW5kaWYgLy8gX19jbGFuZ19fIHx8IF9fR05V
Q19fCisKKyNpZiAhZGVmaW5lZChKU09OQ1BQX0RFUFJFQ0FURUQpCisjZGVmaW5lIEpTT05DUFBf
REVQUkVDQVRFRChtZXNzYWdlKQorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05DUFBfREVQUkVD
QVRFRCkKKworbmFtZXNwYWNlIEpzb24gewordHlwZWRlZiBpbnQgSW50OwordHlwZWRlZiB1bnNp
Z25lZCBpbnQgVUludDsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCit0eXBlZGVmIGludCBM
YXJnZXN0SW50OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgTGFyZ2VzdFVJbnQ7CisjdW5kZWYgSlNP
Tl9IQVNfSU5UNjQKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKEpTT05fTk9f
SU5UNjQpCisvLyBGb3IgTWljcm9zb2Z0IFZpc3VhbCB1c2Ugc3BlY2lmaWMgdHlwZXMgYXMgbG9u
ZyBsb25nIGlzIG5vdCBzdXBwb3J0ZWQKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAvLyBNaWNyb3Nv
ZnQgVmlzdWFsIFN0dWRpbwordHlwZWRlZiBfX2ludDY0IEludDY0OwordHlwZWRlZiB1bnNpZ25l
ZCBfX2ludDY0IFVJbnQ2NDsKKyNlbHNlICAgICAgICAgICAgICAgICAvLyBpZiBkZWZpbmVkKF9N
U0NfVkVSKSAvLyBPdGhlciBwbGF0Zm9ybXMsIHVzZSBsb25nIGxvbmcKK3R5cGVkZWYgbG9uZyBs
b25nIGludCBJbnQ2NDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBVSW50NjQ7Cisj
ZW5kaWYgLy8gaWYgZGVmaW5lZChfTVNDX1ZFUikKK3R5cGVkZWYgSW50NjQgTGFyZ2VzdEludDsK
K3R5cGVkZWYgVUludDY0IExhcmdlc3RVSW50OworI2RlZmluZSBKU09OX0hBU19JTlQ2NAorI2Vu
ZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK30gLy8gZW5kIG5hbWVzcGFjZSBKc29u
CisKKyNlbmRpZiAvLyBKU09OX0NPTkZJR19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
Ky8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9jb25maWcuaAorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9m
IGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL2ZvcndhcmRzLmgKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5k
CisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5T
RSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJ
Q0VOU0UKKworI2lmbmRlZiBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQKKyNkZWZpbmUgSlNPTl9G
T1JXQVJEU19IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxH
QU1BVElPTikKKworbmFtZXNwYWNlIEpzb24geworCisvLyB3cml0ZXIuaAorY2xhc3MgRmFzdFdy
aXRlcjsKK2NsYXNzIFN0eWxlZFdyaXRlcjsKKworLy8gcmVhZGVyLmgKK2NsYXNzIFJlYWRlcjsK
KworLy8gZmVhdHVyZXMuaAorY2xhc3MgRmVhdHVyZXM7CisKKy8vIHZhbHVlLmgKK3R5cGVkZWYg
dW5zaWduZWQgaW50IEFycmF5SW5kZXg7CitjbGFzcyBTdGF0aWNTdHJpbmc7CitjbGFzcyBQYXRo
OworY2xhc3MgUGF0aEFyZ3VtZW50OworY2xhc3MgVmFsdWU7CitjbGFzcyBWYWx1ZUl0ZXJhdG9y
QmFzZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3I7CitjbGFzcyBWYWx1ZUNvbnN0SXRlcmF0b3I7CisK
K30gLy8gbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05fRk9SV0FSRFNfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKyNlbmRpZiAvL2lm
bmRlZiBKU09OX0ZPUldBUkRfQU1BTEdBVEVEX0hfSU5DTFVERUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvanNvbi9qc29uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvc3JjL2pzb24vanNvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyN2Y2NWQ5ZGZhODUzNmMzNWZmNDdk
ZTA4NGZlY2U3ODk4YWIxZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9v
cGVudnIvc3JjL2pzb24vanNvbi5oCkBAIC0wLDAgKzEsMjA3NyBAQAorLy8vIEpzb24tY3BwIGFt
YWxnYXRlZCBoZWFkZXIgKGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC8pLgorLy8vIEl0
IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCAjaW5jbHVkZSAianNvbi9qc29uLmgiCisKKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IExJQ0VOU0UK
Ky8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKworLyoKK1RoZSBKc29uQ3BwIGxpYnJhcnkncyBzb3VyY2UgY29k
ZSwgaW5jbHVkaW5nIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uLCAKK3Rlc3RzIGFuZCBkZW1v
bnN0cmF0aW9uIGFwcGxpY2F0aW9ucywgYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBmb2xsb3dpbmcK
K2NvbmRpdGlvbnMuLi4KKworVGhlIGF1dGhvciAoQmFwdGlzdGUgTGVwaWxsZXVyKSBleHBsaWNp
dGx5IGRpc2NsYWltcyBjb3B5cmlnaHQgaW4gYWxsIAoranVyaXNkaWN0aW9ucyB3aGljaCByZWNv
Z25pemUgc3VjaCBhIGRpc2NsYWltZXIuIEluIHN1Y2gganVyaXNkaWN0aW9ucywgCit0aGlzIHNv
ZnR3YXJlIGlzIHJlbGVhc2VkIGludG8gdGhlIFB1YmxpYyBEb21haW4uCisKK0luIGp1cmlzZGlj
dGlvbnMgd2hpY2ggZG8gbm90IHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5IChlLmcu
IEdlcm1hbnkgYXMgb2YKKzIwMTApLCB0aGlzIHNvZnR3YXJlIGlzIENvcHlyaWdodCAoYykgMjAw
Ny0yMDEwIGJ5IEJhcHRpc3RlIExlcGlsbGV1ciwgYW5kIGlzCityZWxlYXNlZCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUgYmVsb3cpLgorCitJbiBqdXJpc2RpY3Rpb25z
IHdoaWNoIHJlY29nbml6ZSBQdWJsaWMgRG9tYWluIHByb3BlcnR5LCB0aGUgdXNlciBvZiB0aGlz
IAorc29mdHdhcmUgbWF5IGNob29zZSB0byBhY2NlcHQgaXQgZWl0aGVyIGFzIDEpIFB1YmxpYyBE
b21haW4sIDIpIHVuZGVyIHRoZSAKK2NvbmRpdGlvbnMgb2YgdGhlIE1JVCBMaWNlbnNlIChzZWUg
YmVsb3cpLCBvciAzKSB1bmRlciB0aGUgdGVybXMgb2YgZHVhbCAKK1B1YmxpYyBEb21haW4vTUlU
IExpY2Vuc2UgY29uZGl0aW9ucyBkZXNjcmliZWQgaGVyZSwgYXMgdGhleSBjaG9vc2UuCisKK1Ro
ZSBNSVQgTGljZW5zZSBpcyBhYm91dCBhcyBjbG9zZSB0byBQdWJsaWMgRG9tYWluIGFzIGEgbGlj
ZW5zZSBjYW4gZ2V0LCBhbmQgaXMKK2Rlc2NyaWJlZCBpbiBjbGVhciwgY29uY2lzZSB0ZXJtcyBh
dDoKKworICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQorICAgCitU
aGUgZnVsbCB0ZXh0IG9mIHRoZSBNSVQgTGljZW5zZSBmb2xsb3dzOgorCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KK0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorCitQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorb2J0
YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv
dXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LAorbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCitvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKK2luY2x1ZGVkIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKK0JFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorQUNUSU9OIE9GIENPTlRSQUNULCBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NP
RlRXQVJFLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisoRU5EIExJQ0VOU0UgVEVYVCkKKworVGhlIE1JVCBs
aWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCBib3RoIHRoZSBHUEwgYW5kIGNvbW1lcmNpYWwKK3Nv
ZnR3YXJlLCBhZmZvcmRpbmcgb25lIGFsbCBvZiB0aGUgcmlnaHRzIG9mIFB1YmxpYyBEb21haW4g
d2l0aCB0aGUKK21pbm9yIG51aXNhbmNlIG9mIGJlaW5nIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UKK2FuZCBsaWNlbnNlIHRleHQgaW4gdGhlIHNvdXJjZSBjb2Rl
LiBOb3RlIGFsc28gdGhhdCBieSBhY2NlcHRpbmcgdGhlCitQdWJsaWMgRG9tYWluICJsaWNlbnNl
IiB5b3UgY2FuIHJlLWxpY2Vuc2UgeW91ciBjb3B5IHVzaW5nIHdoYXRldmVyCitsaWNlbnNlIHlv
dSBsaWtlLgorCisqLworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBm
aWxlOiBMSUNFTlNFCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworI2lmbmRlZiBKU09OX0FN
QUxHQVRFRF9IX0lOQ0xVREVECisjIGRlZmluZSBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECisv
Ly8gSWYgZGVmaW5lZCwgaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGlzIGFtYWxnYXRl
ZAorLy8vIHRvIHByZXZlbnQgcHJpdmF0ZSBoZWFkZXIgaW5jbHVzaW9uLgorI2RlZmluZSBKU09O
X0lTX0FNQUxHQU1BVElPTgorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29u
dGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vdmVyc2lvbi5oCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
Ky8vIERPIE5PVCBFRElULiBUaGlzIGZpbGUgKGFuZCAidmVyc2lvbiIpIGlzIGdlbmVyYXRlZCBi
eSBDTWFrZS4KKy8vIFJ1biBDTWFrZSBjb25maWd1cmUgc3RlcCB0byB1cGRhdGUgaXQuCisjaWZu
ZGVmIEpTT05fVkVSU0lPTl9IX0lOQ0xVREVECisjIGRlZmluZSBKU09OX1ZFUlNJT05fSF9JTkNM
VURFRAorCisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fU1RSSU5HICIxLjYuNSIKKyMgZGVmaW5l
IEpTT05DUFBfVkVSU0lPTl9NQUpPUiAxCisjIGRlZmluZSBKU09OQ1BQX1ZFUlNJT05fTUlOT1Ig
NgorIyBkZWZpbmUgSlNPTkNQUF9WRVJTSU9OX1BBVENIIDUKKyMgZGVmaW5lIEpTT05DUFBfVkVS
U0lPTl9RVUFMSUZJRVIKKyMgZGVmaW5lIEpTT05DUFBfVkVSU0lPTl9IRVhBICgoSlNPTkNQUF9W
RVJTSU9OX01BSk9SIDw8IDI0KSB8IChKU09OQ1BQX1ZFUlNJT05fTUlOT1IgPDwgMTYpIHwgKEpT
T05DUFBfVkVSU0lPTl9QQVRDSCA8PCA4KSkKKworI2VuZGlmIC8vIEpTT05fVkVSU0lPTl9IX0lO
Q0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGlu
Y2x1ZGUvanNvbi92ZXJzaW9uLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNv
bi9jb25maWcuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJh
cHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1
YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2Rp
Y3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8v
anNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpTT05fQ09ORklHX0hf
SU5DTFVERUQKKyNkZWZpbmUgSlNPTl9DT05GSUdfSF9JTkNMVURFRAorCisvLy8gSWYgZGVmaW5l
ZCwgaW5kaWNhdGVzIHRoYXQganNvbiBsaWJyYXJ5IGlzIGVtYmVkZGVkIGluIENwcFRMIGxpYnJh
cnkuCisvLyMgZGVmaW5lIEpTT05fSU5fQ1BQVEwgMQorCisvLy8gSWYgZGVmaW5lZCwgaW5kaWNh
dGVzIHRoYXQganNvbiBtYXkgbGV2ZXJhZ2UgQ3BwVEwgbGlicmFyeQorLy8jICBkZWZpbmUgSlNP
Tl9VU0VfQ1BQVEwgMQorLy8vIElmIGRlZmluZWQsIGluZGljYXRlcyB0aGF0IGNwcHRsIHZlY3Rv
ciBiYXNlZCBtYXAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZgorLy8vIHN0ZDo6bWFwCisvLy8g
YXMgVmFsdWUgY29udGFpbmVyLgorLy8jICBkZWZpbmUgSlNPTl9VU0VfQ1BQVExfU01BTExNQVAg
MQorCisvLyBJZiBub24temVybywgdGhlIGxpYnJhcnkgdXNlcyBleGNlcHRpb25zIHRvIHJlcG9y
dCBiYWQgaW5wdXQgaW5zdGVhZCBvZiBDCisvLyBhc3NlcnRpb24gbWFjcm9zLiBUaGUgZGVmYXVs
dCBpcyB0byB1c2UgZXhjZXB0aW9ucy4KKyNpZm5kZWYgSlNPTl9VU0VfRVhDRVBUSU9OCisjZGVm
aW5lIEpTT05fVVNFX0VYQ0VQVElPTiAxCisjZW5kaWYKKworLy8vIElmIGRlZmluZWQsIGluZGlj
YXRlcyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBpcyBhbWFsZ2F0ZWQKKy8vLyB0byBwcmV2ZW50IHBy
aXZhdGUgaGVhZGVyIGluY2x1c2lvbi4KKy8vLyBSZW1hcmtzOiBpdCBpcyBhdXRvbWF0aWNhbGx5
IGRlZmluZWQgaW4gdGhlIGdlbmVyYXRlZCBhbWFsZ2F0ZWQgaGVhZGVyLgorLy8gI2RlZmluZSBK
U09OX0lTX0FNQUxHQU1BVElPTgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2luY2x1ZGUgPGNw
cHRsL2NvbmZpZy5oPgorI2lmbmRlZiBKU09OX1VTRV9DUFBUTAorI2RlZmluZSBKU09OX1VTRV9D
UFBUTCAxCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSlNPTl9JTl9DUFBUTAorI2RlZmluZSBK
U09OX0FQSSBDUFBUTF9BUEkKKyNlbGlmIGRlZmluZWQoSlNPTl9ETExfQlVJTEQpCisjaWYgZGVm
aW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgSlNPTl9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisj
ZGVmaW5lIEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNFX1dBUk5JTkcKKyNlbmRpZiAvLyBp
ZiBkZWZpbmVkKF9NU0NfVkVSKQorI2VsaWYgZGVmaW5lZChKU09OX0RMTCkKKyNpZiBkZWZpbmVk
KF9NU0NfVkVSKQorI2RlZmluZSBKU09OX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNkZWZp
bmUgSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORworI2VuZGlmIC8vIGlmIGRl
ZmluZWQoX01TQ19WRVIpCisjZW5kaWYgLy8gaWZkZWYgSlNPTl9JTl9DUFBUTAorI2lmICFkZWZp
bmVkKEpTT05fQVBJKQorI2RlZmluZSBKU09OX0FQSQorI2VuZGlmCisKKy8vIElmIEpTT05fTk9f
SU5UNjQgaXMgZGVmaW5lZCwgdGhlbiBKc29uIG9ubHkgc3VwcG9ydCBDKysgImludCIgdHlwZSBm
b3IKKy8vIGludGVnZXIKKy8vIFN0b3JhZ2VzLCBhbmQgNjQgYml0cyBpbnRlZ2VyIHN1cHBvcnQg
aXMgZGlzYWJsZWQuCisvLyAjZGVmaW5lIEpTT05fTk9fSU5UNjQgMQorCisjaWYgZGVmaW5lZChf
TVNDX1ZFUikgLy8gTVNWQworIyAgaWYgX01TQ19WRVIgPD0gMTIwMCAvLyBNU1ZDIDYKKyAgICAv
LyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2IG9ubHkgc3VwcG9ydCBjb252ZXJzaW9uIGZyb20g
X19pbnQ2NCB0byBkb3VibGUKKyAgICAvLyAobm8gY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIF9f
aW50NjQpLgorIyAgICBkZWZpbmUgSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04gMQor
ICAgIC8vIERpc2FibGUgd2FybmluZyA0Nzg2IGZvciBWUzYgY2F1c2VkIGJ5IFNUTCAoaWRlbnRp
ZmllciB3YXMgdHJ1bmNhdGVkIHRvICcyNTUnCisgICAgLy8gY2hhcmFjdGVycyBpbiB0aGUgZGVi
dWcgaW5mb3JtYXRpb24pCisgICAgLy8gQWxsIHByb2plY3RzIEkndmUgZXZlciBzZWVuIHdpdGgg
VlM2IHdlcmUgdXNpbmcgdGhpcyBnbG9iYWxseSAobm90IGJvdGhlcmluZworICAgIC8vIHdpdGgg
cHJhZ21hIHB1c2gvcG9wKS4KKyMgICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQ3ODYpCisj
ICBlbmRpZiAvLyBNU1ZDIDYKKworIyAgaWYgX01TQ19WRVIgPj0gMTUwMCAvLyBNU1ZDIDIwMDgK
KyAgICAvLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXByZWNh
dGVkLgorIyAgICBkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpIF9fZGVjbHNwZWMo
ZGVwcmVjYXRlZChtZXNzYWdlKSkKKyMgIGVuZGlmCisKKyNlbmRpZiAvLyBkZWZpbmVkKF9NU0Nf
VkVSKQorCisKKyNpZm5kZWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmIGRlZmlu
ZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDE2MDAgLy8gTVNWQyA+PSAyMDEwCisjZGVmaW5l
IEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTIDEKKyNlbmRpZiAvLyBNU1ZDID49IDIwMTAKKwor
I2lmZGVmIF9fY2xhbmdfXworI2lmIF9faGFzX2ZlYXR1cmUoY3h4X3J2YWx1ZV9yZWZlcmVuY2Vz
KQorI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIGhhc19m
ZWF0dXJlCisKKyNlbGlmIGRlZmluZWQgX19HTlVDX18gLy8gbm90IGNsYW5nIChnY2MgY29tZXMg
bGF0ZXIgc2luY2UgY2xhbmcgZW11bGF0ZXMgZ2NjKQorI2lmIGRlZmluZWQoX19HWFhfRVhQRVJJ
TUVOVEFMX0NYWDBYX18pIHx8IChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQorI2RlZmluZSBKU09O
X0hBU19SVkFMVUVfUkVGRVJFTkNFUyAxCisjZW5kaWYgIC8vIEdYWF9FWFBFUklNRU5UQUwKKwor
I2VuZGlmIC8vIF9fY2xhbmdfXyB8fCBfX0dOVUNfXworCisjZW5kaWYgLy8gbm90IGRlZmluZWQg
SlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKworI2lmbmRlZiBKU09OX0hBU19SVkFMVUVfUkVG
RVJFTkNFUworI2RlZmluZSBKU09OX0hBU19SVkFMVUVfUkVGRVJFTkNFUyAwCisjZW5kaWYKKwor
I2lmZGVmIF9fY2xhbmdfXworI2VsaWYgZGVmaW5lZCBfX0dOVUNfXyAvLyBub3QgY2xhbmcgKGdj
YyBjb21lcyBsYXRlciBzaW5jZSBjbGFuZyBlbXVsYXRlcyBnY2MpCisjICBpZiAoX19HTlVDX18g
PiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDUpKQorIyAgICBkZWZp
bmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2UpICBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRl
ZChtZXNzYWdlKSkpCisjICBlbGlmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYg
X19HTlVDX01JTk9SX18gPj0gMSkpCisjICAgIGRlZmluZSBKU09OQ1BQX0RFUFJFQ0FURUQobWVz
c2FnZSkgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKSkKKyMgIGVuZGlmICAvLyBHTlVD
IHZlcnNpb24KKyNlbmRpZiAvLyBfX2NsYW5nX18gfHwgX19HTlVDX18KKworI2lmICFkZWZpbmVk
KEpTT05DUFBfREVQUkVDQVRFRCkKKyNkZWZpbmUgSlNPTkNQUF9ERVBSRUNBVEVEKG1lc3NhZ2Up
CisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTkNQUF9ERVBSRUNBVEVEKQorCituYW1lc3BhY2Ug
SnNvbiB7Cit0eXBlZGVmIGludCBJbnQ7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBVSW50OworI2lm
IGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKK3R5cGVkZWYgaW50IExhcmdlc3RJbnQ7Cit0eXBlZGVm
IHVuc2lnbmVkIGludCBMYXJnZXN0VUludDsKKyN1bmRlZiBKU09OX0hBU19JTlQ2NAorI2Vsc2Ug
ICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoSlNPTl9OT19JTlQ2NCkKKy8vIEZvciBNaWNy
b3NvZnQgVmlzdWFsIHVzZSBzcGVjaWZpYyB0eXBlcyBhcyBsb25nIGxvbmcgaXMgbm90IHN1cHBv
cnRlZAorI2lmIGRlZmluZWQoX01TQ19WRVIpIC8vIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCit0
eXBlZGVmIF9faW50NjQgSW50NjQ7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgVUludDY0Owor
I2Vsc2UgICAgICAgICAgICAgICAgIC8vIGlmIGRlZmluZWQoX01TQ19WRVIpIC8vIE90aGVyIHBs
YXRmb3JtcywgdXNlIGxvbmcgbG9uZwordHlwZWRlZiBsb25nIGxvbmcgaW50IEludDY0OwordHlw
ZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJbnQ2NDsKKyNlbmRpZiAvLyBpZiBkZWZpbmVk
KF9NU0NfVkVSKQordHlwZWRlZiBJbnQ2NCBMYXJnZXN0SW50OwordHlwZWRlZiBVSW50NjQgTGFy
Z2VzdFVJbnQ7CisjZGVmaW5lIEpTT05fSEFTX0lOVDY0CisjZW5kaWYgLy8gaWYgZGVmaW5lZChK
U09OX05PX0lOVDY0KQorfSAvLyBlbmQgbmFtZXNwYWNlIEpzb24KKworI2VuZGlmIC8vIEpTT05f
Q09ORklHX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQg
b2YgZmlsZTogaW5jbHVkZS9qc29uL2NvbmZpZy5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworCisK
KworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBp
bmNsdWRlL2pzb24vZm9yd2FyZHMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmlnaHQg
MjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxp
Y2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4g
eW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29w
eSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWZuZGVmIEpT
T05fRk9SV0FSRFNfSF9JTkNMVURFRAorI2RlZmluZSBKU09OX0ZPUldBUkRTX0hfSU5DTFVERUQK
KworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZpZy5o
IgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCituYW1lc3Bh
Y2UgSnNvbiB7CisKKy8vIHdyaXRlci5oCitjbGFzcyBGYXN0V3JpdGVyOworY2xhc3MgU3R5bGVk
V3JpdGVyOworCisvLyByZWFkZXIuaAorY2xhc3MgUmVhZGVyOworCisvLyBmZWF0dXJlcy5oCitj
bGFzcyBGZWF0dXJlczsKKworLy8gdmFsdWUuaAordHlwZWRlZiB1bnNpZ25lZCBpbnQgQXJyYXlJ
bmRleDsKK2NsYXNzIFN0YXRpY1N0cmluZzsKK2NsYXNzIFBhdGg7CitjbGFzcyBQYXRoQXJndW1l
bnQ7CitjbGFzcyBWYWx1ZTsKK2NsYXNzIFZhbHVlSXRlcmF0b3JCYXNlOworY2xhc3MgVmFsdWVJ
dGVyYXRvcjsKK2NsYXNzIFZhbHVlQ29uc3RJdGVyYXRvcjsKKworfSAvLyBuYW1lc3BhY2UgSnNv
bgorCisjZW5kaWYgLy8gSlNPTl9GT1JXQVJEU19IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9mb3J3YXJkcy5oCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5p
bmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vZmVhdHVyZXMuaAorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCisvLyBDb3B5cmlnaHQgMjAwNy0yMDEwIEJhcHRpc3RlIExlcGlsbGV1cgorLy8g
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJl
ZCBhbmQKKy8vIHJlY29nbml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBM
SUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5u
ZXQvTElDRU5TRQorCisjaWZuZGVmIENQUFRMX0pTT05fRkVBVFVSRVNfSF9JTkNMVURFRAorI2Rl
ZmluZSBDUFBUTF9KU09OX0ZFQVRVUkVTX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05f
SVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImZvcndhcmRzLmgiCisjZW5kaWYgLy8gaWYgIWRl
ZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworLyoqIFxi
cmllZiBDb25maWd1cmF0aW9uIHBhc3NlZCB0byByZWFkZXIgYW5kIHdyaXRlci4KKyAqIFRoaXMg
Y29uZmlndXJhdGlvbiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhlIFJlYWRlciBvciBX
cml0ZXIKKyAqIHRvIGJlaGF2ZSBpbiBhIHN0YW5kYXJkIGNvbmZvcm1pbmcgd2F5LgorICovCitj
bGFzcyBKU09OX0FQSSBGZWF0dXJlcyB7CitwdWJsaWM6CisgIC8qKiBcYnJpZWYgQSBjb25maWd1
cmF0aW9uIHRoYXQgYWxsb3dzIGFsbCBmZWF0dXJlcyBhbmQgYXNzdW1lcyBhbGwgc3RyaW5ncwor
ICAgKiBhcmUgVVRGLTguCisgICAqIC0gQyAmIEMrKyBjb21tZW50cyBhcmUgYWxsb3dlZAorICAg
KiAtIFJvb3Qgb2JqZWN0IGNhbiBiZSBhbnkgSlNPTiB2YWx1ZQorICAgKiAtIEFzc3VtZXMgVmFs
dWUgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOAorICAgKi8KKyAgc3RhdGljIEZlYXR1cmVz
IGFsbCgpOworCisgIC8qKiBcYnJpZWYgQSBjb25maWd1cmF0aW9uIHRoYXQgaXMgc3RyaWN0bHkg
Y29tcGF0aWJsZSB3aXRoIHRoZSBKU09OCisgICAqIHNwZWNpZmljYXRpb24uCisgICAqIC0gQ29t
bWVudHMgYXJlIGZvcmJpZGRlbi4KKyAgICogLSBSb290IG9iamVjdCBtdXN0IGJlIGVpdGhlciBh
biBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuCisgICAqIC0gQXNzdW1lcyBWYWx1ZSBzdHJpbmdz
IGFyZSBlbmNvZGVkIGluIFVURi04CisgICAqLworICBzdGF0aWMgRmVhdHVyZXMgc3RyaWN0TW9k
ZSgpOworCisgIC8qKiBcYnJpZWYgSW5pdGlhbGl6ZSB0aGUgY29uZmlndXJhdGlvbiBsaWtlIEpz
b25Db25maWc6OmFsbEZlYXR1cmVzOworICAgKi8KKyAgRmVhdHVyZXMoKTsKKworICAvLy8gXGMg
dHJ1ZSBpZiBjb21tZW50cyBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgdHJ1ZS4KKyAgYm9vbCBh
bGxvd0NvbW1lbnRzXzsKKworICAvLy8gXGMgdHJ1ZSBpZiByb290IG11c3QgYmUgZWl0aGVyIGFu
IGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4gRGVmYXVsdDogXGMKKyAgLy8vIGZhbHNlLgorICBi
b29sIHN0cmljdFJvb3RfOworCisgIC8vLyBcYyB0cnVlIGlmIGRyb3BwZWQgbnVsbCBwbGFjZWhv
bGRlcnMgYXJlIGFsbG93ZWQuIERlZmF1bHQ6IFxjIGZhbHNlLgorICBib29sIGFsbG93RHJvcHBl
ZE51bGxQbGFjZWhvbGRlcnNfOworCisgIC8vLyBcYyB0cnVlIGlmIG51bWVyaWMgb2JqZWN0IGtl
eSBhcmUgYWxsb3dlZC4gRGVmYXVsdDogXGMgZmFsc2UuCisgIGJvb2wgYWxsb3dOdW1lcmljS2V5
c187Cit9OworCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKyNlbmRpZiAvLyBDUFBUTF9KU09OX0ZF
QVRVUkVTX0hfSU5DTFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQg
b2YgZmlsZTogaW5jbHVkZS9qc29uL2ZlYXR1cmVzLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisK
KworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6
IGluY2x1ZGUvanNvbi92YWx1ZS5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAy
MDA3LTIwMTAgQmFwdGlzdGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZSwgb3IgcHVibGljIGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5
b3VyIGp1cmlzZGljdGlvbi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5
IGF0IGh0dHA6Ly9qc29uY3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgQ1BQ
VExfSlNPTl9IX0lOQ0xVREVECisjZGVmaW5lIENQUFRMX0pTT05fSF9JTkNMVURFRAorCisjaWYg
IWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSAiZm9yd2FyZHMuaCIKKyNl
bmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPGV4Y2VwdGlvbj4KKworI2lmbmRlZiBK
U09OX1VTRV9DUFBUTF9TTUFMTE1BUAorI2luY2x1ZGUgPG1hcD4KKyNlbHNlCisjaW5jbHVkZSA8
Y3BwdGwvc21hbGxtYXAuaD4KKyNlbmRpZgorI2lmZGVmIEpTT05fVVNFX0NQUFRMCisjaW5jbHVk
ZSA8Y3BwdGwvZm9yd2FyZHMuaD4KKyNlbmRpZgorCisvLyBEaXNhYmxlIHdhcm5pbmcgQzQyNTE6
IDxkYXRhIG1lbWJlcj46IDx0eXBlPiBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8KKy8v
IGJlIHVzZWQgYnkuLi4KKyNpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJGQUNF
X1dBUk5JTkcpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxl
IDogNDI1MSkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5URVJG
QUNFX1dBUk5JTkcpCisKKy8qKiBcYnJpZWYgSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRp
b24pLgorICovCituYW1lc3BhY2UgSnNvbiB7CisKKy8qKiBCYXNlIGNsYXNzIGZvciBhbGwgZXhj
ZXB0aW9ucyB3ZSB0aHJvdy4KKyAqCisgKiBXZSB1c2Ugbm90aGluZyBidXQgdGhlc2UgaW50ZXJu
YWxseS4gT2YgY291cnNlLCBTVEwgY2FuIHRocm93IG90aGVycy4KKyAqLworY2xhc3MgSlNPTl9B
UEkgRXhjZXB0aW9uIDogcHVibGljIHN0ZDo6ZXhjZXB0aW9uIHsKK3B1YmxpYzoKKyAgRXhjZXB0
aW9uKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworICB+RXhjZXB0aW9uKCkgdGhyb3coKTsKKyAg
Y2hhciBjb25zdCogd2hhdCgpIGNvbnN0IHRocm93KCk7Citwcm90ZWN0ZWQ6CisgIHN0ZDo6c3Ry
aW5nIG1zZ187Cit9OworCisvKiogRXhjZXB0aW9ucyB3aGljaCB0aGUgdXNlciBjYW5ub3QgZWFz
aWx5IGF2b2lkLgorICoKKyAqIEUuZy4gb3V0LW9mLW1lbW9yeSAod2hlbiB3ZSB1c2UgbWFsbG9j
KSwgc3RhY2stb3ZlcmZsb3csIG1hbGljaW91cyBpbnB1dAorICogCisgKiBccmVtYXJrIGRlcml2
ZWQgZnJvbSBKc29uOjpFeGNlcHRpb24KKyAqLworY2xhc3MgSlNPTl9BUEkgUnVudGltZUVycm9y
IDogcHVibGljIEV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIFJ1bnRpbWVFcnJvcihzdGQ6OnN0cmlu
ZyBjb25zdCYgbXNnKTsKK307CisKKy8qKiBFeGNlcHRpb25zIHRocm93biBieSBKU09OX0FTU0VS
VC9KU09OX0ZBSUwgbWFjcm9zLgorICoKKyAqIFRoZXNlIGFyZSBwcmVjb25kaXRpb24tdmlvbGF0
aW9ucyAodXNlciBidWdzKSBhbmQgaW50ZXJuYWwgZXJyb3JzIChvdXIgYnVncykuCisgKiAKKyAq
IFxyZW1hcmsgZGVyaXZlZCBmcm9tIEpzb246OkV4Y2VwdGlvbgorICovCitjbGFzcyBKU09OX0FQ
SSBMb2dpY0Vycm9yIDogcHVibGljIEV4Y2VwdGlvbiB7CitwdWJsaWM6CisgIExvZ2ljRXJyb3Io
c3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7Cit9OworCisvLy8gdXNlZCBpbnRlcm5hbGx5Cit2b2lk
IHRocm93UnVudGltZUVycm9yKHN0ZDo6c3RyaW5nIGNvbnN0JiBtc2cpOworLy8vIHVzZWQgaW50
ZXJuYWxseQordm9pZCB0aHJvd0xvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZyk7CisK
Ky8qKiBcYnJpZWYgVHlwZSBvZiB0aGUgdmFsdWUgaGVsZCBieSBhIFZhbHVlIG9iamVjdC4KKyAq
LworZW51bSBWYWx1ZVR5cGUgeworICBudWxsVmFsdWUgPSAwLCAvLy88ICdudWxsJyB2YWx1ZQor
ICBpbnRWYWx1ZSwgICAgICAvLy88IHNpZ25lZCBpbnRlZ2VyIHZhbHVlCisgIHVpbnRWYWx1ZSwg
ICAgIC8vLzwgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQorICByZWFsVmFsdWUsICAgICAvLy88IGRv
dWJsZSB2YWx1ZQorICBzdHJpbmdWYWx1ZSwgICAvLy88IFVURi04IHN0cmluZyB2YWx1ZQorICBi
b29sZWFuVmFsdWUsICAvLy88IGJvb2wgdmFsdWUKKyAgYXJyYXlWYWx1ZSwgICAgLy8vPCBhcnJh
eSB2YWx1ZSAob3JkZXJlZCBsaXN0KQorICBvYmplY3RWYWx1ZSAgICAvLy88IG9iamVjdCB2YWx1
ZSAoY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzKS4KK307CisKK2VudW0gQ29tbWVudFBs
YWNlbWVudCB7CisgIGNvbW1lbnRCZWZvcmUgPSAwLCAgICAgIC8vLzwgYSBjb21tZW50IHBsYWNl
ZCBvbiB0aGUgbGluZSBiZWZvcmUgYSB2YWx1ZQorICBjb21tZW50QWZ0ZXJPblNhbWVMaW5lLCAv
Ly88IGEgY29tbWVudCBqdXN0IGFmdGVyIGEgdmFsdWUgb24gdGhlIHNhbWUgbGluZQorICBjb21t
ZW50QWZ0ZXIsIC8vLzwgYSBjb21tZW50IG9uIHRoZSBsaW5lIGFmdGVyIGEgdmFsdWUgKG9ubHkg
bWFrZSBzZW5zZSBmb3IKKyAgLy8vIHJvb3QgdmFsdWUpCisgIG51bWJlck9mQ29tbWVudFBsYWNl
bWVudAorfTsKKworLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisvLyAgIHR5cGVkZWYgQ3BwVEw6
OkFueUVudW1lcmF0b3I8Y29uc3QgY2hhciAqPiBFbnVtTWVtYmVyTmFtZXM7CisvLyAgIHR5cGVk
ZWYgQ3BwVEw6OkFueUVudW1lcmF0b3I8Y29uc3QgVmFsdWUgJj4gRW51bVZhbHVlczsKKy8vIyBl
bmRpZgorCisvKiogXGJyaWVmIExpZ2h0d2VpZ2h0IHdyYXBwZXIgdG8gdGFnIHN0YXRpYyBzdHJp
bmcuCisgKgorICogVmFsdWUgY29uc3RydWN0b3IgYW5kIG9iamVjdFZhbHVlIG1lbWJlciBhc3Np
Z25lbWVudCB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlCisgKiBTdGF0aWNTdHJpbmcgYW5kIGF2b2lk
IHRoZSBjb3N0IG9mIHN0cmluZyBkdXBsaWNhdGlvbiB3aGVuIHN0b3JpbmcgdGhlCisgKiBzdHJp
bmcgb3IgdGhlIG1lbWJlciBuYW1lLgorICoKKyAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgKiBcY29k
ZQorICogSnNvbjo6VmFsdWUgYVZhbHVlKCBTdGF0aWNTdHJpbmcoInNvbWUgdGV4dCIpICk7Cisg
KiBKc29uOjpWYWx1ZSBvYmplY3Q7CisgKiBzdGF0aWMgY29uc3QgU3RhdGljU3RyaW5nIGNvZGUo
ImNvZGUiKTsKKyAqIG9iamVjdFtjb2RlXSA9IDEyMzQ7CisgKiBcZW5kY29kZQorICovCitjbGFz
cyBKU09OX0FQSSBTdGF0aWNTdHJpbmcgeworcHVibGljOgorICBleHBsaWNpdCBTdGF0aWNTdHJp
bmcoY29uc3QgY2hhciogY3pzdHJpbmcpIDogY19zdHJfKGN6c3RyaW5nKSB7fQorCisgIG9wZXJh
dG9yIGNvbnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHJfOyB9CisKKyAgY29uc3QgY2hh
ciogY19zdHIoKSBjb25zdCB7IHJldHVybiBjX3N0cl87IH0KKworcHJpdmF0ZToKKyAgY29uc3Qg
Y2hhciogY19zdHJfOworfTsKKworLyoqIFxicmllZiBSZXByZXNlbnRzIGEgPGEgSFJFRj0iaHR0
cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gdmFsdWUuCisgKgorICogVGhpcyBjbGFzcyBpcyBh
IGRpc2NyaW1pbmF0ZWQgdW5pb24gd3JhcHBlciB0aGF0IGNhbiByZXByZXNlbnRzIGE6CisgKiAt
IHNpZ25lZCBpbnRlZ2VyIFtyYW5nZTogVmFsdWU6Om1pbkludCAtIFZhbHVlOjptYXhJbnRdCisg
KiAtIHVuc2lnbmVkIGludGVnZXIgKHJhbmdlOiAwIC0gVmFsdWU6Om1heFVJbnQpCisgKiAtIGRv
dWJsZQorICogLSBVVEYtOCBzdHJpbmcKKyAqIC0gYm9vbGVhbgorICogLSAnbnVsbCcKKyAqIC0g
YW4gb3JkZXJlZCBsaXN0IG9mIFZhbHVlCisgKiAtIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBw
YWlycyAoamF2YXNjcmlwdCBvYmplY3QpCisgKgorICogVGhlIHR5cGUgb2YgdGhlIGhlbGQgdmFs
dWUgaXMgcmVwcmVzZW50ZWQgYnkgYSAjVmFsdWVUeXBlIGFuZAorICogY2FuIGJlIG9idGFpbmVk
IHVzaW5nIHR5cGUoKS4KKyAqCisgKiBWYWx1ZXMgb2YgYW4gI29iamVjdFZhbHVlIG9yICNhcnJh
eVZhbHVlIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBvcGVyYXRvcltdKCkKKyAqIG1ldGhvZHMuCisg
KiBOb24tY29uc3QgbWV0aG9kcyB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSBhICNudWxs
VmFsdWUgZWxlbWVudAorICogaWYgaXQgZG9lcyBub3QgZXhpc3QuCisgKiBUaGUgc2VxdWVuY2Ug
b2YgYW4gI2FycmF5VmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHJlc2l6ZWQgYW5kIGluaXRp
YWxpemVkCisgKiB3aXRoICNudWxsVmFsdWUuIHJlc2l6ZSgpIGNhbiBiZSB1c2VkIHRvIGVubGFy
Z2Ugb3IgdHJ1bmNhdGUgYW4gI2FycmF5VmFsdWUuCisgKgorICogVGhlIGdldCgpIG1ldGhvZHMg
Y2FuIGJlIHVzZWQgdG8gb2J0YWluIGRlZmF1bHQgdmFsdWUgaW4gdGhlIGNhc2UgdGhlCisgKiBy
ZXF1aXJlZCBlbGVtZW50IGRvZXMgbm90IGV4aXN0LgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRv
IGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBhICNvYmplY3RWYWx1ZSB2YWx1ZXMgdXNpbmcKKyAq
IHRoZSBnZXRNZW1iZXJOYW1lcygpIG1ldGhvZC4KKyAqCisgKiBcbm90ZSAjVmFsdWUgc3RyaW5n
LWxlbmd0aCBmaXQgaW4gc2l6ZV90LCBidXQga2V5cyBtdXN0IGJlIDwgMl4zMC4KKyAqIChUaGUg
cmVhc29uIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4pIEEgI0NoYXJSZWFkZXIgd2lsbCBy
YWlzZSBhbgorICogZXhjZXB0aW9uIGlmIGEgYm91bmQgaXMgZXhjZWVkZWQgdG8gYXZvaWQgc2Vj
dXJpdHkgaG9sZXMgaW4geW91ciBhcHAsCisgKiBidXQgdGhlIFZhbHVlIEFQSSBkb2VzICpub3Qq
IGNoZWNrIGJvdW5kcy4gVGhhdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkKKyAqIG9mIHRoZSBjYWxs
ZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlIHsKKyAgZnJpZW5kIGNsYXNzIFZhbHVlSXRl
cmF0b3JCYXNlOworcHVibGljOgorICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBN
ZW1iZXJzOworICB0eXBlZGVmIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3I7CisgIHR5cGVkZWYgVmFs
dWVDb25zdEl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworICB0eXBlZGVmIEpzb246OlVJbnQgVUlu
dDsKKyAgdHlwZWRlZiBKc29uOjpJbnQgSW50OworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisgIHR5cGVkZWYgSnNvbjo6VUludDY0IFVJbnQ2NDsKKyAgdHlwZWRlZiBKc29uOjpJbnQ2NCBJ
bnQ2NDsKKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorICB0eXBlZGVmIEpzb246
Okxhcmdlc3RJbnQgTGFyZ2VzdEludDsKKyAgdHlwZWRlZiBKc29uOjpMYXJnZXN0VUludCBMYXJn
ZXN0VUludDsKKyAgdHlwZWRlZiBKc29uOjpBcnJheUluZGV4IEFycmF5SW5kZXg7CisKKyAgc3Rh
dGljIGNvbnN0IFZhbHVlJiBudWxsOyAgLy8vPCBXZSByZWdyZXQgdGhpcyByZWZlcmVuY2UgdG8g
YSBnbG9iYWwgaW5zdGFuY2U7IHByZWZlciB0aGUgc2ltcGxlciBWYWx1ZSgpLgorICBzdGF0aWMg
Y29uc3QgVmFsdWUmIG51bGxSZWY7ICAvLy88IGp1c3QgYSBrbHVkZ2UgZm9yIGJpbmFyeS1jb21w
YXRpYmlsaXR5OyBzYW1lIGFzIG51bGwKKyAgLy8vIE1pbmltdW0gc2lnbmVkIGludGVnZXIgdmFs
dWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBM
YXJnZXN0SW50IG1pbkxhcmdlc3RJbnQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnRlZ2VyIHZh
bHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3Qg
TGFyZ2VzdEludCBtYXhMYXJnZXN0SW50OworICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnRlZ2Vy
IHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29u
c3QgTGFyZ2VzdFVJbnQgbWF4TGFyZ2VzdFVJbnQ7CisKKyAgLy8vIE1pbmltdW0gc2lnbmVkIGlu
dCB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBKc29uOjpWYWx1ZS4KKyAgc3RhdGljIGNv
bnN0IEludCBtaW5JbnQ7CisgIC8vLyBNYXhpbXVtIHNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4g
YmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQgbWF4SW50Owor
ICAvLy8gTWF4aW11bSB1bnNpZ25lZCBpbnQgdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEg
SnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBVSW50IG1heFVJbnQ7CisKKyNpZiBkZWZpbmVk
KEpTT05fSEFTX0lOVDY0KQorICAvLy8gTWluaW11bSBzaWduZWQgNjQgYml0cyBpbnQgdmFsdWUg
dGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgSnNvbjo6VmFsdWUuCisgIHN0YXRpYyBjb25zdCBJbnQ2
NCBtaW5JbnQ2NDsKKyAgLy8vIE1heGltdW0gc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQg
Y2FuIGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgSW50NjQgbWF4
SW50NjQ7CisgIC8vLyBNYXhpbXVtIHVuc2lnbmVkIDY0IGJpdHMgaW50IHZhbHVlIHRoYXQgY2Fu
IGJlIHN0b3JlZCBpbiBhIEpzb246OlZhbHVlLgorICBzdGF0aWMgY29uc3QgVUludDY0IG1heFVJ
bnQ2NDsKKyNlbmRpZiAvLyBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitwcml2YXRlOgorI2lm
bmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCisgIGNsYXNzIENaU3RyaW5n
IHsKKyAgcHVibGljOgorICAgIGVudW0gRHVwbGljYXRpb25Qb2xpY3kgeworICAgICAgbm9EdXBs
aWNhdGlvbiA9IDAsCisgICAgICBkdXBsaWNhdGUsCisgICAgICBkdXBsaWNhdGVPbkNvcHkKKyAg
ICB9OworICAgIENaU3RyaW5nKEFycmF5SW5kZXggaW5kZXgpOworICAgIENaU3RyaW5nKGNoYXIg
Y29uc3QqIHN0ciwgdW5zaWduZWQgbGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSk7
CisgICAgQ1pTdHJpbmcoQ1pTdHJpbmcgY29uc3QmIG90aGVyKTsKKyNpZiBKU09OX0hBU19SVkFM
VUVfUkVGRVJFTkNFUworICAgIENaU3RyaW5nKENaU3RyaW5nJiYgb3RoZXIpOworI2VuZGlmCisg
ICAgfkNaU3RyaW5nKCk7CisgICAgQ1pTdHJpbmcmIG9wZXJhdG9yPShDWlN0cmluZyBvdGhlcik7
CisgICAgYm9vbCBvcGVyYXRvcjwoQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKKyAgICBi
b29sIG9wZXJhdG9yPT0oQ1pTdHJpbmcgY29uc3QmIG90aGVyKSBjb25zdDsKKyAgICBBcnJheUlu
ZGV4IGluZGV4KCkgY29uc3Q7CisgICAgLy9jb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0OyAvLy88
IFxkZXByZWNhdGVkCisgICAgY2hhciBjb25zdCogZGF0YSgpIGNvbnN0OworICAgIHVuc2lnbmVk
IGxlbmd0aCgpIGNvbnN0OworICAgIGJvb2wgaXNTdGF0aWNTdHJpbmcoKSBjb25zdDsKKworICBw
cml2YXRlOgorICAgIHZvaWQgc3dhcChDWlN0cmluZyYgb3RoZXIpOworCisgICAgc3RydWN0IFN0
cmluZ1N0b3JhZ2UgeworICAgICAgdW5zaWduZWQgcG9saWN5XzogMjsKKyAgICAgIHVuc2lnbmVk
IGxlbmd0aF86IDMwOyAvLyAxR0IgbWF4CisgICAgfTsKKworICAgIGNoYXIgY29uc3QqIGNzdHJf
OyAgLy8gYWN0dWFsbHksIGEgcHJlZml4ZWQgc3RyaW5nLCB1bmxlc3MgcG9saWN5IGlzIG5vRHVw
CisgICAgdW5pb24geworICAgICAgQXJyYXlJbmRleCBpbmRleF87CisgICAgICBTdHJpbmdTdG9y
YWdlIHN0b3JhZ2VfOworICAgIH07CisgIH07CisKK3B1YmxpYzoKKyNpZm5kZWYgSlNPTl9VU0Vf
Q1BQVExfU01BTExNQVAKKyAgdHlwZWRlZiBzdGQ6Om1hcDxDWlN0cmluZywgVmFsdWU+IE9iamVj
dFZhbHVlczsKKyNlbHNlCisgIHR5cGVkZWYgQ3BwVEw6OlNtYWxsTWFwPENaU3RyaW5nLCBWYWx1
ZT4gT2JqZWN0VmFsdWVzOworI2VuZGlmIC8vIGlmbmRlZiBKU09OX1VTRV9DUFBUTF9TTUFMTE1B
UAorI2VuZGlmIC8vIGlmbmRlZiBKU09OQ1BQX0RPQ19FWENMVURFX0lNUExFTUVOVEFUSU9OCisK
K3B1YmxpYzoKKyAgLyoqIFxicmllZiBDcmVhdGUgYSBkZWZhdWx0IFZhbHVlIG9mIHRoZSBnaXZl
biB0eXBlLgorCisgICAgVGhpcyBpcyBhIHZlcnkgdXNlZnVsIGNvbnN0cnVjdG9yLgorICAgIFRv
IGNyZWF0ZSBhbiBlbXB0eSBhcnJheSwgcGFzcyBhcnJheVZhbHVlLgorICAgIFRvIGNyZWF0ZSBh
biBlbXB0eSBvYmplY3QsIHBhc3Mgb2JqZWN0VmFsdWUuCisgICAgQW5vdGhlciBWYWx1ZSBjYW4g
dGhlbiBiZSBzZXQgdG8gdGhpcyBvbmUgYnkgYXNzaWdubWVudC4KK1RoaXMgaXMgdXNlZnVsIHNp
bmNlIGNsZWFyKCkgYW5kIHJlc2l6ZSgpIHdpbGwgbm90IGFsdGVyIHR5cGVzLgorCisgICAgRXhh
bXBsZXM6CitcY29kZQorSnNvbjo6VmFsdWUgbnVsbF92YWx1ZTsgLy8gbnVsbAorSnNvbjo6VmFs
dWUgYXJyX3ZhbHVlKEpzb246OmFycmF5VmFsdWUpOyAvLyBbXQorSnNvbjo6VmFsdWUgb2JqX3Zh
bHVlKEpzb246Om9iamVjdFZhbHVlKTsgLy8ge30KK1xlbmRjb2RlCisgICovCisgIFZhbHVlKFZh
bHVlVHlwZSB0eXBlID0gbnVsbFZhbHVlKTsKKyAgVmFsdWUoSW50IHZhbHVlKTsKKyAgVmFsdWUo
VUludCB2YWx1ZSk7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgVmFsdWUoSW50NjQg
dmFsdWUpOworICBWYWx1ZShVSW50NjQgdmFsdWUpOworI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNP
Tl9IQVNfSU5UNjQpCisgIFZhbHVlKGRvdWJsZSB2YWx1ZSk7CisgIFZhbHVlKGNvbnN0IGNoYXIq
IHZhbHVlKTsgLy8vPCBDb3B5IHRpbCBmaXJzdCAwLiAoTlVMTCBjYXVzZXMgdG8gc2VnLWZhdWx0
LikKKyAgVmFsdWUoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7IC8vLzwgQ29w
eSBhbGwsIGluY2wgemVyb2VzLgorICAvKiogXGJyaWVmIENvbnN0cnVjdHMgYSB2YWx1ZSBmcm9t
IGEgc3RhdGljIHN0cmluZy4KKworICAgKiBMaWtlIG90aGVyIHZhbHVlIHN0cmluZyBjb25zdHJ1
Y3RvciBidXQgZG8gbm90IGR1cGxpY2F0ZSB0aGUgc3RyaW5nIGZvcgorICAgKiBpbnRlcm5hbCBz
dG9yYWdlLiBUaGUgZ2l2ZW4gc3RyaW5nIG11c3QgcmVtYWluIGFsaXZlIGFmdGVyIHRoZSBjYWxs
IHRvIHRoaXMKKyAgICogY29uc3RydWN0b3IuCisgICAqIFxub3RlIFRoaXMgd29ya3Mgb25seSBm
b3IgbnVsbC10ZXJtaW5hdGVkIHN0cmluZ3MuIChXZSBjYW5ub3QgY2hhbmdlIHRoZQorICAgKiAg
IHNpemUgb2YgdGhpcyBjbGFzcywgc28gd2UgaGF2ZSBub3doZXJlIHRvIHN0b3JlIHRoZSBsZW5n
dGgsCisgICAqICAgd2hpY2ggbWlnaHQgYmUgY29tcHV0ZWQgbGF0ZXIgZm9yIHZhcmlvdXMgb3Bl
cmF0aW9ucy4pCisgICAqCisgICAqIEV4YW1wbGUgb2YgdXNhZ2U6CisgICAqIFxjb2RlCisgICAq
IHN0YXRpYyBTdGF0aWNTdHJpbmcgZm9vKCJzb21lIHRleHQiKTsKKyAgICogSnNvbjo6VmFsdWUg
YVZhbHVlKGZvbyk7CisgICAqIFxlbmRjb2RlCisgICAqLworICBWYWx1ZShjb25zdCBTdGF0aWNT
dHJpbmcmIHZhbHVlKTsKKyAgVmFsdWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsgLy8vPCBD
b3B5IGRhdGEoKSB0aWwgc2l6ZSgpLiBFbWJlZGRlZCB6ZXJvZXMgdG9vLgorI2lmZGVmIEpTT05f
VVNFX0NQUFRMCisgIFZhbHVlKGNvbnN0IENwcFRMOjpDb25zdFN0cmluZyYgdmFsdWUpOworI2Vu
ZGlmCisgIFZhbHVlKGJvb2wgdmFsdWUpOworICAvLy8gRGVlcCBjb3B5LgorICBWYWx1ZShjb25z
dCBWYWx1ZSYgb3RoZXIpOworI2lmIEpTT05fSEFTX1JWQUxVRV9SRUZFUkVOQ0VTCisgIC8vLyBN
b3ZlIGNvbnN0cnVjdG9yCisgIFZhbHVlKFZhbHVlJiYgb3RoZXIpOworI2VuZGlmCisgIH5WYWx1
ZSgpOworCisgIC8vLyBEZWVwIGNvcHksIHRoZW4gc3dhcChvdGhlcikuCisgIC8vLyBcbm90ZSBP
dmVyLXdyaXRlIGV4aXN0aW5nIGNvbW1lbnRzLiBUbyBwcmVzZXJ2ZSBjb21tZW50cywgdXNlICNz
d2FwUGF5bG9hZCgpLgorICBWYWx1ZSYgb3BlcmF0b3I9KFZhbHVlIG90aGVyKTsKKyAgLy8vIFN3
YXAgZXZlcnl0aGluZy4KKyAgdm9pZCBzd2FwKFZhbHVlJiBvdGhlcik7CisgIC8vLyBTd2FwIHZh
bHVlcyBidXQgbGVhdmUgY29tbWVudHMgYW5kIHNvdXJjZSBvZmZzZXRzIGluIHBsYWNlLgorICB2
b2lkIHN3YXBQYXlsb2FkKFZhbHVlJiBvdGhlcik7CisKKyAgVmFsdWVUeXBlIHR5cGUoKSBjb25z
dDsKKworICAvLy8gQ29tcGFyZSBwYXlsb2FkIG9ubHksIG5vdCBjb21tZW50cyBldGMuCisgIGJv
b2wgb3BlcmF0b3I8KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3I8
PShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yPj0oY29uc3QgVmFs
dWUmIG90aGVyKSBjb25zdDsKKyAgYm9vbCBvcGVyYXRvcj4oY29uc3QgVmFsdWUmIG90aGVyKSBj
b25zdDsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZhbHVlJiBvdGhlcikgY29uc3Q7CisgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworICBpbnQgY29tcGFyZShj
b25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0OworCisgIGNvbnN0IGNoYXIqIGFzQ1N0cmluZygpIGNv
bnN0OyAvLy88IEVtYmVkZGVkIHplcm9lcyBjb3VsZCBjYXVzZSB5b3UgdHJvdWJsZSEKKyAgc3Rk
OjpzdHJpbmcgYXNTdHJpbmcoKSBjb25zdDsgLy8vPCBFbWJlZGRlZCB6ZXJvZXMgYXJlIHBvc3Np
YmxlLgorICAvKiogR2V0IHJhdyBjaGFyKiBvZiBzdHJpbmctdmFsdWUuCisgICAqICBccmV0dXJu
IGZhbHNlIGlmICFzdHJpbmcuIChTZWctZmF1bHQgaWYgc3RyIG9yIGVuZCBhcmUgTlVMTC4pCisg
ICAqLworICBib29sIGdldFN0cmluZygKKyAgICAgIGNoYXIgY29uc3QqKiBiZWdpbiwgY2hhciBj
b25zdCoqIGVuZCkgY29uc3Q7CisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKKyAgQ3BwVEw6OkNvbnN0
U3RyaW5nIGFzQ29uc3RTdHJpbmcoKSBjb25zdDsKKyNlbmRpZgorICBJbnQgYXNJbnQoKSBjb25z
dDsKKyAgVUludCBhc1VJbnQoKSBjb25zdDsKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQor
ICBJbnQ2NCBhc0ludDY0KCkgY29uc3Q7CisgIFVJbnQ2NCBhc1VJbnQ2NCgpIGNvbnN0OworI2Vu
ZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIExhcmdlc3RJbnQgYXNMYXJnZXN0
SW50KCkgY29uc3Q7CisgIExhcmdlc3RVSW50IGFzTGFyZ2VzdFVJbnQoKSBjb25zdDsKKyAgZmxv
YXQgYXNGbG9hdCgpIGNvbnN0OworICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKKyAgYm9vbCBh
c0Jvb2woKSBjb25zdDsKKworICBib29sIGlzTnVsbCgpIGNvbnN0OworICBib29sIGlzQm9vbCgp
IGNvbnN0OworICBib29sIGlzSW50KCkgY29uc3Q7CisgIGJvb2wgaXNJbnQ2NCgpIGNvbnN0Owor
ICBib29sIGlzVUludCgpIGNvbnN0OworICBib29sIGlzVUludDY0KCkgY29uc3Q7CisgIGJvb2wg
aXNJbnRlZ3JhbCgpIGNvbnN0OworICBib29sIGlzRG91YmxlKCkgY29uc3Q7CisgIGJvb2wgaXNO
dW1lcmljKCkgY29uc3Q7CisgIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKKyAgYm9vbCBpc0FycmF5
KCkgY29uc3Q7CisgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKKworICBib29sIGlzQ29udmVydGli
bGVUbyhWYWx1ZVR5cGUgb3RoZXIpIGNvbnN0OworCisgIC8vLyBOdW1iZXIgb2YgdmFsdWVzIGlu
IGFycmF5IG9yIG9iamVjdAorICBBcnJheUluZGV4IHNpemUoKSBjb25zdDsKKworICAvLy8gXGJy
aWVmIFJldHVybiB0cnVlIGlmIGVtcHR5IGFycmF5LCBlbXB0eSBvYmplY3QsIG9yIG51bGw7Cisg
IC8vLyBvdGhlcndpc2UsIGZhbHNlLgorICBib29sIGVtcHR5KCkgY29uc3Q7CisKKyAgLy8vIFJl
dHVybiBpc051bGwoKQorICBib29sIG9wZXJhdG9yISgpIGNvbnN0OworCisgIC8vLyBSZW1vdmUg
YWxsIG9iamVjdCBtZW1iZXJzIGFuZCBhcnJheSBlbGVtZW50cy4KKyAgLy8vIFxwcmUgdHlwZSgp
IGlzIGFycmF5VmFsdWUsIG9iamVjdFZhbHVlLCBvciBudWxsVmFsdWUKKyAgLy8vIFxwb3N0IHR5
cGUoKSBpcyB1bmNoYW5nZWQKKyAgdm9pZCBjbGVhcigpOworCisgIC8vLyBSZXNpemUgdGhlIGFy
cmF5IHRvIHNpemUgZWxlbWVudHMuCisgIC8vLyBOZXcgZWxlbWVudHMgYXJlIGluaXRpYWxpemVk
IHRvIG51bGwuCisgIC8vLyBNYXkgb25seSBiZSBjYWxsZWQgb24gbnVsbFZhbHVlIG9yIGFycmF5
VmFsdWUuCisgIC8vLyBccHJlIHR5cGUoKSBpcyBhcnJheVZhbHVlIG9yIG51bGxWYWx1ZQorICAv
Ly8gXHBvc3QgdHlwZSgpIGlzIGFycmF5VmFsdWUKKyAgdm9pZCByZXNpemUoQXJyYXlJbmRleCBz
aXplKTsKKworICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXgg
KS4KKyAgLy8vIElmIHRoZSBhcnJheSBjb250YWlucyBsZXNzIHRoYW4gaW5kZXggZWxlbWVudCwg
dGhlbiBudWxsIHZhbHVlIGFyZQorICAvLy8gaW5zZXJ0ZWQKKyAgLy8vIGluIHRoZSBhcnJheSBz
byB0aGF0IGl0cyBzaXplIGlzIGluZGV4KzEuCisgIC8vLyAoWW91IG1heSBuZWVkIHRvIHNheSAn
dmFsdWVbMHVdJyB0byBnZXQgeW91ciBjb21waWxlciB0byBkaXN0aW5ndWlzaAorICAvLy8gIHRo
aXMgZnJvbSB0aGUgb3BlcmF0b3JbXSB3aGljaCB0YWtlcyBhIHN0cmluZy4pCisgIFZhbHVlJiBv
cGVyYXRvcltdKEFycmF5SW5kZXggaW5kZXgpOworCisgIC8vLyBBY2Nlc3MgYW4gYXJyYXkgZWxl
bWVudCAoemVybyBiYXNlZCBpbmRleCApLgorICAvLy8gSWYgdGhlIGFycmF5IGNvbnRhaW5zIGxl
c3MgdGhhbiBpbmRleCBlbGVtZW50LCB0aGVuIG51bGwgdmFsdWUgYXJlCisgIC8vLyBpbnNlcnRl
ZAorICAvLy8gaW4gdGhlIGFycmF5IHNvIHRoYXQgaXRzIHNpemUgaXMgaW5kZXgrMS4KKyAgLy8v
IChZb3UgbWF5IG5lZWQgdG8gc2F5ICd2YWx1ZVswdV0nIHRvIGdldCB5b3VyIGNvbXBpbGVyIHRv
IGRpc3Rpbmd1aXNoCisgIC8vLyAgdGhpcyBmcm9tIHRoZSBvcGVyYXRvcltdIHdoaWNoIHRha2Vz
IGEgc3RyaW5nLikKKyAgVmFsdWUmIG9wZXJhdG9yW10oaW50IGluZGV4KTsKKworICAvLy8gQWNj
ZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQorICAvLy8gKFlvdSBtYXkg
bmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8gZGlzdGluZ3Vp
c2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMgYSBzdHJpbmcu
KQorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSBjb25zdDsKKwor
ICAvLy8gQWNjZXNzIGFuIGFycmF5IGVsZW1lbnQgKHplcm8gYmFzZWQgaW5kZXggKQorICAvLy8g
KFlvdSBtYXkgbmVlZCB0byBzYXkgJ3ZhbHVlWzB1XScgdG8gZ2V0IHlvdXIgY29tcGlsZXIgdG8g
ZGlzdGluZ3Vpc2gKKyAgLy8vICB0aGlzIGZyb20gdGhlIG9wZXJhdG9yW10gd2hpY2ggdGFrZXMg
YSBzdHJpbmcuKQorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShpbnQgaW5kZXgpIGNvbnN0Owor
CisgIC8vLyBJZiB0aGUgYXJyYXkgY29udGFpbnMgYXQgbGVhc3QgaW5kZXgrMSBlbGVtZW50cywg
cmV0dXJucyB0aGUgZWxlbWVudAorICAvLy8gdmFsdWUsCisgIC8vLyBvdGhlcndpc2UgcmV0dXJu
cyBkZWZhdWx0VmFsdWUuCisgIFZhbHVlIGdldChBcnJheUluZGV4IGluZGV4LCBjb25zdCBWYWx1
ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyAgLy8vIFJldHVybiB0cnVlIGlmIGluZGV4IDwgc2l6
ZSgpLgorICBib29sIGlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25zdDsKKyAgLy8v
IFxicmllZiBBcHBlbmQgdmFsdWUgdG8gYXJyYXkgYXQgdGhlIGVuZC4KKyAgLy8vCisgIC8vLyBF
cXVpdmFsZW50IHRvIGpzb252YWx1ZVtqc29udmFsdWUuc2l6ZSgpXSA9IHZhbHVlOworICBWYWx1
ZSYgYXBwZW5kKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3Qu
CisgIC8vLyBcbm90ZSBCZWNhdXNlIG9mIG91ciBpbXBsZW1lbnRhdGlvbiwga2V5cyBhcmUgbGlt
aXRlZCB0byAyXjMwIC0xIGNoYXJzLgorICAvLy8gIEV4Y2VlZGluZyB0aGF0IHdpbGwgY2F1c2Ug
YW4gZXhjZXB0aW9uLgorICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBjaGFyKiBrZXkpOworICAv
Ly8gQWNjZXNzIGFuIG9iamVjdCB2YWx1ZSBieSBuYW1lLCByZXR1cm5zIG51bGwgaWYgdGhlcmUg
aXMgbm8gbWVtYmVyIHdpdGgKKyAgLy8vIHRoYXQgbmFtZS4KKyAgY29uc3QgVmFsdWUmIG9wZXJh
dG9yW10oY29uc3QgY2hhcioga2V5KSBjb25zdDsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3QgdmFs
dWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuCisg
IC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSYgb3Bl
cmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KTsKKyAgLy8vIEFjY2VzcyBhbiBvYmplY3Qg
dmFsdWUgYnkgbmFtZSwgcmV0dXJucyBudWxsIGlmIHRoZXJlIGlzIG5vIG1lbWJlciB3aXRoCisg
IC8vLyB0aGF0IG5hbWUuCisgIC8vLyBccGFyYW0ga2V5IG1heSBjb250YWluIGVtYmVkZGVkIG51
bGxzLgorICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYga2V5KSBj
b25zdDsKKyAgLyoqIFxicmllZiBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0
ZSBhIG51bGwgbWVtYmVyIGlmIGl0IGRvZXMgbm90CisgICBleGlzdC4KKworICAgKiBJZiB0aGUg
b2JqZWN0IGhhcyBubyBlbnRyeSBmb3IgdGhhdCBuYW1lLCB0aGVuIHRoZSBtZW1iZXIgbmFtZSB1
c2VkIHRvIHN0b3JlCisgICAqIHRoZSBuZXcgZW50cnkgaXMgbm90IGR1cGxpY2F0ZWQuCisgICAq
IEV4YW1wbGUgb2YgdXNlOgorICAgKiBcY29kZQorICAgKiBKc29uOjpWYWx1ZSBvYmplY3Q7Cisg
ICAqIHN0YXRpYyBjb25zdCBTdGF0aWNTdHJpbmcgY29kZSgiY29kZSIpOworICAgKiBvYmplY3Rb
Y29kZV0gPSAxMjM0OworICAgKiBcZW5kY29kZQorICAgKi8KKyAgVmFsdWUmIG9wZXJhdG9yW10o
Y29uc3QgU3RhdGljU3RyaW5nJiBrZXkpOworI2lmZGVmIEpTT05fVVNFX0NQUFRMCisgIC8vLyBB
Y2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIGNyZWF0ZSBhIG51bGwgbWVtYmVyIGlmIGl0
IGRvZXMgbm90IGV4aXN0LgorICBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RT
dHJpbmcmIGtleSk7CisgIC8vLyBBY2Nlc3MgYW4gb2JqZWN0IHZhbHVlIGJ5IG5hbWUsIHJldHVy
bnMgbnVsbCBpZiB0aGVyZSBpcyBubyBtZW1iZXIgd2l0aAorICAvLy8gdGhhdCBuYW1lLgorICBj
b25zdCBWYWx1ZSYgb3BlcmF0b3JbXShjb25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgY29u
c3Q7CisjZW5kaWYKKyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlz
dCwgZGVmYXVsdFZhbHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQorICBWYWx1
ZSBnZXQoY29uc3QgY2hhcioga2V5LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsK
KyAgLy8vIFJldHVybiB0aGUgbWVtYmVyIG5hbWVkIGtleSBpZiBpdCBleGlzdCwgZGVmYXVsdFZh
bHVlIG90aGVyd2lzZS4KKyAgLy8vIFxub3RlIGRlZXAgY29weQorICAvLy8gXG5vdGUga2V5IG1h
eSBjb250YWluIGVtYmVkZGVkIG51bGxzLgorICBWYWx1ZSBnZXQoY29uc3QgY2hhciogYmVnaW4s
IGNvbnN0IGNoYXIqIGVuZCwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8v
LyBSZXR1cm4gdGhlIG1lbWJlciBuYW1lZCBrZXkgaWYgaXQgZXhpc3QsIGRlZmF1bHRWYWx1ZSBv
dGhlcndpc2UuCisgIC8vLyBcbm90ZSBkZWVwIGNvcHkKKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNv
bnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIFZhbHVlIGdldChjb25zdCBzdGQ6OnN0cmluZyYga2V5
LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdDsKKyNpZmRlZiBKU09OX1VTRV9DUFBU
TAorICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZWQga2V5IGlmIGl0IGV4aXN0LCBkZWZhdWx0
VmFsdWUgb3RoZXJ3aXNlLgorICAvLy8gXG5vdGUgZGVlcCBjb3B5CisgIFZhbHVlIGdldChjb25z
dCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSwgY29uc3QgVmFsdWUmIGRlZmF1bHRWYWx1ZSkgY29u
c3Q7CisjZW5kaWYKKyAgLy8vIE1vc3QgZ2VuZXJhbCBhbmQgZWZmaWNpZW50IHZlcnNpb24gb2Yg
aXNNZW1iZXIoKWNvbnN0LCBnZXQoKWNvbnN0LAorICAvLy8gYW5kIG9wZXJhdG9yW11jb25zdAor
ICAvLy8gXG5vdGUgQXMgc3RhdGVkIGVsc2V3aGVyZSwgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlm
IChlbmQtYmVnaW4pID49IDJeMzAKKyAgVmFsdWUgY29uc3QqIGZpbmQoY2hhciBjb25zdCogYmVn
aW4sIGNoYXIgY29uc3QqIGVuZCkgY29uc3Q7CisgIC8vLyBNb3N0IGdlbmVyYWwgYW5kIGVmZmlj
aWVudCB2ZXJzaW9uIG9mIG9iamVjdC1tdXRhdG9ycy4KKyAgLy8vIFxub3RlIEFzIHN0YXRlZCBl
bHNld2hlcmUsIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCBpZiAoZW5kLWJlZ2luKSA+PSAyXjMwCisg
IC8vLyBccmV0dXJuIG5vbi16ZXJvLCBidXQgSlNPTl9BU1NFUlQgaWYgdGhpcyBpcyBuZWl0aGVy
IG9iamVjdCBub3IgbnVsbFZhbHVlLgorICBWYWx1ZSBjb25zdCogZGVtYW5kKGNoYXIgY29uc3Qq
IGJlZ2luLCBjaGFyIGNvbnN0KiBlbmQpOworICAvLy8gXGJyaWVmIFJlbW92ZSBhbmQgcmV0dXJu
IHRoZSBuYW1lZCBtZW1iZXIuCisgIC8vLworICAvLy8gRG8gbm90aGluZyBpZiBpdCBkaWQgbm90
IGV4aXN0LgorICAvLy8gXHJldHVybiB0aGUgcmVtb3ZlZCBWYWx1ZSwgb3IgbnVsbC4KKyAgLy8v
IFxwcmUgdHlwZSgpIGlzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZQorICAvLy8gXHBvc3QgdHlw
ZSgpIGlzIHVuY2hhbmdlZAorICAvLy8gXGRlcHJlY2F0ZWQKKyAgVmFsdWUgcmVtb3ZlTWVtYmVy
KGNvbnN0IGNoYXIqIGtleSk7CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFy
KikKKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQgbnVsbHMuCisgIC8vLyBc
ZGVwcmVjYXRlZAorICBWYWx1ZSByZW1vdmVNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSk7
CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hh
ciogZW5kLCBWYWx1ZSogcmVtb3ZlZCksCisgIC8vLyBidXQgJ2tleScgaXMgbnVsbC10ZXJtaW5h
dGVkLgorICBib29sIHJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIFZhbHVlKiByZW1vdmVk
KTsKKyAgLyoqIFxicmllZiBSZW1vdmUgdGhlIG5hbWVkIG1hcCBtZW1iZXIuCisKKyAgICAgIFVw
ZGF0ZSAncmVtb3ZlZCcgaWZmIHJlbW92ZWQuCisgICAgICBccGFyYW0ga2V5IG1heSBjb250YWlu
IGVtYmVkZGVkIG51bGxzLgorICAgICAgXHJldHVybiB0cnVlIGlmZiByZW1vdmVkIChubyBleGNl
cHRpb25zKQorICAqLworICBib29sIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmluZyBjb25zdCYga2V5
LCBWYWx1ZSogcmVtb3ZlZCk7CisgIC8vLyBTYW1lIGFzIHJlbW92ZU1lbWJlcihzdGQ6OnN0cmlu
ZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKKyAgYm9vbCByZW1vdmVNZW1iZXIoY29uc3Qg
Y2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCwgVmFsdWUqIHJlbW92ZWQpOworICAvKiogXGJy
aWVmIFJlbW92ZSB0aGUgaW5kZXhlZCBhcnJheSBlbGVtZW50LgorCisgICAgICBPKG4pIGV4cGVu
c2l2ZSBvcGVyYXRpb25zLgorICAgICAgVXBkYXRlICdyZW1vdmVkJyBpZmYgcmVtb3ZlZC4KKyAg
ICAgIFxyZXR1cm4gdHJ1ZSBpZmYgcmVtb3ZlZCAobm8gZXhjZXB0aW9ucykKKyAgKi8KKyAgYm9v
bCByZW1vdmVJbmRleChBcnJheUluZGV4IGksIFZhbHVlKiByZW1vdmVkKTsKKworICAvLy8gUmV0
dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBtZW1iZXIgbmFtZWQga2V5LgorICAvLy8gXG5v
dGUgJ2tleScgbXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCisgIGJvb2wgaXNNZW1iZXIoY29uc3Qg
Y2hhcioga2V5KSBjb25zdDsKKyAgLy8vIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEg
bWVtYmVyIG5hbWVkIGtleS4KKyAgLy8vIFxwYXJhbSBrZXkgbWF5IGNvbnRhaW4gZW1iZWRkZWQg
bnVsbHMuCisgIGJvb2wgaXNNZW1iZXIoY29uc3Qgc3RkOjpzdHJpbmcmIGtleSkgY29uc3Q7Cisg
IC8vLyBTYW1lIGFzIGlzTWVtYmVyKHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkpY29uc3QKKyAgYm9v
bCBpc01lbWJlcihjb25zdCBjaGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKSBjb25zdDsKKyNp
ZmRlZiBKU09OX1VTRV9DUFBUTAorICAvLy8gUmV0dXJuIHRydWUgaWYgdGhlIG9iamVjdCBoYXMg
YSBtZW1iZXIgbmFtZWQga2V5LgorICBib29sIGlzTWVtYmVyKGNvbnN0IENwcFRMOjpDb25zdFN0
cmluZyYga2V5KSBjb25zdDsKKyNlbmRpZgorCisgIC8vLyBcYnJpZWYgUmV0dXJuIGEgbGlzdCBv
ZiB0aGUgbWVtYmVyIG5hbWVzLgorICAvLy8KKyAgLy8vIElmIG51bGwsIHJldHVybiBhbiBlbXB0
eSBsaXN0LgorICAvLy8gXHByZSB0eXBlKCkgaXMgb2JqZWN0VmFsdWUgb3IgbnVsbFZhbHVlCisg
IC8vLyBccG9zdCBpZiB0eXBlKCkgd2FzIG51bGxWYWx1ZSwgaXQgcmVtYWlucyBudWxsVmFsdWUK
KyAgTWVtYmVycyBnZXRNZW1iZXJOYW1lcygpIGNvbnN0OworCisgIC8vIyBpZmRlZiBKU09OX1VT
RV9DUFBUTAorICAvLyAgICAgIEVudW1NZW1iZXJOYW1lcyBlbnVtTWVtYmVyTmFtZXMoKSBjb25z
dDsKKyAgLy8gICAgICBFbnVtVmFsdWVzIGVudW1WYWx1ZXMoKSBjb25zdDsKKyAgLy8jIGVuZGlm
CisKKyAgLy8vIFxkZXByZWNhdGVkIEFsd2F5cyBwYXNzIGxlbi4KKyAgSlNPTkNQUF9ERVBSRUNB
VEVEKCJVc2Ugc2V0Q29tbWVudChzdGQ6OnN0cmluZyBjb25zdCYpIGluc3RlYWQuIikKKyAgdm9p
ZCBzZXRDb21tZW50KGNvbnN0IGNoYXIqIGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2Vt
ZW50KTsKKyAgLy8vIENvbW1lbnRzIG11c3QgYmUgLy8uLi4gb3IgLyogLi4uICovCisgIHZvaWQg
c2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2Vt
ZW50IHBsYWNlbWVudCk7CisgIC8vLyBDb21tZW50cyBtdXN0IGJlIC8vLi4uIG9yIC8qIC4uLiAq
LworICB2b2lkIHNldENvbW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQsIENvbW1lbnRQ
bGFjZW1lbnQgcGxhY2VtZW50KTsKKyAgYm9vbCBoYXNDb21tZW50KENvbW1lbnRQbGFjZW1lbnQg
cGxhY2VtZW50KSBjb25zdDsKKyAgLy8vIEluY2x1ZGUgZGVsaW1pdGVycyBhbmQgZW1iZWRkZWQg
bmV3bGluZXMuCisgIHN0ZDo6c3RyaW5nIGdldENvbW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFj
ZW1lbnQpIGNvbnN0OworCisgIHN0ZDo6c3RyaW5nIHRvU3R5bGVkU3RyaW5nKCkgY29uc3Q7CisK
KyAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKKyAgY29uc3RfaXRlcmF0b3IgZW5kKCkg
Y29uc3Q7CisKKyAgaXRlcmF0b3IgYmVnaW4oKTsKKyAgaXRlcmF0b3IgZW5kKCk7CisKKyAgLy8g
QWNjZXNzb3JzIGZvciB0aGUgW3N0YXJ0LCBsaW1pdCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRo
ZSBKU09OIHRleHQgZnJvbQorICAvLyB3aGljaCB0aGlzIHZhbHVlIHdhcyBwYXJzZWQsIGlmIGFu
eS4KKyAgdm9pZCBzZXRPZmZzZXRTdGFydChzaXplX3Qgc3RhcnQpOworICB2b2lkIHNldE9mZnNl
dExpbWl0KHNpemVfdCBsaW1pdCk7CisgIHNpemVfdCBnZXRPZmZzZXRTdGFydCgpIGNvbnN0Owor
ICBzaXplX3QgZ2V0T2Zmc2V0TGltaXQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgdm9pZCBpbml0
QmFzaWMoVmFsdWVUeXBlIHR5cGUsIGJvb2wgYWxsb2NhdGVkID0gZmFsc2UpOworCisgIFZhbHVl
JiByZXNvbHZlUmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSk7CisgIFZhbHVlJiByZXNvbHZlUmVm
ZXJlbmNlKGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogZW5kKTsKKworICBzdHJ1Y3QgQ29t
bWVudEluZm8geworICAgIENvbW1lbnRJbmZvKCk7CisgICAgfkNvbW1lbnRJbmZvKCk7CisKKyAg
ICB2b2lkIHNldENvbW1lbnQoY29uc3QgY2hhciogdGV4dCwgc2l6ZV90IGxlbik7CisKKyAgICBj
aGFyKiBjb21tZW50XzsKKyAgfTsKKworICAvLyBzdHJ1Y3QgTWVtYmVyTmFtZXNUcmFuc2Zvcm0K
KyAgLy97CisgIC8vICAgdHlwZWRlZiBjb25zdCBjaGFyICpyZXN1bHRfdHlwZTsKKyAgLy8gICBj
b25zdCBjaGFyICpvcGVyYXRvcigpKCBjb25zdCBDWlN0cmluZyAmbmFtZSApIGNvbnN0CisgIC8v
ICAgeworICAvLyAgICAgIHJldHVybiBuYW1lLmNfc3RyKCk7CisgIC8vICAgfQorICAvL307CisK
KyAgdW5pb24gVmFsdWVIb2xkZXIgeworICAgIExhcmdlc3RJbnQgaW50XzsKKyAgICBMYXJnZXN0
VUludCB1aW50XzsKKyAgICBkb3VibGUgcmVhbF87CisgICAgYm9vbCBib29sXzsKKyAgICBjaGFy
KiBzdHJpbmdfOyAgLy8gYWN0dWFsbHkgcHRyIHRvIHVuc2lnbmVkLCBmb2xsb3dlZCBieSBzdHIs
IHVubGVzcyAhYWxsb2NhdGVkXworICAgIE9iamVjdFZhbHVlcyogbWFwXzsKKyAgfSB2YWx1ZV87
CisgIFZhbHVlVHlwZSB0eXBlXyA6IDg7CisgIHVuc2lnbmVkIGludCBhbGxvY2F0ZWRfIDogMTsg
Ly8gTm90ZXM6IGlmIGRlY2xhcmVkIGFzIGJvb2wsIGJpdGZpZWxkIGlzIHVzZWxlc3MuCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGFsbG9jYXRlZF8sIHN0cmluZ18g
bXVzdCBiZSBudWxsLXRlcm1pbmF0ZWQuCisgIENvbW1lbnRJbmZvKiBjb21tZW50c187CisgIFZh
bHVlICpkZWZhdWx0X3ZhbHVlXzsgIC8vIGlmIHZpYSAuZ2V0KCAia2V5IiwgZGVmYXVsdCApLCB0
aGlzIHdhcyB0aGUgZGVmYXVsdAorCisgIC8vIFtzdGFydCwgbGltaXQpIGJ5dGUgb2Zmc2V0cyBp
biB0aGUgc291cmNlIEpTT04gdGV4dCBmcm9tIHdoaWNoIHRoaXMgVmFsdWUKKyAgLy8gd2FzIGV4
dHJhY3RlZC4KKyAgc2l6ZV90IHN0YXJ0XzsKKyAgc2l6ZV90IGxpbWl0XzsKK307CisKKy8qKiBc
YnJpZWYgRXhwZXJpbWVudGFsIGFuZCB1bnRlc3RlZDogcmVwcmVzZW50cyBhbiBlbGVtZW50IG9m
IHRoZSAicGF0aCIgdG8KKyAqIGFjY2VzcyBhIG5vZGUuCisgKi8KK2NsYXNzIEpTT05fQVBJIFBh
dGhBcmd1bWVudCB7CitwdWJsaWM6CisgIGZyaWVuZCBjbGFzcyBQYXRoOworCisgIFBhdGhBcmd1
bWVudCgpOworICBQYXRoQXJndW1lbnQoQXJyYXlJbmRleCBpbmRleCk7CisgIFBhdGhBcmd1bWVu
dChjb25zdCBjaGFyKiBrZXkpOworICBQYXRoQXJndW1lbnQoY29uc3Qgc3RkOjpzdHJpbmcmIGtl
eSk7CisKK3ByaXZhdGU6CisgIGVudW0gS2luZCB7CisgICAga2luZE5vbmUgPSAwLAorICAgIGtp
bmRJbmRleCwKKyAgICBraW5kS2V5CisgIH07CisgIHN0ZDo6c3RyaW5nIGtleV87CisgIEFycmF5
SW5kZXggaW5kZXhfOworICBLaW5kIGtpbmRfOworfTsKKworLyoqIFxicmllZiBFeHBlcmltZW50
YWwgYW5kIHVudGVzdGVkOiByZXByZXNlbnRzIGEgInBhdGgiIHRvIGFjY2VzcyBhIG5vZGUuCisg
KgorICogU3ludGF4OgorICogLSAiLiIgPT4gcm9vdCBub2RlCisgKiAtICIuW25dIiA9PiBlbGVt
ZW50cyBhdCBpbmRleCAnbicgb2Ygcm9vdCBub2RlIChhbiBhcnJheSB2YWx1ZSkKKyAqIC0gIi5u
YW1lIiA9PiBtZW1iZXIgbmFtZWQgJ25hbWUnIG9mIHJvb3Qgbm9kZSAoYW4gb2JqZWN0IHZhbHVl
KQorICogLSAiLm5hbWUxLm5hbWUyLm5hbWUzIgorICogLSAiLlswXVsxXVsyXS5uYW1lMVszXSIK
KyAqIC0gIi4lIiA9PiBtZW1iZXIgbmFtZSBpcyBwcm92aWRlZCBhcyBwYXJhbWV0ZXIKKyAqIC0g
Ii5bJV0iID0+IGluZGV4IGlzIHByb3ZpZWQgYXMgcGFyYW1ldGVyCisgKi8KK2NsYXNzIEpTT05f
QVBJIFBhdGggeworcHVibGljOgorICBQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLAorICAg
ICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYTEgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25z
dCBQYXRoQXJndW1lbnQmIGEyID0gUGF0aEFyZ3VtZW50KCksCisgICAgICAgY29uc3QgUGF0aEFy
Z3VtZW50JiBhMyA9IFBhdGhBcmd1bWVudCgpLAorICAgICAgIGNvbnN0IFBhdGhBcmd1bWVudCYg
YTQgPSBQYXRoQXJndW1lbnQoKSwKKyAgICAgICBjb25zdCBQYXRoQXJndW1lbnQmIGE1ID0gUGF0
aEFyZ3VtZW50KCkpOworCisgIGNvbnN0IFZhbHVlJiByZXNvbHZlKGNvbnN0IFZhbHVlJiByb290
KSBjb25zdDsKKyAgVmFsdWUgcmVzb2x2ZShjb25zdCBWYWx1ZSYgcm9vdCwgY29uc3QgVmFsdWUm
IGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgIC8vLyBDcmVhdGVzIHRoZSAicGF0aCIgdG8gYWNjZXNz
IHRoZSBzcGVjaWZpZWQgbm9kZSBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSBvbgorICAvLy8gdGhl
IG5vZGUuCisgIFZhbHVlJiBtYWtlKFZhbHVlJiByb290KSBjb25zdDsKKworcHJpdmF0ZToKKyAg
dHlwZWRlZiBzdGQ6OnZlY3Rvcjxjb25zdCBQYXRoQXJndW1lbnQqPiBJbkFyZ3M7CisgIHR5cGVk
ZWYgc3RkOjp2ZWN0b3I8UGF0aEFyZ3VtZW50PiBBcmdzOworCisgIHZvaWQgbWFrZVBhdGgoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGgsIGNvbnN0IEluQXJncyYgaW4pOworICB2b2lkIGFkZFBhdGhJ
bkFyZyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW5BcmdzJiBpbiwKKyAgICAgICAgICAgICAgICAgICAgSW5BcmdzOjpjb25zdF9pdGVyYXRvciYg
aXRJbkFyZywKKyAgICAgICAgICAgICAgICAgICAgUGF0aEFyZ3VtZW50OjpLaW5kIGtpbmQpOwor
ICB2b2lkIGludmFsaWRQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBpbnQgbG9jYXRpb24p
OworCisgIEFyZ3MgYXJnc187Cit9OworCisvKiogXGJyaWVmIGJhc2UgY2xhc3MgZm9yIFZhbHVl
IGl0ZXJhdG9ycy4KKyAqCisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlSXRlcmF0b3JCYXNlIHsK
K3B1YmxpYzoKKyAgdHlwZWRlZiBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIGl0ZXJh
dG9yX2NhdGVnb3J5OworICB0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CisgIHR5cGVkZWYg
aW50IGRpZmZlcmVuY2VfdHlwZTsKKyAgdHlwZWRlZiBWYWx1ZUl0ZXJhdG9yQmFzZSBTZWxmVHlw
ZTsKKworICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBpc0VxdWFsKG90aGVyKTsgfQorCisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTZWxmVHlw
ZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICFpc0VxdWFsKG90aGVyKTsgfQorCisgIGRpZmZlcmVu
Y2VfdHlwZSBvcGVyYXRvci0oY29uc3QgU2VsZlR5cGUmIG90aGVyKSBjb25zdCB7CisgICAgcmV0
dXJuIG90aGVyLmNvbXB1dGVEaXN0YW5jZSgqdGhpcyk7CisgIH0KKworICAvLy8gUmV0dXJuIGVp
dGhlciB0aGUgaW5kZXggb3IgdGhlIG1lbWJlciBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHZhbHVl
IGFzIGEKKyAgLy8vIFZhbHVlLgorICBWYWx1ZSBrZXkoKSBjb25zdDsKKworICAvLy8gUmV0dXJu
IHRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgLTEgaWYgaXQgaXMgbm90IGFu
IGFycmF5VmFsdWUuCisgIFVJbnQgaW5kZXgoKSBjb25zdDsKKworICAvLy8gUmV0dXJuIHRoZSBt
ZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwgb3IgIiIgaWYgaXQgaXMgbm90IGFu
CisgIC8vLyBvYmplY3RWYWx1ZS4KKyAgLy8vIFxub3RlIEF2b2lkIGBjX3N0cigpYCBvbiByZXN1
bHQsIGFzIGVtYmVkZGVkIHplcm9lcyBhcmUgcG9zc2libGUuCisgIHN0ZDo6c3RyaW5nIG5hbWUo
KSBjb25zdDsKKworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNl
ZCBWYWx1ZS4gIiIgaWYgaXQgaXMgbm90IGFuCisgIC8vLyBvYmplY3RWYWx1ZS4KKyAgLy8vIFxk
ZXByZWNhdGVkIFRoaXMgY2Fubm90IGJlIHVzZWQgZm9yIFVURi04IHN0cmluZ3MsIHNpbmNlIHRo
ZXJlIGNhbiBiZSBlbWJlZGRlZCBudWxscy4KKyAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgYGtl
eSA9IG5hbWUoKTtgIGluc3RlYWQuIikKKyAgY2hhciBjb25zdCogbWVtYmVyTmFtZSgpIGNvbnN0
OworICAvLy8gUmV0dXJuIHRoZSBtZW1iZXIgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBWYWx1ZSwg
b3IgTlVMTCBpZiBpdCBpcyBub3QgYW4KKyAgLy8vIG9iamVjdFZhbHVlLgorICAvLy8gXG5vdGUg
QmV0dGVyIHZlcnNpb24gdGhhbiBtZW1iZXJOYW1lKCkuIEFsbG93cyBlbWJlZGRlZCBudWxscy4K
KyAgY2hhciBjb25zdCogbWVtYmVyTmFtZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdDsKKworcHJv
dGVjdGVkOgorICBWYWx1ZSYgZGVyZWYoKSBjb25zdDsKKworICB2b2lkIGluY3JlbWVudCgpOwor
CisgIHZvaWQgZGVjcmVtZW50KCk7CisKKyAgZGlmZmVyZW5jZV90eXBlIGNvbXB1dGVEaXN0YW5j
ZShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIGNvbnN0OworCisgIGJvb2wgaXNFcXVhbChjb25zdCBT
ZWxmVHlwZSYgb3RoZXIpIGNvbnN0OworCisgIHZvaWQgY29weShjb25zdCBTZWxmVHlwZSYgb3Ro
ZXIpOworCitwcml2YXRlOgorICBWYWx1ZTo6T2JqZWN0VmFsdWVzOjppdGVyYXRvciBjdXJyZW50
XzsKKyAgLy8gSW5kaWNhdGVzIHRoYXQgaXRlcmF0b3IgaXMgZm9yIGEgbnVsbCB2YWx1ZS4KKyAg
Ym9vbCBpc051bGxfOworCitwdWJsaWM6CisgIC8vIEZvciBzb21lIHJlYXNvbiwgQk9STEFORCBu
ZWVkcyB0aGVzZSBhdCB0aGUgZW5kLCByYXRoZXIKKyAgLy8gdGhhbiBlYXJsaWVyLiBObyBpZGVh
IHdoeS4KKyAgVmFsdWVJdGVyYXRvckJhc2UoKTsKKyAgZXhwbGljaXQgVmFsdWVJdGVyYXRvckJh
c2UoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOworfTsKKwor
LyoqIFxicmllZiBjb25zdCBpdGVyYXRvciBmb3Igb2JqZWN0IGFuZCBhcnJheSB2YWx1ZS4KKyAq
CisgKi8KK2NsYXNzIEpTT05fQVBJIFZhbHVlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBWYWx1ZUl0
ZXJhdG9yQmFzZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKKworcHVibGljOgorICB0eXBlZGVm
IGNvbnN0IFZhbHVlIHZhbHVlX3R5cGU7CisgIC8vdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90
OworICAvL3R5cGVkZWYgaW50IGRpZmZlcmVuY2VfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCBWYWx1
ZSYgcmVmZXJlbmNlOworICB0eXBlZGVmIGNvbnN0IFZhbHVlKiBwb2ludGVyOworICB0eXBlZGVm
IFZhbHVlQ29uc3RJdGVyYXRvciBTZWxmVHlwZTsKKworICBWYWx1ZUNvbnN0SXRlcmF0b3IoKTsK
KyAgVmFsdWVDb25zdEl0ZXJhdG9yKFZhbHVlSXRlcmF0b3IgY29uc3QmIG90aGVyKTsKKworcHJp
dmF0ZToKKy8qISBcaW50ZXJuYWwgVXNlIGJ5IFZhbHVlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvci4K
KyAqLworICBleHBsaWNpdCBWYWx1ZUNvbnN0SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOworcHVibGljOgorICBTZWxmVHlwZSYgb3BlcmF0b3I9
KGNvbnN0IFZhbHVlSXRlcmF0b3JCYXNlJiBvdGhlcik7CisKKyAgU2VsZlR5cGUgb3BlcmF0b3Ir
KyhpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICArKyp0aGlzOworICAgIHJl
dHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUgb3BlcmF0b3ItLShpbnQpIHsKKyAgICBTZWxm
VHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAtLSp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisK
KyAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7CisgICAgZGVjcmVtZW50KCk7CisgICAgcmV0dXJu
ICp0aGlzOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yKysoKSB7CisgICAgaW5jcmVtZW50
KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgcmVmZXJlbmNlIG9wZXJhdG9yKigpIGNv
bnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KKworICBwb2ludGVyIG9wZXJhdG9yLT4oKSBjb25zdCB7
IHJldHVybiAmZGVyZWYoKTsgfQorfTsKKworLyoqIFxicmllZiBJdGVyYXRvciBmb3Igb2JqZWN0
IGFuZCBhcnJheSB2YWx1ZS4KKyAqLworY2xhc3MgSlNPTl9BUEkgVmFsdWVJdGVyYXRvciA6IHB1
YmxpYyBWYWx1ZUl0ZXJhdG9yQmFzZSB7CisgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKKworcHVibGlj
OgorICB0eXBlZGVmIFZhbHVlIHZhbHVlX3R5cGU7CisgIHR5cGVkZWYgdW5zaWduZWQgaW50IHNp
emVfdDsKKyAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICB0eXBlZGVmIFZhbHVlJiBy
ZWZlcmVuY2U7CisgIHR5cGVkZWYgVmFsdWUqIHBvaW50ZXI7CisgIHR5cGVkZWYgVmFsdWVJdGVy
YXRvciBTZWxmVHlwZTsKKworICBWYWx1ZUl0ZXJhdG9yKCk7CisgIGV4cGxpY2l0IFZhbHVlSXRl
cmF0b3IoY29uc3QgVmFsdWVDb25zdEl0ZXJhdG9yJiBvdGhlcik7CisgIFZhbHVlSXRlcmF0b3Io
Y29uc3QgVmFsdWVJdGVyYXRvciYgb3RoZXIpOworCitwcml2YXRlOgorLyohIFxpbnRlcm5hbCBV
c2UgYnkgVmFsdWUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yLgorICovCisgIGV4cGxpY2l0IFZhbHVl
SXRlcmF0b3IoY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpOwor
cHVibGljOgorICBTZWxmVHlwZSYgb3BlcmF0b3I9KGNvbnN0IFNlbGZUeXBlJiBvdGhlcik7CisK
KyAgU2VsZlR5cGUgb3BlcmF0b3IrKyhpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsK
KyAgICArKyp0aGlzOworICAgIHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUgb3BlcmF0
b3ItLShpbnQpIHsKKyAgICBTZWxmVHlwZSB0ZW1wKCp0aGlzKTsKKyAgICAtLSp0aGlzOworICAg
IHJldHVybiB0ZW1wOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9yLS0oKSB7CisgICAgZGVj
cmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgU2VsZlR5cGUmIG9wZXJhdG9y
KysoKSB7CisgICAgaW5jcmVtZW50KCk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgcmVm
ZXJlbmNlIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIGRlcmVmKCk7IH0KKworICBwb2ludGVy
IG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiAmZGVyZWYoKTsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgSnNvbgorCisKK25hbWVzcGFjZSBzdGQgeworLy8vIFNwZWNpYWxpemUgc3RkOjpzd2Fw
KCkgZm9yIEpzb246OlZhbHVlLgordGVtcGxhdGU8PgoraW5saW5lIHZvaWQgc3dhcChKc29uOjpW
YWx1ZSYgYSwgSnNvbjo6VmFsdWUmIGIpIHsgYS5zd2FwKGIpOyB9Cit9CisKKworI2lmIGRlZmlu
ZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNwcmFnbWEgd2Fybmlu
Zyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFD
RV9XQVJOSU5HKQorCisjZW5kaWYgLy8gQ1BQVExfSlNPTl9IX0lOQ0xVREVECisKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi92YWx1ZS5o
CisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdp
bm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRlL2pzb24vcmVhZGVyLmgKKy8vIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKy8v
IERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2ly
ZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2Uu
bmV0L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVECisjZGVm
aW5lIENQUFRMX0pTT05fUkVBREVSX0hfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKEpTT05fSVNf
QU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImZlYXR1cmVzLmgiCisjaW5jbHVkZSAidmFsdWUuaCIK
KyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxk
ZXF1ZT4KKyNpbmNsdWRlIDxpb3Nmd2Q+CisjaW5jbHVkZSA8c3RhY2s+CisjaW5jbHVkZSA8c3Ry
aW5nPgorI2luY2x1ZGUgPGlzdHJlYW0+CisKKy8vIERpc2FibGUgd2FybmluZyBDNDI1MTogPGRh
dGEgbWVtYmVyPjogPHR5cGU+IG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bworLy8gYmUg
dXNlZCBieS4uLgorI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FS
TklORykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0
MjUxKQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0Vf
V0FSTklORykKKworbmFtZXNwYWNlIEpzb24geworCisvKiogXGJyaWVmIFVuc2VyaWFsaXplIGEg
PGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4gZG9jdW1lbnQgaW50byBhCisg
KlZhbHVlLgorICoKKyAqIFxkZXByZWNhdGVkIFVzZSBDaGFyUmVhZGVyIGFuZCBDaGFyUmVhZGVy
QnVpbGRlci4KKyAqLworY2xhc3MgSlNPTl9BUEkgUmVhZGVyIHsKK3B1YmxpYzoKKyAgdHlwZWRl
ZiBjaGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247CisKKyAgLyoqIFxi
cmllZiBBbiBlcnJvciB0YWdnZWQgd2l0aCB3aGVyZSBpbiB0aGUgSlNPTiB0ZXh0IGl0IHdhcyBl
bmNvdW50ZXJlZC4KKyAgICoKKyAgICogVGhlIG9mZnNldHMgZ2l2ZSB0aGUgW3N0YXJ0LCBsaW1p
dCkgcmFuZ2Ugb2YgYnl0ZXMgd2l0aGluIHRoZSB0ZXh0LiBOb3RlCisgICAqIHRoYXQgdGhpcyBp
cyBieXRlcywgbm90IGNvZGVwb2ludHMuCisgICAqCisgICAqLworICBzdHJ1Y3QgU3RydWN0dXJl
ZEVycm9yIHsKKyAgICBzaXplX3Qgb2Zmc2V0X3N0YXJ0OworICAgIHNpemVfdCBvZmZzZXRfbGlt
aXQ7CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZTsKKyAgfTsKKworICAvKiogXGJyaWVmIENvbnN0
cnVjdHMgYSBSZWFkZXIgYWxsb3dpbmcgYWxsIGZlYXR1cmVzCisgICAqIGZvciBwYXJzaW5nLgor
ICAgKi8KKyAgUmVhZGVyKCk7CisKKyAgLyoqIFxicmllZiBDb25zdHJ1Y3RzIGEgUmVhZGVyIGFs
bG93aW5nIHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBzZXQKKyAgICogZm9yIHBhcnNpbmcuCisgICAq
LworICBSZWFkZXIoY29uc3QgRmVhdHVyZXMmIGZlYXR1cmVzKTsKKworICAvKiogXGJyaWVmIFJl
YWQgYSBWYWx1ZSBmcm9tIGEgPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNPTjwvYT4K
KyAgICogZG9jdW1lbnQuCisgICAqIFxwYXJhbSBkb2N1bWVudCBVVEYtOCBlbmNvZGVkIHN0cmlu
ZyBjb250YWluaW5nIHRoZSBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gcm9vdCBbb3V0
XSBDb250YWlucyB0aGUgcm9vdCB2YWx1ZSBvZiB0aGUgZG9jdW1lbnQgaWYgaXQgd2FzCisgICAq
ICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBwYXJzZWQuCisgICAqIFxwYXJhbSBjb2xsZWN0Q29t
bWVudHMgXGMgdHJ1ZSB0byBjb2xsZWN0IGNvbW1lbnQgYW5kIGFsbG93IHdyaXRpbmcgdGhlbQor
ICAgKiBiYWNrIGR1cmluZworICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRp
b24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVudHMuCisgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpZgorICAgKiBGZWF0dXJlczo6YWxsb3dD
b21tZW50c18KKyAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBcYyBmYWxzZS4KKyAgICog
XHJldHVybiBcYyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBhcnNlZCwg
XGMgZmFsc2UgaWYgYW4KKyAgICogZXJyb3Igb2NjdXJyZWQuCisgICAqLworICBib29sCisgIHBh
cnNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkb2N1bWVudCwgVmFsdWUmIHJvb3QsIGJvb2wgY29sbGVj
dENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLyoqIFxicmllZiBSZWFkIGEgVmFsdWUgZnJvbSBhIDxh
IEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+CisgICBkb2N1bWVudC4KKyAgICog
XHBhcmFtIGJlZ2luRG9jIFBvaW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5j
b2RlZCBzdHJpbmcgb2YgdGhlCisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gZW5k
RG9jIFBvaW50ZXIgb24gdGhlIGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhl
CisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiAgICAgICAgICAgICAgIE11c3QgYmUgPj0gYmVn
aW5Eb2MuCisgICAqIFxwYXJhbSByb290IFtvdXRdIENvbnRhaW5zIHRoZSByb290IHZhbHVlIG9m
IHRoZSBkb2N1bWVudCBpZiBpdCB3YXMKKyAgICogICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHBh
cnNlZC4KKyAgICogXHBhcmFtIGNvbGxlY3RDb21tZW50cyBcYyB0cnVlIHRvIGNvbGxlY3QgY29t
bWVudCBhbmQgYWxsb3cgd3JpdGluZyB0aGVtCisgICBiYWNrIGR1cmluZworICAgKiAgICAgICAg
ICAgICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24sIFxjIGZhbHNlIHRvIGRpc2NhcmQgY29tbWVu
dHMuCisgICAqICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3Jl
ZCBpZgorICAgRmVhdHVyZXM6OmFsbG93Q29tbWVudHNfCisgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgaXMgXGMgZmFsc2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQg
d2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQsIFxjIGZhbHNlIGlmIGFuCisgICBlcnJvciBvY2N1cnJl
ZC4KKyAgICovCisgIGJvb2wgcGFyc2UoY29uc3QgY2hhciogYmVnaW5Eb2MsCisgICAgICAgICAg
ICAgY29uc3QgY2hhciogZW5kRG9jLAorICAgICAgICAgICAgIFZhbHVlJiByb290LAorICAgICAg
ICAgICAgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gdHJ1ZSk7CisKKyAgLy8vIFxicmllZiBQYXJz
ZSBmcm9tIGlucHV0IHN0cmVhbS4KKyAgLy8vIFxzZWUgSnNvbjo6b3BlcmF0b3I+PihzdGQ6Omlz
dHJlYW0mLCBKc29uOjpWYWx1ZSYpLgorICBib29sIHBhcnNlKHN0ZDo6aXN0cmVhbSYgaXMsIFZh
bHVlJiByb290LCBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOworCisgIC8qKiBcYnJpZWYg
UmV0dXJucyBhIHVzZXIgZnJpZW5kbHkgc3RyaW5nIHRoYXQgbGlzdCBlcnJvcnMgaW4gdGhlIHBh
cnNlZAorICAgKiBkb2N1bWVudC4KKyAgICogXHJldHVybiBGb3JtYXR0ZWQgZXJyb3IgbWVzc2Fn
ZSB3aXRoIHRoZSBsaXN0IG9mIGVycm9ycyB3aXRoIHRoZWlyIGxvY2F0aW9uCisgICAqIGluCisg
ICAqICAgICAgICAgdGhlIHBhcnNlZCBkb2N1bWVudC4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVy
bmVkIGlmIG5vIGVycm9yCisgICAqIG9jY3VycmVkCisgICAqICAgICAgICAgZHVyaW5nIHBhcnNp
bmcuCisgICAqIFxkZXByZWNhdGVkIFVzZSBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgaW5z
dGVhZCAodHlwbyBmaXgpLgorICAgKi8KKyAgSlNPTkNQUF9ERVBSRUNBVEVEKCJVc2UgZ2V0Rm9y
bWF0dGVkRXJyb3JNZXNzYWdlcygpIGluc3RlYWQuIikKKyAgc3RkOjpzdHJpbmcgZ2V0Rm9ybWF0
ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7CisKKyAgLyoqIFxicmllZiBSZXR1cm5zIGEgdXNlciBm
cmllbmRseSBzdHJpbmcgdGhhdCBsaXN0IGVycm9ycyBpbiB0aGUgcGFyc2VkCisgICAqIGRvY3Vt
ZW50LgorICAgKiBccmV0dXJuIEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIHdpdGggdGhlIGxpc3Qg
b2YgZXJyb3JzIHdpdGggdGhlaXIgbG9jYXRpb24KKyAgICogaW4KKyAgICogICAgICAgICB0aGUg
cGFyc2VkIGRvY3VtZW50LiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgbm8gZXJyb3IK
KyAgICogb2NjdXJyZWQKKyAgICogICAgICAgICBkdXJpbmcgcGFyc2luZy4KKyAgICovCisgIHN0
ZDo6c3RyaW5nIGdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdDsKKworICAvKiogXGJy
aWVmIFJldHVybnMgYSB2ZWN0b3Igb2Ygc3RydWN0dXJlZCBlcnJvcyBlbmNvdW50ZWQgd2hpbGUg
cGFyc2luZy4KKyAgICogXHJldHVybiBBIChwb3NzaWJseSBlbXB0eSkgdmVjdG9yIG9mIFN0cnVj
dHVyZWRFcnJvciBvYmplY3RzLiBDdXJyZW50bHkKKyAgICogICAgICAgICBvbmx5IG9uZSBlcnJv
ciBjYW4gYmUgcmV0dXJuZWQsIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCB0b2xlcmF0ZQorICAgKiBt
dWx0aXBsZQorICAgKiAgICAgICAgIGVycm9ycy4gIFRoaXMgY2FuIG9jY3VyIGlmIHRoZSBwYXJz
ZXIgcmVjb3ZlcnMgZnJvbSBhIG5vbi1mYXRhbAorICAgKiAgICAgICAgIHBhcnNlIGVycm9yIGFu
ZCB0aGVuIGVuY291bnRlcnMgYWRkaXRpb25hbCBlcnJvcnMuCisgICAqLworICBzdGQ6OnZlY3Rv
cjxTdHJ1Y3R1cmVkRXJyb3I+IGdldFN0cnVjdHVyZWRFcnJvcnMoKSBjb25zdDsKKworICAvKiog
XGJyaWVmIEFkZCBhIHNlbWFudGljIGVycm9yIG1lc3NhZ2UuCisgICAqIFxwYXJhbSB2YWx1ZSBK
U09OIFZhbHVlIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IKKyAgICogXHBhcmFt
IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCisgICAqIFxyZXR1cm4gXGMgdHJ1ZSBpZiB0aGUg
ZXJyb3Igd2FzIHN1Y2Nlc3NmdWxseSBhZGRlZCwgXGMgZmFsc2UgaWYgdGhlCisgICAqIFZhbHVl
IG9mZnNldCBleGNlZWRzIHRoZSBkb2N1bWVudCBzaXplLgorICAgKi8KKyAgYm9vbCBwdXNoRXJy
b3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSk7CisKKyAg
LyoqIFxicmllZiBBZGQgYSBzZW1hbnRpYyBlcnJvciBtZXNzYWdlIHdpdGggZXh0cmEgY29udGV4
dC4KKyAgICogXHBhcmFtIHZhbHVlIEpTT04gVmFsdWUgbG9jYXRpb24gYXNzb2NpYXRlZCB3aXRo
IHRoZSBlcnJvcgorICAgKiBccGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAgICog
XHBhcmFtIGV4dHJhIEFkZGl0aW9uYWwgSlNPTiBWYWx1ZSBsb2NhdGlvbiB0byBjb250ZXh0dWFs
aXplIHRoZSBlcnJvcgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGVycm9yIHdhcyBzdWNj
ZXNzZnVsbHkgYWRkZWQsIFxjIGZhbHNlIGlmIGVpdGhlcgorICAgKiBWYWx1ZSBvZmZzZXQgZXhj
ZWVkcyB0aGUgZG9jdW1lbnQgc2l6ZS4KKyAgICovCisgIGJvb2wgcHVzaEVycm9yKGNvbnN0IFZh
bHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRy
YSk7CisKKyAgLyoqIFxicmllZiBSZXR1cm4gd2hldGhlciB0aGVyZSBhcmUgYW55IGVycm9ycy4K
KyAgICogXHJldHVybiBcYyB0cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gcmVwb3J0IFxj
IGZhbHNlIGlmCisgICAqIGVycm9ycyBoYXZlIG9jY3VycmVkLgorICAgKi8KKyAgYm9vbCBnb29k
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgIGVudW0gVG9rZW5UeXBlIHsKKyAgICB0b2tlbkVuZE9m
U3RyZWFtID0gMCwKKyAgICB0b2tlbk9iamVjdEJlZ2luLAorICAgIHRva2VuT2JqZWN0RW5kLAor
ICAgIHRva2VuQXJyYXlCZWdpbiwKKyAgICB0b2tlbkFycmF5RW5kLAorICAgIHRva2VuU3RyaW5n
LAorICAgIHRva2VuTnVtYmVyLAorICAgIHRva2VuVHJ1ZSwKKyAgICB0b2tlbkZhbHNlLAorICAg
IHRva2VuTnVsbCwKKyAgICB0b2tlbkFycmF5U2VwYXJhdG9yLAorICAgIHRva2VuTWVtYmVyU2Vw
YXJhdG9yLAorICAgIHRva2VuQ29tbWVudCwKKyAgICB0b2tlbkVycm9yCisgIH07CisKKyAgY2xh
c3MgVG9rZW4geworICBwdWJsaWM6CisgICAgVG9rZW5UeXBlIHR5cGVfOworICAgIExvY2F0aW9u
IHN0YXJ0XzsKKyAgICBMb2NhdGlvbiBlbmRfOworICB9OworCisgIGNsYXNzIEVycm9ySW5mbyB7
CisgIHB1YmxpYzoKKyAgICBUb2tlbiB0b2tlbl87CisgICAgc3RkOjpzdHJpbmcgbWVzc2FnZV87
CisgICAgTG9jYXRpb24gZXh0cmFfOworICB9OworCisgIHR5cGVkZWYgc3RkOjpkZXF1ZTxFcnJv
ckluZm8+IEVycm9yczsKKworICBib29sIHJlYWRUb2tlbihUb2tlbiYgdG9rZW4pOworICB2b2lk
IHNraXBTcGFjZXMoKTsKKyAgYm9vbCBtYXRjaChMb2NhdGlvbiBwYXR0ZXJuLCBpbnQgcGF0dGVy
bkxlbmd0aCk7CisgIGJvb2wgcmVhZENvbW1lbnQoKTsKKyAgYm9vbCByZWFkQ1N0eWxlQ29tbWVu
dCgpOworICBib29sIHJlYWRDcHBTdHlsZUNvbW1lbnQoKTsKKyAgYm9vbCByZWFkU3RyaW5nKCk7
CisgIHZvaWQgcmVhZE51bWJlcigpOworICBib29sIHJlYWRWYWx1ZSgpOworICBib29sIHJlYWRP
YmplY3QoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCByZWFkQXJyYXkoVG9rZW4mIHRva2VuKTsKKyAg
Ym9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNvZGVOdW1iZXIoVG9r
ZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0
b2tlbik7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRl
Y29kZWQpOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOworICBib29sIGRlY29k
ZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9vbCBkZWNvZGVVbmlj
b2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRp
b24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50JiB1bmlj
b2RlKTsKKyAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9rZW4mIHRva2VuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYgY3VycmVudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNvZGUpOworICBib29s
IGFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYgdG9rZW4sIExvY2F0
aW9uIGV4dHJhID0gMCk7CisgIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVu
dGlsVG9rZW4pOworICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBzdGQ6OnN0cmluZyYg
bWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRva2VuLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pOworICB2b2lkIHNr
aXBVbnRpbFNwYWNlKCk7CisgIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKKyAgQ2hhciBnZXROZXh0
Q2hhcigpOworICB2b2lkCisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2Nh
dGlvbiwgaW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7CisgIHN0ZDo6c3RyaW5nIGdldExv
Y2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7CisgIHN0ZDo6c3Ry
aW5nIGdldExvY2F0aW9uU25pcHBldChMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7CisgIHZvaWQg
YWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCk7CisgIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRva2VuKTsKKwor
ICB0eXBlZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKKyAgTm9kZXMgbm9kZXNfOworICBF
cnJvcnMgZXJyb3JzXzsKKyAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOworICBMb2NhdGlvbiBiZWdp
bl87CisgIExvY2F0aW9uIGVuZF87CisgIExvY2F0aW9uIGN1cnJlbnRfOworICBMb2NhdGlvbiBs
YXN0VmFsdWVFbmRfOworICBWYWx1ZSogbGFzdFZhbHVlXzsKKyAgc3RkOjpzdHJpbmcgY29tbWVu
dHNCZWZvcmVfOworICBGZWF0dXJlcyBmZWF0dXJlc187CisgIGJvb2wgY29sbGVjdENvbW1lbnRz
XzsKK307ICAvLyBSZWFkZXIKKworLyoqIEludGVyZmFjZSBmb3IgcmVhZGluZyBKU09OIGZyb20g
YSBjaGFyIGFycmF5LgorICovCitjbGFzcyBKU09OX0FQSSBDaGFyUmVhZGVyIHsKK3B1YmxpYzoK
KyAgdmlydHVhbCB+Q2hhclJlYWRlcigpIHt9CisgIC8qKiBcYnJpZWYgUmVhZCBhIFZhbHVlIGZy
b20gYSA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPgorICAgZG9jdW1lbnQu
CisgICAqIFRoZSBkb2N1bWVudCBtdXN0IGJlIGEgVVRGLTggZW5jb2RlZCBzdHJpbmcgY29udGFp
bmluZyB0aGUgZG9jdW1lbnQgdG8gcmVhZC4KKyAgICoKKyAgICogXHBhcmFtIGJlZ2luRG9jIFBv
aW50ZXIgb24gdGhlIGJlZ2lubmluZyBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhl
CisgICBkb2N1bWVudCB0byByZWFkLgorICAgKiBccGFyYW0gZW5kRG9jIFBvaW50ZXIgb24gdGhl
IGVuZCBvZiB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgb2YgdGhlCisgICBkb2N1bWVudCB0byBy
ZWFkLgorICAgKiAgICAgICAgTXVzdCBiZSA+PSBiZWdpbkRvYy4KKyAgICogXHBhcmFtIHJvb3Qg
W291dF0gQ29udGFpbnMgdGhlIHJvb3QgdmFsdWUgb2YgdGhlIGRvY3VtZW50IGlmIGl0IHdhcwor
ICAgKiAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgcGFyc2VkLgorICAgKiBccGFyYW0gZXJycyBb
b3V0XSBGb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZXMgKGlmIG5vdCBOVUxMKQorICAgKiAgICAgICAg
YSB1c2VyIGZyaWVuZGx5IHN0cmluZyB0aGF0IGxpc3RzIGVycm9ycyBpbiB0aGUgcGFyc2VkCisg
ICAqIGRvY3VtZW50LgorICAgKiBccmV0dXJuIFxjIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBz
dWNjZXNzZnVsbHkgcGFyc2VkLCBcYyBmYWxzZSBpZiBhbgorICAgZXJyb3Igb2NjdXJyZWQuCisg
ICAqLworICB2aXJ0dWFsIGJvb2wgcGFyc2UoCisgICAgICBjaGFyIGNvbnN0KiBiZWdpbkRvYywg
Y2hhciBjb25zdCogZW5kRG9jLAorICAgICAgVmFsdWUqIHJvb3QsIHN0ZDo6c3RyaW5nKiBlcnJz
KSA9IDA7CisKKyAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7CisgIHB1YmxpYzoKKyAgICB2aXJ0
dWFsIH5GYWN0b3J5KCkge30KKyAgICAvKiogXGJyaWVmIEFsbG9jYXRlIGEgQ2hhclJlYWRlciB2
aWEgb3BlcmF0b3IgbmV3KCkuCisgICAgICogXHRocm93IHN0ZDo6ZXhjZXB0aW9uIGlmIHNvbWV0
aGluZyBnb2VzIHdyb25nIChlLmcuIGludmFsaWQgc2V0dGluZ3MpCisgICAgICovCisgICAgdmly
dHVhbCBDaGFyUmVhZGVyKiBuZXdDaGFyUmVhZGVyKCkgY29uc3QgPSAwOworICB9OyAgLy8gRmFj
dG9yeQorfTsgIC8vIENoYXJSZWFkZXIKKworLyoqIFxicmllZiBCdWlsZCBhIENoYXJSZWFkZXIg
aW1wbGVtZW50YXRpb24uCisKK1VzYWdlOgorXGNvZGUKKyAgdXNpbmcgbmFtZXNwYWNlIEpzb247
CisgIENoYXJSZWFkZXJCdWlsZGVyIGJ1aWxkZXI7CisgIGJ1aWxkZXJbImNvbGxlY3RDb21tZW50
cyJdID0gZmFsc2U7CisgIFZhbHVlIHZhbHVlOworICBzdGQ6OnN0cmluZyBlcnJzOworICBib29s
IG9rID0gcGFyc2VGcm9tU3RyZWFtKGJ1aWxkZXIsIHN0ZDo6Y2luLCAmdmFsdWUsICZlcnJzKTsK
K1xlbmRjb2RlCisqLworY2xhc3MgSlNPTl9BUEkgQ2hhclJlYWRlckJ1aWxkZXIgOiBwdWJsaWMg
Q2hhclJlYWRlcjo6RmFjdG9yeSB7CitwdWJsaWM6CisgIC8vIE5vdGU6IFdlIHVzZSBhIEpzb246
OlZhbHVlIHNvIHRoYXQgd2UgY2FuIGFkZCBkYXRhLW1lbWJlcnMgdG8gdGhpcyBjbGFzcworICAv
LyB3aXRob3V0IGEgbWFqb3IgdmVyc2lvbiBidW1wLgorICAvKiogQ29uZmlndXJhdGlvbiBvZiB0
aGlzIGJ1aWxkZXIuCisgICAgVGhlc2UgYXJlIGNhc2Utc2Vuc2l0aXZlLgorICAgIEF2YWlsYWJs
ZSBzZXR0aW5ncyAoY2FzZS1zZW5zaXRpdmUpOgorICAgIC0gYCJjb2xsZWN0Q29tbWVudHMiOiBm
YWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIHRvIGNvbGxlY3QgY29tbWVudCBhbmQgYWxsb3cg
d3JpdGluZyB0aGVtCisgICAgICAgIGJhY2sgZHVyaW5nIHNlcmlhbGl6YXRpb24sIGZhbHNlIHRv
IGRpc2NhcmQgY29tbWVudHMuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQgaWYg
YWxsb3dDb21tZW50cyBpcyBmYWxzZS4KKyAgICAtIGAiYWxsb3dDb21tZW50cyI6IGZhbHNlIG9y
IHRydWVgCisgICAgICAtIHRydWUgaWYgY29tbWVudHMgYXJlIGFsbG93ZWQuCisgICAgLSBgInN0
cmljdFJvb3QiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlmIHJvb3QgbXVzdCBiZSBl
aXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlCisgICAgLSBgImFsbG93RHJvcHBlZE51
bGxQbGFjZWhvbGRlcnMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVlIGlmIGRyb3BwZWQg
bnVsbCBwbGFjZWhvbGRlcnMgYXJlIGFsbG93ZWQuIChTZWUgU3RyZWFtV3JpdGVyQnVpbGRlci4p
CisgICAgLSBgImFsbG93TnVtZXJpY0tleXMiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSB0cnVl
IGlmIG51bWVyaWMgb2JqZWN0IGtleXMgYXJlIGFsbG93ZWQuCisgICAgLSBgImFsbG93U2luZ2xl
UXVvdGVzIjogZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gdHJ1ZSBpZiAnJyBhcmUgYWxsb3dlZCBm
b3Igc3RyaW5ncyAoYm90aCBrZXlzIGFuZCB2YWx1ZXMpCisgICAgLSBgInN0YWNrTGltaXQiOiBp
bnRlZ2VyYAorICAgICAgLSBFeGNlZWRpbmcgc3RhY2tMaW1pdCAocmVjdXJzaXZlIGRlcHRoIG9m
IGByZWFkVmFsdWUoKWApIHdpbGwKKyAgICAgICAgY2F1c2UgYW4gZXhjZXB0aW9uLgorICAgICAg
LSBUaGlzIGlzIGEgc2VjdXJpdHkgaXNzdWUgKHNlZy1mYXVsdHMgY2F1c2VkIGJ5IGRlZXBseSBu
ZXN0ZWQgSlNPTiksCisgICAgICAgIHNvIHRoZSBkZWZhdWx0IGlzIGxvdy4KKyAgICAtIGAiZmFp
bElmRXh0cmEiOiBmYWxzZSBvciB0cnVlYAorICAgICAgLSBJZiB0cnVlLCBgcGFyc2UoKWAgcmV0
dXJucyBmYWxzZSB3aGVuIGV4dHJhIG5vbi13aGl0ZXNwYWNlIHRyYWlscworICAgICAgICB0aGUg
SlNPTiB2YWx1ZSBpbiB0aGUgaW5wdXQgc3RyaW5nLgorICAgIC0gYCJyZWplY3REdXBLZXlzIjog
ZmFsc2Ugb3IgdHJ1ZWAKKyAgICAgIC0gSWYgdHJ1ZSwgYHBhcnNlKClgIHJldHVybnMgZmFsc2Ug
d2hlbiBhIGtleSBpcyBkdXBsaWNhdGVkIHdpdGhpbiBhbiBvYmplY3QuCisgICAgLSBgImFsbG93
U3BlY2lhbEZsb2F0cyI6IGZhbHNlIG9yIHRydWVgCisgICAgICAtIElmIHRydWUsIHNwZWNpYWwg
ZmxvYXQgdmFsdWVzIChOYU5zIGFuZCBpbmZpbml0aWVzKSBhcmUgYWxsb3dlZCAKKyAgICAgICAg
YW5kIHRoZWlyIHZhbHVlcyBhcmUgbG9zc2ZyZWUgcmVzdG9yYWJsZS4KKworICAgIFlvdSBjYW4g
ZXhhbWluZSAnc2V0dGluZ3NfYCB5b3Vyc2VsZgorICAgIHRvIHNlZSB0aGUgZGVmYXVsdHMuIFlv
dSBjYW4gYWxzbyB3cml0ZSBhbmQgcmVhZCB0aGVtIGp1c3QgbGlrZSBhbnkKKyAgICBKU09OIFZh
bHVlLgorICAgIFxzYSBzZXREZWZhdWx0cygpCisgICAgKi8KKyAgSnNvbjo6VmFsdWUgc2V0dGlu
Z3NfOworCisgIENoYXJSZWFkZXJCdWlsZGVyKCk7CisgIH5DaGFyUmVhZGVyQnVpbGRlcigpOwor
CisgIENoYXJSZWFkZXIqIG5ld0NoYXJSZWFkZXIoKSBjb25zdDsKKworICAvKiogXHJldHVybiB0
cnVlIGlmICdzZXR0aW5ncycgYXJlIGxlZ2FsIGFuZCBjb25zaXN0ZW50OworICAgKiAgIG90aGVy
d2lzZSwgaW5kaWNhdGUgYmFkIHNldHRpbmdzIHZpYSAnaW52YWxpZCcuCisgICAqLworICBib29s
IHZhbGlkYXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdDsKKworICAvKiogQSBzaW1wbGUg
d2F5IHRvIHVwZGF0ZSBhIHNwZWNpZmljIHNldHRpbmcuCisgICAqLworICBWYWx1ZSYgb3BlcmF0
b3JbXShzdGQ6OnN0cmluZyBrZXkpOworCisgIC8qKiBDYWxsZWQgYnkgY3RvciwgYnV0IHlvdSBj
YW4gdXNlIHRoaXMgdG8gcmVzZXQgc2V0dGluZ3NfLgorICAgKiBccHJlICdzZXR0aW5ncycgIT0g
TlVMTCAoYnV0IEpzb246Om51bGwgaXMgZmluZSkKKyAgICogXHJlbWFyayBEZWZhdWx0czoKKyAg
ICogXHNuaXBwZXQgc3JjL2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcCBDaGFyUmVhZGVyQnVpbGRl
ckRlZmF1bHRzCisgICAqLworICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSog
c2V0dGluZ3MpOworICAvKiogU2FtZSBhcyBvbGQgRmVhdHVyZXM6OnN0cmljdE1vZGUoKS4KKyAg
ICogXHByZSAnc2V0dGluZ3MnICE9IE5VTEwgKGJ1dCBKc29uOjpudWxsIGlzIGZpbmUpCisgICAq
IFxyZW1hcmsgRGVmYXVsdHM6CisgICAqIFxzbmlwcGV0IHNyYy9saWJfanNvbi9qc29uX3JlYWRl
ci5jcHAgQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlCisgICAqLworICBzdGF0aWMgdm9pZCBz
dHJpY3RNb2RlKEpzb246OlZhbHVlKiBzZXR0aW5ncyk7Cit9OworCisvKiogQ29uc3VtZSBlbnRp
cmUgc3RyZWFtIGFuZCB1c2UgaXRzIGJlZ2luL2VuZC4KKyAgKiBTb21lZGF5IHdlIG1pZ2h0IGhh
dmUgYSByZWFsIFN0cmVhbVJlYWRlciwgYnV0IGZvciBub3cgdGhpcworICAqIGlzIGNvbnZlbmll
bnQuCisgICovCitib29sIEpTT05fQVBJIHBhcnNlRnJvbVN0cmVhbSgKKyAgICBDaGFyUmVhZGVy
OjpGYWN0b3J5IGNvbnN0JiwKKyAgICBzdGQ6OmlzdHJlYW0mLAorICAgIFZhbHVlKiByb290LCBz
dGQ6OnN0cmluZyogZXJycyk7CisKKy8qKiBcYnJpZWYgUmVhZCBmcm9tICdzaW4nIGludG8gJ3Jv
b3QnLgorCisgQWx3YXlzIGtlZXAgY29tbWVudHMgZnJvbSB0aGUgaW5wdXQgSlNPTi4KKworIFRo
aXMgY2FuIGJlIHVzZWQgdG8gcmVhZCBhIGZpbGUgaW50byBhIHBhcnRpY3VsYXIgc3ViLW9iamVj
dC4KKyBGb3IgZXhhbXBsZToKKyBcY29kZQorIEpzb246OlZhbHVlIHJvb3Q7CisgY2luID4+IHJv
b3RbImRpciJdWyJmaWxlIl07CisgY291dCA8PCByb290OworIFxlbmRjb2RlCisgUmVzdWx0Ogor
IFx2ZXJiYXRpbQorIHsKKyAiZGlyIjogeworICAgICAiZmlsZSI6IHsKKyAgICAgLy8gVGhlIGlu
cHV0IHN0cmVhbSBKU09OIHdvdWxkIGJlIG5lc3RlZCBoZXJlLgorICAgICB9CisgfQorIH0KKyBc
ZW5kdmVyYmF0aW0KKyBcdGhyb3cgc3RkOjpleGNlcHRpb24gb24gcGFyc2UgZXJyb3IuCisgXHNl
ZSBKc29uOjpvcGVyYXRvcjw8KCkKKyovCitKU09OX0FQSSBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9y
Pj4oc3RkOjppc3RyZWFtJiwgVmFsdWUmKTsKKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisjaWYg
ZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJOSU5HKQorI3ByYWdtYSB3
YXJuaW5nKHBvcCkKKyNlbmRpZiAvLyBpZiBkZWZpbmVkKEpTT05DUFBfRElTQUJMRV9ETExfSU5U
RVJGQUNFX1dBUk5JTkcpCisKKyNlbmRpZiAvLyBDUFBUTF9KU09OX1JFQURFUl9IX0lOQ0xVREVE
CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUv
anNvbi9yZWFkZXIuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5jbHVkZS9qc29uL3dyaXRl
ci5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlzdGUg
TGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGljIGRv
bWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlvbi4K
Ky8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29uY3Bw
LnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgSlNPTl9XUklURVJfSF9JTkNMVURF
RAorI2RlZmluZSBKU09OX1dSSVRFUl9IX0lOQ0xVREVECisKKyNpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKyNpbmNsdWRlICJ2YWx1ZS5oIgorI2VuZGlmIC8vIGlmICFkZWZpbmVk
KEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8b3N0cmVhbT4KKworLy8gRGlzYWJsZSB3YXJuaW5nIEM0MjUxOiA8ZGF0
YSBtZW1iZXI+OiA8dHlwZT4gbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvCisvLyBiZSB1
c2VkIGJ5Li4uCisjaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9XQVJO
SU5HKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQy
NTEpCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVfRExMX0lOVEVSRkFDRV9X
QVJOSU5HKQorCituYW1lc3BhY2UgSnNvbiB7CisKK2NsYXNzIFZhbHVlOworCisvKioKKworVXNh
Z2U6CitcY29kZQorICB1c2luZyBuYW1lc3BhY2UgSnNvbjsKKyAgdm9pZCB3cml0ZVRvU3Rkb3V0
KFN0cmVhbVdyaXRlcjo6RmFjdG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHZhbHVl
KSB7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0cmVhbVdyaXRlcj4gY29uc3Qgd3JpdGVyKAorICAg
ICAgZmFjdG9yeS5uZXdTdHJlYW1Xcml0ZXIoKSk7CisgICAgd3JpdGVyLT53cml0ZSh2YWx1ZSwg
JnN0ZDo6Y291dCk7CisgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgIC8vIGFkZCBsZiBhbmQg
Zmx1c2gKKyAgfQorXGVuZGNvZGUKKyovCitjbGFzcyBKU09OX0FQSSBTdHJlYW1Xcml0ZXIgewor
cHJvdGVjdGVkOgorICBzdGQ6Om9zdHJlYW0qIHNvdXRfOyAgLy8gbm90IG93bmVkOyB3aWxsIG5v
dCBkZWxldGUKK3B1YmxpYzoKKyAgU3RyZWFtV3JpdGVyKCk7CisgIHZpcnR1YWwgflN0cmVhbVdy
aXRlcigpOworICAvKiogV3JpdGUgVmFsdWUgaW50byBkb2N1bWVudCBhcyBjb25maWd1cmVkIGlu
IHN1Yi1jbGFzcy4KKyAgICAgIERvIG5vdCB0YWtlIG93bmVyc2hpcCBvZiBzb3V0LCBidXQgbWFp
bnRhaW4gYSByZWZlcmVuY2UgZHVyaW5nIGZ1bmN0aW9uLgorICAgICAgXHByZSBzb3V0ICE9IE5V
TEwKKyAgICAgIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIChGb3Igbm93LCB3ZSBhbHdheXMgcmV0
dXJuIHplcm8sIHNvIGNoZWNrIHRoZSBzdHJlYW0gaW5zdGVhZC4pCisgICAgICBcdGhyb3cgc3Rk
OjpleGNlcHRpb24gcG9zc2libHksIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uCisgICAqLwor
ICB2aXJ0dWFsIGludCB3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3RyZWFtKiBzb3V0
KSA9IDA7CisKKyAgLyoqIFxicmllZiBBIHNpbXBsZSBhYnN0cmFjdCBmYWN0b3J5LgorICAgKi8K
KyAgY2xhc3MgSlNPTl9BUEkgRmFjdG9yeSB7CisgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5GYWN0
b3J5KCk7CisgICAgLyoqIFxicmllZiBBbGxvY2F0ZSBhIENoYXJSZWFkZXIgdmlhIG9wZXJhdG9y
IG5ldygpLgorICAgICAqIFx0aHJvdyBzdGQ6OmV4Y2VwdGlvbiBpZiBzb21ldGhpbmcgZ29lcyB3
cm9uZyAoZS5nLiBpbnZhbGlkIHNldHRpbmdzKQorICAgICAqLworICAgIHZpcnR1YWwgU3RyZWFt
V3JpdGVyKiBuZXdTdHJlYW1Xcml0ZXIoKSBjb25zdCA9IDA7CisgIH07ICAvLyBGYWN0b3J5Cit9
OyAgLy8gU3RyZWFtV3JpdGVyCisKKy8qKiBcYnJpZWYgV3JpdGUgaW50byBzdHJpbmdzdHJlYW0s
IHRoZW4gcmV0dXJuIHN0cmluZywgZm9yIGNvbnZlbmllbmNlLgorICogQSBTdHJlYW1Xcml0ZXIg
d2lsbCBiZSBjcmVhdGVkIGZyb20gdGhlIGZhY3RvcnksIHVzZWQsIGFuZCB0aGVuIGRlbGV0ZWQu
CisgKi8KK3N0ZDo6c3RyaW5nIEpTT05fQVBJIHdyaXRlU3RyaW5nKFN0cmVhbVdyaXRlcjo6RmFj
dG9yeSBjb25zdCYgZmFjdG9yeSwgVmFsdWUgY29uc3QmIHJvb3QpOworCisKKy8qKiBcYnJpZWYg
QnVpbGQgYSBTdHJlYW1Xcml0ZXIgaW1wbGVtZW50YXRpb24uCisKK1VzYWdlOgorXGNvZGUKKyAg
dXNpbmcgbmFtZXNwYWNlIEpzb247CisgIFZhbHVlIHZhbHVlID0gLi4uOworICBTdHJlYW1Xcml0
ZXJCdWlsZGVyIGJ1aWxkZXI7CisgIGJ1aWxkZXJbImNvbW1lbnRTdHlsZSJdID0gIk5vbmUiOwor
ICBidWlsZGVyWyJpbmRlbnRhdGlvbiJdID0gIiAgICI7ICAvLyBvciB3aGF0ZXZlciB5b3UgbGlr
ZQorICBzdGQ6OnVuaXF1ZV9wdHI8SnNvbjo6U3RyZWFtV3JpdGVyPiB3cml0ZXIoCisgICAgICBi
dWlsZGVyLm5ld1N0cmVhbVdyaXRlcigpKTsKKyAgd3JpdGVyLT53cml0ZSh2YWx1ZSwgJnN0ZDo6
Y291dCk7CisgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7ICAvLyBhZGQgbGYgYW5kIGZsdXNoCitc
ZW5kY29kZQorKi8KK2NsYXNzIEpTT05fQVBJIFN0cmVhbVdyaXRlckJ1aWxkZXIgOiBwdWJsaWMg
U3RyZWFtV3JpdGVyOjpGYWN0b3J5IHsKK3B1YmxpYzoKKyAgLy8gTm90ZTogV2UgdXNlIGEgSnNv
bjo6VmFsdWUgc28gdGhhdCB3ZSBjYW4gYWRkIGRhdGEtbWVtYmVycyB0byB0aGlzIGNsYXNzCisg
IC8vIHdpdGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCisgIC8qKiBDb25maWd1cmF0aW9uIG9m
IHRoaXMgYnVpbGRlci4KKyAgICBBdmFpbGFibGUgc2V0dGluZ3MgKGNhc2Utc2Vuc2l0aXZlKToK
KyAgICAtICJjb21tZW50U3R5bGUiOiAiTm9uZSIgb3IgIkFsbCIKKyAgICAtICJpbmRlbnRhdGlv
biI6ICAiPGFueXRoaW5nPiIKKyAgICAtICJlbmFibGVZQU1MQ29tcGF0aWJpbGl0eSI6IGZhbHNl
IG9yIHRydWUKKyAgICAgIC0gc2xpZ2h0bHkgY2hhbmdlIHRoZSB3aGl0ZXNwYWNlIGFyb3VuZCBj
b2xvbnMKKyAgICAtICJkcm9wTnVsbFBsYWNlaG9sZGVycyI6IGZhbHNlIG9yIHRydWUKKyAgICAg
IC0gRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9tIHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51
bGxWYWx1ZXMuCisgICAgICAgIFN0cmljdGx5IHNwZWFraW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBK
U09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5nCisgICAgICAgIGZlZCB0byBhIGJyb3dz
ZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxlciBvdXRwdXQgYW5kIHRoZQorICAg
ICAgICBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0IGZpbmUuCisgICAgLSAidXNl
U3BlY2lhbEZsb2F0cyI6IGZhbHNlIG9yIHRydWUKKyAgICAgIC0gSWYgdHJ1ZSwgb3V0cHV0cyBu
b24tZmluaXRlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAg
ICAgICAgTmFOIHZhbHVlcyBhcyAiTmFOIiwgcG9zaXRpdmUgaW5maW5pdHkgYXMgIkluZmluaXR5
IiwgYW5kIG5lZ2F0aXZlIGluZmluaXR5CisgICAgICAgIGFzICItSW5maW5pdHkiLgorCisgICAg
WW91IGNhbiBleGFtaW5lICdzZXR0aW5nc19gIHlvdXJzZWxmCisgICAgdG8gc2VlIHRoZSBkZWZh
dWx0cy4gWW91IGNhbiBhbHNvIHdyaXRlIGFuZCByZWFkIHRoZW0ganVzdCBsaWtlIGFueQorICAg
IEpTT04gVmFsdWUuCisgICAgXHNhIHNldERlZmF1bHRzKCkKKyAgICAqLworICBKc29uOjpWYWx1
ZSBzZXR0aW5nc187CisKKyAgU3RyZWFtV3JpdGVyQnVpbGRlcigpOworICB+U3RyZWFtV3JpdGVy
QnVpbGRlcigpOworCisgIC8qKgorICAgKiBcdGhyb3cgc3RkOjpleGNlcHRpb24gaWYgc29tZXRo
aW5nIGdvZXMgd3JvbmcgKGUuZy4gaW52YWxpZCBzZXR0aW5ncykKKyAgICovCisgIFN0cmVhbVdy
aXRlciogbmV3U3RyZWFtV3JpdGVyKCkgY29uc3Q7CisKKyAgLyoqIFxyZXR1cm4gdHJ1ZSBpZiAn
c2V0dGluZ3MnIGFyZSBsZWdhbCBhbmQgY29uc2lzdGVudDsKKyAgICogICBvdGhlcndpc2UsIGlu
ZGljYXRlIGJhZCBzZXR0aW5ncyB2aWEgJ2ludmFsaWQnLgorICAgKi8KKyAgYm9vbCB2YWxpZGF0
ZShKc29uOjpWYWx1ZSogaW52YWxpZCkgY29uc3Q7CisgIC8qKiBBIHNpbXBsZSB3YXkgdG8gdXBk
YXRlIGEgc3BlY2lmaWMgc2V0dGluZy4KKyAgICovCisgIFZhbHVlJiBvcGVyYXRvcltdKHN0ZDo6
c3RyaW5nIGtleSk7CisKKyAgLyoqIENhbGxlZCBieSBjdG9yLCBidXQgeW91IGNhbiB1c2UgdGhp
cyB0byByZXNldCBzZXR0aW5nc18uCisgICAqIFxwcmUgJ3NldHRpbmdzJyAhPSBOVUxMIChidXQg
SnNvbjo6bnVsbCBpcyBmaW5lKQorICAgKiBccmVtYXJrIERlZmF1bHRzOgorICAgKiBcc25pcHBl
dCBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwIFN0cmVhbVdyaXRlckJ1aWxkZXJEZWZhdWx0
cworICAgKi8KKyAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHMoSnNvbjo6VmFsdWUqIHNldHRpbmdz
KTsKK307CisKKy8qKiBcYnJpZWYgQWJzdHJhY3QgY2xhc3MgZm9yIHdyaXRlcnMuCisgKiBcZGVw
cmVjYXRlZCBVc2UgU3RyZWFtV3JpdGVyLiAoQW5kIHJlYWxseSwgdGhpcyBpcyBhbiBpbXBsZW1l
bnRhdGlvbiBkZXRhaWwuKQorICovCitjbGFzcyBKU09OX0FQSSBXcml0ZXIgeworcHVibGljOgor
ICB2aXJ0dWFsIH5Xcml0ZXIoKTsKKworICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0
IFZhbHVlJiByb290KSA9IDA7Cit9OworCisvKiogXGJyaWVmIE91dHB1dHMgYSBWYWx1ZSBpbiA8
YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBmb3JtYXQKKyAqd2l0aG91dCBm
b3JtYXR0aW5nIChub3QgaHVtYW4gZnJpZW5kbHkpLgorICoKKyAqIFRoZSBKU09OIGRvY3VtZW50
IGlzIHdyaXR0ZW4gaW4gYSBzaW5nbGUgbGluZS4gSXQgaXMgbm90IGludGVuZGVkIGZvciAnaHVt
YW4nCisgKmNvbnN1bXB0aW9uLAorICogYnV0IG1heSBiZSB1c2VmdWxsIHRvIHN1cHBvcnQgZmVh
dHVyZSBzdWNoIGFzIFJQQyB3aGVyZSBiYW5kd2l0aCBpcyBsaW1pdGVkLgorICogXHNhIFJlYWRl
ciwgVmFsdWUKKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1Xcml0ZXJCdWlsZGVyLgorICovCitj
bGFzcyBKU09OX0FQSSBGYXN0V3JpdGVyIDogcHVibGljIFdyaXRlciB7CisKK3B1YmxpYzoKKyAg
RmFzdFdyaXRlcigpOworICB+RmFzdFdyaXRlcigpIHt9CisKKyAgdm9pZCBlbmFibGVZQU1MQ29t
cGF0aWJpbGl0eSgpOworCisgIC8qKiBcYnJpZWYgRHJvcCB0aGUgIm51bGwiIHN0cmluZyBmcm9t
IHRoZSB3cml0ZXIncyBvdXRwdXQgZm9yIG51bGxWYWx1ZXMuCisgICAqIFN0cmljdGx5IHNwZWFr
aW5nLCB0aGlzIGlzIG5vdCB2YWxpZCBKU09OLiBCdXQgd2hlbiB0aGUgb3V0cHV0IGlzIGJlaW5n
CisgICAqIGZlZCB0byBhIGJyb3dzZXIncyBKYXZhc2NyaXB0LCBpdCBtYWtlcyBmb3Igc21hbGxl
ciBvdXRwdXQgYW5kIHRoZQorICAgKiBicm93c2VyIGNhbiBoYW5kbGUgdGhlIG91dHB1dCBqdXN0
IGZpbmUuCisgICAqLworICB2b2lkIGRyb3BOdWxsUGxhY2Vob2xkZXJzKCk7CisKKyAgdm9pZCBv
bWl0RW5kaW5nTGluZUZlZWQoKTsKKworcHVibGljOiAvLyBvdmVycmlkZGVuIGZyb20gV3JpdGVy
CisgIHN0ZDo6c3RyaW5nIHdyaXRlKGNvbnN0IFZhbHVlJiByb290KTsKKworcHJpdmF0ZToKKyAg
dm9pZCB3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisKKyAgc3RkOjpzdHJpbmcgZG9j
dW1lbnRfOworICBib29sIHlhbWxDb21wYXRpYmxpdHlFbmFibGVkXzsKKyAgYm9vbCBkcm9wTnVs
bFBsYWNlaG9sZGVyc187CisgIGJvb2wgb21pdEVuZGluZ0xpbmVGZWVkXzsKK307CisKKy8qKiBc
YnJpZWYgV3JpdGVzIGEgVmFsdWUgaW4gPGEgSFJFRj0iaHR0cDovL3d3dy5qc29uLm9yZyI+SlNP
TjwvYT4gZm9ybWF0IGluIGEKKyAqaHVtYW4gZnJpZW5kbHkgd2F5LgorICoKKyAqIFRoZSBydWxl
cyBmb3IgbGluZSBicmVhayBhbmQgaW5kZW50IGFyZSBhcyBmb2xsb3c6CisgKiAtIE9iamVjdCB2
YWx1ZToKKyAqICAgICAtIGlmIGVtcHR5IHRoZW4gcHJpbnQge30gd2l0aG91dCBpbmRlbnQgYW5k
IGxpbmUgYnJlYWsKKyAqICAgICAtIGlmIG5vdCBlbXB0eSB0aGUgcHJpbnQgJ3snLCBsaW5lIGJy
ZWFrICYgaW5kZW50LCBwcmludCBvbmUgdmFsdWUgcGVyCisgKmxpbmUKKyAqICAgICAgIGFuZCB0
aGVuIHVuaW5kZW50IGFuZCBsaW5lIGJyZWFrIGFuZCBwcmludCAnfScuCisgKiAtIEFycmF5IHZh
bHVlOgorICogICAgIC0gaWYgZW1wdHkgdGhlbiBwcmludCBbXSB3aXRob3V0IGluZGVudCBhbmQg
bGluZSBicmVhaworICogICAgIC0gaWYgdGhlIGFycmF5IGNvbnRhaW5zIG5vIG9iamVjdCB2YWx1
ZSwgZW1wdHkgYXJyYXkgb3Igc29tZSBvdGhlciB2YWx1ZQorICp0eXBlcywKKyAqICAgICAgIGFu
ZCBhbGwgdGhlIHZhbHVlcyBmaXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBv
biBhIHNpbmdsZQorICpsaW5lLgorICogICAgIC0gb3RoZXJ3aXNlLCBpdCB0aGUgdmFsdWVzIGRv
IG5vdCBmaXQgb24gb25lIGxpbmUsIG9yIHRoZSBhcnJheSBjb250YWlucworICogICAgICAgb2Jq
ZWN0IG9yIG5vbiBlbXB0eSBhcnJheSwgdGhlbiBwcmludCBvbmUgdmFsdWUgcGVyIGxpbmUuCisg
KgorICogSWYgdGhlIFZhbHVlIGhhdmUgY29tbWVudHMgdGhlbiB0aGV5IGFyZSBvdXRwdXRlZCBh
Y2NvcmRpbmcgdG8gdGhlaXIKKyAqI0NvbW1lbnRQbGFjZW1lbnQuCisgKgorICogXHNhIFJlYWRl
ciwgVmFsdWUsIFZhbHVlOjpzZXRDb21tZW50KCkKKyAqIFxkZXByZWNhdGVkIFVzZSBTdHJlYW1X
cml0ZXJCdWlsZGVyLgorICovCitjbGFzcyBKU09OX0FQSSBTdHlsZWRXcml0ZXIgOiBwdWJsaWMg
V3JpdGVyIHsKK3B1YmxpYzoKKyAgU3R5bGVkV3JpdGVyKCk7CisgIH5TdHlsZWRXcml0ZXIoKSB7
fQorCitwdWJsaWM6IC8vIG92ZXJyaWRkZW4gZnJvbSBXcml0ZXIKKyAgLyoqIFxicmllZiBTZXJp
YWxpemUgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09OPC9hPiBm
b3JtYXQuCisgICAqIFxwYXJhbSByb290IFZhbHVlIHRvIHNlcmlhbGl6ZS4KKyAgICogXHJldHVy
biBTdHJpbmcgY29udGFpbmluZyB0aGUgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgdGhl
IHJvb3QgdmFsdWUuCisgICAqLworICBzdGQ6OnN0cmluZyB3cml0ZShjb25zdCBWYWx1ZSYgcm9v
dCk7CisKK3ByaXZhdGU6CisgIHZvaWQgd3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOwor
ICB2b2lkIHdyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBib29sIGlzTXVs
dGluZUFycmF5KGNvbnN0IFZhbHVlJiB2YWx1ZSk7CisgIHZvaWQgcHVzaFZhbHVlKGNvbnN0IHN0
ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgd3JpdGVJbmRlbnQoKTsKKyAgdm9pZCB3cml0ZVdp
dGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKTsKKyAgdm9pZCBpbmRlbnQoKTsKKyAg
dm9pZCB1bmluZGVudCgpOworICB2b2lkIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNvbnN0IFZh
bHVlJiByb290KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjb25z
dCBWYWx1ZSYgcm9vdCk7CisgIGJvb2wgaGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2
YWx1ZSk7CisgIHN0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woY29uc3Qgc3RkOjpzdHJp
bmcmIHRleHQpOworCisgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IENoaWxkVmFs
dWVzOworCisgIENoaWxkVmFsdWVzIGNoaWxkVmFsdWVzXzsKKyAgc3RkOjpzdHJpbmcgZG9jdW1l
bnRfOworICBzdGQ6OnN0cmluZyBpbmRlbnRTdHJpbmdfOworICBpbnQgcmlnaHRNYXJnaW5fOwor
ICBpbnQgaW5kZW50U2l6ZV87CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfOworfTsKKworLyoqIFxi
cmllZiBXcml0ZXMgYSBWYWx1ZSBpbiA8YSBIUkVGPSJodHRwOi8vd3d3Lmpzb24ub3JnIj5KU09O
PC9hPiBmb3JtYXQgaW4gYQorIGh1bWFuIGZyaWVuZGx5IHdheSwKKyAgICAgdG8gYSBzdHJlYW0g
cmF0aGVyIHRoYW4gdG8gYSBzdHJpbmcuCisgKgorICogVGhlIHJ1bGVzIGZvciBsaW5lIGJyZWFr
IGFuZCBpbmRlbnQgYXJlIGFzIGZvbGxvdzoKKyAqIC0gT2JqZWN0IHZhbHVlOgorICogICAgIC0g
aWYgZW1wdHkgdGhlbiBwcmludCB7fSB3aXRob3V0IGluZGVudCBhbmQgbGluZSBicmVhaworICog
ICAgIC0gaWYgbm90IGVtcHR5IHRoZSBwcmludCAneycsIGxpbmUgYnJlYWsgJiBpbmRlbnQsIHBy
aW50IG9uZSB2YWx1ZSBwZXIKKyBsaW5lCisgKiAgICAgICBhbmQgdGhlbiB1bmluZGVudCBhbmQg
bGluZSBicmVhayBhbmQgcHJpbnQgJ30nLgorICogLSBBcnJheSB2YWx1ZToKKyAqICAgICAtIGlm
IGVtcHR5IHRoZW4gcHJpbnQgW10gd2l0aG91dCBpbmRlbnQgYW5kIGxpbmUgYnJlYWsKKyAqICAg
ICAtIGlmIHRoZSBhcnJheSBjb250YWlucyBubyBvYmplY3QgdmFsdWUsIGVtcHR5IGFycmF5IG9y
IHNvbWUgb3RoZXIgdmFsdWUKKyB0eXBlcywKKyAqICAgICAgIGFuZCBhbGwgdGhlIHZhbHVlcyBm
aXQgb24gb25lIGxpbmVzLCB0aGVuIHByaW50IHRoZSBhcnJheSBvbiBhIHNpbmdsZQorIGxpbmUu
CisgKiAgICAgLSBvdGhlcndpc2UsIGl0IHRoZSB2YWx1ZXMgZG8gbm90IGZpdCBvbiBvbmUgbGlu
ZSwgb3IgdGhlIGFycmF5IGNvbnRhaW5zCisgKiAgICAgICBvYmplY3Qgb3Igbm9uIGVtcHR5IGFy
cmF5LCB0aGVuIHByaW50IG9uZSB2YWx1ZSBwZXIgbGluZS4KKyAqCisgKiBJZiB0aGUgVmFsdWUg
aGF2ZSBjb21tZW50cyB0aGVuIHRoZXkgYXJlIG91dHB1dGVkIGFjY29yZGluZyB0byB0aGVpcgor
ICNDb21tZW50UGxhY2VtZW50LgorICoKKyAqIFxwYXJhbSBpbmRlbnRhdGlvbiBFYWNoIGxldmVs
IHdpbGwgYmUgaW5kZW50ZWQgYnkgdGhpcyBhbW91bnQgZXh0cmEuCisgKiBcc2EgUmVhZGVyLCBW
YWx1ZSwgVmFsdWU6OnNldENvbW1lbnQoKQorICogXGRlcHJlY2F0ZWQgVXNlIFN0cmVhbVdyaXRl
ckJ1aWxkZXIuCisgKi8KK2NsYXNzIEpTT05fQVBJIFN0eWxlZFN0cmVhbVdyaXRlciB7CitwdWJs
aWM6CisgIFN0eWxlZFN0cmVhbVdyaXRlcihzdGQ6OnN0cmluZyBpbmRlbnRhdGlvbiA9ICJcdCIp
OworICB+U3R5bGVkU3RyZWFtV3JpdGVyKCkge30KKworcHVibGljOgorICAvKiogXGJyaWVmIFNl
cmlhbGl6ZSBhIFZhbHVlIGluIDxhIEhSRUY9Imh0dHA6Ly93d3cuanNvbi5vcmciPkpTT048L2E+
IGZvcm1hdC4KKyAgICogXHBhcmFtIG91dCBTdHJlYW0gdG8gd3JpdGUgdG8uIChDYW4gYmUgb3N0
cmluZ3N0cmVhbSwgZS5nLikKKyAgICogXHBhcmFtIHJvb3QgVmFsdWUgdG8gc2VyaWFsaXplLgor
ICAgKiBcbm90ZSBUaGVyZSBpcyBubyBwb2ludCBpbiBkZXJpdmluZyBmcm9tIFdyaXRlciwgc2lu
Y2Ugd3JpdGUoKSBzaG91bGQgbm90CisgICAqIHJldHVybiBhIHZhbHVlLgorICAgKi8KKyAgdm9p
ZCB3cml0ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgVmFsdWUmIHJvb3QpOworCitwcml2YXRl
OgorICB2b2lkIHdyaXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgdm9pZCB3cml0ZUFy
cmF5VmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKTsKKyAgYm9vbCBpc011bHRpbmVBcnJheShjb25z
dCBWYWx1ZSYgdmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgdmFs
dWUpOworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVXaXRoSW5kZW50KGNvbnN0
IHN0ZDo6c3RyaW5nJiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7CisgIHZvaWQgdW5pbmRlbnQo
KTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCk7Cisg
IHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3Qp
OworICBib29sIGhhc0NvbW1lbnRGb3JWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpOworICBzdGF0
aWMgc3RkOjpzdHJpbmcgbm9ybWFsaXplRU9MKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KTsKKwor
ICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGlsZFZhbHVlczsKKworICBDaGls
ZFZhbHVlcyBjaGlsZFZhbHVlc187CisgIHN0ZDo6b3N0cmVhbSogZG9jdW1lbnRfOworICBzdGQ6
OnN0cmluZyBpbmRlbnRTdHJpbmdfOworICBpbnQgcmlnaHRNYXJnaW5fOworICBzdGQ6OnN0cmlu
ZyBpbmRlbnRhdGlvbl87CisgIGJvb2wgYWRkQ2hpbGRWYWx1ZXNfIDogMTsKKyAgYm9vbCBpbmRl
bnRlZF8gOiAxOworfTsKKworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitzdGQ6OnN0cmlu
ZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKEludCB2YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQ
SSB2YWx1ZVRvU3RyaW5nKFVJbnQgdmFsdWUpOworI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9I
QVNfSU5UNjQpCitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKExhcmdlc3RJbnQg
dmFsdWUpOworc3RkOjpzdHJpbmcgSlNPTl9BUEkgdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCB2
YWx1ZSk7CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGRvdWJsZSB2YWx1ZSk7
CitzdGQ6OnN0cmluZyBKU09OX0FQSSB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpOworc3RkOjpz
dHJpbmcgSlNPTl9BUEkgdmFsdWVUb1F1b3RlZFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSk7CisK
Ky8vLyBcYnJpZWYgT3V0cHV0IHVzaW5nIHRoZSBTdHlsZWRTdHJlYW1Xcml0ZXIuCisvLy8gXHNl
ZSBKc29uOjpvcGVyYXRvcj4+KCkKK0pTT05fQVBJIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChz
dGQ6Om9zdHJlYW0mLCBjb25zdCBWYWx1ZSYgcm9vdCk7CisKK30gLy8gbmFtZXNwYWNlIEpzb24K
KworI2lmIGRlZmluZWQoSlNPTkNQUF9ESVNBQkxFX0RMTF9JTlRFUkZBQ0VfV0FSTklORykKKyNw
cmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYgLy8gaWYgZGVmaW5lZChKU09OQ1BQX0RJU0FCTEVf
RExMX0lOVEVSRkFDRV9XQVJOSU5HKQorCisjZW5kaWYgLy8gSlNPTl9XUklURVJfSF9JTkNMVURF
RAorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBFbmQgb2YgY29udGVudCBvZiBmaWxlOiBpbmNsdWRl
L2pzb24vd3JpdGVyLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IGluY2x1ZGUvanNvbi9hc3Nl
cnRpb25zLmgKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gQ29weXJpZ2h0IDIwMDctMjAxMCBCYXB0
aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJs
aWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyByZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0
aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pz
b25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UKKworI2lmbmRlZiBDUFBUTF9KU09OX0FTU0VS
VElPTlNfSF9JTkNMVURFRAorI2RlZmluZSBDUFBUTF9KU09OX0FTU0VSVElPTlNfSF9JTkNMVURF
RAorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3N0cmVhbT4KKworI2lmICFkZWZp
bmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmIC8v
IGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorCisvKiogSXQgc2hvdWxkIG5vdCBi
ZSBwb3NzaWJsZSBmb3IgYSBtYWxpY2lvdXNseSBkZXNpZ25lZCBmaWxlIHRvCisgKiAgY2F1c2Ug
YW4gYWJvcnQoKSBvciBzZWctZmF1bHQsIHNvIHRoZXNlIG1hY3JvcyBhcmUgdXNlZCBvbmx5Cisg
KiAgZm9yIHByZS1jb25kaXRpb24gdmlvbGF0aW9ucyBhbmQgaW50ZXJuYWwgbG9naWMgZXJyb3Jz
LgorICovCisjaWYgSlNPTl9VU0VfRVhDRVBUSU9OCisKKy8vIEB0b2RvIDw9IGFkZCBkZXRhaWwg
YWJvdXQgY29uZGl0aW9uIGluIGV4Y2VwdGlvbgorIyBkZWZpbmUgSlNPTl9BU1NFUlQoY29uZGl0
aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
e2lmICghKGNvbmRpdGlvbikpIHtKc29uOjp0aHJvd0xvZ2ljRXJyb3IoICJhc3NlcnQganNvbiBm
YWlsZWQiICk7fX0KKworIyBkZWZpbmUgSlNPTl9GQUlMX01FU1NBR0UobWVzc2FnZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsgb3NzIDw8IG1lc3NhZ2U7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEpzb246OnRocm93TG9naWNFcnJv
cihvc3Muc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBhYm9ydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworI2Vsc2UgLy8gSlNPTl9VU0VfRVhDRVBU
SU9OCisKKyMgZGVmaW5lIEpTT05fQVNTRVJUKGNvbmRpdGlvbikgYXNzZXJ0KGNvbmRpdGlvbikK
KworLy8gVGhlIGNhbGwgdG8gYXNzZXJ0KCkgd2lsbCBzaG93IHRoZSBmYWlsdXJlIG1lc3NhZ2Ug
aW4gZGVidWcgYnVpbGRzLiBJbgorLy8gcmVsZWFzZSBidWlsZHMgd2UgYWJvcnQsIGZvciBhIGNv
cmUtZHVtcCBvciBkZWJ1Z2dlci4KKyMgZGVmaW5lIEpTT05fRkFJTF9NRVNTQUdFKG1lc3NhZ2Up
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvc3M7IG9zcyA8PCBtZXNzYWdl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhc3NlcnQoZmFsc2Ug
JiYgb3NzLnN0cigpLmNfc3RyKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKKworI2VuZGlmCisKKyNkZWZp
bmUgSlNPTl9BU1NFUlRfTUVTU0FHRShjb25kaXRpb24sIG1lc3NhZ2UpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgIGlmICghKGNvbmRpdGlvbikpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEpTT05fRkFJ
TF9NRVNTQUdFKG1lc3NhZ2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgfQorCisjZW5kaWYgLy8gQ1BQVExfSlNPTl9BU1NFUlRJT05TX0hfSU5D
TFVERUQKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmlsZTogaW5j
bHVkZS9qc29uL2Fzc2VydGlvbnMuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKyNlbmRp
ZiAvL2lmbmRlZiBKU09OX0FNQUxHQVRFRF9IX0lOQ0xVREVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9vcGVudnIvc3JjL2pzb25jcHAuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uY3BwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjMyODczMjdjMGQ2NjMyMTUwNWVhZDJk
MmVlNDY3ZTczOWYxNWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy9qc29uY3BwLmNwcApAQCAtMCwwICsxLDUyNjYgQEAKKy8vLyBKc29uLWNwcCBhbWFs
Z2F0ZWQgc291cmNlIChodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvKS4KKy8vLyBJdCBp
cyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggI2luY2x1ZGUgImpzb24vanNvbi5oIgorCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBvZiBmaWxlOiBMSUNFTlNFCisv
LyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCisKKy8qCitUaGUgSnNvbkNwcCBsaWJyYXJ5J3Mgc291cmNlIGNvZGUs
IGluY2x1ZGluZyBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiwgCit0ZXN0cyBhbmQgZGVtb25z
dHJhdGlvbiBhcHBsaWNhdGlvbnMsIGFyZSBsaWNlbnNlZCB1bmRlciB0aGUgZm9sbG93aW5nCitj
b25kaXRpb25zLi4uCisKK1RoZSBhdXRob3IgKEJhcHRpc3RlIExlcGlsbGV1cikgZXhwbGljaXRs
eSBkaXNjbGFpbXMgY29weXJpZ2h0IGluIGFsbCAKK2p1cmlzZGljdGlvbnMgd2hpY2ggcmVjb2du
aXplIHN1Y2ggYSBkaXNjbGFpbWVyLiBJbiBzdWNoIGp1cmlzZGljdGlvbnMsIAordGhpcyBzb2Z0
d2FyZSBpcyByZWxlYXNlZCBpbnRvIHRoZSBQdWJsaWMgRG9tYWluLgorCitJbiBqdXJpc2RpY3Rp
b25zIHdoaWNoIGRvIG5vdCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSAoZS5nLiBH
ZXJtYW55IGFzIG9mCisyMDEwKSwgdGhpcyBzb2Z0d2FyZSBpcyBDb3B5cmlnaHQgKGMpIDIwMDct
MjAxMCBieSBCYXB0aXN0ZSBMZXBpbGxldXIsIGFuZCBpcworcmVsZWFzZWQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJlbG93KS4KKworSW4ganVyaXNkaWN0aW9ucyB3
aGljaCByZWNvZ25pemUgUHVibGljIERvbWFpbiBwcm9wZXJ0eSwgdGhlIHVzZXIgb2YgdGhpcyAK
K3NvZnR3YXJlIG1heSBjaG9vc2UgdG8gYWNjZXB0IGl0IGVpdGhlciBhcyAxKSBQdWJsaWMgRG9t
YWluLCAyKSB1bmRlciB0aGUgCitjb25kaXRpb25zIG9mIHRoZSBNSVQgTGljZW5zZSAoc2VlIGJl
bG93KSwgb3IgMykgdW5kZXIgdGhlIHRlcm1zIG9mIGR1YWwgCitQdWJsaWMgRG9tYWluL01JVCBM
aWNlbnNlIGNvbmRpdGlvbnMgZGVzY3JpYmVkIGhlcmUsIGFzIHRoZXkgY2hvb3NlLgorCitUaGUg
TUlUIExpY2Vuc2UgaXMgYWJvdXQgYXMgY2xvc2UgdG8gUHVibGljIERvbWFpbiBhcyBhIGxpY2Vu
c2UgY2FuIGdldCwgYW5kIGlzCitkZXNjcmliZWQgaW4gY2xlYXIsIGNvbmNpc2UgdGVybXMgYXQ6
CisKKyAgIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UKKyAgIAorVGhl
IGZ1bGwgdGV4dCBvZiB0aGUgTUlUIExpY2Vuc2UgZm9sbG93czoKKworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CitDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBCYXB0aXN0ZSBMZXBpbGxldXIKKworUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KK29idGFp
bmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
CitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwKK21vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcworb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNP
RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
CitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTCitCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KK0FDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCitDT05ORUNUSU9OIFdJ
VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZU
V0FSRS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorKEVORCBMSUNFTlNFIFRFWFQpCisKK1RoZSBNSVQgbGlj
ZW5zZSBpcyBjb21wYXRpYmxlIHdpdGggYm90aCB0aGUgR1BMIGFuZCBjb21tZXJjaWFsCitzb2Z0
d2FyZSwgYWZmb3JkaW5nIG9uZSBhbGwgb2YgdGhlIHJpZ2h0cyBvZiBQdWJsaWMgRG9tYWluIHdp
dGggdGhlCittaW5vciBudWlzYW5jZSBvZiBiZWluZyByZXF1aXJlZCB0byBrZWVwIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlCithbmQgbGljZW5zZSB0ZXh0IGluIHRoZSBzb3VyY2UgY29kZS4g
Tm90ZSBhbHNvIHRoYXQgYnkgYWNjZXB0aW5nIHRoZQorUHVibGljIERvbWFpbiAibGljZW5zZSIg
eW91IGNhbiByZS1saWNlbnNlIHlvdXIgY29weSB1c2luZyB3aGF0ZXZlcgorbGljZW5zZSB5b3Ug
bGlrZS4KKworKi8KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQgb2YgZmls
ZTogTElDRU5TRQorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisKKworI2luY2x1ZGUgImpzb24v
anNvbi5oIgorCisjaWZuZGVmIEpTT05fSVNfQU1BTEdBTUFUSU9OCisjZXJyb3IgIkNvbXBpbGUg
d2l0aCAtSSBQQVRIX1RPX0pTT05fRElSRUNUT1JZIgorI2VuZGlmCisKKworLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25f
dG9vbC5oCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKyNpZm5kZWYgTElCX0pTT05DUFBfSlNPTl9U
T09MX0hfSU5DTFVERUQKKyNkZWZpbmUgTElCX0pTT05DUFBfSlNPTl9UT09MX0hfSU5DTFVERUQK
KworLyogVGhpcyBoZWFkZXIgcHJvdmlkZXMgY29tbW9uIHN0cmluZyBtYW5pcHVsYXRpb24gc3Vw
cG9ydCwgc3VjaCBhcyBVVEYtOCwKKyAqIHBvcnRhYmxlIGNvbnZlcnNpb24gZnJvbS90byBzdHJp
bmcuLi4KKyAqCisgKiBJdCBpcyBhbiBpbnRlcm5hbCBoZWFkZXIgdGhhdCBtdXN0IG5vdCBiZSBl
eHBvc2VkLgorICovCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8vIENvbnZlcnRzIGEgdW5pY29k
ZSBjb2RlLXBvaW50IHRvIFVURi04Lgorc3RhdGljIGlubGluZSBzdGQ6OnN0cmluZyBjb2RlUG9p
bnRUb1VURjgodW5zaWduZWQgaW50IGNwKSB7CisgIHN0ZDo6c3RyaW5nIHJlc3VsdDsKKworICAv
LyBiYXNlZCBvbiBkZXNjcmlwdGlvbiBmcm9tIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
VVRGLTgKKworICBpZiAoY3AgPD0gMHg3ZikgeworICAgIHJlc3VsdC5yZXNpemUoMSk7CisgICAg
cmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oY3ApOworICB9IGVsc2UgaWYgKGNwIDw9IDB4
N0ZGKSB7CisgICAgcmVzdWx0LnJlc2l6ZSgyKTsKKyAgICByZXN1bHRbMV0gPSBzdGF0aWNfY2Fz
dDxjaGFyPigweDgwIHwgKDB4M2YgJiBjcCkpOworICAgIHJlc3VsdFswXSA9IHN0YXRpY19jYXN0
PGNoYXI+KDB4QzAgfCAoMHgxZiAmIChjcCA+PiA2KSkpOworICB9IGVsc2UgaWYgKGNwIDw9IDB4
RkZGRikgeworICAgIHJlc3VsdC5yZXNpemUoMyk7CisgICAgcmVzdWx0WzJdID0gc3RhdGljX2Nh
c3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICByZXN1bHRbMV0gPSBzdGF0aWNfY2Fz
dDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gNikpKTsKKyAgICByZXN1bHRbMF0gPSBzdGF0
aWNfY2FzdDxjaGFyPigweEUwIHwgKDB4ZiAmIChjcCA+PiAxMikpKTsKKyAgfSBlbHNlIGlmIChj
cCA8PSAweDEwRkZGRikgeworICAgIHJlc3VsdC5yZXNpemUoNCk7CisgICAgcmVzdWx0WzNdID0g
c3RhdGljX2Nhc3Q8Y2hhcj4oMHg4MCB8ICgweDNmICYgY3ApKTsKKyAgICByZXN1bHRbMl0gPSBz
dGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gNikpKTsKKyAgICByZXN1bHRb
MV0gPSBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKDB4M2YgJiAoY3AgPj4gMTIpKSk7CisgICAg
cmVzdWx0WzBdID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGMCB8ICgweDcgJiAoY3AgPj4gMTgpKSk7
CisgIH0KKworICByZXR1cm4gcmVzdWx0OworfQorCisvLy8gUmV0dXJucyB0cnVlIGlmIGNoIGlz
IGEgY29udHJvbCBjaGFyYWN0ZXIgKGluIHJhbmdlIFsxLDMxXSkuCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNDb250cm9sQ2hhcmFjdGVyKGNoYXIgY2gpIHsgcmV0dXJuIGNoID4gMCAmJiBjaCA8PSAw
eDFGOyB9CisKK2VudW0geworICAvLy8gQ29uc3RhbnQgdGhhdCBzcGVjaWZ5IHRoZSBzaXplIG9m
IHRoZSBidWZmZXIgdGhhdCBtdXN0IGJlIHBhc3NlZCB0bworICAvLy8gdWludFRvU3RyaW5nLgor
ICB1aW50VG9TdHJpbmdCdWZmZXJTaXplID0gMyAqIHNpemVvZihMYXJnZXN0VUludCkgKyAxCit9
OworCisvLyBEZWZpbmVzIGEgY2hhciBidWZmZXIgZm9yIHVzZSB3aXRoIHVpbnRUb1N0cmluZygp
LgordHlwZWRlZiBjaGFyIFVJbnRUb1N0cmluZ0J1ZmZlclt1aW50VG9TdHJpbmdCdWZmZXJTaXpl
XTsKKworLyoqIENvbnZlcnRzIGFuIHVuc2lnbmVkIGludGVnZXIgdG8gc3RyaW5nLgorICogQHBh
cmFtIHZhbHVlIFVuc2lnbmVkIGludGVyZ2VyIHRvIGNvbnZlcnQgdG8gc3RyaW5nCisgKiBAcGFy
YW0gY3VycmVudCBJbnB1dC9PdXRwdXQgc3RyaW5nIGJ1ZmZlci4KKyAqICAgICAgICBNdXN0IGhh
dmUgYXQgbGVhc3QgdWludFRvU3RyaW5nQnVmZmVyU2l6ZSBjaGFycyBmcmVlLgorICovCitzdGF0
aWMgaW5saW5lIHZvaWQgdWludFRvU3RyaW5nKExhcmdlc3RVSW50IHZhbHVlLCBjaGFyKiYgY3Vy
cmVudCkgeworICAqLS1jdXJyZW50ID0gMDsKKyAgZG8geworICAgICotLWN1cnJlbnQgPSBzdGF0
aWNfY2FzdDxzaWduZWQgY2hhcj4odmFsdWUgJSAxMFUgKyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
JzAnKSk7CisgICAgdmFsdWUgLz0gMTA7CisgIH0gd2hpbGUgKHZhbHVlICE9IDApOworfQorCisv
KiogQ2hhbmdlICcsJyB0byAnLicgZXZlcnl3aGVyZSBpbiBidWZmZXIuCisgKgorICogV2UgaGFk
IGEgc29waGlzdGljYXRlZCB3YXksIGJ1dCBpdCBkaWQgbm90IHdvcmsgaW4gV2luQ0UuCisgKiBA
c2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAvcHVsbC85
CisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBmaXhOdW1lcmljTG9jYWxlKGNoYXIqIGJlZ2luLCBj
aGFyKiBlbmQpIHsKKyAgd2hpbGUgKGJlZ2luIDwgZW5kKSB7CisgICAgaWYgKCpiZWdpbiA9PSAn
LCcpIHsKKyAgICAgICpiZWdpbiA9ICcuJzsKKyAgICB9CisgICAgKytiZWdpbjsKKyAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBKc29uIHsKKworI2VuZGlmIC8vIExJQl9KU09OQ1BQX0pTT05fVE9P
TF9IX0lOQ0xVREVECisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZp
bGU6IHNyYy9saWJfanNvbi9qc29uX3Rvb2wuaAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKworCisK
KworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gQmVnaW5uaW5nIG9mIGNvbnRlbnQgb2YgZmlsZTogc3Jj
L2xpYl9qc29uL2pzb25fcmVhZGVyLmNwcAorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBDb3B5cmln
aHQgMjAwNy0yMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29nbml6ZWQg
aW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3Ig
Y29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisjaWYgIWRl
ZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8anNvbi9hc3NlcnRpb25zLmg+
CisjaW5jbHVkZSA8anNvbi9yZWFkZXIuaD4KKyNpbmNsdWRlIDxqc29uL3ZhbHVlLmg+CisjaW5j
bHVkZSAianNvbl90b29sLmgiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FN
QVRJT04pCisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8
Y2Fzc2VydD4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPGlzdHJlYW0+CisjaW5jbHVk
ZSA8c3N0cmVhbT4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUg
PGxpbWl0cz4KKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWYgIWRlZmluZWQoV0lOQ0UpICYm
IGRlZmluZWQoX19TVERDX1NFQ1VSRV9MSUJfXykgJiYgX01TQ19WRVIgPj0gMTUwMCAvLyBWQysr
IDkuMCBhbmQgYWJvdmUgCisjZGVmaW5lIHNucHJpbnRmIHNwcmludGZfcworI2VsaWYgX01TQ19W
RVIgPj0gMTkwMCAvLyBWQysrIDE0LjAgYW5kIGFib3ZlCisjZGVmaW5lIHNucHJpbnRmIHN0ZDo6
c25wcmludGYKKyNlbHNlCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50ZgorI2VuZGlmCisjZWxp
ZiBkZWZpbmVkKF9fQU5EUk9JRF9fKSB8fCBkZWZpbmVkKF9fUU5YTlRPX18pCisjZGVmaW5lIHNu
cHJpbnRmIHNucHJpbnRmCisjZWxpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCisjZGVmaW5lIHNu
cHJpbnRmIHN0ZDo6c25wcmludGYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX1FOWE5UT19fKQor
I2RlZmluZSBzc2NhbmYgc3RkOjpzc2NhbmYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZF
UikgJiYgX01TQ19WRVIgPj0gMTQwMCAvLyBWQysrIDguMAorLy8gRGlzYWJsZSB3YXJuaW5nIGFi
b3V0IHN0cmR1cCBiZWluZyBkZXByZWNhdGVkLgorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0
OTk2KQorI2VuZGlmCisKK3N0YXRpYyBpbnQgY29uc3Qgc3RhY2tMaW1pdF9nID0gMTAwMDsKK3N0
YXRpYyBpbnQgICAgICAgc3RhY2tEZXB0aF9nID0gMDsgIC8vIHNlZSByZWFkVmFsdWUoKQorCitu
YW1lc3BhY2UgSnNvbiB7CisKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMIHx8IChkZWZpbmVk
KF9DUFBMSUJfVkVSKSAmJiBfQ1BQTElCX1ZFUiA+PSA1MjApCit0eXBlZGVmIHN0ZDo6dW5pcXVl
X3B0cjxDaGFyUmVhZGVyPiBDaGFyUmVhZGVyUHRyOworI2Vsc2UKK3R5cGVkZWYgc3RkOjphdXRv
X3B0cjxDaGFyUmVhZGVyPiAgIENoYXJSZWFkZXJQdHI7CisjZW5kaWYKKworLy8gSW1wbGVtZW50
YXRpb24gb2YgY2xhc3MgRmVhdHVyZXMKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK0ZlYXR1cmVzOjpGZWF0dXJlcygpCisgICAgOiBhbGxvd0NvbW1lbnRzXyh0cnVlKSwg
c3RyaWN0Um9vdF8oZmFsc2UpLAorICAgICAgYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18o
ZmFsc2UpLCBhbGxvd051bWVyaWNLZXlzXyhmYWxzZSkge30KKworRmVhdHVyZXMgRmVhdHVyZXM6
OmFsbCgpIHsgcmV0dXJuIEZlYXR1cmVzKCk7IH0KKworRmVhdHVyZXMgRmVhdHVyZXM6OnN0cmlj
dE1vZGUoKSB7CisgIEZlYXR1cmVzIGZlYXR1cmVzOworICBmZWF0dXJlcy5hbGxvd0NvbW1lbnRz
XyA9IGZhbHNlOworICBmZWF0dXJlcy5zdHJpY3RSb290XyA9IHRydWU7CisgIGZlYXR1cmVzLmFs
bG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfID0gZmFsc2U7CisgIGZlYXR1cmVzLmFsbG93TnVt
ZXJpY0tleXNfID0gZmFsc2U7CisgIHJldHVybiBmZWF0dXJlczsKK30KKworLy8gSW1wbGVtZW50
YXRpb24gb2YgY2xhc3MgUmVhZGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCitzdGF0aWMgYm9vbCBjb250YWluc05ld0xpbmUoUmVhZGVyOjpMb2NhdGlvbiBiZWdpbiwg
UmVhZGVyOjpMb2NhdGlvbiBlbmQpIHsKKyAgZm9yICg7IGJlZ2luIDwgZW5kOyArK2JlZ2luKQor
ICAgIGlmICgqYmVnaW4gPT0gJ1xuJyB8fCAqYmVnaW4gPT0gJ1xyJykKKyAgICAgIHJldHVybiB0
cnVlOworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIENsYXNzIFJlYWRlcgorLy8gLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKK1JlYWRlcjo6UmVhZGVyKCkKKyAgICA6IGVycm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2lu
XygpLCBlbmRfKCksIGN1cnJlbnRfKCksIGxhc3RWYWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1
ZV8oKSwgY29tbWVudHNCZWZvcmVfKCksIGZlYXR1cmVzXyhGZWF0dXJlczo6YWxsKCkpLAorICAg
ICAgY29sbGVjdENvbW1lbnRzXygpIHt9CisKK1JlYWRlcjo6UmVhZGVyKGNvbnN0IEZlYXR1cmVz
JiBmZWF0dXJlcykKKyAgICA6IGVycm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2luXygpLCBlbmRf
KCksIGN1cnJlbnRfKCksIGxhc3RWYWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1ZV8oKSwgY29t
bWVudHNCZWZvcmVfKCksIGZlYXR1cmVzXyhmZWF0dXJlcyksIGNvbGxlY3RDb21tZW50c18oKSB7
Cit9CisKK2Jvb2wKK1JlYWRlcjo6cGFyc2UoY29uc3Qgc3RkOjpzdHJpbmcmIGRvY3VtZW50LCBW
YWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMpIHsKKyAgZG9jdW1lbnRfID0gZG9jdW1l
bnQ7CisgIGNvbnN0IGNoYXIqIGJlZ2luID0gZG9jdW1lbnRfLmNfc3RyKCk7CisgIGNvbnN0IGNo
YXIqIGVuZCA9IGJlZ2luICsgZG9jdW1lbnRfLmxlbmd0aCgpOworICByZXR1cm4gcGFyc2UoYmVn
aW4sIGVuZCwgcm9vdCwgY29sbGVjdENvbW1lbnRzKTsKK30KKworYm9vbCBSZWFkZXI6OnBhcnNl
KHN0ZDo6aXN0cmVhbSYgc2luLCBWYWx1ZSYgcm9vdCwgYm9vbCBjb2xsZWN0Q29tbWVudHMpIHsK
KyAgLy8gc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGNoYXI+IGJlZ2luKHNpbik7CisgIC8vIHN0ZDo6
aXN0cmVhbV9pdGVyYXRvcjxjaGFyPiBlbmQ7CisgIC8vIFRob3NlIHdvdWxkIGFsbG93IHN0cmVh
bWVkIGlucHV0IGZyb20gYSBmaWxlLCBpZiBwYXJzZSgpIHdlcmUgYQorICAvLyB0ZW1wbGF0ZSBm
dW5jdGlvbi4KKworICAvLyBTaW5jZSBzdGQ6OnN0cmluZyBpcyByZWZlcmVuY2UtY291bnRlZCwg
dGhpcyBhdCBsZWFzdCBkb2VzIG5vdAorICAvLyBjcmVhdGUgYW4gZXh0cmEgY29weS4KKyAgc3Rk
OjpzdHJpbmcgZG9jOworICBzdGQ6OmdldGxpbmUoc2luLCBkb2MsIChjaGFyKUVPRik7CisgIHJl
dHVybiBwYXJzZShkb2MsIHJvb3QsIGNvbGxlY3RDb21tZW50cyk7Cit9CisKK2Jvb2wgUmVhZGVy
OjpwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRvYywKKyAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiBlbmREb2MsCisgICAgICAgICAgICAgICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAg
ICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVudHMpIHsKKyAgaWYgKCFmZWF0dXJlc18uYWxsb3dD
b21tZW50c18pIHsKKyAgICBjb2xsZWN0Q29tbWVudHMgPSBmYWxzZTsKKyAgfQorCisgIGJlZ2lu
XyA9IGJlZ2luRG9jOworICBlbmRfID0gZW5kRG9jOworICBjb2xsZWN0Q29tbWVudHNfID0gY29s
bGVjdENvbW1lbnRzOworICBjdXJyZW50XyA9IGJlZ2luXzsKKyAgbGFzdFZhbHVlRW5kXyA9IDA7
CisgIGxhc3RWYWx1ZV8gPSAwOworICBjb21tZW50c0JlZm9yZV8gPSAiIjsKKyAgZXJyb3JzXy5j
bGVhcigpOworICB3aGlsZSAoIW5vZGVzXy5lbXB0eSgpKQorICAgIG5vZGVzXy5wb3AoKTsKKyAg
bm9kZXNfLnB1c2goJnJvb3QpOworCisgIHN0YWNrRGVwdGhfZyA9IDA7ICAvLyBZZXMsIHRoaXMg
aXMgYmFkIGNvZGluZywgYnV0IG9wdGlvbnMgYXJlIGxpbWl0ZWQuCisgIGJvb2wgc3VjY2Vzc2Z1
bCA9IHJlYWRWYWx1ZSgpOworICBUb2tlbiB0b2tlbjsKKyAgc2tpcENvbW1lbnRUb2tlbnModG9r
ZW4pOworICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkp
CisgICAgcm9vdC5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEFmdGVyKTsKKyAg
aWYgKGZlYXR1cmVzXy5zdHJpY3RSb290XykgeworICAgIGlmICghcm9vdC5pc0FycmF5KCkgJiYg
IXJvb3QuaXNPYmplY3QoKSkgeworICAgICAgLy8gU2V0IGVycm9yIGxvY2F0aW9uIHRvIHN0YXJ0
IG9mIGRvYywgaWRlYWxseSBzaG91bGQgYmUgZmlyc3QgdG9rZW4gZm91bmQKKyAgICAgIC8vIGlu
IGRvYworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICAgICAgdG9rZW4uc3RhcnRf
ID0gYmVnaW5Eb2M7CisgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOworICAgICAgYWRkRXJyb3Io
CisgICAgICAgICAgIkEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhlciBhbiBhcnJh
eSBvciBhbiBvYmplY3QgdmFsdWUuIiwKKyAgICAgICAgICB0b2tlbik7CisgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCitib29sIFJlYWRl
cjo6cmVhZFZhbHVlKCkgeworICAvLyBUaGlzIGlzIGEgbm9uLXJlZW50cmFudCB3YXkgdG8gc3Vw
cG9ydCBhIHN0YWNrTGltaXQuIFRlcnJpYmxlIQorICAvLyBCdXQgdGhpcyBkZXByZWNhdGVkIGNs
YXNzIGhhcyBhIHNlY3VyaXR5IHByb2JsZW06IEJhZCBpbnB1dCBjYW4KKyAgLy8gY2F1c2UgYSBz
ZWctZmF1bHQuIFRoaXMgc2VlbXMgbGlrZSBhIGZhaXIsIGJpbmFyeS1jb21wYXRpYmxlIHdheQor
ICAvLyB0byBwcmV2ZW50IHRoZSBwcm9ibGVtLgorICBpZiAoc3RhY2tEZXB0aF9nID49IHN0YWNr
TGltaXRfZykgdGhyb3dSdW50aW1lRXJyb3IoIkV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZh
bHVlKCkuIik7CisgICsrc3RhY2tEZXB0aF9nOworCisgIFRva2VuIHRva2VuOworICBza2lwQ29t
bWVudFRva2Vucyh0b2tlbik7CisgIGJvb2wgc3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgaWYgKGNv
bGxlY3RDb21tZW50c18gJiYgIWNvbW1lbnRzQmVmb3JlXy5lbXB0eSgpKSB7CisgICAgY3VycmVu
dFZhbHVlKCkuc2V0Q29tbWVudChjb21tZW50c0JlZm9yZV8sIGNvbW1lbnRCZWZvcmUpOworICAg
IGNvbW1lbnRzQmVmb3JlXyA9ICIiOworICB9CisKKyAgc3dpdGNoICh0b2tlbi50eXBlXykgewor
ICBjYXNlIHRva2VuT2JqZWN0QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9IHJlYWRPYmplY3QodG9r
ZW4pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KGN1cnJlbnRfIC0gYmVnaW5f
KTsKKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbkFycmF5QmVnaW46CisgICAgc3VjY2Vzc2Z1bCA9
IHJlYWRBcnJheSh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3Vy
cmVudF8gLSBiZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuTnVtYmVyOgorICAgIHN1
Y2Nlc3NmdWwgPSBkZWNvZGVOdW1iZXIodG9rZW4pOworICAgIGJyZWFrOworICBjYXNlIHRva2Vu
U3RyaW5nOgorICAgIHN1Y2Nlc3NmdWwgPSBkZWNvZGVTdHJpbmcodG9rZW4pOworICAgIGJyZWFr
OworICBjYXNlIHRva2VuVHJ1ZToKKyAgICB7CisgICAgVmFsdWUgdih0cnVlKTsKKyAgICBjdXJy
ZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNl
dExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0
b2tlbkZhbHNlOgorICAgIHsKKyAgICBWYWx1ZSB2KGZhbHNlKTsKKyAgICBjdXJyZW50VmFsdWUo
KS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tl
bi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRv
a2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk51bGw6
CisgICAgeworICAgIFZhbHVlIHY7CisgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7
CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5f
KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5f
KTsKKyAgICB9CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5BcnJheVNlcGFyYXRvcjoKKyAgY2Fz
ZSB0b2tlbk9iamVjdEVuZDoKKyAgY2FzZSB0b2tlbkFycmF5RW5kOgorICAgIGlmIChmZWF0dXJl
c18uYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVyc18pIHsKKyAgICAgIC8vICJVbi1yZWFkIiB0
aGUgY3VycmVudCB0b2tlbiBhbmQgbWFyayB0aGUgY3VycmVudCB2YWx1ZSBhcyBhIG51bGwKKyAg
ICAgIC8vIHRva2VuLgorICAgICAgY3VycmVudF8tLTsKKyAgICAgIFZhbHVlIHY7CisgICAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KGN1cnJlbnRfIC0gYmVnaW5fIC0gMSk7CisgICAgICBjdXJyZW50VmFsdWUoKS5z
ZXRPZmZzZXRMaW1pdChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgICBicmVhazsKKyAgICB9IC8v
IEVsc2UsIGZhbGwgdGhyb3VnaC4uLgorICBkZWZhdWx0OgorICAgIGN1cnJlbnRWYWx1ZSgpLnNl
dE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCku
c2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgcmV0dXJuIGFkZEVycm9y
KCJTeW50YXggZXJyb3I6IHZhbHVlLCBvYmplY3Qgb3IgYXJyYXkgZXhwZWN0ZWQuIiwgdG9rZW4p
OworICB9CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBsYXN0VmFsdWVFbmRfID0g
Y3VycmVudF87CisgICAgbGFzdFZhbHVlXyA9ICZjdXJyZW50VmFsdWUoKTsKKyAgfQorCisgIC0t
c3RhY2tEZXB0aF9nOworICByZXR1cm4gc3VjY2Vzc2Z1bDsKK30KKwordm9pZCBSZWFkZXI6OnNr
aXBDb21tZW50VG9rZW5zKFRva2VuJiB0b2tlbikgeworICBpZiAoZmVhdHVyZXNfLmFsbG93Q29t
bWVudHNfKSB7CisgICAgZG8geworICAgICAgcmVhZFRva2VuKHRva2VuKTsKKyAgICB9IHdoaWxl
ICh0b2tlbi50eXBlXyA9PSB0b2tlbkNvbW1lbnQpOworICB9IGVsc2UgeworICAgIHJlYWRUb2tl
bih0b2tlbik7CisgIH0KK30KKworYm9vbCBSZWFkZXI6OnJlYWRUb2tlbihUb2tlbiYgdG9rZW4p
IHsKKyAgc2tpcFNwYWNlcygpOworICB0b2tlbi5zdGFydF8gPSBjdXJyZW50XzsKKyAgQ2hhciBj
ID0gZ2V0TmV4dENoYXIoKTsKKyAgYm9vbCBvayA9IHRydWU7CisgIHN3aXRjaCAoYykgeworICBj
YXNlICd7JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuT2JqZWN0QmVnaW47CisgICAgYnJlYWs7
CisgIGNhc2UgJ30nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5PYmplY3RFbmQ7CisgICAgYnJl
YWs7CisgIGNhc2UgJ1snOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheUJlZ2luOworICAg
IGJyZWFrOworICBjYXNlICddJzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlFbmQ7Cisg
ICAgYnJlYWs7CisgIGNhc2UgJyInOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5TdHJpbmc7Cisg
ICAgb2sgPSByZWFkU3RyaW5nKCk7CisgICAgYnJlYWs7CisgIGNhc2UgJy8nOgorICAgIHRva2Vu
LnR5cGVfID0gdG9rZW5Db21tZW50OworICAgIG9rID0gcmVhZENvbW1lbnQoKTsKKyAgICBicmVh
azsKKyAgY2FzZSAnMCc6CisgIGNhc2UgJzEnOgorICBjYXNlICcyJzoKKyAgY2FzZSAnMyc6Cisg
IGNhc2UgJzQnOgorICBjYXNlICc1JzoKKyAgY2FzZSAnNic6CisgIGNhc2UgJzcnOgorICBjYXNl
ICc4JzoKKyAgY2FzZSAnOSc6CisgIGNhc2UgJy0nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5O
dW1iZXI7CisgICAgcmVhZE51bWJlcigpOworICAgIGJyZWFrOworICBjYXNlICd0JzoKKyAgICB0
b2tlbi50eXBlXyA9IHRva2VuVHJ1ZTsKKyAgICBvayA9IG1hdGNoKCJydWUiLCAzKTsKKyAgICBi
cmVhazsKKyAgY2FzZSAnZic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOworICAgIG9r
ID0gbWF0Y2goImFsc2UiLCA0KTsKKyAgICBicmVhazsKKyAgY2FzZSAnbic6CisgICAgdG9rZW4u
dHlwZV8gPSB0b2tlbk51bGw7CisgICAgb2sgPSBtYXRjaCgidWxsIiwgMyk7CisgICAgYnJlYWs7
CisgIGNhc2UgJywnOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5BcnJheVNlcGFyYXRvcjsKKyAg
ICBicmVhazsKKyAgY2FzZSAnOic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbk1lbWJlclNlcGFy
YXRvcjsKKyAgICBicmVhazsKKyAgY2FzZSAwOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FbmRP
ZlN0cmVhbTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBvayA9IGZhbHNlOworICAgIGJy
ZWFrOworICB9CisgIGlmICghb2spCisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0
b2tlbi5lbmRfID0gY3VycmVudF87CisgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlYWRlcjo6
c2tpcFNwYWNlcygpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMg
PSAqY3VycmVudF87CisgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicg
fHwgYyA9PSAnXG4nKQorICAgICAgKytjdXJyZW50XzsKKyAgICBlbHNlCisgICAgICBicmVhazsK
KyAgfQorfQorCitib29sIFJlYWRlcjo6bWF0Y2goTG9jYXRpb24gcGF0dGVybiwgaW50IHBhdHRl
cm5MZW5ndGgpIHsKKyAgaWYgKGVuZF8gLSBjdXJyZW50XyA8IHBhdHRlcm5MZW5ndGgpCisgICAg
cmV0dXJuIGZhbHNlOworICBpbnQgaW5kZXggPSBwYXR0ZXJuTGVuZ3RoOworICB3aGlsZSAoaW5k
ZXgtLSkKKyAgICBpZiAoY3VycmVudF9baW5kZXhdICE9IHBhdHRlcm5baW5kZXhdKQorICAgICAg
cmV0dXJuIGZhbHNlOworICBjdXJyZW50XyArPSBwYXR0ZXJuTGVuZ3RoOworICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRDb21tZW50KCkgeworICBMb2NhdGlvbiBjb21tZW50
QmVnaW4gPSBjdXJyZW50XyAtIDE7CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wg
c3VjY2Vzc2Z1bCA9IGZhbHNlOworICBpZiAoYyA9PSAnKicpCisgICAgc3VjY2Vzc2Z1bCA9IHJl
YWRDU3R5bGVDb21tZW50KCk7CisgIGVsc2UgaWYgKGMgPT0gJy8nKQorICAgIHN1Y2Nlc3NmdWwg
PSByZWFkQ3BwU3R5bGVDb21tZW50KCk7CisgIGlmICghc3VjY2Vzc2Z1bCkKKyAgICByZXR1cm4g
ZmFsc2U7CisKKyAgaWYgKGNvbGxlY3RDb21tZW50c18pIHsKKyAgICBDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCA9IGNvbW1lbnRCZWZvcmU7CisgICAgaWYgKGxhc3RWYWx1ZUVuZF8gJiYgIWNv
bnRhaW5zTmV3TGluZShsYXN0VmFsdWVFbmRfLCBjb21tZW50QmVnaW4pKSB7CisgICAgICBpZiAo
YyAhPSAnKicgfHwgIWNvbnRhaW5zTmV3TGluZShjb21tZW50QmVnaW4sIGN1cnJlbnRfKSkKKyAg
ICAgICAgcGxhY2VtZW50ID0gY29tbWVudEFmdGVyT25TYW1lTGluZTsKKyAgICB9CisKKyAgICBh
ZGRDb21tZW50KGNvbW1lbnRCZWdpbiwgY3VycmVudF8sIHBsYWNlbWVudCk7CisgIH0KKyAgcmV0
dXJuIHRydWU7Cit9CisKK3N0YXRpYyBzdGQ6OnN0cmluZyBub3JtYWxpemVFT0woUmVhZGVyOjpM
b2NhdGlvbiBiZWdpbiwgUmVhZGVyOjpMb2NhdGlvbiBlbmQpIHsKKyAgc3RkOjpzdHJpbmcgbm9y
bWFsaXplZDsKKyAgbm9ybWFsaXplZC5yZXNlcnZlKGVuZCAtIGJlZ2luKTsKKyAgUmVhZGVyOjpM
b2NhdGlvbiBjdXJyZW50ID0gYmVnaW47CisgIHdoaWxlIChjdXJyZW50ICE9IGVuZCkgeworICAg
IGNoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJ1xyJykgeworICAgICAgaWYgKGN1
cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID09ICdcbicpCisgICAgICAgICAvLyBjb252ZXJ0IGRv
cyBFT0wKKyAgICAgICAgICsrY3VycmVudDsKKyAgICAgIC8vIGNvbnZlcnQgTWFjIEVPTAorICAg
ICAgbm9ybWFsaXplZCArPSAnXG4nOworICAgIH0gZWxzZSB7CisgICAgICBub3JtYWxpemVkICs9
IGM7CisgICAgfQorICB9CisgIHJldHVybiBub3JtYWxpemVkOworfQorCit2b2lkCitSZWFkZXI6
OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4sIExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVu
dCBwbGFjZW1lbnQpIHsKKyAgYXNzZXJ0KGNvbGxlY3RDb21tZW50c18pOworICBjb25zdCBzdGQ6
OnN0cmluZyYgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAgaWYgKHBs
YWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB7CisgICAgYXNzZXJ0KGxhc3RWYWx1
ZV8gIT0gMCk7CisgICAgbGFzdFZhbHVlXy0+c2V0Q29tbWVudChub3JtYWxpemVkLCBwbGFjZW1l
bnQpOworICB9IGVsc2UgeworICAgIGNvbW1lbnRzQmVmb3JlXyArPSBub3JtYWxpemVkOworICB9
Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkQ1N0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09
ICcqJyAmJiAqY3VycmVudF8gPT0gJy8nKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGdl
dE5leHRDaGFyKCkgPT0gJy8nOworfQorCitib29sIFJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVu
dCgpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0
Q2hhcigpOworICAgIGlmIChjID09ICdcbicpCisgICAgICBicmVhazsKKyAgICBpZiAoYyA9PSAn
XHInKSB7CisgICAgICAvLyBDb25zdW1lIERPUyBFT0wuIEl0IHdpbGwgYmUgbm9ybWFsaXplZCBp
biBhZGRDb21tZW50LgorICAgICAgaWYgKGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09
ICdcbicpCisgICAgICAgIGdldE5leHRDaGFyKCk7CisgICAgICAvLyBCcmVhayBvbiBNb2MgT1Mg
OSBFT0wuCisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgUmVhZGVyOjpyZWFkTnVtYmVyKCkgeworICBjb25zdCBjaGFyICpwID0gY3VycmVudF87Cisg
IGNoYXIgYyA9ICcwJzsgLy8gc3RvcGdhcCBmb3IgYWxyZWFkeSBjb25zdW1lZCBjaGFyYWN0ZXIK
KyAgLy8gaW50ZWdyYWwgcGFydAorICB3aGlsZSAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAg
YyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAwOworICAvLyBmcmFjdGlvbmFsIHBh
cnQKKyAgaWYgKGMgPT0gJy4nKSB7CisgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpw
KysgOiAwOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICAvLyBleHBvbmVudGlhbCBwYXJ0
CisgIGlmIChjID09ICdlJyB8fCBjID09ICdFJykgeworICAgIGMgPSAoY3VycmVudF8gPSBwKSA8
IGVuZF8gPyAqcCsrIDogMDsKKyAgICBpZiAoYyA9PSAnKycgfHwgYyA9PSAnLScpCisgICAgICBj
ID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgd2hpbGUgKGMgPj0gJzAn
ICYmIGMgPD0gJzknKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpwKysgOiAw
OworICB9Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWFkU3RyaW5nKCkgeworICBDaGFyIGMgPSAwOwor
ICB3aGlsZSAoY3VycmVudF8gIT0gZW5kXykgeworICAgIGMgPSBnZXROZXh0Q2hhcigpOworICAg
IGlmIChjID09ICdcXCcpCisgICAgICBnZXROZXh0Q2hhcigpOworICAgIGVsc2UgaWYgKGMgPT0g
JyInKQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGMgPT0gJyInOworfQorCitib29sIFJl
YWRlcjo6cmVhZE9iamVjdChUb2tlbiYgdG9rZW5TdGFydCkgeworICBUb2tlbiB0b2tlbk5hbWU7
CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIFZhbHVlIGluaXQob2JqZWN0VmFsdWUpOworICBjdXJy
ZW50VmFsdWUoKS5zd2FwUGF5bG9hZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW5TdGFydC5zdGFydF8gLSBiZWdpbl8pOworICB3aGlsZSAocmVhZFRva2VuKHRv
a2VuTmFtZSkpIHsKKyAgICBib29sIGluaXRpYWxUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAo
dG9rZW5OYW1lLnR5cGVfID09IHRva2VuQ29tbWVudCAmJiBpbml0aWFsVG9rZW5PaykKKyAgICAg
IGluaXRpYWxUb2tlbk9rID0gcmVhZFRva2VuKHRva2VuTmFtZSk7CisgICAgaWYgKCFpbml0aWFs
VG9rZW5PaykKKyAgICAgIGJyZWFrOworICAgIGlmICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5P
YmplY3RFbmQgJiYgbmFtZS5lbXB0eSgpKSAvLyBlbXB0eSBvYmplY3QKKyAgICAgIHJldHVybiB0
cnVlOworICAgIG5hbWUgPSAiIjsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuU3Ry
aW5nKSB7CisgICAgICBpZiAoIWRlY29kZVN0cmluZyh0b2tlbk5hbWUsIG5hbWUpKQorICAgICAg
ICByZXR1cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbk9iamVjdEVuZCk7CisgICAgfSBlbHNlIGlm
ICh0b2tlbk5hbWUudHlwZV8gPT0gdG9rZW5OdW1iZXIgJiYgZmVhdHVyZXNfLmFsbG93TnVtZXJp
Y0tleXNfKSB7CisgICAgICBWYWx1ZSBudW1iZXJOYW1lOworICAgICAgaWYgKCFkZWNvZGVOdW1i
ZXIodG9rZW5OYW1lLCBudW1iZXJOYW1lKSkKKyAgICAgICAgcmV0dXJuIHJlY292ZXJGcm9tRXJy
b3IodG9rZW5PYmplY3RFbmQpOworICAgICAgbmFtZSA9IG51bWJlck5hbWUuYXNTdHJpbmcoKTsK
KyAgICB9IGVsc2UgeworICAgICAgYnJlYWs7CisgICAgfQorCisgICAgVG9rZW4gY29sb247Cisg
ICAgaWYgKCFyZWFkVG9rZW4oY29sb24pIHx8IGNvbG9uLnR5cGVfICE9IHRva2VuTWVtYmVyU2Vw
YXJhdG9yKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAgICJN
aXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUiLCBjb2xvbiwgdG9rZW5PYmplY3RF
bmQpOworICAgIH0KKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtuYW1lXTsKKyAg
ICBub2Rlc18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBu
b2Rlc18ucG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJl
dHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2JqZWN0RW5kKTsKKworICAgIFRva2VuIGNvbW1h
OworICAgIGlmICghcmVhZFRva2VuKGNvbW1hKSB8fAorICAgICAgICAoY29tbWEudHlwZV8gIT0g
dG9rZW5PYmplY3RFbmQgJiYgY29tbWEudHlwZV8gIT0gdG9rZW5BcnJheVNlcGFyYXRvciAmJgor
ICAgICAgICAgY29tbWEudHlwZV8gIT0gdG9rZW5Db21tZW50KSkgeworICAgICAgcmV0dXJuIGFk
ZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVj
dCBkZWNsYXJhdGlvbiIsIGNvbW1hLCB0b2tlbk9iamVjdEVuZCk7CisgICAgfQorICAgIGJvb2wg
ZmluYWxpemVUb2tlbk9rID0gdHJ1ZTsKKyAgICB3aGlsZSAoY29tbWEudHlwZV8gPT0gdG9rZW5D
b21tZW50ICYmIGZpbmFsaXplVG9rZW5PaykKKyAgICAgIGZpbmFsaXplVG9rZW5PayA9IHJlYWRU
b2tlbihjb21tYSk7CisgICAgaWYgKGNvbW1hLnR5cGVfID09IHRva2VuT2JqZWN0RW5kKQorICAg
ICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAg
ICJNaXNzaW5nICd9JyBvciBvYmplY3QgbWVtYmVyIG5hbWUiLCB0b2tlbk5hbWUsIHRva2VuT2Jq
ZWN0RW5kKTsKK30KKworYm9vbCBSZWFkZXI6OnJlYWRBcnJheShUb2tlbiYgdG9rZW5TdGFydCkg
eworICBWYWx1ZSBpbml0KGFycmF5VmFsdWUpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9h
ZChpbml0KTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW5TdGFydC5zdGFy
dF8gLSBiZWdpbl8pOworICBza2lwU3BhY2VzKCk7CisgIGlmICgqY3VycmVudF8gPT0gJ10nKSAv
LyBlbXB0eSBhcnJheQorICB7CisgICAgVG9rZW4gZW5kQXJyYXk7CisgICAgcmVhZFRva2VuKGVu
ZEFycmF5KTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICBpbnQgaW5kZXggPSAwOworICBmb3Ig
KDs7KSB7CisgICAgVmFsdWUmIHZhbHVlID0gY3VycmVudFZhbHVlKClbaW5kZXgrK107CisgICAg
bm9kZXNfLnB1c2goJnZhbHVlKTsKKyAgICBib29sIG9rID0gcmVhZFZhbHVlKCk7CisgICAgbm9k
ZXNfLnBvcCgpOworICAgIGlmICghb2spIC8vIGVycm9yIGFscmVhZHkgc2V0CisgICAgICByZXR1
cm4gcmVjb3ZlckZyb21FcnJvcih0b2tlbkFycmF5RW5kKTsKKworICAgIFRva2VuIHRva2VuOwor
ICAgIC8vIEFjY2VwdCBDb21tZW50IGFmdGVyIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkuCisgICAg
b2sgPSByZWFkVG9rZW4odG9rZW4pOworICAgIHdoaWxlICh0b2tlbi50eXBlXyA9PSB0b2tlbkNv
bW1lbnQgJiYgb2spIHsKKyAgICAgIG9rID0gcmVhZFRva2VuKHRva2VuKTsKKyAgICB9CisgICAg
Ym9vbCBiYWRUb2tlblR5cGUgPQorICAgICAgICAodG9rZW4udHlwZV8gIT0gdG9rZW5BcnJheVNl
cGFyYXRvciAmJiB0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5RW5kKTsKKyAgICBpZiAoIW9rIHx8
IGJhZFRva2VuVHlwZSkgeworICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAg
ICAgICAiTWlzc2luZyAnLCcgb3IgJ10nIGluIGFycmF5IGRlY2xhcmF0aW9uIiwgdG9rZW4sIHRv
a2VuQXJyYXlFbmQpOworICAgIH0KKyAgICBpZiAodG9rZW4udHlwZV8gPT0gdG9rZW5BcnJheUVu
ZCkKKyAgICAgIGJyZWFrOworICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6
ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbikgeworICBWYWx1ZSBkZWNvZGVkOworICBpZiAoIWRl
Y29kZU51bWJlcih0b2tlbiwgZGVjb2RlZCkpCisgICAgcmV0dXJuIGZhbHNlOworICBjdXJyZW50
VmFsdWUoKS5zd2FwUGF5bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJl
YWRlcjo6ZGVjb2RlTnVtYmVyKFRva2VuJiB0b2tlbiwgVmFsdWUmIGRlY29kZWQpIHsKKyAgLy8g
QXR0ZW1wdHMgdG8gcGFyc2UgdGhlIG51bWJlciBhcyBhbiBpbnRlZ2VyLiBJZiB0aGUgbnVtYmVy
IGlzCisgIC8vIGxhcmdlciB0aGFuIHRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBvZiBhbiBp
bnRlZ2VyIHRoZW4KKyAgLy8gd2UgZGVjb2RlIHRoZSBudW1iZXIgYXMgYSBkb3VibGUuCisgIExv
Y2F0aW9uIGN1cnJlbnQgPSB0b2tlbi5zdGFydF87CisgIGJvb2wgaXNOZWdhdGl2ZSA9ICpjdXJy
ZW50ID09ICctJzsKKyAgaWYgKGlzTmVnYXRpdmUpCisgICAgKytjdXJyZW50OworICAvLyBUT0RP
OiBIZWxwIHRoZSBjb21waWxlciBkbyB0aGUgZGl2IGFuZCBtb2QgYXQgY29tcGlsZSB0aW1lIG9y
IGdldCByaWQgb2YgdGhlbS4KKyAgVmFsdWU6Okxhcmdlc3RVSW50IG1heEludGVnZXJWYWx1ZSA9
CisgICAgICBpc05lZ2F0aXZlID8gVmFsdWU6Okxhcmdlc3RVSW50KFZhbHVlOjptYXhMYXJnZXN0
SW50KSArIDEKKyAgICAgICAgICAgICAgICAgOiBWYWx1ZTo6bWF4TGFyZ2VzdFVJbnQ7CisgIFZh
bHVlOjpMYXJnZXN0VUludCB0aHJlc2hvbGQgPSBtYXhJbnRlZ2VyVmFsdWUgLyAxMDsKKyAgVmFs
dWU6Okxhcmdlc3RVSW50IHZhbHVlID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQgPCB0b2tlbi5lbmRf
KSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzkn
KQorICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgVmFsdWU6
OlVJbnQgZGlnaXQoYyAtICcwJyk7CisgICAgaWYgKHZhbHVlID49IHRocmVzaG9sZCkgeworICAg
ICAgLy8gV2UndmUgaGl0IG9yIGV4Y2VlZGVkIHRoZSBtYXggdmFsdWUgZGl2aWRlZCBieSAxMCAo
cm91bmRlZCBkb3duKS4gSWYKKyAgICAgIC8vIGEpIHdlJ3ZlIG9ubHkganVzdCB0b3VjaGVkIHRo
ZSBsaW1pdCwgYikgdGhpcyBpcyB0aGUgbGFzdCBkaWdpdCwgYW5kCisgICAgICAvLyBjKSBpdCdz
IHNtYWxsIGVub3VnaCB0byBmaXQgaW4gdGhhdCByb3VuZGluZyBkZWx0YSwgd2UncmUgb2theS4K
KyAgICAgIC8vIE90aGVyd2lzZSB0cmVhdCB0aGlzIG51bWJlciBhcyBhIGRvdWJsZSB0byBhdm9p
ZCBvdmVyZmxvdy4KKyAgICAgIGlmICh2YWx1ZSA+IHRocmVzaG9sZCB8fCBjdXJyZW50ICE9IHRv
a2VuLmVuZF8gfHwKKyAgICAgICAgICBkaWdpdCA+IG1heEludGVnZXJWYWx1ZSAlIDEwKSB7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVEb3VibGUodG9rZW4sIGRlY29kZWQpOworICAgICAgfQorICAg
IH0KKyAgICB2YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKKyAgfQorICBpZiAoaXNOZWdhdGl2
ZSAmJiB2YWx1ZSA9PSBtYXhJbnRlZ2VyVmFsdWUpCisgICAgZGVjb2RlZCA9IFZhbHVlOjptaW5M
YXJnZXN0SW50OworICBlbHNlIGlmIChpc05lZ2F0aXZlKQorICAgIGRlY29kZWQgPSAtVmFsdWU6
Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlIGlmICh2YWx1ZSA8PSBWYWx1ZTo6TGFyZ2VzdFVJ
bnQoVmFsdWU6Om1heEludCkpCisgICAgZGVjb2RlZCA9IFZhbHVlOjpMYXJnZXN0SW50KHZhbHVl
KTsKKyAgZWxzZQorICAgIGRlY29kZWQgPSB2YWx1ZTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgUmVhZGVyOjpkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7
CisgIGlmICghZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7
CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUo
KS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgUmVhZGVyOjpkZWNvZGVEb3VibGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2Rl
ZCkgeworICBkb3VibGUgdmFsdWUgPSAwOworICBzdGQ6OnN0cmluZyBidWZmZXIodG9rZW4uc3Rh
cnRfLCB0b2tlbi5lbmRfKTsKKyAgc3RkOjppc3RyaW5nc3RyZWFtIGlzKGJ1ZmZlcik7CisgIGlm
ICghKGlzID4+IHZhbHVlKSkKKyAgICByZXR1cm4gYWRkRXJyb3IoIiciICsgc3RkOjpzdHJpbmco
dG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiJyBp
cyBub3QgYSBudW1iZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4pOworICBkZWNvZGVk
ID0gdmFsdWU7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlU3RyaW5n
KFRva2VuJiB0b2tlbikgeworICBzdGQ6OnN0cmluZyBkZWNvZGVkX3N0cmluZzsKKyAgaWYgKCFk
ZWNvZGVTdHJpbmcodG9rZW4sIGRlY29kZWRfc3RyaW5nKSkKKyAgICByZXR1cm4gZmFsc2U7Cisg
IFZhbHVlIGRlY29kZWQoZGVjb2RlZF9zdHJpbmcpOworICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5
bG9hZChkZWNvZGVkKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3Rh
cnRfIC0gYmVnaW5fKTsKKyAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5k
XyAtIGJlZ2luXyk7CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlU3Ry
aW5nKFRva2VuJiB0b2tlbiwgc3RkOjpzdHJpbmcmIGRlY29kZWQpIHsKKyAgZGVjb2RlZC5yZXNl
cnZlKHRva2VuLmVuZF8gLSB0b2tlbi5zdGFydF8gLSAyKTsKKyAgTG9jYXRpb24gY3VycmVudCA9
IHRva2VuLnN0YXJ0XyArIDE7IC8vIHNraXAgJyInCisgIExvY2F0aW9uIGVuZCA9IHRva2VuLmVu
ZF8gLSAxOyAgICAgICAvLyBkbyBub3QgaW5jbHVkZSAnIicKKyAgd2hpbGUgKGN1cnJlbnQgIT0g
ZW5kKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnIicpCisgICAg
ICBicmVhazsKKyAgICBlbHNlIGlmIChjID09ICdcXCcpIHsKKyAgICAgIGlmIChjdXJyZW50ID09
IGVuZCkKKyAgICAgICAgcmV0dXJuIGFkZEVycm9yKCJFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4g
c3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAgICAgQ2hhciBlc2NhcGUgPSAqY3VycmVudCsr
OworICAgICAgc3dpdGNoIChlc2NhcGUpIHsKKyAgICAgIGNhc2UgJyInOgorICAgICAgICBkZWNv
ZGVkICs9ICciJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICcvJzoKKyAgICAgICAgZGVj
b2RlZCArPSAnLyc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnXFwnOgorICAgICAgICBk
ZWNvZGVkICs9ICdcXCc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnYic6CisgICAgICAg
IGRlY29kZWQgKz0gJ1xiJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdmJzoKKyAgICAg
ICAgZGVjb2RlZCArPSAnXGYnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ24nOgorICAg
ICAgICBkZWNvZGVkICs9ICdcbic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncic6Cisg
ICAgICAgIGRlY29kZWQgKz0gJ1xyJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICd0JzoK
KyAgICAgICAgZGVjb2RlZCArPSAnXHQnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3Un
OiB7CisgICAgICAgIHVuc2lnbmVkIGludCB1bmljb2RlOworICAgICAgICBpZiAoIWRlY29kZVVu
aWNvZGVDb2RlUG9pbnQodG9rZW4sIGN1cnJlbnQsIGVuZCwgdW5pY29kZSkpCisgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBkZWNvZGVkICs9IGNvZGVQb2ludFRvVVRGOCh1bmljb2Rl
KTsKKyAgICAgIH0gYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gYWRkRXJy
b3IoIkJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nIiwgdG9rZW4sIGN1cnJlbnQpOworICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICBkZWNvZGVkICs9IGM7CisgICAgfQorICB9CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlVW5pY29kZUNvZGVQb2ludChUb2tl
biYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYg
Y3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uIGVu
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCYgdW5p
Y29kZSkgeworCisgIGlmICghZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKHRva2VuLCBjdXJy
ZW50LCBlbmQsIHVuaWNvZGUpKQorICAgIHJldHVybiBmYWxzZTsKKyAgaWYgKHVuaWNvZGUgPj0g
MHhEODAwICYmIHVuaWNvZGUgPD0gMHhEQkZGKSB7CisgICAgLy8gc3Vycm9nYXRlIHBhaXJzCisg
ICAgaWYgKGVuZCAtIGN1cnJlbnQgPCA2KQorICAgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAg
ICAgICJhZGRpdGlvbmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUg
c3Vycm9nYXRlIHBhaXIuIiwKKyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50KTsK
KyAgICB1bnNpZ25lZCBpbnQgc3Vycm9nYXRlUGFpcjsKKyAgICBpZiAoKihjdXJyZW50KyspID09
ICdcXCcgJiYgKihjdXJyZW50KyspID09ICd1JykgeworICAgICAgaWYgKGRlY29kZVVuaWNvZGVF
c2NhcGVTZXF1ZW5jZSh0b2tlbiwgY3VycmVudCwgZW5kLCBzdXJyb2dhdGVQYWlyKSkgeworICAg
ICAgICB1bmljb2RlID0gMHgxMDAwMCArICgodW5pY29kZSAmIDB4M0ZGKSA8PCAxMCkgKyAoc3Vy
cm9nYXRlUGFpciAmIDB4M0ZGKTsKKyAgICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfSBlbHNlCisgICAgICByZXR1cm4gYWRkRXJyb3IoImV4cGVjdGluZyBhbm90aGVyIFxc
dSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vjb25kIGhhbGYgb2YgIgorICAgICAgICAgICAgICAgICAg
ICAgICJhIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIiLAorICAgICAgICAgICAgICAgICAgICAgIHRv
a2VuLAorICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQpOworICB9CisgIHJldHVybiB0cnVl
OworfQorCitib29sIFJlYWRlcjo6ZGVjb2RlVW5pY29kZUVzY2FwZVNlcXVlbmNlKFRva2VuJiB0
b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24m
IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0
aW9uIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50JiB1bmljb2RlKSB7CisgIGlmIChlbmQgLSBjdXJyZW50IDwgNCkKKyAgICByZXR1cm4g
YWRkRXJyb3IoCisgICAgICAgICJCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5n
OiBmb3VyIGRpZ2l0cyBleHBlY3RlZC4iLAorICAgICAgICB0b2tlbiwKKyAgICAgICAgY3VycmVu
dCk7CisgIHVuaWNvZGUgPSAwOworICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytp
bmRleCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgdW5pY29kZSAqPSAxNjsKKyAg
ICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpCisgICAgICB1bmljb2RlICs9IGMgLSAnMCc7Cisg
ICAgZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAnZicpCisgICAgICB1bmljb2RlICs9IGMgLSAn
YScgKyAxMDsKKyAgICBlbHNlIGlmIChjID49ICdBJyAmJiBjIDw9ICdGJykKKyAgICAgIHVuaWNv
ZGUgKz0gYyAtICdBJyArIDEwOworICAgIGVsc2UKKyAgICAgIHJldHVybiBhZGRFcnJvcigKKyAg
ICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2lt
YWwgZGlnaXQgZXhwZWN0ZWQuIiwKKyAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICBjdXJyZW50
KTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbAorUmVhZGVyOjphZGRFcnJvcihjb25z
dCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgVG9rZW4mIHRva2VuLCBMb2NhdGlvbiBleHRyYSkgewor
ICBFcnJvckluZm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdl
XyA9IG1lc3NhZ2U7CisgIGluZm8uZXh0cmFfID0gZXh0cmE7CisgIGVycm9yc18ucHVzaF9iYWNr
KGluZm8pOworICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVhZGVyOjpyZWNvdmVyRnJvbUVy
cm9yKFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikgeworICBpbnQgZXJyb3JDb3VudCA9IGludChl
cnJvcnNfLnNpemUoKSk7CisgIFRva2VuIHNraXA7CisgIGZvciAoOzspIHsKKyAgICBpZiAoIXJl
YWRUb2tlbihza2lwKSkKKyAgICAgIGVycm9yc18ucmVzaXplKGVycm9yQ291bnQpOyAvLyBkaXNj
YXJkIGVycm9ycyBjYXVzZWQgYnkgcmVjb3ZlcnkKKyAgICBpZiAoc2tpcC50eXBlXyA9PSBza2lw
VW50aWxUb2tlbiB8fCBza2lwLnR5cGVfID09IHRva2VuRW5kT2ZTdHJlYW0pCisgICAgICBicmVh
azsKKyAgfQorICBlcnJvcnNfLnJlc2l6ZShlcnJvckNvdW50KTsKKyAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFJlYWRlcjo6YWRkRXJyb3JBbmRSZWNvdmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBt
ZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiYgdG9rZW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHlwZSBza2lwVW50aWxUb2tlbikg
eworICBhZGRFcnJvcihtZXNzYWdlLCB0b2tlbik7CisgIHJldHVybiByZWNvdmVyRnJvbUVycm9y
KHNraXBVbnRpbFRva2VuKTsKK30KKworVmFsdWUmIFJlYWRlcjo6Y3VycmVudFZhbHVlKCkgeyBy
ZXR1cm4gKihub2Rlc18udG9wKCkpOyB9CisKK1JlYWRlcjo6Q2hhciBSZWFkZXI6OmdldE5leHRD
aGFyKCkgeworICBpZiAoY3VycmVudF8gPT0gZW5kXykKKyAgICByZXR1cm4gMDsKKyAgcmV0dXJu
ICpjdXJyZW50XysrOworfQorCit2b2lkIFJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1u
KExvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQmIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCYg
Y29sdW1uKSBjb25zdCB7CisgIExvY2F0aW9uIGN1cnJlbnQgPSBiZWdpbl87CisgIExvY2F0aW9u
IGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICBsaW5lID0gMDsKKyAgd2hpbGUgKGN1cnJlbnQg
PCBsb2NhdGlvbiAmJiBjdXJyZW50ICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsr
OworICAgIGlmIChjID09ICdccicpIHsKKyAgICAgIGlmICgqY3VycmVudCA9PSAnXG4nKQorICAg
ICAgICArK2N1cnJlbnQ7CisgICAgICBsYXN0TGluZVN0YXJ0ID0gY3VycmVudDsKKyAgICAgICsr
bGluZTsKKyAgICB9IGVsc2UgaWYgKGMgPT0gJ1xuJykgeworICAgICAgbGFzdExpbmVTdGFydCA9
IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfQorICB9CisgIC8vIGNvbHVtbiAmIGxpbmUg
c3RhcnQgYXQgMQorICBjb2x1bW4gPSBpbnQobG9jYXRpb24gLSBsYXN0TGluZVN0YXJ0KSArIDE7
CisgICsrbGluZTsKK30KKworc3RkOjpzdHJpbmcgUmVhZGVyOjpnZXRMb2NhdGlvbkxpbmVBbmRD
b2x1bW4oTG9jYXRpb24gbG9jYXRpb24pIGNvbnN0IHsKKyAgaW50IGxpbmUsIGNvbHVtbjsKKyAg
Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW5lLCBjb2x1bW4pOworICBjaGFy
IGJ1ZmZlclsxOCArIDE2ICsgMTYgKyAxXTsKKyAgc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVm
ZmVyKSwgIkxpbmUgJWQsIENvbHVtbiAlZCIsIGxpbmUsIGNvbHVtbik7CisgIHJldHVybiBidWZm
ZXI7Cit9CisKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0TG9jYXRpb25TbmlwcGV0KExvY2F0aW9u
IGxvY2F0aW9uKSBjb25zdCB7CisgICAgICAgc3RkOjpzdHJpbmcgc25pcHBldCA9ICIiOworICAg
ICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBkb2NTdHJlYW0oZG9jdW1lbnRfKTsKKyAgICAgICBpbnQg
bGluLCBjb2w7CisgICAgICAgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGxvY2F0aW9uLCBsaW4s
IGNvbCk7CisgICAgICAgc3RkOjpzdHJpbmcgbGluZTsKKyAgICAgICBmb3IgKGludCBpPTE7IGk8
bGluKzIgJiYgc3RkOjpnZXRsaW5lKGRvY1N0cmVhbSwgbGluZSk7IGkrKykKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGlmIChsaW4taSA8IDIpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIHNuaXBwZXQgKz0gIiAgIiArIHN0ZDo6dG9fc3RyaW5nKGkpICsgIjogIiArIGxp
bmUgKyAiXG4iOworICAgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgIHJldHVybiBzbmlw
cGV0OworfQorCisvLyBEZXByZWNhdGVkLiBQcmVzZXJ2ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGli
aWxpdHkKK3N0ZDo6c3RyaW5nIFJlYWRlcjo6Z2V0Rm9ybWF0ZWRFcnJvck1lc3NhZ2VzKCkgY29u
c3QgeworICByZXR1cm4gZ2V0Rm9ybWF0dGVkRXJyb3JNZXNzYWdlcygpOworfQorCitzdGQ6OnN0
cmluZyBSZWFkZXI6OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHN0ZDo6
c3RyaW5nIGZvcm1hdHRlZE1lc3NhZ2U7CisgIGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBp
dEVycm9yID0gZXJyb3JzXy5iZWdpbigpOworICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQo
KTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0
RXJyb3I7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAiKiAiICsgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICAgICBmb3Jt
YXR0ZWRNZXNzYWdlICs9IGdldExvY2F0aW9uU25pcHBldChlcnJvci50b2tlbl8uc3RhcnRfKSAr
ICJcbiI7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPSAiICAiICsgZXJyb3IubWVzc2FnZV8gKyAi
XG4iOworICAgIGlmIChlcnJvci5leHRyYV8pCisgICAgICBmb3JtYXR0ZWRNZXNzYWdlICs9Cisg
ICAgICAgICAgIlNlZSAiICsgZ2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKGVycm9yLmV4dHJhXykg
KyAiIGZvciBkZXRhaWwuXG4iOworICB9CisgIHJldHVybiBmb3JtYXR0ZWRNZXNzYWdlOworfQor
CitzdGQ6OnZlY3RvcjxSZWFkZXI6OlN0cnVjdHVyZWRFcnJvcj4gUmVhZGVyOjpnZXRTdHJ1Y3R1
cmVkRXJyb3JzKCkgY29uc3QgeworICBzdGQ6OnZlY3RvcjxSZWFkZXI6OlN0cnVjdHVyZWRFcnJv
cj4gYWxsRXJyb3JzOworICBmb3IgKEVycm9yczo6Y29uc3RfaXRlcmF0b3IgaXRFcnJvciA9IGVy
cm9yc18uYmVnaW4oKTsKKyAgICAgICBpdEVycm9yICE9IGVycm9yc18uZW5kKCk7CisgICAgICAg
KytpdEVycm9yKSB7CisgICAgY29uc3QgRXJyb3JJbmZvJiBlcnJvciA9ICppdEVycm9yOworICAg
IFJlYWRlcjo6U3RydWN0dXJlZEVycm9yIHN0cnVjdHVyZWQ7CisgICAgc3RydWN0dXJlZC5vZmZz
ZXRfc3RhcnQgPSBlcnJvci50b2tlbl8uc3RhcnRfIC0gYmVnaW5fOworICAgIHN0cnVjdHVyZWQu
b2Zmc2V0X2xpbWl0ID0gZXJyb3IudG9rZW5fLmVuZF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJl
ZC5tZXNzYWdlID0gZXJyb3IubWVzc2FnZV87CisgICAgYWxsRXJyb3JzLnB1c2hfYmFjayhzdHJ1
Y3R1cmVkKTsKKyAgfQorICByZXR1cm4gYWxsRXJyb3JzOworfQorCitib29sIFJlYWRlcjo6cHVz
aEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UpIHsK
KyAgc2l6ZV90IGxlbmd0aCA9IGVuZF8gLSBiZWdpbl87CisgIGlmKHZhbHVlLmdldE9mZnNldFN0
YXJ0KCkgPiBsZW5ndGgKKyAgICB8fCB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQor
ICAgIHJldHVybiBmYWxzZTsKKyAgVG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5F
cnJvcjsKKyAgdG9rZW4uc3RhcnRfID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsK
KyAgdG9rZW4uZW5kXyA9IGVuZF8gKyB2YWx1ZS5nZXRPZmZzZXRMaW1pdCgpOworICBFcnJvcklu
Zm8gaW5mbzsKKyAgaW5mby50b2tlbl8gPSB0b2tlbjsKKyAgaW5mby5tZXNzYWdlXyA9IG1lc3Nh
Z2U7CisgIGluZm8uZXh0cmFfID0gMDsKKyAgZXJyb3JzXy5wdXNoX2JhY2soaW5mbyk7CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJlYWRlcjo6cHVzaEVycm9yKGNvbnN0IFZhbHVlJiB2YWx1
ZSwgY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFZhbHVlJiBleHRyYSkgeworICBz
aXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQo
KSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgKKyAgICB8
fCBleHRyYS5nZXRPZmZzZXRMaW1pdCgpID4gbGVuZ3RoKQorICAgIHJldHVybiBmYWxzZTsKKyAg
VG9rZW4gdG9rZW47CisgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uc3RhcnRf
ID0gYmVnaW5fICsgdmFsdWUuZ2V0T2Zmc2V0U3RhcnQoKTsKKyAgdG9rZW4uZW5kXyA9IGJlZ2lu
XyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBpbmZvOworICBpbmZvLnRv
a2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsKKyAgaW5mby5leHRyYV8g
PSBiZWdpbl8gKyBleHRyYS5nZXRPZmZzZXRTdGFydCgpOworICBlcnJvcnNfLnB1c2hfYmFjayhp
bmZvKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgUmVhZGVyOjpnb29kKCkgY29uc3Qgewor
ICByZXR1cm4gIWVycm9yc18uc2l6ZSgpOworfQorCisvLyBleGFjdCBjb3B5IG9mIEZlYXR1cmVz
CitjbGFzcyBPdXJGZWF0dXJlcyB7CitwdWJsaWM6CisgIHN0YXRpYyBPdXJGZWF0dXJlcyBhbGwo
KTsKKyAgYm9vbCBhbGxvd0NvbW1lbnRzXzsKKyAgYm9vbCBzdHJpY3RSb290XzsKKyAgYm9vbCBh
bGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzXzsKKyAgYm9vbCBhbGxvd051bWVyaWNLZXlzXzsK
KyAgYm9vbCBhbGxvd1NpbmdsZVF1b3Rlc187CisgIGJvb2wgZmFpbElmRXh0cmFfOworICBib29s
IHJlamVjdER1cEtleXNfOworICBib29sIGFsbG93U3BlY2lhbEZsb2F0c187CisgIGludCBzdGFj
a0xpbWl0XzsKK307ICAvLyBPdXJGZWF0dXJlcworCisvLyBleGFjdCBjb3B5IG9mIEltcGxlbWVu
dGF0aW9uIG9mIGNsYXNzIEZlYXR1cmVzCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCitPdXJGZWF0dXJlcyBPdXJGZWF0dXJlczo6YWxsKCkgeyByZXR1cm4gT3VyRmVhdHVy
ZXMoKTsgfQorCisvLyBJbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBSZWFkZXIKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIGV4YWN0IGNvcHkgb2YgUmVhZGVyLCByZW5h
bWVkIHRvIE91clJlYWRlcgorY2xhc3MgT3VyUmVhZGVyIHsKK3B1YmxpYzoKKyAgdHlwZWRlZiBj
aGFyIENoYXI7CisgIHR5cGVkZWYgY29uc3QgQ2hhciogTG9jYXRpb247CisgIHN0cnVjdCBTdHJ1
Y3R1cmVkRXJyb3IgeworICAgIHNpemVfdCBvZmZzZXRfc3RhcnQ7CisgICAgc2l6ZV90IG9mZnNl
dF9saW1pdDsKKyAgICBzdGQ6OnN0cmluZyBtZXNzYWdlOworICB9OworCisgIE91clJlYWRlcihP
dXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpOworICBib29sIHBhcnNlKGNvbnN0IGNoYXIqIGJl
Z2luRG9jLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVuZERvYywKKyAgICAgICAgICAgICBW
YWx1ZSYgcm9vdCwKKyAgICAgICAgICAgICBib29sIGNvbGxlY3RDb21tZW50cyA9IHRydWUpOwor
ICBzdGQ6OnN0cmluZyBnZXRGb3JtYXR0ZWRFcnJvck1lc3NhZ2VzKCkgY29uc3Q7CisgIHN0ZDo6
dmVjdG9yPFN0cnVjdHVyZWRFcnJvcj4gZ2V0U3RydWN0dXJlZEVycm9ycygpIGNvbnN0OworICBi
b29sIHB1c2hFcnJvcihjb25zdCBWYWx1ZSYgdmFsdWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNz
YWdlKTsKKyAgYm9vbCBwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0
cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKTsKKyAgYm9vbCBnb29kKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgIE91clJlYWRlcihPdXJSZWFkZXIgY29uc3QmKTsgIC8vIG5vIGltcGwK
KyAgdm9pZCBvcGVyYXRvcj0oT3VyUmVhZGVyIGNvbnN0Jik7ICAvLyBubyBpbXBsCisKKyAgZW51
bSBUb2tlblR5cGUgeworICAgIHRva2VuRW5kT2ZTdHJlYW0gPSAwLAorICAgIHRva2VuT2JqZWN0
QmVnaW4sCisgICAgdG9rZW5PYmplY3RFbmQsCisgICAgdG9rZW5BcnJheUJlZ2luLAorICAgIHRv
a2VuQXJyYXlFbmQsCisgICAgdG9rZW5TdHJpbmcsCisgICAgdG9rZW5OdW1iZXIsCisgICAgdG9r
ZW5UcnVlLAorICAgIHRva2VuRmFsc2UsCisgICAgdG9rZW5OdWxsLAorICAgIHRva2VuTmFOLAor
ICAgIHRva2VuUG9zSW5mLAorICAgIHRva2VuTmVnSW5mLAorICAgIHRva2VuQXJyYXlTZXBhcmF0
b3IsCisgICAgdG9rZW5NZW1iZXJTZXBhcmF0b3IsCisgICAgdG9rZW5Db21tZW50LAorICAgIHRv
a2VuRXJyb3IKKyAgfTsKKworICBjbGFzcyBUb2tlbiB7CisgIHB1YmxpYzoKKyAgICBUb2tlblR5
cGUgdHlwZV87CisgICAgTG9jYXRpb24gc3RhcnRfOworICAgIExvY2F0aW9uIGVuZF87CisgIH07
CisKKyAgY2xhc3MgRXJyb3JJbmZvIHsKKyAgcHVibGljOgorICAgIFRva2VuIHRva2VuXzsKKyAg
ICBzdGQ6OnN0cmluZyBtZXNzYWdlXzsKKyAgICBMb2NhdGlvbiBleHRyYV87CisgIH07CisKKyAg
dHlwZWRlZiBzdGQ6OmRlcXVlPEVycm9ySW5mbz4gRXJyb3JzOworCisgIGJvb2wgcmVhZFRva2Vu
KFRva2VuJiB0b2tlbik7CisgIHZvaWQgc2tpcFNwYWNlcygpOworICBib29sIG1hdGNoKExvY2F0
aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoKTsKKyAgYm9vbCByZWFkQ29tbWVudCgpOwor
ICBib29sIHJlYWRDU3R5bGVDb21tZW50KCk7CisgIGJvb2wgcmVhZENwcFN0eWxlQ29tbWVudCgp
OworICBib29sIHJlYWRTdHJpbmcoKTsKKyAgYm9vbCByZWFkU3RyaW5nU2luZ2xlUXVvdGUoKTsK
KyAgYm9vbCByZWFkTnVtYmVyKGJvb2wgY2hlY2tJbmYpOworICBib29sIHJlYWRWYWx1ZSgpOwor
ICBib29sIHJlYWRPYmplY3QoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCByZWFkQXJyYXkoVG9rZW4m
IHRva2VuKTsKKyAgYm9vbCBkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKTsKKyAgYm9vbCBkZWNv
ZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCk7CisgIGJvb2wgZGVjb2RlU3Ry
aW5nKFRva2VuJiB0b2tlbik7CisgIGJvb2wgZGVjb2RlU3RyaW5nKFRva2VuJiB0b2tlbiwgc3Rk
OjpzdHJpbmcmIGRlY29kZWQpOworICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4pOwor
ICBib29sIGRlY29kZURvdWJsZShUb2tlbiYgdG9rZW4sIFZhbHVlJiBkZWNvZGVkKTsKKyAgYm9v
bCBkZWNvZGVVbmljb2RlQ29kZVBvaW50KFRva2VuJiB0b2tlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTG9jYXRpb24gZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50JiB1bmljb2RlKTsKKyAgYm9vbCBkZWNvZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UoVG9r
ZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiYg
Y3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24gZW5k
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQmIHVuaWNv
ZGUpOworICBib29sIGFkZEVycm9yKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLCBUb2tlbiYg
dG9rZW4sIExvY2F0aW9uIGV4dHJhID0gMCk7CisgIGJvb2wgcmVjb3ZlckZyb21FcnJvcihUb2tl
blR5cGUgc2tpcFVudGlsVG9rZW4pOworICBib29sIGFkZEVycm9yQW5kUmVjb3Zlcihjb25zdCBz
dGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4mIHRv
a2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4p
OworICB2b2lkIHNraXBVbnRpbFNwYWNlKCk7CisgIFZhbHVlJiBjdXJyZW50VmFsdWUoKTsKKyAg
Q2hhciBnZXROZXh0Q2hhcigpOworICB2b2lkCisgIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihM
b2NhdGlvbiBsb2NhdGlvbiwgaW50JiBsaW5lLCBpbnQmIGNvbHVtbikgY29uc3Q7CisgIHN0ZDo6
c3RyaW5nIGdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbikgY29uc3Q7
CisgIHZvaWQgYWRkQ29tbWVudChMb2NhdGlvbiBiZWdpbiwgTG9jYXRpb24gZW5kLCBDb21tZW50
UGxhY2VtZW50IHBsYWNlbWVudCk7CisgIHZvaWQgc2tpcENvbW1lbnRUb2tlbnMoVG9rZW4mIHRv
a2VuKTsKKworICB0eXBlZGVmIHN0ZDo6c3RhY2s8VmFsdWUqPiBOb2RlczsKKyAgTm9kZXMgbm9k
ZXNfOworICBFcnJvcnMgZXJyb3JzXzsKKyAgc3RkOjpzdHJpbmcgZG9jdW1lbnRfOworICBMb2Nh
dGlvbiBiZWdpbl87CisgIExvY2F0aW9uIGVuZF87CisgIExvY2F0aW9uIGN1cnJlbnRfOworICBM
b2NhdGlvbiBsYXN0VmFsdWVFbmRfOworICBWYWx1ZSogbGFzdFZhbHVlXzsKKyAgc3RkOjpzdHJp
bmcgY29tbWVudHNCZWZvcmVfOworICBpbnQgc3RhY2tEZXB0aF87CisKKyAgT3VyRmVhdHVyZXMg
Y29uc3QgZmVhdHVyZXNfOworICBib29sIGNvbGxlY3RDb21tZW50c187Cit9OyAgLy8gT3VyUmVh
ZGVyCisKKy8vIGNvbXBsZXRlIGNvcHkgb2YgUmVhZCBpbXBsLCBmb3IgT3VyUmVhZGVyCisKK091
clJlYWRlcjo6T3VyUmVhZGVyKE91ckZlYXR1cmVzIGNvbnN0JiBmZWF0dXJlcykKKyAgICA6IGVy
cm9yc18oKSwgZG9jdW1lbnRfKCksIGJlZ2luXygpLCBlbmRfKCksIGN1cnJlbnRfKCksIGxhc3RW
YWx1ZUVuZF8oKSwKKyAgICAgIGxhc3RWYWx1ZV8oKSwgY29tbWVudHNCZWZvcmVfKCksCisgICAg
ICBzdGFja0RlcHRoXygwKSwKKyAgICAgIGZlYXR1cmVzXyhmZWF0dXJlcyksIGNvbGxlY3RDb21t
ZW50c18oKSB7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwYXJzZShjb25zdCBjaGFyKiBiZWdpbkRv
YywKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbmREb2MsCisgICAgICAgICAgICAg
ICAgICAgVmFsdWUmIHJvb3QsCisgICAgICAgICAgICAgICAgICAgYm9vbCBjb2xsZWN0Q29tbWVu
dHMpIHsKKyAgaWYgKCFmZWF0dXJlc18uYWxsb3dDb21tZW50c18pIHsKKyAgICBjb2xsZWN0Q29t
bWVudHMgPSBmYWxzZTsKKyAgfQorCisgIGJlZ2luXyA9IGJlZ2luRG9jOworICBlbmRfID0gZW5k
RG9jOworICBjb2xsZWN0Q29tbWVudHNfID0gY29sbGVjdENvbW1lbnRzOworICBjdXJyZW50XyA9
IGJlZ2luXzsKKyAgbGFzdFZhbHVlRW5kXyA9IDA7CisgIGxhc3RWYWx1ZV8gPSAwOworICBjb21t
ZW50c0JlZm9yZV8gPSAiIjsKKyAgZXJyb3JzXy5jbGVhcigpOworICB3aGlsZSAoIW5vZGVzXy5l
bXB0eSgpKQorICAgIG5vZGVzXy5wb3AoKTsKKyAgbm9kZXNfLnB1c2goJnJvb3QpOworCisgIHN0
YWNrRGVwdGhfID0gMDsKKyAgYm9vbCBzdWNjZXNzZnVsID0gcmVhZFZhbHVlKCk7CisgIFRva2Vu
IHRva2VuOworICBza2lwQ29tbWVudFRva2Vucyh0b2tlbik7CisgIGlmIChmZWF0dXJlc18uZmFp
bElmRXh0cmFfKSB7CisgICAgaWYgKHRva2VuLnR5cGVfICE9IHRva2VuRXJyb3IgJiYgdG9rZW4u
dHlwZV8gIT0gdG9rZW5FbmRPZlN0cmVhbSkgeworICAgICAgYWRkRXJyb3IoIkV4dHJhIG5vbi13
aGl0ZXNwYWNlIGFmdGVyIEpTT04gdmFsdWUuIiwgdG9rZW4pOworICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgfQorICBpZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVf
LmVtcHR5KCkpCisgICAgcm9vdC5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEFm
dGVyKTsKKyAgaWYgKGZlYXR1cmVzXy5zdHJpY3RSb290XykgeworICAgIGlmICghcm9vdC5pc0Fy
cmF5KCkgJiYgIXJvb3QuaXNPYmplY3QoKSkgeworICAgICAgLy8gU2V0IGVycm9yIGxvY2F0aW9u
IHRvIHN0YXJ0IG9mIGRvYywgaWRlYWxseSBzaG91bGQgYmUgZmlyc3QgdG9rZW4gZm91bmQKKyAg
ICAgIC8vIGluIGRvYworICAgICAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICAgICAgdG9r
ZW4uc3RhcnRfID0gYmVnaW5Eb2M7CisgICAgICB0b2tlbi5lbmRfID0gZW5kRG9jOworICAgICAg
YWRkRXJyb3IoCisgICAgICAgICAgIkEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhl
ciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuIiwKKyAgICAgICAgICB0b2tlbik7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBzdWNjZXNzZnVsOworfQorCiti
b29sIE91clJlYWRlcjo6cmVhZFZhbHVlKCkgeworICBpZiAoc3RhY2tEZXB0aF8gPj0gZmVhdHVy
ZXNfLnN0YWNrTGltaXRfKSB0aHJvd1J1bnRpbWVFcnJvcigiRXhjZWVkZWQgc3RhY2tMaW1pdCBp
biByZWFkVmFsdWUoKS4iKTsKKyAgKytzdGFja0RlcHRoXzsKKyAgVG9rZW4gdG9rZW47CisgIHNr
aXBDb21tZW50VG9rZW5zKHRva2VuKTsKKyAgYm9vbCBzdWNjZXNzZnVsID0gdHJ1ZTsKKworICBp
ZiAoY29sbGVjdENvbW1lbnRzXyAmJiAhY29tbWVudHNCZWZvcmVfLmVtcHR5KCkpIHsKKyAgICBj
dXJyZW50VmFsdWUoKS5zZXRDb21tZW50KGNvbW1lbnRzQmVmb3JlXywgY29tbWVudEJlZm9yZSk7
CisgICAgY29tbWVudHNCZWZvcmVfID0gIiI7CisgIH0KKworICBzd2l0Y2ggKHRva2VuLnR5cGVf
KSB7CisgIGNhc2UgdG9rZW5PYmplY3RCZWdpbjoKKyAgICBzdWNjZXNzZnVsID0gcmVhZE9iamVj
dCh0b2tlbik7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBi
ZWdpbl8pOworICAgIGJyZWFrOworICBjYXNlIHRva2VuQXJyYXlCZWdpbjoKKyAgICBzdWNjZXNz
ZnVsID0gcmVhZEFycmF5KHRva2VuKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1p
dChjdXJyZW50XyAtIGJlZ2luXyk7CisgICAgYnJlYWs7CisgIGNhc2UgdG9rZW5OdW1iZXI6Cisg
ICAgc3VjY2Vzc2Z1bCA9IGRlY29kZU51bWJlcih0b2tlbik7CisgICAgYnJlYWs7CisgIGNhc2Ug
dG9rZW5TdHJpbmc6CisgICAgc3VjY2Vzc2Z1bCA9IGRlY29kZVN0cmluZyh0b2tlbik7CisgICAg
YnJlYWs7CisgIGNhc2UgdG9rZW5UcnVlOgorICAgIHsKKyAgICBWYWx1ZSB2KHRydWUpOworICAg
IGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0
T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBj
YXNlIHRva2VuRmFsc2U6CisgICAgeworICAgIFZhbHVlIHYoZmFsc2UpOworICAgIGN1cnJlbnRW
YWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0
KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGlt
aXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2Vu
TnVsbDoKKyAgICB7CisgICAgVmFsdWUgdjsKKyAgICBjdXJyZW50VmFsdWUoKS5zd2FwUGF5bG9h
ZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8gLSBi
ZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2VuLmVuZF8gLSBi
ZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2FzZSB0b2tlbk5hTjoKKyAgICB7CisgICAg
VmFsdWUgdihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICBj
dXJyZW50VmFsdWUoKS5zd2FwUGF5bG9hZCh2KTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZz
ZXRTdGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9m
ZnNldExpbWl0KHRva2VuLmVuZF8gLSBiZWdpbl8pOworICAgIH0KKyAgICBicmVhazsKKyAgY2Fz
ZSB0b2tlblBvc0luZjoKKyAgICB7CisgICAgVmFsdWUgdihzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OmluZmluaXR5KCkpOworICAgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOwor
ICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7
CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7
CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRva2VuTmVnSW5mOgorICAgIHsKKyAgICBWYWx1
ZSB2KC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpOworICAgIGN1cnJl
bnRWYWx1ZSgpLnN3YXBQYXlsb2FkKHYpOworICAgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0
YXJ0KHRva2VuLnN0YXJ0XyAtIGJlZ2luXyk7CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0
TGltaXQodG9rZW4uZW5kXyAtIGJlZ2luXyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIHRv
a2VuQXJyYXlTZXBhcmF0b3I6CisgIGNhc2UgdG9rZW5PYmplY3RFbmQ6CisgIGNhc2UgdG9rZW5B
cnJheUVuZDoKKyAgICBpZiAoZmVhdHVyZXNfLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNf
KSB7CisgICAgICAvLyAiVW4tcmVhZCIgdGhlIGN1cnJlbnQgdG9rZW4gYW5kIG1hcmsgdGhlIGN1
cnJlbnQgdmFsdWUgYXMgYSBudWxsCisgICAgICAvLyB0b2tlbi4KKyAgICAgIGN1cnJlbnRfLS07
CisgICAgICBWYWx1ZSB2OworICAgICAgY3VycmVudFZhbHVlKCkuc3dhcFBheWxvYWQodik7Cisg
ICAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydChjdXJyZW50XyAtIGJlZ2luXyAtIDEp
OworICAgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0TGltaXQoY3VycmVudF8gLSBiZWdpbl8p
OworICAgICAgYnJlYWs7CisgICAgfSAvLyBlbHNlLCBmYWxsIHRocm91Z2ggLi4uCisgIGRlZmF1
bHQ6CisgICAgY3VycmVudFZhbHVlKCkuc2V0T2Zmc2V0U3RhcnQodG9rZW4uc3RhcnRfIC0gYmVn
aW5fKTsKKyAgICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0gYmVn
aW5fKTsKKyAgICByZXR1cm4gYWRkRXJyb3IoIlN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBv
ciBhcnJheSBleHBlY3RlZC4iLCB0b2tlbik7CisgIH0KKworICBpZiAoY29sbGVjdENvbW1lbnRz
XykgeworICAgIGxhc3RWYWx1ZUVuZF8gPSBjdXJyZW50XzsKKyAgICBsYXN0VmFsdWVfID0gJmN1
cnJlbnRWYWx1ZSgpOworICB9CisKKyAgLS1zdGFja0RlcHRoXzsKKyAgcmV0dXJuIHN1Y2Nlc3Nm
dWw7Cit9CisKK3ZvaWQgT3VyUmVhZGVyOjpza2lwQ29tbWVudFRva2VucyhUb2tlbiYgdG9rZW4p
IHsKKyAgaWYgKGZlYXR1cmVzXy5hbGxvd0NvbW1lbnRzXykgeworICAgIGRvIHsKKyAgICAgIHJl
YWRUb2tlbih0b2tlbik7CisgICAgfSB3aGlsZSAodG9rZW4udHlwZV8gPT0gdG9rZW5Db21tZW50
KTsKKyAgfSBlbHNlIHsKKyAgICByZWFkVG9rZW4odG9rZW4pOworICB9Cit9CisKK2Jvb2wgT3Vy
UmVhZGVyOjpyZWFkVG9rZW4oVG9rZW4mIHRva2VuKSB7CisgIHNraXBTcGFjZXMoKTsKKyAgdG9r
ZW4uc3RhcnRfID0gY3VycmVudF87CisgIENoYXIgYyA9IGdldE5leHRDaGFyKCk7CisgIGJvb2wg
b2sgPSB0cnVlOworICBzd2l0Y2ggKGMpIHsKKyAgY2FzZSAneyc6CisgICAgdG9rZW4udHlwZV8g
PSB0b2tlbk9iamVjdEJlZ2luOworICAgIGJyZWFrOworICBjYXNlICd9JzoKKyAgICB0b2tlbi50
eXBlXyA9IHRva2VuT2JqZWN0RW5kOworICAgIGJyZWFrOworICBjYXNlICdbJzoKKyAgICB0b2tl
bi50eXBlXyA9IHRva2VuQXJyYXlCZWdpbjsKKyAgICBicmVhazsKKyAgY2FzZSAnXSc6CisgICAg
dG9rZW4udHlwZV8gPSB0b2tlbkFycmF5RW5kOworICAgIGJyZWFrOworICBjYXNlICciJzoKKyAg
ICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmluZygpOworICAg
IGJyZWFrOworICBjYXNlICdcJyc6CisgICAgaWYgKGZlYXR1cmVzXy5hbGxvd1NpbmdsZVF1b3Rl
c18pIHsKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuU3RyaW5nOworICAgIG9rID0gcmVhZFN0cmlu
Z1NpbmdsZVF1b3RlKCk7CisgICAgYnJlYWs7CisgICAgfSAvLyBlbHNlIGNvbnRpbnVlCisgIGNh
c2UgJy8nOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5Db21tZW50OworICAgIG9rID0gcmVhZENv
bW1lbnQoKTsKKyAgICBicmVhazsKKyAgY2FzZSAnMCc6CisgIGNhc2UgJzEnOgorICBjYXNlICcy
JzoKKyAgY2FzZSAnMyc6CisgIGNhc2UgJzQnOgorICBjYXNlICc1JzoKKyAgY2FzZSAnNic6Cisg
IGNhc2UgJzcnOgorICBjYXNlICc4JzoKKyAgY2FzZSAnOSc6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbk51bWJlcjsKKyAgICByZWFkTnVtYmVyKGZhbHNlKTsKKyAgICBicmVhazsKKyAgY2FzZSAn
LSc6CisgICAgaWYgKHJlYWROdW1iZXIodHJ1ZSkpIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9r
ZW5OdW1iZXI7CisgICAgfSBlbHNlIHsKKyAgICAgIHRva2VuLnR5cGVfID0gdG9rZW5OZWdJbmY7
CisgICAgICBvayA9IGZlYXR1cmVzXy5hbGxvd1NwZWNpYWxGbG9hdHNfICYmIG1hdGNoKCJuZmlu
aXR5IiwgNyk7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICd0JzoKKyAgICB0b2tlbi50eXBl
XyA9IHRva2VuVHJ1ZTsKKyAgICBvayA9IG1hdGNoKCJydWUiLCAzKTsKKyAgICBicmVhazsKKyAg
Y2FzZSAnZic6CisgICAgdG9rZW4udHlwZV8gPSB0b2tlbkZhbHNlOworICAgIG9rID0gbWF0Y2go
ImFsc2UiLCA0KTsKKyAgICBicmVhazsKKyAgY2FzZSAnbic6CisgICAgdG9rZW4udHlwZV8gPSB0
b2tlbk51bGw7CisgICAgb2sgPSBtYXRjaCgidWxsIiwgMyk7CisgICAgYnJlYWs7CisgIGNhc2Ug
J04nOgorICAgIGlmIChmZWF0dXJlc18uYWxsb3dTcGVjaWFsRmxvYXRzXykgeworICAgICAgdG9r
ZW4udHlwZV8gPSB0b2tlbk5hTjsKKyAgICAgIG9rID0gbWF0Y2goImFOIiwgMik7CisgICAgfSBl
bHNlIHsKKyAgICAgIG9rID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICdJJzoK
KyAgICBpZiAoZmVhdHVyZXNfLmFsbG93U3BlY2lhbEZsb2F0c18pIHsKKyAgICAgIHRva2VuLnR5
cGVfID0gdG9rZW5Qb3NJbmY7CisgICAgICBvayA9IG1hdGNoKCJuZmluaXR5IiwgNyk7CisgICAg
fSBlbHNlIHsKKyAgICAgIG9rID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlICcs
JzoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuQXJyYXlTZXBhcmF0b3I7CisgICAgYnJlYWs7Cisg
IGNhc2UgJzonOgorICAgIHRva2VuLnR5cGVfID0gdG9rZW5NZW1iZXJTZXBhcmF0b3I7CisgICAg
YnJlYWs7CisgIGNhc2UgMDoKKyAgICB0b2tlbi50eXBlXyA9IHRva2VuRW5kT2ZTdHJlYW07Cisg
ICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgb2sgPSBmYWxzZTsKKyAgICBicmVhazsKKyAgfQor
ICBpZiAoIW9rKQorICAgIHRva2VuLnR5cGVfID0gdG9rZW5FcnJvcjsKKyAgdG9rZW4uZW5kXyA9
IGN1cnJlbnRfOworICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBPdXJSZWFkZXI6OnNraXBTcGFj
ZXMoKSB7CisgIHdoaWxlIChjdXJyZW50XyAhPSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJl
bnRfOworICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInIHx8IGMgPT0g
J1xuJykKKyAgICAgICsrY3VycmVudF87CisgICAgZWxzZQorICAgICAgYnJlYWs7CisgIH0KK30K
KworYm9vbCBPdXJSZWFkZXI6Om1hdGNoKExvY2F0aW9uIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVu
Z3RoKSB7CisgIGlmIChlbmRfIC0gY3VycmVudF8gPCBwYXR0ZXJuTGVuZ3RoKQorICAgIHJldHVy
biBmYWxzZTsKKyAgaW50IGluZGV4ID0gcGF0dGVybkxlbmd0aDsKKyAgd2hpbGUgKGluZGV4LS0p
CisgICAgaWYgKGN1cnJlbnRfW2luZGV4XSAhPSBwYXR0ZXJuW2luZGV4XSkKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgY3VycmVudF8gKz0gcGF0dGVybkxlbmd0aDsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkQ29tbWVudCgpIHsKKyAgTG9jYXRpb24gY29tbWVudEJl
Z2luID0gY3VycmVudF8gLSAxOworICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICBib29sIHN1
Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgaWYgKGMgPT0gJyonKQorICAgIHN1Y2Nlc3NmdWwgPSByZWFk
Q1N0eWxlQ29tbWVudCgpOworICBlbHNlIGlmIChjID09ICcvJykKKyAgICBzdWNjZXNzZnVsID0g
cmVhZENwcFN0eWxlQ29tbWVudCgpOworICBpZiAoIXN1Y2Nlc3NmdWwpCisgICAgcmV0dXJuIGZh
bHNlOworCisgIGlmIChjb2xsZWN0Q29tbWVudHNfKSB7CisgICAgQ29tbWVudFBsYWNlbWVudCBw
bGFjZW1lbnQgPSBjb21tZW50QmVmb3JlOworICAgIGlmIChsYXN0VmFsdWVFbmRfICYmICFjb250
YWluc05ld0xpbmUobGFzdFZhbHVlRW5kXywgY29tbWVudEJlZ2luKSkgeworICAgICAgaWYgKGMg
IT0gJyonIHx8ICFjb250YWluc05ld0xpbmUoY29tbWVudEJlZ2luLCBjdXJyZW50XykpCisgICAg
ICAgIHBsYWNlbWVudCA9IGNvbW1lbnRBZnRlck9uU2FtZUxpbmU7CisgICAgfQorCisgICAgYWRk
Q29tbWVudChjb21tZW50QmVnaW4sIGN1cnJlbnRfLCBwbGFjZW1lbnQpOworICB9CisgIHJldHVy
biB0cnVlOworfQorCit2b2lkCitPdXJSZWFkZXI6OmFkZENvbW1lbnQoTG9jYXRpb24gYmVnaW4s
IExvY2F0aW9uIGVuZCwgQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIHsKKyAgYXNzZXJ0KGNv
bGxlY3RDb21tZW50c18pOworICBjb25zdCBzdGQ6OnN0cmluZyYgbm9ybWFsaXplZCA9IG5vcm1h
bGl6ZUVPTChiZWdpbiwgZW5kKTsKKyAgaWYgKHBsYWNlbWVudCA9PSBjb21tZW50QWZ0ZXJPblNh
bWVMaW5lKSB7CisgICAgYXNzZXJ0KGxhc3RWYWx1ZV8gIT0gMCk7CisgICAgbGFzdFZhbHVlXy0+
c2V0Q29tbWVudChub3JtYWxpemVkLCBwbGFjZW1lbnQpOworICB9IGVsc2UgeworICAgIGNvbW1l
bnRzQmVmb3JlXyArPSBub3JtYWxpemVkOworICB9Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFk
Q1N0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJlbnRfICE9IGVuZF8pIHsKKyAgICBDaGFy
IGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICcqJyAmJiAqY3VycmVudF8gPT0gJy8n
KQorICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGdldE5leHRDaGFyKCkgPT0gJy8nOworfQor
Citib29sIE91clJlYWRlcjo6cmVhZENwcFN0eWxlQ29tbWVudCgpIHsKKyAgd2hpbGUgKGN1cnJl
bnRfICE9IGVuZF8pIHsKKyAgICBDaGFyIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09
ICdcbicpCisgICAgICBicmVhazsKKyAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICAvLyBDb25z
dW1lIERPUyBFT0wuIEl0IHdpbGwgYmUgbm9ybWFsaXplZCBpbiBhZGRDb21tZW50LgorICAgICAg
aWYgKGN1cnJlbnRfICE9IGVuZF8gJiYgKmN1cnJlbnRfID09ICdcbicpCisgICAgICAgIGdldE5l
eHRDaGFyKCk7CisgICAgICAvLyBCcmVhayBvbiBNb2MgT1MgOSBFT0wuCisgICAgICBicmVhazsK
KyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpyZWFkTnVt
YmVyKGJvb2wgY2hlY2tJbmYpIHsKKyAgY29uc3QgY2hhciAqcCA9IGN1cnJlbnRfOworICBpZiAo
Y2hlY2tJbmYgJiYgcCAhPSBlbmRfICYmICpwID09ICdJJykgeworICAgIGN1cnJlbnRfID0gKytw
OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBjaGFyIGMgPSAnMCc7IC8vIHN0b3BnYXAgZm9y
IGFscmVhZHkgY29uc3VtZWQgY2hhcmFjdGVyCisgIC8vIGludGVncmFsIHBhcnQKKyAgd2hpbGUg
KGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgIGMgPSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAq
cCsrIDogMDsKKyAgLy8gZnJhY3Rpb25hbCBwYXJ0CisgIGlmIChjID09ICcuJykgeworICAgIGMg
PSAoY3VycmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgICB3aGlsZSAoYyA+PSAnMCcg
JiYgYyA8PSAnOScpCisgICAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7
CisgIH0KKyAgLy8gZXhwb25lbnRpYWwgcGFydAorICBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScp
IHsKKyAgICBjID0gKGN1cnJlbnRfID0gcCkgPCBlbmRfID8gKnArKyA6IDA7CisgICAgaWYgKGMg
PT0gJysnIHx8IGMgPT0gJy0nKQorICAgICAgYyA9IChjdXJyZW50XyA9IHApIDwgZW5kXyA/ICpw
KysgOiAwOworICAgIHdoaWxlIChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAgICAgIGMgPSAoY3Vy
cmVudF8gPSBwKSA8IGVuZF8gPyAqcCsrIDogMDsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KK2Jv
b2wgT3VyUmVhZGVyOjpyZWFkU3RyaW5nKCkgeworICBDaGFyIGMgPSAwOworICB3aGlsZSAoY3Vy
cmVudF8gIT0gZW5kXykgeworICAgIGMgPSBnZXROZXh0Q2hhcigpOworICAgIGlmIChjID09ICdc
XCcpCisgICAgICBnZXROZXh0Q2hhcigpOworICAgIGVsc2UgaWYgKGMgPT0gJyInKQorICAgICAg
YnJlYWs7CisgIH0KKyAgcmV0dXJuIGMgPT0gJyInOworfQorCisKK2Jvb2wgT3VyUmVhZGVyOjpy
ZWFkU3RyaW5nU2luZ2xlUXVvdGUoKSB7CisgIENoYXIgYyA9IDA7CisgIHdoaWxlIChjdXJyZW50
XyAhPSBlbmRfKSB7CisgICAgYyA9IGdldE5leHRDaGFyKCk7CisgICAgaWYgKGMgPT0gJ1xcJykK
KyAgICAgIGdldE5leHRDaGFyKCk7CisgICAgZWxzZSBpZiAoYyA9PSAnXCcnKQorICAgICAgYnJl
YWs7CisgIH0KKyAgcmV0dXJuIGMgPT0gJ1wnJzsKK30KKworYm9vbCBPdXJSZWFkZXI6OnJlYWRP
YmplY3QoVG9rZW4mIHRva2VuU3RhcnQpIHsKKyAgVG9rZW4gdG9rZW5OYW1lOworICBzdGQ6OnN0
cmluZyBuYW1lOworICBWYWx1ZSBpbml0KG9iamVjdFZhbHVlKTsKKyAgY3VycmVudFZhbHVlKCku
c3dhcFBheWxvYWQoaW5pdCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2Vu
U3RhcnQuc3RhcnRfIC0gYmVnaW5fKTsKKyAgd2hpbGUgKHJlYWRUb2tlbih0b2tlbk5hbWUpKSB7
CisgICAgYm9vbCBpbml0aWFsVG9rZW5PayA9IHRydWU7CisgICAgd2hpbGUgKHRva2VuTmFtZS50
eXBlXyA9PSB0b2tlbkNvbW1lbnQgJiYgaW5pdGlhbFRva2VuT2spCisgICAgICBpbml0aWFsVG9r
ZW5PayA9IHJlYWRUb2tlbih0b2tlbk5hbWUpOworICAgIGlmICghaW5pdGlhbFRva2VuT2spCisg
ICAgICBicmVhazsKKyAgICBpZiAodG9rZW5OYW1lLnR5cGVfID09IHRva2VuT2JqZWN0RW5kICYm
IG5hbWUuZW1wdHkoKSkgLy8gZW1wdHkgb2JqZWN0CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBu
YW1lID0gIiI7CisgICAgaWYgKHRva2VuTmFtZS50eXBlXyA9PSB0b2tlblN0cmluZykgeworICAg
ICAgaWYgKCFkZWNvZGVTdHJpbmcodG9rZW5OYW1lLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIHJl
Y292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworICAgIH0gZWxzZSBpZiAodG9rZW5OYW1l
LnR5cGVfID09IHRva2VuTnVtYmVyICYmIGZlYXR1cmVzXy5hbGxvd051bWVyaWNLZXlzXykgewor
ICAgICAgVmFsdWUgbnVtYmVyTmFtZTsKKyAgICAgIGlmICghZGVjb2RlTnVtYmVyKHRva2VuTmFt
ZSwgbnVtYmVyTmFtZSkpCisgICAgICAgIHJldHVybiByZWNvdmVyRnJvbUVycm9yKHRva2VuT2Jq
ZWN0RW5kKTsKKyAgICAgIG5hbWUgPSBudW1iZXJOYW1lLmFzU3RyaW5nKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAgIFRva2VuIGNvbG9uOworICAgIGlmICghcmVh
ZFRva2VuKGNvbG9uKSB8fCBjb2xvbi50eXBlXyAhPSB0b2tlbk1lbWJlclNlcGFyYXRvcikgewor
ICAgICAgcmV0dXJuIGFkZEVycm9yQW5kUmVjb3ZlcigKKyAgICAgICAgICAiTWlzc2luZyAnOicg
YWZ0ZXIgb2JqZWN0IG1lbWJlciBuYW1lIiwgY29sb24sIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9
CisgICAgaWYgKG5hbWUubGVuZ3RoKCkgPj0gKDFVPDwzMCkpIHRocm93UnVudGltZUVycm9yKCJr
ZXlsZW5ndGggPj0gMl4zMCIpOworICAgIGlmIChmZWF0dXJlc18ucmVqZWN0RHVwS2V5c18gJiYg
Y3VycmVudFZhbHVlKCkuaXNNZW1iZXIobmFtZSkpIHsKKyAgICAgIHN0ZDo6c3RyaW5nIG1zZyA9
ICJEdXBsaWNhdGUga2V5OiAnIiArIG5hbWUgKyAiJyI7CisgICAgICByZXR1cm4gYWRkRXJyb3JB
bmRSZWNvdmVyKAorICAgICAgICAgIG1zZywgdG9rZW5OYW1lLCB0b2tlbk9iamVjdEVuZCk7Cisg
ICAgfQorICAgIFZhbHVlJiB2YWx1ZSA9IGN1cnJlbnRWYWx1ZSgpW25hbWVdOworICAgIG5vZGVz
Xy5wdXNoKCZ2YWx1ZSk7CisgICAgYm9vbCBvayA9IHJlYWRWYWx1ZSgpOworICAgIG5vZGVzXy5w
b3AoKTsKKyAgICBpZiAoIW9rKSAvLyBlcnJvciBhbHJlYWR5IHNldAorICAgICAgcmV0dXJuIHJl
Y292ZXJGcm9tRXJyb3IodG9rZW5PYmplY3RFbmQpOworCisgICAgVG9rZW4gY29tbWE7CisgICAg
aWYgKCFyZWFkVG9rZW4oY29tbWEpIHx8CisgICAgICAgIChjb21tYS50eXBlXyAhPSB0b2tlbk9i
amVjdEVuZCAmJiBjb21tYS50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJhdG9yICYmCisgICAgICAg
ICBjb21tYS50eXBlXyAhPSB0b2tlbkNvbW1lbnQpKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JB
bmRSZWNvdmVyKAorICAgICAgICAgICJNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xh
cmF0aW9uIiwgY29tbWEsIHRva2VuT2JqZWN0RW5kKTsKKyAgICB9CisgICAgYm9vbCBmaW5hbGl6
ZVRva2VuT2sgPSB0cnVlOworICAgIHdoaWxlIChjb21tYS50eXBlXyA9PSB0b2tlbkNvbW1lbnQg
JiYgZmluYWxpemVUb2tlbk9rKQorICAgICAgZmluYWxpemVUb2tlbk9rID0gcmVhZFRva2VuKGNv
bW1hKTsKKyAgICBpZiAoY29tbWEudHlwZV8gPT0gdG9rZW5PYmplY3RFbmQpCisgICAgICByZXR1
cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgIk1pc3Np
bmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZSIsIHRva2VuTmFtZSwgdG9rZW5PYmplY3RFbmQp
OworfQorCitib29sIE91clJlYWRlcjo6cmVhZEFycmF5KFRva2VuJiB0b2tlblN0YXJ0KSB7Cisg
IFZhbHVlIGluaXQoYXJyYXlWYWx1ZSk7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2FkKGlu
aXQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlblN0YXJ0LnN0YXJ0XyAt
IGJlZ2luXyk7CisgIHNraXBTcGFjZXMoKTsKKyAgaWYgKCpjdXJyZW50XyA9PSAnXScpIC8vIGVt
cHR5IGFycmF5CisgIHsKKyAgICBUb2tlbiBlbmRBcnJheTsKKyAgICByZWFkVG9rZW4oZW5kQXJy
YXkpOworICAgIHJldHVybiB0cnVlOworICB9CisgIGludCBpbmRleCA9IDA7CisgIGZvciAoOzsp
IHsKKyAgICBWYWx1ZSYgdmFsdWUgPSBjdXJyZW50VmFsdWUoKVtpbmRleCsrXTsKKyAgICBub2Rl
c18ucHVzaCgmdmFsdWUpOworICAgIGJvb2wgb2sgPSByZWFkVmFsdWUoKTsKKyAgICBub2Rlc18u
cG9wKCk7CisgICAgaWYgKCFvaykgLy8gZXJyb3IgYWxyZWFkeSBzZXQKKyAgICAgIHJldHVybiBy
ZWNvdmVyRnJvbUVycm9yKHRva2VuQXJyYXlFbmQpOworCisgICAgVG9rZW4gdG9rZW47CisgICAg
Ly8gQWNjZXB0IENvbW1lbnQgYWZ0ZXIgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KKyAgICBvayA9
IHJlYWRUb2tlbih0b2tlbik7CisgICAgd2hpbGUgKHRva2VuLnR5cGVfID09IHRva2VuQ29tbWVu
dCAmJiBvaykgeworICAgICAgb2sgPSByZWFkVG9rZW4odG9rZW4pOworICAgIH0KKyAgICBib29s
IGJhZFRva2VuVHlwZSA9CisgICAgICAgICh0b2tlbi50eXBlXyAhPSB0b2tlbkFycmF5U2VwYXJh
dG9yICYmIHRva2VuLnR5cGVfICE9IHRva2VuQXJyYXlFbmQpOworICAgIGlmICghb2sgfHwgYmFk
VG9rZW5UeXBlKSB7CisgICAgICByZXR1cm4gYWRkRXJyb3JBbmRSZWNvdmVyKAorICAgICAgICAg
ICJNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRpb24iLCB0b2tlbiwgdG9rZW5B
cnJheUVuZCk7CisgICAgfQorICAgIGlmICh0b2tlbi50eXBlXyA9PSB0b2tlbkFycmF5RW5kKQor
ICAgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpk
ZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVj
b2RlTnVtYmVyKHRva2VuLCBkZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRW
YWx1ZSgpLnN3YXBQYXlsb2FkKGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRT
dGFydCh0b2tlbi5zdGFydF8gLSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRM
aW1pdCh0b2tlbi5lbmRfIC0gYmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3Vy
UmVhZGVyOjpkZWNvZGVOdW1iZXIoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICAv
LyBBdHRlbXB0cyB0byBwYXJzZSB0aGUgbnVtYmVyIGFzIGFuIGludGVnZXIuIElmIHRoZSBudW1i
ZXIgaXMKKyAgLy8gbGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gc3VwcG9ydGVkIHZhbHVlIG9mIGFu
IGludGVnZXIgdGhlbgorICAvLyB3ZSBkZWNvZGUgdGhlIG51bWJlciBhcyBhIGRvdWJsZS4KKyAg
TG9jYXRpb24gY3VycmVudCA9IHRva2VuLnN0YXJ0XzsKKyAgYm9vbCBpc05lZ2F0aXZlID0gKmN1
cnJlbnQgPT0gJy0nOworICBpZiAoaXNOZWdhdGl2ZSkKKyAgICArK2N1cnJlbnQ7CisgIC8vIFRP
RE86IEhlbHAgdGhlIGNvbXBpbGVyIGRvIHRoZSBkaXYgYW5kIG1vZCBhdCBjb21waWxlIHRpbWUg
b3IgZ2V0IHJpZCBvZiB0aGVtLgorICBWYWx1ZTo6TGFyZ2VzdFVJbnQgbWF4SW50ZWdlclZhbHVl
ID0KKyAgICAgIGlzTmVnYXRpdmUgPyBWYWx1ZTo6TGFyZ2VzdFVJbnQoLVZhbHVlOjptaW5MYXJn
ZXN0SW50KQorICAgICAgICAgICAgICAgICA6IFZhbHVlOjptYXhMYXJnZXN0VUludDsKKyAgVmFs
dWU6Okxhcmdlc3RVSW50IHRocmVzaG9sZCA9IG1heEludGVnZXJWYWx1ZSAvIDEwOworICBWYWx1
ZTo6TGFyZ2VzdFVJbnQgdmFsdWUgPSAwOworICB3aGlsZSAoY3VycmVudCA8IHRva2VuLmVuZF8p
IHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScp
CisgICAgICByZXR1cm4gZGVjb2RlRG91YmxlKHRva2VuLCBkZWNvZGVkKTsKKyAgICBWYWx1ZTo6
VUludCBkaWdpdChjIC0gJzAnKTsKKyAgICBpZiAodmFsdWUgPj0gdGhyZXNob2xkKSB7CisgICAg
ICAvLyBXZSd2ZSBoaXQgb3IgZXhjZWVkZWQgdGhlIG1heCB2YWx1ZSBkaXZpZGVkIGJ5IDEwIChy
b3VuZGVkIGRvd24pLiBJZgorICAgICAgLy8gYSkgd2UndmUgb25seSBqdXN0IHRvdWNoZWQgdGhl
IGxpbWl0LCBiKSB0aGlzIGlzIHRoZSBsYXN0IGRpZ2l0LCBhbmQKKyAgICAgIC8vIGMpIGl0J3Mg
c21hbGwgZW5vdWdoIHRvIGZpdCBpbiB0aGF0IHJvdW5kaW5nIGRlbHRhLCB3ZSdyZSBva2F5Lgor
ICAgICAgLy8gT3RoZXJ3aXNlIHRyZWF0IHRoaXMgbnVtYmVyIGFzIGEgZG91YmxlIHRvIGF2b2lk
IG92ZXJmbG93LgorICAgICAgaWYgKHZhbHVlID4gdGhyZXNob2xkIHx8IGN1cnJlbnQgIT0gdG9r
ZW4uZW5kXyB8fAorICAgICAgICAgIGRpZ2l0ID4gbWF4SW50ZWdlclZhbHVlICUgMTApIHsKKyAg
ICAgICAgcmV0dXJuIGRlY29kZURvdWJsZSh0b2tlbiwgZGVjb2RlZCk7CisgICAgICB9CisgICAg
fQorICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0OworICB9CisgIGlmIChpc05lZ2F0aXZl
KQorICAgIGRlY29kZWQgPSAtVmFsdWU6Okxhcmdlc3RJbnQodmFsdWUpOworICBlbHNlIGlmICh2
YWx1ZSA8PSBWYWx1ZTo6TGFyZ2VzdFVJbnQoVmFsdWU6Om1heEludCkpCisgICAgZGVjb2RlZCA9
IFZhbHVlOjpMYXJnZXN0SW50KHZhbHVlKTsKKyAgZWxzZQorICAgIGRlY29kZWQgPSB2YWx1ZTsK
KyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVEb3VibGUoVG9rZW4m
IHRva2VuKSB7CisgIFZhbHVlIGRlY29kZWQ7CisgIGlmICghZGVjb2RlRG91YmxlKHRva2VuLCBk
ZWNvZGVkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGN1cnJlbnRWYWx1ZSgpLnN3YXBQYXlsb2Fk
KGRlY29kZWQpOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRTdGFydCh0b2tlbi5zdGFydF8g
LSBiZWdpbl8pOworICBjdXJyZW50VmFsdWUoKS5zZXRPZmZzZXRMaW1pdCh0b2tlbi5lbmRfIC0g
YmVnaW5fKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpkZWNvZGVEb3Vi
bGUoVG9rZW4mIHRva2VuLCBWYWx1ZSYgZGVjb2RlZCkgeworICBkb3VibGUgdmFsdWUgPSAwOwor
ICBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDMyOworICBpbnQgY291bnQ7CisgIGludCBsZW5ndGgg
PSBpbnQodG9rZW4uZW5kXyAtIHRva2VuLnN0YXJ0Xyk7CisKKyAgLy8gU2FuaXR5IGNoZWNrIHRv
IGF2b2lkIGJ1ZmZlciBvdmVyZmxvdyBleHBsb2l0cy4KKyAgaWYgKGxlbmd0aCA8IDApIHsKKyAg
ICByZXR1cm4gYWRkRXJyb3IoIlVuYWJsZSB0byBwYXJzZSB0b2tlbiBsZW5ndGgiLCB0b2tlbik7
CisgIH0KKworICAvLyBBdm9pZCB1c2luZyBhIHN0cmluZyBjb25zdGFudCBmb3IgdGhlIGZvcm1h
dCBjb250cm9sIHN0cmluZyBnaXZlbiB0bworICAvLyBzc2NhbmYsIGFzIHRoaXMgY2FuIGNhdXNl
IGhhcmQgdG8gZGVidWcgY3Jhc2hlcyBvbiBPUyBYLiBTZWUgaGVyZSBmb3IgbW9yZQorICAvLyBp
bmZvOgorICAvLworICAvLyAgICAgaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9t
YWMvI0RPQ1VNRU5UQVRJT04vRGV2ZWxvcGVyVG9vbHMvZ2NjLTQuMC4xL2djYy9JbmNvbXBhdGli
aWxpdGllcy5odG1sCisgIGNoYXIgZm9ybWF0W10gPSAiJWxmIjsKKworICBpZiAobGVuZ3RoIDw9
IGJ1ZmZlclNpemUpIHsKKyAgICBDaGFyIGJ1ZmZlcltidWZmZXJTaXplICsgMV07CisgICAgbWVt
Y3B5KGJ1ZmZlciwgdG9rZW4uc3RhcnRfLCBsZW5ndGgpOworICAgIGJ1ZmZlcltsZW5ndGhdID0g
MDsKKyAgICBjb3VudCA9IHNzY2FuZihidWZmZXIsIGZvcm1hdCwgJnZhbHVlKTsKKyAgfSBlbHNl
IHsKKyAgICBzdGQ6OnN0cmluZyBidWZmZXIodG9rZW4uc3RhcnRfLCB0b2tlbi5lbmRfKTsKKyAg
ICBjb3VudCA9IHNzY2FuZihidWZmZXIuY19zdHIoKSwgZm9ybWF0LCAmdmFsdWUpOworICB9CisK
KyAgaWYgKGNvdW50ICE9IDEpCisgICAgcmV0dXJuIGFkZEVycm9yKCInIiArIHN0ZDo6c3RyaW5n
KHRva2VuLnN0YXJ0XywgdG9rZW4uZW5kXykgKworICAgICAgICAgICAgICAgICAgICAgICAgIicg
aXMgbm90IGEgbnVtYmVyLiIsCisgICAgICAgICAgICAgICAgICAgIHRva2VuKTsKKyAgZGVjb2Rl
ZCA9IHZhbHVlOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVN0
cmluZyhUb2tlbiYgdG9rZW4pIHsKKyAgc3RkOjpzdHJpbmcgZGVjb2RlZF9zdHJpbmc7CisgIGlm
ICghZGVjb2RlU3RyaW5nKHRva2VuLCBkZWNvZGVkX3N0cmluZykpCisgICAgcmV0dXJuIGZhbHNl
OworICBWYWx1ZSBkZWNvZGVkKGRlY29kZWRfc3RyaW5nKTsKKyAgY3VycmVudFZhbHVlKCkuc3dh
cFBheWxvYWQoZGVjb2RlZCk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldFN0YXJ0KHRva2Vu
LnN0YXJ0XyAtIGJlZ2luXyk7CisgIGN1cnJlbnRWYWx1ZSgpLnNldE9mZnNldExpbWl0KHRva2Vu
LmVuZF8gLSBiZWdpbl8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRl
Y29kZVN0cmluZyhUb2tlbiYgdG9rZW4sIHN0ZDo6c3RyaW5nJiBkZWNvZGVkKSB7CisgIGRlY29k
ZWQucmVzZXJ2ZSh0b2tlbi5lbmRfIC0gdG9rZW4uc3RhcnRfIC0gMik7CisgIExvY2F0aW9uIGN1
cnJlbnQgPSB0b2tlbi5zdGFydF8gKyAxOyAvLyBza2lwICciJworICBMb2NhdGlvbiBlbmQgPSB0
b2tlbi5lbmRfIC0gMTsgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgJyInCisgIHdoaWxlIChjdXJy
ZW50ICE9IGVuZCkgeworICAgIENoYXIgYyA9ICpjdXJyZW50Kys7CisgICAgaWYgKGMgPT0gJyIn
KQorICAgICAgYnJlYWs7CisgICAgZWxzZSBpZiAoYyA9PSAnXFwnKSB7CisgICAgICBpZiAoY3Vy
cmVudCA9PSBlbmQpCisgICAgICAgIHJldHVybiBhZGRFcnJvcigiRW1wdHkgZXNjYXBlIHNlcXVl
bmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50KTsKKyAgICAgIENoYXIgZXNjYXBlID0gKmN1
cnJlbnQrKzsKKyAgICAgIHN3aXRjaCAoZXNjYXBlKSB7CisgICAgICBjYXNlICciJzoKKyAgICAg
ICAgZGVjb2RlZCArPSAnIic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnLyc6CisgICAg
ICAgIGRlY29kZWQgKz0gJy8nOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ1xcJzoKKyAg
ICAgICAgZGVjb2RlZCArPSAnXFwnOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ2InOgor
ICAgICAgICBkZWNvZGVkICs9ICdcYic7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnZic6
CisgICAgICAgIGRlY29kZWQgKz0gJ1xmJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdu
JzoKKyAgICAgICAgZGVjb2RlZCArPSAnXG4nOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2Ug
J3InOgorICAgICAgICBkZWNvZGVkICs9ICdccic7CisgICAgICAgIGJyZWFrOworICAgICAgY2Fz
ZSAndCc6CisgICAgICAgIGRlY29kZWQgKz0gJ1x0JzsKKyAgICAgICAgYnJlYWs7CisgICAgICBj
YXNlICd1JzogeworICAgICAgICB1bnNpZ25lZCBpbnQgdW5pY29kZTsKKyAgICAgICAgaWYgKCFk
ZWNvZGVVbmljb2RlQ29kZVBvaW50KHRva2VuLCBjdXJyZW50LCBlbmQsIHVuaWNvZGUpKQorICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVjb2RlZCArPSBjb2RlUG9pbnRUb1VURjgo
dW5pY29kZSk7CisgICAgICB9IGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGFkZEVycm9yKCJCYWQgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZyIsIHRva2VuLCBjdXJyZW50
KTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgZGVjb2RlZCArPSBjOworICAgIH0KKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVVuaWNvZGVDb2Rl
UG9pbnQoVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9jYXRpb24mIGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
b2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQmIHVuaWNvZGUpIHsKKworICBpZiAoIWRlY29kZVVuaWNvZGVFc2NhcGVTZXF1ZW5jZSh0
b2tlbiwgY3VycmVudCwgZW5kLCB1bmljb2RlKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIGlmICh1
bmljb2RlID49IDB4RDgwMCAmJiB1bmljb2RlIDw9IDB4REJGRikgeworICAgIC8vIHN1cnJvZ2F0
ZSBwYWlycworICAgIGlmIChlbmQgLSBjdXJyZW50IDwgNikKKyAgICAgIHJldHVybiBhZGRFcnJv
cigKKyAgICAgICAgICAiYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJz
ZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLiIsCisgICAgICAgICAgdG9rZW4sCisgICAgICAgICAg
Y3VycmVudCk7CisgICAgdW5zaWduZWQgaW50IHN1cnJvZ2F0ZVBhaXI7CisgICAgaWYgKCooY3Vy
cmVudCsrKSA9PSAnXFwnICYmICooY3VycmVudCsrKSA9PSAndScpIHsKKyAgICAgIGlmIChkZWNv
ZGVVbmljb2RlRXNjYXBlU2VxdWVuY2UodG9rZW4sIGN1cnJlbnQsIGVuZCwgc3Vycm9nYXRlUGFp
cikpIHsKKyAgICAgICAgdW5pY29kZSA9IDB4MTAwMDAgKyAoKHVuaWNvZGUgJiAweDNGRikgPDwg
MTApICsgKHN1cnJvZ2F0ZVBhaXIgJiAweDNGRik7CisgICAgICB9IGVsc2UKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0gZWxzZQorICAgICAgcmV0dXJuIGFkZEVycm9yKCJleHBlY3Rpbmcg
YW5vdGhlciBcXHUgdG9rZW4gdG8gYmVnaW4gdGhlIHNlY29uZCBoYWxmIG9mICIKKyAgICAgICAg
ICAgICAgICAgICAgICAiYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyIiwKKyAgICAgICAgICAgICAg
ICAgICAgICB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50KTsKKyAgfQorICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmRlY29kZVVuaWNvZGVFc2NhcGVTZXF1
ZW5jZShUb2tlbiYgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExvY2F0aW9uJiBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMb2NhdGlvbiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCYgdW5pY29kZSkgeworICBpZiAoZW5kIC0gY3VycmVudCA8IDQp
CisgICAgcmV0dXJuIGFkZEVycm9yKAorICAgICAgICAiQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVl
bmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuIiwKKyAgICAgICAgdG9rZW4sCisg
ICAgICAgIGN1cnJlbnQpOworICB1bmljb2RlID0gMDsKKyAgZm9yIChpbnQgaW5kZXggPSAwOyBp
bmRleCA8IDQ7ICsraW5kZXgpIHsKKyAgICBDaGFyIGMgPSAqY3VycmVudCsrOworICAgIHVuaWNv
ZGUgKj0gMTY7CisgICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorICAgICAgdW5pY29kZSAr
PSBjIC0gJzAnOworICAgIGVsc2UgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ2YnKQorICAgICAgdW5p
Y29kZSArPSBjIC0gJ2EnICsgMTA7CisgICAgZWxzZSBpZiAoYyA+PSAnQScgJiYgYyA8PSAnRicp
CisgICAgICB1bmljb2RlICs9IGMgLSAnQScgKyAxMDsKKyAgICBlbHNlCisgICAgICByZXR1cm4g
YWRkRXJyb3IoCisgICAgICAgICAgIkJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJp
bmc6IGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkLiIsCisgICAgICAgICAgdG9rZW4sCisgICAg
ICAgICAgY3VycmVudCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wKK091clJlYWRl
cjo6YWRkRXJyb3IoY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsIFRva2VuJiB0b2tlbiwgTG9j
YXRpb24gZXh0cmEpIHsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9rZW5fID0gdG9rZW47
CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9IGV4dHJhOworICBl
cnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIE91clJl
YWRlcjo6cmVjb3ZlckZyb21FcnJvcihUb2tlblR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgaW50
IGVycm9yQ291bnQgPSBpbnQoZXJyb3JzXy5zaXplKCkpOworICBUb2tlbiBza2lwOworICBmb3Ig
KDs7KSB7CisgICAgaWYgKCFyZWFkVG9rZW4oc2tpcCkpCisgICAgICBlcnJvcnNfLnJlc2l6ZShl
cnJvckNvdW50KTsgLy8gZGlzY2FyZCBlcnJvcnMgY2F1c2VkIGJ5IHJlY292ZXJ5CisgICAgaWYg
KHNraXAudHlwZV8gPT0gc2tpcFVudGlsVG9rZW4gfHwgc2tpcC50eXBlXyA9PSB0b2tlbkVuZE9m
U3RyZWFtKQorICAgICAgYnJlYWs7CisgIH0KKyAgZXJyb3JzXy5yZXNpemUoZXJyb3JDb3VudCk7
CisgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBPdXJSZWFkZXI6OmFkZEVycm9yQW5kUmVjb3Zl
cihjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVG9rZW4mIHRva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tl
blR5cGUgc2tpcFVudGlsVG9rZW4pIHsKKyAgYWRkRXJyb3IobWVzc2FnZSwgdG9rZW4pOworICBy
ZXR1cm4gcmVjb3ZlckZyb21FcnJvcihza2lwVW50aWxUb2tlbik7Cit9CisKK1ZhbHVlJiBPdXJS
ZWFkZXI6OmN1cnJlbnRWYWx1ZSgpIHsgcmV0dXJuICoobm9kZXNfLnRvcCgpKTsgfQorCitPdXJS
ZWFkZXI6OkNoYXIgT3VyUmVhZGVyOjpnZXROZXh0Q2hhcigpIHsKKyAgaWYgKGN1cnJlbnRfID09
IGVuZF8pCisgICAgcmV0dXJuIDA7CisgIHJldHVybiAqY3VycmVudF8rKzsKK30KKwordm9pZCBP
dXJSZWFkZXI6OmdldExvY2F0aW9uTGluZUFuZENvbHVtbihMb2NhdGlvbiBsb2NhdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBsaW5lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGNvbHVtbikgY29uc3QgeworICBMb2Nh
dGlvbiBjdXJyZW50ID0gYmVnaW5fOworICBMb2NhdGlvbiBsYXN0TGluZVN0YXJ0ID0gY3VycmVu
dDsKKyAgbGluZSA9IDA7CisgIHdoaWxlIChjdXJyZW50IDwgbG9jYXRpb24gJiYgY3VycmVudCAh
PSBlbmRfKSB7CisgICAgQ2hhciBjID0gKmN1cnJlbnQrKzsKKyAgICBpZiAoYyA9PSAnXHInKSB7
CisgICAgICBpZiAoKmN1cnJlbnQgPT0gJ1xuJykKKyAgICAgICAgKytjdXJyZW50OworICAgICAg
bGFzdExpbmVTdGFydCA9IGN1cnJlbnQ7CisgICAgICArK2xpbmU7CisgICAgfSBlbHNlIGlmIChj
ID09ICdcbicpIHsKKyAgICAgIGxhc3RMaW5lU3RhcnQgPSBjdXJyZW50OworICAgICAgKytsaW5l
OworICAgIH0KKyAgfQorICAvLyBjb2x1bW4gJiBsaW5lIHN0YXJ0IGF0IDEKKyAgY29sdW1uID0g
aW50KGxvY2F0aW9uIC0gbGFzdExpbmVTdGFydCkgKyAxOworICArK2xpbmU7Cit9CisKK3N0ZDo6
c3RyaW5nIE91clJlYWRlcjo6Z2V0TG9jYXRpb25MaW5lQW5kQ29sdW1uKExvY2F0aW9uIGxvY2F0
aW9uKSBjb25zdCB7CisgIGludCBsaW5lLCBjb2x1bW47CisgIGdldExvY2F0aW9uTGluZUFuZENv
bHVtbihsb2NhdGlvbiwgbGluZSwgY29sdW1uKTsKKyAgY2hhciBidWZmZXJbMTggKyAxNiArIDE2
ICsgMV07CisgIHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICJMaW5lICVkLCBDb2x1
bW4gJWQiLCBsaW5lLCBjb2x1bW4pOworICByZXR1cm4gYnVmZmVyOworfQorCitzdGQ6OnN0cmlu
ZyBPdXJSZWFkZXI6OmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKSBjb25zdCB7CisgIHN0ZDo6
c3RyaW5nIGZvcm1hdHRlZE1lc3NhZ2U7CisgIGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBp
dEVycm9yID0gZXJyb3JzXy5iZWdpbigpOworICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQo
KTsKKyAgICAgICArK2l0RXJyb3IpIHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0
RXJyb3I7CisgICAgZm9ybWF0dGVkTWVzc2FnZSArPQorICAgICAgICAiKiAiICsgZ2V0TG9jYXRp
b25MaW5lQW5kQ29sdW1uKGVycm9yLnRva2VuXy5zdGFydF8pICsgIlxuIjsKKyAgICBmb3JtYXR0
ZWRNZXNzYWdlICs9ICIgICIgKyBlcnJvci5tZXNzYWdlXyArICJcbiI7CisgICAgaWYgKGVycm9y
LmV4dHJhXykKKyAgICAgIGZvcm1hdHRlZE1lc3NhZ2UgKz0KKyAgICAgICAgICAiU2VlICIgKyBn
ZXRMb2NhdGlvbkxpbmVBbmRDb2x1bW4oZXJyb3IuZXh0cmFfKSArICIgZm9yIGRldGFpbC5cbiI7
CisgIH0KKyAgcmV0dXJuIGZvcm1hdHRlZE1lc3NhZ2U7Cit9CisKK3N0ZDo6dmVjdG9yPE91clJl
YWRlcjo6U3RydWN0dXJlZEVycm9yPiBPdXJSZWFkZXI6OmdldFN0cnVjdHVyZWRFcnJvcnMoKSBj
b25zdCB7CisgIHN0ZDo6dmVjdG9yPE91clJlYWRlcjo6U3RydWN0dXJlZEVycm9yPiBhbGxFcnJv
cnM7CisgIGZvciAoRXJyb3JzOjpjb25zdF9pdGVyYXRvciBpdEVycm9yID0gZXJyb3JzXy5iZWdp
bigpOworICAgICAgIGl0RXJyb3IgIT0gZXJyb3JzXy5lbmQoKTsKKyAgICAgICArK2l0RXJyb3Ip
IHsKKyAgICBjb25zdCBFcnJvckluZm8mIGVycm9yID0gKml0RXJyb3I7CisgICAgT3VyUmVhZGVy
OjpTdHJ1Y3R1cmVkRXJyb3Igc3RydWN0dXJlZDsKKyAgICBzdHJ1Y3R1cmVkLm9mZnNldF9zdGFy
dCA9IGVycm9yLnRva2VuXy5zdGFydF8gLSBiZWdpbl87CisgICAgc3RydWN0dXJlZC5vZmZzZXRf
bGltaXQgPSBlcnJvci50b2tlbl8uZW5kXyAtIGJlZ2luXzsKKyAgICBzdHJ1Y3R1cmVkLm1lc3Nh
Z2UgPSBlcnJvci5tZXNzYWdlXzsKKyAgICBhbGxFcnJvcnMucHVzaF9iYWNrKHN0cnVjdHVyZWQp
OworICB9CisgIHJldHVybiBhbGxFcnJvcnM7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJy
b3IoY29uc3QgVmFsdWUmIHZhbHVlLCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgeworICBz
aXplX3QgbGVuZ3RoID0gZW5kXyAtIGJlZ2luXzsKKyAgaWYodmFsdWUuZ2V0T2Zmc2V0U3RhcnQo
KSA+IGxlbmd0aAorICAgIHx8IHZhbHVlLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAg
cmV0dXJuIGZhbHNlOworICBUb2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9y
OworICB0b2tlbi5zdGFydF8gPSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0
b2tlbi5lbmRfID0gZW5kXyArIHZhbHVlLmdldE9mZnNldExpbWl0KCk7CisgIEVycm9ySW5mbyBp
bmZvOworICBpbmZvLnRva2VuXyA9IHRva2VuOworICBpbmZvLm1lc3NhZ2VfID0gbWVzc2FnZTsK
KyAgaW5mby5leHRyYV8gPSAwOworICBlcnJvcnNfLnB1c2hfYmFjayhpbmZvKTsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgT3VyUmVhZGVyOjpwdXNoRXJyb3IoY29uc3QgVmFsdWUmIHZhbHVl
LCBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsdWUmIGV4dHJhKSB7CisgIHNp
emVfdCBsZW5ndGggPSBlbmRfIC0gYmVnaW5fOworICBpZih2YWx1ZS5nZXRPZmZzZXRTdGFydCgp
ID4gbGVuZ3RoCisgICAgfHwgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKSA+IGxlbmd0aAorICAgIHx8
IGV4dHJhLmdldE9mZnNldExpbWl0KCkgPiBsZW5ndGgpCisgICAgcmV0dXJuIGZhbHNlOworICBU
b2tlbiB0b2tlbjsKKyAgdG9rZW4udHlwZV8gPSB0b2tlbkVycm9yOworICB0b2tlbi5zdGFydF8g
PSBiZWdpbl8gKyB2YWx1ZS5nZXRPZmZzZXRTdGFydCgpOworICB0b2tlbi5lbmRfID0gYmVnaW5f
ICsgdmFsdWUuZ2V0T2Zmc2V0TGltaXQoKTsKKyAgRXJyb3JJbmZvIGluZm87CisgIGluZm8udG9r
ZW5fID0gdG9rZW47CisgIGluZm8ubWVzc2FnZV8gPSBtZXNzYWdlOworICBpbmZvLmV4dHJhXyA9
IGJlZ2luXyArIGV4dHJhLmdldE9mZnNldFN0YXJ0KCk7CisgIGVycm9yc18ucHVzaF9iYWNrKGlu
Zm8pOworICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPdXJSZWFkZXI6Omdvb2QoKSBjb25zdCB7
CisgIHJldHVybiAhZXJyb3JzXy5zaXplKCk7Cit9CisKKworY2xhc3MgT3VyQ2hhclJlYWRlciA6
IHB1YmxpYyBDaGFyUmVhZGVyIHsKKyAgYm9vbCBjb25zdCBjb2xsZWN0Q29tbWVudHNfOworICBP
dXJSZWFkZXIgcmVhZGVyXzsKK3B1YmxpYzoKKyAgT3VyQ2hhclJlYWRlcigKKyAgICBib29sIGNv
bGxlY3RDb21tZW50cywKKyAgICBPdXJGZWF0dXJlcyBjb25zdCYgZmVhdHVyZXMpCisgIDogY29s
bGVjdENvbW1lbnRzXyhjb2xsZWN0Q29tbWVudHMpCisgICwgcmVhZGVyXyhmZWF0dXJlcykKKyAg
e30KKyAgYm9vbCBwYXJzZSgKKyAgICAgIGNoYXIgY29uc3QqIGJlZ2luRG9jLCBjaGFyIGNvbnN0
KiBlbmREb2MsCisgICAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMpIHsKKyAgICBi
b29sIG9rID0gcmVhZGVyXy5wYXJzZShiZWdpbkRvYywgZW5kRG9jLCAqcm9vdCwgY29sbGVjdENv
bW1lbnRzXyk7CisgICAgaWYgKGVycnMpIHsKKyAgICAgICplcnJzID0gcmVhZGVyXy5nZXRGb3Jt
YXR0ZWRFcnJvck1lc3NhZ2VzKCk7CisgICAgfQorICAgIHJldHVybiBvazsKKyAgfQorfTsKKwor
Q2hhclJlYWRlckJ1aWxkZXI6OkNoYXJSZWFkZXJCdWlsZGVyKCkKK3sKKyAgc2V0RGVmYXVsdHMo
JnNldHRpbmdzXyk7Cit9CitDaGFyUmVhZGVyQnVpbGRlcjo6fkNoYXJSZWFkZXJCdWlsZGVyKCkK
K3t9CitDaGFyUmVhZGVyKiBDaGFyUmVhZGVyQnVpbGRlcjo6bmV3Q2hhclJlYWRlcigpIGNvbnN0
Cit7CisgIGJvb2wgY29sbGVjdENvbW1lbnRzID0gc2V0dGluZ3NfWyJjb2xsZWN0Q29tbWVudHMi
XS5hc0Jvb2woKTsKKyAgT3VyRmVhdHVyZXMgZmVhdHVyZXMgPSBPdXJGZWF0dXJlczo6YWxsKCk7
CisgIGZlYXR1cmVzLmFsbG93Q29tbWVudHNfID0gc2V0dGluZ3NfWyJhbGxvd0NvbW1lbnRzIl0u
YXNCb29sKCk7CisgIGZlYXR1cmVzLnN0cmljdFJvb3RfID0gc2V0dGluZ3NfWyJzdHJpY3RSb290
Il0uYXNCb29sKCk7CisgIGZlYXR1cmVzLmFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnNfID0g
c2V0dGluZ3NfWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0uYXNCb29sKCk7CisgIGZl
YXR1cmVzLmFsbG93TnVtZXJpY0tleXNfID0gc2V0dGluZ3NfWyJhbGxvd051bWVyaWNLZXlzIl0u
YXNCb29sKCk7CisgIGZlYXR1cmVzLmFsbG93U2luZ2xlUXVvdGVzXyA9IHNldHRpbmdzX1siYWxs
b3dTaW5nbGVRdW90ZXMiXS5hc0Jvb2woKTsKKyAgZmVhdHVyZXMuc3RhY2tMaW1pdF8gPSBzZXR0
aW5nc19bInN0YWNrTGltaXQiXS5hc0ludCgpOworICBmZWF0dXJlcy5mYWlsSWZFeHRyYV8gPSBz
ZXR0aW5nc19bImZhaWxJZkV4dHJhIl0uYXNCb29sKCk7CisgIGZlYXR1cmVzLnJlamVjdER1cEtl
eXNfID0gc2V0dGluZ3NfWyJyZWplY3REdXBLZXlzIl0uYXNCb29sKCk7CisgIGZlYXR1cmVzLmFs
bG93U3BlY2lhbEZsb2F0c18gPSBzZXR0aW5nc19bImFsbG93U3BlY2lhbEZsb2F0cyJdLmFzQm9v
bCgpOworICByZXR1cm4gbmV3IE91ckNoYXJSZWFkZXIoY29sbGVjdENvbW1lbnRzLCBmZWF0dXJl
cyk7Cit9CitzdGF0aWMgdm9pZCBnZXRWYWxpZFJlYWRlcktleXMoc3RkOjpzZXQ8c3RkOjpzdHJp
bmc+KiB2YWxpZF9rZXlzKQoreworICB2YWxpZF9rZXlzLT5jbGVhcigpOworICB2YWxpZF9rZXlz
LT5pbnNlcnQoImNvbGxlY3RDb21tZW50cyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImFsbG93
Q29tbWVudHMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJzdHJpY3RSb290Iik7CisgIHZhbGlk
X2tleXMtPmluc2VydCgiYWxsb3dEcm9wcGVkTnVsbFBsYWNlaG9sZGVycyIpOworICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImFsbG93TnVtZXJpY0tleXMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJh
bGxvd1NpbmdsZVF1b3RlcyIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoInN0YWNrTGltaXQiKTsK
KyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJmYWlsSWZFeHRyYSIpOworICB2YWxpZF9rZXlzLT5pbnNl
cnQoInJlamVjdER1cEtleXMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJhbGxvd1NwZWNpYWxG
bG9hdHMiKTsKK30KK2Jvb2wgQ2hhclJlYWRlckJ1aWxkZXI6OnZhbGlkYXRlKEpzb246OlZhbHVl
KiBpbnZhbGlkKSBjb25zdAoreworICBKc29uOjpWYWx1ZSBteV9pbnZhbGlkOworICBpZiAoIWlu
dmFsaWQpIGludmFsaWQgPSAmbXlfaW52YWxpZDsgIC8vIHNvIHdlIGRvIG5vdCBuZWVkIHRvIHRl
c3QgZm9yIE5VTEwKKyAgSnNvbjo6VmFsdWUmIGludiA9ICppbnZhbGlkOworICBzdGQ6OnNldDxz
dGQ6OnN0cmluZz4gdmFsaWRfa2V5czsKKyAgZ2V0VmFsaWRSZWFkZXJLZXlzKCZ2YWxpZF9rZXlz
KTsKKyAgVmFsdWU6Ok1lbWJlcnMga2V5cyA9IHNldHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOwor
ICBzaXplX3QgbiA9IGtleXMuc2l6ZSgpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsr
aSkgeworICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBrZXkgPSBrZXlzW2ldOworICAgIGlmICh2YWxp
ZF9rZXlzLmZpbmQoa2V5KSA9PSB2YWxpZF9rZXlzLmVuZCgpKSB7CisgICAgICBpbnZba2V5XSA9
IHNldHRpbmdzX1trZXldOworICAgIH0KKyAgfQorICByZXR1cm4gMHUgPT0gaW52LnNpemUoKTsK
K30KK1ZhbHVlJiBDaGFyUmVhZGVyQnVpbGRlcjo6b3BlcmF0b3JbXShzdGQ6OnN0cmluZyBrZXkp
Cit7CisgIHJldHVybiBzZXR0aW5nc19ba2V5XTsKK30KKy8vIHN0YXRpYwordm9pZCBDaGFyUmVh
ZGVyQnVpbGRlcjo6c3RyaWN0TW9kZShKc29uOjpWYWx1ZSogc2V0dGluZ3MpCit7CisvLyEgW0No
YXJSZWFkZXJCdWlsZGVyU3RyaWN0TW9kZV0KKyAgKCpzZXR0aW5ncylbImFsbG93Q29tbWVudHMi
XSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsic3RyaWN0Um9vdCJdID0gdHJ1ZTsKKyAgKCpzZXR0
aW5ncylbImFsbG93RHJvcHBlZE51bGxQbGFjZWhvbGRlcnMiXSA9IGZhbHNlOworICAoKnNldHRp
bmdzKVsiYWxsb3dOdW1lcmljS2V5cyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJhbGxvd1Np
bmdsZVF1b3RlcyJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJzdGFja0xpbWl0Il0gPSAxMDAw
OworICAoKnNldHRpbmdzKVsiZmFpbElmRXh0cmEiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJy
ZWplY3REdXBLZXlzIl0gPSB0cnVlOworICAoKnNldHRpbmdzKVsiYWxsb3dTcGVjaWFsRmxvYXRz
Il0gPSBmYWxzZTsKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJTdHJpY3RNb2RlXQorfQorLy8gc3Rh
dGljCit2b2lkIENoYXJSZWFkZXJCdWlsZGVyOjpzZXREZWZhdWx0cyhKc29uOjpWYWx1ZSogc2V0
dGluZ3MpCit7CisvLyEgW0NoYXJSZWFkZXJCdWlsZGVyRGVmYXVsdHNdCisgICgqc2V0dGluZ3Mp
WyJjb2xsZWN0Q29tbWVudHMiXSA9IHRydWU7CisgICgqc2V0dGluZ3MpWyJhbGxvd0NvbW1lbnRz
Il0gPSB0cnVlOworICAoKnNldHRpbmdzKVsic3RyaWN0Um9vdCJdID0gZmFsc2U7CisgICgqc2V0
dGluZ3MpWyJhbGxvd0Ryb3BwZWROdWxsUGxhY2Vob2xkZXJzIl0gPSBmYWxzZTsKKyAgKCpzZXR0
aW5ncylbImFsbG93TnVtZXJpY0tleXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dT
aW5nbGVRdW90ZXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsic3RhY2tMaW1pdCJdID0gMTAw
MDsKKyAgKCpzZXR0aW5ncylbImZhaWxJZkV4dHJhIl0gPSBmYWxzZTsKKyAgKCpzZXR0aW5ncylb
InJlamVjdER1cEtleXMiXSA9IGZhbHNlOworICAoKnNldHRpbmdzKVsiYWxsb3dTcGVjaWFsRmxv
YXRzIl0gPSBmYWxzZTsKKy8vISBbQ2hhclJlYWRlckJ1aWxkZXJEZWZhdWx0c10KK30KKworLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gZ2xvYmFsIGZ1bmN0aW9ucworCiti
b29sIHBhcnNlRnJvbVN0cmVhbSgKKyAgICBDaGFyUmVhZGVyOjpGYWN0b3J5IGNvbnN0JiBmYWN0
LCBzdGQ6OmlzdHJlYW0mIHNpbiwKKyAgICBWYWx1ZSogcm9vdCwgc3RkOjpzdHJpbmcqIGVycnMp
Cit7CisgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzc2luOworICBzc2luIDw8IHNpbi5yZGJ1ZigpOwor
ICBzdGQ6OnN0cmluZyBkb2MgPSBzc2luLnN0cigpOworICBjaGFyIGNvbnN0KiBiZWdpbiA9IGRv
Yy5kYXRhKCk7CisgIGNoYXIgY29uc3QqIGVuZCA9IGJlZ2luICsgZG9jLnNpemUoKTsKKyAgLy8g
Tm90ZSB0aGF0IHdlIGRvIG5vdCBhY3R1YWxseSBuZWVkIGEgbnVsbC10ZXJtaW5hdG9yLgorICBD
aGFyUmVhZGVyUHRyIGNvbnN0IHJlYWRlcihmYWN0Lm5ld0NoYXJSZWFkZXIoKSk7CisgIHJldHVy
biByZWFkZXItPnBhcnNlKGJlZ2luLCBlbmQsIHJvb3QsIGVycnMpOworfQorCitzdGQ6OmlzdHJl
YW0mIG9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiBzaW4sIFZhbHVlJiByb290KSB7CisgIENoYXJS
ZWFkZXJCdWlsZGVyIGI7CisgIHN0ZDo6c3RyaW5nIGVycnM7CisgIGJvb2wgb2sgPSBwYXJzZUZy
b21TdHJlYW0oYiwgc2luLCAmcm9vdCwgJmVycnMpOworICBpZiAoIW9rKSB7CisgICAgZnByaW50
ZihzdGRlcnIsCisgICAgICAgICAgICAiRXJyb3IgZnJvbSByZWFkZXI6ICVzIiwKKyAgICAgICAg
ICAgIGVycnMuY19zdHIoKSk7CisKKyAgICB0aHJvd1J1bnRpbWVFcnJvcihlcnJzKTsKKyAgfQor
ICByZXR1cm4gc2luOworfQorCit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIEVuZCBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3JlYWRlci5j
cHAKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJl
Z2lubmluZyBvZiBjb250ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlaXRlcmF0
b3IuaW5sCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIENvcHlyaWdodCAyMDA3LTIwMTAgQmFwdGlz
dGUgTGVwaWxsZXVyCisvLyBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZSwgb3IgcHVibGlj
IGRvbWFpbiBpZiBkZXNpcmVkIGFuZAorLy8gcmVjb2duaXplZCBpbiB5b3VyIGp1cmlzZGljdGlv
bi4KKy8vIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHA6Ly9qc29u
Y3BwLnNvdXJjZWZvcmdlLm5ldC9MSUNFTlNFCisKKy8vIGluY2x1ZGVkIGJ5IGpzb25fdmFsdWUu
Y3BwCisKK25hbWVzcGFjZSBKc29uIHsKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWVJdGVyYXRvckJhc2UKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFsdWVJdGVyYXRvckJhc2U6OlZhbHVlSXRlcmF0
b3JCYXNlKCkKKyAgICA6IGN1cnJlbnRfKCksIGlzTnVsbF8odHJ1ZSkgeworfQorCitWYWx1ZUl0
ZXJhdG9yQmFzZTo6VmFsdWVJdGVyYXRvckJhc2UoCisgICAgY29uc3QgVmFsdWU6Ok9iamVjdFZh
bHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpCisgICAgOiBjdXJyZW50XyhjdXJyZW50KSwgaXNOdWxs
XyhmYWxzZSkge30KKworVmFsdWUmIFZhbHVlSXRlcmF0b3JCYXNlOjpkZXJlZigpIGNvbnN0IHsK
KyAgcmV0dXJuIGN1cnJlbnRfLT5zZWNvbmQ7Cit9CisKK3ZvaWQgVmFsdWVJdGVyYXRvckJhc2U6
OmluY3JlbWVudCgpIHsKKyAgKytjdXJyZW50XzsKK30KKwordm9pZCBWYWx1ZUl0ZXJhdG9yQmFz
ZTo6ZGVjcmVtZW50KCkgeworICAtLWN1cnJlbnRfOworfQorCitWYWx1ZUl0ZXJhdG9yQmFzZTo6
ZGlmZmVyZW5jZV90eXBlCitWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29tcHV0ZURpc3RhbmNlKGNvbnN0
IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeworI2lmZGVmIEpTT05fVVNFX0NQUFRMX1NNQUxMTUFQ
CisgIHJldHVybiBvdGhlci5jdXJyZW50XyAtIGN1cnJlbnRfOworI2Vsc2UKKyAgLy8gSXRlcmF0
b3IgZm9yIG51bGwgdmFsdWUgYXJlIGluaXRpYWxpemVkIHVzaW5nIHRoZSBkZWZhdWx0CisgIC8v
IGNvbnN0cnVjdG9yLCB3aGljaCBpbml0aWFsaXplIGN1cnJlbnRfIHRvIHRoZSBkZWZhdWx0Cisg
IC8vIHN0ZDo6bWFwOjppdGVyYXRvci4gQXMgYmVnaW4oKSBhbmQgZW5kKCkgYXJlIHR3byBpbnN0
YW5jZQorICAvLyBvZiB0aGUgZGVmYXVsdCBzdGQ6Om1hcDo6aXRlcmF0b3IsIHRoZXkgY2FuIG5v
dCBiZSBjb21wYXJlZC4KKyAgLy8gVG8gYWxsb3cgdGhpcywgd2UgaGFuZGxlIHRoaXMgY29tcGFy
aXNvbiBzcGVjaWZpY2FsbHkuCisgIGlmIChpc051bGxfICYmIG90aGVyLmlzTnVsbF8pIHsKKyAg
ICByZXR1cm4gMDsKKyAgfQorCisgIC8vIFVzYWdlIG9mIHN0ZDo6ZGlzdGFuY2UgaXMgbm90IHBv
cnRhYmxlIChkb2VzIG5vdCBjb21waWxlIHdpdGggU3VuIFN0dWRpbyAxMgorICAvLyBSb2d1ZVdh
dmUgU1RMLAorICAvLyB3aGljaCBpcyB0aGUgb25lIHVzZWQgYnkgZGVmYXVsdCkuCisgIC8vIFVz
aW5nIGEgcG9ydGFibGUgaGFuZC1tYWRlIHZlcnNpb24gZm9yIG5vbiByYW5kb20gaXRlcmF0b3Ig
aW5zdGVhZDoKKyAgLy8gICByZXR1cm4gZGlmZmVyZW5jZV90eXBlKCBzdGQ6OmRpc3RhbmNlKCBj
dXJyZW50Xywgb3RoZXIuY3VycmVudF8gKSApOworICBkaWZmZXJlbmNlX3R5cGUgbXlEaXN0YW5j
ZSA9IDA7CisgIGZvciAoVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSBjdXJyZW50
XzsgaXQgIT0gb3RoZXIuY3VycmVudF87CisgICAgICAgKytpdCkgeworICAgICsrbXlEaXN0YW5j
ZTsKKyAgfQorICByZXR1cm4gbXlEaXN0YW5jZTsKKyNlbmRpZgorfQorCitib29sIFZhbHVlSXRl
cmF0b3JCYXNlOjppc0VxdWFsKGNvbnN0IFNlbGZUeXBlJiBvdGhlcikgY29uc3QgeworICBpZiAo
aXNOdWxsXykgeworICAgIHJldHVybiBvdGhlci5pc051bGxfOworICB9CisgIHJldHVybiBjdXJy
ZW50XyA9PSBvdGhlci5jdXJyZW50XzsKK30KKwordm9pZCBWYWx1ZUl0ZXJhdG9yQmFzZTo6Y29w
eShjb25zdCBTZWxmVHlwZSYgb3RoZXIpIHsKKyAgY3VycmVudF8gPSBvdGhlci5jdXJyZW50XzsK
KyAgaXNOdWxsXyA9IG90aGVyLmlzTnVsbF87Cit9CisKK1ZhbHVlIFZhbHVlSXRlcmF0b3JCYXNl
OjprZXkoKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlOjpDWlN0cmluZyBjenN0cmluZyA9ICgqY3Vy
cmVudF8pLmZpcnN0OworICBpZiAoY3pzdHJpbmcuZGF0YSgpKSB7CisgICAgaWYgKGN6c3RyaW5n
LmlzU3RhdGljU3RyaW5nKCkpCisgICAgICByZXR1cm4gVmFsdWUoU3RhdGljU3RyaW5nKGN6c3Ry
aW5nLmRhdGEoKSkpOworICAgIHJldHVybiBWYWx1ZShjenN0cmluZy5kYXRhKCksIGN6c3RyaW5n
LmRhdGEoKSArIGN6c3RyaW5nLmxlbmd0aCgpKTsKKyAgfQorICByZXR1cm4gVmFsdWUoY3pzdHJp
bmcuaW5kZXgoKSk7Cit9CisKK1VJbnQgVmFsdWVJdGVyYXRvckJhc2U6OmluZGV4KCkgY29uc3Qg
eworICBjb25zdCBWYWx1ZTo6Q1pTdHJpbmcgY3pzdHJpbmcgPSAoKmN1cnJlbnRfKS5maXJzdDsK
KyAgaWYgKCFjenN0cmluZy5kYXRhKCkpCisgICAgcmV0dXJuIGN6c3RyaW5nLmluZGV4KCk7Cisg
IHJldHVybiBWYWx1ZTo6VUludCgtMSk7Cit9CisKK3N0ZDo6c3RyaW5nIFZhbHVlSXRlcmF0b3JC
YXNlOjpuYW1lKCkgY29uc3QgeworICBjaGFyIGNvbnN0KiBrZWV5OworICBjaGFyIGNvbnN0KiBl
bmQ7CisgIGtlZXkgPSBtZW1iZXJOYW1lKCZlbmQpOworICBpZiAoIWtlZXkpIHJldHVybiBzdGQ6
OnN0cmluZygpOworICByZXR1cm4gc3RkOjpzdHJpbmcoa2VleSwgZW5kKTsKK30KKworY2hhciBj
b25zdCogVmFsdWVJdGVyYXRvckJhc2U6Om1lbWJlck5hbWUoKSBjb25zdCB7CisgIGNvbnN0IGNo
YXIqIGNuYW1lID0gKCpjdXJyZW50XykuZmlyc3QuZGF0YSgpOworICByZXR1cm4gY25hbWUgPyBj
bmFtZSA6ICIiOworfQorCitjaGFyIGNvbnN0KiBWYWx1ZUl0ZXJhdG9yQmFzZTo6bWVtYmVyTmFt
ZShjaGFyIGNvbnN0KiogZW5kKSBjb25zdCB7CisgIGNvbnN0IGNoYXIqIGNuYW1lID0gKCpjdXJy
ZW50XykuZmlyc3QuZGF0YSgpOworICBpZiAoIWNuYW1lKSB7CisgICAgKmVuZCA9IE5VTEw7Cisg
ICAgcmV0dXJuIE5VTEw7CisgIH0KKyAgKmVuZCA9IGNuYW1lICsgKCpjdXJyZW50XykuZmlyc3Qu
bGVuZ3RoKCk7CisgIHJldHVybiBjbmFtZTsKK30KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gY2xhc3MgVmFsdWVDb25zdEl0ZXJhdG9yCisvLyAvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1ZhbHVlQ29uc3RJdGVyYXRvcjo6VmFs
dWVDb25zdEl0ZXJhdG9yKCkge30KKworVmFsdWVDb25zdEl0ZXJhdG9yOjpWYWx1ZUNvbnN0SXRl
cmF0b3IoCisgICAgY29uc3QgVmFsdWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQp
CisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShjdXJyZW50KSB7fQorCitWYWx1ZUNvbnN0SXRlcmF0
b3I6OlZhbHVlQ29uc3RJdGVyYXRvcihWYWx1ZUl0ZXJhdG9yIGNvbnN0JiBvdGhlcikKKyAgICA6
IFZhbHVlSXRlcmF0b3JCYXNlKG90aGVyKSB7fQorCitWYWx1ZUNvbnN0SXRlcmF0b3ImIFZhbHVl
Q29uc3RJdGVyYXRvcjo6CitvcGVyYXRvcj0oY29uc3QgVmFsdWVJdGVyYXRvckJhc2UmIG90aGVy
KSB7CisgIGNvcHkob3RoZXIpOworICByZXR1cm4gKnRoaXM7Cit9CisKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlSXRlcmF0b3IKKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVmFsdWVJdGVyYXRvcjo6VmFs
dWVJdGVyYXRvcigpIHt9CisKK1ZhbHVlSXRlcmF0b3I6OlZhbHVlSXRlcmF0b3IoY29uc3QgVmFs
dWU6Ok9iamVjdFZhbHVlczo6aXRlcmF0b3ImIGN1cnJlbnQpCisgICAgOiBWYWx1ZUl0ZXJhdG9y
QmFzZShjdXJyZW50KSB7fQorCitWYWx1ZUl0ZXJhdG9yOjpWYWx1ZUl0ZXJhdG9yKGNvbnN0IFZh
bHVlQ29uc3RJdGVyYXRvciYgb3RoZXIpCisgICAgOiBWYWx1ZUl0ZXJhdG9yQmFzZShvdGhlcikg
eworICB0aHJvd1J1bnRpbWVFcnJvcigiQ29uc3RJdGVyYXRvciB0byBJdGVyYXRvciBzaG91bGQg
bmV2ZXIgYmUgYWxsb3dlZC4iKTsKK30KKworVmFsdWVJdGVyYXRvcjo6VmFsdWVJdGVyYXRvcihj
b25zdCBWYWx1ZUl0ZXJhdG9yJiBvdGhlcikKKyAgICA6IFZhbHVlSXRlcmF0b3JCYXNlKG90aGVy
KSB7fQorCitWYWx1ZUl0ZXJhdG9yJiBWYWx1ZUl0ZXJhdG9yOjpvcGVyYXRvcj0oY29uc3QgU2Vs
ZlR5cGUmIG90aGVyKSB7CisgIGNvcHkob3RoZXIpOworICByZXR1cm4gKnRoaXM7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRlbnQg
b2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFsdWVpdGVyYXRvci5pbmwKKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworCisKKworCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEJlZ2lubmluZyBvZiBjb250
ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3ZhbHVlLmNwcAorLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworCisvLyBDb3B5cmlnaHQgMjAxMSBCYXB0aXN0ZSBMZXBpbGxldXIKKy8vIERpc3RyaWJ1dGVk
IHVuZGVyIE1JVCBsaWNlbnNlLCBvciBwdWJsaWMgZG9tYWluIGlmIGRlc2lyZWQgYW5kCisvLyBy
ZWNvZ25pemVkIGluIHlvdXIganVyaXNkaWN0aW9uLgorLy8gU2VlIGZpbGUgTElDRU5TRSBmb3Ig
ZGV0YWlsIG9yIGNvcHkgYXQgaHR0cDovL2pzb25jcHAuc291cmNlZm9yZ2UubmV0L0xJQ0VOU0UK
KworI2lmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1ZGUgPGpzb24vYXNz
ZXJ0aW9ucy5oPgorI2luY2x1ZGUgPGpzb24vdmFsdWUuaD4KKyNpbmNsdWRlIDxqc29uL3dyaXRl
ci5oPgorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fSVNfQU1BTEdBTUFUSU9OKQorI2luY2x1
ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5j
bHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2lmZGVmIEpTT05fVVNFX0NQUFRM
CisjaW5jbHVkZSA8Y3BwdGwvY29uc3RzdHJpbmcuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGNzdGRk
ZWY+IC8vIHNpemVfdAorI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gbWluKCkKKworI2RlZmluZSBK
U09OX0FTU0VSVF9VTlJFQUNIQUJMRSBhc3NlcnQoZmFsc2UpCisKKy8qCistLSBWYWx2ZSAxLzcv
MTYKKzQ3MDIgdW5yZWFjaGFibGUgY29kZQorKi8KKyNwcmFnbWEgd2FybmluZyAocHVzaCkKKyNw
cmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDcwMikKKworbmFtZXNwYWNlIEpzb24geworCisvLyBU
aGlzIGlzIGEgd2Fsa2Fyb3VuZCB0byBhdm9pZCB0aGUgc3RhdGljIGluaXRpYWxpemF0aW9uIG9m
IFZhbHVlOjpudWxsLgorLy8ga051bGwgbXVzdCBiZSB3b3JkLWFsaWduZWQgdG8gYXZvaWQgY3Jh
c2hpbmcgb24gQVJNLiAgV2UgdXNlIGFuIGFsaWdubWVudCBvZgorLy8gOCAoaW5zdGVhZCBvZiA0
KSBhcyBhIGJpdCBvZiBmdXR1cmUtcHJvb2ZpbmcuCisjaWYgZGVmaW5lZChfX0FSTUVMX18pCisj
ZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpIF9fYXR0cmlidXRlX18oKGFsaWduZWQoYnl0
ZV9hbGlnbm1lbnQpKSkKKyNlbHNlCisjZGVmaW5lIEFMSUdOQVMoYnl0ZV9hbGlnbm1lbnQpCisj
ZW5kaWYKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEFMSUdOQVMoOCkga051bGxbc2l6ZW9m
KFZhbHVlKV0gPSB7IDAgfTsKK2NvbnN0IHVuc2lnbmVkIGNoYXImIGtOdWxsUmVmID0ga051bGxb
MF07Citjb25zdCBWYWx1ZSYgVmFsdWU6Om51bGwgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFZh
bHVlJj4oa051bGxSZWYpOworY29uc3QgVmFsdWUmIFZhbHVlOjpudWxsUmVmID0gbnVsbDsKKwor
Y29uc3QgSW50IFZhbHVlOjptaW5JbnQgPSBJbnQofihVSW50KC0xKSAvIDIpKTsKK2NvbnN0IElu
dCBWYWx1ZTo6bWF4SW50ID0gSW50KFVJbnQoLTEpIC8gMik7Citjb25zdCBVSW50IFZhbHVlOjpt
YXhVSW50ID0gVUludCgtMSk7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK2NvbnN0IElu
dDY0IFZhbHVlOjptaW5JbnQ2NCA9IEludDY0KH4oVUludDY0KC0xKSAvIDIpKTsKK2NvbnN0IElu
dDY0IFZhbHVlOjptYXhJbnQ2NCA9IEludDY0KFVJbnQ2NCgtMSkgLyAyKTsKK2NvbnN0IFVJbnQ2
NCBWYWx1ZTo6bWF4VUludDY0ID0gVUludDY0KC0xKTsKKy8vIFRoZSBjb25zdGFudCBpcyBoYXJk
LWNvZGVkIGJlY2F1c2Ugc29tZSBjb21waWxlciBoYXZlIHRyb3VibGUKKy8vIGNvbnZlcnRpbmcg
VmFsdWU6Om1heFVJbnQ2NCB0byBhIGRvdWJsZSBjb3JyZWN0bHkgKEFJWC94bEMpLgorLy8gQXNz
dW1lcyB0aGF0IFVJbnQ2NCBpcyBhIDY0IGJpdHMgaW50ZWdlci4KK3N0YXRpYyBjb25zdCBkb3Vi
bGUgbWF4VUludDY0QXNEb3VibGUgPSAxODQ0Njc0NDA3MzcwOTU1MTYxNS4wOworI2VuZGlmIC8v
IGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCitjb25zdCBMYXJnZXN0SW50IFZhbHVlOjptaW5MYXJn
ZXN0SW50ID0gTGFyZ2VzdEludCh+KExhcmdlc3RVSW50KC0xKSAvIDIpKTsKK2NvbnN0IExhcmdl
c3RJbnQgVmFsdWU6Om1heExhcmdlc3RJbnQgPSBMYXJnZXN0SW50KExhcmdlc3RVSW50KC0xKSAv
IDIpOworY29uc3QgTGFyZ2VzdFVJbnQgVmFsdWU6Om1heExhcmdlc3RVSW50ID0gTGFyZ2VzdFVJ
bnQoLTEpOworCisjaWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04p
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK3N0YXRpYyBpbmxpbmUgYm9vbCBJ
blJhbmdlKGRvdWJsZSBkLCBUIG1pbiwgVSBtYXgpIHsKKyAgcmV0dXJuIGQgPj0gbWluICYmIGQg
PD0gbWF4OworfQorI2Vsc2UgIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9D
T05WRVJTSU9OKQorc3RhdGljIGlubGluZSBkb3VibGUgaW50ZWdlclRvRG91YmxlKEpzb246OlVJ
bnQ2NCB2YWx1ZSkgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihJbnQ2NCh2YWx1ZSAv
IDIpKSAqIDIuMCArIEludDY0KHZhbHVlICYgMSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PiBzdGF0aWMgaW5saW5lIGRvdWJsZSBpbnRlZ2VyVG9Eb3VibGUoVCB2YWx1ZSkgeworICByZXR1
cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPgorc3RhdGljIGlubGluZSBib29sIEluUmFuZ2UoZG91YmxlIGQsIFQgbWlu
LCBVIG1heCkgeworICByZXR1cm4gZCA+PSBpbnRlZ2VyVG9Eb3VibGUobWluKSAmJiBkIDw9IGlu
dGVnZXJUb0RvdWJsZShtYXgpOworfQorI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05fVVNFX0lO
VDY0X0RPVUJMRV9DT05WRVJTSU9OKQorCisvKiogRHVwbGljYXRlcyB0aGUgc3BlY2lmaWVkIHN0
cmluZyB2YWx1ZS4KKyAqIEBwYXJhbSB2YWx1ZSBQb2ludGVyIHRvIHRoZSBzdHJpbmcgdG8gZHVw
bGljYXRlLiBNdXN0IGJlIHplcm8tdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgIGxlbmd0
aCBpcyAidW5rbm93biIuCisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgdmFsdWUuIGlm
IGVxdWFscyB0byB1bmtub3duLCB0aGVuIGl0IHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgY29t
cHV0ZWQgdXNpbmcgc3RybGVuKHZhbHVlKS4KKyAqIEByZXR1cm4gUG9pbnRlciBvbiB0aGUgZHVw
bGljYXRlIGluc3RhbmNlIG9mIHN0cmluZy4KKyAqLworc3RhdGljIGlubGluZSBjaGFyKiBkdXBs
aWNhdGVTdHJpbmdWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCkgeworICAvLyBBdm9pZCBhbiBpbnRl
Z2VyIG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGluZyBsZW5n
dGgKKyAgLy8gdG8gYSBzYW5lIHZhbHVlLgorICBpZiAobGVuZ3RoID49IChzaXplX3QpVmFsdWU6
Om1heEludCkKKyAgICBsZW5ndGggPSBWYWx1ZTo6bWF4SW50IC0gMTsKKworICBjaGFyKiBuZXdT
dHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKGxlbmd0aCArIDEpKTsKKyAgaWYgKG5l
d1N0cmluZyA9PSBOVUxMKSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoCisgICAgICAgICJpbiBK
c29uOjpWYWx1ZTo6ZHVwbGljYXRlU3RyaW5nVmFsdWUoKTogIgorICAgICAgICAiRmFpbGVkIHRv
IGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsKKyAgfQorICBtZW1jcHkobmV3U3RyaW5n
LCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3RyaW5nW2xlbmd0aF0gPSAwOworICByZXR1cm4gbmV3
U3RyaW5nOworfQorCisvKiBSZWNvcmQgdGhlIGxlbmd0aCBhcyBhIHByZWZpeC4KKyAqLworc3Rh
dGljIGlubGluZSBjaGFyKiBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgKKyAgICBjb25z
dCBjaGFyKiB2YWx1ZSwKKyAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoKQoreworICAvLyBBdm9pZCBh
biBpbnRlZ2VyIG92ZXJmbG93IGluIHRoZSBjYWxsIHRvIG1hbGxvYyBiZWxvdyBieSBsaW1pdGlu
ZyBsZW5ndGgKKyAgLy8gdG8gYSBzYW5lIHZhbHVlLgorICBKU09OX0FTU0VSVF9NRVNTQUdFKGxl
bmd0aCA8PSAodW5zaWduZWQpVmFsdWU6Om1heEludCAtIHNpemVvZih1bnNpZ25lZCkgLSAxVSwK
KyAgICAgICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZp
eFN0cmluZ1ZhbHVlKCk6ICIKKyAgICAgICAgICAgICAgICAgICAgICAibGVuZ3RoIHRvbyBiaWcg
Zm9yIHByZWZpeGluZyIpOworICB1bnNpZ25lZCBhY3R1YWxMZW5ndGggPSBsZW5ndGggKyBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oc2l6ZW9mKHVuc2lnbmVkKSkgKyAxVTsKKyAgY2hhciogbmV3U3Ry
aW5nID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhhY3R1YWxMZW5ndGgpKTsKKyAgaWYgKG5l
d1N0cmluZyA9PSAwKSB7CisgICAgdGhyb3dSdW50aW1lRXJyb3IoCisgICAgICAgICJpbiBKc29u
OjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogIgorICAgICAgICAiRmFp
bGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIiKTsKKyAgfQorICAqcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCo+KG5ld1N0cmluZykgPSBsZW5ndGg7CisgIG1lbWNweShuZXdTdHJp
bmcgKyBzaXplb2YodW5zaWduZWQpLCB2YWx1ZSwgbGVuZ3RoKTsKKyAgbmV3U3RyaW5nW2FjdHVh
bExlbmd0aCAtIDFVXSA9IDA7IC8vIHRvIGF2b2lkIGJ1ZmZlciBvdmVyLXJ1biBhY2NpZGVudHMg
YnkgdXNlcnMgbGF0ZXIKKyAgcmV0dXJuIG5ld1N0cmluZzsKK30KK2lubGluZSBzdGF0aWMgdm9p
ZCBkZWNvZGVQcmVmaXhlZFN0cmluZygKKyAgICBib29sIGlzUHJlZml4ZWQsIGNoYXIgY29uc3Qq
IHByZWZpeGVkLAorICAgIHVuc2lnbmVkKiBsZW5ndGgsIGNoYXIgY29uc3QqKiB2YWx1ZSkKK3sK
KyAgaWYgKCFpc1ByZWZpeGVkKSB7CisgICAgKmxlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdHJsZW4ocHJlZml4ZWQpKTsKKyAgICAqdmFsdWUgPSBwcmVmaXhlZDsKKyAgfSBlbHNlIHsK
KyAgICAqbGVuZ3RoID0gKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY29uc3QqPihwcmVmaXhl
ZCk7CisgICAgKnZhbHVlID0gcHJlZml4ZWQgKyBzaXplb2YodW5zaWduZWQpOworICB9Cit9Cisv
KiogRnJlZSB0aGUgc3RyaW5nIGR1cGxpY2F0ZWQgYnkgZHVwbGljYXRlU3RyaW5nVmFsdWUoKS9k
dXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQg
cmVsZWFzZVN0cmluZ1ZhbHVlKGNoYXIqIHZhbHVlKSB7IGZyZWUodmFsdWUpOyB9CisKK30gLy8g
bmFtZXNwYWNlIEpzb24KKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LworLy8gVmFsdWVJbnRlcm5hbHMuLi4KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKyNpZiAhZGVmaW5lZChKU09OX0lTX0FNQUxHQU1BVElPTikKKworI2luY2x1ZGUg
Impzb25fdmFsdWVpdGVyYXRvci5pbmwiCisjZW5kaWYgLy8gaWYgIWRlZmluZWQoSlNPTl9JU19B
TUFMR0FNQVRJT04pCisKK25hbWVzcGFjZSBKc29uIHsKKworRXhjZXB0aW9uOjpFeGNlcHRpb24o
c3RkOjpzdHJpbmcgY29uc3QmIG1zZykKKyAgOiBtc2dfKG1zZykKK3t9CitFeGNlcHRpb246On5F
eGNlcHRpb24oKSB0aHJvdygpCit7fQorY2hhciBjb25zdCogRXhjZXB0aW9uOjp3aGF0KCkgY29u
c3QgdGhyb3coKQoreworICByZXR1cm4gbXNnXy5jX3N0cigpOworfQorUnVudGltZUVycm9yOjpS
dW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKKyAgOiBFeGNlcHRpb24obXNnKQor
e30KK0xvZ2ljRXJyb3I6OkxvZ2ljRXJyb3Ioc3RkOjpzdHJpbmcgY29uc3QmIG1zZykKKyAgOiBF
eGNlcHRpb24obXNnKQore30KK3ZvaWQgdGhyb3dSdW50aW1lRXJyb3Ioc3RkOjpzdHJpbmcgY29u
c3QmIG1zZykKK3sKKyAgdGhyb3cgUnVudGltZUVycm9yKG1zZyk7Cit9Cit2b2lkIHRocm93TG9n
aWNFcnJvcihzdGQ6OnN0cmluZyBjb25zdCYgbXNnKQoreworICB0aHJvdyBMb2dpY0Vycm9yKG1z
Zyk7Cit9CisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNs
YXNzIFZhbHVlOjpDb21tZW50SW5mbworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLworCitWYWx1ZTo6Q29tbWVudEluZm86OkNvbW1lbnRJbmZvKCkgOiBjb21tZW50Xygw
KSB7fQorCitWYWx1ZTo6Q29tbWVudEluZm86On5Db21tZW50SW5mbygpIHsKKyAgaWYgKGNvbW1l
bnRfKQorICAgIHJlbGVhc2VTdHJpbmdWYWx1ZShjb21tZW50Xyk7Cit9CisKK3ZvaWQgVmFsdWU6
OkNvbW1lbnRJbmZvOjpzZXRDb21tZW50KGNvbnN0IGNoYXIqIHRleHQsIHNpemVfdCBsZW4pIHsK
KyAgaWYgKGNvbW1lbnRfKSB7CisgICAgcmVsZWFzZVN0cmluZ1ZhbHVlKGNvbW1lbnRfKTsKKyAg
ICBjb21tZW50XyA9IDA7CisgIH0KKyAgSlNPTl9BU1NFUlQodGV4dCAhPSAwKTsKKyAgSlNPTl9B
U1NFUlRfTUVTU0FHRSgKKyAgICAgIHRleHRbMF0gPT0gJ1wwJyB8fCB0ZXh0WzBdID09ICcvJywK
KyAgICAgICJpbiBKc29uOjpWYWx1ZTo6c2V0Q29tbWVudCgpOiBDb21tZW50cyBtdXN0IHN0YXJ0
IHdpdGggLyIpOworICAvLyBJdCBzZWVtcyB0aGF0IC8qKi8gc3R5bGUgY29tbWVudHMgYXJlIGFj
Y2VwdGFibGUgYXMgd2VsbC4KKyAgY29tbWVudF8gPSBkdXBsaWNhdGVTdHJpbmdWYWx1ZSh0ZXh0
LCBsZW4pOworfQorCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv
LyBjbGFzcyBWYWx1ZTo6Q1pTdHJpbmcKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworLy8gTm90ZXM6IHBvbGljeV8gaW5kaWNhdGVzIGlmIHRoZSBzdHJpbmcgd2Fz
IGFsbG9jYXRlZCB3aGVuCisvLyBhIHN0cmluZyBpcyBzdG9yZWQuCisKK1ZhbHVlOjpDWlN0cmlu
Zzo6Q1pTdHJpbmcoQXJyYXlJbmRleCBhaW5kZXgpIDogY3N0cl8oMCksIGluZGV4XyhhaW5kZXgp
IHt9CisKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoY2hhciBjb25zdCogc3RyLCB1bnNpZ25l
ZCB1bGVuZ3RoLCBEdXBsaWNhdGlvblBvbGljeSBhbGxvY2F0ZSkKKyAgICA6IGNzdHJfKHN0cikg
eworICAvLyBhbGxvY2F0ZSAhPSBkdXBsaWNhdGUKKyAgc3RvcmFnZV8ucG9saWN5XyA9IGFsbG9j
YXRlICYgMHgzOworICBzdG9yYWdlXy5sZW5ndGhfID0gdWxlbmd0aCAmIDB4M0ZGRkZGRkY7Cit9
CisKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoY29uc3QgQ1pTdHJpbmcmIG90aGVyKQorICAg
IDogY3N0cl8ob3RoZXIuc3RvcmFnZV8ucG9saWN5XyAhPSBub0R1cGxpY2F0aW9uICYmIG90aGVy
LmNzdHJfICE9IDAKKyAgICAgICAgICAgICAgICA/IGR1cGxpY2F0ZVN0cmluZ1ZhbHVlKG90aGVy
LmNzdHJfLCBvdGhlci5zdG9yYWdlXy5sZW5ndGhfKQorICAgICAgICAgICAgICAgIDogb3RoZXIu
Y3N0cl8pIHsKKyAgc3RvcmFnZV8ucG9saWN5XyA9IChvdGhlci5jc3RyXworICAgICAgICAgICAg
ICAgICA/IChzdGF0aWNfY2FzdDxEdXBsaWNhdGlvblBvbGljeT4ob3RoZXIuc3RvcmFnZV8ucG9s
aWN5XykgPT0gbm9EdXBsaWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgPyBub0R1cGxpY2F0
aW9uIDogZHVwbGljYXRlKQorICAgICAgICAgICAgICAgICA6IHN0YXRpY19jYXN0PER1cGxpY2F0
aW9uUG9saWN5PihvdGhlci5zdG9yYWdlXy5wb2xpY3lfKSk7CisgIHN0b3JhZ2VfLmxlbmd0aF8g
PSBvdGhlci5zdG9yYWdlXy5sZW5ndGhfOworfQorCisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVS
RU5DRVMKK1ZhbHVlOjpDWlN0cmluZzo6Q1pTdHJpbmcoQ1pTdHJpbmcmJiBvdGhlcikKKyAgOiBj
c3RyXyhvdGhlci5jc3RyXyksIGluZGV4XyhvdGhlci5pbmRleF8pIHsKKyAgb3RoZXIuY3N0cl8g
PSBudWxscHRyOworfQorI2VuZGlmCisKK1ZhbHVlOjpDWlN0cmluZzo6fkNaU3RyaW5nKCkgewor
ICBpZiAoY3N0cl8gJiYgc3RvcmFnZV8ucG9saWN5XyA9PSBkdXBsaWNhdGUpCisgICAgcmVsZWFz
ZVN0cmluZ1ZhbHVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGNzdHJfKSk7Cit9CisKK3ZvaWQgVmFsdWU6
OkNaU3RyaW5nOjpzd2FwKENaU3RyaW5nJiBvdGhlcikgeworICBzdGQ6OnN3YXAoY3N0cl8sIG90
aGVyLmNzdHJfKTsKKyAgc3RkOjpzd2FwKGluZGV4Xywgb3RoZXIuaW5kZXhfKTsKK30KKworVmFs
dWU6OkNaU3RyaW5nJiBWYWx1ZTo6Q1pTdHJpbmc6Om9wZXJhdG9yPShDWlN0cmluZyBvdGhlcikg
eworICBzd2FwKG90aGVyKTsKKyAgcmV0dXJuICp0aGlzOworfQorCitib29sIFZhbHVlOjpDWlN0
cmluZzo6b3BlcmF0b3I8KGNvbnN0IENaU3RyaW5nJiBvdGhlcikgY29uc3QgeworICBpZiAoIWNz
dHJfKSByZXR1cm4gaW5kZXhfIDwgb3RoZXIuaW5kZXhfOworICAvL3JldHVybiBzdHJjbXAoY3N0
cl8sIG90aGVyLmNzdHJfKSA8IDA7CisgIC8vIEFzc3VtZSBib3RoIGFyZSBzdHJpbmdzLgorICB1
bnNpZ25lZCB0aGlzX2xlbiA9IHRoaXMtPnN0b3JhZ2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG90
aGVyX2xlbiA9IG90aGVyLnN0b3JhZ2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG1pbl9sZW4gPSBz
dGQ6Om1pbih0aGlzX2xlbiwgb3RoZXJfbGVuKTsKKyAgaW50IGNvbXAgPSBtZW1jbXAodGhpcy0+
Y3N0cl8sIG90aGVyLmNzdHJfLCBtaW5fbGVuKTsKKyAgaWYgKGNvbXAgPCAwKSByZXR1cm4gdHJ1
ZTsKKyAgaWYgKGNvbXAgPiAwKSByZXR1cm4gZmFsc2U7CisgIHJldHVybiAodGhpc19sZW4gPCBv
dGhlcl9sZW4pOworfQorCitib29sIFZhbHVlOjpDWlN0cmluZzo6b3BlcmF0b3I9PShjb25zdCBD
WlN0cmluZyYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCFjc3RyXykgcmV0dXJuIGluZGV4XyA9PSBv
dGhlci5pbmRleF87CisgIC8vcmV0dXJuIHN0cmNtcChjc3RyXywgb3RoZXIuY3N0cl8pID09IDA7
CisgIC8vIEFzc3VtZSBib3RoIGFyZSBzdHJpbmdzLgorICB1bnNpZ25lZCB0aGlzX2xlbiA9IHRo
aXMtPnN0b3JhZ2VfLmxlbmd0aF87CisgIHVuc2lnbmVkIG90aGVyX2xlbiA9IG90aGVyLnN0b3Jh
Z2VfLmxlbmd0aF87CisgIGlmICh0aGlzX2xlbiAhPSBvdGhlcl9sZW4pIHJldHVybiBmYWxzZTsK
KyAgaW50IGNvbXAgPSBtZW1jbXAodGhpcy0+Y3N0cl8sIG90aGVyLmNzdHJfLCB0aGlzX2xlbik7
CisgIHJldHVybiBjb21wID09IDA7Cit9CisKK0FycmF5SW5kZXggVmFsdWU6OkNaU3RyaW5nOjpp
bmRleCgpIGNvbnN0IHsgcmV0dXJuIGluZGV4XzsgfQorCisvL2NvbnN0IGNoYXIqIFZhbHVlOjpD
WlN0cmluZzo6Y19zdHIoKSBjb25zdCB7IHJldHVybiBjc3RyXzsgfQorY29uc3QgY2hhciogVmFs
dWU6OkNaU3RyaW5nOjpkYXRhKCkgY29uc3QgeyByZXR1cm4gY3N0cl87IH0KK3Vuc2lnbmVkIFZh
bHVlOjpDWlN0cmluZzo6bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gc3RvcmFnZV8ubGVuZ3RoXzsg
fQorYm9vbCBWYWx1ZTo6Q1pTdHJpbmc6OmlzU3RhdGljU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
c3RvcmFnZV8ucG9saWN5XyA9PSBub0R1cGxpY2F0aW9uOyB9CisKKy8vIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8g
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIGNsYXNzIFZhbHVlOjpWYWx1ZQorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiEgXGludGVybmFsIERlZmF1bHQg
Y29uc3RydWN0b3IgaW5pdGlhbGl6YXRpb24gbXVzdCBiZSBlcXVpdmFsZW50IHRvOgorICogbWVt
c2V0KCB0aGlzLCAwLCBzaXplb2YoVmFsdWUpICkKKyAqIFRoaXMgb3B0aW1pemF0aW9uIGlzIHVz
ZWQgaW4gVmFsdWVJbnRlcm5hbE1hcCBmYXN0IGFsbG9jYXRvci4KKyAqLworVmFsdWU6OlZhbHVl
KFZhbHVlVHlwZSB2dHlwZSkgeworICBpbml0QmFzaWModnR5cGUpOworICBzd2l0Y2ggKHZ0eXBl
KSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICBj
YXNlIHVpbnRWYWx1ZToKKyAgICB2YWx1ZV8uaW50XyA9IDA7CisgICAgYnJlYWs7CisgIGNhc2Ug
cmVhbFZhbHVlOgorICAgIHZhbHVlXy5yZWFsXyA9IDAuMDsKKyAgICBicmVhazsKKyAgY2FzZSBz
dHJpbmdWYWx1ZToKKyAgICB2YWx1ZV8uc3RyaW5nXyA9IDA7CisgICAgYnJlYWs7CisgIGNhc2Ug
YXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXyA9IG5ldyBP
YmplY3RWYWx1ZXMoKTsKKyAgICBicmVhazsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgdmFs
dWVfLmJvb2xfID0gZmFsc2U7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NF
UlRfVU5SRUFDSEFCTEU7CisgIH0KK30KKworVmFsdWU6OlZhbHVlKEludCB2YWx1ZSkgeworICBp
bml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8uaW50XyA9IHZhbHVlOworfQorCitWYWx1ZTo6
VmFsdWUoVUludCB2YWx1ZSkgeworICBpbml0QmFzaWModWludFZhbHVlKTsKKyAgdmFsdWVfLnVp
bnRfID0gdmFsdWU7Cit9CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKK1ZhbHVlOjpWYWx1
ZShJbnQ2NCB2YWx1ZSkgeworICBpbml0QmFzaWMoaW50VmFsdWUpOworICB2YWx1ZV8uaW50XyA9
IHZhbHVlOworfQorVmFsdWU6OlZhbHVlKFVJbnQ2NCB2YWx1ZSkgeworICBpbml0QmFzaWModWlu
dFZhbHVlKTsKKyAgdmFsdWVfLnVpbnRfID0gdmFsdWU7Cit9CisjZW5kaWYgLy8gZGVmaW5lZChK
U09OX0hBU19JTlQ2NCkKKworVmFsdWU6OlZhbHVlKGRvdWJsZSB2YWx1ZSkgeworICBpbml0QmFz
aWMocmVhbFZhbHVlKTsKKyAgdmFsdWVfLnJlYWxfID0gdmFsdWU7Cit9CisKK1ZhbHVlOjpWYWx1
ZShjb25zdCBjaGFyKiB2YWx1ZSkgeworICBpbml0QmFzaWMoc3RyaW5nVmFsdWUsIHRydWUpOwor
ICB2YWx1ZV8uc3RyaW5nXyA9IGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHZhbHVlLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RybGVuKHZhbHVlKSkpOworfQorCitWYWx1ZTo6VmFsdWUo
Y29uc3QgY2hhciogYmVnaW5WYWx1ZSwgY29uc3QgY2hhciogZW5kVmFsdWUpIHsKKyAgaW5pdEJh
c2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsKKyAgdmFsdWVfLnN0cmluZ18gPQorICAgICAgZHVwbGlj
YXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoYmVnaW5WYWx1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGVuZFZhbHVlIC0gYmVnaW5WYWx1ZSkpOworfQorCitWYWx1ZTo6VmFsdWUoY29uc3Qgc3RkOjpz
dHJpbmcmIHZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdWYWx1ZSwgdHJ1ZSk7CisgIHZhbHVl
Xy5zdHJpbmdfID0KKyAgICAgIGR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKHZhbHVlLmRh
dGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlLmxlbmd0aCgpKSk7Cit9CisKK1ZhbHVl
OjpWYWx1ZShjb25zdCBTdGF0aWNTdHJpbmcmIHZhbHVlKSB7CisgIGluaXRCYXNpYyhzdHJpbmdW
YWx1ZSk7CisgIHZhbHVlXy5zdHJpbmdfID0gY29uc3RfY2FzdDxjaGFyKj4odmFsdWUuY19zdHIo
KSk7Cit9CisKKyNpZmRlZiBKU09OX1VTRV9DUFBUTAorVmFsdWU6OlZhbHVlKGNvbnN0IENwcFRM
OjpDb25zdFN0cmluZyYgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKHN0cmluZ1ZhbHVlLCB0cnVlKTsK
KyAgdmFsdWVfLnN0cmluZ18gPSBkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSh2YWx1ZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlLmxlbmd0aCgpKSk7Cit9CisjZW5kaWYKKworVmFs
dWU6OlZhbHVlKGJvb2wgdmFsdWUpIHsKKyAgaW5pdEJhc2ljKGJvb2xlYW5WYWx1ZSk7CisgIHZh
bHVlXy5ib29sXyA9IHZhbHVlOworfQorCitWYWx1ZTo6VmFsdWUoVmFsdWUgY29uc3QmIG90aGVy
KQorICAgIDogdHlwZV8ob3RoZXIudHlwZV8pLCBhbGxvY2F0ZWRfKGZhbHNlKQorICAgICAgLAor
ICAgICAgY29tbWVudHNfKG51bGxwdHIpLCBkZWZhdWx0X3ZhbHVlXyhudWxscHRyKSwgc3RhcnRf
KG90aGVyLnN0YXJ0XyksIGxpbWl0XyhvdGhlci5saW1pdF8pCit7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgIGNhc2UgaW50VmFsdWU6CisgIGNhc2UgdWludFZhbHVl
OgorICBjYXNlIHJlYWxWYWx1ZToKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgdmFsdWVfID0g
b3RoZXIudmFsdWVfOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIGlmIChv
dGhlci52YWx1ZV8uc3RyaW5nXyAmJiBvdGhlci5hbGxvY2F0ZWRfKSB7CisgICAgICB1bnNpZ25l
ZCBsZW47CisgICAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgICBkZWNvZGVQcmVmaXhlZFN0cmlu
ZyhvdGhlci5hbGxvY2F0ZWRfLCBvdGhlci52YWx1ZV8uc3RyaW5nXywKKyAgICAgICAgICAmbGVu
LCAmc3RyKTsKKyAgICAgIHZhbHVlXy5zdHJpbmdfID0gZHVwbGljYXRlQW5kUHJlZml4U3RyaW5n
VmFsdWUoc3RyLCBsZW4pOworICAgICAgYWxsb2NhdGVkXyA9IHRydWU7CisgICAgfSBlbHNlIHsK
KyAgICAgIHZhbHVlXy5zdHJpbmdfID0gb3RoZXIudmFsdWVfLnN0cmluZ187CisgICAgICBhbGxv
Y2F0ZWRfID0gZmFsc2U7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIGFycmF5VmFsdWU6Cisg
IGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgdmFsdWVfLm1hcF8gPSBuZXcgT2JqZWN0VmFsdWVzKCpv
dGhlci52YWx1ZV8ubWFwXyk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgSlNPTl9BU1NF
UlRfVU5SRUFDSEFCTEU7CisgIH0KKyAgaWYgKG90aGVyLmNvbW1lbnRzXykgeworICAgIGNvbW1l
bnRzXyA9IG5ldyBDb21tZW50SW5mb1tudW1iZXJPZkNvbW1lbnRQbGFjZW1lbnRdOworICAgIGZv
ciAoaW50IGNvbW1lbnQgPSAwOyBjb21tZW50IDwgbnVtYmVyT2ZDb21tZW50UGxhY2VtZW50OyAr
K2NvbW1lbnQpIHsKKyAgICAgIGNvbnN0IENvbW1lbnRJbmZvJiBvdGhlckNvbW1lbnQgPSBvdGhl
ci5jb21tZW50c19bY29tbWVudF07CisgICAgICBpZiAob3RoZXJDb21tZW50LmNvbW1lbnRfKQor
ICAgICAgICBjb21tZW50c19bY29tbWVudF0uc2V0Q29tbWVudCgKKyAgICAgICAgICAgIG90aGVy
Q29tbWVudC5jb21tZW50Xywgc3RybGVuKG90aGVyQ29tbWVudC5jb21tZW50XykpOworICAgIH0K
KyAgfQorCisgIGlmICggb3RoZXIuZGVmYXVsdF92YWx1ZV8gKQorICB7CisgICAgICAgICBkZWZh
dWx0X3ZhbHVlXyA9IG5ldyBWYWx1ZSggKm90aGVyLmRlZmF1bHRfdmFsdWVfICk7CisgIH0KKwor
fQorCisjaWYgSlNPTl9IQVNfUlZBTFVFX1JFRkVSRU5DRVMKKy8vIE1vdmUgY29uc3RydWN0b3IK
K1ZhbHVlOjpWYWx1ZShWYWx1ZSYmIG90aGVyKSB7CisgIGluaXRCYXNpYyhudWxsVmFsdWUpOwor
ICBzd2FwKG90aGVyKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6flZhbHVlKCkgeworICBzd2l0Y2gg
KHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVp
bnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIGJy
ZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICAgIGlmIChhbGxvY2F0ZWRfKQorICAgICAgcmVs
ZWFzZVN0cmluZ1ZhbHVlKHZhbHVlXy5zdHJpbmdfKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJh
eVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGRlbGV0ZSB2YWx1ZV8ubWFwXzsKKyAg
ICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQor
CisgIGlmIChjb21tZW50c18pCisgICAgZGVsZXRlW10gY29tbWVudHNfOworCisgIGlmICggZGVm
YXVsdF92YWx1ZV8pCisgICAgICAgICBkZWxldGUgZGVmYXVsdF92YWx1ZV87Cit9CisKK1ZhbHVl
JiBWYWx1ZTo6b3BlcmF0b3I9KFZhbHVlIG90aGVyKSB7CisgIHN3YXAob3RoZXIpOworICByZXR1
cm4gKnRoaXM7Cit9CisKK3ZvaWQgVmFsdWU6OnN3YXBQYXlsb2FkKFZhbHVlJiBvdGhlcikgewor
ICBWYWx1ZVR5cGUgdGVtcCA9IHR5cGVfOworICB0eXBlXyA9IG90aGVyLnR5cGVfOworICBvdGhl
ci50eXBlXyA9IHRlbXA7CisgIHN0ZDo6c3dhcCh2YWx1ZV8sIG90aGVyLnZhbHVlXyk7CisgIGlu
dCB0ZW1wMiA9IGFsbG9jYXRlZF87CisgIGFsbG9jYXRlZF8gPSBvdGhlci5hbGxvY2F0ZWRfOwor
ICBvdGhlci5hbGxvY2F0ZWRfID0gdGVtcDIgJiAweDE7Cit9CisKK3ZvaWQgVmFsdWU6OnN3YXAo
VmFsdWUmIG90aGVyKSB7CisgIHN3YXBQYXlsb2FkKG90aGVyKTsKKyAgc3RkOjpzd2FwKGNvbW1l
bnRzXywgb3RoZXIuY29tbWVudHNfKTsKKyAgc3RkOjpzd2FwKGRlZmF1bHRfdmFsdWVfLCBvdGhl
ci5kZWZhdWx0X3ZhbHVlXyk7CisgIHN0ZDo6c3dhcChzdGFydF8sIG90aGVyLnN0YXJ0Xyk7Cisg
IHN0ZDo6c3dhcChsaW1pdF8sIG90aGVyLmxpbWl0Xyk7Cit9CisKK1ZhbHVlVHlwZSBWYWx1ZTo6
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGVfOyB9CisKK2ludCBWYWx1ZTo6Y29tcGFyZShjb25z
dCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgaWYgKCp0aGlzIDwgb3RoZXIpCisgICAgcmV0dXJu
IC0xOworICBpZiAoKnRoaXMgPiBvdGhlcikKKyAgICByZXR1cm4gMTsKKyAgcmV0dXJuIDA7Cit9
CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPChjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAg
aW50IHR5cGVEZWx0YSA9IHR5cGVfIC0gb3RoZXIudHlwZV87CisgIGlmICh0eXBlRGVsdGEpCisg
ICAgcmV0dXJuIHR5cGVEZWx0YSA8IDAgPyB0cnVlIDogZmFsc2U7CisgIHN3aXRjaCAodHlwZV8p
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIGZhbHNlOworICBjYXNlIGludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA8IG90aGVyLnZhbHVlXy5pbnRfOworICBjYXNlIHVp
bnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDwgb3RoZXIudmFsdWVfLnVpbnRfOwor
ICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfIDwgb3RoZXIudmFsdWVf
LnJlYWxfOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfIDwg
b3RoZXIudmFsdWVfLmJvb2xfOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgaWYgKCh2
YWx1ZV8uc3RyaW5nXyA9PSAwKSB8fCAob3RoZXIudmFsdWVfLnN0cmluZ18gPT0gMCkpIHsKKyAg
ICAgIGlmIChvdGhlci52YWx1ZV8uc3RyaW5nXykgcmV0dXJuIHRydWU7CisgICAgICBlbHNlIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgdW5zaWduZWQgdGhpc19sZW47CisgICAgdW5zaWduZWQg
b3RoZXJfbGVuOworICAgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICAgIGNoYXIgY29uc3QqIG90
aGVyX3N0cjsKKyAgICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5hbGxvY2F0ZWRfLCB0aGlz
LT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOworICAgIGRlY29kZVByZWZp
eGVkU3RyaW5nKG90aGVyLmFsbG9jYXRlZF8sIG90aGVyLnZhbHVlXy5zdHJpbmdfLCAmb3RoZXJf
bGVuLCAmb3RoZXJfc3RyKTsKKyAgICB1bnNpZ25lZCBtaW5fbGVuID0gc3RkOjptaW4odGhpc19s
ZW4sIG90aGVyX2xlbik7CisgICAgaW50IGNvbXAgPSBtZW1jbXAodGhpc19zdHIsIG90aGVyX3N0
ciwgbWluX2xlbik7CisgICAgaWYgKGNvbXAgPCAwKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29t
cCA+IDApIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gKHRoaXNfbGVuIDwgb3RoZXJfbGVuKTsK
KyAgfQorICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBpbnQg
ZGVsdGEgPSBpbnQodmFsdWVfLm1hcF8tPnNpemUoKSAtIG90aGVyLnZhbHVlXy5tYXBfLT5zaXpl
KCkpOworICAgIGlmIChkZWx0YSkKKyAgICAgIHJldHVybiBkZWx0YSA8IDA7CisgICAgcmV0dXJu
ICgqdmFsdWVfLm1hcF8pIDwgKCpvdGhlci52YWx1ZV8ubWFwXyk7CisgIH0KKyAgZGVmYXVsdDoK
KyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAgfQorICByZXR1cm4gZmFsc2U7IC8vIHVu
cmVhY2hhYmxlCit9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPD0oY29uc3QgVmFsdWUmIG90aGVy
KSBjb25zdCB7IHJldHVybiAhKG90aGVyIDwgKnRoaXMpOyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJh
dG9yPj0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzIDwgb3RoZXIp
OyB9CisKK2Jvb2wgVmFsdWU6Om9wZXJhdG9yPihjb25zdCBWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG90aGVyIDwgKnRoaXM7IH0KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBW
YWx1ZSYgb3RoZXIpIGNvbnN0IHsKKyAgLy8gaWYgKCB0eXBlXyAhPSBvdGhlci50eXBlXyApCisg
IC8vIEdDQyAyLjk1LjMgc2F5czoKKyAgLy8gYXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgYml0
LWZpZWxkIHN0cnVjdHVyZSBtZW1iZXIgYEpzb246OlZhbHVlOjp0eXBlXycKKyAgLy8gQmVhdHMg
bWUsIGJ1dCBhIHRlbXAgc29sdmVzIHRoZSBwcm9ibGVtLgorICBpbnQgdGVtcCA9IG90aGVyLnR5
cGVfOworICBpZiAodHlwZV8gIT0gdGVtcCkKKyAgICByZXR1cm4gZmFsc2U7CisgIHN3aXRjaCAo
dHlwZV8pIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIHRydWU7CisgIGNhc2UgaW50
VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5pbnRfID09IG90aGVyLnZhbHVlXy5pbnRfOworICBj
YXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfID09IG90aGVyLnZhbHVlXy51
aW50XzsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA9PSBvdGhl
ci52YWx1ZV8ucmVhbF87CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8u
Ym9vbF8gPT0gb3RoZXIudmFsdWVfLmJvb2xfOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7Cisg
ICAgaWYgKCh2YWx1ZV8uc3RyaW5nXyA9PSAwKSB8fCAob3RoZXIudmFsdWVfLnN0cmluZ18gPT0g
MCkpIHsKKyAgICAgIHJldHVybiAodmFsdWVfLnN0cmluZ18gPT0gb3RoZXIudmFsdWVfLnN0cmlu
Z18pOworICAgIH0KKyAgICB1bnNpZ25lZCB0aGlzX2xlbjsKKyAgICB1bnNpZ25lZCBvdGhlcl9s
ZW47CisgICAgY2hhciBjb25zdCogdGhpc19zdHI7CisgICAgY2hhciBjb25zdCogb3RoZXJfc3Ry
OworICAgIGRlY29kZVByZWZpeGVkU3RyaW5nKHRoaXMtPmFsbG9jYXRlZF8sIHRoaXMtPnZhbHVl
Xy5zdHJpbmdfLCAmdGhpc19sZW4sICZ0aGlzX3N0cik7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJp
bmcob3RoZXIuYWxsb2NhdGVkXywgb3RoZXIudmFsdWVfLnN0cmluZ18sICZvdGhlcl9sZW4sICZv
dGhlcl9zdHIpOworICAgIGlmICh0aGlzX2xlbiAhPSBvdGhlcl9sZW4pIHJldHVybiBmYWxzZTsK
KyAgICBpbnQgY29tcCA9IG1lbWNtcCh0aGlzX3N0ciwgb3RoZXJfc3RyLCB0aGlzX2xlbik7Cisg
ICAgcmV0dXJuIGNvbXAgPT0gMDsKKyAgfQorICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2Jq
ZWN0VmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5tYXBfLT5zaXplKCkgPT0gb3RoZXIudmFsdWVf
Lm1hcF8tPnNpemUoKSAmJgorICAgICAgICAgICAoKnZhbHVlXy5tYXBfKSA9PSAoKm90aGVyLnZh
bHVlXy5tYXBfKTsKKyAgZGVmYXVsdDoKKyAgICBKU09OX0FTU0VSVF9VTlJFQUNIQUJMRTsKKyAg
fQorICByZXR1cm4gZmFsc2U7IC8vIHVucmVhY2hhYmxlCit9CisKK2Jvb2wgVmFsdWU6Om9wZXJh
dG9yIT0oY29uc3QgVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVy
KTsgfQorCitjb25zdCBjaGFyKiBWYWx1ZTo6YXNDU3RyaW5nKCkgY29uc3QgeworICBKU09OX0FT
U0VSVF9NRVNTQUdFKHR5cGVfID09IHN0cmluZ1ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICJpbiBKc29uOjpWYWx1ZTo6YXNDU3RyaW5nKCk6IHJlcXVpcmVzIHN0cmluZ1ZhbHVlIik7Cisg
IGlmICh2YWx1ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gMDsKKyAgdW5zaWduZWQgdGhpc19sZW47
CisgIGNoYXIgY29uc3QqIHRoaXNfc3RyOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5h
bGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJnRoaXNfbGVuLCAmdGhpc19zdHIpOwor
ICByZXR1cm4gdGhpc19zdHI7Cit9CisKK2Jvb2wgVmFsdWU6OmdldFN0cmluZyhjaGFyIGNvbnN0
Kiogc3RyLCBjaGFyIGNvbnN0KiogY2VuZCkgY29uc3QgeworICBpZiAodHlwZV8gIT0gc3RyaW5n
VmFsdWUpIHJldHVybiBmYWxzZTsKKyAgaWYgKHZhbHVlXy5zdHJpbmdfID09IDApIHJldHVybiBm
YWxzZTsKKyAgdW5zaWduZWQgbGVuZ3RoOworICBkZWNvZGVQcmVmaXhlZFN0cmluZyh0aGlzLT5h
bGxvY2F0ZWRfLCB0aGlzLT52YWx1ZV8uc3RyaW5nXywgJmxlbmd0aCwgc3RyKTsKKyAgKmNlbmQg
PSAqc3RyICsgbGVuZ3RoOworICByZXR1cm4gdHJ1ZTsKK30KKworc3RkOjpzdHJpbmcgVmFsdWU6
OmFzU3RyaW5nKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVl
OgorICAgIHJldHVybiAiIjsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgeworICAgIGlmICh2YWx1
ZV8uc3RyaW5nXyA9PSAwKSByZXR1cm4gIiI7CisgICAgdW5zaWduZWQgdGhpc19sZW47CisgICAg
Y2hhciBjb25zdCogdGhpc19zdHI7CisgICAgZGVjb2RlUHJlZml4ZWRTdHJpbmcodGhpcy0+YWxs
b2NhdGVkXywgdGhpcy0+dmFsdWVfLnN0cmluZ18sICZ0aGlzX2xlbiwgJnRoaXNfc3RyKTsKKyAg
ICByZXR1cm4gc3RkOjpzdHJpbmcodGhpc19zdHIsIHRoaXNfbGVuKTsKKyAgfQorICBjYXNlIGJv
b2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gInRydWUiIDogImZhbHNlIjsK
KyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZV8uaW50Xyk7
CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy51aW50
Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHJldHVybiB2YWx1ZVRvU3RyaW5nKHZhbHVlXy5y
ZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZV8tPmFzU3RyaW5nKCk7CisgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuICIiOworICB9Cit9CisKKyNpZmRlZiBKU09OX1VT
RV9DUFBUTAorQ3BwVEw6OkNvbnN0U3RyaW5nIFZhbHVlOjphc0NvbnN0U3RyaW5nKCkgY29uc3Qg
eworICB1bnNpZ25lZCBsZW47CisgIGNoYXIgY29uc3QqIHN0cjsKKyAgZGVjb2RlUHJlZml4ZWRT
dHJpbmcoYWxsb2NhdGVkXywgdmFsdWVfLnN0cmluZ18sCisgICAgICAmbGVuLCAmc3RyKTsKKyAg
cmV0dXJuIENwcFRMOjpDb25zdFN0cmluZyhzdHIsIGxlbik7Cit9CisjZW5kaWYKKworVmFsdWU6
OkludCBWYWx1ZTo6YXNJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBp
bnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50KCksICJMYXJnZXN0SW50IG91
dCBvZiBJbnQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1
aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc0ludCgpLCAiTGFyZ2VzdFVJbnQg
b3V0IG9mIEludCByYW5nZSIpOworICAgIHJldHVybiBJbnQodmFsdWVfLnVpbnRfKTsKKyAgY2Fz
ZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdlKHZhbHVlXy5yZWFs
XywgbWluSW50LCBtYXhJbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQg
b2YgSW50IHJhbmdlIik7CisgICAgcmV0dXJuIEludCh2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51
bGxWYWx1ZToKKyAgICByZXR1cm4gMDsKKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcmV0dXJu
IHZhbHVlXy5ib29sXyA/IDEgOiAwOworICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0
X3ZhbHVlXyApCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0ludCgp
OworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICB9Cit9CisKK1Zh
bHVlOjpVSW50IFZhbHVlOjphc1VJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAg
Y2FzZSBpbnRWYWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzVUludCgpLCAiTGFyZ2Vz
dEludCBvdXQgb2YgVUludCByYW5nZSIpOworICAgIHJldHVybiBVSW50KHZhbHVlXy5pbnRfKTsK
KyAgY2FzZSB1aW50VmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShpc1VJbnQoKSwgIkxh
cmdlc3RVSW50IG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQodmFsdWVfLnVp
bnRfKTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgSlNPTl9BU1NFUlRfTUVTU0FHRShJblJhbmdl
KHZhbHVlXy5yZWFsXywgMCwgbWF4VUludCksCisgICAgICAgICAgICAgICAgICAgICAgICAiZG91
YmxlIG91dCBvZiBVSW50IHJhbmdlIik7CisgICAgcmV0dXJuIFVJbnQodmFsdWVfLnJlYWxfKTsK
KyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlm
ICggZGVmYXVsdF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVl
Xy0+YXNVSW50KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIDB1Owor
ICB9Cit9CisKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitWYWx1ZTo6SW50NjQgVmFs
dWU6OmFzSW50NjQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1
ZToKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAg
ICBKU09OX0FTU0VSVF9NRVNTQUdFKGlzSW50NjQoKSwgIkxhcmdlc3RVSW50IG91dCBvZiBJbnQ2
NCByYW5nZSIpOworICAgIHJldHVybiBJbnQ2NCh2YWx1ZV8udWludF8pOworICBjYXNlIHJlYWxW
YWx1ZToKKyAgICBKU09OX0FTU0VSVF9NRVNTQUdFKEluUmFuZ2UodmFsdWVfLnJlYWxfLCBtaW5J
bnQ2NCwgbWF4SW50NjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSBvdXQgb2Yg
SW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gSW50NjQodmFsdWVfLnJlYWxfKTsKKyAgY2FzZSBu
dWxsVmFsdWU6CisgICAgcmV0dXJuIDA7CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVy
biB2YWx1ZV8uYm9vbF8gPyAxIDogMDsKKyAgZGVmYXVsdDoKKyAgICAgICAgIGlmICggZGVmYXVs
dF92YWx1ZV8gKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNJbnQ2
NCgpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAwbDsKKyAgfQorfQor
CitWYWx1ZTo6VUludDY0IFZhbHVlOjphc1VJbnQ2NCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBl
XykgeworICBjYXNlIGludFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoaXNVSW50NjQo
KSwgIkxhcmdlc3RJbnQgb3V0IG9mIFVJbnQ2NCByYW5nZSIpOworICAgIHJldHVybiBVSW50NjQo
dmFsdWVfLmludF8pOworICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gVUludDY0KHZhbHVl
Xy51aW50Xyk7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIEpTT05fQVNTRVJUX01FU1NBR0UoSW5S
YW5nZSh2YWx1ZV8ucmVhbF8sIDAsIG1heFVJbnQ2NCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAiZG91YmxlIG91dCBvZiBVSW50NjQgcmFuZ2UiKTsKKyAgICByZXR1cm4gVUludDY0KHZhbHVl
Xy5yZWFsXyk7CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGJvb2xl
YW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMSA6IDA7CisgIGRlZmF1bHQ6Cisg
ICAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVm
YXVsdF92YWx1ZV8tPmFzVUludDY0KCk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmV0dXJuIDB1bDsKKyAgfQorfQorI2VuZGlmIC8vIGlmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQp
CisKK0xhcmdlc3RJbnQgVmFsdWU6OmFzTGFyZ2VzdEludCgpIGNvbnN0IHsKKyNpZiBkZWZpbmVk
KEpTT05fTk9fSU5UNjQpCisgIHJldHVybiBhc0ludCgpOworI2Vsc2UKKyAgcmV0dXJuIGFzSW50
NjQoKTsKKyNlbmRpZgorfQorCitMYXJnZXN0VUludCBWYWx1ZTo6YXNMYXJnZXN0VUludCgpIGNv
bnN0IHsKKyNpZiBkZWZpbmVkKEpTT05fTk9fSU5UNjQpCisgIHJldHVybiBhc1VJbnQoKTsKKyNl
bHNlCisgIHJldHVybiBhc1VJbnQ2NCgpOworI2VuZGlmCit9CisKK2RvdWJsZSBWYWx1ZTo6YXNE
b3VibGUoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZV8uaW50Xyk7CisgIGNhc2UgdWludFZh
bHVlOgorI2lmICFkZWZpbmVkKEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAg
IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlXy51aW50Xyk7CisjZWxzZSAgLy8gaWYg
IWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJuIGlu
dGVnZXJUb0RvdWJsZSh2YWx1ZV8udWludF8pOworI2VuZGlmIC8vIGlmICFkZWZpbmVkKEpTT05f
VVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICBjYXNlIHJlYWxWYWx1ZToKKyAgICByZXR1
cm4gdmFsdWVfLnJlYWxfOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1cm4gMC4wOworICBj
YXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8gMS4wIDogMC4wOwor
ICBkZWZhdWx0OgorICAgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0RvdWJsZSgpOworICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiAwLjA7CisgIH0KK30KKworZmxvYXQgVmFsdWU6OmFzRmxvYXQo
KSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlXy5pbnRfKTsKKyAgY2FzZSB1aW50VmFsdWU6Cisj
aWYgIWRlZmluZWQoSlNPTl9VU0VfSU5UNjRfRE9VQkxFX0NPTlZFUlNJT04pCisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZV8udWludF8pOworI2Vsc2UgIC8vIGlmICFkZWZpbmVk
KEpTT05fVVNFX0lOVDY0X0RPVUJMRV9DT05WRVJTSU9OKQorICAgIHJldHVybiBpbnRlZ2VyVG9E
b3VibGUodmFsdWVfLnVpbnRfKTsKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX1VTRV9JTlQ2
NF9ET1VCTEVfQ09OVkVSU0lPTikKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGZsb2F0Pih2YWx1ZV8ucmVhbF8pOworICBjYXNlIG51bGxWYWx1ZToKKyAgICByZXR1
cm4gMC4wOworICBjYXNlIGJvb2xlYW5WYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmJvb2xfID8g
MS4wZiA6IDAuMGY7CisgIGRlZmF1bHQ6CisgICAgICAgaWYgKCBkZWZhdWx0X3ZhbHVlXyApCisg
ICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlXy0+YXNGbG9hdCgpOworICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgcmV0dXJuIDAuMGY7CisgIH0KK30KKworYm9vbCBWYWx1ZTo6YXNC
b29sKCkgY29uc3QgeworICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYm9vbGVhblZhbHVlOgor
ICAgIHJldHVybiB2YWx1ZV8uYm9vbF87CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIHJldHVybiBm
YWxzZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPyB0cnVlIDog
ZmFsc2U7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPyB0cnVl
IDogZmFsc2U7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIC8vIFRoaXMgaXMga2luZCBvZiBzdHJh
bmdlLiBOb3QgcmVjb21tZW5kZWQuCisgICAgcmV0dXJuICh2YWx1ZV8ucmVhbF8gIT0gMC4wKSA/
IHRydWUgOiBmYWxzZTsKKyAgZGVmYXVsdDoKKyAgICAgICBpZiAoIGRlZmF1bHRfdmFsdWVfICkK
KyAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWVfLT5hc0Jvb2woKTsKKyAgICAgICBl
bHNlCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitib29sIFZhbHVlOjpp
c0NvbnZlcnRpYmxlVG8oVmFsdWVUeXBlIG90aGVyKSBjb25zdCB7CisgIHN3aXRjaCAob3RoZXIp
IHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcmV0dXJuIChpc051bWVyaWMoKSAmJiBhc0RvdWJs
ZSgpID09IDAuMCkgfHwKKyAgICAgICAgICAgKHR5cGVfID09IGJvb2xlYW5WYWx1ZSAmJiB2YWx1
ZV8uYm9vbF8gPT0gZmFsc2UpIHx8CisgICAgICAgICAgICh0eXBlXyA9PSBzdHJpbmdWYWx1ZSAm
JiBhc1N0cmluZygpID09ICIiKSB8fAorICAgICAgICAgICAodHlwZV8gPT0gYXJyYXlWYWx1ZSAm
JiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IDApIHx8CisgICAgICAgICAgICh0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSAmJiB2YWx1ZV8ubWFwXy0+c2l6ZSgpID09IDApIHx8CisgICAgICAgICAgIHR5cGVf
ID09IG51bGxWYWx1ZTsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gaXNJbnQoKSB8fAor
ICAgICAgICAgICAodHlwZV8gPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJlYWxfLCBt
aW5JbnQsIG1heEludCkpIHx8CisgICAgICAgICAgIHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0
eXBlXyA9PSBudWxsVmFsdWU7CisgIGNhc2UgdWludFZhbHVlOgorICAgIHJldHVybiBpc1VJbnQo
KSB8fAorICAgICAgICAgICAodHlwZV8gPT0gcmVhbFZhbHVlICYmIEluUmFuZ2UodmFsdWVfLnJl
YWxfLCAwLCBtYXhVSW50KSkgfHwKKyAgICAgICAgICAgdHlwZV8gPT0gYm9vbGVhblZhbHVlIHx8
IHR5cGVfID09IG51bGxWYWx1ZTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIGlzTnVt
ZXJpYygpIHx8IHR5cGVfID09IGJvb2xlYW5WYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7Cisg
IGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlXyA9PSBi
b29sZWFuVmFsdWUgfHwgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNlIHN0cmluZ1ZhbHVlOgor
ICAgIHJldHVybiBpc051bWVyaWMoKSB8fCB0eXBlXyA9PSBib29sZWFuVmFsdWUgfHwgdHlwZV8g
PT0gc3RyaW5nVmFsdWUgfHwKKyAgICAgICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlOworICBjYXNl
IGFycmF5VmFsdWU6CisgICAgcmV0dXJuIHR5cGVfID09IGFycmF5VmFsdWUgfHwgdHlwZV8gPT0g
bnVsbFZhbHVlOworICBjYXNlIG9iamVjdFZhbHVlOgorICAgIHJldHVybiB0eXBlXyA9PSBvYmpl
Y3RWYWx1ZSB8fCB0eXBlXyA9PSBudWxsVmFsdWU7CisgIH0KKyAgSlNPTl9BU1NFUlRfVU5SRUFD
SEFCTEU7CisgIHJldHVybiBmYWxzZTsKK30KKworLy8vIE51bWJlciBvZiB2YWx1ZXMgaW4gYXJy
YXkgb3Igb2JqZWN0CitBcnJheUluZGV4IFZhbHVlOjpzaXplKCkgY29uc3QgeworICBzd2l0Y2gg
KHR5cGVfKSB7CisgIGNhc2UgbnVsbFZhbHVlOgorICBjYXNlIGludFZhbHVlOgorICBjYXNlIHVp
bnRWYWx1ZToKKyAgY2FzZSByZWFsVmFsdWU6CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICBjYXNl
IHN0cmluZ1ZhbHVlOgorICAgIHJldHVybiAwOworICBjYXNlIGFycmF5VmFsdWU6IC8vIHNpemUg
b2YgdGhlIGFycmF5IGlzIGhpZ2hlc3QgaW5kZXggKyAxCisgICAgaWYgKCF2YWx1ZV8ubWFwXy0+
ZW1wdHkoKSkgeworICAgICAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdExhc3QgPSB2
YWx1ZV8ubWFwXy0+ZW5kKCk7CisgICAgICAtLWl0TGFzdDsKKyAgICAgIHJldHVybiAoKml0TGFz
dCkuZmlyc3QuaW5kZXgoKSArIDE7CisgICAgfQorICAgIHJldHVybiAwOworICBjYXNlIG9iamVj
dFZhbHVlOgorICAgIHJldHVybiBBcnJheUluZGV4KHZhbHVlXy5tYXBfLT5zaXplKCkpOworICB9
CisgIEpTT05fQVNTRVJUX1VOUkVBQ0hBQkxFOworICByZXR1cm4gMDsgLy8gdW5yZWFjaGFibGU7
Cit9CisKK2Jvb2wgVmFsdWU6OmVtcHR5KCkgY29uc3QgeworICBpZiAoaXNOdWxsKCkgfHwgaXNB
cnJheSgpIHx8IGlzT2JqZWN0KCkpCisgICAgcmV0dXJuIHNpemUoKSA9PSAwdTsKKyAgZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6b3BlcmF0b3IhKCkgY29uc3QgeyBy
ZXR1cm4gaXNOdWxsKCk7IH0KKwordm9pZCBWYWx1ZTo6Y2xlYXIoKSB7CisgIEpTT05fQVNTRVJU
X01FU1NBR0UodHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUgfHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAgICAg
ICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpjbGVhcigpOiByZXF1aXJlcyBjb21wbGV4IHZh
bHVlIik7CisgIHN0YXJ0XyA9IDA7CisgIGxpbWl0XyA9IDA7CisgIGRlbGV0ZSBkZWZhdWx0X3Zh
bHVlXzsKKyAgZGVmYXVsdF92YWx1ZV8gPSBudWxscHRyOworICBzd2l0Y2ggKHR5cGVfKSB7Cisg
IGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1ZToKKyAgICB2YWx1ZV8ubWFwXy0+
Y2xlYXIoKTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorfQorCit2
b2lkIFZhbHVlOjpyZXNpemUoQXJyYXlJbmRleCBuZXdTaXplKSB7CisgIEpTT05fQVNTRVJUX01F
U1NBR0UodHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUsCisgICAgICAg
ICAgICAgICAgICAgICAgImluIEpzb246OlZhbHVlOjpyZXNpemUoKTogcmVxdWlyZXMgYXJyYXlW
YWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgICp0aGlzID0gVmFsdWUoYXJy
YXlWYWx1ZSk7CisgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNpemUoKTsKKyAgaWYgKG5ld1NpemUg
PT0gMCkKKyAgICBjbGVhcigpOworICBlbHNlIGlmIChuZXdTaXplID4gb2xkU2l6ZSkKKyAgICAo
KnRoaXMpW25ld1NpemUgLSAxXTsKKyAgZWxzZSB7CisgICAgZm9yIChBcnJheUluZGV4IGluZGV4
ID0gbmV3U2l6ZTsgaW5kZXggPCBvbGRTaXplOyArK2luZGV4KSB7CisgICAgICB2YWx1ZV8ubWFw
Xy0+ZXJhc2UoaW5kZXgpOworICAgIH0KKyAgICBhc3NlcnQoc2l6ZSgpID09IG5ld1NpemUpOwor
ICB9Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4IGluZGV4KSB7Cisg
IEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAgICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8g
PT0gYXJyYXlWYWx1ZSwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUlu
ZGV4KTogcmVxdWlyZXMgYXJyYXlWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQor
ICAgICp0aGlzID0gVmFsdWUoYXJyYXlWYWx1ZSk7CisgIENaU3RyaW5nIGtleShpbmRleCk7Cisg
IE9iamVjdFZhbHVlczo6aXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+bG93ZXJfYm91bmQoa2V5
KTsKKyAgaWYgKGl0ICE9IHZhbHVlXy5tYXBfLT5lbmQoKSAmJiAoKml0KS5maXJzdCA9PSBrZXkp
CisgICAgcmV0dXJuICgqaXQpLnNlY29uZDsKKworICBPYmplY3RWYWx1ZXM6OnZhbHVlX3R5cGUg
ZGVmYXVsdFZhbHVlKGtleSwgbnVsbFJlZik7CisgIGl0ID0gdmFsdWVfLm1hcF8tPmluc2VydChp
dCwgZGVmYXVsdFZhbHVlKTsKKyAgcmV0dXJuICgqaXQpLnNlY29uZDsKK30KKworVmFsdWUmIFZh
bHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAg
ICAgaW5kZXggPj0gMCwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShpbnQgaW5k
ZXgpOiBpbmRleCBjYW5ub3QgYmUgbmVnYXRpdmUiKTsKKyAgcmV0dXJuICgqdGhpcylbQXJyYXlJ
bmRleChpbmRleCldOworfQorCitjb25zdCBWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJ
bmRleCBpbmRleCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAgdHlwZV8g
PT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IGFycmF5VmFsdWUsCisgICAgICAiaW4gSnNvbjo6VmFs
dWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCljb25zdDogcmVxdWlyZXMgYXJyYXlWYWx1ZSIpOwor
ICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBudWxsUmVmOworICBDWlN0cmlu
ZyBrZXkoaW5kZXgpOworICBPYmplY3RWYWx1ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVf
Lm1hcF8tPmZpbmQoa2V5KTsKKyAgaWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkKKyAgICBy
ZXR1cm4gbnVsbFJlZjsKKyAgcmV0dXJuICgqaXQpLnNlY29uZDsKK30KKworY29uc3QgVmFsdWUm
IFZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCkgY29uc3QgeworICBKU09OX0FTU0VSVF9NRVNT
QUdFKAorICAgICAgaW5kZXggPj0gMCwKKyAgICAgICJpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3Jb
XShpbnQgaW5kZXgpIGNvbnN0OiBpbmRleCBjYW5ub3QgYmUgbmVnYXRpdmUiKTsKKyAgcmV0dXJu
ICgqdGhpcylbQXJyYXlJbmRleChpbmRleCldOworfQorCit2b2lkIFZhbHVlOjppbml0QmFzaWMo
VmFsdWVUeXBlIHZ0eXBlLCBib29sIGFsbG9jYXRlZCkgeworICB0eXBlXyA9IHZ0eXBlOworICBh
bGxvY2F0ZWRfID0gYWxsb2NhdGVkOworICBjb21tZW50c18gPSAwOworICBzdGFydF8gPSAwOwor
ICBsaW1pdF8gPSAwOworICBkZWZhdWx0X3ZhbHVlXyA9IG51bGxwdHI7Cit9CisKKy8vIEFjY2Vz
cyBhbiBvYmplY3QgdmFsdWUgYnkgbmFtZSwgY3JlYXRlIGEgbnVsbCBtZW1iZXIgaWYgaXQgZG9l
cyBub3QgZXhpc3QuCisvLyBAcHJlIFR5cGUgb2YgJyp0aGlzJyBpcyBvYmplY3Qgb3IgbnVsbC4K
Ky8vIEBwYXJhbSBrZXkgaXMgbnVsbC10ZXJtaW5hdGVkLgorVmFsdWUmIFZhbHVlOjpyZXNvbHZl
UmVmZXJlbmNlKGNvbnN0IGNoYXIqIGtleSkgeworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAg
ICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgImlu
IEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKCk6IHJlcXVpcmVzIG9iamVjdFZhbHVlIik7
CisgIGlmICh0eXBlXyA9PSBudWxsVmFsdWUpCisgICAgKnRoaXMgPSBWYWx1ZShvYmplY3RWYWx1
ZSk7CisgIENaU3RyaW5nIGFjdHVhbEtleSgKKyAgICAgIGtleSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHN0cmxlbihrZXkpKSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOyAvLyBOT1RFIQorICBP
YmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmxvd2VyX2JvdW5kKGFjdHVh
bEtleSk7CisgIGlmIChpdCAhPSB2YWx1ZV8ubWFwXy0+ZW5kKCkgJiYgKCppdCkuZmlyc3QgPT0g
YWN0dWFsS2V5KQorICAgIHJldHVybiAoKml0KS5zZWNvbmQ7CisKKyAgT2JqZWN0VmFsdWVzOjp2
YWx1ZV90eXBlIGRlZmF1bHRWYWx1ZShhY3R1YWxLZXksIG51bGxSZWYpOworICBpdCA9IHZhbHVl
Xy5tYXBfLT5pbnNlcnQoaXQsIGRlZmF1bHRWYWx1ZSk7CisgIFZhbHVlJiB2YWx1ZSA9ICgqaXQp
LnNlY29uZDsKKyAgcmV0dXJuIHZhbHVlOworfQorCisvLyBAcGFyYW0ga2V5IGlzIG5vdCBudWxs
LXRlcm1pbmF0ZWQuCitWYWx1ZSYgVmFsdWU6OnJlc29sdmVSZWZlcmVuY2UoY2hhciBjb25zdCog
a2V5LCBjaGFyIGNvbnN0KiBjZW5kKQoreworICBKU09OX0FTU0VSVF9NRVNTQUdFKAorICAgICAg
dHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZhbHVlLAorICAgICAgImluIEpz
b246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGtleSwgZW5kKTogcmVxdWlyZXMgb2JqZWN0VmFs
dWUiKTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICAqdGhpcyA9IFZhbHVlKG9iamVj
dFZhbHVlKTsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KAorICAgICAga2V5LCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oY2VuZC1rZXkpLCBDWlN0cmluZzo6ZHVwbGljYXRlT25Db3B5KTsKKyAgT2JqZWN0
VmFsdWVzOjppdGVyYXRvciBpdCA9IHZhbHVlXy5tYXBfLT5sb3dlcl9ib3VuZChhY3R1YWxLZXkp
OworICBpZiAoaXQgIT0gdmFsdWVfLm1hcF8tPmVuZCgpICYmICgqaXQpLmZpcnN0ID09IGFjdHVh
bEtleSkKKyAgICByZXR1cm4gKCppdCkuc2Vjb25kOworCisgIE9iamVjdFZhbHVlczo6dmFsdWVf
dHlwZSBkZWZhdWx0VmFsdWUoYWN0dWFsS2V5LCBudWxsUmVmKTsKKyAgaXQgPSB2YWx1ZV8ubWFw
Xy0+aW5zZXJ0KGl0LCBkZWZhdWx0VmFsdWUpOworICBWYWx1ZSYgdmFsdWUgPSAoKml0KS5zZWNv
bmQ7CisgIHJldHVybiB2YWx1ZTsKK30KKworVmFsdWUgVmFsdWU6OmdldChBcnJheUluZGV4IGlu
ZGV4LCBjb25zdCBWYWx1ZSYgZGVmYXVsdFZhbHVlKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlKiB2
YWx1ZSA9ICYoKCp0aGlzKVtpbmRleF0pOworICBpZiAoIHZhbHVlID09ICZudWxsUmVmICkKKyAg
eworICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgfQorICBlbHNlCisgIHsKKyAgICAg
ICAgIFZhbHVlIHJlc3VsdCA9ICp2YWx1ZTsKKyAgICAgICAgIHJlc3VsdC5kZWZhdWx0X3ZhbHVl
XyA9IG5ldyBWYWx1ZSggZGVmYXVsdFZhbHVlICk7CisgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICB9Cit9CisKK2Jvb2wgVmFsdWU6OmlzVmFsaWRJbmRleChBcnJheUluZGV4IGluZGV4KSBjb25z
dCB7IHJldHVybiBpbmRleCA8IHNpemUoKTsgfQorCitWYWx1ZSBjb25zdCogVmFsdWU6OmZpbmQo
Y2hhciBjb25zdCoga2V5LCBjaGFyIGNvbnN0KiBjZW5kKSBjb25zdAoreworICBKU09OX0FTU0VS
VF9NRVNTQUdFKAorICAgICAgdHlwZV8gPT0gbnVsbFZhbHVlIHx8IHR5cGVfID09IG9iamVjdFZh
bHVlLAorICAgICAgImluIEpzb246OlZhbHVlOjpmaW5kKGtleSwgZW5kLCBmb3VuZCk6IHJlcXVp
cmVzIG9iamVjdFZhbHVlIG9yIG51bGxWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVl
KSByZXR1cm4gTlVMTDsKKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KGtleSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOworICBPYmplY3RWYWx1
ZXM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoYWN0dWFsS2V5KTsKKyAg
aWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkgcmV0dXJuIE5VTEw7CisgIHJldHVybiAmKCpp
dCkuc2Vjb25kOworfQorY29uc3QgVmFsdWUmIFZhbHVlOjpvcGVyYXRvcltdKGNvbnN0IGNoYXIq
IGtleSkgY29uc3QKK3sKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXksIGtleSArIHN0
cmxlbihrZXkpKTsKKyAgaWYgKCFmb3VuZCkgcmV0dXJuIG51bGxSZWY7CisgIHJldHVybiAqZm91
bmQ7Cit9CitWYWx1ZSBjb25zdCYgVmFsdWU6Om9wZXJhdG9yW10oc3RkOjpzdHJpbmcgY29uc3Qm
IGtleSkgY29uc3QKK3sKKyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXkuZGF0YSgpLCBr
ZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpKTsKKyAgaWYgKCFmb3VuZCkgcmV0dXJuIG51bGxSZWY7
CisgIHJldHVybiAqZm91bmQ7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBj
aGFyKiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSk7Cit9CisKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShjb25zdCBzdGQ6OnN0cmluZyYg
a2V5KSB7CisgIHJldHVybiByZXNvbHZlUmVmZXJlbmNlKGtleS5kYXRhKCksIGtleS5kYXRhKCkg
KyBrZXkubGVuZ3RoKCkpOworfQorCitWYWx1ZSYgVmFsdWU6Om9wZXJhdG9yW10oY29uc3QgU3Rh
dGljU3RyaW5nJiBrZXkpIHsKKyAgcmV0dXJuIHJlc29sdmVSZWZlcmVuY2Uoa2V5LmNfc3RyKCkp
OworfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVlJiBWYWx1ZTo6b3BlcmF0b3JbXShj
b25zdCBDcHBUTDo6Q29uc3RTdHJpbmcmIGtleSkgeworICByZXR1cm4gcmVzb2x2ZVJlZmVyZW5j
ZShrZXkuY19zdHIoKSwga2V5LmVuZF9jX3N0cigpKTsKK30KK1ZhbHVlIGNvbnN0JiBWYWx1ZTo6
b3BlcmF0b3JbXShDcHBUTDo6Q29uc3RTdHJpbmcgY29uc3QmIGtleSkgY29uc3QKK3sKKyAgVmFs
dWUgY29uc3QqIGZvdW5kID0gZmluZChrZXkuY19zdHIoKSwga2V5LmVuZF9jX3N0cigpKTsKKyAg
aWYgKCFmb3VuZCkgcmV0dXJuIG51bGxSZWY7CisgIHJldHVybiAqZm91bmQ7Cit9CisjZW5kaWYK
KworVmFsdWUmIFZhbHVlOjphcHBlbmQoY29uc3QgVmFsdWUmIHZhbHVlKSB7IHJldHVybiAoKnRo
aXMpW3NpemUoKV0gPSB2YWx1ZTsgfQorCitWYWx1ZSBWYWx1ZTo6Z2V0KGNoYXIgY29uc3QqIGtl
eSwgY2hhciBjb25zdCogY2VuZCwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sK
KyAgVmFsdWUgY29uc3QqIGZvdW5kID0gZmluZChrZXksIGNlbmQpOworICBpZiAoICFmb3VuZCAp
CisgIHsKKyAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgIH0KKyAgZWxzZQorICB7Cisg
ICAgICAgICBWYWx1ZSByZXN1bHQgPSAqZm91bmQ7CisgICAgICAgICByZXN1bHQuZGVmYXVsdF92
YWx1ZV8gPSBuZXcgVmFsdWUoIGRlZmF1bHRWYWx1ZSApOworICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgfQorfQorVmFsdWUgVmFsdWU6OmdldChjaGFyIGNvbnN0KiBrZXksIFZhbHVlIGNvbnN0
JiBkZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgIHJldHVybiBnZXQoa2V5LCBrZXkgKyBzdHJsZW4o
a2V5KSwgZGVmYXVsdFZhbHVlKTsKK30KK1ZhbHVlIFZhbHVlOjpnZXQoc3RkOjpzdHJpbmcgY29u
c3QmIGtleSwgVmFsdWUgY29uc3QmIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAgcmV0dXJuIGdl
dChrZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpLCBkZWZhdWx0VmFsdWUpOwor
fQorCisKK2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJlcihjb25zdCBjaGFyKiBrZXksIGNvbnN0IGNo
YXIqIGNlbmQsIFZhbHVlKiByZW1vdmVkKQoreworICBpZiAodHlwZV8gIT0gb2JqZWN0VmFsdWUp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ1pTdHJpbmcgYWN0dWFsS2V5KGtleSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGNlbmQta2V5KSwgQ1pTdHJpbmc6Om5vRHVwbGljYXRpb24pOwor
ICBPYmplY3RWYWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoYWN0dWFsS2V5
KTsKKyAgaWYgKGl0ID09IHZhbHVlXy5tYXBfLT5lbmQoKSkKKyAgICByZXR1cm4gZmFsc2U7Cisg
ICpyZW1vdmVkID0gaXQtPnNlY29uZDsKKyAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0KTsKKyAgcmV0
dXJuIHRydWU7Cit9Citib29sIFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5LCBW
YWx1ZSogcmVtb3ZlZCkKK3sKKyAgcmV0dXJuIHJlbW92ZU1lbWJlcihrZXksIGtleSArIHN0cmxl
bihrZXkpLCByZW1vdmVkKTsKK30KK2Jvb2wgVmFsdWU6OnJlbW92ZU1lbWJlcihzdGQ6OnN0cmlu
ZyBjb25zdCYga2V5LCBWYWx1ZSogcmVtb3ZlZCkKK3sKKyAgcmV0dXJuIHJlbW92ZU1lbWJlcihr
ZXkuZGF0YSgpLCBrZXkuZGF0YSgpICsga2V5Lmxlbmd0aCgpLCByZW1vdmVkKTsKK30KK1ZhbHVl
IFZhbHVlOjpyZW1vdmVNZW1iZXIoY29uc3QgY2hhcioga2V5KQoreworICBKU09OX0FTU0VSVF9N
RVNTQUdFKHR5cGVfID09IG51bGxWYWx1ZSB8fCB0eXBlXyA9PSBvYmplY3RWYWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAiaW4gSnNvbjo6VmFsdWU6OnJlbW92ZU1lbWJlcigpOiByZXF1aXJl
cyBvYmplY3RWYWx1ZSIpOworICBpZiAodHlwZV8gPT0gbnVsbFZhbHVlKQorICAgIHJldHVybiBu
dWxsUmVmOworCisgIFZhbHVlIHJlbW92ZWQ7ICAvLyBudWxsCisgIHJlbW92ZU1lbWJlcihrZXks
IGtleSArIHN0cmxlbihrZXkpLCAmcmVtb3ZlZCk7CisgIHJldHVybiByZW1vdmVkOyAvLyBzdGls
bCBudWxsIGlmIHJlbW92ZU1lbWJlcigpIGRpZCBub3RoaW5nCit9CitWYWx1ZSBWYWx1ZTo6cmVt
b3ZlTWVtYmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXkpCit7CisgIHJldHVybiByZW1vdmVNZW1i
ZXIoa2V5LmNfc3RyKCkpOworfQorCitib29sIFZhbHVlOjpyZW1vdmVJbmRleChBcnJheUluZGV4
IGluZGV4LCBWYWx1ZSogcmVtb3ZlZCkgeworICBpZiAodHlwZV8gIT0gYXJyYXlWYWx1ZSkgewor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDWlN0cmluZyBrZXkoaW5kZXgpOworICBPYmplY3RW
YWx1ZXM6Oml0ZXJhdG9yIGl0ID0gdmFsdWVfLm1hcF8tPmZpbmQoa2V5KTsKKyAgaWYgKGl0ID09
IHZhbHVlXy5tYXBfLT5lbmQoKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICAqcmVtb3Zl
ZCA9IGl0LT5zZWNvbmQ7CisgIEFycmF5SW5kZXggb2xkU2l6ZSA9IHNpemUoKTsKKyAgLy8gc2hp
ZnQgbGVmdCBhbGwgaXRlbXMgbGVmdCwgaW50byB0aGUgcGxhY2Ugb2YgdGhlICJyZW1vdmVkIgor
ICBmb3IgKEFycmF5SW5kZXggaSA9IGluZGV4OyBpIDwgKG9sZFNpemUgLSAxKTsgKytpKXsKKyAg
ICBDWlN0cmluZyBrZWV5KGkpOworICAgICgqdmFsdWVfLm1hcF8pW2tlZXldID0gKCp0aGlzKVtp
ICsgMV07CisgIH0KKyAgLy8gZXJhc2UgdGhlIGxhc3Qgb25lICgibGVmdG92ZXIiKQorICBDWlN0
cmluZyBrZXlMYXN0KG9sZFNpemUgLSAxKTsKKyAgT2JqZWN0VmFsdWVzOjppdGVyYXRvciBpdExh
c3QgPSB2YWx1ZV8ubWFwXy0+ZmluZChrZXlMYXN0KTsKKyAgdmFsdWVfLm1hcF8tPmVyYXNlKGl0
TGFzdCk7CisgIHJldHVybiB0cnVlOworfQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK1ZhbHVl
IFZhbHVlOjpnZXQoY29uc3QgQ3BwVEw6OkNvbnN0U3RyaW5nJiBrZXksCisgICAgICAgICAgICAg
ICAgIGNvbnN0IFZhbHVlJiBkZWZhdWx0VmFsdWUpIGNvbnN0IHsKKyAgcmV0dXJuIGdldChrZXku
Y19zdHIoKSwga2V5LmVuZF9jX3N0cigpLCBkZWZhdWx0VmFsdWUpOworfQorI2VuZGlmCisKK2Jv
b2wgVmFsdWU6OmlzTWVtYmVyKGNoYXIgY29uc3QqIGtleSwgY2hhciBjb25zdCogY2VuZCkgY29u
c3QKK3sKKyAgVmFsdWUgY29uc3QqIHZhbHVlID0gZmluZChrZXksIGNlbmQpOworICByZXR1cm4g
TlVMTCAhPSB2YWx1ZTsKK30KK2Jvb2wgVmFsdWU6OmlzTWVtYmVyKGNoYXIgY29uc3QqIGtleSkg
Y29uc3QKK3sKKyAgcmV0dXJuIGlzTWVtYmVyKGtleSwga2V5ICsgc3RybGVuKGtleSkpOworfQor
Ym9vbCBWYWx1ZTo6aXNNZW1iZXIoc3RkOjpzdHJpbmcgY29uc3QmIGtleSkgY29uc3QKK3sKKyAg
cmV0dXJuIGlzTWVtYmVyKGtleS5kYXRhKCksIGtleS5kYXRhKCkgKyBrZXkubGVuZ3RoKCkpOwor
fQorCisjaWZkZWYgSlNPTl9VU0VfQ1BQVEwKK2Jvb2wgVmFsdWU6OmlzTWVtYmVyKGNvbnN0IENw
cFRMOjpDb25zdFN0cmluZyYga2V5KSBjb25zdCB7CisgIHJldHVybiBpc01lbWJlcihrZXkuY19z
dHIoKSwga2V5LmVuZF9jX3N0cigpKTsKK30KKyNlbmRpZgorCitWYWx1ZTo6TWVtYmVycyBWYWx1
ZTo6Z2V0TWVtYmVyTmFtZXMoKSBjb25zdCB7CisgIEpTT05fQVNTRVJUX01FU1NBR0UoCisgICAg
ICB0eXBlXyA9PSBudWxsVmFsdWUgfHwgdHlwZV8gPT0gb2JqZWN0VmFsdWUsCisgICAgICAiaW4g
SnNvbjo6VmFsdWU6OmdldE1lbWJlck5hbWVzKCksIHZhbHVlIG11c3QgYmUgb2JqZWN0VmFsdWUi
KTsKKyAgaWYgKHR5cGVfID09IG51bGxWYWx1ZSkKKyAgICByZXR1cm4gVmFsdWU6Ok1lbWJlcnMo
KTsKKyAgTWVtYmVycyBtZW1iZXJzOworICBtZW1iZXJzLnJlc2VydmUodmFsdWVfLm1hcF8tPnNp
emUoKSk7CisgIE9iamVjdFZhbHVlczo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2YWx1ZV8ubWFwXy0+
YmVnaW4oKTsKKyAgT2JqZWN0VmFsdWVzOjpjb25zdF9pdGVyYXRvciBpdEVuZCA9IHZhbHVlXy5t
YXBfLT5lbmQoKTsKKyAgZm9yICg7IGl0ICE9IGl0RW5kOyArK2l0KSB7CisgICAgbWVtYmVycy5w
dXNoX2JhY2soc3RkOjpzdHJpbmcoKCppdCkuZmlyc3QuZGF0YSgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgqaXQpLmZpcnN0Lmxlbmd0aCgpKSk7CisgIH0KKyAgcmV0dXJu
IG1lbWJlcnM7Cit9CisvLworLy8jIGlmZGVmIEpTT05fVVNFX0NQUFRMCisvLyBFbnVtTWVtYmVy
TmFtZXMKKy8vIFZhbHVlOjplbnVtTWVtYmVyTmFtZXMoKSBjb25zdAorLy97CisvLyAgIGlmICgg
dHlwZV8gPT0gb2JqZWN0VmFsdWUgKQorLy8gICB7CisvLyAgICAgIHJldHVybiBDcHBUTDo6RW51
bTo6YW55KCAgQ3BwVEw6OkVudW06OnRyYW5zZm9ybSgKKy8vICAgICAgICAgQ3BwVEw6OkVudW06
OmtleXMoICoodmFsdWVfLm1hcF8pLCBDcHBUTDo6VHlwZTxjb25zdCBDWlN0cmluZyAmPigpICks
CisvLyAgICAgICAgIE1lbWJlck5hbWVzVHJhbnNmb3JtKCkgKSApOworLy8gICB9CisvLyAgIHJl
dHVybiBFbnVtTWVtYmVyTmFtZXMoKTsKKy8vfQorLy8KKy8vCisvLyBFbnVtVmFsdWVzCisvLyBW
YWx1ZTo6ZW51bVZhbHVlcygpIGNvbnN0CisvL3sKKy8vICAgaWYgKCB0eXBlXyA9PSBvYmplY3RW
YWx1ZSAgfHwgIHR5cGVfID09IGFycmF5VmFsdWUgKQorLy8gICAgICByZXR1cm4gQ3BwVEw6OkVu
dW06OmFueVZhbHVlcyggKih2YWx1ZV8ubWFwXyksCisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDcHBUTDo6VHlwZTxjb25zdCBWYWx1ZSAmPigpICk7CisvLyAgIHJldHVy
biBFbnVtVmFsdWVzKCk7CisvL30KKy8vCisvLyMgZW5kaWYKKworc3RhdGljIGJvb2wgSXNJbnRl
Z3JhbChkb3VibGUgZCkgeworICBkb3VibGUgaW50ZWdyYWxfcGFydDsKKyAgcmV0dXJuIG1vZGYo
ZCwgJmludGVncmFsX3BhcnQpID09IDAuMDsKK30KKworYm9vbCBWYWx1ZTo6aXNOdWxsKCkgY29u
c3QgeyByZXR1cm4gdHlwZV8gPT0gbnVsbFZhbHVlOyB9CisKK2Jvb2wgVmFsdWU6OmlzQm9vbCgp
IGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IGJvb2xlYW5WYWx1ZTsgfQorCitib29sIFZhbHVlOjpp
c0ludCgpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZhbHVlOgorICAg
IHJldHVybiB2YWx1ZV8uaW50XyA+PSBtaW5JbnQgJiYgdmFsdWVfLmludF8gPD0gbWF4SW50Owor
ICBjYXNlIHVpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQobWF4SW50
KTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSBtaW5JbnQg
JiYgdmFsdWVfLnJlYWxfIDw9IG1heEludCAmJgorICAgICAgICAgICBJc0ludGVncmFsKHZhbHVl
Xy5yZWFsXyk7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFZhbHVlOjppc1VJbnQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlwZV8pIHsKKyAg
Y2FzZSBpbnRWYWx1ZToKKyAgICByZXR1cm4gdmFsdWVfLmludF8gPj0gMCAmJiBMYXJnZXN0VUlu
dCh2YWx1ZV8uaW50XykgPD0gTGFyZ2VzdFVJbnQobWF4VUludCk7CisgIGNhc2UgdWludFZhbHVl
OgorICAgIHJldHVybiB2YWx1ZV8udWludF8gPD0gbWF4VUludDsKKyAgY2FzZSByZWFsVmFsdWU6
CisgICAgcmV0dXJuIHZhbHVlXy5yZWFsXyA+PSAwICYmIHZhbHVlXy5yZWFsXyA8PSBtYXhVSW50
ICYmCisgICAgICAgICAgIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsKKyAgZGVmYXVsdDoKKyAg
ICBicmVhazsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVmFsdWU6OmlzSW50NjQo
KSBjb25zdCB7CisjaWYgZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgc3dpdGNoICh0eXBlXykg
eworICBjYXNlIGludFZhbHVlOgorICAgIHJldHVybiB0cnVlOworICBjYXNlIHVpbnRWYWx1ZToK
KyAgICByZXR1cm4gdmFsdWVfLnVpbnRfIDw9IFVJbnQ2NChtYXhJbnQ2NCk7CisgIGNhc2UgcmVh
bFZhbHVlOgorICAgIC8vIE5vdGUgdGhhdCBtYXhJbnQ2NCAoPSAyXjYzIC0gMSkgaXMgbm90IGV4
YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCisgICAgLy8gZG91YmxlLCBzbyBkb3VibGUobWF4SW50
NjQpIHdpbGwgYmUgcm91bmRlZCB1cCB0byAyXjYzLiBUaGVyZWZvcmUgd2UKKyAgICAvLyByZXF1
aXJlIHRoZSB2YWx1ZSB0byBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGxpbWl0LgorICAgIHJl
dHVybiB2YWx1ZV8ucmVhbF8gPj0gZG91YmxlKG1pbkludDY0KSAmJgorICAgICAgICAgICB2YWx1
ZV8ucmVhbF8gPCBkb3VibGUobWF4SW50NjQpICYmIElzSW50ZWdyYWwodmFsdWVfLnJlYWxfKTsK
KyAgZGVmYXVsdDoKKyAgICBicmVhazsKKyAgfQorI2VuZGlmIC8vIEpTT05fSEFTX0lOVDY0Cisg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWx1ZTo6aXNVSW50NjQoKSBjb25zdCB7CisjaWYg
ZGVmaW5lZChKU09OX0hBU19JTlQ2NCkKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGludFZh
bHVlOgorICAgIHJldHVybiB2YWx1ZV8uaW50XyA+PSAwOworICBjYXNlIHVpbnRWYWx1ZToKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgLy8gTm90ZSB0aGF0IG1heFVJ
bnQ2NCAoPSAyXjY0IC0gMSkgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBhcyBhCisgICAg
Ly8gZG91YmxlLCBzbyBkb3VibGUobWF4VUludDY0KSB3aWxsIGJlIHJvdW5kZWQgdXAgdG8gMl42
NC4gVGhlcmVmb3JlIHdlCisgICAgLy8gcmVxdWlyZSB0aGUgdmFsdWUgdG8gYmUgc3RyaWN0bHkg
bGVzcyB0aGFuIHRoZSBsaW1pdC4KKyAgICByZXR1cm4gdmFsdWVfLnJlYWxfID49IDAgJiYgdmFs
dWVfLnJlYWxfIDwgbWF4VUludDY0QXNEb3VibGUgJiYKKyAgICAgICAgICAgSXNJbnRlZ3JhbCh2
YWx1ZV8ucmVhbF8pOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisjZW5kaWYgLy8gSlNP
Tl9IQVNfSU5UNjQKKyAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbHVlOjppc0ludGVncmFs
KCkgY29uc3QgeworI2lmIGRlZmluZWQoSlNPTl9IQVNfSU5UNjQpCisgIHJldHVybiBpc0ludDY0
KCkgfHwgaXNVSW50NjQoKTsKKyNlbHNlCisgIHJldHVybiBpc0ludCgpIHx8IGlzVUludCgpOwor
I2VuZGlmCit9CisKK2Jvb2wgVmFsdWU6OmlzRG91YmxlKCkgY29uc3QgeyByZXR1cm4gdHlwZV8g
PT0gcmVhbFZhbHVlIHx8IGlzSW50ZWdyYWwoKTsgfQorCitib29sIFZhbHVlOjppc051bWVyaWMo
KSBjb25zdCB7IHJldHVybiBpc0ludGVncmFsKCkgfHwgaXNEb3VibGUoKTsgfQorCitib29sIFZh
bHVlOjppc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHR5cGVfID09IHN0cmluZ1ZhbHVlOyB9CisK
K2Jvb2wgVmFsdWU6OmlzQXJyYXkoKSBjb25zdCB7IHJldHVybiB0eXBlXyA9PSBhcnJheVZhbHVl
OyB9CisKK2Jvb2wgVmFsdWU6OmlzT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlwZV8gPT0gb2Jq
ZWN0VmFsdWU7IH0KKwordm9pZCBWYWx1ZTo6c2V0Q29tbWVudChjb25zdCBjaGFyKiBjb21tZW50
LCBzaXplX3QgbGVuLCBDb21tZW50UGxhY2VtZW50IHBsYWNlbWVudCkgeworICBpZiAoIWNvbW1l
bnRzXykKKyAgICBjb21tZW50c18gPSBuZXcgQ29tbWVudEluZm9bbnVtYmVyT2ZDb21tZW50UGxh
Y2VtZW50XTsKKyAgaWYgKChsZW4gPiAwKSAmJiAoY29tbWVudFtsZW4tMV0gPT0gJ1xuJykpIHsK
KyAgICAvLyBBbHdheXMgZGlzY2FyZCB0cmFpbGluZyBuZXdsaW5lLCB0byBhaWQgaW5kZW50YXRp
b24uCisgICAgbGVuIC09IDE7CisgIH0KKyAgY29tbWVudHNfW3BsYWNlbWVudF0uc2V0Q29tbWVu
dChjb21tZW50LCBsZW4pOworfQorCit2b2lkIFZhbHVlOjpzZXRDb21tZW50KGNvbnN0IGNoYXIq
IGNvbW1lbnQsIENvbW1lbnRQbGFjZW1lbnQgcGxhY2VtZW50KSB7CisgIHNldENvbW1lbnQoY29t
bWVudCwgc3RybGVuKGNvbW1lbnQpLCBwbGFjZW1lbnQpOworfQorCit2b2lkIFZhbHVlOjpzZXRD
b21tZW50KGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50LCBDb21tZW50UGxhY2VtZW50IHBsYWNl
bWVudCkgeworICBzZXRDb21tZW50KGNvbW1lbnQuY19zdHIoKSwgY29tbWVudC5sZW5ndGgoKSwg
cGxhY2VtZW50KTsKK30KKworYm9vbCBWYWx1ZTo6aGFzQ29tbWVudChDb21tZW50UGxhY2VtZW50
IHBsYWNlbWVudCkgY29uc3QgeworICByZXR1cm4gY29tbWVudHNfICE9IDAgJiYgY29tbWVudHNf
W3BsYWNlbWVudF0uY29tbWVudF8gIT0gMDsKK30KKworc3RkOjpzdHJpbmcgVmFsdWU6OmdldENv
bW1lbnQoQ29tbWVudFBsYWNlbWVudCBwbGFjZW1lbnQpIGNvbnN0IHsKKyAgaWYgKGhhc0NvbW1l
bnQocGxhY2VtZW50KSkKKyAgICByZXR1cm4gY29tbWVudHNfW3BsYWNlbWVudF0uY29tbWVudF87
CisgIHJldHVybiAiIjsKK30KKwordm9pZCBWYWx1ZTo6c2V0T2Zmc2V0U3RhcnQoc2l6ZV90IHN0
YXJ0KSB7IHN0YXJ0XyA9IHN0YXJ0OyB9CisKK3ZvaWQgVmFsdWU6OnNldE9mZnNldExpbWl0KHNp
emVfdCBsaW1pdCkgeyBsaW1pdF8gPSBsaW1pdDsgfQorCitzaXplX3QgVmFsdWU6OmdldE9mZnNl
dFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gc3RhcnRfOyB9CisKK3NpemVfdCBWYWx1ZTo6Z2V0T2Zm
c2V0TGltaXQoKSBjb25zdCB7IHJldHVybiBsaW1pdF87IH0KKworc3RkOjpzdHJpbmcgVmFsdWU6
OnRvU3R5bGVkU3RyaW5nKCkgY29uc3QgeworICBTdHlsZWRXcml0ZXIgd3JpdGVyOworICByZXR1
cm4gd3JpdGVyLndyaXRlKCp0aGlzKTsKK30KKworVmFsdWU6OmNvbnN0X2l0ZXJhdG9yIFZhbHVl
OjpiZWdpbigpIGNvbnN0IHsKKyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6
CisgIGNhc2Ugb2JqZWN0VmFsdWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJu
IGNvbnN0X2l0ZXJhdG9yKHZhbHVlXy5tYXBfLT5iZWdpbigpKTsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBicmVhazsKKyAgfQorICByZXR1cm4gY29uc3RfaXRlcmF0b3IoKTsKK30KKwor
VmFsdWU6OmNvbnN0X2l0ZXJhdG9yIFZhbHVlOjplbmQoKSBjb25zdCB7CisgIHN3aXRjaCAodHlw
ZV8pIHsKKyAgY2FzZSBhcnJheVZhbHVlOgorICBjYXNlIG9iamVjdFZhbHVlOgorICAgIGlmICh2
YWx1ZV8ubWFwXykKKyAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcih2YWx1ZV8ubWFwXy0+ZW5k
KCkpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9CisgIHJldHVybiBj
b25zdF9pdGVyYXRvcigpOworfQorCitWYWx1ZTo6aXRlcmF0b3IgVmFsdWU6OmJlZ2luKCkgewor
ICBzd2l0Y2ggKHR5cGVfKSB7CisgIGNhc2UgYXJyYXlWYWx1ZToKKyAgY2FzZSBvYmplY3RWYWx1
ZToKKyAgICBpZiAodmFsdWVfLm1hcF8pCisgICAgICByZXR1cm4gaXRlcmF0b3IodmFsdWVfLm1h
cF8tPmJlZ2luKCkpOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIGJyZWFrOworICB9Cisg
IHJldHVybiBpdGVyYXRvcigpOworfQorCitWYWx1ZTo6aXRlcmF0b3IgVmFsdWU6OmVuZCgpIHsK
KyAgc3dpdGNoICh0eXBlXykgeworICBjYXNlIGFycmF5VmFsdWU6CisgIGNhc2Ugb2JqZWN0VmFs
dWU6CisgICAgaWYgKHZhbHVlXy5tYXBfKQorICAgICAgcmV0dXJuIGl0ZXJhdG9yKHZhbHVlXy5t
YXBfLT5lbmQoKSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAg
cmV0dXJuIGl0ZXJhdG9yKCk7Cit9CisKKy8vIGNsYXNzIFBhdGhBcmd1bWVudAorLy8gLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK1BhdGhBcmd1bWVudDo6UGF0aEFyZ3VtZW50KCkgOiBrZXlfKCksIGluZGV4XygpLCBr
aW5kXyhraW5kTm9uZSkge30KKworUGF0aEFyZ3VtZW50OjpQYXRoQXJndW1lbnQoQXJyYXlJbmRl
eCBpbmRleCkKKyAgICA6IGtleV8oKSwgaW5kZXhfKGluZGV4KSwga2luZF8oa2luZEluZGV4KSB7
fQorCitQYXRoQXJndW1lbnQ6OlBhdGhBcmd1bWVudChjb25zdCBjaGFyKiBrZXkpCisgICAgOiBr
ZXlfKGtleSksIGluZGV4XygpLCBraW5kXyhraW5kS2V5KSB7fQorCitQYXRoQXJndW1lbnQ6OlBh
dGhBcmd1bWVudChjb25zdCBzdGQ6OnN0cmluZyYga2V5KQorICAgIDoga2V5XyhrZXkuY19zdHIo
KSksIGluZGV4XygpLCBraW5kXyhraW5kS2V5KSB7fQorCisvLyBjbGFzcyBQYXRoCisvLyAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KKworUGF0aDo6UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCwKKyAgICAgICAgICAg
Y29uc3QgUGF0aEFyZ3VtZW50JiBhMSwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBh
MiwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhMywKKyAgICAgICAgICAgY29uc3Qg
UGF0aEFyZ3VtZW50JiBhNCwKKyAgICAgICAgICAgY29uc3QgUGF0aEFyZ3VtZW50JiBhNSkgewor
ICBJbkFyZ3MgaW47CisgIGluLnB1c2hfYmFjaygmYTEpOworICBpbi5wdXNoX2JhY2soJmEyKTsK
KyAgaW4ucHVzaF9iYWNrKCZhMyk7CisgIGluLnB1c2hfYmFjaygmYTQpOworICBpbi5wdXNoX2Jh
Y2soJmE1KTsKKyAgbWFrZVBhdGgocGF0aCwgaW4pOworfQorCit2b2lkIFBhdGg6Om1ha2VQYXRo
KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoLCBjb25zdCBJbkFyZ3MmIGluKSB7CisgIGNvbnN0IGNo
YXIqIGN1cnJlbnQgPSBwYXRoLmNfc3RyKCk7CisgIGNvbnN0IGNoYXIqIGVuZCA9IGN1cnJlbnQg
KyBwYXRoLmxlbmd0aCgpOworICBJbkFyZ3M6OmNvbnN0X2l0ZXJhdG9yIGl0SW5BcmcgPSBpbi5i
ZWdpbigpOworICB3aGlsZSAoY3VycmVudCAhPSBlbmQpIHsKKyAgICBpZiAoKmN1cnJlbnQgPT0g
J1snKSB7CisgICAgICArK2N1cnJlbnQ7CisgICAgICBpZiAoKmN1cnJlbnQgPT0gJyUnKQorICAg
ICAgICBhZGRQYXRoSW5BcmcocGF0aCwgaW4sIGl0SW5BcmcsIFBhdGhBcmd1bWVudDo6a2luZElu
ZGV4KTsKKyAgICAgIGVsc2UgeworICAgICAgICBBcnJheUluZGV4IGluZGV4ID0gMDsKKyAgICAg
ICAgZm9yICg7IGN1cnJlbnQgIT0gZW5kICYmICpjdXJyZW50ID49ICcwJyAmJiAqY3VycmVudCA8
PSAnOSc7ICsrY3VycmVudCkKKyAgICAgICAgICBpbmRleCA9IGluZGV4ICogMTAgKyBBcnJheUlu
ZGV4KCpjdXJyZW50IC0gJzAnKTsKKyAgICAgICAgYXJnc18ucHVzaF9iYWNrKGluZGV4KTsKKyAg
ICAgIH0KKyAgICAgIGlmIChjdXJyZW50ID09IGVuZCB8fCAqY3VycmVudCsrICE9ICddJykKKyAg
ICAgICAgaW52YWxpZFBhdGgocGF0aCwgaW50KGN1cnJlbnQgLSBwYXRoLmNfc3RyKCkpKTsKKyAg
ICB9IGVsc2UgaWYgKCpjdXJyZW50ID09ICclJykgeworICAgICAgYWRkUGF0aEluQXJnKHBhdGgs
IGluLCBpdEluQXJnLCBQYXRoQXJndW1lbnQ6OmtpbmRLZXkpOworICAgICAgKytjdXJyZW50Owor
ICAgIH0gZWxzZSBpZiAoKmN1cnJlbnQgPT0gJy4nKSB7CisgICAgICArK2N1cnJlbnQ7CisgICAg
fSBlbHNlIHsKKyAgICAgIGNvbnN0IGNoYXIqIGJlZ2luTmFtZSA9IGN1cnJlbnQ7CisgICAgICB3
aGlsZSAoY3VycmVudCAhPSBlbmQgJiYgIXN0cmNocigiWy4iLCAqY3VycmVudCkpCisgICAgICAg
ICsrY3VycmVudDsKKyAgICAgIGFyZ3NfLnB1c2hfYmFjayhzdGQ6OnN0cmluZyhiZWdpbk5hbWUs
IGN1cnJlbnQpKTsKKyAgICB9CisgIH0KK30KKwordm9pZCBQYXRoOjphZGRQYXRoSW5BcmcoY29u
c3Qgc3RkOjpzdHJpbmcmIC8qcGF0aCovLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW5BcmdzJiBpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEluQXJnczo6Y29uc3RfaXRlcmF0
b3ImIGl0SW5BcmcsCisgICAgICAgICAgICAgICAgICAgICAgICBQYXRoQXJndW1lbnQ6OktpbmQg
a2luZCkgeworICBpZiAoaXRJbkFyZyA9PSBpbi5lbmQoKSkgeworICAgIC8vIEVycm9yOiBtaXNz
aW5nIGFyZ3VtZW50ICVkCisgIH0gZWxzZSBpZiAoKCppdEluQXJnKS0+a2luZF8gIT0ga2luZCkg
eworICAgIC8vIEVycm9yOiBiYWQgYXJndW1lbnQgdHlwZQorICB9IGVsc2UgeworICAgIGFyZ3Nf
LnB1c2hfYmFjaygqKml0SW5BcmcpOworICB9Cit9CisKK3ZvaWQgUGF0aDo6aW52YWxpZFBhdGgo
Y29uc3Qgc3RkOjpzdHJpbmcmIC8qcGF0aCovLCBpbnQgLypsb2NhdGlvbiovKSB7CisgIC8vIEVy
cm9yOiBpbnZhbGlkIHBhdGguCit9CisKK2NvbnN0IFZhbHVlJiBQYXRoOjpyZXNvbHZlKGNvbnN0
IFZhbHVlJiByb290KSBjb25zdCB7CisgIGNvbnN0IFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZv
ciAoQXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5l
bmQoKTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYXJnID0gKml0OworICAgIGlm
IChhcmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9k
ZS0+aXNBcnJheSgpIHx8ICFub2RlLT5pc1ZhbGlkSW5kZXgoYXJnLmluZGV4XykpIHsKKyAgICAg
ICAgLy8gRXJyb3I6IHVuYWJsZSB0byByZXNvbHZlIHBhdGggKGFycmF5IHZhbHVlIGV4cGVjdGVk
IGF0IHBvc2l0aW9uLi4uCisgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRl
eF9dKTsKKyAgICB9IGVsc2UgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkp
IHsKKyAgICAgIGlmICghbm9kZS0+aXNPYmplY3QoKSkgeworICAgICAgICAvLyBFcnJvcjogdW5h
YmxlIHRvIHJlc29sdmUgcGF0aCAob2JqZWN0IHZhbHVlIGV4cGVjdGVkIGF0IHBvc2l0aW9uLi4u
KQorICAgICAgfQorICAgICAgbm9kZSA9ICYoKCpub2RlKVthcmcua2V5X10pOworICAgICAgaWYg
KG5vZGUgPT0gJlZhbHVlOjpudWxsUmVmKSB7CisgICAgICAgIC8vIEVycm9yOiB1bmFibGUgdG8g
cmVzb2x2ZSBwYXRoIChvYmplY3QgaGFzIG5vIG1lbWJlciBuYW1lZCAnJyBhdAorICAgICAgICAv
LyBwb3NpdGlvbi4uLikKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuICpub2RlOworfQor
CitWYWx1ZSBQYXRoOjpyZXNvbHZlKGNvbnN0IFZhbHVlJiByb290LCBjb25zdCBWYWx1ZSYgZGVm
YXVsdFZhbHVlKSBjb25zdCB7CisgIGNvbnN0IFZhbHVlKiBub2RlID0gJnJvb3Q7CisgIGZvciAo
QXJnczo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcmdzXy5iZWdpbigpOyBpdCAhPSBhcmdzXy5lbmQo
KTsgKytpdCkgeworICAgIGNvbnN0IFBhdGhBcmd1bWVudCYgYXJnID0gKml0OworICAgIGlmIChh
cmcua2luZF8gPT0gUGF0aEFyZ3VtZW50OjpraW5kSW5kZXgpIHsKKyAgICAgIGlmICghbm9kZS0+
aXNBcnJheSgpIHx8ICFub2RlLT5pc1ZhbGlkSW5kZXgoYXJnLmluZGV4XykpCisgICAgICAgIHJl
dHVybiBkZWZhdWx0VmFsdWU7CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsK
KyAgICB9IGVsc2UgaWYgKGFyZy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkpIHsKKyAg
ICAgIGlmICghbm9kZS0+aXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KyAgICAgIG5vZGUgPSAmKCgqbm9kZSlbYXJnLmtleV9dKTsKKyAgICAgIGlmIChub2RlID09ICZW
YWx1ZTo6bnVsbFJlZikKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuICpub2RlOworfQorCitWYWx1ZSYgUGF0aDo6bWFrZShWYWx1ZSYgcm9vdCkgY29u
c3QgeworICBWYWx1ZSogbm9kZSA9ICZyb290OworICBmb3IgKEFyZ3M6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gYXJnc18uYmVnaW4oKTsgaXQgIT0gYXJnc18uZW5kKCk7ICsraXQpIHsKKyAgICBjb25z
dCBQYXRoQXJndW1lbnQmIGFyZyA9ICppdDsKKyAgICBpZiAoYXJnLmtpbmRfID09IFBhdGhBcmd1
bWVudDo6a2luZEluZGV4KSB7CisgICAgICBpZiAoIW5vZGUtPmlzQXJyYXkoKSkgeworICAgICAg
ICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gYXJyYXkgYXQgcG9zaXRpb24gLi4uCisgICAgICB9
CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5pbmRleF9dKTsKKyAgICB9IGVsc2UgaWYgKGFy
Zy5raW5kXyA9PSBQYXRoQXJndW1lbnQ6OmtpbmRLZXkpIHsKKyAgICAgIGlmICghbm9kZS0+aXNP
YmplY3QoKSkgeworICAgICAgICAvLyBFcnJvcjogbm9kZSBpcyBub3QgYW4gb2JqZWN0IGF0IHBv
c2l0aW9uLi4uCisgICAgICB9CisgICAgICBub2RlID0gJigoKm5vZGUpW2FyZy5rZXlfXSk7Cisg
ICAgfQorICB9CisgIHJldHVybiAqbm9kZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSnNvbgorCisj
cHJhZ21hIHdhcm5pbmcgKHBvcCkKKworLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gRW5kIG9mIGNvbnRl
bnQgb2YgZmlsZTogc3JjL2xpYl9qc29uL2pzb25fdmFsdWUuY3BwCisvLyAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKKworCisKKworCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBCZWdpbm5pbmcgb2YgY29udGVudCBv
ZiBmaWxlOiBzcmMvbGliX2pzb24vanNvbl93cml0ZXIuY3BwCisvLyAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK
Ky8vIENvcHlyaWdodCAyMDExIEJhcHRpc3RlIExlcGlsbGV1cgorLy8gRGlzdHJpYnV0ZWQgdW5k
ZXIgTUlUIGxpY2Vuc2UsIG9yIHB1YmxpYyBkb21haW4gaWYgZGVzaXJlZCBhbmQKKy8vIHJlY29n
bml6ZWQgaW4geW91ciBqdXJpc2RpY3Rpb24uCisvLyBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRh
aWwgb3IgY29weSBhdCBodHRwOi8vanNvbmNwcC5zb3VyY2Vmb3JnZS5uZXQvTElDRU5TRQorCisj
aWYgIWRlZmluZWQoSlNPTl9JU19BTUFMR0FNQVRJT04pCisjaW5jbHVkZSA8anNvbi93cml0ZXIu
aD4KKyNpbmNsdWRlICJqc29uX3Rvb2wuaCIKKyNlbmRpZiAvLyBpZiAhZGVmaW5lZChKU09OX0lT
X0FNQUxHQU1BVElPTikKKyNpbmNsdWRlIDxpb21hbmlwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDxzc3RyZWFtPgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8c2V0PgorI2lu
Y2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNsdWRlIDxjc3RkaW8+CisK
KyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxMjAwICYmIF9NU0NfVkVSIDwg
MTgwMCAvLyBCZXR3ZWVuIFZDKysgNi4wIGFuZCBWQysrIDExLjAKKyNpbmNsdWRlIDxmbG9hdC5o
PgorI2RlZmluZSBpc2Zpbml0ZSBfZmluaXRlCisjZWxpZiBkZWZpbmVkKF9fc3VuKSAmJiBkZWZp
bmVkKF9fU1ZSNCkgLy9Tb2xhcmlzCisjaWYgIWRlZmluZWQoaXNmaW5pdGUpCisjaW5jbHVkZSA8
aWVlZWZwLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0ZQorI2VuZGlmCisjZWxpZiBkZWZpbmVk
KF9BSVgpCisjaWYgIWRlZmluZWQoaXNmaW5pdGUpCisjaW5jbHVkZSA8bWF0aC5oPgorI2RlZmlu
ZSBpc2Zpbml0ZSBmaW5pdGUKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX2hwdXgpCisjaWYgIWRl
ZmluZWQoaXNmaW5pdGUpCisjaWYgZGVmaW5lZChfX2lhNjQpICYmICFkZWZpbmVkKGZpbml0ZSkK
KyNkZWZpbmUgaXNmaW5pdGUoeCkgKChzaXplb2YoeCkgPT0gc2l6ZW9mKGZsb2F0KSA/IFwKKyAg
ICAgICAgICAgICAgICAgICAgIF9Jc2Zpbml0ZWYoeCkgOiBfSXNGaW5pdGUoeCkpKQorI2Vsc2UK
KyNpbmNsdWRlIDxtYXRoLmg+CisjZGVmaW5lIGlzZmluaXRlIGZpbml0ZQorI2VuZGlmCisjZW5k
aWYKKyNlbHNlCisjaW5jbHVkZSA8Y21hdGg+CisjaWYgIShkZWZpbmVkKF9fUU5YTlRPX18pKSAv
LyBRTlggYWxyZWFkeSBkZWZpbmVzIGlzZmluaXRlCisjZGVmaW5lIGlzZmluaXRlIHN0ZDo6aXNm
aW5pdGUKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2lmICFkZWZp
bmVkKFdJTkNFKSAmJiBkZWZpbmVkKF9fU1REQ19TRUNVUkVfTElCX18pICYmIF9NU0NfVkVSID49
IDE1MDAgLy8gVkMrKyA5LjAgYW5kIGFib3ZlCisjZGVmaW5lIHNucHJpbnRmIHNwcmludGZfcwor
I2VsaWYgX01TQ19WRVIgPj0gMTkwMCAvLyBWQysrIDE0LjAgYW5kIGFib3ZlCisjZGVmaW5lIHNu
cHJpbnRmIHN0ZDo6c25wcmludGYKKyNlbHNlCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50Zgor
I2VuZGlmCisjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKSB8fCBkZWZpbmVkKF9fUU5YTlRPX18p
CisjZGVmaW5lIHNucHJpbnRmIHNucHJpbnRmCisjZWxpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNM
CisjZGVmaW5lIHNucHJpbnRmIHN0ZDo6c25wcmludGYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChf
X0JPUkxBTkRDX18pICAKKyNpbmNsdWRlIDxmbG9hdC5oPgorI2RlZmluZSBpc2Zpbml0ZSBfZmlu
aXRlCisjZGVmaW5lIHNucHJpbnRmIF9zbnByaW50ZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9N
U0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNDAwIC8vIFZDKysgOC4wCisvLyBEaXNhYmxlIHdhcm5p
bmcgYWJvdXQgc3RyZHVwIGJlaW5nIGRlcHJlY2F0ZWQuCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJs
ZSA6IDQ5OTYpCisjZW5kaWYKKworbmFtZXNwYWNlIEpzb24geworCisjaWYgX19jcGx1c3BsdXMg
Pj0gMjAxMTAzTCB8fCAoZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgX0NQUExJQl9WRVIgPj0gNTIw
KQordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8U3RyZWFtV3JpdGVyPiBTdHJlYW1Xcml0ZXJQdHI7
CisjZWxzZQordHlwZWRlZiBzdGQ6OmF1dG9fcHRyPFN0cmVhbVdyaXRlcj4gICBTdHJlYW1Xcml0
ZXJQdHI7CisjZW5kaWYKKworc3RhdGljIGJvb2wgY29udGFpbnNDb250cm9sQ2hhcmFjdGVyKGNv
bnN0IGNoYXIqIHN0cikgeworICB3aGlsZSAoKnN0cikgeworICAgIGlmIChpc0NvbnRyb2xDaGFy
YWN0ZXIoKihzdHIrKykpKQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGZhbHNl
OworfQorCitzdGF0aWMgYm9vbCBjb250YWluc0NvbnRyb2xDaGFyYWN0ZXIwKGNvbnN0IGNoYXIq
IHN0ciwgdW5zaWduZWQgbGVuKSB7CisgIGNoYXIgY29uc3QqIGVuZCA9IHN0ciArIGxlbjsKKyAg
d2hpbGUgKGVuZCAhPSBzdHIpIHsKKyAgICBpZiAoaXNDb250cm9sQ2hhcmFjdGVyKCpzdHIpIHx8
IDA9PSpzdHIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICArK3N0cjsKKyAgfQorICByZXR1cm4g
ZmFsc2U7Cit9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoTGFyZ2VzdEludCB2YWx1ZSkg
eworICBVSW50VG9TdHJpbmdCdWZmZXIgYnVmZmVyOworICBjaGFyKiBjdXJyZW50ID0gYnVmZmVy
ICsgc2l6ZW9mKGJ1ZmZlcik7CisgIGlmICh2YWx1ZSA9PSBWYWx1ZTo6bWluTGFyZ2VzdEludCkg
eworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludChWYWx1ZTo6bWF4TGFyZ2VzdEludCkgKyAx
LCBjdXJyZW50KTsKKyAgICAqLS1jdXJyZW50ID0gJy0nOworICB9IGVsc2UgaWYgKHZhbHVlIDwg
MCkgeworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0VUludCgtdmFsdWUpLCBjdXJyZW50KTsKKyAg
ICAqLS1jdXJyZW50ID0gJy0nOworICB9IGVsc2UgeworICAgIHVpbnRUb1N0cmluZyhMYXJnZXN0
VUludCh2YWx1ZSksIGN1cnJlbnQpOworICB9CisgIGFzc2VydChjdXJyZW50ID49IGJ1ZmZlcik7
CisgIHJldHVybiBjdXJyZW50OworfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKExhcmdl
c3RVSW50IHZhbHVlKSB7CisgIFVJbnRUb1N0cmluZ0J1ZmZlciBidWZmZXI7CisgIGNoYXIqIGN1
cnJlbnQgPSBidWZmZXIgKyBzaXplb2YoYnVmZmVyKTsKKyAgdWludFRvU3RyaW5nKHZhbHVlLCBj
dXJyZW50KTsKKyAgYXNzZXJ0KGN1cnJlbnQgPj0gYnVmZmVyKTsKKyAgcmV0dXJuIGN1cnJlbnQ7
Cit9CisKKyNpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitzdGQ6OnN0cmluZyB2YWx1ZVRv
U3RyaW5nKEludCB2YWx1ZSkgeworICByZXR1cm4gdmFsdWVUb1N0cmluZyhMYXJnZXN0SW50KHZh
bHVlKSk7Cit9CisKK3N0ZDo6c3RyaW5nIHZhbHVlVG9TdHJpbmcoVUludCB2YWx1ZSkgeworICBy
ZXR1cm4gdmFsdWVUb1N0cmluZyhMYXJnZXN0VUludCh2YWx1ZSkpOworfQorCisjZW5kaWYgLy8g
IyBpZiBkZWZpbmVkKEpTT05fSEFTX0lOVDY0KQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5n
KGRvdWJsZSB2YWx1ZSwgYm9vbCB1c2VTcGVjaWFsRmxvYXRzLCB1bnNpZ25lZCBpbnQgcHJlY2lz
aW9uKSB7CisgIC8vIEFsbG9jYXRlIGEgYnVmZmVyIHRoYXQgaXMgbW9yZSB0aGFuIGxhcmdlIGVu
b3VnaCB0byBzdG9yZSB0aGUgMTYgZGlnaXRzIG9mCisgIC8vIHByZWNpc2lvbiByZXF1ZXN0ZWQg
YmVsb3cuCisgIGNoYXIgYnVmZmVyWzMyXTsKKyAgaW50IGxlbiA9IC0xOworCisgIGNoYXIgZm9y
bWF0U3RyaW5nWzZdOworICBzcHJpbnRmKGZvcm1hdFN0cmluZywgIiUlLiVkZyIsIHByZWNpc2lv
bik7CisKKyAgLy8gUHJpbnQgaW50byB0aGUgYnVmZmVyLiBXZSBuZWVkIG5vdCByZXF1ZXN0IHRo
ZSBhbHRlcm5hdGl2ZSByZXByZXNlbnRhdGlvbgorICAvLyB0aGF0IGFsd2F5cyBoYXMgYSBkZWNp
bWFsIHBvaW50IGJlY2F1c2UgSlNPTiBkb2Vzbid0IGRpc3Rpbmdpc2ggdGhlCisgIC8vIGNvbmNl
cHRzIG9mIHJlYWxzIGFuZCBpbnRlZ2Vycy4KKyAgaWYgKGlzZmluaXRlKHZhbHVlKSkgeworICAg
IGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIGZvcm1hdFN0cmluZywgdmFs
dWUpOworICB9IGVsc2UgeworICAgIC8vIElFRUUgc3RhbmRhcmQgc3RhdGVzIHRoYXQgTmFOIHZh
bHVlcyB3aWxsIG5vdCBjb21wYXJlIHRvIHRoZW1zZWx2ZXMKKyAgICBpZiAodmFsdWUgIT0gdmFs
dWUpIHsKKyAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHVzZVNw
ZWNpYWxGbG9hdHMgPyAiTmFOIiA6ICJudWxsIik7CisgICAgfSBlbHNlIGlmICh2YWx1ZSA8IDAp
IHsKKyAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHVzZVNwZWNp
YWxGbG9hdHMgPyAiLUluZmluaXR5IiA6ICItMWUrOTk5OSIpOworICAgIH0gZWxzZSB7CisgICAg
ICBsZW4gPSBzbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCB1c2VTcGVjaWFsRmxvYXRz
ID8gIkluZmluaXR5IiA6ICIxZSs5OTk5Iik7CisgICAgfQorICAgIC8vIEZvciB0aG9zZSwgd2Ug
ZG8gbm90IG5lZWQgdG8gY2FsbCBmaXhOdW1Mb2MsIGJ1dCBpdCBpcyBmYXN0LgorICB9CisgIGFz
c2VydChsZW4gPj0gMCk7CisgIGZpeE51bWVyaWNMb2NhbGUoYnVmZmVyLCBidWZmZXIgKyBsZW4p
OworICByZXR1cm4gYnVmZmVyOworfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWVUb1N0cmluZyh2YWx1ZSwgZmFsc2UsIDE3KTsgfQorCitz
dGQ6OnN0cmluZyB2YWx1ZVRvU3RyaW5nKGJvb2wgdmFsdWUpIHsgcmV0dXJuIHZhbHVlID8gInRy
dWUiIDogImZhbHNlIjsgfQorCitzdGQ6OnN0cmluZyB2YWx1ZVRvUXVvdGVkU3RyaW5nKGNvbnN0
IGNoYXIqIHZhbHVlKSB7CisgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgIHJldHVybiAiIjsKKyAg
Ly8gTm90IHN1cmUgaG93IHRvIGhhbmRsZSB1bmljb2RlLi4uCisgIGlmIChzdHJwYnJrKHZhbHVl
LCAiXCJcXFxiXGZcblxyXHQiKSA9PSBOVUxMICYmCisgICAgICAhY29udGFpbnNDb250cm9sQ2hh
cmFjdGVyKHZhbHVlKSkKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcoIlwiIikgKyB2YWx1ZSArICJc
IiI7CisgIC8vIFdlIGhhdmUgdG8gd2FsayB2YWx1ZSBhbmQgZXNjYXBlIGFueSBzcGVjaWFsIGNo
YXJhY3RlcnMuCisgIC8vIEFwcGVuZGluZyB0byBzdGQ6OnN0cmluZyBpcyBub3QgZWZmaWNpZW50
LCBidXQgdGhpcyBzaG91bGQgYmUgcmFyZS4KKyAgLy8gKE5vdGU6IGZvcndhcmQgc2xhc2hlcyBh
cmUgKm5vdCogcmFyZSwgYnV0IEkgYW0gbm90IGVzY2FwaW5nIHRoZW0uKQorICBzdGQ6OnN0cmlu
Zzo6c2l6ZV90eXBlIG1heHNpemUgPQorICAgICAgc3RybGVuKHZhbHVlKSAqIDIgKyAzOyAvLyBh
bGxlc2NhcGVkK3F1b3RlcytOVUxMCisgIHN0ZDo6c3RyaW5nIHJlc3VsdDsKKyAgcmVzdWx0LnJl
c2VydmUobWF4c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9jcworICByZXN1bHQgKz0g
IlwiIjsKKyAgZm9yIChjb25zdCBjaGFyKiBjID0gdmFsdWU7ICpjICE9IDA7ICsrYykgeworICAg
IHN3aXRjaCAoKmMpIHsKKyAgICBjYXNlICdcIic6CisgICAgICByZXN1bHQgKz0gIlxcXCIiOwor
ICAgICAgYnJlYWs7CisgICAgY2FzZSAnXFwnOgorICAgICAgcmVzdWx0ICs9ICJcXFxcIjsKKyAg
ICAgIGJyZWFrOworICAgIGNhc2UgJ1xiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxiIjsKKyAgICAg
IGJyZWFrOworICAgIGNhc2UgJ1xmJzoKKyAgICAgIHJlc3VsdCArPSAiXFxmIjsKKyAgICAgIGJy
ZWFrOworICAgIGNhc2UgJ1xuJzoKKyAgICAgIHJlc3VsdCArPSAiXFxuIjsKKyAgICAgIGJyZWFr
OworICAgIGNhc2UgJ1xyJzoKKyAgICAgIHJlc3VsdCArPSAiXFxyIjsKKyAgICAgIGJyZWFrOwor
ICAgIGNhc2UgJ1x0JzoKKyAgICAgIHJlc3VsdCArPSAiXFx0IjsKKyAgICAgIGJyZWFrOworICAg
IC8vIGNhc2UgJy8nOgorICAgIC8vIEV2ZW4gdGhvdWdoIFwvIGlzIGNvbnNpZGVyZWQgYSBsZWdh
bCBlc2NhcGUgaW4gSlNPTiwgYSBiYXJlCisgICAgLy8gc2xhc2ggaXMgYWxzbyBsZWdhbCwgc28g
SSBzZWUgbm8gcmVhc29uIHRvIGVzY2FwZSBpdC4KKyAgICAvLyAoSSBob3BlIEkgYW0gbm90IG1p
c3VuZGVyc3RhbmRpbmcgc29tZXRoaW5nLgorICAgIC8vIGJsZXAgbm90ZXM6IGFjdHVhbGx5IGVz
Y2FwaW5nIFwvIG1heSBiZSB1c2VmdWwgaW4gamF2YXNjcmlwdCB0byBhdm9pZCA8LworICAgIC8v
IHNlcXVlbmNlLgorICAgIC8vIFNob3VsZCBhZGQgYSBmbGFnIHRvIGFsbG93IHRoaXMgY29tcGF0
aWJpbGl0eSBtb2RlIGFuZCBwcmV2ZW50IHRoaXMKKyAgICAvLyBzZXF1ZW5jZSBmcm9tIG9jY3Vy
cmluZy4KKyAgICBkZWZhdWx0OgorICAgICAgaWYgKGlzQ29udHJvbENoYXJhY3RlcigqYykpIHsK
KyAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKKyAgICAgICAgb3NzIDw8ICJcXHUiIDw8
IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpCisgICAgICAg
ICAgICA8PCBzdGQ6OnNldHcoNCkgPDwgc3RhdGljX2Nhc3Q8aW50PigqYyk7CisgICAgICAgIHJl
c3VsdCArPSBvc3Muc3RyKCk7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXN1bHQgKz0gKmM7
CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgcmVzdWx0ICs9ICJcIiI7Cisg
IHJldHVybiByZXN1bHQ7Cit9CisKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS91cGNhc3RlL3VwY2Fz
dGUvYmxvYi9tYXN0ZXIvc3JjL3VwY29yZS9zcmMvY3N0cmluZy9zdHJucGJyay5jcHAKK3N0YXRp
YyBjaGFyIGNvbnN0KiBzdHJucGJyayhjaGFyIGNvbnN0KiBzLCBjaGFyIGNvbnN0KiBhY2NlcHQs
IHNpemVfdCBuKSB7CisgIGFzc2VydCgocyB8fCAhbikgJiYgYWNjZXB0KTsKKworICBjaGFyIGNv
bnN0KiBjb25zdCBlbmQgPSBzICsgbjsKKyAgZm9yIChjaGFyIGNvbnN0KiBjdXIgPSBzOyBjdXIg
PCBlbmQ7ICsrY3VyKSB7CisgICAgaW50IGNvbnN0IGMgPSAqY3VyOworICAgIGZvciAoY2hhciBj
b25zdCogYSA9IGFjY2VwdDsgKmE7ICsrYSkgeworICAgICAgaWYgKCphID09IGMpIHsKKyAgICAg
ICAgcmV0dXJuIGN1cjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuIE5VTEw7Cit9Citz
dGF0aWMgc3RkOjpzdHJpbmcgdmFsdWVUb1F1b3RlZFN0cmluZ04oY29uc3QgY2hhciogdmFsdWUs
IHVuc2lnbmVkIGxlbmd0aCkgeworICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICByZXR1cm4gIiI7
CisgIC8vIE5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdW5pY29kZS4uLgorICBpZiAoc3RybnBicmso
dmFsdWUsICJcIlxcXGJcZlxuXHJcdCIsIGxlbmd0aCkgPT0gTlVMTCAmJgorICAgICAgIWNvbnRh
aW5zQ29udHJvbENoYXJhY3RlcjAodmFsdWUsIGxlbmd0aCkpCisgICAgcmV0dXJuIHN0ZDo6c3Ry
aW5nKCJcIiIpICsgdmFsdWUgKyAiXCIiOworICAvLyBXZSBoYXZlIHRvIHdhbGsgdmFsdWUgYW5k
IGVzY2FwZSBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzLgorICAvLyBBcHBlbmRpbmcgdG8gc3RkOjpz
dHJpbmcgaXMgbm90IGVmZmljaWVudCwgYnV0IHRoaXMgc2hvdWxkIGJlIHJhcmUuCisgIC8vIChO
b3RlOiBmb3J3YXJkIHNsYXNoZXMgYXJlICpub3QqIHJhcmUsIGJ1dCBJIGFtIG5vdCBlc2NhcGlu
ZyB0aGVtLikKKyAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBtYXhzaXplID0KKyAgICAgIGxlbmd0
aCAqIDIgKyAzOyAvLyBhbGxlc2NhcGVkK3F1b3RlcytOVUxMCisgIHN0ZDo6c3RyaW5nIHJlc3Vs
dDsKKyAgcmVzdWx0LnJlc2VydmUobWF4c2l6ZSk7IC8vIHRvIGF2b2lkIGxvdHMgb2YgbWFsbG9j
cworICByZXN1bHQgKz0gIlwiIjsKKyAgY2hhciBjb25zdCogZW5kID0gdmFsdWUgKyBsZW5ndGg7
CisgIGZvciAoY29uc3QgY2hhciogYyA9IHZhbHVlOyBjICE9IGVuZDsgKytjKSB7CisgICAgc3dp
dGNoICgqYykgeworICAgIGNhc2UgJ1wiJzoKKyAgICAgIHJlc3VsdCArPSAiXFxcIiI7CisgICAg
ICBicmVhazsKKyAgICBjYXNlICdcXCc6CisgICAgICByZXN1bHQgKz0gIlxcXFwiOworICAgICAg
YnJlYWs7CisgICAgY2FzZSAnXGInOgorICAgICAgcmVzdWx0ICs9ICJcXGIiOworICAgICAgYnJl
YWs7CisgICAgY2FzZSAnXGYnOgorICAgICAgcmVzdWx0ICs9ICJcXGYiOworICAgICAgYnJlYWs7
CisgICAgY2FzZSAnXG4nOgorICAgICAgcmVzdWx0ICs9ICJcXG4iOworICAgICAgYnJlYWs7Cisg
ICAgY2FzZSAnXHInOgorICAgICAgcmVzdWx0ICs9ICJcXHIiOworICAgICAgYnJlYWs7CisgICAg
Y2FzZSAnXHQnOgorICAgICAgcmVzdWx0ICs9ICJcXHQiOworICAgICAgYnJlYWs7CisgICAgLy8g
Y2FzZSAnLyc6CisgICAgLy8gRXZlbiB0aG91Z2ggXC8gaXMgY29uc2lkZXJlZCBhIGxlZ2FsIGVz
Y2FwZSBpbiBKU09OLCBhIGJhcmUKKyAgICAvLyBzbGFzaCBpcyBhbHNvIGxlZ2FsLCBzbyBJIHNl
ZSBubyByZWFzb24gdG8gZXNjYXBlIGl0LgorICAgIC8vIChJIGhvcGUgSSBhbSBub3QgbWlzdW5k
ZXJzdGFuZGluZyBzb21ldGhpbmcuKQorICAgIC8vIGJsZXAgbm90ZXM6IGFjdHVhbGx5IGVzY2Fw
aW5nIFwvIG1heSBiZSB1c2VmdWwgaW4gamF2YXNjcmlwdCB0byBhdm9pZCA8LworICAgIC8vIHNl
cXVlbmNlLgorICAgIC8vIFNob3VsZCBhZGQgYSBmbGFnIHRvIGFsbG93IHRoaXMgY29tcGF0aWJp
bGl0eSBtb2RlIGFuZCBwcmV2ZW50IHRoaXMKKyAgICAvLyBzZXF1ZW5jZSBmcm9tIG9jY3Vycmlu
Zy4KKyAgICBkZWZhdWx0OgorICAgICAgaWYgKChpc0NvbnRyb2xDaGFyYWN0ZXIoKmMpKSB8fCAo
KmMgPT0gMCkpIHsKKyAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKKyAgICAgICAgb3Nz
IDw8ICJcXHUiIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6c2V0ZmlsbCgn
MCcpCisgICAgICAgICAgICA8PCBzdGQ6OnNldHcoNCkgPDwgc3RhdGljX2Nhc3Q8aW50PigqYyk7
CisgICAgICAgIHJlc3VsdCArPSBvc3Muc3RyKCk7CisgICAgICB9IGVsc2UgeworICAgICAgICBy
ZXN1bHQgKz0gKmM7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgcmVzdWx0
ICs9ICJcIiI7CisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIENsYXNzIFdyaXRlcgorLy8gLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCitXcml0ZXI6On5Xcml0ZXIoKSB7fQorCisvLyBDbGFzcyBGYXN0V3JpdGVyCisvLyAv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KKworRmFzdFdyaXRlcjo6RmFzdFdyaXRlcigpCisgICAgOiB5YW1sQ29tcGF0aWJs
aXR5RW5hYmxlZF8oZmFsc2UpLCBkcm9wTnVsbFBsYWNlaG9sZGVyc18oZmFsc2UpLAorICAgICAg
b21pdEVuZGluZ0xpbmVGZWVkXyhmYWxzZSkge30KKwordm9pZCBGYXN0V3JpdGVyOjplbmFibGVZ
QU1MQ29tcGF0aWJpbGl0eSgpIHsgeWFtbENvbXBhdGlibGl0eUVuYWJsZWRfID0gdHJ1ZTsgfQor
Cit2b2lkIEZhc3RXcml0ZXI6OmRyb3BOdWxsUGxhY2Vob2xkZXJzKCkgeyBkcm9wTnVsbFBsYWNl
aG9sZGVyc18gPSB0cnVlOyB9CisKK3ZvaWQgRmFzdFdyaXRlcjo6b21pdEVuZGluZ0xpbmVGZWVk
KCkgeyBvbWl0RW5kaW5nTGluZUZlZWRfID0gdHJ1ZTsgfQorCitzdGQ6OnN0cmluZyBGYXN0V3Jp
dGVyOjp3cml0ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBkb2N1bWVudF8gPSAiIjsKKyAgd3Jp
dGVWYWx1ZShyb290KTsKKyAgaWYgKCFvbWl0RW5kaW5nTGluZUZlZWRfKQorICAgIGRvY3VtZW50
XyArPSAiXG4iOworICByZXR1cm4gZG9jdW1lbnRfOworfQorCit2b2lkIEZhc3RXcml0ZXI6Ondy
aXRlVmFsdWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHN3aXRjaCAodmFsdWUudHlwZSgpKSB7
CisgIGNhc2UgbnVsbFZhbHVlOgorICAgIGlmICghZHJvcE51bGxQbGFjZWhvbGRlcnNfKQorICAg
ICAgZG9jdW1lbnRfICs9ICJudWxsIjsKKyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAg
ICBkb2N1bWVudF8gKz0gdmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSk7CisgICAg
YnJlYWs7CisgIGNhc2UgdWludFZhbHVlOgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5n
KHZhbHVlLmFzTGFyZ2VzdFVJbnQoKSk7CisgICAgYnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgor
ICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzRG91YmxlKCkpOworICAgIGJy
ZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBm
b3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAgY2hhciBjb25zdCog
ZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYg
KG9rKSBkb2N1bWVudF8gKz0gdmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZW5kLXN0cikpOworICAgIGJyZWFrOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVl
OgorICAgIGRvY3VtZW50XyArPSB2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKTsKKyAgICBi
cmVhazsKKyAgY2FzZSBhcnJheVZhbHVlOiB7CisgICAgZG9jdW1lbnRfICs9ICdbJzsKKyAgICBp
bnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwg
c2l6ZTsgKytpbmRleCkgeworICAgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgZG9jdW1lbnRf
ICs9ICcsJzsKKyAgICAgIHdyaXRlVmFsdWUodmFsdWVbaW5kZXhdKTsKKyAgICB9CisgICAgZG9j
dW1lbnRfICs9ICddJzsKKyAgfSBicmVhazsKKyAgY2FzZSBvYmplY3RWYWx1ZTogeworICAgIFZh
bHVlOjpNZW1iZXJzIG1lbWJlcnModmFsdWUuZ2V0TWVtYmVyTmFtZXMoKSk7CisgICAgZG9jdW1l
bnRfICs9ICd7JzsKKyAgICBmb3IgKFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJl
cnMuYmVnaW4oKTsgaXQgIT0gbWVtYmVycy5lbmQoKTsKKyAgICAgICAgICsraXQpIHsKKyAgICAg
IGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lID0gKml0OworICAgICAgaWYgKGl0ICE9IG1lbWJlcnMu
YmVnaW4oKSkKKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgIGRvY3VtZW50XyArPSB2
YWx1ZVRvUXVvdGVkU3RyaW5nTihuYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG5h
bWUubGVuZ3RoKCkpKTsKKyAgICAgIGRvY3VtZW50XyArPSB5YW1sQ29tcGF0aWJsaXR5RW5hYmxl
ZF8gPyAiOiAiIDogIjoiOworICAgICAgd3JpdGVWYWx1ZSh2YWx1ZVtuYW1lXSk7CisgICAgfQor
ICAgIGRvY3VtZW50XyArPSAnfSc7CisgIH0gYnJlYWs7CisgIH0KK30KKworLy8gQ2xhc3MgU3R5
bGVkV3JpdGVyCisvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworU3R5bGVkV3JpdGVyOjpTdHlsZWRXcml0ZXIoKQor
ICAgIDogcmlnaHRNYXJnaW5fKDc0KSwgaW5kZW50U2l6ZV8oMyksIGFkZENoaWxkVmFsdWVzXygp
IHt9CisKK3N0ZDo6c3RyaW5nIFN0eWxlZFdyaXRlcjo6d3JpdGUoY29uc3QgVmFsdWUmIHJvb3Qp
IHsKKyAgZG9jdW1lbnRfID0gIiI7CisgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNlOworICBpbmRl
bnRTdHJpbmdfID0gIiI7CisgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKHJvb3QpOworICB3cml0
ZVZhbHVlKHJvb3QpOworICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShyb290KTsK
KyAgZG9jdW1lbnRfICs9ICJcbiI7CisgIHJldHVybiBkb2N1bWVudF87Cit9CisKK3ZvaWQgU3R5
bGVkV3JpdGVyOjp3cml0ZVZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICBzd2l0Y2ggKHZh
bHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUoIm51bGwiKTsK
KyAgICBicmVhazsKKyAgY2FzZSBpbnRWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmlu
Zyh2YWx1ZS5hc0xhcmdlc3RJbnQoKSkpOworICAgIGJyZWFrOworICBjYXNlIHVpbnRWYWx1ZToK
KyAgICBwdXNoVmFsdWUodmFsdWVUb1N0cmluZyh2YWx1ZS5hc0xhcmdlc3RVSW50KCkpKTsKKyAg
ICBicmVhazsKKyAgY2FzZSByZWFsVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNEb3VibGUoKSkpOworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7
CisgICAgLy8gSXMgTlVMTCBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNv
bnN0KiBzdHI7CisgICAgY2hhciBjb25zdCogZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRT
dHJpbmcoJnN0ciwgJmVuZCk7CisgICAgaWYgKG9rKSBwdXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0
cmluZ04oc3RyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZW5kLXN0cikpKTsKKyAgICBlbHNlIHB1
c2hWYWx1ZSgiIik7CisgICAgYnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAg
cHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAg
Y2FzZSBhcnJheVZhbHVlOgorICAgIHdyaXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7
CisgIGNhc2Ugb2JqZWN0VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVl
LmdldE1lbWJlck5hbWVzKCkpOworICAgIGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNo
VmFsdWUoInt9Iik7CisgICAgZWxzZSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAg
ICAgIGluZGVudCgpOworICAgICAgVmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVy
cy5iZWdpbigpOworICAgICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYg
bmFtZSA9ICppdDsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1l
XTsKKyAgICAgICAgd3JpdGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAg
IHdyaXRlV2l0aEluZGVudCh2YWx1ZVRvUXVvdGVkU3RyaW5nKG5hbWUuY19zdHIoKSkpOworICAg
ICAgICBkb2N1bWVudF8gKz0gIiA6ICI7CisgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7
CisgICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMuZW5kKCkpIHsKKyAgICAgICAgICB3cml0ZUNv
bW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudF8gKz0gJywnOworICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5k
ZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAgICB9CisgIH0gYnJlYWs7Cisg
IH0KK30KKwordm9pZCBTdHlsZWRXcml0ZXI6OndyaXRlQXJyYXlWYWx1ZShjb25zdCBWYWx1ZSYg
dmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNpemUgPT0g
MCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJvb2wgaXNBcnJheU11bHRp
TGluZSA9IGlzTXVsdGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAoaXNBcnJheU11bHRpTGluZSkg
eworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAgICAgIGJv
b2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVuc2lnbmVk
IGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3QgVmFsdWUmIGNoaWxk
VmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNo
aWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3cml0ZVdp
dGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
IHdyaXRlSW5kZW50KCk7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXplKSB7CisgICAgICAgICAgd3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnRfICs9ICcsJzsKKyAgICAgICAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1ZSk7CisgICAgICB9CisgICAgICB1bmluZGVu
dCgpOworICAgICAgd3JpdGVXaXRoSW5kZW50KCJdIik7CisgICAgfSBlbHNlIC8vIG91dHB1dCBv
biBhIHNpbmdsZSBsaW5lCisgICAgeworICAgICAgYXNzZXJ0KGNoaWxkVmFsdWVzXy5zaXplKCkg
PT0gc2l6ZSk7CisgICAgICBkb2N1bWVudF8gKz0gIlsgIjsKKyAgICAgIGZvciAodW5zaWduZWQg
aW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID4g
MCkKKyAgICAgICAgICBkb2N1bWVudF8gKz0gIiwgIjsKKyAgICAgICAgZG9jdW1lbnRfICs9IGNo
aWxkVmFsdWVzX1tpbmRleF07CisgICAgICB9CisgICAgICBkb2N1bWVudF8gKz0gIiBdIjsKKyAg
ICB9CisgIH0KK30KKworYm9vbCBTdHlsZWRXcml0ZXI6OmlzTXVsdGluZUFycmF5KGNvbnN0IFZh
bHVlJiB2YWx1ZSkgeworICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRp
TGluZSA9IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7
CisgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytp
bmRleCkgeworICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAg
IGlzTXVsdGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2Jq
ZWN0KCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDAp
OworICB9CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4
IGxpbmUgbGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBh
ZGRDaGlsZFZhbHVlc18gPSB0cnVlOworICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0g
MSkgKiAyOyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAoaW50IGluZGV4ID0gMDsg
aW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZh
bHVlW2luZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVlOworICAgICAgfQorICAg
ICAgd3JpdGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hp
bGRWYWx1ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9
IGZhbHNlOworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSBy
aWdodE1hcmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQorCit2b2lkIFN0eWxl
ZFdyaXRlcjo6cHVzaFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkgeworICBpZiAoYWRk
Q2hpbGRWYWx1ZXNfKQorICAgIGNoaWxkVmFsdWVzXy5wdXNoX2JhY2sodmFsdWUpOworICBlbHNl
CisgICAgZG9jdW1lbnRfICs9IHZhbHVlOworfQorCit2b2lkIFN0eWxlZFdyaXRlcjo6d3JpdGVJ
bmRlbnQoKSB7CisgIGlmICghZG9jdW1lbnRfLmVtcHR5KCkpIHsKKyAgICBjaGFyIGxhc3QgPSBk
b2N1bWVudF9bZG9jdW1lbnRfLmxlbmd0aCgpIC0gMV07CisgICAgaWYgKGxhc3QgPT0gJyAnKSAv
LyBhbHJlYWR5IGluZGVudGVkCisgICAgICByZXR1cm47CisgICAgaWYgKGxhc3QgIT0gJ1xuJykg
Ly8gQ29tbWVudHMgbWF5IGFkZCBuZXctbGluZQorICAgICAgZG9jdW1lbnRfICs9ICdcbic7Cisg
IH0KKyAgZG9jdW1lbnRfICs9IGluZGVudFN0cmluZ187Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVy
Ojp3cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7CisgIHdyaXRlSW5k
ZW50KCk7CisgIGRvY3VtZW50XyArPSB2YWx1ZTsKK30KKwordm9pZCBTdHlsZWRXcml0ZXI6Omlu
ZGVudCgpIHsgaW5kZW50U3RyaW5nXyArPSBzdGQ6OnN0cmluZyhpbmRlbnRTaXplXywgJyAnKTsg
fQorCit2b2lkIFN0eWxlZFdyaXRlcjo6dW5pbmRlbnQoKSB7CisgIGFzc2VydChpbnQoaW5kZW50
U3RyaW5nXy5zaXplKCkpID49IGluZGVudFNpemVfKTsKKyAgaW5kZW50U3RyaW5nXy5yZXNpemUo
aW5kZW50U3RyaW5nXy5zaXplKCkgLSBpbmRlbnRTaXplXyk7Cit9CisKK3ZvaWQgU3R5bGVkV3Jp
dGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAo
IXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47CisKKyAgZG9jdW1l
bnRfICs9ICJcbiI7CisgIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21t
ZW50ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUpOworICBzdGQ6OnN0cmluZzo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29t
bWVudC5lbmQoKSkgeworICAgIGRvY3VtZW50XyArPSAqaXRlcjsKKyAgICBpZiAoKml0ZXIgPT0g
J1xuJyAmJgorICAgICAgIChpdGVyICE9IGNvbW1lbnQuZW5kKCkgJiYgKihpdGVyICsgMSkgPT0g
Jy8nKSkKKyAgICAgIHdyaXRlSW5kZW50KCk7CisgICAgKytpdGVyOworICB9CisKKyAgLy8gQ29t
bWVudHMgYXJlIHN0cmlwcGVkIG9mIHRyYWlsaW5nIG5ld2xpbmVzLCBzbyBhZGQgb25lIGhlcmUK
KyAgZG9jdW1lbnRfICs9ICJcbiI7Cit9CisKK3ZvaWQgU3R5bGVkV3JpdGVyOjp3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBpZiAocm9vdC5o
YXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2FtZUxpbmUpKQorICAgIGRvY3VtZW50XyArPSAiICIg
KyByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJvb3Qu
aGFzQ29tbWVudChjb21tZW50QWZ0ZXIpKSB7CisgICAgZG9jdW1lbnRfICs9ICJcbiI7CisgICAg
ZG9jdW1lbnRfICs9IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXIpOworICAgIGRvY3VtZW50
XyArPSAiXG4iOworICB9Cit9CisKK2Jvb2wgU3R5bGVkV3JpdGVyOjpoYXNDb21tZW50Rm9yVmFs
dWUoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIHJldHVybiB2YWx1ZS5oYXNDb21tZW50KGNvbW1l
bnRCZWZvcmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlck9uU2Ft
ZUxpbmUpIHx8CisgICAgICAgICB2YWx1ZS5oYXNDb21tZW50KGNvbW1lbnRBZnRlcik7Cit9CisK
Ky8vIENsYXNzIFN0eWxlZFN0cmVhbVdyaXRlcgorLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1N0eWxlZFN0cmVh
bVdyaXRlcjo6U3R5bGVkU3RyZWFtV3JpdGVyKHN0ZDo6c3RyaW5nIGluZGVudGF0aW9uKQorICAg
IDogZG9jdW1lbnRfKE5VTEwpLCByaWdodE1hcmdpbl8oNzQpLCBpbmRlbnRhdGlvbl8oaW5kZW50
YXRpb24pLAorICAgICAgYWRkQ2hpbGRWYWx1ZXNfKCkge30KKwordm9pZCBTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlKHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBWYWx1ZSYgcm9vdCkgeworICBk
b2N1bWVudF8gPSAmb3V0OworICBhZGRDaGlsZFZhbHVlc18gPSBmYWxzZTsKKyAgaW5kZW50U3Ry
aW5nXyA9ICIiOworICBpbmRlbnRlZF8gPSB0cnVlOworICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1
ZShyb290KTsKKyAgaWYgKCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGluZGVudGVkXyA9
IHRydWU7CisgIHdyaXRlVmFsdWUocm9vdCk7CisgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNh
bWVMaW5lKHJvb3QpOworICAqZG9jdW1lbnRfIDw8ICJcbiI7CisgIGRvY3VtZW50XyA9IE5VTEw7
IC8vIEZvcmdldCB0aGUgc3RyZWFtLCBmb3Igc2FmZXR5LgorfQorCit2b2lkIFN0eWxlZFN0cmVh
bVdyaXRlcjo6d3JpdGVWYWx1ZShjb25zdCBWYWx1ZSYgdmFsdWUpIHsKKyAgc3dpdGNoICh2YWx1
ZS50eXBlKCkpIHsKKyAgY2FzZSBudWxsVmFsdWU6CisgICAgcHVzaFZhbHVlKCJudWxsIik7Cisg
ICAgYnJlYWs7CisgIGNhc2UgaW50VmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmco
dmFsdWUuYXNMYXJnZXN0SW50KCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSB1aW50VmFsdWU6Cisg
ICAgcHVzaFZhbHVlKHZhbHVlVG9TdHJpbmcodmFsdWUuYXNMYXJnZXN0VUludCgpKSk7CisgICAg
YnJlYWs7CisgIGNhc2UgcmVhbFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZh
bHVlLmFzRG91YmxlKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBzdHJpbmdWYWx1ZToKKyAgewor
ICAgIC8vIElzIE5VTEwgcG9zc2libGUgZm9yIHZhbHVlLnN0cmluZ18/CisgICAgY2hhciBjb25z
dCogc3RyOworICAgIGNoYXIgY29uc3QqIGVuZDsKKyAgICBib29sIG9rID0gdmFsdWUuZ2V0U3Ry
aW5nKCZzdHIsICZlbmQpOworICAgIGlmIChvaykgcHVzaFZhbHVlKHZhbHVlVG9RdW90ZWRTdHJp
bmdOKHN0ciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZC1zdHIpKSk7CisgICAgZWxzZSBwdXNo
VmFsdWUoIiIpOworICAgIGJyZWFrOworICB9CisgIGNhc2UgYm9vbGVhblZhbHVlOgorICAgIHB1
c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzQm9vbCgpKSk7CisgICAgYnJlYWs7CisgIGNh
c2UgYXJyYXlWYWx1ZToKKyAgICB3cml0ZUFycmF5VmFsdWUodmFsdWUpOworICAgIGJyZWFrOwor
ICBjYXNlIG9iamVjdFZhbHVlOiB7CisgICAgVmFsdWU6Ok1lbWJlcnMgbWVtYmVycyh2YWx1ZS5n
ZXRNZW1iZXJOYW1lcygpKTsKKyAgICBpZiAobWVtYmVycy5lbXB0eSgpKQorICAgICAgcHVzaFZh
bHVlKCJ7fSIpOworICAgIGVsc2UgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJ7Iik7CisgICAg
ICBpbmRlbnQoKTsKKyAgICAgIFZhbHVlOjpNZW1iZXJzOjppdGVyYXRvciBpdCA9IG1lbWJlcnMu
YmVnaW4oKTsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5h
bWUgPSAqaXQ7CisgICAgICAgIGNvbnN0IFZhbHVlJiBjaGlsZFZhbHVlID0gdmFsdWVbbmFtZV07
CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZhbHVlKGNoaWxkVmFsdWUpOworICAgICAgICB3
cml0ZVdpdGhJbmRlbnQodmFsdWVUb1F1b3RlZFN0cmluZyhuYW1lLmNfc3RyKCkpKTsKKyAgICAg
ICAgKmRvY3VtZW50XyA8PCAiIDogIjsKKyAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsK
KyAgICAgICAgaWYgKCsraXQgPT0gbWVtYmVycy5lbmQoKSkgeworICAgICAgICAgIHdyaXRlQ29t
bWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgICpkb2N1bWVudF8gPDwgIiwiOworICAgICAgICB3cml0ZUNvbW1l
bnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVlKTsKKyAgICAgIH0KKyAgICAgIHVuaW5k
ZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0iKTsKKyAgICB9CisgIH0gYnJlYWs7Cisg
IH0KK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OndyaXRlQXJyYXlWYWx1ZShjb25zdCBW
YWx1ZSYgdmFsdWUpIHsKKyAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgaWYgKHNp
emUgPT0gMCkKKyAgICBwdXNoVmFsdWUoIltdIik7CisgIGVsc2UgeworICAgIGJvb2wgaXNBcnJh
eU11bHRpTGluZSA9IGlzTXVsdGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAoaXNBcnJheU11bHRp
TGluZSkgeworICAgICAgd3JpdGVXaXRoSW5kZW50KCJbIik7CisgICAgICBpbmRlbnQoKTsKKyAg
ICAgIGJvb2wgaGFzQ2hpbGRWYWx1ZSA9ICFjaGlsZFZhbHVlc18uZW1wdHkoKTsKKyAgICAgIHVu
c2lnbmVkIGluZGV4ID0gMDsKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3QgVmFsdWUm
IGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgICAgIHdyaXRlQ29tbWVudEJlZm9yZVZh
bHVlKGNoaWxkVmFsdWUpOworICAgICAgICBpZiAoaGFzQ2hpbGRWYWx1ZSkKKyAgICAgICAgICB3
cml0ZVdpdGhJbmRlbnQoY2hpbGRWYWx1ZXNfW2luZGV4XSk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgIGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAgICAgICAgIGluZGVudGVk
XyA9IHRydWU7CisgICAgICAgICAgd3JpdGVWYWx1ZShjaGlsZFZhbHVlKTsKKyAgICAgICAgICBp
bmRlbnRlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytpbmRleCA9PSBzaXpl
KSB7CisgICAgICAgICAgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY2hpbGRWYWx1
ZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgKmRvY3VtZW50XyA8PCAi
LCI7CisgICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUp
OworICAgICAgfQorICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIp
OworICAgIH0gZWxzZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFz
c2VydChjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgKmRvY3VtZW50XyA8PCAi
WyAiOworICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc2l6ZTsgKytpbmRl
eCkgeworICAgICAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICAgICpkb2N1bWVudF8gPDwgIiwg
IjsKKyAgICAgICAgKmRvY3VtZW50XyA8PCBjaGlsZFZhbHVlc19baW5kZXhdOworICAgICAgfQor
ICAgICAgKmRvY3VtZW50XyA8PCAiIF0iOworICAgIH0KKyAgfQorfQorCitib29sIFN0eWxlZFN0
cmVhbVdyaXRlcjo6aXNNdWx0aW5lQXJyYXkoY29uc3QgVmFsdWUmIHZhbHVlKSB7CisgIGludCBz
aXplID0gdmFsdWUuc2l6ZSgpOworICBib29sIGlzTXVsdGlMaW5lID0gc2l6ZSAqIDMgPj0gcmln
aHRNYXJnaW5fOworICBjaGlsZFZhbHVlc18uY2xlYXIoKTsKKyAgZm9yIChpbnQgaW5kZXggPSAw
OyBpbmRleCA8IHNpemUgJiYgIWlzTXVsdGlMaW5lOyArK2luZGV4KSB7CisgICAgY29uc3QgVmFs
dWUmIGNoaWxkVmFsdWUgPSB2YWx1ZVtpbmRleF07CisgICAgaXNNdWx0aUxpbmUgPSAoKGNoaWxk
VmFsdWUuaXNBcnJheSgpIHx8IGNoaWxkVmFsdWUuaXNPYmplY3QoKSkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkVmFsdWUuc2l6ZSgpID4gMCk7CisgIH0KKyAgaWYgKCFpc011bHRp
TGluZSkgLy8gY2hlY2sgaWYgbGluZSBsZW5ndGggPiBtYXggbGluZSBsZW5ndGgKKyAgeworICAg
IGNoaWxkVmFsdWVzXy5yZXNlcnZlKHNpemUpOworICAgIGFkZENoaWxkVmFsdWVzXyA9IHRydWU7
CisgICAgaW50IGxpbmVMZW5ndGggPSA0ICsgKHNpemUgLSAxKSAqIDI7IC8vICdbICcgKyAnLCAn
Km4gKyAnIF0nCisgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7ICsraW5kZXgp
IHsKKyAgICAgIGlmIChoYXNDb21tZW50Rm9yVmFsdWUodmFsdWVbaW5kZXhdKSkgeworICAgICAg
ICBpc011bHRpTGluZSA9IHRydWU7CisgICAgICB9CisgICAgICB3cml0ZVZhbHVlKHZhbHVlW2lu
ZGV4XSk7CisgICAgICBsaW5lTGVuZ3RoICs9IGludChjaGlsZFZhbHVlc19baW5kZXhdLmxlbmd0
aCgpKTsKKyAgICB9CisgICAgYWRkQ2hpbGRWYWx1ZXNfID0gZmFsc2U7CisgICAgaXNNdWx0aUxp
bmUgPSBpc011bHRpTGluZSB8fCBsaW5lTGVuZ3RoID49IHJpZ2h0TWFyZ2luXzsKKyAgfQorICBy
ZXR1cm4gaXNNdWx0aUxpbmU7Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFtV3JpdGVyOjpwdXNoVmFs
dWUoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7CisgIGlmIChhZGRDaGlsZFZhbHVlc18pCisg
ICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7CisgIGVsc2UKKyAgICAqZG9jdW1lbnRf
IDw8IHZhbHVlOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVJbmRlbnQoKSB7
CisgIC8vIGJsZXAgaW50ZW5kZWQgdGhpcyB0byBsb29rIGF0IHRoZSBzby1mYXItd3JpdHRlbiBz
dHJpbmcKKyAgLy8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgYXJlIGFscmVhZHkgaW5kZW50ZWQs
IGJ1dAorICAvLyB3aXRoIGEgc3RyZWFtIHdlIGNhbm5vdCBkbyB0aGF0LiBTbyB3ZSByZWx5IG9u
IHNvbWUgc2F2ZWQgc3RhdGUuCisgIC8vIFRoZSBjYWxsZXIgY2hlY2tzIGluZGVudGVkXy4KKyAg
KmRvY3VtZW50XyA8PCAnXG4nIDw8IGluZGVudFN0cmluZ187Cit9CisKK3ZvaWQgU3R5bGVkU3Ry
ZWFtV3JpdGVyOjp3cml0ZVdpdGhJbmRlbnQoY29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSB7Cisg
IGlmICghaW5kZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAqZG9jdW1lbnRfIDw8IHZhbHVlOwor
ICBpbmRlbnRlZF8gPSBmYWxzZTsKK30KKwordm9pZCBTdHlsZWRTdHJlYW1Xcml0ZXI6OmluZGVu
dCgpIHsgaW5kZW50U3RyaW5nXyArPSBpbmRlbnRhdGlvbl87IH0KKwordm9pZCBTdHlsZWRTdHJl
YW1Xcml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXplKCkgPj0g
aW5kZW50YXRpb25fLnNpemUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmlu
Z18uc2l6ZSgpIC0gaW5kZW50YXRpb25fLnNpemUoKSk7Cit9CisKK3ZvaWQgU3R5bGVkU3RyZWFt
V3JpdGVyOjp3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjb25zdCBWYWx1ZSYgcm9vdCkgeworICBp
ZiAoIXJvb3QuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSkKKyAgICByZXR1cm47CisKKyAgaWYg
KCFpbmRlbnRlZF8pIHdyaXRlSW5kZW50KCk7CisgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjb21tZW50
ID0gcm9vdC5nZXRDb21tZW50KGNvbW1lbnRCZWZvcmUpOworICBzdGQ6OnN0cmluZzo6Y29uc3Rf
aXRlcmF0b3IgaXRlciA9IGNvbW1lbnQuYmVnaW4oKTsKKyAgd2hpbGUgKGl0ZXIgIT0gY29tbWVu
dC5lbmQoKSkgeworICAgICpkb2N1bWVudF8gPDwgKml0ZXI7CisgICAgaWYgKCppdGVyID09ICdc
bicgJiYKKyAgICAgICAoaXRlciAhPSBjb21tZW50LmVuZCgpICYmICooaXRlciArIDEpID09ICcv
JykpCisgICAgICAvLyB3cml0ZUluZGVudCgpOyAgLy8gd291bGQgaW5jbHVkZSBuZXdsaW5lCisg
ICAgICAqZG9jdW1lbnRfIDw8IGluZGVudFN0cmluZ187CisgICAgKytpdGVyOworICB9CisgIGlu
ZGVudGVkXyA9IGZhbHNlOworfQorCit2b2lkIFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21t
ZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoY29uc3QgVmFsdWUmIHJvb3QpIHsKKyAgaWYgKHJvb3Qu
aGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSkKKyAgICAqZG9jdW1lbnRfIDw8ICcg
JyA8PCByb290LmdldENvbW1lbnQoY29tbWVudEFmdGVyT25TYW1lTGluZSk7CisKKyAgaWYgKHJv
b3QuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpKSB7CisgICAgd3JpdGVJbmRlbnQoKTsKKyAgICAq
ZG9jdW1lbnRfIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50QWZ0ZXIpOworICB9CisgIGluZGVu
dGVkXyA9IGZhbHNlOworfQorCitib29sIFN0eWxlZFN0cmVhbVdyaXRlcjo6aGFzQ29tbWVudEZv
clZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICByZXR1cm4gdmFsdWUuaGFzQ29tbWVudChj
b21tZW50QmVmb3JlKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJP
blNhbWVMaW5lKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChjb21tZW50QWZ0ZXIpOwor
fQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQnVpbHRTdHlsZWRTdHJlYW1Xcml0
ZXIKKworLy8vIFNjb3BlZCBlbnVtcyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCBDKysxMS4KK3N0
cnVjdCBDb21tZW50U3R5bGUgeworICAvLy8gRGVjaWRlIHdoZXRoZXIgdG8gd3JpdGUgY29tbWVu
dHMuCisgIGVudW0gRW51bSB7CisgICAgTm9uZSwgIC8vLzwgRHJvcCBhbGwgY29tbWVudHMuCisg
ICAgTW9zdCwgIC8vLzwgUmVjb3ZlciBvZGQgYmVoYXZpb3Igb2YgcHJldmlvdXMgdmVyc2lvbnMg
KG5vdCBpbXBsZW1lbnRlZCB5ZXQpLgorICAgIEFsbCAgLy8vPCBLZWVwIGFsbCBjb21tZW50cy4K
KyAgfTsKK307CisKK3N0cnVjdCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlciA6IHB1YmxpYyBTdHJl
YW1Xcml0ZXIKK3sKKyAgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXIoCisgICAgICBzdGQ6OnN0cmlu
ZyBjb25zdCYgaW5kZW50YXRpb24sCisgICAgICBDb21tZW50U3R5bGU6OkVudW0gY3MsCisgICAg
ICBzdGQ6OnN0cmluZyBjb25zdCYgY29sb25TeW1ib2wsCisgICAgICBzdGQ6OnN0cmluZyBjb25z
dCYgbnVsbFN5bWJvbCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBlbmRpbmdMaW5lRmVlZFN5
bWJvbCwKKyAgICAgIGJvb2wgdXNlU3BlY2lhbEZsb2F0cywKKyAgICAgIHVuc2lnbmVkIGludCBw
cmVjaXNpb24pOworICBpbnQgd3JpdGUoVmFsdWUgY29uc3QmIHJvb3QsIHN0ZDo6b3N0cmVhbSog
c291dCk7Citwcml2YXRlOgorICB2b2lkIHdyaXRlVmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKTsK
KyAgdm9pZCB3cml0ZUFycmF5VmFsdWUoVmFsdWUgY29uc3QmIHZhbHVlKTsKKyAgYm9vbCBpc011
bHRpbmVBcnJheShWYWx1ZSBjb25zdCYgdmFsdWUpOworICB2b2lkIHB1c2hWYWx1ZShzdGQ6OnN0
cmluZyBjb25zdCYgdmFsdWUpOworICB2b2lkIHdyaXRlSW5kZW50KCk7CisgIHZvaWQgd3JpdGVX
aXRoSW5kZW50KHN0ZDo6c3RyaW5nIGNvbnN0JiB2YWx1ZSk7CisgIHZvaWQgaW5kZW50KCk7Cisg
IHZvaWQgdW5pbmRlbnQoKTsKKyAgdm9pZCB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShWYWx1ZSBj
b25zdCYgcm9vdCk7CisgIHZvaWQgd3JpdGVDb21tZW50QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUoVmFs
dWUgY29uc3QmIHJvb3QpOworICBzdGF0aWMgYm9vbCBoYXNDb21tZW50Rm9yVmFsdWUoY29uc3Qg
VmFsdWUmIHZhbHVlKTsKKworICB0eXBlZGVmIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBDaGls
ZFZhbHVlczsKKworICBDaGlsZFZhbHVlcyBjaGlsZFZhbHVlc187CisgIHN0ZDo6c3RyaW5nIGlu
ZGVudFN0cmluZ187CisgIGludCByaWdodE1hcmdpbl87CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0
aW9uXzsKKyAgQ29tbWVudFN0eWxlOjpFbnVtIGNzXzsKKyAgc3RkOjpzdHJpbmcgY29sb25TeW1i
b2xfOworICBzdGQ6OnN0cmluZyBudWxsU3ltYm9sXzsKKyAgc3RkOjpzdHJpbmcgZW5kaW5nTGlu
ZUZlZWRTeW1ib2xfOworICBib29sIGFkZENoaWxkVmFsdWVzXyA6IDE7CisgIGJvb2wgaW5kZW50
ZWRfIDogMTsKKyAgYm9vbCB1c2VTcGVjaWFsRmxvYXRzXyA6IDE7CisgIHVuc2lnbmVkIGludCBw
cmVjaXNpb25fOworfTsKK0J1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjpCdWlsdFN0eWxlZFN0cmVh
bVdyaXRlcigKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBpbmRlbnRhdGlvbiwKKyAgICAgIENv
bW1lbnRTdHlsZTo6RW51bSBjcywKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBjb2xvblN5bWJv
bCwKKyAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBudWxsU3ltYm9sLAorICAgICAgc3RkOjpzdHJp
bmcgY29uc3QmIGVuZGluZ0xpbmVGZWVkU3ltYm9sLAorICAgICAgYm9vbCB1c2VTcGVjaWFsRmxv
YXRzLAorICAgICAgdW5zaWduZWQgaW50IHByZWNpc2lvbikKKyAgOiByaWdodE1hcmdpbl8oNzQp
CisgICwgaW5kZW50YXRpb25fKGluZGVudGF0aW9uKQorICAsIGNzXyhjcykKKyAgLCBjb2xvblN5
bWJvbF8oY29sb25TeW1ib2wpCisgICwgbnVsbFN5bWJvbF8obnVsbFN5bWJvbCkKKyAgLCBlbmRp
bmdMaW5lRmVlZFN5bWJvbF8oZW5kaW5nTGluZUZlZWRTeW1ib2wpCisgICwgYWRkQ2hpbGRWYWx1
ZXNfKGZhbHNlKQorICAsIGluZGVudGVkXyhmYWxzZSkKKyAgLCB1c2VTcGVjaWFsRmxvYXRzXyh1
c2VTcGVjaWFsRmxvYXRzKQorICAsIHByZWNpc2lvbl8ocHJlY2lzaW9uKQoreworfQoraW50IEJ1
aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjp3cml0ZShWYWx1ZSBjb25zdCYgcm9vdCwgc3RkOjpvc3Ry
ZWFtKiBzb3V0KQoreworICBzb3V0XyA9IHNvdXQ7CisgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNl
OworICBpbmRlbnRlZF8gPSB0cnVlOworICBpbmRlbnRTdHJpbmdfID0gIiI7CisgIHdyaXRlQ29t
bWVudEJlZm9yZVZhbHVlKHJvb3QpOworICBpZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsK
KyAgaW5kZW50ZWRfID0gdHJ1ZTsKKyAgd3JpdGVWYWx1ZShyb290KTsKKyAgd3JpdGVDb21tZW50
QWZ0ZXJWYWx1ZU9uU2FtZUxpbmUocm9vdCk7CisgICpzb3V0XyA8PCBlbmRpbmdMaW5lRmVlZFN5
bWJvbF87CisgIHNvdXRfID0gTlVMTDsKKyAgcmV0dXJuIDA7Cit9Cit2b2lkIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjp3cml0ZVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICBzd2l0Y2gg
KHZhbHVlLnR5cGUoKSkgeworICBjYXNlIG51bGxWYWx1ZToKKyAgICBwdXNoVmFsdWUobnVsbFN5
bWJvbF8pOworICAgIGJyZWFrOworICBjYXNlIGludFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1
ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdEludCgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgdWlu
dFZhbHVlOgorICAgIHB1c2hWYWx1ZSh2YWx1ZVRvU3RyaW5nKHZhbHVlLmFzTGFyZ2VzdFVJbnQo
KSkpOworICAgIGJyZWFrOworICBjYXNlIHJlYWxWYWx1ZToKKyAgICBwdXNoVmFsdWUodmFsdWVU
b1N0cmluZyh2YWx1ZS5hc0RvdWJsZSgpLCB1c2VTcGVjaWFsRmxvYXRzXywgcHJlY2lzaW9uXykp
OworICAgIGJyZWFrOworICBjYXNlIHN0cmluZ1ZhbHVlOgorICB7CisgICAgLy8gSXMgTlVMTCBp
cyBwb3NzaWJsZSBmb3IgdmFsdWUuc3RyaW5nXz8KKyAgICBjaGFyIGNvbnN0KiBzdHI7CisgICAg
Y2hhciBjb25zdCogZW5kOworICAgIGJvb2wgb2sgPSB2YWx1ZS5nZXRTdHJpbmcoJnN0ciwgJmVu
ZCk7CisgICAgaWYgKG9rKSBwdXNoVmFsdWUodmFsdWVUb1F1b3RlZFN0cmluZ04oc3RyLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZW5kLXN0cikpKTsKKyAgICBlbHNlIHB1c2hWYWx1ZSgiIik7Cisg
ICAgYnJlYWs7CisgIH0KKyAgY2FzZSBib29sZWFuVmFsdWU6CisgICAgcHVzaFZhbHVlKHZhbHVl
VG9TdHJpbmcodmFsdWUuYXNCb29sKCkpKTsKKyAgICBicmVhazsKKyAgY2FzZSBhcnJheVZhbHVl
OgorICAgIHdyaXRlQXJyYXlWYWx1ZSh2YWx1ZSk7CisgICAgYnJlYWs7CisgIGNhc2Ugb2JqZWN0
VmFsdWU6IHsKKyAgICBWYWx1ZTo6TWVtYmVycyBtZW1iZXJzKHZhbHVlLmdldE1lbWJlck5hbWVz
KCkpOworICAgIGlmIChtZW1iZXJzLmVtcHR5KCkpCisgICAgICBwdXNoVmFsdWUoInt9Iik7Cisg
ICAgZWxzZSB7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoInsiKTsKKyAgICAgIGluZGVudCgpOwor
ICAgICAgVmFsdWU6Ok1lbWJlcnM6Oml0ZXJhdG9yIGl0ID0gbWVtYmVycy5iZWdpbigpOworICAg
ICAgZm9yICg7OykgeworICAgICAgICBzdGQ6OnN0cmluZyBjb25zdCYgbmFtZSA9ICppdDsKKyAg
ICAgICAgVmFsdWUgY29uc3QmIGNoaWxkVmFsdWUgPSB2YWx1ZVtuYW1lXTsKKyAgICAgICAgd3Jp
dGVDb21tZW50QmVmb3JlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIHdyaXRlV2l0aEluZGVu
dCh2YWx1ZVRvUXVvdGVkU3RyaW5nTihuYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG5hbWUubGVuZ3RoKCkpKSk7CisgICAgICAgICpzb3V0XyA8PCBjb2xvblN5bWJvbF87CisgICAg
ICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgIGlmICgrK2l0ID09IG1lbWJlcnMu
ZW5kKCkpIHsKKyAgICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGls
ZFZhbHVlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqc291dF8gPDwg
IiwiOworICAgICAgICB3cml0ZUNvbW1lbnRBZnRlclZhbHVlT25TYW1lTGluZShjaGlsZFZhbHVl
KTsKKyAgICAgIH0KKyAgICAgIHVuaW5kZW50KCk7CisgICAgICB3cml0ZVdpdGhJbmRlbnQoIn0i
KTsKKyAgICB9CisgIH0gYnJlYWs7CisgIH0KK30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdy
aXRlcjo6d3JpdGVBcnJheVZhbHVlKFZhbHVlIGNvbnN0JiB2YWx1ZSkgeworICB1bnNpZ25lZCBz
aXplID0gdmFsdWUuc2l6ZSgpOworICBpZiAoc2l6ZSA9PSAwKQorICAgIHB1c2hWYWx1ZSgiW10i
KTsKKyAgZWxzZSB7CisgICAgYm9vbCBpc011bHRpTGluZSA9IChjc18gPT0gQ29tbWVudFN0eWxl
OjpBbGwpIHx8IGlzTXVsdGluZUFycmF5KHZhbHVlKTsKKyAgICBpZiAoaXNNdWx0aUxpbmUpIHsK
KyAgICAgIHdyaXRlV2l0aEluZGVudCgiWyIpOworICAgICAgaW5kZW50KCk7CisgICAgICBib29s
IGhhc0NoaWxkVmFsdWUgPSAhY2hpbGRWYWx1ZXNfLmVtcHR5KCk7CisgICAgICB1bnNpZ25lZCBp
bmRleCA9IDA7CisgICAgICBmb3IgKDs7KSB7CisgICAgICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZh
bHVlID0gdmFsdWVbaW5kZXhdOworICAgICAgICB3cml0ZUNvbW1lbnRCZWZvcmVWYWx1ZShjaGls
ZFZhbHVlKTsKKyAgICAgICAgaWYgKGhhc0NoaWxkVmFsdWUpCisgICAgICAgICAgd3JpdGVXaXRo
SW5kZW50KGNoaWxkVmFsdWVzX1tpbmRleF0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICBp
ZiAoIWluZGVudGVkXykgd3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICBpbmRlbnRlZF8gPSB0cnVl
OworICAgICAgICAgIHdyaXRlVmFsdWUoY2hpbGRWYWx1ZSk7CisgICAgICAgICAgaW5kZW50ZWRf
ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCsraW5kZXggPT0gc2l6ZSkgeworICAg
ICAgICAgIHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICpzb3V0XyA8PCAiLCI7CisgICAgICAg
IHdyaXRlQ29tbWVudEFmdGVyVmFsdWVPblNhbWVMaW5lKGNoaWxkVmFsdWUpOworICAgICAgfQor
ICAgICAgdW5pbmRlbnQoKTsKKyAgICAgIHdyaXRlV2l0aEluZGVudCgiXSIpOworICAgIH0gZWxz
ZSAvLyBvdXRwdXQgb24gYSBzaW5nbGUgbGluZQorICAgIHsKKyAgICAgIGFzc2VydChjaGlsZFZh
bHVlc18uc2l6ZSgpID09IHNpemUpOworICAgICAgKnNvdXRfIDw8ICJbIjsKKyAgICAgIGlmICgh
aW5kZW50YXRpb25fLmVtcHR5KCkpICpzb3V0XyA8PCAiICI7CisgICAgICBmb3IgKHVuc2lnbmVk
IGluZGV4ID0gMDsgaW5kZXggPCBzaXplOyArK2luZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA+
IDApCisgICAgICAgICAgKnNvdXRfIDw8ICIsICI7CisgICAgICAgICpzb3V0XyA8PCBjaGlsZFZh
bHVlc19baW5kZXhdOworICAgICAgfQorICAgICAgaWYgKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkg
KnNvdXRfIDw8ICIgIjsKKyAgICAgICpzb3V0XyA8PCAiXSI7CisgICAgfQorICB9Cit9CisKK2Jv
b2wgQnVpbHRTdHlsZWRTdHJlYW1Xcml0ZXI6OmlzTXVsdGluZUFycmF5KFZhbHVlIGNvbnN0JiB2
YWx1ZSkgeworICBpbnQgc2l6ZSA9IHZhbHVlLnNpemUoKTsKKyAgYm9vbCBpc011bHRpTGluZSA9
IHNpemUgKiAzID49IHJpZ2h0TWFyZ2luXzsKKyAgY2hpbGRWYWx1ZXNfLmNsZWFyKCk7CisgIGZv
ciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzaXplICYmICFpc011bHRpTGluZTsgKytpbmRleCkg
eworICAgIFZhbHVlIGNvbnN0JiBjaGlsZFZhbHVlID0gdmFsdWVbaW5kZXhdOworICAgIGlzTXVs
dGlMaW5lID0gKChjaGlsZFZhbHVlLmlzQXJyYXkoKSB8fCBjaGlsZFZhbHVlLmlzT2JqZWN0KCkp
ICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFZhbHVlLnNpemUoKSA+IDApOworICB9
CisgIGlmICghaXNNdWx0aUxpbmUpIC8vIGNoZWNrIGlmIGxpbmUgbGVuZ3RoID4gbWF4IGxpbmUg
bGVuZ3RoCisgIHsKKyAgICBjaGlsZFZhbHVlc18ucmVzZXJ2ZShzaXplKTsKKyAgICBhZGRDaGls
ZFZhbHVlc18gPSB0cnVlOworICAgIGludCBsaW5lTGVuZ3RoID0gNCArIChzaXplIC0gMSkgKiAy
OyAvLyAnWyAnICsgJywgJypuICsgJyBdJworICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXgg
PCBzaXplOyArK2luZGV4KSB7CisgICAgICBpZiAoaGFzQ29tbWVudEZvclZhbHVlKHZhbHVlW2lu
ZGV4XSkpIHsKKyAgICAgICAgaXNNdWx0aUxpbmUgPSB0cnVlOworICAgICAgfQorICAgICAgd3Jp
dGVWYWx1ZSh2YWx1ZVtpbmRleF0pOworICAgICAgbGluZUxlbmd0aCArPSBpbnQoY2hpbGRWYWx1
ZXNfW2luZGV4XS5sZW5ndGgoKSk7CisgICAgfQorICAgIGFkZENoaWxkVmFsdWVzXyA9IGZhbHNl
OworICAgIGlzTXVsdGlMaW5lID0gaXNNdWx0aUxpbmUgfHwgbGluZUxlbmd0aCA+PSByaWdodE1h
cmdpbl87CisgIH0KKyAgcmV0dXJuIGlzTXVsdGlMaW5lOworfQorCit2b2lkIEJ1aWx0U3R5bGVk
U3RyZWFtV3JpdGVyOjpwdXNoVmFsdWUoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKSB7CisgIGlm
IChhZGRDaGlsZFZhbHVlc18pCisgICAgY2hpbGRWYWx1ZXNfLnB1c2hfYmFjayh2YWx1ZSk7Cisg
IGVsc2UKKyAgICAqc291dF8gPDwgdmFsdWU7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OndyaXRlSW5kZW50KCkgeworICAvLyBibGVwIGludGVuZGVkIHRoaXMgdG8gbG9vayBh
dCB0aGUgc28tZmFyLXdyaXR0ZW4gc3RyaW5nCisgIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIHdl
IGFyZSBhbHJlYWR5IGluZGVudGVkLCBidXQKKyAgLy8gd2l0aCBhIHN0cmVhbSB3ZSBjYW5ub3Qg
ZG8gdGhhdC4gU28gd2UgcmVseSBvbiBzb21lIHNhdmVkIHN0YXRlLgorICAvLyBUaGUgY2FsbGVy
IGNoZWNrcyBpbmRlbnRlZF8uCisKKyAgaWYgKCFpbmRlbnRhdGlvbl8uZW1wdHkoKSkgeworICAg
IC8vIEluIHRoaXMgY2FzZSwgZHJvcCBuZXdsaW5lcyB0b28uCisgICAgKnNvdXRfIDw8ICdcbicg
PDwgaW5kZW50U3RyaW5nXzsKKyAgfQorfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVy
Ojp3cml0ZVdpdGhJbmRlbnQoc3RkOjpzdHJpbmcgY29uc3QmIHZhbHVlKSB7CisgIGlmICghaW5k
ZW50ZWRfKSB3cml0ZUluZGVudCgpOworICAqc291dF8gPDwgdmFsdWU7CisgIGluZGVudGVkXyA9
IGZhbHNlOworfQorCit2b2lkIEJ1aWx0U3R5bGVkU3RyZWFtV3JpdGVyOjppbmRlbnQoKSB7IGlu
ZGVudFN0cmluZ18gKz0gaW5kZW50YXRpb25fOyB9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJlYW1X
cml0ZXI6OnVuaW5kZW50KCkgeworICBhc3NlcnQoaW5kZW50U3RyaW5nXy5zaXplKCkgPj0gaW5k
ZW50YXRpb25fLnNpemUoKSk7CisgIGluZGVudFN0cmluZ18ucmVzaXplKGluZGVudFN0cmluZ18u
c2l6ZSgpIC0gaW5kZW50YXRpb25fLnNpemUoKSk7Cit9CisKK3ZvaWQgQnVpbHRTdHlsZWRTdHJl
YW1Xcml0ZXI6OndyaXRlQ29tbWVudEJlZm9yZVZhbHVlKFZhbHVlIGNvbnN0JiByb290KSB7Cisg
IGlmIChjc18gPT0gQ29tbWVudFN0eWxlOjpOb25lKSByZXR1cm47CisgIGlmICghcm9vdC5oYXND
b21tZW50KGNvbW1lbnRCZWZvcmUpKQorICAgIHJldHVybjsKKworICBpZiAoIWluZGVudGVkXykg
d3JpdGVJbmRlbnQoKTsKKyAgY29uc3Qgc3RkOjpzdHJpbmcmIGNvbW1lbnQgPSByb290LmdldENv
bW1lbnQoY29tbWVudEJlZm9yZSk7CisgIHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpdGVy
ID0gY29tbWVudC5iZWdpbigpOworICB3aGlsZSAoaXRlciAhPSBjb21tZW50LmVuZCgpKSB7Cisg
ICAgKnNvdXRfIDw8ICppdGVyOworICAgIGlmICgqaXRlciA9PSAnXG4nICYmCisgICAgICAgKGl0
ZXIgIT0gY29tbWVudC5lbmQoKSAmJiAqKGl0ZXIgKyAxKSA9PSAnLycpKQorICAgICAgLy8gd3Jp
dGVJbmRlbnQoKTsgIC8vIHdvdWxkIHdyaXRlIGV4dHJhIG5ld2xpbmUKKyAgICAgICpzb3V0XyA8
PCBpbmRlbnRTdHJpbmdfOworICAgICsraXRlcjsKKyAgfQorICBpbmRlbnRlZF8gPSBmYWxzZTsK
K30KKwordm9pZCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcjo6d3JpdGVDb21tZW50QWZ0ZXJWYWx1
ZU9uU2FtZUxpbmUoVmFsdWUgY29uc3QmIHJvb3QpIHsKKyAgaWYgKGNzXyA9PSBDb21tZW50U3R5
bGU6Ok5vbmUpIHJldHVybjsKKyAgaWYgKHJvb3QuaGFzQ29tbWVudChjb21tZW50QWZ0ZXJPblNh
bWVMaW5lKSkKKyAgICAqc291dF8gPDwgIiAiICsgcm9vdC5nZXRDb21tZW50KGNvbW1lbnRBZnRl
ck9uU2FtZUxpbmUpOworCisgIGlmIChyb290Lmhhc0NvbW1lbnQoY29tbWVudEFmdGVyKSkgewor
ICAgIHdyaXRlSW5kZW50KCk7CisgICAgKnNvdXRfIDw8IHJvb3QuZ2V0Q29tbWVudChjb21tZW50
QWZ0ZXIpOworICB9Cit9CisKKy8vIHN0YXRpYworYm9vbCBCdWlsdFN0eWxlZFN0cmVhbVdyaXRl
cjo6aGFzQ29tbWVudEZvclZhbHVlKGNvbnN0IFZhbHVlJiB2YWx1ZSkgeworICByZXR1cm4gdmFs
dWUuaGFzQ29tbWVudChjb21tZW50QmVmb3JlKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVu
dChjb21tZW50QWZ0ZXJPblNhbWVMaW5lKSB8fAorICAgICAgICAgdmFsdWUuaGFzQ29tbWVudChj
b21tZW50QWZ0ZXIpOworfQorCisvLy8vLy8vLy8vLy8vLy8KKy8vIFN0cmVhbVdyaXRlcgorCitT
dHJlYW1Xcml0ZXI6OlN0cmVhbVdyaXRlcigpCisgICAgOiBzb3V0XyhOVUxMKQoreworfQorU3Ry
ZWFtV3JpdGVyOjp+U3RyZWFtV3JpdGVyKCkKK3sKK30KK1N0cmVhbVdyaXRlcjo6RmFjdG9yeTo6
fkZhY3RvcnkoKQore30KK1N0cmVhbVdyaXRlckJ1aWxkZXI6OlN0cmVhbVdyaXRlckJ1aWxkZXIo
KQoreworICBzZXREZWZhdWx0cygmc2V0dGluZ3NfKTsKK30KK1N0cmVhbVdyaXRlckJ1aWxkZXI6
On5TdHJlYW1Xcml0ZXJCdWlsZGVyKCkKK3t9CitTdHJlYW1Xcml0ZXIqIFN0cmVhbVdyaXRlckJ1
aWxkZXI6Om5ld1N0cmVhbVdyaXRlcigpIGNvbnN0Cit7CisgIHN0ZDo6c3RyaW5nIGluZGVudGF0
aW9uID0gc2V0dGluZ3NfWyJpbmRlbnRhdGlvbiJdLmFzU3RyaW5nKCk7CisgIHN0ZDo6c3RyaW5n
IGNzX3N0ciA9IHNldHRpbmdzX1siY29tbWVudFN0eWxlIl0uYXNTdHJpbmcoKTsKKyAgYm9vbCBl
eWMgPSBzZXR0aW5nc19bImVuYWJsZVlBTUxDb21wYXRpYmlsaXR5Il0uYXNCb29sKCk7CisgIGJv
b2wgZG5wID0gc2V0dGluZ3NfWyJkcm9wTnVsbFBsYWNlaG9sZGVycyJdLmFzQm9vbCgpOworICBi
b29sIHVzZiA9IHNldHRpbmdzX1sidXNlU3BlY2lhbEZsb2F0cyJdLmFzQm9vbCgpOyAKKyAgdW5z
aWduZWQgaW50IHByZSA9IHNldHRpbmdzX1sicHJlY2lzaW9uIl0uYXNVSW50KCk7CisgIENvbW1l
bnRTdHlsZTo6RW51bSBjcyA9IENvbW1lbnRTdHlsZTo6QWxsOworICBpZiAoY3Nfc3RyID09ICJB
bGwiKSB7CisgICAgY3MgPSBDb21tZW50U3R5bGU6OkFsbDsKKyAgfSBlbHNlIGlmIChjc19zdHIg
PT0gIk5vbmUiKSB7CisgICAgY3MgPSBDb21tZW50U3R5bGU6Ok5vbmU7CisgIH0gZWxzZSB7Cisg
ICAgdGhyb3dSdW50aW1lRXJyb3IoImNvbW1lbnRTdHlsZSBtdXN0IGJlICdBbGwnIG9yICdOb25l
JyIpOworICB9CisgIHN0ZDo6c3RyaW5nIGNvbG9uU3ltYm9sID0gIiA6ICI7CisgIGlmIChleWMp
IHsKKyAgICBjb2xvblN5bWJvbCA9ICI6ICI7CisgIH0gZWxzZSBpZiAoaW5kZW50YXRpb24uZW1w
dHkoKSkgeworICAgIGNvbG9uU3ltYm9sID0gIjoiOworICB9CisgIHN0ZDo6c3RyaW5nIG51bGxT
eW1ib2wgPSAibnVsbCI7CisgIGlmIChkbnApIHsKKyAgICBudWxsU3ltYm9sID0gIiI7CisgIH0K
KyAgaWYgKHByZSA+IDE3KSBwcmUgPSAxNzsKKyAgc3RkOjpzdHJpbmcgZW5kaW5nTGluZUZlZWRT
eW1ib2wgPSAiIjsKKyAgcmV0dXJuIG5ldyBCdWlsdFN0eWxlZFN0cmVhbVdyaXRlcigKKyAgICAg
IGluZGVudGF0aW9uLCBjcywKKyAgICAgIGNvbG9uU3ltYm9sLCBudWxsU3ltYm9sLCBlbmRpbmdM
aW5lRmVlZFN5bWJvbCwgdXNmLCBwcmUpOworfQorc3RhdGljIHZvaWQgZ2V0VmFsaWRXcml0ZXJL
ZXlzKHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiogdmFsaWRfa2V5cykKK3sKKyAgdmFsaWRfa2V5cy0+
Y2xlYXIoKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJpbmRlbnRhdGlvbiIpOworICB2YWxpZF9r
ZXlzLT5pbnNlcnQoImNvbW1lbnRTdHlsZSIpOworICB2YWxpZF9rZXlzLT5pbnNlcnQoImVuYWJs
ZVlBTUxDb21wYXRpYmlsaXR5Iik7CisgIHZhbGlkX2tleXMtPmluc2VydCgiZHJvcE51bGxQbGFj
ZWhvbGRlcnMiKTsKKyAgdmFsaWRfa2V5cy0+aW5zZXJ0KCJ1c2VTcGVjaWFsRmxvYXRzIik7Cisg
IHZhbGlkX2tleXMtPmluc2VydCgicHJlY2lzaW9uIik7Cit9Citib29sIFN0cmVhbVdyaXRlckJ1
aWxkZXI6OnZhbGlkYXRlKEpzb246OlZhbHVlKiBpbnZhbGlkKSBjb25zdAoreworICBKc29uOjpW
YWx1ZSBteV9pbnZhbGlkOworICBpZiAoIWludmFsaWQpIGludmFsaWQgPSAmbXlfaW52YWxpZDsg
IC8vIHNvIHdlIGRvIG5vdCBuZWVkIHRvIHRlc3QgZm9yIE5VTEwKKyAgSnNvbjo6VmFsdWUmIGlu
diA9ICppbnZhbGlkOworICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gdmFsaWRfa2V5czsKKyAgZ2V0
VmFsaWRXcml0ZXJLZXlzKCZ2YWxpZF9rZXlzKTsKKyAgVmFsdWU6Ok1lbWJlcnMga2V5cyA9IHNl
dHRpbmdzXy5nZXRNZW1iZXJOYW1lcygpOworICBzaXplX3QgbiA9IGtleXMuc2l6ZSgpOworICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG47ICsraSkgeworICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBr
ZXkgPSBrZXlzW2ldOworICAgIGlmICh2YWxpZF9rZXlzLmZpbmQoa2V5KSA9PSB2YWxpZF9rZXlz
LmVuZCgpKSB7CisgICAgICBpbnZba2V5XSA9IHNldHRpbmdzX1trZXldOworICAgIH0KKyAgfQor
ICByZXR1cm4gMHUgPT0gaW52LnNpemUoKTsKK30KK1ZhbHVlJiBTdHJlYW1Xcml0ZXJCdWlsZGVy
OjpvcGVyYXRvcltdKHN0ZDo6c3RyaW5nIGtleSkKK3sKKyAgcmV0dXJuIHNldHRpbmdzX1trZXld
OworfQorLy8gc3RhdGljCit2b2lkIFN0cmVhbVdyaXRlckJ1aWxkZXI6OnNldERlZmF1bHRzKEpz
b246OlZhbHVlKiBzZXR0aW5ncykKK3sKKyAgLy8hIFtTdHJlYW1Xcml0ZXJCdWlsZGVyRGVmYXVs
dHNdCisgICgqc2V0dGluZ3MpWyJjb21tZW50U3R5bGUiXSA9ICJBbGwiOworICAoKnNldHRpbmdz
KVsiaW5kZW50YXRpb24iXSA9ICJcdCI7CisgICgqc2V0dGluZ3MpWyJlbmFibGVZQU1MQ29tcGF0
aWJpbGl0eSJdID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJkcm9wTnVsbFBsYWNlaG9sZGVycyJd
ID0gZmFsc2U7CisgICgqc2V0dGluZ3MpWyJ1c2VTcGVjaWFsRmxvYXRzIl0gPSBmYWxzZTsKKyAg
KCpzZXR0aW5ncylbInByZWNpc2lvbiJdID0gMTc7CisgIC8vISBbU3RyZWFtV3JpdGVyQnVpbGRl
ckRlZmF1bHRzXQorfQorCitzdGQ6OnN0cmluZyB3cml0ZVN0cmluZyhTdHJlYW1Xcml0ZXI6OkZh
Y3RvcnkgY29uc3QmIGJ1aWxkZXIsIFZhbHVlIGNvbnN0JiByb290KSB7CisgIHN0ZDo6b3N0cmlu
Z3N0cmVhbSBzb3V0OworICBTdHJlYW1Xcml0ZXJQdHIgY29uc3Qgd3JpdGVyKGJ1aWxkZXIubmV3
U3RyZWFtV3JpdGVyKCkpOworICB3cml0ZXItPndyaXRlKHJvb3QsICZzb3V0KTsKKyAgcmV0dXJu
IHNvdXQuc3RyKCk7Cit9CisKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0m
IHNvdXQsIFZhbHVlIGNvbnN0JiByb290KSB7CisgIFN0cmVhbVdyaXRlckJ1aWxkZXIgYnVpbGRl
cjsKKyAgU3RyZWFtV3JpdGVyUHRyIGNvbnN0IHdyaXRlcihidWlsZGVyLm5ld1N0cmVhbVdyaXRl
cigpKTsKKyAgd3JpdGVyLT53cml0ZShyb290LCAmc291dCk7CisgIHJldHVybiBzb3V0OworfQor
Cit9IC8vIG5hbWVzcGFjZSBKc29uCisKKy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEVuZCBvZiBjb250
ZW50IG9mIGZpbGU6IHNyYy9saWJfanNvbi9qc29uX3dyaXRlci5jcHAKKy8vIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KKworCisKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL29w
ZW52cl9hcGlfcHVibGljLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvb3BlbnZy
X2FwaV9wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzOTZlNjc3MjJmMzY5NDcwNGQzZGFiN2EzZGVh
YmZhNzY5YTQ3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL29wZW52cl9hcGlfcHVibGljLmNwcApAQCAtMCwwICsxLDI5OCBAQAorLy89PT09PT09PT0g
Q29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisjZGVmaW5lIFZSX0FQ
SV9FWFBPUlQgMQorI2luY2x1ZGUgIm9wZW52ci5oIgorI2luY2x1ZGUgIml2cmNsaWVudGNvcmUu
aCIKKyNpbmNsdWRlICJwYXRodG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAic2hhcmVkbGlidG9v
bHNfcHVibGljLmgiCisjaW5jbHVkZSAiZW52dmFydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAi
aG1kZXJyb3JzX3B1YmxpYy5oIgorI2luY2x1ZGUgInZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5oIgor
I2luY2x1ZGUgPG11dGV4PgorCit1c2luZyB2cjo6RVZSSW5pdEVycm9yOwordXNpbmcgdnI6OklW
UlN5c3RlbTsKK3VzaW5nIHZyOjpJVlJDbGllbnRDb3JlOwordXNpbmcgdnI6OlZSSW5pdEVycm9y
X05vbmU7CisKK25hbWVzcGFjZSB2cgoreworCitzdGF0aWMgdm9pZCAqZ19wVlJNb2R1bGUgPSBO
VUxMOworc3RhdGljIElWUkNsaWVudENvcmUgKmdfcEhtZFN5c3RlbSA9IE5VTEw7CitzdGF0aWMg
c3RkOjpyZWN1cnNpdmVfbXV0ZXggZ19tdXRleFN5c3RlbTsKKworCit0eXBlZGVmIHZvaWQqICgq
VlJDbGllbnRDb3JlRmFjdG9yeUZuKShjb25zdCBjaGFyICpwSW50ZXJmYWNlTmFtZSwgaW50ICpw
UmV0dXJuQ29kZSk7CisKK3N0YXRpYyB1aW50MzJfdCBnX25WUlRva2VuID0gMDsKKwordWludDMy
X3QgVlJfR2V0SW5pdFRva2VuKCkKK3sKKyAgICAgICByZXR1cm4gZ19uVlJUb2tlbjsKK30KKwor
RVZSSW5pdEVycm9yIFZSX0xvYWRIbWRTeXN0ZW1JbnRlcm5hbCgpOwordm9pZCBDbGVhbnVwSW50
ZXJuYWxJbnRlcmZhY2VzKCk7CisKKwordWludDMyX3QgVlJfSW5pdEludGVybmFsMiggRVZSSW5p
dEVycm9yICpwZUVycm9yLCB2cjo6RVZSQXBwbGljYXRpb25UeXBlIGVBcHBsaWNhdGlvblR5cGUs
IGNvbnN0IGNoYXIgKnBTdGFydHVwSW5mbyApCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBFVlJJ
bml0RXJyb3IgZXJyID0gVlJfTG9hZEhtZFN5c3RlbUludGVybmFsKCk7CisgICAgICAgaWYgKCBl
cnIgPT0gdnI6OlZSSW5pdEVycm9yX05vbmUgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgZXJy
ID0gZ19wSG1kU3lzdGVtLT5Jbml0KCBlQXBwbGljYXRpb25UeXBlLCBwU3RhcnR1cEluZm8gKTsK
KyAgICAgICB9CisKKyAgICAgICBpZiAoIHBlRXJyb3IgKQorICAgICAgICAgICAgICAqcGVFcnJv
ciA9IGVycjsKKworICAgICAgIGlmICggZXJyICE9IFZSSW5pdEVycm9yX05vbmUgKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggZ19wVlJNb2R1bGUgKTsKKyAgICAg
ICAgICAgICAgZ19wSG1kU3lzdGVtID0gTlVMTDsKKyAgICAgICAgICAgICAgZ19wVlJNb2R1bGUg
PSBOVUxMOworCisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgIH0KKworICAgICAgIHJl
dHVybiArK2dfblZSVG9rZW47Cit9CisKK1ZSX0lOVEVSRkFDRSB1aW50MzJfdCBWUl9DQUxMVFlQ
RSBWUl9Jbml0SW50ZXJuYWwoIEVWUkluaXRFcnJvciAqcGVFcnJvciwgRVZSQXBwbGljYXRpb25U
eXBlIGVBcHBsaWNhdGlvblR5cGUgKTsKKwordWludDMyX3QgVlJfSW5pdEludGVybmFsKCBFVlJJ
bml0RXJyb3IgKnBlRXJyb3IsIHZyOjpFVlJBcHBsaWNhdGlvblR5cGUgZUFwcGxpY2F0aW9uVHlw
ZSApCit7CisgICAgICAgcmV0dXJuIFZSX0luaXRJbnRlcm5hbDIoIHBlRXJyb3IsIGVBcHBsaWNh
dGlvblR5cGUsIG51bGxwdHIgKTsKK30KKwordm9pZCBWUl9TaHV0ZG93bkludGVybmFsKCkKK3sK
KyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0
ZXhTeXN0ZW0gKTsKKyAgICAgICAKKyAgICAgICBpZiAoIGdfcEhtZFN5c3RlbSApCisgICAgICAg
eworICAgICAgICAgICAgICBnX3BIbWRTeXN0ZW0tPkNsZWFudXAoKTsKKyAgICAgICAgICAgICAg
Z19wSG1kU3lzdGVtID0gTlVMTDsKKyAgICAgICB9CisgICAgICAgaWYgKCBnX3BWUk1vZHVsZSAp
CisgICAgICAgeworICAgICAgICAgICAgICBTaGFyZWRMaWJfVW5sb2FkKCBnX3BWUk1vZHVsZSAp
OworICAgICAgICAgICAgICBnX3BWUk1vZHVsZSA9IE5VTEw7CisgICAgICAgfQorCisjaWYgIWRl
ZmluZWQoIFZSX0FQSV9QVUJMSUMgKQorICAgICAgIENsZWFudXBJbnRlcm5hbEludGVyZmFjZXMo
KTsKKyNlbmRpZgorCisgICAgICAgKytnX25WUlRva2VuOworfQorCitFVlJJbml0RXJyb3IgVlJf
TG9hZEhtZFN5c3RlbUludGVybmFsKCkKK3sKKyAgICAgICBzdGQ6OnN0cmluZyBzUnVudGltZVBh
dGgsIHNDb25maWdQYXRoLCBzTG9nUGF0aDsKKworICAgICAgIGJvb2wgYlJlYWRQYXRoUmVnaXN0
cnkgPSBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocyggJnNSdW50aW1lUGF0aCwgJnND
b25maWdQYXRoLCAmc0xvZ1BhdGgsIE5VTEwsIE5VTEwgKTsKKyAgICAgICBpZiggIWJSZWFkUGF0
aFJlZ2lzdHJ5ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6VlJJbml0RXJy
b3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICAvLyBmaWd1
cmUgb3V0IHdoZXJlIHdlJ3JlIGdvaW5nIHRvIGxvb2sgZm9yIHZyY2xpZW50LmRsbAorICAgICAg
IC8vIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggYWN0dWFsbHkgZXhpc3RzLgorICAgICAgIGlm
KCAhUGF0aF9Jc0RpcmVjdG9yeSggc1J1bnRpbWVQYXRoICkgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcmV0dXJuIHZyOjpWUkluaXRFcnJvcl9Jbml0X0luc3RhbGxhdGlvbk5vdEZvdW5kOwor
ICAgICAgIH0KKworICAgICAgIC8vIEJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBzZWxl
Y3QgZGVidWcgdnMuIHJlbGVhc2UgeWV0IHdlJ2xsIGp1c3QKKyAgICAgICAvLyB1c2UgZGVidWcg
aWYgaXQncyB0aGVyZQorI2lmIGRlZmluZWQoIExJTlVYNjQgKQorICAgICAgIHN0ZDo6c3RyaW5n
IHNUZXN0UGF0aCA9IFBhdGhfSm9pbiggc1J1bnRpbWVQYXRoLCAiYmluIiwgUExBVFNVQkRJUiAp
OworI2Vsc2UKKyAgICAgICBzdGQ6OnN0cmluZyBzVGVzdFBhdGggPSBQYXRoX0pvaW4oIHNSdW50
aW1lUGF0aCwgImJpbiIgKTsKKyNlbmRpZgorICAgICAgIGlmKCAhUGF0aF9Jc0RpcmVjdG9yeSgg
c1Rlc3RQYXRoICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X0luc3RhbGxhdGlvbkNvcnJ1cHQ7CisgICAgICAgfQorCisjaWYgZGVmaW5lZCgg
V0lONjQgKQorICAgICAgIHN0ZDo6c3RyaW5nIHNETExQYXRoID0gUGF0aF9Kb2luKCBzVGVzdFBh
dGgsICJ2cmNsaWVudF94NjQiIERZTkFNSUNfTElCX0VYVCApOworI2Vsc2UKKyAgICAgICBzdGQ6
OnN0cmluZyBzRExMUGF0aCA9IFBhdGhfSm9pbiggc1Rlc3RQYXRoLCAidnJjbGllbnQiIERZTkFN
SUNfTElCX0VYVCApOworI2VuZGlmCisKKyAgICAgICAvLyBvbmx5IGxvb2sgaW4gdGhlIG92ZXJy
aWRlCisgICAgICAgdm9pZCAqcE1vZCA9IFNoYXJlZExpYl9Mb2FkKCBzRExMUGF0aC5jX3N0cigp
ICk7CisgICAgICAgLy8gbm90aGluZyBtb3JlIHRvIGRvIGlmIHdlIGNhbid0IGxvYWQgdGhlIERM
TAorICAgICAgIGlmKCAhcE1vZCApCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gdnI6
OlZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAg
ICBWUkNsaWVudENvcmVGYWN0b3J5Rm4gZm5GYWN0b3J5ID0gKCBWUkNsaWVudENvcmVGYWN0b3J5
Rm4gKSggU2hhcmVkTGliX0dldEZ1bmN0aW9uKCBwTW9kLCAiVlJDbGllbnRDb3JlRmFjdG9yeSIg
KSApOworICAgICAgIGlmKCAhZm5GYWN0b3J5ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFNo
YXJlZExpYl9VbmxvYWQoIHBNb2QgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHZyOjpWUkluaXRF
cnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICBpbnQgblJldHVy
bkNvZGUgPSAwOworICAgICAgIGdfcEhtZFN5c3RlbSA9IHN0YXRpY19jYXN0PCBJVlJDbGllbnRD
b3JlICogPiAoIGZuRmFjdG9yeSggdnI6OklWUkNsaWVudENvcmVfVmVyc2lvbiwgJm5SZXR1cm5D
b2RlICkgKTsKKyAgICAgICBpZiggIWdfcEhtZFN5c3RlbSApCisgICAgICAgeworICAgICAgICAg
ICAgICBTaGFyZWRMaWJfVW5sb2FkKCBwTW9kICk7CisgICAgICAgICAgICAgIHJldHVybiB2cjo6
VlJJbml0RXJyb3JfSW5pdF9JbnRlcmZhY2VOb3RGb3VuZDsKKyAgICAgICB9CisKKyAgICAgICBn
X3BWUk1vZHVsZSA9IHBNb2Q7CisgICAgICAgcmV0dXJuIFZSSW5pdEVycm9yX05vbmU7Cit9CisK
Kwordm9pZCAqVlJfR2V0R2VuZXJpY0ludGVyZmFjZShjb25zdCBjaGFyICpwY2hJbnRlcmZhY2VW
ZXJzaW9uLCBFVlJJbml0RXJyb3IgKnBlRXJyb3IpCit7CisgICAgICAgc3RkOjpsb2NrX2d1YXJk
PHN0ZDo6cmVjdXJzaXZlX211dGV4PiBsb2NrKCBnX211dGV4U3lzdGVtICk7CisKKyAgICAgICBp
ZiAoIWdfcEhtZFN5c3RlbSkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmIChwZUVycm9yKQor
ICAgICAgICAgICAgICAgICAgICAgKnBlRXJyb3IgPSB2cjo6VlJJbml0RXJyb3JfSW5pdF9Ob3RJ
bml0aWFsaXplZDsKKyAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgfQorCisgICAg
ICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+R2V0R2VuZXJpY0ludGVyZmFjZShwY2hJbnRlcmZhY2VW
ZXJzaW9uLCBwZUVycm9yKTsKK30KKworYm9vbCBWUl9Jc0ludGVyZmFjZVZlcnNpb25WYWxpZChj
b25zdCBjaGFyICpwY2hJbnRlcmZhY2VWZXJzaW9uKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFy
ZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAg
aWYgKCFnX3BIbWRTeXN0ZW0pCisgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIGdfcEhtZFN5c3RlbS0+SXNJbnRlcmZhY2VWZXJz
aW9uVmFsaWQocGNoSW50ZXJmYWNlVmVyc2lvbikgPT0gVlJJbml0RXJyb3JfTm9uZTsKK30KKwor
Ym9vbCBWUl9Jc0htZFByZXNlbnQoKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJl
Y3Vyc2l2ZV9tdXRleD4gbG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYoIGdfcEht
ZFN5c3RlbSApCisgICAgICAgeworICAgICAgICAgICAgICAvLyBpZiB3ZSdyZSBhbHJlYWR5IGlu
aXRpYWxpemVkLCBqdXN0IGNhbGwgdGhyb3VnaAorICAgICAgICAgICAgICByZXR1cm4gZ19wSG1k
U3lzdGVtLT5CSXNIbWRQcmVzZW50KCk7CisgICAgICAgfQorICAgICAgIGVsc2UKKyAgICAgICB7
CisgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29y
aworICAgICAgICAgICAgICBFVlJJbml0RXJyb3IgZXJyID0gVlJfTG9hZEhtZFN5c3RlbUludGVy
bmFsKCk7CisgICAgICAgICAgICAgIGlmKCBlcnIgIT0gVlJJbml0RXJyb3JfTm9uZSApCisgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgICAgYm9vbCBiSGFz
SG1kID0gZ19wSG1kU3lzdGVtLT5CSXNIbWRQcmVzZW50KCk7CisKKyAgICAgICAgICAgICAgZ19w
SG1kU3lzdGVtID0gTlVMTDsKKyAgICAgICAgICAgICAgU2hhcmVkTGliX1VubG9hZCggZ19wVlJN
b2R1bGUgKTsKKyAgICAgICAgICAgICAgZ19wVlJNb2R1bGUgPSBOVUxMOworCisgICAgICAgICAg
ICAgIHJldHVybiBiSGFzSG1kOworICAgICAgIH0KK30KKworLyoqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgT3BlblZSIHJ1bnRpbWUgaXMgaW5zdGFsbGVkLiAqLworYm9vbCBWUl9Jc1J1bnRpbWVJbnN0
YWxsZWQoKQoreworICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6OnJlY3Vyc2l2ZV9tdXRleD4g
bG9jayggZ19tdXRleFN5c3RlbSApOworCisgICAgICAgaWYoIGdfcEhtZFN5c3RlbSApCisgICAg
ICAgeworICAgICAgICAgICAgICAvLyBpZiB3ZSdyZSBhbHJlYWR5IGluaXRpYWxpemVkLCBPcGVu
VlIgaXMgb2J2aW91c2x5IGluc3RhbGxlZAorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICB9CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNl
IHdlIG5lZWQgdG8gZG8gYSBiaXQgbW9yZSB3b3JrCisgICAgICAgICAgICAgIHN0ZDo6c3RyaW5n
IHNSdW50aW1lUGF0aCwgc0NvbmZpZ1BhdGgsIHNMb2dQYXRoOworCisgICAgICAgICAgICAgIGJv
b2wgYlJlYWRQYXRoUmVnaXN0cnkgPSBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocygg
JnNSdW50aW1lUGF0aCwgJnNDb25maWdQYXRoLCAmc0xvZ1BhdGgsIE5VTEwsIE5VTEwgKTsKKyAg
ICAgICAgICAgICAgaWYoICFiUmVhZFBhdGhSZWdpc3RyeSApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hlcmUgd2UncmUgZ29pbmcgdG8gbG9vayBmb3IgdnJj
bGllbnQuZGxsCisgICAgICAgICAgICAgIC8vIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggYWN0
dWFsbHkgZXhpc3RzLgorICAgICAgICAgICAgICBpZiggIVBhdGhfSXNEaXJlY3RvcnkoIHNSdW50
aW1lUGF0aCApICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gdGhlIGluc3RhbGxh
dGlvbiBtYXkgYmUgY29ycnVwdCBpbiBzb21lIHdheSwgYnV0IGl0IGNlcnRhaW5seSBsb29rcyBp
bnN0YWxsZWQKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgfQorfQorCisKKy8q
KiBSZXR1cm5zIHdoZXJlIE9wZW5WUiBydW50aW1lIGlzIGluc3RhbGxlZC4gKi8KK2NvbnN0IGNo
YXIgKlZSX1J1bnRpbWVQYXRoKCkKK3sKKyAgICAgICAvLyBvdGhlcndpc2Ugd2UgbmVlZCB0byBk
byBhIGJpdCBtb3JlIHdvcmsKKyAgICAgICBzdGF0aWMgc3RkOjpzdHJpbmcgc1J1bnRpbWVQYXRo
OworICAgICAgIHN0ZDo6c3RyaW5nIHNDb25maWdQYXRoLCBzTG9nUGF0aDsKKworICAgICAgIGJv
b2wgYlJlYWRQYXRoUmVnaXN0cnkgPSBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpHZXRQYXRocygg
JnNSdW50aW1lUGF0aCwgJnNDb25maWdQYXRoLCAmc0xvZ1BhdGgsIE5VTEwsIE5VTEwgKTsKKyAg
ICAgICBpZiAoICFiUmVhZFBhdGhSZWdpc3RyeSApCisgICAgICAgeworICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICB9CisKKyAgICAgICAvLyBmaWd1cmUgb3V0IHdoZXJlIHdl
J3JlIGdvaW5nIHRvIGxvb2sgZm9yIHZyY2xpZW50LmRsbAorICAgICAgIC8vIHNlZSBpZiB0aGUg
c3BlY2lmaWVkIHBhdGggYWN0dWFsbHkgZXhpc3RzLgorICAgICAgIGlmICggIVBhdGhfSXNEaXJl
Y3RvcnkoIHNSdW50aW1lUGF0aCApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgIH0KKworICAgICAgIHJldHVybiBzUnVudGltZVBhdGguY19zdHIoKTsK
K30KKworCisvKiogUmV0dXJucyB0aGUgc3ltYm9sIHZlcnNpb24gb2YgYW4gSE1EIGVycm9yLiAq
LworY29uc3QgY2hhciAqVlJfR2V0VlJJbml0RXJyb3JBc1N5bWJvbCggRVZSSW5pdEVycm9yIGVy
cm9yICkKK3sKKyAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxv
Y2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAgICAgIGlmKCBnX3BIbWRTeXN0ZW0gKQorICAgICAg
ICAgICAgICByZXR1cm4gZ19wSG1kU3lzdGVtLT5HZXRJREZvclZSSW5pdEVycm9yKCBlcnJvciAp
OworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIEdldElERm9yVlJJbml0RXJyb3Io
IGVycm9yICk7Cit9CisKKworLyoqIFJldHVybnMgdGhlIGVuZ2xpc2ggc3RyaW5nIHZlcnNpb24g
b2YgYW4gSE1EIGVycm9yLiAqLworY29uc3QgY2hhciAqVlJfR2V0VlJJbml0RXJyb3JBc0VuZ2xp
c2hEZXNjcmlwdGlvbiggRVZSSW5pdEVycm9yIGVycm9yICkKK3sKKyAgICAgICBzdGQ6OmxvY2tf
Z3VhcmQ8c3RkOjpyZWN1cnNpdmVfbXV0ZXg+IGxvY2soIGdfbXV0ZXhTeXN0ZW0gKTsKKworICAg
ICAgIGlmICggZ19wSG1kU3lzdGVtICkKKyAgICAgICAgICAgICAgcmV0dXJuIGdfcEhtZFN5c3Rl
bS0+R2V0RW5nbGlzaFN0cmluZ0ZvckhtZEVycm9yKCBlcnJvciApOworICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgcmV0dXJuIEdldEVuZ2xpc2hTdHJpbmdGb3JIbWRFcnJvciggZXJyb3IgKTsK
K30KKworCitWUl9JTlRFUkZBQ0UgY29uc3QgY2hhciAqVlJfQ0FMTFRZUEUgVlJfR2V0U3RyaW5n
Rm9ySG1kRXJyb3IoIHZyOjpFVlJJbml0RXJyb3IgZXJyb3IgKTsKKworLyoqIFJldHVybnMgdGhl
IGVuZ2xpc2ggc3RyaW5nIHZlcnNpb24gb2YgYW4gSE1EIGVycm9yLiAqLworY29uc3QgY2hhciAq
VlJfR2V0U3RyaW5nRm9ySG1kRXJyb3IoIEVWUkluaXRFcnJvciBlcnJvciApCit7CisgICAgICAg
cmV0dXJuIFZSX0dldFZSSW5pdEVycm9yQXNFbmdsaXNoRGVzY3JpcHRpb24oIGVycm9yICk7Cit9
CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9kaXJ0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNv
bW1vbi9kaXJ0b29sc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YmQyM2Q0MGVlNDlmNDA4MGY3
MWIyNjYwMzNkNjRkYTFjZmVmYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9vcGVudnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5jcHAKQEAgLTAsMCArMSwxMDEg
QEAKKy8vPT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0v
LworI2luY2x1ZGUgImRpcnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgInN0cnRvb2xzX3B1Ymxp
Yy5oIgorI2luY2x1ZGUgInBhdGh0b29sc19wdWJsaWMuaCIKKworI2luY2x1ZGUgPGVycm5vLmg+
CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZmRlZiBfV0lOMzIKKyNpbmNsdWRlICJ3aW5kb3dz
LmgiCisjZWxzZQorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5j
bHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNlbmRpZgorCisjaWYg
ZGVmaW5lZCggT1NYICkKKyNpbmNsdWRlIDxzeXMvc3lzbGltaXRzLmg+CisjZW5kaWYKKworCisv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiB1dGlsaXR5IGZ1bmN0aW9uIHRvIGNy
ZWF0ZSBkaXJzICYgc3ViZGlycworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBCQ3JlYXRl
RGlyZWN0b3J5UmVjdXJzaXZlKCBjb25zdCBjaGFyICpwY2hQYXRoICkKK3sKKyAgICAgICAvLyBE
b2VzIGl0IGFscmVhZHkgZXhpc3Q/CisgICAgICAgaWYgKCBQYXRoX0lzRGlyZWN0b3J5KCBwY2hQ
YXRoICkgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIC8vIGNvcHkgdGhl
IHBhdGggaW50byBzb21ldGhpbmcgd2UgY2FuIG11bmdlCisgICAgICAgaW50IGxlbiA9IChpbnQp
c3RybGVuKCBwY2hQYXRoICk7CisgICAgICAgY2hhciAqcGF0aCA9IChjaGFyICopbWFsbG9jKCBs
ZW4gKyAxICk7CisgICAgICAgc3RyY3B5KCBwYXRoLCBwY2hQYXRoICk7CisKKyAgICAgICAvLyBX
YWxrIGJhY2t3YXJkcyB0byBmaXJzdCBub24tZXhpc3RpbmcgZGlyIHRoYXQgd2UgZmluZAorICAg
ICAgIGNoYXIgKnMgPSBwYXRoICsgbGVuIC0gMTsKKworICAgICAgIGNvbnN0IGNoYXIgc2xhc2gg
PSBQYXRoX0dldFNsYXNoKCk7CisgICAgICAgd2hpbGUgKCBzID4gcGF0aCApCisgICAgICAgewor
ICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgKnMgPSAnXDAnOworICAgICAgICAgICAgICAgICAgICAgYm9vbCBiRXhp
c3RzID0gUGF0aF9Jc0RpcmVjdG9yeSggcGF0aCApOworICAgICAgICAgICAgICAgICAgICAgKnMg
PSBzbGFzaDsKKworICAgICAgICAgICAgICAgICAgICAgaWYgKCBiRXhpc3RzICkKKyAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3M7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgLS1zOworICAgICAgIH0KKworICAgICAgIC8vIGFu
ZCB0aGVuIG1vdmUgZm9yd2FyZHMgZnJvbSB0aGVyZQorCisgICAgICAgd2hpbGUgKCAqcyApCisg
ICAgICAgeworICAgICAgICAgICAgICBpZiAoICpzID09IHNsYXNoICkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgKnMgPSAnXDAnOworICAgICAgICAgICAgICAgICAgICAg
QkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOworICAgICAgICAgICAgICAgICAgICAgKnMgPSBzbGFz
aDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzKys7CisgICAgICAgfQorCisgICAg
ICAgYm9vbCBiUmV0VmFsID0gQkNyZWF0ZURpcmVjdG9yeSggcGF0aCApOworICAgICAgIGZyZWUo
IHBhdGggKTsKKyAgICAgICByZXR1cm4gYlJldFZhbDsKK30KKworCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLyBQdXJwb3NlOiBDcmVhdGVzIHRoZSBkaXJlY3RvcnksIHJldHVybmluZyB0cnVl
IGlmIGl0IGlzIGNyZWF0ZWQsIG9yIGlmIGl0IGFscmVhZHkgZXhpc3RlZAorLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorYm9vbCBCQ3JlYXRlRGlyZWN0b3J5KCBjb25zdCBjaGFyICpwY2hQYXRoICkK
K3sKKyNpZmRlZiBXSU4zMgorICAgICAgIHN0ZDo6d3N0cmluZyB3UGF0aCA9IFVURjh0bzE2KCBw
Y2hQYXRoICk7CisgICAgICAgaWYgKCA6OkNyZWF0ZURpcmVjdG9yeVcoIHdQYXRoLmNfc3RyKCks
IE5VTEwgKSApCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgaWYgKCA6Okdl
dExhc3RFcnJvcigpID09IEVSUk9SX0FMUkVBRFlfRVhJU1RTICkKKyAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgICAgIGludCBpID0g
bWtkaXIoIHBjaFBhdGgsIFNfSVJXWFUgfCBTX0lSV1hHIHwgU19JUldYTyApOworICAgICAgIGlm
ICggaSA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgaWYgKCBlcnJu
byA9PSBFRVhJU1QgKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVu
dnIvc3JjL3ZyY29tbW9uL2RpcnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3Bl
bnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDQ4YjQxYjc4
MTRmZGUwNzI3NzY0YWU3OTRlZGU4ZTBkZmQ0ZTYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9kaXJ0b29sc19wdWJsaWMuaApAQCAtMCww
ICsxLDE3IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09
PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8
c3RyaW5nPgorCisKKyNpZiAhZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+
CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorCisKK2V4dGVybiBib29sIEJDcmVhdGVE
aXJlY3RvcnlSZWN1cnNpdmUoIGNvbnN0IGNoYXIgKnBjaFBhdGggKTsKK2V4dGVybiBib29sIEJD
cmVhdGVEaXJlY3RvcnkoIGNvbnN0IGNoYXIgKnBjaFBhdGggKTsKKworCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1YmxpYy5j
cHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1
YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWVkMTZkOWY4NTYyNmZjYTA2MDRjOWYxZWNmNjY0MDJjOWJh
OGFmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJj
b21tb24vZW52dmFydG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsxLDQ2IEBACisvLz09PT09PT09
PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNsdWRlICJl
bnZ2YXJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2lmIGRlZmluZWQo
X1dJTjMyKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI3VuZGVmIEdldEVudmlyb25tZW50VmFy
aWFibGUKKyN1bmRlZiBTZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjZW5kaWYKKworCitzdGQ6OnN0
cmluZyBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lICkKK3sK
KyNpZiBkZWZpbmVkKF9XSU4zMikKKyAgICAgICBjaGFyIHJjaFZhbHVlWzMyNzY3XTsgLy8gbWF4
IHNpemUgZm9yIGFuIGVudiB2YXIgb24gV2luZG93cworICAgICAgIERXT1JEIGNDaGFycyA9IEdl
dEVudmlyb25tZW50VmFyaWFibGVBKCBwY2hWYXJOYW1lLCByY2hWYWx1ZSwgc2l6ZW9mKCByY2hW
YWx1ZSApICk7CisgICAgICAgaWYoIGNDaGFycyA9PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJu
ICIiOworICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIHJjaFZhbHVlOworI2VsaWYg
ZGVmaW5lZChQT1NJWCkKKyAgICAgICBjaGFyICpwY2hWYWx1ZSA9IGdldGVudiggcGNoVmFyTmFt
ZSApOworICAgICAgIGlmKCBwY2hWYWx1ZSApCisgICAgICAgICAgICAgIHJldHVybiBwY2hWYWx1
ZTsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKyNlbHNlCisjZXJyb3Ig
IlVuc3VwcG9ydGVkIFBsYXRmb3JtIgorI2VuZGlmCit9CisKKworYm9vbCBTZXRFbnZpcm9ubWVu
dFZhcmlhYmxlKCBjb25zdCBjaGFyICpwY2hWYXJOYW1lLCBjb25zdCBjaGFyICpwY2hWYXJWYWx1
ZSApCit7CisjaWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgcmV0dXJuIDAgIT0gU2V0RW52aXJv
bm1lbnRWYXJpYWJsZUEoIHBjaFZhck5hbWUsIHBjaFZhclZhbHVlICk7CisjZWxpZiBkZWZpbmVk
KFBPU0lYKQorICAgICAgIGlmKCBwY2hWYXJWYWx1ZSA9PSBOVUxMICkKKyAgICAgICAgICAgICAg
cmV0dXJuIDAgPT0gdW5zZXRlbnYoIHBjaFZhck5hbWUgKTsKKyAgICAgICBlbHNlCisgICAgICAg
ICAgICAgIHJldHVybiAwID09IHNldGVudiggcGNoVmFyTmFtZSwgcGNoVmFyVmFsdWUsIDEgKTsK
KyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIFBsYXRmb3JtIgorI2VuZGlmCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2VudnZhcnRvb2xzX3B1
YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9lbnZ2YXJ0b29s
c19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGU5ODFhYzNlMzk3MDZkNTlhMDBjMmM0MWY4NTU4ZTRj
NWQyMDYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92
cmNvbW1vbi9lbnZ2YXJ0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDcgQEAKKy8vPT09PT09PT09
IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxzdHJpbmc+CisKK3N0ZDo6c3RyaW5nIEdldEVudmlyb25tZW50VmFyaWFi
bGUoIGNvbnN0IGNoYXIgKnBjaFZhck5hbWUgKTsKK2Jvb2wgU2V0RW52aXJvbm1lbnRWYXJpYWJs
ZSggY29uc3QgY2hhciAqcGNoVmFyTmFtZSwgY29uc3QgY2hhciAqcGNoVmFyVmFsdWUgKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vaG1kZXJyb3Jz
X3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVy
cm9yc19wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMmUxYzRiM2E4MTMwOGMwMTlkNzJiY2NjZDdj
NmFlNzA5ODE5ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIv
c3JjL3ZyY29tbW9uL2htZGVycm9yc19wdWJsaWMuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvLz09
PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNpbmNs
dWRlICJvcGVudnIuaCIKKyNpbmNsdWRlICJobWRlcnJvcnNfcHVibGljLmgiCisjaW5jbHVkZSA8
c3RkaW8uaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKK3VzaW5nIG5hbWVzcGFjZSB2cjsKKwor
I2RlZmluZSBSRVRVUk5fRU5VTV9BU19TVFJJTkcoZW51bVZhbHVlKSBjYXNlIGVudW1WYWx1ZTog
cmV0dXJuICNlbnVtVmFsdWU7CisKKworY29uc3QgY2hhciAqR2V0RW5nbGlzaFN0cmluZ0Zvckht
ZEVycm9yKCB2cjo6RVZSSW5pdEVycm9yIGVFcnJvciApCit7CisgICAgICAgc3dpdGNoKCBlRXJy
b3IgKQorICAgICAgIHsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX05vbmU6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIk5vIEVy
cm9yICgwKSI7CisKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uTm90
Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0YWxsYXRpb24gTm90IEZvdW5k
ICgxMDApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVw
dDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkluc3RhbGxhdGlvbiBDb3JydXB0ICgxMDEp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJDbGllbnRETExOb3RGb3VuZDogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gInZyY2xpZW50IFNoYXJlZCBMaWIgTm90IEZvdW5kICgx
MDIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5kOiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJGaWxlIE5vdCBGb3VuZCAoMTAzKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ZhY3RvcnlOb3RGb3VuZDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJGYWN0b3J5IEZ1bmN0aW9uIE5vdCBGb3VuZCAoMTA0
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFjZU5vdEZvdW5kOiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiSW50ZXJmYWNlIE5vdCBGb3VuZCAoMTA1KSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRJbnRlcmZhY2U6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCBJbnRlcmZhY2UgKDEwNikiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZDogICAgICAgcmV0
dXJuICJVc2VyIENvbmZpZyBEaXJlY3RvcnkgSW52YWxpZCAoMTA3KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9Jbml0X0htZE5vdEZvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICJIbWQgTm90IEZvdW5kICgxMDgpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfTm90SW5pdGlhbGl6ZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiTm90IEluaXRpYWxpemVkICgxMDkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRf
UGF0aFJlZ2lzdHJ5Tm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnN0YWxs
YXRpb24gcGF0aCBjb3VsZCBub3QgYmUgbG9jYXRlZCAoMTEwKSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X05vQ29uZmlnUGF0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiQ29uZmlnIHBhdGggY291bGQgbm90IGJlIGxvY2F0ZWQgKDExMSkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Ob0xvZ1BhdGg6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkxvZyBwYXRoIGNvdWxkIG5vdCBiZSBsb2NhdGVkICgxMTIp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUGF0aFJlZ2lzdHJ5Tm90V3JpdGFibGU6
ICAgICAgICAgICAgICByZXR1cm4gIlVuYWJsZSB0byB3cml0ZSBwYXRoIHJlZ2lzdHJ5ICgxMTMp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfQXBwSW5mb0luaXRGYWlsZWQ6ICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJBcHAgaW5mbyBtYW5hZ2VyIGluaXQgZmFpbGVkICgxMTQp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfUmV0cnk6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnRlcm5hbCBSZXRyeSAoMTE1KSI7Cisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlcjogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gIlVzZXIgQ2FuY2VsZWQgSW5pdCAoMTE2KSI7CisgICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9Jbml0X0Fub3RoZXJBcHBMYXVuY2hpbmc6ICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICJBbm90aGVyIGFwcCB3YXMgYWxyZWFkeSBsYXVuY2hpbmcgKDExNykiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9TZXR0aW5nc0luaXRGYWlsZWQ6ICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJTZXR0aW5ncyBtYW5hZ2VyIGluaXQgZmFpbGVkICgxMTgpIjsKKyAg
ICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfU2h1dHRpbmdEb3duOiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBzeXN0ZW0gc2h1dHRpbmcgZG93biAoMTE5KSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzOiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIlRvbyBtYW55IHRyYWNrZWQgb2JqZWN0cyAoMTIwKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vU2VydmVyRm9yQmFja2dyb3VuZEFwcDog
ICAgICAgICAgICAgIHJldHVybiAiTm90IHN0YXJ0aW5nIHZyc2VydmVyIGZvciBiYWNrZ3JvdW5k
IGFwcCAoMTIxKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdp
dGhDb21wb3NpdG9yOiAgICAgICByZXR1cm4gIlRoZSByZXF1ZXN0ZWQgaW50ZXJmYWNlIGlzIGlu
Y29tcGF0aWJsZSB3aXRoIHRoZSBjb21wb3NpdG9yIGFuZCB0aGUgY29tcG9zaXRvciBpcyBydW5u
aW5nICgxMjIpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9V
dGlsaXR5QXBwczogICAgICAgcmV0dXJuICJUaGlzIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxl
IHRvIHV0aWxpdHkgYXBwbGljYXRpb25zICgxMjMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9y
X0luaXRfSW50ZXJuYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICJ2cnNlcnZlciBpbnRlcm5hbCBlcnJvciAoMTI0KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X0htZERyaXZlcklkSXNOb25lOiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAiSG1kIERyaXZlcklkIGlzIGludmFsaWQgKDEyNSkiOworICAgICAgIGNhc2UgVlJJbml0RXJy
b3JfSW5pdF9IbWROb3RGb3VuZFByZXNlbmNlRmFpbGVkOiAgICAgICByZXR1cm4gIkhtZCBOb3Qg
Rm91bmQgUHJlc2VuY2UgRmFpbGVkICgxMjYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lu
aXRfVlJNb25pdG9yTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJWUiBNb25p
dG9yIE5vdCBGb3VuZCAoMTI3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSTW9u
aXRvclN0YXJ0dXBGYWlsZWQ6ICAgICAgICAgICAgICByZXR1cm4gIlZSIE1vbml0b3Igc3RhcnR1
cCBmYWlsZWQgKDEyOCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9Mb3dQb3dlcldh
dGNoZG9nTm90U3VwcG9ydGVkOiByZXR1cm4gIkxvdyBQb3dlciBXYXRjaGRvZyBOb3QgU3VwcG9y
dGVkICgxMjkpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfSW52YWxpZEFwcGxpY2F0
aW9uVHlwZTogICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCBBcHBsaWNhdGlvbiBUeXBlICgx
MzApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfTm90QXZhaWxhYmxlVG9XYXRjaGRv
Z0FwcHM6ICAgICAgIHJldHVybiAiTm90IGF2YWlsYWJsZSB0byB3YXRjaGRvZyBhcHBzICgxMzEp
IjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0luaXRfV2F0Y2hkb2dEaXNhYmxlZEluU2V0dGlu
Z3M6ICAgICAgIHJldHVybiAiV2F0Y2hkb2cgZGlzYWJsZWQgaW4gc2V0dGluZ3MgKDEzMikiOwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfSW5pdF9WUkRhc2hib2FyZE5vdEZvdW5kOiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAiVlIgRGFzaGJvYXJkIE5vdCBGb3VuZCAoMTMzKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Jbml0X1ZSRGFzaGJvYXJkU3RhcnR1cEZhaWxlZDogICAgICAg
ICAgICAgIHJldHVybiAiVlIgRGFzaGJvYXJkIHN0YXJ0dXAgZmFpbGVkICgxMzQpIjsKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX0luaXRfVlJIb21lTm90Rm91bmQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiVlIgSG9tZSBOb3QgRm91bmQgKDEzNSkiOworICAgICAgIGNhc2Ug
VlJJbml0RXJyb3JfSW5pdF9WUkhvbWVTdGFydHVwRmFpbGVkOiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAiVlIgaG9tZSBzdGFydHVwIGZhaWxlZCAoMTM2KSI7CisgICAgICAgY2FzZSBWUklu
aXRFcnJvcl9Jbml0X1JlYm9vdGluZ0J1c3k6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiUmVib290aW5nIEluIFByb2dyZXNzICgxMzcpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfRmlybXdhcmVVcGRhdGVCdXN5OiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAi
RmlybXdhcmUgVXBkYXRlIEluIFByb2dyZXNzICgxMzgpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVy
cm9yX0luaXRfRmlybXdhcmVSZWNvdmVyeUJ1c3k6ICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJGaXJtd2FyZSBSZWNvdmVyeSBJbiBQcm9ncmVzcyAoMTM5KSI7CisKKyAgICAgICBjYXNlIFZS
SW5pdEVycm9yX0RyaXZlcl9GYWlsZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiRHJpdmVyIEZhaWxlZCAoMjAwKSI7CisgICAgICAgY2Fz
ZSBWUkluaXRFcnJvcl9Ecml2ZXJfVW5rbm93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkRyaXZlciBOb3QgS25vd24gKDIwMSkiOworICAgICAgIGNh
c2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25vd246ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgTm90IEtub3duICgyMDIpIjsKKyAgICAgICBj
YXNlIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RMb2FkZWQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgTm90IExvYWRlZCAoMjAzKSI7CisgICAg
ICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfUnVudGltZU91dE9mRGF0ZTogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJEcml2ZXIgcnVudGltZSBpcyBvdXQgb2YgZGF0ZSAoMjA0
KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2U6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJITUQgYWxyZWFkeSBpbiB1c2Ug
YnkgYW5vdGhlciBhcHBsaWNhdGlvbiAoMjA1KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9E
cml2ZXJfTm90Q2FsaWJyYXRlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiRGV2aWNlIGlzIG5vdCBjYWxpYnJhdGVkICgyMDYpIjsKKyAgICAgICBjYXNlIFZSSW5p
dEVycm9yX0RyaXZlcl9DYWxpYnJhdGlvbkludmFsaWQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiRGV2aWNlIENhbGlicmF0aW9uIGlzIGludmFsaWQgKDIwNykiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERpc3BsYXlOb3RGb3VuZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJITUQgZGV0ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9y
IG5vdCBmb3VuZCAoMjA4KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tl
ZERldmljZUludGVyZmFjZVVua25vd246ICAgICAgIHJldHVybiAiRHJpdmVyIFRyYWNrZWQgRGV2
aWNlIEludGVyZmFjZSB1bmtub3duICgyMDkpIjsKKyAgICAgICAvLyBjYXNlIFZSSW5pdEVycm9y
X0RyaXZlcl9IbWREaXNwbGF5Tm90Rm91bmRBZnRlckZpeDogICAgICAgcmV0dXJuICJITUQgZGV0
ZWN0ZWQgb3ZlciBVU0IsIGJ1dCBNb25pdG9yIG5vdCBmb3VuZCBhZnRlciBhdHRlbXB0IHRvIGZp
eCAoMjEwKSI7IC8vIHRha2VuIG91dCB1cG9uIEJlbidzIHJlcXVlc3Q6IEhlIHRoaW5rcyB0aGF0
IHRoZXJlIGlzIG5vIG5lZWQgdG8gc2VwYXJhdGUgdGhhdCBlcnJvciBmcm9tIDIwOAorICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfRHJpdmVyX0htZERyaXZlcklkT3V0T2ZCb3VuZHM6ICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuICJIbWQgRHJpdmVySWQgaXMgb3VyIG9mIGJvdW5kcyAoMjExKSI7
CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU1pcnJvcmVkOiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBkZXRlY3RlZCBvdmVyIFVTQiwgYnV0
IE1vbml0b3IgbWF5IGJlIG1pcnJvcmVkIGluc3RlYWQgb2YgZXh0ZW5kZWQgKDIxMikiOworCisg
ICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfU2VydmVySW5pdEZhaWxlZDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlZSIFNlcnZlciBJbml0IEZhaWxl
ZCAoMzAwKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfQ29ubmVjdEZhaWxlZDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJDb25u
ZWN0IHRvIFZSIFNlcnZlciBGYWlsZWQgKDMwMSkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
SVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAiU2hhcmVkIElQQyBTdGF0ZSBJbml0IEZhaWxlZCAoMzAyKSI7CisgICAgICAg
Y2FzZSBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckluaXRGYWlsZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlNoYXJlZCBJUEMgQ29tcG9zaXRvciBJbml0IEZh
aWxlZCAoMzAzKSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9JUENfTXV0ZXhJbml0RmFpbGVk
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU2hhcmVk
IElQQyBNdXRleCBJbml0IEZhaWxlZCAoMzA0KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
UENfRmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJTaGFyZWQgSVBDIEZhaWxlZCAoMzA1KSI7CisgICAgICAgY2FzZSBW
UkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb21wb3NpdG9yIENvbm5lY3QgRmFpbGVkICgz
MDYpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9ySW52YWxpZENvbm5l
Y3RSZXNwb25zZTogICAgICAgICAgICAgIHJldHVybiAiU2hhcmVkIElQQyBDb21wb3NpdG9yIElu
dmFsaWQgQ29ubmVjdCBSZXNwb25zZSAoMzA3KSI7CisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9J
UENfQ29ubmVjdEZhaWxlZEFmdGVyTXVsdGlwbGVBdHRlbXB0czogICAgICAgcmV0dXJuICJTaGFy
ZWQgSVBDIENvbm5lY3QgRmFpbGVkIEFmdGVyIE11bHRpcGxlIEF0dGVtcHRzICgzMDgpIjsKKwor
ICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9GYWlsZWQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgZmFpbGVkIHRvIGluaXRpYWxp
emUgKDQwMCkiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfQ29tcG9zaXRvcl9EM0QxMUhhcmR3
YXJlUmVxdWlyZWQ6ICAgICAgIHJldHVybiAiQ29tcG9zaXRvciBmYWlsZWQgdG8gZmluZCBEWDEx
IGhhcmR3YXJlICg0MDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmly
bXdhcmVSZXF1aXJlc1VwZGF0ZTogICAgICAgcmV0dXJuICJDb21wb3NpdG9yIHJlcXVpcmVzIG1h
bmRhdG9yeSBmaXJtd2FyZSB1cGRhdGUgKDQwMikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3Jf
Q29tcG9zaXRvcl9PdmVybGF5SW5pdEZhaWxlZDogICAgICAgICAgICAgIHJldHVybiAiQ29tcG9z
aXRvciBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIGJ1dCBvdmVybGF5IGluaXQgZmFpbGVkICg0
MDMpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfU2NyZWVuc2hvdHNJbml0
RmFpbGVkOiAgICAgICByZXR1cm4gIkNvbXBvc2l0b3IgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVk
LCBidXQgc2NyZWVuc2hvdCBpbml0IGZhaWxlZCAoNDA0KSI7CisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9Db21wb3NpdG9yX1VuYWJsZVRvQ3JlYXRlRGV2aWNlOiAgICAgICByZXR1cm4gIkNvbXBv
c2l0b3IgdW5hYmxlIHRvIGNyZWF0ZSBncmFwaGljcyBkZXZpY2UgKDQwNSkiOworCisgICAgICAg
Ly8gT2N1bHVzCisgICAgICAgY2FzZSBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVU
b0Nvbm5lY3RUb09jdWx1c1J1bnRpbWU6ICAgICAgIHJldHVybiAiVW5hYmxlIHRvIGNvbm5lY3Qg
dG8gT2N1bHVzIFJ1bnRpbWUgKDEwMDApIjsKKworICAgICAgIC8vIExpZ2h0aG91c2UKKyAgICAg
ICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRPcGVuRGV2aWNl
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IGNhbiBu
b3Qgb3BlbiBkZXZpY2UgKDExMDEpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNw
ZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvUmVxdWVzdENvbmZpZ1N0YXJ0OiAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IHVuYWJsZSB0byByZXF1ZXN0IGNvbmZpZyAoMTEwMikiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfTm9TdG9yZWRDb25maWc6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgbm8gc3Rv
cmVkIGNvbmZpZyAoMTEwMykiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ29uZmlnRmFpbGVkU2FuaXR5Q2hlY2s6ICAgICAgIHJldHVybiAiSE1EIGZv
dW5kLCBidXQgZmFpbGVkIGNvbmZpZ3VyYXRpb24gY2hlY2sgKDExMTMpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb0JpZzogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgY29uZmln
IHRvbyBiaWcgKDExMDQpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIkhNRCBmb3VuZCwgYnV0IGNvbmZpZyB0b28gc21hbGwgKDExMDUpIjsKKyAgICAgICBjYXNl
IFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvSW5pdFpMaWI6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBidXQgdW5hYmxlIHRv
IGluaXQgWkxpYiAoMTEwNikiOworICAgICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfQ2FudFJlYWRGaXJtd2FyZVZlcnNpb246ICAgICAgICAgICAgICByZXR1cm4g
IkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdpdGggdGhlIGRhdGEgKDExMDcpIjsKKyAgICAgICBj
YXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvU2VuZFVzZXJE
YXRhU3RhcnQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdp
dGggdGhlIGRhdGEgKDExMDgpIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydDogICAgICAgICAgICAgIHJldHVy
biAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTEwOSkiOworICAgICAg
IGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9HZXRVc2Vy
RGF0YU5leHQ6ICAgICAgICAgICAgICByZXR1cm4gIkhNRCBmb3VuZCwgYnV0IHByb2JsZW1zIHdp
dGggdGhlIGRhdGEgKDExMTApIjsKKyAgICAgICBjYXNlIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX1VzZXJEYXRhQWRkcmVzc1JhbmdlOiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiSE1EIGZvdW5kLCBidXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTExMSkiOworICAg
ICAgIGNhc2UgVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFFcnJv
cjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiSE1EIGZvdW5kLCBi
dXQgcHJvYmxlbXMgd2l0aCB0aGUgZGF0YSAoMTExMikiOworCisgICAgICAgY2FzZSBWUkluaXRF
cnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZvdW5kOiByZXR1cm4gIlVuYWJsZSB0byBm
aW5kIFN0ZWFtIGluc3RhbGxhdGlvbiAoMjAwMCkiOworCisgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgYnVmWzEyOF07Cisg
ICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKCBidWYsICJVbmtub3duIGVycm9yICglZCkiLCBl
RXJyb3IgKTsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWY7CisgICAgICAgICAgICAg
IH0KKyAgICAgICB9CisKK30KKworCitjb25zdCBjaGFyICpHZXRJREZvclZSSW5pdEVycm9yKCB2
cjo6RVZSSW5pdEVycm9yIGVFcnJvciApCit7CisgICAgICAgc3dpdGNoKCBlRXJyb3IgKQorICAg
ICAgIHsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9O
b25lICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
VW5rbm93biApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9JbnN0YWxsYXRpb25Ob3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSW5zdGFsbGF0aW9uQ29ycnVwdCApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJD
bGllbnRETExOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0luaXRfRmlsZU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9F
TlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9GYWN0b3J5Tm90Rm91bmQgKTsKKyAgICAg
ICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludGVyZmFj
ZU5vdEZvdW5kICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9JbnZhbGlkSW50ZXJmYWNlICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Vc2VyQ29uZmlnRGlyZWN0b3J5SW52YWxpZCAp
OworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRf
SG1kTm90Rm91bmQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X05vdEluaXRpYWxpemVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVN
X0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9QYXRoUmVnaXN0cnlOb3RGb3VuZCApOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfTm9Db25m
aWdQYXRoICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJy
b3JfSW5pdF9Ob0xvZ1BhdGggKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9Jbml0X1BhdGhSZWdpc3RyeU5vdFdyaXRhYmxlICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9BcHBJbmZvSW5pdEZh
aWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0luaXRfUmV0cnkgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9Jbml0X0luaXRDYW5jZWxlZEJ5VXNlciApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfQW5vdGhlckFwcExhdW5jaGluZyApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfU2V0
dGluZ3NJbml0RmFpbGVkICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORygg
VlJJbml0RXJyb3JfSW5pdF9TaHV0dGluZ0Rvd24gKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VO
VU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1Rvb01hbnlPYmplY3RzICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob1NlcnZlckZv
ckJhY2tncm91bmRBcHAgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Jbml0X05vdFN1cHBvcnRlZFdpdGhDb21wb3NpdG9yICk7CisgICAgICAgICAg
ICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9Ob3RBdmFpbGFibGVU
b1V0aWxpdHlBcHBzICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfSW5pdF9JbnRlcm5hbCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJNb25pdG9yTm90Rm91bmQgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X1ZSTW9uaXRvclN0YXJ0
dXBGYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRF
cnJvcl9Jbml0X0xvd1Bvd2VyV2F0Y2hkb2dOb3RTdXBwb3J0ZWQgKTsKKyAgICAgICAgICAgICAg
UkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Jbml0X0ludmFsaWRBcHBsaWNhdGlv
blR5cGUgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9Jbml0X05vdEF2YWlsYWJsZVRvV2F0Y2hkb2dBcHBzICk7CisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9XYXRjaGRvZ0Rpc2FibGVkSW5TZXR0
aW5ncyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X0luaXRfVlJEYXNoYm9hcmROb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfVlJEYXNoYm9hcmRTdGFydHVwRmFpbGVkICk7Cisg
ICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9WUkhv
bWVOb3RGb3VuZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5p
dEVycm9yX0luaXRfVlJIb21lU3RhcnR1cEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5f
RU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfUmVib290aW5nQnVzeSApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfRmlybXdhcmVV
cGRhdGVCdXN5ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0
RXJyb3JfSW5pdF9GaXJtd2FyZVJlY292ZXJ5QnVzeSApOworCisgICAgICAgICAgICAgIFJFVFVS
Tl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSW5pdF9IbWREcml2ZXJJZElzTm9uZSApOwor
ICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0luaXRfSG1k
Tm90Rm91bmRQcmVzZW5jZUZhaWxlZCApOworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0ZhaWxlZCApOworICAgICAgICAgICAgICBSRVRV
Uk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9Vbmtub3duICk7CisgICAgICAg
ICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfRHJpdmVyX0htZFVua25v
d24pOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0Ry
aXZlcl9Ob3RMb2FkZWQpOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0RyaXZlcl9SdW50aW1lT3V0T2ZEYXRlKTsKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kSW5Vc2UpOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9Ob3RDYWxpYnJh
dGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9E
cml2ZXJfQ2FsaWJyYXRpb25JbnZhbGlkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kKTsKKyAgICAgICAg
ICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfVHJhY2tlZERl
dmljZUludGVyZmFjZVVua25vd24gKTsKKyAgICAgICAgICAgICAgLy8gUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJfSG1kRGlzcGxheU5vdEZvdW5kQWZ0ZXJGaXggKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Ecml2ZXJf
SG1kRHJpdmVySWRPdXRPZkJvdW5kcyApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19T
VFJJTkcoIFZSSW5pdEVycm9yX0RyaXZlcl9IbWREaXNwbGF5TWlycm9yZWQgKTsKKworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19TZXJ2ZXJJbml0
RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJv
cl9JUENfQ29ubmVjdEZhaWxlZCk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklO
RyggVlJJbml0RXJyb3JfSVBDX1NoYXJlZFN0YXRlSW5pdEZhaWxlZCk7CisgICAgICAgICAgICAg
IFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfSVBDX0NvbXBvc2l0b3JJbml0RmFp
bGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9J
UENfTXV0ZXhJbml0RmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5H
KCBWUkluaXRFcnJvcl9JUENfRmFpbGVkKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNf
U1RSSU5HKCBWUkluaXRFcnJvcl9JUENfQ29tcG9zaXRvckNvbm5lY3RGYWlsZWQpOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0lQQ19Db21wb3NpdG9y
SW52YWxpZENvbm5lY3RSZXNwb25zZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NU
UklORyggVlJJbml0RXJyb3JfSVBDX0Nvbm5lY3RGYWlsZWRBZnRlck11bHRpcGxlQXR0ZW1wdHMp
OworCisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfQ29t
cG9zaXRvcl9GYWlsZWQgKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBW
UkluaXRFcnJvcl9Db21wb3NpdG9yX0QzRDExSGFyZHdhcmVSZXF1aXJlZCApOworICAgICAgICAg
ICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfRmlybXdh
cmVSZXF1aXJlc1VwZGF0ZSApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkco
IFZSSW5pdEVycm9yX0NvbXBvc2l0b3JfT3ZlcmxheUluaXRGYWlsZWQgKTsKKyAgICAgICAgICAg
ICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9Db21wb3NpdG9yX1NjcmVlbnNo
b3RzSW5pdEZhaWxlZCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX0NvbXBvc2l0b3JfVW5hYmxlVG9DcmVhdGVEZXZpY2UgKTsKKworICAgICAgICAg
ICAgICAvLyBPY3VsdXMKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUklu
aXRFcnJvcl9WZW5kb3JTcGVjaWZpY19VbmFibGVUb0Nvbm5lY3RUb09jdWx1c1J1bnRpbWUpOwor
CisgICAgICAgICAgICAgIC8vIExpZ2h0aG91c2UKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9DYW50T3BlbkRl
dmljZSk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3Jf
VmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9SZXF1ZXN0Q29uZmlnU3RhcnQpOworICAg
ICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNp
ZmljX0htZEZvdW5kX05vU3RvcmVkQ29uZmlnKTsKKyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1f
QVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JTcGVjaWZpY19IbWRGb3VuZF9Db25maWdGYWls
ZWRTYW5pdHlDaGVjayApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZS
SW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NvbmZpZ1Rvb0JpZyApOworICAgICAg
ICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmlj
X0htZEZvdW5kX0NvbmZpZ1Rvb1NtYWxsICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FT
X1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVW5hYmxlVG9Jbml0
WkxpYiApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9y
X1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX0NhbnRSZWFkRmlybXdhcmVWZXJzaW9uICk7CisgICAg
ICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJbml0RXJyb3JfVmVuZG9yU3BlY2lm
aWNfSG1kRm91bmRfVW5hYmxlVG9TZW5kVXNlckRhdGFTdGFydCApOworICAgICAgICAgICAgICBS
RVRVUk5fRU5VTV9BU19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5k
X1VuYWJsZVRvR2V0VXNlckRhdGFTdGFydCApOworICAgICAgICAgICAgICBSRVRVUk5fRU5VTV9B
U19TVFJJTkcoIFZSSW5pdEVycm9yX1ZlbmRvclNwZWNpZmljX0htZEZvdW5kX1VuYWJsZVRvR2V0
VXNlckRhdGFOZXh0ICk7CisgICAgICAgICAgICAgIFJFVFVSTl9FTlVNX0FTX1NUUklORyggVlJJ
bml0RXJyb3JfVmVuZG9yU3BlY2lmaWNfSG1kRm91bmRfVXNlckRhdGFBZGRyZXNzUmFuZ2UgKTsK
KyAgICAgICAgICAgICAgUkVUVVJOX0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9WZW5kb3JT
cGVjaWZpY19IbWRGb3VuZF9Vc2VyRGF0YUVycm9yICk7CisKKyAgICAgICAgICAgICAgUkVUVVJO
X0VOVU1fQVNfU1RSSU5HKCBWUkluaXRFcnJvcl9TdGVhbV9TdGVhbUluc3RhbGxhdGlvbk5vdEZv
dW5kICk7CisKKyAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWMgY2hhciBidWZbMTI4XTsKKyAgICAgICAgICAgICAgICAgICAgIHNwcmlu
dGYoIGJ1ZiwgIlVua25vd24gZXJyb3IgKCVkKSIsIGVFcnJvciApOworICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJ1ZjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9obWRlcnJvcnNfcHVi
bGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL2htZGVycm9yc19w
dWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jY2Q2YzhhOTZjMTMwYzBhY2YxZjRiMmI2NDg2ZjViMjkzZDA3
YjI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNv
bW1vbi9obWRlcnJvcnNfcHVibGljLmgKQEAgLTAsMCArMSw2IEBACisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCitj
b25zdCBjaGFyICpHZXRFbmdsaXNoU3RyaW5nRm9ySG1kRXJyb3IoIHZyOjpFVlJJbml0RXJyb3Ig
ZUVycm9yICk7Citjb25zdCBjaGFyICpHZXRJREZvclZSSW5pdEVycm9yKCB2cjo6RVZSSW5pdEVy
cm9yIGVFcnJvciApOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3BhdGh0b29sc19wdWJsaWMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZy
L3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDM0NThkZGMx
ZGFhZDhjODk3ODEwNDUyODg1MjMwOGViOTA4MDE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGljLmNwcApAQCAt
MCwwICsxLDgxOSBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09
PT09PT09PT09PS8vCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSAicGF0
aHRvb2xzX3B1YmxpYy5oIgorCisjaWYgZGVmaW5lZCggX1dJTjMyKQorI2luY2x1ZGUgPHdpbmRv
d3MuaD4KKyNpbmNsdWRlIDxkaXJlY3QuaD4KKyNpbmNsdWRlIDxzaG9iamlkbC5oPgorI2luY2x1
ZGUgPGtub3duZm9sZGVycy5oPgorI2luY2x1ZGUgPHNobG9iai5oPgorI2luY2x1ZGUgPHNoYXJl
Lmg+CisKKyN1bmRlZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxlCisjZWxzZQorI2luY2x1ZGUgPGRs
ZmNuLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRl
IDxzdGRsaWIuaD4KKyNlbmRpZgorI2lmIGRlZmluZWQgT1NYCisjaW5jbHVkZSA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8QXBwS2l0L0FwcEtpdC5oPgorI2luY2x1ZGUgPG1h
Y2gtby9keWxkLmg+CisjZGVmaW5lIF9TX0lGRElSIFNfSUZESVIgICAgIC8vIHJlYWxseSBmcm9t
IHRpZXIwL3BsYXRmb3JtLmggd2hpY2ggd2UgZG9udCBoYXZlIHlldAorI2VuZGlmCisKKyNpbmNs
dWRlIDxzeXMvc3RhdC5oPgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisvKiogUmV0dXJucyB0
aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1lKSB0byB0aGUgY3VycmVudCBleGVjdXRhYmxlICov
CitzdGQ6OnN0cmluZyBQYXRoX0dldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyNpZiBkZWZpbmVkKCBf
V0lOMzIgKQorICAgICAgIHdjaGFyX3QgKnB3Y2hQYXRoID0gbmV3IHdjaGFyX3RbTUFYX1VOSUNP
REVfUEFUSF07CisgICAgICAgY2hhciAqcGNoUGF0aCA9IG5ldyBjaGFyW01BWF9VTklDT0RFX1BB
VEhfSU5fVVRGOF07CisgICAgICAgOjpHZXRNb2R1bGVGaWxlTmFtZVcoIE5VTEwsIHB3Y2hQYXRo
LCBNQVhfVU5JQ09ERV9QQVRIICk7CisgICAgICAgV2lkZUNoYXJUb011bHRpQnl0ZSggQ1BfVVRG
OCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lOX1VURjgsIE5V
TEwsIE5VTEwgKTsKKyAgICAgICBkZWxldGVbXSBwd2NoUGF0aDsKKworICAgICAgIHN0ZDo6c3Ry
aW5nIHNQYXRoID0gcGNoUGF0aDsKKyAgICAgICBkZWxldGVbXSBwY2hQYXRoOworICAgICAgIHJl
dHVybiBzUGF0aDsKKyNlbGlmIGRlZmluZWQoIE9TWCApCisgICAgICAgY2hhciByY2hQYXRoWzEw
MjRdOworICAgICAgIHVpbnQzMl90IG5CdWZmID0gc2l6ZW9mKCByY2hQYXRoICk7CisgICAgICAg
Ym9vbCBiU3VjY2VzcyA9IF9OU0dldEV4ZWN1dGFibGVQYXRoKHJjaFBhdGgsICZuQnVmZikgPT0g
MDsKKyAgICAgICByY2hQYXRoW25CdWZmLTFdID0gJ1wwJzsKKyAgICAgICBpZiggYlN1Y2Nlc3Mg
KQorICAgICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKKyAgICAgICBlbHNlCisgICAgICAgICAg
ICAgIHJldHVybiAiIjsKKyNlbGlmIGRlZmluZWQgTElOVVgKKyAgICAgICBjaGFyIHJjaFBhdGhb
MTAyNF07CisgICAgICAgc2l6ZV90IG5CdWZmID0gc2l6ZW9mKCByY2hQYXRoICk7CisgICAgICAg
c3NpemVfdCBuUmVhZCA9IHJlYWRsaW5rKCIvcHJvYy9zZWxmL2V4ZSIsIHJjaFBhdGgsIG5CdWZm
LTEgKTsKKyAgICAgICBpZiAoIG5SZWFkICE9IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAg
IHJjaFBhdGhbIG5SZWFkIF0gPSAwOworICAgICAgICAgICAgICByZXR1cm4gcmNoUGF0aDsKKyAg
ICAgICB9CisgICAgICAgZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuICIiOwor
ICAgICAgIH0KKyNlbHNlCisgICAgICAgQXNzZXJ0TXNnKCBmYWxzZSwgIkltcGxlbWVudCBQbGF0
X0dldEV4ZWN1dGFibGVQYXRoIiApOworICAgICAgIHJldHVybiAiIjsKKyNlbmRpZgorCit9CisK
Ky8qKiBSZXR1cm5zIHRoZSBwYXRoIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5ICov
CitzdGQ6OnN0cmluZyBQYXRoX0dldFdvcmtpbmdEaXJlY3RvcnkoKQoreworICAgICAgIHN0ZDo6
c3RyaW5nIHNQYXRoOworI2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgd2NoYXJfdCBidWZb
TUFYX1VOSUNPREVfUEFUSF07CisgICAgICAgc1BhdGggPSBVVEYxNnRvOCggX3dnZXRjd2QoIGJ1
ZiwgTUFYX1VOSUNPREVfUEFUSCApICk7CisjZWxzZQorICAgICAgIGNoYXIgYnVmWyAxMDI0IF07
CisgICAgICAgc1BhdGggPSBnZXRjd2QoIGJ1Ziwgc2l6ZW9mKCBidWYgKSApOworI2VuZGlmCisg
ICAgICAgcmV0dXJuIHNQYXRoOworfQorCisvKiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJucyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwu
ICovCitib29sIFBhdGhfU2V0V29ya2luZ0RpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UGF0aCApCit7CisgICAgICAgYm9vbCBiU3VjY2VzczsKKyNpZiBkZWZpbmVkKCBfV0lOMzIgKQor
ICAgICAgIHN0ZDo6d3N0cmluZyB3c1BhdGggPSBVVEY4dG8xNiggc1BhdGguY19zdHIoKSApOwor
ICAgICAgIGJTdWNjZXNzID0gMCA9PSBfd2NoZGlyKCB3c1BhdGguY19zdHIoKSApOworI2Vsc2UK
KyAgICAgICBiU3VjY2VzcyA9IDAgPT0gY2hkaXIoIHNQYXRoLmNfc3RyKCkgKTsKKyNlbmRpZgor
ICAgICAgIHJldHVybiBiU3VjY2VzczsKK30KKworLyoqIFJldHVybnMgdGhlIHNwZWNpZmllZCBw
YXRoIHdpdGhvdXQgaXRzIGZpbGVuYW1lICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRmlsZW5h
bWUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlm
KCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisK
KyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNs
YXNoICk7CisgICAgICAgaWYoIG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQorICAgICAgICAgICAg
ICByZXR1cm4gc1BhdGg7CisgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gc3RkOjpz
dHJpbmcoIHNQYXRoLmJlZ2luKCksIHNQYXRoLmJlZ2luKCkgKyBuICk7Cit9CisKKy8qKiByZXR1
cm5zIGp1c3QgdGhlIGZpbGVuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGZ1bGwgb3IgcmVsYXRpdmUg
cGF0aC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfU3RyaXBEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmKCBzbGFzaCA9PSAwICkKKyAg
ICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7CisKKyAgICAgICBzdGQ6OnN0cmlu
Zzo6c2l6ZV90eXBlIG4gPSBzUGF0aC5maW5kX2xhc3Rfb2YoIHNsYXNoICk7CisgICAgICAgaWYo
IG4gPT0gc3RkOjpzdHJpbmc6Om5wb3MgKQorICAgICAgICAgICAgICByZXR1cm4gc1BhdGg7Cisg
ICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIHNQYXRoLmJlZ2lu
KCkgKyBuICsgMSwgc1BhdGguZW5kKCkgKTsKK30KKworLyoqIHJldHVybnMganVzdCB0aGUgZmls
ZW5hbWUgd2l0aCBubyBleHRlbnNpb24gb2YgdGhlIHByb3ZpZGVkIGZpbGVuYW1lLiAKKyogSWYg
dGhlcmUgaXMgYSBwYXRoIHRoZSBwYXRoIGlzIGxlZnQgaW50YWN0LiAqLworc3RkOjpzdHJpbmcg
UGF0aF9TdHJpcEV4dGVuc2lvbiggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisgICAg
ICAgZm9yKCBzdGQ6OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpID0gc1BhdGgucmJl
Z2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBpKysgKQorICAgICAgIHsKKyAgICAgICAgICAgICAg
aWYoICppID09ICcuJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6OnN0cmluZyggc1BhdGguYmVnaW4oKSwgaS5iYXNlKCkgLSAxICk7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgc2xhc2ggdGhlcmUgaXMg
bm8gZXh0ZW5zaW9uCisgICAgICAgICAgICAgIGlmKCAqaSA9PSAnXFwnIHx8ICppID09ICcvJyAp
CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICB9CisKKyAgICAgICAvLyB3ZSBk
aWRuJ3QgZmluZCBhbiBleHRlbnNpb24KKyAgICAgICByZXR1cm4gc1BhdGg7Cit9CisKKy8qKiBy
ZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRoZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4g
Ki8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQ
YXRoICkKK3sKKyAgICAgICBmb3IgKCBzdGQ6OnN0cmluZzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRv
ciBpID0gc1BhdGgucmJlZ2luKCk7IGkgIT0gc1BhdGgucmVuZCgpOyBpKysgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgaWYgKCAqaSA9PSAnLicgKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmcoIGkuYmFzZSgpLCBzUGF0aC5lbmQoKSAp
OworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gaWYgd2UgZmluZCBhIHNsYXNo
IHRoZXJlIGlzIG5vIGV4dGVuc2lvbgorICAgICAgICAgICAgICBpZiAoICppID09ICdcXCcgfHwg
KmkgPT0gJy8nICkKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgIH0KKworICAg
ICAgIC8vIHdlIGRpZG4ndCBmaW5kIGFuIGV4dGVuc2lvbgorICAgICAgIHJldHVybiAiIjsKK30K
KworYm9vbCBQYXRoX0lzQWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1BhdGggKQorewor
ICAgICAgIGlmKCBzUGF0aC5lbXB0eSgpICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIGlmICggc1BhdGguc2l6ZSgpIDwgMyApIC8v
IG11c3QgYmUgYzpceCBvciBcXHggYXQgbGVhc3QKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgaWYgKCBzUGF0aFsxXSA9PSAnOicgKSAvLyBkcml2ZSBsZXR0ZXIgcGx1cyBz
bGFzaCwgYnV0IG11c3QgdGVzdCBib3RoIHNsYXNoIGNhc2VzCisgICAgICAgeworICAgICAgICAg
ICAgICBpZiAoIHNQYXRoWzJdID09ICdcXCcgfHwgc1BhdGhbMl0gPT0gJy8nICkKKyAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgIH0KKyAgICAgICBlbHNlIGlmICggc1Bh
dGhbMF0gPT0gJ1xcJyAmJiBzUGF0aFsxXSA9PSAnXFwnICkgLy8gVU5DIHBhdGgKKyAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgICAgIGlmKCBzUGF0aFswXSA9PSAnXFwnIHx8
IHNQYXRoWzBdID09ICcvJyApIC8vIGFueSBsZWFkaW5nIHNsYXNoCisgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCisKKyAgICAgICByZXR1cm4gZmFsc2U7Cit9CisKKworLyoqIE1h
a2VzIGFuIGFic29sdXRlIHBhdGggZnJvbSBhIHJlbGF0aXZlIHBhdGggYW5kIGEgYmFzZSBwYXRo
ICovCitzdGQ6OnN0cmluZyBQYXRoX01ha2VBYnNvbHV0ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNCYXNlUGF0aCwgY2hhciBzbGFzaCAp
Cit7CisgICAgICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhf
R2V0U2xhc2goKTsKKworICAgICAgIGlmKCBQYXRoX0lzQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGgg
KSApCisgICAgICAgICAgICAgIHJldHVybiBzUmVsYXRpdmVQYXRoOworICAgICAgIGVsc2UKKyAg
ICAgICB7CisgICAgICAgICAgICAgIGlmKCAhUGF0aF9Jc0Fic29sdXRlKCBzQmFzZVBhdGggKSAp
CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAgICAgICAgc3RkOjpz
dHJpbmcgc0NvbXBhY3RlZCA9IFBhdGhfQ29tcGFjdCggUGF0aF9Kb2luKCBzQmFzZVBhdGgsIHNS
ZWxhdGl2ZVBhdGgsIHNsYXNoICksIHNsYXNoICk7CisgICAgICAgICAgICAgIGlmKCBQYXRoX0lz
QWJzb2x1dGUoIHNDb21wYWN0ZWQgKSApCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc0Nv
bXBhY3RlZDsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICIiOworICAgICAgIH0KK30KKworCisvKiogRml4ZXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3Jz
IGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAqLworc3RkOjpzdHJpbmcgUGF0aF9GaXhTbGFzaGVz
KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNsYXNoICkKK3sKKyAgICAgICBpZigg
c2xhc2ggPT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisg
ICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkID0gc1BhdGg7CisgICAgICAgZm9yKCBzdGQ6OnN0cmlu
Zzo6aXRlcmF0b3IgaSA9IHNGaXhlZC5iZWdpbigpOyBpICE9IHNGaXhlZC5lbmQoKTsgaSsrICkK
KyAgICAgICB7CisgICAgICAgICAgICAgIGlmKCAqaSA9PSAnLycgfHwgKmkgPT0gJ1xcJyApCisg
ICAgICAgICAgICAgICAgICAgICAqaSA9IHNsYXNoOworICAgICAgIH0KKworICAgICAgIHJldHVy
biBzRml4ZWQ7Cit9CisKKworY2hhciBQYXRoX0dldFNsYXNoKCkKK3sKKyNpZiBkZWZpbmVkKF9X
SU4zMikKKyAgICAgICByZXR1cm4gJ1xcJzsKKyNlbHNlCisgICAgICAgcmV0dXJuICcvJzsKKyNl
bmRpZgorfQorCisvKiogSmFtcyB0d28gcGF0aHMgdG9nZXRoZXIgd2l0aCB0aGUgcmlnaHQga2lu
ZCBvZiBzbGFzaCAqLworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAm
IGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY2hhciBzbGFzaCApCit7CisgICAg
ICAgaWYoIHNsYXNoID09IDAgKQorICAgICAgICAgICAgICBzbGFzaCA9IFBhdGhfR2V0U2xhc2go
KTsKKworICAgICAgIC8vIG9ubHkgaW5zZXJ0IGEgc2xhc2ggaWYgd2UgZG9uJ3QgYWxyZWFkeSBo
YXZlIG9uZQorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgbkxlbiA9IGZpcnN0Lmxlbmd0
aCgpOworICAgICAgIGlmKCAhbkxlbiApCisgICAgICAgICAgICAgIHJldHVybiBzZWNvbmQ7Cisj
aWYgZGVmaW5lZChfV0lOMzIpCisgICAgICAgaWYoIGZpcnN0LmJhY2soKSA9PSAnXFwnIHx8IGZp
cnN0LmJhY2soKSA9PSAnLycgKQorICAgICAgICAgICBuTGVuLS07CisjZWxzZQorICAgICAgIGNo
YXIgbGFzdF9jaGFyID0gZmlyc3RbZmlyc3QubGVuZ3RoKCktMV07CisgICAgICAgaWYgKGxhc3Rf
Y2hhciA9PSAnXFwnIHx8IGxhc3RfY2hhciA9PSAnLycpCisgICAgICAgICAgIG5MZW4tLTsKKyNl
bmRpZgorCisgICAgICAgcmV0dXJuIGZpcnN0LnN1YnN0ciggMCwgbkxlbiApICsgc3RkOjpzdHJp
bmcoIDEsIHNsYXNoICkgKyBzZWNvbmQ7Cit9CisKKworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBj
b25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29u
c3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hhciBzbGFzaCApCit7CisgICAgICAgcmV0dXJuIFBh
dGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25kLCBzbGFzaCApLCB0aGlyZCwgc2xhc2gg
KTsKK30KKworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0
LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwg
Y29uc3Qgc3RkOjpzdHJpbmcgJmZvdXJ0aCwgY2hhciBzbGFzaCApCit7CisgICAgICAgcmV0dXJu
IFBhdGhfSm9pbiggUGF0aF9Kb2luKCBQYXRoX0pvaW4oIGZpcnN0LCBzZWNvbmQsIHNsYXNoICks
IHRoaXJkLCBzbGFzaCApLCBmb3VydGgsIHNsYXNoICk7Cit9CisKK3N0ZDo6c3RyaW5nIFBhdGhf
Sm9pbiggCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaXJzdCwgCisgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcgJiBzZWNvbmQsIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgdGhpcmQs
IAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZm91cnRoLCAKKyAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyAmIGZpZnRoLCAKKyAgICAgICBjaGFyIHNsYXNoICkKK3sKKyAgICAgICByZXR1cm4g
UGF0aF9Kb2luKCBQYXRoX0pvaW4oIFBhdGhfSm9pbiggUGF0aF9Kb2luKCBmaXJzdCwgc2Vjb25k
LCBzbGFzaCApLCB0aGlyZCwgc2xhc2ggKSwgZm91cnRoLCBzbGFzaCApLCBmaWZ0aCwgc2xhc2gg
KTsKK30KKworCitzdGQ6OnN0cmluZyBQYXRoX1JlbW92ZVRyYWlsaW5nU2xhc2goIGNvbnN0IHN0
ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAgIGlmICggc2xhc2gg
PT0gMCApCisgICAgICAgICAgICAgIHNsYXNoID0gUGF0aF9HZXRTbGFzaCgpOworCisgICAgICAg
c3RkOjpzdHJpbmcgc1BhdGggPSBzUmF3UGF0aDsKKyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90
eXBlIG5DdXJyZW50ID0gc1Jhd1BhdGgubGVuZ3RoKCk7CisgICAgICAgaWYgKCBuQ3VycmVudCA9
PSAwICkKKyAgICAgICAgICAgICAgcmV0dXJuIHNQYXRoOworCisgICAgICAgaW50IG5MYXN0Rm91
bmQgPSAtMTsKKyAgICAgICBuQ3VycmVudC0tOworICAgICAgIHdoaWxlKCBuQ3VycmVudCAhPSAw
ICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggc1Jhd1BhdGhbIG5DdXJyZW50IF0gPT0g
c2xhc2ggKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBuTGFzdEZvdW5k
ID0gKGludCluQ3VycmVudDsKKyAgICAgICAgICAgICAgICAgICAgIG5DdXJyZW50LS07CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAg
ICAgICAgCisgICAgICAgaWYgKCBuTGFzdEZvdW5kID49IDAgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc1BhdGguZXJhc2UoIG5MYXN0Rm91bmQsIHN0ZDo6c3RyaW5nOjpucG9zICk7CisgICAg
ICAgfQorICAgICAgIAorICAgICAgIHJldHVybiBzUGF0aDsKK30KKworCisvKiogUmVtb3ZlcyBy
ZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMgaW4gdGhlIHBhdGguIFJldHVybnMgYW4gZW1wdHkg
cGF0aCBpZiB0aGUgCisqIHNwZWNpZmllZCBwYXRoIGhhcyBhIGJyb2tlbiBudW1iZXIgb2YgZGly
ZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2YgLi5zICovCitzdGQ6OnN0cmluZyBQYXRoX0NvbXBh
Y3QoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1Jhd1BhdGgsIGNoYXIgc2xhc2ggKQoreworICAgICAg
IGlmKCBzbGFzaCA9PSAwICkKKyAgICAgICAgICAgICAgc2xhc2ggPSBQYXRoX0dldFNsYXNoKCk7
CisKKyAgICAgICBzdGQ6OnN0cmluZyBzUGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc1Jhd1BhdGgs
IHNsYXNoICk7CisgICAgICAgc3RkOjpzdHJpbmcgc1NsYXNoU3RyaW5nKCAxLCBzbGFzaCApOwor
CisgICAgICAgLy8gc3RyaXAgb3V0IGFsbCAvLi8KKyAgICAgICBmb3IoIHN0ZDo6c3RyaW5nOjpz
aXplX3R5cGUgaSA9IDA7IChpICsgMykgPCBzUGF0aC5sZW5ndGgoKTsgICkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIGlmKCBzUGF0aFsgaSBdID09IHNsYXNoICYmIHNQYXRoWyBpKzEgXSA9PSAn
LicgJiYgc1BhdGhbIGkrMiBdID09IHNsYXNoICkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgc1BhdGgucmVwbGFjZSggaSwgMywgc1NsYXNoU3RyaW5nICk7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKworICAgICAgIC8v
IGdldCByaWQgb2YgdHJhaWxpbmcgLy4gYnV0IGxlYXZlIHRoZSBwYXRoIHNlcGFyYXRvcgorICAg
ICAgIGlmKCBzUGF0aC5sZW5ndGgoKSA+IDIgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3Rk
OjpzdHJpbmc6OnNpemVfdHlwZSBsZW4gPSBzUGF0aC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAg
aWYoIHNQYXRoWyBsZW4tMSBdID09ICcuJyAgJiYgc1BhdGhbIGxlbi0yIF0gPT0gc2xhc2ggKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gc1BhdGgucG9wX2JhY2soKTsKKyAg
ICAgICAgICAgICAgICBzUGF0aFtsZW4tMV0gPSAwOyAgLy8gZm9yIG5vdywgYXQgbGVhc3QKKyAg
ICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIC8vIGdldCByaWQgb2YgbGVhZGluZyAu
LyAKKyAgICAgICBpZiggc1BhdGgubGVuZ3RoKCkgPiAyICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIGlmKCBzUGF0aFsgMCBdID09ICcuJyAgJiYgc1BhdGhbIDEgXSA9PSBzbGFzaCApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHNQYXRoLnJlcGxhY2UoIDAsIDIsICIi
ICk7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICAvLyBlYWNoIHRpbWUgd2Ug
ZW5jb3VudGVyIC4uIGJhY2sgdXAgdW50aWwgd2UndmUgZm91bmQgdGhlIHByZXZpb3VzIGRpcmVj
dG9yeSBuYW1lCisgICAgICAgLy8gdGhlbiBnZXQgcmlkIG9mIGJvdGgKKyAgICAgICBzdGQ6OnN0
cmluZzo6c2l6ZV90eXBlIGkgPSAwOworICAgICAgIHdoaWxlKCBpIDwgc1BhdGgubGVuZ3RoKCkg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYoIGkgPiAwICYmIHNQYXRoLmxlbmd0aCgpIC0g
aSA+PSAyIAorICAgICAgICAgICAgICAgICAgICAgJiYgc1BhdGhbaV0gPT0gJy4nCisgICAgICAg
ICAgICAgICAgICAgICAmJiBzUGF0aFtpKzFdID09ICcuJworICAgICAgICAgICAgICAgICAgICAg
JiYgKCBpICsgMiA9PSBzUGF0aC5sZW5ndGgoKSB8fCBzUGF0aFsgaSsyIF0gPT0gc2xhc2ggKQor
ICAgICAgICAgICAgICAgICAgICAgJiYgc1BhdGhbIGktMSBdID09IHNsYXNoICkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UndmUgaGl0IHRoZSBz
dGFydCBvZiB0aGUgc3RyaW5nIGFuZCBoYXZlIGEgYm9ndXMgcGF0aAorICAgICAgICAgICAgICAg
ICAgICAgaWYoIGkgPT0gMSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIi
OworICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRo
ZSBzZXBhcmF0b3IgYmVmb3JlIGktMQorICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6
OnNpemVfdHlwZSBpRGlyU3RhcnQgPSBpLTI7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSgg
aURpclN0YXJ0ID4gMCAmJiBzUGF0aFsgaURpclN0YXJ0IC0gMSBdICE9IHNsYXNoICkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLWlEaXJTdGFydDsKKworICAgICAgICAgICAgICAgICAg
ICAgLy8gcmVtb3ZlIGV2ZXJ5dGhpbmcgZnJvbSBpRGlyU3RhcnQgdG8gaSsyCisgICAgICAgICAg
ICAgICAgICAgICBzUGF0aC5yZXBsYWNlKCBpRGlyU3RhcnQsIChpIC0gaURpclN0YXJ0KSArIDMs
ICIiICk7CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IG92ZXIKKyAgICAgICAgICAg
ICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICB9
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNQYXRoOworfQorCisKKy8qKiBSZXR1cm5zIHRo
ZSBwYXRoIHRvIHRoZSBjdXJyZW50IERMTCBvciBleGUgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0
VGhpc01vZHVsZVBhdGgoKQoreworICAgICAgIC8vIGdldHMgdGhlIHBhdGggb2YgdnJjbGllbnQu
ZGxsIGl0c2VsZgorI2lmZGVmIFdJTjMyCisgICAgICAgSE1PRFVMRSBobW9kdWxlID0gTlVMTDsK
KworICAgICAgIDo6R2V0TW9kdWxlSGFuZGxlRXgoIEdFVF9NT0RVTEVfSEFORExFX0VYX0ZMQUdf
RlJPTV9BRERSRVNTIHwgR0VUX01PRFVMRV9IQU5ETEVfRVhfRkxBR19VTkNIQU5HRURfUkVGQ09V
TlQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBDVFNUUj4oUGF0aF9HZXRUaGlzTW9kdWxlUGF0aCksICZo
bW9kdWxlICk7CisKKyAgICAgICB3Y2hhcl90ICpwd2NoUGF0aCA9IG5ldyB3Y2hhcl90W01BWF9V
TklDT0RFX1BBVEhdOworICAgICAgIGNoYXIgKnBjaFBhdGggPSBuZXcgY2hhclsgTUFYX1VOSUNP
REVfUEFUSF9JTl9VVEY4IF07CisgICAgICAgOjpHZXRNb2R1bGVGaWxlTmFtZVcoIGhtb2R1bGUs
IHB3Y2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIICk7CisgICAgICAgV2lkZUNoYXJUb011bHRpQnl0
ZSggQ1BfVVRGOCwgMCwgcHdjaFBhdGgsIC0xLCBwY2hQYXRoLCBNQVhfVU5JQ09ERV9QQVRIX0lO
X1VURjgsIE5VTEwsIE5VTEwgKTsKKyAgICAgICBkZWxldGVbXSBwd2NoUGF0aDsKKworICAgICAg
IHN0ZDo6c3RyaW5nIHNQYXRoID0gcGNoUGF0aDsKKyAgICAgICBkZWxldGUgW10gcGNoUGF0aDsK
KyAgICAgICByZXR1cm4gc1BhdGg7CisKKyNlbGlmIGRlZmluZWQoIE9TWCApIHx8IGRlZmluZWQo
IExJTlVYICkKKyAgICAgICAvLyBnZXQgdGhlIGFkZHIgb2YgYSBmdW5jdGlvbiBpbiB2cmNsaWVu
dC5zbyBhbmQgdGhlbiBhc2sgdGhlIGRsb3BlbiBzeXN0ZW0gYWJvdXQgaXQKKyAgICAgICBEbF9p
bmZvIGluZm87CisgICAgICAgZGxhZGRyKCAodm9pZCAqKVBhdGhfR2V0VGhpc01vZHVsZVBhdGgs
ICZpbmZvICk7CisgICAgICAgcmV0dXJuIGluZm8uZGxpX2ZuYW1lOworI2VuZGlmCisKK30KKwor
CisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgcGF0aCBleGlzdHMgYW5kIGlzIGEg
ZGlyZWN0b3J5ICovCitib29sIFBhdGhfSXNEaXJlY3RvcnkoIGNvbnN0IHN0ZDo6c3RyaW5nICYg
c1BhdGggKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNGaXhlZFBhdGggPSBQYXRoX0ZpeFNsYXNo
ZXMoIHNQYXRoICk7CisgICAgICAgaWYoIHNGaXhlZFBhdGguZW1wdHkoKSApCisgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICBjaGFyIGNMYXN0ID0gc0ZpeGVkUGF0aFsgc0ZpeGVk
UGF0aC5sZW5ndGgoKSAtIDEgXTsKKyAgICAgICBpZiggY0xhc3QgPT0gJy8nIHx8IGNMYXN0ID09
ICdcXCcgKQorICAgICAgICAgICAgICBzRml4ZWRQYXRoLmVyYXNlKCBzRml4ZWRQYXRoLmVuZCgp
IC0gMSwgc0ZpeGVkUGF0aC5lbmQoKSApOworCisgICAgICAgLy8gc2VlIGlmIHRoZSBzcGVjaWZp
ZWQgcGF0aCBhY3R1YWxseSBleGlzdHMuCisKKyNpZiBkZWZpbmVkKFBPU0lYKQorICAgICAgIHN0
cnVjdCAgICAgICBzdGF0ICAgICAgIGJ1ZjsKKyAgICAgICBpZiAoIHN0YXQoIHNGaXhlZFBhdGgu
Y19zdHIoKSwgJmJ1ZiApID09IC0xICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICB9CisKKyNpZiBkZWZpbmVkKCBMSU5VWCApIHx8IGRlZmluZWQoIE9TWCAp
CisgICAgICAgcmV0dXJuIFNfSVNESVIoIGJ1Zi5zdF9tb2RlICk7CisjZWxzZQorICAgICAgIHJl
dHVybiAoYnVmLnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsKKyNlbmRpZgorCisjZWxzZQorICAg
ICAgIHN0cnVjdCAgICAgICBfc3RhdCAgICAgICBidWY7CisgICAgICAgc3RkOjp3c3RyaW5nIHdz
Rml4ZWRQYXRoID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19zdHIoKSApOworICAgICAgIGlmICgg
X3dzdGF0KCB3c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHJldHVybiAoYnVm
LnN0X21vZGUgJiBfU19JRkRJUikgIT0gMDsKKyNlbmRpZgorfQorCisvKiogcmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVjaWZpZWQgcGF0aCByZXByZXNlbnRzIGFuIGFwcCBidW5kbGUgKi8KK2Jvb2wg
UGF0aF9Jc0FwcEJ1bmRsZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCApCit7CisjaWYgZGVm
aW5lZChPU1gpCisgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFsgTlNCdW5kbGUgYnVuZGxlV2l0
aFBhdGg6IFsgTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6c1BhdGguY19zdHIoKSBdIF07
CisgICAgICAgYm9vbCBiaXNBcHBCdW5kbGUgPSAoIG51bGxwdHIgIT0gYnVuZGxlICk7CisgICAg
ICAgWyBidW5kbGUgcmVsZWFzZSBdOworICAgICAgIHJldHVybiBiaXNBcHBCdW5kbGU7CisjZWxz
ZQorICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLyBQdXJwb3NlOiByZXR1cm5zIHRydWUgaWYgdGhlIHRoZSBwYXRoIGV4aXN0cworLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBQYXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcg
JiBzUGF0aCApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc0ZpeGVkUGF0aCA9IFBhdGhfRml4U2xh
c2hlcyggc1BhdGggKTsKKyAgICAgICBpZiggc0ZpeGVkUGF0aC5lbXB0eSgpICkKKyAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgZGVmaW5lZCggV0lOMzIgKQorICAgICAgIHN0cnVj
dCAgICAgICBfc3RhdCAgICAgICBidWY7CisgICAgICAgc3RkOjp3c3RyaW5nIHdzRml4ZWRQYXRo
ID0gVVRGOHRvMTYoIHNGaXhlZFBhdGguY19zdHIoKSApOworICAgICAgIGlmICggX3dzdGF0KCB3
c0ZpeGVkUGF0aC5jX3N0cigpLCAmYnVmICkgPT0gLTEgKQorICAgICAgIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyNlbHNlCisgICAgICAgc3RydWN0IHN0YXQgYnVm
OworICAgICAgIGlmICggc3RhdCAoIHNGaXhlZFBhdGguY19zdHIoKSwgJmJ1ZiApID09IC0xKQor
ICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyNlbmRpZgor
CisgICAgICAgcmV0dXJuIHRydWU7Cit9CisKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8g
UHVycG9zZTogaGVscGVyIHRvIGZpbmQgYSBkaXJlY3RvcnkgdXBzdHJlYW0gZnJvbSBhIGdpdmVu
IHBhdGgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFBhdGhfRmluZFBhcmVu
dERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3RhcnREaXJlY3Rv
cnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICkKK3sKKyAgICAgICBzdGQ6
OnN0cmluZyBzdHJGb3VuZFBhdGggPSAiIjsKKyAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50
UGF0aCA9IFBhdGhfRml4U2xhc2hlcyggc3RyU3RhcnREaXJlY3RvcnkgKTsKKyAgICAgICBpZiAo
IHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7
CisKKyAgICAgICBib29sIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsK
KyAgICAgICBzdGQ6OnN0cmluZyBzdHJDdXJyZW50RGlyZWN0b3J5TmFtZSA9IFBhdGhfU3RyaXBE
aXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgaWYgKCBiRXhpc3RzICYmIHN0cmlj
bXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCksIHN0ckRpcmVjdG9yeU5hbWUuY19z
dHIoKSApID09IDAgKQorICAgICAgICAgICAgICByZXR1cm4gc3RyQ3VycmVudFBhdGg7CisKKyAg
ICAgICB3aGlsZSggYkV4aXN0cyAmJiBzdHJDdXJyZW50UGF0aC5sZW5ndGgoKSAhPSAwICkKKyAg
ICAgICB7CisgICAgICAgICAgICAgIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9TdHJpcEZpbGVuYW1l
KCBzdHJDdXJyZW50UGF0aCApOworICAgICAgICAgICAgICBzdHJDdXJyZW50RGlyZWN0b3J5TmFt
ZSA9IFBhdGhfU3RyaXBEaXJlY3RvcnkoIHN0ckN1cnJlbnRQYXRoICk7CisgICAgICAgICAgICAg
IGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGggKTsKKyAgICAgICAgICAgICAg
aWYgKCBiRXhpc3RzICYmIHN0cmljbXAoIHN0ckN1cnJlbnREaXJlY3RvcnlOYW1lLmNfc3RyKCks
IHN0ckRpcmVjdG9yeU5hbWUuY19zdHIoKSApID09IDAgKQorICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ckN1cnJlbnRQYXRoOworICAgICAgIH0KKworICAgICAgIHJldHVybiAiIjsKK30K
KworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBoZWxwZXIgdG8gZmluZCBh
IHN1YmRpcmVjdG9yeSB1cHN0cmVhbSBmcm9tIGEgZ2l2ZW4gcGF0aAorLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9GaW5kUGFyZW50U3ViRGlyZWN0b3J5UmVjdXJzaXZl
bHkoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJTdGFydERpcmVjdG9yeSwgY29uc3Qgc3RkOjpzdHJp
bmcgJnN0ckRpcmVjdG9yeU5hbWUgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckZvdW5kUGF0
aCA9ICIiOworICAgICAgIHN0ZDo6c3RyaW5nIHN0ckN1cnJlbnRQYXRoID0gUGF0aF9GaXhTbGFz
aGVzKCBzdHJTdGFydERpcmVjdG9yeSApOworICAgICAgIGlmICggc3RyQ3VycmVudFBhdGgubGVu
Z3RoKCkgPT0gMCApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKworICAgICAgIGJvb2wgYkV4
aXN0cyA9IFBhdGhfRXhpc3RzKCBzdHJDdXJyZW50UGF0aCApOworICAgICAgIHdoaWxlKCBiRXhp
c3RzICYmIHN0ckN1cnJlbnRQYXRoLmxlbmd0aCgpICE9IDAgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgc3RyQ3VycmVudFBhdGggPSBQYXRoX1N0cmlwRmlsZW5hbWUoIHN0ckN1cnJlbnRQYXRo
ICk7CisgICAgICAgICAgICAgIGJFeGlzdHMgPSBQYXRoX0V4aXN0cyggc3RyQ3VycmVudFBhdGgg
KTsKKworICAgICAgICAgICAgICBpZiggUGF0aF9FeGlzdHMoIFBhdGhfSm9pbiggc3RyQ3VycmVu
dFBhdGgsIHN0ckRpcmVjdG9yeU5hbWUgKSApICkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgc3RyRm91bmRQYXRoID0gUGF0aF9Kb2luKCBzdHJDdXJyZW50UGF0aCwgc3Ry
RGlyZWN0b3J5TmFtZSApOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJuIHN0ckZvdW5kUGF0aDsKK30KKworCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVz
IGluIHRoZSB2b3J0ZXggZGlyZWN0b3J5CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit1bnNpZ25l
ZCBjaGFyICogUGF0aF9SZWFkQmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVu
YW1lLCBpbnQgKnBTaXplICkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lY
ICkKKyAgICAgICBmID0gZm9wZW4oIHN0ckZpbGVuYW1lLmNfc3RyKCksICJyYiIgKTsKKyNlbHNl
CisgICAgICAgc3RkOjp3c3RyaW5nIHdzdHJGaWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFt
ZS5jX3N0cigpICk7CisgICAgICAgLy8gdGhlIG9wZW4gb3BlcmF0aW9uIG5lZWRzIHRvIGJlIHNo
YXJhYmxlLCB0aGVyZWZvcmUgdXNlIG9mIF93ZnNvcGVuIGluc3RlYWQgb2YgX3dmb3Blbl9zCisg
ICAgICAgZiA9IF93ZnNvcGVuKCB3c3RyRmlsZW5hbWUuY19zdHIoKSwgTCJyYiIsIF9TSF9ERU5Z
Tk8gKTsKKyNlbmRpZgorICAgICAgIAorICAgICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZiA9IE5VTEw7
CisKKyAgICAgICBpZiAoIGYgIT0gTlVMTCApCisgICAgICAgeworICAgICAgICAgICAgICBmc2Vl
ayhmLCAwLCBTRUVLX0VORCk7CisgICAgICAgICAgICAgIGludCBzaXplID0gZnRlbGwoZik7Cisg
ICAgICAgICAgICAgIGZzZWVrKGYsIDAsIFNFRUtfU0VUKTsKKworICAgICAgICAgICAgICBidWYg
PSBuZXcgdW5zaWduZWQgY2hhcltzaXplXTsKKyAgICAgICAgICAgICAgaWYgKGJ1ZiAmJiBmcmVh
ZChidWYsIHNpemUsIDEsIGYpID09IDEpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgIGlmIChwU2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcFNpemUgPSBz
aXplOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgZGVsZXRlW10gYnVmOworICAgICAgICAgICAgICAgICAg
ICAgYnVmID0gMDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGZjbG9zZShmKTsK
KyAgICAgICB9CisKKyAgICAgICByZXR1cm4gYnVmOworfQorCit1aW50MzJfdCAgUGF0aF9SZWFk
QmluYXJ5RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFy
ICpwQnVmZmVyLCB1aW50MzJfdCB1blNpemUgKQoreworICAgICAgIEZJTEUgKmY7CisjaWYgZGVm
aW5lZCggUE9TSVggKQorICAgICAgIGYgPSBmb3Blbiggc3RyRmlsZW5hbWUuY19zdHIoKSwgInJi
IiApOworI2Vsc2UKKyAgICAgICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYo
IHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsKKyAgICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcygg
JmYsIHdzdHJGaWxlbmFtZS5jX3N0cigpLCBMInJiIiApOworICAgICAgIGlmICggZXJyICE9IDAg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgZiA9IE5VTEw7CisgICAgICAgfQorI2VuZGlmCisK
KyAgICAgICB1aW50MzJfdCB1blNpemVUb1JldHVybiA9IDA7CisKKyAgICAgICBpZiAoIGYgIT0g
TlVMTCApCisgICAgICAgeworICAgICAgICAgICAgICBmc2VlayggZiwgMCwgU0VFS19FTkQgKTsK
KyAgICAgICAgICAgICAgdWludDMyX3Qgc2l6ZSA9ICh1aW50MzJfdClmdGVsbCggZiApOworICAg
ICAgICAgICAgICBmc2VlayggZiwgMCwgU0VFS19TRVQgKTsKKworICAgICAgICAgICAgICBpZiAo
IHNpemUgPiB1blNpemUgfHwgIXBCdWZmZXIgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICB1blNpemVUb1JldHVybiA9ICh1aW50MzJfdClzaXplOworICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgaWYgKCBmcmVhZCggcEJ1ZmZlciwgc2l6ZSwgMSwgZiApID09IDEgKQorICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuU2l6ZVRvUmV0dXJu
ID0gKHVpbnQzMl90KXNpemU7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICBmY2xvc2UoIGYgKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1
cm4gdW5TaXplVG9SZXR1cm47Cit9CisKK2Jvb2wgUGF0aF9Xcml0ZUJpbmFyeUZpbGUoY29uc3Qg
c3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwRGF0YSwgdW5zaWduZWQg
blNpemUpCit7CisgICAgICAgRklMRSAqZjsKKyNpZiBkZWZpbmVkKCBQT1NJWCApCisgICAgICAg
ZiA9IGZvcGVuKHN0ckZpbGVuYW1lLmNfc3RyKCksICJ3YiIpOworI2Vsc2UKKyAgICAgICBzdGQ6
OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3RyKCkgKTsK
KyAgICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5jX3N0cigp
LCBMIndiIiApOworICAgICAgIGlmIChlcnIgIT0gMCkKKyAgICAgICB7CisgICAgICAgICAgICAg
IGYgPSBOVUxMOworICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgc2l6ZV90IHdyaXR0ZW4gPSAw
OworICAgICAgIGlmIChmICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgd3JpdHRlbiA9IGZ3cml0
ZShwRGF0YSwgc2l6ZW9mKHVuc2lnbmVkIGNoYXIpLCBuU2l6ZSwgZik7CisgICAgICAgICAgICAg
IGZjbG9zZShmKTsKKyAgICAgICB9CisKKyAgICAgICByZXR1cm4gd3JpdHRlbiA9IG5TaXplID8g
dHJ1ZSA6IGZhbHNlOworfQorCitzdGQ6OnN0cmluZyBQYXRoX1JlYWRUZXh0RmlsZSggY29uc3Qg
c3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lICkKK3sKKyAgICAgICAvLyBkb2luZyBpdCB0aGlzIHdh
eSBzZWVtcyBiYWNrd2FyZHMsIGJ1dCBJIGRvbid0CisgICAgICAgLy8gc2VlIGFuIGVhc3kgd2F5
IHRvIGRvIHRoaXMgd2l0aCBDL0MrKyBzdHlsZSBJTworICAgICAgIC8vIHRoYXQgaXNuJ3Qgd29y
c2UuLi4KKyAgICAgICBpbnQgc2l6ZTsKKyAgICAgICB1bnNpZ25lZCBjaGFyKiBidWYgPSBQYXRo
X1JlYWRCaW5hcnlGaWxlKCBzdHJGaWxlbmFtZSwgJnNpemUgKTsKKyAgICAgICBpZiAoIWJ1ZikK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworCisgICAgICAgLy8gY29udmVydCBDUkxGIC0+IExG
CisgICAgICAgc2l6ZV90IG91dHNpemUgPSAxOworICAgICAgIGZvciAoaW50IGk9MTsgaSA8IHNp
emU7IGkrKykKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmIChidWZbaV0gPT0gJ1xuJyAmJiBi
dWZbaS0xXSA9PSAnXHInKSAvLyBDUkxGCisgICAgICAgICAgICAgICAgICAgICBidWZbb3V0c2l6
ZS0xXSA9ICdcbic7IC8vIC0+TEYKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgYnVmW291dHNpemUrK10gPSBidWZbaV07IC8vIGp1c3QgY29weQorICAgICAgIH0KKwor
ICAgICAgIHN0ZDo6c3RyaW5nIHJldCgoY2hhciAqKWJ1Ziwgb3V0c2l6ZSk7CisgICAgICAgZGVs
ZXRlW10gYnVmOworICAgICAgIHJldHVybiByZXQ7Cit9CisKKworYm9vbCBQYXRoX1dyaXRlU3Ry
aW5nVG9UZXh0RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFy
ICpwY2hEYXRhICkKK3sKKyAgICAgICBGSUxFICpmOworI2lmIGRlZmluZWQoIFBPU0lYICkKKyAg
ICAgICBmID0gZm9wZW4oIHN0ckZpbGVuYW1lLmNfc3RyKCksICJ3IiApOworI2Vsc2UKKyAgICAg
ICBzdGQ6OndzdHJpbmcgd3N0ckZpbGVuYW1lID0gVVRGOHRvMTYoIHN0ckZpbGVuYW1lLmNfc3Ry
KCkgKTsKKyAgICAgICBlcnJub190IGVyciA9IF93Zm9wZW5fcyggJmYsIHdzdHJGaWxlbmFtZS5j
X3N0cigpLCBMInciICk7CisgICAgICAgaWYgKCBlcnIgIT0gMCApCisgICAgICAgeworICAgICAg
ICAgICAgICBmID0gTlVMTDsKKyAgICAgICB9CisjZW5kaWYKKyAgICAgICAKKyAgICAgICBib29s
IG9rID0gZmFsc2U7CisKKyAgICAgICBpZiAoIGYgIT0gTlVMTCApCisgICAgICAgeworICAgICAg
ICAgICAgICBvayA9IGZwdXRzKCBwY2hEYXRhLCBmKSA+PSAwOworICAgICAgICAgICAgICBmY2xv
c2UoZik7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIG9rOworfQorCitib29sIFBhdGhfV3Jp
dGVTdHJpbmdUb1RleHRGaWxlQXRvbWljKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUs
IGNvbnN0IGNoYXIgKnBjaERhdGEgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHN0clRtcEZpbGVu
YW1lID0gc3RyRmlsZW5hbWUgKyAiLnRtcCI7CisKKyAgICAgICBpZiAoICFQYXRoX1dyaXRlU3Ry
aW5nVG9UZXh0RmlsZSggc3RyVG1wRmlsZW5hbWUsIHBjaERhdGEgKSApCisgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgIC8vIFBsYXRmb3JtIHNwZWNpZmljIGF0b21pYyBmaWxl
IHJlcGxhY2VtZW50CisjaWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzdGQ6OndzdHJpbmcg
d3NGaWxlbmFtZSA9IFVURjh0bzE2KCBzdHJGaWxlbmFtZS5jX3N0cigpICk7CisgICAgICAgc3Rk
Ojp3c3RyaW5nIHdzVG1wRmlsZW5hbWUgPSBVVEY4dG8xNiggc3RyVG1wRmlsZW5hbWUuY19zdHIo
KSApOworICAgICAgIGlmICggITo6UmVwbGFjZUZpbGVXKCB3c0ZpbGVuYW1lLmNfc3RyKCksIHdz
VG1wRmlsZW5hbWUuY19zdHIoKSwgbnVsbHB0ciwgMCwgMCwgMCApICkKKyAgICAgICB7CisgICAg
ICAgICAgICAgIC8vIGlmIHdlIGNvdWxkbid0IFJlcGxhY2VGaWxlLCB0cnkgYSBub24tYXRvbWlj
IHdyaXRlIGFzIGEgZmFsbGJhY2sKKyAgICAgICAgICAgICAgaWYgKCAhUGF0aF9Xcml0ZVN0cmlu
Z1RvVGV4dEZpbGUoIHN0ckZpbGVuYW1lLCBwY2hEYXRhICkgKQorICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyNlbGlmIGRlZmluZWQoIFBPU0lYICkKKyAgICAg
ICBpZiAoIHJlbmFtZSggc3RyVG1wRmlsZW5hbWUuY19zdHIoKSwgc3RyRmlsZW5hbWUuY19zdHIo
KSApID09IC0xICkKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyNlcnJvciBE
byBub3Qga25vdyBob3cgdG8gd3JpdGUgYXRvbWljIGZpbGUKKyNlbmRpZgorCisgICAgICAgcmV0
dXJuIHRydWU7Cit9CisKKworI2lmIGRlZmluZWQoV0lOMzIpCisjZGVmaW5lIEZJTEVfVVJMX1BS
RUZJWCAiZmlsZTovLy8iCisjZWxzZQorI2RlZmluZSBGSUxFX1VSTF9QUkVGSVggImZpbGU6Ly8i
CisjZW5kaWYKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogVHVybnMgYSBwYXRoIHRvIGEg
ZmlsZSBvbiBkaXNrIGludG8gYSBVUkwgKG9yIGp1c3QgcmV0dXJucyB0aGUgdmFsdWUgaWYgaXQn
cyBhbHJlYWR5IGEgVVJMKQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9GaWxlUGF0
aFRvVXJsKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNSZWxhdGl2ZVBhdGgsIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc0Jhc2VQYXRoICkKK3sKKyAgICAgICBpZiAoICFzdHJuaWNtcCggc1JlbGF0aXZlUGF0
aC5jX3N0cigpLCAiaHR0cDovLyIsIDcgKQorICAgICAgICAgICAgICB8fCAhc3RybmljbXAoIHNS
ZWxhdGl2ZVBhdGguY19zdHIoKSwgImh0dHBzOi8vIiwgOCApCisgICAgICAgICAgICAgIHx8ICFz
dHJuaWNtcCggc1JlbGF0aXZlUGF0aC5jX3N0cigpLCAiZmlsZTovLyIsIDcgKSApCisgICAgICAg
eworICAgICAgICAgICAgICByZXR1cm4gc1JlbGF0aXZlUGF0aDsKKyAgICAgICB9CisgICAgICAg
ZWxzZQorICAgICAgIHsKKyAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc0Fic29sdXRlID0gUGF0
aF9NYWtlQWJzb2x1dGUoIHNSZWxhdGl2ZVBhdGgsIHNCYXNlUGF0aCApOworICAgICAgICAgICAg
ICBpZiAoIHNBYnNvbHV0ZS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBz
QWJzb2x1dGU7CisgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggRklMRV9VUkxfUFJF
RklYICkgKyBzQWJzb2x1dGU7CisgICAgICAgfQorfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogU3RyaXBzIG9mZiBmaWxlOi8v
IG9mZiBhIFVSTCBhbmQgcmV0dXJucyB0aGUgcGF0aC4gRm9yIG90aGVyIGtpbmRzIG9mIFVSTHMg
YW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgUGF0aF9VcmxUb0ZpbGVQYXRoKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNGaWxlVXJsICkKK3sKKyAgICAgICBpZiAoICFzdHJuaWNtcCggc0Zp
bGVVcmwuY19zdHIoKSwgRklMRV9VUkxfUFJFRklYLCBzdHJsZW4oIEZJTEVfVVJMX1BSRUZJWCAp
ICkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHNGaWxlVXJsLmNfc3RyKCkgKyBz
dHJsZW4oIEZJTEVfVVJMX1BSRUZJWCApOworICAgICAgIH0KKyAgICAgICBlbHNlCisgICAgICAg
eworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorfQorCisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXR1cm5z
IHRoZSByb290IG9mIHRoZSBkaXJlY3RvcnkgdGhlIHN5c3RlbSB3YW50cyB1cyB0byBzdG9yZSB1
c2VyIGRvY3VtZW50cyBpbgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK3N0ZDo6c3RyaW5nIEdldFVzZXJEb2N1bWVudHNQYXRoKCkKK3sKKyNpZiBkZWZp
bmVkKCBXSU4zMiApCisgICAgICAgV0NIQVIgcndjaFBhdGhbTUFYX1BBVEhdOworCisgICAgICAg
aWYgKCAhU1VDQ0VFREVEKCBTSEdldEZvbGRlclBhdGhXKCBOVUxMLCBDU0lETF9NWURPQ1VNRU5U
UyB8IENTSURMX0ZMQUdfQ1JFQVRFLCBOVUxMLCAwLCByd2NoUGF0aCApICkgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgIH0KKworICAgICAgIC8vIENvbnZlcnQg
dGhlIHBhdGggdG8gVVRGLTggYW5kIHN0b3JlIGluIHRoZSBvdXRwdXQKKyAgICAgICBzdGQ6OnN0
cmluZyBzVXNlclBhdGggPSBVVEYxNnRvOCggcndjaFBhdGggKTsKKworICAgICAgIHJldHVybiBz
VXNlclBhdGg7CisjZWxpZiBkZWZpbmVkKCBPU1ggKQorICAgICAgIEBhdXRvcmVsZWFzZXBvb2wg
eworICAgICAgICAgICAgICBOU0FycmF5ICpwYXRocyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9y
aWVzSW5Eb21haW5zKCBOU0RvY3VtZW50RGlyZWN0b3J5LCBOU1VzZXJEb21haW5NYXNrLCBZRVMg
KTsKKyAgICAgICAgICAgICAgaWYgKCBbcGF0aHMgY291bnRdID09IDAgKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgIHJldHVybiBbW3BhdGhzIG9iamVjdEF0SW5kZXg6
MF0gVVRGOFN0cmluZ107CisgICAgICAgfQorI2VsaWYgZGVmaW5lZCggTElOVVggKQorICAgICAg
IC8vIEB0b2RvOiBub3Qgc29sdmVkL2NoYW5nZWQgYXMgcGFydCBvZiBPU1ggLSBzdGlsbCBub3Qg
cmVhbCAtIGp1c3QgcmVtb3ZlZCBvbGQgY2xhc3MgYmFzZWQgc3RlYW0gY3V0IGFuZCBwYXN0ZQor
ICAgICAgIGNvbnN0IGNoYXIgKnBjaEhvbWUgPSBnZXRlbnYoICJIT01FIiApOworICAgICAgIGlm
ICggcGNoSG9tZSA9PSBOVUxMICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiAiIjsK
KyAgICAgICB9CisgICAgICAgcmV0dXJuIHBjaEhvbWU7CisjZW5kaWYKK30KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9wYXRodG9vbHNfcHVibGlj
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3BhdGh0b29sc19wdWJs
aWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iOTU3YzY0ZDczN2E4YzExNjA0ZmE1ODZhNDIyYWMwODEyMmNhNTUx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1v
bi9wYXRodG9vbHNfcHVibGljLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8vPT09PT09PT09IENvcHly
aWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKy8qKiBSZXR1cm5zIHRoZSBw
YXRoIChpbmNsdWRpbmcgZmlsZW5hbWUpIHRvIHRoZSBjdXJyZW50IGV4ZWN1dGFibGUgKi8KK3N0
ZDo6c3RyaW5nIFBhdGhfR2V0RXhlY3V0YWJsZVBhdGgoKTsKKworLyoqIFJldHVybnMgdGhlIHBh
dGggb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgKi8KK3N0ZDo6c3RyaW5nIFBhdGhf
R2V0V29ya2luZ0RpcmVjdG9yeSgpOworCisvKiogU2V0cyB0aGUgcGF0aCBvZiB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeS4gUmV0dXJucyB0cnVlIGlmIHRoaXMgd2FzIHN1Y2Nlc3NmdWwu
ICovCitib29sIFBhdGhfU2V0V29ya2luZ0RpcmVjdG9yeSggY29uc3Qgc3RkOjpzdHJpbmcgJiBz
UGF0aCApOworCisvKiogcmV0dXJucyB0aGUgcGF0aCAoaW5jbHVkaW5nIGZpbGVuYW1lKSBvZiB0
aGUgY3VycmVudCBzaGFyZWQgbGliIG9yIERMTCAqLworc3RkOjpzdHJpbmcgUGF0aF9HZXRUaGlz
TW9kdWxlUGF0aCgpOworCisvKiogUmV0dXJucyB0aGUgc3BlY2lmaWVkIHBhdGggd2l0aG91dCBp
dHMgZmlsZW5hbWUuCisqIElmIHNsYXNoIGlzIHVuc3BlY2lmaWVkIHRoZSBuYXRpdmUgcGF0aCBz
ZXBhcmF0b3Igb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0KKyogd2lsbCBiZSB1c2VkLiAqLworc3Rk
OjpzdHJpbmcgUGF0aF9TdHJpcEZpbGVuYW1lKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBj
aGFyIHNsYXNoID0gMCApOworCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSBmcm9tIHRo
ZSBwcm92aWRlZCBmdWxsIG9yIHJlbGF0aXZlIHBhdGguICovCitzdGQ6OnN0cmluZyBQYXRoX1N0
cmlwRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoLCBjaGFyIHNsYXNoID0gMCAp
OworCisvKiogcmV0dXJucyBqdXN0IHRoZSBmaWxlbmFtZSB3aXRoIG5vIGV4dGVuc2lvbiBvZiB0
aGUgcHJvdmlkZWQgZmlsZW5hbWUuIAorKiBJZiB0aGVyZSBpcyBhIHBhdGggdGhlIHBhdGggaXMg
bGVmdCBpbnRhY3QuICovCitzdGQ6OnN0cmluZyBQYXRoX1N0cmlwRXh0ZW5zaW9uKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIGp1c3QgZXh0ZW5zaW9uIG9mIHRo
ZSBwcm92aWRlZCBmaWxlbmFtZSAoaWYgYW55KS4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfR2V0RXh0
ZW5zaW9uKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBSZXR1cm5zIHRydWUg
aWYgdGhlIHBhdGggaXMgYWJzb2x1dGUgKi8KK2Jvb2wgUGF0aF9Jc0Fic29sdXRlKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiBNYWtlcyBhbiBhYnNvbHV0ZSBwYXRoIGZyb20g
YSByZWxhdGl2ZSBwYXRoIGFuZCBhIGJhc2UgcGF0aCAqLworc3RkOjpzdHJpbmcgUGF0aF9NYWtl
QWJzb2x1dGUoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1JlbGF0aXZlUGF0aCwgY29uc3Qgc3RkOjpz
dHJpbmcgJiBzQmFzZVBhdGgsIGNoYXIgc2xhc2ggPSAwICk7CisKKy8qKiBGaXhlcyB0aGUgZGly
ZWN0b3J5IHNlcGFyYXRvcnMgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLgorKiBJZiBzbGFzaCBp
cyB1bnNwZWNpZmllZCB0aGUgbmF0aXZlIHBhdGggc2VwYXJhdG9yIG9mIHRoZSBjdXJyZW50IHBs
YXRmb3JtCisqIHdpbGwgYmUgdXNlZC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfRml4U2xhc2hlcygg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLyoqIFJldHVy
bnMgdGhlIHBhdGggc2VwYXJhdG9yIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybSAqLworY2hhciBQ
YXRoX0dldFNsYXNoKCk7CisKKy8qKiBKYW1zIHR3byBwYXRocyB0b2dldGhlciB3aXRoIHRoZSBy
aWdodCBraW5kIG9mIHNsYXNoICovCitzdGQ6OnN0cmluZyBQYXRoX0pvaW4oIGNvbnN0IHN0ZDo6
c3RyaW5nICYgZmlyc3QsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCBjaGFyIHNsYXNoID0g
MCApOworc3RkOjpzdHJpbmcgUGF0aF9Kb2luKCBjb25zdCBzdGQ6OnN0cmluZyAmIGZpcnN0LCBj
b25zdCBzdGQ6OnN0cmluZyAmIHNlY29uZCwgY29uc3Qgc3RkOjpzdHJpbmcgJiB0aGlyZCwgY2hh
ciBzbGFzaCA9IDAgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfSm9pbiggY29uc3Qgc3RkOjpzdHJpbmcg
JiBmaXJzdCwgY29uc3Qgc3RkOjpzdHJpbmcgJiBzZWNvbmQsIGNvbnN0IHN0ZDo6c3RyaW5nICYg
dGhpcmQsIGNvbnN0IHN0ZDo6c3RyaW5nICZmb3VydGgsIGNoYXIgc2xhc2ggPSAwICk7CitzdGQ6
OnN0cmluZyBQYXRoX0pvaW4oIAorICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgZmlyc3QsIAor
ICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgc2Vjb25kLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyAmIHRoaXJkLCAKKyAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIGZvdXJ0aCwgCisgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcgJiBmaWZ0aCwgCisgICAgICAgY2hhciBzbGFzaCA9IDAgKTsK
KworCisvKiogUmVtb3ZlcyByZWR1bmRhbnQgPGRpcj4vLi4gZWxlbWVudHMgaW4gdGhlIHBhdGgu
IFJldHVybnMgYW4gZW1wdHkgcGF0aCBpZiB0aGUgCisqIHNwZWNpZmllZCBwYXRoIGhhcyBhIGJy
b2tlbiBudW1iZXIgb2YgZGlyZWN0b3JpZXMgZm9yIGl0cyBudW1iZXIgb2YgLi5zLgorKiBJZiBz
bGFzaCBpcyB1bnNwZWNpZmllZCB0aGUgbmF0aXZlIHBhdGggc2VwYXJhdG9yIG9mIHRoZSBjdXJy
ZW50IHBsYXRmb3JtCisqIHdpbGwgYmUgdXNlZC4gKi8KK3N0ZDo6c3RyaW5nIFBhdGhfQ29tcGFj
dCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCA9IDAgKTsKKworLy8q
KiBSZW1vdmVkIHRyYWlsaW5nIHNsYXNoZXMgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfUmVtb3ZlVHJh
aWxpbmdTbGFzaCggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUmF3UGF0aCwgY2hhciBzbGFzaCA9IDAg
KTsKKworLyoqIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHBhdGggZXhpc3RzIGFuZCBp
cyBhIGRpcmVjdG9yeSAqLworYm9vbCBQYXRoX0lzRGlyZWN0b3J5KCBjb25zdCBzdGQ6OnN0cmlu
ZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBwYXRoIHJl
cHJlc2VudHMgYW4gYXBwIGJ1bmRsZSAqLworYm9vbCBQYXRoX0lzQXBwQnVuZGxlKCBjb25zdCBz
dGQ6OnN0cmluZyAmIHNQYXRoICk7CisKKy8qKiByZXR1cm5zIHRydWUgaWYgdGhlIHRoZSBwYXRo
IGV4aXN0cyAqLworYm9vbCBQYXRoX0V4aXN0cyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzUGF0aCAp
OworCisvKiogSGVscGVyIGZ1bmN0aW9ucyB0byBmaW5kIHBhcmVudCBkaXJlY3RvcmllcyBvciBz
dWJkaXJlY3RvcmllcyBvZiBwYXJlbnQgZGlyZWN0b3JpZXMgKi8KK3N0ZDo6c3RyaW5nIFBhdGhf
RmluZFBhcmVudERpcmVjdG9yeVJlY3Vyc2l2ZWx5KCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyU3Rh
cnREaXJlY3RvcnksIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJEaXJlY3RvcnlOYW1lICk7CitzdGQ6
OnN0cmluZyBQYXRoX0ZpbmRQYXJlbnRTdWJEaXJlY3RvcnlSZWN1cnNpdmVseSggY29uc3Qgc3Rk
OjpzdHJpbmcgJnN0clN0YXJ0RGlyZWN0b3J5LCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRGlyZWN0
b3J5TmFtZSApOworCisvKiogUGF0aCBvcGVyYXRpb25zIHRvIHJlYWQgb3Igd3JpdGUgdGV4dC9i
aW5hcnkgZmlsZXMgKi8KK3Vuc2lnbmVkIGNoYXIgKiBQYXRoX1JlYWRCaW5hcnlGaWxlKCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIGludCAqcFNpemUgKTsKK3VpbnQzMl90ICBQYXRo
X1JlYWRCaW5hcnlGaWxlKCBjb25zdCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUsIHVuc2lnbmVk
IGNoYXIgKnBCdWZmZXIsIHVpbnQzMl90IHVuU2l6ZSApOworYm9vbCBQYXRoX1dyaXRlQmluYXJ5
RmlsZSggY29uc3Qgc3RkOjpzdHJpbmcgJnN0ckZpbGVuYW1lLCB1bnNpZ25lZCBjaGFyICpwRGF0
YSwgdW5zaWduZWQgblNpemUgKTsKK3N0ZDo6c3RyaW5nIFBhdGhfUmVhZFRleHRGaWxlKCBjb25z
dCBzdGQ6OnN0cmluZyAmc3RyRmlsZW5hbWUgKTsKK2Jvb2wgUGF0aF9Xcml0ZVN0cmluZ1RvVGV4
dEZpbGUoIGNvbnN0IHN0ZDo6c3RyaW5nICZzdHJGaWxlbmFtZSwgY29uc3QgY2hhciAqcGNoRGF0
YSApOworYm9vbCBQYXRoX1dyaXRlU3RyaW5nVG9UZXh0RmlsZUF0b21pYyggY29uc3Qgc3RkOjpz
dHJpbmcgJnN0ckZpbGVuYW1lLCBjb25zdCBjaGFyICpwY2hEYXRhICk7CisKKy8qKiBSZXR1cm5z
IGEgZmlsZTovLyB1cmwgZm9yIHBhdGhzLCBvciBhbiBodHRwIG9yIGh0dHBzIHVybCBpZiB0aGF0
J3Mgd2hhdCB3YXMgcHJvdmlkZWQgKi8KK3N0ZDo6c3RyaW5nIFBhdGhfRmlsZVBhdGhUb1VybCgg
Y29uc3Qgc3RkOjpzdHJpbmcgJiBzUmVsYXRpdmVQYXRoLCBjb25zdCBzdGQ6OnN0cmluZyAmIHNC
YXNlUGF0aCApOworCisvKiogU3RyaXBzIG9mZiBmaWxlOi8vIG9mZiBhIFVSTCBhbmQgcmV0dXJu
cyB0aGUgcGF0aC4gRm9yIG90aGVyIGtpbmRzIG9mIFVSTHMgYW4gZW1wdHkgc3RyaW5nIGlzIHJl
dHVybmVkICovCitzdGQ6OnN0cmluZyBQYXRoX1VybFRvRmlsZVBhdGgoIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc0ZpbGVVcmwgKTsKKworLyoqIFJldHVybnMgdGhlIHJvb3Qgb2YgdGhlIGRpcmVjdG9y
eSB0aGUgc3lzdGVtIHdhbnRzIHVzIHRvIHN0b3JlIHVzZXIgZG9jdW1lbnRzIGluICovCitzdGQ6
OnN0cmluZyBHZXRVc2VyRG9jdW1lbnRzUGF0aCgpOworCisjaWZuZGVmIE1BWF9VTklDT0RFX1BB
VEgKKyAgICAgICAjZGVmaW5lIE1BWF9VTklDT0RFX1BBVEggMzI3NjcKKyNlbmRpZgorCisjaWZu
ZGVmIE1BWF9VTklDT0RFX1BBVEhfSU5fVVRGOAorICAgICAgICNkZWZpbmUgTUFYX1VOSUNPREVf
UEFUSF9JTl9VVEY4IChNQVhfVU5JQ09ERV9QQVRIICogNCkKKyNlbmRpZgorCisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisjaWYgZGVmaW5lZChXSU4zMikKKyNkZWZpbmUgRFlOQU1JQ19MSUJfRVhU
ICAgICAgICIuZGxsIgorI2RlZmluZSBQUk9HUkFNX0VYVCAiLmV4ZSIKKyNpZmRlZiBfV0lONjQK
KyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAid2luNjQiCisjZWxzZQorI2RlZmluZSBQTEFUU1VC
RElSICAgICAgICJ3aW4zMiIKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChPU1gpCisjZGVmaW5lIERZ
TkFNSUNfTElCX0VYVCAgICAgICAiLmR5bGliIgorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJv
c3gzMiIKKyNkZWZpbmUgUFJPR1JBTV9FWFQgIiIKKyNlbGlmIGRlZmluZWQoTElOVVgpCisjZGVm
aW5lIERZTkFNSUNfTElCX0VYVCAgICAgICAiLnNvIgorI2RlZmluZSBQUk9HUkFNX0VYVCAiIgor
I2lmIGRlZmluZWQoIExJTlVYMzIgKQorI2RlZmluZSBQTEFUU1VCRElSICAgICAgICJsaW51eDMy
IgorI2Vsc2UKKyNkZWZpbmUgUExBVFNVQkRJUiAgICAgICAibGludXg2NCIKKyNlbmRpZgorI2Vs
c2UKKyN3YXJuaW5nICJVbmtub3duIHBsYXRmb3JtIGZvciBQTEFUU1VCRElSIgorI2RlZmluZSBQ
TEFUU1VCRElSICAgICAgICJ1bmtub3duX3BsYXRmb3JtIgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRvb2xzX3B1Ymxp
Yy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxpYnRv
b2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhlZWMyNjA0NTljNTFlZWM1NjlhMmNhNWIxMDI5
YTU5YzliYWNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9z
cmMvdnJjb21tb24vc2hhcmVkbGlidG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsxLDQzIEBACisv
Lz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNp
bmNsdWRlICJzaGFyZWRsaWJ0b29sc19wdWJsaWMuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwor
I2lmIGRlZmluZWQoX1dJTjMyKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaWYg
ZGVmaW5lZChQT1NJWCkKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2VuZGlmCisKK1NoYXJlZExpYkhh
bmRsZSBTaGFyZWRMaWJfTG9hZCggY29uc3QgY2hhciAqcGNoUGF0aCApCit7CisjaWYgZGVmaW5l
ZCggX1dJTjMyKQorICAgICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKUxvYWRMaWJyYXJ5RXgo
IHBjaFBhdGgsIE5VTEwsIExPQURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIICk7CisjZWxpZiBk
ZWZpbmVkKFBPU0lYKQorICAgICAgIHJldHVybiAoU2hhcmVkTGliSGFuZGxlKWRsb3BlbihwY2hQ
YXRoLCBSVExEX0xPQ0FMfFJUTERfTk9XKTsKKyNlbmRpZgorfQorCit2b2lkICpTaGFyZWRMaWJf
R2V0RnVuY3Rpb24oIFNoYXJlZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIgKnBjaEZ1bmN0aW9u
TmFtZSkKK3sKKyNpZiBkZWZpbmVkKCBfV0lOMzIpCisgICAgICAgcmV0dXJuICh2b2lkKilHZXRQ
cm9jQWRkcmVzcyggKEhNT0RVTEUpbGliLCBwY2hGdW5jdGlvbk5hbWUgKTsKKyNlbGlmIGRlZmlu
ZWQoUE9TSVgpCisgICAgICAgcmV0dXJuIGRsc3ltKCBsaWIsIHBjaEZ1bmN0aW9uTmFtZSApOwor
I2VuZGlmCit9CisKKwordm9pZCBTaGFyZWRMaWJfVW5sb2FkKCBTaGFyZWRMaWJIYW5kbGUgbGli
ICkKK3sKKyAgICAgICBpZiAoICFsaWIgKQorICAgICAgICAgICAgICByZXR1cm47CisjaWYgZGVm
aW5lZCggX1dJTjMyKQorICAgICAgIEZyZWVMaWJyYXJ5KCAoSE1PRFVMRSlsaWIgKTsKKyNlbGlm
IGRlZmluZWQoUE9TSVgpCisgICAgICAgZGxjbG9zZSggbGliICk7CisjZW5kaWYKK30KKworCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3NoYXJlZGxp
YnRvb2xzX3B1YmxpYy5oIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi9z
aGFyZWRsaWJ0b29sc19wdWJsaWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDE2M2RiZmFiMmJlODM2MmY4M2Jj
MjA5M2MyNDIxNGIyNDdmYmFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
b3BlbnZyL3NyYy92cmNvbW1vbi9zaGFyZWRsaWJ0b29sc19wdWJsaWMuaApAQCAtMCwwICsxLDEw
IEBACisvLz09PT09PT09PSBDb3B5cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09
Ly8KKyNwcmFnbWEgb25jZQorCit0eXBlZGVmIHZvaWQgKlNoYXJlZExpYkhhbmRsZTsKKworU2hh
cmVkTGliSGFuZGxlIFNoYXJlZExpYl9Mb2FkKCBjb25zdCBjaGFyICpwY2hQYXRoICk7Cit2b2lk
ICpTaGFyZWRMaWJfR2V0RnVuY3Rpb24oIFNoYXJlZExpYkhhbmRsZSBsaWIsIGNvbnN0IGNoYXIg
KnBjaEZ1bmN0aW9uTmFtZSk7Cit2b2lkIFNoYXJlZExpYl9VbmxvYWQoIFNoYXJlZExpYkhhbmRs
ZSBsaWIgKTsKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3Zy
Y29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3N0cnRvb2xzX3B1YmxpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5MzcwYjJjZDFiOGM1
YWE0ZmQ3MTAyOTYyYTlkNGFiZThmOGRiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVibGljLmNwcApAQCAtMCwwICsx
LDQzNyBAQAorLy89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09
PT09PS8vCisjaW5jbHVkZSAic3RydG9vbHNfcHVibGljLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+
CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgU3Ry
aW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3Ry
aW5nICYgc1ByZWZpeCApCit7CisgICAgICAgcmV0dXJuIDAgPT0gc3RybmljbXAoIHNTdHJpbmcu
Y19zdHIoKSwgc1ByZWZpeC5jX3N0cigpLCBzUHJlZml4Lmxlbmd0aCgpICk7Cit9CisKK2Jvb2wg
U3RyaW5nSGFzUHJlZml4Q2FzZVNlbnNpdGl2ZSggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5n
LCBjb25zdCBzdGQ6OnN0cmluZyAmIHNQcmVmaXggKQoreworICAgICAgIHJldHVybiAwID09IHN0
cm5jbXAoIHNTdHJpbmcuY19zdHIoKSwgc1ByZWZpeC5jX3N0cigpLCBzUHJlZml4Lmxlbmd0aCgp
ICk7Cit9CisKKworYm9vbCBTdHJpbmdIYXNTdWZmaXgoIGNvbnN0IHN0ZDo6c3RyaW5nICZzU3Ry
aW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApCit7CisgICAgICAgc2l6ZV90IGNTdHJM
ZW4gPSBzU3RyaW5nLmxlbmd0aCgpOworICAgICAgIHNpemVfdCBjU3VmZml4TGVuID0gc1N1ZmZp
eC5sZW5ndGgoKTsKKworICAgICAgIGlmICggY1N1ZmZpeExlbiA+IGNTdHJMZW4gKQorICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBzdGQ6OnN0cmluZyBzU3RyaW5nU3VmZml4
ID0gc1N0cmluZy5zdWJzdHIoIGNTdHJMZW4gLSBjU3VmZml4TGVuLCBjU3VmZml4TGVuICk7CisK
KyAgICAgICByZXR1cm4gMCA9PSBzdHJpY21wKCBzU3RyaW5nU3VmZml4LmNfc3RyKCksIHNTdWZm
aXguY19zdHIoKSApOworfQorCitib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUoIGNv
bnN0IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCApCit7
CisgICAgICAgc2l6ZV90IGNTdHJMZW4gPSBzU3RyaW5nLmxlbmd0aCgpOworICAgICAgIHNpemVf
dCBjU3VmZml4TGVuID0gc1N1ZmZpeC5sZW5ndGgoKTsKKworICAgICAgIGlmICggY1N1ZmZpeExl
biA+IGNTdHJMZW4gKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICBzdGQ6
OnN0cmluZyBzU3RyaW5nU3VmZml4ID0gc1N0cmluZy5zdWJzdHIoIGNTdHJMZW4gLSBjU3VmZml4
TGVuLCBjU3VmZml4TGVuICk7CisKKyAgICAgICByZXR1cm4gMCA9PSBzdHJuY21wKCBzU3RyaW5n
U3VmZml4LmNfc3RyKCksIHNTdWZmaXguY19zdHIoKSxjU3VmZml4TGVuICk7Cit9CisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitz
dGQ6OnN0cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pCit7CisgICAgICAgc3RkOjpz
dHJpbmcgb3V0OworICAgICAgIHVuc2lnbmVkIGludCBjb2RlcG9pbnQgPSAwOworICAgICAgIGZv
ciAoIDsgaW4gJiYgKmluICE9IDA7ICsraW4gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYg
KCppbiA+PSAweGQ4MDAgJiYgKmluIDw9IDB4ZGJmZikKKyAgICAgICAgICAgICAgICAgICAgIGNv
ZGVwb2ludCA9ICgoKmluIC0gMHhkODAwKSA8PCAxMCkgKyAweDEwMDAwOworICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmICgqaW4gPj0g
MHhkYzAwICYmICppbiA8PSAweGRmZmYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29k
ZXBvaW50IHw9ICppbiAtIDB4ZGMwMDsKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAqaW47CisKKyAgICAgICAgICAgICAg
ICAgICAgIGlmIChjb2RlcG9pbnQgPD0gMHg3ZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KGNvZGVwb2ludCkpOworICAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAoY29kZXBvaW50IDw9IDB4N2ZmKQorICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGlj
X2Nhc3Q8Y2hhcj4oMHhjMCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgxZikpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAg
fCAoY29kZXBvaW50ICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKGNvZGVwb2ludCA8PSAweGZmZmYpCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0
aWNfY2FzdDxjaGFyPigweGUwIHwgKChjb2RlcG9pbnQgPj4gMTIpICYgMHgwZikpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4
ODAgfCAoKGNvZGVwb2ludCA+PiA2KSAmIDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweDgwIHwgKGNvZGVwb2ludCAm
IDB4M2YpKSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0LmFwcGVuZCgxLCBzdGF0aWNfY2FzdDxjaGFyPigweGYwIHwgKChjb2RlcG9pbnQgPj4gMTgp
ICYgMHgwNykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKDEsIHN0
YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoKGNvZGVwb2ludCA+PiAxMikgJiAweDNmKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8Y2hhcj4o
MHg4MCB8ICgoY29kZXBvaW50ID4+IDYpICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXQuYXBwZW5kKDEsIHN0YXRpY19jYXN0PGNoYXI+KDB4ODAgfCAoY29kZXBvaW50
ICYgMHgzZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IGNvZGVwb2ludCA9IDA7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJu
IG91dDsKK30KKworc3RkOjp3c3RyaW5nIFVURjh0bzE2KGNvbnN0IGNoYXIgKiBpbikKK3sKKyAg
ICAgICBzdGQ6OndzdHJpbmcgb3V0OworICAgICAgIHVuc2lnbmVkIGludCBjb2RlcG9pbnQgPSAw
OworICAgICAgIGludCBmb2xsb3dpbmcgPSAwOworICAgICAgIGZvciAoIDsgaW4gJiYgKmluICE9
IDA7ICsraW4gKQorICAgICAgIHsKKyAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9ICpp
bjsKKyAgICAgICAgICAgICAgaWYgKGNoIDw9IDB4N2YpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IGNoOworICAgICAgICAgICAgICAgICAgICAgZm9s
bG93aW5nID0gMDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8
PSAweGJmKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoZm9sbG93
aW5nID4gMCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb2RlcG9pbnQgPSAoY29kZXBvaW50IDw8IDYpIHwgKGNoICYgMHgzZik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS1mb2xsb3dpbmc7CisgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPD0gMHhkZikKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2ggJiAweDFm
OworICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nID0gMTsKKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8PSAweGVmKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSBjaCAmIDB4MGY7CisgICAgICAgICAgICAgICAg
ICAgICBmb2xsb3dpbmcgPSAyOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY29kZXBvaW50ID0gY2ggJiAw
eDA3OworICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nID0gMzsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBpZiAoZm9sbG93aW5nID09IDApCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIGlmIChjb2RlcG9pbnQgPiAweGZmZmYpCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgxLCBzdGF0
aWNfY2FzdDx3Y2hhcl90PigweGQ4MDAgKyAoY29kZXBvaW50ID4+IDEwKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoMSwgc3RhdGljX2Nhc3Q8d2NoYXJfdD4oMHhk
YzAwICsgKGNvZGVwb2ludCAmIDB4MDNmZikpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
YXBwZW5kKDEsIHN0YXRpY19jYXN0PHdjaGFyX3Q+KGNvZGVwb2ludCkpOworICAgICAgICAgICAg
ICAgICAgICAgY29kZXBvaW50ID0gMDsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAg
ICByZXR1cm4gb3V0OworfQorCisKK3ZvaWQgc3RyY3B5X3NhZmUoIGNoYXIgKnBjaEJ1ZmZlciwg
c2l6ZV90IHVuQnVmZmVyU2l6ZUJ5dGVzLCBjb25zdCBjaGFyICpwY2hTb3VyY2UgKQoreworICAg
ICAgIHBjaEJ1ZmZlclsgdW5CdWZmZXJTaXplQnl0ZXMgLSAxIF0gPSAnXDAnOworICAgICAgIHN0
cm5jcHkoIHBjaEJ1ZmZlciwgcGNoU291cmNlLCB1bkJ1ZmZlclNpemVCeXRlcyAtIDEgKTsKK30K
KworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogY29udmVydHMgYSBzdHJpbmcgdG8gdXBw
ZXIgY2FzZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6c3RyaW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApCit7CisgICAgICAgc3RkOjpzdHJpbmcgc091dDsKKyAg
ICAgICBzT3V0LnJlc2VydmUoIHNTdHJpbmcuc2l6ZSgpICsgMSApOworICAgICAgIGZvciggc3Rk
OjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIGkgPSBzU3RyaW5nLmJlZ2luKCk7IGkgIT0gc1N0cmlu
Zy5lbmQoKTsgaSsrICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHNPdXQucHVzaF9iYWNrKCAo
Y2hhcil0b3VwcGVyKCAqaSApICk7CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIHNPdXQ7Cit9
CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IGNvbnZlcnRzIGEgc3RyaW5nIHRvIGxv
d2VyIGNhc2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBTdHJpbmdUb0xvd2VyKCBjb25z
dCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcgKQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNPdXQ7Cisg
ICAgICAgc091dC5yZXNlcnZlKCBzU3RyaW5nLnNpemUoKSArIDEgKTsKKyAgICAgICBmb3IoIHN0
ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvciBpID0gc1N0cmluZy5iZWdpbigpOyBpICE9IHNTdHJp
bmcuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBzT3V0LnB1c2hfYmFjaygg
KGNoYXIpdG9sb3dlciggKmkgKSApOworICAgICAgIH0KKworICAgICAgIHJldHVybiBzT3V0Owor
fQorCisKK3VpbnQzMl90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFs
dWUsIGNoYXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKQoreworICAgICAgIHVp
bnQzMl90IHVuTGVuID0gKHVpbnQzMl90KXNWYWx1ZS5sZW5ndGgoKSArIDE7CisgICAgICAgaWYo
ICFwY2hCdWZmZXIgfHwgIXVuQnVmZmVyTGVuICkKKyAgICAgICAgICAgICAgcmV0dXJuIHVuTGVu
OworCisgICAgICAgaWYoIHVuQnVmZmVyTGVuIDwgdW5MZW4gKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgcGNoQnVmZmVyWzBdID0gJ1wwJzsKKyAgICAgICB9CisgICAgICAgZWxzZQorICAgICAg
IHsKKyAgICAgICAgICAgICAgbWVtY3B5KCBwY2hCdWZmZXIsIHNWYWx1ZS5jX3N0cigpLCB1bkxl
biApOworICAgICAgIH0KKworICAgICAgIHJldHVybiB1bkxlbjsKK30KKwordm9pZCBCdWZmZXJU
b1N0ZFN0cmluZyggc3RkOjpzdHJpbmcgJiBzRGVzdCwgY29uc3QgY2hhciAqcGNoQnVmZmVyLCB1
aW50MzJfdCB1bkJ1ZmZlckxlbiApCit7CisgICAgICAgc0Rlc3QucmVzaXplKCB1bkJ1ZmZlckxl
biArIDEgKTsKKyAgICAgICBtZW1jcHkoIGNvbnN0X2Nhc3Q8IGNoYXIqID4oIHNEZXN0LmNfc3Ry
KCkgKSwgcGNoQnVmZmVyLCB1bkJ1ZmZlckxlbiApOworICAgICAgIGNvbnN0X2Nhc3Q8IGNoYXIq
ID4oIHNEZXN0LmNfc3RyKCkgKVsgdW5CdWZmZXJMZW4gXSA9ICdcMCc7Cit9CisKKy8qKiBSZXR1
cm5zIGEgc3RkOjpzdHJpbmcgZnJvbSBhIHVpbnQ2NF90ICovCitzdGQ6OnN0cmluZyBVaW50NjRU
b1N0cmluZyggdWludDY0X3QgdWxWYWx1ZSApCit7CisgICAgICAgY2hhciBidWZbIDIyIF07Cisj
aWYgZGVmaW5lZCggX1dJTjMyICkKKyAgICAgICBzcHJpbnRmX3MoIGJ1ZiwgIiVsbHUiLCB1bFZh
bHVlICk7CisjZWxzZQorICAgIHNucHJpbnRmKCBidWYsIHNpemVvZiggYnVmICksICIlbGx1Iiwg
KGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQgKSB1bFZhbHVlICk7CisjZW5kaWYKKyAgICAgICByZXR1
cm4gYnVmOworfQorCisKKy8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJvbSBhIHN0cmluZyAqLwor
dWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1ZhbHVlICkKK3sK
KyAgICAgICByZXR1cm4gc3RydG91bGwoIHNWYWx1ZS5jX3N0cigpLCBOVUxMLCAwICk7Cit9CisK
Ky8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEhlbHBlciBmb3IgY29udmVydGlu
ZyBhIG51bWVyaWMgdmFsdWUgdG8gYSBoZXggZGlnaXQsIHZhbHVlIHNob3VsZCBiZSAwLTE1Lgor
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY2hhciBjSW50VG9IZXhEaWdpdCggaW50IG5WYWx1ZSAp
Cit7CisgICAgICAgLy9Bc3NlcnQoIG5WYWx1ZSA+PSAwICYmIG5WYWx1ZSA8PSAxNSApOworICAg
ICAgIHJldHVybiAiMDEyMzQ1Njc4OUFCQ0RFRiJbIG5WYWx1ZSAmIDE1IF07Cit9CisKKy8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEhlbHBlciBmb3IgY29udmVydGluZyBhIGhl
eCBjaGFyIHZhbHVlIHRvIG51bWVyaWMsIHJldHVybiAtMSBpZiB0aGUgY2hhcgorLy8gICAgICAg
ICAgaXMgbm90IGEgdmFsaWQgaGV4IGRpZ2l0LgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoraW50
IGlIZXhDaGFyVG9JbnQoIGNoYXIgY1ZhbHVlICkKK3sKKyAgICAgICBpbnQzMl90IGlWYWx1ZSA9
IGNWYWx1ZTsKKyAgICAgICBpZiAoICh1aW50MzJfdCkoIGlWYWx1ZSAtICcwJyApIDwgMTAgKQor
ICAgICAgICAgICAgICByZXR1cm4gaVZhbHVlIC0gJzAnOworCisgICAgICAgaVZhbHVlIHw9IDB4
MjA7CisgICAgICAgaWYgKCAodWludDMyX3QpKCBpVmFsdWUgLSAnYScgKSA8IDYgKQorICAgICAg
ICAgICAgICByZXR1cm4gaVZhbHVlIC0gJ2EnICsgMTA7CisKKyAgICAgICByZXR1cm4gLTE7Cit9
CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEludGVybmFsIGltcGxlbWVu
dGF0aW9uIG9mIGVuY29kZSwgd29ya3MgaW4gdGhlIHN0cmljdCBSRkMgbWFubmVyLCBvcgorLy8g
ICAgICAgICAgd2l0aCBzcGFjZXMgdHVybmVkIHRvICsgbGlrZSBIVE1MIGZvcm0gZW5jb2Rpbmcu
CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2lkIFZfVVJMRW5jb2RlSW50ZXJuYWwoIGNoYXIg
KnBjaERlc3QsIGludCBuRGVzdExlbiwgY29uc3QgY2hhciAqcGNoU291cmNlLCBpbnQgblNvdXJj
ZUxlbiwgYm9vbCBiVXNlUGx1c0ZvclNwYWNlICkKK3sKKyAgICAgICAvL0Fzc2VydE1zZyggbkRl
c3RMZW4gPiAzKm5Tb3VyY2VMZW4sICJUYXJnZXQgYnVmZmVyIGZvciBWX1VSTEVuY29kZSBzaG91
bGQgYmUgM3ggc291cmNlIGxlbmd0aCwgcGx1cyBvbmUgZm9yIHRlcm1pbmF0aW5nIG51bGxcbiIg
KTsKKyAgICAgICAKKyAgICAgICBpbnQgaURlc3RQb3MgPSAwOworICAgICAgIGZvciAoIGludCBp
PTA7IGkgPCBuU291cmNlTGVuOyArK2kgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gd29y
c3QgY2FzZSB3ZSBuZWVkIDMgYWRkaXRpb25hbCBjaGFycworICAgICAgICAgICAgICBpZiggKGlE
ZXN0UG9zKzMpID4gbkRlc3RMZW4gICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgcGNoRGVzdFswXSA9ICdcMCc7CisvLyAgICAgICAgICAgICAgICAgICAgIEFzc2VydE1z
ZyggZmFsc2UsICJUYXJnZXQgYnVmZmVyIHRvbyBzaG9ydFxuIiApOworICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gV2UgYWxs
b3cgb25seSBhLXosIEEtWiwgMC05LCBwZXJpb2QsIHVuZGVyc2NvcmUsIGFuZCBoeXBoZW4gdG8g
cGFzcyB0aHJvdWdoIHVuZXNjYXBlZC4KKyAgICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBj
aGFyYWN0ZXJzIGFsbG93ZWQgYnkgYm90aCB0aGUgb3JpZ2luYWwgUkZDIDE3MzggYW5kIHRoZSBs
YXRlc3QgUkZDIDM5ODYuCisgICAgICAgICAgICAgIC8vIEN1cnJlbnQgc3BlY3MgYWxzbyBhbGxv
dyAnficsIGJ1dCB0aGF0IGlzIGZvcmJpZGRlbiB1bmRlciBvcmlnaW5hbCBSRkMgMTczOC4KKyAg
ICAgICAgICAgICAgaWYgKCAhKCBwY2hTb3VyY2VbaV0gPj0gJ2EnICYmIHBjaFNvdXJjZVtpXSA8
PSAneicgKSAmJiAhKCBwY2hTb3VyY2VbaV0gPj0gJ0EnICYmIHBjaFNvdXJjZVtpXSA8PSAnWicg
KSAmJiAhKHBjaFNvdXJjZVtpXSA+PSAnMCcgJiYgcGNoU291cmNlW2ldIDw9ICc5JyApCisgICAg
ICAgICAgICAgICAgICAgICAgJiYgcGNoU291cmNlW2ldICE9ICctJyAmJiBwY2hTb3VyY2VbaV0g
IT0gJ18nICYmIHBjaFNvdXJjZVtpXSAhPSAnLicgICAgICAgCisgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgaWYgKCBiVXNlUGx1c0ZvclNwYWNl
ICYmIHBjaFNvdXJjZVtpXSA9PSAnICcgKQorICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnKyc7CisgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVzdFtpRGVzdFBvcysr
XSA9ICclJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGlWYWx1ZSA9IHBj
aFNvdXJjZVtpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlWYWx1ZSA9PSAw
ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnMCc7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSAnMCc7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgY0hleERpZ2l0MSA9IGNJbnRUb0hleERpZ2l0KCBpVmFsdWUgJSAxNiApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVmFsdWUgLz0gMTY7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY0hleERpZ2l0MiA9IGNJbnRUb0hleERp
Z2l0KCBpVmFsdWUgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoRGVz
dFtpRGVzdFBvcysrXSA9IGNIZXhEaWdpdDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBjaERlc3RbaURlc3RQb3MrK10gPSBjSGV4RGlnaXQxOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
IHBjaERlc3RbaURlc3RQb3MrK10gPSBwY2hTb3VyY2VbaV07CisgICAgICAgICAgICAgIH0KKyAg
ICAgICB9CisKKyAgICAgICBpZiggKGlEZXN0UG9zKzEpID4gbkRlc3RMZW4gKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgcGNoRGVzdFswXSA9ICdcMCc7CisgICAgICAgICAgICAgIC8vQXNzZXJ0
TXNnKCBmYWxzZSwgIlRhcmdldCBidWZmZXIgdG9vIHNob3J0IHRvIHRlcm1pbmF0ZVxuIiApOwor
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorCisgICAgICAgLy8gTnVsbCB0ZXJtaW5h
dGUKKyAgICAgICBwY2hEZXN0W2lEZXN0UG9zKytdID0gMDsKK30KKworCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBQdXJwb3NlOiBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvZiBkZWNvZGUs
IHdvcmtzIGluIHRoZSBzdHJpY3QgUkZDIG1hbm5lciwgb3IKKy8vICAgICAgICAgIHdpdGggc3Bh
Y2VzIHR1cm5lZCB0byArIGxpa2UgSFRNTCBmb3JtIGVuY29kaW5nLgorLy8KKy8vICAgICAgICAg
ICAgICAgICAgICAgUmV0dXJucyB0aGUgYW1vdW50IG9mIHNwYWNlIHVzZWQgaW4gdGhlIG91dHB1
dCBidWZmZXIuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzaXplX3QgVl9VUkxEZWNvZGVJbnRl
cm5hbCggY2hhciAqcGNoRGVjb2RlRGVzdCwgaW50IG5EZWNvZGVEZXN0TGVuLCBjb25zdCBjaGFy
ICpwY2hFbmNvZGVkU291cmNlLCBpbnQgbkVuY29kZWRTb3VyY2VMZW4sIGJvb2wgYlVzZVBsdXNG
b3JTcGFjZSApCit7CisgICAgICAgaWYgKCBuRGVjb2RlRGVzdExlbiA8IG5FbmNvZGVkU291cmNl
TGVuICkKKyAgICAgICB7CisgICAgICAgICAgICAgIC8vQXNzZXJ0TXNnKCBmYWxzZSwgIlZfVVJM
RGVjb2RlIG5lZWRzIGEgZGVzdCBidWZmZXIgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgdGhlIHNvdXJj
ZSIgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfQorCisgICAgICAgaW50IGlE
ZXN0UG9zID0gMDsKKyAgICAgICBmb3IoIGludCBpPTA7IGkgPCBuRW5jb2RlZFNvdXJjZUxlbjsg
KytpICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggYlVzZVBsdXNGb3JTcGFjZSAmJiBw
Y2hFbmNvZGVkU291cmNlW2ldID09ICcrJyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgIHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9ICcgJzsKKyAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICBlbHNlIGlmICggcGNoRW5jb2RlZFNvdXJjZVtpXSA9PSAnJScg
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAvLyBQZXJjZW50IHNpZ25p
ZmllcyBhbiBlbmNvZGVkIHZhbHVlLCBsb29rIGFoZWFkIGZvciB0aGUgaGV4IGNvZGUsIGNvbnZl
cnQgdG8gbnVtZXJpYywgYW5kIHVzZSB0aGF0CisKKyAgICAgICAgICAgICAgICAgICAgIC8vIEZp
cnN0IG1ha2Ugc3VyZSB3ZSBoYXZlIDIgbW9yZSBjaGFycworICAgICAgICAgICAgICAgICAgICAg
aWYgKCBpIDwgbkVuY29kZWRTb3VyY2VMZW4gLSAyICkKKyAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNIZXhEaWdpdDEgPSBwY2hFbmNvZGVk
U291cmNlW2krMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjSGV4RGlnaXQy
ID0gcGNoRW5jb2RlZFNvdXJjZVtpKzJdOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gVHVybiB0aGUgY2hhcnMgaW50byBhIGhleCB2YWx1ZSwgaWYgdGhleSBhcmUgbm90IHZhbGlk
LCB0aGVuIHdlJ2xsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBwbGFjZSB0
aGUgJSBhbmQgdGhlIGZvbGxvd2luZyB0d28gY2hhcnMgZGlyZWN0IGludG8gdGhlIHN0cmluZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIHRob3VnaCB0aGlzIHJlYWxseSBz
aG91bGRuJ3QgaGFwcGVuLCB3aG8ga25vd3Mgd2hhdCBiYWQgY2xpZW50cworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIG1heSBkbyB3aXRoIGVuY29kaW5nLgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgYlZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGlWYWx1ZSA9IGlIZXhDaGFyVG9JbnQoIGNIZXhEaWdpdDEgKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIGlWYWx1ZSAhPSAtMSApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVmFsdWUg
Kj0gMTY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpVmFsdWUyID0g
aUhleENoYXJUb0ludCggY0hleERpZ2l0MiApOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIGlWYWx1ZTIgIT0gLTEgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVmFs
dWUgKz0gaVZhbHVlMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBjaERlY29kZURlc3RbIGlEZXN0UG9zKysgXSA9IChjaGFyKWlWYWx1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJWYWxpZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICFiVmFsaWQgKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGNoRGVjb2RlRGVzdFsgaURlc3RQb3MrKyBdID0gJyUnOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBvcysrIF0gPSBjSGV4RGlnaXQxOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2hEZWNvZGVEZXN0WyBpRGVzdFBv
cysrIF0gPSBjSGV4RGlnaXQyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBhaGVhZAor
ICAgICAgICAgICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgcGNoRGVjb2Rl
RGVzdFsgaURlc3RQb3MrKyBdID0gcGNoRW5jb2RlZFNvdXJjZVtpXTsKKyAgICAgICAgICAgICAg
fQorICAgICAgIH0KKworICAgICAgIC8vIFdlIG1heSBub3QgaGF2ZSBleHRyYSByb29tIHRvIE5V
TEwgdGVybWluYXRlLCBzaW5jZSB0aGlzIGNhbiBiZSB1c2VkIG9uIHJhdyBkYXRhLCBidXQgaWYg
d2UgZG8KKyAgICAgICAvLyBnbyBhaGVhZCBhbmQgZG8gaXQgYXMgdGhpcyBjYW4gYXZvaWQgYnVn
cy4KKyAgICAgICBpZiAoIGlEZXN0UG9zIDwgbkRlY29kZURlc3RMZW4gKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgcGNoRGVjb2RlRGVzdFtpRGVzdFBvc10gPSAwOworICAgICAgIH0KKworICAg
ICAgIHJldHVybiAoc2l6ZV90KWlEZXN0UG9zOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisvLyBQdXJwb3NlOiBFbmNvZGVzIGEgc3RyaW5nIChvciBiaW5hcnkgZGF0YSkgZnJvbSBVUkwg
ZW5jb2RpbmcgZm9ybWF0LCBzZWUgcmZjMTczOCBzZWN0aW9uIDIuMi4gIAorLy8gICAgICAgICAg
VGhpcyB2ZXJzaW9uIG9mIHRoZSBjYWxsIGlzbid0IGEgc3RyaWN0IFJGQyBpbXBsZW1lbnRhdGlv
biwgYnV0IHVzZXMgKyBmb3Igc3BhY2UgYXMgaXMKKy8vICAgICAgICAgIHRoZSBzdGFuZGFyZCBp
biBIVE1MIGZvcm0gZW5jb2RpbmcsIGRlc3BpdGUgaXQgbm90IGJlaW5nIHBhcnQgb2YgdGhlIFJG
Qy4KKy8vCisvLyAgICAgICAgICBEZXN0IGJ1ZmZlciBzaG91bGQgYmUgYXQgbGVhc3QgYXMgbGFy
Z2UgYXMgc291cmNlIGJ1ZmZlciB0byBndWFyYW50ZWUgcm9vbSBmb3IgZGVjb2RlLgorLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1VSTEVuY29kZSggY2hhciAqcGNoRGVzdCwgaW50IG5E
ZXN0TGVuLCBjb25zdCBjaGFyICpwY2hTb3VyY2UsIGludCBuU291cmNlTGVuICkKK3sKKyAgICAg
ICByZXR1cm4gVl9VUkxFbmNvZGVJbnRlcm5hbCggcGNoRGVzdCwgbkRlc3RMZW4sIHBjaFNvdXJj
ZSwgblNvdXJjZUxlbiwgdHJ1ZSApOworfQorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8v
IFB1cnBvc2U6IERlY29kZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNv
ZGluZyBmb3JtYXQsIHNlZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCisvLyAgICAgICAgICBUaGlz
IHZlcnNpb24gb2YgdGhlIGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBi
dXQgdXNlcyArIGZvciBzcGFjZSBhcyBpcworLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhU
TUwgZm9ybSBlbmNvZGluZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgor
Ly8KKy8vICAgICAgICAgIERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBh
cyBzb3VyY2UgYnVmZmVyIHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCisvLyAgICAgICAg
ICAgICAgICAgICAgIERlc3QgYnVmZmVyIGJlaW5nIHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgYnVm
ZmVyIChkZWNvZGUgaW4tcGxhY2UpIGlzIGV4cGxpY2l0bHkgYWxsb3dlZC4KKy8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK3NpemVfdCBWX1VSTERlY29kZSggY2hhciAqcGNoRGVjb2RlRGVzdCwgaW50
IG5EZWNvZGVEZXN0TGVuLCBjb25zdCBjaGFyICpwY2hFbmNvZGVkU291cmNlLCBpbnQgbkVuY29k
ZWRTb3VyY2VMZW4gKQoreworICAgICAgIHJldHVybiBWX1VSTERlY29kZUludGVybmFsKCBwY2hE
ZWNvZGVEZXN0LCBuRGVjb2RlRGVzdExlbiwgcGNoRW5jb2RlZFNvdXJjZSwgbkVuY29kZWRTb3Vy
Y2VMZW4sIHRydWUgKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordm9pZCBWX1N0cmlw
RXh0ZW5zaW9uKCBzdGQ6OnN0cmluZyAmaW4gKQoreworICAgICAgIC8vIEZpbmQgdGhlIGxhc3Qg
ZG90LiBJZiBpdCdzIGZvbGxvd2VkIGJ5IGEgZG90IG9yIGEgc2xhc2gsIHRoZW4gaXQncyBwYXJ0
IG9mIGEgCisgICAgICAgLy8gZGlyZWN0b3J5IHNwZWNpZmllciBsaWtlIC4uLy4uL3NvbWVkaXIv
Li9ibGFoLgorICAgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgdGVzdCA9IGluLnJmaW5kKCAn
LicgKTsKKyAgICAgICBpZiAoIHRlc3QgIT0gc3RkOjpzdHJpbmc6Om5wb3MgKQorICAgICAgIHsK
KyAgICAgICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoaW5ncyBsaWtlICIuXGJsYWgiIG9yICJj
OlxteUBlbWFpbC5jb21cYWJjXGRlZlxnZWgiCisgICAgICAgICAgICAgIC8vIFdoaWNoIHdvdWxk
IG90aGVyd2lzZSB3aW5kIHVwIHdpdGggIiIgYW5kICJjOlxteUBlbWFpbCIsIHJlc3BlY3RpdmVs
eS4KKyAgICAgICAgICAgICAgaWYgKCBpbi5yZmluZCggJ1xcJyApIDwgdGVzdCAmJiBpbi5yZmlu
ZCggJy8nICkgPCB0ZXN0ICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
aW4ucmVzaXplKCB0ZXN0ICk7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9Cit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vc3RydG9vbHNfcHVi
bGljLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29tbW9uL3N0cnRvb2xzX3B1
YmxpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAwNjNlNTRhMjhjNzM0Yjc3ZjkyZjc3ODM0NmEzYTZhODVjNjRm
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3JjL3ZyY29t
bW9uL3N0cnRvb2xzX3B1YmxpYy5oCkBAIC0wLDAgKzEsMTI2IEBACisvLz09PT09PT09PSBDb3B5
cmlnaHQgVmFsdmUgQ29ycG9yYXRpb24gPT09PT09PT09PT09Ly8KKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy90eXBl
cy5oPgorCisvKiogcmV0dXJucyB0cnVlIGlmIHRoZSBzdHJpbmcgaGFzIHRoZSBwcmVmaXggKi8K
K2Jvb2wgU3RyaW5nSGFzUHJlZml4KCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0
IHN0ZDo6c3RyaW5nICYgc1ByZWZpeCApOworYm9vbCBTdHJpbmdIYXNQcmVmaXhDYXNlU2Vuc2l0
aXZlKCBjb25zdCBzdGQ6OnN0cmluZyAmIHNTdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1By
ZWZpeCApOworCisvKiogcmV0dXJucyBpZiB0aGUgc3RyaW5nIGhhcyB0aGUgc3VmZml4ICovCiti
b29sIFN0cmluZ0hhc1N1ZmZpeCggY29uc3Qgc3RkOjpzdHJpbmcgJnNTdHJpbmcsIGNvbnN0IHN0
ZDo6c3RyaW5nICZzU3VmZml4ICk7Citib29sIFN0cmluZ0hhc1N1ZmZpeENhc2VTZW5zaXRpdmUo
IGNvbnN0IHN0ZDo6c3RyaW5nICZzU3RyaW5nLCBjb25zdCBzdGQ6OnN0cmluZyAmc1N1ZmZpeCAp
OworCisvKiogY29udmVydHMgYSBVVEYtMTYgc3RyaW5nIHRvIGEgVVRGLTggc3RyaW5nICovCitz
dGQ6OnN0cmluZyBVVEYxNnRvOChjb25zdCB3Y2hhcl90ICogaW4pOworCisvKiogY29udmVydHMg
YSBVVEYtOCBzdHJpbmcgdG8gYSBVVEYtMTYgc3RyaW5nICovCitzdGQ6OndzdHJpbmcgVVRGOHRv
MTYoY29uc3QgY2hhciAqIGluKTsKKyNkZWZpbmUgVXRmMTZGcm9tVXRmOCBVVEY4dG8xNgorCisv
Kiogc2FmZWx5IGNvcHkgYSBzdHJpbmcgaW50byBhIGJ1ZmZlciAqLwordm9pZCBzdHJjcHlfc2Fm
ZSggY2hhciAqcGNoQnVmZmVyLCBzaXplX3QgdW5CdWZmZXJTaXplQnl0ZXMsIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZSApOwordGVtcGxhdGU8IHNpemVfdCBidWZmZXJTaXplID4KK3ZvaWQgc3RyY3B5
X3NhZmUoIGNoYXIgKCYgYnVmZmVyKSBbIGJ1ZmZlclNpemUgXSwgY29uc3QgY2hhciAqcGNoU291
cmNlICkgCit7CisgICAgICAgc3RyY3B5X3NhZmUoIGJ1ZmZlciwgYnVmZmVyU2l6ZSwgcGNoU291
cmNlICk7Cit9CisKKworLyoqIGNvbnZlcnRzIGEgc3RyaW5nIHRvIHVwcGVyIGNhc2UgKi8KK3N0
ZDo6c3RyaW5nIFN0cmluZ1RvVXBwZXIoIGNvbnN0IHN0ZDo6c3RyaW5nICYgc1N0cmluZyApOwor
CisvKiogY29udmVydHMgYSBzdHJpbmcgdG8gbG93ZXIgY2FzZSAqLworc3RkOjpzdHJpbmcgU3Ry
aW5nVG9Mb3dlciggY29uc3Qgc3RkOjpzdHJpbmcgJiBzU3RyaW5nICk7CisKKy8vIHdlIHN0cmlj
bXAgKGZyb20gV0lOKSBidXQgaXQgaXNuJ3QgUE9TSVggLSBPU1gvTElOVVggaGF2ZSBzdHJjYXNl
Y21wIHNvIGp1c3QgaW5saW5lIGJyaWRnZSB0byBpdAorI2lmIGRlZmluZWQoIE9TWCApIHx8IGRl
ZmluZWQoIExJTlVYICkKKyNpbmNsdWRlIDxzdHJpbmdzLmg+CitpbmxpbmUgaW50IHN0cmljbXAo
Y29uc3QgY2hhciAqcFN0cjEsIGNvbnN0IGNoYXIgKnBTdHIyKSB7IHJldHVybiBzdHJjYXNlY21w
KHBTdHIxLHBTdHIyKTsgfQorI2RlZmluZSBfc3RyaWNtcCBzdHJpY21wCitpbmxpbmUgaW50IHN0
cm5pY21wKCBjb25zdCBjaGFyICpwU3RyMSwgY29uc3QgY2hhciAqcFN0cjIsIHNpemVfdCB1bkJ1
ZmZlckxlbiApIHsgcmV0dXJuIHN0cm5jYXNlY21wKCBwU3RyMSxwU3RyMiwgdW5CdWZmZXJMZW4g
KTsgfQorI2RlZmluZSBfc3RybmljbXAgc3RybmljbXAKKworI2RlZmluZSBfdnNucHJpbnRmX3Mg
dnNucHJpbnRmCisKKyNkZWZpbmUgX1RSVU5DQVRFICgoc2l6ZV90KS0xKQorCisjZW5kaWYKKwor
I2lmIGRlZmluZWQoIE9TWCApCisvLyBiZWhhdmlvcnMgZW5zdXJlIE5VTEwtdGVybWluYXRpb24g
YXQgbGVhc3QgYXMgd2VsbCBhcyBfVFJVTkNBVEUgZG9lcywgYnV0CisvLyB3Y3NuY3B5X3Mvc3Ry
bmNweV9zIGNhbiBub24tTlVMTC10ZXJtaW5hdGUsIHdjc2xjcHkvc3RybGNweSBjYW4gbm90Lgor
aW5saW5lIGVycm5vX3Qgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJP
ZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKK3sKKyAg
ICAgICByZXR1cm4gd2NzbGNweShzdHJEZXN0LCBzdHJTb3VyY2UsIG51bWJlck9mRWxlbWVudHMp
OworfQorCitpbmxpbmUgZXJybm9fdCBzdHJuY3B5X3MoY2hhciAqc3RyRGVzdCwgc2l6ZV90IG51
bWJlck9mRWxlbWVudHMsIGNvbnN0IGNoYXIgKnN0clNvdXJjZSwgc2l6ZV90IGNvdW50KQorewor
ICAgICAgIHJldHVybiBzdHJsY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50
cyk7Cit9CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggTElOVVggKQorLy8gdGhpcyBpbXBsZW1l
bnRhdGlvbiBkb2VzIG5vdCByZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGRlc3RpbmF0aW9uIHdh
cyAKKy8vIHRydW5jYXRlZCwgYnV0IHRoYXQgaXMgc3RyYWlnaHRmb3J3YXJkIHRvIGZpeCBpZiBh
bnlib2R5IGFjdHVhbGx5IG5lZWRzIHRoZQorLy8gcmV0dXJuIGNvZGUuIAorI2luY2x1ZGUgInN0
cmluZy5oIgoraW5saW5lIHZvaWQgd2NzbmNweV9zKHdjaGFyX3QgKnN0ckRlc3QsIHNpemVfdCBu
dW1iZXJPZkVsZW1lbnRzLCBjb25zdCB3Y2hhcl90ICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkK
K3sKKyAgICAgICB3Y3NuY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7
CisgICAgICAgc3RyRGVzdFtudW1iZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKK30KKworaW5saW5l
IHZvaWQgc3RybmNweV9zKGNoYXIgKnN0ckRlc3QsIHNpemVfdCBudW1iZXJPZkVsZW1lbnRzLCBj
b25zdCBjaGFyICpzdHJTb3VyY2UsIHNpemVfdCBjb3VudCkKK3sKKyAgICAgICBzdHJuY3B5KHN0
ckRlc3QsIHN0clNvdXJjZSwgbnVtYmVyT2ZFbGVtZW50cyk7CisgICAgICAgc3RyRGVzdFtudW1i
ZXJPZkVsZW1lbnRzLTFdID0gJ1wwJzsKK30KKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfV0lO
MzIgKSAmJiBfTVNDX1ZFUiA8IDE4MDAKK2lubGluZSB1aW50NjRfdCBzdHJ0b3VsbChjb25zdCBj
aGFyICpzdHIsIGNoYXIgKiplbmRwdHIsIGludCBiYXNlKSB7IHJldHVybiBfc3RydG91aTY0KCBz
dHIsIGVuZHB0ciwgYmFzZSApOyB9CisjZW5kaWYKKworLyogSGFuZGxlcyBjb3B5aW5nIGEgc3Rk
OjpzdHJpbmcgaW50byBhIGJ1ZmZlciBhcyB3b3VsZCBiZSBwcm92aWRlZCBpbiBhbiBBUEkgKi8K
K3VpbnQzMl90IFJldHVyblN0ZFN0cmluZyggY29uc3Qgc3RkOjpzdHJpbmcgJiBzVmFsdWUsIGNo
YXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKKworLyogSGFuZGxlcyBjb3B5
aW5nIGEgYnVmZmVyIGludG8gYW4gc3RkOjpzdHJpbmcgYW5kIGF1dG8gYWRkcyBudWxsIHRlcm1p
bmF0b3IgKi8KK3ZvaWQgQnVmZmVyVG9TdGRTdHJpbmcoIHN0ZDo6c3RyaW5nICYgc0Rlc3QsIGNv
bnN0IGNoYXIgKnBjaEJ1ZmZlciwgdWludDMyX3QgdW5CdWZmZXJMZW4gKTsKKworLyoqIFJldHVy
bnMgYSBzdGQ6OnN0cmluZyBmcm9tIGEgdWludDY0X3QgKi8KK3N0ZDo6c3RyaW5nIFVpbnQ2NFRv
U3RyaW5nKCB1aW50NjRfdCB1bFZhbHVlICk7CisKKy8qKiByZXR1cm5zIGEgdWludDY0X3QgZnJv
bSBhIHN0cmluZyAqLwordWludDY0X3QgU3RyaW5nVG9VaW50NjQoIGNvbnN0IHN0ZDo6c3RyaW5n
ICYgc1ZhbHVlICk7CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IEVuY29k
ZXMgYSBzdHJpbmcgKG9yIGJpbmFyeSBkYXRhKSBmcm9tIFVSTCBlbmNvZGluZyBmb3JtYXQsIHNl
ZSByZmMxNzM4IHNlY3Rpb24gMi4yLiAgCisvLyAgICAgICAgICBUaGlzIHZlcnNpb24gb2YgdGhl
IGNhbGwgaXNuJ3QgYSBzdHJpY3QgUkZDIGltcGxlbWVudGF0aW9uLCBidXQgdXNlcyArIGZvciBz
cGFjZSBhcyBpcworLy8gICAgICAgICAgdGhlIHN0YW5kYXJkIGluIEhUTUwgZm9ybSBlbmNvZGlu
ZywgZGVzcGl0ZSBpdCBub3QgYmVpbmcgcGFydCBvZiB0aGUgUkZDLgorLy8KKy8vICAgICAgICAg
IERlc3QgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzb3VyY2UgYnVmZmVy
IHRvIGd1YXJhbnRlZSByb29tIGZvciBkZWNvZGUuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2
b2lkIFZfVVJMRW5jb2RlKCBjaGFyICpwY2hEZXN0LCBpbnQgbkRlc3RMZW4sIGNvbnN0IGNoYXIg
KnBjaFNvdXJjZSwgaW50IG5Tb3VyY2VMZW4gKTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8gUHVycG9zZTogRGVjb2RlcyBhIHN0cmluZyAob3IgYmluYXJ5IGRhdGEpIGZyb20gVVJMIGVu
Y29kaW5nIGZvcm1hdCwgc2VlIHJmYzE3Mzggc2VjdGlvbiAyLjIuICAKKy8vICAgICAgICAgIFRo
aXMgdmVyc2lvbiBvZiB0aGUgY2FsbCBpc24ndCBhIHN0cmljdCBSRkMgaW1wbGVtZW50YXRpb24s
IGJ1dCB1c2VzICsgZm9yIHNwYWNlIGFzIGlzCisvLyAgICAgICAgICB0aGUgc3RhbmRhcmQgaW4g
SFRNTCBmb3JtIGVuY29kaW5nLCBkZXNwaXRlIGl0IG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBSRkMu
CisvLworLy8gICAgICAgICAgRGVzdCBidWZmZXIgc2hvdWxkIGJlIGF0IGxlYXN0IGFzIGxhcmdl
IGFzIHNvdXJjZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJvb20gZm9yIGRlY29kZS4KKy8vICAgICAg
ICAgICAgICAgICAgICAgRGVzdCBidWZmZXIgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBi
dWZmZXIgKGRlY29kZSBpbi1wbGFjZSkgaXMgZXhwbGljaXRseSBhbGxvd2VkLgorLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorc2l6ZV90IFZfVVJMRGVjb2RlKCBjaGFyICpwY2hEZWNvZGVEZXN0LCBp
bnQgbkRlY29kZURlc3RMZW4sIGNvbnN0IGNoYXIgKnBjaEVuY29kZWRTb3VyY2UsIGludCBuRW5j
b2RlZFNvdXJjZUxlbiApOworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBz
dHJpcCBleHRlbnNpb24gZnJvbSBhIHBhdGgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZvaWQg
Vl9TdHJpcEV4dGVuc2lvbiggc3RkOjpzdHJpbmcgJmluICk7CisKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3RyeV9wdWJsaWMu
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3Ry
eV9wdWJsaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZjMwNDI0YTlmZjM2MWM4MzZmOWE0YzA4Y2ZhNjg0
NmFhZDM3YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9vcGVudnIvc3Jj
L3ZyY29tbW9uL3ZycGF0aHJlZ2lzdHJ5X3B1YmxpYy5jcHAKQEAgLTAsMCArMSw0MTEgQEAKKy8v
PT09PT09PT09IENvcHlyaWdodCBWYWx2ZSBDb3Jwb3JhdGlvbiA9PT09PT09PT09PT0vLworCisj
aW5jbHVkZSAidnJwYXRocmVnaXN0cnlfcHVibGljLmgiCisjaW5jbHVkZSAianNvbi9qc29uLmgi
CisjaW5jbHVkZSAicGF0aHRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgImVudnZhcnRvb2xzX3B1
YmxpYy5oIgorI2luY2x1ZGUgInN0cnRvb2xzX3B1YmxpYy5oIgorI2luY2x1ZGUgImRpcnRvb2xz
X3B1YmxpYy5oIgorCisjaWYgZGVmaW5lZCggV0lOMzIgKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4K
KyNpbmNsdWRlIDxzaGxvYmouaD4KKworI3VuZGVmIEdldEVudmlyb25tZW50VmFyaWFibGUKKyNl
bGlmIGRlZmluZWQgT1NYCisjaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW5j
bHVkZSA8QXBwS2l0L0FwcEtpdC5oPgorI2VsaWYgZGVmaW5lZChMSU5VWCkKKyNpbmNsdWRlIDxk
bGZjbi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKworI2lmbmRlZiBWUkxvZworICAgICAgICNpZiBkZWZpbmVkKCBfX01JTkdXMzJfXyApCisg
ICAgICAgICAgICAgICNkZWZpbmUgVlJMb2coYXJncy4uLikgICAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCBhcmdzKQorICAgICAgICNlbGlmIGRlZmluZWQoIFdJTjMyICkKKyAgICAgICAgICAg
ICAgI2RlZmluZSBWUkxvZyhmbXQsIC4uLikgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCBm
bXQsIF9fVkFfQVJHU19fKQorICAgICAgICNlbHNlCisgICAgICAgICAgICAgICNkZWZpbmUgVlJM
b2coYXJncy4uLikgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCBhcmdzKQorICAgICAgICNl
bmRpZgorI2VuZGlmCisKKy8qKiBSZXR1cm5zIHRoZSByb290IG9mIHRoZSBkaXJlY3RvcnkgdGhl
IHN5c3RlbSB3YW50cyB1cyB0byBzdG9yZSB1c2VyIGNvbmZpZyBkYXRhIGluICovCitzdGF0aWMg
c3RkOjpzdHJpbmcgR2V0QXBwU2V0dGluZ3NQYXRoKCkKK3sKKyNpZiBkZWZpbmVkKCBXSU4zMiAp
CisgICAgICAgV0NIQVIgcndjaFBhdGhbTUFYX1BBVEhdOworCisgICAgICAgaWYoICFTVUNDRUVE
RUQoIFNIR2V0Rm9sZGVyUGF0aFcoIE5VTEwsIENTSURMX0xPQ0FMX0FQUERBVEEgfCBDU0lETF9G
TEFHX0NSRUFURSwgTlVMTCwgMCwgcndjaFBhdGggKSApICkKKyAgICAgICB7CisgICAgICAgICAg
ICAgIHJldHVybiAiIjsKKyAgICAgICB9CisKKyAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXRoIHRv
IFVURi04IGFuZCBzdG9yZSBpbiB0aGUgb3V0cHV0CisgICAgICAgc3RkOjpzdHJpbmcgc1VzZXJQ
YXRoID0gVVRGMTZ0bzgoIHJ3Y2hQYXRoICk7CisKKyAgICAgICByZXR1cm4gc1VzZXJQYXRoOwor
I2VsaWYgZGVmaW5lZCggT1NYICkKKyAgICAgICBzdGQ6OnN0cmluZyBzU2V0dGluZ3NEaXI7Cisg
ICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICAgIC8vIFNlYXJjaCBmb3IgdGhl
IHBhdGgKKyAgICAgICAgICAgICAgTlNBcnJheSAqcGF0aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJl
Y3Rvcmllc0luRG9tYWlucyggTlNBcHBsaWNhdGlvblN1cHBvcnREaXJlY3RvcnksIE5TVXNlckRv
bWFpbk1hc2ssIFlFUyApOworICAgICAgICAgICAgICBpZiAoIFtwYXRocyBjb3VudF0gPT0gMCAp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgTlNTdHJpbmcgKnJlc29s
dmVkUGF0aCA9IFtwYXRocyBvYmplY3RBdEluZGV4OjBdOworICAgICAgICAgICAgICByZXNvbHZl
ZFBhdGggPSBbcmVzb2x2ZWRQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDogQCJP
cGVuVlIiXTsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIGlmICggIVtbTlNGaWxlTWFu
YWdlciBuZXddIGNyZWF0ZURpcmVjdG9yeUF0UGF0aDogcmVzb2x2ZWRQYXRoIHdpdGhJbnRlcm1l
ZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXSApCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgc1NldHRpbmdzRGlyLmFzc2lnbiggW3Jl
c29sdmVkUGF0aCBVVEY4U3RyaW5nXSApOworICAgICAgIH0KKyAgICAgICByZXR1cm4gc1NldHRp
bmdzRGlyOworI2VsaWYgZGVmaW5lZCggTElOVVggKQorCisgICAgICAgLy8gQXMgZGVmaW5lZCBi
eSBYREcgQmFzZSBEaXJlY3RvcnkgU3BlY2lmaWNhdGlvbiAKKyAgICAgICAvLyBodHRwczovL3Nw
ZWNpZmljYXRpb25zLmZyZWVkZXNrdG9wLm9yZy9iYXNlZGlyLXNwZWMvYmFzZWRpci1zcGVjLWxh
dGVzdC5odG1sCisKKyAgICAgICBjb25zdCBjaGFyICpwY2hIb21lID0gZ2V0ZW52KCJYREdfQ09O
RklHX0hPTUUiKTsKKyAgICAgICBpZiAoICggcGNoSG9tZSAhPSBOVUxMKSAmJiAoIHBjaEhvbWVb
MF0gIT0gJ1wwJyApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIHJldHVybiBwY2hIb21lOwor
ICAgICAgIH0KKworICAgICAgIC8vCisgICAgICAgLy8gWERHX0NPTkZJR19IT01FIGlzIG5vdCBk
ZWZpbmVkLCB1c2Ugfi8uY29uZmlnIGluc3RlYWQKKyAgICAgICAvLyAKKyAgICAgICBwY2hIb21l
ID0gZ2V0ZW52KCAiSE9NRSIgKTsKKyAgICAgICBpZiAoIHBjaEhvbWUgPT0gTlVMTCApCisgICAg
ICAgeworICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgfQorCisgICAgICAgc3RkOjpz
dHJpbmcgc1VzZXJQYXRoKCBwY2hIb21lICk7CisgICAgICAgc1VzZXJQYXRoID0gUGF0aF9Kb2lu
KCBzVXNlclBhdGgsICIuY29uZmlnIiApOworICAgICAgIHJldHVybiBzVXNlclBhdGg7CisjZWxz
ZQorICAgICAgICN3YXJuaW5nICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKKyNlbmRpZgorfQorCisK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ29uc3RydWN0b3IKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6Q1ZSUGF0aFJlZ2lzdHJ5X1B1
YmxpYygpCit7CisKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBDb21w
dXRlcyB0aGUgcmVnaXN0cnkgZmlsZW5hbWUKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpz
dHJpbmcgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0T3BlblZSQ29uZmlnUGF0aCgpCit7Cisg
ICAgICAgc3RkOjpzdHJpbmcgc0NvbmZpZ1BhdGggPSBHZXRBcHBTZXR0aW5nc1BhdGgoKTsKKyAg
ICAgICBpZiggc0NvbmZpZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsK
KworI2lmIGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQoIExJTlVYICkKKyAgICAgICBzQ29u
ZmlnUGF0aCA9IFBhdGhfSm9pbiggc0NvbmZpZ1BhdGgsICJvcGVudnIiICk7CisjZWxpZiBkZWZp
bmVkICggT1NYICkgCisgICAgICAgc0NvbmZpZ1BhdGggPSBQYXRoX0pvaW4oIHNDb25maWdQYXRo
LCAiLm9wZW52ciIgKTsKKyNlbHNlCisgICAgICAgI3dhcm5pbmcgIlVuc3VwcG9ydGVkIHBsYXRm
b3JtIgorI2VuZGlmCisgICAgICAgc0NvbmZpZ1BhdGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNDb25m
aWdQYXRoICk7CisgICAgICAgcmV0dXJuIHNDb25maWdQYXRoOworfQorCisKKworLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZToKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0ZDo6
c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldFZSUGF0aFJlZ2lzdHJ5RmlsZW5hbWUo
KQoreworICAgICAgIHN0ZDo6c3RyaW5nIHNQYXRoID0gR2V0T3BlblZSQ29uZmlnUGF0aCgpOwor
ICAgICAgIGlmICggc1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVybiAiIjsKKwor
I2lmIGRlZmluZWQoIF9XSU4zMiApCisgICAgICAgc1BhdGggPSBQYXRoX0pvaW4oIHNQYXRoLCAi
b3BlbnZycGF0aHMudnJwYXRoIiApOworI2VsaWYgZGVmaW5lZCAoIFBPU0lYICkgCisgICAgICAg
c1BhdGggPSBQYXRoX0pvaW4oIHNQYXRoLCAib3BlbnZycGF0aHMudnJwYXRoIiApOworI2Vsc2UK
KyAgICAgICAjZXJyb3IgIlVuc3VwcG9ydGVkIHBsYXRmb3JtIgorI2VuZGlmCisgICAgICAgc1Bh
dGggPSBQYXRoX0ZpeFNsYXNoZXMoIHNQYXRoICk7CisgICAgICAgcmV0dXJuIHNQYXRoOworfQor
CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHVycG9zZTogQ29udmVydHMgSlNPTiB0byBh
IGhpc3RvcnkgYXJyYXkKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RhdGljIHZvaWQgUGFyc2VT
dHJpbmdMaXN0RnJvbUpzb24oIHN0ZDo6dmVjdG9yPCBzdGQ6OnN0cmluZyA+ICpwdmVjSGlzdG9y
eSwgY29uc3QgSnNvbjo6VmFsdWUgJiByb290LCBjb25zdCBjaGFyICpwY2hBcnJheU5hbWUgKQor
eworICAgICAgIGlmKCAhcm9vdC5pc01lbWJlciggcGNoQXJyYXlOYW1lICkgKQorICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICBjb25zdCBKc29uOjpWYWx1ZSAmIGFycmF5Tm9kZSA9IHJv
b3RbIHBjaEFycmF5TmFtZSBdOworICAgICAgIGlmKCAhYXJyYXlOb2RlICkKKyAgICAgICB7Cisg
ICAgICAgICAgICAgIFZSTG9nKCAiVlIgUGF0aCBSZWdpc3RyeSBub2RlICVzIGlzIG5vdCBhbiBh
cnJheVxuIiwgcGNoQXJyYXlOYW1lICk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9
CisKKyAgICAgICBwdmVjSGlzdG9yeS0+Y2xlYXIoKTsKKyAgICAgICBwdmVjSGlzdG9yeS0+cmVz
ZXJ2ZSggYXJyYXlOb2RlLnNpemUoKSApOworICAgICAgIGZvciggdWludDMyX3QgdW5JbmRleCA9
IDA7IHVuSW5kZXggPCBhcnJheU5vZGUuc2l6ZSgpOyB1bkluZGV4KysgKQorICAgICAgIHsKKyAg
ICAgICAgICAgICAgc3RkOjpzdHJpbmcgc1BhdGgoIGFycmF5Tm9kZVsgdW5JbmRleCBdLmFzU3Ry
aW5nKCkgKTsKKyAgICAgICAgICAgICAgcHZlY0hpc3RvcnktPnB1c2hfYmFjayggc1BhdGggKTsK
KyAgICAgICB9Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBDb252
ZXJ0cyBhIGhpc3RvcnkgYXJyYXkgdG8gSlNPTgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdGF0
aWMgdm9pZCBTdHJpbmdMaXN0VG9Kc29uKCBjb25zdCBzdGQ6OnZlY3Rvcjwgc3RkOjpzdHJpbmcg
PiAmIHZlY0hpc3RvcnksIEpzb246OlZhbHVlICYgcm9vdCwgY29uc3QgY2hhciAqcGNoQXJyYXlO
YW1lICkKK3sKKyAgICAgICBKc29uOjpWYWx1ZSAmIGFycmF5Tm9kZSA9IHJvb3RbIHBjaEFycmF5
TmFtZSBdOworICAgICAgIGZvciggYXV0byBpID0gdmVjSGlzdG9yeS5iZWdpbigpOyBpICE9IHZl
Y0hpc3RvcnkuZW5kKCk7IGkrKyApCisgICAgICAgeworICAgICAgICAgICAgICBhcnJheU5vZGUu
YXBwZW5kKCAqaSApOworICAgICAgIH0KK30KKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisv
LyBQdXJwb3NlOgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlf
UHVibGljOjpUb0pzb25TdHJpbmcoIHN0ZDo6c3RyaW5nICZzSnNvblN0cmluZyApCit7CisgICAg
ICAgc3RkOjpzdHJpbmcgc1JlZ1BhdGggPSBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7Cisg
ICAgICAgaWYoIHNSZWdQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgCisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ2lzdHJ5Q29udGVudHMgPSBQYXRoX1Jl
YWRUZXh0RmlsZSggc1JlZ1BhdGggKTsKKyAgICAgICBpZiggc1JlZ2lzdHJ5Q29udGVudHMuZW1w
dHkoKSApCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgIHNKc29uU3RyaW5n
ID0gc1JlZ2lzdHJ5Q29udGVudHM7CisKKyAgICAgICByZXR1cm4gdHJ1ZTsKK30KKworCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IExvYWRzIHRoZSBjb25maWcgZmlsZSBmcm9t
IGl0cyB3ZWxsIGtub3duIGxvY2F0aW9uCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jvb2wgQ1ZS
UGF0aFJlZ2lzdHJ5X1B1YmxpYzo6QkxvYWRGcm9tRmlsZSgpCit7CisgICAgICAgc3RkOjpzdHJp
bmcgc1JlZ1BhdGggPSBHZXRWUlBhdGhSZWdpc3RyeUZpbGVuYW1lKCk7CisgICAgICAgaWYoIHNS
ZWdQYXRoLmVtcHR5KCkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2coICJVbmFibGUg
dG8gZGV0ZXJtaW5lIFZSIFBhdGggUmVnaXN0cnkgZmlsZW5hbWVcbiIgKTsKKyAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHN0ZDo6c3RyaW5nIHNSZWdpc3Ry
eUNvbnRlbnRzID0gUGF0aF9SZWFkVGV4dEZpbGUoIHNSZWdQYXRoICk7CisgICAgICAgaWYoIHNS
ZWdpc3RyeUNvbnRlbnRzLmVtcHR5KCkgKQorICAgICAgIHsKKyAgICAgICAgICAgICAgVlJMb2co
ICJVbmFibGUgdG8gcmVhZCBWUiBQYXRoIFJlZ2lzdHJ5IGZyb20gJXNcbiIsIHNSZWdQYXRoLmNf
c3RyKCkgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAg
IEpzb246OlZhbHVlIHJvb3Q7CisgICAgICAgSnNvbjo6UmVhZGVyIHJlYWRlcjsKKworICAgICAg
IGlmKCAhcmVhZGVyLnBhcnNlKCBzUmVnaXN0cnlDb250ZW50cywgcm9vdCApICkKKyAgICAgICB7
CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxlIHRvIHBhcnNlICVzOiAlc1xuIiwgc1JlZ1Bh
dGguY19zdHIoKSwgcmVhZGVyLmdldEZvcm1hdHRlZEVycm9yTWVzc2FnZXMoKS5jX3N0cigpICk7
CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAgICBQYXJzZVN0
cmluZ0xpc3RGcm9tSnNvbiggJm1fdmVjUnVudGltZVBhdGgsIHJvb3QsICJydW50aW1lIiApOwor
ICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNDb25maWdQYXRoLCByb290LCAi
Y29uZmlnIiApOworICAgICAgIFBhcnNlU3RyaW5nTGlzdEZyb21Kc29uKCAmbV92ZWNMb2dQYXRo
LCByb290LCAibG9nIiApOworICAgICAgIGlmIChyb290LmlzTWVtYmVyKCAiZXh0ZXJuYWxfZHJp
dmVycyIgKSAmJiByb290WyAiZXh0ZXJuYWxfZHJpdmVycyIgXS5pc0FycmF5KCkgKQorICAgICAg
IHsKKyAgICAgICAgICAgICAgUGFyc2VTdHJpbmdMaXN0RnJvbUpzb24oICZtX3ZlY0V4dGVybmFs
RHJpdmVycywgcm9vdCwgImV4dGVybmFsX2RyaXZlcnMiICk7CisgICAgICAgfQorCisgICAgICAg
cmV0dXJuIHRydWU7Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBT
YXZlcyB0aGUgY29uZmlnIGZpbGUgdG8gaXRzIHdlbGwga25vd24gbG9jYXRpb24KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorYm9vbCBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpCU2F2ZVRvRmlsZSgp
IGNvbnN0Cit7CisjaWYgZGVmaW5lZCggREFTSEJPQVJEX0JVSUxEX01PREUgKQorICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbHNlCisgICAgICAgc3RkOjpzdHJpbmcgc1JlZ1BhdGggPSBHZXRWUlBh
dGhSZWdpc3RyeUZpbGVuYW1lKCk7CisgICAgICAgaWYoIHNSZWdQYXRoLmVtcHR5KCkgKQorICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgCisgICAgICAgSnNvbjo6VmFsdWUgcm9v
dDsKKyAgICAgICAKKyAgICAgICByb290WyAidmVyc2lvbiIgXSA9IDE7CisgICAgICAgcm9vdFsg
Impzb25pZCIgXSA9ICJ2cnBhdGhyZWciOworCisgICAgICAgU3RyaW5nTGlzdFRvSnNvbiggbV92
ZWNSdW50aW1lUGF0aCwgcm9vdCwgInJ1bnRpbWUiICk7CisgICAgICAgU3RyaW5nTGlzdFRvSnNv
biggbV92ZWNDb25maWdQYXRoLCByb290LCAiY29uZmlnIiApOworICAgICAgIFN0cmluZ0xpc3RU
b0pzb24oIG1fdmVjTG9nUGF0aCwgcm9vdCwgImxvZyIgKTsKKyAgICAgICBTdHJpbmdMaXN0VG9K
c29uKCBtX3ZlY0V4dGVybmFsRHJpdmVycywgcm9vdCwgImV4dGVybmFsX2RyaXZlcnMiICk7CisK
KyAgICAgICBKc29uOjpTdHlsZWRXcml0ZXIgd3JpdGVyOworICAgICAgIHN0ZDo6c3RyaW5nIHNS
ZWdpc3RyeUNvbnRlbnRzID0gd3JpdGVyLndyaXRlKCByb290ICk7CisKKyAgICAgICAvLyBtYWtl
IHN1cmUgdGhlIGRpcmVjdG9yeSB3ZSdyZSB3cml0aW5nIGludG8gYWN0dWFsbHkgZXhpc3RzCisg
ICAgICAgc3RkOjpzdHJpbmcgc1JlZ0RpcmVjdG9yeSA9IFBhdGhfU3RyaXBGaWxlbmFtZSggc1Jl
Z1BhdGggKTsKKyAgICAgICBpZiggIUJDcmVhdGVEaXJlY3RvcnlSZWN1cnNpdmUoIHNSZWdEaXJl
Y3RvcnkuY19zdHIoKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxl
IHRvIGNyZWF0ZSBwYXRoIHJlZ2lzdHJ5IGRpcmVjdG9yeSAlc1xuIiwgc1JlZ0RpcmVjdG9yeS5j
X3N0cigpICk7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisKKyAgICAg
ICBpZiggIVBhdGhfV3JpdGVTdHJpbmdUb1RleHRGaWxlKCBzUmVnUGF0aCwgc1JlZ2lzdHJ5Q29u
dGVudHMuY19zdHIoKSApICkKKyAgICAgICB7CisgICAgICAgICAgICAgIFZSTG9nKCAiVW5hYmxl
IHRvIHdyaXRlIFZSIHBhdGggcmVnaXN0cnkgdG8gJXNcbiIsIHNSZWdQYXRoLmNfc3RyKCkgKTsK
KyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKworICAgICAgIHJldHVybiB0
cnVlOworI2VuZGlmCit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBS
ZXR1cm5zIHRoZSBjdXJyZW50IHJ1bnRpbWUgcGF0aCBvciBOVUxMIGlmIG5vIHBhdGggaXMgY29u
ZmlndXJlZC4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RkOjpzdHJpbmcgQ1ZSUGF0aFJlZ2lz
dHJ5X1B1YmxpYzo6R2V0UnVudGltZVBhdGgoKSBjb25zdAoreworICAgICAgIGlmKCBtX3ZlY1J1
bnRpbWVQYXRoLmVtcHR5KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxz
ZQorICAgICAgICAgICAgICByZXR1cm4gbV92ZWNSdW50aW1lUGF0aC5mcm9udCgpLmNfc3RyKCk7
Cit9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3NlOiBSZXR1cm5zIHRoZSBj
dXJyZW50IGNvbmZpZyBwYXRoIG9yIE5VTEwgaWYgbm8gcGF0aCBpcyBjb25maWd1cmVkLgorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitzdGQ6OnN0cmluZyBDVlJQYXRoUmVnaXN0cnlfUHVibGljOjpH
ZXRDb25maWdQYXRoKCkgY29uc3QKK3sKKyAgICAgICBpZiggbV92ZWNDb25maWdQYXRoLmVtcHR5
KCkgKQorICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgZWxzZQorICAgICAgICAgICAg
ICByZXR1cm4gbV92ZWNDb25maWdQYXRoLmZyb250KCkuY19zdHIoKTsKK30KKworCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKy8vIFB1cnBvc2U6IFJldHVybnMgdGhlIGN1cnJlbnQgbG9nIHBhdGgg
b3IgTlVMTCBpZiBubyBwYXRoIGlzIGNvbmZpZ3VyZWQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K3N0ZDo6c3RyaW5nIENWUlBhdGhSZWdpc3RyeV9QdWJsaWM6OkdldExvZ1BhdGgoKSBjb25zdAor
eworICAgICAgIGlmKCBtX3ZlY0xvZ1BhdGguZW1wdHkoKSApCisgICAgICAgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiBtX3ZlY0xvZ1BhdGguZnJv
bnQoKS5jX3N0cigpOworfQorCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdXJwb3Nl
OiBSZXR1cm5zIHBhdGhzIHVzaW5nIHRoZSBwYXRoIHJlZ2lzdHJ5IGFuZCB0aGUgcHJvdmlkZWQg
b3ZlcnJpZGUgCisvLyAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy4gUGFzcyBOVUxMIGZvciBh
bnkgcGF0aHMgeW91IGRvbid0IGNhcmUgYWJvdXQuCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Jv
b2wgQ1ZSUGF0aFJlZ2lzdHJ5X1B1YmxpYzo6R2V0UGF0aHMoIHN0ZDo6c3RyaW5nICpwc1J1bnRp
bWVQYXRoLCBzdGQ6OnN0cmluZyAqcHNDb25maWdQYXRoLCBzdGQ6OnN0cmluZyAqcHNMb2dQYXRo
LCBjb25zdCBjaGFyICpwY2hDb25maWdQYXRoT3ZlcnJpZGUsIGNvbnN0IGNoYXIgKnBjaExvZ1Bh
dGhPdmVycmlkZSwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICpwdmVjRXh0ZXJuYWxEcml2ZXJz
ICkKK3sKKyAgICAgICBDVlJQYXRoUmVnaXN0cnlfUHVibGljIHBhdGhSZWc7CisgICAgICAgYm9v
bCBiTG9hZGVkUmVnaXN0cnkgPSBwYXRoUmVnLkJMb2FkRnJvbUZpbGUoKTsKKyAgICAgICBpbnQg
bkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMgPSAwOworCisgICAgICAgaWYoIHBzUnVudGltZVBh
dGggKQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxl
KCBrX3BjaFJ1bnRpbWVPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNSdW50aW1lUGF0aCA9IEdldEVudmlyb25tZW50
VmFyaWFibGUoIGtfcGNoUnVudGltZU92ZXJyaWRlVmFyICk7CisgICAgICAgICAgICAgICAgICAg
ICBuQ291bnRFbnZpcm9ubWVudFZhcmlhYmxlcysrOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldFJ1bnRpbWVQYXRoKCkuZW1wdHkoKSApCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICpwc1J1bnRpbWVQYXRoID0gcGF0aFJl
Zy5HZXRSdW50aW1lUGF0aCgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzUnVudGltZVBhdGggPSAi
IjsKKyAgICAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGlmKCBwc0NvbmZpZ1BhdGgg
KQorICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKCBHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCBr
X3BjaENvbmZpZ092ZXJyaWRlVmFyICkubGVuZ3RoKCkgIT0gMCApCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBHZXRFbnZpcm9ubWVudFZhcmlh
YmxlKCBrX3BjaENvbmZpZ092ZXJyaWRlVmFyICk7CisgICAgICAgICAgICAgICAgICAgICBuQ291
bnRFbnZpcm9ubWVudFZhcmlhYmxlcysrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGVsc2UgaWYoIHBjaENvbmZpZ1BhdGhPdmVycmlkZSApCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICpwc0NvbmZpZ1BhdGggPSBwY2hDb25maWdQYXRoT3ZlcnJpZGU7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiggIXBhdGhSZWcuR2V0Q29uZmln
UGF0aCgpLmVtcHR5KCkgKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAq
cHNDb25maWdQYXRoID0gcGF0aFJlZy5HZXRDb25maWdQYXRoKCk7CisgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICAqcHNDb25maWdQYXRoID0gIiI7CisgICAgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAg
ICBpZiggcHNMb2dQYXRoICkKKyAgICAgICB7CisgICAgICAgICAgICAgIGlmICggR2V0RW52aXJv
bm1lbnRWYXJpYWJsZSgga19wY2hMb2dPdmVycmlkZVZhciApLmxlbmd0aCgpICE9IDAgKQorICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gR2V0RW52aXJv
bm1lbnRWYXJpYWJsZSgga19wY2hMb2dPdmVycmlkZVZhciApOworICAgICAgICAgICAgICAgICAg
ICAgbkNvdW50RW52aXJvbm1lbnRWYXJpYWJsZXMrKzsKKyAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICBlbHNlIGlmKCBwY2hMb2dQYXRoT3ZlcnJpZGUgKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAqcHNMb2dQYXRoID0gcGNoTG9nUGF0aE92ZXJyaWRlOworICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYoICFwYXRoUmVnLkdldExvZ1BhdGgo
KS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzTG9n
UGF0aCA9IHBhdGhSZWcuR2V0TG9nUGF0aCgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKnBzTG9nUGF0
aCA9ICIiOworICAgICAgICAgICAgICB9CisgICAgICAgfQorCisgICAgICAgaWYgKCBwdmVjRXh0
ZXJuYWxEcml2ZXJzICkKKyAgICAgICB7CisgICAgICAgICAgICAgICpwdmVjRXh0ZXJuYWxEcml2
ZXJzID0gcGF0aFJlZy5tX3ZlY0V4dGVybmFsRHJpdmVyczsKKyAgICAgICB9CisKKyAgICAgICBp
ZiAoIG5Db3VudEVudmlyb25tZW50VmFyaWFibGVzID09IDMgKQorICAgICAgIHsKKyAgICAgICAg
ICAgICAgLy8gYWxsIHRocmVlIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aGVyZSBzZXQsIHNvIHdl
IGRvbid0IG5lZWQgdGhlIHBoeXNpY2FsIGZpbGUKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgfQorCisgICAgICAgcmV0dXJuIGJMb2FkZWRSZWdpc3RyeTsKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvb3BlbnZyL3NyYy92cmNvbW1vbi92cnBhdGhyZWdpc3Ry
eV9wdWJsaWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52ci9zcmMvdnJjb21tb24vdnJwYXRo
cmVnaXN0cnlfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYwZGU1NmY5ZGY0MGFjNTU5Yzg2MWJlNWE0
NTFhYjZkYjBjMDkwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L29wZW52
ci9zcmMvdnJjb21tb24vdnJwYXRocmVnaXN0cnlfcHVibGljLmgKQEAgLTAsMCArMSw0NSBAQAor
Ly89PT09PT09PT0gQ29weXJpZ2h0IFZhbHZlIENvcnBvcmF0aW9uID09PT09PT09PT09PS8vCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5j
bHVkZSA8c3RkaW50Lmg+CisKK3N0YXRpYyBjb25zdCBjaGFyICprX3BjaFJ1bnRpbWVPdmVycmlk
ZVZhciA9ICJWUl9PVkVSUklERSI7CitzdGF0aWMgY29uc3QgY2hhciAqa19wY2hDb25maWdPdmVy
cmlkZVZhciA9ICJWUl9DT05GSUdfUEFUSCI7CitzdGF0aWMgY29uc3QgY2hhciAqa19wY2hMb2dP
dmVycmlkZVZhciA9ICJWUl9MT0dfUEFUSCI7CisKK2NsYXNzIENWUlBhdGhSZWdpc3RyeV9QdWJs
aWMKK3sKK3B1YmxpYzoKKyAgICAgICBzdGF0aWMgc3RkOjpzdHJpbmcgR2V0VlJQYXRoUmVnaXN0
cnlGaWxlbmFtZSgpOworICAgICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBHZXRPcGVuVlJDb25maWdQ
YXRoKCk7CisKK3B1YmxpYzoKKyAgICAgICBDVlJQYXRoUmVnaXN0cnlfUHVibGljKCk7CisKKyAg
ICAgICAvKiogUmV0dXJucyBwYXRocyB1c2luZyB0aGUgcGF0aCByZWdpc3RyeSBhbmQgdGhlIHBy
b3ZpZGVkIG92ZXJyaWRlIHZhbHVlcy4gUGFzcyBOVUxMIGZvciBhbnkgcGF0aHMgeW91IGRvbid0
IGNhcmUgYWJvdXQuIAorICAgICAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcGF0aCByZWdpc3Ry
eSBjb3VsZCBub3QgYmUgcmVhZC4gVmFsaWQgcGF0aHMgbWlnaHQgc3RpbGwgYmUgcmV0dXJuZWQg
YmFzZWQgb24gZW52aXJvbm1lbnQgdmFyaWFibGVzLiAqLworICAgICAgIHN0YXRpYyBib29sIEdl
dFBhdGhzKCBzdGQ6OnN0cmluZyAqcHNSdW50aW1lUGF0aCwgc3RkOjpzdHJpbmcgKnBzQ29uZmln
UGF0aCwgc3RkOjpzdHJpbmcgKnBzTG9nUGF0aCwgY29uc3QgY2hhciAqcGNoQ29uZmlnUGF0aE92
ZXJyaWRlLCBjb25zdCBjaGFyICpwY2hMb2dQYXRoT3ZlcnJpZGUsIHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPiAqcHZlY0V4dGVybmFsRHJpdmVycyA9IE5VTEwgKTsKKworICAgICAgIGJvb2wgQkxv
YWRGcm9tRmlsZSgpOworICAgICAgIGJvb2wgQlNhdmVUb0ZpbGUoKSBjb25zdDsKKworICAgICAg
IGJvb2wgVG9Kc29uU3RyaW5nKCBzdGQ6OnN0cmluZyAmc0pzb25TdHJpbmcgKTsKKworICAgICAg
IC8vIG1ldGhvZHMgdG8gZ2V0IHRoZSBjdXJyZW50IHZhbHVlcworICAgICAgIHN0ZDo6c3RyaW5n
IEdldFJ1bnRpbWVQYXRoKCkgY29uc3Q7CisgICAgICAgc3RkOjpzdHJpbmcgR2V0Q29uZmlnUGF0
aCgpIGNvbnN0OworICAgICAgIHN0ZDo6c3RyaW5nIEdldExvZ1BhdGgoKSBjb25zdDsKKworcHJv
dGVjdGVkOgorICAgICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8IHN0ZDo6c3RyaW5nID4gU3RyaW5n
VmVjdG9yX3Q7CisKKyAgICAgICAvLyBpbmRleCAwIGlzIHRoZSBjdXJyZW50IHNldHRpbmcKKyAg
ICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY1J1bnRpbWVQYXRoOworICAgICAgIFN0cmluZ1ZlY3Rv
cl90IG1fdmVjTG9nUGF0aDsKKyAgICAgICBTdHJpbmdWZWN0b3JfdCBtX3ZlY0NvbmZpZ1BhdGg7
CisKKyAgICAgICAvLyBmdWxsIGxpc3Qgb2YgZXh0ZXJuYWwgZHJpdmVycworICAgICAgIFN0cmlu
Z1ZlY3Rvcl90IG1fdmVjRXh0ZXJuYWxEcml2ZXJzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggZDU5MzQ1YTM5ODJmMWY5NjJhMzY1N2EyNDhlYTczOGNhYzE2OGUwMC4uMTM4NjA4YmE0ZGFl
ZDk3NTY1ZTRhZGUxYjViZTA5NGYxN2M4N2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1
MjcsNiArMTUyNywxMSBAQCBpZiAoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykKICAgICAp
CiBlbmRpZiAoKQogCitpZiAoVVNFX09QRU5WUikKKyAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTICIke1RISVJEUEFSVFlfRElSfS9vcGVudnIvaGVhZGVycyIpCisgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTIG9wZW52cl9hcGkpCitlbmRpZiAoKQorCiBpZiAo
VVNFX1dPRkYyKQogICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgIiR7
V09GRjJERUNfSU5DTFVERV9ESVJTfSIpCiAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVT
ICIke1dPRkYyREVDX0xJQlJBUklFU30iKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IGMzNzJiM2FlYjhiNWU5ZGQ2ZjVj
ZTIxYjM0YTA4YzYzYTVhY2ViYzcuLjc4ZWUwMjhlODI3ODFiZWUxNDk3NWI4MWE4YjM1YWYyMWQ0
NjhhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRTZXR0aW5ncy5jcHAKQEAgLTE1OCw2ICsxNTgsNyBAQCBlbnVtIHsKICNpZiBQTEFURk9STShH
VEspCiAgICAgUFJPUF9IQVJEV0FSRV9BQ0NFTEVSQVRJT05fUE9MSUNZLAogI2VuZGlmCisgICAg
UFJPUF9FTkFCTEVfV0VCVlIsCiB9OwogCiBzdGF0aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0Rpc3Bv
c2UoR09iamVjdCogb2JqZWN0KQpAQCAtMzYzLDYgKzM2NCw5IEBAIHN0YXRpYyB2b2lkIHdlYktp
dFNldHRpbmdzU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0
IEdWYWx1CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfaGFyZHdhcmVfYWNjZWxlcmF0aW9u
X3BvbGljeShzZXR0aW5ncywgc3RhdGljX2Nhc3Q8V2ViS2l0SGFyZHdhcmVBY2NlbGVyYXRpb25Q
b2xpY3k+KGdfdmFsdWVfZ2V0X2VudW0odmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlm
CisgICAgY2FzZSBQUk9QX0VOQUJMRV9XRUJWUjoKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3Nl
dF9lbmFibGVfd2VidnIoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAgICAgICBicmVhazsK
QEAgLTUzNCw2ICs1MzgsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0dldFByb3BlcnR5
KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbAogICAgICAgICBnX3Zh
bHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2hhcmR3YXJlX2FjY2VsZXJh
dGlvbl9wb2xpY3koc2V0dGluZ3MpKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyAgICBjYXNl
IFBST1BfRU5BQkxFX1dFQlZSOgorICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3
ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV93ZWJ2cihzZXR0aW5ncykpOworICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTM3Nyw2
ICsxMzg0LDE5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktp
dFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgV0VCS0lUX0hBUkRXQVJFX0FDQ0VM
RVJBVElPTl9QT0xJQ1lfT05fREVNQU5ELAogICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0
UGFyYW1GbGFncykpOwogI2VuZGlmIC8vIFBMQVRGT1RNKEdUSykKKworICAgIC8qKgorICAgICog
V2ViS2l0U2V0dGluZ3M6ZW5hYmxlLXdlYnZyOgorICAgICoKKyAgICAqIEVuYWJsZSBvciBkaXNh
YmxlIHN1cHBvcnQgZm9yIFdlYlZSIG9uIHBhZ2VzLgorICAgICovCisgICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1BfRU5BQkxFX1dF
QlZSLAorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLXdlYnZyIiwKKyAgICAg
ICAgICAgIF8oIkVuYWJsZSBXZWJWUiIpLAorICAgICAgICAgICAgXygiV2hldGhlciBXZWJWUiBj
b250ZW50IHNob3VsZCBiZSByZW5kZXJlZCIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CiB9CiAKIFdlYlByZWZlcmVuY2Vz
KiB3ZWJraXRTZXR0aW5nc0dldFByZWZlcmVuY2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykK
QEAgLTM0MDIsMyArMzQyMiwzOCBAQCBndWludDMyIHdlYmtpdF9zZXR0aW5nc19mb250X3NpemVf
dG9fcGl4ZWxzKGd1aW50MzIgcG9pbnRzKQogICAgIHJldHVybiBzdGQ6OnJvdW5kKHBvaW50cyAq
IFdlYkNvcmU6OnNjcmVlbkRQSSgpIC8gNzIpOwogfQogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykK
KworLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV93ZWJ2cjoKKyAqIEBzZXR0aW5n
czogYSAjV2ViS2l0U2V0dGluZ3MKKyAqCisgKiBHZXQgdGhlICNXZWJLaXRTZXR0aW5nczplbmFi
bGUtd2VidnIgcHJvcGVydHkuCisgKgorICogUmV0dXJuczogJVRSVUUgSWYgV2VidnIgc3VwcG9y
dCBpcyBlbmFibGVkIG9yICVGQUxTRSBvdGhlcndpc2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9z
ZXR0aW5nc19nZXRfZW5hYmxlX3dlYnZyKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCBGQUxT
RSk7CisKKyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT53ZWJWUkVuYWJs
ZWQoKTsKK30KKworLyoqCisgKiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV93ZWJ2cjoKKyAq
IEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKKyAqIEBlbmFibGVkOiBWYWx1ZSB0byBiZSBz
ZXQKKyAqCisgKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczplbmFibGUtd2VidnIgcHJvcGVydHku
CisgKi8KK3ZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfd2VidnIoV2ViS2l0U2V0dGlu
Z3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbmFibGVkKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYt
PnByZWZlcmVuY2VzLT53ZWJWUkVuYWJsZWQoKTsKKyAgICBpZiAoY3VycmVudFZhbHVlID09IGVu
YWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRXZWJW
UkVuYWJsZWQoZW5hYmxlZCk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdz
KSwgImVuYWJsZS13ZWJ2ciIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IGE3NDlkNDA2YzVmY2M0NDA0MjY1ZjMwZDJiMjlm
YmNjZGQzZWRkYjEuLjc1ZjhlYzVkZTM0MjRhYTdiZDMxNjFiYzRkNWEyMjYyZjhmMjEzNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgK
QEAgLTQ2NCw2ICs0NjQsMTMgQEAgd2Via2l0X3NldHRpbmdzX2ZvbnRfc2l6ZV90b19wb2ludHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGd1aW50MzIgcGl4ZWxzKTsKIFdFQktJVF9BUEkg
Z3VpbnQzMgogd2Via2l0X3NldHRpbmdzX2ZvbnRfc2l6ZV90b19waXhlbHMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGd1aW50MzIgcG9pbnRzKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfd2VidnIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3NldHRpbmdzX3NldF9lbmFibGVfd2VidnIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5h
YmxlZCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRTZXR0aW5nc19oICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAyMDg5NmYzYjYwZjY3ODdjYjc3OGRl
MTQ5MTRjMjRkMWNmM2E2ZDk0Li5mZDQxYTE4YWE3ODAxOTFkNjdiYjJmMzM2NTAzMWFkYmY4NGQx
OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTQ3Myw2ICs0NzMsOCBA
QCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2hhcmR3YXJlX2FjY2VsZXJhdGlvbl9wb2xpY3kKIHdlYmtp
dF9zZXR0aW5nc19zZXRfaGFyZHdhcmVfYWNjZWxlcmF0aW9uX3BvbGljeQogd2Via2l0X3NldHRp
bmdzX2ZvbnRfc2l6ZV90b19wb2ludHMKIHdlYmtpdF9zZXR0aW5nc19mb250X3NpemVfdG9fcGl4
ZWxzCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV93ZWJ2cgord2Via2l0X3NldHRpbmdzX3Nl
dF9lbmFibGVfd2VidnIKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRTZXR0aW5nc0Ns
YXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDU5YzYxMGE3YTFmNDYwOWUzYzc3NWUyNzYwNmQw
ZGRmYjFiMTNiODYuLjkxYzQ1ZjlkMjU3ZGUyZGM2NmNmMzU5ZDZhYmUwOTFjMWUzYTI5ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0zNDAsNiArMzQwLDggQEAgaWYgKFVTRV9MSUJIWVBIRU4p
CiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9P
UEVOVlIgVFJVRSkKKwogaWYgKFVTRV9VUE9XRVIpCiAgICAgZmluZF9wYWNrYWdlKFVQb3dlckdM
aWIpCiAgICAgaWYgKE5PVCBVUE9XRVJHTElCX0ZPVU5EKQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRl
eCA0MjkyOWNlZDdkNjAwYzIwMDdkNzI4OWNlYjM1NDQyMjZjNDFhODU3Li43ZjRmN2RmZmViZTdk
NGVjODlkNTc0MmZiMmY1OGU4YjE0N2Q5MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtMTA1
LDYgKzEwNSw4IEBAIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9USUxFRF9CQUNLSU5HX1NU
T1JFIFRSVUUpCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJ
Q1MgVFJVRSkKIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElD
U19USFJFQURFRCBUUlVFKQogCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BFTlZSIFRS
VUUpCisKIHNldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dQRV9ESVIgJHtGT1JX
QVJESU5HX0hFQURFUlNfRElSfS93cGUpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dQRV9FWFRF
TlNJT05fRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vd3BlLXdlYmV4dGVuc2lvbikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZGNmZDVi
YzMxNGFkY2VhYjQ1ZTQ1NGM5Mzg3MzU2YjliMzZiZTA0Li43YTJjNWU4MWY4YTg4NWVjNjM3MWFk
NDAzYjIxYWMyNmZiNjc1MzhiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQgT3BlblZS
IHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
OiBBZGRlZCBvcGVudnIgdG8gdGhlIGxpc3Qgb2YgdGhpcmQgcGFydHkgbGlicmFyaWVzCisgICAg
ICAgIHdpdGggcmVkdWNlZCBzdHlsZSBjaGVja3MuCisKIDIwMTgtMDEtMTggIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gU3BlY2lmeSAtW05T
VVJMIF90aXRsZV0gZm9yIHRoZSBhc3NvY2lhdGVkIFVSTCB3aGVuIGNvcHlpbmcgYW4gaW1hZ2Ug
ZWxlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYyBiL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9tYWluLmMKaW5kZXggYzViOGE0ZTg5ZmE0ZDcxMDU0NTY5NTFkZGQ3
YzBjM2ZjYzc2NTFmNi4uMzQ2YTM3NzY1YTVhNTZiOTk0MWJkZmYxYTJiYmQwYTg4ZTMzMDQ5MiAx
MDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYworKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9ndGsvbWFpbi5jCkBAIC00ODksNiArNDg5LDcgQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIgKmFyZ3ZbXSkKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9kZXZlbG9wZXJf
ZXh0cmFzKHdlYmtpdFNldHRpbmdzLCBUUlVFKTsKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV93ZWJnbCh3ZWJraXRTZXR0aW5ncywgVFJVRSk7CiAgICAgd2Via2l0X3NldHRpbmdzX3Nl
dF9lbmFibGVfbWVkaWFfc3RyZWFtKHdlYmtpdFNldHRpbmdzLCBUUlVFKTsKKyAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV93ZWJ2cih3ZWJraXRTZXR0aW5ncywgVFJVRSk7CiAgICAgaWYg
KCFhZGRTZXR0aW5nc0dyb3VwVG9Db250ZXh0KGNvbnRleHQsIHdlYmtpdFNldHRpbmdzKSkKICAg
ICAgICAgZ19jbGVhcl9vYmplY3QoJndlYmtpdFNldHRpbmdzKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGFmYmNhNDM4ZDkxYjQ5ODNlNGU1NjBiNzEyZTMw
N2NhYjVjN2I2MmEuLjliNDM4NzliODQxYWFlMDVmZGJiNjBlNmUxNTA4Mzk2NzYwM2I0NGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTIxOSw2ICsyMTksNyBA
QCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAgIwogICAgIChbb3MucGF0aC5qb2luKCd3
ZWJraXRweScsICd0aGlyZHBhcnR5JyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdU
aGlyZFBhcnR5JywgJ0FOR0xFJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdUaGly
ZFBhcnR5JywgJ29wZW52cicpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnVGhpcmRQ
YXJ0eScsICd4ZGdtaW1lJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1Rvb2xzJywgJ1dlYkdQVUFQ
SVN0cnVjdHVyZScpXSwKICAgICAgWyItIiwKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCAxYTg3Y2VkZjk3NjZjNzBkZWEzZmU5YmRmMTU3MDQ5ZTBiOWQwOTc4Li5jYWVl
NjM3YTZlODBmZWYwMzRhMjYxYTMxNjBiMWU2ZmU2ZWVmYzg4IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDEtMTggIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlZSXSBBZGQg
T3BlblZSIHRvIHRoZSB0cmVlIGFuZCB0byB0aGUgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzI5OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOiBFbmFibGUgVVNFX09QRU5WUi4K
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZTogRGl0dG8uCisKIDIwMTgt
MDEtMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFdFQktJVF9GUkFNRVdPUksgc2hvdWxkIG5vdCBtb2RpZnkgZmlsZS1nbG9iYWwgaW5jbHVk
ZSBkaXJlY3Rvcmllcwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>